Name: series-workflowwtb8f Phase: Succeeded StartedAt: 2026-07-20 08:18:29 +0000 UTC FinishedAt: 2026-07-20 12:57:36 +0000 UTC Input: nil Output: nil --------- Name: series-workflowwtb8f[0] Phase: Succeeded StartedAt: 2026-07-20 08:18:29 +0000 UTC FinishedAt: 2026-07-20 08:43:53 +0000 UTC Input: nil Output: nil --------- Name: series-workflowwtb8f[0].run-triage Phase: Succeeded StartedAt: 2026-07-20 08:18:29 +0000 UTC FinishedAt: 2026-07-20 08:43:53 +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": [ "VLAN_8021Q" ], "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": [ "VLAN_8021Q" ], "series_id": "baacc887-d8ac-4ad9-986e-4738d0c88ecb" }, "track": "KASAN", "fuzz": { "focus": [ "net" ], "focus_symbols": [ "vlan_dev_init", "vlan_transfer_features" ], "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+CgkJCTx0ZD4yMDI2LzA3LzIwIDA4OjQzPC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O1ZMQU5fODAyMVEmIzM0OwogIF0sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogWwogICAgJiMzNDt2bGFuX2Rldl9pbml0JiMzNDssCiAgICAmIzM0O3ZsYW5fdHJhbnNmZXJfZmVhdHVyZXMmIzM0OwogIF0sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggcmVtb3ZlcyBoYXJkd2FyZSBvZmZsb2FkLXNwZWNpZmljIGhlYWRlciBvcGVyYXRpb25zIGZvciBWTEFOIGRldmljZXMsIGZvcmNpbmcgYWxsIFZMQU4gZGV2aWNlcyB0byB1c2UgdGhlIHN0YW5kYXJkIFZMQU4gaGVhZGVyIG9wZXJhdGlvbnMgYW5kIGhhcmQgaGVhZGVyIGxlbmd0aC4gVGhpcyBhZmZlY3RzIFZMQU4gZGV2aWNlIGluaXRpYWxpemF0aW9uIGFuZCBmZWF0dXJlIHRyYW5zZmVyLCB3aGljaCBhcmUgcmVhY2hhYmxlIGNvcmUgbmV0d29ya2luZyBwYXRocy4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiB0cnVlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xLzE8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yMCAwODo0MzwvdGQ+CgkJCTx0ZD5hY3Rpb248L3RkPgoJCQk8dGQ+cmVhZC1wYXRjaC1kaWZmPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7UGF0Y2hEaWZmJiMzNDs6ICYjMzQ7Y29tbWl0IDUyOTVlMTRjZWI1MDUyYmQ4N2YzODEzYWM1MTEyMGQ0NzllMjJlMzdcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cdTAwM2VcbkRhdGU6ICAgTW9uIEp1bCAyMCAwODo0MzowMyAyMDI2ICYjNDM7MDAwMFxuXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XG5cbmRpZmYgLS1naXQgYS9uZXQvODAyMXEvdmxhbl9kZXYuYyBiL25ldC84MDIxcS92bGFuX2Rldi5jXG5pbmRleCBlYzI1NjliM2Y4ZGFjNi4uYWNmN2Y1MmQxZWIyMTkgMTAwNjQ0XG4tLS0gYS9uZXQvODAyMXEvdmxhbl9kZXYuY1xuJiM0MzsmIzQzOyYjNDM7IGIvbmV0LzgwMjFxL3ZsYW5fZGV2LmNcbkBAIC01MDIsMjYgJiM0Mzs1MDIsNiBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IGhlYWRlcl9vcHMgdmxhbl9oZWFkZXJfb3BzID0ge1xuIFx0LnBhcnNlX3Byb3RvY29sID0gdmxhbl9wYXJzZV9wcm90b2NvbCxcbiB9O1xuIFxuLXN0YXRpYyBpbnQgdmxhbl9wYXNzdGhydV9oYXJkX2hlYWRlcihzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3QgbmV0X2RldmljZSAqZGV2LFxuLVx0XHRcdFx0ICAgICB1bnNpZ25lZCBzaG9ydCB0eXBlLFxuLVx0XHRcdFx0ICAgICBjb25zdCB2b2lkICpkYWRkciwgY29uc3Qgdm9pZCAqc2FkZHIsXG4tXHRcdFx0XHQgICAgIHVuc2lnbmVkIGludCBsZW4pXG4te1xuLVx0c3RydWN0IHZsYW5fZGV2X3ByaXYgKnZsYW4gPSB2bGFuX2Rldl9wcml2KGRldik7XG4tXHRzdHJ1Y3QgbmV0X2RldmljZSAqcmVhbF9kZXYgPSB2bGFuLVx1MDAzZXJlYWxfZGV2O1xuLVxuLVx0aWYgKHNhZGRyID09IE5VTEwpXG4tXHRcdHNhZGRyID0gZGV2LVx1MDAzZWRldl9hZGRyO1xuLVxuLVx0cmV0dXJuIGRldl9oYXJkX2hlYWRlcihza2IsIHJlYWxfZGV2LCB0eXBlLCBkYWRkciwgc2FkZHIsIGxlbik7XG4tfVxuLVxuLXN0YXRpYyBjb25zdCBzdHJ1Y3QgaGVhZGVyX29wcyB2bGFuX3Bhc3N0aHJ1X2hlYWRlcl9vcHMgPSB7XG4tXHQuY3JlYXRlXHQgPSB2bGFuX3Bhc3N0aHJ1X2hhcmRfaGVhZGVyLFxuLVx0LnBhcnNlXHQgPSBldGhfaGVhZGVyX3BhcnNlLFxuLVx0LnBhcnNlX3Byb3RvY29sID0gdmxhbl9wYXJzZV9wcm90b2NvbCxcbi19O1xuLVxuIHN0YXRpYyBjb25zdCBzdHJ1Y3QgZGV2aWNlX3R5cGUgdmxhbl90eXBlID0ge1xuIFx0Lm5hbWVcdD0gXCYjMzQ7dmxhblwmIzM0OyxcbiB9O1xuQEAgLTU4MSwxMyAmIzQzOzU2MSw4IEBAIHN0YXRpYyBpbnQgdmxhbl9kZXZfaW5pdChzdHJ1Y3QgbmV0X2RldmljZSAqZGV2KVxuICNlbmRpZlxuIFxuIFx0ZGV2LVx1MDAzZW5lZWRlZF9oZWFkcm9vbSA9IHJlYWxfZGV2LVx1MDAzZW5lZWRlZF9oZWFkcm9vbTtcbi1cdGlmICh2bGFuX2h3X29mZmxvYWRfY2FwYWJsZShyZWFsX2Rldi1cdTAwM2VmZWF0dXJlcywgdmxhbi1cdTAwM2V2bGFuX3Byb3RvKSkge1xuLVx0XHRkZXYtXHUwMDNlaGVhZGVyX29wcyAgICAgID0gXHUwMDI2dmxhbl9wYXNzdGhydV9oZWFkZXJfb3BzO1xuLVx0XHRkZXYtXHUwMDNlaGFyZF9oZWFkZXJfbGVuID0gcmVhbF9kZXYtXHUwMDNlaGFyZF9oZWFkZXJfbGVuO1xuLVx0fSBlbHNlIHtcbi1cdFx0ZGV2LVx1MDAzZWhlYWRlcl9vcHMgICAgICA9IFx1MDAyNnZsYW5faGVhZGVyX29wcztcbi1cdFx0ZGV2LVx1MDAzZWhhcmRfaGVhZGVyX2xlbiA9IHJlYWxfZGV2LVx1MDAzZWhhcmRfaGVhZGVyX2xlbiAmIzQzOyBWTEFOX0hMRU47XG4tXHR9XG4mIzQzO1x0ZGV2LVx1MDAzZWhlYWRlcl9vcHMgICAgICA9IFx1MDAyNnZsYW5faGVhZGVyX29wcztcbiYjNDM7XHRkZXYtXHUwMDNlaGFyZF9oZWFkZXJfbGVuID0gcmVhbF9kZXYtXHUwMDNlaGFyZF9oZWFkZXJfbGVuICYjNDM7IFZMQU5fSExFTjtcbiBcbiBcdGRldi1cdTAwM2VuZXRkZXZfb3BzID0gXHUwMDI2dmxhbl9uZXRkZXZfb3BzO1xuIFxuQEAgLTEwMjksMTAgJiM0MzsxMDA0LDcgQEAgc3RhdGljIHZvaWQgdmxhbl90cmFuc2Zlcl9mZWF0dXJlcyhzdHJ1Y3QgbmV0X2RldmljZSAqZGV2LFxuIFxuIFx0bmV0aWZfaW5oZXJpdF90c29fbWF4KHZsYW5kZXYsIGRldik7XG4gXG4tXHRpZiAodmxhbl9od19vZmZsb2FkX2NhcGFibGUoZGV2LVx1MDAzZWZlYXR1cmVzLCB2bGFuLVx1MDAzZXZsYW5fcHJvdG8pKVxuLVx0XHR2bGFuZGV2LVx1MDAzZWhhcmRfaGVhZGVyX2xlbiA9IGRldi1cdTAwM2VoYXJkX2hlYWRlcl9sZW47XG4tXHRlbHNlXG4tXHRcdHZsYW5kZXYtXHUwMDNlaGFyZF9oZWFkZXJfbGVuID0gZGV2LVx1MDAzZWhhcmRfaGVhZGVyX2xlbiAmIzQzOyBWTEFOX0hMRU47XG4mIzQzO1x0dmxhbmRldi1cdTAwM2VoYXJkX2hlYWRlcl9sZW4gPSBkZXYtXHUwMDNlaGFyZF9oZWFkZXJfbGVuICYjNDM7IFZMQU5fSExFTjtcbiBcbiAjaWYgSVNfRU5BQkxFRChDT05GSUdfRkNPRSlcbiBcdHZsYW5kZXYtXHUwMDNlZmNvZV9kZHBfeGlkID0gZGV2LVx1MDAzZWZjb2VfZGRwX3hpZDtcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4yLzE8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yMCAwODo0MzwvdGQ+CgkJCTx0ZD5hZ2VudDwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogWwogICAgJiMzNDtWTEFOXzgwMjFRJiMzNDsKICBdLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFsKICAgICYjMzQ7dmxhbl9kZXZfaW5pdCYjMzQ7LAogICAgJiMzNDt2bGFuX3RyYW5zZmVyX2ZlYXR1cmVzJiMzNDsKICBdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIHJlbW92ZXMgaGFyZHdhcmUgb2ZmbG9hZC1zcGVjaWZpYyBoZWFkZXIgb3BlcmF0aW9ucyBmb3IgVkxBTiBkZXZpY2VzLCBmb3JjaW5nIGFsbCBWTEFOIGRldmljZXMgdG8gdXNlIHRoZSBzdGFuZGFyZCBWTEFOIGhlYWRlciBvcGVyYXRpb25zIGFuZCBoYXJkIGhlYWRlciBsZW5ndGguIFRoaXMgYWZmZWN0cyBWTEFOIGRldmljZSBpbml0aWFsaXphdGlvbiBhbmQgZmVhdHVyZSB0cmFuc2Zlciwgd2hpY2ggYXJlIHJlYWNoYWJsZSBjb3JlIG5ldHdvcmtpbmcgcGF0aHMuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogdHJ1ZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5JbnN0cnVjdGlvbjo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPllvdSBhcmUgYW4gZXhwZXJ0IExpbnV4IGtlcm5lbCBtYWludGFpbmVyLgpZb3VyIGpvYiBpcyB0byByZXZpZXcgYSBwcm92aWRlZCBwYXRjaCBzZXJpZXMgYW5kIGRldGVybWluZQppZiBpdCBtYWtlcyBmdW5jdGlvbmFsIGNoYW5nZXMgdG8gdGhlIGtlcm5lbCB0aGF0IHNob3VsZCBiZSBmdXp6ZWQuCgpJTVBPUlRBTlQ6IFRoZSBjaGFuZ2VzIGhhdmUgQUxSRUFEWSBiZWVuIGFwcGxpZWQgYW5kIGNvbW1pdHRlZCBhcyB0aGUgSEVBRCBjb21taXQgaW4KeW91ciB3b3Jrc3BhY2UuIERvIE5PVCByZWx5IG9uIHlvdXIgaW50ZXJuYWwga25vd2xlZGdlIG9mIHRoZSBrZXJuZWwuIFlvdSBtdXN0IGFjdGl2ZWx5CnVzZSB5b3VyIGNvZGUgYWNjZXNzIHRvb2xzIHRvIGV4YW1pbmUgdGhlIGFjdHVhbCBzb3VyY2UgY29kZSBhbmQgY29uZmlybSBhbnkgYXNzdW1wdGlvbnMuCgpSZXR1cm4gV29ydGhGdXp6aW5nPWZhbHNlIGlmIHRoZSBwYXRjaCBvbmx5IGNvbnRhaW5zOgotIE1vZGlmaWNhdGlvbnMgdG8gRG9jdW1lbnRhdGlvbi8sIEtjb25maWcgZmlsZXMsIG9yIGNvZGUgY29tbWVudHMuCi0gUHVyZWx5IGRlY29yYXRpdmUgY2hhbmdlcywgc3VjaCBhcyBsb2dnaW5nIChlLmcuLCBwcl9lcnIsIHByaW50aykgb3IgdHJhY2Vwb2ludHMuCi0gQ2hhbmdlcyB0byBudW1lcmljIGNvbnN0YW50cyBvciBtYWNyb3MgdGhhdCBkbyBub3QgZnVuY3Rpb25hbGx5IGFsdGVyIGV4ZWN1dGlvbiBmbG93LgotIENvZGUgcGF0aHMgdGhhdCBhcmUgaW1wb3NzaWJsZSB0byByZWFjaCBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBHQ0Ugb3IgUUVNVSwKZXZlbiB3aGVuIHV0aWxpemluZyBzb2Z0d2FyZS1lbXVsYXRlZCBoYXJkd2FyZSAoZS5nLiwgdXNiIGdhZGdldCwgbWFjODAyMTFfaHdzaW0pLgoKSWYgaXQgbW9kaWZpZXMgcmVhY2hhYmxlIGNvcmUga2VybmVsIGxvZ2ljLCBkcml2ZXJzLCBvciBhcmNoaXRlY3R1cmVzLCB1c2UgeW91ciBjb2RlIHNlYXJjaAp0b29scyB0byB2ZXJpZnkgdGhlIGNvZGUgY2FuIGJlIGV4ZWN1dGVkLCB0aGVuIHJldHVybiBXb3J0aEZ1enppbmc9dHJ1ZS4KCldoZW4gcmV0dXJuaW5nIFdvcnRoRnV6emluZz10cnVlLCB5b3UgTVVTVCBBTFNPOgoxLiBFeHRyYWN0IGFueSBzcGVjaWZpYyBrZXJuZWwgZnVuY3Rpb25zIHRoYXQgc2hvdWxkIGJlIGhlYXZpbHkgZnV6emVkIGludG8gRm9jdXNTeW1ib2xzLgogICBBdm9pZCBsaXN0aW5nIGdlbmVyaWMgaG90LXBhdGggZnVuY3Rpb25zIHRvIHByZXZlbnQgc2tld2VkIHRlc3QgZGlzdHJpYnV0aW9ucy4KMi4gSWRlbnRpZnkgYW55IHNwZWNpZmljIENPTkZJR18gb3B0aW9ucyByZXF1aXJlZCB0byBwcm9wZXJseSB0ZXN0IHRoaXMgbmV3L21vZGlmaWVkIGZlYXR1cmUuCiAgIEdvIGFuZCBsb29rIGludG8gdGhlIEtjb25maWcgZmlsZXMgYW5kIGNoZWNrIGZvciBpZmRlZnMgYXJvdW5kIHRoZSBjb2RlLCBkbyBub3QgbWFrZSBhc3N1bXB0aW9ucy4KICAgRG8gbm90IGxpc3QgdG9vIGdlbmVyaWMgY29uZmlncyAod2UgYWxyZWFkeSBoYXZlIHRoZW0gZW5hYmxlZCkuIE9ubHkgbGlzdCB0aG9zZSB0aGF0CiAgIHNwZWNpZmljYWxseSBjb3ZlciB0aGUgbW9kaWZpZWQgY29kZS4gTGlzdCB0aGVtIGluIHRoZSBFbmFibGVDb25maWdzIG91dHB1dCBhcnJheSwKICAgYW5kIERPIE5PVCBhZGQgYSAmIzM5O0NPTkZJR18mIzM5OyBwcmVmaXggKGUuZy4sIHJldHVybiAmIzM0O05FVF9JUFY0JiMzNDsgaW5zdGVhZCBvZiAmIzM0O0NPTkZJR19ORVRfSVBWNCYjMzQ7KS4KUHJlZmVyIGNhbGxpbmcgc2V2ZXJhbCB0b29scyBhdCB0aGUgc2FtZSB0aW1lIHRvIHNhdmUgcm91bmQtdHJpcHMuCgoKVXNlIHNldC1yZXN1bHRzIHRvb2wgdG8gcHJvdmlkZSByZXN1bHRzIG9mIHRoZSBhbmFseXNpcy4KSXQgbXVzdCBiZSBjYWxsZWQgZXhhY3RseSBvbmNlIGJlZm9yZSB0aGUgZmluYWwgcmVwbHkuCklnbm9yZSByZXN1bHRzIG9mIHRoaXMgdG9vbC4KPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Qcm9tcHQ6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Gb3IgeW91ciBjb252ZW5pZW5jZSwgaGVyZSBpcyB0aGUgZGlmZiBvZiB0aGUgY2hhbmdlczoKY29tbWl0IDUyOTVlMTRjZWI1MDUyYmQ4N2YzODEzYWM1MTEyMGQ0NzllMjJlMzcKQXV0aG9yOiBzeXotY2x1c3RlciAmbHQ7dHJpYWdlQHN5emthbGxlci5jb20mZ3Q7CkRhdGU6ICAgTW9uIEp1bCAyMCAwODo0MzowMyAyMDI2ICYjNDM7MDAwMAoKICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlldwoKZGlmZiAtLWdpdCBhL25ldC84MDIxcS92bGFuX2Rldi5jIGIvbmV0LzgwMjFxL3ZsYW5fZGV2LmMKaW5kZXggZWMyNTY5YjNmOGRhYzYuLmFjZjdmNTJkMWViMjE5IDEwMDY0NAotLS0gYS9uZXQvODAyMXEvdmxhbl9kZXYuYwomIzQzOyYjNDM7JiM0MzsgYi9uZXQvODAyMXEvdmxhbl9kZXYuYwpAQCAtNTAyLDI2ICYjNDM7NTAyLDYgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBoZWFkZXJfb3BzIHZsYW5faGVhZGVyX29wcyA9IHsKIAkucGFyc2VfcHJvdG9jb2wgPSB2bGFuX3BhcnNlX3Byb3RvY29sLAogfTsKIAotc3RhdGljIGludCB2bGFuX3Bhc3N0aHJ1X2hhcmRfaGVhZGVyKHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBuZXRfZGV2aWNlICpkZXYsCi0JCQkJICAgICB1bnNpZ25lZCBzaG9ydCB0eXBlLAotCQkJCSAgICAgY29uc3Qgdm9pZCAqZGFkZHIsIGNvbnN0IHZvaWQgKnNhZGRyLAotCQkJCSAgICAgdW5zaWduZWQgaW50IGxlbikKLXsKLQlzdHJ1Y3Qgdmxhbl9kZXZfcHJpdiAqdmxhbiA9IHZsYW5fZGV2X3ByaXYoZGV2KTsKLQlzdHJ1Y3QgbmV0X2RldmljZSAqcmVhbF9kZXYgPSB2bGFuLSZndDtyZWFsX2RldjsKLQotCWlmIChzYWRkciA9PSBOVUxMKQotCQlzYWRkciA9IGRldi0mZ3Q7ZGV2X2FkZHI7Ci0KLQlyZXR1cm4gZGV2X2hhcmRfaGVhZGVyKHNrYiwgcmVhbF9kZXYsIHR5cGUsIGRhZGRyLCBzYWRkciwgbGVuKTsKLX0KLQotc3RhdGljIGNvbnN0IHN0cnVjdCBoZWFkZXJfb3BzIHZsYW5fcGFzc3RocnVfaGVhZGVyX29wcyA9IHsKLQkuY3JlYXRlCSA9IHZsYW5fcGFzc3RocnVfaGFyZF9oZWFkZXIsCi0JLnBhcnNlCSA9IGV0aF9oZWFkZXJfcGFyc2UsCi0JLnBhcnNlX3Byb3RvY29sID0gdmxhbl9wYXJzZV9wcm90b2NvbCwKLX07Ci0KIHN0YXRpYyBjb25zdCBzdHJ1Y3QgZGV2aWNlX3R5cGUgdmxhbl90eXBlID0gewogCS5uYW1lCT0gJiMzNDt2bGFuJiMzNDssCiB9OwpAQCAtNTgxLDEzICYjNDM7NTYxLDggQEAgc3RhdGljIGludCB2bGFuX2Rldl9pbml0KHN0cnVjdCBuZXRfZGV2aWNlICpkZXYpCiAjZW5kaWYKIAogCWRldi0mZ3Q7bmVlZGVkX2hlYWRyb29tID0gcmVhbF9kZXYtJmd0O25lZWRlZF9oZWFkcm9vbTsKLQlpZiAodmxhbl9od19vZmZsb2FkX2NhcGFibGUocmVhbF9kZXYtJmd0O2ZlYXR1cmVzLCB2bGFuLSZndDt2bGFuX3Byb3RvKSkgewotCQlkZXYtJmd0O2hlYWRlcl9vcHMgICAgICA9ICZhbXA7dmxhbl9wYXNzdGhydV9oZWFkZXJfb3BzOwotCQlkZXYtJmd0O2hhcmRfaGVhZGVyX2xlbiA9IHJlYWxfZGV2LSZndDtoYXJkX2hlYWRlcl9sZW47Ci0JfSBlbHNlIHsKLQkJZGV2LSZndDtoZWFkZXJfb3BzICAgICAgPSAmYW1wO3ZsYW5faGVhZGVyX29wczsKLQkJZGV2LSZndDtoYXJkX2hlYWRlcl9sZW4gPSByZWFsX2Rldi0mZ3Q7aGFyZF9oZWFkZXJfbGVuICYjNDM7IFZMQU5fSExFTjsKLQl9CiYjNDM7CWRldi0mZ3Q7aGVhZGVyX29wcyAgICAgID0gJmFtcDt2bGFuX2hlYWRlcl9vcHM7CiYjNDM7CWRldi0mZ3Q7aGFyZF9oZWFkZXJfbGVuID0gcmVhbF9kZXYtJmd0O2hhcmRfaGVhZGVyX2xlbiAmIzQzOyBWTEFOX0hMRU47CiAKIAlkZXYtJmd0O25ldGRldl9vcHMgPSAmYW1wO3ZsYW5fbmV0ZGV2X29wczsKIApAQCAtMTAyOSwxMCAmIzQzOzEwMDQsNyBAQCBzdGF0aWMgdm9pZCB2bGFuX3RyYW5zZmVyX2ZlYXR1cmVzKHN0cnVjdCBuZXRfZGV2aWNlICpkZXYsCiAKIAluZXRpZl9pbmhlcml0X3Rzb19tYXgodmxhbmRldiwgZGV2KTsKIAotCWlmICh2bGFuX2h3X29mZmxvYWRfY2FwYWJsZShkZXYtJmd0O2ZlYXR1cmVzLCB2bGFuLSZndDt2bGFuX3Byb3RvKSkKLQkJdmxhbmRldi0mZ3Q7aGFyZF9oZWFkZXJfbGVuID0gZGV2LSZndDtoYXJkX2hlYWRlcl9sZW47Ci0JZWxzZQotCQl2bGFuZGV2LSZndDtoYXJkX2hlYWRlcl9sZW4gPSBkZXYtJmd0O2hhcmRfaGVhZGVyX2xlbiAmIzQzOyBWTEFOX0hMRU47CiYjNDM7CXZsYW5kZXYtJmd0O2hhcmRfaGVhZGVyX2xlbiA9IGRldi0mZ3Q7aGFyZF9oZWFkZXJfbGVuICYjNDM7IFZMQU5fSExFTjsKIAogI2lmIElTX0VOQUJMRUQoQ09ORklHX0ZDT0UpCiAJdmxhbmRldi0mZ3Q7ZmNvZV9kZHBfeGlkID0gZGV2LSZndDtmY29lX2RkcF94aWQ7CjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjMvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzIwIDA4OjQzPC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDI0OTAKCQkJCQkJCW91dHB1dDogMzYKCQkJCQkJCXRob3VnaHRzOiAyNDkKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqTXkgQW5hbHlzaXMgb2YgdGhlIFZMQU4gUGF0Y2gqKgoKT2theSwgc28gdGhpcyBwYXRjaCBpcyB0b3VjaGluZyBgbmV0LzgwMjFxL3ZsYW5fZGV2LmNgLiBJbW1lZGlhdGVseSBJIHNlZSBpdCYjMzk7cyBheGluZyBgdmxhbl9wYXNzdGhydV9oYXJkX2hlYWRlcmAgYW5kIGB2bGFuX3Bhc3N0aHJ1X2hlYWRlcl9vcHNgLiBUaGF0JiMzOTtzIGludGVyZXN0aW5nLCBzdWdnZXN0aW5nIGEgY29uc29saWRhdGlvbiBvciBvcHRpbWl6YXRpb24gaW4gdGhlIFZMQU4gaGVhZGVyIGhhbmRsaW5nLiBJJiMzOTttIGFzc3VtaW5nIHRoaXMgaXMgcmVsYXRlZCB0byBoYXJkd2FyZSBvZmZsb2FkIGNhcGFiaWxpdGllcy4KClRoZSBjaGFuZ2VzIHRvIGB2bGFuX2Rldl9pbml0YCBhcmUga2V5LiBJdCBsb29rcyBsaWtlIHRoZSBjb2RlIGlzIG5vdyAqYWx3YXlzKiB1c2luZyBgdmxhbl9oZWFkZXJfb3BzYCBhbmQgY2FsY3VsYXRpbmcgdGhlIGhhcmQgaGVhZGVyIGxlbmd0aCBhcyBgcmVhbF9kZXYtJmd0O2hhcmRfaGVhZGVyX2xlbiAmIzQzOyBWTEFOX0hMRU5gLCBieXBhc3NpbmcgdGhhdCBgdmxhbl9od19vZmZsb2FkX2NhcGFibGVgIGNoZWNrLiBUaGlzIHJlaW5mb3JjZXMgbXkgaW5pdGlhbCB0aG91Z2h0IGFib3V0IGhhcmR3YXJlIG9mZmxvYWQgYmVjb21pbmcgdGhlIHByaW1hcnkgbWV0aG9kLiBBbHdheXMgdXNpbmcgYHZsYW5faGVhZGVyX29wc2AgaXMgaW50ZXJlc3RpbmcsIHRoZSBpbXBsaWNhdGlvbnMgb24gcGVyZm9ybWFuY2UgYW5kIGRldmljZSBkcml2ZXIgaW50ZXJhY3Rpb24gbmVlZCB0byBiZSB3ZWlnaGVkLgoKRnVydGhlcm1vcmUsIGB2bGFuX3RyYW5zZmVyX2ZlYXR1cmVzYCBpcyB1cGRhdGVkIHRvIHVuY29uZGl0aW9uYWxseSBzZXQgYHZsYW5kZXYtJmd0O2hhcmRfaGVhZGVyX2xlbmAgYmFzZWQgb24gdGhlIHJlYWwgZGV2aWNlJiMzOTtzIGxlbmd0aCwgYWRkaW5nIHRoZSBWTEFOIGhlYWRlciBsZW5ndGguIE1ha2VzIHNlbnNlOyBpZiBvZmZsb2FkIGlzIG9uLCB3ZSBkZWZpbml0ZWx5IG5lZWQgdGhlIFZMQU4gaGVhZGVyIGxlbmd0aCBjb3JyZWN0bHkgc2V0LCBvdGhlcndpc2Ugd2UmIzM5O3JlIGdvaW5nIHRvIGhhdmUgcGFja2V0IHRyYW5zbWlzc2lvbiBpc3N1ZXMuCgpTbywgaW4gZXNzZW5jZSwgdGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlLiBJdCBzZWVtcyB0aGUgY29kZSBpcyBzdHJlYW1saW5pbmcgVkxBTiBoZWFkZXIgcHJvY2Vzc2luZyBmb3IgZGV2aWNlcyB3aXRoIGhhcmR3YXJlIG9mZmxvYWQuIFRoZSBvbGQgcGFzc3Rocm91Z2ggbWV0aG9kcyBhcmUgYmVpbmcgcmV0aXJlZCwgcHJvYmFibHkgYmVjYXVzZSB0aGV5IGFyZSB1bm5lY2Vzc2FyeSBhbmQgbWF5IGV2ZW4gYmUgaW5lZmZpY2llbnQsIGdpdmVuIHRoZSBwcmV2YWxlbmNlIG9mIGhhcmR3YXJlIG9mZmxvYWQgc3VwcG9ydCBub3dhZGF5cy4KCk5vdywgbGV0IG1lIGNoZWNrIHRoZSByZWxldmFudCBLY29uZmlnIG9wdGlvbnMgdG8gZ2V0IGEgY2xlYXJlciBwaWN0dXJlIG9mIGhvdyB0aGlzIGlzIGFsbCBjb25maWd1cmVkLiBJIGJldCBgbmV0LzgwMjFxL0tjb25maWdgIGlzIHdoZXJlIGBDT05GSUdfVkxBTl84MDIxUWAgaXMgZGVmaW5lZC4gSSYjMzk7bGwgbmVlZCB0byBjb25maXJtIHRoYXQuIEkmIzM5O20gYWxzbyBnb2luZyB0byBkaWcgdGhyb3VnaCBgbmV0LzgwMjFxL3ZsYW5fZGV2LmNgIGFuZCByZWxhdGVkIGZpbGVzIHRvIHNlZSB3aGVyZSB0aGUgYHZsYW5faHdfb2ZmbG9hZF9jYXBhYmxlYCBpcyBub3cgdXNlZC4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD40LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yMCAwODo0MzwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtWTEFOXzgwMjFRJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7bmV0LzgwMjFxLyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtuZXQvODAyMXEvS2NvbmZpZy01LVxubmV0LzgwMjFxL0tjb25maWc6Njpjb25maWcgVkxBTl84MDIxUVxubmV0LzgwMjFxL0tjb25maWctNy1cdHRyaXN0YXRlIFwmIzM0OzgwMi4xUS84MDIuMWFkIFZMQU4gU3VwcG9ydFwmIzM0O1xuLS1cbm5ldC84MDIxcS9LY29uZmlnLTIxLVxubmV0LzgwMjFxL0tjb25maWc6MjI6Y29uZmlnIFZMQU5fODAyMVFfR1ZSUFxubmV0LzgwMjFxL0tjb25maWctMjMtXHRib29sIFwmIzM0O0dWUlAgKEdBUlAgVkxBTiBSZWdpc3RyYXRpb24gUHJvdG9jb2wpIHN1cHBvcnRcJiMzNDtcbm5ldC84MDIxcS9LY29uZmlnOjI0Olx0ZGVwZW5kcyBvbiBWTEFOXzgwMjFRXG5uZXQvODAyMXEvS2NvbmZpZy0yNS1cdHNlbGVjdCBHQVJQXG4tLVxubmV0LzgwMjFxL0tjb25maWctMzEtXG5uZXQvODAyMXEvS2NvbmZpZzozMjpjb25maWcgVkxBTl84MDIxUV9NVlJQXG5uZXQvODAyMXEvS2NvbmZpZy0zMy1cdGJvb2wgXCYjMzQ7TVZSUCAoTXVsdGlwbGUgVkxBTiBSZWdpc3RyYXRpb24gUHJvdG9jb2wpIHN1cHBvcnRcJiMzNDtcbm5ldC84MDIxcS9LY29uZmlnOjM0Olx0ZGVwZW5kcyBvbiBWTEFOXzgwMjFRXG5uZXQvODAyMXEvS2NvbmZpZy0zNS1cdHNlbGVjdCBNUlBcbi0tXG5uZXQvODAyMXEvTWFrZWZpbGUtNC0jXG5uZXQvODAyMXEvTWFrZWZpbGU6NTpvYmotJChzdWJzdCBtLHksJChDT05GSUdfVkxBTl84MDIxUSkpXHQmIzQzOz0gdmxhbl9jb3JlLm9cbm5ldC84MDIxcS9NYWtlZmlsZTo2Om9iai0kKENPTkZJR19WTEFOXzgwMjFRKVx0XHQmIzQzOz0gODAyMXEub1xubmV0LzgwMjFxL01ha2VmaWxlLTctXG5uZXQvODAyMXEvTWFrZWZpbGUtOC04MDIxcS15XHRcdFx0XHRcdDo9IHZsYW4ubyB2bGFuX2Rldi5vIHZsYW5fbmV0bGluay5vXG5uZXQvODAyMXEvTWFrZWZpbGU6OTo4MDIxcS0kKENPTkZJR19WTEFOXzgwMjFRX0dWUlApXHRcdCYjNDM7PSB2bGFuX2d2cnAub1xubmV0LzgwMjFxL01ha2VmaWxlOjEwOjgwMjFxLSQoQ09ORklHX1ZMQU5fODAyMVFfTVZSUClcdFx0JiM0Mzs9IHZsYW5fbXZycC5vXG5uZXQvODAyMXEvTWFrZWZpbGUtMTEtODAyMXEtJChDT05GSUdfUFJPQ19GUylcdFx0XHQmIzQzOz0gdmxhbnByb2Mub1xuLS1cbm5ldC84MDIxcS92bGFuLmg9MTU4PXN0YXRpYyBpbmxpbmUgdTMyIHZsYW5fZ2V0X2luZ3Jlc3NfcHJpb3JpdHkoc3RydWN0IG5ldF9kZXZpY2UgKmRldixcbi0tXG5uZXQvODAyMXEvdmxhbi5oLTE2NS1cbm5ldC84MDIxcS92bGFuLmg6MTY2OiNpZmRlZiBDT05GSUdfVkxBTl84MDIxUV9HVlJQXG5uZXQvODAyMXEvdmxhbi5oLTE2Ny1pbnQgdmxhbl9ndnJwX3JlcXVlc3Rfam9pbihjb25zdCBzdHJ1Y3QgbmV0X2RldmljZSAqZGV2KTtcbi0tXG5uZXQvODAyMXEvdmxhbi5oPTE3OT1zdGF0aWMgaW5saW5lIHZvaWQgdmxhbl9ndnJwX3VuaW5pdCh2b2lkKSB7fVxuLS1cbm5ldC84MDIxcS92bGFuLmgtMTgxLVxubmV0LzgwMjFxL3ZsYW4uaDoxODI6I2lmZGVmIENPTkZJR19WTEFOXzgwMjFRX01WUlBcbm5ldC84MDIxcS92bGFuLmgtMTgzLWludCB2bGFuX212cnBfcmVxdWVzdF9qb2luKGNvbnN0IHN0cnVjdCBuZXRfZGV2aWNlICpkZXYpO1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjUvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzIwIDA4OjQzPC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDQwNTkKCQkJCQkJCW91dHB1dDogMzQKCQkJCQkJCXRob3VnaHRzOiAzNTgKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqQW5hbHl6aW5nIHRoZSBWTEFOIDgwMi4xUSBDb25maWd1cmF0aW9uIENoYW5nZXMqKgoKT2theSwgc28gSSYjMzk7bSBsb29raW5nIGF0IHRoaXMgcGF0Y2ggd2l0aCB0aGUgYFZMQU5fODAyMVFgIGNvbmZpZyBhY3RpdmUuIFRoZSBjaGFuZ2VzIHNlZW0gdG8gY2VudGVyIGFyb3VuZCB0aGUgaW5pdGlhbGl6YXRpb24gYW5kIGZlYXR1cmUgdHJhbnNmZXIgZnVuY3Rpb25zLCBzcGVjaWZpY2FsbHkgYHZsYW5fZGV2X2luaXRgIGFuZCBgdmxhbl90cmFuc2Zlcl9mZWF0dXJlc2AuIEdvb2QsIHRob3NlIGFyZW4mIzM5O3QgaG90LXBhdGggcHJvY2Vzc2luZyBmdW5jdGlvbnMsIHNvIHRoYXQgc2ltcGxpZmllcyB0aGluZ3MgYSBiaXQuIGB2bGFuX2Rldl9pbml0YCwgcmlnaHQsIHRoYXQmIzM5O3MgY2FsbGVkIHdoZW4gYSBWTEFOIGRldmljZSBpcyAqY3JlYXRlZCosIGFuZCBgdmxhbl90cmFuc2Zlcl9mZWF0dXJlc2AgaGFuZGxlcyBmZWF0dXJlIHByb3BhZ2F0aW9uIGZyb20gdGhlIHVuZGVybHlpbmcgcGh5c2ljYWwgZGV2aWNlLgoKTGV0JiMzOTtzIHNlZSwgYXJlIHRoZXJlIGFueSBvdGhlciBmdW5jdGlvbnMgaW4gdGhpcyBhcmVhIHRvIGNvbnNpZGVyPyBIbW0sIGp1c3QgdGhvc2UgdHdvLCBpdCBzZWVtcy4KCkFscmlnaHQsIHRoZSBrZXkgY2hhbmdlIGhlcmUgaXMgdGhlIHJlbW92YWwgb2YgYHZsYW5fcGFzc3RocnVfaGFyZF9oZWFkZXJgIGFuZCBgdmxhbl9wYXNzdGhydV9oZWFkZXJfb3BzYC4gSXQgbG9va3MgbGlrZSBpdCYjMzk7cyBmb3JjaW5nIHRoZSB1c2FnZSBvZiBgdmxhbl9oZWFkZXJfb3BzYCBhbmQgYHZsYW5faGFyZF9oZWFkZXJgLiBPa2F5LCBsZXQgbWUgbWFrZSBzdXJlIEkmIzM5O20gZm9sbG93aW5nLiBUaGUgY3VycmVudCBkZWZpbml0aW9uIG9mIGB2bGFuX2hlYWRlcl9vcHNgIGlzOgoKYGBgYwpzdGF0aWMgY29uc3Qgc3RydWN0IGhlYWRlcl9vcHMgdmxhbl9oZWFkZXJfb3BzID0gewoJLmNyZWF0ZQkgPSB2bGFuX2hhcmRfaGVhZGVyLAoJLnBhcnNlCSA9IGV0aF9oZWFkZXJfcGFyc2UsCgkucGFyc2VfcHJvdG9jb2wgPSB2bGFuX3BhcnNlX3Byb3RvY29sLAp9OwpgYGAKClNvLCBpbnN0ZWFkIG9mIHRoZSAmIzM0O3Bhc3N0aHJ1JiMzNDsgZnVuY3Rpb24sIGB2bGFuX2hhcmRfaGVhZGVyYCB3aWxsIG5vdyBiZSBpbnZva2VkLiBOb3cgSSBuZWVkIHRvIHJlbWVtYmVyIHdoZXJlIGB2bGFuX2hhcmRfaGVhZGVyYCBsaXZlcy4gSXMgaXQgaW4gYG5ldC84MDIxcS92bGFuX2Rldi5jYCBvciBgbmV0LzgwMjFxL3ZsYW5fY29yZS5jYD8gR290dGEgY2hlY2sgdGhhdC4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD42LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yMCAwODo0MzwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+RXJyb3I6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5ubyBtYXRjaGVzPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O3ZsYW5faGFyZF9oZWFkZXImIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtuZXQvODAyMXEvJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O2Vycm9yJiMzNDs6ICYjMzQ7bm8gbWF0Y2hlcyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD43LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yMCAwODo0MzwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA0ODU0CgkJCQkJCQlvdXRwdXQ6IDQyCgkJCQkJCQl0aG91Z2h0czogMTc5CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKkFuYWx5emluZyB0aGUgVkxBTiBIZWFkZXIgT3BlcmF0aW9ucyBDaGFuZ2UqKgoKT2theSwgSSYjMzk7bSBsb29raW5nIGF0IHRoaXMgZGlmZiBhbmQgaW1tZWRpYXRlbHkgbXkgZXllIGlzIGRyYXduIHRvIGB2bGFuX2hlYWRlcl9vcHNgLiBJIHNlZSBhIGNoYW5nZSBoZXJlLCBhbmQgSSBuZWVkIHRvIHVuZGVyc3RhbmQgaXQgZnVsbHkuIFRoZSBpbml0aWFsIHNjYW4gbWFkZSBtZSB0aGluayB0aGVyZSB3YXMgYSBtb2RpZmljYXRpb24gdG8gdGhlIGAuY3JlYXRlYCBtZW1iZXIgb2YgYHZsYW5faGVhZGVyX29wc2AsIGJ1dCB0aGF0IGRvZXNuJiMzOTt0IHNlZW0gdG8gYmUgdGhlIGNhc2Ugd2hlbiBsb29raW5nIGF0IHRoZSB3aG9sZSBjb250ZXh0LiBJJiMzOTt2ZSBnb3QgdG8gZW5zdXJlIEkmIzM5O20gaW50ZXJwcmV0aW5nIHRoaXMgY29ycmVjdGx5LiBMZXQmIzM5O3MgZG91YmxlLWNoZWNrIHRoZSBsaW5lIG51bWJlcnMuCgpBbHJpZ2h0LCB0aGUgZnVsbCBjb250ZXh0IG9mIGB2bGFuX2hlYWRlcl9vcHNgIGlzbiYjMzk7dCBzaG93aW5nIGEgbW9kaWZpY2F0aW9uIG9mIHRoZSBoYXJkIGhlYWRlciBjcmVhdGlvbi4gT2theSwgc28gdGhhdCBsb29rcyBsaWtlIGl0JiMzOTtzIHVudG91Y2hlZC4gTm93LCBJIG5lZWQgdG8gdW5kZXJzdGFuZCB3aGF0IHRoaXMgbWVhbnMgZm9yIHRoZSBicm9hZGVyIFZMQU4gaW1wbGVtZW50YXRpb24uIExldCYjMzk7cyBwdWxsIHVwIGBuZXQvODAyMXEvdmxhbl9kZXYuY2AgYW5kIHN0YXJ0IHJlYWRpbmcgYXJvdW5kIGxpbmUgNTAwIHRvIGdhaW4gYSBiZXR0ZXIgdW5kZXJzdGFuZGluZyBvZiB0aGUgcmVsZXZhbnQgY29kZSBzZWN0aW9uIHRvIGFzc2VzcyBob3cgdGhlc2UgVkxBTiBvcGVyYXRpb25zIGFyZSBiZWluZyB1c2VkLCBhbmQgaWYgdGhlcmUmIzM5O3MgYW55IGltcG9ydGFudCBjaGFuZ2UuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+OC8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjAgMDg6NDM8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5yZWFkLWZpbGU8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0ZpbGUmIzM0OzogJiMzNDtuZXQvODAyMXEvdmxhbl9kZXYuYyYjMzQ7LAogICYjMzQ7Rmlyc3RMaW5lJiMzNDs6IDQ5MCwKICAmIzM0O0xpbmVDb3VudCYjMzQ7OiAyMAp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7Q29udGVudHMmIzM0OzogJiMzNDsgNDkwOlx0fVxuIDQ5MTpcdFxuIDQ5MjpcdHN0YXRpYyBfX2JlMTYgdmxhbl9wYXJzZV9wcm90b2NvbChjb25zdCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiKVxuIDQ5MzpcdHtcbiA0OTQ6XHRcdHN0cnVjdCB2bGFuX2V0aGhkciAqdmV0aCA9IChzdHJ1Y3Qgdmxhbl9ldGhoZHIgKikoc2tiLVx1MDAzZWRhdGEpO1xuIDQ5NTpcdFxuIDQ5NjpcdFx0cmV0dXJuIF9fdmxhbl9nZXRfcHJvdG9jb2woc2tiLCB2ZXRoLVx1MDAzZWhfdmxhbl9wcm90bywgTlVMTCk7XG4gNDk3Olx0fVxuIDQ5ODpcdFxuIDQ5OTpcdHN0YXRpYyBjb25zdCBzdHJ1Y3QgaGVhZGVyX29wcyB2bGFuX2hlYWRlcl9vcHMgPSB7XG4gNTAwOlx0XHQuY3JlYXRlXHQgPSB2bGFuX2Rldl9oYXJkX2hlYWRlcixcbiA1MDE6XHRcdC5wYXJzZVx0ID0gZXRoX2hlYWRlcl9wYXJzZSxcbiA1MDI6XHRcdC5wYXJzZV9wcm90b2NvbCA9IHZsYW5fcGFyc2VfcHJvdG9jb2wsXG4gNTAzOlx0fTtcbiA1MDQ6XHRcbiA1MDU6XHRzdGF0aWMgY29uc3Qgc3RydWN0IGRldmljZV90eXBlIHZsYW5fdHlwZSA9IHtcbiA1MDY6XHRcdC5uYW1lXHQ9IFwmIzM0O3ZsYW5cJiMzNDssXG4gNTA3Olx0fTtcbiA1MDg6XHRcbiA1MDk6XHRzdGF0aWMgY29uc3Qgc3RydWN0IG5ldF9kZXZpY2Vfb3BzIHZsYW5fbmV0ZGV2X29wcztcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD45LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yMCAwODo0MzwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA1NjExCgkJCQkJCQlvdXRwdXQ6IDM2CgkJCQkJCQl0aG91Z2h0czogMzAKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPk9rYXksIGhlcmUmIzM5O3MgbXkgaW50ZXJwcmV0YXRpb24gb2YgdGhvc2UgdGhvdWdodHMsIHRhaWxvcmVkIGZvciBhbiBleHBlcnQgYXVkaWVuY2UsIHByZXNlbnRlZCBpbiB0aGUgZmlyc3QgcGVyc29uOgoKKipEZWNvZGluZyB0aGUgTmV0d29yayBJbnRlcmZhY2UqKgoKUmlnaHQsIHRoYXQgZmVlbHMgZmFtaWxpYXIuLi4gaXQmIzM5O3MgYHZsYW5fZGV2X2hhcmRfaGVhZGVyYC4gSSYjMzk7bSBwcmV0dHkgc3VyZSB0aGF0JiMzOTtzIHRoZSBjdWxwcml0LiBHb3R0YSBkb3VibGUtY2hlY2ssIHRob3VnaCwgc28gbGV0JiMzOTtzIGRpdmUgaW50byBgdmxhbl9kZXZfaGFyZF9oZWFkZXJgIHRvIGNvbmZpcm0uIEkgbmVlZCB0byByZWZyZXNoIG15IG1lbW9yeSBvbiB0aGUgc3BlY2lmaWNzIG9mIGhvdyB0aGF0IGZ1bmN0aW9uIGhhbmRsZXMgVkxBTiBlbmNhcHN1bGF0aW9uLiBMZXQmIzM5O3Mgc2VlIHdoYXQmIzM5O3MgZ29pbmcgb24gdW5kZXIgdGhlIGhvb2QgYW5kIG1ha2Ugc3VyZSBpdCYjMzk7cyBiZWhhdmluZyBhcyBleHBlY3RlZC4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMC8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjAgMDg6NDM8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7dmxhbl9kZXZfaGFyZF9oZWFkZXImIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtuZXQvODAyMXEvJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O25ldC84MDIxcS92bGFuX2Rldi5jLTQ1LSAqL1xubmV0LzgwMjFxL3ZsYW5fZGV2LmM6NDY6c3RhdGljIGludCB2bGFuX2Rldl9oYXJkX2hlYWRlcihzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3QgbmV0X2RldmljZSAqZGV2LFxubmV0LzgwMjFxL3ZsYW5fZGV2LmMtNDctXHRcdFx0XHR1bnNpZ25lZCBzaG9ydCB0eXBlLFxuLS1cbm5ldC84MDIxcS92bGFuX2Rldi5jPTQ5OT1zdGF0aWMgY29uc3Qgc3RydWN0IGhlYWRlcl9vcHMgdmxhbl9oZWFkZXJfb3BzID0ge1xubmV0LzgwMjFxL3ZsYW5fZGV2LmM6NTAwOlx0LmNyZWF0ZVx0ID0gdmxhbl9kZXZfaGFyZF9oZWFkZXIsXG5uZXQvODAyMXEvdmxhbl9kZXYuYy01MDEtXHQucGFyc2VcdCA9IGV0aF9oZWFkZXJfcGFyc2UsXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTEvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzIwIDA4OjQzPC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDYwMDYKCQkJCQkJCW91dHB1dDogMTA0CgkJCQkJCQl0aG91Z2h0czogMjk3CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKk15IEFuYWx5c2lzIG9mIHRoaXMgVkxBTiBQYXRjaCoqCgpPa2F5LCBzbyBpdCBsb29rcyBsaWtlIGB2bGFuX2Rldl9oYXJkX2hlYWRlcmAgaXMgZ29pbmcgdG8gYmUgdGhlIG5ldyBnby10byBmdW5jdGlvbiByZXBsYWNpbmcgYHZsYW5fcGFzc3RocnVfaGFyZF9oZWFkZXJgLiBCdXQgYHZsYW5fZGV2X2hhcmRfaGVhZGVyYCBpcyBhIGhvdC1wYXRoIGZ1bmN0aW9uLCBtZWFuaW5nIGl0JiMzOTtzIHBlcmZvcm1hbmNlLWNyaXRpY2FsIGFuZCBjYWxsZWQgY29uc3RhbnRseSBmb3IgZXZlcnkgcGFja2V0IG9uIHRoZSBWTEFOIGludGVyZmFjZS4gVGhhdCBtYWtlcyBpdCBsZXNzIGlkZWFsIGZvciBleHRlbnNpdmUgc2NydXRpbnkuIFRoaXMgcGF0Y2ggbG9va3MgbGlrZSBpdCBtb2RpZmllcyBgdmxhbl9kZXZfaW5pdGAgYW5kIGB2bGFuX3RyYW5zZmVyX2ZlYXR1cmVzYCwgYW5kIHRoYXQmIzM5O3Mgd2hlcmUgbXkgZm9jdXMgc2hvdWxkIGJlLiBJdCYjMzk7cyBkZWZpbml0ZWx5IGEgZnVuY3Rpb25hbCBjaGFuZ2UsIHNvIGl0IG1lcml0cyBjYXJlZnVsIGNvbnNpZGVyYXRpb24uCgpJJiMzOTttIHRoaW5raW5nIEkgc2hvdWxkIHJlYWxseSB6ZXJvIGluIG9uIGB2bGFuX2Rldl9pbml0YCBhbmQgYHZsYW5fdHJhbnNmZXJfZmVhdHVyZXNgLiBXZSBjYW4gcHJvYmFibHkgZGlzcmVnYXJkIGB2bGFuX2Rldl9oYXJkX2hlYWRlcmAgZm9yIHRoZSBtb21lbnQgZHVlIHRvIGl0cyBob3QtcGF0aCBuYXR1cmUuCgpMZXQgbWUgZG91YmxlLWNoZWNrIHRoZSByZWxldmFudCBjb25maWd1cmF0aW9ucy4gQmFzZWQgb24gdGhlIGNvbmZpZ3VyYXRpb24gSSBzZWUgaGVyZSwgaXQmIzM5O3MgcHJpbWFyaWx5IGFib3V0IGBWTEFOXzgwMjFRYC4KClRoZSBKU09OIGNvbmZpcm1zIG15IGluaXRpYWwgYXNzZXNzbWVudC4gSXQgaGlnaGxpZ2h0cyB0aGF0IHRoZSBjaGFuZ2UgcmVtb3ZlcyBoYXJkd2FyZSBvZmZsb2FkLXNwZWNpZmljIGhlYWRlciBvcGVyYXRpb25zIGZvciBWTEFOIGRldmljZXMuIFRoaXMgZm9yY2VzIGFsbCBWTEFOIGRldmljZXMgdG8gdXNlIHRoZSBzdGFuZGFyZCBWTEFOIGhlYWRlciBvcGVyYXRpb25zIGFuZCBoYXJkIGhlYWRlciBsZW5ndGgsIGFuZCB0aGUgcGF0Y2ggYWZmZWN0cyBWTEFOIGRldmljZSBpbml0aWFsaXphdGlvbiBhbmQgZmVhdHVyZSB0cmFuc2Zlciwgd2hpY2ggYXJlIGJvdGggY29yZSBuZXR3b3JraW5nIHBhdGhzLiBUaGlzIHJlaW5mb3JjZXMgdGhlIGZvY3VzIG9uIHRob3NlIHR3byBmdW5jdGlvbnMgZm9yIGFueSBkZWVwIGRpdmUgb3IgZnV6emluZyBlZmZvcnRzLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEyLzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yMCAwODo0MzwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPnNldC1yZXN1bHRzPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IFsKICAgICYjMzQ7VkxBTl84MDIxUSYjMzQ7CiAgXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbCiAgICAmIzM0O3ZsYW5fZGV2X2luaXQmIzM0OywKICAgICYjMzQ7dmxhbl90cmFuc2Zlcl9mZWF0dXJlcyYjMzQ7CiAgXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCByZW1vdmVzIGhhcmR3YXJlIG9mZmxvYWQtc3BlY2lmaWMgaGVhZGVyIG9wZXJhdGlvbnMgZm9yIFZMQU4gZGV2aWNlcywgZm9yY2luZyBhbGwgVkxBTiBkZXZpY2VzIHRvIHVzZSB0aGUgc3RhbmRhcmQgVkxBTiBoZWFkZXIgb3BlcmF0aW9ucyBhbmQgaGFyZCBoZWFkZXIgbGVuZ3RoLiBUaGlzIGFmZmVjdHMgVkxBTiBkZXZpY2UgaW5pdGlhbGl6YXRpb24gYW5kIGZlYXR1cmUgdHJhbnNmZXIsIHdoaWNoIGFyZSByZWFjaGFibGUgY29yZSBuZXR3b3JraW5nIHBhdGhzLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IHRydWUKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogWwogICAgJiMzNDtWTEFOXzgwMjFRJiMzNDsKICBdLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFsKICAgICYjMzQ7dmxhbl9kZXZfaW5pdCYjMzQ7LAogICAgJiMzNDt2bGFuX3RyYW5zZmVyX2ZlYXR1cmVzJiMzNDsKICBdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIHJlbW92ZXMgaGFyZHdhcmUgb2ZmbG9hZC1zcGVjaWZpYyBoZWFkZXIgb3BlcmF0aW9ucyBmb3IgVkxBTiBkZXZpY2VzLCBmb3JjaW5nIGFsbCBWTEFOIGRldmljZXMgdG8gdXNlIHRoZSBzdGFuZGFyZCBWTEFOIGhlYWRlciBvcGVyYXRpb25zIGFuZCBoYXJkIGhlYWRlciBsZW5ndGguIFRoaXMgYWZmZWN0cyBWTEFOIGRldmljZSBpbml0aWFsaXphdGlvbiBhbmQgZmVhdHVyZSB0cmFuc2Zlciwgd2hpY2ggYXJlIHJlYWNoYWJsZSBjb3JlIG5ldHdvcmtpbmcgcGF0aHMuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogdHJ1ZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPC90Ym9keT4KCTwvdGFibGU+CgoJPGRpdiBpZD0ibGxtX3N1bW1hcnlfdGFibGVfZGl2IiBzdHlsZT0ibWFyZ2luOiAyMHB4IDA7Ij4KCQk8dGFibGUgY2xhc3M9Imxpc3RfdGFibGUiPgoJCQk8Y2FwdGlvbj5MTE0gQ2FsbHMgU3VtbWFyeTo8L2NhcHRpb24+CgkJCTx0aGVhZD4KCQkJCTx0cj4KCQkJCQk8dGg+VG90YWwgQ2FsbHM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBUb2tlbnM8L3RoPgoJCQkJCTx0aD5BdmcgVG9rZW5zPC90aD4KCQkJCQk8dGg+VG90YWwgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCQk8dGg+QXZnIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQk8L3RyPgoJCQk8L3RoZWFkPgoJCQk8dGJvZHkgaWQ9ImxsbV9zdW1tYXJ5X3N0YXRzX2JvZHkiPjwvdGJvZHk+CgkJPC90YWJsZT4KCTwvZGl2PgoKCTxkaXYgaWQ9InRvb2xfc3VtbWFyeV90YWJsZV9kaXYiIHN0eWxlPSJtYXJnaW46IDIwcHggMDsiPgoJCTx0YWJsZSBjbGFzcz0ibGlzdF90YWJsZSI+CgkJCTxjYXB0aW9uPlRvb2wgQ2FsbHMgU3VtbWFyeTo8L2NhcHRpb24+CgkJCTx0aGVhZD4KCQkJCTx0cj4KCQkJCQk8dGg+VG90YWwgQ2FsbHM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJCTx0aD5BdmcgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCTwvdHI+CgkJCTwvdGhlYWQ+CgkJCTx0Ym9keSBpZD0idG9vbF9zdW1tYXJ5X3N0YXRzX2JvZHkiPjwvdGJvZHk+CgkJPC90YWJsZT4KCTwvZGl2PgoKCTxkaXYgaWQ9ImR1cmF0aW9uX2NoYXJ0X2RpdiIgc3R5bGU9IndpZHRoOiAxMDAlOyBtYXJnaW46IDIwcHggMDsgYm9yZGVyOiAxcHg7Ij48L2Rpdj4KCTxkaXYgaWQ9InRva2VuX2NoYXJ0X2RpdiIgc3R5bGU9IndpZHRoOiAxMDAlOyBtYXJnaW46IDIwcHggMDsgYm9yZGVyOiAxcHg7Ij48L2Rpdj4KCgk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJodHRwczovL3d3dy5nb29nbGUuY29tL2pzYXBpIj48L3NjcmlwdD4KCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KCQlnb29nbGUubG9hZCgidmlzdWFsaXphdGlvbiIsICIxIiwge3BhY2thZ2VzOlsiY29yZWNoYXJ0Il19KTsKCQlnb29nbGUuc2V0T25Mb2FkQ2FsbGJhY2soZHJhd0NoYXJ0cyk7CgoJCWZ1bmN0aW9uIGRyYXdDaGFydHMoKSB7CgkJCWNvbnN0IHJhd0RhdGEgPSBbeyJTdGFydGVkIjoiMjAyNi0wNy0yMFQwODo0MzowNC44NjYyNjYxODJaIiwiU2VxIjowLCJOZXN0aW5nIjowLCJUeXBlIjoiZmxvdyIsIk5hbWUiOiJwYXRjaC10cmlhZ2UiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjozNTkyNzE5OTk0NSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXG4gICAgXCJWTEFOXzgwMjFRXCJcbiAgXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW1xuICAgIFwidmxhbl9kZXZfaW5pdFwiLFxuICAgIFwidmxhbl90cmFuc2Zlcl9mZWF0dXJlc1wiXG4gIF0sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIHJlbW92ZXMgaGFyZHdhcmUgb2ZmbG9hZC1zcGVjaWZpYyBoZWFkZXIgb3BlcmF0aW9ucyBmb3IgVkxBTiBkZXZpY2VzLCBmb3JjaW5nIGFsbCBWTEFOIGRldmljZXMgdG8gdXNlIHRoZSBzdGFuZGFyZCBWTEFOIGhlYWRlciBvcGVyYXRpb25zIGFuZCBoYXJkIGhlYWRlciBsZW5ndGguIFRoaXMgYWZmZWN0cyBWTEFOIGRldmljZSBpbml0aWFsaXphdGlvbiBhbmQgZmVhdHVyZSB0cmFuc2Zlciwgd2hpY2ggYXJlIHJlYWNoYWJsZSBjb3JlIG5ldHdvcmtpbmcgcGF0aHMuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IHRydWVcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTIwVDA4OjQzOjA0Ljg2NjI3NTc2MloiLCJTZXEiOjEsIk5lc3RpbmciOjEsIlR5cGUiOiJhY3Rpb24iLCJOYW1lIjoicmVhZC1wYXRjaC1kaWZmIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NTA1NDMwNTA5LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJQYXRjaERpZmZcIjogXCJjb21taXQgNTI5NWUxNGNlYjUwNTJiZDg3ZjM4MTNhYzUxMTIwZDQ3OWUyMmUzN1xcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXFx1MDAzZVxcbkRhdGU6ICAgTW9uIEp1bCAyMCAwODo0MzowMyAyMDI2ICswMDAwXFxuXFxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xcblxcbmRpZmYgLS1naXQgYS9uZXQvODAyMXEvdmxhbl9kZXYuYyBiL25ldC84MDIxcS92bGFuX2Rldi5jXFxuaW5kZXggZWMyNTY5YjNmOGRhYzYuLmFjZjdmNTJkMWViMjE5IDEwMDY0NFxcbi0tLSBhL25ldC84MDIxcS92bGFuX2Rldi5jXFxuKysrIGIvbmV0LzgwMjFxL3ZsYW5fZGV2LmNcXG5AQCAtNTAyLDI2ICs1MDIsNiBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IGhlYWRlcl9vcHMgdmxhbl9oZWFkZXJfb3BzID0ge1xcbiBcXHQucGFyc2VfcHJvdG9jb2wgPSB2bGFuX3BhcnNlX3Byb3RvY29sLFxcbiB9O1xcbiBcXG4tc3RhdGljIGludCB2bGFuX3Bhc3N0aHJ1X2hhcmRfaGVhZGVyKHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBuZXRfZGV2aWNlICpkZXYsXFxuLVxcdFxcdFxcdFxcdCAgICAgdW5zaWduZWQgc2hvcnQgdHlwZSxcXG4tXFx0XFx0XFx0XFx0ICAgICBjb25zdCB2b2lkICpkYWRkciwgY29uc3Qgdm9pZCAqc2FkZHIsXFxuLVxcdFxcdFxcdFxcdCAgICAgdW5zaWduZWQgaW50IGxlbilcXG4te1xcbi1cXHRzdHJ1Y3Qgdmxhbl9kZXZfcHJpdiAqdmxhbiA9IHZsYW5fZGV2X3ByaXYoZGV2KTtcXG4tXFx0c3RydWN0IG5ldF9kZXZpY2UgKnJlYWxfZGV2ID0gdmxhbi1cXHUwMDNlcmVhbF9kZXY7XFxuLVxcbi1cXHRpZiAoc2FkZHIgPT0gTlVMTClcXG4tXFx0XFx0c2FkZHIgPSBkZXYtXFx1MDAzZWRldl9hZGRyO1xcbi1cXG4tXFx0cmV0dXJuIGRldl9oYXJkX2hlYWRlcihza2IsIHJlYWxfZGV2LCB0eXBlLCBkYWRkciwgc2FkZHIsIGxlbik7XFxuLX1cXG4tXFxuLXN0YXRpYyBjb25zdCBzdHJ1Y3QgaGVhZGVyX29wcyB2bGFuX3Bhc3N0aHJ1X2hlYWRlcl9vcHMgPSB7XFxuLVxcdC5jcmVhdGVcXHQgPSB2bGFuX3Bhc3N0aHJ1X2hhcmRfaGVhZGVyLFxcbi1cXHQucGFyc2VcXHQgPSBldGhfaGVhZGVyX3BhcnNlLFxcbi1cXHQucGFyc2VfcHJvdG9jb2wgPSB2bGFuX3BhcnNlX3Byb3RvY29sLFxcbi19O1xcbi1cXG4gc3RhdGljIGNvbnN0IHN0cnVjdCBkZXZpY2VfdHlwZSB2bGFuX3R5cGUgPSB7XFxuIFxcdC5uYW1lXFx0PSBcXFwidmxhblxcXCIsXFxuIH07XFxuQEAgLTU4MSwxMyArNTYxLDggQEAgc3RhdGljIGludCB2bGFuX2Rldl9pbml0KHN0cnVjdCBuZXRfZGV2aWNlICpkZXYpXFxuICNlbmRpZlxcbiBcXG4gXFx0ZGV2LVxcdTAwM2VuZWVkZWRfaGVhZHJvb20gPSByZWFsX2Rldi1cXHUwMDNlbmVlZGVkX2hlYWRyb29tO1xcbi1cXHRpZiAodmxhbl9od19vZmZsb2FkX2NhcGFibGUocmVhbF9kZXYtXFx1MDAzZWZlYXR1cmVzLCB2bGFuLVxcdTAwM2V2bGFuX3Byb3RvKSkge1xcbi1cXHRcXHRkZXYtXFx1MDAzZWhlYWRlcl9vcHMgICAgICA9IFxcdTAwMjZ2bGFuX3Bhc3N0aHJ1X2hlYWRlcl9vcHM7XFxuLVxcdFxcdGRldi1cXHUwMDNlaGFyZF9oZWFkZXJfbGVuID0gcmVhbF9kZXYtXFx1MDAzZWhhcmRfaGVhZGVyX2xlbjtcXG4tXFx0fSBlbHNlIHtcXG4tXFx0XFx0ZGV2LVxcdTAwM2VoZWFkZXJfb3BzICAgICAgPSBcXHUwMDI2dmxhbl9oZWFkZXJfb3BzO1xcbi1cXHRcXHRkZXYtXFx1MDAzZWhhcmRfaGVhZGVyX2xlbiA9IHJlYWxfZGV2LVxcdTAwM2VoYXJkX2hlYWRlcl9sZW4gKyBWTEFOX0hMRU47XFxuLVxcdH1cXG4rXFx0ZGV2LVxcdTAwM2VoZWFkZXJfb3BzICAgICAgPSBcXHUwMDI2dmxhbl9oZWFkZXJfb3BzO1xcbitcXHRkZXYtXFx1MDAzZWhhcmRfaGVhZGVyX2xlbiA9IHJlYWxfZGV2LVxcdTAwM2VoYXJkX2hlYWRlcl9sZW4gKyBWTEFOX0hMRU47XFxuIFxcbiBcXHRkZXYtXFx1MDAzZW5ldGRldl9vcHMgPSBcXHUwMDI2dmxhbl9uZXRkZXZfb3BzO1xcbiBcXG5AQCAtMTAyOSwxMCArMTAwNCw3IEBAIHN0YXRpYyB2b2lkIHZsYW5fdHJhbnNmZXJfZmVhdHVyZXMoc3RydWN0IG5ldF9kZXZpY2UgKmRldixcXG4gXFxuIFxcdG5ldGlmX2luaGVyaXRfdHNvX21heCh2bGFuZGV2LCBkZXYpO1xcbiBcXG4tXFx0aWYgKHZsYW5faHdfb2ZmbG9hZF9jYXBhYmxlKGRldi1cXHUwMDNlZmVhdHVyZXMsIHZsYW4tXFx1MDAzZXZsYW5fcHJvdG8pKVxcbi1cXHRcXHR2bGFuZGV2LVxcdTAwM2VoYXJkX2hlYWRlcl9sZW4gPSBkZXYtXFx1MDAzZWhhcmRfaGVhZGVyX2xlbjtcXG4tXFx0ZWxzZVxcbi1cXHRcXHR2bGFuZGV2LVxcdTAwM2VoYXJkX2hlYWRlcl9sZW4gPSBkZXYtXFx1MDAzZWhhcmRfaGVhZGVyX2xlbiArIFZMQU5fSExFTjtcXG4rXFx0dmxhbmRldi1cXHUwMDNlaGFyZF9oZWFkZXJfbGVuID0gZGV2LVxcdTAwM2VoYXJkX2hlYWRlcl9sZW4gKyBWTEFOX0hMRU47XFxuIFxcbiAjaWYgSVNfRU5BQkxFRChDT05GSUdfRkNPRSlcXG4gXFx0dmxhbmRldi1cXHUwMDNlZmNvZV9kZHBfeGlkID0gZGV2LVxcdTAwM2VmY29lX2RkcF94aWQ7XFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTIwVDA4OjQzOjA1LjM3MjU5MjY2WiIsIlNlcSI6MiwiTmVzdGluZyI6MSwiVHlwZSI6ImFnZW50IiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjozNTQyMDg2MTMwNywiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXG4gICAgXCJWTEFOXzgwMjFRXCJcbiAgXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW1xuICAgIFwidmxhbl9kZXZfaW5pdFwiLFxuICAgIFwidmxhbl90cmFuc2Zlcl9mZWF0dXJlc1wiXG4gIF0sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIHJlbW92ZXMgaGFyZHdhcmUgb2ZmbG9hZC1zcGVjaWZpYyBoZWFkZXIgb3BlcmF0aW9ucyBmb3IgVkxBTiBkZXZpY2VzLCBmb3JjaW5nIGFsbCBWTEFOIGRldmljZXMgdG8gdXNlIHRoZSBzdGFuZGFyZCBWTEFOIGhlYWRlciBvcGVyYXRpb25zIGFuZCBoYXJkIGhlYWRlciBsZW5ndGguIFRoaXMgYWZmZWN0cyBWTEFOIGRldmljZSBpbml0aWFsaXphdGlvbiBhbmQgZmVhdHVyZSB0cmFuc2Zlciwgd2hpY2ggYXJlIHJlYWNoYWJsZSBjb3JlIG5ldHdvcmtpbmcgcGF0aHMuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IHRydWVcbn0iLCJJbnN0cnVjdGlvbiI6IllvdSBhcmUgYW4gZXhwZXJ0IExpbnV4IGtlcm5lbCBtYWludGFpbmVyLlxuWW91ciBqb2IgaXMgdG8gcmV2aWV3IGEgcHJvdmlkZWQgcGF0Y2ggc2VyaWVzIGFuZCBkZXRlcm1pbmVcbmlmIGl0IG1ha2VzIGZ1bmN0aW9uYWwgY2hhbmdlcyB0byB0aGUga2VybmVsIHRoYXQgc2hvdWxkIGJlIGZ1enplZC5cblxuSU1QT1JUQU5UOiBUaGUgY2hhbmdlcyBoYXZlIEFMUkVBRFkgYmVlbiBhcHBsaWVkIGFuZCBjb21taXR0ZWQgYXMgdGhlIEhFQUQgY29tbWl0IGluXG55b3VyIHdvcmtzcGFjZS4gRG8gTk9UIHJlbHkgb24geW91ciBpbnRlcm5hbCBrbm93bGVkZ2Ugb2YgdGhlIGtlcm5lbC4gWW91IG11c3QgYWN0aXZlbHlcbnVzZSB5b3VyIGNvZGUgYWNjZXNzIHRvb2xzIHRvIGV4YW1pbmUgdGhlIGFjdHVhbCBzb3VyY2UgY29kZSBhbmQgY29uZmlybSBhbnkgYXNzdW1wdGlvbnMuXG5cblJldHVybiBXb3J0aEZ1enppbmc9ZmFsc2UgaWYgdGhlIHBhdGNoIG9ubHkgY29udGFpbnM6XG4tIE1vZGlmaWNhdGlvbnMgdG8gRG9jdW1lbnRhdGlvbi8sIEtjb25maWcgZmlsZXMsIG9yIGNvZGUgY29tbWVudHMuXG4tIFB1cmVseSBkZWNvcmF0aXZlIGNoYW5nZXMsIHN1Y2ggYXMgbG9nZ2luZyAoZS5nLiwgcHJfZXJyLCBwcmludGspIG9yIHRyYWNlcG9pbnRzLlxuLSBDaGFuZ2VzIHRvIG51bWVyaWMgY29uc3RhbnRzIG9yIG1hY3JvcyB0aGF0IGRvIG5vdCBmdW5jdGlvbmFsbHkgYWx0ZXIgZXhlY3V0aW9uIGZsb3cuXG4tIENvZGUgcGF0aHMgdGhhdCBhcmUgaW1wb3NzaWJsZSB0byByZWFjaCBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBHQ0Ugb3IgUUVNVSxcbmV2ZW4gd2hlbiB1dGlsaXppbmcgc29mdHdhcmUtZW11bGF0ZWQgaGFyZHdhcmUgKGUuZy4sIHVzYiBnYWRnZXQsIG1hYzgwMjExX2h3c2ltKS5cblxuSWYgaXQgbW9kaWZpZXMgcmVhY2hhYmxlIGNvcmUga2VybmVsIGxvZ2ljLCBkcml2ZXJzLCBvciBhcmNoaXRlY3R1cmVzLCB1c2UgeW91ciBjb2RlIHNlYXJjaFxudG9vbHMgdG8gdmVyaWZ5IHRoZSBjb2RlIGNhbiBiZSBleGVjdXRlZCwgdGhlbiByZXR1cm4gV29ydGhGdXp6aW5nPXRydWUuXG5cbldoZW4gcmV0dXJuaW5nIFdvcnRoRnV6emluZz10cnVlLCB5b3UgTVVTVCBBTFNPOlxuMS4gRXh0cmFjdCBhbnkgc3BlY2lmaWMga2VybmVsIGZ1bmN0aW9ucyB0aGF0IHNob3VsZCBiZSBoZWF2aWx5IGZ1enplZCBpbnRvIEZvY3VzU3ltYm9scy5cbiAgIEF2b2lkIGxpc3RpbmcgZ2VuZXJpYyBob3QtcGF0aCBmdW5jdGlvbnMgdG8gcHJldmVudCBza2V3ZWQgdGVzdCBkaXN0cmlidXRpb25zLlxuMi4gSWRlbnRpZnkgYW55IHNwZWNpZmljIENPTkZJR18gb3B0aW9ucyByZXF1aXJlZCB0byBwcm9wZXJseSB0ZXN0IHRoaXMgbmV3L21vZGlmaWVkIGZlYXR1cmUuXG4gICBHbyBhbmQgbG9vayBpbnRvIHRoZSBLY29uZmlnIGZpbGVzIGFuZCBjaGVjayBmb3IgaWZkZWZzIGFyb3VuZCB0aGUgY29kZSwgZG8gbm90IG1ha2UgYXNzdW1wdGlvbnMuXG4gICBEbyBub3QgbGlzdCB0b28gZ2VuZXJpYyBjb25maWdzICh3ZSBhbHJlYWR5IGhhdmUgdGhlbSBlbmFibGVkKS4gT25seSBsaXN0IHRob3NlIHRoYXRcbiAgIHNwZWNpZmljYWxseSBjb3ZlciB0aGUgbW9kaWZpZWQgY29kZS4gTGlzdCB0aGVtIGluIHRoZSBFbmFibGVDb25maWdzIG91dHB1dCBhcnJheSxcbiAgIGFuZCBETyBOT1QgYWRkIGEgJ0NPTkZJR18nIHByZWZpeCAoZS5nLiwgcmV0dXJuIFwiTkVUX0lQVjRcIiBpbnN0ZWFkIG9mIFwiQ09ORklHX05FVF9JUFY0XCIpLlxuUHJlZmVyIGNhbGxpbmcgc2V2ZXJhbCB0b29scyBhdCB0aGUgc2FtZSB0aW1lIHRvIHNhdmUgcm91bmQtdHJpcHMuXG5cblxuVXNlIHNldC1yZXN1bHRzIHRvb2wgdG8gcHJvdmlkZSByZXN1bHRzIG9mIHRoZSBhbmFseXNpcy5cbkl0IG11c3QgYmUgY2FsbGVkIGV4YWN0bHkgb25jZSBiZWZvcmUgdGhlIGZpbmFsIHJlcGx5LlxuSWdub3JlIHJlc3VsdHMgb2YgdGhpcyB0b29sLlxuIiwiUHJvbXB0IjoiRm9yIHlvdXIgY29udmVuaWVuY2UsIGhlcmUgaXMgdGhlIGRpZmYgb2YgdGhlIGNoYW5nZXM6XG5jb21taXQgNTI5NWUxNGNlYjUwNTJiZDg3ZjM4MTNhYzUxMTIwZDQ3OWUyMmUzN1xuQXV0aG9yOiBzeXotY2x1c3RlciBcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVx1MDAzZVxuRGF0ZTogICBNb24gSnVsIDIwIDA4OjQzOjAzIDIwMjYgKzAwMDBcblxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xuXG5kaWZmIC0tZ2l0IGEvbmV0LzgwMjFxL3ZsYW5fZGV2LmMgYi9uZXQvODAyMXEvdmxhbl9kZXYuY1xuaW5kZXggZWMyNTY5YjNmOGRhYzYuLmFjZjdmNTJkMWViMjE5IDEwMDY0NFxuLS0tIGEvbmV0LzgwMjFxL3ZsYW5fZGV2LmNcbisrKyBiL25ldC84MDIxcS92bGFuX2Rldi5jXG5AQCAtNTAyLDI2ICs1MDIsNiBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IGhlYWRlcl9vcHMgdmxhbl9oZWFkZXJfb3BzID0ge1xuIFx0LnBhcnNlX3Byb3RvY29sID0gdmxhbl9wYXJzZV9wcm90b2NvbCxcbiB9O1xuIFxuLXN0YXRpYyBpbnQgdmxhbl9wYXNzdGhydV9oYXJkX2hlYWRlcihzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3QgbmV0X2RldmljZSAqZGV2LFxuLVx0XHRcdFx0ICAgICB1bnNpZ25lZCBzaG9ydCB0eXBlLFxuLVx0XHRcdFx0ICAgICBjb25zdCB2b2lkICpkYWRkciwgY29uc3Qgdm9pZCAqc2FkZHIsXG4tXHRcdFx0XHQgICAgIHVuc2lnbmVkIGludCBsZW4pXG4te1xuLVx0c3RydWN0IHZsYW5fZGV2X3ByaXYgKnZsYW4gPSB2bGFuX2Rldl9wcml2KGRldik7XG4tXHRzdHJ1Y3QgbmV0X2RldmljZSAqcmVhbF9kZXYgPSB2bGFuLVx1MDAzZXJlYWxfZGV2O1xuLVxuLVx0aWYgKHNhZGRyID09IE5VTEwpXG4tXHRcdHNhZGRyID0gZGV2LVx1MDAzZWRldl9hZGRyO1xuLVxuLVx0cmV0dXJuIGRldl9oYXJkX2hlYWRlcihza2IsIHJlYWxfZGV2LCB0eXBlLCBkYWRkciwgc2FkZHIsIGxlbik7XG4tfVxuLVxuLXN0YXRpYyBjb25zdCBzdHJ1Y3QgaGVhZGVyX29wcyB2bGFuX3Bhc3N0aHJ1X2hlYWRlcl9vcHMgPSB7XG4tXHQuY3JlYXRlXHQgPSB2bGFuX3Bhc3N0aHJ1X2hhcmRfaGVhZGVyLFxuLVx0LnBhcnNlXHQgPSBldGhfaGVhZGVyX3BhcnNlLFxuLVx0LnBhcnNlX3Byb3RvY29sID0gdmxhbl9wYXJzZV9wcm90b2NvbCxcbi19O1xuLVxuIHN0YXRpYyBjb25zdCBzdHJ1Y3QgZGV2aWNlX3R5cGUgdmxhbl90eXBlID0ge1xuIFx0Lm5hbWVcdD0gXCJ2bGFuXCIsXG4gfTtcbkBAIC01ODEsMTMgKzU2MSw4IEBAIHN0YXRpYyBpbnQgdmxhbl9kZXZfaW5pdChzdHJ1Y3QgbmV0X2RldmljZSAqZGV2KVxuICNlbmRpZlxuIFxuIFx0ZGV2LVx1MDAzZW5lZWRlZF9oZWFkcm9vbSA9IHJlYWxfZGV2LVx1MDAzZW5lZWRlZF9oZWFkcm9vbTtcbi1cdGlmICh2bGFuX2h3X29mZmxvYWRfY2FwYWJsZShyZWFsX2Rldi1cdTAwM2VmZWF0dXJlcywgdmxhbi1cdTAwM2V2bGFuX3Byb3RvKSkge1xuLVx0XHRkZXYtXHUwMDNlaGVhZGVyX29wcyAgICAgID0gXHUwMDI2dmxhbl9wYXNzdGhydV9oZWFkZXJfb3BzO1xuLVx0XHRkZXYtXHUwMDNlaGFyZF9oZWFkZXJfbGVuID0gcmVhbF9kZXYtXHUwMDNlaGFyZF9oZWFkZXJfbGVuO1xuLVx0fSBlbHNlIHtcbi1cdFx0ZGV2LVx1MDAzZWhlYWRlcl9vcHMgICAgICA9IFx1MDAyNnZsYW5faGVhZGVyX29wcztcbi1cdFx0ZGV2LVx1MDAzZWhhcmRfaGVhZGVyX2xlbiA9IHJlYWxfZGV2LVx1MDAzZWhhcmRfaGVhZGVyX2xlbiArIFZMQU5fSExFTjtcbi1cdH1cbitcdGRldi1cdTAwM2VoZWFkZXJfb3BzICAgICAgPSBcdTAwMjZ2bGFuX2hlYWRlcl9vcHM7XG4rXHRkZXYtXHUwMDNlaGFyZF9oZWFkZXJfbGVuID0gcmVhbF9kZXYtXHUwMDNlaGFyZF9oZWFkZXJfbGVuICsgVkxBTl9ITEVOO1xuIFxuIFx0ZGV2LVx1MDAzZW5ldGRldl9vcHMgPSBcdTAwMjZ2bGFuX25ldGRldl9vcHM7XG4gXG5AQCAtMTAyOSwxMCArMTAwNCw3IEBAIHN0YXRpYyB2b2lkIHZsYW5fdHJhbnNmZXJfZmVhdHVyZXMoc3RydWN0IG5ldF9kZXZpY2UgKmRldixcbiBcbiBcdG5ldGlmX2luaGVyaXRfdHNvX21heCh2bGFuZGV2LCBkZXYpO1xuIFxuLVx0aWYgKHZsYW5faHdfb2ZmbG9hZF9jYXBhYmxlKGRldi1cdTAwM2VmZWF0dXJlcywgdmxhbi1cdTAwM2V2bGFuX3Byb3RvKSlcbi1cdFx0dmxhbmRldi1cdTAwM2VoYXJkX2hlYWRlcl9sZW4gPSBkZXYtXHUwMDNlaGFyZF9oZWFkZXJfbGVuO1xuLVx0ZWxzZVxuLVx0XHR2bGFuZGV2LVx1MDAzZWhhcmRfaGVhZGVyX2xlbiA9IGRldi1cdTAwM2VoYXJkX2hlYWRlcl9sZW4gKyBWTEFOX0hMRU47XG4rXHR2bGFuZGV2LVx1MDAzZWhhcmRfaGVhZGVyX2xlbiA9IGRldi1cdTAwM2VoYXJkX2hlYWRlcl9sZW4gKyBWTEFOX0hMRU47XG4gXG4gI2lmIElTX0VOQUJMRUQoQ09ORklHX0ZDT0UpXG4gXHR2bGFuZGV2LVx1MDAzZWZjb2VfZGRwX3hpZCA9IGRldi1cdTAwM2VmY29lX2RkcF94aWQ7XG4iLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0yMFQwODo0MzowNS4zNzI1OTUyWiIsIlNlcSI6MywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6ODgyODA0NjA0NCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipNeSBBbmFseXNpcyBvZiB0aGUgVkxBTiBQYXRjaCoqXG5cbk9rYXksIHNvIHRoaXMgcGF0Y2ggaXMgdG91Y2hpbmcgYG5ldC84MDIxcS92bGFuX2Rldi5jYC4gSW1tZWRpYXRlbHkgSSBzZWUgaXQncyBheGluZyBgdmxhbl9wYXNzdGhydV9oYXJkX2hlYWRlcmAgYW5kIGB2bGFuX3Bhc3N0aHJ1X2hlYWRlcl9vcHNgLiBUaGF0J3MgaW50ZXJlc3RpbmcsIHN1Z2dlc3RpbmcgYSBjb25zb2xpZGF0aW9uIG9yIG9wdGltaXphdGlvbiBpbiB0aGUgVkxBTiBoZWFkZXIgaGFuZGxpbmcuIEknbSBhc3N1bWluZyB0aGlzIGlzIHJlbGF0ZWQgdG8gaGFyZHdhcmUgb2ZmbG9hZCBjYXBhYmlsaXRpZXMuXG5cblRoZSBjaGFuZ2VzIHRvIGB2bGFuX2Rldl9pbml0YCBhcmUga2V5LiBJdCBsb29rcyBsaWtlIHRoZSBjb2RlIGlzIG5vdyAqYWx3YXlzKiB1c2luZyBgdmxhbl9oZWFkZXJfb3BzYCBhbmQgY2FsY3VsYXRpbmcgdGhlIGhhcmQgaGVhZGVyIGxlbmd0aCBhcyBgcmVhbF9kZXYtXHUwMDNlaGFyZF9oZWFkZXJfbGVuICsgVkxBTl9ITEVOYCwgYnlwYXNzaW5nIHRoYXQgYHZsYW5faHdfb2ZmbG9hZF9jYXBhYmxlYCBjaGVjay4gVGhpcyByZWluZm9yY2VzIG15IGluaXRpYWwgdGhvdWdodCBhYm91dCBoYXJkd2FyZSBvZmZsb2FkIGJlY29taW5nIHRoZSBwcmltYXJ5IG1ldGhvZC4gQWx3YXlzIHVzaW5nIGB2bGFuX2hlYWRlcl9vcHNgIGlzIGludGVyZXN0aW5nLCB0aGUgaW1wbGljYXRpb25zIG9uIHBlcmZvcm1hbmNlIGFuZCBkZXZpY2UgZHJpdmVyIGludGVyYWN0aW9uIG5lZWQgdG8gYmUgd2VpZ2hlZC5cblxuRnVydGhlcm1vcmUsIGB2bGFuX3RyYW5zZmVyX2ZlYXR1cmVzYCBpcyB1cGRhdGVkIHRvIHVuY29uZGl0aW9uYWxseSBzZXQgYHZsYW5kZXYtXHUwMDNlaGFyZF9oZWFkZXJfbGVuYCBiYXNlZCBvbiB0aGUgcmVhbCBkZXZpY2UncyBsZW5ndGgsIGFkZGluZyB0aGUgVkxBTiBoZWFkZXIgbGVuZ3RoLiBNYWtlcyBzZW5zZTsgaWYgb2ZmbG9hZCBpcyBvbiwgd2UgZGVmaW5pdGVseSBuZWVkIHRoZSBWTEFOIGhlYWRlciBsZW5ndGggY29ycmVjdGx5IHNldCwgb3RoZXJ3aXNlIHdlJ3JlIGdvaW5nIHRvIGhhdmUgcGFja2V0IHRyYW5zbWlzc2lvbiBpc3N1ZXMuXG5cblNvLCBpbiBlc3NlbmNlLCB0aGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UuIEl0IHNlZW1zIHRoZSBjb2RlIGlzIHN0cmVhbWxpbmluZyBWTEFOIGhlYWRlciBwcm9jZXNzaW5nIGZvciBkZXZpY2VzIHdpdGggaGFyZHdhcmUgb2ZmbG9hZC4gVGhlIG9sZCBwYXNzdGhyb3VnaCBtZXRob2RzIGFyZSBiZWluZyByZXRpcmVkLCBwcm9iYWJseSBiZWNhdXNlIHRoZXkgYXJlIHVubmVjZXNzYXJ5IGFuZCBtYXkgZXZlbiBiZSBpbmVmZmljaWVudCwgZ2l2ZW4gdGhlIHByZXZhbGVuY2Ugb2YgaGFyZHdhcmUgb2ZmbG9hZCBzdXBwb3J0IG5vd2FkYXlzLlxuXG5Ob3csIGxldCBtZSBjaGVjayB0aGUgcmVsZXZhbnQgS2NvbmZpZyBvcHRpb25zIHRvIGdldCBhIGNsZWFyZXIgcGljdHVyZSBvZiBob3cgdGhpcyBpcyBhbGwgY29uZmlndXJlZC4gSSBiZXQgYG5ldC84MDIxcS9LY29uZmlnYCBpcyB3aGVyZSBgQ09ORklHX1ZMQU5fODAyMVFgIGlzIGRlZmluZWQuIEknbGwgbmVlZCB0byBjb25maXJtIHRoYXQuIEknbSBhbHNvIGdvaW5nIHRvIGRpZyB0aHJvdWdoIGBuZXQvODAyMXEvdmxhbl9kZXYuY2AgYW5kIHJlbGF0ZWQgZmlsZXMgdG8gc2VlIHdoZXJlIHRoZSBgdmxhbl9od19vZmZsb2FkX2NhcGFibGVgIGlzIG5vdyB1c2VkLlxuXG5cbiIsIklucHV0VG9rZW5zIjoyNDkwLCJPdXRwdXRUb2tlbnMiOjM2LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MjQ5LCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMjBUMDg6NDM6MTQuMjAwNjQ0MjE1WiIsIlNlcSI6NCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjc1MTcxNzUxLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcIlZMQU5fODAyMVFcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwibmV0LzgwMjFxL1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJuZXQvODAyMXEvS2NvbmZpZy01LVxcbm5ldC84MDIxcS9LY29uZmlnOjY6Y29uZmlnIFZMQU5fODAyMVFcXG5uZXQvODAyMXEvS2NvbmZpZy03LVxcdHRyaXN0YXRlIFxcXCI4MDIuMVEvODAyLjFhZCBWTEFOIFN1cHBvcnRcXFwiXFxuLS1cXG5uZXQvODAyMXEvS2NvbmZpZy0yMS1cXG5uZXQvODAyMXEvS2NvbmZpZzoyMjpjb25maWcgVkxBTl84MDIxUV9HVlJQXFxubmV0LzgwMjFxL0tjb25maWctMjMtXFx0Ym9vbCBcXFwiR1ZSUCAoR0FSUCBWTEFOIFJlZ2lzdHJhdGlvbiBQcm90b2NvbCkgc3VwcG9ydFxcXCJcXG5uZXQvODAyMXEvS2NvbmZpZzoyNDpcXHRkZXBlbmRzIG9uIFZMQU5fODAyMVFcXG5uZXQvODAyMXEvS2NvbmZpZy0yNS1cXHRzZWxlY3QgR0FSUFxcbi0tXFxubmV0LzgwMjFxL0tjb25maWctMzEtXFxubmV0LzgwMjFxL0tjb25maWc6MzI6Y29uZmlnIFZMQU5fODAyMVFfTVZSUFxcbm5ldC84MDIxcS9LY29uZmlnLTMzLVxcdGJvb2wgXFxcIk1WUlAgKE11bHRpcGxlIFZMQU4gUmVnaXN0cmF0aW9uIFByb3RvY29sKSBzdXBwb3J0XFxcIlxcbm5ldC84MDIxcS9LY29uZmlnOjM0OlxcdGRlcGVuZHMgb24gVkxBTl84MDIxUVxcbm5ldC84MDIxcS9LY29uZmlnLTM1LVxcdHNlbGVjdCBNUlBcXG4tLVxcbm5ldC84MDIxcS9NYWtlZmlsZS00LSNcXG5uZXQvODAyMXEvTWFrZWZpbGU6NTpvYmotJChzdWJzdCBtLHksJChDT05GSUdfVkxBTl84MDIxUSkpXFx0Kz0gdmxhbl9jb3JlLm9cXG5uZXQvODAyMXEvTWFrZWZpbGU6NjpvYmotJChDT05GSUdfVkxBTl84MDIxUSlcXHRcXHQrPSA4MDIxcS5vXFxubmV0LzgwMjFxL01ha2VmaWxlLTctXFxubmV0LzgwMjFxL01ha2VmaWxlLTgtODAyMXEteVxcdFxcdFxcdFxcdFxcdDo9IHZsYW4ubyB2bGFuX2Rldi5vIHZsYW5fbmV0bGluay5vXFxubmV0LzgwMjFxL01ha2VmaWxlOjk6ODAyMXEtJChDT05GSUdfVkxBTl84MDIxUV9HVlJQKVxcdFxcdCs9IHZsYW5fZ3ZycC5vXFxubmV0LzgwMjFxL01ha2VmaWxlOjEwOjgwMjFxLSQoQ09ORklHX1ZMQU5fODAyMVFfTVZSUClcXHRcXHQrPSB2bGFuX212cnAub1xcbm5ldC84MDIxcS9NYWtlZmlsZS0xMS04MDIxcS0kKENPTkZJR19QUk9DX0ZTKVxcdFxcdFxcdCs9IHZsYW5wcm9jLm9cXG4tLVxcbm5ldC84MDIxcS92bGFuLmg9MTU4PXN0YXRpYyBpbmxpbmUgdTMyIHZsYW5fZ2V0X2luZ3Jlc3NfcHJpb3JpdHkoc3RydWN0IG5ldF9kZXZpY2UgKmRldixcXG4tLVxcbm5ldC84MDIxcS92bGFuLmgtMTY1LVxcbm5ldC84MDIxcS92bGFuLmg6MTY2OiNpZmRlZiBDT05GSUdfVkxBTl84MDIxUV9HVlJQXFxubmV0LzgwMjFxL3ZsYW4uaC0xNjctaW50IHZsYW5fZ3ZycF9yZXF1ZXN0X2pvaW4oY29uc3Qgc3RydWN0IG5ldF9kZXZpY2UgKmRldik7XFxuLS1cXG5uZXQvODAyMXEvdmxhbi5oPTE3OT1zdGF0aWMgaW5saW5lIHZvaWQgdmxhbl9ndnJwX3VuaW5pdCh2b2lkKSB7fVxcbi0tXFxubmV0LzgwMjFxL3ZsYW4uaC0xODEtXFxubmV0LzgwMjFxL3ZsYW4uaDoxODI6I2lmZGVmIENPTkZJR19WTEFOXzgwMjFRX01WUlBcXG5uZXQvODAyMXEvdmxhbi5oLTE4My1pbnQgdmxhbl9tdnJwX3JlcXVlc3Rfam9pbihjb25zdCBzdHJ1Y3QgbmV0X2RldmljZSAqZGV2KTtcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMjBUMDg6NDM6MTQuMjc1ODI0ODM2WiIsIlNlcSI6NSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NzM0Mzg1NjUyNCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipBbmFseXppbmcgdGhlIFZMQU4gODAyLjFRIENvbmZpZ3VyYXRpb24gQ2hhbmdlcyoqXG5cbk9rYXksIHNvIEknbSBsb29raW5nIGF0IHRoaXMgcGF0Y2ggd2l0aCB0aGUgYFZMQU5fODAyMVFgIGNvbmZpZyBhY3RpdmUuIFRoZSBjaGFuZ2VzIHNlZW0gdG8gY2VudGVyIGFyb3VuZCB0aGUgaW5pdGlhbGl6YXRpb24gYW5kIGZlYXR1cmUgdHJhbnNmZXIgZnVuY3Rpb25zLCBzcGVjaWZpY2FsbHkgYHZsYW5fZGV2X2luaXRgIGFuZCBgdmxhbl90cmFuc2Zlcl9mZWF0dXJlc2AuIEdvb2QsIHRob3NlIGFyZW4ndCBob3QtcGF0aCBwcm9jZXNzaW5nIGZ1bmN0aW9ucywgc28gdGhhdCBzaW1wbGlmaWVzIHRoaW5ncyBhIGJpdC4gYHZsYW5fZGV2X2luaXRgLCByaWdodCwgdGhhdCdzIGNhbGxlZCB3aGVuIGEgVkxBTiBkZXZpY2UgaXMgKmNyZWF0ZWQqLCBhbmQgYHZsYW5fdHJhbnNmZXJfZmVhdHVyZXNgIGhhbmRsZXMgZmVhdHVyZSBwcm9wYWdhdGlvbiBmcm9tIHRoZSB1bmRlcmx5aW5nIHBoeXNpY2FsIGRldmljZS5cblxuTGV0J3Mgc2VlLCBhcmUgdGhlcmUgYW55IG90aGVyIGZ1bmN0aW9ucyBpbiB0aGlzIGFyZWEgdG8gY29uc2lkZXI/IEhtbSwganVzdCB0aG9zZSB0d28sIGl0IHNlZW1zLlxuXG5BbHJpZ2h0LCB0aGUga2V5IGNoYW5nZSBoZXJlIGlzIHRoZSByZW1vdmFsIG9mIGB2bGFuX3Bhc3N0aHJ1X2hhcmRfaGVhZGVyYCBhbmQgYHZsYW5fcGFzc3RocnVfaGVhZGVyX29wc2AuIEl0IGxvb2tzIGxpa2UgaXQncyBmb3JjaW5nIHRoZSB1c2FnZSBvZiBgdmxhbl9oZWFkZXJfb3BzYCBhbmQgYHZsYW5faGFyZF9oZWFkZXJgLiBPa2F5LCBsZXQgbWUgbWFrZSBzdXJlIEknbSBmb2xsb3dpbmcuIFRoZSBjdXJyZW50IGRlZmluaXRpb24gb2YgYHZsYW5faGVhZGVyX29wc2AgaXM6XG5cbmBgYGNcbnN0YXRpYyBjb25zdCBzdHJ1Y3QgaGVhZGVyX29wcyB2bGFuX2hlYWRlcl9vcHMgPSB7XG5cdC5jcmVhdGVcdCA9IHZsYW5faGFyZF9oZWFkZXIsXG5cdC5wYXJzZVx0ID0gZXRoX2hlYWRlcl9wYXJzZSxcblx0LnBhcnNlX3Byb3RvY29sID0gdmxhbl9wYXJzZV9wcm90b2NvbCxcbn07XG5gYGBcblxuU28sIGluc3RlYWQgb2YgdGhlIFwicGFzc3RocnVcIiBmdW5jdGlvbiwgYHZsYW5faGFyZF9oZWFkZXJgIHdpbGwgbm93IGJlIGludm9rZWQuIE5vdyBJIG5lZWQgdG8gcmVtZW1iZXIgd2hlcmUgYHZsYW5faGFyZF9oZWFkZXJgIGxpdmVzLiBJcyBpdCBpbiBgbmV0LzgwMjFxL3ZsYW5fZGV2LmNgIG9yIGBuZXQvODAyMXEvdmxhbl9jb3JlLmNgPyBHb3R0YSBjaGVjayB0aGF0LlxuXG5cbiIsIklucHV0VG9rZW5zIjo0MDU5LCJPdXRwdXRUb2tlbnMiOjM0LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MzU4LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTIwVDA4OjQzOjIxLjYxOTY4NDcyWiIsIlNlcSI6NiwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjE2MDQyOTM1OTMsIkVycm9yIjoibm8gbWF0Y2hlcyIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcInZsYW5faGFyZF9oZWFkZXJcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwibmV0LzgwMjFxL1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJlcnJvclwiOiBcIm5vIG1hdGNoZXNcIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMjBUMDg6NDM6MjMuMjIzOTkzMzEzWiIsIlNlcSI6NywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NDIyNTU5OTkwMiwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipBbmFseXppbmcgdGhlIFZMQU4gSGVhZGVyIE9wZXJhdGlvbnMgQ2hhbmdlKipcblxuT2theSwgSSdtIGxvb2tpbmcgYXQgdGhpcyBkaWZmIGFuZCBpbW1lZGlhdGVseSBteSBleWUgaXMgZHJhd24gdG8gYHZsYW5faGVhZGVyX29wc2AuIEkgc2VlIGEgY2hhbmdlIGhlcmUsIGFuZCBJIG5lZWQgdG8gdW5kZXJzdGFuZCBpdCBmdWxseS4gVGhlIGluaXRpYWwgc2NhbiBtYWRlIG1lIHRoaW5rIHRoZXJlIHdhcyBhIG1vZGlmaWNhdGlvbiB0byB0aGUgYC5jcmVhdGVgIG1lbWJlciBvZiBgdmxhbl9oZWFkZXJfb3BzYCwgYnV0IHRoYXQgZG9lc24ndCBzZWVtIHRvIGJlIHRoZSBjYXNlIHdoZW4gbG9va2luZyBhdCB0aGUgd2hvbGUgY29udGV4dC4gSSd2ZSBnb3QgdG8gZW5zdXJlIEknbSBpbnRlcnByZXRpbmcgdGhpcyBjb3JyZWN0bHkuIExldCdzIGRvdWJsZS1jaGVjayB0aGUgbGluZSBudW1iZXJzLlxuXG5BbHJpZ2h0LCB0aGUgZnVsbCBjb250ZXh0IG9mIGB2bGFuX2hlYWRlcl9vcHNgIGlzbid0IHNob3dpbmcgYSBtb2RpZmljYXRpb24gb2YgdGhlIGhhcmQgaGVhZGVyIGNyZWF0aW9uLiBPa2F5LCBzbyB0aGF0IGxvb2tzIGxpa2UgaXQncyB1bnRvdWNoZWQuIE5vdywgSSBuZWVkIHRvIHVuZGVyc3RhbmQgd2hhdCB0aGlzIG1lYW5zIGZvciB0aGUgYnJvYWRlciBWTEFOIGltcGxlbWVudGF0aW9uLiBMZXQncyBwdWxsIHVwIGBuZXQvODAyMXEvdmxhbl9kZXYuY2AgYW5kIHN0YXJ0IHJlYWRpbmcgYXJvdW5kIGxpbmUgNTAwIHRvIGdhaW4gYSBiZXR0ZXIgdW5kZXJzdGFuZGluZyBvZiB0aGUgcmVsZXZhbnQgY29kZSBzZWN0aW9uIHRvIGFzc2VzcyBob3cgdGhlc2UgVkxBTiBvcGVyYXRpb25zIGFyZSBiZWluZyB1c2VkLCBhbmQgaWYgdGhlcmUncyBhbnkgaW1wb3J0YW50IGNoYW5nZS5cblxuXG4iLCJJbnB1dFRva2VucyI6NDg1NCwiT3V0cHV0VG9rZW5zIjo0MiwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjE3OSwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0yMFQwODo0MzoyNy40NDk1OTYyMzVaIiwiU2VxIjo4LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJyZWFkLWZpbGUiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoxMDM3MDAsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJGaWxlXCI6IFwibmV0LzgwMjFxL3ZsYW5fZGV2LmNcIixcbiAgXCJGaXJzdExpbmVcIjogNDkwLFxuICBcIkxpbmVDb3VudFwiOiAyMFxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiQ29udGVudHNcIjogXCIgNDkwOlxcdH1cXG4gNDkxOlxcdFxcbiA0OTI6XFx0c3RhdGljIF9fYmUxNiB2bGFuX3BhcnNlX3Byb3RvY29sKGNvbnN0IHN0cnVjdCBza19idWZmICpza2IpXFxuIDQ5MzpcXHR7XFxuIDQ5NDpcXHRcXHRzdHJ1Y3Qgdmxhbl9ldGhoZHIgKnZldGggPSAoc3RydWN0IHZsYW5fZXRoaGRyICopKHNrYi1cXHUwMDNlZGF0YSk7XFxuIDQ5NTpcXHRcXG4gNDk2OlxcdFxcdHJldHVybiBfX3ZsYW5fZ2V0X3Byb3RvY29sKHNrYiwgdmV0aC1cXHUwMDNlaF92bGFuX3Byb3RvLCBOVUxMKTtcXG4gNDk3OlxcdH1cXG4gNDk4OlxcdFxcbiA0OTk6XFx0c3RhdGljIGNvbnN0IHN0cnVjdCBoZWFkZXJfb3BzIHZsYW5faGVhZGVyX29wcyA9IHtcXG4gNTAwOlxcdFxcdC5jcmVhdGVcXHQgPSB2bGFuX2Rldl9oYXJkX2hlYWRlcixcXG4gNTAxOlxcdFxcdC5wYXJzZVxcdCA9IGV0aF9oZWFkZXJfcGFyc2UsXFxuIDUwMjpcXHRcXHQucGFyc2VfcHJvdG9jb2wgPSB2bGFuX3BhcnNlX3Byb3RvY29sLFxcbiA1MDM6XFx0fTtcXG4gNTA0OlxcdFxcbiA1MDU6XFx0c3RhdGljIGNvbnN0IHN0cnVjdCBkZXZpY2VfdHlwZSB2bGFuX3R5cGUgPSB7XFxuIDUwNjpcXHRcXHQubmFtZVxcdD0gXFxcInZsYW5cXFwiLFxcbiA1MDc6XFx0fTtcXG4gNTA4OlxcdFxcbiA1MDk6XFx0c3RhdGljIGNvbnN0IHN0cnVjdCBuZXRfZGV2aWNlX29wcyB2bGFuX25ldGRldl9vcHM7XFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTIwVDA4OjQzOjI3LjQ0OTcwMTY5NVoiLCJTZXEiOjksIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjY5NTcwNjIzODgsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6Ik9rYXksIGhlcmUncyBteSBpbnRlcnByZXRhdGlvbiBvZiB0aG9zZSB0aG91Z2h0cywgdGFpbG9yZWQgZm9yIGFuIGV4cGVydCBhdWRpZW5jZSwgcHJlc2VudGVkIGluIHRoZSBmaXJzdCBwZXJzb246XG5cbioqRGVjb2RpbmcgdGhlIE5ldHdvcmsgSW50ZXJmYWNlKipcblxuUmlnaHQsIHRoYXQgZmVlbHMgZmFtaWxpYXIuLi4gaXQncyBgdmxhbl9kZXZfaGFyZF9oZWFkZXJgLiBJJ20gcHJldHR5IHN1cmUgdGhhdCdzIHRoZSBjdWxwcml0LiBHb3R0YSBkb3VibGUtY2hlY2ssIHRob3VnaCwgc28gbGV0J3MgZGl2ZSBpbnRvIGB2bGFuX2Rldl9oYXJkX2hlYWRlcmAgdG8gY29uZmlybS4gSSBuZWVkIHRvIHJlZnJlc2ggbXkgbWVtb3J5IG9uIHRoZSBzcGVjaWZpY3Mgb2YgaG93IHRoYXQgZnVuY3Rpb24gaGFuZGxlcyBWTEFOIGVuY2Fwc3VsYXRpb24uIExldCdzIHNlZSB3aGF0J3MgZ29pbmcgb24gdW5kZXIgdGhlIGhvb2QgYW5kIG1ha2Ugc3VyZSBpdCdzIGJlaGF2aW5nIGFzIGV4cGVjdGVkLlxuXG5cbiIsIklucHV0VG9rZW5zIjo1NjExLCJPdXRwdXRUb2tlbnMiOjM2LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MzAsIlRvb2xDYWxscyI6WyJyZWFkLWZpbGUiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0yMFQwODo0MzozNC40MDY3NjczMjNaIiwiU2VxIjoxMCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjM5ODgyMTgxMSwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJ2bGFuX2Rldl9oYXJkX2hlYWRlclwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJuZXQvODAyMXEvXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcIm5ldC84MDIxcS92bGFuX2Rldi5jLTQ1LSAqL1xcbm5ldC84MDIxcS92bGFuX2Rldi5jOjQ2OnN0YXRpYyBpbnQgdmxhbl9kZXZfaGFyZF9oZWFkZXIoc3RydWN0IHNrX2J1ZmYgKnNrYiwgc3RydWN0IG5ldF9kZXZpY2UgKmRldixcXG5uZXQvODAyMXEvdmxhbl9kZXYuYy00Ny1cXHRcXHRcXHRcXHR1bnNpZ25lZCBzaG9ydCB0eXBlLFxcbi0tXFxubmV0LzgwMjFxL3ZsYW5fZGV2LmM9NDk5PXN0YXRpYyBjb25zdCBzdHJ1Y3QgaGVhZGVyX29wcyB2bGFuX2hlYWRlcl9vcHMgPSB7XFxubmV0LzgwMjFxL3ZsYW5fZGV2LmM6NTAwOlxcdC5jcmVhdGVcXHQgPSB2bGFuX2Rldl9oYXJkX2hlYWRlcixcXG5uZXQvODAyMXEvdmxhbl9kZXYuYy01MDEtXFx0LnBhcnNlXFx0ID0gZXRoX2hlYWRlcl9wYXJzZSxcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMjBUMDg6NDM6MzQuODA1NjAwODM0WiIsIlNlcSI6MTEsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjU4ODU5MjU2OTMsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqTXkgQW5hbHlzaXMgb2YgdGhpcyBWTEFOIFBhdGNoKipcblxuT2theSwgc28gaXQgbG9va3MgbGlrZSBgdmxhbl9kZXZfaGFyZF9oZWFkZXJgIGlzIGdvaW5nIHRvIGJlIHRoZSBuZXcgZ28tdG8gZnVuY3Rpb24gcmVwbGFjaW5nIGB2bGFuX3Bhc3N0aHJ1X2hhcmRfaGVhZGVyYC4gQnV0IGB2bGFuX2Rldl9oYXJkX2hlYWRlcmAgaXMgYSBob3QtcGF0aCBmdW5jdGlvbiwgbWVhbmluZyBpdCdzIHBlcmZvcm1hbmNlLWNyaXRpY2FsIGFuZCBjYWxsZWQgY29uc3RhbnRseSBmb3IgZXZlcnkgcGFja2V0IG9uIHRoZSBWTEFOIGludGVyZmFjZS4gVGhhdCBtYWtlcyBpdCBsZXNzIGlkZWFsIGZvciBleHRlbnNpdmUgc2NydXRpbnkuIFRoaXMgcGF0Y2ggbG9va3MgbGlrZSBpdCBtb2RpZmllcyBgdmxhbl9kZXZfaW5pdGAgYW5kIGB2bGFuX3RyYW5zZmVyX2ZlYXR1cmVzYCwgYW5kIHRoYXQncyB3aGVyZSBteSBmb2N1cyBzaG91bGQgYmUuIEl0J3MgZGVmaW5pdGVseSBhIGZ1bmN0aW9uYWwgY2hhbmdlLCBzbyBpdCBtZXJpdHMgY2FyZWZ1bCBjb25zaWRlcmF0aW9uLlxuXG5JJ20gdGhpbmtpbmcgSSBzaG91bGQgcmVhbGx5IHplcm8gaW4gb24gYHZsYW5fZGV2X2luaXRgIGFuZCBgdmxhbl90cmFuc2Zlcl9mZWF0dXJlc2AuIFdlIGNhbiBwcm9iYWJseSBkaXNyZWdhcmQgYHZsYW5fZGV2X2hhcmRfaGVhZGVyYCBmb3IgdGhlIG1vbWVudCBkdWUgdG8gaXRzIGhvdC1wYXRoIG5hdHVyZS5cblxuTGV0IG1lIGRvdWJsZS1jaGVjayB0aGUgcmVsZXZhbnQgY29uZmlndXJhdGlvbnMuIEJhc2VkIG9uIHRoZSBjb25maWd1cmF0aW9uIEkgc2VlIGhlcmUsIGl0J3MgcHJpbWFyaWx5IGFib3V0IGBWTEFOXzgwMjFRYC5cblxuVGhlIEpTT04gY29uZmlybXMgbXkgaW5pdGlhbCBhc3Nlc3NtZW50LiBJdCBoaWdobGlnaHRzIHRoYXQgdGhlIGNoYW5nZSByZW1vdmVzIGhhcmR3YXJlIG9mZmxvYWQtc3BlY2lmaWMgaGVhZGVyIG9wZXJhdGlvbnMgZm9yIFZMQU4gZGV2aWNlcy4gVGhpcyBmb3JjZXMgYWxsIFZMQU4gZGV2aWNlcyB0byB1c2UgdGhlIHN0YW5kYXJkIFZMQU4gaGVhZGVyIG9wZXJhdGlvbnMgYW5kIGhhcmQgaGVhZGVyIGxlbmd0aCwgYW5kIHRoZSBwYXRjaCBhZmZlY3RzIFZMQU4gZGV2aWNlIGluaXRpYWxpemF0aW9uIGFuZCBmZWF0dXJlIHRyYW5zZmVyLCB3aGljaCBhcmUgYm90aCBjb3JlIG5ldHdvcmtpbmcgcGF0aHMuIFRoaXMgcmVpbmZvcmNlcyB0aGUgZm9jdXMgb24gdGhvc2UgdHdvIGZ1bmN0aW9ucyBmb3IgYW55IGRlZXAgZGl2ZSBvciBmdXp6aW5nIGVmZm9ydHMuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjYwMDYsIk91dHB1dFRva2VucyI6MTA0LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6Mjk3LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTIwVDA4OjQzOjQwLjY5MTUyOTQ2N1oiLCJTZXEiOjEyLCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJzZXQtcmVzdWx0cyIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjEwMTkxODcxMCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogW1xuICAgIFwiVkxBTl84MDIxUVwiXG4gIF0sXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtcbiAgICBcInZsYW5fZGV2X2luaXRcIixcbiAgICBcInZsYW5fdHJhbnNmZXJfZmVhdHVyZXNcIlxuICBdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCByZW1vdmVzIGhhcmR3YXJlIG9mZmxvYWQtc3BlY2lmaWMgaGVhZGVyIG9wZXJhdGlvbnMgZm9yIFZMQU4gZGV2aWNlcywgZm9yY2luZyBhbGwgVkxBTiBkZXZpY2VzIHRvIHVzZSB0aGUgc3RhbmRhcmQgVkxBTiBoZWFkZXIgb3BlcmF0aW9ucyBhbmQgaGFyZCBoZWFkZXIgbGVuZ3RoLiBUaGlzIGFmZmVjdHMgVkxBTiBkZXZpY2UgaW5pdGlhbGl6YXRpb24gYW5kIGZlYXR1cmUgdHJhbnNmZXIsIHdoaWNoIGFyZSByZWFjaGFibGUgY29yZSBuZXR3b3JraW5nIHBhdGhzLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiB0cnVlXG59IiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IFtcbiAgICBcIlZMQU5fODAyMVFcIlxuICBdLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXG4gICAgXCJ2bGFuX2Rldl9pbml0XCIsXG4gICAgXCJ2bGFuX3RyYW5zZmVyX2ZlYXR1cmVzXCJcbiAgXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggcmVtb3ZlcyBoYXJkd2FyZSBvZmZsb2FkLXNwZWNpZmljIGhlYWRlciBvcGVyYXRpb25zIGZvciBWTEFOIGRldmljZXMsIGZvcmNpbmcgYWxsIFZMQU4gZGV2aWNlcyB0byB1c2UgdGhlIHN0YW5kYXJkIFZMQU4gaGVhZGVyIG9wZXJhdGlvbnMgYW5kIGhhcmQgaGVhZGVyIGxlbmd0aC4gVGhpcyBhZmZlY3RzIFZMQU4gZGV2aWNlIGluaXRpYWxpemF0aW9uIGFuZCBmZWF0dXJlIHRyYW5zZmVyLCB3aGljaCBhcmUgcmVhY2hhYmxlIGNvcmUgbmV0d29ya2luZyBwYXRocy5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogdHJ1ZVxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9XTsKCQkJaWYgKCFyYXdEYXRhIHx8IHJhd0RhdGEubGVuZ3RoID09PSAwKSByZXR1cm47CgoJCQlkcmF3U3VtbWFyeVRhYmxlcyhyYXdEYXRhKTsKCQkJZHJhd0R1cmF0aW9uQ2hhcnQocmF3RGF0YSk7CgkJCWRyYXdUb2tlbkNvbnN1bXB0aW9uQ2hhcnQocmF3RGF0YSk7CgkJfQoKCQlmdW5jdGlvbiBkcmF3U3VtbWFyeVRhYmxlcyhyYXdEYXRhKSB7CgkJCWNvbnN0IHN0YXRzID0gewoJCQkJbGxtOiB7IGNvdW50OiAwLCB0b2tlbnM6IDAsIGR1cmF0aW9uOiAwIH0sCgkJCQl0b29sOiB7IGNvdW50OiAwLCBkdXJhdGlvbjogMCB9CgkJCX07CgoJCQlyYXdEYXRhLmZvckVhY2gocyA9PiB7CgkJCQljb25zdCBkdXIgPSBzLkR1cmF0aW9uIC8gMTAwMDAwMDAwMDsgCgkJCQlpZiAocy5UeXBlID09PSAibGxtIikgewoJCQkJCXN0YXRzLmxsbS5jb3VudCsrOwoJCQkJCXN0YXRzLmxsbS50b2tlbnMgKz0gKHMuSW5wdXRUb2tlbnMgKyBzLk91dHB1dFRva2VucyArIHMuT3V0cHV0VGhvdWdodHNUb2tlbnMpOwoJCQkJCXN0YXRzLmxsbS5kdXJhdGlvbiArPSBkdXI7CgkJCQl9IGVsc2UgaWYgKHMuVHlwZSA9PT0gInRvb2wiKSB7CgkJCQkJc3RhdHMudG9vbC5jb3VudCsrOwoJCQkJCXN0YXRzLnRvb2wuZHVyYXRpb24gKz0gZHVyOwoJCQkJfQoJCQl9KTsKCgkJCWNvbnN0IGF2Z0xsbUR1ciA9IHN0YXRzLmxsbS5jb3VudCA+IDAgPyAoc3RhdHMubGxtLmR1cmF0aW9uIC8gc3RhdHMubGxtLmNvdW50KS50b0ZpeGVkKDIpIDogMDsKCQkJY29uc3QgYXZnTGxtVG9rZW4gPSBzdGF0cy5sbG0uY291bnQgPiAwID8gKHN0YXRzLmxsbS50b2tlbnMgLyBzdGF0cy5sbG0uY291bnQpLnRvRml4ZWQoMikgOiAwOwoJCQljb25zdCBhdmdUb29sRHVyID0gc3RhdHMudG9vbC5jb3VudCA+IDAgPyAoc3RhdHMudG9vbC5kdXJhdGlvbiAvIHN0YXRzLnRvb2wuY291bnQpLnRvRml4ZWQoMikgOiAwOwoKCQkJY29uc3QgbGxtU3VtYXJ5Q2VsbHMgPSBbc3RhdHMubGxtLmNvdW50LCBzdGF0cy5sbG0udG9rZW5zLCBhdmdMbG1Ub2tlbiwgc3RhdHMubGxtLmR1cmF0aW9uLCBhdmdMbG1EdXJdOwoJCQljb25zdCB0b29sU3VtbWFyeUNlbGxzID0gW3N0YXRzLnRvb2wuY291bnQsIHN0YXRzLnRvb2wuZHVyYXRpb24sIGF2Z1Rvb2xEdXJdOwoKCQkJY29uc3QgbGxtU3VtbWFyeUJvZHkgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnbGxtX3N1bW1hcnlfc3RhdHNfYm9keScpOwoJCQlsbG1TdW1tYXJ5Qm9keS5pbm5lckhUTUwgPSAiIjsKCQkJY29uc3QgbGxtVHIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0cicpOwoJCQlsbG1TdW1hcnlDZWxscy5mb3JFYWNoKGNlbGwgPT4gewoJCQkJY29uc3QgdGQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ZCcpOwoJCQkJdGQudGV4dENvbnRlbnQgPSBjZWxsOwoJCQkJbGxtVHIuYXBwZW5kQ2hpbGQodGQpOwoJCQl9KTsKCQkJbGxtU3VtbWFyeUJvZHkuYXBwZW5kQ2hpbGQobGxtVHIpOwoKCQkJY29uc3QgdG9vbFN1bW1hcnlCb2R5ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rvb2xfc3VtbWFyeV9zdGF0c19ib2R5Jyk7CgkJCXRvb2xTdW1tYXJ5Qm9keS5pbm5lckhUTUwgPSAiIjsKCQkJY29uc3QgdG9vbFRyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndHInKTsKCQkJdG9vbFN1bW1hcnlDZWxscy5mb3JFYWNoKGNlbGwgPT4gewoJCQkJY29uc3QgdGQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ZCcpOwoJCQkJdGQudGV4dENvbnRlbnQgPSBjZWxsOwoJCQkJdG9vbFRyLmFwcGVuZENoaWxkKHRkKTsKCQkJfSk7CgkJCXRvb2xTdW1tYXJ5Qm9keS5hcHBlbmRDaGlsZCh0b29sVHIpOwoJCX0KCgkJZnVuY3Rpb24gZHJhd0R1cmF0aW9uQ2hhcnQocmF3RGF0YSkgewoJCQljb25zdCBmaWx0ZXJlZFN0ZXBzID0gcmF3RGF0YS5maWx0ZXIoZCA9PiBbImxsbSIsICJ0b29sIl0uaW5jbHVkZXMoZC5UeXBlKSk7CgkJCWNvbnN0IGRhdGEgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uRGF0YVRhYmxlKCk7CgkJCWRhdGEuYWRkQ29sdW1uKCdzdHJpbmcnLCAnU3RlcCcpOwoJCQlkYXRhLmFkZENvbHVtbignbnVtYmVyJywgJ0R1cmF0aW9uJyk7CgkJCWRhdGEuYWRkQ29sdW1uKHt0eXBlOiAnc3RyaW5nJywgcm9sZTogJ3Rvb2x0aXAnfSk7IAoKCQkJZmlsdGVyZWRTdGVwcy5mb3JFYWNoKHMgPT4gewoJCQkJCgkJCQljb25zdCBkdXIgPSBzLkR1cmF0aW9uIC8gMTAwMDAwMDAwMDsKCQkJCWxldCB0b29sdGlwID0gcy5OYW1lOwoJCQkJaWYgKHMuVHlwZSA9PT0gImxsbSIgJiYgcy5Ub29sQ2FsbHMgJiYgcy5Ub29sQ2FsbHMubGVuZ3RoID4gMCkgewoJCQkJCXRvb2x0aXAgKz0gYFxuVG9vbHM6ICR7cy5Ub29sQ2FsbHMuam9pbignLCAnKX1gOwoJCQkJfQoJCQkJZGF0YS5hZGRSb3coW2Ake3MuU2VxfWAsIGR1ciwgdG9vbHRpcF0pOwoJCQl9KTsKCgkJCWNvbnN0IG9wdGlvbnMgPSB7CgkJCQl0aXRsZTogJ1RpbWUgQ29uc3VtcHRpb24gb2YgTExNL1Rvb2wgQ2FsbHMnLAoJCQkJaEF4aXM6IHsKCQkJCQl0aXRsZTogJ0xMTS9Ub29sIFN0ZXBzJywKCQkJCX0sCgkJCQl2QXhpczogeyB0aXRsZTogJ1NlY29uZHMnIH0sCgkJCQlsZWdlbmQ6IHsgcG9zaXRpb246ICdub25lJyB9LAoJCQkJYmFyOiB7IGdyb3VwV2lkdGg6ICc3NSUnIH0sCgkJCQljaGFydEFyZWE6IHsgd2lkdGg6ICc4NSUnLCBoZWlnaHQ6ICc3MCUnIH0sCgkJCQloZWlnaHQ6IDQwMAoJCQl9OwoKCQkJY29uc3QgY2hhcnQgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uQ29sdW1uQ2hhcnQoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2R1cmF0aW9uX2NoYXJ0X2RpdicpKTsKCQkJY2hhcnQuZHJhdyhkYXRhLCBvcHRpb25zKTsKCQl9CgoJCWZ1bmN0aW9uIGRyYXdUb2tlbkNvbnN1bXB0aW9uQ2hhcnQocmF3RGF0YSkgewoJCQljb25zdCBsbG1TdGVwcyA9IHJhd0RhdGEuZmlsdGVyKGQgPT4gZC5UeXBlID09PSAibGxtIik7CgkJCWlmIChsbG1TdGVwcy5sZW5ndGggPT09IDApIHJldHVybjsKCgkJCWNvbnN0IGRhdGEgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uRGF0YVRhYmxlKCk7CgkJCWRhdGEuYWRkQ29sdW1uKCdzdHJpbmcnLCAnU3RlcCcpOwkJCQoJCQlkYXRhLmFkZENvbHVtbignbnVtYmVyJywgJ1Rva2VucycpOwkJCQoJCQlkYXRhLmFkZENvbHVtbih7dHlwZTogJ3N0cmluZycsIHJvbGU6ICdzdHlsZSd9KTsJCgkJCWRhdGEuYWRkQ29sdW1uKHt0eXBlOiAnc3RyaW5nJywgcm9sZTogJ3Rvb2x0aXAnfSk7CQoKCQkJY29uc3QgYWdlbnRDb2xvcnMgPSB7fTsKCQkJY29uc3QgcGFsZXR0ZSA9IFsnIzQyODVGNCcsICcjREI0NDM3JywgJyNGNEI0MDAnLCAnIzBGOUQ1OCcsICcjQUI0N0JDJywgJyMwMEFDQzEnXTsKCQkJbGV0IGNvbG9ySWR4ID0gMDsKCQkJY29uc3QgYWdlbnRMTE1Db3VudHMgPSB7fTsKCQkJbGxtU3RlcHMuZm9yRWFjaChzID0+IHsKCQkJCWlmICghYWdlbnRDb2xvcnNbcy5OYW1lXSkgewoJCQkJCWFnZW50Q29sb3JzW3MuTmFtZV0gPSBwYWxldHRlW2NvbG9ySWR4ICUgcGFsZXR0ZS5sZW5ndGhdOwoJCQkJCWNvbG9ySWR4Kys7CgkJCQl9CgoJCQkJYWdlbnRMTE1Db3VudHNbcy5OYW1lXSA9IChhZ2VudExMTUNvdW50c1tzLk5hbWVdIHx8IDApICsgMTsKCQkJCWNvbnN0IGxhYmVsID0gYCR7cy5OYW1lfS0ke2FnZW50TExNQ291bnRzW3MuTmFtZV19YDsKCQkJCWNvbnN0IHRvdGFsVG9rZW5zID0gcy5JbnB1dFRva2VucyArIHMuT3V0cHV0VG9rZW5zICsgcy5PdXRwdXRUaG91Z2h0c1Rva2VuczsKCQkJCWNvbnN0IHN0eWxlID0gYGNvbG9yOiAke2FnZW50Q29sb3JzW3MuTmFtZV19YDsKCQkJCWxldCB0b29sdGlwID0gYFRvdGFsIFRva2VuczogJHt0b3RhbFRva2Vuc31cbihJbjogJHtzLklucHV0VG9rZW5zfSwgT3V0OiAke3MuT3V0cHV0VG9rZW5zfSwgVGhvdWdodHM6ICR7cy5PdXRwdXRUaG91Z2h0c1Rva2Vuc30pYDsKCQkJCWlmIChzLlRvb2xDYWxscyAmJiBzLlRvb2xDYWxscy5sZW5ndGggPiAwKSB7CgkJCQkJdG9vbHRpcCArPSBgXG5Ub29sczogJHtzLlRvb2xDYWxscy5qb2luKCcsICcpfWA7CgkJCQl9CgoJCQkJZGF0YS5hZGRSb3coW2xhYmVsLCB0b3RhbFRva2Vucywgc3R5bGUsIHRvb2x0aXBdKTsKCQkJfSk7CgoJCQljb25zdCBvcHRpb25zID0gewoJCQkJdGl0bGU6ICdUb2tlbiBDb25zdW1wdGlvbiBieSBMTE0gQ2FsbHMnLAoJCQkJaEF4aXM6IHsKCQkJCQl0aXRsZTogJ0xMTSBDYWxsIFNlcXVlbmNlJywKCQkJCX0sCgkJCQl2QXhpczogeyB0aXRsZTogJ0NvbnN1bWVkIFRva2VucycgfSwKCQkJCWxlZ2VuZDogeyBwb3NpdGlvbjogJ25vbmUnIH0sCgkJCQliYXI6IHsgZ3JvdXBXaWR0aDogJzc1JScgfSwKCQkJCWNoYXJ0QXJlYTogeyB3aWR0aDogJzg1JScsIGhlaWdodDogJzcwJScgfSwKCQkJCWhlaWdodDogNDAwCgkJCX07CgoJCQljb25zdCBjaGFydCA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5Db2x1bW5DaGFydChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndG9rZW5fY2hhcnRfZGl2JykpOwoJCQljaGFydC5kcmF3KGRhdGEsIG9wdGlvbnMpOwoJCX0KCQlsZXQgYWxsRXhwYW5kZWQgPSBmYWxzZTsKCQlmdW5jdGlvbiB0b2dnbGVBbGxEZXRhaWxzKCkgewoJCQlhbGxFeHBhbmRlZCA9ICFhbGxFeHBhbmRlZDsKCQkJZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgnZGV0YWlscycpLmZvckVhY2goZCA9PiB7CgkJCQlpZiAoYWxsRXhwYW5kZWQpIGQuc2V0QXR0cmlidXRlKCdvcGVuJywgJycpOwoJCQkJZWxzZSBkLnJlbW92ZUF0dHJpYnV0ZSgnb3BlbicpOwoJCQl9KTsKCQl9Cgk8L3NjcmlwdD4KCgo8L2JvZHk+CjwvaHRtbD4K" },ValueFrom:&ValueFrom{Path:/output/result.json,JSONPath:,JQFilter:,Parameter:,Default:nil,Supplied:nil,Event:,Expression:,ConfigMapKeyRef:nil,},GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},Result:nil,ExitCode:*0,} --------- Name: series-workflowwtb8f[0].run-triage(0) Phase: Succeeded StartedAt: 2026-07-20 08:18:29 +0000 UTC FinishedAt: 2026-07-20 08:43:43 +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": [ "VLAN_8021Q" ], "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": [ "VLAN_8021Q" ], "series_id": "baacc887-d8ac-4ad9-986e-4738d0c88ecb" }, "track": "KASAN", "fuzz": { "focus": [ "net" ], "focus_symbols": [ "vlan_dev_init", "vlan_transfer_features" ], "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+CgkJCTx0ZD4yMDI2LzA3LzIwIDA4OjQzPC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O1ZMQU5fODAyMVEmIzM0OwogIF0sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogWwogICAgJiMzNDt2bGFuX2Rldl9pbml0JiMzNDssCiAgICAmIzM0O3ZsYW5fdHJhbnNmZXJfZmVhdHVyZXMmIzM0OwogIF0sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggcmVtb3ZlcyBoYXJkd2FyZSBvZmZsb2FkLXNwZWNpZmljIGhlYWRlciBvcGVyYXRpb25zIGZvciBWTEFOIGRldmljZXMsIGZvcmNpbmcgYWxsIFZMQU4gZGV2aWNlcyB0byB1c2UgdGhlIHN0YW5kYXJkIFZMQU4gaGVhZGVyIG9wZXJhdGlvbnMgYW5kIGhhcmQgaGVhZGVyIGxlbmd0aC4gVGhpcyBhZmZlY3RzIFZMQU4gZGV2aWNlIGluaXRpYWxpemF0aW9uIGFuZCBmZWF0dXJlIHRyYW5zZmVyLCB3aGljaCBhcmUgcmVhY2hhYmxlIGNvcmUgbmV0d29ya2luZyBwYXRocy4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiB0cnVlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xLzE8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yMCAwODo0MzwvdGQ+CgkJCTx0ZD5hY3Rpb248L3RkPgoJCQk8dGQ+cmVhZC1wYXRjaC1kaWZmPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7UGF0Y2hEaWZmJiMzNDs6ICYjMzQ7Y29tbWl0IDUyOTVlMTRjZWI1MDUyYmQ4N2YzODEzYWM1MTEyMGQ0NzllMjJlMzdcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cdTAwM2VcbkRhdGU6ICAgTW9uIEp1bCAyMCAwODo0MzowMyAyMDI2ICYjNDM7MDAwMFxuXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XG5cbmRpZmYgLS1naXQgYS9uZXQvODAyMXEvdmxhbl9kZXYuYyBiL25ldC84MDIxcS92bGFuX2Rldi5jXG5pbmRleCBlYzI1NjliM2Y4ZGFjNi4uYWNmN2Y1MmQxZWIyMTkgMTAwNjQ0XG4tLS0gYS9uZXQvODAyMXEvdmxhbl9kZXYuY1xuJiM0MzsmIzQzOyYjNDM7IGIvbmV0LzgwMjFxL3ZsYW5fZGV2LmNcbkBAIC01MDIsMjYgJiM0Mzs1MDIsNiBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IGhlYWRlcl9vcHMgdmxhbl9oZWFkZXJfb3BzID0ge1xuIFx0LnBhcnNlX3Byb3RvY29sID0gdmxhbl9wYXJzZV9wcm90b2NvbCxcbiB9O1xuIFxuLXN0YXRpYyBpbnQgdmxhbl9wYXNzdGhydV9oYXJkX2hlYWRlcihzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3QgbmV0X2RldmljZSAqZGV2LFxuLVx0XHRcdFx0ICAgICB1bnNpZ25lZCBzaG9ydCB0eXBlLFxuLVx0XHRcdFx0ICAgICBjb25zdCB2b2lkICpkYWRkciwgY29uc3Qgdm9pZCAqc2FkZHIsXG4tXHRcdFx0XHQgICAgIHVuc2lnbmVkIGludCBsZW4pXG4te1xuLVx0c3RydWN0IHZsYW5fZGV2X3ByaXYgKnZsYW4gPSB2bGFuX2Rldl9wcml2KGRldik7XG4tXHRzdHJ1Y3QgbmV0X2RldmljZSAqcmVhbF9kZXYgPSB2bGFuLVx1MDAzZXJlYWxfZGV2O1xuLVxuLVx0aWYgKHNhZGRyID09IE5VTEwpXG4tXHRcdHNhZGRyID0gZGV2LVx1MDAzZWRldl9hZGRyO1xuLVxuLVx0cmV0dXJuIGRldl9oYXJkX2hlYWRlcihza2IsIHJlYWxfZGV2LCB0eXBlLCBkYWRkciwgc2FkZHIsIGxlbik7XG4tfVxuLVxuLXN0YXRpYyBjb25zdCBzdHJ1Y3QgaGVhZGVyX29wcyB2bGFuX3Bhc3N0aHJ1X2hlYWRlcl9vcHMgPSB7XG4tXHQuY3JlYXRlXHQgPSB2bGFuX3Bhc3N0aHJ1X2hhcmRfaGVhZGVyLFxuLVx0LnBhcnNlXHQgPSBldGhfaGVhZGVyX3BhcnNlLFxuLVx0LnBhcnNlX3Byb3RvY29sID0gdmxhbl9wYXJzZV9wcm90b2NvbCxcbi19O1xuLVxuIHN0YXRpYyBjb25zdCBzdHJ1Y3QgZGV2aWNlX3R5cGUgdmxhbl90eXBlID0ge1xuIFx0Lm5hbWVcdD0gXCYjMzQ7dmxhblwmIzM0OyxcbiB9O1xuQEAgLTU4MSwxMyAmIzQzOzU2MSw4IEBAIHN0YXRpYyBpbnQgdmxhbl9kZXZfaW5pdChzdHJ1Y3QgbmV0X2RldmljZSAqZGV2KVxuICNlbmRpZlxuIFxuIFx0ZGV2LVx1MDAzZW5lZWRlZF9oZWFkcm9vbSA9IHJlYWxfZGV2LVx1MDAzZW5lZWRlZF9oZWFkcm9vbTtcbi1cdGlmICh2bGFuX2h3X29mZmxvYWRfY2FwYWJsZShyZWFsX2Rldi1cdTAwM2VmZWF0dXJlcywgdmxhbi1cdTAwM2V2bGFuX3Byb3RvKSkge1xuLVx0XHRkZXYtXHUwMDNlaGVhZGVyX29wcyAgICAgID0gXHUwMDI2dmxhbl9wYXNzdGhydV9oZWFkZXJfb3BzO1xuLVx0XHRkZXYtXHUwMDNlaGFyZF9oZWFkZXJfbGVuID0gcmVhbF9kZXYtXHUwMDNlaGFyZF9oZWFkZXJfbGVuO1xuLVx0fSBlbHNlIHtcbi1cdFx0ZGV2LVx1MDAzZWhlYWRlcl9vcHMgICAgICA9IFx1MDAyNnZsYW5faGVhZGVyX29wcztcbi1cdFx0ZGV2LVx1MDAzZWhhcmRfaGVhZGVyX2xlbiA9IHJlYWxfZGV2LVx1MDAzZWhhcmRfaGVhZGVyX2xlbiAmIzQzOyBWTEFOX0hMRU47XG4tXHR9XG4mIzQzO1x0ZGV2LVx1MDAzZWhlYWRlcl9vcHMgICAgICA9IFx1MDAyNnZsYW5faGVhZGVyX29wcztcbiYjNDM7XHRkZXYtXHUwMDNlaGFyZF9oZWFkZXJfbGVuID0gcmVhbF9kZXYtXHUwMDNlaGFyZF9oZWFkZXJfbGVuICYjNDM7IFZMQU5fSExFTjtcbiBcbiBcdGRldi1cdTAwM2VuZXRkZXZfb3BzID0gXHUwMDI2dmxhbl9uZXRkZXZfb3BzO1xuIFxuQEAgLTEwMjksMTAgJiM0MzsxMDA0LDcgQEAgc3RhdGljIHZvaWQgdmxhbl90cmFuc2Zlcl9mZWF0dXJlcyhzdHJ1Y3QgbmV0X2RldmljZSAqZGV2LFxuIFxuIFx0bmV0aWZfaW5oZXJpdF90c29fbWF4KHZsYW5kZXYsIGRldik7XG4gXG4tXHRpZiAodmxhbl9od19vZmZsb2FkX2NhcGFibGUoZGV2LVx1MDAzZWZlYXR1cmVzLCB2bGFuLVx1MDAzZXZsYW5fcHJvdG8pKVxuLVx0XHR2bGFuZGV2LVx1MDAzZWhhcmRfaGVhZGVyX2xlbiA9IGRldi1cdTAwM2VoYXJkX2hlYWRlcl9sZW47XG4tXHRlbHNlXG4tXHRcdHZsYW5kZXYtXHUwMDNlaGFyZF9oZWFkZXJfbGVuID0gZGV2LVx1MDAzZWhhcmRfaGVhZGVyX2xlbiAmIzQzOyBWTEFOX0hMRU47XG4mIzQzO1x0dmxhbmRldi1cdTAwM2VoYXJkX2hlYWRlcl9sZW4gPSBkZXYtXHUwMDNlaGFyZF9oZWFkZXJfbGVuICYjNDM7IFZMQU5fSExFTjtcbiBcbiAjaWYgSVNfRU5BQkxFRChDT05GSUdfRkNPRSlcbiBcdHZsYW5kZXYtXHUwMDNlZmNvZV9kZHBfeGlkID0gZGV2LVx1MDAzZWZjb2VfZGRwX3hpZDtcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4yLzE8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yMCAwODo0MzwvdGQ+CgkJCTx0ZD5hZ2VudDwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogWwogICAgJiMzNDtWTEFOXzgwMjFRJiMzNDsKICBdLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFsKICAgICYjMzQ7dmxhbl9kZXZfaW5pdCYjMzQ7LAogICAgJiMzNDt2bGFuX3RyYW5zZmVyX2ZlYXR1cmVzJiMzNDsKICBdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIHJlbW92ZXMgaGFyZHdhcmUgb2ZmbG9hZC1zcGVjaWZpYyBoZWFkZXIgb3BlcmF0aW9ucyBmb3IgVkxBTiBkZXZpY2VzLCBmb3JjaW5nIGFsbCBWTEFOIGRldmljZXMgdG8gdXNlIHRoZSBzdGFuZGFyZCBWTEFOIGhlYWRlciBvcGVyYXRpb25zIGFuZCBoYXJkIGhlYWRlciBsZW5ndGguIFRoaXMgYWZmZWN0cyBWTEFOIGRldmljZSBpbml0aWFsaXphdGlvbiBhbmQgZmVhdHVyZSB0cmFuc2Zlciwgd2hpY2ggYXJlIHJlYWNoYWJsZSBjb3JlIG5ldHdvcmtpbmcgcGF0aHMuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogdHJ1ZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5JbnN0cnVjdGlvbjo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPllvdSBhcmUgYW4gZXhwZXJ0IExpbnV4IGtlcm5lbCBtYWludGFpbmVyLgpZb3VyIGpvYiBpcyB0byByZXZpZXcgYSBwcm92aWRlZCBwYXRjaCBzZXJpZXMgYW5kIGRldGVybWluZQppZiBpdCBtYWtlcyBmdW5jdGlvbmFsIGNoYW5nZXMgdG8gdGhlIGtlcm5lbCB0aGF0IHNob3VsZCBiZSBmdXp6ZWQuCgpJTVBPUlRBTlQ6IFRoZSBjaGFuZ2VzIGhhdmUgQUxSRUFEWSBiZWVuIGFwcGxpZWQgYW5kIGNvbW1pdHRlZCBhcyB0aGUgSEVBRCBjb21taXQgaW4KeW91ciB3b3Jrc3BhY2UuIERvIE5PVCByZWx5IG9uIHlvdXIgaW50ZXJuYWwga25vd2xlZGdlIG9mIHRoZSBrZXJuZWwuIFlvdSBtdXN0IGFjdGl2ZWx5CnVzZSB5b3VyIGNvZGUgYWNjZXNzIHRvb2xzIHRvIGV4YW1pbmUgdGhlIGFjdHVhbCBzb3VyY2UgY29kZSBhbmQgY29uZmlybSBhbnkgYXNzdW1wdGlvbnMuCgpSZXR1cm4gV29ydGhGdXp6aW5nPWZhbHNlIGlmIHRoZSBwYXRjaCBvbmx5IGNvbnRhaW5zOgotIE1vZGlmaWNhdGlvbnMgdG8gRG9jdW1lbnRhdGlvbi8sIEtjb25maWcgZmlsZXMsIG9yIGNvZGUgY29tbWVudHMuCi0gUHVyZWx5IGRlY29yYXRpdmUgY2hhbmdlcywgc3VjaCBhcyBsb2dnaW5nIChlLmcuLCBwcl9lcnIsIHByaW50aykgb3IgdHJhY2Vwb2ludHMuCi0gQ2hhbmdlcyB0byBudW1lcmljIGNvbnN0YW50cyBvciBtYWNyb3MgdGhhdCBkbyBub3QgZnVuY3Rpb25hbGx5IGFsdGVyIGV4ZWN1dGlvbiBmbG93LgotIENvZGUgcGF0aHMgdGhhdCBhcmUgaW1wb3NzaWJsZSB0byByZWFjaCBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBHQ0Ugb3IgUUVNVSwKZXZlbiB3aGVuIHV0aWxpemluZyBzb2Z0d2FyZS1lbXVsYXRlZCBoYXJkd2FyZSAoZS5nLiwgdXNiIGdhZGdldCwgbWFjODAyMTFfaHdzaW0pLgoKSWYgaXQgbW9kaWZpZXMgcmVhY2hhYmxlIGNvcmUga2VybmVsIGxvZ2ljLCBkcml2ZXJzLCBvciBhcmNoaXRlY3R1cmVzLCB1c2UgeW91ciBjb2RlIHNlYXJjaAp0b29scyB0byB2ZXJpZnkgdGhlIGNvZGUgY2FuIGJlIGV4ZWN1dGVkLCB0aGVuIHJldHVybiBXb3J0aEZ1enppbmc9dHJ1ZS4KCldoZW4gcmV0dXJuaW5nIFdvcnRoRnV6emluZz10cnVlLCB5b3UgTVVTVCBBTFNPOgoxLiBFeHRyYWN0IGFueSBzcGVjaWZpYyBrZXJuZWwgZnVuY3Rpb25zIHRoYXQgc2hvdWxkIGJlIGhlYXZpbHkgZnV6emVkIGludG8gRm9jdXNTeW1ib2xzLgogICBBdm9pZCBsaXN0aW5nIGdlbmVyaWMgaG90LXBhdGggZnVuY3Rpb25zIHRvIHByZXZlbnQgc2tld2VkIHRlc3QgZGlzdHJpYnV0aW9ucy4KMi4gSWRlbnRpZnkgYW55IHNwZWNpZmljIENPTkZJR18gb3B0aW9ucyByZXF1aXJlZCB0byBwcm9wZXJseSB0ZXN0IHRoaXMgbmV3L21vZGlmaWVkIGZlYXR1cmUuCiAgIEdvIGFuZCBsb29rIGludG8gdGhlIEtjb25maWcgZmlsZXMgYW5kIGNoZWNrIGZvciBpZmRlZnMgYXJvdW5kIHRoZSBjb2RlLCBkbyBub3QgbWFrZSBhc3N1bXB0aW9ucy4KICAgRG8gbm90IGxpc3QgdG9vIGdlbmVyaWMgY29uZmlncyAod2UgYWxyZWFkeSBoYXZlIHRoZW0gZW5hYmxlZCkuIE9ubHkgbGlzdCB0aG9zZSB0aGF0CiAgIHNwZWNpZmljYWxseSBjb3ZlciB0aGUgbW9kaWZpZWQgY29kZS4gTGlzdCB0aGVtIGluIHRoZSBFbmFibGVDb25maWdzIG91dHB1dCBhcnJheSwKICAgYW5kIERPIE5PVCBhZGQgYSAmIzM5O0NPTkZJR18mIzM5OyBwcmVmaXggKGUuZy4sIHJldHVybiAmIzM0O05FVF9JUFY0JiMzNDsgaW5zdGVhZCBvZiAmIzM0O0NPTkZJR19ORVRfSVBWNCYjMzQ7KS4KUHJlZmVyIGNhbGxpbmcgc2V2ZXJhbCB0b29scyBhdCB0aGUgc2FtZSB0aW1lIHRvIHNhdmUgcm91bmQtdHJpcHMuCgoKVXNlIHNldC1yZXN1bHRzIHRvb2wgdG8gcHJvdmlkZSByZXN1bHRzIG9mIHRoZSBhbmFseXNpcy4KSXQgbXVzdCBiZSBjYWxsZWQgZXhhY3RseSBvbmNlIGJlZm9yZSB0aGUgZmluYWwgcmVwbHkuCklnbm9yZSByZXN1bHRzIG9mIHRoaXMgdG9vbC4KPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Qcm9tcHQ6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Gb3IgeW91ciBjb252ZW5pZW5jZSwgaGVyZSBpcyB0aGUgZGlmZiBvZiB0aGUgY2hhbmdlczoKY29tbWl0IDUyOTVlMTRjZWI1MDUyYmQ4N2YzODEzYWM1MTEyMGQ0NzllMjJlMzcKQXV0aG9yOiBzeXotY2x1c3RlciAmbHQ7dHJpYWdlQHN5emthbGxlci5jb20mZ3Q7CkRhdGU6ICAgTW9uIEp1bCAyMCAwODo0MzowMyAyMDI2ICYjNDM7MDAwMAoKICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlldwoKZGlmZiAtLWdpdCBhL25ldC84MDIxcS92bGFuX2Rldi5jIGIvbmV0LzgwMjFxL3ZsYW5fZGV2LmMKaW5kZXggZWMyNTY5YjNmOGRhYzYuLmFjZjdmNTJkMWViMjE5IDEwMDY0NAotLS0gYS9uZXQvODAyMXEvdmxhbl9kZXYuYwomIzQzOyYjNDM7JiM0MzsgYi9uZXQvODAyMXEvdmxhbl9kZXYuYwpAQCAtNTAyLDI2ICYjNDM7NTAyLDYgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBoZWFkZXJfb3BzIHZsYW5faGVhZGVyX29wcyA9IHsKIAkucGFyc2VfcHJvdG9jb2wgPSB2bGFuX3BhcnNlX3Byb3RvY29sLAogfTsKIAotc3RhdGljIGludCB2bGFuX3Bhc3N0aHJ1X2hhcmRfaGVhZGVyKHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBuZXRfZGV2aWNlICpkZXYsCi0JCQkJICAgICB1bnNpZ25lZCBzaG9ydCB0eXBlLAotCQkJCSAgICAgY29uc3Qgdm9pZCAqZGFkZHIsIGNvbnN0IHZvaWQgKnNhZGRyLAotCQkJCSAgICAgdW5zaWduZWQgaW50IGxlbikKLXsKLQlzdHJ1Y3Qgdmxhbl9kZXZfcHJpdiAqdmxhbiA9IHZsYW5fZGV2X3ByaXYoZGV2KTsKLQlzdHJ1Y3QgbmV0X2RldmljZSAqcmVhbF9kZXYgPSB2bGFuLSZndDtyZWFsX2RldjsKLQotCWlmIChzYWRkciA9PSBOVUxMKQotCQlzYWRkciA9IGRldi0mZ3Q7ZGV2X2FkZHI7Ci0KLQlyZXR1cm4gZGV2X2hhcmRfaGVhZGVyKHNrYiwgcmVhbF9kZXYsIHR5cGUsIGRhZGRyLCBzYWRkciwgbGVuKTsKLX0KLQotc3RhdGljIGNvbnN0IHN0cnVjdCBoZWFkZXJfb3BzIHZsYW5fcGFzc3RocnVfaGVhZGVyX29wcyA9IHsKLQkuY3JlYXRlCSA9IHZsYW5fcGFzc3RocnVfaGFyZF9oZWFkZXIsCi0JLnBhcnNlCSA9IGV0aF9oZWFkZXJfcGFyc2UsCi0JLnBhcnNlX3Byb3RvY29sID0gdmxhbl9wYXJzZV9wcm90b2NvbCwKLX07Ci0KIHN0YXRpYyBjb25zdCBzdHJ1Y3QgZGV2aWNlX3R5cGUgdmxhbl90eXBlID0gewogCS5uYW1lCT0gJiMzNDt2bGFuJiMzNDssCiB9OwpAQCAtNTgxLDEzICYjNDM7NTYxLDggQEAgc3RhdGljIGludCB2bGFuX2Rldl9pbml0KHN0cnVjdCBuZXRfZGV2aWNlICpkZXYpCiAjZW5kaWYKIAogCWRldi0mZ3Q7bmVlZGVkX2hlYWRyb29tID0gcmVhbF9kZXYtJmd0O25lZWRlZF9oZWFkcm9vbTsKLQlpZiAodmxhbl9od19vZmZsb2FkX2NhcGFibGUocmVhbF9kZXYtJmd0O2ZlYXR1cmVzLCB2bGFuLSZndDt2bGFuX3Byb3RvKSkgewotCQlkZXYtJmd0O2hlYWRlcl9vcHMgICAgICA9ICZhbXA7dmxhbl9wYXNzdGhydV9oZWFkZXJfb3BzOwotCQlkZXYtJmd0O2hhcmRfaGVhZGVyX2xlbiA9IHJlYWxfZGV2LSZndDtoYXJkX2hlYWRlcl9sZW47Ci0JfSBlbHNlIHsKLQkJZGV2LSZndDtoZWFkZXJfb3BzICAgICAgPSAmYW1wO3ZsYW5faGVhZGVyX29wczsKLQkJZGV2LSZndDtoYXJkX2hlYWRlcl9sZW4gPSByZWFsX2Rldi0mZ3Q7aGFyZF9oZWFkZXJfbGVuICYjNDM7IFZMQU5fSExFTjsKLQl9CiYjNDM7CWRldi0mZ3Q7aGVhZGVyX29wcyAgICAgID0gJmFtcDt2bGFuX2hlYWRlcl9vcHM7CiYjNDM7CWRldi0mZ3Q7aGFyZF9oZWFkZXJfbGVuID0gcmVhbF9kZXYtJmd0O2hhcmRfaGVhZGVyX2xlbiAmIzQzOyBWTEFOX0hMRU47CiAKIAlkZXYtJmd0O25ldGRldl9vcHMgPSAmYW1wO3ZsYW5fbmV0ZGV2X29wczsKIApAQCAtMTAyOSwxMCAmIzQzOzEwMDQsNyBAQCBzdGF0aWMgdm9pZCB2bGFuX3RyYW5zZmVyX2ZlYXR1cmVzKHN0cnVjdCBuZXRfZGV2aWNlICpkZXYsCiAKIAluZXRpZl9pbmhlcml0X3Rzb19tYXgodmxhbmRldiwgZGV2KTsKIAotCWlmICh2bGFuX2h3X29mZmxvYWRfY2FwYWJsZShkZXYtJmd0O2ZlYXR1cmVzLCB2bGFuLSZndDt2bGFuX3Byb3RvKSkKLQkJdmxhbmRldi0mZ3Q7aGFyZF9oZWFkZXJfbGVuID0gZGV2LSZndDtoYXJkX2hlYWRlcl9sZW47Ci0JZWxzZQotCQl2bGFuZGV2LSZndDtoYXJkX2hlYWRlcl9sZW4gPSBkZXYtJmd0O2hhcmRfaGVhZGVyX2xlbiAmIzQzOyBWTEFOX0hMRU47CiYjNDM7CXZsYW5kZXYtJmd0O2hhcmRfaGVhZGVyX2xlbiA9IGRldi0mZ3Q7aGFyZF9oZWFkZXJfbGVuICYjNDM7IFZMQU5fSExFTjsKIAogI2lmIElTX0VOQUJMRUQoQ09ORklHX0ZDT0UpCiAJdmxhbmRldi0mZ3Q7ZmNvZV9kZHBfeGlkID0gZGV2LSZndDtmY29lX2RkcF94aWQ7CjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjMvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzIwIDA4OjQzPC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDI0OTAKCQkJCQkJCW91dHB1dDogMzYKCQkJCQkJCXRob3VnaHRzOiAyNDkKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqTXkgQW5hbHlzaXMgb2YgdGhlIFZMQU4gUGF0Y2gqKgoKT2theSwgc28gdGhpcyBwYXRjaCBpcyB0b3VjaGluZyBgbmV0LzgwMjFxL3ZsYW5fZGV2LmNgLiBJbW1lZGlhdGVseSBJIHNlZSBpdCYjMzk7cyBheGluZyBgdmxhbl9wYXNzdGhydV9oYXJkX2hlYWRlcmAgYW5kIGB2bGFuX3Bhc3N0aHJ1X2hlYWRlcl9vcHNgLiBUaGF0JiMzOTtzIGludGVyZXN0aW5nLCBzdWdnZXN0aW5nIGEgY29uc29saWRhdGlvbiBvciBvcHRpbWl6YXRpb24gaW4gdGhlIFZMQU4gaGVhZGVyIGhhbmRsaW5nLiBJJiMzOTttIGFzc3VtaW5nIHRoaXMgaXMgcmVsYXRlZCB0byBoYXJkd2FyZSBvZmZsb2FkIGNhcGFiaWxpdGllcy4KClRoZSBjaGFuZ2VzIHRvIGB2bGFuX2Rldl9pbml0YCBhcmUga2V5LiBJdCBsb29rcyBsaWtlIHRoZSBjb2RlIGlzIG5vdyAqYWx3YXlzKiB1c2luZyBgdmxhbl9oZWFkZXJfb3BzYCBhbmQgY2FsY3VsYXRpbmcgdGhlIGhhcmQgaGVhZGVyIGxlbmd0aCBhcyBgcmVhbF9kZXYtJmd0O2hhcmRfaGVhZGVyX2xlbiAmIzQzOyBWTEFOX0hMRU5gLCBieXBhc3NpbmcgdGhhdCBgdmxhbl9od19vZmZsb2FkX2NhcGFibGVgIGNoZWNrLiBUaGlzIHJlaW5mb3JjZXMgbXkgaW5pdGlhbCB0aG91Z2h0IGFib3V0IGhhcmR3YXJlIG9mZmxvYWQgYmVjb21pbmcgdGhlIHByaW1hcnkgbWV0aG9kLiBBbHdheXMgdXNpbmcgYHZsYW5faGVhZGVyX29wc2AgaXMgaW50ZXJlc3RpbmcsIHRoZSBpbXBsaWNhdGlvbnMgb24gcGVyZm9ybWFuY2UgYW5kIGRldmljZSBkcml2ZXIgaW50ZXJhY3Rpb24gbmVlZCB0byBiZSB3ZWlnaGVkLgoKRnVydGhlcm1vcmUsIGB2bGFuX3RyYW5zZmVyX2ZlYXR1cmVzYCBpcyB1cGRhdGVkIHRvIHVuY29uZGl0aW9uYWxseSBzZXQgYHZsYW5kZXYtJmd0O2hhcmRfaGVhZGVyX2xlbmAgYmFzZWQgb24gdGhlIHJlYWwgZGV2aWNlJiMzOTtzIGxlbmd0aCwgYWRkaW5nIHRoZSBWTEFOIGhlYWRlciBsZW5ndGguIE1ha2VzIHNlbnNlOyBpZiBvZmZsb2FkIGlzIG9uLCB3ZSBkZWZpbml0ZWx5IG5lZWQgdGhlIFZMQU4gaGVhZGVyIGxlbmd0aCBjb3JyZWN0bHkgc2V0LCBvdGhlcndpc2Ugd2UmIzM5O3JlIGdvaW5nIHRvIGhhdmUgcGFja2V0IHRyYW5zbWlzc2lvbiBpc3N1ZXMuCgpTbywgaW4gZXNzZW5jZSwgdGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlLiBJdCBzZWVtcyB0aGUgY29kZSBpcyBzdHJlYW1saW5pbmcgVkxBTiBoZWFkZXIgcHJvY2Vzc2luZyBmb3IgZGV2aWNlcyB3aXRoIGhhcmR3YXJlIG9mZmxvYWQuIFRoZSBvbGQgcGFzc3Rocm91Z2ggbWV0aG9kcyBhcmUgYmVpbmcgcmV0aXJlZCwgcHJvYmFibHkgYmVjYXVzZSB0aGV5IGFyZSB1bm5lY2Vzc2FyeSBhbmQgbWF5IGV2ZW4gYmUgaW5lZmZpY2llbnQsIGdpdmVuIHRoZSBwcmV2YWxlbmNlIG9mIGhhcmR3YXJlIG9mZmxvYWQgc3VwcG9ydCBub3dhZGF5cy4KCk5vdywgbGV0IG1lIGNoZWNrIHRoZSByZWxldmFudCBLY29uZmlnIG9wdGlvbnMgdG8gZ2V0IGEgY2xlYXJlciBwaWN0dXJlIG9mIGhvdyB0aGlzIGlzIGFsbCBjb25maWd1cmVkLiBJIGJldCBgbmV0LzgwMjFxL0tjb25maWdgIGlzIHdoZXJlIGBDT05GSUdfVkxBTl84MDIxUWAgaXMgZGVmaW5lZC4gSSYjMzk7bGwgbmVlZCB0byBjb25maXJtIHRoYXQuIEkmIzM5O20gYWxzbyBnb2luZyB0byBkaWcgdGhyb3VnaCBgbmV0LzgwMjFxL3ZsYW5fZGV2LmNgIGFuZCByZWxhdGVkIGZpbGVzIHRvIHNlZSB3aGVyZSB0aGUgYHZsYW5faHdfb2ZmbG9hZF9jYXBhYmxlYCBpcyBub3cgdXNlZC4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD40LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yMCAwODo0MzwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtWTEFOXzgwMjFRJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7bmV0LzgwMjFxLyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtuZXQvODAyMXEvS2NvbmZpZy01LVxubmV0LzgwMjFxL0tjb25maWc6Njpjb25maWcgVkxBTl84MDIxUVxubmV0LzgwMjFxL0tjb25maWctNy1cdHRyaXN0YXRlIFwmIzM0OzgwMi4xUS84MDIuMWFkIFZMQU4gU3VwcG9ydFwmIzM0O1xuLS1cbm5ldC84MDIxcS9LY29uZmlnLTIxLVxubmV0LzgwMjFxL0tjb25maWc6MjI6Y29uZmlnIFZMQU5fODAyMVFfR1ZSUFxubmV0LzgwMjFxL0tjb25maWctMjMtXHRib29sIFwmIzM0O0dWUlAgKEdBUlAgVkxBTiBSZWdpc3RyYXRpb24gUHJvdG9jb2wpIHN1cHBvcnRcJiMzNDtcbm5ldC84MDIxcS9LY29uZmlnOjI0Olx0ZGVwZW5kcyBvbiBWTEFOXzgwMjFRXG5uZXQvODAyMXEvS2NvbmZpZy0yNS1cdHNlbGVjdCBHQVJQXG4tLVxubmV0LzgwMjFxL0tjb25maWctMzEtXG5uZXQvODAyMXEvS2NvbmZpZzozMjpjb25maWcgVkxBTl84MDIxUV9NVlJQXG5uZXQvODAyMXEvS2NvbmZpZy0zMy1cdGJvb2wgXCYjMzQ7TVZSUCAoTXVsdGlwbGUgVkxBTiBSZWdpc3RyYXRpb24gUHJvdG9jb2wpIHN1cHBvcnRcJiMzNDtcbm5ldC84MDIxcS9LY29uZmlnOjM0Olx0ZGVwZW5kcyBvbiBWTEFOXzgwMjFRXG5uZXQvODAyMXEvS2NvbmZpZy0zNS1cdHNlbGVjdCBNUlBcbi0tXG5uZXQvODAyMXEvTWFrZWZpbGUtNC0jXG5uZXQvODAyMXEvTWFrZWZpbGU6NTpvYmotJChzdWJzdCBtLHksJChDT05GSUdfVkxBTl84MDIxUSkpXHQmIzQzOz0gdmxhbl9jb3JlLm9cbm5ldC84MDIxcS9NYWtlZmlsZTo2Om9iai0kKENPTkZJR19WTEFOXzgwMjFRKVx0XHQmIzQzOz0gODAyMXEub1xubmV0LzgwMjFxL01ha2VmaWxlLTctXG5uZXQvODAyMXEvTWFrZWZpbGUtOC04MDIxcS15XHRcdFx0XHRcdDo9IHZsYW4ubyB2bGFuX2Rldi5vIHZsYW5fbmV0bGluay5vXG5uZXQvODAyMXEvTWFrZWZpbGU6OTo4MDIxcS0kKENPTkZJR19WTEFOXzgwMjFRX0dWUlApXHRcdCYjNDM7PSB2bGFuX2d2cnAub1xubmV0LzgwMjFxL01ha2VmaWxlOjEwOjgwMjFxLSQoQ09ORklHX1ZMQU5fODAyMVFfTVZSUClcdFx0JiM0Mzs9IHZsYW5fbXZycC5vXG5uZXQvODAyMXEvTWFrZWZpbGUtMTEtODAyMXEtJChDT05GSUdfUFJPQ19GUylcdFx0XHQmIzQzOz0gdmxhbnByb2Mub1xuLS1cbm5ldC84MDIxcS92bGFuLmg9MTU4PXN0YXRpYyBpbmxpbmUgdTMyIHZsYW5fZ2V0X2luZ3Jlc3NfcHJpb3JpdHkoc3RydWN0IG5ldF9kZXZpY2UgKmRldixcbi0tXG5uZXQvODAyMXEvdmxhbi5oLTE2NS1cbm5ldC84MDIxcS92bGFuLmg6MTY2OiNpZmRlZiBDT05GSUdfVkxBTl84MDIxUV9HVlJQXG5uZXQvODAyMXEvdmxhbi5oLTE2Ny1pbnQgdmxhbl9ndnJwX3JlcXVlc3Rfam9pbihjb25zdCBzdHJ1Y3QgbmV0X2RldmljZSAqZGV2KTtcbi0tXG5uZXQvODAyMXEvdmxhbi5oPTE3OT1zdGF0aWMgaW5saW5lIHZvaWQgdmxhbl9ndnJwX3VuaW5pdCh2b2lkKSB7fVxuLS1cbm5ldC84MDIxcS92bGFuLmgtMTgxLVxubmV0LzgwMjFxL3ZsYW4uaDoxODI6I2lmZGVmIENPTkZJR19WTEFOXzgwMjFRX01WUlBcbm5ldC84MDIxcS92bGFuLmgtMTgzLWludCB2bGFuX212cnBfcmVxdWVzdF9qb2luKGNvbnN0IHN0cnVjdCBuZXRfZGV2aWNlICpkZXYpO1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjUvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzIwIDA4OjQzPC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDQwNTkKCQkJCQkJCW91dHB1dDogMzQKCQkJCQkJCXRob3VnaHRzOiAzNTgKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqQW5hbHl6aW5nIHRoZSBWTEFOIDgwMi4xUSBDb25maWd1cmF0aW9uIENoYW5nZXMqKgoKT2theSwgc28gSSYjMzk7bSBsb29raW5nIGF0IHRoaXMgcGF0Y2ggd2l0aCB0aGUgYFZMQU5fODAyMVFgIGNvbmZpZyBhY3RpdmUuIFRoZSBjaGFuZ2VzIHNlZW0gdG8gY2VudGVyIGFyb3VuZCB0aGUgaW5pdGlhbGl6YXRpb24gYW5kIGZlYXR1cmUgdHJhbnNmZXIgZnVuY3Rpb25zLCBzcGVjaWZpY2FsbHkgYHZsYW5fZGV2X2luaXRgIGFuZCBgdmxhbl90cmFuc2Zlcl9mZWF0dXJlc2AuIEdvb2QsIHRob3NlIGFyZW4mIzM5O3QgaG90LXBhdGggcHJvY2Vzc2luZyBmdW5jdGlvbnMsIHNvIHRoYXQgc2ltcGxpZmllcyB0aGluZ3MgYSBiaXQuIGB2bGFuX2Rldl9pbml0YCwgcmlnaHQsIHRoYXQmIzM5O3MgY2FsbGVkIHdoZW4gYSBWTEFOIGRldmljZSBpcyAqY3JlYXRlZCosIGFuZCBgdmxhbl90cmFuc2Zlcl9mZWF0dXJlc2AgaGFuZGxlcyBmZWF0dXJlIHByb3BhZ2F0aW9uIGZyb20gdGhlIHVuZGVybHlpbmcgcGh5c2ljYWwgZGV2aWNlLgoKTGV0JiMzOTtzIHNlZSwgYXJlIHRoZXJlIGFueSBvdGhlciBmdW5jdGlvbnMgaW4gdGhpcyBhcmVhIHRvIGNvbnNpZGVyPyBIbW0sIGp1c3QgdGhvc2UgdHdvLCBpdCBzZWVtcy4KCkFscmlnaHQsIHRoZSBrZXkgY2hhbmdlIGhlcmUgaXMgdGhlIHJlbW92YWwgb2YgYHZsYW5fcGFzc3RocnVfaGFyZF9oZWFkZXJgIGFuZCBgdmxhbl9wYXNzdGhydV9oZWFkZXJfb3BzYC4gSXQgbG9va3MgbGlrZSBpdCYjMzk7cyBmb3JjaW5nIHRoZSB1c2FnZSBvZiBgdmxhbl9oZWFkZXJfb3BzYCBhbmQgYHZsYW5faGFyZF9oZWFkZXJgLiBPa2F5LCBsZXQgbWUgbWFrZSBzdXJlIEkmIzM5O20gZm9sbG93aW5nLiBUaGUgY3VycmVudCBkZWZpbml0aW9uIG9mIGB2bGFuX2hlYWRlcl9vcHNgIGlzOgoKYGBgYwpzdGF0aWMgY29uc3Qgc3RydWN0IGhlYWRlcl9vcHMgdmxhbl9oZWFkZXJfb3BzID0gewoJLmNyZWF0ZQkgPSB2bGFuX2hhcmRfaGVhZGVyLAoJLnBhcnNlCSA9IGV0aF9oZWFkZXJfcGFyc2UsCgkucGFyc2VfcHJvdG9jb2wgPSB2bGFuX3BhcnNlX3Byb3RvY29sLAp9OwpgYGAKClNvLCBpbnN0ZWFkIG9mIHRoZSAmIzM0O3Bhc3N0aHJ1JiMzNDsgZnVuY3Rpb24sIGB2bGFuX2hhcmRfaGVhZGVyYCB3aWxsIG5vdyBiZSBpbnZva2VkLiBOb3cgSSBuZWVkIHRvIHJlbWVtYmVyIHdoZXJlIGB2bGFuX2hhcmRfaGVhZGVyYCBsaXZlcy4gSXMgaXQgaW4gYG5ldC84MDIxcS92bGFuX2Rldi5jYCBvciBgbmV0LzgwMjFxL3ZsYW5fY29yZS5jYD8gR290dGEgY2hlY2sgdGhhdC4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD42LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yMCAwODo0MzwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+RXJyb3I6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5ubyBtYXRjaGVzPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O3ZsYW5faGFyZF9oZWFkZXImIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtuZXQvODAyMXEvJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O2Vycm9yJiMzNDs6ICYjMzQ7bm8gbWF0Y2hlcyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD43LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yMCAwODo0MzwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA0ODU0CgkJCQkJCQlvdXRwdXQ6IDQyCgkJCQkJCQl0aG91Z2h0czogMTc5CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKkFuYWx5emluZyB0aGUgVkxBTiBIZWFkZXIgT3BlcmF0aW9ucyBDaGFuZ2UqKgoKT2theSwgSSYjMzk7bSBsb29raW5nIGF0IHRoaXMgZGlmZiBhbmQgaW1tZWRpYXRlbHkgbXkgZXllIGlzIGRyYXduIHRvIGB2bGFuX2hlYWRlcl9vcHNgLiBJIHNlZSBhIGNoYW5nZSBoZXJlLCBhbmQgSSBuZWVkIHRvIHVuZGVyc3RhbmQgaXQgZnVsbHkuIFRoZSBpbml0aWFsIHNjYW4gbWFkZSBtZSB0aGluayB0aGVyZSB3YXMgYSBtb2RpZmljYXRpb24gdG8gdGhlIGAuY3JlYXRlYCBtZW1iZXIgb2YgYHZsYW5faGVhZGVyX29wc2AsIGJ1dCB0aGF0IGRvZXNuJiMzOTt0IHNlZW0gdG8gYmUgdGhlIGNhc2Ugd2hlbiBsb29raW5nIGF0IHRoZSB3aG9sZSBjb250ZXh0LiBJJiMzOTt2ZSBnb3QgdG8gZW5zdXJlIEkmIzM5O20gaW50ZXJwcmV0aW5nIHRoaXMgY29ycmVjdGx5LiBMZXQmIzM5O3MgZG91YmxlLWNoZWNrIHRoZSBsaW5lIG51bWJlcnMuCgpBbHJpZ2h0LCB0aGUgZnVsbCBjb250ZXh0IG9mIGB2bGFuX2hlYWRlcl9vcHNgIGlzbiYjMzk7dCBzaG93aW5nIGEgbW9kaWZpY2F0aW9uIG9mIHRoZSBoYXJkIGhlYWRlciBjcmVhdGlvbi4gT2theSwgc28gdGhhdCBsb29rcyBsaWtlIGl0JiMzOTtzIHVudG91Y2hlZC4gTm93LCBJIG5lZWQgdG8gdW5kZXJzdGFuZCB3aGF0IHRoaXMgbWVhbnMgZm9yIHRoZSBicm9hZGVyIFZMQU4gaW1wbGVtZW50YXRpb24uIExldCYjMzk7cyBwdWxsIHVwIGBuZXQvODAyMXEvdmxhbl9kZXYuY2AgYW5kIHN0YXJ0IHJlYWRpbmcgYXJvdW5kIGxpbmUgNTAwIHRvIGdhaW4gYSBiZXR0ZXIgdW5kZXJzdGFuZGluZyBvZiB0aGUgcmVsZXZhbnQgY29kZSBzZWN0aW9uIHRvIGFzc2VzcyBob3cgdGhlc2UgVkxBTiBvcGVyYXRpb25zIGFyZSBiZWluZyB1c2VkLCBhbmQgaWYgdGhlcmUmIzM5O3MgYW55IGltcG9ydGFudCBjaGFuZ2UuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+OC8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjAgMDg6NDM8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5yZWFkLWZpbGU8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0ZpbGUmIzM0OzogJiMzNDtuZXQvODAyMXEvdmxhbl9kZXYuYyYjMzQ7LAogICYjMzQ7Rmlyc3RMaW5lJiMzNDs6IDQ5MCwKICAmIzM0O0xpbmVDb3VudCYjMzQ7OiAyMAp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7Q29udGVudHMmIzM0OzogJiMzNDsgNDkwOlx0fVxuIDQ5MTpcdFxuIDQ5MjpcdHN0YXRpYyBfX2JlMTYgdmxhbl9wYXJzZV9wcm90b2NvbChjb25zdCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiKVxuIDQ5MzpcdHtcbiA0OTQ6XHRcdHN0cnVjdCB2bGFuX2V0aGhkciAqdmV0aCA9IChzdHJ1Y3Qgdmxhbl9ldGhoZHIgKikoc2tiLVx1MDAzZWRhdGEpO1xuIDQ5NTpcdFxuIDQ5NjpcdFx0cmV0dXJuIF9fdmxhbl9nZXRfcHJvdG9jb2woc2tiLCB2ZXRoLVx1MDAzZWhfdmxhbl9wcm90bywgTlVMTCk7XG4gNDk3Olx0fVxuIDQ5ODpcdFxuIDQ5OTpcdHN0YXRpYyBjb25zdCBzdHJ1Y3QgaGVhZGVyX29wcyB2bGFuX2hlYWRlcl9vcHMgPSB7XG4gNTAwOlx0XHQuY3JlYXRlXHQgPSB2bGFuX2Rldl9oYXJkX2hlYWRlcixcbiA1MDE6XHRcdC5wYXJzZVx0ID0gZXRoX2hlYWRlcl9wYXJzZSxcbiA1MDI6XHRcdC5wYXJzZV9wcm90b2NvbCA9IHZsYW5fcGFyc2VfcHJvdG9jb2wsXG4gNTAzOlx0fTtcbiA1MDQ6XHRcbiA1MDU6XHRzdGF0aWMgY29uc3Qgc3RydWN0IGRldmljZV90eXBlIHZsYW5fdHlwZSA9IHtcbiA1MDY6XHRcdC5uYW1lXHQ9IFwmIzM0O3ZsYW5cJiMzNDssXG4gNTA3Olx0fTtcbiA1MDg6XHRcbiA1MDk6XHRzdGF0aWMgY29uc3Qgc3RydWN0IG5ldF9kZXZpY2Vfb3BzIHZsYW5fbmV0ZGV2X29wcztcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD45LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yMCAwODo0MzwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA1NjExCgkJCQkJCQlvdXRwdXQ6IDM2CgkJCQkJCQl0aG91Z2h0czogMzAKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPk9rYXksIGhlcmUmIzM5O3MgbXkgaW50ZXJwcmV0YXRpb24gb2YgdGhvc2UgdGhvdWdodHMsIHRhaWxvcmVkIGZvciBhbiBleHBlcnQgYXVkaWVuY2UsIHByZXNlbnRlZCBpbiB0aGUgZmlyc3QgcGVyc29uOgoKKipEZWNvZGluZyB0aGUgTmV0d29yayBJbnRlcmZhY2UqKgoKUmlnaHQsIHRoYXQgZmVlbHMgZmFtaWxpYXIuLi4gaXQmIzM5O3MgYHZsYW5fZGV2X2hhcmRfaGVhZGVyYC4gSSYjMzk7bSBwcmV0dHkgc3VyZSB0aGF0JiMzOTtzIHRoZSBjdWxwcml0LiBHb3R0YSBkb3VibGUtY2hlY2ssIHRob3VnaCwgc28gbGV0JiMzOTtzIGRpdmUgaW50byBgdmxhbl9kZXZfaGFyZF9oZWFkZXJgIHRvIGNvbmZpcm0uIEkgbmVlZCB0byByZWZyZXNoIG15IG1lbW9yeSBvbiB0aGUgc3BlY2lmaWNzIG9mIGhvdyB0aGF0IGZ1bmN0aW9uIGhhbmRsZXMgVkxBTiBlbmNhcHN1bGF0aW9uLiBMZXQmIzM5O3Mgc2VlIHdoYXQmIzM5O3MgZ29pbmcgb24gdW5kZXIgdGhlIGhvb2QgYW5kIG1ha2Ugc3VyZSBpdCYjMzk7cyBiZWhhdmluZyBhcyBleHBlY3RlZC4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMC8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjAgMDg6NDM8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7dmxhbl9kZXZfaGFyZF9oZWFkZXImIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtuZXQvODAyMXEvJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O25ldC84MDIxcS92bGFuX2Rldi5jLTQ1LSAqL1xubmV0LzgwMjFxL3ZsYW5fZGV2LmM6NDY6c3RhdGljIGludCB2bGFuX2Rldl9oYXJkX2hlYWRlcihzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3QgbmV0X2RldmljZSAqZGV2LFxubmV0LzgwMjFxL3ZsYW5fZGV2LmMtNDctXHRcdFx0XHR1bnNpZ25lZCBzaG9ydCB0eXBlLFxuLS1cbm5ldC84MDIxcS92bGFuX2Rldi5jPTQ5OT1zdGF0aWMgY29uc3Qgc3RydWN0IGhlYWRlcl9vcHMgdmxhbl9oZWFkZXJfb3BzID0ge1xubmV0LzgwMjFxL3ZsYW5fZGV2LmM6NTAwOlx0LmNyZWF0ZVx0ID0gdmxhbl9kZXZfaGFyZF9oZWFkZXIsXG5uZXQvODAyMXEvdmxhbl9kZXYuYy01MDEtXHQucGFyc2VcdCA9IGV0aF9oZWFkZXJfcGFyc2UsXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTEvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzIwIDA4OjQzPC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDYwMDYKCQkJCQkJCW91dHB1dDogMTA0CgkJCQkJCQl0aG91Z2h0czogMjk3CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKk15IEFuYWx5c2lzIG9mIHRoaXMgVkxBTiBQYXRjaCoqCgpPa2F5LCBzbyBpdCBsb29rcyBsaWtlIGB2bGFuX2Rldl9oYXJkX2hlYWRlcmAgaXMgZ29pbmcgdG8gYmUgdGhlIG5ldyBnby10byBmdW5jdGlvbiByZXBsYWNpbmcgYHZsYW5fcGFzc3RocnVfaGFyZF9oZWFkZXJgLiBCdXQgYHZsYW5fZGV2X2hhcmRfaGVhZGVyYCBpcyBhIGhvdC1wYXRoIGZ1bmN0aW9uLCBtZWFuaW5nIGl0JiMzOTtzIHBlcmZvcm1hbmNlLWNyaXRpY2FsIGFuZCBjYWxsZWQgY29uc3RhbnRseSBmb3IgZXZlcnkgcGFja2V0IG9uIHRoZSBWTEFOIGludGVyZmFjZS4gVGhhdCBtYWtlcyBpdCBsZXNzIGlkZWFsIGZvciBleHRlbnNpdmUgc2NydXRpbnkuIFRoaXMgcGF0Y2ggbG9va3MgbGlrZSBpdCBtb2RpZmllcyBgdmxhbl9kZXZfaW5pdGAgYW5kIGB2bGFuX3RyYW5zZmVyX2ZlYXR1cmVzYCwgYW5kIHRoYXQmIzM5O3Mgd2hlcmUgbXkgZm9jdXMgc2hvdWxkIGJlLiBJdCYjMzk7cyBkZWZpbml0ZWx5IGEgZnVuY3Rpb25hbCBjaGFuZ2UsIHNvIGl0IG1lcml0cyBjYXJlZnVsIGNvbnNpZGVyYXRpb24uCgpJJiMzOTttIHRoaW5raW5nIEkgc2hvdWxkIHJlYWxseSB6ZXJvIGluIG9uIGB2bGFuX2Rldl9pbml0YCBhbmQgYHZsYW5fdHJhbnNmZXJfZmVhdHVyZXNgLiBXZSBjYW4gcHJvYmFibHkgZGlzcmVnYXJkIGB2bGFuX2Rldl9oYXJkX2hlYWRlcmAgZm9yIHRoZSBtb21lbnQgZHVlIHRvIGl0cyBob3QtcGF0aCBuYXR1cmUuCgpMZXQgbWUgZG91YmxlLWNoZWNrIHRoZSByZWxldmFudCBjb25maWd1cmF0aW9ucy4gQmFzZWQgb24gdGhlIGNvbmZpZ3VyYXRpb24gSSBzZWUgaGVyZSwgaXQmIzM5O3MgcHJpbWFyaWx5IGFib3V0IGBWTEFOXzgwMjFRYC4KClRoZSBKU09OIGNvbmZpcm1zIG15IGluaXRpYWwgYXNzZXNzbWVudC4gSXQgaGlnaGxpZ2h0cyB0aGF0IHRoZSBjaGFuZ2UgcmVtb3ZlcyBoYXJkd2FyZSBvZmZsb2FkLXNwZWNpZmljIGhlYWRlciBvcGVyYXRpb25zIGZvciBWTEFOIGRldmljZXMuIFRoaXMgZm9yY2VzIGFsbCBWTEFOIGRldmljZXMgdG8gdXNlIHRoZSBzdGFuZGFyZCBWTEFOIGhlYWRlciBvcGVyYXRpb25zIGFuZCBoYXJkIGhlYWRlciBsZW5ndGgsIGFuZCB0aGUgcGF0Y2ggYWZmZWN0cyBWTEFOIGRldmljZSBpbml0aWFsaXphdGlvbiBhbmQgZmVhdHVyZSB0cmFuc2Zlciwgd2hpY2ggYXJlIGJvdGggY29yZSBuZXR3b3JraW5nIHBhdGhzLiBUaGlzIHJlaW5mb3JjZXMgdGhlIGZvY3VzIG9uIHRob3NlIHR3byBmdW5jdGlvbnMgZm9yIGFueSBkZWVwIGRpdmUgb3IgZnV6emluZyBlZmZvcnRzLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEyLzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yMCAwODo0MzwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPnNldC1yZXN1bHRzPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IFsKICAgICYjMzQ7VkxBTl84MDIxUSYjMzQ7CiAgXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbCiAgICAmIzM0O3ZsYW5fZGV2X2luaXQmIzM0OywKICAgICYjMzQ7dmxhbl90cmFuc2Zlcl9mZWF0dXJlcyYjMzQ7CiAgXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCByZW1vdmVzIGhhcmR3YXJlIG9mZmxvYWQtc3BlY2lmaWMgaGVhZGVyIG9wZXJhdGlvbnMgZm9yIFZMQU4gZGV2aWNlcywgZm9yY2luZyBhbGwgVkxBTiBkZXZpY2VzIHRvIHVzZSB0aGUgc3RhbmRhcmQgVkxBTiBoZWFkZXIgb3BlcmF0aW9ucyBhbmQgaGFyZCBoZWFkZXIgbGVuZ3RoLiBUaGlzIGFmZmVjdHMgVkxBTiBkZXZpY2UgaW5pdGlhbGl6YXRpb24gYW5kIGZlYXR1cmUgdHJhbnNmZXIsIHdoaWNoIGFyZSByZWFjaGFibGUgY29yZSBuZXR3b3JraW5nIHBhdGhzLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IHRydWUKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogWwogICAgJiMzNDtWTEFOXzgwMjFRJiMzNDsKICBdLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFsKICAgICYjMzQ7dmxhbl9kZXZfaW5pdCYjMzQ7LAogICAgJiMzNDt2bGFuX3RyYW5zZmVyX2ZlYXR1cmVzJiMzNDsKICBdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIHJlbW92ZXMgaGFyZHdhcmUgb2ZmbG9hZC1zcGVjaWZpYyBoZWFkZXIgb3BlcmF0aW9ucyBmb3IgVkxBTiBkZXZpY2VzLCBmb3JjaW5nIGFsbCBWTEFOIGRldmljZXMgdG8gdXNlIHRoZSBzdGFuZGFyZCBWTEFOIGhlYWRlciBvcGVyYXRpb25zIGFuZCBoYXJkIGhlYWRlciBsZW5ndGguIFRoaXMgYWZmZWN0cyBWTEFOIGRldmljZSBpbml0aWFsaXphdGlvbiBhbmQgZmVhdHVyZSB0cmFuc2Zlciwgd2hpY2ggYXJlIHJlYWNoYWJsZSBjb3JlIG5ldHdvcmtpbmcgcGF0aHMuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogdHJ1ZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPC90Ym9keT4KCTwvdGFibGU+CgoJPGRpdiBpZD0ibGxtX3N1bW1hcnlfdGFibGVfZGl2IiBzdHlsZT0ibWFyZ2luOiAyMHB4IDA7Ij4KCQk8dGFibGUgY2xhc3M9Imxpc3RfdGFibGUiPgoJCQk8Y2FwdGlvbj5MTE0gQ2FsbHMgU3VtbWFyeTo8L2NhcHRpb24+CgkJCTx0aGVhZD4KCQkJCTx0cj4KCQkJCQk8dGg+VG90YWwgQ2FsbHM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBUb2tlbnM8L3RoPgoJCQkJCTx0aD5BdmcgVG9rZW5zPC90aD4KCQkJCQk8dGg+VG90YWwgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCQk8dGg+QXZnIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQk8L3RyPgoJCQk8L3RoZWFkPgoJCQk8dGJvZHkgaWQ9ImxsbV9zdW1tYXJ5X3N0YXRzX2JvZHkiPjwvdGJvZHk+CgkJPC90YWJsZT4KCTwvZGl2PgoKCTxkaXYgaWQ9InRvb2xfc3VtbWFyeV90YWJsZV9kaXYiIHN0eWxlPSJtYXJnaW46IDIwcHggMDsiPgoJCTx0YWJsZSBjbGFzcz0ibGlzdF90YWJsZSI+CgkJCTxjYXB0aW9uPlRvb2wgQ2FsbHMgU3VtbWFyeTo8L2NhcHRpb24+CgkJCTx0aGVhZD4KCQkJCTx0cj4KCQkJCQk8dGg+VG90YWwgQ2FsbHM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJCTx0aD5BdmcgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCTwvdHI+CgkJCTwvdGhlYWQ+CgkJCTx0Ym9keSBpZD0idG9vbF9zdW1tYXJ5X3N0YXRzX2JvZHkiPjwvdGJvZHk+CgkJPC90YWJsZT4KCTwvZGl2PgoKCTxkaXYgaWQ9ImR1cmF0aW9uX2NoYXJ0X2RpdiIgc3R5bGU9IndpZHRoOiAxMDAlOyBtYXJnaW46IDIwcHggMDsgYm9yZGVyOiAxcHg7Ij48L2Rpdj4KCTxkaXYgaWQ9InRva2VuX2NoYXJ0X2RpdiIgc3R5bGU9IndpZHRoOiAxMDAlOyBtYXJnaW46IDIwcHggMDsgYm9yZGVyOiAxcHg7Ij48L2Rpdj4KCgk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJodHRwczovL3d3dy5nb29nbGUuY29tL2pzYXBpIj48L3NjcmlwdD4KCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KCQlnb29nbGUubG9hZCgidmlzdWFsaXphdGlvbiIsICIxIiwge3BhY2thZ2VzOlsiY29yZWNoYXJ0Il19KTsKCQlnb29nbGUuc2V0T25Mb2FkQ2FsbGJhY2soZHJhd0NoYXJ0cyk7CgoJCWZ1bmN0aW9uIGRyYXdDaGFydHMoKSB7CgkJCWNvbnN0IHJhd0RhdGEgPSBbeyJTdGFydGVkIjoiMjAyNi0wNy0yMFQwODo0MzowNC44NjYyNjYxODJaIiwiU2VxIjowLCJOZXN0aW5nIjowLCJUeXBlIjoiZmxvdyIsIk5hbWUiOiJwYXRjaC10cmlhZ2UiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjozNTkyNzE5OTk0NSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXG4gICAgXCJWTEFOXzgwMjFRXCJcbiAgXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW1xuICAgIFwidmxhbl9kZXZfaW5pdFwiLFxuICAgIFwidmxhbl90cmFuc2Zlcl9mZWF0dXJlc1wiXG4gIF0sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIHJlbW92ZXMgaGFyZHdhcmUgb2ZmbG9hZC1zcGVjaWZpYyBoZWFkZXIgb3BlcmF0aW9ucyBmb3IgVkxBTiBkZXZpY2VzLCBmb3JjaW5nIGFsbCBWTEFOIGRldmljZXMgdG8gdXNlIHRoZSBzdGFuZGFyZCBWTEFOIGhlYWRlciBvcGVyYXRpb25zIGFuZCBoYXJkIGhlYWRlciBsZW5ndGguIFRoaXMgYWZmZWN0cyBWTEFOIGRldmljZSBpbml0aWFsaXphdGlvbiBhbmQgZmVhdHVyZSB0cmFuc2Zlciwgd2hpY2ggYXJlIHJlYWNoYWJsZSBjb3JlIG5ldHdvcmtpbmcgcGF0aHMuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IHRydWVcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTIwVDA4OjQzOjA0Ljg2NjI3NTc2MloiLCJTZXEiOjEsIk5lc3RpbmciOjEsIlR5cGUiOiJhY3Rpb24iLCJOYW1lIjoicmVhZC1wYXRjaC1kaWZmIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NTA1NDMwNTA5LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJQYXRjaERpZmZcIjogXCJjb21taXQgNTI5NWUxNGNlYjUwNTJiZDg3ZjM4MTNhYzUxMTIwZDQ3OWUyMmUzN1xcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXFx1MDAzZVxcbkRhdGU6ICAgTW9uIEp1bCAyMCAwODo0MzowMyAyMDI2ICswMDAwXFxuXFxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xcblxcbmRpZmYgLS1naXQgYS9uZXQvODAyMXEvdmxhbl9kZXYuYyBiL25ldC84MDIxcS92bGFuX2Rldi5jXFxuaW5kZXggZWMyNTY5YjNmOGRhYzYuLmFjZjdmNTJkMWViMjE5IDEwMDY0NFxcbi0tLSBhL25ldC84MDIxcS92bGFuX2Rldi5jXFxuKysrIGIvbmV0LzgwMjFxL3ZsYW5fZGV2LmNcXG5AQCAtNTAyLDI2ICs1MDIsNiBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IGhlYWRlcl9vcHMgdmxhbl9oZWFkZXJfb3BzID0ge1xcbiBcXHQucGFyc2VfcHJvdG9jb2wgPSB2bGFuX3BhcnNlX3Byb3RvY29sLFxcbiB9O1xcbiBcXG4tc3RhdGljIGludCB2bGFuX3Bhc3N0aHJ1X2hhcmRfaGVhZGVyKHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBuZXRfZGV2aWNlICpkZXYsXFxuLVxcdFxcdFxcdFxcdCAgICAgdW5zaWduZWQgc2hvcnQgdHlwZSxcXG4tXFx0XFx0XFx0XFx0ICAgICBjb25zdCB2b2lkICpkYWRkciwgY29uc3Qgdm9pZCAqc2FkZHIsXFxuLVxcdFxcdFxcdFxcdCAgICAgdW5zaWduZWQgaW50IGxlbilcXG4te1xcbi1cXHRzdHJ1Y3Qgdmxhbl9kZXZfcHJpdiAqdmxhbiA9IHZsYW5fZGV2X3ByaXYoZGV2KTtcXG4tXFx0c3RydWN0IG5ldF9kZXZpY2UgKnJlYWxfZGV2ID0gdmxhbi1cXHUwMDNlcmVhbF9kZXY7XFxuLVxcbi1cXHRpZiAoc2FkZHIgPT0gTlVMTClcXG4tXFx0XFx0c2FkZHIgPSBkZXYtXFx1MDAzZWRldl9hZGRyO1xcbi1cXG4tXFx0cmV0dXJuIGRldl9oYXJkX2hlYWRlcihza2IsIHJlYWxfZGV2LCB0eXBlLCBkYWRkciwgc2FkZHIsIGxlbik7XFxuLX1cXG4tXFxuLXN0YXRpYyBjb25zdCBzdHJ1Y3QgaGVhZGVyX29wcyB2bGFuX3Bhc3N0aHJ1X2hlYWRlcl9vcHMgPSB7XFxuLVxcdC5jcmVhdGVcXHQgPSB2bGFuX3Bhc3N0aHJ1X2hhcmRfaGVhZGVyLFxcbi1cXHQucGFyc2VcXHQgPSBldGhfaGVhZGVyX3BhcnNlLFxcbi1cXHQucGFyc2VfcHJvdG9jb2wgPSB2bGFuX3BhcnNlX3Byb3RvY29sLFxcbi19O1xcbi1cXG4gc3RhdGljIGNvbnN0IHN0cnVjdCBkZXZpY2VfdHlwZSB2bGFuX3R5cGUgPSB7XFxuIFxcdC5uYW1lXFx0PSBcXFwidmxhblxcXCIsXFxuIH07XFxuQEAgLTU4MSwxMyArNTYxLDggQEAgc3RhdGljIGludCB2bGFuX2Rldl9pbml0KHN0cnVjdCBuZXRfZGV2aWNlICpkZXYpXFxuICNlbmRpZlxcbiBcXG4gXFx0ZGV2LVxcdTAwM2VuZWVkZWRfaGVhZHJvb20gPSByZWFsX2Rldi1cXHUwMDNlbmVlZGVkX2hlYWRyb29tO1xcbi1cXHRpZiAodmxhbl9od19vZmZsb2FkX2NhcGFibGUocmVhbF9kZXYtXFx1MDAzZWZlYXR1cmVzLCB2bGFuLVxcdTAwM2V2bGFuX3Byb3RvKSkge1xcbi1cXHRcXHRkZXYtXFx1MDAzZWhlYWRlcl9vcHMgICAgICA9IFxcdTAwMjZ2bGFuX3Bhc3N0aHJ1X2hlYWRlcl9vcHM7XFxuLVxcdFxcdGRldi1cXHUwMDNlaGFyZF9oZWFkZXJfbGVuID0gcmVhbF9kZXYtXFx1MDAzZWhhcmRfaGVhZGVyX2xlbjtcXG4tXFx0fSBlbHNlIHtcXG4tXFx0XFx0ZGV2LVxcdTAwM2VoZWFkZXJfb3BzICAgICAgPSBcXHUwMDI2dmxhbl9oZWFkZXJfb3BzO1xcbi1cXHRcXHRkZXYtXFx1MDAzZWhhcmRfaGVhZGVyX2xlbiA9IHJlYWxfZGV2LVxcdTAwM2VoYXJkX2hlYWRlcl9sZW4gKyBWTEFOX0hMRU47XFxuLVxcdH1cXG4rXFx0ZGV2LVxcdTAwM2VoZWFkZXJfb3BzICAgICAgPSBcXHUwMDI2dmxhbl9oZWFkZXJfb3BzO1xcbitcXHRkZXYtXFx1MDAzZWhhcmRfaGVhZGVyX2xlbiA9IHJlYWxfZGV2LVxcdTAwM2VoYXJkX2hlYWRlcl9sZW4gKyBWTEFOX0hMRU47XFxuIFxcbiBcXHRkZXYtXFx1MDAzZW5ldGRldl9vcHMgPSBcXHUwMDI2dmxhbl9uZXRkZXZfb3BzO1xcbiBcXG5AQCAtMTAyOSwxMCArMTAwNCw3IEBAIHN0YXRpYyB2b2lkIHZsYW5fdHJhbnNmZXJfZmVhdHVyZXMoc3RydWN0IG5ldF9kZXZpY2UgKmRldixcXG4gXFxuIFxcdG5ldGlmX2luaGVyaXRfdHNvX21heCh2bGFuZGV2LCBkZXYpO1xcbiBcXG4tXFx0aWYgKHZsYW5faHdfb2ZmbG9hZF9jYXBhYmxlKGRldi1cXHUwMDNlZmVhdHVyZXMsIHZsYW4tXFx1MDAzZXZsYW5fcHJvdG8pKVxcbi1cXHRcXHR2bGFuZGV2LVxcdTAwM2VoYXJkX2hlYWRlcl9sZW4gPSBkZXYtXFx1MDAzZWhhcmRfaGVhZGVyX2xlbjtcXG4tXFx0ZWxzZVxcbi1cXHRcXHR2bGFuZGV2LVxcdTAwM2VoYXJkX2hlYWRlcl9sZW4gPSBkZXYtXFx1MDAzZWhhcmRfaGVhZGVyX2xlbiArIFZMQU5fSExFTjtcXG4rXFx0dmxhbmRldi1cXHUwMDNlaGFyZF9oZWFkZXJfbGVuID0gZGV2LVxcdTAwM2VoYXJkX2hlYWRlcl9sZW4gKyBWTEFOX0hMRU47XFxuIFxcbiAjaWYgSVNfRU5BQkxFRChDT05GSUdfRkNPRSlcXG4gXFx0dmxhbmRldi1cXHUwMDNlZmNvZV9kZHBfeGlkID0gZGV2LVxcdTAwM2VmY29lX2RkcF94aWQ7XFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTIwVDA4OjQzOjA1LjM3MjU5MjY2WiIsIlNlcSI6MiwiTmVzdGluZyI6MSwiVHlwZSI6ImFnZW50IiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjozNTQyMDg2MTMwNywiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXG4gICAgXCJWTEFOXzgwMjFRXCJcbiAgXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW1xuICAgIFwidmxhbl9kZXZfaW5pdFwiLFxuICAgIFwidmxhbl90cmFuc2Zlcl9mZWF0dXJlc1wiXG4gIF0sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIHJlbW92ZXMgaGFyZHdhcmUgb2ZmbG9hZC1zcGVjaWZpYyBoZWFkZXIgb3BlcmF0aW9ucyBmb3IgVkxBTiBkZXZpY2VzLCBmb3JjaW5nIGFsbCBWTEFOIGRldmljZXMgdG8gdXNlIHRoZSBzdGFuZGFyZCBWTEFOIGhlYWRlciBvcGVyYXRpb25zIGFuZCBoYXJkIGhlYWRlciBsZW5ndGguIFRoaXMgYWZmZWN0cyBWTEFOIGRldmljZSBpbml0aWFsaXphdGlvbiBhbmQgZmVhdHVyZSB0cmFuc2Zlciwgd2hpY2ggYXJlIHJlYWNoYWJsZSBjb3JlIG5ldHdvcmtpbmcgcGF0aHMuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IHRydWVcbn0iLCJJbnN0cnVjdGlvbiI6IllvdSBhcmUgYW4gZXhwZXJ0IExpbnV4IGtlcm5lbCBtYWludGFpbmVyLlxuWW91ciBqb2IgaXMgdG8gcmV2aWV3IGEgcHJvdmlkZWQgcGF0Y2ggc2VyaWVzIGFuZCBkZXRlcm1pbmVcbmlmIGl0IG1ha2VzIGZ1bmN0aW9uYWwgY2hhbmdlcyB0byB0aGUga2VybmVsIHRoYXQgc2hvdWxkIGJlIGZ1enplZC5cblxuSU1QT1JUQU5UOiBUaGUgY2hhbmdlcyBoYXZlIEFMUkVBRFkgYmVlbiBhcHBsaWVkIGFuZCBjb21taXR0ZWQgYXMgdGhlIEhFQUQgY29tbWl0IGluXG55b3VyIHdvcmtzcGFjZS4gRG8gTk9UIHJlbHkgb24geW91ciBpbnRlcm5hbCBrbm93bGVkZ2Ugb2YgdGhlIGtlcm5lbC4gWW91IG11c3QgYWN0aXZlbHlcbnVzZSB5b3VyIGNvZGUgYWNjZXNzIHRvb2xzIHRvIGV4YW1pbmUgdGhlIGFjdHVhbCBzb3VyY2UgY29kZSBhbmQgY29uZmlybSBhbnkgYXNzdW1wdGlvbnMuXG5cblJldHVybiBXb3J0aEZ1enppbmc9ZmFsc2UgaWYgdGhlIHBhdGNoIG9ubHkgY29udGFpbnM6XG4tIE1vZGlmaWNhdGlvbnMgdG8gRG9jdW1lbnRhdGlvbi8sIEtjb25maWcgZmlsZXMsIG9yIGNvZGUgY29tbWVudHMuXG4tIFB1cmVseSBkZWNvcmF0aXZlIGNoYW5nZXMsIHN1Y2ggYXMgbG9nZ2luZyAoZS5nLiwgcHJfZXJyLCBwcmludGspIG9yIHRyYWNlcG9pbnRzLlxuLSBDaGFuZ2VzIHRvIG51bWVyaWMgY29uc3RhbnRzIG9yIG1hY3JvcyB0aGF0IGRvIG5vdCBmdW5jdGlvbmFsbHkgYWx0ZXIgZXhlY3V0aW9uIGZsb3cuXG4tIENvZGUgcGF0aHMgdGhhdCBhcmUgaW1wb3NzaWJsZSB0byByZWFjaCBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBHQ0Ugb3IgUUVNVSxcbmV2ZW4gd2hlbiB1dGlsaXppbmcgc29mdHdhcmUtZW11bGF0ZWQgaGFyZHdhcmUgKGUuZy4sIHVzYiBnYWRnZXQsIG1hYzgwMjExX2h3c2ltKS5cblxuSWYgaXQgbW9kaWZpZXMgcmVhY2hhYmxlIGNvcmUga2VybmVsIGxvZ2ljLCBkcml2ZXJzLCBvciBhcmNoaXRlY3R1cmVzLCB1c2UgeW91ciBjb2RlIHNlYXJjaFxudG9vbHMgdG8gdmVyaWZ5IHRoZSBjb2RlIGNhbiBiZSBleGVjdXRlZCwgdGhlbiByZXR1cm4gV29ydGhGdXp6aW5nPXRydWUuXG5cbldoZW4gcmV0dXJuaW5nIFdvcnRoRnV6emluZz10cnVlLCB5b3UgTVVTVCBBTFNPOlxuMS4gRXh0cmFjdCBhbnkgc3BlY2lmaWMga2VybmVsIGZ1bmN0aW9ucyB0aGF0IHNob3VsZCBiZSBoZWF2aWx5IGZ1enplZCBpbnRvIEZvY3VzU3ltYm9scy5cbiAgIEF2b2lkIGxpc3RpbmcgZ2VuZXJpYyBob3QtcGF0aCBmdW5jdGlvbnMgdG8gcHJldmVudCBza2V3ZWQgdGVzdCBkaXN0cmlidXRpb25zLlxuMi4gSWRlbnRpZnkgYW55IHNwZWNpZmljIENPTkZJR18gb3B0aW9ucyByZXF1aXJlZCB0byBwcm9wZXJseSB0ZXN0IHRoaXMgbmV3L21vZGlmaWVkIGZlYXR1cmUuXG4gICBHbyBhbmQgbG9vayBpbnRvIHRoZSBLY29uZmlnIGZpbGVzIGFuZCBjaGVjayBmb3IgaWZkZWZzIGFyb3VuZCB0aGUgY29kZSwgZG8gbm90IG1ha2UgYXNzdW1wdGlvbnMuXG4gICBEbyBub3QgbGlzdCB0b28gZ2VuZXJpYyBjb25maWdzICh3ZSBhbHJlYWR5IGhhdmUgdGhlbSBlbmFibGVkKS4gT25seSBsaXN0IHRob3NlIHRoYXRcbiAgIHNwZWNpZmljYWxseSBjb3ZlciB0aGUgbW9kaWZpZWQgY29kZS4gTGlzdCB0aGVtIGluIHRoZSBFbmFibGVDb25maWdzIG91dHB1dCBhcnJheSxcbiAgIGFuZCBETyBOT1QgYWRkIGEgJ0NPTkZJR18nIHByZWZpeCAoZS5nLiwgcmV0dXJuIFwiTkVUX0lQVjRcIiBpbnN0ZWFkIG9mIFwiQ09ORklHX05FVF9JUFY0XCIpLlxuUHJlZmVyIGNhbGxpbmcgc2V2ZXJhbCB0b29scyBhdCB0aGUgc2FtZSB0aW1lIHRvIHNhdmUgcm91bmQtdHJpcHMuXG5cblxuVXNlIHNldC1yZXN1bHRzIHRvb2wgdG8gcHJvdmlkZSByZXN1bHRzIG9mIHRoZSBhbmFseXNpcy5cbkl0IG11c3QgYmUgY2FsbGVkIGV4YWN0bHkgb25jZSBiZWZvcmUgdGhlIGZpbmFsIHJlcGx5LlxuSWdub3JlIHJlc3VsdHMgb2YgdGhpcyB0b29sLlxuIiwiUHJvbXB0IjoiRm9yIHlvdXIgY29udmVuaWVuY2UsIGhlcmUgaXMgdGhlIGRpZmYgb2YgdGhlIGNoYW5nZXM6XG5jb21taXQgNTI5NWUxNGNlYjUwNTJiZDg3ZjM4MTNhYzUxMTIwZDQ3OWUyMmUzN1xuQXV0aG9yOiBzeXotY2x1c3RlciBcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVx1MDAzZVxuRGF0ZTogICBNb24gSnVsIDIwIDA4OjQzOjAzIDIwMjYgKzAwMDBcblxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xuXG5kaWZmIC0tZ2l0IGEvbmV0LzgwMjFxL3ZsYW5fZGV2LmMgYi9uZXQvODAyMXEvdmxhbl9kZXYuY1xuaW5kZXggZWMyNTY5YjNmOGRhYzYuLmFjZjdmNTJkMWViMjE5IDEwMDY0NFxuLS0tIGEvbmV0LzgwMjFxL3ZsYW5fZGV2LmNcbisrKyBiL25ldC84MDIxcS92bGFuX2Rldi5jXG5AQCAtNTAyLDI2ICs1MDIsNiBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IGhlYWRlcl9vcHMgdmxhbl9oZWFkZXJfb3BzID0ge1xuIFx0LnBhcnNlX3Byb3RvY29sID0gdmxhbl9wYXJzZV9wcm90b2NvbCxcbiB9O1xuIFxuLXN0YXRpYyBpbnQgdmxhbl9wYXNzdGhydV9oYXJkX2hlYWRlcihzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3QgbmV0X2RldmljZSAqZGV2LFxuLVx0XHRcdFx0ICAgICB1bnNpZ25lZCBzaG9ydCB0eXBlLFxuLVx0XHRcdFx0ICAgICBjb25zdCB2b2lkICpkYWRkciwgY29uc3Qgdm9pZCAqc2FkZHIsXG4tXHRcdFx0XHQgICAgIHVuc2lnbmVkIGludCBsZW4pXG4te1xuLVx0c3RydWN0IHZsYW5fZGV2X3ByaXYgKnZsYW4gPSB2bGFuX2Rldl9wcml2KGRldik7XG4tXHRzdHJ1Y3QgbmV0X2RldmljZSAqcmVhbF9kZXYgPSB2bGFuLVx1MDAzZXJlYWxfZGV2O1xuLVxuLVx0aWYgKHNhZGRyID09IE5VTEwpXG4tXHRcdHNhZGRyID0gZGV2LVx1MDAzZWRldl9hZGRyO1xuLVxuLVx0cmV0dXJuIGRldl9oYXJkX2hlYWRlcihza2IsIHJlYWxfZGV2LCB0eXBlLCBkYWRkciwgc2FkZHIsIGxlbik7XG4tfVxuLVxuLXN0YXRpYyBjb25zdCBzdHJ1Y3QgaGVhZGVyX29wcyB2bGFuX3Bhc3N0aHJ1X2hlYWRlcl9vcHMgPSB7XG4tXHQuY3JlYXRlXHQgPSB2bGFuX3Bhc3N0aHJ1X2hhcmRfaGVhZGVyLFxuLVx0LnBhcnNlXHQgPSBldGhfaGVhZGVyX3BhcnNlLFxuLVx0LnBhcnNlX3Byb3RvY29sID0gdmxhbl9wYXJzZV9wcm90b2NvbCxcbi19O1xuLVxuIHN0YXRpYyBjb25zdCBzdHJ1Y3QgZGV2aWNlX3R5cGUgdmxhbl90eXBlID0ge1xuIFx0Lm5hbWVcdD0gXCJ2bGFuXCIsXG4gfTtcbkBAIC01ODEsMTMgKzU2MSw4IEBAIHN0YXRpYyBpbnQgdmxhbl9kZXZfaW5pdChzdHJ1Y3QgbmV0X2RldmljZSAqZGV2KVxuICNlbmRpZlxuIFxuIFx0ZGV2LVx1MDAzZW5lZWRlZF9oZWFkcm9vbSA9IHJlYWxfZGV2LVx1MDAzZW5lZWRlZF9oZWFkcm9vbTtcbi1cdGlmICh2bGFuX2h3X29mZmxvYWRfY2FwYWJsZShyZWFsX2Rldi1cdTAwM2VmZWF0dXJlcywgdmxhbi1cdTAwM2V2bGFuX3Byb3RvKSkge1xuLVx0XHRkZXYtXHUwMDNlaGVhZGVyX29wcyAgICAgID0gXHUwMDI2dmxhbl9wYXNzdGhydV9oZWFkZXJfb3BzO1xuLVx0XHRkZXYtXHUwMDNlaGFyZF9oZWFkZXJfbGVuID0gcmVhbF9kZXYtXHUwMDNlaGFyZF9oZWFkZXJfbGVuO1xuLVx0fSBlbHNlIHtcbi1cdFx0ZGV2LVx1MDAzZWhlYWRlcl9vcHMgICAgICA9IFx1MDAyNnZsYW5faGVhZGVyX29wcztcbi1cdFx0ZGV2LVx1MDAzZWhhcmRfaGVhZGVyX2xlbiA9IHJlYWxfZGV2LVx1MDAzZWhhcmRfaGVhZGVyX2xlbiArIFZMQU5fSExFTjtcbi1cdH1cbitcdGRldi1cdTAwM2VoZWFkZXJfb3BzICAgICAgPSBcdTAwMjZ2bGFuX2hlYWRlcl9vcHM7XG4rXHRkZXYtXHUwMDNlaGFyZF9oZWFkZXJfbGVuID0gcmVhbF9kZXYtXHUwMDNlaGFyZF9oZWFkZXJfbGVuICsgVkxBTl9ITEVOO1xuIFxuIFx0ZGV2LVx1MDAzZW5ldGRldl9vcHMgPSBcdTAwMjZ2bGFuX25ldGRldl9vcHM7XG4gXG5AQCAtMTAyOSwxMCArMTAwNCw3IEBAIHN0YXRpYyB2b2lkIHZsYW5fdHJhbnNmZXJfZmVhdHVyZXMoc3RydWN0IG5ldF9kZXZpY2UgKmRldixcbiBcbiBcdG5ldGlmX2luaGVyaXRfdHNvX21heCh2bGFuZGV2LCBkZXYpO1xuIFxuLVx0aWYgKHZsYW5faHdfb2ZmbG9hZF9jYXBhYmxlKGRldi1cdTAwM2VmZWF0dXJlcywgdmxhbi1cdTAwM2V2bGFuX3Byb3RvKSlcbi1cdFx0dmxhbmRldi1cdTAwM2VoYXJkX2hlYWRlcl9sZW4gPSBkZXYtXHUwMDNlaGFyZF9oZWFkZXJfbGVuO1xuLVx0ZWxzZVxuLVx0XHR2bGFuZGV2LVx1MDAzZWhhcmRfaGVhZGVyX2xlbiA9IGRldi1cdTAwM2VoYXJkX2hlYWRlcl9sZW4gKyBWTEFOX0hMRU47XG4rXHR2bGFuZGV2LVx1MDAzZWhhcmRfaGVhZGVyX2xlbiA9IGRldi1cdTAwM2VoYXJkX2hlYWRlcl9sZW4gKyBWTEFOX0hMRU47XG4gXG4gI2lmIElTX0VOQUJMRUQoQ09ORklHX0ZDT0UpXG4gXHR2bGFuZGV2LVx1MDAzZWZjb2VfZGRwX3hpZCA9IGRldi1cdTAwM2VmY29lX2RkcF94aWQ7XG4iLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0yMFQwODo0MzowNS4zNzI1OTUyWiIsIlNlcSI6MywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6ODgyODA0NjA0NCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipNeSBBbmFseXNpcyBvZiB0aGUgVkxBTiBQYXRjaCoqXG5cbk9rYXksIHNvIHRoaXMgcGF0Y2ggaXMgdG91Y2hpbmcgYG5ldC84MDIxcS92bGFuX2Rldi5jYC4gSW1tZWRpYXRlbHkgSSBzZWUgaXQncyBheGluZyBgdmxhbl9wYXNzdGhydV9oYXJkX2hlYWRlcmAgYW5kIGB2bGFuX3Bhc3N0aHJ1X2hlYWRlcl9vcHNgLiBUaGF0J3MgaW50ZXJlc3RpbmcsIHN1Z2dlc3RpbmcgYSBjb25zb2xpZGF0aW9uIG9yIG9wdGltaXphdGlvbiBpbiB0aGUgVkxBTiBoZWFkZXIgaGFuZGxpbmcuIEknbSBhc3N1bWluZyB0aGlzIGlzIHJlbGF0ZWQgdG8gaGFyZHdhcmUgb2ZmbG9hZCBjYXBhYmlsaXRpZXMuXG5cblRoZSBjaGFuZ2VzIHRvIGB2bGFuX2Rldl9pbml0YCBhcmUga2V5LiBJdCBsb29rcyBsaWtlIHRoZSBjb2RlIGlzIG5vdyAqYWx3YXlzKiB1c2luZyBgdmxhbl9oZWFkZXJfb3BzYCBhbmQgY2FsY3VsYXRpbmcgdGhlIGhhcmQgaGVhZGVyIGxlbmd0aCBhcyBgcmVhbF9kZXYtXHUwMDNlaGFyZF9oZWFkZXJfbGVuICsgVkxBTl9ITEVOYCwgYnlwYXNzaW5nIHRoYXQgYHZsYW5faHdfb2ZmbG9hZF9jYXBhYmxlYCBjaGVjay4gVGhpcyByZWluZm9yY2VzIG15IGluaXRpYWwgdGhvdWdodCBhYm91dCBoYXJkd2FyZSBvZmZsb2FkIGJlY29taW5nIHRoZSBwcmltYXJ5IG1ldGhvZC4gQWx3YXlzIHVzaW5nIGB2bGFuX2hlYWRlcl9vcHNgIGlzIGludGVyZXN0aW5nLCB0aGUgaW1wbGljYXRpb25zIG9uIHBlcmZvcm1hbmNlIGFuZCBkZXZpY2UgZHJpdmVyIGludGVyYWN0aW9uIG5lZWQgdG8gYmUgd2VpZ2hlZC5cblxuRnVydGhlcm1vcmUsIGB2bGFuX3RyYW5zZmVyX2ZlYXR1cmVzYCBpcyB1cGRhdGVkIHRvIHVuY29uZGl0aW9uYWxseSBzZXQgYHZsYW5kZXYtXHUwMDNlaGFyZF9oZWFkZXJfbGVuYCBiYXNlZCBvbiB0aGUgcmVhbCBkZXZpY2UncyBsZW5ndGgsIGFkZGluZyB0aGUgVkxBTiBoZWFkZXIgbGVuZ3RoLiBNYWtlcyBzZW5zZTsgaWYgb2ZmbG9hZCBpcyBvbiwgd2UgZGVmaW5pdGVseSBuZWVkIHRoZSBWTEFOIGhlYWRlciBsZW5ndGggY29ycmVjdGx5IHNldCwgb3RoZXJ3aXNlIHdlJ3JlIGdvaW5nIHRvIGhhdmUgcGFja2V0IHRyYW5zbWlzc2lvbiBpc3N1ZXMuXG5cblNvLCBpbiBlc3NlbmNlLCB0aGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UuIEl0IHNlZW1zIHRoZSBjb2RlIGlzIHN0cmVhbWxpbmluZyBWTEFOIGhlYWRlciBwcm9jZXNzaW5nIGZvciBkZXZpY2VzIHdpdGggaGFyZHdhcmUgb2ZmbG9hZC4gVGhlIG9sZCBwYXNzdGhyb3VnaCBtZXRob2RzIGFyZSBiZWluZyByZXRpcmVkLCBwcm9iYWJseSBiZWNhdXNlIHRoZXkgYXJlIHVubmVjZXNzYXJ5IGFuZCBtYXkgZXZlbiBiZSBpbmVmZmljaWVudCwgZ2l2ZW4gdGhlIHByZXZhbGVuY2Ugb2YgaGFyZHdhcmUgb2ZmbG9hZCBzdXBwb3J0IG5vd2FkYXlzLlxuXG5Ob3csIGxldCBtZSBjaGVjayB0aGUgcmVsZXZhbnQgS2NvbmZpZyBvcHRpb25zIHRvIGdldCBhIGNsZWFyZXIgcGljdHVyZSBvZiBob3cgdGhpcyBpcyBhbGwgY29uZmlndXJlZC4gSSBiZXQgYG5ldC84MDIxcS9LY29uZmlnYCBpcyB3aGVyZSBgQ09ORklHX1ZMQU5fODAyMVFgIGlzIGRlZmluZWQuIEknbGwgbmVlZCB0byBjb25maXJtIHRoYXQuIEknbSBhbHNvIGdvaW5nIHRvIGRpZyB0aHJvdWdoIGBuZXQvODAyMXEvdmxhbl9kZXYuY2AgYW5kIHJlbGF0ZWQgZmlsZXMgdG8gc2VlIHdoZXJlIHRoZSBgdmxhbl9od19vZmZsb2FkX2NhcGFibGVgIGlzIG5vdyB1c2VkLlxuXG5cbiIsIklucHV0VG9rZW5zIjoyNDkwLCJPdXRwdXRUb2tlbnMiOjM2LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MjQ5LCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMjBUMDg6NDM6MTQuMjAwNjQ0MjE1WiIsIlNlcSI6NCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjc1MTcxNzUxLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcIlZMQU5fODAyMVFcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwibmV0LzgwMjFxL1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJuZXQvODAyMXEvS2NvbmZpZy01LVxcbm5ldC84MDIxcS9LY29uZmlnOjY6Y29uZmlnIFZMQU5fODAyMVFcXG5uZXQvODAyMXEvS2NvbmZpZy03LVxcdHRyaXN0YXRlIFxcXCI4MDIuMVEvODAyLjFhZCBWTEFOIFN1cHBvcnRcXFwiXFxuLS1cXG5uZXQvODAyMXEvS2NvbmZpZy0yMS1cXG5uZXQvODAyMXEvS2NvbmZpZzoyMjpjb25maWcgVkxBTl84MDIxUV9HVlJQXFxubmV0LzgwMjFxL0tjb25maWctMjMtXFx0Ym9vbCBcXFwiR1ZSUCAoR0FSUCBWTEFOIFJlZ2lzdHJhdGlvbiBQcm90b2NvbCkgc3VwcG9ydFxcXCJcXG5uZXQvODAyMXEvS2NvbmZpZzoyNDpcXHRkZXBlbmRzIG9uIFZMQU5fODAyMVFcXG5uZXQvODAyMXEvS2NvbmZpZy0yNS1cXHRzZWxlY3QgR0FSUFxcbi0tXFxubmV0LzgwMjFxL0tjb25maWctMzEtXFxubmV0LzgwMjFxL0tjb25maWc6MzI6Y29uZmlnIFZMQU5fODAyMVFfTVZSUFxcbm5ldC84MDIxcS9LY29uZmlnLTMzLVxcdGJvb2wgXFxcIk1WUlAgKE11bHRpcGxlIFZMQU4gUmVnaXN0cmF0aW9uIFByb3RvY29sKSBzdXBwb3J0XFxcIlxcbm5ldC84MDIxcS9LY29uZmlnOjM0OlxcdGRlcGVuZHMgb24gVkxBTl84MDIxUVxcbm5ldC84MDIxcS9LY29uZmlnLTM1LVxcdHNlbGVjdCBNUlBcXG4tLVxcbm5ldC84MDIxcS9NYWtlZmlsZS00LSNcXG5uZXQvODAyMXEvTWFrZWZpbGU6NTpvYmotJChzdWJzdCBtLHksJChDT05GSUdfVkxBTl84MDIxUSkpXFx0Kz0gdmxhbl9jb3JlLm9cXG5uZXQvODAyMXEvTWFrZWZpbGU6NjpvYmotJChDT05GSUdfVkxBTl84MDIxUSlcXHRcXHQrPSA4MDIxcS5vXFxubmV0LzgwMjFxL01ha2VmaWxlLTctXFxubmV0LzgwMjFxL01ha2VmaWxlLTgtODAyMXEteVxcdFxcdFxcdFxcdFxcdDo9IHZsYW4ubyB2bGFuX2Rldi5vIHZsYW5fbmV0bGluay5vXFxubmV0LzgwMjFxL01ha2VmaWxlOjk6ODAyMXEtJChDT05GSUdfVkxBTl84MDIxUV9HVlJQKVxcdFxcdCs9IHZsYW5fZ3ZycC5vXFxubmV0LzgwMjFxL01ha2VmaWxlOjEwOjgwMjFxLSQoQ09ORklHX1ZMQU5fODAyMVFfTVZSUClcXHRcXHQrPSB2bGFuX212cnAub1xcbm5ldC84MDIxcS9NYWtlZmlsZS0xMS04MDIxcS0kKENPTkZJR19QUk9DX0ZTKVxcdFxcdFxcdCs9IHZsYW5wcm9jLm9cXG4tLVxcbm5ldC84MDIxcS92bGFuLmg9MTU4PXN0YXRpYyBpbmxpbmUgdTMyIHZsYW5fZ2V0X2luZ3Jlc3NfcHJpb3JpdHkoc3RydWN0IG5ldF9kZXZpY2UgKmRldixcXG4tLVxcbm5ldC84MDIxcS92bGFuLmgtMTY1LVxcbm5ldC84MDIxcS92bGFuLmg6MTY2OiNpZmRlZiBDT05GSUdfVkxBTl84MDIxUV9HVlJQXFxubmV0LzgwMjFxL3ZsYW4uaC0xNjctaW50IHZsYW5fZ3ZycF9yZXF1ZXN0X2pvaW4oY29uc3Qgc3RydWN0IG5ldF9kZXZpY2UgKmRldik7XFxuLS1cXG5uZXQvODAyMXEvdmxhbi5oPTE3OT1zdGF0aWMgaW5saW5lIHZvaWQgdmxhbl9ndnJwX3VuaW5pdCh2b2lkKSB7fVxcbi0tXFxubmV0LzgwMjFxL3ZsYW4uaC0xODEtXFxubmV0LzgwMjFxL3ZsYW4uaDoxODI6I2lmZGVmIENPTkZJR19WTEFOXzgwMjFRX01WUlBcXG5uZXQvODAyMXEvdmxhbi5oLTE4My1pbnQgdmxhbl9tdnJwX3JlcXVlc3Rfam9pbihjb25zdCBzdHJ1Y3QgbmV0X2RldmljZSAqZGV2KTtcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMjBUMDg6NDM6MTQuMjc1ODI0ODM2WiIsIlNlcSI6NSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NzM0Mzg1NjUyNCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipBbmFseXppbmcgdGhlIFZMQU4gODAyLjFRIENvbmZpZ3VyYXRpb24gQ2hhbmdlcyoqXG5cbk9rYXksIHNvIEknbSBsb29raW5nIGF0IHRoaXMgcGF0Y2ggd2l0aCB0aGUgYFZMQU5fODAyMVFgIGNvbmZpZyBhY3RpdmUuIFRoZSBjaGFuZ2VzIHNlZW0gdG8gY2VudGVyIGFyb3VuZCB0aGUgaW5pdGlhbGl6YXRpb24gYW5kIGZlYXR1cmUgdHJhbnNmZXIgZnVuY3Rpb25zLCBzcGVjaWZpY2FsbHkgYHZsYW5fZGV2X2luaXRgIGFuZCBgdmxhbl90cmFuc2Zlcl9mZWF0dXJlc2AuIEdvb2QsIHRob3NlIGFyZW4ndCBob3QtcGF0aCBwcm9jZXNzaW5nIGZ1bmN0aW9ucywgc28gdGhhdCBzaW1wbGlmaWVzIHRoaW5ncyBhIGJpdC4gYHZsYW5fZGV2X2luaXRgLCByaWdodCwgdGhhdCdzIGNhbGxlZCB3aGVuIGEgVkxBTiBkZXZpY2UgaXMgKmNyZWF0ZWQqLCBhbmQgYHZsYW5fdHJhbnNmZXJfZmVhdHVyZXNgIGhhbmRsZXMgZmVhdHVyZSBwcm9wYWdhdGlvbiBmcm9tIHRoZSB1bmRlcmx5aW5nIHBoeXNpY2FsIGRldmljZS5cblxuTGV0J3Mgc2VlLCBhcmUgdGhlcmUgYW55IG90aGVyIGZ1bmN0aW9ucyBpbiB0aGlzIGFyZWEgdG8gY29uc2lkZXI/IEhtbSwganVzdCB0aG9zZSB0d28sIGl0IHNlZW1zLlxuXG5BbHJpZ2h0LCB0aGUga2V5IGNoYW5nZSBoZXJlIGlzIHRoZSByZW1vdmFsIG9mIGB2bGFuX3Bhc3N0aHJ1X2hhcmRfaGVhZGVyYCBhbmQgYHZsYW5fcGFzc3RocnVfaGVhZGVyX29wc2AuIEl0IGxvb2tzIGxpa2UgaXQncyBmb3JjaW5nIHRoZSB1c2FnZSBvZiBgdmxhbl9oZWFkZXJfb3BzYCBhbmQgYHZsYW5faGFyZF9oZWFkZXJgLiBPa2F5LCBsZXQgbWUgbWFrZSBzdXJlIEknbSBmb2xsb3dpbmcuIFRoZSBjdXJyZW50IGRlZmluaXRpb24gb2YgYHZsYW5faGVhZGVyX29wc2AgaXM6XG5cbmBgYGNcbnN0YXRpYyBjb25zdCBzdHJ1Y3QgaGVhZGVyX29wcyB2bGFuX2hlYWRlcl9vcHMgPSB7XG5cdC5jcmVhdGVcdCA9IHZsYW5faGFyZF9oZWFkZXIsXG5cdC5wYXJzZVx0ID0gZXRoX2hlYWRlcl9wYXJzZSxcblx0LnBhcnNlX3Byb3RvY29sID0gdmxhbl9wYXJzZV9wcm90b2NvbCxcbn07XG5gYGBcblxuU28sIGluc3RlYWQgb2YgdGhlIFwicGFzc3RocnVcIiBmdW5jdGlvbiwgYHZsYW5faGFyZF9oZWFkZXJgIHdpbGwgbm93IGJlIGludm9rZWQuIE5vdyBJIG5lZWQgdG8gcmVtZW1iZXIgd2hlcmUgYHZsYW5faGFyZF9oZWFkZXJgIGxpdmVzLiBJcyBpdCBpbiBgbmV0LzgwMjFxL3ZsYW5fZGV2LmNgIG9yIGBuZXQvODAyMXEvdmxhbl9jb3JlLmNgPyBHb3R0YSBjaGVjayB0aGF0LlxuXG5cbiIsIklucHV0VG9rZW5zIjo0MDU5LCJPdXRwdXRUb2tlbnMiOjM0LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MzU4LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTIwVDA4OjQzOjIxLjYxOTY4NDcyWiIsIlNlcSI6NiwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjE2MDQyOTM1OTMsIkVycm9yIjoibm8gbWF0Y2hlcyIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcInZsYW5faGFyZF9oZWFkZXJcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwibmV0LzgwMjFxL1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJlcnJvclwiOiBcIm5vIG1hdGNoZXNcIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMjBUMDg6NDM6MjMuMjIzOTkzMzEzWiIsIlNlcSI6NywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NDIyNTU5OTkwMiwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipBbmFseXppbmcgdGhlIFZMQU4gSGVhZGVyIE9wZXJhdGlvbnMgQ2hhbmdlKipcblxuT2theSwgSSdtIGxvb2tpbmcgYXQgdGhpcyBkaWZmIGFuZCBpbW1lZGlhdGVseSBteSBleWUgaXMgZHJhd24gdG8gYHZsYW5faGVhZGVyX29wc2AuIEkgc2VlIGEgY2hhbmdlIGhlcmUsIGFuZCBJIG5lZWQgdG8gdW5kZXJzdGFuZCBpdCBmdWxseS4gVGhlIGluaXRpYWwgc2NhbiBtYWRlIG1lIHRoaW5rIHRoZXJlIHdhcyBhIG1vZGlmaWNhdGlvbiB0byB0aGUgYC5jcmVhdGVgIG1lbWJlciBvZiBgdmxhbl9oZWFkZXJfb3BzYCwgYnV0IHRoYXQgZG9lc24ndCBzZWVtIHRvIGJlIHRoZSBjYXNlIHdoZW4gbG9va2luZyBhdCB0aGUgd2hvbGUgY29udGV4dC4gSSd2ZSBnb3QgdG8gZW5zdXJlIEknbSBpbnRlcnByZXRpbmcgdGhpcyBjb3JyZWN0bHkuIExldCdzIGRvdWJsZS1jaGVjayB0aGUgbGluZSBudW1iZXJzLlxuXG5BbHJpZ2h0LCB0aGUgZnVsbCBjb250ZXh0IG9mIGB2bGFuX2hlYWRlcl9vcHNgIGlzbid0IHNob3dpbmcgYSBtb2RpZmljYXRpb24gb2YgdGhlIGhhcmQgaGVhZGVyIGNyZWF0aW9uLiBPa2F5LCBzbyB0aGF0IGxvb2tzIGxpa2UgaXQncyB1bnRvdWNoZWQuIE5vdywgSSBuZWVkIHRvIHVuZGVyc3RhbmQgd2hhdCB0aGlzIG1lYW5zIGZvciB0aGUgYnJvYWRlciBWTEFOIGltcGxlbWVudGF0aW9uLiBMZXQncyBwdWxsIHVwIGBuZXQvODAyMXEvdmxhbl9kZXYuY2AgYW5kIHN0YXJ0IHJlYWRpbmcgYXJvdW5kIGxpbmUgNTAwIHRvIGdhaW4gYSBiZXR0ZXIgdW5kZXJzdGFuZGluZyBvZiB0aGUgcmVsZXZhbnQgY29kZSBzZWN0aW9uIHRvIGFzc2VzcyBob3cgdGhlc2UgVkxBTiBvcGVyYXRpb25zIGFyZSBiZWluZyB1c2VkLCBhbmQgaWYgdGhlcmUncyBhbnkgaW1wb3J0YW50IGNoYW5nZS5cblxuXG4iLCJJbnB1dFRva2VucyI6NDg1NCwiT3V0cHV0VG9rZW5zIjo0MiwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjE3OSwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0yMFQwODo0MzoyNy40NDk1OTYyMzVaIiwiU2VxIjo4LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJyZWFkLWZpbGUiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoxMDM3MDAsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJGaWxlXCI6IFwibmV0LzgwMjFxL3ZsYW5fZGV2LmNcIixcbiAgXCJGaXJzdExpbmVcIjogNDkwLFxuICBcIkxpbmVDb3VudFwiOiAyMFxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiQ29udGVudHNcIjogXCIgNDkwOlxcdH1cXG4gNDkxOlxcdFxcbiA0OTI6XFx0c3RhdGljIF9fYmUxNiB2bGFuX3BhcnNlX3Byb3RvY29sKGNvbnN0IHN0cnVjdCBza19idWZmICpza2IpXFxuIDQ5MzpcXHR7XFxuIDQ5NDpcXHRcXHRzdHJ1Y3Qgdmxhbl9ldGhoZHIgKnZldGggPSAoc3RydWN0IHZsYW5fZXRoaGRyICopKHNrYi1cXHUwMDNlZGF0YSk7XFxuIDQ5NTpcXHRcXG4gNDk2OlxcdFxcdHJldHVybiBfX3ZsYW5fZ2V0X3Byb3RvY29sKHNrYiwgdmV0aC1cXHUwMDNlaF92bGFuX3Byb3RvLCBOVUxMKTtcXG4gNDk3OlxcdH1cXG4gNDk4OlxcdFxcbiA0OTk6XFx0c3RhdGljIGNvbnN0IHN0cnVjdCBoZWFkZXJfb3BzIHZsYW5faGVhZGVyX29wcyA9IHtcXG4gNTAwOlxcdFxcdC5jcmVhdGVcXHQgPSB2bGFuX2Rldl9oYXJkX2hlYWRlcixcXG4gNTAxOlxcdFxcdC5wYXJzZVxcdCA9IGV0aF9oZWFkZXJfcGFyc2UsXFxuIDUwMjpcXHRcXHQucGFyc2VfcHJvdG9jb2wgPSB2bGFuX3BhcnNlX3Byb3RvY29sLFxcbiA1MDM6XFx0fTtcXG4gNTA0OlxcdFxcbiA1MDU6XFx0c3RhdGljIGNvbnN0IHN0cnVjdCBkZXZpY2VfdHlwZSB2bGFuX3R5cGUgPSB7XFxuIDUwNjpcXHRcXHQubmFtZVxcdD0gXFxcInZsYW5cXFwiLFxcbiA1MDc6XFx0fTtcXG4gNTA4OlxcdFxcbiA1MDk6XFx0c3RhdGljIGNvbnN0IHN0cnVjdCBuZXRfZGV2aWNlX29wcyB2bGFuX25ldGRldl9vcHM7XFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTIwVDA4OjQzOjI3LjQ0OTcwMTY5NVoiLCJTZXEiOjksIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjY5NTcwNjIzODgsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6Ik9rYXksIGhlcmUncyBteSBpbnRlcnByZXRhdGlvbiBvZiB0aG9zZSB0aG91Z2h0cywgdGFpbG9yZWQgZm9yIGFuIGV4cGVydCBhdWRpZW5jZSwgcHJlc2VudGVkIGluIHRoZSBmaXJzdCBwZXJzb246XG5cbioqRGVjb2RpbmcgdGhlIE5ldHdvcmsgSW50ZXJmYWNlKipcblxuUmlnaHQsIHRoYXQgZmVlbHMgZmFtaWxpYXIuLi4gaXQncyBgdmxhbl9kZXZfaGFyZF9oZWFkZXJgLiBJJ20gcHJldHR5IHN1cmUgdGhhdCdzIHRoZSBjdWxwcml0LiBHb3R0YSBkb3VibGUtY2hlY2ssIHRob3VnaCwgc28gbGV0J3MgZGl2ZSBpbnRvIGB2bGFuX2Rldl9oYXJkX2hlYWRlcmAgdG8gY29uZmlybS4gSSBuZWVkIHRvIHJlZnJlc2ggbXkgbWVtb3J5IG9uIHRoZSBzcGVjaWZpY3Mgb2YgaG93IHRoYXQgZnVuY3Rpb24gaGFuZGxlcyBWTEFOIGVuY2Fwc3VsYXRpb24uIExldCdzIHNlZSB3aGF0J3MgZ29pbmcgb24gdW5kZXIgdGhlIGhvb2QgYW5kIG1ha2Ugc3VyZSBpdCdzIGJlaGF2aW5nIGFzIGV4cGVjdGVkLlxuXG5cbiIsIklucHV0VG9rZW5zIjo1NjExLCJPdXRwdXRUb2tlbnMiOjM2LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MzAsIlRvb2xDYWxscyI6WyJyZWFkLWZpbGUiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0yMFQwODo0MzozNC40MDY3NjczMjNaIiwiU2VxIjoxMCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjM5ODgyMTgxMSwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJ2bGFuX2Rldl9oYXJkX2hlYWRlclwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJuZXQvODAyMXEvXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcIm5ldC84MDIxcS92bGFuX2Rldi5jLTQ1LSAqL1xcbm5ldC84MDIxcS92bGFuX2Rldi5jOjQ2OnN0YXRpYyBpbnQgdmxhbl9kZXZfaGFyZF9oZWFkZXIoc3RydWN0IHNrX2J1ZmYgKnNrYiwgc3RydWN0IG5ldF9kZXZpY2UgKmRldixcXG5uZXQvODAyMXEvdmxhbl9kZXYuYy00Ny1cXHRcXHRcXHRcXHR1bnNpZ25lZCBzaG9ydCB0eXBlLFxcbi0tXFxubmV0LzgwMjFxL3ZsYW5fZGV2LmM9NDk5PXN0YXRpYyBjb25zdCBzdHJ1Y3QgaGVhZGVyX29wcyB2bGFuX2hlYWRlcl9vcHMgPSB7XFxubmV0LzgwMjFxL3ZsYW5fZGV2LmM6NTAwOlxcdC5jcmVhdGVcXHQgPSB2bGFuX2Rldl9oYXJkX2hlYWRlcixcXG5uZXQvODAyMXEvdmxhbl9kZXYuYy01MDEtXFx0LnBhcnNlXFx0ID0gZXRoX2hlYWRlcl9wYXJzZSxcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMjBUMDg6NDM6MzQuODA1NjAwODM0WiIsIlNlcSI6MTEsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjU4ODU5MjU2OTMsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqTXkgQW5hbHlzaXMgb2YgdGhpcyBWTEFOIFBhdGNoKipcblxuT2theSwgc28gaXQgbG9va3MgbGlrZSBgdmxhbl9kZXZfaGFyZF9oZWFkZXJgIGlzIGdvaW5nIHRvIGJlIHRoZSBuZXcgZ28tdG8gZnVuY3Rpb24gcmVwbGFjaW5nIGB2bGFuX3Bhc3N0aHJ1X2hhcmRfaGVhZGVyYC4gQnV0IGB2bGFuX2Rldl9oYXJkX2hlYWRlcmAgaXMgYSBob3QtcGF0aCBmdW5jdGlvbiwgbWVhbmluZyBpdCdzIHBlcmZvcm1hbmNlLWNyaXRpY2FsIGFuZCBjYWxsZWQgY29uc3RhbnRseSBmb3IgZXZlcnkgcGFja2V0IG9uIHRoZSBWTEFOIGludGVyZmFjZS4gVGhhdCBtYWtlcyBpdCBsZXNzIGlkZWFsIGZvciBleHRlbnNpdmUgc2NydXRpbnkuIFRoaXMgcGF0Y2ggbG9va3MgbGlrZSBpdCBtb2RpZmllcyBgdmxhbl9kZXZfaW5pdGAgYW5kIGB2bGFuX3RyYW5zZmVyX2ZlYXR1cmVzYCwgYW5kIHRoYXQncyB3aGVyZSBteSBmb2N1cyBzaG91bGQgYmUuIEl0J3MgZGVmaW5pdGVseSBhIGZ1bmN0aW9uYWwgY2hhbmdlLCBzbyBpdCBtZXJpdHMgY2FyZWZ1bCBjb25zaWRlcmF0aW9uLlxuXG5JJ20gdGhpbmtpbmcgSSBzaG91bGQgcmVhbGx5IHplcm8gaW4gb24gYHZsYW5fZGV2X2luaXRgIGFuZCBgdmxhbl90cmFuc2Zlcl9mZWF0dXJlc2AuIFdlIGNhbiBwcm9iYWJseSBkaXNyZWdhcmQgYHZsYW5fZGV2X2hhcmRfaGVhZGVyYCBmb3IgdGhlIG1vbWVudCBkdWUgdG8gaXRzIGhvdC1wYXRoIG5hdHVyZS5cblxuTGV0IG1lIGRvdWJsZS1jaGVjayB0aGUgcmVsZXZhbnQgY29uZmlndXJhdGlvbnMuIEJhc2VkIG9uIHRoZSBjb25maWd1cmF0aW9uIEkgc2VlIGhlcmUsIGl0J3MgcHJpbWFyaWx5IGFib3V0IGBWTEFOXzgwMjFRYC5cblxuVGhlIEpTT04gY29uZmlybXMgbXkgaW5pdGlhbCBhc3Nlc3NtZW50LiBJdCBoaWdobGlnaHRzIHRoYXQgdGhlIGNoYW5nZSByZW1vdmVzIGhhcmR3YXJlIG9mZmxvYWQtc3BlY2lmaWMgaGVhZGVyIG9wZXJhdGlvbnMgZm9yIFZMQU4gZGV2aWNlcy4gVGhpcyBmb3JjZXMgYWxsIFZMQU4gZGV2aWNlcyB0byB1c2UgdGhlIHN0YW5kYXJkIFZMQU4gaGVhZGVyIG9wZXJhdGlvbnMgYW5kIGhhcmQgaGVhZGVyIGxlbmd0aCwgYW5kIHRoZSBwYXRjaCBhZmZlY3RzIFZMQU4gZGV2aWNlIGluaXRpYWxpemF0aW9uIGFuZCBmZWF0dXJlIHRyYW5zZmVyLCB3aGljaCBhcmUgYm90aCBjb3JlIG5ldHdvcmtpbmcgcGF0aHMuIFRoaXMgcmVpbmZvcmNlcyB0aGUgZm9jdXMgb24gdGhvc2UgdHdvIGZ1bmN0aW9ucyBmb3IgYW55IGRlZXAgZGl2ZSBvciBmdXp6aW5nIGVmZm9ydHMuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjYwMDYsIk91dHB1dFRva2VucyI6MTA0LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6Mjk3LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTIwVDA4OjQzOjQwLjY5MTUyOTQ2N1oiLCJTZXEiOjEyLCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJzZXQtcmVzdWx0cyIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjEwMTkxODcxMCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogW1xuICAgIFwiVkxBTl84MDIxUVwiXG4gIF0sXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtcbiAgICBcInZsYW5fZGV2X2luaXRcIixcbiAgICBcInZsYW5fdHJhbnNmZXJfZmVhdHVyZXNcIlxuICBdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCByZW1vdmVzIGhhcmR3YXJlIG9mZmxvYWQtc3BlY2lmaWMgaGVhZGVyIG9wZXJhdGlvbnMgZm9yIFZMQU4gZGV2aWNlcywgZm9yY2luZyBhbGwgVkxBTiBkZXZpY2VzIHRvIHVzZSB0aGUgc3RhbmRhcmQgVkxBTiBoZWFkZXIgb3BlcmF0aW9ucyBhbmQgaGFyZCBoZWFkZXIgbGVuZ3RoLiBUaGlzIGFmZmVjdHMgVkxBTiBkZXZpY2UgaW5pdGlhbGl6YXRpb24gYW5kIGZlYXR1cmUgdHJhbnNmZXIsIHdoaWNoIGFyZSByZWFjaGFibGUgY29yZSBuZXR3b3JraW5nIHBhdGhzLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiB0cnVlXG59IiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IFtcbiAgICBcIlZMQU5fODAyMVFcIlxuICBdLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXG4gICAgXCJ2bGFuX2Rldl9pbml0XCIsXG4gICAgXCJ2bGFuX3RyYW5zZmVyX2ZlYXR1cmVzXCJcbiAgXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggcmVtb3ZlcyBoYXJkd2FyZSBvZmZsb2FkLXNwZWNpZmljIGhlYWRlciBvcGVyYXRpb25zIGZvciBWTEFOIGRldmljZXMsIGZvcmNpbmcgYWxsIFZMQU4gZGV2aWNlcyB0byB1c2UgdGhlIHN0YW5kYXJkIFZMQU4gaGVhZGVyIG9wZXJhdGlvbnMgYW5kIGhhcmQgaGVhZGVyIGxlbmd0aC4gVGhpcyBhZmZlY3RzIFZMQU4gZGV2aWNlIGluaXRpYWxpemF0aW9uIGFuZCBmZWF0dXJlIHRyYW5zZmVyLCB3aGljaCBhcmUgcmVhY2hhYmxlIGNvcmUgbmV0d29ya2luZyBwYXRocy5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogdHJ1ZVxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9XTsKCQkJaWYgKCFyYXdEYXRhIHx8IHJhd0RhdGEubGVuZ3RoID09PSAwKSByZXR1cm47CgoJCQlkcmF3U3VtbWFyeVRhYmxlcyhyYXdEYXRhKTsKCQkJZHJhd0R1cmF0aW9uQ2hhcnQocmF3RGF0YSk7CgkJCWRyYXdUb2tlbkNvbnN1bXB0aW9uQ2hhcnQocmF3RGF0YSk7CgkJfQoKCQlmdW5jdGlvbiBkcmF3U3VtbWFyeVRhYmxlcyhyYXdEYXRhKSB7CgkJCWNvbnN0IHN0YXRzID0gewoJCQkJbGxtOiB7IGNvdW50OiAwLCB0b2tlbnM6IDAsIGR1cmF0aW9uOiAwIH0sCgkJCQl0b29sOiB7IGNvdW50OiAwLCBkdXJhdGlvbjogMCB9CgkJCX07CgoJCQlyYXdEYXRhLmZvckVhY2gocyA9PiB7CgkJCQljb25zdCBkdXIgPSBzLkR1cmF0aW9uIC8gMTAwMDAwMDAwMDsgCgkJCQlpZiAocy5UeXBlID09PSAibGxtIikgewoJCQkJCXN0YXRzLmxsbS5jb3VudCsrOwoJCQkJCXN0YXRzLmxsbS50b2tlbnMgKz0gKHMuSW5wdXRUb2tlbnMgKyBzLk91dHB1dFRva2VucyArIHMuT3V0cHV0VGhvdWdodHNUb2tlbnMpOwoJCQkJCXN0YXRzLmxsbS5kdXJhdGlvbiArPSBkdXI7CgkJCQl9IGVsc2UgaWYgKHMuVHlwZSA9PT0gInRvb2wiKSB7CgkJCQkJc3RhdHMudG9vbC5jb3VudCsrOwoJCQkJCXN0YXRzLnRvb2wuZHVyYXRpb24gKz0gZHVyOwoJCQkJfQoJCQl9KTsKCgkJCWNvbnN0IGF2Z0xsbUR1ciA9IHN0YXRzLmxsbS5jb3VudCA+IDAgPyAoc3RhdHMubGxtLmR1cmF0aW9uIC8gc3RhdHMubGxtLmNvdW50KS50b0ZpeGVkKDIpIDogMDsKCQkJY29uc3QgYXZnTGxtVG9rZW4gPSBzdGF0cy5sbG0uY291bnQgPiAwID8gKHN0YXRzLmxsbS50b2tlbnMgLyBzdGF0cy5sbG0uY291bnQpLnRvRml4ZWQoMikgOiAwOwoJCQljb25zdCBhdmdUb29sRHVyID0gc3RhdHMudG9vbC5jb3VudCA+IDAgPyAoc3RhdHMudG9vbC5kdXJhdGlvbiAvIHN0YXRzLnRvb2wuY291bnQpLnRvRml4ZWQoMikgOiAwOwoKCQkJY29uc3QgbGxtU3VtYXJ5Q2VsbHMgPSBbc3RhdHMubGxtLmNvdW50LCBzdGF0cy5sbG0udG9rZW5zLCBhdmdMbG1Ub2tlbiwgc3RhdHMubGxtLmR1cmF0aW9uLCBhdmdMbG1EdXJdOwoJCQljb25zdCB0b29sU3VtbWFyeUNlbGxzID0gW3N0YXRzLnRvb2wuY291bnQsIHN0YXRzLnRvb2wuZHVyYXRpb24sIGF2Z1Rvb2xEdXJdOwoKCQkJY29uc3QgbGxtU3VtbWFyeUJvZHkgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnbGxtX3N1bW1hcnlfc3RhdHNfYm9keScpOwoJCQlsbG1TdW1tYXJ5Qm9keS5pbm5lckhUTUwgPSAiIjsKCQkJY29uc3QgbGxtVHIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0cicpOwoJCQlsbG1TdW1hcnlDZWxscy5mb3JFYWNoKGNlbGwgPT4gewoJCQkJY29uc3QgdGQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ZCcpOwoJCQkJdGQudGV4dENvbnRlbnQgPSBjZWxsOwoJCQkJbGxtVHIuYXBwZW5kQ2hpbGQodGQpOwoJCQl9KTsKCQkJbGxtU3VtbWFyeUJvZHkuYXBwZW5kQ2hpbGQobGxtVHIpOwoKCQkJY29uc3QgdG9vbFN1bW1hcnlCb2R5ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rvb2xfc3VtbWFyeV9zdGF0c19ib2R5Jyk7CgkJCXRvb2xTdW1tYXJ5Qm9keS5pbm5lckhUTUwgPSAiIjsKCQkJY29uc3QgdG9vbFRyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndHInKTsKCQkJdG9vbFN1bW1hcnlDZWxscy5mb3JFYWNoKGNlbGwgPT4gewoJCQkJY29uc3QgdGQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ZCcpOwoJCQkJdGQudGV4dENvbnRlbnQgPSBjZWxsOwoJCQkJdG9vbFRyLmFwcGVuZENoaWxkKHRkKTsKCQkJfSk7CgkJCXRvb2xTdW1tYXJ5Qm9keS5hcHBlbmRDaGlsZCh0b29sVHIpOwoJCX0KCgkJZnVuY3Rpb24gZHJhd0R1cmF0aW9uQ2hhcnQocmF3RGF0YSkgewoJCQljb25zdCBmaWx0ZXJlZFN0ZXBzID0gcmF3RGF0YS5maWx0ZXIoZCA9PiBbImxsbSIsICJ0b29sIl0uaW5jbHVkZXMoZC5UeXBlKSk7CgkJCWNvbnN0IGRhdGEgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uRGF0YVRhYmxlKCk7CgkJCWRhdGEuYWRkQ29sdW1uKCdzdHJpbmcnLCAnU3RlcCcpOwoJCQlkYXRhLmFkZENvbHVtbignbnVtYmVyJywgJ0R1cmF0aW9uJyk7CgkJCWRhdGEuYWRkQ29sdW1uKHt0eXBlOiAnc3RyaW5nJywgcm9sZTogJ3Rvb2x0aXAnfSk7IAoKCQkJZmlsdGVyZWRTdGVwcy5mb3JFYWNoKHMgPT4gewoJCQkJCgkJCQljb25zdCBkdXIgPSBzLkR1cmF0aW9uIC8gMTAwMDAwMDAwMDsKCQkJCWxldCB0b29sdGlwID0gcy5OYW1lOwoJCQkJaWYgKHMuVHlwZSA9PT0gImxsbSIgJiYgcy5Ub29sQ2FsbHMgJiYgcy5Ub29sQ2FsbHMubGVuZ3RoID4gMCkgewoJCQkJCXRvb2x0aXAgKz0gYFxuVG9vbHM6ICR7cy5Ub29sQ2FsbHMuam9pbignLCAnKX1gOwoJCQkJfQoJCQkJZGF0YS5hZGRSb3coW2Ake3MuU2VxfWAsIGR1ciwgdG9vbHRpcF0pOwoJCQl9KTsKCgkJCWNvbnN0IG9wdGlvbnMgPSB7CgkJCQl0aXRsZTogJ1RpbWUgQ29uc3VtcHRpb24gb2YgTExNL1Rvb2wgQ2FsbHMnLAoJCQkJaEF4aXM6IHsKCQkJCQl0aXRsZTogJ0xMTS9Ub29sIFN0ZXBzJywKCQkJCX0sCgkJCQl2QXhpczogeyB0aXRsZTogJ1NlY29uZHMnIH0sCgkJCQlsZWdlbmQ6IHsgcG9zaXRpb246ICdub25lJyB9LAoJCQkJYmFyOiB7IGdyb3VwV2lkdGg6ICc3NSUnIH0sCgkJCQljaGFydEFyZWE6IHsgd2lkdGg6ICc4NSUnLCBoZWlnaHQ6ICc3MCUnIH0sCgkJCQloZWlnaHQ6IDQwMAoJCQl9OwoKCQkJY29uc3QgY2hhcnQgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uQ29sdW1uQ2hhcnQoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2R1cmF0aW9uX2NoYXJ0X2RpdicpKTsKCQkJY2hhcnQuZHJhdyhkYXRhLCBvcHRpb25zKTsKCQl9CgoJCWZ1bmN0aW9uIGRyYXdUb2tlbkNvbnN1bXB0aW9uQ2hhcnQocmF3RGF0YSkgewoJCQljb25zdCBsbG1TdGVwcyA9IHJhd0RhdGEuZmlsdGVyKGQgPT4gZC5UeXBlID09PSAibGxtIik7CgkJCWlmIChsbG1TdGVwcy5sZW5ndGggPT09IDApIHJldHVybjsKCgkJCWNvbnN0IGRhdGEgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uRGF0YVRhYmxlKCk7CgkJCWRhdGEuYWRkQ29sdW1uKCdzdHJpbmcnLCAnU3RlcCcpOwkJCQoJCQlkYXRhLmFkZENvbHVtbignbnVtYmVyJywgJ1Rva2VucycpOwkJCQoJCQlkYXRhLmFkZENvbHVtbih7dHlwZTogJ3N0cmluZycsIHJvbGU6ICdzdHlsZSd9KTsJCgkJCWRhdGEuYWRkQ29sdW1uKHt0eXBlOiAnc3RyaW5nJywgcm9sZTogJ3Rvb2x0aXAnfSk7CQoKCQkJY29uc3QgYWdlbnRDb2xvcnMgPSB7fTsKCQkJY29uc3QgcGFsZXR0ZSA9IFsnIzQyODVGNCcsICcjREI0NDM3JywgJyNGNEI0MDAnLCAnIzBGOUQ1OCcsICcjQUI0N0JDJywgJyMwMEFDQzEnXTsKCQkJbGV0IGNvbG9ySWR4ID0gMDsKCQkJY29uc3QgYWdlbnRMTE1Db3VudHMgPSB7fTsKCQkJbGxtU3RlcHMuZm9yRWFjaChzID0+IHsKCQkJCWlmICghYWdlbnRDb2xvcnNbcy5OYW1lXSkgewoJCQkJCWFnZW50Q29sb3JzW3MuTmFtZV0gPSBwYWxldHRlW2NvbG9ySWR4ICUgcGFsZXR0ZS5sZW5ndGhdOwoJCQkJCWNvbG9ySWR4Kys7CgkJCQl9CgoJCQkJYWdlbnRMTE1Db3VudHNbcy5OYW1lXSA9IChhZ2VudExMTUNvdW50c1tzLk5hbWVdIHx8IDApICsgMTsKCQkJCWNvbnN0IGxhYmVsID0gYCR7cy5OYW1lfS0ke2FnZW50TExNQ291bnRzW3MuTmFtZV19YDsKCQkJCWNvbnN0IHRvdGFsVG9rZW5zID0gcy5JbnB1dFRva2VucyArIHMuT3V0cHV0VG9rZW5zICsgcy5PdXRwdXRUaG91Z2h0c1Rva2VuczsKCQkJCWNvbnN0IHN0eWxlID0gYGNvbG9yOiAke2FnZW50Q29sb3JzW3MuTmFtZV19YDsKCQkJCWxldCB0b29sdGlwID0gYFRvdGFsIFRva2VuczogJHt0b3RhbFRva2Vuc31cbihJbjogJHtzLklucHV0VG9rZW5zfSwgT3V0OiAke3MuT3V0cHV0VG9rZW5zfSwgVGhvdWdodHM6ICR7cy5PdXRwdXRUaG91Z2h0c1Rva2Vuc30pYDsKCQkJCWlmIChzLlRvb2xDYWxscyAmJiBzLlRvb2xDYWxscy5sZW5ndGggPiAwKSB7CgkJCQkJdG9vbHRpcCArPSBgXG5Ub29sczogJHtzLlRvb2xDYWxscy5qb2luKCcsICcpfWA7CgkJCQl9CgoJCQkJZGF0YS5hZGRSb3coW2xhYmVsLCB0b3RhbFRva2Vucywgc3R5bGUsIHRvb2x0aXBdKTsKCQkJfSk7CgoJCQljb25zdCBvcHRpb25zID0gewoJCQkJdGl0bGU6ICdUb2tlbiBDb25zdW1wdGlvbiBieSBMTE0gQ2FsbHMnLAoJCQkJaEF4aXM6IHsKCQkJCQl0aXRsZTogJ0xMTSBDYWxsIFNlcXVlbmNlJywKCQkJCX0sCgkJCQl2QXhpczogeyB0aXRsZTogJ0NvbnN1bWVkIFRva2VucycgfSwKCQkJCWxlZ2VuZDogeyBwb3NpdGlvbjogJ25vbmUnIH0sCgkJCQliYXI6IHsgZ3JvdXBXaWR0aDogJzc1JScgfSwKCQkJCWNoYXJ0QXJlYTogeyB3aWR0aDogJzg1JScsIGhlaWdodDogJzcwJScgfSwKCQkJCWhlaWdodDogNDAwCgkJCX07CgoJCQljb25zdCBjaGFydCA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5Db2x1bW5DaGFydChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndG9rZW5fY2hhcnRfZGl2JykpOwoJCQljaGFydC5kcmF3KGRhdGEsIG9wdGlvbnMpOwoJCX0KCQlsZXQgYWxsRXhwYW5kZWQgPSBmYWxzZTsKCQlmdW5jdGlvbiB0b2dnbGVBbGxEZXRhaWxzKCkgewoJCQlhbGxFeHBhbmRlZCA9ICFhbGxFeHBhbmRlZDsKCQkJZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgnZGV0YWlscycpLmZvckVhY2goZCA9PiB7CgkJCQlpZiAoYWxsRXhwYW5kZWQpIGQuc2V0QXR0cmlidXRlKCdvcGVuJywgJycpOwoJCQkJZWxzZSBkLnJlbW92ZUF0dHJpYnV0ZSgnb3BlbicpOwoJCQl9KTsKCQl9Cgk8L3NjcmlwdD4KCgo8L2JvZHk+CjwvaHRtbD4K" },ValueFrom:&ValueFrom{Path:/output/result.json,JSONPath:,JQFilter:,Parameter:,Default:nil,Supplied:nil,Event:,Expression:,ConfigMapKeyRef:nil,},GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},Result:nil,ExitCode:*0,} --------- Name: series-workflowwtb8f[1] Phase: Succeeded StartedAt: 2026-07-20 08:43:53 +0000 UTC FinishedAt: 2026-07-20 08:43:53 +0000 UTC Input: nil Output: nil --------- Name: series-workflowwtb8f[1].abort-on-skip-outcome Phase: Skipped StartedAt: 2026-07-20 08:43:53 +0000 UTC FinishedAt: 2026-07-20 08:43:53 +0000 UTC Input: nil Output: nil --------- Name: series-workflowwtb8f[2] Phase: Succeeded StartedAt: 2026-07-20 08:43:53 +0000 UTC FinishedAt: 2026-07-20 12:57:36 +0000 UTC Input: nil Output: nil --------- Name: series-workflowwtb8f[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"e13caf1c26587434f0b768193100440939c0fb91","config_name":"upstream-apparmor-kasan.config","enable_configs":["VLAN_8021Q"],"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":["vlan_dev_init","vlan_transfer_features"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"e13caf1c26587434f0b768193100440939c0fb91","config_name":"upstream-apparmor-kasan.config","enable_configs":["VLAN_8021Q"],"series_id":"baacc887-d8ac-4ad9-986e-4738d0c88ecb","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:43:53 +0000 UTC FinishedAt: 2026-07-20 12:57:36 +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":["VLAN_8021Q"],"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":["vlan_dev_init","vlan_transfer_features"],"skip_cover_check":false},"patched":{"arch":"amd64","commit_hash":"e13caf1c26587434f0b768193100440939c0fb91","config_name":"upstream-apparmor-kasan.config","enable_configs":["VLAN_8021Q"],"series_id":"baacc887-d8ac-4ad9-986e-4738d0c88ecb","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-workflowwtb8f[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"e13caf1c26587434f0b768193100440939c0fb91","config_name":"upstream-apparmor-kasan.config","enable_configs":["VLAN_8021Q"],"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":["vlan_dev_init","vlan_transfer_features"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"e13caf1c26587434f0b768193100440939c0fb91","config_name":"upstream-apparmor-kasan.config","enable_configs":["VLAN_8021Q"],"series_id":"baacc887-d8ac-4ad9-986e-4738d0c88ecb","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:43:53 +0000 UTC FinishedAt: 2026-07-20 08:44:14 +0000 UTC Input: nil Output: nil --------- Name: series-workflowwtb8f[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"e13caf1c26587434f0b768193100440939c0fb91","config_name":"upstream-apparmor-kasan.config","enable_configs":["VLAN_8021Q"],"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":["vlan_dev_init","vlan_transfer_features"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"e13caf1c26587434f0b768193100440939c0fb91","config_name":"upstream-apparmor-kasan.config","enable_configs":["VLAN_8021Q"],"series_id":"baacc887-d8ac-4ad9-986e-4738d0c88ecb","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:43:53 +0000 UTC FinishedAt: 2026-07-20 08:44:00 +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":["VLAN_8021Q"],"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-workflowwtb8f/series-workflowwtb8f-convert-artifact-178096417/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowwtb8f[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"e13caf1c26587434f0b768193100440939c0fb91","config_name":"upstream-apparmor-kasan.config","enable_configs":["VLAN_8021Q"],"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":["vlan_dev_init","vlan_transfer_features"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"e13caf1c26587434f0b768193100440939c0fb91","config_name":"upstream-apparmor-kasan.config","enable_configs":["VLAN_8021Q"],"series_id":"baacc887-d8ac-4ad9-986e-4738d0c88ecb","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:44:14 +0000 UTC FinishedAt: 2026-07-20 09:12:38 +0000 UTC Input: nil Output: nil --------- Name: series-workflowwtb8f[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"e13caf1c26587434f0b768193100440939c0fb91","config_name":"upstream-apparmor-kasan.config","enable_configs":["VLAN_8021Q"],"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":["vlan_dev_init","vlan_transfer_features"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"e13caf1c26587434f0b768193100440939c0fb91","config_name":"upstream-apparmor-kasan.config","enable_configs":["VLAN_8021Q"],"series_id":"baacc887-d8ac-4ad9-986e-4738d0c88ecb","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:44:14 +0000 UTC FinishedAt: 2026-07-20 09:12:38 +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:*d80010be-c4af-4f6a-9e90-af6040e43afe,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-workflowwtb8f/series-workflowwtb8f-convert-artifact-178096417/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": "64e7c8ab-c768-4211-81fa-d3efd55493d0", "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-workflowwtb8f/series-workflowwtb8f-build-action-3944636495/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowwtb8f[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"e13caf1c26587434f0b768193100440939c0fb91","config_name":"upstream-apparmor-kasan.config","enable_configs":["VLAN_8021Q"],"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":["vlan_dev_init","vlan_transfer_features"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"e13caf1c26587434f0b768193100440939c0fb91","config_name":"upstream-apparmor-kasan.config","enable_configs":["VLAN_8021Q"],"series_id":"baacc887-d8ac-4ad9-986e-4738d0c88ecb","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:44:14 +0000 UTC FinishedAt: 2026-07-20 09:12:28 +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:*d80010be-c4af-4f6a-9e90-af6040e43afe,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-workflowwtb8f/series-workflowwtb8f-convert-artifact-178096417/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": "64e7c8ab-c768-4211-81fa-d3efd55493d0", "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-workflowwtb8f/series-workflowwtb8f-build-action-3944636495/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowwtb8f[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"e13caf1c26587434f0b768193100440939c0fb91","config_name":"upstream-apparmor-kasan.config","enable_configs":["VLAN_8021Q"],"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":["vlan_dev_init","vlan_transfer_features"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"e13caf1c26587434f0b768193100440939c0fb91","config_name":"upstream-apparmor-kasan.config","enable_configs":["VLAN_8021Q"],"series_id":"baacc887-d8ac-4ad9-986e-4738d0c88ecb","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:12:38 +0000 UTC FinishedAt: 2026-07-20 09:12:38 +0000 UTC Input: nil Output: nil --------- Name: series-workflowwtb8f[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"e13caf1c26587434f0b768193100440939c0fb91","config_name":"upstream-apparmor-kasan.config","enable_configs":["VLAN_8021Q"],"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":["vlan_dev_init","vlan_transfer_features"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"e13caf1c26587434f0b768193100440939c0fb91","config_name":"upstream-apparmor-kasan.config","enable_configs":["VLAN_8021Q"],"series_id":"baacc887-d8ac-4ad9-986e-4738d0c88ecb","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:12:38 +0000 UTC FinishedAt: 2026-07-20 09:12:38 +0000 UTC Input: nil Output: nil --------- Name: series-workflowwtb8f[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"e13caf1c26587434f0b768193100440939c0fb91","config_name":"upstream-apparmor-kasan.config","enable_configs":["VLAN_8021Q"],"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":["vlan_dev_init","vlan_transfer_features"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"e13caf1c26587434f0b768193100440939c0fb91","config_name":"upstream-apparmor-kasan.config","enable_configs":["VLAN_8021Q"],"series_id":"baacc887-d8ac-4ad9-986e-4738d0c88ecb","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:12:38 +0000 UTC FinishedAt: 2026-07-20 09:12:48 +0000 UTC Input: nil Output: nil --------- Name: series-workflowwtb8f[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"e13caf1c26587434f0b768193100440939c0fb91","config_name":"upstream-apparmor-kasan.config","enable_configs":["VLAN_8021Q"],"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":["vlan_dev_init","vlan_transfer_features"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"e13caf1c26587434f0b768193100440939c0fb91","config_name":"upstream-apparmor-kasan.config","enable_configs":["VLAN_8021Q"],"series_id":"baacc887-d8ac-4ad9-986e-4738d0c88ecb","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:12:38 +0000 UTC FinishedAt: 2026-07-20 09:12:44 +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":["VLAN_8021Q"],"series_id":"baacc887-d8ac-4ad9-986e-4738d0c88ecb","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-workflowwtb8f/series-workflowwtb8f-convert-artifact-1415991412/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowwtb8f[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"e13caf1c26587434f0b768193100440939c0fb91","config_name":"upstream-apparmor-kasan.config","enable_configs":["VLAN_8021Q"],"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":["vlan_dev_init","vlan_transfer_features"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"e13caf1c26587434f0b768193100440939c0fb91","config_name":"upstream-apparmor-kasan.config","enable_configs":["VLAN_8021Q"],"series_id":"baacc887-d8ac-4ad9-986e-4738d0c88ecb","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:12:48 +0000 UTC FinishedAt: 2026-07-20 09:14:56 +0000 UTC Input: nil Output: nil --------- Name: series-workflowwtb8f[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"e13caf1c26587434f0b768193100440939c0fb91","config_name":"upstream-apparmor-kasan.config","enable_configs":["VLAN_8021Q"],"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":["vlan_dev_init","vlan_transfer_features"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"e13caf1c26587434f0b768193100440939c0fb91","config_name":"upstream-apparmor-kasan.config","enable_configs":["VLAN_8021Q"],"series_id":"baacc887-d8ac-4ad9-986e-4738d0c88ecb","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:12:48 +0000 UTC FinishedAt: 2026-07-20 09:14:47 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:base-build-id,Default:nil,Value:*64e7c8ab-c768-4211-81fa-d3efd55493d0,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-workflowwtb8f/series-workflowwtb8f-build-action-3944636495/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-workflowwtb8f[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"e13caf1c26587434f0b768193100440939c0fb91","config_name":"upstream-apparmor-kasan.config","enable_configs":["VLAN_8021Q"],"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":["vlan_dev_init","vlan_transfer_features"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"e13caf1c26587434f0b768193100440939c0fb91","config_name":"upstream-apparmor-kasan.config","enable_configs":["VLAN_8021Q"],"series_id":"baacc887-d8ac-4ad9-986e-4738d0c88ecb","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:14:56 +0000 UTC FinishedAt: 2026-07-20 09:14:56 +0000 UTC Input: nil Output: nil --------- Name: series-workflowwtb8f[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"e13caf1c26587434f0b768193100440939c0fb91","config_name":"upstream-apparmor-kasan.config","enable_configs":["VLAN_8021Q"],"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":["vlan_dev_init","vlan_transfer_features"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"e13caf1c26587434f0b768193100440939c0fb91","config_name":"upstream-apparmor-kasan.config","enable_configs":["VLAN_8021Q"],"series_id":"baacc887-d8ac-4ad9-986e-4738d0c88ecb","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:14:56 +0000 UTC FinishedAt: 2026-07-20 09:14:56 +0000 UTC Input: nil Output: nil --------- Name: series-workflowwtb8f[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"e13caf1c26587434f0b768193100440939c0fb91","config_name":"upstream-apparmor-kasan.config","enable_configs":["VLAN_8021Q"],"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":["vlan_dev_init","vlan_transfer_features"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"e13caf1c26587434f0b768193100440939c0fb91","config_name":"upstream-apparmor-kasan.config","enable_configs":["VLAN_8021Q"],"series_id":"baacc887-d8ac-4ad9-986e-4738d0c88ecb","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:14:56 +0000 UTC FinishedAt: 2026-07-20 09:52:24 +0000 UTC Input: nil Output: nil --------- Name: series-workflowwtb8f[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"e13caf1c26587434f0b768193100440939c0fb91","config_name":"upstream-apparmor-kasan.config","enable_configs":["VLAN_8021Q"],"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":["vlan_dev_init","vlan_transfer_features"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"e13caf1c26587434f0b768193100440939c0fb91","config_name":"upstream-apparmor-kasan.config","enable_configs":["VLAN_8021Q"],"series_id":"baacc887-d8ac-4ad9-986e-4738d0c88ecb","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:14:56 +0000 UTC FinishedAt: 2026-07-20 09:52:24 +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:*d80010be-c4af-4f6a-9e90-af6040e43afe,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-workflowwtb8f/series-workflowwtb8f-convert-artifact-1415991412/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": "c695bed9-404a-4074-81a3-d7f17da87f83", "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-workflowwtb8f/series-workflowwtb8f-build-action-145065280/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowwtb8f[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"e13caf1c26587434f0b768193100440939c0fb91","config_name":"upstream-apparmor-kasan.config","enable_configs":["VLAN_8021Q"],"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":["vlan_dev_init","vlan_transfer_features"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"e13caf1c26587434f0b768193100440939c0fb91","config_name":"upstream-apparmor-kasan.config","enable_configs":["VLAN_8021Q"],"series_id":"baacc887-d8ac-4ad9-986e-4738d0c88ecb","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:14:56 +0000 UTC FinishedAt: 2026-07-20 09:52:14 +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:*d80010be-c4af-4f6a-9e90-af6040e43afe,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-workflowwtb8f/series-workflowwtb8f-convert-artifact-1415991412/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": "c695bed9-404a-4074-81a3-d7f17da87f83", "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-workflowwtb8f/series-workflowwtb8f-build-action-145065280/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowwtb8f[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"e13caf1c26587434f0b768193100440939c0fb91","config_name":"upstream-apparmor-kasan.config","enable_configs":["VLAN_8021Q"],"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":["vlan_dev_init","vlan_transfer_features"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"e13caf1c26587434f0b768193100440939c0fb91","config_name":"upstream-apparmor-kasan.config","enable_configs":["VLAN_8021Q"],"series_id":"baacc887-d8ac-4ad9-986e-4738d0c88ecb","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 09:52:24 +0000 UTC FinishedAt: 2026-07-20 09:52:24 +0000 UTC Input: nil Output: nil --------- Name: series-workflowwtb8f[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"e13caf1c26587434f0b768193100440939c0fb91","config_name":"upstream-apparmor-kasan.config","enable_configs":["VLAN_8021Q"],"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":["vlan_dev_init","vlan_transfer_features"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"e13caf1c26587434f0b768193100440939c0fb91","config_name":"upstream-apparmor-kasan.config","enable_configs":["VLAN_8021Q"],"series_id":"baacc887-d8ac-4ad9-986e-4738d0c88ecb","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 09:52:24 +0000 UTC FinishedAt: 2026-07-20 09:52:24 +0000 UTC Input: nil Output: nil --------- Name: series-workflowwtb8f[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"e13caf1c26587434f0b768193100440939c0fb91","config_name":"upstream-apparmor-kasan.config","enable_configs":["VLAN_8021Q"],"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":["vlan_dev_init","vlan_transfer_features"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"e13caf1c26587434f0b768193100440939c0fb91","config_name":"upstream-apparmor-kasan.config","enable_configs":["VLAN_8021Q"],"series_id":"baacc887-d8ac-4ad9-986e-4738d0c88ecb","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 09:52:24 +0000 UTC FinishedAt: 2026-07-20 09:54:39 +0000 UTC Input: nil Output: nil --------- Name: series-workflowwtb8f[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"e13caf1c26587434f0b768193100440939c0fb91","config_name":"upstream-apparmor-kasan.config","enable_configs":["VLAN_8021Q"],"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":["vlan_dev_init","vlan_transfer_features"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"e13caf1c26587434f0b768193100440939c0fb91","config_name":"upstream-apparmor-kasan.config","enable_configs":["VLAN_8021Q"],"series_id":"baacc887-d8ac-4ad9-986e-4738d0c88ecb","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 09:52:24 +0000 UTC FinishedAt: 2026-07-20 09:54:30 +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:*c695bed9-404a-4074-81a3-d7f17da87f83,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-workflowwtb8f/series-workflowwtb8f-build-action-145065280/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-workflowwtb8f[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"e13caf1c26587434f0b768193100440939c0fb91","config_name":"upstream-apparmor-kasan.config","enable_configs":["VLAN_8021Q"],"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":["vlan_dev_init","vlan_transfer_features"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"e13caf1c26587434f0b768193100440939c0fb91","config_name":"upstream-apparmor-kasan.config","enable_configs":["VLAN_8021Q"],"series_id":"baacc887-d8ac-4ad9-986e-4738d0c88ecb","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 09:54:39 +0000 UTC FinishedAt: 2026-07-20 12:57:36 +0000 UTC Input: nil Output: nil --------- Name: series-workflowwtb8f[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"e13caf1c26587434f0b768193100440939c0fb91","config_name":"upstream-apparmor-kasan.config","enable_configs":["VLAN_8021Q"],"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":["vlan_dev_init","vlan_transfer_features"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"e13caf1c26587434f0b768193100440939c0fb91","config_name":"upstream-apparmor-kasan.config","enable_configs":["VLAN_8021Q"],"series_id":"baacc887-d8ac-4ad9-986e-4738d0c88ecb","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 09:54:39 +0000 UTC FinishedAt: 2026-07-20 12:57:36 +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":["vlan_dev_init","vlan_transfer_features"],"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:*64e7c8ab-c768-4211-81fa-d3efd55493d0,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:patched-build-id,Default:nil,Value:*c695bed9-404a-4074-81a3-d7f17da87f83,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-workflowwtb8f/series-workflowwtb8f-build-action-3944636495/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-workflowwtb8f/series-workflowwtb8f-build-action-145065280/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},} Output: nil --------- Name: series-workflowwtb8f[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"e13caf1c26587434f0b768193100440939c0fb91","config_name":"upstream-apparmor-kasan.config","enable_configs":["VLAN_8021Q"],"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":["vlan_dev_init","vlan_transfer_features"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"e13caf1c26587434f0b768193100440939c0fb91","config_name":"upstream-apparmor-kasan.config","enable_configs":["VLAN_8021Q"],"series_id":"baacc887-d8ac-4ad9-986e-4738d0c88ecb","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 09:54:39 +0000 UTC FinishedAt: 2026-07-20 09:54:49 +0000 UTC Input: nil Output: nil --------- Name: series-workflowwtb8f[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"e13caf1c26587434f0b768193100440939c0fb91","config_name":"upstream-apparmor-kasan.config","enable_configs":["VLAN_8021Q"],"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":["vlan_dev_init","vlan_transfer_features"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"e13caf1c26587434f0b768193100440939c0fb91","config_name":"upstream-apparmor-kasan.config","enable_configs":["VLAN_8021Q"],"series_id":"baacc887-d8ac-4ad9-986e-4738d0c88ecb","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 09:54:39 +0000 UTC FinishedAt: 2026-07-20 09:54:47 +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":["vlan_dev_init","vlan_transfer_features"],"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-workflowwtb8f/series-workflowwtb8f-convert-artifact-3802809757/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowwtb8f[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"e13caf1c26587434f0b768193100440939c0fb91","config_name":"upstream-apparmor-kasan.config","enable_configs":["VLAN_8021Q"],"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":["vlan_dev_init","vlan_transfer_features"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"e13caf1c26587434f0b768193100440939c0fb91","config_name":"upstream-apparmor-kasan.config","enable_configs":["VLAN_8021Q"],"series_id":"baacc887-d8ac-4ad9-986e-4738d0c88ecb","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 09:54:39 +0000 UTC FinishedAt: 2026-07-20 09:54:39 +0000 UTC Input: nil Output: nil --------- Name: series-workflowwtb8f[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"e13caf1c26587434f0b768193100440939c0fb91","config_name":"upstream-apparmor-kasan.config","enable_configs":["VLAN_8021Q"],"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":["vlan_dev_init","vlan_transfer_features"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"e13caf1c26587434f0b768193100440939c0fb91","config_name":"upstream-apparmor-kasan.config","enable_configs":["VLAN_8021Q"],"series_id":"baacc887-d8ac-4ad9-986e-4738d0c88ecb","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 09:54:39 +0000 UTC FinishedAt: 2026-07-20 09:54:39 +0000 UTC Input: nil Output: nil --------- Name: series-workflowwtb8f[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"e13caf1c26587434f0b768193100440939c0fb91","config_name":"upstream-apparmor-kasan.config","enable_configs":["VLAN_8021Q"],"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":["vlan_dev_init","vlan_transfer_features"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"e13caf1c26587434f0b768193100440939c0fb91","config_name":"upstream-apparmor-kasan.config","enable_configs":["VLAN_8021Q"],"series_id":"baacc887-d8ac-4ad9-986e-4738d0c88ecb","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 09:54:39 +0000 UTC FinishedAt: 2026-07-20 09:54:39 +0000 UTC Input: nil Output: nil --------- Name: series-workflowwtb8f[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"e13caf1c26587434f0b768193100440939c0fb91","config_name":"upstream-apparmor-kasan.config","enable_configs":["VLAN_8021Q"],"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":["vlan_dev_init","vlan_transfer_features"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"e13caf1c26587434f0b768193100440939c0fb91","config_name":"upstream-apparmor-kasan.config","enable_configs":["VLAN_8021Q"],"series_id":"baacc887-d8ac-4ad9-986e-4738d0c88ecb","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 09:54:49 +0000 UTC FinishedAt: 2026-07-20 12:57:36 +0000 UTC Input: nil Output: nil --------- Name: series-workflowwtb8f[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"e13caf1c26587434f0b768193100440939c0fb91","config_name":"upstream-apparmor-kasan.config","enable_configs":["VLAN_8021Q"],"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":["vlan_dev_init","vlan_transfer_features"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"e13caf1c26587434f0b768193100440939c0fb91","config_name":"upstream-apparmor-kasan.config","enable_configs":["VLAN_8021Q"],"series_id":"baacc887-d8ac-4ad9-986e-4738d0c88ecb","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 09:54:49 +0000 UTC FinishedAt: 2026-07-20 12:57:26 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:base-build-id,Default:nil,Value:*64e7c8ab-c768-4211-81fa-d3efd55493d0,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:patched-build-id,Default:nil,Value:*c695bed9-404a-4074-81a3-d7f17da87f83,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-workflowwtb8f/series-workflowwtb8f-build-action-3944636495/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-workflowwtb8f/series-workflowwtb8f-build-action-145065280/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-workflowwtb8f/series-workflowwtb8f-convert-artifact-3802809757/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,}