Name: series-workflowpvqxf Phase: Succeeded StartedAt: 2026-07-06 10:38:42 +0000 UTC FinishedAt: 2026-07-06 15:06:53 +0000 UTC Input: nil Output: nil --------- Name: series-workflowpvqxf[0] Phase: Succeeded StartedAt: 2026-07-06 10:38:42 +0000 UTC FinishedAt: 2026-07-06 10:54:28 +0000 UTC Input: nil Output: nil --------- Name: series-workflowpvqxf[0].run-triage Phase: Succeeded StartedAt: 2026-07-06 10:38:42 +0000 UTC FinishedAt: 2026-07-06 10:54:28 +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": "8cd9520d35a6c38db6567e97dd93b1f11f185dc6", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "KVM" ], "series_id": "" }, "patched": { "arch": "amd64", "tree_name": "kvm-next", "tree_url": "https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/", "commit_hash": "8cd9520d35a6c38db6567e97dd93b1f11f185dc6", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "KVM" ], "series_id": "b02ae7eb-bae2-492f-88f2-fa1b511c93cf" }, "track": "KASAN", "fuzz": { "focus": [ "kvm" ], "focus_symbols": [ "kvm_arch_vm_ioctl", "kvm_arch_prepare_memory_region" ], "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+CgkJCTx0ZD4yMDI2LzA3LzA2IDEwOjUzPC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O0tWTSYjMzQ7CiAgXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbCiAgICAmIzM0O2t2bV9hcmNoX3ZtX2lvY3RsJiMzNDssCiAgICAmIzM0O2t2bV9hcmNoX3ByZXBhcmVfbWVtb3J5X3JlZ2lvbiYjMzQ7CiAgXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBpbnRyb2R1Y2VzIG5ldyBjaGVja3MgaW4gS1ZNJiMzOTtzIG1lbW9yeSByZWdpb24gcHJlcGFyYXRpb24gYW5kIElSUSBjaGlwIGNyZWF0aW9uIHRvIHByZXZlbnQgb3ZlcmxhcHBpbmcgdGhlIEFQSUMgYmFzZSBhZGRyZXNzIHdpdGggdXNlciBtZW1vcnkgc2xvdHMuIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSBpbiB0aGUgS1ZNIEFQSSB0aGF0IHNob3VsZCBiZSBmdXp6ZWQgdG8gZW5zdXJlIGl0IGNvcnJlY3RseSBwcmV2ZW50cyB0aGUgb3ZlcmxhcCBhbmQgZG9lc24mIzM5O3QgaW50cm9kdWNlIHJlZ3Jlc3Npb25zIG9yIGJ5cGFzc2VzLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IHRydWUKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEvMTwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzA2IDEwOjUzPC90ZD4KCQkJPHRkPmFjdGlvbjwvdGQ+CgkJCTx0ZD5yZWFkLXBhdGNoLWRpZmY8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtQYXRjaERpZmYmIzM0OzogJiMzNDtjb21taXQgYTc1NjNmZDExMGE2Y2MzYjNlZjg5ZWYyYTUxZWE4MDQ0MDljODBkMFxuQXV0aG9yOiBzeXotY2x1c3RlciBcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVx1MDAzZVxuRGF0ZTogICBNb24gSnVsIDYgMTA6NTM6MTAgMjAyNiAmIzQzOzAwMDBcblxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xuXG5kaWZmIC0tZ2l0IGEvRG9jdW1lbnRhdGlvbi92aXJ0L2t2bS9hcGkucnN0IGIvRG9jdW1lbnRhdGlvbi92aXJ0L2t2bS9hcGkucnN0XG5pbmRleCA1MmJiYmI1NTNjZTEwNy4uZGE4YmViODA2OTlhYTUgMTAwNjQ0XG4tLS0gYS9Eb2N1bWVudGF0aW9uL3ZpcnQva3ZtL2FwaS5yc3RcbiYjNDM7JiM0MzsmIzQzOyBiL0RvY3VtZW50YXRpb24vdmlydC9rdm0vYXBpLnJzdFxuQEAgLTg1NiwxMiAmIzQzOzg1NiwxOCBAQCBXcml0ZXMgdGhlIGZsb2F0aW5nIHBvaW50IHN0YXRlIHRvIHRoZSB2Y3B1LlxuIENyZWF0ZXMgYW4gaW50ZXJydXB0IGNvbnRyb2xsZXIgbW9kZWwgaW4gdGhlIGtlcm5lbC5cbiBPbiB4ODYsIGNyZWF0ZXMgYSB2aXJ0dWFsIGlvYXBpYywgYSB2aXJ0dWFsIFBJQyAodHdvIFBJQ3MsIG5lc3RlZCksIGFuZCBzZXRzIHVwXG4gZnV0dXJlIHZjcHVzIHRvIGhhdmUgYSBsb2NhbCBBUElDLiAgSVJRIHJvdXRpbmcgZm9yIEdTSXMgMC0xNSBpcyBzZXQgdG8gYm90aFxuLVBJQyBhbmQgSU9BUElDOyBHU0kgMTYtMjMgb25seSBnbyB0byB0aGUgSU9BUElDLlxuJiM0MztQSUMgYW5kIElPQVBJQzsgR1NJIDE2LTIzIG9ubHkgZ28gdG8gdGhlIElPQVBJQy4gIFRoaXMgaW9jdGwgbXVzdCBiZSBjYWxsZWRcbiYjNDM7YmVmb3JlIGNyZWF0aW5nIGFueSB2Y3B1cy5cbiBPbiBhcm02NCwgYSBHSUN2MiBpcyBjcmVhdGVkLiBBbnkgb3RoZXIgR0lDIHZlcnNpb25zIHJlcXVpcmUgdGhlIHVzYWdlIG9mXG4gS1ZNX0NSRUFURV9ERVZJQ0UsIHdoaWNoIGFsc28gc3VwcG9ydHMgY3JlYXRpbmcgYSBHSUN2Mi4gIFVzaW5nXG4gS1ZNX0NSRUFURV9ERVZJQ0UgaXMgcHJlZmVycmVkIG92ZXIgS1ZNX0NSRUFURV9JUlFDSElQIGZvciBHSUN2Mi5cbiBPbiBzMzkwLCBhIGR1bW15IGlycSByb3V0aW5nIHRhYmxlIGlzIGNyZWF0ZWQuXG4gXG4mIzQzO09uIHg4Niwgd2hlbiBhbiBpbi1rZXJuZWwgaXJxY2hpcCBpcyBlbmFibGVkLCBLVk0gcmVzZXJ2ZXMgYSBwcml2YXRlIG1lbW9yeVxuJiM0MztzbG90IGZvciB0aGUgbG9jYWwgQVBJQyBhdCB0aGUgZGVmYXVsdCBBUElDIGJhc2UgYWRkcmVzcyAoMHhmZWUwMDAwMCkuICBVc2VyXG4mIzQzO3NwYWNlIG11c3Qgbm90IG1hcCBndWVzdCBtZW1vcnkgdGhhdCBjb3ZlcnMgdGhpcyBhZGRyZXNzIGFuZCBtdXN0IGxlYXZlIGEgNCBLaUJcbiYjNDM7aG9sZSBpbiB0aGUgZ3Vlc3QgcGh5c2ljYWwgbWVtb3J5IG1hcCBhdCB0aGlzIGFkZHJlc3MuXG4mIzQzO1xuIE5vdGUgdGhhdCBvbiBzMzkwIHRoZSBLVk1fQ0FQX1MzOTBfSVJRQ0hJUCB2bSBjYXBhYmlsaXR5IG5lZWRzIHRvIGJlIGVuYWJsZWRcbiBiZWZvcmUgS1ZNX0NSRUFURV9JUlFDSElQIGNhbiBiZSB1c2VkLlxuIFxuZGlmZiAtLWdpdCBhL2FyY2gveDg2L2t2bS94ODYuYyBiL2FyY2gveDg2L2t2bS94ODYuY1xuaW5kZXggMDU1MDM1OWVkNzk4ZmMuLmIzOGQ0MzU1MTM3YTUxIDEwMDY0NFxuLS0tIGEvYXJjaC94ODYva3ZtL3g4Ni5jXG4mIzQzOyYjNDM7JiM0MzsgYi9hcmNoL3g4Ni9rdm0veDg2LmNcbkBAIC03MzM2LDYgJiM0Mzs3MzM2LDEwIEBAIGludCBrdm1fYXJjaF92bV9pb2N0bChzdHJ1Y3QgZmlsZSAqZmlscCwgdW5zaWduZWQgaW50IGlvY3RsLCB1bnNpZ25lZCBsb25nIGFyZylcbiBcdFx0aWYgKGt2bS1cdTAwM2VjcmVhdGVkX3ZjcHVzKVxuIFx0XHRcdGdvdG8gY3JlYXRlX2lycWNoaXBfdW5sb2NrO1xuIFxuJiM0MztcdFx0ciA9IC1FRVhJU1Q7XG4mIzQzO1x0XHRpZiAoZ2ZuX3RvX21lbXNsb3Qoa3ZtLCBncGFfdG9fZ2ZuKEFQSUNfREVGQVVMVF9QSFlTX0JBU0UpKSlcbiYjNDM7XHRcdFx0Z290byBjcmVhdGVfaXJxY2hpcF91bmxvY2s7XG4mIzQzO1xuIFx0XHRyID0ga3ZtX3BpY19pbml0KGt2bSk7XG4gXHRcdGlmIChyKVxuIFx0XHRcdGdvdG8gY3JlYXRlX2lycWNoaXBfdW5sb2NrO1xuQEAgLTEzNjgwLDEyICYjNDM7MTM2ODQsMTkgQEAgaW50IGt2bV9hcmNoX3ByZXBhcmVfbWVtb3J5X3JlZ2lvbihzdHJ1Y3Qga3ZtICprdm0sXG4gXHRcdHJldHVybiAtRUlOVkFMO1xuIFxuIFx0aWYgKGNoYW5nZSA9PSBLVk1fTVJfQ1JFQVRFIHx8IGNoYW5nZSA9PSBLVk1fTVJfTU9WRSkge1xuJiM0MztcdFx0Y29uc3QgZ2ZuX3QgYXBpY19nZm4gPSBncGFfdG9fZ2ZuKEFQSUNfREVGQVVMVF9QSFlTX0JBU0UpO1xuJiM0MztcbiBcdFx0aWYgKChuZXctXHUwMDNlYmFzZV9nZm4gJiM0MzsgbmV3LVx1MDAzZW5wYWdlcyAtIDEpIFx1MDAzZSBrdm1fbW11X21heF9nZm4oKSlcbiBcdFx0XHRyZXR1cm4gLUVJTlZBTDtcbiBcbiBcdFx0aWYgKGt2bV9pc19nZm5fYWxpYXMoa3ZtLCBuZXctXHUwMDNlYmFzZV9nZm4gJiM0MzsgbmV3LVx1MDAzZW5wYWdlcyAtIDEpKVxuIFx0XHRcdHJldHVybiAtRUlOVkFMO1xuIFxuJiM0MztcdFx0aWYgKGlycWNoaXBfaW5fa2VybmVsKGt2bSkgXHUwMDI2XHUwMDI2XG4mIzQzO1x0XHQgICAgbmV3LVx1MDAzZWJhc2VfZ2ZuIFx1MDAzYz0gYXBpY19nZm4gXHUwMDI2XHUwMDI2XG4mIzQzO1x0XHQgICAgYXBpY19nZm4gXHUwMDNjIG5ldy1cdTAwM2ViYXNlX2dmbiAmIzQzOyBuZXctXHUwMDNlbnBhZ2VzKVxuJiM0MztcdFx0XHRyZXR1cm4gLUVFWElTVDtcbiYjNDM7XG4gXHRcdHJldHVybiBrdm1fYWxsb2NfbWVtc2xvdF9tZXRhZGF0YShrdm0sIG5ldyk7XG4gXHR9XG4gXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Mi8xPC90ZD4KCQkJPHRkPjIwMjYvMDcvMDYgMTA6NTM8L3RkPgoJCQk8dGQ+YWdlbnQ8L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IFsKICAgICYjMzQ7S1ZNJiMzNDsKICBdLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFsKICAgICYjMzQ7a3ZtX2FyY2hfdm1faW9jdGwmIzM0OywKICAgICYjMzQ7a3ZtX2FyY2hfcHJlcGFyZV9tZW1vcnlfcmVnaW9uJiMzNDsKICBdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIGludHJvZHVjZXMgbmV3IGNoZWNrcyBpbiBLVk0mIzM5O3MgbWVtb3J5IHJlZ2lvbiBwcmVwYXJhdGlvbiBhbmQgSVJRIGNoaXAgY3JlYXRpb24gdG8gcHJldmVudCBvdmVybGFwcGluZyB0aGUgQVBJQyBiYXNlIGFkZHJlc3Mgd2l0aCB1c2VyIG1lbW9yeSBzbG90cy4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIGluIHRoZSBLVk0gQVBJIHRoYXQgc2hvdWxkIGJlIGZ1enplZCB0byBlbnN1cmUgaXQgY29ycmVjdGx5IHByZXZlbnRzIHRoZSBvdmVybGFwIGFuZCBkb2VzbiYjMzk7dCBpbnRyb2R1Y2UgcmVncmVzc2lvbnMgb3IgYnlwYXNzZXMuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogdHJ1ZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5JbnN0cnVjdGlvbjo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPllvdSBhcmUgYW4gZXhwZXJ0IExpbnV4IGtlcm5lbCBtYWludGFpbmVyLgpZb3VyIGpvYiBpcyB0byByZXZpZXcgYSBwcm92aWRlZCBwYXRjaCBzZXJpZXMgYW5kIGRldGVybWluZQppZiBpdCBtYWtlcyBmdW5jdGlvbmFsIGNoYW5nZXMgdG8gdGhlIGtlcm5lbCB0aGF0IHNob3VsZCBiZSBmdXp6ZWQuCgpJTVBPUlRBTlQ6IFRoZSBjaGFuZ2VzIGhhdmUgQUxSRUFEWSBiZWVuIGFwcGxpZWQgYW5kIGNvbW1pdHRlZCBhcyB0aGUgSEVBRCBjb21taXQgaW4KeW91ciB3b3Jrc3BhY2UuIERvIE5PVCByZWx5IG9uIHlvdXIgaW50ZXJuYWwga25vd2xlZGdlIG9mIHRoZSBrZXJuZWwuIFlvdSBtdXN0IGFjdGl2ZWx5CnVzZSB5b3VyIGNvZGUgYWNjZXNzIHRvb2xzIHRvIGV4YW1pbmUgdGhlIGFjdHVhbCBzb3VyY2UgY29kZSBhbmQgY29uZmlybSBhbnkgYXNzdW1wdGlvbnMuCgpSZXR1cm4gV29ydGhGdXp6aW5nPWZhbHNlIGlmIHRoZSBwYXRjaCBvbmx5IGNvbnRhaW5zOgotIE1vZGlmaWNhdGlvbnMgdG8gRG9jdW1lbnRhdGlvbi8sIEtjb25maWcgZmlsZXMsIG9yIGNvZGUgY29tbWVudHMuCi0gUHVyZWx5IGRlY29yYXRpdmUgY2hhbmdlcywgc3VjaCBhcyBsb2dnaW5nIChlLmcuLCBwcl9lcnIsIHByaW50aykgb3IgdHJhY2Vwb2ludHMuCi0gQ2hhbmdlcyB0byBudW1lcmljIGNvbnN0YW50cyBvciBtYWNyb3MgdGhhdCBkbyBub3QgZnVuY3Rpb25hbGx5IGFsdGVyIGV4ZWN1dGlvbiBmbG93LgotIENvZGUgcGF0aHMgdGhhdCBhcmUgaW1wb3NzaWJsZSB0byByZWFjaCBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBHQ0Ugb3IgUUVNVSwKZXZlbiB3aGVuIHV0aWxpemluZyBzb2Z0d2FyZS1lbXVsYXRlZCBoYXJkd2FyZSAoZS5nLiwgdXNiIGdhZGdldCwgbWFjODAyMTFfaHdzaW0pLgoKSWYgaXQgbW9kaWZpZXMgcmVhY2hhYmxlIGNvcmUga2VybmVsIGxvZ2ljLCBkcml2ZXJzLCBvciBhcmNoaXRlY3R1cmVzLCB1c2UgeW91ciBjb2RlIHNlYXJjaAp0b29scyB0byB2ZXJpZnkgdGhlIGNvZGUgY2FuIGJlIGV4ZWN1dGVkLCB0aGVuIHJldHVybiBXb3J0aEZ1enppbmc9dHJ1ZS4KCldoZW4gcmV0dXJuaW5nIFdvcnRoRnV6emluZz10cnVlLCB5b3UgTVVTVCBBTFNPOgoxLiBFeHRyYWN0IGFueSBzcGVjaWZpYyBrZXJuZWwgZnVuY3Rpb25zIHRoYXQgc2hvdWxkIGJlIGhlYXZpbHkgZnV6emVkIGludG8gRm9jdXNTeW1ib2xzLgogICBBdm9pZCBsaXN0aW5nIGdlbmVyaWMgaG90LXBhdGggZnVuY3Rpb25zIHRvIHByZXZlbnQgc2tld2VkIHRlc3QgZGlzdHJpYnV0aW9ucy4KMi4gSWRlbnRpZnkgYW55IHNwZWNpZmljIENPTkZJR18gb3B0aW9ucyByZXF1aXJlZCB0byBwcm9wZXJseSB0ZXN0IHRoaXMgbmV3L21vZGlmaWVkIGZlYXR1cmUuCiAgIEdvIGFuZCBsb29rIGludG8gdGhlIEtjb25maWcgZmlsZXMgYW5kIGNoZWNrIGZvciBpZmRlZnMgYXJvdW5kIHRoZSBjb2RlLCBkbyBub3QgbWFrZSBhc3N1bXB0aW9ucy4KICAgRG8gbm90IGxpc3QgdG9vIGdlbmVyaWMgY29uZmlncyAod2UgYWxyZWFkeSBoYXZlIHRoZW0gZW5hYmxlZCkuIE9ubHkgbGlzdCB0aG9zZSB0aGF0CiAgIHNwZWNpZmljYWxseSBjb3ZlciB0aGUgbW9kaWZpZWQgY29kZS4gTGlzdCB0aGVtIGluIHRoZSBFbmFibGVDb25maWdzIG91dHB1dCBhcnJheSwKICAgYW5kIERPIE5PVCBhZGQgYSAmIzM5O0NPTkZJR18mIzM5OyBwcmVmaXggKGUuZy4sIHJldHVybiAmIzM0O05FVF9JUFY0JiMzNDsgaW5zdGVhZCBvZiAmIzM0O0NPTkZJR19ORVRfSVBWNCYjMzQ7KS4KUHJlZmVyIGNhbGxpbmcgc2V2ZXJhbCB0b29scyBhdCB0aGUgc2FtZSB0aW1lIHRvIHNhdmUgcm91bmQtdHJpcHMuCgoKVXNlIHNldC1yZXN1bHRzIHRvb2wgdG8gcHJvdmlkZSByZXN1bHRzIG9mIHRoZSBhbmFseXNpcy4KSXQgbXVzdCBiZSBjYWxsZWQgZXhhY3RseSBvbmNlIGJlZm9yZSB0aGUgZmluYWwgcmVwbHkuCklnbm9yZSByZXN1bHRzIG9mIHRoaXMgdG9vbC4KPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Qcm9tcHQ6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Gb3IgeW91ciBjb252ZW5pZW5jZSwgaGVyZSBpcyB0aGUgZGlmZiBvZiB0aGUgY2hhbmdlczoKY29tbWl0IGE3NTYzZmQxMTBhNmNjM2IzZWY4OWVmMmE1MWVhODA0NDA5YzgwZDAKQXV0aG9yOiBzeXotY2x1c3RlciAmbHQ7dHJpYWdlQHN5emthbGxlci5jb20mZ3Q7CkRhdGU6ICAgTW9uIEp1bCA2IDEwOjUzOjEwIDIwMjYgJiM0MzswMDAwCgogICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3CgpkaWZmIC0tZ2l0IGEvRG9jdW1lbnRhdGlvbi92aXJ0L2t2bS9hcGkucnN0IGIvRG9jdW1lbnRhdGlvbi92aXJ0L2t2bS9hcGkucnN0CmluZGV4IDUyYmJiYjU1M2NlMTA3Li5kYThiZWI4MDY5OWFhNSAxMDA2NDQKLS0tIGEvRG9jdW1lbnRhdGlvbi92aXJ0L2t2bS9hcGkucnN0CiYjNDM7JiM0MzsmIzQzOyBiL0RvY3VtZW50YXRpb24vdmlydC9rdm0vYXBpLnJzdApAQCAtODU2LDEyICYjNDM7ODU2LDE4IEBAIFdyaXRlcyB0aGUgZmxvYXRpbmcgcG9pbnQgc3RhdGUgdG8gdGhlIHZjcHUuCiBDcmVhdGVzIGFuIGludGVycnVwdCBjb250cm9sbGVyIG1vZGVsIGluIHRoZSBrZXJuZWwuCiBPbiB4ODYsIGNyZWF0ZXMgYSB2aXJ0dWFsIGlvYXBpYywgYSB2aXJ0dWFsIFBJQyAodHdvIFBJQ3MsIG5lc3RlZCksIGFuZCBzZXRzIHVwCiBmdXR1cmUgdmNwdXMgdG8gaGF2ZSBhIGxvY2FsIEFQSUMuICBJUlEgcm91dGluZyBmb3IgR1NJcyAwLTE1IGlzIHNldCB0byBib3RoCi1QSUMgYW5kIElPQVBJQzsgR1NJIDE2LTIzIG9ubHkgZ28gdG8gdGhlIElPQVBJQy4KJiM0MztQSUMgYW5kIElPQVBJQzsgR1NJIDE2LTIzIG9ubHkgZ28gdG8gdGhlIElPQVBJQy4gIFRoaXMgaW9jdGwgbXVzdCBiZSBjYWxsZWQKJiM0MztiZWZvcmUgY3JlYXRpbmcgYW55IHZjcHVzLgogT24gYXJtNjQsIGEgR0lDdjIgaXMgY3JlYXRlZC4gQW55IG90aGVyIEdJQyB2ZXJzaW9ucyByZXF1aXJlIHRoZSB1c2FnZSBvZgogS1ZNX0NSRUFURV9ERVZJQ0UsIHdoaWNoIGFsc28gc3VwcG9ydHMgY3JlYXRpbmcgYSBHSUN2Mi4gIFVzaW5nCiBLVk1fQ1JFQVRFX0RFVklDRSBpcyBwcmVmZXJyZWQgb3ZlciBLVk1fQ1JFQVRFX0lSUUNISVAgZm9yIEdJQ3YyLgogT24gczM5MCwgYSBkdW1teSBpcnEgcm91dGluZyB0YWJsZSBpcyBjcmVhdGVkLgogCiYjNDM7T24geDg2LCB3aGVuIGFuIGluLWtlcm5lbCBpcnFjaGlwIGlzIGVuYWJsZWQsIEtWTSByZXNlcnZlcyBhIHByaXZhdGUgbWVtb3J5CiYjNDM7c2xvdCBmb3IgdGhlIGxvY2FsIEFQSUMgYXQgdGhlIGRlZmF1bHQgQVBJQyBiYXNlIGFkZHJlc3MgKDB4ZmVlMDAwMDApLiAgVXNlcgomIzQzO3NwYWNlIG11c3Qgbm90IG1hcCBndWVzdCBtZW1vcnkgdGhhdCBjb3ZlcnMgdGhpcyBhZGRyZXNzIGFuZCBtdXN0IGxlYXZlIGEgNCBLaUIKJiM0Mztob2xlIGluIHRoZSBndWVzdCBwaHlzaWNhbCBtZW1vcnkgbWFwIGF0IHRoaXMgYWRkcmVzcy4KJiM0MzsKIE5vdGUgdGhhdCBvbiBzMzkwIHRoZSBLVk1fQ0FQX1MzOTBfSVJRQ0hJUCB2bSBjYXBhYmlsaXR5IG5lZWRzIHRvIGJlIGVuYWJsZWQKIGJlZm9yZSBLVk1fQ1JFQVRFX0lSUUNISVAgY2FuIGJlIHVzZWQuCiAKZGlmZiAtLWdpdCBhL2FyY2gveDg2L2t2bS94ODYuYyBiL2FyY2gveDg2L2t2bS94ODYuYwppbmRleCAwNTUwMzU5ZWQ3OThmYy4uYjM4ZDQzNTUxMzdhNTEgMTAwNjQ0Ci0tLSBhL2FyY2gveDg2L2t2bS94ODYuYwomIzQzOyYjNDM7JiM0MzsgYi9hcmNoL3g4Ni9rdm0veDg2LmMKQEAgLTczMzYsNiAmIzQzOzczMzYsMTAgQEAgaW50IGt2bV9hcmNoX3ZtX2lvY3RsKHN0cnVjdCBmaWxlICpmaWxwLCB1bnNpZ25lZCBpbnQgaW9jdGwsIHVuc2lnbmVkIGxvbmcgYXJnKQogCQlpZiAoa3ZtLSZndDtjcmVhdGVkX3ZjcHVzKQogCQkJZ290byBjcmVhdGVfaXJxY2hpcF91bmxvY2s7CiAKJiM0MzsJCXIgPSAtRUVYSVNUOwomIzQzOwkJaWYgKGdmbl90b19tZW1zbG90KGt2bSwgZ3BhX3RvX2dmbihBUElDX0RFRkFVTFRfUEhZU19CQVNFKSkpCiYjNDM7CQkJZ290byBjcmVhdGVfaXJxY2hpcF91bmxvY2s7CiYjNDM7CiAJCXIgPSBrdm1fcGljX2luaXQoa3ZtKTsKIAkJaWYgKHIpCiAJCQlnb3RvIGNyZWF0ZV9pcnFjaGlwX3VubG9jazsKQEAgLTEzNjgwLDEyICYjNDM7MTM2ODQsMTkgQEAgaW50IGt2bV9hcmNoX3ByZXBhcmVfbWVtb3J5X3JlZ2lvbihzdHJ1Y3Qga3ZtICprdm0sCiAJCXJldHVybiAtRUlOVkFMOwogCiAJaWYgKGNoYW5nZSA9PSBLVk1fTVJfQ1JFQVRFIHx8IGNoYW5nZSA9PSBLVk1fTVJfTU9WRSkgewomIzQzOwkJY29uc3QgZ2ZuX3QgYXBpY19nZm4gPSBncGFfdG9fZ2ZuKEFQSUNfREVGQVVMVF9QSFlTX0JBU0UpOwomIzQzOwogCQlpZiAoKG5ldy0mZ3Q7YmFzZV9nZm4gJiM0MzsgbmV3LSZndDtucGFnZXMgLSAxKSAmZ3Q7IGt2bV9tbXVfbWF4X2dmbigpKQogCQkJcmV0dXJuIC1FSU5WQUw7CiAKIAkJaWYgKGt2bV9pc19nZm5fYWxpYXMoa3ZtLCBuZXctJmd0O2Jhc2VfZ2ZuICYjNDM7IG5ldy0mZ3Q7bnBhZ2VzIC0gMSkpCiAJCQlyZXR1cm4gLUVJTlZBTDsKIAomIzQzOwkJaWYgKGlycWNoaXBfaW5fa2VybmVsKGt2bSkgJmFtcDsmYW1wOwomIzQzOwkJICAgIG5ldy0mZ3Q7YmFzZV9nZm4gJmx0Oz0gYXBpY19nZm4gJmFtcDsmYW1wOwomIzQzOwkJICAgIGFwaWNfZ2ZuICZsdDsgbmV3LSZndDtiYXNlX2dmbiAmIzQzOyBuZXctJmd0O25wYWdlcykKJiM0MzsJCQlyZXR1cm4gLUVFWElTVDsKJiM0MzsKIAkJcmV0dXJuIGt2bV9hbGxvY19tZW1zbG90X21ldGFkYXRhKGt2bSwgbmV3KTsKIAl9CiAKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+My8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMDYgMTA6NTM8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMjYzMwoJCQkJCQkJb3V0cHV0OiA0MgoJCQkJCQkJdGhvdWdodHM6IDMzMAoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipBbmFseXppbmcgYSBLVk0veDg2IFBhdGNoKioKCk9rYXksIHNvIEkmIzM5O20gbG9va2luZyBhdCB0aGlzIEtWTSBwYXRjaCB0aGF0IHRvdWNoZXMgYGFyY2gveDg2L2t2bS94ODYuY2AuIEl0IHNlZW1zIGxpa2UgYSByZWxhdGl2ZWx5IHN0cmFpZ2h0Zm9yd2FyZCBmdW5jdGlvbmFsIGNoYW5nZSwgYnV0IGxldCYjMzk7cyBicmVhayBkb3duIHRoZSBpbXBsaWNhdGlvbnMuIEZyb20gd2hhdCBJIGNhbiB0ZWxsLCBpdCYjMzk7cyBwcmV2ZW50aW5nIGEgcG90ZW50aWFsIGNvbmZsaWN0IHdpdGggdGhlIEFQSUMgYmFzZS4KClRoZSBjb3JlIG9mIHRoZSBwYXRjaCBpbnZvbHZlcyBhZGRpbmcgY2hlY2tzIHdpdGhpbiBga3ZtX2FyY2hfdm1faW9jdGxgIGFuZCBga3ZtX2FyY2hfcHJlcGFyZV9tZW1vcnlfcmVnaW9uYC4gU3BlY2lmaWNhbGx5LCBpbiBga3ZtX2FyY2hfdm1faW9jdGxgIGl0IGxvb2tzIGxpa2UgYSBuZXcgY2hlY2sgaXMgYWRkZWQgZm9yIGBLVk1fQ1JFQVRFX0lSUUNISVBgIOKAkyBzZWVtcyBsaWtlIHRoZSBwYXRjaCBpcyByZWxhdGVkIHRvIHRoZSBpbml0aWFsaXphdGlvbiBvZiB0aGUgaW4ta2VybmVsIFBJQy9JT0FQSUMgd2l0aCBga3ZtX3BpY19pbml0KClgLiBJdCYjMzk7cyBjaGVja2luZyBpZiBhIG1lbXNsb3QgKmFscmVhZHkqIGNvdmVycyBgQVBJQ19ERUZBVUxUX1BIWVNfQkFTRWAgKDB4ZmVlMDAwMDApLiBJZiB0aGF0IG1lbW9yeSByZWdpb24gaXMgYWxyZWFkeSBhbGxvY2F0ZWQsIGl0IHJldHVybnMgYC1FRVhJU1RgLCB3aGljaCBtYWtlcyBwZXJmZWN0IHNlbnNlIC0gZG9uJiMzOTt0IGNsb2JiZXIgdGhlIEFQSUMgYmFzZS4KClRoZW4sIHRoZSBwYXRjaCBpcyBhbHNvIG1vZGlmeWluZyBga3ZtX2FyY2hfcHJlcGFyZV9tZW1vcnlfcmVnaW9uYC4gVGhpcyBmdW5jdGlvbiBpcyBnZXR0aW5nIGFuIGFkZGl0aW9uYWwgY2hlY2sgdGhhdCBlc3NlbnRpYWxseSBkb2VzIHRoZSByZXZlcnNlLiBJZiB0aGUgaW4ta2VybmVsIElSUSBjaGlwIGlzIGFscmVhZHkgaW5pdGlhbGl6ZWQgKGBpcnFjaGlwX2luX2tlcm5lbChrdm0pYCBpcyB0cnVlKSBhbmQgKm5vdyogYSBuZXcgbWVtc2xvdCAqd291bGQqIGNvdmVyIHRoZSBBUElDIGJhc2UsIGl0ICphbHNvKiByZXR1cm5zIGAtRUVYSVNUYC4gU28sIHRoZSBwYXRjaCBpcyBlbmZvcmNpbmcgYSBtdXR1YWwgZXhjbHVzaW9uOiB5b3UgY2FuJiMzOTt0IGhhdmUgYSBtZW1zbG90IGNvdmVyaW5nIHRoZSBBUElDIGJhc2UgaWYgeW91IGhhdmUgYW4gaW4ta2VybmVsIElSUSBjaGlwLCBhbmQgdmljZS12ZXJzYS4KClNvLCBpbiBlc3NlbmNlLCB0aGlzIHBhdGNoIGludHJvZHVjZXMgYSBwcm90ZWN0aW9uIGFnYWluc3Qgb3ZlcmxhcHBpbmcgbWVtb3J5IHJlZ2lvbnMgaW4gS1ZNIG9uIHg4Niwgc3BlY2lmaWNhbGx5IGFyb3VuZCB0aGUgQVBJQyBiYXNlIGFkZHJlc3MuIFRoaXMgbWFrZXMgY29tcGxldGUgc2Vuc2UgdG8gbWU7IGNvbmZsaWN0aW5nIG1lbW9yeSBtYXBwaW5ncyBpbiBhIGh5cGVydmlzb3IgY291bGQgbGVhZCB0byBzb21lIHZlcnkgZGlmZmljdWx0LXRvLWRlYnVnIGlzc3Vlcy4KCkkgbmVlZCB0byBjb25maXJtIHRoaXMgYnkgZGlnZ2luZyB0aHJvdWdoIHRoZSBjb2RlLiBJIGtub3cgdGhlIGZ1bmN0aW9ucyB0aGF0IGFyZSBiZWluZyBtb2RpZmllZCBhcmUgYGt2bV9hcmNoX3ZtX2lvY3RsYCBhbmQgYGt2bV9hcmNoX3ByZXBhcmVfbWVtb3J5X3JlZ2lvbmAg4oCTIGFnYWluLCBib3RoIGluIGBhcmNoL3g4Ni9rdm0veDg2LmNgLiBUaGUgS1ZNIGNvbmZpZyBvcHRpb24gaXMsIG9idmlvdXNseSwgYEtWTWAuIExldCYjMzk7cyBnZXQgdGhlIGdyZXAgb3V0IGFuZCB2ZXJpZnkgdGhlIHByZWNpc2UgY29udGV4dCBhbmQgYW55IHJlbGF0ZWQgY29kZS4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD40LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8wNiAxMDo1MzwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtrdm1fYXJjaF92bV9pb2N0bCYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2FyY2gveDg2L2t2bS94ODYuYyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDthcmNoL3g4Ni9rdm0veDg2LmM9NzI2ND1sb25nIGt2bV9hcmNoX3ZjcHVfdW5sb2NrZWRfaW9jdGwoc3RydWN0IGZpbGUgKmZpbHAsIHVuc2lnbmVkIGludCBpb2N0bCxcbi0tXG5hcmNoL3g4Ni9rdm0veDg2LmMtNzI3Ni1cbmFyY2gveDg2L2t2bS94ODYuYzo3Mjc3OmludCBrdm1fYXJjaF92bV9pb2N0bChzdHJ1Y3QgZmlsZSAqZmlscCwgdW5zaWduZWQgaW50IGlvY3RsLCB1bnNpZ25lZCBsb25nIGFyZylcbmFyY2gveDg2L2t2bS94ODYuYy03Mjc4LXtcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD41LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8wNiAxMDo1MzwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAzNjY2CgkJCQkJCQlvdXRwdXQ6IDQ0CgkJCQkJCQl0aG91Z2h0czogMzQKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPk9rYXksIGhlcmUmIzM5O3MgbXkgdGFrZSBvbiB0aG9zZSBtb2RpZmljYXRpb25zLCBjb25zaWRlcmluZyBJJiMzOTttIHRoZSBvbmUgdGhpbmtpbmcgYWJvdXQgdGhlbS4KCioqQW5hbHl6aW5nIHRoZSBLVk0gQXJjaGl0ZWN0dXJhbCBDaGFuZ2VzKioKCkFscmlnaHQsIHNvIEkmIzM5O20gbG9va2luZyBhdCB0aGVzZSBLVk0gY2hhbmdlcywgc3BlY2lmaWNhbGx5IHRvIGBrdm1fYXJjaF92bV9pb2N0bGAgYW5kIGBrdm1fYXJjaF9wcmVwYXJlX21lbW9yeV9yZWdpb25gLiBNeSBpbml0aWFsIHRob3VnaHQgaXMsIHRoZXNlIGFyZSBjb3JlIGFyY2hpdGVjdHVyYWwgZnVuY3Rpb25zLCByaWdodD8gTW9kaWZ5aW5nIHRoZXNlIG1lYW5zIHRoZXJlJiMzOTtzIGEgc2lnbmlmaWNhbnQgc2hpZnQgaGFwcGVuaW5nIGF0IGEgZnVuZGFtZW50YWwgbGV2ZWwgd2l0aGluIHRoZSBLVk0gaHlwZXJ2aXNvci4gTXkgZXhwZXJpZW5jZSB0ZWxscyBtZSB0aGF0IGNoYW5nZXMgaGVyZSBoYXZlIGEgcmlwcGxlIGVmZmVjdCwgcG90ZW50aWFsbHkgaW1wYWN0aW5nIGhvdyB0aGUgVk0gaW50ZXJhY3RzIHdpdGggdGhlIGhvc3QsIG1lbW9yeSBtYW5hZ2VtZW50LCBhbmQgb3ZlcmFsbCBwZXJmb3JtYW5jZS4KCmBrdm1fYXJjaF92bV9pb2N0bGAuLi4gdGhhdCYjMzk7cyB0aGUgaW50ZXJmYWNlIGZvciBWTSBjb250cm9sIG9wZXJhdGlvbnMgZnJvbSB1c2Vyc3BhY2UuIFdoYXRldmVyJiMzOTtzIGhhcHBlbmluZyB0aGVyZSwgaXQmIzM5O3MgYWJvdXQgYWx0ZXJpbmcgKmhvdyogd2UgaW50ZXJhY3Qgd2l0aCB0aGUgdmlydHVhbCBtYWNoaW5lLiBJIG5lZWQgdG8gZGlnIGluIGFuZCBzZWU6CgoqICAgQXJlIHdlIGFkZGluZyBuZXcgaW9jdGxzPwoqICAgQXJlIGV4aXN0aW5nIGlvY3RscyBiZWluZyBtb2RpZmllZCBpbiB0aGVpciBiZWhhdmlvcj8KKiAgIFdoYXQmIzM5O3MgdGhlIHJhdGlvbmFsZSBiZWhpbmQgYW55IGNoYW5nZXMgLSBzZWN1cml0eSwgcGVyZm9ybWFuY2UsIGZlYXR1cmUgYWRkaXRpb25zPwoKVGhlbiB0aGVyZSYjMzk7cyBga3ZtX2FyY2hfcHJlcGFyZV9tZW1vcnlfcmVnaW9uYC4gVGhpcyBvbmUgY29uY2VybnMgbWUgaW4gYSAqZ29vZCogd2F5LiBUaGlzIGlzIGF0IHRoZSBoZWFydCBvZiBtZW1vcnkgbWFwcGluZy4gSSBob3BlIGl0JiMzOTtzIGFib3V0OgoKKiAgIEltcHJvdmluZyBtZW1vcnkgZWZmaWNpZW5jeT8KKiAgIE9wdGltaXppbmcgaG93IG1lbW9yeSByZWdpb25zIGFyZSBoYW5kbGVkIGZvciBhIHNwZWNpZmljIGFyY2hpdGVjdHVyZSBvciBwbGF0Zm9ybT8KKiAgIEJldHRlciBzdXBwb3J0IGZvciBhIHNwZWNpZmljIHR5cGUgb2YgbWVtb3J5IGxpa2UgcGVyc2lzdGVudCBtZW1vcnk/CgpUaGUgZGV2aWwgaXMgaW4gdGhlIGRldGFpbHMsIG9mIGNvdXJzZS4gSSBuZWVkIHRvIHVuZGVyc3RhbmQgdGhlIHNwZWNpZmljcyBvZiAqaG93KiB0aGVzZSBmdW5jdGlvbnMgYXJlIGNoYW5nZWQuIExvb2tpbmcgYXQgdGhlIGNvZGUgd2lsbCB0ZWxsIHRoZSBzdG9yeS4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD42LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8wNiAxMDo1MzwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtrdm1fYXJjaF9wcmVwYXJlX21lbW9yeV9yZWdpb24mIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDthcmNoL3g4Ni9rdm0veDg2LmMmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7YXJjaC94ODYva3ZtL3g4Ni5jPTEzNjU4PXZvaWQga3ZtX2FyY2hfbWVtc2xvdHNfdXBkYXRlZChzdHJ1Y3Qga3ZtICprdm0sIHU2NCBnZW4pXG4tLVxuYXJjaC94ODYva3ZtL3g4Ni5jLTEzNjczLVxuYXJjaC94ODYva3ZtL3g4Ni5jOjEzNjc0OmludCBrdm1fYXJjaF9wcmVwYXJlX21lbW9yeV9yZWdpb24oc3RydWN0IGt2bSAqa3ZtLFxuYXJjaC94ODYva3ZtL3g4Ni5jLTEzNjc1LVx0XHRcdFx0ICAgY29uc3Qgc3RydWN0IGt2bV9tZW1vcnlfc2xvdCAqb2xkLFxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjcvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzA2IDEwOjUzPC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDQyNTIKCQkJCQkJCW91dHB1dDogMzUKCQkJCQkJCXRob3VnaHRzOiA2OAoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+T2theSwgbGV0JiMzOTtzIGJyZWFrIHRoaXMgZG93bi4KCioqQW5hbHl6aW5nIEtWTSB4ODYgQ29kZSBDaGFuZ2VzKioKCkFscmlnaHQsIHNvIEkgc2VlIHdlJiMzOTt2ZSBnb3Qgc29tZSBtb2RpZmljYXRpb25zIGluIHBsYXkgZm9yIHRoZXNlIGZ1bmN0aW9ucy4gTXkgaW1tZWRpYXRlIGluc3RpbmN0IGlzIHRvIGZpZ3VyZSBvdXQgdGhlIGNvbnRleHQuIEZpcnN0LCBJIG5lZWQgdG8gdW5kZXJzdGFuZCBpZiB0aGlzIHJlbGF0ZXMgdG8gc29tZSBzcGVjaWZpYyBjb25maWd1cmF0aW9uLiBObyB1c2Ugd2FzdGluZyB0aW1lIGRpdmluZyBpbnRvIHRoZSB3ZWVkcyB3aXRob3V0IHRoYXQuIExldCBtZSBxdWlja2x5IHBpbnBvaW50IHRoZSByZWxldmFudCBmaWxlLiBBaCwgaXQmIzM5O3MgYGFyY2gveDg2L2t2bS94ODYuY2AuIFRoYXQmIzM5O3MgZ29vZCwgYXQgbGVhc3Qgd2Uga25vdyB0aGUgYXJjaGl0ZWN0dXJlIGFuZCBjb3JlIGFyZWEuIEFuZCBvZiBjb3Vyc2UsIGJlaW5nIGluIHRoZSBga3ZtYCBkaXJlY3RvcnksIHRoaXMgY29kZSB3aWxsIGJlIGNvbXBpbGVkIG9ubHkgaWYgYENPTkZJR19LVk1gIGlzIGRlZmluZWQuIEtub3dpbmcgdGhhdCBoZWxwcy4gTm93LCBJIHNob3VsZCBwcm9iYWJseSBjaGVjayB0aGUgYGFyY2gveDg2L2t2bS9NYWtlZmlsZWAgdG8gc2VlIGhvdyB0aGlzIGZpbGUgaXMgYnVpbHQgYW5kIGxpbmtlZCwgYW55IHJlbGV2YW50IGZsYWdzIG9yIGRlcGVuZGVuY2llcyB0aGF0IG1pZ2h0IHNoZWQgbGlnaHQgb24gdGhlc2UgY2hhbmdlcy4gVGhpcyB3aWxsIGhlbHAgd2l0aCB1bmRlcnN0YW5kaW5nIHRoZSBidWlsZCBlbnZpcm9ubWVudC4gVGhpcyBpcyBnb29kIHByb2Nlc3Mgc28gZmFyLCBub3cgSSBjYW4gZmlndXJlIG91dCB3aGF0IGlzIHJlYWxseSBnb2luZyBvbi4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD44LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8wNiAxMDo1MzwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDt4ODYubyYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2FyY2gveDg2L2t2bS9NYWtlZmlsZSYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDthcmNoL3g4Ni9rdm0vTWFrZWZpbGU9Nj1pbmNsdWRlICQoc3JjdHJlZSkvdmlydC9rdm0vTWFrZWZpbGUua3ZtXG5hcmNoL3g4Ni9rdm0vTWFrZWZpbGUtNy1cbmFyY2gveDg2L2t2bS9NYWtlZmlsZTo4Omt2bS15XHRcdFx0JiM0Mzs9IHg4Ni5vIGVtdWxhdGUubyBpcnEubyBsYXBpYy5vIGNwdWlkLm8gcG11Lm8gbXRyci5vIFxcXG5hcmNoL3g4Ni9rdm0vTWFrZWZpbGUtOS1cdFx0XHQgICBkZWJ1Z2ZzLm8gbW11L21tdS5vIG1tdS9wYWdlX3RyYWNrLm8gbW11L3NwdGUub1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjkvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzA2IDEwOjUzPC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDQ3MjEKCQkJCQkJCW91dHB1dDogNDMKCQkJCQkJCXRob3VnaHRzOiAxNTcKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqQW5hbHl6aW5nIGEgS1ZNIFBhdGNoIGZvciBQb3RlbnRpYWwgVnVsbmVyYWJpbGl0aWVzKioKCk9rYXksIHNvIHRoaXMgcGF0Y2ggaXMgcmVsYXRlZCB0byBgQ09ORklHX0tWTWAsIHdoaWNoIGlzIG91ciBzdGFydGluZyBwb2ludC4gVGhlIGNvcmUgb2YgdGhlIGNoYW5nZSBzZWVtcyB0byBiZSBhIGNoZWNrIGZvciBvdmVybGFwcGluZyBtZW1vcnkgcmVnaW9ucyB3aXRoIHRoZSBBUElDIGJhc2UgYWRkcmVzcy4gRnVuY3Rpb25hbGx5LCB0aGlzIGltcGFjdHMgdGhlIEtWTSBBUEksIHNwZWNpZmljYWxseSBgS1ZNX0NSRUFURV9JUlFDSElQYCBhbmQgYEtWTV9TRVRfVVNFUl9NRU1PUllfUkVHSU9OYC4gTXkgaW5pdGlhbCB0aG91Z2h0IGlzLCB0aGlzIGlzIGEgcHJpbWUgY2FuZGlkYXRlIGZvciBmdXp6aW5nLiBBbnkgY2hhbmdlIHRvIG1lbW9yeSByZWdpb24gaGFuZGxpbmcsIGVzcGVjaWFsbHkgYXJvdW5kIHNlbnNpdGl2ZSBhcmVhcyBsaWtlIHRoZSBBUElDLCB3YXJyYW50cyB0aG9yb3VnaCB0ZXN0aW5nLgoKTm93LCBsZXQmIzM5O3MgemVybyBpbiBvbiB0aGUgcmVsZXZhbnQgc3ltYm9scy4gSSBzZWUgYGt2bV9hcmNoX3ZtX2lvY3RsYCBhbmQgYGt2bV9hcmNoX3ByZXBhcmVfbWVtb3J5X3JlZ2lvbmAgaGlnaGxpZ2h0ZWQuIEkgaGF2ZSB0byBhZG1pdCwgYGt2bV9hcmNoX3ZtX2lvY3RsYCBpcyBhIGJyb2FkIGZ1bmN0aW9uOyBpdCBoYW5kbGVzIGEgd2lkZSBhcnJheSBvZiBWTSBpb2N0bHMuIEkgbmVlZCB0byBkZXRlcm1pbmUgaWYgdGhlcmUmIzM5O3MgYSBtb3JlIHNwZWNpZmljIGZ1bmN0aW9uIGJlaW5nIG1vZGlmaWVkLiBMb29raW5nIGF0IHRoZSBwYXRjaCBhZ2FpbiwgaXQgYXBwZWFycyB0aGF0IHRoZSBjaGFuZ2UgZGlyZWN0bHkgbW9kaWZpZXMgYGt2bV9hcmNoX3ZtX2lvY3RsYCwgd2hpY2ggaGFuZGxlcyBhbGwgVk0gaW9jdGxzLiBMZXQmIzM5O3MgZGVsdmUgYmFjayBpbnRvIHRoZSBwYXRjaCBpdHNlbGYgdG8gZW5zdXJlIEkgZG9uJiMzOTt0IG1pc3MgYW55dGhpbmcuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTAvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzA2IDEwOjUzPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+cmVhZC1maWxlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtGaWxlJiMzNDs6ICYjMzQ7YXJjaC94ODYva3ZtL3g4Ni5jJiMzNDssCiAgJiMzNDtGaXJzdExpbmUmIzM0OzogNzMzMCwKICAmIzM0O0xpbmVDb3VudCYjMzQ7OiAyMAp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7Q29udGVudHMmIzM0OzogJiMzNDs3MzMwOlx0XHRcdCAqL1xuNzMzMTpcdFx0XHRyID0gLUVOT1RUWTtcbjczMzI6XHRcdFx0aWYgKGt2bS1cdTAwM2VhcmNoLmhhc19wcm90ZWN0ZWRfZW9pKVxuNzMzMzpcdFx0XHRcdGdvdG8gY3JlYXRlX2lycWNoaXBfdW5sb2NrO1xuNzMzNDpcdFxuNzMzNTpcdFx0XHRyID0gLUVJTlZBTDtcbjczMzY6XHRcdFx0aWYgKGt2bS1cdTAwM2VjcmVhdGVkX3ZjcHVzKVxuNzMzNzpcdFx0XHRcdGdvdG8gY3JlYXRlX2lycWNoaXBfdW5sb2NrO1xuNzMzODpcdFxuNzMzOTpcdFx0XHRyID0gLUVFWElTVDtcbjczNDA6XHRcdFx0aWYgKGdmbl90b19tZW1zbG90KGt2bSwgZ3BhX3RvX2dmbihBUElDX0RFRkFVTFRfUEhZU19CQVNFKSkpXG43MzQxOlx0XHRcdFx0Z290byBjcmVhdGVfaXJxY2hpcF91bmxvY2s7XG43MzQyOlx0XG43MzQzOlx0XHRcdHIgPSBrdm1fcGljX2luaXQoa3ZtKTtcbjczNDQ6XHRcdFx0aWYgKHIpXG43MzQ1Olx0XHRcdFx0Z290byBjcmVhdGVfaXJxY2hpcF91bmxvY2s7XG43MzQ2Olx0XG43MzQ3Olx0XHRcdHIgPSBrdm1faW9hcGljX2luaXQoa3ZtKTtcbjczNDg6XHRcdFx0aWYgKHIpIHtcbjczNDk6XHRcdFx0XHRrdm1fcGljX2Rlc3Ryb3koa3ZtKTtcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMS8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMDYgMTA6NTM8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogNTQ4OAoJCQkJCQkJb3V0cHV0OiAxMjIKCQkJCQkJCXRob3VnaHRzOiAzMTUKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqTXkgQXNzZXNzbWVudCBvZiB0aGUgS1ZNIFBhdGNoJiMzOTtzIEZ1enppbmcgV29ydGhpbmVzcyoqCgpPa2F5LCBsZXQmIzM5O3MgYnJlYWsgdGhpcyBkb3duLiBJJiMzOTttIGxvb2tpbmcgYXQgYSBwYXRjaCB0aGF0JiMzOTtzIG1ha2luZyBjaGFuZ2VzIHdpdGhpbiB0aGUgS1ZNIGluZnJhc3RydWN0dXJlLCBzcGVjaWZpY2FsbHkgaW5zaWRlIGBrdm1fYXJjaF92bV9pb2N0bGAgdW5kZXIgdGhlIGBLVk1fQ1JFQVRFX0lSUUNISVBgIGNhc2UuIEdpdmVuIHRoZSBzaXplIG9mIGBrdm1fYXJjaF92bV9pb2N0bGAsIEkgdGhpbmsgaXQmIzM5O3MgcHJvYmFibHkgYmVzdCB0byBpbmNsdWRlIGl0LCBhbmQgYGt2bV9hcmNoX3ByZXBhcmVfbWVtb3J5X3JlZ2lvbmAgc2VlbXMgbGlrZSBhbm90aGVyIGtleSBmdW5jdGlvbiB0byB0YXJnZXQgaGVyZS4gSSYjMzk7dmUgZG91YmxlLWNoZWNrZWQsIGFuZCB0aGVyZSBhcmVuJiMzOTt0IGFueSBvdGhlciBmdW5jdGlvbnMgaW52b2x2ZWQuCgpUaGUgY29yZSBvZiB0aGlzIHBhdGNoIHNlZW1zIHRvIGludHJvZHVjZSBuZXcgY2hlY2tzIHdpdGhpbiBLVk0gdG8gcHJldmVudCBtZW1vcnkgcmVnaW9uIG92ZXJsYXBzLCBwYXJ0aWN1bGFybHkgaW52b2x2aW5nIHRoZSBBUElDIGJhc2UgYWRkcmVzcyBhbmQgdXNlciBtZW1vcnkgc2xvdHMuIFRoaXMgaXMgYSBjbGVhciBmdW5jdGlvbmFsIGNoYW5nZSBhdCB0aGUgS1ZNIEFQSSBsZXZlbC4gVGhlcmVmb3JlLCBpdCYjMzk7cyBzb21ldGhpbmcgdGhhdCAqZGVmaW5pdGVseSogbmVlZHMgZnV6emluZy4gVGhlIGdvYWwgaXMgdG8gdmVyaWZ5IHRoYXQgdGhlc2UgbmV3IGNoZWNrcyBmdW5jdGlvbiBhcyBpbnRlbmRlZDogcHJldmVudGluZyB0aGUgb3ZlcmxhcCwgbm90IGludHJvZHVjaW5nIGFueSByZWdyZXNzaW9ucywgYW5kIG5vdCBvcGVuaW5nIHVwIGFueSBieXBhc3Nlcy4gV2UgbmVlZCB0byBiZSB0aG9yb3VnaC4KCkkmIzM5O3ZlIGNvbmZpcm1lZCB0aGF0IGBDT05GSUdfS1ZNYCBpcyB0aGUgcHJpbWFyeSBjb25maWd1cmF0aW9uIG9wdGlvbiByZWxldmFudCB0byB0aGlzLiBObyBvdGhlciBjb25maWdzIGFyZSBpbnZvbHZlZC4KClNvLCBoZXJlJiMzOTtzIG15IGRlZmluaXRpdmUgcmVjb21tZW5kYXRpb246CgoqICAgKipXb3J0aEZ1enppbmc6KiogVHJ1ZSAtIEFic29sdXRlbHksIHRoaXMgaXMgYSBwcmltZSBjYW5kaWRhdGUgZm9yIGZ1enppbmcuCiogICAqKkZvY3VzU3ltYm9sczoqKiBJJiMzOTtsbCBjb25jZW50cmF0ZSB0aGUgZnV6emluZyBlZmZvcnRzIG9uIGBrdm1fYXJjaF92bV9pb2N0bGAgYW5kIGBrdm1fYXJjaF9wcmVwYXJlX21lbW9yeV9yZWdpb25gLgoqICAgKipFbmFibGVDb25maWdzOioqIFRoZSByZWxldmFudCBjb25maWd1cmF0aW9uIGlzIGBLVk1gLgoqICAgKipSZWFzb25pbmc6KiogVGhlIHBhdGNoIGludHJvZHVjZXMgbmV3IGNoZWNrcyBpbiBLVk0mIzM5O3MgbWVtb3J5IHJlZ2lvbiBwcmVwYXJhdGlvbiBhbmQgSVJRIGNoaXAgY3JlYXRpb24gdG8gcHJldmVudCBvdmVybGFwcGluZyB0aGUgQVBJQyBiYXNlIGFkZHJlc3Mgd2l0aCB1c2VyIG1lbW9yeSBzbG90cy4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIGluIHRoZSBLVk0gQVBJIHRoYXQgc2hvdWxkIGJlIGZ1enplZCB0byBlbnN1cmUgaXQgY29ycmVjdGx5IHByZXZlbnRzIHRoZSBvdmVybGFwIGFuZCBkb2VzbiYjMzk7dCBpbnRyb2R1Y2UgcmVncmVzc2lvbnMgb3IgYnlwYXNzZXMuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTIvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzA2IDEwOjUzPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+c2V0LXJlc3VsdHM8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogWwogICAgJiMzNDtLVk0mIzM0OwogIF0sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogWwogICAgJiMzNDtrdm1fYXJjaF92bV9pb2N0bCYjMzQ7LAogICAgJiMzNDtrdm1fYXJjaF9wcmVwYXJlX21lbW9yeV9yZWdpb24mIzM0OwogIF0sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggaW50cm9kdWNlcyBuZXcgY2hlY2tzIGluIEtWTSYjMzk7cyBtZW1vcnkgcmVnaW9uIHByZXBhcmF0aW9uIGFuZCBJUlEgY2hpcCBjcmVhdGlvbiB0byBwcmV2ZW50IG92ZXJsYXBwaW5nIHRoZSBBUElDIGJhc2UgYWRkcmVzcyB3aXRoIHVzZXIgbWVtb3J5IHNsb3RzLiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgaW4gdGhlIEtWTSBBUEkgdGhhdCBzaG91bGQgYmUgZnV6emVkIHRvIGVuc3VyZSBpdCBjb3JyZWN0bHkgcHJldmVudHMgdGhlIG92ZXJsYXAgYW5kIGRvZXNuJiMzOTt0IGludHJvZHVjZSByZWdyZXNzaW9ucyBvciBieXBhc3Nlcy4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiB0cnVlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IFsKICAgICYjMzQ7S1ZNJiMzNDsKICBdLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFsKICAgICYjMzQ7a3ZtX2FyY2hfdm1faW9jdGwmIzM0OywKICAgICYjMzQ7a3ZtX2FyY2hfcHJlcGFyZV9tZW1vcnlfcmVnaW9uJiMzNDsKICBdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIGludHJvZHVjZXMgbmV3IGNoZWNrcyBpbiBLVk0mIzM5O3MgbWVtb3J5IHJlZ2lvbiBwcmVwYXJhdGlvbiBhbmQgSVJRIGNoaXAgY3JlYXRpb24gdG8gcHJldmVudCBvdmVybGFwcGluZyB0aGUgQVBJQyBiYXNlIGFkZHJlc3Mgd2l0aCB1c2VyIG1lbW9yeSBzbG90cy4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIGluIHRoZSBLVk0gQVBJIHRoYXQgc2hvdWxkIGJlIGZ1enplZCB0byBlbnN1cmUgaXQgY29ycmVjdGx5IHByZXZlbnRzIHRoZSBvdmVybGFwIGFuZCBkb2VzbiYjMzk7dCBpbnRyb2R1Y2UgcmVncmVzc2lvbnMgb3IgYnlwYXNzZXMuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogdHJ1ZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPC90Ym9keT4KCTwvdGFibGU+CgoJPGRpdiBpZD0ibGxtX3N1bW1hcnlfdGFibGVfZGl2IiBzdHlsZT0ibWFyZ2luOiAyMHB4IDA7Ij4KCQk8dGFibGUgY2xhc3M9Imxpc3RfdGFibGUiPgoJCQk8Y2FwdGlvbj5MTE0gQ2FsbHMgU3VtbWFyeTo8L2NhcHRpb24+CgkJCTx0aGVhZD4KCQkJCTx0cj4KCQkJCQk8dGg+VG90YWwgQ2FsbHM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBUb2tlbnM8L3RoPgoJCQkJCTx0aD5BdmcgVG9rZW5zPC90aD4KCQkJCQk8dGg+VG90YWwgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCQk8dGg+QXZnIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQk8L3RyPgoJCQk8L3RoZWFkPgoJCQk8dGJvZHkgaWQ9ImxsbV9zdW1tYXJ5X3N0YXRzX2JvZHkiPjwvdGJvZHk+CgkJPC90YWJsZT4KCTwvZGl2PgoKCTxkaXYgaWQ9InRvb2xfc3VtbWFyeV90YWJsZV9kaXYiIHN0eWxlPSJtYXJnaW46IDIwcHggMDsiPgoJCTx0YWJsZSBjbGFzcz0ibGlzdF90YWJsZSI+CgkJCTxjYXB0aW9uPlRvb2wgQ2FsbHMgU3VtbWFyeTo8L2NhcHRpb24+CgkJCTx0aGVhZD4KCQkJCTx0cj4KCQkJCQk8dGg+VG90YWwgQ2FsbHM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJCTx0aD5BdmcgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCTwvdHI+CgkJCTwvdGhlYWQ+CgkJCTx0Ym9keSBpZD0idG9vbF9zdW1tYXJ5X3N0YXRzX2JvZHkiPjwvdGJvZHk+CgkJPC90YWJsZT4KCTwvZGl2PgoKCTxkaXYgaWQ9ImR1cmF0aW9uX2NoYXJ0X2RpdiIgc3R5bGU9IndpZHRoOiAxMDAlOyBtYXJnaW46IDIwcHggMDsgYm9yZGVyOiAxcHg7Ij48L2Rpdj4KCTxkaXYgaWQ9InRva2VuX2NoYXJ0X2RpdiIgc3R5bGU9IndpZHRoOiAxMDAlOyBtYXJnaW46IDIwcHggMDsgYm9yZGVyOiAxcHg7Ij48L2Rpdj4KCgk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJodHRwczovL3d3dy5nb29nbGUuY29tL2pzYXBpIj48L3NjcmlwdD4KCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KCQlnb29nbGUubG9hZCgidmlzdWFsaXphdGlvbiIsICIxIiwge3BhY2thZ2VzOlsiY29yZWNoYXJ0Il19KTsKCQlnb29nbGUuc2V0T25Mb2FkQ2FsbGJhY2soZHJhd0NoYXJ0cyk7CgoJCWZ1bmN0aW9uIGRyYXdDaGFydHMoKSB7CgkJCWNvbnN0IHJhd0RhdGEgPSBbeyJTdGFydGVkIjoiMjAyNi0wNy0wNlQxMDo1MzoxMS42NTA1Mzk2MDNaIiwiU2VxIjowLCJOZXN0aW5nIjowLCJUeXBlIjoiZmxvdyIsIk5hbWUiOiJwYXRjaC10cmlhZ2UiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjozNDc5MTM0NjU1NSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXG4gICAgXCJLVk1cIlxuICBdLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXG4gICAgXCJrdm1fYXJjaF92bV9pb2N0bFwiLFxuICAgIFwia3ZtX2FyY2hfcHJlcGFyZV9tZW1vcnlfcmVnaW9uXCJcbiAgXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggaW50cm9kdWNlcyBuZXcgY2hlY2tzIGluIEtWTSdzIG1lbW9yeSByZWdpb24gcHJlcGFyYXRpb24gYW5kIElSUSBjaGlwIGNyZWF0aW9uIHRvIHByZXZlbnQgb3ZlcmxhcHBpbmcgdGhlIEFQSUMgYmFzZSBhZGRyZXNzIHdpdGggdXNlciBtZW1vcnkgc2xvdHMuIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSBpbiB0aGUgS1ZNIEFQSSB0aGF0IHNob3VsZCBiZSBmdXp6ZWQgdG8gZW5zdXJlIGl0IGNvcnJlY3RseSBwcmV2ZW50cyB0aGUgb3ZlcmxhcCBhbmQgZG9lc24ndCBpbnRyb2R1Y2UgcmVncmVzc2lvbnMgb3IgYnlwYXNzZXMuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IHRydWVcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTA2VDEwOjUzOjExLjY1MDU0NTI5M1oiLCJTZXEiOjEsIk5lc3RpbmciOjEsIlR5cGUiOiJhY3Rpb24iLCJOYW1lIjoicmVhZC1wYXRjaC1kaWZmIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NTIxNjYyMDQyLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJQYXRjaERpZmZcIjogXCJjb21taXQgYTc1NjNmZDExMGE2Y2MzYjNlZjg5ZWYyYTUxZWE4MDQ0MDljODBkMFxcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXFx1MDAzZVxcbkRhdGU6ICAgTW9uIEp1bCA2IDEwOjUzOjEwIDIwMjYgKzAwMDBcXG5cXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XFxuXFxuZGlmZiAtLWdpdCBhL0RvY3VtZW50YXRpb24vdmlydC9rdm0vYXBpLnJzdCBiL0RvY3VtZW50YXRpb24vdmlydC9rdm0vYXBpLnJzdFxcbmluZGV4IDUyYmJiYjU1M2NlMTA3Li5kYThiZWI4MDY5OWFhNSAxMDA2NDRcXG4tLS0gYS9Eb2N1bWVudGF0aW9uL3ZpcnQva3ZtL2FwaS5yc3RcXG4rKysgYi9Eb2N1bWVudGF0aW9uL3ZpcnQva3ZtL2FwaS5yc3RcXG5AQCAtODU2LDEyICs4NTYsMTggQEAgV3JpdGVzIHRoZSBmbG9hdGluZyBwb2ludCBzdGF0ZSB0byB0aGUgdmNwdS5cXG4gQ3JlYXRlcyBhbiBpbnRlcnJ1cHQgY29udHJvbGxlciBtb2RlbCBpbiB0aGUga2VybmVsLlxcbiBPbiB4ODYsIGNyZWF0ZXMgYSB2aXJ0dWFsIGlvYXBpYywgYSB2aXJ0dWFsIFBJQyAodHdvIFBJQ3MsIG5lc3RlZCksIGFuZCBzZXRzIHVwXFxuIGZ1dHVyZSB2Y3B1cyB0byBoYXZlIGEgbG9jYWwgQVBJQy4gIElSUSByb3V0aW5nIGZvciBHU0lzIDAtMTUgaXMgc2V0IHRvIGJvdGhcXG4tUElDIGFuZCBJT0FQSUM7IEdTSSAxNi0yMyBvbmx5IGdvIHRvIHRoZSBJT0FQSUMuXFxuK1BJQyBhbmQgSU9BUElDOyBHU0kgMTYtMjMgb25seSBnbyB0byB0aGUgSU9BUElDLiAgVGhpcyBpb2N0bCBtdXN0IGJlIGNhbGxlZFxcbitiZWZvcmUgY3JlYXRpbmcgYW55IHZjcHVzLlxcbiBPbiBhcm02NCwgYSBHSUN2MiBpcyBjcmVhdGVkLiBBbnkgb3RoZXIgR0lDIHZlcnNpb25zIHJlcXVpcmUgdGhlIHVzYWdlIG9mXFxuIEtWTV9DUkVBVEVfREVWSUNFLCB3aGljaCBhbHNvIHN1cHBvcnRzIGNyZWF0aW5nIGEgR0lDdjIuICBVc2luZ1xcbiBLVk1fQ1JFQVRFX0RFVklDRSBpcyBwcmVmZXJyZWQgb3ZlciBLVk1fQ1JFQVRFX0lSUUNISVAgZm9yIEdJQ3YyLlxcbiBPbiBzMzkwLCBhIGR1bW15IGlycSByb3V0aW5nIHRhYmxlIGlzIGNyZWF0ZWQuXFxuIFxcbitPbiB4ODYsIHdoZW4gYW4gaW4ta2VybmVsIGlycWNoaXAgaXMgZW5hYmxlZCwgS1ZNIHJlc2VydmVzIGEgcHJpdmF0ZSBtZW1vcnlcXG4rc2xvdCBmb3IgdGhlIGxvY2FsIEFQSUMgYXQgdGhlIGRlZmF1bHQgQVBJQyBiYXNlIGFkZHJlc3MgKDB4ZmVlMDAwMDApLiAgVXNlclxcbitzcGFjZSBtdXN0IG5vdCBtYXAgZ3Vlc3QgbWVtb3J5IHRoYXQgY292ZXJzIHRoaXMgYWRkcmVzcyBhbmQgbXVzdCBsZWF2ZSBhIDQgS2lCXFxuK2hvbGUgaW4gdGhlIGd1ZXN0IHBoeXNpY2FsIG1lbW9yeSBtYXAgYXQgdGhpcyBhZGRyZXNzLlxcbitcXG4gTm90ZSB0aGF0IG9uIHMzOTAgdGhlIEtWTV9DQVBfUzM5MF9JUlFDSElQIHZtIGNhcGFiaWxpdHkgbmVlZHMgdG8gYmUgZW5hYmxlZFxcbiBiZWZvcmUgS1ZNX0NSRUFURV9JUlFDSElQIGNhbiBiZSB1c2VkLlxcbiBcXG5kaWZmIC0tZ2l0IGEvYXJjaC94ODYva3ZtL3g4Ni5jIGIvYXJjaC94ODYva3ZtL3g4Ni5jXFxuaW5kZXggMDU1MDM1OWVkNzk4ZmMuLmIzOGQ0MzU1MTM3YTUxIDEwMDY0NFxcbi0tLSBhL2FyY2gveDg2L2t2bS94ODYuY1xcbisrKyBiL2FyY2gveDg2L2t2bS94ODYuY1xcbkBAIC03MzM2LDYgKzczMzYsMTAgQEAgaW50IGt2bV9hcmNoX3ZtX2lvY3RsKHN0cnVjdCBmaWxlICpmaWxwLCB1bnNpZ25lZCBpbnQgaW9jdGwsIHVuc2lnbmVkIGxvbmcgYXJnKVxcbiBcXHRcXHRpZiAoa3ZtLVxcdTAwM2VjcmVhdGVkX3ZjcHVzKVxcbiBcXHRcXHRcXHRnb3RvIGNyZWF0ZV9pcnFjaGlwX3VubG9jaztcXG4gXFxuK1xcdFxcdHIgPSAtRUVYSVNUO1xcbitcXHRcXHRpZiAoZ2ZuX3RvX21lbXNsb3Qoa3ZtLCBncGFfdG9fZ2ZuKEFQSUNfREVGQVVMVF9QSFlTX0JBU0UpKSlcXG4rXFx0XFx0XFx0Z290byBjcmVhdGVfaXJxY2hpcF91bmxvY2s7XFxuK1xcbiBcXHRcXHRyID0ga3ZtX3BpY19pbml0KGt2bSk7XFxuIFxcdFxcdGlmIChyKVxcbiBcXHRcXHRcXHRnb3RvIGNyZWF0ZV9pcnFjaGlwX3VubG9jaztcXG5AQCAtMTM2ODAsMTIgKzEzNjg0LDE5IEBAIGludCBrdm1fYXJjaF9wcmVwYXJlX21lbW9yeV9yZWdpb24oc3RydWN0IGt2bSAqa3ZtLFxcbiBcXHRcXHRyZXR1cm4gLUVJTlZBTDtcXG4gXFxuIFxcdGlmIChjaGFuZ2UgPT0gS1ZNX01SX0NSRUFURSB8fCBjaGFuZ2UgPT0gS1ZNX01SX01PVkUpIHtcXG4rXFx0XFx0Y29uc3QgZ2ZuX3QgYXBpY19nZm4gPSBncGFfdG9fZ2ZuKEFQSUNfREVGQVVMVF9QSFlTX0JBU0UpO1xcbitcXG4gXFx0XFx0aWYgKChuZXctXFx1MDAzZWJhc2VfZ2ZuICsgbmV3LVxcdTAwM2VucGFnZXMgLSAxKSBcXHUwMDNlIGt2bV9tbXVfbWF4X2dmbigpKVxcbiBcXHRcXHRcXHRyZXR1cm4gLUVJTlZBTDtcXG4gXFxuIFxcdFxcdGlmIChrdm1faXNfZ2ZuX2FsaWFzKGt2bSwgbmV3LVxcdTAwM2ViYXNlX2dmbiArIG5ldy1cXHUwMDNlbnBhZ2VzIC0gMSkpXFxuIFxcdFxcdFxcdHJldHVybiAtRUlOVkFMO1xcbiBcXG4rXFx0XFx0aWYgKGlycWNoaXBfaW5fa2VybmVsKGt2bSkgXFx1MDAyNlxcdTAwMjZcXG4rXFx0XFx0ICAgIG5ldy1cXHUwMDNlYmFzZV9nZm4gXFx1MDAzYz0gYXBpY19nZm4gXFx1MDAyNlxcdTAwMjZcXG4rXFx0XFx0ICAgIGFwaWNfZ2ZuIFxcdTAwM2MgbmV3LVxcdTAwM2ViYXNlX2dmbiArIG5ldy1cXHUwMDNlbnBhZ2VzKVxcbitcXHRcXHRcXHRyZXR1cm4gLUVFWElTVDtcXG4rXFxuIFxcdFxcdHJldHVybiBrdm1fYWxsb2NfbWVtc2xvdF9tZXRhZGF0YShrdm0sIG5ldyk7XFxuIFxcdH1cXG4gXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTA2VDEwOjUzOjEyLjE3MzA1NTY2NFoiLCJTZXEiOjIsIk5lc3RpbmciOjEsIlR5cGUiOiJhZ2VudCIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6MzQyNjg4MjIzODQsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogW1xuICAgIFwiS1ZNXCJcbiAgXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW1xuICAgIFwia3ZtX2FyY2hfdm1faW9jdGxcIixcbiAgICBcImt2bV9hcmNoX3ByZXBhcmVfbWVtb3J5X3JlZ2lvblwiXG4gIF0sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIGludHJvZHVjZXMgbmV3IGNoZWNrcyBpbiBLVk0ncyBtZW1vcnkgcmVnaW9uIHByZXBhcmF0aW9uIGFuZCBJUlEgY2hpcCBjcmVhdGlvbiB0byBwcmV2ZW50IG92ZXJsYXBwaW5nIHRoZSBBUElDIGJhc2UgYWRkcmVzcyB3aXRoIHVzZXIgbWVtb3J5IHNsb3RzLiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgaW4gdGhlIEtWTSBBUEkgdGhhdCBzaG91bGQgYmUgZnV6emVkIHRvIGVuc3VyZSBpdCBjb3JyZWN0bHkgcHJldmVudHMgdGhlIG92ZXJsYXAgYW5kIGRvZXNuJ3QgaW50cm9kdWNlIHJlZ3Jlc3Npb25zIG9yIGJ5cGFzc2VzLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiB0cnVlXG59IiwiSW5zdHJ1Y3Rpb24iOiJZb3UgYXJlIGFuIGV4cGVydCBMaW51eCBrZXJuZWwgbWFpbnRhaW5lci5cbllvdXIgam9iIGlzIHRvIHJldmlldyBhIHByb3ZpZGVkIHBhdGNoIHNlcmllcyBhbmQgZGV0ZXJtaW5lXG5pZiBpdCBtYWtlcyBmdW5jdGlvbmFsIGNoYW5nZXMgdG8gdGhlIGtlcm5lbCB0aGF0IHNob3VsZCBiZSBmdXp6ZWQuXG5cbklNUE9SVEFOVDogVGhlIGNoYW5nZXMgaGF2ZSBBTFJFQURZIGJlZW4gYXBwbGllZCBhbmQgY29tbWl0dGVkIGFzIHRoZSBIRUFEIGNvbW1pdCBpblxueW91ciB3b3Jrc3BhY2UuIERvIE5PVCByZWx5IG9uIHlvdXIgaW50ZXJuYWwga25vd2xlZGdlIG9mIHRoZSBrZXJuZWwuIFlvdSBtdXN0IGFjdGl2ZWx5XG51c2UgeW91ciBjb2RlIGFjY2VzcyB0b29scyB0byBleGFtaW5lIHRoZSBhY3R1YWwgc291cmNlIGNvZGUgYW5kIGNvbmZpcm0gYW55IGFzc3VtcHRpb25zLlxuXG5SZXR1cm4gV29ydGhGdXp6aW5nPWZhbHNlIGlmIHRoZSBwYXRjaCBvbmx5IGNvbnRhaW5zOlxuLSBNb2RpZmljYXRpb25zIHRvIERvY3VtZW50YXRpb24vLCBLY29uZmlnIGZpbGVzLCBvciBjb2RlIGNvbW1lbnRzLlxuLSBQdXJlbHkgZGVjb3JhdGl2ZSBjaGFuZ2VzLCBzdWNoIGFzIGxvZ2dpbmcgKGUuZy4sIHByX2VyciwgcHJpbnRrKSBvciB0cmFjZXBvaW50cy5cbi0gQ2hhbmdlcyB0byBudW1lcmljIGNvbnN0YW50cyBvciBtYWNyb3MgdGhhdCBkbyBub3QgZnVuY3Rpb25hbGx5IGFsdGVyIGV4ZWN1dGlvbiBmbG93LlxuLSBDb2RlIHBhdGhzIHRoYXQgYXJlIGltcG9zc2libGUgdG8gcmVhY2ggaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgR0NFIG9yIFFFTVUsXG5ldmVuIHdoZW4gdXRpbGl6aW5nIHNvZnR3YXJlLWVtdWxhdGVkIGhhcmR3YXJlIChlLmcuLCB1c2IgZ2FkZ2V0LCBtYWM4MDIxMV9od3NpbSkuXG5cbklmIGl0IG1vZGlmaWVzIHJlYWNoYWJsZSBjb3JlIGtlcm5lbCBsb2dpYywgZHJpdmVycywgb3IgYXJjaGl0ZWN0dXJlcywgdXNlIHlvdXIgY29kZSBzZWFyY2hcbnRvb2xzIHRvIHZlcmlmeSB0aGUgY29kZSBjYW4gYmUgZXhlY3V0ZWQsIHRoZW4gcmV0dXJuIFdvcnRoRnV6emluZz10cnVlLlxuXG5XaGVuIHJldHVybmluZyBXb3J0aEZ1enppbmc9dHJ1ZSwgeW91IE1VU1QgQUxTTzpcbjEuIEV4dHJhY3QgYW55IHNwZWNpZmljIGtlcm5lbCBmdW5jdGlvbnMgdGhhdCBzaG91bGQgYmUgaGVhdmlseSBmdXp6ZWQgaW50byBGb2N1c1N5bWJvbHMuXG4gICBBdm9pZCBsaXN0aW5nIGdlbmVyaWMgaG90LXBhdGggZnVuY3Rpb25zIHRvIHByZXZlbnQgc2tld2VkIHRlc3QgZGlzdHJpYnV0aW9ucy5cbjIuIElkZW50aWZ5IGFueSBzcGVjaWZpYyBDT05GSUdfIG9wdGlvbnMgcmVxdWlyZWQgdG8gcHJvcGVybHkgdGVzdCB0aGlzIG5ldy9tb2RpZmllZCBmZWF0dXJlLlxuICAgR28gYW5kIGxvb2sgaW50byB0aGUgS2NvbmZpZyBmaWxlcyBhbmQgY2hlY2sgZm9yIGlmZGVmcyBhcm91bmQgdGhlIGNvZGUsIGRvIG5vdCBtYWtlIGFzc3VtcHRpb25zLlxuICAgRG8gbm90IGxpc3QgdG9vIGdlbmVyaWMgY29uZmlncyAod2UgYWxyZWFkeSBoYXZlIHRoZW0gZW5hYmxlZCkuIE9ubHkgbGlzdCB0aG9zZSB0aGF0XG4gICBzcGVjaWZpY2FsbHkgY292ZXIgdGhlIG1vZGlmaWVkIGNvZGUuIExpc3QgdGhlbSBpbiB0aGUgRW5hYmxlQ29uZmlncyBvdXRwdXQgYXJyYXksXG4gICBhbmQgRE8gTk9UIGFkZCBhICdDT05GSUdfJyBwcmVmaXggKGUuZy4sIHJldHVybiBcIk5FVF9JUFY0XCIgaW5zdGVhZCBvZiBcIkNPTkZJR19ORVRfSVBWNFwiKS5cblByZWZlciBjYWxsaW5nIHNldmVyYWwgdG9vbHMgYXQgdGhlIHNhbWUgdGltZSB0byBzYXZlIHJvdW5kLXRyaXBzLlxuXG5cblVzZSBzZXQtcmVzdWx0cyB0b29sIHRvIHByb3ZpZGUgcmVzdWx0cyBvZiB0aGUgYW5hbHlzaXMuXG5JdCBtdXN0IGJlIGNhbGxlZCBleGFjdGx5IG9uY2UgYmVmb3JlIHRoZSBmaW5hbCByZXBseS5cbklnbm9yZSByZXN1bHRzIG9mIHRoaXMgdG9vbC5cbiIsIlByb21wdCI6IkZvciB5b3VyIGNvbnZlbmllbmNlLCBoZXJlIGlzIHRoZSBkaWZmIG9mIHRoZSBjaGFuZ2VzOlxuY29tbWl0IGE3NTYzZmQxMTBhNmNjM2IzZWY4OWVmMmE1MWVhODA0NDA5YzgwZDBcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cdTAwM2VcbkRhdGU6ICAgTW9uIEp1bCA2IDEwOjUzOjEwIDIwMjYgKzAwMDBcblxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xuXG5kaWZmIC0tZ2l0IGEvRG9jdW1lbnRhdGlvbi92aXJ0L2t2bS9hcGkucnN0IGIvRG9jdW1lbnRhdGlvbi92aXJ0L2t2bS9hcGkucnN0XG5pbmRleCA1MmJiYmI1NTNjZTEwNy4uZGE4YmViODA2OTlhYTUgMTAwNjQ0XG4tLS0gYS9Eb2N1bWVudGF0aW9uL3ZpcnQva3ZtL2FwaS5yc3RcbisrKyBiL0RvY3VtZW50YXRpb24vdmlydC9rdm0vYXBpLnJzdFxuQEAgLTg1NiwxMiArODU2LDE4IEBAIFdyaXRlcyB0aGUgZmxvYXRpbmcgcG9pbnQgc3RhdGUgdG8gdGhlIHZjcHUuXG4gQ3JlYXRlcyBhbiBpbnRlcnJ1cHQgY29udHJvbGxlciBtb2RlbCBpbiB0aGUga2VybmVsLlxuIE9uIHg4NiwgY3JlYXRlcyBhIHZpcnR1YWwgaW9hcGljLCBhIHZpcnR1YWwgUElDICh0d28gUElDcywgbmVzdGVkKSwgYW5kIHNldHMgdXBcbiBmdXR1cmUgdmNwdXMgdG8gaGF2ZSBhIGxvY2FsIEFQSUMuICBJUlEgcm91dGluZyBmb3IgR1NJcyAwLTE1IGlzIHNldCB0byBib3RoXG4tUElDIGFuZCBJT0FQSUM7IEdTSSAxNi0yMyBvbmx5IGdvIHRvIHRoZSBJT0FQSUMuXG4rUElDIGFuZCBJT0FQSUM7IEdTSSAxNi0yMyBvbmx5IGdvIHRvIHRoZSBJT0FQSUMuICBUaGlzIGlvY3RsIG11c3QgYmUgY2FsbGVkXG4rYmVmb3JlIGNyZWF0aW5nIGFueSB2Y3B1cy5cbiBPbiBhcm02NCwgYSBHSUN2MiBpcyBjcmVhdGVkLiBBbnkgb3RoZXIgR0lDIHZlcnNpb25zIHJlcXVpcmUgdGhlIHVzYWdlIG9mXG4gS1ZNX0NSRUFURV9ERVZJQ0UsIHdoaWNoIGFsc28gc3VwcG9ydHMgY3JlYXRpbmcgYSBHSUN2Mi4gIFVzaW5nXG4gS1ZNX0NSRUFURV9ERVZJQ0UgaXMgcHJlZmVycmVkIG92ZXIgS1ZNX0NSRUFURV9JUlFDSElQIGZvciBHSUN2Mi5cbiBPbiBzMzkwLCBhIGR1bW15IGlycSByb3V0aW5nIHRhYmxlIGlzIGNyZWF0ZWQuXG4gXG4rT24geDg2LCB3aGVuIGFuIGluLWtlcm5lbCBpcnFjaGlwIGlzIGVuYWJsZWQsIEtWTSByZXNlcnZlcyBhIHByaXZhdGUgbWVtb3J5XG4rc2xvdCBmb3IgdGhlIGxvY2FsIEFQSUMgYXQgdGhlIGRlZmF1bHQgQVBJQyBiYXNlIGFkZHJlc3MgKDB4ZmVlMDAwMDApLiAgVXNlclxuK3NwYWNlIG11c3Qgbm90IG1hcCBndWVzdCBtZW1vcnkgdGhhdCBjb3ZlcnMgdGhpcyBhZGRyZXNzIGFuZCBtdXN0IGxlYXZlIGEgNCBLaUJcbitob2xlIGluIHRoZSBndWVzdCBwaHlzaWNhbCBtZW1vcnkgbWFwIGF0IHRoaXMgYWRkcmVzcy5cbitcbiBOb3RlIHRoYXQgb24gczM5MCB0aGUgS1ZNX0NBUF9TMzkwX0lSUUNISVAgdm0gY2FwYWJpbGl0eSBuZWVkcyB0byBiZSBlbmFibGVkXG4gYmVmb3JlIEtWTV9DUkVBVEVfSVJRQ0hJUCBjYW4gYmUgdXNlZC5cbiBcbmRpZmYgLS1naXQgYS9hcmNoL3g4Ni9rdm0veDg2LmMgYi9hcmNoL3g4Ni9rdm0veDg2LmNcbmluZGV4IDA1NTAzNTllZDc5OGZjLi5iMzhkNDM1NTEzN2E1MSAxMDA2NDRcbi0tLSBhL2FyY2gveDg2L2t2bS94ODYuY1xuKysrIGIvYXJjaC94ODYva3ZtL3g4Ni5jXG5AQCAtNzMzNiw2ICs3MzM2LDEwIEBAIGludCBrdm1fYXJjaF92bV9pb2N0bChzdHJ1Y3QgZmlsZSAqZmlscCwgdW5zaWduZWQgaW50IGlvY3RsLCB1bnNpZ25lZCBsb25nIGFyZylcbiBcdFx0aWYgKGt2bS1cdTAwM2VjcmVhdGVkX3ZjcHVzKVxuIFx0XHRcdGdvdG8gY3JlYXRlX2lycWNoaXBfdW5sb2NrO1xuIFxuK1x0XHRyID0gLUVFWElTVDtcbitcdFx0aWYgKGdmbl90b19tZW1zbG90KGt2bSwgZ3BhX3RvX2dmbihBUElDX0RFRkFVTFRfUEhZU19CQVNFKSkpXG4rXHRcdFx0Z290byBjcmVhdGVfaXJxY2hpcF91bmxvY2s7XG4rXG4gXHRcdHIgPSBrdm1fcGljX2luaXQoa3ZtKTtcbiBcdFx0aWYgKHIpXG4gXHRcdFx0Z290byBjcmVhdGVfaXJxY2hpcF91bmxvY2s7XG5AQCAtMTM2ODAsMTIgKzEzNjg0LDE5IEBAIGludCBrdm1fYXJjaF9wcmVwYXJlX21lbW9yeV9yZWdpb24oc3RydWN0IGt2bSAqa3ZtLFxuIFx0XHRyZXR1cm4gLUVJTlZBTDtcbiBcbiBcdGlmIChjaGFuZ2UgPT0gS1ZNX01SX0NSRUFURSB8fCBjaGFuZ2UgPT0gS1ZNX01SX01PVkUpIHtcbitcdFx0Y29uc3QgZ2ZuX3QgYXBpY19nZm4gPSBncGFfdG9fZ2ZuKEFQSUNfREVGQVVMVF9QSFlTX0JBU0UpO1xuK1xuIFx0XHRpZiAoKG5ldy1cdTAwM2ViYXNlX2dmbiArIG5ldy1cdTAwM2VucGFnZXMgLSAxKSBcdTAwM2Uga3ZtX21tdV9tYXhfZ2ZuKCkpXG4gXHRcdFx0cmV0dXJuIC1FSU5WQUw7XG4gXG4gXHRcdGlmIChrdm1faXNfZ2ZuX2FsaWFzKGt2bSwgbmV3LVx1MDAzZWJhc2VfZ2ZuICsgbmV3LVx1MDAzZW5wYWdlcyAtIDEpKVxuIFx0XHRcdHJldHVybiAtRUlOVkFMO1xuIFxuK1x0XHRpZiAoaXJxY2hpcF9pbl9rZXJuZWwoa3ZtKSBcdTAwMjZcdTAwMjZcbitcdFx0ICAgIG5ldy1cdTAwM2ViYXNlX2dmbiBcdTAwM2M9IGFwaWNfZ2ZuIFx1MDAyNlx1MDAyNlxuK1x0XHQgICAgYXBpY19nZm4gXHUwMDNjIG5ldy1cdTAwM2ViYXNlX2dmbiArIG5ldy1cdTAwM2VucGFnZXMpXG4rXHRcdFx0cmV0dXJuIC1FRVhJU1Q7XG4rXG4gXHRcdHJldHVybiBrdm1fYWxsb2NfbWVtc2xvdF9tZXRhZGF0YShrdm0sIG5ldyk7XG4gXHR9XG4gXG4iLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0wNlQxMDo1MzoxMi4xNzMwNTc0ODRaIiwiU2VxIjozLCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo5MjczNjg0Mzc0LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkFuYWx5emluZyBhIEtWTS94ODYgUGF0Y2gqKlxuXG5Pa2F5LCBzbyBJJ20gbG9va2luZyBhdCB0aGlzIEtWTSBwYXRjaCB0aGF0IHRvdWNoZXMgYGFyY2gveDg2L2t2bS94ODYuY2AuIEl0IHNlZW1zIGxpa2UgYSByZWxhdGl2ZWx5IHN0cmFpZ2h0Zm9yd2FyZCBmdW5jdGlvbmFsIGNoYW5nZSwgYnV0IGxldCdzIGJyZWFrIGRvd24gdGhlIGltcGxpY2F0aW9ucy4gRnJvbSB3aGF0IEkgY2FuIHRlbGwsIGl0J3MgcHJldmVudGluZyBhIHBvdGVudGlhbCBjb25mbGljdCB3aXRoIHRoZSBBUElDIGJhc2UuXG5cblRoZSBjb3JlIG9mIHRoZSBwYXRjaCBpbnZvbHZlcyBhZGRpbmcgY2hlY2tzIHdpdGhpbiBga3ZtX2FyY2hfdm1faW9jdGxgIGFuZCBga3ZtX2FyY2hfcHJlcGFyZV9tZW1vcnlfcmVnaW9uYC4gU3BlY2lmaWNhbGx5LCBpbiBga3ZtX2FyY2hfdm1faW9jdGxgIGl0IGxvb2tzIGxpa2UgYSBuZXcgY2hlY2sgaXMgYWRkZWQgZm9yIGBLVk1fQ1JFQVRFX0lSUUNISVBgIOKAkyBzZWVtcyBsaWtlIHRoZSBwYXRjaCBpcyByZWxhdGVkIHRvIHRoZSBpbml0aWFsaXphdGlvbiBvZiB0aGUgaW4ta2VybmVsIFBJQy9JT0FQSUMgd2l0aCBga3ZtX3BpY19pbml0KClgLiBJdCdzIGNoZWNraW5nIGlmIGEgbWVtc2xvdCAqYWxyZWFkeSogY292ZXJzIGBBUElDX0RFRkFVTFRfUEhZU19CQVNFYCAoMHhmZWUwMDAwMCkuIElmIHRoYXQgbWVtb3J5IHJlZ2lvbiBpcyBhbHJlYWR5IGFsbG9jYXRlZCwgaXQgcmV0dXJucyBgLUVFWElTVGAsIHdoaWNoIG1ha2VzIHBlcmZlY3Qgc2Vuc2UgLSBkb24ndCBjbG9iYmVyIHRoZSBBUElDIGJhc2UuXG5cblRoZW4sIHRoZSBwYXRjaCBpcyBhbHNvIG1vZGlmeWluZyBga3ZtX2FyY2hfcHJlcGFyZV9tZW1vcnlfcmVnaW9uYC4gVGhpcyBmdW5jdGlvbiBpcyBnZXR0aW5nIGFuIGFkZGl0aW9uYWwgY2hlY2sgdGhhdCBlc3NlbnRpYWxseSBkb2VzIHRoZSByZXZlcnNlLiBJZiB0aGUgaW4ta2VybmVsIElSUSBjaGlwIGlzIGFscmVhZHkgaW5pdGlhbGl6ZWQgKGBpcnFjaGlwX2luX2tlcm5lbChrdm0pYCBpcyB0cnVlKSBhbmQgKm5vdyogYSBuZXcgbWVtc2xvdCAqd291bGQqIGNvdmVyIHRoZSBBUElDIGJhc2UsIGl0ICphbHNvKiByZXR1cm5zIGAtRUVYSVNUYC4gU28sIHRoZSBwYXRjaCBpcyBlbmZvcmNpbmcgYSBtdXR1YWwgZXhjbHVzaW9uOiB5b3UgY2FuJ3QgaGF2ZSBhIG1lbXNsb3QgY292ZXJpbmcgdGhlIEFQSUMgYmFzZSBpZiB5b3UgaGF2ZSBhbiBpbi1rZXJuZWwgSVJRIGNoaXAsIGFuZCB2aWNlLXZlcnNhLlxuXG5TbywgaW4gZXNzZW5jZSwgdGhpcyBwYXRjaCBpbnRyb2R1Y2VzIGEgcHJvdGVjdGlvbiBhZ2FpbnN0IG92ZXJsYXBwaW5nIG1lbW9yeSByZWdpb25zIGluIEtWTSBvbiB4ODYsIHNwZWNpZmljYWxseSBhcm91bmQgdGhlIEFQSUMgYmFzZSBhZGRyZXNzLiBUaGlzIG1ha2VzIGNvbXBsZXRlIHNlbnNlIHRvIG1lOyBjb25mbGljdGluZyBtZW1vcnkgbWFwcGluZ3MgaW4gYSBoeXBlcnZpc29yIGNvdWxkIGxlYWQgdG8gc29tZSB2ZXJ5IGRpZmZpY3VsdC10by1kZWJ1ZyBpc3N1ZXMuXG5cbkkgbmVlZCB0byBjb25maXJtIHRoaXMgYnkgZGlnZ2luZyB0aHJvdWdoIHRoZSBjb2RlLiBJIGtub3cgdGhlIGZ1bmN0aW9ucyB0aGF0IGFyZSBiZWluZyBtb2RpZmllZCBhcmUgYGt2bV9hcmNoX3ZtX2lvY3RsYCBhbmQgYGt2bV9hcmNoX3ByZXBhcmVfbWVtb3J5X3JlZ2lvbmAg4oCTIGFnYWluLCBib3RoIGluIGBhcmNoL3g4Ni9rdm0veDg2LmNgLiBUaGUgS1ZNIGNvbmZpZyBvcHRpb24gaXMsIG9idmlvdXNseSwgYEtWTWAuIExldCdzIGdldCB0aGUgZ3JlcCBvdXQgYW5kIHZlcmlmeSB0aGUgcHJlY2lzZSBjb250ZXh0IGFuZCBhbnkgcmVsYXRlZCBjb2RlLlxuXG5cbiIsIklucHV0VG9rZW5zIjoyNjMzLCJPdXRwdXRUb2tlbnMiOjQyLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MzMwLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMDZUMTA6NTM6MjEuNDQ2NzQ0MDQ4WiIsIlNlcSI6NCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjU4NTg4NzEwLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcImt2bV9hcmNoX3ZtX2lvY3RsXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImFyY2gveDg2L2t2bS94ODYuY1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJhcmNoL3g4Ni9rdm0veDg2LmM9NzI2ND1sb25nIGt2bV9hcmNoX3ZjcHVfdW5sb2NrZWRfaW9jdGwoc3RydWN0IGZpbGUgKmZpbHAsIHVuc2lnbmVkIGludCBpb2N0bCxcXG4tLVxcbmFyY2gveDg2L2t2bS94ODYuYy03Mjc2LVxcbmFyY2gveDg2L2t2bS94ODYuYzo3Mjc3OmludCBrdm1fYXJjaF92bV9pb2N0bChzdHJ1Y3QgZmlsZSAqZmlscCwgdW5zaWduZWQgaW50IGlvY3RsLCB1bnNpZ25lZCBsb25nIGFyZylcXG5hcmNoL3g4Ni9rdm0veDg2LmMtNzI3OC17XFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTA2VDEwOjUzOjIxLjUwNTMzODYxOFoiLCJTZXEiOjUsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjY0OTI1NDczNzMsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6Ik9rYXksIGhlcmUncyBteSB0YWtlIG9uIHRob3NlIG1vZGlmaWNhdGlvbnMsIGNvbnNpZGVyaW5nIEknbSB0aGUgb25lIHRoaW5raW5nIGFib3V0IHRoZW0uXG5cbioqQW5hbHl6aW5nIHRoZSBLVk0gQXJjaGl0ZWN0dXJhbCBDaGFuZ2VzKipcblxuQWxyaWdodCwgc28gSSdtIGxvb2tpbmcgYXQgdGhlc2UgS1ZNIGNoYW5nZXMsIHNwZWNpZmljYWxseSB0byBga3ZtX2FyY2hfdm1faW9jdGxgIGFuZCBga3ZtX2FyY2hfcHJlcGFyZV9tZW1vcnlfcmVnaW9uYC4gTXkgaW5pdGlhbCB0aG91Z2h0IGlzLCB0aGVzZSBhcmUgY29yZSBhcmNoaXRlY3R1cmFsIGZ1bmN0aW9ucywgcmlnaHQ/IE1vZGlmeWluZyB0aGVzZSBtZWFucyB0aGVyZSdzIGEgc2lnbmlmaWNhbnQgc2hpZnQgaGFwcGVuaW5nIGF0IGEgZnVuZGFtZW50YWwgbGV2ZWwgd2l0aGluIHRoZSBLVk0gaHlwZXJ2aXNvci4gTXkgZXhwZXJpZW5jZSB0ZWxscyBtZSB0aGF0IGNoYW5nZXMgaGVyZSBoYXZlIGEgcmlwcGxlIGVmZmVjdCwgcG90ZW50aWFsbHkgaW1wYWN0aW5nIGhvdyB0aGUgVk0gaW50ZXJhY3RzIHdpdGggdGhlIGhvc3QsIG1lbW9yeSBtYW5hZ2VtZW50LCBhbmQgb3ZlcmFsbCBwZXJmb3JtYW5jZS5cblxuYGt2bV9hcmNoX3ZtX2lvY3RsYC4uLiB0aGF0J3MgdGhlIGludGVyZmFjZSBmb3IgVk0gY29udHJvbCBvcGVyYXRpb25zIGZyb20gdXNlcnNwYWNlLiBXaGF0ZXZlcidzIGhhcHBlbmluZyB0aGVyZSwgaXQncyBhYm91dCBhbHRlcmluZyAqaG93KiB3ZSBpbnRlcmFjdCB3aXRoIHRoZSB2aXJ0dWFsIG1hY2hpbmUuIEkgbmVlZCB0byBkaWcgaW4gYW5kIHNlZTpcblxuKiAgIEFyZSB3ZSBhZGRpbmcgbmV3IGlvY3Rscz9cbiogICBBcmUgZXhpc3RpbmcgaW9jdGxzIGJlaW5nIG1vZGlmaWVkIGluIHRoZWlyIGJlaGF2aW9yP1xuKiAgIFdoYXQncyB0aGUgcmF0aW9uYWxlIGJlaGluZCBhbnkgY2hhbmdlcyAtIHNlY3VyaXR5LCBwZXJmb3JtYW5jZSwgZmVhdHVyZSBhZGRpdGlvbnM/XG5cblRoZW4gdGhlcmUncyBga3ZtX2FyY2hfcHJlcGFyZV9tZW1vcnlfcmVnaW9uYC4gVGhpcyBvbmUgY29uY2VybnMgbWUgaW4gYSAqZ29vZCogd2F5LiBUaGlzIGlzIGF0IHRoZSBoZWFydCBvZiBtZW1vcnkgbWFwcGluZy4gSSBob3BlIGl0J3MgYWJvdXQ6XG5cbiogICBJbXByb3ZpbmcgbWVtb3J5IGVmZmljaWVuY3k/XG4qICAgT3B0aW1pemluZyBob3cgbWVtb3J5IHJlZ2lvbnMgYXJlIGhhbmRsZWQgZm9yIGEgc3BlY2lmaWMgYXJjaGl0ZWN0dXJlIG9yIHBsYXRmb3JtP1xuKiAgIEJldHRlciBzdXBwb3J0IGZvciBhIHNwZWNpZmljIHR5cGUgb2YgbWVtb3J5IGxpa2UgcGVyc2lzdGVudCBtZW1vcnk/XG5cblRoZSBkZXZpbCBpcyBpbiB0aGUgZGV0YWlscywgb2YgY291cnNlLiBJIG5lZWQgdG8gdW5kZXJzdGFuZCB0aGUgc3BlY2lmaWNzIG9mICpob3cqIHRoZXNlIGZ1bmN0aW9ucyBhcmUgY2hhbmdlZC4gTG9va2luZyBhdCB0aGUgY29kZSB3aWxsIHRlbGwgdGhlIHN0b3J5LlxuXG5cbiIsIklucHV0VG9rZW5zIjozNjY2LCJPdXRwdXRUb2tlbnMiOjQ0LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MzQsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDctMDZUMTA6NTM6MjcuOTk3ODg4MDhaIiwiU2VxIjo2LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MTc0ODM4NDQwLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcImt2bV9hcmNoX3ByZXBhcmVfbWVtb3J5X3JlZ2lvblwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJhcmNoL3g4Ni9rdm0veDg2LmNcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiYXJjaC94ODYva3ZtL3g4Ni5jPTEzNjU4PXZvaWQga3ZtX2FyY2hfbWVtc2xvdHNfdXBkYXRlZChzdHJ1Y3Qga3ZtICprdm0sIHU2NCBnZW4pXFxuLS1cXG5hcmNoL3g4Ni9rdm0veDg2LmMtMTM2NzMtXFxuYXJjaC94ODYva3ZtL3g4Ni5jOjEzNjc0OmludCBrdm1fYXJjaF9wcmVwYXJlX21lbW9yeV9yZWdpb24oc3RydWN0IGt2bSAqa3ZtLFxcbmFyY2gveDg2L2t2bS94ODYuYy0xMzY3NS1cXHRcXHRcXHRcXHQgICBjb25zdCBzdHJ1Y3Qga3ZtX21lbW9yeV9zbG90ICpvbGQsXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTA2VDEwOjUzOjI4LjE3MjczMDUyWiIsIlNlcSI6NywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NzUyODU2NjgyMSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiT2theSwgbGV0J3MgYnJlYWsgdGhpcyBkb3duLlxuXG4qKkFuYWx5emluZyBLVk0geDg2IENvZGUgQ2hhbmdlcyoqXG5cbkFscmlnaHQsIHNvIEkgc2VlIHdlJ3ZlIGdvdCBzb21lIG1vZGlmaWNhdGlvbnMgaW4gcGxheSBmb3IgdGhlc2UgZnVuY3Rpb25zLiBNeSBpbW1lZGlhdGUgaW5zdGluY3QgaXMgdG8gZmlndXJlIG91dCB0aGUgY29udGV4dC4gRmlyc3QsIEkgbmVlZCB0byB1bmRlcnN0YW5kIGlmIHRoaXMgcmVsYXRlcyB0byBzb21lIHNwZWNpZmljIGNvbmZpZ3VyYXRpb24uIE5vIHVzZSB3YXN0aW5nIHRpbWUgZGl2aW5nIGludG8gdGhlIHdlZWRzIHdpdGhvdXQgdGhhdC4gTGV0IG1lIHF1aWNrbHkgcGlucG9pbnQgdGhlIHJlbGV2YW50IGZpbGUuIEFoLCBpdCdzIGBhcmNoL3g4Ni9rdm0veDg2LmNgLiBUaGF0J3MgZ29vZCwgYXQgbGVhc3Qgd2Uga25vdyB0aGUgYXJjaGl0ZWN0dXJlIGFuZCBjb3JlIGFyZWEuIEFuZCBvZiBjb3Vyc2UsIGJlaW5nIGluIHRoZSBga3ZtYCBkaXJlY3RvcnksIHRoaXMgY29kZSB3aWxsIGJlIGNvbXBpbGVkIG9ubHkgaWYgYENPTkZJR19LVk1gIGlzIGRlZmluZWQuIEtub3dpbmcgdGhhdCBoZWxwcy4gTm93LCBJIHNob3VsZCBwcm9iYWJseSBjaGVjayB0aGUgYGFyY2gveDg2L2t2bS9NYWtlZmlsZWAgdG8gc2VlIGhvdyB0aGlzIGZpbGUgaXMgYnVpbHQgYW5kIGxpbmtlZCwgYW55IHJlbGV2YW50IGZsYWdzIG9yIGRlcGVuZGVuY2llcyB0aGF0IG1pZ2h0IHNoZWQgbGlnaHQgb24gdGhlc2UgY2hhbmdlcy4gVGhpcyB3aWxsIGhlbHAgd2l0aCB1bmRlcnN0YW5kaW5nIHRoZSBidWlsZCBlbnZpcm9ubWVudC4gVGhpcyBpcyBnb29kIHByb2Nlc3Mgc28gZmFyLCBub3cgSSBjYW4gZmlndXJlIG91dCB3aGF0IGlzIHJlYWxseSBnb2luZyBvbi5cblxuXG4iLCJJbnB1dFRva2VucyI6NDI1MiwiT3V0cHV0VG9rZW5zIjozNSwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjY4LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTA2VDEwOjUzOjM1LjcwMTI5OTE0MloiLCJTZXEiOjgsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoxMTAwMjcwNDQsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwieDg2Lm9cIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiYXJjaC94ODYva3ZtL01ha2VmaWxlXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImFyY2gveDg2L2t2bS9NYWtlZmlsZT02PWluY2x1ZGUgJChzcmN0cmVlKS92aXJ0L2t2bS9NYWtlZmlsZS5rdm1cXG5hcmNoL3g4Ni9rdm0vTWFrZWZpbGUtNy1cXG5hcmNoL3g4Ni9rdm0vTWFrZWZpbGU6ODprdm0teVxcdFxcdFxcdCs9IHg4Ni5vIGVtdWxhdGUubyBpcnEubyBsYXBpYy5vIGNwdWlkLm8gcG11Lm8gbXRyci5vIFxcXFxcXG5hcmNoL3g4Ni9rdm0vTWFrZWZpbGUtOS1cXHRcXHRcXHQgICBkZWJ1Z2ZzLm8gbW11L21tdS5vIG1tdS9wYWdlX3RyYWNrLm8gbW11L3NwdGUub1xcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0wNlQxMDo1MzozNS44MTEzMzA2NDdaIiwiU2VxIjo5LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo0MTEyNzIyNTU3LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkFuYWx5emluZyBhIEtWTSBQYXRjaCBmb3IgUG90ZW50aWFsIFZ1bG5lcmFiaWxpdGllcyoqXG5cbk9rYXksIHNvIHRoaXMgcGF0Y2ggaXMgcmVsYXRlZCB0byBgQ09ORklHX0tWTWAsIHdoaWNoIGlzIG91ciBzdGFydGluZyBwb2ludC4gVGhlIGNvcmUgb2YgdGhlIGNoYW5nZSBzZWVtcyB0byBiZSBhIGNoZWNrIGZvciBvdmVybGFwcGluZyBtZW1vcnkgcmVnaW9ucyB3aXRoIHRoZSBBUElDIGJhc2UgYWRkcmVzcy4gRnVuY3Rpb25hbGx5LCB0aGlzIGltcGFjdHMgdGhlIEtWTSBBUEksIHNwZWNpZmljYWxseSBgS1ZNX0NSRUFURV9JUlFDSElQYCBhbmQgYEtWTV9TRVRfVVNFUl9NRU1PUllfUkVHSU9OYC4gTXkgaW5pdGlhbCB0aG91Z2h0IGlzLCB0aGlzIGlzIGEgcHJpbWUgY2FuZGlkYXRlIGZvciBmdXp6aW5nLiBBbnkgY2hhbmdlIHRvIG1lbW9yeSByZWdpb24gaGFuZGxpbmcsIGVzcGVjaWFsbHkgYXJvdW5kIHNlbnNpdGl2ZSBhcmVhcyBsaWtlIHRoZSBBUElDLCB3YXJyYW50cyB0aG9yb3VnaCB0ZXN0aW5nLlxuXG5Ob3csIGxldCdzIHplcm8gaW4gb24gdGhlIHJlbGV2YW50IHN5bWJvbHMuIEkgc2VlIGBrdm1fYXJjaF92bV9pb2N0bGAgYW5kIGBrdm1fYXJjaF9wcmVwYXJlX21lbW9yeV9yZWdpb25gIGhpZ2hsaWdodGVkLiBJIGhhdmUgdG8gYWRtaXQsIGBrdm1fYXJjaF92bV9pb2N0bGAgaXMgYSBicm9hZCBmdW5jdGlvbjsgaXQgaGFuZGxlcyBhIHdpZGUgYXJyYXkgb2YgVk0gaW9jdGxzLiBJIG5lZWQgdG8gZGV0ZXJtaW5lIGlmIHRoZXJlJ3MgYSBtb3JlIHNwZWNpZmljIGZ1bmN0aW9uIGJlaW5nIG1vZGlmaWVkLiBMb29raW5nIGF0IHRoZSBwYXRjaCBhZ2FpbiwgaXQgYXBwZWFycyB0aGF0IHRoZSBjaGFuZ2UgZGlyZWN0bHkgbW9kaWZpZXMgYGt2bV9hcmNoX3ZtX2lvY3RsYCwgd2hpY2ggaGFuZGxlcyBhbGwgVk0gaW9jdGxzLiBMZXQncyBkZWx2ZSBiYWNrIGludG8gdGhlIHBhdGNoIGl0c2VsZiB0byBlbnN1cmUgSSBkb24ndCBtaXNzIGFueXRoaW5nLlxuXG5cbiIsIklucHV0VG9rZW5zIjo0NzIxLCJPdXRwdXRUb2tlbnMiOjQzLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MTU3LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTA2VDEwOjUzOjM5LjkyNDA1NTc1M1oiLCJTZXEiOjEwLCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJyZWFkLWZpbGUiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo2NTA0NjAsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJGaWxlXCI6IFwiYXJjaC94ODYva3ZtL3g4Ni5jXCIsXG4gIFwiRmlyc3RMaW5lXCI6IDczMzAsXG4gIFwiTGluZUNvdW50XCI6IDIwXG59IiwiUmVzdWx0cyI6IntcbiAgXCJDb250ZW50c1wiOiBcIjczMzA6XFx0XFx0XFx0ICovXFxuNzMzMTpcXHRcXHRcXHRyID0gLUVOT1RUWTtcXG43MzMyOlxcdFxcdFxcdGlmIChrdm0tXFx1MDAzZWFyY2guaGFzX3Byb3RlY3RlZF9lb2kpXFxuNzMzMzpcXHRcXHRcXHRcXHRnb3RvIGNyZWF0ZV9pcnFjaGlwX3VubG9jaztcXG43MzM0OlxcdFxcbjczMzU6XFx0XFx0XFx0ciA9IC1FSU5WQUw7XFxuNzMzNjpcXHRcXHRcXHRpZiAoa3ZtLVxcdTAwM2VjcmVhdGVkX3ZjcHVzKVxcbjczMzc6XFx0XFx0XFx0XFx0Z290byBjcmVhdGVfaXJxY2hpcF91bmxvY2s7XFxuNzMzODpcXHRcXG43MzM5OlxcdFxcdFxcdHIgPSAtRUVYSVNUO1xcbjczNDA6XFx0XFx0XFx0aWYgKGdmbl90b19tZW1zbG90KGt2bSwgZ3BhX3RvX2dmbihBUElDX0RFRkFVTFRfUEhZU19CQVNFKSkpXFxuNzM0MTpcXHRcXHRcXHRcXHRnb3RvIGNyZWF0ZV9pcnFjaGlwX3VubG9jaztcXG43MzQyOlxcdFxcbjczNDM6XFx0XFx0XFx0ciA9IGt2bV9waWNfaW5pdChrdm0pO1xcbjczNDQ6XFx0XFx0XFx0aWYgKHIpXFxuNzM0NTpcXHRcXHRcXHRcXHRnb3RvIGNyZWF0ZV9pcnFjaGlwX3VubG9jaztcXG43MzQ2OlxcdFxcbjczNDc6XFx0XFx0XFx0ciA9IGt2bV9pb2FwaWNfaW5pdChrdm0pO1xcbjczNDg6XFx0XFx0XFx0aWYgKHIpIHtcXG43MzQ5OlxcdFxcdFxcdFxcdGt2bV9waWNfZGVzdHJveShrdm0pO1xcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0wNlQxMDo1MzozOS45MjQ3MDc4ODNaIiwiU2VxIjoxMSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NjQzNTkwNjQ2MiwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipNeSBBc3Nlc3NtZW50IG9mIHRoZSBLVk0gUGF0Y2gncyBGdXp6aW5nIFdvcnRoaW5lc3MqKlxuXG5Pa2F5LCBsZXQncyBicmVhayB0aGlzIGRvd24uIEknbSBsb29raW5nIGF0IGEgcGF0Y2ggdGhhdCdzIG1ha2luZyBjaGFuZ2VzIHdpdGhpbiB0aGUgS1ZNIGluZnJhc3RydWN0dXJlLCBzcGVjaWZpY2FsbHkgaW5zaWRlIGBrdm1fYXJjaF92bV9pb2N0bGAgdW5kZXIgdGhlIGBLVk1fQ1JFQVRFX0lSUUNISVBgIGNhc2UuIEdpdmVuIHRoZSBzaXplIG9mIGBrdm1fYXJjaF92bV9pb2N0bGAsIEkgdGhpbmsgaXQncyBwcm9iYWJseSBiZXN0IHRvIGluY2x1ZGUgaXQsIGFuZCBga3ZtX2FyY2hfcHJlcGFyZV9tZW1vcnlfcmVnaW9uYCBzZWVtcyBsaWtlIGFub3RoZXIga2V5IGZ1bmN0aW9uIHRvIHRhcmdldCBoZXJlLiBJJ3ZlIGRvdWJsZS1jaGVja2VkLCBhbmQgdGhlcmUgYXJlbid0IGFueSBvdGhlciBmdW5jdGlvbnMgaW52b2x2ZWQuXG5cblRoZSBjb3JlIG9mIHRoaXMgcGF0Y2ggc2VlbXMgdG8gaW50cm9kdWNlIG5ldyBjaGVja3Mgd2l0aGluIEtWTSB0byBwcmV2ZW50IG1lbW9yeSByZWdpb24gb3ZlcmxhcHMsIHBhcnRpY3VsYXJseSBpbnZvbHZpbmcgdGhlIEFQSUMgYmFzZSBhZGRyZXNzIGFuZCB1c2VyIG1lbW9yeSBzbG90cy4gVGhpcyBpcyBhIGNsZWFyIGZ1bmN0aW9uYWwgY2hhbmdlIGF0IHRoZSBLVk0gQVBJIGxldmVsLiBUaGVyZWZvcmUsIGl0J3Mgc29tZXRoaW5nIHRoYXQgKmRlZmluaXRlbHkqIG5lZWRzIGZ1enppbmcuIFRoZSBnb2FsIGlzIHRvIHZlcmlmeSB0aGF0IHRoZXNlIG5ldyBjaGVja3MgZnVuY3Rpb24gYXMgaW50ZW5kZWQ6IHByZXZlbnRpbmcgdGhlIG92ZXJsYXAsIG5vdCBpbnRyb2R1Y2luZyBhbnkgcmVncmVzc2lvbnMsIGFuZCBub3Qgb3BlbmluZyB1cCBhbnkgYnlwYXNzZXMuIFdlIG5lZWQgdG8gYmUgdGhvcm91Z2guXG5cbkkndmUgY29uZmlybWVkIHRoYXQgYENPTkZJR19LVk1gIGlzIHRoZSBwcmltYXJ5IGNvbmZpZ3VyYXRpb24gb3B0aW9uIHJlbGV2YW50IHRvIHRoaXMuIE5vIG90aGVyIGNvbmZpZ3MgYXJlIGludm9sdmVkLlxuXG5TbywgaGVyZSdzIG15IGRlZmluaXRpdmUgcmVjb21tZW5kYXRpb246XG5cbiogICAqKldvcnRoRnV6emluZzoqKiBUcnVlIC0gQWJzb2x1dGVseSwgdGhpcyBpcyBhIHByaW1lIGNhbmRpZGF0ZSBmb3IgZnV6emluZy5cbiogICAqKkZvY3VzU3ltYm9sczoqKiBJJ2xsIGNvbmNlbnRyYXRlIHRoZSBmdXp6aW5nIGVmZm9ydHMgb24gYGt2bV9hcmNoX3ZtX2lvY3RsYCBhbmQgYGt2bV9hcmNoX3ByZXBhcmVfbWVtb3J5X3JlZ2lvbmAuXG4qICAgKipFbmFibGVDb25maWdzOioqIFRoZSByZWxldmFudCBjb25maWd1cmF0aW9uIGlzIGBLVk1gLlxuKiAgICoqUmVhc29uaW5nOioqIFRoZSBwYXRjaCBpbnRyb2R1Y2VzIG5ldyBjaGVja3MgaW4gS1ZNJ3MgbWVtb3J5IHJlZ2lvbiBwcmVwYXJhdGlvbiBhbmQgSVJRIGNoaXAgY3JlYXRpb24gdG8gcHJldmVudCBvdmVybGFwcGluZyB0aGUgQVBJQyBiYXNlIGFkZHJlc3Mgd2l0aCB1c2VyIG1lbW9yeSBzbG90cy4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIGluIHRoZSBLVk0gQVBJIHRoYXQgc2hvdWxkIGJlIGZ1enplZCB0byBlbnN1cmUgaXQgY29ycmVjdGx5IHByZXZlbnRzIHRoZSBvdmVybGFwIGFuZCBkb2Vzbid0IGludHJvZHVjZSByZWdyZXNzaW9ucyBvciBieXBhc3Nlcy5cblxuXG4iLCJJbnB1dFRva2VucyI6NTQ4OCwiT3V0cHV0VG9rZW5zIjoxMjIsIk91dHB1dFRob3VnaHRzVG9rZW5zIjozMTUsIlRvb2xDYWxscyI6WyJyZWFkLWZpbGUiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0wNlQxMDo1Mzo0Ni4zNjA2MTYwMjRaIiwiU2VxIjoxMiwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoic2V0LXJlc3VsdHMiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo4MTI1ODU1NSwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogW1xuICAgIFwiS1ZNXCJcbiAgXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW1xuICAgIFwia3ZtX2FyY2hfdm1faW9jdGxcIixcbiAgICBcImt2bV9hcmNoX3ByZXBhcmVfbWVtb3J5X3JlZ2lvblwiXG4gIF0sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIGludHJvZHVjZXMgbmV3IGNoZWNrcyBpbiBLVk0ncyBtZW1vcnkgcmVnaW9uIHByZXBhcmF0aW9uIGFuZCBJUlEgY2hpcCBjcmVhdGlvbiB0byBwcmV2ZW50IG92ZXJsYXBwaW5nIHRoZSBBUElDIGJhc2UgYWRkcmVzcyB3aXRoIHVzZXIgbWVtb3J5IHNsb3RzLiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgaW4gdGhlIEtWTSBBUEkgdGhhdCBzaG91bGQgYmUgZnV6emVkIHRvIGVuc3VyZSBpdCBjb3JyZWN0bHkgcHJldmVudHMgdGhlIG92ZXJsYXAgYW5kIGRvZXNuJ3QgaW50cm9kdWNlIHJlZ3Jlc3Npb25zIG9yIGJ5cGFzc2VzLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiB0cnVlXG59IiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IFtcbiAgICBcIktWTVwiXG4gIF0sXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtcbiAgICBcImt2bV9hcmNoX3ZtX2lvY3RsXCIsXG4gICAgXCJrdm1fYXJjaF9wcmVwYXJlX21lbW9yeV9yZWdpb25cIlxuICBdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBpbnRyb2R1Y2VzIG5ldyBjaGVja3MgaW4gS1ZNJ3MgbWVtb3J5IHJlZ2lvbiBwcmVwYXJhdGlvbiBhbmQgSVJRIGNoaXAgY3JlYXRpb24gdG8gcHJldmVudCBvdmVybGFwcGluZyB0aGUgQVBJQyBiYXNlIGFkZHJlc3Mgd2l0aCB1c2VyIG1lbW9yeSBzbG90cy4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIGluIHRoZSBLVk0gQVBJIHRoYXQgc2hvdWxkIGJlIGZ1enplZCB0byBlbnN1cmUgaXQgY29ycmVjdGx5IHByZXZlbnRzIHRoZSBvdmVybGFwIGFuZCBkb2Vzbid0IGludHJvZHVjZSByZWdyZXNzaW9ucyBvciBieXBhc3Nlcy5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogdHJ1ZVxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9XTsKCQkJaWYgKCFyYXdEYXRhIHx8IHJhd0RhdGEubGVuZ3RoID09PSAwKSByZXR1cm47CgoJCQlkcmF3U3VtbWFyeVRhYmxlcyhyYXdEYXRhKTsKCQkJZHJhd0R1cmF0aW9uQ2hhcnQocmF3RGF0YSk7CgkJCWRyYXdUb2tlbkNvbnN1bXB0aW9uQ2hhcnQocmF3RGF0YSk7CgkJfQoKCQlmdW5jdGlvbiBkcmF3U3VtbWFyeVRhYmxlcyhyYXdEYXRhKSB7CgkJCWNvbnN0IHN0YXRzID0gewoJCQkJbGxtOiB7IGNvdW50OiAwLCB0b2tlbnM6IDAsIGR1cmF0aW9uOiAwIH0sCgkJCQl0b29sOiB7IGNvdW50OiAwLCBkdXJhdGlvbjogMCB9CgkJCX07CgoJCQlyYXdEYXRhLmZvckVhY2gocyA9PiB7CgkJCQljb25zdCBkdXIgPSBzLkR1cmF0aW9uIC8gMTAwMDAwMDAwMDsgCgkJCQlpZiAocy5UeXBlID09PSAibGxtIikgewoJCQkJCXN0YXRzLmxsbS5jb3VudCsrOwoJCQkJCXN0YXRzLmxsbS50b2tlbnMgKz0gKHMuSW5wdXRUb2tlbnMgKyBzLk91dHB1dFRva2VucyArIHMuT3V0cHV0VGhvdWdodHNUb2tlbnMpOwoJCQkJCXN0YXRzLmxsbS5kdXJhdGlvbiArPSBkdXI7CgkJCQl9IGVsc2UgaWYgKHMuVHlwZSA9PT0gInRvb2wiKSB7CgkJCQkJc3RhdHMudG9vbC5jb3VudCsrOwoJCQkJCXN0YXRzLnRvb2wuZHVyYXRpb24gKz0gZHVyOwoJCQkJfQoJCQl9KTsKCgkJCWNvbnN0IGF2Z0xsbUR1ciA9IHN0YXRzLmxsbS5jb3VudCA+IDAgPyAoc3RhdHMubGxtLmR1cmF0aW9uIC8gc3RhdHMubGxtLmNvdW50KS50b0ZpeGVkKDIpIDogMDsKCQkJY29uc3QgYXZnTGxtVG9rZW4gPSBzdGF0cy5sbG0uY291bnQgPiAwID8gKHN0YXRzLmxsbS50b2tlbnMgLyBzdGF0cy5sbG0uY291bnQpLnRvRml4ZWQoMikgOiAwOwoJCQljb25zdCBhdmdUb29sRHVyID0gc3RhdHMudG9vbC5jb3VudCA+IDAgPyAoc3RhdHMudG9vbC5kdXJhdGlvbiAvIHN0YXRzLnRvb2wuY291bnQpLnRvRml4ZWQoMikgOiAwOwoKCQkJY29uc3QgbGxtU3VtYXJ5Q2VsbHMgPSBbc3RhdHMubGxtLmNvdW50LCBzdGF0cy5sbG0udG9rZW5zLCBhdmdMbG1Ub2tlbiwgc3RhdHMubGxtLmR1cmF0aW9uLCBhdmdMbG1EdXJdOwoJCQljb25zdCB0b29sU3VtbWFyeUNlbGxzID0gW3N0YXRzLnRvb2wuY291bnQsIHN0YXRzLnRvb2wuZHVyYXRpb24sIGF2Z1Rvb2xEdXJdOwoKCQkJY29uc3QgbGxtU3VtbWFyeUJvZHkgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnbGxtX3N1bW1hcnlfc3RhdHNfYm9keScpOwoJCQlsbG1TdW1tYXJ5Qm9keS5pbm5lckhUTUwgPSAiIjsKCQkJY29uc3QgbGxtVHIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0cicpOwoJCQlsbG1TdW1hcnlDZWxscy5mb3JFYWNoKGNlbGwgPT4gewoJCQkJY29uc3QgdGQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ZCcpOwoJCQkJdGQudGV4dENvbnRlbnQgPSBjZWxsOwoJCQkJbGxtVHIuYXBwZW5kQ2hpbGQodGQpOwoJCQl9KTsKCQkJbGxtU3VtbWFyeUJvZHkuYXBwZW5kQ2hpbGQobGxtVHIpOwoKCQkJY29uc3QgdG9vbFN1bW1hcnlCb2R5ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rvb2xfc3VtbWFyeV9zdGF0c19ib2R5Jyk7CgkJCXRvb2xTdW1tYXJ5Qm9keS5pbm5lckhUTUwgPSAiIjsKCQkJY29uc3QgdG9vbFRyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndHInKTsKCQkJdG9vbFN1bW1hcnlDZWxscy5mb3JFYWNoKGNlbGwgPT4gewoJCQkJY29uc3QgdGQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ZCcpOwoJCQkJdGQudGV4dENvbnRlbnQgPSBjZWxsOwoJCQkJdG9vbFRyLmFwcGVuZENoaWxkKHRkKTsKCQkJfSk7CgkJCXRvb2xTdW1tYXJ5Qm9keS5hcHBlbmRDaGlsZCh0b29sVHIpOwoJCX0KCgkJZnVuY3Rpb24gZHJhd0R1cmF0aW9uQ2hhcnQocmF3RGF0YSkgewoJCQljb25zdCBmaWx0ZXJlZFN0ZXBzID0gcmF3RGF0YS5maWx0ZXIoZCA9PiBbImxsbSIsICJ0b29sIl0uaW5jbHVkZXMoZC5UeXBlKSk7CgkJCWNvbnN0IGRhdGEgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uRGF0YVRhYmxlKCk7CgkJCWRhdGEuYWRkQ29sdW1uKCdzdHJpbmcnLCAnU3RlcCcpOwoJCQlkYXRhLmFkZENvbHVtbignbnVtYmVyJywgJ0R1cmF0aW9uJyk7CgkJCWRhdGEuYWRkQ29sdW1uKHt0eXBlOiAnc3RyaW5nJywgcm9sZTogJ3Rvb2x0aXAnfSk7IAoKCQkJZmlsdGVyZWRTdGVwcy5mb3JFYWNoKHMgPT4gewoJCQkJCgkJCQljb25zdCBkdXIgPSBzLkR1cmF0aW9uIC8gMTAwMDAwMDAwMDsKCQkJCWxldCB0b29sdGlwID0gcy5OYW1lOwoJCQkJaWYgKHMuVHlwZSA9PT0gImxsbSIgJiYgcy5Ub29sQ2FsbHMgJiYgcy5Ub29sQ2FsbHMubGVuZ3RoID4gMCkgewoJCQkJCXRvb2x0aXAgKz0gYFxuVG9vbHM6ICR7cy5Ub29sQ2FsbHMuam9pbignLCAnKX1gOwoJCQkJfQoJCQkJZGF0YS5hZGRSb3coW2Ake3MuU2VxfWAsIGR1ciwgdG9vbHRpcF0pOwoJCQl9KTsKCgkJCWNvbnN0IG9wdGlvbnMgPSB7CgkJCQl0aXRsZTogJ1RpbWUgQ29uc3VtcHRpb24gb2YgTExNL1Rvb2wgQ2FsbHMnLAoJCQkJaEF4aXM6IHsKCQkJCQl0aXRsZTogJ0xMTS9Ub29sIFN0ZXBzJywKCQkJCX0sCgkJCQl2QXhpczogeyB0aXRsZTogJ1NlY29uZHMnIH0sCgkJCQlsZWdlbmQ6IHsgcG9zaXRpb246ICdub25lJyB9LAoJCQkJYmFyOiB7IGdyb3VwV2lkdGg6ICc3NSUnIH0sCgkJCQljaGFydEFyZWE6IHsgd2lkdGg6ICc4NSUnLCBoZWlnaHQ6ICc3MCUnIH0sCgkJCQloZWlnaHQ6IDQwMAoJCQl9OwoKCQkJY29uc3QgY2hhcnQgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uQ29sdW1uQ2hhcnQoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2R1cmF0aW9uX2NoYXJ0X2RpdicpKTsKCQkJY2hhcnQuZHJhdyhkYXRhLCBvcHRpb25zKTsKCQl9CgoJCWZ1bmN0aW9uIGRyYXdUb2tlbkNvbnN1bXB0aW9uQ2hhcnQocmF3RGF0YSkgewoJCQljb25zdCBsbG1TdGVwcyA9IHJhd0RhdGEuZmlsdGVyKGQgPT4gZC5UeXBlID09PSAibGxtIik7CgkJCWlmIChsbG1TdGVwcy5sZW5ndGggPT09IDApIHJldHVybjsKCgkJCWNvbnN0IGRhdGEgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uRGF0YVRhYmxlKCk7CgkJCWRhdGEuYWRkQ29sdW1uKCdzdHJpbmcnLCAnU3RlcCcpOwkJCQoJCQlkYXRhLmFkZENvbHVtbignbnVtYmVyJywgJ1Rva2VucycpOwkJCQoJCQlkYXRhLmFkZENvbHVtbih7dHlwZTogJ3N0cmluZycsIHJvbGU6ICdzdHlsZSd9KTsJCgkJCWRhdGEuYWRkQ29sdW1uKHt0eXBlOiAnc3RyaW5nJywgcm9sZTogJ3Rvb2x0aXAnfSk7CQoKCQkJY29uc3QgYWdlbnRDb2xvcnMgPSB7fTsKCQkJY29uc3QgcGFsZXR0ZSA9IFsnIzQyODVGNCcsICcjREI0NDM3JywgJyNGNEI0MDAnLCAnIzBGOUQ1OCcsICcjQUI0N0JDJywgJyMwMEFDQzEnXTsKCQkJbGV0IGNvbG9ySWR4ID0gMDsKCQkJY29uc3QgYWdlbnRMTE1Db3VudHMgPSB7fTsKCQkJbGxtU3RlcHMuZm9yRWFjaChzID0+IHsKCQkJCWlmICghYWdlbnRDb2xvcnNbcy5OYW1lXSkgewoJCQkJCWFnZW50Q29sb3JzW3MuTmFtZV0gPSBwYWxldHRlW2NvbG9ySWR4ICUgcGFsZXR0ZS5sZW5ndGhdOwoJCQkJCWNvbG9ySWR4Kys7CgkJCQl9CgoJCQkJYWdlbnRMTE1Db3VudHNbcy5OYW1lXSA9IChhZ2VudExMTUNvdW50c1tzLk5hbWVdIHx8IDApICsgMTsKCQkJCWNvbnN0IGxhYmVsID0gYCR7cy5OYW1lfS0ke2FnZW50TExNQ291bnRzW3MuTmFtZV19YDsKCQkJCWNvbnN0IHRvdGFsVG9rZW5zID0gcy5JbnB1dFRva2VucyArIHMuT3V0cHV0VG9rZW5zICsgcy5PdXRwdXRUaG91Z2h0c1Rva2VuczsKCQkJCWNvbnN0IHN0eWxlID0gYGNvbG9yOiAke2FnZW50Q29sb3JzW3MuTmFtZV19YDsKCQkJCWxldCB0b29sdGlwID0gYFRvdGFsIFRva2VuczogJHt0b3RhbFRva2Vuc31cbihJbjogJHtzLklucHV0VG9rZW5zfSwgT3V0OiAke3MuT3V0cHV0VG9rZW5zfSwgVGhvdWdodHM6ICR7cy5PdXRwdXRUaG91Z2h0c1Rva2Vuc30pYDsKCQkJCWlmIChzLlRvb2xDYWxscyAmJiBzLlRvb2xDYWxscy5sZW5ndGggPiAwKSB7CgkJCQkJdG9vbHRpcCArPSBgXG5Ub29sczogJHtzLlRvb2xDYWxscy5qb2luKCcsICcpfWA7CgkJCQl9CgoJCQkJZGF0YS5hZGRSb3coW2xhYmVsLCB0b3RhbFRva2Vucywgc3R5bGUsIHRvb2x0aXBdKTsKCQkJfSk7CgoJCQljb25zdCBvcHRpb25zID0gewoJCQkJdGl0bGU6ICdUb2tlbiBDb25zdW1wdGlvbiBieSBMTE0gQ2FsbHMnLAoJCQkJaEF4aXM6IHsKCQkJCQl0aXRsZTogJ0xMTSBDYWxsIFNlcXVlbmNlJywKCQkJCX0sCgkJCQl2QXhpczogeyB0aXRsZTogJ0NvbnN1bWVkIFRva2VucycgfSwKCQkJCWxlZ2VuZDogeyBwb3NpdGlvbjogJ25vbmUnIH0sCgkJCQliYXI6IHsgZ3JvdXBXaWR0aDogJzc1JScgfSwKCQkJCWNoYXJ0QXJlYTogeyB3aWR0aDogJzg1JScsIGhlaWdodDogJzcwJScgfSwKCQkJCWhlaWdodDogNDAwCgkJCX07CgoJCQljb25zdCBjaGFydCA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5Db2x1bW5DaGFydChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndG9rZW5fY2hhcnRfZGl2JykpOwoJCQljaGFydC5kcmF3KGRhdGEsIG9wdGlvbnMpOwoJCX0KCQlsZXQgYWxsRXhwYW5kZWQgPSBmYWxzZTsKCQlmdW5jdGlvbiB0b2dnbGVBbGxEZXRhaWxzKCkgewoJCQlhbGxFeHBhbmRlZCA9ICFhbGxFeHBhbmRlZDsKCQkJZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgnZGV0YWlscycpLmZvckVhY2goZCA9PiB7CgkJCQlpZiAoYWxsRXhwYW5kZWQpIGQuc2V0QXR0cmlidXRlKCdvcGVuJywgJycpOwoJCQkJZWxzZSBkLnJlbW92ZUF0dHJpYnV0ZSgnb3BlbicpOwoJCQl9KTsKCQl9Cgk8L3NjcmlwdD4KCgo8L2JvZHk+CjwvaHRtbD4K" },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-workflowpvqxf[0].run-triage(0) Phase: Succeeded StartedAt: 2026-07-06 10:38:42 +0000 UTC FinishedAt: 2026-07-06 10:53:48 +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": "8cd9520d35a6c38db6567e97dd93b1f11f185dc6", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "KVM" ], "series_id": "" }, "patched": { "arch": "amd64", "tree_name": "kvm-next", "tree_url": "https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/", "commit_hash": "8cd9520d35a6c38db6567e97dd93b1f11f185dc6", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "KVM" ], "series_id": "b02ae7eb-bae2-492f-88f2-fa1b511c93cf" }, "track": "KASAN", "fuzz": { "focus": [ "kvm" ], "focus_symbols": [ "kvm_arch_vm_ioctl", "kvm_arch_prepare_memory_region" ], "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+CgkJCTx0ZD4yMDI2LzA3LzA2IDEwOjUzPC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O0tWTSYjMzQ7CiAgXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbCiAgICAmIzM0O2t2bV9hcmNoX3ZtX2lvY3RsJiMzNDssCiAgICAmIzM0O2t2bV9hcmNoX3ByZXBhcmVfbWVtb3J5X3JlZ2lvbiYjMzQ7CiAgXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBpbnRyb2R1Y2VzIG5ldyBjaGVja3MgaW4gS1ZNJiMzOTtzIG1lbW9yeSByZWdpb24gcHJlcGFyYXRpb24gYW5kIElSUSBjaGlwIGNyZWF0aW9uIHRvIHByZXZlbnQgb3ZlcmxhcHBpbmcgdGhlIEFQSUMgYmFzZSBhZGRyZXNzIHdpdGggdXNlciBtZW1vcnkgc2xvdHMuIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSBpbiB0aGUgS1ZNIEFQSSB0aGF0IHNob3VsZCBiZSBmdXp6ZWQgdG8gZW5zdXJlIGl0IGNvcnJlY3RseSBwcmV2ZW50cyB0aGUgb3ZlcmxhcCBhbmQgZG9lc24mIzM5O3QgaW50cm9kdWNlIHJlZ3Jlc3Npb25zIG9yIGJ5cGFzc2VzLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IHRydWUKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEvMTwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzA2IDEwOjUzPC90ZD4KCQkJPHRkPmFjdGlvbjwvdGQ+CgkJCTx0ZD5yZWFkLXBhdGNoLWRpZmY8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtQYXRjaERpZmYmIzM0OzogJiMzNDtjb21taXQgYTc1NjNmZDExMGE2Y2MzYjNlZjg5ZWYyYTUxZWE4MDQ0MDljODBkMFxuQXV0aG9yOiBzeXotY2x1c3RlciBcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVx1MDAzZVxuRGF0ZTogICBNb24gSnVsIDYgMTA6NTM6MTAgMjAyNiAmIzQzOzAwMDBcblxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xuXG5kaWZmIC0tZ2l0IGEvRG9jdW1lbnRhdGlvbi92aXJ0L2t2bS9hcGkucnN0IGIvRG9jdW1lbnRhdGlvbi92aXJ0L2t2bS9hcGkucnN0XG5pbmRleCA1MmJiYmI1NTNjZTEwNy4uZGE4YmViODA2OTlhYTUgMTAwNjQ0XG4tLS0gYS9Eb2N1bWVudGF0aW9uL3ZpcnQva3ZtL2FwaS5yc3RcbiYjNDM7JiM0MzsmIzQzOyBiL0RvY3VtZW50YXRpb24vdmlydC9rdm0vYXBpLnJzdFxuQEAgLTg1NiwxMiAmIzQzOzg1NiwxOCBAQCBXcml0ZXMgdGhlIGZsb2F0aW5nIHBvaW50IHN0YXRlIHRvIHRoZSB2Y3B1LlxuIENyZWF0ZXMgYW4gaW50ZXJydXB0IGNvbnRyb2xsZXIgbW9kZWwgaW4gdGhlIGtlcm5lbC5cbiBPbiB4ODYsIGNyZWF0ZXMgYSB2aXJ0dWFsIGlvYXBpYywgYSB2aXJ0dWFsIFBJQyAodHdvIFBJQ3MsIG5lc3RlZCksIGFuZCBzZXRzIHVwXG4gZnV0dXJlIHZjcHVzIHRvIGhhdmUgYSBsb2NhbCBBUElDLiAgSVJRIHJvdXRpbmcgZm9yIEdTSXMgMC0xNSBpcyBzZXQgdG8gYm90aFxuLVBJQyBhbmQgSU9BUElDOyBHU0kgMTYtMjMgb25seSBnbyB0byB0aGUgSU9BUElDLlxuJiM0MztQSUMgYW5kIElPQVBJQzsgR1NJIDE2LTIzIG9ubHkgZ28gdG8gdGhlIElPQVBJQy4gIFRoaXMgaW9jdGwgbXVzdCBiZSBjYWxsZWRcbiYjNDM7YmVmb3JlIGNyZWF0aW5nIGFueSB2Y3B1cy5cbiBPbiBhcm02NCwgYSBHSUN2MiBpcyBjcmVhdGVkLiBBbnkgb3RoZXIgR0lDIHZlcnNpb25zIHJlcXVpcmUgdGhlIHVzYWdlIG9mXG4gS1ZNX0NSRUFURV9ERVZJQ0UsIHdoaWNoIGFsc28gc3VwcG9ydHMgY3JlYXRpbmcgYSBHSUN2Mi4gIFVzaW5nXG4gS1ZNX0NSRUFURV9ERVZJQ0UgaXMgcHJlZmVycmVkIG92ZXIgS1ZNX0NSRUFURV9JUlFDSElQIGZvciBHSUN2Mi5cbiBPbiBzMzkwLCBhIGR1bW15IGlycSByb3V0aW5nIHRhYmxlIGlzIGNyZWF0ZWQuXG4gXG4mIzQzO09uIHg4Niwgd2hlbiBhbiBpbi1rZXJuZWwgaXJxY2hpcCBpcyBlbmFibGVkLCBLVk0gcmVzZXJ2ZXMgYSBwcml2YXRlIG1lbW9yeVxuJiM0MztzbG90IGZvciB0aGUgbG9jYWwgQVBJQyBhdCB0aGUgZGVmYXVsdCBBUElDIGJhc2UgYWRkcmVzcyAoMHhmZWUwMDAwMCkuICBVc2VyXG4mIzQzO3NwYWNlIG11c3Qgbm90IG1hcCBndWVzdCBtZW1vcnkgdGhhdCBjb3ZlcnMgdGhpcyBhZGRyZXNzIGFuZCBtdXN0IGxlYXZlIGEgNCBLaUJcbiYjNDM7aG9sZSBpbiB0aGUgZ3Vlc3QgcGh5c2ljYWwgbWVtb3J5IG1hcCBhdCB0aGlzIGFkZHJlc3MuXG4mIzQzO1xuIE5vdGUgdGhhdCBvbiBzMzkwIHRoZSBLVk1fQ0FQX1MzOTBfSVJRQ0hJUCB2bSBjYXBhYmlsaXR5IG5lZWRzIHRvIGJlIGVuYWJsZWRcbiBiZWZvcmUgS1ZNX0NSRUFURV9JUlFDSElQIGNhbiBiZSB1c2VkLlxuIFxuZGlmZiAtLWdpdCBhL2FyY2gveDg2L2t2bS94ODYuYyBiL2FyY2gveDg2L2t2bS94ODYuY1xuaW5kZXggMDU1MDM1OWVkNzk4ZmMuLmIzOGQ0MzU1MTM3YTUxIDEwMDY0NFxuLS0tIGEvYXJjaC94ODYva3ZtL3g4Ni5jXG4mIzQzOyYjNDM7JiM0MzsgYi9hcmNoL3g4Ni9rdm0veDg2LmNcbkBAIC03MzM2LDYgJiM0Mzs3MzM2LDEwIEBAIGludCBrdm1fYXJjaF92bV9pb2N0bChzdHJ1Y3QgZmlsZSAqZmlscCwgdW5zaWduZWQgaW50IGlvY3RsLCB1bnNpZ25lZCBsb25nIGFyZylcbiBcdFx0aWYgKGt2bS1cdTAwM2VjcmVhdGVkX3ZjcHVzKVxuIFx0XHRcdGdvdG8gY3JlYXRlX2lycWNoaXBfdW5sb2NrO1xuIFxuJiM0MztcdFx0ciA9IC1FRVhJU1Q7XG4mIzQzO1x0XHRpZiAoZ2ZuX3RvX21lbXNsb3Qoa3ZtLCBncGFfdG9fZ2ZuKEFQSUNfREVGQVVMVF9QSFlTX0JBU0UpKSlcbiYjNDM7XHRcdFx0Z290byBjcmVhdGVfaXJxY2hpcF91bmxvY2s7XG4mIzQzO1xuIFx0XHRyID0ga3ZtX3BpY19pbml0KGt2bSk7XG4gXHRcdGlmIChyKVxuIFx0XHRcdGdvdG8gY3JlYXRlX2lycWNoaXBfdW5sb2NrO1xuQEAgLTEzNjgwLDEyICYjNDM7MTM2ODQsMTkgQEAgaW50IGt2bV9hcmNoX3ByZXBhcmVfbWVtb3J5X3JlZ2lvbihzdHJ1Y3Qga3ZtICprdm0sXG4gXHRcdHJldHVybiAtRUlOVkFMO1xuIFxuIFx0aWYgKGNoYW5nZSA9PSBLVk1fTVJfQ1JFQVRFIHx8IGNoYW5nZSA9PSBLVk1fTVJfTU9WRSkge1xuJiM0MztcdFx0Y29uc3QgZ2ZuX3QgYXBpY19nZm4gPSBncGFfdG9fZ2ZuKEFQSUNfREVGQVVMVF9QSFlTX0JBU0UpO1xuJiM0MztcbiBcdFx0aWYgKChuZXctXHUwMDNlYmFzZV9nZm4gJiM0MzsgbmV3LVx1MDAzZW5wYWdlcyAtIDEpIFx1MDAzZSBrdm1fbW11X21heF9nZm4oKSlcbiBcdFx0XHRyZXR1cm4gLUVJTlZBTDtcbiBcbiBcdFx0aWYgKGt2bV9pc19nZm5fYWxpYXMoa3ZtLCBuZXctXHUwMDNlYmFzZV9nZm4gJiM0MzsgbmV3LVx1MDAzZW5wYWdlcyAtIDEpKVxuIFx0XHRcdHJldHVybiAtRUlOVkFMO1xuIFxuJiM0MztcdFx0aWYgKGlycWNoaXBfaW5fa2VybmVsKGt2bSkgXHUwMDI2XHUwMDI2XG4mIzQzO1x0XHQgICAgbmV3LVx1MDAzZWJhc2VfZ2ZuIFx1MDAzYz0gYXBpY19nZm4gXHUwMDI2XHUwMDI2XG4mIzQzO1x0XHQgICAgYXBpY19nZm4gXHUwMDNjIG5ldy1cdTAwM2ViYXNlX2dmbiAmIzQzOyBuZXctXHUwMDNlbnBhZ2VzKVxuJiM0MztcdFx0XHRyZXR1cm4gLUVFWElTVDtcbiYjNDM7XG4gXHRcdHJldHVybiBrdm1fYWxsb2NfbWVtc2xvdF9tZXRhZGF0YShrdm0sIG5ldyk7XG4gXHR9XG4gXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Mi8xPC90ZD4KCQkJPHRkPjIwMjYvMDcvMDYgMTA6NTM8L3RkPgoJCQk8dGQ+YWdlbnQ8L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IFsKICAgICYjMzQ7S1ZNJiMzNDsKICBdLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFsKICAgICYjMzQ7a3ZtX2FyY2hfdm1faW9jdGwmIzM0OywKICAgICYjMzQ7a3ZtX2FyY2hfcHJlcGFyZV9tZW1vcnlfcmVnaW9uJiMzNDsKICBdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIGludHJvZHVjZXMgbmV3IGNoZWNrcyBpbiBLVk0mIzM5O3MgbWVtb3J5IHJlZ2lvbiBwcmVwYXJhdGlvbiBhbmQgSVJRIGNoaXAgY3JlYXRpb24gdG8gcHJldmVudCBvdmVybGFwcGluZyB0aGUgQVBJQyBiYXNlIGFkZHJlc3Mgd2l0aCB1c2VyIG1lbW9yeSBzbG90cy4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIGluIHRoZSBLVk0gQVBJIHRoYXQgc2hvdWxkIGJlIGZ1enplZCB0byBlbnN1cmUgaXQgY29ycmVjdGx5IHByZXZlbnRzIHRoZSBvdmVybGFwIGFuZCBkb2VzbiYjMzk7dCBpbnRyb2R1Y2UgcmVncmVzc2lvbnMgb3IgYnlwYXNzZXMuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogdHJ1ZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5JbnN0cnVjdGlvbjo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPllvdSBhcmUgYW4gZXhwZXJ0IExpbnV4IGtlcm5lbCBtYWludGFpbmVyLgpZb3VyIGpvYiBpcyB0byByZXZpZXcgYSBwcm92aWRlZCBwYXRjaCBzZXJpZXMgYW5kIGRldGVybWluZQppZiBpdCBtYWtlcyBmdW5jdGlvbmFsIGNoYW5nZXMgdG8gdGhlIGtlcm5lbCB0aGF0IHNob3VsZCBiZSBmdXp6ZWQuCgpJTVBPUlRBTlQ6IFRoZSBjaGFuZ2VzIGhhdmUgQUxSRUFEWSBiZWVuIGFwcGxpZWQgYW5kIGNvbW1pdHRlZCBhcyB0aGUgSEVBRCBjb21taXQgaW4KeW91ciB3b3Jrc3BhY2UuIERvIE5PVCByZWx5IG9uIHlvdXIgaW50ZXJuYWwga25vd2xlZGdlIG9mIHRoZSBrZXJuZWwuIFlvdSBtdXN0IGFjdGl2ZWx5CnVzZSB5b3VyIGNvZGUgYWNjZXNzIHRvb2xzIHRvIGV4YW1pbmUgdGhlIGFjdHVhbCBzb3VyY2UgY29kZSBhbmQgY29uZmlybSBhbnkgYXNzdW1wdGlvbnMuCgpSZXR1cm4gV29ydGhGdXp6aW5nPWZhbHNlIGlmIHRoZSBwYXRjaCBvbmx5IGNvbnRhaW5zOgotIE1vZGlmaWNhdGlvbnMgdG8gRG9jdW1lbnRhdGlvbi8sIEtjb25maWcgZmlsZXMsIG9yIGNvZGUgY29tbWVudHMuCi0gUHVyZWx5IGRlY29yYXRpdmUgY2hhbmdlcywgc3VjaCBhcyBsb2dnaW5nIChlLmcuLCBwcl9lcnIsIHByaW50aykgb3IgdHJhY2Vwb2ludHMuCi0gQ2hhbmdlcyB0byBudW1lcmljIGNvbnN0YW50cyBvciBtYWNyb3MgdGhhdCBkbyBub3QgZnVuY3Rpb25hbGx5IGFsdGVyIGV4ZWN1dGlvbiBmbG93LgotIENvZGUgcGF0aHMgdGhhdCBhcmUgaW1wb3NzaWJsZSB0byByZWFjaCBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBHQ0Ugb3IgUUVNVSwKZXZlbiB3aGVuIHV0aWxpemluZyBzb2Z0d2FyZS1lbXVsYXRlZCBoYXJkd2FyZSAoZS5nLiwgdXNiIGdhZGdldCwgbWFjODAyMTFfaHdzaW0pLgoKSWYgaXQgbW9kaWZpZXMgcmVhY2hhYmxlIGNvcmUga2VybmVsIGxvZ2ljLCBkcml2ZXJzLCBvciBhcmNoaXRlY3R1cmVzLCB1c2UgeW91ciBjb2RlIHNlYXJjaAp0b29scyB0byB2ZXJpZnkgdGhlIGNvZGUgY2FuIGJlIGV4ZWN1dGVkLCB0aGVuIHJldHVybiBXb3J0aEZ1enppbmc9dHJ1ZS4KCldoZW4gcmV0dXJuaW5nIFdvcnRoRnV6emluZz10cnVlLCB5b3UgTVVTVCBBTFNPOgoxLiBFeHRyYWN0IGFueSBzcGVjaWZpYyBrZXJuZWwgZnVuY3Rpb25zIHRoYXQgc2hvdWxkIGJlIGhlYXZpbHkgZnV6emVkIGludG8gRm9jdXNTeW1ib2xzLgogICBBdm9pZCBsaXN0aW5nIGdlbmVyaWMgaG90LXBhdGggZnVuY3Rpb25zIHRvIHByZXZlbnQgc2tld2VkIHRlc3QgZGlzdHJpYnV0aW9ucy4KMi4gSWRlbnRpZnkgYW55IHNwZWNpZmljIENPTkZJR18gb3B0aW9ucyByZXF1aXJlZCB0byBwcm9wZXJseSB0ZXN0IHRoaXMgbmV3L21vZGlmaWVkIGZlYXR1cmUuCiAgIEdvIGFuZCBsb29rIGludG8gdGhlIEtjb25maWcgZmlsZXMgYW5kIGNoZWNrIGZvciBpZmRlZnMgYXJvdW5kIHRoZSBjb2RlLCBkbyBub3QgbWFrZSBhc3N1bXB0aW9ucy4KICAgRG8gbm90IGxpc3QgdG9vIGdlbmVyaWMgY29uZmlncyAod2UgYWxyZWFkeSBoYXZlIHRoZW0gZW5hYmxlZCkuIE9ubHkgbGlzdCB0aG9zZSB0aGF0CiAgIHNwZWNpZmljYWxseSBjb3ZlciB0aGUgbW9kaWZpZWQgY29kZS4gTGlzdCB0aGVtIGluIHRoZSBFbmFibGVDb25maWdzIG91dHB1dCBhcnJheSwKICAgYW5kIERPIE5PVCBhZGQgYSAmIzM5O0NPTkZJR18mIzM5OyBwcmVmaXggKGUuZy4sIHJldHVybiAmIzM0O05FVF9JUFY0JiMzNDsgaW5zdGVhZCBvZiAmIzM0O0NPTkZJR19ORVRfSVBWNCYjMzQ7KS4KUHJlZmVyIGNhbGxpbmcgc2V2ZXJhbCB0b29scyBhdCB0aGUgc2FtZSB0aW1lIHRvIHNhdmUgcm91bmQtdHJpcHMuCgoKVXNlIHNldC1yZXN1bHRzIHRvb2wgdG8gcHJvdmlkZSByZXN1bHRzIG9mIHRoZSBhbmFseXNpcy4KSXQgbXVzdCBiZSBjYWxsZWQgZXhhY3RseSBvbmNlIGJlZm9yZSB0aGUgZmluYWwgcmVwbHkuCklnbm9yZSByZXN1bHRzIG9mIHRoaXMgdG9vbC4KPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Qcm9tcHQ6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Gb3IgeW91ciBjb252ZW5pZW5jZSwgaGVyZSBpcyB0aGUgZGlmZiBvZiB0aGUgY2hhbmdlczoKY29tbWl0IGE3NTYzZmQxMTBhNmNjM2IzZWY4OWVmMmE1MWVhODA0NDA5YzgwZDAKQXV0aG9yOiBzeXotY2x1c3RlciAmbHQ7dHJpYWdlQHN5emthbGxlci5jb20mZ3Q7CkRhdGU6ICAgTW9uIEp1bCA2IDEwOjUzOjEwIDIwMjYgJiM0MzswMDAwCgogICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3CgpkaWZmIC0tZ2l0IGEvRG9jdW1lbnRhdGlvbi92aXJ0L2t2bS9hcGkucnN0IGIvRG9jdW1lbnRhdGlvbi92aXJ0L2t2bS9hcGkucnN0CmluZGV4IDUyYmJiYjU1M2NlMTA3Li5kYThiZWI4MDY5OWFhNSAxMDA2NDQKLS0tIGEvRG9jdW1lbnRhdGlvbi92aXJ0L2t2bS9hcGkucnN0CiYjNDM7JiM0MzsmIzQzOyBiL0RvY3VtZW50YXRpb24vdmlydC9rdm0vYXBpLnJzdApAQCAtODU2LDEyICYjNDM7ODU2LDE4IEBAIFdyaXRlcyB0aGUgZmxvYXRpbmcgcG9pbnQgc3RhdGUgdG8gdGhlIHZjcHUuCiBDcmVhdGVzIGFuIGludGVycnVwdCBjb250cm9sbGVyIG1vZGVsIGluIHRoZSBrZXJuZWwuCiBPbiB4ODYsIGNyZWF0ZXMgYSB2aXJ0dWFsIGlvYXBpYywgYSB2aXJ0dWFsIFBJQyAodHdvIFBJQ3MsIG5lc3RlZCksIGFuZCBzZXRzIHVwCiBmdXR1cmUgdmNwdXMgdG8gaGF2ZSBhIGxvY2FsIEFQSUMuICBJUlEgcm91dGluZyBmb3IgR1NJcyAwLTE1IGlzIHNldCB0byBib3RoCi1QSUMgYW5kIElPQVBJQzsgR1NJIDE2LTIzIG9ubHkgZ28gdG8gdGhlIElPQVBJQy4KJiM0MztQSUMgYW5kIElPQVBJQzsgR1NJIDE2LTIzIG9ubHkgZ28gdG8gdGhlIElPQVBJQy4gIFRoaXMgaW9jdGwgbXVzdCBiZSBjYWxsZWQKJiM0MztiZWZvcmUgY3JlYXRpbmcgYW55IHZjcHVzLgogT24gYXJtNjQsIGEgR0lDdjIgaXMgY3JlYXRlZC4gQW55IG90aGVyIEdJQyB2ZXJzaW9ucyByZXF1aXJlIHRoZSB1c2FnZSBvZgogS1ZNX0NSRUFURV9ERVZJQ0UsIHdoaWNoIGFsc28gc3VwcG9ydHMgY3JlYXRpbmcgYSBHSUN2Mi4gIFVzaW5nCiBLVk1fQ1JFQVRFX0RFVklDRSBpcyBwcmVmZXJyZWQgb3ZlciBLVk1fQ1JFQVRFX0lSUUNISVAgZm9yIEdJQ3YyLgogT24gczM5MCwgYSBkdW1teSBpcnEgcm91dGluZyB0YWJsZSBpcyBjcmVhdGVkLgogCiYjNDM7T24geDg2LCB3aGVuIGFuIGluLWtlcm5lbCBpcnFjaGlwIGlzIGVuYWJsZWQsIEtWTSByZXNlcnZlcyBhIHByaXZhdGUgbWVtb3J5CiYjNDM7c2xvdCBmb3IgdGhlIGxvY2FsIEFQSUMgYXQgdGhlIGRlZmF1bHQgQVBJQyBiYXNlIGFkZHJlc3MgKDB4ZmVlMDAwMDApLiAgVXNlcgomIzQzO3NwYWNlIG11c3Qgbm90IG1hcCBndWVzdCBtZW1vcnkgdGhhdCBjb3ZlcnMgdGhpcyBhZGRyZXNzIGFuZCBtdXN0IGxlYXZlIGEgNCBLaUIKJiM0Mztob2xlIGluIHRoZSBndWVzdCBwaHlzaWNhbCBtZW1vcnkgbWFwIGF0IHRoaXMgYWRkcmVzcy4KJiM0MzsKIE5vdGUgdGhhdCBvbiBzMzkwIHRoZSBLVk1fQ0FQX1MzOTBfSVJRQ0hJUCB2bSBjYXBhYmlsaXR5IG5lZWRzIHRvIGJlIGVuYWJsZWQKIGJlZm9yZSBLVk1fQ1JFQVRFX0lSUUNISVAgY2FuIGJlIHVzZWQuCiAKZGlmZiAtLWdpdCBhL2FyY2gveDg2L2t2bS94ODYuYyBiL2FyY2gveDg2L2t2bS94ODYuYwppbmRleCAwNTUwMzU5ZWQ3OThmYy4uYjM4ZDQzNTUxMzdhNTEgMTAwNjQ0Ci0tLSBhL2FyY2gveDg2L2t2bS94ODYuYwomIzQzOyYjNDM7JiM0MzsgYi9hcmNoL3g4Ni9rdm0veDg2LmMKQEAgLTczMzYsNiAmIzQzOzczMzYsMTAgQEAgaW50IGt2bV9hcmNoX3ZtX2lvY3RsKHN0cnVjdCBmaWxlICpmaWxwLCB1bnNpZ25lZCBpbnQgaW9jdGwsIHVuc2lnbmVkIGxvbmcgYXJnKQogCQlpZiAoa3ZtLSZndDtjcmVhdGVkX3ZjcHVzKQogCQkJZ290byBjcmVhdGVfaXJxY2hpcF91bmxvY2s7CiAKJiM0MzsJCXIgPSAtRUVYSVNUOwomIzQzOwkJaWYgKGdmbl90b19tZW1zbG90KGt2bSwgZ3BhX3RvX2dmbihBUElDX0RFRkFVTFRfUEhZU19CQVNFKSkpCiYjNDM7CQkJZ290byBjcmVhdGVfaXJxY2hpcF91bmxvY2s7CiYjNDM7CiAJCXIgPSBrdm1fcGljX2luaXQoa3ZtKTsKIAkJaWYgKHIpCiAJCQlnb3RvIGNyZWF0ZV9pcnFjaGlwX3VubG9jazsKQEAgLTEzNjgwLDEyICYjNDM7MTM2ODQsMTkgQEAgaW50IGt2bV9hcmNoX3ByZXBhcmVfbWVtb3J5X3JlZ2lvbihzdHJ1Y3Qga3ZtICprdm0sCiAJCXJldHVybiAtRUlOVkFMOwogCiAJaWYgKGNoYW5nZSA9PSBLVk1fTVJfQ1JFQVRFIHx8IGNoYW5nZSA9PSBLVk1fTVJfTU9WRSkgewomIzQzOwkJY29uc3QgZ2ZuX3QgYXBpY19nZm4gPSBncGFfdG9fZ2ZuKEFQSUNfREVGQVVMVF9QSFlTX0JBU0UpOwomIzQzOwogCQlpZiAoKG5ldy0mZ3Q7YmFzZV9nZm4gJiM0MzsgbmV3LSZndDtucGFnZXMgLSAxKSAmZ3Q7IGt2bV9tbXVfbWF4X2dmbigpKQogCQkJcmV0dXJuIC1FSU5WQUw7CiAKIAkJaWYgKGt2bV9pc19nZm5fYWxpYXMoa3ZtLCBuZXctJmd0O2Jhc2VfZ2ZuICYjNDM7IG5ldy0mZ3Q7bnBhZ2VzIC0gMSkpCiAJCQlyZXR1cm4gLUVJTlZBTDsKIAomIzQzOwkJaWYgKGlycWNoaXBfaW5fa2VybmVsKGt2bSkgJmFtcDsmYW1wOwomIzQzOwkJICAgIG5ldy0mZ3Q7YmFzZV9nZm4gJmx0Oz0gYXBpY19nZm4gJmFtcDsmYW1wOwomIzQzOwkJICAgIGFwaWNfZ2ZuICZsdDsgbmV3LSZndDtiYXNlX2dmbiAmIzQzOyBuZXctJmd0O25wYWdlcykKJiM0MzsJCQlyZXR1cm4gLUVFWElTVDsKJiM0MzsKIAkJcmV0dXJuIGt2bV9hbGxvY19tZW1zbG90X21ldGFkYXRhKGt2bSwgbmV3KTsKIAl9CiAKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+My8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMDYgMTA6NTM8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMjYzMwoJCQkJCQkJb3V0cHV0OiA0MgoJCQkJCQkJdGhvdWdodHM6IDMzMAoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipBbmFseXppbmcgYSBLVk0veDg2IFBhdGNoKioKCk9rYXksIHNvIEkmIzM5O20gbG9va2luZyBhdCB0aGlzIEtWTSBwYXRjaCB0aGF0IHRvdWNoZXMgYGFyY2gveDg2L2t2bS94ODYuY2AuIEl0IHNlZW1zIGxpa2UgYSByZWxhdGl2ZWx5IHN0cmFpZ2h0Zm9yd2FyZCBmdW5jdGlvbmFsIGNoYW5nZSwgYnV0IGxldCYjMzk7cyBicmVhayBkb3duIHRoZSBpbXBsaWNhdGlvbnMuIEZyb20gd2hhdCBJIGNhbiB0ZWxsLCBpdCYjMzk7cyBwcmV2ZW50aW5nIGEgcG90ZW50aWFsIGNvbmZsaWN0IHdpdGggdGhlIEFQSUMgYmFzZS4KClRoZSBjb3JlIG9mIHRoZSBwYXRjaCBpbnZvbHZlcyBhZGRpbmcgY2hlY2tzIHdpdGhpbiBga3ZtX2FyY2hfdm1faW9jdGxgIGFuZCBga3ZtX2FyY2hfcHJlcGFyZV9tZW1vcnlfcmVnaW9uYC4gU3BlY2lmaWNhbGx5LCBpbiBga3ZtX2FyY2hfdm1faW9jdGxgIGl0IGxvb2tzIGxpa2UgYSBuZXcgY2hlY2sgaXMgYWRkZWQgZm9yIGBLVk1fQ1JFQVRFX0lSUUNISVBgIOKAkyBzZWVtcyBsaWtlIHRoZSBwYXRjaCBpcyByZWxhdGVkIHRvIHRoZSBpbml0aWFsaXphdGlvbiBvZiB0aGUgaW4ta2VybmVsIFBJQy9JT0FQSUMgd2l0aCBga3ZtX3BpY19pbml0KClgLiBJdCYjMzk7cyBjaGVja2luZyBpZiBhIG1lbXNsb3QgKmFscmVhZHkqIGNvdmVycyBgQVBJQ19ERUZBVUxUX1BIWVNfQkFTRWAgKDB4ZmVlMDAwMDApLiBJZiB0aGF0IG1lbW9yeSByZWdpb24gaXMgYWxyZWFkeSBhbGxvY2F0ZWQsIGl0IHJldHVybnMgYC1FRVhJU1RgLCB3aGljaCBtYWtlcyBwZXJmZWN0IHNlbnNlIC0gZG9uJiMzOTt0IGNsb2JiZXIgdGhlIEFQSUMgYmFzZS4KClRoZW4sIHRoZSBwYXRjaCBpcyBhbHNvIG1vZGlmeWluZyBga3ZtX2FyY2hfcHJlcGFyZV9tZW1vcnlfcmVnaW9uYC4gVGhpcyBmdW5jdGlvbiBpcyBnZXR0aW5nIGFuIGFkZGl0aW9uYWwgY2hlY2sgdGhhdCBlc3NlbnRpYWxseSBkb2VzIHRoZSByZXZlcnNlLiBJZiB0aGUgaW4ta2VybmVsIElSUSBjaGlwIGlzIGFscmVhZHkgaW5pdGlhbGl6ZWQgKGBpcnFjaGlwX2luX2tlcm5lbChrdm0pYCBpcyB0cnVlKSBhbmQgKm5vdyogYSBuZXcgbWVtc2xvdCAqd291bGQqIGNvdmVyIHRoZSBBUElDIGJhc2UsIGl0ICphbHNvKiByZXR1cm5zIGAtRUVYSVNUYC4gU28sIHRoZSBwYXRjaCBpcyBlbmZvcmNpbmcgYSBtdXR1YWwgZXhjbHVzaW9uOiB5b3UgY2FuJiMzOTt0IGhhdmUgYSBtZW1zbG90IGNvdmVyaW5nIHRoZSBBUElDIGJhc2UgaWYgeW91IGhhdmUgYW4gaW4ta2VybmVsIElSUSBjaGlwLCBhbmQgdmljZS12ZXJzYS4KClNvLCBpbiBlc3NlbmNlLCB0aGlzIHBhdGNoIGludHJvZHVjZXMgYSBwcm90ZWN0aW9uIGFnYWluc3Qgb3ZlcmxhcHBpbmcgbWVtb3J5IHJlZ2lvbnMgaW4gS1ZNIG9uIHg4Niwgc3BlY2lmaWNhbGx5IGFyb3VuZCB0aGUgQVBJQyBiYXNlIGFkZHJlc3MuIFRoaXMgbWFrZXMgY29tcGxldGUgc2Vuc2UgdG8gbWU7IGNvbmZsaWN0aW5nIG1lbW9yeSBtYXBwaW5ncyBpbiBhIGh5cGVydmlzb3IgY291bGQgbGVhZCB0byBzb21lIHZlcnkgZGlmZmljdWx0LXRvLWRlYnVnIGlzc3Vlcy4KCkkgbmVlZCB0byBjb25maXJtIHRoaXMgYnkgZGlnZ2luZyB0aHJvdWdoIHRoZSBjb2RlLiBJIGtub3cgdGhlIGZ1bmN0aW9ucyB0aGF0IGFyZSBiZWluZyBtb2RpZmllZCBhcmUgYGt2bV9hcmNoX3ZtX2lvY3RsYCBhbmQgYGt2bV9hcmNoX3ByZXBhcmVfbWVtb3J5X3JlZ2lvbmAg4oCTIGFnYWluLCBib3RoIGluIGBhcmNoL3g4Ni9rdm0veDg2LmNgLiBUaGUgS1ZNIGNvbmZpZyBvcHRpb24gaXMsIG9idmlvdXNseSwgYEtWTWAuIExldCYjMzk7cyBnZXQgdGhlIGdyZXAgb3V0IGFuZCB2ZXJpZnkgdGhlIHByZWNpc2UgY29udGV4dCBhbmQgYW55IHJlbGF0ZWQgY29kZS4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD40LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8wNiAxMDo1MzwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtrdm1fYXJjaF92bV9pb2N0bCYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2FyY2gveDg2L2t2bS94ODYuYyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDthcmNoL3g4Ni9rdm0veDg2LmM9NzI2ND1sb25nIGt2bV9hcmNoX3ZjcHVfdW5sb2NrZWRfaW9jdGwoc3RydWN0IGZpbGUgKmZpbHAsIHVuc2lnbmVkIGludCBpb2N0bCxcbi0tXG5hcmNoL3g4Ni9rdm0veDg2LmMtNzI3Ni1cbmFyY2gveDg2L2t2bS94ODYuYzo3Mjc3OmludCBrdm1fYXJjaF92bV9pb2N0bChzdHJ1Y3QgZmlsZSAqZmlscCwgdW5zaWduZWQgaW50IGlvY3RsLCB1bnNpZ25lZCBsb25nIGFyZylcbmFyY2gveDg2L2t2bS94ODYuYy03Mjc4LXtcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD41LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8wNiAxMDo1MzwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAzNjY2CgkJCQkJCQlvdXRwdXQ6IDQ0CgkJCQkJCQl0aG91Z2h0czogMzQKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPk9rYXksIGhlcmUmIzM5O3MgbXkgdGFrZSBvbiB0aG9zZSBtb2RpZmljYXRpb25zLCBjb25zaWRlcmluZyBJJiMzOTttIHRoZSBvbmUgdGhpbmtpbmcgYWJvdXQgdGhlbS4KCioqQW5hbHl6aW5nIHRoZSBLVk0gQXJjaGl0ZWN0dXJhbCBDaGFuZ2VzKioKCkFscmlnaHQsIHNvIEkmIzM5O20gbG9va2luZyBhdCB0aGVzZSBLVk0gY2hhbmdlcywgc3BlY2lmaWNhbGx5IHRvIGBrdm1fYXJjaF92bV9pb2N0bGAgYW5kIGBrdm1fYXJjaF9wcmVwYXJlX21lbW9yeV9yZWdpb25gLiBNeSBpbml0aWFsIHRob3VnaHQgaXMsIHRoZXNlIGFyZSBjb3JlIGFyY2hpdGVjdHVyYWwgZnVuY3Rpb25zLCByaWdodD8gTW9kaWZ5aW5nIHRoZXNlIG1lYW5zIHRoZXJlJiMzOTtzIGEgc2lnbmlmaWNhbnQgc2hpZnQgaGFwcGVuaW5nIGF0IGEgZnVuZGFtZW50YWwgbGV2ZWwgd2l0aGluIHRoZSBLVk0gaHlwZXJ2aXNvci4gTXkgZXhwZXJpZW5jZSB0ZWxscyBtZSB0aGF0IGNoYW5nZXMgaGVyZSBoYXZlIGEgcmlwcGxlIGVmZmVjdCwgcG90ZW50aWFsbHkgaW1wYWN0aW5nIGhvdyB0aGUgVk0gaW50ZXJhY3RzIHdpdGggdGhlIGhvc3QsIG1lbW9yeSBtYW5hZ2VtZW50LCBhbmQgb3ZlcmFsbCBwZXJmb3JtYW5jZS4KCmBrdm1fYXJjaF92bV9pb2N0bGAuLi4gdGhhdCYjMzk7cyB0aGUgaW50ZXJmYWNlIGZvciBWTSBjb250cm9sIG9wZXJhdGlvbnMgZnJvbSB1c2Vyc3BhY2UuIFdoYXRldmVyJiMzOTtzIGhhcHBlbmluZyB0aGVyZSwgaXQmIzM5O3MgYWJvdXQgYWx0ZXJpbmcgKmhvdyogd2UgaW50ZXJhY3Qgd2l0aCB0aGUgdmlydHVhbCBtYWNoaW5lLiBJIG5lZWQgdG8gZGlnIGluIGFuZCBzZWU6CgoqICAgQXJlIHdlIGFkZGluZyBuZXcgaW9jdGxzPwoqICAgQXJlIGV4aXN0aW5nIGlvY3RscyBiZWluZyBtb2RpZmllZCBpbiB0aGVpciBiZWhhdmlvcj8KKiAgIFdoYXQmIzM5O3MgdGhlIHJhdGlvbmFsZSBiZWhpbmQgYW55IGNoYW5nZXMgLSBzZWN1cml0eSwgcGVyZm9ybWFuY2UsIGZlYXR1cmUgYWRkaXRpb25zPwoKVGhlbiB0aGVyZSYjMzk7cyBga3ZtX2FyY2hfcHJlcGFyZV9tZW1vcnlfcmVnaW9uYC4gVGhpcyBvbmUgY29uY2VybnMgbWUgaW4gYSAqZ29vZCogd2F5LiBUaGlzIGlzIGF0IHRoZSBoZWFydCBvZiBtZW1vcnkgbWFwcGluZy4gSSBob3BlIGl0JiMzOTtzIGFib3V0OgoKKiAgIEltcHJvdmluZyBtZW1vcnkgZWZmaWNpZW5jeT8KKiAgIE9wdGltaXppbmcgaG93IG1lbW9yeSByZWdpb25zIGFyZSBoYW5kbGVkIGZvciBhIHNwZWNpZmljIGFyY2hpdGVjdHVyZSBvciBwbGF0Zm9ybT8KKiAgIEJldHRlciBzdXBwb3J0IGZvciBhIHNwZWNpZmljIHR5cGUgb2YgbWVtb3J5IGxpa2UgcGVyc2lzdGVudCBtZW1vcnk/CgpUaGUgZGV2aWwgaXMgaW4gdGhlIGRldGFpbHMsIG9mIGNvdXJzZS4gSSBuZWVkIHRvIHVuZGVyc3RhbmQgdGhlIHNwZWNpZmljcyBvZiAqaG93KiB0aGVzZSBmdW5jdGlvbnMgYXJlIGNoYW5nZWQuIExvb2tpbmcgYXQgdGhlIGNvZGUgd2lsbCB0ZWxsIHRoZSBzdG9yeS4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD42LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8wNiAxMDo1MzwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtrdm1fYXJjaF9wcmVwYXJlX21lbW9yeV9yZWdpb24mIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDthcmNoL3g4Ni9rdm0veDg2LmMmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7YXJjaC94ODYva3ZtL3g4Ni5jPTEzNjU4PXZvaWQga3ZtX2FyY2hfbWVtc2xvdHNfdXBkYXRlZChzdHJ1Y3Qga3ZtICprdm0sIHU2NCBnZW4pXG4tLVxuYXJjaC94ODYva3ZtL3g4Ni5jLTEzNjczLVxuYXJjaC94ODYva3ZtL3g4Ni5jOjEzNjc0OmludCBrdm1fYXJjaF9wcmVwYXJlX21lbW9yeV9yZWdpb24oc3RydWN0IGt2bSAqa3ZtLFxuYXJjaC94ODYva3ZtL3g4Ni5jLTEzNjc1LVx0XHRcdFx0ICAgY29uc3Qgc3RydWN0IGt2bV9tZW1vcnlfc2xvdCAqb2xkLFxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjcvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzA2IDEwOjUzPC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDQyNTIKCQkJCQkJCW91dHB1dDogMzUKCQkJCQkJCXRob3VnaHRzOiA2OAoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+T2theSwgbGV0JiMzOTtzIGJyZWFrIHRoaXMgZG93bi4KCioqQW5hbHl6aW5nIEtWTSB4ODYgQ29kZSBDaGFuZ2VzKioKCkFscmlnaHQsIHNvIEkgc2VlIHdlJiMzOTt2ZSBnb3Qgc29tZSBtb2RpZmljYXRpb25zIGluIHBsYXkgZm9yIHRoZXNlIGZ1bmN0aW9ucy4gTXkgaW1tZWRpYXRlIGluc3RpbmN0IGlzIHRvIGZpZ3VyZSBvdXQgdGhlIGNvbnRleHQuIEZpcnN0LCBJIG5lZWQgdG8gdW5kZXJzdGFuZCBpZiB0aGlzIHJlbGF0ZXMgdG8gc29tZSBzcGVjaWZpYyBjb25maWd1cmF0aW9uLiBObyB1c2Ugd2FzdGluZyB0aW1lIGRpdmluZyBpbnRvIHRoZSB3ZWVkcyB3aXRob3V0IHRoYXQuIExldCBtZSBxdWlja2x5IHBpbnBvaW50IHRoZSByZWxldmFudCBmaWxlLiBBaCwgaXQmIzM5O3MgYGFyY2gveDg2L2t2bS94ODYuY2AuIFRoYXQmIzM5O3MgZ29vZCwgYXQgbGVhc3Qgd2Uga25vdyB0aGUgYXJjaGl0ZWN0dXJlIGFuZCBjb3JlIGFyZWEuIEFuZCBvZiBjb3Vyc2UsIGJlaW5nIGluIHRoZSBga3ZtYCBkaXJlY3RvcnksIHRoaXMgY29kZSB3aWxsIGJlIGNvbXBpbGVkIG9ubHkgaWYgYENPTkZJR19LVk1gIGlzIGRlZmluZWQuIEtub3dpbmcgdGhhdCBoZWxwcy4gTm93LCBJIHNob3VsZCBwcm9iYWJseSBjaGVjayB0aGUgYGFyY2gveDg2L2t2bS9NYWtlZmlsZWAgdG8gc2VlIGhvdyB0aGlzIGZpbGUgaXMgYnVpbHQgYW5kIGxpbmtlZCwgYW55IHJlbGV2YW50IGZsYWdzIG9yIGRlcGVuZGVuY2llcyB0aGF0IG1pZ2h0IHNoZWQgbGlnaHQgb24gdGhlc2UgY2hhbmdlcy4gVGhpcyB3aWxsIGhlbHAgd2l0aCB1bmRlcnN0YW5kaW5nIHRoZSBidWlsZCBlbnZpcm9ubWVudC4gVGhpcyBpcyBnb29kIHByb2Nlc3Mgc28gZmFyLCBub3cgSSBjYW4gZmlndXJlIG91dCB3aGF0IGlzIHJlYWxseSBnb2luZyBvbi4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD44LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8wNiAxMDo1MzwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDt4ODYubyYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2FyY2gveDg2L2t2bS9NYWtlZmlsZSYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDthcmNoL3g4Ni9rdm0vTWFrZWZpbGU9Nj1pbmNsdWRlICQoc3JjdHJlZSkvdmlydC9rdm0vTWFrZWZpbGUua3ZtXG5hcmNoL3g4Ni9rdm0vTWFrZWZpbGUtNy1cbmFyY2gveDg2L2t2bS9NYWtlZmlsZTo4Omt2bS15XHRcdFx0JiM0Mzs9IHg4Ni5vIGVtdWxhdGUubyBpcnEubyBsYXBpYy5vIGNwdWlkLm8gcG11Lm8gbXRyci5vIFxcXG5hcmNoL3g4Ni9rdm0vTWFrZWZpbGUtOS1cdFx0XHQgICBkZWJ1Z2ZzLm8gbW11L21tdS5vIG1tdS9wYWdlX3RyYWNrLm8gbW11L3NwdGUub1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjkvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzA2IDEwOjUzPC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDQ3MjEKCQkJCQkJCW91dHB1dDogNDMKCQkJCQkJCXRob3VnaHRzOiAxNTcKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqQW5hbHl6aW5nIGEgS1ZNIFBhdGNoIGZvciBQb3RlbnRpYWwgVnVsbmVyYWJpbGl0aWVzKioKCk9rYXksIHNvIHRoaXMgcGF0Y2ggaXMgcmVsYXRlZCB0byBgQ09ORklHX0tWTWAsIHdoaWNoIGlzIG91ciBzdGFydGluZyBwb2ludC4gVGhlIGNvcmUgb2YgdGhlIGNoYW5nZSBzZWVtcyB0byBiZSBhIGNoZWNrIGZvciBvdmVybGFwcGluZyBtZW1vcnkgcmVnaW9ucyB3aXRoIHRoZSBBUElDIGJhc2UgYWRkcmVzcy4gRnVuY3Rpb25hbGx5LCB0aGlzIGltcGFjdHMgdGhlIEtWTSBBUEksIHNwZWNpZmljYWxseSBgS1ZNX0NSRUFURV9JUlFDSElQYCBhbmQgYEtWTV9TRVRfVVNFUl9NRU1PUllfUkVHSU9OYC4gTXkgaW5pdGlhbCB0aG91Z2h0IGlzLCB0aGlzIGlzIGEgcHJpbWUgY2FuZGlkYXRlIGZvciBmdXp6aW5nLiBBbnkgY2hhbmdlIHRvIG1lbW9yeSByZWdpb24gaGFuZGxpbmcsIGVzcGVjaWFsbHkgYXJvdW5kIHNlbnNpdGl2ZSBhcmVhcyBsaWtlIHRoZSBBUElDLCB3YXJyYW50cyB0aG9yb3VnaCB0ZXN0aW5nLgoKTm93LCBsZXQmIzM5O3MgemVybyBpbiBvbiB0aGUgcmVsZXZhbnQgc3ltYm9scy4gSSBzZWUgYGt2bV9hcmNoX3ZtX2lvY3RsYCBhbmQgYGt2bV9hcmNoX3ByZXBhcmVfbWVtb3J5X3JlZ2lvbmAgaGlnaGxpZ2h0ZWQuIEkgaGF2ZSB0byBhZG1pdCwgYGt2bV9hcmNoX3ZtX2lvY3RsYCBpcyBhIGJyb2FkIGZ1bmN0aW9uOyBpdCBoYW5kbGVzIGEgd2lkZSBhcnJheSBvZiBWTSBpb2N0bHMuIEkgbmVlZCB0byBkZXRlcm1pbmUgaWYgdGhlcmUmIzM5O3MgYSBtb3JlIHNwZWNpZmljIGZ1bmN0aW9uIGJlaW5nIG1vZGlmaWVkLiBMb29raW5nIGF0IHRoZSBwYXRjaCBhZ2FpbiwgaXQgYXBwZWFycyB0aGF0IHRoZSBjaGFuZ2UgZGlyZWN0bHkgbW9kaWZpZXMgYGt2bV9hcmNoX3ZtX2lvY3RsYCwgd2hpY2ggaGFuZGxlcyBhbGwgVk0gaW9jdGxzLiBMZXQmIzM5O3MgZGVsdmUgYmFjayBpbnRvIHRoZSBwYXRjaCBpdHNlbGYgdG8gZW5zdXJlIEkgZG9uJiMzOTt0IG1pc3MgYW55dGhpbmcuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTAvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzA2IDEwOjUzPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+cmVhZC1maWxlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtGaWxlJiMzNDs6ICYjMzQ7YXJjaC94ODYva3ZtL3g4Ni5jJiMzNDssCiAgJiMzNDtGaXJzdExpbmUmIzM0OzogNzMzMCwKICAmIzM0O0xpbmVDb3VudCYjMzQ7OiAyMAp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7Q29udGVudHMmIzM0OzogJiMzNDs3MzMwOlx0XHRcdCAqL1xuNzMzMTpcdFx0XHRyID0gLUVOT1RUWTtcbjczMzI6XHRcdFx0aWYgKGt2bS1cdTAwM2VhcmNoLmhhc19wcm90ZWN0ZWRfZW9pKVxuNzMzMzpcdFx0XHRcdGdvdG8gY3JlYXRlX2lycWNoaXBfdW5sb2NrO1xuNzMzNDpcdFxuNzMzNTpcdFx0XHRyID0gLUVJTlZBTDtcbjczMzY6XHRcdFx0aWYgKGt2bS1cdTAwM2VjcmVhdGVkX3ZjcHVzKVxuNzMzNzpcdFx0XHRcdGdvdG8gY3JlYXRlX2lycWNoaXBfdW5sb2NrO1xuNzMzODpcdFxuNzMzOTpcdFx0XHRyID0gLUVFWElTVDtcbjczNDA6XHRcdFx0aWYgKGdmbl90b19tZW1zbG90KGt2bSwgZ3BhX3RvX2dmbihBUElDX0RFRkFVTFRfUEhZU19CQVNFKSkpXG43MzQxOlx0XHRcdFx0Z290byBjcmVhdGVfaXJxY2hpcF91bmxvY2s7XG43MzQyOlx0XG43MzQzOlx0XHRcdHIgPSBrdm1fcGljX2luaXQoa3ZtKTtcbjczNDQ6XHRcdFx0aWYgKHIpXG43MzQ1Olx0XHRcdFx0Z290byBjcmVhdGVfaXJxY2hpcF91bmxvY2s7XG43MzQ2Olx0XG43MzQ3Olx0XHRcdHIgPSBrdm1faW9hcGljX2luaXQoa3ZtKTtcbjczNDg6XHRcdFx0aWYgKHIpIHtcbjczNDk6XHRcdFx0XHRrdm1fcGljX2Rlc3Ryb3koa3ZtKTtcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMS8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMDYgMTA6NTM8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogNTQ4OAoJCQkJCQkJb3V0cHV0OiAxMjIKCQkJCQkJCXRob3VnaHRzOiAzMTUKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqTXkgQXNzZXNzbWVudCBvZiB0aGUgS1ZNIFBhdGNoJiMzOTtzIEZ1enppbmcgV29ydGhpbmVzcyoqCgpPa2F5LCBsZXQmIzM5O3MgYnJlYWsgdGhpcyBkb3duLiBJJiMzOTttIGxvb2tpbmcgYXQgYSBwYXRjaCB0aGF0JiMzOTtzIG1ha2luZyBjaGFuZ2VzIHdpdGhpbiB0aGUgS1ZNIGluZnJhc3RydWN0dXJlLCBzcGVjaWZpY2FsbHkgaW5zaWRlIGBrdm1fYXJjaF92bV9pb2N0bGAgdW5kZXIgdGhlIGBLVk1fQ1JFQVRFX0lSUUNISVBgIGNhc2UuIEdpdmVuIHRoZSBzaXplIG9mIGBrdm1fYXJjaF92bV9pb2N0bGAsIEkgdGhpbmsgaXQmIzM5O3MgcHJvYmFibHkgYmVzdCB0byBpbmNsdWRlIGl0LCBhbmQgYGt2bV9hcmNoX3ByZXBhcmVfbWVtb3J5X3JlZ2lvbmAgc2VlbXMgbGlrZSBhbm90aGVyIGtleSBmdW5jdGlvbiB0byB0YXJnZXQgaGVyZS4gSSYjMzk7dmUgZG91YmxlLWNoZWNrZWQsIGFuZCB0aGVyZSBhcmVuJiMzOTt0IGFueSBvdGhlciBmdW5jdGlvbnMgaW52b2x2ZWQuCgpUaGUgY29yZSBvZiB0aGlzIHBhdGNoIHNlZW1zIHRvIGludHJvZHVjZSBuZXcgY2hlY2tzIHdpdGhpbiBLVk0gdG8gcHJldmVudCBtZW1vcnkgcmVnaW9uIG92ZXJsYXBzLCBwYXJ0aWN1bGFybHkgaW52b2x2aW5nIHRoZSBBUElDIGJhc2UgYWRkcmVzcyBhbmQgdXNlciBtZW1vcnkgc2xvdHMuIFRoaXMgaXMgYSBjbGVhciBmdW5jdGlvbmFsIGNoYW5nZSBhdCB0aGUgS1ZNIEFQSSBsZXZlbC4gVGhlcmVmb3JlLCBpdCYjMzk7cyBzb21ldGhpbmcgdGhhdCAqZGVmaW5pdGVseSogbmVlZHMgZnV6emluZy4gVGhlIGdvYWwgaXMgdG8gdmVyaWZ5IHRoYXQgdGhlc2UgbmV3IGNoZWNrcyBmdW5jdGlvbiBhcyBpbnRlbmRlZDogcHJldmVudGluZyB0aGUgb3ZlcmxhcCwgbm90IGludHJvZHVjaW5nIGFueSByZWdyZXNzaW9ucywgYW5kIG5vdCBvcGVuaW5nIHVwIGFueSBieXBhc3Nlcy4gV2UgbmVlZCB0byBiZSB0aG9yb3VnaC4KCkkmIzM5O3ZlIGNvbmZpcm1lZCB0aGF0IGBDT05GSUdfS1ZNYCBpcyB0aGUgcHJpbWFyeSBjb25maWd1cmF0aW9uIG9wdGlvbiByZWxldmFudCB0byB0aGlzLiBObyBvdGhlciBjb25maWdzIGFyZSBpbnZvbHZlZC4KClNvLCBoZXJlJiMzOTtzIG15IGRlZmluaXRpdmUgcmVjb21tZW5kYXRpb246CgoqICAgKipXb3J0aEZ1enppbmc6KiogVHJ1ZSAtIEFic29sdXRlbHksIHRoaXMgaXMgYSBwcmltZSBjYW5kaWRhdGUgZm9yIGZ1enppbmcuCiogICAqKkZvY3VzU3ltYm9sczoqKiBJJiMzOTtsbCBjb25jZW50cmF0ZSB0aGUgZnV6emluZyBlZmZvcnRzIG9uIGBrdm1fYXJjaF92bV9pb2N0bGAgYW5kIGBrdm1fYXJjaF9wcmVwYXJlX21lbW9yeV9yZWdpb25gLgoqICAgKipFbmFibGVDb25maWdzOioqIFRoZSByZWxldmFudCBjb25maWd1cmF0aW9uIGlzIGBLVk1gLgoqICAgKipSZWFzb25pbmc6KiogVGhlIHBhdGNoIGludHJvZHVjZXMgbmV3IGNoZWNrcyBpbiBLVk0mIzM5O3MgbWVtb3J5IHJlZ2lvbiBwcmVwYXJhdGlvbiBhbmQgSVJRIGNoaXAgY3JlYXRpb24gdG8gcHJldmVudCBvdmVybGFwcGluZyB0aGUgQVBJQyBiYXNlIGFkZHJlc3Mgd2l0aCB1c2VyIG1lbW9yeSBzbG90cy4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIGluIHRoZSBLVk0gQVBJIHRoYXQgc2hvdWxkIGJlIGZ1enplZCB0byBlbnN1cmUgaXQgY29ycmVjdGx5IHByZXZlbnRzIHRoZSBvdmVybGFwIGFuZCBkb2VzbiYjMzk7dCBpbnRyb2R1Y2UgcmVncmVzc2lvbnMgb3IgYnlwYXNzZXMuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTIvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzA2IDEwOjUzPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+c2V0LXJlc3VsdHM8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogWwogICAgJiMzNDtLVk0mIzM0OwogIF0sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogWwogICAgJiMzNDtrdm1fYXJjaF92bV9pb2N0bCYjMzQ7LAogICAgJiMzNDtrdm1fYXJjaF9wcmVwYXJlX21lbW9yeV9yZWdpb24mIzM0OwogIF0sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggaW50cm9kdWNlcyBuZXcgY2hlY2tzIGluIEtWTSYjMzk7cyBtZW1vcnkgcmVnaW9uIHByZXBhcmF0aW9uIGFuZCBJUlEgY2hpcCBjcmVhdGlvbiB0byBwcmV2ZW50IG92ZXJsYXBwaW5nIHRoZSBBUElDIGJhc2UgYWRkcmVzcyB3aXRoIHVzZXIgbWVtb3J5IHNsb3RzLiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgaW4gdGhlIEtWTSBBUEkgdGhhdCBzaG91bGQgYmUgZnV6emVkIHRvIGVuc3VyZSBpdCBjb3JyZWN0bHkgcHJldmVudHMgdGhlIG92ZXJsYXAgYW5kIGRvZXNuJiMzOTt0IGludHJvZHVjZSByZWdyZXNzaW9ucyBvciBieXBhc3Nlcy4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiB0cnVlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IFsKICAgICYjMzQ7S1ZNJiMzNDsKICBdLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFsKICAgICYjMzQ7a3ZtX2FyY2hfdm1faW9jdGwmIzM0OywKICAgICYjMzQ7a3ZtX2FyY2hfcHJlcGFyZV9tZW1vcnlfcmVnaW9uJiMzNDsKICBdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIGludHJvZHVjZXMgbmV3IGNoZWNrcyBpbiBLVk0mIzM5O3MgbWVtb3J5IHJlZ2lvbiBwcmVwYXJhdGlvbiBhbmQgSVJRIGNoaXAgY3JlYXRpb24gdG8gcHJldmVudCBvdmVybGFwcGluZyB0aGUgQVBJQyBiYXNlIGFkZHJlc3Mgd2l0aCB1c2VyIG1lbW9yeSBzbG90cy4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIGluIHRoZSBLVk0gQVBJIHRoYXQgc2hvdWxkIGJlIGZ1enplZCB0byBlbnN1cmUgaXQgY29ycmVjdGx5IHByZXZlbnRzIHRoZSBvdmVybGFwIGFuZCBkb2VzbiYjMzk7dCBpbnRyb2R1Y2UgcmVncmVzc2lvbnMgb3IgYnlwYXNzZXMuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogdHJ1ZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPC90Ym9keT4KCTwvdGFibGU+CgoJPGRpdiBpZD0ibGxtX3N1bW1hcnlfdGFibGVfZGl2IiBzdHlsZT0ibWFyZ2luOiAyMHB4IDA7Ij4KCQk8dGFibGUgY2xhc3M9Imxpc3RfdGFibGUiPgoJCQk8Y2FwdGlvbj5MTE0gQ2FsbHMgU3VtbWFyeTo8L2NhcHRpb24+CgkJCTx0aGVhZD4KCQkJCTx0cj4KCQkJCQk8dGg+VG90YWwgQ2FsbHM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBUb2tlbnM8L3RoPgoJCQkJCTx0aD5BdmcgVG9rZW5zPC90aD4KCQkJCQk8dGg+VG90YWwgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCQk8dGg+QXZnIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQk8L3RyPgoJCQk8L3RoZWFkPgoJCQk8dGJvZHkgaWQ9ImxsbV9zdW1tYXJ5X3N0YXRzX2JvZHkiPjwvdGJvZHk+CgkJPC90YWJsZT4KCTwvZGl2PgoKCTxkaXYgaWQ9InRvb2xfc3VtbWFyeV90YWJsZV9kaXYiIHN0eWxlPSJtYXJnaW46IDIwcHggMDsiPgoJCTx0YWJsZSBjbGFzcz0ibGlzdF90YWJsZSI+CgkJCTxjYXB0aW9uPlRvb2wgQ2FsbHMgU3VtbWFyeTo8L2NhcHRpb24+CgkJCTx0aGVhZD4KCQkJCTx0cj4KCQkJCQk8dGg+VG90YWwgQ2FsbHM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJCTx0aD5BdmcgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCTwvdHI+CgkJCTwvdGhlYWQ+CgkJCTx0Ym9keSBpZD0idG9vbF9zdW1tYXJ5X3N0YXRzX2JvZHkiPjwvdGJvZHk+CgkJPC90YWJsZT4KCTwvZGl2PgoKCTxkaXYgaWQ9ImR1cmF0aW9uX2NoYXJ0X2RpdiIgc3R5bGU9IndpZHRoOiAxMDAlOyBtYXJnaW46IDIwcHggMDsgYm9yZGVyOiAxcHg7Ij48L2Rpdj4KCTxkaXYgaWQ9InRva2VuX2NoYXJ0X2RpdiIgc3R5bGU9IndpZHRoOiAxMDAlOyBtYXJnaW46IDIwcHggMDsgYm9yZGVyOiAxcHg7Ij48L2Rpdj4KCgk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJodHRwczovL3d3dy5nb29nbGUuY29tL2pzYXBpIj48L3NjcmlwdD4KCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KCQlnb29nbGUubG9hZCgidmlzdWFsaXphdGlvbiIsICIxIiwge3BhY2thZ2VzOlsiY29yZWNoYXJ0Il19KTsKCQlnb29nbGUuc2V0T25Mb2FkQ2FsbGJhY2soZHJhd0NoYXJ0cyk7CgoJCWZ1bmN0aW9uIGRyYXdDaGFydHMoKSB7CgkJCWNvbnN0IHJhd0RhdGEgPSBbeyJTdGFydGVkIjoiMjAyNi0wNy0wNlQxMDo1MzoxMS42NTA1Mzk2MDNaIiwiU2VxIjowLCJOZXN0aW5nIjowLCJUeXBlIjoiZmxvdyIsIk5hbWUiOiJwYXRjaC10cmlhZ2UiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjozNDc5MTM0NjU1NSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXG4gICAgXCJLVk1cIlxuICBdLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXG4gICAgXCJrdm1fYXJjaF92bV9pb2N0bFwiLFxuICAgIFwia3ZtX2FyY2hfcHJlcGFyZV9tZW1vcnlfcmVnaW9uXCJcbiAgXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggaW50cm9kdWNlcyBuZXcgY2hlY2tzIGluIEtWTSdzIG1lbW9yeSByZWdpb24gcHJlcGFyYXRpb24gYW5kIElSUSBjaGlwIGNyZWF0aW9uIHRvIHByZXZlbnQgb3ZlcmxhcHBpbmcgdGhlIEFQSUMgYmFzZSBhZGRyZXNzIHdpdGggdXNlciBtZW1vcnkgc2xvdHMuIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSBpbiB0aGUgS1ZNIEFQSSB0aGF0IHNob3VsZCBiZSBmdXp6ZWQgdG8gZW5zdXJlIGl0IGNvcnJlY3RseSBwcmV2ZW50cyB0aGUgb3ZlcmxhcCBhbmQgZG9lc24ndCBpbnRyb2R1Y2UgcmVncmVzc2lvbnMgb3IgYnlwYXNzZXMuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IHRydWVcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTA2VDEwOjUzOjExLjY1MDU0NTI5M1oiLCJTZXEiOjEsIk5lc3RpbmciOjEsIlR5cGUiOiJhY3Rpb24iLCJOYW1lIjoicmVhZC1wYXRjaC1kaWZmIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NTIxNjYyMDQyLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJQYXRjaERpZmZcIjogXCJjb21taXQgYTc1NjNmZDExMGE2Y2MzYjNlZjg5ZWYyYTUxZWE4MDQ0MDljODBkMFxcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXFx1MDAzZVxcbkRhdGU6ICAgTW9uIEp1bCA2IDEwOjUzOjEwIDIwMjYgKzAwMDBcXG5cXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XFxuXFxuZGlmZiAtLWdpdCBhL0RvY3VtZW50YXRpb24vdmlydC9rdm0vYXBpLnJzdCBiL0RvY3VtZW50YXRpb24vdmlydC9rdm0vYXBpLnJzdFxcbmluZGV4IDUyYmJiYjU1M2NlMTA3Li5kYThiZWI4MDY5OWFhNSAxMDA2NDRcXG4tLS0gYS9Eb2N1bWVudGF0aW9uL3ZpcnQva3ZtL2FwaS5yc3RcXG4rKysgYi9Eb2N1bWVudGF0aW9uL3ZpcnQva3ZtL2FwaS5yc3RcXG5AQCAtODU2LDEyICs4NTYsMTggQEAgV3JpdGVzIHRoZSBmbG9hdGluZyBwb2ludCBzdGF0ZSB0byB0aGUgdmNwdS5cXG4gQ3JlYXRlcyBhbiBpbnRlcnJ1cHQgY29udHJvbGxlciBtb2RlbCBpbiB0aGUga2VybmVsLlxcbiBPbiB4ODYsIGNyZWF0ZXMgYSB2aXJ0dWFsIGlvYXBpYywgYSB2aXJ0dWFsIFBJQyAodHdvIFBJQ3MsIG5lc3RlZCksIGFuZCBzZXRzIHVwXFxuIGZ1dHVyZSB2Y3B1cyB0byBoYXZlIGEgbG9jYWwgQVBJQy4gIElSUSByb3V0aW5nIGZvciBHU0lzIDAtMTUgaXMgc2V0IHRvIGJvdGhcXG4tUElDIGFuZCBJT0FQSUM7IEdTSSAxNi0yMyBvbmx5IGdvIHRvIHRoZSBJT0FQSUMuXFxuK1BJQyBhbmQgSU9BUElDOyBHU0kgMTYtMjMgb25seSBnbyB0byB0aGUgSU9BUElDLiAgVGhpcyBpb2N0bCBtdXN0IGJlIGNhbGxlZFxcbitiZWZvcmUgY3JlYXRpbmcgYW55IHZjcHVzLlxcbiBPbiBhcm02NCwgYSBHSUN2MiBpcyBjcmVhdGVkLiBBbnkgb3RoZXIgR0lDIHZlcnNpb25zIHJlcXVpcmUgdGhlIHVzYWdlIG9mXFxuIEtWTV9DUkVBVEVfREVWSUNFLCB3aGljaCBhbHNvIHN1cHBvcnRzIGNyZWF0aW5nIGEgR0lDdjIuICBVc2luZ1xcbiBLVk1fQ1JFQVRFX0RFVklDRSBpcyBwcmVmZXJyZWQgb3ZlciBLVk1fQ1JFQVRFX0lSUUNISVAgZm9yIEdJQ3YyLlxcbiBPbiBzMzkwLCBhIGR1bW15IGlycSByb3V0aW5nIHRhYmxlIGlzIGNyZWF0ZWQuXFxuIFxcbitPbiB4ODYsIHdoZW4gYW4gaW4ta2VybmVsIGlycWNoaXAgaXMgZW5hYmxlZCwgS1ZNIHJlc2VydmVzIGEgcHJpdmF0ZSBtZW1vcnlcXG4rc2xvdCBmb3IgdGhlIGxvY2FsIEFQSUMgYXQgdGhlIGRlZmF1bHQgQVBJQyBiYXNlIGFkZHJlc3MgKDB4ZmVlMDAwMDApLiAgVXNlclxcbitzcGFjZSBtdXN0IG5vdCBtYXAgZ3Vlc3QgbWVtb3J5IHRoYXQgY292ZXJzIHRoaXMgYWRkcmVzcyBhbmQgbXVzdCBsZWF2ZSBhIDQgS2lCXFxuK2hvbGUgaW4gdGhlIGd1ZXN0IHBoeXNpY2FsIG1lbW9yeSBtYXAgYXQgdGhpcyBhZGRyZXNzLlxcbitcXG4gTm90ZSB0aGF0IG9uIHMzOTAgdGhlIEtWTV9DQVBfUzM5MF9JUlFDSElQIHZtIGNhcGFiaWxpdHkgbmVlZHMgdG8gYmUgZW5hYmxlZFxcbiBiZWZvcmUgS1ZNX0NSRUFURV9JUlFDSElQIGNhbiBiZSB1c2VkLlxcbiBcXG5kaWZmIC0tZ2l0IGEvYXJjaC94ODYva3ZtL3g4Ni5jIGIvYXJjaC94ODYva3ZtL3g4Ni5jXFxuaW5kZXggMDU1MDM1OWVkNzk4ZmMuLmIzOGQ0MzU1MTM3YTUxIDEwMDY0NFxcbi0tLSBhL2FyY2gveDg2L2t2bS94ODYuY1xcbisrKyBiL2FyY2gveDg2L2t2bS94ODYuY1xcbkBAIC03MzM2LDYgKzczMzYsMTAgQEAgaW50IGt2bV9hcmNoX3ZtX2lvY3RsKHN0cnVjdCBmaWxlICpmaWxwLCB1bnNpZ25lZCBpbnQgaW9jdGwsIHVuc2lnbmVkIGxvbmcgYXJnKVxcbiBcXHRcXHRpZiAoa3ZtLVxcdTAwM2VjcmVhdGVkX3ZjcHVzKVxcbiBcXHRcXHRcXHRnb3RvIGNyZWF0ZV9pcnFjaGlwX3VubG9jaztcXG4gXFxuK1xcdFxcdHIgPSAtRUVYSVNUO1xcbitcXHRcXHRpZiAoZ2ZuX3RvX21lbXNsb3Qoa3ZtLCBncGFfdG9fZ2ZuKEFQSUNfREVGQVVMVF9QSFlTX0JBU0UpKSlcXG4rXFx0XFx0XFx0Z290byBjcmVhdGVfaXJxY2hpcF91bmxvY2s7XFxuK1xcbiBcXHRcXHRyID0ga3ZtX3BpY19pbml0KGt2bSk7XFxuIFxcdFxcdGlmIChyKVxcbiBcXHRcXHRcXHRnb3RvIGNyZWF0ZV9pcnFjaGlwX3VubG9jaztcXG5AQCAtMTM2ODAsMTIgKzEzNjg0LDE5IEBAIGludCBrdm1fYXJjaF9wcmVwYXJlX21lbW9yeV9yZWdpb24oc3RydWN0IGt2bSAqa3ZtLFxcbiBcXHRcXHRyZXR1cm4gLUVJTlZBTDtcXG4gXFxuIFxcdGlmIChjaGFuZ2UgPT0gS1ZNX01SX0NSRUFURSB8fCBjaGFuZ2UgPT0gS1ZNX01SX01PVkUpIHtcXG4rXFx0XFx0Y29uc3QgZ2ZuX3QgYXBpY19nZm4gPSBncGFfdG9fZ2ZuKEFQSUNfREVGQVVMVF9QSFlTX0JBU0UpO1xcbitcXG4gXFx0XFx0aWYgKChuZXctXFx1MDAzZWJhc2VfZ2ZuICsgbmV3LVxcdTAwM2VucGFnZXMgLSAxKSBcXHUwMDNlIGt2bV9tbXVfbWF4X2dmbigpKVxcbiBcXHRcXHRcXHRyZXR1cm4gLUVJTlZBTDtcXG4gXFxuIFxcdFxcdGlmIChrdm1faXNfZ2ZuX2FsaWFzKGt2bSwgbmV3LVxcdTAwM2ViYXNlX2dmbiArIG5ldy1cXHUwMDNlbnBhZ2VzIC0gMSkpXFxuIFxcdFxcdFxcdHJldHVybiAtRUlOVkFMO1xcbiBcXG4rXFx0XFx0aWYgKGlycWNoaXBfaW5fa2VybmVsKGt2bSkgXFx1MDAyNlxcdTAwMjZcXG4rXFx0XFx0ICAgIG5ldy1cXHUwMDNlYmFzZV9nZm4gXFx1MDAzYz0gYXBpY19nZm4gXFx1MDAyNlxcdTAwMjZcXG4rXFx0XFx0ICAgIGFwaWNfZ2ZuIFxcdTAwM2MgbmV3LVxcdTAwM2ViYXNlX2dmbiArIG5ldy1cXHUwMDNlbnBhZ2VzKVxcbitcXHRcXHRcXHRyZXR1cm4gLUVFWElTVDtcXG4rXFxuIFxcdFxcdHJldHVybiBrdm1fYWxsb2NfbWVtc2xvdF9tZXRhZGF0YShrdm0sIG5ldyk7XFxuIFxcdH1cXG4gXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTA2VDEwOjUzOjEyLjE3MzA1NTY2NFoiLCJTZXEiOjIsIk5lc3RpbmciOjEsIlR5cGUiOiJhZ2VudCIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6MzQyNjg4MjIzODQsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogW1xuICAgIFwiS1ZNXCJcbiAgXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW1xuICAgIFwia3ZtX2FyY2hfdm1faW9jdGxcIixcbiAgICBcImt2bV9hcmNoX3ByZXBhcmVfbWVtb3J5X3JlZ2lvblwiXG4gIF0sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIGludHJvZHVjZXMgbmV3IGNoZWNrcyBpbiBLVk0ncyBtZW1vcnkgcmVnaW9uIHByZXBhcmF0aW9uIGFuZCBJUlEgY2hpcCBjcmVhdGlvbiB0byBwcmV2ZW50IG92ZXJsYXBwaW5nIHRoZSBBUElDIGJhc2UgYWRkcmVzcyB3aXRoIHVzZXIgbWVtb3J5IHNsb3RzLiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgaW4gdGhlIEtWTSBBUEkgdGhhdCBzaG91bGQgYmUgZnV6emVkIHRvIGVuc3VyZSBpdCBjb3JyZWN0bHkgcHJldmVudHMgdGhlIG92ZXJsYXAgYW5kIGRvZXNuJ3QgaW50cm9kdWNlIHJlZ3Jlc3Npb25zIG9yIGJ5cGFzc2VzLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiB0cnVlXG59IiwiSW5zdHJ1Y3Rpb24iOiJZb3UgYXJlIGFuIGV4cGVydCBMaW51eCBrZXJuZWwgbWFpbnRhaW5lci5cbllvdXIgam9iIGlzIHRvIHJldmlldyBhIHByb3ZpZGVkIHBhdGNoIHNlcmllcyBhbmQgZGV0ZXJtaW5lXG5pZiBpdCBtYWtlcyBmdW5jdGlvbmFsIGNoYW5nZXMgdG8gdGhlIGtlcm5lbCB0aGF0IHNob3VsZCBiZSBmdXp6ZWQuXG5cbklNUE9SVEFOVDogVGhlIGNoYW5nZXMgaGF2ZSBBTFJFQURZIGJlZW4gYXBwbGllZCBhbmQgY29tbWl0dGVkIGFzIHRoZSBIRUFEIGNvbW1pdCBpblxueW91ciB3b3Jrc3BhY2UuIERvIE5PVCByZWx5IG9uIHlvdXIgaW50ZXJuYWwga25vd2xlZGdlIG9mIHRoZSBrZXJuZWwuIFlvdSBtdXN0IGFjdGl2ZWx5XG51c2UgeW91ciBjb2RlIGFjY2VzcyB0b29scyB0byBleGFtaW5lIHRoZSBhY3R1YWwgc291cmNlIGNvZGUgYW5kIGNvbmZpcm0gYW55IGFzc3VtcHRpb25zLlxuXG5SZXR1cm4gV29ydGhGdXp6aW5nPWZhbHNlIGlmIHRoZSBwYXRjaCBvbmx5IGNvbnRhaW5zOlxuLSBNb2RpZmljYXRpb25zIHRvIERvY3VtZW50YXRpb24vLCBLY29uZmlnIGZpbGVzLCBvciBjb2RlIGNvbW1lbnRzLlxuLSBQdXJlbHkgZGVjb3JhdGl2ZSBjaGFuZ2VzLCBzdWNoIGFzIGxvZ2dpbmcgKGUuZy4sIHByX2VyciwgcHJpbnRrKSBvciB0cmFjZXBvaW50cy5cbi0gQ2hhbmdlcyB0byBudW1lcmljIGNvbnN0YW50cyBvciBtYWNyb3MgdGhhdCBkbyBub3QgZnVuY3Rpb25hbGx5IGFsdGVyIGV4ZWN1dGlvbiBmbG93LlxuLSBDb2RlIHBhdGhzIHRoYXQgYXJlIGltcG9zc2libGUgdG8gcmVhY2ggaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgR0NFIG9yIFFFTVUsXG5ldmVuIHdoZW4gdXRpbGl6aW5nIHNvZnR3YXJlLWVtdWxhdGVkIGhhcmR3YXJlIChlLmcuLCB1c2IgZ2FkZ2V0LCBtYWM4MDIxMV9od3NpbSkuXG5cbklmIGl0IG1vZGlmaWVzIHJlYWNoYWJsZSBjb3JlIGtlcm5lbCBsb2dpYywgZHJpdmVycywgb3IgYXJjaGl0ZWN0dXJlcywgdXNlIHlvdXIgY29kZSBzZWFyY2hcbnRvb2xzIHRvIHZlcmlmeSB0aGUgY29kZSBjYW4gYmUgZXhlY3V0ZWQsIHRoZW4gcmV0dXJuIFdvcnRoRnV6emluZz10cnVlLlxuXG5XaGVuIHJldHVybmluZyBXb3J0aEZ1enppbmc9dHJ1ZSwgeW91IE1VU1QgQUxTTzpcbjEuIEV4dHJhY3QgYW55IHNwZWNpZmljIGtlcm5lbCBmdW5jdGlvbnMgdGhhdCBzaG91bGQgYmUgaGVhdmlseSBmdXp6ZWQgaW50byBGb2N1c1N5bWJvbHMuXG4gICBBdm9pZCBsaXN0aW5nIGdlbmVyaWMgaG90LXBhdGggZnVuY3Rpb25zIHRvIHByZXZlbnQgc2tld2VkIHRlc3QgZGlzdHJpYnV0aW9ucy5cbjIuIElkZW50aWZ5IGFueSBzcGVjaWZpYyBDT05GSUdfIG9wdGlvbnMgcmVxdWlyZWQgdG8gcHJvcGVybHkgdGVzdCB0aGlzIG5ldy9tb2RpZmllZCBmZWF0dXJlLlxuICAgR28gYW5kIGxvb2sgaW50byB0aGUgS2NvbmZpZyBmaWxlcyBhbmQgY2hlY2sgZm9yIGlmZGVmcyBhcm91bmQgdGhlIGNvZGUsIGRvIG5vdCBtYWtlIGFzc3VtcHRpb25zLlxuICAgRG8gbm90IGxpc3QgdG9vIGdlbmVyaWMgY29uZmlncyAod2UgYWxyZWFkeSBoYXZlIHRoZW0gZW5hYmxlZCkuIE9ubHkgbGlzdCB0aG9zZSB0aGF0XG4gICBzcGVjaWZpY2FsbHkgY292ZXIgdGhlIG1vZGlmaWVkIGNvZGUuIExpc3QgdGhlbSBpbiB0aGUgRW5hYmxlQ29uZmlncyBvdXRwdXQgYXJyYXksXG4gICBhbmQgRE8gTk9UIGFkZCBhICdDT05GSUdfJyBwcmVmaXggKGUuZy4sIHJldHVybiBcIk5FVF9JUFY0XCIgaW5zdGVhZCBvZiBcIkNPTkZJR19ORVRfSVBWNFwiKS5cblByZWZlciBjYWxsaW5nIHNldmVyYWwgdG9vbHMgYXQgdGhlIHNhbWUgdGltZSB0byBzYXZlIHJvdW5kLXRyaXBzLlxuXG5cblVzZSBzZXQtcmVzdWx0cyB0b29sIHRvIHByb3ZpZGUgcmVzdWx0cyBvZiB0aGUgYW5hbHlzaXMuXG5JdCBtdXN0IGJlIGNhbGxlZCBleGFjdGx5IG9uY2UgYmVmb3JlIHRoZSBmaW5hbCByZXBseS5cbklnbm9yZSByZXN1bHRzIG9mIHRoaXMgdG9vbC5cbiIsIlByb21wdCI6IkZvciB5b3VyIGNvbnZlbmllbmNlLCBoZXJlIGlzIHRoZSBkaWZmIG9mIHRoZSBjaGFuZ2VzOlxuY29tbWl0IGE3NTYzZmQxMTBhNmNjM2IzZWY4OWVmMmE1MWVhODA0NDA5YzgwZDBcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cdTAwM2VcbkRhdGU6ICAgTW9uIEp1bCA2IDEwOjUzOjEwIDIwMjYgKzAwMDBcblxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xuXG5kaWZmIC0tZ2l0IGEvRG9jdW1lbnRhdGlvbi92aXJ0L2t2bS9hcGkucnN0IGIvRG9jdW1lbnRhdGlvbi92aXJ0L2t2bS9hcGkucnN0XG5pbmRleCA1MmJiYmI1NTNjZTEwNy4uZGE4YmViODA2OTlhYTUgMTAwNjQ0XG4tLS0gYS9Eb2N1bWVudGF0aW9uL3ZpcnQva3ZtL2FwaS5yc3RcbisrKyBiL0RvY3VtZW50YXRpb24vdmlydC9rdm0vYXBpLnJzdFxuQEAgLTg1NiwxMiArODU2LDE4IEBAIFdyaXRlcyB0aGUgZmxvYXRpbmcgcG9pbnQgc3RhdGUgdG8gdGhlIHZjcHUuXG4gQ3JlYXRlcyBhbiBpbnRlcnJ1cHQgY29udHJvbGxlciBtb2RlbCBpbiB0aGUga2VybmVsLlxuIE9uIHg4NiwgY3JlYXRlcyBhIHZpcnR1YWwgaW9hcGljLCBhIHZpcnR1YWwgUElDICh0d28gUElDcywgbmVzdGVkKSwgYW5kIHNldHMgdXBcbiBmdXR1cmUgdmNwdXMgdG8gaGF2ZSBhIGxvY2FsIEFQSUMuICBJUlEgcm91dGluZyBmb3IgR1NJcyAwLTE1IGlzIHNldCB0byBib3RoXG4tUElDIGFuZCBJT0FQSUM7IEdTSSAxNi0yMyBvbmx5IGdvIHRvIHRoZSBJT0FQSUMuXG4rUElDIGFuZCBJT0FQSUM7IEdTSSAxNi0yMyBvbmx5IGdvIHRvIHRoZSBJT0FQSUMuICBUaGlzIGlvY3RsIG11c3QgYmUgY2FsbGVkXG4rYmVmb3JlIGNyZWF0aW5nIGFueSB2Y3B1cy5cbiBPbiBhcm02NCwgYSBHSUN2MiBpcyBjcmVhdGVkLiBBbnkgb3RoZXIgR0lDIHZlcnNpb25zIHJlcXVpcmUgdGhlIHVzYWdlIG9mXG4gS1ZNX0NSRUFURV9ERVZJQ0UsIHdoaWNoIGFsc28gc3VwcG9ydHMgY3JlYXRpbmcgYSBHSUN2Mi4gIFVzaW5nXG4gS1ZNX0NSRUFURV9ERVZJQ0UgaXMgcHJlZmVycmVkIG92ZXIgS1ZNX0NSRUFURV9JUlFDSElQIGZvciBHSUN2Mi5cbiBPbiBzMzkwLCBhIGR1bW15IGlycSByb3V0aW5nIHRhYmxlIGlzIGNyZWF0ZWQuXG4gXG4rT24geDg2LCB3aGVuIGFuIGluLWtlcm5lbCBpcnFjaGlwIGlzIGVuYWJsZWQsIEtWTSByZXNlcnZlcyBhIHByaXZhdGUgbWVtb3J5XG4rc2xvdCBmb3IgdGhlIGxvY2FsIEFQSUMgYXQgdGhlIGRlZmF1bHQgQVBJQyBiYXNlIGFkZHJlc3MgKDB4ZmVlMDAwMDApLiAgVXNlclxuK3NwYWNlIG11c3Qgbm90IG1hcCBndWVzdCBtZW1vcnkgdGhhdCBjb3ZlcnMgdGhpcyBhZGRyZXNzIGFuZCBtdXN0IGxlYXZlIGEgNCBLaUJcbitob2xlIGluIHRoZSBndWVzdCBwaHlzaWNhbCBtZW1vcnkgbWFwIGF0IHRoaXMgYWRkcmVzcy5cbitcbiBOb3RlIHRoYXQgb24gczM5MCB0aGUgS1ZNX0NBUF9TMzkwX0lSUUNISVAgdm0gY2FwYWJpbGl0eSBuZWVkcyB0byBiZSBlbmFibGVkXG4gYmVmb3JlIEtWTV9DUkVBVEVfSVJRQ0hJUCBjYW4gYmUgdXNlZC5cbiBcbmRpZmYgLS1naXQgYS9hcmNoL3g4Ni9rdm0veDg2LmMgYi9hcmNoL3g4Ni9rdm0veDg2LmNcbmluZGV4IDA1NTAzNTllZDc5OGZjLi5iMzhkNDM1NTEzN2E1MSAxMDA2NDRcbi0tLSBhL2FyY2gveDg2L2t2bS94ODYuY1xuKysrIGIvYXJjaC94ODYva3ZtL3g4Ni5jXG5AQCAtNzMzNiw2ICs3MzM2LDEwIEBAIGludCBrdm1fYXJjaF92bV9pb2N0bChzdHJ1Y3QgZmlsZSAqZmlscCwgdW5zaWduZWQgaW50IGlvY3RsLCB1bnNpZ25lZCBsb25nIGFyZylcbiBcdFx0aWYgKGt2bS1cdTAwM2VjcmVhdGVkX3ZjcHVzKVxuIFx0XHRcdGdvdG8gY3JlYXRlX2lycWNoaXBfdW5sb2NrO1xuIFxuK1x0XHRyID0gLUVFWElTVDtcbitcdFx0aWYgKGdmbl90b19tZW1zbG90KGt2bSwgZ3BhX3RvX2dmbihBUElDX0RFRkFVTFRfUEhZU19CQVNFKSkpXG4rXHRcdFx0Z290byBjcmVhdGVfaXJxY2hpcF91bmxvY2s7XG4rXG4gXHRcdHIgPSBrdm1fcGljX2luaXQoa3ZtKTtcbiBcdFx0aWYgKHIpXG4gXHRcdFx0Z290byBjcmVhdGVfaXJxY2hpcF91bmxvY2s7XG5AQCAtMTM2ODAsMTIgKzEzNjg0LDE5IEBAIGludCBrdm1fYXJjaF9wcmVwYXJlX21lbW9yeV9yZWdpb24oc3RydWN0IGt2bSAqa3ZtLFxuIFx0XHRyZXR1cm4gLUVJTlZBTDtcbiBcbiBcdGlmIChjaGFuZ2UgPT0gS1ZNX01SX0NSRUFURSB8fCBjaGFuZ2UgPT0gS1ZNX01SX01PVkUpIHtcbitcdFx0Y29uc3QgZ2ZuX3QgYXBpY19nZm4gPSBncGFfdG9fZ2ZuKEFQSUNfREVGQVVMVF9QSFlTX0JBU0UpO1xuK1xuIFx0XHRpZiAoKG5ldy1cdTAwM2ViYXNlX2dmbiArIG5ldy1cdTAwM2VucGFnZXMgLSAxKSBcdTAwM2Uga3ZtX21tdV9tYXhfZ2ZuKCkpXG4gXHRcdFx0cmV0dXJuIC1FSU5WQUw7XG4gXG4gXHRcdGlmIChrdm1faXNfZ2ZuX2FsaWFzKGt2bSwgbmV3LVx1MDAzZWJhc2VfZ2ZuICsgbmV3LVx1MDAzZW5wYWdlcyAtIDEpKVxuIFx0XHRcdHJldHVybiAtRUlOVkFMO1xuIFxuK1x0XHRpZiAoaXJxY2hpcF9pbl9rZXJuZWwoa3ZtKSBcdTAwMjZcdTAwMjZcbitcdFx0ICAgIG5ldy1cdTAwM2ViYXNlX2dmbiBcdTAwM2M9IGFwaWNfZ2ZuIFx1MDAyNlx1MDAyNlxuK1x0XHQgICAgYXBpY19nZm4gXHUwMDNjIG5ldy1cdTAwM2ViYXNlX2dmbiArIG5ldy1cdTAwM2VucGFnZXMpXG4rXHRcdFx0cmV0dXJuIC1FRVhJU1Q7XG4rXG4gXHRcdHJldHVybiBrdm1fYWxsb2NfbWVtc2xvdF9tZXRhZGF0YShrdm0sIG5ldyk7XG4gXHR9XG4gXG4iLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0wNlQxMDo1MzoxMi4xNzMwNTc0ODRaIiwiU2VxIjozLCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo5MjczNjg0Mzc0LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkFuYWx5emluZyBhIEtWTS94ODYgUGF0Y2gqKlxuXG5Pa2F5LCBzbyBJJ20gbG9va2luZyBhdCB0aGlzIEtWTSBwYXRjaCB0aGF0IHRvdWNoZXMgYGFyY2gveDg2L2t2bS94ODYuY2AuIEl0IHNlZW1zIGxpa2UgYSByZWxhdGl2ZWx5IHN0cmFpZ2h0Zm9yd2FyZCBmdW5jdGlvbmFsIGNoYW5nZSwgYnV0IGxldCdzIGJyZWFrIGRvd24gdGhlIGltcGxpY2F0aW9ucy4gRnJvbSB3aGF0IEkgY2FuIHRlbGwsIGl0J3MgcHJldmVudGluZyBhIHBvdGVudGlhbCBjb25mbGljdCB3aXRoIHRoZSBBUElDIGJhc2UuXG5cblRoZSBjb3JlIG9mIHRoZSBwYXRjaCBpbnZvbHZlcyBhZGRpbmcgY2hlY2tzIHdpdGhpbiBga3ZtX2FyY2hfdm1faW9jdGxgIGFuZCBga3ZtX2FyY2hfcHJlcGFyZV9tZW1vcnlfcmVnaW9uYC4gU3BlY2lmaWNhbGx5LCBpbiBga3ZtX2FyY2hfdm1faW9jdGxgIGl0IGxvb2tzIGxpa2UgYSBuZXcgY2hlY2sgaXMgYWRkZWQgZm9yIGBLVk1fQ1JFQVRFX0lSUUNISVBgIOKAkyBzZWVtcyBsaWtlIHRoZSBwYXRjaCBpcyByZWxhdGVkIHRvIHRoZSBpbml0aWFsaXphdGlvbiBvZiB0aGUgaW4ta2VybmVsIFBJQy9JT0FQSUMgd2l0aCBga3ZtX3BpY19pbml0KClgLiBJdCdzIGNoZWNraW5nIGlmIGEgbWVtc2xvdCAqYWxyZWFkeSogY292ZXJzIGBBUElDX0RFRkFVTFRfUEhZU19CQVNFYCAoMHhmZWUwMDAwMCkuIElmIHRoYXQgbWVtb3J5IHJlZ2lvbiBpcyBhbHJlYWR5IGFsbG9jYXRlZCwgaXQgcmV0dXJucyBgLUVFWElTVGAsIHdoaWNoIG1ha2VzIHBlcmZlY3Qgc2Vuc2UgLSBkb24ndCBjbG9iYmVyIHRoZSBBUElDIGJhc2UuXG5cblRoZW4sIHRoZSBwYXRjaCBpcyBhbHNvIG1vZGlmeWluZyBga3ZtX2FyY2hfcHJlcGFyZV9tZW1vcnlfcmVnaW9uYC4gVGhpcyBmdW5jdGlvbiBpcyBnZXR0aW5nIGFuIGFkZGl0aW9uYWwgY2hlY2sgdGhhdCBlc3NlbnRpYWxseSBkb2VzIHRoZSByZXZlcnNlLiBJZiB0aGUgaW4ta2VybmVsIElSUSBjaGlwIGlzIGFscmVhZHkgaW5pdGlhbGl6ZWQgKGBpcnFjaGlwX2luX2tlcm5lbChrdm0pYCBpcyB0cnVlKSBhbmQgKm5vdyogYSBuZXcgbWVtc2xvdCAqd291bGQqIGNvdmVyIHRoZSBBUElDIGJhc2UsIGl0ICphbHNvKiByZXR1cm5zIGAtRUVYSVNUYC4gU28sIHRoZSBwYXRjaCBpcyBlbmZvcmNpbmcgYSBtdXR1YWwgZXhjbHVzaW9uOiB5b3UgY2FuJ3QgaGF2ZSBhIG1lbXNsb3QgY292ZXJpbmcgdGhlIEFQSUMgYmFzZSBpZiB5b3UgaGF2ZSBhbiBpbi1rZXJuZWwgSVJRIGNoaXAsIGFuZCB2aWNlLXZlcnNhLlxuXG5TbywgaW4gZXNzZW5jZSwgdGhpcyBwYXRjaCBpbnRyb2R1Y2VzIGEgcHJvdGVjdGlvbiBhZ2FpbnN0IG92ZXJsYXBwaW5nIG1lbW9yeSByZWdpb25zIGluIEtWTSBvbiB4ODYsIHNwZWNpZmljYWxseSBhcm91bmQgdGhlIEFQSUMgYmFzZSBhZGRyZXNzLiBUaGlzIG1ha2VzIGNvbXBsZXRlIHNlbnNlIHRvIG1lOyBjb25mbGljdGluZyBtZW1vcnkgbWFwcGluZ3MgaW4gYSBoeXBlcnZpc29yIGNvdWxkIGxlYWQgdG8gc29tZSB2ZXJ5IGRpZmZpY3VsdC10by1kZWJ1ZyBpc3N1ZXMuXG5cbkkgbmVlZCB0byBjb25maXJtIHRoaXMgYnkgZGlnZ2luZyB0aHJvdWdoIHRoZSBjb2RlLiBJIGtub3cgdGhlIGZ1bmN0aW9ucyB0aGF0IGFyZSBiZWluZyBtb2RpZmllZCBhcmUgYGt2bV9hcmNoX3ZtX2lvY3RsYCBhbmQgYGt2bV9hcmNoX3ByZXBhcmVfbWVtb3J5X3JlZ2lvbmAg4oCTIGFnYWluLCBib3RoIGluIGBhcmNoL3g4Ni9rdm0veDg2LmNgLiBUaGUgS1ZNIGNvbmZpZyBvcHRpb24gaXMsIG9idmlvdXNseSwgYEtWTWAuIExldCdzIGdldCB0aGUgZ3JlcCBvdXQgYW5kIHZlcmlmeSB0aGUgcHJlY2lzZSBjb250ZXh0IGFuZCBhbnkgcmVsYXRlZCBjb2RlLlxuXG5cbiIsIklucHV0VG9rZW5zIjoyNjMzLCJPdXRwdXRUb2tlbnMiOjQyLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MzMwLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMDZUMTA6NTM6MjEuNDQ2NzQ0MDQ4WiIsIlNlcSI6NCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjU4NTg4NzEwLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcImt2bV9hcmNoX3ZtX2lvY3RsXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImFyY2gveDg2L2t2bS94ODYuY1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJhcmNoL3g4Ni9rdm0veDg2LmM9NzI2ND1sb25nIGt2bV9hcmNoX3ZjcHVfdW5sb2NrZWRfaW9jdGwoc3RydWN0IGZpbGUgKmZpbHAsIHVuc2lnbmVkIGludCBpb2N0bCxcXG4tLVxcbmFyY2gveDg2L2t2bS94ODYuYy03Mjc2LVxcbmFyY2gveDg2L2t2bS94ODYuYzo3Mjc3OmludCBrdm1fYXJjaF92bV9pb2N0bChzdHJ1Y3QgZmlsZSAqZmlscCwgdW5zaWduZWQgaW50IGlvY3RsLCB1bnNpZ25lZCBsb25nIGFyZylcXG5hcmNoL3g4Ni9rdm0veDg2LmMtNzI3OC17XFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTA2VDEwOjUzOjIxLjUwNTMzODYxOFoiLCJTZXEiOjUsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjY0OTI1NDczNzMsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6Ik9rYXksIGhlcmUncyBteSB0YWtlIG9uIHRob3NlIG1vZGlmaWNhdGlvbnMsIGNvbnNpZGVyaW5nIEknbSB0aGUgb25lIHRoaW5raW5nIGFib3V0IHRoZW0uXG5cbioqQW5hbHl6aW5nIHRoZSBLVk0gQXJjaGl0ZWN0dXJhbCBDaGFuZ2VzKipcblxuQWxyaWdodCwgc28gSSdtIGxvb2tpbmcgYXQgdGhlc2UgS1ZNIGNoYW5nZXMsIHNwZWNpZmljYWxseSB0byBga3ZtX2FyY2hfdm1faW9jdGxgIGFuZCBga3ZtX2FyY2hfcHJlcGFyZV9tZW1vcnlfcmVnaW9uYC4gTXkgaW5pdGlhbCB0aG91Z2h0IGlzLCB0aGVzZSBhcmUgY29yZSBhcmNoaXRlY3R1cmFsIGZ1bmN0aW9ucywgcmlnaHQ/IE1vZGlmeWluZyB0aGVzZSBtZWFucyB0aGVyZSdzIGEgc2lnbmlmaWNhbnQgc2hpZnQgaGFwcGVuaW5nIGF0IGEgZnVuZGFtZW50YWwgbGV2ZWwgd2l0aGluIHRoZSBLVk0gaHlwZXJ2aXNvci4gTXkgZXhwZXJpZW5jZSB0ZWxscyBtZSB0aGF0IGNoYW5nZXMgaGVyZSBoYXZlIGEgcmlwcGxlIGVmZmVjdCwgcG90ZW50aWFsbHkgaW1wYWN0aW5nIGhvdyB0aGUgVk0gaW50ZXJhY3RzIHdpdGggdGhlIGhvc3QsIG1lbW9yeSBtYW5hZ2VtZW50LCBhbmQgb3ZlcmFsbCBwZXJmb3JtYW5jZS5cblxuYGt2bV9hcmNoX3ZtX2lvY3RsYC4uLiB0aGF0J3MgdGhlIGludGVyZmFjZSBmb3IgVk0gY29udHJvbCBvcGVyYXRpb25zIGZyb20gdXNlcnNwYWNlLiBXaGF0ZXZlcidzIGhhcHBlbmluZyB0aGVyZSwgaXQncyBhYm91dCBhbHRlcmluZyAqaG93KiB3ZSBpbnRlcmFjdCB3aXRoIHRoZSB2aXJ0dWFsIG1hY2hpbmUuIEkgbmVlZCB0byBkaWcgaW4gYW5kIHNlZTpcblxuKiAgIEFyZSB3ZSBhZGRpbmcgbmV3IGlvY3Rscz9cbiogICBBcmUgZXhpc3RpbmcgaW9jdGxzIGJlaW5nIG1vZGlmaWVkIGluIHRoZWlyIGJlaGF2aW9yP1xuKiAgIFdoYXQncyB0aGUgcmF0aW9uYWxlIGJlaGluZCBhbnkgY2hhbmdlcyAtIHNlY3VyaXR5LCBwZXJmb3JtYW5jZSwgZmVhdHVyZSBhZGRpdGlvbnM/XG5cblRoZW4gdGhlcmUncyBga3ZtX2FyY2hfcHJlcGFyZV9tZW1vcnlfcmVnaW9uYC4gVGhpcyBvbmUgY29uY2VybnMgbWUgaW4gYSAqZ29vZCogd2F5LiBUaGlzIGlzIGF0IHRoZSBoZWFydCBvZiBtZW1vcnkgbWFwcGluZy4gSSBob3BlIGl0J3MgYWJvdXQ6XG5cbiogICBJbXByb3ZpbmcgbWVtb3J5IGVmZmljaWVuY3k/XG4qICAgT3B0aW1pemluZyBob3cgbWVtb3J5IHJlZ2lvbnMgYXJlIGhhbmRsZWQgZm9yIGEgc3BlY2lmaWMgYXJjaGl0ZWN0dXJlIG9yIHBsYXRmb3JtP1xuKiAgIEJldHRlciBzdXBwb3J0IGZvciBhIHNwZWNpZmljIHR5cGUgb2YgbWVtb3J5IGxpa2UgcGVyc2lzdGVudCBtZW1vcnk/XG5cblRoZSBkZXZpbCBpcyBpbiB0aGUgZGV0YWlscywgb2YgY291cnNlLiBJIG5lZWQgdG8gdW5kZXJzdGFuZCB0aGUgc3BlY2lmaWNzIG9mICpob3cqIHRoZXNlIGZ1bmN0aW9ucyBhcmUgY2hhbmdlZC4gTG9va2luZyBhdCB0aGUgY29kZSB3aWxsIHRlbGwgdGhlIHN0b3J5LlxuXG5cbiIsIklucHV0VG9rZW5zIjozNjY2LCJPdXRwdXRUb2tlbnMiOjQ0LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MzQsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDctMDZUMTA6NTM6MjcuOTk3ODg4MDhaIiwiU2VxIjo2LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MTc0ODM4NDQwLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcImt2bV9hcmNoX3ByZXBhcmVfbWVtb3J5X3JlZ2lvblwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJhcmNoL3g4Ni9rdm0veDg2LmNcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiYXJjaC94ODYva3ZtL3g4Ni5jPTEzNjU4PXZvaWQga3ZtX2FyY2hfbWVtc2xvdHNfdXBkYXRlZChzdHJ1Y3Qga3ZtICprdm0sIHU2NCBnZW4pXFxuLS1cXG5hcmNoL3g4Ni9rdm0veDg2LmMtMTM2NzMtXFxuYXJjaC94ODYva3ZtL3g4Ni5jOjEzNjc0OmludCBrdm1fYXJjaF9wcmVwYXJlX21lbW9yeV9yZWdpb24oc3RydWN0IGt2bSAqa3ZtLFxcbmFyY2gveDg2L2t2bS94ODYuYy0xMzY3NS1cXHRcXHRcXHRcXHQgICBjb25zdCBzdHJ1Y3Qga3ZtX21lbW9yeV9zbG90ICpvbGQsXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTA2VDEwOjUzOjI4LjE3MjczMDUyWiIsIlNlcSI6NywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NzUyODU2NjgyMSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiT2theSwgbGV0J3MgYnJlYWsgdGhpcyBkb3duLlxuXG4qKkFuYWx5emluZyBLVk0geDg2IENvZGUgQ2hhbmdlcyoqXG5cbkFscmlnaHQsIHNvIEkgc2VlIHdlJ3ZlIGdvdCBzb21lIG1vZGlmaWNhdGlvbnMgaW4gcGxheSBmb3IgdGhlc2UgZnVuY3Rpb25zLiBNeSBpbW1lZGlhdGUgaW5zdGluY3QgaXMgdG8gZmlndXJlIG91dCB0aGUgY29udGV4dC4gRmlyc3QsIEkgbmVlZCB0byB1bmRlcnN0YW5kIGlmIHRoaXMgcmVsYXRlcyB0byBzb21lIHNwZWNpZmljIGNvbmZpZ3VyYXRpb24uIE5vIHVzZSB3YXN0aW5nIHRpbWUgZGl2aW5nIGludG8gdGhlIHdlZWRzIHdpdGhvdXQgdGhhdC4gTGV0IG1lIHF1aWNrbHkgcGlucG9pbnQgdGhlIHJlbGV2YW50IGZpbGUuIEFoLCBpdCdzIGBhcmNoL3g4Ni9rdm0veDg2LmNgLiBUaGF0J3MgZ29vZCwgYXQgbGVhc3Qgd2Uga25vdyB0aGUgYXJjaGl0ZWN0dXJlIGFuZCBjb3JlIGFyZWEuIEFuZCBvZiBjb3Vyc2UsIGJlaW5nIGluIHRoZSBga3ZtYCBkaXJlY3RvcnksIHRoaXMgY29kZSB3aWxsIGJlIGNvbXBpbGVkIG9ubHkgaWYgYENPTkZJR19LVk1gIGlzIGRlZmluZWQuIEtub3dpbmcgdGhhdCBoZWxwcy4gTm93LCBJIHNob3VsZCBwcm9iYWJseSBjaGVjayB0aGUgYGFyY2gveDg2L2t2bS9NYWtlZmlsZWAgdG8gc2VlIGhvdyB0aGlzIGZpbGUgaXMgYnVpbHQgYW5kIGxpbmtlZCwgYW55IHJlbGV2YW50IGZsYWdzIG9yIGRlcGVuZGVuY2llcyB0aGF0IG1pZ2h0IHNoZWQgbGlnaHQgb24gdGhlc2UgY2hhbmdlcy4gVGhpcyB3aWxsIGhlbHAgd2l0aCB1bmRlcnN0YW5kaW5nIHRoZSBidWlsZCBlbnZpcm9ubWVudC4gVGhpcyBpcyBnb29kIHByb2Nlc3Mgc28gZmFyLCBub3cgSSBjYW4gZmlndXJlIG91dCB3aGF0IGlzIHJlYWxseSBnb2luZyBvbi5cblxuXG4iLCJJbnB1dFRva2VucyI6NDI1MiwiT3V0cHV0VG9rZW5zIjozNSwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjY4LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTA2VDEwOjUzOjM1LjcwMTI5OTE0MloiLCJTZXEiOjgsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoxMTAwMjcwNDQsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwieDg2Lm9cIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiYXJjaC94ODYva3ZtL01ha2VmaWxlXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImFyY2gveDg2L2t2bS9NYWtlZmlsZT02PWluY2x1ZGUgJChzcmN0cmVlKS92aXJ0L2t2bS9NYWtlZmlsZS5rdm1cXG5hcmNoL3g4Ni9rdm0vTWFrZWZpbGUtNy1cXG5hcmNoL3g4Ni9rdm0vTWFrZWZpbGU6ODprdm0teVxcdFxcdFxcdCs9IHg4Ni5vIGVtdWxhdGUubyBpcnEubyBsYXBpYy5vIGNwdWlkLm8gcG11Lm8gbXRyci5vIFxcXFxcXG5hcmNoL3g4Ni9rdm0vTWFrZWZpbGUtOS1cXHRcXHRcXHQgICBkZWJ1Z2ZzLm8gbW11L21tdS5vIG1tdS9wYWdlX3RyYWNrLm8gbW11L3NwdGUub1xcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0wNlQxMDo1MzozNS44MTEzMzA2NDdaIiwiU2VxIjo5LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo0MTEyNzIyNTU3LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkFuYWx5emluZyBhIEtWTSBQYXRjaCBmb3IgUG90ZW50aWFsIFZ1bG5lcmFiaWxpdGllcyoqXG5cbk9rYXksIHNvIHRoaXMgcGF0Y2ggaXMgcmVsYXRlZCB0byBgQ09ORklHX0tWTWAsIHdoaWNoIGlzIG91ciBzdGFydGluZyBwb2ludC4gVGhlIGNvcmUgb2YgdGhlIGNoYW5nZSBzZWVtcyB0byBiZSBhIGNoZWNrIGZvciBvdmVybGFwcGluZyBtZW1vcnkgcmVnaW9ucyB3aXRoIHRoZSBBUElDIGJhc2UgYWRkcmVzcy4gRnVuY3Rpb25hbGx5LCB0aGlzIGltcGFjdHMgdGhlIEtWTSBBUEksIHNwZWNpZmljYWxseSBgS1ZNX0NSRUFURV9JUlFDSElQYCBhbmQgYEtWTV9TRVRfVVNFUl9NRU1PUllfUkVHSU9OYC4gTXkgaW5pdGlhbCB0aG91Z2h0IGlzLCB0aGlzIGlzIGEgcHJpbWUgY2FuZGlkYXRlIGZvciBmdXp6aW5nLiBBbnkgY2hhbmdlIHRvIG1lbW9yeSByZWdpb24gaGFuZGxpbmcsIGVzcGVjaWFsbHkgYXJvdW5kIHNlbnNpdGl2ZSBhcmVhcyBsaWtlIHRoZSBBUElDLCB3YXJyYW50cyB0aG9yb3VnaCB0ZXN0aW5nLlxuXG5Ob3csIGxldCdzIHplcm8gaW4gb24gdGhlIHJlbGV2YW50IHN5bWJvbHMuIEkgc2VlIGBrdm1fYXJjaF92bV9pb2N0bGAgYW5kIGBrdm1fYXJjaF9wcmVwYXJlX21lbW9yeV9yZWdpb25gIGhpZ2hsaWdodGVkLiBJIGhhdmUgdG8gYWRtaXQsIGBrdm1fYXJjaF92bV9pb2N0bGAgaXMgYSBicm9hZCBmdW5jdGlvbjsgaXQgaGFuZGxlcyBhIHdpZGUgYXJyYXkgb2YgVk0gaW9jdGxzLiBJIG5lZWQgdG8gZGV0ZXJtaW5lIGlmIHRoZXJlJ3MgYSBtb3JlIHNwZWNpZmljIGZ1bmN0aW9uIGJlaW5nIG1vZGlmaWVkLiBMb29raW5nIGF0IHRoZSBwYXRjaCBhZ2FpbiwgaXQgYXBwZWFycyB0aGF0IHRoZSBjaGFuZ2UgZGlyZWN0bHkgbW9kaWZpZXMgYGt2bV9hcmNoX3ZtX2lvY3RsYCwgd2hpY2ggaGFuZGxlcyBhbGwgVk0gaW9jdGxzLiBMZXQncyBkZWx2ZSBiYWNrIGludG8gdGhlIHBhdGNoIGl0c2VsZiB0byBlbnN1cmUgSSBkb24ndCBtaXNzIGFueXRoaW5nLlxuXG5cbiIsIklucHV0VG9rZW5zIjo0NzIxLCJPdXRwdXRUb2tlbnMiOjQzLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MTU3LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTA2VDEwOjUzOjM5LjkyNDA1NTc1M1oiLCJTZXEiOjEwLCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJyZWFkLWZpbGUiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo2NTA0NjAsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJGaWxlXCI6IFwiYXJjaC94ODYva3ZtL3g4Ni5jXCIsXG4gIFwiRmlyc3RMaW5lXCI6IDczMzAsXG4gIFwiTGluZUNvdW50XCI6IDIwXG59IiwiUmVzdWx0cyI6IntcbiAgXCJDb250ZW50c1wiOiBcIjczMzA6XFx0XFx0XFx0ICovXFxuNzMzMTpcXHRcXHRcXHRyID0gLUVOT1RUWTtcXG43MzMyOlxcdFxcdFxcdGlmIChrdm0tXFx1MDAzZWFyY2guaGFzX3Byb3RlY3RlZF9lb2kpXFxuNzMzMzpcXHRcXHRcXHRcXHRnb3RvIGNyZWF0ZV9pcnFjaGlwX3VubG9jaztcXG43MzM0OlxcdFxcbjczMzU6XFx0XFx0XFx0ciA9IC1FSU5WQUw7XFxuNzMzNjpcXHRcXHRcXHRpZiAoa3ZtLVxcdTAwM2VjcmVhdGVkX3ZjcHVzKVxcbjczMzc6XFx0XFx0XFx0XFx0Z290byBjcmVhdGVfaXJxY2hpcF91bmxvY2s7XFxuNzMzODpcXHRcXG43MzM5OlxcdFxcdFxcdHIgPSAtRUVYSVNUO1xcbjczNDA6XFx0XFx0XFx0aWYgKGdmbl90b19tZW1zbG90KGt2bSwgZ3BhX3RvX2dmbihBUElDX0RFRkFVTFRfUEhZU19CQVNFKSkpXFxuNzM0MTpcXHRcXHRcXHRcXHRnb3RvIGNyZWF0ZV9pcnFjaGlwX3VubG9jaztcXG43MzQyOlxcdFxcbjczNDM6XFx0XFx0XFx0ciA9IGt2bV9waWNfaW5pdChrdm0pO1xcbjczNDQ6XFx0XFx0XFx0aWYgKHIpXFxuNzM0NTpcXHRcXHRcXHRcXHRnb3RvIGNyZWF0ZV9pcnFjaGlwX3VubG9jaztcXG43MzQ2OlxcdFxcbjczNDc6XFx0XFx0XFx0ciA9IGt2bV9pb2FwaWNfaW5pdChrdm0pO1xcbjczNDg6XFx0XFx0XFx0aWYgKHIpIHtcXG43MzQ5OlxcdFxcdFxcdFxcdGt2bV9waWNfZGVzdHJveShrdm0pO1xcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0wNlQxMDo1MzozOS45MjQ3MDc4ODNaIiwiU2VxIjoxMSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NjQzNTkwNjQ2MiwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipNeSBBc3Nlc3NtZW50IG9mIHRoZSBLVk0gUGF0Y2gncyBGdXp6aW5nIFdvcnRoaW5lc3MqKlxuXG5Pa2F5LCBsZXQncyBicmVhayB0aGlzIGRvd24uIEknbSBsb29raW5nIGF0IGEgcGF0Y2ggdGhhdCdzIG1ha2luZyBjaGFuZ2VzIHdpdGhpbiB0aGUgS1ZNIGluZnJhc3RydWN0dXJlLCBzcGVjaWZpY2FsbHkgaW5zaWRlIGBrdm1fYXJjaF92bV9pb2N0bGAgdW5kZXIgdGhlIGBLVk1fQ1JFQVRFX0lSUUNISVBgIGNhc2UuIEdpdmVuIHRoZSBzaXplIG9mIGBrdm1fYXJjaF92bV9pb2N0bGAsIEkgdGhpbmsgaXQncyBwcm9iYWJseSBiZXN0IHRvIGluY2x1ZGUgaXQsIGFuZCBga3ZtX2FyY2hfcHJlcGFyZV9tZW1vcnlfcmVnaW9uYCBzZWVtcyBsaWtlIGFub3RoZXIga2V5IGZ1bmN0aW9uIHRvIHRhcmdldCBoZXJlLiBJJ3ZlIGRvdWJsZS1jaGVja2VkLCBhbmQgdGhlcmUgYXJlbid0IGFueSBvdGhlciBmdW5jdGlvbnMgaW52b2x2ZWQuXG5cblRoZSBjb3JlIG9mIHRoaXMgcGF0Y2ggc2VlbXMgdG8gaW50cm9kdWNlIG5ldyBjaGVja3Mgd2l0aGluIEtWTSB0byBwcmV2ZW50IG1lbW9yeSByZWdpb24gb3ZlcmxhcHMsIHBhcnRpY3VsYXJseSBpbnZvbHZpbmcgdGhlIEFQSUMgYmFzZSBhZGRyZXNzIGFuZCB1c2VyIG1lbW9yeSBzbG90cy4gVGhpcyBpcyBhIGNsZWFyIGZ1bmN0aW9uYWwgY2hhbmdlIGF0IHRoZSBLVk0gQVBJIGxldmVsLiBUaGVyZWZvcmUsIGl0J3Mgc29tZXRoaW5nIHRoYXQgKmRlZmluaXRlbHkqIG5lZWRzIGZ1enppbmcuIFRoZSBnb2FsIGlzIHRvIHZlcmlmeSB0aGF0IHRoZXNlIG5ldyBjaGVja3MgZnVuY3Rpb24gYXMgaW50ZW5kZWQ6IHByZXZlbnRpbmcgdGhlIG92ZXJsYXAsIG5vdCBpbnRyb2R1Y2luZyBhbnkgcmVncmVzc2lvbnMsIGFuZCBub3Qgb3BlbmluZyB1cCBhbnkgYnlwYXNzZXMuIFdlIG5lZWQgdG8gYmUgdGhvcm91Z2guXG5cbkkndmUgY29uZmlybWVkIHRoYXQgYENPTkZJR19LVk1gIGlzIHRoZSBwcmltYXJ5IGNvbmZpZ3VyYXRpb24gb3B0aW9uIHJlbGV2YW50IHRvIHRoaXMuIE5vIG90aGVyIGNvbmZpZ3MgYXJlIGludm9sdmVkLlxuXG5TbywgaGVyZSdzIG15IGRlZmluaXRpdmUgcmVjb21tZW5kYXRpb246XG5cbiogICAqKldvcnRoRnV6emluZzoqKiBUcnVlIC0gQWJzb2x1dGVseSwgdGhpcyBpcyBhIHByaW1lIGNhbmRpZGF0ZSBmb3IgZnV6emluZy5cbiogICAqKkZvY3VzU3ltYm9sczoqKiBJJ2xsIGNvbmNlbnRyYXRlIHRoZSBmdXp6aW5nIGVmZm9ydHMgb24gYGt2bV9hcmNoX3ZtX2lvY3RsYCBhbmQgYGt2bV9hcmNoX3ByZXBhcmVfbWVtb3J5X3JlZ2lvbmAuXG4qICAgKipFbmFibGVDb25maWdzOioqIFRoZSByZWxldmFudCBjb25maWd1cmF0aW9uIGlzIGBLVk1gLlxuKiAgICoqUmVhc29uaW5nOioqIFRoZSBwYXRjaCBpbnRyb2R1Y2VzIG5ldyBjaGVja3MgaW4gS1ZNJ3MgbWVtb3J5IHJlZ2lvbiBwcmVwYXJhdGlvbiBhbmQgSVJRIGNoaXAgY3JlYXRpb24gdG8gcHJldmVudCBvdmVybGFwcGluZyB0aGUgQVBJQyBiYXNlIGFkZHJlc3Mgd2l0aCB1c2VyIG1lbW9yeSBzbG90cy4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIGluIHRoZSBLVk0gQVBJIHRoYXQgc2hvdWxkIGJlIGZ1enplZCB0byBlbnN1cmUgaXQgY29ycmVjdGx5IHByZXZlbnRzIHRoZSBvdmVybGFwIGFuZCBkb2Vzbid0IGludHJvZHVjZSByZWdyZXNzaW9ucyBvciBieXBhc3Nlcy5cblxuXG4iLCJJbnB1dFRva2VucyI6NTQ4OCwiT3V0cHV0VG9rZW5zIjoxMjIsIk91dHB1dFRob3VnaHRzVG9rZW5zIjozMTUsIlRvb2xDYWxscyI6WyJyZWFkLWZpbGUiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0wNlQxMDo1Mzo0Ni4zNjA2MTYwMjRaIiwiU2VxIjoxMiwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoic2V0LXJlc3VsdHMiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo4MTI1ODU1NSwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogW1xuICAgIFwiS1ZNXCJcbiAgXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW1xuICAgIFwia3ZtX2FyY2hfdm1faW9jdGxcIixcbiAgICBcImt2bV9hcmNoX3ByZXBhcmVfbWVtb3J5X3JlZ2lvblwiXG4gIF0sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIGludHJvZHVjZXMgbmV3IGNoZWNrcyBpbiBLVk0ncyBtZW1vcnkgcmVnaW9uIHByZXBhcmF0aW9uIGFuZCBJUlEgY2hpcCBjcmVhdGlvbiB0byBwcmV2ZW50IG92ZXJsYXBwaW5nIHRoZSBBUElDIGJhc2UgYWRkcmVzcyB3aXRoIHVzZXIgbWVtb3J5IHNsb3RzLiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgaW4gdGhlIEtWTSBBUEkgdGhhdCBzaG91bGQgYmUgZnV6emVkIHRvIGVuc3VyZSBpdCBjb3JyZWN0bHkgcHJldmVudHMgdGhlIG92ZXJsYXAgYW5kIGRvZXNuJ3QgaW50cm9kdWNlIHJlZ3Jlc3Npb25zIG9yIGJ5cGFzc2VzLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiB0cnVlXG59IiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IFtcbiAgICBcIktWTVwiXG4gIF0sXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtcbiAgICBcImt2bV9hcmNoX3ZtX2lvY3RsXCIsXG4gICAgXCJrdm1fYXJjaF9wcmVwYXJlX21lbW9yeV9yZWdpb25cIlxuICBdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBpbnRyb2R1Y2VzIG5ldyBjaGVja3MgaW4gS1ZNJ3MgbWVtb3J5IHJlZ2lvbiBwcmVwYXJhdGlvbiBhbmQgSVJRIGNoaXAgY3JlYXRpb24gdG8gcHJldmVudCBvdmVybGFwcGluZyB0aGUgQVBJQyBiYXNlIGFkZHJlc3Mgd2l0aCB1c2VyIG1lbW9yeSBzbG90cy4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIGluIHRoZSBLVk0gQVBJIHRoYXQgc2hvdWxkIGJlIGZ1enplZCB0byBlbnN1cmUgaXQgY29ycmVjdGx5IHByZXZlbnRzIHRoZSBvdmVybGFwIGFuZCBkb2Vzbid0IGludHJvZHVjZSByZWdyZXNzaW9ucyBvciBieXBhc3Nlcy5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogdHJ1ZVxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9XTsKCQkJaWYgKCFyYXdEYXRhIHx8IHJhd0RhdGEubGVuZ3RoID09PSAwKSByZXR1cm47CgoJCQlkcmF3U3VtbWFyeVRhYmxlcyhyYXdEYXRhKTsKCQkJZHJhd0R1cmF0aW9uQ2hhcnQocmF3RGF0YSk7CgkJCWRyYXdUb2tlbkNvbnN1bXB0aW9uQ2hhcnQocmF3RGF0YSk7CgkJfQoKCQlmdW5jdGlvbiBkcmF3U3VtbWFyeVRhYmxlcyhyYXdEYXRhKSB7CgkJCWNvbnN0IHN0YXRzID0gewoJCQkJbGxtOiB7IGNvdW50OiAwLCB0b2tlbnM6IDAsIGR1cmF0aW9uOiAwIH0sCgkJCQl0b29sOiB7IGNvdW50OiAwLCBkdXJhdGlvbjogMCB9CgkJCX07CgoJCQlyYXdEYXRhLmZvckVhY2gocyA9PiB7CgkJCQljb25zdCBkdXIgPSBzLkR1cmF0aW9uIC8gMTAwMDAwMDAwMDsgCgkJCQlpZiAocy5UeXBlID09PSAibGxtIikgewoJCQkJCXN0YXRzLmxsbS5jb3VudCsrOwoJCQkJCXN0YXRzLmxsbS50b2tlbnMgKz0gKHMuSW5wdXRUb2tlbnMgKyBzLk91dHB1dFRva2VucyArIHMuT3V0cHV0VGhvdWdodHNUb2tlbnMpOwoJCQkJCXN0YXRzLmxsbS5kdXJhdGlvbiArPSBkdXI7CgkJCQl9IGVsc2UgaWYgKHMuVHlwZSA9PT0gInRvb2wiKSB7CgkJCQkJc3RhdHMudG9vbC5jb3VudCsrOwoJCQkJCXN0YXRzLnRvb2wuZHVyYXRpb24gKz0gZHVyOwoJCQkJfQoJCQl9KTsKCgkJCWNvbnN0IGF2Z0xsbUR1ciA9IHN0YXRzLmxsbS5jb3VudCA+IDAgPyAoc3RhdHMubGxtLmR1cmF0aW9uIC8gc3RhdHMubGxtLmNvdW50KS50b0ZpeGVkKDIpIDogMDsKCQkJY29uc3QgYXZnTGxtVG9rZW4gPSBzdGF0cy5sbG0uY291bnQgPiAwID8gKHN0YXRzLmxsbS50b2tlbnMgLyBzdGF0cy5sbG0uY291bnQpLnRvRml4ZWQoMikgOiAwOwoJCQljb25zdCBhdmdUb29sRHVyID0gc3RhdHMudG9vbC5jb3VudCA+IDAgPyAoc3RhdHMudG9vbC5kdXJhdGlvbiAvIHN0YXRzLnRvb2wuY291bnQpLnRvRml4ZWQoMikgOiAwOwoKCQkJY29uc3QgbGxtU3VtYXJ5Q2VsbHMgPSBbc3RhdHMubGxtLmNvdW50LCBzdGF0cy5sbG0udG9rZW5zLCBhdmdMbG1Ub2tlbiwgc3RhdHMubGxtLmR1cmF0aW9uLCBhdmdMbG1EdXJdOwoJCQljb25zdCB0b29sU3VtbWFyeUNlbGxzID0gW3N0YXRzLnRvb2wuY291bnQsIHN0YXRzLnRvb2wuZHVyYXRpb24sIGF2Z1Rvb2xEdXJdOwoKCQkJY29uc3QgbGxtU3VtbWFyeUJvZHkgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnbGxtX3N1bW1hcnlfc3RhdHNfYm9keScpOwoJCQlsbG1TdW1tYXJ5Qm9keS5pbm5lckhUTUwgPSAiIjsKCQkJY29uc3QgbGxtVHIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0cicpOwoJCQlsbG1TdW1hcnlDZWxscy5mb3JFYWNoKGNlbGwgPT4gewoJCQkJY29uc3QgdGQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ZCcpOwoJCQkJdGQudGV4dENvbnRlbnQgPSBjZWxsOwoJCQkJbGxtVHIuYXBwZW5kQ2hpbGQodGQpOwoJCQl9KTsKCQkJbGxtU3VtbWFyeUJvZHkuYXBwZW5kQ2hpbGQobGxtVHIpOwoKCQkJY29uc3QgdG9vbFN1bW1hcnlCb2R5ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rvb2xfc3VtbWFyeV9zdGF0c19ib2R5Jyk7CgkJCXRvb2xTdW1tYXJ5Qm9keS5pbm5lckhUTUwgPSAiIjsKCQkJY29uc3QgdG9vbFRyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndHInKTsKCQkJdG9vbFN1bW1hcnlDZWxscy5mb3JFYWNoKGNlbGwgPT4gewoJCQkJY29uc3QgdGQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ZCcpOwoJCQkJdGQudGV4dENvbnRlbnQgPSBjZWxsOwoJCQkJdG9vbFRyLmFwcGVuZENoaWxkKHRkKTsKCQkJfSk7CgkJCXRvb2xTdW1tYXJ5Qm9keS5hcHBlbmRDaGlsZCh0b29sVHIpOwoJCX0KCgkJZnVuY3Rpb24gZHJhd0R1cmF0aW9uQ2hhcnQocmF3RGF0YSkgewoJCQljb25zdCBmaWx0ZXJlZFN0ZXBzID0gcmF3RGF0YS5maWx0ZXIoZCA9PiBbImxsbSIsICJ0b29sIl0uaW5jbHVkZXMoZC5UeXBlKSk7CgkJCWNvbnN0IGRhdGEgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uRGF0YVRhYmxlKCk7CgkJCWRhdGEuYWRkQ29sdW1uKCdzdHJpbmcnLCAnU3RlcCcpOwoJCQlkYXRhLmFkZENvbHVtbignbnVtYmVyJywgJ0R1cmF0aW9uJyk7CgkJCWRhdGEuYWRkQ29sdW1uKHt0eXBlOiAnc3RyaW5nJywgcm9sZTogJ3Rvb2x0aXAnfSk7IAoKCQkJZmlsdGVyZWRTdGVwcy5mb3JFYWNoKHMgPT4gewoJCQkJCgkJCQljb25zdCBkdXIgPSBzLkR1cmF0aW9uIC8gMTAwMDAwMDAwMDsKCQkJCWxldCB0b29sdGlwID0gcy5OYW1lOwoJCQkJaWYgKHMuVHlwZSA9PT0gImxsbSIgJiYgcy5Ub29sQ2FsbHMgJiYgcy5Ub29sQ2FsbHMubGVuZ3RoID4gMCkgewoJCQkJCXRvb2x0aXAgKz0gYFxuVG9vbHM6ICR7cy5Ub29sQ2FsbHMuam9pbignLCAnKX1gOwoJCQkJfQoJCQkJZGF0YS5hZGRSb3coW2Ake3MuU2VxfWAsIGR1ciwgdG9vbHRpcF0pOwoJCQl9KTsKCgkJCWNvbnN0IG9wdGlvbnMgPSB7CgkJCQl0aXRsZTogJ1RpbWUgQ29uc3VtcHRpb24gb2YgTExNL1Rvb2wgQ2FsbHMnLAoJCQkJaEF4aXM6IHsKCQkJCQl0aXRsZTogJ0xMTS9Ub29sIFN0ZXBzJywKCQkJCX0sCgkJCQl2QXhpczogeyB0aXRsZTogJ1NlY29uZHMnIH0sCgkJCQlsZWdlbmQ6IHsgcG9zaXRpb246ICdub25lJyB9LAoJCQkJYmFyOiB7IGdyb3VwV2lkdGg6ICc3NSUnIH0sCgkJCQljaGFydEFyZWE6IHsgd2lkdGg6ICc4NSUnLCBoZWlnaHQ6ICc3MCUnIH0sCgkJCQloZWlnaHQ6IDQwMAoJCQl9OwoKCQkJY29uc3QgY2hhcnQgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uQ29sdW1uQ2hhcnQoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2R1cmF0aW9uX2NoYXJ0X2RpdicpKTsKCQkJY2hhcnQuZHJhdyhkYXRhLCBvcHRpb25zKTsKCQl9CgoJCWZ1bmN0aW9uIGRyYXdUb2tlbkNvbnN1bXB0aW9uQ2hhcnQocmF3RGF0YSkgewoJCQljb25zdCBsbG1TdGVwcyA9IHJhd0RhdGEuZmlsdGVyKGQgPT4gZC5UeXBlID09PSAibGxtIik7CgkJCWlmIChsbG1TdGVwcy5sZW5ndGggPT09IDApIHJldHVybjsKCgkJCWNvbnN0IGRhdGEgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uRGF0YVRhYmxlKCk7CgkJCWRhdGEuYWRkQ29sdW1uKCdzdHJpbmcnLCAnU3RlcCcpOwkJCQoJCQlkYXRhLmFkZENvbHVtbignbnVtYmVyJywgJ1Rva2VucycpOwkJCQoJCQlkYXRhLmFkZENvbHVtbih7dHlwZTogJ3N0cmluZycsIHJvbGU6ICdzdHlsZSd9KTsJCgkJCWRhdGEuYWRkQ29sdW1uKHt0eXBlOiAnc3RyaW5nJywgcm9sZTogJ3Rvb2x0aXAnfSk7CQoKCQkJY29uc3QgYWdlbnRDb2xvcnMgPSB7fTsKCQkJY29uc3QgcGFsZXR0ZSA9IFsnIzQyODVGNCcsICcjREI0NDM3JywgJyNGNEI0MDAnLCAnIzBGOUQ1OCcsICcjQUI0N0JDJywgJyMwMEFDQzEnXTsKCQkJbGV0IGNvbG9ySWR4ID0gMDsKCQkJY29uc3QgYWdlbnRMTE1Db3VudHMgPSB7fTsKCQkJbGxtU3RlcHMuZm9yRWFjaChzID0+IHsKCQkJCWlmICghYWdlbnRDb2xvcnNbcy5OYW1lXSkgewoJCQkJCWFnZW50Q29sb3JzW3MuTmFtZV0gPSBwYWxldHRlW2NvbG9ySWR4ICUgcGFsZXR0ZS5sZW5ndGhdOwoJCQkJCWNvbG9ySWR4Kys7CgkJCQl9CgoJCQkJYWdlbnRMTE1Db3VudHNbcy5OYW1lXSA9IChhZ2VudExMTUNvdW50c1tzLk5hbWVdIHx8IDApICsgMTsKCQkJCWNvbnN0IGxhYmVsID0gYCR7cy5OYW1lfS0ke2FnZW50TExNQ291bnRzW3MuTmFtZV19YDsKCQkJCWNvbnN0IHRvdGFsVG9rZW5zID0gcy5JbnB1dFRva2VucyArIHMuT3V0cHV0VG9rZW5zICsgcy5PdXRwdXRUaG91Z2h0c1Rva2VuczsKCQkJCWNvbnN0IHN0eWxlID0gYGNvbG9yOiAke2FnZW50Q29sb3JzW3MuTmFtZV19YDsKCQkJCWxldCB0b29sdGlwID0gYFRvdGFsIFRva2VuczogJHt0b3RhbFRva2Vuc31cbihJbjogJHtzLklucHV0VG9rZW5zfSwgT3V0OiAke3MuT3V0cHV0VG9rZW5zfSwgVGhvdWdodHM6ICR7cy5PdXRwdXRUaG91Z2h0c1Rva2Vuc30pYDsKCQkJCWlmIChzLlRvb2xDYWxscyAmJiBzLlRvb2xDYWxscy5sZW5ndGggPiAwKSB7CgkJCQkJdG9vbHRpcCArPSBgXG5Ub29sczogJHtzLlRvb2xDYWxscy5qb2luKCcsICcpfWA7CgkJCQl9CgoJCQkJZGF0YS5hZGRSb3coW2xhYmVsLCB0b3RhbFRva2Vucywgc3R5bGUsIHRvb2x0aXBdKTsKCQkJfSk7CgoJCQljb25zdCBvcHRpb25zID0gewoJCQkJdGl0bGU6ICdUb2tlbiBDb25zdW1wdGlvbiBieSBMTE0gQ2FsbHMnLAoJCQkJaEF4aXM6IHsKCQkJCQl0aXRsZTogJ0xMTSBDYWxsIFNlcXVlbmNlJywKCQkJCX0sCgkJCQl2QXhpczogeyB0aXRsZTogJ0NvbnN1bWVkIFRva2VucycgfSwKCQkJCWxlZ2VuZDogeyBwb3NpdGlvbjogJ25vbmUnIH0sCgkJCQliYXI6IHsgZ3JvdXBXaWR0aDogJzc1JScgfSwKCQkJCWNoYXJ0QXJlYTogeyB3aWR0aDogJzg1JScsIGhlaWdodDogJzcwJScgfSwKCQkJCWhlaWdodDogNDAwCgkJCX07CgoJCQljb25zdCBjaGFydCA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5Db2x1bW5DaGFydChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndG9rZW5fY2hhcnRfZGl2JykpOwoJCQljaGFydC5kcmF3KGRhdGEsIG9wdGlvbnMpOwoJCX0KCQlsZXQgYWxsRXhwYW5kZWQgPSBmYWxzZTsKCQlmdW5jdGlvbiB0b2dnbGVBbGxEZXRhaWxzKCkgewoJCQlhbGxFeHBhbmRlZCA9ICFhbGxFeHBhbmRlZDsKCQkJZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgnZGV0YWlscycpLmZvckVhY2goZCA9PiB7CgkJCQlpZiAoYWxsRXhwYW5kZWQpIGQuc2V0QXR0cmlidXRlKCdvcGVuJywgJycpOwoJCQkJZWxzZSBkLnJlbW92ZUF0dHJpYnV0ZSgnb3BlbicpOwoJCQl9KTsKCQl9Cgk8L3NjcmlwdD4KCgo8L2JvZHk+CjwvaHRtbD4K" },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-workflowpvqxf[1] Phase: Succeeded StartedAt: 2026-07-06 10:54:28 +0000 UTC FinishedAt: 2026-07-06 10:54:28 +0000 UTC Input: nil Output: nil --------- Name: series-workflowpvqxf[1].abort-on-skip-outcome Phase: Skipped StartedAt: 2026-07-06 10:54:28 +0000 UTC FinishedAt: 2026-07-06 10:54:28 +0000 UTC Input: nil Output: nil --------- Name: series-workflowpvqxf[2] Phase: Succeeded StartedAt: 2026-07-06 10:54:28 +0000 UTC FinishedAt: 2026-07-06 15:06:53 +0000 UTC Input: nil Output: nil --------- Name: series-workflowpvqxf[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"8cd9520d35a6c38db6567e97dd93b1f11f185dc6","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"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":["kvm_arch_vm_ioctl","kvm_arch_prepare_memory_region"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"8cd9520d35a6c38db6567e97dd93b1f11f185dc6","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"b02ae7eb-bae2-492f-88f2-fa1b511c93cf","tree_name":"kvm-next","tree_url":"https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/"},retest:null,track:KASAN) Phase: Succeeded StartedAt: 2026-07-06 10:54:28 +0000 UTC FinishedAt: 2026-07-06 15:06:53 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:element,Default:nil,Value:*{"base":{"arch":"amd64","commit_hash":"8cd9520d35a6c38db6567e97dd93b1f11f185dc6","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"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":["kvm_arch_vm_ioctl","kvm_arch_prepare_memory_region"],"skip_cover_check":false},"patched":{"arch":"amd64","commit_hash":"8cd9520d35a6c38db6567e97dd93b1f11f185dc6","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"b02ae7eb-bae2-492f-88f2-fa1b511c93cf","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-workflowpvqxf[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"8cd9520d35a6c38db6567e97dd93b1f11f185dc6","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"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":["kvm_arch_vm_ioctl","kvm_arch_prepare_memory_region"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"8cd9520d35a6c38db6567e97dd93b1f11f185dc6","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"b02ae7eb-bae2-492f-88f2-fa1b511c93cf","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-06 10:54:28 +0000 UTC FinishedAt: 2026-07-06 10:54:38 +0000 UTC Input: nil Output: nil --------- Name: series-workflowpvqxf[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"8cd9520d35a6c38db6567e97dd93b1f11f185dc6","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"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":["kvm_arch_vm_ioctl","kvm_arch_prepare_memory_region"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"8cd9520d35a6c38db6567e97dd93b1f11f185dc6","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"b02ae7eb-bae2-492f-88f2-fa1b511c93cf","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-06 10:54:28 +0000 UTC FinishedAt: 2026-07-06 10:54:35 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:data,Default:nil,Value:*{"arch":"amd64","commit_hash":"8cd9520d35a6c38db6567e97dd93b1f11f185dc6","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"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-workflowpvqxf/series-workflowpvqxf-convert-artifact-1676933885/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowpvqxf[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"8cd9520d35a6c38db6567e97dd93b1f11f185dc6","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"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":["kvm_arch_vm_ioctl","kvm_arch_prepare_memory_region"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"8cd9520d35a6c38db6567e97dd93b1f11f185dc6","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"b02ae7eb-bae2-492f-88f2-fa1b511c93cf","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-06 10:54:38 +0000 UTC FinishedAt: 2026-07-06 11:29:06 +0000 UTC Input: nil Output: nil --------- Name: series-workflowpvqxf[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"8cd9520d35a6c38db6567e97dd93b1f11f185dc6","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"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":["kvm_arch_vm_ioctl","kvm_arch_prepare_memory_region"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"8cd9520d35a6c38db6567e97dd93b1f11f185dc6","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"b02ae7eb-bae2-492f-88f2-fa1b511c93cf","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-06 10:54:38 +0000 UTC FinishedAt: 2026-07-06 11:29:06 +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:*3855f319-51a3-4b7b-8ccd-ebc2c8a3d655,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-workflowpvqxf/series-workflowpvqxf-convert-artifact-1676933885/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": "686beae2-6202-45e8-bd1d-4e58899b7cec", "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-workflowpvqxf/series-workflowpvqxf-build-action-2398676019/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowpvqxf[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"8cd9520d35a6c38db6567e97dd93b1f11f185dc6","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"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":["kvm_arch_vm_ioctl","kvm_arch_prepare_memory_region"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"8cd9520d35a6c38db6567e97dd93b1f11f185dc6","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"b02ae7eb-bae2-492f-88f2-fa1b511c93cf","tree_name":"kvm-next","tree_url":"https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/"},retest:null,track:KASAN)[1].base-build(0) Phase: Succeeded StartedAt: 2026-07-06 10:54:38 +0000 UTC FinishedAt: 2026-07-06 11:28:56 +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:*3855f319-51a3-4b7b-8ccd-ebc2c8a3d655,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-workflowpvqxf/series-workflowpvqxf-convert-artifact-1676933885/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": "686beae2-6202-45e8-bd1d-4e58899b7cec", "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-workflowpvqxf/series-workflowpvqxf-build-action-2398676019/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowpvqxf[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"8cd9520d35a6c38db6567e97dd93b1f11f185dc6","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"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":["kvm_arch_vm_ioctl","kvm_arch_prepare_memory_region"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"8cd9520d35a6c38db6567e97dd93b1f11f185dc6","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"b02ae7eb-bae2-492f-88f2-fa1b511c93cf","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-06 11:29:06 +0000 UTC FinishedAt: 2026-07-06 11:29:06 +0000 UTC Input: nil Output: nil --------- Name: series-workflowpvqxf[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"8cd9520d35a6c38db6567e97dd93b1f11f185dc6","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"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":["kvm_arch_vm_ioctl","kvm_arch_prepare_memory_region"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"8cd9520d35a6c38db6567e97dd93b1f11f185dc6","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"b02ae7eb-bae2-492f-88f2-fa1b511c93cf","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-06 11:29:06 +0000 UTC FinishedAt: 2026-07-06 11:29:06 +0000 UTC Input: nil Output: nil --------- Name: series-workflowpvqxf[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"8cd9520d35a6c38db6567e97dd93b1f11f185dc6","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"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":["kvm_arch_vm_ioctl","kvm_arch_prepare_memory_region"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"8cd9520d35a6c38db6567e97dd93b1f11f185dc6","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"b02ae7eb-bae2-492f-88f2-fa1b511c93cf","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-06 11:29:06 +0000 UTC FinishedAt: 2026-07-06 11:29:26 +0000 UTC Input: nil Output: nil --------- Name: series-workflowpvqxf[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"8cd9520d35a6c38db6567e97dd93b1f11f185dc6","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"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":["kvm_arch_vm_ioctl","kvm_arch_prepare_memory_region"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"8cd9520d35a6c38db6567e97dd93b1f11f185dc6","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"b02ae7eb-bae2-492f-88f2-fa1b511c93cf","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-06 11:29:06 +0000 UTC FinishedAt: 2026-07-06 11:29:14 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:data,Default:nil,Value:*{"arch":"amd64","commit_hash":"8cd9520d35a6c38db6567e97dd93b1f11f185dc6","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"b02ae7eb-bae2-492f-88f2-fa1b511c93cf","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-workflowpvqxf/series-workflowpvqxf-convert-artifact-3179347800/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowpvqxf[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"8cd9520d35a6c38db6567e97dd93b1f11f185dc6","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"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":["kvm_arch_vm_ioctl","kvm_arch_prepare_memory_region"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"8cd9520d35a6c38db6567e97dd93b1f11f185dc6","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"b02ae7eb-bae2-492f-88f2-fa1b511c93cf","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-06 11:29:26 +0000 UTC FinishedAt: 2026-07-06 11:31:25 +0000 UTC Input: nil Output: nil --------- Name: series-workflowpvqxf[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"8cd9520d35a6c38db6567e97dd93b1f11f185dc6","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"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":["kvm_arch_vm_ioctl","kvm_arch_prepare_memory_region"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"8cd9520d35a6c38db6567e97dd93b1f11f185dc6","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"b02ae7eb-bae2-492f-88f2-fa1b511c93cf","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-06 11:29:26 +0000 UTC FinishedAt: 2026-07-06 11:31:16 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:base-build-id,Default:nil,Value:*686beae2-6202-45e8-bd1d-4e58899b7cec,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-workflowpvqxf/series-workflowpvqxf-build-action-2398676019/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-workflowpvqxf[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"8cd9520d35a6c38db6567e97dd93b1f11f185dc6","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"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":["kvm_arch_vm_ioctl","kvm_arch_prepare_memory_region"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"8cd9520d35a6c38db6567e97dd93b1f11f185dc6","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"b02ae7eb-bae2-492f-88f2-fa1b511c93cf","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-06 11:31:25 +0000 UTC FinishedAt: 2026-07-06 11:31:25 +0000 UTC Input: nil Output: nil --------- Name: series-workflowpvqxf[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"8cd9520d35a6c38db6567e97dd93b1f11f185dc6","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"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":["kvm_arch_vm_ioctl","kvm_arch_prepare_memory_region"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"8cd9520d35a6c38db6567e97dd93b1f11f185dc6","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"b02ae7eb-bae2-492f-88f2-fa1b511c93cf","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-06 11:31:25 +0000 UTC FinishedAt: 2026-07-06 11:31:25 +0000 UTC Input: nil Output: nil --------- Name: series-workflowpvqxf[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"8cd9520d35a6c38db6567e97dd93b1f11f185dc6","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"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":["kvm_arch_vm_ioctl","kvm_arch_prepare_memory_region"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"8cd9520d35a6c38db6567e97dd93b1f11f185dc6","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"b02ae7eb-bae2-492f-88f2-fa1b511c93cf","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-06 11:31:25 +0000 UTC FinishedAt: 2026-07-06 12:00:43 +0000 UTC Input: nil Output: nil --------- Name: series-workflowpvqxf[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"8cd9520d35a6c38db6567e97dd93b1f11f185dc6","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"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":["kvm_arch_vm_ioctl","kvm_arch_prepare_memory_region"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"8cd9520d35a6c38db6567e97dd93b1f11f185dc6","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"b02ae7eb-bae2-492f-88f2-fa1b511c93cf","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-06 11:31:25 +0000 UTC FinishedAt: 2026-07-06 12:00:43 +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:*3855f319-51a3-4b7b-8ccd-ebc2c8a3d655,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-workflowpvqxf/series-workflowpvqxf-convert-artifact-3179347800/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": "2e25da54-5ae8-4f08-889d-30a90ffbe688", "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-workflowpvqxf/series-workflowpvqxf-build-action-640460996/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowpvqxf[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"8cd9520d35a6c38db6567e97dd93b1f11f185dc6","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"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":["kvm_arch_vm_ioctl","kvm_arch_prepare_memory_region"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"8cd9520d35a6c38db6567e97dd93b1f11f185dc6","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"b02ae7eb-bae2-492f-88f2-fa1b511c93cf","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-06 11:31:25 +0000 UTC FinishedAt: 2026-07-06 12:00:33 +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:*3855f319-51a3-4b7b-8ccd-ebc2c8a3d655,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-workflowpvqxf/series-workflowpvqxf-convert-artifact-3179347800/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": "2e25da54-5ae8-4f08-889d-30a90ffbe688", "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-workflowpvqxf/series-workflowpvqxf-build-action-640460996/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowpvqxf[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"8cd9520d35a6c38db6567e97dd93b1f11f185dc6","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"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":["kvm_arch_vm_ioctl","kvm_arch_prepare_memory_region"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"8cd9520d35a6c38db6567e97dd93b1f11f185dc6","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"b02ae7eb-bae2-492f-88f2-fa1b511c93cf","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-06 12:00:43 +0000 UTC FinishedAt: 2026-07-06 12:00:43 +0000 UTC Input: nil Output: nil --------- Name: series-workflowpvqxf[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"8cd9520d35a6c38db6567e97dd93b1f11f185dc6","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"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":["kvm_arch_vm_ioctl","kvm_arch_prepare_memory_region"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"8cd9520d35a6c38db6567e97dd93b1f11f185dc6","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"b02ae7eb-bae2-492f-88f2-fa1b511c93cf","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-06 12:00:43 +0000 UTC FinishedAt: 2026-07-06 12:00:43 +0000 UTC Input: nil Output: nil --------- Name: series-workflowpvqxf[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"8cd9520d35a6c38db6567e97dd93b1f11f185dc6","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"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":["kvm_arch_vm_ioctl","kvm_arch_prepare_memory_region"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"8cd9520d35a6c38db6567e97dd93b1f11f185dc6","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"b02ae7eb-bae2-492f-88f2-fa1b511c93cf","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-06 12:00:43 +0000 UTC FinishedAt: 2026-07-06 12:02:44 +0000 UTC Input: nil Output: nil --------- Name: series-workflowpvqxf[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"8cd9520d35a6c38db6567e97dd93b1f11f185dc6","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"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":["kvm_arch_vm_ioctl","kvm_arch_prepare_memory_region"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"8cd9520d35a6c38db6567e97dd93b1f11f185dc6","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"b02ae7eb-bae2-492f-88f2-fa1b511c93cf","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-06 12:00:43 +0000 UTC FinishedAt: 2026-07-06 12:02:36 +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:*2e25da54-5ae8-4f08-889d-30a90ffbe688,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-workflowpvqxf/series-workflowpvqxf-build-action-640460996/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-workflowpvqxf[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"8cd9520d35a6c38db6567e97dd93b1f11f185dc6","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"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":["kvm_arch_vm_ioctl","kvm_arch_prepare_memory_region"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"8cd9520d35a6c38db6567e97dd93b1f11f185dc6","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"b02ae7eb-bae2-492f-88f2-fa1b511c93cf","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-06 12:02:44 +0000 UTC FinishedAt: 2026-07-06 15:06:53 +0000 UTC Input: nil Output: nil --------- Name: series-workflowpvqxf[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"8cd9520d35a6c38db6567e97dd93b1f11f185dc6","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"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":["kvm_arch_vm_ioctl","kvm_arch_prepare_memory_region"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"8cd9520d35a6c38db6567e97dd93b1f11f185dc6","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"b02ae7eb-bae2-492f-88f2-fa1b511c93cf","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-06 12:02:44 +0000 UTC FinishedAt: 2026-07-06 15:06:53 +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":["kvm_arch_vm_ioctl","kvm_arch_prepare_memory_region"],"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:*686beae2-6202-45e8-bd1d-4e58899b7cec,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:patched-build-id,Default:nil,Value:*2e25da54-5ae8-4f08-889d-30a90ffbe688,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-workflowpvqxf/series-workflowpvqxf-build-action-2398676019/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-workflowpvqxf/series-workflowpvqxf-build-action-640460996/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},} Output: nil --------- Name: series-workflowpvqxf[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"8cd9520d35a6c38db6567e97dd93b1f11f185dc6","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"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":["kvm_arch_vm_ioctl","kvm_arch_prepare_memory_region"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"8cd9520d35a6c38db6567e97dd93b1f11f185dc6","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"b02ae7eb-bae2-492f-88f2-fa1b511c93cf","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-06 12:02:44 +0000 UTC FinishedAt: 2026-07-06 12:03:12 +0000 UTC Input: nil Output: nil --------- Name: series-workflowpvqxf[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"8cd9520d35a6c38db6567e97dd93b1f11f185dc6","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"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":["kvm_arch_vm_ioctl","kvm_arch_prepare_memory_region"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"8cd9520d35a6c38db6567e97dd93b1f11f185dc6","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"b02ae7eb-bae2-492f-88f2-fa1b511c93cf","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-06 12:02:44 +0000 UTC FinishedAt: 2026-07-06 12:03:05 +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":["kvm_arch_vm_ioctl","kvm_arch_prepare_memory_region"],"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-workflowpvqxf/series-workflowpvqxf-convert-artifact-3836145457/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowpvqxf[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"8cd9520d35a6c38db6567e97dd93b1f11f185dc6","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"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":["kvm_arch_vm_ioctl","kvm_arch_prepare_memory_region"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"8cd9520d35a6c38db6567e97dd93b1f11f185dc6","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"b02ae7eb-bae2-492f-88f2-fa1b511c93cf","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-06 12:02:44 +0000 UTC FinishedAt: 2026-07-06 12:02:44 +0000 UTC Input: nil Output: nil --------- Name: series-workflowpvqxf[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"8cd9520d35a6c38db6567e97dd93b1f11f185dc6","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"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":["kvm_arch_vm_ioctl","kvm_arch_prepare_memory_region"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"8cd9520d35a6c38db6567e97dd93b1f11f185dc6","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"b02ae7eb-bae2-492f-88f2-fa1b511c93cf","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-06 12:02:44 +0000 UTC FinishedAt: 2026-07-06 12:02:44 +0000 UTC Input: nil Output: nil --------- Name: series-workflowpvqxf[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"8cd9520d35a6c38db6567e97dd93b1f11f185dc6","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"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":["kvm_arch_vm_ioctl","kvm_arch_prepare_memory_region"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"8cd9520d35a6c38db6567e97dd93b1f11f185dc6","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"b02ae7eb-bae2-492f-88f2-fa1b511c93cf","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-06 12:02:44 +0000 UTC FinishedAt: 2026-07-06 12:02:44 +0000 UTC Input: nil Output: nil --------- Name: series-workflowpvqxf[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"8cd9520d35a6c38db6567e97dd93b1f11f185dc6","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"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":["kvm_arch_vm_ioctl","kvm_arch_prepare_memory_region"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"8cd9520d35a6c38db6567e97dd93b1f11f185dc6","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"b02ae7eb-bae2-492f-88f2-fa1b511c93cf","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-06 12:03:12 +0000 UTC FinishedAt: 2026-07-06 15:06:53 +0000 UTC Input: nil Output: nil --------- Name: series-workflowpvqxf[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"8cd9520d35a6c38db6567e97dd93b1f11f185dc6","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"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":["kvm_arch_vm_ioctl","kvm_arch_prepare_memory_region"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"8cd9520d35a6c38db6567e97dd93b1f11f185dc6","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"b02ae7eb-bae2-492f-88f2-fa1b511c93cf","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-06 12:03:12 +0000 UTC FinishedAt: 2026-07-06 15:06:41 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:base-build-id,Default:nil,Value:*686beae2-6202-45e8-bd1d-4e58899b7cec,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:patched-build-id,Default:nil,Value:*2e25da54-5ae8-4f08-889d-30a90ffbe688,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-workflowpvqxf/series-workflowpvqxf-build-action-2398676019/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-workflowpvqxf/series-workflowpvqxf-build-action-640460996/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-workflowpvqxf/series-workflowpvqxf-convert-artifact-3836145457/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,}