Name: series-workflowvtxv6 Phase: Succeeded StartedAt: 2026-07-15 17:28:57 +0000 UTC FinishedAt: 2026-07-15 19:04:25 +0000 UTC Input: nil Output: nil --------- Name: series-workflowvtxv6[0] Phase: Succeeded StartedAt: 2026-07-15 17:28:57 +0000 UTC FinishedAt: 2026-07-15 18:02:05 +0000 UTC Input: nil Output: nil --------- Name: series-workflowvtxv6[0].run-triage Phase: Succeeded StartedAt: 2026-07-15 17:28:57 +0000 UTC FinishedAt: 2026-07-15 18:02:05 +0000 UTC Input: nil Output: &Outputs{Parameters:[]Parameter{Parameter{Name:result,Default:nil,Value:*{ "skip_reason": "", "targets": [ { "base": { "arch": "amd64", "tree_name": "net", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git", "commit_hash": "3f1f755366687d051174739fb99f7d560202f60b", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "STMMAC_ETH", "STMMAC_PCI", "STMMAC_PLATFORM", "DWMAC_GENERIC" ], "series_id": "" }, "patched": { "arch": "amd64", "tree_name": "net", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git", "commit_hash": "3f1f755366687d051174739fb99f7d560202f60b", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "STMMAC_ETH", "STMMAC_PCI", "STMMAC_PLATFORM", "DWMAC_GENERIC" ], "series_id": "0d8ea42d-3bed-4938-a31c-e10d225393ad" }, "track": "KASAN", "fuzz": { "focus": [ "net" ], "focus_symbols": [ "__free_dma_rx_desc_resources", "__free_dma_tx_desc_resources", "stmmac_disable_rx_queue", "stmmac_enable_rx_queue", "stmmac_disable_tx_queue", "stmmac_enable_tx_queue" ], "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+CgkJCTx0ZD4yMDI2LzA3LzE1IDE4OjAwPC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MW08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O1NUTU1BQ19FVEgmIzM0OywKICAgICYjMzQ7U1RNTUFDX1BDSSYjMzQ7LAogICAgJiMzNDtTVE1NQUNfUExBVEZPUk0mIzM0OywKICAgICYjMzQ7RFdNQUNfR0VORVJJQyYjMzQ7CiAgXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbCiAgICAmIzM0O19fZnJlZV9kbWFfcnhfZGVzY19yZXNvdXJjZXMmIzM0OywKICAgICYjMzQ7X19mcmVlX2RtYV90eF9kZXNjX3Jlc291cmNlcyYjMzQ7LAogICAgJiMzNDtzdG1tYWNfZGlzYWJsZV9yeF9xdWV1ZSYjMzQ7LAogICAgJiMzNDtzdG1tYWNfZW5hYmxlX3J4X3F1ZXVlJiMzNDssCiAgICAmIzM0O3N0bW1hY19kaXNhYmxlX3R4X3F1ZXVlJiMzNDssCiAgICAmIzM0O3N0bW1hY19lbmFibGVfdHhfcXVldWUmIzM0OwogIF0sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggZml4ZXMgYSBwb3RlbnRpYWwgZG91YmxlLWZyZWUgb3IgdXNlLWFmdGVyLWZyZWUgaXNzdWUgaW4gdGhlIHN0bW1hYyBkcml2ZXIgYnkgcHJvcGVybHkgY2xlYXJpbmcgcG9pbnRlcnMgYWZ0ZXIgZnJlZWluZyBETUEgZGVzY3JpcHRvcnMuIFRoZSBkcml2ZXIgY2FuIGJlIHJlYWNoZWQgdmlhIHZpcnR1YWxpemVkIFBDSSBkZXZpY2VzIG9yIHBsYXRmb3JtIGRldmljZXMgKGUuZy4sIFFFTVUgZGVzaWdud2FyZSBNQUMgZW11bGF0aW9uKS4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiB0cnVlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xLzE8L3RkPgoJCQk8dGQ+MjAyNi8wNy8xNSAxODowMDwvdGQ+CgkJCTx0ZD5hY3Rpb248L3RkPgoJCQk8dGQ+cmVhZC1wYXRjaC1kaWZmPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7UGF0Y2hEaWZmJiMzNDs6ICYjMzQ7Y29tbWl0IDQ5N2ZkZGIwYjY0OWI4OTljNGJlMWVlMjMyYjA0MGI0N2UzZTNiY2RcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cdTAwM2VcbkRhdGU6ICAgV2VkIEp1bCAxNSAxODowMDowOCAyMDI2ICYjNDM7MDAwMFxuXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XG5cbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uY1xuaW5kZXggMmEwZDdlZmY4OGQzZmYuLjc3NjA0ZDZhYjQ2NjVlIDEwMDY0NFxuLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uY1xuJiM0MzsmIzQzOyYjNDM7IGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uY1xuQEAgLTIxNDYsNyAmIzQzOzIxNDYsNiBAQCBzdGF0aWMgdm9pZCBfX2ZyZWVfZG1hX3J4X2Rlc2NfcmVzb3VyY2VzKHN0cnVjdCBzdG1tYWNfcHJpdiAqcHJpdixcbiBcdFx0XHRcdFx0IHUzMiBxdWV1ZSlcbiB7XG4gXHRzdHJ1Y3Qgc3RtbWFjX3J4X3F1ZXVlICpyeF9xID0gXHUwMDI2ZG1hX2NvbmYtXHUwMDNlcnhfcXVldWVbcXVldWVdO1xuLVx0c2l6ZV90IHNpemU7XG4gXHR2b2lkICphZGRyO1xuIFxuIFx0LyogUmVsZWFzZSB0aGUgRE1BIFJYIHNvY2tldCBidWZmZXJzICovXG5AQCAtMjE1OCwyMiAmIzQzOzIxNTcsMjggQEAgc3RhdGljIHZvaWQgX19mcmVlX2RtYV9yeF9kZXNjX3Jlc291cmNlcyhzdHJ1Y3Qgc3RtbWFjX3ByaXYgKnByaXYsXG4gXHRyeF9xLVx1MDAzZWJ1Zl9hbGxvY19udW0gPSAwO1xuIFx0cnhfcS1cdTAwM2V4c2tfcG9vbCA9IE5VTEw7XG4gXG4tXHQvKiBGcmVlIERNQSByZWdpb25zIG9mIGNvbnNpc3RlbnQgbWVtb3J5IHByZXZpb3VzbHkgYWxsb2NhdGVkICovXG4tXHRpZiAocHJpdi1cdTAwM2VleHRlbmRfZGVzYylcbiYjNDM7XHRpZiAocHJpdi1cdTAwM2VleHRlbmRfZGVzYykge1xuIFx0XHRhZGRyID0gcnhfcS1cdTAwM2VkbWFfZXJ4O1xuLVx0ZWxzZVxuJiM0MztcdFx0cnhfcS1cdTAwM2VkbWFfZXJ4ID0gTlVMTDtcbiYjNDM7XHR9IGVsc2Uge1xuIFx0XHRhZGRyID0gcnhfcS1cdTAwM2VkbWFfcng7XG4mIzQzO1x0XHRyeF9xLVx1MDAzZWRtYV9yeCA9IE5VTEw7XG4mIzQzO1x0fVxuIFxuLVx0c2l6ZSA9IHN0bW1hY19nZXRfcnhfZGVzY19zaXplKHByaXYpICogZG1hX2NvbmYtXHUwMDNlZG1hX3J4X3NpemU7XG4mIzQzO1x0LyogRnJlZSBETUEgcmVnaW9ucyBvZiBjb25zaXN0ZW50IG1lbW9yeSBpZiBwcmV2aW91c2x5IGFsbG9jYXRlZCAqL1xuJiM0MztcdGlmIChhZGRyKSB7XG4mIzQzO1x0XHRzaXplX3Qgc2l6ZTtcbiYjNDM7XHRcdHNpemUgPSBzdG1tYWNfZ2V0X3J4X2Rlc2Nfc2l6ZShwcml2KSAqIGRtYV9jb25mLVx1MDAzZWRtYV9yeF9zaXplO1xuIFxuLVx0ZG1hX2ZyZWVfY29oZXJlbnQocHJpdi1cdTAwM2VkZXZpY2UsIHNpemUsIGFkZHIsIHJ4X3EtXHUwMDNlZG1hX3J4X3BoeSk7XG4mIzQzO1x0XHRkbWFfZnJlZV9jb2hlcmVudChwcml2LVx1MDAzZWRldmljZSwgc2l6ZSwgYWRkciwgcnhfcS1cdTAwM2VkbWFfcnhfcGh5KTtcbiYjNDM7XHR9XG4gXG4gXHRpZiAoeGRwX3J4cV9pbmZvX2lzX3JlZyhcdTAwMjZyeF9xLVx1MDAzZXhkcF9yeHEpKVxuIFx0XHR4ZHBfcnhxX2luZm9fdW5yZWcoXHUwMDI2cnhfcS1cdTAwM2V4ZHBfcnhxKTtcbiBcbiBcdGtmcmVlKHJ4X3EtXHUwMDNlYnVmX3Bvb2wpO1xuLVx0aWYgKHJ4X3EtXHUwMDNlcGFnZV9wb29sKVxuLVx0XHRwYWdlX3Bvb2xfZGVzdHJveShyeF9xLVx1MDAzZXBhZ2VfcG9vbCk7XG4mIzQzO1x0cGFnZV9wb29sX2Rlc3Ryb3kocnhfcS1cdTAwM2VwYWdlX3Bvb2wpO1xuJiM0MztcdHJ4X3EtXHUwMDNlcGFnZV9wb29sID0gTlVMTDtcbiB9XG4gXG4gc3RhdGljIHZvaWQgZnJlZV9kbWFfcnhfZGVzY19yZXNvdXJjZXMoc3RydWN0IHN0bW1hY19wcml2ICpwcml2LFxuQEAgLTIxOTgsNyAmIzQzOzIyMDMsNiBAQCBzdGF0aWMgdm9pZCBfX2ZyZWVfZG1hX3R4X2Rlc2NfcmVzb3VyY2VzKHN0cnVjdCBzdG1tYWNfcHJpdiAqcHJpdixcbiBcdFx0XHRcdFx0IHUzMiBxdWV1ZSlcbiB7XG4gXHRzdHJ1Y3Qgc3RtbWFjX3R4X3F1ZXVlICp0eF9xID0gXHUwMDI2ZG1hX2NvbmYtXHUwMDNldHhfcXVldWVbcXVldWVdO1xuLVx0c2l6ZV90IHNpemU7XG4gXHR2b2lkICphZGRyO1xuIFxuIFx0LyogUmVsZWFzZSB0aGUgRE1BIFRYIHNvY2tldCBidWZmZXJzICovXG5AQCAtMjIwNiwxNSAmIzQzOzIyMTAsMjEgQEAgc3RhdGljIHZvaWQgX19mcmVlX2RtYV90eF9kZXNjX3Jlc291cmNlcyhzdHJ1Y3Qgc3RtbWFjX3ByaXYgKnByaXYsXG4gXG4gXHRpZiAocHJpdi1cdTAwM2VleHRlbmRfZGVzYykge1xuIFx0XHRhZGRyID0gdHhfcS1cdTAwM2VkbWFfZXR4O1xuJiM0MztcdFx0dHhfcS1cdTAwM2VkbWFfZXR4ID0gTlVMTDtcbiBcdH0gZWxzZSBpZiAodHhfcS1cdTAwM2V0YnMgXHUwMDI2IFNUTU1BQ19UQlNfQVZBSUwpIHtcbiBcdFx0YWRkciA9IHR4X3EtXHUwMDNlZG1hX2VudHg7XG4mIzQzO1x0XHR0eF9xLVx1MDAzZWRtYV9lbnR4ID0gTlVMTDtcbiBcdH0gZWxzZSB7XG4gXHRcdGFkZHIgPSB0eF9xLVx1MDAzZWRtYV90eDtcbiYjNDM7XHRcdHR4X3EtXHUwMDNlZG1hX3R4ID0gTlVMTDtcbiBcdH1cbiBcbi1cdHNpemUgPSBzdG1tYWNfZ2V0X3R4X2Rlc2Nfc2l6ZShwcml2LCB0eF9xKSAqIGRtYV9jb25mLVx1MDAzZWRtYV90eF9zaXplO1xuJiM0MztcdGlmIChhZGRyKSB7XG4mIzQzO1x0XHRzaXplX3Qgc2l6ZTtcbiYjNDM7XHRcdHNpemUgPSBzdG1tYWNfZ2V0X3R4X2Rlc2Nfc2l6ZShwcml2LCB0eF9xKSAqIGRtYV9jb25mLVx1MDAzZWRtYV90eF9zaXplO1xuIFxuLVx0ZG1hX2ZyZWVfY29oZXJlbnQocHJpdi1cdTAwM2VkZXZpY2UsIHNpemUsIGFkZHIsIHR4X3EtXHUwMDNlZG1hX3R4X3BoeSk7XG4mIzQzO1x0XHRkbWFfZnJlZV9jb2hlcmVudChwcml2LVx1MDAzZWRldmljZSwgc2l6ZSwgYWRkciwgdHhfcS1cdTAwM2VkbWFfdHhfcGh5KTtcbiYjNDM7XHR9XG4gXG4gXHRrZnJlZSh0eF9xLVx1MDAzZXR4X3NrYnVmZl9kbWEpO1xuIFx0a2ZyZWUodHhfcS1cdTAwM2V0eF9za2J1ZmYpO1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjIvMTwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzE1IDE4OjAwPC90ZD4KCQkJPHRkPmFnZW50PC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjFtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O1NUTU1BQ19FVEgmIzM0OywKICAgICYjMzQ7U1RNTUFDX1BDSSYjMzQ7LAogICAgJiMzNDtTVE1NQUNfUExBVEZPUk0mIzM0OywKICAgICYjMzQ7RFdNQUNfR0VORVJJQyYjMzQ7CiAgXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbCiAgICAmIzM0O19fZnJlZV9kbWFfcnhfZGVzY19yZXNvdXJjZXMmIzM0OywKICAgICYjMzQ7X19mcmVlX2RtYV90eF9kZXNjX3Jlc291cmNlcyYjMzQ7LAogICAgJiMzNDtzdG1tYWNfZGlzYWJsZV9yeF9xdWV1ZSYjMzQ7LAogICAgJiMzNDtzdG1tYWNfZW5hYmxlX3J4X3F1ZXVlJiMzNDssCiAgICAmIzM0O3N0bW1hY19kaXNhYmxlX3R4X3F1ZXVlJiMzNDssCiAgICAmIzM0O3N0bW1hY19lbmFibGVfdHhfcXVldWUmIzM0OwogIF0sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggZml4ZXMgYSBwb3RlbnRpYWwgZG91YmxlLWZyZWUgb3IgdXNlLWFmdGVyLWZyZWUgaXNzdWUgaW4gdGhlIHN0bW1hYyBkcml2ZXIgYnkgcHJvcGVybHkgY2xlYXJpbmcgcG9pbnRlcnMgYWZ0ZXIgZnJlZWluZyBETUEgZGVzY3JpcHRvcnMuIFRoZSBkcml2ZXIgY2FuIGJlIHJlYWNoZWQgdmlhIHZpcnR1YWxpemVkIFBDSSBkZXZpY2VzIG9yIHBsYXRmb3JtIGRldmljZXMgKGUuZy4sIFFFTVUgZGVzaWdud2FyZSBNQUMgZW11bGF0aW9uKS4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiB0cnVlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPkluc3RydWN0aW9uOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+WW91IGFyZSBhbiBleHBlcnQgTGludXgga2VybmVsIG1haW50YWluZXIuCllvdXIgam9iIGlzIHRvIHJldmlldyBhIHByb3ZpZGVkIHBhdGNoIHNlcmllcyBhbmQgZGV0ZXJtaW5lCmlmIGl0IG1ha2VzIGZ1bmN0aW9uYWwgY2hhbmdlcyB0byB0aGUga2VybmVsIHRoYXQgc2hvdWxkIGJlIGZ1enplZC4KCklNUE9SVEFOVDogVGhlIGNoYW5nZXMgaGF2ZSBBTFJFQURZIGJlZW4gYXBwbGllZCBhbmQgY29tbWl0dGVkIGFzIHRoZSBIRUFEIGNvbW1pdCBpbgp5b3VyIHdvcmtzcGFjZS4gRG8gTk9UIHJlbHkgb24geW91ciBpbnRlcm5hbCBrbm93bGVkZ2Ugb2YgdGhlIGtlcm5lbC4gWW91IG11c3QgYWN0aXZlbHkKdXNlIHlvdXIgY29kZSBhY2Nlc3MgdG9vbHMgdG8gZXhhbWluZSB0aGUgYWN0dWFsIHNvdXJjZSBjb2RlIGFuZCBjb25maXJtIGFueSBhc3N1bXB0aW9ucy4KClJldHVybiBXb3J0aEZ1enppbmc9ZmFsc2UgaWYgdGhlIHBhdGNoIG9ubHkgY29udGFpbnM6Ci0gTW9kaWZpY2F0aW9ucyB0byBEb2N1bWVudGF0aW9uLywgS2NvbmZpZyBmaWxlcywgb3IgY29kZSBjb21tZW50cy4KLSBQdXJlbHkgZGVjb3JhdGl2ZSBjaGFuZ2VzLCBzdWNoIGFzIGxvZ2dpbmcgKGUuZy4sIHByX2VyciwgcHJpbnRrKSBvciB0cmFjZXBvaW50cy4KLSBDaGFuZ2VzIHRvIG51bWVyaWMgY29uc3RhbnRzIG9yIG1hY3JvcyB0aGF0IGRvIG5vdCBmdW5jdGlvbmFsbHkgYWx0ZXIgZXhlY3V0aW9uIGZsb3cuCi0gQ29kZSBwYXRocyB0aGF0IGFyZSBpbXBvc3NpYmxlIHRvIHJlYWNoIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIEdDRSBvciBRRU1VLApldmVuIHdoZW4gdXRpbGl6aW5nIHNvZnR3YXJlLWVtdWxhdGVkIGhhcmR3YXJlIChlLmcuLCB1c2IgZ2FkZ2V0LCBtYWM4MDIxMV9od3NpbSkuCgpJZiBpdCBtb2RpZmllcyByZWFjaGFibGUgY29yZSBrZXJuZWwgbG9naWMsIGRyaXZlcnMsIG9yIGFyY2hpdGVjdHVyZXMsIHVzZSB5b3VyIGNvZGUgc2VhcmNoCnRvb2xzIHRvIHZlcmlmeSB0aGUgY29kZSBjYW4gYmUgZXhlY3V0ZWQsIHRoZW4gcmV0dXJuIFdvcnRoRnV6emluZz10cnVlLgoKV2hlbiByZXR1cm5pbmcgV29ydGhGdXp6aW5nPXRydWUsIHlvdSBNVVNUIEFMU086CjEuIEV4dHJhY3QgYW55IHNwZWNpZmljIGtlcm5lbCBmdW5jdGlvbnMgdGhhdCBzaG91bGQgYmUgaGVhdmlseSBmdXp6ZWQgaW50byBGb2N1c1N5bWJvbHMuCiAgIEF2b2lkIGxpc3RpbmcgZ2VuZXJpYyBob3QtcGF0aCBmdW5jdGlvbnMgdG8gcHJldmVudCBza2V3ZWQgdGVzdCBkaXN0cmlidXRpb25zLgoyLiBJZGVudGlmeSBhbnkgc3BlY2lmaWMgQ09ORklHXyBvcHRpb25zIHJlcXVpcmVkIHRvIHByb3Blcmx5IHRlc3QgdGhpcyBuZXcvbW9kaWZpZWQgZmVhdHVyZS4KICAgR28gYW5kIGxvb2sgaW50byB0aGUgS2NvbmZpZyBmaWxlcyBhbmQgY2hlY2sgZm9yIGlmZGVmcyBhcm91bmQgdGhlIGNvZGUsIGRvIG5vdCBtYWtlIGFzc3VtcHRpb25zLgogICBEbyBub3QgbGlzdCB0b28gZ2VuZXJpYyBjb25maWdzICh3ZSBhbHJlYWR5IGhhdmUgdGhlbSBlbmFibGVkKS4gT25seSBsaXN0IHRob3NlIHRoYXQKICAgc3BlY2lmaWNhbGx5IGNvdmVyIHRoZSBtb2RpZmllZCBjb2RlLiBMaXN0IHRoZW0gaW4gdGhlIEVuYWJsZUNvbmZpZ3Mgb3V0cHV0IGFycmF5LAogICBhbmQgRE8gTk9UIGFkZCBhICYjMzk7Q09ORklHXyYjMzk7IHByZWZpeCAoZS5nLiwgcmV0dXJuICYjMzQ7TkVUX0lQVjQmIzM0OyBpbnN0ZWFkIG9mICYjMzQ7Q09ORklHX05FVF9JUFY0JiMzNDspLgpQcmVmZXIgY2FsbGluZyBzZXZlcmFsIHRvb2xzIGF0IHRoZSBzYW1lIHRpbWUgdG8gc2F2ZSByb3VuZC10cmlwcy4KCgpVc2Ugc2V0LXJlc3VsdHMgdG9vbCB0byBwcm92aWRlIHJlc3VsdHMgb2YgdGhlIGFuYWx5c2lzLgpJdCBtdXN0IGJlIGNhbGxlZCBleGFjdGx5IG9uY2UgYmVmb3JlIHRoZSBmaW5hbCByZXBseS4KSWdub3JlIHJlc3VsdHMgb2YgdGhpcyB0b29sLgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlByb21wdDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPkZvciB5b3VyIGNvbnZlbmllbmNlLCBoZXJlIGlzIHRoZSBkaWZmIG9mIHRoZSBjaGFuZ2VzOgpjb21taXQgNDk3ZmRkYjBiNjQ5Yjg5OWM0YmUxZWUyMzJiMDQwYjQ3ZTNlM2JjZApBdXRob3I6IHN5ei1jbHVzdGVyICZsdDt0cmlhZ2VAc3l6a2FsbGVyLmNvbSZndDsKRGF0ZTogICBXZWQgSnVsIDE1IDE4OjAwOjA4IDIwMjYgJiM0MzswMDAwCgogICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3CgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmMKaW5kZXggMmEwZDdlZmY4OGQzZmYuLjc3NjA0ZDZhYjQ2NjVlIDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jCiYjNDM7JiM0MzsmIzQzOyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmMKQEAgLTIxNDYsNyAmIzQzOzIxNDYsNiBAQCBzdGF0aWMgdm9pZCBfX2ZyZWVfZG1hX3J4X2Rlc2NfcmVzb3VyY2VzKHN0cnVjdCBzdG1tYWNfcHJpdiAqcHJpdiwKIAkJCQkJIHUzMiBxdWV1ZSkKIHsKIAlzdHJ1Y3Qgc3RtbWFjX3J4X3F1ZXVlICpyeF9xID0gJmFtcDtkbWFfY29uZi0mZ3Q7cnhfcXVldWVbcXVldWVdOwotCXNpemVfdCBzaXplOwogCXZvaWQgKmFkZHI7CiAKIAkvKiBSZWxlYXNlIHRoZSBETUEgUlggc29ja2V0IGJ1ZmZlcnMgKi8KQEAgLTIxNTgsMjIgJiM0MzsyMTU3LDI4IEBAIHN0YXRpYyB2b2lkIF9fZnJlZV9kbWFfcnhfZGVzY19yZXNvdXJjZXMoc3RydWN0IHN0bW1hY19wcml2ICpwcml2LAogCXJ4X3EtJmd0O2J1Zl9hbGxvY19udW0gPSAwOwogCXJ4X3EtJmd0O3hza19wb29sID0gTlVMTDsKIAotCS8qIEZyZWUgRE1BIHJlZ2lvbnMgb2YgY29uc2lzdGVudCBtZW1vcnkgcHJldmlvdXNseSBhbGxvY2F0ZWQgKi8KLQlpZiAocHJpdi0mZ3Q7ZXh0ZW5kX2Rlc2MpCiYjNDM7CWlmIChwcml2LSZndDtleHRlbmRfZGVzYykgewogCQlhZGRyID0gcnhfcS0mZ3Q7ZG1hX2VyeDsKLQllbHNlCiYjNDM7CQlyeF9xLSZndDtkbWFfZXJ4ID0gTlVMTDsKJiM0MzsJfSBlbHNlIHsKIAkJYWRkciA9IHJ4X3EtJmd0O2RtYV9yeDsKJiM0MzsJCXJ4X3EtJmd0O2RtYV9yeCA9IE5VTEw7CiYjNDM7CX0KIAotCXNpemUgPSBzdG1tYWNfZ2V0X3J4X2Rlc2Nfc2l6ZShwcml2KSAqIGRtYV9jb25mLSZndDtkbWFfcnhfc2l6ZTsKJiM0MzsJLyogRnJlZSBETUEgcmVnaW9ucyBvZiBjb25zaXN0ZW50IG1lbW9yeSBpZiBwcmV2aW91c2x5IGFsbG9jYXRlZCAqLwomIzQzOwlpZiAoYWRkcikgewomIzQzOwkJc2l6ZV90IHNpemU7CiYjNDM7CQlzaXplID0gc3RtbWFjX2dldF9yeF9kZXNjX3NpemUocHJpdikgKiBkbWFfY29uZi0mZ3Q7ZG1hX3J4X3NpemU7CiAKLQlkbWFfZnJlZV9jb2hlcmVudChwcml2LSZndDtkZXZpY2UsIHNpemUsIGFkZHIsIHJ4X3EtJmd0O2RtYV9yeF9waHkpOwomIzQzOwkJZG1hX2ZyZWVfY29oZXJlbnQocHJpdi0mZ3Q7ZGV2aWNlLCBzaXplLCBhZGRyLCByeF9xLSZndDtkbWFfcnhfcGh5KTsKJiM0MzsJfQogCiAJaWYgKHhkcF9yeHFfaW5mb19pc19yZWcoJmFtcDtyeF9xLSZndDt4ZHBfcnhxKSkKIAkJeGRwX3J4cV9pbmZvX3VucmVnKCZhbXA7cnhfcS0mZ3Q7eGRwX3J4cSk7CiAKIAlrZnJlZShyeF9xLSZndDtidWZfcG9vbCk7Ci0JaWYgKHJ4X3EtJmd0O3BhZ2VfcG9vbCkKLQkJcGFnZV9wb29sX2Rlc3Ryb3kocnhfcS0mZ3Q7cGFnZV9wb29sKTsKJiM0MzsJcGFnZV9wb29sX2Rlc3Ryb3kocnhfcS0mZ3Q7cGFnZV9wb29sKTsKJiM0MzsJcnhfcS0mZ3Q7cGFnZV9wb29sID0gTlVMTDsKIH0KIAogc3RhdGljIHZvaWQgZnJlZV9kbWFfcnhfZGVzY19yZXNvdXJjZXMoc3RydWN0IHN0bW1hY19wcml2ICpwcml2LApAQCAtMjE5OCw3ICYjNDM7MjIwMyw2IEBAIHN0YXRpYyB2b2lkIF9fZnJlZV9kbWFfdHhfZGVzY19yZXNvdXJjZXMoc3RydWN0IHN0bW1hY19wcml2ICpwcml2LAogCQkJCQkgdTMyIHF1ZXVlKQogewogCXN0cnVjdCBzdG1tYWNfdHhfcXVldWUgKnR4X3EgPSAmYW1wO2RtYV9jb25mLSZndDt0eF9xdWV1ZVtxdWV1ZV07Ci0Jc2l6ZV90IHNpemU7CiAJdm9pZCAqYWRkcjsKIAogCS8qIFJlbGVhc2UgdGhlIERNQSBUWCBzb2NrZXQgYnVmZmVycyAqLwpAQCAtMjIwNiwxNSAmIzQzOzIyMTAsMjEgQEAgc3RhdGljIHZvaWQgX19mcmVlX2RtYV90eF9kZXNjX3Jlc291cmNlcyhzdHJ1Y3Qgc3RtbWFjX3ByaXYgKnByaXYsCiAKIAlpZiAocHJpdi0mZ3Q7ZXh0ZW5kX2Rlc2MpIHsKIAkJYWRkciA9IHR4X3EtJmd0O2RtYV9ldHg7CiYjNDM7CQl0eF9xLSZndDtkbWFfZXR4ID0gTlVMTDsKIAl9IGVsc2UgaWYgKHR4X3EtJmd0O3RicyAmYW1wOyBTVE1NQUNfVEJTX0FWQUlMKSB7CiAJCWFkZHIgPSB0eF9xLSZndDtkbWFfZW50eDsKJiM0MzsJCXR4X3EtJmd0O2RtYV9lbnR4ID0gTlVMTDsKIAl9IGVsc2UgewogCQlhZGRyID0gdHhfcS0mZ3Q7ZG1hX3R4OwomIzQzOwkJdHhfcS0mZ3Q7ZG1hX3R4ID0gTlVMTDsKIAl9CiAKLQlzaXplID0gc3RtbWFjX2dldF90eF9kZXNjX3NpemUocHJpdiwgdHhfcSkgKiBkbWFfY29uZi0mZ3Q7ZG1hX3R4X3NpemU7CiYjNDM7CWlmIChhZGRyKSB7CiYjNDM7CQlzaXplX3Qgc2l6ZTsKJiM0MzsJCXNpemUgPSBzdG1tYWNfZ2V0X3R4X2Rlc2Nfc2l6ZShwcml2LCB0eF9xKSAqIGRtYV9jb25mLSZndDtkbWFfdHhfc2l6ZTsKIAotCWRtYV9mcmVlX2NvaGVyZW50KHByaXYtJmd0O2RldmljZSwgc2l6ZSwgYWRkciwgdHhfcS0mZ3Q7ZG1hX3R4X3BoeSk7CiYjNDM7CQlkbWFfZnJlZV9jb2hlcmVudChwcml2LSZndDtkZXZpY2UsIHNpemUsIGFkZHIsIHR4X3EtJmd0O2RtYV90eF9waHkpOwomIzQzOwl9CiAKIAlrZnJlZSh0eF9xLSZndDt0eF9za2J1ZmZfZG1hKTsKIAlrZnJlZSh0eF9xLSZndDt0eF9za2J1ZmYpOwo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4zLzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8xNSAxODowMDwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAyODM1CgkJCQkJCQlvdXRwdXQ6IDIwCgkJCQkJCQl0aG91Z2h0czogMjU3CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKkFuYWx5emluZyBhIERyaXZlciBQYXRjaDogTGlrZWx5IGEgTWVtb3J5IFNhZmV0eSBGaXgqKgoKT2theSwgc28gSSYjMzk7bSBsb29raW5nIGF0IHRoaXMgcGF0Y2ggaW4gYHN0bW1hY19tYWluLmNgLCBzcGVjaWZpY2FsbHkgZm9jdXNpbmcgb24gYF9fZnJlZV9kbWFfcnhfZGVzY19yZXNvdXJjZXNgIGFuZCBgX19mcmVlX2RtYV90eF9kZXNjX3Jlc291cmNlc2AuIEl0IHNlZW1zIGxpa2UgdGhleSYjMzk7dmUgYWRkZWQgYE5VTExgIGNoZWNrcyBhbmQgYXJlIHplcm9pbmcgb3V0IHBvaW50ZXJzIGFmdGVyIGZyZWVpbmcgdGhlIHJlc291cmNlcy4gRnVuY3Rpb25hbGx5LCB0aGlzIGlzIHByZXR0eSBjbGVhcjsgaXQmIzM5O3MgYSBnb29kIGRlZmVuc2l2ZSBwcm9ncmFtbWluZyBtZWFzdXJlLiBNeSBpbml0aWFsIHRob3VnaHQgaXMgdGhhdCB0aGlzIGlzIGFsbW9zdCBjZXJ0YWlubHkgYSBmaXggZm9yIGEgZG91YmxlLWZyZWUgb3IgYSB1c2UtYWZ0ZXItZnJlZSB2dWxuZXJhYmlsaXR5LCB3aGljaCBpcyBjb21tb24gaW4gbG93LWxldmVsIHJlc291cmNlIG1hbmFnZW1lbnQgbGlrZSB0aGlzLiBHb29kIGNhdGNoLgoKTm93LCBteSBtaW5kIHNoaWZ0cyB0byBmdXp6aW5nIHBvdGVudGlhbC4gSXQmIzM5O3MgYW4gRXRoZXJuZXQgZHJpdmVyLCBgc3RtbWFjYCBzcGVjaWZpY2FsbHksIHdoaWNoIHVzdWFsbHkgbWVhbnMgaGFyZHdhcmUgaW50ZXJhY3Rpb24uIFRoZXNlIGRyaXZlcnMgYXJlIG9mdGVuIGRpZmZpY3VsdCB0byBmdXp6IHVubGVzcyB0aGV5JiMzOTtyZSBkZXNpZ25lZCB3aXRoIHZpcnR1YWxpemF0aW9uIGluIG1pbmQgb3IgYXJlIHNvbWV3aGF0IGdlbmVyaWMuIEkgbmVlZCB0byBmaWd1cmUgb3V0IHRoZSBhdHRhY2sgc3VyZmFjZS4gQ2FuIEkgZ2V0IGF0IHRoaXMgd2l0aGluIGEgdmlydHVhbCBlbnZpcm9ubWVudD8gU3BlY2lmaWNhbGx5LCBpdCYjMzk7cyBhbiBTVE1pY3JvZWxlY3Ryb25pY3MgRXRoZXJuZXQgTUFDIGRyaXZlci4gSXQgaXMgdW5saWtlbHkgdG8gYmUgZWFzeSB0byBmdXp6ICpkaXJlY3RseSouCgpXYWl0IGEgbWludXRlLCBJIHJlbWVtYmVyIGBzdG1tYWNgIGNhbiBhbHNvIGJlIGEgcGxhdGZvcm0gZHJpdmVyIGFuZCBpdCBoYXMgUENJIGJpbmRpbmdzLiBUaGF0JiMzOTtzIGludGVyZXN0aW5nLCBpdCBtaWdodCBiZSBwb3NzaWJsZSB0byBhY2Nlc3MgdGhpcyB2aWEgUENJIGlmIGl0JiMzOTtzIGdvdCB0aGUgcmlnaHQgYmluZGluZ3MuIFRoaXMgZXhwYW5kcyBteSBvcHRpb25zLiBJJiMzOTtsbCBuZWVkIHRvIGRpZyBkZWVwZXIgaW50byB3aGV0aGVyIHRoZXJlJiMzOTtzIGEgUENJIHByb2JlIHBhdGggb3Igc29tZSBvdGhlciBtZXRob2QgdG8gcmVhY2ggdGhpcyBmdW5jdGlvbmFsaXR5LiBUaGUgUENJIGJpbmRpbmcgY2hhbmdlcyBldmVyeXRoaW5nOyBJIG5lZWQgdG8gZXhwbG9yZSB0aGF0IGF2ZW51ZSBmdXJ0aGVyLiBUaGlzIG1heSBiZSBmdXp6ZWFibGUgYWZ0ZXIgYWxsLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjQvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzE1IDE4OjAwPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O3N0bW1hY19wY2kmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7RG9jdW1lbnRhdGlvbi9uZXR3b3JraW5nL2RldmljZV9kcml2ZXJzL2V0aGVybmV0L3N0bWljcm8vc3RtbWFjLnJzdD0xMDc9c3ludGF4IChlLmcuIGZvciBQQ0kgbW9kdWxlKTo6XG5Eb2N1bWVudGF0aW9uL25ldHdvcmtpbmcvZGV2aWNlX2RyaXZlcnMvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMucnN0LTEwOC1cbkRvY3VtZW50YXRpb24vbmV0d29ya2luZy9kZXZpY2VfZHJpdmVycy9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy5yc3Q6MTA5OiAgICBtb2Rwcm9iZSBzdG1tYWNfcGNpIFtcdTAwM2NvcHRpb25cdTAwM2U9XHUwMDNjVkFMMVx1MDAzZSxcdTAwM2NWQUwyXHUwMDNlLC4uLl1cbkRvY3VtZW50YXRpb24vbmV0d29ya2luZy9kZXZpY2VfZHJpdmVycy9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy5yc3QtMTEwLVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL01ha2VmaWxlPTUzPW9iai0kKENPTkZJR19EV01BQ19NT1RPUkNPTU0pXHQmIzQzOz0gZHdtYWMtbW90b3Jjb21tLm9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL01ha2VmaWxlOjU0OnN0bW1hYy1wY2ktb2Jqczo9IHN0bW1hY19wY2kub1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWludGVsLmM9MjU9c3RydWN0IGludGVsX3ByaXZfZGF0YSB7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuYy0zOS0gKi9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWludGVsLmM6NDA6c3RydWN0IHN0bW1hY19wY2lfZnVuY19kYXRhIHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWludGVsLmMtNDEtXHR1bnNpZ25lZCBpbnQgZnVuYztcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbnRlbC5jLTQ0LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuYzo0NTpzdHJ1Y3Qgc3RtbWFjX3BjaV9kbWlfZGF0YSB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbnRlbC5jOjQ2Olx0Y29uc3Qgc3RydWN0IHN0bW1hY19wY2lfZnVuY19kYXRhICpmdW5jO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuYy00Ny1cdHNpemVfdCBuZnVuY3M7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuYy00OS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWludGVsLmM6NTA6c3RydWN0IHN0bW1hY19wY2lfaW5mbyB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbnRlbC5jLTUxLVx0aW50ICgqc2V0dXApKHN0cnVjdCBwY2lfZGV2ICpwZGV2LCBzdHJ1Y3QgcGxhdF9zdG1tYWNlbmV0X2RhdGEgKnBsYXQpO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWludGVsLmM9OTE9c3RhdGljIGNvbnN0IGludCBhZGxuX3Rzbl9sYW5lX3JlZ3NbXSA9IHs2fTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWludGVsLmMtOTItXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbnRlbC5jOjkzOnN0YXRpYyBpbnQgc3RtbWFjX3BjaV9maW5kX3BoeV9hZGRyKHN0cnVjdCBwY2lfZGV2ICpwZGV2LFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuYy05NC1cdFx0XHRcdCAgICBjb25zdCBzdHJ1Y3QgZG1pX3N5c3RlbV9pZCAqZG1pX2xpc3QpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbnRlbC5jLTk1LXtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWludGVsLmM6OTY6XHRjb25zdCBzdHJ1Y3Qgc3RtbWFjX3BjaV9mdW5jX2RhdGEgKmZ1bmNfZGF0YTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWludGVsLmM6OTc6XHRjb25zdCBzdHJ1Y3Qgc3RtbWFjX3BjaV9kbWlfZGF0YSAqZG1pX2RhdGE7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbnRlbC5jLTk4LVx0Y29uc3Qgc3RydWN0IGRtaV9zeXN0ZW1faWQgKmRtaV9pZDtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbnRlbC5jPTc1NT1zdGF0aWMgaW50IGVobF9zZ21paV9kYXRhKHN0cnVjdCBwY2lfZGV2ICpwZGV2LFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWludGVsLmMtNzc0LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuYzo3NzU6c3RhdGljIHN0cnVjdCBzdG1tYWNfcGNpX2luZm8gZWhsX3NnbWlpMWdfaW5mbyA9IHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWludGVsLmMtNzc2LVx0LnNldHVwID0gZWhsX3NnbWlpX2RhdGEsXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuYz03Nzk9c3RhdGljIGludCBlaGxfcmdtaWlfZGF0YShzdHJ1Y3QgcGNpX2RldiAqcGRldixcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbnRlbC5jLTc4OS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWludGVsLmM6NzkwOnN0YXRpYyBzdHJ1Y3Qgc3RtbWFjX3BjaV9pbmZvIGVobF9yZ21paTFnX2luZm8gPSB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbnRlbC5jLTc5MS1cdC5zZXR1cCA9IGVobF9yZ21paV9kYXRhLFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWludGVsLmM9ODEwPXN0YXRpYyBpbnQgZWhsX3BzZTBfcmdtaWkxZ19kYXRhKHN0cnVjdCBwY2lfZGV2ICpwZGV2LFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWludGVsLmMtODE2LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuYzo4MTc6c3RhdGljIHN0cnVjdCBzdG1tYWNfcGNpX2luZm8gZWhsX3BzZTBfcmdtaWkxZ19pbmZvID0ge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuYy04MTgtXHQuc2V0dXAgPSBlaGxfcHNlMF9yZ21paTFnX2RhdGEsXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuYz04MjE9c3RhdGljIGludCBlaGxfcHNlMF9zZ21paTFnX2RhdGEoc3RydWN0IHBjaV9kZXYgKnBkZXYsXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuYy04MzgtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbnRlbC5jOjgzOTpzdGF0aWMgc3RydWN0IHN0bW1hY19wY2lfaW5mbyBlaGxfcHNlMF9zZ21paTFnX2luZm8gPSB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbnRlbC5jLTg0MC1cdC5zZXR1cCA9IGVobF9wc2UwX3NnbWlpMWdfZGF0YSxcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbnRlbC5jPTg1OT1zdGF0aWMgaW50IGVobF9wc2UxX3JnbWlpMWdfZGF0YShzdHJ1Y3QgcGNpX2RldiAqcGRldixcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbnRlbC5jLTg2NS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWludGVsLmM6ODY2OnN0YXRpYyBzdHJ1Y3Qgc3RtbWFjX3BjaV9pbmZvIGVobF9wc2UxX3JnbWlpMWdfaW5mbyA9IHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWludGVsLmMtODY3LVx0LnNldHVwID0gZWhsX3BzZTFfcmdtaWkxZ19kYXRhLFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWludGVsLmM9ODcwPXN0YXRpYyBpbnQgZWhsX3BzZTFfc2dtaWkxZ19kYXRhKHN0cnVjdCBwY2lfZGV2ICpwZGV2LFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWludGVsLmMtODg3LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuYzo4ODg6c3RhdGljIHN0cnVjdCBzdG1tYWNfcGNpX2luZm8gZWhsX3BzZTFfc2dtaWkxZ19pbmZvID0ge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuYy04ODktXHQuc2V0dXAgPSBlaGxfcHNlMV9zZ21paTFnX2RhdGEsXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuYz05MTM9c3RhdGljIGludCB0Z2xfc2dtaWlfcGh5MF9kYXRhKHN0cnVjdCBwY2lfZGV2ICpwZGV2LFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWludGVsLmMtOTIxLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuYzo5MjI6c3RhdGljIHN0cnVjdCBzdG1tYWNfcGNpX2luZm8gdGdsX3NnbWlpMWdfcGh5MF9pbmZvID0ge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuYy05MjMtXHQuc2V0dXAgPSB0Z2xfc2dtaWlfcGh5MF9kYXRhLFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWludGVsLmM9OTI2PXN0YXRpYyBpbnQgdGdsX3NnbWlpX3BoeTFfZGF0YShzdHJ1Y3QgcGNpX2RldiAqcGRldixcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbnRlbC5jLTkzNC1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWludGVsLmM6OTM1OnN0YXRpYyBzdHJ1Y3Qgc3RtbWFjX3BjaV9pbmZvIHRnbF9zZ21paTFnX3BoeTFfaW5mbyA9IHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWludGVsLmMtOTM2LVx0LnNldHVwID0gdGdsX3NnbWlpX3BoeTFfZGF0YSxcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbnRlbC5jPTkzOT1zdGF0aWMgaW50IGFkbHNfc2dtaWlfcGh5MF9kYXRhKHN0cnVjdCBwY2lfZGV2ICpwZGV2LFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWludGVsLmMtOTQ4LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuYzo5NDk6c3RhdGljIHN0cnVjdCBzdG1tYWNfcGNpX2luZm8gYWRsc19zZ21paTFnX3BoeTBfaW5mbyA9IHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWludGVsLmMtOTUwLVx0LnNldHVwID0gYWRsc19zZ21paV9waHkwX2RhdGEsXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuYz05NTM9c3RhdGljIGludCBhZGxzX3NnbWlpX3BoeTFfZGF0YShzdHJ1Y3QgcGNpX2RldiAqcGRldixcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbnRlbC5jLTk2Mi1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWludGVsLmM6OTYzOnN0YXRpYyBzdHJ1Y3Qgc3RtbWFjX3BjaV9pbmZvIGFkbHNfc2dtaWkxZ19waHkxX2luZm8gPSB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbnRlbC5jLTk2NC1cdC5zZXR1cCA9IGFkbHNfc2dtaWlfcGh5MV9kYXRhLFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWludGVsLmM9OTkyPXN0YXRpYyBpbnQgYWRsbl9zZ21paV9waHkwX2RhdGEoc3RydWN0IHBjaV9kZXYgKnBkZXYsXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuYy0xMDEwLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuYzoxMDExOnN0YXRpYyBzdHJ1Y3Qgc3RtbWFjX3BjaV9pbmZvIGFkbG5fc2dtaWkxZ19waHkwX2luZm8gPSB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbnRlbC5jLTEwMTItXHQuc2V0dXAgPSBhZGxuX3NnbWlpX3BoeTBfZGF0YSxcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbnRlbC5jLTEwMTQtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbnRlbC5jOjEwMTU6c3RhdGljIGNvbnN0IHN0cnVjdCBzdG1tYWNfcGNpX2Z1bmNfZGF0YSBnYWxpbGVvX3N0bW1hY19mdW5jX2RhdGFbXSA9IHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWludGVsLmMtMTAxNi1cdHtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbnRlbC5jLTEwMjEtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbnRlbC5jOjEwMjI6c3RhdGljIGNvbnN0IHN0cnVjdCBzdG1tYWNfcGNpX2RtaV9kYXRhIGdhbGlsZW9fc3RtbWFjX2RtaV9kYXRhID0ge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuYy0xMDIzLVx0LmZ1bmMgPSBnYWxpbGVvX3N0bW1hY19mdW5jX2RhdGEsXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuYy0xMDI2LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuYzoxMDI3OnN0YXRpYyBjb25zdCBzdHJ1Y3Qgc3RtbWFjX3BjaV9mdW5jX2RhdGEgaW90MjA0MF9zdG1tYWNfZnVuY19kYXRhW10gPSB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbnRlbC5jLTEwMjgtXHR7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuYy0xMDM3LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuYzoxMDM4OnN0YXRpYyBjb25zdCBzdHJ1Y3Qgc3RtbWFjX3BjaV9kbWlfZGF0YSBpb3QyMDQwX3N0bW1hY19kbWlfZGF0YSA9IHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWludGVsLmMtMTAzOS1cdC5mdW5jID0gaW90MjA0MF9zdG1tYWNfZnVuY19kYXRhLFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWludGVsLmM9MTA3OD1zdGF0aWMgaW50IHF1YXJrX2RlZmF1bHRfZGF0YShzdHJ1Y3QgcGNpX2RldiAqcGRldixcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbnRlbC5jLTEwODgtXHQgKi9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWludGVsLmM6MTA4OTpcdHJldCA9IHN0bW1hY19wY2lfZmluZF9waHlfYWRkcihwZGV2LCBxdWFya19wY2lfZG1pKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWludGVsLmMtMTA5MC1cdGlmIChyZXQgXHUwMDNjIDApIHtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbnRlbC5jLTExMTMtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbnRlbC5jOjExMTQ6c3RhdGljIGNvbnN0IHN0cnVjdCBzdG1tYWNfcGNpX2luZm8gcXVhcmtfaW5mbyA9IHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWludGVsLmMtMTExNS1cdC5zZXR1cCA9IHF1YXJrX2RlZmF1bHRfZGF0YSxcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbnRlbC5jPTEyMzI9c3RhdGljIGludCBpbnRlbF9ldGhfcGNpX3Byb2JlKHN0cnVjdCBwY2lfZGV2ICpwZGV2LFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWludGVsLmMtMTIzNC17XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbnRlbC5jOjEyMzU6XHRzdHJ1Y3Qgc3RtbWFjX3BjaV9pbmZvICppbmZvID0gKHN0cnVjdCBzdG1tYWNfcGNpX2luZm8gKilpZC1cdTAwM2Vkcml2ZXJfZGF0YTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWludGVsLmMtMTIzNi1cdHN0cnVjdCBpbnRlbF9wcml2X2RhdGEgKmludGVsX3ByaXY7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtbG9vbmdzb24uYz03Nj1zdHJ1Y3QgbG9vbmdzb25fZGF0YSB7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtbG9vbmdzb24uYy04MS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWxvb25nc29uLmM6ODI6c3RydWN0IHN0bW1hY19wY2lfaW5mbyB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1sb29uZ3Nvbi5jLTgzLVx0aW50ICgqc2V0dXApKHN0cnVjdCBwY2lfZGV2ICpwZGV2LCBzdHJ1Y3QgcGxhdF9zdG1tYWNlbmV0X2RhdGEgKnBsYXQpO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWxvb25nc29uLmM9MTMyPXN0YXRpYyBpbnQgbG9vbmdzb25fZ21hY19kYXRhKHN0cnVjdCBwY2lfZGV2ICpwZGV2LFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWxvb25nc29uLmMtMTQxLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtbG9vbmdzb24uYzoxNDI6c3RhdGljIHN0cnVjdCBzdG1tYWNfcGNpX2luZm8gbG9vbmdzb25fZ21hY19wY2lfaW5mbyA9IHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWxvb25nc29uLmMtMTQzLVx0LnNldHVwID0gbG9vbmdzb25fZ21hY19kYXRhLFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWxvb25nc29uLmM9MTY1PXN0YXRpYyBpbnQgbG9vbmdzb25fZ25ldF9kYXRhKHN0cnVjdCBwY2lfZGV2ICpwZGV2LFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWxvb25nc29uLmMtMTc2LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtbG9vbmdzb24uYzoxNzc6c3RhdGljIHN0cnVjdCBzdG1tYWNfcGNpX2luZm8gbG9vbmdzb25fZ25ldF9wY2lfaW5mbyA9IHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWxvb25nc29uLmMtMTc4LVx0LnNldHVwID0gbG9vbmdzb25fZ25ldF9kYXRhLFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWxvb25nc29uLmM9NDk4PXN0YXRpYyBpbnQgbG9vbmdzb25fZHdtYWNfcHJvYmUoc3RydWN0IHBjaV9kZXYgKnBkZXYsIGNvbnN0IHN0cnVjdCBwY2lfZGV2aWNlX2lkICppZClcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1sb29uZ3Nvbi5jLTUwMS1cdHN0cnVjdCBzdG1tYWNfcmVzb3VyY2VzIHJlcyA9IHt9O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtbG9vbmdzb24uYzo1MDI6XHRzdHJ1Y3Qgc3RtbWFjX3BjaV9pbmZvICppbmZvO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtbG9vbmdzb24uYy01MDMtXHRzdHJ1Y3QgbG9vbmdzb25fZGF0YSAqbGQ7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtbG9vbmdzb24uYy01MzctXHRwbGF0LVx1MDAzZWZpeF9zb2NfcmVzZXQgPSBsb29uZ3Nvbl9kd21hY19maXhfcmVzZXQ7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1sb29uZ3Nvbi5jOjUzODpcdHBsYXQtXHUwMDNlc3VzcGVuZCA9IHN0bW1hY19wY2lfcGxhdF9zdXNwZW5kO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtbG9vbmdzb24uYzo1Mzk6XHRwbGF0LVx1MDAzZXJlc3VtZSA9IHN0bW1hY19wY2lfcGxhdF9yZXN1bWU7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1sb29uZ3Nvbi5jLTU0MC1cdGxkLVx1MDAzZWRldiA9IFx1MDAyNnBkZXYtXHUwMDNlZGV2O1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWxvb25nc29uLmMtNTQyLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtbG9vbmdzb24uYzo1NDM6XHRpbmZvID0gKHN0cnVjdCBzdG1tYWNfcGNpX2luZm8gKilpZC1cdTAwM2Vkcml2ZXJfZGF0YTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWxvb25nc29uLmMtNTQ0LVx0cmV0ID0gaW5mby1cdTAwM2VzZXR1cChwZGV2LCBwbGF0KTtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1tb3RvcmNvbW0uYz0xODg9c3RhdGljIGludCBtb3RvcmNvbW1fcmVzdW1lKHN0cnVjdCBkZXZpY2UgKmRldiwgdm9pZCAqYnNwX3ByaXYpXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtbW90b3Jjb21tLmMtMTkyLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtbW90b3Jjb21tLmM6MTkzOlx0cmV0ID0gc3RtbWFjX3BjaV9wbGF0X3Jlc3VtZShkZXYsIGJzcF9wcml2KTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLW1vdG9yY29tbS5jLTE5NC1cdGlmIChyZXQpXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtbW90b3Jjb21tLmM9MjA4PW1vdG9yY29tbV9kZWZhdWx0X3BsYXRfZGF0YShzdHJ1Y3QgcGNpX2RldiAqcGRldilcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1tb3RvcmNvbW0uYy0yNDgtXHRwbGF0LVx1MDAzZWNvcmVfdHlwZVx0XHQ9IERXTUFDX0NPUkVfR01BQzQ7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1tb3RvcmNvbW0uYzoyNDk6XHRwbGF0LVx1MDAzZXN1c3BlbmRcdFx0PSBzdG1tYWNfcGNpX3BsYXRfc3VzcGVuZDtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLW1vdG9yY29tbS5jLTI1MC1cdHBsYXQtXHUwMDNlcmVzdW1lXHRcdD0gbW90b3Jjb21tX3Jlc3VtZTtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbGlicGNpLmMtMTEtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbGlicGNpLmM6MTI6aW50IHN0bW1hY19wY2lfcGxhdF9zdXNwZW5kKHN0cnVjdCBkZXZpY2UgKmRldiwgdm9pZCAqYnNwX3ByaXYpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbGlicGNpLmMtMTMte1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19saWJwY2kuYy0yNS19XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbGlicGNpLmM6MjY6RVhQT1JUX1NZTUJPTF9HUEwoc3RtbWFjX3BjaV9wbGF0X3N1c3BlbmQpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX2xpYnBjaS5jLTI3LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX2xpYnBjaS5jOjI4OmludCBzdG1tYWNfcGNpX3BsYXRfcmVzdW1lKHN0cnVjdCBkZXZpY2UgKmRldiwgdm9pZCAqYnNwX3ByaXYpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbGlicGNpLmMtMjkte1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19saWJwY2kuYy00My19XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbGlicGNpLmM6NDQ6RVhQT1JUX1NZTUJPTF9HUEwoc3RtbWFjX3BjaV9wbGF0X3Jlc3VtZSk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbGlicGNpLmMtNDUtXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX2xpYnBjaS5oLTgtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbGlicGNpLmg6OTppbnQgc3RtbWFjX3BjaV9wbGF0X3N1c3BlbmQoc3RydWN0IGRldmljZSAqZGV2LCB2b2lkICpic3BfcHJpdik7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbGlicGNpLmg6MTA6aW50IHN0bW1hY19wY2lfcGxhdF9yZXN1bWUoc3RydWN0IGRldmljZSAqZGV2LCB2b2lkICpic3BfcHJpdik7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbGlicGNpLmgtMTEtXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX3BjaS5jLTE4LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX3BjaS5jOjE5OnN0cnVjdCBzdG1tYWNfcGNpX2luZm8ge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX3BjaS5jLTIwLVx0aW50ICgqc2V0dXApKHN0cnVjdCBwY2lfZGV2ICpwZGV2LCBzdHJ1Y3QgcGxhdF9zdG1tYWNlbmV0X2RhdGEgKnBsYXQpO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19wY2kuYz0zMz1zdGF0aWMgaW50IHN0bW1hY19kZWZhdWx0X2RhdGEoc3RydWN0IHBjaV9kZXYgKnBkZXYsXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX3BjaS5jLTQ5LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX3BjaS5jOjUwOnN0YXRpYyBjb25zdCBzdHJ1Y3Qgc3RtbWFjX3BjaV9pbmZvIHN0bW1hY19wY2lfaW5mbyA9IHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19wY2kuYy01MS1cdC5zZXR1cCA9IHN0bW1hY19kZWZhdWx0X2RhdGEsXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX3BjaS5jPTU0PXN0YXRpYyBpbnQgc25wc19nbWFjNV9kZWZhdWx0X2RhdGEoc3RydWN0IHBjaV9kZXYgKnBkZXYsXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX3BjaS5jLTEwMS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19wY2kuYzoxMDI6c3RhdGljIGNvbnN0IHN0cnVjdCBzdG1tYWNfcGNpX2luZm8gc25wc19nbWFjNV9wY2lfaW5mbyA9IHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19wY2kuYy0xMDMtXHQuc2V0dXAgPSBzbnBzX2dtYWM1X2RlZmF1bHRfZGF0YSxcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfcGNpLmMtMTA2LS8qKlxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX3BjaS5jOjEwNzogKiBzdG1tYWNfcGNpX3Byb2JlXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfcGNpLmMtMTA4LSAqXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX3BjaS5jLTExNy0gKi9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19wY2kuYzoxMTg6c3RhdGljIGludCBzdG1tYWNfcGNpX3Byb2JlKHN0cnVjdCBwY2lfZGV2ICpwZGV2LFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX3BjaS5jLTExOS1cdFx0XHQgICAgY29uc3Qgc3RydWN0IHBjaV9kZXZpY2VfaWQgKmlkKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX3BjaS5jLTEyMC17XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfcGNpLmM6MTIxOlx0c3RydWN0IHN0bW1hY19wY2lfaW5mbyAqaW5mbyA9IChzdHJ1Y3Qgc3RtbWFjX3BjaV9pbmZvICopaWQtXHUwMDNlZHJpdmVyX2RhdGE7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfcGNpLmMtMTIyLVx0c3RydWN0IHBsYXRfc3RtbWFjZW5ldF9kYXRhICpwbGF0O1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19wY2kuYy0xNzktXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfcGNpLmM6MTgwOlx0cGxhdC1cdTAwM2VzdXNwZW5kID0gc3RtbWFjX3BjaV9wbGF0X3N1c3BlbmQ7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfcGNpLmM6MTgxOlx0cGxhdC1cdTAwM2VyZXN1bWUgPSBzdG1tYWNfcGNpX3BsYXRfcmVzdW1lO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX3BjaS5jLTE4Mi1cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfcGNpLmMtMTg2LS8qKlxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX3BjaS5jOjE4NzogKiBzdG1tYWNfcGNpX3JlbW92ZVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX3BjaS5jLTE4OC0gKlxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19wY2kuYy0xOTEtICovXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfcGNpLmM6MTkyOnN0YXRpYyB2b2lkIHN0bW1hY19wY2lfcmVtb3ZlKHN0cnVjdCBwY2lfZGV2ICpwZGV2KVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX3BjaS5jLTE5My17XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX3BjaS5jPTIwMz1zdGF0aWMgY29uc3Qgc3RydWN0IHBjaV9kZXZpY2VfaWQgc3RtbWFjX2lkX3RhYmxlW10gPSB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfcGNpLmM6MjA0Olx0eyBQQ0lfREVWSUNFX0RBVEEoU1RNTUFDLCBTVE1NQUMsIFx1MDAyNnN0bW1hY19wY2lfaW5mbykgfSxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19wY2kuYzoyMDU6XHR7IFBDSV9ERVZJQ0VfREFUQShTVE1JQ1JPLCBNQUMsIFx1MDAyNnN0bW1hY19wY2lfaW5mbykgfSxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19wY2kuYy0yMDYtXHR7IFBDSV9ERVZJQ0VfREFUQShTWU5PUFNZUywgR01BQzVfSUQsIFx1MDAyNnNucHNfZ21hYzVfcGNpX2luZm8pIH0sXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX3BjaS5jPTIxMD1NT0RVTEVfREVWSUNFX1RBQkxFKHBjaSwgc3RtbWFjX2lkX3RhYmxlKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19wY2kuYy0yMTEtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfcGNpLmM6MjEyOnN0YXRpYyBzdHJ1Y3QgcGNpX2RyaXZlciBzdG1tYWNfcGNpX2RyaXZlciA9IHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19wY2kuYy0yMTMtXHQubmFtZSA9IFNUTU1BQ19SRVNPVVJDRV9OQU1FLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX3BjaS5jLTIxNC1cdC5pZF90YWJsZSA9IHN0bW1hY19pZF90YWJsZSxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19wY2kuYzoyMTU6XHQucHJvYmUgPSBzdG1tYWNfcGNpX3Byb2JlLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX3BjaS5jOjIxNjpcdC5yZW1vdmUgPSBzdG1tYWNfcGNpX3JlbW92ZSxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19wY2kuYy0yMTctXHQuZHJpdmVyICAgICAgICAgPSB7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX3BjaS5jLTIyMS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19wY2kuYzoyMjI6bW9kdWxlX3BjaV9kcml2ZXIoc3RtbWFjX3BjaV9kcml2ZXIpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX3BjaS5jLTIyMy1cbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD41LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8xNSAxODowMDwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAxMDgwNgoJCQkJCQkJb3V0cHV0OiAxOAoJCQkJCQkJdGhvdWdodHM6IDkyNgoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipSZWFjaGluZyB0aGUgYHN0bW1hY2AgRHJpdmVyIGluIGEgRnV6emluZyBDb250ZXh0KioKCk9rYXksIHNvIHRoZSBgc3RtbWFjYCBkcml2ZXIgaGFzIFBDSSBiaW5kaW5ncywgd2hpY2ggaW1tZWRpYXRlbHkgbWFrZXMgbWUgdGhpbmsgb2Ygc3l6a2FsbGVyIGFuZCBpdHMgUENJIGZ1enppbmcgY2FwYWJpbGl0aWVzLiBJIG5lZWQgdG8gZmlndXJlIG91dCBpZiBpdCYjMzk7cyBmZWFzaWJsZSB0byBmdXp6IHRoaXMgZHJpdmVyLiBJbml0aWFsbHksIEkgcmVtZW1iZXIgdGhhdCBzeXprYWxsZXIgZG9lc24mIzM5O3QganVzdCBzcGF3biAqYW55KiBQQ0kgZGV2aWNlLCB1bmxlc3MgUUVNVSBvciBzb21lIHNvZnR3YXJlIGVtdWxhdGlvbiBpcyBhdmFpbGFibGUuIEkmIzM5O20gcmVjYWxsaW5nIGB2aGNpYCBmb3IgVVNCLCBgbWFjODAyMTFfaHdzaW1gIGZvciB3aWZpIOKAkyB0aGVzZSBhcmUgc3BlY2lmaWMgY2FzZXMuCgpUaGVuLCBJIHJlbWVtYmVyIHN5emthbGxlciAqZG9lcyogaGF2ZSBzb21ldGhpbmcgbGlrZSBgc3l6X3BjaV9kZXZpY2VgIG9yIHNpbWlsYXIsIGJ1dCB0eXBpY2FsbHkgcmVsaWVzIG9uIHRoZSBkZXZpY2UgYmVpbmcgZW11bGF0ZWQgYnkgUUVNVS4gTm93IHRoZSBxdWVzdGlvbiBpczogZG9lcyBRRU1VIGVtdWxhdGUgYHN0bW1hY2A/IEkga25vdyBRRU1VIGhhcyBlbXVsYXRpb25zIGZvciB2YXJpb3VzIG5ldHdvcmsgZGV2aWNlcyBsaWtlIGBpZ2JgLCBgZTEwMDBgLCBhbmQgYHZpcnRpby1uZXRgLCBidXQgSSYjMzk7bSBub3QgaW1tZWRpYXRlbHkgc3VyZSBhYm91dCBgc3RtbWFjYC4KClRoZSBwcm9tcHQgc3BlY2lmaWNhbGx5IG1lbnRpb25zICYjMzQ7Q29kZSBwYXRocyB0aGF0IGFyZSBpbXBvc3NpYmxlIHRvIHJlYWNoIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIEdDRSBvciBRRU1VLCBldmVuIHdoZW4gdXRpbGl6aW5nIHNvZnR3YXJlLWVtdWxhdGVkIGhhcmR3YXJlJiMzNDsuIFNpbmNlIGBzdG1tYWNgIGlzIG9mdGVuIGEgcGxhdGZvcm0gZHJpdmVyIGZvciBzcGVjaWZpYyBTb0NzLCB0aGF0IHJhaXNlcyBhIGNvbmNlcm4uIEhvd2V2ZXIsIEkgcmVjYWxsIHRoYXQgYHN0bW1hY2AgaXMgYWN0dWFsbHkgKnZlcnkqIGNvbW1vbiDigJMgaXQmIzM5O3MgdGhlIFN5bm9wc3lzIERlc2lnbldhcmUgTUFDLCB3aGljaCBpcyB1c2VkIGluIGEgbG90IG9mIHBsYWNlcyAoSW50ZWwsIExvb25nc29uLCBldGMuKS4KCk5vdywgdGhlIHF1ZXN0aW9uIGlzIHdoZXRoZXIgc3l6a2FsbGVyIGNhbiByZWFjaCBpdC4gSSYjMzk7bSBjaXJjbGluZyBiYWNrIHRvIHRoZSBzeXprYWxsZXIgUENJIGluamVjdGlvbiBtZWNoYW5pc21zLiBBY3R1YWxseSwgc3l6a2FsbGVyICpkb2VzKiBoYXZlIGEgd2F5IHRvIGluamVjdCBQQ0kgZGV2aWNlcyBub3csIHJpZ2h0PyBObywgd2FpdCAtIHN5emthbGxlciB1c2VzIHZoY2kgZm9yIFVTQiwgYW5kIHNvbWV0aGluZyBlbHNlIGZvciBQQ0kuCgpUaGUgcHJvbXB0IGRpcmVjdHMgbWUgdG8gY29uc2lkZXIgcmVhY2hhYmlsaXR5IGluIFFFTVUgYW5kIHRoZSBjb3JlIGtlcm5lbCBsb2dpYy4gVGhlIHBhdGNoIGlzIG1vZGlmeWluZyBgX19mcmVlX2RtYV9yeF9kZXNjX3Jlc291cmNlc2AgYW5kIGBfX2ZyZWVfZG1hX3R4X2Rlc2NfcmVzb3VyY2VzYCwgd2hpY2ggYXJlIHJlbGF0ZWQgdG8gcmVzb3VyY2UgZnJlZWluZywgdXN1YWxseSB0cmlnZ2VyZWQgb24gZGV2aWNlIGNsb3NlIG9yIHJlc291cmNlIGRlYWxsb2NhdGlvbi4gVGhhdCBtZWFucyBpZiB0aGUgZGV2aWNlICpjYW4qIGJlIHByb2JlZCwgdGhpcyBjb2RlIGNhbiBiZSBoaXQuCgpTbywgdGhlIHJlYWwga2V5IHF1ZXN0aW9uIGlzIHdoZXRoZXIgYHN0bW1hY2AgY2FuIGJlIHByb2JlZCB3aXRoaW4gUUVNVS4gUUVNVSBkb2VzbiYjMzk7dCBoYXZlIGEgKmdlbmVyaWMqIGBzdG1tYWNgIGRldmljZSwgYnV0IG1heWJlIGl0JiMzOTtzIHVzZWQgaW4gc29tZSBBUk0tYmFzZWQgZW11bGF0aW9ucz8gRnJlZXNjYWxlIGkuTVggKGBpbXhgKSwgQWxsd2lubmVyLCBldGMuLCBhcmUgY2FuZGlkYXRlcy4gSSBrbm93IHRob3NlIGFyZSBlbXVsYXRlZCBpbiBRRU1VLgoKVGhlbiwgSSByZWNhbGwgdGhhdCBgc3RtbWFjYCBpcyBvZnRlbiB1c2VkIHZpYSBgZHdtYWNgIChEZXNpZ25XYXJlIE1BQykuIFFFTVUgZG9lcyBlbXVsYXRlIHRoaW5ncyBsaWtlIGBhbGx3aW5uZXItc3VuOGktZW1hY2AsIGBpbXhfZmVjYCwgYW5kIGBjYWRlbmNlX2dlbWAuIERvZXMgUUVNVSBlbXVsYXRlIGBkd21hY2A/IExldCBtZSBsb29rLi4uIFllcyEgUUVNVSAqZG9lcyogaGF2ZSBgaHcvbmV0L2Rlc2lnbndhcmUuY2AhIEFuZCBgc3RtbWFjYCBpcyB0aGUgZHJpdmVyIGZvciBEZXNpZ25XYXJlIE1BQy4KClRoZXJlZm9yZSwgaXQgKmNhbiogYmUgcmVhY2hlZCBpbiBRRU1VISBUaGUgbmV4dCBzdGVwIGlzIHRvIGZpbmQgdGhlIHJlbGV2YW50IGNvbmZpZ3VyYXRpb24gb3B0aW9ucy4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD42LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8xNSAxODowMDwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtjb25maWcgU1RNTUFDJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctMS0jIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wLW9ubHlcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc6Mjpjb25maWcgU1RNTUFDX0VUSFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy0zLVx0dHJpc3RhdGUgXCYjMzQ7U1RNaWNyb2VsZWN0cm9uaWNzIE11bHRpLUdpZ2FiaXQgRXRoZXJuZXQgZHJpdmVyXCYjMzQ7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZz0xOD1pZiBTVE1NQUNfRVRIXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTE5LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZzoyMDpjb25maWcgU1RNTUFDX1NFTEZURVNUU1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy0yMS1cdGJvb2wgXCYjMzQ7U3VwcG9ydCBmb3IgU1RNTUFDIFNlbGZ0ZXN0c1wmIzM0O1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctMjgtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnOjI5OmNvbmZpZyBTVE1NQUNfUExBVEZPUk1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctMzAtXHR0cmlzdGF0ZSBcJiMzNDtTVE1NQUMgUGxhdGZvcm0gYnVzIHN1cHBvcnRcJiMzNDtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnPTM3MT1lbmRpZiAjIFNUTU1BQ19QTEFURk9STVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy0zNzItXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnOjM3Mzpjb25maWcgU1RNTUFDX0xJQlBDSVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy0zNzQtXHR0cmlzdGF0ZVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc9Mzk4PWNvbmZpZyBEV01BQ19NT1RPUkNPTU1cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTQwNi1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc6NDA3OmNvbmZpZyBTVE1NQUNfUENJXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTQwOC1cdHRyaXN0YXRlIFwmIzM0O1NUTU1BQyBQQ0kgYnVzIHN1cHBvcnRcJiMzNDtcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD43LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8xNSAxODowMDwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAxMjk2MgoJCQkJCQkJb3V0cHV0OiAyNQoJCQkJCQkJdGhvdWdodHM6IDY2CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKkFuYWx5emluZyBTVE1NQUMgRHJpdmVyIENvbmZpZ3VyYXRpb25zKioKCk9rYXksIHNvIEkmIzM5O20gbG9va2luZyBhdCB0aGVzZSBTVE1NQUMgY29uZmlndXJhdGlvbnMg4oCTIGBTVE1NQUNfRVRIYCwgYFNUTU1BQ19QQ0lgLCBhbmQgYFNUTU1BQ19QTEFURk9STWAuIFNlZW1zIHByZXR0eSBzdHJhaWdodGZvcndhcmQsIGVhY2ggcmVwcmVzZW50aW5nIGEgZGlmZmVyZW50IGludGVyZmFjZSBvciBwbGF0Zm9ybSB0eXBlLiBNeSBpbW1lZGlhdGUgdGhvdWdodCBpcyB0byBkZWx2ZSBpbnRvIHRoZSBjb3JlIGRyaXZlciBmaWxlLCBgZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uY2AuIFRoYXQmIzM5O3Mgd2hlcmUgdGhlIGhlYXJ0IG9mIHRoaXMgdGhpbmcgbGlrZWx5IGJlYXRzLiBJIG5lZWQgdG8gdW5kZXJzdGFuZCB3aGljaCBmdW5jdGlvbnMgYXJlIGNvbmRpdGlvbmFsaXplZCBvciBtb2RpZmllZCBiYXNlZCBvbiB0aGVzZSBjb25maWd1cmF0aW9ucy4gV2hhdCBzcGVjaWZpYyBiZWhhdmlvcnMgb3IgYWRhcHRhdGlvbnMgYXJlIGluIHBsYWNlIGZvciBlYWNoIG9mIHRoZXNlIHRocmVlIG9wdGlvbnM/IEJ5IHBpbnBvaW50aW5nIHRob3NlLCBJIGNhbiBpZGVudGlmeSB0aGUga2V5IGFyZWFzIHRvIGZvY3VzIG9uIGFuZCB1bmRlcnN0YW5kIHRoZSBpbXBsaWNhdGlvbnMgb2YgZWFjaCBjb25maWd1cmF0aW9uLiBJdCYjMzk7cyBhbGwgYWJvdXQgdHJhY2luZyB0aGUgdmFyaWF0aW9ucyB3aXRoaW4gdGhlIG1haW4gZHJpdmVyIGFuZCBmaWd1cmluZyBvdXQgd2hhdCBjaGFuZ2VzIHVuZGVyIGVhY2ggY29uZGl0aW9uYWwgY29tcGlsYXRpb24gc2V0dGluZy4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD44LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8xNSAxODowMDwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtfX2ZyZWVfZG1hX3J4X2Rlc2NfcmVzb3VyY2VzJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmM9MjEyOT1zdGF0aWMgdm9pZCBzdG1tYWNfZnJlZV90eF9za2J1ZnMoc3RydWN0IHN0bW1hY19wcml2ICpwcml2KVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmMtMjEzOC0vKipcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmM6MjEzOTogKiBfX2ZyZWVfZG1hX3J4X2Rlc2NfcmVzb3VyY2VzIC0gZnJlZSBSWCBkbWEgZGVzYyByZXNvdXJjZXMgKHBlciBxdWV1ZSlcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmMtMjE0MC0gKiBAcHJpdjogcHJpdmF0ZSBzdHJ1Y3R1cmVcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jLTIxNDMtICovXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jOjIxNDQ6c3RhdGljIHZvaWQgX19mcmVlX2RtYV9yeF9kZXNjX3Jlc291cmNlcyhzdHJ1Y3Qgc3RtbWFjX3ByaXYgKnByaXYsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jLTIxNDUtXHRcdFx0XHRcdCBzdHJ1Y3Qgc3RtbWFjX2RtYV9jb25mICpkbWFfY29uZixcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jPTIxODQ9c3RhdGljIHZvaWQgZnJlZV9kbWFfcnhfZGVzY19yZXNvdXJjZXMoc3RydWN0IHN0bW1hY19wcml2ICpwcml2LFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmMtMjE5MS1cdGZvciAocXVldWUgPSAwOyBxdWV1ZSBcdTAwM2MgcnhfY291bnQ7IHF1ZXVlJiM0MzsmIzQzOylcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmM6MjE5MjpcdFx0X19mcmVlX2RtYV9yeF9kZXNjX3Jlc291cmNlcyhwcml2LCBkbWFfY29uZiwgcXVldWUpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYy0yMTkzLX1cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jPTcwMDY9dm9pZCBzdG1tYWNfZGlzYWJsZV9yeF9xdWV1ZShzdHJ1Y3Qgc3RtbWFjX3ByaXYgKnByaXYsIHUzMiBxdWV1ZSlcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jLTcwMTUtXHRzdG1tYWNfc3RvcF9yeF9kbWEocHJpdiwgcXVldWUpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYzo3MDE2Olx0X19mcmVlX2RtYV9yeF9kZXNjX3Jlc291cmNlcyhwcml2LCBcdTAwMjZwcml2LVx1MDAzZWRtYV9jb25mLCBxdWV1ZSk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jLTcwMTctfVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmM9NzAxOT12b2lkIHN0bW1hY19lbmFibGVfcnhfcXVldWUoc3RydWN0IHN0bW1hY19wcml2ICpwcml2LCB1MzIgcXVldWUpXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYy03MDMzLVx0aWYgKHJldCkge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYzo3MDM0Olx0XHRfX2ZyZWVfZG1hX3J4X2Rlc2NfcmVzb3VyY2VzKHByaXYsIFx1MDAyNnByaXYtXHUwMDNlZG1hX2NvbmYsIHF1ZXVlKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmMtNzAzNS1cdFx0bmV0ZGV2X2Vycihwcml2LVx1MDAzZWRldiwgXCYjMzQ7RmFpbGVkIHRvIGluaXQgUlggZGVzYy5cXG5cJiMzNDspO1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjkvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzE1IDE4OjAwPC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDE0MDg5CgkJCQkJCQlvdXRwdXQ6IDI1CgkJCQkJCQl0aG91Z2h0czogMzQ4CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKkFuYWx5emluZyBETUEgRGVzY3JpcHRvciBSZXNvdXJjZSBNYW5hZ2VtZW50KioKCk9rYXksIHNvIEkmIzM5O20gbG9va2luZyBhdCB0aGVzZSBmdW5jdGlvbnM6IGBfX2ZyZWVfZG1hX3J4X2Rlc2NfcmVzb3VyY2VzYCBhbmQgYF9fZnJlZV9kbWFfdHhfZGVzY19yZXNvdXJjZXNgLCBhbmQgaW1tZWRpYXRlbHkgSSByZWNvZ25pemUgdGhlaXIgaW1wb3J0YW5jZS4gVGhleSYjMzk7cmUgdGhlIGNvcmUgb2YgdGhlIGRlc2NyaXB0b3IgcmVzb3VyY2UgbWFuYWdlbWVudCwgYW5kIGl0IGxvb2tzIGxpa2UgdGhleSYjMzk7cmUgY2FsbGVkIGJ5IHRoZWlyIHJlc3BlY3RpdmUgd3JhcHBlciBmdW5jdGlvbnMsIGBmcmVlX2RtYV9yeF9kZXNjX3Jlc291cmNlc2AgYW5kIGBmcmVlX2RtYV90eF9kZXNjX3Jlc291cmNlc2AuIFRoZXNlIHdyYXBwZXJzIGFyZSB0aGVuIGNhbGxlZCBieSBgZnJlZV9kbWFfZGVzY19yZXNvdXJjZXNgLCB3aGljaCBpcyAqY3J1Y2lhbGx5KiBjYWxsZWQgZHVyaW5nIG5ldGRldiBjbG9zdXJlIChgc3RtbWFjX3JlbGVhc2VgKSBvciBkZXZpY2UgcmVtb3ZhbCAoYHN0bW1hY19kdnJfcmVtb3ZlYCkuIFRoYXQgbWFrZXMgc2Vuc2Ug4oCTIGNsZWFuIHVwIHdoZW4geW91JiMzOTtyZSBkb25lIHdpdGggdGhlIGRldmljZS4KCkJ1dCB0aGVuIHRoZXJlJiMzOTtzIGFuIGludGVyZXN0aW5nIHdyaW5rbGU6IGBfX2ZyZWVfZG1hX3J4X2Rlc2NfcmVzb3VyY2VzYCBpcyBhbHNvIGNhbGxlZCBieSBgc3RtbWFjX2Rpc2FibGVfcnhfcXVldWVgIGFuZCBgc3RtbWFjX2VuYWJsZV9yeF9xdWV1ZWAuICBUaGlzIHRlbGxzIG1lIHRoZXNlIGZ1bmN0aW9ucyBhcmUgbGlrZWx5IHRvIGJlIHJlYWNoYWJsZSBpZiB0aGUgZGV2aWNlIGNhbiBiZSBwcm9iZWQgYW5kIGluaXRpYWxpemVkLiBJZiB0aGlzIGlzIGEgZHJpdmVyLCB0aGUgY3JpdGljYWwgcGF0aCB3b3VsZCBiZSB0aGVyZS4KClNvLCB0aGUgdXBzaG90IGlzIHRoaXMgcGF0Y2ggaXMgZml4aW5nIGEgZG91YmxlIGZyZWUgb3IgdXNlLWFmdGVyLWZyZWUgc2l0dWF0aW9uLCBhbmQgaXQgZG9lcyBzbyBieSBzZXR0aW5nIHRoZSBmcmVlZCBwb2ludGVycyB0byBgTlVMTGAuIFNtYXJ0LiBOdWxsaWZ5aW5nIHRob3NlIHBvaW50ZXJzIGlzIHRoZSBzdGFuZGFyZCBhcHByb2FjaCB0byBwcmV2ZW50IHRob3NlIHZlcnkgaXNzdWVzLgoKTm93LCBsZXQmIzM5O3MgbmFpbCBkb3duIHdoYXQgc3ltYm9scyB3ZSBzaG91bGQgZm9jdXMgb24gZm9yIHRoaXMgZHJpdmVyOgpgX19mcmVlX2RtYV9yeF9kZXNjX3Jlc291cmNlc2AsIGBfX2ZyZWVfZG1hX3R4X2Rlc2NfcmVzb3VyY2VzYCwgYGZyZWVfZG1hX3J4X2Rlc2NfcmVzb3VyY2VzYCwgYGZyZWVfZG1hX3R4X2Rlc2NfcmVzb3VyY2VzYCwgYHN0bW1hY19kaXNhYmxlX3J4X3F1ZXVlYCwgYHN0bW1hY19lbmFibGVfcnhfcXVldWVgLCBgc3RtbWFjX2Rpc2FibGVfdHhfcXVldWVgLCBgc3RtbWFjX2VuYWJsZV90eF9xdWV1ZWAsIGBzdG1tYWNfcmVsZWFzZWAsIGBzdG1tYWNfb3BlbmAuCgpJJiMzOTtsbCBzdGFydCBieSBjaGVja2luZyB0aGUgY2FsbGVycyBvZiBgX19mcmVlX2RtYV90eF9kZXNjX3Jlc291cmNlc2AgdG8gdmVyaWZ5IHRoZSBwYXRjaCBzb2x2ZXMgdGhlIGlzc3VlcyB0aGF0IHdlcmUgcmFpc2VkLiBUaGlzIGlzIGRlZmluaXRlbHkgZnVuY3Rpb25hbCBhbmQgd29ydGggZnV6emluZy4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMC8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMTUgMTg6MDA8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7X19mcmVlX2RtYV90eF9kZXNjX3Jlc291cmNlcyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtkcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jPTIxODQ9c3RhdGljIHZvaWQgZnJlZV9kbWFfcnhfZGVzY19yZXNvdXJjZXMoc3RydWN0IHN0bW1hY19wcml2ICpwcml2LFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmMtMjE5NS0vKipcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmM6MjE5NjogKiBfX2ZyZWVfZG1hX3R4X2Rlc2NfcmVzb3VyY2VzIC0gZnJlZSBUWCBkbWEgZGVzYyByZXNvdXJjZXMgKHBlciBxdWV1ZSlcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmMtMjE5Ny0gKiBAcHJpdjogcHJpdmF0ZSBzdHJ1Y3R1cmVcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jLTIyMDAtICovXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jOjIyMDE6c3RhdGljIHZvaWQgX19mcmVlX2RtYV90eF9kZXNjX3Jlc291cmNlcyhzdHJ1Y3Qgc3RtbWFjX3ByaXYgKnByaXYsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jLTIyMDItXHRcdFx0XHRcdCBzdHJ1Y3Qgc3RtbWFjX2RtYV9jb25mICpkbWFfY29uZixcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jPTIyMzM9c3RhdGljIHZvaWQgZnJlZV9kbWFfdHhfZGVzY19yZXNvdXJjZXMoc3RydWN0IHN0bW1hY19wcml2ICpwcml2LFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmMtMjI0MC1cdGZvciAocXVldWUgPSAwOyBxdWV1ZSBcdTAwM2MgdHhfY291bnQ7IHF1ZXVlJiM0MzsmIzQzOylcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmM6MjI0MTpcdFx0X19mcmVlX2RtYV90eF9kZXNjX3Jlc291cmNlcyhwcml2LCBkbWFfY29uZiwgcXVldWUpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYy0yMjQyLX1cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jPTcwNTY9dm9pZCBzdG1tYWNfZGlzYWJsZV90eF9xdWV1ZShzdHJ1Y3Qgc3RtbWFjX3ByaXYgKnByaXYsIHUzMiBxdWV1ZSlcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jLTcwNjUtXHRzdG1tYWNfc3RvcF90eF9kbWEocHJpdiwgcXVldWUpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYzo3MDY2Olx0X19mcmVlX2RtYV90eF9kZXNjX3Jlc291cmNlcyhwcml2LCBcdTAwMjZwcml2LVx1MDAzZWRtYV9jb25mLCBxdWV1ZSk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jLTcwNjctfVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmM9NzA2OT12b2lkIHN0bW1hY19lbmFibGVfdHhfcXVldWUoc3RydWN0IHN0bW1hY19wcml2ICpwcml2LCB1MzIgcXVldWUpXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYy03MDgzLVx0aWYgKHJldCkge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYzo3MDg0Olx0XHRfX2ZyZWVfZG1hX3R4X2Rlc2NfcmVzb3VyY2VzKHByaXYsIFx1MDAyNnByaXYtXHUwMDNlZG1hX2NvbmYsIHF1ZXVlKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmMtNzA4NS1cdFx0bmV0ZGV2X2Vycihwcml2LVx1MDAzZWRldiwgXCYjMzQ7RmFpbGVkIHRvIGluaXQgVFggZGVzYy5cXG5cJiMzNDspO1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjExLzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8xNSAxODowMTwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAxNTc4NQoJCQkJCQkJb3V0cHV0OiAxOQoJCQkJCQkJdGhvdWdodHM6IDI1OAoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipNeSBBbmFseXNpcyBvZiBTVE1NQUMgRHJpdmVyIEZ1enppbmcgVGFyZ2V0cyBhbmQgQ29uZmlndXJhdGlvbnMqKgoKT2theSwgbGV0JiMzOTtzIGJyZWFrIHRoaXMgZG93bi4gTXkgZ29hbCBpcyB0byBkZXRlcm1pbmUgdGhlIG9wdGltYWwgY29uZmlndXJhdGlvbiBmb3IgZnV6emluZyB0aGUgU1RNTUFDIGRyaXZlci4gSSBuZWVkIHRvIGlkZW50aWZ5IHRoZSBrZXkgZnVuY3Rpb25zIHRoYXQgd2FycmFudCBhdHRlbnRpb24gYW5kIHRoZSBuZWNlc3NhcnkgYnVpbGQtdGltZSBjb25maWd1cmF0aW9ucyB0byBleHBvc2UgdGhlbS4KCkZpcnN0bHksIEkmIzM5O20gZm9jdXNpbmcgb24gdGhlc2Ugc3ltYm9sczogYF9fZnJlZV9kbWFfcnhfZGVzY19yZXNvdXJjZXNgLCBgX19mcmVlX2RtYV90eF9kZXNjX3Jlc291cmNlc2AsIGBzdG1tYWNfZGlzYWJsZV9yeF9xdWV1ZWAsIGBzdG1tYWNfZW5hYmxlX3J4X3F1ZXVlYCwgYHN0bW1hY19kaXNhYmxlX3R4X3F1ZXVlYCwgYW5kIGBzdG1tYWNfZW5hYmxlX3R4X3F1ZXVlYC4gVGhlc2UgYXBwZWFyIHRvIGJlIGNvcmUgcmVzb3VyY2UgbWFuYWdlbWVudCBhbmQgcXVldWUgY29udHJvbCBmdW5jdGlvbnMgd2l0aGluIHRoZSBkcml2ZXIsIG1ha2luZyB0aGVtIHByaW1lIHRhcmdldHMgZm9yIGZ1enppbmcuCgpOb3csIG9uIHRvIHRoZSBjb25maWdzLiBJIGluaXRpYWxseSB0aG91Z2h0IEkgbmVlZGVkIGFsbCB0aHJlZTogYFNUTU1BQ19FVEhgLCBgU1RNTUFDX1BDSWAsIGFuZCBgU1RNTUFDX1BMQVRGT1JNYC4gSG93ZXZlciwgY29uc2lkZXJpbmcgdGhlIHBvdGVudGlhbCBmdXp6aW5nIGVudmlyb25tZW50LCBlc3BlY2lhbGx5IGlmIGxldmVyYWdpbmcgUUVNVSBvciBzeXprYWxsZXImIzM5O3MgUENJIGZ1enplciwgYFNUTU1BQ19QQ0lgIHNlZW1zIHRoZSBtb3N0IGNyaXRpY2FsLiBgU1RNTUFDX1BMQVRGT1JNYCBtaWdodCBiZSByZWxldmFudCwgYnV0IFBDSSBpcyBsaWtlbHkgdGhlIG1haW4gbWV0aG9kIGZvciByZWFjaGluZyB0aGVzZSBmdW5jdGlvbnMgdGhyb3VnaCBmdXp6aW5nLiBUbyBiZSBzYWZlLCBJJiMzOTtsbCBpbmNsdWRlIGFsbCB0aHJlZTogYFNUTU1BQ19FVEhgLCBgU1RNTUFDX1BDSWAsIGFuZCBgU1RNTUFDX1BMQVRGT1JNYCwgZm9yIG5vdy4KCkxldCBtZSBkb3VibGUtY2hlY2sgZm9yIG90aGVyIHJlbGV2YW50IGNvbmZpZ3MsIGFzIEkgc2VlIHRoYXQgdGhlcmUgYXJlIGFsc28gc2V2ZXJhbCBQQ0kgdmFyaWFudHMgbGlrZSBgRFdNQUNfSU5URUxgLCBgRFdNQUNfTE9PTkdTT05gLCBhbmQgYERXTUFDX01PVE9SQ09NTWAuIEJ1dCB3YWl0LCBJIHJlY2FsbCB0aGF0IGBTVE1NQUNfUENJYCBzaG91bGQgYmUgc3VmZmljaWVudCB0byBidWlsZCBgc3RtbWFjX3BjaS5vYC4gSSYjMzk7bSBnb2luZyB0byBjb25maXJtIHRoYXQgYnkgY2hlY2tpbmcgYGRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL01ha2VmaWxlYC4gSSYjMzk7bGwgdmVyaWZ5IHRoYXQgYFNUTU1BQ19QQ0lgIGluZGVlZCBlbmFibGVzIHRoZSBjb21waWxhdGlvbiBvZiB0aGUgUENJLXNwZWNpZmljIHBhcnRzIG9mIHRoZSBkcml2ZXIuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTIvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzE1IDE4OjAxPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O1NUTU1BQ19QQ0kmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7RG9jdW1lbnRhdGlvbi9uZXR3b3JraW5nL2RldmljZV9kcml2ZXJzL2V0aGVybmV0L3N0bWljcm8vc3RtbWFjLnJzdD05OD1UaGUga2VybmVsIGNvbmZpZ3VyYXRpb24gb3B0aW9uIGlzIGBgQ09ORklHX1NUTU1BQ19FVEhgYDpcbkRvY3VtZW50YXRpb24vbmV0d29ya2luZy9kZXZpY2VfZHJpdmVycy9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy5yc3QtOTktIC0gYGBDT05GSUdfU1RNTUFDX1BMQVRGT1JNYGA6IGlzIHRvIGVuYWJsZSB0aGUgcGxhdGZvcm0gZHJpdmVyLlxuRG9jdW1lbnRhdGlvbi9uZXR3b3JraW5nL2RldmljZV9kcml2ZXJzL2V0aGVybmV0L3N0bWljcm8vc3RtbWFjLnJzdDoxMDA6IC0gYGBDT05GSUdfU1RNTUFDX1BDSWBgOiBpcyB0byBlbmFibGUgdGhlIHBjaSBkcml2ZXIuXG5Eb2N1bWVudGF0aW9uL25ldHdvcmtpbmcvZGV2aWNlX2RyaXZlcnMvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMucnN0LTEwMS1cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnPTM5OD1jb25maWcgRFdNQUNfTU9UT1JDT01NXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy00MDYtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnOjQwNzpjb25maWcgU1RNTUFDX1BDSVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy00MDgtXHR0cmlzdGF0ZSBcJiMzNDtTVE1NQUMgUENJIGJ1cyBzdXBwb3J0XCYjMzQ7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvTWFrZWZpbGU9NDk9b2JqLSQoQ09ORklHX1NUTU1BQ19MSUJQQ0kpXHQmIzQzOz0gc3RtbWFjX2xpYnBjaS5vXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9NYWtlZmlsZTo1MDpvYmotJChDT05GSUdfU1RNTUFDX1BDSSlcdCYjNDM7PSBzdG1tYWMtcGNpLm9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL01ha2VmaWxlLTUxLW9iai0kKENPTkZJR19EV01BQ19JTlRFTClcdCYjNDM7PSBkd21hYy1pbnRlbC5vXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTMvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzE1IDE4OjAxPC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDE2OTA1CgkJCQkJCQlvdXRwdXQ6IDE5CgkJCQkJCQl0aG91Z2h0czogNDUKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPk9rYXksIGhlcmUmIzM5O3MgbXkgaW50ZXJwcmV0YXRpb24gb2YgdGhvc2UgdGhvdWdodHMsIHN1bW1hcml6ZWQgaW4gdGhlIGZpcnN0IHBlcnNvbiwgYXNzdW1pbmcgdGhlIGF1ZGllbmNlIGlzIGFub3RoZXIgZXhwZXJ0OgoKKipVbmRlcnN0YW5kaW5nIHRoZSBTVE1NQUMgRHJpdmVyIEJ1aWxkIFByb2Nlc3MqKgoKUmlnaHQsIHNvIEkmIzM5O20gc2VlaW5nIHRoYXQgd2hlbiBgU1RNTUFDX1BDSWAgaXMgZW5hYmxlZCwgdGhlIGJ1aWxkIHN5c3RlbSBwcm9kdWNlcyBgc3RtbWFjLXBjaS5vYC4gQW5kLCBhcyBJIHdvdWxkIGV4cGVjdCwgdGhhdCBvYmplY3QgZmlsZSBpcyBhIGRpcmVjdCByZXN1bHQgb2YgY29tcGlsaW5nIHRoZSBzb3VyY2UgY29kZSBpbiBgc3RtbWFjX3BjaS5jYC4gVGhlIHJlbGF0aW9uc2hpcCBpcyBleGFjdGx5IHdoYXQgdGhlIG5hbWluZyBzdWdnZXN0cywgd2hpY2ggaXMgZ29vZC4gV2UgYXJlIGNsZWFybHkga2VlcGluZyB0aGluZ3Mgb3JnYW5pemVkLgoKQWxzbywgdGhlIGNvcmUgb2YgdGhlIGRyaXZlciBmdW5jdGlvbmFsaXR5LCB0aGUgZm91bmRhdGlvbiB0aGF0IGV2ZXJ5dGhpbmcgZGVwZW5kcyBvbiwgaXMgYnVpbHQgaW5kZXBlbmRlbnRseSB0aHJvdWdoIHRoZSBgU1RNTUFDX0VUSGAgY29uZmlndXJhdGlvbiBvcHRpb24uIE1ha2VzIHNlbnNlOyB0aGlzIGtlZXBzIHRoZSBQQ0ktc3BlY2lmaWMgcGFydHMgaXNvbGF0ZWQgd2hpbGUgYWxsb3dpbmcgdGhlIGNvbW1vbiBFdGhlcm5ldCBNQUMgbG9naWMgdG8gYmUgcmV1c2VkLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjE0LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8xNSAxODowMTwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtTVE1NQUNfRVRIJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O0RvY3VtZW50YXRpb24vbmV0d29ya2luZy9kZXZpY2VfZHJpdmVycy9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy5yc3Q9OTU9S2VybmVsIENvbmZpZ3VyYXRpb25cbi0tXG5Eb2N1bWVudGF0aW9uL25ldHdvcmtpbmcvZGV2aWNlX2RyaXZlcnMvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMucnN0LTk3LVxuRG9jdW1lbnRhdGlvbi9uZXR3b3JraW5nL2RldmljZV9kcml2ZXJzL2V0aGVybmV0L3N0bWljcm8vc3RtbWFjLnJzdDo5ODpUaGUga2VybmVsIGNvbmZpZ3VyYXRpb24gb3B0aW9uIGlzIGBgQ09ORklHX1NUTU1BQ19FVEhgYDpcbkRvY3VtZW50YXRpb24vbmV0d29ya2luZy9kZXZpY2VfZHJpdmVycy9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy5yc3QtOTktIC0gYGBDT05GSUdfU1RNTUFDX1BMQVRGT1JNYGA6IGlzIHRvIGVuYWJsZSB0aGUgcGxhdGZvcm0gZHJpdmVyLlxuLS1cbmFyY2gvYXJjL2NvbmZpZ3MvYXhzMTAxX2RlZmNvbmZpZz00ND1DT05GSUdfTkVUREVWSUNFUz15XG4tLVxuYXJjaC9hcmMvY29uZmlncy9heHMxMDFfZGVmY29uZmlnLTUxLSMgQ09ORklHX05FVF9WRU5ET1JfU0VFUSBpcyBub3Qgc2V0XG5hcmNoL2FyYy9jb25maWdzL2F4czEwMV9kZWZjb25maWc6NTI6Q09ORklHX1NUTU1BQ19FVEg9eVxuYXJjaC9hcmMvY29uZmlncy9heHMxMDFfZGVmY29uZmlnLTUzLSMgQ09ORklHX05FVF9WRU5ET1JfVklBIGlzIG5vdCBzZXRcbi0tXG5hcmNoL2FyYy9jb25maWdzL2F4czEwM19kZWZjb25maWc9NDQ9Q09ORklHX05FVERFVklDRVM9eVxuLS1cbmFyY2gvYXJjL2NvbmZpZ3MvYXhzMTAzX2RlZmNvbmZpZy01MS0jIENPTkZJR19ORVRfVkVORE9SX1NFRVEgaXMgbm90IHNldFxuYXJjaC9hcmMvY29uZmlncy9heHMxMDNfZGVmY29uZmlnOjUyOkNPTkZJR19TVE1NQUNfRVRIPXlcbmFyY2gvYXJjL2NvbmZpZ3MvYXhzMTAzX2RlZmNvbmZpZy01My0jIENPTkZJR19ORVRfVkVORE9SX1ZJQSBpcyBub3Qgc2V0XG4tLVxuYXJjaC9hcmMvY29uZmlncy9heHMxMDNfc21wX2RlZmNvbmZpZz00ND1DT05GSUdfTkVUREVWSUNFUz15XG4tLVxuYXJjaC9hcmMvY29uZmlncy9heHMxMDNfc21wX2RlZmNvbmZpZy01MS0jIENPTkZJR19ORVRfVkVORE9SX1NFRVEgaXMgbm90IHNldFxuYXJjaC9hcmMvY29uZmlncy9heHMxMDNfc21wX2RlZmNvbmZpZzo1MjpDT05GSUdfU1RNTUFDX0VUSD15XG5hcmNoL2FyYy9jb25maWdzL2F4czEwM19zbXBfZGVmY29uZmlnLTUzLSMgQ09ORklHX05FVF9WRU5ET1JfVklBIGlzIG5vdCBzZXRcbi0tXG5hcmNoL2FyYy9jb25maWdzL2hzZGtfZGVmY29uZmlnPTM3PUNPTkZJR19ORVRERVZJQ0VTPXlcbmFyY2gvYXJjL2NvbmZpZ3MvaHNka19kZWZjb25maWc6Mzg6Q09ORklHX1NUTU1BQ19FVEg9eVxuYXJjaC9hcmMvY29uZmlncy9oc2RrX2RlZmNvbmZpZy0zOS1DT05GSUdfTUlDUkVMX1BIWT15XG4tLVxuYXJjaC9hcmMvY29uZmlncy90YjEweF9kZWZjb25maWc9NDE9Q09ORklHX05FVERFVklDRVM9eVxuLS1cbmFyY2gvYXJjL2NvbmZpZ3MvdGIxMHhfZGVmY29uZmlnLTQ3LSMgQ09ORklHX05FVF9WRU5ET1JfU0VFUSBpcyBub3Qgc2V0XG5hcmNoL2FyYy9jb25maWdzL3RiMTB4X2RlZmNvbmZpZzo0ODpDT05GSUdfU1RNTUFDX0VUSD15XG5hcmNoL2FyYy9jb25maWdzL3RiMTB4X2RlZmNvbmZpZy00OS0jIENPTkZJR19ORVRfVkVORE9SX1dJWk5FVCBpcyBub3Qgc2V0XG4tLVxuYXJjaC9hcmMvY29uZmlncy92ZGtfaHMzOF9kZWZjb25maWc9Mzk9Q09ORklHX05FVERFVklDRVM9eVxuLS1cbmFyY2gvYXJjL2NvbmZpZ3MvdmRrX2hzMzhfZGVmY29uZmlnLTQ2LSMgQ09ORklHX05FVF9WRU5ET1JfU0VFUSBpcyBub3Qgc2V0XG5hcmNoL2FyYy9jb25maWdzL3Zka19oczM4X2RlZmNvbmZpZzo0NzpDT05GSUdfU1RNTUFDX0VUSD15XG5hcmNoL2FyYy9jb25maWdzL3Zka19oczM4X2RlZmNvbmZpZy00OC0jIENPTkZJR19ORVRfVkVORE9SX1ZJQSBpcyBub3Qgc2V0XG4tLVxuYXJjaC9hcmMvY29uZmlncy92ZGtfaHMzOF9zbXBfZGVmY29uZmlnPTQxPUNPTkZJR19ORVRERVZJQ0VTPXlcbi0tXG5hcmNoL2FyYy9jb25maWdzL3Zka19oczM4X3NtcF9kZWZjb25maWctNDgtIyBDT05GSUdfTkVUX1ZFTkRPUl9TRUVRIGlzIG5vdCBzZXRcbmFyY2gvYXJjL2NvbmZpZ3MvdmRrX2hzMzhfc21wX2RlZmNvbmZpZzo0OTpDT05GSUdfU1RNTUFDX0VUSD15XG5hcmNoL2FyYy9jb25maWdzL3Zka19oczM4X3NtcF9kZWZjb25maWctNTAtIyBDT05GSUdfTkVUX1ZFTkRPUl9WSUEgaXMgbm90IHNldFxuLS1cbmFyY2gvYXJtL2NvbmZpZ3MvbHBjMTh4eF9kZWZjb25maWc9NjE9Q09ORklHX05FVERFVklDRVM9eVxuLS1cbmFyY2gvYXJtL2NvbmZpZ3MvbHBjMTh4eF9kZWZjb25maWctNzYtIyBDT05GSUdfTkVUX1ZFTkRPUl9TTVNDIGlzIG5vdCBzZXRcbmFyY2gvYXJtL2NvbmZpZ3MvbHBjMTh4eF9kZWZjb25maWc6Nzc6Q09ORklHX1NUTU1BQ19FVEg9eVxuYXJjaC9hcm0vY29uZmlncy9scGMxOHh4X2RlZmNvbmZpZy03OC0jIENPTkZJR19ORVRfVkVORE9SX1ZJQSBpcyBub3Qgc2V0XG4tLVxuYXJjaC9hcm0vY29uZmlncy9tdWx0aV92N19kZWZjb25maWc9Mjc1PUNPTkZJR19TTklfQVZFPXlcbmFyY2gvYXJtL2NvbmZpZ3MvbXVsdGlfdjdfZGVmY29uZmlnOjI3NjpDT05GSUdfU1RNTUFDX0VUSD15XG5hcmNoL2FybS9jb25maWdzL211bHRpX3Y3X2RlZmNvbmZpZy0yNzctQ09ORklHX0RXTUFDX0RXQ19RT1NfRVRIPXlcbi0tXG5hcmNoL2FybS9jb25maWdzL3B4YV9kZWZjb25maWc9MTgyPUNPTkZJR19TTVNDOTExWD1tXG5hcmNoL2FybS9jb25maWdzL3B4YV9kZWZjb25maWc6MTgzOkNPTkZJR19TVE1NQUNfRVRIPW1cbmFyY2gvYXJtL2NvbmZpZ3MvcHhhX2RlZmNvbmZpZy0xODQtQ09ORklHX1BIWUxJQj15XG4tLVxuYXJjaC9hcm0vY29uZmlncy9zaG1vYmlsZV9kZWZjb25maWc9NTk9Q09ORklHX1NNU0M5MTFYPXlcbmFyY2gvYXJtL2NvbmZpZ3Mvc2htb2JpbGVfZGVmY29uZmlnOjYwOkNPTkZJR19TVE1NQUNfRVRIPXlcbmFyY2gvYXJtL2NvbmZpZ3Mvc2htb2JpbGVfZGVmY29uZmlnLTYxLSMgQ09ORklHX0RXTUFDX1JFTkVTQVNfR0JFVEggaXMgbm90IHNldFxuLS1cbmFyY2gvYXJtL2NvbmZpZ3Mvc29jZnBnYV9kZWZjb25maWc9NjY9Q09ORklHX0lYR0JFPW1cbmFyY2gvYXJtL2NvbmZpZ3Mvc29jZnBnYV9kZWZjb25maWc6Njc6Q09ORklHX1NUTU1BQ19FVEg9eVxuYXJjaC9hcm0vY29uZmlncy9zb2NmcGdhX2RlZmNvbmZpZy02OC1DT05GSUdfTUFSVkVMTF9QSFk9eVxuLS1cbmFyY2gvYXJtL2NvbmZpZ3Mvc3BlYXIxM3h4X2RlZmNvbmZpZz00Mz1DT05GSUdfTkVUREVWSUNFUz15XG4tLVxuYXJjaC9hcm0vY29uZmlncy9zcGVhcjEzeHhfZGVmY29uZmlnLTUxLSMgQ09ORklHX05FVF9WRU5ET1JfU01TQyBpcyBub3Qgc2V0XG5hcmNoL2FybS9jb25maWdzL3NwZWFyMTN4eF9kZWZjb25maWc6NTI6Q09ORklHX1NUTU1BQ19FVEg9eVxuYXJjaC9hcm0vY29uZmlncy9zcGVhcjEzeHhfZGVmY29uZmlnLTUzLSMgQ09ORklHX1dMQU4gaXMgbm90IHNldFxuLS1cbmFyY2gvYXJtL2NvbmZpZ3Mvc3BlYXIzeHhfZGVmY29uZmlnPTIzPUNPTkZJR19ORVRERVZJQ0VTPXlcbi0tXG5hcmNoL2FybS9jb25maWdzL3NwZWFyM3h4X2RlZmNvbmZpZy0zMS0jIENPTkZJR19ORVRfVkVORE9SX1NNU0MgaXMgbm90IHNldFxuYXJjaC9hcm0vY29uZmlncy9zcGVhcjN4eF9kZWZjb25maWc6MzI6Q09ORklHX1NUTU1BQ19FVEg9eVxuYXJjaC9hcm0vY29uZmlncy9zcGVhcjN4eF9kZWZjb25maWctMzMtIyBDT05GSUdfV0xBTiBpcyBub3Qgc2V0XG4tLVxuYXJjaC9hcm0vY29uZmlncy9zcGVhcjZ4eF9kZWZjb25maWc9MTk9Q09ORklHX05FVERFVklDRVM9eVxuLS1cbmFyY2gvYXJtL2NvbmZpZ3Mvc3BlYXI2eHhfZGVmY29uZmlnLTI3LSMgQ09ORklHX05FVF9WRU5ET1JfU01TQyBpcyBub3Qgc2V0XG5hcmNoL2FybS9jb25maWdzL3NwZWFyNnh4X2RlZmNvbmZpZzoyODpDT05GSUdfU1RNTUFDX0VUSD15XG5hcmNoL2FybS9jb25maWdzL3NwZWFyNnh4X2RlZmNvbmZpZy0yOS0jIENPTkZJR19XTEFOIGlzIG5vdCBzZXRcbi0tXG5hcmNoL2FybS9jb25maWdzL3N1bnhpX2RlZmNvbmZpZz0zNj1DT05GSUdfU1VONElfRU1BQz15XG4tLVxuYXJjaC9hcm0vY29uZmlncy9zdW54aV9kZWZjb25maWctNDgtIyBDT05GSUdfTkVUX1ZFTkRPUl9TTVNDIGlzIG5vdCBzZXRcbmFyY2gvYXJtL2NvbmZpZ3Mvc3VueGlfZGVmY29uZmlnOjQ5OkNPTkZJR19TVE1NQUNfRVRIPXlcbmFyY2gvYXJtL2NvbmZpZ3Mvc3VueGlfZGVmY29uZmlnLTUwLSMgQ09ORklHX05FVF9WRU5ET1JfVklBIGlzIG5vdCBzZXRcbi0tXG5hcmNoL2FybTY0L2NvbmZpZ3MvZGVmY29uZmlnPTQ0NT1DT05GSUdfU05JX05FVFNFQz1tXG5hcmNoL2FybTY0L2NvbmZpZ3MvZGVmY29uZmlnOjQ0NjpDT05GSUdfU1RNTUFDX0VUSD1tXG5hcmNoL2FybTY0L2NvbmZpZ3MvZGVmY29uZmlnLTQ0Ny1DT05GSUdfRFdNQUNfTUVESUFURUs9bVxuLS1cbmFyY2gvbG9vbmdhcmNoL2NvbmZpZ3MvbG9vbmdzb24zMl9kZWZjb25maWc9NjExPUNPTkZJR19SODE2OT15XG4tLVxuYXJjaC9sb29uZ2FyY2gvY29uZmlncy9sb29uZ3NvbjMyX2RlZmNvbmZpZy02MTktIyBDT05GSUdfTkVUX1ZFTkRPUl9TTVNDIGlzIG5vdCBzZXRcbmFyY2gvbG9vbmdhcmNoL2NvbmZpZ3MvbG9vbmdzb24zMl9kZWZjb25maWc6NjIwOkNPTkZJR19TVE1NQUNfRVRIPXlcbmFyY2gvbG9vbmdhcmNoL2NvbmZpZ3MvbG9vbmdzb24zMl9kZWZjb25maWctNjIxLSMgQ09ORklHX05FVF9WRU5ET1JfU1VOIGlzIG5vdCBzZXRcbi0tXG5hcmNoL2xvb25nYXJjaC9jb25maWdzL2xvb25nc29uNjRfZGVmY29uZmlnPTYyNz1DT05GSUdfUjgxNjk9eVxuLS1cbmFyY2gvbG9vbmdhcmNoL2NvbmZpZ3MvbG9vbmdzb242NF9kZWZjb25maWctNjM1LSMgQ09ORklHX05FVF9WRU5ET1JfU01TQyBpcyBub3Qgc2V0XG5hcmNoL2xvb25nYXJjaC9jb25maWdzL2xvb25nc29uNjRfZGVmY29uZmlnOjYzNjpDT05GSUdfU1RNTUFDX0VUSD15XG5hcmNoL2xvb25nYXJjaC9jb25maWdzL2xvb25nc29uNjRfZGVmY29uZmlnLTYzNy0jIENPTkZJR19ORVRfVkVORE9SX1NVTiBpcyBub3Qgc2V0XG4tLVxuYXJjaC9taXBzL2NvbmZpZ3MvY3UxMDAwLW5lb19kZWZjb25maWc9NDI9Q09ORklHX05FVERFVklDRVM9eVxuYXJjaC9taXBzL2NvbmZpZ3MvY3UxMDAwLW5lb19kZWZjb25maWc6NDM6Q09ORklHX1NUTU1BQ19FVEg9eVxuYXJjaC9taXBzL2NvbmZpZ3MvY3UxMDAwLW5lb19kZWZjb25maWctNDQtQ09ORklHX1NNU0NfUEhZPXlcbi0tXG5hcmNoL21pcHMvY29uZmlncy9jdTE4MzAtbmVvX2RlZmNvbmZpZz00NT1DT05GSUdfTkVUREVWSUNFUz15XG5hcmNoL21pcHMvY29uZmlncy9jdTE4MzAtbmVvX2RlZmNvbmZpZzo0NjpDT05GSUdfU1RNTUFDX0VUSD15XG5hcmNoL21pcHMvY29uZmlncy9jdTE4MzAtbmVvX2RlZmNvbmZpZy00Ny1DT05GSUdfSUNQTFVTX1BIWT15XG4tLVxuYXJjaC9taXBzL2NvbmZpZ3MvZ2VuZXJpYy9ib2FyZC1tYXJkdWsuY29uZmlnPTI1PUNPTkZJR19ORVRERVZJQ0VTPXlcbmFyY2gvbWlwcy9jb25maWdzL2dlbmVyaWMvYm9hcmQtbWFyZHVrLmNvbmZpZzoyNjpDT05GSUdfU1RNTUFDX0VUSD15XG5hcmNoL21pcHMvY29uZmlncy9nZW5lcmljL2JvYXJkLW1hcmR1ay5jb25maWctMjctQ09ORklHX1NUTU1BQ19QTEFURk9STT15XG4tLVxuYXJjaC9taXBzL2NvbmZpZ3MvZ2VuZXJpYy9ib2FyZC1uaTE2OTQ0NS5jb25maWc9MjY9Q09ORklHX05FVERFVklDRVM9eVxuYXJjaC9taXBzL2NvbmZpZ3MvZ2VuZXJpYy9ib2FyZC1uaTE2OTQ0NS5jb25maWc6Mjc6Q09ORklHX1NUTU1BQ19FVEg9eVxuYXJjaC9taXBzL2NvbmZpZ3MvZ2VuZXJpYy9ib2FyZC1uaTE2OTQ0NS5jb25maWctMjgtQ09ORklHX1NUTU1BQ19QTEFURk9STT15XG4tLVxuYXJjaC9taXBzL2NvbmZpZ3MvbG9vbmdzb24xX2RlZmNvbmZpZz01MT1DT05GSUdfTkVUREVWSUNFUz15XG4tLVxuYXJjaC9taXBzL2NvbmZpZ3MvbG9vbmdzb24xX2RlZmNvbmZpZy04OC0jIENPTkZJR19ORVRfVkVORE9SX1NPQ0lPTkVYVCBpcyBub3Qgc2V0XG5hcmNoL21pcHMvY29uZmlncy9sb29uZ3NvbjFfZGVmY29uZmlnOjg5OkNPTkZJR19TVE1NQUNfRVRIPXlcbmFyY2gvbWlwcy9jb25maWdzL2xvb25nc29uMV9kZWZjb25maWctOTAtIyBDT05GSUdfRFdNQUNfR0VORVJJQyBpcyBub3Qgc2V0XG4tLVxuYXJjaC9taXBzL2NvbmZpZ3MvbG9vbmdzb24ya19kZWZjb25maWc9MTc1PUNPTkZJR19SODE2OT15XG4tLVxuYXJjaC9taXBzL2NvbmZpZ3MvbG9vbmdzb24ya19kZWZjb25maWctMTgzLSMgQ09ORklHX05FVF9WRU5ET1JfU01TQyBpcyBub3Qgc2V0XG5hcmNoL21pcHMvY29uZmlncy9sb29uZ3NvbjJrX2RlZmNvbmZpZzoxODQ6Q09ORklHX1NUTU1BQ19FVEg9eVxuYXJjaC9taXBzL2NvbmZpZ3MvbG9vbmdzb24ya19kZWZjb25maWctMTg1LSMgQ09ORklHX05FVF9WRU5ET1JfU1VOIGlzIG5vdCBzZXRcbi0tXG5hcmNoL3Jpc2N2L2NvbmZpZ3MvZGVmY29uZmlnPTEzOT1DT05GSUdfUjgxNjk9eVxuYXJjaC9yaXNjdi9jb25maWdzL2RlZmNvbmZpZzoxNDA6Q09ORklHX1NUTU1BQ19FVEg9bVxuYXJjaC9yaXNjdi9jb25maWdzL2RlZmNvbmZpZy0xNDEtQ09ORklHX0RXTUFDX1RIRUFEPW1cbi0tXG5kcml2ZXJzL2dwaW8vZ3Bpb2xpYi1vZi5jPTM0Mz1zdGF0aWMgdm9pZCBvZl9ncGlvX2ZsYWdzX3F1aXJrcyhjb25zdCBzdHJ1Y3QgZGV2aWNlX25vZGUgKm5wLFxuLS1cbmRyaXZlcnMvZ3Bpby9ncGlvbGliLW9mLmMtMzk4LVx0LyogTGVnYWN5IGhhbmRsaW5nIG9mIHN0bW1hYyYjMzk7cyBhY3RpdmUtbG93IFBIWSByZXNldCBsaW5lICovXG5kcml2ZXJzL2dwaW8vZ3Bpb2xpYi1vZi5jOjM5OTpcdGlmIChJU19FTkFCTEVEKENPTkZJR19TVE1NQUNfRVRIKSBcdTAwMjZcdTAwMjZcbmRyaXZlcnMvZ3Bpby9ncGlvbGliLW9mLmMtNDAwLVx0ICAgICFzdHJjbXAocHJvcG5hbWUsIFwmIzM0O3NucHMscmVzZXQtZ3Bpb1wmIzM0OykgXHUwMDI2XHUwMDI2XG4tLVxuZHJpdmVycy9ncHUvZHJtL2NpL2FybTY0LmNvbmZpZz0zNj1DT05GSUdfRFdNQUNfUk9DS0NISVA9eVxuZHJpdmVycy9ncHUvZHJtL2NpL2FybTY0LmNvbmZpZzozNzpDT05GSUdfU1RNTUFDX0VUSD15XG5kcml2ZXJzL2dwdS9kcm0vY2kvYXJtNjQuY29uZmlnLTM4LUNPTkZJR19UWVBFQ19GVVNCMzAyPXlcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL01ha2VmaWxlLTUtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL01ha2VmaWxlOjY6b2JqLSQoQ09ORklHX1NUTU1BQ19FVEgpICYjNDM7PSBzdG1tYWMvXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy0xLSMgU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjAtb25seVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZzoyOmNvbmZpZyBTVE1NQUNfRVRIXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTMtXHR0cmlzdGF0ZSBcJiMzNDtTVE1pY3JvZWxlY3Ryb25pY3MgTXVsdGktR2lnYWJpdCBFdGhlcm5ldCBkcml2ZXJcJiMzNDtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTE3LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZzoxODppZiBTVE1NQUNfRVRIXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTE5LVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc9NDA3PWNvbmZpZyBTVE1NQUNfUENJXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy00MTktXHQgIElmIHVuc3VyZSwgc2F5IE4uXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnOjQyMDplbmRpZiAjIFNUTU1BQ19FVEhcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9NYWtlZmlsZS0xLSMgU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjBcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL01ha2VmaWxlOjI6b2JqLSQoQ09ORklHX1NUTU1BQ19FVEgpICYjNDM7PSBzdG1tYWMub1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvTWFrZWZpbGUtMy1zdG1tYWMtb2Jqczo9IHN0bW1hY19tYWluLm8gc3RtbWFjX2V0aHRvb2wubyBzdG1tYWNfbWRpby5vIHJpbmdfbW9kZS5vXHRcXFxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjE1LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8xNSAxODowMTwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAyMDY2OAoJCQkJCQkJb3V0cHV0OiAyMAoJCQkJCQkJdGhvdWdodHM6IDU0CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Pa2F5LCBoZXJlJiMzOTtzIG15IHRha2Ugb24gdGhvc2UgZGV2aWNlIGRyaXZlcnMuCgoqKkluaXRpYWwgQXNzZXNzbWVudCBhbmQgYSBRdWljayBQaXZvdCoqCgpBbHJpZ2h0LCBsb29raW5nIGF0IHRoZSBkcml2ZXIgbGFuZHNjYXBlLCBgU1RNTUFDX0VUSGAsIGBTVE1NQUNfUENJYCwgYW5kIGBTVE1NQUNfUExBVEZPUk1gIGltbWVkaWF0ZWx5IGNvbWUgdG8gbWluZC4gVGhleSBzZWVtIGxpa2Ugc29saWQgb3B0aW9ucyBmb3Igc3RhbmRhcmQgRXRoZXJuZXQgTUFDIGNvbnRyb2wuIE15IGluaXRpYWwgYXNzZXNzbWVudCBpcyBwb3NpdGl2ZSByZWdhcmRpbmcgdGhlc2UgZHJpdmVycy4KCkJ1dCwgYSBuYWdnaW5nIHF1ZXN0aW9uIHN1cmZhY2VzOiB3aGF0IGFib3V0IGBEV01BQ19HRU5FUklDYD8gSXQmIzM5O3MgYmVlbiBhIHdoaWxlIHNpbmNlIEkgc2VyaW91c2x5IGNvbnNpZGVyZWQgdGhhdCBvbmUuIEkmIzM5O2xsIG5lZWQgdG8gZHJpbGwgZG93biBpbnRvIGl0LiBCZXR0ZXIgY2hlY2sgdGhhdCBvbmUgb3V0LgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjE2LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8xNSAxODowMTwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtEV01BQ19HRU5FUklDJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2FyY2gvbWlwcy9jb25maWdzL2dlbmVyaWMvYm9hcmQtbmkxNjk0NDUuY29uZmlnPTI4PUNPTkZJR19TVE1NQUNfUExBVEZPUk09eVxuYXJjaC9taXBzL2NvbmZpZ3MvZ2VuZXJpYy9ib2FyZC1uaTE2OTQ0NS5jb25maWc6Mjk6Q09ORklHX0RXTUFDX0dFTkVSSUM9eVxuLS1cbmFyY2gvbWlwcy9jb25maWdzL2xvb25nc29uMV9kZWZjb25maWc9ODk9Q09ORklHX1NUTU1BQ19FVEg9eVxuYXJjaC9taXBzL2NvbmZpZ3MvbG9vbmdzb24xX2RlZmNvbmZpZzo5MDojIENPTkZJR19EV01BQ19HRU5FUklDIGlzIG5vdCBzZXRcbmFyY2gvbWlwcy9jb25maWdzL2xvb25nc29uMV9kZWZjb25maWctOTEtIyBDT05GSUdfTkVUX1ZFTkRPUl9TWU5PUFNZUyBpcyBub3Qgc2V0XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZz00ND1jb25maWcgRFdNQUNfRFdDX1FPU19FVEhcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTUxLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZzo1Mjpjb25maWcgRFdNQUNfR0VORVJJQ1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy01My1cdHRyaXN0YXRlIFwmIzM0O0dlbmVyaWMgZHJpdmVyIGZvciBEV01BQ1wmIzM0O1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL01ha2VmaWxlPTQxPW9iai0kKENPTkZJR19EV01BQ19MT09OR1NPTjEpXHQmIzQzOz0gZHdtYWMtbG9vbmdzb24xLm9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL01ha2VmaWxlOjQyOm9iai0kKENPTkZJR19EV01BQ19HRU5FUklDKVx0JiM0Mzs9IGR3bWFjLWdlbmVyaWMub1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvTWFrZWZpbGUtNDMtb2JqLSQoQ09ORklHX0RXTUFDX0lNWDgpXHQmIzQzOz0gZHdtYWMtaW14Lm9cbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xNy8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMTUgMTg6MDE8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMjEyOTEKCQkJCQkJCW91dHB1dDogMjEKCQkJCQkJCXRob3VnaHRzOiAxMjAKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqUmVmaW5pbmcgdGhlIE5ldHdvcmsgRHJpdmVyIENvbmZpZ3VyYXRpb24qKgoKT2theSwgSSBuZWVkIHRvIG1ha2Ugc29tZSBhZGRpdGlvbnMgdG8gdGhlIGNvbmZpZ3VyYXRpb24gb3B0aW9ucyBmb3IgdGhpcyBuZXR3b3JrIGRyaXZlci4gSSYjMzk7dmUgYWxyZWFkeSBpZGVudGlmaWVkIGEgZmV3LCBidXQgSSB0aGluayB3ZSBjYW4gYmUgbW9yZSBjb21wcmVoZW5zaXZlLiBMZXQmIzM5O3MgYWRkIGBEV01BQ19HRU5FUklDYCB0byB0aGUgbGlzdCBvZiBwb3RlbnRpYWwgY29uZmlndXJhdGlvbnMuCgpTbywgdG8gcmVjYXAsIHRoZSBjdXJyZW50IGNvbmZpZ3MgYXJlOiBgU1RNTUFDX0VUSGAsIGBTVE1NQUNfUENJYCwgYFNUTU1BQ19QTEFURk9STWAsIGFuZCBub3csIGBEV01BQ19HRU5FUklDYC4KCldhaXQgYSBtaW51dGUsIEkgYWxzbyByZWNhbGwgYERXTUFDX0lOVEVMYCBiZWluZyB1c2VmdWwgaW4gdGhlIGNvbnRleHQgb2YgUENJLiBJIHNob3VsZCBhZGQgdGhhdCBhcyB3ZWxsLgoKTm93LCBJJiMzOTttIHRoaW5raW5nIGFib3V0IHdoZXRoZXIgYFNUTU1BQ19QQ0lgIGFsb25lIGlzIHN1ZmZpY2llbnQgZm9yIFBDSSBzdXBwb3J0LCBvciBpZiBgRFdNQUNfSU5URUxgIGJyaW5ncyBzb21ldGhpbmcgbW9yZSBzcGVjaWZpYyB0byB0aGUgdGFibGUuIEFoIHllcywgYERXTUFDX0lOVEVMYCBwcm92aWRlcyBzcGVjaWZpYyBQQ0kgSURzLiBTbywgSSBuZWVkIHRvIG1ha2Ugc3VyZSBib3RoIGFyZSBjb25zaWRlcmVkIHdoZW4gc2V0dGluZyB0aGluZ3MgdXAuCgpKdXN0IHRvIGJlIGFic29sdXRlbHkgY2VydGFpbiwgSSBzaG91bGQgcmV2aXNpdCB0aGUgYHN0bW1hY19wY2kuY2AgZmlsZSB0byByZWZyZXNoIG15IG1lbW9yeSBhbmQgdmVyaWZ5IHRoZSBpbnRlcnBsYXkgYmV0d2VlbiB0aGVzZSBjb25maWd1cmF0aW9ucy4gSXTigJlzIGFsd2F5cyBnb29kIHRvIGJlIHRob3JvdWdoLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjE4LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8xNSAxODowMTwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtzdG1tYWNfaWRfdGFibGUmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX3BjaS5jPTE5Mj1zdGF0aWMgdm9pZCBzdG1tYWNfcGNpX3JlbW92ZShzdHJ1Y3QgcGNpX2RldiAqcGRldilcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfcGNpLmMtMjAyLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX3BjaS5jOjIwMzpzdGF0aWMgY29uc3Qgc3RydWN0IHBjaV9kZXZpY2VfaWQgc3RtbWFjX2lkX3RhYmxlW10gPSB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfcGNpLmMtMjA0LVx0eyBQQ0lfREVWSUNFX0RBVEEoU1RNTUFDLCBTVE1NQUMsIFx1MDAyNnN0bW1hY19wY2lfaW5mbykgfSxcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfcGNpLmMtMjA5LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX3BjaS5jOjIxMDpNT0RVTEVfREVWSUNFX1RBQkxFKHBjaSwgc3RtbWFjX2lkX3RhYmxlKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19wY2kuYy0yMTEtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfcGNpLmM9MjEyPXN0YXRpYyBzdHJ1Y3QgcGNpX2RyaXZlciBzdG1tYWNfcGNpX2RyaXZlciA9IHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19wY2kuYy0yMTMtXHQubmFtZSA9IFNUTU1BQ19SRVNPVVJDRV9OQU1FLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX3BjaS5jOjIxNDpcdC5pZF90YWJsZSA9IHN0bW1hY19pZF90YWJsZSxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19wY2kuYy0yMTUtXHQucHJvYmUgPSBzdG1tYWNfcGNpX3Byb2JlLFxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjE5LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8xNSAxODowMTwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAyMjE0NwoJCQkJCQkJb3V0cHV0OiAxOTUKCQkJCQkJCXRob3VnaHRzOiAzMzkKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqTXkgQW5hbHlzaXMgb2YgdGhlIFNUTU1BQyBEcml2ZXIgUGF0Y2gqKgoKT2theSwgc28gbG9va2luZyBhdCB0aGlzIHBhdGNoIGZvciB0aGUgYHN0bW1hY2AgZHJpdmVyLCBJIHNlZSB0aGF0IHdlJiMzOTtyZSBkZWFsaW5nIHdpdGggcmVzb3VyY2UgbWFuYWdlbWVudCwgc3BlY2lmaWNhbGx5IGFyb3VuZCBETUEgZGVzY3JpcHRvcnMuICBUaGUga2V5IGhlcmUgaXMgdGhhdCB0aGV5JiMzOTtyZSBjbGVhbmluZyB1cCBwb2ludGVycyAqYWZ0ZXIqIGZyZWVpbmcgdGhlc2UgZGVzY3JpcHRvcnMsIHdoaWNoIGlzIGNyaXRpY2FsIHRvIHByZXZlbnRpbmcgZG91YmxlLWZyZWVzIGFuZCB1c2UtYWZ0ZXItZnJlZSB2dWxuZXJhYmlsaXRpZXMuIFRoaXMgaXMgYSBjb21tb24gYW5kIGltcG9ydGFudCBjbGFzcyBvZiBidWdzLCBlc3BlY2lhbGx5IGluIGRyaXZlcnMuCgpJJiMzOTt2ZSBjb25maXJtZWQgdGhhdCBgU1RNTUFDX1BDSWAgaXMgdGhlIHJlbGV2YW50IFBDSSBJRCB0byBub3RlLgoKTGV0IG1lIGJyZWFrIGRvd24gdGhlIGNyaXRpY2FsIGFzcGVjdHMgZm9yIGZ1enppbmc6CgoqICAgKipXb3J0aEZ1enppbmc6IHRydWUqKiDigJMgQWJzb2x1dGVseSwgdGhpcyBpcyBhIHByaW1lIGNhbmRpZGF0ZS4gUmVzb3VyY2UgbWFuYWdlbWVudCBpc3N1ZXMgYXJlIGV4Y2VsbGVudCBmdXp6IHRhcmdldHMuCgoqICAgKipSZWFzb25pbmc6KiogVGhlIHBhdGNoJiMzOTtzIGZvY3VzIG9uIGZpeGluZyBETUEgZGVzY3JpcHRvciBwb2ludGVyIGNsZWFudXAgZGlyZWN0bHkgYWRkcmVzc2VzIGEgc2lnbmlmaWNhbnQgcG90ZW50aWFsIGZvciBtZW1vcnkgY29ycnVwdGlvbi4gVGhlIGRyaXZlciYjMzk7cyBhY2Nlc3NpYmlsaXR5IHRocm91Z2ggdmlydHVhbGl6ZWQgUENJIGRldmljZXMgYW5kIHBsYXRmb3JtIGRldmljZXMgKGxpa2UgUUVNVSYjMzk7cyBkZXNpZ253YXJlIE1BQykgbWFrZXMgaXQgZmVhc2libGUgdG8gdGFyZ2V0IHdpdGggZnV6emluZy4KCiogICAqKkZvY3VzU3ltYm9sczoqKiBJJiMzOTtsbCByZWZpbmUgdGhpcyBsaXN0IGEgYml0LCBhcyBgZnJlZV9kbWFfcngvdHhfZGVzY19yZXNvdXJjZXNgIGFyZSBqdXN0IHdyYXBwZXJzLiBUaGUgbWFpbiBmdW5jdGlvbnMgYWZmZWN0ZWQgYXJlIHRoZSBvbmVzIHByZWZpeGVkIHdpdGggYF9fYDoKCiAgICAqICAgYF9fZnJlZV9kbWFfcnhfZGVzY19yZXNvdXJjZXNgCiAgICAqICAgYF9fZnJlZV9kbWFfdHhfZGVzY19yZXNvdXJjZXNgCiAgICAqICAgYHN0bW1hY19kaXNhYmxlX3J4X3F1ZXVlYAogICAgKiAgIGBzdG1tYWNfZW5hYmxlX3J4X3F1ZXVlYAogICAgKiAgIGBzdG1tYWNfZGlzYWJsZV90eF9xdWV1ZWAKICAgICogICBgc3RtbWFjX2VuYWJsZV90eF9xdWV1ZWAKCiogICAqKkVuYWJsZUNvbmZpZ3M6KiogSXQmIzM5O3MgaW1wb3J0YW50IHRvIGtlZXAgdGhlc2UgaW4gbWluZCB3aGVuIHNldHRpbmcgdXAgZnV6emluZyBjb25maWd1cmF0aW9ucy4gV2UgbmVlZCB0byBiZSBhYmxlIHRvIGVuYWJsZSB0aGUgcmVsZXZhbnQgY29uZmlndXJhdGlvbnMgZm9yIHRoZSBkcml2ZXIgdG8gYmUgcHJlc2VudDoKCiAgICAqICAgYFNUTU1BQ19FVEhgCiAgICAqICAgYFNUTU1BQ19QQ0lgCiAgICAqICAgYFNUTU1BQ19QTEFURk9STWAKICAgICogICBgRFdNQUNfR0VORVJJQ2AKCkkgc2hvdWxkIGJlIGFibGUgdG8gZ2V0IGEgc29saWQgdGVzdCBoYXJuZXNzIGdvaW5nIHdpdGggdGhhdC4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4yMC8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMTUgMTg6MDE8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5zZXQtcmVzdWx0czwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O1NUTU1BQ19FVEgmIzM0OywKICAgICYjMzQ7U1RNTUFDX1BDSSYjMzQ7LAogICAgJiMzNDtTVE1NQUNfUExBVEZPUk0mIzM0OywKICAgICYjMzQ7RFdNQUNfR0VORVJJQyYjMzQ7CiAgXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbCiAgICAmIzM0O19fZnJlZV9kbWFfcnhfZGVzY19yZXNvdXJjZXMmIzM0OywKICAgICYjMzQ7X19mcmVlX2RtYV90eF9kZXNjX3Jlc291cmNlcyYjMzQ7LAogICAgJiMzNDtzdG1tYWNfZGlzYWJsZV9yeF9xdWV1ZSYjMzQ7LAogICAgJiMzNDtzdG1tYWNfZW5hYmxlX3J4X3F1ZXVlJiMzNDssCiAgICAmIzM0O3N0bW1hY19kaXNhYmxlX3R4X3F1ZXVlJiMzNDssCiAgICAmIzM0O3N0bW1hY19lbmFibGVfdHhfcXVldWUmIzM0OwogIF0sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggZml4ZXMgYSBwb3RlbnRpYWwgZG91YmxlLWZyZWUgb3IgdXNlLWFmdGVyLWZyZWUgaXNzdWUgaW4gdGhlIHN0bW1hYyBkcml2ZXIgYnkgcHJvcGVybHkgY2xlYXJpbmcgcG9pbnRlcnMgYWZ0ZXIgZnJlZWluZyBETUEgZGVzY3JpcHRvcnMuIFRoZSBkcml2ZXIgY2FuIGJlIHJlYWNoZWQgdmlhIHZpcnR1YWxpemVkIFBDSSBkZXZpY2VzIG9yIHBsYXRmb3JtIGRldmljZXMgKGUuZy4sIFFFTVUgZGVzaWdud2FyZSBNQUMgZW11bGF0aW9uKS4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiB0cnVlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IFsKICAgICYjMzQ7U1RNTUFDX0VUSCYjMzQ7LAogICAgJiMzNDtTVE1NQUNfUENJJiMzNDssCiAgICAmIzM0O1NUTU1BQ19QTEFURk9STSYjMzQ7LAogICAgJiMzNDtEV01BQ19HRU5FUklDJiMzNDsKICBdLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFsKICAgICYjMzQ7X19mcmVlX2RtYV9yeF9kZXNjX3Jlc291cmNlcyYjMzQ7LAogICAgJiMzNDtfX2ZyZWVfZG1hX3R4X2Rlc2NfcmVzb3VyY2VzJiMzNDssCiAgICAmIzM0O3N0bW1hY19kaXNhYmxlX3J4X3F1ZXVlJiMzNDssCiAgICAmIzM0O3N0bW1hY19lbmFibGVfcnhfcXVldWUmIzM0OywKICAgICYjMzQ7c3RtbWFjX2Rpc2FibGVfdHhfcXVldWUmIzM0OywKICAgICYjMzQ7c3RtbWFjX2VuYWJsZV90eF9xdWV1ZSYjMzQ7CiAgXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBmaXhlcyBhIHBvdGVudGlhbCBkb3VibGUtZnJlZSBvciB1c2UtYWZ0ZXItZnJlZSBpc3N1ZSBpbiB0aGUgc3RtbWFjIGRyaXZlciBieSBwcm9wZXJseSBjbGVhcmluZyBwb2ludGVycyBhZnRlciBmcmVlaW5nIERNQSBkZXNjcmlwdG9ycy4gVGhlIGRyaXZlciBjYW4gYmUgcmVhY2hlZCB2aWEgdmlydHVhbGl6ZWQgUENJIGRldmljZXMgb3IgcGxhdGZvcm0gZGV2aWNlcyAoZS5nLiwgUUVNVSBkZXNpZ253YXJlIE1BQyBlbXVsYXRpb24pLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IHRydWUKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTwvdGJvZHk+Cgk8L3RhYmxlPgoKCTxkaXYgaWQ9ImxsbV9zdW1tYXJ5X3RhYmxlX2RpdiIgc3R5bGU9Im1hcmdpbjogMjBweCAwOyI+CgkJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQkJPGNhcHRpb24+TExNIENhbGxzIFN1bW1hcnk6PC9jYXB0aW9uPgoJCQk8dGhlYWQ+CgkJCQk8dHI+CgkJCQkJPHRoPlRvdGFsIENhbGxzPC90aD4KCQkJCQk8dGg+VG90YWwgVG9rZW5zPC90aD4KCQkJCQk8dGg+QXZnIFRva2VuczwvdGg+CgkJCQkJPHRoPlRvdGFsIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQkJPHRoPkF2ZyBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJPC90cj4KCQkJPC90aGVhZD4KCQkJPHRib2R5IGlkPSJsbG1fc3VtbWFyeV9zdGF0c19ib2R5Ij48L3Rib2R5PgoJCTwvdGFibGU+Cgk8L2Rpdj4KCgk8ZGl2IGlkPSJ0b29sX3N1bW1hcnlfdGFibGVfZGl2IiBzdHlsZT0ibWFyZ2luOiAyMHB4IDA7Ij4KCQk8dGFibGUgY2xhc3M9Imxpc3RfdGFibGUiPgoJCQk8Y2FwdGlvbj5Ub29sIENhbGxzIFN1bW1hcnk6PC9jYXB0aW9uPgoJCQk8dGhlYWQ+CgkJCQk8dHI+CgkJCQkJPHRoPlRvdGFsIENhbGxzPC90aD4KCQkJCQk8dGg+VG90YWwgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCQk8dGg+QXZnIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQk8L3RyPgoJCQk8L3RoZWFkPgoJCQk8dGJvZHkgaWQ9InRvb2xfc3VtbWFyeV9zdGF0c19ib2R5Ij48L3Rib2R5PgoJCTwvdGFibGU+Cgk8L2Rpdj4KCgk8ZGl2IGlkPSJkdXJhdGlvbl9jaGFydF9kaXYiIHN0eWxlPSJ3aWR0aDogMTAwJTsgbWFyZ2luOiAyMHB4IDA7IGJvcmRlcjogMXB4OyI+PC9kaXY+Cgk8ZGl2IGlkPSJ0b2tlbl9jaGFydF9kaXYiIHN0eWxlPSJ3aWR0aDogMTAwJTsgbWFyZ2luOiAyMHB4IDA7IGJvcmRlcjogMXB4OyI+PC9kaXY+CgoJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iaHR0cHM6Ly93d3cuZ29vZ2xlLmNvbS9qc2FwaSI+PC9zY3JpcHQ+Cgk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+CgkJZ29vZ2xlLmxvYWQoInZpc3VhbGl6YXRpb24iLCAiMSIsIHtwYWNrYWdlczpbImNvcmVjaGFydCJdfSk7CgkJZ29vZ2xlLnNldE9uTG9hZENhbGxiYWNrKGRyYXdDaGFydHMpOwoKCQlmdW5jdGlvbiBkcmF3Q2hhcnRzKCkgewoJCQljb25zdCByYXdEYXRhID0gW3siU3RhcnRlZCI6IjIwMjYtMDctMTVUMTg6MDA6MTAuNTM3MjY3MjUzWiIsIlNlcSI6MCwiTmVzdGluZyI6MCwiVHlwZSI6ImZsb3ciLCJOYW1lIjoicGF0Y2gtdHJpYWdlIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MTAzMzEwOTI0MTIxLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IFtcbiAgICBcIlNUTU1BQ19FVEhcIixcbiAgICBcIlNUTU1BQ19QQ0lcIixcbiAgICBcIlNUTU1BQ19QTEFURk9STVwiLFxuICAgIFwiRFdNQUNfR0VORVJJQ1wiXG4gIF0sXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtcbiAgICBcIl9fZnJlZV9kbWFfcnhfZGVzY19yZXNvdXJjZXNcIixcbiAgICBcIl9fZnJlZV9kbWFfdHhfZGVzY19yZXNvdXJjZXNcIixcbiAgICBcInN0bW1hY19kaXNhYmxlX3J4X3F1ZXVlXCIsXG4gICAgXCJzdG1tYWNfZW5hYmxlX3J4X3F1ZXVlXCIsXG4gICAgXCJzdG1tYWNfZGlzYWJsZV90eF9xdWV1ZVwiLFxuICAgIFwic3RtbWFjX2VuYWJsZV90eF9xdWV1ZVwiXG4gIF0sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIGZpeGVzIGEgcG90ZW50aWFsIGRvdWJsZS1mcmVlIG9yIHVzZS1hZnRlci1mcmVlIGlzc3VlIGluIHRoZSBzdG1tYWMgZHJpdmVyIGJ5IHByb3Blcmx5IGNsZWFyaW5nIHBvaW50ZXJzIGFmdGVyIGZyZWVpbmcgRE1BIGRlc2NyaXB0b3JzLiBUaGUgZHJpdmVyIGNhbiBiZSByZWFjaGVkIHZpYSB2aXJ0dWFsaXplZCBQQ0kgZGV2aWNlcyBvciBwbGF0Zm9ybSBkZXZpY2VzIChlLmcuLCBRRU1VIGRlc2lnbndhcmUgTUFDIGVtdWxhdGlvbikuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IHRydWVcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTE1VDE4OjAwOjEwLjUzNzI3Mjk0M1oiLCJTZXEiOjEsIk5lc3RpbmciOjEsIlR5cGUiOiJhY3Rpb24iLCJOYW1lIjoicmVhZC1wYXRjaC1kaWZmIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NTcxMTMxMDUwLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJQYXRjaERpZmZcIjogXCJjb21taXQgNDk3ZmRkYjBiNjQ5Yjg5OWM0YmUxZWUyMzJiMDQwYjQ3ZTNlM2JjZFxcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXFx1MDAzZVxcbkRhdGU6ICAgV2VkIEp1bCAxNSAxODowMDowOCAyMDI2ICswMDAwXFxuXFxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xcblxcbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uY1xcbmluZGV4IDJhMGQ3ZWZmODhkM2ZmLi43NzYwNGQ2YWI0NjY1ZSAxMDA2NDRcXG4tLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jXFxuKysrIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uY1xcbkBAIC0yMTQ2LDcgKzIxNDYsNiBAQCBzdGF0aWMgdm9pZCBfX2ZyZWVfZG1hX3J4X2Rlc2NfcmVzb3VyY2VzKHN0cnVjdCBzdG1tYWNfcHJpdiAqcHJpdixcXG4gXFx0XFx0XFx0XFx0XFx0IHUzMiBxdWV1ZSlcXG4ge1xcbiBcXHRzdHJ1Y3Qgc3RtbWFjX3J4X3F1ZXVlICpyeF9xID0gXFx1MDAyNmRtYV9jb25mLVxcdTAwM2VyeF9xdWV1ZVtxdWV1ZV07XFxuLVxcdHNpemVfdCBzaXplO1xcbiBcXHR2b2lkICphZGRyO1xcbiBcXG4gXFx0LyogUmVsZWFzZSB0aGUgRE1BIFJYIHNvY2tldCBidWZmZXJzICovXFxuQEAgLTIxNTgsMjIgKzIxNTcsMjggQEAgc3RhdGljIHZvaWQgX19mcmVlX2RtYV9yeF9kZXNjX3Jlc291cmNlcyhzdHJ1Y3Qgc3RtbWFjX3ByaXYgKnByaXYsXFxuIFxcdHJ4X3EtXFx1MDAzZWJ1Zl9hbGxvY19udW0gPSAwO1xcbiBcXHRyeF9xLVxcdTAwM2V4c2tfcG9vbCA9IE5VTEw7XFxuIFxcbi1cXHQvKiBGcmVlIERNQSByZWdpb25zIG9mIGNvbnNpc3RlbnQgbWVtb3J5IHByZXZpb3VzbHkgYWxsb2NhdGVkICovXFxuLVxcdGlmIChwcml2LVxcdTAwM2VleHRlbmRfZGVzYylcXG4rXFx0aWYgKHByaXYtXFx1MDAzZWV4dGVuZF9kZXNjKSB7XFxuIFxcdFxcdGFkZHIgPSByeF9xLVxcdTAwM2VkbWFfZXJ4O1xcbi1cXHRlbHNlXFxuK1xcdFxcdHJ4X3EtXFx1MDAzZWRtYV9lcnggPSBOVUxMO1xcbitcXHR9IGVsc2Uge1xcbiBcXHRcXHRhZGRyID0gcnhfcS1cXHUwMDNlZG1hX3J4O1xcbitcXHRcXHRyeF9xLVxcdTAwM2VkbWFfcnggPSBOVUxMO1xcbitcXHR9XFxuIFxcbi1cXHRzaXplID0gc3RtbWFjX2dldF9yeF9kZXNjX3NpemUocHJpdikgKiBkbWFfY29uZi1cXHUwMDNlZG1hX3J4X3NpemU7XFxuK1xcdC8qIEZyZWUgRE1BIHJlZ2lvbnMgb2YgY29uc2lzdGVudCBtZW1vcnkgaWYgcHJldmlvdXNseSBhbGxvY2F0ZWQgKi9cXG4rXFx0aWYgKGFkZHIpIHtcXG4rXFx0XFx0c2l6ZV90IHNpemU7XFxuK1xcdFxcdHNpemUgPSBzdG1tYWNfZ2V0X3J4X2Rlc2Nfc2l6ZShwcml2KSAqIGRtYV9jb25mLVxcdTAwM2VkbWFfcnhfc2l6ZTtcXG4gXFxuLVxcdGRtYV9mcmVlX2NvaGVyZW50KHByaXYtXFx1MDAzZWRldmljZSwgc2l6ZSwgYWRkciwgcnhfcS1cXHUwMDNlZG1hX3J4X3BoeSk7XFxuK1xcdFxcdGRtYV9mcmVlX2NvaGVyZW50KHByaXYtXFx1MDAzZWRldmljZSwgc2l6ZSwgYWRkciwgcnhfcS1cXHUwMDNlZG1hX3J4X3BoeSk7XFxuK1xcdH1cXG4gXFxuIFxcdGlmICh4ZHBfcnhxX2luZm9faXNfcmVnKFxcdTAwMjZyeF9xLVxcdTAwM2V4ZHBfcnhxKSlcXG4gXFx0XFx0eGRwX3J4cV9pbmZvX3VucmVnKFxcdTAwMjZyeF9xLVxcdTAwM2V4ZHBfcnhxKTtcXG4gXFxuIFxcdGtmcmVlKHJ4X3EtXFx1MDAzZWJ1Zl9wb29sKTtcXG4tXFx0aWYgKHJ4X3EtXFx1MDAzZXBhZ2VfcG9vbClcXG4tXFx0XFx0cGFnZV9wb29sX2Rlc3Ryb3kocnhfcS1cXHUwMDNlcGFnZV9wb29sKTtcXG4rXFx0cGFnZV9wb29sX2Rlc3Ryb3kocnhfcS1cXHUwMDNlcGFnZV9wb29sKTtcXG4rXFx0cnhfcS1cXHUwMDNlcGFnZV9wb29sID0gTlVMTDtcXG4gfVxcbiBcXG4gc3RhdGljIHZvaWQgZnJlZV9kbWFfcnhfZGVzY19yZXNvdXJjZXMoc3RydWN0IHN0bW1hY19wcml2ICpwcml2LFxcbkBAIC0yMTk4LDcgKzIyMDMsNiBAQCBzdGF0aWMgdm9pZCBfX2ZyZWVfZG1hX3R4X2Rlc2NfcmVzb3VyY2VzKHN0cnVjdCBzdG1tYWNfcHJpdiAqcHJpdixcXG4gXFx0XFx0XFx0XFx0XFx0IHUzMiBxdWV1ZSlcXG4ge1xcbiBcXHRzdHJ1Y3Qgc3RtbWFjX3R4X3F1ZXVlICp0eF9xID0gXFx1MDAyNmRtYV9jb25mLVxcdTAwM2V0eF9xdWV1ZVtxdWV1ZV07XFxuLVxcdHNpemVfdCBzaXplO1xcbiBcXHR2b2lkICphZGRyO1xcbiBcXG4gXFx0LyogUmVsZWFzZSB0aGUgRE1BIFRYIHNvY2tldCBidWZmZXJzICovXFxuQEAgLTIyMDYsMTUgKzIyMTAsMjEgQEAgc3RhdGljIHZvaWQgX19mcmVlX2RtYV90eF9kZXNjX3Jlc291cmNlcyhzdHJ1Y3Qgc3RtbWFjX3ByaXYgKnByaXYsXFxuIFxcbiBcXHRpZiAocHJpdi1cXHUwMDNlZXh0ZW5kX2Rlc2MpIHtcXG4gXFx0XFx0YWRkciA9IHR4X3EtXFx1MDAzZWRtYV9ldHg7XFxuK1xcdFxcdHR4X3EtXFx1MDAzZWRtYV9ldHggPSBOVUxMO1xcbiBcXHR9IGVsc2UgaWYgKHR4X3EtXFx1MDAzZXRicyBcXHUwMDI2IFNUTU1BQ19UQlNfQVZBSUwpIHtcXG4gXFx0XFx0YWRkciA9IHR4X3EtXFx1MDAzZWRtYV9lbnR4O1xcbitcXHRcXHR0eF9xLVxcdTAwM2VkbWFfZW50eCA9IE5VTEw7XFxuIFxcdH0gZWxzZSB7XFxuIFxcdFxcdGFkZHIgPSB0eF9xLVxcdTAwM2VkbWFfdHg7XFxuK1xcdFxcdHR4X3EtXFx1MDAzZWRtYV90eCA9IE5VTEw7XFxuIFxcdH1cXG4gXFxuLVxcdHNpemUgPSBzdG1tYWNfZ2V0X3R4X2Rlc2Nfc2l6ZShwcml2LCB0eF9xKSAqIGRtYV9jb25mLVxcdTAwM2VkbWFfdHhfc2l6ZTtcXG4rXFx0aWYgKGFkZHIpIHtcXG4rXFx0XFx0c2l6ZV90IHNpemU7XFxuK1xcdFxcdHNpemUgPSBzdG1tYWNfZ2V0X3R4X2Rlc2Nfc2l6ZShwcml2LCB0eF9xKSAqIGRtYV9jb25mLVxcdTAwM2VkbWFfdHhfc2l6ZTtcXG4gXFxuLVxcdGRtYV9mcmVlX2NvaGVyZW50KHByaXYtXFx1MDAzZWRldmljZSwgc2l6ZSwgYWRkciwgdHhfcS1cXHUwMDNlZG1hX3R4X3BoeSk7XFxuK1xcdFxcdGRtYV9mcmVlX2NvaGVyZW50KHByaXYtXFx1MDAzZWRldmljZSwgc2l6ZSwgYWRkciwgdHhfcS1cXHUwMDNlZG1hX3R4X3BoeSk7XFxuK1xcdH1cXG4gXFxuIFxcdGtmcmVlKHR4X3EtXFx1MDAzZXR4X3NrYnVmZl9kbWEpO1xcbiBcXHRrZnJlZSh0eF9xLVxcdTAwM2V0eF9za2J1ZmYpO1xcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0xNVQxODowMDoxMS4xMDk0MTIxMjNaIiwiU2VxIjoyLCJOZXN0aW5nIjoxLCJUeXBlIjoiYWdlbnQiLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjEwMjczODc2MzgzMSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXG4gICAgXCJTVE1NQUNfRVRIXCIsXG4gICAgXCJTVE1NQUNfUENJXCIsXG4gICAgXCJTVE1NQUNfUExBVEZPUk1cIixcbiAgICBcIkRXTUFDX0dFTkVSSUNcIlxuICBdLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXG4gICAgXCJfX2ZyZWVfZG1hX3J4X2Rlc2NfcmVzb3VyY2VzXCIsXG4gICAgXCJfX2ZyZWVfZG1hX3R4X2Rlc2NfcmVzb3VyY2VzXCIsXG4gICAgXCJzdG1tYWNfZGlzYWJsZV9yeF9xdWV1ZVwiLFxuICAgIFwic3RtbWFjX2VuYWJsZV9yeF9xdWV1ZVwiLFxuICAgIFwic3RtbWFjX2Rpc2FibGVfdHhfcXVldWVcIixcbiAgICBcInN0bW1hY19lbmFibGVfdHhfcXVldWVcIlxuICBdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBmaXhlcyBhIHBvdGVudGlhbCBkb3VibGUtZnJlZSBvciB1c2UtYWZ0ZXItZnJlZSBpc3N1ZSBpbiB0aGUgc3RtbWFjIGRyaXZlciBieSBwcm9wZXJseSBjbGVhcmluZyBwb2ludGVycyBhZnRlciBmcmVlaW5nIERNQSBkZXNjcmlwdG9ycy4gVGhlIGRyaXZlciBjYW4gYmUgcmVhY2hlZCB2aWEgdmlydHVhbGl6ZWQgUENJIGRldmljZXMgb3IgcGxhdGZvcm0gZGV2aWNlcyAoZS5nLiwgUUVNVSBkZXNpZ253YXJlIE1BQyBlbXVsYXRpb24pLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiB0cnVlXG59IiwiSW5zdHJ1Y3Rpb24iOiJZb3UgYXJlIGFuIGV4cGVydCBMaW51eCBrZXJuZWwgbWFpbnRhaW5lci5cbllvdXIgam9iIGlzIHRvIHJldmlldyBhIHByb3ZpZGVkIHBhdGNoIHNlcmllcyBhbmQgZGV0ZXJtaW5lXG5pZiBpdCBtYWtlcyBmdW5jdGlvbmFsIGNoYW5nZXMgdG8gdGhlIGtlcm5lbCB0aGF0IHNob3VsZCBiZSBmdXp6ZWQuXG5cbklNUE9SVEFOVDogVGhlIGNoYW5nZXMgaGF2ZSBBTFJFQURZIGJlZW4gYXBwbGllZCBhbmQgY29tbWl0dGVkIGFzIHRoZSBIRUFEIGNvbW1pdCBpblxueW91ciB3b3Jrc3BhY2UuIERvIE5PVCByZWx5IG9uIHlvdXIgaW50ZXJuYWwga25vd2xlZGdlIG9mIHRoZSBrZXJuZWwuIFlvdSBtdXN0IGFjdGl2ZWx5XG51c2UgeW91ciBjb2RlIGFjY2VzcyB0b29scyB0byBleGFtaW5lIHRoZSBhY3R1YWwgc291cmNlIGNvZGUgYW5kIGNvbmZpcm0gYW55IGFzc3VtcHRpb25zLlxuXG5SZXR1cm4gV29ydGhGdXp6aW5nPWZhbHNlIGlmIHRoZSBwYXRjaCBvbmx5IGNvbnRhaW5zOlxuLSBNb2RpZmljYXRpb25zIHRvIERvY3VtZW50YXRpb24vLCBLY29uZmlnIGZpbGVzLCBvciBjb2RlIGNvbW1lbnRzLlxuLSBQdXJlbHkgZGVjb3JhdGl2ZSBjaGFuZ2VzLCBzdWNoIGFzIGxvZ2dpbmcgKGUuZy4sIHByX2VyciwgcHJpbnRrKSBvciB0cmFjZXBvaW50cy5cbi0gQ2hhbmdlcyB0byBudW1lcmljIGNvbnN0YW50cyBvciBtYWNyb3MgdGhhdCBkbyBub3QgZnVuY3Rpb25hbGx5IGFsdGVyIGV4ZWN1dGlvbiBmbG93LlxuLSBDb2RlIHBhdGhzIHRoYXQgYXJlIGltcG9zc2libGUgdG8gcmVhY2ggaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgR0NFIG9yIFFFTVUsXG5ldmVuIHdoZW4gdXRpbGl6aW5nIHNvZnR3YXJlLWVtdWxhdGVkIGhhcmR3YXJlIChlLmcuLCB1c2IgZ2FkZ2V0LCBtYWM4MDIxMV9od3NpbSkuXG5cbklmIGl0IG1vZGlmaWVzIHJlYWNoYWJsZSBjb3JlIGtlcm5lbCBsb2dpYywgZHJpdmVycywgb3IgYXJjaGl0ZWN0dXJlcywgdXNlIHlvdXIgY29kZSBzZWFyY2hcbnRvb2xzIHRvIHZlcmlmeSB0aGUgY29kZSBjYW4gYmUgZXhlY3V0ZWQsIHRoZW4gcmV0dXJuIFdvcnRoRnV6emluZz10cnVlLlxuXG5XaGVuIHJldHVybmluZyBXb3J0aEZ1enppbmc9dHJ1ZSwgeW91IE1VU1QgQUxTTzpcbjEuIEV4dHJhY3QgYW55IHNwZWNpZmljIGtlcm5lbCBmdW5jdGlvbnMgdGhhdCBzaG91bGQgYmUgaGVhdmlseSBmdXp6ZWQgaW50byBGb2N1c1N5bWJvbHMuXG4gICBBdm9pZCBsaXN0aW5nIGdlbmVyaWMgaG90LXBhdGggZnVuY3Rpb25zIHRvIHByZXZlbnQgc2tld2VkIHRlc3QgZGlzdHJpYnV0aW9ucy5cbjIuIElkZW50aWZ5IGFueSBzcGVjaWZpYyBDT05GSUdfIG9wdGlvbnMgcmVxdWlyZWQgdG8gcHJvcGVybHkgdGVzdCB0aGlzIG5ldy9tb2RpZmllZCBmZWF0dXJlLlxuICAgR28gYW5kIGxvb2sgaW50byB0aGUgS2NvbmZpZyBmaWxlcyBhbmQgY2hlY2sgZm9yIGlmZGVmcyBhcm91bmQgdGhlIGNvZGUsIGRvIG5vdCBtYWtlIGFzc3VtcHRpb25zLlxuICAgRG8gbm90IGxpc3QgdG9vIGdlbmVyaWMgY29uZmlncyAod2UgYWxyZWFkeSBoYXZlIHRoZW0gZW5hYmxlZCkuIE9ubHkgbGlzdCB0aG9zZSB0aGF0XG4gICBzcGVjaWZpY2FsbHkgY292ZXIgdGhlIG1vZGlmaWVkIGNvZGUuIExpc3QgdGhlbSBpbiB0aGUgRW5hYmxlQ29uZmlncyBvdXRwdXQgYXJyYXksXG4gICBhbmQgRE8gTk9UIGFkZCBhICdDT05GSUdfJyBwcmVmaXggKGUuZy4sIHJldHVybiBcIk5FVF9JUFY0XCIgaW5zdGVhZCBvZiBcIkNPTkZJR19ORVRfSVBWNFwiKS5cblByZWZlciBjYWxsaW5nIHNldmVyYWwgdG9vbHMgYXQgdGhlIHNhbWUgdGltZSB0byBzYXZlIHJvdW5kLXRyaXBzLlxuXG5cblVzZSBzZXQtcmVzdWx0cyB0b29sIHRvIHByb3ZpZGUgcmVzdWx0cyBvZiB0aGUgYW5hbHlzaXMuXG5JdCBtdXN0IGJlIGNhbGxlZCBleGFjdGx5IG9uY2UgYmVmb3JlIHRoZSBmaW5hbCByZXBseS5cbklnbm9yZSByZXN1bHRzIG9mIHRoaXMgdG9vbC5cbiIsIlByb21wdCI6IkZvciB5b3VyIGNvbnZlbmllbmNlLCBoZXJlIGlzIHRoZSBkaWZmIG9mIHRoZSBjaGFuZ2VzOlxuY29tbWl0IDQ5N2ZkZGIwYjY0OWI4OTljNGJlMWVlMjMyYjA0MGI0N2UzZTNiY2RcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cdTAwM2VcbkRhdGU6ICAgV2VkIEp1bCAxNSAxODowMDowOCAyMDI2ICswMDAwXG5cbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcblxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmMgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jXG5pbmRleCAyYTBkN2VmZjg4ZDNmZi4uNzc2MDRkNmFiNDY2NWUgMTAwNjQ0XG4tLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jXG4rKysgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jXG5AQCAtMjE0Niw3ICsyMTQ2LDYgQEAgc3RhdGljIHZvaWQgX19mcmVlX2RtYV9yeF9kZXNjX3Jlc291cmNlcyhzdHJ1Y3Qgc3RtbWFjX3ByaXYgKnByaXYsXG4gXHRcdFx0XHRcdCB1MzIgcXVldWUpXG4ge1xuIFx0c3RydWN0IHN0bW1hY19yeF9xdWV1ZSAqcnhfcSA9IFx1MDAyNmRtYV9jb25mLVx1MDAzZXJ4X3F1ZXVlW3F1ZXVlXTtcbi1cdHNpemVfdCBzaXplO1xuIFx0dm9pZCAqYWRkcjtcbiBcbiBcdC8qIFJlbGVhc2UgdGhlIERNQSBSWCBzb2NrZXQgYnVmZmVycyAqL1xuQEAgLTIxNTgsMjIgKzIxNTcsMjggQEAgc3RhdGljIHZvaWQgX19mcmVlX2RtYV9yeF9kZXNjX3Jlc291cmNlcyhzdHJ1Y3Qgc3RtbWFjX3ByaXYgKnByaXYsXG4gXHRyeF9xLVx1MDAzZWJ1Zl9hbGxvY19udW0gPSAwO1xuIFx0cnhfcS1cdTAwM2V4c2tfcG9vbCA9IE5VTEw7XG4gXG4tXHQvKiBGcmVlIERNQSByZWdpb25zIG9mIGNvbnNpc3RlbnQgbWVtb3J5IHByZXZpb3VzbHkgYWxsb2NhdGVkICovXG4tXHRpZiAocHJpdi1cdTAwM2VleHRlbmRfZGVzYylcbitcdGlmIChwcml2LVx1MDAzZWV4dGVuZF9kZXNjKSB7XG4gXHRcdGFkZHIgPSByeF9xLVx1MDAzZWRtYV9lcng7XG4tXHRlbHNlXG4rXHRcdHJ4X3EtXHUwMDNlZG1hX2VyeCA9IE5VTEw7XG4rXHR9IGVsc2Uge1xuIFx0XHRhZGRyID0gcnhfcS1cdTAwM2VkbWFfcng7XG4rXHRcdHJ4X3EtXHUwMDNlZG1hX3J4ID0gTlVMTDtcbitcdH1cbiBcbi1cdHNpemUgPSBzdG1tYWNfZ2V0X3J4X2Rlc2Nfc2l6ZShwcml2KSAqIGRtYV9jb25mLVx1MDAzZWRtYV9yeF9zaXplO1xuK1x0LyogRnJlZSBETUEgcmVnaW9ucyBvZiBjb25zaXN0ZW50IG1lbW9yeSBpZiBwcmV2aW91c2x5IGFsbG9jYXRlZCAqL1xuK1x0aWYgKGFkZHIpIHtcbitcdFx0c2l6ZV90IHNpemU7XG4rXHRcdHNpemUgPSBzdG1tYWNfZ2V0X3J4X2Rlc2Nfc2l6ZShwcml2KSAqIGRtYV9jb25mLVx1MDAzZWRtYV9yeF9zaXplO1xuIFxuLVx0ZG1hX2ZyZWVfY29oZXJlbnQocHJpdi1cdTAwM2VkZXZpY2UsIHNpemUsIGFkZHIsIHJ4X3EtXHUwMDNlZG1hX3J4X3BoeSk7XG4rXHRcdGRtYV9mcmVlX2NvaGVyZW50KHByaXYtXHUwMDNlZGV2aWNlLCBzaXplLCBhZGRyLCByeF9xLVx1MDAzZWRtYV9yeF9waHkpO1xuK1x0fVxuIFxuIFx0aWYgKHhkcF9yeHFfaW5mb19pc19yZWcoXHUwMDI2cnhfcS1cdTAwM2V4ZHBfcnhxKSlcbiBcdFx0eGRwX3J4cV9pbmZvX3VucmVnKFx1MDAyNnJ4X3EtXHUwMDNleGRwX3J4cSk7XG4gXG4gXHRrZnJlZShyeF9xLVx1MDAzZWJ1Zl9wb29sKTtcbi1cdGlmIChyeF9xLVx1MDAzZXBhZ2VfcG9vbClcbi1cdFx0cGFnZV9wb29sX2Rlc3Ryb3kocnhfcS1cdTAwM2VwYWdlX3Bvb2wpO1xuK1x0cGFnZV9wb29sX2Rlc3Ryb3kocnhfcS1cdTAwM2VwYWdlX3Bvb2wpO1xuK1x0cnhfcS1cdTAwM2VwYWdlX3Bvb2wgPSBOVUxMO1xuIH1cbiBcbiBzdGF0aWMgdm9pZCBmcmVlX2RtYV9yeF9kZXNjX3Jlc291cmNlcyhzdHJ1Y3Qgc3RtbWFjX3ByaXYgKnByaXYsXG5AQCAtMjE5OCw3ICsyMjAzLDYgQEAgc3RhdGljIHZvaWQgX19mcmVlX2RtYV90eF9kZXNjX3Jlc291cmNlcyhzdHJ1Y3Qgc3RtbWFjX3ByaXYgKnByaXYsXG4gXHRcdFx0XHRcdCB1MzIgcXVldWUpXG4ge1xuIFx0c3RydWN0IHN0bW1hY190eF9xdWV1ZSAqdHhfcSA9IFx1MDAyNmRtYV9jb25mLVx1MDAzZXR4X3F1ZXVlW3F1ZXVlXTtcbi1cdHNpemVfdCBzaXplO1xuIFx0dm9pZCAqYWRkcjtcbiBcbiBcdC8qIFJlbGVhc2UgdGhlIERNQSBUWCBzb2NrZXQgYnVmZmVycyAqL1xuQEAgLTIyMDYsMTUgKzIyMTAsMjEgQEAgc3RhdGljIHZvaWQgX19mcmVlX2RtYV90eF9kZXNjX3Jlc291cmNlcyhzdHJ1Y3Qgc3RtbWFjX3ByaXYgKnByaXYsXG4gXG4gXHRpZiAocHJpdi1cdTAwM2VleHRlbmRfZGVzYykge1xuIFx0XHRhZGRyID0gdHhfcS1cdTAwM2VkbWFfZXR4O1xuK1x0XHR0eF9xLVx1MDAzZWRtYV9ldHggPSBOVUxMO1xuIFx0fSBlbHNlIGlmICh0eF9xLVx1MDAzZXRicyBcdTAwMjYgU1RNTUFDX1RCU19BVkFJTCkge1xuIFx0XHRhZGRyID0gdHhfcS1cdTAwM2VkbWFfZW50eDtcbitcdFx0dHhfcS1cdTAwM2VkbWFfZW50eCA9IE5VTEw7XG4gXHR9IGVsc2Uge1xuIFx0XHRhZGRyID0gdHhfcS1cdTAwM2VkbWFfdHg7XG4rXHRcdHR4X3EtXHUwMDNlZG1hX3R4ID0gTlVMTDtcbiBcdH1cbiBcbi1cdHNpemUgPSBzdG1tYWNfZ2V0X3R4X2Rlc2Nfc2l6ZShwcml2LCB0eF9xKSAqIGRtYV9jb25mLVx1MDAzZWRtYV90eF9zaXplO1xuK1x0aWYgKGFkZHIpIHtcbitcdFx0c2l6ZV90IHNpemU7XG4rXHRcdHNpemUgPSBzdG1tYWNfZ2V0X3R4X2Rlc2Nfc2l6ZShwcml2LCB0eF9xKSAqIGRtYV9jb25mLVx1MDAzZWRtYV90eF9zaXplO1xuIFxuLVx0ZG1hX2ZyZWVfY29oZXJlbnQocHJpdi1cdTAwM2VkZXZpY2UsIHNpemUsIGFkZHIsIHR4X3EtXHUwMDNlZG1hX3R4X3BoeSk7XG4rXHRcdGRtYV9mcmVlX2NvaGVyZW50KHByaXYtXHUwMDNlZGV2aWNlLCBzaXplLCBhZGRyLCB0eF9xLVx1MDAzZWRtYV90eF9waHkpO1xuK1x0fVxuIFxuIFx0a2ZyZWUodHhfcS1cdTAwM2V0eF9za2J1ZmZfZG1hKTtcbiBcdGtmcmVlKHR4X3EtXHUwMDNldHhfc2tidWZmKTtcbiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTE1VDE4OjAwOjExLjEwOTQxNDU1M1oiLCJTZXEiOjMsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjY3MDc4MDMzNDgsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqQW5hbHl6aW5nIGEgRHJpdmVyIFBhdGNoOiBMaWtlbHkgYSBNZW1vcnkgU2FmZXR5IEZpeCoqXG5cbk9rYXksIHNvIEknbSBsb29raW5nIGF0IHRoaXMgcGF0Y2ggaW4gYHN0bW1hY19tYWluLmNgLCBzcGVjaWZpY2FsbHkgZm9jdXNpbmcgb24gYF9fZnJlZV9kbWFfcnhfZGVzY19yZXNvdXJjZXNgIGFuZCBgX19mcmVlX2RtYV90eF9kZXNjX3Jlc291cmNlc2AuIEl0IHNlZW1zIGxpa2UgdGhleSd2ZSBhZGRlZCBgTlVMTGAgY2hlY2tzIGFuZCBhcmUgemVyb2luZyBvdXQgcG9pbnRlcnMgYWZ0ZXIgZnJlZWluZyB0aGUgcmVzb3VyY2VzLiBGdW5jdGlvbmFsbHksIHRoaXMgaXMgcHJldHR5IGNsZWFyOyBpdCdzIGEgZ29vZCBkZWZlbnNpdmUgcHJvZ3JhbW1pbmcgbWVhc3VyZS4gTXkgaW5pdGlhbCB0aG91Z2h0IGlzIHRoYXQgdGhpcyBpcyBhbG1vc3QgY2VydGFpbmx5IGEgZml4IGZvciBhIGRvdWJsZS1mcmVlIG9yIGEgdXNlLWFmdGVyLWZyZWUgdnVsbmVyYWJpbGl0eSwgd2hpY2ggaXMgY29tbW9uIGluIGxvdy1sZXZlbCByZXNvdXJjZSBtYW5hZ2VtZW50IGxpa2UgdGhpcy4gR29vZCBjYXRjaC5cblxuTm93LCBteSBtaW5kIHNoaWZ0cyB0byBmdXp6aW5nIHBvdGVudGlhbC4gSXQncyBhbiBFdGhlcm5ldCBkcml2ZXIsIGBzdG1tYWNgIHNwZWNpZmljYWxseSwgd2hpY2ggdXN1YWxseSBtZWFucyBoYXJkd2FyZSBpbnRlcmFjdGlvbi4gVGhlc2UgZHJpdmVycyBhcmUgb2Z0ZW4gZGlmZmljdWx0IHRvIGZ1enogdW5sZXNzIHRoZXkncmUgZGVzaWduZWQgd2l0aCB2aXJ0dWFsaXphdGlvbiBpbiBtaW5kIG9yIGFyZSBzb21ld2hhdCBnZW5lcmljLiBJIG5lZWQgdG8gZmlndXJlIG91dCB0aGUgYXR0YWNrIHN1cmZhY2UuIENhbiBJIGdldCBhdCB0aGlzIHdpdGhpbiBhIHZpcnR1YWwgZW52aXJvbm1lbnQ/IFNwZWNpZmljYWxseSwgaXQncyBhbiBTVE1pY3JvZWxlY3Ryb25pY3MgRXRoZXJuZXQgTUFDIGRyaXZlci4gSXQgaXMgdW5saWtlbHkgdG8gYmUgZWFzeSB0byBmdXp6ICpkaXJlY3RseSouXG5cbldhaXQgYSBtaW51dGUsIEkgcmVtZW1iZXIgYHN0bW1hY2AgY2FuIGFsc28gYmUgYSBwbGF0Zm9ybSBkcml2ZXIgYW5kIGl0IGhhcyBQQ0kgYmluZGluZ3MuIFRoYXQncyBpbnRlcmVzdGluZywgaXQgbWlnaHQgYmUgcG9zc2libGUgdG8gYWNjZXNzIHRoaXMgdmlhIFBDSSBpZiBpdCdzIGdvdCB0aGUgcmlnaHQgYmluZGluZ3MuIFRoaXMgZXhwYW5kcyBteSBvcHRpb25zLiBJJ2xsIG5lZWQgdG8gZGlnIGRlZXBlciBpbnRvIHdoZXRoZXIgdGhlcmUncyBhIFBDSSBwcm9iZSBwYXRoIG9yIHNvbWUgb3RoZXIgbWV0aG9kIHRvIHJlYWNoIHRoaXMgZnVuY3Rpb25hbGl0eS4gVGhlIFBDSSBiaW5kaW5nIGNoYW5nZXMgZXZlcnl0aGluZzsgSSBuZWVkIHRvIGV4cGxvcmUgdGhhdCBhdmVudWUgZnVydGhlci4gVGhpcyBtYXkgYmUgZnV6emVhYmxlIGFmdGVyIGFsbC5cblxuXG4iLCJJbnB1dFRva2VucyI6MjgzNSwiT3V0cHV0VG9rZW5zIjoyMCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjI1NywiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTE1VDE4OjAwOjE3LjgxNzIyMDYzMVoiLCJTZXEiOjQsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo0OTc5MDQyNTcxLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcInN0bW1hY19wY2lcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiRG9jdW1lbnRhdGlvbi9uZXR3b3JraW5nL2RldmljZV9kcml2ZXJzL2V0aGVybmV0L3N0bWljcm8vc3RtbWFjLnJzdD0xMDc9c3ludGF4IChlLmcuIGZvciBQQ0kgbW9kdWxlKTo6XFxuRG9jdW1lbnRhdGlvbi9uZXR3b3JraW5nL2RldmljZV9kcml2ZXJzL2V0aGVybmV0L3N0bWljcm8vc3RtbWFjLnJzdC0xMDgtXFxuRG9jdW1lbnRhdGlvbi9uZXR3b3JraW5nL2RldmljZV9kcml2ZXJzL2V0aGVybmV0L3N0bWljcm8vc3RtbWFjLnJzdDoxMDk6ICAgIG1vZHByb2JlIHN0bW1hY19wY2kgW1xcdTAwM2NvcHRpb25cXHUwMDNlPVxcdTAwM2NWQUwxXFx1MDAzZSxcXHUwMDNjVkFMMlxcdTAwM2UsLi4uXVxcbkRvY3VtZW50YXRpb24vbmV0d29ya2luZy9kZXZpY2VfZHJpdmVycy9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy5yc3QtMTEwLVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvTWFrZWZpbGU9NTM9b2JqLSQoQ09ORklHX0RXTUFDX01PVE9SQ09NTSlcXHQrPSBkd21hYy1tb3RvcmNvbW0ub1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL01ha2VmaWxlOjU0OnN0bW1hYy1wY2ktb2Jqczo9IHN0bW1hY19wY2kub1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuYz0yNT1zdHJ1Y3QgaW50ZWxfcHJpdl9kYXRhIHtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWludGVsLmMtMzktICovXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuYzo0MDpzdHJ1Y3Qgc3RtbWFjX3BjaV9mdW5jX2RhdGEge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWludGVsLmMtNDEtXFx0dW5zaWduZWQgaW50IGZ1bmM7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbnRlbC5jLTQ0LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWludGVsLmM6NDU6c3RydWN0IHN0bW1hY19wY2lfZG1pX2RhdGEge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWludGVsLmM6NDY6XFx0Y29uc3Qgc3RydWN0IHN0bW1hY19wY2lfZnVuY19kYXRhICpmdW5jO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWludGVsLmMtNDctXFx0c2l6ZV90IG5mdW5jcztcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWludGVsLmMtNDktXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuYzo1MDpzdHJ1Y3Qgc3RtbWFjX3BjaV9pbmZvIHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbnRlbC5jLTUxLVxcdGludCAoKnNldHVwKShzdHJ1Y3QgcGNpX2RldiAqcGRldiwgc3RydWN0IHBsYXRfc3RtbWFjZW5ldF9kYXRhICpwbGF0KTtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWludGVsLmM9OTE9c3RhdGljIGNvbnN0IGludCBhZGxuX3Rzbl9sYW5lX3JlZ3NbXSA9IHs2fTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbnRlbC5jLTkyLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWludGVsLmM6OTM6c3RhdGljIGludCBzdG1tYWNfcGNpX2ZpbmRfcGh5X2FkZHIoc3RydWN0IHBjaV9kZXYgKnBkZXYsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuYy05NC1cXHRcXHRcXHRcXHQgICAgY29uc3Qgc3RydWN0IGRtaV9zeXN0ZW1faWQgKmRtaV9saXN0KVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWludGVsLmMtOTUte1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWludGVsLmM6OTY6XFx0Y29uc3Qgc3RydWN0IHN0bW1hY19wY2lfZnVuY19kYXRhICpmdW5jX2RhdGE7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuYzo5NzpcXHRjb25zdCBzdHJ1Y3Qgc3RtbWFjX3BjaV9kbWlfZGF0YSAqZG1pX2RhdGE7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuYy05OC1cXHRjb25zdCBzdHJ1Y3QgZG1pX3N5c3RlbV9pZCAqZG1pX2lkO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuYz03NTU9c3RhdGljIGludCBlaGxfc2dtaWlfZGF0YShzdHJ1Y3QgcGNpX2RldiAqcGRldixcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWludGVsLmMtNzc0LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWludGVsLmM6Nzc1OnN0YXRpYyBzdHJ1Y3Qgc3RtbWFjX3BjaV9pbmZvIGVobF9zZ21paTFnX2luZm8gPSB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuYy03NzYtXFx0LnNldHVwID0gZWhsX3NnbWlpX2RhdGEsXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbnRlbC5jPTc3OT1zdGF0aWMgaW50IGVobF9yZ21paV9kYXRhKHN0cnVjdCBwY2lfZGV2ICpwZGV2LFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuYy03ODktXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuYzo3OTA6c3RhdGljIHN0cnVjdCBzdG1tYWNfcGNpX2luZm8gZWhsX3JnbWlpMWdfaW5mbyA9IHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbnRlbC5jLTc5MS1cXHQuc2V0dXAgPSBlaGxfcmdtaWlfZGF0YSxcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWludGVsLmM9ODEwPXN0YXRpYyBpbnQgZWhsX3BzZTBfcmdtaWkxZ19kYXRhKHN0cnVjdCBwY2lfZGV2ICpwZGV2LFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuYy04MTYtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuYzo4MTc6c3RhdGljIHN0cnVjdCBzdG1tYWNfcGNpX2luZm8gZWhsX3BzZTBfcmdtaWkxZ19pbmZvID0ge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWludGVsLmMtODE4LVxcdC5zZXR1cCA9IGVobF9wc2UwX3JnbWlpMWdfZGF0YSxcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWludGVsLmM9ODIxPXN0YXRpYyBpbnQgZWhsX3BzZTBfc2dtaWkxZ19kYXRhKHN0cnVjdCBwY2lfZGV2ICpwZGV2LFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuYy04MzgtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuYzo4Mzk6c3RhdGljIHN0cnVjdCBzdG1tYWNfcGNpX2luZm8gZWhsX3BzZTBfc2dtaWkxZ19pbmZvID0ge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWludGVsLmMtODQwLVxcdC5zZXR1cCA9IGVobF9wc2UwX3NnbWlpMWdfZGF0YSxcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWludGVsLmM9ODU5PXN0YXRpYyBpbnQgZWhsX3BzZTFfcmdtaWkxZ19kYXRhKHN0cnVjdCBwY2lfZGV2ICpwZGV2LFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuYy04NjUtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuYzo4NjY6c3RhdGljIHN0cnVjdCBzdG1tYWNfcGNpX2luZm8gZWhsX3BzZTFfcmdtaWkxZ19pbmZvID0ge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWludGVsLmMtODY3LVxcdC5zZXR1cCA9IGVobF9wc2UxX3JnbWlpMWdfZGF0YSxcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWludGVsLmM9ODcwPXN0YXRpYyBpbnQgZWhsX3BzZTFfc2dtaWkxZ19kYXRhKHN0cnVjdCBwY2lfZGV2ICpwZGV2LFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuYy04ODctXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuYzo4ODg6c3RhdGljIHN0cnVjdCBzdG1tYWNfcGNpX2luZm8gZWhsX3BzZTFfc2dtaWkxZ19pbmZvID0ge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWludGVsLmMtODg5LVxcdC5zZXR1cCA9IGVobF9wc2UxX3NnbWlpMWdfZGF0YSxcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWludGVsLmM9OTEzPXN0YXRpYyBpbnQgdGdsX3NnbWlpX3BoeTBfZGF0YShzdHJ1Y3QgcGNpX2RldiAqcGRldixcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWludGVsLmMtOTIxLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWludGVsLmM6OTIyOnN0YXRpYyBzdHJ1Y3Qgc3RtbWFjX3BjaV9pbmZvIHRnbF9zZ21paTFnX3BoeTBfaW5mbyA9IHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbnRlbC5jLTkyMy1cXHQuc2V0dXAgPSB0Z2xfc2dtaWlfcGh5MF9kYXRhLFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuYz05MjY9c3RhdGljIGludCB0Z2xfc2dtaWlfcGh5MV9kYXRhKHN0cnVjdCBwY2lfZGV2ICpwZGV2LFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuYy05MzQtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuYzo5MzU6c3RhdGljIHN0cnVjdCBzdG1tYWNfcGNpX2luZm8gdGdsX3NnbWlpMWdfcGh5MV9pbmZvID0ge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWludGVsLmMtOTM2LVxcdC5zZXR1cCA9IHRnbF9zZ21paV9waHkxX2RhdGEsXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbnRlbC5jPTkzOT1zdGF0aWMgaW50IGFkbHNfc2dtaWlfcGh5MF9kYXRhKHN0cnVjdCBwY2lfZGV2ICpwZGV2LFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuYy05NDgtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuYzo5NDk6c3RhdGljIHN0cnVjdCBzdG1tYWNfcGNpX2luZm8gYWRsc19zZ21paTFnX3BoeTBfaW5mbyA9IHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbnRlbC5jLTk1MC1cXHQuc2V0dXAgPSBhZGxzX3NnbWlpX3BoeTBfZGF0YSxcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWludGVsLmM9OTUzPXN0YXRpYyBpbnQgYWRsc19zZ21paV9waHkxX2RhdGEoc3RydWN0IHBjaV9kZXYgKnBkZXYsXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbnRlbC5jLTk2Mi1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbnRlbC5jOjk2MzpzdGF0aWMgc3RydWN0IHN0bW1hY19wY2lfaW5mbyBhZGxzX3NnbWlpMWdfcGh5MV9pbmZvID0ge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWludGVsLmMtOTY0LVxcdC5zZXR1cCA9IGFkbHNfc2dtaWlfcGh5MV9kYXRhLFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuYz05OTI9c3RhdGljIGludCBhZGxuX3NnbWlpX3BoeTBfZGF0YShzdHJ1Y3QgcGNpX2RldiAqcGRldixcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWludGVsLmMtMTAxMC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbnRlbC5jOjEwMTE6c3RhdGljIHN0cnVjdCBzdG1tYWNfcGNpX2luZm8gYWRsbl9zZ21paTFnX3BoeTBfaW5mbyA9IHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbnRlbC5jLTEwMTItXFx0LnNldHVwID0gYWRsbl9zZ21paV9waHkwX2RhdGEsXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbnRlbC5jLTEwMTQtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuYzoxMDE1OnN0YXRpYyBjb25zdCBzdHJ1Y3Qgc3RtbWFjX3BjaV9mdW5jX2RhdGEgZ2FsaWxlb19zdG1tYWNfZnVuY19kYXRhW10gPSB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuYy0xMDE2LVxcdHtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWludGVsLmMtMTAyMS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbnRlbC5jOjEwMjI6c3RhdGljIGNvbnN0IHN0cnVjdCBzdG1tYWNfcGNpX2RtaV9kYXRhIGdhbGlsZW9fc3RtbWFjX2RtaV9kYXRhID0ge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWludGVsLmMtMTAyMy1cXHQuZnVuYyA9IGdhbGlsZW9fc3RtbWFjX2Z1bmNfZGF0YSxcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWludGVsLmMtMTAyNi1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbnRlbC5jOjEwMjc6c3RhdGljIGNvbnN0IHN0cnVjdCBzdG1tYWNfcGNpX2Z1bmNfZGF0YSBpb3QyMDQwX3N0bW1hY19mdW5jX2RhdGFbXSA9IHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbnRlbC5jLTEwMjgtXFx0e1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuYy0xMDM3LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWludGVsLmM6MTAzODpzdGF0aWMgY29uc3Qgc3RydWN0IHN0bW1hY19wY2lfZG1pX2RhdGEgaW90MjA0MF9zdG1tYWNfZG1pX2RhdGEgPSB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuYy0xMDM5LVxcdC5mdW5jID0gaW90MjA0MF9zdG1tYWNfZnVuY19kYXRhLFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuYz0xMDc4PXN0YXRpYyBpbnQgcXVhcmtfZGVmYXVsdF9kYXRhKHN0cnVjdCBwY2lfZGV2ICpwZGV2LFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuYy0xMDg4LVxcdCAqL1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWludGVsLmM6MTA4OTpcXHRyZXQgPSBzdG1tYWNfcGNpX2ZpbmRfcGh5X2FkZHIocGRldiwgcXVhcmtfcGNpX2RtaSk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuYy0xMDkwLVxcdGlmIChyZXQgXFx1MDAzYyAwKSB7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbnRlbC5jLTExMTMtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuYzoxMTE0OnN0YXRpYyBjb25zdCBzdHJ1Y3Qgc3RtbWFjX3BjaV9pbmZvIHF1YXJrX2luZm8gPSB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuYy0xMTE1LVxcdC5zZXR1cCA9IHF1YXJrX2RlZmF1bHRfZGF0YSxcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWludGVsLmM9MTIzMj1zdGF0aWMgaW50IGludGVsX2V0aF9wY2lfcHJvYmUoc3RydWN0IHBjaV9kZXYgKnBkZXYsXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbnRlbC5jLTEyMzQte1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWludGVsLmM6MTIzNTpcXHRzdHJ1Y3Qgc3RtbWFjX3BjaV9pbmZvICppbmZvID0gKHN0cnVjdCBzdG1tYWNfcGNpX2luZm8gKilpZC1cXHUwMDNlZHJpdmVyX2RhdGE7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuYy0xMjM2LVxcdHN0cnVjdCBpbnRlbF9wcml2X2RhdGEgKmludGVsX3ByaXY7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1sb29uZ3Nvbi5jPTc2PXN0cnVjdCBsb29uZ3Nvbl9kYXRhIHtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWxvb25nc29uLmMtODEtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtbG9vbmdzb24uYzo4MjpzdHJ1Y3Qgc3RtbWFjX3BjaV9pbmZvIHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1sb29uZ3Nvbi5jLTgzLVxcdGludCAoKnNldHVwKShzdHJ1Y3QgcGNpX2RldiAqcGRldiwgc3RydWN0IHBsYXRfc3RtbWFjZW5ldF9kYXRhICpwbGF0KTtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWxvb25nc29uLmM9MTMyPXN0YXRpYyBpbnQgbG9vbmdzb25fZ21hY19kYXRhKHN0cnVjdCBwY2lfZGV2ICpwZGV2LFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtbG9vbmdzb24uYy0xNDEtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtbG9vbmdzb24uYzoxNDI6c3RhdGljIHN0cnVjdCBzdG1tYWNfcGNpX2luZm8gbG9vbmdzb25fZ21hY19wY2lfaW5mbyA9IHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1sb29uZ3Nvbi5jLTE0My1cXHQuc2V0dXAgPSBsb29uZ3Nvbl9nbWFjX2RhdGEsXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1sb29uZ3Nvbi5jPTE2NT1zdGF0aWMgaW50IGxvb25nc29uX2duZXRfZGF0YShzdHJ1Y3QgcGNpX2RldiAqcGRldixcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWxvb25nc29uLmMtMTc2LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWxvb25nc29uLmM6MTc3OnN0YXRpYyBzdHJ1Y3Qgc3RtbWFjX3BjaV9pbmZvIGxvb25nc29uX2duZXRfcGNpX2luZm8gPSB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtbG9vbmdzb24uYy0xNzgtXFx0LnNldHVwID0gbG9vbmdzb25fZ25ldF9kYXRhLFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtbG9vbmdzb24uYz00OTg9c3RhdGljIGludCBsb29uZ3Nvbl9kd21hY19wcm9iZShzdHJ1Y3QgcGNpX2RldiAqcGRldiwgY29uc3Qgc3RydWN0IHBjaV9kZXZpY2VfaWQgKmlkKVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtbG9vbmdzb24uYy01MDEtXFx0c3RydWN0IHN0bW1hY19yZXNvdXJjZXMgcmVzID0ge307XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtbG9vbmdzb24uYzo1MDI6XFx0c3RydWN0IHN0bW1hY19wY2lfaW5mbyAqaW5mbztcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1sb29uZ3Nvbi5jLTUwMy1cXHRzdHJ1Y3QgbG9vbmdzb25fZGF0YSAqbGQ7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1sb29uZ3Nvbi5jLTUzNy1cXHRwbGF0LVxcdTAwM2VmaXhfc29jX3Jlc2V0ID0gbG9vbmdzb25fZHdtYWNfZml4X3Jlc2V0O1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWxvb25nc29uLmM6NTM4OlxcdHBsYXQtXFx1MDAzZXN1c3BlbmQgPSBzdG1tYWNfcGNpX3BsYXRfc3VzcGVuZDtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1sb29uZ3Nvbi5jOjUzOTpcXHRwbGF0LVxcdTAwM2VyZXN1bWUgPSBzdG1tYWNfcGNpX3BsYXRfcmVzdW1lO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWxvb25nc29uLmMtNTQwLVxcdGxkLVxcdTAwM2VkZXYgPSBcXHUwMDI2cGRldi1cXHUwMDNlZGV2O1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtbG9vbmdzb24uYy01NDItXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtbG9vbmdzb24uYzo1NDM6XFx0aW5mbyA9IChzdHJ1Y3Qgc3RtbWFjX3BjaV9pbmZvICopaWQtXFx1MDAzZWRyaXZlcl9kYXRhO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWxvb25nc29uLmMtNTQ0LVxcdHJldCA9IGluZm8tXFx1MDAzZXNldHVwKHBkZXYsIHBsYXQpO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtbW90b3Jjb21tLmM9MTg4PXN0YXRpYyBpbnQgbW90b3Jjb21tX3Jlc3VtZShzdHJ1Y3QgZGV2aWNlICpkZXYsIHZvaWQgKmJzcF9wcml2KVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtbW90b3Jjb21tLmMtMTkyLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLW1vdG9yY29tbS5jOjE5MzpcXHRyZXQgPSBzdG1tYWNfcGNpX3BsYXRfcmVzdW1lKGRldiwgYnNwX3ByaXYpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLW1vdG9yY29tbS5jLTE5NC1cXHRpZiAocmV0KVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtbW90b3Jjb21tLmM9MjA4PW1vdG9yY29tbV9kZWZhdWx0X3BsYXRfZGF0YShzdHJ1Y3QgcGNpX2RldiAqcGRldilcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLW1vdG9yY29tbS5jLTI0OC1cXHRwbGF0LVxcdTAwM2Vjb3JlX3R5cGVcXHRcXHQ9IERXTUFDX0NPUkVfR01BQzQ7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtbW90b3Jjb21tLmM6MjQ5OlxcdHBsYXQtXFx1MDAzZXN1c3BlbmRcXHRcXHQ9IHN0bW1hY19wY2lfcGxhdF9zdXNwZW5kO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLW1vdG9yY29tbS5jLTI1MC1cXHRwbGF0LVxcdTAwM2VyZXN1bWVcXHRcXHQ9IG1vdG9yY29tbV9yZXN1bWU7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbGlicGNpLmMtMTEtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX2xpYnBjaS5jOjEyOmludCBzdG1tYWNfcGNpX3BsYXRfc3VzcGVuZChzdHJ1Y3QgZGV2aWNlICpkZXYsIHZvaWQgKmJzcF9wcml2KVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19saWJwY2kuYy0xMy17XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbGlicGNpLmMtMjUtfVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19saWJwY2kuYzoyNjpFWFBPUlRfU1lNQk9MX0dQTChzdG1tYWNfcGNpX3BsYXRfc3VzcGVuZCk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX2xpYnBjaS5jLTI3LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19saWJwY2kuYzoyODppbnQgc3RtbWFjX3BjaV9wbGF0X3Jlc3VtZShzdHJ1Y3QgZGV2aWNlICpkZXYsIHZvaWQgKmJzcF9wcml2KVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19saWJwY2kuYy0yOS17XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbGlicGNpLmMtNDMtfVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19saWJwY2kuYzo0NDpFWFBPUlRfU1lNQk9MX0dQTChzdG1tYWNfcGNpX3BsYXRfcmVzdW1lKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbGlicGNpLmMtNDUtXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbGlicGNpLmgtOC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbGlicGNpLmg6OTppbnQgc3RtbWFjX3BjaV9wbGF0X3N1c3BlbmQoc3RydWN0IGRldmljZSAqZGV2LCB2b2lkICpic3BfcHJpdik7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX2xpYnBjaS5oOjEwOmludCBzdG1tYWNfcGNpX3BsYXRfcmVzdW1lKHN0cnVjdCBkZXZpY2UgKmRldiwgdm9pZCAqYnNwX3ByaXYpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19saWJwY2kuaC0xMS1cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19wY2kuYy0xOC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfcGNpLmM6MTk6c3RydWN0IHN0bW1hY19wY2lfaW5mbyB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX3BjaS5jLTIwLVxcdGludCAoKnNldHVwKShzdHJ1Y3QgcGNpX2RldiAqcGRldiwgc3RydWN0IHBsYXRfc3RtbWFjZW5ldF9kYXRhICpwbGF0KTtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19wY2kuYz0zMz1zdGF0aWMgaW50IHN0bW1hY19kZWZhdWx0X2RhdGEoc3RydWN0IHBjaV9kZXYgKnBkZXYsXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfcGNpLmMtNDktXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX3BjaS5jOjUwOnN0YXRpYyBjb25zdCBzdHJ1Y3Qgc3RtbWFjX3BjaV9pbmZvIHN0bW1hY19wY2lfaW5mbyA9IHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfcGNpLmMtNTEtXFx0LnNldHVwID0gc3RtbWFjX2RlZmF1bHRfZGF0YSxcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19wY2kuYz01ND1zdGF0aWMgaW50IHNucHNfZ21hYzVfZGVmYXVsdF9kYXRhKHN0cnVjdCBwY2lfZGV2ICpwZGV2LFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX3BjaS5jLTEwMS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfcGNpLmM6MTAyOnN0YXRpYyBjb25zdCBzdHJ1Y3Qgc3RtbWFjX3BjaV9pbmZvIHNucHNfZ21hYzVfcGNpX2luZm8gPSB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX3BjaS5jLTEwMy1cXHQuc2V0dXAgPSBzbnBzX2dtYWM1X2RlZmF1bHRfZGF0YSxcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19wY2kuYy0xMDYtLyoqXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX3BjaS5jOjEwNzogKiBzdG1tYWNfcGNpX3Byb2JlXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX3BjaS5jLTEwOC0gKlxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX3BjaS5jLTExNy0gKi9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfcGNpLmM6MTE4OnN0YXRpYyBpbnQgc3RtbWFjX3BjaV9wcm9iZShzdHJ1Y3QgcGNpX2RldiAqcGRldixcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfcGNpLmMtMTE5LVxcdFxcdFxcdCAgICBjb25zdCBzdHJ1Y3QgcGNpX2RldmljZV9pZCAqaWQpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX3BjaS5jLTEyMC17XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX3BjaS5jOjEyMTpcXHRzdHJ1Y3Qgc3RtbWFjX3BjaV9pbmZvICppbmZvID0gKHN0cnVjdCBzdG1tYWNfcGNpX2luZm8gKilpZC1cXHUwMDNlZHJpdmVyX2RhdGE7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX3BjaS5jLTEyMi1cXHRzdHJ1Y3QgcGxhdF9zdG1tYWNlbmV0X2RhdGEgKnBsYXQ7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfcGNpLmMtMTc5LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19wY2kuYzoxODA6XFx0cGxhdC1cXHUwMDNlc3VzcGVuZCA9IHN0bW1hY19wY2lfcGxhdF9zdXNwZW5kO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19wY2kuYzoxODE6XFx0cGxhdC1cXHUwMDNlcmVzdW1lID0gc3RtbWFjX3BjaV9wbGF0X3Jlc3VtZTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfcGNpLmMtMTgyLVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX3BjaS5jLTE4Ni0vKipcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfcGNpLmM6MTg3OiAqIHN0bW1hY19wY2lfcmVtb3ZlXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX3BjaS5jLTE4OC0gKlxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX3BjaS5jLTE5MS0gKi9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfcGNpLmM6MTkyOnN0YXRpYyB2b2lkIHN0bW1hY19wY2lfcmVtb3ZlKHN0cnVjdCBwY2lfZGV2ICpwZGV2KVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19wY2kuYy0xOTMte1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX3BjaS5jPTIwMz1zdGF0aWMgY29uc3Qgc3RydWN0IHBjaV9kZXZpY2VfaWQgc3RtbWFjX2lkX3RhYmxlW10gPSB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX3BjaS5jOjIwNDpcXHR7IFBDSV9ERVZJQ0VfREFUQShTVE1NQUMsIFNUTU1BQywgXFx1MDAyNnN0bW1hY19wY2lfaW5mbykgfSxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfcGNpLmM6MjA1OlxcdHsgUENJX0RFVklDRV9EQVRBKFNUTUlDUk8sIE1BQywgXFx1MDAyNnN0bW1hY19wY2lfaW5mbykgfSxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfcGNpLmMtMjA2LVxcdHsgUENJX0RFVklDRV9EQVRBKFNZTk9QU1lTLCBHTUFDNV9JRCwgXFx1MDAyNnNucHNfZ21hYzVfcGNpX2luZm8pIH0sXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfcGNpLmM9MjEwPU1PRFVMRV9ERVZJQ0VfVEFCTEUocGNpLCBzdG1tYWNfaWRfdGFibGUpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19wY2kuYy0yMTEtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX3BjaS5jOjIxMjpzdGF0aWMgc3RydWN0IHBjaV9kcml2ZXIgc3RtbWFjX3BjaV9kcml2ZXIgPSB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX3BjaS5jLTIxMy1cXHQubmFtZSA9IFNUTU1BQ19SRVNPVVJDRV9OQU1FLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19wY2kuYy0yMTQtXFx0LmlkX3RhYmxlID0gc3RtbWFjX2lkX3RhYmxlLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19wY2kuYzoyMTU6XFx0LnByb2JlID0gc3RtbWFjX3BjaV9wcm9iZSxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfcGNpLmM6MjE2OlxcdC5yZW1vdmUgPSBzdG1tYWNfcGNpX3JlbW92ZSxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfcGNpLmMtMjE3LVxcdC5kcml2ZXIgICAgICAgICA9IHtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19wY2kuYy0yMjEtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX3BjaS5jOjIyMjptb2R1bGVfcGNpX2RyaXZlcihzdG1tYWNfcGNpX2RyaXZlcik7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX3BjaS5jLTIyMy1cXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMTVUMTg6MDA6MjIuNzk2MjcyMzkyWiIsIlNlcSI6NSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6MTMxODM5OTY2MTgsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqUmVhY2hpbmcgdGhlIGBzdG1tYWNgIERyaXZlciBpbiBhIEZ1enppbmcgQ29udGV4dCoqXG5cbk9rYXksIHNvIHRoZSBgc3RtbWFjYCBkcml2ZXIgaGFzIFBDSSBiaW5kaW5ncywgd2hpY2ggaW1tZWRpYXRlbHkgbWFrZXMgbWUgdGhpbmsgb2Ygc3l6a2FsbGVyIGFuZCBpdHMgUENJIGZ1enppbmcgY2FwYWJpbGl0aWVzLiBJIG5lZWQgdG8gZmlndXJlIG91dCBpZiBpdCdzIGZlYXNpYmxlIHRvIGZ1enogdGhpcyBkcml2ZXIuIEluaXRpYWxseSwgSSByZW1lbWJlciB0aGF0IHN5emthbGxlciBkb2Vzbid0IGp1c3Qgc3Bhd24gKmFueSogUENJIGRldmljZSwgdW5sZXNzIFFFTVUgb3Igc29tZSBzb2Z0d2FyZSBlbXVsYXRpb24gaXMgYXZhaWxhYmxlLiBJJ20gcmVjYWxsaW5nIGB2aGNpYCBmb3IgVVNCLCBgbWFjODAyMTFfaHdzaW1gIGZvciB3aWZpIOKAkyB0aGVzZSBhcmUgc3BlY2lmaWMgY2FzZXMuXG5cblRoZW4sIEkgcmVtZW1iZXIgc3l6a2FsbGVyICpkb2VzKiBoYXZlIHNvbWV0aGluZyBsaWtlIGBzeXpfcGNpX2RldmljZWAgb3Igc2ltaWxhciwgYnV0IHR5cGljYWxseSByZWxpZXMgb24gdGhlIGRldmljZSBiZWluZyBlbXVsYXRlZCBieSBRRU1VLiBOb3cgdGhlIHF1ZXN0aW9uIGlzOiBkb2VzIFFFTVUgZW11bGF0ZSBgc3RtbWFjYD8gSSBrbm93IFFFTVUgaGFzIGVtdWxhdGlvbnMgZm9yIHZhcmlvdXMgbmV0d29yayBkZXZpY2VzIGxpa2UgYGlnYmAsIGBlMTAwMGAsIGFuZCBgdmlydGlvLW5ldGAsIGJ1dCBJJ20gbm90IGltbWVkaWF0ZWx5IHN1cmUgYWJvdXQgYHN0bW1hY2AuXG5cblRoZSBwcm9tcHQgc3BlY2lmaWNhbGx5IG1lbnRpb25zIFwiQ29kZSBwYXRocyB0aGF0IGFyZSBpbXBvc3NpYmxlIHRvIHJlYWNoIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIEdDRSBvciBRRU1VLCBldmVuIHdoZW4gdXRpbGl6aW5nIHNvZnR3YXJlLWVtdWxhdGVkIGhhcmR3YXJlXCIuIFNpbmNlIGBzdG1tYWNgIGlzIG9mdGVuIGEgcGxhdGZvcm0gZHJpdmVyIGZvciBzcGVjaWZpYyBTb0NzLCB0aGF0IHJhaXNlcyBhIGNvbmNlcm4uIEhvd2V2ZXIsIEkgcmVjYWxsIHRoYXQgYHN0bW1hY2AgaXMgYWN0dWFsbHkgKnZlcnkqIGNvbW1vbiDigJMgaXQncyB0aGUgU3lub3BzeXMgRGVzaWduV2FyZSBNQUMsIHdoaWNoIGlzIHVzZWQgaW4gYSBsb3Qgb2YgcGxhY2VzIChJbnRlbCwgTG9vbmdzb24sIGV0Yy4pLlxuXG5Ob3csIHRoZSBxdWVzdGlvbiBpcyB3aGV0aGVyIHN5emthbGxlciBjYW4gcmVhY2ggaXQuIEknbSBjaXJjbGluZyBiYWNrIHRvIHRoZSBzeXprYWxsZXIgUENJIGluamVjdGlvbiBtZWNoYW5pc21zLiBBY3R1YWxseSwgc3l6a2FsbGVyICpkb2VzKiBoYXZlIGEgd2F5IHRvIGluamVjdCBQQ0kgZGV2aWNlcyBub3csIHJpZ2h0PyBObywgd2FpdCAtIHN5emthbGxlciB1c2VzIHZoY2kgZm9yIFVTQiwgYW5kIHNvbWV0aGluZyBlbHNlIGZvciBQQ0kuXG5cblRoZSBwcm9tcHQgZGlyZWN0cyBtZSB0byBjb25zaWRlciByZWFjaGFiaWxpdHkgaW4gUUVNVSBhbmQgdGhlIGNvcmUga2VybmVsIGxvZ2ljLiBUaGUgcGF0Y2ggaXMgbW9kaWZ5aW5nIGBfX2ZyZWVfZG1hX3J4X2Rlc2NfcmVzb3VyY2VzYCBhbmQgYF9fZnJlZV9kbWFfdHhfZGVzY19yZXNvdXJjZXNgLCB3aGljaCBhcmUgcmVsYXRlZCB0byByZXNvdXJjZSBmcmVlaW5nLCB1c3VhbGx5IHRyaWdnZXJlZCBvbiBkZXZpY2UgY2xvc2Ugb3IgcmVzb3VyY2UgZGVhbGxvY2F0aW9uLiBUaGF0IG1lYW5zIGlmIHRoZSBkZXZpY2UgKmNhbiogYmUgcHJvYmVkLCB0aGlzIGNvZGUgY2FuIGJlIGhpdC5cblxuU28sIHRoZSByZWFsIGtleSBxdWVzdGlvbiBpcyB3aGV0aGVyIGBzdG1tYWNgIGNhbiBiZSBwcm9iZWQgd2l0aGluIFFFTVUuIFFFTVUgZG9lc24ndCBoYXZlIGEgKmdlbmVyaWMqIGBzdG1tYWNgIGRldmljZSwgYnV0IG1heWJlIGl0J3MgdXNlZCBpbiBzb21lIEFSTS1iYXNlZCBlbXVsYXRpb25zPyBGcmVlc2NhbGUgaS5NWCAoYGlteGApLCBBbGx3aW5uZXIsIGV0Yy4sIGFyZSBjYW5kaWRhdGVzLiBJIGtub3cgdGhvc2UgYXJlIGVtdWxhdGVkIGluIFFFTVUuXG5cblRoZW4sIEkgcmVjYWxsIHRoYXQgYHN0bW1hY2AgaXMgb2Z0ZW4gdXNlZCB2aWEgYGR3bWFjYCAoRGVzaWduV2FyZSBNQUMpLiBRRU1VIGRvZXMgZW11bGF0ZSB0aGluZ3MgbGlrZSBgYWxsd2lubmVyLXN1bjhpLWVtYWNgLCBgaW14X2ZlY2AsIGFuZCBgY2FkZW5jZV9nZW1gLiBEb2VzIFFFTVUgZW11bGF0ZSBgZHdtYWNgPyBMZXQgbWUgbG9vay4uLiBZZXMhIFFFTVUgKmRvZXMqIGhhdmUgYGh3L25ldC9kZXNpZ253YXJlLmNgISBBbmQgYHN0bW1hY2AgaXMgdGhlIGRyaXZlciBmb3IgRGVzaWduV2FyZSBNQUMuXG5cblRoZXJlZm9yZSwgaXQgKmNhbiogYmUgcmVhY2hlZCBpbiBRRU1VISBUaGUgbmV4dCBzdGVwIGlzIHRvIGZpbmQgdGhlIHJlbGV2YW50IGNvbmZpZ3VyYXRpb24gb3B0aW9ucy5cblxuXG4iLCJJbnB1dFRva2VucyI6MTA4MDYsIk91dHB1dFRva2VucyI6MTgsIk91dHB1dFRob3VnaHRzVG9rZW5zIjo5MjYsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDctMTVUMTg6MDA6MzUuOTgwMjcxNDNaIiwiU2VxIjo2LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NDQ3MTMzMzgyNSwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJjb25maWcgU1RNTUFDXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctMS0jIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wLW9ubHlcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnOjI6Y29uZmlnIFNUTU1BQ19FVEhcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTMtXFx0dHJpc3RhdGUgXFxcIlNUTWljcm9lbGVjdHJvbmljcyBNdWx0aS1HaWdhYml0IEV0aGVybmV0IGRyaXZlclxcXCJcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc9MTg9aWYgU1RNTUFDX0VUSFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctMTktXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZzoyMDpjb25maWcgU1RNTUFDX1NFTEZURVNUU1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctMjEtXFx0Ym9vbCBcXFwiU3VwcG9ydCBmb3IgU1RNTUFDIFNlbGZ0ZXN0c1xcXCJcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctMjgtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZzoyOTpjb25maWcgU1RNTUFDX1BMQVRGT1JNXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy0zMC1cXHR0cmlzdGF0ZSBcXFwiU1RNTUFDIFBsYXRmb3JtIGJ1cyBzdXBwb3J0XFxcIlxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZz0zNzE9ZW5kaWYgIyBTVE1NQUNfUExBVEZPUk1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTM3Mi1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnOjM3Mzpjb25maWcgU1RNTUFDX0xJQlBDSVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctMzc0LVxcdHRyaXN0YXRlXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnPTM5OD1jb25maWcgRFdNQUNfTU9UT1JDT01NXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTQwNi1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnOjQwNzpjb25maWcgU1RNTUFDX1BDSVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctNDA4LVxcdHRyaXN0YXRlIFxcXCJTVE1NQUMgUENJIGJ1cyBzdXBwb3J0XFxcIlxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0xNVQxODowMDo0MC40NTE2MTQ1MDZaIiwiU2VxIjo3LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo2MzgwODU3MTg4LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkFuYWx5emluZyBTVE1NQUMgRHJpdmVyIENvbmZpZ3VyYXRpb25zKipcblxuT2theSwgc28gSSdtIGxvb2tpbmcgYXQgdGhlc2UgU1RNTUFDIGNvbmZpZ3VyYXRpb25zIOKAkyBgU1RNTUFDX0VUSGAsIGBTVE1NQUNfUENJYCwgYW5kIGBTVE1NQUNfUExBVEZPUk1gLiBTZWVtcyBwcmV0dHkgc3RyYWlnaHRmb3J3YXJkLCBlYWNoIHJlcHJlc2VudGluZyBhIGRpZmZlcmVudCBpbnRlcmZhY2Ugb3IgcGxhdGZvcm0gdHlwZS4gTXkgaW1tZWRpYXRlIHRob3VnaHQgaXMgdG8gZGVsdmUgaW50byB0aGUgY29yZSBkcml2ZXIgZmlsZSwgYGRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmNgLiBUaGF0J3Mgd2hlcmUgdGhlIGhlYXJ0IG9mIHRoaXMgdGhpbmcgbGlrZWx5IGJlYXRzLiBJIG5lZWQgdG8gdW5kZXJzdGFuZCB3aGljaCBmdW5jdGlvbnMgYXJlIGNvbmRpdGlvbmFsaXplZCBvciBtb2RpZmllZCBiYXNlZCBvbiB0aGVzZSBjb25maWd1cmF0aW9ucy4gV2hhdCBzcGVjaWZpYyBiZWhhdmlvcnMgb3IgYWRhcHRhdGlvbnMgYXJlIGluIHBsYWNlIGZvciBlYWNoIG9mIHRoZXNlIHRocmVlIG9wdGlvbnM/IEJ5IHBpbnBvaW50aW5nIHRob3NlLCBJIGNhbiBpZGVudGlmeSB0aGUga2V5IGFyZWFzIHRvIGZvY3VzIG9uIGFuZCB1bmRlcnN0YW5kIHRoZSBpbXBsaWNhdGlvbnMgb2YgZWFjaCBjb25maWd1cmF0aW9uLiBJdCdzIGFsbCBhYm91dCB0cmFjaW5nIHRoZSB2YXJpYXRpb25zIHdpdGhpbiB0aGUgbWFpbiBkcml2ZXIgYW5kIGZpZ3VyaW5nIG91dCB3aGF0IGNoYW5nZXMgdW5kZXIgZWFjaCBjb25kaXRpb25hbCBjb21waWxhdGlvbiBzZXR0aW5nLlxuXG5cbiIsIklucHV0VG9rZW5zIjoxMjk2MiwiT3V0cHV0VG9rZW5zIjoyNSwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjY2LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTE1VDE4OjAwOjQ2LjgzMjQ3NDE1M1oiLCJTZXEiOjgsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjozNTIxODkwOTMwLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcIl9fZnJlZV9kbWFfcnhfZGVzY19yZXNvdXJjZXNcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYz0yMTI5PXN0YXRpYyB2b2lkIHN0bW1hY19mcmVlX3R4X3NrYnVmcyhzdHJ1Y3Qgc3RtbWFjX3ByaXYgKnByaXYpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jLTIxMzgtLyoqXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYzoyMTM5OiAqIF9fZnJlZV9kbWFfcnhfZGVzY19yZXNvdXJjZXMgLSBmcmVlIFJYIGRtYSBkZXNjIHJlc291cmNlcyAocGVyIHF1ZXVlKVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmMtMjE0MC0gKiBAcHJpdjogcHJpdmF0ZSBzdHJ1Y3R1cmVcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmMtMjE0My0gKi9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jOjIxNDQ6c3RhdGljIHZvaWQgX19mcmVlX2RtYV9yeF9kZXNjX3Jlc291cmNlcyhzdHJ1Y3Qgc3RtbWFjX3ByaXYgKnByaXYsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYy0yMTQ1LVxcdFxcdFxcdFxcdFxcdCBzdHJ1Y3Qgc3RtbWFjX2RtYV9jb25mICpkbWFfY29uZixcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmM9MjE4ND1zdGF0aWMgdm9pZCBmcmVlX2RtYV9yeF9kZXNjX3Jlc291cmNlcyhzdHJ1Y3Qgc3RtbWFjX3ByaXYgKnByaXYsXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jLTIxOTEtXFx0Zm9yIChxdWV1ZSA9IDA7IHF1ZXVlIFxcdTAwM2MgcnhfY291bnQ7IHF1ZXVlKyspXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYzoyMTkyOlxcdFxcdF9fZnJlZV9kbWFfcnhfZGVzY19yZXNvdXJjZXMocHJpdiwgZG1hX2NvbmYsIHF1ZXVlKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jLTIxOTMtfVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYz03MDA2PXZvaWQgc3RtbWFjX2Rpc2FibGVfcnhfcXVldWUoc3RydWN0IHN0bW1hY19wcml2ICpwcml2LCB1MzIgcXVldWUpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jLTcwMTUtXFx0c3RtbWFjX3N0b3BfcnhfZG1hKHByaXYsIHF1ZXVlKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jOjcwMTY6XFx0X19mcmVlX2RtYV9yeF9kZXNjX3Jlc291cmNlcyhwcml2LCBcXHUwMDI2cHJpdi1cXHUwMDNlZG1hX2NvbmYsIHF1ZXVlKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jLTcwMTctfVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYz03MDE5PXZvaWQgc3RtbWFjX2VuYWJsZV9yeF9xdWV1ZShzdHJ1Y3Qgc3RtbWFjX3ByaXYgKnByaXYsIHUzMiBxdWV1ZSlcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmMtNzAzMy1cXHRpZiAocmV0KSB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYzo3MDM0OlxcdFxcdF9fZnJlZV9kbWFfcnhfZGVzY19yZXNvdXJjZXMocHJpdiwgXFx1MDAyNnByaXYtXFx1MDAzZWRtYV9jb25mLCBxdWV1ZSk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYy03MDM1LVxcdFxcdG5ldGRldl9lcnIocHJpdi1cXHUwMDNlZGV2LCBcXFwiRmFpbGVkIHRvIGluaXQgUlggZGVzYy5cXFxcblxcXCIpO1xcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0xNVQxODowMDo1MC4zNTQzNzYzMjJaIiwiU2VxIjo5LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo2NTExMjEyNTE2LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkFuYWx5emluZyBETUEgRGVzY3JpcHRvciBSZXNvdXJjZSBNYW5hZ2VtZW50KipcblxuT2theSwgc28gSSdtIGxvb2tpbmcgYXQgdGhlc2UgZnVuY3Rpb25zOiBgX19mcmVlX2RtYV9yeF9kZXNjX3Jlc291cmNlc2AgYW5kIGBfX2ZyZWVfZG1hX3R4X2Rlc2NfcmVzb3VyY2VzYCwgYW5kIGltbWVkaWF0ZWx5IEkgcmVjb2duaXplIHRoZWlyIGltcG9ydGFuY2UuIFRoZXkncmUgdGhlIGNvcmUgb2YgdGhlIGRlc2NyaXB0b3IgcmVzb3VyY2UgbWFuYWdlbWVudCwgYW5kIGl0IGxvb2tzIGxpa2UgdGhleSdyZSBjYWxsZWQgYnkgdGhlaXIgcmVzcGVjdGl2ZSB3cmFwcGVyIGZ1bmN0aW9ucywgYGZyZWVfZG1hX3J4X2Rlc2NfcmVzb3VyY2VzYCBhbmQgYGZyZWVfZG1hX3R4X2Rlc2NfcmVzb3VyY2VzYC4gVGhlc2Ugd3JhcHBlcnMgYXJlIHRoZW4gY2FsbGVkIGJ5IGBmcmVlX2RtYV9kZXNjX3Jlc291cmNlc2AsIHdoaWNoIGlzICpjcnVjaWFsbHkqIGNhbGxlZCBkdXJpbmcgbmV0ZGV2IGNsb3N1cmUgKGBzdG1tYWNfcmVsZWFzZWApIG9yIGRldmljZSByZW1vdmFsIChgc3RtbWFjX2R2cl9yZW1vdmVgKS4gVGhhdCBtYWtlcyBzZW5zZSDigJMgY2xlYW4gdXAgd2hlbiB5b3UncmUgZG9uZSB3aXRoIHRoZSBkZXZpY2UuXG5cbkJ1dCB0aGVuIHRoZXJlJ3MgYW4gaW50ZXJlc3Rpbmcgd3JpbmtsZTogYF9fZnJlZV9kbWFfcnhfZGVzY19yZXNvdXJjZXNgIGlzIGFsc28gY2FsbGVkIGJ5IGBzdG1tYWNfZGlzYWJsZV9yeF9xdWV1ZWAgYW5kIGBzdG1tYWNfZW5hYmxlX3J4X3F1ZXVlYC4gIFRoaXMgdGVsbHMgbWUgdGhlc2UgZnVuY3Rpb25zIGFyZSBsaWtlbHkgdG8gYmUgcmVhY2hhYmxlIGlmIHRoZSBkZXZpY2UgY2FuIGJlIHByb2JlZCBhbmQgaW5pdGlhbGl6ZWQuIElmIHRoaXMgaXMgYSBkcml2ZXIsIHRoZSBjcml0aWNhbCBwYXRoIHdvdWxkIGJlIHRoZXJlLlxuXG5TbywgdGhlIHVwc2hvdCBpcyB0aGlzIHBhdGNoIGlzIGZpeGluZyBhIGRvdWJsZSBmcmVlIG9yIHVzZS1hZnRlci1mcmVlIHNpdHVhdGlvbiwgYW5kIGl0IGRvZXMgc28gYnkgc2V0dGluZyB0aGUgZnJlZWQgcG9pbnRlcnMgdG8gYE5VTExgLiBTbWFydC4gTnVsbGlmeWluZyB0aG9zZSBwb2ludGVycyBpcyB0aGUgc3RhbmRhcmQgYXBwcm9hY2ggdG8gcHJldmVudCB0aG9zZSB2ZXJ5IGlzc3Vlcy5cblxuTm93LCBsZXQncyBuYWlsIGRvd24gd2hhdCBzeW1ib2xzIHdlIHNob3VsZCBmb2N1cyBvbiBmb3IgdGhpcyBkcml2ZXI6XG5gX19mcmVlX2RtYV9yeF9kZXNjX3Jlc291cmNlc2AsIGBfX2ZyZWVfZG1hX3R4X2Rlc2NfcmVzb3VyY2VzYCwgYGZyZWVfZG1hX3J4X2Rlc2NfcmVzb3VyY2VzYCwgYGZyZWVfZG1hX3R4X2Rlc2NfcmVzb3VyY2VzYCwgYHN0bW1hY19kaXNhYmxlX3J4X3F1ZXVlYCwgYHN0bW1hY19lbmFibGVfcnhfcXVldWVgLCBgc3RtbWFjX2Rpc2FibGVfdHhfcXVldWVgLCBgc3RtbWFjX2VuYWJsZV90eF9xdWV1ZWAsIGBzdG1tYWNfcmVsZWFzZWAsIGBzdG1tYWNfb3BlbmAuXG5cbkknbGwgc3RhcnQgYnkgY2hlY2tpbmcgdGhlIGNhbGxlcnMgb2YgYF9fZnJlZV9kbWFfdHhfZGVzY19yZXNvdXJjZXNgIHRvIHZlcmlmeSB0aGUgcGF0Y2ggc29sdmVzIHRoZSBpc3N1ZXMgdGhhdCB3ZXJlIHJhaXNlZC4gVGhpcyBpcyBkZWZpbml0ZWx5IGZ1bmN0aW9uYWwgYW5kIHdvcnRoIGZ1enppbmcuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjE0MDg5LCJPdXRwdXRUb2tlbnMiOjI1LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MzQ4LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTE1VDE4OjAwOjU2Ljg2NTU5MzA1OVoiLCJTZXEiOjEwLCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NTQyMjQ1NDgxMiwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJfX2ZyZWVfZG1hX3R4X2Rlc2NfcmVzb3VyY2VzXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmM9MjE4ND1zdGF0aWMgdm9pZCBmcmVlX2RtYV9yeF9kZXNjX3Jlc291cmNlcyhzdHJ1Y3Qgc3RtbWFjX3ByaXYgKnByaXYsXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jLTIxOTUtLyoqXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYzoyMTk2OiAqIF9fZnJlZV9kbWFfdHhfZGVzY19yZXNvdXJjZXMgLSBmcmVlIFRYIGRtYSBkZXNjIHJlc291cmNlcyAocGVyIHF1ZXVlKVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmMtMjE5Ny0gKiBAcHJpdjogcHJpdmF0ZSBzdHJ1Y3R1cmVcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmMtMjIwMC0gKi9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jOjIyMDE6c3RhdGljIHZvaWQgX19mcmVlX2RtYV90eF9kZXNjX3Jlc291cmNlcyhzdHJ1Y3Qgc3RtbWFjX3ByaXYgKnByaXYsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYy0yMjAyLVxcdFxcdFxcdFxcdFxcdCBzdHJ1Y3Qgc3RtbWFjX2RtYV9jb25mICpkbWFfY29uZixcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmM9MjIzMz1zdGF0aWMgdm9pZCBmcmVlX2RtYV90eF9kZXNjX3Jlc291cmNlcyhzdHJ1Y3Qgc3RtbWFjX3ByaXYgKnByaXYsXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jLTIyNDAtXFx0Zm9yIChxdWV1ZSA9IDA7IHF1ZXVlIFxcdTAwM2MgdHhfY291bnQ7IHF1ZXVlKyspXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYzoyMjQxOlxcdFxcdF9fZnJlZV9kbWFfdHhfZGVzY19yZXNvdXJjZXMocHJpdiwgZG1hX2NvbmYsIHF1ZXVlKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jLTIyNDItfVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYz03MDU2PXZvaWQgc3RtbWFjX2Rpc2FibGVfdHhfcXVldWUoc3RydWN0IHN0bW1hY19wcml2ICpwcml2LCB1MzIgcXVldWUpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jLTcwNjUtXFx0c3RtbWFjX3N0b3BfdHhfZG1hKHByaXYsIHF1ZXVlKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jOjcwNjY6XFx0X19mcmVlX2RtYV90eF9kZXNjX3Jlc291cmNlcyhwcml2LCBcXHUwMDI2cHJpdi1cXHUwMDNlZG1hX2NvbmYsIHF1ZXVlKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jLTcwNjctfVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYz03MDY5PXZvaWQgc3RtbWFjX2VuYWJsZV90eF9xdWV1ZShzdHJ1Y3Qgc3RtbWFjX3ByaXYgKnByaXYsIHUzMiBxdWV1ZSlcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmMtNzA4My1cXHRpZiAocmV0KSB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYzo3MDg0OlxcdFxcdF9fZnJlZV9kbWFfdHhfZGVzY19yZXNvdXJjZXMocHJpdiwgXFx1MDAyNnByaXYtXFx1MDAzZWRtYV9jb25mLCBxdWV1ZSk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYy03MDg1LVxcdFxcdG5ldGRldl9lcnIocHJpdi1cXHUwMDNlZGV2LCBcXFwiRmFpbGVkIHRvIGluaXQgVFggZGVzYy5cXFxcblxcXCIpO1xcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0xNVQxODowMTowMi4yODgwNTUyODFaIiwiU2VxIjoxMSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6MTQxODIzMTkxMjAsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqTXkgQW5hbHlzaXMgb2YgU1RNTUFDIERyaXZlciBGdXp6aW5nIFRhcmdldHMgYW5kIENvbmZpZ3VyYXRpb25zKipcblxuT2theSwgbGV0J3MgYnJlYWsgdGhpcyBkb3duLiBNeSBnb2FsIGlzIHRvIGRldGVybWluZSB0aGUgb3B0aW1hbCBjb25maWd1cmF0aW9uIGZvciBmdXp6aW5nIHRoZSBTVE1NQUMgZHJpdmVyLiBJIG5lZWQgdG8gaWRlbnRpZnkgdGhlIGtleSBmdW5jdGlvbnMgdGhhdCB3YXJyYW50IGF0dGVudGlvbiBhbmQgdGhlIG5lY2Vzc2FyeSBidWlsZC10aW1lIGNvbmZpZ3VyYXRpb25zIHRvIGV4cG9zZSB0aGVtLlxuXG5GaXJzdGx5LCBJJ20gZm9jdXNpbmcgb24gdGhlc2Ugc3ltYm9sczogYF9fZnJlZV9kbWFfcnhfZGVzY19yZXNvdXJjZXNgLCBgX19mcmVlX2RtYV90eF9kZXNjX3Jlc291cmNlc2AsIGBzdG1tYWNfZGlzYWJsZV9yeF9xdWV1ZWAsIGBzdG1tYWNfZW5hYmxlX3J4X3F1ZXVlYCwgYHN0bW1hY19kaXNhYmxlX3R4X3F1ZXVlYCwgYW5kIGBzdG1tYWNfZW5hYmxlX3R4X3F1ZXVlYC4gVGhlc2UgYXBwZWFyIHRvIGJlIGNvcmUgcmVzb3VyY2UgbWFuYWdlbWVudCBhbmQgcXVldWUgY29udHJvbCBmdW5jdGlvbnMgd2l0aGluIHRoZSBkcml2ZXIsIG1ha2luZyB0aGVtIHByaW1lIHRhcmdldHMgZm9yIGZ1enppbmcuXG5cbk5vdywgb24gdG8gdGhlIGNvbmZpZ3MuIEkgaW5pdGlhbGx5IHRob3VnaHQgSSBuZWVkZWQgYWxsIHRocmVlOiBgU1RNTUFDX0VUSGAsIGBTVE1NQUNfUENJYCwgYW5kIGBTVE1NQUNfUExBVEZPUk1gLiBIb3dldmVyLCBjb25zaWRlcmluZyB0aGUgcG90ZW50aWFsIGZ1enppbmcgZW52aXJvbm1lbnQsIGVzcGVjaWFsbHkgaWYgbGV2ZXJhZ2luZyBRRU1VIG9yIHN5emthbGxlcidzIFBDSSBmdXp6ZXIsIGBTVE1NQUNfUENJYCBzZWVtcyB0aGUgbW9zdCBjcml0aWNhbC4gYFNUTU1BQ19QTEFURk9STWAgbWlnaHQgYmUgcmVsZXZhbnQsIGJ1dCBQQ0kgaXMgbGlrZWx5IHRoZSBtYWluIG1ldGhvZCBmb3IgcmVhY2hpbmcgdGhlc2UgZnVuY3Rpb25zIHRocm91Z2ggZnV6emluZy4gVG8gYmUgc2FmZSwgSSdsbCBpbmNsdWRlIGFsbCB0aHJlZTogYFNUTU1BQ19FVEhgLCBgU1RNTUFDX1BDSWAsIGFuZCBgU1RNTUFDX1BMQVRGT1JNYCwgZm9yIG5vdy5cblxuTGV0IG1lIGRvdWJsZS1jaGVjayBmb3Igb3RoZXIgcmVsZXZhbnQgY29uZmlncywgYXMgSSBzZWUgdGhhdCB0aGVyZSBhcmUgYWxzbyBzZXZlcmFsIFBDSSB2YXJpYW50cyBsaWtlIGBEV01BQ19JTlRFTGAsIGBEV01BQ19MT09OR1NPTmAsIGFuZCBgRFdNQUNfTU9UT1JDT01NYC4gQnV0IHdhaXQsIEkgcmVjYWxsIHRoYXQgYFNUTU1BQ19QQ0lgIHNob3VsZCBiZSBzdWZmaWNpZW50IHRvIGJ1aWxkIGBzdG1tYWNfcGNpLm9gLiBJJ20gZ29pbmcgdG8gY29uZmlybSB0aGF0IGJ5IGNoZWNraW5nIGBkcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9NYWtlZmlsZWAuIEknbGwgdmVyaWZ5IHRoYXQgYFNUTU1BQ19QQ0lgIGluZGVlZCBlbmFibGVzIHRoZSBjb21waWxhdGlvbiBvZiB0aGUgUENJLXNwZWNpZmljIHBhcnRzIG9mIHRoZSBkcml2ZXIuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjE1Nzg1LCJPdXRwdXRUb2tlbnMiOjE5LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MjU4LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTE1VDE4OjAxOjE2LjQ3MDM3NjkyWiIsIlNlcSI6MTIsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo0Njg1NTM2NDc3LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcIlNUTU1BQ19QQ0lcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiRG9jdW1lbnRhdGlvbi9uZXR3b3JraW5nL2RldmljZV9kcml2ZXJzL2V0aGVybmV0L3N0bWljcm8vc3RtbWFjLnJzdD05OD1UaGUga2VybmVsIGNvbmZpZ3VyYXRpb24gb3B0aW9uIGlzIGBgQ09ORklHX1NUTU1BQ19FVEhgYDpcXG5Eb2N1bWVudGF0aW9uL25ldHdvcmtpbmcvZGV2aWNlX2RyaXZlcnMvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMucnN0LTk5LSAtIGBgQ09ORklHX1NUTU1BQ19QTEFURk9STWBgOiBpcyB0byBlbmFibGUgdGhlIHBsYXRmb3JtIGRyaXZlci5cXG5Eb2N1bWVudGF0aW9uL25ldHdvcmtpbmcvZGV2aWNlX2RyaXZlcnMvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMucnN0OjEwMDogLSBgYENPTkZJR19TVE1NQUNfUENJYGA6IGlzIHRvIGVuYWJsZSB0aGUgcGNpIGRyaXZlci5cXG5Eb2N1bWVudGF0aW9uL25ldHdvcmtpbmcvZGV2aWNlX2RyaXZlcnMvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMucnN0LTEwMS1cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc9Mzk4PWNvbmZpZyBEV01BQ19NT1RPUkNPTU1cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctNDA2LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc6NDA3OmNvbmZpZyBTVE1NQUNfUENJXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy00MDgtXFx0dHJpc3RhdGUgXFxcIlNUTU1BQyBQQ0kgYnVzIHN1cHBvcnRcXFwiXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9NYWtlZmlsZT00OT1vYmotJChDT05GSUdfU1RNTUFDX0xJQlBDSSlcXHQrPSBzdG1tYWNfbGlicGNpLm9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9NYWtlZmlsZTo1MDpvYmotJChDT05GSUdfU1RNTUFDX1BDSSlcXHQrPSBzdG1tYWMtcGNpLm9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9NYWtlZmlsZS01MS1vYmotJChDT05GSUdfRFdNQUNfSU5URUwpXFx0Kz0gZHdtYWMtaW50ZWwub1xcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0xNVQxODowMToyMS4xNTU5MTg3NzhaIiwiU2VxIjoxMywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6MzQzODg2OTM4NywiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiT2theSwgaGVyZSdzIG15IGludGVycHJldGF0aW9uIG9mIHRob3NlIHRob3VnaHRzLCBzdW1tYXJpemVkIGluIHRoZSBmaXJzdCBwZXJzb24sIGFzc3VtaW5nIHRoZSBhdWRpZW5jZSBpcyBhbm90aGVyIGV4cGVydDpcblxuKipVbmRlcnN0YW5kaW5nIHRoZSBTVE1NQUMgRHJpdmVyIEJ1aWxkIFByb2Nlc3MqKlxuXG5SaWdodCwgc28gSSdtIHNlZWluZyB0aGF0IHdoZW4gYFNUTU1BQ19QQ0lgIGlzIGVuYWJsZWQsIHRoZSBidWlsZCBzeXN0ZW0gcHJvZHVjZXMgYHN0bW1hYy1wY2kub2AuIEFuZCwgYXMgSSB3b3VsZCBleHBlY3QsIHRoYXQgb2JqZWN0IGZpbGUgaXMgYSBkaXJlY3QgcmVzdWx0IG9mIGNvbXBpbGluZyB0aGUgc291cmNlIGNvZGUgaW4gYHN0bW1hY19wY2kuY2AuIFRoZSByZWxhdGlvbnNoaXAgaXMgZXhhY3RseSB3aGF0IHRoZSBuYW1pbmcgc3VnZ2VzdHMsIHdoaWNoIGlzIGdvb2QuIFdlIGFyZSBjbGVhcmx5IGtlZXBpbmcgdGhpbmdzIG9yZ2FuaXplZC5cblxuQWxzbywgdGhlIGNvcmUgb2YgdGhlIGRyaXZlciBmdW5jdGlvbmFsaXR5LCB0aGUgZm91bmRhdGlvbiB0aGF0IGV2ZXJ5dGhpbmcgZGVwZW5kcyBvbiwgaXMgYnVpbHQgaW5kZXBlbmRlbnRseSB0aHJvdWdoIHRoZSBgU1RNTUFDX0VUSGAgY29uZmlndXJhdGlvbiBvcHRpb24uIE1ha2VzIHNlbnNlOyB0aGlzIGtlZXBzIHRoZSBQQ0ktc3BlY2lmaWMgcGFydHMgaXNvbGF0ZWQgd2hpbGUgYWxsb3dpbmcgdGhlIGNvbW1vbiBFdGhlcm5ldCBNQUMgbG9naWMgdG8gYmUgcmV1c2VkLlxuXG5cbiIsIklucHV0VG9rZW5zIjoxNjkwNSwiT3V0cHV0VG9rZW5zIjoxOSwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjQ1LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTE1VDE4OjAxOjI0LjU5NDc5MTIyNFoiLCJTZXEiOjE0LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NDE5ODM0NDY5MCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJTVE1NQUNfRVRIXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcIkRvY3VtZW50YXRpb24vbmV0d29ya2luZy9kZXZpY2VfZHJpdmVycy9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy5yc3Q9OTU9S2VybmVsIENvbmZpZ3VyYXRpb25cXG4tLVxcbkRvY3VtZW50YXRpb24vbmV0d29ya2luZy9kZXZpY2VfZHJpdmVycy9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy5yc3QtOTctXFxuRG9jdW1lbnRhdGlvbi9uZXR3b3JraW5nL2RldmljZV9kcml2ZXJzL2V0aGVybmV0L3N0bWljcm8vc3RtbWFjLnJzdDo5ODpUaGUga2VybmVsIGNvbmZpZ3VyYXRpb24gb3B0aW9uIGlzIGBgQ09ORklHX1NUTU1BQ19FVEhgYDpcXG5Eb2N1bWVudGF0aW9uL25ldHdvcmtpbmcvZGV2aWNlX2RyaXZlcnMvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMucnN0LTk5LSAtIGBgQ09ORklHX1NUTU1BQ19QTEFURk9STWBgOiBpcyB0byBlbmFibGUgdGhlIHBsYXRmb3JtIGRyaXZlci5cXG4tLVxcbmFyY2gvYXJjL2NvbmZpZ3MvYXhzMTAxX2RlZmNvbmZpZz00ND1DT05GSUdfTkVUREVWSUNFUz15XFxuLS1cXG5hcmNoL2FyYy9jb25maWdzL2F4czEwMV9kZWZjb25maWctNTEtIyBDT05GSUdfTkVUX1ZFTkRPUl9TRUVRIGlzIG5vdCBzZXRcXG5hcmNoL2FyYy9jb25maWdzL2F4czEwMV9kZWZjb25maWc6NTI6Q09ORklHX1NUTU1BQ19FVEg9eVxcbmFyY2gvYXJjL2NvbmZpZ3MvYXhzMTAxX2RlZmNvbmZpZy01My0jIENPTkZJR19ORVRfVkVORE9SX1ZJQSBpcyBub3Qgc2V0XFxuLS1cXG5hcmNoL2FyYy9jb25maWdzL2F4czEwM19kZWZjb25maWc9NDQ9Q09ORklHX05FVERFVklDRVM9eVxcbi0tXFxuYXJjaC9hcmMvY29uZmlncy9heHMxMDNfZGVmY29uZmlnLTUxLSMgQ09ORklHX05FVF9WRU5ET1JfU0VFUSBpcyBub3Qgc2V0XFxuYXJjaC9hcmMvY29uZmlncy9heHMxMDNfZGVmY29uZmlnOjUyOkNPTkZJR19TVE1NQUNfRVRIPXlcXG5hcmNoL2FyYy9jb25maWdzL2F4czEwM19kZWZjb25maWctNTMtIyBDT05GSUdfTkVUX1ZFTkRPUl9WSUEgaXMgbm90IHNldFxcbi0tXFxuYXJjaC9hcmMvY29uZmlncy9heHMxMDNfc21wX2RlZmNvbmZpZz00ND1DT05GSUdfTkVUREVWSUNFUz15XFxuLS1cXG5hcmNoL2FyYy9jb25maWdzL2F4czEwM19zbXBfZGVmY29uZmlnLTUxLSMgQ09ORklHX05FVF9WRU5ET1JfU0VFUSBpcyBub3Qgc2V0XFxuYXJjaC9hcmMvY29uZmlncy9heHMxMDNfc21wX2RlZmNvbmZpZzo1MjpDT05GSUdfU1RNTUFDX0VUSD15XFxuYXJjaC9hcmMvY29uZmlncy9heHMxMDNfc21wX2RlZmNvbmZpZy01My0jIENPTkZJR19ORVRfVkVORE9SX1ZJQSBpcyBub3Qgc2V0XFxuLS1cXG5hcmNoL2FyYy9jb25maWdzL2hzZGtfZGVmY29uZmlnPTM3PUNPTkZJR19ORVRERVZJQ0VTPXlcXG5hcmNoL2FyYy9jb25maWdzL2hzZGtfZGVmY29uZmlnOjM4OkNPTkZJR19TVE1NQUNfRVRIPXlcXG5hcmNoL2FyYy9jb25maWdzL2hzZGtfZGVmY29uZmlnLTM5LUNPTkZJR19NSUNSRUxfUEhZPXlcXG4tLVxcbmFyY2gvYXJjL2NvbmZpZ3MvdGIxMHhfZGVmY29uZmlnPTQxPUNPTkZJR19ORVRERVZJQ0VTPXlcXG4tLVxcbmFyY2gvYXJjL2NvbmZpZ3MvdGIxMHhfZGVmY29uZmlnLTQ3LSMgQ09ORklHX05FVF9WRU5ET1JfU0VFUSBpcyBub3Qgc2V0XFxuYXJjaC9hcmMvY29uZmlncy90YjEweF9kZWZjb25maWc6NDg6Q09ORklHX1NUTU1BQ19FVEg9eVxcbmFyY2gvYXJjL2NvbmZpZ3MvdGIxMHhfZGVmY29uZmlnLTQ5LSMgQ09ORklHX05FVF9WRU5ET1JfV0laTkVUIGlzIG5vdCBzZXRcXG4tLVxcbmFyY2gvYXJjL2NvbmZpZ3MvdmRrX2hzMzhfZGVmY29uZmlnPTM5PUNPTkZJR19ORVRERVZJQ0VTPXlcXG4tLVxcbmFyY2gvYXJjL2NvbmZpZ3MvdmRrX2hzMzhfZGVmY29uZmlnLTQ2LSMgQ09ORklHX05FVF9WRU5ET1JfU0VFUSBpcyBub3Qgc2V0XFxuYXJjaC9hcmMvY29uZmlncy92ZGtfaHMzOF9kZWZjb25maWc6NDc6Q09ORklHX1NUTU1BQ19FVEg9eVxcbmFyY2gvYXJjL2NvbmZpZ3MvdmRrX2hzMzhfZGVmY29uZmlnLTQ4LSMgQ09ORklHX05FVF9WRU5ET1JfVklBIGlzIG5vdCBzZXRcXG4tLVxcbmFyY2gvYXJjL2NvbmZpZ3MvdmRrX2hzMzhfc21wX2RlZmNvbmZpZz00MT1DT05GSUdfTkVUREVWSUNFUz15XFxuLS1cXG5hcmNoL2FyYy9jb25maWdzL3Zka19oczM4X3NtcF9kZWZjb25maWctNDgtIyBDT05GSUdfTkVUX1ZFTkRPUl9TRUVRIGlzIG5vdCBzZXRcXG5hcmNoL2FyYy9jb25maWdzL3Zka19oczM4X3NtcF9kZWZjb25maWc6NDk6Q09ORklHX1NUTU1BQ19FVEg9eVxcbmFyY2gvYXJjL2NvbmZpZ3MvdmRrX2hzMzhfc21wX2RlZmNvbmZpZy01MC0jIENPTkZJR19ORVRfVkVORE9SX1ZJQSBpcyBub3Qgc2V0XFxuLS1cXG5hcmNoL2FybS9jb25maWdzL2xwYzE4eHhfZGVmY29uZmlnPTYxPUNPTkZJR19ORVRERVZJQ0VTPXlcXG4tLVxcbmFyY2gvYXJtL2NvbmZpZ3MvbHBjMTh4eF9kZWZjb25maWctNzYtIyBDT05GSUdfTkVUX1ZFTkRPUl9TTVNDIGlzIG5vdCBzZXRcXG5hcmNoL2FybS9jb25maWdzL2xwYzE4eHhfZGVmY29uZmlnOjc3OkNPTkZJR19TVE1NQUNfRVRIPXlcXG5hcmNoL2FybS9jb25maWdzL2xwYzE4eHhfZGVmY29uZmlnLTc4LSMgQ09ORklHX05FVF9WRU5ET1JfVklBIGlzIG5vdCBzZXRcXG4tLVxcbmFyY2gvYXJtL2NvbmZpZ3MvbXVsdGlfdjdfZGVmY29uZmlnPTI3NT1DT05GSUdfU05JX0FWRT15XFxuYXJjaC9hcm0vY29uZmlncy9tdWx0aV92N19kZWZjb25maWc6Mjc2OkNPTkZJR19TVE1NQUNfRVRIPXlcXG5hcmNoL2FybS9jb25maWdzL211bHRpX3Y3X2RlZmNvbmZpZy0yNzctQ09ORklHX0RXTUFDX0RXQ19RT1NfRVRIPXlcXG4tLVxcbmFyY2gvYXJtL2NvbmZpZ3MvcHhhX2RlZmNvbmZpZz0xODI9Q09ORklHX1NNU0M5MTFYPW1cXG5hcmNoL2FybS9jb25maWdzL3B4YV9kZWZjb25maWc6MTgzOkNPTkZJR19TVE1NQUNfRVRIPW1cXG5hcmNoL2FybS9jb25maWdzL3B4YV9kZWZjb25maWctMTg0LUNPTkZJR19QSFlMSUI9eVxcbi0tXFxuYXJjaC9hcm0vY29uZmlncy9zaG1vYmlsZV9kZWZjb25maWc9NTk9Q09ORklHX1NNU0M5MTFYPXlcXG5hcmNoL2FybS9jb25maWdzL3NobW9iaWxlX2RlZmNvbmZpZzo2MDpDT05GSUdfU1RNTUFDX0VUSD15XFxuYXJjaC9hcm0vY29uZmlncy9zaG1vYmlsZV9kZWZjb25maWctNjEtIyBDT05GSUdfRFdNQUNfUkVORVNBU19HQkVUSCBpcyBub3Qgc2V0XFxuLS1cXG5hcmNoL2FybS9jb25maWdzL3NvY2ZwZ2FfZGVmY29uZmlnPTY2PUNPTkZJR19JWEdCRT1tXFxuYXJjaC9hcm0vY29uZmlncy9zb2NmcGdhX2RlZmNvbmZpZzo2NzpDT05GSUdfU1RNTUFDX0VUSD15XFxuYXJjaC9hcm0vY29uZmlncy9zb2NmcGdhX2RlZmNvbmZpZy02OC1DT05GSUdfTUFSVkVMTF9QSFk9eVxcbi0tXFxuYXJjaC9hcm0vY29uZmlncy9zcGVhcjEzeHhfZGVmY29uZmlnPTQzPUNPTkZJR19ORVRERVZJQ0VTPXlcXG4tLVxcbmFyY2gvYXJtL2NvbmZpZ3Mvc3BlYXIxM3h4X2RlZmNvbmZpZy01MS0jIENPTkZJR19ORVRfVkVORE9SX1NNU0MgaXMgbm90IHNldFxcbmFyY2gvYXJtL2NvbmZpZ3Mvc3BlYXIxM3h4X2RlZmNvbmZpZzo1MjpDT05GSUdfU1RNTUFDX0VUSD15XFxuYXJjaC9hcm0vY29uZmlncy9zcGVhcjEzeHhfZGVmY29uZmlnLTUzLSMgQ09ORklHX1dMQU4gaXMgbm90IHNldFxcbi0tXFxuYXJjaC9hcm0vY29uZmlncy9zcGVhcjN4eF9kZWZjb25maWc9MjM9Q09ORklHX05FVERFVklDRVM9eVxcbi0tXFxuYXJjaC9hcm0vY29uZmlncy9zcGVhcjN4eF9kZWZjb25maWctMzEtIyBDT05GSUdfTkVUX1ZFTkRPUl9TTVNDIGlzIG5vdCBzZXRcXG5hcmNoL2FybS9jb25maWdzL3NwZWFyM3h4X2RlZmNvbmZpZzozMjpDT05GSUdfU1RNTUFDX0VUSD15XFxuYXJjaC9hcm0vY29uZmlncy9zcGVhcjN4eF9kZWZjb25maWctMzMtIyBDT05GSUdfV0xBTiBpcyBub3Qgc2V0XFxuLS1cXG5hcmNoL2FybS9jb25maWdzL3NwZWFyNnh4X2RlZmNvbmZpZz0xOT1DT05GSUdfTkVUREVWSUNFUz15XFxuLS1cXG5hcmNoL2FybS9jb25maWdzL3NwZWFyNnh4X2RlZmNvbmZpZy0yNy0jIENPTkZJR19ORVRfVkVORE9SX1NNU0MgaXMgbm90IHNldFxcbmFyY2gvYXJtL2NvbmZpZ3Mvc3BlYXI2eHhfZGVmY29uZmlnOjI4OkNPTkZJR19TVE1NQUNfRVRIPXlcXG5hcmNoL2FybS9jb25maWdzL3NwZWFyNnh4X2RlZmNvbmZpZy0yOS0jIENPTkZJR19XTEFOIGlzIG5vdCBzZXRcXG4tLVxcbmFyY2gvYXJtL2NvbmZpZ3Mvc3VueGlfZGVmY29uZmlnPTM2PUNPTkZJR19TVU40SV9FTUFDPXlcXG4tLVxcbmFyY2gvYXJtL2NvbmZpZ3Mvc3VueGlfZGVmY29uZmlnLTQ4LSMgQ09ORklHX05FVF9WRU5ET1JfU01TQyBpcyBub3Qgc2V0XFxuYXJjaC9hcm0vY29uZmlncy9zdW54aV9kZWZjb25maWc6NDk6Q09ORklHX1NUTU1BQ19FVEg9eVxcbmFyY2gvYXJtL2NvbmZpZ3Mvc3VueGlfZGVmY29uZmlnLTUwLSMgQ09ORklHX05FVF9WRU5ET1JfVklBIGlzIG5vdCBzZXRcXG4tLVxcbmFyY2gvYXJtNjQvY29uZmlncy9kZWZjb25maWc9NDQ1PUNPTkZJR19TTklfTkVUU0VDPW1cXG5hcmNoL2FybTY0L2NvbmZpZ3MvZGVmY29uZmlnOjQ0NjpDT05GSUdfU1RNTUFDX0VUSD1tXFxuYXJjaC9hcm02NC9jb25maWdzL2RlZmNvbmZpZy00NDctQ09ORklHX0RXTUFDX01FRElBVEVLPW1cXG4tLVxcbmFyY2gvbG9vbmdhcmNoL2NvbmZpZ3MvbG9vbmdzb24zMl9kZWZjb25maWc9NjExPUNPTkZJR19SODE2OT15XFxuLS1cXG5hcmNoL2xvb25nYXJjaC9jb25maWdzL2xvb25nc29uMzJfZGVmY29uZmlnLTYxOS0jIENPTkZJR19ORVRfVkVORE9SX1NNU0MgaXMgbm90IHNldFxcbmFyY2gvbG9vbmdhcmNoL2NvbmZpZ3MvbG9vbmdzb24zMl9kZWZjb25maWc6NjIwOkNPTkZJR19TVE1NQUNfRVRIPXlcXG5hcmNoL2xvb25nYXJjaC9jb25maWdzL2xvb25nc29uMzJfZGVmY29uZmlnLTYyMS0jIENPTkZJR19ORVRfVkVORE9SX1NVTiBpcyBub3Qgc2V0XFxuLS1cXG5hcmNoL2xvb25nYXJjaC9jb25maWdzL2xvb25nc29uNjRfZGVmY29uZmlnPTYyNz1DT05GSUdfUjgxNjk9eVxcbi0tXFxuYXJjaC9sb29uZ2FyY2gvY29uZmlncy9sb29uZ3NvbjY0X2RlZmNvbmZpZy02MzUtIyBDT05GSUdfTkVUX1ZFTkRPUl9TTVNDIGlzIG5vdCBzZXRcXG5hcmNoL2xvb25nYXJjaC9jb25maWdzL2xvb25nc29uNjRfZGVmY29uZmlnOjYzNjpDT05GSUdfU1RNTUFDX0VUSD15XFxuYXJjaC9sb29uZ2FyY2gvY29uZmlncy9sb29uZ3NvbjY0X2RlZmNvbmZpZy02MzctIyBDT05GSUdfTkVUX1ZFTkRPUl9TVU4gaXMgbm90IHNldFxcbi0tXFxuYXJjaC9taXBzL2NvbmZpZ3MvY3UxMDAwLW5lb19kZWZjb25maWc9NDI9Q09ORklHX05FVERFVklDRVM9eVxcbmFyY2gvbWlwcy9jb25maWdzL2N1MTAwMC1uZW9fZGVmY29uZmlnOjQzOkNPTkZJR19TVE1NQUNfRVRIPXlcXG5hcmNoL21pcHMvY29uZmlncy9jdTEwMDAtbmVvX2RlZmNvbmZpZy00NC1DT05GSUdfU01TQ19QSFk9eVxcbi0tXFxuYXJjaC9taXBzL2NvbmZpZ3MvY3UxODMwLW5lb19kZWZjb25maWc9NDU9Q09ORklHX05FVERFVklDRVM9eVxcbmFyY2gvbWlwcy9jb25maWdzL2N1MTgzMC1uZW9fZGVmY29uZmlnOjQ2OkNPTkZJR19TVE1NQUNfRVRIPXlcXG5hcmNoL21pcHMvY29uZmlncy9jdTE4MzAtbmVvX2RlZmNvbmZpZy00Ny1DT05GSUdfSUNQTFVTX1BIWT15XFxuLS1cXG5hcmNoL21pcHMvY29uZmlncy9nZW5lcmljL2JvYXJkLW1hcmR1ay5jb25maWc9MjU9Q09ORklHX05FVERFVklDRVM9eVxcbmFyY2gvbWlwcy9jb25maWdzL2dlbmVyaWMvYm9hcmQtbWFyZHVrLmNvbmZpZzoyNjpDT05GSUdfU1RNTUFDX0VUSD15XFxuYXJjaC9taXBzL2NvbmZpZ3MvZ2VuZXJpYy9ib2FyZC1tYXJkdWsuY29uZmlnLTI3LUNPTkZJR19TVE1NQUNfUExBVEZPUk09eVxcbi0tXFxuYXJjaC9taXBzL2NvbmZpZ3MvZ2VuZXJpYy9ib2FyZC1uaTE2OTQ0NS5jb25maWc9MjY9Q09ORklHX05FVERFVklDRVM9eVxcbmFyY2gvbWlwcy9jb25maWdzL2dlbmVyaWMvYm9hcmQtbmkxNjk0NDUuY29uZmlnOjI3OkNPTkZJR19TVE1NQUNfRVRIPXlcXG5hcmNoL21pcHMvY29uZmlncy9nZW5lcmljL2JvYXJkLW5pMTY5NDQ1LmNvbmZpZy0yOC1DT05GSUdfU1RNTUFDX1BMQVRGT1JNPXlcXG4tLVxcbmFyY2gvbWlwcy9jb25maWdzL2xvb25nc29uMV9kZWZjb25maWc9NTE9Q09ORklHX05FVERFVklDRVM9eVxcbi0tXFxuYXJjaC9taXBzL2NvbmZpZ3MvbG9vbmdzb24xX2RlZmNvbmZpZy04OC0jIENPTkZJR19ORVRfVkVORE9SX1NPQ0lPTkVYVCBpcyBub3Qgc2V0XFxuYXJjaC9taXBzL2NvbmZpZ3MvbG9vbmdzb24xX2RlZmNvbmZpZzo4OTpDT05GSUdfU1RNTUFDX0VUSD15XFxuYXJjaC9taXBzL2NvbmZpZ3MvbG9vbmdzb24xX2RlZmNvbmZpZy05MC0jIENPTkZJR19EV01BQ19HRU5FUklDIGlzIG5vdCBzZXRcXG4tLVxcbmFyY2gvbWlwcy9jb25maWdzL2xvb25nc29uMmtfZGVmY29uZmlnPTE3NT1DT05GSUdfUjgxNjk9eVxcbi0tXFxuYXJjaC9taXBzL2NvbmZpZ3MvbG9vbmdzb24ya19kZWZjb25maWctMTgzLSMgQ09ORklHX05FVF9WRU5ET1JfU01TQyBpcyBub3Qgc2V0XFxuYXJjaC9taXBzL2NvbmZpZ3MvbG9vbmdzb24ya19kZWZjb25maWc6MTg0OkNPTkZJR19TVE1NQUNfRVRIPXlcXG5hcmNoL21pcHMvY29uZmlncy9sb29uZ3NvbjJrX2RlZmNvbmZpZy0xODUtIyBDT05GSUdfTkVUX1ZFTkRPUl9TVU4gaXMgbm90IHNldFxcbi0tXFxuYXJjaC9yaXNjdi9jb25maWdzL2RlZmNvbmZpZz0xMzk9Q09ORklHX1I4MTY5PXlcXG5hcmNoL3Jpc2N2L2NvbmZpZ3MvZGVmY29uZmlnOjE0MDpDT05GSUdfU1RNTUFDX0VUSD1tXFxuYXJjaC9yaXNjdi9jb25maWdzL2RlZmNvbmZpZy0xNDEtQ09ORklHX0RXTUFDX1RIRUFEPW1cXG4tLVxcbmRyaXZlcnMvZ3Bpby9ncGlvbGliLW9mLmM9MzQzPXN0YXRpYyB2b2lkIG9mX2dwaW9fZmxhZ3NfcXVpcmtzKGNvbnN0IHN0cnVjdCBkZXZpY2Vfbm9kZSAqbnAsXFxuLS1cXG5kcml2ZXJzL2dwaW8vZ3Bpb2xpYi1vZi5jLTM5OC1cXHQvKiBMZWdhY3kgaGFuZGxpbmcgb2Ygc3RtbWFjJ3MgYWN0aXZlLWxvdyBQSFkgcmVzZXQgbGluZSAqL1xcbmRyaXZlcnMvZ3Bpby9ncGlvbGliLW9mLmM6Mzk5OlxcdGlmIChJU19FTkFCTEVEKENPTkZJR19TVE1NQUNfRVRIKSBcXHUwMDI2XFx1MDAyNlxcbmRyaXZlcnMvZ3Bpby9ncGlvbGliLW9mLmMtNDAwLVxcdCAgICAhc3RyY21wKHByb3BuYW1lLCBcXFwic25wcyxyZXNldC1ncGlvXFxcIikgXFx1MDAyNlxcdTAwMjZcXG4tLVxcbmRyaXZlcnMvZ3B1L2RybS9jaS9hcm02NC5jb25maWc9MzY9Q09ORklHX0RXTUFDX1JPQ0tDSElQPXlcXG5kcml2ZXJzL2dwdS9kcm0vY2kvYXJtNjQuY29uZmlnOjM3OkNPTkZJR19TVE1NQUNfRVRIPXlcXG5kcml2ZXJzL2dwdS9kcm0vY2kvYXJtNjQuY29uZmlnLTM4LUNPTkZJR19UWVBFQ19GVVNCMzAyPXlcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vTWFrZWZpbGUtNS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL01ha2VmaWxlOjY6b2JqLSQoQ09ORklHX1NUTU1BQ19FVEgpICs9IHN0bW1hYy9cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctMS0jIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wLW9ubHlcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnOjI6Y29uZmlnIFNUTU1BQ19FVEhcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTMtXFx0dHJpc3RhdGUgXFxcIlNUTWljcm9lbGVjdHJvbmljcyBNdWx0aS1HaWdhYml0IEV0aGVybmV0IGRyaXZlclxcXCJcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctMTctXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZzoxODppZiBTVE1NQUNfRVRIXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy0xOS1cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc9NDA3PWNvbmZpZyBTVE1NQUNfUENJXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTQxOS1cXHQgIElmIHVuc3VyZSwgc2F5IE4uXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZzo0MjA6ZW5kaWYgIyBTVE1NQUNfRVRIXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9NYWtlZmlsZS0xLSMgU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjBcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9NYWtlZmlsZToyOm9iai0kKENPTkZJR19TVE1NQUNfRVRIKSArPSBzdG1tYWMub1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL01ha2VmaWxlLTMtc3RtbWFjLW9ianM6PSBzdG1tYWNfbWFpbi5vIHN0bW1hY19ldGh0b29sLm8gc3RtbWFjX21kaW8ubyByaW5nX21vZGUub1xcdFxcXFxcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMTVUMTg6MDE6MjguNzkzMTQyMjM0WiIsIlNlcSI6MTUsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjM2NTY1MDY2MjgsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6Ik9rYXksIGhlcmUncyBteSB0YWtlIG9uIHRob3NlIGRldmljZSBkcml2ZXJzLlxuXG4qKkluaXRpYWwgQXNzZXNzbWVudCBhbmQgYSBRdWljayBQaXZvdCoqXG5cbkFscmlnaHQsIGxvb2tpbmcgYXQgdGhlIGRyaXZlciBsYW5kc2NhcGUsIGBTVE1NQUNfRVRIYCwgYFNUTU1BQ19QQ0lgLCBhbmQgYFNUTU1BQ19QTEFURk9STWAgaW1tZWRpYXRlbHkgY29tZSB0byBtaW5kLiBUaGV5IHNlZW0gbGlrZSBzb2xpZCBvcHRpb25zIGZvciBzdGFuZGFyZCBFdGhlcm5ldCBNQUMgY29udHJvbC4gTXkgaW5pdGlhbCBhc3Nlc3NtZW50IGlzIHBvc2l0aXZlIHJlZ2FyZGluZyB0aGVzZSBkcml2ZXJzLlxuXG5CdXQsIGEgbmFnZ2luZyBxdWVzdGlvbiBzdXJmYWNlczogd2hhdCBhYm91dCBgRFdNQUNfR0VORVJJQ2A/IEl0J3MgYmVlbiBhIHdoaWxlIHNpbmNlIEkgc2VyaW91c2x5IGNvbnNpZGVyZWQgdGhhdCBvbmUuIEknbGwgbmVlZCB0byBkcmlsbCBkb3duIGludG8gaXQuIEJldHRlciBjaGVjayB0aGF0IG9uZSBvdXQuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjIwNjY4LCJPdXRwdXRUb2tlbnMiOjIwLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6NTQsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDctMTVUMTg6MDE6MzIuNDQ5NjUxODQyWiIsIlNlcSI6MTYsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo0NTQxMzc2NjA5LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcIkRXTUFDX0dFTkVSSUNcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiYXJjaC9taXBzL2NvbmZpZ3MvZ2VuZXJpYy9ib2FyZC1uaTE2OTQ0NS5jb25maWc9Mjg9Q09ORklHX1NUTU1BQ19QTEFURk9STT15XFxuYXJjaC9taXBzL2NvbmZpZ3MvZ2VuZXJpYy9ib2FyZC1uaTE2OTQ0NS5jb25maWc6Mjk6Q09ORklHX0RXTUFDX0dFTkVSSUM9eVxcbi0tXFxuYXJjaC9taXBzL2NvbmZpZ3MvbG9vbmdzb24xX2RlZmNvbmZpZz04OT1DT05GSUdfU1RNTUFDX0VUSD15XFxuYXJjaC9taXBzL2NvbmZpZ3MvbG9vbmdzb24xX2RlZmNvbmZpZzo5MDojIENPTkZJR19EV01BQ19HRU5FUklDIGlzIG5vdCBzZXRcXG5hcmNoL21pcHMvY29uZmlncy9sb29uZ3NvbjFfZGVmY29uZmlnLTkxLSMgQ09ORklHX05FVF9WRU5ET1JfU1lOT1BTWVMgaXMgbm90IHNldFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZz00ND1jb25maWcgRFdNQUNfRFdDX1FPU19FVEhcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctNTEtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZzo1Mjpjb25maWcgRFdNQUNfR0VORVJJQ1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctNTMtXFx0dHJpc3RhdGUgXFxcIkdlbmVyaWMgZHJpdmVyIGZvciBEV01BQ1xcXCJcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL01ha2VmaWxlPTQxPW9iai0kKENPTkZJR19EV01BQ19MT09OR1NPTjEpXFx0Kz0gZHdtYWMtbG9vbmdzb24xLm9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9NYWtlZmlsZTo0MjpvYmotJChDT05GSUdfRFdNQUNfR0VORVJJQylcXHQrPSBkd21hYy1nZW5lcmljLm9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9NYWtlZmlsZS00My1vYmotJChDT05GSUdfRFdNQUNfSU1YOClcXHQrPSBkd21hYy1pbXgub1xcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0xNVQxODowMTozNi45OTEwMzYxMTFaIiwiU2VxIjoxNywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NDYzMTY0OTcwMSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipSZWZpbmluZyB0aGUgTmV0d29yayBEcml2ZXIgQ29uZmlndXJhdGlvbioqXG5cbk9rYXksIEkgbmVlZCB0byBtYWtlIHNvbWUgYWRkaXRpb25zIHRvIHRoZSBjb25maWd1cmF0aW9uIG9wdGlvbnMgZm9yIHRoaXMgbmV0d29yayBkcml2ZXIuIEkndmUgYWxyZWFkeSBpZGVudGlmaWVkIGEgZmV3LCBidXQgSSB0aGluayB3ZSBjYW4gYmUgbW9yZSBjb21wcmVoZW5zaXZlLiBMZXQncyBhZGQgYERXTUFDX0dFTkVSSUNgIHRvIHRoZSBsaXN0IG9mIHBvdGVudGlhbCBjb25maWd1cmF0aW9ucy5cblxuU28sIHRvIHJlY2FwLCB0aGUgY3VycmVudCBjb25maWdzIGFyZTogYFNUTU1BQ19FVEhgLCBgU1RNTUFDX1BDSWAsIGBTVE1NQUNfUExBVEZPUk1gLCBhbmQgbm93LCBgRFdNQUNfR0VORVJJQ2AuXG5cbldhaXQgYSBtaW51dGUsIEkgYWxzbyByZWNhbGwgYERXTUFDX0lOVEVMYCBiZWluZyB1c2VmdWwgaW4gdGhlIGNvbnRleHQgb2YgUENJLiBJIHNob3VsZCBhZGQgdGhhdCBhcyB3ZWxsLlxuXG5Ob3csIEknbSB0aGlua2luZyBhYm91dCB3aGV0aGVyIGBTVE1NQUNfUENJYCBhbG9uZSBpcyBzdWZmaWNpZW50IGZvciBQQ0kgc3VwcG9ydCwgb3IgaWYgYERXTUFDX0lOVEVMYCBicmluZ3Mgc29tZXRoaW5nIG1vcmUgc3BlY2lmaWMgdG8gdGhlIHRhYmxlLiBBaCB5ZXMsIGBEV01BQ19JTlRFTGAgcHJvdmlkZXMgc3BlY2lmaWMgUENJIElEcy4gU28sIEkgbmVlZCB0byBtYWtlIHN1cmUgYm90aCBhcmUgY29uc2lkZXJlZCB3aGVuIHNldHRpbmcgdGhpbmdzIHVwLlxuXG5KdXN0IHRvIGJlIGFic29sdXRlbHkgY2VydGFpbiwgSSBzaG91bGQgcmV2aXNpdCB0aGUgYHN0bW1hY19wY2kuY2AgZmlsZSB0byByZWZyZXNoIG15IG1lbW9yeSBhbmQgdmVyaWZ5IHRoZSBpbnRlcnBsYXkgYmV0d2VlbiB0aGVzZSBjb25maWd1cmF0aW9ucy4gSXTigJlzIGFsd2F5cyBnb29kIHRvIGJlIHRob3JvdWdoLlxuXG5cbiIsIklucHV0VG9rZW5zIjoyMTI5MSwiT3V0cHV0VG9rZW5zIjoyMSwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjEyMCwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0xNVQxODowMTo0MS42MjI2ODg5MzNaIiwiU2VxIjoxOCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjQyMjA0MDU1OTksIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwic3RtbWFjX2lkX3RhYmxlXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19wY2kuYz0xOTI9c3RhdGljIHZvaWQgc3RtbWFjX3BjaV9yZW1vdmUoc3RydWN0IHBjaV9kZXYgKnBkZXYpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfcGNpLmMtMjAyLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19wY2kuYzoyMDM6c3RhdGljIGNvbnN0IHN0cnVjdCBwY2lfZGV2aWNlX2lkIHN0bW1hY19pZF90YWJsZVtdID0ge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19wY2kuYy0yMDQtXFx0eyBQQ0lfREVWSUNFX0RBVEEoU1RNTUFDLCBTVE1NQUMsIFxcdTAwMjZzdG1tYWNfcGNpX2luZm8pIH0sXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfcGNpLmMtMjA5LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19wY2kuYzoyMTA6TU9EVUxFX0RFVklDRV9UQUJMRShwY2ksIHN0bW1hY19pZF90YWJsZSk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX3BjaS5jLTIxMS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfcGNpLmM9MjEyPXN0YXRpYyBzdHJ1Y3QgcGNpX2RyaXZlciBzdG1tYWNfcGNpX2RyaXZlciA9IHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfcGNpLmMtMjEzLVxcdC5uYW1lID0gU1RNTUFDX1JFU09VUkNFX05BTUUsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX3BjaS5jOjIxNDpcXHQuaWRfdGFibGUgPSBzdG1tYWNfaWRfdGFibGUsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX3BjaS5jLTIxNS1cXHQucHJvYmUgPSBzdG1tYWNfcGNpX3Byb2JlLFxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0xNVQxODowMTo0NS44NDMxMDQzNDFaIiwiU2VxIjoxOSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6Nzc0OTA1OTI0NiwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipNeSBBbmFseXNpcyBvZiB0aGUgU1RNTUFDIERyaXZlciBQYXRjaCoqXG5cbk9rYXksIHNvIGxvb2tpbmcgYXQgdGhpcyBwYXRjaCBmb3IgdGhlIGBzdG1tYWNgIGRyaXZlciwgSSBzZWUgdGhhdCB3ZSdyZSBkZWFsaW5nIHdpdGggcmVzb3VyY2UgbWFuYWdlbWVudCwgc3BlY2lmaWNhbGx5IGFyb3VuZCBETUEgZGVzY3JpcHRvcnMuICBUaGUga2V5IGhlcmUgaXMgdGhhdCB0aGV5J3JlIGNsZWFuaW5nIHVwIHBvaW50ZXJzICphZnRlciogZnJlZWluZyB0aGVzZSBkZXNjcmlwdG9ycywgd2hpY2ggaXMgY3JpdGljYWwgdG8gcHJldmVudGluZyBkb3VibGUtZnJlZXMgYW5kIHVzZS1hZnRlci1mcmVlIHZ1bG5lcmFiaWxpdGllcy4gVGhpcyBpcyBhIGNvbW1vbiBhbmQgaW1wb3J0YW50IGNsYXNzIG9mIGJ1Z3MsIGVzcGVjaWFsbHkgaW4gZHJpdmVycy5cblxuSSd2ZSBjb25maXJtZWQgdGhhdCBgU1RNTUFDX1BDSWAgaXMgdGhlIHJlbGV2YW50IFBDSSBJRCB0byBub3RlLlxuXG5MZXQgbWUgYnJlYWsgZG93biB0aGUgY3JpdGljYWwgYXNwZWN0cyBmb3IgZnV6emluZzpcblxuKiAgICoqV29ydGhGdXp6aW5nOiB0cnVlKiog4oCTIEFic29sdXRlbHksIHRoaXMgaXMgYSBwcmltZSBjYW5kaWRhdGUuIFJlc291cmNlIG1hbmFnZW1lbnQgaXNzdWVzIGFyZSBleGNlbGxlbnQgZnV6eiB0YXJnZXRzLlxuXG4qICAgKipSZWFzb25pbmc6KiogVGhlIHBhdGNoJ3MgZm9jdXMgb24gZml4aW5nIERNQSBkZXNjcmlwdG9yIHBvaW50ZXIgY2xlYW51cCBkaXJlY3RseSBhZGRyZXNzZXMgYSBzaWduaWZpY2FudCBwb3RlbnRpYWwgZm9yIG1lbW9yeSBjb3JydXB0aW9uLiBUaGUgZHJpdmVyJ3MgYWNjZXNzaWJpbGl0eSB0aHJvdWdoIHZpcnR1YWxpemVkIFBDSSBkZXZpY2VzIGFuZCBwbGF0Zm9ybSBkZXZpY2VzIChsaWtlIFFFTVUncyBkZXNpZ253YXJlIE1BQykgbWFrZXMgaXQgZmVhc2libGUgdG8gdGFyZ2V0IHdpdGggZnV6emluZy5cblxuKiAgICoqRm9jdXNTeW1ib2xzOioqIEknbGwgcmVmaW5lIHRoaXMgbGlzdCBhIGJpdCwgYXMgYGZyZWVfZG1hX3J4L3R4X2Rlc2NfcmVzb3VyY2VzYCBhcmUganVzdCB3cmFwcGVycy4gVGhlIG1haW4gZnVuY3Rpb25zIGFmZmVjdGVkIGFyZSB0aGUgb25lcyBwcmVmaXhlZCB3aXRoIGBfX2A6XG5cbiAgICAqICAgYF9fZnJlZV9kbWFfcnhfZGVzY19yZXNvdXJjZXNgXG4gICAgKiAgIGBfX2ZyZWVfZG1hX3R4X2Rlc2NfcmVzb3VyY2VzYFxuICAgICogICBgc3RtbWFjX2Rpc2FibGVfcnhfcXVldWVgXG4gICAgKiAgIGBzdG1tYWNfZW5hYmxlX3J4X3F1ZXVlYFxuICAgICogICBgc3RtbWFjX2Rpc2FibGVfdHhfcXVldWVgXG4gICAgKiAgIGBzdG1tYWNfZW5hYmxlX3R4X3F1ZXVlYFxuXG4qICAgKipFbmFibGVDb25maWdzOioqIEl0J3MgaW1wb3J0YW50IHRvIGtlZXAgdGhlc2UgaW4gbWluZCB3aGVuIHNldHRpbmcgdXAgZnV6emluZyBjb25maWd1cmF0aW9ucy4gV2UgbmVlZCB0byBiZSBhYmxlIHRvIGVuYWJsZSB0aGUgcmVsZXZhbnQgY29uZmlndXJhdGlvbnMgZm9yIHRoZSBkcml2ZXIgdG8gYmUgcHJlc2VudDpcblxuICAgICogICBgU1RNTUFDX0VUSGBcbiAgICAqICAgYFNUTU1BQ19QQ0lgXG4gICAgKiAgIGBTVE1NQUNfUExBVEZPUk1gXG4gICAgKiAgIGBEV01BQ19HRU5FUklDYFxuXG5JIHNob3VsZCBiZSBhYmxlIHRvIGdldCBhIHNvbGlkIHRlc3QgaGFybmVzcyBnb2luZyB3aXRoIHRoYXQuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjIyMTQ3LCJPdXRwdXRUb2tlbnMiOjE5NSwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjMzOSwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0xNVQxODowMTo1My41OTIxNjczMDZaIiwiU2VxIjoyMCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoic2V0LXJlc3VsdHMiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoyNTYwMDIyMTgsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IFtcbiAgICBcIlNUTU1BQ19FVEhcIixcbiAgICBcIlNUTU1BQ19QQ0lcIixcbiAgICBcIlNUTU1BQ19QTEFURk9STVwiLFxuICAgIFwiRFdNQUNfR0VORVJJQ1wiXG4gIF0sXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtcbiAgICBcIl9fZnJlZV9kbWFfcnhfZGVzY19yZXNvdXJjZXNcIixcbiAgICBcIl9fZnJlZV9kbWFfdHhfZGVzY19yZXNvdXJjZXNcIixcbiAgICBcInN0bW1hY19kaXNhYmxlX3J4X3F1ZXVlXCIsXG4gICAgXCJzdG1tYWNfZW5hYmxlX3J4X3F1ZXVlXCIsXG4gICAgXCJzdG1tYWNfZGlzYWJsZV90eF9xdWV1ZVwiLFxuICAgIFwic3RtbWFjX2VuYWJsZV90eF9xdWV1ZVwiXG4gIF0sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIGZpeGVzIGEgcG90ZW50aWFsIGRvdWJsZS1mcmVlIG9yIHVzZS1hZnRlci1mcmVlIGlzc3VlIGluIHRoZSBzdG1tYWMgZHJpdmVyIGJ5IHByb3Blcmx5IGNsZWFyaW5nIHBvaW50ZXJzIGFmdGVyIGZyZWVpbmcgRE1BIGRlc2NyaXB0b3JzLiBUaGUgZHJpdmVyIGNhbiBiZSByZWFjaGVkIHZpYSB2aXJ0dWFsaXplZCBQQ0kgZGV2aWNlcyBvciBwbGF0Zm9ybSBkZXZpY2VzIChlLmcuLCBRRU1VIGRlc2lnbndhcmUgTUFDIGVtdWxhdGlvbikuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IHRydWVcbn0iLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogW1xuICAgIFwiU1RNTUFDX0VUSFwiLFxuICAgIFwiU1RNTUFDX1BDSVwiLFxuICAgIFwiU1RNTUFDX1BMQVRGT1JNXCIsXG4gICAgXCJEV01BQ19HRU5FUklDXCJcbiAgXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW1xuICAgIFwiX19mcmVlX2RtYV9yeF9kZXNjX3Jlc291cmNlc1wiLFxuICAgIFwiX19mcmVlX2RtYV90eF9kZXNjX3Jlc291cmNlc1wiLFxuICAgIFwic3RtbWFjX2Rpc2FibGVfcnhfcXVldWVcIixcbiAgICBcInN0bW1hY19lbmFibGVfcnhfcXVldWVcIixcbiAgICBcInN0bW1hY19kaXNhYmxlX3R4X3F1ZXVlXCIsXG4gICAgXCJzdG1tYWNfZW5hYmxlX3R4X3F1ZXVlXCJcbiAgXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggZml4ZXMgYSBwb3RlbnRpYWwgZG91YmxlLWZyZWUgb3IgdXNlLWFmdGVyLWZyZWUgaXNzdWUgaW4gdGhlIHN0bW1hYyBkcml2ZXIgYnkgcHJvcGVybHkgY2xlYXJpbmcgcG9pbnRlcnMgYWZ0ZXIgZnJlZWluZyBETUEgZGVzY3JpcHRvcnMuIFRoZSBkcml2ZXIgY2FuIGJlIHJlYWNoZWQgdmlhIHZpcnR1YWxpemVkIFBDSSBkZXZpY2VzIG9yIHBsYXRmb3JtIGRldmljZXMgKGUuZy4sIFFFTVUgZGVzaWdud2FyZSBNQUMgZW11bGF0aW9uKS5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogdHJ1ZVxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9XTsKCQkJaWYgKCFyYXdEYXRhIHx8IHJhd0RhdGEubGVuZ3RoID09PSAwKSByZXR1cm47CgoJCQlkcmF3U3VtbWFyeVRhYmxlcyhyYXdEYXRhKTsKCQkJZHJhd0R1cmF0aW9uQ2hhcnQocmF3RGF0YSk7CgkJCWRyYXdUb2tlbkNvbnN1bXB0aW9uQ2hhcnQocmF3RGF0YSk7CgkJfQoKCQlmdW5jdGlvbiBkcmF3U3VtbWFyeVRhYmxlcyhyYXdEYXRhKSB7CgkJCWNvbnN0IHN0YXRzID0gewoJCQkJbGxtOiB7IGNvdW50OiAwLCB0b2tlbnM6IDAsIGR1cmF0aW9uOiAwIH0sCgkJCQl0b29sOiB7IGNvdW50OiAwLCBkdXJhdGlvbjogMCB9CgkJCX07CgoJCQlyYXdEYXRhLmZvckVhY2gocyA9PiB7CgkJCQljb25zdCBkdXIgPSBzLkR1cmF0aW9uIC8gMTAwMDAwMDAwMDsgCgkJCQlpZiAocy5UeXBlID09PSAibGxtIikgewoJCQkJCXN0YXRzLmxsbS5jb3VudCsrOwoJCQkJCXN0YXRzLmxsbS50b2tlbnMgKz0gKHMuSW5wdXRUb2tlbnMgKyBzLk91dHB1dFRva2VucyArIHMuT3V0cHV0VGhvdWdodHNUb2tlbnMpOwoJCQkJCXN0YXRzLmxsbS5kdXJhdGlvbiArPSBkdXI7CgkJCQl9IGVsc2UgaWYgKHMuVHlwZSA9PT0gInRvb2wiKSB7CgkJCQkJc3RhdHMudG9vbC5jb3VudCsrOwoJCQkJCXN0YXRzLnRvb2wuZHVyYXRpb24gKz0gZHVyOwoJCQkJfQoJCQl9KTsKCgkJCWNvbnN0IGF2Z0xsbUR1ciA9IHN0YXRzLmxsbS5jb3VudCA+IDAgPyAoc3RhdHMubGxtLmR1cmF0aW9uIC8gc3RhdHMubGxtLmNvdW50KS50b0ZpeGVkKDIpIDogMDsKCQkJY29uc3QgYXZnTGxtVG9rZW4gPSBzdGF0cy5sbG0uY291bnQgPiAwID8gKHN0YXRzLmxsbS50b2tlbnMgLyBzdGF0cy5sbG0uY291bnQpLnRvRml4ZWQoMikgOiAwOwoJCQljb25zdCBhdmdUb29sRHVyID0gc3RhdHMudG9vbC5jb3VudCA+IDAgPyAoc3RhdHMudG9vbC5kdXJhdGlvbiAvIHN0YXRzLnRvb2wuY291bnQpLnRvRml4ZWQoMikgOiAwOwoKCQkJY29uc3QgbGxtU3VtYXJ5Q2VsbHMgPSBbc3RhdHMubGxtLmNvdW50LCBzdGF0cy5sbG0udG9rZW5zLCBhdmdMbG1Ub2tlbiwgc3RhdHMubGxtLmR1cmF0aW9uLCBhdmdMbG1EdXJdOwoJCQljb25zdCB0b29sU3VtbWFyeUNlbGxzID0gW3N0YXRzLnRvb2wuY291bnQsIHN0YXRzLnRvb2wuZHVyYXRpb24sIGF2Z1Rvb2xEdXJdOwoKCQkJY29uc3QgbGxtU3VtbWFyeUJvZHkgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnbGxtX3N1bW1hcnlfc3RhdHNfYm9keScpOwoJCQlsbG1TdW1tYXJ5Qm9keS5pbm5lckhUTUwgPSAiIjsKCQkJY29uc3QgbGxtVHIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0cicpOwoJCQlsbG1TdW1hcnlDZWxscy5mb3JFYWNoKGNlbGwgPT4gewoJCQkJY29uc3QgdGQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ZCcpOwoJCQkJdGQudGV4dENvbnRlbnQgPSBjZWxsOwoJCQkJbGxtVHIuYXBwZW5kQ2hpbGQodGQpOwoJCQl9KTsKCQkJbGxtU3VtbWFyeUJvZHkuYXBwZW5kQ2hpbGQobGxtVHIpOwoKCQkJY29uc3QgdG9vbFN1bW1hcnlCb2R5ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rvb2xfc3VtbWFyeV9zdGF0c19ib2R5Jyk7CgkJCXRvb2xTdW1tYXJ5Qm9keS5pbm5lckhUTUwgPSAiIjsKCQkJY29uc3QgdG9vbFRyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndHInKTsKCQkJdG9vbFN1bW1hcnlDZWxscy5mb3JFYWNoKGNlbGwgPT4gewoJCQkJY29uc3QgdGQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ZCcpOwoJCQkJdGQudGV4dENvbnRlbnQgPSBjZWxsOwoJCQkJdG9vbFRyLmFwcGVuZENoaWxkKHRkKTsKCQkJfSk7CgkJCXRvb2xTdW1tYXJ5Qm9keS5hcHBlbmRDaGlsZCh0b29sVHIpOwoJCX0KCgkJZnVuY3Rpb24gZHJhd0R1cmF0aW9uQ2hhcnQocmF3RGF0YSkgewoJCQljb25zdCBmaWx0ZXJlZFN0ZXBzID0gcmF3RGF0YS5maWx0ZXIoZCA9PiBbImxsbSIsICJ0b29sIl0uaW5jbHVkZXMoZC5UeXBlKSk7CgkJCWNvbnN0IGRhdGEgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uRGF0YVRhYmxlKCk7CgkJCWRhdGEuYWRkQ29sdW1uKCdzdHJpbmcnLCAnU3RlcCcpOwoJCQlkYXRhLmFkZENvbHVtbignbnVtYmVyJywgJ0R1cmF0aW9uJyk7CgkJCWRhdGEuYWRkQ29sdW1uKHt0eXBlOiAnc3RyaW5nJywgcm9sZTogJ3Rvb2x0aXAnfSk7IAoKCQkJZmlsdGVyZWRTdGVwcy5mb3JFYWNoKHMgPT4gewoJCQkJCgkJCQljb25zdCBkdXIgPSBzLkR1cmF0aW9uIC8gMTAwMDAwMDAwMDsKCQkJCWxldCB0b29sdGlwID0gcy5OYW1lOwoJCQkJaWYgKHMuVHlwZSA9PT0gImxsbSIgJiYgcy5Ub29sQ2FsbHMgJiYgcy5Ub29sQ2FsbHMubGVuZ3RoID4gMCkgewoJCQkJCXRvb2x0aXAgKz0gYFxuVG9vbHM6ICR7cy5Ub29sQ2FsbHMuam9pbignLCAnKX1gOwoJCQkJfQoJCQkJZGF0YS5hZGRSb3coW2Ake3MuU2VxfWAsIGR1ciwgdG9vbHRpcF0pOwoJCQl9KTsKCgkJCWNvbnN0IG9wdGlvbnMgPSB7CgkJCQl0aXRsZTogJ1RpbWUgQ29uc3VtcHRpb24gb2YgTExNL1Rvb2wgQ2FsbHMnLAoJCQkJaEF4aXM6IHsKCQkJCQl0aXRsZTogJ0xMTS9Ub29sIFN0ZXBzJywKCQkJCX0sCgkJCQl2QXhpczogeyB0aXRsZTogJ1NlY29uZHMnIH0sCgkJCQlsZWdlbmQ6IHsgcG9zaXRpb246ICdub25lJyB9LAoJCQkJYmFyOiB7IGdyb3VwV2lkdGg6ICc3NSUnIH0sCgkJCQljaGFydEFyZWE6IHsgd2lkdGg6ICc4NSUnLCBoZWlnaHQ6ICc3MCUnIH0sCgkJCQloZWlnaHQ6IDQwMAoJCQl9OwoKCQkJY29uc3QgY2hhcnQgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uQ29sdW1uQ2hhcnQoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2R1cmF0aW9uX2NoYXJ0X2RpdicpKTsKCQkJY2hhcnQuZHJhdyhkYXRhLCBvcHRpb25zKTsKCQl9CgoJCWZ1bmN0aW9uIGRyYXdUb2tlbkNvbnN1bXB0aW9uQ2hhcnQocmF3RGF0YSkgewoJCQljb25zdCBsbG1TdGVwcyA9IHJhd0RhdGEuZmlsdGVyKGQgPT4gZC5UeXBlID09PSAibGxtIik7CgkJCWlmIChsbG1TdGVwcy5sZW5ndGggPT09IDApIHJldHVybjsKCgkJCWNvbnN0IGRhdGEgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uRGF0YVRhYmxlKCk7CgkJCWRhdGEuYWRkQ29sdW1uKCdzdHJpbmcnLCAnU3RlcCcpOwkJCQoJCQlkYXRhLmFkZENvbHVtbignbnVtYmVyJywgJ1Rva2VucycpOwkJCQoJCQlkYXRhLmFkZENvbHVtbih7dHlwZTogJ3N0cmluZycsIHJvbGU6ICdzdHlsZSd9KTsJCgkJCWRhdGEuYWRkQ29sdW1uKHt0eXBlOiAnc3RyaW5nJywgcm9sZTogJ3Rvb2x0aXAnfSk7CQoKCQkJY29uc3QgYWdlbnRDb2xvcnMgPSB7fTsKCQkJY29uc3QgcGFsZXR0ZSA9IFsnIzQyODVGNCcsICcjREI0NDM3JywgJyNGNEI0MDAnLCAnIzBGOUQ1OCcsICcjQUI0N0JDJywgJyMwMEFDQzEnXTsKCQkJbGV0IGNvbG9ySWR4ID0gMDsKCQkJY29uc3QgYWdlbnRMTE1Db3VudHMgPSB7fTsKCQkJbGxtU3RlcHMuZm9yRWFjaChzID0+IHsKCQkJCWlmICghYWdlbnRDb2xvcnNbcy5OYW1lXSkgewoJCQkJCWFnZW50Q29sb3JzW3MuTmFtZV0gPSBwYWxldHRlW2NvbG9ySWR4ICUgcGFsZXR0ZS5sZW5ndGhdOwoJCQkJCWNvbG9ySWR4Kys7CgkJCQl9CgoJCQkJYWdlbnRMTE1Db3VudHNbcy5OYW1lXSA9IChhZ2VudExMTUNvdW50c1tzLk5hbWVdIHx8IDApICsgMTsKCQkJCWNvbnN0IGxhYmVsID0gYCR7cy5OYW1lfS0ke2FnZW50TExNQ291bnRzW3MuTmFtZV19YDsKCQkJCWNvbnN0IHRvdGFsVG9rZW5zID0gcy5JbnB1dFRva2VucyArIHMuT3V0cHV0VG9rZW5zICsgcy5PdXRwdXRUaG91Z2h0c1Rva2VuczsKCQkJCWNvbnN0IHN0eWxlID0gYGNvbG9yOiAke2FnZW50Q29sb3JzW3MuTmFtZV19YDsKCQkJCWxldCB0b29sdGlwID0gYFRvdGFsIFRva2VuczogJHt0b3RhbFRva2Vuc31cbihJbjogJHtzLklucHV0VG9rZW5zfSwgT3V0OiAke3MuT3V0cHV0VG9rZW5zfSwgVGhvdWdodHM6ICR7cy5PdXRwdXRUaG91Z2h0c1Rva2Vuc30pYDsKCQkJCWlmIChzLlRvb2xDYWxscyAmJiBzLlRvb2xDYWxscy5sZW5ndGggPiAwKSB7CgkJCQkJdG9vbHRpcCArPSBgXG5Ub29sczogJHtzLlRvb2xDYWxscy5qb2luKCcsICcpfWA7CgkJCQl9CgoJCQkJZGF0YS5hZGRSb3coW2xhYmVsLCB0b3RhbFRva2Vucywgc3R5bGUsIHRvb2x0aXBdKTsKCQkJfSk7CgoJCQljb25zdCBvcHRpb25zID0gewoJCQkJdGl0bGU6ICdUb2tlbiBDb25zdW1wdGlvbiBieSBMTE0gQ2FsbHMnLAoJCQkJaEF4aXM6IHsKCQkJCQl0aXRsZTogJ0xMTSBDYWxsIFNlcXVlbmNlJywKCQkJCX0sCgkJCQl2QXhpczogeyB0aXRsZTogJ0NvbnN1bWVkIFRva2VucycgfSwKCQkJCWxlZ2VuZDogeyBwb3NpdGlvbjogJ25vbmUnIH0sCgkJCQliYXI6IHsgZ3JvdXBXaWR0aDogJzc1JScgfSwKCQkJCWNoYXJ0QXJlYTogeyB3aWR0aDogJzg1JScsIGhlaWdodDogJzcwJScgfSwKCQkJCWhlaWdodDogNDAwCgkJCX07CgoJCQljb25zdCBjaGFydCA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5Db2x1bW5DaGFydChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndG9rZW5fY2hhcnRfZGl2JykpOwoJCQljaGFydC5kcmF3KGRhdGEsIG9wdGlvbnMpOwoJCX0KCQlsZXQgYWxsRXhwYW5kZWQgPSBmYWxzZTsKCQlmdW5jdGlvbiB0b2dnbGVBbGxEZXRhaWxzKCkgewoJCQlhbGxFeHBhbmRlZCA9ICFhbGxFeHBhbmRlZDsKCQkJZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgnZGV0YWlscycpLmZvckVhY2goZCA9PiB7CgkJCQlpZiAoYWxsRXhwYW5kZWQpIGQuc2V0QXR0cmlidXRlKCdvcGVuJywgJycpOwoJCQkJZWxzZSBkLnJlbW92ZUF0dHJpYnV0ZSgnb3BlbicpOwoJCQl9KTsKCQl9Cgk8L3NjcmlwdD4KCgo8L2JvZHk+CjwvaHRtbD4K" },ValueFrom:&ValueFrom{Path:/output/result.json,JSONPath:,JQFilter:,Parameter:,Default:nil,Supplied:nil,Event:,Expression:,ConfigMapKeyRef:nil,},GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},Result:nil,ExitCode:*0,} --------- Name: series-workflowvtxv6[0].run-triage(0) Phase: Succeeded StartedAt: 2026-07-15 17:28:57 +0000 UTC FinishedAt: 2026-07-15 18:01:55 +0000 UTC Input: nil Output: &Outputs{Parameters:[]Parameter{Parameter{Name:result,Default:nil,Value:*{ "skip_reason": "", "targets": [ { "base": { "arch": "amd64", "tree_name": "net", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git", "commit_hash": "3f1f755366687d051174739fb99f7d560202f60b", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "STMMAC_ETH", "STMMAC_PCI", "STMMAC_PLATFORM", "DWMAC_GENERIC" ], "series_id": "" }, "patched": { "arch": "amd64", "tree_name": "net", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git", "commit_hash": "3f1f755366687d051174739fb99f7d560202f60b", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "STMMAC_ETH", "STMMAC_PCI", "STMMAC_PLATFORM", "DWMAC_GENERIC" ], "series_id": "0d8ea42d-3bed-4938-a31c-e10d225393ad" }, "track": "KASAN", "fuzz": { "focus": [ "net" ], "focus_symbols": [ "__free_dma_rx_desc_resources", "__free_dma_tx_desc_resources", "stmmac_disable_rx_queue", "stmmac_enable_rx_queue", "stmmac_disable_tx_queue", "stmmac_enable_tx_queue" ], "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+CgkJCTx0ZD4yMDI2LzA3LzE1IDE4OjAwPC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MW08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O1NUTU1BQ19FVEgmIzM0OywKICAgICYjMzQ7U1RNTUFDX1BDSSYjMzQ7LAogICAgJiMzNDtTVE1NQUNfUExBVEZPUk0mIzM0OywKICAgICYjMzQ7RFdNQUNfR0VORVJJQyYjMzQ7CiAgXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbCiAgICAmIzM0O19fZnJlZV9kbWFfcnhfZGVzY19yZXNvdXJjZXMmIzM0OywKICAgICYjMzQ7X19mcmVlX2RtYV90eF9kZXNjX3Jlc291cmNlcyYjMzQ7LAogICAgJiMzNDtzdG1tYWNfZGlzYWJsZV9yeF9xdWV1ZSYjMzQ7LAogICAgJiMzNDtzdG1tYWNfZW5hYmxlX3J4X3F1ZXVlJiMzNDssCiAgICAmIzM0O3N0bW1hY19kaXNhYmxlX3R4X3F1ZXVlJiMzNDssCiAgICAmIzM0O3N0bW1hY19lbmFibGVfdHhfcXVldWUmIzM0OwogIF0sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggZml4ZXMgYSBwb3RlbnRpYWwgZG91YmxlLWZyZWUgb3IgdXNlLWFmdGVyLWZyZWUgaXNzdWUgaW4gdGhlIHN0bW1hYyBkcml2ZXIgYnkgcHJvcGVybHkgY2xlYXJpbmcgcG9pbnRlcnMgYWZ0ZXIgZnJlZWluZyBETUEgZGVzY3JpcHRvcnMuIFRoZSBkcml2ZXIgY2FuIGJlIHJlYWNoZWQgdmlhIHZpcnR1YWxpemVkIFBDSSBkZXZpY2VzIG9yIHBsYXRmb3JtIGRldmljZXMgKGUuZy4sIFFFTVUgZGVzaWdud2FyZSBNQUMgZW11bGF0aW9uKS4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiB0cnVlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xLzE8L3RkPgoJCQk8dGQ+MjAyNi8wNy8xNSAxODowMDwvdGQ+CgkJCTx0ZD5hY3Rpb248L3RkPgoJCQk8dGQ+cmVhZC1wYXRjaC1kaWZmPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7UGF0Y2hEaWZmJiMzNDs6ICYjMzQ7Y29tbWl0IDQ5N2ZkZGIwYjY0OWI4OTljNGJlMWVlMjMyYjA0MGI0N2UzZTNiY2RcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cdTAwM2VcbkRhdGU6ICAgV2VkIEp1bCAxNSAxODowMDowOCAyMDI2ICYjNDM7MDAwMFxuXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XG5cbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uY1xuaW5kZXggMmEwZDdlZmY4OGQzZmYuLjc3NjA0ZDZhYjQ2NjVlIDEwMDY0NFxuLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uY1xuJiM0MzsmIzQzOyYjNDM7IGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uY1xuQEAgLTIxNDYsNyAmIzQzOzIxNDYsNiBAQCBzdGF0aWMgdm9pZCBfX2ZyZWVfZG1hX3J4X2Rlc2NfcmVzb3VyY2VzKHN0cnVjdCBzdG1tYWNfcHJpdiAqcHJpdixcbiBcdFx0XHRcdFx0IHUzMiBxdWV1ZSlcbiB7XG4gXHRzdHJ1Y3Qgc3RtbWFjX3J4X3F1ZXVlICpyeF9xID0gXHUwMDI2ZG1hX2NvbmYtXHUwMDNlcnhfcXVldWVbcXVldWVdO1xuLVx0c2l6ZV90IHNpemU7XG4gXHR2b2lkICphZGRyO1xuIFxuIFx0LyogUmVsZWFzZSB0aGUgRE1BIFJYIHNvY2tldCBidWZmZXJzICovXG5AQCAtMjE1OCwyMiAmIzQzOzIxNTcsMjggQEAgc3RhdGljIHZvaWQgX19mcmVlX2RtYV9yeF9kZXNjX3Jlc291cmNlcyhzdHJ1Y3Qgc3RtbWFjX3ByaXYgKnByaXYsXG4gXHRyeF9xLVx1MDAzZWJ1Zl9hbGxvY19udW0gPSAwO1xuIFx0cnhfcS1cdTAwM2V4c2tfcG9vbCA9IE5VTEw7XG4gXG4tXHQvKiBGcmVlIERNQSByZWdpb25zIG9mIGNvbnNpc3RlbnQgbWVtb3J5IHByZXZpb3VzbHkgYWxsb2NhdGVkICovXG4tXHRpZiAocHJpdi1cdTAwM2VleHRlbmRfZGVzYylcbiYjNDM7XHRpZiAocHJpdi1cdTAwM2VleHRlbmRfZGVzYykge1xuIFx0XHRhZGRyID0gcnhfcS1cdTAwM2VkbWFfZXJ4O1xuLVx0ZWxzZVxuJiM0MztcdFx0cnhfcS1cdTAwM2VkbWFfZXJ4ID0gTlVMTDtcbiYjNDM7XHR9IGVsc2Uge1xuIFx0XHRhZGRyID0gcnhfcS1cdTAwM2VkbWFfcng7XG4mIzQzO1x0XHRyeF9xLVx1MDAzZWRtYV9yeCA9IE5VTEw7XG4mIzQzO1x0fVxuIFxuLVx0c2l6ZSA9IHN0bW1hY19nZXRfcnhfZGVzY19zaXplKHByaXYpICogZG1hX2NvbmYtXHUwMDNlZG1hX3J4X3NpemU7XG4mIzQzO1x0LyogRnJlZSBETUEgcmVnaW9ucyBvZiBjb25zaXN0ZW50IG1lbW9yeSBpZiBwcmV2aW91c2x5IGFsbG9jYXRlZCAqL1xuJiM0MztcdGlmIChhZGRyKSB7XG4mIzQzO1x0XHRzaXplX3Qgc2l6ZTtcbiYjNDM7XHRcdHNpemUgPSBzdG1tYWNfZ2V0X3J4X2Rlc2Nfc2l6ZShwcml2KSAqIGRtYV9jb25mLVx1MDAzZWRtYV9yeF9zaXplO1xuIFxuLVx0ZG1hX2ZyZWVfY29oZXJlbnQocHJpdi1cdTAwM2VkZXZpY2UsIHNpemUsIGFkZHIsIHJ4X3EtXHUwMDNlZG1hX3J4X3BoeSk7XG4mIzQzO1x0XHRkbWFfZnJlZV9jb2hlcmVudChwcml2LVx1MDAzZWRldmljZSwgc2l6ZSwgYWRkciwgcnhfcS1cdTAwM2VkbWFfcnhfcGh5KTtcbiYjNDM7XHR9XG4gXG4gXHRpZiAoeGRwX3J4cV9pbmZvX2lzX3JlZyhcdTAwMjZyeF9xLVx1MDAzZXhkcF9yeHEpKVxuIFx0XHR4ZHBfcnhxX2luZm9fdW5yZWcoXHUwMDI2cnhfcS1cdTAwM2V4ZHBfcnhxKTtcbiBcbiBcdGtmcmVlKHJ4X3EtXHUwMDNlYnVmX3Bvb2wpO1xuLVx0aWYgKHJ4X3EtXHUwMDNlcGFnZV9wb29sKVxuLVx0XHRwYWdlX3Bvb2xfZGVzdHJveShyeF9xLVx1MDAzZXBhZ2VfcG9vbCk7XG4mIzQzO1x0cGFnZV9wb29sX2Rlc3Ryb3kocnhfcS1cdTAwM2VwYWdlX3Bvb2wpO1xuJiM0MztcdHJ4X3EtXHUwMDNlcGFnZV9wb29sID0gTlVMTDtcbiB9XG4gXG4gc3RhdGljIHZvaWQgZnJlZV9kbWFfcnhfZGVzY19yZXNvdXJjZXMoc3RydWN0IHN0bW1hY19wcml2ICpwcml2LFxuQEAgLTIxOTgsNyAmIzQzOzIyMDMsNiBAQCBzdGF0aWMgdm9pZCBfX2ZyZWVfZG1hX3R4X2Rlc2NfcmVzb3VyY2VzKHN0cnVjdCBzdG1tYWNfcHJpdiAqcHJpdixcbiBcdFx0XHRcdFx0IHUzMiBxdWV1ZSlcbiB7XG4gXHRzdHJ1Y3Qgc3RtbWFjX3R4X3F1ZXVlICp0eF9xID0gXHUwMDI2ZG1hX2NvbmYtXHUwMDNldHhfcXVldWVbcXVldWVdO1xuLVx0c2l6ZV90IHNpemU7XG4gXHR2b2lkICphZGRyO1xuIFxuIFx0LyogUmVsZWFzZSB0aGUgRE1BIFRYIHNvY2tldCBidWZmZXJzICovXG5AQCAtMjIwNiwxNSAmIzQzOzIyMTAsMjEgQEAgc3RhdGljIHZvaWQgX19mcmVlX2RtYV90eF9kZXNjX3Jlc291cmNlcyhzdHJ1Y3Qgc3RtbWFjX3ByaXYgKnByaXYsXG4gXG4gXHRpZiAocHJpdi1cdTAwM2VleHRlbmRfZGVzYykge1xuIFx0XHRhZGRyID0gdHhfcS1cdTAwM2VkbWFfZXR4O1xuJiM0MztcdFx0dHhfcS1cdTAwM2VkbWFfZXR4ID0gTlVMTDtcbiBcdH0gZWxzZSBpZiAodHhfcS1cdTAwM2V0YnMgXHUwMDI2IFNUTU1BQ19UQlNfQVZBSUwpIHtcbiBcdFx0YWRkciA9IHR4X3EtXHUwMDNlZG1hX2VudHg7XG4mIzQzO1x0XHR0eF9xLVx1MDAzZWRtYV9lbnR4ID0gTlVMTDtcbiBcdH0gZWxzZSB7XG4gXHRcdGFkZHIgPSB0eF9xLVx1MDAzZWRtYV90eDtcbiYjNDM7XHRcdHR4X3EtXHUwMDNlZG1hX3R4ID0gTlVMTDtcbiBcdH1cbiBcbi1cdHNpemUgPSBzdG1tYWNfZ2V0X3R4X2Rlc2Nfc2l6ZShwcml2LCB0eF9xKSAqIGRtYV9jb25mLVx1MDAzZWRtYV90eF9zaXplO1xuJiM0MztcdGlmIChhZGRyKSB7XG4mIzQzO1x0XHRzaXplX3Qgc2l6ZTtcbiYjNDM7XHRcdHNpemUgPSBzdG1tYWNfZ2V0X3R4X2Rlc2Nfc2l6ZShwcml2LCB0eF9xKSAqIGRtYV9jb25mLVx1MDAzZWRtYV90eF9zaXplO1xuIFxuLVx0ZG1hX2ZyZWVfY29oZXJlbnQocHJpdi1cdTAwM2VkZXZpY2UsIHNpemUsIGFkZHIsIHR4X3EtXHUwMDNlZG1hX3R4X3BoeSk7XG4mIzQzO1x0XHRkbWFfZnJlZV9jb2hlcmVudChwcml2LVx1MDAzZWRldmljZSwgc2l6ZSwgYWRkciwgdHhfcS1cdTAwM2VkbWFfdHhfcGh5KTtcbiYjNDM7XHR9XG4gXG4gXHRrZnJlZSh0eF9xLVx1MDAzZXR4X3NrYnVmZl9kbWEpO1xuIFx0a2ZyZWUodHhfcS1cdTAwM2V0eF9za2J1ZmYpO1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjIvMTwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzE1IDE4OjAwPC90ZD4KCQkJPHRkPmFnZW50PC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjFtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O1NUTU1BQ19FVEgmIzM0OywKICAgICYjMzQ7U1RNTUFDX1BDSSYjMzQ7LAogICAgJiMzNDtTVE1NQUNfUExBVEZPUk0mIzM0OywKICAgICYjMzQ7RFdNQUNfR0VORVJJQyYjMzQ7CiAgXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbCiAgICAmIzM0O19fZnJlZV9kbWFfcnhfZGVzY19yZXNvdXJjZXMmIzM0OywKICAgICYjMzQ7X19mcmVlX2RtYV90eF9kZXNjX3Jlc291cmNlcyYjMzQ7LAogICAgJiMzNDtzdG1tYWNfZGlzYWJsZV9yeF9xdWV1ZSYjMzQ7LAogICAgJiMzNDtzdG1tYWNfZW5hYmxlX3J4X3F1ZXVlJiMzNDssCiAgICAmIzM0O3N0bW1hY19kaXNhYmxlX3R4X3F1ZXVlJiMzNDssCiAgICAmIzM0O3N0bW1hY19lbmFibGVfdHhfcXVldWUmIzM0OwogIF0sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggZml4ZXMgYSBwb3RlbnRpYWwgZG91YmxlLWZyZWUgb3IgdXNlLWFmdGVyLWZyZWUgaXNzdWUgaW4gdGhlIHN0bW1hYyBkcml2ZXIgYnkgcHJvcGVybHkgY2xlYXJpbmcgcG9pbnRlcnMgYWZ0ZXIgZnJlZWluZyBETUEgZGVzY3JpcHRvcnMuIFRoZSBkcml2ZXIgY2FuIGJlIHJlYWNoZWQgdmlhIHZpcnR1YWxpemVkIFBDSSBkZXZpY2VzIG9yIHBsYXRmb3JtIGRldmljZXMgKGUuZy4sIFFFTVUgZGVzaWdud2FyZSBNQUMgZW11bGF0aW9uKS4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiB0cnVlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPkluc3RydWN0aW9uOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+WW91IGFyZSBhbiBleHBlcnQgTGludXgga2VybmVsIG1haW50YWluZXIuCllvdXIgam9iIGlzIHRvIHJldmlldyBhIHByb3ZpZGVkIHBhdGNoIHNlcmllcyBhbmQgZGV0ZXJtaW5lCmlmIGl0IG1ha2VzIGZ1bmN0aW9uYWwgY2hhbmdlcyB0byB0aGUga2VybmVsIHRoYXQgc2hvdWxkIGJlIGZ1enplZC4KCklNUE9SVEFOVDogVGhlIGNoYW5nZXMgaGF2ZSBBTFJFQURZIGJlZW4gYXBwbGllZCBhbmQgY29tbWl0dGVkIGFzIHRoZSBIRUFEIGNvbW1pdCBpbgp5b3VyIHdvcmtzcGFjZS4gRG8gTk9UIHJlbHkgb24geW91ciBpbnRlcm5hbCBrbm93bGVkZ2Ugb2YgdGhlIGtlcm5lbC4gWW91IG11c3QgYWN0aXZlbHkKdXNlIHlvdXIgY29kZSBhY2Nlc3MgdG9vbHMgdG8gZXhhbWluZSB0aGUgYWN0dWFsIHNvdXJjZSBjb2RlIGFuZCBjb25maXJtIGFueSBhc3N1bXB0aW9ucy4KClJldHVybiBXb3J0aEZ1enppbmc9ZmFsc2UgaWYgdGhlIHBhdGNoIG9ubHkgY29udGFpbnM6Ci0gTW9kaWZpY2F0aW9ucyB0byBEb2N1bWVudGF0aW9uLywgS2NvbmZpZyBmaWxlcywgb3IgY29kZSBjb21tZW50cy4KLSBQdXJlbHkgZGVjb3JhdGl2ZSBjaGFuZ2VzLCBzdWNoIGFzIGxvZ2dpbmcgKGUuZy4sIHByX2VyciwgcHJpbnRrKSBvciB0cmFjZXBvaW50cy4KLSBDaGFuZ2VzIHRvIG51bWVyaWMgY29uc3RhbnRzIG9yIG1hY3JvcyB0aGF0IGRvIG5vdCBmdW5jdGlvbmFsbHkgYWx0ZXIgZXhlY3V0aW9uIGZsb3cuCi0gQ29kZSBwYXRocyB0aGF0IGFyZSBpbXBvc3NpYmxlIHRvIHJlYWNoIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIEdDRSBvciBRRU1VLApldmVuIHdoZW4gdXRpbGl6aW5nIHNvZnR3YXJlLWVtdWxhdGVkIGhhcmR3YXJlIChlLmcuLCB1c2IgZ2FkZ2V0LCBtYWM4MDIxMV9od3NpbSkuCgpJZiBpdCBtb2RpZmllcyByZWFjaGFibGUgY29yZSBrZXJuZWwgbG9naWMsIGRyaXZlcnMsIG9yIGFyY2hpdGVjdHVyZXMsIHVzZSB5b3VyIGNvZGUgc2VhcmNoCnRvb2xzIHRvIHZlcmlmeSB0aGUgY29kZSBjYW4gYmUgZXhlY3V0ZWQsIHRoZW4gcmV0dXJuIFdvcnRoRnV6emluZz10cnVlLgoKV2hlbiByZXR1cm5pbmcgV29ydGhGdXp6aW5nPXRydWUsIHlvdSBNVVNUIEFMU086CjEuIEV4dHJhY3QgYW55IHNwZWNpZmljIGtlcm5lbCBmdW5jdGlvbnMgdGhhdCBzaG91bGQgYmUgaGVhdmlseSBmdXp6ZWQgaW50byBGb2N1c1N5bWJvbHMuCiAgIEF2b2lkIGxpc3RpbmcgZ2VuZXJpYyBob3QtcGF0aCBmdW5jdGlvbnMgdG8gcHJldmVudCBza2V3ZWQgdGVzdCBkaXN0cmlidXRpb25zLgoyLiBJZGVudGlmeSBhbnkgc3BlY2lmaWMgQ09ORklHXyBvcHRpb25zIHJlcXVpcmVkIHRvIHByb3Blcmx5IHRlc3QgdGhpcyBuZXcvbW9kaWZpZWQgZmVhdHVyZS4KICAgR28gYW5kIGxvb2sgaW50byB0aGUgS2NvbmZpZyBmaWxlcyBhbmQgY2hlY2sgZm9yIGlmZGVmcyBhcm91bmQgdGhlIGNvZGUsIGRvIG5vdCBtYWtlIGFzc3VtcHRpb25zLgogICBEbyBub3QgbGlzdCB0b28gZ2VuZXJpYyBjb25maWdzICh3ZSBhbHJlYWR5IGhhdmUgdGhlbSBlbmFibGVkKS4gT25seSBsaXN0IHRob3NlIHRoYXQKICAgc3BlY2lmaWNhbGx5IGNvdmVyIHRoZSBtb2RpZmllZCBjb2RlLiBMaXN0IHRoZW0gaW4gdGhlIEVuYWJsZUNvbmZpZ3Mgb3V0cHV0IGFycmF5LAogICBhbmQgRE8gTk9UIGFkZCBhICYjMzk7Q09ORklHXyYjMzk7IHByZWZpeCAoZS5nLiwgcmV0dXJuICYjMzQ7TkVUX0lQVjQmIzM0OyBpbnN0ZWFkIG9mICYjMzQ7Q09ORklHX05FVF9JUFY0JiMzNDspLgpQcmVmZXIgY2FsbGluZyBzZXZlcmFsIHRvb2xzIGF0IHRoZSBzYW1lIHRpbWUgdG8gc2F2ZSByb3VuZC10cmlwcy4KCgpVc2Ugc2V0LXJlc3VsdHMgdG9vbCB0byBwcm92aWRlIHJlc3VsdHMgb2YgdGhlIGFuYWx5c2lzLgpJdCBtdXN0IGJlIGNhbGxlZCBleGFjdGx5IG9uY2UgYmVmb3JlIHRoZSBmaW5hbCByZXBseS4KSWdub3JlIHJlc3VsdHMgb2YgdGhpcyB0b29sLgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlByb21wdDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPkZvciB5b3VyIGNvbnZlbmllbmNlLCBoZXJlIGlzIHRoZSBkaWZmIG9mIHRoZSBjaGFuZ2VzOgpjb21taXQgNDk3ZmRkYjBiNjQ5Yjg5OWM0YmUxZWUyMzJiMDQwYjQ3ZTNlM2JjZApBdXRob3I6IHN5ei1jbHVzdGVyICZsdDt0cmlhZ2VAc3l6a2FsbGVyLmNvbSZndDsKRGF0ZTogICBXZWQgSnVsIDE1IDE4OjAwOjA4IDIwMjYgJiM0MzswMDAwCgogICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3CgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmMKaW5kZXggMmEwZDdlZmY4OGQzZmYuLjc3NjA0ZDZhYjQ2NjVlIDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jCiYjNDM7JiM0MzsmIzQzOyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmMKQEAgLTIxNDYsNyAmIzQzOzIxNDYsNiBAQCBzdGF0aWMgdm9pZCBfX2ZyZWVfZG1hX3J4X2Rlc2NfcmVzb3VyY2VzKHN0cnVjdCBzdG1tYWNfcHJpdiAqcHJpdiwKIAkJCQkJIHUzMiBxdWV1ZSkKIHsKIAlzdHJ1Y3Qgc3RtbWFjX3J4X3F1ZXVlICpyeF9xID0gJmFtcDtkbWFfY29uZi0mZ3Q7cnhfcXVldWVbcXVldWVdOwotCXNpemVfdCBzaXplOwogCXZvaWQgKmFkZHI7CiAKIAkvKiBSZWxlYXNlIHRoZSBETUEgUlggc29ja2V0IGJ1ZmZlcnMgKi8KQEAgLTIxNTgsMjIgJiM0MzsyMTU3LDI4IEBAIHN0YXRpYyB2b2lkIF9fZnJlZV9kbWFfcnhfZGVzY19yZXNvdXJjZXMoc3RydWN0IHN0bW1hY19wcml2ICpwcml2LAogCXJ4X3EtJmd0O2J1Zl9hbGxvY19udW0gPSAwOwogCXJ4X3EtJmd0O3hza19wb29sID0gTlVMTDsKIAotCS8qIEZyZWUgRE1BIHJlZ2lvbnMgb2YgY29uc2lzdGVudCBtZW1vcnkgcHJldmlvdXNseSBhbGxvY2F0ZWQgKi8KLQlpZiAocHJpdi0mZ3Q7ZXh0ZW5kX2Rlc2MpCiYjNDM7CWlmIChwcml2LSZndDtleHRlbmRfZGVzYykgewogCQlhZGRyID0gcnhfcS0mZ3Q7ZG1hX2VyeDsKLQllbHNlCiYjNDM7CQlyeF9xLSZndDtkbWFfZXJ4ID0gTlVMTDsKJiM0MzsJfSBlbHNlIHsKIAkJYWRkciA9IHJ4X3EtJmd0O2RtYV9yeDsKJiM0MzsJCXJ4X3EtJmd0O2RtYV9yeCA9IE5VTEw7CiYjNDM7CX0KIAotCXNpemUgPSBzdG1tYWNfZ2V0X3J4X2Rlc2Nfc2l6ZShwcml2KSAqIGRtYV9jb25mLSZndDtkbWFfcnhfc2l6ZTsKJiM0MzsJLyogRnJlZSBETUEgcmVnaW9ucyBvZiBjb25zaXN0ZW50IG1lbW9yeSBpZiBwcmV2aW91c2x5IGFsbG9jYXRlZCAqLwomIzQzOwlpZiAoYWRkcikgewomIzQzOwkJc2l6ZV90IHNpemU7CiYjNDM7CQlzaXplID0gc3RtbWFjX2dldF9yeF9kZXNjX3NpemUocHJpdikgKiBkbWFfY29uZi0mZ3Q7ZG1hX3J4X3NpemU7CiAKLQlkbWFfZnJlZV9jb2hlcmVudChwcml2LSZndDtkZXZpY2UsIHNpemUsIGFkZHIsIHJ4X3EtJmd0O2RtYV9yeF9waHkpOwomIzQzOwkJZG1hX2ZyZWVfY29oZXJlbnQocHJpdi0mZ3Q7ZGV2aWNlLCBzaXplLCBhZGRyLCByeF9xLSZndDtkbWFfcnhfcGh5KTsKJiM0MzsJfQogCiAJaWYgKHhkcF9yeHFfaW5mb19pc19yZWcoJmFtcDtyeF9xLSZndDt4ZHBfcnhxKSkKIAkJeGRwX3J4cV9pbmZvX3VucmVnKCZhbXA7cnhfcS0mZ3Q7eGRwX3J4cSk7CiAKIAlrZnJlZShyeF9xLSZndDtidWZfcG9vbCk7Ci0JaWYgKHJ4X3EtJmd0O3BhZ2VfcG9vbCkKLQkJcGFnZV9wb29sX2Rlc3Ryb3kocnhfcS0mZ3Q7cGFnZV9wb29sKTsKJiM0MzsJcGFnZV9wb29sX2Rlc3Ryb3kocnhfcS0mZ3Q7cGFnZV9wb29sKTsKJiM0MzsJcnhfcS0mZ3Q7cGFnZV9wb29sID0gTlVMTDsKIH0KIAogc3RhdGljIHZvaWQgZnJlZV9kbWFfcnhfZGVzY19yZXNvdXJjZXMoc3RydWN0IHN0bW1hY19wcml2ICpwcml2LApAQCAtMjE5OCw3ICYjNDM7MjIwMyw2IEBAIHN0YXRpYyB2b2lkIF9fZnJlZV9kbWFfdHhfZGVzY19yZXNvdXJjZXMoc3RydWN0IHN0bW1hY19wcml2ICpwcml2LAogCQkJCQkgdTMyIHF1ZXVlKQogewogCXN0cnVjdCBzdG1tYWNfdHhfcXVldWUgKnR4X3EgPSAmYW1wO2RtYV9jb25mLSZndDt0eF9xdWV1ZVtxdWV1ZV07Ci0Jc2l6ZV90IHNpemU7CiAJdm9pZCAqYWRkcjsKIAogCS8qIFJlbGVhc2UgdGhlIERNQSBUWCBzb2NrZXQgYnVmZmVycyAqLwpAQCAtMjIwNiwxNSAmIzQzOzIyMTAsMjEgQEAgc3RhdGljIHZvaWQgX19mcmVlX2RtYV90eF9kZXNjX3Jlc291cmNlcyhzdHJ1Y3Qgc3RtbWFjX3ByaXYgKnByaXYsCiAKIAlpZiAocHJpdi0mZ3Q7ZXh0ZW5kX2Rlc2MpIHsKIAkJYWRkciA9IHR4X3EtJmd0O2RtYV9ldHg7CiYjNDM7CQl0eF9xLSZndDtkbWFfZXR4ID0gTlVMTDsKIAl9IGVsc2UgaWYgKHR4X3EtJmd0O3RicyAmYW1wOyBTVE1NQUNfVEJTX0FWQUlMKSB7CiAJCWFkZHIgPSB0eF9xLSZndDtkbWFfZW50eDsKJiM0MzsJCXR4X3EtJmd0O2RtYV9lbnR4ID0gTlVMTDsKIAl9IGVsc2UgewogCQlhZGRyID0gdHhfcS0mZ3Q7ZG1hX3R4OwomIzQzOwkJdHhfcS0mZ3Q7ZG1hX3R4ID0gTlVMTDsKIAl9CiAKLQlzaXplID0gc3RtbWFjX2dldF90eF9kZXNjX3NpemUocHJpdiwgdHhfcSkgKiBkbWFfY29uZi0mZ3Q7ZG1hX3R4X3NpemU7CiYjNDM7CWlmIChhZGRyKSB7CiYjNDM7CQlzaXplX3Qgc2l6ZTsKJiM0MzsJCXNpemUgPSBzdG1tYWNfZ2V0X3R4X2Rlc2Nfc2l6ZShwcml2LCB0eF9xKSAqIGRtYV9jb25mLSZndDtkbWFfdHhfc2l6ZTsKIAotCWRtYV9mcmVlX2NvaGVyZW50KHByaXYtJmd0O2RldmljZSwgc2l6ZSwgYWRkciwgdHhfcS0mZ3Q7ZG1hX3R4X3BoeSk7CiYjNDM7CQlkbWFfZnJlZV9jb2hlcmVudChwcml2LSZndDtkZXZpY2UsIHNpemUsIGFkZHIsIHR4X3EtJmd0O2RtYV90eF9waHkpOwomIzQzOwl9CiAKIAlrZnJlZSh0eF9xLSZndDt0eF9za2J1ZmZfZG1hKTsKIAlrZnJlZSh0eF9xLSZndDt0eF9za2J1ZmYpOwo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4zLzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8xNSAxODowMDwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAyODM1CgkJCQkJCQlvdXRwdXQ6IDIwCgkJCQkJCQl0aG91Z2h0czogMjU3CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKkFuYWx5emluZyBhIERyaXZlciBQYXRjaDogTGlrZWx5IGEgTWVtb3J5IFNhZmV0eSBGaXgqKgoKT2theSwgc28gSSYjMzk7bSBsb29raW5nIGF0IHRoaXMgcGF0Y2ggaW4gYHN0bW1hY19tYWluLmNgLCBzcGVjaWZpY2FsbHkgZm9jdXNpbmcgb24gYF9fZnJlZV9kbWFfcnhfZGVzY19yZXNvdXJjZXNgIGFuZCBgX19mcmVlX2RtYV90eF9kZXNjX3Jlc291cmNlc2AuIEl0IHNlZW1zIGxpa2UgdGhleSYjMzk7dmUgYWRkZWQgYE5VTExgIGNoZWNrcyBhbmQgYXJlIHplcm9pbmcgb3V0IHBvaW50ZXJzIGFmdGVyIGZyZWVpbmcgdGhlIHJlc291cmNlcy4gRnVuY3Rpb25hbGx5LCB0aGlzIGlzIHByZXR0eSBjbGVhcjsgaXQmIzM5O3MgYSBnb29kIGRlZmVuc2l2ZSBwcm9ncmFtbWluZyBtZWFzdXJlLiBNeSBpbml0aWFsIHRob3VnaHQgaXMgdGhhdCB0aGlzIGlzIGFsbW9zdCBjZXJ0YWlubHkgYSBmaXggZm9yIGEgZG91YmxlLWZyZWUgb3IgYSB1c2UtYWZ0ZXItZnJlZSB2dWxuZXJhYmlsaXR5LCB3aGljaCBpcyBjb21tb24gaW4gbG93LWxldmVsIHJlc291cmNlIG1hbmFnZW1lbnQgbGlrZSB0aGlzLiBHb29kIGNhdGNoLgoKTm93LCBteSBtaW5kIHNoaWZ0cyB0byBmdXp6aW5nIHBvdGVudGlhbC4gSXQmIzM5O3MgYW4gRXRoZXJuZXQgZHJpdmVyLCBgc3RtbWFjYCBzcGVjaWZpY2FsbHksIHdoaWNoIHVzdWFsbHkgbWVhbnMgaGFyZHdhcmUgaW50ZXJhY3Rpb24uIFRoZXNlIGRyaXZlcnMgYXJlIG9mdGVuIGRpZmZpY3VsdCB0byBmdXp6IHVubGVzcyB0aGV5JiMzOTtyZSBkZXNpZ25lZCB3aXRoIHZpcnR1YWxpemF0aW9uIGluIG1pbmQgb3IgYXJlIHNvbWV3aGF0IGdlbmVyaWMuIEkgbmVlZCB0byBmaWd1cmUgb3V0IHRoZSBhdHRhY2sgc3VyZmFjZS4gQ2FuIEkgZ2V0IGF0IHRoaXMgd2l0aGluIGEgdmlydHVhbCBlbnZpcm9ubWVudD8gU3BlY2lmaWNhbGx5LCBpdCYjMzk7cyBhbiBTVE1pY3JvZWxlY3Ryb25pY3MgRXRoZXJuZXQgTUFDIGRyaXZlci4gSXQgaXMgdW5saWtlbHkgdG8gYmUgZWFzeSB0byBmdXp6ICpkaXJlY3RseSouCgpXYWl0IGEgbWludXRlLCBJIHJlbWVtYmVyIGBzdG1tYWNgIGNhbiBhbHNvIGJlIGEgcGxhdGZvcm0gZHJpdmVyIGFuZCBpdCBoYXMgUENJIGJpbmRpbmdzLiBUaGF0JiMzOTtzIGludGVyZXN0aW5nLCBpdCBtaWdodCBiZSBwb3NzaWJsZSB0byBhY2Nlc3MgdGhpcyB2aWEgUENJIGlmIGl0JiMzOTtzIGdvdCB0aGUgcmlnaHQgYmluZGluZ3MuIFRoaXMgZXhwYW5kcyBteSBvcHRpb25zLiBJJiMzOTtsbCBuZWVkIHRvIGRpZyBkZWVwZXIgaW50byB3aGV0aGVyIHRoZXJlJiMzOTtzIGEgUENJIHByb2JlIHBhdGggb3Igc29tZSBvdGhlciBtZXRob2QgdG8gcmVhY2ggdGhpcyBmdW5jdGlvbmFsaXR5LiBUaGUgUENJIGJpbmRpbmcgY2hhbmdlcyBldmVyeXRoaW5nOyBJIG5lZWQgdG8gZXhwbG9yZSB0aGF0IGF2ZW51ZSBmdXJ0aGVyLiBUaGlzIG1heSBiZSBmdXp6ZWFibGUgYWZ0ZXIgYWxsLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjQvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzE1IDE4OjAwPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O3N0bW1hY19wY2kmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7RG9jdW1lbnRhdGlvbi9uZXR3b3JraW5nL2RldmljZV9kcml2ZXJzL2V0aGVybmV0L3N0bWljcm8vc3RtbWFjLnJzdD0xMDc9c3ludGF4IChlLmcuIGZvciBQQ0kgbW9kdWxlKTo6XG5Eb2N1bWVudGF0aW9uL25ldHdvcmtpbmcvZGV2aWNlX2RyaXZlcnMvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMucnN0LTEwOC1cbkRvY3VtZW50YXRpb24vbmV0d29ya2luZy9kZXZpY2VfZHJpdmVycy9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy5yc3Q6MTA5OiAgICBtb2Rwcm9iZSBzdG1tYWNfcGNpIFtcdTAwM2NvcHRpb25cdTAwM2U9XHUwMDNjVkFMMVx1MDAzZSxcdTAwM2NWQUwyXHUwMDNlLC4uLl1cbkRvY3VtZW50YXRpb24vbmV0d29ya2luZy9kZXZpY2VfZHJpdmVycy9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy5yc3QtMTEwLVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL01ha2VmaWxlPTUzPW9iai0kKENPTkZJR19EV01BQ19NT1RPUkNPTU0pXHQmIzQzOz0gZHdtYWMtbW90b3Jjb21tLm9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL01ha2VmaWxlOjU0OnN0bW1hYy1wY2ktb2Jqczo9IHN0bW1hY19wY2kub1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWludGVsLmM9MjU9c3RydWN0IGludGVsX3ByaXZfZGF0YSB7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuYy0zOS0gKi9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWludGVsLmM6NDA6c3RydWN0IHN0bW1hY19wY2lfZnVuY19kYXRhIHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWludGVsLmMtNDEtXHR1bnNpZ25lZCBpbnQgZnVuYztcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbnRlbC5jLTQ0LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuYzo0NTpzdHJ1Y3Qgc3RtbWFjX3BjaV9kbWlfZGF0YSB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbnRlbC5jOjQ2Olx0Y29uc3Qgc3RydWN0IHN0bW1hY19wY2lfZnVuY19kYXRhICpmdW5jO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuYy00Ny1cdHNpemVfdCBuZnVuY3M7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuYy00OS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWludGVsLmM6NTA6c3RydWN0IHN0bW1hY19wY2lfaW5mbyB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbnRlbC5jLTUxLVx0aW50ICgqc2V0dXApKHN0cnVjdCBwY2lfZGV2ICpwZGV2LCBzdHJ1Y3QgcGxhdF9zdG1tYWNlbmV0X2RhdGEgKnBsYXQpO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWludGVsLmM9OTE9c3RhdGljIGNvbnN0IGludCBhZGxuX3Rzbl9sYW5lX3JlZ3NbXSA9IHs2fTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWludGVsLmMtOTItXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbnRlbC5jOjkzOnN0YXRpYyBpbnQgc3RtbWFjX3BjaV9maW5kX3BoeV9hZGRyKHN0cnVjdCBwY2lfZGV2ICpwZGV2LFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuYy05NC1cdFx0XHRcdCAgICBjb25zdCBzdHJ1Y3QgZG1pX3N5c3RlbV9pZCAqZG1pX2xpc3QpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbnRlbC5jLTk1LXtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWludGVsLmM6OTY6XHRjb25zdCBzdHJ1Y3Qgc3RtbWFjX3BjaV9mdW5jX2RhdGEgKmZ1bmNfZGF0YTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWludGVsLmM6OTc6XHRjb25zdCBzdHJ1Y3Qgc3RtbWFjX3BjaV9kbWlfZGF0YSAqZG1pX2RhdGE7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbnRlbC5jLTk4LVx0Y29uc3Qgc3RydWN0IGRtaV9zeXN0ZW1faWQgKmRtaV9pZDtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbnRlbC5jPTc1NT1zdGF0aWMgaW50IGVobF9zZ21paV9kYXRhKHN0cnVjdCBwY2lfZGV2ICpwZGV2LFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWludGVsLmMtNzc0LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuYzo3NzU6c3RhdGljIHN0cnVjdCBzdG1tYWNfcGNpX2luZm8gZWhsX3NnbWlpMWdfaW5mbyA9IHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWludGVsLmMtNzc2LVx0LnNldHVwID0gZWhsX3NnbWlpX2RhdGEsXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuYz03Nzk9c3RhdGljIGludCBlaGxfcmdtaWlfZGF0YShzdHJ1Y3QgcGNpX2RldiAqcGRldixcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbnRlbC5jLTc4OS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWludGVsLmM6NzkwOnN0YXRpYyBzdHJ1Y3Qgc3RtbWFjX3BjaV9pbmZvIGVobF9yZ21paTFnX2luZm8gPSB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbnRlbC5jLTc5MS1cdC5zZXR1cCA9IGVobF9yZ21paV9kYXRhLFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWludGVsLmM9ODEwPXN0YXRpYyBpbnQgZWhsX3BzZTBfcmdtaWkxZ19kYXRhKHN0cnVjdCBwY2lfZGV2ICpwZGV2LFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWludGVsLmMtODE2LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuYzo4MTc6c3RhdGljIHN0cnVjdCBzdG1tYWNfcGNpX2luZm8gZWhsX3BzZTBfcmdtaWkxZ19pbmZvID0ge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuYy04MTgtXHQuc2V0dXAgPSBlaGxfcHNlMF9yZ21paTFnX2RhdGEsXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuYz04MjE9c3RhdGljIGludCBlaGxfcHNlMF9zZ21paTFnX2RhdGEoc3RydWN0IHBjaV9kZXYgKnBkZXYsXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuYy04MzgtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbnRlbC5jOjgzOTpzdGF0aWMgc3RydWN0IHN0bW1hY19wY2lfaW5mbyBlaGxfcHNlMF9zZ21paTFnX2luZm8gPSB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbnRlbC5jLTg0MC1cdC5zZXR1cCA9IGVobF9wc2UwX3NnbWlpMWdfZGF0YSxcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbnRlbC5jPTg1OT1zdGF0aWMgaW50IGVobF9wc2UxX3JnbWlpMWdfZGF0YShzdHJ1Y3QgcGNpX2RldiAqcGRldixcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbnRlbC5jLTg2NS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWludGVsLmM6ODY2OnN0YXRpYyBzdHJ1Y3Qgc3RtbWFjX3BjaV9pbmZvIGVobF9wc2UxX3JnbWlpMWdfaW5mbyA9IHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWludGVsLmMtODY3LVx0LnNldHVwID0gZWhsX3BzZTFfcmdtaWkxZ19kYXRhLFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWludGVsLmM9ODcwPXN0YXRpYyBpbnQgZWhsX3BzZTFfc2dtaWkxZ19kYXRhKHN0cnVjdCBwY2lfZGV2ICpwZGV2LFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWludGVsLmMtODg3LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuYzo4ODg6c3RhdGljIHN0cnVjdCBzdG1tYWNfcGNpX2luZm8gZWhsX3BzZTFfc2dtaWkxZ19pbmZvID0ge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuYy04ODktXHQuc2V0dXAgPSBlaGxfcHNlMV9zZ21paTFnX2RhdGEsXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuYz05MTM9c3RhdGljIGludCB0Z2xfc2dtaWlfcGh5MF9kYXRhKHN0cnVjdCBwY2lfZGV2ICpwZGV2LFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWludGVsLmMtOTIxLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuYzo5MjI6c3RhdGljIHN0cnVjdCBzdG1tYWNfcGNpX2luZm8gdGdsX3NnbWlpMWdfcGh5MF9pbmZvID0ge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuYy05MjMtXHQuc2V0dXAgPSB0Z2xfc2dtaWlfcGh5MF9kYXRhLFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWludGVsLmM9OTI2PXN0YXRpYyBpbnQgdGdsX3NnbWlpX3BoeTFfZGF0YShzdHJ1Y3QgcGNpX2RldiAqcGRldixcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbnRlbC5jLTkzNC1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWludGVsLmM6OTM1OnN0YXRpYyBzdHJ1Y3Qgc3RtbWFjX3BjaV9pbmZvIHRnbF9zZ21paTFnX3BoeTFfaW5mbyA9IHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWludGVsLmMtOTM2LVx0LnNldHVwID0gdGdsX3NnbWlpX3BoeTFfZGF0YSxcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbnRlbC5jPTkzOT1zdGF0aWMgaW50IGFkbHNfc2dtaWlfcGh5MF9kYXRhKHN0cnVjdCBwY2lfZGV2ICpwZGV2LFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWludGVsLmMtOTQ4LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuYzo5NDk6c3RhdGljIHN0cnVjdCBzdG1tYWNfcGNpX2luZm8gYWRsc19zZ21paTFnX3BoeTBfaW5mbyA9IHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWludGVsLmMtOTUwLVx0LnNldHVwID0gYWRsc19zZ21paV9waHkwX2RhdGEsXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuYz05NTM9c3RhdGljIGludCBhZGxzX3NnbWlpX3BoeTFfZGF0YShzdHJ1Y3QgcGNpX2RldiAqcGRldixcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbnRlbC5jLTk2Mi1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWludGVsLmM6OTYzOnN0YXRpYyBzdHJ1Y3Qgc3RtbWFjX3BjaV9pbmZvIGFkbHNfc2dtaWkxZ19waHkxX2luZm8gPSB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbnRlbC5jLTk2NC1cdC5zZXR1cCA9IGFkbHNfc2dtaWlfcGh5MV9kYXRhLFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWludGVsLmM9OTkyPXN0YXRpYyBpbnQgYWRsbl9zZ21paV9waHkwX2RhdGEoc3RydWN0IHBjaV9kZXYgKnBkZXYsXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuYy0xMDEwLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuYzoxMDExOnN0YXRpYyBzdHJ1Y3Qgc3RtbWFjX3BjaV9pbmZvIGFkbG5fc2dtaWkxZ19waHkwX2luZm8gPSB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbnRlbC5jLTEwMTItXHQuc2V0dXAgPSBhZGxuX3NnbWlpX3BoeTBfZGF0YSxcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbnRlbC5jLTEwMTQtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbnRlbC5jOjEwMTU6c3RhdGljIGNvbnN0IHN0cnVjdCBzdG1tYWNfcGNpX2Z1bmNfZGF0YSBnYWxpbGVvX3N0bW1hY19mdW5jX2RhdGFbXSA9IHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWludGVsLmMtMTAxNi1cdHtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbnRlbC5jLTEwMjEtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbnRlbC5jOjEwMjI6c3RhdGljIGNvbnN0IHN0cnVjdCBzdG1tYWNfcGNpX2RtaV9kYXRhIGdhbGlsZW9fc3RtbWFjX2RtaV9kYXRhID0ge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuYy0xMDIzLVx0LmZ1bmMgPSBnYWxpbGVvX3N0bW1hY19mdW5jX2RhdGEsXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuYy0xMDI2LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuYzoxMDI3OnN0YXRpYyBjb25zdCBzdHJ1Y3Qgc3RtbWFjX3BjaV9mdW5jX2RhdGEgaW90MjA0MF9zdG1tYWNfZnVuY19kYXRhW10gPSB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbnRlbC5jLTEwMjgtXHR7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuYy0xMDM3LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuYzoxMDM4OnN0YXRpYyBjb25zdCBzdHJ1Y3Qgc3RtbWFjX3BjaV9kbWlfZGF0YSBpb3QyMDQwX3N0bW1hY19kbWlfZGF0YSA9IHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWludGVsLmMtMTAzOS1cdC5mdW5jID0gaW90MjA0MF9zdG1tYWNfZnVuY19kYXRhLFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWludGVsLmM9MTA3OD1zdGF0aWMgaW50IHF1YXJrX2RlZmF1bHRfZGF0YShzdHJ1Y3QgcGNpX2RldiAqcGRldixcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbnRlbC5jLTEwODgtXHQgKi9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWludGVsLmM6MTA4OTpcdHJldCA9IHN0bW1hY19wY2lfZmluZF9waHlfYWRkcihwZGV2LCBxdWFya19wY2lfZG1pKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWludGVsLmMtMTA5MC1cdGlmIChyZXQgXHUwMDNjIDApIHtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbnRlbC5jLTExMTMtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbnRlbC5jOjExMTQ6c3RhdGljIGNvbnN0IHN0cnVjdCBzdG1tYWNfcGNpX2luZm8gcXVhcmtfaW5mbyA9IHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWludGVsLmMtMTExNS1cdC5zZXR1cCA9IHF1YXJrX2RlZmF1bHRfZGF0YSxcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbnRlbC5jPTEyMzI9c3RhdGljIGludCBpbnRlbF9ldGhfcGNpX3Byb2JlKHN0cnVjdCBwY2lfZGV2ICpwZGV2LFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWludGVsLmMtMTIzNC17XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbnRlbC5jOjEyMzU6XHRzdHJ1Y3Qgc3RtbWFjX3BjaV9pbmZvICppbmZvID0gKHN0cnVjdCBzdG1tYWNfcGNpX2luZm8gKilpZC1cdTAwM2Vkcml2ZXJfZGF0YTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWludGVsLmMtMTIzNi1cdHN0cnVjdCBpbnRlbF9wcml2X2RhdGEgKmludGVsX3ByaXY7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtbG9vbmdzb24uYz03Nj1zdHJ1Y3QgbG9vbmdzb25fZGF0YSB7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtbG9vbmdzb24uYy04MS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWxvb25nc29uLmM6ODI6c3RydWN0IHN0bW1hY19wY2lfaW5mbyB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1sb29uZ3Nvbi5jLTgzLVx0aW50ICgqc2V0dXApKHN0cnVjdCBwY2lfZGV2ICpwZGV2LCBzdHJ1Y3QgcGxhdF9zdG1tYWNlbmV0X2RhdGEgKnBsYXQpO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWxvb25nc29uLmM9MTMyPXN0YXRpYyBpbnQgbG9vbmdzb25fZ21hY19kYXRhKHN0cnVjdCBwY2lfZGV2ICpwZGV2LFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWxvb25nc29uLmMtMTQxLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtbG9vbmdzb24uYzoxNDI6c3RhdGljIHN0cnVjdCBzdG1tYWNfcGNpX2luZm8gbG9vbmdzb25fZ21hY19wY2lfaW5mbyA9IHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWxvb25nc29uLmMtMTQzLVx0LnNldHVwID0gbG9vbmdzb25fZ21hY19kYXRhLFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWxvb25nc29uLmM9MTY1PXN0YXRpYyBpbnQgbG9vbmdzb25fZ25ldF9kYXRhKHN0cnVjdCBwY2lfZGV2ICpwZGV2LFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWxvb25nc29uLmMtMTc2LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtbG9vbmdzb24uYzoxNzc6c3RhdGljIHN0cnVjdCBzdG1tYWNfcGNpX2luZm8gbG9vbmdzb25fZ25ldF9wY2lfaW5mbyA9IHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWxvb25nc29uLmMtMTc4LVx0LnNldHVwID0gbG9vbmdzb25fZ25ldF9kYXRhLFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWxvb25nc29uLmM9NDk4PXN0YXRpYyBpbnQgbG9vbmdzb25fZHdtYWNfcHJvYmUoc3RydWN0IHBjaV9kZXYgKnBkZXYsIGNvbnN0IHN0cnVjdCBwY2lfZGV2aWNlX2lkICppZClcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1sb29uZ3Nvbi5jLTUwMS1cdHN0cnVjdCBzdG1tYWNfcmVzb3VyY2VzIHJlcyA9IHt9O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtbG9vbmdzb24uYzo1MDI6XHRzdHJ1Y3Qgc3RtbWFjX3BjaV9pbmZvICppbmZvO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtbG9vbmdzb24uYy01MDMtXHRzdHJ1Y3QgbG9vbmdzb25fZGF0YSAqbGQ7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtbG9vbmdzb24uYy01MzctXHRwbGF0LVx1MDAzZWZpeF9zb2NfcmVzZXQgPSBsb29uZ3Nvbl9kd21hY19maXhfcmVzZXQ7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1sb29uZ3Nvbi5jOjUzODpcdHBsYXQtXHUwMDNlc3VzcGVuZCA9IHN0bW1hY19wY2lfcGxhdF9zdXNwZW5kO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtbG9vbmdzb24uYzo1Mzk6XHRwbGF0LVx1MDAzZXJlc3VtZSA9IHN0bW1hY19wY2lfcGxhdF9yZXN1bWU7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1sb29uZ3Nvbi5jLTU0MC1cdGxkLVx1MDAzZWRldiA9IFx1MDAyNnBkZXYtXHUwMDNlZGV2O1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWxvb25nc29uLmMtNTQyLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtbG9vbmdzb24uYzo1NDM6XHRpbmZvID0gKHN0cnVjdCBzdG1tYWNfcGNpX2luZm8gKilpZC1cdTAwM2Vkcml2ZXJfZGF0YTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWxvb25nc29uLmMtNTQ0LVx0cmV0ID0gaW5mby1cdTAwM2VzZXR1cChwZGV2LCBwbGF0KTtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1tb3RvcmNvbW0uYz0xODg9c3RhdGljIGludCBtb3RvcmNvbW1fcmVzdW1lKHN0cnVjdCBkZXZpY2UgKmRldiwgdm9pZCAqYnNwX3ByaXYpXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtbW90b3Jjb21tLmMtMTkyLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtbW90b3Jjb21tLmM6MTkzOlx0cmV0ID0gc3RtbWFjX3BjaV9wbGF0X3Jlc3VtZShkZXYsIGJzcF9wcml2KTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLW1vdG9yY29tbS5jLTE5NC1cdGlmIChyZXQpXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtbW90b3Jjb21tLmM9MjA4PW1vdG9yY29tbV9kZWZhdWx0X3BsYXRfZGF0YShzdHJ1Y3QgcGNpX2RldiAqcGRldilcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1tb3RvcmNvbW0uYy0yNDgtXHRwbGF0LVx1MDAzZWNvcmVfdHlwZVx0XHQ9IERXTUFDX0NPUkVfR01BQzQ7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1tb3RvcmNvbW0uYzoyNDk6XHRwbGF0LVx1MDAzZXN1c3BlbmRcdFx0PSBzdG1tYWNfcGNpX3BsYXRfc3VzcGVuZDtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLW1vdG9yY29tbS5jLTI1MC1cdHBsYXQtXHUwMDNlcmVzdW1lXHRcdD0gbW90b3Jjb21tX3Jlc3VtZTtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbGlicGNpLmMtMTEtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbGlicGNpLmM6MTI6aW50IHN0bW1hY19wY2lfcGxhdF9zdXNwZW5kKHN0cnVjdCBkZXZpY2UgKmRldiwgdm9pZCAqYnNwX3ByaXYpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbGlicGNpLmMtMTMte1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19saWJwY2kuYy0yNS19XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbGlicGNpLmM6MjY6RVhQT1JUX1NZTUJPTF9HUEwoc3RtbWFjX3BjaV9wbGF0X3N1c3BlbmQpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX2xpYnBjaS5jLTI3LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX2xpYnBjaS5jOjI4OmludCBzdG1tYWNfcGNpX3BsYXRfcmVzdW1lKHN0cnVjdCBkZXZpY2UgKmRldiwgdm9pZCAqYnNwX3ByaXYpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbGlicGNpLmMtMjkte1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19saWJwY2kuYy00My19XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbGlicGNpLmM6NDQ6RVhQT1JUX1NZTUJPTF9HUEwoc3RtbWFjX3BjaV9wbGF0X3Jlc3VtZSk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbGlicGNpLmMtNDUtXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX2xpYnBjaS5oLTgtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbGlicGNpLmg6OTppbnQgc3RtbWFjX3BjaV9wbGF0X3N1c3BlbmQoc3RydWN0IGRldmljZSAqZGV2LCB2b2lkICpic3BfcHJpdik7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbGlicGNpLmg6MTA6aW50IHN0bW1hY19wY2lfcGxhdF9yZXN1bWUoc3RydWN0IGRldmljZSAqZGV2LCB2b2lkICpic3BfcHJpdik7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbGlicGNpLmgtMTEtXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX3BjaS5jLTE4LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX3BjaS5jOjE5OnN0cnVjdCBzdG1tYWNfcGNpX2luZm8ge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX3BjaS5jLTIwLVx0aW50ICgqc2V0dXApKHN0cnVjdCBwY2lfZGV2ICpwZGV2LCBzdHJ1Y3QgcGxhdF9zdG1tYWNlbmV0X2RhdGEgKnBsYXQpO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19wY2kuYz0zMz1zdGF0aWMgaW50IHN0bW1hY19kZWZhdWx0X2RhdGEoc3RydWN0IHBjaV9kZXYgKnBkZXYsXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX3BjaS5jLTQ5LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX3BjaS5jOjUwOnN0YXRpYyBjb25zdCBzdHJ1Y3Qgc3RtbWFjX3BjaV9pbmZvIHN0bW1hY19wY2lfaW5mbyA9IHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19wY2kuYy01MS1cdC5zZXR1cCA9IHN0bW1hY19kZWZhdWx0X2RhdGEsXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX3BjaS5jPTU0PXN0YXRpYyBpbnQgc25wc19nbWFjNV9kZWZhdWx0X2RhdGEoc3RydWN0IHBjaV9kZXYgKnBkZXYsXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX3BjaS5jLTEwMS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19wY2kuYzoxMDI6c3RhdGljIGNvbnN0IHN0cnVjdCBzdG1tYWNfcGNpX2luZm8gc25wc19nbWFjNV9wY2lfaW5mbyA9IHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19wY2kuYy0xMDMtXHQuc2V0dXAgPSBzbnBzX2dtYWM1X2RlZmF1bHRfZGF0YSxcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfcGNpLmMtMTA2LS8qKlxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX3BjaS5jOjEwNzogKiBzdG1tYWNfcGNpX3Byb2JlXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfcGNpLmMtMTA4LSAqXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX3BjaS5jLTExNy0gKi9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19wY2kuYzoxMTg6c3RhdGljIGludCBzdG1tYWNfcGNpX3Byb2JlKHN0cnVjdCBwY2lfZGV2ICpwZGV2LFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX3BjaS5jLTExOS1cdFx0XHQgICAgY29uc3Qgc3RydWN0IHBjaV9kZXZpY2VfaWQgKmlkKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX3BjaS5jLTEyMC17XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfcGNpLmM6MTIxOlx0c3RydWN0IHN0bW1hY19wY2lfaW5mbyAqaW5mbyA9IChzdHJ1Y3Qgc3RtbWFjX3BjaV9pbmZvICopaWQtXHUwMDNlZHJpdmVyX2RhdGE7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfcGNpLmMtMTIyLVx0c3RydWN0IHBsYXRfc3RtbWFjZW5ldF9kYXRhICpwbGF0O1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19wY2kuYy0xNzktXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfcGNpLmM6MTgwOlx0cGxhdC1cdTAwM2VzdXNwZW5kID0gc3RtbWFjX3BjaV9wbGF0X3N1c3BlbmQ7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfcGNpLmM6MTgxOlx0cGxhdC1cdTAwM2VyZXN1bWUgPSBzdG1tYWNfcGNpX3BsYXRfcmVzdW1lO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX3BjaS5jLTE4Mi1cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfcGNpLmMtMTg2LS8qKlxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX3BjaS5jOjE4NzogKiBzdG1tYWNfcGNpX3JlbW92ZVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX3BjaS5jLTE4OC0gKlxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19wY2kuYy0xOTEtICovXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfcGNpLmM6MTkyOnN0YXRpYyB2b2lkIHN0bW1hY19wY2lfcmVtb3ZlKHN0cnVjdCBwY2lfZGV2ICpwZGV2KVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX3BjaS5jLTE5My17XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX3BjaS5jPTIwMz1zdGF0aWMgY29uc3Qgc3RydWN0IHBjaV9kZXZpY2VfaWQgc3RtbWFjX2lkX3RhYmxlW10gPSB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfcGNpLmM6MjA0Olx0eyBQQ0lfREVWSUNFX0RBVEEoU1RNTUFDLCBTVE1NQUMsIFx1MDAyNnN0bW1hY19wY2lfaW5mbykgfSxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19wY2kuYzoyMDU6XHR7IFBDSV9ERVZJQ0VfREFUQShTVE1JQ1JPLCBNQUMsIFx1MDAyNnN0bW1hY19wY2lfaW5mbykgfSxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19wY2kuYy0yMDYtXHR7IFBDSV9ERVZJQ0VfREFUQShTWU5PUFNZUywgR01BQzVfSUQsIFx1MDAyNnNucHNfZ21hYzVfcGNpX2luZm8pIH0sXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX3BjaS5jPTIxMD1NT0RVTEVfREVWSUNFX1RBQkxFKHBjaSwgc3RtbWFjX2lkX3RhYmxlKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19wY2kuYy0yMTEtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfcGNpLmM6MjEyOnN0YXRpYyBzdHJ1Y3QgcGNpX2RyaXZlciBzdG1tYWNfcGNpX2RyaXZlciA9IHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19wY2kuYy0yMTMtXHQubmFtZSA9IFNUTU1BQ19SRVNPVVJDRV9OQU1FLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX3BjaS5jLTIxNC1cdC5pZF90YWJsZSA9IHN0bW1hY19pZF90YWJsZSxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19wY2kuYzoyMTU6XHQucHJvYmUgPSBzdG1tYWNfcGNpX3Byb2JlLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX3BjaS5jOjIxNjpcdC5yZW1vdmUgPSBzdG1tYWNfcGNpX3JlbW92ZSxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19wY2kuYy0yMTctXHQuZHJpdmVyICAgICAgICAgPSB7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX3BjaS5jLTIyMS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19wY2kuYzoyMjI6bW9kdWxlX3BjaV9kcml2ZXIoc3RtbWFjX3BjaV9kcml2ZXIpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX3BjaS5jLTIyMy1cbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD41LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8xNSAxODowMDwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAxMDgwNgoJCQkJCQkJb3V0cHV0OiAxOAoJCQkJCQkJdGhvdWdodHM6IDkyNgoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipSZWFjaGluZyB0aGUgYHN0bW1hY2AgRHJpdmVyIGluIGEgRnV6emluZyBDb250ZXh0KioKCk9rYXksIHNvIHRoZSBgc3RtbWFjYCBkcml2ZXIgaGFzIFBDSSBiaW5kaW5ncywgd2hpY2ggaW1tZWRpYXRlbHkgbWFrZXMgbWUgdGhpbmsgb2Ygc3l6a2FsbGVyIGFuZCBpdHMgUENJIGZ1enppbmcgY2FwYWJpbGl0aWVzLiBJIG5lZWQgdG8gZmlndXJlIG91dCBpZiBpdCYjMzk7cyBmZWFzaWJsZSB0byBmdXp6IHRoaXMgZHJpdmVyLiBJbml0aWFsbHksIEkgcmVtZW1iZXIgdGhhdCBzeXprYWxsZXIgZG9lc24mIzM5O3QganVzdCBzcGF3biAqYW55KiBQQ0kgZGV2aWNlLCB1bmxlc3MgUUVNVSBvciBzb21lIHNvZnR3YXJlIGVtdWxhdGlvbiBpcyBhdmFpbGFibGUuIEkmIzM5O20gcmVjYWxsaW5nIGB2aGNpYCBmb3IgVVNCLCBgbWFjODAyMTFfaHdzaW1gIGZvciB3aWZpIOKAkyB0aGVzZSBhcmUgc3BlY2lmaWMgY2FzZXMuCgpUaGVuLCBJIHJlbWVtYmVyIHN5emthbGxlciAqZG9lcyogaGF2ZSBzb21ldGhpbmcgbGlrZSBgc3l6X3BjaV9kZXZpY2VgIG9yIHNpbWlsYXIsIGJ1dCB0eXBpY2FsbHkgcmVsaWVzIG9uIHRoZSBkZXZpY2UgYmVpbmcgZW11bGF0ZWQgYnkgUUVNVS4gTm93IHRoZSBxdWVzdGlvbiBpczogZG9lcyBRRU1VIGVtdWxhdGUgYHN0bW1hY2A/IEkga25vdyBRRU1VIGhhcyBlbXVsYXRpb25zIGZvciB2YXJpb3VzIG5ldHdvcmsgZGV2aWNlcyBsaWtlIGBpZ2JgLCBgZTEwMDBgLCBhbmQgYHZpcnRpby1uZXRgLCBidXQgSSYjMzk7bSBub3QgaW1tZWRpYXRlbHkgc3VyZSBhYm91dCBgc3RtbWFjYC4KClRoZSBwcm9tcHQgc3BlY2lmaWNhbGx5IG1lbnRpb25zICYjMzQ7Q29kZSBwYXRocyB0aGF0IGFyZSBpbXBvc3NpYmxlIHRvIHJlYWNoIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIEdDRSBvciBRRU1VLCBldmVuIHdoZW4gdXRpbGl6aW5nIHNvZnR3YXJlLWVtdWxhdGVkIGhhcmR3YXJlJiMzNDsuIFNpbmNlIGBzdG1tYWNgIGlzIG9mdGVuIGEgcGxhdGZvcm0gZHJpdmVyIGZvciBzcGVjaWZpYyBTb0NzLCB0aGF0IHJhaXNlcyBhIGNvbmNlcm4uIEhvd2V2ZXIsIEkgcmVjYWxsIHRoYXQgYHN0bW1hY2AgaXMgYWN0dWFsbHkgKnZlcnkqIGNvbW1vbiDigJMgaXQmIzM5O3MgdGhlIFN5bm9wc3lzIERlc2lnbldhcmUgTUFDLCB3aGljaCBpcyB1c2VkIGluIGEgbG90IG9mIHBsYWNlcyAoSW50ZWwsIExvb25nc29uLCBldGMuKS4KCk5vdywgdGhlIHF1ZXN0aW9uIGlzIHdoZXRoZXIgc3l6a2FsbGVyIGNhbiByZWFjaCBpdC4gSSYjMzk7bSBjaXJjbGluZyBiYWNrIHRvIHRoZSBzeXprYWxsZXIgUENJIGluamVjdGlvbiBtZWNoYW5pc21zLiBBY3R1YWxseSwgc3l6a2FsbGVyICpkb2VzKiBoYXZlIGEgd2F5IHRvIGluamVjdCBQQ0kgZGV2aWNlcyBub3csIHJpZ2h0PyBObywgd2FpdCAtIHN5emthbGxlciB1c2VzIHZoY2kgZm9yIFVTQiwgYW5kIHNvbWV0aGluZyBlbHNlIGZvciBQQ0kuCgpUaGUgcHJvbXB0IGRpcmVjdHMgbWUgdG8gY29uc2lkZXIgcmVhY2hhYmlsaXR5IGluIFFFTVUgYW5kIHRoZSBjb3JlIGtlcm5lbCBsb2dpYy4gVGhlIHBhdGNoIGlzIG1vZGlmeWluZyBgX19mcmVlX2RtYV9yeF9kZXNjX3Jlc291cmNlc2AgYW5kIGBfX2ZyZWVfZG1hX3R4X2Rlc2NfcmVzb3VyY2VzYCwgd2hpY2ggYXJlIHJlbGF0ZWQgdG8gcmVzb3VyY2UgZnJlZWluZywgdXN1YWxseSB0cmlnZ2VyZWQgb24gZGV2aWNlIGNsb3NlIG9yIHJlc291cmNlIGRlYWxsb2NhdGlvbi4gVGhhdCBtZWFucyBpZiB0aGUgZGV2aWNlICpjYW4qIGJlIHByb2JlZCwgdGhpcyBjb2RlIGNhbiBiZSBoaXQuCgpTbywgdGhlIHJlYWwga2V5IHF1ZXN0aW9uIGlzIHdoZXRoZXIgYHN0bW1hY2AgY2FuIGJlIHByb2JlZCB3aXRoaW4gUUVNVS4gUUVNVSBkb2VzbiYjMzk7dCBoYXZlIGEgKmdlbmVyaWMqIGBzdG1tYWNgIGRldmljZSwgYnV0IG1heWJlIGl0JiMzOTtzIHVzZWQgaW4gc29tZSBBUk0tYmFzZWQgZW11bGF0aW9ucz8gRnJlZXNjYWxlIGkuTVggKGBpbXhgKSwgQWxsd2lubmVyLCBldGMuLCBhcmUgY2FuZGlkYXRlcy4gSSBrbm93IHRob3NlIGFyZSBlbXVsYXRlZCBpbiBRRU1VLgoKVGhlbiwgSSByZWNhbGwgdGhhdCBgc3RtbWFjYCBpcyBvZnRlbiB1c2VkIHZpYSBgZHdtYWNgIChEZXNpZ25XYXJlIE1BQykuIFFFTVUgZG9lcyBlbXVsYXRlIHRoaW5ncyBsaWtlIGBhbGx3aW5uZXItc3VuOGktZW1hY2AsIGBpbXhfZmVjYCwgYW5kIGBjYWRlbmNlX2dlbWAuIERvZXMgUUVNVSBlbXVsYXRlIGBkd21hY2A/IExldCBtZSBsb29rLi4uIFllcyEgUUVNVSAqZG9lcyogaGF2ZSBgaHcvbmV0L2Rlc2lnbndhcmUuY2AhIEFuZCBgc3RtbWFjYCBpcyB0aGUgZHJpdmVyIGZvciBEZXNpZ25XYXJlIE1BQy4KClRoZXJlZm9yZSwgaXQgKmNhbiogYmUgcmVhY2hlZCBpbiBRRU1VISBUaGUgbmV4dCBzdGVwIGlzIHRvIGZpbmQgdGhlIHJlbGV2YW50IGNvbmZpZ3VyYXRpb24gb3B0aW9ucy4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD42LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8xNSAxODowMDwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtjb25maWcgU1RNTUFDJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctMS0jIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wLW9ubHlcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc6Mjpjb25maWcgU1RNTUFDX0VUSFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy0zLVx0dHJpc3RhdGUgXCYjMzQ7U1RNaWNyb2VsZWN0cm9uaWNzIE11bHRpLUdpZ2FiaXQgRXRoZXJuZXQgZHJpdmVyXCYjMzQ7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZz0xOD1pZiBTVE1NQUNfRVRIXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTE5LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZzoyMDpjb25maWcgU1RNTUFDX1NFTEZURVNUU1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy0yMS1cdGJvb2wgXCYjMzQ7U3VwcG9ydCBmb3IgU1RNTUFDIFNlbGZ0ZXN0c1wmIzM0O1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctMjgtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnOjI5OmNvbmZpZyBTVE1NQUNfUExBVEZPUk1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctMzAtXHR0cmlzdGF0ZSBcJiMzNDtTVE1NQUMgUGxhdGZvcm0gYnVzIHN1cHBvcnRcJiMzNDtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnPTM3MT1lbmRpZiAjIFNUTU1BQ19QTEFURk9STVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy0zNzItXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnOjM3Mzpjb25maWcgU1RNTUFDX0xJQlBDSVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy0zNzQtXHR0cmlzdGF0ZVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc9Mzk4PWNvbmZpZyBEV01BQ19NT1RPUkNPTU1cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTQwNi1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc6NDA3OmNvbmZpZyBTVE1NQUNfUENJXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTQwOC1cdHRyaXN0YXRlIFwmIzM0O1NUTU1BQyBQQ0kgYnVzIHN1cHBvcnRcJiMzNDtcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD43LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8xNSAxODowMDwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAxMjk2MgoJCQkJCQkJb3V0cHV0OiAyNQoJCQkJCQkJdGhvdWdodHM6IDY2CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKkFuYWx5emluZyBTVE1NQUMgRHJpdmVyIENvbmZpZ3VyYXRpb25zKioKCk9rYXksIHNvIEkmIzM5O20gbG9va2luZyBhdCB0aGVzZSBTVE1NQUMgY29uZmlndXJhdGlvbnMg4oCTIGBTVE1NQUNfRVRIYCwgYFNUTU1BQ19QQ0lgLCBhbmQgYFNUTU1BQ19QTEFURk9STWAuIFNlZW1zIHByZXR0eSBzdHJhaWdodGZvcndhcmQsIGVhY2ggcmVwcmVzZW50aW5nIGEgZGlmZmVyZW50IGludGVyZmFjZSBvciBwbGF0Zm9ybSB0eXBlLiBNeSBpbW1lZGlhdGUgdGhvdWdodCBpcyB0byBkZWx2ZSBpbnRvIHRoZSBjb3JlIGRyaXZlciBmaWxlLCBgZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uY2AuIFRoYXQmIzM5O3Mgd2hlcmUgdGhlIGhlYXJ0IG9mIHRoaXMgdGhpbmcgbGlrZWx5IGJlYXRzLiBJIG5lZWQgdG8gdW5kZXJzdGFuZCB3aGljaCBmdW5jdGlvbnMgYXJlIGNvbmRpdGlvbmFsaXplZCBvciBtb2RpZmllZCBiYXNlZCBvbiB0aGVzZSBjb25maWd1cmF0aW9ucy4gV2hhdCBzcGVjaWZpYyBiZWhhdmlvcnMgb3IgYWRhcHRhdGlvbnMgYXJlIGluIHBsYWNlIGZvciBlYWNoIG9mIHRoZXNlIHRocmVlIG9wdGlvbnM/IEJ5IHBpbnBvaW50aW5nIHRob3NlLCBJIGNhbiBpZGVudGlmeSB0aGUga2V5IGFyZWFzIHRvIGZvY3VzIG9uIGFuZCB1bmRlcnN0YW5kIHRoZSBpbXBsaWNhdGlvbnMgb2YgZWFjaCBjb25maWd1cmF0aW9uLiBJdCYjMzk7cyBhbGwgYWJvdXQgdHJhY2luZyB0aGUgdmFyaWF0aW9ucyB3aXRoaW4gdGhlIG1haW4gZHJpdmVyIGFuZCBmaWd1cmluZyBvdXQgd2hhdCBjaGFuZ2VzIHVuZGVyIGVhY2ggY29uZGl0aW9uYWwgY29tcGlsYXRpb24gc2V0dGluZy4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD44LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8xNSAxODowMDwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtfX2ZyZWVfZG1hX3J4X2Rlc2NfcmVzb3VyY2VzJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmM9MjEyOT1zdGF0aWMgdm9pZCBzdG1tYWNfZnJlZV90eF9za2J1ZnMoc3RydWN0IHN0bW1hY19wcml2ICpwcml2KVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmMtMjEzOC0vKipcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmM6MjEzOTogKiBfX2ZyZWVfZG1hX3J4X2Rlc2NfcmVzb3VyY2VzIC0gZnJlZSBSWCBkbWEgZGVzYyByZXNvdXJjZXMgKHBlciBxdWV1ZSlcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmMtMjE0MC0gKiBAcHJpdjogcHJpdmF0ZSBzdHJ1Y3R1cmVcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jLTIxNDMtICovXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jOjIxNDQ6c3RhdGljIHZvaWQgX19mcmVlX2RtYV9yeF9kZXNjX3Jlc291cmNlcyhzdHJ1Y3Qgc3RtbWFjX3ByaXYgKnByaXYsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jLTIxNDUtXHRcdFx0XHRcdCBzdHJ1Y3Qgc3RtbWFjX2RtYV9jb25mICpkbWFfY29uZixcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jPTIxODQ9c3RhdGljIHZvaWQgZnJlZV9kbWFfcnhfZGVzY19yZXNvdXJjZXMoc3RydWN0IHN0bW1hY19wcml2ICpwcml2LFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmMtMjE5MS1cdGZvciAocXVldWUgPSAwOyBxdWV1ZSBcdTAwM2MgcnhfY291bnQ7IHF1ZXVlJiM0MzsmIzQzOylcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmM6MjE5MjpcdFx0X19mcmVlX2RtYV9yeF9kZXNjX3Jlc291cmNlcyhwcml2LCBkbWFfY29uZiwgcXVldWUpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYy0yMTkzLX1cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jPTcwMDY9dm9pZCBzdG1tYWNfZGlzYWJsZV9yeF9xdWV1ZShzdHJ1Y3Qgc3RtbWFjX3ByaXYgKnByaXYsIHUzMiBxdWV1ZSlcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jLTcwMTUtXHRzdG1tYWNfc3RvcF9yeF9kbWEocHJpdiwgcXVldWUpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYzo3MDE2Olx0X19mcmVlX2RtYV9yeF9kZXNjX3Jlc291cmNlcyhwcml2LCBcdTAwMjZwcml2LVx1MDAzZWRtYV9jb25mLCBxdWV1ZSk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jLTcwMTctfVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmM9NzAxOT12b2lkIHN0bW1hY19lbmFibGVfcnhfcXVldWUoc3RydWN0IHN0bW1hY19wcml2ICpwcml2LCB1MzIgcXVldWUpXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYy03MDMzLVx0aWYgKHJldCkge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYzo3MDM0Olx0XHRfX2ZyZWVfZG1hX3J4X2Rlc2NfcmVzb3VyY2VzKHByaXYsIFx1MDAyNnByaXYtXHUwMDNlZG1hX2NvbmYsIHF1ZXVlKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmMtNzAzNS1cdFx0bmV0ZGV2X2Vycihwcml2LVx1MDAzZWRldiwgXCYjMzQ7RmFpbGVkIHRvIGluaXQgUlggZGVzYy5cXG5cJiMzNDspO1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjkvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzE1IDE4OjAwPC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDE0MDg5CgkJCQkJCQlvdXRwdXQ6IDI1CgkJCQkJCQl0aG91Z2h0czogMzQ4CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKkFuYWx5emluZyBETUEgRGVzY3JpcHRvciBSZXNvdXJjZSBNYW5hZ2VtZW50KioKCk9rYXksIHNvIEkmIzM5O20gbG9va2luZyBhdCB0aGVzZSBmdW5jdGlvbnM6IGBfX2ZyZWVfZG1hX3J4X2Rlc2NfcmVzb3VyY2VzYCBhbmQgYF9fZnJlZV9kbWFfdHhfZGVzY19yZXNvdXJjZXNgLCBhbmQgaW1tZWRpYXRlbHkgSSByZWNvZ25pemUgdGhlaXIgaW1wb3J0YW5jZS4gVGhleSYjMzk7cmUgdGhlIGNvcmUgb2YgdGhlIGRlc2NyaXB0b3IgcmVzb3VyY2UgbWFuYWdlbWVudCwgYW5kIGl0IGxvb2tzIGxpa2UgdGhleSYjMzk7cmUgY2FsbGVkIGJ5IHRoZWlyIHJlc3BlY3RpdmUgd3JhcHBlciBmdW5jdGlvbnMsIGBmcmVlX2RtYV9yeF9kZXNjX3Jlc291cmNlc2AgYW5kIGBmcmVlX2RtYV90eF9kZXNjX3Jlc291cmNlc2AuIFRoZXNlIHdyYXBwZXJzIGFyZSB0aGVuIGNhbGxlZCBieSBgZnJlZV9kbWFfZGVzY19yZXNvdXJjZXNgLCB3aGljaCBpcyAqY3J1Y2lhbGx5KiBjYWxsZWQgZHVyaW5nIG5ldGRldiBjbG9zdXJlIChgc3RtbWFjX3JlbGVhc2VgKSBvciBkZXZpY2UgcmVtb3ZhbCAoYHN0bW1hY19kdnJfcmVtb3ZlYCkuIFRoYXQgbWFrZXMgc2Vuc2Ug4oCTIGNsZWFuIHVwIHdoZW4geW91JiMzOTtyZSBkb25lIHdpdGggdGhlIGRldmljZS4KCkJ1dCB0aGVuIHRoZXJlJiMzOTtzIGFuIGludGVyZXN0aW5nIHdyaW5rbGU6IGBfX2ZyZWVfZG1hX3J4X2Rlc2NfcmVzb3VyY2VzYCBpcyBhbHNvIGNhbGxlZCBieSBgc3RtbWFjX2Rpc2FibGVfcnhfcXVldWVgIGFuZCBgc3RtbWFjX2VuYWJsZV9yeF9xdWV1ZWAuICBUaGlzIHRlbGxzIG1lIHRoZXNlIGZ1bmN0aW9ucyBhcmUgbGlrZWx5IHRvIGJlIHJlYWNoYWJsZSBpZiB0aGUgZGV2aWNlIGNhbiBiZSBwcm9iZWQgYW5kIGluaXRpYWxpemVkLiBJZiB0aGlzIGlzIGEgZHJpdmVyLCB0aGUgY3JpdGljYWwgcGF0aCB3b3VsZCBiZSB0aGVyZS4KClNvLCB0aGUgdXBzaG90IGlzIHRoaXMgcGF0Y2ggaXMgZml4aW5nIGEgZG91YmxlIGZyZWUgb3IgdXNlLWFmdGVyLWZyZWUgc2l0dWF0aW9uLCBhbmQgaXQgZG9lcyBzbyBieSBzZXR0aW5nIHRoZSBmcmVlZCBwb2ludGVycyB0byBgTlVMTGAuIFNtYXJ0LiBOdWxsaWZ5aW5nIHRob3NlIHBvaW50ZXJzIGlzIHRoZSBzdGFuZGFyZCBhcHByb2FjaCB0byBwcmV2ZW50IHRob3NlIHZlcnkgaXNzdWVzLgoKTm93LCBsZXQmIzM5O3MgbmFpbCBkb3duIHdoYXQgc3ltYm9scyB3ZSBzaG91bGQgZm9jdXMgb24gZm9yIHRoaXMgZHJpdmVyOgpgX19mcmVlX2RtYV9yeF9kZXNjX3Jlc291cmNlc2AsIGBfX2ZyZWVfZG1hX3R4X2Rlc2NfcmVzb3VyY2VzYCwgYGZyZWVfZG1hX3J4X2Rlc2NfcmVzb3VyY2VzYCwgYGZyZWVfZG1hX3R4X2Rlc2NfcmVzb3VyY2VzYCwgYHN0bW1hY19kaXNhYmxlX3J4X3F1ZXVlYCwgYHN0bW1hY19lbmFibGVfcnhfcXVldWVgLCBgc3RtbWFjX2Rpc2FibGVfdHhfcXVldWVgLCBgc3RtbWFjX2VuYWJsZV90eF9xdWV1ZWAsIGBzdG1tYWNfcmVsZWFzZWAsIGBzdG1tYWNfb3BlbmAuCgpJJiMzOTtsbCBzdGFydCBieSBjaGVja2luZyB0aGUgY2FsbGVycyBvZiBgX19mcmVlX2RtYV90eF9kZXNjX3Jlc291cmNlc2AgdG8gdmVyaWZ5IHRoZSBwYXRjaCBzb2x2ZXMgdGhlIGlzc3VlcyB0aGF0IHdlcmUgcmFpc2VkLiBUaGlzIGlzIGRlZmluaXRlbHkgZnVuY3Rpb25hbCBhbmQgd29ydGggZnV6emluZy4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMC8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMTUgMTg6MDA8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7X19mcmVlX2RtYV90eF9kZXNjX3Jlc291cmNlcyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtkcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jPTIxODQ9c3RhdGljIHZvaWQgZnJlZV9kbWFfcnhfZGVzY19yZXNvdXJjZXMoc3RydWN0IHN0bW1hY19wcml2ICpwcml2LFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmMtMjE5NS0vKipcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmM6MjE5NjogKiBfX2ZyZWVfZG1hX3R4X2Rlc2NfcmVzb3VyY2VzIC0gZnJlZSBUWCBkbWEgZGVzYyByZXNvdXJjZXMgKHBlciBxdWV1ZSlcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmMtMjE5Ny0gKiBAcHJpdjogcHJpdmF0ZSBzdHJ1Y3R1cmVcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jLTIyMDAtICovXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jOjIyMDE6c3RhdGljIHZvaWQgX19mcmVlX2RtYV90eF9kZXNjX3Jlc291cmNlcyhzdHJ1Y3Qgc3RtbWFjX3ByaXYgKnByaXYsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jLTIyMDItXHRcdFx0XHRcdCBzdHJ1Y3Qgc3RtbWFjX2RtYV9jb25mICpkbWFfY29uZixcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jPTIyMzM9c3RhdGljIHZvaWQgZnJlZV9kbWFfdHhfZGVzY19yZXNvdXJjZXMoc3RydWN0IHN0bW1hY19wcml2ICpwcml2LFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmMtMjI0MC1cdGZvciAocXVldWUgPSAwOyBxdWV1ZSBcdTAwM2MgdHhfY291bnQ7IHF1ZXVlJiM0MzsmIzQzOylcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmM6MjI0MTpcdFx0X19mcmVlX2RtYV90eF9kZXNjX3Jlc291cmNlcyhwcml2LCBkbWFfY29uZiwgcXVldWUpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYy0yMjQyLX1cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jPTcwNTY9dm9pZCBzdG1tYWNfZGlzYWJsZV90eF9xdWV1ZShzdHJ1Y3Qgc3RtbWFjX3ByaXYgKnByaXYsIHUzMiBxdWV1ZSlcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jLTcwNjUtXHRzdG1tYWNfc3RvcF90eF9kbWEocHJpdiwgcXVldWUpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYzo3MDY2Olx0X19mcmVlX2RtYV90eF9kZXNjX3Jlc291cmNlcyhwcml2LCBcdTAwMjZwcml2LVx1MDAzZWRtYV9jb25mLCBxdWV1ZSk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jLTcwNjctfVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmM9NzA2OT12b2lkIHN0bW1hY19lbmFibGVfdHhfcXVldWUoc3RydWN0IHN0bW1hY19wcml2ICpwcml2LCB1MzIgcXVldWUpXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYy03MDgzLVx0aWYgKHJldCkge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYzo3MDg0Olx0XHRfX2ZyZWVfZG1hX3R4X2Rlc2NfcmVzb3VyY2VzKHByaXYsIFx1MDAyNnByaXYtXHUwMDNlZG1hX2NvbmYsIHF1ZXVlKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmMtNzA4NS1cdFx0bmV0ZGV2X2Vycihwcml2LVx1MDAzZWRldiwgXCYjMzQ7RmFpbGVkIHRvIGluaXQgVFggZGVzYy5cXG5cJiMzNDspO1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjExLzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8xNSAxODowMTwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAxNTc4NQoJCQkJCQkJb3V0cHV0OiAxOQoJCQkJCQkJdGhvdWdodHM6IDI1OAoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipNeSBBbmFseXNpcyBvZiBTVE1NQUMgRHJpdmVyIEZ1enppbmcgVGFyZ2V0cyBhbmQgQ29uZmlndXJhdGlvbnMqKgoKT2theSwgbGV0JiMzOTtzIGJyZWFrIHRoaXMgZG93bi4gTXkgZ29hbCBpcyB0byBkZXRlcm1pbmUgdGhlIG9wdGltYWwgY29uZmlndXJhdGlvbiBmb3IgZnV6emluZyB0aGUgU1RNTUFDIGRyaXZlci4gSSBuZWVkIHRvIGlkZW50aWZ5IHRoZSBrZXkgZnVuY3Rpb25zIHRoYXQgd2FycmFudCBhdHRlbnRpb24gYW5kIHRoZSBuZWNlc3NhcnkgYnVpbGQtdGltZSBjb25maWd1cmF0aW9ucyB0byBleHBvc2UgdGhlbS4KCkZpcnN0bHksIEkmIzM5O20gZm9jdXNpbmcgb24gdGhlc2Ugc3ltYm9sczogYF9fZnJlZV9kbWFfcnhfZGVzY19yZXNvdXJjZXNgLCBgX19mcmVlX2RtYV90eF9kZXNjX3Jlc291cmNlc2AsIGBzdG1tYWNfZGlzYWJsZV9yeF9xdWV1ZWAsIGBzdG1tYWNfZW5hYmxlX3J4X3F1ZXVlYCwgYHN0bW1hY19kaXNhYmxlX3R4X3F1ZXVlYCwgYW5kIGBzdG1tYWNfZW5hYmxlX3R4X3F1ZXVlYC4gVGhlc2UgYXBwZWFyIHRvIGJlIGNvcmUgcmVzb3VyY2UgbWFuYWdlbWVudCBhbmQgcXVldWUgY29udHJvbCBmdW5jdGlvbnMgd2l0aGluIHRoZSBkcml2ZXIsIG1ha2luZyB0aGVtIHByaW1lIHRhcmdldHMgZm9yIGZ1enppbmcuCgpOb3csIG9uIHRvIHRoZSBjb25maWdzLiBJIGluaXRpYWxseSB0aG91Z2h0IEkgbmVlZGVkIGFsbCB0aHJlZTogYFNUTU1BQ19FVEhgLCBgU1RNTUFDX1BDSWAsIGFuZCBgU1RNTUFDX1BMQVRGT1JNYC4gSG93ZXZlciwgY29uc2lkZXJpbmcgdGhlIHBvdGVudGlhbCBmdXp6aW5nIGVudmlyb25tZW50LCBlc3BlY2lhbGx5IGlmIGxldmVyYWdpbmcgUUVNVSBvciBzeXprYWxsZXImIzM5O3MgUENJIGZ1enplciwgYFNUTU1BQ19QQ0lgIHNlZW1zIHRoZSBtb3N0IGNyaXRpY2FsLiBgU1RNTUFDX1BMQVRGT1JNYCBtaWdodCBiZSByZWxldmFudCwgYnV0IFBDSSBpcyBsaWtlbHkgdGhlIG1haW4gbWV0aG9kIGZvciByZWFjaGluZyB0aGVzZSBmdW5jdGlvbnMgdGhyb3VnaCBmdXp6aW5nLiBUbyBiZSBzYWZlLCBJJiMzOTtsbCBpbmNsdWRlIGFsbCB0aHJlZTogYFNUTU1BQ19FVEhgLCBgU1RNTUFDX1BDSWAsIGFuZCBgU1RNTUFDX1BMQVRGT1JNYCwgZm9yIG5vdy4KCkxldCBtZSBkb3VibGUtY2hlY2sgZm9yIG90aGVyIHJlbGV2YW50IGNvbmZpZ3MsIGFzIEkgc2VlIHRoYXQgdGhlcmUgYXJlIGFsc28gc2V2ZXJhbCBQQ0kgdmFyaWFudHMgbGlrZSBgRFdNQUNfSU5URUxgLCBgRFdNQUNfTE9PTkdTT05gLCBhbmQgYERXTUFDX01PVE9SQ09NTWAuIEJ1dCB3YWl0LCBJIHJlY2FsbCB0aGF0IGBTVE1NQUNfUENJYCBzaG91bGQgYmUgc3VmZmljaWVudCB0byBidWlsZCBgc3RtbWFjX3BjaS5vYC4gSSYjMzk7bSBnb2luZyB0byBjb25maXJtIHRoYXQgYnkgY2hlY2tpbmcgYGRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL01ha2VmaWxlYC4gSSYjMzk7bGwgdmVyaWZ5IHRoYXQgYFNUTU1BQ19QQ0lgIGluZGVlZCBlbmFibGVzIHRoZSBjb21waWxhdGlvbiBvZiB0aGUgUENJLXNwZWNpZmljIHBhcnRzIG9mIHRoZSBkcml2ZXIuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTIvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzE1IDE4OjAxPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O1NUTU1BQ19QQ0kmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7RG9jdW1lbnRhdGlvbi9uZXR3b3JraW5nL2RldmljZV9kcml2ZXJzL2V0aGVybmV0L3N0bWljcm8vc3RtbWFjLnJzdD05OD1UaGUga2VybmVsIGNvbmZpZ3VyYXRpb24gb3B0aW9uIGlzIGBgQ09ORklHX1NUTU1BQ19FVEhgYDpcbkRvY3VtZW50YXRpb24vbmV0d29ya2luZy9kZXZpY2VfZHJpdmVycy9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy5yc3QtOTktIC0gYGBDT05GSUdfU1RNTUFDX1BMQVRGT1JNYGA6IGlzIHRvIGVuYWJsZSB0aGUgcGxhdGZvcm0gZHJpdmVyLlxuRG9jdW1lbnRhdGlvbi9uZXR3b3JraW5nL2RldmljZV9kcml2ZXJzL2V0aGVybmV0L3N0bWljcm8vc3RtbWFjLnJzdDoxMDA6IC0gYGBDT05GSUdfU1RNTUFDX1BDSWBgOiBpcyB0byBlbmFibGUgdGhlIHBjaSBkcml2ZXIuXG5Eb2N1bWVudGF0aW9uL25ldHdvcmtpbmcvZGV2aWNlX2RyaXZlcnMvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMucnN0LTEwMS1cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnPTM5OD1jb25maWcgRFdNQUNfTU9UT1JDT01NXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy00MDYtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnOjQwNzpjb25maWcgU1RNTUFDX1BDSVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy00MDgtXHR0cmlzdGF0ZSBcJiMzNDtTVE1NQUMgUENJIGJ1cyBzdXBwb3J0XCYjMzQ7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvTWFrZWZpbGU9NDk9b2JqLSQoQ09ORklHX1NUTU1BQ19MSUJQQ0kpXHQmIzQzOz0gc3RtbWFjX2xpYnBjaS5vXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9NYWtlZmlsZTo1MDpvYmotJChDT05GSUdfU1RNTUFDX1BDSSlcdCYjNDM7PSBzdG1tYWMtcGNpLm9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL01ha2VmaWxlLTUxLW9iai0kKENPTkZJR19EV01BQ19JTlRFTClcdCYjNDM7PSBkd21hYy1pbnRlbC5vXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTMvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzE1IDE4OjAxPC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDE2OTA1CgkJCQkJCQlvdXRwdXQ6IDE5CgkJCQkJCQl0aG91Z2h0czogNDUKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPk9rYXksIGhlcmUmIzM5O3MgbXkgaW50ZXJwcmV0YXRpb24gb2YgdGhvc2UgdGhvdWdodHMsIHN1bW1hcml6ZWQgaW4gdGhlIGZpcnN0IHBlcnNvbiwgYXNzdW1pbmcgdGhlIGF1ZGllbmNlIGlzIGFub3RoZXIgZXhwZXJ0OgoKKipVbmRlcnN0YW5kaW5nIHRoZSBTVE1NQUMgRHJpdmVyIEJ1aWxkIFByb2Nlc3MqKgoKUmlnaHQsIHNvIEkmIzM5O20gc2VlaW5nIHRoYXQgd2hlbiBgU1RNTUFDX1BDSWAgaXMgZW5hYmxlZCwgdGhlIGJ1aWxkIHN5c3RlbSBwcm9kdWNlcyBgc3RtbWFjLXBjaS5vYC4gQW5kLCBhcyBJIHdvdWxkIGV4cGVjdCwgdGhhdCBvYmplY3QgZmlsZSBpcyBhIGRpcmVjdCByZXN1bHQgb2YgY29tcGlsaW5nIHRoZSBzb3VyY2UgY29kZSBpbiBgc3RtbWFjX3BjaS5jYC4gVGhlIHJlbGF0aW9uc2hpcCBpcyBleGFjdGx5IHdoYXQgdGhlIG5hbWluZyBzdWdnZXN0cywgd2hpY2ggaXMgZ29vZC4gV2UgYXJlIGNsZWFybHkga2VlcGluZyB0aGluZ3Mgb3JnYW5pemVkLgoKQWxzbywgdGhlIGNvcmUgb2YgdGhlIGRyaXZlciBmdW5jdGlvbmFsaXR5LCB0aGUgZm91bmRhdGlvbiB0aGF0IGV2ZXJ5dGhpbmcgZGVwZW5kcyBvbiwgaXMgYnVpbHQgaW5kZXBlbmRlbnRseSB0aHJvdWdoIHRoZSBgU1RNTUFDX0VUSGAgY29uZmlndXJhdGlvbiBvcHRpb24uIE1ha2VzIHNlbnNlOyB0aGlzIGtlZXBzIHRoZSBQQ0ktc3BlY2lmaWMgcGFydHMgaXNvbGF0ZWQgd2hpbGUgYWxsb3dpbmcgdGhlIGNvbW1vbiBFdGhlcm5ldCBNQUMgbG9naWMgdG8gYmUgcmV1c2VkLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjE0LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8xNSAxODowMTwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtTVE1NQUNfRVRIJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O0RvY3VtZW50YXRpb24vbmV0d29ya2luZy9kZXZpY2VfZHJpdmVycy9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy5yc3Q9OTU9S2VybmVsIENvbmZpZ3VyYXRpb25cbi0tXG5Eb2N1bWVudGF0aW9uL25ldHdvcmtpbmcvZGV2aWNlX2RyaXZlcnMvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMucnN0LTk3LVxuRG9jdW1lbnRhdGlvbi9uZXR3b3JraW5nL2RldmljZV9kcml2ZXJzL2V0aGVybmV0L3N0bWljcm8vc3RtbWFjLnJzdDo5ODpUaGUga2VybmVsIGNvbmZpZ3VyYXRpb24gb3B0aW9uIGlzIGBgQ09ORklHX1NUTU1BQ19FVEhgYDpcbkRvY3VtZW50YXRpb24vbmV0d29ya2luZy9kZXZpY2VfZHJpdmVycy9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy5yc3QtOTktIC0gYGBDT05GSUdfU1RNTUFDX1BMQVRGT1JNYGA6IGlzIHRvIGVuYWJsZSB0aGUgcGxhdGZvcm0gZHJpdmVyLlxuLS1cbmFyY2gvYXJjL2NvbmZpZ3MvYXhzMTAxX2RlZmNvbmZpZz00ND1DT05GSUdfTkVUREVWSUNFUz15XG4tLVxuYXJjaC9hcmMvY29uZmlncy9heHMxMDFfZGVmY29uZmlnLTUxLSMgQ09ORklHX05FVF9WRU5ET1JfU0VFUSBpcyBub3Qgc2V0XG5hcmNoL2FyYy9jb25maWdzL2F4czEwMV9kZWZjb25maWc6NTI6Q09ORklHX1NUTU1BQ19FVEg9eVxuYXJjaC9hcmMvY29uZmlncy9heHMxMDFfZGVmY29uZmlnLTUzLSMgQ09ORklHX05FVF9WRU5ET1JfVklBIGlzIG5vdCBzZXRcbi0tXG5hcmNoL2FyYy9jb25maWdzL2F4czEwM19kZWZjb25maWc9NDQ9Q09ORklHX05FVERFVklDRVM9eVxuLS1cbmFyY2gvYXJjL2NvbmZpZ3MvYXhzMTAzX2RlZmNvbmZpZy01MS0jIENPTkZJR19ORVRfVkVORE9SX1NFRVEgaXMgbm90IHNldFxuYXJjaC9hcmMvY29uZmlncy9heHMxMDNfZGVmY29uZmlnOjUyOkNPTkZJR19TVE1NQUNfRVRIPXlcbmFyY2gvYXJjL2NvbmZpZ3MvYXhzMTAzX2RlZmNvbmZpZy01My0jIENPTkZJR19ORVRfVkVORE9SX1ZJQSBpcyBub3Qgc2V0XG4tLVxuYXJjaC9hcmMvY29uZmlncy9heHMxMDNfc21wX2RlZmNvbmZpZz00ND1DT05GSUdfTkVUREVWSUNFUz15XG4tLVxuYXJjaC9hcmMvY29uZmlncy9heHMxMDNfc21wX2RlZmNvbmZpZy01MS0jIENPTkZJR19ORVRfVkVORE9SX1NFRVEgaXMgbm90IHNldFxuYXJjaC9hcmMvY29uZmlncy9heHMxMDNfc21wX2RlZmNvbmZpZzo1MjpDT05GSUdfU1RNTUFDX0VUSD15XG5hcmNoL2FyYy9jb25maWdzL2F4czEwM19zbXBfZGVmY29uZmlnLTUzLSMgQ09ORklHX05FVF9WRU5ET1JfVklBIGlzIG5vdCBzZXRcbi0tXG5hcmNoL2FyYy9jb25maWdzL2hzZGtfZGVmY29uZmlnPTM3PUNPTkZJR19ORVRERVZJQ0VTPXlcbmFyY2gvYXJjL2NvbmZpZ3MvaHNka19kZWZjb25maWc6Mzg6Q09ORklHX1NUTU1BQ19FVEg9eVxuYXJjaC9hcmMvY29uZmlncy9oc2RrX2RlZmNvbmZpZy0zOS1DT05GSUdfTUlDUkVMX1BIWT15XG4tLVxuYXJjaC9hcmMvY29uZmlncy90YjEweF9kZWZjb25maWc9NDE9Q09ORklHX05FVERFVklDRVM9eVxuLS1cbmFyY2gvYXJjL2NvbmZpZ3MvdGIxMHhfZGVmY29uZmlnLTQ3LSMgQ09ORklHX05FVF9WRU5ET1JfU0VFUSBpcyBub3Qgc2V0XG5hcmNoL2FyYy9jb25maWdzL3RiMTB4X2RlZmNvbmZpZzo0ODpDT05GSUdfU1RNTUFDX0VUSD15XG5hcmNoL2FyYy9jb25maWdzL3RiMTB4X2RlZmNvbmZpZy00OS0jIENPTkZJR19ORVRfVkVORE9SX1dJWk5FVCBpcyBub3Qgc2V0XG4tLVxuYXJjaC9hcmMvY29uZmlncy92ZGtfaHMzOF9kZWZjb25maWc9Mzk9Q09ORklHX05FVERFVklDRVM9eVxuLS1cbmFyY2gvYXJjL2NvbmZpZ3MvdmRrX2hzMzhfZGVmY29uZmlnLTQ2LSMgQ09ORklHX05FVF9WRU5ET1JfU0VFUSBpcyBub3Qgc2V0XG5hcmNoL2FyYy9jb25maWdzL3Zka19oczM4X2RlZmNvbmZpZzo0NzpDT05GSUdfU1RNTUFDX0VUSD15XG5hcmNoL2FyYy9jb25maWdzL3Zka19oczM4X2RlZmNvbmZpZy00OC0jIENPTkZJR19ORVRfVkVORE9SX1ZJQSBpcyBub3Qgc2V0XG4tLVxuYXJjaC9hcmMvY29uZmlncy92ZGtfaHMzOF9zbXBfZGVmY29uZmlnPTQxPUNPTkZJR19ORVRERVZJQ0VTPXlcbi0tXG5hcmNoL2FyYy9jb25maWdzL3Zka19oczM4X3NtcF9kZWZjb25maWctNDgtIyBDT05GSUdfTkVUX1ZFTkRPUl9TRUVRIGlzIG5vdCBzZXRcbmFyY2gvYXJjL2NvbmZpZ3MvdmRrX2hzMzhfc21wX2RlZmNvbmZpZzo0OTpDT05GSUdfU1RNTUFDX0VUSD15XG5hcmNoL2FyYy9jb25maWdzL3Zka19oczM4X3NtcF9kZWZjb25maWctNTAtIyBDT05GSUdfTkVUX1ZFTkRPUl9WSUEgaXMgbm90IHNldFxuLS1cbmFyY2gvYXJtL2NvbmZpZ3MvbHBjMTh4eF9kZWZjb25maWc9NjE9Q09ORklHX05FVERFVklDRVM9eVxuLS1cbmFyY2gvYXJtL2NvbmZpZ3MvbHBjMTh4eF9kZWZjb25maWctNzYtIyBDT05GSUdfTkVUX1ZFTkRPUl9TTVNDIGlzIG5vdCBzZXRcbmFyY2gvYXJtL2NvbmZpZ3MvbHBjMTh4eF9kZWZjb25maWc6Nzc6Q09ORklHX1NUTU1BQ19FVEg9eVxuYXJjaC9hcm0vY29uZmlncy9scGMxOHh4X2RlZmNvbmZpZy03OC0jIENPTkZJR19ORVRfVkVORE9SX1ZJQSBpcyBub3Qgc2V0XG4tLVxuYXJjaC9hcm0vY29uZmlncy9tdWx0aV92N19kZWZjb25maWc9Mjc1PUNPTkZJR19TTklfQVZFPXlcbmFyY2gvYXJtL2NvbmZpZ3MvbXVsdGlfdjdfZGVmY29uZmlnOjI3NjpDT05GSUdfU1RNTUFDX0VUSD15XG5hcmNoL2FybS9jb25maWdzL211bHRpX3Y3X2RlZmNvbmZpZy0yNzctQ09ORklHX0RXTUFDX0RXQ19RT1NfRVRIPXlcbi0tXG5hcmNoL2FybS9jb25maWdzL3B4YV9kZWZjb25maWc9MTgyPUNPTkZJR19TTVNDOTExWD1tXG5hcmNoL2FybS9jb25maWdzL3B4YV9kZWZjb25maWc6MTgzOkNPTkZJR19TVE1NQUNfRVRIPW1cbmFyY2gvYXJtL2NvbmZpZ3MvcHhhX2RlZmNvbmZpZy0xODQtQ09ORklHX1BIWUxJQj15XG4tLVxuYXJjaC9hcm0vY29uZmlncy9zaG1vYmlsZV9kZWZjb25maWc9NTk9Q09ORklHX1NNU0M5MTFYPXlcbmFyY2gvYXJtL2NvbmZpZ3Mvc2htb2JpbGVfZGVmY29uZmlnOjYwOkNPTkZJR19TVE1NQUNfRVRIPXlcbmFyY2gvYXJtL2NvbmZpZ3Mvc2htb2JpbGVfZGVmY29uZmlnLTYxLSMgQ09ORklHX0RXTUFDX1JFTkVTQVNfR0JFVEggaXMgbm90IHNldFxuLS1cbmFyY2gvYXJtL2NvbmZpZ3Mvc29jZnBnYV9kZWZjb25maWc9NjY9Q09ORklHX0lYR0JFPW1cbmFyY2gvYXJtL2NvbmZpZ3Mvc29jZnBnYV9kZWZjb25maWc6Njc6Q09ORklHX1NUTU1BQ19FVEg9eVxuYXJjaC9hcm0vY29uZmlncy9zb2NmcGdhX2RlZmNvbmZpZy02OC1DT05GSUdfTUFSVkVMTF9QSFk9eVxuLS1cbmFyY2gvYXJtL2NvbmZpZ3Mvc3BlYXIxM3h4X2RlZmNvbmZpZz00Mz1DT05GSUdfTkVUREVWSUNFUz15XG4tLVxuYXJjaC9hcm0vY29uZmlncy9zcGVhcjEzeHhfZGVmY29uZmlnLTUxLSMgQ09ORklHX05FVF9WRU5ET1JfU01TQyBpcyBub3Qgc2V0XG5hcmNoL2FybS9jb25maWdzL3NwZWFyMTN4eF9kZWZjb25maWc6NTI6Q09ORklHX1NUTU1BQ19FVEg9eVxuYXJjaC9hcm0vY29uZmlncy9zcGVhcjEzeHhfZGVmY29uZmlnLTUzLSMgQ09ORklHX1dMQU4gaXMgbm90IHNldFxuLS1cbmFyY2gvYXJtL2NvbmZpZ3Mvc3BlYXIzeHhfZGVmY29uZmlnPTIzPUNPTkZJR19ORVRERVZJQ0VTPXlcbi0tXG5hcmNoL2FybS9jb25maWdzL3NwZWFyM3h4X2RlZmNvbmZpZy0zMS0jIENPTkZJR19ORVRfVkVORE9SX1NNU0MgaXMgbm90IHNldFxuYXJjaC9hcm0vY29uZmlncy9zcGVhcjN4eF9kZWZjb25maWc6MzI6Q09ORklHX1NUTU1BQ19FVEg9eVxuYXJjaC9hcm0vY29uZmlncy9zcGVhcjN4eF9kZWZjb25maWctMzMtIyBDT05GSUdfV0xBTiBpcyBub3Qgc2V0XG4tLVxuYXJjaC9hcm0vY29uZmlncy9zcGVhcjZ4eF9kZWZjb25maWc9MTk9Q09ORklHX05FVERFVklDRVM9eVxuLS1cbmFyY2gvYXJtL2NvbmZpZ3Mvc3BlYXI2eHhfZGVmY29uZmlnLTI3LSMgQ09ORklHX05FVF9WRU5ET1JfU01TQyBpcyBub3Qgc2V0XG5hcmNoL2FybS9jb25maWdzL3NwZWFyNnh4X2RlZmNvbmZpZzoyODpDT05GSUdfU1RNTUFDX0VUSD15XG5hcmNoL2FybS9jb25maWdzL3NwZWFyNnh4X2RlZmNvbmZpZy0yOS0jIENPTkZJR19XTEFOIGlzIG5vdCBzZXRcbi0tXG5hcmNoL2FybS9jb25maWdzL3N1bnhpX2RlZmNvbmZpZz0zNj1DT05GSUdfU1VONElfRU1BQz15XG4tLVxuYXJjaC9hcm0vY29uZmlncy9zdW54aV9kZWZjb25maWctNDgtIyBDT05GSUdfTkVUX1ZFTkRPUl9TTVNDIGlzIG5vdCBzZXRcbmFyY2gvYXJtL2NvbmZpZ3Mvc3VueGlfZGVmY29uZmlnOjQ5OkNPTkZJR19TVE1NQUNfRVRIPXlcbmFyY2gvYXJtL2NvbmZpZ3Mvc3VueGlfZGVmY29uZmlnLTUwLSMgQ09ORklHX05FVF9WRU5ET1JfVklBIGlzIG5vdCBzZXRcbi0tXG5hcmNoL2FybTY0L2NvbmZpZ3MvZGVmY29uZmlnPTQ0NT1DT05GSUdfU05JX05FVFNFQz1tXG5hcmNoL2FybTY0L2NvbmZpZ3MvZGVmY29uZmlnOjQ0NjpDT05GSUdfU1RNTUFDX0VUSD1tXG5hcmNoL2FybTY0L2NvbmZpZ3MvZGVmY29uZmlnLTQ0Ny1DT05GSUdfRFdNQUNfTUVESUFURUs9bVxuLS1cbmFyY2gvbG9vbmdhcmNoL2NvbmZpZ3MvbG9vbmdzb24zMl9kZWZjb25maWc9NjExPUNPTkZJR19SODE2OT15XG4tLVxuYXJjaC9sb29uZ2FyY2gvY29uZmlncy9sb29uZ3NvbjMyX2RlZmNvbmZpZy02MTktIyBDT05GSUdfTkVUX1ZFTkRPUl9TTVNDIGlzIG5vdCBzZXRcbmFyY2gvbG9vbmdhcmNoL2NvbmZpZ3MvbG9vbmdzb24zMl9kZWZjb25maWc6NjIwOkNPTkZJR19TVE1NQUNfRVRIPXlcbmFyY2gvbG9vbmdhcmNoL2NvbmZpZ3MvbG9vbmdzb24zMl9kZWZjb25maWctNjIxLSMgQ09ORklHX05FVF9WRU5ET1JfU1VOIGlzIG5vdCBzZXRcbi0tXG5hcmNoL2xvb25nYXJjaC9jb25maWdzL2xvb25nc29uNjRfZGVmY29uZmlnPTYyNz1DT05GSUdfUjgxNjk9eVxuLS1cbmFyY2gvbG9vbmdhcmNoL2NvbmZpZ3MvbG9vbmdzb242NF9kZWZjb25maWctNjM1LSMgQ09ORklHX05FVF9WRU5ET1JfU01TQyBpcyBub3Qgc2V0XG5hcmNoL2xvb25nYXJjaC9jb25maWdzL2xvb25nc29uNjRfZGVmY29uZmlnOjYzNjpDT05GSUdfU1RNTUFDX0VUSD15XG5hcmNoL2xvb25nYXJjaC9jb25maWdzL2xvb25nc29uNjRfZGVmY29uZmlnLTYzNy0jIENPTkZJR19ORVRfVkVORE9SX1NVTiBpcyBub3Qgc2V0XG4tLVxuYXJjaC9taXBzL2NvbmZpZ3MvY3UxMDAwLW5lb19kZWZjb25maWc9NDI9Q09ORklHX05FVERFVklDRVM9eVxuYXJjaC9taXBzL2NvbmZpZ3MvY3UxMDAwLW5lb19kZWZjb25maWc6NDM6Q09ORklHX1NUTU1BQ19FVEg9eVxuYXJjaC9taXBzL2NvbmZpZ3MvY3UxMDAwLW5lb19kZWZjb25maWctNDQtQ09ORklHX1NNU0NfUEhZPXlcbi0tXG5hcmNoL21pcHMvY29uZmlncy9jdTE4MzAtbmVvX2RlZmNvbmZpZz00NT1DT05GSUdfTkVUREVWSUNFUz15XG5hcmNoL21pcHMvY29uZmlncy9jdTE4MzAtbmVvX2RlZmNvbmZpZzo0NjpDT05GSUdfU1RNTUFDX0VUSD15XG5hcmNoL21pcHMvY29uZmlncy9jdTE4MzAtbmVvX2RlZmNvbmZpZy00Ny1DT05GSUdfSUNQTFVTX1BIWT15XG4tLVxuYXJjaC9taXBzL2NvbmZpZ3MvZ2VuZXJpYy9ib2FyZC1tYXJkdWsuY29uZmlnPTI1PUNPTkZJR19ORVRERVZJQ0VTPXlcbmFyY2gvbWlwcy9jb25maWdzL2dlbmVyaWMvYm9hcmQtbWFyZHVrLmNvbmZpZzoyNjpDT05GSUdfU1RNTUFDX0VUSD15XG5hcmNoL21pcHMvY29uZmlncy9nZW5lcmljL2JvYXJkLW1hcmR1ay5jb25maWctMjctQ09ORklHX1NUTU1BQ19QTEFURk9STT15XG4tLVxuYXJjaC9taXBzL2NvbmZpZ3MvZ2VuZXJpYy9ib2FyZC1uaTE2OTQ0NS5jb25maWc9MjY9Q09ORklHX05FVERFVklDRVM9eVxuYXJjaC9taXBzL2NvbmZpZ3MvZ2VuZXJpYy9ib2FyZC1uaTE2OTQ0NS5jb25maWc6Mjc6Q09ORklHX1NUTU1BQ19FVEg9eVxuYXJjaC9taXBzL2NvbmZpZ3MvZ2VuZXJpYy9ib2FyZC1uaTE2OTQ0NS5jb25maWctMjgtQ09ORklHX1NUTU1BQ19QTEFURk9STT15XG4tLVxuYXJjaC9taXBzL2NvbmZpZ3MvbG9vbmdzb24xX2RlZmNvbmZpZz01MT1DT05GSUdfTkVUREVWSUNFUz15XG4tLVxuYXJjaC9taXBzL2NvbmZpZ3MvbG9vbmdzb24xX2RlZmNvbmZpZy04OC0jIENPTkZJR19ORVRfVkVORE9SX1NPQ0lPTkVYVCBpcyBub3Qgc2V0XG5hcmNoL21pcHMvY29uZmlncy9sb29uZ3NvbjFfZGVmY29uZmlnOjg5OkNPTkZJR19TVE1NQUNfRVRIPXlcbmFyY2gvbWlwcy9jb25maWdzL2xvb25nc29uMV9kZWZjb25maWctOTAtIyBDT05GSUdfRFdNQUNfR0VORVJJQyBpcyBub3Qgc2V0XG4tLVxuYXJjaC9taXBzL2NvbmZpZ3MvbG9vbmdzb24ya19kZWZjb25maWc9MTc1PUNPTkZJR19SODE2OT15XG4tLVxuYXJjaC9taXBzL2NvbmZpZ3MvbG9vbmdzb24ya19kZWZjb25maWctMTgzLSMgQ09ORklHX05FVF9WRU5ET1JfU01TQyBpcyBub3Qgc2V0XG5hcmNoL21pcHMvY29uZmlncy9sb29uZ3NvbjJrX2RlZmNvbmZpZzoxODQ6Q09ORklHX1NUTU1BQ19FVEg9eVxuYXJjaC9taXBzL2NvbmZpZ3MvbG9vbmdzb24ya19kZWZjb25maWctMTg1LSMgQ09ORklHX05FVF9WRU5ET1JfU1VOIGlzIG5vdCBzZXRcbi0tXG5hcmNoL3Jpc2N2L2NvbmZpZ3MvZGVmY29uZmlnPTEzOT1DT05GSUdfUjgxNjk9eVxuYXJjaC9yaXNjdi9jb25maWdzL2RlZmNvbmZpZzoxNDA6Q09ORklHX1NUTU1BQ19FVEg9bVxuYXJjaC9yaXNjdi9jb25maWdzL2RlZmNvbmZpZy0xNDEtQ09ORklHX0RXTUFDX1RIRUFEPW1cbi0tXG5kcml2ZXJzL2dwaW8vZ3Bpb2xpYi1vZi5jPTM0Mz1zdGF0aWMgdm9pZCBvZl9ncGlvX2ZsYWdzX3F1aXJrcyhjb25zdCBzdHJ1Y3QgZGV2aWNlX25vZGUgKm5wLFxuLS1cbmRyaXZlcnMvZ3Bpby9ncGlvbGliLW9mLmMtMzk4LVx0LyogTGVnYWN5IGhhbmRsaW5nIG9mIHN0bW1hYyYjMzk7cyBhY3RpdmUtbG93IFBIWSByZXNldCBsaW5lICovXG5kcml2ZXJzL2dwaW8vZ3Bpb2xpYi1vZi5jOjM5OTpcdGlmIChJU19FTkFCTEVEKENPTkZJR19TVE1NQUNfRVRIKSBcdTAwMjZcdTAwMjZcbmRyaXZlcnMvZ3Bpby9ncGlvbGliLW9mLmMtNDAwLVx0ICAgICFzdHJjbXAocHJvcG5hbWUsIFwmIzM0O3NucHMscmVzZXQtZ3Bpb1wmIzM0OykgXHUwMDI2XHUwMDI2XG4tLVxuZHJpdmVycy9ncHUvZHJtL2NpL2FybTY0LmNvbmZpZz0zNj1DT05GSUdfRFdNQUNfUk9DS0NISVA9eVxuZHJpdmVycy9ncHUvZHJtL2NpL2FybTY0LmNvbmZpZzozNzpDT05GSUdfU1RNTUFDX0VUSD15XG5kcml2ZXJzL2dwdS9kcm0vY2kvYXJtNjQuY29uZmlnLTM4LUNPTkZJR19UWVBFQ19GVVNCMzAyPXlcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL01ha2VmaWxlLTUtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL01ha2VmaWxlOjY6b2JqLSQoQ09ORklHX1NUTU1BQ19FVEgpICYjNDM7PSBzdG1tYWMvXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy0xLSMgU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjAtb25seVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZzoyOmNvbmZpZyBTVE1NQUNfRVRIXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTMtXHR0cmlzdGF0ZSBcJiMzNDtTVE1pY3JvZWxlY3Ryb25pY3MgTXVsdGktR2lnYWJpdCBFdGhlcm5ldCBkcml2ZXJcJiMzNDtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTE3LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZzoxODppZiBTVE1NQUNfRVRIXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTE5LVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc9NDA3PWNvbmZpZyBTVE1NQUNfUENJXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy00MTktXHQgIElmIHVuc3VyZSwgc2F5IE4uXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnOjQyMDplbmRpZiAjIFNUTU1BQ19FVEhcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9NYWtlZmlsZS0xLSMgU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjBcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL01ha2VmaWxlOjI6b2JqLSQoQ09ORklHX1NUTU1BQ19FVEgpICYjNDM7PSBzdG1tYWMub1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvTWFrZWZpbGUtMy1zdG1tYWMtb2Jqczo9IHN0bW1hY19tYWluLm8gc3RtbWFjX2V0aHRvb2wubyBzdG1tYWNfbWRpby5vIHJpbmdfbW9kZS5vXHRcXFxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjE1LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8xNSAxODowMTwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAyMDY2OAoJCQkJCQkJb3V0cHV0OiAyMAoJCQkJCQkJdGhvdWdodHM6IDU0CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Pa2F5LCBoZXJlJiMzOTtzIG15IHRha2Ugb24gdGhvc2UgZGV2aWNlIGRyaXZlcnMuCgoqKkluaXRpYWwgQXNzZXNzbWVudCBhbmQgYSBRdWljayBQaXZvdCoqCgpBbHJpZ2h0LCBsb29raW5nIGF0IHRoZSBkcml2ZXIgbGFuZHNjYXBlLCBgU1RNTUFDX0VUSGAsIGBTVE1NQUNfUENJYCwgYW5kIGBTVE1NQUNfUExBVEZPUk1gIGltbWVkaWF0ZWx5IGNvbWUgdG8gbWluZC4gVGhleSBzZWVtIGxpa2Ugc29saWQgb3B0aW9ucyBmb3Igc3RhbmRhcmQgRXRoZXJuZXQgTUFDIGNvbnRyb2wuIE15IGluaXRpYWwgYXNzZXNzbWVudCBpcyBwb3NpdGl2ZSByZWdhcmRpbmcgdGhlc2UgZHJpdmVycy4KCkJ1dCwgYSBuYWdnaW5nIHF1ZXN0aW9uIHN1cmZhY2VzOiB3aGF0IGFib3V0IGBEV01BQ19HRU5FUklDYD8gSXQmIzM5O3MgYmVlbiBhIHdoaWxlIHNpbmNlIEkgc2VyaW91c2x5IGNvbnNpZGVyZWQgdGhhdCBvbmUuIEkmIzM5O2xsIG5lZWQgdG8gZHJpbGwgZG93biBpbnRvIGl0LiBCZXR0ZXIgY2hlY2sgdGhhdCBvbmUgb3V0LgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjE2LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8xNSAxODowMTwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtEV01BQ19HRU5FUklDJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2FyY2gvbWlwcy9jb25maWdzL2dlbmVyaWMvYm9hcmQtbmkxNjk0NDUuY29uZmlnPTI4PUNPTkZJR19TVE1NQUNfUExBVEZPUk09eVxuYXJjaC9taXBzL2NvbmZpZ3MvZ2VuZXJpYy9ib2FyZC1uaTE2OTQ0NS5jb25maWc6Mjk6Q09ORklHX0RXTUFDX0dFTkVSSUM9eVxuLS1cbmFyY2gvbWlwcy9jb25maWdzL2xvb25nc29uMV9kZWZjb25maWc9ODk9Q09ORklHX1NUTU1BQ19FVEg9eVxuYXJjaC9taXBzL2NvbmZpZ3MvbG9vbmdzb24xX2RlZmNvbmZpZzo5MDojIENPTkZJR19EV01BQ19HRU5FUklDIGlzIG5vdCBzZXRcbmFyY2gvbWlwcy9jb25maWdzL2xvb25nc29uMV9kZWZjb25maWctOTEtIyBDT05GSUdfTkVUX1ZFTkRPUl9TWU5PUFNZUyBpcyBub3Qgc2V0XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZz00ND1jb25maWcgRFdNQUNfRFdDX1FPU19FVEhcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTUxLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZzo1Mjpjb25maWcgRFdNQUNfR0VORVJJQ1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy01My1cdHRyaXN0YXRlIFwmIzM0O0dlbmVyaWMgZHJpdmVyIGZvciBEV01BQ1wmIzM0O1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL01ha2VmaWxlPTQxPW9iai0kKENPTkZJR19EV01BQ19MT09OR1NPTjEpXHQmIzQzOz0gZHdtYWMtbG9vbmdzb24xLm9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL01ha2VmaWxlOjQyOm9iai0kKENPTkZJR19EV01BQ19HRU5FUklDKVx0JiM0Mzs9IGR3bWFjLWdlbmVyaWMub1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvTWFrZWZpbGUtNDMtb2JqLSQoQ09ORklHX0RXTUFDX0lNWDgpXHQmIzQzOz0gZHdtYWMtaW14Lm9cbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xNy8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMTUgMTg6MDE8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMjEyOTEKCQkJCQkJCW91dHB1dDogMjEKCQkJCQkJCXRob3VnaHRzOiAxMjAKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqUmVmaW5pbmcgdGhlIE5ldHdvcmsgRHJpdmVyIENvbmZpZ3VyYXRpb24qKgoKT2theSwgSSBuZWVkIHRvIG1ha2Ugc29tZSBhZGRpdGlvbnMgdG8gdGhlIGNvbmZpZ3VyYXRpb24gb3B0aW9ucyBmb3IgdGhpcyBuZXR3b3JrIGRyaXZlci4gSSYjMzk7dmUgYWxyZWFkeSBpZGVudGlmaWVkIGEgZmV3LCBidXQgSSB0aGluayB3ZSBjYW4gYmUgbW9yZSBjb21wcmVoZW5zaXZlLiBMZXQmIzM5O3MgYWRkIGBEV01BQ19HRU5FUklDYCB0byB0aGUgbGlzdCBvZiBwb3RlbnRpYWwgY29uZmlndXJhdGlvbnMuCgpTbywgdG8gcmVjYXAsIHRoZSBjdXJyZW50IGNvbmZpZ3MgYXJlOiBgU1RNTUFDX0VUSGAsIGBTVE1NQUNfUENJYCwgYFNUTU1BQ19QTEFURk9STWAsIGFuZCBub3csIGBEV01BQ19HRU5FUklDYC4KCldhaXQgYSBtaW51dGUsIEkgYWxzbyByZWNhbGwgYERXTUFDX0lOVEVMYCBiZWluZyB1c2VmdWwgaW4gdGhlIGNvbnRleHQgb2YgUENJLiBJIHNob3VsZCBhZGQgdGhhdCBhcyB3ZWxsLgoKTm93LCBJJiMzOTttIHRoaW5raW5nIGFib3V0IHdoZXRoZXIgYFNUTU1BQ19QQ0lgIGFsb25lIGlzIHN1ZmZpY2llbnQgZm9yIFBDSSBzdXBwb3J0LCBvciBpZiBgRFdNQUNfSU5URUxgIGJyaW5ncyBzb21ldGhpbmcgbW9yZSBzcGVjaWZpYyB0byB0aGUgdGFibGUuIEFoIHllcywgYERXTUFDX0lOVEVMYCBwcm92aWRlcyBzcGVjaWZpYyBQQ0kgSURzLiBTbywgSSBuZWVkIHRvIG1ha2Ugc3VyZSBib3RoIGFyZSBjb25zaWRlcmVkIHdoZW4gc2V0dGluZyB0aGluZ3MgdXAuCgpKdXN0IHRvIGJlIGFic29sdXRlbHkgY2VydGFpbiwgSSBzaG91bGQgcmV2aXNpdCB0aGUgYHN0bW1hY19wY2kuY2AgZmlsZSB0byByZWZyZXNoIG15IG1lbW9yeSBhbmQgdmVyaWZ5IHRoZSBpbnRlcnBsYXkgYmV0d2VlbiB0aGVzZSBjb25maWd1cmF0aW9ucy4gSXTigJlzIGFsd2F5cyBnb29kIHRvIGJlIHRob3JvdWdoLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjE4LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8xNSAxODowMTwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtzdG1tYWNfaWRfdGFibGUmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX3BjaS5jPTE5Mj1zdGF0aWMgdm9pZCBzdG1tYWNfcGNpX3JlbW92ZShzdHJ1Y3QgcGNpX2RldiAqcGRldilcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfcGNpLmMtMjAyLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX3BjaS5jOjIwMzpzdGF0aWMgY29uc3Qgc3RydWN0IHBjaV9kZXZpY2VfaWQgc3RtbWFjX2lkX3RhYmxlW10gPSB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfcGNpLmMtMjA0LVx0eyBQQ0lfREVWSUNFX0RBVEEoU1RNTUFDLCBTVE1NQUMsIFx1MDAyNnN0bW1hY19wY2lfaW5mbykgfSxcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfcGNpLmMtMjA5LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX3BjaS5jOjIxMDpNT0RVTEVfREVWSUNFX1RBQkxFKHBjaSwgc3RtbWFjX2lkX3RhYmxlKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19wY2kuYy0yMTEtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfcGNpLmM9MjEyPXN0YXRpYyBzdHJ1Y3QgcGNpX2RyaXZlciBzdG1tYWNfcGNpX2RyaXZlciA9IHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19wY2kuYy0yMTMtXHQubmFtZSA9IFNUTU1BQ19SRVNPVVJDRV9OQU1FLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX3BjaS5jOjIxNDpcdC5pZF90YWJsZSA9IHN0bW1hY19pZF90YWJsZSxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19wY2kuYy0yMTUtXHQucHJvYmUgPSBzdG1tYWNfcGNpX3Byb2JlLFxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjE5LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8xNSAxODowMTwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAyMjE0NwoJCQkJCQkJb3V0cHV0OiAxOTUKCQkJCQkJCXRob3VnaHRzOiAzMzkKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqTXkgQW5hbHlzaXMgb2YgdGhlIFNUTU1BQyBEcml2ZXIgUGF0Y2gqKgoKT2theSwgc28gbG9va2luZyBhdCB0aGlzIHBhdGNoIGZvciB0aGUgYHN0bW1hY2AgZHJpdmVyLCBJIHNlZSB0aGF0IHdlJiMzOTtyZSBkZWFsaW5nIHdpdGggcmVzb3VyY2UgbWFuYWdlbWVudCwgc3BlY2lmaWNhbGx5IGFyb3VuZCBETUEgZGVzY3JpcHRvcnMuICBUaGUga2V5IGhlcmUgaXMgdGhhdCB0aGV5JiMzOTtyZSBjbGVhbmluZyB1cCBwb2ludGVycyAqYWZ0ZXIqIGZyZWVpbmcgdGhlc2UgZGVzY3JpcHRvcnMsIHdoaWNoIGlzIGNyaXRpY2FsIHRvIHByZXZlbnRpbmcgZG91YmxlLWZyZWVzIGFuZCB1c2UtYWZ0ZXItZnJlZSB2dWxuZXJhYmlsaXRpZXMuIFRoaXMgaXMgYSBjb21tb24gYW5kIGltcG9ydGFudCBjbGFzcyBvZiBidWdzLCBlc3BlY2lhbGx5IGluIGRyaXZlcnMuCgpJJiMzOTt2ZSBjb25maXJtZWQgdGhhdCBgU1RNTUFDX1BDSWAgaXMgdGhlIHJlbGV2YW50IFBDSSBJRCB0byBub3RlLgoKTGV0IG1lIGJyZWFrIGRvd24gdGhlIGNyaXRpY2FsIGFzcGVjdHMgZm9yIGZ1enppbmc6CgoqICAgKipXb3J0aEZ1enppbmc6IHRydWUqKiDigJMgQWJzb2x1dGVseSwgdGhpcyBpcyBhIHByaW1lIGNhbmRpZGF0ZS4gUmVzb3VyY2UgbWFuYWdlbWVudCBpc3N1ZXMgYXJlIGV4Y2VsbGVudCBmdXp6IHRhcmdldHMuCgoqICAgKipSZWFzb25pbmc6KiogVGhlIHBhdGNoJiMzOTtzIGZvY3VzIG9uIGZpeGluZyBETUEgZGVzY3JpcHRvciBwb2ludGVyIGNsZWFudXAgZGlyZWN0bHkgYWRkcmVzc2VzIGEgc2lnbmlmaWNhbnQgcG90ZW50aWFsIGZvciBtZW1vcnkgY29ycnVwdGlvbi4gVGhlIGRyaXZlciYjMzk7cyBhY2Nlc3NpYmlsaXR5IHRocm91Z2ggdmlydHVhbGl6ZWQgUENJIGRldmljZXMgYW5kIHBsYXRmb3JtIGRldmljZXMgKGxpa2UgUUVNVSYjMzk7cyBkZXNpZ253YXJlIE1BQykgbWFrZXMgaXQgZmVhc2libGUgdG8gdGFyZ2V0IHdpdGggZnV6emluZy4KCiogICAqKkZvY3VzU3ltYm9sczoqKiBJJiMzOTtsbCByZWZpbmUgdGhpcyBsaXN0IGEgYml0LCBhcyBgZnJlZV9kbWFfcngvdHhfZGVzY19yZXNvdXJjZXNgIGFyZSBqdXN0IHdyYXBwZXJzLiBUaGUgbWFpbiBmdW5jdGlvbnMgYWZmZWN0ZWQgYXJlIHRoZSBvbmVzIHByZWZpeGVkIHdpdGggYF9fYDoKCiAgICAqICAgYF9fZnJlZV9kbWFfcnhfZGVzY19yZXNvdXJjZXNgCiAgICAqICAgYF9fZnJlZV9kbWFfdHhfZGVzY19yZXNvdXJjZXNgCiAgICAqICAgYHN0bW1hY19kaXNhYmxlX3J4X3F1ZXVlYAogICAgKiAgIGBzdG1tYWNfZW5hYmxlX3J4X3F1ZXVlYAogICAgKiAgIGBzdG1tYWNfZGlzYWJsZV90eF9xdWV1ZWAKICAgICogICBgc3RtbWFjX2VuYWJsZV90eF9xdWV1ZWAKCiogICAqKkVuYWJsZUNvbmZpZ3M6KiogSXQmIzM5O3MgaW1wb3J0YW50IHRvIGtlZXAgdGhlc2UgaW4gbWluZCB3aGVuIHNldHRpbmcgdXAgZnV6emluZyBjb25maWd1cmF0aW9ucy4gV2UgbmVlZCB0byBiZSBhYmxlIHRvIGVuYWJsZSB0aGUgcmVsZXZhbnQgY29uZmlndXJhdGlvbnMgZm9yIHRoZSBkcml2ZXIgdG8gYmUgcHJlc2VudDoKCiAgICAqICAgYFNUTU1BQ19FVEhgCiAgICAqICAgYFNUTU1BQ19QQ0lgCiAgICAqICAgYFNUTU1BQ19QTEFURk9STWAKICAgICogICBgRFdNQUNfR0VORVJJQ2AKCkkgc2hvdWxkIGJlIGFibGUgdG8gZ2V0IGEgc29saWQgdGVzdCBoYXJuZXNzIGdvaW5nIHdpdGggdGhhdC4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4yMC8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMTUgMTg6MDE8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5zZXQtcmVzdWx0czwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O1NUTU1BQ19FVEgmIzM0OywKICAgICYjMzQ7U1RNTUFDX1BDSSYjMzQ7LAogICAgJiMzNDtTVE1NQUNfUExBVEZPUk0mIzM0OywKICAgICYjMzQ7RFdNQUNfR0VORVJJQyYjMzQ7CiAgXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbCiAgICAmIzM0O19fZnJlZV9kbWFfcnhfZGVzY19yZXNvdXJjZXMmIzM0OywKICAgICYjMzQ7X19mcmVlX2RtYV90eF9kZXNjX3Jlc291cmNlcyYjMzQ7LAogICAgJiMzNDtzdG1tYWNfZGlzYWJsZV9yeF9xdWV1ZSYjMzQ7LAogICAgJiMzNDtzdG1tYWNfZW5hYmxlX3J4X3F1ZXVlJiMzNDssCiAgICAmIzM0O3N0bW1hY19kaXNhYmxlX3R4X3F1ZXVlJiMzNDssCiAgICAmIzM0O3N0bW1hY19lbmFibGVfdHhfcXVldWUmIzM0OwogIF0sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggZml4ZXMgYSBwb3RlbnRpYWwgZG91YmxlLWZyZWUgb3IgdXNlLWFmdGVyLWZyZWUgaXNzdWUgaW4gdGhlIHN0bW1hYyBkcml2ZXIgYnkgcHJvcGVybHkgY2xlYXJpbmcgcG9pbnRlcnMgYWZ0ZXIgZnJlZWluZyBETUEgZGVzY3JpcHRvcnMuIFRoZSBkcml2ZXIgY2FuIGJlIHJlYWNoZWQgdmlhIHZpcnR1YWxpemVkIFBDSSBkZXZpY2VzIG9yIHBsYXRmb3JtIGRldmljZXMgKGUuZy4sIFFFTVUgZGVzaWdud2FyZSBNQUMgZW11bGF0aW9uKS4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiB0cnVlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IFsKICAgICYjMzQ7U1RNTUFDX0VUSCYjMzQ7LAogICAgJiMzNDtTVE1NQUNfUENJJiMzNDssCiAgICAmIzM0O1NUTU1BQ19QTEFURk9STSYjMzQ7LAogICAgJiMzNDtEV01BQ19HRU5FUklDJiMzNDsKICBdLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFsKICAgICYjMzQ7X19mcmVlX2RtYV9yeF9kZXNjX3Jlc291cmNlcyYjMzQ7LAogICAgJiMzNDtfX2ZyZWVfZG1hX3R4X2Rlc2NfcmVzb3VyY2VzJiMzNDssCiAgICAmIzM0O3N0bW1hY19kaXNhYmxlX3J4X3F1ZXVlJiMzNDssCiAgICAmIzM0O3N0bW1hY19lbmFibGVfcnhfcXVldWUmIzM0OywKICAgICYjMzQ7c3RtbWFjX2Rpc2FibGVfdHhfcXVldWUmIzM0OywKICAgICYjMzQ7c3RtbWFjX2VuYWJsZV90eF9xdWV1ZSYjMzQ7CiAgXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBmaXhlcyBhIHBvdGVudGlhbCBkb3VibGUtZnJlZSBvciB1c2UtYWZ0ZXItZnJlZSBpc3N1ZSBpbiB0aGUgc3RtbWFjIGRyaXZlciBieSBwcm9wZXJseSBjbGVhcmluZyBwb2ludGVycyBhZnRlciBmcmVlaW5nIERNQSBkZXNjcmlwdG9ycy4gVGhlIGRyaXZlciBjYW4gYmUgcmVhY2hlZCB2aWEgdmlydHVhbGl6ZWQgUENJIGRldmljZXMgb3IgcGxhdGZvcm0gZGV2aWNlcyAoZS5nLiwgUUVNVSBkZXNpZ253YXJlIE1BQyBlbXVsYXRpb24pLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IHRydWUKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTwvdGJvZHk+Cgk8L3RhYmxlPgoKCTxkaXYgaWQ9ImxsbV9zdW1tYXJ5X3RhYmxlX2RpdiIgc3R5bGU9Im1hcmdpbjogMjBweCAwOyI+CgkJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQkJPGNhcHRpb24+TExNIENhbGxzIFN1bW1hcnk6PC9jYXB0aW9uPgoJCQk8dGhlYWQ+CgkJCQk8dHI+CgkJCQkJPHRoPlRvdGFsIENhbGxzPC90aD4KCQkJCQk8dGg+VG90YWwgVG9rZW5zPC90aD4KCQkJCQk8dGg+QXZnIFRva2VuczwvdGg+CgkJCQkJPHRoPlRvdGFsIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQkJPHRoPkF2ZyBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJPC90cj4KCQkJPC90aGVhZD4KCQkJPHRib2R5IGlkPSJsbG1fc3VtbWFyeV9zdGF0c19ib2R5Ij48L3Rib2R5PgoJCTwvdGFibGU+Cgk8L2Rpdj4KCgk8ZGl2IGlkPSJ0b29sX3N1bW1hcnlfdGFibGVfZGl2IiBzdHlsZT0ibWFyZ2luOiAyMHB4IDA7Ij4KCQk8dGFibGUgY2xhc3M9Imxpc3RfdGFibGUiPgoJCQk8Y2FwdGlvbj5Ub29sIENhbGxzIFN1bW1hcnk6PC9jYXB0aW9uPgoJCQk8dGhlYWQ+CgkJCQk8dHI+CgkJCQkJPHRoPlRvdGFsIENhbGxzPC90aD4KCQkJCQk8dGg+VG90YWwgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCQk8dGg+QXZnIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQk8L3RyPgoJCQk8L3RoZWFkPgoJCQk8dGJvZHkgaWQ9InRvb2xfc3VtbWFyeV9zdGF0c19ib2R5Ij48L3Rib2R5PgoJCTwvdGFibGU+Cgk8L2Rpdj4KCgk8ZGl2IGlkPSJkdXJhdGlvbl9jaGFydF9kaXYiIHN0eWxlPSJ3aWR0aDogMTAwJTsgbWFyZ2luOiAyMHB4IDA7IGJvcmRlcjogMXB4OyI+PC9kaXY+Cgk8ZGl2IGlkPSJ0b2tlbl9jaGFydF9kaXYiIHN0eWxlPSJ3aWR0aDogMTAwJTsgbWFyZ2luOiAyMHB4IDA7IGJvcmRlcjogMXB4OyI+PC9kaXY+CgoJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iaHR0cHM6Ly93d3cuZ29vZ2xlLmNvbS9qc2FwaSI+PC9zY3JpcHQ+Cgk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+CgkJZ29vZ2xlLmxvYWQoInZpc3VhbGl6YXRpb24iLCAiMSIsIHtwYWNrYWdlczpbImNvcmVjaGFydCJdfSk7CgkJZ29vZ2xlLnNldE9uTG9hZENhbGxiYWNrKGRyYXdDaGFydHMpOwoKCQlmdW5jdGlvbiBkcmF3Q2hhcnRzKCkgewoJCQljb25zdCByYXdEYXRhID0gW3siU3RhcnRlZCI6IjIwMjYtMDctMTVUMTg6MDA6MTAuNTM3MjY3MjUzWiIsIlNlcSI6MCwiTmVzdGluZyI6MCwiVHlwZSI6ImZsb3ciLCJOYW1lIjoicGF0Y2gtdHJpYWdlIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MTAzMzEwOTI0MTIxLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IFtcbiAgICBcIlNUTU1BQ19FVEhcIixcbiAgICBcIlNUTU1BQ19QQ0lcIixcbiAgICBcIlNUTU1BQ19QTEFURk9STVwiLFxuICAgIFwiRFdNQUNfR0VORVJJQ1wiXG4gIF0sXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtcbiAgICBcIl9fZnJlZV9kbWFfcnhfZGVzY19yZXNvdXJjZXNcIixcbiAgICBcIl9fZnJlZV9kbWFfdHhfZGVzY19yZXNvdXJjZXNcIixcbiAgICBcInN0bW1hY19kaXNhYmxlX3J4X3F1ZXVlXCIsXG4gICAgXCJzdG1tYWNfZW5hYmxlX3J4X3F1ZXVlXCIsXG4gICAgXCJzdG1tYWNfZGlzYWJsZV90eF9xdWV1ZVwiLFxuICAgIFwic3RtbWFjX2VuYWJsZV90eF9xdWV1ZVwiXG4gIF0sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIGZpeGVzIGEgcG90ZW50aWFsIGRvdWJsZS1mcmVlIG9yIHVzZS1hZnRlci1mcmVlIGlzc3VlIGluIHRoZSBzdG1tYWMgZHJpdmVyIGJ5IHByb3Blcmx5IGNsZWFyaW5nIHBvaW50ZXJzIGFmdGVyIGZyZWVpbmcgRE1BIGRlc2NyaXB0b3JzLiBUaGUgZHJpdmVyIGNhbiBiZSByZWFjaGVkIHZpYSB2aXJ0dWFsaXplZCBQQ0kgZGV2aWNlcyBvciBwbGF0Zm9ybSBkZXZpY2VzIChlLmcuLCBRRU1VIGRlc2lnbndhcmUgTUFDIGVtdWxhdGlvbikuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IHRydWVcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTE1VDE4OjAwOjEwLjUzNzI3Mjk0M1oiLCJTZXEiOjEsIk5lc3RpbmciOjEsIlR5cGUiOiJhY3Rpb24iLCJOYW1lIjoicmVhZC1wYXRjaC1kaWZmIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NTcxMTMxMDUwLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJQYXRjaERpZmZcIjogXCJjb21taXQgNDk3ZmRkYjBiNjQ5Yjg5OWM0YmUxZWUyMzJiMDQwYjQ3ZTNlM2JjZFxcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXFx1MDAzZVxcbkRhdGU6ICAgV2VkIEp1bCAxNSAxODowMDowOCAyMDI2ICswMDAwXFxuXFxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xcblxcbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uY1xcbmluZGV4IDJhMGQ3ZWZmODhkM2ZmLi43NzYwNGQ2YWI0NjY1ZSAxMDA2NDRcXG4tLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jXFxuKysrIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uY1xcbkBAIC0yMTQ2LDcgKzIxNDYsNiBAQCBzdGF0aWMgdm9pZCBfX2ZyZWVfZG1hX3J4X2Rlc2NfcmVzb3VyY2VzKHN0cnVjdCBzdG1tYWNfcHJpdiAqcHJpdixcXG4gXFx0XFx0XFx0XFx0XFx0IHUzMiBxdWV1ZSlcXG4ge1xcbiBcXHRzdHJ1Y3Qgc3RtbWFjX3J4X3F1ZXVlICpyeF9xID0gXFx1MDAyNmRtYV9jb25mLVxcdTAwM2VyeF9xdWV1ZVtxdWV1ZV07XFxuLVxcdHNpemVfdCBzaXplO1xcbiBcXHR2b2lkICphZGRyO1xcbiBcXG4gXFx0LyogUmVsZWFzZSB0aGUgRE1BIFJYIHNvY2tldCBidWZmZXJzICovXFxuQEAgLTIxNTgsMjIgKzIxNTcsMjggQEAgc3RhdGljIHZvaWQgX19mcmVlX2RtYV9yeF9kZXNjX3Jlc291cmNlcyhzdHJ1Y3Qgc3RtbWFjX3ByaXYgKnByaXYsXFxuIFxcdHJ4X3EtXFx1MDAzZWJ1Zl9hbGxvY19udW0gPSAwO1xcbiBcXHRyeF9xLVxcdTAwM2V4c2tfcG9vbCA9IE5VTEw7XFxuIFxcbi1cXHQvKiBGcmVlIERNQSByZWdpb25zIG9mIGNvbnNpc3RlbnQgbWVtb3J5IHByZXZpb3VzbHkgYWxsb2NhdGVkICovXFxuLVxcdGlmIChwcml2LVxcdTAwM2VleHRlbmRfZGVzYylcXG4rXFx0aWYgKHByaXYtXFx1MDAzZWV4dGVuZF9kZXNjKSB7XFxuIFxcdFxcdGFkZHIgPSByeF9xLVxcdTAwM2VkbWFfZXJ4O1xcbi1cXHRlbHNlXFxuK1xcdFxcdHJ4X3EtXFx1MDAzZWRtYV9lcnggPSBOVUxMO1xcbitcXHR9IGVsc2Uge1xcbiBcXHRcXHRhZGRyID0gcnhfcS1cXHUwMDNlZG1hX3J4O1xcbitcXHRcXHRyeF9xLVxcdTAwM2VkbWFfcnggPSBOVUxMO1xcbitcXHR9XFxuIFxcbi1cXHRzaXplID0gc3RtbWFjX2dldF9yeF9kZXNjX3NpemUocHJpdikgKiBkbWFfY29uZi1cXHUwMDNlZG1hX3J4X3NpemU7XFxuK1xcdC8qIEZyZWUgRE1BIHJlZ2lvbnMgb2YgY29uc2lzdGVudCBtZW1vcnkgaWYgcHJldmlvdXNseSBhbGxvY2F0ZWQgKi9cXG4rXFx0aWYgKGFkZHIpIHtcXG4rXFx0XFx0c2l6ZV90IHNpemU7XFxuK1xcdFxcdHNpemUgPSBzdG1tYWNfZ2V0X3J4X2Rlc2Nfc2l6ZShwcml2KSAqIGRtYV9jb25mLVxcdTAwM2VkbWFfcnhfc2l6ZTtcXG4gXFxuLVxcdGRtYV9mcmVlX2NvaGVyZW50KHByaXYtXFx1MDAzZWRldmljZSwgc2l6ZSwgYWRkciwgcnhfcS1cXHUwMDNlZG1hX3J4X3BoeSk7XFxuK1xcdFxcdGRtYV9mcmVlX2NvaGVyZW50KHByaXYtXFx1MDAzZWRldmljZSwgc2l6ZSwgYWRkciwgcnhfcS1cXHUwMDNlZG1hX3J4X3BoeSk7XFxuK1xcdH1cXG4gXFxuIFxcdGlmICh4ZHBfcnhxX2luZm9faXNfcmVnKFxcdTAwMjZyeF9xLVxcdTAwM2V4ZHBfcnhxKSlcXG4gXFx0XFx0eGRwX3J4cV9pbmZvX3VucmVnKFxcdTAwMjZyeF9xLVxcdTAwM2V4ZHBfcnhxKTtcXG4gXFxuIFxcdGtmcmVlKHJ4X3EtXFx1MDAzZWJ1Zl9wb29sKTtcXG4tXFx0aWYgKHJ4X3EtXFx1MDAzZXBhZ2VfcG9vbClcXG4tXFx0XFx0cGFnZV9wb29sX2Rlc3Ryb3kocnhfcS1cXHUwMDNlcGFnZV9wb29sKTtcXG4rXFx0cGFnZV9wb29sX2Rlc3Ryb3kocnhfcS1cXHUwMDNlcGFnZV9wb29sKTtcXG4rXFx0cnhfcS1cXHUwMDNlcGFnZV9wb29sID0gTlVMTDtcXG4gfVxcbiBcXG4gc3RhdGljIHZvaWQgZnJlZV9kbWFfcnhfZGVzY19yZXNvdXJjZXMoc3RydWN0IHN0bW1hY19wcml2ICpwcml2LFxcbkBAIC0yMTk4LDcgKzIyMDMsNiBAQCBzdGF0aWMgdm9pZCBfX2ZyZWVfZG1hX3R4X2Rlc2NfcmVzb3VyY2VzKHN0cnVjdCBzdG1tYWNfcHJpdiAqcHJpdixcXG4gXFx0XFx0XFx0XFx0XFx0IHUzMiBxdWV1ZSlcXG4ge1xcbiBcXHRzdHJ1Y3Qgc3RtbWFjX3R4X3F1ZXVlICp0eF9xID0gXFx1MDAyNmRtYV9jb25mLVxcdTAwM2V0eF9xdWV1ZVtxdWV1ZV07XFxuLVxcdHNpemVfdCBzaXplO1xcbiBcXHR2b2lkICphZGRyO1xcbiBcXG4gXFx0LyogUmVsZWFzZSB0aGUgRE1BIFRYIHNvY2tldCBidWZmZXJzICovXFxuQEAgLTIyMDYsMTUgKzIyMTAsMjEgQEAgc3RhdGljIHZvaWQgX19mcmVlX2RtYV90eF9kZXNjX3Jlc291cmNlcyhzdHJ1Y3Qgc3RtbWFjX3ByaXYgKnByaXYsXFxuIFxcbiBcXHRpZiAocHJpdi1cXHUwMDNlZXh0ZW5kX2Rlc2MpIHtcXG4gXFx0XFx0YWRkciA9IHR4X3EtXFx1MDAzZWRtYV9ldHg7XFxuK1xcdFxcdHR4X3EtXFx1MDAzZWRtYV9ldHggPSBOVUxMO1xcbiBcXHR9IGVsc2UgaWYgKHR4X3EtXFx1MDAzZXRicyBcXHUwMDI2IFNUTU1BQ19UQlNfQVZBSUwpIHtcXG4gXFx0XFx0YWRkciA9IHR4X3EtXFx1MDAzZWRtYV9lbnR4O1xcbitcXHRcXHR0eF9xLVxcdTAwM2VkbWFfZW50eCA9IE5VTEw7XFxuIFxcdH0gZWxzZSB7XFxuIFxcdFxcdGFkZHIgPSB0eF9xLVxcdTAwM2VkbWFfdHg7XFxuK1xcdFxcdHR4X3EtXFx1MDAzZWRtYV90eCA9IE5VTEw7XFxuIFxcdH1cXG4gXFxuLVxcdHNpemUgPSBzdG1tYWNfZ2V0X3R4X2Rlc2Nfc2l6ZShwcml2LCB0eF9xKSAqIGRtYV9jb25mLVxcdTAwM2VkbWFfdHhfc2l6ZTtcXG4rXFx0aWYgKGFkZHIpIHtcXG4rXFx0XFx0c2l6ZV90IHNpemU7XFxuK1xcdFxcdHNpemUgPSBzdG1tYWNfZ2V0X3R4X2Rlc2Nfc2l6ZShwcml2LCB0eF9xKSAqIGRtYV9jb25mLVxcdTAwM2VkbWFfdHhfc2l6ZTtcXG4gXFxuLVxcdGRtYV9mcmVlX2NvaGVyZW50KHByaXYtXFx1MDAzZWRldmljZSwgc2l6ZSwgYWRkciwgdHhfcS1cXHUwMDNlZG1hX3R4X3BoeSk7XFxuK1xcdFxcdGRtYV9mcmVlX2NvaGVyZW50KHByaXYtXFx1MDAzZWRldmljZSwgc2l6ZSwgYWRkciwgdHhfcS1cXHUwMDNlZG1hX3R4X3BoeSk7XFxuK1xcdH1cXG4gXFxuIFxcdGtmcmVlKHR4X3EtXFx1MDAzZXR4X3NrYnVmZl9kbWEpO1xcbiBcXHRrZnJlZSh0eF9xLVxcdTAwM2V0eF9za2J1ZmYpO1xcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0xNVQxODowMDoxMS4xMDk0MTIxMjNaIiwiU2VxIjoyLCJOZXN0aW5nIjoxLCJUeXBlIjoiYWdlbnQiLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjEwMjczODc2MzgzMSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXG4gICAgXCJTVE1NQUNfRVRIXCIsXG4gICAgXCJTVE1NQUNfUENJXCIsXG4gICAgXCJTVE1NQUNfUExBVEZPUk1cIixcbiAgICBcIkRXTUFDX0dFTkVSSUNcIlxuICBdLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXG4gICAgXCJfX2ZyZWVfZG1hX3J4X2Rlc2NfcmVzb3VyY2VzXCIsXG4gICAgXCJfX2ZyZWVfZG1hX3R4X2Rlc2NfcmVzb3VyY2VzXCIsXG4gICAgXCJzdG1tYWNfZGlzYWJsZV9yeF9xdWV1ZVwiLFxuICAgIFwic3RtbWFjX2VuYWJsZV9yeF9xdWV1ZVwiLFxuICAgIFwic3RtbWFjX2Rpc2FibGVfdHhfcXVldWVcIixcbiAgICBcInN0bW1hY19lbmFibGVfdHhfcXVldWVcIlxuICBdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBmaXhlcyBhIHBvdGVudGlhbCBkb3VibGUtZnJlZSBvciB1c2UtYWZ0ZXItZnJlZSBpc3N1ZSBpbiB0aGUgc3RtbWFjIGRyaXZlciBieSBwcm9wZXJseSBjbGVhcmluZyBwb2ludGVycyBhZnRlciBmcmVlaW5nIERNQSBkZXNjcmlwdG9ycy4gVGhlIGRyaXZlciBjYW4gYmUgcmVhY2hlZCB2aWEgdmlydHVhbGl6ZWQgUENJIGRldmljZXMgb3IgcGxhdGZvcm0gZGV2aWNlcyAoZS5nLiwgUUVNVSBkZXNpZ253YXJlIE1BQyBlbXVsYXRpb24pLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiB0cnVlXG59IiwiSW5zdHJ1Y3Rpb24iOiJZb3UgYXJlIGFuIGV4cGVydCBMaW51eCBrZXJuZWwgbWFpbnRhaW5lci5cbllvdXIgam9iIGlzIHRvIHJldmlldyBhIHByb3ZpZGVkIHBhdGNoIHNlcmllcyBhbmQgZGV0ZXJtaW5lXG5pZiBpdCBtYWtlcyBmdW5jdGlvbmFsIGNoYW5nZXMgdG8gdGhlIGtlcm5lbCB0aGF0IHNob3VsZCBiZSBmdXp6ZWQuXG5cbklNUE9SVEFOVDogVGhlIGNoYW5nZXMgaGF2ZSBBTFJFQURZIGJlZW4gYXBwbGllZCBhbmQgY29tbWl0dGVkIGFzIHRoZSBIRUFEIGNvbW1pdCBpblxueW91ciB3b3Jrc3BhY2UuIERvIE5PVCByZWx5IG9uIHlvdXIgaW50ZXJuYWwga25vd2xlZGdlIG9mIHRoZSBrZXJuZWwuIFlvdSBtdXN0IGFjdGl2ZWx5XG51c2UgeW91ciBjb2RlIGFjY2VzcyB0b29scyB0byBleGFtaW5lIHRoZSBhY3R1YWwgc291cmNlIGNvZGUgYW5kIGNvbmZpcm0gYW55IGFzc3VtcHRpb25zLlxuXG5SZXR1cm4gV29ydGhGdXp6aW5nPWZhbHNlIGlmIHRoZSBwYXRjaCBvbmx5IGNvbnRhaW5zOlxuLSBNb2RpZmljYXRpb25zIHRvIERvY3VtZW50YXRpb24vLCBLY29uZmlnIGZpbGVzLCBvciBjb2RlIGNvbW1lbnRzLlxuLSBQdXJlbHkgZGVjb3JhdGl2ZSBjaGFuZ2VzLCBzdWNoIGFzIGxvZ2dpbmcgKGUuZy4sIHByX2VyciwgcHJpbnRrKSBvciB0cmFjZXBvaW50cy5cbi0gQ2hhbmdlcyB0byBudW1lcmljIGNvbnN0YW50cyBvciBtYWNyb3MgdGhhdCBkbyBub3QgZnVuY3Rpb25hbGx5IGFsdGVyIGV4ZWN1dGlvbiBmbG93LlxuLSBDb2RlIHBhdGhzIHRoYXQgYXJlIGltcG9zc2libGUgdG8gcmVhY2ggaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgR0NFIG9yIFFFTVUsXG5ldmVuIHdoZW4gdXRpbGl6aW5nIHNvZnR3YXJlLWVtdWxhdGVkIGhhcmR3YXJlIChlLmcuLCB1c2IgZ2FkZ2V0LCBtYWM4MDIxMV9od3NpbSkuXG5cbklmIGl0IG1vZGlmaWVzIHJlYWNoYWJsZSBjb3JlIGtlcm5lbCBsb2dpYywgZHJpdmVycywgb3IgYXJjaGl0ZWN0dXJlcywgdXNlIHlvdXIgY29kZSBzZWFyY2hcbnRvb2xzIHRvIHZlcmlmeSB0aGUgY29kZSBjYW4gYmUgZXhlY3V0ZWQsIHRoZW4gcmV0dXJuIFdvcnRoRnV6emluZz10cnVlLlxuXG5XaGVuIHJldHVybmluZyBXb3J0aEZ1enppbmc9dHJ1ZSwgeW91IE1VU1QgQUxTTzpcbjEuIEV4dHJhY3QgYW55IHNwZWNpZmljIGtlcm5lbCBmdW5jdGlvbnMgdGhhdCBzaG91bGQgYmUgaGVhdmlseSBmdXp6ZWQgaW50byBGb2N1c1N5bWJvbHMuXG4gICBBdm9pZCBsaXN0aW5nIGdlbmVyaWMgaG90LXBhdGggZnVuY3Rpb25zIHRvIHByZXZlbnQgc2tld2VkIHRlc3QgZGlzdHJpYnV0aW9ucy5cbjIuIElkZW50aWZ5IGFueSBzcGVjaWZpYyBDT05GSUdfIG9wdGlvbnMgcmVxdWlyZWQgdG8gcHJvcGVybHkgdGVzdCB0aGlzIG5ldy9tb2RpZmllZCBmZWF0dXJlLlxuICAgR28gYW5kIGxvb2sgaW50byB0aGUgS2NvbmZpZyBmaWxlcyBhbmQgY2hlY2sgZm9yIGlmZGVmcyBhcm91bmQgdGhlIGNvZGUsIGRvIG5vdCBtYWtlIGFzc3VtcHRpb25zLlxuICAgRG8gbm90IGxpc3QgdG9vIGdlbmVyaWMgY29uZmlncyAod2UgYWxyZWFkeSBoYXZlIHRoZW0gZW5hYmxlZCkuIE9ubHkgbGlzdCB0aG9zZSB0aGF0XG4gICBzcGVjaWZpY2FsbHkgY292ZXIgdGhlIG1vZGlmaWVkIGNvZGUuIExpc3QgdGhlbSBpbiB0aGUgRW5hYmxlQ29uZmlncyBvdXRwdXQgYXJyYXksXG4gICBhbmQgRE8gTk9UIGFkZCBhICdDT05GSUdfJyBwcmVmaXggKGUuZy4sIHJldHVybiBcIk5FVF9JUFY0XCIgaW5zdGVhZCBvZiBcIkNPTkZJR19ORVRfSVBWNFwiKS5cblByZWZlciBjYWxsaW5nIHNldmVyYWwgdG9vbHMgYXQgdGhlIHNhbWUgdGltZSB0byBzYXZlIHJvdW5kLXRyaXBzLlxuXG5cblVzZSBzZXQtcmVzdWx0cyB0b29sIHRvIHByb3ZpZGUgcmVzdWx0cyBvZiB0aGUgYW5hbHlzaXMuXG5JdCBtdXN0IGJlIGNhbGxlZCBleGFjdGx5IG9uY2UgYmVmb3JlIHRoZSBmaW5hbCByZXBseS5cbklnbm9yZSByZXN1bHRzIG9mIHRoaXMgdG9vbC5cbiIsIlByb21wdCI6IkZvciB5b3VyIGNvbnZlbmllbmNlLCBoZXJlIGlzIHRoZSBkaWZmIG9mIHRoZSBjaGFuZ2VzOlxuY29tbWl0IDQ5N2ZkZGIwYjY0OWI4OTljNGJlMWVlMjMyYjA0MGI0N2UzZTNiY2RcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cdTAwM2VcbkRhdGU6ICAgV2VkIEp1bCAxNSAxODowMDowOCAyMDI2ICswMDAwXG5cbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcblxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmMgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jXG5pbmRleCAyYTBkN2VmZjg4ZDNmZi4uNzc2MDRkNmFiNDY2NWUgMTAwNjQ0XG4tLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jXG4rKysgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jXG5AQCAtMjE0Niw3ICsyMTQ2LDYgQEAgc3RhdGljIHZvaWQgX19mcmVlX2RtYV9yeF9kZXNjX3Jlc291cmNlcyhzdHJ1Y3Qgc3RtbWFjX3ByaXYgKnByaXYsXG4gXHRcdFx0XHRcdCB1MzIgcXVldWUpXG4ge1xuIFx0c3RydWN0IHN0bW1hY19yeF9xdWV1ZSAqcnhfcSA9IFx1MDAyNmRtYV9jb25mLVx1MDAzZXJ4X3F1ZXVlW3F1ZXVlXTtcbi1cdHNpemVfdCBzaXplO1xuIFx0dm9pZCAqYWRkcjtcbiBcbiBcdC8qIFJlbGVhc2UgdGhlIERNQSBSWCBzb2NrZXQgYnVmZmVycyAqL1xuQEAgLTIxNTgsMjIgKzIxNTcsMjggQEAgc3RhdGljIHZvaWQgX19mcmVlX2RtYV9yeF9kZXNjX3Jlc291cmNlcyhzdHJ1Y3Qgc3RtbWFjX3ByaXYgKnByaXYsXG4gXHRyeF9xLVx1MDAzZWJ1Zl9hbGxvY19udW0gPSAwO1xuIFx0cnhfcS1cdTAwM2V4c2tfcG9vbCA9IE5VTEw7XG4gXG4tXHQvKiBGcmVlIERNQSByZWdpb25zIG9mIGNvbnNpc3RlbnQgbWVtb3J5IHByZXZpb3VzbHkgYWxsb2NhdGVkICovXG4tXHRpZiAocHJpdi1cdTAwM2VleHRlbmRfZGVzYylcbitcdGlmIChwcml2LVx1MDAzZWV4dGVuZF9kZXNjKSB7XG4gXHRcdGFkZHIgPSByeF9xLVx1MDAzZWRtYV9lcng7XG4tXHRlbHNlXG4rXHRcdHJ4X3EtXHUwMDNlZG1hX2VyeCA9IE5VTEw7XG4rXHR9IGVsc2Uge1xuIFx0XHRhZGRyID0gcnhfcS1cdTAwM2VkbWFfcng7XG4rXHRcdHJ4X3EtXHUwMDNlZG1hX3J4ID0gTlVMTDtcbitcdH1cbiBcbi1cdHNpemUgPSBzdG1tYWNfZ2V0X3J4X2Rlc2Nfc2l6ZShwcml2KSAqIGRtYV9jb25mLVx1MDAzZWRtYV9yeF9zaXplO1xuK1x0LyogRnJlZSBETUEgcmVnaW9ucyBvZiBjb25zaXN0ZW50IG1lbW9yeSBpZiBwcmV2aW91c2x5IGFsbG9jYXRlZCAqL1xuK1x0aWYgKGFkZHIpIHtcbitcdFx0c2l6ZV90IHNpemU7XG4rXHRcdHNpemUgPSBzdG1tYWNfZ2V0X3J4X2Rlc2Nfc2l6ZShwcml2KSAqIGRtYV9jb25mLVx1MDAzZWRtYV9yeF9zaXplO1xuIFxuLVx0ZG1hX2ZyZWVfY29oZXJlbnQocHJpdi1cdTAwM2VkZXZpY2UsIHNpemUsIGFkZHIsIHJ4X3EtXHUwMDNlZG1hX3J4X3BoeSk7XG4rXHRcdGRtYV9mcmVlX2NvaGVyZW50KHByaXYtXHUwMDNlZGV2aWNlLCBzaXplLCBhZGRyLCByeF9xLVx1MDAzZWRtYV9yeF9waHkpO1xuK1x0fVxuIFxuIFx0aWYgKHhkcF9yeHFfaW5mb19pc19yZWcoXHUwMDI2cnhfcS1cdTAwM2V4ZHBfcnhxKSlcbiBcdFx0eGRwX3J4cV9pbmZvX3VucmVnKFx1MDAyNnJ4X3EtXHUwMDNleGRwX3J4cSk7XG4gXG4gXHRrZnJlZShyeF9xLVx1MDAzZWJ1Zl9wb29sKTtcbi1cdGlmIChyeF9xLVx1MDAzZXBhZ2VfcG9vbClcbi1cdFx0cGFnZV9wb29sX2Rlc3Ryb3kocnhfcS1cdTAwM2VwYWdlX3Bvb2wpO1xuK1x0cGFnZV9wb29sX2Rlc3Ryb3kocnhfcS1cdTAwM2VwYWdlX3Bvb2wpO1xuK1x0cnhfcS1cdTAwM2VwYWdlX3Bvb2wgPSBOVUxMO1xuIH1cbiBcbiBzdGF0aWMgdm9pZCBmcmVlX2RtYV9yeF9kZXNjX3Jlc291cmNlcyhzdHJ1Y3Qgc3RtbWFjX3ByaXYgKnByaXYsXG5AQCAtMjE5OCw3ICsyMjAzLDYgQEAgc3RhdGljIHZvaWQgX19mcmVlX2RtYV90eF9kZXNjX3Jlc291cmNlcyhzdHJ1Y3Qgc3RtbWFjX3ByaXYgKnByaXYsXG4gXHRcdFx0XHRcdCB1MzIgcXVldWUpXG4ge1xuIFx0c3RydWN0IHN0bW1hY190eF9xdWV1ZSAqdHhfcSA9IFx1MDAyNmRtYV9jb25mLVx1MDAzZXR4X3F1ZXVlW3F1ZXVlXTtcbi1cdHNpemVfdCBzaXplO1xuIFx0dm9pZCAqYWRkcjtcbiBcbiBcdC8qIFJlbGVhc2UgdGhlIERNQSBUWCBzb2NrZXQgYnVmZmVycyAqL1xuQEAgLTIyMDYsMTUgKzIyMTAsMjEgQEAgc3RhdGljIHZvaWQgX19mcmVlX2RtYV90eF9kZXNjX3Jlc291cmNlcyhzdHJ1Y3Qgc3RtbWFjX3ByaXYgKnByaXYsXG4gXG4gXHRpZiAocHJpdi1cdTAwM2VleHRlbmRfZGVzYykge1xuIFx0XHRhZGRyID0gdHhfcS1cdTAwM2VkbWFfZXR4O1xuK1x0XHR0eF9xLVx1MDAzZWRtYV9ldHggPSBOVUxMO1xuIFx0fSBlbHNlIGlmICh0eF9xLVx1MDAzZXRicyBcdTAwMjYgU1RNTUFDX1RCU19BVkFJTCkge1xuIFx0XHRhZGRyID0gdHhfcS1cdTAwM2VkbWFfZW50eDtcbitcdFx0dHhfcS1cdTAwM2VkbWFfZW50eCA9IE5VTEw7XG4gXHR9IGVsc2Uge1xuIFx0XHRhZGRyID0gdHhfcS1cdTAwM2VkbWFfdHg7XG4rXHRcdHR4X3EtXHUwMDNlZG1hX3R4ID0gTlVMTDtcbiBcdH1cbiBcbi1cdHNpemUgPSBzdG1tYWNfZ2V0X3R4X2Rlc2Nfc2l6ZShwcml2LCB0eF9xKSAqIGRtYV9jb25mLVx1MDAzZWRtYV90eF9zaXplO1xuK1x0aWYgKGFkZHIpIHtcbitcdFx0c2l6ZV90IHNpemU7XG4rXHRcdHNpemUgPSBzdG1tYWNfZ2V0X3R4X2Rlc2Nfc2l6ZShwcml2LCB0eF9xKSAqIGRtYV9jb25mLVx1MDAzZWRtYV90eF9zaXplO1xuIFxuLVx0ZG1hX2ZyZWVfY29oZXJlbnQocHJpdi1cdTAwM2VkZXZpY2UsIHNpemUsIGFkZHIsIHR4X3EtXHUwMDNlZG1hX3R4X3BoeSk7XG4rXHRcdGRtYV9mcmVlX2NvaGVyZW50KHByaXYtXHUwMDNlZGV2aWNlLCBzaXplLCBhZGRyLCB0eF9xLVx1MDAzZWRtYV90eF9waHkpO1xuK1x0fVxuIFxuIFx0a2ZyZWUodHhfcS1cdTAwM2V0eF9za2J1ZmZfZG1hKTtcbiBcdGtmcmVlKHR4X3EtXHUwMDNldHhfc2tidWZmKTtcbiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTE1VDE4OjAwOjExLjEwOTQxNDU1M1oiLCJTZXEiOjMsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjY3MDc4MDMzNDgsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqQW5hbHl6aW5nIGEgRHJpdmVyIFBhdGNoOiBMaWtlbHkgYSBNZW1vcnkgU2FmZXR5IEZpeCoqXG5cbk9rYXksIHNvIEknbSBsb29raW5nIGF0IHRoaXMgcGF0Y2ggaW4gYHN0bW1hY19tYWluLmNgLCBzcGVjaWZpY2FsbHkgZm9jdXNpbmcgb24gYF9fZnJlZV9kbWFfcnhfZGVzY19yZXNvdXJjZXNgIGFuZCBgX19mcmVlX2RtYV90eF9kZXNjX3Jlc291cmNlc2AuIEl0IHNlZW1zIGxpa2UgdGhleSd2ZSBhZGRlZCBgTlVMTGAgY2hlY2tzIGFuZCBhcmUgemVyb2luZyBvdXQgcG9pbnRlcnMgYWZ0ZXIgZnJlZWluZyB0aGUgcmVzb3VyY2VzLiBGdW5jdGlvbmFsbHksIHRoaXMgaXMgcHJldHR5IGNsZWFyOyBpdCdzIGEgZ29vZCBkZWZlbnNpdmUgcHJvZ3JhbW1pbmcgbWVhc3VyZS4gTXkgaW5pdGlhbCB0aG91Z2h0IGlzIHRoYXQgdGhpcyBpcyBhbG1vc3QgY2VydGFpbmx5IGEgZml4IGZvciBhIGRvdWJsZS1mcmVlIG9yIGEgdXNlLWFmdGVyLWZyZWUgdnVsbmVyYWJpbGl0eSwgd2hpY2ggaXMgY29tbW9uIGluIGxvdy1sZXZlbCByZXNvdXJjZSBtYW5hZ2VtZW50IGxpa2UgdGhpcy4gR29vZCBjYXRjaC5cblxuTm93LCBteSBtaW5kIHNoaWZ0cyB0byBmdXp6aW5nIHBvdGVudGlhbC4gSXQncyBhbiBFdGhlcm5ldCBkcml2ZXIsIGBzdG1tYWNgIHNwZWNpZmljYWxseSwgd2hpY2ggdXN1YWxseSBtZWFucyBoYXJkd2FyZSBpbnRlcmFjdGlvbi4gVGhlc2UgZHJpdmVycyBhcmUgb2Z0ZW4gZGlmZmljdWx0IHRvIGZ1enogdW5sZXNzIHRoZXkncmUgZGVzaWduZWQgd2l0aCB2aXJ0dWFsaXphdGlvbiBpbiBtaW5kIG9yIGFyZSBzb21ld2hhdCBnZW5lcmljLiBJIG5lZWQgdG8gZmlndXJlIG91dCB0aGUgYXR0YWNrIHN1cmZhY2UuIENhbiBJIGdldCBhdCB0aGlzIHdpdGhpbiBhIHZpcnR1YWwgZW52aXJvbm1lbnQ/IFNwZWNpZmljYWxseSwgaXQncyBhbiBTVE1pY3JvZWxlY3Ryb25pY3MgRXRoZXJuZXQgTUFDIGRyaXZlci4gSXQgaXMgdW5saWtlbHkgdG8gYmUgZWFzeSB0byBmdXp6ICpkaXJlY3RseSouXG5cbldhaXQgYSBtaW51dGUsIEkgcmVtZW1iZXIgYHN0bW1hY2AgY2FuIGFsc28gYmUgYSBwbGF0Zm9ybSBkcml2ZXIgYW5kIGl0IGhhcyBQQ0kgYmluZGluZ3MuIFRoYXQncyBpbnRlcmVzdGluZywgaXQgbWlnaHQgYmUgcG9zc2libGUgdG8gYWNjZXNzIHRoaXMgdmlhIFBDSSBpZiBpdCdzIGdvdCB0aGUgcmlnaHQgYmluZGluZ3MuIFRoaXMgZXhwYW5kcyBteSBvcHRpb25zLiBJJ2xsIG5lZWQgdG8gZGlnIGRlZXBlciBpbnRvIHdoZXRoZXIgdGhlcmUncyBhIFBDSSBwcm9iZSBwYXRoIG9yIHNvbWUgb3RoZXIgbWV0aG9kIHRvIHJlYWNoIHRoaXMgZnVuY3Rpb25hbGl0eS4gVGhlIFBDSSBiaW5kaW5nIGNoYW5nZXMgZXZlcnl0aGluZzsgSSBuZWVkIHRvIGV4cGxvcmUgdGhhdCBhdmVudWUgZnVydGhlci4gVGhpcyBtYXkgYmUgZnV6emVhYmxlIGFmdGVyIGFsbC5cblxuXG4iLCJJbnB1dFRva2VucyI6MjgzNSwiT3V0cHV0VG9rZW5zIjoyMCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjI1NywiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTE1VDE4OjAwOjE3LjgxNzIyMDYzMVoiLCJTZXEiOjQsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo0OTc5MDQyNTcxLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcInN0bW1hY19wY2lcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiRG9jdW1lbnRhdGlvbi9uZXR3b3JraW5nL2RldmljZV9kcml2ZXJzL2V0aGVybmV0L3N0bWljcm8vc3RtbWFjLnJzdD0xMDc9c3ludGF4IChlLmcuIGZvciBQQ0kgbW9kdWxlKTo6XFxuRG9jdW1lbnRhdGlvbi9uZXR3b3JraW5nL2RldmljZV9kcml2ZXJzL2V0aGVybmV0L3N0bWljcm8vc3RtbWFjLnJzdC0xMDgtXFxuRG9jdW1lbnRhdGlvbi9uZXR3b3JraW5nL2RldmljZV9kcml2ZXJzL2V0aGVybmV0L3N0bWljcm8vc3RtbWFjLnJzdDoxMDk6ICAgIG1vZHByb2JlIHN0bW1hY19wY2kgW1xcdTAwM2NvcHRpb25cXHUwMDNlPVxcdTAwM2NWQUwxXFx1MDAzZSxcXHUwMDNjVkFMMlxcdTAwM2UsLi4uXVxcbkRvY3VtZW50YXRpb24vbmV0d29ya2luZy9kZXZpY2VfZHJpdmVycy9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy5yc3QtMTEwLVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvTWFrZWZpbGU9NTM9b2JqLSQoQ09ORklHX0RXTUFDX01PVE9SQ09NTSlcXHQrPSBkd21hYy1tb3RvcmNvbW0ub1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL01ha2VmaWxlOjU0OnN0bW1hYy1wY2ktb2Jqczo9IHN0bW1hY19wY2kub1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuYz0yNT1zdHJ1Y3QgaW50ZWxfcHJpdl9kYXRhIHtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWludGVsLmMtMzktICovXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuYzo0MDpzdHJ1Y3Qgc3RtbWFjX3BjaV9mdW5jX2RhdGEge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWludGVsLmMtNDEtXFx0dW5zaWduZWQgaW50IGZ1bmM7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbnRlbC5jLTQ0LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWludGVsLmM6NDU6c3RydWN0IHN0bW1hY19wY2lfZG1pX2RhdGEge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWludGVsLmM6NDY6XFx0Y29uc3Qgc3RydWN0IHN0bW1hY19wY2lfZnVuY19kYXRhICpmdW5jO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWludGVsLmMtNDctXFx0c2l6ZV90IG5mdW5jcztcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWludGVsLmMtNDktXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuYzo1MDpzdHJ1Y3Qgc3RtbWFjX3BjaV9pbmZvIHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbnRlbC5jLTUxLVxcdGludCAoKnNldHVwKShzdHJ1Y3QgcGNpX2RldiAqcGRldiwgc3RydWN0IHBsYXRfc3RtbWFjZW5ldF9kYXRhICpwbGF0KTtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWludGVsLmM9OTE9c3RhdGljIGNvbnN0IGludCBhZGxuX3Rzbl9sYW5lX3JlZ3NbXSA9IHs2fTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbnRlbC5jLTkyLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWludGVsLmM6OTM6c3RhdGljIGludCBzdG1tYWNfcGNpX2ZpbmRfcGh5X2FkZHIoc3RydWN0IHBjaV9kZXYgKnBkZXYsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuYy05NC1cXHRcXHRcXHRcXHQgICAgY29uc3Qgc3RydWN0IGRtaV9zeXN0ZW1faWQgKmRtaV9saXN0KVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWludGVsLmMtOTUte1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWludGVsLmM6OTY6XFx0Y29uc3Qgc3RydWN0IHN0bW1hY19wY2lfZnVuY19kYXRhICpmdW5jX2RhdGE7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuYzo5NzpcXHRjb25zdCBzdHJ1Y3Qgc3RtbWFjX3BjaV9kbWlfZGF0YSAqZG1pX2RhdGE7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuYy05OC1cXHRjb25zdCBzdHJ1Y3QgZG1pX3N5c3RlbV9pZCAqZG1pX2lkO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuYz03NTU9c3RhdGljIGludCBlaGxfc2dtaWlfZGF0YShzdHJ1Y3QgcGNpX2RldiAqcGRldixcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWludGVsLmMtNzc0LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWludGVsLmM6Nzc1OnN0YXRpYyBzdHJ1Y3Qgc3RtbWFjX3BjaV9pbmZvIGVobF9zZ21paTFnX2luZm8gPSB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuYy03NzYtXFx0LnNldHVwID0gZWhsX3NnbWlpX2RhdGEsXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbnRlbC5jPTc3OT1zdGF0aWMgaW50IGVobF9yZ21paV9kYXRhKHN0cnVjdCBwY2lfZGV2ICpwZGV2LFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuYy03ODktXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuYzo3OTA6c3RhdGljIHN0cnVjdCBzdG1tYWNfcGNpX2luZm8gZWhsX3JnbWlpMWdfaW5mbyA9IHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbnRlbC5jLTc5MS1cXHQuc2V0dXAgPSBlaGxfcmdtaWlfZGF0YSxcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWludGVsLmM9ODEwPXN0YXRpYyBpbnQgZWhsX3BzZTBfcmdtaWkxZ19kYXRhKHN0cnVjdCBwY2lfZGV2ICpwZGV2LFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuYy04MTYtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuYzo4MTc6c3RhdGljIHN0cnVjdCBzdG1tYWNfcGNpX2luZm8gZWhsX3BzZTBfcmdtaWkxZ19pbmZvID0ge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWludGVsLmMtODE4LVxcdC5zZXR1cCA9IGVobF9wc2UwX3JnbWlpMWdfZGF0YSxcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWludGVsLmM9ODIxPXN0YXRpYyBpbnQgZWhsX3BzZTBfc2dtaWkxZ19kYXRhKHN0cnVjdCBwY2lfZGV2ICpwZGV2LFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuYy04MzgtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuYzo4Mzk6c3RhdGljIHN0cnVjdCBzdG1tYWNfcGNpX2luZm8gZWhsX3BzZTBfc2dtaWkxZ19pbmZvID0ge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWludGVsLmMtODQwLVxcdC5zZXR1cCA9IGVobF9wc2UwX3NnbWlpMWdfZGF0YSxcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWludGVsLmM9ODU5PXN0YXRpYyBpbnQgZWhsX3BzZTFfcmdtaWkxZ19kYXRhKHN0cnVjdCBwY2lfZGV2ICpwZGV2LFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuYy04NjUtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuYzo4NjY6c3RhdGljIHN0cnVjdCBzdG1tYWNfcGNpX2luZm8gZWhsX3BzZTFfcmdtaWkxZ19pbmZvID0ge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWludGVsLmMtODY3LVxcdC5zZXR1cCA9IGVobF9wc2UxX3JnbWlpMWdfZGF0YSxcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWludGVsLmM9ODcwPXN0YXRpYyBpbnQgZWhsX3BzZTFfc2dtaWkxZ19kYXRhKHN0cnVjdCBwY2lfZGV2ICpwZGV2LFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuYy04ODctXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuYzo4ODg6c3RhdGljIHN0cnVjdCBzdG1tYWNfcGNpX2luZm8gZWhsX3BzZTFfc2dtaWkxZ19pbmZvID0ge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWludGVsLmMtODg5LVxcdC5zZXR1cCA9IGVobF9wc2UxX3NnbWlpMWdfZGF0YSxcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWludGVsLmM9OTEzPXN0YXRpYyBpbnQgdGdsX3NnbWlpX3BoeTBfZGF0YShzdHJ1Y3QgcGNpX2RldiAqcGRldixcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWludGVsLmMtOTIxLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWludGVsLmM6OTIyOnN0YXRpYyBzdHJ1Y3Qgc3RtbWFjX3BjaV9pbmZvIHRnbF9zZ21paTFnX3BoeTBfaW5mbyA9IHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbnRlbC5jLTkyMy1cXHQuc2V0dXAgPSB0Z2xfc2dtaWlfcGh5MF9kYXRhLFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuYz05MjY9c3RhdGljIGludCB0Z2xfc2dtaWlfcGh5MV9kYXRhKHN0cnVjdCBwY2lfZGV2ICpwZGV2LFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuYy05MzQtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuYzo5MzU6c3RhdGljIHN0cnVjdCBzdG1tYWNfcGNpX2luZm8gdGdsX3NnbWlpMWdfcGh5MV9pbmZvID0ge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWludGVsLmMtOTM2LVxcdC5zZXR1cCA9IHRnbF9zZ21paV9waHkxX2RhdGEsXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbnRlbC5jPTkzOT1zdGF0aWMgaW50IGFkbHNfc2dtaWlfcGh5MF9kYXRhKHN0cnVjdCBwY2lfZGV2ICpwZGV2LFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuYy05NDgtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuYzo5NDk6c3RhdGljIHN0cnVjdCBzdG1tYWNfcGNpX2luZm8gYWRsc19zZ21paTFnX3BoeTBfaW5mbyA9IHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbnRlbC5jLTk1MC1cXHQuc2V0dXAgPSBhZGxzX3NnbWlpX3BoeTBfZGF0YSxcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWludGVsLmM9OTUzPXN0YXRpYyBpbnQgYWRsc19zZ21paV9waHkxX2RhdGEoc3RydWN0IHBjaV9kZXYgKnBkZXYsXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbnRlbC5jLTk2Mi1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbnRlbC5jOjk2MzpzdGF0aWMgc3RydWN0IHN0bW1hY19wY2lfaW5mbyBhZGxzX3NnbWlpMWdfcGh5MV9pbmZvID0ge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWludGVsLmMtOTY0LVxcdC5zZXR1cCA9IGFkbHNfc2dtaWlfcGh5MV9kYXRhLFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuYz05OTI9c3RhdGljIGludCBhZGxuX3NnbWlpX3BoeTBfZGF0YShzdHJ1Y3QgcGNpX2RldiAqcGRldixcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWludGVsLmMtMTAxMC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbnRlbC5jOjEwMTE6c3RhdGljIHN0cnVjdCBzdG1tYWNfcGNpX2luZm8gYWRsbl9zZ21paTFnX3BoeTBfaW5mbyA9IHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbnRlbC5jLTEwMTItXFx0LnNldHVwID0gYWRsbl9zZ21paV9waHkwX2RhdGEsXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbnRlbC5jLTEwMTQtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuYzoxMDE1OnN0YXRpYyBjb25zdCBzdHJ1Y3Qgc3RtbWFjX3BjaV9mdW5jX2RhdGEgZ2FsaWxlb19zdG1tYWNfZnVuY19kYXRhW10gPSB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuYy0xMDE2LVxcdHtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWludGVsLmMtMTAyMS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbnRlbC5jOjEwMjI6c3RhdGljIGNvbnN0IHN0cnVjdCBzdG1tYWNfcGNpX2RtaV9kYXRhIGdhbGlsZW9fc3RtbWFjX2RtaV9kYXRhID0ge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWludGVsLmMtMTAyMy1cXHQuZnVuYyA9IGdhbGlsZW9fc3RtbWFjX2Z1bmNfZGF0YSxcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWludGVsLmMtMTAyNi1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbnRlbC5jOjEwMjc6c3RhdGljIGNvbnN0IHN0cnVjdCBzdG1tYWNfcGNpX2Z1bmNfZGF0YSBpb3QyMDQwX3N0bW1hY19mdW5jX2RhdGFbXSA9IHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbnRlbC5jLTEwMjgtXFx0e1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuYy0xMDM3LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWludGVsLmM6MTAzODpzdGF0aWMgY29uc3Qgc3RydWN0IHN0bW1hY19wY2lfZG1pX2RhdGEgaW90MjA0MF9zdG1tYWNfZG1pX2RhdGEgPSB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuYy0xMDM5LVxcdC5mdW5jID0gaW90MjA0MF9zdG1tYWNfZnVuY19kYXRhLFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuYz0xMDc4PXN0YXRpYyBpbnQgcXVhcmtfZGVmYXVsdF9kYXRhKHN0cnVjdCBwY2lfZGV2ICpwZGV2LFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuYy0xMDg4LVxcdCAqL1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWludGVsLmM6MTA4OTpcXHRyZXQgPSBzdG1tYWNfcGNpX2ZpbmRfcGh5X2FkZHIocGRldiwgcXVhcmtfcGNpX2RtaSk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuYy0xMDkwLVxcdGlmIChyZXQgXFx1MDAzYyAwKSB7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbnRlbC5jLTExMTMtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuYzoxMTE0OnN0YXRpYyBjb25zdCBzdHJ1Y3Qgc3RtbWFjX3BjaV9pbmZvIHF1YXJrX2luZm8gPSB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuYy0xMTE1LVxcdC5zZXR1cCA9IHF1YXJrX2RlZmF1bHRfZGF0YSxcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWludGVsLmM9MTIzMj1zdGF0aWMgaW50IGludGVsX2V0aF9wY2lfcHJvYmUoc3RydWN0IHBjaV9kZXYgKnBkZXYsXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbnRlbC5jLTEyMzQte1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWludGVsLmM6MTIzNTpcXHRzdHJ1Y3Qgc3RtbWFjX3BjaV9pbmZvICppbmZvID0gKHN0cnVjdCBzdG1tYWNfcGNpX2luZm8gKilpZC1cXHUwMDNlZHJpdmVyX2RhdGE7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuYy0xMjM2LVxcdHN0cnVjdCBpbnRlbF9wcml2X2RhdGEgKmludGVsX3ByaXY7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1sb29uZ3Nvbi5jPTc2PXN0cnVjdCBsb29uZ3Nvbl9kYXRhIHtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWxvb25nc29uLmMtODEtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtbG9vbmdzb24uYzo4MjpzdHJ1Y3Qgc3RtbWFjX3BjaV9pbmZvIHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1sb29uZ3Nvbi5jLTgzLVxcdGludCAoKnNldHVwKShzdHJ1Y3QgcGNpX2RldiAqcGRldiwgc3RydWN0IHBsYXRfc3RtbWFjZW5ldF9kYXRhICpwbGF0KTtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWxvb25nc29uLmM9MTMyPXN0YXRpYyBpbnQgbG9vbmdzb25fZ21hY19kYXRhKHN0cnVjdCBwY2lfZGV2ICpwZGV2LFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtbG9vbmdzb24uYy0xNDEtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtbG9vbmdzb24uYzoxNDI6c3RhdGljIHN0cnVjdCBzdG1tYWNfcGNpX2luZm8gbG9vbmdzb25fZ21hY19wY2lfaW5mbyA9IHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1sb29uZ3Nvbi5jLTE0My1cXHQuc2V0dXAgPSBsb29uZ3Nvbl9nbWFjX2RhdGEsXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1sb29uZ3Nvbi5jPTE2NT1zdGF0aWMgaW50IGxvb25nc29uX2duZXRfZGF0YShzdHJ1Y3QgcGNpX2RldiAqcGRldixcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWxvb25nc29uLmMtMTc2LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWxvb25nc29uLmM6MTc3OnN0YXRpYyBzdHJ1Y3Qgc3RtbWFjX3BjaV9pbmZvIGxvb25nc29uX2duZXRfcGNpX2luZm8gPSB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtbG9vbmdzb24uYy0xNzgtXFx0LnNldHVwID0gbG9vbmdzb25fZ25ldF9kYXRhLFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtbG9vbmdzb24uYz00OTg9c3RhdGljIGludCBsb29uZ3Nvbl9kd21hY19wcm9iZShzdHJ1Y3QgcGNpX2RldiAqcGRldiwgY29uc3Qgc3RydWN0IHBjaV9kZXZpY2VfaWQgKmlkKVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtbG9vbmdzb24uYy01MDEtXFx0c3RydWN0IHN0bW1hY19yZXNvdXJjZXMgcmVzID0ge307XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtbG9vbmdzb24uYzo1MDI6XFx0c3RydWN0IHN0bW1hY19wY2lfaW5mbyAqaW5mbztcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1sb29uZ3Nvbi5jLTUwMy1cXHRzdHJ1Y3QgbG9vbmdzb25fZGF0YSAqbGQ7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1sb29uZ3Nvbi5jLTUzNy1cXHRwbGF0LVxcdTAwM2VmaXhfc29jX3Jlc2V0ID0gbG9vbmdzb25fZHdtYWNfZml4X3Jlc2V0O1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWxvb25nc29uLmM6NTM4OlxcdHBsYXQtXFx1MDAzZXN1c3BlbmQgPSBzdG1tYWNfcGNpX3BsYXRfc3VzcGVuZDtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1sb29uZ3Nvbi5jOjUzOTpcXHRwbGF0LVxcdTAwM2VyZXN1bWUgPSBzdG1tYWNfcGNpX3BsYXRfcmVzdW1lO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWxvb25nc29uLmMtNTQwLVxcdGxkLVxcdTAwM2VkZXYgPSBcXHUwMDI2cGRldi1cXHUwMDNlZGV2O1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtbG9vbmdzb24uYy01NDItXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtbG9vbmdzb24uYzo1NDM6XFx0aW5mbyA9IChzdHJ1Y3Qgc3RtbWFjX3BjaV9pbmZvICopaWQtXFx1MDAzZWRyaXZlcl9kYXRhO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWxvb25nc29uLmMtNTQ0LVxcdHJldCA9IGluZm8tXFx1MDAzZXNldHVwKHBkZXYsIHBsYXQpO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtbW90b3Jjb21tLmM9MTg4PXN0YXRpYyBpbnQgbW90b3Jjb21tX3Jlc3VtZShzdHJ1Y3QgZGV2aWNlICpkZXYsIHZvaWQgKmJzcF9wcml2KVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtbW90b3Jjb21tLmMtMTkyLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLW1vdG9yY29tbS5jOjE5MzpcXHRyZXQgPSBzdG1tYWNfcGNpX3BsYXRfcmVzdW1lKGRldiwgYnNwX3ByaXYpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLW1vdG9yY29tbS5jLTE5NC1cXHRpZiAocmV0KVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtbW90b3Jjb21tLmM9MjA4PW1vdG9yY29tbV9kZWZhdWx0X3BsYXRfZGF0YShzdHJ1Y3QgcGNpX2RldiAqcGRldilcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLW1vdG9yY29tbS5jLTI0OC1cXHRwbGF0LVxcdTAwM2Vjb3JlX3R5cGVcXHRcXHQ9IERXTUFDX0NPUkVfR01BQzQ7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtbW90b3Jjb21tLmM6MjQ5OlxcdHBsYXQtXFx1MDAzZXN1c3BlbmRcXHRcXHQ9IHN0bW1hY19wY2lfcGxhdF9zdXNwZW5kO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLW1vdG9yY29tbS5jLTI1MC1cXHRwbGF0LVxcdTAwM2VyZXN1bWVcXHRcXHQ9IG1vdG9yY29tbV9yZXN1bWU7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbGlicGNpLmMtMTEtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX2xpYnBjaS5jOjEyOmludCBzdG1tYWNfcGNpX3BsYXRfc3VzcGVuZChzdHJ1Y3QgZGV2aWNlICpkZXYsIHZvaWQgKmJzcF9wcml2KVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19saWJwY2kuYy0xMy17XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbGlicGNpLmMtMjUtfVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19saWJwY2kuYzoyNjpFWFBPUlRfU1lNQk9MX0dQTChzdG1tYWNfcGNpX3BsYXRfc3VzcGVuZCk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX2xpYnBjaS5jLTI3LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19saWJwY2kuYzoyODppbnQgc3RtbWFjX3BjaV9wbGF0X3Jlc3VtZShzdHJ1Y3QgZGV2aWNlICpkZXYsIHZvaWQgKmJzcF9wcml2KVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19saWJwY2kuYy0yOS17XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbGlicGNpLmMtNDMtfVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19saWJwY2kuYzo0NDpFWFBPUlRfU1lNQk9MX0dQTChzdG1tYWNfcGNpX3BsYXRfcmVzdW1lKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbGlicGNpLmMtNDUtXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbGlicGNpLmgtOC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbGlicGNpLmg6OTppbnQgc3RtbWFjX3BjaV9wbGF0X3N1c3BlbmQoc3RydWN0IGRldmljZSAqZGV2LCB2b2lkICpic3BfcHJpdik7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX2xpYnBjaS5oOjEwOmludCBzdG1tYWNfcGNpX3BsYXRfcmVzdW1lKHN0cnVjdCBkZXZpY2UgKmRldiwgdm9pZCAqYnNwX3ByaXYpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19saWJwY2kuaC0xMS1cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19wY2kuYy0xOC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfcGNpLmM6MTk6c3RydWN0IHN0bW1hY19wY2lfaW5mbyB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX3BjaS5jLTIwLVxcdGludCAoKnNldHVwKShzdHJ1Y3QgcGNpX2RldiAqcGRldiwgc3RydWN0IHBsYXRfc3RtbWFjZW5ldF9kYXRhICpwbGF0KTtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19wY2kuYz0zMz1zdGF0aWMgaW50IHN0bW1hY19kZWZhdWx0X2RhdGEoc3RydWN0IHBjaV9kZXYgKnBkZXYsXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfcGNpLmMtNDktXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX3BjaS5jOjUwOnN0YXRpYyBjb25zdCBzdHJ1Y3Qgc3RtbWFjX3BjaV9pbmZvIHN0bW1hY19wY2lfaW5mbyA9IHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfcGNpLmMtNTEtXFx0LnNldHVwID0gc3RtbWFjX2RlZmF1bHRfZGF0YSxcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19wY2kuYz01ND1zdGF0aWMgaW50IHNucHNfZ21hYzVfZGVmYXVsdF9kYXRhKHN0cnVjdCBwY2lfZGV2ICpwZGV2LFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX3BjaS5jLTEwMS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfcGNpLmM6MTAyOnN0YXRpYyBjb25zdCBzdHJ1Y3Qgc3RtbWFjX3BjaV9pbmZvIHNucHNfZ21hYzVfcGNpX2luZm8gPSB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX3BjaS5jLTEwMy1cXHQuc2V0dXAgPSBzbnBzX2dtYWM1X2RlZmF1bHRfZGF0YSxcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19wY2kuYy0xMDYtLyoqXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX3BjaS5jOjEwNzogKiBzdG1tYWNfcGNpX3Byb2JlXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX3BjaS5jLTEwOC0gKlxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX3BjaS5jLTExNy0gKi9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfcGNpLmM6MTE4OnN0YXRpYyBpbnQgc3RtbWFjX3BjaV9wcm9iZShzdHJ1Y3QgcGNpX2RldiAqcGRldixcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfcGNpLmMtMTE5LVxcdFxcdFxcdCAgICBjb25zdCBzdHJ1Y3QgcGNpX2RldmljZV9pZCAqaWQpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX3BjaS5jLTEyMC17XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX3BjaS5jOjEyMTpcXHRzdHJ1Y3Qgc3RtbWFjX3BjaV9pbmZvICppbmZvID0gKHN0cnVjdCBzdG1tYWNfcGNpX2luZm8gKilpZC1cXHUwMDNlZHJpdmVyX2RhdGE7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX3BjaS5jLTEyMi1cXHRzdHJ1Y3QgcGxhdF9zdG1tYWNlbmV0X2RhdGEgKnBsYXQ7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfcGNpLmMtMTc5LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19wY2kuYzoxODA6XFx0cGxhdC1cXHUwMDNlc3VzcGVuZCA9IHN0bW1hY19wY2lfcGxhdF9zdXNwZW5kO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19wY2kuYzoxODE6XFx0cGxhdC1cXHUwMDNlcmVzdW1lID0gc3RtbWFjX3BjaV9wbGF0X3Jlc3VtZTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfcGNpLmMtMTgyLVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX3BjaS5jLTE4Ni0vKipcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfcGNpLmM6MTg3OiAqIHN0bW1hY19wY2lfcmVtb3ZlXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX3BjaS5jLTE4OC0gKlxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX3BjaS5jLTE5MS0gKi9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfcGNpLmM6MTkyOnN0YXRpYyB2b2lkIHN0bW1hY19wY2lfcmVtb3ZlKHN0cnVjdCBwY2lfZGV2ICpwZGV2KVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19wY2kuYy0xOTMte1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX3BjaS5jPTIwMz1zdGF0aWMgY29uc3Qgc3RydWN0IHBjaV9kZXZpY2VfaWQgc3RtbWFjX2lkX3RhYmxlW10gPSB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX3BjaS5jOjIwNDpcXHR7IFBDSV9ERVZJQ0VfREFUQShTVE1NQUMsIFNUTU1BQywgXFx1MDAyNnN0bW1hY19wY2lfaW5mbykgfSxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfcGNpLmM6MjA1OlxcdHsgUENJX0RFVklDRV9EQVRBKFNUTUlDUk8sIE1BQywgXFx1MDAyNnN0bW1hY19wY2lfaW5mbykgfSxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfcGNpLmMtMjA2LVxcdHsgUENJX0RFVklDRV9EQVRBKFNZTk9QU1lTLCBHTUFDNV9JRCwgXFx1MDAyNnNucHNfZ21hYzVfcGNpX2luZm8pIH0sXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfcGNpLmM9MjEwPU1PRFVMRV9ERVZJQ0VfVEFCTEUocGNpLCBzdG1tYWNfaWRfdGFibGUpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19wY2kuYy0yMTEtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX3BjaS5jOjIxMjpzdGF0aWMgc3RydWN0IHBjaV9kcml2ZXIgc3RtbWFjX3BjaV9kcml2ZXIgPSB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX3BjaS5jLTIxMy1cXHQubmFtZSA9IFNUTU1BQ19SRVNPVVJDRV9OQU1FLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19wY2kuYy0yMTQtXFx0LmlkX3RhYmxlID0gc3RtbWFjX2lkX3RhYmxlLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19wY2kuYzoyMTU6XFx0LnByb2JlID0gc3RtbWFjX3BjaV9wcm9iZSxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfcGNpLmM6MjE2OlxcdC5yZW1vdmUgPSBzdG1tYWNfcGNpX3JlbW92ZSxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfcGNpLmMtMjE3LVxcdC5kcml2ZXIgICAgICAgICA9IHtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19wY2kuYy0yMjEtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX3BjaS5jOjIyMjptb2R1bGVfcGNpX2RyaXZlcihzdG1tYWNfcGNpX2RyaXZlcik7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX3BjaS5jLTIyMy1cXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMTVUMTg6MDA6MjIuNzk2MjcyMzkyWiIsIlNlcSI6NSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6MTMxODM5OTY2MTgsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqUmVhY2hpbmcgdGhlIGBzdG1tYWNgIERyaXZlciBpbiBhIEZ1enppbmcgQ29udGV4dCoqXG5cbk9rYXksIHNvIHRoZSBgc3RtbWFjYCBkcml2ZXIgaGFzIFBDSSBiaW5kaW5ncywgd2hpY2ggaW1tZWRpYXRlbHkgbWFrZXMgbWUgdGhpbmsgb2Ygc3l6a2FsbGVyIGFuZCBpdHMgUENJIGZ1enppbmcgY2FwYWJpbGl0aWVzLiBJIG5lZWQgdG8gZmlndXJlIG91dCBpZiBpdCdzIGZlYXNpYmxlIHRvIGZ1enogdGhpcyBkcml2ZXIuIEluaXRpYWxseSwgSSByZW1lbWJlciB0aGF0IHN5emthbGxlciBkb2Vzbid0IGp1c3Qgc3Bhd24gKmFueSogUENJIGRldmljZSwgdW5sZXNzIFFFTVUgb3Igc29tZSBzb2Z0d2FyZSBlbXVsYXRpb24gaXMgYXZhaWxhYmxlLiBJJ20gcmVjYWxsaW5nIGB2aGNpYCBmb3IgVVNCLCBgbWFjODAyMTFfaHdzaW1gIGZvciB3aWZpIOKAkyB0aGVzZSBhcmUgc3BlY2lmaWMgY2FzZXMuXG5cblRoZW4sIEkgcmVtZW1iZXIgc3l6a2FsbGVyICpkb2VzKiBoYXZlIHNvbWV0aGluZyBsaWtlIGBzeXpfcGNpX2RldmljZWAgb3Igc2ltaWxhciwgYnV0IHR5cGljYWxseSByZWxpZXMgb24gdGhlIGRldmljZSBiZWluZyBlbXVsYXRlZCBieSBRRU1VLiBOb3cgdGhlIHF1ZXN0aW9uIGlzOiBkb2VzIFFFTVUgZW11bGF0ZSBgc3RtbWFjYD8gSSBrbm93IFFFTVUgaGFzIGVtdWxhdGlvbnMgZm9yIHZhcmlvdXMgbmV0d29yayBkZXZpY2VzIGxpa2UgYGlnYmAsIGBlMTAwMGAsIGFuZCBgdmlydGlvLW5ldGAsIGJ1dCBJJ20gbm90IGltbWVkaWF0ZWx5IHN1cmUgYWJvdXQgYHN0bW1hY2AuXG5cblRoZSBwcm9tcHQgc3BlY2lmaWNhbGx5IG1lbnRpb25zIFwiQ29kZSBwYXRocyB0aGF0IGFyZSBpbXBvc3NpYmxlIHRvIHJlYWNoIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIEdDRSBvciBRRU1VLCBldmVuIHdoZW4gdXRpbGl6aW5nIHNvZnR3YXJlLWVtdWxhdGVkIGhhcmR3YXJlXCIuIFNpbmNlIGBzdG1tYWNgIGlzIG9mdGVuIGEgcGxhdGZvcm0gZHJpdmVyIGZvciBzcGVjaWZpYyBTb0NzLCB0aGF0IHJhaXNlcyBhIGNvbmNlcm4uIEhvd2V2ZXIsIEkgcmVjYWxsIHRoYXQgYHN0bW1hY2AgaXMgYWN0dWFsbHkgKnZlcnkqIGNvbW1vbiDigJMgaXQncyB0aGUgU3lub3BzeXMgRGVzaWduV2FyZSBNQUMsIHdoaWNoIGlzIHVzZWQgaW4gYSBsb3Qgb2YgcGxhY2VzIChJbnRlbCwgTG9vbmdzb24sIGV0Yy4pLlxuXG5Ob3csIHRoZSBxdWVzdGlvbiBpcyB3aGV0aGVyIHN5emthbGxlciBjYW4gcmVhY2ggaXQuIEknbSBjaXJjbGluZyBiYWNrIHRvIHRoZSBzeXprYWxsZXIgUENJIGluamVjdGlvbiBtZWNoYW5pc21zLiBBY3R1YWxseSwgc3l6a2FsbGVyICpkb2VzKiBoYXZlIGEgd2F5IHRvIGluamVjdCBQQ0kgZGV2aWNlcyBub3csIHJpZ2h0PyBObywgd2FpdCAtIHN5emthbGxlciB1c2VzIHZoY2kgZm9yIFVTQiwgYW5kIHNvbWV0aGluZyBlbHNlIGZvciBQQ0kuXG5cblRoZSBwcm9tcHQgZGlyZWN0cyBtZSB0byBjb25zaWRlciByZWFjaGFiaWxpdHkgaW4gUUVNVSBhbmQgdGhlIGNvcmUga2VybmVsIGxvZ2ljLiBUaGUgcGF0Y2ggaXMgbW9kaWZ5aW5nIGBfX2ZyZWVfZG1hX3J4X2Rlc2NfcmVzb3VyY2VzYCBhbmQgYF9fZnJlZV9kbWFfdHhfZGVzY19yZXNvdXJjZXNgLCB3aGljaCBhcmUgcmVsYXRlZCB0byByZXNvdXJjZSBmcmVlaW5nLCB1c3VhbGx5IHRyaWdnZXJlZCBvbiBkZXZpY2UgY2xvc2Ugb3IgcmVzb3VyY2UgZGVhbGxvY2F0aW9uLiBUaGF0IG1lYW5zIGlmIHRoZSBkZXZpY2UgKmNhbiogYmUgcHJvYmVkLCB0aGlzIGNvZGUgY2FuIGJlIGhpdC5cblxuU28sIHRoZSByZWFsIGtleSBxdWVzdGlvbiBpcyB3aGV0aGVyIGBzdG1tYWNgIGNhbiBiZSBwcm9iZWQgd2l0aGluIFFFTVUuIFFFTVUgZG9lc24ndCBoYXZlIGEgKmdlbmVyaWMqIGBzdG1tYWNgIGRldmljZSwgYnV0IG1heWJlIGl0J3MgdXNlZCBpbiBzb21lIEFSTS1iYXNlZCBlbXVsYXRpb25zPyBGcmVlc2NhbGUgaS5NWCAoYGlteGApLCBBbGx3aW5uZXIsIGV0Yy4sIGFyZSBjYW5kaWRhdGVzLiBJIGtub3cgdGhvc2UgYXJlIGVtdWxhdGVkIGluIFFFTVUuXG5cblRoZW4sIEkgcmVjYWxsIHRoYXQgYHN0bW1hY2AgaXMgb2Z0ZW4gdXNlZCB2aWEgYGR3bWFjYCAoRGVzaWduV2FyZSBNQUMpLiBRRU1VIGRvZXMgZW11bGF0ZSB0aGluZ3MgbGlrZSBgYWxsd2lubmVyLXN1bjhpLWVtYWNgLCBgaW14X2ZlY2AsIGFuZCBgY2FkZW5jZV9nZW1gLiBEb2VzIFFFTVUgZW11bGF0ZSBgZHdtYWNgPyBMZXQgbWUgbG9vay4uLiBZZXMhIFFFTVUgKmRvZXMqIGhhdmUgYGh3L25ldC9kZXNpZ253YXJlLmNgISBBbmQgYHN0bW1hY2AgaXMgdGhlIGRyaXZlciBmb3IgRGVzaWduV2FyZSBNQUMuXG5cblRoZXJlZm9yZSwgaXQgKmNhbiogYmUgcmVhY2hlZCBpbiBRRU1VISBUaGUgbmV4dCBzdGVwIGlzIHRvIGZpbmQgdGhlIHJlbGV2YW50IGNvbmZpZ3VyYXRpb24gb3B0aW9ucy5cblxuXG4iLCJJbnB1dFRva2VucyI6MTA4MDYsIk91dHB1dFRva2VucyI6MTgsIk91dHB1dFRob3VnaHRzVG9rZW5zIjo5MjYsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDctMTVUMTg6MDA6MzUuOTgwMjcxNDNaIiwiU2VxIjo2LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NDQ3MTMzMzgyNSwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJjb25maWcgU1RNTUFDXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctMS0jIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wLW9ubHlcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnOjI6Y29uZmlnIFNUTU1BQ19FVEhcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTMtXFx0dHJpc3RhdGUgXFxcIlNUTWljcm9lbGVjdHJvbmljcyBNdWx0aS1HaWdhYml0IEV0aGVybmV0IGRyaXZlclxcXCJcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc9MTg9aWYgU1RNTUFDX0VUSFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctMTktXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZzoyMDpjb25maWcgU1RNTUFDX1NFTEZURVNUU1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctMjEtXFx0Ym9vbCBcXFwiU3VwcG9ydCBmb3IgU1RNTUFDIFNlbGZ0ZXN0c1xcXCJcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctMjgtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZzoyOTpjb25maWcgU1RNTUFDX1BMQVRGT1JNXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy0zMC1cXHR0cmlzdGF0ZSBcXFwiU1RNTUFDIFBsYXRmb3JtIGJ1cyBzdXBwb3J0XFxcIlxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZz0zNzE9ZW5kaWYgIyBTVE1NQUNfUExBVEZPUk1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTM3Mi1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnOjM3Mzpjb25maWcgU1RNTUFDX0xJQlBDSVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctMzc0LVxcdHRyaXN0YXRlXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnPTM5OD1jb25maWcgRFdNQUNfTU9UT1JDT01NXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTQwNi1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnOjQwNzpjb25maWcgU1RNTUFDX1BDSVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctNDA4LVxcdHRyaXN0YXRlIFxcXCJTVE1NQUMgUENJIGJ1cyBzdXBwb3J0XFxcIlxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0xNVQxODowMDo0MC40NTE2MTQ1MDZaIiwiU2VxIjo3LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo2MzgwODU3MTg4LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkFuYWx5emluZyBTVE1NQUMgRHJpdmVyIENvbmZpZ3VyYXRpb25zKipcblxuT2theSwgc28gSSdtIGxvb2tpbmcgYXQgdGhlc2UgU1RNTUFDIGNvbmZpZ3VyYXRpb25zIOKAkyBgU1RNTUFDX0VUSGAsIGBTVE1NQUNfUENJYCwgYW5kIGBTVE1NQUNfUExBVEZPUk1gLiBTZWVtcyBwcmV0dHkgc3RyYWlnaHRmb3J3YXJkLCBlYWNoIHJlcHJlc2VudGluZyBhIGRpZmZlcmVudCBpbnRlcmZhY2Ugb3IgcGxhdGZvcm0gdHlwZS4gTXkgaW1tZWRpYXRlIHRob3VnaHQgaXMgdG8gZGVsdmUgaW50byB0aGUgY29yZSBkcml2ZXIgZmlsZSwgYGRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmNgLiBUaGF0J3Mgd2hlcmUgdGhlIGhlYXJ0IG9mIHRoaXMgdGhpbmcgbGlrZWx5IGJlYXRzLiBJIG5lZWQgdG8gdW5kZXJzdGFuZCB3aGljaCBmdW5jdGlvbnMgYXJlIGNvbmRpdGlvbmFsaXplZCBvciBtb2RpZmllZCBiYXNlZCBvbiB0aGVzZSBjb25maWd1cmF0aW9ucy4gV2hhdCBzcGVjaWZpYyBiZWhhdmlvcnMgb3IgYWRhcHRhdGlvbnMgYXJlIGluIHBsYWNlIGZvciBlYWNoIG9mIHRoZXNlIHRocmVlIG9wdGlvbnM/IEJ5IHBpbnBvaW50aW5nIHRob3NlLCBJIGNhbiBpZGVudGlmeSB0aGUga2V5IGFyZWFzIHRvIGZvY3VzIG9uIGFuZCB1bmRlcnN0YW5kIHRoZSBpbXBsaWNhdGlvbnMgb2YgZWFjaCBjb25maWd1cmF0aW9uLiBJdCdzIGFsbCBhYm91dCB0cmFjaW5nIHRoZSB2YXJpYXRpb25zIHdpdGhpbiB0aGUgbWFpbiBkcml2ZXIgYW5kIGZpZ3VyaW5nIG91dCB3aGF0IGNoYW5nZXMgdW5kZXIgZWFjaCBjb25kaXRpb25hbCBjb21waWxhdGlvbiBzZXR0aW5nLlxuXG5cbiIsIklucHV0VG9rZW5zIjoxMjk2MiwiT3V0cHV0VG9rZW5zIjoyNSwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjY2LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTE1VDE4OjAwOjQ2LjgzMjQ3NDE1M1oiLCJTZXEiOjgsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjozNTIxODkwOTMwLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcIl9fZnJlZV9kbWFfcnhfZGVzY19yZXNvdXJjZXNcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYz0yMTI5PXN0YXRpYyB2b2lkIHN0bW1hY19mcmVlX3R4X3NrYnVmcyhzdHJ1Y3Qgc3RtbWFjX3ByaXYgKnByaXYpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jLTIxMzgtLyoqXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYzoyMTM5OiAqIF9fZnJlZV9kbWFfcnhfZGVzY19yZXNvdXJjZXMgLSBmcmVlIFJYIGRtYSBkZXNjIHJlc291cmNlcyAocGVyIHF1ZXVlKVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmMtMjE0MC0gKiBAcHJpdjogcHJpdmF0ZSBzdHJ1Y3R1cmVcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmMtMjE0My0gKi9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jOjIxNDQ6c3RhdGljIHZvaWQgX19mcmVlX2RtYV9yeF9kZXNjX3Jlc291cmNlcyhzdHJ1Y3Qgc3RtbWFjX3ByaXYgKnByaXYsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYy0yMTQ1LVxcdFxcdFxcdFxcdFxcdCBzdHJ1Y3Qgc3RtbWFjX2RtYV9jb25mICpkbWFfY29uZixcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmM9MjE4ND1zdGF0aWMgdm9pZCBmcmVlX2RtYV9yeF9kZXNjX3Jlc291cmNlcyhzdHJ1Y3Qgc3RtbWFjX3ByaXYgKnByaXYsXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jLTIxOTEtXFx0Zm9yIChxdWV1ZSA9IDA7IHF1ZXVlIFxcdTAwM2MgcnhfY291bnQ7IHF1ZXVlKyspXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYzoyMTkyOlxcdFxcdF9fZnJlZV9kbWFfcnhfZGVzY19yZXNvdXJjZXMocHJpdiwgZG1hX2NvbmYsIHF1ZXVlKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jLTIxOTMtfVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYz03MDA2PXZvaWQgc3RtbWFjX2Rpc2FibGVfcnhfcXVldWUoc3RydWN0IHN0bW1hY19wcml2ICpwcml2LCB1MzIgcXVldWUpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jLTcwMTUtXFx0c3RtbWFjX3N0b3BfcnhfZG1hKHByaXYsIHF1ZXVlKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jOjcwMTY6XFx0X19mcmVlX2RtYV9yeF9kZXNjX3Jlc291cmNlcyhwcml2LCBcXHUwMDI2cHJpdi1cXHUwMDNlZG1hX2NvbmYsIHF1ZXVlKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jLTcwMTctfVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYz03MDE5PXZvaWQgc3RtbWFjX2VuYWJsZV9yeF9xdWV1ZShzdHJ1Y3Qgc3RtbWFjX3ByaXYgKnByaXYsIHUzMiBxdWV1ZSlcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmMtNzAzMy1cXHRpZiAocmV0KSB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYzo3MDM0OlxcdFxcdF9fZnJlZV9kbWFfcnhfZGVzY19yZXNvdXJjZXMocHJpdiwgXFx1MDAyNnByaXYtXFx1MDAzZWRtYV9jb25mLCBxdWV1ZSk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYy03MDM1LVxcdFxcdG5ldGRldl9lcnIocHJpdi1cXHUwMDNlZGV2LCBcXFwiRmFpbGVkIHRvIGluaXQgUlggZGVzYy5cXFxcblxcXCIpO1xcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0xNVQxODowMDo1MC4zNTQzNzYzMjJaIiwiU2VxIjo5LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo2NTExMjEyNTE2LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkFuYWx5emluZyBETUEgRGVzY3JpcHRvciBSZXNvdXJjZSBNYW5hZ2VtZW50KipcblxuT2theSwgc28gSSdtIGxvb2tpbmcgYXQgdGhlc2UgZnVuY3Rpb25zOiBgX19mcmVlX2RtYV9yeF9kZXNjX3Jlc291cmNlc2AgYW5kIGBfX2ZyZWVfZG1hX3R4X2Rlc2NfcmVzb3VyY2VzYCwgYW5kIGltbWVkaWF0ZWx5IEkgcmVjb2duaXplIHRoZWlyIGltcG9ydGFuY2UuIFRoZXkncmUgdGhlIGNvcmUgb2YgdGhlIGRlc2NyaXB0b3IgcmVzb3VyY2UgbWFuYWdlbWVudCwgYW5kIGl0IGxvb2tzIGxpa2UgdGhleSdyZSBjYWxsZWQgYnkgdGhlaXIgcmVzcGVjdGl2ZSB3cmFwcGVyIGZ1bmN0aW9ucywgYGZyZWVfZG1hX3J4X2Rlc2NfcmVzb3VyY2VzYCBhbmQgYGZyZWVfZG1hX3R4X2Rlc2NfcmVzb3VyY2VzYC4gVGhlc2Ugd3JhcHBlcnMgYXJlIHRoZW4gY2FsbGVkIGJ5IGBmcmVlX2RtYV9kZXNjX3Jlc291cmNlc2AsIHdoaWNoIGlzICpjcnVjaWFsbHkqIGNhbGxlZCBkdXJpbmcgbmV0ZGV2IGNsb3N1cmUgKGBzdG1tYWNfcmVsZWFzZWApIG9yIGRldmljZSByZW1vdmFsIChgc3RtbWFjX2R2cl9yZW1vdmVgKS4gVGhhdCBtYWtlcyBzZW5zZSDigJMgY2xlYW4gdXAgd2hlbiB5b3UncmUgZG9uZSB3aXRoIHRoZSBkZXZpY2UuXG5cbkJ1dCB0aGVuIHRoZXJlJ3MgYW4gaW50ZXJlc3Rpbmcgd3JpbmtsZTogYF9fZnJlZV9kbWFfcnhfZGVzY19yZXNvdXJjZXNgIGlzIGFsc28gY2FsbGVkIGJ5IGBzdG1tYWNfZGlzYWJsZV9yeF9xdWV1ZWAgYW5kIGBzdG1tYWNfZW5hYmxlX3J4X3F1ZXVlYC4gIFRoaXMgdGVsbHMgbWUgdGhlc2UgZnVuY3Rpb25zIGFyZSBsaWtlbHkgdG8gYmUgcmVhY2hhYmxlIGlmIHRoZSBkZXZpY2UgY2FuIGJlIHByb2JlZCBhbmQgaW5pdGlhbGl6ZWQuIElmIHRoaXMgaXMgYSBkcml2ZXIsIHRoZSBjcml0aWNhbCBwYXRoIHdvdWxkIGJlIHRoZXJlLlxuXG5TbywgdGhlIHVwc2hvdCBpcyB0aGlzIHBhdGNoIGlzIGZpeGluZyBhIGRvdWJsZSBmcmVlIG9yIHVzZS1hZnRlci1mcmVlIHNpdHVhdGlvbiwgYW5kIGl0IGRvZXMgc28gYnkgc2V0dGluZyB0aGUgZnJlZWQgcG9pbnRlcnMgdG8gYE5VTExgLiBTbWFydC4gTnVsbGlmeWluZyB0aG9zZSBwb2ludGVycyBpcyB0aGUgc3RhbmRhcmQgYXBwcm9hY2ggdG8gcHJldmVudCB0aG9zZSB2ZXJ5IGlzc3Vlcy5cblxuTm93LCBsZXQncyBuYWlsIGRvd24gd2hhdCBzeW1ib2xzIHdlIHNob3VsZCBmb2N1cyBvbiBmb3IgdGhpcyBkcml2ZXI6XG5gX19mcmVlX2RtYV9yeF9kZXNjX3Jlc291cmNlc2AsIGBfX2ZyZWVfZG1hX3R4X2Rlc2NfcmVzb3VyY2VzYCwgYGZyZWVfZG1hX3J4X2Rlc2NfcmVzb3VyY2VzYCwgYGZyZWVfZG1hX3R4X2Rlc2NfcmVzb3VyY2VzYCwgYHN0bW1hY19kaXNhYmxlX3J4X3F1ZXVlYCwgYHN0bW1hY19lbmFibGVfcnhfcXVldWVgLCBgc3RtbWFjX2Rpc2FibGVfdHhfcXVldWVgLCBgc3RtbWFjX2VuYWJsZV90eF9xdWV1ZWAsIGBzdG1tYWNfcmVsZWFzZWAsIGBzdG1tYWNfb3BlbmAuXG5cbkknbGwgc3RhcnQgYnkgY2hlY2tpbmcgdGhlIGNhbGxlcnMgb2YgYF9fZnJlZV9kbWFfdHhfZGVzY19yZXNvdXJjZXNgIHRvIHZlcmlmeSB0aGUgcGF0Y2ggc29sdmVzIHRoZSBpc3N1ZXMgdGhhdCB3ZXJlIHJhaXNlZC4gVGhpcyBpcyBkZWZpbml0ZWx5IGZ1bmN0aW9uYWwgYW5kIHdvcnRoIGZ1enppbmcuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjE0MDg5LCJPdXRwdXRUb2tlbnMiOjI1LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MzQ4LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTE1VDE4OjAwOjU2Ljg2NTU5MzA1OVoiLCJTZXEiOjEwLCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NTQyMjQ1NDgxMiwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJfX2ZyZWVfZG1hX3R4X2Rlc2NfcmVzb3VyY2VzXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmM9MjE4ND1zdGF0aWMgdm9pZCBmcmVlX2RtYV9yeF9kZXNjX3Jlc291cmNlcyhzdHJ1Y3Qgc3RtbWFjX3ByaXYgKnByaXYsXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jLTIxOTUtLyoqXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYzoyMTk2OiAqIF9fZnJlZV9kbWFfdHhfZGVzY19yZXNvdXJjZXMgLSBmcmVlIFRYIGRtYSBkZXNjIHJlc291cmNlcyAocGVyIHF1ZXVlKVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmMtMjE5Ny0gKiBAcHJpdjogcHJpdmF0ZSBzdHJ1Y3R1cmVcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmMtMjIwMC0gKi9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jOjIyMDE6c3RhdGljIHZvaWQgX19mcmVlX2RtYV90eF9kZXNjX3Jlc291cmNlcyhzdHJ1Y3Qgc3RtbWFjX3ByaXYgKnByaXYsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYy0yMjAyLVxcdFxcdFxcdFxcdFxcdCBzdHJ1Y3Qgc3RtbWFjX2RtYV9jb25mICpkbWFfY29uZixcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmM9MjIzMz1zdGF0aWMgdm9pZCBmcmVlX2RtYV90eF9kZXNjX3Jlc291cmNlcyhzdHJ1Y3Qgc3RtbWFjX3ByaXYgKnByaXYsXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jLTIyNDAtXFx0Zm9yIChxdWV1ZSA9IDA7IHF1ZXVlIFxcdTAwM2MgdHhfY291bnQ7IHF1ZXVlKyspXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYzoyMjQxOlxcdFxcdF9fZnJlZV9kbWFfdHhfZGVzY19yZXNvdXJjZXMocHJpdiwgZG1hX2NvbmYsIHF1ZXVlKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jLTIyNDItfVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYz03MDU2PXZvaWQgc3RtbWFjX2Rpc2FibGVfdHhfcXVldWUoc3RydWN0IHN0bW1hY19wcml2ICpwcml2LCB1MzIgcXVldWUpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jLTcwNjUtXFx0c3RtbWFjX3N0b3BfdHhfZG1hKHByaXYsIHF1ZXVlKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jOjcwNjY6XFx0X19mcmVlX2RtYV90eF9kZXNjX3Jlc291cmNlcyhwcml2LCBcXHUwMDI2cHJpdi1cXHUwMDNlZG1hX2NvbmYsIHF1ZXVlKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jLTcwNjctfVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYz03MDY5PXZvaWQgc3RtbWFjX2VuYWJsZV90eF9xdWV1ZShzdHJ1Y3Qgc3RtbWFjX3ByaXYgKnByaXYsIHUzMiBxdWV1ZSlcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmMtNzA4My1cXHRpZiAocmV0KSB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYzo3MDg0OlxcdFxcdF9fZnJlZV9kbWFfdHhfZGVzY19yZXNvdXJjZXMocHJpdiwgXFx1MDAyNnByaXYtXFx1MDAzZWRtYV9jb25mLCBxdWV1ZSk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYy03MDg1LVxcdFxcdG5ldGRldl9lcnIocHJpdi1cXHUwMDNlZGV2LCBcXFwiRmFpbGVkIHRvIGluaXQgVFggZGVzYy5cXFxcblxcXCIpO1xcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0xNVQxODowMTowMi4yODgwNTUyODFaIiwiU2VxIjoxMSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6MTQxODIzMTkxMjAsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqTXkgQW5hbHlzaXMgb2YgU1RNTUFDIERyaXZlciBGdXp6aW5nIFRhcmdldHMgYW5kIENvbmZpZ3VyYXRpb25zKipcblxuT2theSwgbGV0J3MgYnJlYWsgdGhpcyBkb3duLiBNeSBnb2FsIGlzIHRvIGRldGVybWluZSB0aGUgb3B0aW1hbCBjb25maWd1cmF0aW9uIGZvciBmdXp6aW5nIHRoZSBTVE1NQUMgZHJpdmVyLiBJIG5lZWQgdG8gaWRlbnRpZnkgdGhlIGtleSBmdW5jdGlvbnMgdGhhdCB3YXJyYW50IGF0dGVudGlvbiBhbmQgdGhlIG5lY2Vzc2FyeSBidWlsZC10aW1lIGNvbmZpZ3VyYXRpb25zIHRvIGV4cG9zZSB0aGVtLlxuXG5GaXJzdGx5LCBJJ20gZm9jdXNpbmcgb24gdGhlc2Ugc3ltYm9sczogYF9fZnJlZV9kbWFfcnhfZGVzY19yZXNvdXJjZXNgLCBgX19mcmVlX2RtYV90eF9kZXNjX3Jlc291cmNlc2AsIGBzdG1tYWNfZGlzYWJsZV9yeF9xdWV1ZWAsIGBzdG1tYWNfZW5hYmxlX3J4X3F1ZXVlYCwgYHN0bW1hY19kaXNhYmxlX3R4X3F1ZXVlYCwgYW5kIGBzdG1tYWNfZW5hYmxlX3R4X3F1ZXVlYC4gVGhlc2UgYXBwZWFyIHRvIGJlIGNvcmUgcmVzb3VyY2UgbWFuYWdlbWVudCBhbmQgcXVldWUgY29udHJvbCBmdW5jdGlvbnMgd2l0aGluIHRoZSBkcml2ZXIsIG1ha2luZyB0aGVtIHByaW1lIHRhcmdldHMgZm9yIGZ1enppbmcuXG5cbk5vdywgb24gdG8gdGhlIGNvbmZpZ3MuIEkgaW5pdGlhbGx5IHRob3VnaHQgSSBuZWVkZWQgYWxsIHRocmVlOiBgU1RNTUFDX0VUSGAsIGBTVE1NQUNfUENJYCwgYW5kIGBTVE1NQUNfUExBVEZPUk1gLiBIb3dldmVyLCBjb25zaWRlcmluZyB0aGUgcG90ZW50aWFsIGZ1enppbmcgZW52aXJvbm1lbnQsIGVzcGVjaWFsbHkgaWYgbGV2ZXJhZ2luZyBRRU1VIG9yIHN5emthbGxlcidzIFBDSSBmdXp6ZXIsIGBTVE1NQUNfUENJYCBzZWVtcyB0aGUgbW9zdCBjcml0aWNhbC4gYFNUTU1BQ19QTEFURk9STWAgbWlnaHQgYmUgcmVsZXZhbnQsIGJ1dCBQQ0kgaXMgbGlrZWx5IHRoZSBtYWluIG1ldGhvZCBmb3IgcmVhY2hpbmcgdGhlc2UgZnVuY3Rpb25zIHRocm91Z2ggZnV6emluZy4gVG8gYmUgc2FmZSwgSSdsbCBpbmNsdWRlIGFsbCB0aHJlZTogYFNUTU1BQ19FVEhgLCBgU1RNTUFDX1BDSWAsIGFuZCBgU1RNTUFDX1BMQVRGT1JNYCwgZm9yIG5vdy5cblxuTGV0IG1lIGRvdWJsZS1jaGVjayBmb3Igb3RoZXIgcmVsZXZhbnQgY29uZmlncywgYXMgSSBzZWUgdGhhdCB0aGVyZSBhcmUgYWxzbyBzZXZlcmFsIFBDSSB2YXJpYW50cyBsaWtlIGBEV01BQ19JTlRFTGAsIGBEV01BQ19MT09OR1NPTmAsIGFuZCBgRFdNQUNfTU9UT1JDT01NYC4gQnV0IHdhaXQsIEkgcmVjYWxsIHRoYXQgYFNUTU1BQ19QQ0lgIHNob3VsZCBiZSBzdWZmaWNpZW50IHRvIGJ1aWxkIGBzdG1tYWNfcGNpLm9gLiBJJ20gZ29pbmcgdG8gY29uZmlybSB0aGF0IGJ5IGNoZWNraW5nIGBkcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9NYWtlZmlsZWAuIEknbGwgdmVyaWZ5IHRoYXQgYFNUTU1BQ19QQ0lgIGluZGVlZCBlbmFibGVzIHRoZSBjb21waWxhdGlvbiBvZiB0aGUgUENJLXNwZWNpZmljIHBhcnRzIG9mIHRoZSBkcml2ZXIuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjE1Nzg1LCJPdXRwdXRUb2tlbnMiOjE5LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MjU4LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTE1VDE4OjAxOjE2LjQ3MDM3NjkyWiIsIlNlcSI6MTIsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo0Njg1NTM2NDc3LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcIlNUTU1BQ19QQ0lcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiRG9jdW1lbnRhdGlvbi9uZXR3b3JraW5nL2RldmljZV9kcml2ZXJzL2V0aGVybmV0L3N0bWljcm8vc3RtbWFjLnJzdD05OD1UaGUga2VybmVsIGNvbmZpZ3VyYXRpb24gb3B0aW9uIGlzIGBgQ09ORklHX1NUTU1BQ19FVEhgYDpcXG5Eb2N1bWVudGF0aW9uL25ldHdvcmtpbmcvZGV2aWNlX2RyaXZlcnMvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMucnN0LTk5LSAtIGBgQ09ORklHX1NUTU1BQ19QTEFURk9STWBgOiBpcyB0byBlbmFibGUgdGhlIHBsYXRmb3JtIGRyaXZlci5cXG5Eb2N1bWVudGF0aW9uL25ldHdvcmtpbmcvZGV2aWNlX2RyaXZlcnMvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMucnN0OjEwMDogLSBgYENPTkZJR19TVE1NQUNfUENJYGA6IGlzIHRvIGVuYWJsZSB0aGUgcGNpIGRyaXZlci5cXG5Eb2N1bWVudGF0aW9uL25ldHdvcmtpbmcvZGV2aWNlX2RyaXZlcnMvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMucnN0LTEwMS1cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc9Mzk4PWNvbmZpZyBEV01BQ19NT1RPUkNPTU1cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctNDA2LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc6NDA3OmNvbmZpZyBTVE1NQUNfUENJXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy00MDgtXFx0dHJpc3RhdGUgXFxcIlNUTU1BQyBQQ0kgYnVzIHN1cHBvcnRcXFwiXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9NYWtlZmlsZT00OT1vYmotJChDT05GSUdfU1RNTUFDX0xJQlBDSSlcXHQrPSBzdG1tYWNfbGlicGNpLm9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9NYWtlZmlsZTo1MDpvYmotJChDT05GSUdfU1RNTUFDX1BDSSlcXHQrPSBzdG1tYWMtcGNpLm9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9NYWtlZmlsZS01MS1vYmotJChDT05GSUdfRFdNQUNfSU5URUwpXFx0Kz0gZHdtYWMtaW50ZWwub1xcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0xNVQxODowMToyMS4xNTU5MTg3NzhaIiwiU2VxIjoxMywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6MzQzODg2OTM4NywiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiT2theSwgaGVyZSdzIG15IGludGVycHJldGF0aW9uIG9mIHRob3NlIHRob3VnaHRzLCBzdW1tYXJpemVkIGluIHRoZSBmaXJzdCBwZXJzb24sIGFzc3VtaW5nIHRoZSBhdWRpZW5jZSBpcyBhbm90aGVyIGV4cGVydDpcblxuKipVbmRlcnN0YW5kaW5nIHRoZSBTVE1NQUMgRHJpdmVyIEJ1aWxkIFByb2Nlc3MqKlxuXG5SaWdodCwgc28gSSdtIHNlZWluZyB0aGF0IHdoZW4gYFNUTU1BQ19QQ0lgIGlzIGVuYWJsZWQsIHRoZSBidWlsZCBzeXN0ZW0gcHJvZHVjZXMgYHN0bW1hYy1wY2kub2AuIEFuZCwgYXMgSSB3b3VsZCBleHBlY3QsIHRoYXQgb2JqZWN0IGZpbGUgaXMgYSBkaXJlY3QgcmVzdWx0IG9mIGNvbXBpbGluZyB0aGUgc291cmNlIGNvZGUgaW4gYHN0bW1hY19wY2kuY2AuIFRoZSByZWxhdGlvbnNoaXAgaXMgZXhhY3RseSB3aGF0IHRoZSBuYW1pbmcgc3VnZ2VzdHMsIHdoaWNoIGlzIGdvb2QuIFdlIGFyZSBjbGVhcmx5IGtlZXBpbmcgdGhpbmdzIG9yZ2FuaXplZC5cblxuQWxzbywgdGhlIGNvcmUgb2YgdGhlIGRyaXZlciBmdW5jdGlvbmFsaXR5LCB0aGUgZm91bmRhdGlvbiB0aGF0IGV2ZXJ5dGhpbmcgZGVwZW5kcyBvbiwgaXMgYnVpbHQgaW5kZXBlbmRlbnRseSB0aHJvdWdoIHRoZSBgU1RNTUFDX0VUSGAgY29uZmlndXJhdGlvbiBvcHRpb24uIE1ha2VzIHNlbnNlOyB0aGlzIGtlZXBzIHRoZSBQQ0ktc3BlY2lmaWMgcGFydHMgaXNvbGF0ZWQgd2hpbGUgYWxsb3dpbmcgdGhlIGNvbW1vbiBFdGhlcm5ldCBNQUMgbG9naWMgdG8gYmUgcmV1c2VkLlxuXG5cbiIsIklucHV0VG9rZW5zIjoxNjkwNSwiT3V0cHV0VG9rZW5zIjoxOSwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjQ1LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTE1VDE4OjAxOjI0LjU5NDc5MTIyNFoiLCJTZXEiOjE0LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NDE5ODM0NDY5MCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJTVE1NQUNfRVRIXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcIkRvY3VtZW50YXRpb24vbmV0d29ya2luZy9kZXZpY2VfZHJpdmVycy9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy5yc3Q9OTU9S2VybmVsIENvbmZpZ3VyYXRpb25cXG4tLVxcbkRvY3VtZW50YXRpb24vbmV0d29ya2luZy9kZXZpY2VfZHJpdmVycy9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy5yc3QtOTctXFxuRG9jdW1lbnRhdGlvbi9uZXR3b3JraW5nL2RldmljZV9kcml2ZXJzL2V0aGVybmV0L3N0bWljcm8vc3RtbWFjLnJzdDo5ODpUaGUga2VybmVsIGNvbmZpZ3VyYXRpb24gb3B0aW9uIGlzIGBgQ09ORklHX1NUTU1BQ19FVEhgYDpcXG5Eb2N1bWVudGF0aW9uL25ldHdvcmtpbmcvZGV2aWNlX2RyaXZlcnMvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMucnN0LTk5LSAtIGBgQ09ORklHX1NUTU1BQ19QTEFURk9STWBgOiBpcyB0byBlbmFibGUgdGhlIHBsYXRmb3JtIGRyaXZlci5cXG4tLVxcbmFyY2gvYXJjL2NvbmZpZ3MvYXhzMTAxX2RlZmNvbmZpZz00ND1DT05GSUdfTkVUREVWSUNFUz15XFxuLS1cXG5hcmNoL2FyYy9jb25maWdzL2F4czEwMV9kZWZjb25maWctNTEtIyBDT05GSUdfTkVUX1ZFTkRPUl9TRUVRIGlzIG5vdCBzZXRcXG5hcmNoL2FyYy9jb25maWdzL2F4czEwMV9kZWZjb25maWc6NTI6Q09ORklHX1NUTU1BQ19FVEg9eVxcbmFyY2gvYXJjL2NvbmZpZ3MvYXhzMTAxX2RlZmNvbmZpZy01My0jIENPTkZJR19ORVRfVkVORE9SX1ZJQSBpcyBub3Qgc2V0XFxuLS1cXG5hcmNoL2FyYy9jb25maWdzL2F4czEwM19kZWZjb25maWc9NDQ9Q09ORklHX05FVERFVklDRVM9eVxcbi0tXFxuYXJjaC9hcmMvY29uZmlncy9heHMxMDNfZGVmY29uZmlnLTUxLSMgQ09ORklHX05FVF9WRU5ET1JfU0VFUSBpcyBub3Qgc2V0XFxuYXJjaC9hcmMvY29uZmlncy9heHMxMDNfZGVmY29uZmlnOjUyOkNPTkZJR19TVE1NQUNfRVRIPXlcXG5hcmNoL2FyYy9jb25maWdzL2F4czEwM19kZWZjb25maWctNTMtIyBDT05GSUdfTkVUX1ZFTkRPUl9WSUEgaXMgbm90IHNldFxcbi0tXFxuYXJjaC9hcmMvY29uZmlncy9heHMxMDNfc21wX2RlZmNvbmZpZz00ND1DT05GSUdfTkVUREVWSUNFUz15XFxuLS1cXG5hcmNoL2FyYy9jb25maWdzL2F4czEwM19zbXBfZGVmY29uZmlnLTUxLSMgQ09ORklHX05FVF9WRU5ET1JfU0VFUSBpcyBub3Qgc2V0XFxuYXJjaC9hcmMvY29uZmlncy9heHMxMDNfc21wX2RlZmNvbmZpZzo1MjpDT05GSUdfU1RNTUFDX0VUSD15XFxuYXJjaC9hcmMvY29uZmlncy9heHMxMDNfc21wX2RlZmNvbmZpZy01My0jIENPTkZJR19ORVRfVkVORE9SX1ZJQSBpcyBub3Qgc2V0XFxuLS1cXG5hcmNoL2FyYy9jb25maWdzL2hzZGtfZGVmY29uZmlnPTM3PUNPTkZJR19ORVRERVZJQ0VTPXlcXG5hcmNoL2FyYy9jb25maWdzL2hzZGtfZGVmY29uZmlnOjM4OkNPTkZJR19TVE1NQUNfRVRIPXlcXG5hcmNoL2FyYy9jb25maWdzL2hzZGtfZGVmY29uZmlnLTM5LUNPTkZJR19NSUNSRUxfUEhZPXlcXG4tLVxcbmFyY2gvYXJjL2NvbmZpZ3MvdGIxMHhfZGVmY29uZmlnPTQxPUNPTkZJR19ORVRERVZJQ0VTPXlcXG4tLVxcbmFyY2gvYXJjL2NvbmZpZ3MvdGIxMHhfZGVmY29uZmlnLTQ3LSMgQ09ORklHX05FVF9WRU5ET1JfU0VFUSBpcyBub3Qgc2V0XFxuYXJjaC9hcmMvY29uZmlncy90YjEweF9kZWZjb25maWc6NDg6Q09ORklHX1NUTU1BQ19FVEg9eVxcbmFyY2gvYXJjL2NvbmZpZ3MvdGIxMHhfZGVmY29uZmlnLTQ5LSMgQ09ORklHX05FVF9WRU5ET1JfV0laTkVUIGlzIG5vdCBzZXRcXG4tLVxcbmFyY2gvYXJjL2NvbmZpZ3MvdmRrX2hzMzhfZGVmY29uZmlnPTM5PUNPTkZJR19ORVRERVZJQ0VTPXlcXG4tLVxcbmFyY2gvYXJjL2NvbmZpZ3MvdmRrX2hzMzhfZGVmY29uZmlnLTQ2LSMgQ09ORklHX05FVF9WRU5ET1JfU0VFUSBpcyBub3Qgc2V0XFxuYXJjaC9hcmMvY29uZmlncy92ZGtfaHMzOF9kZWZjb25maWc6NDc6Q09ORklHX1NUTU1BQ19FVEg9eVxcbmFyY2gvYXJjL2NvbmZpZ3MvdmRrX2hzMzhfZGVmY29uZmlnLTQ4LSMgQ09ORklHX05FVF9WRU5ET1JfVklBIGlzIG5vdCBzZXRcXG4tLVxcbmFyY2gvYXJjL2NvbmZpZ3MvdmRrX2hzMzhfc21wX2RlZmNvbmZpZz00MT1DT05GSUdfTkVUREVWSUNFUz15XFxuLS1cXG5hcmNoL2FyYy9jb25maWdzL3Zka19oczM4X3NtcF9kZWZjb25maWctNDgtIyBDT05GSUdfTkVUX1ZFTkRPUl9TRUVRIGlzIG5vdCBzZXRcXG5hcmNoL2FyYy9jb25maWdzL3Zka19oczM4X3NtcF9kZWZjb25maWc6NDk6Q09ORklHX1NUTU1BQ19FVEg9eVxcbmFyY2gvYXJjL2NvbmZpZ3MvdmRrX2hzMzhfc21wX2RlZmNvbmZpZy01MC0jIENPTkZJR19ORVRfVkVORE9SX1ZJQSBpcyBub3Qgc2V0XFxuLS1cXG5hcmNoL2FybS9jb25maWdzL2xwYzE4eHhfZGVmY29uZmlnPTYxPUNPTkZJR19ORVRERVZJQ0VTPXlcXG4tLVxcbmFyY2gvYXJtL2NvbmZpZ3MvbHBjMTh4eF9kZWZjb25maWctNzYtIyBDT05GSUdfTkVUX1ZFTkRPUl9TTVNDIGlzIG5vdCBzZXRcXG5hcmNoL2FybS9jb25maWdzL2xwYzE4eHhfZGVmY29uZmlnOjc3OkNPTkZJR19TVE1NQUNfRVRIPXlcXG5hcmNoL2FybS9jb25maWdzL2xwYzE4eHhfZGVmY29uZmlnLTc4LSMgQ09ORklHX05FVF9WRU5ET1JfVklBIGlzIG5vdCBzZXRcXG4tLVxcbmFyY2gvYXJtL2NvbmZpZ3MvbXVsdGlfdjdfZGVmY29uZmlnPTI3NT1DT05GSUdfU05JX0FWRT15XFxuYXJjaC9hcm0vY29uZmlncy9tdWx0aV92N19kZWZjb25maWc6Mjc2OkNPTkZJR19TVE1NQUNfRVRIPXlcXG5hcmNoL2FybS9jb25maWdzL211bHRpX3Y3X2RlZmNvbmZpZy0yNzctQ09ORklHX0RXTUFDX0RXQ19RT1NfRVRIPXlcXG4tLVxcbmFyY2gvYXJtL2NvbmZpZ3MvcHhhX2RlZmNvbmZpZz0xODI9Q09ORklHX1NNU0M5MTFYPW1cXG5hcmNoL2FybS9jb25maWdzL3B4YV9kZWZjb25maWc6MTgzOkNPTkZJR19TVE1NQUNfRVRIPW1cXG5hcmNoL2FybS9jb25maWdzL3B4YV9kZWZjb25maWctMTg0LUNPTkZJR19QSFlMSUI9eVxcbi0tXFxuYXJjaC9hcm0vY29uZmlncy9zaG1vYmlsZV9kZWZjb25maWc9NTk9Q09ORklHX1NNU0M5MTFYPXlcXG5hcmNoL2FybS9jb25maWdzL3NobW9iaWxlX2RlZmNvbmZpZzo2MDpDT05GSUdfU1RNTUFDX0VUSD15XFxuYXJjaC9hcm0vY29uZmlncy9zaG1vYmlsZV9kZWZjb25maWctNjEtIyBDT05GSUdfRFdNQUNfUkVORVNBU19HQkVUSCBpcyBub3Qgc2V0XFxuLS1cXG5hcmNoL2FybS9jb25maWdzL3NvY2ZwZ2FfZGVmY29uZmlnPTY2PUNPTkZJR19JWEdCRT1tXFxuYXJjaC9hcm0vY29uZmlncy9zb2NmcGdhX2RlZmNvbmZpZzo2NzpDT05GSUdfU1RNTUFDX0VUSD15XFxuYXJjaC9hcm0vY29uZmlncy9zb2NmcGdhX2RlZmNvbmZpZy02OC1DT05GSUdfTUFSVkVMTF9QSFk9eVxcbi0tXFxuYXJjaC9hcm0vY29uZmlncy9zcGVhcjEzeHhfZGVmY29uZmlnPTQzPUNPTkZJR19ORVRERVZJQ0VTPXlcXG4tLVxcbmFyY2gvYXJtL2NvbmZpZ3Mvc3BlYXIxM3h4X2RlZmNvbmZpZy01MS0jIENPTkZJR19ORVRfVkVORE9SX1NNU0MgaXMgbm90IHNldFxcbmFyY2gvYXJtL2NvbmZpZ3Mvc3BlYXIxM3h4X2RlZmNvbmZpZzo1MjpDT05GSUdfU1RNTUFDX0VUSD15XFxuYXJjaC9hcm0vY29uZmlncy9zcGVhcjEzeHhfZGVmY29uZmlnLTUzLSMgQ09ORklHX1dMQU4gaXMgbm90IHNldFxcbi0tXFxuYXJjaC9hcm0vY29uZmlncy9zcGVhcjN4eF9kZWZjb25maWc9MjM9Q09ORklHX05FVERFVklDRVM9eVxcbi0tXFxuYXJjaC9hcm0vY29uZmlncy9zcGVhcjN4eF9kZWZjb25maWctMzEtIyBDT05GSUdfTkVUX1ZFTkRPUl9TTVNDIGlzIG5vdCBzZXRcXG5hcmNoL2FybS9jb25maWdzL3NwZWFyM3h4X2RlZmNvbmZpZzozMjpDT05GSUdfU1RNTUFDX0VUSD15XFxuYXJjaC9hcm0vY29uZmlncy9zcGVhcjN4eF9kZWZjb25maWctMzMtIyBDT05GSUdfV0xBTiBpcyBub3Qgc2V0XFxuLS1cXG5hcmNoL2FybS9jb25maWdzL3NwZWFyNnh4X2RlZmNvbmZpZz0xOT1DT05GSUdfTkVUREVWSUNFUz15XFxuLS1cXG5hcmNoL2FybS9jb25maWdzL3NwZWFyNnh4X2RlZmNvbmZpZy0yNy0jIENPTkZJR19ORVRfVkVORE9SX1NNU0MgaXMgbm90IHNldFxcbmFyY2gvYXJtL2NvbmZpZ3Mvc3BlYXI2eHhfZGVmY29uZmlnOjI4OkNPTkZJR19TVE1NQUNfRVRIPXlcXG5hcmNoL2FybS9jb25maWdzL3NwZWFyNnh4X2RlZmNvbmZpZy0yOS0jIENPTkZJR19XTEFOIGlzIG5vdCBzZXRcXG4tLVxcbmFyY2gvYXJtL2NvbmZpZ3Mvc3VueGlfZGVmY29uZmlnPTM2PUNPTkZJR19TVU40SV9FTUFDPXlcXG4tLVxcbmFyY2gvYXJtL2NvbmZpZ3Mvc3VueGlfZGVmY29uZmlnLTQ4LSMgQ09ORklHX05FVF9WRU5ET1JfU01TQyBpcyBub3Qgc2V0XFxuYXJjaC9hcm0vY29uZmlncy9zdW54aV9kZWZjb25maWc6NDk6Q09ORklHX1NUTU1BQ19FVEg9eVxcbmFyY2gvYXJtL2NvbmZpZ3Mvc3VueGlfZGVmY29uZmlnLTUwLSMgQ09ORklHX05FVF9WRU5ET1JfVklBIGlzIG5vdCBzZXRcXG4tLVxcbmFyY2gvYXJtNjQvY29uZmlncy9kZWZjb25maWc9NDQ1PUNPTkZJR19TTklfTkVUU0VDPW1cXG5hcmNoL2FybTY0L2NvbmZpZ3MvZGVmY29uZmlnOjQ0NjpDT05GSUdfU1RNTUFDX0VUSD1tXFxuYXJjaC9hcm02NC9jb25maWdzL2RlZmNvbmZpZy00NDctQ09ORklHX0RXTUFDX01FRElBVEVLPW1cXG4tLVxcbmFyY2gvbG9vbmdhcmNoL2NvbmZpZ3MvbG9vbmdzb24zMl9kZWZjb25maWc9NjExPUNPTkZJR19SODE2OT15XFxuLS1cXG5hcmNoL2xvb25nYXJjaC9jb25maWdzL2xvb25nc29uMzJfZGVmY29uZmlnLTYxOS0jIENPTkZJR19ORVRfVkVORE9SX1NNU0MgaXMgbm90IHNldFxcbmFyY2gvbG9vbmdhcmNoL2NvbmZpZ3MvbG9vbmdzb24zMl9kZWZjb25maWc6NjIwOkNPTkZJR19TVE1NQUNfRVRIPXlcXG5hcmNoL2xvb25nYXJjaC9jb25maWdzL2xvb25nc29uMzJfZGVmY29uZmlnLTYyMS0jIENPTkZJR19ORVRfVkVORE9SX1NVTiBpcyBub3Qgc2V0XFxuLS1cXG5hcmNoL2xvb25nYXJjaC9jb25maWdzL2xvb25nc29uNjRfZGVmY29uZmlnPTYyNz1DT05GSUdfUjgxNjk9eVxcbi0tXFxuYXJjaC9sb29uZ2FyY2gvY29uZmlncy9sb29uZ3NvbjY0X2RlZmNvbmZpZy02MzUtIyBDT05GSUdfTkVUX1ZFTkRPUl9TTVNDIGlzIG5vdCBzZXRcXG5hcmNoL2xvb25nYXJjaC9jb25maWdzL2xvb25nc29uNjRfZGVmY29uZmlnOjYzNjpDT05GSUdfU1RNTUFDX0VUSD15XFxuYXJjaC9sb29uZ2FyY2gvY29uZmlncy9sb29uZ3NvbjY0X2RlZmNvbmZpZy02MzctIyBDT05GSUdfTkVUX1ZFTkRPUl9TVU4gaXMgbm90IHNldFxcbi0tXFxuYXJjaC9taXBzL2NvbmZpZ3MvY3UxMDAwLW5lb19kZWZjb25maWc9NDI9Q09ORklHX05FVERFVklDRVM9eVxcbmFyY2gvbWlwcy9jb25maWdzL2N1MTAwMC1uZW9fZGVmY29uZmlnOjQzOkNPTkZJR19TVE1NQUNfRVRIPXlcXG5hcmNoL21pcHMvY29uZmlncy9jdTEwMDAtbmVvX2RlZmNvbmZpZy00NC1DT05GSUdfU01TQ19QSFk9eVxcbi0tXFxuYXJjaC9taXBzL2NvbmZpZ3MvY3UxODMwLW5lb19kZWZjb25maWc9NDU9Q09ORklHX05FVERFVklDRVM9eVxcbmFyY2gvbWlwcy9jb25maWdzL2N1MTgzMC1uZW9fZGVmY29uZmlnOjQ2OkNPTkZJR19TVE1NQUNfRVRIPXlcXG5hcmNoL21pcHMvY29uZmlncy9jdTE4MzAtbmVvX2RlZmNvbmZpZy00Ny1DT05GSUdfSUNQTFVTX1BIWT15XFxuLS1cXG5hcmNoL21pcHMvY29uZmlncy9nZW5lcmljL2JvYXJkLW1hcmR1ay5jb25maWc9MjU9Q09ORklHX05FVERFVklDRVM9eVxcbmFyY2gvbWlwcy9jb25maWdzL2dlbmVyaWMvYm9hcmQtbWFyZHVrLmNvbmZpZzoyNjpDT05GSUdfU1RNTUFDX0VUSD15XFxuYXJjaC9taXBzL2NvbmZpZ3MvZ2VuZXJpYy9ib2FyZC1tYXJkdWsuY29uZmlnLTI3LUNPTkZJR19TVE1NQUNfUExBVEZPUk09eVxcbi0tXFxuYXJjaC9taXBzL2NvbmZpZ3MvZ2VuZXJpYy9ib2FyZC1uaTE2OTQ0NS5jb25maWc9MjY9Q09ORklHX05FVERFVklDRVM9eVxcbmFyY2gvbWlwcy9jb25maWdzL2dlbmVyaWMvYm9hcmQtbmkxNjk0NDUuY29uZmlnOjI3OkNPTkZJR19TVE1NQUNfRVRIPXlcXG5hcmNoL21pcHMvY29uZmlncy9nZW5lcmljL2JvYXJkLW5pMTY5NDQ1LmNvbmZpZy0yOC1DT05GSUdfU1RNTUFDX1BMQVRGT1JNPXlcXG4tLVxcbmFyY2gvbWlwcy9jb25maWdzL2xvb25nc29uMV9kZWZjb25maWc9NTE9Q09ORklHX05FVERFVklDRVM9eVxcbi0tXFxuYXJjaC9taXBzL2NvbmZpZ3MvbG9vbmdzb24xX2RlZmNvbmZpZy04OC0jIENPTkZJR19ORVRfVkVORE9SX1NPQ0lPTkVYVCBpcyBub3Qgc2V0XFxuYXJjaC9taXBzL2NvbmZpZ3MvbG9vbmdzb24xX2RlZmNvbmZpZzo4OTpDT05GSUdfU1RNTUFDX0VUSD15XFxuYXJjaC9taXBzL2NvbmZpZ3MvbG9vbmdzb24xX2RlZmNvbmZpZy05MC0jIENPTkZJR19EV01BQ19HRU5FUklDIGlzIG5vdCBzZXRcXG4tLVxcbmFyY2gvbWlwcy9jb25maWdzL2xvb25nc29uMmtfZGVmY29uZmlnPTE3NT1DT05GSUdfUjgxNjk9eVxcbi0tXFxuYXJjaC9taXBzL2NvbmZpZ3MvbG9vbmdzb24ya19kZWZjb25maWctMTgzLSMgQ09ORklHX05FVF9WRU5ET1JfU01TQyBpcyBub3Qgc2V0XFxuYXJjaC9taXBzL2NvbmZpZ3MvbG9vbmdzb24ya19kZWZjb25maWc6MTg0OkNPTkZJR19TVE1NQUNfRVRIPXlcXG5hcmNoL21pcHMvY29uZmlncy9sb29uZ3NvbjJrX2RlZmNvbmZpZy0xODUtIyBDT05GSUdfTkVUX1ZFTkRPUl9TVU4gaXMgbm90IHNldFxcbi0tXFxuYXJjaC9yaXNjdi9jb25maWdzL2RlZmNvbmZpZz0xMzk9Q09ORklHX1I4MTY5PXlcXG5hcmNoL3Jpc2N2L2NvbmZpZ3MvZGVmY29uZmlnOjE0MDpDT05GSUdfU1RNTUFDX0VUSD1tXFxuYXJjaC9yaXNjdi9jb25maWdzL2RlZmNvbmZpZy0xNDEtQ09ORklHX0RXTUFDX1RIRUFEPW1cXG4tLVxcbmRyaXZlcnMvZ3Bpby9ncGlvbGliLW9mLmM9MzQzPXN0YXRpYyB2b2lkIG9mX2dwaW9fZmxhZ3NfcXVpcmtzKGNvbnN0IHN0cnVjdCBkZXZpY2Vfbm9kZSAqbnAsXFxuLS1cXG5kcml2ZXJzL2dwaW8vZ3Bpb2xpYi1vZi5jLTM5OC1cXHQvKiBMZWdhY3kgaGFuZGxpbmcgb2Ygc3RtbWFjJ3MgYWN0aXZlLWxvdyBQSFkgcmVzZXQgbGluZSAqL1xcbmRyaXZlcnMvZ3Bpby9ncGlvbGliLW9mLmM6Mzk5OlxcdGlmIChJU19FTkFCTEVEKENPTkZJR19TVE1NQUNfRVRIKSBcXHUwMDI2XFx1MDAyNlxcbmRyaXZlcnMvZ3Bpby9ncGlvbGliLW9mLmMtNDAwLVxcdCAgICAhc3RyY21wKHByb3BuYW1lLCBcXFwic25wcyxyZXNldC1ncGlvXFxcIikgXFx1MDAyNlxcdTAwMjZcXG4tLVxcbmRyaXZlcnMvZ3B1L2RybS9jaS9hcm02NC5jb25maWc9MzY9Q09ORklHX0RXTUFDX1JPQ0tDSElQPXlcXG5kcml2ZXJzL2dwdS9kcm0vY2kvYXJtNjQuY29uZmlnOjM3OkNPTkZJR19TVE1NQUNfRVRIPXlcXG5kcml2ZXJzL2dwdS9kcm0vY2kvYXJtNjQuY29uZmlnLTM4LUNPTkZJR19UWVBFQ19GVVNCMzAyPXlcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vTWFrZWZpbGUtNS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL01ha2VmaWxlOjY6b2JqLSQoQ09ORklHX1NUTU1BQ19FVEgpICs9IHN0bW1hYy9cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctMS0jIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wLW9ubHlcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnOjI6Y29uZmlnIFNUTU1BQ19FVEhcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTMtXFx0dHJpc3RhdGUgXFxcIlNUTWljcm9lbGVjdHJvbmljcyBNdWx0aS1HaWdhYml0IEV0aGVybmV0IGRyaXZlclxcXCJcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctMTctXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZzoxODppZiBTVE1NQUNfRVRIXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy0xOS1cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc9NDA3PWNvbmZpZyBTVE1NQUNfUENJXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTQxOS1cXHQgIElmIHVuc3VyZSwgc2F5IE4uXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZzo0MjA6ZW5kaWYgIyBTVE1NQUNfRVRIXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9NYWtlZmlsZS0xLSMgU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjBcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9NYWtlZmlsZToyOm9iai0kKENPTkZJR19TVE1NQUNfRVRIKSArPSBzdG1tYWMub1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL01ha2VmaWxlLTMtc3RtbWFjLW9ianM6PSBzdG1tYWNfbWFpbi5vIHN0bW1hY19ldGh0b29sLm8gc3RtbWFjX21kaW8ubyByaW5nX21vZGUub1xcdFxcXFxcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMTVUMTg6MDE6MjguNzkzMTQyMjM0WiIsIlNlcSI6MTUsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjM2NTY1MDY2MjgsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6Ik9rYXksIGhlcmUncyBteSB0YWtlIG9uIHRob3NlIGRldmljZSBkcml2ZXJzLlxuXG4qKkluaXRpYWwgQXNzZXNzbWVudCBhbmQgYSBRdWljayBQaXZvdCoqXG5cbkFscmlnaHQsIGxvb2tpbmcgYXQgdGhlIGRyaXZlciBsYW5kc2NhcGUsIGBTVE1NQUNfRVRIYCwgYFNUTU1BQ19QQ0lgLCBhbmQgYFNUTU1BQ19QTEFURk9STWAgaW1tZWRpYXRlbHkgY29tZSB0byBtaW5kLiBUaGV5IHNlZW0gbGlrZSBzb2xpZCBvcHRpb25zIGZvciBzdGFuZGFyZCBFdGhlcm5ldCBNQUMgY29udHJvbC4gTXkgaW5pdGlhbCBhc3Nlc3NtZW50IGlzIHBvc2l0aXZlIHJlZ2FyZGluZyB0aGVzZSBkcml2ZXJzLlxuXG5CdXQsIGEgbmFnZ2luZyBxdWVzdGlvbiBzdXJmYWNlczogd2hhdCBhYm91dCBgRFdNQUNfR0VORVJJQ2A/IEl0J3MgYmVlbiBhIHdoaWxlIHNpbmNlIEkgc2VyaW91c2x5IGNvbnNpZGVyZWQgdGhhdCBvbmUuIEknbGwgbmVlZCB0byBkcmlsbCBkb3duIGludG8gaXQuIEJldHRlciBjaGVjayB0aGF0IG9uZSBvdXQuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjIwNjY4LCJPdXRwdXRUb2tlbnMiOjIwLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6NTQsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDctMTVUMTg6MDE6MzIuNDQ5NjUxODQyWiIsIlNlcSI6MTYsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo0NTQxMzc2NjA5LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcIkRXTUFDX0dFTkVSSUNcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiYXJjaC9taXBzL2NvbmZpZ3MvZ2VuZXJpYy9ib2FyZC1uaTE2OTQ0NS5jb25maWc9Mjg9Q09ORklHX1NUTU1BQ19QTEFURk9STT15XFxuYXJjaC9taXBzL2NvbmZpZ3MvZ2VuZXJpYy9ib2FyZC1uaTE2OTQ0NS5jb25maWc6Mjk6Q09ORklHX0RXTUFDX0dFTkVSSUM9eVxcbi0tXFxuYXJjaC9taXBzL2NvbmZpZ3MvbG9vbmdzb24xX2RlZmNvbmZpZz04OT1DT05GSUdfU1RNTUFDX0VUSD15XFxuYXJjaC9taXBzL2NvbmZpZ3MvbG9vbmdzb24xX2RlZmNvbmZpZzo5MDojIENPTkZJR19EV01BQ19HRU5FUklDIGlzIG5vdCBzZXRcXG5hcmNoL21pcHMvY29uZmlncy9sb29uZ3NvbjFfZGVmY29uZmlnLTkxLSMgQ09ORklHX05FVF9WRU5ET1JfU1lOT1BTWVMgaXMgbm90IHNldFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZz00ND1jb25maWcgRFdNQUNfRFdDX1FPU19FVEhcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctNTEtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZzo1Mjpjb25maWcgRFdNQUNfR0VORVJJQ1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctNTMtXFx0dHJpc3RhdGUgXFxcIkdlbmVyaWMgZHJpdmVyIGZvciBEV01BQ1xcXCJcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL01ha2VmaWxlPTQxPW9iai0kKENPTkZJR19EV01BQ19MT09OR1NPTjEpXFx0Kz0gZHdtYWMtbG9vbmdzb24xLm9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9NYWtlZmlsZTo0MjpvYmotJChDT05GSUdfRFdNQUNfR0VORVJJQylcXHQrPSBkd21hYy1nZW5lcmljLm9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9NYWtlZmlsZS00My1vYmotJChDT05GSUdfRFdNQUNfSU1YOClcXHQrPSBkd21hYy1pbXgub1xcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0xNVQxODowMTozNi45OTEwMzYxMTFaIiwiU2VxIjoxNywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NDYzMTY0OTcwMSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipSZWZpbmluZyB0aGUgTmV0d29yayBEcml2ZXIgQ29uZmlndXJhdGlvbioqXG5cbk9rYXksIEkgbmVlZCB0byBtYWtlIHNvbWUgYWRkaXRpb25zIHRvIHRoZSBjb25maWd1cmF0aW9uIG9wdGlvbnMgZm9yIHRoaXMgbmV0d29yayBkcml2ZXIuIEkndmUgYWxyZWFkeSBpZGVudGlmaWVkIGEgZmV3LCBidXQgSSB0aGluayB3ZSBjYW4gYmUgbW9yZSBjb21wcmVoZW5zaXZlLiBMZXQncyBhZGQgYERXTUFDX0dFTkVSSUNgIHRvIHRoZSBsaXN0IG9mIHBvdGVudGlhbCBjb25maWd1cmF0aW9ucy5cblxuU28sIHRvIHJlY2FwLCB0aGUgY3VycmVudCBjb25maWdzIGFyZTogYFNUTU1BQ19FVEhgLCBgU1RNTUFDX1BDSWAsIGBTVE1NQUNfUExBVEZPUk1gLCBhbmQgbm93LCBgRFdNQUNfR0VORVJJQ2AuXG5cbldhaXQgYSBtaW51dGUsIEkgYWxzbyByZWNhbGwgYERXTUFDX0lOVEVMYCBiZWluZyB1c2VmdWwgaW4gdGhlIGNvbnRleHQgb2YgUENJLiBJIHNob3VsZCBhZGQgdGhhdCBhcyB3ZWxsLlxuXG5Ob3csIEknbSB0aGlua2luZyBhYm91dCB3aGV0aGVyIGBTVE1NQUNfUENJYCBhbG9uZSBpcyBzdWZmaWNpZW50IGZvciBQQ0kgc3VwcG9ydCwgb3IgaWYgYERXTUFDX0lOVEVMYCBicmluZ3Mgc29tZXRoaW5nIG1vcmUgc3BlY2lmaWMgdG8gdGhlIHRhYmxlLiBBaCB5ZXMsIGBEV01BQ19JTlRFTGAgcHJvdmlkZXMgc3BlY2lmaWMgUENJIElEcy4gU28sIEkgbmVlZCB0byBtYWtlIHN1cmUgYm90aCBhcmUgY29uc2lkZXJlZCB3aGVuIHNldHRpbmcgdGhpbmdzIHVwLlxuXG5KdXN0IHRvIGJlIGFic29sdXRlbHkgY2VydGFpbiwgSSBzaG91bGQgcmV2aXNpdCB0aGUgYHN0bW1hY19wY2kuY2AgZmlsZSB0byByZWZyZXNoIG15IG1lbW9yeSBhbmQgdmVyaWZ5IHRoZSBpbnRlcnBsYXkgYmV0d2VlbiB0aGVzZSBjb25maWd1cmF0aW9ucy4gSXTigJlzIGFsd2F5cyBnb29kIHRvIGJlIHRob3JvdWdoLlxuXG5cbiIsIklucHV0VG9rZW5zIjoyMTI5MSwiT3V0cHV0VG9rZW5zIjoyMSwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjEyMCwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0xNVQxODowMTo0MS42MjI2ODg5MzNaIiwiU2VxIjoxOCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjQyMjA0MDU1OTksIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwic3RtbWFjX2lkX3RhYmxlXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19wY2kuYz0xOTI9c3RhdGljIHZvaWQgc3RtbWFjX3BjaV9yZW1vdmUoc3RydWN0IHBjaV9kZXYgKnBkZXYpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfcGNpLmMtMjAyLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19wY2kuYzoyMDM6c3RhdGljIGNvbnN0IHN0cnVjdCBwY2lfZGV2aWNlX2lkIHN0bW1hY19pZF90YWJsZVtdID0ge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19wY2kuYy0yMDQtXFx0eyBQQ0lfREVWSUNFX0RBVEEoU1RNTUFDLCBTVE1NQUMsIFxcdTAwMjZzdG1tYWNfcGNpX2luZm8pIH0sXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfcGNpLmMtMjA5LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19wY2kuYzoyMTA6TU9EVUxFX0RFVklDRV9UQUJMRShwY2ksIHN0bW1hY19pZF90YWJsZSk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX3BjaS5jLTIxMS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfcGNpLmM9MjEyPXN0YXRpYyBzdHJ1Y3QgcGNpX2RyaXZlciBzdG1tYWNfcGNpX2RyaXZlciA9IHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfcGNpLmMtMjEzLVxcdC5uYW1lID0gU1RNTUFDX1JFU09VUkNFX05BTUUsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX3BjaS5jOjIxNDpcXHQuaWRfdGFibGUgPSBzdG1tYWNfaWRfdGFibGUsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX3BjaS5jLTIxNS1cXHQucHJvYmUgPSBzdG1tYWNfcGNpX3Byb2JlLFxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0xNVQxODowMTo0NS44NDMxMDQzNDFaIiwiU2VxIjoxOSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6Nzc0OTA1OTI0NiwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipNeSBBbmFseXNpcyBvZiB0aGUgU1RNTUFDIERyaXZlciBQYXRjaCoqXG5cbk9rYXksIHNvIGxvb2tpbmcgYXQgdGhpcyBwYXRjaCBmb3IgdGhlIGBzdG1tYWNgIGRyaXZlciwgSSBzZWUgdGhhdCB3ZSdyZSBkZWFsaW5nIHdpdGggcmVzb3VyY2UgbWFuYWdlbWVudCwgc3BlY2lmaWNhbGx5IGFyb3VuZCBETUEgZGVzY3JpcHRvcnMuICBUaGUga2V5IGhlcmUgaXMgdGhhdCB0aGV5J3JlIGNsZWFuaW5nIHVwIHBvaW50ZXJzICphZnRlciogZnJlZWluZyB0aGVzZSBkZXNjcmlwdG9ycywgd2hpY2ggaXMgY3JpdGljYWwgdG8gcHJldmVudGluZyBkb3VibGUtZnJlZXMgYW5kIHVzZS1hZnRlci1mcmVlIHZ1bG5lcmFiaWxpdGllcy4gVGhpcyBpcyBhIGNvbW1vbiBhbmQgaW1wb3J0YW50IGNsYXNzIG9mIGJ1Z3MsIGVzcGVjaWFsbHkgaW4gZHJpdmVycy5cblxuSSd2ZSBjb25maXJtZWQgdGhhdCBgU1RNTUFDX1BDSWAgaXMgdGhlIHJlbGV2YW50IFBDSSBJRCB0byBub3RlLlxuXG5MZXQgbWUgYnJlYWsgZG93biB0aGUgY3JpdGljYWwgYXNwZWN0cyBmb3IgZnV6emluZzpcblxuKiAgICoqV29ydGhGdXp6aW5nOiB0cnVlKiog4oCTIEFic29sdXRlbHksIHRoaXMgaXMgYSBwcmltZSBjYW5kaWRhdGUuIFJlc291cmNlIG1hbmFnZW1lbnQgaXNzdWVzIGFyZSBleGNlbGxlbnQgZnV6eiB0YXJnZXRzLlxuXG4qICAgKipSZWFzb25pbmc6KiogVGhlIHBhdGNoJ3MgZm9jdXMgb24gZml4aW5nIERNQSBkZXNjcmlwdG9yIHBvaW50ZXIgY2xlYW51cCBkaXJlY3RseSBhZGRyZXNzZXMgYSBzaWduaWZpY2FudCBwb3RlbnRpYWwgZm9yIG1lbW9yeSBjb3JydXB0aW9uLiBUaGUgZHJpdmVyJ3MgYWNjZXNzaWJpbGl0eSB0aHJvdWdoIHZpcnR1YWxpemVkIFBDSSBkZXZpY2VzIGFuZCBwbGF0Zm9ybSBkZXZpY2VzIChsaWtlIFFFTVUncyBkZXNpZ253YXJlIE1BQykgbWFrZXMgaXQgZmVhc2libGUgdG8gdGFyZ2V0IHdpdGggZnV6emluZy5cblxuKiAgICoqRm9jdXNTeW1ib2xzOioqIEknbGwgcmVmaW5lIHRoaXMgbGlzdCBhIGJpdCwgYXMgYGZyZWVfZG1hX3J4L3R4X2Rlc2NfcmVzb3VyY2VzYCBhcmUganVzdCB3cmFwcGVycy4gVGhlIG1haW4gZnVuY3Rpb25zIGFmZmVjdGVkIGFyZSB0aGUgb25lcyBwcmVmaXhlZCB3aXRoIGBfX2A6XG5cbiAgICAqICAgYF9fZnJlZV9kbWFfcnhfZGVzY19yZXNvdXJjZXNgXG4gICAgKiAgIGBfX2ZyZWVfZG1hX3R4X2Rlc2NfcmVzb3VyY2VzYFxuICAgICogICBgc3RtbWFjX2Rpc2FibGVfcnhfcXVldWVgXG4gICAgKiAgIGBzdG1tYWNfZW5hYmxlX3J4X3F1ZXVlYFxuICAgICogICBgc3RtbWFjX2Rpc2FibGVfdHhfcXVldWVgXG4gICAgKiAgIGBzdG1tYWNfZW5hYmxlX3R4X3F1ZXVlYFxuXG4qICAgKipFbmFibGVDb25maWdzOioqIEl0J3MgaW1wb3J0YW50IHRvIGtlZXAgdGhlc2UgaW4gbWluZCB3aGVuIHNldHRpbmcgdXAgZnV6emluZyBjb25maWd1cmF0aW9ucy4gV2UgbmVlZCB0byBiZSBhYmxlIHRvIGVuYWJsZSB0aGUgcmVsZXZhbnQgY29uZmlndXJhdGlvbnMgZm9yIHRoZSBkcml2ZXIgdG8gYmUgcHJlc2VudDpcblxuICAgICogICBgU1RNTUFDX0VUSGBcbiAgICAqICAgYFNUTU1BQ19QQ0lgXG4gICAgKiAgIGBTVE1NQUNfUExBVEZPUk1gXG4gICAgKiAgIGBEV01BQ19HRU5FUklDYFxuXG5JIHNob3VsZCBiZSBhYmxlIHRvIGdldCBhIHNvbGlkIHRlc3QgaGFybmVzcyBnb2luZyB3aXRoIHRoYXQuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjIyMTQ3LCJPdXRwdXRUb2tlbnMiOjE5NSwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjMzOSwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0xNVQxODowMTo1My41OTIxNjczMDZaIiwiU2VxIjoyMCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoic2V0LXJlc3VsdHMiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoyNTYwMDIyMTgsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IFtcbiAgICBcIlNUTU1BQ19FVEhcIixcbiAgICBcIlNUTU1BQ19QQ0lcIixcbiAgICBcIlNUTU1BQ19QTEFURk9STVwiLFxuICAgIFwiRFdNQUNfR0VORVJJQ1wiXG4gIF0sXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtcbiAgICBcIl9fZnJlZV9kbWFfcnhfZGVzY19yZXNvdXJjZXNcIixcbiAgICBcIl9fZnJlZV9kbWFfdHhfZGVzY19yZXNvdXJjZXNcIixcbiAgICBcInN0bW1hY19kaXNhYmxlX3J4X3F1ZXVlXCIsXG4gICAgXCJzdG1tYWNfZW5hYmxlX3J4X3F1ZXVlXCIsXG4gICAgXCJzdG1tYWNfZGlzYWJsZV90eF9xdWV1ZVwiLFxuICAgIFwic3RtbWFjX2VuYWJsZV90eF9xdWV1ZVwiXG4gIF0sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIGZpeGVzIGEgcG90ZW50aWFsIGRvdWJsZS1mcmVlIG9yIHVzZS1hZnRlci1mcmVlIGlzc3VlIGluIHRoZSBzdG1tYWMgZHJpdmVyIGJ5IHByb3Blcmx5IGNsZWFyaW5nIHBvaW50ZXJzIGFmdGVyIGZyZWVpbmcgRE1BIGRlc2NyaXB0b3JzLiBUaGUgZHJpdmVyIGNhbiBiZSByZWFjaGVkIHZpYSB2aXJ0dWFsaXplZCBQQ0kgZGV2aWNlcyBvciBwbGF0Zm9ybSBkZXZpY2VzIChlLmcuLCBRRU1VIGRlc2lnbndhcmUgTUFDIGVtdWxhdGlvbikuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IHRydWVcbn0iLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogW1xuICAgIFwiU1RNTUFDX0VUSFwiLFxuICAgIFwiU1RNTUFDX1BDSVwiLFxuICAgIFwiU1RNTUFDX1BMQVRGT1JNXCIsXG4gICAgXCJEV01BQ19HRU5FUklDXCJcbiAgXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW1xuICAgIFwiX19mcmVlX2RtYV9yeF9kZXNjX3Jlc291cmNlc1wiLFxuICAgIFwiX19mcmVlX2RtYV90eF9kZXNjX3Jlc291cmNlc1wiLFxuICAgIFwic3RtbWFjX2Rpc2FibGVfcnhfcXVldWVcIixcbiAgICBcInN0bW1hY19lbmFibGVfcnhfcXVldWVcIixcbiAgICBcInN0bW1hY19kaXNhYmxlX3R4X3F1ZXVlXCIsXG4gICAgXCJzdG1tYWNfZW5hYmxlX3R4X3F1ZXVlXCJcbiAgXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggZml4ZXMgYSBwb3RlbnRpYWwgZG91YmxlLWZyZWUgb3IgdXNlLWFmdGVyLWZyZWUgaXNzdWUgaW4gdGhlIHN0bW1hYyBkcml2ZXIgYnkgcHJvcGVybHkgY2xlYXJpbmcgcG9pbnRlcnMgYWZ0ZXIgZnJlZWluZyBETUEgZGVzY3JpcHRvcnMuIFRoZSBkcml2ZXIgY2FuIGJlIHJlYWNoZWQgdmlhIHZpcnR1YWxpemVkIFBDSSBkZXZpY2VzIG9yIHBsYXRmb3JtIGRldmljZXMgKGUuZy4sIFFFTVUgZGVzaWdud2FyZSBNQUMgZW11bGF0aW9uKS5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogdHJ1ZVxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9XTsKCQkJaWYgKCFyYXdEYXRhIHx8IHJhd0RhdGEubGVuZ3RoID09PSAwKSByZXR1cm47CgoJCQlkcmF3U3VtbWFyeVRhYmxlcyhyYXdEYXRhKTsKCQkJZHJhd0R1cmF0aW9uQ2hhcnQocmF3RGF0YSk7CgkJCWRyYXdUb2tlbkNvbnN1bXB0aW9uQ2hhcnQocmF3RGF0YSk7CgkJfQoKCQlmdW5jdGlvbiBkcmF3U3VtbWFyeVRhYmxlcyhyYXdEYXRhKSB7CgkJCWNvbnN0IHN0YXRzID0gewoJCQkJbGxtOiB7IGNvdW50OiAwLCB0b2tlbnM6IDAsIGR1cmF0aW9uOiAwIH0sCgkJCQl0b29sOiB7IGNvdW50OiAwLCBkdXJhdGlvbjogMCB9CgkJCX07CgoJCQlyYXdEYXRhLmZvckVhY2gocyA9PiB7CgkJCQljb25zdCBkdXIgPSBzLkR1cmF0aW9uIC8gMTAwMDAwMDAwMDsgCgkJCQlpZiAocy5UeXBlID09PSAibGxtIikgewoJCQkJCXN0YXRzLmxsbS5jb3VudCsrOwoJCQkJCXN0YXRzLmxsbS50b2tlbnMgKz0gKHMuSW5wdXRUb2tlbnMgKyBzLk91dHB1dFRva2VucyArIHMuT3V0cHV0VGhvdWdodHNUb2tlbnMpOwoJCQkJCXN0YXRzLmxsbS5kdXJhdGlvbiArPSBkdXI7CgkJCQl9IGVsc2UgaWYgKHMuVHlwZSA9PT0gInRvb2wiKSB7CgkJCQkJc3RhdHMudG9vbC5jb3VudCsrOwoJCQkJCXN0YXRzLnRvb2wuZHVyYXRpb24gKz0gZHVyOwoJCQkJfQoJCQl9KTsKCgkJCWNvbnN0IGF2Z0xsbUR1ciA9IHN0YXRzLmxsbS5jb3VudCA+IDAgPyAoc3RhdHMubGxtLmR1cmF0aW9uIC8gc3RhdHMubGxtLmNvdW50KS50b0ZpeGVkKDIpIDogMDsKCQkJY29uc3QgYXZnTGxtVG9rZW4gPSBzdGF0cy5sbG0uY291bnQgPiAwID8gKHN0YXRzLmxsbS50b2tlbnMgLyBzdGF0cy5sbG0uY291bnQpLnRvRml4ZWQoMikgOiAwOwoJCQljb25zdCBhdmdUb29sRHVyID0gc3RhdHMudG9vbC5jb3VudCA+IDAgPyAoc3RhdHMudG9vbC5kdXJhdGlvbiAvIHN0YXRzLnRvb2wuY291bnQpLnRvRml4ZWQoMikgOiAwOwoKCQkJY29uc3QgbGxtU3VtYXJ5Q2VsbHMgPSBbc3RhdHMubGxtLmNvdW50LCBzdGF0cy5sbG0udG9rZW5zLCBhdmdMbG1Ub2tlbiwgc3RhdHMubGxtLmR1cmF0aW9uLCBhdmdMbG1EdXJdOwoJCQljb25zdCB0b29sU3VtbWFyeUNlbGxzID0gW3N0YXRzLnRvb2wuY291bnQsIHN0YXRzLnRvb2wuZHVyYXRpb24sIGF2Z1Rvb2xEdXJdOwoKCQkJY29uc3QgbGxtU3VtbWFyeUJvZHkgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnbGxtX3N1bW1hcnlfc3RhdHNfYm9keScpOwoJCQlsbG1TdW1tYXJ5Qm9keS5pbm5lckhUTUwgPSAiIjsKCQkJY29uc3QgbGxtVHIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0cicpOwoJCQlsbG1TdW1hcnlDZWxscy5mb3JFYWNoKGNlbGwgPT4gewoJCQkJY29uc3QgdGQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ZCcpOwoJCQkJdGQudGV4dENvbnRlbnQgPSBjZWxsOwoJCQkJbGxtVHIuYXBwZW5kQ2hpbGQodGQpOwoJCQl9KTsKCQkJbGxtU3VtbWFyeUJvZHkuYXBwZW5kQ2hpbGQobGxtVHIpOwoKCQkJY29uc3QgdG9vbFN1bW1hcnlCb2R5ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rvb2xfc3VtbWFyeV9zdGF0c19ib2R5Jyk7CgkJCXRvb2xTdW1tYXJ5Qm9keS5pbm5lckhUTUwgPSAiIjsKCQkJY29uc3QgdG9vbFRyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndHInKTsKCQkJdG9vbFN1bW1hcnlDZWxscy5mb3JFYWNoKGNlbGwgPT4gewoJCQkJY29uc3QgdGQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ZCcpOwoJCQkJdGQudGV4dENvbnRlbnQgPSBjZWxsOwoJCQkJdG9vbFRyLmFwcGVuZENoaWxkKHRkKTsKCQkJfSk7CgkJCXRvb2xTdW1tYXJ5Qm9keS5hcHBlbmRDaGlsZCh0b29sVHIpOwoJCX0KCgkJZnVuY3Rpb24gZHJhd0R1cmF0aW9uQ2hhcnQocmF3RGF0YSkgewoJCQljb25zdCBmaWx0ZXJlZFN0ZXBzID0gcmF3RGF0YS5maWx0ZXIoZCA9PiBbImxsbSIsICJ0b29sIl0uaW5jbHVkZXMoZC5UeXBlKSk7CgkJCWNvbnN0IGRhdGEgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uRGF0YVRhYmxlKCk7CgkJCWRhdGEuYWRkQ29sdW1uKCdzdHJpbmcnLCAnU3RlcCcpOwoJCQlkYXRhLmFkZENvbHVtbignbnVtYmVyJywgJ0R1cmF0aW9uJyk7CgkJCWRhdGEuYWRkQ29sdW1uKHt0eXBlOiAnc3RyaW5nJywgcm9sZTogJ3Rvb2x0aXAnfSk7IAoKCQkJZmlsdGVyZWRTdGVwcy5mb3JFYWNoKHMgPT4gewoJCQkJCgkJCQljb25zdCBkdXIgPSBzLkR1cmF0aW9uIC8gMTAwMDAwMDAwMDsKCQkJCWxldCB0b29sdGlwID0gcy5OYW1lOwoJCQkJaWYgKHMuVHlwZSA9PT0gImxsbSIgJiYgcy5Ub29sQ2FsbHMgJiYgcy5Ub29sQ2FsbHMubGVuZ3RoID4gMCkgewoJCQkJCXRvb2x0aXAgKz0gYFxuVG9vbHM6ICR7cy5Ub29sQ2FsbHMuam9pbignLCAnKX1gOwoJCQkJfQoJCQkJZGF0YS5hZGRSb3coW2Ake3MuU2VxfWAsIGR1ciwgdG9vbHRpcF0pOwoJCQl9KTsKCgkJCWNvbnN0IG9wdGlvbnMgPSB7CgkJCQl0aXRsZTogJ1RpbWUgQ29uc3VtcHRpb24gb2YgTExNL1Rvb2wgQ2FsbHMnLAoJCQkJaEF4aXM6IHsKCQkJCQl0aXRsZTogJ0xMTS9Ub29sIFN0ZXBzJywKCQkJCX0sCgkJCQl2QXhpczogeyB0aXRsZTogJ1NlY29uZHMnIH0sCgkJCQlsZWdlbmQ6IHsgcG9zaXRpb246ICdub25lJyB9LAoJCQkJYmFyOiB7IGdyb3VwV2lkdGg6ICc3NSUnIH0sCgkJCQljaGFydEFyZWE6IHsgd2lkdGg6ICc4NSUnLCBoZWlnaHQ6ICc3MCUnIH0sCgkJCQloZWlnaHQ6IDQwMAoJCQl9OwoKCQkJY29uc3QgY2hhcnQgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uQ29sdW1uQ2hhcnQoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2R1cmF0aW9uX2NoYXJ0X2RpdicpKTsKCQkJY2hhcnQuZHJhdyhkYXRhLCBvcHRpb25zKTsKCQl9CgoJCWZ1bmN0aW9uIGRyYXdUb2tlbkNvbnN1bXB0aW9uQ2hhcnQocmF3RGF0YSkgewoJCQljb25zdCBsbG1TdGVwcyA9IHJhd0RhdGEuZmlsdGVyKGQgPT4gZC5UeXBlID09PSAibGxtIik7CgkJCWlmIChsbG1TdGVwcy5sZW5ndGggPT09IDApIHJldHVybjsKCgkJCWNvbnN0IGRhdGEgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uRGF0YVRhYmxlKCk7CgkJCWRhdGEuYWRkQ29sdW1uKCdzdHJpbmcnLCAnU3RlcCcpOwkJCQoJCQlkYXRhLmFkZENvbHVtbignbnVtYmVyJywgJ1Rva2VucycpOwkJCQoJCQlkYXRhLmFkZENvbHVtbih7dHlwZTogJ3N0cmluZycsIHJvbGU6ICdzdHlsZSd9KTsJCgkJCWRhdGEuYWRkQ29sdW1uKHt0eXBlOiAnc3RyaW5nJywgcm9sZTogJ3Rvb2x0aXAnfSk7CQoKCQkJY29uc3QgYWdlbnRDb2xvcnMgPSB7fTsKCQkJY29uc3QgcGFsZXR0ZSA9IFsnIzQyODVGNCcsICcjREI0NDM3JywgJyNGNEI0MDAnLCAnIzBGOUQ1OCcsICcjQUI0N0JDJywgJyMwMEFDQzEnXTsKCQkJbGV0IGNvbG9ySWR4ID0gMDsKCQkJY29uc3QgYWdlbnRMTE1Db3VudHMgPSB7fTsKCQkJbGxtU3RlcHMuZm9yRWFjaChzID0+IHsKCQkJCWlmICghYWdlbnRDb2xvcnNbcy5OYW1lXSkgewoJCQkJCWFnZW50Q29sb3JzW3MuTmFtZV0gPSBwYWxldHRlW2NvbG9ySWR4ICUgcGFsZXR0ZS5sZW5ndGhdOwoJCQkJCWNvbG9ySWR4Kys7CgkJCQl9CgoJCQkJYWdlbnRMTE1Db3VudHNbcy5OYW1lXSA9IChhZ2VudExMTUNvdW50c1tzLk5hbWVdIHx8IDApICsgMTsKCQkJCWNvbnN0IGxhYmVsID0gYCR7cy5OYW1lfS0ke2FnZW50TExNQ291bnRzW3MuTmFtZV19YDsKCQkJCWNvbnN0IHRvdGFsVG9rZW5zID0gcy5JbnB1dFRva2VucyArIHMuT3V0cHV0VG9rZW5zICsgcy5PdXRwdXRUaG91Z2h0c1Rva2VuczsKCQkJCWNvbnN0IHN0eWxlID0gYGNvbG9yOiAke2FnZW50Q29sb3JzW3MuTmFtZV19YDsKCQkJCWxldCB0b29sdGlwID0gYFRvdGFsIFRva2VuczogJHt0b3RhbFRva2Vuc31cbihJbjogJHtzLklucHV0VG9rZW5zfSwgT3V0OiAke3MuT3V0cHV0VG9rZW5zfSwgVGhvdWdodHM6ICR7cy5PdXRwdXRUaG91Z2h0c1Rva2Vuc30pYDsKCQkJCWlmIChzLlRvb2xDYWxscyAmJiBzLlRvb2xDYWxscy5sZW5ndGggPiAwKSB7CgkJCQkJdG9vbHRpcCArPSBgXG5Ub29sczogJHtzLlRvb2xDYWxscy5qb2luKCcsICcpfWA7CgkJCQl9CgoJCQkJZGF0YS5hZGRSb3coW2xhYmVsLCB0b3RhbFRva2Vucywgc3R5bGUsIHRvb2x0aXBdKTsKCQkJfSk7CgoJCQljb25zdCBvcHRpb25zID0gewoJCQkJdGl0bGU6ICdUb2tlbiBDb25zdW1wdGlvbiBieSBMTE0gQ2FsbHMnLAoJCQkJaEF4aXM6IHsKCQkJCQl0aXRsZTogJ0xMTSBDYWxsIFNlcXVlbmNlJywKCQkJCX0sCgkJCQl2QXhpczogeyB0aXRsZTogJ0NvbnN1bWVkIFRva2VucycgfSwKCQkJCWxlZ2VuZDogeyBwb3NpdGlvbjogJ25vbmUnIH0sCgkJCQliYXI6IHsgZ3JvdXBXaWR0aDogJzc1JScgfSwKCQkJCWNoYXJ0QXJlYTogeyB3aWR0aDogJzg1JScsIGhlaWdodDogJzcwJScgfSwKCQkJCWhlaWdodDogNDAwCgkJCX07CgoJCQljb25zdCBjaGFydCA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5Db2x1bW5DaGFydChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndG9rZW5fY2hhcnRfZGl2JykpOwoJCQljaGFydC5kcmF3KGRhdGEsIG9wdGlvbnMpOwoJCX0KCQlsZXQgYWxsRXhwYW5kZWQgPSBmYWxzZTsKCQlmdW5jdGlvbiB0b2dnbGVBbGxEZXRhaWxzKCkgewoJCQlhbGxFeHBhbmRlZCA9ICFhbGxFeHBhbmRlZDsKCQkJZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgnZGV0YWlscycpLmZvckVhY2goZCA9PiB7CgkJCQlpZiAoYWxsRXhwYW5kZWQpIGQuc2V0QXR0cmlidXRlKCdvcGVuJywgJycpOwoJCQkJZWxzZSBkLnJlbW92ZUF0dHJpYnV0ZSgnb3BlbicpOwoJCQl9KTsKCQl9Cgk8L3NjcmlwdD4KCgo8L2JvZHk+CjwvaHRtbD4K" },ValueFrom:&ValueFrom{Path:/output/result.json,JSONPath:,JQFilter:,Parameter:,Default:nil,Supplied:nil,Event:,Expression:,ConfigMapKeyRef:nil,},GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},Result:nil,ExitCode:*0,} --------- Name: series-workflowvtxv6[1] Phase: Succeeded StartedAt: 2026-07-15 18:02:05 +0000 UTC FinishedAt: 2026-07-15 18:02:05 +0000 UTC Input: nil Output: nil --------- Name: series-workflowvtxv6[1].abort-on-skip-outcome Phase: Skipped StartedAt: 2026-07-15 18:02:05 +0000 UTC FinishedAt: 2026-07-15 18:02:05 +0000 UTC Input: nil Output: nil --------- Name: series-workflowvtxv6[2] Phase: Succeeded StartedAt: 2026-07-15 18:02:05 +0000 UTC FinishedAt: 2026-07-15 19:04:25 +0000 UTC Input: nil Output: nil --------- Name: series-workflowvtxv6[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"3f1f755366687d051174739fb99f7d560202f60b","config_name":"upstream-apparmor-kasan.config","enable_configs":["STMMAC_ETH","STMMAC_PCI","STMMAC_PLATFORM","DWMAC_GENERIC"],"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":["__free_dma_rx_desc_resources","__free_dma_tx_desc_resources","stmmac_disable_rx_queue","stmmac_enable_rx_queue","stmmac_disable_tx_queue","stmmac_enable_tx_queue"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"3f1f755366687d051174739fb99f7d560202f60b","config_name":"upstream-apparmor-kasan.config","enable_configs":["STMMAC_ETH","STMMAC_PCI","STMMAC_PLATFORM","DWMAC_GENERIC"],"series_id":"0d8ea42d-3bed-4938-a31c-e10d225393ad","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-15 18:02:05 +0000 UTC FinishedAt: 2026-07-15 19:04:25 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:element,Default:nil,Value:*{"base":{"arch":"amd64","commit_hash":"3f1f755366687d051174739fb99f7d560202f60b","config_name":"upstream-apparmor-kasan.config","enable_configs":["STMMAC_ETH","STMMAC_PCI","STMMAC_PLATFORM","DWMAC_GENERIC"],"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":["__free_dma_rx_desc_resources","__free_dma_tx_desc_resources","stmmac_disable_rx_queue","stmmac_enable_rx_queue","stmmac_disable_tx_queue","stmmac_enable_tx_queue"],"skip_cover_check":false},"patched":{"arch":"amd64","commit_hash":"3f1f755366687d051174739fb99f7d560202f60b","config_name":"upstream-apparmor-kasan.config","enable_configs":["STMMAC_ETH","STMMAC_PCI","STMMAC_PLATFORM","DWMAC_GENERIC"],"series_id":"0d8ea42d-3bed-4938-a31c-e10d225393ad","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-workflowvtxv6[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"3f1f755366687d051174739fb99f7d560202f60b","config_name":"upstream-apparmor-kasan.config","enable_configs":["STMMAC_ETH","STMMAC_PCI","STMMAC_PLATFORM","DWMAC_GENERIC"],"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":["__free_dma_rx_desc_resources","__free_dma_tx_desc_resources","stmmac_disable_rx_queue","stmmac_enable_rx_queue","stmmac_disable_tx_queue","stmmac_enable_tx_queue"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"3f1f755366687d051174739fb99f7d560202f60b","config_name":"upstream-apparmor-kasan.config","enable_configs":["STMMAC_ETH","STMMAC_PCI","STMMAC_PLATFORM","DWMAC_GENERIC"],"series_id":"0d8ea42d-3bed-4938-a31c-e10d225393ad","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-15 18:02:05 +0000 UTC FinishedAt: 2026-07-15 18:02:26 +0000 UTC Input: nil Output: nil --------- Name: series-workflowvtxv6[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"3f1f755366687d051174739fb99f7d560202f60b","config_name":"upstream-apparmor-kasan.config","enable_configs":["STMMAC_ETH","STMMAC_PCI","STMMAC_PLATFORM","DWMAC_GENERIC"],"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":["__free_dma_rx_desc_resources","__free_dma_tx_desc_resources","stmmac_disable_rx_queue","stmmac_enable_rx_queue","stmmac_disable_tx_queue","stmmac_enable_tx_queue"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"3f1f755366687d051174739fb99f7d560202f60b","config_name":"upstream-apparmor-kasan.config","enable_configs":["STMMAC_ETH","STMMAC_PCI","STMMAC_PLATFORM","DWMAC_GENERIC"],"series_id":"0d8ea42d-3bed-4938-a31c-e10d225393ad","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-15 18:02:05 +0000 UTC FinishedAt: 2026-07-15 18:02:19 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:data,Default:nil,Value:*{"arch":"amd64","commit_hash":"3f1f755366687d051174739fb99f7d560202f60b","config_name":"upstream-apparmor-kasan.config","enable_configs":["STMMAC_ETH","STMMAC_PCI","STMMAC_PLATFORM","DWMAC_GENERIC"],"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-workflowvtxv6/series-workflowvtxv6-convert-artifact-2477644444/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowvtxv6[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"3f1f755366687d051174739fb99f7d560202f60b","config_name":"upstream-apparmor-kasan.config","enable_configs":["STMMAC_ETH","STMMAC_PCI","STMMAC_PLATFORM","DWMAC_GENERIC"],"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":["__free_dma_rx_desc_resources","__free_dma_tx_desc_resources","stmmac_disable_rx_queue","stmmac_enable_rx_queue","stmmac_disable_tx_queue","stmmac_enable_tx_queue"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"3f1f755366687d051174739fb99f7d560202f60b","config_name":"upstream-apparmor-kasan.config","enable_configs":["STMMAC_ETH","STMMAC_PCI","STMMAC_PLATFORM","DWMAC_GENERIC"],"series_id":"0d8ea42d-3bed-4938-a31c-e10d225393ad","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-15 18:02:26 +0000 UTC FinishedAt: 2026-07-15 18:26:05 +0000 UTC Input: nil Output: nil --------- Name: series-workflowvtxv6[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"3f1f755366687d051174739fb99f7d560202f60b","config_name":"upstream-apparmor-kasan.config","enable_configs":["STMMAC_ETH","STMMAC_PCI","STMMAC_PLATFORM","DWMAC_GENERIC"],"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":["__free_dma_rx_desc_resources","__free_dma_tx_desc_resources","stmmac_disable_rx_queue","stmmac_enable_rx_queue","stmmac_disable_tx_queue","stmmac_enable_tx_queue"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"3f1f755366687d051174739fb99f7d560202f60b","config_name":"upstream-apparmor-kasan.config","enable_configs":["STMMAC_ETH","STMMAC_PCI","STMMAC_PLATFORM","DWMAC_GENERIC"],"series_id":"0d8ea42d-3bed-4938-a31c-e10d225393ad","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-15 18:02:26 +0000 UTC FinishedAt: 2026-07-15 18:26:05 +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:*de52ca83-b9b5-4ca0-9d05-809d891fb189,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-workflowvtxv6/series-workflowvtxv6-convert-artifact-2477644444/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": "2fc6a516-13a0-45d0-a3dc-f58b4c2d78a7", "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-workflowvtxv6/series-workflowvtxv6-build-action-307790026/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowvtxv6[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"3f1f755366687d051174739fb99f7d560202f60b","config_name":"upstream-apparmor-kasan.config","enable_configs":["STMMAC_ETH","STMMAC_PCI","STMMAC_PLATFORM","DWMAC_GENERIC"],"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":["__free_dma_rx_desc_resources","__free_dma_tx_desc_resources","stmmac_disable_rx_queue","stmmac_enable_rx_queue","stmmac_disable_tx_queue","stmmac_enable_tx_queue"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"3f1f755366687d051174739fb99f7d560202f60b","config_name":"upstream-apparmor-kasan.config","enable_configs":["STMMAC_ETH","STMMAC_PCI","STMMAC_PLATFORM","DWMAC_GENERIC"],"series_id":"0d8ea42d-3bed-4938-a31c-e10d225393ad","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-15 18:02:26 +0000 UTC FinishedAt: 2026-07-15 18:25:55 +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:*de52ca83-b9b5-4ca0-9d05-809d891fb189,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-workflowvtxv6/series-workflowvtxv6-convert-artifact-2477644444/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": "2fc6a516-13a0-45d0-a3dc-f58b4c2d78a7", "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-workflowvtxv6/series-workflowvtxv6-build-action-307790026/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowvtxv6[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"3f1f755366687d051174739fb99f7d560202f60b","config_name":"upstream-apparmor-kasan.config","enable_configs":["STMMAC_ETH","STMMAC_PCI","STMMAC_PLATFORM","DWMAC_GENERIC"],"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":["__free_dma_rx_desc_resources","__free_dma_tx_desc_resources","stmmac_disable_rx_queue","stmmac_enable_rx_queue","stmmac_disable_tx_queue","stmmac_enable_tx_queue"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"3f1f755366687d051174739fb99f7d560202f60b","config_name":"upstream-apparmor-kasan.config","enable_configs":["STMMAC_ETH","STMMAC_PCI","STMMAC_PLATFORM","DWMAC_GENERIC"],"series_id":"0d8ea42d-3bed-4938-a31c-e10d225393ad","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-15 18:26:05 +0000 UTC FinishedAt: 2026-07-15 18:26:05 +0000 UTC Input: nil Output: nil --------- Name: series-workflowvtxv6[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"3f1f755366687d051174739fb99f7d560202f60b","config_name":"upstream-apparmor-kasan.config","enable_configs":["STMMAC_ETH","STMMAC_PCI","STMMAC_PLATFORM","DWMAC_GENERIC"],"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":["__free_dma_rx_desc_resources","__free_dma_tx_desc_resources","stmmac_disable_rx_queue","stmmac_enable_rx_queue","stmmac_disable_tx_queue","stmmac_enable_tx_queue"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"3f1f755366687d051174739fb99f7d560202f60b","config_name":"upstream-apparmor-kasan.config","enable_configs":["STMMAC_ETH","STMMAC_PCI","STMMAC_PLATFORM","DWMAC_GENERIC"],"series_id":"0d8ea42d-3bed-4938-a31c-e10d225393ad","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-15 18:26:05 +0000 UTC FinishedAt: 2026-07-15 18:26:05 +0000 UTC Input: nil Output: nil --------- Name: series-workflowvtxv6[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"3f1f755366687d051174739fb99f7d560202f60b","config_name":"upstream-apparmor-kasan.config","enable_configs":["STMMAC_ETH","STMMAC_PCI","STMMAC_PLATFORM","DWMAC_GENERIC"],"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":["__free_dma_rx_desc_resources","__free_dma_tx_desc_resources","stmmac_disable_rx_queue","stmmac_enable_rx_queue","stmmac_disable_tx_queue","stmmac_enable_tx_queue"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"3f1f755366687d051174739fb99f7d560202f60b","config_name":"upstream-apparmor-kasan.config","enable_configs":["STMMAC_ETH","STMMAC_PCI","STMMAC_PLATFORM","DWMAC_GENERIC"],"series_id":"0d8ea42d-3bed-4938-a31c-e10d225393ad","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-15 18:26:05 +0000 UTC FinishedAt: 2026-07-15 18:26:15 +0000 UTC Input: nil Output: nil --------- Name: series-workflowvtxv6[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"3f1f755366687d051174739fb99f7d560202f60b","config_name":"upstream-apparmor-kasan.config","enable_configs":["STMMAC_ETH","STMMAC_PCI","STMMAC_PLATFORM","DWMAC_GENERIC"],"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":["__free_dma_rx_desc_resources","__free_dma_tx_desc_resources","stmmac_disable_rx_queue","stmmac_enable_rx_queue","stmmac_disable_tx_queue","stmmac_enable_tx_queue"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"3f1f755366687d051174739fb99f7d560202f60b","config_name":"upstream-apparmor-kasan.config","enable_configs":["STMMAC_ETH","STMMAC_PCI","STMMAC_PLATFORM","DWMAC_GENERIC"],"series_id":"0d8ea42d-3bed-4938-a31c-e10d225393ad","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-15 18:26:05 +0000 UTC FinishedAt: 2026-07-15 18:26:11 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:data,Default:nil,Value:*{"arch":"amd64","commit_hash":"3f1f755366687d051174739fb99f7d560202f60b","config_name":"upstream-apparmor-kasan.config","enable_configs":["STMMAC_ETH","STMMAC_PCI","STMMAC_PLATFORM","DWMAC_GENERIC"],"series_id":"0d8ea42d-3bed-4938-a31c-e10d225393ad","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-workflowvtxv6/series-workflowvtxv6-convert-artifact-179182299/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowvtxv6[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"3f1f755366687d051174739fb99f7d560202f60b","config_name":"upstream-apparmor-kasan.config","enable_configs":["STMMAC_ETH","STMMAC_PCI","STMMAC_PLATFORM","DWMAC_GENERIC"],"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":["__free_dma_rx_desc_resources","__free_dma_tx_desc_resources","stmmac_disable_rx_queue","stmmac_enable_rx_queue","stmmac_disable_tx_queue","stmmac_enable_tx_queue"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"3f1f755366687d051174739fb99f7d560202f60b","config_name":"upstream-apparmor-kasan.config","enable_configs":["STMMAC_ETH","STMMAC_PCI","STMMAC_PLATFORM","DWMAC_GENERIC"],"series_id":"0d8ea42d-3bed-4938-a31c-e10d225393ad","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-15 18:26:15 +0000 UTC FinishedAt: 2026-07-15 18:28:19 +0000 UTC Input: nil Output: nil --------- Name: series-workflowvtxv6[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"3f1f755366687d051174739fb99f7d560202f60b","config_name":"upstream-apparmor-kasan.config","enable_configs":["STMMAC_ETH","STMMAC_PCI","STMMAC_PLATFORM","DWMAC_GENERIC"],"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":["__free_dma_rx_desc_resources","__free_dma_tx_desc_resources","stmmac_disable_rx_queue","stmmac_enable_rx_queue","stmmac_disable_tx_queue","stmmac_enable_tx_queue"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"3f1f755366687d051174739fb99f7d560202f60b","config_name":"upstream-apparmor-kasan.config","enable_configs":["STMMAC_ETH","STMMAC_PCI","STMMAC_PLATFORM","DWMAC_GENERIC"],"series_id":"0d8ea42d-3bed-4938-a31c-e10d225393ad","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-15 18:26:15 +0000 UTC FinishedAt: 2026-07-15 18:28:05 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:base-build-id,Default:nil,Value:*2fc6a516-13a0-45d0-a3dc-f58b4c2d78a7,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-workflowvtxv6/series-workflowvtxv6-build-action-307790026/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-workflowvtxv6[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"3f1f755366687d051174739fb99f7d560202f60b","config_name":"upstream-apparmor-kasan.config","enable_configs":["STMMAC_ETH","STMMAC_PCI","STMMAC_PLATFORM","DWMAC_GENERIC"],"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":["__free_dma_rx_desc_resources","__free_dma_tx_desc_resources","stmmac_disable_rx_queue","stmmac_enable_rx_queue","stmmac_disable_tx_queue","stmmac_enable_tx_queue"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"3f1f755366687d051174739fb99f7d560202f60b","config_name":"upstream-apparmor-kasan.config","enable_configs":["STMMAC_ETH","STMMAC_PCI","STMMAC_PLATFORM","DWMAC_GENERIC"],"series_id":"0d8ea42d-3bed-4938-a31c-e10d225393ad","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-15 18:28:19 +0000 UTC FinishedAt: 2026-07-15 18:28:19 +0000 UTC Input: nil Output: nil --------- Name: series-workflowvtxv6[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"3f1f755366687d051174739fb99f7d560202f60b","config_name":"upstream-apparmor-kasan.config","enable_configs":["STMMAC_ETH","STMMAC_PCI","STMMAC_PLATFORM","DWMAC_GENERIC"],"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":["__free_dma_rx_desc_resources","__free_dma_tx_desc_resources","stmmac_disable_rx_queue","stmmac_enable_rx_queue","stmmac_disable_tx_queue","stmmac_enable_tx_queue"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"3f1f755366687d051174739fb99f7d560202f60b","config_name":"upstream-apparmor-kasan.config","enable_configs":["STMMAC_ETH","STMMAC_PCI","STMMAC_PLATFORM","DWMAC_GENERIC"],"series_id":"0d8ea42d-3bed-4938-a31c-e10d225393ad","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-15 18:28:19 +0000 UTC FinishedAt: 2026-07-15 18:28:19 +0000 UTC Input: nil Output: nil --------- Name: series-workflowvtxv6[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"3f1f755366687d051174739fb99f7d560202f60b","config_name":"upstream-apparmor-kasan.config","enable_configs":["STMMAC_ETH","STMMAC_PCI","STMMAC_PLATFORM","DWMAC_GENERIC"],"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":["__free_dma_rx_desc_resources","__free_dma_tx_desc_resources","stmmac_disable_rx_queue","stmmac_enable_rx_queue","stmmac_disable_tx_queue","stmmac_enable_tx_queue"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"3f1f755366687d051174739fb99f7d560202f60b","config_name":"upstream-apparmor-kasan.config","enable_configs":["STMMAC_ETH","STMMAC_PCI","STMMAC_PLATFORM","DWMAC_GENERIC"],"series_id":"0d8ea42d-3bed-4938-a31c-e10d225393ad","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-15 18:28:19 +0000 UTC FinishedAt: 2026-07-15 18:59:05 +0000 UTC Input: nil Output: nil --------- Name: series-workflowvtxv6[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"3f1f755366687d051174739fb99f7d560202f60b","config_name":"upstream-apparmor-kasan.config","enable_configs":["STMMAC_ETH","STMMAC_PCI","STMMAC_PLATFORM","DWMAC_GENERIC"],"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":["__free_dma_rx_desc_resources","__free_dma_tx_desc_resources","stmmac_disable_rx_queue","stmmac_enable_rx_queue","stmmac_disable_tx_queue","stmmac_enable_tx_queue"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"3f1f755366687d051174739fb99f7d560202f60b","config_name":"upstream-apparmor-kasan.config","enable_configs":["STMMAC_ETH","STMMAC_PCI","STMMAC_PLATFORM","DWMAC_GENERIC"],"series_id":"0d8ea42d-3bed-4938-a31c-e10d225393ad","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-15 18:28:20 +0000 UTC FinishedAt: 2026-07-15 18:59:05 +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:*de52ca83-b9b5-4ca0-9d05-809d891fb189,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-workflowvtxv6/series-workflowvtxv6-convert-artifact-179182299/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": "8cc0a8d3-c47a-4d1e-954a-20d79bdc12ab", "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-workflowvtxv6/series-workflowvtxv6-build-action-216121727/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowvtxv6[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"3f1f755366687d051174739fb99f7d560202f60b","config_name":"upstream-apparmor-kasan.config","enable_configs":["STMMAC_ETH","STMMAC_PCI","STMMAC_PLATFORM","DWMAC_GENERIC"],"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":["__free_dma_rx_desc_resources","__free_dma_tx_desc_resources","stmmac_disable_rx_queue","stmmac_enable_rx_queue","stmmac_disable_tx_queue","stmmac_enable_tx_queue"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"3f1f755366687d051174739fb99f7d560202f60b","config_name":"upstream-apparmor-kasan.config","enable_configs":["STMMAC_ETH","STMMAC_PCI","STMMAC_PLATFORM","DWMAC_GENERIC"],"series_id":"0d8ea42d-3bed-4938-a31c-e10d225393ad","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-15 18:28:20 +0000 UTC FinishedAt: 2026-07-15 18:58: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:*de52ca83-b9b5-4ca0-9d05-809d891fb189,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-workflowvtxv6/series-workflowvtxv6-convert-artifact-179182299/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": "8cc0a8d3-c47a-4d1e-954a-20d79bdc12ab", "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-workflowvtxv6/series-workflowvtxv6-build-action-216121727/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowvtxv6[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"3f1f755366687d051174739fb99f7d560202f60b","config_name":"upstream-apparmor-kasan.config","enable_configs":["STMMAC_ETH","STMMAC_PCI","STMMAC_PLATFORM","DWMAC_GENERIC"],"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":["__free_dma_rx_desc_resources","__free_dma_tx_desc_resources","stmmac_disable_rx_queue","stmmac_enable_rx_queue","stmmac_disable_tx_queue","stmmac_enable_tx_queue"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"3f1f755366687d051174739fb99f7d560202f60b","config_name":"upstream-apparmor-kasan.config","enable_configs":["STMMAC_ETH","STMMAC_PCI","STMMAC_PLATFORM","DWMAC_GENERIC"],"series_id":"0d8ea42d-3bed-4938-a31c-e10d225393ad","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-15 18:59:05 +0000 UTC FinishedAt: 2026-07-15 18:59:05 +0000 UTC Input: nil Output: nil --------- Name: series-workflowvtxv6[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"3f1f755366687d051174739fb99f7d560202f60b","config_name":"upstream-apparmor-kasan.config","enable_configs":["STMMAC_ETH","STMMAC_PCI","STMMAC_PLATFORM","DWMAC_GENERIC"],"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":["__free_dma_rx_desc_resources","__free_dma_tx_desc_resources","stmmac_disable_rx_queue","stmmac_enable_rx_queue","stmmac_disable_tx_queue","stmmac_enable_tx_queue"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"3f1f755366687d051174739fb99f7d560202f60b","config_name":"upstream-apparmor-kasan.config","enable_configs":["STMMAC_ETH","STMMAC_PCI","STMMAC_PLATFORM","DWMAC_GENERIC"],"series_id":"0d8ea42d-3bed-4938-a31c-e10d225393ad","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-15 18:59:05 +0000 UTC FinishedAt: 2026-07-15 18:59:05 +0000 UTC Input: nil Output: nil --------- Name: series-workflowvtxv6[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"3f1f755366687d051174739fb99f7d560202f60b","config_name":"upstream-apparmor-kasan.config","enable_configs":["STMMAC_ETH","STMMAC_PCI","STMMAC_PLATFORM","DWMAC_GENERIC"],"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":["__free_dma_rx_desc_resources","__free_dma_tx_desc_resources","stmmac_disable_rx_queue","stmmac_enable_rx_queue","stmmac_disable_tx_queue","stmmac_enable_tx_queue"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"3f1f755366687d051174739fb99f7d560202f60b","config_name":"upstream-apparmor-kasan.config","enable_configs":["STMMAC_ETH","STMMAC_PCI","STMMAC_PLATFORM","DWMAC_GENERIC"],"series_id":"0d8ea42d-3bed-4938-a31c-e10d225393ad","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-15 18:59:05 +0000 UTC FinishedAt: 2026-07-15 19:01:13 +0000 UTC Input: nil Output: nil --------- Name: series-workflowvtxv6[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"3f1f755366687d051174739fb99f7d560202f60b","config_name":"upstream-apparmor-kasan.config","enable_configs":["STMMAC_ETH","STMMAC_PCI","STMMAC_PLATFORM","DWMAC_GENERIC"],"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":["__free_dma_rx_desc_resources","__free_dma_tx_desc_resources","stmmac_disable_rx_queue","stmmac_enable_rx_queue","stmmac_disable_tx_queue","stmmac_enable_tx_queue"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"3f1f755366687d051174739fb99f7d560202f60b","config_name":"upstream-apparmor-kasan.config","enable_configs":["STMMAC_ETH","STMMAC_PCI","STMMAC_PLATFORM","DWMAC_GENERIC"],"series_id":"0d8ea42d-3bed-4938-a31c-e10d225393ad","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-15 18:59:05 +0000 UTC FinishedAt: 2026-07-15 19:00:58 +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:*8cc0a8d3-c47a-4d1e-954a-20d79bdc12ab,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-workflowvtxv6/series-workflowvtxv6-build-action-216121727/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-workflowvtxv6[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"3f1f755366687d051174739fb99f7d560202f60b","config_name":"upstream-apparmor-kasan.config","enable_configs":["STMMAC_ETH","STMMAC_PCI","STMMAC_PLATFORM","DWMAC_GENERIC"],"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":["__free_dma_rx_desc_resources","__free_dma_tx_desc_resources","stmmac_disable_rx_queue","stmmac_enable_rx_queue","stmmac_disable_tx_queue","stmmac_enable_tx_queue"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"3f1f755366687d051174739fb99f7d560202f60b","config_name":"upstream-apparmor-kasan.config","enable_configs":["STMMAC_ETH","STMMAC_PCI","STMMAC_PLATFORM","DWMAC_GENERIC"],"series_id":"0d8ea42d-3bed-4938-a31c-e10d225393ad","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-15 19:01:13 +0000 UTC FinishedAt: 2026-07-15 19:04:24 +0000 UTC Input: nil Output: nil --------- Name: series-workflowvtxv6[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"3f1f755366687d051174739fb99f7d560202f60b","config_name":"upstream-apparmor-kasan.config","enable_configs":["STMMAC_ETH","STMMAC_PCI","STMMAC_PLATFORM","DWMAC_GENERIC"],"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":["__free_dma_rx_desc_resources","__free_dma_tx_desc_resources","stmmac_disable_rx_queue","stmmac_enable_rx_queue","stmmac_disable_tx_queue","stmmac_enable_tx_queue"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"3f1f755366687d051174739fb99f7d560202f60b","config_name":"upstream-apparmor-kasan.config","enable_configs":["STMMAC_ETH","STMMAC_PCI","STMMAC_PLATFORM","DWMAC_GENERIC"],"series_id":"0d8ea42d-3bed-4938-a31c-e10d225393ad","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-15 19:01:13 +0000 UTC FinishedAt: 2026-07-15 19:04:24 +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":["__free_dma_rx_desc_resources","__free_dma_tx_desc_resources","stmmac_disable_rx_queue","stmmac_enable_rx_queue","stmmac_disable_tx_queue","stmmac_enable_tx_queue"],"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:*2fc6a516-13a0-45d0-a3dc-f58b4c2d78a7,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:patched-build-id,Default:nil,Value:*8cc0a8d3-c47a-4d1e-954a-20d79bdc12ab,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-workflowvtxv6/series-workflowvtxv6-build-action-307790026/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-workflowvtxv6/series-workflowvtxv6-build-action-216121727/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},} Output: nil --------- Name: series-workflowvtxv6[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"3f1f755366687d051174739fb99f7d560202f60b","config_name":"upstream-apparmor-kasan.config","enable_configs":["STMMAC_ETH","STMMAC_PCI","STMMAC_PLATFORM","DWMAC_GENERIC"],"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":["__free_dma_rx_desc_resources","__free_dma_tx_desc_resources","stmmac_disable_rx_queue","stmmac_enable_rx_queue","stmmac_disable_tx_queue","stmmac_enable_tx_queue"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"3f1f755366687d051174739fb99f7d560202f60b","config_name":"upstream-apparmor-kasan.config","enable_configs":["STMMAC_ETH","STMMAC_PCI","STMMAC_PLATFORM","DWMAC_GENERIC"],"series_id":"0d8ea42d-3bed-4938-a31c-e10d225393ad","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-15 19:01:13 +0000 UTC FinishedAt: 2026-07-15 19:01:13 +0000 UTC Input: nil Output: nil --------- Name: series-workflowvtxv6[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"3f1f755366687d051174739fb99f7d560202f60b","config_name":"upstream-apparmor-kasan.config","enable_configs":["STMMAC_ETH","STMMAC_PCI","STMMAC_PLATFORM","DWMAC_GENERIC"],"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":["__free_dma_rx_desc_resources","__free_dma_tx_desc_resources","stmmac_disable_rx_queue","stmmac_enable_rx_queue","stmmac_disable_tx_queue","stmmac_enable_tx_queue"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"3f1f755366687d051174739fb99f7d560202f60b","config_name":"upstream-apparmor-kasan.config","enable_configs":["STMMAC_ETH","STMMAC_PCI","STMMAC_PLATFORM","DWMAC_GENERIC"],"series_id":"0d8ea42d-3bed-4938-a31c-e10d225393ad","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-15 19:01:13 +0000 UTC FinishedAt: 2026-07-15 19:01:13 +0000 UTC Input: nil Output: nil --------- Name: series-workflowvtxv6[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"3f1f755366687d051174739fb99f7d560202f60b","config_name":"upstream-apparmor-kasan.config","enable_configs":["STMMAC_ETH","STMMAC_PCI","STMMAC_PLATFORM","DWMAC_GENERIC"],"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":["__free_dma_rx_desc_resources","__free_dma_tx_desc_resources","stmmac_disable_rx_queue","stmmac_enable_rx_queue","stmmac_disable_tx_queue","stmmac_enable_tx_queue"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"3f1f755366687d051174739fb99f7d560202f60b","config_name":"upstream-apparmor-kasan.config","enable_configs":["STMMAC_ETH","STMMAC_PCI","STMMAC_PLATFORM","DWMAC_GENERIC"],"series_id":"0d8ea42d-3bed-4938-a31c-e10d225393ad","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-15 19:01:14 +0000 UTC FinishedAt: 2026-07-15 19:01:37 +0000 UTC Input: nil Output: nil --------- Name: series-workflowvtxv6[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"3f1f755366687d051174739fb99f7d560202f60b","config_name":"upstream-apparmor-kasan.config","enable_configs":["STMMAC_ETH","STMMAC_PCI","STMMAC_PLATFORM","DWMAC_GENERIC"],"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":["__free_dma_rx_desc_resources","__free_dma_tx_desc_resources","stmmac_disable_rx_queue","stmmac_enable_rx_queue","stmmac_disable_tx_queue","stmmac_enable_tx_queue"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"3f1f755366687d051174739fb99f7d560202f60b","config_name":"upstream-apparmor-kasan.config","enable_configs":["STMMAC_ETH","STMMAC_PCI","STMMAC_PLATFORM","DWMAC_GENERIC"],"series_id":"0d8ea42d-3bed-4938-a31c-e10d225393ad","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-15 19:01:14 +0000 UTC FinishedAt: 2026-07-15 19:01:29 +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":["__free_dma_rx_desc_resources","__free_dma_tx_desc_resources","stmmac_disable_rx_queue","stmmac_enable_rx_queue","stmmac_disable_tx_queue","stmmac_enable_tx_queue"],"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-workflowvtxv6/series-workflowvtxv6-convert-artifact-2555173588/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowvtxv6[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"3f1f755366687d051174739fb99f7d560202f60b","config_name":"upstream-apparmor-kasan.config","enable_configs":["STMMAC_ETH","STMMAC_PCI","STMMAC_PLATFORM","DWMAC_GENERIC"],"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":["__free_dma_rx_desc_resources","__free_dma_tx_desc_resources","stmmac_disable_rx_queue","stmmac_enable_rx_queue","stmmac_disable_tx_queue","stmmac_enable_tx_queue"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"3f1f755366687d051174739fb99f7d560202f60b","config_name":"upstream-apparmor-kasan.config","enable_configs":["STMMAC_ETH","STMMAC_PCI","STMMAC_PLATFORM","DWMAC_GENERIC"],"series_id":"0d8ea42d-3bed-4938-a31c-e10d225393ad","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-15 19:01:14 +0000 UTC FinishedAt: 2026-07-15 19:01:14 +0000 UTC Input: nil Output: nil --------- Name: series-workflowvtxv6[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"3f1f755366687d051174739fb99f7d560202f60b","config_name":"upstream-apparmor-kasan.config","enable_configs":["STMMAC_ETH","STMMAC_PCI","STMMAC_PLATFORM","DWMAC_GENERIC"],"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":["__free_dma_rx_desc_resources","__free_dma_tx_desc_resources","stmmac_disable_rx_queue","stmmac_enable_rx_queue","stmmac_disable_tx_queue","stmmac_enable_tx_queue"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"3f1f755366687d051174739fb99f7d560202f60b","config_name":"upstream-apparmor-kasan.config","enable_configs":["STMMAC_ETH","STMMAC_PCI","STMMAC_PLATFORM","DWMAC_GENERIC"],"series_id":"0d8ea42d-3bed-4938-a31c-e10d225393ad","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-15 19:01:37 +0000 UTC FinishedAt: 2026-07-15 19:04:24 +0000 UTC Input: nil Output: nil --------- Name: series-workflowvtxv6[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"3f1f755366687d051174739fb99f7d560202f60b","config_name":"upstream-apparmor-kasan.config","enable_configs":["STMMAC_ETH","STMMAC_PCI","STMMAC_PLATFORM","DWMAC_GENERIC"],"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":["__free_dma_rx_desc_resources","__free_dma_tx_desc_resources","stmmac_disable_rx_queue","stmmac_enable_rx_queue","stmmac_disable_tx_queue","stmmac_enable_tx_queue"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"3f1f755366687d051174739fb99f7d560202f60b","config_name":"upstream-apparmor-kasan.config","enable_configs":["STMMAC_ETH","STMMAC_PCI","STMMAC_PLATFORM","DWMAC_GENERIC"],"series_id":"0d8ea42d-3bed-4938-a31c-e10d225393ad","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-15 19:01:37 +0000 UTC FinishedAt: 2026-07-15 19:04:03 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:base-build-id,Default:nil,Value:*2fc6a516-13a0-45d0-a3dc-f58b4c2d78a7,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:patched-build-id,Default:nil,Value:*8cc0a8d3-c47a-4d1e-954a-20d79bdc12ab,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-workflowvtxv6/series-workflowvtxv6-build-action-307790026/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-workflowvtxv6/series-workflowvtxv6-build-action-216121727/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-workflowvtxv6/series-workflowvtxv6-convert-artifact-2555173588/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,}