Name: series-workflowk8cct Phase: Succeeded StartedAt: 2026-08-06 11:46:28 +0000 UTC FinishedAt: 2026-08-06 15:55:47 +0000 UTC Input: nil Output: nil --------- Name: series-workflowk8cct[0] Phase: Succeeded StartedAt: 2026-08-06 11:46:28 +0000 UTC FinishedAt: 2026-08-06 12:06:05 +0000 UTC Input: nil Output: nil --------- Name: series-workflowk8cct[0].run-triage Phase: Succeeded StartedAt: 2026-08-06 11:46:28 +0000 UTC FinishedAt: 2026-08-06 12:06:05 +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": "44871eadd07a7f004aa00cb87399461eea08c630", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "IPVLAN" ], "series_id": "" }, "patched": { "arch": "amd64", "tree_name": "net", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git", "commit_hash": "44871eadd07a7f004aa00cb87399461eea08c630", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "IPVLAN" ], "series_id": "1dffa9d0-b8b5-442f-a482-8379bb5e3e57" }, "track": "KASAN", "fuzz": { "focus": [ "net" ], "focus_symbols": [ "ipvlan_link_new", "ipvlan_link_setup" ], "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+CgkJCTx0ZD4yMDI2LzA4LzA2IDEyOjA1PC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O0lQVkxBTiYjMzQ7CiAgXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbCiAgICAmIzM0O2lwdmxhbl9saW5rX25ldyYjMzQ7LAogICAgJiMzNDtpcHZsYW5fbGlua19zZXR1cCYjMzQ7CiAgXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBmaXhlcyBtaXNzaW5nIGluaXRpYWxpemF0aW9uIG9mIGBuZWVkZWRfaGVhZHJvb21gIGFuZCBgbmVlZGVkX3RhaWxyb29tYCBmb3IgaXB2bGFuIGRldmljZXMuIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSB0aGF0IGFmZmVjdHMgcGFja2V0IHRyYW5zbWlzc2lvbiBhbmQgcmVjZXB0aW9uLCBhbmQgY291bGQgcHJldmVudCBvdXQtb2YtYm91bmRzIGFjY2Vzc2VzIG9yIHBhbmljcyBpZiB0aGUgdW5kZXJseWluZyBwaHlzaWNhbCBkZXZpY2UgcmVxdWlyZXMgc3BlY2lmaWMgaGVhZHJvb20vdGFpbHJvb20uJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogdHJ1ZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MS8xPC90ZD4KCQkJPHRkPjIwMjYvMDgvMDYgMTI6MDU8L3RkPgoJCQk8dGQ+YWN0aW9uPC90ZD4KCQkJPHRkPnJlYWQtcGF0Y2gtZGlmZjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O1BhdGNoRGlmZiYjMzQ7OiAmIzM0O2NvbW1pdCA1OTFkYjI2ZWMwYzE2Y2IwMmRjMGFlOTIxM2YwNDU1ZWJmOTZiOTE4XG5BdXRob3I6IHN5ei1jbHVzdGVyIFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXHUwMDNlXG5EYXRlOiAgIFRodSBBdWcgNiAxMjowNTowMiAyMDI2ICYjNDM7MDAwMFxuXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XG5cbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9pcHZsYW4vaXB2bGFuX21haW4uYyBiL2RyaXZlcnMvbmV0L2lwdmxhbi9pcHZsYW5fbWFpbi5jXG5pbmRleCBlZDQ2NDM5YTlmNGViLi45MmQzZDM0MDI4MWZmIDEwMDY0NFxuLS0tIGEvZHJpdmVycy9uZXQvaXB2bGFuL2lwdmxhbl9tYWluLmNcbiYjNDM7JiM0MzsmIzQzOyBiL2RyaXZlcnMvbmV0L2lwdmxhbi9pcHZsYW5fbWFpbi5jXG5AQCAtMTQ2LDYgJiM0MzsxNDYsOCBAQCBzdGF0aWMgaW50IGlwdmxhbl9pbml0KHN0cnVjdCBuZXRfZGV2aWNlICpkZXYpXG4gXHRkZXYtXHUwMDNlbGx0eCA9IHRydWU7XG4gXHRuZXRpZl9pbmhlcml0X3Rzb19tYXgoZGV2LCBwaHlfZGV2KTtcbiBcdGRldi1cdTAwM2VoYXJkX2hlYWRlcl9sZW4gPSBwaHlfZGV2LVx1MDAzZWhhcmRfaGVhZGVyX2xlbjtcbiYjNDM7XHRkZXYtXHUwMDNlbmVlZGVkX2hlYWRyb29tID0gcGh5X2Rldi1cdTAwM2VuZWVkZWRfaGVhZHJvb207XG4mIzQzO1x0ZGV2LVx1MDAzZW5lZWRlZF90YWlscm9vbSA9IHBoeV9kZXYtXHUwMDNlbmVlZGVkX3RhaWxyb29tO1xuIFxuIFx0bmV0ZGV2X2xvY2tkZXBfc2V0X2NsYXNzZXMoZGV2KTtcbiBcbkBAIC03NzMsNiAmIzQzOzc3NSw4IEBAIHN0YXRpYyBpbnQgaXB2bGFuX2RldmljZV9ldmVudChzdHJ1Y3Qgbm90aWZpZXJfYmxvY2sgKnVudXNlZCxcbiBcdGNhc2UgTkVUREVWX0ZFQVRfQ0hBTkdFOlxuIFx0XHRsaXN0X2Zvcl9lYWNoX2VudHJ5KGlwdmxhbiwgXHUwMDI2cG9ydC1cdTAwM2VpcHZsYW5zLCBwbm9kZSkge1xuIFx0XHRcdG5ldGlmX2luaGVyaXRfdHNvX21heChpcHZsYW4tXHUwMDNlZGV2LCBkZXYpO1xuJiM0MztcdFx0XHRpcHZsYW4tXHUwMDNlZGV2LVx1MDAzZW5lZWRlZF9oZWFkcm9vbSA9IGRldi1cdTAwM2VuZWVkZWRfaGVhZHJvb207XG4mIzQzO1x0XHRcdGlwdmxhbi1cdTAwM2VkZXYtXHUwMDNlbmVlZGVkX3RhaWxyb29tID0gZGV2LVx1MDAzZW5lZWRlZF90YWlscm9vbTtcbiBcdFx0XHRuZXRkZXZfdXBkYXRlX2ZlYXR1cmVzKGlwdmxhbi1cdTAwM2VkZXYpO1xuIFx0XHR9XG4gXHRcdGJyZWFrO1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjIvMTwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzA2IDEyOjA1PC90ZD4KCQkJPHRkPmFnZW50PC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmJlc3QtZXhwZW5zaXZlPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogWwogICAgJiMzNDtJUFZMQU4mIzM0OwogIF0sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogWwogICAgJiMzNDtpcHZsYW5fbGlua19uZXcmIzM0OywKICAgICYjMzQ7aXB2bGFuX2xpbmtfc2V0dXAmIzM0OwogIF0sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggZml4ZXMgbWlzc2luZyBpbml0aWFsaXphdGlvbiBvZiBgbmVlZGVkX2hlYWRyb29tYCBhbmQgYG5lZWRlZF90YWlscm9vbWAgZm9yIGlwdmxhbiBkZXZpY2VzLiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgdGhhdCBhZmZlY3RzIHBhY2tldCB0cmFuc21pc3Npb24gYW5kIHJlY2VwdGlvbiwgYW5kIGNvdWxkIHByZXZlbnQgb3V0LW9mLWJvdW5kcyBhY2Nlc3NlcyBvciBwYW5pY3MgaWYgdGhlIHVuZGVybHlpbmcgcGh5c2ljYWwgZGV2aWNlIHJlcXVpcmVzIHNwZWNpZmljIGhlYWRyb29tL3RhaWxyb29tLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IHRydWUKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+SW5zdHJ1Y3Rpb246PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Zb3UgYXJlIGFuIGV4cGVydCBMaW51eCBrZXJuZWwgbWFpbnRhaW5lci4KWW91ciBqb2IgaXMgdG8gcmV2aWV3IGEgcHJvdmlkZWQgcGF0Y2ggc2VyaWVzIGFuZCBkZXRlcm1pbmUKaWYgaXQgbWFrZXMgZnVuY3Rpb25hbCBjaGFuZ2VzIHRvIHRoZSBrZXJuZWwgdGhhdCBzaG91bGQgYmUgZnV6emVkLgoKSU1QT1JUQU5UOiBUaGUgY2hhbmdlcyBoYXZlIEFMUkVBRFkgYmVlbiBhcHBsaWVkIGFuZCBjb21taXR0ZWQgYXMgdGhlIEhFQUQgY29tbWl0IGluCnlvdXIgd29ya3NwYWNlLiBEbyBOT1QgcmVseSBvbiB5b3VyIGludGVybmFsIGtub3dsZWRnZSBvZiB0aGUga2VybmVsLiBZb3UgbXVzdCBhY3RpdmVseQp1c2UgeW91ciBjb2RlIGFjY2VzcyB0b29scyB0byBleGFtaW5lIHRoZSBhY3R1YWwgc291cmNlIGNvZGUgYW5kIGNvbmZpcm0gYW55IGFzc3VtcHRpb25zLgoKUmV0dXJuIFdvcnRoRnV6emluZz1mYWxzZSBpZiB0aGUgcGF0Y2ggb25seSBjb250YWluczoKLSBNb2RpZmljYXRpb25zIHRvIERvY3VtZW50YXRpb24vLCBLY29uZmlnIGZpbGVzLCBvciBjb2RlIGNvbW1lbnRzLgotIFB1cmVseSBkZWNvcmF0aXZlIGNoYW5nZXMsIHN1Y2ggYXMgbG9nZ2luZyAoZS5nLiwgcHJfZXJyLCBwcmludGspIG9yIHRyYWNlcG9pbnRzLgotIENoYW5nZXMgdG8gbnVtZXJpYyBjb25zdGFudHMgb3IgbWFjcm9zIHRoYXQgZG8gbm90IGZ1bmN0aW9uYWxseSBhbHRlciBleGVjdXRpb24gZmxvdy4KLSBDb2RlIHBhdGhzIHRoYXQgYXJlIGltcG9zc2libGUgdG8gcmVhY2ggaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgR0NFIG9yIFFFTVUsCiAgZXZlbiB3aGVuIHV0aWxpemluZyBzb2Z0d2FyZS1lbXVsYXRlZCBoYXJkd2FyZSAoZS5nLiwgdXNiIGdhZGdldCwgbWFjODAyMTFfaHdzaW0pLgotIENvZGUgaW4gdmVuZG9yLXNwZWNpZmljIFBDSWUgc3dpdGNoLCBTbWFydE5JQywgb3IgR1BVIGRyaXZlcnMgKGUuZy4sIG1seHN3LCBwZHNfY29yZSwgcWVkLAogIGlvbmljLCBhbWRncHUpIHRoYXQgcmVxdWlyZSBwaHlzaWNhbCBQQ0llIGhhcmR3YXJlIGNhcmRzIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCBRRU1VLgotIERyaXZlciAucmVtb3ZlLCAuc2h1dGRvd24sIG9yIHBjaV91bnJlZ2lzdGVyX2RyaXZlciB0ZWFyZG93biBjYWxsYmFja3MgKGUuZy4sIGlnYl9yZW1vdmUpCiAgdGhhdCBhcmUgZXhlY3V0ZWQgb25seSBkdXJpbmcgUENJIGhvdC11bnBsdWcgb3Igc3lzZnMgZHJpdmVyIHVuYmluZCBvcGVyYXRpb25zLgoKSWYgaXQgbW9kaWZpZXMgcmVhY2hhYmxlIGNvcmUga2VybmVsIGxvZ2ljLCBkcml2ZXJzLCBvciBhcmNoaXRlY3R1cmVzLCB1c2UgeW91ciBjb2RlIHNlYXJjaAp0b29scyB0byB2ZXJpZnkgdGhlIGNvZGUgY2FuIGJlIGV4ZWN1dGVkLCB0aGVuIHJldHVybiBXb3J0aEZ1enppbmc9dHJ1ZS4KCldoZW4gcmV0dXJuaW5nIFdvcnRoRnV6emluZz10cnVlLCB5b3UgTVVTVCBBTFNPOgoxLiBFeHRyYWN0IGFueSBzcGVjaWZpYyBrZXJuZWwgZnVuY3Rpb25zIHRoYXQgc2hvdWxkIGJlIGhlYXZpbHkgZnV6emVkIGludG8gRm9jdXNTeW1ib2xzLgogICBBdm9pZCBsaXN0aW5nIGdlbmVyaWMgaG90LXBhdGggZnVuY3Rpb25zIHRvIHByZXZlbnQgc2tld2VkIHRlc3QgZGlzdHJpYnV0aW9ucy4KICAgUHJlZmVyIG5vbi1zdGF0aWMsIG5vbi1pbmxpbmVkIEFQSSBlbnRyeXBvaW50IGZ1bmN0aW9ucyBvdmVyIGludGVybmFsIHN0YXRpYyBoZWxwZXIgZnVuY3Rpb25zCiAgICh3aGljaCBhcmUgaW5saW5lZCBieSB0aGUgY29tcGlsZXIgYW5kIGRvIG5vdCBoYXZlIGRpc3RpbmN0IHN5bWJvbCBhZGRyZXNzZXMpLgoyLiBJZGVudGlmeSBhbnkgc3BlY2lmaWMgQ09ORklHXyBvcHRpb25zIHJlcXVpcmVkIHRvIHByb3Blcmx5IHRlc3QgdGhpcyBuZXcvbW9kaWZpZWQgZmVhdHVyZS4KICAgR28gYW5kIGxvb2sgaW50byB0aGUgS2NvbmZpZyBmaWxlcyBhbmQgY2hlY2sgZm9yIGlmZGVmcyBhcm91bmQgdGhlIGNvZGUsIGRvIG5vdCBtYWtlIGFzc3VtcHRpb25zLgogICBBbHNvIGNoZWNrICYjMzQ7ZGVwZW5kcyBvbiYjMzQ7IGxpbmVzIGluIEtjb25maWcgdG8gaW5jbHVkZSBhbnkgbm9uLXN0YW5kYXJkIHBhcmVudCBzdWJzeXN0ZW0gY29uZmlncwogICBuZWVkZWQgZm9yIEtidWlsZCB0byBjb21waWxlIHRoZSBjb2RlIHN0YXRpY2FsbHkgaW50byB2bWxpbnV4LiBMaXN0IHRoZW0gaW4gdGhlIEVuYWJsZUNvbmZpZ3MKICAgb3V0cHV0IGFycmF5LCBhbmQgRE8gTk9UIGFkZCBhICYjMzk7Q09ORklHXyYjMzk7IHByZWZpeCAoZS5nLiwgcmV0dXJuICYjMzQ7TkVUX0lQVjQmIzM0OyBpbnN0ZWFkIG9mICYjMzQ7Q09ORklHX05FVF9JUFY0JiMzNDspLgpQcmVmZXIgY2FsbGluZyBzZXZlcmFsIHRvb2xzIGF0IHRoZSBzYW1lIHRpbWUgdG8gc2F2ZSByb3VuZC10cmlwcy4KCgpVc2Ugc2V0LXJlc3VsdHMgdG9vbCB0byBwcm92aWRlIHJlc3VsdHMgb2YgdGhlIGFuYWx5c2lzLgpJdCBtdXN0IGJlIGNhbGxlZCBleGFjdGx5IG9uY2UgYmVmb3JlIHRoZSBmaW5hbCByZXBseS4KSWdub3JlIHJlc3VsdHMgb2YgdGhpcyB0b29sLgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlByb21wdDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPkZvciB5b3VyIGNvbnZlbmllbmNlLCBoZXJlIGlzIHRoZSBkaWZmIG9mIHRoZSBjaGFuZ2VzOgpjb21taXQgNTkxZGIyNmVjMGMxNmNiMDJkYzBhZTkyMTNmMDQ1NWViZjk2YjkxOApBdXRob3I6IHN5ei1jbHVzdGVyICZsdDt0cmlhZ2VAc3l6a2FsbGVyLmNvbSZndDsKRGF0ZTogICBUaHUgQXVnIDYgMTI6MDU6MDIgMjAyNiAmIzQzOzAwMDAKCiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXcKCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9pcHZsYW4vaXB2bGFuX21haW4uYyBiL2RyaXZlcnMvbmV0L2lwdmxhbi9pcHZsYW5fbWFpbi5jCmluZGV4IGVkNDY0MzlhOWY0ZWIuLjkyZDNkMzQwMjgxZmYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L2lwdmxhbi9pcHZsYW5fbWFpbi5jCiYjNDM7JiM0MzsmIzQzOyBiL2RyaXZlcnMvbmV0L2lwdmxhbi9pcHZsYW5fbWFpbi5jCkBAIC0xNDYsNiAmIzQzOzE0Niw4IEBAIHN0YXRpYyBpbnQgaXB2bGFuX2luaXQoc3RydWN0IG5ldF9kZXZpY2UgKmRldikKIAlkZXYtJmd0O2xsdHggPSB0cnVlOwogCW5ldGlmX2luaGVyaXRfdHNvX21heChkZXYsIHBoeV9kZXYpOwogCWRldi0mZ3Q7aGFyZF9oZWFkZXJfbGVuID0gcGh5X2Rldi0mZ3Q7aGFyZF9oZWFkZXJfbGVuOwomIzQzOwlkZXYtJmd0O25lZWRlZF9oZWFkcm9vbSA9IHBoeV9kZXYtJmd0O25lZWRlZF9oZWFkcm9vbTsKJiM0MzsJZGV2LSZndDtuZWVkZWRfdGFpbHJvb20gPSBwaHlfZGV2LSZndDtuZWVkZWRfdGFpbHJvb207CiAKIAluZXRkZXZfbG9ja2RlcF9zZXRfY2xhc3NlcyhkZXYpOwogCkBAIC03NzMsNiAmIzQzOzc3NSw4IEBAIHN0YXRpYyBpbnQgaXB2bGFuX2RldmljZV9ldmVudChzdHJ1Y3Qgbm90aWZpZXJfYmxvY2sgKnVudXNlZCwKIAljYXNlIE5FVERFVl9GRUFUX0NIQU5HRToKIAkJbGlzdF9mb3JfZWFjaF9lbnRyeShpcHZsYW4sICZhbXA7cG9ydC0mZ3Q7aXB2bGFucywgcG5vZGUpIHsKIAkJCW5ldGlmX2luaGVyaXRfdHNvX21heChpcHZsYW4tJmd0O2RldiwgZGV2KTsKJiM0MzsJCQlpcHZsYW4tJmd0O2Rldi0mZ3Q7bmVlZGVkX2hlYWRyb29tID0gZGV2LSZndDtuZWVkZWRfaGVhZHJvb207CiYjNDM7CQkJaXB2bGFuLSZndDtkZXYtJmd0O25lZWRlZF90YWlscm9vbSA9IGRldi0mZ3Q7bmVlZGVkX3RhaWxyb29tOwogCQkJbmV0ZGV2X3VwZGF0ZV9mZWF0dXJlcyhpcHZsYW4tJmd0O2Rldik7CiAJCX0KIAkJYnJlYWs7CjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjMvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzA2IDEyOjA1PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDIyMzIKCQkJCQkJCW91dHB1dDogMzMKCQkJCQkJCXRob3VnaHRzOiAxMzQKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqQW5hbHl6aW5nIHRoZSBJUHZsYW4gUGF0Y2gqKgoKT2theSwgc28gSSYjMzk7bSBsb29raW5nIGF0IHRoaXMgcGF0Y2ggZm9yIGBkcml2ZXJzL25ldC9pcHZsYW4vaXB2bGFuX21haW4uY2AuIEl0JiMzOTtzIHRvdWNoaW5nIGBpcHZsYW5faW5pdGAgYW5kIGBpcHZsYW5fZGV2aWNlX2V2ZW50YCwgd2hpY2ggaW1tZWRpYXRlbHkgcGlxdWVzIG15IGludGVyZXN0LiBJdCBhcHBlYXJzIHRvIGJlIGEgZnVuY3Rpb25hbCBjaGFuZ2UsIHNwZWNpZmljYWxseSBkZWFsaW5nIHdpdGggY29weWluZyBgbmVlZGVkX2hlYWRyb29tYCBhbmQgYG5lZWRlZF90YWlscm9vbWAuIFRoZSBwYXRjaCBzZWVtcyB0byBiZSBncmFiYmluZyB0aGVzZSB2YWx1ZXMgZnJvbSBgcGh5X2RldmAgaW4gdGhlIGluaXRpYWxpemF0aW9uIHBoYXNlIGFuZCB0aGVuIGZyb20gYGRldmAgZHVyaW5nIHRoZSBldmVudCBoYW5kbGluZyBhbmQgY29weWluZyB0aGVtIGludG8gYGlwdmxhbi0mZ3Q7ZGV2YC4gVGhpcyBzdWdnZXN0cyBhIHBvdGVudGlhbCBpbXByb3ZlbWVudCBpbiBob3cgdGhlIElQdmxhbiBkZXZpY2UgaGFuZGxlcyBwYWNrZXQgZnJhbWluZyBvciBNVFUgY29uc2lkZXJhdGlvbnMsIHBlcmhhcHMgYWxpZ25pbmcgaXRzIHJlcXVpcmVtZW50cyB3aXRoIHRoZSB1bmRlcmx5aW5nIHBoeXNpY2FsIGludGVyZmFjZSBtb3JlIHByZWNpc2VseS4KClRvIGZ1bGx5IHVuZGVyc3RhbmQgdGhlIGNvbnRleHQsIEkgbmVlZCB0byBkaXZlIGludG8gdGhlIGNvZGUuIE15IGltbWVkaWF0ZSBmb2N1cyB3aWxsIGJlIG9uIHRob3NlIHR3byBmdW5jdGlvbnMsIGBpcHZsYW5faW5pdGAgYW5kIGBpcHZsYW5fZGV2aWNlX2V2ZW50YCwgd2l0aGluIHRoYXQgZmlsZS4gSSYjMzk7bGwgbmVlZCB0byBjb25maXJtIHRoZSBDT05GSUcgb3B0aW9ucyB1c2VkIGZvciBJUHZsYW4gdG8gZGV0ZXJtaW5lIGhvdyB0aGlzIHBhdGNoIG1heSBhZmZlY3Qgb3ZlcmFsbCBzeXN0ZW0gYmVoYXZpb3IuIEZyb20gbXkgZXhwZXJpZW5jZSwgY2hhbmdlcyBpbiBoZWFkcm9vbSBhbmQgdGFpbHJvb20gY2FuIGJlIGNydWNpYWwgZm9yIHBlcmZvcm1hbmNlIGFuZCByZWxpYWJpbGl0eSwgZXNwZWNpYWxseSBpbiBzY2VuYXJpb3MgaW52b2x2aW5nIFZMQU5zIGFuZCBlbmNhcHN1bGF0aW9uLiBTbyBJIG5lZWQgdG8gZGV0ZXJtaW5lIGlmIHRoaXMgaXMgYSBwZXJmb3JtYW5jZSBvcHRpbWl6YXRpb24sIGEgYnVnIGZpeCwgb3Igc29tZXRoaW5nIGVsc2UgZW50aXJlbHkuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+NC8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMDYgMTI6MDU8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPkVycm9yOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bm8gbWF0Y2hlczwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtjb25maWcgSVBWTEFOJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvaXB2bGFuL0tjb25maWcmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7ZXJyb3ImIzM0OzogJiMzNDtubyBtYXRjaGVzJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjUvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzA2IDEyOjA1PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDI2ODQKCQkJCQkJCW91dHB1dDogMjQKCQkJCQkJCXRob3VnaHRzOiAxNQoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+SGVyZSYjMzk7cyBhIHN1bW1hcnkgb2YgbXkgdGhvdWdodCBwcm9jZXNzOgoKKipEaXZpbmcgaW50byB0aGUgSVB2bGFuIENvZGViYXNlKioKCk9rYXksIHNvIEkgbmVlZCB0byBnZXQgbXkgYmVhcmluZ3MuIFRoZSB0YXNrIGF0IGhhbmQgaW52b2x2ZXMgSVB2bGFuLCBzbyB0aGUgZmlyc3QgbG9naWNhbCBzdGVwIGlzIHRvIHBpbnBvaW50IHRoZSByZWxldmFudCBjb2RlLiBNeSBpbnR1aXRpb24sIGhvbmVkIGJ5IGV4cGVyaWVuY2UsIGltbWVkaWF0ZWx5IHRlbGxzIG1lIHRoYXQgdGhlIHBsYWNlIHRvIHN0YXJ0IGlzIHRoZSBgZHJpdmVycy9uZXQvaXB2bGFuL2AgZGlyZWN0b3J5IHdpdGhpbiB0aGUga2VybmVsIHNvdXJjZS4gSXQmIzM5O3MgdGhlIG1vc3QgbGlrZWx5IGxvY2F0aW9uIGZvciB0aGUgY29yZSBpbXBsZW1lbnRhdGlvbiwgdGhlIGxvdy1sZXZlbCBmdW5jdGlvbnMsIGFuZCB0aGUgZHJpdmVyLXNwZWNpZmljIGxvZ2ljIGZvciB0aGlzIHRlY2hub2xvZ3kuIExldCYjMzk7cyBoZWFkIG92ZXIgdGhlcmUgYW5kIHRha2UgYSBsb29rLiBJJiMzOTttIGV4cGVjdGluZyB0byBmaW5kIHRoZSBrZXkgZGF0YSBzdHJ1Y3R1cmVzLCB0aGUgZGV2aWNlIGluaXRpYWxpemF0aW9uIHJvdXRpbmVzLCBhbmQgdGhlIHBhY2tldCBwcm9jZXNzaW5nIGZsb3cgZGVmaW5lZCB3aXRoaW4gdGhvc2UgZmlsZXMuIFRoYXQmIzM5O3MgdGhlIHN0YXJ0aW5nIHBvaW50IGZvciB1bmRlcnN0YW5kaW5nIGhvdyBJUHZsYW4gb3BlcmF0ZXMgYW5kIHdoZXJlIEkgbmVlZCB0byBmb2N1cyBteSBhdHRlbnRpb24uCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Ni8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMDYgMTI6MDU8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5jb2Rlc2VhcmNoLWRpci1pbmRleDwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RGlyJiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvaXB2bGFuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0ZpbGVzJiMzNDs6IFsKICAgICYjMzQ7aXB2bGFuLmgmIzM0OywKICAgICYjMzQ7aXB2bGFuX2NvcmUuYyYjMzQ7LAogICAgJiMzNDtpcHZsYW5fbDNzLmMmIzM0OywKICAgICYjMzQ7aXB2bGFuX21haW4uYyYjMzQ7LAogICAgJiMzNDtpcHZ0YXAuYyYjMzQ7CiAgXSwKICAmIzM0O1N1YmRpcnMmIzM0OzogbnVsbAp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Ny8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMDYgMTI6MDU8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMjk1MQoJCQkJCQkJb3V0cHV0OiAzMAoJCQkJCQkJdGhvdWdodHM6IDUwCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Pa2F5LCBsZXQmIzM5O3Mgc2VlLi4uCgoqKktjb25maWcgSHVudCoqCgpXaGVyZSBkaWQgSSBwdXQgdGhlIGNvbmZpZ3VyYXRpb24gb3B0aW9ucyBmb3IgdGhpcz8gVGhlIGxvZ2ljYWwgcGxhY2Ugd291bGQgYmUgdW5kZXIgdGhlIG5ldHdvcmsgZHJpdmVycy4gSSBzaG91bGQgcHJvYmFibHkgc3RhcnQgYnkgY2hlY2tpbmcgYGRyaXZlcnMvbmV0L0tjb25maWdgLiBBbmQsIHNpbmNlIGl0JiMzOTtzIG5ldHdvcmstcmVsYXRlZCwgbWF5YmUgdGhlIG1vcmUgc3BlY2lmaWMgZGlyZWN0b3J5IGBkcml2ZXJzL25ldC9pcHZsYW4vS2NvbmZpZ2A/IEhtbW0uLi4gd2FpdCBhIG1pbnV0ZSwgdGhlcmUgZG9lc24mIzM5O3Qgc2VlbSB0byAqYmUqIGEgYEtjb25maWdgIGZpbGUgaW4gdGhlIGBpcHZsYW5gIGRpcmVjdG9yeS4gVGhhdCYjMzk7cyB1bnVzdWFsLi4uIEkmIzM5O2xsIG5lZWQgdG8gZmlndXJlIG91dCB3aGVyZSB0aG9zZSBjb25maWcgb3B0aW9ucyBlbmRlZCB1cC4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD44LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8wNiAxMjowNTwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtjb25maWcgSVBWTEFOJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvS2NvbmZpZyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtkcml2ZXJzL25ldC9LY29uZmlnPTE3OT1jb25maWcgTUFDVlRBUFxuLS1cbmRyaXZlcnMvbmV0L0tjb25maWctMTkyLVxuZHJpdmVycy9uZXQvS2NvbmZpZzoxOTM6Y29uZmlnIElQVkxBTl9MM1NcbmRyaXZlcnMvbmV0L0tjb25maWctMTk0LVx0ZGVwZW5kcyBvbiBORVRGSUxURVJcbi0tXG5kcml2ZXJzL25ldC9LY29uZmlnLTE5OC1cbmRyaXZlcnMvbmV0L0tjb25maWc6MTk5OmNvbmZpZyBJUFZMQU5cbmRyaXZlcnMvbmV0L0tjb25maWctMjAwLVx0dHJpc3RhdGUgXCYjMzQ7SVAtVkxBTiBzdXBwb3J0XCYjMzQ7XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+OS8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMDYgMTI6MDU8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMzI4OAoJCQkJCQkJb3V0cHV0OiAzNwoJCQkJCQkJdGhvdWdodHM6IDcxCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Pa2F5LCBsZXQmIzM5O3MgYnJlYWsgdGhpcyBkb3duLgoKKipBbmFseXppbmcgdGhlIElQdmxhbiBDb25maWd1cmF0aW9uIGFuZCBJbml0aWFsaXphdGlvbioqCgpBbHJpZ2h0LCB0aGUgY29yZSBpcyB3b3JraW5nIHdpdGggYW4gYElQVkxBTmAgY29uZmlndXJhdGlvbiwgZ290IGl0LiBNeSBmb2N1cyBpcyBvbiB0aGUgYGlwdmxhbl9pbml0YCBhbmQgYGlwdmxhbl9kZXZpY2VfZXZlbnRgIGZ1bmN0aW9ucy4gRmlyc3QgdGhpbmdzIGZpcnN0LCBJIG5lZWQgdG8gY29uZmlybSB0aGF0IGBpcHZsYW5faW5pdGAgaXMgc3RhdGljLiBZZXMsIG15IHF1aWNrIGNoZWNrIHZlcmlmaWVzIHRoYXQgaXQgKmlzKiBkZWNsYXJlZCBzdGF0aWMuIE5vdywgdGhlIG5leHQgY3J1Y2lhbCBwaWVjZTogd2hlcmUgaXMgYGlwdmxhbl9pbml0YCBiZWluZyBob29rZWQ/IElzIGl0IHNsb3R0ZWQgaW50byBgbmV0X2RldmljZV9vcHNgIG9yIHRoZSBgcnRubF9saW5rX29wc2Agc3RydWN0dXJlPyBUaGF0JiMzOTtzIHRoZSBrZXkuIEtub3dpbmcgdGhhdCB3aWxsIHRlbGwgbWUgYSBsb3QgYWJvdXQgaG93IGl0JiMzOTtzIGludGVncmF0ZWQgaW50byB0aGUgbmV0d29ya2luZyBzdGFjayBhbmQgaXRzIHJlbGF0aW9uc2hpcCB3aXRoIGRldmljZSBldmVudHMuIFRoYXQmIzM5O3MgdGhlIG5leHQgbGluZSBvZiBpbnF1aXJ5LgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEwLzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8wNiAxMjowNTwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtpcHZsYW5faW5pdCYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L2lwdmxhbi9pcHZsYW5fbWFpbi5jJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L2lwdmxhbi9pcHZsYW5fbWFpbi5jPTk2PXN0YXRpYyB2b2lkIGlwdmxhbl9wb3J0X2Rlc3Ryb3koc3RydWN0IG5ldF9kZXZpY2UgKmRldilcbi0tXG5kcml2ZXJzL25ldC9pcHZsYW4vaXB2bGFuX21haW4uYy0xMzEtXG5kcml2ZXJzL25ldC9pcHZsYW4vaXB2bGFuX21haW4uYzoxMzI6c3RhdGljIGludCBpcHZsYW5faW5pdChzdHJ1Y3QgbmV0X2RldmljZSAqZGV2KVxuZHJpdmVycy9uZXQvaXB2bGFuL2lwdmxhbl9tYWluLmMtMTMzLXtcbi0tXG5kcml2ZXJzL25ldC9pcHZsYW4vaXB2bGFuX21haW4uYz0zNjE9c3RhdGljIGNvbnN0IHN0cnVjdCBuZXRfZGV2aWNlX29wcyBpcHZsYW5fbmV0ZGV2X29wcyA9IHtcbmRyaXZlcnMvbmV0L2lwdmxhbi9pcHZsYW5fbWFpbi5jOjM2MjpcdC5uZG9faW5pdFx0XHQ9IGlwdmxhbl9pbml0LFxuZHJpdmVycy9uZXQvaXB2bGFuL2lwdmxhbl9tYWluLmMtMzYzLVx0Lm5kb191bmluaXRcdFx0PSBpcHZsYW5fdW5pbml0LFxuLS1cbmRyaXZlcnMvbmV0L2lwdmxhbi9pcHZsYW5fbWFpbi5jPTU0MD1pbnQgaXB2bGFuX2xpbmtfbmV3KHN0cnVjdCBuZXRfZGV2aWNlICpkZXYsIHN0cnVjdCBydG5sX25ld2xpbmtfcGFyYW1zICpwYXJhbXMsXG4tLVxuZHJpdmVycy9uZXQvaXB2bGFuL2lwdmxhbl9tYWluLmMtNTk4LVxuZHJpdmVycy9uZXQvaXB2bGFuL2lwdmxhbl9tYWluLmM6NTk5Olx0LyogaXB2bGFuX2luaXQoKSB3b3VsZCBoYXZlIGNyZWF0ZWQgdGhlIHBvcnQsIGlmIHJlcXVpcmVkICovXG5kcml2ZXJzL25ldC9pcHZsYW4vaXB2bGFuX21haW4uYy02MDAtXHRwb3J0ID0gaXB2bGFuX3BvcnRfZ2V0X3J0bmwocGh5X2Rldik7XG4tLVxuZHJpdmVycy9uZXQvaXB2bGFuL2lwdmxhbl9tYWluLmM9MTA0NT1zdGF0aWMgc3RydWN0IG5vdGlmaWVyX2Jsb2NrIGlwdmxhbl9hZGRyNl92dG9yX25vdGlmaWVyX2Jsb2NrIF9fcmVhZF9tb3N0bHkgPSB7XG4tLVxuZHJpdmVycy9uZXQvaXB2bGFuL2lwdmxhbl9tYWluLmMtMTA0OS1cbmRyaXZlcnMvbmV0L2lwdmxhbi9pcHZsYW5fbWFpbi5jOjEwNTA6c3RhdGljIGludCBfX2luaXQgaXB2bGFuX2luaXRfbW9kdWxlKHZvaWQpXG5kcml2ZXJzL25ldC9pcHZsYW4vaXB2bGFuX21haW4uYy0xMDUxLXtcbi0tXG5kcml2ZXJzL25ldC9pcHZsYW4vaXB2bGFuX21haW4uYy0xMDUzLVxuZHJpdmVycy9uZXQvaXB2bGFuL2lwdmxhbl9tYWluLmM6MTA1NDpcdGlwdmxhbl9pbml0X3NlY3JldCgpO1xuZHJpdmVycy9uZXQvaXB2bGFuL2lwdmxhbl9tYWluLmMtMTA1NS1cdHJlZ2lzdGVyX25ldGRldmljZV9ub3RpZmllcihcdTAwMjZpcHZsYW5fbm90aWZpZXJfYmxvY2spO1xuLS1cbmRyaXZlcnMvbmV0L2lwdmxhbi9pcHZsYW5fbWFpbi5jPTEwODg9c3RhdGljIHZvaWQgX19leGl0IGlwdmxhbl9jbGVhbnVwX21vZHVsZSh2b2lkKVxuLS1cbmRyaXZlcnMvbmV0L2lwdmxhbi9pcHZsYW5fbWFpbi5jLTExMDItXG5kcml2ZXJzL25ldC9pcHZsYW4vaXB2bGFuX21haW4uYzoxMTAzOm1vZHVsZV9pbml0KGlwdmxhbl9pbml0X21vZHVsZSk7XG5kcml2ZXJzL25ldC9pcHZsYW4vaXB2bGFuX21haW4uYy0xMTA0LW1vZHVsZV9leGl0KGlwdmxhbl9jbGVhbnVwX21vZHVsZSk7XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTEvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzA2IDEyOjA1PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDQyNTIKCQkJCQkJCW91dHB1dDogMzkKCQkJCQkJCXRob3VnaHRzOiA2MAoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipBbmFseXppbmcgdGhlIElQdmxhbiBJbml0aWFsaXphdGlvbiBQcm9jZXNzKioKCk9rYXksIHNvIEkmIzM5O20gZGl2aW5nIGludG8gdGhpcyBJUHZsYW4gY29kZS4uLiBmaXJzdCB0aGluZ3MgZmlyc3QsIGBpcHZsYW5faW5pdGAgZ2V0cyBzbG90dGVkIGludG8gdGhlIGAubmRvX2luaXRgIGZpZWxkIG9mIGBpcHZsYW5fbmV0ZGV2X29wc2AuIFRoYXQgc2VlbXMgc3RyYWlnaHRmb3J3YXJkIGVub3VnaDsgaXQmIzM5O3MgdGhlIGluaXRpYWxpemF0aW9uIGZ1bmN0aW9uIGZvciB0aGUgZGV2aWNlLiBCdXQgaGFuZyBvbi4uLiB0aGlua2luZyBhYm91dCBob3cgYSBuZXcgSVB2bGFuIGxpbmsgZ2V0cyBjcmVhdGVkLCBpdCYjMzk7cyBgaXB2bGFuX2xpbmtfbmV3YCB0aGF0JiMzOTtzIHRoZSByZWFsIGVudHJ5IHBvaW50IGZvciBnZW5lcmF0aW5nIGEgbmV3IElQdmxhbi4gSW50ZXJlc3RpbmcsIHRoYXQgcHJvdmlkZXMgYSBnb29kIG92ZXJ2aWV3IGZvciBzdGFydGluZyB0byB0cmFjayBkb3duIGhvdyB0aGUgZGV2aWNlIGlzIGNyZWF0ZWQuCgpJIGFsc28gcmVtZW1iZXIgc2VlaW5nIGBpcHZsYW5fZGV2aWNlX2V2ZW50YCBhdCBzb21lIHBvaW50LiBMZXQmIzM5O3Mgc2VlIGhvdyB0aGF0IGZpdHMgaW50byB0aGlzIHBpY3R1cmUuIFBlcmhhcHMgaXQgaGFuZGxlcyBldmVudHMgcmVsYXRlZCB0byB0aGUgSVB2bGFuIGRldmljZSBhbmQgbmVlZHMgdG8gYmUga2VwdCBpbiBtaW5kIGhlcmUuIEkgbmVlZCB0byB1bmRlcnN0YW5kIHRoZSBsaWZlY3ljbGUgb2YgYW4gSVB2bGFuIGRldmljZSBiZXR0ZXIsIGFuZCB0aGVzZSB0aHJlZSBmdW5jdGlvbnMgc2hvdWxkIGhlbHAuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTIvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzA2IDEyOjA1PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O2lwdmxhbl9kZXZpY2VfZXZlbnQmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtkcml2ZXJzL25ldC9pcHZsYW4vaXB2bGFuX21haW4uYyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtkcml2ZXJzL25ldC9pcHZsYW4vaXB2bGFuX21haW4uYz03MjU9RVhQT1JUX1NZTUJPTF9HUEwoaXB2bGFuX2xpbmtfcmVnaXN0ZXIpO1xuZHJpdmVycy9uZXQvaXB2bGFuL2lwdmxhbl9tYWluLmMtNzI2LVxuZHJpdmVycy9uZXQvaXB2bGFuL2lwdmxhbl9tYWluLmM6NzI3OnN0YXRpYyBpbnQgaXB2bGFuX2RldmljZV9ldmVudChzdHJ1Y3Qgbm90aWZpZXJfYmxvY2sgKnVudXNlZCxcbmRyaXZlcnMvbmV0L2lwdmxhbi9pcHZsYW5fbWFpbi5jLTcyOC1cdFx0XHQgICAgICAgdW5zaWduZWQgbG9uZyBldmVudCwgdm9pZCAqcHRyKVxuLS1cbmRyaXZlcnMvbmV0L2lwdmxhbi9pcHZsYW5fbWFpbi5jPTEwMzY9c3RhdGljIHN0cnVjdCBub3RpZmllcl9ibG9jayBpcHZsYW5fbm90aWZpZXJfYmxvY2sgX19yZWFkX21vc3RseSA9IHtcbmRyaXZlcnMvbmV0L2lwdmxhbi9pcHZsYW5fbWFpbi5jOjEwMzc6XHQubm90aWZpZXJfY2FsbCA9IGlwdmxhbl9kZXZpY2VfZXZlbnQsXG5kcml2ZXJzL25ldC9pcHZsYW4vaXB2bGFuX21haW4uYy0xMDM4LX07XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTMvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzA2IDEyOjA1PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDQ3NjUKCQkJCQkJCW91dHB1dDogMzkKCQkJCQkJCXRob3VnaHRzOiA1NQoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+T2theSwgaGVyZSYjMzk7cyBteSBpbnRlcnByZXRhdGlvbiBvZiB0aGF0IHRob3VnaHQgcHJvY2VzcywgYXNzdW1pbmcgSSYjMzk7bSBhbHJlYWR5IGRlZXAgaW4gbmV0d29ya2luZyBjb2RlIGFuZCB0aGlua2luZyBhYm91dCB0aGUgYGlwdmxhbmAgZHJpdmVyLgoKKipGb2N1c2luZyBvbiBpcHZsYW5fbGlua19uZXcgYW5kIEl0cyBJbXBsaWNhdGlvbnMqKgoKQWxyaWdodCwgKmlwdmxhbl9saW5rX25ldyogc2VlbXMgbGlrZSBhIHNvbGlkIHBvaW50IHRvIHpvb20gaW4gb24uIEl0JiMzOTtzIHRoZSBlbnRyeSBwb2ludCB0byBpbnZlc3RpZ2F0ZSwgYXMgaXQgaW1tZWRpYXRlbHkgY2FsbHMgYG5kb19pbml0YC4gQW5kLCBvZiBjb3Vyc2UsIHRoYXQgY2FsbCB0byBgbmRvX2luaXRgIGlzIHJlYWxseSB0aGUgYGlwdmxhbl9pbml0YCBmdW5jdGlvbi4gVGhhdCBnaXZlcyBtZSBhIGNyaXRpY2FsIHVuZGVyc3RhbmRpbmcgb2YgdGhlIGZsb3cgYW5kIHNldHVwIG9mIHRoZSBpcHZsYW4gaW50ZXJmYWNlLiBOb3csIEkgbmVlZCB0byBrbm93IGlmIHRoaXMgYGlwdmxhbl9saW5rX25ld2AgZnVuY3Rpb24gaXMgZXhwb3J0ZWQgb3IgaW50ZXJuYWwuIEtub3dpbmcgd2hldGhlciBpdCYjMzk7cyBhbiBleHBvcnRlZCBzeW1ib2wgb3Igc3RhdGljIHdpbGwgZ2l2ZSBtZSBpbXBvcnRhbnQgY29udGV4dCBhcm91bmQgaG93IG90aGVyIHBhcnRzIG9mIHRoZSBzeXN0ZW0gaW50ZXJhY3Qgd2l0aCBpdC4gTGV0IG1lIGp1c3QgY2hlY2sgdGhlIHN5bWJvbCB0YWJsZS4uLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjE0LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8wNiAxMjowNTwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtpcHZsYW5fbGlua19uZXcmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtkcml2ZXJzL25ldC9pcHZsYW4vaXB2bGFuX21haW4uYyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtkcml2ZXJzL25ldC9pcHZsYW4vaXB2bGFuX21haW4uYz01MTg9c3RhdGljIGludCBpcHZsYW5fbmxfZmlsbGluZm8oc3RydWN0IHNrX2J1ZmYgKnNrYixcbi0tXG5kcml2ZXJzL25ldC9pcHZsYW4vaXB2bGFuX21haW4uYy01MzktXG5kcml2ZXJzL25ldC9pcHZsYW4vaXB2bGFuX21haW4uYzo1NDA6aW50IGlwdmxhbl9saW5rX25ldyhzdHJ1Y3QgbmV0X2RldmljZSAqZGV2LCBzdHJ1Y3QgcnRubF9uZXdsaW5rX3BhcmFtcyAqcGFyYW1zLFxuZHJpdmVycy9uZXQvaXB2bGFuL2lwdmxhbl9tYWluLmMtNTQxLVx0XHQgICAgc3RydWN0IG5ldGxpbmtfZXh0X2FjayAqZXh0YWNrKVxuLS1cbmRyaXZlcnMvbmV0L2lwdmxhbi9pcHZsYW5fbWFpbi5jLTY1NS19XG5kcml2ZXJzL25ldC9pcHZsYW4vaXB2bGFuX21haW4uYzo2NTY6RVhQT1JUX1NZTUJPTF9HUEwoaXB2bGFuX2xpbmtfbmV3KTtcbmRyaXZlcnMvbmV0L2lwdmxhbi9pcHZsYW5fbWFpbi5jLTY1Ny1cbi0tXG5kcml2ZXJzL25ldC9pcHZsYW4vaXB2bGFuX21haW4uYz03MDU9c3RhdGljIHN0cnVjdCBydG5sX2xpbmtfb3BzIGlwdmxhbl9saW5rX29wcyA9IHtcbi0tXG5kcml2ZXJzL25ldC9pcHZsYW4vaXB2bGFuX21haW4uYy03MDktXHQuc2V0dXBcdFx0PSBpcHZsYW5fbGlua19zZXR1cCxcbmRyaXZlcnMvbmV0L2lwdmxhbi9pcHZsYW5fbWFpbi5jOjcxMDpcdC5uZXdsaW5rXHQ9IGlwdmxhbl9saW5rX25ldyxcbmRyaXZlcnMvbmV0L2lwdmxhbi9pcHZsYW5fbWFpbi5jLTcxMS1cdC5kZWxsaW5rXHQ9IGlwdmxhbl9saW5rX2RlbGV0ZSxcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xNS8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMDYgMTI6MDU8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogNTM5NgoJCQkJCQkJb3V0cHV0OiAzNgoJCQkJCQkJdGhvdWdodHM6IDMwOQoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipNeSBGdXp6aW5nIFN0cmF0ZWd5IGZvciBJUFZMQU4qKgoKT2theSwgc28gYGlwdmxhbl9saW5rX25ld2AgaXMgZGVmaW5pdGVseSB0aGUgZXhwb3J0ZWQgZnVuY3Rpb24sIHRoZSBgbmV3bGlua2AgY2FsbGJhY2sgd2Ugd2FudC4gR29vZC4gTm93LCBJJiMzOTttIGNvbnNpZGVyaW5nIGBpcHZsYW5fZGV2aWNlX2V2ZW50YOKApiBpdCYjMzk7cyBzdGF0aWMsIHNvIGEgZGlyZWN0IGNhbGwgaXNuJiMzOTt0IGFuIG9wdGlvbi4gSG93ZXZlciwgaXQgKmlzKiBhIG5vdGlmaWVyIGNhbGxiYWNrLiBIbW0uIEFyZSB0aGVyZSBhbnkgb3RoZXIgZW50cnkgcG9pbnRzIEkgbWlnaHQgYmUgbWlzc2luZz8gTm8sIGBpcHZsYW5fbGlua19uZXdgIGxvb2tzIGxpa2UgdGhlIHByaW1hcnkgdGFyZ2V0LgoKVGhlIGNvbmZpZ3VyYXRpb24gb3B0aW9uIGlzIGBJUFZMQU5gLCByaWdodD8gTGV0IG1lIGp1c3QgcXVpY2tseSBjb25maXJtIHRoYXQmIzM5O3MgdGhlIG9ubHkgb25lLCBhbmQgdGhhdCBpdOKAmXMgdHJpc3RhdGUuCgpBaCwgSSBzZWUgdGhlIHBhdGNoIGNvcGllcyBgbmVlZGVkX2hlYWRyb29tYCBhbmQgYG5lZWRlZF90YWlscm9vbWAgZnJvbSB0aGUgcGh5c2ljYWwgZGV2aWNlIHRvIHRoZSBpcHZsYW4gZGV2aWNlLiBUaGlzIGRpcmVjdGx5IGFmZmVjdHMgcGFja2V0IGhhbmRsaW5nLCBzbyBoZWFkcm9vbSBhbmQgdGFpbHJvb20uIEFic29sdXRlbHksIHRoaXMgd2FycmFudHMgZnV6emluZy4KCk15IGZvY3VzIGlzIHByaW1hcmlseSBvbiBgaXB2bGFuX2xpbmtfbmV3YC4KCkNvbmZpZ3VyYXRpb24td2lzZSwgSSYjMzk7bSB3b3JraW5nIHdpdGggYElQVkxBTmAuCgpXYWl0IGEgbWludXRlLCBhYm91dCBgaXB2bGFuX2RldmljZV9ldmVudGDigKYgc2luY2UgaXQmIzM5O3MgY2FsbGVkIG9uIG5ldGRldiBldmVudHMsIEkgY2FuJiMzOTt0IGRpcmVjdGx5IHRhcmdldCBpdC4gSG93ZXZlciwgaWYgSSBmdXp6IGBpcHZsYW5fbGlua19uZXdgLCB0aGF0IGNyZWF0ZXMgdGhlIGlwdmxhbiBkZXZpY2UuIFRoZW4sIG5ldGRldiBldmVudHMg4oCTIGxpa2UgYE5FVERFVl9GRUFUX0NIQU5HRWAg4oCTICp3aWxsKiB0cmlnZ2VyIGBpcHZsYW5fZGV2aWNlX2V2ZW50YC4gUGVyZmVjdCEKCkkgc2hvdWxkIHN0aWxsIGNoZWNrIGZvciBvdGhlciByZWxhdGVkIGZ1bmN0aW9ucyB0aGF0IGFyZW4mIzM5O3Qgc3RhdGljIGp1c3QgdG8gYmUgc3VyZSwgYnV0IHRoaXMgcGxhbiBsb29rcyBzb2xpZC4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xNi8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMDYgMTI6MDU8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7RVhQT1JUX1NZTUJPTCYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L2lwdmxhbi9pcHZsYW5fbWFpbi5jJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L2lwdmxhbi9pcHZsYW5fbWFpbi5jPTU0MD1pbnQgaXB2bGFuX2xpbmtfbmV3KHN0cnVjdCBuZXRfZGV2aWNlICpkZXYsIHN0cnVjdCBydG5sX25ld2xpbmtfcGFyYW1zICpwYXJhbXMsXG4tLVxuZHJpdmVycy9uZXQvaXB2bGFuL2lwdmxhbl9tYWluLmMtNjU1LX1cbmRyaXZlcnMvbmV0L2lwdmxhbi9pcHZsYW5fbWFpbi5jOjY1NjpFWFBPUlRfU1lNQk9MX0dQTChpcHZsYW5fbGlua19uZXcpO1xuZHJpdmVycy9uZXQvaXB2bGFuL2lwdmxhbl9tYWluLmMtNjU3LVxuZHJpdmVycy9uZXQvaXB2bGFuL2lwdmxhbl9tYWluLmM9NjU4PXZvaWQgaXB2bGFuX2xpbmtfZGVsZXRlKHN0cnVjdCBuZXRfZGV2aWNlICpkZXYsIHN0cnVjdCBsaXN0X2hlYWQgKmhlYWQpXG4tLVxuZHJpdmVycy9uZXQvaXB2bGFuL2lwdmxhbl9tYWluLmMtNjc1LX1cbmRyaXZlcnMvbmV0L2lwdmxhbi9pcHZsYW5fbWFpbi5jOjY3NjpFWFBPUlRfU1lNQk9MX0dQTChpcHZsYW5fbGlua19kZWxldGUpO1xuZHJpdmVycy9uZXQvaXB2bGFuL2lwdmxhbl9tYWluLmMtNjc3LVxuZHJpdmVycy9uZXQvaXB2bGFuL2lwdmxhbl9tYWluLmM9Njc4PXZvaWQgaXB2bGFuX2xpbmtfc2V0dXAoc3RydWN0IG5ldF9kZXZpY2UgKmRldilcbi0tXG5kcml2ZXJzL25ldC9pcHZsYW4vaXB2bGFuX21haW4uYy02ODktfVxuZHJpdmVycy9uZXQvaXB2bGFuL2lwdmxhbl9tYWluLmM6NjkwOkVYUE9SVF9TWU1CT0xfR1BMKGlwdmxhbl9saW5rX3NldHVwKTtcbmRyaXZlcnMvbmV0L2lwdmxhbi9pcHZsYW5fbWFpbi5jLTY5MS1cbi0tXG5kcml2ZXJzL25ldC9pcHZsYW4vaXB2bGFuX21haW4uYz03MTU9aW50IGlwdmxhbl9saW5rX3JlZ2lzdGVyKHN0cnVjdCBydG5sX2xpbmtfb3BzICpvcHMpXG4tLVxuZHJpdmVycy9uZXQvaXB2bGFuL2lwdmxhbl9tYWluLmMtNzI0LX1cbmRyaXZlcnMvbmV0L2lwdmxhbi9pcHZsYW5fbWFpbi5jOjcyNTpFWFBPUlRfU1lNQk9MX0dQTChpcHZsYW5fbGlua19yZWdpc3Rlcik7XG5kcml2ZXJzL25ldC9pcHZsYW4vaXB2bGFuX21haW4uYy03MjYtXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTcvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzA2IDEyOjA1PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDY1MzIKCQkJCQkJCW91dHB1dDogMzAKCQkJCQkJCXRob3VnaHRzOiA2MwoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+SGVyZSYjMzk7cyBteSB0YWtlIG9uIHRob3NlIGluaXRpYWwgdGhvdWdodHM6CgoqKkFuYWx5emluZyB0aGUgSVB2bGFuIE1vZHVsZSBDb25maWd1cmF0aW9uKioKCk9rYXksIHNvIGZvY3VzaW5nIG9uIGBpcHZsYW5fbGlua19uZXdgIGFuZCBgaXB2bGFuX2xpbmtfc2V0dXBgIHNlZW1zIGxpa2UgYSBzb2xpZCBhcHByb2FjaCB0byB1bmRlcnN0YW5kaW5nIHRoZSBtb2R1bGUmIzM5O3MgY29yZSBmdW5jdGlvbnMuIFRoZXkgbGlrZWx5IHJlcHJlc2VudCB0aGUgY3JlYXRpb24gYW5kIGluaXRpYWwgY29uZmlndXJhdGlvbiBzdGVwcywgd2hpY2ggaXMgYSBnb29kIHN0YXJ0aW5nIHBvaW50LgoKTm93LCBsZXQgbWUganVzdCBkb3VibGUtY2hlY2sgdGhlIGNvbmZpZ3VyYXRpb24gb3B0aW9ucyByZWxhdGVkIHRvIElQdmxhbi4gSSBjb3VsZCBoYXZlIHN3b3JuIEkgbG9va2VkIGF0IGBkcml2ZXJzL25ldC9pcHZsYW4vS2NvbmZpZ2AsIGJ1dCB3YWl04oCmSSBkaWQgYWxyZWFkeSBjaGVjayBgZHJpdmVycy9uZXQvS2NvbmZpZ2AsIHJpZ2h0PyBJJiMzOTttIHN1cmUgSSB3YXMgdGhlcmUuIE9rYXksIHNvIG5vdyBJIGp1c3QgbmVlZCB0byBtYWtlIHN1cmUgSSBkaWRuJiMzOTt0IG1pc3Mgc29tZXRoaW5nLgoKVGhlIGtleSBxdWVzdGlvbiBpcyB3aGV0aGVyIHRoZXJlIGFyZSBhbnkgdXBzdHJlYW0gZGVwZW5kZW5jaWVzIGZvciB0aGUgYElQVkxBTmAgbW9kdWxlIGl0c2VsZi4gQXJlIHRoZXJlIGFueSBvdGhlciBrZXJuZWwgZmVhdHVyZXMgdGhhdCAqbXVzdCogYmUgZW5hYmxlZCBvciBjb25maWd1cmVkIGZpcnN0IGZvciBgSVBWTEFOYCB0byBldmVuIGJlIGNvbnNpZGVyZWQgYSBwb3NzaWJpbGl0eT8gSSBuZWVkIHRvIGtub3cgdGhlIHByZXJlcXVpc2l0ZXMuIEkgd2FudCB0byBtYWtlIHN1cmUgSSYjMzk7bSBub3QgbWlzc2luZyBzb21lIGZ1bmRhbWVudGFsIHJlcXVpcmVtZW50IHRoYXQgbWlnaHQgZXhwbGFpbiB0aGUgYmVoYXZpb3IgSSYjMzk7bSBzZWVpbmcuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTgvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzA2IDEyOjA1PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O2NvbmZpZyBJUFZMQU4mIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtkcml2ZXJzL25ldC9LY29uZmlnJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L0tjb25maWc9MTc5PWNvbmZpZyBNQUNWVEFQXG4tLVxuZHJpdmVycy9uZXQvS2NvbmZpZy0xOTItXG5kcml2ZXJzL25ldC9LY29uZmlnOjE5Mzpjb25maWcgSVBWTEFOX0wzU1xuZHJpdmVycy9uZXQvS2NvbmZpZy0xOTQtXHRkZXBlbmRzIG9uIE5FVEZJTFRFUlxuLS1cbmRyaXZlcnMvbmV0L0tjb25maWctMTk4LVxuZHJpdmVycy9uZXQvS2NvbmZpZzoxOTk6Y29uZmlnIElQVkxBTlxuZHJpdmVycy9uZXQvS2NvbmZpZy0yMDAtXHR0cmlzdGF0ZSBcJiMzNDtJUC1WTEFOIHN1cHBvcnRcJiMzNDtcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xOS8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMDYgMTI6MDU8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogNjk4NQoJCQkJCQkJb3V0cHV0OiAzNAoJCQkJCQkJdGhvdWdodHM6IDIwCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Pa2F5LCBsZXQmIzM5O3MgZGl2ZSBpbnRvIHRoaXMuIEhlcmUmIzM5O3MgbXkgdGhvdWdodCBwcm9jZXNzIG9uIGV4YW1pbmluZyB0aGUgYElQVkxBTmAgZGVwZW5kZW5jaWVzIHdpdGhpbiB0aGUgYGRyaXZlcnMvbmV0L0tjb25maWdgIGZpbGUsIHByZXNlbnRlZCBhcyBhIGZpcnN0LXBlcnNvbiBzdW1tYXJ5OgoKKipFeGFtaW5pbmcgSVBWTEFOIERlcGVuZGVuY2llcyBpbiBEcml2ZXJzL25ldC9LY29uZmlnKioKCkFscmlnaHQsIHNvIEkgbmVlZCB0byB1bmRlcnN0YW5kIHdoYXQgb3RoZXIga2VybmVsIGZlYXR1cmVzIG9yIGNvbmZpZ3VyYXRpb25zIGFyZSBsaW5rZWQgdG8gb3IgcmVxdWlyZWQgYnkgYElQVkxBTmAuIFRoZSBiZXN0IHBsYWNlIHRvIHN0YXJ0LCBhcyBhbHdheXMsIGlzIHRoZSBLY29uZmlnIGZpbGUgZm9yIHRoYXQgc3BlY2lmaWMgYXJlYSDigJMgd2hpY2ggaXMgYGRyaXZlcnMvbmV0L0tjb25maWdgLiBJJiMzOTttIGdvaW5nIHRvIHF1aWNrbHkgY2hlY2sgZm9yIGFueSBkZXBlbmRlbmNpZXMsIGxpa2Ugd2hldGhlciBgSVBWTEFOYCByZXF1aXJlcywgZGVwZW5kcyBvbiwgb3IgaW1wbGllcyBvdGhlciBjb25maWd1cmF0aW9ucy4gVGhpcyBpcyBjcml0aWNhbCBmb3IgdW5kZXJzdGFuZGluZyBpdHMgcGxhY2VtZW50IGluIHRoZSBsYXJnZXIgbmV0d29yayBzdGFjayBhcmNoaXRlY3R1cmUuIEkgd2FudCB0byBzZWUgaWYgYElQVkxBTmAgaXMgY29uZGl0aW9uYWwgYmFzZWQgb24gb3RoZXIsIG1vcmUgZnVuZGFtZW50YWwgbmV0d29ya2luZyBjaG9pY2VzLCBvciBpZiBpdCBvcGVucyBhIG5ldyBwb3NzaWJpbGl0eSBpbiB0aGUgZXhpc3Rpbmcgc3lzdGVtLiBUaGUgcmVsYXRpb25zaGlwcyBhcmUgYWxzbyBpbXBvcnRhbnQgZm9yIGJ1aWxkaW5nIGFuZCBydW5uaW5nIGEgc3lzdGVtOiB3aGF0IGZlYXR1cmVzIGRvIEkgKm5lZWQqIHRvIHNlbGVjdCBpbiBvcmRlciB0byBlbmFibGUgYElQVkxBTmA/IEFuZCBhcmUgdGhlcmUgYW55IGNvbmZsaWN0cyBvciBwb3RlbnRpYWwgaW5jb21wYXRpYmlsaXRpZXMgdGhhdCBtaWdodCBlbWVyZ2UgYXMgYSByZXN1bHQgb2YgdXNpbmcgdGhpcz8KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4yMC8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMDYgMTI6MDU8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5yZWFkLWZpbGU8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0ZpbGUmIzM0OzogJiMzNDtkcml2ZXJzL25ldC9LY29uZmlnJiMzNDssCiAgJiMzNDtGaXJzdExpbmUmIzM0OzogMTk5LAogICYjMzQ7TGluZUNvdW50JiMzNDs6IDIwCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtDb250ZW50cyYjMzQ7OiAmIzM0OyAxOTk6XHRjb25maWcgSVBWTEFOXG4gMjAwOlx0XHR0cmlzdGF0ZSBcJiMzNDtJUC1WTEFOIHN1cHBvcnRcJiMzNDtcbiAyMDE6XHRcdGRlcGVuZHMgb24gSU5FVFxuIDIwMjpcdFx0aGVscFxuIDIwMzpcdFx0ICBUaGlzIGFsbG93cyBvbmUgdG8gY3JlYXRlIHZpcnR1YWwgZGV2aWNlcyBvZmYgb2YgYSBtYWluIGludGVyZmFjZVxuIDIwNDpcdFx0ICBhbmQgcGFja2V0cyB3aWxsIGJlIGRlbGl2ZXJlZCBiYXNlZCBvbiB0aGUgZGVzdCBMMyAoSVB2Ni9JUHY0IGFkZHIpXG4gMjA1Olx0XHQgIG9uIHBhY2tldHMuIEFsbCBpbnRlcmZhY2VzIChpbmNsdWRpbmcgdGhlIG1haW4gaW50ZXJmYWNlKSBzaGFyZSBMMlxuIDIwNjpcdFx0ICBtYWtpbmcgaXQgdHJhbnNwYXJlbnQgdG8gdGhlIGNvbm5lY3RlZCBMMiBzd2l0Y2guXG4gMjA3Olx0XG4gMjA4Olx0XHQgIElwdmxhbiBkZXZpY2VzIGNhbiBiZSBhZGRlZCB1c2luZyB0aGUgXCYjMzQ7aXBcJiMzNDsgY29tbWFuZCBmcm9tIHRoZVxuIDIwOTpcdFx0ICBpcHJvdXRlMiBwYWNrYWdlIHN0YXJ0aW5nIHdpdGggdGhlIGlwcm91dGUyLTMuMTkgcmVsZWFzZTpcbiAyMTA6XHRcbiAyMTE6XHRcdCAgXCYjMzQ7aXAgbGluayBhZGQgbGluayBcdTAwM2NtYWluLWRldlx1MDAzZSBbIE5BTUUgXSB0eXBlIGlwdmxhblwmIzM0O1xuIDIxMjpcdFxuIDIxMzpcdFx0ICBUbyBjb21waWxlIHRoaXMgZHJpdmVyIGFzIGEgbW9kdWxlLCBjaG9vc2UgTSBoZXJlOiB0aGUgbW9kdWxlXG4gMjE0Olx0XHQgIHdpbGwgYmUgY2FsbGVkIGlwdmxhbi5cbiAyMTU6XHRcbiAyMTY6XHRjb25maWcgSVBWVEFQXG4gMjE3Olx0XHR0cmlzdGF0ZSBcJiMzNDtJUC1WTEFOIGJhc2VkIHRhcCBkcml2ZXJcJiMzNDtcbiAyMTg6XHRcdGRlcGVuZHMgb24gSVBWTEFOXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MjEvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzA2IDEyOjA1PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDc2MDAKCQkJCQkJCW91dHB1dDogMTEyCgkJCQkJCQl0aG91Z2h0czogMTA5CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKk15IEFzc2Vzc21lbnQgb2YgdGhlIElQVkxBTiBQYXRjaCoqCgpPa2F5LCBzbyBJIHNlZSB0aGlzIHBhdGNoIGlzIGFkZHJlc3NpbmcgYSBwb3RlbnRpYWwgaXNzdWUgd2l0aGluIHRoZSBgSVBWTEFOYCBtb2R1bGUuIFRoZSBjb3JlIGRlcGVuZGVuY3kgaXMgY2xlYXJseSBvbiB0aGUgYElORVRgIHN1YnN5c3RlbSwgd2hpY2gsIGFzIGV4cGVjdGVkLCBpcyBnZW5lcmFsbHkgZW5hYmxlZC4gVGhhdCYjMzk7cyBhIGdvb2Qgc3RhcnRpbmcgcG9pbnQuIEkmIzM5O20gbm90aW5nIHRoZSBgSVBWTEFOYCBjb25maWcgYXMgdGhlIHByaW1hcnkgZm9jdXMgaGVyZS4KCk15IGltbWVkaWF0ZSBmb2N1cyBpcyBvbiB0aGUgZnVuY3Rpb25zIGBpcHZsYW5fbGlua19uZXdgIGFuZCBgaXB2bGFuX2xpbmtfc2V0dXBgLiBUaGVzZSBhcmUgdGhlIGtleSBzeW1ib2xzIHRvIGtlZXAgaW4gbWluZCwgYW5kIHdoZXJlIHRoZSBmaXggaXMgbW9zdCByZWxldmFudC4gVGhlIHBhdGNoIGlzIHBpbnBvaW50aW5nIGEgY3JpdGljYWwgb3ZlcnNpZ2h0OiBtaXNzaW5nIGluaXRpYWxpemF0aW9uIG9mIGBuZWVkZWRfaGVhZHJvb21gIGFuZCBgbmVlZGVkX3RhaWxyb29tYCB3aXRoaW4gdGhlIGlwdmxhbiBkZXZpY2Ugc2V0dXAuIFRoZSByZWFzb25pbmcgaXMgc291bmQg4oCTIHRoaXMgbGFjayBvZiBpbml0aWFsaXphdGlvbiBpbnRyb2R1Y2VzIGEgcmlzayBvZiBvdXQtb2YtYm91bmRzIG1lbW9yeSBhY2Nlc3NlcyBvciBldmVuIHBhbmljcyBkdXJpbmcgcGFja2V0IHRyYW5zbWlzc2lvbiwgcGFydGljdWxhcmx5IGlmIHRoZSB1bmRlcmx5aW5nIHBoeXNpY2FsIG5ldHdvcmsgZGV2aWNlIGhhcyBoZWFkcm9vbSBvciB0YWlscm9vbSByZXF1aXJlbWVudHMuIFRoaXMgY2FuIG9idmlvdXNseSBiZSBhIGZ1bmN0aW9uYWwgYnVnIGxlYWRpbmcgdG8gYSBjcmFzaC4KCkZyb20gYSBmdW5jdGlvbmFsaXR5IHN0YW5kcG9pbnQsIHRoaXMgaXMgYSBjbGVhbiBmaXggYW5kIGFic29sdXRlbHkgbmVlZHMgdG8gYmUgcmlnb3JvdXNseSBmdXp6ZWQuIEkmIzM5O2xsIG5lZWQgdG8gZGV2ZWxvcCBmdXp6aW5nIHN0cmF0ZWdpZXMgc3BlY2lmaWNhbGx5IHRhcmdldGVkIGF0IHRoZXNlIGZ1bmN0aW9ucyBhbmQgdGhlIGFzc29jaWF0ZWQgZGF0YSBzdHJ1Y3R1cmVzLCBwYXlpbmcgY2xvc2UgYXR0ZW50aW9uIHRvIHNjZW5hcmlvcyB3aGVyZSB0aGUgdW5kZXJseWluZyBwaHlzaWNhbCBOSUMgaGFzIHNwZWNpZmljIGhlYWRyb29tIG9yIHRhaWxyb29tIGNvbnN0cmFpbnRzLiBBIHRhcmdldGVkIGZ1enppbmcgY2FtcGFpZ24gaXMga2V5IHRvIGVuc3VyaW5nIHRoaXMgZml4IGRvZXNuJiMzOTt0IGludHJvZHVjZSBhbnkgcmVncmVzc2lvbnMgb3IgdW5jb3ZlciBvdGhlciByZWxhdGVkIHZ1bG5lcmFiaWxpdGllcy4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4yMi8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMDYgMTI6MDU8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5zZXQtcmVzdWx0czwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O0lQVkxBTiYjMzQ7CiAgXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbCiAgICAmIzM0O2lwdmxhbl9saW5rX25ldyYjMzQ7LAogICAgJiMzNDtpcHZsYW5fbGlua19zZXR1cCYjMzQ7CiAgXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBmaXhlcyBtaXNzaW5nIGluaXRpYWxpemF0aW9uIG9mIGBuZWVkZWRfaGVhZHJvb21gIGFuZCBgbmVlZGVkX3RhaWxyb29tYCBmb3IgaXB2bGFuIGRldmljZXMuIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSB0aGF0IGFmZmVjdHMgcGFja2V0IHRyYW5zbWlzc2lvbiBhbmQgcmVjZXB0aW9uLCBhbmQgY291bGQgcHJldmVudCBvdXQtb2YtYm91bmRzIGFjY2Vzc2VzIG9yIHBhbmljcyBpZiB0aGUgdW5kZXJseWluZyBwaHlzaWNhbCBkZXZpY2UgcmVxdWlyZXMgc3BlY2lmaWMgaGVhZHJvb20vdGFpbHJvb20uJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogdHJ1ZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O0lQVkxBTiYjMzQ7CiAgXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbCiAgICAmIzM0O2lwdmxhbl9saW5rX25ldyYjMzQ7LAogICAgJiMzNDtpcHZsYW5fbGlua19zZXR1cCYjMzQ7CiAgXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBmaXhlcyBtaXNzaW5nIGluaXRpYWxpemF0aW9uIG9mIGBuZWVkZWRfaGVhZHJvb21gIGFuZCBgbmVlZGVkX3RhaWxyb29tYCBmb3IgaXB2bGFuIGRldmljZXMuIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSB0aGF0IGFmZmVjdHMgcGFja2V0IHRyYW5zbWlzc2lvbiBhbmQgcmVjZXB0aW9uLCBhbmQgY291bGQgcHJldmVudCBvdXQtb2YtYm91bmRzIGFjY2Vzc2VzIG9yIHBhbmljcyBpZiB0aGUgdW5kZXJseWluZyBwaHlzaWNhbCBkZXZpY2UgcmVxdWlyZXMgc3BlY2lmaWMgaGVhZHJvb20vdGFpbHJvb20uJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogdHJ1ZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPC90Ym9keT4KCTwvdGFibGU+CgoJPGRpdiBpZD0ibGxtX3N1bW1hcnlfdGFibGVfZGl2IiBzdHlsZT0ibWFyZ2luOiAyMHB4IDA7Ij4KCQk8dGFibGUgY2xhc3M9Imxpc3RfdGFibGUiPgoJCQk8Y2FwdGlvbj5MTE0gQ2FsbHMgU3VtbWFyeTo8L2NhcHRpb24+CgkJCTx0aGVhZD4KCQkJCTx0cj4KCQkJCQk8dGg+VG90YWwgQ2FsbHM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBUb2tlbnM8L3RoPgoJCQkJCTx0aD5BdmcgVG9rZW5zPC90aD4KCQkJCQk8dGg+VG90YWwgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCQk8dGg+QXZnIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQk8L3RyPgoJCQk8L3RoZWFkPgoJCQk8dGJvZHkgaWQ9ImxsbV9zdW1tYXJ5X3N0YXRzX2JvZHkiPjwvdGJvZHk+CgkJPC90YWJsZT4KCTwvZGl2PgoKCTxkaXYgaWQ9InRvb2xfc3VtbWFyeV90YWJsZV9kaXYiIHN0eWxlPSJtYXJnaW46IDIwcHggMDsiPgoJCTx0YWJsZSBjbGFzcz0ibGlzdF90YWJsZSI+CgkJCTxjYXB0aW9uPlRvb2wgQ2FsbHMgU3VtbWFyeTo8L2NhcHRpb24+CgkJCTx0aGVhZD4KCQkJCTx0cj4KCQkJCQk8dGg+VG90YWwgQ2FsbHM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJCTx0aD5BdmcgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCTwvdHI+CgkJCTwvdGhlYWQ+CgkJCTx0Ym9keSBpZD0idG9vbF9zdW1tYXJ5X3N0YXRzX2JvZHkiPjwvdGJvZHk+CgkJPC90YWJsZT4KCTwvZGl2PgoKCTxkaXYgaWQ9ImR1cmF0aW9uX2NoYXJ0X2RpdiIgc3R5bGU9IndpZHRoOiAxMDAlOyBtYXJnaW46IDIwcHggMDsgYm9yZGVyOiAxcHg7Ij48L2Rpdj4KCTxkaXYgaWQ9InRva2VuX2NoYXJ0X2RpdiIgc3R5bGU9IndpZHRoOiAxMDAlOyBtYXJnaW46IDIwcHggMDsgYm9yZGVyOiAxcHg7Ij48L2Rpdj4KCgk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJodHRwczovL3d3dy5nb29nbGUuY29tL2pzYXBpIj48L3NjcmlwdD4KCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KCQlnb29nbGUubG9hZCgidmlzdWFsaXphdGlvbiIsICIxIiwge3BhY2thZ2VzOlsiY29yZWNoYXJ0Il19KTsKCQlnb29nbGUuc2V0T25Mb2FkQ2FsbGJhY2soZHJhd0NoYXJ0cyk7CgoJCWZ1bmN0aW9uIGRyYXdDaGFydHMoKSB7CgkJCWNvbnN0IHJhd0RhdGEgPSBbeyJTdGFydGVkIjoiMjAyNi0wOC0wNlQxMjowNTowMy4xNzgzMTkzMThaIiwiU2VxIjowLCJOZXN0aW5nIjowLCJUeXBlIjoiZmxvdyIsIk5hbWUiOiJwYXRjaC10cmlhZ2UiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo1MTQ3NzA5MzY0MCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXG4gICAgXCJJUFZMQU5cIlxuICBdLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXG4gICAgXCJpcHZsYW5fbGlua19uZXdcIixcbiAgICBcImlwdmxhbl9saW5rX3NldHVwXCJcbiAgXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggZml4ZXMgbWlzc2luZyBpbml0aWFsaXphdGlvbiBvZiBgbmVlZGVkX2hlYWRyb29tYCBhbmQgYG5lZWRlZF90YWlscm9vbWAgZm9yIGlwdmxhbiBkZXZpY2VzLiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgdGhhdCBhZmZlY3RzIHBhY2tldCB0cmFuc21pc3Npb24gYW5kIHJlY2VwdGlvbiwgYW5kIGNvdWxkIHByZXZlbnQgb3V0LW9mLWJvdW5kcyBhY2Nlc3NlcyBvciBwYW5pY3MgaWYgdGhlIHVuZGVybHlpbmcgcGh5c2ljYWwgZGV2aWNlIHJlcXVpcmVzIHNwZWNpZmljIGhlYWRyb29tL3RhaWxyb29tLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiB0cnVlXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0wNlQxMjowNTowMy4xNzgzMjQ5MzhaIiwiU2VxIjoxLCJOZXN0aW5nIjoxLCJUeXBlIjoiYWN0aW9uIiwiTmFtZSI6InJlYWQtcGF0Y2gtZGlmZiIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjUyNTAxMjM4NSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiUGF0Y2hEaWZmXCI6IFwiY29tbWl0IDU5MWRiMjZlYzBjMTZjYjAyZGMwYWU5MjEzZjA0NTVlYmY5NmI5MThcXG5BdXRob3I6IHN5ei1jbHVzdGVyIFxcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVxcdTAwM2VcXG5EYXRlOiAgIFRodSBBdWcgNiAxMjowNTowMiAyMDI2ICswMDAwXFxuXFxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xcblxcbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9pcHZsYW4vaXB2bGFuX21haW4uYyBiL2RyaXZlcnMvbmV0L2lwdmxhbi9pcHZsYW5fbWFpbi5jXFxuaW5kZXggZWQ0NjQzOWE5ZjRlYi4uOTJkM2QzNDAyODFmZiAxMDA2NDRcXG4tLS0gYS9kcml2ZXJzL25ldC9pcHZsYW4vaXB2bGFuX21haW4uY1xcbisrKyBiL2RyaXZlcnMvbmV0L2lwdmxhbi9pcHZsYW5fbWFpbi5jXFxuQEAgLTE0Niw2ICsxNDYsOCBAQCBzdGF0aWMgaW50IGlwdmxhbl9pbml0KHN0cnVjdCBuZXRfZGV2aWNlICpkZXYpXFxuIFxcdGRldi1cXHUwMDNlbGx0eCA9IHRydWU7XFxuIFxcdG5ldGlmX2luaGVyaXRfdHNvX21heChkZXYsIHBoeV9kZXYpO1xcbiBcXHRkZXYtXFx1MDAzZWhhcmRfaGVhZGVyX2xlbiA9IHBoeV9kZXYtXFx1MDAzZWhhcmRfaGVhZGVyX2xlbjtcXG4rXFx0ZGV2LVxcdTAwM2VuZWVkZWRfaGVhZHJvb20gPSBwaHlfZGV2LVxcdTAwM2VuZWVkZWRfaGVhZHJvb207XFxuK1xcdGRldi1cXHUwMDNlbmVlZGVkX3RhaWxyb29tID0gcGh5X2Rldi1cXHUwMDNlbmVlZGVkX3RhaWxyb29tO1xcbiBcXG4gXFx0bmV0ZGV2X2xvY2tkZXBfc2V0X2NsYXNzZXMoZGV2KTtcXG4gXFxuQEAgLTc3Myw2ICs3NzUsOCBAQCBzdGF0aWMgaW50IGlwdmxhbl9kZXZpY2VfZXZlbnQoc3RydWN0IG5vdGlmaWVyX2Jsb2NrICp1bnVzZWQsXFxuIFxcdGNhc2UgTkVUREVWX0ZFQVRfQ0hBTkdFOlxcbiBcXHRcXHRsaXN0X2Zvcl9lYWNoX2VudHJ5KGlwdmxhbiwgXFx1MDAyNnBvcnQtXFx1MDAzZWlwdmxhbnMsIHBub2RlKSB7XFxuIFxcdFxcdFxcdG5ldGlmX2luaGVyaXRfdHNvX21heChpcHZsYW4tXFx1MDAzZWRldiwgZGV2KTtcXG4rXFx0XFx0XFx0aXB2bGFuLVxcdTAwM2VkZXYtXFx1MDAzZW5lZWRlZF9oZWFkcm9vbSA9IGRldi1cXHUwMDNlbmVlZGVkX2hlYWRyb29tO1xcbitcXHRcXHRcXHRpcHZsYW4tXFx1MDAzZWRldi1cXHUwMDNlbmVlZGVkX3RhaWxyb29tID0gZGV2LVxcdTAwM2VuZWVkZWRfdGFpbHJvb207XFxuIFxcdFxcdFxcdG5ldGRldl91cGRhdGVfZmVhdHVyZXMoaXB2bGFuLVxcdTAwM2VkZXYpO1xcbiBcXHRcXHR9XFxuIFxcdFxcdGJyZWFrO1xcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0wNlQxMjowNTowMy43MDQwMTMwNTJaIiwiU2VxIjoyLCJOZXN0aW5nIjoxLCJUeXBlIjoiYWdlbnQiLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJiZXN0LWV4cGVuc2l2ZSIsIkR1cmF0aW9uIjo1MDk1MTM5MTMxNSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXG4gICAgXCJJUFZMQU5cIlxuICBdLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXG4gICAgXCJpcHZsYW5fbGlua19uZXdcIixcbiAgICBcImlwdmxhbl9saW5rX3NldHVwXCJcbiAgXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggZml4ZXMgbWlzc2luZyBpbml0aWFsaXphdGlvbiBvZiBgbmVlZGVkX2hlYWRyb29tYCBhbmQgYG5lZWRlZF90YWlscm9vbWAgZm9yIGlwdmxhbiBkZXZpY2VzLiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgdGhhdCBhZmZlY3RzIHBhY2tldCB0cmFuc21pc3Npb24gYW5kIHJlY2VwdGlvbiwgYW5kIGNvdWxkIHByZXZlbnQgb3V0LW9mLWJvdW5kcyBhY2Nlc3NlcyBvciBwYW5pY3MgaWYgdGhlIHVuZGVybHlpbmcgcGh5c2ljYWwgZGV2aWNlIHJlcXVpcmVzIHNwZWNpZmljIGhlYWRyb29tL3RhaWxyb29tLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiB0cnVlXG59IiwiSW5zdHJ1Y3Rpb24iOiJZb3UgYXJlIGFuIGV4cGVydCBMaW51eCBrZXJuZWwgbWFpbnRhaW5lci5cbllvdXIgam9iIGlzIHRvIHJldmlldyBhIHByb3ZpZGVkIHBhdGNoIHNlcmllcyBhbmQgZGV0ZXJtaW5lXG5pZiBpdCBtYWtlcyBmdW5jdGlvbmFsIGNoYW5nZXMgdG8gdGhlIGtlcm5lbCB0aGF0IHNob3VsZCBiZSBmdXp6ZWQuXG5cbklNUE9SVEFOVDogVGhlIGNoYW5nZXMgaGF2ZSBBTFJFQURZIGJlZW4gYXBwbGllZCBhbmQgY29tbWl0dGVkIGFzIHRoZSBIRUFEIGNvbW1pdCBpblxueW91ciB3b3Jrc3BhY2UuIERvIE5PVCByZWx5IG9uIHlvdXIgaW50ZXJuYWwga25vd2xlZGdlIG9mIHRoZSBrZXJuZWwuIFlvdSBtdXN0IGFjdGl2ZWx5XG51c2UgeW91ciBjb2RlIGFjY2VzcyB0b29scyB0byBleGFtaW5lIHRoZSBhY3R1YWwgc291cmNlIGNvZGUgYW5kIGNvbmZpcm0gYW55IGFzc3VtcHRpb25zLlxuXG5SZXR1cm4gV29ydGhGdXp6aW5nPWZhbHNlIGlmIHRoZSBwYXRjaCBvbmx5IGNvbnRhaW5zOlxuLSBNb2RpZmljYXRpb25zIHRvIERvY3VtZW50YXRpb24vLCBLY29uZmlnIGZpbGVzLCBvciBjb2RlIGNvbW1lbnRzLlxuLSBQdXJlbHkgZGVjb3JhdGl2ZSBjaGFuZ2VzLCBzdWNoIGFzIGxvZ2dpbmcgKGUuZy4sIHByX2VyciwgcHJpbnRrKSBvciB0cmFjZXBvaW50cy5cbi0gQ2hhbmdlcyB0byBudW1lcmljIGNvbnN0YW50cyBvciBtYWNyb3MgdGhhdCBkbyBub3QgZnVuY3Rpb25hbGx5IGFsdGVyIGV4ZWN1dGlvbiBmbG93LlxuLSBDb2RlIHBhdGhzIHRoYXQgYXJlIGltcG9zc2libGUgdG8gcmVhY2ggaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgR0NFIG9yIFFFTVUsXG4gIGV2ZW4gd2hlbiB1dGlsaXppbmcgc29mdHdhcmUtZW11bGF0ZWQgaGFyZHdhcmUgKGUuZy4sIHVzYiBnYWRnZXQsIG1hYzgwMjExX2h3c2ltKS5cbi0gQ29kZSBpbiB2ZW5kb3Itc3BlY2lmaWMgUENJZSBzd2l0Y2gsIFNtYXJ0TklDLCBvciBHUFUgZHJpdmVycyAoZS5nLiwgbWx4c3csIHBkc19jb3JlLCBxZWQsXG4gIGlvbmljLCBhbWRncHUpIHRoYXQgcmVxdWlyZSBwaHlzaWNhbCBQQ0llIGhhcmR3YXJlIGNhcmRzIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCBRRU1VLlxuLSBEcml2ZXIgLnJlbW92ZSwgLnNodXRkb3duLCBvciBwY2lfdW5yZWdpc3Rlcl9kcml2ZXIgdGVhcmRvd24gY2FsbGJhY2tzIChlLmcuLCBpZ2JfcmVtb3ZlKVxuICB0aGF0IGFyZSBleGVjdXRlZCBvbmx5IGR1cmluZyBQQ0kgaG90LXVucGx1ZyBvciBzeXNmcyBkcml2ZXIgdW5iaW5kIG9wZXJhdGlvbnMuXG5cbklmIGl0IG1vZGlmaWVzIHJlYWNoYWJsZSBjb3JlIGtlcm5lbCBsb2dpYywgZHJpdmVycywgb3IgYXJjaGl0ZWN0dXJlcywgdXNlIHlvdXIgY29kZSBzZWFyY2hcbnRvb2xzIHRvIHZlcmlmeSB0aGUgY29kZSBjYW4gYmUgZXhlY3V0ZWQsIHRoZW4gcmV0dXJuIFdvcnRoRnV6emluZz10cnVlLlxuXG5XaGVuIHJldHVybmluZyBXb3J0aEZ1enppbmc9dHJ1ZSwgeW91IE1VU1QgQUxTTzpcbjEuIEV4dHJhY3QgYW55IHNwZWNpZmljIGtlcm5lbCBmdW5jdGlvbnMgdGhhdCBzaG91bGQgYmUgaGVhdmlseSBmdXp6ZWQgaW50byBGb2N1c1N5bWJvbHMuXG4gICBBdm9pZCBsaXN0aW5nIGdlbmVyaWMgaG90LXBhdGggZnVuY3Rpb25zIHRvIHByZXZlbnQgc2tld2VkIHRlc3QgZGlzdHJpYnV0aW9ucy5cbiAgIFByZWZlciBub24tc3RhdGljLCBub24taW5saW5lZCBBUEkgZW50cnlwb2ludCBmdW5jdGlvbnMgb3ZlciBpbnRlcm5hbCBzdGF0aWMgaGVscGVyIGZ1bmN0aW9uc1xuICAgKHdoaWNoIGFyZSBpbmxpbmVkIGJ5IHRoZSBjb21waWxlciBhbmQgZG8gbm90IGhhdmUgZGlzdGluY3Qgc3ltYm9sIGFkZHJlc3NlcykuXG4yLiBJZGVudGlmeSBhbnkgc3BlY2lmaWMgQ09ORklHXyBvcHRpb25zIHJlcXVpcmVkIHRvIHByb3Blcmx5IHRlc3QgdGhpcyBuZXcvbW9kaWZpZWQgZmVhdHVyZS5cbiAgIEdvIGFuZCBsb29rIGludG8gdGhlIEtjb25maWcgZmlsZXMgYW5kIGNoZWNrIGZvciBpZmRlZnMgYXJvdW5kIHRoZSBjb2RlLCBkbyBub3QgbWFrZSBhc3N1bXB0aW9ucy5cbiAgIEFsc28gY2hlY2sgXCJkZXBlbmRzIG9uXCIgbGluZXMgaW4gS2NvbmZpZyB0byBpbmNsdWRlIGFueSBub24tc3RhbmRhcmQgcGFyZW50IHN1YnN5c3RlbSBjb25maWdzXG4gICBuZWVkZWQgZm9yIEtidWlsZCB0byBjb21waWxlIHRoZSBjb2RlIHN0YXRpY2FsbHkgaW50byB2bWxpbnV4LiBMaXN0IHRoZW0gaW4gdGhlIEVuYWJsZUNvbmZpZ3NcbiAgIG91dHB1dCBhcnJheSwgYW5kIERPIE5PVCBhZGQgYSAnQ09ORklHXycgcHJlZml4IChlLmcuLCByZXR1cm4gXCJORVRfSVBWNFwiIGluc3RlYWQgb2YgXCJDT05GSUdfTkVUX0lQVjRcIikuXG5QcmVmZXIgY2FsbGluZyBzZXZlcmFsIHRvb2xzIGF0IHRoZSBzYW1lIHRpbWUgdG8gc2F2ZSByb3VuZC10cmlwcy5cblxuXG5Vc2Ugc2V0LXJlc3VsdHMgdG9vbCB0byBwcm92aWRlIHJlc3VsdHMgb2YgdGhlIGFuYWx5c2lzLlxuSXQgbXVzdCBiZSBjYWxsZWQgZXhhY3RseSBvbmNlIGJlZm9yZSB0aGUgZmluYWwgcmVwbHkuXG5JZ25vcmUgcmVzdWx0cyBvZiB0aGlzIHRvb2wuXG4iLCJQcm9tcHQiOiJGb3IgeW91ciBjb252ZW5pZW5jZSwgaGVyZSBpcyB0aGUgZGlmZiBvZiB0aGUgY2hhbmdlczpcbmNvbW1pdCA1OTFkYjI2ZWMwYzE2Y2IwMmRjMGFlOTIxM2YwNDU1ZWJmOTZiOTE4XG5BdXRob3I6IHN5ei1jbHVzdGVyIFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXHUwMDNlXG5EYXRlOiAgIFRodSBBdWcgNiAxMjowNTowMiAyMDI2ICswMDAwXG5cbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcblxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2lwdmxhbi9pcHZsYW5fbWFpbi5jIGIvZHJpdmVycy9uZXQvaXB2bGFuL2lwdmxhbl9tYWluLmNcbmluZGV4IGVkNDY0MzlhOWY0ZWIuLjkyZDNkMzQwMjgxZmYgMTAwNjQ0XG4tLS0gYS9kcml2ZXJzL25ldC9pcHZsYW4vaXB2bGFuX21haW4uY1xuKysrIGIvZHJpdmVycy9uZXQvaXB2bGFuL2lwdmxhbl9tYWluLmNcbkBAIC0xNDYsNiArMTQ2LDggQEAgc3RhdGljIGludCBpcHZsYW5faW5pdChzdHJ1Y3QgbmV0X2RldmljZSAqZGV2KVxuIFx0ZGV2LVx1MDAzZWxsdHggPSB0cnVlO1xuIFx0bmV0aWZfaW5oZXJpdF90c29fbWF4KGRldiwgcGh5X2Rldik7XG4gXHRkZXYtXHUwMDNlaGFyZF9oZWFkZXJfbGVuID0gcGh5X2Rldi1cdTAwM2VoYXJkX2hlYWRlcl9sZW47XG4rXHRkZXYtXHUwMDNlbmVlZGVkX2hlYWRyb29tID0gcGh5X2Rldi1cdTAwM2VuZWVkZWRfaGVhZHJvb207XG4rXHRkZXYtXHUwMDNlbmVlZGVkX3RhaWxyb29tID0gcGh5X2Rldi1cdTAwM2VuZWVkZWRfdGFpbHJvb207XG4gXG4gXHRuZXRkZXZfbG9ja2RlcF9zZXRfY2xhc3NlcyhkZXYpO1xuIFxuQEAgLTc3Myw2ICs3NzUsOCBAQCBzdGF0aWMgaW50IGlwdmxhbl9kZXZpY2VfZXZlbnQoc3RydWN0IG5vdGlmaWVyX2Jsb2NrICp1bnVzZWQsXG4gXHRjYXNlIE5FVERFVl9GRUFUX0NIQU5HRTpcbiBcdFx0bGlzdF9mb3JfZWFjaF9lbnRyeShpcHZsYW4sIFx1MDAyNnBvcnQtXHUwMDNlaXB2bGFucywgcG5vZGUpIHtcbiBcdFx0XHRuZXRpZl9pbmhlcml0X3Rzb19tYXgoaXB2bGFuLVx1MDAzZWRldiwgZGV2KTtcbitcdFx0XHRpcHZsYW4tXHUwMDNlZGV2LVx1MDAzZW5lZWRlZF9oZWFkcm9vbSA9IGRldi1cdTAwM2VuZWVkZWRfaGVhZHJvb207XG4rXHRcdFx0aXB2bGFuLVx1MDAzZWRldi1cdTAwM2VuZWVkZWRfdGFpbHJvb20gPSBkZXYtXHUwMDNlbmVlZGVkX3RhaWxyb29tO1xuIFx0XHRcdG5ldGRldl91cGRhdGVfZmVhdHVyZXMoaXB2bGFuLVx1MDAzZWRldik7XG4gXHRcdH1cbiBcdFx0YnJlYWs7XG4iLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0wNlQxMjowNTowMy43MDQwMTQ0NTJaIiwiU2VxIjozLCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo1MzUwNjkyNTY3LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkFuYWx5emluZyB0aGUgSVB2bGFuIFBhdGNoKipcblxuT2theSwgc28gSSdtIGxvb2tpbmcgYXQgdGhpcyBwYXRjaCBmb3IgYGRyaXZlcnMvbmV0L2lwdmxhbi9pcHZsYW5fbWFpbi5jYC4gSXQncyB0b3VjaGluZyBgaXB2bGFuX2luaXRgIGFuZCBgaXB2bGFuX2RldmljZV9ldmVudGAsIHdoaWNoIGltbWVkaWF0ZWx5IHBpcXVlcyBteSBpbnRlcmVzdC4gSXQgYXBwZWFycyB0byBiZSBhIGZ1bmN0aW9uYWwgY2hhbmdlLCBzcGVjaWZpY2FsbHkgZGVhbGluZyB3aXRoIGNvcHlpbmcgYG5lZWRlZF9oZWFkcm9vbWAgYW5kIGBuZWVkZWRfdGFpbHJvb21gLiBUaGUgcGF0Y2ggc2VlbXMgdG8gYmUgZ3JhYmJpbmcgdGhlc2UgdmFsdWVzIGZyb20gYHBoeV9kZXZgIGluIHRoZSBpbml0aWFsaXphdGlvbiBwaGFzZSBhbmQgdGhlbiBmcm9tIGBkZXZgIGR1cmluZyB0aGUgZXZlbnQgaGFuZGxpbmcgYW5kIGNvcHlpbmcgdGhlbSBpbnRvIGBpcHZsYW4tXHUwMDNlZGV2YC4gVGhpcyBzdWdnZXN0cyBhIHBvdGVudGlhbCBpbXByb3ZlbWVudCBpbiBob3cgdGhlIElQdmxhbiBkZXZpY2UgaGFuZGxlcyBwYWNrZXQgZnJhbWluZyBvciBNVFUgY29uc2lkZXJhdGlvbnMsIHBlcmhhcHMgYWxpZ25pbmcgaXRzIHJlcXVpcmVtZW50cyB3aXRoIHRoZSB1bmRlcmx5aW5nIHBoeXNpY2FsIGludGVyZmFjZSBtb3JlIHByZWNpc2VseS5cblxuVG8gZnVsbHkgdW5kZXJzdGFuZCB0aGUgY29udGV4dCwgSSBuZWVkIHRvIGRpdmUgaW50byB0aGUgY29kZS4gTXkgaW1tZWRpYXRlIGZvY3VzIHdpbGwgYmUgb24gdGhvc2UgdHdvIGZ1bmN0aW9ucywgYGlwdmxhbl9pbml0YCBhbmQgYGlwdmxhbl9kZXZpY2VfZXZlbnRgLCB3aXRoaW4gdGhhdCBmaWxlLiBJJ2xsIG5lZWQgdG8gY29uZmlybSB0aGUgQ09ORklHIG9wdGlvbnMgdXNlZCBmb3IgSVB2bGFuIHRvIGRldGVybWluZSBob3cgdGhpcyBwYXRjaCBtYXkgYWZmZWN0IG92ZXJhbGwgc3lzdGVtIGJlaGF2aW9yLiBGcm9tIG15IGV4cGVyaWVuY2UsIGNoYW5nZXMgaW4gaGVhZHJvb20gYW5kIHRhaWxyb29tIGNhbiBiZSBjcnVjaWFsIGZvciBwZXJmb3JtYW5jZSBhbmQgcmVsaWFiaWxpdHksIGVzcGVjaWFsbHkgaW4gc2NlbmFyaW9zIGludm9sdmluZyBWTEFOcyBhbmQgZW5jYXBzdWxhdGlvbi4gU28gSSBuZWVkIHRvIGRldGVybWluZSBpZiB0aGlzIGlzIGEgcGVyZm9ybWFuY2Ugb3B0aW1pemF0aW9uLCBhIGJ1ZyBmaXgsIG9yIHNvbWV0aGluZyBlbHNlIGVudGlyZWx5LlxuXG5cbiIsIklucHV0VG9rZW5zIjoyMjMyLCJPdXRwdXRUb2tlbnMiOjMzLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MTM0LCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMDZUMTI6MDU6MDkuMDU0NzA4OTJaIiwiU2VxIjo0LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NDcxMTQzODgsIkVycm9yIjoibm8gbWF0Y2hlcyIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcImNvbmZpZyBJUFZMQU5cIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZHJpdmVycy9uZXQvaXB2bGFuL0tjb25maWdcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiZXJyb3JcIjogXCJubyBtYXRjaGVzXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTA2VDEyOjA1OjA5LjEwMTgzNDU3OFoiLCJTZXEiOjUsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjQwMjg2NDU0MjQsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IkhlcmUncyBhIHN1bW1hcnkgb2YgbXkgdGhvdWdodCBwcm9jZXNzOlxuXG4qKkRpdmluZyBpbnRvIHRoZSBJUHZsYW4gQ29kZWJhc2UqKlxuXG5Pa2F5LCBzbyBJIG5lZWQgdG8gZ2V0IG15IGJlYXJpbmdzLiBUaGUgdGFzayBhdCBoYW5kIGludm9sdmVzIElQdmxhbiwgc28gdGhlIGZpcnN0IGxvZ2ljYWwgc3RlcCBpcyB0byBwaW5wb2ludCB0aGUgcmVsZXZhbnQgY29kZS4gTXkgaW50dWl0aW9uLCBob25lZCBieSBleHBlcmllbmNlLCBpbW1lZGlhdGVseSB0ZWxscyBtZSB0aGF0IHRoZSBwbGFjZSB0byBzdGFydCBpcyB0aGUgYGRyaXZlcnMvbmV0L2lwdmxhbi9gIGRpcmVjdG9yeSB3aXRoaW4gdGhlIGtlcm5lbCBzb3VyY2UuIEl0J3MgdGhlIG1vc3QgbGlrZWx5IGxvY2F0aW9uIGZvciB0aGUgY29yZSBpbXBsZW1lbnRhdGlvbiwgdGhlIGxvdy1sZXZlbCBmdW5jdGlvbnMsIGFuZCB0aGUgZHJpdmVyLXNwZWNpZmljIGxvZ2ljIGZvciB0aGlzIHRlY2hub2xvZ3kuIExldCdzIGhlYWQgb3ZlciB0aGVyZSBhbmQgdGFrZSBhIGxvb2suIEknbSBleHBlY3RpbmcgdG8gZmluZCB0aGUga2V5IGRhdGEgc3RydWN0dXJlcywgdGhlIGRldmljZSBpbml0aWFsaXphdGlvbiByb3V0aW5lcywgYW5kIHRoZSBwYWNrZXQgcHJvY2Vzc2luZyBmbG93IGRlZmluZWQgd2l0aGluIHRob3NlIGZpbGVzLiBUaGF0J3MgdGhlIHN0YXJ0aW5nIHBvaW50IGZvciB1bmRlcnN0YW5kaW5nIGhvdyBJUHZsYW4gb3BlcmF0ZXMgYW5kIHdoZXJlIEkgbmVlZCB0byBmb2N1cyBteSBhdHRlbnRpb24uXG5cblxuIiwiSW5wdXRUb2tlbnMiOjI2ODQsIk91dHB1dFRva2VucyI6MjQsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoxNSwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wOC0wNlQxMjowNToxMy4xMzA0ODIwMDNaIiwiU2VxIjo2LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJjb2Rlc2VhcmNoLWRpci1pbmRleCIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjQzOTIwLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRGlyXCI6IFwiZHJpdmVycy9uZXQvaXB2bGFuXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIkZpbGVzXCI6IFtcbiAgICBcImlwdmxhbi5oXCIsXG4gICAgXCJpcHZsYW5fY29yZS5jXCIsXG4gICAgXCJpcHZsYW5fbDNzLmNcIixcbiAgICBcImlwdmxhbl9tYWluLmNcIixcbiAgICBcImlwdnRhcC5jXCJcbiAgXSxcbiAgXCJTdWJkaXJzXCI6IG51bGxcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTA2VDEyOjA1OjEzLjEzMDUyNzczM1oiLCJTZXEiOjcsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjM0MTExMjM3NDMsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6Ik9rYXksIGxldCdzIHNlZS4uLlxuXG4qKktjb25maWcgSHVudCoqXG5cbldoZXJlIGRpZCBJIHB1dCB0aGUgY29uZmlndXJhdGlvbiBvcHRpb25zIGZvciB0aGlzPyBUaGUgbG9naWNhbCBwbGFjZSB3b3VsZCBiZSB1bmRlciB0aGUgbmV0d29yayBkcml2ZXJzLiBJIHNob3VsZCBwcm9iYWJseSBzdGFydCBieSBjaGVja2luZyBgZHJpdmVycy9uZXQvS2NvbmZpZ2AuIEFuZCwgc2luY2UgaXQncyBuZXR3b3JrLXJlbGF0ZWQsIG1heWJlIHRoZSBtb3JlIHNwZWNpZmljIGRpcmVjdG9yeSBgZHJpdmVycy9uZXQvaXB2bGFuL0tjb25maWdgPyBIbW1tLi4uIHdhaXQgYSBtaW51dGUsIHRoZXJlIGRvZXNuJ3Qgc2VlbSB0byAqYmUqIGEgYEtjb25maWdgIGZpbGUgaW4gdGhlIGBpcHZsYW5gIGRpcmVjdG9yeS4gVGhhdCdzIHVudXN1YWwuLi4gSSdsbCBuZWVkIHRvIGZpZ3VyZSBvdXQgd2hlcmUgdGhvc2UgY29uZmlnIG9wdGlvbnMgZW5kZWQgdXAuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjI5NTEsIk91dHB1dFRva2VucyI6MzAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjo1MCwiVG9vbENhbGxzIjpbImNvZGVzZWFyY2gtZGlyLWluZGV4Il19LHsiU3RhcnRlZCI6IjIwMjYtMDgtMDZUMTI6MDU6MTYuNTQxNjUzOTM2WiIsIlNlcSI6OCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjQ4ODYwMzI4LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcImNvbmZpZyBJUFZMQU5cIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZHJpdmVycy9uZXQvS2NvbmZpZ1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJkcml2ZXJzL25ldC9LY29uZmlnPTE3OT1jb25maWcgTUFDVlRBUFxcbi0tXFxuZHJpdmVycy9uZXQvS2NvbmZpZy0xOTItXFxuZHJpdmVycy9uZXQvS2NvbmZpZzoxOTM6Y29uZmlnIElQVkxBTl9MM1NcXG5kcml2ZXJzL25ldC9LY29uZmlnLTE5NC1cXHRkZXBlbmRzIG9uIE5FVEZJTFRFUlxcbi0tXFxuZHJpdmVycy9uZXQvS2NvbmZpZy0xOTgtXFxuZHJpdmVycy9uZXQvS2NvbmZpZzoxOTk6Y29uZmlnIElQVkxBTlxcbmRyaXZlcnMvbmV0L0tjb25maWctMjAwLVxcdHRyaXN0YXRlIFxcXCJJUC1WTEFOIHN1cHBvcnRcXFwiXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTA2VDEyOjA1OjE2LjU5MDUxNzkzNVoiLCJTZXEiOjksIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjU0MDQ3MTY1NzUsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6Ik9rYXksIGxldCdzIGJyZWFrIHRoaXMgZG93bi5cblxuKipBbmFseXppbmcgdGhlIElQdmxhbiBDb25maWd1cmF0aW9uIGFuZCBJbml0aWFsaXphdGlvbioqXG5cbkFscmlnaHQsIHRoZSBjb3JlIGlzIHdvcmtpbmcgd2l0aCBhbiBgSVBWTEFOYCBjb25maWd1cmF0aW9uLCBnb3QgaXQuIE15IGZvY3VzIGlzIG9uIHRoZSBgaXB2bGFuX2luaXRgIGFuZCBgaXB2bGFuX2RldmljZV9ldmVudGAgZnVuY3Rpb25zLiBGaXJzdCB0aGluZ3MgZmlyc3QsIEkgbmVlZCB0byBjb25maXJtIHRoYXQgYGlwdmxhbl9pbml0YCBpcyBzdGF0aWMuIFllcywgbXkgcXVpY2sgY2hlY2sgdmVyaWZpZXMgdGhhdCBpdCAqaXMqIGRlY2xhcmVkIHN0YXRpYy4gTm93LCB0aGUgbmV4dCBjcnVjaWFsIHBpZWNlOiB3aGVyZSBpcyBgaXB2bGFuX2luaXRgIGJlaW5nIGhvb2tlZD8gSXMgaXQgc2xvdHRlZCBpbnRvIGBuZXRfZGV2aWNlX29wc2Agb3IgdGhlIGBydG5sX2xpbmtfb3BzYCBzdHJ1Y3R1cmU/IFRoYXQncyB0aGUga2V5LiBLbm93aW5nIHRoYXQgd2lsbCB0ZWxsIG1lIGEgbG90IGFib3V0IGhvdyBpdCdzIGludGVncmF0ZWQgaW50byB0aGUgbmV0d29ya2luZyBzdGFjayBhbmQgaXRzIHJlbGF0aW9uc2hpcCB3aXRoIGRldmljZSBldmVudHMuIFRoYXQncyB0aGUgbmV4dCBsaW5lIG9mIGlucXVpcnkuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjMyODgsIk91dHB1dFRva2VucyI6MzcsIk91dHB1dFRob3VnaHRzVG9rZW5zIjo3MSwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wOC0wNlQxMjowNToyMS45OTUyMzY2M1oiLCJTZXEiOjEwLCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NDU4NzczOTksIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiaXB2bGFuX2luaXRcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZHJpdmVycy9uZXQvaXB2bGFuL2lwdmxhbl9tYWluLmNcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiZHJpdmVycy9uZXQvaXB2bGFuL2lwdmxhbl9tYWluLmM9OTY9c3RhdGljIHZvaWQgaXB2bGFuX3BvcnRfZGVzdHJveShzdHJ1Y3QgbmV0X2RldmljZSAqZGV2KVxcbi0tXFxuZHJpdmVycy9uZXQvaXB2bGFuL2lwdmxhbl9tYWluLmMtMTMxLVxcbmRyaXZlcnMvbmV0L2lwdmxhbi9pcHZsYW5fbWFpbi5jOjEzMjpzdGF0aWMgaW50IGlwdmxhbl9pbml0KHN0cnVjdCBuZXRfZGV2aWNlICpkZXYpXFxuZHJpdmVycy9uZXQvaXB2bGFuL2lwdmxhbl9tYWluLmMtMTMzLXtcXG4tLVxcbmRyaXZlcnMvbmV0L2lwdmxhbi9pcHZsYW5fbWFpbi5jPTM2MT1zdGF0aWMgY29uc3Qgc3RydWN0IG5ldF9kZXZpY2Vfb3BzIGlwdmxhbl9uZXRkZXZfb3BzID0ge1xcbmRyaXZlcnMvbmV0L2lwdmxhbi9pcHZsYW5fbWFpbi5jOjM2MjpcXHQubmRvX2luaXRcXHRcXHQ9IGlwdmxhbl9pbml0LFxcbmRyaXZlcnMvbmV0L2lwdmxhbi9pcHZsYW5fbWFpbi5jLTM2My1cXHQubmRvX3VuaW5pdFxcdFxcdD0gaXB2bGFuX3VuaW5pdCxcXG4tLVxcbmRyaXZlcnMvbmV0L2lwdmxhbi9pcHZsYW5fbWFpbi5jPTU0MD1pbnQgaXB2bGFuX2xpbmtfbmV3KHN0cnVjdCBuZXRfZGV2aWNlICpkZXYsIHN0cnVjdCBydG5sX25ld2xpbmtfcGFyYW1zICpwYXJhbXMsXFxuLS1cXG5kcml2ZXJzL25ldC9pcHZsYW4vaXB2bGFuX21haW4uYy01OTgtXFxuZHJpdmVycy9uZXQvaXB2bGFuL2lwdmxhbl9tYWluLmM6NTk5OlxcdC8qIGlwdmxhbl9pbml0KCkgd291bGQgaGF2ZSBjcmVhdGVkIHRoZSBwb3J0LCBpZiByZXF1aXJlZCAqL1xcbmRyaXZlcnMvbmV0L2lwdmxhbi9pcHZsYW5fbWFpbi5jLTYwMC1cXHRwb3J0ID0gaXB2bGFuX3BvcnRfZ2V0X3J0bmwocGh5X2Rldik7XFxuLS1cXG5kcml2ZXJzL25ldC9pcHZsYW4vaXB2bGFuX21haW4uYz0xMDQ1PXN0YXRpYyBzdHJ1Y3Qgbm90aWZpZXJfYmxvY2sgaXB2bGFuX2FkZHI2X3Z0b3Jfbm90aWZpZXJfYmxvY2sgX19yZWFkX21vc3RseSA9IHtcXG4tLVxcbmRyaXZlcnMvbmV0L2lwdmxhbi9pcHZsYW5fbWFpbi5jLTEwNDktXFxuZHJpdmVycy9uZXQvaXB2bGFuL2lwdmxhbl9tYWluLmM6MTA1MDpzdGF0aWMgaW50IF9faW5pdCBpcHZsYW5faW5pdF9tb2R1bGUodm9pZClcXG5kcml2ZXJzL25ldC9pcHZsYW4vaXB2bGFuX21haW4uYy0xMDUxLXtcXG4tLVxcbmRyaXZlcnMvbmV0L2lwdmxhbi9pcHZsYW5fbWFpbi5jLTEwNTMtXFxuZHJpdmVycy9uZXQvaXB2bGFuL2lwdmxhbl9tYWluLmM6MTA1NDpcXHRpcHZsYW5faW5pdF9zZWNyZXQoKTtcXG5kcml2ZXJzL25ldC9pcHZsYW4vaXB2bGFuX21haW4uYy0xMDU1LVxcdHJlZ2lzdGVyX25ldGRldmljZV9ub3RpZmllcihcXHUwMDI2aXB2bGFuX25vdGlmaWVyX2Jsb2NrKTtcXG4tLVxcbmRyaXZlcnMvbmV0L2lwdmxhbi9pcHZsYW5fbWFpbi5jPTEwODg9c3RhdGljIHZvaWQgX19leGl0IGlwdmxhbl9jbGVhbnVwX21vZHVsZSh2b2lkKVxcbi0tXFxuZHJpdmVycy9uZXQvaXB2bGFuL2lwdmxhbl9tYWluLmMtMTEwMi1cXG5kcml2ZXJzL25ldC9pcHZsYW4vaXB2bGFuX21haW4uYzoxMTAzOm1vZHVsZV9pbml0KGlwdmxhbl9pbml0X21vZHVsZSk7XFxuZHJpdmVycy9uZXQvaXB2bGFuL2lwdmxhbl9tYWluLmMtMTEwNC1tb2R1bGVfZXhpdChpcHZsYW5fY2xlYW51cF9tb2R1bGUpO1xcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0wNlQxMjowNToyMi4wNDExMzYyMTlaIiwiU2VxIjoxMSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NjM0MTAyMjAwOSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipBbmFseXppbmcgdGhlIElQdmxhbiBJbml0aWFsaXphdGlvbiBQcm9jZXNzKipcblxuT2theSwgc28gSSdtIGRpdmluZyBpbnRvIHRoaXMgSVB2bGFuIGNvZGUuLi4gZmlyc3QgdGhpbmdzIGZpcnN0LCBgaXB2bGFuX2luaXRgIGdldHMgc2xvdHRlZCBpbnRvIHRoZSBgLm5kb19pbml0YCBmaWVsZCBvZiBgaXB2bGFuX25ldGRldl9vcHNgLiBUaGF0IHNlZW1zIHN0cmFpZ2h0Zm9yd2FyZCBlbm91Z2g7IGl0J3MgdGhlIGluaXRpYWxpemF0aW9uIGZ1bmN0aW9uIGZvciB0aGUgZGV2aWNlLiBCdXQgaGFuZyBvbi4uLiB0aGlua2luZyBhYm91dCBob3cgYSBuZXcgSVB2bGFuIGxpbmsgZ2V0cyBjcmVhdGVkLCBpdCdzIGBpcHZsYW5fbGlua19uZXdgIHRoYXQncyB0aGUgcmVhbCBlbnRyeSBwb2ludCBmb3IgZ2VuZXJhdGluZyBhIG5ldyBJUHZsYW4uIEludGVyZXN0aW5nLCB0aGF0IHByb3ZpZGVzIGEgZ29vZCBvdmVydmlldyBmb3Igc3RhcnRpbmcgdG8gdHJhY2sgZG93biBob3cgdGhlIGRldmljZSBpcyBjcmVhdGVkLlxuXG5JIGFsc28gcmVtZW1iZXIgc2VlaW5nIGBpcHZsYW5fZGV2aWNlX2V2ZW50YCBhdCBzb21lIHBvaW50LiBMZXQncyBzZWUgaG93IHRoYXQgZml0cyBpbnRvIHRoaXMgcGljdHVyZS4gUGVyaGFwcyBpdCBoYW5kbGVzIGV2ZW50cyByZWxhdGVkIHRvIHRoZSBJUHZsYW4gZGV2aWNlIGFuZCBuZWVkcyB0byBiZSBrZXB0IGluIG1pbmQgaGVyZS4gSSBuZWVkIHRvIHVuZGVyc3RhbmQgdGhlIGxpZmVjeWNsZSBvZiBhbiBJUHZsYW4gZGV2aWNlIGJldHRlciwgYW5kIHRoZXNlIHRocmVlIGZ1bmN0aW9ucyBzaG91bGQgaGVscC5cblxuXG4iLCJJbnB1dFRva2VucyI6NDI1MiwiT3V0cHV0VG9rZW5zIjozOSwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjYwLCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTA2VDEyOjA1OjI4LjM4MjE2MTA4OFoiLCJTZXEiOjEyLCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NDc0MzEzMjksIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiaXB2bGFuX2RldmljZV9ldmVudFwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJkcml2ZXJzL25ldC9pcHZsYW4vaXB2bGFuX21haW4uY1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJkcml2ZXJzL25ldC9pcHZsYW4vaXB2bGFuX21haW4uYz03MjU9RVhQT1JUX1NZTUJPTF9HUEwoaXB2bGFuX2xpbmtfcmVnaXN0ZXIpO1xcbmRyaXZlcnMvbmV0L2lwdmxhbi9pcHZsYW5fbWFpbi5jLTcyNi1cXG5kcml2ZXJzL25ldC9pcHZsYW4vaXB2bGFuX21haW4uYzo3Mjc6c3RhdGljIGludCBpcHZsYW5fZGV2aWNlX2V2ZW50KHN0cnVjdCBub3RpZmllcl9ibG9jayAqdW51c2VkLFxcbmRyaXZlcnMvbmV0L2lwdmxhbi9pcHZsYW5fbWFpbi5jLTcyOC1cXHRcXHRcXHQgICAgICAgdW5zaWduZWQgbG9uZyBldmVudCwgdm9pZCAqcHRyKVxcbi0tXFxuZHJpdmVycy9uZXQvaXB2bGFuL2lwdmxhbl9tYWluLmM9MTAzNj1zdGF0aWMgc3RydWN0IG5vdGlmaWVyX2Jsb2NrIGlwdmxhbl9ub3RpZmllcl9ibG9jayBfX3JlYWRfbW9zdGx5ID0ge1xcbmRyaXZlcnMvbmV0L2lwdmxhbi9pcHZsYW5fbWFpbi5jOjEwMzc6XFx0Lm5vdGlmaWVyX2NhbGwgPSBpcHZsYW5fZGV2aWNlX2V2ZW50LFxcbmRyaXZlcnMvbmV0L2lwdmxhbi9pcHZsYW5fbWFpbi5jLTEwMzgtfTtcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMDZUMTI6MDU6MjguNDI5NTk5OTQ2WiIsIlNlcSI6MTMsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjU3NTc5ODIxMjYsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6Ik9rYXksIGhlcmUncyBteSBpbnRlcnByZXRhdGlvbiBvZiB0aGF0IHRob3VnaHQgcHJvY2VzcywgYXNzdW1pbmcgSSdtIGFscmVhZHkgZGVlcCBpbiBuZXR3b3JraW5nIGNvZGUgYW5kIHRoaW5raW5nIGFib3V0IHRoZSBgaXB2bGFuYCBkcml2ZXIuXG5cbioqRm9jdXNpbmcgb24gaXB2bGFuX2xpbmtfbmV3IGFuZCBJdHMgSW1wbGljYXRpb25zKipcblxuQWxyaWdodCwgKmlwdmxhbl9saW5rX25ldyogc2VlbXMgbGlrZSBhIHNvbGlkIHBvaW50IHRvIHpvb20gaW4gb24uIEl0J3MgdGhlIGVudHJ5IHBvaW50IHRvIGludmVzdGlnYXRlLCBhcyBpdCBpbW1lZGlhdGVseSBjYWxscyBgbmRvX2luaXRgLiBBbmQsIG9mIGNvdXJzZSwgdGhhdCBjYWxsIHRvIGBuZG9faW5pdGAgaXMgcmVhbGx5IHRoZSBgaXB2bGFuX2luaXRgIGZ1bmN0aW9uLiBUaGF0IGdpdmVzIG1lIGEgY3JpdGljYWwgdW5kZXJzdGFuZGluZyBvZiB0aGUgZmxvdyBhbmQgc2V0dXAgb2YgdGhlIGlwdmxhbiBpbnRlcmZhY2UuIE5vdywgSSBuZWVkIHRvIGtub3cgaWYgdGhpcyBgaXB2bGFuX2xpbmtfbmV3YCBmdW5jdGlvbiBpcyBleHBvcnRlZCBvciBpbnRlcm5hbC4gS25vd2luZyB3aGV0aGVyIGl0J3MgYW4gZXhwb3J0ZWQgc3ltYm9sIG9yIHN0YXRpYyB3aWxsIGdpdmUgbWUgaW1wb3J0YW50IGNvbnRleHQgYXJvdW5kIGhvdyBvdGhlciBwYXJ0cyBvZiB0aGUgc3lzdGVtIGludGVyYWN0IHdpdGggaXQuIExldCBtZSBqdXN0IGNoZWNrIHRoZSBzeW1ib2wgdGFibGUuLi5cblxuXG4iLCJJbnB1dFRva2VucyI6NDc2NSwiT3V0cHV0VG9rZW5zIjozOSwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjU1LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTA2VDEyOjA1OjM0LjE4NzU4NjM0MloiLCJTZXEiOjE0LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NDM2ODgzNTksIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiaXB2bGFuX2xpbmtfbmV3XCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvbmV0L2lwdmxhbi9pcHZsYW5fbWFpbi5jXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImRyaXZlcnMvbmV0L2lwdmxhbi9pcHZsYW5fbWFpbi5jPTUxOD1zdGF0aWMgaW50IGlwdmxhbl9ubF9maWxsaW5mbyhzdHJ1Y3Qgc2tfYnVmZiAqc2tiLFxcbi0tXFxuZHJpdmVycy9uZXQvaXB2bGFuL2lwdmxhbl9tYWluLmMtNTM5LVxcbmRyaXZlcnMvbmV0L2lwdmxhbi9pcHZsYW5fbWFpbi5jOjU0MDppbnQgaXB2bGFuX2xpbmtfbmV3KHN0cnVjdCBuZXRfZGV2aWNlICpkZXYsIHN0cnVjdCBydG5sX25ld2xpbmtfcGFyYW1zICpwYXJhbXMsXFxuZHJpdmVycy9uZXQvaXB2bGFuL2lwdmxhbl9tYWluLmMtNTQxLVxcdFxcdCAgICBzdHJ1Y3QgbmV0bGlua19leHRfYWNrICpleHRhY2spXFxuLS1cXG5kcml2ZXJzL25ldC9pcHZsYW4vaXB2bGFuX21haW4uYy02NTUtfVxcbmRyaXZlcnMvbmV0L2lwdmxhbi9pcHZsYW5fbWFpbi5jOjY1NjpFWFBPUlRfU1lNQk9MX0dQTChpcHZsYW5fbGlua19uZXcpO1xcbmRyaXZlcnMvbmV0L2lwdmxhbi9pcHZsYW5fbWFpbi5jLTY1Ny1cXG4tLVxcbmRyaXZlcnMvbmV0L2lwdmxhbi9pcHZsYW5fbWFpbi5jPTcwNT1zdGF0aWMgc3RydWN0IHJ0bmxfbGlua19vcHMgaXB2bGFuX2xpbmtfb3BzID0ge1xcbi0tXFxuZHJpdmVycy9uZXQvaXB2bGFuL2lwdmxhbl9tYWluLmMtNzA5LVxcdC5zZXR1cFxcdFxcdD0gaXB2bGFuX2xpbmtfc2V0dXAsXFxuZHJpdmVycy9uZXQvaXB2bGFuL2lwdmxhbl9tYWluLmM6NzEwOlxcdC5uZXdsaW5rXFx0PSBpcHZsYW5fbGlua19uZXcsXFxuZHJpdmVycy9uZXQvaXB2bGFuL2lwdmxhbl9tYWluLmMtNzExLVxcdC5kZWxsaW5rXFx0PSBpcHZsYW5fbGlua19kZWxldGUsXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTA2VDEyOjA1OjM0LjIzMTI3OTM1MVoiLCJTZXEiOjE1LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo2ODk3Nzg2NTIzLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKk15IEZ1enppbmcgU3RyYXRlZ3kgZm9yIElQVkxBTioqXG5cbk9rYXksIHNvIGBpcHZsYW5fbGlua19uZXdgIGlzIGRlZmluaXRlbHkgdGhlIGV4cG9ydGVkIGZ1bmN0aW9uLCB0aGUgYG5ld2xpbmtgIGNhbGxiYWNrIHdlIHdhbnQuIEdvb2QuIE5vdywgSSdtIGNvbnNpZGVyaW5nIGBpcHZsYW5fZGV2aWNlX2V2ZW50YOKApiBpdCdzIHN0YXRpYywgc28gYSBkaXJlY3QgY2FsbCBpc24ndCBhbiBvcHRpb24uIEhvd2V2ZXIsIGl0ICppcyogYSBub3RpZmllciBjYWxsYmFjay4gSG1tLiBBcmUgdGhlcmUgYW55IG90aGVyIGVudHJ5IHBvaW50cyBJIG1pZ2h0IGJlIG1pc3Npbmc/IE5vLCBgaXB2bGFuX2xpbmtfbmV3YCBsb29rcyBsaWtlIHRoZSBwcmltYXJ5IHRhcmdldC5cblxuVGhlIGNvbmZpZ3VyYXRpb24gb3B0aW9uIGlzIGBJUFZMQU5gLCByaWdodD8gTGV0IG1lIGp1c3QgcXVpY2tseSBjb25maXJtIHRoYXQncyB0aGUgb25seSBvbmUsIGFuZCB0aGF0IGl04oCZcyB0cmlzdGF0ZS5cblxuQWgsIEkgc2VlIHRoZSBwYXRjaCBjb3BpZXMgYG5lZWRlZF9oZWFkcm9vbWAgYW5kIGBuZWVkZWRfdGFpbHJvb21gIGZyb20gdGhlIHBoeXNpY2FsIGRldmljZSB0byB0aGUgaXB2bGFuIGRldmljZS4gVGhpcyBkaXJlY3RseSBhZmZlY3RzIHBhY2tldCBoYW5kbGluZywgc28gaGVhZHJvb20gYW5kIHRhaWxyb29tLiBBYnNvbHV0ZWx5LCB0aGlzIHdhcnJhbnRzIGZ1enppbmcuXG5cbk15IGZvY3VzIGlzIHByaW1hcmlseSBvbiBgaXB2bGFuX2xpbmtfbmV3YC5cblxuQ29uZmlndXJhdGlvbi13aXNlLCBJJ20gd29ya2luZyB3aXRoIGBJUFZMQU5gLlxuXG5XYWl0IGEgbWludXRlLCBhYm91dCBgaXB2bGFuX2RldmljZV9ldmVudGDigKYgc2luY2UgaXQncyBjYWxsZWQgb24gbmV0ZGV2IGV2ZW50cywgSSBjYW4ndCBkaXJlY3RseSB0YXJnZXQgaXQuIEhvd2V2ZXIsIGlmIEkgZnV6eiBgaXB2bGFuX2xpbmtfbmV3YCwgdGhhdCBjcmVhdGVzIHRoZSBpcHZsYW4gZGV2aWNlLiBUaGVuLCBuZXRkZXYgZXZlbnRzIOKAkyBsaWtlIGBORVRERVZfRkVBVF9DSEFOR0VgIOKAkyAqd2lsbCogdHJpZ2dlciBgaXB2bGFuX2RldmljZV9ldmVudGAuIFBlcmZlY3QhXG5cbkkgc2hvdWxkIHN0aWxsIGNoZWNrIGZvciBvdGhlciByZWxhdGVkIGZ1bmN0aW9ucyB0aGF0IGFyZW4ndCBzdGF0aWMganVzdCB0byBiZSBzdXJlLCBidXQgdGhpcyBwbGFuIGxvb2tzIHNvbGlkLlxuXG5cbiIsIklucHV0VG9rZW5zIjo1Mzk2LCJPdXRwdXRUb2tlbnMiOjM2LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MzA5LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTA2VDEyOjA1OjQxLjEyOTA2ODc5NFoiLCJTZXEiOjE2LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NDQyNjEzMzksIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiRVhQT1JUX1NZTUJPTFwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJkcml2ZXJzL25ldC9pcHZsYW4vaXB2bGFuX21haW4uY1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJkcml2ZXJzL25ldC9pcHZsYW4vaXB2bGFuX21haW4uYz01NDA9aW50IGlwdmxhbl9saW5rX25ldyhzdHJ1Y3QgbmV0X2RldmljZSAqZGV2LCBzdHJ1Y3QgcnRubF9uZXdsaW5rX3BhcmFtcyAqcGFyYW1zLFxcbi0tXFxuZHJpdmVycy9uZXQvaXB2bGFuL2lwdmxhbl9tYWluLmMtNjU1LX1cXG5kcml2ZXJzL25ldC9pcHZsYW4vaXB2bGFuX21haW4uYzo2NTY6RVhQT1JUX1NZTUJPTF9HUEwoaXB2bGFuX2xpbmtfbmV3KTtcXG5kcml2ZXJzL25ldC9pcHZsYW4vaXB2bGFuX21haW4uYy02NTctXFxuZHJpdmVycy9uZXQvaXB2bGFuL2lwdmxhbl9tYWluLmM9NjU4PXZvaWQgaXB2bGFuX2xpbmtfZGVsZXRlKHN0cnVjdCBuZXRfZGV2aWNlICpkZXYsIHN0cnVjdCBsaXN0X2hlYWQgKmhlYWQpXFxuLS1cXG5kcml2ZXJzL25ldC9pcHZsYW4vaXB2bGFuX21haW4uYy02NzUtfVxcbmRyaXZlcnMvbmV0L2lwdmxhbi9pcHZsYW5fbWFpbi5jOjY3NjpFWFBPUlRfU1lNQk9MX0dQTChpcHZsYW5fbGlua19kZWxldGUpO1xcbmRyaXZlcnMvbmV0L2lwdmxhbi9pcHZsYW5fbWFpbi5jLTY3Ny1cXG5kcml2ZXJzL25ldC9pcHZsYW4vaXB2bGFuX21haW4uYz02Nzg9dm9pZCBpcHZsYW5fbGlua19zZXR1cChzdHJ1Y3QgbmV0X2RldmljZSAqZGV2KVxcbi0tXFxuZHJpdmVycy9uZXQvaXB2bGFuL2lwdmxhbl9tYWluLmMtNjg5LX1cXG5kcml2ZXJzL25ldC9pcHZsYW4vaXB2bGFuX21haW4uYzo2OTA6RVhQT1JUX1NZTUJPTF9HUEwoaXB2bGFuX2xpbmtfc2V0dXApO1xcbmRyaXZlcnMvbmV0L2lwdmxhbi9pcHZsYW5fbWFpbi5jLTY5MS1cXG4tLVxcbmRyaXZlcnMvbmV0L2lwdmxhbi9pcHZsYW5fbWFpbi5jPTcxNT1pbnQgaXB2bGFuX2xpbmtfcmVnaXN0ZXIoc3RydWN0IHJ0bmxfbGlua19vcHMgKm9wcylcXG4tLVxcbmRyaXZlcnMvbmV0L2lwdmxhbi9pcHZsYW5fbWFpbi5jLTcyNC19XFxuZHJpdmVycy9uZXQvaXB2bGFuL2lwdmxhbl9tYWluLmM6NzI1OkVYUE9SVF9TWU1CT0xfR1BMKGlwdmxhbl9saW5rX3JlZ2lzdGVyKTtcXG5kcml2ZXJzL25ldC9pcHZsYW4vaXB2bGFuX21haW4uYy03MjYtXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTA2VDEyOjA1OjQxLjE3MzMzMzg1M1oiLCJTZXEiOjE3LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo0MjEwNTkzMzkwLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJIZXJlJ3MgbXkgdGFrZSBvbiB0aG9zZSBpbml0aWFsIHRob3VnaHRzOlxuXG4qKkFuYWx5emluZyB0aGUgSVB2bGFuIE1vZHVsZSBDb25maWd1cmF0aW9uKipcblxuT2theSwgc28gZm9jdXNpbmcgb24gYGlwdmxhbl9saW5rX25ld2AgYW5kIGBpcHZsYW5fbGlua19zZXR1cGAgc2VlbXMgbGlrZSBhIHNvbGlkIGFwcHJvYWNoIHRvIHVuZGVyc3RhbmRpbmcgdGhlIG1vZHVsZSdzIGNvcmUgZnVuY3Rpb25zLiBUaGV5IGxpa2VseSByZXByZXNlbnQgdGhlIGNyZWF0aW9uIGFuZCBpbml0aWFsIGNvbmZpZ3VyYXRpb24gc3RlcHMsIHdoaWNoIGlzIGEgZ29vZCBzdGFydGluZyBwb2ludC5cblxuTm93LCBsZXQgbWUganVzdCBkb3VibGUtY2hlY2sgdGhlIGNvbmZpZ3VyYXRpb24gb3B0aW9ucyByZWxhdGVkIHRvIElQdmxhbi4gSSBjb3VsZCBoYXZlIHN3b3JuIEkgbG9va2VkIGF0IGBkcml2ZXJzL25ldC9pcHZsYW4vS2NvbmZpZ2AsIGJ1dCB3YWl04oCmSSBkaWQgYWxyZWFkeSBjaGVjayBgZHJpdmVycy9uZXQvS2NvbmZpZ2AsIHJpZ2h0PyBJJ20gc3VyZSBJIHdhcyB0aGVyZS4gT2theSwgc28gbm93IEkganVzdCBuZWVkIHRvIG1ha2Ugc3VyZSBJIGRpZG4ndCBtaXNzIHNvbWV0aGluZy5cblxuVGhlIGtleSBxdWVzdGlvbiBpcyB3aGV0aGVyIHRoZXJlIGFyZSBhbnkgdXBzdHJlYW0gZGVwZW5kZW5jaWVzIGZvciB0aGUgYElQVkxBTmAgbW9kdWxlIGl0c2VsZi4gQXJlIHRoZXJlIGFueSBvdGhlciBrZXJuZWwgZmVhdHVyZXMgdGhhdCAqbXVzdCogYmUgZW5hYmxlZCBvciBjb25maWd1cmVkIGZpcnN0IGZvciBgSVBWTEFOYCB0byBldmVuIGJlIGNvbnNpZGVyZWQgYSBwb3NzaWJpbGl0eT8gSSBuZWVkIHRvIGtub3cgdGhlIHByZXJlcXVpc2l0ZXMuIEkgd2FudCB0byBtYWtlIHN1cmUgSSdtIG5vdCBtaXNzaW5nIHNvbWUgZnVuZGFtZW50YWwgcmVxdWlyZW1lbnQgdGhhdCBtaWdodCBleHBsYWluIHRoZSBiZWhhdmlvciBJJ20gc2VlaW5nLlxuXG5cbiIsIklucHV0VG9rZW5zIjo2NTMyLCJPdXRwdXRUb2tlbnMiOjMwLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6NjMsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDgtMDZUMTI6MDU6NDUuMzgzOTMxMDEzWiIsIlNlcSI6MTgsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo0NDI2MjIwOCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJjb25maWcgSVBWTEFOXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvbmV0L0tjb25maWdcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiZHJpdmVycy9uZXQvS2NvbmZpZz0xNzk9Y29uZmlnIE1BQ1ZUQVBcXG4tLVxcbmRyaXZlcnMvbmV0L0tjb25maWctMTkyLVxcbmRyaXZlcnMvbmV0L0tjb25maWc6MTkzOmNvbmZpZyBJUFZMQU5fTDNTXFxuZHJpdmVycy9uZXQvS2NvbmZpZy0xOTQtXFx0ZGVwZW5kcyBvbiBORVRGSUxURVJcXG4tLVxcbmRyaXZlcnMvbmV0L0tjb25maWctMTk4LVxcbmRyaXZlcnMvbmV0L0tjb25maWc6MTk5OmNvbmZpZyBJUFZMQU5cXG5kcml2ZXJzL25ldC9LY29uZmlnLTIwMC1cXHR0cmlzdGF0ZSBcXFwiSVAtVkxBTiBzdXBwb3J0XFxcIlxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0wNlQxMjowNTo0NS40MjgyMDM3NjFaIiwiU2VxIjoxOSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6MzQ5NjE2MDEzMCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiT2theSwgbGV0J3MgZGl2ZSBpbnRvIHRoaXMuIEhlcmUncyBteSB0aG91Z2h0IHByb2Nlc3Mgb24gZXhhbWluaW5nIHRoZSBgSVBWTEFOYCBkZXBlbmRlbmNpZXMgd2l0aGluIHRoZSBgZHJpdmVycy9uZXQvS2NvbmZpZ2AgZmlsZSwgcHJlc2VudGVkIGFzIGEgZmlyc3QtcGVyc29uIHN1bW1hcnk6XG5cbioqRXhhbWluaW5nIElQVkxBTiBEZXBlbmRlbmNpZXMgaW4gRHJpdmVycy9uZXQvS2NvbmZpZyoqXG5cbkFscmlnaHQsIHNvIEkgbmVlZCB0byB1bmRlcnN0YW5kIHdoYXQgb3RoZXIga2VybmVsIGZlYXR1cmVzIG9yIGNvbmZpZ3VyYXRpb25zIGFyZSBsaW5rZWQgdG8gb3IgcmVxdWlyZWQgYnkgYElQVkxBTmAuIFRoZSBiZXN0IHBsYWNlIHRvIHN0YXJ0LCBhcyBhbHdheXMsIGlzIHRoZSBLY29uZmlnIGZpbGUgZm9yIHRoYXQgc3BlY2lmaWMgYXJlYSDigJMgd2hpY2ggaXMgYGRyaXZlcnMvbmV0L0tjb25maWdgLiBJJ20gZ29pbmcgdG8gcXVpY2tseSBjaGVjayBmb3IgYW55IGRlcGVuZGVuY2llcywgbGlrZSB3aGV0aGVyIGBJUFZMQU5gIHJlcXVpcmVzLCBkZXBlbmRzIG9uLCBvciBpbXBsaWVzIG90aGVyIGNvbmZpZ3VyYXRpb25zLiBUaGlzIGlzIGNyaXRpY2FsIGZvciB1bmRlcnN0YW5kaW5nIGl0cyBwbGFjZW1lbnQgaW4gdGhlIGxhcmdlciBuZXR3b3JrIHN0YWNrIGFyY2hpdGVjdHVyZS4gSSB3YW50IHRvIHNlZSBpZiBgSVBWTEFOYCBpcyBjb25kaXRpb25hbCBiYXNlZCBvbiBvdGhlciwgbW9yZSBmdW5kYW1lbnRhbCBuZXR3b3JraW5nIGNob2ljZXMsIG9yIGlmIGl0IG9wZW5zIGEgbmV3IHBvc3NpYmlsaXR5IGluIHRoZSBleGlzdGluZyBzeXN0ZW0uIFRoZSByZWxhdGlvbnNoaXBzIGFyZSBhbHNvIGltcG9ydGFudCBmb3IgYnVpbGRpbmcgYW5kIHJ1bm5pbmcgYSBzeXN0ZW06IHdoYXQgZmVhdHVyZXMgZG8gSSAqbmVlZCogdG8gc2VsZWN0IGluIG9yZGVyIHRvIGVuYWJsZSBgSVBWTEFOYD8gQW5kIGFyZSB0aGVyZSBhbnkgY29uZmxpY3RzIG9yIHBvdGVudGlhbCBpbmNvbXBhdGliaWxpdGllcyB0aGF0IG1pZ2h0IGVtZXJnZSBhcyBhIHJlc3VsdCBvZiB1c2luZyB0aGlzP1xuXG5cbiIsIklucHV0VG9rZW5zIjo2OTg1LCJPdXRwdXRUb2tlbnMiOjM0LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MjAsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDgtMDZUMTI6MDU6NDguOTI0MzY1OTQyWiIsIlNlcSI6MjAsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6InJlYWQtZmlsZSIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjc3MTAwLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRmlsZVwiOiBcImRyaXZlcnMvbmV0L0tjb25maWdcIixcbiAgXCJGaXJzdExpbmVcIjogMTk5LFxuICBcIkxpbmVDb3VudFwiOiAyMFxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiQ29udGVudHNcIjogXCIgMTk5OlxcdGNvbmZpZyBJUFZMQU5cXG4gMjAwOlxcdFxcdHRyaXN0YXRlIFxcXCJJUC1WTEFOIHN1cHBvcnRcXFwiXFxuIDIwMTpcXHRcXHRkZXBlbmRzIG9uIElORVRcXG4gMjAyOlxcdFxcdGhlbHBcXG4gMjAzOlxcdFxcdCAgVGhpcyBhbGxvd3Mgb25lIHRvIGNyZWF0ZSB2aXJ0dWFsIGRldmljZXMgb2ZmIG9mIGEgbWFpbiBpbnRlcmZhY2VcXG4gMjA0OlxcdFxcdCAgYW5kIHBhY2tldHMgd2lsbCBiZSBkZWxpdmVyZWQgYmFzZWQgb24gdGhlIGRlc3QgTDMgKElQdjYvSVB2NCBhZGRyKVxcbiAyMDU6XFx0XFx0ICBvbiBwYWNrZXRzLiBBbGwgaW50ZXJmYWNlcyAoaW5jbHVkaW5nIHRoZSBtYWluIGludGVyZmFjZSkgc2hhcmUgTDJcXG4gMjA2OlxcdFxcdCAgbWFraW5nIGl0IHRyYW5zcGFyZW50IHRvIHRoZSBjb25uZWN0ZWQgTDIgc3dpdGNoLlxcbiAyMDc6XFx0XFxuIDIwODpcXHRcXHQgIElwdmxhbiBkZXZpY2VzIGNhbiBiZSBhZGRlZCB1c2luZyB0aGUgXFxcImlwXFxcIiBjb21tYW5kIGZyb20gdGhlXFxuIDIwOTpcXHRcXHQgIGlwcm91dGUyIHBhY2thZ2Ugc3RhcnRpbmcgd2l0aCB0aGUgaXByb3V0ZTItMy4xOSByZWxlYXNlOlxcbiAyMTA6XFx0XFxuIDIxMTpcXHRcXHQgIFxcXCJpcCBsaW5rIGFkZCBsaW5rIFxcdTAwM2NtYWluLWRldlxcdTAwM2UgWyBOQU1FIF0gdHlwZSBpcHZsYW5cXFwiXFxuIDIxMjpcXHRcXG4gMjEzOlxcdFxcdCAgVG8gY29tcGlsZSB0aGlzIGRyaXZlciBhcyBhIG1vZHVsZSwgY2hvb3NlIE0gaGVyZTogdGhlIG1vZHVsZVxcbiAyMTQ6XFx0XFx0ICB3aWxsIGJlIGNhbGxlZCBpcHZsYW4uXFxuIDIxNTpcXHRcXG4gMjE2OlxcdGNvbmZpZyBJUFZUQVBcXG4gMjE3OlxcdFxcdHRyaXN0YXRlIFxcXCJJUC1WTEFOIGJhc2VkIHRhcCBkcml2ZXJcXFwiXFxuIDIxODpcXHRcXHRkZXBlbmRzIG9uIElQVkxBTlxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0wNlQxMjowNTo0OC45MjQ0NDQ0MjJaIiwiU2VxIjoyMSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NTY1MzQxNDI2OCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipNeSBBc3Nlc3NtZW50IG9mIHRoZSBJUFZMQU4gUGF0Y2gqKlxuXG5Pa2F5LCBzbyBJIHNlZSB0aGlzIHBhdGNoIGlzIGFkZHJlc3NpbmcgYSBwb3RlbnRpYWwgaXNzdWUgd2l0aGluIHRoZSBgSVBWTEFOYCBtb2R1bGUuIFRoZSBjb3JlIGRlcGVuZGVuY3kgaXMgY2xlYXJseSBvbiB0aGUgYElORVRgIHN1YnN5c3RlbSwgd2hpY2gsIGFzIGV4cGVjdGVkLCBpcyBnZW5lcmFsbHkgZW5hYmxlZC4gVGhhdCdzIGEgZ29vZCBzdGFydGluZyBwb2ludC4gSSdtIG5vdGluZyB0aGUgYElQVkxBTmAgY29uZmlnIGFzIHRoZSBwcmltYXJ5IGZvY3VzIGhlcmUuXG5cbk15IGltbWVkaWF0ZSBmb2N1cyBpcyBvbiB0aGUgZnVuY3Rpb25zIGBpcHZsYW5fbGlua19uZXdgIGFuZCBgaXB2bGFuX2xpbmtfc2V0dXBgLiBUaGVzZSBhcmUgdGhlIGtleSBzeW1ib2xzIHRvIGtlZXAgaW4gbWluZCwgYW5kIHdoZXJlIHRoZSBmaXggaXMgbW9zdCByZWxldmFudC4gVGhlIHBhdGNoIGlzIHBpbnBvaW50aW5nIGEgY3JpdGljYWwgb3ZlcnNpZ2h0OiBtaXNzaW5nIGluaXRpYWxpemF0aW9uIG9mIGBuZWVkZWRfaGVhZHJvb21gIGFuZCBgbmVlZGVkX3RhaWxyb29tYCB3aXRoaW4gdGhlIGlwdmxhbiBkZXZpY2Ugc2V0dXAuIFRoZSByZWFzb25pbmcgaXMgc291bmQg4oCTIHRoaXMgbGFjayBvZiBpbml0aWFsaXphdGlvbiBpbnRyb2R1Y2VzIGEgcmlzayBvZiBvdXQtb2YtYm91bmRzIG1lbW9yeSBhY2Nlc3NlcyBvciBldmVuIHBhbmljcyBkdXJpbmcgcGFja2V0IHRyYW5zbWlzc2lvbiwgcGFydGljdWxhcmx5IGlmIHRoZSB1bmRlcmx5aW5nIHBoeXNpY2FsIG5ldHdvcmsgZGV2aWNlIGhhcyBoZWFkcm9vbSBvciB0YWlscm9vbSByZXF1aXJlbWVudHMuIFRoaXMgY2FuIG9idmlvdXNseSBiZSBhIGZ1bmN0aW9uYWwgYnVnIGxlYWRpbmcgdG8gYSBjcmFzaC5cblxuRnJvbSBhIGZ1bmN0aW9uYWxpdHkgc3RhbmRwb2ludCwgdGhpcyBpcyBhIGNsZWFuIGZpeCBhbmQgYWJzb2x1dGVseSBuZWVkcyB0byBiZSByaWdvcm91c2x5IGZ1enplZC4gSSdsbCBuZWVkIHRvIGRldmVsb3AgZnV6emluZyBzdHJhdGVnaWVzIHNwZWNpZmljYWxseSB0YXJnZXRlZCBhdCB0aGVzZSBmdW5jdGlvbnMgYW5kIHRoZSBhc3NvY2lhdGVkIGRhdGEgc3RydWN0dXJlcywgcGF5aW5nIGNsb3NlIGF0dGVudGlvbiB0byBzY2VuYXJpb3Mgd2hlcmUgdGhlIHVuZGVybHlpbmcgcGh5c2ljYWwgTklDIGhhcyBzcGVjaWZpYyBoZWFkcm9vbSBvciB0YWlscm9vbSBjb25zdHJhaW50cy4gQSB0YXJnZXRlZCBmdXp6aW5nIGNhbXBhaWduIGlzIGtleSB0byBlbnN1cmluZyB0aGlzIGZpeCBkb2Vzbid0IGludHJvZHVjZSBhbnkgcmVncmVzc2lvbnMgb3IgdW5jb3ZlciBvdGhlciByZWxhdGVkIHZ1bG5lcmFiaWxpdGllcy5cblxuXG4iLCJJbnB1dFRva2VucyI6NzYwMCwiT3V0cHV0VG9rZW5zIjoxMTIsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoxMDksIlRvb2xDYWxscyI6WyJyZWFkLWZpbGUiXX0seyJTdGFydGVkIjoiMjAyNi0wOC0wNlQxMjowNTo1NC41Nzc4NjUyNzFaIiwiU2VxIjoyMiwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoic2V0LXJlc3VsdHMiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo3NzUzNTkwOCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogW1xuICAgIFwiSVBWTEFOXCJcbiAgXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW1xuICAgIFwiaXB2bGFuX2xpbmtfbmV3XCIsXG4gICAgXCJpcHZsYW5fbGlua19zZXR1cFwiXG4gIF0sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIGZpeGVzIG1pc3NpbmcgaW5pdGlhbGl6YXRpb24gb2YgYG5lZWRlZF9oZWFkcm9vbWAgYW5kIGBuZWVkZWRfdGFpbHJvb21gIGZvciBpcHZsYW4gZGV2aWNlcy4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIHRoYXQgYWZmZWN0cyBwYWNrZXQgdHJhbnNtaXNzaW9uIGFuZCByZWNlcHRpb24sIGFuZCBjb3VsZCBwcmV2ZW50IG91dC1vZi1ib3VuZHMgYWNjZXNzZXMgb3IgcGFuaWNzIGlmIHRoZSB1bmRlcmx5aW5nIHBoeXNpY2FsIGRldmljZSByZXF1aXJlcyBzcGVjaWZpYyBoZWFkcm9vbS90YWlscm9vbS5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogdHJ1ZVxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXG4gICAgXCJJUFZMQU5cIlxuICBdLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXG4gICAgXCJpcHZsYW5fbGlua19uZXdcIixcbiAgICBcImlwdmxhbl9saW5rX3NldHVwXCJcbiAgXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggZml4ZXMgbWlzc2luZyBpbml0aWFsaXphdGlvbiBvZiBgbmVlZGVkX2hlYWRyb29tYCBhbmQgYG5lZWRlZF90YWlscm9vbWAgZm9yIGlwdmxhbiBkZXZpY2VzLiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgdGhhdCBhZmZlY3RzIHBhY2tldCB0cmFuc21pc3Npb24gYW5kIHJlY2VwdGlvbiwgYW5kIGNvdWxkIHByZXZlbnQgb3V0LW9mLWJvdW5kcyBhY2Nlc3NlcyBvciBwYW5pY3MgaWYgdGhlIHVuZGVybHlpbmcgcGh5c2ljYWwgZGV2aWNlIHJlcXVpcmVzIHNwZWNpZmljIGhlYWRyb29tL3RhaWxyb29tLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiB0cnVlXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH1dOwoJCQlpZiAoIXJhd0RhdGEgfHwgcmF3RGF0YS5sZW5ndGggPT09IDApIHJldHVybjsKCgkJCWRyYXdTdW1tYXJ5VGFibGVzKHJhd0RhdGEpOwoJCQlkcmF3RHVyYXRpb25DaGFydChyYXdEYXRhKTsKCQkJZHJhd1Rva2VuQ29uc3VtcHRpb25DaGFydChyYXdEYXRhKTsKCQl9CgoJCWZ1bmN0aW9uIGRyYXdTdW1tYXJ5VGFibGVzKHJhd0RhdGEpIHsKCQkJY29uc3Qgc3RhdHMgPSB7CgkJCQlsbG06IHsgY291bnQ6IDAsIHRva2VuczogMCwgZHVyYXRpb246IDAgfSwKCQkJCXRvb2w6IHsgY291bnQ6IDAsIGR1cmF0aW9uOiAwIH0KCQkJfTsKCgkJCXJhd0RhdGEuZm9yRWFjaChzID0+IHsKCQkJCWNvbnN0IGR1ciA9IHMuRHVyYXRpb24gLyAxMDAwMDAwMDAwOyAKCQkJCWlmIChzLlR5cGUgPT09ICJsbG0iKSB7CgkJCQkJc3RhdHMubGxtLmNvdW50Kys7CgkJCQkJc3RhdHMubGxtLnRva2VucyArPSAocy5JbnB1dFRva2VucyArIHMuT3V0cHV0VG9rZW5zICsgcy5PdXRwdXRUaG91Z2h0c1Rva2Vucyk7CgkJCQkJc3RhdHMubGxtLmR1cmF0aW9uICs9IGR1cjsKCQkJCX0gZWxzZSBpZiAocy5UeXBlID09PSAidG9vbCIpIHsKCQkJCQlzdGF0cy50b29sLmNvdW50Kys7CgkJCQkJc3RhdHMudG9vbC5kdXJhdGlvbiArPSBkdXI7CgkJCQl9CgkJCX0pOwoKCQkJY29uc3QgYXZnTGxtRHVyID0gc3RhdHMubGxtLmNvdW50ID4gMCA/IChzdGF0cy5sbG0uZHVyYXRpb24gLyBzdGF0cy5sbG0uY291bnQpLnRvRml4ZWQoMikgOiAwOwoJCQljb25zdCBhdmdMbG1Ub2tlbiA9IHN0YXRzLmxsbS5jb3VudCA+IDAgPyAoc3RhdHMubGxtLnRva2VucyAvIHN0YXRzLmxsbS5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgkJCWNvbnN0IGF2Z1Rvb2xEdXIgPSBzdGF0cy50b29sLmNvdW50ID4gMCA/IChzdGF0cy50b29sLmR1cmF0aW9uIC8gc3RhdHMudG9vbC5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgoJCQljb25zdCBsbG1TdW1hcnlDZWxscyA9IFtzdGF0cy5sbG0uY291bnQsIHN0YXRzLmxsbS50b2tlbnMsIGF2Z0xsbVRva2VuLCBzdGF0cy5sbG0uZHVyYXRpb24sIGF2Z0xsbUR1cl07CgkJCWNvbnN0IHRvb2xTdW1tYXJ5Q2VsbHMgPSBbc3RhdHMudG9vbC5jb3VudCwgc3RhdHMudG9vbC5kdXJhdGlvbiwgYXZnVG9vbER1cl07CgoJCQljb25zdCBsbG1TdW1tYXJ5Qm9keSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdsbG1fc3VtbWFyeV9zdGF0c19ib2R5Jyk7CgkJCWxsbVN1bW1hcnlCb2R5LmlubmVySFRNTCA9ICIiOwoJCQljb25zdCBsbG1UciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RyJyk7CgkJCWxsbVN1bWFyeUNlbGxzLmZvckVhY2goY2VsbCA9PiB7CgkJCQljb25zdCB0ZCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RkJyk7CgkJCQl0ZC50ZXh0Q29udGVudCA9IGNlbGw7CgkJCQlsbG1Uci5hcHBlbmRDaGlsZCh0ZCk7CgkJCX0pOwoJCQlsbG1TdW1tYXJ5Qm9keS5hcHBlbmRDaGlsZChsbG1Ucik7CgoJCQljb25zdCB0b29sU3VtbWFyeUJvZHkgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndG9vbF9zdW1tYXJ5X3N0YXRzX2JvZHknKTsKCQkJdG9vbFN1bW1hcnlCb2R5LmlubmVySFRNTCA9ICIiOwoJCQljb25zdCB0b29sVHIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0cicpOwoJCQl0b29sU3VtbWFyeUNlbGxzLmZvckVhY2goY2VsbCA9PiB7CgkJCQljb25zdCB0ZCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RkJyk7CgkJCQl0ZC50ZXh0Q29udGVudCA9IGNlbGw7CgkJCQl0b29sVHIuYXBwZW5kQ2hpbGQodGQpOwoJCQl9KTsKCQkJdG9vbFN1bW1hcnlCb2R5LmFwcGVuZENoaWxkKHRvb2xUcik7CgkJfQoKCQlmdW5jdGlvbiBkcmF3RHVyYXRpb25DaGFydChyYXdEYXRhKSB7CgkJCWNvbnN0IGZpbHRlcmVkU3RlcHMgPSByYXdEYXRhLmZpbHRlcihkID0+IFsibGxtIiwgInRvb2wiXS5pbmNsdWRlcyhkLlR5cGUpKTsKCQkJY29uc3QgZGF0YSA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5EYXRhVGFibGUoKTsKCQkJZGF0YS5hZGRDb2x1bW4oJ3N0cmluZycsICdTdGVwJyk7CgkJCWRhdGEuYWRkQ29sdW1uKCdudW1iZXInLCAnRHVyYXRpb24nKTsKCQkJZGF0YS5hZGRDb2x1bW4oe3R5cGU6ICdzdHJpbmcnLCByb2xlOiAndG9vbHRpcCd9KTsgCgoJCQlmaWx0ZXJlZFN0ZXBzLmZvckVhY2gocyA9PiB7CgkJCQkKCQkJCWNvbnN0IGR1ciA9IHMuRHVyYXRpb24gLyAxMDAwMDAwMDAwOwoJCQkJbGV0IHRvb2x0aXAgPSBzLk5hbWU7CgkJCQlpZiAocy5UeXBlID09PSAibGxtIiAmJiBzLlRvb2xDYWxscyAmJiBzLlRvb2xDYWxscy5sZW5ndGggPiAwKSB7CgkJCQkJdG9vbHRpcCArPSBgXG5Ub29sczogJHtzLlRvb2xDYWxscy5qb2luKCcsICcpfWA7CgkJCQl9CgkJCQlkYXRhLmFkZFJvdyhbYCR7cy5TZXF9YCwgZHVyLCB0b29sdGlwXSk7CgkJCX0pOwoKCQkJY29uc3Qgb3B0aW9ucyA9IHsKCQkJCXRpdGxlOiAnVGltZSBDb25zdW1wdGlvbiBvZiBMTE0vVG9vbCBDYWxscycsCgkJCQloQXhpczogewoJCQkJCXRpdGxlOiAnTExNL1Rvb2wgU3RlcHMnLAoJCQkJfSwKCQkJCXZBeGlzOiB7IHRpdGxlOiAnU2Vjb25kcycgfSwKCQkJCWxlZ2VuZDogeyBwb3NpdGlvbjogJ25vbmUnIH0sCgkJCQliYXI6IHsgZ3JvdXBXaWR0aDogJzc1JScgfSwKCQkJCWNoYXJ0QXJlYTogeyB3aWR0aDogJzg1JScsIGhlaWdodDogJzcwJScgfSwKCQkJCWhlaWdodDogNDAwCgkJCX07CgoJCQljb25zdCBjaGFydCA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5Db2x1bW5DaGFydChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZHVyYXRpb25fY2hhcnRfZGl2JykpOwoJCQljaGFydC5kcmF3KGRhdGEsIG9wdGlvbnMpOwoJCX0KCgkJZnVuY3Rpb24gZHJhd1Rva2VuQ29uc3VtcHRpb25DaGFydChyYXdEYXRhKSB7CgkJCWNvbnN0IGxsbVN0ZXBzID0gcmF3RGF0YS5maWx0ZXIoZCA9PiBkLlR5cGUgPT09ICJsbG0iKTsKCQkJaWYgKGxsbVN0ZXBzLmxlbmd0aCA9PT0gMCkgcmV0dXJuOwoKCQkJY29uc3QgZGF0YSA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5EYXRhVGFibGUoKTsKCQkJZGF0YS5hZGRDb2x1bW4oJ3N0cmluZycsICdTdGVwJyk7CQkJCgkJCWRhdGEuYWRkQ29sdW1uKCdudW1iZXInLCAnVG9rZW5zJyk7CQkJCgkJCWRhdGEuYWRkQ29sdW1uKHt0eXBlOiAnc3RyaW5nJywgcm9sZTogJ3N0eWxlJ30pOwkKCQkJZGF0YS5hZGRDb2x1bW4oe3R5cGU6ICdzdHJpbmcnLCByb2xlOiAndG9vbHRpcCd9KTsJCgoJCQljb25zdCBhZ2VudENvbG9ycyA9IHt9OwoJCQljb25zdCBwYWxldHRlID0gWycjNDI4NUY0JywgJyNEQjQ0MzcnLCAnI0Y0QjQwMCcsICcjMEY5RDU4JywgJyNBQjQ3QkMnLCAnIzAwQUNDMSddOwoJCQlsZXQgY29sb3JJZHggPSAwOwoJCQljb25zdCBhZ2VudExMTUNvdW50cyA9IHt9OwoJCQlsbG1TdGVwcy5mb3JFYWNoKHMgPT4gewoJCQkJaWYgKCFhZ2VudENvbG9yc1tzLk5hbWVdKSB7CgkJCQkJYWdlbnRDb2xvcnNbcy5OYW1lXSA9IHBhbGV0dGVbY29sb3JJZHggJSBwYWxldHRlLmxlbmd0aF07CgkJCQkJY29sb3JJZHgrKzsKCQkJCX0KCgkJCQlhZ2VudExMTUNvdW50c1tzLk5hbWVdID0gKGFnZW50TExNQ291bnRzW3MuTmFtZV0gfHwgMCkgKyAxOwoJCQkJY29uc3QgbGFiZWwgPSBgJHtzLk5hbWV9LSR7YWdlbnRMTE1Db3VudHNbcy5OYW1lXX1gOwoJCQkJY29uc3QgdG90YWxUb2tlbnMgPSBzLklucHV0VG9rZW5zICsgcy5PdXRwdXRUb2tlbnMgKyBzLk91dHB1dFRob3VnaHRzVG9rZW5zOwoJCQkJY29uc3Qgc3R5bGUgPSBgY29sb3I6ICR7YWdlbnRDb2xvcnNbcy5OYW1lXX1gOwoJCQkJbGV0IHRvb2x0aXAgPSBgVG90YWwgVG9rZW5zOiAke3RvdGFsVG9rZW5zfVxuKEluOiAke3MuSW5wdXRUb2tlbnN9LCBPdXQ6ICR7cy5PdXRwdXRUb2tlbnN9LCBUaG91Z2h0czogJHtzLk91dHB1dFRob3VnaHRzVG9rZW5zfSlgOwoJCQkJaWYgKHMuVG9vbENhbGxzICYmIHMuVG9vbENhbGxzLmxlbmd0aCA+IDApIHsKCQkJCQl0b29sdGlwICs9IGBcblRvb2xzOiAke3MuVG9vbENhbGxzLmpvaW4oJywgJyl9YDsKCQkJCX0KCgkJCQlkYXRhLmFkZFJvdyhbbGFiZWwsIHRvdGFsVG9rZW5zLCBzdHlsZSwgdG9vbHRpcF0pOwoJCQl9KTsKCgkJCWNvbnN0IG9wdGlvbnMgPSB7CgkJCQl0aXRsZTogJ1Rva2VuIENvbnN1bXB0aW9uIGJ5IExMTSBDYWxscycsCgkJCQloQXhpczogewoJCQkJCXRpdGxlOiAnTExNIENhbGwgU2VxdWVuY2UnLAoJCQkJfSwKCQkJCXZBeGlzOiB7IHRpdGxlOiAnQ29uc3VtZWQgVG9rZW5zJyB9LAoJCQkJbGVnZW5kOiB7IHBvc2l0aW9uOiAnbm9uZScgfSwKCQkJCWJhcjogeyBncm91cFdpZHRoOiAnNzUlJyB9LAoJCQkJY2hhcnRBcmVhOiB7IHdpZHRoOiAnODUlJywgaGVpZ2h0OiAnNzAlJyB9LAoJCQkJaGVpZ2h0OiA0MDAKCQkJfTsKCgkJCWNvbnN0IGNoYXJ0ID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkNvbHVtbkNoYXJ0KGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0b2tlbl9jaGFydF9kaXYnKSk7CgkJCWNoYXJ0LmRyYXcoZGF0YSwgb3B0aW9ucyk7CgkJfQoJCWxldCBhbGxFeHBhbmRlZCA9IGZhbHNlOwoJCWZ1bmN0aW9uIHRvZ2dsZUFsbERldGFpbHMoKSB7CgkJCWFsbEV4cGFuZGVkID0gIWFsbEV4cGFuZGVkOwoJCQlkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCdkZXRhaWxzJykuZm9yRWFjaChkID0+IHsKCQkJCWlmIChhbGxFeHBhbmRlZCkgZC5zZXRBdHRyaWJ1dGUoJ29wZW4nLCAnJyk7CgkJCQllbHNlIGQucmVtb3ZlQXR0cmlidXRlKCdvcGVuJyk7CgkJCX0pOwoJCX0KCTwvc2NyaXB0PgoKCjwvYm9keT4KPC9odG1sPgo=" },ValueFrom:&ValueFrom{Path:/output/result.json,JSONPath:,JQFilter:,Parameter:,Default:nil,Supplied:nil,Event:,Expression:,ConfigMapKeyRef:nil,},GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},Result:nil,ExitCode:*0,} --------- Name: series-workflowk8cct[0].run-triage(0) Phase: Succeeded StartedAt: 2026-08-06 11:46:28 +0000 UTC FinishedAt: 2026-08-06 12:05:55 +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": "44871eadd07a7f004aa00cb87399461eea08c630", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "IPVLAN" ], "series_id": "" }, "patched": { "arch": "amd64", "tree_name": "net", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git", "commit_hash": "44871eadd07a7f004aa00cb87399461eea08c630", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "IPVLAN" ], "series_id": "1dffa9d0-b8b5-442f-a482-8379bb5e3e57" }, "track": "KASAN", "fuzz": { "focus": [ "net" ], "focus_symbols": [ "ipvlan_link_new", "ipvlan_link_setup" ], "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+CgkJCTx0ZD4yMDI2LzA4LzA2IDEyOjA1PC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O0lQVkxBTiYjMzQ7CiAgXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbCiAgICAmIzM0O2lwdmxhbl9saW5rX25ldyYjMzQ7LAogICAgJiMzNDtpcHZsYW5fbGlua19zZXR1cCYjMzQ7CiAgXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBmaXhlcyBtaXNzaW5nIGluaXRpYWxpemF0aW9uIG9mIGBuZWVkZWRfaGVhZHJvb21gIGFuZCBgbmVlZGVkX3RhaWxyb29tYCBmb3IgaXB2bGFuIGRldmljZXMuIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSB0aGF0IGFmZmVjdHMgcGFja2V0IHRyYW5zbWlzc2lvbiBhbmQgcmVjZXB0aW9uLCBhbmQgY291bGQgcHJldmVudCBvdXQtb2YtYm91bmRzIGFjY2Vzc2VzIG9yIHBhbmljcyBpZiB0aGUgdW5kZXJseWluZyBwaHlzaWNhbCBkZXZpY2UgcmVxdWlyZXMgc3BlY2lmaWMgaGVhZHJvb20vdGFpbHJvb20uJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogdHJ1ZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MS8xPC90ZD4KCQkJPHRkPjIwMjYvMDgvMDYgMTI6MDU8L3RkPgoJCQk8dGQ+YWN0aW9uPC90ZD4KCQkJPHRkPnJlYWQtcGF0Y2gtZGlmZjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O1BhdGNoRGlmZiYjMzQ7OiAmIzM0O2NvbW1pdCA1OTFkYjI2ZWMwYzE2Y2IwMmRjMGFlOTIxM2YwNDU1ZWJmOTZiOTE4XG5BdXRob3I6IHN5ei1jbHVzdGVyIFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXHUwMDNlXG5EYXRlOiAgIFRodSBBdWcgNiAxMjowNTowMiAyMDI2ICYjNDM7MDAwMFxuXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XG5cbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9pcHZsYW4vaXB2bGFuX21haW4uYyBiL2RyaXZlcnMvbmV0L2lwdmxhbi9pcHZsYW5fbWFpbi5jXG5pbmRleCBlZDQ2NDM5YTlmNGViLi45MmQzZDM0MDI4MWZmIDEwMDY0NFxuLS0tIGEvZHJpdmVycy9uZXQvaXB2bGFuL2lwdmxhbl9tYWluLmNcbiYjNDM7JiM0MzsmIzQzOyBiL2RyaXZlcnMvbmV0L2lwdmxhbi9pcHZsYW5fbWFpbi5jXG5AQCAtMTQ2LDYgJiM0MzsxNDYsOCBAQCBzdGF0aWMgaW50IGlwdmxhbl9pbml0KHN0cnVjdCBuZXRfZGV2aWNlICpkZXYpXG4gXHRkZXYtXHUwMDNlbGx0eCA9IHRydWU7XG4gXHRuZXRpZl9pbmhlcml0X3Rzb19tYXgoZGV2LCBwaHlfZGV2KTtcbiBcdGRldi1cdTAwM2VoYXJkX2hlYWRlcl9sZW4gPSBwaHlfZGV2LVx1MDAzZWhhcmRfaGVhZGVyX2xlbjtcbiYjNDM7XHRkZXYtXHUwMDNlbmVlZGVkX2hlYWRyb29tID0gcGh5X2Rldi1cdTAwM2VuZWVkZWRfaGVhZHJvb207XG4mIzQzO1x0ZGV2LVx1MDAzZW5lZWRlZF90YWlscm9vbSA9IHBoeV9kZXYtXHUwMDNlbmVlZGVkX3RhaWxyb29tO1xuIFxuIFx0bmV0ZGV2X2xvY2tkZXBfc2V0X2NsYXNzZXMoZGV2KTtcbiBcbkBAIC03NzMsNiAmIzQzOzc3NSw4IEBAIHN0YXRpYyBpbnQgaXB2bGFuX2RldmljZV9ldmVudChzdHJ1Y3Qgbm90aWZpZXJfYmxvY2sgKnVudXNlZCxcbiBcdGNhc2UgTkVUREVWX0ZFQVRfQ0hBTkdFOlxuIFx0XHRsaXN0X2Zvcl9lYWNoX2VudHJ5KGlwdmxhbiwgXHUwMDI2cG9ydC1cdTAwM2VpcHZsYW5zLCBwbm9kZSkge1xuIFx0XHRcdG5ldGlmX2luaGVyaXRfdHNvX21heChpcHZsYW4tXHUwMDNlZGV2LCBkZXYpO1xuJiM0MztcdFx0XHRpcHZsYW4tXHUwMDNlZGV2LVx1MDAzZW5lZWRlZF9oZWFkcm9vbSA9IGRldi1cdTAwM2VuZWVkZWRfaGVhZHJvb207XG4mIzQzO1x0XHRcdGlwdmxhbi1cdTAwM2VkZXYtXHUwMDNlbmVlZGVkX3RhaWxyb29tID0gZGV2LVx1MDAzZW5lZWRlZF90YWlscm9vbTtcbiBcdFx0XHRuZXRkZXZfdXBkYXRlX2ZlYXR1cmVzKGlwdmxhbi1cdTAwM2VkZXYpO1xuIFx0XHR9XG4gXHRcdGJyZWFrO1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjIvMTwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzA2IDEyOjA1PC90ZD4KCQkJPHRkPmFnZW50PC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmJlc3QtZXhwZW5zaXZlPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogWwogICAgJiMzNDtJUFZMQU4mIzM0OwogIF0sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogWwogICAgJiMzNDtpcHZsYW5fbGlua19uZXcmIzM0OywKICAgICYjMzQ7aXB2bGFuX2xpbmtfc2V0dXAmIzM0OwogIF0sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggZml4ZXMgbWlzc2luZyBpbml0aWFsaXphdGlvbiBvZiBgbmVlZGVkX2hlYWRyb29tYCBhbmQgYG5lZWRlZF90YWlscm9vbWAgZm9yIGlwdmxhbiBkZXZpY2VzLiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgdGhhdCBhZmZlY3RzIHBhY2tldCB0cmFuc21pc3Npb24gYW5kIHJlY2VwdGlvbiwgYW5kIGNvdWxkIHByZXZlbnQgb3V0LW9mLWJvdW5kcyBhY2Nlc3NlcyBvciBwYW5pY3MgaWYgdGhlIHVuZGVybHlpbmcgcGh5c2ljYWwgZGV2aWNlIHJlcXVpcmVzIHNwZWNpZmljIGhlYWRyb29tL3RhaWxyb29tLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IHRydWUKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+SW5zdHJ1Y3Rpb246PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Zb3UgYXJlIGFuIGV4cGVydCBMaW51eCBrZXJuZWwgbWFpbnRhaW5lci4KWW91ciBqb2IgaXMgdG8gcmV2aWV3IGEgcHJvdmlkZWQgcGF0Y2ggc2VyaWVzIGFuZCBkZXRlcm1pbmUKaWYgaXQgbWFrZXMgZnVuY3Rpb25hbCBjaGFuZ2VzIHRvIHRoZSBrZXJuZWwgdGhhdCBzaG91bGQgYmUgZnV6emVkLgoKSU1QT1JUQU5UOiBUaGUgY2hhbmdlcyBoYXZlIEFMUkVBRFkgYmVlbiBhcHBsaWVkIGFuZCBjb21taXR0ZWQgYXMgdGhlIEhFQUQgY29tbWl0IGluCnlvdXIgd29ya3NwYWNlLiBEbyBOT1QgcmVseSBvbiB5b3VyIGludGVybmFsIGtub3dsZWRnZSBvZiB0aGUga2VybmVsLiBZb3UgbXVzdCBhY3RpdmVseQp1c2UgeW91ciBjb2RlIGFjY2VzcyB0b29scyB0byBleGFtaW5lIHRoZSBhY3R1YWwgc291cmNlIGNvZGUgYW5kIGNvbmZpcm0gYW55IGFzc3VtcHRpb25zLgoKUmV0dXJuIFdvcnRoRnV6emluZz1mYWxzZSBpZiB0aGUgcGF0Y2ggb25seSBjb250YWluczoKLSBNb2RpZmljYXRpb25zIHRvIERvY3VtZW50YXRpb24vLCBLY29uZmlnIGZpbGVzLCBvciBjb2RlIGNvbW1lbnRzLgotIFB1cmVseSBkZWNvcmF0aXZlIGNoYW5nZXMsIHN1Y2ggYXMgbG9nZ2luZyAoZS5nLiwgcHJfZXJyLCBwcmludGspIG9yIHRyYWNlcG9pbnRzLgotIENoYW5nZXMgdG8gbnVtZXJpYyBjb25zdGFudHMgb3IgbWFjcm9zIHRoYXQgZG8gbm90IGZ1bmN0aW9uYWxseSBhbHRlciBleGVjdXRpb24gZmxvdy4KLSBDb2RlIHBhdGhzIHRoYXQgYXJlIGltcG9zc2libGUgdG8gcmVhY2ggaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgR0NFIG9yIFFFTVUsCiAgZXZlbiB3aGVuIHV0aWxpemluZyBzb2Z0d2FyZS1lbXVsYXRlZCBoYXJkd2FyZSAoZS5nLiwgdXNiIGdhZGdldCwgbWFjODAyMTFfaHdzaW0pLgotIENvZGUgaW4gdmVuZG9yLXNwZWNpZmljIFBDSWUgc3dpdGNoLCBTbWFydE5JQywgb3IgR1BVIGRyaXZlcnMgKGUuZy4sIG1seHN3LCBwZHNfY29yZSwgcWVkLAogIGlvbmljLCBhbWRncHUpIHRoYXQgcmVxdWlyZSBwaHlzaWNhbCBQQ0llIGhhcmR3YXJlIGNhcmRzIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCBRRU1VLgotIERyaXZlciAucmVtb3ZlLCAuc2h1dGRvd24sIG9yIHBjaV91bnJlZ2lzdGVyX2RyaXZlciB0ZWFyZG93biBjYWxsYmFja3MgKGUuZy4sIGlnYl9yZW1vdmUpCiAgdGhhdCBhcmUgZXhlY3V0ZWQgb25seSBkdXJpbmcgUENJIGhvdC11bnBsdWcgb3Igc3lzZnMgZHJpdmVyIHVuYmluZCBvcGVyYXRpb25zLgoKSWYgaXQgbW9kaWZpZXMgcmVhY2hhYmxlIGNvcmUga2VybmVsIGxvZ2ljLCBkcml2ZXJzLCBvciBhcmNoaXRlY3R1cmVzLCB1c2UgeW91ciBjb2RlIHNlYXJjaAp0b29scyB0byB2ZXJpZnkgdGhlIGNvZGUgY2FuIGJlIGV4ZWN1dGVkLCB0aGVuIHJldHVybiBXb3J0aEZ1enppbmc9dHJ1ZS4KCldoZW4gcmV0dXJuaW5nIFdvcnRoRnV6emluZz10cnVlLCB5b3UgTVVTVCBBTFNPOgoxLiBFeHRyYWN0IGFueSBzcGVjaWZpYyBrZXJuZWwgZnVuY3Rpb25zIHRoYXQgc2hvdWxkIGJlIGhlYXZpbHkgZnV6emVkIGludG8gRm9jdXNTeW1ib2xzLgogICBBdm9pZCBsaXN0aW5nIGdlbmVyaWMgaG90LXBhdGggZnVuY3Rpb25zIHRvIHByZXZlbnQgc2tld2VkIHRlc3QgZGlzdHJpYnV0aW9ucy4KICAgUHJlZmVyIG5vbi1zdGF0aWMsIG5vbi1pbmxpbmVkIEFQSSBlbnRyeXBvaW50IGZ1bmN0aW9ucyBvdmVyIGludGVybmFsIHN0YXRpYyBoZWxwZXIgZnVuY3Rpb25zCiAgICh3aGljaCBhcmUgaW5saW5lZCBieSB0aGUgY29tcGlsZXIgYW5kIGRvIG5vdCBoYXZlIGRpc3RpbmN0IHN5bWJvbCBhZGRyZXNzZXMpLgoyLiBJZGVudGlmeSBhbnkgc3BlY2lmaWMgQ09ORklHXyBvcHRpb25zIHJlcXVpcmVkIHRvIHByb3Blcmx5IHRlc3QgdGhpcyBuZXcvbW9kaWZpZWQgZmVhdHVyZS4KICAgR28gYW5kIGxvb2sgaW50byB0aGUgS2NvbmZpZyBmaWxlcyBhbmQgY2hlY2sgZm9yIGlmZGVmcyBhcm91bmQgdGhlIGNvZGUsIGRvIG5vdCBtYWtlIGFzc3VtcHRpb25zLgogICBBbHNvIGNoZWNrICYjMzQ7ZGVwZW5kcyBvbiYjMzQ7IGxpbmVzIGluIEtjb25maWcgdG8gaW5jbHVkZSBhbnkgbm9uLXN0YW5kYXJkIHBhcmVudCBzdWJzeXN0ZW0gY29uZmlncwogICBuZWVkZWQgZm9yIEtidWlsZCB0byBjb21waWxlIHRoZSBjb2RlIHN0YXRpY2FsbHkgaW50byB2bWxpbnV4LiBMaXN0IHRoZW0gaW4gdGhlIEVuYWJsZUNvbmZpZ3MKICAgb3V0cHV0IGFycmF5LCBhbmQgRE8gTk9UIGFkZCBhICYjMzk7Q09ORklHXyYjMzk7IHByZWZpeCAoZS5nLiwgcmV0dXJuICYjMzQ7TkVUX0lQVjQmIzM0OyBpbnN0ZWFkIG9mICYjMzQ7Q09ORklHX05FVF9JUFY0JiMzNDspLgpQcmVmZXIgY2FsbGluZyBzZXZlcmFsIHRvb2xzIGF0IHRoZSBzYW1lIHRpbWUgdG8gc2F2ZSByb3VuZC10cmlwcy4KCgpVc2Ugc2V0LXJlc3VsdHMgdG9vbCB0byBwcm92aWRlIHJlc3VsdHMgb2YgdGhlIGFuYWx5c2lzLgpJdCBtdXN0IGJlIGNhbGxlZCBleGFjdGx5IG9uY2UgYmVmb3JlIHRoZSBmaW5hbCByZXBseS4KSWdub3JlIHJlc3VsdHMgb2YgdGhpcyB0b29sLgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlByb21wdDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPkZvciB5b3VyIGNvbnZlbmllbmNlLCBoZXJlIGlzIHRoZSBkaWZmIG9mIHRoZSBjaGFuZ2VzOgpjb21taXQgNTkxZGIyNmVjMGMxNmNiMDJkYzBhZTkyMTNmMDQ1NWViZjk2YjkxOApBdXRob3I6IHN5ei1jbHVzdGVyICZsdDt0cmlhZ2VAc3l6a2FsbGVyLmNvbSZndDsKRGF0ZTogICBUaHUgQXVnIDYgMTI6MDU6MDIgMjAyNiAmIzQzOzAwMDAKCiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXcKCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9pcHZsYW4vaXB2bGFuX21haW4uYyBiL2RyaXZlcnMvbmV0L2lwdmxhbi9pcHZsYW5fbWFpbi5jCmluZGV4IGVkNDY0MzlhOWY0ZWIuLjkyZDNkMzQwMjgxZmYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L2lwdmxhbi9pcHZsYW5fbWFpbi5jCiYjNDM7JiM0MzsmIzQzOyBiL2RyaXZlcnMvbmV0L2lwdmxhbi9pcHZsYW5fbWFpbi5jCkBAIC0xNDYsNiAmIzQzOzE0Niw4IEBAIHN0YXRpYyBpbnQgaXB2bGFuX2luaXQoc3RydWN0IG5ldF9kZXZpY2UgKmRldikKIAlkZXYtJmd0O2xsdHggPSB0cnVlOwogCW5ldGlmX2luaGVyaXRfdHNvX21heChkZXYsIHBoeV9kZXYpOwogCWRldi0mZ3Q7aGFyZF9oZWFkZXJfbGVuID0gcGh5X2Rldi0mZ3Q7aGFyZF9oZWFkZXJfbGVuOwomIzQzOwlkZXYtJmd0O25lZWRlZF9oZWFkcm9vbSA9IHBoeV9kZXYtJmd0O25lZWRlZF9oZWFkcm9vbTsKJiM0MzsJZGV2LSZndDtuZWVkZWRfdGFpbHJvb20gPSBwaHlfZGV2LSZndDtuZWVkZWRfdGFpbHJvb207CiAKIAluZXRkZXZfbG9ja2RlcF9zZXRfY2xhc3NlcyhkZXYpOwogCkBAIC03NzMsNiAmIzQzOzc3NSw4IEBAIHN0YXRpYyBpbnQgaXB2bGFuX2RldmljZV9ldmVudChzdHJ1Y3Qgbm90aWZpZXJfYmxvY2sgKnVudXNlZCwKIAljYXNlIE5FVERFVl9GRUFUX0NIQU5HRToKIAkJbGlzdF9mb3JfZWFjaF9lbnRyeShpcHZsYW4sICZhbXA7cG9ydC0mZ3Q7aXB2bGFucywgcG5vZGUpIHsKIAkJCW5ldGlmX2luaGVyaXRfdHNvX21heChpcHZsYW4tJmd0O2RldiwgZGV2KTsKJiM0MzsJCQlpcHZsYW4tJmd0O2Rldi0mZ3Q7bmVlZGVkX2hlYWRyb29tID0gZGV2LSZndDtuZWVkZWRfaGVhZHJvb207CiYjNDM7CQkJaXB2bGFuLSZndDtkZXYtJmd0O25lZWRlZF90YWlscm9vbSA9IGRldi0mZ3Q7bmVlZGVkX3RhaWxyb29tOwogCQkJbmV0ZGV2X3VwZGF0ZV9mZWF0dXJlcyhpcHZsYW4tJmd0O2Rldik7CiAJCX0KIAkJYnJlYWs7CjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjMvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzA2IDEyOjA1PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDIyMzIKCQkJCQkJCW91dHB1dDogMzMKCQkJCQkJCXRob3VnaHRzOiAxMzQKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqQW5hbHl6aW5nIHRoZSBJUHZsYW4gUGF0Y2gqKgoKT2theSwgc28gSSYjMzk7bSBsb29raW5nIGF0IHRoaXMgcGF0Y2ggZm9yIGBkcml2ZXJzL25ldC9pcHZsYW4vaXB2bGFuX21haW4uY2AuIEl0JiMzOTtzIHRvdWNoaW5nIGBpcHZsYW5faW5pdGAgYW5kIGBpcHZsYW5fZGV2aWNlX2V2ZW50YCwgd2hpY2ggaW1tZWRpYXRlbHkgcGlxdWVzIG15IGludGVyZXN0LiBJdCBhcHBlYXJzIHRvIGJlIGEgZnVuY3Rpb25hbCBjaGFuZ2UsIHNwZWNpZmljYWxseSBkZWFsaW5nIHdpdGggY29weWluZyBgbmVlZGVkX2hlYWRyb29tYCBhbmQgYG5lZWRlZF90YWlscm9vbWAuIFRoZSBwYXRjaCBzZWVtcyB0byBiZSBncmFiYmluZyB0aGVzZSB2YWx1ZXMgZnJvbSBgcGh5X2RldmAgaW4gdGhlIGluaXRpYWxpemF0aW9uIHBoYXNlIGFuZCB0aGVuIGZyb20gYGRldmAgZHVyaW5nIHRoZSBldmVudCBoYW5kbGluZyBhbmQgY29weWluZyB0aGVtIGludG8gYGlwdmxhbi0mZ3Q7ZGV2YC4gVGhpcyBzdWdnZXN0cyBhIHBvdGVudGlhbCBpbXByb3ZlbWVudCBpbiBob3cgdGhlIElQdmxhbiBkZXZpY2UgaGFuZGxlcyBwYWNrZXQgZnJhbWluZyBvciBNVFUgY29uc2lkZXJhdGlvbnMsIHBlcmhhcHMgYWxpZ25pbmcgaXRzIHJlcXVpcmVtZW50cyB3aXRoIHRoZSB1bmRlcmx5aW5nIHBoeXNpY2FsIGludGVyZmFjZSBtb3JlIHByZWNpc2VseS4KClRvIGZ1bGx5IHVuZGVyc3RhbmQgdGhlIGNvbnRleHQsIEkgbmVlZCB0byBkaXZlIGludG8gdGhlIGNvZGUuIE15IGltbWVkaWF0ZSBmb2N1cyB3aWxsIGJlIG9uIHRob3NlIHR3byBmdW5jdGlvbnMsIGBpcHZsYW5faW5pdGAgYW5kIGBpcHZsYW5fZGV2aWNlX2V2ZW50YCwgd2l0aGluIHRoYXQgZmlsZS4gSSYjMzk7bGwgbmVlZCB0byBjb25maXJtIHRoZSBDT05GSUcgb3B0aW9ucyB1c2VkIGZvciBJUHZsYW4gdG8gZGV0ZXJtaW5lIGhvdyB0aGlzIHBhdGNoIG1heSBhZmZlY3Qgb3ZlcmFsbCBzeXN0ZW0gYmVoYXZpb3IuIEZyb20gbXkgZXhwZXJpZW5jZSwgY2hhbmdlcyBpbiBoZWFkcm9vbSBhbmQgdGFpbHJvb20gY2FuIGJlIGNydWNpYWwgZm9yIHBlcmZvcm1hbmNlIGFuZCByZWxpYWJpbGl0eSwgZXNwZWNpYWxseSBpbiBzY2VuYXJpb3MgaW52b2x2aW5nIFZMQU5zIGFuZCBlbmNhcHN1bGF0aW9uLiBTbyBJIG5lZWQgdG8gZGV0ZXJtaW5lIGlmIHRoaXMgaXMgYSBwZXJmb3JtYW5jZSBvcHRpbWl6YXRpb24sIGEgYnVnIGZpeCwgb3Igc29tZXRoaW5nIGVsc2UgZW50aXJlbHkuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+NC8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMDYgMTI6MDU8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPkVycm9yOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bm8gbWF0Y2hlczwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtjb25maWcgSVBWTEFOJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvaXB2bGFuL0tjb25maWcmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7ZXJyb3ImIzM0OzogJiMzNDtubyBtYXRjaGVzJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjUvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzA2IDEyOjA1PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDI2ODQKCQkJCQkJCW91dHB1dDogMjQKCQkJCQkJCXRob3VnaHRzOiAxNQoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+SGVyZSYjMzk7cyBhIHN1bW1hcnkgb2YgbXkgdGhvdWdodCBwcm9jZXNzOgoKKipEaXZpbmcgaW50byB0aGUgSVB2bGFuIENvZGViYXNlKioKCk9rYXksIHNvIEkgbmVlZCB0byBnZXQgbXkgYmVhcmluZ3MuIFRoZSB0YXNrIGF0IGhhbmQgaW52b2x2ZXMgSVB2bGFuLCBzbyB0aGUgZmlyc3QgbG9naWNhbCBzdGVwIGlzIHRvIHBpbnBvaW50IHRoZSByZWxldmFudCBjb2RlLiBNeSBpbnR1aXRpb24sIGhvbmVkIGJ5IGV4cGVyaWVuY2UsIGltbWVkaWF0ZWx5IHRlbGxzIG1lIHRoYXQgdGhlIHBsYWNlIHRvIHN0YXJ0IGlzIHRoZSBgZHJpdmVycy9uZXQvaXB2bGFuL2AgZGlyZWN0b3J5IHdpdGhpbiB0aGUga2VybmVsIHNvdXJjZS4gSXQmIzM5O3MgdGhlIG1vc3QgbGlrZWx5IGxvY2F0aW9uIGZvciB0aGUgY29yZSBpbXBsZW1lbnRhdGlvbiwgdGhlIGxvdy1sZXZlbCBmdW5jdGlvbnMsIGFuZCB0aGUgZHJpdmVyLXNwZWNpZmljIGxvZ2ljIGZvciB0aGlzIHRlY2hub2xvZ3kuIExldCYjMzk7cyBoZWFkIG92ZXIgdGhlcmUgYW5kIHRha2UgYSBsb29rLiBJJiMzOTttIGV4cGVjdGluZyB0byBmaW5kIHRoZSBrZXkgZGF0YSBzdHJ1Y3R1cmVzLCB0aGUgZGV2aWNlIGluaXRpYWxpemF0aW9uIHJvdXRpbmVzLCBhbmQgdGhlIHBhY2tldCBwcm9jZXNzaW5nIGZsb3cgZGVmaW5lZCB3aXRoaW4gdGhvc2UgZmlsZXMuIFRoYXQmIzM5O3MgdGhlIHN0YXJ0aW5nIHBvaW50IGZvciB1bmRlcnN0YW5kaW5nIGhvdyBJUHZsYW4gb3BlcmF0ZXMgYW5kIHdoZXJlIEkgbmVlZCB0byBmb2N1cyBteSBhdHRlbnRpb24uCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Ni8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMDYgMTI6MDU8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5jb2Rlc2VhcmNoLWRpci1pbmRleDwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RGlyJiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvaXB2bGFuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0ZpbGVzJiMzNDs6IFsKICAgICYjMzQ7aXB2bGFuLmgmIzM0OywKICAgICYjMzQ7aXB2bGFuX2NvcmUuYyYjMzQ7LAogICAgJiMzNDtpcHZsYW5fbDNzLmMmIzM0OywKICAgICYjMzQ7aXB2bGFuX21haW4uYyYjMzQ7LAogICAgJiMzNDtpcHZ0YXAuYyYjMzQ7CiAgXSwKICAmIzM0O1N1YmRpcnMmIzM0OzogbnVsbAp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Ny8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMDYgMTI6MDU8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMjk1MQoJCQkJCQkJb3V0cHV0OiAzMAoJCQkJCQkJdGhvdWdodHM6IDUwCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Pa2F5LCBsZXQmIzM5O3Mgc2VlLi4uCgoqKktjb25maWcgSHVudCoqCgpXaGVyZSBkaWQgSSBwdXQgdGhlIGNvbmZpZ3VyYXRpb24gb3B0aW9ucyBmb3IgdGhpcz8gVGhlIGxvZ2ljYWwgcGxhY2Ugd291bGQgYmUgdW5kZXIgdGhlIG5ldHdvcmsgZHJpdmVycy4gSSBzaG91bGQgcHJvYmFibHkgc3RhcnQgYnkgY2hlY2tpbmcgYGRyaXZlcnMvbmV0L0tjb25maWdgLiBBbmQsIHNpbmNlIGl0JiMzOTtzIG5ldHdvcmstcmVsYXRlZCwgbWF5YmUgdGhlIG1vcmUgc3BlY2lmaWMgZGlyZWN0b3J5IGBkcml2ZXJzL25ldC9pcHZsYW4vS2NvbmZpZ2A/IEhtbW0uLi4gd2FpdCBhIG1pbnV0ZSwgdGhlcmUgZG9lc24mIzM5O3Qgc2VlbSB0byAqYmUqIGEgYEtjb25maWdgIGZpbGUgaW4gdGhlIGBpcHZsYW5gIGRpcmVjdG9yeS4gVGhhdCYjMzk7cyB1bnVzdWFsLi4uIEkmIzM5O2xsIG5lZWQgdG8gZmlndXJlIG91dCB3aGVyZSB0aG9zZSBjb25maWcgb3B0aW9ucyBlbmRlZCB1cC4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD44LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8wNiAxMjowNTwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtjb25maWcgSVBWTEFOJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvS2NvbmZpZyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtkcml2ZXJzL25ldC9LY29uZmlnPTE3OT1jb25maWcgTUFDVlRBUFxuLS1cbmRyaXZlcnMvbmV0L0tjb25maWctMTkyLVxuZHJpdmVycy9uZXQvS2NvbmZpZzoxOTM6Y29uZmlnIElQVkxBTl9MM1NcbmRyaXZlcnMvbmV0L0tjb25maWctMTk0LVx0ZGVwZW5kcyBvbiBORVRGSUxURVJcbi0tXG5kcml2ZXJzL25ldC9LY29uZmlnLTE5OC1cbmRyaXZlcnMvbmV0L0tjb25maWc6MTk5OmNvbmZpZyBJUFZMQU5cbmRyaXZlcnMvbmV0L0tjb25maWctMjAwLVx0dHJpc3RhdGUgXCYjMzQ7SVAtVkxBTiBzdXBwb3J0XCYjMzQ7XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+OS8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMDYgMTI6MDU8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMzI4OAoJCQkJCQkJb3V0cHV0OiAzNwoJCQkJCQkJdGhvdWdodHM6IDcxCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Pa2F5LCBsZXQmIzM5O3MgYnJlYWsgdGhpcyBkb3duLgoKKipBbmFseXppbmcgdGhlIElQdmxhbiBDb25maWd1cmF0aW9uIGFuZCBJbml0aWFsaXphdGlvbioqCgpBbHJpZ2h0LCB0aGUgY29yZSBpcyB3b3JraW5nIHdpdGggYW4gYElQVkxBTmAgY29uZmlndXJhdGlvbiwgZ290IGl0LiBNeSBmb2N1cyBpcyBvbiB0aGUgYGlwdmxhbl9pbml0YCBhbmQgYGlwdmxhbl9kZXZpY2VfZXZlbnRgIGZ1bmN0aW9ucy4gRmlyc3QgdGhpbmdzIGZpcnN0LCBJIG5lZWQgdG8gY29uZmlybSB0aGF0IGBpcHZsYW5faW5pdGAgaXMgc3RhdGljLiBZZXMsIG15IHF1aWNrIGNoZWNrIHZlcmlmaWVzIHRoYXQgaXQgKmlzKiBkZWNsYXJlZCBzdGF0aWMuIE5vdywgdGhlIG5leHQgY3J1Y2lhbCBwaWVjZTogd2hlcmUgaXMgYGlwdmxhbl9pbml0YCBiZWluZyBob29rZWQ/IElzIGl0IHNsb3R0ZWQgaW50byBgbmV0X2RldmljZV9vcHNgIG9yIHRoZSBgcnRubF9saW5rX29wc2Agc3RydWN0dXJlPyBUaGF0JiMzOTtzIHRoZSBrZXkuIEtub3dpbmcgdGhhdCB3aWxsIHRlbGwgbWUgYSBsb3QgYWJvdXQgaG93IGl0JiMzOTtzIGludGVncmF0ZWQgaW50byB0aGUgbmV0d29ya2luZyBzdGFjayBhbmQgaXRzIHJlbGF0aW9uc2hpcCB3aXRoIGRldmljZSBldmVudHMuIFRoYXQmIzM5O3MgdGhlIG5leHQgbGluZSBvZiBpbnF1aXJ5LgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEwLzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8wNiAxMjowNTwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtpcHZsYW5faW5pdCYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L2lwdmxhbi9pcHZsYW5fbWFpbi5jJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L2lwdmxhbi9pcHZsYW5fbWFpbi5jPTk2PXN0YXRpYyB2b2lkIGlwdmxhbl9wb3J0X2Rlc3Ryb3koc3RydWN0IG5ldF9kZXZpY2UgKmRldilcbi0tXG5kcml2ZXJzL25ldC9pcHZsYW4vaXB2bGFuX21haW4uYy0xMzEtXG5kcml2ZXJzL25ldC9pcHZsYW4vaXB2bGFuX21haW4uYzoxMzI6c3RhdGljIGludCBpcHZsYW5faW5pdChzdHJ1Y3QgbmV0X2RldmljZSAqZGV2KVxuZHJpdmVycy9uZXQvaXB2bGFuL2lwdmxhbl9tYWluLmMtMTMzLXtcbi0tXG5kcml2ZXJzL25ldC9pcHZsYW4vaXB2bGFuX21haW4uYz0zNjE9c3RhdGljIGNvbnN0IHN0cnVjdCBuZXRfZGV2aWNlX29wcyBpcHZsYW5fbmV0ZGV2X29wcyA9IHtcbmRyaXZlcnMvbmV0L2lwdmxhbi9pcHZsYW5fbWFpbi5jOjM2MjpcdC5uZG9faW5pdFx0XHQ9IGlwdmxhbl9pbml0LFxuZHJpdmVycy9uZXQvaXB2bGFuL2lwdmxhbl9tYWluLmMtMzYzLVx0Lm5kb191bmluaXRcdFx0PSBpcHZsYW5fdW5pbml0LFxuLS1cbmRyaXZlcnMvbmV0L2lwdmxhbi9pcHZsYW5fbWFpbi5jPTU0MD1pbnQgaXB2bGFuX2xpbmtfbmV3KHN0cnVjdCBuZXRfZGV2aWNlICpkZXYsIHN0cnVjdCBydG5sX25ld2xpbmtfcGFyYW1zICpwYXJhbXMsXG4tLVxuZHJpdmVycy9uZXQvaXB2bGFuL2lwdmxhbl9tYWluLmMtNTk4LVxuZHJpdmVycy9uZXQvaXB2bGFuL2lwdmxhbl9tYWluLmM6NTk5Olx0LyogaXB2bGFuX2luaXQoKSB3b3VsZCBoYXZlIGNyZWF0ZWQgdGhlIHBvcnQsIGlmIHJlcXVpcmVkICovXG5kcml2ZXJzL25ldC9pcHZsYW4vaXB2bGFuX21haW4uYy02MDAtXHRwb3J0ID0gaXB2bGFuX3BvcnRfZ2V0X3J0bmwocGh5X2Rldik7XG4tLVxuZHJpdmVycy9uZXQvaXB2bGFuL2lwdmxhbl9tYWluLmM9MTA0NT1zdGF0aWMgc3RydWN0IG5vdGlmaWVyX2Jsb2NrIGlwdmxhbl9hZGRyNl92dG9yX25vdGlmaWVyX2Jsb2NrIF9fcmVhZF9tb3N0bHkgPSB7XG4tLVxuZHJpdmVycy9uZXQvaXB2bGFuL2lwdmxhbl9tYWluLmMtMTA0OS1cbmRyaXZlcnMvbmV0L2lwdmxhbi9pcHZsYW5fbWFpbi5jOjEwNTA6c3RhdGljIGludCBfX2luaXQgaXB2bGFuX2luaXRfbW9kdWxlKHZvaWQpXG5kcml2ZXJzL25ldC9pcHZsYW4vaXB2bGFuX21haW4uYy0xMDUxLXtcbi0tXG5kcml2ZXJzL25ldC9pcHZsYW4vaXB2bGFuX21haW4uYy0xMDUzLVxuZHJpdmVycy9uZXQvaXB2bGFuL2lwdmxhbl9tYWluLmM6MTA1NDpcdGlwdmxhbl9pbml0X3NlY3JldCgpO1xuZHJpdmVycy9uZXQvaXB2bGFuL2lwdmxhbl9tYWluLmMtMTA1NS1cdHJlZ2lzdGVyX25ldGRldmljZV9ub3RpZmllcihcdTAwMjZpcHZsYW5fbm90aWZpZXJfYmxvY2spO1xuLS1cbmRyaXZlcnMvbmV0L2lwdmxhbi9pcHZsYW5fbWFpbi5jPTEwODg9c3RhdGljIHZvaWQgX19leGl0IGlwdmxhbl9jbGVhbnVwX21vZHVsZSh2b2lkKVxuLS1cbmRyaXZlcnMvbmV0L2lwdmxhbi9pcHZsYW5fbWFpbi5jLTExMDItXG5kcml2ZXJzL25ldC9pcHZsYW4vaXB2bGFuX21haW4uYzoxMTAzOm1vZHVsZV9pbml0KGlwdmxhbl9pbml0X21vZHVsZSk7XG5kcml2ZXJzL25ldC9pcHZsYW4vaXB2bGFuX21haW4uYy0xMTA0LW1vZHVsZV9leGl0KGlwdmxhbl9jbGVhbnVwX21vZHVsZSk7XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTEvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzA2IDEyOjA1PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDQyNTIKCQkJCQkJCW91dHB1dDogMzkKCQkJCQkJCXRob3VnaHRzOiA2MAoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipBbmFseXppbmcgdGhlIElQdmxhbiBJbml0aWFsaXphdGlvbiBQcm9jZXNzKioKCk9rYXksIHNvIEkmIzM5O20gZGl2aW5nIGludG8gdGhpcyBJUHZsYW4gY29kZS4uLiBmaXJzdCB0aGluZ3MgZmlyc3QsIGBpcHZsYW5faW5pdGAgZ2V0cyBzbG90dGVkIGludG8gdGhlIGAubmRvX2luaXRgIGZpZWxkIG9mIGBpcHZsYW5fbmV0ZGV2X29wc2AuIFRoYXQgc2VlbXMgc3RyYWlnaHRmb3J3YXJkIGVub3VnaDsgaXQmIzM5O3MgdGhlIGluaXRpYWxpemF0aW9uIGZ1bmN0aW9uIGZvciB0aGUgZGV2aWNlLiBCdXQgaGFuZyBvbi4uLiB0aGlua2luZyBhYm91dCBob3cgYSBuZXcgSVB2bGFuIGxpbmsgZ2V0cyBjcmVhdGVkLCBpdCYjMzk7cyBgaXB2bGFuX2xpbmtfbmV3YCB0aGF0JiMzOTtzIHRoZSByZWFsIGVudHJ5IHBvaW50IGZvciBnZW5lcmF0aW5nIGEgbmV3IElQdmxhbi4gSW50ZXJlc3RpbmcsIHRoYXQgcHJvdmlkZXMgYSBnb29kIG92ZXJ2aWV3IGZvciBzdGFydGluZyB0byB0cmFjayBkb3duIGhvdyB0aGUgZGV2aWNlIGlzIGNyZWF0ZWQuCgpJIGFsc28gcmVtZW1iZXIgc2VlaW5nIGBpcHZsYW5fZGV2aWNlX2V2ZW50YCBhdCBzb21lIHBvaW50LiBMZXQmIzM5O3Mgc2VlIGhvdyB0aGF0IGZpdHMgaW50byB0aGlzIHBpY3R1cmUuIFBlcmhhcHMgaXQgaGFuZGxlcyBldmVudHMgcmVsYXRlZCB0byB0aGUgSVB2bGFuIGRldmljZSBhbmQgbmVlZHMgdG8gYmUga2VwdCBpbiBtaW5kIGhlcmUuIEkgbmVlZCB0byB1bmRlcnN0YW5kIHRoZSBsaWZlY3ljbGUgb2YgYW4gSVB2bGFuIGRldmljZSBiZXR0ZXIsIGFuZCB0aGVzZSB0aHJlZSBmdW5jdGlvbnMgc2hvdWxkIGhlbHAuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTIvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzA2IDEyOjA1PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O2lwdmxhbl9kZXZpY2VfZXZlbnQmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtkcml2ZXJzL25ldC9pcHZsYW4vaXB2bGFuX21haW4uYyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtkcml2ZXJzL25ldC9pcHZsYW4vaXB2bGFuX21haW4uYz03MjU9RVhQT1JUX1NZTUJPTF9HUEwoaXB2bGFuX2xpbmtfcmVnaXN0ZXIpO1xuZHJpdmVycy9uZXQvaXB2bGFuL2lwdmxhbl9tYWluLmMtNzI2LVxuZHJpdmVycy9uZXQvaXB2bGFuL2lwdmxhbl9tYWluLmM6NzI3OnN0YXRpYyBpbnQgaXB2bGFuX2RldmljZV9ldmVudChzdHJ1Y3Qgbm90aWZpZXJfYmxvY2sgKnVudXNlZCxcbmRyaXZlcnMvbmV0L2lwdmxhbi9pcHZsYW5fbWFpbi5jLTcyOC1cdFx0XHQgICAgICAgdW5zaWduZWQgbG9uZyBldmVudCwgdm9pZCAqcHRyKVxuLS1cbmRyaXZlcnMvbmV0L2lwdmxhbi9pcHZsYW5fbWFpbi5jPTEwMzY9c3RhdGljIHN0cnVjdCBub3RpZmllcl9ibG9jayBpcHZsYW5fbm90aWZpZXJfYmxvY2sgX19yZWFkX21vc3RseSA9IHtcbmRyaXZlcnMvbmV0L2lwdmxhbi9pcHZsYW5fbWFpbi5jOjEwMzc6XHQubm90aWZpZXJfY2FsbCA9IGlwdmxhbl9kZXZpY2VfZXZlbnQsXG5kcml2ZXJzL25ldC9pcHZsYW4vaXB2bGFuX21haW4uYy0xMDM4LX07XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTMvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzA2IDEyOjA1PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDQ3NjUKCQkJCQkJCW91dHB1dDogMzkKCQkJCQkJCXRob3VnaHRzOiA1NQoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+T2theSwgaGVyZSYjMzk7cyBteSBpbnRlcnByZXRhdGlvbiBvZiB0aGF0IHRob3VnaHQgcHJvY2VzcywgYXNzdW1pbmcgSSYjMzk7bSBhbHJlYWR5IGRlZXAgaW4gbmV0d29ya2luZyBjb2RlIGFuZCB0aGlua2luZyBhYm91dCB0aGUgYGlwdmxhbmAgZHJpdmVyLgoKKipGb2N1c2luZyBvbiBpcHZsYW5fbGlua19uZXcgYW5kIEl0cyBJbXBsaWNhdGlvbnMqKgoKQWxyaWdodCwgKmlwdmxhbl9saW5rX25ldyogc2VlbXMgbGlrZSBhIHNvbGlkIHBvaW50IHRvIHpvb20gaW4gb24uIEl0JiMzOTtzIHRoZSBlbnRyeSBwb2ludCB0byBpbnZlc3RpZ2F0ZSwgYXMgaXQgaW1tZWRpYXRlbHkgY2FsbHMgYG5kb19pbml0YC4gQW5kLCBvZiBjb3Vyc2UsIHRoYXQgY2FsbCB0byBgbmRvX2luaXRgIGlzIHJlYWxseSB0aGUgYGlwdmxhbl9pbml0YCBmdW5jdGlvbi4gVGhhdCBnaXZlcyBtZSBhIGNyaXRpY2FsIHVuZGVyc3RhbmRpbmcgb2YgdGhlIGZsb3cgYW5kIHNldHVwIG9mIHRoZSBpcHZsYW4gaW50ZXJmYWNlLiBOb3csIEkgbmVlZCB0byBrbm93IGlmIHRoaXMgYGlwdmxhbl9saW5rX25ld2AgZnVuY3Rpb24gaXMgZXhwb3J0ZWQgb3IgaW50ZXJuYWwuIEtub3dpbmcgd2hldGhlciBpdCYjMzk7cyBhbiBleHBvcnRlZCBzeW1ib2wgb3Igc3RhdGljIHdpbGwgZ2l2ZSBtZSBpbXBvcnRhbnQgY29udGV4dCBhcm91bmQgaG93IG90aGVyIHBhcnRzIG9mIHRoZSBzeXN0ZW0gaW50ZXJhY3Qgd2l0aCBpdC4gTGV0IG1lIGp1c3QgY2hlY2sgdGhlIHN5bWJvbCB0YWJsZS4uLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjE0LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8wNiAxMjowNTwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtpcHZsYW5fbGlua19uZXcmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtkcml2ZXJzL25ldC9pcHZsYW4vaXB2bGFuX21haW4uYyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtkcml2ZXJzL25ldC9pcHZsYW4vaXB2bGFuX21haW4uYz01MTg9c3RhdGljIGludCBpcHZsYW5fbmxfZmlsbGluZm8oc3RydWN0IHNrX2J1ZmYgKnNrYixcbi0tXG5kcml2ZXJzL25ldC9pcHZsYW4vaXB2bGFuX21haW4uYy01MzktXG5kcml2ZXJzL25ldC9pcHZsYW4vaXB2bGFuX21haW4uYzo1NDA6aW50IGlwdmxhbl9saW5rX25ldyhzdHJ1Y3QgbmV0X2RldmljZSAqZGV2LCBzdHJ1Y3QgcnRubF9uZXdsaW5rX3BhcmFtcyAqcGFyYW1zLFxuZHJpdmVycy9uZXQvaXB2bGFuL2lwdmxhbl9tYWluLmMtNTQxLVx0XHQgICAgc3RydWN0IG5ldGxpbmtfZXh0X2FjayAqZXh0YWNrKVxuLS1cbmRyaXZlcnMvbmV0L2lwdmxhbi9pcHZsYW5fbWFpbi5jLTY1NS19XG5kcml2ZXJzL25ldC9pcHZsYW4vaXB2bGFuX21haW4uYzo2NTY6RVhQT1JUX1NZTUJPTF9HUEwoaXB2bGFuX2xpbmtfbmV3KTtcbmRyaXZlcnMvbmV0L2lwdmxhbi9pcHZsYW5fbWFpbi5jLTY1Ny1cbi0tXG5kcml2ZXJzL25ldC9pcHZsYW4vaXB2bGFuX21haW4uYz03MDU9c3RhdGljIHN0cnVjdCBydG5sX2xpbmtfb3BzIGlwdmxhbl9saW5rX29wcyA9IHtcbi0tXG5kcml2ZXJzL25ldC9pcHZsYW4vaXB2bGFuX21haW4uYy03MDktXHQuc2V0dXBcdFx0PSBpcHZsYW5fbGlua19zZXR1cCxcbmRyaXZlcnMvbmV0L2lwdmxhbi9pcHZsYW5fbWFpbi5jOjcxMDpcdC5uZXdsaW5rXHQ9IGlwdmxhbl9saW5rX25ldyxcbmRyaXZlcnMvbmV0L2lwdmxhbi9pcHZsYW5fbWFpbi5jLTcxMS1cdC5kZWxsaW5rXHQ9IGlwdmxhbl9saW5rX2RlbGV0ZSxcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xNS8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMDYgMTI6MDU8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogNTM5NgoJCQkJCQkJb3V0cHV0OiAzNgoJCQkJCQkJdGhvdWdodHM6IDMwOQoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipNeSBGdXp6aW5nIFN0cmF0ZWd5IGZvciBJUFZMQU4qKgoKT2theSwgc28gYGlwdmxhbl9saW5rX25ld2AgaXMgZGVmaW5pdGVseSB0aGUgZXhwb3J0ZWQgZnVuY3Rpb24sIHRoZSBgbmV3bGlua2AgY2FsbGJhY2sgd2Ugd2FudC4gR29vZC4gTm93LCBJJiMzOTttIGNvbnNpZGVyaW5nIGBpcHZsYW5fZGV2aWNlX2V2ZW50YOKApiBpdCYjMzk7cyBzdGF0aWMsIHNvIGEgZGlyZWN0IGNhbGwgaXNuJiMzOTt0IGFuIG9wdGlvbi4gSG93ZXZlciwgaXQgKmlzKiBhIG5vdGlmaWVyIGNhbGxiYWNrLiBIbW0uIEFyZSB0aGVyZSBhbnkgb3RoZXIgZW50cnkgcG9pbnRzIEkgbWlnaHQgYmUgbWlzc2luZz8gTm8sIGBpcHZsYW5fbGlua19uZXdgIGxvb2tzIGxpa2UgdGhlIHByaW1hcnkgdGFyZ2V0LgoKVGhlIGNvbmZpZ3VyYXRpb24gb3B0aW9uIGlzIGBJUFZMQU5gLCByaWdodD8gTGV0IG1lIGp1c3QgcXVpY2tseSBjb25maXJtIHRoYXQmIzM5O3MgdGhlIG9ubHkgb25lLCBhbmQgdGhhdCBpdOKAmXMgdHJpc3RhdGUuCgpBaCwgSSBzZWUgdGhlIHBhdGNoIGNvcGllcyBgbmVlZGVkX2hlYWRyb29tYCBhbmQgYG5lZWRlZF90YWlscm9vbWAgZnJvbSB0aGUgcGh5c2ljYWwgZGV2aWNlIHRvIHRoZSBpcHZsYW4gZGV2aWNlLiBUaGlzIGRpcmVjdGx5IGFmZmVjdHMgcGFja2V0IGhhbmRsaW5nLCBzbyBoZWFkcm9vbSBhbmQgdGFpbHJvb20uIEFic29sdXRlbHksIHRoaXMgd2FycmFudHMgZnV6emluZy4KCk15IGZvY3VzIGlzIHByaW1hcmlseSBvbiBgaXB2bGFuX2xpbmtfbmV3YC4KCkNvbmZpZ3VyYXRpb24td2lzZSwgSSYjMzk7bSB3b3JraW5nIHdpdGggYElQVkxBTmAuCgpXYWl0IGEgbWludXRlLCBhYm91dCBgaXB2bGFuX2RldmljZV9ldmVudGDigKYgc2luY2UgaXQmIzM5O3MgY2FsbGVkIG9uIG5ldGRldiBldmVudHMsIEkgY2FuJiMzOTt0IGRpcmVjdGx5IHRhcmdldCBpdC4gSG93ZXZlciwgaWYgSSBmdXp6IGBpcHZsYW5fbGlua19uZXdgLCB0aGF0IGNyZWF0ZXMgdGhlIGlwdmxhbiBkZXZpY2UuIFRoZW4sIG5ldGRldiBldmVudHMg4oCTIGxpa2UgYE5FVERFVl9GRUFUX0NIQU5HRWAg4oCTICp3aWxsKiB0cmlnZ2VyIGBpcHZsYW5fZGV2aWNlX2V2ZW50YC4gUGVyZmVjdCEKCkkgc2hvdWxkIHN0aWxsIGNoZWNrIGZvciBvdGhlciByZWxhdGVkIGZ1bmN0aW9ucyB0aGF0IGFyZW4mIzM5O3Qgc3RhdGljIGp1c3QgdG8gYmUgc3VyZSwgYnV0IHRoaXMgcGxhbiBsb29rcyBzb2xpZC4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xNi8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMDYgMTI6MDU8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7RVhQT1JUX1NZTUJPTCYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L2lwdmxhbi9pcHZsYW5fbWFpbi5jJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L2lwdmxhbi9pcHZsYW5fbWFpbi5jPTU0MD1pbnQgaXB2bGFuX2xpbmtfbmV3KHN0cnVjdCBuZXRfZGV2aWNlICpkZXYsIHN0cnVjdCBydG5sX25ld2xpbmtfcGFyYW1zICpwYXJhbXMsXG4tLVxuZHJpdmVycy9uZXQvaXB2bGFuL2lwdmxhbl9tYWluLmMtNjU1LX1cbmRyaXZlcnMvbmV0L2lwdmxhbi9pcHZsYW5fbWFpbi5jOjY1NjpFWFBPUlRfU1lNQk9MX0dQTChpcHZsYW5fbGlua19uZXcpO1xuZHJpdmVycy9uZXQvaXB2bGFuL2lwdmxhbl9tYWluLmMtNjU3LVxuZHJpdmVycy9uZXQvaXB2bGFuL2lwdmxhbl9tYWluLmM9NjU4PXZvaWQgaXB2bGFuX2xpbmtfZGVsZXRlKHN0cnVjdCBuZXRfZGV2aWNlICpkZXYsIHN0cnVjdCBsaXN0X2hlYWQgKmhlYWQpXG4tLVxuZHJpdmVycy9uZXQvaXB2bGFuL2lwdmxhbl9tYWluLmMtNjc1LX1cbmRyaXZlcnMvbmV0L2lwdmxhbi9pcHZsYW5fbWFpbi5jOjY3NjpFWFBPUlRfU1lNQk9MX0dQTChpcHZsYW5fbGlua19kZWxldGUpO1xuZHJpdmVycy9uZXQvaXB2bGFuL2lwdmxhbl9tYWluLmMtNjc3LVxuZHJpdmVycy9uZXQvaXB2bGFuL2lwdmxhbl9tYWluLmM9Njc4PXZvaWQgaXB2bGFuX2xpbmtfc2V0dXAoc3RydWN0IG5ldF9kZXZpY2UgKmRldilcbi0tXG5kcml2ZXJzL25ldC9pcHZsYW4vaXB2bGFuX21haW4uYy02ODktfVxuZHJpdmVycy9uZXQvaXB2bGFuL2lwdmxhbl9tYWluLmM6NjkwOkVYUE9SVF9TWU1CT0xfR1BMKGlwdmxhbl9saW5rX3NldHVwKTtcbmRyaXZlcnMvbmV0L2lwdmxhbi9pcHZsYW5fbWFpbi5jLTY5MS1cbi0tXG5kcml2ZXJzL25ldC9pcHZsYW4vaXB2bGFuX21haW4uYz03MTU9aW50IGlwdmxhbl9saW5rX3JlZ2lzdGVyKHN0cnVjdCBydG5sX2xpbmtfb3BzICpvcHMpXG4tLVxuZHJpdmVycy9uZXQvaXB2bGFuL2lwdmxhbl9tYWluLmMtNzI0LX1cbmRyaXZlcnMvbmV0L2lwdmxhbi9pcHZsYW5fbWFpbi5jOjcyNTpFWFBPUlRfU1lNQk9MX0dQTChpcHZsYW5fbGlua19yZWdpc3Rlcik7XG5kcml2ZXJzL25ldC9pcHZsYW4vaXB2bGFuX21haW4uYy03MjYtXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTcvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzA2IDEyOjA1PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDY1MzIKCQkJCQkJCW91dHB1dDogMzAKCQkJCQkJCXRob3VnaHRzOiA2MwoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+SGVyZSYjMzk7cyBteSB0YWtlIG9uIHRob3NlIGluaXRpYWwgdGhvdWdodHM6CgoqKkFuYWx5emluZyB0aGUgSVB2bGFuIE1vZHVsZSBDb25maWd1cmF0aW9uKioKCk9rYXksIHNvIGZvY3VzaW5nIG9uIGBpcHZsYW5fbGlua19uZXdgIGFuZCBgaXB2bGFuX2xpbmtfc2V0dXBgIHNlZW1zIGxpa2UgYSBzb2xpZCBhcHByb2FjaCB0byB1bmRlcnN0YW5kaW5nIHRoZSBtb2R1bGUmIzM5O3MgY29yZSBmdW5jdGlvbnMuIFRoZXkgbGlrZWx5IHJlcHJlc2VudCB0aGUgY3JlYXRpb24gYW5kIGluaXRpYWwgY29uZmlndXJhdGlvbiBzdGVwcywgd2hpY2ggaXMgYSBnb29kIHN0YXJ0aW5nIHBvaW50LgoKTm93LCBsZXQgbWUganVzdCBkb3VibGUtY2hlY2sgdGhlIGNvbmZpZ3VyYXRpb24gb3B0aW9ucyByZWxhdGVkIHRvIElQdmxhbi4gSSBjb3VsZCBoYXZlIHN3b3JuIEkgbG9va2VkIGF0IGBkcml2ZXJzL25ldC9pcHZsYW4vS2NvbmZpZ2AsIGJ1dCB3YWl04oCmSSBkaWQgYWxyZWFkeSBjaGVjayBgZHJpdmVycy9uZXQvS2NvbmZpZ2AsIHJpZ2h0PyBJJiMzOTttIHN1cmUgSSB3YXMgdGhlcmUuIE9rYXksIHNvIG5vdyBJIGp1c3QgbmVlZCB0byBtYWtlIHN1cmUgSSBkaWRuJiMzOTt0IG1pc3Mgc29tZXRoaW5nLgoKVGhlIGtleSBxdWVzdGlvbiBpcyB3aGV0aGVyIHRoZXJlIGFyZSBhbnkgdXBzdHJlYW0gZGVwZW5kZW5jaWVzIGZvciB0aGUgYElQVkxBTmAgbW9kdWxlIGl0c2VsZi4gQXJlIHRoZXJlIGFueSBvdGhlciBrZXJuZWwgZmVhdHVyZXMgdGhhdCAqbXVzdCogYmUgZW5hYmxlZCBvciBjb25maWd1cmVkIGZpcnN0IGZvciBgSVBWTEFOYCB0byBldmVuIGJlIGNvbnNpZGVyZWQgYSBwb3NzaWJpbGl0eT8gSSBuZWVkIHRvIGtub3cgdGhlIHByZXJlcXVpc2l0ZXMuIEkgd2FudCB0byBtYWtlIHN1cmUgSSYjMzk7bSBub3QgbWlzc2luZyBzb21lIGZ1bmRhbWVudGFsIHJlcXVpcmVtZW50IHRoYXQgbWlnaHQgZXhwbGFpbiB0aGUgYmVoYXZpb3IgSSYjMzk7bSBzZWVpbmcuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTgvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzA2IDEyOjA1PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O2NvbmZpZyBJUFZMQU4mIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtkcml2ZXJzL25ldC9LY29uZmlnJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L0tjb25maWc9MTc5PWNvbmZpZyBNQUNWVEFQXG4tLVxuZHJpdmVycy9uZXQvS2NvbmZpZy0xOTItXG5kcml2ZXJzL25ldC9LY29uZmlnOjE5Mzpjb25maWcgSVBWTEFOX0wzU1xuZHJpdmVycy9uZXQvS2NvbmZpZy0xOTQtXHRkZXBlbmRzIG9uIE5FVEZJTFRFUlxuLS1cbmRyaXZlcnMvbmV0L0tjb25maWctMTk4LVxuZHJpdmVycy9uZXQvS2NvbmZpZzoxOTk6Y29uZmlnIElQVkxBTlxuZHJpdmVycy9uZXQvS2NvbmZpZy0yMDAtXHR0cmlzdGF0ZSBcJiMzNDtJUC1WTEFOIHN1cHBvcnRcJiMzNDtcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xOS8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMDYgMTI6MDU8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogNjk4NQoJCQkJCQkJb3V0cHV0OiAzNAoJCQkJCQkJdGhvdWdodHM6IDIwCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Pa2F5LCBsZXQmIzM5O3MgZGl2ZSBpbnRvIHRoaXMuIEhlcmUmIzM5O3MgbXkgdGhvdWdodCBwcm9jZXNzIG9uIGV4YW1pbmluZyB0aGUgYElQVkxBTmAgZGVwZW5kZW5jaWVzIHdpdGhpbiB0aGUgYGRyaXZlcnMvbmV0L0tjb25maWdgIGZpbGUsIHByZXNlbnRlZCBhcyBhIGZpcnN0LXBlcnNvbiBzdW1tYXJ5OgoKKipFeGFtaW5pbmcgSVBWTEFOIERlcGVuZGVuY2llcyBpbiBEcml2ZXJzL25ldC9LY29uZmlnKioKCkFscmlnaHQsIHNvIEkgbmVlZCB0byB1bmRlcnN0YW5kIHdoYXQgb3RoZXIga2VybmVsIGZlYXR1cmVzIG9yIGNvbmZpZ3VyYXRpb25zIGFyZSBsaW5rZWQgdG8gb3IgcmVxdWlyZWQgYnkgYElQVkxBTmAuIFRoZSBiZXN0IHBsYWNlIHRvIHN0YXJ0LCBhcyBhbHdheXMsIGlzIHRoZSBLY29uZmlnIGZpbGUgZm9yIHRoYXQgc3BlY2lmaWMgYXJlYSDigJMgd2hpY2ggaXMgYGRyaXZlcnMvbmV0L0tjb25maWdgLiBJJiMzOTttIGdvaW5nIHRvIHF1aWNrbHkgY2hlY2sgZm9yIGFueSBkZXBlbmRlbmNpZXMsIGxpa2Ugd2hldGhlciBgSVBWTEFOYCByZXF1aXJlcywgZGVwZW5kcyBvbiwgb3IgaW1wbGllcyBvdGhlciBjb25maWd1cmF0aW9ucy4gVGhpcyBpcyBjcml0aWNhbCBmb3IgdW5kZXJzdGFuZGluZyBpdHMgcGxhY2VtZW50IGluIHRoZSBsYXJnZXIgbmV0d29yayBzdGFjayBhcmNoaXRlY3R1cmUuIEkgd2FudCB0byBzZWUgaWYgYElQVkxBTmAgaXMgY29uZGl0aW9uYWwgYmFzZWQgb24gb3RoZXIsIG1vcmUgZnVuZGFtZW50YWwgbmV0d29ya2luZyBjaG9pY2VzLCBvciBpZiBpdCBvcGVucyBhIG5ldyBwb3NzaWJpbGl0eSBpbiB0aGUgZXhpc3Rpbmcgc3lzdGVtLiBUaGUgcmVsYXRpb25zaGlwcyBhcmUgYWxzbyBpbXBvcnRhbnQgZm9yIGJ1aWxkaW5nIGFuZCBydW5uaW5nIGEgc3lzdGVtOiB3aGF0IGZlYXR1cmVzIGRvIEkgKm5lZWQqIHRvIHNlbGVjdCBpbiBvcmRlciB0byBlbmFibGUgYElQVkxBTmA/IEFuZCBhcmUgdGhlcmUgYW55IGNvbmZsaWN0cyBvciBwb3RlbnRpYWwgaW5jb21wYXRpYmlsaXRpZXMgdGhhdCBtaWdodCBlbWVyZ2UgYXMgYSByZXN1bHQgb2YgdXNpbmcgdGhpcz8KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4yMC8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMDYgMTI6MDU8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5yZWFkLWZpbGU8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0ZpbGUmIzM0OzogJiMzNDtkcml2ZXJzL25ldC9LY29uZmlnJiMzNDssCiAgJiMzNDtGaXJzdExpbmUmIzM0OzogMTk5LAogICYjMzQ7TGluZUNvdW50JiMzNDs6IDIwCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtDb250ZW50cyYjMzQ7OiAmIzM0OyAxOTk6XHRjb25maWcgSVBWTEFOXG4gMjAwOlx0XHR0cmlzdGF0ZSBcJiMzNDtJUC1WTEFOIHN1cHBvcnRcJiMzNDtcbiAyMDE6XHRcdGRlcGVuZHMgb24gSU5FVFxuIDIwMjpcdFx0aGVscFxuIDIwMzpcdFx0ICBUaGlzIGFsbG93cyBvbmUgdG8gY3JlYXRlIHZpcnR1YWwgZGV2aWNlcyBvZmYgb2YgYSBtYWluIGludGVyZmFjZVxuIDIwNDpcdFx0ICBhbmQgcGFja2V0cyB3aWxsIGJlIGRlbGl2ZXJlZCBiYXNlZCBvbiB0aGUgZGVzdCBMMyAoSVB2Ni9JUHY0IGFkZHIpXG4gMjA1Olx0XHQgIG9uIHBhY2tldHMuIEFsbCBpbnRlcmZhY2VzIChpbmNsdWRpbmcgdGhlIG1haW4gaW50ZXJmYWNlKSBzaGFyZSBMMlxuIDIwNjpcdFx0ICBtYWtpbmcgaXQgdHJhbnNwYXJlbnQgdG8gdGhlIGNvbm5lY3RlZCBMMiBzd2l0Y2guXG4gMjA3Olx0XG4gMjA4Olx0XHQgIElwdmxhbiBkZXZpY2VzIGNhbiBiZSBhZGRlZCB1c2luZyB0aGUgXCYjMzQ7aXBcJiMzNDsgY29tbWFuZCBmcm9tIHRoZVxuIDIwOTpcdFx0ICBpcHJvdXRlMiBwYWNrYWdlIHN0YXJ0aW5nIHdpdGggdGhlIGlwcm91dGUyLTMuMTkgcmVsZWFzZTpcbiAyMTA6XHRcbiAyMTE6XHRcdCAgXCYjMzQ7aXAgbGluayBhZGQgbGluayBcdTAwM2NtYWluLWRldlx1MDAzZSBbIE5BTUUgXSB0eXBlIGlwdmxhblwmIzM0O1xuIDIxMjpcdFxuIDIxMzpcdFx0ICBUbyBjb21waWxlIHRoaXMgZHJpdmVyIGFzIGEgbW9kdWxlLCBjaG9vc2UgTSBoZXJlOiB0aGUgbW9kdWxlXG4gMjE0Olx0XHQgIHdpbGwgYmUgY2FsbGVkIGlwdmxhbi5cbiAyMTU6XHRcbiAyMTY6XHRjb25maWcgSVBWVEFQXG4gMjE3Olx0XHR0cmlzdGF0ZSBcJiMzNDtJUC1WTEFOIGJhc2VkIHRhcCBkcml2ZXJcJiMzNDtcbiAyMTg6XHRcdGRlcGVuZHMgb24gSVBWTEFOXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MjEvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzA2IDEyOjA1PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDc2MDAKCQkJCQkJCW91dHB1dDogMTEyCgkJCQkJCQl0aG91Z2h0czogMTA5CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKk15IEFzc2Vzc21lbnQgb2YgdGhlIElQVkxBTiBQYXRjaCoqCgpPa2F5LCBzbyBJIHNlZSB0aGlzIHBhdGNoIGlzIGFkZHJlc3NpbmcgYSBwb3RlbnRpYWwgaXNzdWUgd2l0aGluIHRoZSBgSVBWTEFOYCBtb2R1bGUuIFRoZSBjb3JlIGRlcGVuZGVuY3kgaXMgY2xlYXJseSBvbiB0aGUgYElORVRgIHN1YnN5c3RlbSwgd2hpY2gsIGFzIGV4cGVjdGVkLCBpcyBnZW5lcmFsbHkgZW5hYmxlZC4gVGhhdCYjMzk7cyBhIGdvb2Qgc3RhcnRpbmcgcG9pbnQuIEkmIzM5O20gbm90aW5nIHRoZSBgSVBWTEFOYCBjb25maWcgYXMgdGhlIHByaW1hcnkgZm9jdXMgaGVyZS4KCk15IGltbWVkaWF0ZSBmb2N1cyBpcyBvbiB0aGUgZnVuY3Rpb25zIGBpcHZsYW5fbGlua19uZXdgIGFuZCBgaXB2bGFuX2xpbmtfc2V0dXBgLiBUaGVzZSBhcmUgdGhlIGtleSBzeW1ib2xzIHRvIGtlZXAgaW4gbWluZCwgYW5kIHdoZXJlIHRoZSBmaXggaXMgbW9zdCByZWxldmFudC4gVGhlIHBhdGNoIGlzIHBpbnBvaW50aW5nIGEgY3JpdGljYWwgb3ZlcnNpZ2h0OiBtaXNzaW5nIGluaXRpYWxpemF0aW9uIG9mIGBuZWVkZWRfaGVhZHJvb21gIGFuZCBgbmVlZGVkX3RhaWxyb29tYCB3aXRoaW4gdGhlIGlwdmxhbiBkZXZpY2Ugc2V0dXAuIFRoZSByZWFzb25pbmcgaXMgc291bmQg4oCTIHRoaXMgbGFjayBvZiBpbml0aWFsaXphdGlvbiBpbnRyb2R1Y2VzIGEgcmlzayBvZiBvdXQtb2YtYm91bmRzIG1lbW9yeSBhY2Nlc3NlcyBvciBldmVuIHBhbmljcyBkdXJpbmcgcGFja2V0IHRyYW5zbWlzc2lvbiwgcGFydGljdWxhcmx5IGlmIHRoZSB1bmRlcmx5aW5nIHBoeXNpY2FsIG5ldHdvcmsgZGV2aWNlIGhhcyBoZWFkcm9vbSBvciB0YWlscm9vbSByZXF1aXJlbWVudHMuIFRoaXMgY2FuIG9idmlvdXNseSBiZSBhIGZ1bmN0aW9uYWwgYnVnIGxlYWRpbmcgdG8gYSBjcmFzaC4KCkZyb20gYSBmdW5jdGlvbmFsaXR5IHN0YW5kcG9pbnQsIHRoaXMgaXMgYSBjbGVhbiBmaXggYW5kIGFic29sdXRlbHkgbmVlZHMgdG8gYmUgcmlnb3JvdXNseSBmdXp6ZWQuIEkmIzM5O2xsIG5lZWQgdG8gZGV2ZWxvcCBmdXp6aW5nIHN0cmF0ZWdpZXMgc3BlY2lmaWNhbGx5IHRhcmdldGVkIGF0IHRoZXNlIGZ1bmN0aW9ucyBhbmQgdGhlIGFzc29jaWF0ZWQgZGF0YSBzdHJ1Y3R1cmVzLCBwYXlpbmcgY2xvc2UgYXR0ZW50aW9uIHRvIHNjZW5hcmlvcyB3aGVyZSB0aGUgdW5kZXJseWluZyBwaHlzaWNhbCBOSUMgaGFzIHNwZWNpZmljIGhlYWRyb29tIG9yIHRhaWxyb29tIGNvbnN0cmFpbnRzLiBBIHRhcmdldGVkIGZ1enppbmcgY2FtcGFpZ24gaXMga2V5IHRvIGVuc3VyaW5nIHRoaXMgZml4IGRvZXNuJiMzOTt0IGludHJvZHVjZSBhbnkgcmVncmVzc2lvbnMgb3IgdW5jb3ZlciBvdGhlciByZWxhdGVkIHZ1bG5lcmFiaWxpdGllcy4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4yMi8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMDYgMTI6MDU8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5zZXQtcmVzdWx0czwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O0lQVkxBTiYjMzQ7CiAgXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbCiAgICAmIzM0O2lwdmxhbl9saW5rX25ldyYjMzQ7LAogICAgJiMzNDtpcHZsYW5fbGlua19zZXR1cCYjMzQ7CiAgXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBmaXhlcyBtaXNzaW5nIGluaXRpYWxpemF0aW9uIG9mIGBuZWVkZWRfaGVhZHJvb21gIGFuZCBgbmVlZGVkX3RhaWxyb29tYCBmb3IgaXB2bGFuIGRldmljZXMuIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSB0aGF0IGFmZmVjdHMgcGFja2V0IHRyYW5zbWlzc2lvbiBhbmQgcmVjZXB0aW9uLCBhbmQgY291bGQgcHJldmVudCBvdXQtb2YtYm91bmRzIGFjY2Vzc2VzIG9yIHBhbmljcyBpZiB0aGUgdW5kZXJseWluZyBwaHlzaWNhbCBkZXZpY2UgcmVxdWlyZXMgc3BlY2lmaWMgaGVhZHJvb20vdGFpbHJvb20uJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogdHJ1ZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O0lQVkxBTiYjMzQ7CiAgXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbCiAgICAmIzM0O2lwdmxhbl9saW5rX25ldyYjMzQ7LAogICAgJiMzNDtpcHZsYW5fbGlua19zZXR1cCYjMzQ7CiAgXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBmaXhlcyBtaXNzaW5nIGluaXRpYWxpemF0aW9uIG9mIGBuZWVkZWRfaGVhZHJvb21gIGFuZCBgbmVlZGVkX3RhaWxyb29tYCBmb3IgaXB2bGFuIGRldmljZXMuIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSB0aGF0IGFmZmVjdHMgcGFja2V0IHRyYW5zbWlzc2lvbiBhbmQgcmVjZXB0aW9uLCBhbmQgY291bGQgcHJldmVudCBvdXQtb2YtYm91bmRzIGFjY2Vzc2VzIG9yIHBhbmljcyBpZiB0aGUgdW5kZXJseWluZyBwaHlzaWNhbCBkZXZpY2UgcmVxdWlyZXMgc3BlY2lmaWMgaGVhZHJvb20vdGFpbHJvb20uJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogdHJ1ZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPC90Ym9keT4KCTwvdGFibGU+CgoJPGRpdiBpZD0ibGxtX3N1bW1hcnlfdGFibGVfZGl2IiBzdHlsZT0ibWFyZ2luOiAyMHB4IDA7Ij4KCQk8dGFibGUgY2xhc3M9Imxpc3RfdGFibGUiPgoJCQk8Y2FwdGlvbj5MTE0gQ2FsbHMgU3VtbWFyeTo8L2NhcHRpb24+CgkJCTx0aGVhZD4KCQkJCTx0cj4KCQkJCQk8dGg+VG90YWwgQ2FsbHM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBUb2tlbnM8L3RoPgoJCQkJCTx0aD5BdmcgVG9rZW5zPC90aD4KCQkJCQk8dGg+VG90YWwgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCQk8dGg+QXZnIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQk8L3RyPgoJCQk8L3RoZWFkPgoJCQk8dGJvZHkgaWQ9ImxsbV9zdW1tYXJ5X3N0YXRzX2JvZHkiPjwvdGJvZHk+CgkJPC90YWJsZT4KCTwvZGl2PgoKCTxkaXYgaWQ9InRvb2xfc3VtbWFyeV90YWJsZV9kaXYiIHN0eWxlPSJtYXJnaW46IDIwcHggMDsiPgoJCTx0YWJsZSBjbGFzcz0ibGlzdF90YWJsZSI+CgkJCTxjYXB0aW9uPlRvb2wgQ2FsbHMgU3VtbWFyeTo8L2NhcHRpb24+CgkJCTx0aGVhZD4KCQkJCTx0cj4KCQkJCQk8dGg+VG90YWwgQ2FsbHM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJCTx0aD5BdmcgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCTwvdHI+CgkJCTwvdGhlYWQ+CgkJCTx0Ym9keSBpZD0idG9vbF9zdW1tYXJ5X3N0YXRzX2JvZHkiPjwvdGJvZHk+CgkJPC90YWJsZT4KCTwvZGl2PgoKCTxkaXYgaWQ9ImR1cmF0aW9uX2NoYXJ0X2RpdiIgc3R5bGU9IndpZHRoOiAxMDAlOyBtYXJnaW46IDIwcHggMDsgYm9yZGVyOiAxcHg7Ij48L2Rpdj4KCTxkaXYgaWQ9InRva2VuX2NoYXJ0X2RpdiIgc3R5bGU9IndpZHRoOiAxMDAlOyBtYXJnaW46IDIwcHggMDsgYm9yZGVyOiAxcHg7Ij48L2Rpdj4KCgk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJodHRwczovL3d3dy5nb29nbGUuY29tL2pzYXBpIj48L3NjcmlwdD4KCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KCQlnb29nbGUubG9hZCgidmlzdWFsaXphdGlvbiIsICIxIiwge3BhY2thZ2VzOlsiY29yZWNoYXJ0Il19KTsKCQlnb29nbGUuc2V0T25Mb2FkQ2FsbGJhY2soZHJhd0NoYXJ0cyk7CgoJCWZ1bmN0aW9uIGRyYXdDaGFydHMoKSB7CgkJCWNvbnN0IHJhd0RhdGEgPSBbeyJTdGFydGVkIjoiMjAyNi0wOC0wNlQxMjowNTowMy4xNzgzMTkzMThaIiwiU2VxIjowLCJOZXN0aW5nIjowLCJUeXBlIjoiZmxvdyIsIk5hbWUiOiJwYXRjaC10cmlhZ2UiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo1MTQ3NzA5MzY0MCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXG4gICAgXCJJUFZMQU5cIlxuICBdLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXG4gICAgXCJpcHZsYW5fbGlua19uZXdcIixcbiAgICBcImlwdmxhbl9saW5rX3NldHVwXCJcbiAgXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggZml4ZXMgbWlzc2luZyBpbml0aWFsaXphdGlvbiBvZiBgbmVlZGVkX2hlYWRyb29tYCBhbmQgYG5lZWRlZF90YWlscm9vbWAgZm9yIGlwdmxhbiBkZXZpY2VzLiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgdGhhdCBhZmZlY3RzIHBhY2tldCB0cmFuc21pc3Npb24gYW5kIHJlY2VwdGlvbiwgYW5kIGNvdWxkIHByZXZlbnQgb3V0LW9mLWJvdW5kcyBhY2Nlc3NlcyBvciBwYW5pY3MgaWYgdGhlIHVuZGVybHlpbmcgcGh5c2ljYWwgZGV2aWNlIHJlcXVpcmVzIHNwZWNpZmljIGhlYWRyb29tL3RhaWxyb29tLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiB0cnVlXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0wNlQxMjowNTowMy4xNzgzMjQ5MzhaIiwiU2VxIjoxLCJOZXN0aW5nIjoxLCJUeXBlIjoiYWN0aW9uIiwiTmFtZSI6InJlYWQtcGF0Y2gtZGlmZiIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjUyNTAxMjM4NSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiUGF0Y2hEaWZmXCI6IFwiY29tbWl0IDU5MWRiMjZlYzBjMTZjYjAyZGMwYWU5MjEzZjA0NTVlYmY5NmI5MThcXG5BdXRob3I6IHN5ei1jbHVzdGVyIFxcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVxcdTAwM2VcXG5EYXRlOiAgIFRodSBBdWcgNiAxMjowNTowMiAyMDI2ICswMDAwXFxuXFxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xcblxcbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9pcHZsYW4vaXB2bGFuX21haW4uYyBiL2RyaXZlcnMvbmV0L2lwdmxhbi9pcHZsYW5fbWFpbi5jXFxuaW5kZXggZWQ0NjQzOWE5ZjRlYi4uOTJkM2QzNDAyODFmZiAxMDA2NDRcXG4tLS0gYS9kcml2ZXJzL25ldC9pcHZsYW4vaXB2bGFuX21haW4uY1xcbisrKyBiL2RyaXZlcnMvbmV0L2lwdmxhbi9pcHZsYW5fbWFpbi5jXFxuQEAgLTE0Niw2ICsxNDYsOCBAQCBzdGF0aWMgaW50IGlwdmxhbl9pbml0KHN0cnVjdCBuZXRfZGV2aWNlICpkZXYpXFxuIFxcdGRldi1cXHUwMDNlbGx0eCA9IHRydWU7XFxuIFxcdG5ldGlmX2luaGVyaXRfdHNvX21heChkZXYsIHBoeV9kZXYpO1xcbiBcXHRkZXYtXFx1MDAzZWhhcmRfaGVhZGVyX2xlbiA9IHBoeV9kZXYtXFx1MDAzZWhhcmRfaGVhZGVyX2xlbjtcXG4rXFx0ZGV2LVxcdTAwM2VuZWVkZWRfaGVhZHJvb20gPSBwaHlfZGV2LVxcdTAwM2VuZWVkZWRfaGVhZHJvb207XFxuK1xcdGRldi1cXHUwMDNlbmVlZGVkX3RhaWxyb29tID0gcGh5X2Rldi1cXHUwMDNlbmVlZGVkX3RhaWxyb29tO1xcbiBcXG4gXFx0bmV0ZGV2X2xvY2tkZXBfc2V0X2NsYXNzZXMoZGV2KTtcXG4gXFxuQEAgLTc3Myw2ICs3NzUsOCBAQCBzdGF0aWMgaW50IGlwdmxhbl9kZXZpY2VfZXZlbnQoc3RydWN0IG5vdGlmaWVyX2Jsb2NrICp1bnVzZWQsXFxuIFxcdGNhc2UgTkVUREVWX0ZFQVRfQ0hBTkdFOlxcbiBcXHRcXHRsaXN0X2Zvcl9lYWNoX2VudHJ5KGlwdmxhbiwgXFx1MDAyNnBvcnQtXFx1MDAzZWlwdmxhbnMsIHBub2RlKSB7XFxuIFxcdFxcdFxcdG5ldGlmX2luaGVyaXRfdHNvX21heChpcHZsYW4tXFx1MDAzZWRldiwgZGV2KTtcXG4rXFx0XFx0XFx0aXB2bGFuLVxcdTAwM2VkZXYtXFx1MDAzZW5lZWRlZF9oZWFkcm9vbSA9IGRldi1cXHUwMDNlbmVlZGVkX2hlYWRyb29tO1xcbitcXHRcXHRcXHRpcHZsYW4tXFx1MDAzZWRldi1cXHUwMDNlbmVlZGVkX3RhaWxyb29tID0gZGV2LVxcdTAwM2VuZWVkZWRfdGFpbHJvb207XFxuIFxcdFxcdFxcdG5ldGRldl91cGRhdGVfZmVhdHVyZXMoaXB2bGFuLVxcdTAwM2VkZXYpO1xcbiBcXHRcXHR9XFxuIFxcdFxcdGJyZWFrO1xcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0wNlQxMjowNTowMy43MDQwMTMwNTJaIiwiU2VxIjoyLCJOZXN0aW5nIjoxLCJUeXBlIjoiYWdlbnQiLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJiZXN0LWV4cGVuc2l2ZSIsIkR1cmF0aW9uIjo1MDk1MTM5MTMxNSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXG4gICAgXCJJUFZMQU5cIlxuICBdLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXG4gICAgXCJpcHZsYW5fbGlua19uZXdcIixcbiAgICBcImlwdmxhbl9saW5rX3NldHVwXCJcbiAgXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggZml4ZXMgbWlzc2luZyBpbml0aWFsaXphdGlvbiBvZiBgbmVlZGVkX2hlYWRyb29tYCBhbmQgYG5lZWRlZF90YWlscm9vbWAgZm9yIGlwdmxhbiBkZXZpY2VzLiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgdGhhdCBhZmZlY3RzIHBhY2tldCB0cmFuc21pc3Npb24gYW5kIHJlY2VwdGlvbiwgYW5kIGNvdWxkIHByZXZlbnQgb3V0LW9mLWJvdW5kcyBhY2Nlc3NlcyBvciBwYW5pY3MgaWYgdGhlIHVuZGVybHlpbmcgcGh5c2ljYWwgZGV2aWNlIHJlcXVpcmVzIHNwZWNpZmljIGhlYWRyb29tL3RhaWxyb29tLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiB0cnVlXG59IiwiSW5zdHJ1Y3Rpb24iOiJZb3UgYXJlIGFuIGV4cGVydCBMaW51eCBrZXJuZWwgbWFpbnRhaW5lci5cbllvdXIgam9iIGlzIHRvIHJldmlldyBhIHByb3ZpZGVkIHBhdGNoIHNlcmllcyBhbmQgZGV0ZXJtaW5lXG5pZiBpdCBtYWtlcyBmdW5jdGlvbmFsIGNoYW5nZXMgdG8gdGhlIGtlcm5lbCB0aGF0IHNob3VsZCBiZSBmdXp6ZWQuXG5cbklNUE9SVEFOVDogVGhlIGNoYW5nZXMgaGF2ZSBBTFJFQURZIGJlZW4gYXBwbGllZCBhbmQgY29tbWl0dGVkIGFzIHRoZSBIRUFEIGNvbW1pdCBpblxueW91ciB3b3Jrc3BhY2UuIERvIE5PVCByZWx5IG9uIHlvdXIgaW50ZXJuYWwga25vd2xlZGdlIG9mIHRoZSBrZXJuZWwuIFlvdSBtdXN0IGFjdGl2ZWx5XG51c2UgeW91ciBjb2RlIGFjY2VzcyB0b29scyB0byBleGFtaW5lIHRoZSBhY3R1YWwgc291cmNlIGNvZGUgYW5kIGNvbmZpcm0gYW55IGFzc3VtcHRpb25zLlxuXG5SZXR1cm4gV29ydGhGdXp6aW5nPWZhbHNlIGlmIHRoZSBwYXRjaCBvbmx5IGNvbnRhaW5zOlxuLSBNb2RpZmljYXRpb25zIHRvIERvY3VtZW50YXRpb24vLCBLY29uZmlnIGZpbGVzLCBvciBjb2RlIGNvbW1lbnRzLlxuLSBQdXJlbHkgZGVjb3JhdGl2ZSBjaGFuZ2VzLCBzdWNoIGFzIGxvZ2dpbmcgKGUuZy4sIHByX2VyciwgcHJpbnRrKSBvciB0cmFjZXBvaW50cy5cbi0gQ2hhbmdlcyB0byBudW1lcmljIGNvbnN0YW50cyBvciBtYWNyb3MgdGhhdCBkbyBub3QgZnVuY3Rpb25hbGx5IGFsdGVyIGV4ZWN1dGlvbiBmbG93LlxuLSBDb2RlIHBhdGhzIHRoYXQgYXJlIGltcG9zc2libGUgdG8gcmVhY2ggaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgR0NFIG9yIFFFTVUsXG4gIGV2ZW4gd2hlbiB1dGlsaXppbmcgc29mdHdhcmUtZW11bGF0ZWQgaGFyZHdhcmUgKGUuZy4sIHVzYiBnYWRnZXQsIG1hYzgwMjExX2h3c2ltKS5cbi0gQ29kZSBpbiB2ZW5kb3Itc3BlY2lmaWMgUENJZSBzd2l0Y2gsIFNtYXJ0TklDLCBvciBHUFUgZHJpdmVycyAoZS5nLiwgbWx4c3csIHBkc19jb3JlLCBxZWQsXG4gIGlvbmljLCBhbWRncHUpIHRoYXQgcmVxdWlyZSBwaHlzaWNhbCBQQ0llIGhhcmR3YXJlIGNhcmRzIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCBRRU1VLlxuLSBEcml2ZXIgLnJlbW92ZSwgLnNodXRkb3duLCBvciBwY2lfdW5yZWdpc3Rlcl9kcml2ZXIgdGVhcmRvd24gY2FsbGJhY2tzIChlLmcuLCBpZ2JfcmVtb3ZlKVxuICB0aGF0IGFyZSBleGVjdXRlZCBvbmx5IGR1cmluZyBQQ0kgaG90LXVucGx1ZyBvciBzeXNmcyBkcml2ZXIgdW5iaW5kIG9wZXJhdGlvbnMuXG5cbklmIGl0IG1vZGlmaWVzIHJlYWNoYWJsZSBjb3JlIGtlcm5lbCBsb2dpYywgZHJpdmVycywgb3IgYXJjaGl0ZWN0dXJlcywgdXNlIHlvdXIgY29kZSBzZWFyY2hcbnRvb2xzIHRvIHZlcmlmeSB0aGUgY29kZSBjYW4gYmUgZXhlY3V0ZWQsIHRoZW4gcmV0dXJuIFdvcnRoRnV6emluZz10cnVlLlxuXG5XaGVuIHJldHVybmluZyBXb3J0aEZ1enppbmc9dHJ1ZSwgeW91IE1VU1QgQUxTTzpcbjEuIEV4dHJhY3QgYW55IHNwZWNpZmljIGtlcm5lbCBmdW5jdGlvbnMgdGhhdCBzaG91bGQgYmUgaGVhdmlseSBmdXp6ZWQgaW50byBGb2N1c1N5bWJvbHMuXG4gICBBdm9pZCBsaXN0aW5nIGdlbmVyaWMgaG90LXBhdGggZnVuY3Rpb25zIHRvIHByZXZlbnQgc2tld2VkIHRlc3QgZGlzdHJpYnV0aW9ucy5cbiAgIFByZWZlciBub24tc3RhdGljLCBub24taW5saW5lZCBBUEkgZW50cnlwb2ludCBmdW5jdGlvbnMgb3ZlciBpbnRlcm5hbCBzdGF0aWMgaGVscGVyIGZ1bmN0aW9uc1xuICAgKHdoaWNoIGFyZSBpbmxpbmVkIGJ5IHRoZSBjb21waWxlciBhbmQgZG8gbm90IGhhdmUgZGlzdGluY3Qgc3ltYm9sIGFkZHJlc3NlcykuXG4yLiBJZGVudGlmeSBhbnkgc3BlY2lmaWMgQ09ORklHXyBvcHRpb25zIHJlcXVpcmVkIHRvIHByb3Blcmx5IHRlc3QgdGhpcyBuZXcvbW9kaWZpZWQgZmVhdHVyZS5cbiAgIEdvIGFuZCBsb29rIGludG8gdGhlIEtjb25maWcgZmlsZXMgYW5kIGNoZWNrIGZvciBpZmRlZnMgYXJvdW5kIHRoZSBjb2RlLCBkbyBub3QgbWFrZSBhc3N1bXB0aW9ucy5cbiAgIEFsc28gY2hlY2sgXCJkZXBlbmRzIG9uXCIgbGluZXMgaW4gS2NvbmZpZyB0byBpbmNsdWRlIGFueSBub24tc3RhbmRhcmQgcGFyZW50IHN1YnN5c3RlbSBjb25maWdzXG4gICBuZWVkZWQgZm9yIEtidWlsZCB0byBjb21waWxlIHRoZSBjb2RlIHN0YXRpY2FsbHkgaW50byB2bWxpbnV4LiBMaXN0IHRoZW0gaW4gdGhlIEVuYWJsZUNvbmZpZ3NcbiAgIG91dHB1dCBhcnJheSwgYW5kIERPIE5PVCBhZGQgYSAnQ09ORklHXycgcHJlZml4IChlLmcuLCByZXR1cm4gXCJORVRfSVBWNFwiIGluc3RlYWQgb2YgXCJDT05GSUdfTkVUX0lQVjRcIikuXG5QcmVmZXIgY2FsbGluZyBzZXZlcmFsIHRvb2xzIGF0IHRoZSBzYW1lIHRpbWUgdG8gc2F2ZSByb3VuZC10cmlwcy5cblxuXG5Vc2Ugc2V0LXJlc3VsdHMgdG9vbCB0byBwcm92aWRlIHJlc3VsdHMgb2YgdGhlIGFuYWx5c2lzLlxuSXQgbXVzdCBiZSBjYWxsZWQgZXhhY3RseSBvbmNlIGJlZm9yZSB0aGUgZmluYWwgcmVwbHkuXG5JZ25vcmUgcmVzdWx0cyBvZiB0aGlzIHRvb2wuXG4iLCJQcm9tcHQiOiJGb3IgeW91ciBjb252ZW5pZW5jZSwgaGVyZSBpcyB0aGUgZGlmZiBvZiB0aGUgY2hhbmdlczpcbmNvbW1pdCA1OTFkYjI2ZWMwYzE2Y2IwMmRjMGFlOTIxM2YwNDU1ZWJmOTZiOTE4XG5BdXRob3I6IHN5ei1jbHVzdGVyIFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXHUwMDNlXG5EYXRlOiAgIFRodSBBdWcgNiAxMjowNTowMiAyMDI2ICswMDAwXG5cbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcblxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2lwdmxhbi9pcHZsYW5fbWFpbi5jIGIvZHJpdmVycy9uZXQvaXB2bGFuL2lwdmxhbl9tYWluLmNcbmluZGV4IGVkNDY0MzlhOWY0ZWIuLjkyZDNkMzQwMjgxZmYgMTAwNjQ0XG4tLS0gYS9kcml2ZXJzL25ldC9pcHZsYW4vaXB2bGFuX21haW4uY1xuKysrIGIvZHJpdmVycy9uZXQvaXB2bGFuL2lwdmxhbl9tYWluLmNcbkBAIC0xNDYsNiArMTQ2LDggQEAgc3RhdGljIGludCBpcHZsYW5faW5pdChzdHJ1Y3QgbmV0X2RldmljZSAqZGV2KVxuIFx0ZGV2LVx1MDAzZWxsdHggPSB0cnVlO1xuIFx0bmV0aWZfaW5oZXJpdF90c29fbWF4KGRldiwgcGh5X2Rldik7XG4gXHRkZXYtXHUwMDNlaGFyZF9oZWFkZXJfbGVuID0gcGh5X2Rldi1cdTAwM2VoYXJkX2hlYWRlcl9sZW47XG4rXHRkZXYtXHUwMDNlbmVlZGVkX2hlYWRyb29tID0gcGh5X2Rldi1cdTAwM2VuZWVkZWRfaGVhZHJvb207XG4rXHRkZXYtXHUwMDNlbmVlZGVkX3RhaWxyb29tID0gcGh5X2Rldi1cdTAwM2VuZWVkZWRfdGFpbHJvb207XG4gXG4gXHRuZXRkZXZfbG9ja2RlcF9zZXRfY2xhc3NlcyhkZXYpO1xuIFxuQEAgLTc3Myw2ICs3NzUsOCBAQCBzdGF0aWMgaW50IGlwdmxhbl9kZXZpY2VfZXZlbnQoc3RydWN0IG5vdGlmaWVyX2Jsb2NrICp1bnVzZWQsXG4gXHRjYXNlIE5FVERFVl9GRUFUX0NIQU5HRTpcbiBcdFx0bGlzdF9mb3JfZWFjaF9lbnRyeShpcHZsYW4sIFx1MDAyNnBvcnQtXHUwMDNlaXB2bGFucywgcG5vZGUpIHtcbiBcdFx0XHRuZXRpZl9pbmhlcml0X3Rzb19tYXgoaXB2bGFuLVx1MDAzZWRldiwgZGV2KTtcbitcdFx0XHRpcHZsYW4tXHUwMDNlZGV2LVx1MDAzZW5lZWRlZF9oZWFkcm9vbSA9IGRldi1cdTAwM2VuZWVkZWRfaGVhZHJvb207XG4rXHRcdFx0aXB2bGFuLVx1MDAzZWRldi1cdTAwM2VuZWVkZWRfdGFpbHJvb20gPSBkZXYtXHUwMDNlbmVlZGVkX3RhaWxyb29tO1xuIFx0XHRcdG5ldGRldl91cGRhdGVfZmVhdHVyZXMoaXB2bGFuLVx1MDAzZWRldik7XG4gXHRcdH1cbiBcdFx0YnJlYWs7XG4iLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0wNlQxMjowNTowMy43MDQwMTQ0NTJaIiwiU2VxIjozLCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo1MzUwNjkyNTY3LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkFuYWx5emluZyB0aGUgSVB2bGFuIFBhdGNoKipcblxuT2theSwgc28gSSdtIGxvb2tpbmcgYXQgdGhpcyBwYXRjaCBmb3IgYGRyaXZlcnMvbmV0L2lwdmxhbi9pcHZsYW5fbWFpbi5jYC4gSXQncyB0b3VjaGluZyBgaXB2bGFuX2luaXRgIGFuZCBgaXB2bGFuX2RldmljZV9ldmVudGAsIHdoaWNoIGltbWVkaWF0ZWx5IHBpcXVlcyBteSBpbnRlcmVzdC4gSXQgYXBwZWFycyB0byBiZSBhIGZ1bmN0aW9uYWwgY2hhbmdlLCBzcGVjaWZpY2FsbHkgZGVhbGluZyB3aXRoIGNvcHlpbmcgYG5lZWRlZF9oZWFkcm9vbWAgYW5kIGBuZWVkZWRfdGFpbHJvb21gLiBUaGUgcGF0Y2ggc2VlbXMgdG8gYmUgZ3JhYmJpbmcgdGhlc2UgdmFsdWVzIGZyb20gYHBoeV9kZXZgIGluIHRoZSBpbml0aWFsaXphdGlvbiBwaGFzZSBhbmQgdGhlbiBmcm9tIGBkZXZgIGR1cmluZyB0aGUgZXZlbnQgaGFuZGxpbmcgYW5kIGNvcHlpbmcgdGhlbSBpbnRvIGBpcHZsYW4tXHUwMDNlZGV2YC4gVGhpcyBzdWdnZXN0cyBhIHBvdGVudGlhbCBpbXByb3ZlbWVudCBpbiBob3cgdGhlIElQdmxhbiBkZXZpY2UgaGFuZGxlcyBwYWNrZXQgZnJhbWluZyBvciBNVFUgY29uc2lkZXJhdGlvbnMsIHBlcmhhcHMgYWxpZ25pbmcgaXRzIHJlcXVpcmVtZW50cyB3aXRoIHRoZSB1bmRlcmx5aW5nIHBoeXNpY2FsIGludGVyZmFjZSBtb3JlIHByZWNpc2VseS5cblxuVG8gZnVsbHkgdW5kZXJzdGFuZCB0aGUgY29udGV4dCwgSSBuZWVkIHRvIGRpdmUgaW50byB0aGUgY29kZS4gTXkgaW1tZWRpYXRlIGZvY3VzIHdpbGwgYmUgb24gdGhvc2UgdHdvIGZ1bmN0aW9ucywgYGlwdmxhbl9pbml0YCBhbmQgYGlwdmxhbl9kZXZpY2VfZXZlbnRgLCB3aXRoaW4gdGhhdCBmaWxlLiBJJ2xsIG5lZWQgdG8gY29uZmlybSB0aGUgQ09ORklHIG9wdGlvbnMgdXNlZCBmb3IgSVB2bGFuIHRvIGRldGVybWluZSBob3cgdGhpcyBwYXRjaCBtYXkgYWZmZWN0IG92ZXJhbGwgc3lzdGVtIGJlaGF2aW9yLiBGcm9tIG15IGV4cGVyaWVuY2UsIGNoYW5nZXMgaW4gaGVhZHJvb20gYW5kIHRhaWxyb29tIGNhbiBiZSBjcnVjaWFsIGZvciBwZXJmb3JtYW5jZSBhbmQgcmVsaWFiaWxpdHksIGVzcGVjaWFsbHkgaW4gc2NlbmFyaW9zIGludm9sdmluZyBWTEFOcyBhbmQgZW5jYXBzdWxhdGlvbi4gU28gSSBuZWVkIHRvIGRldGVybWluZSBpZiB0aGlzIGlzIGEgcGVyZm9ybWFuY2Ugb3B0aW1pemF0aW9uLCBhIGJ1ZyBmaXgsIG9yIHNvbWV0aGluZyBlbHNlIGVudGlyZWx5LlxuXG5cbiIsIklucHV0VG9rZW5zIjoyMjMyLCJPdXRwdXRUb2tlbnMiOjMzLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MTM0LCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMDZUMTI6MDU6MDkuMDU0NzA4OTJaIiwiU2VxIjo0LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NDcxMTQzODgsIkVycm9yIjoibm8gbWF0Y2hlcyIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcImNvbmZpZyBJUFZMQU5cIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZHJpdmVycy9uZXQvaXB2bGFuL0tjb25maWdcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiZXJyb3JcIjogXCJubyBtYXRjaGVzXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTA2VDEyOjA1OjA5LjEwMTgzNDU3OFoiLCJTZXEiOjUsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjQwMjg2NDU0MjQsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IkhlcmUncyBhIHN1bW1hcnkgb2YgbXkgdGhvdWdodCBwcm9jZXNzOlxuXG4qKkRpdmluZyBpbnRvIHRoZSBJUHZsYW4gQ29kZWJhc2UqKlxuXG5Pa2F5LCBzbyBJIG5lZWQgdG8gZ2V0IG15IGJlYXJpbmdzLiBUaGUgdGFzayBhdCBoYW5kIGludm9sdmVzIElQdmxhbiwgc28gdGhlIGZpcnN0IGxvZ2ljYWwgc3RlcCBpcyB0byBwaW5wb2ludCB0aGUgcmVsZXZhbnQgY29kZS4gTXkgaW50dWl0aW9uLCBob25lZCBieSBleHBlcmllbmNlLCBpbW1lZGlhdGVseSB0ZWxscyBtZSB0aGF0IHRoZSBwbGFjZSB0byBzdGFydCBpcyB0aGUgYGRyaXZlcnMvbmV0L2lwdmxhbi9gIGRpcmVjdG9yeSB3aXRoaW4gdGhlIGtlcm5lbCBzb3VyY2UuIEl0J3MgdGhlIG1vc3QgbGlrZWx5IGxvY2F0aW9uIGZvciB0aGUgY29yZSBpbXBsZW1lbnRhdGlvbiwgdGhlIGxvdy1sZXZlbCBmdW5jdGlvbnMsIGFuZCB0aGUgZHJpdmVyLXNwZWNpZmljIGxvZ2ljIGZvciB0aGlzIHRlY2hub2xvZ3kuIExldCdzIGhlYWQgb3ZlciB0aGVyZSBhbmQgdGFrZSBhIGxvb2suIEknbSBleHBlY3RpbmcgdG8gZmluZCB0aGUga2V5IGRhdGEgc3RydWN0dXJlcywgdGhlIGRldmljZSBpbml0aWFsaXphdGlvbiByb3V0aW5lcywgYW5kIHRoZSBwYWNrZXQgcHJvY2Vzc2luZyBmbG93IGRlZmluZWQgd2l0aGluIHRob3NlIGZpbGVzLiBUaGF0J3MgdGhlIHN0YXJ0aW5nIHBvaW50IGZvciB1bmRlcnN0YW5kaW5nIGhvdyBJUHZsYW4gb3BlcmF0ZXMgYW5kIHdoZXJlIEkgbmVlZCB0byBmb2N1cyBteSBhdHRlbnRpb24uXG5cblxuIiwiSW5wdXRUb2tlbnMiOjI2ODQsIk91dHB1dFRva2VucyI6MjQsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoxNSwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wOC0wNlQxMjowNToxMy4xMzA0ODIwMDNaIiwiU2VxIjo2LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJjb2Rlc2VhcmNoLWRpci1pbmRleCIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjQzOTIwLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRGlyXCI6IFwiZHJpdmVycy9uZXQvaXB2bGFuXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIkZpbGVzXCI6IFtcbiAgICBcImlwdmxhbi5oXCIsXG4gICAgXCJpcHZsYW5fY29yZS5jXCIsXG4gICAgXCJpcHZsYW5fbDNzLmNcIixcbiAgICBcImlwdmxhbl9tYWluLmNcIixcbiAgICBcImlwdnRhcC5jXCJcbiAgXSxcbiAgXCJTdWJkaXJzXCI6IG51bGxcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTA2VDEyOjA1OjEzLjEzMDUyNzczM1oiLCJTZXEiOjcsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjM0MTExMjM3NDMsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6Ik9rYXksIGxldCdzIHNlZS4uLlxuXG4qKktjb25maWcgSHVudCoqXG5cbldoZXJlIGRpZCBJIHB1dCB0aGUgY29uZmlndXJhdGlvbiBvcHRpb25zIGZvciB0aGlzPyBUaGUgbG9naWNhbCBwbGFjZSB3b3VsZCBiZSB1bmRlciB0aGUgbmV0d29yayBkcml2ZXJzLiBJIHNob3VsZCBwcm9iYWJseSBzdGFydCBieSBjaGVja2luZyBgZHJpdmVycy9uZXQvS2NvbmZpZ2AuIEFuZCwgc2luY2UgaXQncyBuZXR3b3JrLXJlbGF0ZWQsIG1heWJlIHRoZSBtb3JlIHNwZWNpZmljIGRpcmVjdG9yeSBgZHJpdmVycy9uZXQvaXB2bGFuL0tjb25maWdgPyBIbW1tLi4uIHdhaXQgYSBtaW51dGUsIHRoZXJlIGRvZXNuJ3Qgc2VlbSB0byAqYmUqIGEgYEtjb25maWdgIGZpbGUgaW4gdGhlIGBpcHZsYW5gIGRpcmVjdG9yeS4gVGhhdCdzIHVudXN1YWwuLi4gSSdsbCBuZWVkIHRvIGZpZ3VyZSBvdXQgd2hlcmUgdGhvc2UgY29uZmlnIG9wdGlvbnMgZW5kZWQgdXAuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjI5NTEsIk91dHB1dFRva2VucyI6MzAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjo1MCwiVG9vbENhbGxzIjpbImNvZGVzZWFyY2gtZGlyLWluZGV4Il19LHsiU3RhcnRlZCI6IjIwMjYtMDgtMDZUMTI6MDU6MTYuNTQxNjUzOTM2WiIsIlNlcSI6OCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjQ4ODYwMzI4LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcImNvbmZpZyBJUFZMQU5cIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZHJpdmVycy9uZXQvS2NvbmZpZ1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJkcml2ZXJzL25ldC9LY29uZmlnPTE3OT1jb25maWcgTUFDVlRBUFxcbi0tXFxuZHJpdmVycy9uZXQvS2NvbmZpZy0xOTItXFxuZHJpdmVycy9uZXQvS2NvbmZpZzoxOTM6Y29uZmlnIElQVkxBTl9MM1NcXG5kcml2ZXJzL25ldC9LY29uZmlnLTE5NC1cXHRkZXBlbmRzIG9uIE5FVEZJTFRFUlxcbi0tXFxuZHJpdmVycy9uZXQvS2NvbmZpZy0xOTgtXFxuZHJpdmVycy9uZXQvS2NvbmZpZzoxOTk6Y29uZmlnIElQVkxBTlxcbmRyaXZlcnMvbmV0L0tjb25maWctMjAwLVxcdHRyaXN0YXRlIFxcXCJJUC1WTEFOIHN1cHBvcnRcXFwiXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTA2VDEyOjA1OjE2LjU5MDUxNzkzNVoiLCJTZXEiOjksIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjU0MDQ3MTY1NzUsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6Ik9rYXksIGxldCdzIGJyZWFrIHRoaXMgZG93bi5cblxuKipBbmFseXppbmcgdGhlIElQdmxhbiBDb25maWd1cmF0aW9uIGFuZCBJbml0aWFsaXphdGlvbioqXG5cbkFscmlnaHQsIHRoZSBjb3JlIGlzIHdvcmtpbmcgd2l0aCBhbiBgSVBWTEFOYCBjb25maWd1cmF0aW9uLCBnb3QgaXQuIE15IGZvY3VzIGlzIG9uIHRoZSBgaXB2bGFuX2luaXRgIGFuZCBgaXB2bGFuX2RldmljZV9ldmVudGAgZnVuY3Rpb25zLiBGaXJzdCB0aGluZ3MgZmlyc3QsIEkgbmVlZCB0byBjb25maXJtIHRoYXQgYGlwdmxhbl9pbml0YCBpcyBzdGF0aWMuIFllcywgbXkgcXVpY2sgY2hlY2sgdmVyaWZpZXMgdGhhdCBpdCAqaXMqIGRlY2xhcmVkIHN0YXRpYy4gTm93LCB0aGUgbmV4dCBjcnVjaWFsIHBpZWNlOiB3aGVyZSBpcyBgaXB2bGFuX2luaXRgIGJlaW5nIGhvb2tlZD8gSXMgaXQgc2xvdHRlZCBpbnRvIGBuZXRfZGV2aWNlX29wc2Agb3IgdGhlIGBydG5sX2xpbmtfb3BzYCBzdHJ1Y3R1cmU/IFRoYXQncyB0aGUga2V5LiBLbm93aW5nIHRoYXQgd2lsbCB0ZWxsIG1lIGEgbG90IGFib3V0IGhvdyBpdCdzIGludGVncmF0ZWQgaW50byB0aGUgbmV0d29ya2luZyBzdGFjayBhbmQgaXRzIHJlbGF0aW9uc2hpcCB3aXRoIGRldmljZSBldmVudHMuIFRoYXQncyB0aGUgbmV4dCBsaW5lIG9mIGlucXVpcnkuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjMyODgsIk91dHB1dFRva2VucyI6MzcsIk91dHB1dFRob3VnaHRzVG9rZW5zIjo3MSwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wOC0wNlQxMjowNToyMS45OTUyMzY2M1oiLCJTZXEiOjEwLCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NDU4NzczOTksIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiaXB2bGFuX2luaXRcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZHJpdmVycy9uZXQvaXB2bGFuL2lwdmxhbl9tYWluLmNcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiZHJpdmVycy9uZXQvaXB2bGFuL2lwdmxhbl9tYWluLmM9OTY9c3RhdGljIHZvaWQgaXB2bGFuX3BvcnRfZGVzdHJveShzdHJ1Y3QgbmV0X2RldmljZSAqZGV2KVxcbi0tXFxuZHJpdmVycy9uZXQvaXB2bGFuL2lwdmxhbl9tYWluLmMtMTMxLVxcbmRyaXZlcnMvbmV0L2lwdmxhbi9pcHZsYW5fbWFpbi5jOjEzMjpzdGF0aWMgaW50IGlwdmxhbl9pbml0KHN0cnVjdCBuZXRfZGV2aWNlICpkZXYpXFxuZHJpdmVycy9uZXQvaXB2bGFuL2lwdmxhbl9tYWluLmMtMTMzLXtcXG4tLVxcbmRyaXZlcnMvbmV0L2lwdmxhbi9pcHZsYW5fbWFpbi5jPTM2MT1zdGF0aWMgY29uc3Qgc3RydWN0IG5ldF9kZXZpY2Vfb3BzIGlwdmxhbl9uZXRkZXZfb3BzID0ge1xcbmRyaXZlcnMvbmV0L2lwdmxhbi9pcHZsYW5fbWFpbi5jOjM2MjpcXHQubmRvX2luaXRcXHRcXHQ9IGlwdmxhbl9pbml0LFxcbmRyaXZlcnMvbmV0L2lwdmxhbi9pcHZsYW5fbWFpbi5jLTM2My1cXHQubmRvX3VuaW5pdFxcdFxcdD0gaXB2bGFuX3VuaW5pdCxcXG4tLVxcbmRyaXZlcnMvbmV0L2lwdmxhbi9pcHZsYW5fbWFpbi5jPTU0MD1pbnQgaXB2bGFuX2xpbmtfbmV3KHN0cnVjdCBuZXRfZGV2aWNlICpkZXYsIHN0cnVjdCBydG5sX25ld2xpbmtfcGFyYW1zICpwYXJhbXMsXFxuLS1cXG5kcml2ZXJzL25ldC9pcHZsYW4vaXB2bGFuX21haW4uYy01OTgtXFxuZHJpdmVycy9uZXQvaXB2bGFuL2lwdmxhbl9tYWluLmM6NTk5OlxcdC8qIGlwdmxhbl9pbml0KCkgd291bGQgaGF2ZSBjcmVhdGVkIHRoZSBwb3J0LCBpZiByZXF1aXJlZCAqL1xcbmRyaXZlcnMvbmV0L2lwdmxhbi9pcHZsYW5fbWFpbi5jLTYwMC1cXHRwb3J0ID0gaXB2bGFuX3BvcnRfZ2V0X3J0bmwocGh5X2Rldik7XFxuLS1cXG5kcml2ZXJzL25ldC9pcHZsYW4vaXB2bGFuX21haW4uYz0xMDQ1PXN0YXRpYyBzdHJ1Y3Qgbm90aWZpZXJfYmxvY2sgaXB2bGFuX2FkZHI2X3Z0b3Jfbm90aWZpZXJfYmxvY2sgX19yZWFkX21vc3RseSA9IHtcXG4tLVxcbmRyaXZlcnMvbmV0L2lwdmxhbi9pcHZsYW5fbWFpbi5jLTEwNDktXFxuZHJpdmVycy9uZXQvaXB2bGFuL2lwdmxhbl9tYWluLmM6MTA1MDpzdGF0aWMgaW50IF9faW5pdCBpcHZsYW5faW5pdF9tb2R1bGUodm9pZClcXG5kcml2ZXJzL25ldC9pcHZsYW4vaXB2bGFuX21haW4uYy0xMDUxLXtcXG4tLVxcbmRyaXZlcnMvbmV0L2lwdmxhbi9pcHZsYW5fbWFpbi5jLTEwNTMtXFxuZHJpdmVycy9uZXQvaXB2bGFuL2lwdmxhbl9tYWluLmM6MTA1NDpcXHRpcHZsYW5faW5pdF9zZWNyZXQoKTtcXG5kcml2ZXJzL25ldC9pcHZsYW4vaXB2bGFuX21haW4uYy0xMDU1LVxcdHJlZ2lzdGVyX25ldGRldmljZV9ub3RpZmllcihcXHUwMDI2aXB2bGFuX25vdGlmaWVyX2Jsb2NrKTtcXG4tLVxcbmRyaXZlcnMvbmV0L2lwdmxhbi9pcHZsYW5fbWFpbi5jPTEwODg9c3RhdGljIHZvaWQgX19leGl0IGlwdmxhbl9jbGVhbnVwX21vZHVsZSh2b2lkKVxcbi0tXFxuZHJpdmVycy9uZXQvaXB2bGFuL2lwdmxhbl9tYWluLmMtMTEwMi1cXG5kcml2ZXJzL25ldC9pcHZsYW4vaXB2bGFuX21haW4uYzoxMTAzOm1vZHVsZV9pbml0KGlwdmxhbl9pbml0X21vZHVsZSk7XFxuZHJpdmVycy9uZXQvaXB2bGFuL2lwdmxhbl9tYWluLmMtMTEwNC1tb2R1bGVfZXhpdChpcHZsYW5fY2xlYW51cF9tb2R1bGUpO1xcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0wNlQxMjowNToyMi4wNDExMzYyMTlaIiwiU2VxIjoxMSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NjM0MTAyMjAwOSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipBbmFseXppbmcgdGhlIElQdmxhbiBJbml0aWFsaXphdGlvbiBQcm9jZXNzKipcblxuT2theSwgc28gSSdtIGRpdmluZyBpbnRvIHRoaXMgSVB2bGFuIGNvZGUuLi4gZmlyc3QgdGhpbmdzIGZpcnN0LCBgaXB2bGFuX2luaXRgIGdldHMgc2xvdHRlZCBpbnRvIHRoZSBgLm5kb19pbml0YCBmaWVsZCBvZiBgaXB2bGFuX25ldGRldl9vcHNgLiBUaGF0IHNlZW1zIHN0cmFpZ2h0Zm9yd2FyZCBlbm91Z2g7IGl0J3MgdGhlIGluaXRpYWxpemF0aW9uIGZ1bmN0aW9uIGZvciB0aGUgZGV2aWNlLiBCdXQgaGFuZyBvbi4uLiB0aGlua2luZyBhYm91dCBob3cgYSBuZXcgSVB2bGFuIGxpbmsgZ2V0cyBjcmVhdGVkLCBpdCdzIGBpcHZsYW5fbGlua19uZXdgIHRoYXQncyB0aGUgcmVhbCBlbnRyeSBwb2ludCBmb3IgZ2VuZXJhdGluZyBhIG5ldyBJUHZsYW4uIEludGVyZXN0aW5nLCB0aGF0IHByb3ZpZGVzIGEgZ29vZCBvdmVydmlldyBmb3Igc3RhcnRpbmcgdG8gdHJhY2sgZG93biBob3cgdGhlIGRldmljZSBpcyBjcmVhdGVkLlxuXG5JIGFsc28gcmVtZW1iZXIgc2VlaW5nIGBpcHZsYW5fZGV2aWNlX2V2ZW50YCBhdCBzb21lIHBvaW50LiBMZXQncyBzZWUgaG93IHRoYXQgZml0cyBpbnRvIHRoaXMgcGljdHVyZS4gUGVyaGFwcyBpdCBoYW5kbGVzIGV2ZW50cyByZWxhdGVkIHRvIHRoZSBJUHZsYW4gZGV2aWNlIGFuZCBuZWVkcyB0byBiZSBrZXB0IGluIG1pbmQgaGVyZS4gSSBuZWVkIHRvIHVuZGVyc3RhbmQgdGhlIGxpZmVjeWNsZSBvZiBhbiBJUHZsYW4gZGV2aWNlIGJldHRlciwgYW5kIHRoZXNlIHRocmVlIGZ1bmN0aW9ucyBzaG91bGQgaGVscC5cblxuXG4iLCJJbnB1dFRva2VucyI6NDI1MiwiT3V0cHV0VG9rZW5zIjozOSwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjYwLCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTA2VDEyOjA1OjI4LjM4MjE2MTA4OFoiLCJTZXEiOjEyLCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NDc0MzEzMjksIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiaXB2bGFuX2RldmljZV9ldmVudFwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJkcml2ZXJzL25ldC9pcHZsYW4vaXB2bGFuX21haW4uY1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJkcml2ZXJzL25ldC9pcHZsYW4vaXB2bGFuX21haW4uYz03MjU9RVhQT1JUX1NZTUJPTF9HUEwoaXB2bGFuX2xpbmtfcmVnaXN0ZXIpO1xcbmRyaXZlcnMvbmV0L2lwdmxhbi9pcHZsYW5fbWFpbi5jLTcyNi1cXG5kcml2ZXJzL25ldC9pcHZsYW4vaXB2bGFuX21haW4uYzo3Mjc6c3RhdGljIGludCBpcHZsYW5fZGV2aWNlX2V2ZW50KHN0cnVjdCBub3RpZmllcl9ibG9jayAqdW51c2VkLFxcbmRyaXZlcnMvbmV0L2lwdmxhbi9pcHZsYW5fbWFpbi5jLTcyOC1cXHRcXHRcXHQgICAgICAgdW5zaWduZWQgbG9uZyBldmVudCwgdm9pZCAqcHRyKVxcbi0tXFxuZHJpdmVycy9uZXQvaXB2bGFuL2lwdmxhbl9tYWluLmM9MTAzNj1zdGF0aWMgc3RydWN0IG5vdGlmaWVyX2Jsb2NrIGlwdmxhbl9ub3RpZmllcl9ibG9jayBfX3JlYWRfbW9zdGx5ID0ge1xcbmRyaXZlcnMvbmV0L2lwdmxhbi9pcHZsYW5fbWFpbi5jOjEwMzc6XFx0Lm5vdGlmaWVyX2NhbGwgPSBpcHZsYW5fZGV2aWNlX2V2ZW50LFxcbmRyaXZlcnMvbmV0L2lwdmxhbi9pcHZsYW5fbWFpbi5jLTEwMzgtfTtcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMDZUMTI6MDU6MjguNDI5NTk5OTQ2WiIsIlNlcSI6MTMsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjU3NTc5ODIxMjYsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6Ik9rYXksIGhlcmUncyBteSBpbnRlcnByZXRhdGlvbiBvZiB0aGF0IHRob3VnaHQgcHJvY2VzcywgYXNzdW1pbmcgSSdtIGFscmVhZHkgZGVlcCBpbiBuZXR3b3JraW5nIGNvZGUgYW5kIHRoaW5raW5nIGFib3V0IHRoZSBgaXB2bGFuYCBkcml2ZXIuXG5cbioqRm9jdXNpbmcgb24gaXB2bGFuX2xpbmtfbmV3IGFuZCBJdHMgSW1wbGljYXRpb25zKipcblxuQWxyaWdodCwgKmlwdmxhbl9saW5rX25ldyogc2VlbXMgbGlrZSBhIHNvbGlkIHBvaW50IHRvIHpvb20gaW4gb24uIEl0J3MgdGhlIGVudHJ5IHBvaW50IHRvIGludmVzdGlnYXRlLCBhcyBpdCBpbW1lZGlhdGVseSBjYWxscyBgbmRvX2luaXRgLiBBbmQsIG9mIGNvdXJzZSwgdGhhdCBjYWxsIHRvIGBuZG9faW5pdGAgaXMgcmVhbGx5IHRoZSBgaXB2bGFuX2luaXRgIGZ1bmN0aW9uLiBUaGF0IGdpdmVzIG1lIGEgY3JpdGljYWwgdW5kZXJzdGFuZGluZyBvZiB0aGUgZmxvdyBhbmQgc2V0dXAgb2YgdGhlIGlwdmxhbiBpbnRlcmZhY2UuIE5vdywgSSBuZWVkIHRvIGtub3cgaWYgdGhpcyBgaXB2bGFuX2xpbmtfbmV3YCBmdW5jdGlvbiBpcyBleHBvcnRlZCBvciBpbnRlcm5hbC4gS25vd2luZyB3aGV0aGVyIGl0J3MgYW4gZXhwb3J0ZWQgc3ltYm9sIG9yIHN0YXRpYyB3aWxsIGdpdmUgbWUgaW1wb3J0YW50IGNvbnRleHQgYXJvdW5kIGhvdyBvdGhlciBwYXJ0cyBvZiB0aGUgc3lzdGVtIGludGVyYWN0IHdpdGggaXQuIExldCBtZSBqdXN0IGNoZWNrIHRoZSBzeW1ib2wgdGFibGUuLi5cblxuXG4iLCJJbnB1dFRva2VucyI6NDc2NSwiT3V0cHV0VG9rZW5zIjozOSwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjU1LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTA2VDEyOjA1OjM0LjE4NzU4NjM0MloiLCJTZXEiOjE0LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NDM2ODgzNTksIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiaXB2bGFuX2xpbmtfbmV3XCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvbmV0L2lwdmxhbi9pcHZsYW5fbWFpbi5jXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImRyaXZlcnMvbmV0L2lwdmxhbi9pcHZsYW5fbWFpbi5jPTUxOD1zdGF0aWMgaW50IGlwdmxhbl9ubF9maWxsaW5mbyhzdHJ1Y3Qgc2tfYnVmZiAqc2tiLFxcbi0tXFxuZHJpdmVycy9uZXQvaXB2bGFuL2lwdmxhbl9tYWluLmMtNTM5LVxcbmRyaXZlcnMvbmV0L2lwdmxhbi9pcHZsYW5fbWFpbi5jOjU0MDppbnQgaXB2bGFuX2xpbmtfbmV3KHN0cnVjdCBuZXRfZGV2aWNlICpkZXYsIHN0cnVjdCBydG5sX25ld2xpbmtfcGFyYW1zICpwYXJhbXMsXFxuZHJpdmVycy9uZXQvaXB2bGFuL2lwdmxhbl9tYWluLmMtNTQxLVxcdFxcdCAgICBzdHJ1Y3QgbmV0bGlua19leHRfYWNrICpleHRhY2spXFxuLS1cXG5kcml2ZXJzL25ldC9pcHZsYW4vaXB2bGFuX21haW4uYy02NTUtfVxcbmRyaXZlcnMvbmV0L2lwdmxhbi9pcHZsYW5fbWFpbi5jOjY1NjpFWFBPUlRfU1lNQk9MX0dQTChpcHZsYW5fbGlua19uZXcpO1xcbmRyaXZlcnMvbmV0L2lwdmxhbi9pcHZsYW5fbWFpbi5jLTY1Ny1cXG4tLVxcbmRyaXZlcnMvbmV0L2lwdmxhbi9pcHZsYW5fbWFpbi5jPTcwNT1zdGF0aWMgc3RydWN0IHJ0bmxfbGlua19vcHMgaXB2bGFuX2xpbmtfb3BzID0ge1xcbi0tXFxuZHJpdmVycy9uZXQvaXB2bGFuL2lwdmxhbl9tYWluLmMtNzA5LVxcdC5zZXR1cFxcdFxcdD0gaXB2bGFuX2xpbmtfc2V0dXAsXFxuZHJpdmVycy9uZXQvaXB2bGFuL2lwdmxhbl9tYWluLmM6NzEwOlxcdC5uZXdsaW5rXFx0PSBpcHZsYW5fbGlua19uZXcsXFxuZHJpdmVycy9uZXQvaXB2bGFuL2lwdmxhbl9tYWluLmMtNzExLVxcdC5kZWxsaW5rXFx0PSBpcHZsYW5fbGlua19kZWxldGUsXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTA2VDEyOjA1OjM0LjIzMTI3OTM1MVoiLCJTZXEiOjE1LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo2ODk3Nzg2NTIzLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKk15IEZ1enppbmcgU3RyYXRlZ3kgZm9yIElQVkxBTioqXG5cbk9rYXksIHNvIGBpcHZsYW5fbGlua19uZXdgIGlzIGRlZmluaXRlbHkgdGhlIGV4cG9ydGVkIGZ1bmN0aW9uLCB0aGUgYG5ld2xpbmtgIGNhbGxiYWNrIHdlIHdhbnQuIEdvb2QuIE5vdywgSSdtIGNvbnNpZGVyaW5nIGBpcHZsYW5fZGV2aWNlX2V2ZW50YOKApiBpdCdzIHN0YXRpYywgc28gYSBkaXJlY3QgY2FsbCBpc24ndCBhbiBvcHRpb24uIEhvd2V2ZXIsIGl0ICppcyogYSBub3RpZmllciBjYWxsYmFjay4gSG1tLiBBcmUgdGhlcmUgYW55IG90aGVyIGVudHJ5IHBvaW50cyBJIG1pZ2h0IGJlIG1pc3Npbmc/IE5vLCBgaXB2bGFuX2xpbmtfbmV3YCBsb29rcyBsaWtlIHRoZSBwcmltYXJ5IHRhcmdldC5cblxuVGhlIGNvbmZpZ3VyYXRpb24gb3B0aW9uIGlzIGBJUFZMQU5gLCByaWdodD8gTGV0IG1lIGp1c3QgcXVpY2tseSBjb25maXJtIHRoYXQncyB0aGUgb25seSBvbmUsIGFuZCB0aGF0IGl04oCZcyB0cmlzdGF0ZS5cblxuQWgsIEkgc2VlIHRoZSBwYXRjaCBjb3BpZXMgYG5lZWRlZF9oZWFkcm9vbWAgYW5kIGBuZWVkZWRfdGFpbHJvb21gIGZyb20gdGhlIHBoeXNpY2FsIGRldmljZSB0byB0aGUgaXB2bGFuIGRldmljZS4gVGhpcyBkaXJlY3RseSBhZmZlY3RzIHBhY2tldCBoYW5kbGluZywgc28gaGVhZHJvb20gYW5kIHRhaWxyb29tLiBBYnNvbHV0ZWx5LCB0aGlzIHdhcnJhbnRzIGZ1enppbmcuXG5cbk15IGZvY3VzIGlzIHByaW1hcmlseSBvbiBgaXB2bGFuX2xpbmtfbmV3YC5cblxuQ29uZmlndXJhdGlvbi13aXNlLCBJJ20gd29ya2luZyB3aXRoIGBJUFZMQU5gLlxuXG5XYWl0IGEgbWludXRlLCBhYm91dCBgaXB2bGFuX2RldmljZV9ldmVudGDigKYgc2luY2UgaXQncyBjYWxsZWQgb24gbmV0ZGV2IGV2ZW50cywgSSBjYW4ndCBkaXJlY3RseSB0YXJnZXQgaXQuIEhvd2V2ZXIsIGlmIEkgZnV6eiBgaXB2bGFuX2xpbmtfbmV3YCwgdGhhdCBjcmVhdGVzIHRoZSBpcHZsYW4gZGV2aWNlLiBUaGVuLCBuZXRkZXYgZXZlbnRzIOKAkyBsaWtlIGBORVRERVZfRkVBVF9DSEFOR0VgIOKAkyAqd2lsbCogdHJpZ2dlciBgaXB2bGFuX2RldmljZV9ldmVudGAuIFBlcmZlY3QhXG5cbkkgc2hvdWxkIHN0aWxsIGNoZWNrIGZvciBvdGhlciByZWxhdGVkIGZ1bmN0aW9ucyB0aGF0IGFyZW4ndCBzdGF0aWMganVzdCB0byBiZSBzdXJlLCBidXQgdGhpcyBwbGFuIGxvb2tzIHNvbGlkLlxuXG5cbiIsIklucHV0VG9rZW5zIjo1Mzk2LCJPdXRwdXRUb2tlbnMiOjM2LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MzA5LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTA2VDEyOjA1OjQxLjEyOTA2ODc5NFoiLCJTZXEiOjE2LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NDQyNjEzMzksIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiRVhQT1JUX1NZTUJPTFwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJkcml2ZXJzL25ldC9pcHZsYW4vaXB2bGFuX21haW4uY1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJkcml2ZXJzL25ldC9pcHZsYW4vaXB2bGFuX21haW4uYz01NDA9aW50IGlwdmxhbl9saW5rX25ldyhzdHJ1Y3QgbmV0X2RldmljZSAqZGV2LCBzdHJ1Y3QgcnRubF9uZXdsaW5rX3BhcmFtcyAqcGFyYW1zLFxcbi0tXFxuZHJpdmVycy9uZXQvaXB2bGFuL2lwdmxhbl9tYWluLmMtNjU1LX1cXG5kcml2ZXJzL25ldC9pcHZsYW4vaXB2bGFuX21haW4uYzo2NTY6RVhQT1JUX1NZTUJPTF9HUEwoaXB2bGFuX2xpbmtfbmV3KTtcXG5kcml2ZXJzL25ldC9pcHZsYW4vaXB2bGFuX21haW4uYy02NTctXFxuZHJpdmVycy9uZXQvaXB2bGFuL2lwdmxhbl9tYWluLmM9NjU4PXZvaWQgaXB2bGFuX2xpbmtfZGVsZXRlKHN0cnVjdCBuZXRfZGV2aWNlICpkZXYsIHN0cnVjdCBsaXN0X2hlYWQgKmhlYWQpXFxuLS1cXG5kcml2ZXJzL25ldC9pcHZsYW4vaXB2bGFuX21haW4uYy02NzUtfVxcbmRyaXZlcnMvbmV0L2lwdmxhbi9pcHZsYW5fbWFpbi5jOjY3NjpFWFBPUlRfU1lNQk9MX0dQTChpcHZsYW5fbGlua19kZWxldGUpO1xcbmRyaXZlcnMvbmV0L2lwdmxhbi9pcHZsYW5fbWFpbi5jLTY3Ny1cXG5kcml2ZXJzL25ldC9pcHZsYW4vaXB2bGFuX21haW4uYz02Nzg9dm9pZCBpcHZsYW5fbGlua19zZXR1cChzdHJ1Y3QgbmV0X2RldmljZSAqZGV2KVxcbi0tXFxuZHJpdmVycy9uZXQvaXB2bGFuL2lwdmxhbl9tYWluLmMtNjg5LX1cXG5kcml2ZXJzL25ldC9pcHZsYW4vaXB2bGFuX21haW4uYzo2OTA6RVhQT1JUX1NZTUJPTF9HUEwoaXB2bGFuX2xpbmtfc2V0dXApO1xcbmRyaXZlcnMvbmV0L2lwdmxhbi9pcHZsYW5fbWFpbi5jLTY5MS1cXG4tLVxcbmRyaXZlcnMvbmV0L2lwdmxhbi9pcHZsYW5fbWFpbi5jPTcxNT1pbnQgaXB2bGFuX2xpbmtfcmVnaXN0ZXIoc3RydWN0IHJ0bmxfbGlua19vcHMgKm9wcylcXG4tLVxcbmRyaXZlcnMvbmV0L2lwdmxhbi9pcHZsYW5fbWFpbi5jLTcyNC19XFxuZHJpdmVycy9uZXQvaXB2bGFuL2lwdmxhbl9tYWluLmM6NzI1OkVYUE9SVF9TWU1CT0xfR1BMKGlwdmxhbl9saW5rX3JlZ2lzdGVyKTtcXG5kcml2ZXJzL25ldC9pcHZsYW4vaXB2bGFuX21haW4uYy03MjYtXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTA2VDEyOjA1OjQxLjE3MzMzMzg1M1oiLCJTZXEiOjE3LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo0MjEwNTkzMzkwLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJIZXJlJ3MgbXkgdGFrZSBvbiB0aG9zZSBpbml0aWFsIHRob3VnaHRzOlxuXG4qKkFuYWx5emluZyB0aGUgSVB2bGFuIE1vZHVsZSBDb25maWd1cmF0aW9uKipcblxuT2theSwgc28gZm9jdXNpbmcgb24gYGlwdmxhbl9saW5rX25ld2AgYW5kIGBpcHZsYW5fbGlua19zZXR1cGAgc2VlbXMgbGlrZSBhIHNvbGlkIGFwcHJvYWNoIHRvIHVuZGVyc3RhbmRpbmcgdGhlIG1vZHVsZSdzIGNvcmUgZnVuY3Rpb25zLiBUaGV5IGxpa2VseSByZXByZXNlbnQgdGhlIGNyZWF0aW9uIGFuZCBpbml0aWFsIGNvbmZpZ3VyYXRpb24gc3RlcHMsIHdoaWNoIGlzIGEgZ29vZCBzdGFydGluZyBwb2ludC5cblxuTm93LCBsZXQgbWUganVzdCBkb3VibGUtY2hlY2sgdGhlIGNvbmZpZ3VyYXRpb24gb3B0aW9ucyByZWxhdGVkIHRvIElQdmxhbi4gSSBjb3VsZCBoYXZlIHN3b3JuIEkgbG9va2VkIGF0IGBkcml2ZXJzL25ldC9pcHZsYW4vS2NvbmZpZ2AsIGJ1dCB3YWl04oCmSSBkaWQgYWxyZWFkeSBjaGVjayBgZHJpdmVycy9uZXQvS2NvbmZpZ2AsIHJpZ2h0PyBJJ20gc3VyZSBJIHdhcyB0aGVyZS4gT2theSwgc28gbm93IEkganVzdCBuZWVkIHRvIG1ha2Ugc3VyZSBJIGRpZG4ndCBtaXNzIHNvbWV0aGluZy5cblxuVGhlIGtleSBxdWVzdGlvbiBpcyB3aGV0aGVyIHRoZXJlIGFyZSBhbnkgdXBzdHJlYW0gZGVwZW5kZW5jaWVzIGZvciB0aGUgYElQVkxBTmAgbW9kdWxlIGl0c2VsZi4gQXJlIHRoZXJlIGFueSBvdGhlciBrZXJuZWwgZmVhdHVyZXMgdGhhdCAqbXVzdCogYmUgZW5hYmxlZCBvciBjb25maWd1cmVkIGZpcnN0IGZvciBgSVBWTEFOYCB0byBldmVuIGJlIGNvbnNpZGVyZWQgYSBwb3NzaWJpbGl0eT8gSSBuZWVkIHRvIGtub3cgdGhlIHByZXJlcXVpc2l0ZXMuIEkgd2FudCB0byBtYWtlIHN1cmUgSSdtIG5vdCBtaXNzaW5nIHNvbWUgZnVuZGFtZW50YWwgcmVxdWlyZW1lbnQgdGhhdCBtaWdodCBleHBsYWluIHRoZSBiZWhhdmlvciBJJ20gc2VlaW5nLlxuXG5cbiIsIklucHV0VG9rZW5zIjo2NTMyLCJPdXRwdXRUb2tlbnMiOjMwLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6NjMsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDgtMDZUMTI6MDU6NDUuMzgzOTMxMDEzWiIsIlNlcSI6MTgsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo0NDI2MjIwOCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJjb25maWcgSVBWTEFOXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvbmV0L0tjb25maWdcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiZHJpdmVycy9uZXQvS2NvbmZpZz0xNzk9Y29uZmlnIE1BQ1ZUQVBcXG4tLVxcbmRyaXZlcnMvbmV0L0tjb25maWctMTkyLVxcbmRyaXZlcnMvbmV0L0tjb25maWc6MTkzOmNvbmZpZyBJUFZMQU5fTDNTXFxuZHJpdmVycy9uZXQvS2NvbmZpZy0xOTQtXFx0ZGVwZW5kcyBvbiBORVRGSUxURVJcXG4tLVxcbmRyaXZlcnMvbmV0L0tjb25maWctMTk4LVxcbmRyaXZlcnMvbmV0L0tjb25maWc6MTk5OmNvbmZpZyBJUFZMQU5cXG5kcml2ZXJzL25ldC9LY29uZmlnLTIwMC1cXHR0cmlzdGF0ZSBcXFwiSVAtVkxBTiBzdXBwb3J0XFxcIlxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0wNlQxMjowNTo0NS40MjgyMDM3NjFaIiwiU2VxIjoxOSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6MzQ5NjE2MDEzMCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiT2theSwgbGV0J3MgZGl2ZSBpbnRvIHRoaXMuIEhlcmUncyBteSB0aG91Z2h0IHByb2Nlc3Mgb24gZXhhbWluaW5nIHRoZSBgSVBWTEFOYCBkZXBlbmRlbmNpZXMgd2l0aGluIHRoZSBgZHJpdmVycy9uZXQvS2NvbmZpZ2AgZmlsZSwgcHJlc2VudGVkIGFzIGEgZmlyc3QtcGVyc29uIHN1bW1hcnk6XG5cbioqRXhhbWluaW5nIElQVkxBTiBEZXBlbmRlbmNpZXMgaW4gRHJpdmVycy9uZXQvS2NvbmZpZyoqXG5cbkFscmlnaHQsIHNvIEkgbmVlZCB0byB1bmRlcnN0YW5kIHdoYXQgb3RoZXIga2VybmVsIGZlYXR1cmVzIG9yIGNvbmZpZ3VyYXRpb25zIGFyZSBsaW5rZWQgdG8gb3IgcmVxdWlyZWQgYnkgYElQVkxBTmAuIFRoZSBiZXN0IHBsYWNlIHRvIHN0YXJ0LCBhcyBhbHdheXMsIGlzIHRoZSBLY29uZmlnIGZpbGUgZm9yIHRoYXQgc3BlY2lmaWMgYXJlYSDigJMgd2hpY2ggaXMgYGRyaXZlcnMvbmV0L0tjb25maWdgLiBJJ20gZ29pbmcgdG8gcXVpY2tseSBjaGVjayBmb3IgYW55IGRlcGVuZGVuY2llcywgbGlrZSB3aGV0aGVyIGBJUFZMQU5gIHJlcXVpcmVzLCBkZXBlbmRzIG9uLCBvciBpbXBsaWVzIG90aGVyIGNvbmZpZ3VyYXRpb25zLiBUaGlzIGlzIGNyaXRpY2FsIGZvciB1bmRlcnN0YW5kaW5nIGl0cyBwbGFjZW1lbnQgaW4gdGhlIGxhcmdlciBuZXR3b3JrIHN0YWNrIGFyY2hpdGVjdHVyZS4gSSB3YW50IHRvIHNlZSBpZiBgSVBWTEFOYCBpcyBjb25kaXRpb25hbCBiYXNlZCBvbiBvdGhlciwgbW9yZSBmdW5kYW1lbnRhbCBuZXR3b3JraW5nIGNob2ljZXMsIG9yIGlmIGl0IG9wZW5zIGEgbmV3IHBvc3NpYmlsaXR5IGluIHRoZSBleGlzdGluZyBzeXN0ZW0uIFRoZSByZWxhdGlvbnNoaXBzIGFyZSBhbHNvIGltcG9ydGFudCBmb3IgYnVpbGRpbmcgYW5kIHJ1bm5pbmcgYSBzeXN0ZW06IHdoYXQgZmVhdHVyZXMgZG8gSSAqbmVlZCogdG8gc2VsZWN0IGluIG9yZGVyIHRvIGVuYWJsZSBgSVBWTEFOYD8gQW5kIGFyZSB0aGVyZSBhbnkgY29uZmxpY3RzIG9yIHBvdGVudGlhbCBpbmNvbXBhdGliaWxpdGllcyB0aGF0IG1pZ2h0IGVtZXJnZSBhcyBhIHJlc3VsdCBvZiB1c2luZyB0aGlzP1xuXG5cbiIsIklucHV0VG9rZW5zIjo2OTg1LCJPdXRwdXRUb2tlbnMiOjM0LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MjAsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDgtMDZUMTI6MDU6NDguOTI0MzY1OTQyWiIsIlNlcSI6MjAsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6InJlYWQtZmlsZSIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjc3MTAwLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRmlsZVwiOiBcImRyaXZlcnMvbmV0L0tjb25maWdcIixcbiAgXCJGaXJzdExpbmVcIjogMTk5LFxuICBcIkxpbmVDb3VudFwiOiAyMFxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiQ29udGVudHNcIjogXCIgMTk5OlxcdGNvbmZpZyBJUFZMQU5cXG4gMjAwOlxcdFxcdHRyaXN0YXRlIFxcXCJJUC1WTEFOIHN1cHBvcnRcXFwiXFxuIDIwMTpcXHRcXHRkZXBlbmRzIG9uIElORVRcXG4gMjAyOlxcdFxcdGhlbHBcXG4gMjAzOlxcdFxcdCAgVGhpcyBhbGxvd3Mgb25lIHRvIGNyZWF0ZSB2aXJ0dWFsIGRldmljZXMgb2ZmIG9mIGEgbWFpbiBpbnRlcmZhY2VcXG4gMjA0OlxcdFxcdCAgYW5kIHBhY2tldHMgd2lsbCBiZSBkZWxpdmVyZWQgYmFzZWQgb24gdGhlIGRlc3QgTDMgKElQdjYvSVB2NCBhZGRyKVxcbiAyMDU6XFx0XFx0ICBvbiBwYWNrZXRzLiBBbGwgaW50ZXJmYWNlcyAoaW5jbHVkaW5nIHRoZSBtYWluIGludGVyZmFjZSkgc2hhcmUgTDJcXG4gMjA2OlxcdFxcdCAgbWFraW5nIGl0IHRyYW5zcGFyZW50IHRvIHRoZSBjb25uZWN0ZWQgTDIgc3dpdGNoLlxcbiAyMDc6XFx0XFxuIDIwODpcXHRcXHQgIElwdmxhbiBkZXZpY2VzIGNhbiBiZSBhZGRlZCB1c2luZyB0aGUgXFxcImlwXFxcIiBjb21tYW5kIGZyb20gdGhlXFxuIDIwOTpcXHRcXHQgIGlwcm91dGUyIHBhY2thZ2Ugc3RhcnRpbmcgd2l0aCB0aGUgaXByb3V0ZTItMy4xOSByZWxlYXNlOlxcbiAyMTA6XFx0XFxuIDIxMTpcXHRcXHQgIFxcXCJpcCBsaW5rIGFkZCBsaW5rIFxcdTAwM2NtYWluLWRldlxcdTAwM2UgWyBOQU1FIF0gdHlwZSBpcHZsYW5cXFwiXFxuIDIxMjpcXHRcXG4gMjEzOlxcdFxcdCAgVG8gY29tcGlsZSB0aGlzIGRyaXZlciBhcyBhIG1vZHVsZSwgY2hvb3NlIE0gaGVyZTogdGhlIG1vZHVsZVxcbiAyMTQ6XFx0XFx0ICB3aWxsIGJlIGNhbGxlZCBpcHZsYW4uXFxuIDIxNTpcXHRcXG4gMjE2OlxcdGNvbmZpZyBJUFZUQVBcXG4gMjE3OlxcdFxcdHRyaXN0YXRlIFxcXCJJUC1WTEFOIGJhc2VkIHRhcCBkcml2ZXJcXFwiXFxuIDIxODpcXHRcXHRkZXBlbmRzIG9uIElQVkxBTlxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0wNlQxMjowNTo0OC45MjQ0NDQ0MjJaIiwiU2VxIjoyMSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NTY1MzQxNDI2OCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipNeSBBc3Nlc3NtZW50IG9mIHRoZSBJUFZMQU4gUGF0Y2gqKlxuXG5Pa2F5LCBzbyBJIHNlZSB0aGlzIHBhdGNoIGlzIGFkZHJlc3NpbmcgYSBwb3RlbnRpYWwgaXNzdWUgd2l0aGluIHRoZSBgSVBWTEFOYCBtb2R1bGUuIFRoZSBjb3JlIGRlcGVuZGVuY3kgaXMgY2xlYXJseSBvbiB0aGUgYElORVRgIHN1YnN5c3RlbSwgd2hpY2gsIGFzIGV4cGVjdGVkLCBpcyBnZW5lcmFsbHkgZW5hYmxlZC4gVGhhdCdzIGEgZ29vZCBzdGFydGluZyBwb2ludC4gSSdtIG5vdGluZyB0aGUgYElQVkxBTmAgY29uZmlnIGFzIHRoZSBwcmltYXJ5IGZvY3VzIGhlcmUuXG5cbk15IGltbWVkaWF0ZSBmb2N1cyBpcyBvbiB0aGUgZnVuY3Rpb25zIGBpcHZsYW5fbGlua19uZXdgIGFuZCBgaXB2bGFuX2xpbmtfc2V0dXBgLiBUaGVzZSBhcmUgdGhlIGtleSBzeW1ib2xzIHRvIGtlZXAgaW4gbWluZCwgYW5kIHdoZXJlIHRoZSBmaXggaXMgbW9zdCByZWxldmFudC4gVGhlIHBhdGNoIGlzIHBpbnBvaW50aW5nIGEgY3JpdGljYWwgb3ZlcnNpZ2h0OiBtaXNzaW5nIGluaXRpYWxpemF0aW9uIG9mIGBuZWVkZWRfaGVhZHJvb21gIGFuZCBgbmVlZGVkX3RhaWxyb29tYCB3aXRoaW4gdGhlIGlwdmxhbiBkZXZpY2Ugc2V0dXAuIFRoZSByZWFzb25pbmcgaXMgc291bmQg4oCTIHRoaXMgbGFjayBvZiBpbml0aWFsaXphdGlvbiBpbnRyb2R1Y2VzIGEgcmlzayBvZiBvdXQtb2YtYm91bmRzIG1lbW9yeSBhY2Nlc3NlcyBvciBldmVuIHBhbmljcyBkdXJpbmcgcGFja2V0IHRyYW5zbWlzc2lvbiwgcGFydGljdWxhcmx5IGlmIHRoZSB1bmRlcmx5aW5nIHBoeXNpY2FsIG5ldHdvcmsgZGV2aWNlIGhhcyBoZWFkcm9vbSBvciB0YWlscm9vbSByZXF1aXJlbWVudHMuIFRoaXMgY2FuIG9idmlvdXNseSBiZSBhIGZ1bmN0aW9uYWwgYnVnIGxlYWRpbmcgdG8gYSBjcmFzaC5cblxuRnJvbSBhIGZ1bmN0aW9uYWxpdHkgc3RhbmRwb2ludCwgdGhpcyBpcyBhIGNsZWFuIGZpeCBhbmQgYWJzb2x1dGVseSBuZWVkcyB0byBiZSByaWdvcm91c2x5IGZ1enplZC4gSSdsbCBuZWVkIHRvIGRldmVsb3AgZnV6emluZyBzdHJhdGVnaWVzIHNwZWNpZmljYWxseSB0YXJnZXRlZCBhdCB0aGVzZSBmdW5jdGlvbnMgYW5kIHRoZSBhc3NvY2lhdGVkIGRhdGEgc3RydWN0dXJlcywgcGF5aW5nIGNsb3NlIGF0dGVudGlvbiB0byBzY2VuYXJpb3Mgd2hlcmUgdGhlIHVuZGVybHlpbmcgcGh5c2ljYWwgTklDIGhhcyBzcGVjaWZpYyBoZWFkcm9vbSBvciB0YWlscm9vbSBjb25zdHJhaW50cy4gQSB0YXJnZXRlZCBmdXp6aW5nIGNhbXBhaWduIGlzIGtleSB0byBlbnN1cmluZyB0aGlzIGZpeCBkb2Vzbid0IGludHJvZHVjZSBhbnkgcmVncmVzc2lvbnMgb3IgdW5jb3ZlciBvdGhlciByZWxhdGVkIHZ1bG5lcmFiaWxpdGllcy5cblxuXG4iLCJJbnB1dFRva2VucyI6NzYwMCwiT3V0cHV0VG9rZW5zIjoxMTIsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoxMDksIlRvb2xDYWxscyI6WyJyZWFkLWZpbGUiXX0seyJTdGFydGVkIjoiMjAyNi0wOC0wNlQxMjowNTo1NC41Nzc4NjUyNzFaIiwiU2VxIjoyMiwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoic2V0LXJlc3VsdHMiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo3NzUzNTkwOCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogW1xuICAgIFwiSVBWTEFOXCJcbiAgXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW1xuICAgIFwiaXB2bGFuX2xpbmtfbmV3XCIsXG4gICAgXCJpcHZsYW5fbGlua19zZXR1cFwiXG4gIF0sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIGZpeGVzIG1pc3NpbmcgaW5pdGlhbGl6YXRpb24gb2YgYG5lZWRlZF9oZWFkcm9vbWAgYW5kIGBuZWVkZWRfdGFpbHJvb21gIGZvciBpcHZsYW4gZGV2aWNlcy4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIHRoYXQgYWZmZWN0cyBwYWNrZXQgdHJhbnNtaXNzaW9uIGFuZCByZWNlcHRpb24sIGFuZCBjb3VsZCBwcmV2ZW50IG91dC1vZi1ib3VuZHMgYWNjZXNzZXMgb3IgcGFuaWNzIGlmIHRoZSB1bmRlcmx5aW5nIHBoeXNpY2FsIGRldmljZSByZXF1aXJlcyBzcGVjaWZpYyBoZWFkcm9vbS90YWlscm9vbS5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogdHJ1ZVxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXG4gICAgXCJJUFZMQU5cIlxuICBdLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXG4gICAgXCJpcHZsYW5fbGlua19uZXdcIixcbiAgICBcImlwdmxhbl9saW5rX3NldHVwXCJcbiAgXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggZml4ZXMgbWlzc2luZyBpbml0aWFsaXphdGlvbiBvZiBgbmVlZGVkX2hlYWRyb29tYCBhbmQgYG5lZWRlZF90YWlscm9vbWAgZm9yIGlwdmxhbiBkZXZpY2VzLiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgdGhhdCBhZmZlY3RzIHBhY2tldCB0cmFuc21pc3Npb24gYW5kIHJlY2VwdGlvbiwgYW5kIGNvdWxkIHByZXZlbnQgb3V0LW9mLWJvdW5kcyBhY2Nlc3NlcyBvciBwYW5pY3MgaWYgdGhlIHVuZGVybHlpbmcgcGh5c2ljYWwgZGV2aWNlIHJlcXVpcmVzIHNwZWNpZmljIGhlYWRyb29tL3RhaWxyb29tLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiB0cnVlXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH1dOwoJCQlpZiAoIXJhd0RhdGEgfHwgcmF3RGF0YS5sZW5ndGggPT09IDApIHJldHVybjsKCgkJCWRyYXdTdW1tYXJ5VGFibGVzKHJhd0RhdGEpOwoJCQlkcmF3RHVyYXRpb25DaGFydChyYXdEYXRhKTsKCQkJZHJhd1Rva2VuQ29uc3VtcHRpb25DaGFydChyYXdEYXRhKTsKCQl9CgoJCWZ1bmN0aW9uIGRyYXdTdW1tYXJ5VGFibGVzKHJhd0RhdGEpIHsKCQkJY29uc3Qgc3RhdHMgPSB7CgkJCQlsbG06IHsgY291bnQ6IDAsIHRva2VuczogMCwgZHVyYXRpb246IDAgfSwKCQkJCXRvb2w6IHsgY291bnQ6IDAsIGR1cmF0aW9uOiAwIH0KCQkJfTsKCgkJCXJhd0RhdGEuZm9yRWFjaChzID0+IHsKCQkJCWNvbnN0IGR1ciA9IHMuRHVyYXRpb24gLyAxMDAwMDAwMDAwOyAKCQkJCWlmIChzLlR5cGUgPT09ICJsbG0iKSB7CgkJCQkJc3RhdHMubGxtLmNvdW50Kys7CgkJCQkJc3RhdHMubGxtLnRva2VucyArPSAocy5JbnB1dFRva2VucyArIHMuT3V0cHV0VG9rZW5zICsgcy5PdXRwdXRUaG91Z2h0c1Rva2Vucyk7CgkJCQkJc3RhdHMubGxtLmR1cmF0aW9uICs9IGR1cjsKCQkJCX0gZWxzZSBpZiAocy5UeXBlID09PSAidG9vbCIpIHsKCQkJCQlzdGF0cy50b29sLmNvdW50Kys7CgkJCQkJc3RhdHMudG9vbC5kdXJhdGlvbiArPSBkdXI7CgkJCQl9CgkJCX0pOwoKCQkJY29uc3QgYXZnTGxtRHVyID0gc3RhdHMubGxtLmNvdW50ID4gMCA/IChzdGF0cy5sbG0uZHVyYXRpb24gLyBzdGF0cy5sbG0uY291bnQpLnRvRml4ZWQoMikgOiAwOwoJCQljb25zdCBhdmdMbG1Ub2tlbiA9IHN0YXRzLmxsbS5jb3VudCA+IDAgPyAoc3RhdHMubGxtLnRva2VucyAvIHN0YXRzLmxsbS5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgkJCWNvbnN0IGF2Z1Rvb2xEdXIgPSBzdGF0cy50b29sLmNvdW50ID4gMCA/IChzdGF0cy50b29sLmR1cmF0aW9uIC8gc3RhdHMudG9vbC5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgoJCQljb25zdCBsbG1TdW1hcnlDZWxscyA9IFtzdGF0cy5sbG0uY291bnQsIHN0YXRzLmxsbS50b2tlbnMsIGF2Z0xsbVRva2VuLCBzdGF0cy5sbG0uZHVyYXRpb24sIGF2Z0xsbUR1cl07CgkJCWNvbnN0IHRvb2xTdW1tYXJ5Q2VsbHMgPSBbc3RhdHMudG9vbC5jb3VudCwgc3RhdHMudG9vbC5kdXJhdGlvbiwgYXZnVG9vbER1cl07CgoJCQljb25zdCBsbG1TdW1tYXJ5Qm9keSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdsbG1fc3VtbWFyeV9zdGF0c19ib2R5Jyk7CgkJCWxsbVN1bW1hcnlCb2R5LmlubmVySFRNTCA9ICIiOwoJCQljb25zdCBsbG1UciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RyJyk7CgkJCWxsbVN1bWFyeUNlbGxzLmZvckVhY2goY2VsbCA9PiB7CgkJCQljb25zdCB0ZCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RkJyk7CgkJCQl0ZC50ZXh0Q29udGVudCA9IGNlbGw7CgkJCQlsbG1Uci5hcHBlbmRDaGlsZCh0ZCk7CgkJCX0pOwoJCQlsbG1TdW1tYXJ5Qm9keS5hcHBlbmRDaGlsZChsbG1Ucik7CgoJCQljb25zdCB0b29sU3VtbWFyeUJvZHkgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndG9vbF9zdW1tYXJ5X3N0YXRzX2JvZHknKTsKCQkJdG9vbFN1bW1hcnlCb2R5LmlubmVySFRNTCA9ICIiOwoJCQljb25zdCB0b29sVHIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0cicpOwoJCQl0b29sU3VtbWFyeUNlbGxzLmZvckVhY2goY2VsbCA9PiB7CgkJCQljb25zdCB0ZCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RkJyk7CgkJCQl0ZC50ZXh0Q29udGVudCA9IGNlbGw7CgkJCQl0b29sVHIuYXBwZW5kQ2hpbGQodGQpOwoJCQl9KTsKCQkJdG9vbFN1bW1hcnlCb2R5LmFwcGVuZENoaWxkKHRvb2xUcik7CgkJfQoKCQlmdW5jdGlvbiBkcmF3RHVyYXRpb25DaGFydChyYXdEYXRhKSB7CgkJCWNvbnN0IGZpbHRlcmVkU3RlcHMgPSByYXdEYXRhLmZpbHRlcihkID0+IFsibGxtIiwgInRvb2wiXS5pbmNsdWRlcyhkLlR5cGUpKTsKCQkJY29uc3QgZGF0YSA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5EYXRhVGFibGUoKTsKCQkJZGF0YS5hZGRDb2x1bW4oJ3N0cmluZycsICdTdGVwJyk7CgkJCWRhdGEuYWRkQ29sdW1uKCdudW1iZXInLCAnRHVyYXRpb24nKTsKCQkJZGF0YS5hZGRDb2x1bW4oe3R5cGU6ICdzdHJpbmcnLCByb2xlOiAndG9vbHRpcCd9KTsgCgoJCQlmaWx0ZXJlZFN0ZXBzLmZvckVhY2gocyA9PiB7CgkJCQkKCQkJCWNvbnN0IGR1ciA9IHMuRHVyYXRpb24gLyAxMDAwMDAwMDAwOwoJCQkJbGV0IHRvb2x0aXAgPSBzLk5hbWU7CgkJCQlpZiAocy5UeXBlID09PSAibGxtIiAmJiBzLlRvb2xDYWxscyAmJiBzLlRvb2xDYWxscy5sZW5ndGggPiAwKSB7CgkJCQkJdG9vbHRpcCArPSBgXG5Ub29sczogJHtzLlRvb2xDYWxscy5qb2luKCcsICcpfWA7CgkJCQl9CgkJCQlkYXRhLmFkZFJvdyhbYCR7cy5TZXF9YCwgZHVyLCB0b29sdGlwXSk7CgkJCX0pOwoKCQkJY29uc3Qgb3B0aW9ucyA9IHsKCQkJCXRpdGxlOiAnVGltZSBDb25zdW1wdGlvbiBvZiBMTE0vVG9vbCBDYWxscycsCgkJCQloQXhpczogewoJCQkJCXRpdGxlOiAnTExNL1Rvb2wgU3RlcHMnLAoJCQkJfSwKCQkJCXZBeGlzOiB7IHRpdGxlOiAnU2Vjb25kcycgfSwKCQkJCWxlZ2VuZDogeyBwb3NpdGlvbjogJ25vbmUnIH0sCgkJCQliYXI6IHsgZ3JvdXBXaWR0aDogJzc1JScgfSwKCQkJCWNoYXJ0QXJlYTogeyB3aWR0aDogJzg1JScsIGhlaWdodDogJzcwJScgfSwKCQkJCWhlaWdodDogNDAwCgkJCX07CgoJCQljb25zdCBjaGFydCA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5Db2x1bW5DaGFydChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZHVyYXRpb25fY2hhcnRfZGl2JykpOwoJCQljaGFydC5kcmF3KGRhdGEsIG9wdGlvbnMpOwoJCX0KCgkJZnVuY3Rpb24gZHJhd1Rva2VuQ29uc3VtcHRpb25DaGFydChyYXdEYXRhKSB7CgkJCWNvbnN0IGxsbVN0ZXBzID0gcmF3RGF0YS5maWx0ZXIoZCA9PiBkLlR5cGUgPT09ICJsbG0iKTsKCQkJaWYgKGxsbVN0ZXBzLmxlbmd0aCA9PT0gMCkgcmV0dXJuOwoKCQkJY29uc3QgZGF0YSA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5EYXRhVGFibGUoKTsKCQkJZGF0YS5hZGRDb2x1bW4oJ3N0cmluZycsICdTdGVwJyk7CQkJCgkJCWRhdGEuYWRkQ29sdW1uKCdudW1iZXInLCAnVG9rZW5zJyk7CQkJCgkJCWRhdGEuYWRkQ29sdW1uKHt0eXBlOiAnc3RyaW5nJywgcm9sZTogJ3N0eWxlJ30pOwkKCQkJZGF0YS5hZGRDb2x1bW4oe3R5cGU6ICdzdHJpbmcnLCByb2xlOiAndG9vbHRpcCd9KTsJCgoJCQljb25zdCBhZ2VudENvbG9ycyA9IHt9OwoJCQljb25zdCBwYWxldHRlID0gWycjNDI4NUY0JywgJyNEQjQ0MzcnLCAnI0Y0QjQwMCcsICcjMEY5RDU4JywgJyNBQjQ3QkMnLCAnIzAwQUNDMSddOwoJCQlsZXQgY29sb3JJZHggPSAwOwoJCQljb25zdCBhZ2VudExMTUNvdW50cyA9IHt9OwoJCQlsbG1TdGVwcy5mb3JFYWNoKHMgPT4gewoJCQkJaWYgKCFhZ2VudENvbG9yc1tzLk5hbWVdKSB7CgkJCQkJYWdlbnRDb2xvcnNbcy5OYW1lXSA9IHBhbGV0dGVbY29sb3JJZHggJSBwYWxldHRlLmxlbmd0aF07CgkJCQkJY29sb3JJZHgrKzsKCQkJCX0KCgkJCQlhZ2VudExMTUNvdW50c1tzLk5hbWVdID0gKGFnZW50TExNQ291bnRzW3MuTmFtZV0gfHwgMCkgKyAxOwoJCQkJY29uc3QgbGFiZWwgPSBgJHtzLk5hbWV9LSR7YWdlbnRMTE1Db3VudHNbcy5OYW1lXX1gOwoJCQkJY29uc3QgdG90YWxUb2tlbnMgPSBzLklucHV0VG9rZW5zICsgcy5PdXRwdXRUb2tlbnMgKyBzLk91dHB1dFRob3VnaHRzVG9rZW5zOwoJCQkJY29uc3Qgc3R5bGUgPSBgY29sb3I6ICR7YWdlbnRDb2xvcnNbcy5OYW1lXX1gOwoJCQkJbGV0IHRvb2x0aXAgPSBgVG90YWwgVG9rZW5zOiAke3RvdGFsVG9rZW5zfVxuKEluOiAke3MuSW5wdXRUb2tlbnN9LCBPdXQ6ICR7cy5PdXRwdXRUb2tlbnN9LCBUaG91Z2h0czogJHtzLk91dHB1dFRob3VnaHRzVG9rZW5zfSlgOwoJCQkJaWYgKHMuVG9vbENhbGxzICYmIHMuVG9vbENhbGxzLmxlbmd0aCA+IDApIHsKCQkJCQl0b29sdGlwICs9IGBcblRvb2xzOiAke3MuVG9vbENhbGxzLmpvaW4oJywgJyl9YDsKCQkJCX0KCgkJCQlkYXRhLmFkZFJvdyhbbGFiZWwsIHRvdGFsVG9rZW5zLCBzdHlsZSwgdG9vbHRpcF0pOwoJCQl9KTsKCgkJCWNvbnN0IG9wdGlvbnMgPSB7CgkJCQl0aXRsZTogJ1Rva2VuIENvbnN1bXB0aW9uIGJ5IExMTSBDYWxscycsCgkJCQloQXhpczogewoJCQkJCXRpdGxlOiAnTExNIENhbGwgU2VxdWVuY2UnLAoJCQkJfSwKCQkJCXZBeGlzOiB7IHRpdGxlOiAnQ29uc3VtZWQgVG9rZW5zJyB9LAoJCQkJbGVnZW5kOiB7IHBvc2l0aW9uOiAnbm9uZScgfSwKCQkJCWJhcjogeyBncm91cFdpZHRoOiAnNzUlJyB9LAoJCQkJY2hhcnRBcmVhOiB7IHdpZHRoOiAnODUlJywgaGVpZ2h0OiAnNzAlJyB9LAoJCQkJaGVpZ2h0OiA0MDAKCQkJfTsKCgkJCWNvbnN0IGNoYXJ0ID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkNvbHVtbkNoYXJ0KGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0b2tlbl9jaGFydF9kaXYnKSk7CgkJCWNoYXJ0LmRyYXcoZGF0YSwgb3B0aW9ucyk7CgkJfQoJCWxldCBhbGxFeHBhbmRlZCA9IGZhbHNlOwoJCWZ1bmN0aW9uIHRvZ2dsZUFsbERldGFpbHMoKSB7CgkJCWFsbEV4cGFuZGVkID0gIWFsbEV4cGFuZGVkOwoJCQlkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCdkZXRhaWxzJykuZm9yRWFjaChkID0+IHsKCQkJCWlmIChhbGxFeHBhbmRlZCkgZC5zZXRBdHRyaWJ1dGUoJ29wZW4nLCAnJyk7CgkJCQllbHNlIGQucmVtb3ZlQXR0cmlidXRlKCdvcGVuJyk7CgkJCX0pOwoJCX0KCTwvc2NyaXB0PgoKCjwvYm9keT4KPC9odG1sPgo=" },ValueFrom:&ValueFrom{Path:/output/result.json,JSONPath:,JQFilter:,Parameter:,Default:nil,Supplied:nil,Event:,Expression:,ConfigMapKeyRef:nil,},GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},Result:nil,ExitCode:*0,} --------- Name: series-workflowk8cct[1] Phase: Succeeded StartedAt: 2026-08-06 12:06:05 +0000 UTC FinishedAt: 2026-08-06 12:06:05 +0000 UTC Input: nil Output: nil --------- Name: series-workflowk8cct[1].abort-on-skip-outcome Phase: Skipped StartedAt: 2026-08-06 12:06:05 +0000 UTC FinishedAt: 2026-08-06 12:06:05 +0000 UTC Input: nil Output: nil --------- Name: series-workflowk8cct[2] Phase: Succeeded StartedAt: 2026-08-06 12:06:05 +0000 UTC FinishedAt: 2026-08-06 15:55:47 +0000 UTC Input: nil Output: nil --------- Name: series-workflowk8cct[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"44871eadd07a7f004aa00cb87399461eea08c630","config_name":"upstream-apparmor-kasan.config","enable_configs":["IPVLAN"],"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":["ipvlan_link_new","ipvlan_link_setup"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"44871eadd07a7f004aa00cb87399461eea08c630","config_name":"upstream-apparmor-kasan.config","enable_configs":["IPVLAN"],"series_id":"1dffa9d0-b8b5-442f-a482-8379bb5e3e57","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-08-06 12:06:05 +0000 UTC FinishedAt: 2026-08-06 15:55:47 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:element,Default:nil,Value:*{"base":{"arch":"amd64","commit_hash":"44871eadd07a7f004aa00cb87399461eea08c630","config_name":"upstream-apparmor-kasan.config","enable_configs":["IPVLAN"],"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":["ipvlan_link_new","ipvlan_link_setup"],"skip_cover_check":false},"patched":{"arch":"amd64","commit_hash":"44871eadd07a7f004aa00cb87399461eea08c630","config_name":"upstream-apparmor-kasan.config","enable_configs":["IPVLAN"],"series_id":"1dffa9d0-b8b5-442f-a482-8379bb5e3e57","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-workflowk8cct[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"44871eadd07a7f004aa00cb87399461eea08c630","config_name":"upstream-apparmor-kasan.config","enable_configs":["IPVLAN"],"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":["ipvlan_link_new","ipvlan_link_setup"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"44871eadd07a7f004aa00cb87399461eea08c630","config_name":"upstream-apparmor-kasan.config","enable_configs":["IPVLAN"],"series_id":"1dffa9d0-b8b5-442f-a482-8379bb5e3e57","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-08-06 12:06:05 +0000 UTC FinishedAt: 2026-08-06 12:06:15 +0000 UTC Input: nil Output: nil --------- Name: series-workflowk8cct[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"44871eadd07a7f004aa00cb87399461eea08c630","config_name":"upstream-apparmor-kasan.config","enable_configs":["IPVLAN"],"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":["ipvlan_link_new","ipvlan_link_setup"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"44871eadd07a7f004aa00cb87399461eea08c630","config_name":"upstream-apparmor-kasan.config","enable_configs":["IPVLAN"],"series_id":"1dffa9d0-b8b5-442f-a482-8379bb5e3e57","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-08-06 12:06:05 +0000 UTC FinishedAt: 2026-08-06 12:06:10 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:data,Default:nil,Value:*{"arch":"amd64","commit_hash":"44871eadd07a7f004aa00cb87399461eea08c630","config_name":"upstream-apparmor-kasan.config","enable_configs":["IPVLAN"],"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-workflowk8cct/series-workflowk8cct-convert-artifact-2276329169/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowk8cct[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"44871eadd07a7f004aa00cb87399461eea08c630","config_name":"upstream-apparmor-kasan.config","enable_configs":["IPVLAN"],"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":["ipvlan_link_new","ipvlan_link_setup"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"44871eadd07a7f004aa00cb87399461eea08c630","config_name":"upstream-apparmor-kasan.config","enable_configs":["IPVLAN"],"series_id":"1dffa9d0-b8b5-442f-a482-8379bb5e3e57","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-08-06 12:06:15 +0000 UTC FinishedAt: 2026-08-06 12:29:10 +0000 UTC Input: nil Output: nil --------- Name: series-workflowk8cct[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"44871eadd07a7f004aa00cb87399461eea08c630","config_name":"upstream-apparmor-kasan.config","enable_configs":["IPVLAN"],"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":["ipvlan_link_new","ipvlan_link_setup"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"44871eadd07a7f004aa00cb87399461eea08c630","config_name":"upstream-apparmor-kasan.config","enable_configs":["IPVLAN"],"series_id":"1dffa9d0-b8b5-442f-a482-8379bb5e3e57","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-08-06 12:06:15 +0000 UTC FinishedAt: 2026-08-06 12:29:10 +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:*b76be332-f9b4-44cb-81bf-ae9ca2df7e71,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-workflowk8cct/series-workflowk8cct-convert-artifact-2276329169/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": "dd550e8b-ddb7-4c2e-ba4b-8437457208f3", "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-workflowk8cct/series-workflowk8cct-build-action-850305151/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowk8cct[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"44871eadd07a7f004aa00cb87399461eea08c630","config_name":"upstream-apparmor-kasan.config","enable_configs":["IPVLAN"],"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":["ipvlan_link_new","ipvlan_link_setup"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"44871eadd07a7f004aa00cb87399461eea08c630","config_name":"upstream-apparmor-kasan.config","enable_configs":["IPVLAN"],"series_id":"1dffa9d0-b8b5-442f-a482-8379bb5e3e57","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-08-06 12:06:15 +0000 UTC FinishedAt: 2026-08-06 12:29:00 +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:*b76be332-f9b4-44cb-81bf-ae9ca2df7e71,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-workflowk8cct/series-workflowk8cct-convert-artifact-2276329169/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": "dd550e8b-ddb7-4c2e-ba4b-8437457208f3", "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-workflowk8cct/series-workflowk8cct-build-action-850305151/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowk8cct[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"44871eadd07a7f004aa00cb87399461eea08c630","config_name":"upstream-apparmor-kasan.config","enable_configs":["IPVLAN"],"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":["ipvlan_link_new","ipvlan_link_setup"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"44871eadd07a7f004aa00cb87399461eea08c630","config_name":"upstream-apparmor-kasan.config","enable_configs":["IPVLAN"],"series_id":"1dffa9d0-b8b5-442f-a482-8379bb5e3e57","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-08-06 12:29:10 +0000 UTC FinishedAt: 2026-08-06 12:29:10 +0000 UTC Input: nil Output: nil --------- Name: series-workflowk8cct[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"44871eadd07a7f004aa00cb87399461eea08c630","config_name":"upstream-apparmor-kasan.config","enable_configs":["IPVLAN"],"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":["ipvlan_link_new","ipvlan_link_setup"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"44871eadd07a7f004aa00cb87399461eea08c630","config_name":"upstream-apparmor-kasan.config","enable_configs":["IPVLAN"],"series_id":"1dffa9d0-b8b5-442f-a482-8379bb5e3e57","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-08-06 12:29:10 +0000 UTC FinishedAt: 2026-08-06 12:29:10 +0000 UTC Input: nil Output: nil --------- Name: series-workflowk8cct[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"44871eadd07a7f004aa00cb87399461eea08c630","config_name":"upstream-apparmor-kasan.config","enable_configs":["IPVLAN"],"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":["ipvlan_link_new","ipvlan_link_setup"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"44871eadd07a7f004aa00cb87399461eea08c630","config_name":"upstream-apparmor-kasan.config","enable_configs":["IPVLAN"],"series_id":"1dffa9d0-b8b5-442f-a482-8379bb5e3e57","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-08-06 12:29:10 +0000 UTC FinishedAt: 2026-08-06 12:29:20 +0000 UTC Input: nil Output: nil --------- Name: series-workflowk8cct[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"44871eadd07a7f004aa00cb87399461eea08c630","config_name":"upstream-apparmor-kasan.config","enable_configs":["IPVLAN"],"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":["ipvlan_link_new","ipvlan_link_setup"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"44871eadd07a7f004aa00cb87399461eea08c630","config_name":"upstream-apparmor-kasan.config","enable_configs":["IPVLAN"],"series_id":"1dffa9d0-b8b5-442f-a482-8379bb5e3e57","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-08-06 12:29:10 +0000 UTC FinishedAt: 2026-08-06 12:29:15 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:data,Default:nil,Value:*{"arch":"amd64","commit_hash":"44871eadd07a7f004aa00cb87399461eea08c630","config_name":"upstream-apparmor-kasan.config","enable_configs":["IPVLAN"],"series_id":"1dffa9d0-b8b5-442f-a482-8379bb5e3e57","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-workflowk8cct/series-workflowk8cct-convert-artifact-4171318180/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowk8cct[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"44871eadd07a7f004aa00cb87399461eea08c630","config_name":"upstream-apparmor-kasan.config","enable_configs":["IPVLAN"],"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":["ipvlan_link_new","ipvlan_link_setup"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"44871eadd07a7f004aa00cb87399461eea08c630","config_name":"upstream-apparmor-kasan.config","enable_configs":["IPVLAN"],"series_id":"1dffa9d0-b8b5-442f-a482-8379bb5e3e57","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-08-06 12:29:20 +0000 UTC FinishedAt: 2026-08-06 12:31:48 +0000 UTC Input: nil Output: nil --------- Name: series-workflowk8cct[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"44871eadd07a7f004aa00cb87399461eea08c630","config_name":"upstream-apparmor-kasan.config","enable_configs":["IPVLAN"],"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":["ipvlan_link_new","ipvlan_link_setup"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"44871eadd07a7f004aa00cb87399461eea08c630","config_name":"upstream-apparmor-kasan.config","enable_configs":["IPVLAN"],"series_id":"1dffa9d0-b8b5-442f-a482-8379bb5e3e57","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-08-06 12:29:20 +0000 UTC FinishedAt: 2026-08-06 12:31:38 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:base-build-id,Default:nil,Value:*dd550e8b-ddb7-4c2e-ba4b-8437457208f3,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-workflowk8cct/series-workflowk8cct-build-action-850305151/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-workflowk8cct[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"44871eadd07a7f004aa00cb87399461eea08c630","config_name":"upstream-apparmor-kasan.config","enable_configs":["IPVLAN"],"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":["ipvlan_link_new","ipvlan_link_setup"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"44871eadd07a7f004aa00cb87399461eea08c630","config_name":"upstream-apparmor-kasan.config","enable_configs":["IPVLAN"],"series_id":"1dffa9d0-b8b5-442f-a482-8379bb5e3e57","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-08-06 12:31:48 +0000 UTC FinishedAt: 2026-08-06 12:31:48 +0000 UTC Input: nil Output: nil --------- Name: series-workflowk8cct[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"44871eadd07a7f004aa00cb87399461eea08c630","config_name":"upstream-apparmor-kasan.config","enable_configs":["IPVLAN"],"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":["ipvlan_link_new","ipvlan_link_setup"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"44871eadd07a7f004aa00cb87399461eea08c630","config_name":"upstream-apparmor-kasan.config","enable_configs":["IPVLAN"],"series_id":"1dffa9d0-b8b5-442f-a482-8379bb5e3e57","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-08-06 12:31:48 +0000 UTC FinishedAt: 2026-08-06 12:31:48 +0000 UTC Input: nil Output: nil --------- Name: series-workflowk8cct[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"44871eadd07a7f004aa00cb87399461eea08c630","config_name":"upstream-apparmor-kasan.config","enable_configs":["IPVLAN"],"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":["ipvlan_link_new","ipvlan_link_setup"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"44871eadd07a7f004aa00cb87399461eea08c630","config_name":"upstream-apparmor-kasan.config","enable_configs":["IPVLAN"],"series_id":"1dffa9d0-b8b5-442f-a482-8379bb5e3e57","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-08-06 12:31:48 +0000 UTC FinishedAt: 2026-08-06 12:50:50 +0000 UTC Input: nil Output: nil --------- Name: series-workflowk8cct[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"44871eadd07a7f004aa00cb87399461eea08c630","config_name":"upstream-apparmor-kasan.config","enable_configs":["IPVLAN"],"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":["ipvlan_link_new","ipvlan_link_setup"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"44871eadd07a7f004aa00cb87399461eea08c630","config_name":"upstream-apparmor-kasan.config","enable_configs":["IPVLAN"],"series_id":"1dffa9d0-b8b5-442f-a482-8379bb5e3e57","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-08-06 12:31:48 +0000 UTC FinishedAt: 2026-08-06 12:50:50 +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:*b76be332-f9b4-44cb-81bf-ae9ca2df7e71,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-workflowk8cct/series-workflowk8cct-convert-artifact-4171318180/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": "e28163c6-5bbb-42b7-9736-1f545303d81b", "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-workflowk8cct/series-workflowk8cct-build-action-1323285040/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowk8cct[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"44871eadd07a7f004aa00cb87399461eea08c630","config_name":"upstream-apparmor-kasan.config","enable_configs":["IPVLAN"],"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":["ipvlan_link_new","ipvlan_link_setup"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"44871eadd07a7f004aa00cb87399461eea08c630","config_name":"upstream-apparmor-kasan.config","enable_configs":["IPVLAN"],"series_id":"1dffa9d0-b8b5-442f-a482-8379bb5e3e57","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-08-06 12:31:48 +0000 UTC FinishedAt: 2026-08-06 12:50:40 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:findings,Default:nil,Value:*true,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:test-name,Default:nil,Value:*[KASAN] Build Patched,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:smoke-build,Default:nil,Value:*false,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:session-id,Default:nil,Value:*b76be332-f9b4-44cb-81bf-ae9ca2df7e71,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-workflowk8cct/series-workflowk8cct-convert-artifact-4171318180/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": "e28163c6-5bbb-42b7-9736-1f545303d81b", "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-workflowk8cct/series-workflowk8cct-build-action-1323285040/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowk8cct[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"44871eadd07a7f004aa00cb87399461eea08c630","config_name":"upstream-apparmor-kasan.config","enable_configs":["IPVLAN"],"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":["ipvlan_link_new","ipvlan_link_setup"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"44871eadd07a7f004aa00cb87399461eea08c630","config_name":"upstream-apparmor-kasan.config","enable_configs":["IPVLAN"],"series_id":"1dffa9d0-b8b5-442f-a482-8379bb5e3e57","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-08-06 12:50:50 +0000 UTC FinishedAt: 2026-08-06 12:50:50 +0000 UTC Input: nil Output: nil --------- Name: series-workflowk8cct[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"44871eadd07a7f004aa00cb87399461eea08c630","config_name":"upstream-apparmor-kasan.config","enable_configs":["IPVLAN"],"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":["ipvlan_link_new","ipvlan_link_setup"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"44871eadd07a7f004aa00cb87399461eea08c630","config_name":"upstream-apparmor-kasan.config","enable_configs":["IPVLAN"],"series_id":"1dffa9d0-b8b5-442f-a482-8379bb5e3e57","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-08-06 12:50:50 +0000 UTC FinishedAt: 2026-08-06 12:50:50 +0000 UTC Input: nil Output: nil --------- Name: series-workflowk8cct[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"44871eadd07a7f004aa00cb87399461eea08c630","config_name":"upstream-apparmor-kasan.config","enable_configs":["IPVLAN"],"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":["ipvlan_link_new","ipvlan_link_setup"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"44871eadd07a7f004aa00cb87399461eea08c630","config_name":"upstream-apparmor-kasan.config","enable_configs":["IPVLAN"],"series_id":"1dffa9d0-b8b5-442f-a482-8379bb5e3e57","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-08-06 12:50:50 +0000 UTC FinishedAt: 2026-08-06 12:52:54 +0000 UTC Input: nil Output: nil --------- Name: series-workflowk8cct[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"44871eadd07a7f004aa00cb87399461eea08c630","config_name":"upstream-apparmor-kasan.config","enable_configs":["IPVLAN"],"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":["ipvlan_link_new","ipvlan_link_setup"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"44871eadd07a7f004aa00cb87399461eea08c630","config_name":"upstream-apparmor-kasan.config","enable_configs":["IPVLAN"],"series_id":"1dffa9d0-b8b5-442f-a482-8379bb5e3e57","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-08-06 12:50:50 +0000 UTC FinishedAt: 2026-08-06 12:52:44 +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:*e28163c6-5bbb-42b7-9736-1f545303d81b,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-workflowk8cct/series-workflowk8cct-build-action-1323285040/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-workflowk8cct[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"44871eadd07a7f004aa00cb87399461eea08c630","config_name":"upstream-apparmor-kasan.config","enable_configs":["IPVLAN"],"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":["ipvlan_link_new","ipvlan_link_setup"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"44871eadd07a7f004aa00cb87399461eea08c630","config_name":"upstream-apparmor-kasan.config","enable_configs":["IPVLAN"],"series_id":"1dffa9d0-b8b5-442f-a482-8379bb5e3e57","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-08-06 12:52:54 +0000 UTC FinishedAt: 2026-08-06 15:55:47 +0000 UTC Input: nil Output: nil --------- Name: series-workflowk8cct[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"44871eadd07a7f004aa00cb87399461eea08c630","config_name":"upstream-apparmor-kasan.config","enable_configs":["IPVLAN"],"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":["ipvlan_link_new","ipvlan_link_setup"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"44871eadd07a7f004aa00cb87399461eea08c630","config_name":"upstream-apparmor-kasan.config","enable_configs":["IPVLAN"],"series_id":"1dffa9d0-b8b5-442f-a482-8379bb5e3e57","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-08-06 12:52:54 +0000 UTC FinishedAt: 2026-08-06 15:55:47 +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":["ipvlan_link_new","ipvlan_link_setup"],"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:*dd550e8b-ddb7-4c2e-ba4b-8437457208f3,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:patched-build-id,Default:nil,Value:*e28163c6-5bbb-42b7-9736-1f545303d81b,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-workflowk8cct/series-workflowk8cct-build-action-850305151/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-workflowk8cct/series-workflowk8cct-build-action-1323285040/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},} Output: nil --------- Name: series-workflowk8cct[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"44871eadd07a7f004aa00cb87399461eea08c630","config_name":"upstream-apparmor-kasan.config","enable_configs":["IPVLAN"],"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":["ipvlan_link_new","ipvlan_link_setup"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"44871eadd07a7f004aa00cb87399461eea08c630","config_name":"upstream-apparmor-kasan.config","enable_configs":["IPVLAN"],"series_id":"1dffa9d0-b8b5-442f-a482-8379bb5e3e57","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-08-06 12:52:54 +0000 UTC FinishedAt: 2026-08-06 12:53:04 +0000 UTC Input: nil Output: nil --------- Name: series-workflowk8cct[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"44871eadd07a7f004aa00cb87399461eea08c630","config_name":"upstream-apparmor-kasan.config","enable_configs":["IPVLAN"],"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":["ipvlan_link_new","ipvlan_link_setup"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"44871eadd07a7f004aa00cb87399461eea08c630","config_name":"upstream-apparmor-kasan.config","enable_configs":["IPVLAN"],"series_id":"1dffa9d0-b8b5-442f-a482-8379bb5e3e57","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-08-06 12:52:54 +0000 UTC FinishedAt: 2026-08-06 12:53:00 +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":["ipvlan_link_new","ipvlan_link_setup"],"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-workflowk8cct/series-workflowk8cct-convert-artifact-3049402925/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowk8cct[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"44871eadd07a7f004aa00cb87399461eea08c630","config_name":"upstream-apparmor-kasan.config","enable_configs":["IPVLAN"],"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":["ipvlan_link_new","ipvlan_link_setup"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"44871eadd07a7f004aa00cb87399461eea08c630","config_name":"upstream-apparmor-kasan.config","enable_configs":["IPVLAN"],"series_id":"1dffa9d0-b8b5-442f-a482-8379bb5e3e57","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-08-06 12:52:54 +0000 UTC FinishedAt: 2026-08-06 12:52:54 +0000 UTC Input: nil Output: nil --------- Name: series-workflowk8cct[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"44871eadd07a7f004aa00cb87399461eea08c630","config_name":"upstream-apparmor-kasan.config","enable_configs":["IPVLAN"],"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":["ipvlan_link_new","ipvlan_link_setup"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"44871eadd07a7f004aa00cb87399461eea08c630","config_name":"upstream-apparmor-kasan.config","enable_configs":["IPVLAN"],"series_id":"1dffa9d0-b8b5-442f-a482-8379bb5e3e57","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-08-06 12:52:54 +0000 UTC FinishedAt: 2026-08-06 12:52:54 +0000 UTC Input: nil Output: nil --------- Name: series-workflowk8cct[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"44871eadd07a7f004aa00cb87399461eea08c630","config_name":"upstream-apparmor-kasan.config","enable_configs":["IPVLAN"],"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":["ipvlan_link_new","ipvlan_link_setup"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"44871eadd07a7f004aa00cb87399461eea08c630","config_name":"upstream-apparmor-kasan.config","enable_configs":["IPVLAN"],"series_id":"1dffa9d0-b8b5-442f-a482-8379bb5e3e57","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-08-06 12:52:54 +0000 UTC FinishedAt: 2026-08-06 12:52:54 +0000 UTC Input: nil Output: nil --------- Name: series-workflowk8cct[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"44871eadd07a7f004aa00cb87399461eea08c630","config_name":"upstream-apparmor-kasan.config","enable_configs":["IPVLAN"],"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":["ipvlan_link_new","ipvlan_link_setup"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"44871eadd07a7f004aa00cb87399461eea08c630","config_name":"upstream-apparmor-kasan.config","enable_configs":["IPVLAN"],"series_id":"1dffa9d0-b8b5-442f-a482-8379bb5e3e57","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-08-06 12:53:04 +0000 UTC FinishedAt: 2026-08-06 15:55:47 +0000 UTC Input: nil Output: nil --------- Name: series-workflowk8cct[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"44871eadd07a7f004aa00cb87399461eea08c630","config_name":"upstream-apparmor-kasan.config","enable_configs":["IPVLAN"],"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":["ipvlan_link_new","ipvlan_link_setup"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"44871eadd07a7f004aa00cb87399461eea08c630","config_name":"upstream-apparmor-kasan.config","enable_configs":["IPVLAN"],"series_id":"1dffa9d0-b8b5-442f-a482-8379bb5e3e57","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-08-06 12:53:04 +0000 UTC FinishedAt: 2026-08-06 15:55:38 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:base-build-id,Default:nil,Value:*dd550e8b-ddb7-4c2e-ba4b-8437457208f3,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:patched-build-id,Default:nil,Value:*e28163c6-5bbb-42b7-9736-1f545303d81b,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-workflowk8cct/series-workflowk8cct-build-action-850305151/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-workflowk8cct/series-workflowk8cct-build-action-1323285040/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-workflowk8cct/series-workflowk8cct-convert-artifact-3049402925/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,}