Name: series-workflowvgp4k Phase: Succeeded StartedAt: 2026-07-20 08:21:31 +0000 UTC FinishedAt: 2026-07-20 13:42:50 +0000 UTC Input: nil Output: nil --------- Name: series-workflowvgp4k[0] Phase: Succeeded StartedAt: 2026-07-20 08:21:31 +0000 UTC FinishedAt: 2026-07-20 08:49:37 +0000 UTC Input: nil Output: nil --------- Name: series-workflowvgp4k[0].run-triage Phase: Succeeded StartedAt: 2026-07-20 08:21:31 +0000 UTC FinishedAt: 2026-07-20 08:49:37 +0000 UTC Input: nil Output: &Outputs{Parameters:[]Parameter{Parameter{Name:result,Default:nil,Value:*{ "skip_reason": "", "targets": [ { "base": { "arch": "amd64", "tree_name": "net", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git", "commit_hash": "e13caf1c26587434f0b768193100440939c0fb91", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "MCTP" ], "series_id": "" }, "patched": { "arch": "amd64", "tree_name": "net", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git", "commit_hash": "e13caf1c26587434f0b768193100440939c0fb91", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "MCTP" ], "series_id": "5fb48eb6-6cdd-4a24-a50f-cc60c1d4c970" }, "track": "KASAN", "fuzz": { "focus": [ "net" ], "focus_symbols": [ "mctp_device_init" ], "corpus_urls": [ "https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db" ], "skip_cover_check": false, "bug_title_re": "" }, "retest": null } ], "trajectory": "CjwhZG9jdHlwZSBodG1sPgo8aHRtbD4KPGhlYWQ+Cgk8dGl0bGU+QUkgVHJhamVjdG9yeTwvdGl0bGU+Cgk8c3R5bGU+CgkJdGFibGUgewoJCQlib3JkZXI6IDFweCBzb2xpZCAjY2NjOwoJCQltYXJnaW46IDIwcHggNXB4OwoJCQlib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlOwoJCQl3aGl0ZS1zcGFjZTogbm93cmFwOwoJCQl0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsKCQkJb3ZlcmZsb3c6IGhpZGRlbjsKCQl9CgoJCXRhYmxlIGNhcHRpb24gewoJCQlmb250LXdlaWdodDogYm9sZDsKCQl9CgoJCXRhYmxlIHRkLCB0YWJsZSB0aCB7CgkJCXZlcnRpY2FsLWFsaWduOiB0b3A7CgkJCXBhZGRpbmc6IDJweCA4cHg7CgkJCXRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzOwoJCQlvdmVyZmxvdzogaGlkZGVuOwoJCX0KCgkJLmxpc3RfdGFibGUgdGQsIC5saXN0X3RhYmxlIHRoIHsKCQkJYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCAjY2NjOwoJCX0KCgkJLmxpc3RfdGFibGUgdGggewoJCQliYWNrZ3JvdW5kOiAjRjRGNEY0OwoJCX0KCgkJLmxpc3RfdGFibGUgdHI6bnRoLWNoaWxkKDJuKSB7CgkJCWJhY2tncm91bmQ6ICNGNEY0RjQ7CgkJfQoKCQkubGlzdF90YWJsZSB0cjpob3ZlciB7CgkJCWJhY2tncm91bmQ6ICNmZmZmOTk7CgkJfQoKCQkjYWlfZGV0YWlsc19kaXYgcHJlIHsKCQkJbWFyZ2luOiAxcHg7CgkJCW1heC13aWR0aDogMTIwY2g7CgkJCXdoaXRlLXNwYWNlOiBwcmUtd3JhcDsKCQkJb3ZlcmZsb3ctd3JhcDogYnJlYWstd29yZDsKCQl9Cgk8L3N0eWxlPgo8L2hlYWQ+Cjxib2R5PgoJPGgxPkFJIFRyYWplY3Rvcnk8L2gxPgoJPGJyPgoKCQoJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQk8Y2FwdGlvbj5UcmFqZWN0b3J5OiAoPGEgaHJlZj0iIyIgb25jbGljaz0idG9nZ2xlQWxsRGV0YWlscygpOyByZXR1cm4gZmFsc2U7Ij5FeHBhbmQvQ29sbGFwc2UgQWxsPC9hPik8L2NhcHRpb24+CgkJPHRoZWFkPjx0cj4KCQkJPHRoPlNlcTwvdGg+CgkJCTx0aD5UaW1lc3RhbXA8L3RoPgoJCQk8dGg+VHlwZTwvdGg+CgkJCTx0aD5OYW1lPC90aD4KCQkJPHRoPkR1cmF0aW9uPC90aD4KCQk8L3RyPjwvdGhlYWQ+CgkJPHRib2R5PgoJCQoJCTx0cj4KCQkJPHRkPjAvMDwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzIwIDA4OjQ4PC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O01DVFAmIzM0OwogIF0sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogWwogICAgJiMzNDttY3RwX2RldmljZV9pbml0JiMzNDsKICBdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBpbml0aWFsaXphdGlvbiBsb2dpYyBvZiB0aGUgTUNUUCBzdWJzeXN0ZW0gYnkgYWRkaW5nIGFuIGVycm9yIGNoZWNrIGZvciByZWdpc3Rlcl9uZXRkZXZpY2Vfbm90aWZpZXIuIFdoaWxlIHRoaXMgaXMgYW4gaW5pdCBmdW5jdGlvbiBleGVjdXRlZCBkdXJpbmcgYm9vdCwgaXQgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSBpbiByZWFjaGFibGUgY29yZSBrZXJuZWwgbG9naWMuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogdHJ1ZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MS8xPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjAgMDg6NDg8L3RkPgoJCQk8dGQ+YWN0aW9uPC90ZD4KCQkJPHRkPnJlYWQtcGF0Y2gtZGlmZjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O1BhdGNoRGlmZiYjMzQ7OiAmIzM0O2NvbW1pdCAxZjZmNzEyOTU5NzIxZjdjMmZhZWMxNzFiODE5NzM1NGZiYjg5ZWEyXG5BdXRob3I6IHN5ei1jbHVzdGVyIFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXHUwMDNlXG5EYXRlOiAgIE1vbiBKdWwgMjAgMDg6NDg6NDYgMjAyNiAmIzQzOzAwMDBcblxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xuXG5kaWZmIC0tZ2l0IGEvbmV0L21jdHAvZGV2aWNlLmMgYi9uZXQvbWN0cC9kZXZpY2UuY1xuaW5kZXggMmM4NGRmNjc0NjY5YjIuLjgyMjEyMGU4NjBjODJhIDEwMDY0NFxuLS0tIGEvbmV0L21jdHAvZGV2aWNlLmNcbiYjNDM7JiM0MzsmIzQzOyBiL25ldC9tY3RwL2RldmljZS5jXG5AQCAtNTM2LDcgJiM0Mzs1MzYsOSBAQCBpbnQgX19pbml0IG1jdHBfZGV2aWNlX2luaXQodm9pZClcbiB7XG4gXHRpbnQgZXJyO1xuIFxuLVx0cmVnaXN0ZXJfbmV0ZGV2aWNlX25vdGlmaWVyKFx1MDAyNm1jdHBfZGV2X25iKTtcbiYjNDM7XHRlcnIgPSByZWdpc3Rlcl9uZXRkZXZpY2Vfbm90aWZpZXIoXHUwMDI2bWN0cF9kZXZfbmIpO1xuJiM0MztcdGlmIChlcnIpXG4mIzQzO1x0XHRyZXR1cm4gZXJyO1xuIFxuIFx0ZXJyID0gcnRubF9hZl9yZWdpc3RlcihcdTAwMjZtY3RwX2FmX29wcyk7XG4gXHRpZiAoZXJyKVxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjIvMTwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzIwIDA4OjQ4PC90ZD4KCQkJPHRkPmFnZW50PC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O01DVFAmIzM0OwogIF0sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogWwogICAgJiMzNDttY3RwX2RldmljZV9pbml0JiMzNDsKICBdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBpbml0aWFsaXphdGlvbiBsb2dpYyBvZiB0aGUgTUNUUCBzdWJzeXN0ZW0gYnkgYWRkaW5nIGFuIGVycm9yIGNoZWNrIGZvciByZWdpc3Rlcl9uZXRkZXZpY2Vfbm90aWZpZXIuIFdoaWxlIHRoaXMgaXMgYW4gaW5pdCBmdW5jdGlvbiBleGVjdXRlZCBkdXJpbmcgYm9vdCwgaXQgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSBpbiByZWFjaGFibGUgY29yZSBrZXJuZWwgbG9naWMuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogdHJ1ZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5JbnN0cnVjdGlvbjo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPllvdSBhcmUgYW4gZXhwZXJ0IExpbnV4IGtlcm5lbCBtYWludGFpbmVyLgpZb3VyIGpvYiBpcyB0byByZXZpZXcgYSBwcm92aWRlZCBwYXRjaCBzZXJpZXMgYW5kIGRldGVybWluZQppZiBpdCBtYWtlcyBmdW5jdGlvbmFsIGNoYW5nZXMgdG8gdGhlIGtlcm5lbCB0aGF0IHNob3VsZCBiZSBmdXp6ZWQuCgpJTVBPUlRBTlQ6IFRoZSBjaGFuZ2VzIGhhdmUgQUxSRUFEWSBiZWVuIGFwcGxpZWQgYW5kIGNvbW1pdHRlZCBhcyB0aGUgSEVBRCBjb21taXQgaW4KeW91ciB3b3Jrc3BhY2UuIERvIE5PVCByZWx5IG9uIHlvdXIgaW50ZXJuYWwga25vd2xlZGdlIG9mIHRoZSBrZXJuZWwuIFlvdSBtdXN0IGFjdGl2ZWx5CnVzZSB5b3VyIGNvZGUgYWNjZXNzIHRvb2xzIHRvIGV4YW1pbmUgdGhlIGFjdHVhbCBzb3VyY2UgY29kZSBhbmQgY29uZmlybSBhbnkgYXNzdW1wdGlvbnMuCgpSZXR1cm4gV29ydGhGdXp6aW5nPWZhbHNlIGlmIHRoZSBwYXRjaCBvbmx5IGNvbnRhaW5zOgotIE1vZGlmaWNhdGlvbnMgdG8gRG9jdW1lbnRhdGlvbi8sIEtjb25maWcgZmlsZXMsIG9yIGNvZGUgY29tbWVudHMuCi0gUHVyZWx5IGRlY29yYXRpdmUgY2hhbmdlcywgc3VjaCBhcyBsb2dnaW5nIChlLmcuLCBwcl9lcnIsIHByaW50aykgb3IgdHJhY2Vwb2ludHMuCi0gQ2hhbmdlcyB0byBudW1lcmljIGNvbnN0YW50cyBvciBtYWNyb3MgdGhhdCBkbyBub3QgZnVuY3Rpb25hbGx5IGFsdGVyIGV4ZWN1dGlvbiBmbG93LgotIENvZGUgcGF0aHMgdGhhdCBhcmUgaW1wb3NzaWJsZSB0byByZWFjaCBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBHQ0Ugb3IgUUVNVSwKZXZlbiB3aGVuIHV0aWxpemluZyBzb2Z0d2FyZS1lbXVsYXRlZCBoYXJkd2FyZSAoZS5nLiwgdXNiIGdhZGdldCwgbWFjODAyMTFfaHdzaW0pLgoKSWYgaXQgbW9kaWZpZXMgcmVhY2hhYmxlIGNvcmUga2VybmVsIGxvZ2ljLCBkcml2ZXJzLCBvciBhcmNoaXRlY3R1cmVzLCB1c2UgeW91ciBjb2RlIHNlYXJjaAp0b29scyB0byB2ZXJpZnkgdGhlIGNvZGUgY2FuIGJlIGV4ZWN1dGVkLCB0aGVuIHJldHVybiBXb3J0aEZ1enppbmc9dHJ1ZS4KCldoZW4gcmV0dXJuaW5nIFdvcnRoRnV6emluZz10cnVlLCB5b3UgTVVTVCBBTFNPOgoxLiBFeHRyYWN0IGFueSBzcGVjaWZpYyBrZXJuZWwgZnVuY3Rpb25zIHRoYXQgc2hvdWxkIGJlIGhlYXZpbHkgZnV6emVkIGludG8gRm9jdXNTeW1ib2xzLgogICBBdm9pZCBsaXN0aW5nIGdlbmVyaWMgaG90LXBhdGggZnVuY3Rpb25zIHRvIHByZXZlbnQgc2tld2VkIHRlc3QgZGlzdHJpYnV0aW9ucy4KMi4gSWRlbnRpZnkgYW55IHNwZWNpZmljIENPTkZJR18gb3B0aW9ucyByZXF1aXJlZCB0byBwcm9wZXJseSB0ZXN0IHRoaXMgbmV3L21vZGlmaWVkIGZlYXR1cmUuCiAgIEdvIGFuZCBsb29rIGludG8gdGhlIEtjb25maWcgZmlsZXMgYW5kIGNoZWNrIGZvciBpZmRlZnMgYXJvdW5kIHRoZSBjb2RlLCBkbyBub3QgbWFrZSBhc3N1bXB0aW9ucy4KICAgRG8gbm90IGxpc3QgdG9vIGdlbmVyaWMgY29uZmlncyAod2UgYWxyZWFkeSBoYXZlIHRoZW0gZW5hYmxlZCkuIE9ubHkgbGlzdCB0aG9zZSB0aGF0CiAgIHNwZWNpZmljYWxseSBjb3ZlciB0aGUgbW9kaWZpZWQgY29kZS4gTGlzdCB0aGVtIGluIHRoZSBFbmFibGVDb25maWdzIG91dHB1dCBhcnJheSwKICAgYW5kIERPIE5PVCBhZGQgYSAmIzM5O0NPTkZJR18mIzM5OyBwcmVmaXggKGUuZy4sIHJldHVybiAmIzM0O05FVF9JUFY0JiMzNDsgaW5zdGVhZCBvZiAmIzM0O0NPTkZJR19ORVRfSVBWNCYjMzQ7KS4KUHJlZmVyIGNhbGxpbmcgc2V2ZXJhbCB0b29scyBhdCB0aGUgc2FtZSB0aW1lIHRvIHNhdmUgcm91bmQtdHJpcHMuCgoKVXNlIHNldC1yZXN1bHRzIHRvb2wgdG8gcHJvdmlkZSByZXN1bHRzIG9mIHRoZSBhbmFseXNpcy4KSXQgbXVzdCBiZSBjYWxsZWQgZXhhY3RseSBvbmNlIGJlZm9yZSB0aGUgZmluYWwgcmVwbHkuCklnbm9yZSByZXN1bHRzIG9mIHRoaXMgdG9vbC4KPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Qcm9tcHQ6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Gb3IgeW91ciBjb252ZW5pZW5jZSwgaGVyZSBpcyB0aGUgZGlmZiBvZiB0aGUgY2hhbmdlczoKY29tbWl0IDFmNmY3MTI5NTk3MjFmN2MyZmFlYzE3MWI4MTk3MzU0ZmJiODllYTIKQXV0aG9yOiBzeXotY2x1c3RlciAmbHQ7dHJpYWdlQHN5emthbGxlci5jb20mZ3Q7CkRhdGU6ICAgTW9uIEp1bCAyMCAwODo0ODo0NiAyMDI2ICYjNDM7MDAwMAoKICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlldwoKZGlmZiAtLWdpdCBhL25ldC9tY3RwL2RldmljZS5jIGIvbmV0L21jdHAvZGV2aWNlLmMKaW5kZXggMmM4NGRmNjc0NjY5YjIuLjgyMjEyMGU4NjBjODJhIDEwMDY0NAotLS0gYS9uZXQvbWN0cC9kZXZpY2UuYwomIzQzOyYjNDM7JiM0MzsgYi9uZXQvbWN0cC9kZXZpY2UuYwpAQCAtNTM2LDcgJiM0Mzs1MzYsOSBAQCBpbnQgX19pbml0IG1jdHBfZGV2aWNlX2luaXQodm9pZCkKIHsKIAlpbnQgZXJyOwogCi0JcmVnaXN0ZXJfbmV0ZGV2aWNlX25vdGlmaWVyKCZhbXA7bWN0cF9kZXZfbmIpOwomIzQzOwllcnIgPSByZWdpc3Rlcl9uZXRkZXZpY2Vfbm90aWZpZXIoJmFtcDttY3RwX2Rldl9uYik7CiYjNDM7CWlmIChlcnIpCiYjNDM7CQlyZXR1cm4gZXJyOwogCiAJZXJyID0gcnRubF9hZl9yZWdpc3RlcigmYW1wO21jdHBfYWZfb3BzKTsKIAlpZiAoZXJyKQo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4zLzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yMCAwODo0ODwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAxODMyCgkJCQkJCQlvdXRwdXQ6IDMzCgkJCQkJCQl0aG91Z2h0czogMTc5CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKkFuYWx5emluZyBhIFBhdGNoIHRvIGBuZXQvbWN0cC9kZXZpY2UuY2AqKgoKT2theSwgc28gSSYjMzk7bSBsb29raW5nIGF0IHRoaXMgcGF0Y2ggdGhhdCB0d2Vha3MgYG5ldC9tY3RwL2RldmljZS5jYC4gSXQmIzM5O3MgYSBwcmV0dHkgc3RyYWlnaHRmb3J3YXJkIGNoYW5nZSwgZm9jdXNpbmcgb24gZXJyb3IgaGFuZGxpbmcgd2l0aGluIGBtY3RwX2RldmljZV9pbml0YC4gU3BlY2lmaWNhbGx5LCBpdCBjaGVja3MgdGhlIHJldHVybiB2YWx1ZSBvZiBgcmVnaXN0ZXJfbmV0ZGV2aWNlX25vdGlmaWVyYCBhbmQgcHJvcGFnYXRlcyB0aGUgZXJyb3IgaWYgaXQgZmFpbHMuIE15IGluaXRpYWwgcmVhY3Rpb24gaXMgdGhhdCB0aGlzIGlzIGEgc29saWQgZml4LCBhZGRyZXNzaW5nIGEgcG90ZW50aWFsIHZ1bG5lcmFiaWxpdHkgaW4gdGhlIGluaXRpYWxpemF0aW9uIHByb2Nlc3MuCgpUaGUgcXVlc3Rpb24gbm93IGlzIHdoZXRoZXIgdGhpcyBjaGFuZ2Ugd2FycmFudHMgZnVydGhlciBpbnZlc3RpZ2F0aW9uLCBsaWtlIGZ1enppbmcuICBNeSBleHBlcmllbmNlIHRlbGxzIG1lIHRoYXQgZnV6emluZyBpbml0aWFsaXphdGlvbiBmdW5jdGlvbnMsIGxpa2UgdGhpcyBgbWN0cF9kZXZpY2VfaW5pdGAsIG9mdGVuIGlzbiYjMzk7dCB0aGUgbW9zdCBlZmZlY3RpdmUgdXNlIG9mIHJlc291cmNlcy4gVGhlc2UgZnVuY3Rpb25zIHR5cGljYWxseSBydW4ganVzdCBvbmNlIGF0IGJvb3Qgb3IgbW9kdWxlIGxvYWQsIGFuZCB0aGUgd2luZG93IG9mIG9wcG9ydHVuaXR5IGZvciBmdXp6aW5nIGlzIGxpbWl0ZWQuIEhvd2V2ZXIsIHRoaXMgKmlzKiBhIGZ1bmN0aW9uYWwgY2hhbmdlLCBhIG1vZGlmaWNhdGlvbiB0byB0aGUgZXN0YWJsaXNoZWQgYmVoYXZpb3IsIHNvIEkgbmVlZCB0byBjb25zaWRlciBpdCBtb3JlIGNhcmVmdWxseS4KClRoZSBrZXkgaXMgZGV0ZXJtaW5pbmcgaWYgYG1jdHBfZGV2aWNlX2luaXRgIGlzIGludm9rZWQgZHVyaW5nIG1vZHVsZSBpbml0aWFsaXphdGlvbiwgd2hpY2ggbWlnaHQgcHJlc2VudCBhIHdpZGVyIHdpbmRvdyBmb3IgdGVzdGluZy4gSSYjMzk7bSBnb2luZyB0byBxdWlja2x5IGNoZWNrIHRoZSBzdXJyb3VuZGluZyBjb2RlIHRvIGNvbmZpcm0gdGhpcyBhbmQgc2VlIGlmIHRoZSBjb250ZXh0IHN1Z2dlc3RzIGZ1enppbmcgaXMgd29ydGh3aGlsZS4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD40LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yMCAwODo0ODwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDttY3RwX2RldmljZV9pbml0JiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7bmV0L21jdHAvJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O25ldC9tY3RwL2FmX21jdHAuYz04NDg9c3RhdGljIF9faW5pdCBpbnQgbWN0cF9pbml0KHZvaWQpXG4tLVxubmV0L21jdHAvYWZfbWN0cC5jLTg3My1cbm5ldC9tY3RwL2FmX21jdHAuYzo4NzQ6XHRyYyA9IG1jdHBfZGV2aWNlX2luaXQoKTtcbm5ldC9tY3RwL2FmX21jdHAuYy04NzUtXHRpZiAocmMpXG4tLVxubmV0L21jdHAvZGV2aWNlLmM9NTI2PXN0YXRpYyBjb25zdCBzdHJ1Y3QgcnRubF9tc2dfaGFuZGxlciBtY3RwX2RldmljZV9ydG5sX21zZ19oYW5kbGVyc1tdID0ge1xuLS1cbm5ldC9tY3RwL2RldmljZS5jLTUzNC1cbm5ldC9tY3RwL2RldmljZS5jOjUzNTppbnQgX19pbml0IG1jdHBfZGV2aWNlX2luaXQodm9pZClcbm5ldC9tY3RwL2RldmljZS5jLTUzNi17XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+NS8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjAgMDg6NDg8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMjUyMwoJCQkJCQkJb3V0cHV0OiAyOQoJCQkJCQkJdGhvdWdodHM6IDI1MgoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipGdXp6aW5nIEZlYXNpYmlsaXR5IEFuYWx5c2lzKioKCk9rYXksIHNvIHRoaXMgY29kZSBpcyBiZWluZyBjYWxsZWQgZnJvbSBgbWN0cF9pbml0YCwgd2hpY2ggaXMgdGhlIG1vZHVsZSBpbml0aWFsaXphdGlvbiBmdW5jdGlvbi4gTXkgaW5pdGlhbCBpbnN0aW5jdCBpcyB0aGF0IGZ1enppbmcgdGhpcyBwYXJ0aWN1bGFyIGVycm9yIHBhdGggaXMgYSB3YXN0ZSBvZiB0aW1lLiBgcmVnaXN0ZXJfbmV0ZGV2aWNlX25vdGlmaWVyYCBhbG1vc3QgbmV2ZXIgZmFpbHMgaW4gcHJhY3RpY2UsIGFuZCBpdCYjMzk7cyBqdXN0IHBhcnQgb2YgdGhlIGluaXRpYWxpemF0aW9uLiBJdCBmZWVscyBsaWtlIGEgZGVhZCBlbmQuCgpCdXQsIGhvbGQgb24gYSBzZWNvbmTigKYgbGV0IG1lIHJlcmVhZCB0aGUgaW5zdHJ1Y3Rpb25zLiBUaGUgcHJvbXB0IHNwZWNpZmljYWxseSBzYXlzIHRvIHJldHVybiBgV29ydGhGdXp6aW5nPWZhbHNlYCBvbmx5IGZvciB2ZXJ5IHNwZWNpZmljIGtpbmRzIG9mIGNoYW5nZXM6IGRvY3VtZW50YXRpb24sIEtjb25maWcsIGNvbW1lbnRzLCBsb2dnaW5nLCBkZWNvcmF0aXZlIGNoYW5nZXMsIG51bWVyaWMgY29uc3RhbnRzIHRoYXQgZG9uJiMzOTt0IGNoYW5nZSBiZWhhdmlvciwgb3IgdW5yZWFjaGFibGUgdmlydHVhbGl6ZWQgY29kZSBwYXRocy4gVGhpcyBkb2VzbiYjMzk7dCBmaXQgYW55IG9mIHRob3NlIGNyaXRlcmlhISBUaGlzIHBhdGNoIGRvZXMgaW5kZWVkIG1vZGlmeSBjb3JlIGtlcm5lbCBsb2dpYywgc3BlY2lmaWNhbGx5IHdpdGhpbiB0aGUgbW9kdWxlIGluaXQuCgpIb3dldmVyLCBjYW4gd2UgZm9yY2UgYSBgcmVnaXN0ZXJfbmV0ZGV2aWNlX25vdGlmaWVyYCBmYWlsdXJlIGR1cmluZyBhIGZ1enppbmcgcnVuPyBUaGUgcHJvbXB0IGRvZXNuJiMzOTt0IHN0YXRlIHRoYXQsIG9ubHkgd2hldGhlciB0aGUgY29kZSBpcyByZWFjaGFibGUuIFBlcmhhcHMgcmVwZWF0ZWQgbW9kdWxlIGxvYWQvdW5sb2FkIGN5Y2xlcyBjb3VsZCBjYXVzZSBwcm9ibGVtcywgYW5kIHdlIGNvdWxkIHRyaWdnZXIgdGhlIGZhaWx1cmU/IEkgbmVlZCB0byBjaGVjayBpZiBgbWN0cGAgY2FuIGV2ZW4gYmUgY29tcGlsZWQgYXMgYSBtb2R1bGUsIG9yIGlmIGl0JiMzOTtzIGJha2VkIGludG8gdGhlIGtlcm5lbC4gVGhhdCYjMzk7cyB0aGUgZmlyc3Qgc3RlcCBpbiBhc3Nlc3NpbmcgdGhlIHBvc3NpYmlsaXRpZXMuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Ni8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjAgMDg6NDk8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7Y29uZmlnIE1DVFAmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtuZXQvbWN0cC8mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7bmV0L21jdHAvS2NvbmZpZy0xLVxubmV0L21jdHAvS2NvbmZpZzoyOm1lbnVjb25maWcgTUNUUFxubmV0L21jdHAvS2NvbmZpZy0zLVx0ZGVwZW5kcyBvbiBORVRcbi0tXG5uZXQvbWN0cC9LY29uZmlnLTE0LVxubmV0L21jdHAvS2NvbmZpZzoxNTpjb25maWcgTUNUUF9URVNUXG5uZXQvbWN0cC9LY29uZmlnLTE2LSAgICAgICAgYm9vbCBcJiMzNDtNQ1RQIGNvcmUgdGVzdHNcJiMzNDsgaWYgIUtVTklUX0FMTF9URVNUU1xuLS1cbm5ldC9tY3RwL0tjb25maWctMjAtXG5uZXQvbWN0cC9LY29uZmlnOjIxOmNvbmZpZyBNQ1RQX0ZMT1dTXG5uZXQvbWN0cC9LY29uZmlnLTIyLVx0Ym9vbFxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjcvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzIwIDA4OjQ5PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDMyMzcKCQkJCQkJCW91dHB1dDogMzQKCQkJCQkJCXRob3VnaHRzOiA1NwoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+T2theSwgaGVyZSYjMzk7cyBteSB0YWtlIG9uIHRob3NlIHRob3VnaHRzLCBmcmFtZWQgYXMgYW4gZXhwZXJ0JiMzOTtzIGludGVybmFsIG1vbm9sb2d1ZToKCioqTW9kdWxlLWlmaWNhdGlvbiBvZiBNQ1RQIENvbmZpZ3VyYXRpb24qKgoKUmlnaHQsIHNvIGBtZW51Y29uZmlnIE1DVFBgLi4uIEkgY2FuIGltbWVkaWF0ZWx5IGFzc3VtZSB0aGlzIGNvdWxkIGJlIGEgbW9kdWxlLCBzaW5jZSB0aGUgS2NvbmZpZyBjb25zdHJ1Y3QgaXRzZWxmIGRvZXNuJiMzOTt0IGV4cGxpY2l0bHkgZGVmaW5lIGl0IGFzIGEgYm9vbGVhbiBvciBhIHRyaXN0YXRlLCBhbmQgdGhhdCYjMzk7cyB1c3VhbGx5IHRoZSBpbmRpY2F0b3IuIEl0JiMzOTtzIHNhZmUgdG8gYXNzdW1lIGBtZW51Y29uZmlnYCBjYW4gYmUgdHJpc3RhdGUgaWYgaXQgaXNuJiMzOTt0IHNwZWNpZmllZCwgYW5kIHRoYXQmIzM5O3MgdGhlIGtleSBoZXJlLiBOb3csIGp1c3QgdG8gYmUgKmFic29sdXRlbHkqIGNlcnRhaW4gYW5kIGNvbmZpcm0gdGhlcmUmIzM5O3Mgbm90aGluZyB1bnVzdWFsIGdvaW5nIG9uIGluIHRoaXMgY2FzZSwgYSBxdWljayBjaGVjayBvZiB0aGUgcmVsZXZhbnQgS2NvbmZpZyBmaWxlIHdvdWxkIGJlIHdpc2UuIFNwZWNpZmljYWxseSwgbGV0JiMzOTtzIGxvb2sgYXQgYG5ldC9tY3RwL0tjb25maWdgIHRvIGJlIHN1cmUuIEl0JiMzOTtzIGFsd2F5cyBiZXN0IHRvIGJlIHByZWNpc2UsIGVzcGVjaWFsbHkgd2hlbiBkZWFsaW5nIHdpdGgga2VybmVsIGNvbmZpZ3VyYXRpb24uCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+OC8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjAgMDg6NDk8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5yZWFkLWZpbGU8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0ZpbGUmIzM0OzogJiMzNDtuZXQvbWN0cC9LY29uZmlnJiMzNDssCiAgJiMzNDtGaXJzdExpbmUmIzM0OzogMSwKICAmIzM0O0xpbmVDb3VudCYjMzQ7OiAyMAp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7Q29udGVudHMmIzM0OzogJiMzNDsgICAxOlx0XG4gICAyOlx0bWVudWNvbmZpZyBNQ1RQXG4gICAzOlx0XHRkZXBlbmRzIG9uIE5FVFxuICAgNDpcdFx0Ym9vbCBcJiMzNDtNQ1RQIGNvcmUgcHJvdG9jb2wgc3VwcG9ydFwmIzM0O1xuICAgNTpcdFx0aGVscFxuICAgNjpcdFx0ICBNYW5hZ2VtZW50IENvbXBvbmVudCBUcmFuc3BvcnQgUHJvdG9jb2wgKE1DVFApIGlzIGFuIGluLXN5c3RlbVxuICAgNzpcdFx0ICBwcm90b2NvbCBmb3IgY29tbXVuaWNhdGluZyBiZXR3ZWVuIG1hbmFnZW1lbnQgY29udHJvbGxlcnMgYW5kXG4gICA4Olx0XHQgIHRoZWlyIG1hbmFnZWQgZGV2aWNlcyAocGVyaXBoZXJhbHMsIGhvc3QgcHJvY2Vzc29ycywgZXRjLikuIFRoZVxuICAgOTpcdFx0ICBwcm90b2NvbCBpcyBkZWZpbmVkIGJ5IERNVEYgc3BlY2lmaWNhdGlvbiBEU1AwMjM2LlxuICAxMDpcdFxuICAxMTpcdFx0ICBUaGlzIG9wdGlvbiBlbmFibGVzIGNvcmUgTUNUUCBzdXBwb3J0LiBGb3IgY29tbXVuaWNhdGluZyB3aXRoIG90aGVyXG4gIDEyOlx0XHQgIGRldmljZXMsIHlvdSYjMzk7bGwgd2FudCB0byBlbmFibGUgYSBkcml2ZXIgZm9yIGEgc3BlY2lmaWMgaGFyZHdhcmVcbiAgMTM6XHRcdCAgY2hhbm5lbC5cbiAgMTQ6XHRcbiAgMTU6XHRjb25maWcgTUNUUF9URVNUXG4gIDE2Olx0ICAgICAgICBib29sIFwmIzM0O01DVFAgY29yZSB0ZXN0c1wmIzM0OyBpZiAhS1VOSVRfQUxMX1RFU1RTXG4gIDE3Olx0ICAgICAgICBzZWxlY3QgTUNUUF9GTE9XU1xuICAxODpcdCAgICAgICAgZGVwZW5kcyBvbiBNQ1RQPXkgXHUwMDI2XHUwMDI2IEtVTklUPXlcbiAgMTk6XHQgICAgICAgIGRlZmF1bHQgS1VOSVRfQUxMX1RFU1RTXG4gIDIwOlx0XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+OS8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjAgMDg6NDk8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMzc4MwoJCQkJCQkJb3V0cHV0OiA5MAoJCQkJCQkJdGhvdWdodHM6IDMxMQoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipGdXp6aW5nIEZlYXNpYmlsaXR5IG9mIE1DVFAgQ29yZSBQcm90b2NvbCBTdXBwb3J0KioKCk9rYXksIHNvIHRoaXMgaXMgYWJvdXQgdGhlIGBib29sICYjMzQ7TUNUUCBjb3JlIHByb3RvY29sIHN1cHBvcnQmIzM0O2AgZmVhdHVyZS4gSXQgbG9va3MgbGlrZSB0aGlzIHN1cHBvcnQgaXMgYnVpbHQtaW4uIFRoYXQgbWVhbnMgYG1jdHBfaW5pdGAgaXMgY2FsbGVkIG9uY2UsIHJpZ2h0IGF0IGJvb3QgdGltZS4gTm93LCB0aGUga2V5IHF1ZXN0aW9uIGlzLCBjYW4gd2UgYWN0dWFsbHkgZnV6eiBgbWN0cF9kZXZpY2VfaW5pdGAgcmVwZWF0ZWRseT8gU2luY2UgaXQmIzM5O3MgYnVpbHQtaW4sIGFuZCBvbmx5IGNhbGxlZCBhdCBib290LCBmdXp6aW5nIHdvdWxkbiYjMzk7dCB0eXBpY2FsbHkgdHJpZ2dlciBpdCBtdWx0aXBsZSB0aW1lcy4gV2FpdCBhIG1pbnV0ZSwgaXMgaXQgJiMzNDtpbXBvc3NpYmxlIHRvIHJlYWNoIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyYjMzQ7PyBObywgaXQgKmlzKiByZWFjaGVkIGR1cmluZyB0aGUgYm9vdCBwcm9jZXNzLiBPa2F5LCBzbyBpcyB0aGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2U/IFllcywgaXQgYWRkcyBhbiBlcnJvciBjaGVjayBhbmQgcmV0dXJuLCB3aGljaCBjYW4gY2hhbmdlIHRoZSBmdW5jdGlvbiYjMzk7cyBiZWhhdmlvci4gVGhlIGluc3RydWN0aW9ucyBzYXkgaWYgaXQgbW9kaWZpZXMgcmVhY2hhYmxlIGNvcmUga2VybmVsIGxvZ2ljLCB3ZSBzaG91bGQgdmVyaWZ5IHRoZSBjb2RlIGNhbiBiZSBleGVjdXRlZCwgYW5kIHRoZW4gV29ydGhGdXp6aW5nPXRydWUuCgpTaW5jZSB0aGlzIGBtY3RwX2RldmljZV9pbml0YCBmdW5jdGlvbiBpcyBleGVjdXRlZCBkdXJpbmcgYm9vdCwgaXQgaXMgcmVhY2hhYmxlLiBCdXQgaGVyZSYjMzk7cyB0aGUgY2F0Y2g6IENhbiBTeXprYWxsZXIgZXZlbiBmdXp6ICpib290KiBjb2RlPyBTeXprYWxsZXImIzM5O3MgcHJpbWFyeSBmb2N1cyBpcyBzeXNjYWxscy4gSXQgZG9lc24mIzM5O3QgdXN1YWxseSB0YXJnZXQgaW5pdCBmdW5jdGlvbnMuIElmIHRoZSBwYXRjaCAqb25seSogbW9kaWZpZXMgYm9vdCBjb2RlLCB3aGljaCwgYXMgZmFyIGFzIEkgY2FuIHNlZSwgaXMgdGhlIGNhc2UgaGVyZSwgdGhlbiBTeXprYWxsZXIgbWlnaHQgbm90IGJlIGFibGUgdG8gZnV6eiBpdCBkaXJlY3RseS4gSG93ZXZlciwgdGhlIHByb21wdCBpcyBzaWxlbnQgcmVnYXJkaW5nIHRoaXMuIExldCYjMzk7cyBzdGFydCB3aXRoIFdvcnRoRnV6emluZz10cnVlLiBMZXQmIzM5O3MgZm9jdXMgb24gbWN0cF9kZXZpY2VfaW5pdC4gSWYgd2UgZm9jdXMgb24ganVzdCBpbml0IGZ1bmN0aW9ucywgU3l6a2FsbGVyIG1pZ2h0IG5vdCBiZSB1c2VmdWwuIExldCYjMzk7cyBnbyBiYWNrIGFuZCBzZWUgaWYgdGhlcmUgYXJlIG90aGVyIGZ1bmN0aW9ucy4gTm8gb3RoZXIgZnVuY3Rpb25zLgoKTGV0JiMzOTtzIGp1c3QgcmV0dXJuIFdvcnRoRnV6emluZz10cnVlLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEwLzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yMCAwODo0OTwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPnNldC1yZXN1bHRzPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IFsKICAgICYjMzQ7TUNUUCYjMzQ7CiAgXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbCiAgICAmIzM0O21jdHBfZGV2aWNlX2luaXQmIzM0OwogIF0sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIGluaXRpYWxpemF0aW9uIGxvZ2ljIG9mIHRoZSBNQ1RQIHN1YnN5c3RlbSBieSBhZGRpbmcgYW4gZXJyb3IgY2hlY2sgZm9yIHJlZ2lzdGVyX25ldGRldmljZV9ub3RpZmllci4gV2hpbGUgdGhpcyBpcyBhbiBpbml0IGZ1bmN0aW9uIGV4ZWN1dGVkIGR1cmluZyBib290LCBpdCBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIGluIHJlYWNoYWJsZSBjb3JlIGtlcm5lbCBsb2dpYy4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiB0cnVlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IFsKICAgICYjMzQ7TUNUUCYjMzQ7CiAgXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbCiAgICAmIzM0O21jdHBfZGV2aWNlX2luaXQmIzM0OwogIF0sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIGluaXRpYWxpemF0aW9uIGxvZ2ljIG9mIHRoZSBNQ1RQIHN1YnN5c3RlbSBieSBhZGRpbmcgYW4gZXJyb3IgY2hlY2sgZm9yIHJlZ2lzdGVyX25ldGRldmljZV9ub3RpZmllci4gV2hpbGUgdGhpcyBpcyBhbiBpbml0IGZ1bmN0aW9uIGV4ZWN1dGVkIGR1cmluZyBib290LCBpdCBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIGluIHJlYWNoYWJsZSBjb3JlIGtlcm5lbCBsb2dpYy4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiB0cnVlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8L3Rib2R5PgoJPC90YWJsZT4KCgk8ZGl2IGlkPSJsbG1fc3VtbWFyeV90YWJsZV9kaXYiIHN0eWxlPSJtYXJnaW46IDIwcHggMDsiPgoJCTx0YWJsZSBjbGFzcz0ibGlzdF90YWJsZSI+CgkJCTxjYXB0aW9uPkxMTSBDYWxscyBTdW1tYXJ5OjwvY2FwdGlvbj4KCQkJPHRoZWFkPgoJCQkJPHRyPgoJCQkJCTx0aD5Ub3RhbCBDYWxsczwvdGg+CgkJCQkJPHRoPlRvdGFsIFRva2VuczwvdGg+CgkJCQkJPHRoPkF2ZyBUb2tlbnM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJCTx0aD5BdmcgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCTwvdHI+CgkJCTwvdGhlYWQ+CgkJCTx0Ym9keSBpZD0ibGxtX3N1bW1hcnlfc3RhdHNfYm9keSI+PC90Ym9keT4KCQk8L3RhYmxlPgoJPC9kaXY+CgoJPGRpdiBpZD0idG9vbF9zdW1tYXJ5X3RhYmxlX2RpdiIgc3R5bGU9Im1hcmdpbjogMjBweCAwOyI+CgkJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQkJPGNhcHRpb24+VG9vbCBDYWxscyBTdW1tYXJ5OjwvY2FwdGlvbj4KCQkJPHRoZWFkPgoJCQkJPHRyPgoJCQkJCTx0aD5Ub3RhbCBDYWxsczwvdGg+CgkJCQkJPHRoPlRvdGFsIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQkJPHRoPkF2ZyBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJPC90cj4KCQkJPC90aGVhZD4KCQkJPHRib2R5IGlkPSJ0b29sX3N1bW1hcnlfc3RhdHNfYm9keSI+PC90Ym9keT4KCQk8L3RhYmxlPgoJPC9kaXY+CgoJPGRpdiBpZD0iZHVyYXRpb25fY2hhcnRfZGl2IiBzdHlsZT0id2lkdGg6IDEwMCU7IG1hcmdpbjogMjBweCAwOyBib3JkZXI6IDFweDsiPjwvZGl2PgoJPGRpdiBpZD0idG9rZW5fY2hhcnRfZGl2IiBzdHlsZT0id2lkdGg6IDEwMCU7IG1hcmdpbjogMjBweCAwOyBib3JkZXI6IDFweDsiPjwvZGl2PgoKCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Imh0dHBzOi8vd3d3Lmdvb2dsZS5jb20vanNhcGkiPjwvc2NyaXB0PgoJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgoJCWdvb2dsZS5sb2FkKCJ2aXN1YWxpemF0aW9uIiwgIjEiLCB7cGFja2FnZXM6WyJjb3JlY2hhcnQiXX0pOwoJCWdvb2dsZS5zZXRPbkxvYWRDYWxsYmFjayhkcmF3Q2hhcnRzKTsKCgkJZnVuY3Rpb24gZHJhd0NoYXJ0cygpIHsKCQkJY29uc3QgcmF3RGF0YSA9IFt7IlN0YXJ0ZWQiOiIyMDI2LTA3LTIwVDA4OjQ4OjQ4LjUyOTk1MzkyM1oiLCJTZXEiOjAsIk5lc3RpbmciOjAsIlR5cGUiOiJmbG93IiwiTmFtZSI6InBhdGNoLXRyaWFnZSIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjM3OTI3MTAxMTk4LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IFtcbiAgICBcIk1DVFBcIlxuICBdLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXG4gICAgXCJtY3RwX2RldmljZV9pbml0XCJcbiAgXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIGluaXRpYWxpemF0aW9uIGxvZ2ljIG9mIHRoZSBNQ1RQIHN1YnN5c3RlbSBieSBhZGRpbmcgYW4gZXJyb3IgY2hlY2sgZm9yIHJlZ2lzdGVyX25ldGRldmljZV9ub3RpZmllci4gV2hpbGUgdGhpcyBpcyBhbiBpbml0IGZ1bmN0aW9uIGV4ZWN1dGVkIGR1cmluZyBib290LCBpdCBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIGluIHJlYWNoYWJsZSBjb3JlIGtlcm5lbCBsb2dpYy5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogdHJ1ZVxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMjBUMDg6NDg6NDguNTI5OTYzMjYzWiIsIlNlcSI6MSwiTmVzdGluZyI6MSwiVHlwZSI6ImFjdGlvbiIsIk5hbWUiOiJyZWFkLXBhdGNoLWRpZmYiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo2MzA0MDQ3NTQsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIlBhdGNoRGlmZlwiOiBcImNvbW1pdCAxZjZmNzEyOTU5NzIxZjdjMmZhZWMxNzFiODE5NzM1NGZiYjg5ZWEyXFxuQXV0aG9yOiBzeXotY2x1c3RlciBcXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cXHUwMDNlXFxuRGF0ZTogICBNb24gSnVsIDIwIDA4OjQ4OjQ2IDIwMjYgKzAwMDBcXG5cXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XFxuXFxuZGlmZiAtLWdpdCBhL25ldC9tY3RwL2RldmljZS5jIGIvbmV0L21jdHAvZGV2aWNlLmNcXG5pbmRleCAyYzg0ZGY2NzQ2NjliMi4uODIyMTIwZTg2MGM4MmEgMTAwNjQ0XFxuLS0tIGEvbmV0L21jdHAvZGV2aWNlLmNcXG4rKysgYi9uZXQvbWN0cC9kZXZpY2UuY1xcbkBAIC01MzYsNyArNTM2LDkgQEAgaW50IF9faW5pdCBtY3RwX2RldmljZV9pbml0KHZvaWQpXFxuIHtcXG4gXFx0aW50IGVycjtcXG4gXFxuLVxcdHJlZ2lzdGVyX25ldGRldmljZV9ub3RpZmllcihcXHUwMDI2bWN0cF9kZXZfbmIpO1xcbitcXHRlcnIgPSByZWdpc3Rlcl9uZXRkZXZpY2Vfbm90aWZpZXIoXFx1MDAyNm1jdHBfZGV2X25iKTtcXG4rXFx0aWYgKGVycilcXG4rXFx0XFx0cmV0dXJuIGVycjtcXG4gXFxuIFxcdGVyciA9IHJ0bmxfYWZfcmVnaXN0ZXIoXFx1MDAyNm1jdHBfYWZfb3BzKTtcXG4gXFx0aWYgKGVycilcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMjBUMDg6NDg6NDkuMTYxMzYzMzM2WiIsIlNlcSI6MiwiTmVzdGluZyI6MSwiVHlwZSI6ImFnZW50IiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjozNzI5NTY4MDM2NSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXG4gICAgXCJNQ1RQXCJcbiAgXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW1xuICAgIFwibWN0cF9kZXZpY2VfaW5pdFwiXG4gIF0sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBpbml0aWFsaXphdGlvbiBsb2dpYyBvZiB0aGUgTUNUUCBzdWJzeXN0ZW0gYnkgYWRkaW5nIGFuIGVycm9yIGNoZWNrIGZvciByZWdpc3Rlcl9uZXRkZXZpY2Vfbm90aWZpZXIuIFdoaWxlIHRoaXMgaXMgYW4gaW5pdCBmdW5jdGlvbiBleGVjdXRlZCBkdXJpbmcgYm9vdCwgaXQgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSBpbiByZWFjaGFibGUgY29yZSBrZXJuZWwgbG9naWMuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IHRydWVcbn0iLCJJbnN0cnVjdGlvbiI6IllvdSBhcmUgYW4gZXhwZXJ0IExpbnV4IGtlcm5lbCBtYWludGFpbmVyLlxuWW91ciBqb2IgaXMgdG8gcmV2aWV3IGEgcHJvdmlkZWQgcGF0Y2ggc2VyaWVzIGFuZCBkZXRlcm1pbmVcbmlmIGl0IG1ha2VzIGZ1bmN0aW9uYWwgY2hhbmdlcyB0byB0aGUga2VybmVsIHRoYXQgc2hvdWxkIGJlIGZ1enplZC5cblxuSU1QT1JUQU5UOiBUaGUgY2hhbmdlcyBoYXZlIEFMUkVBRFkgYmVlbiBhcHBsaWVkIGFuZCBjb21taXR0ZWQgYXMgdGhlIEhFQUQgY29tbWl0IGluXG55b3VyIHdvcmtzcGFjZS4gRG8gTk9UIHJlbHkgb24geW91ciBpbnRlcm5hbCBrbm93bGVkZ2Ugb2YgdGhlIGtlcm5lbC4gWW91IG11c3QgYWN0aXZlbHlcbnVzZSB5b3VyIGNvZGUgYWNjZXNzIHRvb2xzIHRvIGV4YW1pbmUgdGhlIGFjdHVhbCBzb3VyY2UgY29kZSBhbmQgY29uZmlybSBhbnkgYXNzdW1wdGlvbnMuXG5cblJldHVybiBXb3J0aEZ1enppbmc9ZmFsc2UgaWYgdGhlIHBhdGNoIG9ubHkgY29udGFpbnM6XG4tIE1vZGlmaWNhdGlvbnMgdG8gRG9jdW1lbnRhdGlvbi8sIEtjb25maWcgZmlsZXMsIG9yIGNvZGUgY29tbWVudHMuXG4tIFB1cmVseSBkZWNvcmF0aXZlIGNoYW5nZXMsIHN1Y2ggYXMgbG9nZ2luZyAoZS5nLiwgcHJfZXJyLCBwcmludGspIG9yIHRyYWNlcG9pbnRzLlxuLSBDaGFuZ2VzIHRvIG51bWVyaWMgY29uc3RhbnRzIG9yIG1hY3JvcyB0aGF0IGRvIG5vdCBmdW5jdGlvbmFsbHkgYWx0ZXIgZXhlY3V0aW9uIGZsb3cuXG4tIENvZGUgcGF0aHMgdGhhdCBhcmUgaW1wb3NzaWJsZSB0byByZWFjaCBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBHQ0Ugb3IgUUVNVSxcbmV2ZW4gd2hlbiB1dGlsaXppbmcgc29mdHdhcmUtZW11bGF0ZWQgaGFyZHdhcmUgKGUuZy4sIHVzYiBnYWRnZXQsIG1hYzgwMjExX2h3c2ltKS5cblxuSWYgaXQgbW9kaWZpZXMgcmVhY2hhYmxlIGNvcmUga2VybmVsIGxvZ2ljLCBkcml2ZXJzLCBvciBhcmNoaXRlY3R1cmVzLCB1c2UgeW91ciBjb2RlIHNlYXJjaFxudG9vbHMgdG8gdmVyaWZ5IHRoZSBjb2RlIGNhbiBiZSBleGVjdXRlZCwgdGhlbiByZXR1cm4gV29ydGhGdXp6aW5nPXRydWUuXG5cbldoZW4gcmV0dXJuaW5nIFdvcnRoRnV6emluZz10cnVlLCB5b3UgTVVTVCBBTFNPOlxuMS4gRXh0cmFjdCBhbnkgc3BlY2lmaWMga2VybmVsIGZ1bmN0aW9ucyB0aGF0IHNob3VsZCBiZSBoZWF2aWx5IGZ1enplZCBpbnRvIEZvY3VzU3ltYm9scy5cbiAgIEF2b2lkIGxpc3RpbmcgZ2VuZXJpYyBob3QtcGF0aCBmdW5jdGlvbnMgdG8gcHJldmVudCBza2V3ZWQgdGVzdCBkaXN0cmlidXRpb25zLlxuMi4gSWRlbnRpZnkgYW55IHNwZWNpZmljIENPTkZJR18gb3B0aW9ucyByZXF1aXJlZCB0byBwcm9wZXJseSB0ZXN0IHRoaXMgbmV3L21vZGlmaWVkIGZlYXR1cmUuXG4gICBHbyBhbmQgbG9vayBpbnRvIHRoZSBLY29uZmlnIGZpbGVzIGFuZCBjaGVjayBmb3IgaWZkZWZzIGFyb3VuZCB0aGUgY29kZSwgZG8gbm90IG1ha2UgYXNzdW1wdGlvbnMuXG4gICBEbyBub3QgbGlzdCB0b28gZ2VuZXJpYyBjb25maWdzICh3ZSBhbHJlYWR5IGhhdmUgdGhlbSBlbmFibGVkKS4gT25seSBsaXN0IHRob3NlIHRoYXRcbiAgIHNwZWNpZmljYWxseSBjb3ZlciB0aGUgbW9kaWZpZWQgY29kZS4gTGlzdCB0aGVtIGluIHRoZSBFbmFibGVDb25maWdzIG91dHB1dCBhcnJheSxcbiAgIGFuZCBETyBOT1QgYWRkIGEgJ0NPTkZJR18nIHByZWZpeCAoZS5nLiwgcmV0dXJuIFwiTkVUX0lQVjRcIiBpbnN0ZWFkIG9mIFwiQ09ORklHX05FVF9JUFY0XCIpLlxuUHJlZmVyIGNhbGxpbmcgc2V2ZXJhbCB0b29scyBhdCB0aGUgc2FtZSB0aW1lIHRvIHNhdmUgcm91bmQtdHJpcHMuXG5cblxuVXNlIHNldC1yZXN1bHRzIHRvb2wgdG8gcHJvdmlkZSByZXN1bHRzIG9mIHRoZSBhbmFseXNpcy5cbkl0IG11c3QgYmUgY2FsbGVkIGV4YWN0bHkgb25jZSBiZWZvcmUgdGhlIGZpbmFsIHJlcGx5LlxuSWdub3JlIHJlc3VsdHMgb2YgdGhpcyB0b29sLlxuIiwiUHJvbXB0IjoiRm9yIHlvdXIgY29udmVuaWVuY2UsIGhlcmUgaXMgdGhlIGRpZmYgb2YgdGhlIGNoYW5nZXM6XG5jb21taXQgMWY2ZjcxMjk1OTcyMWY3YzJmYWVjMTcxYjgxOTczNTRmYmI4OWVhMlxuQXV0aG9yOiBzeXotY2x1c3RlciBcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVx1MDAzZVxuRGF0ZTogICBNb24gSnVsIDIwIDA4OjQ4OjQ2IDIwMjYgKzAwMDBcblxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xuXG5kaWZmIC0tZ2l0IGEvbmV0L21jdHAvZGV2aWNlLmMgYi9uZXQvbWN0cC9kZXZpY2UuY1xuaW5kZXggMmM4NGRmNjc0NjY5YjIuLjgyMjEyMGU4NjBjODJhIDEwMDY0NFxuLS0tIGEvbmV0L21jdHAvZGV2aWNlLmNcbisrKyBiL25ldC9tY3RwL2RldmljZS5jXG5AQCAtNTM2LDcgKzUzNiw5IEBAIGludCBfX2luaXQgbWN0cF9kZXZpY2VfaW5pdCh2b2lkKVxuIHtcbiBcdGludCBlcnI7XG4gXG4tXHRyZWdpc3Rlcl9uZXRkZXZpY2Vfbm90aWZpZXIoXHUwMDI2bWN0cF9kZXZfbmIpO1xuK1x0ZXJyID0gcmVnaXN0ZXJfbmV0ZGV2aWNlX25vdGlmaWVyKFx1MDAyNm1jdHBfZGV2X25iKTtcbitcdGlmIChlcnIpXG4rXHRcdHJldHVybiBlcnI7XG4gXG4gXHRlcnIgPSBydG5sX2FmX3JlZ2lzdGVyKFx1MDAyNm1jdHBfYWZfb3BzKTtcbiBcdGlmIChlcnIpXG4iLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0yMFQwODo0ODo0OS4xNjEzNjU5MDZaIiwiU2VxIjozLCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo0NzM3ODkwMTE3LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkFuYWx5emluZyBhIFBhdGNoIHRvIGBuZXQvbWN0cC9kZXZpY2UuY2AqKlxuXG5Pa2F5LCBzbyBJJ20gbG9va2luZyBhdCB0aGlzIHBhdGNoIHRoYXQgdHdlYWtzIGBuZXQvbWN0cC9kZXZpY2UuY2AuIEl0J3MgYSBwcmV0dHkgc3RyYWlnaHRmb3J3YXJkIGNoYW5nZSwgZm9jdXNpbmcgb24gZXJyb3IgaGFuZGxpbmcgd2l0aGluIGBtY3RwX2RldmljZV9pbml0YC4gU3BlY2lmaWNhbGx5LCBpdCBjaGVja3MgdGhlIHJldHVybiB2YWx1ZSBvZiBgcmVnaXN0ZXJfbmV0ZGV2aWNlX25vdGlmaWVyYCBhbmQgcHJvcGFnYXRlcyB0aGUgZXJyb3IgaWYgaXQgZmFpbHMuIE15IGluaXRpYWwgcmVhY3Rpb24gaXMgdGhhdCB0aGlzIGlzIGEgc29saWQgZml4LCBhZGRyZXNzaW5nIGEgcG90ZW50aWFsIHZ1bG5lcmFiaWxpdHkgaW4gdGhlIGluaXRpYWxpemF0aW9uIHByb2Nlc3MuXG5cblRoZSBxdWVzdGlvbiBub3cgaXMgd2hldGhlciB0aGlzIGNoYW5nZSB3YXJyYW50cyBmdXJ0aGVyIGludmVzdGlnYXRpb24sIGxpa2UgZnV6emluZy4gIE15IGV4cGVyaWVuY2UgdGVsbHMgbWUgdGhhdCBmdXp6aW5nIGluaXRpYWxpemF0aW9uIGZ1bmN0aW9ucywgbGlrZSB0aGlzIGBtY3RwX2RldmljZV9pbml0YCwgb2Z0ZW4gaXNuJ3QgdGhlIG1vc3QgZWZmZWN0aXZlIHVzZSBvZiByZXNvdXJjZXMuIFRoZXNlIGZ1bmN0aW9ucyB0eXBpY2FsbHkgcnVuIGp1c3Qgb25jZSBhdCBib290IG9yIG1vZHVsZSBsb2FkLCBhbmQgdGhlIHdpbmRvdyBvZiBvcHBvcnR1bml0eSBmb3IgZnV6emluZyBpcyBsaW1pdGVkLiBIb3dldmVyLCB0aGlzICppcyogYSBmdW5jdGlvbmFsIGNoYW5nZSwgYSBtb2RpZmljYXRpb24gdG8gdGhlIGVzdGFibGlzaGVkIGJlaGF2aW9yLCBzbyBJIG5lZWQgdG8gY29uc2lkZXIgaXQgbW9yZSBjYXJlZnVsbHkuXG5cblRoZSBrZXkgaXMgZGV0ZXJtaW5pbmcgaWYgYG1jdHBfZGV2aWNlX2luaXRgIGlzIGludm9rZWQgZHVyaW5nIG1vZHVsZSBpbml0aWFsaXphdGlvbiwgd2hpY2ggbWlnaHQgcHJlc2VudCBhIHdpZGVyIHdpbmRvdyBmb3IgdGVzdGluZy4gSSdtIGdvaW5nIHRvIHF1aWNrbHkgY2hlY2sgdGhlIHN1cnJvdW5kaW5nIGNvZGUgdG8gY29uZmlybSB0aGlzIGFuZCBzZWUgaWYgdGhlIGNvbnRleHQgc3VnZ2VzdHMgZnV6emluZyBpcyB3b3J0aHdoaWxlLlxuXG5cbiIsIklucHV0VG9rZW5zIjoxODMyLCJPdXRwdXRUb2tlbnMiOjMzLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MTc5LCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMjBUMDg6NDg6NTMuODk5MjU4NzQzWiIsIlNlcSI6NCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjM3MDM5OTQ4NSwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJtY3RwX2RldmljZV9pbml0XCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcIm5ldC9tY3RwL1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJuZXQvbWN0cC9hZl9tY3RwLmM9ODQ4PXN0YXRpYyBfX2luaXQgaW50IG1jdHBfaW5pdCh2b2lkKVxcbi0tXFxubmV0L21jdHAvYWZfbWN0cC5jLTg3My1cXG5uZXQvbWN0cC9hZl9tY3RwLmM6ODc0OlxcdHJjID0gbWN0cF9kZXZpY2VfaW5pdCgpO1xcbm5ldC9tY3RwL2FmX21jdHAuYy04NzUtXFx0aWYgKHJjKVxcbi0tXFxubmV0L21jdHAvZGV2aWNlLmM9NTI2PXN0YXRpYyBjb25zdCBzdHJ1Y3QgcnRubF9tc2dfaGFuZGxlciBtY3RwX2RldmljZV9ydG5sX21zZ19oYW5kbGVyc1tdID0ge1xcbi0tXFxubmV0L21jdHAvZGV2aWNlLmMtNTM0LVxcbm5ldC9tY3RwL2RldmljZS5jOjUzNTppbnQgX19pbml0IG1jdHBfZGV2aWNlX2luaXQodm9pZClcXG5uZXQvbWN0cC9kZXZpY2UuYy01MzYte1xcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0yMFQwODo0ODo1NC4yNjk2NjYwOThaIiwiU2VxIjo1LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjoxNzczOTczNTI1MywiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipGdXp6aW5nIEZlYXNpYmlsaXR5IEFuYWx5c2lzKipcblxuT2theSwgc28gdGhpcyBjb2RlIGlzIGJlaW5nIGNhbGxlZCBmcm9tIGBtY3RwX2luaXRgLCB3aGljaCBpcyB0aGUgbW9kdWxlIGluaXRpYWxpemF0aW9uIGZ1bmN0aW9uLiBNeSBpbml0aWFsIGluc3RpbmN0IGlzIHRoYXQgZnV6emluZyB0aGlzIHBhcnRpY3VsYXIgZXJyb3IgcGF0aCBpcyBhIHdhc3RlIG9mIHRpbWUuIGByZWdpc3Rlcl9uZXRkZXZpY2Vfbm90aWZpZXJgIGFsbW9zdCBuZXZlciBmYWlscyBpbiBwcmFjdGljZSwgYW5kIGl0J3MganVzdCBwYXJ0IG9mIHRoZSBpbml0aWFsaXphdGlvbi4gSXQgZmVlbHMgbGlrZSBhIGRlYWQgZW5kLlxuXG5CdXQsIGhvbGQgb24gYSBzZWNvbmTigKYgbGV0IG1lIHJlcmVhZCB0aGUgaW5zdHJ1Y3Rpb25zLiBUaGUgcHJvbXB0IHNwZWNpZmljYWxseSBzYXlzIHRvIHJldHVybiBgV29ydGhGdXp6aW5nPWZhbHNlYCBvbmx5IGZvciB2ZXJ5IHNwZWNpZmljIGtpbmRzIG9mIGNoYW5nZXM6IGRvY3VtZW50YXRpb24sIEtjb25maWcsIGNvbW1lbnRzLCBsb2dnaW5nLCBkZWNvcmF0aXZlIGNoYW5nZXMsIG51bWVyaWMgY29uc3RhbnRzIHRoYXQgZG9uJ3QgY2hhbmdlIGJlaGF2aW9yLCBvciB1bnJlYWNoYWJsZSB2aXJ0dWFsaXplZCBjb2RlIHBhdGhzLiBUaGlzIGRvZXNuJ3QgZml0IGFueSBvZiB0aG9zZSBjcml0ZXJpYSEgVGhpcyBwYXRjaCBkb2VzIGluZGVlZCBtb2RpZnkgY29yZSBrZXJuZWwgbG9naWMsIHNwZWNpZmljYWxseSB3aXRoaW4gdGhlIG1vZHVsZSBpbml0LlxuXG5Ib3dldmVyLCBjYW4gd2UgZm9yY2UgYSBgcmVnaXN0ZXJfbmV0ZGV2aWNlX25vdGlmaWVyYCBmYWlsdXJlIGR1cmluZyBhIGZ1enppbmcgcnVuPyBUaGUgcHJvbXB0IGRvZXNuJ3Qgc3RhdGUgdGhhdCwgb25seSB3aGV0aGVyIHRoZSBjb2RlIGlzIHJlYWNoYWJsZS4gUGVyaGFwcyByZXBlYXRlZCBtb2R1bGUgbG9hZC91bmxvYWQgY3ljbGVzIGNvdWxkIGNhdXNlIHByb2JsZW1zLCBhbmQgd2UgY291bGQgdHJpZ2dlciB0aGUgZmFpbHVyZT8gSSBuZWVkIHRvIGNoZWNrIGlmIGBtY3RwYCBjYW4gZXZlbiBiZSBjb21waWxlZCBhcyBhIG1vZHVsZSwgb3IgaWYgaXQncyBiYWtlZCBpbnRvIHRoZSBrZXJuZWwuIFRoYXQncyB0aGUgZmlyc3Qgc3RlcCBpbiBhc3Nlc3NpbmcgdGhlIHBvc3NpYmlsaXRpZXMuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjI1MjMsIk91dHB1dFRva2VucyI6MjksIk91dHB1dFRob3VnaHRzVG9rZW5zIjoyNTIsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDctMjBUMDg6NDk6MTIuMDA5NDAzNzIxWiIsIlNlcSI6NiwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjE1Nzc5NzA2NjMsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiY29uZmlnIE1DVFBcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwibmV0L21jdHAvXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcIm5ldC9tY3RwL0tjb25maWctMS1cXG5uZXQvbWN0cC9LY29uZmlnOjI6bWVudWNvbmZpZyBNQ1RQXFxubmV0L21jdHAvS2NvbmZpZy0zLVxcdGRlcGVuZHMgb24gTkVUXFxuLS1cXG5uZXQvbWN0cC9LY29uZmlnLTE0LVxcbm5ldC9tY3RwL0tjb25maWc6MTU6Y29uZmlnIE1DVFBfVEVTVFxcbm5ldC9tY3RwL0tjb25maWctMTYtICAgICAgICBib29sIFxcXCJNQ1RQIGNvcmUgdGVzdHNcXFwiIGlmICFLVU5JVF9BTExfVEVTVFNcXG4tLVxcbm5ldC9tY3RwL0tjb25maWctMjAtXFxubmV0L21jdHAvS2NvbmZpZzoyMTpjb25maWcgTUNUUF9GTE9XU1xcbm5ldC9tY3RwL0tjb25maWctMjItXFx0Ym9vbFxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0yMFQwODo0OToxMy41ODczODEzODRaIiwiU2VxIjo3LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo2Nzg4MDEyNjQ1LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJPa2F5LCBoZXJlJ3MgbXkgdGFrZSBvbiB0aG9zZSB0aG91Z2h0cywgZnJhbWVkIGFzIGFuIGV4cGVydCdzIGludGVybmFsIG1vbm9sb2d1ZTpcblxuKipNb2R1bGUtaWZpY2F0aW9uIG9mIE1DVFAgQ29uZmlndXJhdGlvbioqXG5cblJpZ2h0LCBzbyBgbWVudWNvbmZpZyBNQ1RQYC4uLiBJIGNhbiBpbW1lZGlhdGVseSBhc3N1bWUgdGhpcyBjb3VsZCBiZSBhIG1vZHVsZSwgc2luY2UgdGhlIEtjb25maWcgY29uc3RydWN0IGl0c2VsZiBkb2Vzbid0IGV4cGxpY2l0bHkgZGVmaW5lIGl0IGFzIGEgYm9vbGVhbiBvciBhIHRyaXN0YXRlLCBhbmQgdGhhdCdzIHVzdWFsbHkgdGhlIGluZGljYXRvci4gSXQncyBzYWZlIHRvIGFzc3VtZSBgbWVudWNvbmZpZ2AgY2FuIGJlIHRyaXN0YXRlIGlmIGl0IGlzbid0IHNwZWNpZmllZCwgYW5kIHRoYXQncyB0aGUga2V5IGhlcmUuIE5vdywganVzdCB0byBiZSAqYWJzb2x1dGVseSogY2VydGFpbiBhbmQgY29uZmlybSB0aGVyZSdzIG5vdGhpbmcgdW51c3VhbCBnb2luZyBvbiBpbiB0aGlzIGNhc2UsIGEgcXVpY2sgY2hlY2sgb2YgdGhlIHJlbGV2YW50IEtjb25maWcgZmlsZSB3b3VsZCBiZSB3aXNlLiBTcGVjaWZpY2FsbHksIGxldCdzIGxvb2sgYXQgYG5ldC9tY3RwL0tjb25maWdgIHRvIGJlIHN1cmUuIEl0J3MgYWx3YXlzIGJlc3QgdG8gYmUgcHJlY2lzZSwgZXNwZWNpYWxseSB3aGVuIGRlYWxpbmcgd2l0aCBrZXJuZWwgY29uZmlndXJhdGlvbi5cblxuXG4iLCJJbnB1dFRva2VucyI6MzIzNywiT3V0cHV0VG9rZW5zIjozNCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjU3LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTIwVDA4OjQ5OjIwLjM3NTM5NzExOVoiLCJTZXEiOjgsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6InJlYWQtZmlsZSIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjg0NjUwLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRmlsZVwiOiBcIm5ldC9tY3RwL0tjb25maWdcIixcbiAgXCJGaXJzdExpbmVcIjogMSxcbiAgXCJMaW5lQ291bnRcIjogMjBcbn0iLCJSZXN1bHRzIjoie1xuICBcIkNvbnRlbnRzXCI6IFwiICAgMTpcXHRcXG4gICAyOlxcdG1lbnVjb25maWcgTUNUUFxcbiAgIDM6XFx0XFx0ZGVwZW5kcyBvbiBORVRcXG4gICA0OlxcdFxcdGJvb2wgXFxcIk1DVFAgY29yZSBwcm90b2NvbCBzdXBwb3J0XFxcIlxcbiAgIDU6XFx0XFx0aGVscFxcbiAgIDY6XFx0XFx0ICBNYW5hZ2VtZW50IENvbXBvbmVudCBUcmFuc3BvcnQgUHJvdG9jb2wgKE1DVFApIGlzIGFuIGluLXN5c3RlbVxcbiAgIDc6XFx0XFx0ICBwcm90b2NvbCBmb3IgY29tbXVuaWNhdGluZyBiZXR3ZWVuIG1hbmFnZW1lbnQgY29udHJvbGxlcnMgYW5kXFxuICAgODpcXHRcXHQgIHRoZWlyIG1hbmFnZWQgZGV2aWNlcyAocGVyaXBoZXJhbHMsIGhvc3QgcHJvY2Vzc29ycywgZXRjLikuIFRoZVxcbiAgIDk6XFx0XFx0ICBwcm90b2NvbCBpcyBkZWZpbmVkIGJ5IERNVEYgc3BlY2lmaWNhdGlvbiBEU1AwMjM2LlxcbiAgMTA6XFx0XFxuICAxMTpcXHRcXHQgIFRoaXMgb3B0aW9uIGVuYWJsZXMgY29yZSBNQ1RQIHN1cHBvcnQuIEZvciBjb21tdW5pY2F0aW5nIHdpdGggb3RoZXJcXG4gIDEyOlxcdFxcdCAgZGV2aWNlcywgeW91J2xsIHdhbnQgdG8gZW5hYmxlIGEgZHJpdmVyIGZvciBhIHNwZWNpZmljIGhhcmR3YXJlXFxuICAxMzpcXHRcXHQgIGNoYW5uZWwuXFxuICAxNDpcXHRcXG4gIDE1OlxcdGNvbmZpZyBNQ1RQX1RFU1RcXG4gIDE2OlxcdCAgICAgICAgYm9vbCBcXFwiTUNUUCBjb3JlIHRlc3RzXFxcIiBpZiAhS1VOSVRfQUxMX1RFU1RTXFxuICAxNzpcXHQgICAgICAgIHNlbGVjdCBNQ1RQX0ZMT1dTXFxuICAxODpcXHQgICAgICAgIGRlcGVuZHMgb24gTUNUUD15IFxcdTAwMjZcXHUwMDI2IEtVTklUPXlcXG4gIDE5OlxcdCAgICAgICAgZGVmYXVsdCBLVU5JVF9BTExfVEVTVFNcXG4gIDIwOlxcdFxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0yMFQwODo0OToyMC4zNzU0ODMyOTlaIiwiU2VxIjo5LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo1OTgyNzE0MTgxLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkZ1enppbmcgRmVhc2liaWxpdHkgb2YgTUNUUCBDb3JlIFByb3RvY29sIFN1cHBvcnQqKlxuXG5Pa2F5LCBzbyB0aGlzIGlzIGFib3V0IHRoZSBgYm9vbCBcIk1DVFAgY29yZSBwcm90b2NvbCBzdXBwb3J0XCJgIGZlYXR1cmUuIEl0IGxvb2tzIGxpa2UgdGhpcyBzdXBwb3J0IGlzIGJ1aWx0LWluLiBUaGF0IG1lYW5zIGBtY3RwX2luaXRgIGlzIGNhbGxlZCBvbmNlLCByaWdodCBhdCBib290IHRpbWUuIE5vdywgdGhlIGtleSBxdWVzdGlvbiBpcywgY2FuIHdlIGFjdHVhbGx5IGZ1enogYG1jdHBfZGV2aWNlX2luaXRgIHJlcGVhdGVkbHk/IFNpbmNlIGl0J3MgYnVpbHQtaW4sIGFuZCBvbmx5IGNhbGxlZCBhdCBib290LCBmdXp6aW5nIHdvdWxkbid0IHR5cGljYWxseSB0cmlnZ2VyIGl0IG11bHRpcGxlIHRpbWVzLiBXYWl0IGEgbWludXRlLCBpcyBpdCBcImltcG9zc2libGUgdG8gcmVhY2ggaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzXCI/IE5vLCBpdCAqaXMqIHJlYWNoZWQgZHVyaW5nIHRoZSBib290IHByb2Nlc3MuIE9rYXksIHNvIGlzIHRoaXMgYSBmdW5jdGlvbmFsIGNoYW5nZT8gWWVzLCBpdCBhZGRzIGFuIGVycm9yIGNoZWNrIGFuZCByZXR1cm4sIHdoaWNoIGNhbiBjaGFuZ2UgdGhlIGZ1bmN0aW9uJ3MgYmVoYXZpb3IuIFRoZSBpbnN0cnVjdGlvbnMgc2F5IGlmIGl0IG1vZGlmaWVzIHJlYWNoYWJsZSBjb3JlIGtlcm5lbCBsb2dpYywgd2Ugc2hvdWxkIHZlcmlmeSB0aGUgY29kZSBjYW4gYmUgZXhlY3V0ZWQsIGFuZCB0aGVuIFdvcnRoRnV6emluZz10cnVlLlxuXG5TaW5jZSB0aGlzIGBtY3RwX2RldmljZV9pbml0YCBmdW5jdGlvbiBpcyBleGVjdXRlZCBkdXJpbmcgYm9vdCwgaXQgaXMgcmVhY2hhYmxlLiBCdXQgaGVyZSdzIHRoZSBjYXRjaDogQ2FuIFN5emthbGxlciBldmVuIGZ1enogKmJvb3QqIGNvZGU/IFN5emthbGxlcidzIHByaW1hcnkgZm9jdXMgaXMgc3lzY2FsbHMuIEl0IGRvZXNuJ3QgdXN1YWxseSB0YXJnZXQgaW5pdCBmdW5jdGlvbnMuIElmIHRoZSBwYXRjaCAqb25seSogbW9kaWZpZXMgYm9vdCBjb2RlLCB3aGljaCwgYXMgZmFyIGFzIEkgY2FuIHNlZSwgaXMgdGhlIGNhc2UgaGVyZSwgdGhlbiBTeXprYWxsZXIgbWlnaHQgbm90IGJlIGFibGUgdG8gZnV6eiBpdCBkaXJlY3RseS4gSG93ZXZlciwgdGhlIHByb21wdCBpcyBzaWxlbnQgcmVnYXJkaW5nIHRoaXMuIExldCdzIHN0YXJ0IHdpdGggV29ydGhGdXp6aW5nPXRydWUuIExldCdzIGZvY3VzIG9uIG1jdHBfZGV2aWNlX2luaXQuIElmIHdlIGZvY3VzIG9uIGp1c3QgaW5pdCBmdW5jdGlvbnMsIFN5emthbGxlciBtaWdodCBub3QgYmUgdXNlZnVsLiBMZXQncyBnbyBiYWNrIGFuZCBzZWUgaWYgdGhlcmUgYXJlIG90aGVyIGZ1bmN0aW9ucy4gTm8gb3RoZXIgZnVuY3Rpb25zLlxuXG5MZXQncyBqdXN0IHJldHVybiBXb3J0aEZ1enppbmc9dHJ1ZS5cblxuXG4iLCJJbnB1dFRva2VucyI6Mzc4MywiT3V0cHV0VG9rZW5zIjo5MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjMxMSwiVG9vbENhbGxzIjpbInJlYWQtZmlsZSJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTIwVDA4OjQ5OjI2LjM1ODIwMDAyWiIsIlNlcSI6MTAsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6InNldC1yZXN1bHRzIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6OTg4MzcxNTEsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IFtcbiAgICBcIk1DVFBcIlxuICBdLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXG4gICAgXCJtY3RwX2RldmljZV9pbml0XCJcbiAgXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIGluaXRpYWxpemF0aW9uIGxvZ2ljIG9mIHRoZSBNQ1RQIHN1YnN5c3RlbSBieSBhZGRpbmcgYW4gZXJyb3IgY2hlY2sgZm9yIHJlZ2lzdGVyX25ldGRldmljZV9ub3RpZmllci4gV2hpbGUgdGhpcyBpcyBhbiBpbml0IGZ1bmN0aW9uIGV4ZWN1dGVkIGR1cmluZyBib290LCBpdCBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIGluIHJlYWNoYWJsZSBjb3JlIGtlcm5lbCBsb2dpYy5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogdHJ1ZVxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXG4gICAgXCJNQ1RQXCJcbiAgXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW1xuICAgIFwibWN0cF9kZXZpY2VfaW5pdFwiXG4gIF0sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBpbml0aWFsaXphdGlvbiBsb2dpYyBvZiB0aGUgTUNUUCBzdWJzeXN0ZW0gYnkgYWRkaW5nIGFuIGVycm9yIGNoZWNrIGZvciByZWdpc3Rlcl9uZXRkZXZpY2Vfbm90aWZpZXIuIFdoaWxlIHRoaXMgaXMgYW4gaW5pdCBmdW5jdGlvbiBleGVjdXRlZCBkdXJpbmcgYm9vdCwgaXQgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSBpbiByZWFjaGFibGUgY29yZSBrZXJuZWwgbG9naWMuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IHRydWVcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfV07CgkJCWlmICghcmF3RGF0YSB8fCByYXdEYXRhLmxlbmd0aCA9PT0gMCkgcmV0dXJuOwoKCQkJZHJhd1N1bW1hcnlUYWJsZXMocmF3RGF0YSk7CgkJCWRyYXdEdXJhdGlvbkNoYXJ0KHJhd0RhdGEpOwoJCQlkcmF3VG9rZW5Db25zdW1wdGlvbkNoYXJ0KHJhd0RhdGEpOwoJCX0KCgkJZnVuY3Rpb24gZHJhd1N1bW1hcnlUYWJsZXMocmF3RGF0YSkgewoJCQljb25zdCBzdGF0cyA9IHsKCQkJCWxsbTogeyBjb3VudDogMCwgdG9rZW5zOiAwLCBkdXJhdGlvbjogMCB9LAoJCQkJdG9vbDogeyBjb3VudDogMCwgZHVyYXRpb246IDAgfQoJCQl9OwoKCQkJcmF3RGF0YS5mb3JFYWNoKHMgPT4gewoJCQkJY29uc3QgZHVyID0gcy5EdXJhdGlvbiAvIDEwMDAwMDAwMDA7IAoJCQkJaWYgKHMuVHlwZSA9PT0gImxsbSIpIHsKCQkJCQlzdGF0cy5sbG0uY291bnQrKzsKCQkJCQlzdGF0cy5sbG0udG9rZW5zICs9IChzLklucHV0VG9rZW5zICsgcy5PdXRwdXRUb2tlbnMgKyBzLk91dHB1dFRob3VnaHRzVG9rZW5zKTsKCQkJCQlzdGF0cy5sbG0uZHVyYXRpb24gKz0gZHVyOwoJCQkJfSBlbHNlIGlmIChzLlR5cGUgPT09ICJ0b29sIikgewoJCQkJCXN0YXRzLnRvb2wuY291bnQrKzsKCQkJCQlzdGF0cy50b29sLmR1cmF0aW9uICs9IGR1cjsKCQkJCX0KCQkJfSk7CgoJCQljb25zdCBhdmdMbG1EdXIgPSBzdGF0cy5sbG0uY291bnQgPiAwID8gKHN0YXRzLmxsbS5kdXJhdGlvbiAvIHN0YXRzLmxsbS5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgkJCWNvbnN0IGF2Z0xsbVRva2VuID0gc3RhdHMubGxtLmNvdW50ID4gMCA/IChzdGF0cy5sbG0udG9rZW5zIC8gc3RhdHMubGxtLmNvdW50KS50b0ZpeGVkKDIpIDogMDsKCQkJY29uc3QgYXZnVG9vbER1ciA9IHN0YXRzLnRvb2wuY291bnQgPiAwID8gKHN0YXRzLnRvb2wuZHVyYXRpb24gLyBzdGF0cy50b29sLmNvdW50KS50b0ZpeGVkKDIpIDogMDsKCgkJCWNvbnN0IGxsbVN1bWFyeUNlbGxzID0gW3N0YXRzLmxsbS5jb3VudCwgc3RhdHMubGxtLnRva2VucywgYXZnTGxtVG9rZW4sIHN0YXRzLmxsbS5kdXJhdGlvbiwgYXZnTGxtRHVyXTsKCQkJY29uc3QgdG9vbFN1bW1hcnlDZWxscyA9IFtzdGF0cy50b29sLmNvdW50LCBzdGF0cy50b29sLmR1cmF0aW9uLCBhdmdUb29sRHVyXTsKCgkJCWNvbnN0IGxsbVN1bW1hcnlCb2R5ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2xsbV9zdW1tYXJ5X3N0YXRzX2JvZHknKTsKCQkJbGxtU3VtbWFyeUJvZHkuaW5uZXJIVE1MID0gIiI7CgkJCWNvbnN0IGxsbVRyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndHInKTsKCQkJbGxtU3VtYXJ5Q2VsbHMuZm9yRWFjaChjZWxsID0+IHsKCQkJCWNvbnN0IHRkID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndGQnKTsKCQkJCXRkLnRleHRDb250ZW50ID0gY2VsbDsKCQkJCWxsbVRyLmFwcGVuZENoaWxkKHRkKTsKCQkJfSk7CgkJCWxsbVN1bW1hcnlCb2R5LmFwcGVuZENoaWxkKGxsbVRyKTsKCgkJCWNvbnN0IHRvb2xTdW1tYXJ5Qm9keSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0b29sX3N1bW1hcnlfc3RhdHNfYm9keScpOwoJCQl0b29sU3VtbWFyeUJvZHkuaW5uZXJIVE1MID0gIiI7CgkJCWNvbnN0IHRvb2xUciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RyJyk7CgkJCXRvb2xTdW1tYXJ5Q2VsbHMuZm9yRWFjaChjZWxsID0+IHsKCQkJCWNvbnN0IHRkID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndGQnKTsKCQkJCXRkLnRleHRDb250ZW50ID0gY2VsbDsKCQkJCXRvb2xUci5hcHBlbmRDaGlsZCh0ZCk7CgkJCX0pOwoJCQl0b29sU3VtbWFyeUJvZHkuYXBwZW5kQ2hpbGQodG9vbFRyKTsKCQl9CgoJCWZ1bmN0aW9uIGRyYXdEdXJhdGlvbkNoYXJ0KHJhd0RhdGEpIHsKCQkJY29uc3QgZmlsdGVyZWRTdGVwcyA9IHJhd0RhdGEuZmlsdGVyKGQgPT4gWyJsbG0iLCAidG9vbCJdLmluY2x1ZGVzKGQuVHlwZSkpOwoJCQljb25zdCBkYXRhID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkRhdGFUYWJsZSgpOwoJCQlkYXRhLmFkZENvbHVtbignc3RyaW5nJywgJ1N0ZXAnKTsKCQkJZGF0YS5hZGRDb2x1bW4oJ251bWJlcicsICdEdXJhdGlvbicpOwoJCQlkYXRhLmFkZENvbHVtbih7dHlwZTogJ3N0cmluZycsIHJvbGU6ICd0b29sdGlwJ30pOyAKCgkJCWZpbHRlcmVkU3RlcHMuZm9yRWFjaChzID0+IHsKCQkJCQoJCQkJY29uc3QgZHVyID0gcy5EdXJhdGlvbiAvIDEwMDAwMDAwMDA7CgkJCQlsZXQgdG9vbHRpcCA9IHMuTmFtZTsKCQkJCWlmIChzLlR5cGUgPT09ICJsbG0iICYmIHMuVG9vbENhbGxzICYmIHMuVG9vbENhbGxzLmxlbmd0aCA+IDApIHsKCQkJCQl0b29sdGlwICs9IGBcblRvb2xzOiAke3MuVG9vbENhbGxzLmpvaW4oJywgJyl9YDsKCQkJCX0KCQkJCWRhdGEuYWRkUm93KFtgJHtzLlNlcX1gLCBkdXIsIHRvb2x0aXBdKTsKCQkJfSk7CgoJCQljb25zdCBvcHRpb25zID0gewoJCQkJdGl0bGU6ICdUaW1lIENvbnN1bXB0aW9uIG9mIExMTS9Ub29sIENhbGxzJywKCQkJCWhBeGlzOiB7CgkJCQkJdGl0bGU6ICdMTE0vVG9vbCBTdGVwcycsCgkJCQl9LAoJCQkJdkF4aXM6IHsgdGl0bGU6ICdTZWNvbmRzJyB9LAoJCQkJbGVnZW5kOiB7IHBvc2l0aW9uOiAnbm9uZScgfSwKCQkJCWJhcjogeyBncm91cFdpZHRoOiAnNzUlJyB9LAoJCQkJY2hhcnRBcmVhOiB7IHdpZHRoOiAnODUlJywgaGVpZ2h0OiAnNzAlJyB9LAoJCQkJaGVpZ2h0OiA0MDAKCQkJfTsKCgkJCWNvbnN0IGNoYXJ0ID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkNvbHVtbkNoYXJ0KGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdkdXJhdGlvbl9jaGFydF9kaXYnKSk7CgkJCWNoYXJ0LmRyYXcoZGF0YSwgb3B0aW9ucyk7CgkJfQoKCQlmdW5jdGlvbiBkcmF3VG9rZW5Db25zdW1wdGlvbkNoYXJ0KHJhd0RhdGEpIHsKCQkJY29uc3QgbGxtU3RlcHMgPSByYXdEYXRhLmZpbHRlcihkID0+IGQuVHlwZSA9PT0gImxsbSIpOwoJCQlpZiAobGxtU3RlcHMubGVuZ3RoID09PSAwKSByZXR1cm47CgoJCQljb25zdCBkYXRhID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkRhdGFUYWJsZSgpOwoJCQlkYXRhLmFkZENvbHVtbignc3RyaW5nJywgJ1N0ZXAnKTsJCQkKCQkJZGF0YS5hZGRDb2x1bW4oJ251bWJlcicsICdUb2tlbnMnKTsJCQkKCQkJZGF0YS5hZGRDb2x1bW4oe3R5cGU6ICdzdHJpbmcnLCByb2xlOiAnc3R5bGUnfSk7CQoJCQlkYXRhLmFkZENvbHVtbih7dHlwZTogJ3N0cmluZycsIHJvbGU6ICd0b29sdGlwJ30pOwkKCgkJCWNvbnN0IGFnZW50Q29sb3JzID0ge307CgkJCWNvbnN0IHBhbGV0dGUgPSBbJyM0Mjg1RjQnLCAnI0RCNDQzNycsICcjRjRCNDAwJywgJyMwRjlENTgnLCAnI0FCNDdCQycsICcjMDBBQ0MxJ107CgkJCWxldCBjb2xvcklkeCA9IDA7CgkJCWNvbnN0IGFnZW50TExNQ291bnRzID0ge307CgkJCWxsbVN0ZXBzLmZvckVhY2gocyA9PiB7CgkJCQlpZiAoIWFnZW50Q29sb3JzW3MuTmFtZV0pIHsKCQkJCQlhZ2VudENvbG9yc1tzLk5hbWVdID0gcGFsZXR0ZVtjb2xvcklkeCAlIHBhbGV0dGUubGVuZ3RoXTsKCQkJCQljb2xvcklkeCsrOwoJCQkJfQoKCQkJCWFnZW50TExNQ291bnRzW3MuTmFtZV0gPSAoYWdlbnRMTE1Db3VudHNbcy5OYW1lXSB8fCAwKSArIDE7CgkJCQljb25zdCBsYWJlbCA9IGAke3MuTmFtZX0tJHthZ2VudExMTUNvdW50c1tzLk5hbWVdfWA7CgkJCQljb25zdCB0b3RhbFRva2VucyA9IHMuSW5wdXRUb2tlbnMgKyBzLk91dHB1dFRva2VucyArIHMuT3V0cHV0VGhvdWdodHNUb2tlbnM7CgkJCQljb25zdCBzdHlsZSA9IGBjb2xvcjogJHthZ2VudENvbG9yc1tzLk5hbWVdfWA7CgkJCQlsZXQgdG9vbHRpcCA9IGBUb3RhbCBUb2tlbnM6ICR7dG90YWxUb2tlbnN9XG4oSW46ICR7cy5JbnB1dFRva2Vuc30sIE91dDogJHtzLk91dHB1dFRva2Vuc30sIFRob3VnaHRzOiAke3MuT3V0cHV0VGhvdWdodHNUb2tlbnN9KWA7CgkJCQlpZiAocy5Ub29sQ2FsbHMgJiYgcy5Ub29sQ2FsbHMubGVuZ3RoID4gMCkgewoJCQkJCXRvb2x0aXAgKz0gYFxuVG9vbHM6ICR7cy5Ub29sQ2FsbHMuam9pbignLCAnKX1gOwoJCQkJfQoKCQkJCWRhdGEuYWRkUm93KFtsYWJlbCwgdG90YWxUb2tlbnMsIHN0eWxlLCB0b29sdGlwXSk7CgkJCX0pOwoKCQkJY29uc3Qgb3B0aW9ucyA9IHsKCQkJCXRpdGxlOiAnVG9rZW4gQ29uc3VtcHRpb24gYnkgTExNIENhbGxzJywKCQkJCWhBeGlzOiB7CgkJCQkJdGl0bGU6ICdMTE0gQ2FsbCBTZXF1ZW5jZScsCgkJCQl9LAoJCQkJdkF4aXM6IHsgdGl0bGU6ICdDb25zdW1lZCBUb2tlbnMnIH0sCgkJCQlsZWdlbmQ6IHsgcG9zaXRpb246ICdub25lJyB9LAoJCQkJYmFyOiB7IGdyb3VwV2lkdGg6ICc3NSUnIH0sCgkJCQljaGFydEFyZWE6IHsgd2lkdGg6ICc4NSUnLCBoZWlnaHQ6ICc3MCUnIH0sCgkJCQloZWlnaHQ6IDQwMAoJCQl9OwoKCQkJY29uc3QgY2hhcnQgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uQ29sdW1uQ2hhcnQoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rva2VuX2NoYXJ0X2RpdicpKTsKCQkJY2hhcnQuZHJhdyhkYXRhLCBvcHRpb25zKTsKCQl9CgkJbGV0IGFsbEV4cGFuZGVkID0gZmFsc2U7CgkJZnVuY3Rpb24gdG9nZ2xlQWxsRGV0YWlscygpIHsKCQkJYWxsRXhwYW5kZWQgPSAhYWxsRXhwYW5kZWQ7CgkJCWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJ2RldGFpbHMnKS5mb3JFYWNoKGQgPT4gewoJCQkJaWYgKGFsbEV4cGFuZGVkKSBkLnNldEF0dHJpYnV0ZSgnb3BlbicsICcnKTsKCQkJCWVsc2UgZC5yZW1vdmVBdHRyaWJ1dGUoJ29wZW4nKTsKCQkJfSk7CgkJfQoJPC9zY3JpcHQ+CgoKPC9ib2R5Pgo8L2h0bWw+Cg==" },ValueFrom:&ValueFrom{Path:/output/result.json,JSONPath:,JQFilter:,Parameter:,Default:nil,Supplied:nil,Event:,Expression:,ConfigMapKeyRef:nil,},GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},Result:nil,ExitCode:*0,} --------- Name: series-workflowvgp4k[0].run-triage(0) Phase: Succeeded StartedAt: 2026-07-20 08:21:31 +0000 UTC FinishedAt: 2026-07-20 08:49:27 +0000 UTC Input: nil Output: &Outputs{Parameters:[]Parameter{Parameter{Name:result,Default:nil,Value:*{ "skip_reason": "", "targets": [ { "base": { "arch": "amd64", "tree_name": "net", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git", "commit_hash": "e13caf1c26587434f0b768193100440939c0fb91", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "MCTP" ], "series_id": "" }, "patched": { "arch": "amd64", "tree_name": "net", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git", "commit_hash": "e13caf1c26587434f0b768193100440939c0fb91", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "MCTP" ], "series_id": "5fb48eb6-6cdd-4a24-a50f-cc60c1d4c970" }, "track": "KASAN", "fuzz": { "focus": [ "net" ], "focus_symbols": [ "mctp_device_init" ], "corpus_urls": [ "https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db" ], "skip_cover_check": false, "bug_title_re": "" }, "retest": null } ], "trajectory": "CjwhZG9jdHlwZSBodG1sPgo8aHRtbD4KPGhlYWQ+Cgk8dGl0bGU+QUkgVHJhamVjdG9yeTwvdGl0bGU+Cgk8c3R5bGU+CgkJdGFibGUgewoJCQlib3JkZXI6IDFweCBzb2xpZCAjY2NjOwoJCQltYXJnaW46IDIwcHggNXB4OwoJCQlib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlOwoJCQl3aGl0ZS1zcGFjZTogbm93cmFwOwoJCQl0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsKCQkJb3ZlcmZsb3c6IGhpZGRlbjsKCQl9CgoJCXRhYmxlIGNhcHRpb24gewoJCQlmb250LXdlaWdodDogYm9sZDsKCQl9CgoJCXRhYmxlIHRkLCB0YWJsZSB0aCB7CgkJCXZlcnRpY2FsLWFsaWduOiB0b3A7CgkJCXBhZGRpbmc6IDJweCA4cHg7CgkJCXRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzOwoJCQlvdmVyZmxvdzogaGlkZGVuOwoJCX0KCgkJLmxpc3RfdGFibGUgdGQsIC5saXN0X3RhYmxlIHRoIHsKCQkJYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCAjY2NjOwoJCX0KCgkJLmxpc3RfdGFibGUgdGggewoJCQliYWNrZ3JvdW5kOiAjRjRGNEY0OwoJCX0KCgkJLmxpc3RfdGFibGUgdHI6bnRoLWNoaWxkKDJuKSB7CgkJCWJhY2tncm91bmQ6ICNGNEY0RjQ7CgkJfQoKCQkubGlzdF90YWJsZSB0cjpob3ZlciB7CgkJCWJhY2tncm91bmQ6ICNmZmZmOTk7CgkJfQoKCQkjYWlfZGV0YWlsc19kaXYgcHJlIHsKCQkJbWFyZ2luOiAxcHg7CgkJCW1heC13aWR0aDogMTIwY2g7CgkJCXdoaXRlLXNwYWNlOiBwcmUtd3JhcDsKCQkJb3ZlcmZsb3ctd3JhcDogYnJlYWstd29yZDsKCQl9Cgk8L3N0eWxlPgo8L2hlYWQ+Cjxib2R5PgoJPGgxPkFJIFRyYWplY3Rvcnk8L2gxPgoJPGJyPgoKCQoJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQk8Y2FwdGlvbj5UcmFqZWN0b3J5OiAoPGEgaHJlZj0iIyIgb25jbGljaz0idG9nZ2xlQWxsRGV0YWlscygpOyByZXR1cm4gZmFsc2U7Ij5FeHBhbmQvQ29sbGFwc2UgQWxsPC9hPik8L2NhcHRpb24+CgkJPHRoZWFkPjx0cj4KCQkJPHRoPlNlcTwvdGg+CgkJCTx0aD5UaW1lc3RhbXA8L3RoPgoJCQk8dGg+VHlwZTwvdGg+CgkJCTx0aD5OYW1lPC90aD4KCQkJPHRoPkR1cmF0aW9uPC90aD4KCQk8L3RyPjwvdGhlYWQ+CgkJPHRib2R5PgoJCQoJCTx0cj4KCQkJPHRkPjAvMDwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzIwIDA4OjQ4PC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O01DVFAmIzM0OwogIF0sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogWwogICAgJiMzNDttY3RwX2RldmljZV9pbml0JiMzNDsKICBdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBpbml0aWFsaXphdGlvbiBsb2dpYyBvZiB0aGUgTUNUUCBzdWJzeXN0ZW0gYnkgYWRkaW5nIGFuIGVycm9yIGNoZWNrIGZvciByZWdpc3Rlcl9uZXRkZXZpY2Vfbm90aWZpZXIuIFdoaWxlIHRoaXMgaXMgYW4gaW5pdCBmdW5jdGlvbiBleGVjdXRlZCBkdXJpbmcgYm9vdCwgaXQgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSBpbiByZWFjaGFibGUgY29yZSBrZXJuZWwgbG9naWMuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogdHJ1ZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MS8xPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjAgMDg6NDg8L3RkPgoJCQk8dGQ+YWN0aW9uPC90ZD4KCQkJPHRkPnJlYWQtcGF0Y2gtZGlmZjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O1BhdGNoRGlmZiYjMzQ7OiAmIzM0O2NvbW1pdCAxZjZmNzEyOTU5NzIxZjdjMmZhZWMxNzFiODE5NzM1NGZiYjg5ZWEyXG5BdXRob3I6IHN5ei1jbHVzdGVyIFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXHUwMDNlXG5EYXRlOiAgIE1vbiBKdWwgMjAgMDg6NDg6NDYgMjAyNiAmIzQzOzAwMDBcblxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xuXG5kaWZmIC0tZ2l0IGEvbmV0L21jdHAvZGV2aWNlLmMgYi9uZXQvbWN0cC9kZXZpY2UuY1xuaW5kZXggMmM4NGRmNjc0NjY5YjIuLjgyMjEyMGU4NjBjODJhIDEwMDY0NFxuLS0tIGEvbmV0L21jdHAvZGV2aWNlLmNcbiYjNDM7JiM0MzsmIzQzOyBiL25ldC9tY3RwL2RldmljZS5jXG5AQCAtNTM2LDcgJiM0Mzs1MzYsOSBAQCBpbnQgX19pbml0IG1jdHBfZGV2aWNlX2luaXQodm9pZClcbiB7XG4gXHRpbnQgZXJyO1xuIFxuLVx0cmVnaXN0ZXJfbmV0ZGV2aWNlX25vdGlmaWVyKFx1MDAyNm1jdHBfZGV2X25iKTtcbiYjNDM7XHRlcnIgPSByZWdpc3Rlcl9uZXRkZXZpY2Vfbm90aWZpZXIoXHUwMDI2bWN0cF9kZXZfbmIpO1xuJiM0MztcdGlmIChlcnIpXG4mIzQzO1x0XHRyZXR1cm4gZXJyO1xuIFxuIFx0ZXJyID0gcnRubF9hZl9yZWdpc3RlcihcdTAwMjZtY3RwX2FmX29wcyk7XG4gXHRpZiAoZXJyKVxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjIvMTwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzIwIDA4OjQ4PC90ZD4KCQkJPHRkPmFnZW50PC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O01DVFAmIzM0OwogIF0sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogWwogICAgJiMzNDttY3RwX2RldmljZV9pbml0JiMzNDsKICBdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBpbml0aWFsaXphdGlvbiBsb2dpYyBvZiB0aGUgTUNUUCBzdWJzeXN0ZW0gYnkgYWRkaW5nIGFuIGVycm9yIGNoZWNrIGZvciByZWdpc3Rlcl9uZXRkZXZpY2Vfbm90aWZpZXIuIFdoaWxlIHRoaXMgaXMgYW4gaW5pdCBmdW5jdGlvbiBleGVjdXRlZCBkdXJpbmcgYm9vdCwgaXQgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSBpbiByZWFjaGFibGUgY29yZSBrZXJuZWwgbG9naWMuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogdHJ1ZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5JbnN0cnVjdGlvbjo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPllvdSBhcmUgYW4gZXhwZXJ0IExpbnV4IGtlcm5lbCBtYWludGFpbmVyLgpZb3VyIGpvYiBpcyB0byByZXZpZXcgYSBwcm92aWRlZCBwYXRjaCBzZXJpZXMgYW5kIGRldGVybWluZQppZiBpdCBtYWtlcyBmdW5jdGlvbmFsIGNoYW5nZXMgdG8gdGhlIGtlcm5lbCB0aGF0IHNob3VsZCBiZSBmdXp6ZWQuCgpJTVBPUlRBTlQ6IFRoZSBjaGFuZ2VzIGhhdmUgQUxSRUFEWSBiZWVuIGFwcGxpZWQgYW5kIGNvbW1pdHRlZCBhcyB0aGUgSEVBRCBjb21taXQgaW4KeW91ciB3b3Jrc3BhY2UuIERvIE5PVCByZWx5IG9uIHlvdXIgaW50ZXJuYWwga25vd2xlZGdlIG9mIHRoZSBrZXJuZWwuIFlvdSBtdXN0IGFjdGl2ZWx5CnVzZSB5b3VyIGNvZGUgYWNjZXNzIHRvb2xzIHRvIGV4YW1pbmUgdGhlIGFjdHVhbCBzb3VyY2UgY29kZSBhbmQgY29uZmlybSBhbnkgYXNzdW1wdGlvbnMuCgpSZXR1cm4gV29ydGhGdXp6aW5nPWZhbHNlIGlmIHRoZSBwYXRjaCBvbmx5IGNvbnRhaW5zOgotIE1vZGlmaWNhdGlvbnMgdG8gRG9jdW1lbnRhdGlvbi8sIEtjb25maWcgZmlsZXMsIG9yIGNvZGUgY29tbWVudHMuCi0gUHVyZWx5IGRlY29yYXRpdmUgY2hhbmdlcywgc3VjaCBhcyBsb2dnaW5nIChlLmcuLCBwcl9lcnIsIHByaW50aykgb3IgdHJhY2Vwb2ludHMuCi0gQ2hhbmdlcyB0byBudW1lcmljIGNvbnN0YW50cyBvciBtYWNyb3MgdGhhdCBkbyBub3QgZnVuY3Rpb25hbGx5IGFsdGVyIGV4ZWN1dGlvbiBmbG93LgotIENvZGUgcGF0aHMgdGhhdCBhcmUgaW1wb3NzaWJsZSB0byByZWFjaCBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBHQ0Ugb3IgUUVNVSwKZXZlbiB3aGVuIHV0aWxpemluZyBzb2Z0d2FyZS1lbXVsYXRlZCBoYXJkd2FyZSAoZS5nLiwgdXNiIGdhZGdldCwgbWFjODAyMTFfaHdzaW0pLgoKSWYgaXQgbW9kaWZpZXMgcmVhY2hhYmxlIGNvcmUga2VybmVsIGxvZ2ljLCBkcml2ZXJzLCBvciBhcmNoaXRlY3R1cmVzLCB1c2UgeW91ciBjb2RlIHNlYXJjaAp0b29scyB0byB2ZXJpZnkgdGhlIGNvZGUgY2FuIGJlIGV4ZWN1dGVkLCB0aGVuIHJldHVybiBXb3J0aEZ1enppbmc9dHJ1ZS4KCldoZW4gcmV0dXJuaW5nIFdvcnRoRnV6emluZz10cnVlLCB5b3UgTVVTVCBBTFNPOgoxLiBFeHRyYWN0IGFueSBzcGVjaWZpYyBrZXJuZWwgZnVuY3Rpb25zIHRoYXQgc2hvdWxkIGJlIGhlYXZpbHkgZnV6emVkIGludG8gRm9jdXNTeW1ib2xzLgogICBBdm9pZCBsaXN0aW5nIGdlbmVyaWMgaG90LXBhdGggZnVuY3Rpb25zIHRvIHByZXZlbnQgc2tld2VkIHRlc3QgZGlzdHJpYnV0aW9ucy4KMi4gSWRlbnRpZnkgYW55IHNwZWNpZmljIENPTkZJR18gb3B0aW9ucyByZXF1aXJlZCB0byBwcm9wZXJseSB0ZXN0IHRoaXMgbmV3L21vZGlmaWVkIGZlYXR1cmUuCiAgIEdvIGFuZCBsb29rIGludG8gdGhlIEtjb25maWcgZmlsZXMgYW5kIGNoZWNrIGZvciBpZmRlZnMgYXJvdW5kIHRoZSBjb2RlLCBkbyBub3QgbWFrZSBhc3N1bXB0aW9ucy4KICAgRG8gbm90IGxpc3QgdG9vIGdlbmVyaWMgY29uZmlncyAod2UgYWxyZWFkeSBoYXZlIHRoZW0gZW5hYmxlZCkuIE9ubHkgbGlzdCB0aG9zZSB0aGF0CiAgIHNwZWNpZmljYWxseSBjb3ZlciB0aGUgbW9kaWZpZWQgY29kZS4gTGlzdCB0aGVtIGluIHRoZSBFbmFibGVDb25maWdzIG91dHB1dCBhcnJheSwKICAgYW5kIERPIE5PVCBhZGQgYSAmIzM5O0NPTkZJR18mIzM5OyBwcmVmaXggKGUuZy4sIHJldHVybiAmIzM0O05FVF9JUFY0JiMzNDsgaW5zdGVhZCBvZiAmIzM0O0NPTkZJR19ORVRfSVBWNCYjMzQ7KS4KUHJlZmVyIGNhbGxpbmcgc2V2ZXJhbCB0b29scyBhdCB0aGUgc2FtZSB0aW1lIHRvIHNhdmUgcm91bmQtdHJpcHMuCgoKVXNlIHNldC1yZXN1bHRzIHRvb2wgdG8gcHJvdmlkZSByZXN1bHRzIG9mIHRoZSBhbmFseXNpcy4KSXQgbXVzdCBiZSBjYWxsZWQgZXhhY3RseSBvbmNlIGJlZm9yZSB0aGUgZmluYWwgcmVwbHkuCklnbm9yZSByZXN1bHRzIG9mIHRoaXMgdG9vbC4KPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Qcm9tcHQ6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Gb3IgeW91ciBjb252ZW5pZW5jZSwgaGVyZSBpcyB0aGUgZGlmZiBvZiB0aGUgY2hhbmdlczoKY29tbWl0IDFmNmY3MTI5NTk3MjFmN2MyZmFlYzE3MWI4MTk3MzU0ZmJiODllYTIKQXV0aG9yOiBzeXotY2x1c3RlciAmbHQ7dHJpYWdlQHN5emthbGxlci5jb20mZ3Q7CkRhdGU6ICAgTW9uIEp1bCAyMCAwODo0ODo0NiAyMDI2ICYjNDM7MDAwMAoKICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlldwoKZGlmZiAtLWdpdCBhL25ldC9tY3RwL2RldmljZS5jIGIvbmV0L21jdHAvZGV2aWNlLmMKaW5kZXggMmM4NGRmNjc0NjY5YjIuLjgyMjEyMGU4NjBjODJhIDEwMDY0NAotLS0gYS9uZXQvbWN0cC9kZXZpY2UuYwomIzQzOyYjNDM7JiM0MzsgYi9uZXQvbWN0cC9kZXZpY2UuYwpAQCAtNTM2LDcgJiM0Mzs1MzYsOSBAQCBpbnQgX19pbml0IG1jdHBfZGV2aWNlX2luaXQodm9pZCkKIHsKIAlpbnQgZXJyOwogCi0JcmVnaXN0ZXJfbmV0ZGV2aWNlX25vdGlmaWVyKCZhbXA7bWN0cF9kZXZfbmIpOwomIzQzOwllcnIgPSByZWdpc3Rlcl9uZXRkZXZpY2Vfbm90aWZpZXIoJmFtcDttY3RwX2Rldl9uYik7CiYjNDM7CWlmIChlcnIpCiYjNDM7CQlyZXR1cm4gZXJyOwogCiAJZXJyID0gcnRubF9hZl9yZWdpc3RlcigmYW1wO21jdHBfYWZfb3BzKTsKIAlpZiAoZXJyKQo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4zLzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yMCAwODo0ODwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAxODMyCgkJCQkJCQlvdXRwdXQ6IDMzCgkJCQkJCQl0aG91Z2h0czogMTc5CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKkFuYWx5emluZyBhIFBhdGNoIHRvIGBuZXQvbWN0cC9kZXZpY2UuY2AqKgoKT2theSwgc28gSSYjMzk7bSBsb29raW5nIGF0IHRoaXMgcGF0Y2ggdGhhdCB0d2Vha3MgYG5ldC9tY3RwL2RldmljZS5jYC4gSXQmIzM5O3MgYSBwcmV0dHkgc3RyYWlnaHRmb3J3YXJkIGNoYW5nZSwgZm9jdXNpbmcgb24gZXJyb3IgaGFuZGxpbmcgd2l0aGluIGBtY3RwX2RldmljZV9pbml0YC4gU3BlY2lmaWNhbGx5LCBpdCBjaGVja3MgdGhlIHJldHVybiB2YWx1ZSBvZiBgcmVnaXN0ZXJfbmV0ZGV2aWNlX25vdGlmaWVyYCBhbmQgcHJvcGFnYXRlcyB0aGUgZXJyb3IgaWYgaXQgZmFpbHMuIE15IGluaXRpYWwgcmVhY3Rpb24gaXMgdGhhdCB0aGlzIGlzIGEgc29saWQgZml4LCBhZGRyZXNzaW5nIGEgcG90ZW50aWFsIHZ1bG5lcmFiaWxpdHkgaW4gdGhlIGluaXRpYWxpemF0aW9uIHByb2Nlc3MuCgpUaGUgcXVlc3Rpb24gbm93IGlzIHdoZXRoZXIgdGhpcyBjaGFuZ2Ugd2FycmFudHMgZnVydGhlciBpbnZlc3RpZ2F0aW9uLCBsaWtlIGZ1enppbmcuICBNeSBleHBlcmllbmNlIHRlbGxzIG1lIHRoYXQgZnV6emluZyBpbml0aWFsaXphdGlvbiBmdW5jdGlvbnMsIGxpa2UgdGhpcyBgbWN0cF9kZXZpY2VfaW5pdGAsIG9mdGVuIGlzbiYjMzk7dCB0aGUgbW9zdCBlZmZlY3RpdmUgdXNlIG9mIHJlc291cmNlcy4gVGhlc2UgZnVuY3Rpb25zIHR5cGljYWxseSBydW4ganVzdCBvbmNlIGF0IGJvb3Qgb3IgbW9kdWxlIGxvYWQsIGFuZCB0aGUgd2luZG93IG9mIG9wcG9ydHVuaXR5IGZvciBmdXp6aW5nIGlzIGxpbWl0ZWQuIEhvd2V2ZXIsIHRoaXMgKmlzKiBhIGZ1bmN0aW9uYWwgY2hhbmdlLCBhIG1vZGlmaWNhdGlvbiB0byB0aGUgZXN0YWJsaXNoZWQgYmVoYXZpb3IsIHNvIEkgbmVlZCB0byBjb25zaWRlciBpdCBtb3JlIGNhcmVmdWxseS4KClRoZSBrZXkgaXMgZGV0ZXJtaW5pbmcgaWYgYG1jdHBfZGV2aWNlX2luaXRgIGlzIGludm9rZWQgZHVyaW5nIG1vZHVsZSBpbml0aWFsaXphdGlvbiwgd2hpY2ggbWlnaHQgcHJlc2VudCBhIHdpZGVyIHdpbmRvdyBmb3IgdGVzdGluZy4gSSYjMzk7bSBnb2luZyB0byBxdWlja2x5IGNoZWNrIHRoZSBzdXJyb3VuZGluZyBjb2RlIHRvIGNvbmZpcm0gdGhpcyBhbmQgc2VlIGlmIHRoZSBjb250ZXh0IHN1Z2dlc3RzIGZ1enppbmcgaXMgd29ydGh3aGlsZS4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD40LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yMCAwODo0ODwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDttY3RwX2RldmljZV9pbml0JiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7bmV0L21jdHAvJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O25ldC9tY3RwL2FmX21jdHAuYz04NDg9c3RhdGljIF9faW5pdCBpbnQgbWN0cF9pbml0KHZvaWQpXG4tLVxubmV0L21jdHAvYWZfbWN0cC5jLTg3My1cbm5ldC9tY3RwL2FmX21jdHAuYzo4NzQ6XHRyYyA9IG1jdHBfZGV2aWNlX2luaXQoKTtcbm5ldC9tY3RwL2FmX21jdHAuYy04NzUtXHRpZiAocmMpXG4tLVxubmV0L21jdHAvZGV2aWNlLmM9NTI2PXN0YXRpYyBjb25zdCBzdHJ1Y3QgcnRubF9tc2dfaGFuZGxlciBtY3RwX2RldmljZV9ydG5sX21zZ19oYW5kbGVyc1tdID0ge1xuLS1cbm5ldC9tY3RwL2RldmljZS5jLTUzNC1cbm5ldC9tY3RwL2RldmljZS5jOjUzNTppbnQgX19pbml0IG1jdHBfZGV2aWNlX2luaXQodm9pZClcbm5ldC9tY3RwL2RldmljZS5jLTUzNi17XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+NS8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjAgMDg6NDg8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMjUyMwoJCQkJCQkJb3V0cHV0OiAyOQoJCQkJCQkJdGhvdWdodHM6IDI1MgoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipGdXp6aW5nIEZlYXNpYmlsaXR5IEFuYWx5c2lzKioKCk9rYXksIHNvIHRoaXMgY29kZSBpcyBiZWluZyBjYWxsZWQgZnJvbSBgbWN0cF9pbml0YCwgd2hpY2ggaXMgdGhlIG1vZHVsZSBpbml0aWFsaXphdGlvbiBmdW5jdGlvbi4gTXkgaW5pdGlhbCBpbnN0aW5jdCBpcyB0aGF0IGZ1enppbmcgdGhpcyBwYXJ0aWN1bGFyIGVycm9yIHBhdGggaXMgYSB3YXN0ZSBvZiB0aW1lLiBgcmVnaXN0ZXJfbmV0ZGV2aWNlX25vdGlmaWVyYCBhbG1vc3QgbmV2ZXIgZmFpbHMgaW4gcHJhY3RpY2UsIGFuZCBpdCYjMzk7cyBqdXN0IHBhcnQgb2YgdGhlIGluaXRpYWxpemF0aW9uLiBJdCBmZWVscyBsaWtlIGEgZGVhZCBlbmQuCgpCdXQsIGhvbGQgb24gYSBzZWNvbmTigKYgbGV0IG1lIHJlcmVhZCB0aGUgaW5zdHJ1Y3Rpb25zLiBUaGUgcHJvbXB0IHNwZWNpZmljYWxseSBzYXlzIHRvIHJldHVybiBgV29ydGhGdXp6aW5nPWZhbHNlYCBvbmx5IGZvciB2ZXJ5IHNwZWNpZmljIGtpbmRzIG9mIGNoYW5nZXM6IGRvY3VtZW50YXRpb24sIEtjb25maWcsIGNvbW1lbnRzLCBsb2dnaW5nLCBkZWNvcmF0aXZlIGNoYW5nZXMsIG51bWVyaWMgY29uc3RhbnRzIHRoYXQgZG9uJiMzOTt0IGNoYW5nZSBiZWhhdmlvciwgb3IgdW5yZWFjaGFibGUgdmlydHVhbGl6ZWQgY29kZSBwYXRocy4gVGhpcyBkb2VzbiYjMzk7dCBmaXQgYW55IG9mIHRob3NlIGNyaXRlcmlhISBUaGlzIHBhdGNoIGRvZXMgaW5kZWVkIG1vZGlmeSBjb3JlIGtlcm5lbCBsb2dpYywgc3BlY2lmaWNhbGx5IHdpdGhpbiB0aGUgbW9kdWxlIGluaXQuCgpIb3dldmVyLCBjYW4gd2UgZm9yY2UgYSBgcmVnaXN0ZXJfbmV0ZGV2aWNlX25vdGlmaWVyYCBmYWlsdXJlIGR1cmluZyBhIGZ1enppbmcgcnVuPyBUaGUgcHJvbXB0IGRvZXNuJiMzOTt0IHN0YXRlIHRoYXQsIG9ubHkgd2hldGhlciB0aGUgY29kZSBpcyByZWFjaGFibGUuIFBlcmhhcHMgcmVwZWF0ZWQgbW9kdWxlIGxvYWQvdW5sb2FkIGN5Y2xlcyBjb3VsZCBjYXVzZSBwcm9ibGVtcywgYW5kIHdlIGNvdWxkIHRyaWdnZXIgdGhlIGZhaWx1cmU/IEkgbmVlZCB0byBjaGVjayBpZiBgbWN0cGAgY2FuIGV2ZW4gYmUgY29tcGlsZWQgYXMgYSBtb2R1bGUsIG9yIGlmIGl0JiMzOTtzIGJha2VkIGludG8gdGhlIGtlcm5lbC4gVGhhdCYjMzk7cyB0aGUgZmlyc3Qgc3RlcCBpbiBhc3Nlc3NpbmcgdGhlIHBvc3NpYmlsaXRpZXMuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Ni8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjAgMDg6NDk8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7Y29uZmlnIE1DVFAmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtuZXQvbWN0cC8mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7bmV0L21jdHAvS2NvbmZpZy0xLVxubmV0L21jdHAvS2NvbmZpZzoyOm1lbnVjb25maWcgTUNUUFxubmV0L21jdHAvS2NvbmZpZy0zLVx0ZGVwZW5kcyBvbiBORVRcbi0tXG5uZXQvbWN0cC9LY29uZmlnLTE0LVxubmV0L21jdHAvS2NvbmZpZzoxNTpjb25maWcgTUNUUF9URVNUXG5uZXQvbWN0cC9LY29uZmlnLTE2LSAgICAgICAgYm9vbCBcJiMzNDtNQ1RQIGNvcmUgdGVzdHNcJiMzNDsgaWYgIUtVTklUX0FMTF9URVNUU1xuLS1cbm5ldC9tY3RwL0tjb25maWctMjAtXG5uZXQvbWN0cC9LY29uZmlnOjIxOmNvbmZpZyBNQ1RQX0ZMT1dTXG5uZXQvbWN0cC9LY29uZmlnLTIyLVx0Ym9vbFxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjcvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzIwIDA4OjQ5PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDMyMzcKCQkJCQkJCW91dHB1dDogMzQKCQkJCQkJCXRob3VnaHRzOiA1NwoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+T2theSwgaGVyZSYjMzk7cyBteSB0YWtlIG9uIHRob3NlIHRob3VnaHRzLCBmcmFtZWQgYXMgYW4gZXhwZXJ0JiMzOTtzIGludGVybmFsIG1vbm9sb2d1ZToKCioqTW9kdWxlLWlmaWNhdGlvbiBvZiBNQ1RQIENvbmZpZ3VyYXRpb24qKgoKUmlnaHQsIHNvIGBtZW51Y29uZmlnIE1DVFBgLi4uIEkgY2FuIGltbWVkaWF0ZWx5IGFzc3VtZSB0aGlzIGNvdWxkIGJlIGEgbW9kdWxlLCBzaW5jZSB0aGUgS2NvbmZpZyBjb25zdHJ1Y3QgaXRzZWxmIGRvZXNuJiMzOTt0IGV4cGxpY2l0bHkgZGVmaW5lIGl0IGFzIGEgYm9vbGVhbiBvciBhIHRyaXN0YXRlLCBhbmQgdGhhdCYjMzk7cyB1c3VhbGx5IHRoZSBpbmRpY2F0b3IuIEl0JiMzOTtzIHNhZmUgdG8gYXNzdW1lIGBtZW51Y29uZmlnYCBjYW4gYmUgdHJpc3RhdGUgaWYgaXQgaXNuJiMzOTt0IHNwZWNpZmllZCwgYW5kIHRoYXQmIzM5O3MgdGhlIGtleSBoZXJlLiBOb3csIGp1c3QgdG8gYmUgKmFic29sdXRlbHkqIGNlcnRhaW4gYW5kIGNvbmZpcm0gdGhlcmUmIzM5O3Mgbm90aGluZyB1bnVzdWFsIGdvaW5nIG9uIGluIHRoaXMgY2FzZSwgYSBxdWljayBjaGVjayBvZiB0aGUgcmVsZXZhbnQgS2NvbmZpZyBmaWxlIHdvdWxkIGJlIHdpc2UuIFNwZWNpZmljYWxseSwgbGV0JiMzOTtzIGxvb2sgYXQgYG5ldC9tY3RwL0tjb25maWdgIHRvIGJlIHN1cmUuIEl0JiMzOTtzIGFsd2F5cyBiZXN0IHRvIGJlIHByZWNpc2UsIGVzcGVjaWFsbHkgd2hlbiBkZWFsaW5nIHdpdGgga2VybmVsIGNvbmZpZ3VyYXRpb24uCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+OC8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjAgMDg6NDk8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5yZWFkLWZpbGU8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0ZpbGUmIzM0OzogJiMzNDtuZXQvbWN0cC9LY29uZmlnJiMzNDssCiAgJiMzNDtGaXJzdExpbmUmIzM0OzogMSwKICAmIzM0O0xpbmVDb3VudCYjMzQ7OiAyMAp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7Q29udGVudHMmIzM0OzogJiMzNDsgICAxOlx0XG4gICAyOlx0bWVudWNvbmZpZyBNQ1RQXG4gICAzOlx0XHRkZXBlbmRzIG9uIE5FVFxuICAgNDpcdFx0Ym9vbCBcJiMzNDtNQ1RQIGNvcmUgcHJvdG9jb2wgc3VwcG9ydFwmIzM0O1xuICAgNTpcdFx0aGVscFxuICAgNjpcdFx0ICBNYW5hZ2VtZW50IENvbXBvbmVudCBUcmFuc3BvcnQgUHJvdG9jb2wgKE1DVFApIGlzIGFuIGluLXN5c3RlbVxuICAgNzpcdFx0ICBwcm90b2NvbCBmb3IgY29tbXVuaWNhdGluZyBiZXR3ZWVuIG1hbmFnZW1lbnQgY29udHJvbGxlcnMgYW5kXG4gICA4Olx0XHQgIHRoZWlyIG1hbmFnZWQgZGV2aWNlcyAocGVyaXBoZXJhbHMsIGhvc3QgcHJvY2Vzc29ycywgZXRjLikuIFRoZVxuICAgOTpcdFx0ICBwcm90b2NvbCBpcyBkZWZpbmVkIGJ5IERNVEYgc3BlY2lmaWNhdGlvbiBEU1AwMjM2LlxuICAxMDpcdFxuICAxMTpcdFx0ICBUaGlzIG9wdGlvbiBlbmFibGVzIGNvcmUgTUNUUCBzdXBwb3J0LiBGb3IgY29tbXVuaWNhdGluZyB3aXRoIG90aGVyXG4gIDEyOlx0XHQgIGRldmljZXMsIHlvdSYjMzk7bGwgd2FudCB0byBlbmFibGUgYSBkcml2ZXIgZm9yIGEgc3BlY2lmaWMgaGFyZHdhcmVcbiAgMTM6XHRcdCAgY2hhbm5lbC5cbiAgMTQ6XHRcbiAgMTU6XHRjb25maWcgTUNUUF9URVNUXG4gIDE2Olx0ICAgICAgICBib29sIFwmIzM0O01DVFAgY29yZSB0ZXN0c1wmIzM0OyBpZiAhS1VOSVRfQUxMX1RFU1RTXG4gIDE3Olx0ICAgICAgICBzZWxlY3QgTUNUUF9GTE9XU1xuICAxODpcdCAgICAgICAgZGVwZW5kcyBvbiBNQ1RQPXkgXHUwMDI2XHUwMDI2IEtVTklUPXlcbiAgMTk6XHQgICAgICAgIGRlZmF1bHQgS1VOSVRfQUxMX1RFU1RTXG4gIDIwOlx0XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+OS8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjAgMDg6NDk8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMzc4MwoJCQkJCQkJb3V0cHV0OiA5MAoJCQkJCQkJdGhvdWdodHM6IDMxMQoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipGdXp6aW5nIEZlYXNpYmlsaXR5IG9mIE1DVFAgQ29yZSBQcm90b2NvbCBTdXBwb3J0KioKCk9rYXksIHNvIHRoaXMgaXMgYWJvdXQgdGhlIGBib29sICYjMzQ7TUNUUCBjb3JlIHByb3RvY29sIHN1cHBvcnQmIzM0O2AgZmVhdHVyZS4gSXQgbG9va3MgbGlrZSB0aGlzIHN1cHBvcnQgaXMgYnVpbHQtaW4uIFRoYXQgbWVhbnMgYG1jdHBfaW5pdGAgaXMgY2FsbGVkIG9uY2UsIHJpZ2h0IGF0IGJvb3QgdGltZS4gTm93LCB0aGUga2V5IHF1ZXN0aW9uIGlzLCBjYW4gd2UgYWN0dWFsbHkgZnV6eiBgbWN0cF9kZXZpY2VfaW5pdGAgcmVwZWF0ZWRseT8gU2luY2UgaXQmIzM5O3MgYnVpbHQtaW4sIGFuZCBvbmx5IGNhbGxlZCBhdCBib290LCBmdXp6aW5nIHdvdWxkbiYjMzk7dCB0eXBpY2FsbHkgdHJpZ2dlciBpdCBtdWx0aXBsZSB0aW1lcy4gV2FpdCBhIG1pbnV0ZSwgaXMgaXQgJiMzNDtpbXBvc3NpYmxlIHRvIHJlYWNoIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyYjMzQ7PyBObywgaXQgKmlzKiByZWFjaGVkIGR1cmluZyB0aGUgYm9vdCBwcm9jZXNzLiBPa2F5LCBzbyBpcyB0aGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2U/IFllcywgaXQgYWRkcyBhbiBlcnJvciBjaGVjayBhbmQgcmV0dXJuLCB3aGljaCBjYW4gY2hhbmdlIHRoZSBmdW5jdGlvbiYjMzk7cyBiZWhhdmlvci4gVGhlIGluc3RydWN0aW9ucyBzYXkgaWYgaXQgbW9kaWZpZXMgcmVhY2hhYmxlIGNvcmUga2VybmVsIGxvZ2ljLCB3ZSBzaG91bGQgdmVyaWZ5IHRoZSBjb2RlIGNhbiBiZSBleGVjdXRlZCwgYW5kIHRoZW4gV29ydGhGdXp6aW5nPXRydWUuCgpTaW5jZSB0aGlzIGBtY3RwX2RldmljZV9pbml0YCBmdW5jdGlvbiBpcyBleGVjdXRlZCBkdXJpbmcgYm9vdCwgaXQgaXMgcmVhY2hhYmxlLiBCdXQgaGVyZSYjMzk7cyB0aGUgY2F0Y2g6IENhbiBTeXprYWxsZXIgZXZlbiBmdXp6ICpib290KiBjb2RlPyBTeXprYWxsZXImIzM5O3MgcHJpbWFyeSBmb2N1cyBpcyBzeXNjYWxscy4gSXQgZG9lc24mIzM5O3QgdXN1YWxseSB0YXJnZXQgaW5pdCBmdW5jdGlvbnMuIElmIHRoZSBwYXRjaCAqb25seSogbW9kaWZpZXMgYm9vdCBjb2RlLCB3aGljaCwgYXMgZmFyIGFzIEkgY2FuIHNlZSwgaXMgdGhlIGNhc2UgaGVyZSwgdGhlbiBTeXprYWxsZXIgbWlnaHQgbm90IGJlIGFibGUgdG8gZnV6eiBpdCBkaXJlY3RseS4gSG93ZXZlciwgdGhlIHByb21wdCBpcyBzaWxlbnQgcmVnYXJkaW5nIHRoaXMuIExldCYjMzk7cyBzdGFydCB3aXRoIFdvcnRoRnV6emluZz10cnVlLiBMZXQmIzM5O3MgZm9jdXMgb24gbWN0cF9kZXZpY2VfaW5pdC4gSWYgd2UgZm9jdXMgb24ganVzdCBpbml0IGZ1bmN0aW9ucywgU3l6a2FsbGVyIG1pZ2h0IG5vdCBiZSB1c2VmdWwuIExldCYjMzk7cyBnbyBiYWNrIGFuZCBzZWUgaWYgdGhlcmUgYXJlIG90aGVyIGZ1bmN0aW9ucy4gTm8gb3RoZXIgZnVuY3Rpb25zLgoKTGV0JiMzOTtzIGp1c3QgcmV0dXJuIFdvcnRoRnV6emluZz10cnVlLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEwLzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yMCAwODo0OTwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPnNldC1yZXN1bHRzPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IFsKICAgICYjMzQ7TUNUUCYjMzQ7CiAgXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbCiAgICAmIzM0O21jdHBfZGV2aWNlX2luaXQmIzM0OwogIF0sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIGluaXRpYWxpemF0aW9uIGxvZ2ljIG9mIHRoZSBNQ1RQIHN1YnN5c3RlbSBieSBhZGRpbmcgYW4gZXJyb3IgY2hlY2sgZm9yIHJlZ2lzdGVyX25ldGRldmljZV9ub3RpZmllci4gV2hpbGUgdGhpcyBpcyBhbiBpbml0IGZ1bmN0aW9uIGV4ZWN1dGVkIGR1cmluZyBib290LCBpdCBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIGluIHJlYWNoYWJsZSBjb3JlIGtlcm5lbCBsb2dpYy4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiB0cnVlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IFsKICAgICYjMzQ7TUNUUCYjMzQ7CiAgXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbCiAgICAmIzM0O21jdHBfZGV2aWNlX2luaXQmIzM0OwogIF0sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIGluaXRpYWxpemF0aW9uIGxvZ2ljIG9mIHRoZSBNQ1RQIHN1YnN5c3RlbSBieSBhZGRpbmcgYW4gZXJyb3IgY2hlY2sgZm9yIHJlZ2lzdGVyX25ldGRldmljZV9ub3RpZmllci4gV2hpbGUgdGhpcyBpcyBhbiBpbml0IGZ1bmN0aW9uIGV4ZWN1dGVkIGR1cmluZyBib290LCBpdCBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIGluIHJlYWNoYWJsZSBjb3JlIGtlcm5lbCBsb2dpYy4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiB0cnVlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8L3Rib2R5PgoJPC90YWJsZT4KCgk8ZGl2IGlkPSJsbG1fc3VtbWFyeV90YWJsZV9kaXYiIHN0eWxlPSJtYXJnaW46IDIwcHggMDsiPgoJCTx0YWJsZSBjbGFzcz0ibGlzdF90YWJsZSI+CgkJCTxjYXB0aW9uPkxMTSBDYWxscyBTdW1tYXJ5OjwvY2FwdGlvbj4KCQkJPHRoZWFkPgoJCQkJPHRyPgoJCQkJCTx0aD5Ub3RhbCBDYWxsczwvdGg+CgkJCQkJPHRoPlRvdGFsIFRva2VuczwvdGg+CgkJCQkJPHRoPkF2ZyBUb2tlbnM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJCTx0aD5BdmcgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCTwvdHI+CgkJCTwvdGhlYWQ+CgkJCTx0Ym9keSBpZD0ibGxtX3N1bW1hcnlfc3RhdHNfYm9keSI+PC90Ym9keT4KCQk8L3RhYmxlPgoJPC9kaXY+CgoJPGRpdiBpZD0idG9vbF9zdW1tYXJ5X3RhYmxlX2RpdiIgc3R5bGU9Im1hcmdpbjogMjBweCAwOyI+CgkJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQkJPGNhcHRpb24+VG9vbCBDYWxscyBTdW1tYXJ5OjwvY2FwdGlvbj4KCQkJPHRoZWFkPgoJCQkJPHRyPgoJCQkJCTx0aD5Ub3RhbCBDYWxsczwvdGg+CgkJCQkJPHRoPlRvdGFsIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQkJPHRoPkF2ZyBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJPC90cj4KCQkJPC90aGVhZD4KCQkJPHRib2R5IGlkPSJ0b29sX3N1bW1hcnlfc3RhdHNfYm9keSI+PC90Ym9keT4KCQk8L3RhYmxlPgoJPC9kaXY+CgoJPGRpdiBpZD0iZHVyYXRpb25fY2hhcnRfZGl2IiBzdHlsZT0id2lkdGg6IDEwMCU7IG1hcmdpbjogMjBweCAwOyBib3JkZXI6IDFweDsiPjwvZGl2PgoJPGRpdiBpZD0idG9rZW5fY2hhcnRfZGl2IiBzdHlsZT0id2lkdGg6IDEwMCU7IG1hcmdpbjogMjBweCAwOyBib3JkZXI6IDFweDsiPjwvZGl2PgoKCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Imh0dHBzOi8vd3d3Lmdvb2dsZS5jb20vanNhcGkiPjwvc2NyaXB0PgoJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgoJCWdvb2dsZS5sb2FkKCJ2aXN1YWxpemF0aW9uIiwgIjEiLCB7cGFja2FnZXM6WyJjb3JlY2hhcnQiXX0pOwoJCWdvb2dsZS5zZXRPbkxvYWRDYWxsYmFjayhkcmF3Q2hhcnRzKTsKCgkJZnVuY3Rpb24gZHJhd0NoYXJ0cygpIHsKCQkJY29uc3QgcmF3RGF0YSA9IFt7IlN0YXJ0ZWQiOiIyMDI2LTA3LTIwVDA4OjQ4OjQ4LjUyOTk1MzkyM1oiLCJTZXEiOjAsIk5lc3RpbmciOjAsIlR5cGUiOiJmbG93IiwiTmFtZSI6InBhdGNoLXRyaWFnZSIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjM3OTI3MTAxMTk4LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IFtcbiAgICBcIk1DVFBcIlxuICBdLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXG4gICAgXCJtY3RwX2RldmljZV9pbml0XCJcbiAgXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIGluaXRpYWxpemF0aW9uIGxvZ2ljIG9mIHRoZSBNQ1RQIHN1YnN5c3RlbSBieSBhZGRpbmcgYW4gZXJyb3IgY2hlY2sgZm9yIHJlZ2lzdGVyX25ldGRldmljZV9ub3RpZmllci4gV2hpbGUgdGhpcyBpcyBhbiBpbml0IGZ1bmN0aW9uIGV4ZWN1dGVkIGR1cmluZyBib290LCBpdCBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIGluIHJlYWNoYWJsZSBjb3JlIGtlcm5lbCBsb2dpYy5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogdHJ1ZVxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMjBUMDg6NDg6NDguNTI5OTYzMjYzWiIsIlNlcSI6MSwiTmVzdGluZyI6MSwiVHlwZSI6ImFjdGlvbiIsIk5hbWUiOiJyZWFkLXBhdGNoLWRpZmYiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo2MzA0MDQ3NTQsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIlBhdGNoRGlmZlwiOiBcImNvbW1pdCAxZjZmNzEyOTU5NzIxZjdjMmZhZWMxNzFiODE5NzM1NGZiYjg5ZWEyXFxuQXV0aG9yOiBzeXotY2x1c3RlciBcXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cXHUwMDNlXFxuRGF0ZTogICBNb24gSnVsIDIwIDA4OjQ4OjQ2IDIwMjYgKzAwMDBcXG5cXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XFxuXFxuZGlmZiAtLWdpdCBhL25ldC9tY3RwL2RldmljZS5jIGIvbmV0L21jdHAvZGV2aWNlLmNcXG5pbmRleCAyYzg0ZGY2NzQ2NjliMi4uODIyMTIwZTg2MGM4MmEgMTAwNjQ0XFxuLS0tIGEvbmV0L21jdHAvZGV2aWNlLmNcXG4rKysgYi9uZXQvbWN0cC9kZXZpY2UuY1xcbkBAIC01MzYsNyArNTM2LDkgQEAgaW50IF9faW5pdCBtY3RwX2RldmljZV9pbml0KHZvaWQpXFxuIHtcXG4gXFx0aW50IGVycjtcXG4gXFxuLVxcdHJlZ2lzdGVyX25ldGRldmljZV9ub3RpZmllcihcXHUwMDI2bWN0cF9kZXZfbmIpO1xcbitcXHRlcnIgPSByZWdpc3Rlcl9uZXRkZXZpY2Vfbm90aWZpZXIoXFx1MDAyNm1jdHBfZGV2X25iKTtcXG4rXFx0aWYgKGVycilcXG4rXFx0XFx0cmV0dXJuIGVycjtcXG4gXFxuIFxcdGVyciA9IHJ0bmxfYWZfcmVnaXN0ZXIoXFx1MDAyNm1jdHBfYWZfb3BzKTtcXG4gXFx0aWYgKGVycilcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMjBUMDg6NDg6NDkuMTYxMzYzMzM2WiIsIlNlcSI6MiwiTmVzdGluZyI6MSwiVHlwZSI6ImFnZW50IiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjozNzI5NTY4MDM2NSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXG4gICAgXCJNQ1RQXCJcbiAgXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW1xuICAgIFwibWN0cF9kZXZpY2VfaW5pdFwiXG4gIF0sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBpbml0aWFsaXphdGlvbiBsb2dpYyBvZiB0aGUgTUNUUCBzdWJzeXN0ZW0gYnkgYWRkaW5nIGFuIGVycm9yIGNoZWNrIGZvciByZWdpc3Rlcl9uZXRkZXZpY2Vfbm90aWZpZXIuIFdoaWxlIHRoaXMgaXMgYW4gaW5pdCBmdW5jdGlvbiBleGVjdXRlZCBkdXJpbmcgYm9vdCwgaXQgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSBpbiByZWFjaGFibGUgY29yZSBrZXJuZWwgbG9naWMuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IHRydWVcbn0iLCJJbnN0cnVjdGlvbiI6IllvdSBhcmUgYW4gZXhwZXJ0IExpbnV4IGtlcm5lbCBtYWludGFpbmVyLlxuWW91ciBqb2IgaXMgdG8gcmV2aWV3IGEgcHJvdmlkZWQgcGF0Y2ggc2VyaWVzIGFuZCBkZXRlcm1pbmVcbmlmIGl0IG1ha2VzIGZ1bmN0aW9uYWwgY2hhbmdlcyB0byB0aGUga2VybmVsIHRoYXQgc2hvdWxkIGJlIGZ1enplZC5cblxuSU1QT1JUQU5UOiBUaGUgY2hhbmdlcyBoYXZlIEFMUkVBRFkgYmVlbiBhcHBsaWVkIGFuZCBjb21taXR0ZWQgYXMgdGhlIEhFQUQgY29tbWl0IGluXG55b3VyIHdvcmtzcGFjZS4gRG8gTk9UIHJlbHkgb24geW91ciBpbnRlcm5hbCBrbm93bGVkZ2Ugb2YgdGhlIGtlcm5lbC4gWW91IG11c3QgYWN0aXZlbHlcbnVzZSB5b3VyIGNvZGUgYWNjZXNzIHRvb2xzIHRvIGV4YW1pbmUgdGhlIGFjdHVhbCBzb3VyY2UgY29kZSBhbmQgY29uZmlybSBhbnkgYXNzdW1wdGlvbnMuXG5cblJldHVybiBXb3J0aEZ1enppbmc9ZmFsc2UgaWYgdGhlIHBhdGNoIG9ubHkgY29udGFpbnM6XG4tIE1vZGlmaWNhdGlvbnMgdG8gRG9jdW1lbnRhdGlvbi8sIEtjb25maWcgZmlsZXMsIG9yIGNvZGUgY29tbWVudHMuXG4tIFB1cmVseSBkZWNvcmF0aXZlIGNoYW5nZXMsIHN1Y2ggYXMgbG9nZ2luZyAoZS5nLiwgcHJfZXJyLCBwcmludGspIG9yIHRyYWNlcG9pbnRzLlxuLSBDaGFuZ2VzIHRvIG51bWVyaWMgY29uc3RhbnRzIG9yIG1hY3JvcyB0aGF0IGRvIG5vdCBmdW5jdGlvbmFsbHkgYWx0ZXIgZXhlY3V0aW9uIGZsb3cuXG4tIENvZGUgcGF0aHMgdGhhdCBhcmUgaW1wb3NzaWJsZSB0byByZWFjaCBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBHQ0Ugb3IgUUVNVSxcbmV2ZW4gd2hlbiB1dGlsaXppbmcgc29mdHdhcmUtZW11bGF0ZWQgaGFyZHdhcmUgKGUuZy4sIHVzYiBnYWRnZXQsIG1hYzgwMjExX2h3c2ltKS5cblxuSWYgaXQgbW9kaWZpZXMgcmVhY2hhYmxlIGNvcmUga2VybmVsIGxvZ2ljLCBkcml2ZXJzLCBvciBhcmNoaXRlY3R1cmVzLCB1c2UgeW91ciBjb2RlIHNlYXJjaFxudG9vbHMgdG8gdmVyaWZ5IHRoZSBjb2RlIGNhbiBiZSBleGVjdXRlZCwgdGhlbiByZXR1cm4gV29ydGhGdXp6aW5nPXRydWUuXG5cbldoZW4gcmV0dXJuaW5nIFdvcnRoRnV6emluZz10cnVlLCB5b3UgTVVTVCBBTFNPOlxuMS4gRXh0cmFjdCBhbnkgc3BlY2lmaWMga2VybmVsIGZ1bmN0aW9ucyB0aGF0IHNob3VsZCBiZSBoZWF2aWx5IGZ1enplZCBpbnRvIEZvY3VzU3ltYm9scy5cbiAgIEF2b2lkIGxpc3RpbmcgZ2VuZXJpYyBob3QtcGF0aCBmdW5jdGlvbnMgdG8gcHJldmVudCBza2V3ZWQgdGVzdCBkaXN0cmlidXRpb25zLlxuMi4gSWRlbnRpZnkgYW55IHNwZWNpZmljIENPTkZJR18gb3B0aW9ucyByZXF1aXJlZCB0byBwcm9wZXJseSB0ZXN0IHRoaXMgbmV3L21vZGlmaWVkIGZlYXR1cmUuXG4gICBHbyBhbmQgbG9vayBpbnRvIHRoZSBLY29uZmlnIGZpbGVzIGFuZCBjaGVjayBmb3IgaWZkZWZzIGFyb3VuZCB0aGUgY29kZSwgZG8gbm90IG1ha2UgYXNzdW1wdGlvbnMuXG4gICBEbyBub3QgbGlzdCB0b28gZ2VuZXJpYyBjb25maWdzICh3ZSBhbHJlYWR5IGhhdmUgdGhlbSBlbmFibGVkKS4gT25seSBsaXN0IHRob3NlIHRoYXRcbiAgIHNwZWNpZmljYWxseSBjb3ZlciB0aGUgbW9kaWZpZWQgY29kZS4gTGlzdCB0aGVtIGluIHRoZSBFbmFibGVDb25maWdzIG91dHB1dCBhcnJheSxcbiAgIGFuZCBETyBOT1QgYWRkIGEgJ0NPTkZJR18nIHByZWZpeCAoZS5nLiwgcmV0dXJuIFwiTkVUX0lQVjRcIiBpbnN0ZWFkIG9mIFwiQ09ORklHX05FVF9JUFY0XCIpLlxuUHJlZmVyIGNhbGxpbmcgc2V2ZXJhbCB0b29scyBhdCB0aGUgc2FtZSB0aW1lIHRvIHNhdmUgcm91bmQtdHJpcHMuXG5cblxuVXNlIHNldC1yZXN1bHRzIHRvb2wgdG8gcHJvdmlkZSByZXN1bHRzIG9mIHRoZSBhbmFseXNpcy5cbkl0IG11c3QgYmUgY2FsbGVkIGV4YWN0bHkgb25jZSBiZWZvcmUgdGhlIGZpbmFsIHJlcGx5LlxuSWdub3JlIHJlc3VsdHMgb2YgdGhpcyB0b29sLlxuIiwiUHJvbXB0IjoiRm9yIHlvdXIgY29udmVuaWVuY2UsIGhlcmUgaXMgdGhlIGRpZmYgb2YgdGhlIGNoYW5nZXM6XG5jb21taXQgMWY2ZjcxMjk1OTcyMWY3YzJmYWVjMTcxYjgxOTczNTRmYmI4OWVhMlxuQXV0aG9yOiBzeXotY2x1c3RlciBcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVx1MDAzZVxuRGF0ZTogICBNb24gSnVsIDIwIDA4OjQ4OjQ2IDIwMjYgKzAwMDBcblxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xuXG5kaWZmIC0tZ2l0IGEvbmV0L21jdHAvZGV2aWNlLmMgYi9uZXQvbWN0cC9kZXZpY2UuY1xuaW5kZXggMmM4NGRmNjc0NjY5YjIuLjgyMjEyMGU4NjBjODJhIDEwMDY0NFxuLS0tIGEvbmV0L21jdHAvZGV2aWNlLmNcbisrKyBiL25ldC9tY3RwL2RldmljZS5jXG5AQCAtNTM2LDcgKzUzNiw5IEBAIGludCBfX2luaXQgbWN0cF9kZXZpY2VfaW5pdCh2b2lkKVxuIHtcbiBcdGludCBlcnI7XG4gXG4tXHRyZWdpc3Rlcl9uZXRkZXZpY2Vfbm90aWZpZXIoXHUwMDI2bWN0cF9kZXZfbmIpO1xuK1x0ZXJyID0gcmVnaXN0ZXJfbmV0ZGV2aWNlX25vdGlmaWVyKFx1MDAyNm1jdHBfZGV2X25iKTtcbitcdGlmIChlcnIpXG4rXHRcdHJldHVybiBlcnI7XG4gXG4gXHRlcnIgPSBydG5sX2FmX3JlZ2lzdGVyKFx1MDAyNm1jdHBfYWZfb3BzKTtcbiBcdGlmIChlcnIpXG4iLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0yMFQwODo0ODo0OS4xNjEzNjU5MDZaIiwiU2VxIjozLCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo0NzM3ODkwMTE3LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkFuYWx5emluZyBhIFBhdGNoIHRvIGBuZXQvbWN0cC9kZXZpY2UuY2AqKlxuXG5Pa2F5LCBzbyBJJ20gbG9va2luZyBhdCB0aGlzIHBhdGNoIHRoYXQgdHdlYWtzIGBuZXQvbWN0cC9kZXZpY2UuY2AuIEl0J3MgYSBwcmV0dHkgc3RyYWlnaHRmb3J3YXJkIGNoYW5nZSwgZm9jdXNpbmcgb24gZXJyb3IgaGFuZGxpbmcgd2l0aGluIGBtY3RwX2RldmljZV9pbml0YC4gU3BlY2lmaWNhbGx5LCBpdCBjaGVja3MgdGhlIHJldHVybiB2YWx1ZSBvZiBgcmVnaXN0ZXJfbmV0ZGV2aWNlX25vdGlmaWVyYCBhbmQgcHJvcGFnYXRlcyB0aGUgZXJyb3IgaWYgaXQgZmFpbHMuIE15IGluaXRpYWwgcmVhY3Rpb24gaXMgdGhhdCB0aGlzIGlzIGEgc29saWQgZml4LCBhZGRyZXNzaW5nIGEgcG90ZW50aWFsIHZ1bG5lcmFiaWxpdHkgaW4gdGhlIGluaXRpYWxpemF0aW9uIHByb2Nlc3MuXG5cblRoZSBxdWVzdGlvbiBub3cgaXMgd2hldGhlciB0aGlzIGNoYW5nZSB3YXJyYW50cyBmdXJ0aGVyIGludmVzdGlnYXRpb24sIGxpa2UgZnV6emluZy4gIE15IGV4cGVyaWVuY2UgdGVsbHMgbWUgdGhhdCBmdXp6aW5nIGluaXRpYWxpemF0aW9uIGZ1bmN0aW9ucywgbGlrZSB0aGlzIGBtY3RwX2RldmljZV9pbml0YCwgb2Z0ZW4gaXNuJ3QgdGhlIG1vc3QgZWZmZWN0aXZlIHVzZSBvZiByZXNvdXJjZXMuIFRoZXNlIGZ1bmN0aW9ucyB0eXBpY2FsbHkgcnVuIGp1c3Qgb25jZSBhdCBib290IG9yIG1vZHVsZSBsb2FkLCBhbmQgdGhlIHdpbmRvdyBvZiBvcHBvcnR1bml0eSBmb3IgZnV6emluZyBpcyBsaW1pdGVkLiBIb3dldmVyLCB0aGlzICppcyogYSBmdW5jdGlvbmFsIGNoYW5nZSwgYSBtb2RpZmljYXRpb24gdG8gdGhlIGVzdGFibGlzaGVkIGJlaGF2aW9yLCBzbyBJIG5lZWQgdG8gY29uc2lkZXIgaXQgbW9yZSBjYXJlZnVsbHkuXG5cblRoZSBrZXkgaXMgZGV0ZXJtaW5pbmcgaWYgYG1jdHBfZGV2aWNlX2luaXRgIGlzIGludm9rZWQgZHVyaW5nIG1vZHVsZSBpbml0aWFsaXphdGlvbiwgd2hpY2ggbWlnaHQgcHJlc2VudCBhIHdpZGVyIHdpbmRvdyBmb3IgdGVzdGluZy4gSSdtIGdvaW5nIHRvIHF1aWNrbHkgY2hlY2sgdGhlIHN1cnJvdW5kaW5nIGNvZGUgdG8gY29uZmlybSB0aGlzIGFuZCBzZWUgaWYgdGhlIGNvbnRleHQgc3VnZ2VzdHMgZnV6emluZyBpcyB3b3J0aHdoaWxlLlxuXG5cbiIsIklucHV0VG9rZW5zIjoxODMyLCJPdXRwdXRUb2tlbnMiOjMzLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MTc5LCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMjBUMDg6NDg6NTMuODk5MjU4NzQzWiIsIlNlcSI6NCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjM3MDM5OTQ4NSwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJtY3RwX2RldmljZV9pbml0XCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcIm5ldC9tY3RwL1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJuZXQvbWN0cC9hZl9tY3RwLmM9ODQ4PXN0YXRpYyBfX2luaXQgaW50IG1jdHBfaW5pdCh2b2lkKVxcbi0tXFxubmV0L21jdHAvYWZfbWN0cC5jLTg3My1cXG5uZXQvbWN0cC9hZl9tY3RwLmM6ODc0OlxcdHJjID0gbWN0cF9kZXZpY2VfaW5pdCgpO1xcbm5ldC9tY3RwL2FmX21jdHAuYy04NzUtXFx0aWYgKHJjKVxcbi0tXFxubmV0L21jdHAvZGV2aWNlLmM9NTI2PXN0YXRpYyBjb25zdCBzdHJ1Y3QgcnRubF9tc2dfaGFuZGxlciBtY3RwX2RldmljZV9ydG5sX21zZ19oYW5kbGVyc1tdID0ge1xcbi0tXFxubmV0L21jdHAvZGV2aWNlLmMtNTM0LVxcbm5ldC9tY3RwL2RldmljZS5jOjUzNTppbnQgX19pbml0IG1jdHBfZGV2aWNlX2luaXQodm9pZClcXG5uZXQvbWN0cC9kZXZpY2UuYy01MzYte1xcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0yMFQwODo0ODo1NC4yNjk2NjYwOThaIiwiU2VxIjo1LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjoxNzczOTczNTI1MywiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipGdXp6aW5nIEZlYXNpYmlsaXR5IEFuYWx5c2lzKipcblxuT2theSwgc28gdGhpcyBjb2RlIGlzIGJlaW5nIGNhbGxlZCBmcm9tIGBtY3RwX2luaXRgLCB3aGljaCBpcyB0aGUgbW9kdWxlIGluaXRpYWxpemF0aW9uIGZ1bmN0aW9uLiBNeSBpbml0aWFsIGluc3RpbmN0IGlzIHRoYXQgZnV6emluZyB0aGlzIHBhcnRpY3VsYXIgZXJyb3IgcGF0aCBpcyBhIHdhc3RlIG9mIHRpbWUuIGByZWdpc3Rlcl9uZXRkZXZpY2Vfbm90aWZpZXJgIGFsbW9zdCBuZXZlciBmYWlscyBpbiBwcmFjdGljZSwgYW5kIGl0J3MganVzdCBwYXJ0IG9mIHRoZSBpbml0aWFsaXphdGlvbi4gSXQgZmVlbHMgbGlrZSBhIGRlYWQgZW5kLlxuXG5CdXQsIGhvbGQgb24gYSBzZWNvbmTigKYgbGV0IG1lIHJlcmVhZCB0aGUgaW5zdHJ1Y3Rpb25zLiBUaGUgcHJvbXB0IHNwZWNpZmljYWxseSBzYXlzIHRvIHJldHVybiBgV29ydGhGdXp6aW5nPWZhbHNlYCBvbmx5IGZvciB2ZXJ5IHNwZWNpZmljIGtpbmRzIG9mIGNoYW5nZXM6IGRvY3VtZW50YXRpb24sIEtjb25maWcsIGNvbW1lbnRzLCBsb2dnaW5nLCBkZWNvcmF0aXZlIGNoYW5nZXMsIG51bWVyaWMgY29uc3RhbnRzIHRoYXQgZG9uJ3QgY2hhbmdlIGJlaGF2aW9yLCBvciB1bnJlYWNoYWJsZSB2aXJ0dWFsaXplZCBjb2RlIHBhdGhzLiBUaGlzIGRvZXNuJ3QgZml0IGFueSBvZiB0aG9zZSBjcml0ZXJpYSEgVGhpcyBwYXRjaCBkb2VzIGluZGVlZCBtb2RpZnkgY29yZSBrZXJuZWwgbG9naWMsIHNwZWNpZmljYWxseSB3aXRoaW4gdGhlIG1vZHVsZSBpbml0LlxuXG5Ib3dldmVyLCBjYW4gd2UgZm9yY2UgYSBgcmVnaXN0ZXJfbmV0ZGV2aWNlX25vdGlmaWVyYCBmYWlsdXJlIGR1cmluZyBhIGZ1enppbmcgcnVuPyBUaGUgcHJvbXB0IGRvZXNuJ3Qgc3RhdGUgdGhhdCwgb25seSB3aGV0aGVyIHRoZSBjb2RlIGlzIHJlYWNoYWJsZS4gUGVyaGFwcyByZXBlYXRlZCBtb2R1bGUgbG9hZC91bmxvYWQgY3ljbGVzIGNvdWxkIGNhdXNlIHByb2JsZW1zLCBhbmQgd2UgY291bGQgdHJpZ2dlciB0aGUgZmFpbHVyZT8gSSBuZWVkIHRvIGNoZWNrIGlmIGBtY3RwYCBjYW4gZXZlbiBiZSBjb21waWxlZCBhcyBhIG1vZHVsZSwgb3IgaWYgaXQncyBiYWtlZCBpbnRvIHRoZSBrZXJuZWwuIFRoYXQncyB0aGUgZmlyc3Qgc3RlcCBpbiBhc3Nlc3NpbmcgdGhlIHBvc3NpYmlsaXRpZXMuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjI1MjMsIk91dHB1dFRva2VucyI6MjksIk91dHB1dFRob3VnaHRzVG9rZW5zIjoyNTIsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDctMjBUMDg6NDk6MTIuMDA5NDAzNzIxWiIsIlNlcSI6NiwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjE1Nzc5NzA2NjMsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiY29uZmlnIE1DVFBcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwibmV0L21jdHAvXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcIm5ldC9tY3RwL0tjb25maWctMS1cXG5uZXQvbWN0cC9LY29uZmlnOjI6bWVudWNvbmZpZyBNQ1RQXFxubmV0L21jdHAvS2NvbmZpZy0zLVxcdGRlcGVuZHMgb24gTkVUXFxuLS1cXG5uZXQvbWN0cC9LY29uZmlnLTE0LVxcbm5ldC9tY3RwL0tjb25maWc6MTU6Y29uZmlnIE1DVFBfVEVTVFxcbm5ldC9tY3RwL0tjb25maWctMTYtICAgICAgICBib29sIFxcXCJNQ1RQIGNvcmUgdGVzdHNcXFwiIGlmICFLVU5JVF9BTExfVEVTVFNcXG4tLVxcbm5ldC9tY3RwL0tjb25maWctMjAtXFxubmV0L21jdHAvS2NvbmZpZzoyMTpjb25maWcgTUNUUF9GTE9XU1xcbm5ldC9tY3RwL0tjb25maWctMjItXFx0Ym9vbFxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0yMFQwODo0OToxMy41ODczODEzODRaIiwiU2VxIjo3LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo2Nzg4MDEyNjQ1LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJPa2F5LCBoZXJlJ3MgbXkgdGFrZSBvbiB0aG9zZSB0aG91Z2h0cywgZnJhbWVkIGFzIGFuIGV4cGVydCdzIGludGVybmFsIG1vbm9sb2d1ZTpcblxuKipNb2R1bGUtaWZpY2F0aW9uIG9mIE1DVFAgQ29uZmlndXJhdGlvbioqXG5cblJpZ2h0LCBzbyBgbWVudWNvbmZpZyBNQ1RQYC4uLiBJIGNhbiBpbW1lZGlhdGVseSBhc3N1bWUgdGhpcyBjb3VsZCBiZSBhIG1vZHVsZSwgc2luY2UgdGhlIEtjb25maWcgY29uc3RydWN0IGl0c2VsZiBkb2Vzbid0IGV4cGxpY2l0bHkgZGVmaW5lIGl0IGFzIGEgYm9vbGVhbiBvciBhIHRyaXN0YXRlLCBhbmQgdGhhdCdzIHVzdWFsbHkgdGhlIGluZGljYXRvci4gSXQncyBzYWZlIHRvIGFzc3VtZSBgbWVudWNvbmZpZ2AgY2FuIGJlIHRyaXN0YXRlIGlmIGl0IGlzbid0IHNwZWNpZmllZCwgYW5kIHRoYXQncyB0aGUga2V5IGhlcmUuIE5vdywganVzdCB0byBiZSAqYWJzb2x1dGVseSogY2VydGFpbiBhbmQgY29uZmlybSB0aGVyZSdzIG5vdGhpbmcgdW51c3VhbCBnb2luZyBvbiBpbiB0aGlzIGNhc2UsIGEgcXVpY2sgY2hlY2sgb2YgdGhlIHJlbGV2YW50IEtjb25maWcgZmlsZSB3b3VsZCBiZSB3aXNlLiBTcGVjaWZpY2FsbHksIGxldCdzIGxvb2sgYXQgYG5ldC9tY3RwL0tjb25maWdgIHRvIGJlIHN1cmUuIEl0J3MgYWx3YXlzIGJlc3QgdG8gYmUgcHJlY2lzZSwgZXNwZWNpYWxseSB3aGVuIGRlYWxpbmcgd2l0aCBrZXJuZWwgY29uZmlndXJhdGlvbi5cblxuXG4iLCJJbnB1dFRva2VucyI6MzIzNywiT3V0cHV0VG9rZW5zIjozNCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjU3LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTIwVDA4OjQ5OjIwLjM3NTM5NzExOVoiLCJTZXEiOjgsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6InJlYWQtZmlsZSIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjg0NjUwLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRmlsZVwiOiBcIm5ldC9tY3RwL0tjb25maWdcIixcbiAgXCJGaXJzdExpbmVcIjogMSxcbiAgXCJMaW5lQ291bnRcIjogMjBcbn0iLCJSZXN1bHRzIjoie1xuICBcIkNvbnRlbnRzXCI6IFwiICAgMTpcXHRcXG4gICAyOlxcdG1lbnVjb25maWcgTUNUUFxcbiAgIDM6XFx0XFx0ZGVwZW5kcyBvbiBORVRcXG4gICA0OlxcdFxcdGJvb2wgXFxcIk1DVFAgY29yZSBwcm90b2NvbCBzdXBwb3J0XFxcIlxcbiAgIDU6XFx0XFx0aGVscFxcbiAgIDY6XFx0XFx0ICBNYW5hZ2VtZW50IENvbXBvbmVudCBUcmFuc3BvcnQgUHJvdG9jb2wgKE1DVFApIGlzIGFuIGluLXN5c3RlbVxcbiAgIDc6XFx0XFx0ICBwcm90b2NvbCBmb3IgY29tbXVuaWNhdGluZyBiZXR3ZWVuIG1hbmFnZW1lbnQgY29udHJvbGxlcnMgYW5kXFxuICAgODpcXHRcXHQgIHRoZWlyIG1hbmFnZWQgZGV2aWNlcyAocGVyaXBoZXJhbHMsIGhvc3QgcHJvY2Vzc29ycywgZXRjLikuIFRoZVxcbiAgIDk6XFx0XFx0ICBwcm90b2NvbCBpcyBkZWZpbmVkIGJ5IERNVEYgc3BlY2lmaWNhdGlvbiBEU1AwMjM2LlxcbiAgMTA6XFx0XFxuICAxMTpcXHRcXHQgIFRoaXMgb3B0aW9uIGVuYWJsZXMgY29yZSBNQ1RQIHN1cHBvcnQuIEZvciBjb21tdW5pY2F0aW5nIHdpdGggb3RoZXJcXG4gIDEyOlxcdFxcdCAgZGV2aWNlcywgeW91J2xsIHdhbnQgdG8gZW5hYmxlIGEgZHJpdmVyIGZvciBhIHNwZWNpZmljIGhhcmR3YXJlXFxuICAxMzpcXHRcXHQgIGNoYW5uZWwuXFxuICAxNDpcXHRcXG4gIDE1OlxcdGNvbmZpZyBNQ1RQX1RFU1RcXG4gIDE2OlxcdCAgICAgICAgYm9vbCBcXFwiTUNUUCBjb3JlIHRlc3RzXFxcIiBpZiAhS1VOSVRfQUxMX1RFU1RTXFxuICAxNzpcXHQgICAgICAgIHNlbGVjdCBNQ1RQX0ZMT1dTXFxuICAxODpcXHQgICAgICAgIGRlcGVuZHMgb24gTUNUUD15IFxcdTAwMjZcXHUwMDI2IEtVTklUPXlcXG4gIDE5OlxcdCAgICAgICAgZGVmYXVsdCBLVU5JVF9BTExfVEVTVFNcXG4gIDIwOlxcdFxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0yMFQwODo0OToyMC4zNzU0ODMyOTlaIiwiU2VxIjo5LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo1OTgyNzE0MTgxLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkZ1enppbmcgRmVhc2liaWxpdHkgb2YgTUNUUCBDb3JlIFByb3RvY29sIFN1cHBvcnQqKlxuXG5Pa2F5LCBzbyB0aGlzIGlzIGFib3V0IHRoZSBgYm9vbCBcIk1DVFAgY29yZSBwcm90b2NvbCBzdXBwb3J0XCJgIGZlYXR1cmUuIEl0IGxvb2tzIGxpa2UgdGhpcyBzdXBwb3J0IGlzIGJ1aWx0LWluLiBUaGF0IG1lYW5zIGBtY3RwX2luaXRgIGlzIGNhbGxlZCBvbmNlLCByaWdodCBhdCBib290IHRpbWUuIE5vdywgdGhlIGtleSBxdWVzdGlvbiBpcywgY2FuIHdlIGFjdHVhbGx5IGZ1enogYG1jdHBfZGV2aWNlX2luaXRgIHJlcGVhdGVkbHk/IFNpbmNlIGl0J3MgYnVpbHQtaW4sIGFuZCBvbmx5IGNhbGxlZCBhdCBib290LCBmdXp6aW5nIHdvdWxkbid0IHR5cGljYWxseSB0cmlnZ2VyIGl0IG11bHRpcGxlIHRpbWVzLiBXYWl0IGEgbWludXRlLCBpcyBpdCBcImltcG9zc2libGUgdG8gcmVhY2ggaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzXCI/IE5vLCBpdCAqaXMqIHJlYWNoZWQgZHVyaW5nIHRoZSBib290IHByb2Nlc3MuIE9rYXksIHNvIGlzIHRoaXMgYSBmdW5jdGlvbmFsIGNoYW5nZT8gWWVzLCBpdCBhZGRzIGFuIGVycm9yIGNoZWNrIGFuZCByZXR1cm4sIHdoaWNoIGNhbiBjaGFuZ2UgdGhlIGZ1bmN0aW9uJ3MgYmVoYXZpb3IuIFRoZSBpbnN0cnVjdGlvbnMgc2F5IGlmIGl0IG1vZGlmaWVzIHJlYWNoYWJsZSBjb3JlIGtlcm5lbCBsb2dpYywgd2Ugc2hvdWxkIHZlcmlmeSB0aGUgY29kZSBjYW4gYmUgZXhlY3V0ZWQsIGFuZCB0aGVuIFdvcnRoRnV6emluZz10cnVlLlxuXG5TaW5jZSB0aGlzIGBtY3RwX2RldmljZV9pbml0YCBmdW5jdGlvbiBpcyBleGVjdXRlZCBkdXJpbmcgYm9vdCwgaXQgaXMgcmVhY2hhYmxlLiBCdXQgaGVyZSdzIHRoZSBjYXRjaDogQ2FuIFN5emthbGxlciBldmVuIGZ1enogKmJvb3QqIGNvZGU/IFN5emthbGxlcidzIHByaW1hcnkgZm9jdXMgaXMgc3lzY2FsbHMuIEl0IGRvZXNuJ3QgdXN1YWxseSB0YXJnZXQgaW5pdCBmdW5jdGlvbnMuIElmIHRoZSBwYXRjaCAqb25seSogbW9kaWZpZXMgYm9vdCBjb2RlLCB3aGljaCwgYXMgZmFyIGFzIEkgY2FuIHNlZSwgaXMgdGhlIGNhc2UgaGVyZSwgdGhlbiBTeXprYWxsZXIgbWlnaHQgbm90IGJlIGFibGUgdG8gZnV6eiBpdCBkaXJlY3RseS4gSG93ZXZlciwgdGhlIHByb21wdCBpcyBzaWxlbnQgcmVnYXJkaW5nIHRoaXMuIExldCdzIHN0YXJ0IHdpdGggV29ydGhGdXp6aW5nPXRydWUuIExldCdzIGZvY3VzIG9uIG1jdHBfZGV2aWNlX2luaXQuIElmIHdlIGZvY3VzIG9uIGp1c3QgaW5pdCBmdW5jdGlvbnMsIFN5emthbGxlciBtaWdodCBub3QgYmUgdXNlZnVsLiBMZXQncyBnbyBiYWNrIGFuZCBzZWUgaWYgdGhlcmUgYXJlIG90aGVyIGZ1bmN0aW9ucy4gTm8gb3RoZXIgZnVuY3Rpb25zLlxuXG5MZXQncyBqdXN0IHJldHVybiBXb3J0aEZ1enppbmc9dHJ1ZS5cblxuXG4iLCJJbnB1dFRva2VucyI6Mzc4MywiT3V0cHV0VG9rZW5zIjo5MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjMxMSwiVG9vbENhbGxzIjpbInJlYWQtZmlsZSJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTIwVDA4OjQ5OjI2LjM1ODIwMDAyWiIsIlNlcSI6MTAsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6InNldC1yZXN1bHRzIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6OTg4MzcxNTEsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IFtcbiAgICBcIk1DVFBcIlxuICBdLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXG4gICAgXCJtY3RwX2RldmljZV9pbml0XCJcbiAgXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIGluaXRpYWxpemF0aW9uIGxvZ2ljIG9mIHRoZSBNQ1RQIHN1YnN5c3RlbSBieSBhZGRpbmcgYW4gZXJyb3IgY2hlY2sgZm9yIHJlZ2lzdGVyX25ldGRldmljZV9ub3RpZmllci4gV2hpbGUgdGhpcyBpcyBhbiBpbml0IGZ1bmN0aW9uIGV4ZWN1dGVkIGR1cmluZyBib290LCBpdCBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIGluIHJlYWNoYWJsZSBjb3JlIGtlcm5lbCBsb2dpYy5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogdHJ1ZVxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXG4gICAgXCJNQ1RQXCJcbiAgXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW1xuICAgIFwibWN0cF9kZXZpY2VfaW5pdFwiXG4gIF0sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBpbml0aWFsaXphdGlvbiBsb2dpYyBvZiB0aGUgTUNUUCBzdWJzeXN0ZW0gYnkgYWRkaW5nIGFuIGVycm9yIGNoZWNrIGZvciByZWdpc3Rlcl9uZXRkZXZpY2Vfbm90aWZpZXIuIFdoaWxlIHRoaXMgaXMgYW4gaW5pdCBmdW5jdGlvbiBleGVjdXRlZCBkdXJpbmcgYm9vdCwgaXQgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSBpbiByZWFjaGFibGUgY29yZSBrZXJuZWwgbG9naWMuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IHRydWVcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfV07CgkJCWlmICghcmF3RGF0YSB8fCByYXdEYXRhLmxlbmd0aCA9PT0gMCkgcmV0dXJuOwoKCQkJZHJhd1N1bW1hcnlUYWJsZXMocmF3RGF0YSk7CgkJCWRyYXdEdXJhdGlvbkNoYXJ0KHJhd0RhdGEpOwoJCQlkcmF3VG9rZW5Db25zdW1wdGlvbkNoYXJ0KHJhd0RhdGEpOwoJCX0KCgkJZnVuY3Rpb24gZHJhd1N1bW1hcnlUYWJsZXMocmF3RGF0YSkgewoJCQljb25zdCBzdGF0cyA9IHsKCQkJCWxsbTogeyBjb3VudDogMCwgdG9rZW5zOiAwLCBkdXJhdGlvbjogMCB9LAoJCQkJdG9vbDogeyBjb3VudDogMCwgZHVyYXRpb246IDAgfQoJCQl9OwoKCQkJcmF3RGF0YS5mb3JFYWNoKHMgPT4gewoJCQkJY29uc3QgZHVyID0gcy5EdXJhdGlvbiAvIDEwMDAwMDAwMDA7IAoJCQkJaWYgKHMuVHlwZSA9PT0gImxsbSIpIHsKCQkJCQlzdGF0cy5sbG0uY291bnQrKzsKCQkJCQlzdGF0cy5sbG0udG9rZW5zICs9IChzLklucHV0VG9rZW5zICsgcy5PdXRwdXRUb2tlbnMgKyBzLk91dHB1dFRob3VnaHRzVG9rZW5zKTsKCQkJCQlzdGF0cy5sbG0uZHVyYXRpb24gKz0gZHVyOwoJCQkJfSBlbHNlIGlmIChzLlR5cGUgPT09ICJ0b29sIikgewoJCQkJCXN0YXRzLnRvb2wuY291bnQrKzsKCQkJCQlzdGF0cy50b29sLmR1cmF0aW9uICs9IGR1cjsKCQkJCX0KCQkJfSk7CgoJCQljb25zdCBhdmdMbG1EdXIgPSBzdGF0cy5sbG0uY291bnQgPiAwID8gKHN0YXRzLmxsbS5kdXJhdGlvbiAvIHN0YXRzLmxsbS5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgkJCWNvbnN0IGF2Z0xsbVRva2VuID0gc3RhdHMubGxtLmNvdW50ID4gMCA/IChzdGF0cy5sbG0udG9rZW5zIC8gc3RhdHMubGxtLmNvdW50KS50b0ZpeGVkKDIpIDogMDsKCQkJY29uc3QgYXZnVG9vbER1ciA9IHN0YXRzLnRvb2wuY291bnQgPiAwID8gKHN0YXRzLnRvb2wuZHVyYXRpb24gLyBzdGF0cy50b29sLmNvdW50KS50b0ZpeGVkKDIpIDogMDsKCgkJCWNvbnN0IGxsbVN1bWFyeUNlbGxzID0gW3N0YXRzLmxsbS5jb3VudCwgc3RhdHMubGxtLnRva2VucywgYXZnTGxtVG9rZW4sIHN0YXRzLmxsbS5kdXJhdGlvbiwgYXZnTGxtRHVyXTsKCQkJY29uc3QgdG9vbFN1bW1hcnlDZWxscyA9IFtzdGF0cy50b29sLmNvdW50LCBzdGF0cy50b29sLmR1cmF0aW9uLCBhdmdUb29sRHVyXTsKCgkJCWNvbnN0IGxsbVN1bW1hcnlCb2R5ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2xsbV9zdW1tYXJ5X3N0YXRzX2JvZHknKTsKCQkJbGxtU3VtbWFyeUJvZHkuaW5uZXJIVE1MID0gIiI7CgkJCWNvbnN0IGxsbVRyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndHInKTsKCQkJbGxtU3VtYXJ5Q2VsbHMuZm9yRWFjaChjZWxsID0+IHsKCQkJCWNvbnN0IHRkID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndGQnKTsKCQkJCXRkLnRleHRDb250ZW50ID0gY2VsbDsKCQkJCWxsbVRyLmFwcGVuZENoaWxkKHRkKTsKCQkJfSk7CgkJCWxsbVN1bW1hcnlCb2R5LmFwcGVuZENoaWxkKGxsbVRyKTsKCgkJCWNvbnN0IHRvb2xTdW1tYXJ5Qm9keSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0b29sX3N1bW1hcnlfc3RhdHNfYm9keScpOwoJCQl0b29sU3VtbWFyeUJvZHkuaW5uZXJIVE1MID0gIiI7CgkJCWNvbnN0IHRvb2xUciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RyJyk7CgkJCXRvb2xTdW1tYXJ5Q2VsbHMuZm9yRWFjaChjZWxsID0+IHsKCQkJCWNvbnN0IHRkID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndGQnKTsKCQkJCXRkLnRleHRDb250ZW50ID0gY2VsbDsKCQkJCXRvb2xUci5hcHBlbmRDaGlsZCh0ZCk7CgkJCX0pOwoJCQl0b29sU3VtbWFyeUJvZHkuYXBwZW5kQ2hpbGQodG9vbFRyKTsKCQl9CgoJCWZ1bmN0aW9uIGRyYXdEdXJhdGlvbkNoYXJ0KHJhd0RhdGEpIHsKCQkJY29uc3QgZmlsdGVyZWRTdGVwcyA9IHJhd0RhdGEuZmlsdGVyKGQgPT4gWyJsbG0iLCAidG9vbCJdLmluY2x1ZGVzKGQuVHlwZSkpOwoJCQljb25zdCBkYXRhID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkRhdGFUYWJsZSgpOwoJCQlkYXRhLmFkZENvbHVtbignc3RyaW5nJywgJ1N0ZXAnKTsKCQkJZGF0YS5hZGRDb2x1bW4oJ251bWJlcicsICdEdXJhdGlvbicpOwoJCQlkYXRhLmFkZENvbHVtbih7dHlwZTogJ3N0cmluZycsIHJvbGU6ICd0b29sdGlwJ30pOyAKCgkJCWZpbHRlcmVkU3RlcHMuZm9yRWFjaChzID0+IHsKCQkJCQoJCQkJY29uc3QgZHVyID0gcy5EdXJhdGlvbiAvIDEwMDAwMDAwMDA7CgkJCQlsZXQgdG9vbHRpcCA9IHMuTmFtZTsKCQkJCWlmIChzLlR5cGUgPT09ICJsbG0iICYmIHMuVG9vbENhbGxzICYmIHMuVG9vbENhbGxzLmxlbmd0aCA+IDApIHsKCQkJCQl0b29sdGlwICs9IGBcblRvb2xzOiAke3MuVG9vbENhbGxzLmpvaW4oJywgJyl9YDsKCQkJCX0KCQkJCWRhdGEuYWRkUm93KFtgJHtzLlNlcX1gLCBkdXIsIHRvb2x0aXBdKTsKCQkJfSk7CgoJCQljb25zdCBvcHRpb25zID0gewoJCQkJdGl0bGU6ICdUaW1lIENvbnN1bXB0aW9uIG9mIExMTS9Ub29sIENhbGxzJywKCQkJCWhBeGlzOiB7CgkJCQkJdGl0bGU6ICdMTE0vVG9vbCBTdGVwcycsCgkJCQl9LAoJCQkJdkF4aXM6IHsgdGl0bGU6ICdTZWNvbmRzJyB9LAoJCQkJbGVnZW5kOiB7IHBvc2l0aW9uOiAnbm9uZScgfSwKCQkJCWJhcjogeyBncm91cFdpZHRoOiAnNzUlJyB9LAoJCQkJY2hhcnRBcmVhOiB7IHdpZHRoOiAnODUlJywgaGVpZ2h0OiAnNzAlJyB9LAoJCQkJaGVpZ2h0OiA0MDAKCQkJfTsKCgkJCWNvbnN0IGNoYXJ0ID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkNvbHVtbkNoYXJ0KGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdkdXJhdGlvbl9jaGFydF9kaXYnKSk7CgkJCWNoYXJ0LmRyYXcoZGF0YSwgb3B0aW9ucyk7CgkJfQoKCQlmdW5jdGlvbiBkcmF3VG9rZW5Db25zdW1wdGlvbkNoYXJ0KHJhd0RhdGEpIHsKCQkJY29uc3QgbGxtU3RlcHMgPSByYXdEYXRhLmZpbHRlcihkID0+IGQuVHlwZSA9PT0gImxsbSIpOwoJCQlpZiAobGxtU3RlcHMubGVuZ3RoID09PSAwKSByZXR1cm47CgoJCQljb25zdCBkYXRhID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkRhdGFUYWJsZSgpOwoJCQlkYXRhLmFkZENvbHVtbignc3RyaW5nJywgJ1N0ZXAnKTsJCQkKCQkJZGF0YS5hZGRDb2x1bW4oJ251bWJlcicsICdUb2tlbnMnKTsJCQkKCQkJZGF0YS5hZGRDb2x1bW4oe3R5cGU6ICdzdHJpbmcnLCByb2xlOiAnc3R5bGUnfSk7CQoJCQlkYXRhLmFkZENvbHVtbih7dHlwZTogJ3N0cmluZycsIHJvbGU6ICd0b29sdGlwJ30pOwkKCgkJCWNvbnN0IGFnZW50Q29sb3JzID0ge307CgkJCWNvbnN0IHBhbGV0dGUgPSBbJyM0Mjg1RjQnLCAnI0RCNDQzNycsICcjRjRCNDAwJywgJyMwRjlENTgnLCAnI0FCNDdCQycsICcjMDBBQ0MxJ107CgkJCWxldCBjb2xvcklkeCA9IDA7CgkJCWNvbnN0IGFnZW50TExNQ291bnRzID0ge307CgkJCWxsbVN0ZXBzLmZvckVhY2gocyA9PiB7CgkJCQlpZiAoIWFnZW50Q29sb3JzW3MuTmFtZV0pIHsKCQkJCQlhZ2VudENvbG9yc1tzLk5hbWVdID0gcGFsZXR0ZVtjb2xvcklkeCAlIHBhbGV0dGUubGVuZ3RoXTsKCQkJCQljb2xvcklkeCsrOwoJCQkJfQoKCQkJCWFnZW50TExNQ291bnRzW3MuTmFtZV0gPSAoYWdlbnRMTE1Db3VudHNbcy5OYW1lXSB8fCAwKSArIDE7CgkJCQljb25zdCBsYWJlbCA9IGAke3MuTmFtZX0tJHthZ2VudExMTUNvdW50c1tzLk5hbWVdfWA7CgkJCQljb25zdCB0b3RhbFRva2VucyA9IHMuSW5wdXRUb2tlbnMgKyBzLk91dHB1dFRva2VucyArIHMuT3V0cHV0VGhvdWdodHNUb2tlbnM7CgkJCQljb25zdCBzdHlsZSA9IGBjb2xvcjogJHthZ2VudENvbG9yc1tzLk5hbWVdfWA7CgkJCQlsZXQgdG9vbHRpcCA9IGBUb3RhbCBUb2tlbnM6ICR7dG90YWxUb2tlbnN9XG4oSW46ICR7cy5JbnB1dFRva2Vuc30sIE91dDogJHtzLk91dHB1dFRva2Vuc30sIFRob3VnaHRzOiAke3MuT3V0cHV0VGhvdWdodHNUb2tlbnN9KWA7CgkJCQlpZiAocy5Ub29sQ2FsbHMgJiYgcy5Ub29sQ2FsbHMubGVuZ3RoID4gMCkgewoJCQkJCXRvb2x0aXAgKz0gYFxuVG9vbHM6ICR7cy5Ub29sQ2FsbHMuam9pbignLCAnKX1gOwoJCQkJfQoKCQkJCWRhdGEuYWRkUm93KFtsYWJlbCwgdG90YWxUb2tlbnMsIHN0eWxlLCB0b29sdGlwXSk7CgkJCX0pOwoKCQkJY29uc3Qgb3B0aW9ucyA9IHsKCQkJCXRpdGxlOiAnVG9rZW4gQ29uc3VtcHRpb24gYnkgTExNIENhbGxzJywKCQkJCWhBeGlzOiB7CgkJCQkJdGl0bGU6ICdMTE0gQ2FsbCBTZXF1ZW5jZScsCgkJCQl9LAoJCQkJdkF4aXM6IHsgdGl0bGU6ICdDb25zdW1lZCBUb2tlbnMnIH0sCgkJCQlsZWdlbmQ6IHsgcG9zaXRpb246ICdub25lJyB9LAoJCQkJYmFyOiB7IGdyb3VwV2lkdGg6ICc3NSUnIH0sCgkJCQljaGFydEFyZWE6IHsgd2lkdGg6ICc4NSUnLCBoZWlnaHQ6ICc3MCUnIH0sCgkJCQloZWlnaHQ6IDQwMAoJCQl9OwoKCQkJY29uc3QgY2hhcnQgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uQ29sdW1uQ2hhcnQoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rva2VuX2NoYXJ0X2RpdicpKTsKCQkJY2hhcnQuZHJhdyhkYXRhLCBvcHRpb25zKTsKCQl9CgkJbGV0IGFsbEV4cGFuZGVkID0gZmFsc2U7CgkJZnVuY3Rpb24gdG9nZ2xlQWxsRGV0YWlscygpIHsKCQkJYWxsRXhwYW5kZWQgPSAhYWxsRXhwYW5kZWQ7CgkJCWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJ2RldGFpbHMnKS5mb3JFYWNoKGQgPT4gewoJCQkJaWYgKGFsbEV4cGFuZGVkKSBkLnNldEF0dHJpYnV0ZSgnb3BlbicsICcnKTsKCQkJCWVsc2UgZC5yZW1vdmVBdHRyaWJ1dGUoJ29wZW4nKTsKCQkJfSk7CgkJfQoJPC9zY3JpcHQ+CgoKPC9ib2R5Pgo8L2h0bWw+Cg==" },ValueFrom:&ValueFrom{Path:/output/result.json,JSONPath:,JQFilter:,Parameter:,Default:nil,Supplied:nil,Event:,Expression:,ConfigMapKeyRef:nil,},GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},Result:nil,ExitCode:*0,} --------- Name: series-workflowvgp4k[1] Phase: Succeeded StartedAt: 2026-07-20 08:49:37 +0000 UTC FinishedAt: 2026-07-20 08:49:37 +0000 UTC Input: nil Output: nil --------- Name: series-workflowvgp4k[1].abort-on-skip-outcome Phase: Skipped StartedAt: 2026-07-20 08:49:37 +0000 UTC FinishedAt: 2026-07-20 08:49:37 +0000 UTC Input: nil Output: nil --------- Name: series-workflowvgp4k[2] Phase: Succeeded StartedAt: 2026-07-20 08:49:37 +0000 UTC FinishedAt: 2026-07-20 13:42:50 +0000 UTC Input: nil Output: nil --------- Name: series-workflowvgp4k[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"e13caf1c26587434f0b768193100440939c0fb91","config_name":"upstream-apparmor-kasan.config","enable_configs":["MCTP"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["mctp_device_init"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"e13caf1c26587434f0b768193100440939c0fb91","config_name":"upstream-apparmor-kasan.config","enable_configs":["MCTP"],"series_id":"5fb48eb6-6cdd-4a24-a50f-cc60c1d4c970","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN) Phase: Succeeded StartedAt: 2026-07-20 08:49:37 +0000 UTC FinishedAt: 2026-07-20 13:42:50 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:element,Default:nil,Value:*{"base":{"arch":"amd64","commit_hash":"e13caf1c26587434f0b768193100440939c0fb91","config_name":"upstream-apparmor-kasan.config","enable_configs":["MCTP"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},"fuzz":{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["mctp_device_init"],"skip_cover_check":false},"patched":{"arch":"amd64","commit_hash":"e13caf1c26587434f0b768193100440939c0fb91","config_name":"upstream-apparmor-kasan.config","enable_configs":["MCTP"],"series_id":"5fb48eb6-6cdd-4a24-a50f-cc60c1d4c970","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},"retest":null,"track":"KASAN"},ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},} Output: nil --------- Name: series-workflowvgp4k[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"e13caf1c26587434f0b768193100440939c0fb91","config_name":"upstream-apparmor-kasan.config","enable_configs":["MCTP"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["mctp_device_init"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"e13caf1c26587434f0b768193100440939c0fb91","config_name":"upstream-apparmor-kasan.config","enable_configs":["MCTP"],"series_id":"5fb48eb6-6cdd-4a24-a50f-cc60c1d4c970","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[0] Phase: Succeeded StartedAt: 2026-07-20 08:49:37 +0000 UTC FinishedAt: 2026-07-20 08:49:47 +0000 UTC Input: nil Output: nil --------- Name: series-workflowvgp4k[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"e13caf1c26587434f0b768193100440939c0fb91","config_name":"upstream-apparmor-kasan.config","enable_configs":["MCTP"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["mctp_device_init"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"e13caf1c26587434f0b768193100440939c0fb91","config_name":"upstream-apparmor-kasan.config","enable_configs":["MCTP"],"series_id":"5fb48eb6-6cdd-4a24-a50f-cc60c1d4c970","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[0].save-base-req Phase: Succeeded StartedAt: 2026-07-20 08:49:37 +0000 UTC FinishedAt: 2026-07-20 08:49:43 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:data,Default:nil,Value:*{"arch":"amd64","commit_hash":"e13caf1c26587434f0b768193100440939c0fb91","config_name":"upstream-apparmor-kasan.config","enable_configs":["MCTP"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},} Output: &Outputs{Parameters:[]Parameter{},Artifacts:[]Artifact{Artifact{Name:artifact,Path:/tmp/artifact,Mode:nil,From:,ArtifactLocation:ArtifactLocation{ArchiveLogs:nil,S3:nil,Git:nil,HTTP:nil,Artifactory:nil,HDFS:nil,Raw:nil,OSS:nil,GCS:&GCSArtifact{GCSBucket:GCSBucket{Bucket:,ServiceAccountKeySecret:nil,},Key:series-workflowvgp4k/series-workflowvgp4k-convert-artifact-1042792414/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowvgp4k[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"e13caf1c26587434f0b768193100440939c0fb91","config_name":"upstream-apparmor-kasan.config","enable_configs":["MCTP"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["mctp_device_init"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"e13caf1c26587434f0b768193100440939c0fb91","config_name":"upstream-apparmor-kasan.config","enable_configs":["MCTP"],"series_id":"5fb48eb6-6cdd-4a24-a50f-cc60c1d4c970","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[1] Phase: Succeeded StartedAt: 2026-07-20 08:49:47 +0000 UTC FinishedAt: 2026-07-20 09:37:30 +0000 UTC Input: nil Output: nil --------- Name: series-workflowvgp4k[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"e13caf1c26587434f0b768193100440939c0fb91","config_name":"upstream-apparmor-kasan.config","enable_configs":["MCTP"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["mctp_device_init"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"e13caf1c26587434f0b768193100440939c0fb91","config_name":"upstream-apparmor-kasan.config","enable_configs":["MCTP"],"series_id":"5fb48eb6-6cdd-4a24-a50f-cc60c1d4c970","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[1].base-build Phase: Succeeded StartedAt: 2026-07-20 08:49:47 +0000 UTC FinishedAt: 2026-07-20 09:37:30 +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:*a4d4e02a-8810-4a63-b437-63463fa3663e,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-workflowvgp4k/series-workflowvgp4k-convert-artifact-1042792414/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": "31b63397-783a-4fcd-bce8-101b89a27bc0", "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-workflowvgp4k/series-workflowvgp4k-build-action-329507012/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowvgp4k[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"e13caf1c26587434f0b768193100440939c0fb91","config_name":"upstream-apparmor-kasan.config","enable_configs":["MCTP"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["mctp_device_init"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"e13caf1c26587434f0b768193100440939c0fb91","config_name":"upstream-apparmor-kasan.config","enable_configs":["MCTP"],"series_id":"5fb48eb6-6cdd-4a24-a50f-cc60c1d4c970","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[1].base-build(0) Phase: Succeeded StartedAt: 2026-07-20 08:49:47 +0000 UTC FinishedAt: 2026-07-20 09:37:21 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:findings,Default:nil,Value:*false,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:test-name,Default:nil,Value:*[KASAN] Build Base,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:smoke-build,Default:nil,Value:*false,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:session-id,Default:nil,Value:*a4d4e02a-8810-4a63-b437-63463fa3663e,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-workflowvgp4k/series-workflowvgp4k-convert-artifact-1042792414/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": "31b63397-783a-4fcd-bce8-101b89a27bc0", "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-workflowvgp4k/series-workflowvgp4k-build-action-329507012/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowvgp4k[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"e13caf1c26587434f0b768193100440939c0fb91","config_name":"upstream-apparmor-kasan.config","enable_configs":["MCTP"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["mctp_device_init"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"e13caf1c26587434f0b768193100440939c0fb91","config_name":"upstream-apparmor-kasan.config","enable_configs":["MCTP"],"series_id":"5fb48eb6-6cdd-4a24-a50f-cc60c1d4c970","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[2] Phase: Succeeded StartedAt: 2026-07-20 09:37:30 +0000 UTC FinishedAt: 2026-07-20 09:37:30 +0000 UTC Input: nil Output: nil --------- Name: series-workflowvgp4k[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"e13caf1c26587434f0b768193100440939c0fb91","config_name":"upstream-apparmor-kasan.config","enable_configs":["MCTP"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["mctp_device_init"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"e13caf1c26587434f0b768193100440939c0fb91","config_name":"upstream-apparmor-kasan.config","enable_configs":["MCTP"],"series_id":"5fb48eb6-6cdd-4a24-a50f-cc60c1d4c970","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[2].abort-if-base-build-failed Phase: Skipped StartedAt: 2026-07-20 09:37:30 +0000 UTC FinishedAt: 2026-07-20 09:37:30 +0000 UTC Input: nil Output: nil --------- Name: series-workflowvgp4k[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"e13caf1c26587434f0b768193100440939c0fb91","config_name":"upstream-apparmor-kasan.config","enable_configs":["MCTP"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["mctp_device_init"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"e13caf1c26587434f0b768193100440939c0fb91","config_name":"upstream-apparmor-kasan.config","enable_configs":["MCTP"],"series_id":"5fb48eb6-6cdd-4a24-a50f-cc60c1d4c970","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[3] Phase: Succeeded StartedAt: 2026-07-20 09:37:30 +0000 UTC FinishedAt: 2026-07-20 09:37:41 +0000 UTC Input: nil Output: nil --------- Name: series-workflowvgp4k[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"e13caf1c26587434f0b768193100440939c0fb91","config_name":"upstream-apparmor-kasan.config","enable_configs":["MCTP"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["mctp_device_init"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"e13caf1c26587434f0b768193100440939c0fb91","config_name":"upstream-apparmor-kasan.config","enable_configs":["MCTP"],"series_id":"5fb48eb6-6cdd-4a24-a50f-cc60c1d4c970","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[3].save-patched-req Phase: Succeeded StartedAt: 2026-07-20 09:37:30 +0000 UTC FinishedAt: 2026-07-20 09:37:37 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:data,Default:nil,Value:*{"arch":"amd64","commit_hash":"e13caf1c26587434f0b768193100440939c0fb91","config_name":"upstream-apparmor-kasan.config","enable_configs":["MCTP"],"series_id":"5fb48eb6-6cdd-4a24-a50f-cc60c1d4c970","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},} Output: &Outputs{Parameters:[]Parameter{},Artifacts:[]Artifact{Artifact{Name:artifact,Path:/tmp/artifact,Mode:nil,From:,ArtifactLocation:ArtifactLocation{ArchiveLogs:nil,S3:nil,Git:nil,HTTP:nil,Artifactory:nil,HDFS:nil,Raw:nil,OSS:nil,GCS:&GCSArtifact{GCSBucket:GCSBucket{Bucket:,ServiceAccountKeySecret:nil,},Key:series-workflowvgp4k/series-workflowvgp4k-convert-artifact-1573568401/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowvgp4k[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"e13caf1c26587434f0b768193100440939c0fb91","config_name":"upstream-apparmor-kasan.config","enable_configs":["MCTP"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["mctp_device_init"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"e13caf1c26587434f0b768193100440939c0fb91","config_name":"upstream-apparmor-kasan.config","enable_configs":["MCTP"],"series_id":"5fb48eb6-6cdd-4a24-a50f-cc60c1d4c970","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[4] Phase: Succeeded StartedAt: 2026-07-20 09:37:41 +0000 UTC FinishedAt: 2026-07-20 09:40:50 +0000 UTC Input: nil Output: nil --------- Name: series-workflowvgp4k[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"e13caf1c26587434f0b768193100440939c0fb91","config_name":"upstream-apparmor-kasan.config","enable_configs":["MCTP"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["mctp_device_init"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"e13caf1c26587434f0b768193100440939c0fb91","config_name":"upstream-apparmor-kasan.config","enable_configs":["MCTP"],"series_id":"5fb48eb6-6cdd-4a24-a50f-cc60c1d4c970","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[4].boot-test-base Phase: Succeeded StartedAt: 2026-07-20 09:37:41 +0000 UTC FinishedAt: 2026-07-20 09:40:40 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:base-build-id,Default:nil,Value:*31b63397-783a-4fcd-bce8-101b89a27bc0,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-workflowvgp4k/series-workflowvgp4k-build-action-329507012/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-workflowvgp4k[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"e13caf1c26587434f0b768193100440939c0fb91","config_name":"upstream-apparmor-kasan.config","enable_configs":["MCTP"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["mctp_device_init"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"e13caf1c26587434f0b768193100440939c0fb91","config_name":"upstream-apparmor-kasan.config","enable_configs":["MCTP"],"series_id":"5fb48eb6-6cdd-4a24-a50f-cc60c1d4c970","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[5] Phase: Succeeded StartedAt: 2026-07-20 09:40:50 +0000 UTC FinishedAt: 2026-07-20 09:40:50 +0000 UTC Input: nil Output: nil --------- Name: series-workflowvgp4k[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"e13caf1c26587434f0b768193100440939c0fb91","config_name":"upstream-apparmor-kasan.config","enable_configs":["MCTP"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["mctp_device_init"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"e13caf1c26587434f0b768193100440939c0fb91","config_name":"upstream-apparmor-kasan.config","enable_configs":["MCTP"],"series_id":"5fb48eb6-6cdd-4a24-a50f-cc60c1d4c970","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[5].abort-if-base-boot-failed Phase: Skipped StartedAt: 2026-07-20 09:40:50 +0000 UTC FinishedAt: 2026-07-20 09:40:50 +0000 UTC Input: nil Output: nil --------- Name: series-workflowvgp4k[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"e13caf1c26587434f0b768193100440939c0fb91","config_name":"upstream-apparmor-kasan.config","enable_configs":["MCTP"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["mctp_device_init"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"e13caf1c26587434f0b768193100440939c0fb91","config_name":"upstream-apparmor-kasan.config","enable_configs":["MCTP"],"series_id":"5fb48eb6-6cdd-4a24-a50f-cc60c1d4c970","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[6] Phase: Succeeded StartedAt: 2026-07-20 09:40:50 +0000 UTC FinishedAt: 2026-07-20 10:38:34 +0000 UTC Input: nil Output: nil --------- Name: series-workflowvgp4k[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"e13caf1c26587434f0b768193100440939c0fb91","config_name":"upstream-apparmor-kasan.config","enable_configs":["MCTP"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["mctp_device_init"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"e13caf1c26587434f0b768193100440939c0fb91","config_name":"upstream-apparmor-kasan.config","enable_configs":["MCTP"],"series_id":"5fb48eb6-6cdd-4a24-a50f-cc60c1d4c970","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[6].patched-build Phase: Succeeded StartedAt: 2026-07-20 09:40:50 +0000 UTC FinishedAt: 2026-07-20 10:38:34 +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:*a4d4e02a-8810-4a63-b437-63463fa3663e,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-workflowvgp4k/series-workflowvgp4k-convert-artifact-1573568401/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": "0d9244e3-d112-4d95-bb53-b747e03f1d58", "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-workflowvgp4k/series-workflowvgp4k-build-action-333557597/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowvgp4k[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"e13caf1c26587434f0b768193100440939c0fb91","config_name":"upstream-apparmor-kasan.config","enable_configs":["MCTP"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["mctp_device_init"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"e13caf1c26587434f0b768193100440939c0fb91","config_name":"upstream-apparmor-kasan.config","enable_configs":["MCTP"],"series_id":"5fb48eb6-6cdd-4a24-a50f-cc60c1d4c970","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[6].patched-build(0) Phase: Succeeded StartedAt: 2026-07-20 09:40:50 +0000 UTC FinishedAt: 2026-07-20 10:38:25 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:findings,Default:nil,Value:*true,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:test-name,Default:nil,Value:*[KASAN] Build Patched,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:smoke-build,Default:nil,Value:*false,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:session-id,Default:nil,Value:*a4d4e02a-8810-4a63-b437-63463fa3663e,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-workflowvgp4k/series-workflowvgp4k-convert-artifact-1573568401/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": "0d9244e3-d112-4d95-bb53-b747e03f1d58", "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-workflowvgp4k/series-workflowvgp4k-build-action-333557597/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowvgp4k[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"e13caf1c26587434f0b768193100440939c0fb91","config_name":"upstream-apparmor-kasan.config","enable_configs":["MCTP"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["mctp_device_init"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"e13caf1c26587434f0b768193100440939c0fb91","config_name":"upstream-apparmor-kasan.config","enable_configs":["MCTP"],"series_id":"5fb48eb6-6cdd-4a24-a50f-cc60c1d4c970","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[7] Phase: Succeeded StartedAt: 2026-07-20 10:38:34 +0000 UTC FinishedAt: 2026-07-20 10:38:34 +0000 UTC Input: nil Output: nil --------- Name: series-workflowvgp4k[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"e13caf1c26587434f0b768193100440939c0fb91","config_name":"upstream-apparmor-kasan.config","enable_configs":["MCTP"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["mctp_device_init"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"e13caf1c26587434f0b768193100440939c0fb91","config_name":"upstream-apparmor-kasan.config","enable_configs":["MCTP"],"series_id":"5fb48eb6-6cdd-4a24-a50f-cc60c1d4c970","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[7].abort-if-patched-build-failed Phase: Skipped StartedAt: 2026-07-20 10:38:34 +0000 UTC FinishedAt: 2026-07-20 10:38:34 +0000 UTC Input: nil Output: nil --------- Name: series-workflowvgp4k[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"e13caf1c26587434f0b768193100440939c0fb91","config_name":"upstream-apparmor-kasan.config","enable_configs":["MCTP"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["mctp_device_init"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"e13caf1c26587434f0b768193100440939c0fb91","config_name":"upstream-apparmor-kasan.config","enable_configs":["MCTP"],"series_id":"5fb48eb6-6cdd-4a24-a50f-cc60c1d4c970","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[8] Phase: Succeeded StartedAt: 2026-07-20 10:38:34 +0000 UTC FinishedAt: 2026-07-20 10:40:51 +0000 UTC Input: nil Output: nil --------- Name: series-workflowvgp4k[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"e13caf1c26587434f0b768193100440939c0fb91","config_name":"upstream-apparmor-kasan.config","enable_configs":["MCTP"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["mctp_device_init"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"e13caf1c26587434f0b768193100440939c0fb91","config_name":"upstream-apparmor-kasan.config","enable_configs":["MCTP"],"series_id":"5fb48eb6-6cdd-4a24-a50f-cc60c1d4c970","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[8].boot-test-patched Phase: Succeeded StartedAt: 2026-07-20 10:38:34 +0000 UTC FinishedAt: 2026-07-20 10:40:41 +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:*0d9244e3-d112-4d95-bb53-b747e03f1d58,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-workflowvgp4k/series-workflowvgp4k-build-action-333557597/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-workflowvgp4k[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"e13caf1c26587434f0b768193100440939c0fb91","config_name":"upstream-apparmor-kasan.config","enable_configs":["MCTP"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["mctp_device_init"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"e13caf1c26587434f0b768193100440939c0fb91","config_name":"upstream-apparmor-kasan.config","enable_configs":["MCTP"],"series_id":"5fb48eb6-6cdd-4a24-a50f-cc60c1d4c970","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[10] Phase: Succeeded StartedAt: 2026-07-20 10:40:51 +0000 UTC FinishedAt: 2026-07-20 13:42:50 +0000 UTC Input: nil Output: nil --------- Name: series-workflowvgp4k[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"e13caf1c26587434f0b768193100440939c0fb91","config_name":"upstream-apparmor-kasan.config","enable_configs":["MCTP"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["mctp_device_init"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"e13caf1c26587434f0b768193100440939c0fb91","config_name":"upstream-apparmor-kasan.config","enable_configs":["MCTP"],"series_id":"5fb48eb6-6cdd-4a24-a50f-cc60c1d4c970","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[10].run-fuzz Phase: Succeeded StartedAt: 2026-07-20 10:40:51 +0000 UTC FinishedAt: 2026-07-20 13:42:50 +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-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["mctp_device_init"],"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:*31b63397-783a-4fcd-bce8-101b89a27bc0,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:patched-build-id,Default:nil,Value:*0d9244e3-d112-4d95-bb53-b747e03f1d58,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-workflowvgp4k/series-workflowvgp4k-build-action-329507012/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-workflowvgp4k/series-workflowvgp4k-build-action-333557597/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},} Output: nil --------- Name: series-workflowvgp4k[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"e13caf1c26587434f0b768193100440939c0fb91","config_name":"upstream-apparmor-kasan.config","enable_configs":["MCTP"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["mctp_device_init"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"e13caf1c26587434f0b768193100440939c0fb91","config_name":"upstream-apparmor-kasan.config","enable_configs":["MCTP"],"series_id":"5fb48eb6-6cdd-4a24-a50f-cc60c1d4c970","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[10].run-fuzz[0] Phase: Succeeded StartedAt: 2026-07-20 10:40:51 +0000 UTC FinishedAt: 2026-07-20 10:41:01 +0000 UTC Input: nil Output: nil --------- Name: series-workflowvgp4k[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"e13caf1c26587434f0b768193100440939c0fb91","config_name":"upstream-apparmor-kasan.config","enable_configs":["MCTP"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["mctp_device_init"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"e13caf1c26587434f0b768193100440939c0fb91","config_name":"upstream-apparmor-kasan.config","enable_configs":["MCTP"],"series_id":"5fb48eb6-6cdd-4a24-a50f-cc60c1d4c970","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[10].run-fuzz[0].save-fuzz-config Phase: Succeeded StartedAt: 2026-07-20 10:40:51 +0000 UTC FinishedAt: 2026-07-20 10:40:56 +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-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["mctp_device_init"],"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-workflowvgp4k/series-workflowvgp4k-convert-artifact-2922848966/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowvgp4k[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"e13caf1c26587434f0b768193100440939c0fb91","config_name":"upstream-apparmor-kasan.config","enable_configs":["MCTP"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["mctp_device_init"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"e13caf1c26587434f0b768193100440939c0fb91","config_name":"upstream-apparmor-kasan.config","enable_configs":["MCTP"],"series_id":"5fb48eb6-6cdd-4a24-a50f-cc60c1d4c970","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[10].run-retest Phase: Skipped StartedAt: 2026-07-20 10:40:51 +0000 UTC FinishedAt: 2026-07-20 10:40:51 +0000 UTC Input: nil Output: nil --------- Name: series-workflowvgp4k[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"e13caf1c26587434f0b768193100440939c0fb91","config_name":"upstream-apparmor-kasan.config","enable_configs":["MCTP"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["mctp_device_init"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"e13caf1c26587434f0b768193100440939c0fb91","config_name":"upstream-apparmor-kasan.config","enable_configs":["MCTP"],"series_id":"5fb48eb6-6cdd-4a24-a50f-cc60c1d4c970","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[9] Phase: Succeeded StartedAt: 2026-07-20 10:40:51 +0000 UTC FinishedAt: 2026-07-20 10:40:51 +0000 UTC Input: nil Output: nil --------- Name: series-workflowvgp4k[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"e13caf1c26587434f0b768193100440939c0fb91","config_name":"upstream-apparmor-kasan.config","enable_configs":["MCTP"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["mctp_device_init"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"e13caf1c26587434f0b768193100440939c0fb91","config_name":"upstream-apparmor-kasan.config","enable_configs":["MCTP"],"series_id":"5fb48eb6-6cdd-4a24-a50f-cc60c1d4c970","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[9].abort-if-patched-boot-failed Phase: Skipped StartedAt: 2026-07-20 10:40:51 +0000 UTC FinishedAt: 2026-07-20 10:40:51 +0000 UTC Input: nil Output: nil --------- Name: series-workflowvgp4k[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"e13caf1c26587434f0b768193100440939c0fb91","config_name":"upstream-apparmor-kasan.config","enable_configs":["MCTP"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["mctp_device_init"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"e13caf1c26587434f0b768193100440939c0fb91","config_name":"upstream-apparmor-kasan.config","enable_configs":["MCTP"],"series_id":"5fb48eb6-6cdd-4a24-a50f-cc60c1d4c970","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[10].run-fuzz[1] Phase: Succeeded StartedAt: 2026-07-20 10:41:01 +0000 UTC FinishedAt: 2026-07-20 13:42:50 +0000 UTC Input: nil Output: nil --------- Name: series-workflowvgp4k[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"e13caf1c26587434f0b768193100440939c0fb91","config_name":"upstream-apparmor-kasan.config","enable_configs":["MCTP"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["mctp_device_init"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"e13caf1c26587434f0b768193100440939c0fb91","config_name":"upstream-apparmor-kasan.config","enable_configs":["MCTP"],"series_id":"5fb48eb6-6cdd-4a24-a50f-cc60c1d4c970","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[10].run-fuzz[1].fuzz Phase: Succeeded StartedAt: 2026-07-20 10:41:01 +0000 UTC FinishedAt: 2026-07-20 13:42:40 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:base-build-id,Default:nil,Value:*31b63397-783a-4fcd-bce8-101b89a27bc0,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:patched-build-id,Default:nil,Value:*0d9244e3-d112-4d95-bb53-b747e03f1d58,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-workflowvgp4k/series-workflowvgp4k-build-action-329507012/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-workflowvgp4k/series-workflowvgp4k-build-action-333557597/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-workflowvgp4k/series-workflowvgp4k-convert-artifact-2922848966/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,}