Name: series-workflow9pg7s Phase: Succeeded StartedAt: 2026-07-23 21:17:03 +0000 UTC FinishedAt: 2026-07-24 00:14:53 +0000 UTC Input: nil Output: nil --------- Name: series-workflow9pg7s[0] Phase: Succeeded StartedAt: 2026-07-23 21:17:03 +0000 UTC FinishedAt: 2026-07-23 21:46:51 +0000 UTC Input: nil Output: nil --------- Name: series-workflow9pg7s[0].run-triage Phase: Succeeded StartedAt: 2026-07-23 21:17:03 +0000 UTC FinishedAt: 2026-07-23 21:46:51 +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": "bb0d96ebe5f4d1acccf4dc36ca7f01f9a8fa1ba1", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "CAN_CTUCANFD", "CAN_CTUCANFD_PCI" ], "series_id": "" }, "patched": { "arch": "amd64", "tree_name": "net", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git", "commit_hash": "bb0d96ebe5f4d1acccf4dc36ca7f01f9a8fa1ba1", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "CAN_CTUCANFD", "CAN_CTUCANFD_PCI" ], "series_id": "3d8d6a98-19f0-4bb9-b27a-0920fcecd1cb" }, "track": "KASAN", "fuzz": { "focus": [ "net" ], "focus_symbols": [ "ctucan_set_mode", "ctucan_chip_start" ], "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+CgkJCTx0ZD4yMDI2LzA3LzIzIDIxOjQ2PC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O0NBTl9DVFVDQU5GRCYjMzQ7LAogICAgJiMzNDtDQU5fQ1RVQ0FORkRfUENJJiMzNDsKICBdLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFsKICAgICYjMzQ7Y3R1Y2FuX3NldF9tb2RlJiMzNDssCiAgICAmIzM0O2N0dWNhbl9jaGlwX3N0YXJ0JiMzNDsKICBdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIGZpeGVzIGEgYnVnIGluIGBjdHVjYW5fc2V0X21vZGVgIHdoZXJlIGBSRUdfTU9ERV9TVE1gIHNob3VsZCBiZSBzZXQgaW5zdGVhZCBvZiBgUkVHX01PREVfQUNGYCB3aGVuIGBDQU5fQ1RSTE1PREVfUFJFU1VNRV9BQ0tgIGlzIGVuYWJsZWQuIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSBpbiB0aGUgQ1RVIENBTi1GRCBkcml2ZXIsIHJlYWNoYWJsZSB2aWEgbmV0bGluay9DQU4gY29uZmlndXJhdGlvbi4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiB0cnVlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xLzE8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yMyAyMTo0NjwvdGQ+CgkJCTx0ZD5hY3Rpb248L3RkPgoJCQk8dGQ+cmVhZC1wYXRjaC1kaWZmPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7UGF0Y2hEaWZmJiMzNDs6ICYjMzQ7Y29tbWl0IGFmNzE2YjYyYjQ3NzIyMzI0NGE1Y2FlZjEyYmQ3NTM3ZjI1Y2IzNjlcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cdTAwM2VcbkRhdGU6ICAgVGh1IEp1bCAyMyAyMTo0NjoxMCAyMDI2ICYjNDM7MDAwMFxuXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XG5cbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9jYW4vY3R1Y2FuZmQvY3R1Y2FuZmRfYmFzZS5jIGIvZHJpdmVycy9uZXQvY2FuL2N0dWNhbmZkL2N0dWNhbmZkX2Jhc2UuY1xuaW5kZXggMGVhMWZmMjhkZmNlOGIuLjhlMGE2MDZmMmM4NGVhIDEwMDY0NFxuLS0tIGEvZHJpdmVycy9uZXQvY2FuL2N0dWNhbmZkL2N0dWNhbmZkX2Jhc2UuY1xuJiM0MzsmIzQzOyYjNDM7IGIvZHJpdmVycy9uZXQvY2FuL2N0dWNhbmZkL2N0dWNhbmZkX2Jhc2UuY1xuQEAgLTM0MCw4ICYjNDM7MzQwLDggQEAgc3RhdGljIHZvaWQgY3R1Y2FuX3NldF9tb2RlKHN0cnVjdCBjdHVjYW5fcHJpdiAqcHJpdiwgY29uc3Qgc3RydWN0IGNhbl9jdHJsbW9kZVxuIFx0XHRcdChtb2RlX3JlZyBcdTAwMjYgflJFR19NT0RFX0ZERSk7XG4gXG4gXHRtb2RlX3JlZyA9IChtb2RlLVx1MDAzZWZsYWdzIFx1MDAyNiBDQU5fQ1RSTE1PREVfUFJFU1VNRV9BQ0spID9cbi1cdFx0XHQobW9kZV9yZWcgfCBSRUdfTU9ERV9BQ0YpIDpcbi1cdFx0XHQobW9kZV9yZWcgXHUwMDI2IH5SRUdfTU9ERV9BQ0YpO1xuJiM0MztcdFx0XHQobW9kZV9yZWcgfCBSRUdfTU9ERV9TVE0pIDpcbiYjNDM7XHRcdFx0KG1vZGVfcmVnIFx1MDAyNiB+UkVHX01PREVfU1RNKTtcbiBcbiBcdG1vZGVfcmVnID0gKG1vZGUtXHUwMDNlZmxhZ3MgXHUwMDI2IENBTl9DVFJMTU9ERV9GRF9OT05fSVNPKSA/XG4gXHRcdFx0KG1vZGVfcmVnIHwgUkVHX01PREVfTklTT0ZEKSA6XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Mi8xPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjMgMjE6NDY8L3RkPgoJCQk8dGQ+YWdlbnQ8L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+YmVzdC1leHBlbnNpdmU8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O0NBTl9DVFVDQU5GRCYjMzQ7LAogICAgJiMzNDtDQU5fQ1RVQ0FORkRfUENJJiMzNDsKICBdLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFsKICAgICYjMzQ7Y3R1Y2FuX3NldF9tb2RlJiMzNDssCiAgICAmIzM0O2N0dWNhbl9jaGlwX3N0YXJ0JiMzNDsKICBdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIGZpeGVzIGEgYnVnIGluIGBjdHVjYW5fc2V0X21vZGVgIHdoZXJlIGBSRUdfTU9ERV9TVE1gIHNob3VsZCBiZSBzZXQgaW5zdGVhZCBvZiBgUkVHX01PREVfQUNGYCB3aGVuIGBDQU5fQ1RSTE1PREVfUFJFU1VNRV9BQ0tgIGlzIGVuYWJsZWQuIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSBpbiB0aGUgQ1RVIENBTi1GRCBkcml2ZXIsIHJlYWNoYWJsZSB2aWEgbmV0bGluay9DQU4gY29uZmlndXJhdGlvbi4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiB0cnVlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPkluc3RydWN0aW9uOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+WW91IGFyZSBhbiBleHBlcnQgTGludXgga2VybmVsIG1haW50YWluZXIuCllvdXIgam9iIGlzIHRvIHJldmlldyBhIHByb3ZpZGVkIHBhdGNoIHNlcmllcyBhbmQgZGV0ZXJtaW5lCmlmIGl0IG1ha2VzIGZ1bmN0aW9uYWwgY2hhbmdlcyB0byB0aGUga2VybmVsIHRoYXQgc2hvdWxkIGJlIGZ1enplZC4KCklNUE9SVEFOVDogVGhlIGNoYW5nZXMgaGF2ZSBBTFJFQURZIGJlZW4gYXBwbGllZCBhbmQgY29tbWl0dGVkIGFzIHRoZSBIRUFEIGNvbW1pdCBpbgp5b3VyIHdvcmtzcGFjZS4gRG8gTk9UIHJlbHkgb24geW91ciBpbnRlcm5hbCBrbm93bGVkZ2Ugb2YgdGhlIGtlcm5lbC4gWW91IG11c3QgYWN0aXZlbHkKdXNlIHlvdXIgY29kZSBhY2Nlc3MgdG9vbHMgdG8gZXhhbWluZSB0aGUgYWN0dWFsIHNvdXJjZSBjb2RlIGFuZCBjb25maXJtIGFueSBhc3N1bXB0aW9ucy4KClJldHVybiBXb3J0aEZ1enppbmc9ZmFsc2UgaWYgdGhlIHBhdGNoIG9ubHkgY29udGFpbnM6Ci0gTW9kaWZpY2F0aW9ucyB0byBEb2N1bWVudGF0aW9uLywgS2NvbmZpZyBmaWxlcywgb3IgY29kZSBjb21tZW50cy4KLSBQdXJlbHkgZGVjb3JhdGl2ZSBjaGFuZ2VzLCBzdWNoIGFzIGxvZ2dpbmcgKGUuZy4sIHByX2VyciwgcHJpbnRrKSBvciB0cmFjZXBvaW50cy4KLSBDaGFuZ2VzIHRvIG51bWVyaWMgY29uc3RhbnRzIG9yIG1hY3JvcyB0aGF0IGRvIG5vdCBmdW5jdGlvbmFsbHkgYWx0ZXIgZXhlY3V0aW9uIGZsb3cuCi0gQ29kZSBwYXRocyB0aGF0IGFyZSBpbXBvc3NpYmxlIHRvIHJlYWNoIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIEdDRSBvciBRRU1VLApldmVuIHdoZW4gdXRpbGl6aW5nIHNvZnR3YXJlLWVtdWxhdGVkIGhhcmR3YXJlIChlLmcuLCB1c2IgZ2FkZ2V0LCBtYWM4MDIxMV9od3NpbSkuCgpJZiBpdCBtb2RpZmllcyByZWFjaGFibGUgY29yZSBrZXJuZWwgbG9naWMsIGRyaXZlcnMsIG9yIGFyY2hpdGVjdHVyZXMsIHVzZSB5b3VyIGNvZGUgc2VhcmNoCnRvb2xzIHRvIHZlcmlmeSB0aGUgY29kZSBjYW4gYmUgZXhlY3V0ZWQsIHRoZW4gcmV0dXJuIFdvcnRoRnV6emluZz10cnVlLgoKV2hlbiByZXR1cm5pbmcgV29ydGhGdXp6aW5nPXRydWUsIHlvdSBNVVNUIEFMU086CjEuIEV4dHJhY3QgYW55IHNwZWNpZmljIGtlcm5lbCBmdW5jdGlvbnMgdGhhdCBzaG91bGQgYmUgaGVhdmlseSBmdXp6ZWQgaW50byBGb2N1c1N5bWJvbHMuCiAgIEF2b2lkIGxpc3RpbmcgZ2VuZXJpYyBob3QtcGF0aCBmdW5jdGlvbnMgdG8gcHJldmVudCBza2V3ZWQgdGVzdCBkaXN0cmlidXRpb25zLgoyLiBJZGVudGlmeSBhbnkgc3BlY2lmaWMgQ09ORklHXyBvcHRpb25zIHJlcXVpcmVkIHRvIHByb3Blcmx5IHRlc3QgdGhpcyBuZXcvbW9kaWZpZWQgZmVhdHVyZS4KICAgR28gYW5kIGxvb2sgaW50byB0aGUgS2NvbmZpZyBmaWxlcyBhbmQgY2hlY2sgZm9yIGlmZGVmcyBhcm91bmQgdGhlIGNvZGUsIGRvIG5vdCBtYWtlIGFzc3VtcHRpb25zLgogICBEbyBub3QgbGlzdCB0b28gZ2VuZXJpYyBjb25maWdzICh3ZSBhbHJlYWR5IGhhdmUgdGhlbSBlbmFibGVkKS4gT25seSBsaXN0IHRob3NlIHRoYXQKICAgc3BlY2lmaWNhbGx5IGNvdmVyIHRoZSBtb2RpZmllZCBjb2RlLiBMaXN0IHRoZW0gaW4gdGhlIEVuYWJsZUNvbmZpZ3Mgb3V0cHV0IGFycmF5LAogICBhbmQgRE8gTk9UIGFkZCBhICYjMzk7Q09ORklHXyYjMzk7IHByZWZpeCAoZS5nLiwgcmV0dXJuICYjMzQ7TkVUX0lQVjQmIzM0OyBpbnN0ZWFkIG9mICYjMzQ7Q09ORklHX05FVF9JUFY0JiMzNDspLgpQcmVmZXIgY2FsbGluZyBzZXZlcmFsIHRvb2xzIGF0IHRoZSBzYW1lIHRpbWUgdG8gc2F2ZSByb3VuZC10cmlwcy4KCgpVc2Ugc2V0LXJlc3VsdHMgdG9vbCB0byBwcm92aWRlIHJlc3VsdHMgb2YgdGhlIGFuYWx5c2lzLgpJdCBtdXN0IGJlIGNhbGxlZCBleGFjdGx5IG9uY2UgYmVmb3JlIHRoZSBmaW5hbCByZXBseS4KSWdub3JlIHJlc3VsdHMgb2YgdGhpcyB0b29sLgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlByb21wdDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPkZvciB5b3VyIGNvbnZlbmllbmNlLCBoZXJlIGlzIHRoZSBkaWZmIG9mIHRoZSBjaGFuZ2VzOgpjb21taXQgYWY3MTZiNjJiNDc3MjIzMjQ0YTVjYWVmMTJiZDc1MzdmMjVjYjM2OQpBdXRob3I6IHN5ei1jbHVzdGVyICZsdDt0cmlhZ2VAc3l6a2FsbGVyLmNvbSZndDsKRGF0ZTogICBUaHUgSnVsIDIzIDIxOjQ2OjEwIDIwMjYgJiM0MzswMDAwCgogICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3CgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvY2FuL2N0dWNhbmZkL2N0dWNhbmZkX2Jhc2UuYyBiL2RyaXZlcnMvbmV0L2Nhbi9jdHVjYW5mZC9jdHVjYW5mZF9iYXNlLmMKaW5kZXggMGVhMWZmMjhkZmNlOGIuLjhlMGE2MDZmMmM4NGVhIDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC9jYW4vY3R1Y2FuZmQvY3R1Y2FuZmRfYmFzZS5jCiYjNDM7JiM0MzsmIzQzOyBiL2RyaXZlcnMvbmV0L2Nhbi9jdHVjYW5mZC9jdHVjYW5mZF9iYXNlLmMKQEAgLTM0MCw4ICYjNDM7MzQwLDggQEAgc3RhdGljIHZvaWQgY3R1Y2FuX3NldF9tb2RlKHN0cnVjdCBjdHVjYW5fcHJpdiAqcHJpdiwgY29uc3Qgc3RydWN0IGNhbl9jdHJsbW9kZQogCQkJKG1vZGVfcmVnICZhbXA7IH5SRUdfTU9ERV9GREUpOwogCiAJbW9kZV9yZWcgPSAobW9kZS0mZ3Q7ZmxhZ3MgJmFtcDsgQ0FOX0NUUkxNT0RFX1BSRVNVTUVfQUNLKSA/Ci0JCQkobW9kZV9yZWcgfCBSRUdfTU9ERV9BQ0YpIDoKLQkJCShtb2RlX3JlZyAmYW1wOyB+UkVHX01PREVfQUNGKTsKJiM0MzsJCQkobW9kZV9yZWcgfCBSRUdfTU9ERV9TVE0pIDoKJiM0MzsJCQkobW9kZV9yZWcgJmFtcDsgflJFR19NT0RFX1NUTSk7CiAKIAltb2RlX3JlZyA9IChtb2RlLSZndDtmbGFncyAmYW1wOyBDQU5fQ1RSTE1PREVfRkRfTk9OX0lTTykgPwogCQkJKG1vZGVfcmVnIHwgUkVHX01PREVfTklTT0ZEKSA6CjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjMvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzIzIDIxOjQ2PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDE5OTgKCQkJCQkJCW91dHB1dDogNDYKCQkJCQkJCXRob3VnaHRzOiAxMTIKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqQW5hbHl6aW5nIHRoZSBDVFVDQU5GRCBEcml2ZXIgUGF0Y2gqKgoKT2theSwgc28gSSYjMzk7bSBsb29raW5nIGF0IGEgcGF0Y2ggaGVyZSwgYW5kIGl0IHNlZW1zIHRvIGJlIHRvdWNoaW5nIHRoZSBgY3R1Y2FuZmRfYmFzZS5jYCBmaWxlIGluIHRoZSBgZHJpdmVycy9uZXQvY2FuL2N0dWNhbmZkYCBkaXJlY3RvcnkuIFNwZWNpZmljYWxseSwgaXQgbG9va3MgbGlrZSB0aGVyZSYjMzk7cyBhIG1vZGlmaWNhdGlvbiB0byBob3cgdGhlIGRyaXZlciBoYW5kbGVzIGBDQU5fQ1RSTE1PREVfUFJFU1VNRV9BQ0tgIHdpdGhpbiB0aGUgYGN0dWNhbl9zZXRfbW9kZWAgZnVuY3Rpb24uIE15IGluaXRpYWwgdGhvdWdodCBpcyB0byBpbW1lZGlhdGVseSB6b29tIGluIG9uIHRoYXQgZnVuY3Rpb24uIFRoaXMgaXMgY3JpdGljYWwuCgpUaGUgY2hhbmdlIGZsYWdzIHNvbWV0aGluZyBpbnRlcmVzdGluZyBoZXJlLiBJbnN0ZWFkIG9mIHNldHRpbmcgYFJFR19NT0RFX0FDRmAsIHRoaXMgcGF0Y2ggaXMgbm93IHNldHRpbmcgYFJFR19NT0RFX1NUTWAuIEkgbmVlZCB0byBmaWd1cmUgb3V0IHRoZSBpbXBsaWNhdGlvbnMgb2YgdGhpcyBuZXcgc2V0dGluZy4gSSBuZWVkIHRvIHVuZGVyc3RhbmQgd2hhdCB0aGVzZSByZWdpc3RlciBzZXR0aW5ncyByZXByZXNlbnQgYW5kIGhvdyB0aGV5IHJlbGF0ZSB0byB0aGUgdW5kZXJseWluZyBDQU4gcHJvdG9jb2wgYW5kIGhhcmR3YXJlIGJlaGF2aW9yLiBNeSBtZW50YWwgY2hlY2tsaXN0IGtpY2tzIGluOiB3aGF0JiMzOTtzIHRoZSB0eXBpY2FsIGhhcmR3YXJlIGFyY2hpdGVjdHVyZSBvZiB0aGlzIGNvbnRyb2xsZXI/IFdoYXQgYXJlIHRoZSBpbXBsaWNhdGlvbnMgaW4gdGltaW5nPyBXaGF0IGNvcm5lciBjYXNlcyBjb3VsZCB0aGlzIHBhdGNoIGV4cG9zZT8gSXMgdGhlIGRvY3VtZW50YXRpb24gY29tcGxldGU/IEkgbmVlZCB0byBhbmFseXplIHRoaXMgY2hhbmdlIHRvIGVuc3VyZSBiYWNrd2FyZHMgY29tcGF0aWJpbGl0eSBhbmQgcGVyZm9ybWFuY2UgaW1wcm92ZW1lbnRzIG9yIHJlZ3Jlc3Npb25zLCBhbmQgZmluZCBpZiBhbnkgb3RoZXIgZnVuY3Rpb25hbGl0aWVzIGFyZSBpbmRpcmVjdGx5IGFmZmVjdGVkLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjQvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzIzIDIxOjQ2PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O2N0dWNhbl9zZXRfbW9kZSYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L2Nhbi9jdHVjYW5mZC9jdHVjYW5mZF9iYXNlLmMmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvY2FuL2N0dWNhbmZkL2N0dWNhbmZkX2Jhc2UuYz0yOTA9c3RhdGljIGludCBjdHVjYW5fc2V0X3NlY29uZGFyeV9zYW1wbGVfcG9pbnQoc3RydWN0IG5ldF9kZXZpY2UgKm5kZXYpXG4tLVxuZHJpdmVycy9uZXQvY2FuL2N0dWNhbmZkL2N0dWNhbmZkX2Jhc2UuYy0zMjEtLyoqXG5kcml2ZXJzL25ldC9jYW4vY3R1Y2FuZmQvY3R1Y2FuZmRfYmFzZS5jOjMyMjogKiBjdHVjYW5fc2V0X21vZGUoKSAtIFNldHMgQ1RVIENBTiBGRHMgbW9kZVxuZHJpdmVycy9uZXQvY2FuL2N0dWNhbmZkL2N0dWNhbmZkX2Jhc2UuYy0zMjMtICogQHByaXY6XHRQb2ludGVyIHRvIHByaXZhdGUgZGF0YVxuLS1cbmRyaXZlcnMvbmV0L2Nhbi9jdHVjYW5mZC9jdHVjYW5mZF9iYXNlLmMtMzI1LSAqL1xuZHJpdmVycy9uZXQvY2FuL2N0dWNhbmZkL2N0dWNhbmZkX2Jhc2UuYzozMjY6c3RhdGljIHZvaWQgY3R1Y2FuX3NldF9tb2RlKHN0cnVjdCBjdHVjYW5fcHJpdiAqcHJpdiwgY29uc3Qgc3RydWN0IGNhbl9jdHJsbW9kZSAqbW9kZSlcbmRyaXZlcnMvbmV0L2Nhbi9jdHVjYW5mZC9jdHVjYW5mZF9iYXNlLmMtMzI3LXtcbi0tXG5kcml2ZXJzL25ldC9jYW4vY3R1Y2FuZmQvY3R1Y2FuZmRfYmFzZS5jPTM3NT1zdGF0aWMgaW50IGN0dWNhbl9jaGlwX3N0YXJ0KHN0cnVjdCBuZXRfZGV2aWNlICpuZGV2KVxuLS1cbmRyaXZlcnMvbmV0L2Nhbi9jdHVjYW5mZC9jdHVjYW5mZF9iYXNlLmMtNDAzLVx0bW9kZS5tYXNrID0gMHhGRkZGRkZGRjtcbmRyaXZlcnMvbmV0L2Nhbi9jdHVjYW5mZC9jdHVjYW5mZF9iYXNlLmM6NDA0Olx0Y3R1Y2FuX3NldF9tb2RlKHByaXYsIFx1MDAyNm1vZGUpO1xuZHJpdmVycy9uZXQvY2FuL2N0dWNhbmZkL2N0dWNhbmZkX2Jhc2UuYy00MDUtXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+NS8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjMgMjE6NDY8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMjgxMwoJCQkJCQkJb3V0cHV0OiA0MAoJCQkJCQkJdGhvdWdodHM6IDM2CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Pa2F5LCBoZXJlJiMzOTtzIG15IGludGVycHJldGF0aW9uIG9mIHRob3NlIHRob3VnaHRzLCBmcmFtZWQgYXMgbXkgb3duOgoKKipBbmFseXppbmcgYGN0dWNhbl9zZXRfbW9kZWAgd2l0aGluIHRoZSBDb250ZXh0IG9mIERyaXZlciBJbml0aWFsaXphdGlvbioqCgpBbHJpZ2h0LCBzbyB0aGUgYGN0dWNhbl9zZXRfbW9kZWAgZnVuY3Rpb24gaXMgYmVpbmcgY2FsbGVkIGRpcmVjdGx5IGZyb20gYGN0dWNhbl9jaGlwX3N0YXJ0YC4gSW50ZXJlc3RpbmcuIFRoYXQgbWVhbnMgaXQmIzM5O3MgYSBrZXkgcGFydCBvZiB0aGUgQ0FOIGNvbnRyb2xsZXImIzM5O3MgaW5pdGlhbGl6YXRpb24gc2VxdWVuY2UuIEkgbmVlZCB0byB1bmRlcnN0YW5kIHdoYXQgc3BlY2lmaWMgY29uZmlndXJhdGlvbnMgYXJlICpyZXF1aXJlZCogZm9yIHRoaXMgZHJpdmVyIGJlZm9yZSBkaWdnaW5nIHRvbyBkZWVwLiBLbm93aW5nIHRoaXMgd2lsbCBjbGFyaWZ5IGhvdyBgY3R1Y2FuX3NldF9tb2RlYCBmYWN0b3JzIGluIGFuZCB3aGF0IGRlcGVuZGVuY2llcyBpdCBtaWdodCBoYXZlLiBUaGlzIGlzIHdoZXJlIEkgc3RhcnQgdG8gZm9ybSBteSBtZW50YWwgbW9kZWwgb2YgdGhlIGRyaXZlciYjMzk7cyBzZXR1cCBwaGFzZS4gV2hhdCByZWdpc3RlcnMgYXJlIHdlIGhpdHRpbmcsIGFuZCB3aGF0IHZhbHVlcyBhcmUgZXhwZWN0ZWQ/IFRpbWUgdG8gcHVsbCB1cCB0aGUgcmVsZXZhbnQgZG9jdW1lbnRhdGlvbiBhbmQgY29kZSBhbmQgYmVnaW4gdG8gY29ubmVjdCB0aGUgZG90cy4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD42LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yMyAyMTo0NjwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtjb25maWcgQ0FOX0NUVUNBTkZEJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvY2FuL2N0dWNhbmZkL0tjb25maWcmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvY2FuL2N0dWNhbmZkL0tjb25maWc6MTpjb25maWcgQ0FOX0NUVUNBTkZEXG5kcml2ZXJzL25ldC9jYW4vY3R1Y2FuZmQvS2NvbmZpZy0yLVx0dHJpc3RhdGUgXCYjMzQ7Q1RVIENBTi1GRCBJUCBjb3JlXCYjMzQ7IGlmIENPTVBJTEVfVEVTVFxuLS1cbmRyaXZlcnMvbmV0L2Nhbi9jdHVjYW5mZC9LY29uZmlnLTEzLVxuZHJpdmVycy9uZXQvY2FuL2N0dWNhbmZkL0tjb25maWc6MTQ6Y29uZmlnIENBTl9DVFVDQU5GRF9QQ0lcbmRyaXZlcnMvbmV0L2Nhbi9jdHVjYW5mZC9LY29uZmlnLTE1LVx0dHJpc3RhdGUgXCYjMzQ7Q1RVIENBTi1GRCBJUCBjb3JlIFBDSS9QQ0llIGRyaXZlclwmIzM0O1xuLS1cbmRyaXZlcnMvbmV0L2Nhbi9jdHVjYW5mZC9LY29uZmlnLTIzLVxuZHJpdmVycy9uZXQvY2FuL2N0dWNhbmZkL0tjb25maWc6MjQ6Y29uZmlnIENBTl9DVFVDQU5GRF9QTEFURk9STVxuZHJpdmVycy9uZXQvY2FuL2N0dWNhbmZkL0tjb25maWctMjUtXHR0cmlzdGF0ZSBcJiMzNDtDVFUgQ0FOLUZEIElQIGNvcmUgcGxhdGZvcm0gKEZQR0EsIFNvQykgZHJpdmVyXCYjMzQ7XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Ny8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjMgMjE6NDY8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMzMwMgoJCQkJCQkJb3V0cHV0OiAzNwoJCQkJCQkJdGhvdWdodHM6IDE1MAoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipBbmFseXppbmcgdGhlIFBvdGVudGlhbCBmb3IgRnV6emluZyB0aGlzIENBTiBEcml2ZXIqKgoKT2theSwgc28gSSYjMzk7bSBsb29raW5nIGF0IHRoZXNlIGNvbmZpZ3VyYXRpb25zOiBgQ0FOX0NUVUNBTkZEYCwgYENBTl9DVFVDQU5GRF9QQ0lgLCBhbmQgYENBTl9DVFVDQU5GRF9QTEFURk9STWAuIFRoZSBxdWVzdGlvbiBpcywgY2FuIEkgZ2V0IHRvIHRoaXMgZHJpdmVyIGFuZCwgbW9yZSBpbXBvcnRhbnRseSwgY2FuIEkgZnV6eiBpdD8gV2VsbCwgQ0FOIGRyaXZlcnMgYXJlIGdlbmVyYWxseSByZWFjaGFibGUsIHJpZ2h0PyBUaHJvdWdoIG5ldGxpbmsgKHNwZWNpZmljYWxseSBydG5ldGxpbmspIHdoZW4gY29uZmlndXJpbmcgQ0FOIGRldmljZXMuIFRoYXQmIzM5O3MgYSBnb29kIHN0YXJ0LiBBbmQgSSBrbm93IENBTiBkZXZpY2VzIHRoZW1zZWx2ZXMgY2FuIGJlIHNwdW4gdXAgdGhyb3VnaCBzb21ldGhpbmcgbGlrZSB2Y2FuLCBvciBwb3RlbnRpYWxseSB0aGlzIGRyaXZlciBjb3VsZCBiZSBicm91Z2h0IGluIHZpYSBQQ0kgb3IgcGxhdGZvcm0uIEhtbSwgdmNhbiBpcyB2aXJ0dWFsLi4uYnV0IHRoaXMgaXMgYWJvdXQgYSAqcmVhbCogaGFyZHdhcmUgZHJpdmVyLiBTbywgaXMgZnV6emluZyBhIHJlYWxpc3RpYyBwb3NzaWJpbGl0eT8KCklmIGl04oCZcyBhIFBDSSBkcml2ZXIsIHRoZW4geWVzISBTeXprYWxsZXIgaGFzIFBDSSBmdXp6aW5nIHN1cHBvcnQsIHNvIHRoYXTigJlzIGEgZGlyZWN0IHBhdGguIElmIGl04oCZcyBhIHBsYXRmb3JtIGRyaXZlciwgaXQgbWlnaHQgYmUgdHJpY2tpZXIuIEl0IG1pZ2h0IG5vdCBiZSBhcyBzdHJhaWdodGZvcndhcmQsIGJ1dCBQQ0kgaXMgZGVmaW5pdGVseSBhIHN1cHBvcnRlZCBwYXRoLCB3aGljaCBpcyBlbmNvdXJhZ2luZy4gTGV0IG1lIGNoZWNrIGlmIHRoZXJlIGlzIGEgUENJIElEIHRhYmxlIGFzc29jaWF0ZWQgd2l0aCBpdDsgdGhhdCBpcyBhIGdvb2Qgc2lnbiEKCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD44LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yMyAyMTo0NjwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtwY2lfZGV2aWNlX2lkJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvY2FuL2N0dWNhbmZkLyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtkcml2ZXJzL25ldC9jYW4vY3R1Y2FuZmQvY3R1Y2FuZmRfcGNpLmM9NzQ9c3RhdGljIGludCBjdHVjYW5fcGNpX3Byb2JlKHN0cnVjdCBwY2lfZGV2ICpwZGV2LFxuZHJpdmVycy9uZXQvY2FuL2N0dWNhbmZkL2N0dWNhbmZkX3BjaS5jOjc1Olx0XHRcdCAgICBjb25zdCBzdHJ1Y3QgcGNpX2RldmljZV9pZCAqZW50KVxuZHJpdmVycy9uZXQvY2FuL2N0dWNhbmZkL2N0dWNhbmZkX3BjaS5jLTc2LXtcbi0tXG5kcml2ZXJzL25ldC9jYW4vY3R1Y2FuZmQvY3R1Y2FuZmRfcGNpLmM9MjYyPXN0YXRpYyBTSU1QTEVfREVWX1BNX09QUyhjdHVjYW5fcGNpX3BtX29wcywgY3R1Y2FuX3N1c3BlbmQsIGN0dWNhbl9yZXN1bWUpO1xuZHJpdmVycy9uZXQvY2FuL2N0dWNhbmZkL2N0dWNhbmZkX3BjaS5jLTI2My1cbmRyaXZlcnMvbmV0L2Nhbi9jdHVjYW5mZC9jdHVjYW5mZF9wY2kuYzoyNjQ6c3RhdGljIGNvbnN0IHN0cnVjdCBwY2lfZGV2aWNlX2lkIGN0dWNhbl9wY2lfdGJsW10gPSB7XG5kcml2ZXJzL25ldC9jYW4vY3R1Y2FuZmQvY3R1Y2FuZmRfcGNpLmMtMjY1LVx0e1BDSV9ERVZJQ0VfREFUQShURURJQSwgQ1RVQ0FOX1ZFUjIxLFxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjkvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzIzIDIxOjQ2PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDQwMzEKCQkJCQkJCW91dHB1dDogMzgKCQkJCQkJCXRob3VnaHRzOiA5MAoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+T2theSwgaGVyZSYjMzk7cyBteSBhc3Nlc3NtZW50IG9mIHRoaXMgc2l0dWF0aW9uOgoKKipGdXp6aW5nIFRhcmdldCBBc3Nlc3NtZW50KioKCkFscmlnaHQsIGEgUENJIGRyaXZlciBpcyBjb25maXJtZWQgYXMgcHJlc2VudCwgdGhhdCYjMzk7cyBnb29kIG5ld3MuIFRoZSBwYXRjaCBzcGVjaWZpY2FsbHkgYWx0ZXJzIHRoZSBgY3R1Y2FuX3NldF9tb2RlYCBmdW5jdGlvbi4gVGhhdCBpbW1lZGlhdGVseSBtYWtlcyBtZSBjb25zaWRlciBmdXp6aW5nIHRoaXMuIEl0JiMzOTtzIGEgZnVuY3Rpb25hbCBjaGFuZ2Ugd2l0aGluIGEgZHJpdmVyLCBzbyB0aGVyZSYjMzk7cyBhIHN0cm9uZyBsaWtlbGlob29kIG9mIGV4cGxvaXRhYmxlIGlzc3VlcyBlbWVyZ2luZyBmcm9tIHRoZSBjaGFuZ2UuIE15IGZvY3VzIG5lZWRzIHRvIGJlIG9uIHRoZSBgY3R1Y2FuX3NldF9tb2RlYCBzeW1ib2wgaXRzZWxmLiBUbyBlbnN1cmUgSSBjYW4gYWN0dWFsbHkgZXhlY3V0ZSB0aGUgZHJpdmVyIEkmIzM5O2xsIG1ha2Ugc3VyZSB0byBoYXZlIGBDQU5fQ1RVQ0FORkRgIGFuZCBgQ0FOX0NUVUNBTkZEX1BDSWAgZW5hYmxlZCBkdXJpbmcgZnV6emluZy4gSSYjMzk7bGwgbmVlZCB0byBkb3VibGUtY2hlY2sgYGN0dWNhbl9zZXRfbW9kZWAgYmVmb3JlIEkgZ2V0IHN0YXJ0ZWQuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTAvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzIzIDIxOjQ2PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O2N0dWNhbl9zZXRfbW9kZSYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L2Nhbi9jdHVjYW5mZC8mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvY2FuL2N0dWNhbmZkL2N0dWNhbmZkX2Jhc2UuYz0yOTA9c3RhdGljIGludCBjdHVjYW5fc2V0X3NlY29uZGFyeV9zYW1wbGVfcG9pbnQoc3RydWN0IG5ldF9kZXZpY2UgKm5kZXYpXG4tLVxuZHJpdmVycy9uZXQvY2FuL2N0dWNhbmZkL2N0dWNhbmZkX2Jhc2UuYy0zMjEtLyoqXG5kcml2ZXJzL25ldC9jYW4vY3R1Y2FuZmQvY3R1Y2FuZmRfYmFzZS5jOjMyMjogKiBjdHVjYW5fc2V0X21vZGUoKSAtIFNldHMgQ1RVIENBTiBGRHMgbW9kZVxuZHJpdmVycy9uZXQvY2FuL2N0dWNhbmZkL2N0dWNhbmZkX2Jhc2UuYy0zMjMtICogQHByaXY6XHRQb2ludGVyIHRvIHByaXZhdGUgZGF0YVxuLS1cbmRyaXZlcnMvbmV0L2Nhbi9jdHVjYW5mZC9jdHVjYW5mZF9iYXNlLmMtMzI1LSAqL1xuZHJpdmVycy9uZXQvY2FuL2N0dWNhbmZkL2N0dWNhbmZkX2Jhc2UuYzozMjY6c3RhdGljIHZvaWQgY3R1Y2FuX3NldF9tb2RlKHN0cnVjdCBjdHVjYW5fcHJpdiAqcHJpdiwgY29uc3Qgc3RydWN0IGNhbl9jdHJsbW9kZSAqbW9kZSlcbmRyaXZlcnMvbmV0L2Nhbi9jdHVjYW5mZC9jdHVjYW5mZF9iYXNlLmMtMzI3LXtcbi0tXG5kcml2ZXJzL25ldC9jYW4vY3R1Y2FuZmQvY3R1Y2FuZmRfYmFzZS5jPTM3NT1zdGF0aWMgaW50IGN0dWNhbl9jaGlwX3N0YXJ0KHN0cnVjdCBuZXRfZGV2aWNlICpuZGV2KVxuLS1cbmRyaXZlcnMvbmV0L2Nhbi9jdHVjYW5mZC9jdHVjYW5mZF9iYXNlLmMtNDAzLVx0bW9kZS5tYXNrID0gMHhGRkZGRkZGRjtcbmRyaXZlcnMvbmV0L2Nhbi9jdHVjYW5mZC9jdHVjYW5mZF9iYXNlLmM6NDA0Olx0Y3R1Y2FuX3NldF9tb2RlKHByaXYsIFx1MDAyNm1vZGUpO1xuZHJpdmVycy9uZXQvY2FuL2N0dWNhbmZkL2N0dWNhbmZkX2Jhc2UuYy00MDUtXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTEvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzIzIDIxOjQ2PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDQ3NDIKCQkJCQkJCW91dHB1dDogMzgKCQkJCQkJCXRob3VnaHRzOiA1NAoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+T2theSwgbGV0JiMzOTtzIHNlZS4uLgoKKipBbmFseXppbmcgYGN0dWNhbl9zZXRfbW9kZWAgVXNhZ2UqKgoKQWxyaWdodCwgaGFuZyBvbi4gSSYjMzk7bSBqdXN0IHJlY2FsbGluZyB0aGF0IGBjdHVjYW5fc2V0X21vZGVgIGlzIGEgKnN0YXRpYyogZnVuY3Rpb24sIG1lYW5pbmcgaXQmIzM5O3MgZ290IGludGVybmFsIGxpbmthZ2UsIGFuZCBpdCYjMzk7cyBkZWZpbmVkIGluIGBjdHVjYW5mZF9iYXNlLmNgLiBUaGF0IG1ha2VzIG1lIHRoaW5rLi4uIHdoYXQmIzM5O3MgY2FsbGluZyBpdD8gSSBuZWVkIHRvIHVuZGVyc3RhbmQgaXRzIGNvbnRleHQuIExldCYjMzk7cyBzZWUuLi4gbGV0IG1lIGp1c3QgcXVpY2tseSBjaGVjayB0aGUgY3Jvc3MtcmVmZXJlbmNlcy4uLiBBaCwgaGVyZSB3ZSBnbyEgSXQgbG9va3MgbGlrZSBgY3R1Y2FuX2NoaXBfc3RhcnRgIGlzIHRoZSBvbmx5IGZ1bmN0aW9uIHRoYXQgYWN0dWFsbHkgY2FsbHMgYGN0dWNhbl9zZXRfbW9kZWAuIFRoYXQmIzM5O3MgZ29vZCB0byBrbm93OyBpdCBuYXJyb3dzIGRvd24gdGhlIHBsYWNlcyBJIG5lZWQgdG8gZm9jdXMgb24gd2hlbiB0cm91Ymxlc2hvb3Rpbmcgb3IgZXh0ZW5kaW5nIHRoaXMgQ0FOIGRyaXZlci4gSSBjYW4gY2xlYXJseSBzZWUgdGhlIGRlcGVuZGVuY3kgbm93LgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEyLzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yMyAyMTo0NjwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtjdHVjYW5fY2hpcF9zdGFydCYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L2Nhbi9jdHVjYW5mZC8mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvY2FuL2N0dWNhbmZkL2N0dWNhbmZkX2Jhc2UuYz0zMjY9c3RhdGljIHZvaWQgY3R1Y2FuX3NldF9tb2RlKHN0cnVjdCBjdHVjYW5fcHJpdiAqcHJpdiwgY29uc3Qgc3RydWN0IGNhbl9jdHJsbW9kZSAqbW9kZSlcbi0tXG5kcml2ZXJzL25ldC9jYW4vY3R1Y2FuZmQvY3R1Y2FuZmRfYmFzZS5jLTM2NC0vKipcbmRyaXZlcnMvbmV0L2Nhbi9jdHVjYW5mZC9jdHVjYW5mZF9iYXNlLmM6MzY1OiAqIGN0dWNhbl9jaGlwX3N0YXJ0KCkgLSBUaGlzIHJvdXRpbmUgc3RhcnRzIHRoZSBkcml2ZXJcbmRyaXZlcnMvbmV0L2Nhbi9jdHVjYW5mZC9jdHVjYW5mZF9iYXNlLmMtMzY2LSAqIEBuZGV2Olx0UG9pbnRlciB0byBuZXRfZGV2aWNlIHN0cnVjdHVyZVxuLS1cbmRyaXZlcnMvbmV0L2Nhbi9jdHVjYW5mZC9jdHVjYW5mZF9iYXNlLmMtMzc0LSAqL1xuZHJpdmVycy9uZXQvY2FuL2N0dWNhbmZkL2N0dWNhbmZkX2Jhc2UuYzozNzU6c3RhdGljIGludCBjdHVjYW5fY2hpcF9zdGFydChzdHJ1Y3QgbmV0X2RldmljZSAqbmRldilcbmRyaXZlcnMvbmV0L2Nhbi9jdHVjYW5mZC9jdHVjYW5mZF9iYXNlLmMtMzc2LXtcbi0tXG5kcml2ZXJzL25ldC9jYW4vY3R1Y2FuZmQvY3R1Y2FuZmRfYmFzZS5jPTQ0ND1zdGF0aWMgaW50IGN0dWNhbl9kb19zZXRfbW9kZShzdHJ1Y3QgbmV0X2RldmljZSAqbmRldiwgZW51bSBjYW5fbW9kZSBtb2RlKVxuLS1cbmRyaXZlcnMvbmV0L2Nhbi9jdHVjYW5mZC9jdHVjYW5mZF9iYXNlLmMtNDUyLVx0XHRcdHJldHVybiByZXQ7XG5kcml2ZXJzL25ldC9jYW4vY3R1Y2FuZmQvY3R1Y2FuZmRfYmFzZS5jOjQ1MzpcdFx0cmV0ID0gY3R1Y2FuX2NoaXBfc3RhcnQobmRldik7XG5kcml2ZXJzL25ldC9jYW4vY3R1Y2FuZmQvY3R1Y2FuZmRfYmFzZS5jLTQ1NC1cdFx0aWYgKHJldCBcdTAwM2MgMCkge1xuZHJpdmVycy9uZXQvY2FuL2N0dWNhbmZkL2N0dWNhbmZkX2Jhc2UuYzo0NTU6XHRcdFx0bmV0ZGV2X2VycihuZGV2LCBcJiMzNDtjdHVjYW5fY2hpcF9zdGFydCBmYWlsZWQhXFxuXCYjMzQ7KTtcbmRyaXZlcnMvbmV0L2Nhbi9jdHVjYW5mZC9jdHVjYW5mZF9iYXNlLmMtNDU2LVx0XHRcdHJldHVybiByZXQ7XG4tLVxuZHJpdmVycy9uZXQvY2FuL2N0dWNhbmZkL2N0dWNhbmZkX2Jhc2UuYz0xMjAwPXN0YXRpYyBpbnQgY3R1Y2FuX29wZW4oc3RydWN0IG5ldF9kZXZpY2UgKm5kZXYpXG4tLVxuZHJpdmVycy9uZXQvY2FuL2N0dWNhbmZkL2N0dWNhbmZkX2Jhc2UuYy0xMjI5LVxuZHJpdmVycy9uZXQvY2FuL2N0dWNhbmZkL2N0dWNhbmZkX2Jhc2UuYzoxMjMwOlx0cmV0ID0gY3R1Y2FuX2NoaXBfc3RhcnQobmRldik7XG5kcml2ZXJzL25ldC9jYW4vY3R1Y2FuZmQvY3R1Y2FuZmRfYmFzZS5jLTEyMzEtXHRpZiAocmV0IFx1MDAzYyAwKSB7XG5kcml2ZXJzL25ldC9jYW4vY3R1Y2FuZmQvY3R1Y2FuZmRfYmFzZS5jOjEyMzI6XHRcdG5ldGRldl9lcnIobmRldiwgXCYjMzQ7Y3R1Y2FuX2NoaXBfc3RhcnQgZmFpbGVkIVxcblwmIzM0Oyk7XG5kcml2ZXJzL25ldC9jYW4vY3R1Y2FuZmQvY3R1Y2FuZmRfYmFzZS5jLTEyMzMtXHRcdGdvdG8gZXJyX2NoaXBfc3RhcnQ7XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTMvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzIzIDIxOjQ2PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDU3MzQKCQkJCQkJCW91dHB1dDogMTQzCgkJCQkJCQl0aG91Z2h0czogMTY4CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKk15IEZ1enppbmcgU3RyYXRlZ3kgZm9yIHRoZSBDVFUgQ0FOLUZEIERyaXZlcioqCgpPa2F5LCBzbyBgY3R1Y2FuX2NoaXBfc3RhcnRgIGlzIGRlZmluaXRlbHkgYSBrZXkgZW50cnkgcG9pbnQuIEkgc2VlIGl0JiMzOTtzIGNhbGxlZCBmcm9tIGJvdGggYGN0dWNhbl9vcGVuYCBhbmQgYGN0dWNhbl9kb19zZXRfbW9kZWAsIHdoaWNoIG1ha2VzIGl0IGEgY3JpdGljYWwgcGFydCBvZiB0aGUgaW5pdGlhbGl6YXRpb24gYW5kIG1vZGUtc2V0dGluZyBzZXF1ZW5jZS4gVGhpcyBpcyBnb29kIGJlY2F1c2UgaXQgc3VnZ2VzdHMgZ29vZCBjb3ZlcmFnZSBwb3RlbnRpYWwuCgpMZXQmIzM5O3MgbmFpbCBkb3duIHRoZSBmdXp6aW5nIHRhcmdldHMuIEJhc2VkIG9uIHRoZSBidWcgZml4LCBJJiMzOTttIGdvaW5nIHRvIG1hcmsgdGhpcyBhcyBXb3J0aEZ1enppbmc6IHRydWUuIFRoZSBmb2N1cyBoYXMgdG8gYmUgb24gYGN0dWNhbl9zZXRfbW9kZWAgYW5kLCBuYXR1cmFsbHksIHRoYXQgYGN0dWNhbl9jaGlwX3N0YXJ0YCBmdW5jdGlvbi4KClRvIGxldmVyYWdlIHRoaXMsIEkgbmVlZCB0byBlbmFibGUgdGhlIHJpZ2h0IGNvbmZpZ3VyYXRpb24gb3B0aW9ucywgYENBTl9DVFVDQU5GRGAgYW5kIGBDQU5fQ1RVQ0FORkRfUENJYC4gVGhlc2UgYXJlIHJlbGV2YW50IGFuZCBuZWVkIHRvIGJlIHNldCB0byBiZSBhYmxlIHRvIGhpdCB0aGUgY29kZS4KClRoZSByZWFzb25pbmcgaXMgY2xlYXI6IHRoZSBwYXRjaCBhZGRyZXNzZXMgYSBmdW5jdGlvbmFsIGJ1ZyBpbiBgY3R1Y2FuX3NldF9tb2RlYC4gU3BlY2lmaWNhbGx5LCB0aGUgZHJpdmVyJiMzOTtzIGhhbmRsaW5nIG9mIGBDQU5fQ1RSTE1PREVfUFJFU1VNRV9BQ0tgIHJlcXVpcmVzIGEgY2hhbmdlIGluIHRoZSByZWdpc3RlciBzZXR0aW5nIChmcm9tIGBSRUdfTU9ERV9BQ0ZgIHRvIGBSRUdfTU9ERV9TVE1gKS4gSXQmIzM5O3MgYSBmdW5kYW1lbnRhbCBjaGFuZ2UgaW4gaG93IHRoZSBDVFUgQ0FOLUZEIGRyaXZlciBvcGVyYXRlcywgbWFraW5nIGl0IGFuIGV4Y2VsbGVudCBhcmVhIGZvciBmdXp6aW5nLiBUaGlzIHNlZW1zIGxpa2UgYSBncmVhdCBjYW5kaWRhdGUgZm9yIGRldGVjdGluZyBzb21lIHN1YnRsZSBlcnJvcnMgaW4gaG93IHRoZSBkcml2ZXIgaGFuZGxlcyBkaWZmZXJlbnQgQ0FOLUZEIG1vZGVzLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjE0LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yMyAyMTo0NjwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPnNldC1yZXN1bHRzPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IFsKICAgICYjMzQ7Q0FOX0NUVUNBTkZEJiMzNDssCiAgICAmIzM0O0NBTl9DVFVDQU5GRF9QQ0kmIzM0OwogIF0sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogWwogICAgJiMzNDtjdHVjYW5fc2V0X21vZGUmIzM0OywKICAgICYjMzQ7Y3R1Y2FuX2NoaXBfc3RhcnQmIzM0OwogIF0sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggZml4ZXMgYSBidWcgaW4gYGN0dWNhbl9zZXRfbW9kZWAgd2hlcmUgYFJFR19NT0RFX1NUTWAgc2hvdWxkIGJlIHNldCBpbnN0ZWFkIG9mIGBSRUdfTU9ERV9BQ0ZgIHdoZW4gYENBTl9DVFJMTU9ERV9QUkVTVU1FX0FDS2AgaXMgZW5hYmxlZC4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIGluIHRoZSBDVFUgQ0FOLUZEIGRyaXZlciwgcmVhY2hhYmxlIHZpYSBuZXRsaW5rL0NBTiBjb25maWd1cmF0aW9uLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IHRydWUKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogWwogICAgJiMzNDtDQU5fQ1RVQ0FORkQmIzM0OywKICAgICYjMzQ7Q0FOX0NUVUNBTkZEX1BDSSYjMzQ7CiAgXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbCiAgICAmIzM0O2N0dWNhbl9zZXRfbW9kZSYjMzQ7LAogICAgJiMzNDtjdHVjYW5fY2hpcF9zdGFydCYjMzQ7CiAgXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBmaXhlcyBhIGJ1ZyBpbiBgY3R1Y2FuX3NldF9tb2RlYCB3aGVyZSBgUkVHX01PREVfU1RNYCBzaG91bGQgYmUgc2V0IGluc3RlYWQgb2YgYFJFR19NT0RFX0FDRmAgd2hlbiBgQ0FOX0NUUkxNT0RFX1BSRVNVTUVfQUNLYCBpcyBlbmFibGVkLiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgaW4gdGhlIENUVSBDQU4tRkQgZHJpdmVyLCByZWFjaGFibGUgdmlhIG5ldGxpbmsvQ0FOIGNvbmZpZ3VyYXRpb24uJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogdHJ1ZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPC90Ym9keT4KCTwvdGFibGU+CgoJPGRpdiBpZD0ibGxtX3N1bW1hcnlfdGFibGVfZGl2IiBzdHlsZT0ibWFyZ2luOiAyMHB4IDA7Ij4KCQk8dGFibGUgY2xhc3M9Imxpc3RfdGFibGUiPgoJCQk8Y2FwdGlvbj5MTE0gQ2FsbHMgU3VtbWFyeTo8L2NhcHRpb24+CgkJCTx0aGVhZD4KCQkJCTx0cj4KCQkJCQk8dGg+VG90YWwgQ2FsbHM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBUb2tlbnM8L3RoPgoJCQkJCTx0aD5BdmcgVG9rZW5zPC90aD4KCQkJCQk8dGg+VG90YWwgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCQk8dGg+QXZnIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQk8L3RyPgoJCQk8L3RoZWFkPgoJCQk8dGJvZHkgaWQ9ImxsbV9zdW1tYXJ5X3N0YXRzX2JvZHkiPjwvdGJvZHk+CgkJPC90YWJsZT4KCTwvZGl2PgoKCTxkaXYgaWQ9InRvb2xfc3VtbWFyeV90YWJsZV9kaXYiIHN0eWxlPSJtYXJnaW46IDIwcHggMDsiPgoJCTx0YWJsZSBjbGFzcz0ibGlzdF90YWJsZSI+CgkJCTxjYXB0aW9uPlRvb2wgQ2FsbHMgU3VtbWFyeTo8L2NhcHRpb24+CgkJCTx0aGVhZD4KCQkJCTx0cj4KCQkJCQk8dGg+VG90YWwgQ2FsbHM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJCTx0aD5BdmcgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCTwvdHI+CgkJCTwvdGhlYWQ+CgkJCTx0Ym9keSBpZD0idG9vbF9zdW1tYXJ5X3N0YXRzX2JvZHkiPjwvdGJvZHk+CgkJPC90YWJsZT4KCTwvZGl2PgoKCTxkaXYgaWQ9ImR1cmF0aW9uX2NoYXJ0X2RpdiIgc3R5bGU9IndpZHRoOiAxMDAlOyBtYXJnaW46IDIwcHggMDsgYm9yZGVyOiAxcHg7Ij48L2Rpdj4KCTxkaXYgaWQ9InRva2VuX2NoYXJ0X2RpdiIgc3R5bGU9IndpZHRoOiAxMDAlOyBtYXJnaW46IDIwcHggMDsgYm9yZGVyOiAxcHg7Ij48L2Rpdj4KCgk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJodHRwczovL3d3dy5nb29nbGUuY29tL2pzYXBpIj48L3NjcmlwdD4KCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KCQlnb29nbGUubG9hZCgidmlzdWFsaXphdGlvbiIsICIxIiwge3BhY2thZ2VzOlsiY29yZWNoYXJ0Il19KTsKCQlnb29nbGUuc2V0T25Mb2FkQ2FsbGJhY2soZHJhd0NoYXJ0cyk7CgoJCWZ1bmN0aW9uIGRyYXdDaGFydHMoKSB7CgkJCWNvbnN0IHJhd0RhdGEgPSBbeyJTdGFydGVkIjoiMjAyNi0wNy0yM1QyMTo0NjoxMi4xODQyODkyNjlaIiwiU2VxIjowLCJOZXN0aW5nIjowLCJUeXBlIjoiZmxvdyIsIk5hbWUiOiJwYXRjaC10cmlhZ2UiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoyNjkzMzkzNTU4MywiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXG4gICAgXCJDQU5fQ1RVQ0FORkRcIixcbiAgICBcIkNBTl9DVFVDQU5GRF9QQ0lcIlxuICBdLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXG4gICAgXCJjdHVjYW5fc2V0X21vZGVcIixcbiAgICBcImN0dWNhbl9jaGlwX3N0YXJ0XCJcbiAgXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggZml4ZXMgYSBidWcgaW4gYGN0dWNhbl9zZXRfbW9kZWAgd2hlcmUgYFJFR19NT0RFX1NUTWAgc2hvdWxkIGJlIHNldCBpbnN0ZWFkIG9mIGBSRUdfTU9ERV9BQ0ZgIHdoZW4gYENBTl9DVFJMTU9ERV9QUkVTVU1FX0FDS2AgaXMgZW5hYmxlZC4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIGluIHRoZSBDVFUgQ0FOLUZEIGRyaXZlciwgcmVhY2hhYmxlIHZpYSBuZXRsaW5rL0NBTiBjb25maWd1cmF0aW9uLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiB0cnVlXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0yM1QyMTo0NjoxMi4xODQyOTQ3MjlaIiwiU2VxIjoxLCJOZXN0aW5nIjoxLCJUeXBlIjoiYWN0aW9uIiwiTmFtZSI6InJlYWQtcGF0Y2gtZGlmZiIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjM3MDUyODcyOSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiUGF0Y2hEaWZmXCI6IFwiY29tbWl0IGFmNzE2YjYyYjQ3NzIyMzI0NGE1Y2FlZjEyYmQ3NTM3ZjI1Y2IzNjlcXG5BdXRob3I6IHN5ei1jbHVzdGVyIFxcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVxcdTAwM2VcXG5EYXRlOiAgIFRodSBKdWwgMjMgMjE6NDY6MTAgMjAyNiArMDAwMFxcblxcbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcXG5cXG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvY2FuL2N0dWNhbmZkL2N0dWNhbmZkX2Jhc2UuYyBiL2RyaXZlcnMvbmV0L2Nhbi9jdHVjYW5mZC9jdHVjYW5mZF9iYXNlLmNcXG5pbmRleCAwZWExZmYyOGRmY2U4Yi4uOGUwYTYwNmYyYzg0ZWEgMTAwNjQ0XFxuLS0tIGEvZHJpdmVycy9uZXQvY2FuL2N0dWNhbmZkL2N0dWNhbmZkX2Jhc2UuY1xcbisrKyBiL2RyaXZlcnMvbmV0L2Nhbi9jdHVjYW5mZC9jdHVjYW5mZF9iYXNlLmNcXG5AQCAtMzQwLDggKzM0MCw4IEBAIHN0YXRpYyB2b2lkIGN0dWNhbl9zZXRfbW9kZShzdHJ1Y3QgY3R1Y2FuX3ByaXYgKnByaXYsIGNvbnN0IHN0cnVjdCBjYW5fY3RybG1vZGVcXG4gXFx0XFx0XFx0KG1vZGVfcmVnIFxcdTAwMjYgflJFR19NT0RFX0ZERSk7XFxuIFxcbiBcXHRtb2RlX3JlZyA9IChtb2RlLVxcdTAwM2VmbGFncyBcXHUwMDI2IENBTl9DVFJMTU9ERV9QUkVTVU1FX0FDSykgP1xcbi1cXHRcXHRcXHQobW9kZV9yZWcgfCBSRUdfTU9ERV9BQ0YpIDpcXG4tXFx0XFx0XFx0KG1vZGVfcmVnIFxcdTAwMjYgflJFR19NT0RFX0FDRik7XFxuK1xcdFxcdFxcdChtb2RlX3JlZyB8IFJFR19NT0RFX1NUTSkgOlxcbitcXHRcXHRcXHQobW9kZV9yZWcgXFx1MDAyNiB+UkVHX01PREVfU1RNKTtcXG4gXFxuIFxcdG1vZGVfcmVnID0gKG1vZGUtXFx1MDAzZWZsYWdzIFxcdTAwMjYgQ0FOX0NUUkxNT0RFX0ZEX05PTl9JU08pID9cXG4gXFx0XFx0XFx0KG1vZGVfcmVnIHwgUkVHX01PREVfTklTT0ZEKSA6XFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTIzVDIxOjQ2OjEyLjU1NTM3OTcxOFoiLCJTZXEiOjIsIk5lc3RpbmciOjEsIlR5cGUiOiJhZ2VudCIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImJlc3QtZXhwZW5zaXZlIiwiRHVyYXRpb24iOjI2NTYyODIzMjg0LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IFtcbiAgICBcIkNBTl9DVFVDQU5GRFwiLFxuICAgIFwiQ0FOX0NUVUNBTkZEX1BDSVwiXG4gIF0sXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtcbiAgICBcImN0dWNhbl9zZXRfbW9kZVwiLFxuICAgIFwiY3R1Y2FuX2NoaXBfc3RhcnRcIlxuICBdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBmaXhlcyBhIGJ1ZyBpbiBgY3R1Y2FuX3NldF9tb2RlYCB3aGVyZSBgUkVHX01PREVfU1RNYCBzaG91bGQgYmUgc2V0IGluc3RlYWQgb2YgYFJFR19NT0RFX0FDRmAgd2hlbiBgQ0FOX0NUUkxNT0RFX1BSRVNVTUVfQUNLYCBpcyBlbmFibGVkLiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgaW4gdGhlIENUVSBDQU4tRkQgZHJpdmVyLCByZWFjaGFibGUgdmlhIG5ldGxpbmsvQ0FOIGNvbmZpZ3VyYXRpb24uXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IHRydWVcbn0iLCJJbnN0cnVjdGlvbiI6IllvdSBhcmUgYW4gZXhwZXJ0IExpbnV4IGtlcm5lbCBtYWludGFpbmVyLlxuWW91ciBqb2IgaXMgdG8gcmV2aWV3IGEgcHJvdmlkZWQgcGF0Y2ggc2VyaWVzIGFuZCBkZXRlcm1pbmVcbmlmIGl0IG1ha2VzIGZ1bmN0aW9uYWwgY2hhbmdlcyB0byB0aGUga2VybmVsIHRoYXQgc2hvdWxkIGJlIGZ1enplZC5cblxuSU1QT1JUQU5UOiBUaGUgY2hhbmdlcyBoYXZlIEFMUkVBRFkgYmVlbiBhcHBsaWVkIGFuZCBjb21taXR0ZWQgYXMgdGhlIEhFQUQgY29tbWl0IGluXG55b3VyIHdvcmtzcGFjZS4gRG8gTk9UIHJlbHkgb24geW91ciBpbnRlcm5hbCBrbm93bGVkZ2Ugb2YgdGhlIGtlcm5lbC4gWW91IG11c3QgYWN0aXZlbHlcbnVzZSB5b3VyIGNvZGUgYWNjZXNzIHRvb2xzIHRvIGV4YW1pbmUgdGhlIGFjdHVhbCBzb3VyY2UgY29kZSBhbmQgY29uZmlybSBhbnkgYXNzdW1wdGlvbnMuXG5cblJldHVybiBXb3J0aEZ1enppbmc9ZmFsc2UgaWYgdGhlIHBhdGNoIG9ubHkgY29udGFpbnM6XG4tIE1vZGlmaWNhdGlvbnMgdG8gRG9jdW1lbnRhdGlvbi8sIEtjb25maWcgZmlsZXMsIG9yIGNvZGUgY29tbWVudHMuXG4tIFB1cmVseSBkZWNvcmF0aXZlIGNoYW5nZXMsIHN1Y2ggYXMgbG9nZ2luZyAoZS5nLiwgcHJfZXJyLCBwcmludGspIG9yIHRyYWNlcG9pbnRzLlxuLSBDaGFuZ2VzIHRvIG51bWVyaWMgY29uc3RhbnRzIG9yIG1hY3JvcyB0aGF0IGRvIG5vdCBmdW5jdGlvbmFsbHkgYWx0ZXIgZXhlY3V0aW9uIGZsb3cuXG4tIENvZGUgcGF0aHMgdGhhdCBhcmUgaW1wb3NzaWJsZSB0byByZWFjaCBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBHQ0Ugb3IgUUVNVSxcbmV2ZW4gd2hlbiB1dGlsaXppbmcgc29mdHdhcmUtZW11bGF0ZWQgaGFyZHdhcmUgKGUuZy4sIHVzYiBnYWRnZXQsIG1hYzgwMjExX2h3c2ltKS5cblxuSWYgaXQgbW9kaWZpZXMgcmVhY2hhYmxlIGNvcmUga2VybmVsIGxvZ2ljLCBkcml2ZXJzLCBvciBhcmNoaXRlY3R1cmVzLCB1c2UgeW91ciBjb2RlIHNlYXJjaFxudG9vbHMgdG8gdmVyaWZ5IHRoZSBjb2RlIGNhbiBiZSBleGVjdXRlZCwgdGhlbiByZXR1cm4gV29ydGhGdXp6aW5nPXRydWUuXG5cbldoZW4gcmV0dXJuaW5nIFdvcnRoRnV6emluZz10cnVlLCB5b3UgTVVTVCBBTFNPOlxuMS4gRXh0cmFjdCBhbnkgc3BlY2lmaWMga2VybmVsIGZ1bmN0aW9ucyB0aGF0IHNob3VsZCBiZSBoZWF2aWx5IGZ1enplZCBpbnRvIEZvY3VzU3ltYm9scy5cbiAgIEF2b2lkIGxpc3RpbmcgZ2VuZXJpYyBob3QtcGF0aCBmdW5jdGlvbnMgdG8gcHJldmVudCBza2V3ZWQgdGVzdCBkaXN0cmlidXRpb25zLlxuMi4gSWRlbnRpZnkgYW55IHNwZWNpZmljIENPTkZJR18gb3B0aW9ucyByZXF1aXJlZCB0byBwcm9wZXJseSB0ZXN0IHRoaXMgbmV3L21vZGlmaWVkIGZlYXR1cmUuXG4gICBHbyBhbmQgbG9vayBpbnRvIHRoZSBLY29uZmlnIGZpbGVzIGFuZCBjaGVjayBmb3IgaWZkZWZzIGFyb3VuZCB0aGUgY29kZSwgZG8gbm90IG1ha2UgYXNzdW1wdGlvbnMuXG4gICBEbyBub3QgbGlzdCB0b28gZ2VuZXJpYyBjb25maWdzICh3ZSBhbHJlYWR5IGhhdmUgdGhlbSBlbmFibGVkKS4gT25seSBsaXN0IHRob3NlIHRoYXRcbiAgIHNwZWNpZmljYWxseSBjb3ZlciB0aGUgbW9kaWZpZWQgY29kZS4gTGlzdCB0aGVtIGluIHRoZSBFbmFibGVDb25maWdzIG91dHB1dCBhcnJheSxcbiAgIGFuZCBETyBOT1QgYWRkIGEgJ0NPTkZJR18nIHByZWZpeCAoZS5nLiwgcmV0dXJuIFwiTkVUX0lQVjRcIiBpbnN0ZWFkIG9mIFwiQ09ORklHX05FVF9JUFY0XCIpLlxuUHJlZmVyIGNhbGxpbmcgc2V2ZXJhbCB0b29scyBhdCB0aGUgc2FtZSB0aW1lIHRvIHNhdmUgcm91bmQtdHJpcHMuXG5cblxuVXNlIHNldC1yZXN1bHRzIHRvb2wgdG8gcHJvdmlkZSByZXN1bHRzIG9mIHRoZSBhbmFseXNpcy5cbkl0IG11c3QgYmUgY2FsbGVkIGV4YWN0bHkgb25jZSBiZWZvcmUgdGhlIGZpbmFsIHJlcGx5LlxuSWdub3JlIHJlc3VsdHMgb2YgdGhpcyB0b29sLlxuIiwiUHJvbXB0IjoiRm9yIHlvdXIgY29udmVuaWVuY2UsIGhlcmUgaXMgdGhlIGRpZmYgb2YgdGhlIGNoYW5nZXM6XG5jb21taXQgYWY3MTZiNjJiNDc3MjIzMjQ0YTVjYWVmMTJiZDc1MzdmMjVjYjM2OVxuQXV0aG9yOiBzeXotY2x1c3RlciBcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVx1MDAzZVxuRGF0ZTogICBUaHUgSnVsIDIzIDIxOjQ2OjEwIDIwMjYgKzAwMDBcblxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xuXG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvY2FuL2N0dWNhbmZkL2N0dWNhbmZkX2Jhc2UuYyBiL2RyaXZlcnMvbmV0L2Nhbi9jdHVjYW5mZC9jdHVjYW5mZF9iYXNlLmNcbmluZGV4IDBlYTFmZjI4ZGZjZThiLi44ZTBhNjA2ZjJjODRlYSAxMDA2NDRcbi0tLSBhL2RyaXZlcnMvbmV0L2Nhbi9jdHVjYW5mZC9jdHVjYW5mZF9iYXNlLmNcbisrKyBiL2RyaXZlcnMvbmV0L2Nhbi9jdHVjYW5mZC9jdHVjYW5mZF9iYXNlLmNcbkBAIC0zNDAsOCArMzQwLDggQEAgc3RhdGljIHZvaWQgY3R1Y2FuX3NldF9tb2RlKHN0cnVjdCBjdHVjYW5fcHJpdiAqcHJpdiwgY29uc3Qgc3RydWN0IGNhbl9jdHJsbW9kZVxuIFx0XHRcdChtb2RlX3JlZyBcdTAwMjYgflJFR19NT0RFX0ZERSk7XG4gXG4gXHRtb2RlX3JlZyA9IChtb2RlLVx1MDAzZWZsYWdzIFx1MDAyNiBDQU5fQ1RSTE1PREVfUFJFU1VNRV9BQ0spID9cbi1cdFx0XHQobW9kZV9yZWcgfCBSRUdfTU9ERV9BQ0YpIDpcbi1cdFx0XHQobW9kZV9yZWcgXHUwMDI2IH5SRUdfTU9ERV9BQ0YpO1xuK1x0XHRcdChtb2RlX3JlZyB8IFJFR19NT0RFX1NUTSkgOlxuK1x0XHRcdChtb2RlX3JlZyBcdTAwMjYgflJFR19NT0RFX1NUTSk7XG4gXG4gXHRtb2RlX3JlZyA9IChtb2RlLVx1MDAzZWZsYWdzIFx1MDAyNiBDQU5fQ1RSTE1PREVfRkRfTk9OX0lTTykgP1xuIFx0XHRcdChtb2RlX3JlZyB8IFJFR19NT0RFX05JU09GRCkgOlxuIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMjNUMjE6NDY6MTIuNTU1MzgxMjQ4WiIsIlNlcSI6MywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6Mzk4NDU1NTk3MCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipBbmFseXppbmcgdGhlIENUVUNBTkZEIERyaXZlciBQYXRjaCoqXG5cbk9rYXksIHNvIEknbSBsb29raW5nIGF0IGEgcGF0Y2ggaGVyZSwgYW5kIGl0IHNlZW1zIHRvIGJlIHRvdWNoaW5nIHRoZSBgY3R1Y2FuZmRfYmFzZS5jYCBmaWxlIGluIHRoZSBgZHJpdmVycy9uZXQvY2FuL2N0dWNhbmZkYCBkaXJlY3RvcnkuIFNwZWNpZmljYWxseSwgaXQgbG9va3MgbGlrZSB0aGVyZSdzIGEgbW9kaWZpY2F0aW9uIHRvIGhvdyB0aGUgZHJpdmVyIGhhbmRsZXMgYENBTl9DVFJMTU9ERV9QUkVTVU1FX0FDS2Agd2l0aGluIHRoZSBgY3R1Y2FuX3NldF9tb2RlYCBmdW5jdGlvbi4gTXkgaW5pdGlhbCB0aG91Z2h0IGlzIHRvIGltbWVkaWF0ZWx5IHpvb20gaW4gb24gdGhhdCBmdW5jdGlvbi4gVGhpcyBpcyBjcml0aWNhbC5cblxuVGhlIGNoYW5nZSBmbGFncyBzb21ldGhpbmcgaW50ZXJlc3RpbmcgaGVyZS4gSW5zdGVhZCBvZiBzZXR0aW5nIGBSRUdfTU9ERV9BQ0ZgLCB0aGlzIHBhdGNoIGlzIG5vdyBzZXR0aW5nIGBSRUdfTU9ERV9TVE1gLiBJIG5lZWQgdG8gZmlndXJlIG91dCB0aGUgaW1wbGljYXRpb25zIG9mIHRoaXMgbmV3IHNldHRpbmcuIEkgbmVlZCB0byB1bmRlcnN0YW5kIHdoYXQgdGhlc2UgcmVnaXN0ZXIgc2V0dGluZ3MgcmVwcmVzZW50IGFuZCBob3cgdGhleSByZWxhdGUgdG8gdGhlIHVuZGVybHlpbmcgQ0FOIHByb3RvY29sIGFuZCBoYXJkd2FyZSBiZWhhdmlvci4gTXkgbWVudGFsIGNoZWNrbGlzdCBraWNrcyBpbjogd2hhdCdzIHRoZSB0eXBpY2FsIGhhcmR3YXJlIGFyY2hpdGVjdHVyZSBvZiB0aGlzIGNvbnRyb2xsZXI/IFdoYXQgYXJlIHRoZSBpbXBsaWNhdGlvbnMgaW4gdGltaW5nPyBXaGF0IGNvcm5lciBjYXNlcyBjb3VsZCB0aGlzIHBhdGNoIGV4cG9zZT8gSXMgdGhlIGRvY3VtZW50YXRpb24gY29tcGxldGU/IEkgbmVlZCB0byBhbmFseXplIHRoaXMgY2hhbmdlIHRvIGVuc3VyZSBiYWNrd2FyZHMgY29tcGF0aWJpbGl0eSBhbmQgcGVyZm9ybWFuY2UgaW1wcm92ZW1lbnRzIG9yIHJlZ3Jlc3Npb25zLCBhbmQgZmluZCBpZiBhbnkgb3RoZXIgZnVuY3Rpb25hbGl0aWVzIGFyZSBpbmRpcmVjdGx5IGFmZmVjdGVkLlxuXG5cbiIsIklucHV0VG9rZW5zIjoxOTk4LCJPdXRwdXRUb2tlbnMiOjQ2LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MTEyLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMjNUMjE6NDY6MTYuNTM5OTM5MDg5WiIsIlNlcSI6NCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjU1NjU1Njg4LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcImN0dWNhbl9zZXRfbW9kZVwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJkcml2ZXJzL25ldC9jYW4vY3R1Y2FuZmQvY3R1Y2FuZmRfYmFzZS5jXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImRyaXZlcnMvbmV0L2Nhbi9jdHVjYW5mZC9jdHVjYW5mZF9iYXNlLmM9MjkwPXN0YXRpYyBpbnQgY3R1Y2FuX3NldF9zZWNvbmRhcnlfc2FtcGxlX3BvaW50KHN0cnVjdCBuZXRfZGV2aWNlICpuZGV2KVxcbi0tXFxuZHJpdmVycy9uZXQvY2FuL2N0dWNhbmZkL2N0dWNhbmZkX2Jhc2UuYy0zMjEtLyoqXFxuZHJpdmVycy9uZXQvY2FuL2N0dWNhbmZkL2N0dWNhbmZkX2Jhc2UuYzozMjI6ICogY3R1Y2FuX3NldF9tb2RlKCkgLSBTZXRzIENUVSBDQU4gRkRzIG1vZGVcXG5kcml2ZXJzL25ldC9jYW4vY3R1Y2FuZmQvY3R1Y2FuZmRfYmFzZS5jLTMyMy0gKiBAcHJpdjpcXHRQb2ludGVyIHRvIHByaXZhdGUgZGF0YVxcbi0tXFxuZHJpdmVycy9uZXQvY2FuL2N0dWNhbmZkL2N0dWNhbmZkX2Jhc2UuYy0zMjUtICovXFxuZHJpdmVycy9uZXQvY2FuL2N0dWNhbmZkL2N0dWNhbmZkX2Jhc2UuYzozMjY6c3RhdGljIHZvaWQgY3R1Y2FuX3NldF9tb2RlKHN0cnVjdCBjdHVjYW5fcHJpdiAqcHJpdiwgY29uc3Qgc3RydWN0IGNhbl9jdHJsbW9kZSAqbW9kZSlcXG5kcml2ZXJzL25ldC9jYW4vY3R1Y2FuZmQvY3R1Y2FuZmRfYmFzZS5jLTMyNy17XFxuLS1cXG5kcml2ZXJzL25ldC9jYW4vY3R1Y2FuZmQvY3R1Y2FuZmRfYmFzZS5jPTM3NT1zdGF0aWMgaW50IGN0dWNhbl9jaGlwX3N0YXJ0KHN0cnVjdCBuZXRfZGV2aWNlICpuZGV2KVxcbi0tXFxuZHJpdmVycy9uZXQvY2FuL2N0dWNhbmZkL2N0dWNhbmZkX2Jhc2UuYy00MDMtXFx0bW9kZS5tYXNrID0gMHhGRkZGRkZGRjtcXG5kcml2ZXJzL25ldC9jYW4vY3R1Y2FuZmQvY3R1Y2FuZmRfYmFzZS5jOjQwNDpcXHRjdHVjYW5fc2V0X21vZGUocHJpdiwgXFx1MDAyNm1vZGUpO1xcbmRyaXZlcnMvbmV0L2Nhbi9jdHVjYW5mZC9jdHVjYW5mZF9iYXNlLmMtNDA1LVxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0yM1QyMTo0NjoxNi41OTU1OTk1MTdaIiwiU2VxIjo1LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjozMzYwNjI0NDA5LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJPa2F5LCBoZXJlJ3MgbXkgaW50ZXJwcmV0YXRpb24gb2YgdGhvc2UgdGhvdWdodHMsIGZyYW1lZCBhcyBteSBvd246XG5cbioqQW5hbHl6aW5nIGBjdHVjYW5fc2V0X21vZGVgIHdpdGhpbiB0aGUgQ29udGV4dCBvZiBEcml2ZXIgSW5pdGlhbGl6YXRpb24qKlxuXG5BbHJpZ2h0LCBzbyB0aGUgYGN0dWNhbl9zZXRfbW9kZWAgZnVuY3Rpb24gaXMgYmVpbmcgY2FsbGVkIGRpcmVjdGx5IGZyb20gYGN0dWNhbl9jaGlwX3N0YXJ0YC4gSW50ZXJlc3RpbmcuIFRoYXQgbWVhbnMgaXQncyBhIGtleSBwYXJ0IG9mIHRoZSBDQU4gY29udHJvbGxlcidzIGluaXRpYWxpemF0aW9uIHNlcXVlbmNlLiBJIG5lZWQgdG8gdW5kZXJzdGFuZCB3aGF0IHNwZWNpZmljIGNvbmZpZ3VyYXRpb25zIGFyZSAqcmVxdWlyZWQqIGZvciB0aGlzIGRyaXZlciBiZWZvcmUgZGlnZ2luZyB0b28gZGVlcC4gS25vd2luZyB0aGlzIHdpbGwgY2xhcmlmeSBob3cgYGN0dWNhbl9zZXRfbW9kZWAgZmFjdG9ycyBpbiBhbmQgd2hhdCBkZXBlbmRlbmNpZXMgaXQgbWlnaHQgaGF2ZS4gVGhpcyBpcyB3aGVyZSBJIHN0YXJ0IHRvIGZvcm0gbXkgbWVudGFsIG1vZGVsIG9mIHRoZSBkcml2ZXIncyBzZXR1cCBwaGFzZS4gV2hhdCByZWdpc3RlcnMgYXJlIHdlIGhpdHRpbmcsIGFuZCB3aGF0IHZhbHVlcyBhcmUgZXhwZWN0ZWQ/IFRpbWUgdG8gcHVsbCB1cCB0aGUgcmVsZXZhbnQgZG9jdW1lbnRhdGlvbiBhbmQgY29kZSBhbmQgYmVnaW4gdG8gY29ubmVjdCB0aGUgZG90cy5cblxuXG4iLCJJbnB1dFRva2VucyI6MjgxMywiT3V0cHV0VG9rZW5zIjo0MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjM2LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTIzVDIxOjQ2OjE5Ljk1NjIyNTY2NloiLCJTZXEiOjYsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo2MDUxNzMzOCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJjb25maWcgQ0FOX0NUVUNBTkZEXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvbmV0L2Nhbi9jdHVjYW5mZC9LY29uZmlnXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImRyaXZlcnMvbmV0L2Nhbi9jdHVjYW5mZC9LY29uZmlnOjE6Y29uZmlnIENBTl9DVFVDQU5GRFxcbmRyaXZlcnMvbmV0L2Nhbi9jdHVjYW5mZC9LY29uZmlnLTItXFx0dHJpc3RhdGUgXFxcIkNUVSBDQU4tRkQgSVAgY29yZVxcXCIgaWYgQ09NUElMRV9URVNUXFxuLS1cXG5kcml2ZXJzL25ldC9jYW4vY3R1Y2FuZmQvS2NvbmZpZy0xMy1cXG5kcml2ZXJzL25ldC9jYW4vY3R1Y2FuZmQvS2NvbmZpZzoxNDpjb25maWcgQ0FOX0NUVUNBTkZEX1BDSVxcbmRyaXZlcnMvbmV0L2Nhbi9jdHVjYW5mZC9LY29uZmlnLTE1LVxcdHRyaXN0YXRlIFxcXCJDVFUgQ0FOLUZEIElQIGNvcmUgUENJL1BDSWUgZHJpdmVyXFxcIlxcbi0tXFxuZHJpdmVycy9uZXQvY2FuL2N0dWNhbmZkL0tjb25maWctMjMtXFxuZHJpdmVycy9uZXQvY2FuL2N0dWNhbmZkL0tjb25maWc6MjQ6Y29uZmlnIENBTl9DVFVDQU5GRF9QTEFURk9STVxcbmRyaXZlcnMvbmV0L2Nhbi9jdHVjYW5mZC9LY29uZmlnLTI1LVxcdHRyaXN0YXRlIFxcXCJDVFUgQ0FOLUZEIElQIGNvcmUgcGxhdGZvcm0gKEZQR0EsIFNvQykgZHJpdmVyXFxcIlxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0yM1QyMTo0NjoyMC4wMTY3NTE5MTRaIiwiU2VxIjo3LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo0NTAyMzI4ODI1LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkFuYWx5emluZyB0aGUgUG90ZW50aWFsIGZvciBGdXp6aW5nIHRoaXMgQ0FOIERyaXZlcioqXG5cbk9rYXksIHNvIEknbSBsb29raW5nIGF0IHRoZXNlIGNvbmZpZ3VyYXRpb25zOiBgQ0FOX0NUVUNBTkZEYCwgYENBTl9DVFVDQU5GRF9QQ0lgLCBhbmQgYENBTl9DVFVDQU5GRF9QTEFURk9STWAuIFRoZSBxdWVzdGlvbiBpcywgY2FuIEkgZ2V0IHRvIHRoaXMgZHJpdmVyIGFuZCwgbW9yZSBpbXBvcnRhbnRseSwgY2FuIEkgZnV6eiBpdD8gV2VsbCwgQ0FOIGRyaXZlcnMgYXJlIGdlbmVyYWxseSByZWFjaGFibGUsIHJpZ2h0PyBUaHJvdWdoIG5ldGxpbmsgKHNwZWNpZmljYWxseSBydG5ldGxpbmspIHdoZW4gY29uZmlndXJpbmcgQ0FOIGRldmljZXMuIFRoYXQncyBhIGdvb2Qgc3RhcnQuIEFuZCBJIGtub3cgQ0FOIGRldmljZXMgdGhlbXNlbHZlcyBjYW4gYmUgc3B1biB1cCB0aHJvdWdoIHNvbWV0aGluZyBsaWtlIHZjYW4sIG9yIHBvdGVudGlhbGx5IHRoaXMgZHJpdmVyIGNvdWxkIGJlIGJyb3VnaHQgaW4gdmlhIFBDSSBvciBwbGF0Zm9ybS4gSG1tLCB2Y2FuIGlzIHZpcnR1YWwuLi5idXQgdGhpcyBpcyBhYm91dCBhICpyZWFsKiBoYXJkd2FyZSBkcml2ZXIuIFNvLCBpcyBmdXp6aW5nIGEgcmVhbGlzdGljIHBvc3NpYmlsaXR5P1xuXG5JZiBpdOKAmXMgYSBQQ0kgZHJpdmVyLCB0aGVuIHllcyEgU3l6a2FsbGVyIGhhcyBQQ0kgZnV6emluZyBzdXBwb3J0LCBzbyB0aGF04oCZcyBhIGRpcmVjdCBwYXRoLiBJZiBpdOKAmXMgYSBwbGF0Zm9ybSBkcml2ZXIsIGl0IG1pZ2h0IGJlIHRyaWNraWVyLiBJdCBtaWdodCBub3QgYmUgYXMgc3RyYWlnaHRmb3J3YXJkLCBidXQgUENJIGlzIGRlZmluaXRlbHkgYSBzdXBwb3J0ZWQgcGF0aCwgd2hpY2ggaXMgZW5jb3VyYWdpbmcuIExldCBtZSBjaGVjayBpZiB0aGVyZSBpcyBhIFBDSSBJRCB0YWJsZSBhc3NvY2lhdGVkIHdpdGggaXQ7IHRoYXQgaXMgYSBnb29kIHNpZ24hXG5cblxuIiwiSW5wdXRUb2tlbnMiOjMzMDIsIk91dHB1dFRva2VucyI6MzcsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoxNTAsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDctMjNUMjE6NDY6MjQuNTE5MDgyNTA5WiIsIlNlcSI6OCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjM3NDUwMDUxOSwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJwY2lfZGV2aWNlX2lkXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvbmV0L2Nhbi9jdHVjYW5mZC9cIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiZHJpdmVycy9uZXQvY2FuL2N0dWNhbmZkL2N0dWNhbmZkX3BjaS5jPTc0PXN0YXRpYyBpbnQgY3R1Y2FuX3BjaV9wcm9iZShzdHJ1Y3QgcGNpX2RldiAqcGRldixcXG5kcml2ZXJzL25ldC9jYW4vY3R1Y2FuZmQvY3R1Y2FuZmRfcGNpLmM6NzU6XFx0XFx0XFx0ICAgIGNvbnN0IHN0cnVjdCBwY2lfZGV2aWNlX2lkICplbnQpXFxuZHJpdmVycy9uZXQvY2FuL2N0dWNhbmZkL2N0dWNhbmZkX3BjaS5jLTc2LXtcXG4tLVxcbmRyaXZlcnMvbmV0L2Nhbi9jdHVjYW5mZC9jdHVjYW5mZF9wY2kuYz0yNjI9c3RhdGljIFNJTVBMRV9ERVZfUE1fT1BTKGN0dWNhbl9wY2lfcG1fb3BzLCBjdHVjYW5fc3VzcGVuZCwgY3R1Y2FuX3Jlc3VtZSk7XFxuZHJpdmVycy9uZXQvY2FuL2N0dWNhbmZkL2N0dWNhbmZkX3BjaS5jLTI2My1cXG5kcml2ZXJzL25ldC9jYW4vY3R1Y2FuZmQvY3R1Y2FuZmRfcGNpLmM6MjY0OnN0YXRpYyBjb25zdCBzdHJ1Y3QgcGNpX2RldmljZV9pZCBjdHVjYW5fcGNpX3RibFtdID0ge1xcbmRyaXZlcnMvbmV0L2Nhbi9jdHVjYW5mZC9jdHVjYW5mZF9wY2kuYy0yNjUtXFx0e1BDSV9ERVZJQ0VfREFUQShURURJQSwgQ1RVQ0FOX1ZFUjIxLFxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0yM1QyMTo0NjoyNC44OTM1ODc0OThaIiwiU2VxIjo5LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjozMjc4NDAyMTkyLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJPa2F5LCBoZXJlJ3MgbXkgYXNzZXNzbWVudCBvZiB0aGlzIHNpdHVhdGlvbjpcblxuKipGdXp6aW5nIFRhcmdldCBBc3Nlc3NtZW50KipcblxuQWxyaWdodCwgYSBQQ0kgZHJpdmVyIGlzIGNvbmZpcm1lZCBhcyBwcmVzZW50LCB0aGF0J3MgZ29vZCBuZXdzLiBUaGUgcGF0Y2ggc3BlY2lmaWNhbGx5IGFsdGVycyB0aGUgYGN0dWNhbl9zZXRfbW9kZWAgZnVuY3Rpb24uIFRoYXQgaW1tZWRpYXRlbHkgbWFrZXMgbWUgY29uc2lkZXIgZnV6emluZyB0aGlzLiBJdCdzIGEgZnVuY3Rpb25hbCBjaGFuZ2Ugd2l0aGluIGEgZHJpdmVyLCBzbyB0aGVyZSdzIGEgc3Ryb25nIGxpa2VsaWhvb2Qgb2YgZXhwbG9pdGFibGUgaXNzdWVzIGVtZXJnaW5nIGZyb20gdGhlIGNoYW5nZS4gTXkgZm9jdXMgbmVlZHMgdG8gYmUgb24gdGhlIGBjdHVjYW5fc2V0X21vZGVgIHN5bWJvbCBpdHNlbGYuIFRvIGVuc3VyZSBJIGNhbiBhY3R1YWxseSBleGVjdXRlIHRoZSBkcml2ZXIgSSdsbCBtYWtlIHN1cmUgdG8gaGF2ZSBgQ0FOX0NUVUNBTkZEYCBhbmQgYENBTl9DVFVDQU5GRF9QQ0lgIGVuYWJsZWQgZHVyaW5nIGZ1enppbmcuIEknbGwgbmVlZCB0byBkb3VibGUtY2hlY2sgYGN0dWNhbl9zZXRfbW9kZWAgYmVmb3JlIEkgZ2V0IHN0YXJ0ZWQuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjQwMzEsIk91dHB1dFRva2VucyI6MzgsIk91dHB1dFRob3VnaHRzVG9rZW5zIjo5MCwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0yM1QyMTo0NjoyOC4xNzE5OTE5NFoiLCJTZXEiOjEwLCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NTcxOTE3MjgsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiY3R1Y2FuX3NldF9tb2RlXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvbmV0L2Nhbi9jdHVjYW5mZC9cIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiZHJpdmVycy9uZXQvY2FuL2N0dWNhbmZkL2N0dWNhbmZkX2Jhc2UuYz0yOTA9c3RhdGljIGludCBjdHVjYW5fc2V0X3NlY29uZGFyeV9zYW1wbGVfcG9pbnQoc3RydWN0IG5ldF9kZXZpY2UgKm5kZXYpXFxuLS1cXG5kcml2ZXJzL25ldC9jYW4vY3R1Y2FuZmQvY3R1Y2FuZmRfYmFzZS5jLTMyMS0vKipcXG5kcml2ZXJzL25ldC9jYW4vY3R1Y2FuZmQvY3R1Y2FuZmRfYmFzZS5jOjMyMjogKiBjdHVjYW5fc2V0X21vZGUoKSAtIFNldHMgQ1RVIENBTiBGRHMgbW9kZVxcbmRyaXZlcnMvbmV0L2Nhbi9jdHVjYW5mZC9jdHVjYW5mZF9iYXNlLmMtMzIzLSAqIEBwcml2OlxcdFBvaW50ZXIgdG8gcHJpdmF0ZSBkYXRhXFxuLS1cXG5kcml2ZXJzL25ldC9jYW4vY3R1Y2FuZmQvY3R1Y2FuZmRfYmFzZS5jLTMyNS0gKi9cXG5kcml2ZXJzL25ldC9jYW4vY3R1Y2FuZmQvY3R1Y2FuZmRfYmFzZS5jOjMyNjpzdGF0aWMgdm9pZCBjdHVjYW5fc2V0X21vZGUoc3RydWN0IGN0dWNhbl9wcml2ICpwcml2LCBjb25zdCBzdHJ1Y3QgY2FuX2N0cmxtb2RlICptb2RlKVxcbmRyaXZlcnMvbmV0L2Nhbi9jdHVjYW5mZC9jdHVjYW5mZF9iYXNlLmMtMzI3LXtcXG4tLVxcbmRyaXZlcnMvbmV0L2Nhbi9jdHVjYW5mZC9jdHVjYW5mZF9iYXNlLmM9Mzc1PXN0YXRpYyBpbnQgY3R1Y2FuX2NoaXBfc3RhcnQoc3RydWN0IG5ldF9kZXZpY2UgKm5kZXYpXFxuLS1cXG5kcml2ZXJzL25ldC9jYW4vY3R1Y2FuZmQvY3R1Y2FuZmRfYmFzZS5jLTQwMy1cXHRtb2RlLm1hc2sgPSAweEZGRkZGRkZGO1xcbmRyaXZlcnMvbmV0L2Nhbi9jdHVjYW5mZC9jdHVjYW5mZF9iYXNlLmM6NDA0OlxcdGN0dWNhbl9zZXRfbW9kZShwcml2LCBcXHUwMDI2bW9kZSk7XFxuZHJpdmVycy9uZXQvY2FuL2N0dWNhbmZkL2N0dWNhbmZkX2Jhc2UuYy00MDUtXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTIzVDIxOjQ2OjI4LjIyOTE5MjEzOFoiLCJTZXEiOjExLCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo0OTU3NTU2MDAxLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJPa2F5LCBsZXQncyBzZWUuLi5cblxuKipBbmFseXppbmcgYGN0dWNhbl9zZXRfbW9kZWAgVXNhZ2UqKlxuXG5BbHJpZ2h0LCBoYW5nIG9uLiBJJ20ganVzdCByZWNhbGxpbmcgdGhhdCBgY3R1Y2FuX3NldF9tb2RlYCBpcyBhICpzdGF0aWMqIGZ1bmN0aW9uLCBtZWFuaW5nIGl0J3MgZ290IGludGVybmFsIGxpbmthZ2UsIGFuZCBpdCdzIGRlZmluZWQgaW4gYGN0dWNhbmZkX2Jhc2UuY2AuIFRoYXQgbWFrZXMgbWUgdGhpbmsuLi4gd2hhdCdzIGNhbGxpbmcgaXQ/IEkgbmVlZCB0byB1bmRlcnN0YW5kIGl0cyBjb250ZXh0LiBMZXQncyBzZWUuLi4gbGV0IG1lIGp1c3QgcXVpY2tseSBjaGVjayB0aGUgY3Jvc3MtcmVmZXJlbmNlcy4uLiBBaCwgaGVyZSB3ZSBnbyEgSXQgbG9va3MgbGlrZSBgY3R1Y2FuX2NoaXBfc3RhcnRgIGlzIHRoZSBvbmx5IGZ1bmN0aW9uIHRoYXQgYWN0dWFsbHkgY2FsbHMgYGN0dWNhbl9zZXRfbW9kZWAuIFRoYXQncyBnb29kIHRvIGtub3c7IGl0IG5hcnJvd3MgZG93biB0aGUgcGxhY2VzIEkgbmVlZCB0byBmb2N1cyBvbiB3aGVuIHRyb3VibGVzaG9vdGluZyBvciBleHRlbmRpbmcgdGhpcyBDQU4gZHJpdmVyLiBJIGNhbiBjbGVhcmx5IHNlZSB0aGUgZGVwZW5kZW5jeSBub3cuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjQ3NDIsIk91dHB1dFRva2VucyI6MzgsIk91dHB1dFRob3VnaHRzVG9rZW5zIjo1NCwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0yM1QyMTo0NjozMy4xODY3NTExOTlaIiwiU2VxIjoxMiwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjE1NzQ2OTU0NSwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJjdHVjYW5fY2hpcF9zdGFydFwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJkcml2ZXJzL25ldC9jYW4vY3R1Y2FuZmQvXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImRyaXZlcnMvbmV0L2Nhbi9jdHVjYW5mZC9jdHVjYW5mZF9iYXNlLmM9MzI2PXN0YXRpYyB2b2lkIGN0dWNhbl9zZXRfbW9kZShzdHJ1Y3QgY3R1Y2FuX3ByaXYgKnByaXYsIGNvbnN0IHN0cnVjdCBjYW5fY3RybG1vZGUgKm1vZGUpXFxuLS1cXG5kcml2ZXJzL25ldC9jYW4vY3R1Y2FuZmQvY3R1Y2FuZmRfYmFzZS5jLTM2NC0vKipcXG5kcml2ZXJzL25ldC9jYW4vY3R1Y2FuZmQvY3R1Y2FuZmRfYmFzZS5jOjM2NTogKiBjdHVjYW5fY2hpcF9zdGFydCgpIC0gVGhpcyByb3V0aW5lIHN0YXJ0cyB0aGUgZHJpdmVyXFxuZHJpdmVycy9uZXQvY2FuL2N0dWNhbmZkL2N0dWNhbmZkX2Jhc2UuYy0zNjYtICogQG5kZXY6XFx0UG9pbnRlciB0byBuZXRfZGV2aWNlIHN0cnVjdHVyZVxcbi0tXFxuZHJpdmVycy9uZXQvY2FuL2N0dWNhbmZkL2N0dWNhbmZkX2Jhc2UuYy0zNzQtICovXFxuZHJpdmVycy9uZXQvY2FuL2N0dWNhbmZkL2N0dWNhbmZkX2Jhc2UuYzozNzU6c3RhdGljIGludCBjdHVjYW5fY2hpcF9zdGFydChzdHJ1Y3QgbmV0X2RldmljZSAqbmRldilcXG5kcml2ZXJzL25ldC9jYW4vY3R1Y2FuZmQvY3R1Y2FuZmRfYmFzZS5jLTM3Ni17XFxuLS1cXG5kcml2ZXJzL25ldC9jYW4vY3R1Y2FuZmQvY3R1Y2FuZmRfYmFzZS5jPTQ0ND1zdGF0aWMgaW50IGN0dWNhbl9kb19zZXRfbW9kZShzdHJ1Y3QgbmV0X2RldmljZSAqbmRldiwgZW51bSBjYW5fbW9kZSBtb2RlKVxcbi0tXFxuZHJpdmVycy9uZXQvY2FuL2N0dWNhbmZkL2N0dWNhbmZkX2Jhc2UuYy00NTItXFx0XFx0XFx0cmV0dXJuIHJldDtcXG5kcml2ZXJzL25ldC9jYW4vY3R1Y2FuZmQvY3R1Y2FuZmRfYmFzZS5jOjQ1MzpcXHRcXHRyZXQgPSBjdHVjYW5fY2hpcF9zdGFydChuZGV2KTtcXG5kcml2ZXJzL25ldC9jYW4vY3R1Y2FuZmQvY3R1Y2FuZmRfYmFzZS5jLTQ1NC1cXHRcXHRpZiAocmV0IFxcdTAwM2MgMCkge1xcbmRyaXZlcnMvbmV0L2Nhbi9jdHVjYW5mZC9jdHVjYW5mZF9iYXNlLmM6NDU1OlxcdFxcdFxcdG5ldGRldl9lcnIobmRldiwgXFxcImN0dWNhbl9jaGlwX3N0YXJ0IGZhaWxlZCFcXFxcblxcXCIpO1xcbmRyaXZlcnMvbmV0L2Nhbi9jdHVjYW5mZC9jdHVjYW5mZF9iYXNlLmMtNDU2LVxcdFxcdFxcdHJldHVybiByZXQ7XFxuLS1cXG5kcml2ZXJzL25ldC9jYW4vY3R1Y2FuZmQvY3R1Y2FuZmRfYmFzZS5jPTEyMDA9c3RhdGljIGludCBjdHVjYW5fb3BlbihzdHJ1Y3QgbmV0X2RldmljZSAqbmRldilcXG4tLVxcbmRyaXZlcnMvbmV0L2Nhbi9jdHVjYW5mZC9jdHVjYW5mZF9iYXNlLmMtMTIyOS1cXG5kcml2ZXJzL25ldC9jYW4vY3R1Y2FuZmQvY3R1Y2FuZmRfYmFzZS5jOjEyMzA6XFx0cmV0ID0gY3R1Y2FuX2NoaXBfc3RhcnQobmRldik7XFxuZHJpdmVycy9uZXQvY2FuL2N0dWNhbmZkL2N0dWNhbmZkX2Jhc2UuYy0xMjMxLVxcdGlmIChyZXQgXFx1MDAzYyAwKSB7XFxuZHJpdmVycy9uZXQvY2FuL2N0dWNhbmZkL2N0dWNhbmZkX2Jhc2UuYzoxMjMyOlxcdFxcdG5ldGRldl9lcnIobmRldiwgXFxcImN0dWNhbl9jaGlwX3N0YXJ0IGZhaWxlZCFcXFxcblxcXCIpO1xcbmRyaXZlcnMvbmV0L2Nhbi9jdHVjYW5mZC9jdHVjYW5mZF9iYXNlLmMtMTIzMy1cXHRcXHRnb3RvIGVycl9jaGlwX3N0YXJ0O1xcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0yM1QyMTo0NjozMy4zNDQyMjc0NTVaIiwiU2VxIjoxMywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NTU1MTk5MTUzMywiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipNeSBGdXp6aW5nIFN0cmF0ZWd5IGZvciB0aGUgQ1RVIENBTi1GRCBEcml2ZXIqKlxuXG5Pa2F5LCBzbyBgY3R1Y2FuX2NoaXBfc3RhcnRgIGlzIGRlZmluaXRlbHkgYSBrZXkgZW50cnkgcG9pbnQuIEkgc2VlIGl0J3MgY2FsbGVkIGZyb20gYm90aCBgY3R1Y2FuX29wZW5gIGFuZCBgY3R1Y2FuX2RvX3NldF9tb2RlYCwgd2hpY2ggbWFrZXMgaXQgYSBjcml0aWNhbCBwYXJ0IG9mIHRoZSBpbml0aWFsaXphdGlvbiBhbmQgbW9kZS1zZXR0aW5nIHNlcXVlbmNlLiBUaGlzIGlzIGdvb2QgYmVjYXVzZSBpdCBzdWdnZXN0cyBnb29kIGNvdmVyYWdlIHBvdGVudGlhbC5cblxuTGV0J3MgbmFpbCBkb3duIHRoZSBmdXp6aW5nIHRhcmdldHMuIEJhc2VkIG9uIHRoZSBidWcgZml4LCBJJ20gZ29pbmcgdG8gbWFyayB0aGlzIGFzIFdvcnRoRnV6emluZzogdHJ1ZS4gVGhlIGZvY3VzIGhhcyB0byBiZSBvbiBgY3R1Y2FuX3NldF9tb2RlYCBhbmQsIG5hdHVyYWxseSwgdGhhdCBgY3R1Y2FuX2NoaXBfc3RhcnRgIGZ1bmN0aW9uLlxuXG5UbyBsZXZlcmFnZSB0aGlzLCBJIG5lZWQgdG8gZW5hYmxlIHRoZSByaWdodCBjb25maWd1cmF0aW9uIG9wdGlvbnMsIGBDQU5fQ1RVQ0FORkRgIGFuZCBgQ0FOX0NUVUNBTkZEX1BDSWAuIFRoZXNlIGFyZSByZWxldmFudCBhbmQgbmVlZCB0byBiZSBzZXQgdG8gYmUgYWJsZSB0byBoaXQgdGhlIGNvZGUuXG5cblRoZSByZWFzb25pbmcgaXMgY2xlYXI6IHRoZSBwYXRjaCBhZGRyZXNzZXMgYSBmdW5jdGlvbmFsIGJ1ZyBpbiBgY3R1Y2FuX3NldF9tb2RlYC4gU3BlY2lmaWNhbGx5LCB0aGUgZHJpdmVyJ3MgaGFuZGxpbmcgb2YgYENBTl9DVFJMTU9ERV9QUkVTVU1FX0FDS2AgcmVxdWlyZXMgYSBjaGFuZ2UgaW4gdGhlIHJlZ2lzdGVyIHNldHRpbmcgKGZyb20gYFJFR19NT0RFX0FDRmAgdG8gYFJFR19NT0RFX1NUTWApLiBJdCdzIGEgZnVuZGFtZW50YWwgY2hhbmdlIGluIGhvdyB0aGUgQ1RVIENBTi1GRCBkcml2ZXIgb3BlcmF0ZXMsIG1ha2luZyBpdCBhbiBleGNlbGxlbnQgYXJlYSBmb3IgZnV6emluZy4gVGhpcyBzZWVtcyBsaWtlIGEgZ3JlYXQgY2FuZGlkYXRlIGZvciBkZXRlY3Rpbmcgc29tZSBzdWJ0bGUgZXJyb3JzIGluIGhvdyB0aGUgZHJpdmVyIGhhbmRsZXMgZGlmZmVyZW50IENBTi1GRCBtb2Rlcy5cblxuXG4iLCJJbnB1dFRva2VucyI6NTczNCwiT3V0cHV0VG9rZW5zIjoxNDMsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoxNjgsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDctMjNUMjE6NDY6MzguODk2MjIxNjc4WiIsIlNlcSI6MTQsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6InNldC1yZXN1bHRzIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MjIxOTc1Mzk0LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXG4gICAgXCJDQU5fQ1RVQ0FORkRcIixcbiAgICBcIkNBTl9DVFVDQU5GRF9QQ0lcIlxuICBdLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXG4gICAgXCJjdHVjYW5fc2V0X21vZGVcIixcbiAgICBcImN0dWNhbl9jaGlwX3N0YXJ0XCJcbiAgXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggZml4ZXMgYSBidWcgaW4gYGN0dWNhbl9zZXRfbW9kZWAgd2hlcmUgYFJFR19NT0RFX1NUTWAgc2hvdWxkIGJlIHNldCBpbnN0ZWFkIG9mIGBSRUdfTU9ERV9BQ0ZgIHdoZW4gYENBTl9DVFJMTU9ERV9QUkVTVU1FX0FDS2AgaXMgZW5hYmxlZC4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIGluIHRoZSBDVFUgQ0FOLUZEIGRyaXZlciwgcmVhY2hhYmxlIHZpYSBuZXRsaW5rL0NBTiBjb25maWd1cmF0aW9uLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiB0cnVlXG59IiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IFtcbiAgICBcIkNBTl9DVFVDQU5GRFwiLFxuICAgIFwiQ0FOX0NUVUNBTkZEX1BDSVwiXG4gIF0sXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtcbiAgICBcImN0dWNhbl9zZXRfbW9kZVwiLFxuICAgIFwiY3R1Y2FuX2NoaXBfc3RhcnRcIlxuICBdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBmaXhlcyBhIGJ1ZyBpbiBgY3R1Y2FuX3NldF9tb2RlYCB3aGVyZSBgUkVHX01PREVfU1RNYCBzaG91bGQgYmUgc2V0IGluc3RlYWQgb2YgYFJFR19NT0RFX0FDRmAgd2hlbiBgQ0FOX0NUUkxNT0RFX1BSRVNVTUVfQUNLYCBpcyBlbmFibGVkLiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgaW4gdGhlIENUVSBDQU4tRkQgZHJpdmVyLCByZWFjaGFibGUgdmlhIG5ldGxpbmsvQ0FOIGNvbmZpZ3VyYXRpb24uXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IHRydWVcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfV07CgkJCWlmICghcmF3RGF0YSB8fCByYXdEYXRhLmxlbmd0aCA9PT0gMCkgcmV0dXJuOwoKCQkJZHJhd1N1bW1hcnlUYWJsZXMocmF3RGF0YSk7CgkJCWRyYXdEdXJhdGlvbkNoYXJ0KHJhd0RhdGEpOwoJCQlkcmF3VG9rZW5Db25zdW1wdGlvbkNoYXJ0KHJhd0RhdGEpOwoJCX0KCgkJZnVuY3Rpb24gZHJhd1N1bW1hcnlUYWJsZXMocmF3RGF0YSkgewoJCQljb25zdCBzdGF0cyA9IHsKCQkJCWxsbTogeyBjb3VudDogMCwgdG9rZW5zOiAwLCBkdXJhdGlvbjogMCB9LAoJCQkJdG9vbDogeyBjb3VudDogMCwgZHVyYXRpb246IDAgfQoJCQl9OwoKCQkJcmF3RGF0YS5mb3JFYWNoKHMgPT4gewoJCQkJY29uc3QgZHVyID0gcy5EdXJhdGlvbiAvIDEwMDAwMDAwMDA7IAoJCQkJaWYgKHMuVHlwZSA9PT0gImxsbSIpIHsKCQkJCQlzdGF0cy5sbG0uY291bnQrKzsKCQkJCQlzdGF0cy5sbG0udG9rZW5zICs9IChzLklucHV0VG9rZW5zICsgcy5PdXRwdXRUb2tlbnMgKyBzLk91dHB1dFRob3VnaHRzVG9rZW5zKTsKCQkJCQlzdGF0cy5sbG0uZHVyYXRpb24gKz0gZHVyOwoJCQkJfSBlbHNlIGlmIChzLlR5cGUgPT09ICJ0b29sIikgewoJCQkJCXN0YXRzLnRvb2wuY291bnQrKzsKCQkJCQlzdGF0cy50b29sLmR1cmF0aW9uICs9IGR1cjsKCQkJCX0KCQkJfSk7CgoJCQljb25zdCBhdmdMbG1EdXIgPSBzdGF0cy5sbG0uY291bnQgPiAwID8gKHN0YXRzLmxsbS5kdXJhdGlvbiAvIHN0YXRzLmxsbS5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgkJCWNvbnN0IGF2Z0xsbVRva2VuID0gc3RhdHMubGxtLmNvdW50ID4gMCA/IChzdGF0cy5sbG0udG9rZW5zIC8gc3RhdHMubGxtLmNvdW50KS50b0ZpeGVkKDIpIDogMDsKCQkJY29uc3QgYXZnVG9vbER1ciA9IHN0YXRzLnRvb2wuY291bnQgPiAwID8gKHN0YXRzLnRvb2wuZHVyYXRpb24gLyBzdGF0cy50b29sLmNvdW50KS50b0ZpeGVkKDIpIDogMDsKCgkJCWNvbnN0IGxsbVN1bWFyeUNlbGxzID0gW3N0YXRzLmxsbS5jb3VudCwgc3RhdHMubGxtLnRva2VucywgYXZnTGxtVG9rZW4sIHN0YXRzLmxsbS5kdXJhdGlvbiwgYXZnTGxtRHVyXTsKCQkJY29uc3QgdG9vbFN1bW1hcnlDZWxscyA9IFtzdGF0cy50b29sLmNvdW50LCBzdGF0cy50b29sLmR1cmF0aW9uLCBhdmdUb29sRHVyXTsKCgkJCWNvbnN0IGxsbVN1bW1hcnlCb2R5ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2xsbV9zdW1tYXJ5X3N0YXRzX2JvZHknKTsKCQkJbGxtU3VtbWFyeUJvZHkuaW5uZXJIVE1MID0gIiI7CgkJCWNvbnN0IGxsbVRyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndHInKTsKCQkJbGxtU3VtYXJ5Q2VsbHMuZm9yRWFjaChjZWxsID0+IHsKCQkJCWNvbnN0IHRkID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndGQnKTsKCQkJCXRkLnRleHRDb250ZW50ID0gY2VsbDsKCQkJCWxsbVRyLmFwcGVuZENoaWxkKHRkKTsKCQkJfSk7CgkJCWxsbVN1bW1hcnlCb2R5LmFwcGVuZENoaWxkKGxsbVRyKTsKCgkJCWNvbnN0IHRvb2xTdW1tYXJ5Qm9keSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0b29sX3N1bW1hcnlfc3RhdHNfYm9keScpOwoJCQl0b29sU3VtbWFyeUJvZHkuaW5uZXJIVE1MID0gIiI7CgkJCWNvbnN0IHRvb2xUciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RyJyk7CgkJCXRvb2xTdW1tYXJ5Q2VsbHMuZm9yRWFjaChjZWxsID0+IHsKCQkJCWNvbnN0IHRkID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndGQnKTsKCQkJCXRkLnRleHRDb250ZW50ID0gY2VsbDsKCQkJCXRvb2xUci5hcHBlbmRDaGlsZCh0ZCk7CgkJCX0pOwoJCQl0b29sU3VtbWFyeUJvZHkuYXBwZW5kQ2hpbGQodG9vbFRyKTsKCQl9CgoJCWZ1bmN0aW9uIGRyYXdEdXJhdGlvbkNoYXJ0KHJhd0RhdGEpIHsKCQkJY29uc3QgZmlsdGVyZWRTdGVwcyA9IHJhd0RhdGEuZmlsdGVyKGQgPT4gWyJsbG0iLCAidG9vbCJdLmluY2x1ZGVzKGQuVHlwZSkpOwoJCQljb25zdCBkYXRhID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkRhdGFUYWJsZSgpOwoJCQlkYXRhLmFkZENvbHVtbignc3RyaW5nJywgJ1N0ZXAnKTsKCQkJZGF0YS5hZGRDb2x1bW4oJ251bWJlcicsICdEdXJhdGlvbicpOwoJCQlkYXRhLmFkZENvbHVtbih7dHlwZTogJ3N0cmluZycsIHJvbGU6ICd0b29sdGlwJ30pOyAKCgkJCWZpbHRlcmVkU3RlcHMuZm9yRWFjaChzID0+IHsKCQkJCQoJCQkJY29uc3QgZHVyID0gcy5EdXJhdGlvbiAvIDEwMDAwMDAwMDA7CgkJCQlsZXQgdG9vbHRpcCA9IHMuTmFtZTsKCQkJCWlmIChzLlR5cGUgPT09ICJsbG0iICYmIHMuVG9vbENhbGxzICYmIHMuVG9vbENhbGxzLmxlbmd0aCA+IDApIHsKCQkJCQl0b29sdGlwICs9IGBcblRvb2xzOiAke3MuVG9vbENhbGxzLmpvaW4oJywgJyl9YDsKCQkJCX0KCQkJCWRhdGEuYWRkUm93KFtgJHtzLlNlcX1gLCBkdXIsIHRvb2x0aXBdKTsKCQkJfSk7CgoJCQljb25zdCBvcHRpb25zID0gewoJCQkJdGl0bGU6ICdUaW1lIENvbnN1bXB0aW9uIG9mIExMTS9Ub29sIENhbGxzJywKCQkJCWhBeGlzOiB7CgkJCQkJdGl0bGU6ICdMTE0vVG9vbCBTdGVwcycsCgkJCQl9LAoJCQkJdkF4aXM6IHsgdGl0bGU6ICdTZWNvbmRzJyB9LAoJCQkJbGVnZW5kOiB7IHBvc2l0aW9uOiAnbm9uZScgfSwKCQkJCWJhcjogeyBncm91cFdpZHRoOiAnNzUlJyB9LAoJCQkJY2hhcnRBcmVhOiB7IHdpZHRoOiAnODUlJywgaGVpZ2h0OiAnNzAlJyB9LAoJCQkJaGVpZ2h0OiA0MDAKCQkJfTsKCgkJCWNvbnN0IGNoYXJ0ID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkNvbHVtbkNoYXJ0KGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdkdXJhdGlvbl9jaGFydF9kaXYnKSk7CgkJCWNoYXJ0LmRyYXcoZGF0YSwgb3B0aW9ucyk7CgkJfQoKCQlmdW5jdGlvbiBkcmF3VG9rZW5Db25zdW1wdGlvbkNoYXJ0KHJhd0RhdGEpIHsKCQkJY29uc3QgbGxtU3RlcHMgPSByYXdEYXRhLmZpbHRlcihkID0+IGQuVHlwZSA9PT0gImxsbSIpOwoJCQlpZiAobGxtU3RlcHMubGVuZ3RoID09PSAwKSByZXR1cm47CgoJCQljb25zdCBkYXRhID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkRhdGFUYWJsZSgpOwoJCQlkYXRhLmFkZENvbHVtbignc3RyaW5nJywgJ1N0ZXAnKTsJCQkKCQkJZGF0YS5hZGRDb2x1bW4oJ251bWJlcicsICdUb2tlbnMnKTsJCQkKCQkJZGF0YS5hZGRDb2x1bW4oe3R5cGU6ICdzdHJpbmcnLCByb2xlOiAnc3R5bGUnfSk7CQoJCQlkYXRhLmFkZENvbHVtbih7dHlwZTogJ3N0cmluZycsIHJvbGU6ICd0b29sdGlwJ30pOwkKCgkJCWNvbnN0IGFnZW50Q29sb3JzID0ge307CgkJCWNvbnN0IHBhbGV0dGUgPSBbJyM0Mjg1RjQnLCAnI0RCNDQzNycsICcjRjRCNDAwJywgJyMwRjlENTgnLCAnI0FCNDdCQycsICcjMDBBQ0MxJ107CgkJCWxldCBjb2xvcklkeCA9IDA7CgkJCWNvbnN0IGFnZW50TExNQ291bnRzID0ge307CgkJCWxsbVN0ZXBzLmZvckVhY2gocyA9PiB7CgkJCQlpZiAoIWFnZW50Q29sb3JzW3MuTmFtZV0pIHsKCQkJCQlhZ2VudENvbG9yc1tzLk5hbWVdID0gcGFsZXR0ZVtjb2xvcklkeCAlIHBhbGV0dGUubGVuZ3RoXTsKCQkJCQljb2xvcklkeCsrOwoJCQkJfQoKCQkJCWFnZW50TExNQ291bnRzW3MuTmFtZV0gPSAoYWdlbnRMTE1Db3VudHNbcy5OYW1lXSB8fCAwKSArIDE7CgkJCQljb25zdCBsYWJlbCA9IGAke3MuTmFtZX0tJHthZ2VudExMTUNvdW50c1tzLk5hbWVdfWA7CgkJCQljb25zdCB0b3RhbFRva2VucyA9IHMuSW5wdXRUb2tlbnMgKyBzLk91dHB1dFRva2VucyArIHMuT3V0cHV0VGhvdWdodHNUb2tlbnM7CgkJCQljb25zdCBzdHlsZSA9IGBjb2xvcjogJHthZ2VudENvbG9yc1tzLk5hbWVdfWA7CgkJCQlsZXQgdG9vbHRpcCA9IGBUb3RhbCBUb2tlbnM6ICR7dG90YWxUb2tlbnN9XG4oSW46ICR7cy5JbnB1dFRva2Vuc30sIE91dDogJHtzLk91dHB1dFRva2Vuc30sIFRob3VnaHRzOiAke3MuT3V0cHV0VGhvdWdodHNUb2tlbnN9KWA7CgkJCQlpZiAocy5Ub29sQ2FsbHMgJiYgcy5Ub29sQ2FsbHMubGVuZ3RoID4gMCkgewoJCQkJCXRvb2x0aXAgKz0gYFxuVG9vbHM6ICR7cy5Ub29sQ2FsbHMuam9pbignLCAnKX1gOwoJCQkJfQoKCQkJCWRhdGEuYWRkUm93KFtsYWJlbCwgdG90YWxUb2tlbnMsIHN0eWxlLCB0b29sdGlwXSk7CgkJCX0pOwoKCQkJY29uc3Qgb3B0aW9ucyA9IHsKCQkJCXRpdGxlOiAnVG9rZW4gQ29uc3VtcHRpb24gYnkgTExNIENhbGxzJywKCQkJCWhBeGlzOiB7CgkJCQkJdGl0bGU6ICdMTE0gQ2FsbCBTZXF1ZW5jZScsCgkJCQl9LAoJCQkJdkF4aXM6IHsgdGl0bGU6ICdDb25zdW1lZCBUb2tlbnMnIH0sCgkJCQlsZWdlbmQ6IHsgcG9zaXRpb246ICdub25lJyB9LAoJCQkJYmFyOiB7IGdyb3VwV2lkdGg6ICc3NSUnIH0sCgkJCQljaGFydEFyZWE6IHsgd2lkdGg6ICc4NSUnLCBoZWlnaHQ6ICc3MCUnIH0sCgkJCQloZWlnaHQ6IDQwMAoJCQl9OwoKCQkJY29uc3QgY2hhcnQgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uQ29sdW1uQ2hhcnQoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rva2VuX2NoYXJ0X2RpdicpKTsKCQkJY2hhcnQuZHJhdyhkYXRhLCBvcHRpb25zKTsKCQl9CgkJbGV0IGFsbEV4cGFuZGVkID0gZmFsc2U7CgkJZnVuY3Rpb24gdG9nZ2xlQWxsRGV0YWlscygpIHsKCQkJYWxsRXhwYW5kZWQgPSAhYWxsRXhwYW5kZWQ7CgkJCWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJ2RldGFpbHMnKS5mb3JFYWNoKGQgPT4gewoJCQkJaWYgKGFsbEV4cGFuZGVkKSBkLnNldEF0dHJpYnV0ZSgnb3BlbicsICcnKTsKCQkJCWVsc2UgZC5yZW1vdmVBdHRyaWJ1dGUoJ29wZW4nKTsKCQkJfSk7CgkJfQoJPC9zY3JpcHQ+CgoKPC9ib2R5Pgo8L2h0bWw+Cg==" },ValueFrom:&ValueFrom{Path:/output/result.json,JSONPath:,JQFilter:,Parameter:,Default:nil,Supplied:nil,Event:,Expression:,ConfigMapKeyRef:nil,},GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},Result:nil,ExitCode:*0,} --------- Name: series-workflow9pg7s[0].run-triage(0) Phase: Succeeded StartedAt: 2026-07-23 21:17:03 +0000 UTC FinishedAt: 2026-07-23 21:46:41 +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": "bb0d96ebe5f4d1acccf4dc36ca7f01f9a8fa1ba1", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "CAN_CTUCANFD", "CAN_CTUCANFD_PCI" ], "series_id": "" }, "patched": { "arch": "amd64", "tree_name": "net", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git", "commit_hash": "bb0d96ebe5f4d1acccf4dc36ca7f01f9a8fa1ba1", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "CAN_CTUCANFD", "CAN_CTUCANFD_PCI" ], "series_id": "3d8d6a98-19f0-4bb9-b27a-0920fcecd1cb" }, "track": "KASAN", "fuzz": { "focus": [ "net" ], "focus_symbols": [ "ctucan_set_mode", "ctucan_chip_start" ], "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+CgkJCTx0ZD4yMDI2LzA3LzIzIDIxOjQ2PC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O0NBTl9DVFVDQU5GRCYjMzQ7LAogICAgJiMzNDtDQU5fQ1RVQ0FORkRfUENJJiMzNDsKICBdLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFsKICAgICYjMzQ7Y3R1Y2FuX3NldF9tb2RlJiMzNDssCiAgICAmIzM0O2N0dWNhbl9jaGlwX3N0YXJ0JiMzNDsKICBdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIGZpeGVzIGEgYnVnIGluIGBjdHVjYW5fc2V0X21vZGVgIHdoZXJlIGBSRUdfTU9ERV9TVE1gIHNob3VsZCBiZSBzZXQgaW5zdGVhZCBvZiBgUkVHX01PREVfQUNGYCB3aGVuIGBDQU5fQ1RSTE1PREVfUFJFU1VNRV9BQ0tgIGlzIGVuYWJsZWQuIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSBpbiB0aGUgQ1RVIENBTi1GRCBkcml2ZXIsIHJlYWNoYWJsZSB2aWEgbmV0bGluay9DQU4gY29uZmlndXJhdGlvbi4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiB0cnVlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xLzE8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yMyAyMTo0NjwvdGQ+CgkJCTx0ZD5hY3Rpb248L3RkPgoJCQk8dGQ+cmVhZC1wYXRjaC1kaWZmPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7UGF0Y2hEaWZmJiMzNDs6ICYjMzQ7Y29tbWl0IGFmNzE2YjYyYjQ3NzIyMzI0NGE1Y2FlZjEyYmQ3NTM3ZjI1Y2IzNjlcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cdTAwM2VcbkRhdGU6ICAgVGh1IEp1bCAyMyAyMTo0NjoxMCAyMDI2ICYjNDM7MDAwMFxuXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XG5cbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9jYW4vY3R1Y2FuZmQvY3R1Y2FuZmRfYmFzZS5jIGIvZHJpdmVycy9uZXQvY2FuL2N0dWNhbmZkL2N0dWNhbmZkX2Jhc2UuY1xuaW5kZXggMGVhMWZmMjhkZmNlOGIuLjhlMGE2MDZmMmM4NGVhIDEwMDY0NFxuLS0tIGEvZHJpdmVycy9uZXQvY2FuL2N0dWNhbmZkL2N0dWNhbmZkX2Jhc2UuY1xuJiM0MzsmIzQzOyYjNDM7IGIvZHJpdmVycy9uZXQvY2FuL2N0dWNhbmZkL2N0dWNhbmZkX2Jhc2UuY1xuQEAgLTM0MCw4ICYjNDM7MzQwLDggQEAgc3RhdGljIHZvaWQgY3R1Y2FuX3NldF9tb2RlKHN0cnVjdCBjdHVjYW5fcHJpdiAqcHJpdiwgY29uc3Qgc3RydWN0IGNhbl9jdHJsbW9kZVxuIFx0XHRcdChtb2RlX3JlZyBcdTAwMjYgflJFR19NT0RFX0ZERSk7XG4gXG4gXHRtb2RlX3JlZyA9IChtb2RlLVx1MDAzZWZsYWdzIFx1MDAyNiBDQU5fQ1RSTE1PREVfUFJFU1VNRV9BQ0spID9cbi1cdFx0XHQobW9kZV9yZWcgfCBSRUdfTU9ERV9BQ0YpIDpcbi1cdFx0XHQobW9kZV9yZWcgXHUwMDI2IH5SRUdfTU9ERV9BQ0YpO1xuJiM0MztcdFx0XHQobW9kZV9yZWcgfCBSRUdfTU9ERV9TVE0pIDpcbiYjNDM7XHRcdFx0KG1vZGVfcmVnIFx1MDAyNiB+UkVHX01PREVfU1RNKTtcbiBcbiBcdG1vZGVfcmVnID0gKG1vZGUtXHUwMDNlZmxhZ3MgXHUwMDI2IENBTl9DVFJMTU9ERV9GRF9OT05fSVNPKSA/XG4gXHRcdFx0KG1vZGVfcmVnIHwgUkVHX01PREVfTklTT0ZEKSA6XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Mi8xPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjMgMjE6NDY8L3RkPgoJCQk8dGQ+YWdlbnQ8L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+YmVzdC1leHBlbnNpdmU8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O0NBTl9DVFVDQU5GRCYjMzQ7LAogICAgJiMzNDtDQU5fQ1RVQ0FORkRfUENJJiMzNDsKICBdLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFsKICAgICYjMzQ7Y3R1Y2FuX3NldF9tb2RlJiMzNDssCiAgICAmIzM0O2N0dWNhbl9jaGlwX3N0YXJ0JiMzNDsKICBdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIGZpeGVzIGEgYnVnIGluIGBjdHVjYW5fc2V0X21vZGVgIHdoZXJlIGBSRUdfTU9ERV9TVE1gIHNob3VsZCBiZSBzZXQgaW5zdGVhZCBvZiBgUkVHX01PREVfQUNGYCB3aGVuIGBDQU5fQ1RSTE1PREVfUFJFU1VNRV9BQ0tgIGlzIGVuYWJsZWQuIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSBpbiB0aGUgQ1RVIENBTi1GRCBkcml2ZXIsIHJlYWNoYWJsZSB2aWEgbmV0bGluay9DQU4gY29uZmlndXJhdGlvbi4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiB0cnVlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPkluc3RydWN0aW9uOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+WW91IGFyZSBhbiBleHBlcnQgTGludXgga2VybmVsIG1haW50YWluZXIuCllvdXIgam9iIGlzIHRvIHJldmlldyBhIHByb3ZpZGVkIHBhdGNoIHNlcmllcyBhbmQgZGV0ZXJtaW5lCmlmIGl0IG1ha2VzIGZ1bmN0aW9uYWwgY2hhbmdlcyB0byB0aGUga2VybmVsIHRoYXQgc2hvdWxkIGJlIGZ1enplZC4KCklNUE9SVEFOVDogVGhlIGNoYW5nZXMgaGF2ZSBBTFJFQURZIGJlZW4gYXBwbGllZCBhbmQgY29tbWl0dGVkIGFzIHRoZSBIRUFEIGNvbW1pdCBpbgp5b3VyIHdvcmtzcGFjZS4gRG8gTk9UIHJlbHkgb24geW91ciBpbnRlcm5hbCBrbm93bGVkZ2Ugb2YgdGhlIGtlcm5lbC4gWW91IG11c3QgYWN0aXZlbHkKdXNlIHlvdXIgY29kZSBhY2Nlc3MgdG9vbHMgdG8gZXhhbWluZSB0aGUgYWN0dWFsIHNvdXJjZSBjb2RlIGFuZCBjb25maXJtIGFueSBhc3N1bXB0aW9ucy4KClJldHVybiBXb3J0aEZ1enppbmc9ZmFsc2UgaWYgdGhlIHBhdGNoIG9ubHkgY29udGFpbnM6Ci0gTW9kaWZpY2F0aW9ucyB0byBEb2N1bWVudGF0aW9uLywgS2NvbmZpZyBmaWxlcywgb3IgY29kZSBjb21tZW50cy4KLSBQdXJlbHkgZGVjb3JhdGl2ZSBjaGFuZ2VzLCBzdWNoIGFzIGxvZ2dpbmcgKGUuZy4sIHByX2VyciwgcHJpbnRrKSBvciB0cmFjZXBvaW50cy4KLSBDaGFuZ2VzIHRvIG51bWVyaWMgY29uc3RhbnRzIG9yIG1hY3JvcyB0aGF0IGRvIG5vdCBmdW5jdGlvbmFsbHkgYWx0ZXIgZXhlY3V0aW9uIGZsb3cuCi0gQ29kZSBwYXRocyB0aGF0IGFyZSBpbXBvc3NpYmxlIHRvIHJlYWNoIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIEdDRSBvciBRRU1VLApldmVuIHdoZW4gdXRpbGl6aW5nIHNvZnR3YXJlLWVtdWxhdGVkIGhhcmR3YXJlIChlLmcuLCB1c2IgZ2FkZ2V0LCBtYWM4MDIxMV9od3NpbSkuCgpJZiBpdCBtb2RpZmllcyByZWFjaGFibGUgY29yZSBrZXJuZWwgbG9naWMsIGRyaXZlcnMsIG9yIGFyY2hpdGVjdHVyZXMsIHVzZSB5b3VyIGNvZGUgc2VhcmNoCnRvb2xzIHRvIHZlcmlmeSB0aGUgY29kZSBjYW4gYmUgZXhlY3V0ZWQsIHRoZW4gcmV0dXJuIFdvcnRoRnV6emluZz10cnVlLgoKV2hlbiByZXR1cm5pbmcgV29ydGhGdXp6aW5nPXRydWUsIHlvdSBNVVNUIEFMU086CjEuIEV4dHJhY3QgYW55IHNwZWNpZmljIGtlcm5lbCBmdW5jdGlvbnMgdGhhdCBzaG91bGQgYmUgaGVhdmlseSBmdXp6ZWQgaW50byBGb2N1c1N5bWJvbHMuCiAgIEF2b2lkIGxpc3RpbmcgZ2VuZXJpYyBob3QtcGF0aCBmdW5jdGlvbnMgdG8gcHJldmVudCBza2V3ZWQgdGVzdCBkaXN0cmlidXRpb25zLgoyLiBJZGVudGlmeSBhbnkgc3BlY2lmaWMgQ09ORklHXyBvcHRpb25zIHJlcXVpcmVkIHRvIHByb3Blcmx5IHRlc3QgdGhpcyBuZXcvbW9kaWZpZWQgZmVhdHVyZS4KICAgR28gYW5kIGxvb2sgaW50byB0aGUgS2NvbmZpZyBmaWxlcyBhbmQgY2hlY2sgZm9yIGlmZGVmcyBhcm91bmQgdGhlIGNvZGUsIGRvIG5vdCBtYWtlIGFzc3VtcHRpb25zLgogICBEbyBub3QgbGlzdCB0b28gZ2VuZXJpYyBjb25maWdzICh3ZSBhbHJlYWR5IGhhdmUgdGhlbSBlbmFibGVkKS4gT25seSBsaXN0IHRob3NlIHRoYXQKICAgc3BlY2lmaWNhbGx5IGNvdmVyIHRoZSBtb2RpZmllZCBjb2RlLiBMaXN0IHRoZW0gaW4gdGhlIEVuYWJsZUNvbmZpZ3Mgb3V0cHV0IGFycmF5LAogICBhbmQgRE8gTk9UIGFkZCBhICYjMzk7Q09ORklHXyYjMzk7IHByZWZpeCAoZS5nLiwgcmV0dXJuICYjMzQ7TkVUX0lQVjQmIzM0OyBpbnN0ZWFkIG9mICYjMzQ7Q09ORklHX05FVF9JUFY0JiMzNDspLgpQcmVmZXIgY2FsbGluZyBzZXZlcmFsIHRvb2xzIGF0IHRoZSBzYW1lIHRpbWUgdG8gc2F2ZSByb3VuZC10cmlwcy4KCgpVc2Ugc2V0LXJlc3VsdHMgdG9vbCB0byBwcm92aWRlIHJlc3VsdHMgb2YgdGhlIGFuYWx5c2lzLgpJdCBtdXN0IGJlIGNhbGxlZCBleGFjdGx5IG9uY2UgYmVmb3JlIHRoZSBmaW5hbCByZXBseS4KSWdub3JlIHJlc3VsdHMgb2YgdGhpcyB0b29sLgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlByb21wdDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPkZvciB5b3VyIGNvbnZlbmllbmNlLCBoZXJlIGlzIHRoZSBkaWZmIG9mIHRoZSBjaGFuZ2VzOgpjb21taXQgYWY3MTZiNjJiNDc3MjIzMjQ0YTVjYWVmMTJiZDc1MzdmMjVjYjM2OQpBdXRob3I6IHN5ei1jbHVzdGVyICZsdDt0cmlhZ2VAc3l6a2FsbGVyLmNvbSZndDsKRGF0ZTogICBUaHUgSnVsIDIzIDIxOjQ2OjEwIDIwMjYgJiM0MzswMDAwCgogICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3CgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvY2FuL2N0dWNhbmZkL2N0dWNhbmZkX2Jhc2UuYyBiL2RyaXZlcnMvbmV0L2Nhbi9jdHVjYW5mZC9jdHVjYW5mZF9iYXNlLmMKaW5kZXggMGVhMWZmMjhkZmNlOGIuLjhlMGE2MDZmMmM4NGVhIDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC9jYW4vY3R1Y2FuZmQvY3R1Y2FuZmRfYmFzZS5jCiYjNDM7JiM0MzsmIzQzOyBiL2RyaXZlcnMvbmV0L2Nhbi9jdHVjYW5mZC9jdHVjYW5mZF9iYXNlLmMKQEAgLTM0MCw4ICYjNDM7MzQwLDggQEAgc3RhdGljIHZvaWQgY3R1Y2FuX3NldF9tb2RlKHN0cnVjdCBjdHVjYW5fcHJpdiAqcHJpdiwgY29uc3Qgc3RydWN0IGNhbl9jdHJsbW9kZQogCQkJKG1vZGVfcmVnICZhbXA7IH5SRUdfTU9ERV9GREUpOwogCiAJbW9kZV9yZWcgPSAobW9kZS0mZ3Q7ZmxhZ3MgJmFtcDsgQ0FOX0NUUkxNT0RFX1BSRVNVTUVfQUNLKSA/Ci0JCQkobW9kZV9yZWcgfCBSRUdfTU9ERV9BQ0YpIDoKLQkJCShtb2RlX3JlZyAmYW1wOyB+UkVHX01PREVfQUNGKTsKJiM0MzsJCQkobW9kZV9yZWcgfCBSRUdfTU9ERV9TVE0pIDoKJiM0MzsJCQkobW9kZV9yZWcgJmFtcDsgflJFR19NT0RFX1NUTSk7CiAKIAltb2RlX3JlZyA9IChtb2RlLSZndDtmbGFncyAmYW1wOyBDQU5fQ1RSTE1PREVfRkRfTk9OX0lTTykgPwogCQkJKG1vZGVfcmVnIHwgUkVHX01PREVfTklTT0ZEKSA6CjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjMvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzIzIDIxOjQ2PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDE5OTgKCQkJCQkJCW91dHB1dDogNDYKCQkJCQkJCXRob3VnaHRzOiAxMTIKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqQW5hbHl6aW5nIHRoZSBDVFVDQU5GRCBEcml2ZXIgUGF0Y2gqKgoKT2theSwgc28gSSYjMzk7bSBsb29raW5nIGF0IGEgcGF0Y2ggaGVyZSwgYW5kIGl0IHNlZW1zIHRvIGJlIHRvdWNoaW5nIHRoZSBgY3R1Y2FuZmRfYmFzZS5jYCBmaWxlIGluIHRoZSBgZHJpdmVycy9uZXQvY2FuL2N0dWNhbmZkYCBkaXJlY3RvcnkuIFNwZWNpZmljYWxseSwgaXQgbG9va3MgbGlrZSB0aGVyZSYjMzk7cyBhIG1vZGlmaWNhdGlvbiB0byBob3cgdGhlIGRyaXZlciBoYW5kbGVzIGBDQU5fQ1RSTE1PREVfUFJFU1VNRV9BQ0tgIHdpdGhpbiB0aGUgYGN0dWNhbl9zZXRfbW9kZWAgZnVuY3Rpb24uIE15IGluaXRpYWwgdGhvdWdodCBpcyB0byBpbW1lZGlhdGVseSB6b29tIGluIG9uIHRoYXQgZnVuY3Rpb24uIFRoaXMgaXMgY3JpdGljYWwuCgpUaGUgY2hhbmdlIGZsYWdzIHNvbWV0aGluZyBpbnRlcmVzdGluZyBoZXJlLiBJbnN0ZWFkIG9mIHNldHRpbmcgYFJFR19NT0RFX0FDRmAsIHRoaXMgcGF0Y2ggaXMgbm93IHNldHRpbmcgYFJFR19NT0RFX1NUTWAuIEkgbmVlZCB0byBmaWd1cmUgb3V0IHRoZSBpbXBsaWNhdGlvbnMgb2YgdGhpcyBuZXcgc2V0dGluZy4gSSBuZWVkIHRvIHVuZGVyc3RhbmQgd2hhdCB0aGVzZSByZWdpc3RlciBzZXR0aW5ncyByZXByZXNlbnQgYW5kIGhvdyB0aGV5IHJlbGF0ZSB0byB0aGUgdW5kZXJseWluZyBDQU4gcHJvdG9jb2wgYW5kIGhhcmR3YXJlIGJlaGF2aW9yLiBNeSBtZW50YWwgY2hlY2tsaXN0IGtpY2tzIGluOiB3aGF0JiMzOTtzIHRoZSB0eXBpY2FsIGhhcmR3YXJlIGFyY2hpdGVjdHVyZSBvZiB0aGlzIGNvbnRyb2xsZXI/IFdoYXQgYXJlIHRoZSBpbXBsaWNhdGlvbnMgaW4gdGltaW5nPyBXaGF0IGNvcm5lciBjYXNlcyBjb3VsZCB0aGlzIHBhdGNoIGV4cG9zZT8gSXMgdGhlIGRvY3VtZW50YXRpb24gY29tcGxldGU/IEkgbmVlZCB0byBhbmFseXplIHRoaXMgY2hhbmdlIHRvIGVuc3VyZSBiYWNrd2FyZHMgY29tcGF0aWJpbGl0eSBhbmQgcGVyZm9ybWFuY2UgaW1wcm92ZW1lbnRzIG9yIHJlZ3Jlc3Npb25zLCBhbmQgZmluZCBpZiBhbnkgb3RoZXIgZnVuY3Rpb25hbGl0aWVzIGFyZSBpbmRpcmVjdGx5IGFmZmVjdGVkLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjQvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzIzIDIxOjQ2PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O2N0dWNhbl9zZXRfbW9kZSYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L2Nhbi9jdHVjYW5mZC9jdHVjYW5mZF9iYXNlLmMmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvY2FuL2N0dWNhbmZkL2N0dWNhbmZkX2Jhc2UuYz0yOTA9c3RhdGljIGludCBjdHVjYW5fc2V0X3NlY29uZGFyeV9zYW1wbGVfcG9pbnQoc3RydWN0IG5ldF9kZXZpY2UgKm5kZXYpXG4tLVxuZHJpdmVycy9uZXQvY2FuL2N0dWNhbmZkL2N0dWNhbmZkX2Jhc2UuYy0zMjEtLyoqXG5kcml2ZXJzL25ldC9jYW4vY3R1Y2FuZmQvY3R1Y2FuZmRfYmFzZS5jOjMyMjogKiBjdHVjYW5fc2V0X21vZGUoKSAtIFNldHMgQ1RVIENBTiBGRHMgbW9kZVxuZHJpdmVycy9uZXQvY2FuL2N0dWNhbmZkL2N0dWNhbmZkX2Jhc2UuYy0zMjMtICogQHByaXY6XHRQb2ludGVyIHRvIHByaXZhdGUgZGF0YVxuLS1cbmRyaXZlcnMvbmV0L2Nhbi9jdHVjYW5mZC9jdHVjYW5mZF9iYXNlLmMtMzI1LSAqL1xuZHJpdmVycy9uZXQvY2FuL2N0dWNhbmZkL2N0dWNhbmZkX2Jhc2UuYzozMjY6c3RhdGljIHZvaWQgY3R1Y2FuX3NldF9tb2RlKHN0cnVjdCBjdHVjYW5fcHJpdiAqcHJpdiwgY29uc3Qgc3RydWN0IGNhbl9jdHJsbW9kZSAqbW9kZSlcbmRyaXZlcnMvbmV0L2Nhbi9jdHVjYW5mZC9jdHVjYW5mZF9iYXNlLmMtMzI3LXtcbi0tXG5kcml2ZXJzL25ldC9jYW4vY3R1Y2FuZmQvY3R1Y2FuZmRfYmFzZS5jPTM3NT1zdGF0aWMgaW50IGN0dWNhbl9jaGlwX3N0YXJ0KHN0cnVjdCBuZXRfZGV2aWNlICpuZGV2KVxuLS1cbmRyaXZlcnMvbmV0L2Nhbi9jdHVjYW5mZC9jdHVjYW5mZF9iYXNlLmMtNDAzLVx0bW9kZS5tYXNrID0gMHhGRkZGRkZGRjtcbmRyaXZlcnMvbmV0L2Nhbi9jdHVjYW5mZC9jdHVjYW5mZF9iYXNlLmM6NDA0Olx0Y3R1Y2FuX3NldF9tb2RlKHByaXYsIFx1MDAyNm1vZGUpO1xuZHJpdmVycy9uZXQvY2FuL2N0dWNhbmZkL2N0dWNhbmZkX2Jhc2UuYy00MDUtXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+NS8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjMgMjE6NDY8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMjgxMwoJCQkJCQkJb3V0cHV0OiA0MAoJCQkJCQkJdGhvdWdodHM6IDM2CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Pa2F5LCBoZXJlJiMzOTtzIG15IGludGVycHJldGF0aW9uIG9mIHRob3NlIHRob3VnaHRzLCBmcmFtZWQgYXMgbXkgb3duOgoKKipBbmFseXppbmcgYGN0dWNhbl9zZXRfbW9kZWAgd2l0aGluIHRoZSBDb250ZXh0IG9mIERyaXZlciBJbml0aWFsaXphdGlvbioqCgpBbHJpZ2h0LCBzbyB0aGUgYGN0dWNhbl9zZXRfbW9kZWAgZnVuY3Rpb24gaXMgYmVpbmcgY2FsbGVkIGRpcmVjdGx5IGZyb20gYGN0dWNhbl9jaGlwX3N0YXJ0YC4gSW50ZXJlc3RpbmcuIFRoYXQgbWVhbnMgaXQmIzM5O3MgYSBrZXkgcGFydCBvZiB0aGUgQ0FOIGNvbnRyb2xsZXImIzM5O3MgaW5pdGlhbGl6YXRpb24gc2VxdWVuY2UuIEkgbmVlZCB0byB1bmRlcnN0YW5kIHdoYXQgc3BlY2lmaWMgY29uZmlndXJhdGlvbnMgYXJlICpyZXF1aXJlZCogZm9yIHRoaXMgZHJpdmVyIGJlZm9yZSBkaWdnaW5nIHRvbyBkZWVwLiBLbm93aW5nIHRoaXMgd2lsbCBjbGFyaWZ5IGhvdyBgY3R1Y2FuX3NldF9tb2RlYCBmYWN0b3JzIGluIGFuZCB3aGF0IGRlcGVuZGVuY2llcyBpdCBtaWdodCBoYXZlLiBUaGlzIGlzIHdoZXJlIEkgc3RhcnQgdG8gZm9ybSBteSBtZW50YWwgbW9kZWwgb2YgdGhlIGRyaXZlciYjMzk7cyBzZXR1cCBwaGFzZS4gV2hhdCByZWdpc3RlcnMgYXJlIHdlIGhpdHRpbmcsIGFuZCB3aGF0IHZhbHVlcyBhcmUgZXhwZWN0ZWQ/IFRpbWUgdG8gcHVsbCB1cCB0aGUgcmVsZXZhbnQgZG9jdW1lbnRhdGlvbiBhbmQgY29kZSBhbmQgYmVnaW4gdG8gY29ubmVjdCB0aGUgZG90cy4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD42LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yMyAyMTo0NjwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtjb25maWcgQ0FOX0NUVUNBTkZEJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvY2FuL2N0dWNhbmZkL0tjb25maWcmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvY2FuL2N0dWNhbmZkL0tjb25maWc6MTpjb25maWcgQ0FOX0NUVUNBTkZEXG5kcml2ZXJzL25ldC9jYW4vY3R1Y2FuZmQvS2NvbmZpZy0yLVx0dHJpc3RhdGUgXCYjMzQ7Q1RVIENBTi1GRCBJUCBjb3JlXCYjMzQ7IGlmIENPTVBJTEVfVEVTVFxuLS1cbmRyaXZlcnMvbmV0L2Nhbi9jdHVjYW5mZC9LY29uZmlnLTEzLVxuZHJpdmVycy9uZXQvY2FuL2N0dWNhbmZkL0tjb25maWc6MTQ6Y29uZmlnIENBTl9DVFVDQU5GRF9QQ0lcbmRyaXZlcnMvbmV0L2Nhbi9jdHVjYW5mZC9LY29uZmlnLTE1LVx0dHJpc3RhdGUgXCYjMzQ7Q1RVIENBTi1GRCBJUCBjb3JlIFBDSS9QQ0llIGRyaXZlclwmIzM0O1xuLS1cbmRyaXZlcnMvbmV0L2Nhbi9jdHVjYW5mZC9LY29uZmlnLTIzLVxuZHJpdmVycy9uZXQvY2FuL2N0dWNhbmZkL0tjb25maWc6MjQ6Y29uZmlnIENBTl9DVFVDQU5GRF9QTEFURk9STVxuZHJpdmVycy9uZXQvY2FuL2N0dWNhbmZkL0tjb25maWctMjUtXHR0cmlzdGF0ZSBcJiMzNDtDVFUgQ0FOLUZEIElQIGNvcmUgcGxhdGZvcm0gKEZQR0EsIFNvQykgZHJpdmVyXCYjMzQ7XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Ny8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjMgMjE6NDY8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMzMwMgoJCQkJCQkJb3V0cHV0OiAzNwoJCQkJCQkJdGhvdWdodHM6IDE1MAoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipBbmFseXppbmcgdGhlIFBvdGVudGlhbCBmb3IgRnV6emluZyB0aGlzIENBTiBEcml2ZXIqKgoKT2theSwgc28gSSYjMzk7bSBsb29raW5nIGF0IHRoZXNlIGNvbmZpZ3VyYXRpb25zOiBgQ0FOX0NUVUNBTkZEYCwgYENBTl9DVFVDQU5GRF9QQ0lgLCBhbmQgYENBTl9DVFVDQU5GRF9QTEFURk9STWAuIFRoZSBxdWVzdGlvbiBpcywgY2FuIEkgZ2V0IHRvIHRoaXMgZHJpdmVyIGFuZCwgbW9yZSBpbXBvcnRhbnRseSwgY2FuIEkgZnV6eiBpdD8gV2VsbCwgQ0FOIGRyaXZlcnMgYXJlIGdlbmVyYWxseSByZWFjaGFibGUsIHJpZ2h0PyBUaHJvdWdoIG5ldGxpbmsgKHNwZWNpZmljYWxseSBydG5ldGxpbmspIHdoZW4gY29uZmlndXJpbmcgQ0FOIGRldmljZXMuIFRoYXQmIzM5O3MgYSBnb29kIHN0YXJ0LiBBbmQgSSBrbm93IENBTiBkZXZpY2VzIHRoZW1zZWx2ZXMgY2FuIGJlIHNwdW4gdXAgdGhyb3VnaCBzb21ldGhpbmcgbGlrZSB2Y2FuLCBvciBwb3RlbnRpYWxseSB0aGlzIGRyaXZlciBjb3VsZCBiZSBicm91Z2h0IGluIHZpYSBQQ0kgb3IgcGxhdGZvcm0uIEhtbSwgdmNhbiBpcyB2aXJ0dWFsLi4uYnV0IHRoaXMgaXMgYWJvdXQgYSAqcmVhbCogaGFyZHdhcmUgZHJpdmVyLiBTbywgaXMgZnV6emluZyBhIHJlYWxpc3RpYyBwb3NzaWJpbGl0eT8KCklmIGl04oCZcyBhIFBDSSBkcml2ZXIsIHRoZW4geWVzISBTeXprYWxsZXIgaGFzIFBDSSBmdXp6aW5nIHN1cHBvcnQsIHNvIHRoYXTigJlzIGEgZGlyZWN0IHBhdGguIElmIGl04oCZcyBhIHBsYXRmb3JtIGRyaXZlciwgaXQgbWlnaHQgYmUgdHJpY2tpZXIuIEl0IG1pZ2h0IG5vdCBiZSBhcyBzdHJhaWdodGZvcndhcmQsIGJ1dCBQQ0kgaXMgZGVmaW5pdGVseSBhIHN1cHBvcnRlZCBwYXRoLCB3aGljaCBpcyBlbmNvdXJhZ2luZy4gTGV0IG1lIGNoZWNrIGlmIHRoZXJlIGlzIGEgUENJIElEIHRhYmxlIGFzc29jaWF0ZWQgd2l0aCBpdDsgdGhhdCBpcyBhIGdvb2Qgc2lnbiEKCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD44LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yMyAyMTo0NjwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtwY2lfZGV2aWNlX2lkJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvY2FuL2N0dWNhbmZkLyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtkcml2ZXJzL25ldC9jYW4vY3R1Y2FuZmQvY3R1Y2FuZmRfcGNpLmM9NzQ9c3RhdGljIGludCBjdHVjYW5fcGNpX3Byb2JlKHN0cnVjdCBwY2lfZGV2ICpwZGV2LFxuZHJpdmVycy9uZXQvY2FuL2N0dWNhbmZkL2N0dWNhbmZkX3BjaS5jOjc1Olx0XHRcdCAgICBjb25zdCBzdHJ1Y3QgcGNpX2RldmljZV9pZCAqZW50KVxuZHJpdmVycy9uZXQvY2FuL2N0dWNhbmZkL2N0dWNhbmZkX3BjaS5jLTc2LXtcbi0tXG5kcml2ZXJzL25ldC9jYW4vY3R1Y2FuZmQvY3R1Y2FuZmRfcGNpLmM9MjYyPXN0YXRpYyBTSU1QTEVfREVWX1BNX09QUyhjdHVjYW5fcGNpX3BtX29wcywgY3R1Y2FuX3N1c3BlbmQsIGN0dWNhbl9yZXN1bWUpO1xuZHJpdmVycy9uZXQvY2FuL2N0dWNhbmZkL2N0dWNhbmZkX3BjaS5jLTI2My1cbmRyaXZlcnMvbmV0L2Nhbi9jdHVjYW5mZC9jdHVjYW5mZF9wY2kuYzoyNjQ6c3RhdGljIGNvbnN0IHN0cnVjdCBwY2lfZGV2aWNlX2lkIGN0dWNhbl9wY2lfdGJsW10gPSB7XG5kcml2ZXJzL25ldC9jYW4vY3R1Y2FuZmQvY3R1Y2FuZmRfcGNpLmMtMjY1LVx0e1BDSV9ERVZJQ0VfREFUQShURURJQSwgQ1RVQ0FOX1ZFUjIxLFxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjkvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzIzIDIxOjQ2PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDQwMzEKCQkJCQkJCW91dHB1dDogMzgKCQkJCQkJCXRob3VnaHRzOiA5MAoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+T2theSwgaGVyZSYjMzk7cyBteSBhc3Nlc3NtZW50IG9mIHRoaXMgc2l0dWF0aW9uOgoKKipGdXp6aW5nIFRhcmdldCBBc3Nlc3NtZW50KioKCkFscmlnaHQsIGEgUENJIGRyaXZlciBpcyBjb25maXJtZWQgYXMgcHJlc2VudCwgdGhhdCYjMzk7cyBnb29kIG5ld3MuIFRoZSBwYXRjaCBzcGVjaWZpY2FsbHkgYWx0ZXJzIHRoZSBgY3R1Y2FuX3NldF9tb2RlYCBmdW5jdGlvbi4gVGhhdCBpbW1lZGlhdGVseSBtYWtlcyBtZSBjb25zaWRlciBmdXp6aW5nIHRoaXMuIEl0JiMzOTtzIGEgZnVuY3Rpb25hbCBjaGFuZ2Ugd2l0aGluIGEgZHJpdmVyLCBzbyB0aGVyZSYjMzk7cyBhIHN0cm9uZyBsaWtlbGlob29kIG9mIGV4cGxvaXRhYmxlIGlzc3VlcyBlbWVyZ2luZyBmcm9tIHRoZSBjaGFuZ2UuIE15IGZvY3VzIG5lZWRzIHRvIGJlIG9uIHRoZSBgY3R1Y2FuX3NldF9tb2RlYCBzeW1ib2wgaXRzZWxmLiBUbyBlbnN1cmUgSSBjYW4gYWN0dWFsbHkgZXhlY3V0ZSB0aGUgZHJpdmVyIEkmIzM5O2xsIG1ha2Ugc3VyZSB0byBoYXZlIGBDQU5fQ1RVQ0FORkRgIGFuZCBgQ0FOX0NUVUNBTkZEX1BDSWAgZW5hYmxlZCBkdXJpbmcgZnV6emluZy4gSSYjMzk7bGwgbmVlZCB0byBkb3VibGUtY2hlY2sgYGN0dWNhbl9zZXRfbW9kZWAgYmVmb3JlIEkgZ2V0IHN0YXJ0ZWQuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTAvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzIzIDIxOjQ2PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O2N0dWNhbl9zZXRfbW9kZSYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L2Nhbi9jdHVjYW5mZC8mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvY2FuL2N0dWNhbmZkL2N0dWNhbmZkX2Jhc2UuYz0yOTA9c3RhdGljIGludCBjdHVjYW5fc2V0X3NlY29uZGFyeV9zYW1wbGVfcG9pbnQoc3RydWN0IG5ldF9kZXZpY2UgKm5kZXYpXG4tLVxuZHJpdmVycy9uZXQvY2FuL2N0dWNhbmZkL2N0dWNhbmZkX2Jhc2UuYy0zMjEtLyoqXG5kcml2ZXJzL25ldC9jYW4vY3R1Y2FuZmQvY3R1Y2FuZmRfYmFzZS5jOjMyMjogKiBjdHVjYW5fc2V0X21vZGUoKSAtIFNldHMgQ1RVIENBTiBGRHMgbW9kZVxuZHJpdmVycy9uZXQvY2FuL2N0dWNhbmZkL2N0dWNhbmZkX2Jhc2UuYy0zMjMtICogQHByaXY6XHRQb2ludGVyIHRvIHByaXZhdGUgZGF0YVxuLS1cbmRyaXZlcnMvbmV0L2Nhbi9jdHVjYW5mZC9jdHVjYW5mZF9iYXNlLmMtMzI1LSAqL1xuZHJpdmVycy9uZXQvY2FuL2N0dWNhbmZkL2N0dWNhbmZkX2Jhc2UuYzozMjY6c3RhdGljIHZvaWQgY3R1Y2FuX3NldF9tb2RlKHN0cnVjdCBjdHVjYW5fcHJpdiAqcHJpdiwgY29uc3Qgc3RydWN0IGNhbl9jdHJsbW9kZSAqbW9kZSlcbmRyaXZlcnMvbmV0L2Nhbi9jdHVjYW5mZC9jdHVjYW5mZF9iYXNlLmMtMzI3LXtcbi0tXG5kcml2ZXJzL25ldC9jYW4vY3R1Y2FuZmQvY3R1Y2FuZmRfYmFzZS5jPTM3NT1zdGF0aWMgaW50IGN0dWNhbl9jaGlwX3N0YXJ0KHN0cnVjdCBuZXRfZGV2aWNlICpuZGV2KVxuLS1cbmRyaXZlcnMvbmV0L2Nhbi9jdHVjYW5mZC9jdHVjYW5mZF9iYXNlLmMtNDAzLVx0bW9kZS5tYXNrID0gMHhGRkZGRkZGRjtcbmRyaXZlcnMvbmV0L2Nhbi9jdHVjYW5mZC9jdHVjYW5mZF9iYXNlLmM6NDA0Olx0Y3R1Y2FuX3NldF9tb2RlKHByaXYsIFx1MDAyNm1vZGUpO1xuZHJpdmVycy9uZXQvY2FuL2N0dWNhbmZkL2N0dWNhbmZkX2Jhc2UuYy00MDUtXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTEvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzIzIDIxOjQ2PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDQ3NDIKCQkJCQkJCW91dHB1dDogMzgKCQkJCQkJCXRob3VnaHRzOiA1NAoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+T2theSwgbGV0JiMzOTtzIHNlZS4uLgoKKipBbmFseXppbmcgYGN0dWNhbl9zZXRfbW9kZWAgVXNhZ2UqKgoKQWxyaWdodCwgaGFuZyBvbi4gSSYjMzk7bSBqdXN0IHJlY2FsbGluZyB0aGF0IGBjdHVjYW5fc2V0X21vZGVgIGlzIGEgKnN0YXRpYyogZnVuY3Rpb24sIG1lYW5pbmcgaXQmIzM5O3MgZ290IGludGVybmFsIGxpbmthZ2UsIGFuZCBpdCYjMzk7cyBkZWZpbmVkIGluIGBjdHVjYW5mZF9iYXNlLmNgLiBUaGF0IG1ha2VzIG1lIHRoaW5rLi4uIHdoYXQmIzM5O3MgY2FsbGluZyBpdD8gSSBuZWVkIHRvIHVuZGVyc3RhbmQgaXRzIGNvbnRleHQuIExldCYjMzk7cyBzZWUuLi4gbGV0IG1lIGp1c3QgcXVpY2tseSBjaGVjayB0aGUgY3Jvc3MtcmVmZXJlbmNlcy4uLiBBaCwgaGVyZSB3ZSBnbyEgSXQgbG9va3MgbGlrZSBgY3R1Y2FuX2NoaXBfc3RhcnRgIGlzIHRoZSBvbmx5IGZ1bmN0aW9uIHRoYXQgYWN0dWFsbHkgY2FsbHMgYGN0dWNhbl9zZXRfbW9kZWAuIFRoYXQmIzM5O3MgZ29vZCB0byBrbm93OyBpdCBuYXJyb3dzIGRvd24gdGhlIHBsYWNlcyBJIG5lZWQgdG8gZm9jdXMgb24gd2hlbiB0cm91Ymxlc2hvb3Rpbmcgb3IgZXh0ZW5kaW5nIHRoaXMgQ0FOIGRyaXZlci4gSSBjYW4gY2xlYXJseSBzZWUgdGhlIGRlcGVuZGVuY3kgbm93LgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEyLzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yMyAyMTo0NjwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtjdHVjYW5fY2hpcF9zdGFydCYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L2Nhbi9jdHVjYW5mZC8mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvY2FuL2N0dWNhbmZkL2N0dWNhbmZkX2Jhc2UuYz0zMjY9c3RhdGljIHZvaWQgY3R1Y2FuX3NldF9tb2RlKHN0cnVjdCBjdHVjYW5fcHJpdiAqcHJpdiwgY29uc3Qgc3RydWN0IGNhbl9jdHJsbW9kZSAqbW9kZSlcbi0tXG5kcml2ZXJzL25ldC9jYW4vY3R1Y2FuZmQvY3R1Y2FuZmRfYmFzZS5jLTM2NC0vKipcbmRyaXZlcnMvbmV0L2Nhbi9jdHVjYW5mZC9jdHVjYW5mZF9iYXNlLmM6MzY1OiAqIGN0dWNhbl9jaGlwX3N0YXJ0KCkgLSBUaGlzIHJvdXRpbmUgc3RhcnRzIHRoZSBkcml2ZXJcbmRyaXZlcnMvbmV0L2Nhbi9jdHVjYW5mZC9jdHVjYW5mZF9iYXNlLmMtMzY2LSAqIEBuZGV2Olx0UG9pbnRlciB0byBuZXRfZGV2aWNlIHN0cnVjdHVyZVxuLS1cbmRyaXZlcnMvbmV0L2Nhbi9jdHVjYW5mZC9jdHVjYW5mZF9iYXNlLmMtMzc0LSAqL1xuZHJpdmVycy9uZXQvY2FuL2N0dWNhbmZkL2N0dWNhbmZkX2Jhc2UuYzozNzU6c3RhdGljIGludCBjdHVjYW5fY2hpcF9zdGFydChzdHJ1Y3QgbmV0X2RldmljZSAqbmRldilcbmRyaXZlcnMvbmV0L2Nhbi9jdHVjYW5mZC9jdHVjYW5mZF9iYXNlLmMtMzc2LXtcbi0tXG5kcml2ZXJzL25ldC9jYW4vY3R1Y2FuZmQvY3R1Y2FuZmRfYmFzZS5jPTQ0ND1zdGF0aWMgaW50IGN0dWNhbl9kb19zZXRfbW9kZShzdHJ1Y3QgbmV0X2RldmljZSAqbmRldiwgZW51bSBjYW5fbW9kZSBtb2RlKVxuLS1cbmRyaXZlcnMvbmV0L2Nhbi9jdHVjYW5mZC9jdHVjYW5mZF9iYXNlLmMtNDUyLVx0XHRcdHJldHVybiByZXQ7XG5kcml2ZXJzL25ldC9jYW4vY3R1Y2FuZmQvY3R1Y2FuZmRfYmFzZS5jOjQ1MzpcdFx0cmV0ID0gY3R1Y2FuX2NoaXBfc3RhcnQobmRldik7XG5kcml2ZXJzL25ldC9jYW4vY3R1Y2FuZmQvY3R1Y2FuZmRfYmFzZS5jLTQ1NC1cdFx0aWYgKHJldCBcdTAwM2MgMCkge1xuZHJpdmVycy9uZXQvY2FuL2N0dWNhbmZkL2N0dWNhbmZkX2Jhc2UuYzo0NTU6XHRcdFx0bmV0ZGV2X2VycihuZGV2LCBcJiMzNDtjdHVjYW5fY2hpcF9zdGFydCBmYWlsZWQhXFxuXCYjMzQ7KTtcbmRyaXZlcnMvbmV0L2Nhbi9jdHVjYW5mZC9jdHVjYW5mZF9iYXNlLmMtNDU2LVx0XHRcdHJldHVybiByZXQ7XG4tLVxuZHJpdmVycy9uZXQvY2FuL2N0dWNhbmZkL2N0dWNhbmZkX2Jhc2UuYz0xMjAwPXN0YXRpYyBpbnQgY3R1Y2FuX29wZW4oc3RydWN0IG5ldF9kZXZpY2UgKm5kZXYpXG4tLVxuZHJpdmVycy9uZXQvY2FuL2N0dWNhbmZkL2N0dWNhbmZkX2Jhc2UuYy0xMjI5LVxuZHJpdmVycy9uZXQvY2FuL2N0dWNhbmZkL2N0dWNhbmZkX2Jhc2UuYzoxMjMwOlx0cmV0ID0gY3R1Y2FuX2NoaXBfc3RhcnQobmRldik7XG5kcml2ZXJzL25ldC9jYW4vY3R1Y2FuZmQvY3R1Y2FuZmRfYmFzZS5jLTEyMzEtXHRpZiAocmV0IFx1MDAzYyAwKSB7XG5kcml2ZXJzL25ldC9jYW4vY3R1Y2FuZmQvY3R1Y2FuZmRfYmFzZS5jOjEyMzI6XHRcdG5ldGRldl9lcnIobmRldiwgXCYjMzQ7Y3R1Y2FuX2NoaXBfc3RhcnQgZmFpbGVkIVxcblwmIzM0Oyk7XG5kcml2ZXJzL25ldC9jYW4vY3R1Y2FuZmQvY3R1Y2FuZmRfYmFzZS5jLTEyMzMtXHRcdGdvdG8gZXJyX2NoaXBfc3RhcnQ7XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTMvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzIzIDIxOjQ2PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDU3MzQKCQkJCQkJCW91dHB1dDogMTQzCgkJCQkJCQl0aG91Z2h0czogMTY4CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKk15IEZ1enppbmcgU3RyYXRlZ3kgZm9yIHRoZSBDVFUgQ0FOLUZEIERyaXZlcioqCgpPa2F5LCBzbyBgY3R1Y2FuX2NoaXBfc3RhcnRgIGlzIGRlZmluaXRlbHkgYSBrZXkgZW50cnkgcG9pbnQuIEkgc2VlIGl0JiMzOTtzIGNhbGxlZCBmcm9tIGJvdGggYGN0dWNhbl9vcGVuYCBhbmQgYGN0dWNhbl9kb19zZXRfbW9kZWAsIHdoaWNoIG1ha2VzIGl0IGEgY3JpdGljYWwgcGFydCBvZiB0aGUgaW5pdGlhbGl6YXRpb24gYW5kIG1vZGUtc2V0dGluZyBzZXF1ZW5jZS4gVGhpcyBpcyBnb29kIGJlY2F1c2UgaXQgc3VnZ2VzdHMgZ29vZCBjb3ZlcmFnZSBwb3RlbnRpYWwuCgpMZXQmIzM5O3MgbmFpbCBkb3duIHRoZSBmdXp6aW5nIHRhcmdldHMuIEJhc2VkIG9uIHRoZSBidWcgZml4LCBJJiMzOTttIGdvaW5nIHRvIG1hcmsgdGhpcyBhcyBXb3J0aEZ1enppbmc6IHRydWUuIFRoZSBmb2N1cyBoYXMgdG8gYmUgb24gYGN0dWNhbl9zZXRfbW9kZWAgYW5kLCBuYXR1cmFsbHksIHRoYXQgYGN0dWNhbl9jaGlwX3N0YXJ0YCBmdW5jdGlvbi4KClRvIGxldmVyYWdlIHRoaXMsIEkgbmVlZCB0byBlbmFibGUgdGhlIHJpZ2h0IGNvbmZpZ3VyYXRpb24gb3B0aW9ucywgYENBTl9DVFVDQU5GRGAgYW5kIGBDQU5fQ1RVQ0FORkRfUENJYC4gVGhlc2UgYXJlIHJlbGV2YW50IGFuZCBuZWVkIHRvIGJlIHNldCB0byBiZSBhYmxlIHRvIGhpdCB0aGUgY29kZS4KClRoZSByZWFzb25pbmcgaXMgY2xlYXI6IHRoZSBwYXRjaCBhZGRyZXNzZXMgYSBmdW5jdGlvbmFsIGJ1ZyBpbiBgY3R1Y2FuX3NldF9tb2RlYC4gU3BlY2lmaWNhbGx5LCB0aGUgZHJpdmVyJiMzOTtzIGhhbmRsaW5nIG9mIGBDQU5fQ1RSTE1PREVfUFJFU1VNRV9BQ0tgIHJlcXVpcmVzIGEgY2hhbmdlIGluIHRoZSByZWdpc3RlciBzZXR0aW5nIChmcm9tIGBSRUdfTU9ERV9BQ0ZgIHRvIGBSRUdfTU9ERV9TVE1gKS4gSXQmIzM5O3MgYSBmdW5kYW1lbnRhbCBjaGFuZ2UgaW4gaG93IHRoZSBDVFUgQ0FOLUZEIGRyaXZlciBvcGVyYXRlcywgbWFraW5nIGl0IGFuIGV4Y2VsbGVudCBhcmVhIGZvciBmdXp6aW5nLiBUaGlzIHNlZW1zIGxpa2UgYSBncmVhdCBjYW5kaWRhdGUgZm9yIGRldGVjdGluZyBzb21lIHN1YnRsZSBlcnJvcnMgaW4gaG93IHRoZSBkcml2ZXIgaGFuZGxlcyBkaWZmZXJlbnQgQ0FOLUZEIG1vZGVzLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjE0LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yMyAyMTo0NjwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPnNldC1yZXN1bHRzPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IFsKICAgICYjMzQ7Q0FOX0NUVUNBTkZEJiMzNDssCiAgICAmIzM0O0NBTl9DVFVDQU5GRF9QQ0kmIzM0OwogIF0sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogWwogICAgJiMzNDtjdHVjYW5fc2V0X21vZGUmIzM0OywKICAgICYjMzQ7Y3R1Y2FuX2NoaXBfc3RhcnQmIzM0OwogIF0sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggZml4ZXMgYSBidWcgaW4gYGN0dWNhbl9zZXRfbW9kZWAgd2hlcmUgYFJFR19NT0RFX1NUTWAgc2hvdWxkIGJlIHNldCBpbnN0ZWFkIG9mIGBSRUdfTU9ERV9BQ0ZgIHdoZW4gYENBTl9DVFJMTU9ERV9QUkVTVU1FX0FDS2AgaXMgZW5hYmxlZC4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIGluIHRoZSBDVFUgQ0FOLUZEIGRyaXZlciwgcmVhY2hhYmxlIHZpYSBuZXRsaW5rL0NBTiBjb25maWd1cmF0aW9uLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IHRydWUKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogWwogICAgJiMzNDtDQU5fQ1RVQ0FORkQmIzM0OywKICAgICYjMzQ7Q0FOX0NUVUNBTkZEX1BDSSYjMzQ7CiAgXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbCiAgICAmIzM0O2N0dWNhbl9zZXRfbW9kZSYjMzQ7LAogICAgJiMzNDtjdHVjYW5fY2hpcF9zdGFydCYjMzQ7CiAgXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBmaXhlcyBhIGJ1ZyBpbiBgY3R1Y2FuX3NldF9tb2RlYCB3aGVyZSBgUkVHX01PREVfU1RNYCBzaG91bGQgYmUgc2V0IGluc3RlYWQgb2YgYFJFR19NT0RFX0FDRmAgd2hlbiBgQ0FOX0NUUkxNT0RFX1BSRVNVTUVfQUNLYCBpcyBlbmFibGVkLiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgaW4gdGhlIENUVSBDQU4tRkQgZHJpdmVyLCByZWFjaGFibGUgdmlhIG5ldGxpbmsvQ0FOIGNvbmZpZ3VyYXRpb24uJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogdHJ1ZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPC90Ym9keT4KCTwvdGFibGU+CgoJPGRpdiBpZD0ibGxtX3N1bW1hcnlfdGFibGVfZGl2IiBzdHlsZT0ibWFyZ2luOiAyMHB4IDA7Ij4KCQk8dGFibGUgY2xhc3M9Imxpc3RfdGFibGUiPgoJCQk8Y2FwdGlvbj5MTE0gQ2FsbHMgU3VtbWFyeTo8L2NhcHRpb24+CgkJCTx0aGVhZD4KCQkJCTx0cj4KCQkJCQk8dGg+VG90YWwgQ2FsbHM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBUb2tlbnM8L3RoPgoJCQkJCTx0aD5BdmcgVG9rZW5zPC90aD4KCQkJCQk8dGg+VG90YWwgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCQk8dGg+QXZnIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQk8L3RyPgoJCQk8L3RoZWFkPgoJCQk8dGJvZHkgaWQ9ImxsbV9zdW1tYXJ5X3N0YXRzX2JvZHkiPjwvdGJvZHk+CgkJPC90YWJsZT4KCTwvZGl2PgoKCTxkaXYgaWQ9InRvb2xfc3VtbWFyeV90YWJsZV9kaXYiIHN0eWxlPSJtYXJnaW46IDIwcHggMDsiPgoJCTx0YWJsZSBjbGFzcz0ibGlzdF90YWJsZSI+CgkJCTxjYXB0aW9uPlRvb2wgQ2FsbHMgU3VtbWFyeTo8L2NhcHRpb24+CgkJCTx0aGVhZD4KCQkJCTx0cj4KCQkJCQk8dGg+VG90YWwgQ2FsbHM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJCTx0aD5BdmcgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCTwvdHI+CgkJCTwvdGhlYWQ+CgkJCTx0Ym9keSBpZD0idG9vbF9zdW1tYXJ5X3N0YXRzX2JvZHkiPjwvdGJvZHk+CgkJPC90YWJsZT4KCTwvZGl2PgoKCTxkaXYgaWQ9ImR1cmF0aW9uX2NoYXJ0X2RpdiIgc3R5bGU9IndpZHRoOiAxMDAlOyBtYXJnaW46IDIwcHggMDsgYm9yZGVyOiAxcHg7Ij48L2Rpdj4KCTxkaXYgaWQ9InRva2VuX2NoYXJ0X2RpdiIgc3R5bGU9IndpZHRoOiAxMDAlOyBtYXJnaW46IDIwcHggMDsgYm9yZGVyOiAxcHg7Ij48L2Rpdj4KCgk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJodHRwczovL3d3dy5nb29nbGUuY29tL2pzYXBpIj48L3NjcmlwdD4KCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KCQlnb29nbGUubG9hZCgidmlzdWFsaXphdGlvbiIsICIxIiwge3BhY2thZ2VzOlsiY29yZWNoYXJ0Il19KTsKCQlnb29nbGUuc2V0T25Mb2FkQ2FsbGJhY2soZHJhd0NoYXJ0cyk7CgoJCWZ1bmN0aW9uIGRyYXdDaGFydHMoKSB7CgkJCWNvbnN0IHJhd0RhdGEgPSBbeyJTdGFydGVkIjoiMjAyNi0wNy0yM1QyMTo0NjoxMi4xODQyODkyNjlaIiwiU2VxIjowLCJOZXN0aW5nIjowLCJUeXBlIjoiZmxvdyIsIk5hbWUiOiJwYXRjaC10cmlhZ2UiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoyNjkzMzkzNTU4MywiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXG4gICAgXCJDQU5fQ1RVQ0FORkRcIixcbiAgICBcIkNBTl9DVFVDQU5GRF9QQ0lcIlxuICBdLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXG4gICAgXCJjdHVjYW5fc2V0X21vZGVcIixcbiAgICBcImN0dWNhbl9jaGlwX3N0YXJ0XCJcbiAgXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggZml4ZXMgYSBidWcgaW4gYGN0dWNhbl9zZXRfbW9kZWAgd2hlcmUgYFJFR19NT0RFX1NUTWAgc2hvdWxkIGJlIHNldCBpbnN0ZWFkIG9mIGBSRUdfTU9ERV9BQ0ZgIHdoZW4gYENBTl9DVFJMTU9ERV9QUkVTVU1FX0FDS2AgaXMgZW5hYmxlZC4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIGluIHRoZSBDVFUgQ0FOLUZEIGRyaXZlciwgcmVhY2hhYmxlIHZpYSBuZXRsaW5rL0NBTiBjb25maWd1cmF0aW9uLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiB0cnVlXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0yM1QyMTo0NjoxMi4xODQyOTQ3MjlaIiwiU2VxIjoxLCJOZXN0aW5nIjoxLCJUeXBlIjoiYWN0aW9uIiwiTmFtZSI6InJlYWQtcGF0Y2gtZGlmZiIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjM3MDUyODcyOSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiUGF0Y2hEaWZmXCI6IFwiY29tbWl0IGFmNzE2YjYyYjQ3NzIyMzI0NGE1Y2FlZjEyYmQ3NTM3ZjI1Y2IzNjlcXG5BdXRob3I6IHN5ei1jbHVzdGVyIFxcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVxcdTAwM2VcXG5EYXRlOiAgIFRodSBKdWwgMjMgMjE6NDY6MTAgMjAyNiArMDAwMFxcblxcbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcXG5cXG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvY2FuL2N0dWNhbmZkL2N0dWNhbmZkX2Jhc2UuYyBiL2RyaXZlcnMvbmV0L2Nhbi9jdHVjYW5mZC9jdHVjYW5mZF9iYXNlLmNcXG5pbmRleCAwZWExZmYyOGRmY2U4Yi4uOGUwYTYwNmYyYzg0ZWEgMTAwNjQ0XFxuLS0tIGEvZHJpdmVycy9uZXQvY2FuL2N0dWNhbmZkL2N0dWNhbmZkX2Jhc2UuY1xcbisrKyBiL2RyaXZlcnMvbmV0L2Nhbi9jdHVjYW5mZC9jdHVjYW5mZF9iYXNlLmNcXG5AQCAtMzQwLDggKzM0MCw4IEBAIHN0YXRpYyB2b2lkIGN0dWNhbl9zZXRfbW9kZShzdHJ1Y3QgY3R1Y2FuX3ByaXYgKnByaXYsIGNvbnN0IHN0cnVjdCBjYW5fY3RybG1vZGVcXG4gXFx0XFx0XFx0KG1vZGVfcmVnIFxcdTAwMjYgflJFR19NT0RFX0ZERSk7XFxuIFxcbiBcXHRtb2RlX3JlZyA9IChtb2RlLVxcdTAwM2VmbGFncyBcXHUwMDI2IENBTl9DVFJMTU9ERV9QUkVTVU1FX0FDSykgP1xcbi1cXHRcXHRcXHQobW9kZV9yZWcgfCBSRUdfTU9ERV9BQ0YpIDpcXG4tXFx0XFx0XFx0KG1vZGVfcmVnIFxcdTAwMjYgflJFR19NT0RFX0FDRik7XFxuK1xcdFxcdFxcdChtb2RlX3JlZyB8IFJFR19NT0RFX1NUTSkgOlxcbitcXHRcXHRcXHQobW9kZV9yZWcgXFx1MDAyNiB+UkVHX01PREVfU1RNKTtcXG4gXFxuIFxcdG1vZGVfcmVnID0gKG1vZGUtXFx1MDAzZWZsYWdzIFxcdTAwMjYgQ0FOX0NUUkxNT0RFX0ZEX05PTl9JU08pID9cXG4gXFx0XFx0XFx0KG1vZGVfcmVnIHwgUkVHX01PREVfTklTT0ZEKSA6XFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTIzVDIxOjQ2OjEyLjU1NTM3OTcxOFoiLCJTZXEiOjIsIk5lc3RpbmciOjEsIlR5cGUiOiJhZ2VudCIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImJlc3QtZXhwZW5zaXZlIiwiRHVyYXRpb24iOjI2NTYyODIzMjg0LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IFtcbiAgICBcIkNBTl9DVFVDQU5GRFwiLFxuICAgIFwiQ0FOX0NUVUNBTkZEX1BDSVwiXG4gIF0sXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtcbiAgICBcImN0dWNhbl9zZXRfbW9kZVwiLFxuICAgIFwiY3R1Y2FuX2NoaXBfc3RhcnRcIlxuICBdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBmaXhlcyBhIGJ1ZyBpbiBgY3R1Y2FuX3NldF9tb2RlYCB3aGVyZSBgUkVHX01PREVfU1RNYCBzaG91bGQgYmUgc2V0IGluc3RlYWQgb2YgYFJFR19NT0RFX0FDRmAgd2hlbiBgQ0FOX0NUUkxNT0RFX1BSRVNVTUVfQUNLYCBpcyBlbmFibGVkLiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgaW4gdGhlIENUVSBDQU4tRkQgZHJpdmVyLCByZWFjaGFibGUgdmlhIG5ldGxpbmsvQ0FOIGNvbmZpZ3VyYXRpb24uXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IHRydWVcbn0iLCJJbnN0cnVjdGlvbiI6IllvdSBhcmUgYW4gZXhwZXJ0IExpbnV4IGtlcm5lbCBtYWludGFpbmVyLlxuWW91ciBqb2IgaXMgdG8gcmV2aWV3IGEgcHJvdmlkZWQgcGF0Y2ggc2VyaWVzIGFuZCBkZXRlcm1pbmVcbmlmIGl0IG1ha2VzIGZ1bmN0aW9uYWwgY2hhbmdlcyB0byB0aGUga2VybmVsIHRoYXQgc2hvdWxkIGJlIGZ1enplZC5cblxuSU1QT1JUQU5UOiBUaGUgY2hhbmdlcyBoYXZlIEFMUkVBRFkgYmVlbiBhcHBsaWVkIGFuZCBjb21taXR0ZWQgYXMgdGhlIEhFQUQgY29tbWl0IGluXG55b3VyIHdvcmtzcGFjZS4gRG8gTk9UIHJlbHkgb24geW91ciBpbnRlcm5hbCBrbm93bGVkZ2Ugb2YgdGhlIGtlcm5lbC4gWW91IG11c3QgYWN0aXZlbHlcbnVzZSB5b3VyIGNvZGUgYWNjZXNzIHRvb2xzIHRvIGV4YW1pbmUgdGhlIGFjdHVhbCBzb3VyY2UgY29kZSBhbmQgY29uZmlybSBhbnkgYXNzdW1wdGlvbnMuXG5cblJldHVybiBXb3J0aEZ1enppbmc9ZmFsc2UgaWYgdGhlIHBhdGNoIG9ubHkgY29udGFpbnM6XG4tIE1vZGlmaWNhdGlvbnMgdG8gRG9jdW1lbnRhdGlvbi8sIEtjb25maWcgZmlsZXMsIG9yIGNvZGUgY29tbWVudHMuXG4tIFB1cmVseSBkZWNvcmF0aXZlIGNoYW5nZXMsIHN1Y2ggYXMgbG9nZ2luZyAoZS5nLiwgcHJfZXJyLCBwcmludGspIG9yIHRyYWNlcG9pbnRzLlxuLSBDaGFuZ2VzIHRvIG51bWVyaWMgY29uc3RhbnRzIG9yIG1hY3JvcyB0aGF0IGRvIG5vdCBmdW5jdGlvbmFsbHkgYWx0ZXIgZXhlY3V0aW9uIGZsb3cuXG4tIENvZGUgcGF0aHMgdGhhdCBhcmUgaW1wb3NzaWJsZSB0byByZWFjaCBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBHQ0Ugb3IgUUVNVSxcbmV2ZW4gd2hlbiB1dGlsaXppbmcgc29mdHdhcmUtZW11bGF0ZWQgaGFyZHdhcmUgKGUuZy4sIHVzYiBnYWRnZXQsIG1hYzgwMjExX2h3c2ltKS5cblxuSWYgaXQgbW9kaWZpZXMgcmVhY2hhYmxlIGNvcmUga2VybmVsIGxvZ2ljLCBkcml2ZXJzLCBvciBhcmNoaXRlY3R1cmVzLCB1c2UgeW91ciBjb2RlIHNlYXJjaFxudG9vbHMgdG8gdmVyaWZ5IHRoZSBjb2RlIGNhbiBiZSBleGVjdXRlZCwgdGhlbiByZXR1cm4gV29ydGhGdXp6aW5nPXRydWUuXG5cbldoZW4gcmV0dXJuaW5nIFdvcnRoRnV6emluZz10cnVlLCB5b3UgTVVTVCBBTFNPOlxuMS4gRXh0cmFjdCBhbnkgc3BlY2lmaWMga2VybmVsIGZ1bmN0aW9ucyB0aGF0IHNob3VsZCBiZSBoZWF2aWx5IGZ1enplZCBpbnRvIEZvY3VzU3ltYm9scy5cbiAgIEF2b2lkIGxpc3RpbmcgZ2VuZXJpYyBob3QtcGF0aCBmdW5jdGlvbnMgdG8gcHJldmVudCBza2V3ZWQgdGVzdCBkaXN0cmlidXRpb25zLlxuMi4gSWRlbnRpZnkgYW55IHNwZWNpZmljIENPTkZJR18gb3B0aW9ucyByZXF1aXJlZCB0byBwcm9wZXJseSB0ZXN0IHRoaXMgbmV3L21vZGlmaWVkIGZlYXR1cmUuXG4gICBHbyBhbmQgbG9vayBpbnRvIHRoZSBLY29uZmlnIGZpbGVzIGFuZCBjaGVjayBmb3IgaWZkZWZzIGFyb3VuZCB0aGUgY29kZSwgZG8gbm90IG1ha2UgYXNzdW1wdGlvbnMuXG4gICBEbyBub3QgbGlzdCB0b28gZ2VuZXJpYyBjb25maWdzICh3ZSBhbHJlYWR5IGhhdmUgdGhlbSBlbmFibGVkKS4gT25seSBsaXN0IHRob3NlIHRoYXRcbiAgIHNwZWNpZmljYWxseSBjb3ZlciB0aGUgbW9kaWZpZWQgY29kZS4gTGlzdCB0aGVtIGluIHRoZSBFbmFibGVDb25maWdzIG91dHB1dCBhcnJheSxcbiAgIGFuZCBETyBOT1QgYWRkIGEgJ0NPTkZJR18nIHByZWZpeCAoZS5nLiwgcmV0dXJuIFwiTkVUX0lQVjRcIiBpbnN0ZWFkIG9mIFwiQ09ORklHX05FVF9JUFY0XCIpLlxuUHJlZmVyIGNhbGxpbmcgc2V2ZXJhbCB0b29scyBhdCB0aGUgc2FtZSB0aW1lIHRvIHNhdmUgcm91bmQtdHJpcHMuXG5cblxuVXNlIHNldC1yZXN1bHRzIHRvb2wgdG8gcHJvdmlkZSByZXN1bHRzIG9mIHRoZSBhbmFseXNpcy5cbkl0IG11c3QgYmUgY2FsbGVkIGV4YWN0bHkgb25jZSBiZWZvcmUgdGhlIGZpbmFsIHJlcGx5LlxuSWdub3JlIHJlc3VsdHMgb2YgdGhpcyB0b29sLlxuIiwiUHJvbXB0IjoiRm9yIHlvdXIgY29udmVuaWVuY2UsIGhlcmUgaXMgdGhlIGRpZmYgb2YgdGhlIGNoYW5nZXM6XG5jb21taXQgYWY3MTZiNjJiNDc3MjIzMjQ0YTVjYWVmMTJiZDc1MzdmMjVjYjM2OVxuQXV0aG9yOiBzeXotY2x1c3RlciBcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVx1MDAzZVxuRGF0ZTogICBUaHUgSnVsIDIzIDIxOjQ2OjEwIDIwMjYgKzAwMDBcblxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xuXG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvY2FuL2N0dWNhbmZkL2N0dWNhbmZkX2Jhc2UuYyBiL2RyaXZlcnMvbmV0L2Nhbi9jdHVjYW5mZC9jdHVjYW5mZF9iYXNlLmNcbmluZGV4IDBlYTFmZjI4ZGZjZThiLi44ZTBhNjA2ZjJjODRlYSAxMDA2NDRcbi0tLSBhL2RyaXZlcnMvbmV0L2Nhbi9jdHVjYW5mZC9jdHVjYW5mZF9iYXNlLmNcbisrKyBiL2RyaXZlcnMvbmV0L2Nhbi9jdHVjYW5mZC9jdHVjYW5mZF9iYXNlLmNcbkBAIC0zNDAsOCArMzQwLDggQEAgc3RhdGljIHZvaWQgY3R1Y2FuX3NldF9tb2RlKHN0cnVjdCBjdHVjYW5fcHJpdiAqcHJpdiwgY29uc3Qgc3RydWN0IGNhbl9jdHJsbW9kZVxuIFx0XHRcdChtb2RlX3JlZyBcdTAwMjYgflJFR19NT0RFX0ZERSk7XG4gXG4gXHRtb2RlX3JlZyA9IChtb2RlLVx1MDAzZWZsYWdzIFx1MDAyNiBDQU5fQ1RSTE1PREVfUFJFU1VNRV9BQ0spID9cbi1cdFx0XHQobW9kZV9yZWcgfCBSRUdfTU9ERV9BQ0YpIDpcbi1cdFx0XHQobW9kZV9yZWcgXHUwMDI2IH5SRUdfTU9ERV9BQ0YpO1xuK1x0XHRcdChtb2RlX3JlZyB8IFJFR19NT0RFX1NUTSkgOlxuK1x0XHRcdChtb2RlX3JlZyBcdTAwMjYgflJFR19NT0RFX1NUTSk7XG4gXG4gXHRtb2RlX3JlZyA9IChtb2RlLVx1MDAzZWZsYWdzIFx1MDAyNiBDQU5fQ1RSTE1PREVfRkRfTk9OX0lTTykgP1xuIFx0XHRcdChtb2RlX3JlZyB8IFJFR19NT0RFX05JU09GRCkgOlxuIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMjNUMjE6NDY6MTIuNTU1MzgxMjQ4WiIsIlNlcSI6MywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6Mzk4NDU1NTk3MCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipBbmFseXppbmcgdGhlIENUVUNBTkZEIERyaXZlciBQYXRjaCoqXG5cbk9rYXksIHNvIEknbSBsb29raW5nIGF0IGEgcGF0Y2ggaGVyZSwgYW5kIGl0IHNlZW1zIHRvIGJlIHRvdWNoaW5nIHRoZSBgY3R1Y2FuZmRfYmFzZS5jYCBmaWxlIGluIHRoZSBgZHJpdmVycy9uZXQvY2FuL2N0dWNhbmZkYCBkaXJlY3RvcnkuIFNwZWNpZmljYWxseSwgaXQgbG9va3MgbGlrZSB0aGVyZSdzIGEgbW9kaWZpY2F0aW9uIHRvIGhvdyB0aGUgZHJpdmVyIGhhbmRsZXMgYENBTl9DVFJMTU9ERV9QUkVTVU1FX0FDS2Agd2l0aGluIHRoZSBgY3R1Y2FuX3NldF9tb2RlYCBmdW5jdGlvbi4gTXkgaW5pdGlhbCB0aG91Z2h0IGlzIHRvIGltbWVkaWF0ZWx5IHpvb20gaW4gb24gdGhhdCBmdW5jdGlvbi4gVGhpcyBpcyBjcml0aWNhbC5cblxuVGhlIGNoYW5nZSBmbGFncyBzb21ldGhpbmcgaW50ZXJlc3RpbmcgaGVyZS4gSW5zdGVhZCBvZiBzZXR0aW5nIGBSRUdfTU9ERV9BQ0ZgLCB0aGlzIHBhdGNoIGlzIG5vdyBzZXR0aW5nIGBSRUdfTU9ERV9TVE1gLiBJIG5lZWQgdG8gZmlndXJlIG91dCB0aGUgaW1wbGljYXRpb25zIG9mIHRoaXMgbmV3IHNldHRpbmcuIEkgbmVlZCB0byB1bmRlcnN0YW5kIHdoYXQgdGhlc2UgcmVnaXN0ZXIgc2V0dGluZ3MgcmVwcmVzZW50IGFuZCBob3cgdGhleSByZWxhdGUgdG8gdGhlIHVuZGVybHlpbmcgQ0FOIHByb3RvY29sIGFuZCBoYXJkd2FyZSBiZWhhdmlvci4gTXkgbWVudGFsIGNoZWNrbGlzdCBraWNrcyBpbjogd2hhdCdzIHRoZSB0eXBpY2FsIGhhcmR3YXJlIGFyY2hpdGVjdHVyZSBvZiB0aGlzIGNvbnRyb2xsZXI/IFdoYXQgYXJlIHRoZSBpbXBsaWNhdGlvbnMgaW4gdGltaW5nPyBXaGF0IGNvcm5lciBjYXNlcyBjb3VsZCB0aGlzIHBhdGNoIGV4cG9zZT8gSXMgdGhlIGRvY3VtZW50YXRpb24gY29tcGxldGU/IEkgbmVlZCB0byBhbmFseXplIHRoaXMgY2hhbmdlIHRvIGVuc3VyZSBiYWNrd2FyZHMgY29tcGF0aWJpbGl0eSBhbmQgcGVyZm9ybWFuY2UgaW1wcm92ZW1lbnRzIG9yIHJlZ3Jlc3Npb25zLCBhbmQgZmluZCBpZiBhbnkgb3RoZXIgZnVuY3Rpb25hbGl0aWVzIGFyZSBpbmRpcmVjdGx5IGFmZmVjdGVkLlxuXG5cbiIsIklucHV0VG9rZW5zIjoxOTk4LCJPdXRwdXRUb2tlbnMiOjQ2LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MTEyLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMjNUMjE6NDY6MTYuNTM5OTM5MDg5WiIsIlNlcSI6NCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjU1NjU1Njg4LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcImN0dWNhbl9zZXRfbW9kZVwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJkcml2ZXJzL25ldC9jYW4vY3R1Y2FuZmQvY3R1Y2FuZmRfYmFzZS5jXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImRyaXZlcnMvbmV0L2Nhbi9jdHVjYW5mZC9jdHVjYW5mZF9iYXNlLmM9MjkwPXN0YXRpYyBpbnQgY3R1Y2FuX3NldF9zZWNvbmRhcnlfc2FtcGxlX3BvaW50KHN0cnVjdCBuZXRfZGV2aWNlICpuZGV2KVxcbi0tXFxuZHJpdmVycy9uZXQvY2FuL2N0dWNhbmZkL2N0dWNhbmZkX2Jhc2UuYy0zMjEtLyoqXFxuZHJpdmVycy9uZXQvY2FuL2N0dWNhbmZkL2N0dWNhbmZkX2Jhc2UuYzozMjI6ICogY3R1Y2FuX3NldF9tb2RlKCkgLSBTZXRzIENUVSBDQU4gRkRzIG1vZGVcXG5kcml2ZXJzL25ldC9jYW4vY3R1Y2FuZmQvY3R1Y2FuZmRfYmFzZS5jLTMyMy0gKiBAcHJpdjpcXHRQb2ludGVyIHRvIHByaXZhdGUgZGF0YVxcbi0tXFxuZHJpdmVycy9uZXQvY2FuL2N0dWNhbmZkL2N0dWNhbmZkX2Jhc2UuYy0zMjUtICovXFxuZHJpdmVycy9uZXQvY2FuL2N0dWNhbmZkL2N0dWNhbmZkX2Jhc2UuYzozMjY6c3RhdGljIHZvaWQgY3R1Y2FuX3NldF9tb2RlKHN0cnVjdCBjdHVjYW5fcHJpdiAqcHJpdiwgY29uc3Qgc3RydWN0IGNhbl9jdHJsbW9kZSAqbW9kZSlcXG5kcml2ZXJzL25ldC9jYW4vY3R1Y2FuZmQvY3R1Y2FuZmRfYmFzZS5jLTMyNy17XFxuLS1cXG5kcml2ZXJzL25ldC9jYW4vY3R1Y2FuZmQvY3R1Y2FuZmRfYmFzZS5jPTM3NT1zdGF0aWMgaW50IGN0dWNhbl9jaGlwX3N0YXJ0KHN0cnVjdCBuZXRfZGV2aWNlICpuZGV2KVxcbi0tXFxuZHJpdmVycy9uZXQvY2FuL2N0dWNhbmZkL2N0dWNhbmZkX2Jhc2UuYy00MDMtXFx0bW9kZS5tYXNrID0gMHhGRkZGRkZGRjtcXG5kcml2ZXJzL25ldC9jYW4vY3R1Y2FuZmQvY3R1Y2FuZmRfYmFzZS5jOjQwNDpcXHRjdHVjYW5fc2V0X21vZGUocHJpdiwgXFx1MDAyNm1vZGUpO1xcbmRyaXZlcnMvbmV0L2Nhbi9jdHVjYW5mZC9jdHVjYW5mZF9iYXNlLmMtNDA1LVxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0yM1QyMTo0NjoxNi41OTU1OTk1MTdaIiwiU2VxIjo1LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjozMzYwNjI0NDA5LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJPa2F5LCBoZXJlJ3MgbXkgaW50ZXJwcmV0YXRpb24gb2YgdGhvc2UgdGhvdWdodHMsIGZyYW1lZCBhcyBteSBvd246XG5cbioqQW5hbHl6aW5nIGBjdHVjYW5fc2V0X21vZGVgIHdpdGhpbiB0aGUgQ29udGV4dCBvZiBEcml2ZXIgSW5pdGlhbGl6YXRpb24qKlxuXG5BbHJpZ2h0LCBzbyB0aGUgYGN0dWNhbl9zZXRfbW9kZWAgZnVuY3Rpb24gaXMgYmVpbmcgY2FsbGVkIGRpcmVjdGx5IGZyb20gYGN0dWNhbl9jaGlwX3N0YXJ0YC4gSW50ZXJlc3RpbmcuIFRoYXQgbWVhbnMgaXQncyBhIGtleSBwYXJ0IG9mIHRoZSBDQU4gY29udHJvbGxlcidzIGluaXRpYWxpemF0aW9uIHNlcXVlbmNlLiBJIG5lZWQgdG8gdW5kZXJzdGFuZCB3aGF0IHNwZWNpZmljIGNvbmZpZ3VyYXRpb25zIGFyZSAqcmVxdWlyZWQqIGZvciB0aGlzIGRyaXZlciBiZWZvcmUgZGlnZ2luZyB0b28gZGVlcC4gS25vd2luZyB0aGlzIHdpbGwgY2xhcmlmeSBob3cgYGN0dWNhbl9zZXRfbW9kZWAgZmFjdG9ycyBpbiBhbmQgd2hhdCBkZXBlbmRlbmNpZXMgaXQgbWlnaHQgaGF2ZS4gVGhpcyBpcyB3aGVyZSBJIHN0YXJ0IHRvIGZvcm0gbXkgbWVudGFsIG1vZGVsIG9mIHRoZSBkcml2ZXIncyBzZXR1cCBwaGFzZS4gV2hhdCByZWdpc3RlcnMgYXJlIHdlIGhpdHRpbmcsIGFuZCB3aGF0IHZhbHVlcyBhcmUgZXhwZWN0ZWQ/IFRpbWUgdG8gcHVsbCB1cCB0aGUgcmVsZXZhbnQgZG9jdW1lbnRhdGlvbiBhbmQgY29kZSBhbmQgYmVnaW4gdG8gY29ubmVjdCB0aGUgZG90cy5cblxuXG4iLCJJbnB1dFRva2VucyI6MjgxMywiT3V0cHV0VG9rZW5zIjo0MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjM2LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTIzVDIxOjQ2OjE5Ljk1NjIyNTY2NloiLCJTZXEiOjYsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo2MDUxNzMzOCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJjb25maWcgQ0FOX0NUVUNBTkZEXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvbmV0L2Nhbi9jdHVjYW5mZC9LY29uZmlnXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImRyaXZlcnMvbmV0L2Nhbi9jdHVjYW5mZC9LY29uZmlnOjE6Y29uZmlnIENBTl9DVFVDQU5GRFxcbmRyaXZlcnMvbmV0L2Nhbi9jdHVjYW5mZC9LY29uZmlnLTItXFx0dHJpc3RhdGUgXFxcIkNUVSBDQU4tRkQgSVAgY29yZVxcXCIgaWYgQ09NUElMRV9URVNUXFxuLS1cXG5kcml2ZXJzL25ldC9jYW4vY3R1Y2FuZmQvS2NvbmZpZy0xMy1cXG5kcml2ZXJzL25ldC9jYW4vY3R1Y2FuZmQvS2NvbmZpZzoxNDpjb25maWcgQ0FOX0NUVUNBTkZEX1BDSVxcbmRyaXZlcnMvbmV0L2Nhbi9jdHVjYW5mZC9LY29uZmlnLTE1LVxcdHRyaXN0YXRlIFxcXCJDVFUgQ0FOLUZEIElQIGNvcmUgUENJL1BDSWUgZHJpdmVyXFxcIlxcbi0tXFxuZHJpdmVycy9uZXQvY2FuL2N0dWNhbmZkL0tjb25maWctMjMtXFxuZHJpdmVycy9uZXQvY2FuL2N0dWNhbmZkL0tjb25maWc6MjQ6Y29uZmlnIENBTl9DVFVDQU5GRF9QTEFURk9STVxcbmRyaXZlcnMvbmV0L2Nhbi9jdHVjYW5mZC9LY29uZmlnLTI1LVxcdHRyaXN0YXRlIFxcXCJDVFUgQ0FOLUZEIElQIGNvcmUgcGxhdGZvcm0gKEZQR0EsIFNvQykgZHJpdmVyXFxcIlxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0yM1QyMTo0NjoyMC4wMTY3NTE5MTRaIiwiU2VxIjo3LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo0NTAyMzI4ODI1LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkFuYWx5emluZyB0aGUgUG90ZW50aWFsIGZvciBGdXp6aW5nIHRoaXMgQ0FOIERyaXZlcioqXG5cbk9rYXksIHNvIEknbSBsb29raW5nIGF0IHRoZXNlIGNvbmZpZ3VyYXRpb25zOiBgQ0FOX0NUVUNBTkZEYCwgYENBTl9DVFVDQU5GRF9QQ0lgLCBhbmQgYENBTl9DVFVDQU5GRF9QTEFURk9STWAuIFRoZSBxdWVzdGlvbiBpcywgY2FuIEkgZ2V0IHRvIHRoaXMgZHJpdmVyIGFuZCwgbW9yZSBpbXBvcnRhbnRseSwgY2FuIEkgZnV6eiBpdD8gV2VsbCwgQ0FOIGRyaXZlcnMgYXJlIGdlbmVyYWxseSByZWFjaGFibGUsIHJpZ2h0PyBUaHJvdWdoIG5ldGxpbmsgKHNwZWNpZmljYWxseSBydG5ldGxpbmspIHdoZW4gY29uZmlndXJpbmcgQ0FOIGRldmljZXMuIFRoYXQncyBhIGdvb2Qgc3RhcnQuIEFuZCBJIGtub3cgQ0FOIGRldmljZXMgdGhlbXNlbHZlcyBjYW4gYmUgc3B1biB1cCB0aHJvdWdoIHNvbWV0aGluZyBsaWtlIHZjYW4sIG9yIHBvdGVudGlhbGx5IHRoaXMgZHJpdmVyIGNvdWxkIGJlIGJyb3VnaHQgaW4gdmlhIFBDSSBvciBwbGF0Zm9ybS4gSG1tLCB2Y2FuIGlzIHZpcnR1YWwuLi5idXQgdGhpcyBpcyBhYm91dCBhICpyZWFsKiBoYXJkd2FyZSBkcml2ZXIuIFNvLCBpcyBmdXp6aW5nIGEgcmVhbGlzdGljIHBvc3NpYmlsaXR5P1xuXG5JZiBpdOKAmXMgYSBQQ0kgZHJpdmVyLCB0aGVuIHllcyEgU3l6a2FsbGVyIGhhcyBQQ0kgZnV6emluZyBzdXBwb3J0LCBzbyB0aGF04oCZcyBhIGRpcmVjdCBwYXRoLiBJZiBpdOKAmXMgYSBwbGF0Zm9ybSBkcml2ZXIsIGl0IG1pZ2h0IGJlIHRyaWNraWVyLiBJdCBtaWdodCBub3QgYmUgYXMgc3RyYWlnaHRmb3J3YXJkLCBidXQgUENJIGlzIGRlZmluaXRlbHkgYSBzdXBwb3J0ZWQgcGF0aCwgd2hpY2ggaXMgZW5jb3VyYWdpbmcuIExldCBtZSBjaGVjayBpZiB0aGVyZSBpcyBhIFBDSSBJRCB0YWJsZSBhc3NvY2lhdGVkIHdpdGggaXQ7IHRoYXQgaXMgYSBnb29kIHNpZ24hXG5cblxuIiwiSW5wdXRUb2tlbnMiOjMzMDIsIk91dHB1dFRva2VucyI6MzcsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoxNTAsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDctMjNUMjE6NDY6MjQuNTE5MDgyNTA5WiIsIlNlcSI6OCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjM3NDUwMDUxOSwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJwY2lfZGV2aWNlX2lkXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvbmV0L2Nhbi9jdHVjYW5mZC9cIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiZHJpdmVycy9uZXQvY2FuL2N0dWNhbmZkL2N0dWNhbmZkX3BjaS5jPTc0PXN0YXRpYyBpbnQgY3R1Y2FuX3BjaV9wcm9iZShzdHJ1Y3QgcGNpX2RldiAqcGRldixcXG5kcml2ZXJzL25ldC9jYW4vY3R1Y2FuZmQvY3R1Y2FuZmRfcGNpLmM6NzU6XFx0XFx0XFx0ICAgIGNvbnN0IHN0cnVjdCBwY2lfZGV2aWNlX2lkICplbnQpXFxuZHJpdmVycy9uZXQvY2FuL2N0dWNhbmZkL2N0dWNhbmZkX3BjaS5jLTc2LXtcXG4tLVxcbmRyaXZlcnMvbmV0L2Nhbi9jdHVjYW5mZC9jdHVjYW5mZF9wY2kuYz0yNjI9c3RhdGljIFNJTVBMRV9ERVZfUE1fT1BTKGN0dWNhbl9wY2lfcG1fb3BzLCBjdHVjYW5fc3VzcGVuZCwgY3R1Y2FuX3Jlc3VtZSk7XFxuZHJpdmVycy9uZXQvY2FuL2N0dWNhbmZkL2N0dWNhbmZkX3BjaS5jLTI2My1cXG5kcml2ZXJzL25ldC9jYW4vY3R1Y2FuZmQvY3R1Y2FuZmRfcGNpLmM6MjY0OnN0YXRpYyBjb25zdCBzdHJ1Y3QgcGNpX2RldmljZV9pZCBjdHVjYW5fcGNpX3RibFtdID0ge1xcbmRyaXZlcnMvbmV0L2Nhbi9jdHVjYW5mZC9jdHVjYW5mZF9wY2kuYy0yNjUtXFx0e1BDSV9ERVZJQ0VfREFUQShURURJQSwgQ1RVQ0FOX1ZFUjIxLFxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0yM1QyMTo0NjoyNC44OTM1ODc0OThaIiwiU2VxIjo5LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjozMjc4NDAyMTkyLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJPa2F5LCBoZXJlJ3MgbXkgYXNzZXNzbWVudCBvZiB0aGlzIHNpdHVhdGlvbjpcblxuKipGdXp6aW5nIFRhcmdldCBBc3Nlc3NtZW50KipcblxuQWxyaWdodCwgYSBQQ0kgZHJpdmVyIGlzIGNvbmZpcm1lZCBhcyBwcmVzZW50LCB0aGF0J3MgZ29vZCBuZXdzLiBUaGUgcGF0Y2ggc3BlY2lmaWNhbGx5IGFsdGVycyB0aGUgYGN0dWNhbl9zZXRfbW9kZWAgZnVuY3Rpb24uIFRoYXQgaW1tZWRpYXRlbHkgbWFrZXMgbWUgY29uc2lkZXIgZnV6emluZyB0aGlzLiBJdCdzIGEgZnVuY3Rpb25hbCBjaGFuZ2Ugd2l0aGluIGEgZHJpdmVyLCBzbyB0aGVyZSdzIGEgc3Ryb25nIGxpa2VsaWhvb2Qgb2YgZXhwbG9pdGFibGUgaXNzdWVzIGVtZXJnaW5nIGZyb20gdGhlIGNoYW5nZS4gTXkgZm9jdXMgbmVlZHMgdG8gYmUgb24gdGhlIGBjdHVjYW5fc2V0X21vZGVgIHN5bWJvbCBpdHNlbGYuIFRvIGVuc3VyZSBJIGNhbiBhY3R1YWxseSBleGVjdXRlIHRoZSBkcml2ZXIgSSdsbCBtYWtlIHN1cmUgdG8gaGF2ZSBgQ0FOX0NUVUNBTkZEYCBhbmQgYENBTl9DVFVDQU5GRF9QQ0lgIGVuYWJsZWQgZHVyaW5nIGZ1enppbmcuIEknbGwgbmVlZCB0byBkb3VibGUtY2hlY2sgYGN0dWNhbl9zZXRfbW9kZWAgYmVmb3JlIEkgZ2V0IHN0YXJ0ZWQuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjQwMzEsIk91dHB1dFRva2VucyI6MzgsIk91dHB1dFRob3VnaHRzVG9rZW5zIjo5MCwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0yM1QyMTo0NjoyOC4xNzE5OTE5NFoiLCJTZXEiOjEwLCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NTcxOTE3MjgsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiY3R1Y2FuX3NldF9tb2RlXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvbmV0L2Nhbi9jdHVjYW5mZC9cIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiZHJpdmVycy9uZXQvY2FuL2N0dWNhbmZkL2N0dWNhbmZkX2Jhc2UuYz0yOTA9c3RhdGljIGludCBjdHVjYW5fc2V0X3NlY29uZGFyeV9zYW1wbGVfcG9pbnQoc3RydWN0IG5ldF9kZXZpY2UgKm5kZXYpXFxuLS1cXG5kcml2ZXJzL25ldC9jYW4vY3R1Y2FuZmQvY3R1Y2FuZmRfYmFzZS5jLTMyMS0vKipcXG5kcml2ZXJzL25ldC9jYW4vY3R1Y2FuZmQvY3R1Y2FuZmRfYmFzZS5jOjMyMjogKiBjdHVjYW5fc2V0X21vZGUoKSAtIFNldHMgQ1RVIENBTiBGRHMgbW9kZVxcbmRyaXZlcnMvbmV0L2Nhbi9jdHVjYW5mZC9jdHVjYW5mZF9iYXNlLmMtMzIzLSAqIEBwcml2OlxcdFBvaW50ZXIgdG8gcHJpdmF0ZSBkYXRhXFxuLS1cXG5kcml2ZXJzL25ldC9jYW4vY3R1Y2FuZmQvY3R1Y2FuZmRfYmFzZS5jLTMyNS0gKi9cXG5kcml2ZXJzL25ldC9jYW4vY3R1Y2FuZmQvY3R1Y2FuZmRfYmFzZS5jOjMyNjpzdGF0aWMgdm9pZCBjdHVjYW5fc2V0X21vZGUoc3RydWN0IGN0dWNhbl9wcml2ICpwcml2LCBjb25zdCBzdHJ1Y3QgY2FuX2N0cmxtb2RlICptb2RlKVxcbmRyaXZlcnMvbmV0L2Nhbi9jdHVjYW5mZC9jdHVjYW5mZF9iYXNlLmMtMzI3LXtcXG4tLVxcbmRyaXZlcnMvbmV0L2Nhbi9jdHVjYW5mZC9jdHVjYW5mZF9iYXNlLmM9Mzc1PXN0YXRpYyBpbnQgY3R1Y2FuX2NoaXBfc3RhcnQoc3RydWN0IG5ldF9kZXZpY2UgKm5kZXYpXFxuLS1cXG5kcml2ZXJzL25ldC9jYW4vY3R1Y2FuZmQvY3R1Y2FuZmRfYmFzZS5jLTQwMy1cXHRtb2RlLm1hc2sgPSAweEZGRkZGRkZGO1xcbmRyaXZlcnMvbmV0L2Nhbi9jdHVjYW5mZC9jdHVjYW5mZF9iYXNlLmM6NDA0OlxcdGN0dWNhbl9zZXRfbW9kZShwcml2LCBcXHUwMDI2bW9kZSk7XFxuZHJpdmVycy9uZXQvY2FuL2N0dWNhbmZkL2N0dWNhbmZkX2Jhc2UuYy00MDUtXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTIzVDIxOjQ2OjI4LjIyOTE5MjEzOFoiLCJTZXEiOjExLCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo0OTU3NTU2MDAxLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJPa2F5LCBsZXQncyBzZWUuLi5cblxuKipBbmFseXppbmcgYGN0dWNhbl9zZXRfbW9kZWAgVXNhZ2UqKlxuXG5BbHJpZ2h0LCBoYW5nIG9uLiBJJ20ganVzdCByZWNhbGxpbmcgdGhhdCBgY3R1Y2FuX3NldF9tb2RlYCBpcyBhICpzdGF0aWMqIGZ1bmN0aW9uLCBtZWFuaW5nIGl0J3MgZ290IGludGVybmFsIGxpbmthZ2UsIGFuZCBpdCdzIGRlZmluZWQgaW4gYGN0dWNhbmZkX2Jhc2UuY2AuIFRoYXQgbWFrZXMgbWUgdGhpbmsuLi4gd2hhdCdzIGNhbGxpbmcgaXQ/IEkgbmVlZCB0byB1bmRlcnN0YW5kIGl0cyBjb250ZXh0LiBMZXQncyBzZWUuLi4gbGV0IG1lIGp1c3QgcXVpY2tseSBjaGVjayB0aGUgY3Jvc3MtcmVmZXJlbmNlcy4uLiBBaCwgaGVyZSB3ZSBnbyEgSXQgbG9va3MgbGlrZSBgY3R1Y2FuX2NoaXBfc3RhcnRgIGlzIHRoZSBvbmx5IGZ1bmN0aW9uIHRoYXQgYWN0dWFsbHkgY2FsbHMgYGN0dWNhbl9zZXRfbW9kZWAuIFRoYXQncyBnb29kIHRvIGtub3c7IGl0IG5hcnJvd3MgZG93biB0aGUgcGxhY2VzIEkgbmVlZCB0byBmb2N1cyBvbiB3aGVuIHRyb3VibGVzaG9vdGluZyBvciBleHRlbmRpbmcgdGhpcyBDQU4gZHJpdmVyLiBJIGNhbiBjbGVhcmx5IHNlZSB0aGUgZGVwZW5kZW5jeSBub3cuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjQ3NDIsIk91dHB1dFRva2VucyI6MzgsIk91dHB1dFRob3VnaHRzVG9rZW5zIjo1NCwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0yM1QyMTo0NjozMy4xODY3NTExOTlaIiwiU2VxIjoxMiwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjE1NzQ2OTU0NSwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJjdHVjYW5fY2hpcF9zdGFydFwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJkcml2ZXJzL25ldC9jYW4vY3R1Y2FuZmQvXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImRyaXZlcnMvbmV0L2Nhbi9jdHVjYW5mZC9jdHVjYW5mZF9iYXNlLmM9MzI2PXN0YXRpYyB2b2lkIGN0dWNhbl9zZXRfbW9kZShzdHJ1Y3QgY3R1Y2FuX3ByaXYgKnByaXYsIGNvbnN0IHN0cnVjdCBjYW5fY3RybG1vZGUgKm1vZGUpXFxuLS1cXG5kcml2ZXJzL25ldC9jYW4vY3R1Y2FuZmQvY3R1Y2FuZmRfYmFzZS5jLTM2NC0vKipcXG5kcml2ZXJzL25ldC9jYW4vY3R1Y2FuZmQvY3R1Y2FuZmRfYmFzZS5jOjM2NTogKiBjdHVjYW5fY2hpcF9zdGFydCgpIC0gVGhpcyByb3V0aW5lIHN0YXJ0cyB0aGUgZHJpdmVyXFxuZHJpdmVycy9uZXQvY2FuL2N0dWNhbmZkL2N0dWNhbmZkX2Jhc2UuYy0zNjYtICogQG5kZXY6XFx0UG9pbnRlciB0byBuZXRfZGV2aWNlIHN0cnVjdHVyZVxcbi0tXFxuZHJpdmVycy9uZXQvY2FuL2N0dWNhbmZkL2N0dWNhbmZkX2Jhc2UuYy0zNzQtICovXFxuZHJpdmVycy9uZXQvY2FuL2N0dWNhbmZkL2N0dWNhbmZkX2Jhc2UuYzozNzU6c3RhdGljIGludCBjdHVjYW5fY2hpcF9zdGFydChzdHJ1Y3QgbmV0X2RldmljZSAqbmRldilcXG5kcml2ZXJzL25ldC9jYW4vY3R1Y2FuZmQvY3R1Y2FuZmRfYmFzZS5jLTM3Ni17XFxuLS1cXG5kcml2ZXJzL25ldC9jYW4vY3R1Y2FuZmQvY3R1Y2FuZmRfYmFzZS5jPTQ0ND1zdGF0aWMgaW50IGN0dWNhbl9kb19zZXRfbW9kZShzdHJ1Y3QgbmV0X2RldmljZSAqbmRldiwgZW51bSBjYW5fbW9kZSBtb2RlKVxcbi0tXFxuZHJpdmVycy9uZXQvY2FuL2N0dWNhbmZkL2N0dWNhbmZkX2Jhc2UuYy00NTItXFx0XFx0XFx0cmV0dXJuIHJldDtcXG5kcml2ZXJzL25ldC9jYW4vY3R1Y2FuZmQvY3R1Y2FuZmRfYmFzZS5jOjQ1MzpcXHRcXHRyZXQgPSBjdHVjYW5fY2hpcF9zdGFydChuZGV2KTtcXG5kcml2ZXJzL25ldC9jYW4vY3R1Y2FuZmQvY3R1Y2FuZmRfYmFzZS5jLTQ1NC1cXHRcXHRpZiAocmV0IFxcdTAwM2MgMCkge1xcbmRyaXZlcnMvbmV0L2Nhbi9jdHVjYW5mZC9jdHVjYW5mZF9iYXNlLmM6NDU1OlxcdFxcdFxcdG5ldGRldl9lcnIobmRldiwgXFxcImN0dWNhbl9jaGlwX3N0YXJ0IGZhaWxlZCFcXFxcblxcXCIpO1xcbmRyaXZlcnMvbmV0L2Nhbi9jdHVjYW5mZC9jdHVjYW5mZF9iYXNlLmMtNDU2LVxcdFxcdFxcdHJldHVybiByZXQ7XFxuLS1cXG5kcml2ZXJzL25ldC9jYW4vY3R1Y2FuZmQvY3R1Y2FuZmRfYmFzZS5jPTEyMDA9c3RhdGljIGludCBjdHVjYW5fb3BlbihzdHJ1Y3QgbmV0X2RldmljZSAqbmRldilcXG4tLVxcbmRyaXZlcnMvbmV0L2Nhbi9jdHVjYW5mZC9jdHVjYW5mZF9iYXNlLmMtMTIyOS1cXG5kcml2ZXJzL25ldC9jYW4vY3R1Y2FuZmQvY3R1Y2FuZmRfYmFzZS5jOjEyMzA6XFx0cmV0ID0gY3R1Y2FuX2NoaXBfc3RhcnQobmRldik7XFxuZHJpdmVycy9uZXQvY2FuL2N0dWNhbmZkL2N0dWNhbmZkX2Jhc2UuYy0xMjMxLVxcdGlmIChyZXQgXFx1MDAzYyAwKSB7XFxuZHJpdmVycy9uZXQvY2FuL2N0dWNhbmZkL2N0dWNhbmZkX2Jhc2UuYzoxMjMyOlxcdFxcdG5ldGRldl9lcnIobmRldiwgXFxcImN0dWNhbl9jaGlwX3N0YXJ0IGZhaWxlZCFcXFxcblxcXCIpO1xcbmRyaXZlcnMvbmV0L2Nhbi9jdHVjYW5mZC9jdHVjYW5mZF9iYXNlLmMtMTIzMy1cXHRcXHRnb3RvIGVycl9jaGlwX3N0YXJ0O1xcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0yM1QyMTo0NjozMy4zNDQyMjc0NTVaIiwiU2VxIjoxMywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NTU1MTk5MTUzMywiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipNeSBGdXp6aW5nIFN0cmF0ZWd5IGZvciB0aGUgQ1RVIENBTi1GRCBEcml2ZXIqKlxuXG5Pa2F5LCBzbyBgY3R1Y2FuX2NoaXBfc3RhcnRgIGlzIGRlZmluaXRlbHkgYSBrZXkgZW50cnkgcG9pbnQuIEkgc2VlIGl0J3MgY2FsbGVkIGZyb20gYm90aCBgY3R1Y2FuX29wZW5gIGFuZCBgY3R1Y2FuX2RvX3NldF9tb2RlYCwgd2hpY2ggbWFrZXMgaXQgYSBjcml0aWNhbCBwYXJ0IG9mIHRoZSBpbml0aWFsaXphdGlvbiBhbmQgbW9kZS1zZXR0aW5nIHNlcXVlbmNlLiBUaGlzIGlzIGdvb2QgYmVjYXVzZSBpdCBzdWdnZXN0cyBnb29kIGNvdmVyYWdlIHBvdGVudGlhbC5cblxuTGV0J3MgbmFpbCBkb3duIHRoZSBmdXp6aW5nIHRhcmdldHMuIEJhc2VkIG9uIHRoZSBidWcgZml4LCBJJ20gZ29pbmcgdG8gbWFyayB0aGlzIGFzIFdvcnRoRnV6emluZzogdHJ1ZS4gVGhlIGZvY3VzIGhhcyB0byBiZSBvbiBgY3R1Y2FuX3NldF9tb2RlYCBhbmQsIG5hdHVyYWxseSwgdGhhdCBgY3R1Y2FuX2NoaXBfc3RhcnRgIGZ1bmN0aW9uLlxuXG5UbyBsZXZlcmFnZSB0aGlzLCBJIG5lZWQgdG8gZW5hYmxlIHRoZSByaWdodCBjb25maWd1cmF0aW9uIG9wdGlvbnMsIGBDQU5fQ1RVQ0FORkRgIGFuZCBgQ0FOX0NUVUNBTkZEX1BDSWAuIFRoZXNlIGFyZSByZWxldmFudCBhbmQgbmVlZCB0byBiZSBzZXQgdG8gYmUgYWJsZSB0byBoaXQgdGhlIGNvZGUuXG5cblRoZSByZWFzb25pbmcgaXMgY2xlYXI6IHRoZSBwYXRjaCBhZGRyZXNzZXMgYSBmdW5jdGlvbmFsIGJ1ZyBpbiBgY3R1Y2FuX3NldF9tb2RlYC4gU3BlY2lmaWNhbGx5LCB0aGUgZHJpdmVyJ3MgaGFuZGxpbmcgb2YgYENBTl9DVFJMTU9ERV9QUkVTVU1FX0FDS2AgcmVxdWlyZXMgYSBjaGFuZ2UgaW4gdGhlIHJlZ2lzdGVyIHNldHRpbmcgKGZyb20gYFJFR19NT0RFX0FDRmAgdG8gYFJFR19NT0RFX1NUTWApLiBJdCdzIGEgZnVuZGFtZW50YWwgY2hhbmdlIGluIGhvdyB0aGUgQ1RVIENBTi1GRCBkcml2ZXIgb3BlcmF0ZXMsIG1ha2luZyBpdCBhbiBleGNlbGxlbnQgYXJlYSBmb3IgZnV6emluZy4gVGhpcyBzZWVtcyBsaWtlIGEgZ3JlYXQgY2FuZGlkYXRlIGZvciBkZXRlY3Rpbmcgc29tZSBzdWJ0bGUgZXJyb3JzIGluIGhvdyB0aGUgZHJpdmVyIGhhbmRsZXMgZGlmZmVyZW50IENBTi1GRCBtb2Rlcy5cblxuXG4iLCJJbnB1dFRva2VucyI6NTczNCwiT3V0cHV0VG9rZW5zIjoxNDMsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoxNjgsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDctMjNUMjE6NDY6MzguODk2MjIxNjc4WiIsIlNlcSI6MTQsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6InNldC1yZXN1bHRzIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MjIxOTc1Mzk0LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXG4gICAgXCJDQU5fQ1RVQ0FORkRcIixcbiAgICBcIkNBTl9DVFVDQU5GRF9QQ0lcIlxuICBdLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXG4gICAgXCJjdHVjYW5fc2V0X21vZGVcIixcbiAgICBcImN0dWNhbl9jaGlwX3N0YXJ0XCJcbiAgXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggZml4ZXMgYSBidWcgaW4gYGN0dWNhbl9zZXRfbW9kZWAgd2hlcmUgYFJFR19NT0RFX1NUTWAgc2hvdWxkIGJlIHNldCBpbnN0ZWFkIG9mIGBSRUdfTU9ERV9BQ0ZgIHdoZW4gYENBTl9DVFJMTU9ERV9QUkVTVU1FX0FDS2AgaXMgZW5hYmxlZC4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIGluIHRoZSBDVFUgQ0FOLUZEIGRyaXZlciwgcmVhY2hhYmxlIHZpYSBuZXRsaW5rL0NBTiBjb25maWd1cmF0aW9uLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiB0cnVlXG59IiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IFtcbiAgICBcIkNBTl9DVFVDQU5GRFwiLFxuICAgIFwiQ0FOX0NUVUNBTkZEX1BDSVwiXG4gIF0sXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtcbiAgICBcImN0dWNhbl9zZXRfbW9kZVwiLFxuICAgIFwiY3R1Y2FuX2NoaXBfc3RhcnRcIlxuICBdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBmaXhlcyBhIGJ1ZyBpbiBgY3R1Y2FuX3NldF9tb2RlYCB3aGVyZSBgUkVHX01PREVfU1RNYCBzaG91bGQgYmUgc2V0IGluc3RlYWQgb2YgYFJFR19NT0RFX0FDRmAgd2hlbiBgQ0FOX0NUUkxNT0RFX1BSRVNVTUVfQUNLYCBpcyBlbmFibGVkLiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgaW4gdGhlIENUVSBDQU4tRkQgZHJpdmVyLCByZWFjaGFibGUgdmlhIG5ldGxpbmsvQ0FOIGNvbmZpZ3VyYXRpb24uXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IHRydWVcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfV07CgkJCWlmICghcmF3RGF0YSB8fCByYXdEYXRhLmxlbmd0aCA9PT0gMCkgcmV0dXJuOwoKCQkJZHJhd1N1bW1hcnlUYWJsZXMocmF3RGF0YSk7CgkJCWRyYXdEdXJhdGlvbkNoYXJ0KHJhd0RhdGEpOwoJCQlkcmF3VG9rZW5Db25zdW1wdGlvbkNoYXJ0KHJhd0RhdGEpOwoJCX0KCgkJZnVuY3Rpb24gZHJhd1N1bW1hcnlUYWJsZXMocmF3RGF0YSkgewoJCQljb25zdCBzdGF0cyA9IHsKCQkJCWxsbTogeyBjb3VudDogMCwgdG9rZW5zOiAwLCBkdXJhdGlvbjogMCB9LAoJCQkJdG9vbDogeyBjb3VudDogMCwgZHVyYXRpb246IDAgfQoJCQl9OwoKCQkJcmF3RGF0YS5mb3JFYWNoKHMgPT4gewoJCQkJY29uc3QgZHVyID0gcy5EdXJhdGlvbiAvIDEwMDAwMDAwMDA7IAoJCQkJaWYgKHMuVHlwZSA9PT0gImxsbSIpIHsKCQkJCQlzdGF0cy5sbG0uY291bnQrKzsKCQkJCQlzdGF0cy5sbG0udG9rZW5zICs9IChzLklucHV0VG9rZW5zICsgcy5PdXRwdXRUb2tlbnMgKyBzLk91dHB1dFRob3VnaHRzVG9rZW5zKTsKCQkJCQlzdGF0cy5sbG0uZHVyYXRpb24gKz0gZHVyOwoJCQkJfSBlbHNlIGlmIChzLlR5cGUgPT09ICJ0b29sIikgewoJCQkJCXN0YXRzLnRvb2wuY291bnQrKzsKCQkJCQlzdGF0cy50b29sLmR1cmF0aW9uICs9IGR1cjsKCQkJCX0KCQkJfSk7CgoJCQljb25zdCBhdmdMbG1EdXIgPSBzdGF0cy5sbG0uY291bnQgPiAwID8gKHN0YXRzLmxsbS5kdXJhdGlvbiAvIHN0YXRzLmxsbS5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgkJCWNvbnN0IGF2Z0xsbVRva2VuID0gc3RhdHMubGxtLmNvdW50ID4gMCA/IChzdGF0cy5sbG0udG9rZW5zIC8gc3RhdHMubGxtLmNvdW50KS50b0ZpeGVkKDIpIDogMDsKCQkJY29uc3QgYXZnVG9vbER1ciA9IHN0YXRzLnRvb2wuY291bnQgPiAwID8gKHN0YXRzLnRvb2wuZHVyYXRpb24gLyBzdGF0cy50b29sLmNvdW50KS50b0ZpeGVkKDIpIDogMDsKCgkJCWNvbnN0IGxsbVN1bWFyeUNlbGxzID0gW3N0YXRzLmxsbS5jb3VudCwgc3RhdHMubGxtLnRva2VucywgYXZnTGxtVG9rZW4sIHN0YXRzLmxsbS5kdXJhdGlvbiwgYXZnTGxtRHVyXTsKCQkJY29uc3QgdG9vbFN1bW1hcnlDZWxscyA9IFtzdGF0cy50b29sLmNvdW50LCBzdGF0cy50b29sLmR1cmF0aW9uLCBhdmdUb29sRHVyXTsKCgkJCWNvbnN0IGxsbVN1bW1hcnlCb2R5ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2xsbV9zdW1tYXJ5X3N0YXRzX2JvZHknKTsKCQkJbGxtU3VtbWFyeUJvZHkuaW5uZXJIVE1MID0gIiI7CgkJCWNvbnN0IGxsbVRyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndHInKTsKCQkJbGxtU3VtYXJ5Q2VsbHMuZm9yRWFjaChjZWxsID0+IHsKCQkJCWNvbnN0IHRkID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndGQnKTsKCQkJCXRkLnRleHRDb250ZW50ID0gY2VsbDsKCQkJCWxsbVRyLmFwcGVuZENoaWxkKHRkKTsKCQkJfSk7CgkJCWxsbVN1bW1hcnlCb2R5LmFwcGVuZENoaWxkKGxsbVRyKTsKCgkJCWNvbnN0IHRvb2xTdW1tYXJ5Qm9keSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0b29sX3N1bW1hcnlfc3RhdHNfYm9keScpOwoJCQl0b29sU3VtbWFyeUJvZHkuaW5uZXJIVE1MID0gIiI7CgkJCWNvbnN0IHRvb2xUciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RyJyk7CgkJCXRvb2xTdW1tYXJ5Q2VsbHMuZm9yRWFjaChjZWxsID0+IHsKCQkJCWNvbnN0IHRkID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndGQnKTsKCQkJCXRkLnRleHRDb250ZW50ID0gY2VsbDsKCQkJCXRvb2xUci5hcHBlbmRDaGlsZCh0ZCk7CgkJCX0pOwoJCQl0b29sU3VtbWFyeUJvZHkuYXBwZW5kQ2hpbGQodG9vbFRyKTsKCQl9CgoJCWZ1bmN0aW9uIGRyYXdEdXJhdGlvbkNoYXJ0KHJhd0RhdGEpIHsKCQkJY29uc3QgZmlsdGVyZWRTdGVwcyA9IHJhd0RhdGEuZmlsdGVyKGQgPT4gWyJsbG0iLCAidG9vbCJdLmluY2x1ZGVzKGQuVHlwZSkpOwoJCQljb25zdCBkYXRhID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkRhdGFUYWJsZSgpOwoJCQlkYXRhLmFkZENvbHVtbignc3RyaW5nJywgJ1N0ZXAnKTsKCQkJZGF0YS5hZGRDb2x1bW4oJ251bWJlcicsICdEdXJhdGlvbicpOwoJCQlkYXRhLmFkZENvbHVtbih7dHlwZTogJ3N0cmluZycsIHJvbGU6ICd0b29sdGlwJ30pOyAKCgkJCWZpbHRlcmVkU3RlcHMuZm9yRWFjaChzID0+IHsKCQkJCQoJCQkJY29uc3QgZHVyID0gcy5EdXJhdGlvbiAvIDEwMDAwMDAwMDA7CgkJCQlsZXQgdG9vbHRpcCA9IHMuTmFtZTsKCQkJCWlmIChzLlR5cGUgPT09ICJsbG0iICYmIHMuVG9vbENhbGxzICYmIHMuVG9vbENhbGxzLmxlbmd0aCA+IDApIHsKCQkJCQl0b29sdGlwICs9IGBcblRvb2xzOiAke3MuVG9vbENhbGxzLmpvaW4oJywgJyl9YDsKCQkJCX0KCQkJCWRhdGEuYWRkUm93KFtgJHtzLlNlcX1gLCBkdXIsIHRvb2x0aXBdKTsKCQkJfSk7CgoJCQljb25zdCBvcHRpb25zID0gewoJCQkJdGl0bGU6ICdUaW1lIENvbnN1bXB0aW9uIG9mIExMTS9Ub29sIENhbGxzJywKCQkJCWhBeGlzOiB7CgkJCQkJdGl0bGU6ICdMTE0vVG9vbCBTdGVwcycsCgkJCQl9LAoJCQkJdkF4aXM6IHsgdGl0bGU6ICdTZWNvbmRzJyB9LAoJCQkJbGVnZW5kOiB7IHBvc2l0aW9uOiAnbm9uZScgfSwKCQkJCWJhcjogeyBncm91cFdpZHRoOiAnNzUlJyB9LAoJCQkJY2hhcnRBcmVhOiB7IHdpZHRoOiAnODUlJywgaGVpZ2h0OiAnNzAlJyB9LAoJCQkJaGVpZ2h0OiA0MDAKCQkJfTsKCgkJCWNvbnN0IGNoYXJ0ID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkNvbHVtbkNoYXJ0KGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdkdXJhdGlvbl9jaGFydF9kaXYnKSk7CgkJCWNoYXJ0LmRyYXcoZGF0YSwgb3B0aW9ucyk7CgkJfQoKCQlmdW5jdGlvbiBkcmF3VG9rZW5Db25zdW1wdGlvbkNoYXJ0KHJhd0RhdGEpIHsKCQkJY29uc3QgbGxtU3RlcHMgPSByYXdEYXRhLmZpbHRlcihkID0+IGQuVHlwZSA9PT0gImxsbSIpOwoJCQlpZiAobGxtU3RlcHMubGVuZ3RoID09PSAwKSByZXR1cm47CgoJCQljb25zdCBkYXRhID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkRhdGFUYWJsZSgpOwoJCQlkYXRhLmFkZENvbHVtbignc3RyaW5nJywgJ1N0ZXAnKTsJCQkKCQkJZGF0YS5hZGRDb2x1bW4oJ251bWJlcicsICdUb2tlbnMnKTsJCQkKCQkJZGF0YS5hZGRDb2x1bW4oe3R5cGU6ICdzdHJpbmcnLCByb2xlOiAnc3R5bGUnfSk7CQoJCQlkYXRhLmFkZENvbHVtbih7dHlwZTogJ3N0cmluZycsIHJvbGU6ICd0b29sdGlwJ30pOwkKCgkJCWNvbnN0IGFnZW50Q29sb3JzID0ge307CgkJCWNvbnN0IHBhbGV0dGUgPSBbJyM0Mjg1RjQnLCAnI0RCNDQzNycsICcjRjRCNDAwJywgJyMwRjlENTgnLCAnI0FCNDdCQycsICcjMDBBQ0MxJ107CgkJCWxldCBjb2xvcklkeCA9IDA7CgkJCWNvbnN0IGFnZW50TExNQ291bnRzID0ge307CgkJCWxsbVN0ZXBzLmZvckVhY2gocyA9PiB7CgkJCQlpZiAoIWFnZW50Q29sb3JzW3MuTmFtZV0pIHsKCQkJCQlhZ2VudENvbG9yc1tzLk5hbWVdID0gcGFsZXR0ZVtjb2xvcklkeCAlIHBhbGV0dGUubGVuZ3RoXTsKCQkJCQljb2xvcklkeCsrOwoJCQkJfQoKCQkJCWFnZW50TExNQ291bnRzW3MuTmFtZV0gPSAoYWdlbnRMTE1Db3VudHNbcy5OYW1lXSB8fCAwKSArIDE7CgkJCQljb25zdCBsYWJlbCA9IGAke3MuTmFtZX0tJHthZ2VudExMTUNvdW50c1tzLk5hbWVdfWA7CgkJCQljb25zdCB0b3RhbFRva2VucyA9IHMuSW5wdXRUb2tlbnMgKyBzLk91dHB1dFRva2VucyArIHMuT3V0cHV0VGhvdWdodHNUb2tlbnM7CgkJCQljb25zdCBzdHlsZSA9IGBjb2xvcjogJHthZ2VudENvbG9yc1tzLk5hbWVdfWA7CgkJCQlsZXQgdG9vbHRpcCA9IGBUb3RhbCBUb2tlbnM6ICR7dG90YWxUb2tlbnN9XG4oSW46ICR7cy5JbnB1dFRva2Vuc30sIE91dDogJHtzLk91dHB1dFRva2Vuc30sIFRob3VnaHRzOiAke3MuT3V0cHV0VGhvdWdodHNUb2tlbnN9KWA7CgkJCQlpZiAocy5Ub29sQ2FsbHMgJiYgcy5Ub29sQ2FsbHMubGVuZ3RoID4gMCkgewoJCQkJCXRvb2x0aXAgKz0gYFxuVG9vbHM6ICR7cy5Ub29sQ2FsbHMuam9pbignLCAnKX1gOwoJCQkJfQoKCQkJCWRhdGEuYWRkUm93KFtsYWJlbCwgdG90YWxUb2tlbnMsIHN0eWxlLCB0b29sdGlwXSk7CgkJCX0pOwoKCQkJY29uc3Qgb3B0aW9ucyA9IHsKCQkJCXRpdGxlOiAnVG9rZW4gQ29uc3VtcHRpb24gYnkgTExNIENhbGxzJywKCQkJCWhBeGlzOiB7CgkJCQkJdGl0bGU6ICdMTE0gQ2FsbCBTZXF1ZW5jZScsCgkJCQl9LAoJCQkJdkF4aXM6IHsgdGl0bGU6ICdDb25zdW1lZCBUb2tlbnMnIH0sCgkJCQlsZWdlbmQ6IHsgcG9zaXRpb246ICdub25lJyB9LAoJCQkJYmFyOiB7IGdyb3VwV2lkdGg6ICc3NSUnIH0sCgkJCQljaGFydEFyZWE6IHsgd2lkdGg6ICc4NSUnLCBoZWlnaHQ6ICc3MCUnIH0sCgkJCQloZWlnaHQ6IDQwMAoJCQl9OwoKCQkJY29uc3QgY2hhcnQgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uQ29sdW1uQ2hhcnQoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rva2VuX2NoYXJ0X2RpdicpKTsKCQkJY2hhcnQuZHJhdyhkYXRhLCBvcHRpb25zKTsKCQl9CgkJbGV0IGFsbEV4cGFuZGVkID0gZmFsc2U7CgkJZnVuY3Rpb24gdG9nZ2xlQWxsRGV0YWlscygpIHsKCQkJYWxsRXhwYW5kZWQgPSAhYWxsRXhwYW5kZWQ7CgkJCWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJ2RldGFpbHMnKS5mb3JFYWNoKGQgPT4gewoJCQkJaWYgKGFsbEV4cGFuZGVkKSBkLnNldEF0dHJpYnV0ZSgnb3BlbicsICcnKTsKCQkJCWVsc2UgZC5yZW1vdmVBdHRyaWJ1dGUoJ29wZW4nKTsKCQkJfSk7CgkJfQoJPC9zY3JpcHQ+CgoKPC9ib2R5Pgo8L2h0bWw+Cg==" },ValueFrom:&ValueFrom{Path:/output/result.json,JSONPath:,JQFilter:,Parameter:,Default:nil,Supplied:nil,Event:,Expression:,ConfigMapKeyRef:nil,},GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},Result:nil,ExitCode:*0,} --------- Name: series-workflow9pg7s[1] Phase: Succeeded StartedAt: 2026-07-23 21:46:51 +0000 UTC FinishedAt: 2026-07-23 21:46:51 +0000 UTC Input: nil Output: nil --------- Name: series-workflow9pg7s[1].abort-on-skip-outcome Phase: Skipped StartedAt: 2026-07-23 21:46:51 +0000 UTC FinishedAt: 2026-07-23 21:46:51 +0000 UTC Input: nil Output: nil --------- Name: series-workflow9pg7s[2] Phase: Succeeded StartedAt: 2026-07-23 21:46:51 +0000 UTC FinishedAt: 2026-07-24 00:14:53 +0000 UTC Input: nil Output: nil --------- Name: series-workflow9pg7s[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"bb0d96ebe5f4d1acccf4dc36ca7f01f9a8fa1ba1","config_name":"upstream-apparmor-kasan.config","enable_configs":["CAN_CTUCANFD","CAN_CTUCANFD_PCI"],"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":["ctucan_set_mode","ctucan_chip_start"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"bb0d96ebe5f4d1acccf4dc36ca7f01f9a8fa1ba1","config_name":"upstream-apparmor-kasan.config","enable_configs":["CAN_CTUCANFD","CAN_CTUCANFD_PCI"],"series_id":"3d8d6a98-19f0-4bb9-b27a-0920fcecd1cb","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN) Phase: Succeeded StartedAt: 2026-07-23 21:46:52 +0000 UTC FinishedAt: 2026-07-24 00:14:53 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:element,Default:nil,Value:*{"base":{"arch":"amd64","commit_hash":"bb0d96ebe5f4d1acccf4dc36ca7f01f9a8fa1ba1","config_name":"upstream-apparmor-kasan.config","enable_configs":["CAN_CTUCANFD","CAN_CTUCANFD_PCI"],"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":["ctucan_set_mode","ctucan_chip_start"],"skip_cover_check":false},"patched":{"arch":"amd64","commit_hash":"bb0d96ebe5f4d1acccf4dc36ca7f01f9a8fa1ba1","config_name":"upstream-apparmor-kasan.config","enable_configs":["CAN_CTUCANFD","CAN_CTUCANFD_PCI"],"series_id":"3d8d6a98-19f0-4bb9-b27a-0920fcecd1cb","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-workflow9pg7s[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"bb0d96ebe5f4d1acccf4dc36ca7f01f9a8fa1ba1","config_name":"upstream-apparmor-kasan.config","enable_configs":["CAN_CTUCANFD","CAN_CTUCANFD_PCI"],"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":["ctucan_set_mode","ctucan_chip_start"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"bb0d96ebe5f4d1acccf4dc36ca7f01f9a8fa1ba1","config_name":"upstream-apparmor-kasan.config","enable_configs":["CAN_CTUCANFD","CAN_CTUCANFD_PCI"],"series_id":"3d8d6a98-19f0-4bb9-b27a-0920fcecd1cb","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[0] Phase: Succeeded StartedAt: 2026-07-23 21:46:52 +0000 UTC FinishedAt: 2026-07-23 21:47:31 +0000 UTC Input: nil Output: nil --------- Name: series-workflow9pg7s[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"bb0d96ebe5f4d1acccf4dc36ca7f01f9a8fa1ba1","config_name":"upstream-apparmor-kasan.config","enable_configs":["CAN_CTUCANFD","CAN_CTUCANFD_PCI"],"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":["ctucan_set_mode","ctucan_chip_start"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"bb0d96ebe5f4d1acccf4dc36ca7f01f9a8fa1ba1","config_name":"upstream-apparmor-kasan.config","enable_configs":["CAN_CTUCANFD","CAN_CTUCANFD_PCI"],"series_id":"3d8d6a98-19f0-4bb9-b27a-0920fcecd1cb","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[0].save-base-req Phase: Succeeded StartedAt: 2026-07-23 21:46:52 +0000 UTC FinishedAt: 2026-07-23 21:47:13 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:data,Default:nil,Value:*{"arch":"amd64","commit_hash":"bb0d96ebe5f4d1acccf4dc36ca7f01f9a8fa1ba1","config_name":"upstream-apparmor-kasan.config","enable_configs":["CAN_CTUCANFD","CAN_CTUCANFD_PCI"],"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-workflow9pg7s/series-workflow9pg7s-convert-artifact-406856372/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflow9pg7s[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"bb0d96ebe5f4d1acccf4dc36ca7f01f9a8fa1ba1","config_name":"upstream-apparmor-kasan.config","enable_configs":["CAN_CTUCANFD","CAN_CTUCANFD_PCI"],"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":["ctucan_set_mode","ctucan_chip_start"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"bb0d96ebe5f4d1acccf4dc36ca7f01f9a8fa1ba1","config_name":"upstream-apparmor-kasan.config","enable_configs":["CAN_CTUCANFD","CAN_CTUCANFD_PCI"],"series_id":"3d8d6a98-19f0-4bb9-b27a-0920fcecd1cb","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[1] Phase: Succeeded StartedAt: 2026-07-23 21:47:31 +0000 UTC FinishedAt: 2026-07-23 22:29:25 +0000 UTC Input: nil Output: nil --------- Name: series-workflow9pg7s[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"bb0d96ebe5f4d1acccf4dc36ca7f01f9a8fa1ba1","config_name":"upstream-apparmor-kasan.config","enable_configs":["CAN_CTUCANFD","CAN_CTUCANFD_PCI"],"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":["ctucan_set_mode","ctucan_chip_start"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"bb0d96ebe5f4d1acccf4dc36ca7f01f9a8fa1ba1","config_name":"upstream-apparmor-kasan.config","enable_configs":["CAN_CTUCANFD","CAN_CTUCANFD_PCI"],"series_id":"3d8d6a98-19f0-4bb9-b27a-0920fcecd1cb","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[1].base-build Phase: Succeeded StartedAt: 2026-07-23 21:47:31 +0000 UTC FinishedAt: 2026-07-23 22:29:25 +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:*c84980ef-9700-4ac7-99ef-0f34255f9c16,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-workflow9pg7s/series-workflow9pg7s-convert-artifact-406856372/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": "5cfd8958-3449-4ba9-b5c6-a8ec9558e1c2", "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-workflow9pg7s/series-workflow9pg7s-build-action-1956894898/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflow9pg7s[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"bb0d96ebe5f4d1acccf4dc36ca7f01f9a8fa1ba1","config_name":"upstream-apparmor-kasan.config","enable_configs":["CAN_CTUCANFD","CAN_CTUCANFD_PCI"],"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":["ctucan_set_mode","ctucan_chip_start"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"bb0d96ebe5f4d1acccf4dc36ca7f01f9a8fa1ba1","config_name":"upstream-apparmor-kasan.config","enable_configs":["CAN_CTUCANFD","CAN_CTUCANFD_PCI"],"series_id":"3d8d6a98-19f0-4bb9-b27a-0920fcecd1cb","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[1].base-build(0) Phase: Succeeded StartedAt: 2026-07-23 21:47:32 +0000 UTC FinishedAt: 2026-07-23 22:29:15 +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:*c84980ef-9700-4ac7-99ef-0f34255f9c16,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-workflow9pg7s/series-workflow9pg7s-convert-artifact-406856372/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": "5cfd8958-3449-4ba9-b5c6-a8ec9558e1c2", "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-workflow9pg7s/series-workflow9pg7s-build-action-1956894898/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflow9pg7s[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"bb0d96ebe5f4d1acccf4dc36ca7f01f9a8fa1ba1","config_name":"upstream-apparmor-kasan.config","enable_configs":["CAN_CTUCANFD","CAN_CTUCANFD_PCI"],"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":["ctucan_set_mode","ctucan_chip_start"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"bb0d96ebe5f4d1acccf4dc36ca7f01f9a8fa1ba1","config_name":"upstream-apparmor-kasan.config","enable_configs":["CAN_CTUCANFD","CAN_CTUCANFD_PCI"],"series_id":"3d8d6a98-19f0-4bb9-b27a-0920fcecd1cb","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[2] Phase: Succeeded StartedAt: 2026-07-23 22:29:25 +0000 UTC FinishedAt: 2026-07-23 22:29:25 +0000 UTC Input: nil Output: nil --------- Name: series-workflow9pg7s[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"bb0d96ebe5f4d1acccf4dc36ca7f01f9a8fa1ba1","config_name":"upstream-apparmor-kasan.config","enable_configs":["CAN_CTUCANFD","CAN_CTUCANFD_PCI"],"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":["ctucan_set_mode","ctucan_chip_start"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"bb0d96ebe5f4d1acccf4dc36ca7f01f9a8fa1ba1","config_name":"upstream-apparmor-kasan.config","enable_configs":["CAN_CTUCANFD","CAN_CTUCANFD_PCI"],"series_id":"3d8d6a98-19f0-4bb9-b27a-0920fcecd1cb","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[2].abort-if-base-build-failed Phase: Skipped StartedAt: 2026-07-23 22:29:25 +0000 UTC FinishedAt: 2026-07-23 22:29:25 +0000 UTC Input: nil Output: nil --------- Name: series-workflow9pg7s[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"bb0d96ebe5f4d1acccf4dc36ca7f01f9a8fa1ba1","config_name":"upstream-apparmor-kasan.config","enable_configs":["CAN_CTUCANFD","CAN_CTUCANFD_PCI"],"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":["ctucan_set_mode","ctucan_chip_start"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"bb0d96ebe5f4d1acccf4dc36ca7f01f9a8fa1ba1","config_name":"upstream-apparmor-kasan.config","enable_configs":["CAN_CTUCANFD","CAN_CTUCANFD_PCI"],"series_id":"3d8d6a98-19f0-4bb9-b27a-0920fcecd1cb","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[3] Phase: Succeeded StartedAt: 2026-07-23 22:29:25 +0000 UTC FinishedAt: 2026-07-23 22:29:48 +0000 UTC Input: nil Output: nil --------- Name: series-workflow9pg7s[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"bb0d96ebe5f4d1acccf4dc36ca7f01f9a8fa1ba1","config_name":"upstream-apparmor-kasan.config","enable_configs":["CAN_CTUCANFD","CAN_CTUCANFD_PCI"],"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":["ctucan_set_mode","ctucan_chip_start"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"bb0d96ebe5f4d1acccf4dc36ca7f01f9a8fa1ba1","config_name":"upstream-apparmor-kasan.config","enable_configs":["CAN_CTUCANFD","CAN_CTUCANFD_PCI"],"series_id":"3d8d6a98-19f0-4bb9-b27a-0920fcecd1cb","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[3].save-patched-req Phase: Succeeded StartedAt: 2026-07-23 22:29:25 +0000 UTC FinishedAt: 2026-07-23 22:29:34 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:data,Default:nil,Value:*{"arch":"amd64","commit_hash":"bb0d96ebe5f4d1acccf4dc36ca7f01f9a8fa1ba1","config_name":"upstream-apparmor-kasan.config","enable_configs":["CAN_CTUCANFD","CAN_CTUCANFD_PCI"],"series_id":"3d8d6a98-19f0-4bb9-b27a-0920fcecd1cb","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-workflow9pg7s/series-workflow9pg7s-convert-artifact-1555681651/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflow9pg7s[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"bb0d96ebe5f4d1acccf4dc36ca7f01f9a8fa1ba1","config_name":"upstream-apparmor-kasan.config","enable_configs":["CAN_CTUCANFD","CAN_CTUCANFD_PCI"],"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":["ctucan_set_mode","ctucan_chip_start"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"bb0d96ebe5f4d1acccf4dc36ca7f01f9a8fa1ba1","config_name":"upstream-apparmor-kasan.config","enable_configs":["CAN_CTUCANFD","CAN_CTUCANFD_PCI"],"series_id":"3d8d6a98-19f0-4bb9-b27a-0920fcecd1cb","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[4] Phase: Succeeded StartedAt: 2026-07-23 22:29:48 +0000 UTC FinishedAt: 2026-07-23 22:31:56 +0000 UTC Input: nil Output: nil --------- Name: series-workflow9pg7s[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"bb0d96ebe5f4d1acccf4dc36ca7f01f9a8fa1ba1","config_name":"upstream-apparmor-kasan.config","enable_configs":["CAN_CTUCANFD","CAN_CTUCANFD_PCI"],"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":["ctucan_set_mode","ctucan_chip_start"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"bb0d96ebe5f4d1acccf4dc36ca7f01f9a8fa1ba1","config_name":"upstream-apparmor-kasan.config","enable_configs":["CAN_CTUCANFD","CAN_CTUCANFD_PCI"],"series_id":"3d8d6a98-19f0-4bb9-b27a-0920fcecd1cb","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[4].boot-test-base Phase: Succeeded StartedAt: 2026-07-23 22:29:48 +0000 UTC FinishedAt: 2026-07-23 22:31:46 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:base-build-id,Default:nil,Value:*5cfd8958-3449-4ba9-b5c6-a8ec9558e1c2,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-workflow9pg7s/series-workflow9pg7s-build-action-1956894898/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-workflow9pg7s[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"bb0d96ebe5f4d1acccf4dc36ca7f01f9a8fa1ba1","config_name":"upstream-apparmor-kasan.config","enable_configs":["CAN_CTUCANFD","CAN_CTUCANFD_PCI"],"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":["ctucan_set_mode","ctucan_chip_start"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"bb0d96ebe5f4d1acccf4dc36ca7f01f9a8fa1ba1","config_name":"upstream-apparmor-kasan.config","enable_configs":["CAN_CTUCANFD","CAN_CTUCANFD_PCI"],"series_id":"3d8d6a98-19f0-4bb9-b27a-0920fcecd1cb","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[5] Phase: Succeeded StartedAt: 2026-07-23 22:31:56 +0000 UTC FinishedAt: 2026-07-23 22:31:56 +0000 UTC Input: nil Output: nil --------- Name: series-workflow9pg7s[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"bb0d96ebe5f4d1acccf4dc36ca7f01f9a8fa1ba1","config_name":"upstream-apparmor-kasan.config","enable_configs":["CAN_CTUCANFD","CAN_CTUCANFD_PCI"],"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":["ctucan_set_mode","ctucan_chip_start"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"bb0d96ebe5f4d1acccf4dc36ca7f01f9a8fa1ba1","config_name":"upstream-apparmor-kasan.config","enable_configs":["CAN_CTUCANFD","CAN_CTUCANFD_PCI"],"series_id":"3d8d6a98-19f0-4bb9-b27a-0920fcecd1cb","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[5].abort-if-base-boot-failed Phase: Skipped StartedAt: 2026-07-23 22:31:56 +0000 UTC FinishedAt: 2026-07-23 22:31:56 +0000 UTC Input: nil Output: nil --------- Name: series-workflow9pg7s[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"bb0d96ebe5f4d1acccf4dc36ca7f01f9a8fa1ba1","config_name":"upstream-apparmor-kasan.config","enable_configs":["CAN_CTUCANFD","CAN_CTUCANFD_PCI"],"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":["ctucan_set_mode","ctucan_chip_start"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"bb0d96ebe5f4d1acccf4dc36ca7f01f9a8fa1ba1","config_name":"upstream-apparmor-kasan.config","enable_configs":["CAN_CTUCANFD","CAN_CTUCANFD_PCI"],"series_id":"3d8d6a98-19f0-4bb9-b27a-0920fcecd1cb","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[6] Phase: Succeeded StartedAt: 2026-07-23 22:31:56 +0000 UTC FinishedAt: 2026-07-23 23:17:55 +0000 UTC Input: nil Output: nil --------- Name: series-workflow9pg7s[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"bb0d96ebe5f4d1acccf4dc36ca7f01f9a8fa1ba1","config_name":"upstream-apparmor-kasan.config","enable_configs":["CAN_CTUCANFD","CAN_CTUCANFD_PCI"],"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":["ctucan_set_mode","ctucan_chip_start"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"bb0d96ebe5f4d1acccf4dc36ca7f01f9a8fa1ba1","config_name":"upstream-apparmor-kasan.config","enable_configs":["CAN_CTUCANFD","CAN_CTUCANFD_PCI"],"series_id":"3d8d6a98-19f0-4bb9-b27a-0920fcecd1cb","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[6].patched-build Phase: Succeeded StartedAt: 2026-07-23 22:31:56 +0000 UTC FinishedAt: 2026-07-23 23:17:55 +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:*c84980ef-9700-4ac7-99ef-0f34255f9c16,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-workflow9pg7s/series-workflow9pg7s-convert-artifact-1555681651/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": "65c273da-8e1a-4fe4-9dc4-e34298365a06", "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-workflow9pg7s/series-workflow9pg7s-build-action-3252717863/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflow9pg7s[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"bb0d96ebe5f4d1acccf4dc36ca7f01f9a8fa1ba1","config_name":"upstream-apparmor-kasan.config","enable_configs":["CAN_CTUCANFD","CAN_CTUCANFD_PCI"],"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":["ctucan_set_mode","ctucan_chip_start"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"bb0d96ebe5f4d1acccf4dc36ca7f01f9a8fa1ba1","config_name":"upstream-apparmor-kasan.config","enable_configs":["CAN_CTUCANFD","CAN_CTUCANFD_PCI"],"series_id":"3d8d6a98-19f0-4bb9-b27a-0920fcecd1cb","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[6].patched-build(0) Phase: Succeeded StartedAt: 2026-07-23 22:31:56 +0000 UTC FinishedAt: 2026-07-23 23:17:45 +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:*c84980ef-9700-4ac7-99ef-0f34255f9c16,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-workflow9pg7s/series-workflow9pg7s-convert-artifact-1555681651/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": "65c273da-8e1a-4fe4-9dc4-e34298365a06", "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-workflow9pg7s/series-workflow9pg7s-build-action-3252717863/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflow9pg7s[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"bb0d96ebe5f4d1acccf4dc36ca7f01f9a8fa1ba1","config_name":"upstream-apparmor-kasan.config","enable_configs":["CAN_CTUCANFD","CAN_CTUCANFD_PCI"],"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":["ctucan_set_mode","ctucan_chip_start"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"bb0d96ebe5f4d1acccf4dc36ca7f01f9a8fa1ba1","config_name":"upstream-apparmor-kasan.config","enable_configs":["CAN_CTUCANFD","CAN_CTUCANFD_PCI"],"series_id":"3d8d6a98-19f0-4bb9-b27a-0920fcecd1cb","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[7] Phase: Succeeded StartedAt: 2026-07-23 23:17:55 +0000 UTC FinishedAt: 2026-07-23 23:17:55 +0000 UTC Input: nil Output: nil --------- Name: series-workflow9pg7s[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"bb0d96ebe5f4d1acccf4dc36ca7f01f9a8fa1ba1","config_name":"upstream-apparmor-kasan.config","enable_configs":["CAN_CTUCANFD","CAN_CTUCANFD_PCI"],"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":["ctucan_set_mode","ctucan_chip_start"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"bb0d96ebe5f4d1acccf4dc36ca7f01f9a8fa1ba1","config_name":"upstream-apparmor-kasan.config","enable_configs":["CAN_CTUCANFD","CAN_CTUCANFD_PCI"],"series_id":"3d8d6a98-19f0-4bb9-b27a-0920fcecd1cb","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[7].abort-if-patched-build-failed Phase: Skipped StartedAt: 2026-07-23 23:17:55 +0000 UTC FinishedAt: 2026-07-23 23:17:55 +0000 UTC Input: nil Output: nil --------- Name: series-workflow9pg7s[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"bb0d96ebe5f4d1acccf4dc36ca7f01f9a8fa1ba1","config_name":"upstream-apparmor-kasan.config","enable_configs":["CAN_CTUCANFD","CAN_CTUCANFD_PCI"],"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":["ctucan_set_mode","ctucan_chip_start"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"bb0d96ebe5f4d1acccf4dc36ca7f01f9a8fa1ba1","config_name":"upstream-apparmor-kasan.config","enable_configs":["CAN_CTUCANFD","CAN_CTUCANFD_PCI"],"series_id":"3d8d6a98-19f0-4bb9-b27a-0920fcecd1cb","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[8] Phase: Succeeded StartedAt: 2026-07-23 23:17:55 +0000 UTC FinishedAt: 2026-07-23 23:19:55 +0000 UTC Input: nil Output: nil --------- Name: series-workflow9pg7s[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"bb0d96ebe5f4d1acccf4dc36ca7f01f9a8fa1ba1","config_name":"upstream-apparmor-kasan.config","enable_configs":["CAN_CTUCANFD","CAN_CTUCANFD_PCI"],"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":["ctucan_set_mode","ctucan_chip_start"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"bb0d96ebe5f4d1acccf4dc36ca7f01f9a8fa1ba1","config_name":"upstream-apparmor-kasan.config","enable_configs":["CAN_CTUCANFD","CAN_CTUCANFD_PCI"],"series_id":"3d8d6a98-19f0-4bb9-b27a-0920fcecd1cb","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[8].boot-test-patched Phase: Succeeded StartedAt: 2026-07-23 23:17:55 +0000 UTC FinishedAt: 2026-07-23 23:19:45 +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:*65c273da-8e1a-4fe4-9dc4-e34298365a06,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-workflow9pg7s/series-workflow9pg7s-build-action-3252717863/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-workflow9pg7s[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"bb0d96ebe5f4d1acccf4dc36ca7f01f9a8fa1ba1","config_name":"upstream-apparmor-kasan.config","enable_configs":["CAN_CTUCANFD","CAN_CTUCANFD_PCI"],"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":["ctucan_set_mode","ctucan_chip_start"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"bb0d96ebe5f4d1acccf4dc36ca7f01f9a8fa1ba1","config_name":"upstream-apparmor-kasan.config","enable_configs":["CAN_CTUCANFD","CAN_CTUCANFD_PCI"],"series_id":"3d8d6a98-19f0-4bb9-b27a-0920fcecd1cb","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[10] Phase: Succeeded StartedAt: 2026-07-23 23:19:55 +0000 UTC FinishedAt: 2026-07-24 00:14:53 +0000 UTC Input: nil Output: nil --------- Name: series-workflow9pg7s[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"bb0d96ebe5f4d1acccf4dc36ca7f01f9a8fa1ba1","config_name":"upstream-apparmor-kasan.config","enable_configs":["CAN_CTUCANFD","CAN_CTUCANFD_PCI"],"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":["ctucan_set_mode","ctucan_chip_start"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"bb0d96ebe5f4d1acccf4dc36ca7f01f9a8fa1ba1","config_name":"upstream-apparmor-kasan.config","enable_configs":["CAN_CTUCANFD","CAN_CTUCANFD_PCI"],"series_id":"3d8d6a98-19f0-4bb9-b27a-0920fcecd1cb","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[10].run-fuzz Phase: Succeeded StartedAt: 2026-07-23 23:19:55 +0000 UTC FinishedAt: 2026-07-24 00:14:53 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:config,Default:nil,Value:*{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["ctucan_set_mode","ctucan_chip_start"],"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:*5cfd8958-3449-4ba9-b5c6-a8ec9558e1c2,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:patched-build-id,Default:nil,Value:*65c273da-8e1a-4fe4-9dc4-e34298365a06,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-workflow9pg7s/series-workflow9pg7s-build-action-1956894898/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-workflow9pg7s/series-workflow9pg7s-build-action-3252717863/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},} Output: nil --------- Name: series-workflow9pg7s[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"bb0d96ebe5f4d1acccf4dc36ca7f01f9a8fa1ba1","config_name":"upstream-apparmor-kasan.config","enable_configs":["CAN_CTUCANFD","CAN_CTUCANFD_PCI"],"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":["ctucan_set_mode","ctucan_chip_start"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"bb0d96ebe5f4d1acccf4dc36ca7f01f9a8fa1ba1","config_name":"upstream-apparmor-kasan.config","enable_configs":["CAN_CTUCANFD","CAN_CTUCANFD_PCI"],"series_id":"3d8d6a98-19f0-4bb9-b27a-0920fcecd1cb","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[10].run-fuzz[0] Phase: Succeeded StartedAt: 2026-07-23 23:19:55 +0000 UTC FinishedAt: 2026-07-23 23:20:43 +0000 UTC Input: nil Output: nil --------- Name: series-workflow9pg7s[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"bb0d96ebe5f4d1acccf4dc36ca7f01f9a8fa1ba1","config_name":"upstream-apparmor-kasan.config","enable_configs":["CAN_CTUCANFD","CAN_CTUCANFD_PCI"],"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":["ctucan_set_mode","ctucan_chip_start"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"bb0d96ebe5f4d1acccf4dc36ca7f01f9a8fa1ba1","config_name":"upstream-apparmor-kasan.config","enable_configs":["CAN_CTUCANFD","CAN_CTUCANFD_PCI"],"series_id":"3d8d6a98-19f0-4bb9-b27a-0920fcecd1cb","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[10].run-fuzz[0].save-fuzz-config Phase: Succeeded StartedAt: 2026-07-23 23:19:55 +0000 UTC FinishedAt: 2026-07-23 23:20:36 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:data,Default:nil,Value:*{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["ctucan_set_mode","ctucan_chip_start"],"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-workflow9pg7s/series-workflow9pg7s-convert-artifact-1181945708/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflow9pg7s[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"bb0d96ebe5f4d1acccf4dc36ca7f01f9a8fa1ba1","config_name":"upstream-apparmor-kasan.config","enable_configs":["CAN_CTUCANFD","CAN_CTUCANFD_PCI"],"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":["ctucan_set_mode","ctucan_chip_start"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"bb0d96ebe5f4d1acccf4dc36ca7f01f9a8fa1ba1","config_name":"upstream-apparmor-kasan.config","enable_configs":["CAN_CTUCANFD","CAN_CTUCANFD_PCI"],"series_id":"3d8d6a98-19f0-4bb9-b27a-0920fcecd1cb","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[10].run-retest Phase: Skipped StartedAt: 2026-07-23 23:19:55 +0000 UTC FinishedAt: 2026-07-23 23:19:55 +0000 UTC Input: nil Output: nil --------- Name: series-workflow9pg7s[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"bb0d96ebe5f4d1acccf4dc36ca7f01f9a8fa1ba1","config_name":"upstream-apparmor-kasan.config","enable_configs":["CAN_CTUCANFD","CAN_CTUCANFD_PCI"],"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":["ctucan_set_mode","ctucan_chip_start"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"bb0d96ebe5f4d1acccf4dc36ca7f01f9a8fa1ba1","config_name":"upstream-apparmor-kasan.config","enable_configs":["CAN_CTUCANFD","CAN_CTUCANFD_PCI"],"series_id":"3d8d6a98-19f0-4bb9-b27a-0920fcecd1cb","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[9] Phase: Succeeded StartedAt: 2026-07-23 23:19:55 +0000 UTC FinishedAt: 2026-07-23 23:19:55 +0000 UTC Input: nil Output: nil --------- Name: series-workflow9pg7s[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"bb0d96ebe5f4d1acccf4dc36ca7f01f9a8fa1ba1","config_name":"upstream-apparmor-kasan.config","enable_configs":["CAN_CTUCANFD","CAN_CTUCANFD_PCI"],"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":["ctucan_set_mode","ctucan_chip_start"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"bb0d96ebe5f4d1acccf4dc36ca7f01f9a8fa1ba1","config_name":"upstream-apparmor-kasan.config","enable_configs":["CAN_CTUCANFD","CAN_CTUCANFD_PCI"],"series_id":"3d8d6a98-19f0-4bb9-b27a-0920fcecd1cb","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[9].abort-if-patched-boot-failed Phase: Skipped StartedAt: 2026-07-23 23:19:55 +0000 UTC FinishedAt: 2026-07-23 23:19:55 +0000 UTC Input: nil Output: nil --------- Name: series-workflow9pg7s[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"bb0d96ebe5f4d1acccf4dc36ca7f01f9a8fa1ba1","config_name":"upstream-apparmor-kasan.config","enable_configs":["CAN_CTUCANFD","CAN_CTUCANFD_PCI"],"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":["ctucan_set_mode","ctucan_chip_start"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"bb0d96ebe5f4d1acccf4dc36ca7f01f9a8fa1ba1","config_name":"upstream-apparmor-kasan.config","enable_configs":["CAN_CTUCANFD","CAN_CTUCANFD_PCI"],"series_id":"3d8d6a98-19f0-4bb9-b27a-0920fcecd1cb","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[10].run-fuzz[1] Phase: Succeeded StartedAt: 2026-07-23 23:20:43 +0000 UTC FinishedAt: 2026-07-24 00:14:53 +0000 UTC Input: nil Output: nil --------- Name: series-workflow9pg7s[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"bb0d96ebe5f4d1acccf4dc36ca7f01f9a8fa1ba1","config_name":"upstream-apparmor-kasan.config","enable_configs":["CAN_CTUCANFD","CAN_CTUCANFD_PCI"],"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":["ctucan_set_mode","ctucan_chip_start"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"bb0d96ebe5f4d1acccf4dc36ca7f01f9a8fa1ba1","config_name":"upstream-apparmor-kasan.config","enable_configs":["CAN_CTUCANFD","CAN_CTUCANFD_PCI"],"series_id":"3d8d6a98-19f0-4bb9-b27a-0920fcecd1cb","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[10].run-fuzz[1].fuzz Phase: Succeeded StartedAt: 2026-07-23 23:20:43 +0000 UTC FinishedAt: 2026-07-24 00:14:43 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:base-build-id,Default:nil,Value:*5cfd8958-3449-4ba9-b5c6-a8ec9558e1c2,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:patched-build-id,Default:nil,Value:*65c273da-8e1a-4fe4-9dc4-e34298365a06,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-workflow9pg7s/series-workflow9pg7s-build-action-1956894898/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-workflow9pg7s/series-workflow9pg7s-build-action-3252717863/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-workflow9pg7s/series-workflow9pg7s-convert-artifact-1181945708/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,}