Name: series-workflow6pl42 Phase: Succeeded StartedAt: 2026-07-25 07:46:47 +0000 UTC FinishedAt: 2026-07-25 10:28:16 +0000 UTC Input: nil Output: nil --------- Name: series-workflow6pl42[0] Phase: Succeeded StartedAt: 2026-07-25 07:46:47 +0000 UTC FinishedAt: 2026-07-25 08:21:50 +0000 UTC Input: nil Output: nil --------- Name: series-workflow6pl42[0].run-triage Phase: Succeeded StartedAt: 2026-07-25 07:46:47 +0000 UTC FinishedAt: 2026-07-25 08:21:50 +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": "817ff6efdb7f484ea547218e11e17d8e43daa3b4", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "DP83640_PHY", "NETWORK_PHY_TIMESTAMPING", "PTP_1588_CLOCK", "PHYLIB" ], "series_id": "" }, "patched": { "arch": "amd64", "tree_name": "net", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git", "commit_hash": "817ff6efdb7f484ea547218e11e17d8e43daa3b4", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "DP83640_PHY", "NETWORK_PHY_TIMESTAMPING", "PTP_1588_CLOCK", "PHYLIB" ], "series_id": "9413cfa8-6dc4-4f36-98ed-d10b008c46df" }, "track": "KASAN", "fuzz": { "focus": [ "net" ], "focus_symbols": [ "dp83640_probe", "dp83640_remove", "dp83640_clock_release" ], "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+CgkJCTx0ZD4yMDI2LzA3LzI1IDA4OjE5PC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MW08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O0RQODM2NDBfUEhZJiMzNDssCiAgICAmIzM0O05FVFdPUktfUEhZX1RJTUVTVEFNUElORyYjMzQ7LAogICAgJiMzNDtQVFBfMTU4OF9DTE9DSyYjMzQ7LAogICAgJiMzNDtQSFlMSUImIzM0OwogIF0sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogWwogICAgJiMzNDtkcDgzNjQwX3Byb2JlJiMzNDssCiAgICAmIzM0O2RwODM2NDBfcmVtb3ZlJiMzNDssCiAgICAmIzM0O2RwODM2NDBfY2xvY2tfcmVsZWFzZSYjMzQ7CiAgXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBpbnRyb2R1Y2VzIGEga3JlZiB0byBtYW5hZ2UgdGhlIGxpZmV0aW1lIG9mIGBzdHJ1Y3QgZHA4MzY0MF9jbG9ja2AgaW4gdGhlIERQODM2NDAgUEhZIGRyaXZlciwgcmVwbGFjaW5nIG1hbnVhbCB0ZWFyZG93biBsb2dpYyBpbiBgZHA4MzY0MF9yZW1vdmVgLiBUaGlzIGZpeGVzIHBvdGVudGlhbCB1c2UtYWZ0ZXItZnJlZSBvciBtZW1vcnkgbGVhayBpc3N1ZXMuIFRoZSBQSFkgZHJpdmVyIGNhbiBiZSBwcm9iZWQgYW5kIHJlbW92ZWQgaW4gYSB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudCBieSBlbXVsYXRpbmcgYSBVU0IgbmV0d29yayBhZGFwdGVyIChsaWtlIHNtc2M5NXh4IG9yIGFzaXgpIHRoYXQgcmVnaXN0ZXJzIGFuIE1ESU8gYnVzIGFuZCByZXR1cm5zIHRoZSBEUDgzNjQwIFBIWSBJRCAoMHgyMDAwNWNlMSkgZHVyaW5nIE1ESU8gcmVhZCBvcGVyYXRpb25zLiBUaGVyZWZvcmUsIHRoaXMgY29kZSBpcyByZWFjaGFibGUgYW5kIHdvcnRoIGZ1enppbmcuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogdHJ1ZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MS8xPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjUgMDg6MTk8L3RkPgoJCQk8dGQ+YWN0aW9uPC90ZD4KCQkJPHRkPnJlYWQtcGF0Y2gtZGlmZjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O1BhdGNoRGlmZiYjMzQ7OiAmIzM0O2NvbW1pdCAxM2NmMDI1MjJlMjNhNmJhNDRmNWQ5NjQwY2ZkOWJkZGUzNGE4YTE4XG5BdXRob3I6IHN5ei1jbHVzdGVyIFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXHUwMDNlXG5EYXRlOiAgIFNhdCBKdWwgMjUgMDg6MTk6NDQgMjAyNiAmIzQzOzAwMDBcblxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xuXG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYyBiL2RyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmNcbmluZGV4IDk4NDcyYWJkZDM5MjA4Li4xMDU4N2RiOTVmYjBiNyAxMDA2NDRcbi0tLSBhL2RyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmNcbiYjNDM7JiM0MzsmIzQzOyBiL2RyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmNcbkBAIC0xMCw2ICYjNDM7MTAsNyBAQFxuICNpbmNsdWRlIFx1MDAzY2xpbnV4L2NyYzMyLmhcdTAwM2VcbiAjaW5jbHVkZSBcdTAwM2NsaW51eC9ldGh0b29sLmhcdTAwM2VcbiAjaW5jbHVkZSBcdTAwM2NsaW51eC9rZXJuZWwuaFx1MDAzZVxuJiM0MzsjaW5jbHVkZSBcdTAwM2NsaW51eC9rcmVmLmhcdTAwM2VcbiAjaW5jbHVkZSBcdTAwM2NsaW51eC9saXN0LmhcdTAwM2VcbiAjaW5jbHVkZSBcdTAwM2NsaW51eC9taWkuaFx1MDAzZVxuICNpbmNsdWRlIFx1MDAzY2xpbnV4L21vZHVsZS5oXHUwMDNlXG5AQCAtMTMwLDYgJiM0MzsxMzEsOCBAQCBzdHJ1Y3QgZHA4MzY0MF9wcml2YXRlIHtcbiBzdHJ1Y3QgZHA4MzY0MF9jbG9jayB7XG4gXHQvKiBrZWVwcyB0aGUgaW5zdGFuY2UgaW4gdGhlICYjMzk7cGh5dGVyX2Nsb2NrcyYjMzk7IGxpc3QgKi9cbiBcdHN0cnVjdCBsaXN0X2hlYWQgbGlzdDtcbiYjNDM7XHQvKiB0cmFja3MgYXR0YWNoZWQgb3IgcHJvYmluZyBQSFlzICovXG4mIzQzO1x0c3RydWN0IGtyZWYga3JlZjtcbiBcdC8qIHdlIGNyZWF0ZSBvbmUgY2xvY2sgaW5zdGFuY2UgcGVyIE1JSSBidXMgKi9cbiBcdHN0cnVjdCBtaWlfYnVzICpidXM7XG4gXHQvKiBwcm90ZWN0cyBleHRlbmRlZCByZWdpc3RlcnMgZnJvbSBjb25jdXJyZW50IGFjY2VzcyAqL1xuQEAgLTk1Niw2ICYjNDM7OTU5LDcgQEAgc3RhdGljIHZvaWQgZGVjb2RlX3N0YXR1c19mcmFtZShzdHJ1Y3QgZHA4MzY0MF9wcml2YXRlICpkcDgzNjQwLFxuIHN0YXRpYyB2b2lkIGRwODM2NDBfY2xvY2tfaW5pdChzdHJ1Y3QgZHA4MzY0MF9jbG9jayAqY2xvY2ssIHN0cnVjdCBtaWlfYnVzICpidXMpXG4ge1xuIFx0SU5JVF9MSVNUX0hFQUQoXHUwMDI2Y2xvY2stXHUwMDNlbGlzdCk7XG4mIzQzO1x0a3JlZl9pbml0KFx1MDAyNmNsb2NrLVx1MDAzZWtyZWYpO1xuIFx0Y2xvY2stXHUwMDNlYnVzID0gYnVzO1xuIFx0bXV0ZXhfaW5pdChcdTAwMjZjbG9jay1cdTAwM2VleHRyZWdfbG9jayk7XG4gXHRtdXRleF9pbml0KFx1MDAyNmNsb2NrLVx1MDAzZWNsb2NrX2xvY2spO1xuQEAgLTk5OSwxMSAmIzQzOzEwMDMsOSBAQCBzdGF0aWMgaW50IGNob29zZV90aGlzX3BoeShzdHJ1Y3QgZHA4MzY0MF9jbG9jayAqY2xvY2ssXG4gXHRyZXR1cm4gMDtcbiB9XG4gXG4tc3RhdGljIHN0cnVjdCBkcDgzNjQwX2Nsb2NrICpkcDgzNjQwX2Nsb2NrX2dldChzdHJ1Y3QgZHA4MzY0MF9jbG9jayAqY2xvY2spXG4mIzQzO3N0YXRpYyB2b2lkIGRwODM2NDBfY2xvY2tfbG9jayhzdHJ1Y3QgZHA4MzY0MF9jbG9jayAqY2xvY2spXG4ge1xuLVx0aWYgKGNsb2NrKVxuLVx0XHRtdXRleF9sb2NrKFx1MDAyNmNsb2NrLVx1MDAzZWNsb2NrX2xvY2spO1xuLVx0cmV0dXJuIGNsb2NrO1xuJiM0MztcdG11dGV4X2xvY2soXHUwMDI2Y2xvY2stXHUwMDNlY2xvY2tfbG9jayk7XG4gfVxuIFxuIC8qXG5AQCAtMTAyMSw2ICYjNDM7MTAyMyw3IEBAIHN0YXRpYyBzdHJ1Y3QgZHA4MzY0MF9jbG9jayAqZHA4MzY0MF9jbG9ja19nZXRfYnVzKHN0cnVjdCBtaWlfYnVzICpidXMpXG4gXHRcdHRtcCA9IGxpc3RfZW50cnkodGhpcywgc3RydWN0IGRwODM2NDBfY2xvY2ssIGxpc3QpO1xuIFx0XHRpZiAodG1wLVx1MDAzZWJ1cyA9PSBidXMpIHtcbiBcdFx0XHRjbG9jayA9IHRtcDtcbiYjNDM7XHRcdFx0a3JlZl9nZXQoXHUwMDI2Y2xvY2stXHUwMDNla3JlZik7XG4gXHRcdFx0YnJlYWs7XG4gXHRcdH1cbiBcdH1cbkBAIC0xMDQzLDE0ICYjNDM7MTA0NiwzOCBAQCBzdGF0aWMgc3RydWN0IGRwODM2NDBfY2xvY2sgKmRwODM2NDBfY2xvY2tfZ2V0X2J1cyhzdHJ1Y3QgbWlpX2J1cyAqYnVzKVxuIG91dDpcbiBcdG11dGV4X3VubG9jayhcdTAwMjZwaHl0ZXJfY2xvY2tzX2xvY2spO1xuIFxuLVx0cmV0dXJuIGRwODM2NDBfY2xvY2tfZ2V0KGNsb2NrKTtcbiYjNDM7XHRpZiAoY2xvY2spXG4mIzQzO1x0XHRkcDgzNjQwX2Nsb2NrX2xvY2soY2xvY2spO1xuJiM0MztcbiYjNDM7XHRyZXR1cm4gY2xvY2s7XG4gfVxuIFxuLXN0YXRpYyB2b2lkIGRwODM2NDBfY2xvY2tfcHV0KHN0cnVjdCBkcDgzNjQwX2Nsb2NrICpjbG9jaylcbiYjNDM7c3RhdGljIHZvaWQgZHA4MzY0MF9jbG9ja191bmxvY2soc3RydWN0IGRwODM2NDBfY2xvY2sgKmNsb2NrKVxuIHtcbiBcdG11dGV4X3VubG9jayhcdTAwMjZjbG9jay1cdTAwM2VjbG9ja19sb2NrKTtcbiB9XG4gXG4mIzQzO3N0YXRpYyB2b2lkIGRwODM2NDBfY2xvY2tfcmVsZWFzZShzdHJ1Y3Qga3JlZiAqa3JlZilcbiYjNDM7e1xuJiM0MztcdHN0cnVjdCBkcDgzNjQwX2Nsb2NrICpjbG9jayA9XG4mIzQzO1x0XHRjb250YWluZXJfb2Yoa3JlZiwgc3RydWN0IGRwODM2NDBfY2xvY2ssIGtyZWYpO1xuJiM0MztcbiYjNDM7XHRsaXN0X2RlbChcdTAwMjZjbG9jay1cdTAwM2VsaXN0KTtcbiYjNDM7XHRtdXRleF91bmxvY2soXHUwMDI2cGh5dGVyX2Nsb2Nrc19sb2NrKTtcbiYjNDM7XG4mIzQzO1x0bXV0ZXhfZGVzdHJveShcdTAwMjZjbG9jay1cdTAwM2VleHRyZWdfbG9jayk7XG4mIzQzO1x0bXV0ZXhfZGVzdHJveShcdTAwMjZjbG9jay1cdTAwM2VjbG9ja19sb2NrKTtcbiYjNDM7XHRwdXRfZGV2aWNlKFx1MDAyNmNsb2NrLVx1MDAzZWJ1cy1cdTAwM2VkZXYpO1xuJiM0MztcdGtmcmVlKGNsb2NrLVx1MDAzZWNhcHMucGluX2NvbmZpZyk7XG4mIzQzO1x0a2ZyZWUoY2xvY2spO1xuJiM0Mzt9XG4mIzQzO1xuJiM0MztzdGF0aWMgdm9pZCBkcDgzNjQwX2Nsb2NrX3B1dChzdHJ1Y3QgZHA4MzY0MF9jbG9jayAqY2xvY2spXG4mIzQzO3tcbiYjNDM7XHRrcmVmX3B1dF9tdXRleChcdTAwMjZjbG9jay1cdTAwM2VrcmVmLCBkcDgzNjQwX2Nsb2NrX3JlbGVhc2UsXG4mIzQzO1x0XHQgICAgICAgXHUwMDI2cGh5dGVyX2Nsb2Nrc19sb2NrKTtcbiYjNDM7fVxuJiM0MztcbiBzdGF0aWMgaW50IGRwODM2NDBfc29mdF9yZXNldChzdHJ1Y3QgcGh5X2RldmljZSAqcGh5ZGV2KVxuIHtcbiBcdGludCByZXQ7XG5AQCAtMTQ1MCwxMyAmIzQzOzE0NzcsMTQgQEAgc3RhdGljIGludCBkcDgzNjQwX3Byb2JlKHN0cnVjdCBwaHlfZGV2aWNlICpwaHlkZXYpXG4gXHR9IGVsc2VcbiBcdFx0bGlzdF9hZGRfdGFpbChcdTAwMjZkcDgzNjQwLVx1MDAzZWxpc3QsIFx1MDAyNmNsb2NrLVx1MDAzZXBoeWxpc3QpO1xuIFxuLVx0ZHA4MzY0MF9jbG9ja19wdXQoY2xvY2spO1xuJiM0MztcdGRwODM2NDBfY2xvY2tfdW5sb2NrKGNsb2NrKTtcbiBcdHJldHVybiAwO1xuIFxuIG5vX3JlZ2lzdGVyOlxuIFx0Y2xvY2stXHUwMDNlY2hvc2VuID0gTlVMTDtcbiBcdGtmcmVlKGRwODM2NDApO1xuIG5vX21lbW9yeTpcbiYjNDM7XHRkcDgzNjQwX2Nsb2NrX3VubG9jayhjbG9jayk7XG4gXHRkcDgzNjQwX2Nsb2NrX3B1dChjbG9jayk7XG4gbm9fY2xvY2s6XG4gXHRyZXR1cm4gZXJyO1xuQEAgLTE0NjcsNyAmIzQzOzE0OTUsNiBAQCBzdGF0aWMgdm9pZCBkcDgzNjQwX3JlbW92ZShzdHJ1Y3QgcGh5X2RldmljZSAqcGh5ZGV2KVxuIFx0c3RydWN0IGRwODM2NDBfY2xvY2sgKmNsb2NrO1xuIFx0c3RydWN0IGxpc3RfaGVhZCAqdGhpcywgKm5leHQ7XG4gXHRzdHJ1Y3QgZHA4MzY0MF9wcml2YXRlICp0bXAsICpkcDgzNjQwID0gcGh5ZGV2LVx1MDAzZXByaXY7XG4tXHRib29sIHJlbW92ZV9jbG9jayA9IGZhbHNlO1xuIFxuIFx0aWYgKHBoeWRldi1cdTAwM2VtZGlvLmFkZHIgPT0gQlJPQURDQVNUX0FERFIpXG4gXHRcdHJldHVybjtcbkBAIC0xNDgwLDcgJiM0MzsxNTA3LDggQEAgc3RhdGljIHZvaWQgZHA4MzY0MF9yZW1vdmUoc3RydWN0IHBoeV9kZXZpY2UgKnBoeWRldilcbiBcdHNrYl9xdWV1ZV9wdXJnZShcdTAwMjZkcDgzNjQwLVx1MDAzZXJ4X3F1ZXVlKTtcbiBcdHNrYl9xdWV1ZV9wdXJnZShcdTAwMjZkcDgzNjQwLVx1MDAzZXR4X3F1ZXVlKTtcbiBcbi1cdGNsb2NrID0gZHA4MzY0MF9jbG9ja19nZXQoZHA4MzY0MC1cdTAwM2VjbG9jayk7XG4mIzQzO1x0Y2xvY2sgPSBkcDgzNjQwLVx1MDAzZWNsb2NrO1xuJiM0MztcdGRwODM2NDBfY2xvY2tfbG9jayhjbG9jayk7XG4gXG4gXHRpZiAoZHA4MzY0MCA9PSBjbG9jay1cdTAwM2VjaG9zZW4pIHtcbiBcdFx0cHRwX2Nsb2NrX3VucmVnaXN0ZXIoY2xvY2stXHUwMDNlcHRwX2Nsb2NrKTtcbkBAIC0xNDk1LDIzICYjNDM7MTUyMyw5IEBAIHN0YXRpYyB2b2lkIGRwODM2NDBfcmVtb3ZlKHN0cnVjdCBwaHlfZGV2aWNlICpwaHlkZXYpXG4gXHRcdH1cbiBcdH1cbiBcbi1cdGlmICghY2xvY2stXHUwMDNlY2hvc2VuIFx1MDAyNlx1MDAyNiBsaXN0X2VtcHR5KFx1MDAyNmNsb2NrLVx1MDAzZXBoeWxpc3QpKVxuLVx0XHRyZW1vdmVfY2xvY2sgPSB0cnVlO1xuLVxuJiM0MztcdGRwODM2NDBfY2xvY2tfdW5sb2NrKGNsb2NrKTtcbiBcdGRwODM2NDBfY2xvY2tfcHV0KGNsb2NrKTtcbiBcdGtmcmVlKGRwODM2NDApO1xuLVxuLVx0aWYgKHJlbW92ZV9jbG9jaykge1xuLVx0XHRtdXRleF9sb2NrKFx1MDAyNnBoeXRlcl9jbG9ja3NfbG9jayk7XG4tXHRcdGxpc3RfZGVsKFx1MDAyNmNsb2NrLVx1MDAzZWxpc3QpO1xuLVx0XHRtdXRleF91bmxvY2soXHUwMDI2cGh5dGVyX2Nsb2Nrc19sb2NrKTtcbi1cbi1cdFx0bXV0ZXhfZGVzdHJveShcdTAwMjZjbG9jay1cdTAwM2VleHRyZWdfbG9jayk7XG4tXHRcdG11dGV4X2Rlc3Ryb3koXHUwMDI2Y2xvY2stXHUwMDNlY2xvY2tfbG9jayk7XG4tXHRcdHB1dF9kZXZpY2UoXHUwMDI2Y2xvY2stXHUwMDNlYnVzLVx1MDAzZWRldik7XG4tXHRcdGtmcmVlKGNsb2NrLVx1MDAzZWNhcHMucGluX2NvbmZpZyk7XG4tXHRcdGtmcmVlKGNsb2NrKTtcbi1cdH1cbiB9XG4gXG4gc3RhdGljIHN0cnVjdCBwaHlfZHJpdmVyIGRwODM2NDBfZHJpdmVyW10gPSB7XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Mi8xPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjUgMDg6MTk8L3RkPgoJCQk8dGQ+YWdlbnQ8L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MW08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+YmVzdC1leHBlbnNpdmU8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O0RQODM2NDBfUEhZJiMzNDssCiAgICAmIzM0O05FVFdPUktfUEhZX1RJTUVTVEFNUElORyYjMzQ7LAogICAgJiMzNDtQVFBfMTU4OF9DTE9DSyYjMzQ7LAogICAgJiMzNDtQSFlMSUImIzM0OwogIF0sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogWwogICAgJiMzNDtkcDgzNjQwX3Byb2JlJiMzNDssCiAgICAmIzM0O2RwODM2NDBfcmVtb3ZlJiMzNDssCiAgICAmIzM0O2RwODM2NDBfY2xvY2tfcmVsZWFzZSYjMzQ7CiAgXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBpbnRyb2R1Y2VzIGEga3JlZiB0byBtYW5hZ2UgdGhlIGxpZmV0aW1lIG9mIGBzdHJ1Y3QgZHA4MzY0MF9jbG9ja2AgaW4gdGhlIERQODM2NDAgUEhZIGRyaXZlciwgcmVwbGFjaW5nIG1hbnVhbCB0ZWFyZG93biBsb2dpYyBpbiBgZHA4MzY0MF9yZW1vdmVgLiBUaGlzIGZpeGVzIHBvdGVudGlhbCB1c2UtYWZ0ZXItZnJlZSBvciBtZW1vcnkgbGVhayBpc3N1ZXMuIFRoZSBQSFkgZHJpdmVyIGNhbiBiZSBwcm9iZWQgYW5kIHJlbW92ZWQgaW4gYSB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudCBieSBlbXVsYXRpbmcgYSBVU0IgbmV0d29yayBhZGFwdGVyIChsaWtlIHNtc2M5NXh4IG9yIGFzaXgpIHRoYXQgcmVnaXN0ZXJzIGFuIE1ESU8gYnVzIGFuZCByZXR1cm5zIHRoZSBEUDgzNjQwIFBIWSBJRCAoMHgyMDAwNWNlMSkgZHVyaW5nIE1ESU8gcmVhZCBvcGVyYXRpb25zLiBUaGVyZWZvcmUsIHRoaXMgY29kZSBpcyByZWFjaGFibGUgYW5kIHdvcnRoIGZ1enppbmcuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogdHJ1ZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5JbnN0cnVjdGlvbjo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPllvdSBhcmUgYW4gZXhwZXJ0IExpbnV4IGtlcm5lbCBtYWludGFpbmVyLgpZb3VyIGpvYiBpcyB0byByZXZpZXcgYSBwcm92aWRlZCBwYXRjaCBzZXJpZXMgYW5kIGRldGVybWluZQppZiBpdCBtYWtlcyBmdW5jdGlvbmFsIGNoYW5nZXMgdG8gdGhlIGtlcm5lbCB0aGF0IHNob3VsZCBiZSBmdXp6ZWQuCgpJTVBPUlRBTlQ6IFRoZSBjaGFuZ2VzIGhhdmUgQUxSRUFEWSBiZWVuIGFwcGxpZWQgYW5kIGNvbW1pdHRlZCBhcyB0aGUgSEVBRCBjb21taXQgaW4KeW91ciB3b3Jrc3BhY2UuIERvIE5PVCByZWx5IG9uIHlvdXIgaW50ZXJuYWwga25vd2xlZGdlIG9mIHRoZSBrZXJuZWwuIFlvdSBtdXN0IGFjdGl2ZWx5CnVzZSB5b3VyIGNvZGUgYWNjZXNzIHRvb2xzIHRvIGV4YW1pbmUgdGhlIGFjdHVhbCBzb3VyY2UgY29kZSBhbmQgY29uZmlybSBhbnkgYXNzdW1wdGlvbnMuCgpSZXR1cm4gV29ydGhGdXp6aW5nPWZhbHNlIGlmIHRoZSBwYXRjaCBvbmx5IGNvbnRhaW5zOgotIE1vZGlmaWNhdGlvbnMgdG8gRG9jdW1lbnRhdGlvbi8sIEtjb25maWcgZmlsZXMsIG9yIGNvZGUgY29tbWVudHMuCi0gUHVyZWx5IGRlY29yYXRpdmUgY2hhbmdlcywgc3VjaCBhcyBsb2dnaW5nIChlLmcuLCBwcl9lcnIsIHByaW50aykgb3IgdHJhY2Vwb2ludHMuCi0gQ2hhbmdlcyB0byBudW1lcmljIGNvbnN0YW50cyBvciBtYWNyb3MgdGhhdCBkbyBub3QgZnVuY3Rpb25hbGx5IGFsdGVyIGV4ZWN1dGlvbiBmbG93LgotIENvZGUgcGF0aHMgdGhhdCBhcmUgaW1wb3NzaWJsZSB0byByZWFjaCBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBHQ0Ugb3IgUUVNVSwKICBldmVuIHdoZW4gdXRpbGl6aW5nIHNvZnR3YXJlLWVtdWxhdGVkIGhhcmR3YXJlIChlLmcuLCB1c2IgZ2FkZ2V0LCBtYWM4MDIxMV9od3NpbSkuCi0gQ29kZSBpbiB2ZW5kb3Itc3BlY2lmaWMgUENJZSBzd2l0Y2gsIFNtYXJ0TklDLCBvciBHUFUgZHJpdmVycyAoZS5nLiwgbWx4c3csIHBkc19jb3JlLCBxZWQsCiAgaW9uaWMsIGFtZGdwdSkgdGhhdCByZXF1aXJlIHBoeXNpY2FsIFBDSWUgaGFyZHdhcmUgY2FyZHMgbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIFFFTVUuCi0gRHJpdmVyIC5yZW1vdmUsIC5zaHV0ZG93biwgb3IgcGNpX3VucmVnaXN0ZXJfZHJpdmVyIHRlYXJkb3duIGNhbGxiYWNrcyAoZS5nLiwgaWdiX3JlbW92ZSkKICB0aGF0IGFyZSBleGVjdXRlZCBvbmx5IGR1cmluZyBQQ0kgaG90LXVucGx1ZyBvciBzeXNmcyBkcml2ZXIgdW5iaW5kIG9wZXJhdGlvbnMuCgpJZiBpdCBtb2RpZmllcyByZWFjaGFibGUgY29yZSBrZXJuZWwgbG9naWMsIGRyaXZlcnMsIG9yIGFyY2hpdGVjdHVyZXMsIHVzZSB5b3VyIGNvZGUgc2VhcmNoCnRvb2xzIHRvIHZlcmlmeSB0aGUgY29kZSBjYW4gYmUgZXhlY3V0ZWQsIHRoZW4gcmV0dXJuIFdvcnRoRnV6emluZz10cnVlLgoKV2hlbiByZXR1cm5pbmcgV29ydGhGdXp6aW5nPXRydWUsIHlvdSBNVVNUIEFMU086CjEuIEV4dHJhY3QgYW55IHNwZWNpZmljIGtlcm5lbCBmdW5jdGlvbnMgdGhhdCBzaG91bGQgYmUgaGVhdmlseSBmdXp6ZWQgaW50byBGb2N1c1N5bWJvbHMuCiAgIEF2b2lkIGxpc3RpbmcgZ2VuZXJpYyBob3QtcGF0aCBmdW5jdGlvbnMgdG8gcHJldmVudCBza2V3ZWQgdGVzdCBkaXN0cmlidXRpb25zLgogICBQcmVmZXIgbm9uLXN0YXRpYywgbm9uLWlubGluZWQgQVBJIGVudHJ5cG9pbnQgZnVuY3Rpb25zIG92ZXIgaW50ZXJuYWwgc3RhdGljIGhlbHBlciBmdW5jdGlvbnMKICAgKHdoaWNoIGFyZSBpbmxpbmVkIGJ5IHRoZSBjb21waWxlciBhbmQgZG8gbm90IGhhdmUgZGlzdGluY3Qgc3ltYm9sIGFkZHJlc3NlcykuCjIuIElkZW50aWZ5IGFueSBzcGVjaWZpYyBDT05GSUdfIG9wdGlvbnMgcmVxdWlyZWQgdG8gcHJvcGVybHkgdGVzdCB0aGlzIG5ldy9tb2RpZmllZCBmZWF0dXJlLgogICBHbyBhbmQgbG9vayBpbnRvIHRoZSBLY29uZmlnIGZpbGVzIGFuZCBjaGVjayBmb3IgaWZkZWZzIGFyb3VuZCB0aGUgY29kZSwgZG8gbm90IG1ha2UgYXNzdW1wdGlvbnMuCiAgIEFsc28gY2hlY2sgJiMzNDtkZXBlbmRzIG9uJiMzNDsgbGluZXMgaW4gS2NvbmZpZyB0byBpbmNsdWRlIGFueSBub24tc3RhbmRhcmQgcGFyZW50IHN1YnN5c3RlbSBjb25maWdzCiAgIG5lZWRlZCBmb3IgS2J1aWxkIHRvIGNvbXBpbGUgdGhlIGNvZGUgc3RhdGljYWxseSBpbnRvIHZtbGludXguIExpc3QgdGhlbSBpbiB0aGUgRW5hYmxlQ29uZmlncwogICBvdXRwdXQgYXJyYXksIGFuZCBETyBOT1QgYWRkIGEgJiMzOTtDT05GSUdfJiMzOTsgcHJlZml4IChlLmcuLCByZXR1cm4gJiMzNDtORVRfSVBWNCYjMzQ7IGluc3RlYWQgb2YgJiMzNDtDT05GSUdfTkVUX0lQVjQmIzM0OykuClByZWZlciBjYWxsaW5nIHNldmVyYWwgdG9vbHMgYXQgdGhlIHNhbWUgdGltZSB0byBzYXZlIHJvdW5kLXRyaXBzLgoKClVzZSBzZXQtcmVzdWx0cyB0b29sIHRvIHByb3ZpZGUgcmVzdWx0cyBvZiB0aGUgYW5hbHlzaXMuCkl0IG11c3QgYmUgY2FsbGVkIGV4YWN0bHkgb25jZSBiZWZvcmUgdGhlIGZpbmFsIHJlcGx5LgpJZ25vcmUgcmVzdWx0cyBvZiB0aGlzIHRvb2wuCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UHJvbXB0OjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Rm9yIHlvdXIgY29udmVuaWVuY2UsIGhlcmUgaXMgdGhlIGRpZmYgb2YgdGhlIGNoYW5nZXM6CmNvbW1pdCAxM2NmMDI1MjJlMjNhNmJhNDRmNWQ5NjQwY2ZkOWJkZGUzNGE4YTE4CkF1dGhvcjogc3l6LWNsdXN0ZXIgJmx0O3RyaWFnZUBzeXprYWxsZXIuY29tJmd0OwpEYXRlOiAgIFNhdCBKdWwgMjUgMDg6MTk6NDQgMjAyNiAmIzQzOzAwMDAKCiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXcKCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jIGIvZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYwppbmRleCA5ODQ3MmFiZGQzOTIwOC4uMTA1ODdkYjk1ZmIwYjcgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmMKJiM0MzsmIzQzOyYjNDM7IGIvZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYwpAQCAtMTAsNiAmIzQzOzEwLDcgQEAKICNpbmNsdWRlICZsdDtsaW51eC9jcmMzMi5oJmd0OwogI2luY2x1ZGUgJmx0O2xpbnV4L2V0aHRvb2wuaCZndDsKICNpbmNsdWRlICZsdDtsaW51eC9rZXJuZWwuaCZndDsKJiM0MzsjaW5jbHVkZSAmbHQ7bGludXgva3JlZi5oJmd0OwogI2luY2x1ZGUgJmx0O2xpbnV4L2xpc3QuaCZndDsKICNpbmNsdWRlICZsdDtsaW51eC9taWkuaCZndDsKICNpbmNsdWRlICZsdDtsaW51eC9tb2R1bGUuaCZndDsKQEAgLTEzMCw2ICYjNDM7MTMxLDggQEAgc3RydWN0IGRwODM2NDBfcHJpdmF0ZSB7CiBzdHJ1Y3QgZHA4MzY0MF9jbG9jayB7CiAJLyoga2VlcHMgdGhlIGluc3RhbmNlIGluIHRoZSAmIzM5O3BoeXRlcl9jbG9ja3MmIzM5OyBsaXN0ICovCiAJc3RydWN0IGxpc3RfaGVhZCBsaXN0OwomIzQzOwkvKiB0cmFja3MgYXR0YWNoZWQgb3IgcHJvYmluZyBQSFlzICovCiYjNDM7CXN0cnVjdCBrcmVmIGtyZWY7CiAJLyogd2UgY3JlYXRlIG9uZSBjbG9jayBpbnN0YW5jZSBwZXIgTUlJIGJ1cyAqLwogCXN0cnVjdCBtaWlfYnVzICpidXM7CiAJLyogcHJvdGVjdHMgZXh0ZW5kZWQgcmVnaXN0ZXJzIGZyb20gY29uY3VycmVudCBhY2Nlc3MgKi8KQEAgLTk1Niw2ICYjNDM7OTU5LDcgQEAgc3RhdGljIHZvaWQgZGVjb2RlX3N0YXR1c19mcmFtZShzdHJ1Y3QgZHA4MzY0MF9wcml2YXRlICpkcDgzNjQwLAogc3RhdGljIHZvaWQgZHA4MzY0MF9jbG9ja19pbml0KHN0cnVjdCBkcDgzNjQwX2Nsb2NrICpjbG9jaywgc3RydWN0IG1paV9idXMgKmJ1cykKIHsKIAlJTklUX0xJU1RfSEVBRCgmYW1wO2Nsb2NrLSZndDtsaXN0KTsKJiM0MzsJa3JlZl9pbml0KCZhbXA7Y2xvY2stJmd0O2tyZWYpOwogCWNsb2NrLSZndDtidXMgPSBidXM7CiAJbXV0ZXhfaW5pdCgmYW1wO2Nsb2NrLSZndDtleHRyZWdfbG9jayk7CiAJbXV0ZXhfaW5pdCgmYW1wO2Nsb2NrLSZndDtjbG9ja19sb2NrKTsKQEAgLTk5OSwxMSAmIzQzOzEwMDMsOSBAQCBzdGF0aWMgaW50IGNob29zZV90aGlzX3BoeShzdHJ1Y3QgZHA4MzY0MF9jbG9jayAqY2xvY2ssCiAJcmV0dXJuIDA7CiB9CiAKLXN0YXRpYyBzdHJ1Y3QgZHA4MzY0MF9jbG9jayAqZHA4MzY0MF9jbG9ja19nZXQoc3RydWN0IGRwODM2NDBfY2xvY2sgKmNsb2NrKQomIzQzO3N0YXRpYyB2b2lkIGRwODM2NDBfY2xvY2tfbG9jayhzdHJ1Y3QgZHA4MzY0MF9jbG9jayAqY2xvY2spCiB7Ci0JaWYgKGNsb2NrKQotCQltdXRleF9sb2NrKCZhbXA7Y2xvY2stJmd0O2Nsb2NrX2xvY2spOwotCXJldHVybiBjbG9jazsKJiM0MzsJbXV0ZXhfbG9jaygmYW1wO2Nsb2NrLSZndDtjbG9ja19sb2NrKTsKIH0KIAogLyoKQEAgLTEwMjEsNiAmIzQzOzEwMjMsNyBAQCBzdGF0aWMgc3RydWN0IGRwODM2NDBfY2xvY2sgKmRwODM2NDBfY2xvY2tfZ2V0X2J1cyhzdHJ1Y3QgbWlpX2J1cyAqYnVzKQogCQl0bXAgPSBsaXN0X2VudHJ5KHRoaXMsIHN0cnVjdCBkcDgzNjQwX2Nsb2NrLCBsaXN0KTsKIAkJaWYgKHRtcC0mZ3Q7YnVzID09IGJ1cykgewogCQkJY2xvY2sgPSB0bXA7CiYjNDM7CQkJa3JlZl9nZXQoJmFtcDtjbG9jay0mZ3Q7a3JlZik7CiAJCQlicmVhazsKIAkJfQogCX0KQEAgLTEwNDMsMTQgJiM0MzsxMDQ2LDM4IEBAIHN0YXRpYyBzdHJ1Y3QgZHA4MzY0MF9jbG9jayAqZHA4MzY0MF9jbG9ja19nZXRfYnVzKHN0cnVjdCBtaWlfYnVzICpidXMpCiBvdXQ6CiAJbXV0ZXhfdW5sb2NrKCZhbXA7cGh5dGVyX2Nsb2Nrc19sb2NrKTsKIAotCXJldHVybiBkcDgzNjQwX2Nsb2NrX2dldChjbG9jayk7CiYjNDM7CWlmIChjbG9jaykKJiM0MzsJCWRwODM2NDBfY2xvY2tfbG9jayhjbG9jayk7CiYjNDM7CiYjNDM7CXJldHVybiBjbG9jazsKIH0KIAotc3RhdGljIHZvaWQgZHA4MzY0MF9jbG9ja19wdXQoc3RydWN0IGRwODM2NDBfY2xvY2sgKmNsb2NrKQomIzQzO3N0YXRpYyB2b2lkIGRwODM2NDBfY2xvY2tfdW5sb2NrKHN0cnVjdCBkcDgzNjQwX2Nsb2NrICpjbG9jaykKIHsKIAltdXRleF91bmxvY2soJmFtcDtjbG9jay0mZ3Q7Y2xvY2tfbG9jayk7CiB9CiAKJiM0MztzdGF0aWMgdm9pZCBkcDgzNjQwX2Nsb2NrX3JlbGVhc2Uoc3RydWN0IGtyZWYgKmtyZWYpCiYjNDM7ewomIzQzOwlzdHJ1Y3QgZHA4MzY0MF9jbG9jayAqY2xvY2sgPQomIzQzOwkJY29udGFpbmVyX29mKGtyZWYsIHN0cnVjdCBkcDgzNjQwX2Nsb2NrLCBrcmVmKTsKJiM0MzsKJiM0MzsJbGlzdF9kZWwoJmFtcDtjbG9jay0mZ3Q7bGlzdCk7CiYjNDM7CW11dGV4X3VubG9jaygmYW1wO3BoeXRlcl9jbG9ja3NfbG9jayk7CiYjNDM7CiYjNDM7CW11dGV4X2Rlc3Ryb3koJmFtcDtjbG9jay0mZ3Q7ZXh0cmVnX2xvY2spOwomIzQzOwltdXRleF9kZXN0cm95KCZhbXA7Y2xvY2stJmd0O2Nsb2NrX2xvY2spOwomIzQzOwlwdXRfZGV2aWNlKCZhbXA7Y2xvY2stJmd0O2J1cy0mZ3Q7ZGV2KTsKJiM0MzsJa2ZyZWUoY2xvY2stJmd0O2NhcHMucGluX2NvbmZpZyk7CiYjNDM7CWtmcmVlKGNsb2NrKTsKJiM0Mzt9CiYjNDM7CiYjNDM7c3RhdGljIHZvaWQgZHA4MzY0MF9jbG9ja19wdXQoc3RydWN0IGRwODM2NDBfY2xvY2sgKmNsb2NrKQomIzQzO3sKJiM0MzsJa3JlZl9wdXRfbXV0ZXgoJmFtcDtjbG9jay0mZ3Q7a3JlZiwgZHA4MzY0MF9jbG9ja19yZWxlYXNlLAomIzQzOwkJICAgICAgICZhbXA7cGh5dGVyX2Nsb2Nrc19sb2NrKTsKJiM0Mzt9CiYjNDM7CiBzdGF0aWMgaW50IGRwODM2NDBfc29mdF9yZXNldChzdHJ1Y3QgcGh5X2RldmljZSAqcGh5ZGV2KQogewogCWludCByZXQ7CkBAIC0xNDUwLDEzICYjNDM7MTQ3NywxNCBAQCBzdGF0aWMgaW50IGRwODM2NDBfcHJvYmUoc3RydWN0IHBoeV9kZXZpY2UgKnBoeWRldikKIAl9IGVsc2UKIAkJbGlzdF9hZGRfdGFpbCgmYW1wO2RwODM2NDAtJmd0O2xpc3QsICZhbXA7Y2xvY2stJmd0O3BoeWxpc3QpOwogCi0JZHA4MzY0MF9jbG9ja19wdXQoY2xvY2spOwomIzQzOwlkcDgzNjQwX2Nsb2NrX3VubG9jayhjbG9jayk7CiAJcmV0dXJuIDA7CiAKIG5vX3JlZ2lzdGVyOgogCWNsb2NrLSZndDtjaG9zZW4gPSBOVUxMOwogCWtmcmVlKGRwODM2NDApOwogbm9fbWVtb3J5OgomIzQzOwlkcDgzNjQwX2Nsb2NrX3VubG9jayhjbG9jayk7CiAJZHA4MzY0MF9jbG9ja19wdXQoY2xvY2spOwogbm9fY2xvY2s6CiAJcmV0dXJuIGVycjsKQEAgLTE0NjcsNyAmIzQzOzE0OTUsNiBAQCBzdGF0aWMgdm9pZCBkcDgzNjQwX3JlbW92ZShzdHJ1Y3QgcGh5X2RldmljZSAqcGh5ZGV2KQogCXN0cnVjdCBkcDgzNjQwX2Nsb2NrICpjbG9jazsKIAlzdHJ1Y3QgbGlzdF9oZWFkICp0aGlzLCAqbmV4dDsKIAlzdHJ1Y3QgZHA4MzY0MF9wcml2YXRlICp0bXAsICpkcDgzNjQwID0gcGh5ZGV2LSZndDtwcml2OwotCWJvb2wgcmVtb3ZlX2Nsb2NrID0gZmFsc2U7CiAKIAlpZiAocGh5ZGV2LSZndDttZGlvLmFkZHIgPT0gQlJPQURDQVNUX0FERFIpCiAJCXJldHVybjsKQEAgLTE0ODAsNyAmIzQzOzE1MDcsOCBAQCBzdGF0aWMgdm9pZCBkcDgzNjQwX3JlbW92ZShzdHJ1Y3QgcGh5X2RldmljZSAqcGh5ZGV2KQogCXNrYl9xdWV1ZV9wdXJnZSgmYW1wO2RwODM2NDAtJmd0O3J4X3F1ZXVlKTsKIAlza2JfcXVldWVfcHVyZ2UoJmFtcDtkcDgzNjQwLSZndDt0eF9xdWV1ZSk7CiAKLQljbG9jayA9IGRwODM2NDBfY2xvY2tfZ2V0KGRwODM2NDAtJmd0O2Nsb2NrKTsKJiM0MzsJY2xvY2sgPSBkcDgzNjQwLSZndDtjbG9jazsKJiM0MzsJZHA4MzY0MF9jbG9ja19sb2NrKGNsb2NrKTsKIAogCWlmIChkcDgzNjQwID09IGNsb2NrLSZndDtjaG9zZW4pIHsKIAkJcHRwX2Nsb2NrX3VucmVnaXN0ZXIoY2xvY2stJmd0O3B0cF9jbG9jayk7CkBAIC0xNDk1LDIzICYjNDM7MTUyMyw5IEBAIHN0YXRpYyB2b2lkIGRwODM2NDBfcmVtb3ZlKHN0cnVjdCBwaHlfZGV2aWNlICpwaHlkZXYpCiAJCX0KIAl9CiAKLQlpZiAoIWNsb2NrLSZndDtjaG9zZW4gJmFtcDsmYW1wOyBsaXN0X2VtcHR5KCZhbXA7Y2xvY2stJmd0O3BoeWxpc3QpKQotCQlyZW1vdmVfY2xvY2sgPSB0cnVlOwotCiYjNDM7CWRwODM2NDBfY2xvY2tfdW5sb2NrKGNsb2NrKTsKIAlkcDgzNjQwX2Nsb2NrX3B1dChjbG9jayk7CiAJa2ZyZWUoZHA4MzY0MCk7Ci0KLQlpZiAocmVtb3ZlX2Nsb2NrKSB7Ci0JCW11dGV4X2xvY2soJmFtcDtwaHl0ZXJfY2xvY2tzX2xvY2spOwotCQlsaXN0X2RlbCgmYW1wO2Nsb2NrLSZndDtsaXN0KTsKLQkJbXV0ZXhfdW5sb2NrKCZhbXA7cGh5dGVyX2Nsb2Nrc19sb2NrKTsKLQotCQltdXRleF9kZXN0cm95KCZhbXA7Y2xvY2stJmd0O2V4dHJlZ19sb2NrKTsKLQkJbXV0ZXhfZGVzdHJveSgmYW1wO2Nsb2NrLSZndDtjbG9ja19sb2NrKTsKLQkJcHV0X2RldmljZSgmYW1wO2Nsb2NrLSZndDtidXMtJmd0O2Rldik7Ci0JCWtmcmVlKGNsb2NrLSZndDtjYXBzLnBpbl9jb25maWcpOwotCQlrZnJlZShjbG9jayk7Ci0JfQogfQogCiBzdGF0aWMgc3RydWN0IHBoeV9kcml2ZXIgZHA4MzY0MF9kcml2ZXJbXSA9IHsKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+My8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjUgMDg6MTk8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMzc2OAoJCQkJCQkJb3V0cHV0OiAyMAoJCQkJCQkJdGhvdWdodHM6IDQ3OAoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipBc3Nlc3NpbmcgdGhlIEZ1enppbmcgUG90ZW50aWFsIG9mIGEgUEhZIERyaXZlciBQYXRjaCoqCgpPa2F5LCBzbyBJJiMzOTttIGxvb2tpbmcgYXQgdGhpcyBwYXRjaCBmb3IgYGRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmNgLiBJdCBzZWVtcyB0aGV5JiMzOTtyZSBpbXBsZW1lbnRpbmcgYSBga3JlZmAgZm9yIHRoZSBgZHA4MzY0MF9jbG9ja2Agc3RydWN0IHRvIG1hbmFnZSBpdHMgbGlmZXRpbWUsIHdoaWNoIGlzIGEgZ29vZCBtb3ZlIHRvIHJlcGxhY2Ugc29tZSBtYW51YWwgcmVtb3ZhbCBsb2dpYy4gVGhleSBhbHNvIHR3ZWFrZWQgYGdldGAgYW5kIGBwdXRgIHRvIGEgYGxvY2tgL2B1bmxvY2tgIHBhcmFkaWdtLCBpbmNvcnBvcmF0aW5nIGBrcmVmX3B1dF9tdXRleGAuIFJpZ2h0LCBzbyB0aGUgY3J1Y2lhbCBxdWVzdGlvbiBpcywgaXMgdGhpcyB3b3J0aCBmdXp6aW5nPwoKRmlyc3QsIGBkcDgzNjQwLmNgIGl0c2VsZi4gSXQmIzM5O3MgYSBQSFkgZHJpdmVyIGZvciBhIE5hdGlvbmFsIFNlbWljb25kdWN0b3IgRFA4MzY0MCDigJMgcHJldHR5IHN0YW5kYXJkIHN0dWZmLCBhIHBoeXNpY2FsIGxheWVyIGludGVyZmFjZS4gUEhZIGRyaXZlcnMgYXJlIHVzdWFsbHkgcHJvYmVkIHdoZW4gdGhlIE1ESU8gYnVzIGRpc2NvdmVycyB0aGVtLiBIbW0sIGNhbiB3ZSB0cmlnZ2VyIHRoaXMgaW4gYSB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudCBmb3IgZnV6emluZz8gQWJzb2x1dGVseSwgd2UgaGF2ZSBhIGZldyBvcHRpb25zLiBNRElPIGNhbiBiZSBlbXVsYXRlZCwgb3Igd2UgY2FuIHVzZSBkdW1teSBQSFlzLiBUaGUgdHJpY2t5IHBhcnQgaXMgY2FuIHdlIGhpdCBpdCB2aWEgbmV0bGluayBvciBldGh0b29sIGNvbW1hbmRzIGlmIHRoZSBQSFkgaXMgZXZlbiByZWdpc3RlcmVkPwoKV2FpdCBhIHNlY29uZCwgUEhZIGRyaXZlcnMgYXJlIHVzdWFsbHkgcHJvYmVkICp3aGVuKiBhIG5ldHdvcmsgZGV2aWNlIHdpdGggYW4gTURJTyBidXMgcmVnaXN0ZXJzIHRoZSBQSFkhIFRoYXQgY2hhbmdlcyB0aGluZ3MuIFN5emthbGxlciBpcyBteSB1c3VhbCB0b29sLCBzbyBJIGhhdmUgdG8gY29uc2lkZXIgaG93IHRvIGdvIGFib3V0IHRoaXMuIGBzeXpfZ2VuZXRsaW5rYCwgYHR1bmAsIG9yIGB2ZXRoYD8gTm9wZSwgYHZldGhgIGRvZXNuJiMzOTt0IGhhdmUgYSBQSFkuIEJ1dCB3aGF0IGFib3V0IGB2aGNpYCwgYG1hYzgwMjExX2h3c2ltYCwgb3IgYG5ldGRldnNpbWA/IFRob3NlICptaWdodCogaGF2ZSBQSFlzLi4uIGFsdGhvdWdoLCB0aGUgYGRwODM2NDBgIGlzIGEgKnNwZWNpZmljKiBoYXJkd2FyZSBQSFkuIEkgZG91YnQgc3l6a2FsbGVyIGFjdHVhbGx5IGVtdWxhdGVzIHRoYXQgdW5sZXNzIHRoZXJlIGlzIGFuIE1ESU8gYnVzIGVtdWxhdG9yLgoKTm93LCBkb2VzIHN5emthbGxlciBoYXZlIHNvbWV0aGluZyBsaWtlIGBtZGlvLW1vY2t1cGA/IE5vcGUuIENhbiB3ZSBpbnN0YW50aWF0ZSBpdCB2aWEgc3lzZnMgb3IgbmV0bGluaywgdGhvdWdoPyBUaGF0IGNvdWxkIGJlIGEgd2F5IGluLiBJJiMzOTttIGdvaW5nIHRvIGhhdmUgdG8gY2hlY2sgaWYgYGRwODM2NDBgIGNhbiBldmVuIGJlIHByb2JlZCByZWxpYWJseS4gVGltZSB0byBmaXJlIHVwIGBncmVwcGVyYCBhbmQgc2VlIGlmIHRoZXJlJiMzOTtzIGFuIG9idmlvdXMgZW50cnkgcG9pbnQgb3IgcHJvYmUgbWVjaGFuaXNtLiBHb3R0YSBmaW5kIHNvbWUgd2F5IHRvIHRyaWdnZXIgdGhhdCBwcm9iZSBwYXRoIHRvIHNlZSBpZiB0aGlzIHBhdGNoIGlzIGV2ZW4gcmVhY2hhYmxlLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjQvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzI1IDA4OjE5PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O2RwODM2NDAmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7XG5GdWxsIG91dHB1dCBpcyB0b28gbG9uZywgc2hvd2luZyA1MDAgb3V0IG9mIDYzMiBsaW5lcy5cblVzZSBtb3JlIHByZWNpc2UgZXhwcmVzc2lvbiBpZiBwb3NzaWJsZS5cblxuTUFJTlRBSU5FUlM9MjE3NDE9RjpcdERvY3VtZW50YXRpb24vZHJpdmVyLWFwaS9wdHAucnN0XG5NQUlOVEFJTkVSUzoyMTc0MjpGOlx0ZHJpdmVycy9uZXQvcGh5L2RwODM2NDAqXG5NQUlOVEFJTkVSUy0yMTc0My1GOlx0ZHJpdmVycy9wdHAvKlxuLS1cbmRyaXZlcnMvbmV0L3BoeS9NYWtlZmlsZT01NT1vYmotJChDT05GSUdfREFWSUNPTV9QSFkpXHQmIzQzOz0gZGF2aWNvbS5vXG5kcml2ZXJzL25ldC9waHkvTWFrZWZpbGU6NTY6b2JqLSQoQ09ORklHX0RQODM2NDBfUEhZKVx0JiM0Mzs9IGRwODM2NDAub1xuZHJpdmVycy9uZXQvcGh5L01ha2VmaWxlLTU3LW9iai0kKENPTkZJR19EUDgzODIyX1BIWSlcdCYjNDM7PSBkcDgzODIyLm9cbi0tXG5kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jLTIzLVxuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYzoyNDojaW5jbHVkZSBcJiMzNDtkcDgzNjQwX3JlZy5oXCYjMzQ7XG5kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jLTI1LVxuLS1cbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmMtNzMtXG5kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jOjc0OnN0cnVjdCBkcDgzNjQwX3NrYl9pbmZvIHtcbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmMtNzUtXHRpbnQgcHRwX3R5cGU7XG4tLVxuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYz05NT1zdHJ1Y3Qgcnh0cyB7XG4tLVxuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYy0xMDMtXG5kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jOjEwNDpzdHJ1Y3QgZHA4MzY0MF9jbG9jaztcbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmMtMTA1LVxuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYzoxMDY6c3RydWN0IGRwODM2NDBfcHJpdmF0ZSB7XG5kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jLTEwNy1cdHN0cnVjdCBsaXN0X2hlYWQgbGlzdDtcbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmM6MTA4Olx0c3RydWN0IGRwODM2NDBfY2xvY2sgKmNsb2NrO1xuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYy0xMDktXHRzdHJ1Y3QgcGh5X2RldmljZSAqcGh5ZGV2O1xuLS1cbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmMtMTMwLVxuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYzoxMzE6c3RydWN0IGRwODM2NDBfY2xvY2sge1xuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYy0xMzItXHQvKiBrZWVwcyB0aGUgaW5zdGFuY2UgaW4gdGhlICYjMzk7cGh5dGVyX2Nsb2NrcyYjMzk7IGxpc3QgKi9cbi0tXG5kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jLTE0Ni1cdC8qIHRoZSBvbmUgcGh5dGVyIGZyb20gd2hpY2ggd2Ugc2hhbGwgcmVhZCAqL1xuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYzoxNDc6XHRzdHJ1Y3QgZHA4MzY0MF9wcml2YXRlICpjaG9zZW47XG5kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jLTE0OC1cdC8qIGxpc3Qgb2YgdGhlIG90aGVyIGF0dGFjaGVkIHBoeXRlcnMsIG5vdCBjaG9zZW4gKi9cbi0tXG5kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jPTE3OD1NT0RVTEVfUEFSTV9ERVNDKGdwaW9fdGFiLFxuLS1cbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmMtMTgwLVxuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYzoxODE6c3RhdGljIHZvaWQgZHA4MzY0MF9ncGlvX2RlZmF1bHRzKHN0cnVjdCBwdHBfcGluX2Rlc2MgKnBkKVxuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYy0xODIte1xuLS1cbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmM9MjI5PXN0YXRpYyBpbnQgZXh0X3JlYWQoc3RydWN0IHBoeV9kZXZpY2UgKnBoeWRldiwgaW50IHBhZ2UsIHUzMiByZWdudW0pXG5kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jLTIzMC17XG5kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jOjIzMTpcdHN0cnVjdCBkcDgzNjQwX3ByaXZhdGUgKmRwODM2NDAgPSBwaHlkZXYtXHUwMDNlcHJpdjtcbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmMtMjMyLVx0aW50IHZhbDtcbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmMtMjMzLVxuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYzoyMzQ6XHRpZiAoZHA4MzY0MC1cdTAwM2VjbG9jay1cdTAwM2VwYWdlICE9IHBhZ2UpIHtcbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmMtMjM1LVx0XHRicm9hZGNhc3Rfd3JpdGUocGh5ZGV2LCBQQUdFU0VMLCBwYWdlKTtcbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmM6MjM2Olx0XHRkcDgzNjQwLVx1MDAzZWNsb2NrLVx1MDAzZXBhZ2UgPSBwYWdlO1xuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYy0yMzctXHR9XG4tLVxuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYz0yNDQ9c3RhdGljIHZvaWQgZXh0X3dyaXRlKGludCBicm9hZGNhc3QsIHN0cnVjdCBwaHlfZGV2aWNlICpwaHlkZXYsXG4tLVxuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYy0yNDYte1xuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYzoyNDc6XHRzdHJ1Y3QgZHA4MzY0MF9wcml2YXRlICpkcDgzNjQwID0gcGh5ZGV2LVx1MDAzZXByaXY7XG5kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jLTI0OC1cbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmM6MjQ5Olx0aWYgKGRwODM2NDAtXHUwMDNlY2xvY2stXHUwMDNlcGFnZSAhPSBwYWdlKSB7XG5kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jLTI1MC1cdFx0YnJvYWRjYXN0X3dyaXRlKHBoeWRldiwgUEFHRVNFTCwgcGFnZSk7XG5kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jOjI1MTpcdFx0ZHA4MzY0MC1cdTAwM2VjbG9jay1cdTAwM2VwYWdlID0gcGFnZTtcbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmMtMjUyLVx0fVxuLS1cbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmM9MjkxPXN0YXRpYyB1NjQgcGh5MnR4dHMoc3RydWN0IHBoeV90eHRzICpwKVxuLS1cbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmMtMzA1LVxuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYzozMDY6c3RhdGljIGludCBwZXJpb2RpY19vdXRwdXQoc3RydWN0IGRwODM2NDBfY2xvY2sgKmNsb2NrLFxuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYy0zMDctXHRcdFx0ICAgc3RydWN0IHB0cF9jbG9ja19yZXF1ZXN0ICpjbGtyZXEsIGJvb2wgb24sXG4tLVxuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYy0zMDkte1xuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYzozMTA6XHRzdHJ1Y3QgZHA4MzY0MF9wcml2YXRlICpkcDgzNjQwID0gY2xvY2stXHUwMDNlY2hvc2VuO1xuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYzozMTE6XHRzdHJ1Y3QgcGh5X2RldmljZSAqcGh5ZGV2ID0gZHA4MzY0MC1cdTAwM2VwaHlkZXY7XG5kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jLTMxMi1cdHUzMiBzZWMsIG5zZWMsIHB3aWR0aDtcbi0tXG5kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jLTM3Ni1cbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmM6Mzc3OnN0YXRpYyBpbnQgcHRwX2RwODM2NDBfYWRqZmluZShzdHJ1Y3QgcHRwX2Nsb2NrX2luZm8gKnB0cCwgbG9uZyBzY2FsZWRfcHBtKVxuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYy0zNzgte1xuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYzozNzk6XHRzdHJ1Y3QgZHA4MzY0MF9jbG9jayAqY2xvY2sgPVxuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYzozODA6XHRcdGNvbnRhaW5lcl9vZihwdHAsIHN0cnVjdCBkcDgzNjQwX2Nsb2NrLCBjYXBzKTtcbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmMtMzgxLVx0c3RydWN0IHBoeV9kZXZpY2UgKnBoeWRldiA9IGNsb2NrLVx1MDAzZWNob3Nlbi1cdTAwM2VwaHlkZXY7XG4tLVxuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYy00MDktXG5kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jOjQxMDpzdGF0aWMgaW50IHB0cF9kcDgzNjQwX2FkanRpbWUoc3RydWN0IHB0cF9jbG9ja19pbmZvICpwdHAsIHM2NCBkZWx0YSlcbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmMtNDExLXtcbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmM6NDEyOlx0c3RydWN0IGRwODM2NDBfY2xvY2sgKmNsb2NrID1cbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmM6NDEzOlx0XHRjb250YWluZXJfb2YocHRwLCBzdHJ1Y3QgZHA4MzY0MF9jbG9jaywgY2Fwcyk7XG5kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jLTQxNC1cdHN0cnVjdCBwaHlfZGV2aWNlICpwaHlkZXYgPSBjbG9jay1cdTAwM2VjaG9zZW4tXHUwMDNlcGh5ZGV2O1xuLS1cbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmMtNDMwLVxuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYzo0MzE6c3RhdGljIGludCBwdHBfZHA4MzY0MF9nZXR0aW1lKHN0cnVjdCBwdHBfY2xvY2tfaW5mbyAqcHRwLFxuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYy00MzItXHRcdFx0ICAgICAgIHN0cnVjdCB0aW1lc3BlYzY0ICp0cylcbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmMtNDMzLXtcbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmM6NDM0Olx0c3RydWN0IGRwODM2NDBfY2xvY2sgKmNsb2NrID1cbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmM6NDM1Olx0XHRjb250YWluZXJfb2YocHRwLCBzdHJ1Y3QgZHA4MzY0MF9jbG9jaywgY2Fwcyk7XG5kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jLTQzNi1cdHN0cnVjdCBwaHlfZGV2aWNlICpwaHlkZXYgPSBjbG9jay1cdTAwM2VjaG9zZW4tXHUwMDNlcGh5ZGV2O1xuLS1cbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmMtNDU1LVxuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYzo0NTY6c3RhdGljIGludCBwdHBfZHA4MzY0MF9zZXR0aW1lKHN0cnVjdCBwdHBfY2xvY2tfaW5mbyAqcHRwLFxuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYy00NTctXHRcdFx0ICAgICAgIGNvbnN0IHN0cnVjdCB0aW1lc3BlYzY0ICp0cylcbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmMtNDU4LXtcbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmM6NDU5Olx0c3RydWN0IGRwODM2NDBfY2xvY2sgKmNsb2NrID1cbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmM6NDYwOlx0XHRjb250YWluZXJfb2YocHRwLCBzdHJ1Y3QgZHA4MzY0MF9jbG9jaywgY2Fwcyk7XG5kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jLTQ2MS1cdHN0cnVjdCBwaHlfZGV2aWNlICpwaHlkZXYgPSBjbG9jay1cdTAwM2VjaG9zZW4tXHUwMDNlcGh5ZGV2O1xuLS1cbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmMtNDcyLVxuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYzo0NzM6c3RhdGljIGludCBwdHBfZHA4MzY0MF9lbmFibGUoc3RydWN0IHB0cF9jbG9ja19pbmZvICpwdHAsXG5kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jLTQ3NC1cdFx0XHQgICAgICBzdHJ1Y3QgcHRwX2Nsb2NrX3JlcXVlc3QgKnJxLCBpbnQgb24pXG5kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jLTQ3NS17XG5kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jOjQ3NjpcdHN0cnVjdCBkcDgzNjQwX2Nsb2NrICpjbG9jayA9XG5kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jOjQ3NzpcdFx0Y29udGFpbmVyX29mKHB0cCwgc3RydWN0IGRwODM2NDBfY2xvY2ssIGNhcHMpO1xuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYy00NzgtXHRzdHJ1Y3QgcGh5X2RldmljZSAqcGh5ZGV2ID0gY2xvY2stXHUwMDNlY2hvc2VuLVx1MDAzZXBoeWRldjtcbi0tXG5kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jLTUyMi1cbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmM6NTIzOnN0YXRpYyBpbnQgcHRwX2RwODM2NDBfdmVyaWZ5KHN0cnVjdCBwdHBfY2xvY2tfaW5mbyAqcHRwLCB1bnNpZ25lZCBpbnQgcGluLFxuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYy01MjQtXHRcdFx0ICAgICAgZW51bSBwdHBfcGluX2Z1bmN0aW9uIGZ1bmMsIHVuc2lnbmVkIGludCBjaGFuKVxuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYy01MjUte1xuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYzo1MjY6XHRzdHJ1Y3QgZHA4MzY0MF9jbG9jayAqY2xvY2sgPVxuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYzo1Mjc6XHRcdGNvbnRhaW5lcl9vZihwdHAsIHN0cnVjdCBkcDgzNjQwX2Nsb2NrLCBjYXBzKTtcbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmMtNTI4LVxuLS1cbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmM9NTQyPXN0YXRpYyB2b2lkIGVuYWJsZV9zdGF0dXNfZnJhbWVzKHN0cnVjdCBwaHlfZGV2aWNlICpwaHlkZXYsIGJvb2wgb24pXG5kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jLTU0My17XG5kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jOjU0NDpcdHN0cnVjdCBkcDgzNjQwX3ByaXZhdGUgKmRwODM2NDAgPSBwaHlkZXYtXHUwMDNlcHJpdjtcbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmM6NTQ1Olx0c3RydWN0IGRwODM2NDBfY2xvY2sgKmNsb2NrID0gZHA4MzY0MC1cdTAwM2VjbG9jaztcbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmMtNTQ2LVx0dTE2IGNmZzAgPSAwLCB2ZXI7XG4tLVxuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYz01ODY9c3RhdGljIGludCBleHBpcmVkKHN0cnVjdCByeHRzICpyeHRzKVxuLS1cbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmMtNTkxLS8qIENhbGxlciBtdXN0IGhvbGQgcnhfbG9jay4gKi9cbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmM6NTkyOnN0YXRpYyB2b2lkIHBydW5lX3J4X3RzKHN0cnVjdCBkcDgzNjQwX3ByaXZhdGUgKmRwODM2NDApXG5kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jLTU5My17XG4tLVxuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYy01OTYtXG5kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jOjU5NzpcdGxpc3RfZm9yX2VhY2hfc2FmZSh0aGlzLCBuZXh0LCBcdTAwMjZkcDgzNjQwLVx1MDAzZXJ4dHMpIHtcbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmMtNTk4LVx0XHRyeHRzID0gbGlzdF9lbnRyeSh0aGlzLCBzdHJ1Y3Qgcnh0cywgbGlzdCk7XG4tLVxuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYy02MDAtXHRcdFx0bGlzdF9kZWxfaW5pdChcdTAwMjZyeHRzLVx1MDAzZWxpc3QpO1xuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYzo2MDE6XHRcdFx0bGlzdF9hZGQoXHUwMDI2cnh0cy1cdTAwM2VsaXN0LCBcdTAwMjZkcDgzNjQwLVx1MDAzZXJ4cG9vbCk7XG5kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jLTYwMi1cdFx0fVxuLS1cbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmM9NjA4PXN0YXRpYyB2b2lkIGVuYWJsZV9icm9hZGNhc3Qoc3RydWN0IHBoeV9kZXZpY2UgKnBoeWRldiwgaW50IGluaXRfcGFnZSwgaW50IG9uKVxuLS1cbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmMtNjIxLVxuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYzo2MjI6c3RhdGljIHZvaWQgcmVjYWxpYnJhdGUoc3RydWN0IGRwODM2NDBfY2xvY2sgKmNsb2NrKVxuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYy02MjMte1xuLS1cbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmMtNjI2LVx0c3RydWN0IHRpbWVzcGVjNjQgdHM7XG5kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jOjYyNzpcdHN0cnVjdCBkcDgzNjQwX3ByaXZhdGUgKnRtcDtcbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmMtNjI4LVx0c3RydWN0IHBoeV9kZXZpY2UgKm1hc3RlciA9IGNsb2NrLVx1MDAzZWNob3Nlbi1cdTAwM2VwaHlkZXY7XG4tLVxuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYz03MzA9c3RhdGljIGlubGluZSB1MTYgZXh0c19jaGFuX3RvX2VkYXRhKGludCBjaClcbi0tXG5kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jLTczNC1cbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmM6NzM1OnN0YXRpYyBpbnQgZGVjb2RlX2V2bnQoc3RydWN0IGRwODM2NDBfcHJpdmF0ZSAqZHA4MzY0MCxcbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmMtNzM2LVx0XHQgICAgICAgdm9pZCAqZGF0YSwgaW50IGxlbiwgdTE2IGVzdHMpXG4tLVxuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYy03NjItXHRjYXNlIDM6XG5kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jOjc2MzpcdFx0ZHA4MzY0MC1cdTAwM2VlZGF0YS5zZWNfaGkgPSBwaHlfdHh0cy1cdTAwM2VzZWNfaGk7XG5kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jLTc2NC1cdFx0ZmFsbHRocm91Z2g7XG5kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jLTc2NS1cdGNhc2UgMjpcbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmM6NzY2Olx0XHRkcDgzNjQwLVx1MDAzZWVkYXRhLnNlY19sbyA9IHBoeV90eHRzLVx1MDAzZXNlY19sbztcbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmMtNzY3LVx0XHRmYWxsdGhyb3VnaDtcbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmMtNzY4LVx0Y2FzZSAxOlxuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYzo3Njk6XHRcdGRwODM2NDAtXHUwMDNlZWRhdGEubnNfaGkgPSBwaHlfdHh0cy1cdTAwM2Vuc19oaTtcbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmMtNzcwLVx0XHRmYWxsdGhyb3VnaDtcbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmMtNzcxLVx0Y2FzZSAwOlxuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYzo3NzI6XHRcdGRwODM2NDAtXHUwMDNlZWRhdGEubnNfbG8gPSBwaHlfdHh0cy1cdTAwM2Vuc19sbztcbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmMtNzczLVx0fVxuLS1cbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmMtNzgwLVx0ZXZlbnQudHlwZSA9IFBUUF9DTE9DS19FWFRUUztcbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmM6NzgxOlx0ZXZlbnQudGltZXN0YW1wID0gcGh5MnR4dHMoXHUwMDI2ZHA4MzY0MC1cdTAwM2VlZGF0YSk7XG5kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jLTc4Mi1cbi0tXG5kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jLTc4OC1cdFx0XHRldmVudC5pbmRleCA9IGk7XG5kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jOjc4OTpcdFx0XHRwdHBfY2xvY2tfZXZlbnQoZHA4MzY0MC1cdTAwM2VjbG9jay1cdTAwM2VwdHBfY2xvY2ssIFx1MDAyNmV2ZW50KTtcbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmMtNzkwLVx0XHR9XG4tLVxuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYz03OTg9c3RhdGljIGludCBtYXRjaChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCB1bnNpZ25lZCBpbnQgdHlwZSwgc3RydWN0IHJ4dHMgKnJ4dHMpXG4tLVxuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYy04MjctXG5kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jOjgyODpzdGF0aWMgdm9pZCBkZWNvZGVfcnh0cyhzdHJ1Y3QgZHA4MzY0MF9wcml2YXRlICpkcDgzNjQwLFxuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYy04MjktXHRcdFx0c3RydWN0IHBoeV9yeHRzICpwaHlfcnh0cylcbi0tXG5kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jLTg0MC1cbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmM6ODQxOlx0c3Bpbl9sb2NrX2lycXNhdmUoXHUwMDI2ZHA4MzY0MC1cdTAwM2VyeF9sb2NrLCBmbGFncyk7XG5kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jLTg0Mi1cbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmM6ODQzOlx0cHJ1bmVfcnhfdHMoZHA4MzY0MCk7XG5kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jLTg0NC1cbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmM6ODQ1Olx0aWYgKGxpc3RfZW1wdHkoXHUwMDI2ZHA4MzY0MC1cdTAwM2VyeHBvb2wpKSB7XG5kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jLTg0Ni1cdFx0cHJfZGVidWcoXCYjMzQ7cnggdGltZXN0YW1wIHBvb2wgaXMgZW1wdHlcXG5cJiMzNDspO1xuLS1cbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmMtODQ4LVx0fVxuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYzo4NDk6XHRyeHRzID0gbGlzdF9maXJzdF9lbnRyeShcdTAwMjZkcDgzNjQwLVx1MDAzZXJ4cG9vbCwgc3RydWN0IHJ4dHMsIGxpc3QpO1xuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYy04NTAtXHRsaXN0X2RlbF9pbml0KFx1MDAyNnJ4dHMtXHUwMDNlbGlzdCk7XG4tLVxuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYy04NTItXG5kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jOjg1MzpcdHNwaW5fbG9jayhcdTAwMjZkcDgzNjQwLVx1MDAzZXJ4X3F1ZXVlLmxvY2spO1xuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYzo4NTQ6XHRza2JfcXVldWVfd2FsayhcdTAwMjZkcDgzNjQwLVx1MDAzZXJ4X3F1ZXVlLCBza2IpIHtcbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmM6ODU1Olx0XHRzdHJ1Y3QgZHA4MzY0MF9za2JfaW5mbyAqc2tiX2luZm87XG5kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jLTg1Ni1cbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmM6ODU3Olx0XHRza2JfaW5mbyA9IChzdHJ1Y3QgZHA4MzY0MF9za2JfaW5mbyAqKXNrYi1cdTAwM2VjYjtcbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmMtODU4LVx0XHRpZiAobWF0Y2goc2tiLCBza2JfaW5mby1cdTAwM2VwdHBfdHlwZSwgcnh0cykpIHtcbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmM6ODU5Olx0XHRcdF9fc2tiX3VubGluayhza2IsIFx1MDAyNmRwODM2NDAtXHUwMDNlcnhfcXVldWUpO1xuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYy04NjAtXHRcdFx0c2hod3RzdGFtcHMgPSBza2JfaHd0c3RhbXBzKHNrYik7XG4tLVxuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYy04NjItXHRcdFx0c2hod3RzdGFtcHMtXHUwMDNlaHd0c3RhbXAgPSBuc190b19rdGltZShyeHRzLVx1MDAzZW5zKTtcbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmM6ODYzOlx0XHRcdGxpc3RfYWRkKFx1MDAyNnJ4dHMtXHUwMDNlbGlzdCwgXHUwMDI2ZHA4MzY0MC1cdTAwM2VyeHBvb2wpO1xuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYy04NjQtXHRcdFx0YnJlYWs7XG4tLVxuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYy04NjYtXHR9XG5kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jOjg2NzpcdHNwaW5fdW5sb2NrKFx1MDAyNmRwODM2NDAtXHUwMDNlcnhfcXVldWUubG9jayk7XG5kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jLTg2OC1cbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmMtODY5LVx0aWYgKCFzaGh3dHN0YW1wcylcbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmM6ODcwOlx0XHRsaXN0X2FkZF90YWlsKFx1MDAyNnJ4dHMtXHUwMDNlbGlzdCwgXHUwMDI2ZHA4MzY0MC1cdTAwM2VyeHRzKTtcbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmMtODcxLW91dDpcbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmM6ODcyOlx0c3Bpbl91bmxvY2tfaXJxcmVzdG9yZShcdTAwMjZkcDgzNjQwLVx1MDAzZXJ4X2xvY2ssIGZsYWdzKTtcbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmMtODczLVxuLS1cbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmMtODc3LVxuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYzo4Nzg6c3RhdGljIHZvaWQgZGVjb2RlX3R4dHMoc3RydWN0IGRwODM2NDBfcHJpdmF0ZSAqZHA4MzY0MCxcbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmMtODc5LVx0XHRcdHN0cnVjdCBwaHlfdHh0cyAqcGh5X3R4dHMpXG4tLVxuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYy04ODEtXHRzdHJ1Y3Qgc2tiX3NoYXJlZF9od3RzdGFtcHMgc2hod3RzdGFtcHM7XG5kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jOjg4MjpcdHN0cnVjdCBkcDgzNjQwX3NrYl9pbmZvICpza2JfaW5mbztcbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmMtODgzLVx0c3RydWN0IHNrX2J1ZmYgKnNrYjtcbi0tXG5kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jLTg4OC1hZ2FpbjpcbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmM6ODg5Olx0c2tiID0gc2tiX2RlcXVldWUoXHUwMDI2ZHA4MzY0MC1cdTAwM2V0eF9xdWV1ZSk7XG5kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jLTg5MC1cdGlmICghc2tiKSB7XG4tLVxuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYy04OTktXHRcdFx0a2ZyZWVfc2tiKHNrYik7XG5kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jOjkwMDpcdFx0XHRza2IgPSBza2JfZGVxdWV1ZShcdTAwMjZkcDgzNjQwLVx1MDAzZXR4X3F1ZXVlKTtcbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmMtOTAxLVx0XHR9XG4tLVxuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYy05MDMtXHR9XG5kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jOjkwNDpcdHNrYl9pbmZvID0gKHN0cnVjdCBkcDgzNjQwX3NrYl9pbmZvICopc2tiLVx1MDAzZWNiO1xuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYy05MDUtXHRpZiAodGltZV9hZnRlcihqaWZmaWVzLCBza2JfaW5mby1cdTAwM2V0bW8pKSB7XG4tLVxuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYy05MTUtXG5kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jOjkxNjpzdGF0aWMgdm9pZCBkZWNvZGVfc3RhdHVzX2ZyYW1lKHN0cnVjdCBkcDgzNjQwX3ByaXZhdGUgKmRwODM2NDAsXG5kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jLTkxNy1cdFx0XHRcdHN0cnVjdCBza19idWZmICpza2IpXG4tLVxuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYy05MzctXHRcdFx0cGh5X3J4dHMgPSAoc3RydWN0IHBoeV9yeHRzICopIHB0cjtcbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmM6OTM4Olx0XHRcdGRlY29kZV9yeHRzKGRwODM2NDAsIHBoeV9yeHRzKTtcbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmMtOTM5LVx0XHRcdHNpemUgPSBzaXplb2YoKnBoeV9yeHRzKTtcbi0tXG5kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jLTk0My1cdFx0XHRwaHlfdHh0cyA9IChzdHJ1Y3QgcGh5X3R4dHMgKikgcHRyO1xuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYzo5NDQ6XHRcdFx0ZGVjb2RlX3R4dHMoZHA4MzY0MCwgcGh5X3R4dHMpO1xuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYy05NDUtXHRcdFx0c2l6ZSA9IHNpemVvZigqcGh5X3R4dHMpO1xuLS1cbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmMtOTQ4LVxuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYzo5NDk6XHRcdFx0c2l6ZSA9IGRlY29kZV9ldm50KGRwODM2NDAsIHB0ciwgbGVuLCBlc3RzKTtcbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmMtOTUwLVxuLS1cbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmMtOTU4LVxuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYzo5NTk6c3RhdGljIHZvaWQgZHA4MzY0MF9jbG9ja19pbml0KHN0cnVjdCBkcDgzNjQwX2Nsb2NrICpjbG9jaywgc3RydWN0IG1paV9idXMgKmJ1cylcbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmMtOTYwLXtcbi0tXG5kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jLTk2Ny1cdGNsb2NrLVx1MDAzZWNhcHMub3duZXIgPSBUSElTX01PRFVMRTtcbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmM6OTY4Olx0c3ByaW50ZihjbG9jay1cdTAwM2VjYXBzLm5hbWUsIFwmIzM0O2RwODM2NDAgdGltZXJcJiMzNDspO1xuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYy05NjktXHRjbG9jay1cdTAwM2VjYXBzLm1heF9hZGpcdD0gMTk1MzEyNDtcbi0tXG5kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jLTk3Ny1cdFx0XHRcdFx0ICAgIFBUUF9TVFJJQ1RfRkxBR1M7XG5kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jOjk3ODpcdGNsb2NrLVx1MDAzZWNhcHMuYWRqZmluZVx0PSBwdHBfZHA4MzY0MF9hZGpmaW5lO1xuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYzo5Nzk6XHRjbG9jay1cdTAwM2VjYXBzLmFkanRpbWVcdD0gcHRwX2RwODM2NDBfYWRqdGltZTtcbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmM6OTgwOlx0Y2xvY2stXHUwMDNlY2Fwcy5nZXR0aW1lNjRcdD0gcHRwX2RwODM2NDBfZ2V0dGltZTtcbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmM6OTgxOlx0Y2xvY2stXHUwMDNlY2Fwcy5zZXR0aW1lNjRcdD0gcHRwX2RwODM2NDBfc2V0dGltZTtcbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmM6OTgyOlx0Y2xvY2stXHUwMDNlY2Fwcy5lbmFibGVcdD0gcHRwX2RwODM2NDBfZW5hYmxlO1xuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYzo5ODM6XHRjbG9jay1cdTAwM2VjYXBzLnZlcmlmeVx0PSBwdHBfZHA4MzY0MF92ZXJpZnk7XG5kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jLTk4NC1cdC8qXG4tLVxuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYy05ODYtXHQgKi9cbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmM6OTg3Olx0ZHA4MzY0MF9ncGlvX2RlZmF1bHRzKGNsb2NrLVx1MDAzZWNhcHMucGluX2NvbmZpZyk7XG5kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jLTk4OC1cdC8qXG4tLVxuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYy05OTMtXG5kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jOjk5NDpzdGF0aWMgaW50IGNob29zZV90aGlzX3BoeShzdHJ1Y3QgZHA4MzY0MF9jbG9jayAqY2xvY2ssXG5kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jLTk5NS1cdFx0XHQgICBzdHJ1Y3QgcGh5X2RldmljZSAqcGh5ZGV2KVxuLS1cbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmMtMTAwNS1cbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmM6MTAwNjpzdGF0aWMgdm9pZCBkcDgzNjQwX2Nsb2NrX2xvY2soc3RydWN0IGRwODM2NDBfY2xvY2sgKmNsb2NrKVxuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYy0xMDA3LXtcbi0tXG5kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jLTEwMTQtICovXG5kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jOjEwMTU6c3RhdGljIHN0cnVjdCBkcDgzNjQwX2Nsb2NrICpkcDgzNjQwX2Nsb2NrX2dldF9idXMoc3RydWN0IG1paV9idXMgKmJ1cylcbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmMtMTAxNi17XG5kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jOjEwMTc6XHRzdHJ1Y3QgZHA4MzY0MF9jbG9jayAqY2xvY2sgPSBOVUxMLCAqdG1wO1xuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYy0xMDE4LVx0c3RydWN0IGxpc3RfaGVhZCAqdGhpcztcbi0tXG5kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jLTEwMjItXHRsaXN0X2Zvcl9lYWNoKHRoaXMsIFx1MDAyNnBoeXRlcl9jbG9ja3MpIHtcbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmM6MTAyMzpcdFx0dG1wID0gbGlzdF9lbnRyeSh0aGlzLCBzdHJ1Y3QgZHA4MzY0MF9jbG9jaywgbGlzdCk7XG5kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jLTEwMjQtXHRcdGlmICh0bXAtXHUwMDNlYnVzID09IGJ1cykge1xuLS1cbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmMtMTAzMi1cbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmM6MTAzMzpcdGNsb2NrID0ga3phbGxvY19vYmooc3RydWN0IGRwODM2NDBfY2xvY2spO1xuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYy0xMDM0LVx0aWYgKCFjbG9jaylcbi0tXG5kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jLTEwNDMtXHR9XG5kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jOjEwNDQ6XHRkcDgzNjQwX2Nsb2NrX2luaXQoY2xvY2ssIGJ1cyk7XG5kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jLTEwNDUtXHRsaXN0X2FkZF90YWlsKFx1MDAyNmNsb2NrLVx1MDAzZWxpc3QsIFx1MDAyNnBoeXRlcl9jbG9ja3MpO1xuLS1cbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmMtMTA0OS1cdGlmIChjbG9jaylcbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmM6MTA1MDpcdFx0ZHA4MzY0MF9jbG9ja19sb2NrKGNsb2NrKTtcbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmMtMTA1MS1cbi0tXG5kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jLTEwNTQtXG5kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jOjEwNTU6c3RhdGljIHZvaWQgZHA4MzY0MF9jbG9ja191bmxvY2soc3RydWN0IGRwODM2NDBfY2xvY2sgKmNsb2NrKVxuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYy0xMDU2LXtcbi0tXG5kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jLTEwNTktXG5kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jOjEwNjA6c3RhdGljIHZvaWQgZHA4MzY0MF9jbG9ja19yZWxlYXNlKHN0cnVjdCBrcmVmICprcmVmKVxuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYy0xMDYxLXtcbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmM6MTA2MjpcdHN0cnVjdCBkcDgzNjQwX2Nsb2NrICpjbG9jayA9XG5kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jOjEwNjM6XHRcdGNvbnRhaW5lcl9vZihrcmVmLCBzdHJ1Y3QgZHA4MzY0MF9jbG9jaywga3JlZik7XG5kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jLTEwNjQtXG4tLVxuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYy0xMDc0LVxuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYzoxMDc1OnN0YXRpYyB2b2lkIGRwODM2NDBfY2xvY2tfcHV0KHN0cnVjdCBkcDgzNjQwX2Nsb2NrICpjbG9jaylcbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmMtMTA3Ni17XG5kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jOjEwNzc6XHRrcmVmX3B1dF9tdXRleChcdTAwMjZjbG9jay1cdTAwM2VrcmVmLCBkcDgzNjQwX2Nsb2NrX3JlbGVhc2UsXG5kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jLTEwNzgtXHRcdCAgICAgICBcdTAwMjZwaHl0ZXJfY2xvY2tzX2xvY2spO1xuLS1cbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmMtMTA4MC1cbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmM6MTA4MTpzdGF0aWMgaW50IGRwODM2NDBfc29mdF9yZXNldChzdHJ1Y3QgcGh5X2RldmljZSAqcGh5ZGV2KVxuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYy0xMDgyLXtcbi0tXG5kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jLTEwOTctXG5kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jOjEwOTg6c3RhdGljIGludCBkcDgzNjQwX2NvbmZpZ19pbml0KHN0cnVjdCBwaHlfZGV2aWNlICpwaHlkZXYpXG5kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jLTEwOTkte1xuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYzoxMTAwOlx0c3RydWN0IGRwODM2NDBfcHJpdmF0ZSAqZHA4MzY0MCA9IHBoeWRldi1cdTAwM2Vwcml2O1xuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYzoxMTAxOlx0c3RydWN0IGRwODM2NDBfY2xvY2sgKmNsb2NrID0gZHA4MzY0MC1cdTAwM2VjbG9jaztcbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmMtMTEwMi1cbi0tXG5kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jLTExMTktXG5kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jOjExMjA6c3RhdGljIGludCBkcDgzNjQwX2Fja19pbnRlcnJ1cHQoc3RydWN0IHBoeV9kZXZpY2UgKnBoeWRldilcbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmMtMTEyMS17XG4tLVxuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYy0xMTI5LVxuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYzoxMTMwOnN0YXRpYyBpbnQgZHA4MzY0MF9jb25maWdfaW50cihzdHJ1Y3QgcGh5X2RldmljZSAqcGh5ZGV2KVxuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYy0xMTMxLXtcbi0tXG5kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jLTExMzYtXHRpZiAocGh5ZGV2LVx1MDAzZWludGVycnVwdHMgPT0gUEhZX0lOVEVSUlVQVF9FTkFCTEVEKSB7XG5kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jOjExMzc6XHRcdGVyciA9IGRwODM2NDBfYWNrX2ludGVycnVwdChwaHlkZXYpO1xuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYy0xMTM4LVx0XHRpZiAoZXJyKVxuLS1cbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmMtMTE4Mi1cbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmM6MTE4MzpcdFx0cmV0dXJuIGRwODM2NDBfYWNrX2ludGVycnVwdChwaHlkZXYpO1xuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYy0xMTg0LVx0fVxuLS1cbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmMtMTE4Ni1cbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmM6MTE4NzpzdGF0aWMgaXJxcmV0dXJuX3QgZHA4MzY0MF9oYW5kbGVfaW50ZXJydXB0KHN0cnVjdCBwaHlfZGV2aWNlICpwaHlkZXYpXG5kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jLTExODgte1xuLS1cbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmMtMTIwNC1cbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmM6MTIwNTpzdGF0aWMgaW50IGRwODM2NDBfaHd0c3RhbXBfZ2V0KHN0cnVjdCBtaWlfdGltZXN0YW1wZXIgKm1paV90cyxcbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmMtMTIwNi1cdFx0XHRcdHN0cnVjdCBrZXJuZWxfaHd0c3RhbXBfY29uZmlnICpjZmcpXG5kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jLTEyMDcte1xuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYzoxMjA4Olx0c3RydWN0IGRwODM2NDBfcHJpdmF0ZSAqZHA4MzY0MCA9XG5kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jOjEyMDk6XHRcdGNvbnRhaW5lcl9vZihtaWlfdHMsIHN0cnVjdCBkcDgzNjQwX3ByaXZhdGUsIG1paV90cyk7XG5kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jLTEyMTAtXG5kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jOjEyMTE6XHRjZmctXHUwMDNlcnhfZmlsdGVyID0gZHA4MzY0MC1cdTAwM2Vod3RzX3J4X2VuO1xuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYzoxMjEyOlx0Y2ZnLVx1MDAzZXR4X3R5cGUgPSBkcDgzNjQwLVx1MDAzZWh3dHNfdHhfZW47XG5kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jLTEyMTMtXG4tLVxuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYy0xMjE2LVxuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYzoxMjE3OnN0YXRpYyBpbnQgZHA4MzY0MF9od3RzdGFtcF9zZXQoc3RydWN0IG1paV90aW1lc3RhbXBlciAqbWlpX3RzLFxuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYy0xMjE4LVx0XHRcdFx0c3RydWN0IGtlcm5lbF9od3RzdGFtcF9jb25maWcgKmNmZyxcbi0tXG5kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jLTEyMjAte1xuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYzoxMjIxOlx0c3RydWN0IGRwODM2NDBfcHJpdmF0ZSAqZHA4MzY0MCA9XG5kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jOjEyMjI6XHRcdGNvbnRhaW5lcl9vZihtaWlfdHMsIHN0cnVjdCBkcDgzNjQwX3ByaXZhdGUsIG1paV90cyk7XG5kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jLTEyMjMtXHR1MTYgdHhjZmcwLCByeGNmZzA7XG4tLVxuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYy0xMjI3LVxuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYzoxMjI4Olx0ZHA4MzY0MC1cdTAwM2Vod3RzX3R4X2VuID0gY2ZnLVx1MDAzZXR4X3R5cGU7XG5kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jLTEyMjktXG4tLVxuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYy0xMjMxLVx0Y2FzZSBIV1RTVEFNUF9GSUxURVJfTk9ORTpcbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmM6MTIzMjpcdFx0ZHA4MzY0MC1cdTAwM2Vod3RzX3J4X2VuID0gMDtcbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmM6MTIzMzpcdFx0ZHA4MzY0MC1cdTAwM2VsYXllciA9IDA7XG5kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jOjEyMzQ6XHRcdGRwODM2NDAtXHUwMDNldmVyc2lvbiA9IDA7XG5kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jLTEyMzUtXHRcdGJyZWFrO1xuLS1cbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmMtMTIzOC1cdGNhc2UgSFdUU1RBTVBfRklMVEVSX1BUUF9WMV9MNF9ERUxBWV9SRVE6XG5kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jOjEyMzk6XHRcdGRwODM2NDAtXHUwMDNlaHd0c19yeF9lbiA9IEhXVFNUQU1QX0ZJTFRFUl9QVFBfVjFfTDRfRVZFTlQ7XG5kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jOjEyNDA6XHRcdGRwODM2NDAtXHUwMDNlbGF5ZXIgPSBQVFBfQ0xBU1NfTDQ7XG5kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jOjEyNDE6XHRcdGRwODM2NDAtXHUwMDNldmVyc2lvbiA9IFBUUF9DTEFTU19WMTtcbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmMtMTI0Mi1cdFx0Y2ZnLVx1MDAzZXJ4X2ZpbHRlciA9IEhXVFNUQU1QX0ZJTFRFUl9QVFBfVjFfTDRfRVZFTlQ7XG4tLVxuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYy0xMjQ2LVx0Y2FzZSBIV1RTVEFNUF9GSUxURVJfUFRQX1YyX0w0X0RFTEFZX1JFUTpcbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmM6MTI0NzpcdFx0ZHA4MzY0MC1cdTAwM2Vod3RzX3J4X2VuID0gSFdUU1RBTVBfRklMVEVSX1BUUF9WMl9MNF9FVkVOVDtcbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmM6MTI0ODpcdFx0ZHA4MzY0MC1cdTAwM2VsYXllciA9IFBUUF9DTEFTU19MNDtcbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmM6MTI0OTpcdFx0ZHA4MzY0MC1cdTAwM2V2ZXJzaW9uID0gUFRQX0NMQVNTX1YyO1xuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYy0xMjUwLVx0XHRjZmctXHUwMDNlcnhfZmlsdGVyID0gSFdUU1RBTVBfRklMVEVSX1BUUF9WMl9MNF9FVkVOVDtcbi0tXG5kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jLTEyNTQtXHRjYXNlIEhXVFNUQU1QX0ZJTFRFUl9QVFBfVjJfTDJfREVMQVlfUkVROlxuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYzoxMjU1Olx0XHRkcDgzNjQwLVx1MDAzZWh3dHNfcnhfZW4gPSBIV1RTVEFNUF9GSUxURVJfUFRQX1YyX0wyX0VWRU5UO1xuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYzoxMjU2Olx0XHRkcDgzNjQwLVx1MDAzZWxheWVyID0gUFRQX0NMQVNTX0wyO1xuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYzoxMjU3Olx0XHRkcDgzNjQwLVx1MDAzZXZlcnNpb24gPSBQVFBfQ0xBU1NfVjI7XG5kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jLTEyNTgtXHRcdGNmZy1cdTAwM2VyeF9maWx0ZXIgPSBIV1RTVEFNUF9GSUxURVJfUFRQX1YyX0wyX0VWRU5UO1xuLS1cbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmMtMTI2Mi1cdGNhc2UgSFdUU1RBTVBfRklMVEVSX1BUUF9WMl9ERUxBWV9SRVE6XG5kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jOjEyNjM6XHRcdGRwODM2NDAtXHUwMDNlaHd0c19yeF9lbiA9IEhXVFNUQU1QX0ZJTFRFUl9QVFBfVjJfRVZFTlQ7XG5kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jOjEyNjQ6XHRcdGRwODM2NDAtXHUwMDNlbGF5ZXIgPSBQVFBfQ0xBU1NfTDQgfCBQVFBfQ0xBU1NfTDI7XG5kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jOjEyNjU6XHRcdGRwODM2NDAtXHUwMDNldmVyc2lvbiA9IFBUUF9DTEFTU19WMjtcbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmMtMTI2Ni1cdFx0Y2ZnLVx1MDAzZXJ4X2ZpbHRlciA9IEhXVFNUQU1QX0ZJTFRFUl9QVFBfVjJfRVZFTlQ7XG4tLVxuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYy0xMjcxLVxuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYzoxMjcyOlx0dHhjZmcwID0gKGRwODM2NDAtXHUwMDNldmVyc2lvbiBcdTAwMjYgVFhfUFRQX1ZFUl9NQVNLKSBcdTAwM2NcdTAwM2MgVFhfUFRQX1ZFUl9TSElGVDtcbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmM6MTI3MzpcdHJ4Y2ZnMCA9IChkcDgzNjQwLVx1MDAzZXZlcnNpb24gXHUwMDI2IFRYX1BUUF9WRVJfTUFTSykgXHUwMDNjXHUwMDNjIFRYX1BUUF9WRVJfU0hJRlQ7XG5kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jLTEyNzQtXG5kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jOjEyNzU6XHRpZiAoZHA4MzY0MC1cdTAwM2VsYXllciBcdTAwMjYgUFRQX0NMQVNTX0wyKSB7XG5kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jLTEyNzYtXHRcdHR4Y2ZnMCB8PSBUWF9MMl9FTjtcbi0tXG5kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jLTEyNzgtXHR9XG5kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jOjEyNzk6XHRpZiAoZHA4MzY0MC1cdTAwM2VsYXllciBcdTAwMjYgUFRQX0NMQVNTX0w0KSB7XG5kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jLTEyODAtXHRcdHR4Y2ZnMCB8PSBUWF9JUFY2X0VOIHwgVFhfSVBWNF9FTjtcbi0tXG5kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jLTEyODMtXG5kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jOjEyODQ6XHRpZiAoZHA4MzY0MC1cdTAwM2Vod3RzX3R4X2VuKVxuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYy0xMjg1LVx0XHR0eGNmZzAgfD0gVFhfVFNfRU47XG5kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jLTEyODYtXG5kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jOjEyODc6XHRpZiAoZHA4MzY0MC1cdTAwM2Vod3RzX3R4X2VuID09IEhXVFNUQU1QX1RYX09ORVNURVBfU1lOQylcbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmMtMTI4OC1cdFx0dHhjZmcwIHw9IFNZTkNfMVNURVAgfCBDSEtfMVNURVA7XG5kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jLTEyODktXG5kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jOjEyOTA6XHRpZiAoZHA4MzY0MC1cdTAwM2Vod3RzX3J4X2VuKVxuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYy0xMjkxLVx0XHRyeGNmZzAgfD0gUlhfVFNfRU47XG5kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jLTEyOTItXG5kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jOjEyOTM6XHRtdXRleF9sb2NrKFx1MDAyNmRwODM2NDAtXHUwMDNlY2xvY2stXHUwMDNlZXh0cmVnX2xvY2spO1xuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYy0xMjk0LVxuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYzoxMjk1Olx0ZXh0X3dyaXRlKDAsIGRwODM2NDAtXHUwMDNlcGh5ZGV2LCBQQUdFNSwgUFRQX1RYQ0ZHMCwgdHhjZmcwKTtcbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmM6MTI5NjpcdGV4dF93cml0ZSgwLCBkcDgzNjQwLVx1MDAzZXBoeWRldiwgUEFHRTUsIFBUUF9SWENGRzAsIHJ4Y2ZnMCk7XG5kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jLTEyOTctXG5kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jOjEyOTg6XHRtdXRleF91bmxvY2soXHUwMDI2ZHA4MzY0MC1cdTAwM2VjbG9jay1cdTAwM2VleHRyZWdfbG9jayk7XG5kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jLTEyOTktXG4tLVxuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYz0xMzAzPXN0YXRpYyB2b2lkIHJ4X3RpbWVzdGFtcF93b3JrKHN0cnVjdCB3b3JrX3N0cnVjdCAqd29yaylcbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmMtMTMwNC17XG5kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jOjEzMDU6XHRzdHJ1Y3QgZHA4MzY0MF9wcml2YXRlICpkcDgzNjQwID1cbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmM6MTMwNjpcdFx0Y29udGFpbmVyX29mKHdvcmssIHN0cnVjdCBkcDgzNjQwX3ByaXZhdGUsIHRzX3dvcmsud29yayk7XG5kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jLTEzMDctXHRzdHJ1Y3Qgc2tfYnVmZiAqc2tiO1xuLS1cbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmMtMTMwOS1cdC8qIERlbGl2ZXIgZXhwaXJlZCBwYWNrZXRzLiAqL1xuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYzoxMzEwOlx0d2hpbGUgKChza2IgPSBza2JfZGVxdWV1ZShcdTAwMjZkcDgzNjQwLVx1MDAzZXJ4X3F1ZXVlKSkpIHtcbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmM6MTMxMTpcdFx0c3RydWN0IGRwODM2NDBfc2tiX2luZm8gKnNrYl9pbmZvO1xuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYy0xMzEyLVxuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYzoxMzEzOlx0XHRza2JfaW5mbyA9IChzdHJ1Y3QgZHA4MzY0MF9za2JfaW5mbyAqKXNrYi1cdTAwM2VjYjtcbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmMtMTMxNC1cdFx0aWYgKCF0aW1lX2FmdGVyKGppZmZpZXMsIHNrYl9pbmZvLVx1MDAzZXRtbykpIHtcbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmM6MTMxNTpcdFx0XHRza2JfcXVldWVfaGVhZChcdTAwMjZkcDgzNjQwLVx1MDAzZXJ4X3F1ZXVlLCBza2IpO1xuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYy0xMzE2LVx0XHRcdGJyZWFrO1xuLS1cbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmMtMTMyMS1cbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmM6MTMyMjpcdGlmICghc2tiX3F1ZXVlX2VtcHR5KFx1MDAyNmRwODM2NDAtXHUwMDNlcnhfcXVldWUpKVxuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYzoxMzIzOlx0XHRzY2hlZHVsZV9kZWxheWVkX3dvcmsoXHUwMDI2ZHA4MzY0MC1cdTAwM2V0c193b3JrLCBTS0JfVElNRVNUQU1QX1RJTUVPVVQpO1xuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYy0xMzI0LX1cbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmMtMTMyNS1cbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmM6MTMyNjpzdGF0aWMgYm9vbCBkcDgzNjQwX3J4dHN0YW1wKHN0cnVjdCBtaWlfdGltZXN0YW1wZXIgKm1paV90cyxcbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmMtMTMyNy1cdFx0XHQgICAgIHN0cnVjdCBza19idWZmICpza2IsIGludCB0eXBlKVxuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYy0xMzI4LXtcbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmM6MTMyOTpcdHN0cnVjdCBkcDgzNjQwX3ByaXZhdGUgKmRwODM2NDAgPVxuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYzoxMzMwOlx0XHRjb250YWluZXJfb2YobWlpX3RzLCBzdHJ1Y3QgZHA4MzY0MF9wcml2YXRlLCBtaWlfdHMpO1xuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYzoxMzMxOlx0c3RydWN0IGRwODM2NDBfc2tiX2luZm8gKnNrYl9pbmZvID0gKHN0cnVjdCBkcDgzNjQwX3NrYl9pbmZvICopc2tiLVx1MDAzZWNiO1xuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYy0xMzMyLVx0c3RydWN0IGxpc3RfaGVhZCAqdGhpcywgKm5leHQ7XG4tLVxuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYy0xMzM3LVx0aWYgKGlzX3N0YXR1c19mcmFtZShza2IsIHR5cGUpKSB7XG5kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jOjEzMzg6XHRcdGRlY29kZV9zdGF0dXNfZnJhbWUoZHA4MzY0MCwgc2tiKTtcbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmMtMTMzOS1cdFx0a2ZyZWVfc2tiKHNrYik7XG4tLVxuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYy0xMzQyLVxuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYzoxMzQzOlx0aWYgKCFkcDgzNjQwLVx1MDAzZWh3dHNfcnhfZW4pXG5kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jLTEzNDQtXHRcdHJldHVybiBmYWxzZTtcbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmMtMTM0NS1cbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmM6MTM0NjpcdGlmICgodHlwZSBcdTAwMjYgZHA4MzY0MC1cdTAwM2V2ZXJzaW9uKSA9PSAwIHx8ICh0eXBlIFx1MDAyNiBkcDgzNjQwLVx1MDAzZWxheWVyKSA9PSAwKVxuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYy0xMzQ3LVx0XHRyZXR1cm4gZmFsc2U7XG5kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jLTEzNDgtXG5kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jOjEzNDk6XHRzcGluX2xvY2tfaXJxc2F2ZShcdTAwMjZkcDgzNjQwLVx1MDAzZXJ4X2xvY2ssIGZsYWdzKTtcbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmM6MTM1MDpcdHBydW5lX3J4X3RzKGRwODM2NDApO1xuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYzoxMzUxOlx0bGlzdF9mb3JfZWFjaF9zYWZlKHRoaXMsIG5leHQsIFx1MDAyNmRwODM2NDAtXHUwMDNlcnh0cykge1xuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYy0xMzUyLVx0XHRyeHRzID0gbGlzdF9lbnRyeSh0aGlzLCBzdHJ1Y3Qgcnh0cywgbGlzdCk7XG4tLVxuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYy0xMzU3LVx0XHRcdGxpc3RfZGVsX2luaXQoXHUwMDI2cnh0cy1cdTAwM2VsaXN0KTtcbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmM6MTM1ODpcdFx0XHRsaXN0X2FkZChcdTAwMjZyeHRzLVx1MDAzZWxpc3QsIFx1MDAyNmRwODM2NDAtXHUwMDNlcnhwb29sKTtcbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmMtMTM1OS1cdFx0XHRicmVhaztcbi0tXG5kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jLTEzNjEtXHR9XG5kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jOjEzNjI6XHRzcGluX3VubG9ja19pcnFyZXN0b3JlKFx1MDAyNmRwODM2NDAtXHUwMDNlcnhfbG9jaywgZmxhZ3MpO1xuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYy0xMzYzLVxuLS1cbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmMtMTM2Ni1cdFx0c2tiX2luZm8tXHUwMDNldG1vID0gamlmZmllcyAmIzQzOyBTS0JfVElNRVNUQU1QX1RJTUVPVVQ7XG5kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jOjEzNjc6XHRcdHNrYl9xdWV1ZV90YWlsKFx1MDAyNmRwODM2NDAtXHUwMDNlcnhfcXVldWUsIHNrYik7XG5kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jOjEzNjg6XHRcdHNjaGVkdWxlX2RlbGF5ZWRfd29yayhcdTAwMjZkcDgzNjQwLVx1MDAzZXRzX3dvcmssIFNLQl9USU1FU1RBTVBfVElNRU9VVCk7XG5kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jLTEzNjktXHR9IGVsc2Uge1xuLS1cbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmMtMTM3NS1cbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmM6MTM3NjpzdGF0aWMgdm9pZCBkcDgzNjQwX3R4dHN0YW1wKHN0cnVjdCBtaWlfdGltZXN0YW1wZXIgKm1paV90cyxcbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmMtMTM3Ny1cdFx0XHQgICAgIHN0cnVjdCBza19idWZmICpza2IsIGludCB0eXBlKVxuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYy0xMzc4LXtcbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmM6MTM3OTpcdHN0cnVjdCBkcDgzNjQwX3NrYl9pbmZvICpza2JfaW5mbyA9IChzdHJ1Y3QgZHA4MzY0MF9za2JfaW5mbyAqKXNrYi1cdTAwM2VjYjtcbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmM6MTM4MDpcdHN0cnVjdCBkcDgzNjQwX3ByaXZhdGUgKmRwODM2NDAgPVxuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYzoxMzgxOlx0XHRjb250YWluZXJfb2YobWlpX3RzLCBzdHJ1Y3QgZHA4MzY0MF9wcml2YXRlLCBtaWlfdHMpO1xuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYy0xMzgyLVxuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYzoxMzgzOlx0c3dpdGNoIChkcDgzNjQwLVx1MDAzZWh3dHNfdHhfZW4pIHtcbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmMtMTM4NC1cblxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjUvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzI1IDA4OjE5PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDE4NDMxCgkJCQkJCQlvdXRwdXQ6IDE5CgkJCQkJCQl0aG91Z2h0czogNDk3CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKlJlYWNoaW5nIHRoZSBEUDgzNjQwIFBIWSBEcml2ZXIgd2l0aCBTeXprYWxsZXIqKgoKT2theSwgc28gdGhlIGBkcDgzNjQwYCBkcml2ZXIgb25seSBnZXRzIGJ1aWx0IGlmIGBDT05GSUdfRFA4MzY0MF9QSFlgIGlzIGVuYWJsZWQuIEl0JiMzOTtzIGEgUEhZIGRyaXZlciwgc28gdGhlIGtleSBpcyBmaWd1cmluZyBvdXQgaG93IHRvIHRyaWdnZXIgYGRwODM2NDBfcHJvYmVgIGFuZCBgZHA4MzY0MF9yZW1vdmVgLiBDYW4gU3l6a2FsbGVyIGRvIGl0PwoKV2VsbCwgdGhlb3JldGljYWxseSwgU3l6a2FsbGVyICpjb3VsZCogdHJpZ2dlciBpdCBieSBjcmVhdGluZyBhIHZpcnR1YWwgTURJTyBidXMgb3IgdXNpbmcgYSBuZXRkZXYgdGhhdCByZWdpc3RlcnMgUEhZcy4gVGhlIHByb2JsZW0gaXMsIFN5emthbGxlciBkb2VzbiYjMzk7dCBoYXZlIGEgZ2VuZXJpYyBNRElPIGJ1cyBlbXVsYXRvciB3aGVyZSBJIGNhbiBqdXN0IHNwZWNpZnkgYSBQSFkgYW5kIGhhdmUgaXQgcHJvYmVkLiBJIHdlbnQgdGhyb3VnaCB0aGUgYXZhaWxhYmxlIG5ldGRldiBvcHRpb25zIC0gYG1hYzgwMjExX2h3c2ltYCwgYG5ldGRldnNpbWAsIGB2aGNpYCwgYGR1bW15YCwgYHZldGhgLCBgdHVuYCwgYW5kIGB0YXBgIC0gbm9uZSBvZiB0aGVtIGV4cG9zZSBhIGRpcmVjdCBNRElPIGJ1cyBpbnRlcmZhY2UuIEkgZXZlbiBjaGVja2VkIGlmIHRoZXJlIHdhcyBzb21lIGBtZGlvLW1vY2t1cGAsIGJ1dCBub3RoaW5nLgoKV2hhdCBhYm91dCBgbWRpby1ncGlvYCBvciBgbWRpby1iaXRiYW5nYD8gQ291bGQgdGhleSBiZSBpbnN0YW50aWF0ZWQgdXNpbmcgZGV2aWNlIHRyZWUgb3ZlcmxheXM/IE5vLCBTeXprYWxsZXIgZG9lc24mIzM5O3QgdXNlIHRob3NlLiBDYW4gdXNlcnNwYWNlIGNyZWF0ZSBhbiBNRElPIGJ1cyBkaXJlY3RseT8gTWF5YmUgdGhyb3VnaCBgaTJjYCwgYHNwaWAsIG9yIGB1c2JgPyBBcmUgdGhlcmUgZXZlbiBVU0IgdG8gTURJTyBhZGFwdGVycz8gSXQgZG9lc24mIzM5O3QgbG9vayBsaWtlIGl0LCBidXQgbWF5YmUgc29tZSBVU0IgbmV0d29yayBkcml2ZXJzIGV4cG9zZSBhbiBNRElPIGJ1cz8KCkFoYSEgTWF5YmUgaWYgSSBlbXVsYXRlIGEgVVNCIG5ldHdvcmsgYWRhcHRlciB1c2luZyBgZHVtbXlfaGNkYCAodmhjaSkgc3VjaCBhcyBgc21zYzk1eHhgIG9yIGBhc2l4YCwgaXQgY291bGQgcmVnaXN0ZXIgYW4gTURJTyBidXMuIFRoZW4sIHdoZW4gdGhlIE1ESU8gYnVzIGdldHMgcmVnaXN0ZXJlZCwgaXQgc2NhbnMgZm9yIFBIWXMuIElmIHRoZSBlbXVsYXRlZCBVU0IgZGV2aWNlICpyZXR1cm5zKiB0aGUgRFA4MzY0MCBQSFkgSUQgKGAweDIwMDA1Y2UxYCkgZHVyaW5nIHRoZSBNRElPIHJlYWQgb2YgcmVnaXN0ZXJzIDIgYW5kIDMsIHRoZSBNRElPIGJ1cyB3aWxsIG1hdGNoIGl0IHdpdGggYGRwODM2NDBfZHJpdmVyYCBhbmQgY2FsbCBgZHA4MzY0MF9wcm9iZWAuCgpZZXMhIFN5emthbGxlciYjMzk7cyBVU0IgZnV6emVyLCB2aGNpLCBjYW4gZGVmaW5pdGVseSBlbXVsYXRlIGEgbmV0d29yayBkZXZpY2UgdGhhdCBleHBvc2VzIGFuIE1ESU8gYnVzLiBBbmQgaXQgY2FuIHJldHVybiBhcmJpdHJhcnkgUEhZIElEcy4gVGhhdCYjMzk7cyB0aGUga2V5LiBTbywgdGhlIGBkcDgzNjQwX3Byb2JlYCBhbmQgYGRwODM2NDBfcmVtb3ZlYCBlbnRyeSBwb2ludHMgYXJlIGRlZmluaXRlbHkgcmVhY2hhYmxlIHRocm91Z2ggVVNCIGVtdWxhdGlvbi4gVGhpcyBuZWVkcyB0byBiZSB2ZXJpZmllZC4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD42LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yNSAwODoyMDwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDttZGlvYnVzX3JlZ2lzdGVyJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O1xuRnVsbCBvdXRwdXQgaXMgdG9vIGxvbmcsIHNob3dpbmcgNTAwIG91dCBvZiAxMTI3IGxpbmVzLlxuVXNlIG1vcmUgcHJlY2lzZSBleHByZXNzaW9uIGlmIHBvc3NpYmxlLlxuXG5Eb2N1bWVudGF0aW9uL2RyaXZlci1hcGkvZHJpdmVyLW1vZGVsL2RldnJlcy5yc3Q9MzQ4PU1ESU9cbi0tXG5Eb2N1bWVudGF0aW9uL2RyaXZlci1hcGkvZHJpdmVyLW1vZGVsL2RldnJlcy5yc3QtMzUwLSAgZGV2bV9tZGlvYnVzX2FsbG9jX3NpemUoKVxuRG9jdW1lbnRhdGlvbi9kcml2ZXItYXBpL2RyaXZlci1tb2RlbC9kZXZyZXMucnN0OjM1MTogIGRldm1fbWRpb2J1c19yZWdpc3RlcigpXG5Eb2N1bWVudGF0aW9uL2RyaXZlci1hcGkvZHJpdmVyLW1vZGVsL2RldnJlcy5yc3Q6MzUyOiAgZGV2bV9vZl9tZGlvYnVzX3JlZ2lzdGVyKClcbkRvY3VtZW50YXRpb24vZHJpdmVyLWFwaS9kcml2ZXItbW9kZWwvZGV2cmVzLnJzdC0zNTMtXG4tLVxuRG9jdW1lbnRhdGlvbi9maXJtd2FyZS1ndWlkZS9hY3BpL2RzZC9tb3RvcmNvbW0teXQ4eHh4LXBoeS5yc3Q9MTI9ZGV2aWNlICh0aGUgc2FtZSBvYmplY3RzIHRoYXQgYXJlIHJlZ2lzdGVyZWQgdmlhXG5Eb2N1bWVudGF0aW9uL2Zpcm13YXJlLWd1aWRlL2FjcGkvZHNkL21vdG9yY29tbS15dDh4eHgtcGh5LnJzdDoxMzpgYGZ3bm9kZV9tZGlvYnVzX3JlZ2lzdGVyX3BoeSgpYGApLiBNQUMtc2lkZSBjb25uZWN0aW9uIHByb3BlcnRpZXMgc3VjaCBhc1xuRG9jdW1lbnRhdGlvbi9maXJtd2FyZS1ndWlkZS9hY3BpL2RzZC9tb3RvcmNvbW0teXQ4eHh4LXBoeS5yc3QtMTQtYGBwaHktaGFuZGxlYGAgYW5kIGBgcGh5LW1vZGVgYCBhcmUgZG9jdW1lbnRlZCBpbiBbYWNwaS1tZGlvLXBoeV1fLlxuLS1cbkRvY3VtZW50YXRpb24vZmlybXdhcmUtZ3VpZGUvYWNwaS9kc2QvcGh5LnJzdD03PVRoZSBQSFlzIG9uIGFuIE1ESU8gYnVzIFtwaHldIGFyZSBwcm9iZWQgYW5kIHJlZ2lzdGVyZWQgdXNpbmdcbkRvY3VtZW50YXRpb24vZmlybXdhcmUtZ3VpZGUvYWNwaS9kc2QvcGh5LnJzdDo4OmZ3bm9kZV9tZGlvYnVzX3JlZ2lzdGVyX3BoeSgpLlxuRG9jdW1lbnRhdGlvbi9maXJtd2FyZS1ndWlkZS9hY3BpL2RzZC9waHkucnN0LTktXG4tLVxuRG9jdW1lbnRhdGlvbi9uZXR3b3JraW5nL3BoeS5yc3Q9NDA9cmVnaXN0ZXJlZCBhcyBhIGRpc3RpbmN0IGRldmljZS5cbi0tXG5Eb2N1bWVudGF0aW9uL25ldHdvcmtpbmcvcGh5LnJzdC01Ni0gICBkcml2ZXIgbmVlZHMsIHNldHVwIHRoZSBtaWlfYnVzIHN0cnVjdHVyZSwgYW5kIHJlZ2lzdGVyIHdpdGggdGhlIFBBTCB1c2luZ1xuRG9jdW1lbnRhdGlvbi9uZXR3b3JraW5nL3BoeS5yc3Q6NTc6ICAgbWRpb2J1c19yZWdpc3Rlci4gIFNpbWlsYXJseSwgdGhlcmUmIzM5O3MgYSByZW1vdmUgZnVuY3Rpb24gdG8gdW5kbyBhbGwgb2ZcbkRvY3VtZW50YXRpb24vbmV0d29ya2luZy9waHkucnN0LTU4LSAgIHRoYXQgKHVzZSBtZGlvYnVzX3VucmVnaXN0ZXIpLlxuLS1cbmFyY2gvcG93ZXJwYy9wbGF0Zm9ybXMvODJ4eC9lcDgyNDhlLmM9MTA5PXN0YXRpYyBpbnQgZXA4MjQ4ZV9tZGlvX3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKm9mZGV2KVxuLS1cbmFyY2gvcG93ZXJwYy9wbGF0Zm9ybXMvODJ4eC9lcDgyNDhlLmMtMTMyLVxuYXJjaC9wb3dlcnBjL3BsYXRmb3Jtcy84Mnh4L2VwODI0OGUuYzoxMzM6XHRyZXQgPSBvZl9tZGlvYnVzX3JlZ2lzdGVyKGJ1cywgb2ZkZXYtXHUwMDNlZGV2Lm9mX25vZGUpO1xuYXJjaC9wb3dlcnBjL3BsYXRmb3Jtcy84Mnh4L2VwODI0OGUuYy0xMzQtXHRpZiAocmV0KVxuLS1cbmFyY2gvcG93ZXJwYy9wbGF0Zm9ybXMvcGFzZW1pL2dwaW9fbWRpby5jPTIwNz1zdGF0aWMgaW50IGdwaW9fbWRpb19wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpvZmRldilcbi0tXG5hcmNoL3Bvd2VycGMvcGxhdGZvcm1zL3Bhc2VtaS9ncGlvX21kaW8uYy0yNDMtXG5hcmNoL3Bvd2VycGMvcGxhdGZvcm1zL3Bhc2VtaS9ncGlvX21kaW8uYzoyNDQ6XHRlcnIgPSBvZl9tZGlvYnVzX3JlZ2lzdGVyKG5ld19idXMsIG5wKTtcbmFyY2gvcG93ZXJwYy9wbGF0Zm9ybXMvcGFzZW1pL2dwaW9fbWRpby5jLTI0NS1cbi0tXG5kcml2ZXJzL25ldC9kc2EvYmNtX3NmMi5jPTYwNz1zdGF0aWMgaW50IGJjbV9zZjJfbWRpb19yZWdpc3RlcihzdHJ1Y3QgZHNhX3N3aXRjaCAqZHMpXG4tLVxuZHJpdmVycy9uZXQvZHNhL2JjbV9zZjIuYy02ODMtXG5kcml2ZXJzL25ldC9kc2EvYmNtX3NmMi5jOjY4NDpcdGVyciA9IG1kaW9idXNfcmVnaXN0ZXIocHJpdi1cdTAwM2V1c2VyX21paV9idXMpO1xuZHJpdmVycy9uZXQvZHNhL2JjbV9zZjIuYy02ODUtXHRpZiAoZXJyKVxuLS1cbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwX2NvbW1vbi5jPTE4Nz1zdGF0aWMgaW50IGdzd2lwX21kaW8oc3RydWN0IGdzd2lwX3ByaXYgKnByaXYpXG4tLVxuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXBfY29tbW9uLmMtMjEzLVxuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXBfY29tbW9uLmM6MjE0Olx0ZXJyID0gZGV2bV9vZl9tZGlvYnVzX3JlZ2lzdGVyKGRldiwgYnVzLCBtZGlvX25wKTtcbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwX2NvbW1vbi5jLTIxNS1cbi0tXG5kcml2ZXJzL25ldC9kc2EvbWljcm9jaGlwL2tzejk0NzcuYz0zMTU9c3RhdGljIGludCBrc3o5NDc3X3Bjc19jcmVhdGUoc3RydWN0IGtzel9kZXZpY2UgKmRldilcbi0tXG5kcml2ZXJzL25ldC9kc2EvbWljcm9jaGlwL2tzejk0NzcuYy0zMzUtXG5kcml2ZXJzL25ldC9kc2EvbWljcm9jaGlwL2tzejk0NzcuYzozMzY6XHRyZXQgPSBkZXZtX21kaW9idXNfcmVnaXN0ZXIoZGV2LVx1MDAzZWRldiwgYnVzKTtcbmRyaXZlcnMvbmV0L2RzYS9taWNyb2NoaXAva3N6OTQ3Ny5jLTMzNy1cdGlmIChyZXQpXG4tLVxuZHJpdmVycy9uZXQvZHNhL21pY3JvY2hpcC9rc3pfY29tbW9uLmM9MjQ4ND1pbnQga3N6X21kaW9fcmVnaXN0ZXIoc3RydWN0IGtzel9kZXZpY2UgKmRldilcbi0tXG5kcml2ZXJzL25ldC9kc2EvbWljcm9jaGlwL2tzel9jb21tb24uYy0yNTU1LVxuZHJpdmVycy9uZXQvZHNhL21pY3JvY2hpcC9rc3pfY29tbW9uLmM6MjU1NjpcdHJldCA9IGRldm1fb2ZfbWRpb2J1c19yZWdpc3Rlcihkcy1cdTAwM2VkZXYsIGJ1cywgbWRpb19ucCk7XG5kcml2ZXJzL25ldC9kc2EvbWljcm9jaGlwL2tzel9jb21tb24uYy0yNTU3LVx0aWYgKHJldCkge1xuLS1cbmRyaXZlcnMvbmV0L2RzYS9taWNyb2NoaXAvbGFuOTM3eF9tYWluLmM9Njg1PXN0YXRpYyBpbnQgbGFuOTM3eF9tZGlvX3JlZ2lzdGVyKHN0cnVjdCBrc3pfZGV2aWNlICpkZXYpXG4tLVxuZHJpdmVycy9uZXQvZHNhL21pY3JvY2hpcC9sYW45Mzd4X21haW4uYy03NTUtXG5kcml2ZXJzL25ldC9kc2EvbWljcm9jaGlwL2xhbjkzN3hfbWFpbi5jOjc1NjpcdHJldCA9IGRldm1fb2ZfbWRpb2J1c19yZWdpc3Rlcihkcy1cdTAwM2VkZXYsIGJ1cywgbWRpb19ucCk7XG5kcml2ZXJzL25ldC9kc2EvbWljcm9jaGlwL2xhbjkzN3hfbWFpbi5jLTc1Ny1cdGlmIChyZXQpXG4tLVxuZHJpdmVycy9uZXQvZHNhL210NzUzMC5jPTIzNzE9bXQ3NTMwX3NldHVwX21kaW8oc3RydWN0IG10NzUzMF9wcml2ICpwcml2KVxuLS1cbmRyaXZlcnMvbmV0L2RzYS9tdDc1MzAuYy0yNDA2LVxuZHJpdmVycy9uZXQvZHNhL210NzUzMC5jOjI0MDc6XHRyZXQgPSBkZXZtX29mX21kaW9idXNfcmVnaXN0ZXIoZGV2LCBidXMsIG1ucCk7XG5kcml2ZXJzL25ldC9kc2EvbXQ3NTMwLmMtMjQwOC1cdGlmIChyZXQpIHtcbi0tXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYz0zODM0PXN0YXRpYyBpbnQgbXY4OGU2eHh4X21kaW9fcmVnaXN0ZXIoc3RydWN0IG12ODhlNnh4eF9jaGlwICpjaGlwLFxuLS1cbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTM4ODctXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYzozODg4Olx0ZXJyID0gb2ZfbWRpb2J1c19yZWdpc3RlcihidXMsIG5wKTtcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTM4ODktXHRpZiAoZXJyKSB7XG4tLVxuZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L214bDg2Mnh4LmM9MjY3PXN0YXRpYyBpbnQgbXhsODYyeHhfc2V0dXBfbWRpbyhzdHJ1Y3QgZHNhX3N3aXRjaCAqZHMpXG4tLVxuZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L214bDg2Mnh4LmMtMjkyLVxuZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L214bDg2Mnh4LmM6MjkzOlx0cmV0ID0gZGV2bV9vZl9tZGlvYnVzX3JlZ2lzdGVyKGRldiwgYnVzLCBtZGlvX25wKTtcbmRyaXZlcnMvbmV0L2RzYS9teGw4NjJ4eC9teGw4NjJ4eC5jLTI5NC1cdG9mX25vZGVfcHV0KG1kaW9fbnApO1xuLS1cbmRyaXZlcnMvbmV0L2RzYS9uZXRjL25ldGNfbWFpbi5jPTE0OT1zdGF0aWMgaW50IG5ldGNfcG9ydF9jcmVhdGVfZW1kaW9fYnVzKHN0cnVjdCBuZXRjX3BvcnQgKm5wLFxuLS1cbmRyaXZlcnMvbmV0L2RzYS9uZXRjL25ldGNfbWFpbi5jLTE3OS1cbmRyaXZlcnMvbmV0L2RzYS9uZXRjL25ldGNfbWFpbi5jOjE4MDpcdGVyciA9IGRldm1fb2ZfbWRpb2J1c19yZWdpc3RlcihkZXYsIGJ1cywgbm9kZSk7XG5kcml2ZXJzL25ldC9kc2EvbmV0Yy9uZXRjX21haW4uYy0xODEtXHRpZiAoZXJyKVxuLS1cbmRyaXZlcnMvbmV0L2RzYS9vY2Vsb3QvZmVsaXhfdnNjOTk1OS5jPTk1Nz1zdGF0aWMgaW50IHZzYzk5NTlfbWRpb19idXNfYWxsb2Moc3RydWN0IG9jZWxvdCAqb2NlbG90KVxuLS1cbmRyaXZlcnMvbmV0L2RzYS9vY2Vsb3QvZmVsaXhfdnNjOTk1OS5jLTEwMTMtXHQvKiBOZWVkZWQgaW4gb3JkZXIgdG8gaW5pdGlhbGl6ZSB0aGUgYnVzIG11dGV4IGxvY2sgKi9cbmRyaXZlcnMvbmV0L2RzYS9vY2Vsb3QvZmVsaXhfdnNjOTk1OS5jOjEwMTQ6XHRyYyA9IG1kaW9idXNfcmVnaXN0ZXIoYnVzKTtcbmRyaXZlcnMvbmV0L2RzYS9vY2Vsb3QvZmVsaXhfdnNjOTk1OS5jLTEwMTUtXHRpZiAocmMgXHUwMDNjIDApIHtcbi0tXG5kcml2ZXJzL25ldC9kc2Evb2NlbG90L3NldmlsbGVfdnNjOTk1My5jPTg3OD1zdGF0aWMgaW50IHZzYzk5NTNfbWRpb19idXNfYWxsb2Moc3RydWN0IG9jZWxvdCAqb2NlbG90KVxuLS1cbmRyaXZlcnMvbmV0L2RzYS9vY2Vsb3Qvc2V2aWxsZV92c2M5OTUzLmMtOTAzLVx0LyogTmVlZGVkIGluIG9yZGVyIHRvIGluaXRpYWxpemUgdGhlIGJ1cyBtdXRleCBsb2NrICovXG5kcml2ZXJzL25ldC9kc2Evb2NlbG90L3NldmlsbGVfdnNjOTk1My5jOjkwNDpcdHJjID0gZGV2bV9vZl9tZGlvYnVzX3JlZ2lzdGVyKGRldiwgYnVzLCBOVUxMKTtcbmRyaXZlcnMvbmV0L2RzYS9vY2Vsb3Qvc2V2aWxsZV92c2M5OTUzLmMtOTA1LVx0aWYgKHJjIFx1MDAzYyAwKSB7XG4tLVxuZHJpdmVycy9uZXQvZHNhL3FjYS9hcjkzMzEuYz0zNTc9c3RhdGljIGludCBhcjkzMzFfc3dfbWJ1c19pbml0KHN0cnVjdCBhcjkzMzFfc3dfcHJpdiAqcHJpdilcbi0tXG5kcml2ZXJzL25ldC9kc2EvcWNhL2FyOTMzMS5jLTM4MS1cbmRyaXZlcnMvbmV0L2RzYS9xY2EvYXI5MzMxLmM6MzgyOlx0cmV0ID0gZGV2bV9vZl9tZGlvYnVzX3JlZ2lzdGVyKGRldiwgbWJ1cywgbW5wKTtcbmRyaXZlcnMvbmV0L2RzYS9xY2EvYXI5MzMxLmMtMzgzLVx0b2Zfbm9kZV9wdXQobW5wKTtcbi0tXG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLTh4eHguYz05NDc9cWNhOGtfbWRpb19yZWdpc3RlcihzdHJ1Y3QgcWNhOGtfcHJpdiAqcHJpdilcbi0tXG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLTh4eHguYy05ODYtXG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLTh4eHguYzo5ODc6XHRyZXQgPSBkZXZtX29mX21kaW9idXNfcmVnaXN0ZXIoZGV2LCBidXMsIG1kaW8pO1xuZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay04eHh4LmMtOTg4LVxuLS1cbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzeHguYz03ND1pbnQgcnRsODN4eF9zZXR1cF91c2VyX21kaW8oc3RydWN0IGRzYV9zd2l0Y2ggKmRzKVxuLS1cbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzeHguYy05OS1cbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzeHguYzoxMDA6XHRyZXQgPSBkZXZtX29mX21kaW9idXNfcmVnaXN0ZXIocHJpdi1cdTAwM2VkZXYsIGJ1cywgbWRpb19ucCk7XG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4M3h4LmMtMTAxLVx0aWYgKHJldCkge1xuLS1cbmRyaXZlcnMvbmV0L2RzYS9yem4xX2E1cHN3LmM9MTExNz1zdGF0aWMgaW50IGE1cHN3X3Byb2JlX21kaW8oc3RydWN0IGE1cHN3ICphNXBzdywgc3RydWN0IGRldmljZV9ub2RlICpub2RlKVxuLS1cbmRyaXZlcnMvbmV0L2RzYS9yem4xX2E1cHN3LmMtMTE0My1cbmRyaXZlcnMvbmV0L2RzYS9yem4xX2E1cHN3LmM6MTE0NDpcdHJldHVybiBkZXZtX29mX21kaW9idXNfcmVnaXN0ZXIoZGV2LCBidXMsIG5vZGUpO1xuZHJpdmVycy9uZXQvZHNhL3J6bjFfYTVwc3cuYy0xMTQ1LX1cbi0tXG5kcml2ZXJzL25ldC9kc2Evc2phMTEwNS9zamExMTA1Lmg9MzA3PXZvaWQgc2phMTEwNV9mcmFtZV9tZW1vcnlfcGFydGl0aW9uaW5nKHN0cnVjdCBzamExMTA1X3ByaXZhdGUgKnByaXYpO1xuLS1cbmRyaXZlcnMvbmV0L2RzYS9zamExMTA1L3NqYTExMDUuaC0zMDktLyogRnJvbSBzamExMTA1X21kaW8uYyAqL1xuZHJpdmVycy9uZXQvZHNhL3NqYTExMDUvc2phMTEwNS5oOjMxMDppbnQgc2phMTEwNV9tZGlvYnVzX3JlZ2lzdGVyKHN0cnVjdCBkc2Ffc3dpdGNoICpkcyk7XG5kcml2ZXJzL25ldC9kc2Evc2phMTEwNS9zamExMTA1LmgtMzExLXZvaWQgc2phMTEwNV9tZGlvYnVzX3VucmVnaXN0ZXIoc3RydWN0IGRzYV9zd2l0Y2ggKmRzKTtcbi0tXG5kcml2ZXJzL25ldC9kc2Evc2phMTEwNS9zamExMTA1X21haW4uYz0zMDI2PXN0YXRpYyBpbnQgc2phMTEwNV9zZXR1cChzdHJ1Y3QgZHNhX3N3aXRjaCAqZHMpXG4tLVxuZHJpdmVycy9uZXQvZHNhL3NqYTExMDUvc2phMTEwNV9tYWluLmMtMzA2Ny1cbmRyaXZlcnMvbmV0L2RzYS9zamExMTA1L3NqYTExMDVfbWFpbi5jOjMwNjg6XHRyYyA9IHNqYTExMDVfbWRpb2J1c19yZWdpc3Rlcihkcyk7XG5kcml2ZXJzL25ldC9kc2Evc2phMTEwNS9zamExMTA1X21haW4uYy0zMDY5LVx0aWYgKHJjIFx1MDAzYyAwKSB7XG4tLVxuZHJpdmVycy9uZXQvZHNhL3NqYTExMDUvc2phMTEwNV9tZGlvLmM9MjU4PXN0YXRpYyBpbnQgc2phMTEwNV9tZGlvYnVzX2Jhc2VfdHhfcmVnaXN0ZXIoc3RydWN0IHNqYTExMDVfcHJpdmF0ZSAqcHJpdixcbi0tXG5kcml2ZXJzL25ldC9kc2Evc2phMTEwNS9zamExMTA1X21kaW8uYy0yODctXG5kcml2ZXJzL25ldC9kc2Evc2phMTEwNS9zamExMTA1X21kaW8uYzoyODg6XHRyYyA9IG9mX21kaW9idXNfcmVnaXN0ZXIoYnVzLCBucCk7XG5kcml2ZXJzL25ldC9kc2Evc2phMTEwNS9zamExMTA1X21kaW8uYy0yODktXHRpZiAocmMpIHtcbi0tXG5kcml2ZXJzL25ldC9kc2Evc2phMTEwNS9zamExMTA1X21kaW8uYz0zMTI9c3RhdGljIGludCBzamExMTA1X21kaW9idXNfYmFzZV90MV9yZWdpc3RlcihzdHJ1Y3Qgc2phMTEwNV9wcml2YXRlICpwcml2LFxuLS1cbmRyaXZlcnMvbmV0L2RzYS9zamExMTA1L3NqYTExMDVfbWRpby5jLTM0My1cbmRyaXZlcnMvbmV0L2RzYS9zamExMTA1L3NqYTExMDVfbWRpby5jOjM0NDpcdHJjID0gb2ZfbWRpb2J1c19yZWdpc3RlcihidXMsIG5wKTtcbmRyaXZlcnMvbmV0L2RzYS9zamExMTA1L3NqYTExMDVfbWRpby5jLTM0NS1cdGlmIChyYykge1xuLS1cbmRyaXZlcnMvbmV0L2RzYS9zamExMTA1L3NqYTExMDVfbWRpby5jPTM2OD1zdGF0aWMgaW50IHNqYTExMDVfbWRpb2J1c19wY3NfcmVnaXN0ZXIoc3RydWN0IHNqYTExMDVfcHJpdmF0ZSAqcHJpdilcbi0tXG5kcml2ZXJzL25ldC9kc2Evc2phMTEwNS9zamExMTA1X21kaW8uYy0zOTUtXG5kcml2ZXJzL25ldC9kc2Evc2phMTEwNS9zamExMTA1X21kaW8uYzozOTY6XHRyYyA9IG1kaW9idXNfcmVnaXN0ZXIoYnVzKTtcbmRyaXZlcnMvbmV0L2RzYS9zamExMTA1L3NqYTExMDVfbWRpby5jLTM5Ny1cdGlmIChyYykge1xuLS1cbmRyaXZlcnMvbmV0L2RzYS9zamExMTA1L3NqYTExMDVfbWRpby5jPTQzOT1zdGF0aWMgdm9pZCBzamExMTA1X21kaW9idXNfcGNzX3VucmVnaXN0ZXIoc3RydWN0IHNqYTExMDVfcHJpdmF0ZSAqcHJpdilcbi0tXG5kcml2ZXJzL25ldC9kc2Evc2phMTEwNS9zamExMTA1X21kaW8uYy00NTgtXG5kcml2ZXJzL25ldC9kc2Evc2phMTEwNS9zamExMTA1X21kaW8uYzo0NTk6aW50IHNqYTExMDVfbWRpb2J1c19yZWdpc3RlcihzdHJ1Y3QgZHNhX3N3aXRjaCAqZHMpXG5kcml2ZXJzL25ldC9kc2Evc2phMTEwNS9zamExMTA1X21kaW8uYy00NjAte1xuLS1cbmRyaXZlcnMvbmV0L2RzYS95dDkyMXguYz01OTU9eXQ5MjF4X21idXNfaW50X2luaXQoc3RydWN0IHl0OTIxeF9wcml2ICpwcml2LCBzdHJ1Y3QgZGV2aWNlX25vZGUgKm1ucClcbi0tXG5kcml2ZXJzL25ldC9kc2EveXQ5MjF4LmMtNjEyLVxuZHJpdmVycy9uZXQvZHNhL3l0OTIxeC5jOjYxMzpcdHJlcyA9IGRldm1fb2ZfbWRpb2J1c19yZWdpc3RlcihkZXYsIG1idXMsIG1ucCk7XG5kcml2ZXJzL25ldC9kc2EveXQ5MjF4LmMtNjE0LVx0aWYgKHJlcylcbi0tXG5kcml2ZXJzL25ldC9kc2EveXQ5MjF4LmM9NzI2PXl0OTIxeF9tYnVzX2V4dF9pbml0KHN0cnVjdCB5dDkyMXhfcHJpdiAqcHJpdiwgc3RydWN0IGRldmljZV9ub2RlICptbnApXG4tLVxuZHJpdmVycy9uZXQvZHNhL3l0OTIxeC5jLTc0My1cbmRyaXZlcnMvbmV0L2RzYS95dDkyMXguYzo3NDQ6XHRyZXMgPSBkZXZtX29mX21kaW9idXNfcmVnaXN0ZXIoZGV2LCBtYnVzLCBtbnApO1xuZHJpdmVycy9uZXQvZHNhL3l0OTIxeC5jLTc0NS1cdGlmIChyZXMpXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvODM5MC9heDg4Nzk2LmM9NDU5PXN0YXRpYyBpbnQgYXhfbWlpX2luaXQoc3RydWN0IG5ldF9kZXZpY2UgKmRldilcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC84MzkwL2F4ODg3OTYuYy00NzgtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC84MzkwL2F4ODg3OTYuYzo0Nzk6XHRlcnIgPSBtZGlvYnVzX3JlZ2lzdGVyKGF4LVx1MDAzZW1paV9idXMpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvODM5MC9heDg4Nzk2LmMtNDgwLVx0aWYgKGVycilcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hY3Rpb25zL293bC1lbWFjLmM9MTMyMT1zdGF0aWMgaW50IG93bF9lbWFjX21kaW9faW5pdChzdHJ1Y3QgbmV0X2RldmljZSAqbmV0ZGV2KVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FjdGlvbnMvb3dsLWVtYWMuYy0xMzQ1LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWN0aW9ucy9vd2wtZW1hYy5jOjEzNDY6XHRyZXQgPSBkZXZtX29mX21kaW9idXNfcmVnaXN0ZXIoZGV2LCBwcml2LVx1MDAzZW1paSwgbWRpb19ub2RlKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FjdGlvbnMvb3dsLWVtYWMuYy0xMzQ3LVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FkaS9hZGluMTExMC5jPTUwOT1zdGF0aWMgaW50IGFkaW4xMTEwX3JlZ2lzdGVyX21kaW9idXMoc3RydWN0IGFkaW4xMTEwX3ByaXYgKnByaXYsXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWRpL2FkaW4xMTEwLmMtNTI5LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWRpL2FkaW4xMTEwLmM6NTMwOlx0cmV0ID0gZGV2bV9tZGlvYnVzX3JlZ2lzdGVyKGRldiwgbWlpX2J1cyk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hZGkvYWRpbjExMTAuYy01MzEtXHRpZiAocmV0KVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Flcm9mbGV4L2dyZXRoLmM9MTI5MD1zdGF0aWMgaW50IGdyZXRoX21kaW9faW5pdChzdHJ1Y3QgZ3JldGhfcHJpdmF0ZSAqZ3JldGgpXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWVyb2ZsZXgvZ3JldGguYy0xMzA2LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWVyb2ZsZXgvZ3JldGguYzoxMzA3Olx0cmV0ID0gbWRpb2J1c19yZWdpc3RlcihncmV0aC1cdTAwM2VtZGlvKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Flcm9mbGV4L2dyZXRoLmMtMTMwOC1cdGlmIChyZXQpIHtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hZ2VyZS9ldDEzMXguYz0zOTMxPXN0YXRpYyBpbnQgZXQxMzF4X3BjaV9zZXR1cChzdHJ1Y3QgcGNpX2RldiAqcGRldixcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hZ2VyZS9ldDEzMXguYy00MDI2LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWdlcmUvZXQxMzF4LmM6NDAyNzpcdHJjID0gbWRpb2J1c19yZWdpc3RlcihhZGFwdGVyLVx1MDAzZW1paV9idXMpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWdlcmUvZXQxMzF4LmMtNDAyOC1cdGlmIChyYyBcdTAwM2MgMCkge1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FsdGVyYS9hbHRlcmFfdHNlX21haW4uYz0xMjE9c3RhdGljIGludCBhbHRlcmFfdHNlX21kaW9fY3JlYXRlKHN0cnVjdCBuZXRfZGV2aWNlICpkZXYsIHVuc2lnbmVkIGludCBpZClcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hbHRlcmEvYWx0ZXJhX3RzZV9tYWluLmMtMTU3LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWx0ZXJhL2FsdGVyYV90c2VfbWFpbi5jOjE1ODpcdHJldCA9IG9mX21kaW9idXNfcmVnaXN0ZXIobWRpbywgbWRpb19ub2RlKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FsdGVyYS9hbHRlcmFfdHNlX21haW4uYy0xNTktXHRpZiAocmV0ICE9IDApIHtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQvYXUxMDAwX2V0aC5jPTEwNjE9c3RhdGljIGludCBhdTEwMDBfcHJvYmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldilcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQvYXUxMDAwX2V0aC5jLTEyMjEtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQvYXUxMDAwX2V0aC5jOjEyMjI6XHRlcnIgPSBtZGlvYnVzX3JlZ2lzdGVyKGF1cC1cdTAwM2VtaWlfYnVzKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC9hdTEwMDBfZXRoLmMtMTIyMy1cdGlmIChlcnIpIHtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQveGdiZS94Z2JlLXBoeS12Mi5jPTM0Mjg9c3RhdGljIGludCB4Z2JlX3BoeV9pbml0KHN0cnVjdCB4Z2JlX3Bydl9kYXRhICpwZGF0YSlcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQveGdiZS94Z2JlLXBoeS12Mi5jLTM3MTctXHRzbnByaW50ZihtaWktXHUwMDNlaWQsIHNpemVvZihtaWktXHUwMDNlaWQpLCBcJiMzNDslc1wmIzM0OywgZGV2X25hbWUocGRhdGEtXHUwMDNlZGV2KSk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQveGdiZS94Z2JlLXBoeS12Mi5jOjM3MTg6XHRyZXQgPSBtZGlvYnVzX3JlZ2lzdGVyKG1paSk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQveGdiZS94Z2JlLXBoeS12Mi5jLTM3MTktXHRpZiAocmV0KSB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQveGdiZS94Z2JlLXBoeS12Mi5jOjM3MjA6XHRcdGRldl9lcnIocGRhdGEtXHUwMDNlZGV2LCBcJiMzNDttZGlvYnVzX3JlZ2lzdGVyIGZhaWxlZFxcblwmIzM0Oyk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQveGdiZS94Z2JlLXBoeS12Mi5jLTM3MjEtXHRcdHJldHVybiByZXQ7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXBtL3hnZW5lLXYyL21kaW8uYz05OD1pbnQgeGdlX21kaW9fY29uZmlnKHN0cnVjdCBuZXRfZGV2aWNlICpuZGV2KVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FwbS94Z2VuZS12Mi9tZGlvLmMtMTE4LVx0bWRpb19idXMtXHUwMDNlcGh5X21hc2sgPSAweDE7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hcG0veGdlbmUtdjIvbWRpby5jOjExOTpcdHJldCA9IG1kaW9idXNfcmVnaXN0ZXIobWRpb19idXMpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXBtL3hnZW5lLXYyL21kaW8uYy0xMjAtXHRpZiAocmV0KVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FwbS94Z2VuZS94Z2VuZV9lbmV0X2h3LmM9ODM3PWludCB4Z2VuZV9lbmV0X3BoeV9jb25uZWN0KHN0cnVjdCBuZXRfZGV2aWNlICpuZGV2KVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FwbS94Z2VuZS94Z2VuZV9lbmV0X2h3LmMtODg3LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXBtL3hnZW5lL3hnZW5lX2VuZXRfaHcuYzo4ODg6c3RhdGljIGludCB4Z2VuZV9tZGlvYnVzX3JlZ2lzdGVyKHN0cnVjdCB4Z2VuZV9lbmV0X3BkYXRhICpwZGF0YSxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FwbS94Z2VuZS94Z2VuZV9lbmV0X2h3LmMtODg5LVx0XHRcdFx0ICBzdHJ1Y3QgbWlpX2J1cyAqbWRpbylcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hcG0veGdlbmUveGdlbmVfZW5ldF9ody5jLTkxMi1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FwbS94Z2VuZS94Z2VuZV9lbmV0X2h3LmM6OTEzOlx0XHRyZXQgPSBvZl9tZGlvYnVzX3JlZ2lzdGVyKG1kaW8sIG1kaW9fbnApO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXBtL3hnZW5lL3hnZW5lX2VuZXRfaHcuYy05MTQtXHRcdG9mX25vZGVfcHV0KG1kaW9fbnApO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FwbS94Z2VuZS94Z2VuZV9lbmV0X2h3LmMtOTIxLVx0LyogUmVnaXN0ZXIgdGhlIE1ESU8gYnVzICovXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hcG0veGdlbmUveGdlbmVfZW5ldF9ody5jOjkyMjpcdHJldCA9IG1kaW9idXNfcmVnaXN0ZXIobWRpbyk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hcG0veGdlbmUveGdlbmVfZW5ldF9ody5jLTkyMy1cdGlmIChyZXQpXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXBtL3hnZW5lL3hnZW5lX2VuZXRfaHcuYz05Mzk9aW50IHhnZW5lX2VuZXRfbWRpb19jb25maWcoc3RydWN0IHhnZW5lX2VuZXRfcGRhdGEgKnBkYXRhKVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FwbS94Z2VuZS94Z2VuZV9lbmV0X2h3LmMtOTU3LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXBtL3hnZW5lL3hnZW5lX2VuZXRfaHcuYzo5NTg6XHRyZXQgPSB4Z2VuZV9tZGlvYnVzX3JlZ2lzdGVyKHBkYXRhLCBtZGlvX2J1cyk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hcG0veGdlbmUveGdlbmVfZW5ldF9ody5jLTk1OS1cdGlmIChyZXQpIHtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hcmMvZW1hY19tZGlvLmM9MTMxPWludCBhcmNfbWRpb19wcm9iZShzdHJ1Y3QgYXJjX2VtYWNfcHJpdiAqcHJpdilcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hcmMvZW1hY19tZGlvLmMtMTcyLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXJjL2VtYWNfbWRpby5jOjE3MzpcdGVycm9yID0gb2ZfbWRpb2J1c19yZWdpc3RlcihidXMsIG1kaW9fbm9kZSk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hcmMvZW1hY19tZGlvLmMtMTc0LVx0b2Zfbm9kZV9wdXQobWRpb19ub2RlKTtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX21haW4uYz05NjY9c3RhdGljIGludCBheDg4Nzk2Y19wcm9iZShzdHJ1Y3Qgc3BpX2RldmljZSAqc3BpKVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfbWFpbi5jLTEwMTAtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX21haW4uYzoxMDExOlx0cmV0ID0gZGV2bV9tZGlvYnVzX3JlZ2lzdGVyKFx1MDAyNnNwaS1cdTAwM2VkZXYsIGF4X2xvY2FsLVx1MDAzZW1kaW9idXMpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19tYWluLmMtMTAxMi1cdGlmIChyZXQgXHUwMDNjIDApIHtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hdGhlcm9zL2FnNzF4eC5jPTY4Nz1zdGF0aWMgaW50IGFnNzF4eF9tZGlvX3Byb2JlKHN0cnVjdCBhZzcxeHggKmFnKVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2F0aGVyb3MvYWc3MXh4LmMtNzI3LVx0bW5wID0gb2ZfZ2V0X2NoaWxkX2J5X25hbWUobnAsIFwmIzM0O21kaW9cJiMzNDspO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXRoZXJvcy9hZzcxeHguYzo3Mjg6XHRlcnIgPSBkZXZtX29mX21kaW9idXNfcmVnaXN0ZXIoZGV2LCBtaWlfYnVzLCBtbnApO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXRoZXJvcy9hZzcxeHguYy03MjktXHRvZl9ub2RlX3B1dChtbnApO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2I0NC5jPTIyMzQ9c3RhdGljIGludCBiNDRfcmVnaXN0ZXJfcGh5X29uZShzdHJ1Y3QgYjQ0ICpicClcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9iNDQuYy0yMjU5LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYjQ0LmM6MjI2MDpcdGVyciA9IG1kaW9idXNfcmVnaXN0ZXIobWlpX2J1cyk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9iNDQuYy0yMjYxLVx0aWYgKGVycikge1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JjbTYzeHhfZW5ldC5jPTE3MTM9c3RhdGljIGludCBiY21fZW5ldF9wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JjbTYzeHhfZW5ldC5jLTE4MjktXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9iY202M3h4X2VuZXQuYzoxODMwOlx0XHRyZXQgPSBtZGlvYnVzX3JlZ2lzdGVyKGJ1cyk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9iY202M3h4X2VuZXQuYy0xODMxLVx0XHRpZiAocmV0KSB7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYmdtYWMtYmNtYS1tZGlvLmM9MjExPXN0cnVjdCBtaWlfYnVzICpiY21hX21kaW9fbWlpX3JlZ2lzdGVyKHN0cnVjdCBiZ21hYyAqYmdtYWMpXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYmdtYWMtYmNtYS1tZGlvLmMtMjM1LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYmdtYWMtYmNtYS1tZGlvLmM6MjM2Olx0ZXJyID0gb2ZfbWRpb2J1c19yZWdpc3RlcihtaWlfYnVzLCBucCk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9iZ21hYy1iY21hLW1kaW8uYy0yMzctXHRvZl9ub2RlX3B1dChucCk7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vZ2VuZXQvYmNtbWlpLmM9MTkzPWludCBiY21nZW5ldF9taWlfY29uZmlnKHN0cnVjdCBuZXRfZGV2aWNlICpkZXYsIGJvb2wgaW5pdClcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9nZW5ldC9iY21taWkuYy0yMzMtXHRcdHBoeV9uYW1lID0gXCYjMzQ7ZXh0ZXJuYWwgUnZNSUlcJiMzNDs7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9nZW5ldC9iY21taWkuYzoyMzQ6XHRcdC8qIG9mX21kaW9idXNfcmVnaXN0ZXIgdG9vayBjYXJlIG9mIHJlYWRpbmcgdGhlICYjMzk7bWF4LXNwZWVkJiMzOTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2dlbmV0L2JjbW1paS5jLTIzNS1cdFx0ICogUEhZIHByb3BlcnR5IGZvciB1cywgZWZmZWN0aXZlbHkgbGltaXRpbmcgdGhlIFBIWSBzdXBwb3J0ZWRcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9zYjEyNTAtbWFjLmM9MjE1Nz1zdGF0aWMgaW50IHNibWFjX2luaXQoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGxkZXYsIGxvbmcgbG9uZyBiYXNlKVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL3NiMTI1MC1tYWMuYy0yMjI3LVx0ICovXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9zYjEyNTAtbWFjLmM6MjIyODpcdGVyciA9IG1kaW9idXNfcmVnaXN0ZXIoc2MtXHUwMDNlbWlpX2J1cyk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9zYjEyNTAtbWFjLmMtMjIyOS1cdGlmIChlcnIpIHtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS90ZzMuYz0xNTA1PXN0YXRpYyBpbnQgdGczX21kaW9faW5pdChzdHJ1Y3QgdGczICp0cClcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS90ZzMuYy0xNTU3LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vdGczLmM6MTU1ODpcdGkgPSBtZGlvYnVzX3JlZ2lzdGVyKHRwLVx1MDAzZW1kaW9fYnVzKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL3RnMy5jLTE1NTktXHRpZiAoaSkge1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYl9tYWluLmM9MTAyMz1zdGF0aWMgaW50IG1hY2JfbWlpX3Byb2JlKHN0cnVjdCBuZXRfZGV2aWNlICpkZXYpXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiX21haW4uYy0xMDk2LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiX21haW4uYzoxMDk3OnN0YXRpYyBpbnQgbWFjYl9tZGlvYnVzX3JlZ2lzdGVyKHN0cnVjdCBtYWNiICpicCwgc3RydWN0IGRldmljZV9ub2RlICptZGlvX25wKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiX21haW4uYy0xMDk4LXtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2JfbWFpbi5jLTExMDQtXHRpZiAobWRpb19ucClcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYl9tYWluLmM6MTEwNTpcdFx0cmV0dXJuIG9mX21kaW9idXNfcmVnaXN0ZXIoYnAtXHUwMDNlbWlpX2J1cywgbWRpb19ucCk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2JfbWFpbi5jLTExMDYtXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiX21haW4uYy0xMTE4LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiX21haW4uYzoxMTE5Olx0XHRcdHJldHVybiBvZl9tZGlvYnVzX3JlZ2lzdGVyKGJwLVx1MDAzZW1paV9idXMsIG5wKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYl9tYWluLmMtMTEyMC1cdFx0fVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiX21haW4uYy0xMTIxLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiX21haW4uYzoxMTIyOlx0cmV0dXJuIG1kaW9idXNfcmVnaXN0ZXIoYnAtXHUwMDNlbWlpX2J1cyk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2JfbWFpbi5jLTExMjMtfVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYl9tYWluLmM9MTEyNT1zdGF0aWMgaW50IG1hY2JfbWlpX2luaXQoc3RydWN0IG1hY2IgKmJwKVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYl9tYWluLmMtMTE1OC1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYl9tYWluLmM6MTE1OTpcdGVyciA9IG1hY2JfbWRpb2J1c19yZWdpc3RlcihicCwgbWRpb19ucCk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2JfbWFpbi5jLTExNjAtXHRpZiAoZXJyKVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Rhdmljb20vZG05MDUxLmM9MTEwNz1zdGF0aWMgaW50IGRtOTA1MV9tZGlvX3JlZ2lzdGVyKHN0cnVjdCBib2FyZF9pbmZvICpkYilcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9kYXZpY29tL2RtOTA1MS5jLTExMjQtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9kYXZpY29tL2RtOTA1MS5jOjExMjU6XHRyZXQgPSBkZXZtX21kaW9idXNfcmVnaXN0ZXIoXHUwMDI2c3BpLVx1MDAzZWRldiwgZGItXHUwMDNlbWRpb2J1cyk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9kYXZpY29tL2RtOTA1MS5jLTExMjYtXHRpZiAocmV0KVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2VuZ2xlZGVyL3RzbmVwX21haW4uYz0yNDIzPXN0YXRpYyBpbnQgdHNuZXBfbWRpb19pbml0KHN0cnVjdCB0c25lcF9hZGFwdGVyICphZGFwdGVyKVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2VuZ2xlZGVyL3RzbmVwX21haW4uYy0yNDU0LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvZW5nbGVkZXIvdHNuZXBfbWFpbi5jOjI0NTU6XHRyZXR2YWwgPSBvZl9tZGlvYnVzX3JlZ2lzdGVyKGFkYXB0ZXItXHUwMDNlbWRpb2J1cywgbnApO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvZW5nbGVkZXIvdHNuZXBfbWFpbi5jLTI0NTYtXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvZXRob2MuYz0xMDI0PXN0YXRpYyBpbnQgZXRob2NfcHJvYmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldilcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9ldGhvYy5jLTEyMDctXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9ldGhvYy5jOjEyMDg6XHRyZXQgPSBtZGlvYnVzX3JlZ2lzdGVyKHByaXYtXHUwMDNlbWRpbyk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9ldGhvYy5jLTEyMDktXHRpZiAocmV0KSB7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvZmFyYWRheS9mdGdtYWMxMDAuYz0xNzM0PXN0YXRpYyBpbnQgZnRnbWFjMTAwX3NldHVwX21kaW8oc3RydWN0IG5ldF9kZXZpY2UgKm5ldGRldilcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9mYXJhZGF5L2Z0Z21hYzEwMC5jLTE3NjktXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9mYXJhZGF5L2Z0Z21hYzEwMC5jOjE3NzA6XHRlcnIgPSBkZXZtX29mX21kaW9idXNfcmVnaXN0ZXIocHJpdi1cdTAwM2VkZXYsIHByaXYtXHUwMDNlbWlpX2J1cywgbWRpb19ucCk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9mYXJhZGF5L2Z0Z21hYzEwMC5jLTE3NzEtXHRvZl9ub2RlX3B1dChtZGlvX25wKTtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9mcmVlc2NhbGUvZW5ldGMvZW5ldGNfcGNpX21kaW8uYz0zNj1zdGF0aWMgaW50IGVuZXRjX3BjaV9tZGlvX3Byb2JlKHN0cnVjdCBwY2lfZGV2ICpwZGV2LFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ZyZWVzY2FsZS9lbmV0Yy9lbmV0Y19wY2lfbWRpby5jLTkwLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvZnJlZXNjYWxlL2VuZXRjL2VuZXRjX3BjaV9tZGlvLmM6OTE6XHRlcnIgPSBvZl9tZGlvYnVzX3JlZ2lzdGVyKGJ1cywgZGV2LVx1MDAzZW9mX25vZGUpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvZnJlZXNjYWxlL2VuZXRjL2VuZXRjX3BjaV9tZGlvLmMtOTItXHRpZiAoZXJyKVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ZyZWVzY2FsZS9lbmV0Yy9lbmV0Y19wZl9jb21tb24uYz0xNjA9c3RhdGljIGludCBlbmV0Y19tZGlvX3Byb2JlKHN0cnVjdCBlbmV0Y19wZiAqcGYsIHN0cnVjdCBkZXZpY2Vfbm9kZSAqbnApXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvZnJlZXNjYWxlL2VuZXRjL2VuZXRjX3BmX2NvbW1vbi5jLTE4Ni1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ZyZWVzY2FsZS9lbmV0Yy9lbmV0Y19wZl9jb21tb24uYzoxODc6XHRlcnIgPSBvZl9tZGlvYnVzX3JlZ2lzdGVyKGJ1cywgbnApO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvZnJlZXNjYWxlL2VuZXRjL2VuZXRjX3BmX2NvbW1vbi5jLTE4OC1cdGlmIChlcnIpXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvZnJlZXNjYWxlL2VuZXRjL2VuZXRjX3BmX2NvbW1vbi5jPTIwMj1zdGF0aWMgaW50IGVuZXRjX2ltZGlvX2NyZWF0ZShzdHJ1Y3QgZW5ldGNfcGYgKnBmKVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ZyZWVzY2FsZS9lbmV0Yy9lbmV0Y19wZl9jb21tb24uYy0yMzYtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9mcmVlc2NhbGUvZW5ldGMvZW5ldGNfcGZfY29tbW9uLmM6MjM3Olx0ZXJyID0gbWRpb2J1c19yZWdpc3RlcihidXMpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvZnJlZXNjYWxlL2VuZXRjL2VuZXRjX3BmX2NvbW1vbi5jLTIzOC1cdGlmIChlcnIpIHtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9mcmVlc2NhbGUvZmVjX21haW4uYz0zMDQyPXN0YXRpYyBpbnQgZmVjX2VuZXRfbWlpX2luaXQoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldilcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9mcmVlc2NhbGUvZmVjX21haW4uYy0zMTYwLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvZnJlZXNjYWxlL2ZlY19tYWluLmM6MzE2MTpcdGVyciA9IG9mX21kaW9idXNfcmVnaXN0ZXIoZmVwLVx1MDAzZW1paV9idXMsIG5vZGUpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvZnJlZXNjYWxlL2ZlY19tYWluLmMtMzE2Mi1cdGlmIChlcnIpXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvZnJlZXNjYWxlL2ZlY19tcGM1Mnh4X3BoeS5jPTY1PXN0YXRpYyBpbnQgbXBjNTJ4eF9mZWNfbWRpb19wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpvZilcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9mcmVlc2NhbGUvZmVjX21wYzUyeHhfcGh5LmMtMTA1LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvZnJlZXNjYWxlL2ZlY19tcGM1Mnh4X3BoeS5jOjEwNjpcdGVyciA9IG9mX21kaW9idXNfcmVnaXN0ZXIoYnVzLCBucCk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9mcmVlc2NhbGUvZmVjX21wYzUyeHhfcGh5LmMtMTA3LVx0aWYgKGVycilcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9mcmVlc2NhbGUvZnNfZW5ldC9taWktYml0YmFuZy5jPTE0OT1zdGF0aWMgaW50IGZzX2VuZXRfbWRpb19wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpvZmRldilcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9mcmVlc2NhbGUvZnNfZW5ldC9taWktYml0YmFuZy5jLTE3NS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ZyZWVzY2FsZS9mc19lbmV0L21paS1iaXRiYW5nLmM6MTc2Olx0cmV0ID0gb2ZfbWRpb2J1c19yZWdpc3RlcihuZXdfYnVzLCBvZmRldi1cdTAwM2VkZXYub2Zfbm9kZSk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9mcmVlc2NhbGUvZnNfZW5ldC9taWktYml0YmFuZy5jLTE3Ny1cdGlmIChyZXQpXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvZnJlZXNjYWxlL2ZzX2VuZXQvbWlpLWZlYy5jPTk3PXN0YXRpYyBpbnQgZnNfZW5ldF9tZGlvX3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKm9mZGV2KVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ZyZWVzY2FsZS9mc19lbmV0L21paS1mZWMuYy0xNjYtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9mcmVlc2NhbGUvZnNfZW5ldC9taWktZmVjLmM6MTY3Olx0cmV0ID0gb2ZfbWRpb2J1c19yZWdpc3RlcihuZXdfYnVzLCBvZmRldi1cdTAwM2VkZXYub2Zfbm9kZSk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9mcmVlc2NhbGUvZnNfZW5ldC9taWktZmVjLmMtMTY4LVx0aWYgKHJldClcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9mcmVlc2NhbGUvZnNsX3BxX21kaW8uYz00MDk9c3RhdGljIGludCBmc2xfcHFfbWRpb19wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ZyZWVzY2FsZS9mc2xfcHFfbWRpby5jLTQ5My1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ZyZWVzY2FsZS9mc2xfcHFfbWRpby5jOjQ5NDpcdGVyciA9IG9mX21kaW9idXNfcmVnaXN0ZXIobmV3X2J1cywgbnApO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvZnJlZXNjYWxlL2ZzbF9wcV9tZGlvLmMtNDk1LVx0aWYgKGVycikge1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ZyZWVzY2FsZS94Z21hY19tZGlvLmM9MzcxPXN0YXRpYyBpbnQgeGdtYWNfbWRpb19wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ZyZWVzY2FsZS94Z21hY19tZGlvLmMtNDI2LVx0aWYgKGlzX29mX25vZGUoZndub2RlKSlcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ZyZWVzY2FsZS94Z21hY19tZGlvLmM6NDI3Olx0XHRyZXQgPSBvZl9tZGlvYnVzX3JlZ2lzdGVyKGJ1cywgdG9fb2Zfbm9kZShmd25vZGUpKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ZyZWVzY2FsZS94Z21hY19tZGlvLmMtNDI4LVx0ZWxzZSBpZiAoaXNfYWNwaV9ub2RlKGZ3bm9kZSkpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9mcmVlc2NhbGUveGdtYWNfbWRpby5jOjQyOTpcdFx0cmV0ID0gYWNwaV9tZGlvYnVzX3JlZ2lzdGVyKGJ1cywgZndub2RlKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ZyZWVzY2FsZS94Z21hY19tZGlvLmMtNDMwLVx0ZWxzZVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9oaWJtY2dlL2hiZ19tZGlvLmM9MjY2PWludCBoYmdfbWRpb19pbml0KHN0cnVjdCBoYmdfcHJpdiAqcHJpdilcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaGlibWNnZS9oYmdfbWRpby5jLTI5MS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9oaWJtY2dlL2hiZ19tZGlvLmM6MjkyOlx0cmV0ID0gZGV2bV9tZGlvYnVzX3JlZ2lzdGVyKGRldiwgbWRpb19idXMpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2hpYm1jZ2UvaGJnX21kaW8uYy0yOTMtXHRpZiAocmV0KVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9oaXg1aGQyX2dtYWMuYz0xMDk0PXN0YXRpYyBpbnQgaGl4NWhkMl9kZXZfcHJvYmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldilcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaGl4NWhkMl9nbWFjLmMtMTE4NS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9oaXg1aGQyX2dtYWMuYzoxMTg2Olx0cmV0ID0gb2ZfbWRpb2J1c19yZWdpc3RlcihidXMsIG5vZGUpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2hpeDVoZDJfZ21hYy5jLTExODctXHRpZiAocmV0KVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL2huczNwZi9oY2xnZV9tZGlvLmM9MTIzPWludCBoY2xnZV9tYWNfbWRpb19jb25maWcoc3RydWN0IGhjbGdlX2RldiAqaGRldilcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaG5zMy9obnMzcGYvaGNsZ2VfbWRpby5jLTE1NC1cdG1kaW9fYnVzLVx1MDAzZXBoeV9tYXNrID0gfigxVSBcdTAwM2NcdTAwM2MgbWFjLVx1MDAzZXBoeV9hZGRyKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL2huczNwZi9oY2xnZV9tZGlvLmM6MTU1Olx0cmV0ID0gbWRpb2J1c19yZWdpc3RlcihtZGlvX2J1cyk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaG5zMy9obnMzcGYvaGNsZ2VfbWRpby5jLTE1Ni1cdGlmIChyZXQpIHtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaG5zX21kaW8uYz00OTU9c3RhdGljIGludCBobnNfbWRpb19wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnNfbWRpby5jLTU4My1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnNfbWRpby5jOjU4NDpcdFx0cmV0ID0gb2ZfbWRpb2J1c19yZWdpc3RlcihuZXdfYnVzLCBwZGV2LVx1MDAzZWRldi5vZl9ub2RlKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnNfbWRpby5jLTU4NS1cdH0gZWxzZSBpZiAoaXNfYWNwaV9ub2RlKHBkZXYtXHUwMDNlZGV2LmZ3bm9kZSkpIHtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaG5zX21kaW8uYy01OTItXHRcdC8qIFJlZ2lzdGVyIHRoZSBNRElPIGJ1cyAqL1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huc19tZGlvLmM6NTkzOlx0XHRyZXQgPSBtZGlvYnVzX3JlZ2lzdGVyKG5ld19idXMpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huc19tZGlvLmMtNTk0LVx0fSBlbHNlIHtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pYm0vZW1hYy9jb3JlLmM9MjU2MD1zdGF0aWMgaW50IGVtYWNfZHRfbWRpb19wcm9iZShzdHJ1Y3QgZW1hY19pbnN0YW5jZSAqZGV2KVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2libS9lbWFjL2NvcmUuYy0yNTg0LVx0c25wcmludGYoYnVzLVx1MDAzZWlkLCBNSUlfQlVTX0lEX1NJWkUsIFwmIzM0OyVzXCYjMzQ7LCBkZXYtXHUwMDNlb2ZkZXYtXHUwMDNlbmFtZSk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pYm0vZW1hYy9jb3JlLmM6MjU4NTpcdHJlcyA9IGRldm1fb2ZfbWRpb2J1c19yZWdpc3RlcihcdTAwMjZkZXYtXHUwMDNlb2ZkZXYtXHUwMDNlZGV2LCBidXMsIG1paV9ucCk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pYm0vZW1hYy9jb3JlLmMtMjU4Ni1cdGlmIChyZXMpIHtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9peGdiZV9waHkuYz0xMDI2PWludCBpeGdiZV9taWlfYnVzX2luaXQoc3RydWN0IGl4Z2JlX2h3ICpodylcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9peGdiZV9waHkuYy0xMDg4LVx0YWRhcHRlci1cdTAwM2VtaWlfYnVzID0gYnVzO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvaXhnYmVfcGh5LmM6MTA4OTpcdHJldHVybiBtZGlvYnVzX3JlZ2lzdGVyKGJ1cyk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9peGdiZV9waHkuYy0xMDkwLX1cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9sYW50aXFfZXRvcC5jPTM4NT1sdHFfZXRvcF9tZGlvX2luaXQoc3RydWN0IG5ldF9kZXZpY2UgKmRldilcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9sYW50aXFfZXRvcC5jLTQwMi1cdFx0IHByaXYtXHUwMDNlcGRldi1cdTAwM2VuYW1lLCBwcml2LVx1MDAzZXBkZXYtXHUwMDNlaWQpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbGFudGlxX2V0b3AuYzo0MDM6XHRpZiAobWRpb2J1c19yZWdpc3Rlcihwcml2LVx1MDAzZW1paV9idXMpKSB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9sYW50aXFfZXRvcC5jLTQwNC1cdFx0ZXJyID0gLUVOWElPO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvbXZtZGlvLmM9MjgzPXN0YXRpYyBpbnQgb3Jpb25fbWRpb19wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvbXZtZGlvLmMtMzgxLVx0LyogRm9yIHRoZSBwbGF0Zm9ybXMgbm90IHN1cHBvcnRpbmcgRFQvQUNQSSBmYWxsLWJhY2tcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvbXZtZGlvLmM6MzgyOlx0ICogdG8gbWRpb2J1c19yZWdpc3RlciB2aWEgb2ZfbWRpb2J1c19yZWdpc3Rlci5cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvbXZtZGlvLmMtMzgzLVx0ICovXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL212bWRpby5jLTM4NC1cdGlmIChpc19hY3BpX25vZGUocGRldi1cdTAwM2VkZXYuZndub2RlKSlcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvbXZtZGlvLmM6Mzg1Olx0XHRyZXQgPSBhY3BpX21kaW9idXNfcmVnaXN0ZXIoYnVzLCBwZGV2LVx1MDAzZWRldi5md25vZGUpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9tdm1kaW8uYy0zODYtXHRlbHNlXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL212bWRpby5jOjM4NzpcdFx0cmV0ID0gb2ZfbWRpb2J1c19yZWdpc3RlcihidXMsIHBkZXYtXHUwMDNlZGV2Lm9mX25vZGUpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9tdm1kaW8uYy0zODgtXHRpZiAocmV0IFx1MDAzYyAwKSB7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9weGExNjhfZXRoLmM9MTM4Nz1zdGF0aWMgaW50IHB4YTE2OF9ldGhfcHJvYmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldilcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3B4YTE2OF9ldGguYy0xNTA0LVx0cGVwLVx1MDAzZXNtaV9idXMtXHUwMDNlcGh5X21hc2sgPSAweGZmZmZmZmZmO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9weGExNjhfZXRoLmM6MTUwNTpcdGVyciA9IG1kaW9idXNfcmVnaXN0ZXIocGVwLVx1MDAzZXNtaV9idXMpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9weGExNjhfZXRoLmMtMTUwNi1cdGlmIChlcnIpXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX2V0aF9zb2MuYz05OTc9c3RhdGljIGludCBtdGtfbWRpb19pbml0KHN0cnVjdCBtdGtfZXRoICpldGgpXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX2V0aF9zb2MuYy0xMDM2LVx0ZGV2X2RiZyhldGgtXHUwMDNlZGV2LCBcJiMzNDtNREMgaXMgcnVubmluZyBvbiAlZCBIelxcblwmIzM0OywgTURDX01BWF9GUkVRIC8gZXRoLVx1MDAzZW1kY19kaXZpZGVyKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a19ldGhfc29jLmM6MTAzNzpcdHJldCA9IG9mX21kaW9idXNfcmVnaXN0ZXIoZXRoLVx1MDAzZW1paV9idXMsIG1paV9ucCk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9tdGtfZXRoX3NvYy5jLTEwMzgtXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX3N0YXJfZW1hYy5jPTE0MjI9c3RhdGljIGludCBtdGtfc3Rhcl9tZGlvX2luaXQoc3RydWN0IG5ldF9kZXZpY2UgKm5kZXYpXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX3N0YXJfZW1hYy5jLTE0NDctXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9tdGtfc3Rhcl9lbWFjLmM6MTQ0ODpcdHJldCA9IGRldm1fb2ZfbWRpb2J1c19yZWdpc3RlcihkZXYsIHByaXYtXHUwMDNlbWlpLCBtZGlvX25vZGUpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX3N0YXJfZW1hYy5jLTE0NDktXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4YmZfZ2lnZS9tbHhiZl9naWdlX21kaW8uYz0yODc9aW50IG1seGJmX2dpZ2VfbWRpb19wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2LCBzdHJ1Y3QgbWx4YmZfZ2lnZSAqcHJpdilcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHhiZl9naWdlL21seGJmX2dpZ2VfbWRpby5jLTMzMi1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seGJmX2dpZ2UvbWx4YmZfZ2lnZV9tZGlvLmM6MzMzOlx0cmV0ID0gbWRpb2J1c19yZWdpc3Rlcihwcml2LVx1MDAzZW1kaW9idXMpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4YmZfZ2lnZS9tbHhiZl9naWdlX21kaW8uYy0zMzQtXHRpZiAocmV0KVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21ldGEvZmJuaWMvZmJuaWNfbWRpby5jPTI1Mz1pbnQgZmJuaWNfbWRpb2J1c19jcmVhdGUoc3RydWN0IGZibmljX2RldiAqZmJkKVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21ldGEvZmJuaWMvZmJuaWNfbWRpby5jLTI3Mi1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21ldGEvZmJuaWMvZmJuaWNfbWRpby5jOjI3MzpcdGVyciA9IGRldm1fbWRpb2J1c19yZWdpc3RlcihmYmQtXHUwMDNlZGV2LCBidXMpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWV0YS9mYm5pYy9mYm5pY19tZGlvLmMtMjc0LVx0aWYgKGVycikge1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JlbC9rczg4NTFfY29tbW9uLmM9MTAzNj1zdGF0aWMgaW50IGtzODg1MV9yZWdpc3Rlcl9tZGlvYnVzKHN0cnVjdCBrczg4NTFfbmV0ICprcywgc3RydWN0IGRldmljZSAqZGV2KVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JlbC9rczg4NTFfY29tbW9uLmMtMTA1Mi1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JlbC9rczg4NTFfY29tbW9uLmM6MTA1MzpcdHJldCA9IG1kaW9idXNfcmVnaXN0ZXIobWlpX2J1cyk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyZWwva3M4ODUxX2NvbW1vbi5jLTEwNTQtXHRpZiAocmV0KVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcmVsL2tzODg1MV9jb21tb24uYzoxMDU1Olx0XHRnb3RvIGVycl9tZGlvYnVzX3JlZ2lzdGVyO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcmVsL2tzODg1MV9jb21tb24uYy0xMDU2LVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JlbC9rczg4NTFfY29tbW9uLmMtMTA2MC1cblxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjcvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzI1IDA4OjIwPC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDMyNDA3CgkJCQkJCQlvdXRwdXQ6IDMxCgkJCQkJCQl0aG91Z2h0czogNTkKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPk9rYXksIGxldCBtZSB0aGluayB0aGlzIHRocm91Z2guCgoqKk1ESU8gQnVzIFJlZ2lzdHJhdGlvbjogQSBRdWljayBTY3J1dGlueSoqCgpIbW0sIGhvbGQgb24gYSBzZWNvbmQuIEkmIzM5O20gc2VlaW5nIGEgZmV3IE1ESU8gYnVzIHJlZ2lzdHJhdGlvbiBmdW5jdGlvbnMgaGVyZTogYGRldm1fbWRpb2J1c19yZWdpc3RlcmAsIGBvZl9tZGlvYnVzX3JlZ2lzdGVyYCwgYW5kIHBsYWluIG9sZCBgbWRpb2J1c19yZWdpc3RlcmAuIFRoZSBrZXkgcXVlc3Rpb24gcG9wcGluZyBpbnRvIG15IGhlYWQgaXMgd2hldGhlciBgbWRpb2J1c19yZWdpc3RlcmAgaXMgc29tZXRoaW5nIHRoYXQgY2FuIGJlIGNhbGxlZCBieSBhIFVTQiBkcml2ZXIuIFRoYXQgc2VlbXMgYSBsaXR0bGUgdW51c3VhbCBhdCBmaXJzdCBnbGFuY2UsIGJ1dCB5b3UgbmV2ZXIga25vdy4gSXQmIzM5O3MgdGltZSB0byBkaWcgaW50byB0aGUga2VybmVsJiMzOTtzIFVTQiBuZXR3b3JrIGRyaXZlcnMgdG8gc2VlIGlmIHRoZXJlJiMzOTtzIGFueSBwcmVjZWRlbnQuIExldCYjMzk7cyBzdGFydCBieSBxdWlja2x5IGNoZWNraW5nIHRoZSBgZHJpdmVycy9uZXQvdXNiL2AgZGlyZWN0b3J5IHRvIGdldCBhIGZlZWwgZm9yIGhvdyB0aGV5IGludGVyYWN0IHdpdGggdGhlIE1ESU8gc3Vic3lzdGVtLiBJIHdhbnQgdG8gc2VlIGhvdyB0aGVzZSBkaWZmZXJlbnQgcmVnaXN0cmF0aW9uIG1lY2hhbmlzbXMgYXJlIHVzZWQgaW4gdGhhdCBzcGVjaWZpYyBjb250ZXh0LgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjgvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzI1IDA4OjIwPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O21kaW9idXNfcmVnaXN0ZXImIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtkcml2ZXJzL25ldC91c2IvJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3VzYi9hc2l4X2RldmljZXMuYz02Njk9c3RhdGljIGludCBheDg4NzcyX2luaXRfbWRpbyhzdHJ1Y3QgdXNibmV0ICpkZXYpXG4tLVxuZHJpdmVycy9uZXQvdXNiL2FzaXhfZGV2aWNlcy5jLTY4Ni1cbmRyaXZlcnMvbmV0L3VzYi9hc2l4X2RldmljZXMuYzo2ODc6XHRyZXQgPSBtZGlvYnVzX3JlZ2lzdGVyKHByaXYtXHUwMDNlbWRpbyk7XG5kcml2ZXJzL25ldC91c2IvYXNpeF9kZXZpY2VzLmMtNjg4LVx0aWYgKHJldCkge1xuLS1cbmRyaXZlcnMvbmV0L3VzYi9heDg4MTcyYS5jPTYxPXN0YXRpYyBpbnQgYXg4ODE3MmFfaW5pdF9tZGlvKHN0cnVjdCB1c2JuZXQgKmRldilcbi0tXG5kcml2ZXJzL25ldC91c2IvYXg4ODE3MmEuYy03OS1cbmRyaXZlcnMvbmV0L3VzYi9heDg4MTcyYS5jOjgwOlx0cmV0ID0gbWRpb2J1c19yZWdpc3Rlcihwcml2LVx1MDAzZW1kaW8pO1xuZHJpdmVycy9uZXQvdXNiL2F4ODgxNzJhLmMtODEtXHRpZiAocmV0KSB7XG4tLVxuZHJpdmVycy9uZXQvdXNiL2xhbjc4eHguYz0yMDkxPXN0YXRpYyBpbnQgbGFuNzh4eF9tZGlvX2luaXQoc3RydWN0IGxhbjc4eHhfbmV0ICpkZXYpXG4tLVxuZHJpdmVycy9uZXQvdXNiL2xhbjc4eHguYy0yMTIxLVx0bm9kZSA9IG9mX2dldF9jaGlsZF9ieV9uYW1lKGRldi1cdTAwM2V1ZGV2LVx1MDAzZWRldi5vZl9ub2RlLCBcJiMzNDttZGlvXCYjMzQ7KTtcbmRyaXZlcnMvbmV0L3VzYi9sYW43OHh4LmM6MjEyMjpcdHJldCA9IG9mX21kaW9idXNfcmVnaXN0ZXIoZGV2LVx1MDAzZW1kaW9idXMsIG5vZGUpO1xuZHJpdmVycy9uZXQvdXNiL2xhbjc4eHguYy0yMTIzLVx0b2Zfbm9kZV9wdXQobm9kZSk7XG4tLVxuZHJpdmVycy9uZXQvdXNiL3Ntc2M5NXh4LmM9MTE0Nz1zdGF0aWMgaW50IHNtc2M5NXh4X2JpbmQoc3RydWN0IHVzYm5ldCAqZGV2LCBzdHJ1Y3QgdXNiX2ludGVyZmFjZSAqaW50Zilcbi0tXG5kcml2ZXJzL25ldC91c2Ivc21zYzk1eHguYy0xMjQxLVxuZHJpdmVycy9uZXQvdXNiL3Ntc2M5NXh4LmM6MTI0MjpcdHJldCA9IG1kaW9idXNfcmVnaXN0ZXIocGRhdGEtXHUwMDNlbWRpb2J1cyk7XG5kcml2ZXJzL25ldC91c2Ivc21zYzk1eHguYy0xMjQzLVx0aWYgKHJldCkge1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjkvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzI1IDA4OjIwPC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDMzMjE4CgkJCQkJCQlvdXRwdXQ6IDI0CgkJCQkJCQl0aG91Z2h0czogMTk0CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKlJlYWNoaW5nIERQODM2NDAgUHJvYmUgJmFtcDsgUmVtb3ZlIHZpYSBVU0IgRW11bGF0aW9uKioKCk9rYXksIHNvIHRoZSBwaWVjZXMgYXJlIHN0YXJ0aW5nIHRvIGZpdCB0b2dldGhlciBuaWNlbHkuIEkmIzM5O3ZlIGdvdCBpdDogYHNtc2M5NXh4YCwgYGxhbjc4eHhgLCBgYXg4ODE3MmFgLCBhbmQgYGFzaXhfZGV2aWNlc2Ag4oCTIHRoZXkgYWxsIHJlZ2lzdGVyIGFuIE1ESU8gYnVzLiBUaGF0JiMzOTtzIGtleS4gSWYgSSBjYW4gZW11bGF0ZSBvbmUgb2YgdGhlc2UgVVNCIG5ldHdvcmsgZGV2aWNlcyB1c2luZyBgdmhjaWAsIHRoZW4gdGhlIGNvcnJlc3BvbmRpbmcgZHJpdmVyIHNob3VsZCBwcm9iZSwgcmVnaXN0ZXIgaXRzIG93biBNRElPIGJ1cywgYW5kIHRoZW4gc2NhbiBmb3IgY29ubmVjdGVkIFBIWXMuCgpEdXJpbmcgdGhpcyBzY2FuLCB0aGUgZHJpdmVyIHdpbGwgYmUgcmVhZGluZyBQSFkgcmVnaXN0ZXJzLiBUaGUgZHJpdmVyIGRvZXMgdGhpcyB1c2luZyBVU0IgY29udHJvbCBtZXNzYWdlcywgd2hpY2ggaXMgcGVyZmVjdC4gSWYgbXkgZnV6emVyIGludGVyY2VwdHMgdGhlc2UgbWVzc2FnZXMsIEkgY2FuIGZlZWQgaXQgdGhlIFBIWSBJRCBmb3IgYSBgZHA4MzY0MGAgKGAweDIwMDA1Y2UxYCkuIFdoZW4gdGhlIE1ESU8gYnVzIHNjYW4gaGFwcGVucyBhbmQgdGhlIFBIWSBJRCBtYXRjaGVzLCBpdCBzaG91bGQgY2FsbCBgZHA4MzY0MF9wcm9iZWAuIFRoaXMgaXMgZXhhY3RseSB3aGF0IEkmIzM5O20gbG9va2luZyBmb3IuCgpUaGlzIGFsc28gbWVhbnMgdGhhdCBJIHNob3VsZCBiZSBhYmxlIHRvIHJlYWNoIGBkcDgzNjQwX3Byb2JlYCBhbmQgYGRwODM2NDBfcmVtb3ZlYCBlbnRpcmVseSB3aXRoaW4gYSB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudCB2aWEgVVNCIGRldmljZSBlbXVsYXRpb24uIEl0IGlzIGdvaW5nIHRvIGJlIGluY3JlZGlibHkgdXNlZnVsIGZvciBmdXp6aW5nIQoKSSBzaG91bGQgZG91YmxlLWNoZWNrIHRoZSBleGFjdCBQSFkgSUQgZm9yIHRoZSBgZHA4MzY0MGAganVzdCB0byBiZSBjZXJ0YWluLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEwLzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yNSAwODoyMDwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtEUDgzNjQwX1BIWV9JRCYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtkcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jLTI1LVxuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYzoyNjojZGVmaW5lIERQODM2NDBfUEhZX0lEXHQweDIwMDA1Y2UxXG5kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jLTI3LSNkZWZpbmUgUEFHRVNFTFx0XHQweDEzXG4tLVxuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYz0xNTMxPXN0YXRpYyBzdHJ1Y3QgcGh5X2RyaXZlciBkcDgzNjQwX2RyaXZlcltdID0ge1xuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYy0xNTMyLXtcbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmM6MTUzMzpcdC5waHlfaWRcdFx0PSBEUDgzNjQwX1BIWV9JRCxcbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmMtMTUzNC1cdC5waHlfaWRfbWFza1x0PSAweGZmZmZmZmYwLFxuLS1cbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmM9MTU1Mj1zdGF0aWMgY29uc3Qgc3RydWN0IG1kaW9fZGV2aWNlX2lkIF9fbWF5YmVfdW51c2VkIGRwODM2NDBfdGJsW10gPSB7XG5kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jOjE1NTM6XHR7IERQODM2NDBfUEhZX0lELCAweGZmZmZmZmYwIH0sXG5kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jLTE1NTQtXHR7IH1cbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMS8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjUgMDg6MjA8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMzQwNzUKCQkJCQkJCW91dHB1dDogMjIKCQkJCQkJCXRob3VnaHRzOiA0MDQKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqRnV6emluZyBTdHJhdGVneSBmb3IgdGhlIERQODM2NDAgRHJpdmVyKioKCk9rYXksIHNvIGAweDIwMDA1Y2UxYCBjb25maXJtcyBpdCDigJMgdGhpcyBkcml2ZXIgaXMgZGVmaW5pdGVseSBpbiBzeXprYWxsZXImIzM5O3MgY3Jvc3NoYWlycywgYW5kIHRoZSBVU0IgZnV6emVyIGlzIHRoZSB3YXkgdG8gZ28uIFRoZSBwYXRjaCBpbnRyb2R1Y2luZyBhIGBrcmVmYCBpcyBhIGdvb2Qgc2lnbjsgaXQmIzM5O3MgYSBmdW5jdGlvbmFsIGZpeCwgYWRkcmVzc2luZyBwb3RlbnRpYWwgdXNlLWFmdGVyLWZyZWUgb3IgbWVtb3J5IGxlYWsgaXNzdWVzLCBtYWtpbmcgaXQgcHJpbWUgZnV6emluZyBtYXRlcmlhbC4KCk5vdywgbGV0JiMzOTtzIGlkZW50aWZ5IHRoZSBrZXkga2VybmVsIGZ1bmN0aW9ucyB0byB0YXJnZXQuIFRoZSBwYXRjaCB0b3VjaGVzIGBkcDgzNjQwX2Nsb2NrX2luaXRgLCBgZHA4MzY0MF9jbG9ja19nZXRfYnVzYCwgYGRwODM2NDBfY2xvY2tfcHV0YCwgYGRwODM2NDBfY2xvY2tfcmVsZWFzZWAsIGBkcDgzNjQwX3Byb2JlYCwgYW5kIGBkcDgzNjQwX3JlbW92ZWAuIFdlIHNob3VsZCBkZWZpbml0ZWx5IGluY2x1ZGUgYGRwODM2NDBfcHJvYmVgIGFuZCBgZHA4MzY0MF9yZW1vdmVgIGluIGBGb2N1c1N5bWJvbHNgLiBUaGV5JiMzOTtyZSB0aGUgZW50cnkgcG9pbnRzLCB0aGUgaG9va3MgdGhhdCYjMzk7bGwgZXhwb3NlIHRoZSBkcml2ZXIgdG8gdGhlIGZ1enplci4KCkhtbSwgYGRwODM2NDBfY2xvY2tfZ2V0X2J1c2AgYW5kIGBkcDgzNjQwX2Nsb2NrX3B1dGAgYXJlIHN0YXRpYyBidXQgY2FsbGVkIGZyb20gdGhvc2UgZW50cnkgcG9pbnRzLiBJIHNob3VsZCBkb3VibGUtY2hlY2sgYWJvdXQgaW5saW5pbmcgaGVyZSAtIGVzcGVjaWFsbHkgZm9yIGBkcDgzNjQwX2Nsb2NrX2dldF9idXNgLiBMZXQmIzM5O3MgY29uZmlybSB0aGVyZSBhcmUgbm8gbm9uLXN0YXRpYyBmdW5jdGlvbnMgYW5kIHRoYXQgYGRwODM2NDBfcHJvYmVgIGFuZCBgZHA4MzY0MF9yZW1vdmVgIGFyZSB0aGUgbWFpbiBlbnRyeSBwb2ludHMgZm9yIHRoZSBsb2dpYy4gV2FpdCBhIHNlY29uZCwgdGhlIGBkcDgzNjQwX3Byb2JlYCBhbmQgYGRwODM2NDBfcmVtb3ZlYCBmdW5jdGlvbnMgYXJlIHN0YXRpYyBhcyB3ZWxsISBCdXQgdGhleSBhcmUgcmVmZXJlbmNlZCBpbiB0aGUgYGRwODM2NDBfZHJpdmVyYCBzdHJ1Y3QsIHNvIHRoZXkgc2hvdWxkIG5vdCBiZSBpbmxpbmVkIGFuZCBoYXZlIGRpc3RpbmN0IHN5bWJvbCBhZGRyZXNzZXMuIFRoaXMgbWVhbnMgdGhhdCBzeXprYWxsZXIgKmNhbiogZmluZCB0aGVtLiBBbHJpZ2h0LCB0aGF0IHNpbXBsaWZpZXMgdGhpbmdzIHNvbWV3aGF0LiBMZXQmIzM5O3MgZ2V0IHRoZXNlIGZ1bmN0aW9ucyBhZGRlZCB0byB0aGUgZm9jdXMgbGlzdC4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMi8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjUgMDg6MjA8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7ZHA4MzY0MF9wcm9iZSYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtkcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jPTE0MDQ9c3RhdGljIGludCBkcDgzNjQwX3RzX2luZm8oc3RydWN0IG1paV90aW1lc3RhbXBlciAqbWlpX3RzLFxuLS1cbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmMtMTQyNy1cbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmM6MTQyODpzdGF0aWMgaW50IGRwODM2NDBfcHJvYmUoc3RydWN0IHBoeV9kZXZpY2UgKnBoeWRldilcbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmMtMTQyOS17XG4tLVxuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYz0xNTMxPXN0YXRpYyBzdHJ1Y3QgcGh5X2RyaXZlciBkcDgzNjQwX2RyaXZlcltdID0ge1xuLS1cbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmMtMTUzNi1cdC8qIFBIWV9CQVNJQ19GRUFUVVJFUyAqL1xuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYzoxNTM3Olx0LnByb2JlXHRcdD0gZHA4MzY0MF9wcm9iZSxcbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmMtMTUzOC1cdC5yZW1vdmVcdFx0PSBkcDgzNjQwX3JlbW92ZSxcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMy8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjUgMDg6MjA8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMzUyMjMKCQkJCQkJCW91dHB1dDogMjMKCQkJCQkJCXRob3VnaHRzOiA5MAoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+T2theSwgbGV0JiMzOTtzIGJyZWFrIHRoaXMgZG93bi4KCioqQW5hbHl6aW5nIENhbmRpZGF0ZSBTeW1ib2xzIGZvciBGb2N1c2VkIEV4YW1pbmF0aW9uKioKClJpZ2h0LCBzbyB0aGVzZSBzeW1ib2xzLCBldmVuIHRob3VnaCB0aGV5JiMzOTtyZSBzZWVtaW5nbHkgc3RhdGljLCBhcmUgZnVuY3Rpb25pbmcgYXMgY2FsbGJhY2tzLiBUaGF0JiMzOTtzIGEgZ29vZCBzdGFydGluZyBwb2ludC4gSSB0aGluayBgZHA4MzY0MF9wcm9iZWAgYW5kIGBkcDgzNjQwX3JlbW92ZWAgbG9vayBsaWtlIHNvbGlkIGNhbmRpZGF0ZXMgZm9yIGNsb3NlciBzY3J1dGlueSwgc3BlY2lmaWNhbGx5IGZvciBpbmNsdXNpb24gd2l0aGluIG15IGBGb2N1c1N5bWJvbHNgIGxpc3QuIEkgbmVlZCB0byB1bmRlcnN0YW5kIHRoZWlyIGJlaGF2aW9yIGluIHRoZSBicm9hZGVyIHBpY3R1cmUuCgpOb3csIEkmIzM5O2xsIG5lZWQgdG8gZmlndXJlIG91dCB0aGUgcmVsZXZhbnQgY29uZmlndXJhdGlvbiBvcHRpb25zIHRoYXQgZGljdGF0ZSB0aGVpciBpbmNsdXNpb24gYW5kIGJlaGF2aW9yLiBUaGUgcHJpbWFyeSBjb25maWd1cmF0aW9uIGl0ZW0gYXBwZWFycyB0byBiZSBgQ09ORklHX0RQODM2NDBfUEhZYCwgd2hpY2ggbWFrZXMgc2Vuc2UuIEkmIzM5O2xsIG5lZWQgdG8gZG91YmxlIGNoZWNrIHRoZSBkZXBlbmRlbmNpZXMgYnkgZXhhbWluaW5nIHRoZSBgZHJpdmVycy9uZXQvcGh5L0tjb25maWdgIGZpbGUuIFRoYXQgc2hvdWxkIGdpdmUgbWUgYSBtb3JlIGNvbXBsZXRlIHBpY3R1cmUgb2YgdGhlIGNvbmZpZ3VyYXRpb24gc3BhY2Ugc3Vycm91bmRpbmcgdGhlc2Ugc3ltYm9scy4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xNC8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjUgMDg6MjA8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7Y29uZmlnIERQODM2NDBfUEhZJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2RyaXZlcnMvcHRwL0tjb25maWc9NzI9Y29tbWVudCBcJiMzNDtFbmFibGUgUEhZTElCIGFuZCBORVRXT1JLX1BIWV9USU1FU1RBTVBJTkcgdG8gc2VlIHRoZSBhZGRpdGlvbmFsIGNsb2Nrcy5cJiMzNDtcbi0tXG5kcml2ZXJzL3B0cC9LY29uZmlnLTc0LVxuZHJpdmVycy9wdHAvS2NvbmZpZzo3NTpjb25maWcgRFA4MzY0MF9QSFlcbmRyaXZlcnMvcHRwL0tjb25maWctNzYtXHR0cmlzdGF0ZSBcJiMzNDtEcml2ZXIgZm9yIHRoZSBOYXRpb25hbCBTZW1pY29uZHVjdG9yIERQODM2NDAgUEhZVEVSXCYjMzQ7XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTUvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzI1IDA4OjIwPC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDM1NjI4CgkJCQkJCQlvdXRwdXQ6IDM0CgkJCQkJCQl0aG91Z2h0czogNDQKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPkhlcmUmIzM5O3MgbXkgdGFrZSBvbiB0aG9zZSB0aG91Z2h0czoKCioqTmF2aWdhdGluZyB0aGUgS2VybmVsJiMzOTtzIFBUUCBEcml2ZXJzKioKCk9rYXksIHNvIEkmIzM5O20gbG9va2luZyBhdCB0aGUgYERQODM2NDBfUEhZYCDigJMgdGhhdCYjMzk7cyBhIFBIWSBmb3IgUFRQLCByaWdodD8gSW50ZXJlc3RpbmcuIFdoeSBpcyB0aGF0IHNwZWNpZmljIGRyaXZlciBjb25maWd1cmF0aW9uIGJ1cmllZCBpbiBgZHJpdmVycy9wdHAvS2NvbmZpZ2A/IEl0IHNlZW1zIGEgYml0IHVudXN1YWwsIGJ1dCBJIGd1ZXNzIGl0IG1ha2VzIHNlbnNlIGluIHRoZSBicm9hZGVyIGNvbnRleHQgb2YgUFRQIGhhcmR3YXJlIHN1cHBvcnQuIFRvIGdldCBhIGJldHRlciB1bmRlcnN0YW5kaW5nIG9mIHRoZSBsYXlvdXQsIGxldCBtZSBqdW1wIG92ZXIgdG8gdGhhdCBgS2NvbmZpZ2AgZmlsZSBpbiB0aGUgYGRyaXZlcnMvcHRwYCBkaXJlY3RvcnkuIEkmIzM5O2xsIHRha2UgYSBsb29rIGFyb3VuZCBsaW5lIDc1OyB0aGF0JiMzOTtzIHVzdWFsbHkgYSBnb29kIHNwb3QgdG8gc3RhcnQgd2hlbiBJJiMzOTttIHRyeWluZyB0byBmaWd1cmUgb3V0IHRoZSBkZXBlbmRlbmNpZXMgYW5kIHJlbGF0aW9uc2hpcHMgd2l0aGluIHRoZXNlIGNvbmZpZ3VyYXRpb24gZmlsZXMuIEl0IHdpbGwgZ2l2ZSBtZSBhIGJldHRlciB1bmRlcnN0YW5kaW5nIG9mIHdoZXJlIHRoaXMgcGFydGljdWxhciBkcml2ZXIgZml0cyBpbnRvIHRoZSBsYXJnZXIgYXJjaGl0ZWN0dXJlIGFuZCB3aGF0IG90aGVyIG9wdGlvbnMgbWlnaHQgYmUgaW52b2x2ZWQuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTYvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzI1IDA4OjIwPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+cmVhZC1maWxlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtGaWxlJiMzNDs6ICYjMzQ7ZHJpdmVycy9wdHAvS2NvbmZpZyYjMzQ7LAogICYjMzQ7Rmlyc3RMaW5lJiMzNDs6IDYwLAogICYjMzQ7TGluZUNvdW50JiMzNDs6IDMwCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtDb250ZW50cyYjMzQ7OiAmIzM0OyAgNjA6XHRcdGRlcGVuZHMgb24gR0lBTkZBUiB8fCBGU0xfRFBBQV9FVEggfHwgRlNMX0RQQUEyX0VUSCB8fCBGU0xfRU5FVEMgfHwgRlNMX0VORVRDX1ZGIHx8IENPTVBJTEVfVEVTVFxuICA2MTpcdFx0ZGVwZW5kcyBvbiBQVFBfMTU4OF9DTE9DS1xuICA2MjpcdFx0ZGVmYXVsdCB5IGlmIEdJQU5GQVIgfHwgRlNMX0RQQUFfRVRIIHx8IEZTTF9EUEFBMl9FVEggfHwgRlNMX0VORVRDIHx8IEZTTF9FTkVUQ19WRlxuICA2MzpcdFx0aGVscFxuICA2NDpcdFx0ICBUaGlzIGRyaXZlciBhZGRzIHN1cHBvcnQgZm9yIHVzaW5nIHRoZSBGcmVlc2NhbGUgUW9ySVEgMTU4OFxuICA2NTpcdFx0ICB0aW1lciBhcyBhIFBUUCBjbG9jay4gVGhpcyBjbG9jayBpcyBvbmx5IHVzZWZ1bCBpZiB5b3VyIFBUUFxuICA2NjpcdFx0ICBwcm9ncmFtcyBhcmUgZ2V0dGluZyBoYXJkd2FyZSB0aW1lIHN0YW1wcyBvbiB0aGUgUFRQIEV0aGVybmV0XG4gIDY3Olx0XHQgIHBhY2tldHMgdXNpbmcgdGhlIFNPX1RJTUVTVEFNUElORyBBUEkuXG4gIDY4Olx0XG4gIDY5Olx0XHQgIFRvIGNvbXBpbGUgdGhpcyBkcml2ZXIgYXMgYSBtb2R1bGUsIGNob29zZSBNIGhlcmU6IHRoZSBtb2R1bGVcbiAgNzA6XHRcdCAgd2lsbCBiZSBjYWxsZWQgcHRwX3FvcmlxLlxuICA3MTpcdFxuICA3MjpcdGNvbW1lbnQgXCYjMzQ7RW5hYmxlIFBIWUxJQiBhbmQgTkVUV09SS19QSFlfVElNRVNUQU1QSU5HIHRvIHNlZSB0aGUgYWRkaXRpb25hbCBjbG9ja3MuXCYjMzQ7XG4gIDczOlx0XHRkZXBlbmRzIG9uIFBIWUxJQj1uIHx8IE5FVFdPUktfUEhZX1RJTUVTVEFNUElORz1uXG4gIDc0Olx0XG4gIDc1Olx0Y29uZmlnIERQODM2NDBfUEhZXG4gIDc2Olx0XHR0cmlzdGF0ZSBcJiMzNDtEcml2ZXIgZm9yIHRoZSBOYXRpb25hbCBTZW1pY29uZHVjdG9yIERQODM2NDAgUEhZVEVSXCYjMzQ7XG4gIDc3Olx0XHRkZXBlbmRzIG9uIE5FVFdPUktfUEhZX1RJTUVTVEFNUElOR1xuICA3ODpcdFx0ZGVwZW5kcyBvbiBQSFlMSUJcbiAgNzk6XHRcdGRlcGVuZHMgb24gUFRQXzE1ODhfQ0xPQ0tcbiAgODA6XHRcdHNlbGVjdCBDUkMzMlxuICA4MTpcdFx0aGVscFxuICA4MjpcdFx0ICBTdXBwb3J0cyB0aGUgRFA4MzY0MCBQSFlURVIgd2l0aCBJRUVFIDE1ODggZmVhdHVyZXMuXG4gIDgzOlx0XG4gIDg0Olx0XHQgIFRoaXMgZHJpdmVyIGFkZHMgc3VwcG9ydCBmb3IgdXNpbmcgdGhlIERQODM2NDAgYXMgYSBQVFBcbiAgODU6XHRcdCAgY2xvY2suIFRoaXMgY2xvY2sgaXMgb25seSB1c2VmdWwgaWYgeW91ciBQVFAgcHJvZ3JhbXMgYXJlXG4gIDg2Olx0XHQgIGdldHRpbmcgaGFyZHdhcmUgdGltZSBzdGFtcHMgb24gdGhlIFBUUCBFdGhlcm5ldCBwYWNrZXRzXG4gIDg3Olx0XHQgIHVzaW5nIHRoZSBTT19USU1FU1RBTVBJTkcgQVBJLlxuICA4ODpcdFxuICA4OTpcdFx0ICBJbiBvcmRlciBmb3IgdGhpcyB0byB3b3JrLCB5b3VyIE1BQyBkcml2ZXIgbXVzdCBhbHNvXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTcvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzI1IDA4OjIwPC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDM2NDM4CgkJCQkJCQlvdXRwdXQ6IDIxCgkJCQkJCQl0aG91Z2h0czogNjIKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPk9rYXksIGxldCYjMzk7cyBicmVhayB0aGlzIGRvd24uCgoqKkRlcGVuZGVuY2llcyBhbmQgVmVyaWZpY2F0aW9uKioKClJpZ2h0LCBzbyBJJiMzOTttIGxvb2tpbmcgYXQgYERQODM2NDBfUEhZYCBhbmQgaXQmIzM5O3MgZmxhZ2dlZCBhcyBkZXBlbmRpbmcgb24gYE5FVFdPUktfUEhZX1RJTUVTVEFNUElOR2AsIGBQSFlMSUJgLCBhbmQgYFBUUF8xNTg4X0NMT0NLYC4gTWFrZXMgc2Vuc2UsIHRoZSBEUDgzNjQwIGlzIGEgcG9wdWxhciBQSFkgZm9yIHRpbWVzdGFtcGluZy4gSSBuZWVkIHRvIG1ha2Ugc3VyZSB0aG9zZSBkZXBlbmRlbmNpZXMgYXJlIHByb3Blcmx5IGhhbmRsZWQuIFRoZSBjcnVjaWFsIG9uZXMgdG8gZG91YmxlLWNoZWNrLCB0aG91Z2gsIGFyZSBgTkVUV09SS19QSFlfVElNRVNUQU1QSU5HYCBhbmQgYFBUUF8xNTg4X0NMT0NLYCDigJMgYFBIWUxJQmAgaXMgcHJldHR5IHN0YW5kYXJkIGZvciBQSFkgZGV2aWNlIGRyaXZlcnMuIExldCYjMzk7cyBtYWtlIHN1cmUgdGhvc2UgdHdvIGFyZSBjb25maWd1cmVkIGNvcnJlY3RseSBhbmQgdGhhdCB0aGVyZSYjMzk7cyBubyBjb25mbGljdC4gSSYjMzk7bGwgbmVlZCB0byBkaWcgaW50byB0aGUgc2V0dGluZ3MgZm9yIHRob3NlIGZlYXR1cmVzLiBUaGlzIGlzIHdoZXJlIEkmIzM5O2xsIGJlIGxvb2tpbmcgZm9yIGNvbmZpZ3VyYXRpb24gb3B0aW9ucyBvciBhbnkgcG9zc2libGUgY29uZmxpY3RzLiBUaW1lIHRvIGNoZWNrIHRob3NlIGNvbmZpZ3VyYXRpb25zIGFuZCBtYWtlIHN1cmUgZXZlcnl0aGluZyBpcyBpbiBvcmRlci4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xOC8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjUgMDg6MjA8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7Y29uZmlnIE5FVFdPUktfUEhZX1RJTUVTVEFNUElORyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtuZXQvS2NvbmZpZz0xNTE9Y29uZmlnIE5FVF9QVFBfQ0xBU1NJRllcbi0tXG5uZXQvS2NvbmZpZy0xNTMtXG5uZXQvS2NvbmZpZzoxNTQ6Y29uZmlnIE5FVFdPUktfUEhZX1RJTUVTVEFNUElOR1xubmV0L0tjb25maWctMTU1LVx0Ym9vbCBcJiMzNDtUaW1lc3RhbXBpbmcgaW4gUEhZIGRldmljZXNcJiMzNDtcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xOS8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjUgMDg6MjA8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMzY3OTkKCQkJCQkJCW91dHB1dDogMzIKCQkJCQkJCXRob3VnaHRzOiAxNwoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+SGVyZSYjMzk7cyBhIHN1bW1hcnkgb2YgbXkgdGhvdWdodCBwcm9jZXNzLCBhcyByZXF1ZXN0ZWQ6CgoqKk5hdmlnYXRpbmcgdGhlIEtlcm5lbCBDb25maWd1cmF0aW9uIExhbmRzY2FwZSoqCgpPa2F5LCBzbyBJJiMzOTttIGRpZ2dpbmcgaW50byB0aGlzIGBuZXQvS2NvbmZpZ2AgZmlsZSBhZ2Fpbi4gSSBuZWVkIHRvIHJlZnJlc2ggbXkgbWVtb3J5IG9uIGEgc3BlY2lmaWMgY29uZmlndXJhdGlvbiBkZXRhaWwsIGFuZCBJIHNlZW0gdG8gcmVjYWxsIGl0JiMzOTtzIHNvbWV3aGVyZSBhcm91bmQgbGluZSAxNTQuIExldCBtZSBqdW1wIHJpZ2h0IHRoZXJlIGFuZCBzZWUgd2hhdCYjMzk7cyB3aGF0LiBJJiMzOTttIGdvaW5nIHRvIHF1aWNrbHkgcGFyc2UgdGhlIHJlbGV2YW50IGNvbnRleHQgYXJvdW5kIHRoYXQgbGluZSDigJMga2V5d29yZHMsIGRlcGVuZGVuY2llcywgYW5kIGFueSBhY2NvbXBhbnlpbmcgY29tbWVudHMg4oCTIHRvIHplcm8gaW4gb24gdGhlIHByZWNpc2UgY29uZmlndXJhdGlvbiBvcHRpb24gSSYjMzk7bSBpbnRlcmVzdGVkIGluIGFuZCBpdHMgcmVsYXRpb25zaGlwIHRvIHRoZSBzdXJyb3VuZGluZyBuZXR3b3JrIHN0YWNrLiBJJiMzOTttIGhvcGluZyBJIGNhbiBmaW5kIHRoZSBpbmZvcm1hdGlvbiBxdWlja2x5LCBhbmQgSSBhbSBmYWlybHkgY2VydGFpbiBJIGNhbi4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4yMC8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjUgMDg6MjA8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5yZWFkLWZpbGU8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0ZpbGUmIzM0OzogJiMzNDtuZXQvS2NvbmZpZyYjMzQ7LAogICYjMzQ7Rmlyc3RMaW5lJiMzNDs6IDE0NSwKICAmIzM0O0xpbmVDb3VudCYjMzQ7OiAyMAp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7Q29udGVudHMmIzM0OzogJiMzNDsgMTQ1Olx0XHRib29sIFwmIzM0O1NlY3VyaXR5IE1hcmtpbmdcJiMzNDtcbiAxNDY6XHRcdGhlbHBcbiAxNDc6XHRcdCAgVGhpcyBlbmFibGVzIHNlY3VyaXR5IG1hcmtpbmcgb2YgbmV0d29yayBwYWNrZXRzLCBzaW1pbGFyXG4gMTQ4Olx0XHQgIHRvIG5mbWFyaywgYnV0IGRlc2lnbmF0ZWQgZm9yIHNlY3VyaXR5IHB1cnBvc2VzLlxuIDE0OTpcdFx0ICBJZiB5b3UgYXJlIHVuc3VyZSBob3cgdG8gYW5zd2VyIHRoaXMgcXVlc3Rpb24sIGFuc3dlciBOLlxuIDE1MDpcdFxuIDE1MTpcdGNvbmZpZyBORVRfUFRQX0NMQVNTSUZZXG4gMTUyOlx0XHRkZWZfYm9vbCBuXG4gMTUzOlx0XG4gMTU0Olx0Y29uZmlnIE5FVFdPUktfUEhZX1RJTUVTVEFNUElOR1xuIDE1NTpcdFx0Ym9vbCBcJiMzNDtUaW1lc3RhbXBpbmcgaW4gUEhZIGRldmljZXNcJiMzNDtcbiAxNTY6XHRcdHNlbGVjdCBORVRfUFRQX0NMQVNTSUZZXG4gMTU3Olx0XHRoZWxwXG4gMTU4Olx0XHQgIFRoaXMgYWxsb3dzIHRpbWVzdGFtcGluZyBvZiBuZXR3b3JrIHBhY2tldHMgYnkgUEhZcyAob3JcbiAxNTk6XHRcdCAgb3RoZXIgTUlJIGJ1cyBzbm9vcGluZyBkZXZpY2VzKSB3aXRoIGhhcmR3YXJlIHRpbWVzdGFtcGluZ1xuIDE2MDpcdFx0ICBjYXBhYmlsaXRpZXMuIFRoaXMgb3B0aW9uIGFkZHMgc29tZSBvdmVyaGVhZCBpbiB0aGUgdHJhbnNtaXRcbiAxNjE6XHRcdCAgYW5kIHJlY2VpdmUgcGF0aHMuXG4gMTYyOlx0XG4gMTYzOlx0XHQgIElmIHlvdSBhcmUgdW5zdXJlIGhvdyB0byBhbnN3ZXIgdGhpcyBxdWVzdGlvbiwgYW5zd2VyIE4uXG4gMTY0Olx0XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MjEvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzI1IDA4OjIwPC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDM3MjgwCgkJCQkJCQlvdXRwdXQ6IDI0CgkJCQkJCQl0aG91Z2h0czogMTMKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPk9rYXksIGhlcmUmIzM5O3MgbXkgc3VtbWFyeSwgcHJlc2VudGVkIGFzIGEgc3RyZWFtIG9mIHRob3VnaHQ6CgoqKkNsb2NrLCBDbG9jaywgRXZlcnl3aGVyZS4uLkJ1dCBXaGF0IEFib3V0IFRoYXQgMTU4OCBUaGluZz8qKgoKQWxyaWdodCwgbGV0JiMzOTtzIHNlZS4gV2UmIzM5O3JlIGxvb2tpbmcgYXQgdGhpcyBhcmNoaXRlY3R1cmUsIHRoaXMgc3lzdGVt4oCmYW5kIEkmIzM5O20gdGhpbmtpbmcgYWJvdXQgdGltaW5nLCBhcyBhbHdheXMuIFdlJiMzOTt2ZSBnb3QgYWxsIHRoZXNlIGNsb2NrcywgYWxsIHRoZXNlIGRpZmZlcmVudCB3YXlzIG9mIGtlZXBpbmcgdHJhY2sgb2YgdGltZS4gQnV0IEkga2VlcCBjb21pbmcgYmFjayB0byB0aGlzIGxpdHRsZSBkZXRhaWwsIG5hZ2dpbmcgYXQgdGhlIGJhY2sgb2YgbXkgbWluZC4gV2hhdCBhYm91dCBgUFRQXzE1ODhfQ0xPQ0tgPyBXaGF0JiMzOTtzIHRoZSBjb250ZXh0IGhlcmU/IElzIGl0IGJlaW5nIHVzZWQ/IEhvdyBpcyBpdCBpbnRlZ3JhdGVkPyBJcyBpdCBhIGNyaXRpY2FsIHRpbWluZyBzb3VyY2UsIG9yIGEgYmFja3VwPyBBcmUgdGhlcmUgYW55IHBvdGVudGlhbCBpc3N1ZXMgd2l0aCBpdHMgc3luY2hyb25pemF0aW9uIGluIHRoaXMgcGFydGljdWxhciBzZXR1cD8gSSBuZWVkIHRvIGRyaWxsIGRvd24gb24gdGhhdC4gVGhhdCYjMzk7cyBhIGtleSBlbGVtZW50LCBhbmQgSSBkb24mIzM5O3Qgd2FudCB0byBnbG9zcyBvdmVyIGl0LiBUaGlzIGBQVFBfMTU4OF9DTE9DS2DigKZpdCYjMzk7cyBwb3RlbnRpYWxseSB0aGUgbGluY2hwaW4gb3IgYSB3ZWFrIHBvaW50LiBOZWVkIHRvIHVuZGVyc3RhbmQgaXRzIHJvbGUuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MjIvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzI1IDA4OjIwPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O2NvbmZpZyBQVFBfMTU4OF9DTE9DSyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtkcml2ZXJzL25ldC9ldGhlcm5ldC94c2NhbGUvS2NvbmZpZz0yMT1jb25maWcgSVhQNFhYX0VUSFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3hzY2FsZS9LY29uZmlnLTMwLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQveHNjYWxlL0tjb25maWc6MzE6Y29uZmlnIFBUUF8xNTg4X0NMT0NLX0lYUDQ2WFxuZHJpdmVycy9uZXQvZXRoZXJuZXQveHNjYWxlL0tjb25maWctMzItXHRib29sIFwmIzM0O0ludGVsIElYUDQ2eCBhcyBQVFAgY2xvY2tcJiMzNDtcbi0tXG5kcml2ZXJzL3B0cC9LY29uZmlnPTY9bWVudSBcJiMzNDtQVFAgY2xvY2sgc3VwcG9ydFwmIzM0O1xuZHJpdmVycy9wdHAvS2NvbmZpZy03LVxuZHJpdmVycy9wdHAvS2NvbmZpZzo4OmNvbmZpZyBQVFBfMTU4OF9DTE9DS1xuZHJpdmVycy9wdHAvS2NvbmZpZy05LVx0dHJpc3RhdGUgXCYjMzQ7UFRQIGNsb2NrIHN1cHBvcnRcJiMzNDtcbi0tXG5kcml2ZXJzL3B0cC9LY29uZmlnLTI5LVxuZHJpdmVycy9wdHAvS2NvbmZpZzozMDpjb25maWcgUFRQXzE1ODhfQ0xPQ0tfT1BUSU9OQUxcbmRyaXZlcnMvcHRwL0tjb25maWctMzEtXHR0cmlzdGF0ZVxuLS1cbmRyaXZlcnMvcHRwL0tjb25maWctNDEtXG5kcml2ZXJzL3B0cC9LY29uZmlnOjQyOmNvbmZpZyBQVFBfMTU4OF9DTE9DS19EVEVcbmRyaXZlcnMvcHRwL0tjb25maWctNDMtXHR0cmlzdGF0ZSBcJiMzNDtCcm9hZGNvbSBEVEUgYXMgUFRQIGNsb2NrXCYjMzQ7XG4tLVxuZHJpdmVycy9wdHAvS2NvbmZpZy01Ny1cbmRyaXZlcnMvcHRwL0tjb25maWc6NTg6Y29uZmlnIFBUUF8xNTg4X0NMT0NLX1FPUklRXG5kcml2ZXJzL3B0cC9LY29uZmlnLTU5LVx0dHJpc3RhdGUgXCYjMzQ7RnJlZXNjYWxlIFFvcklRIDE1ODggdGltZXIgYXMgUFRQIGNsb2NrXCYjMzQ7XG4tLVxuZHJpdmVycy9wdHAvS2NvbmZpZz03NT1jb25maWcgRFA4MzY0MF9QSFlcbi0tXG5kcml2ZXJzL3B0cC9LY29uZmlnLTkxLVxuZHJpdmVycy9wdHAvS2NvbmZpZzo5Mjpjb25maWcgUFRQXzE1ODhfQ0xPQ0tfSU5FU1xuZHJpdmVycy9wdHAvS2NvbmZpZy05My1cdHRyaXN0YXRlIFwmIzM0O1pIQVcgSW5FUyBQVFAgdGltZSBzdGFtcGluZyBJUCBjb3JlXCYjMzQ7XG4tLVxuZHJpdmVycy9wdHAvS2NvbmZpZy0xMDItXG5kcml2ZXJzL3B0cC9LY29uZmlnOjEwMzpjb25maWcgUFRQXzE1ODhfQ0xPQ0tfUENIXG5kcml2ZXJzL3B0cC9LY29uZmlnLTEwNC1cdHRyaXN0YXRlIFwmIzM0O0ludGVsIFBDSCBFRzIwVCBhcyBQVFAgY2xvY2tcJiMzNDtcbi0tXG5kcml2ZXJzL3B0cC9LY29uZmlnLTEyMS1cbmRyaXZlcnMvcHRwL0tjb25maWc6MTIyOmNvbmZpZyBQVFBfMTU4OF9DTE9DS19LVk1cbmRyaXZlcnMvcHRwL0tjb25maWctMTIzLVx0dHJpc3RhdGUgXCYjMzQ7S1ZNIHZpcnR1YWwgUFRQIGNsb2NrXCYjMzQ7XG4tLVxuZHJpdmVycy9wdHAvS2NvbmZpZy0xMzMtXG5kcml2ZXJzL3B0cC9LY29uZmlnOjEzNDpjb25maWcgUFRQXzE1ODhfQ0xPQ0tfVk1DTE9DS1xuZHJpdmVycy9wdHAvS2NvbmZpZy0xMzUtXHR0cmlzdGF0ZSBcJiMzNDtWaXJ0dWFsIG1hY2hpbmUgUFRQIGNsb2NrXCYjMzQ7XG4tLVxuZHJpdmVycy9wdHAvS2NvbmZpZy0xNTAtXG5kcml2ZXJzL3B0cC9LY29uZmlnOjE1MTpjb25maWcgUFRQXzE1ODhfQ0xPQ0tfSURUODJQMzNcbmRyaXZlcnMvcHRwL0tjb25maWctMTUyLVx0dHJpc3RhdGUgXCYjMzQ7SURUIDgyUDMzeHh4IFBUUCBjbG9ja1wmIzM0O1xuLS1cbmRyaXZlcnMvcHRwL0tjb25maWctMTYyLVxuZHJpdmVycy9wdHAvS2NvbmZpZzoxNjM6Y29uZmlnIFBUUF8xNTg4X0NMT0NLX0lEVENNXG5kcml2ZXJzL3B0cC9LY29uZmlnLTE2NC1cdHRyaXN0YXRlIFwmIzM0O0lEVCBDTE9DS01BVFJJWCBhcyBQVFAgY2xvY2tcJiMzNDtcbi0tXG5kcml2ZXJzL3B0cC9LY29uZmlnLTE3NC1cbmRyaXZlcnMvcHRwL0tjb25maWc6MTc1OmNvbmZpZyBQVFBfMTU4OF9DTE9DS19GQzNXXG5kcml2ZXJzL3B0cC9LY29uZmlnLTE3Ni1cdHRyaXN0YXRlIFwmIzM0O1JFTkVTQVMgRmVtdG9DbG9jazMgV2lyZWxlc3MgYXMgUFRQIGNsb2NrXCYjMzQ7XG4tLVxuZHJpdmVycy9wdHAvS2NvbmZpZy0xODYtXG5kcml2ZXJzL3B0cC9LY29uZmlnOjE4Nzpjb25maWcgUFRQXzE1ODhfQ0xPQ0tfTU9DS1xuZHJpdmVycy9wdHAvS2NvbmZpZy0xODgtXHR0cmlzdGF0ZSBcJiMzNDtNb2NrLXVwIFBUUCBjbG9ja1wmIzM0O1xuLS1cbmRyaXZlcnMvcHRwL0tjb25maWctMTk3LVxuZHJpdmVycy9wdHAvS2NvbmZpZzoxOTg6Y29uZmlnIFBUUF8xNTg4X0NMT0NLX1ZNV1xuZHJpdmVycy9wdHAvS2NvbmZpZy0xOTktXHR0cmlzdGF0ZSBcJiMzNDtWTXdhcmUgdmlydHVhbCBQVFAgY2xvY2tcJiMzNDtcbi0tXG5kcml2ZXJzL3B0cC9LY29uZmlnLTIwOS1cbmRyaXZlcnMvcHRwL0tjb25maWc6MjEwOmNvbmZpZyBQVFBfMTU4OF9DTE9DS19PQ1BcbmRyaXZlcnMvcHRwL0tjb25maWctMjExLVx0dHJpc3RhdGUgXCYjMzQ7T3BlbkNvbXB1dGUgVGltZUNhcmQgYXMgUFRQIGNsb2NrXCYjMzQ7XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MjMvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzI1IDA4OjIwPC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDM4NjMwCgkJCQkJCQlvdXRwdXQ6IDMzCgkJCQkJCQl0aG91Z2h0czogMTgKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPkhlcmUmIzM5O3MgbXkgdGFrZSBvbiB0aGUgYGRyaXZlcnMvcHRwL0tjb25maWdgIGZpbGUsIHNwZWNpZmljYWxseSBhcm91bmQgbGluZSA4LgoKKipFeGFtaW5pbmcgdGhlIFBUUCBEcml2ZXIgQ29uZmlndXJhdGlvbiBPcHRpb25zKioKCkFscmlnaHQsIGxldCYjMzk7cyBkaXZlIGludG8gdGhpcyBgZHJpdmVycy9wdHAvS2NvbmZpZ2AgZmlsZS4gSSBuZWVkIHRvIGdldCBhIGhhbmRsZSBvbiB0aGUgYXZhaWxhYmxlIGNvbmZpZ3VyYXRpb24gb3B0aW9ucyBmb3IgdGhlIFByZWNpc2lvbiBUaW1lIFByb3RvY29sIChQVFApIGRyaXZlcnMgaW4gdGhlIGtlcm5lbC4gSSYjMzk7bSBmb2N1c2luZyBvbiBhcm91bmQgbGluZSA4IGJlY2F1c2UgdGhhdCYjMzk7cyB1c3VhbGx5IHdoZXJlIHRoZSBtYWluIG1vZHVsZSBkZWNsYXJhdGlvbnMgb3IgYSByZWxldmFudCB0b3AtbGV2ZWwgcHJvbXB0IHRlbmRzIHRvIHJlc2lkZSwgb3IgYXQgbGVhc3QgdGhlIHN0YXJ0IG9mIGEgbG9naWNhbCBncm91cGluZyBvZiBvcHRpb25zLiBJIGV4cGVjdCB0byBzZWUgdGhlIGJhc2ljIHN0cnVjdHVyZSBvZiBob3cgdGhlc2UgZHJpdmVycyBhcmUgb3JnYW5pemVkLCBwZXJoYXBzIHdpdGggYSB0b3AtbGV2ZWwgYENPTkZJR19QVFBgIG9yIHNpbWlsYXIgc3ltYm9sIGRlZmluaW5nIHRoZSBwYXJlbnQgZnJhbWV3b3JrLCBhbmQgdGhlbiB0aGUgdmFyaW91cyBzcGVjaWZpYyBkcml2ZXIgb3B0aW9ucyBicmFuY2hpbmcgZnJvbSB0aGVyZS4gSSYjMzk7bSBsb29raW5nIGZvciB0aGUgZGVwZW5kZW5jaWVzLCBkZWZhdWx0cywgYW5kIGRlc2NyaXB0aW9ucy4gVGhpcyBpbml0aWFsIHNjYW4gd2lsbCBoZWxwIG1lIHVuZGVyc3RhbmQgdGhlIG92ZXJhbGwgZGVzaWduIGFuZCBzZWUgd2hhdCYjMzk7cyBhdmFpbGFibGUgYW5kIGlmIGl0IG1hdGNoZXMgd2l0aCB0aGUgY3VycmVudCBwcm9qZWN0IHJlcXVpcmVtZW50cy4gSSYjMzk7bSByZWFkeSB0byBkaWcgaW4gYW5kIGRlY2lwaGVyIHdoYXQgSSBmaW5kIQoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjI0LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yNSAwODoyMDwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPnJlYWQtZmlsZTwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RmlsZSYjMzQ7OiAmIzM0O2RyaXZlcnMvcHRwL0tjb25maWcmIzM0OywKICAmIzM0O0ZpcnN0TGluZSYjMzQ7OiAxLAogICYjMzQ7TGluZUNvdW50JiMzNDs6IDIwCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtDb250ZW50cyYjMzQ7OiAmIzM0OyAgIDE6XHQjIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wLW9ubHlcbiAgIDI6XHQjXG4gICAzOlx0IyBQVFAgY2xvY2sgc3VwcG9ydCBjb25maWd1cmF0aW9uXG4gICA0Olx0I1xuICAgNTpcdFxuICAgNjpcdG1lbnUgXCYjMzQ7UFRQIGNsb2NrIHN1cHBvcnRcJiMzNDtcbiAgIDc6XHRcbiAgIDg6XHRjb25maWcgUFRQXzE1ODhfQ0xPQ0tcbiAgIDk6XHRcdHRyaXN0YXRlIFwmIzM0O1BUUCBjbG9jayBzdXBwb3J0XCYjMzQ7XG4gIDEwOlx0XHRkZXBlbmRzIG9uIE5FVCBcdTAwMjZcdTAwMjYgUE9TSVhfVElNRVJTXG4gIDExOlx0XHRkZWZhdWx0IEVUSEVSTkVUXG4gIDEyOlx0XHRzZWxlY3QgUFBTXG4gIDEzOlx0XHRzZWxlY3QgTkVUX1BUUF9DTEFTU0lGWVxuICAxNDpcdFx0aGVscFxuICAxNTpcdFx0ICBUaGUgSUVFRSAxNTg4IHN0YW5kYXJkIGRlZmluZXMgYSBtZXRob2QgdG8gcHJlY2lzZWx5XG4gIDE2Olx0XHQgIHN5bmNocm9uaXplIGRpc3RyaWJ1dGVkIGNsb2NrcyBvdmVyIEV0aGVybmV0IG5ldHdvcmtzLiBUaGVcbiAgMTc6XHRcdCAgc3RhbmRhcmQgZGVmaW5lcyBhIFByZWNpc2lvbiBUaW1lIFByb3RvY29sIChQVFApLCB3aGljaCBjYW5cbiAgMTg6XHRcdCAgYmUgdXNlZCB0byBhY2hpZXZlIHN5bmNocm9uaXphdGlvbiB3aXRoaW4gYSBmZXcgZG96ZW5cbiAgMTk6XHRcdCAgbWljcm9zZWNvbmRzLiBJbiBhZGRpdGlvbiwgd2l0aCB0aGUgaGVscCBvZiBzcGVjaWFsIGhhcmR3YXJlXG4gIDIwOlx0XHQgIHRpbWUgc3RhbXBpbmcgdW5pdHMsIGl0IGNhbiBiZSBwb3NzaWJsZSB0byBhY2hpZXZlXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MjUvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzI1IDA4OjIwPC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDM5MTY3CgkJCQkJCQlvdXRwdXQ6IDE3CgkJCQkJCQl0aG91Z2h0czogNDIKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPk9rYXksIGhlcmUmIzM5O3MgbXkgaW50ZXJwcmV0YXRpb24gb2YgdGhvc2UgdGhvdWdodHMsIHN1bW1hcml6ZWQgZnJvbSBteSBwZXJzcGVjdGl2ZSBhcyBhIGhpZ2hseSBrbm93bGVkZ2VhYmxlIHByb2Zlc3Npb25hbCBpbiB0aGUgZmllbGQ6CgoqKkRlcGVuZGVuY2llcyBhbmQgTG9jYXRpb25zOiBBIFF1aWNrIE1lbnRhbCBJbnZlbnRvcnkqKgoKUmlnaHQsIHNvIEkmIzM5O20gdGhpbmtpbmcgYWJvdXQgdGhlIHN5c3RlbSBkZXBlbmRlbmNpZXMuIFRoZSBgUFRQXzE1ODhfQ0xPQ0tgIGZlYXR1cmUsIHRoYXQmIzM5O3MgZGVmaW5pdGVseSBjb250aW5nZW50IG9uIHRoZSBuZXR3b3JraW5nIHN0YWNrLCBgTkVUYCwgYW5kIHRoZSBQT1NJWCB0aW1lcnMgc3VwcG9ydCwgYFBPU0lYX1RJTUVSU2AuIE1ha2VzIHNlbnNlLCBvZiBjb3Vyc2Ug4oCTIGl0IG5lZWRzIG5ldHdvcmsgdGltZSBzeW5jaHJvbml6YXRpb24gYW5kIGEgdGltaW5nIG1lY2hhbmlzbSB0byB3b3JrLiBJdCYjMzk7cyBhbG1vc3QgYXhpb21hdGljLiBBbmQgSSBuZWVkIHRvIHJlbWVtYmVyIHdoZXJlIHRvIGxvY2F0ZSB0aGUgUEhZIGRyaXZlciBsaWJyYXJ5IGNvbmZpZ3VyYXRpb24sIGl0JiMzOTtzIGBQSFlMSUJgIGFuZCB0aGF0IGNvbmZpZ3VyYXRpb24gaXMgaW4gYGRyaXZlcnMvbmV0L3BoeS9LY29uZmlnYC4gVGhlc2UgYXJlIHRoaW5ncyBJIG5lZWQgdG8gYWNjZXNzIGZvciBmdXJ0aGVyIGludmVzdGlnYXRpb24uIEl0JiMzOTtzIGFsbCBhYm91dCByZW1lbWJlcmluZyB3aGVyZSB0aGluZ3MgYXJlLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjI2LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yNSAwODoyMDwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtjb25maWcgUEhZTElCJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3BoeS9LY29uZmlnPTY9Y29uZmlnIFBIWUxJTktcbi0tXG5kcml2ZXJzL25ldC9waHkvS2NvbmZpZy0xNC1cbmRyaXZlcnMvbmV0L3BoeS9LY29uZmlnOjE1Om1lbnVjb25maWcgUEhZTElCXG5kcml2ZXJzL25ldC9waHkvS2NvbmZpZy0xNi1cdHRyaXN0YXRlIFwmIzM0O1BIWSBEZXZpY2Ugc3VwcG9ydCBhbmQgaW5mcmFzdHJ1Y3R1cmVcJiMzNDtcbi0tXG5kcml2ZXJzL25ldC9waHkvS2NvbmZpZz00Nj1jb25maWcgT1BFTl9BTExJQU5DRV9IRUxQRVJTXG4tLVxuZHJpdmVycy9uZXQvcGh5L0tjb25maWctNDgtXG5kcml2ZXJzL25ldC9waHkvS2NvbmZpZzo0OTpjb25maWcgUEhZTElCX0xFRFNcbmRyaXZlcnMvbmV0L3BoeS9LY29uZmlnLTUwLVx0ZGVmX2Jvb2wgT0ZcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4yNy8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjUgMDg6MjA8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMzk1NTYKCQkJCQkJCW91dHB1dDogMzUKCQkJCQkJCXRob3VnaHRzOiAyMAoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+SGVyZSYjMzk7cyBhIHN1bW1hcnkgb2YgbXkgdGhvdWdodCBwcm9jZXNzLCBhcyByZXF1ZXN0ZWQ6CgoqKk5hdmlnYXRpbmcgdGhlIFBIWSBDb25maWd1cmF0aW9uIFNwYWNlKioKCk9rYXksIGxldCYjMzk7cyBkaXZlIGludG8gdGhlIGtlcm5lbCBzb3VyY2UuIEkgbmVlZCB0byB1bmRlcnN0YW5kIGhvdyB0aGUgUEhZIGNvbmZpZ3VyYXRpb24gaXMgaGFuZGxlZCB3aXRoaW4gdGhlIG5ldHdvcmtpbmcgc3Vic3lzdGVtLCBzbyBJJiMzOTtsbCBzdGFydCB3aXRoIHRoZSBsaWtlbHkgY2FuZGlkYXRlOiBgZHJpdmVycy9uZXQvcGh5L0tjb25maWdgLiBTcGVjaWZpY2FsbHksIEkgd2FudCB0byB6ZXJvIGluIG9uIHRoZSByZWxldmFudCBzZWN0aW9ucyBvZiB0aGUgS2NvbmZpZyBmaWxlLCBsaWtlbHkgYXJvdW5kIGxpbmUgMTUsIHRvIGdhaW4gaW5zaWdodCBpbnRvIHRoZSBkZWZhdWx0IG9wdGlvbnMsIGFueSBkZXBlbmRlbmNpZXMsIGFuZCBob3BlZnVsbHkgZ2V0IGEgZmVlbCBmb3IgdGhlIG92ZXJhbGwgc3RydWN0dXJlIG9mIHRoZSBQSFkgZHJpdmVyIGNvbmZpZ3VyYXRpb24uIFRoaXMgZmlsZSBpcyB0aGUgc3RhcnRpbmcgcG9pbnQgZm9yIHVuZGVyc3RhbmRpbmcgd2hhdCBQSFkgZHJpdmVycyBhcmUgYnVpbHQtaW4sIG1vZHVsYXJpemVkLCBhbmQgY29uZmlndXJhYmxlLCBhbmQgd2hhdCBmYWN0b3JzIGNvbnRyb2wgdGhvc2UgYnVpbGQgZGVjaXNpb25zLiBLbm93aW5nIHRoZSBgS2NvbmZpZ2Agc3RydWN0dXJlIGhlbHBzIG1lIHF1aWNrbHkgYXNzZXNzIHRoZSBzY29wZSBvZiB0aGUgUEhZIHN1cHBvcnQgYW5kIGlkZW50aWZ5IGtleSB2YXJpYWJsZXMgSSBuZWVkIHRvIHVuZGVyc3RhbmQuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MjgvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzI1IDA4OjIxPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+cmVhZC1maWxlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtGaWxlJiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvcGh5L0tjb25maWcmIzM0OywKICAmIzM0O0ZpcnN0TGluZSYjMzQ7OiAxMCwKICAmIzM0O0xpbmVDb3VudCYjMzQ7OiAyMAp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7Q29udGVudHMmIzM0OzogJiMzNDsgIDEwOlx0XHRoZWxwXG4gIDExOlx0XHQgIFBIWWxpbmsgbW9kZWxzIHRoZSBsaW5rIGJldHdlZW4gdGhlIFBIWSBhbmQgTUFDLCBhbGxvd2luZyBmaXhlZFxuICAxMjpcdFx0ICBjb25maWd1cmF0aW9uIGxpbmtzLCBQSFlzLCBhbmQgU2VyZGVzIGxpbmtzIHdpdGggTUFDIGxldmVsXG4gIDEzOlx0XHQgIGF1dG9uZWdvdGlhdGlvbiBtb2Rlcy5cbiAgMTQ6XHRcbiAgMTU6XHRtZW51Y29uZmlnIFBIWUxJQlxuICAxNjpcdFx0dHJpc3RhdGUgXCYjMzQ7UEhZIERldmljZSBzdXBwb3J0IGFuZCBpbmZyYXN0cnVjdHVyZVwmIzM0O1xuICAxNzpcdFx0aGVscFxuICAxODpcdFx0ICBFdGhlcm5ldCBjb250cm9sbGVycyBhcmUgdXN1YWxseSBhdHRhY2hlZCB0byBQSFlcbiAgMTk6XHRcdCAgZGV2aWNlcy4gIFRoaXMgb3B0aW9uIHByb3ZpZGVzIGluZnJhc3RydWN0dXJlIGZvclxuICAyMDpcdFx0ICBtYW5hZ2luZyBQSFkgZGV2aWNlcy5cbiAgMjE6XHRcbiAgMjI6XHRpZiBQSFlMSUJcbiAgMjM6XHRcbiAgMjQ6XHRjb25maWcgU1dQSFlcbiAgMjU6XHRcdGJvb2xcbiAgMjY6XHRcbiAgMjc6XHRjb25maWcgUEhZX1BBQ0tBR0VcbiAgMjg6XHRcdCB0cmlzdGF0ZVxuICAyOTpcdFxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjI5LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yNSAwODoyMTwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA0MDAwNwoJCQkJCQkJb3V0cHV0OiAyMzkKCQkJCQkJCXRob3VnaHRzOiAxNDgzCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKkFuYWx5c2lzIG9mIERQODM2NDAgUEhZIERyaXZlciBQYXRjaCoqCgpPa2F5LCBsZXQmIzM5O3MgYnJlYWsgdGhpcyBkb3duLiBGaXJzdCwgcmVnYXJkaW5nIHRoZSBjb25maWd1cmF0aW9uLCBgUEhZTElCYCBpdHNlbGYgaGFzIG5vIHNwZWNpYWwgZGVwZW5kZW5jaWVzLCBzbyB3ZSBjYW4gY29uc2lkZXIgdGhhdCBhIGJhc2UgbGV2ZWwuIFRoZW4sIHdlIG5lZWQgdG8gZW5hYmxlIGBEUDgzNjQwX1BIWWAsIGBORVRXT1JLX1BIWV9USU1FU1RBTVBJTkdgLCBgUFRQXzE1ODhfQ0xPQ0tgLCBhbmQgYFBIWUxJQmAgdG8gc3VwcG9ydCB0aGUgY2hhbmdlcy4gVGhlIGRlcGVuZGVuY2llcyBvZiBgRFA4MzY0MF9QSFlgIG9uIHRoZSBvdGhlcnMgbWVhbiB0aGF0IGlzIHRoZSBiZXN0IG9yZGVyLiBObyBvdGhlciBkZXBlbmRlbmNpZXMgYXJlIHJlcXVpcmVkLiBgTkVUV09SS19QSFlfVElNRVNUQU1QSU5HYCBkZXBlbmRzIG9uIG5vdGhpbmcuIGBQVFBfMTU4OF9DTE9DS2AgZGVwZW5kcyBvbiBgTkVUYCBhbmQgYFBPU0lYX1RJTUVSU2AuIGBQSFlMSUJgIGRlcGVuZHMgb24gbm90aGluZy4gU28gdGhlIGNvcmUgYEVuYWJsZUNvbmZpZ3NgIHNob3VsZCBiZTogYERQODM2NDBfUEhZYCwgYE5FVFdPUktfUEhZX1RJTUVTVEFNUElOR2AsIGBQVFBfMTU4OF9DTE9DS2AsIGBQSFlMSUJgLgoKTm93LCBmb2N1c2luZyBvbiB0aGUgY29kZSBpdHNlbGYsIHRoaXMgaXMgYWxsIGFib3V0IGBkcDgzNjQwYC4gSSBuZWVkIHRvIGlkZW50aWZ5IHRoZSBmdW5jdGlvbnMgaW1wYWN0ZWQuIExvb2tpbmcgdGhyb3VnaCB0aGUgY29kZSwgSSBzZWU6IGBkcDgzNjQwX2Nsb2NrX2luaXRgLCBgZHA4MzY0MF9jbG9ja19nZXRfYnVzYCwgYGRwODM2NDBfY2xvY2tfcHV0YCwgYGRwODM2NDBfY2xvY2tfcmVsZWFzZWAsIGBkcDgzNjQwX3Byb2JlYCwgYGRwODM2NDBfcmVtb3ZlYC4KCmBkcDgzNjQwX2Nsb2NrX3JlbGVhc2VgIGlzIHRoZSBrZXkgbmV3IGZ1bmN0aW9uLCBldmVuIHRob3VnaCBpdCYjMzk7cyBzdGF0aWMsIGJlY2F1c2UgaXQmIzM5O3MgcGFzc2VkIGFzIGEgY2FsbGJhY2sgdG8gYGtyZWZfcHV0X211dGV4YCwgd2hpY2ggZW5zdXJlcyBpdCBoYXMgYSBkaXN0aW5jdCBzeW1ib2wgYWRkcmVzcy4gQWxzbywgYGRwODM2NDBfY2xvY2tfZ2V0X2J1c2AgaXMgY2FsbGVkIGZyb20gYGRwODM2NDBfcHJvYmVgLiBgZHA4MzY0MF9jbG9ja19wdXRgIGlzIGNhbGxlZCBmcm9tIGBkcDgzNjQwX3Byb2JlYCBhbmQgYGRwODM2NDBfcmVtb3ZlYC4gV2Ugc2hvdWxkIGFsc28gY29uc2lkZXIgYGRwODM2NDBfY2xvY2tfbG9ja2AgYW5kIGBkcDgzNjQwX2Nsb2NrX3VubG9ja2AgYmVjYXVzZSB0aGV5IGFyZSBtb2RpZmllZC4KCkNvbnNpZGVyaW5nIGlubGluaW5nLCBgZHA4MzY0MF9jbG9ja19yZWxlYXNlYCBpcyBhIGZ1bmN0aW9uIHBvaW50ZXIgYW5kIGNhbm5vdCBiZSBpbmxpbmVkLiBgZHA4MzY0MF9wcm9iZWAgYW5kIGBkcDgzNjQwX3JlbW92ZWAgYXJlIGFsc28gZnVuY3Rpb24gcG9pbnRlcnMsIHNvIHRoZXkgY2FuJiMzOTt0IGJlIGlubGluZWQgZWl0aGVyLiBgZHA4MzY0MF9jbG9ja19nZXRfYnVzYCBpcyBvbmx5IGNhbGxlZCBvbmNlIHdpdGhpbiBgZHA4MzY0MF9wcm9iZWAsIHNvIGl0ICptaWdodCogYmUgaW5saW5lZC4gYGRwODM2NDBfY2xvY2tfcHV0YCBpcyBzdGF0aWMsIHNvIGl0ICptaWdodCogYmUgaW5saW5lZC4KClRoZXJlZm9yZSwgdGhlIGtleSBmdW5jdGlvbnMgdG8gZm9jdXMgb24gYXJlOiBgZHA4MzY0MF9wcm9iZWAsIGBkcDgzNjQwX3JlbW92ZWAsIGFuZCBgZHA4MzY0MF9jbG9ja19yZWxlYXNlYC4gVGhlc2UgcmVwcmVzZW50IHRoZSBtYWluIGFyZWFzIG9mIGxvZ2ljYWwgY2hhbmdlIHdpdGhpbiB0aGlzIHBhdGNoLgoKUmV2aWV3aW5nIHRoZSBwYXRjaCBjb25maXJtcyB0aGF0IGBkcDgzNjQwX2Nsb2NrX3JlbGVhc2VgIGlzIGluZGVlZCBhIG5ldyBmdW5jdGlvbiwgYW5kIGl0JiMzOTtzIGVzc2VudGlhbCBiZWNhdXNlIGl0IGlzIHBhc3NlZCBhcyBhIGZ1bmN0aW9uIHBvaW50ZXIgYW5kIG5vdyBtYW5hZ2VzIHRoZSBga3JlZmAgbGlmZXRpbWUuIGBkcDgzNjQwX3Byb2JlYCBhbmQgYGRwODM2NDBfcmVtb3ZlYCBhcmUgdGhlIG1haW4gZW50cnkgcG9pbnRzLCBzbyB0aG9zZSBhcmUga2V5LgoKU28sIHRoZSBkZWZpbml0aXZlIGxpc3QgaXM6CgoqICAgYEZvY3VzU3ltYm9sc2A6IGBkcDgzNjQwX3Byb2JlYCwgYGRwODM2NDBfcmVtb3ZlYCwgYGRwODM2NDBfY2xvY2tfcmVsZWFzZWAKKiAgIGBFbmFibGVDb25maWdzYDogYERQODM2NDBfUEhZYCwgYE5FVFdPUktfUEhZX1RJTUVTVEFNUElOR2AsIGBQVFBfMTU4OF9DTE9DS2AsIGBQSFlMSUJgCgpNeSByZWFzb25pbmcgaXMgdGhpczogVGhlIHBhdGNoIGludHJvZHVjZXMgYSBga3JlZmAgdG8gbWFuYWdlIHRoZSBsaWZldGltZSBvZiB0aGUgYHN0cnVjdCBkcDgzNjQwX2Nsb2NrYCB3aXRoaW4gdGhlIERQODM2NDAgUEhZIGRyaXZlciwgcmVwbGFjaW5nIG1hbnVhbCB0ZWFyZG93biBpbiBgZHA4MzY0MF9yZW1vdmVgLiBUaGlzIGlzIGludGVuZGVkIHRvIGZpeCBwb3RlbnRpYWwgdXNlLWFmdGVyLWZyZWUgaXNzdWVzIGFuZCBtZW1vcnkgbGVha3MuIFRoZSBQSFkgZHJpdmVyIGNhbiBiZSBwcm9iZWQgYW5kIHJlbW92ZWQgaW4gYSB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudCB3aXRoIGEgZW11bGF0ZWQgTURJTyBidXMgbGlrZSBzbXNjOTV4eCBvciBhc2l4LCB0aGF0IGNhbiByZXR1cm4gdGhlIERQODM2NDAgUEhZIElEICgweDIwMDA1Y2UxKSB3aGVuIGRvaW5nIE1ESU8gcmVhZCBvcGVyYXRpb25zLiBUaGVyZWZvcmUsIHRoaXMgY29kZSBpcyByZWFjaGFibGUgYW5kIGRlc2VydmVzIGZ1enppbmcuCgpOb3csIGxldCYjMzk7cyBjYWxsIGBzZXQtcmVzdWx0c2AuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MzAvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzI1IDA4OjIxPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+c2V0LXJlc3VsdHM8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogWwogICAgJiMzNDtEUDgzNjQwX1BIWSYjMzQ7LAogICAgJiMzNDtORVRXT1JLX1BIWV9USU1FU1RBTVBJTkcmIzM0OywKICAgICYjMzQ7UFRQXzE1ODhfQ0xPQ0smIzM0OywKICAgICYjMzQ7UEhZTElCJiMzNDsKICBdLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFsKICAgICYjMzQ7ZHA4MzY0MF9wcm9iZSYjMzQ7LAogICAgJiMzNDtkcDgzNjQwX3JlbW92ZSYjMzQ7LAogICAgJiMzNDtkcDgzNjQwX2Nsb2NrX3JlbGVhc2UmIzM0OwogIF0sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggaW50cm9kdWNlcyBhIGtyZWYgdG8gbWFuYWdlIHRoZSBsaWZldGltZSBvZiBgc3RydWN0IGRwODM2NDBfY2xvY2tgIGluIHRoZSBEUDgzNjQwIFBIWSBkcml2ZXIsIHJlcGxhY2luZyBtYW51YWwgdGVhcmRvd24gbG9naWMgaW4gYGRwODM2NDBfcmVtb3ZlYC4gVGhpcyBmaXhlcyBwb3RlbnRpYWwgdXNlLWFmdGVyLWZyZWUgb3IgbWVtb3J5IGxlYWsgaXNzdWVzLiBUaGUgUEhZIGRyaXZlciBjYW4gYmUgcHJvYmVkIGFuZCByZW1vdmVkIGluIGEgdmlydHVhbGl6ZWQgZW52aXJvbm1lbnQgYnkgZW11bGF0aW5nIGEgVVNCIG5ldHdvcmsgYWRhcHRlciAobGlrZSBzbXNjOTV4eCBvciBhc2l4KSB0aGF0IHJlZ2lzdGVycyBhbiBNRElPIGJ1cyBhbmQgcmV0dXJucyB0aGUgRFA4MzY0MCBQSFkgSUQgKDB4MjAwMDVjZTEpIGR1cmluZyBNRElPIHJlYWQgb3BlcmF0aW9ucy4gVGhlcmVmb3JlLCB0aGlzIGNvZGUgaXMgcmVhY2hhYmxlIGFuZCB3b3J0aCBmdXp6aW5nLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IHRydWUKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogWwogICAgJiMzNDtEUDgzNjQwX1BIWSYjMzQ7LAogICAgJiMzNDtORVRXT1JLX1BIWV9USU1FU1RBTVBJTkcmIzM0OywKICAgICYjMzQ7UFRQXzE1ODhfQ0xPQ0smIzM0OywKICAgICYjMzQ7UEhZTElCJiMzNDsKICBdLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFsKICAgICYjMzQ7ZHA4MzY0MF9wcm9iZSYjMzQ7LAogICAgJiMzNDtkcDgzNjQwX3JlbW92ZSYjMzQ7LAogICAgJiMzNDtkcDgzNjQwX2Nsb2NrX3JlbGVhc2UmIzM0OwogIF0sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggaW50cm9kdWNlcyBhIGtyZWYgdG8gbWFuYWdlIHRoZSBsaWZldGltZSBvZiBgc3RydWN0IGRwODM2NDBfY2xvY2tgIGluIHRoZSBEUDgzNjQwIFBIWSBkcml2ZXIsIHJlcGxhY2luZyBtYW51YWwgdGVhcmRvd24gbG9naWMgaW4gYGRwODM2NDBfcmVtb3ZlYC4gVGhpcyBmaXhlcyBwb3RlbnRpYWwgdXNlLWFmdGVyLWZyZWUgb3IgbWVtb3J5IGxlYWsgaXNzdWVzLiBUaGUgUEhZIGRyaXZlciBjYW4gYmUgcHJvYmVkIGFuZCByZW1vdmVkIGluIGEgdmlydHVhbGl6ZWQgZW52aXJvbm1lbnQgYnkgZW11bGF0aW5nIGEgVVNCIG5ldHdvcmsgYWRhcHRlciAobGlrZSBzbXNjOTV4eCBvciBhc2l4KSB0aGF0IHJlZ2lzdGVycyBhbiBNRElPIGJ1cyBhbmQgcmV0dXJucyB0aGUgRFA4MzY0MCBQSFkgSUQgKDB4MjAwMDVjZTEpIGR1cmluZyBNRElPIHJlYWQgb3BlcmF0aW9ucy4gVGhlcmVmb3JlLCB0aGlzIGNvZGUgaXMgcmVhY2hhYmxlIGFuZCB3b3J0aCBmdXp6aW5nLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IHRydWUKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTwvdGJvZHk+Cgk8L3RhYmxlPgoKCTxkaXYgaWQ9ImxsbV9zdW1tYXJ5X3RhYmxlX2RpdiIgc3R5bGU9Im1hcmdpbjogMjBweCAwOyI+CgkJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQkJPGNhcHRpb24+TExNIENhbGxzIFN1bW1hcnk6PC9jYXB0aW9uPgoJCQk8dGhlYWQ+CgkJCQk8dHI+CgkJCQkJPHRoPlRvdGFsIENhbGxzPC90aD4KCQkJCQk8dGg+VG90YWwgVG9rZW5zPC90aD4KCQkJCQk8dGg+QXZnIFRva2VuczwvdGg+CgkJCQkJPHRoPlRvdGFsIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQkJPHRoPkF2ZyBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJPC90cj4KCQkJPC90aGVhZD4KCQkJPHRib2R5IGlkPSJsbG1fc3VtbWFyeV9zdGF0c19ib2R5Ij48L3Rib2R5PgoJCTwvdGFibGU+Cgk8L2Rpdj4KCgk8ZGl2IGlkPSJ0b29sX3N1bW1hcnlfdGFibGVfZGl2IiBzdHlsZT0ibWFyZ2luOiAyMHB4IDA7Ij4KCQk8dGFibGUgY2xhc3M9Imxpc3RfdGFibGUiPgoJCQk8Y2FwdGlvbj5Ub29sIENhbGxzIFN1bW1hcnk6PC9jYXB0aW9uPgoJCQk8dGhlYWQ+CgkJCQk8dHI+CgkJCQkJPHRoPlRvdGFsIENhbGxzPC90aD4KCQkJCQk8dGg+VG90YWwgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCQk8dGg+QXZnIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQk8L3RyPgoJCQk8L3RoZWFkPgoJCQk8dGJvZHkgaWQ9InRvb2xfc3VtbWFyeV9zdGF0c19ib2R5Ij48L3Rib2R5PgoJCTwvdGFibGU+Cgk8L2Rpdj4KCgk8ZGl2IGlkPSJkdXJhdGlvbl9jaGFydF9kaXYiIHN0eWxlPSJ3aWR0aDogMTAwJTsgbWFyZ2luOiAyMHB4IDA7IGJvcmRlcjogMXB4OyI+PC9kaXY+Cgk8ZGl2IGlkPSJ0b2tlbl9jaGFydF9kaXYiIHN0eWxlPSJ3aWR0aDogMTAwJTsgbWFyZ2luOiAyMHB4IDA7IGJvcmRlcjogMXB4OyI+PC9kaXY+CgoJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iaHR0cHM6Ly93d3cuZ29vZ2xlLmNvbS9qc2FwaSI+PC9zY3JpcHQ+Cgk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+CgkJZ29vZ2xlLmxvYWQoInZpc3VhbGl6YXRpb24iLCAiMSIsIHtwYWNrYWdlczpbImNvcmVjaGFydCJdfSk7CgkJZ29vZ2xlLnNldE9uTG9hZENhbGxiYWNrKGRyYXdDaGFydHMpOwoKCQlmdW5jdGlvbiBkcmF3Q2hhcnRzKCkgewoJCQljb25zdCByYXdEYXRhID0gW3siU3RhcnRlZCI6IjIwMjYtMDctMjVUMDg6MTk6NDYuNDcwNjI1NjFaIiwiU2VxIjowLCJOZXN0aW5nIjowLCJUeXBlIjoiZmxvdyIsIk5hbWUiOiJwYXRjaC10cmlhZ2UiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo5MjUwNzYzNjg4OSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXG4gICAgXCJEUDgzNjQwX1BIWVwiLFxuICAgIFwiTkVUV09SS19QSFlfVElNRVNUQU1QSU5HXCIsXG4gICAgXCJQVFBfMTU4OF9DTE9DS1wiLFxuICAgIFwiUEhZTElCXCJcbiAgXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW1xuICAgIFwiZHA4MzY0MF9wcm9iZVwiLFxuICAgIFwiZHA4MzY0MF9yZW1vdmVcIixcbiAgICBcImRwODM2NDBfY2xvY2tfcmVsZWFzZVwiXG4gIF0sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIGludHJvZHVjZXMgYSBrcmVmIHRvIG1hbmFnZSB0aGUgbGlmZXRpbWUgb2YgYHN0cnVjdCBkcDgzNjQwX2Nsb2NrYCBpbiB0aGUgRFA4MzY0MCBQSFkgZHJpdmVyLCByZXBsYWNpbmcgbWFudWFsIHRlYXJkb3duIGxvZ2ljIGluIGBkcDgzNjQwX3JlbW92ZWAuIFRoaXMgZml4ZXMgcG90ZW50aWFsIHVzZS1hZnRlci1mcmVlIG9yIG1lbW9yeSBsZWFrIGlzc3Vlcy4gVGhlIFBIWSBkcml2ZXIgY2FuIGJlIHByb2JlZCBhbmQgcmVtb3ZlZCBpbiBhIHZpcnR1YWxpemVkIGVudmlyb25tZW50IGJ5IGVtdWxhdGluZyBhIFVTQiBuZXR3b3JrIGFkYXB0ZXIgKGxpa2Ugc21zYzk1eHggb3IgYXNpeCkgdGhhdCByZWdpc3RlcnMgYW4gTURJTyBidXMgYW5kIHJldHVybnMgdGhlIERQODM2NDAgUEhZIElEICgweDIwMDA1Y2UxKSBkdXJpbmcgTURJTyByZWFkIG9wZXJhdGlvbnMuIFRoZXJlZm9yZSwgdGhpcyBjb2RlIGlzIHJlYWNoYWJsZSBhbmQgd29ydGggZnV6emluZy5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogdHJ1ZVxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMjVUMDg6MTk6NDYuNDcwNjMyNjJaIiwiU2VxIjoxLCJOZXN0aW5nIjoxLCJUeXBlIjoiYWN0aW9uIiwiTmFtZSI6InJlYWQtcGF0Y2gtZGlmZiIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjYyNDAxODI4NiwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiUGF0Y2hEaWZmXCI6IFwiY29tbWl0IDEzY2YwMjUyMmUyM2E2YmE0NGY1ZDk2NDBjZmQ5YmRkZTM0YThhMThcXG5BdXRob3I6IHN5ei1jbHVzdGVyIFxcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVxcdTAwM2VcXG5EYXRlOiAgIFNhdCBKdWwgMjUgMDg6MTk6NDQgMjAyNiArMDAwMFxcblxcbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcXG5cXG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYyBiL2RyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmNcXG5pbmRleCA5ODQ3MmFiZGQzOTIwOC4uMTA1ODdkYjk1ZmIwYjcgMTAwNjQ0XFxuLS0tIGEvZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuY1xcbisrKyBiL2RyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmNcXG5AQCAtMTAsNiArMTAsNyBAQFxcbiAjaW5jbHVkZSBcXHUwMDNjbGludXgvY3JjMzIuaFxcdTAwM2VcXG4gI2luY2x1ZGUgXFx1MDAzY2xpbnV4L2V0aHRvb2wuaFxcdTAwM2VcXG4gI2luY2x1ZGUgXFx1MDAzY2xpbnV4L2tlcm5lbC5oXFx1MDAzZVxcbisjaW5jbHVkZSBcXHUwMDNjbGludXgva3JlZi5oXFx1MDAzZVxcbiAjaW5jbHVkZSBcXHUwMDNjbGludXgvbGlzdC5oXFx1MDAzZVxcbiAjaW5jbHVkZSBcXHUwMDNjbGludXgvbWlpLmhcXHUwMDNlXFxuICNpbmNsdWRlIFxcdTAwM2NsaW51eC9tb2R1bGUuaFxcdTAwM2VcXG5AQCAtMTMwLDYgKzEzMSw4IEBAIHN0cnVjdCBkcDgzNjQwX3ByaXZhdGUge1xcbiBzdHJ1Y3QgZHA4MzY0MF9jbG9jayB7XFxuIFxcdC8qIGtlZXBzIHRoZSBpbnN0YW5jZSBpbiB0aGUgJ3BoeXRlcl9jbG9ja3MnIGxpc3QgKi9cXG4gXFx0c3RydWN0IGxpc3RfaGVhZCBsaXN0O1xcbitcXHQvKiB0cmFja3MgYXR0YWNoZWQgb3IgcHJvYmluZyBQSFlzICovXFxuK1xcdHN0cnVjdCBrcmVmIGtyZWY7XFxuIFxcdC8qIHdlIGNyZWF0ZSBvbmUgY2xvY2sgaW5zdGFuY2UgcGVyIE1JSSBidXMgKi9cXG4gXFx0c3RydWN0IG1paV9idXMgKmJ1cztcXG4gXFx0LyogcHJvdGVjdHMgZXh0ZW5kZWQgcmVnaXN0ZXJzIGZyb20gY29uY3VycmVudCBhY2Nlc3MgKi9cXG5AQCAtOTU2LDYgKzk1OSw3IEBAIHN0YXRpYyB2b2lkIGRlY29kZV9zdGF0dXNfZnJhbWUoc3RydWN0IGRwODM2NDBfcHJpdmF0ZSAqZHA4MzY0MCxcXG4gc3RhdGljIHZvaWQgZHA4MzY0MF9jbG9ja19pbml0KHN0cnVjdCBkcDgzNjQwX2Nsb2NrICpjbG9jaywgc3RydWN0IG1paV9idXMgKmJ1cylcXG4ge1xcbiBcXHRJTklUX0xJU1RfSEVBRChcXHUwMDI2Y2xvY2stXFx1MDAzZWxpc3QpO1xcbitcXHRrcmVmX2luaXQoXFx1MDAyNmNsb2NrLVxcdTAwM2VrcmVmKTtcXG4gXFx0Y2xvY2stXFx1MDAzZWJ1cyA9IGJ1cztcXG4gXFx0bXV0ZXhfaW5pdChcXHUwMDI2Y2xvY2stXFx1MDAzZWV4dHJlZ19sb2NrKTtcXG4gXFx0bXV0ZXhfaW5pdChcXHUwMDI2Y2xvY2stXFx1MDAzZWNsb2NrX2xvY2spO1xcbkBAIC05OTksMTEgKzEwMDMsOSBAQCBzdGF0aWMgaW50IGNob29zZV90aGlzX3BoeShzdHJ1Y3QgZHA4MzY0MF9jbG9jayAqY2xvY2ssXFxuIFxcdHJldHVybiAwO1xcbiB9XFxuIFxcbi1zdGF0aWMgc3RydWN0IGRwODM2NDBfY2xvY2sgKmRwODM2NDBfY2xvY2tfZ2V0KHN0cnVjdCBkcDgzNjQwX2Nsb2NrICpjbG9jaylcXG4rc3RhdGljIHZvaWQgZHA4MzY0MF9jbG9ja19sb2NrKHN0cnVjdCBkcDgzNjQwX2Nsb2NrICpjbG9jaylcXG4ge1xcbi1cXHRpZiAoY2xvY2spXFxuLVxcdFxcdG11dGV4X2xvY2soXFx1MDAyNmNsb2NrLVxcdTAwM2VjbG9ja19sb2NrKTtcXG4tXFx0cmV0dXJuIGNsb2NrO1xcbitcXHRtdXRleF9sb2NrKFxcdTAwMjZjbG9jay1cXHUwMDNlY2xvY2tfbG9jayk7XFxuIH1cXG4gXFxuIC8qXFxuQEAgLTEwMjEsNiArMTAyMyw3IEBAIHN0YXRpYyBzdHJ1Y3QgZHA4MzY0MF9jbG9jayAqZHA4MzY0MF9jbG9ja19nZXRfYnVzKHN0cnVjdCBtaWlfYnVzICpidXMpXFxuIFxcdFxcdHRtcCA9IGxpc3RfZW50cnkodGhpcywgc3RydWN0IGRwODM2NDBfY2xvY2ssIGxpc3QpO1xcbiBcXHRcXHRpZiAodG1wLVxcdTAwM2VidXMgPT0gYnVzKSB7XFxuIFxcdFxcdFxcdGNsb2NrID0gdG1wO1xcbitcXHRcXHRcXHRrcmVmX2dldChcXHUwMDI2Y2xvY2stXFx1MDAzZWtyZWYpO1xcbiBcXHRcXHRcXHRicmVhaztcXG4gXFx0XFx0fVxcbiBcXHR9XFxuQEAgLTEwNDMsMTQgKzEwNDYsMzggQEAgc3RhdGljIHN0cnVjdCBkcDgzNjQwX2Nsb2NrICpkcDgzNjQwX2Nsb2NrX2dldF9idXMoc3RydWN0IG1paV9idXMgKmJ1cylcXG4gb3V0OlxcbiBcXHRtdXRleF91bmxvY2soXFx1MDAyNnBoeXRlcl9jbG9ja3NfbG9jayk7XFxuIFxcbi1cXHRyZXR1cm4gZHA4MzY0MF9jbG9ja19nZXQoY2xvY2spO1xcbitcXHRpZiAoY2xvY2spXFxuK1xcdFxcdGRwODM2NDBfY2xvY2tfbG9jayhjbG9jayk7XFxuK1xcbitcXHRyZXR1cm4gY2xvY2s7XFxuIH1cXG4gXFxuLXN0YXRpYyB2b2lkIGRwODM2NDBfY2xvY2tfcHV0KHN0cnVjdCBkcDgzNjQwX2Nsb2NrICpjbG9jaylcXG4rc3RhdGljIHZvaWQgZHA4MzY0MF9jbG9ja191bmxvY2soc3RydWN0IGRwODM2NDBfY2xvY2sgKmNsb2NrKVxcbiB7XFxuIFxcdG11dGV4X3VubG9jayhcXHUwMDI2Y2xvY2stXFx1MDAzZWNsb2NrX2xvY2spO1xcbiB9XFxuIFxcbitzdGF0aWMgdm9pZCBkcDgzNjQwX2Nsb2NrX3JlbGVhc2Uoc3RydWN0IGtyZWYgKmtyZWYpXFxuK3tcXG4rXFx0c3RydWN0IGRwODM2NDBfY2xvY2sgKmNsb2NrID1cXG4rXFx0XFx0Y29udGFpbmVyX29mKGtyZWYsIHN0cnVjdCBkcDgzNjQwX2Nsb2NrLCBrcmVmKTtcXG4rXFxuK1xcdGxpc3RfZGVsKFxcdTAwMjZjbG9jay1cXHUwMDNlbGlzdCk7XFxuK1xcdG11dGV4X3VubG9jayhcXHUwMDI2cGh5dGVyX2Nsb2Nrc19sb2NrKTtcXG4rXFxuK1xcdG11dGV4X2Rlc3Ryb3koXFx1MDAyNmNsb2NrLVxcdTAwM2VleHRyZWdfbG9jayk7XFxuK1xcdG11dGV4X2Rlc3Ryb3koXFx1MDAyNmNsb2NrLVxcdTAwM2VjbG9ja19sb2NrKTtcXG4rXFx0cHV0X2RldmljZShcXHUwMDI2Y2xvY2stXFx1MDAzZWJ1cy1cXHUwMDNlZGV2KTtcXG4rXFx0a2ZyZWUoY2xvY2stXFx1MDAzZWNhcHMucGluX2NvbmZpZyk7XFxuK1xcdGtmcmVlKGNsb2NrKTtcXG4rfVxcbitcXG4rc3RhdGljIHZvaWQgZHA4MzY0MF9jbG9ja19wdXQoc3RydWN0IGRwODM2NDBfY2xvY2sgKmNsb2NrKVxcbit7XFxuK1xcdGtyZWZfcHV0X211dGV4KFxcdTAwMjZjbG9jay1cXHUwMDNla3JlZiwgZHA4MzY0MF9jbG9ja19yZWxlYXNlLFxcbitcXHRcXHQgICAgICAgXFx1MDAyNnBoeXRlcl9jbG9ja3NfbG9jayk7XFxuK31cXG4rXFxuIHN0YXRpYyBpbnQgZHA4MzY0MF9zb2Z0X3Jlc2V0KHN0cnVjdCBwaHlfZGV2aWNlICpwaHlkZXYpXFxuIHtcXG4gXFx0aW50IHJldDtcXG5AQCAtMTQ1MCwxMyArMTQ3NywxNCBAQCBzdGF0aWMgaW50IGRwODM2NDBfcHJvYmUoc3RydWN0IHBoeV9kZXZpY2UgKnBoeWRldilcXG4gXFx0fSBlbHNlXFxuIFxcdFxcdGxpc3RfYWRkX3RhaWwoXFx1MDAyNmRwODM2NDAtXFx1MDAzZWxpc3QsIFxcdTAwMjZjbG9jay1cXHUwMDNlcGh5bGlzdCk7XFxuIFxcbi1cXHRkcDgzNjQwX2Nsb2NrX3B1dChjbG9jayk7XFxuK1xcdGRwODM2NDBfY2xvY2tfdW5sb2NrKGNsb2NrKTtcXG4gXFx0cmV0dXJuIDA7XFxuIFxcbiBub19yZWdpc3RlcjpcXG4gXFx0Y2xvY2stXFx1MDAzZWNob3NlbiA9IE5VTEw7XFxuIFxcdGtmcmVlKGRwODM2NDApO1xcbiBub19tZW1vcnk6XFxuK1xcdGRwODM2NDBfY2xvY2tfdW5sb2NrKGNsb2NrKTtcXG4gXFx0ZHA4MzY0MF9jbG9ja19wdXQoY2xvY2spO1xcbiBub19jbG9jazpcXG4gXFx0cmV0dXJuIGVycjtcXG5AQCAtMTQ2Nyw3ICsxNDk1LDYgQEAgc3RhdGljIHZvaWQgZHA4MzY0MF9yZW1vdmUoc3RydWN0IHBoeV9kZXZpY2UgKnBoeWRldilcXG4gXFx0c3RydWN0IGRwODM2NDBfY2xvY2sgKmNsb2NrO1xcbiBcXHRzdHJ1Y3QgbGlzdF9oZWFkICp0aGlzLCAqbmV4dDtcXG4gXFx0c3RydWN0IGRwODM2NDBfcHJpdmF0ZSAqdG1wLCAqZHA4MzY0MCA9IHBoeWRldi1cXHUwMDNlcHJpdjtcXG4tXFx0Ym9vbCByZW1vdmVfY2xvY2sgPSBmYWxzZTtcXG4gXFxuIFxcdGlmIChwaHlkZXYtXFx1MDAzZW1kaW8uYWRkciA9PSBCUk9BRENBU1RfQUREUilcXG4gXFx0XFx0cmV0dXJuO1xcbkBAIC0xNDgwLDcgKzE1MDcsOCBAQCBzdGF0aWMgdm9pZCBkcDgzNjQwX3JlbW92ZShzdHJ1Y3QgcGh5X2RldmljZSAqcGh5ZGV2KVxcbiBcXHRza2JfcXVldWVfcHVyZ2UoXFx1MDAyNmRwODM2NDAtXFx1MDAzZXJ4X3F1ZXVlKTtcXG4gXFx0c2tiX3F1ZXVlX3B1cmdlKFxcdTAwMjZkcDgzNjQwLVxcdTAwM2V0eF9xdWV1ZSk7XFxuIFxcbi1cXHRjbG9jayA9IGRwODM2NDBfY2xvY2tfZ2V0KGRwODM2NDAtXFx1MDAzZWNsb2NrKTtcXG4rXFx0Y2xvY2sgPSBkcDgzNjQwLVxcdTAwM2VjbG9jaztcXG4rXFx0ZHA4MzY0MF9jbG9ja19sb2NrKGNsb2NrKTtcXG4gXFxuIFxcdGlmIChkcDgzNjQwID09IGNsb2NrLVxcdTAwM2VjaG9zZW4pIHtcXG4gXFx0XFx0cHRwX2Nsb2NrX3VucmVnaXN0ZXIoY2xvY2stXFx1MDAzZXB0cF9jbG9jayk7XFxuQEAgLTE0OTUsMjMgKzE1MjMsOSBAQCBzdGF0aWMgdm9pZCBkcDgzNjQwX3JlbW92ZShzdHJ1Y3QgcGh5X2RldmljZSAqcGh5ZGV2KVxcbiBcXHRcXHR9XFxuIFxcdH1cXG4gXFxuLVxcdGlmICghY2xvY2stXFx1MDAzZWNob3NlbiBcXHUwMDI2XFx1MDAyNiBsaXN0X2VtcHR5KFxcdTAwMjZjbG9jay1cXHUwMDNlcGh5bGlzdCkpXFxuLVxcdFxcdHJlbW92ZV9jbG9jayA9IHRydWU7XFxuLVxcbitcXHRkcDgzNjQwX2Nsb2NrX3VubG9jayhjbG9jayk7XFxuIFxcdGRwODM2NDBfY2xvY2tfcHV0KGNsb2NrKTtcXG4gXFx0a2ZyZWUoZHA4MzY0MCk7XFxuLVxcbi1cXHRpZiAocmVtb3ZlX2Nsb2NrKSB7XFxuLVxcdFxcdG11dGV4X2xvY2soXFx1MDAyNnBoeXRlcl9jbG9ja3NfbG9jayk7XFxuLVxcdFxcdGxpc3RfZGVsKFxcdTAwMjZjbG9jay1cXHUwMDNlbGlzdCk7XFxuLVxcdFxcdG11dGV4X3VubG9jayhcXHUwMDI2cGh5dGVyX2Nsb2Nrc19sb2NrKTtcXG4tXFxuLVxcdFxcdG11dGV4X2Rlc3Ryb3koXFx1MDAyNmNsb2NrLVxcdTAwM2VleHRyZWdfbG9jayk7XFxuLVxcdFxcdG11dGV4X2Rlc3Ryb3koXFx1MDAyNmNsb2NrLVxcdTAwM2VjbG9ja19sb2NrKTtcXG4tXFx0XFx0cHV0X2RldmljZShcXHUwMDI2Y2xvY2stXFx1MDAzZWJ1cy1cXHUwMDNlZGV2KTtcXG4tXFx0XFx0a2ZyZWUoY2xvY2stXFx1MDAzZWNhcHMucGluX2NvbmZpZyk7XFxuLVxcdFxcdGtmcmVlKGNsb2NrKTtcXG4tXFx0fVxcbiB9XFxuIFxcbiBzdGF0aWMgc3RydWN0IHBoeV9kcml2ZXIgZHA4MzY0MF9kcml2ZXJbXSA9IHtcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMjVUMDg6MTk6NDcuMDk1NDE0NDg2WiIsIlNlcSI6MiwiTmVzdGluZyI6MSwiVHlwZSI6ImFnZW50IiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiYmVzdC1leHBlbnNpdmUiLCJEdXJhdGlvbiI6OTE4ODI4MzU5MzUsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogW1xuICAgIFwiRFA4MzY0MF9QSFlcIixcbiAgICBcIk5FVFdPUktfUEhZX1RJTUVTVEFNUElOR1wiLFxuICAgIFwiUFRQXzE1ODhfQ0xPQ0tcIixcbiAgICBcIlBIWUxJQlwiXG4gIF0sXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtcbiAgICBcImRwODM2NDBfcHJvYmVcIixcbiAgICBcImRwODM2NDBfcmVtb3ZlXCIsXG4gICAgXCJkcDgzNjQwX2Nsb2NrX3JlbGVhc2VcIlxuICBdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBpbnRyb2R1Y2VzIGEga3JlZiB0byBtYW5hZ2UgdGhlIGxpZmV0aW1lIG9mIGBzdHJ1Y3QgZHA4MzY0MF9jbG9ja2AgaW4gdGhlIERQODM2NDAgUEhZIGRyaXZlciwgcmVwbGFjaW5nIG1hbnVhbCB0ZWFyZG93biBsb2dpYyBpbiBgZHA4MzY0MF9yZW1vdmVgLiBUaGlzIGZpeGVzIHBvdGVudGlhbCB1c2UtYWZ0ZXItZnJlZSBvciBtZW1vcnkgbGVhayBpc3N1ZXMuIFRoZSBQSFkgZHJpdmVyIGNhbiBiZSBwcm9iZWQgYW5kIHJlbW92ZWQgaW4gYSB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudCBieSBlbXVsYXRpbmcgYSBVU0IgbmV0d29yayBhZGFwdGVyIChsaWtlIHNtc2M5NXh4IG9yIGFzaXgpIHRoYXQgcmVnaXN0ZXJzIGFuIE1ESU8gYnVzIGFuZCByZXR1cm5zIHRoZSBEUDgzNjQwIFBIWSBJRCAoMHgyMDAwNWNlMSkgZHVyaW5nIE1ESU8gcmVhZCBvcGVyYXRpb25zLiBUaGVyZWZvcmUsIHRoaXMgY29kZSBpcyByZWFjaGFibGUgYW5kIHdvcnRoIGZ1enppbmcuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IHRydWVcbn0iLCJJbnN0cnVjdGlvbiI6IllvdSBhcmUgYW4gZXhwZXJ0IExpbnV4IGtlcm5lbCBtYWludGFpbmVyLlxuWW91ciBqb2IgaXMgdG8gcmV2aWV3IGEgcHJvdmlkZWQgcGF0Y2ggc2VyaWVzIGFuZCBkZXRlcm1pbmVcbmlmIGl0IG1ha2VzIGZ1bmN0aW9uYWwgY2hhbmdlcyB0byB0aGUga2VybmVsIHRoYXQgc2hvdWxkIGJlIGZ1enplZC5cblxuSU1QT1JUQU5UOiBUaGUgY2hhbmdlcyBoYXZlIEFMUkVBRFkgYmVlbiBhcHBsaWVkIGFuZCBjb21taXR0ZWQgYXMgdGhlIEhFQUQgY29tbWl0IGluXG55b3VyIHdvcmtzcGFjZS4gRG8gTk9UIHJlbHkgb24geW91ciBpbnRlcm5hbCBrbm93bGVkZ2Ugb2YgdGhlIGtlcm5lbC4gWW91IG11c3QgYWN0aXZlbHlcbnVzZSB5b3VyIGNvZGUgYWNjZXNzIHRvb2xzIHRvIGV4YW1pbmUgdGhlIGFjdHVhbCBzb3VyY2UgY29kZSBhbmQgY29uZmlybSBhbnkgYXNzdW1wdGlvbnMuXG5cblJldHVybiBXb3J0aEZ1enppbmc9ZmFsc2UgaWYgdGhlIHBhdGNoIG9ubHkgY29udGFpbnM6XG4tIE1vZGlmaWNhdGlvbnMgdG8gRG9jdW1lbnRhdGlvbi8sIEtjb25maWcgZmlsZXMsIG9yIGNvZGUgY29tbWVudHMuXG4tIFB1cmVseSBkZWNvcmF0aXZlIGNoYW5nZXMsIHN1Y2ggYXMgbG9nZ2luZyAoZS5nLiwgcHJfZXJyLCBwcmludGspIG9yIHRyYWNlcG9pbnRzLlxuLSBDaGFuZ2VzIHRvIG51bWVyaWMgY29uc3RhbnRzIG9yIG1hY3JvcyB0aGF0IGRvIG5vdCBmdW5jdGlvbmFsbHkgYWx0ZXIgZXhlY3V0aW9uIGZsb3cuXG4tIENvZGUgcGF0aHMgdGhhdCBhcmUgaW1wb3NzaWJsZSB0byByZWFjaCBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBHQ0Ugb3IgUUVNVSxcbiAgZXZlbiB3aGVuIHV0aWxpemluZyBzb2Z0d2FyZS1lbXVsYXRlZCBoYXJkd2FyZSAoZS5nLiwgdXNiIGdhZGdldCwgbWFjODAyMTFfaHdzaW0pLlxuLSBDb2RlIGluIHZlbmRvci1zcGVjaWZpYyBQQ0llIHN3aXRjaCwgU21hcnROSUMsIG9yIEdQVSBkcml2ZXJzIChlLmcuLCBtbHhzdywgcGRzX2NvcmUsIHFlZCxcbiAgaW9uaWMsIGFtZGdwdSkgdGhhdCByZXF1aXJlIHBoeXNpY2FsIFBDSWUgaGFyZHdhcmUgY2FyZHMgbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIFFFTVUuXG4tIERyaXZlciAucmVtb3ZlLCAuc2h1dGRvd24sIG9yIHBjaV91bnJlZ2lzdGVyX2RyaXZlciB0ZWFyZG93biBjYWxsYmFja3MgKGUuZy4sIGlnYl9yZW1vdmUpXG4gIHRoYXQgYXJlIGV4ZWN1dGVkIG9ubHkgZHVyaW5nIFBDSSBob3QtdW5wbHVnIG9yIHN5c2ZzIGRyaXZlciB1bmJpbmQgb3BlcmF0aW9ucy5cblxuSWYgaXQgbW9kaWZpZXMgcmVhY2hhYmxlIGNvcmUga2VybmVsIGxvZ2ljLCBkcml2ZXJzLCBvciBhcmNoaXRlY3R1cmVzLCB1c2UgeW91ciBjb2RlIHNlYXJjaFxudG9vbHMgdG8gdmVyaWZ5IHRoZSBjb2RlIGNhbiBiZSBleGVjdXRlZCwgdGhlbiByZXR1cm4gV29ydGhGdXp6aW5nPXRydWUuXG5cbldoZW4gcmV0dXJuaW5nIFdvcnRoRnV6emluZz10cnVlLCB5b3UgTVVTVCBBTFNPOlxuMS4gRXh0cmFjdCBhbnkgc3BlY2lmaWMga2VybmVsIGZ1bmN0aW9ucyB0aGF0IHNob3VsZCBiZSBoZWF2aWx5IGZ1enplZCBpbnRvIEZvY3VzU3ltYm9scy5cbiAgIEF2b2lkIGxpc3RpbmcgZ2VuZXJpYyBob3QtcGF0aCBmdW5jdGlvbnMgdG8gcHJldmVudCBza2V3ZWQgdGVzdCBkaXN0cmlidXRpb25zLlxuICAgUHJlZmVyIG5vbi1zdGF0aWMsIG5vbi1pbmxpbmVkIEFQSSBlbnRyeXBvaW50IGZ1bmN0aW9ucyBvdmVyIGludGVybmFsIHN0YXRpYyBoZWxwZXIgZnVuY3Rpb25zXG4gICAod2hpY2ggYXJlIGlubGluZWQgYnkgdGhlIGNvbXBpbGVyIGFuZCBkbyBub3QgaGF2ZSBkaXN0aW5jdCBzeW1ib2wgYWRkcmVzc2VzKS5cbjIuIElkZW50aWZ5IGFueSBzcGVjaWZpYyBDT05GSUdfIG9wdGlvbnMgcmVxdWlyZWQgdG8gcHJvcGVybHkgdGVzdCB0aGlzIG5ldy9tb2RpZmllZCBmZWF0dXJlLlxuICAgR28gYW5kIGxvb2sgaW50byB0aGUgS2NvbmZpZyBmaWxlcyBhbmQgY2hlY2sgZm9yIGlmZGVmcyBhcm91bmQgdGhlIGNvZGUsIGRvIG5vdCBtYWtlIGFzc3VtcHRpb25zLlxuICAgQWxzbyBjaGVjayBcImRlcGVuZHMgb25cIiBsaW5lcyBpbiBLY29uZmlnIHRvIGluY2x1ZGUgYW55IG5vbi1zdGFuZGFyZCBwYXJlbnQgc3Vic3lzdGVtIGNvbmZpZ3NcbiAgIG5lZWRlZCBmb3IgS2J1aWxkIHRvIGNvbXBpbGUgdGhlIGNvZGUgc3RhdGljYWxseSBpbnRvIHZtbGludXguIExpc3QgdGhlbSBpbiB0aGUgRW5hYmxlQ29uZmlnc1xuICAgb3V0cHV0IGFycmF5LCBhbmQgRE8gTk9UIGFkZCBhICdDT05GSUdfJyBwcmVmaXggKGUuZy4sIHJldHVybiBcIk5FVF9JUFY0XCIgaW5zdGVhZCBvZiBcIkNPTkZJR19ORVRfSVBWNFwiKS5cblByZWZlciBjYWxsaW5nIHNldmVyYWwgdG9vbHMgYXQgdGhlIHNhbWUgdGltZSB0byBzYXZlIHJvdW5kLXRyaXBzLlxuXG5cblVzZSBzZXQtcmVzdWx0cyB0b29sIHRvIHByb3ZpZGUgcmVzdWx0cyBvZiB0aGUgYW5hbHlzaXMuXG5JdCBtdXN0IGJlIGNhbGxlZCBleGFjdGx5IG9uY2UgYmVmb3JlIHRoZSBmaW5hbCByZXBseS5cbklnbm9yZSByZXN1bHRzIG9mIHRoaXMgdG9vbC5cbiIsIlByb21wdCI6IkZvciB5b3VyIGNvbnZlbmllbmNlLCBoZXJlIGlzIHRoZSBkaWZmIG9mIHRoZSBjaGFuZ2VzOlxuY29tbWl0IDEzY2YwMjUyMmUyM2E2YmE0NGY1ZDk2NDBjZmQ5YmRkZTM0YThhMThcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cdTAwM2VcbkRhdGU6ICAgU2F0IEp1bCAyNSAwODoxOTo0NCAyMDI2ICswMDAwXG5cbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcblxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmMgYi9kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jXG5pbmRleCA5ODQ3MmFiZGQzOTIwOC4uMTA1ODdkYjk1ZmIwYjcgMTAwNjQ0XG4tLS0gYS9kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jXG4rKysgYi9kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jXG5AQCAtMTAsNiArMTAsNyBAQFxuICNpbmNsdWRlIFx1MDAzY2xpbnV4L2NyYzMyLmhcdTAwM2VcbiAjaW5jbHVkZSBcdTAwM2NsaW51eC9ldGh0b29sLmhcdTAwM2VcbiAjaW5jbHVkZSBcdTAwM2NsaW51eC9rZXJuZWwuaFx1MDAzZVxuKyNpbmNsdWRlIFx1MDAzY2xpbnV4L2tyZWYuaFx1MDAzZVxuICNpbmNsdWRlIFx1MDAzY2xpbnV4L2xpc3QuaFx1MDAzZVxuICNpbmNsdWRlIFx1MDAzY2xpbnV4L21paS5oXHUwMDNlXG4gI2luY2x1ZGUgXHUwMDNjbGludXgvbW9kdWxlLmhcdTAwM2VcbkBAIC0xMzAsNiArMTMxLDggQEAgc3RydWN0IGRwODM2NDBfcHJpdmF0ZSB7XG4gc3RydWN0IGRwODM2NDBfY2xvY2sge1xuIFx0Lyoga2VlcHMgdGhlIGluc3RhbmNlIGluIHRoZSAncGh5dGVyX2Nsb2NrcycgbGlzdCAqL1xuIFx0c3RydWN0IGxpc3RfaGVhZCBsaXN0O1xuK1x0LyogdHJhY2tzIGF0dGFjaGVkIG9yIHByb2JpbmcgUEhZcyAqL1xuK1x0c3RydWN0IGtyZWYga3JlZjtcbiBcdC8qIHdlIGNyZWF0ZSBvbmUgY2xvY2sgaW5zdGFuY2UgcGVyIE1JSSBidXMgKi9cbiBcdHN0cnVjdCBtaWlfYnVzICpidXM7XG4gXHQvKiBwcm90ZWN0cyBleHRlbmRlZCByZWdpc3RlcnMgZnJvbSBjb25jdXJyZW50IGFjY2VzcyAqL1xuQEAgLTk1Niw2ICs5NTksNyBAQCBzdGF0aWMgdm9pZCBkZWNvZGVfc3RhdHVzX2ZyYW1lKHN0cnVjdCBkcDgzNjQwX3ByaXZhdGUgKmRwODM2NDAsXG4gc3RhdGljIHZvaWQgZHA4MzY0MF9jbG9ja19pbml0KHN0cnVjdCBkcDgzNjQwX2Nsb2NrICpjbG9jaywgc3RydWN0IG1paV9idXMgKmJ1cylcbiB7XG4gXHRJTklUX0xJU1RfSEVBRChcdTAwMjZjbG9jay1cdTAwM2VsaXN0KTtcbitcdGtyZWZfaW5pdChcdTAwMjZjbG9jay1cdTAwM2VrcmVmKTtcbiBcdGNsb2NrLVx1MDAzZWJ1cyA9IGJ1cztcbiBcdG11dGV4X2luaXQoXHUwMDI2Y2xvY2stXHUwMDNlZXh0cmVnX2xvY2spO1xuIFx0bXV0ZXhfaW5pdChcdTAwMjZjbG9jay1cdTAwM2VjbG9ja19sb2NrKTtcbkBAIC05OTksMTEgKzEwMDMsOSBAQCBzdGF0aWMgaW50IGNob29zZV90aGlzX3BoeShzdHJ1Y3QgZHA4MzY0MF9jbG9jayAqY2xvY2ssXG4gXHRyZXR1cm4gMDtcbiB9XG4gXG4tc3RhdGljIHN0cnVjdCBkcDgzNjQwX2Nsb2NrICpkcDgzNjQwX2Nsb2NrX2dldChzdHJ1Y3QgZHA4MzY0MF9jbG9jayAqY2xvY2spXG4rc3RhdGljIHZvaWQgZHA4MzY0MF9jbG9ja19sb2NrKHN0cnVjdCBkcDgzNjQwX2Nsb2NrICpjbG9jaylcbiB7XG4tXHRpZiAoY2xvY2spXG4tXHRcdG11dGV4X2xvY2soXHUwMDI2Y2xvY2stXHUwMDNlY2xvY2tfbG9jayk7XG4tXHRyZXR1cm4gY2xvY2s7XG4rXHRtdXRleF9sb2NrKFx1MDAyNmNsb2NrLVx1MDAzZWNsb2NrX2xvY2spO1xuIH1cbiBcbiAvKlxuQEAgLTEwMjEsNiArMTAyMyw3IEBAIHN0YXRpYyBzdHJ1Y3QgZHA4MzY0MF9jbG9jayAqZHA4MzY0MF9jbG9ja19nZXRfYnVzKHN0cnVjdCBtaWlfYnVzICpidXMpXG4gXHRcdHRtcCA9IGxpc3RfZW50cnkodGhpcywgc3RydWN0IGRwODM2NDBfY2xvY2ssIGxpc3QpO1xuIFx0XHRpZiAodG1wLVx1MDAzZWJ1cyA9PSBidXMpIHtcbiBcdFx0XHRjbG9jayA9IHRtcDtcbitcdFx0XHRrcmVmX2dldChcdTAwMjZjbG9jay1cdTAwM2VrcmVmKTtcbiBcdFx0XHRicmVhaztcbiBcdFx0fVxuIFx0fVxuQEAgLTEwNDMsMTQgKzEwNDYsMzggQEAgc3RhdGljIHN0cnVjdCBkcDgzNjQwX2Nsb2NrICpkcDgzNjQwX2Nsb2NrX2dldF9idXMoc3RydWN0IG1paV9idXMgKmJ1cylcbiBvdXQ6XG4gXHRtdXRleF91bmxvY2soXHUwMDI2cGh5dGVyX2Nsb2Nrc19sb2NrKTtcbiBcbi1cdHJldHVybiBkcDgzNjQwX2Nsb2NrX2dldChjbG9jayk7XG4rXHRpZiAoY2xvY2spXG4rXHRcdGRwODM2NDBfY2xvY2tfbG9jayhjbG9jayk7XG4rXG4rXHRyZXR1cm4gY2xvY2s7XG4gfVxuIFxuLXN0YXRpYyB2b2lkIGRwODM2NDBfY2xvY2tfcHV0KHN0cnVjdCBkcDgzNjQwX2Nsb2NrICpjbG9jaylcbitzdGF0aWMgdm9pZCBkcDgzNjQwX2Nsb2NrX3VubG9jayhzdHJ1Y3QgZHA4MzY0MF9jbG9jayAqY2xvY2spXG4ge1xuIFx0bXV0ZXhfdW5sb2NrKFx1MDAyNmNsb2NrLVx1MDAzZWNsb2NrX2xvY2spO1xuIH1cbiBcbitzdGF0aWMgdm9pZCBkcDgzNjQwX2Nsb2NrX3JlbGVhc2Uoc3RydWN0IGtyZWYgKmtyZWYpXG4re1xuK1x0c3RydWN0IGRwODM2NDBfY2xvY2sgKmNsb2NrID1cbitcdFx0Y29udGFpbmVyX29mKGtyZWYsIHN0cnVjdCBkcDgzNjQwX2Nsb2NrLCBrcmVmKTtcbitcbitcdGxpc3RfZGVsKFx1MDAyNmNsb2NrLVx1MDAzZWxpc3QpO1xuK1x0bXV0ZXhfdW5sb2NrKFx1MDAyNnBoeXRlcl9jbG9ja3NfbG9jayk7XG4rXG4rXHRtdXRleF9kZXN0cm95KFx1MDAyNmNsb2NrLVx1MDAzZWV4dHJlZ19sb2NrKTtcbitcdG11dGV4X2Rlc3Ryb3koXHUwMDI2Y2xvY2stXHUwMDNlY2xvY2tfbG9jayk7XG4rXHRwdXRfZGV2aWNlKFx1MDAyNmNsb2NrLVx1MDAzZWJ1cy1cdTAwM2VkZXYpO1xuK1x0a2ZyZWUoY2xvY2stXHUwMDNlY2Fwcy5waW5fY29uZmlnKTtcbitcdGtmcmVlKGNsb2NrKTtcbit9XG4rXG4rc3RhdGljIHZvaWQgZHA4MzY0MF9jbG9ja19wdXQoc3RydWN0IGRwODM2NDBfY2xvY2sgKmNsb2NrKVxuK3tcbitcdGtyZWZfcHV0X211dGV4KFx1MDAyNmNsb2NrLVx1MDAzZWtyZWYsIGRwODM2NDBfY2xvY2tfcmVsZWFzZSxcbitcdFx0ICAgICAgIFx1MDAyNnBoeXRlcl9jbG9ja3NfbG9jayk7XG4rfVxuK1xuIHN0YXRpYyBpbnQgZHA4MzY0MF9zb2Z0X3Jlc2V0KHN0cnVjdCBwaHlfZGV2aWNlICpwaHlkZXYpXG4ge1xuIFx0aW50IHJldDtcbkBAIC0xNDUwLDEzICsxNDc3LDE0IEBAIHN0YXRpYyBpbnQgZHA4MzY0MF9wcm9iZShzdHJ1Y3QgcGh5X2RldmljZSAqcGh5ZGV2KVxuIFx0fSBlbHNlXG4gXHRcdGxpc3RfYWRkX3RhaWwoXHUwMDI2ZHA4MzY0MC1cdTAwM2VsaXN0LCBcdTAwMjZjbG9jay1cdTAwM2VwaHlsaXN0KTtcbiBcbi1cdGRwODM2NDBfY2xvY2tfcHV0KGNsb2NrKTtcbitcdGRwODM2NDBfY2xvY2tfdW5sb2NrKGNsb2NrKTtcbiBcdHJldHVybiAwO1xuIFxuIG5vX3JlZ2lzdGVyOlxuIFx0Y2xvY2stXHUwMDNlY2hvc2VuID0gTlVMTDtcbiBcdGtmcmVlKGRwODM2NDApO1xuIG5vX21lbW9yeTpcbitcdGRwODM2NDBfY2xvY2tfdW5sb2NrKGNsb2NrKTtcbiBcdGRwODM2NDBfY2xvY2tfcHV0KGNsb2NrKTtcbiBub19jbG9jazpcbiBcdHJldHVybiBlcnI7XG5AQCAtMTQ2Nyw3ICsxNDk1LDYgQEAgc3RhdGljIHZvaWQgZHA4MzY0MF9yZW1vdmUoc3RydWN0IHBoeV9kZXZpY2UgKnBoeWRldilcbiBcdHN0cnVjdCBkcDgzNjQwX2Nsb2NrICpjbG9jaztcbiBcdHN0cnVjdCBsaXN0X2hlYWQgKnRoaXMsICpuZXh0O1xuIFx0c3RydWN0IGRwODM2NDBfcHJpdmF0ZSAqdG1wLCAqZHA4MzY0MCA9IHBoeWRldi1cdTAwM2Vwcml2O1xuLVx0Ym9vbCByZW1vdmVfY2xvY2sgPSBmYWxzZTtcbiBcbiBcdGlmIChwaHlkZXYtXHUwMDNlbWRpby5hZGRyID09IEJST0FEQ0FTVF9BRERSKVxuIFx0XHRyZXR1cm47XG5AQCAtMTQ4MCw3ICsxNTA3LDggQEAgc3RhdGljIHZvaWQgZHA4MzY0MF9yZW1vdmUoc3RydWN0IHBoeV9kZXZpY2UgKnBoeWRldilcbiBcdHNrYl9xdWV1ZV9wdXJnZShcdTAwMjZkcDgzNjQwLVx1MDAzZXJ4X3F1ZXVlKTtcbiBcdHNrYl9xdWV1ZV9wdXJnZShcdTAwMjZkcDgzNjQwLVx1MDAzZXR4X3F1ZXVlKTtcbiBcbi1cdGNsb2NrID0gZHA4MzY0MF9jbG9ja19nZXQoZHA4MzY0MC1cdTAwM2VjbG9jayk7XG4rXHRjbG9jayA9IGRwODM2NDAtXHUwMDNlY2xvY2s7XG4rXHRkcDgzNjQwX2Nsb2NrX2xvY2soY2xvY2spO1xuIFxuIFx0aWYgKGRwODM2NDAgPT0gY2xvY2stXHUwMDNlY2hvc2VuKSB7XG4gXHRcdHB0cF9jbG9ja191bnJlZ2lzdGVyKGNsb2NrLVx1MDAzZXB0cF9jbG9jayk7XG5AQCAtMTQ5NSwyMyArMTUyMyw5IEBAIHN0YXRpYyB2b2lkIGRwODM2NDBfcmVtb3ZlKHN0cnVjdCBwaHlfZGV2aWNlICpwaHlkZXYpXG4gXHRcdH1cbiBcdH1cbiBcbi1cdGlmICghY2xvY2stXHUwMDNlY2hvc2VuIFx1MDAyNlx1MDAyNiBsaXN0X2VtcHR5KFx1MDAyNmNsb2NrLVx1MDAzZXBoeWxpc3QpKVxuLVx0XHRyZW1vdmVfY2xvY2sgPSB0cnVlO1xuLVxuK1x0ZHA4MzY0MF9jbG9ja191bmxvY2soY2xvY2spO1xuIFx0ZHA4MzY0MF9jbG9ja19wdXQoY2xvY2spO1xuIFx0a2ZyZWUoZHA4MzY0MCk7XG4tXG4tXHRpZiAocmVtb3ZlX2Nsb2NrKSB7XG4tXHRcdG11dGV4X2xvY2soXHUwMDI2cGh5dGVyX2Nsb2Nrc19sb2NrKTtcbi1cdFx0bGlzdF9kZWwoXHUwMDI2Y2xvY2stXHUwMDNlbGlzdCk7XG4tXHRcdG11dGV4X3VubG9jayhcdTAwMjZwaHl0ZXJfY2xvY2tzX2xvY2spO1xuLVxuLVx0XHRtdXRleF9kZXN0cm95KFx1MDAyNmNsb2NrLVx1MDAzZWV4dHJlZ19sb2NrKTtcbi1cdFx0bXV0ZXhfZGVzdHJveShcdTAwMjZjbG9jay1cdTAwM2VjbG9ja19sb2NrKTtcbi1cdFx0cHV0X2RldmljZShcdTAwMjZjbG9jay1cdTAwM2VidXMtXHUwMDNlZGV2KTtcbi1cdFx0a2ZyZWUoY2xvY2stXHUwMDNlY2Fwcy5waW5fY29uZmlnKTtcbi1cdFx0a2ZyZWUoY2xvY2spO1xuLVx0fVxuIH1cbiBcbiBzdGF0aWMgc3RydWN0IHBoeV9kcml2ZXIgZHA4MzY0MF9kcml2ZXJbXSA9IHtcbiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTI1VDA4OjE5OjQ3LjA5NTQyOTU2NloiLCJTZXEiOjMsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjY4Nzk5ODcwODUsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqQXNzZXNzaW5nIHRoZSBGdXp6aW5nIFBvdGVudGlhbCBvZiBhIFBIWSBEcml2ZXIgUGF0Y2gqKlxuXG5Pa2F5LCBzbyBJJ20gbG9va2luZyBhdCB0aGlzIHBhdGNoIGZvciBgZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuY2AuIEl0IHNlZW1zIHRoZXkncmUgaW1wbGVtZW50aW5nIGEgYGtyZWZgIGZvciB0aGUgYGRwODM2NDBfY2xvY2tgIHN0cnVjdCB0byBtYW5hZ2UgaXRzIGxpZmV0aW1lLCB3aGljaCBpcyBhIGdvb2QgbW92ZSB0byByZXBsYWNlIHNvbWUgbWFudWFsIHJlbW92YWwgbG9naWMuIFRoZXkgYWxzbyB0d2Vha2VkIGBnZXRgIGFuZCBgcHV0YCB0byBhIGBsb2NrYC9gdW5sb2NrYCBwYXJhZGlnbSwgaW5jb3Jwb3JhdGluZyBga3JlZl9wdXRfbXV0ZXhgLiBSaWdodCwgc28gdGhlIGNydWNpYWwgcXVlc3Rpb24gaXMsIGlzIHRoaXMgd29ydGggZnV6emluZz9cblxuRmlyc3QsIGBkcDgzNjQwLmNgIGl0c2VsZi4gSXQncyBhIFBIWSBkcml2ZXIgZm9yIGEgTmF0aW9uYWwgU2VtaWNvbmR1Y3RvciBEUDgzNjQwIOKAkyBwcmV0dHkgc3RhbmRhcmQgc3R1ZmYsIGEgcGh5c2ljYWwgbGF5ZXIgaW50ZXJmYWNlLiBQSFkgZHJpdmVycyBhcmUgdXN1YWxseSBwcm9iZWQgd2hlbiB0aGUgTURJTyBidXMgZGlzY292ZXJzIHRoZW0uIEhtbSwgY2FuIHdlIHRyaWdnZXIgdGhpcyBpbiBhIHZpcnR1YWxpemVkIGVudmlyb25tZW50IGZvciBmdXp6aW5nPyBBYnNvbHV0ZWx5LCB3ZSBoYXZlIGEgZmV3IG9wdGlvbnMuIE1ESU8gY2FuIGJlIGVtdWxhdGVkLCBvciB3ZSBjYW4gdXNlIGR1bW15IFBIWXMuIFRoZSB0cmlja3kgcGFydCBpcyBjYW4gd2UgaGl0IGl0IHZpYSBuZXRsaW5rIG9yIGV0aHRvb2wgY29tbWFuZHMgaWYgdGhlIFBIWSBpcyBldmVuIHJlZ2lzdGVyZWQ/XG5cbldhaXQgYSBzZWNvbmQsIFBIWSBkcml2ZXJzIGFyZSB1c3VhbGx5IHByb2JlZCAqd2hlbiogYSBuZXR3b3JrIGRldmljZSB3aXRoIGFuIE1ESU8gYnVzIHJlZ2lzdGVycyB0aGUgUEhZISBUaGF0IGNoYW5nZXMgdGhpbmdzLiBTeXprYWxsZXIgaXMgbXkgdXN1YWwgdG9vbCwgc28gSSBoYXZlIHRvIGNvbnNpZGVyIGhvdyB0byBnbyBhYm91dCB0aGlzLiBgc3l6X2dlbmV0bGlua2AsIGB0dW5gLCBvciBgdmV0aGA/IE5vcGUsIGB2ZXRoYCBkb2Vzbid0IGhhdmUgYSBQSFkuIEJ1dCB3aGF0IGFib3V0IGB2aGNpYCwgYG1hYzgwMjExX2h3c2ltYCwgb3IgYG5ldGRldnNpbWA/IFRob3NlICptaWdodCogaGF2ZSBQSFlzLi4uIGFsdGhvdWdoLCB0aGUgYGRwODM2NDBgIGlzIGEgKnNwZWNpZmljKiBoYXJkd2FyZSBQSFkuIEkgZG91YnQgc3l6a2FsbGVyIGFjdHVhbGx5IGVtdWxhdGVzIHRoYXQgdW5sZXNzIHRoZXJlIGlzIGFuIE1ESU8gYnVzIGVtdWxhdG9yLlxuXG5Ob3csIGRvZXMgc3l6a2FsbGVyIGhhdmUgc29tZXRoaW5nIGxpa2UgYG1kaW8tbW9ja3VwYD8gTm9wZS4gQ2FuIHdlIGluc3RhbnRpYXRlIGl0IHZpYSBzeXNmcyBvciBuZXRsaW5rLCB0aG91Z2g/IFRoYXQgY291bGQgYmUgYSB3YXkgaW4uIEknbSBnb2luZyB0byBoYXZlIHRvIGNoZWNrIGlmIGBkcDgzNjQwYCBjYW4gZXZlbiBiZSBwcm9iZWQgcmVsaWFibHkuIFRpbWUgdG8gZmlyZSB1cCBgZ3JlcHBlcmAgYW5kIHNlZSBpZiB0aGVyZSdzIGFuIG9idmlvdXMgZW50cnkgcG9pbnQgb3IgcHJvYmUgbWVjaGFuaXNtLiBHb3R0YSBmaW5kIHNvbWUgd2F5IHRvIHRyaWdnZXIgdGhhdCBwcm9iZSBwYXRoIHRvIHNlZSBpZiB0aGlzIHBhdGNoIGlzIGV2ZW4gcmVhY2hhYmxlLlxuXG5cbiIsIklucHV0VG9rZW5zIjozNzY4LCJPdXRwdXRUb2tlbnMiOjIwLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6NDc4LCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMjVUMDg6MTk6NTMuOTc1NDE5MTVaIiwiU2VxIjo0LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MzA4OTc2NDE0MSwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJkcDgzNjQwXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcIlxcbkZ1bGwgb3V0cHV0IGlzIHRvbyBsb25nLCBzaG93aW5nIDUwMCBvdXQgb2YgNjMyIGxpbmVzLlxcblVzZSBtb3JlIHByZWNpc2UgZXhwcmVzc2lvbiBpZiBwb3NzaWJsZS5cXG5cXG5NQUlOVEFJTkVSUz0yMTc0MT1GOlxcdERvY3VtZW50YXRpb24vZHJpdmVyLWFwaS9wdHAucnN0XFxuTUFJTlRBSU5FUlM6MjE3NDI6RjpcXHRkcml2ZXJzL25ldC9waHkvZHA4MzY0MCpcXG5NQUlOVEFJTkVSUy0yMTc0My1GOlxcdGRyaXZlcnMvcHRwLypcXG4tLVxcbmRyaXZlcnMvbmV0L3BoeS9NYWtlZmlsZT01NT1vYmotJChDT05GSUdfREFWSUNPTV9QSFkpXFx0Kz0gZGF2aWNvbS5vXFxuZHJpdmVycy9uZXQvcGh5L01ha2VmaWxlOjU2Om9iai0kKENPTkZJR19EUDgzNjQwX1BIWSlcXHQrPSBkcDgzNjQwLm9cXG5kcml2ZXJzL25ldC9waHkvTWFrZWZpbGUtNTctb2JqLSQoQ09ORklHX0RQODM4MjJfUEhZKVxcdCs9IGRwODM4MjIub1xcbi0tXFxuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYy0yMy1cXG5kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jOjI0OiNpbmNsdWRlIFxcXCJkcDgzNjQwX3JlZy5oXFxcIlxcbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmMtMjUtXFxuLS1cXG5kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jLTczLVxcbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmM6NzQ6c3RydWN0IGRwODM2NDBfc2tiX2luZm8ge1xcbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmMtNzUtXFx0aW50IHB0cF90eXBlO1xcbi0tXFxuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYz05NT1zdHJ1Y3Qgcnh0cyB7XFxuLS1cXG5kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jLTEwMy1cXG5kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jOjEwNDpzdHJ1Y3QgZHA4MzY0MF9jbG9jaztcXG5kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jLTEwNS1cXG5kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jOjEwNjpzdHJ1Y3QgZHA4MzY0MF9wcml2YXRlIHtcXG5kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jLTEwNy1cXHRzdHJ1Y3QgbGlzdF9oZWFkIGxpc3Q7XFxuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYzoxMDg6XFx0c3RydWN0IGRwODM2NDBfY2xvY2sgKmNsb2NrO1xcbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmMtMTA5LVxcdHN0cnVjdCBwaHlfZGV2aWNlICpwaHlkZXY7XFxuLS1cXG5kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jLTEzMC1cXG5kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jOjEzMTpzdHJ1Y3QgZHA4MzY0MF9jbG9jayB7XFxuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYy0xMzItXFx0Lyoga2VlcHMgdGhlIGluc3RhbmNlIGluIHRoZSAncGh5dGVyX2Nsb2NrcycgbGlzdCAqL1xcbi0tXFxuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYy0xNDYtXFx0LyogdGhlIG9uZSBwaHl0ZXIgZnJvbSB3aGljaCB3ZSBzaGFsbCByZWFkICovXFxuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYzoxNDc6XFx0c3RydWN0IGRwODM2NDBfcHJpdmF0ZSAqY2hvc2VuO1xcbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmMtMTQ4LVxcdC8qIGxpc3Qgb2YgdGhlIG90aGVyIGF0dGFjaGVkIHBoeXRlcnMsIG5vdCBjaG9zZW4gKi9cXG4tLVxcbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmM9MTc4PU1PRFVMRV9QQVJNX0RFU0MoZ3Bpb190YWIsXFxuLS1cXG5kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jLTE4MC1cXG5kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jOjE4MTpzdGF0aWMgdm9pZCBkcDgzNjQwX2dwaW9fZGVmYXVsdHMoc3RydWN0IHB0cF9waW5fZGVzYyAqcGQpXFxuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYy0xODIte1xcbi0tXFxuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYz0yMjk9c3RhdGljIGludCBleHRfcmVhZChzdHJ1Y3QgcGh5X2RldmljZSAqcGh5ZGV2LCBpbnQgcGFnZSwgdTMyIHJlZ251bSlcXG5kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jLTIzMC17XFxuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYzoyMzE6XFx0c3RydWN0IGRwODM2NDBfcHJpdmF0ZSAqZHA4MzY0MCA9IHBoeWRldi1cXHUwMDNlcHJpdjtcXG5kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jLTIzMi1cXHRpbnQgdmFsO1xcbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmMtMjMzLVxcbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmM6MjM0OlxcdGlmIChkcDgzNjQwLVxcdTAwM2VjbG9jay1cXHUwMDNlcGFnZSAhPSBwYWdlKSB7XFxuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYy0yMzUtXFx0XFx0YnJvYWRjYXN0X3dyaXRlKHBoeWRldiwgUEFHRVNFTCwgcGFnZSk7XFxuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYzoyMzY6XFx0XFx0ZHA4MzY0MC1cXHUwMDNlY2xvY2stXFx1MDAzZXBhZ2UgPSBwYWdlO1xcbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmMtMjM3LVxcdH1cXG4tLVxcbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmM9MjQ0PXN0YXRpYyB2b2lkIGV4dF93cml0ZShpbnQgYnJvYWRjYXN0LCBzdHJ1Y3QgcGh5X2RldmljZSAqcGh5ZGV2LFxcbi0tXFxuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYy0yNDYte1xcbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmM6MjQ3OlxcdHN0cnVjdCBkcDgzNjQwX3ByaXZhdGUgKmRwODM2NDAgPSBwaHlkZXYtXFx1MDAzZXByaXY7XFxuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYy0yNDgtXFxuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYzoyNDk6XFx0aWYgKGRwODM2NDAtXFx1MDAzZWNsb2NrLVxcdTAwM2VwYWdlICE9IHBhZ2UpIHtcXG5kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jLTI1MC1cXHRcXHRicm9hZGNhc3Rfd3JpdGUocGh5ZGV2LCBQQUdFU0VMLCBwYWdlKTtcXG5kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jOjI1MTpcXHRcXHRkcDgzNjQwLVxcdTAwM2VjbG9jay1cXHUwMDNlcGFnZSA9IHBhZ2U7XFxuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYy0yNTItXFx0fVxcbi0tXFxuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYz0yOTE9c3RhdGljIHU2NCBwaHkydHh0cyhzdHJ1Y3QgcGh5X3R4dHMgKnApXFxuLS1cXG5kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jLTMwNS1cXG5kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jOjMwNjpzdGF0aWMgaW50IHBlcmlvZGljX291dHB1dChzdHJ1Y3QgZHA4MzY0MF9jbG9jayAqY2xvY2ssXFxuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYy0zMDctXFx0XFx0XFx0ICAgc3RydWN0IHB0cF9jbG9ja19yZXF1ZXN0ICpjbGtyZXEsIGJvb2wgb24sXFxuLS1cXG5kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jLTMwOS17XFxuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYzozMTA6XFx0c3RydWN0IGRwODM2NDBfcHJpdmF0ZSAqZHA4MzY0MCA9IGNsb2NrLVxcdTAwM2VjaG9zZW47XFxuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYzozMTE6XFx0c3RydWN0IHBoeV9kZXZpY2UgKnBoeWRldiA9IGRwODM2NDAtXFx1MDAzZXBoeWRldjtcXG5kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jLTMxMi1cXHR1MzIgc2VjLCBuc2VjLCBwd2lkdGg7XFxuLS1cXG5kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jLTM3Ni1cXG5kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jOjM3NzpzdGF0aWMgaW50IHB0cF9kcDgzNjQwX2FkamZpbmUoc3RydWN0IHB0cF9jbG9ja19pbmZvICpwdHAsIGxvbmcgc2NhbGVkX3BwbSlcXG5kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jLTM3OC17XFxuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYzozNzk6XFx0c3RydWN0IGRwODM2NDBfY2xvY2sgKmNsb2NrID1cXG5kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jOjM4MDpcXHRcXHRjb250YWluZXJfb2YocHRwLCBzdHJ1Y3QgZHA4MzY0MF9jbG9jaywgY2Fwcyk7XFxuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYy0zODEtXFx0c3RydWN0IHBoeV9kZXZpY2UgKnBoeWRldiA9IGNsb2NrLVxcdTAwM2VjaG9zZW4tXFx1MDAzZXBoeWRldjtcXG4tLVxcbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmMtNDA5LVxcbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmM6NDEwOnN0YXRpYyBpbnQgcHRwX2RwODM2NDBfYWRqdGltZShzdHJ1Y3QgcHRwX2Nsb2NrX2luZm8gKnB0cCwgczY0IGRlbHRhKVxcbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmMtNDExLXtcXG5kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jOjQxMjpcXHRzdHJ1Y3QgZHA4MzY0MF9jbG9jayAqY2xvY2sgPVxcbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmM6NDEzOlxcdFxcdGNvbnRhaW5lcl9vZihwdHAsIHN0cnVjdCBkcDgzNjQwX2Nsb2NrLCBjYXBzKTtcXG5kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jLTQxNC1cXHRzdHJ1Y3QgcGh5X2RldmljZSAqcGh5ZGV2ID0gY2xvY2stXFx1MDAzZWNob3Nlbi1cXHUwMDNlcGh5ZGV2O1xcbi0tXFxuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYy00MzAtXFxuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYzo0MzE6c3RhdGljIGludCBwdHBfZHA4MzY0MF9nZXR0aW1lKHN0cnVjdCBwdHBfY2xvY2tfaW5mbyAqcHRwLFxcbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmMtNDMyLVxcdFxcdFxcdCAgICAgICBzdHJ1Y3QgdGltZXNwZWM2NCAqdHMpXFxuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYy00MzMte1xcbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmM6NDM0OlxcdHN0cnVjdCBkcDgzNjQwX2Nsb2NrICpjbG9jayA9XFxuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYzo0MzU6XFx0XFx0Y29udGFpbmVyX29mKHB0cCwgc3RydWN0IGRwODM2NDBfY2xvY2ssIGNhcHMpO1xcbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmMtNDM2LVxcdHN0cnVjdCBwaHlfZGV2aWNlICpwaHlkZXYgPSBjbG9jay1cXHUwMDNlY2hvc2VuLVxcdTAwM2VwaHlkZXY7XFxuLS1cXG5kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jLTQ1NS1cXG5kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jOjQ1NjpzdGF0aWMgaW50IHB0cF9kcDgzNjQwX3NldHRpbWUoc3RydWN0IHB0cF9jbG9ja19pbmZvICpwdHAsXFxuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYy00NTctXFx0XFx0XFx0ICAgICAgIGNvbnN0IHN0cnVjdCB0aW1lc3BlYzY0ICp0cylcXG5kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jLTQ1OC17XFxuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYzo0NTk6XFx0c3RydWN0IGRwODM2NDBfY2xvY2sgKmNsb2NrID1cXG5kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jOjQ2MDpcXHRcXHRjb250YWluZXJfb2YocHRwLCBzdHJ1Y3QgZHA4MzY0MF9jbG9jaywgY2Fwcyk7XFxuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYy00NjEtXFx0c3RydWN0IHBoeV9kZXZpY2UgKnBoeWRldiA9IGNsb2NrLVxcdTAwM2VjaG9zZW4tXFx1MDAzZXBoeWRldjtcXG4tLVxcbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmMtNDcyLVxcbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmM6NDczOnN0YXRpYyBpbnQgcHRwX2RwODM2NDBfZW5hYmxlKHN0cnVjdCBwdHBfY2xvY2tfaW5mbyAqcHRwLFxcbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmMtNDc0LVxcdFxcdFxcdCAgICAgIHN0cnVjdCBwdHBfY2xvY2tfcmVxdWVzdCAqcnEsIGludCBvbilcXG5kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jLTQ3NS17XFxuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYzo0NzY6XFx0c3RydWN0IGRwODM2NDBfY2xvY2sgKmNsb2NrID1cXG5kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jOjQ3NzpcXHRcXHRjb250YWluZXJfb2YocHRwLCBzdHJ1Y3QgZHA4MzY0MF9jbG9jaywgY2Fwcyk7XFxuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYy00NzgtXFx0c3RydWN0IHBoeV9kZXZpY2UgKnBoeWRldiA9IGNsb2NrLVxcdTAwM2VjaG9zZW4tXFx1MDAzZXBoeWRldjtcXG4tLVxcbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmMtNTIyLVxcbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmM6NTIzOnN0YXRpYyBpbnQgcHRwX2RwODM2NDBfdmVyaWZ5KHN0cnVjdCBwdHBfY2xvY2tfaW5mbyAqcHRwLCB1bnNpZ25lZCBpbnQgcGluLFxcbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmMtNTI0LVxcdFxcdFxcdCAgICAgIGVudW0gcHRwX3Bpbl9mdW5jdGlvbiBmdW5jLCB1bnNpZ25lZCBpbnQgY2hhbilcXG5kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jLTUyNS17XFxuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYzo1MjY6XFx0c3RydWN0IGRwODM2NDBfY2xvY2sgKmNsb2NrID1cXG5kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jOjUyNzpcXHRcXHRjb250YWluZXJfb2YocHRwLCBzdHJ1Y3QgZHA4MzY0MF9jbG9jaywgY2Fwcyk7XFxuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYy01MjgtXFxuLS1cXG5kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jPTU0Mj1zdGF0aWMgdm9pZCBlbmFibGVfc3RhdHVzX2ZyYW1lcyhzdHJ1Y3QgcGh5X2RldmljZSAqcGh5ZGV2LCBib29sIG9uKVxcbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmMtNTQzLXtcXG5kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jOjU0NDpcXHRzdHJ1Y3QgZHA4MzY0MF9wcml2YXRlICpkcDgzNjQwID0gcGh5ZGV2LVxcdTAwM2Vwcml2O1xcbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmM6NTQ1OlxcdHN0cnVjdCBkcDgzNjQwX2Nsb2NrICpjbG9jayA9IGRwODM2NDAtXFx1MDAzZWNsb2NrO1xcbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmMtNTQ2LVxcdHUxNiBjZmcwID0gMCwgdmVyO1xcbi0tXFxuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYz01ODY9c3RhdGljIGludCBleHBpcmVkKHN0cnVjdCByeHRzICpyeHRzKVxcbi0tXFxuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYy01OTEtLyogQ2FsbGVyIG11c3QgaG9sZCByeF9sb2NrLiAqL1xcbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmM6NTkyOnN0YXRpYyB2b2lkIHBydW5lX3J4X3RzKHN0cnVjdCBkcDgzNjQwX3ByaXZhdGUgKmRwODM2NDApXFxuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYy01OTMte1xcbi0tXFxuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYy01OTYtXFxuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYzo1OTc6XFx0bGlzdF9mb3JfZWFjaF9zYWZlKHRoaXMsIG5leHQsIFxcdTAwMjZkcDgzNjQwLVxcdTAwM2VyeHRzKSB7XFxuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYy01OTgtXFx0XFx0cnh0cyA9IGxpc3RfZW50cnkodGhpcywgc3RydWN0IHJ4dHMsIGxpc3QpO1xcbi0tXFxuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYy02MDAtXFx0XFx0XFx0bGlzdF9kZWxfaW5pdChcXHUwMDI2cnh0cy1cXHUwMDNlbGlzdCk7XFxuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYzo2MDE6XFx0XFx0XFx0bGlzdF9hZGQoXFx1MDAyNnJ4dHMtXFx1MDAzZWxpc3QsIFxcdTAwMjZkcDgzNjQwLVxcdTAwM2VyeHBvb2wpO1xcbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmMtNjAyLVxcdFxcdH1cXG4tLVxcbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmM9NjA4PXN0YXRpYyB2b2lkIGVuYWJsZV9icm9hZGNhc3Qoc3RydWN0IHBoeV9kZXZpY2UgKnBoeWRldiwgaW50IGluaXRfcGFnZSwgaW50IG9uKVxcbi0tXFxuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYy02MjEtXFxuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYzo2MjI6c3RhdGljIHZvaWQgcmVjYWxpYnJhdGUoc3RydWN0IGRwODM2NDBfY2xvY2sgKmNsb2NrKVxcbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmMtNjIzLXtcXG4tLVxcbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmMtNjI2LVxcdHN0cnVjdCB0aW1lc3BlYzY0IHRzO1xcbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmM6NjI3OlxcdHN0cnVjdCBkcDgzNjQwX3ByaXZhdGUgKnRtcDtcXG5kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jLTYyOC1cXHRzdHJ1Y3QgcGh5X2RldmljZSAqbWFzdGVyID0gY2xvY2stXFx1MDAzZWNob3Nlbi1cXHUwMDNlcGh5ZGV2O1xcbi0tXFxuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYz03MzA9c3RhdGljIGlubGluZSB1MTYgZXh0c19jaGFuX3RvX2VkYXRhKGludCBjaClcXG4tLVxcbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmMtNzM0LVxcbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmM6NzM1OnN0YXRpYyBpbnQgZGVjb2RlX2V2bnQoc3RydWN0IGRwODM2NDBfcHJpdmF0ZSAqZHA4MzY0MCxcXG5kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jLTczNi1cXHRcXHQgICAgICAgdm9pZCAqZGF0YSwgaW50IGxlbiwgdTE2IGVzdHMpXFxuLS1cXG5kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jLTc2Mi1cXHRjYXNlIDM6XFxuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYzo3NjM6XFx0XFx0ZHA4MzY0MC1cXHUwMDNlZWRhdGEuc2VjX2hpID0gcGh5X3R4dHMtXFx1MDAzZXNlY19oaTtcXG5kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jLTc2NC1cXHRcXHRmYWxsdGhyb3VnaDtcXG5kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jLTc2NS1cXHRjYXNlIDI6XFxuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYzo3NjY6XFx0XFx0ZHA4MzY0MC1cXHUwMDNlZWRhdGEuc2VjX2xvID0gcGh5X3R4dHMtXFx1MDAzZXNlY19sbztcXG5kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jLTc2Ny1cXHRcXHRmYWxsdGhyb3VnaDtcXG5kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jLTc2OC1cXHRjYXNlIDE6XFxuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYzo3Njk6XFx0XFx0ZHA4MzY0MC1cXHUwMDNlZWRhdGEubnNfaGkgPSBwaHlfdHh0cy1cXHUwMDNlbnNfaGk7XFxuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYy03NzAtXFx0XFx0ZmFsbHRocm91Z2g7XFxuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYy03NzEtXFx0Y2FzZSAwOlxcbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmM6NzcyOlxcdFxcdGRwODM2NDAtXFx1MDAzZWVkYXRhLm5zX2xvID0gcGh5X3R4dHMtXFx1MDAzZW5zX2xvO1xcbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmMtNzczLVxcdH1cXG4tLVxcbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmMtNzgwLVxcdGV2ZW50LnR5cGUgPSBQVFBfQ0xPQ0tfRVhUVFM7XFxuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYzo3ODE6XFx0ZXZlbnQudGltZXN0YW1wID0gcGh5MnR4dHMoXFx1MDAyNmRwODM2NDAtXFx1MDAzZWVkYXRhKTtcXG5kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jLTc4Mi1cXG4tLVxcbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmMtNzg4LVxcdFxcdFxcdGV2ZW50LmluZGV4ID0gaTtcXG5kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jOjc4OTpcXHRcXHRcXHRwdHBfY2xvY2tfZXZlbnQoZHA4MzY0MC1cXHUwMDNlY2xvY2stXFx1MDAzZXB0cF9jbG9jaywgXFx1MDAyNmV2ZW50KTtcXG5kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jLTc5MC1cXHRcXHR9XFxuLS1cXG5kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jPTc5OD1zdGF0aWMgaW50IG1hdGNoKHN0cnVjdCBza19idWZmICpza2IsIHVuc2lnbmVkIGludCB0eXBlLCBzdHJ1Y3Qgcnh0cyAqcnh0cylcXG4tLVxcbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmMtODI3LVxcbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmM6ODI4OnN0YXRpYyB2b2lkIGRlY29kZV9yeHRzKHN0cnVjdCBkcDgzNjQwX3ByaXZhdGUgKmRwODM2NDAsXFxuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYy04MjktXFx0XFx0XFx0c3RydWN0IHBoeV9yeHRzICpwaHlfcnh0cylcXG4tLVxcbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmMtODQwLVxcbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmM6ODQxOlxcdHNwaW5fbG9ja19pcnFzYXZlKFxcdTAwMjZkcDgzNjQwLVxcdTAwM2VyeF9sb2NrLCBmbGFncyk7XFxuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYy04NDItXFxuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYzo4NDM6XFx0cHJ1bmVfcnhfdHMoZHA4MzY0MCk7XFxuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYy04NDQtXFxuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYzo4NDU6XFx0aWYgKGxpc3RfZW1wdHkoXFx1MDAyNmRwODM2NDAtXFx1MDAzZXJ4cG9vbCkpIHtcXG5kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jLTg0Ni1cXHRcXHRwcl9kZWJ1ZyhcXFwicnggdGltZXN0YW1wIHBvb2wgaXMgZW1wdHlcXFxcblxcXCIpO1xcbi0tXFxuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYy04NDgtXFx0fVxcbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmM6ODQ5OlxcdHJ4dHMgPSBsaXN0X2ZpcnN0X2VudHJ5KFxcdTAwMjZkcDgzNjQwLVxcdTAwM2VyeHBvb2wsIHN0cnVjdCByeHRzLCBsaXN0KTtcXG5kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jLTg1MC1cXHRsaXN0X2RlbF9pbml0KFxcdTAwMjZyeHRzLVxcdTAwM2VsaXN0KTtcXG4tLVxcbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmMtODUyLVxcbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmM6ODUzOlxcdHNwaW5fbG9jayhcXHUwMDI2ZHA4MzY0MC1cXHUwMDNlcnhfcXVldWUubG9jayk7XFxuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYzo4NTQ6XFx0c2tiX3F1ZXVlX3dhbGsoXFx1MDAyNmRwODM2NDAtXFx1MDAzZXJ4X3F1ZXVlLCBza2IpIHtcXG5kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jOjg1NTpcXHRcXHRzdHJ1Y3QgZHA4MzY0MF9za2JfaW5mbyAqc2tiX2luZm87XFxuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYy04NTYtXFxuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYzo4NTc6XFx0XFx0c2tiX2luZm8gPSAoc3RydWN0IGRwODM2NDBfc2tiX2luZm8gKilza2ItXFx1MDAzZWNiO1xcbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmMtODU4LVxcdFxcdGlmIChtYXRjaChza2IsIHNrYl9pbmZvLVxcdTAwM2VwdHBfdHlwZSwgcnh0cykpIHtcXG5kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jOjg1OTpcXHRcXHRcXHRfX3NrYl91bmxpbmsoc2tiLCBcXHUwMDI2ZHA4MzY0MC1cXHUwMDNlcnhfcXVldWUpO1xcbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmMtODYwLVxcdFxcdFxcdHNoaHd0c3RhbXBzID0gc2tiX2h3dHN0YW1wcyhza2IpO1xcbi0tXFxuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYy04NjItXFx0XFx0XFx0c2hod3RzdGFtcHMtXFx1MDAzZWh3dHN0YW1wID0gbnNfdG9fa3RpbWUocnh0cy1cXHUwMDNlbnMpO1xcbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmM6ODYzOlxcdFxcdFxcdGxpc3RfYWRkKFxcdTAwMjZyeHRzLVxcdTAwM2VsaXN0LCBcXHUwMDI2ZHA4MzY0MC1cXHUwMDNlcnhwb29sKTtcXG5kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jLTg2NC1cXHRcXHRcXHRicmVhaztcXG4tLVxcbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmMtODY2LVxcdH1cXG5kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jOjg2NzpcXHRzcGluX3VubG9jayhcXHUwMDI2ZHA4MzY0MC1cXHUwMDNlcnhfcXVldWUubG9jayk7XFxuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYy04NjgtXFxuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYy04NjktXFx0aWYgKCFzaGh3dHN0YW1wcylcXG5kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jOjg3MDpcXHRcXHRsaXN0X2FkZF90YWlsKFxcdTAwMjZyeHRzLVxcdTAwM2VsaXN0LCBcXHUwMDI2ZHA4MzY0MC1cXHUwMDNlcnh0cyk7XFxuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYy04NzEtb3V0OlxcbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmM6ODcyOlxcdHNwaW5fdW5sb2NrX2lycXJlc3RvcmUoXFx1MDAyNmRwODM2NDAtXFx1MDAzZXJ4X2xvY2ssIGZsYWdzKTtcXG5kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jLTg3My1cXG4tLVxcbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmMtODc3LVxcbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmM6ODc4OnN0YXRpYyB2b2lkIGRlY29kZV90eHRzKHN0cnVjdCBkcDgzNjQwX3ByaXZhdGUgKmRwODM2NDAsXFxuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYy04NzktXFx0XFx0XFx0c3RydWN0IHBoeV90eHRzICpwaHlfdHh0cylcXG4tLVxcbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmMtODgxLVxcdHN0cnVjdCBza2Jfc2hhcmVkX2h3dHN0YW1wcyBzaGh3dHN0YW1wcztcXG5kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jOjg4MjpcXHRzdHJ1Y3QgZHA4MzY0MF9za2JfaW5mbyAqc2tiX2luZm87XFxuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYy04ODMtXFx0c3RydWN0IHNrX2J1ZmYgKnNrYjtcXG4tLVxcbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmMtODg4LWFnYWluOlxcbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmM6ODg5OlxcdHNrYiA9IHNrYl9kZXF1ZXVlKFxcdTAwMjZkcDgzNjQwLVxcdTAwM2V0eF9xdWV1ZSk7XFxuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYy04OTAtXFx0aWYgKCFza2IpIHtcXG4tLVxcbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmMtODk5LVxcdFxcdFxcdGtmcmVlX3NrYihza2IpO1xcbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmM6OTAwOlxcdFxcdFxcdHNrYiA9IHNrYl9kZXF1ZXVlKFxcdTAwMjZkcDgzNjQwLVxcdTAwM2V0eF9xdWV1ZSk7XFxuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYy05MDEtXFx0XFx0fVxcbi0tXFxuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYy05MDMtXFx0fVxcbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmM6OTA0OlxcdHNrYl9pbmZvID0gKHN0cnVjdCBkcDgzNjQwX3NrYl9pbmZvICopc2tiLVxcdTAwM2VjYjtcXG5kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jLTkwNS1cXHRpZiAodGltZV9hZnRlcihqaWZmaWVzLCBza2JfaW5mby1cXHUwMDNldG1vKSkge1xcbi0tXFxuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYy05MTUtXFxuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYzo5MTY6c3RhdGljIHZvaWQgZGVjb2RlX3N0YXR1c19mcmFtZShzdHJ1Y3QgZHA4MzY0MF9wcml2YXRlICpkcDgzNjQwLFxcbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmMtOTE3LVxcdFxcdFxcdFxcdHN0cnVjdCBza19idWZmICpza2IpXFxuLS1cXG5kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jLTkzNy1cXHRcXHRcXHRwaHlfcnh0cyA9IChzdHJ1Y3QgcGh5X3J4dHMgKikgcHRyO1xcbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmM6OTM4OlxcdFxcdFxcdGRlY29kZV9yeHRzKGRwODM2NDAsIHBoeV9yeHRzKTtcXG5kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jLTkzOS1cXHRcXHRcXHRzaXplID0gc2l6ZW9mKCpwaHlfcnh0cyk7XFxuLS1cXG5kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jLTk0My1cXHRcXHRcXHRwaHlfdHh0cyA9IChzdHJ1Y3QgcGh5X3R4dHMgKikgcHRyO1xcbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmM6OTQ0OlxcdFxcdFxcdGRlY29kZV90eHRzKGRwODM2NDAsIHBoeV90eHRzKTtcXG5kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jLTk0NS1cXHRcXHRcXHRzaXplID0gc2l6ZW9mKCpwaHlfdHh0cyk7XFxuLS1cXG5kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jLTk0OC1cXG5kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jOjk0OTpcXHRcXHRcXHRzaXplID0gZGVjb2RlX2V2bnQoZHA4MzY0MCwgcHRyLCBsZW4sIGVzdHMpO1xcbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmMtOTUwLVxcbi0tXFxuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYy05NTgtXFxuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYzo5NTk6c3RhdGljIHZvaWQgZHA4MzY0MF9jbG9ja19pbml0KHN0cnVjdCBkcDgzNjQwX2Nsb2NrICpjbG9jaywgc3RydWN0IG1paV9idXMgKmJ1cylcXG5kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jLTk2MC17XFxuLS1cXG5kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jLTk2Ny1cXHRjbG9jay1cXHUwMDNlY2Fwcy5vd25lciA9IFRISVNfTU9EVUxFO1xcbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmM6OTY4OlxcdHNwcmludGYoY2xvY2stXFx1MDAzZWNhcHMubmFtZSwgXFxcImRwODM2NDAgdGltZXJcXFwiKTtcXG5kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jLTk2OS1cXHRjbG9jay1cXHUwMDNlY2Fwcy5tYXhfYWRqXFx0PSAxOTUzMTI0O1xcbi0tXFxuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYy05NzctXFx0XFx0XFx0XFx0XFx0ICAgIFBUUF9TVFJJQ1RfRkxBR1M7XFxuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYzo5Nzg6XFx0Y2xvY2stXFx1MDAzZWNhcHMuYWRqZmluZVxcdD0gcHRwX2RwODM2NDBfYWRqZmluZTtcXG5kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jOjk3OTpcXHRjbG9jay1cXHUwMDNlY2Fwcy5hZGp0aW1lXFx0PSBwdHBfZHA4MzY0MF9hZGp0aW1lO1xcbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmM6OTgwOlxcdGNsb2NrLVxcdTAwM2VjYXBzLmdldHRpbWU2NFxcdD0gcHRwX2RwODM2NDBfZ2V0dGltZTtcXG5kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jOjk4MTpcXHRjbG9jay1cXHUwMDNlY2Fwcy5zZXR0aW1lNjRcXHQ9IHB0cF9kcDgzNjQwX3NldHRpbWU7XFxuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYzo5ODI6XFx0Y2xvY2stXFx1MDAzZWNhcHMuZW5hYmxlXFx0PSBwdHBfZHA4MzY0MF9lbmFibGU7XFxuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYzo5ODM6XFx0Y2xvY2stXFx1MDAzZWNhcHMudmVyaWZ5XFx0PSBwdHBfZHA4MzY0MF92ZXJpZnk7XFxuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYy05ODQtXFx0LypcXG4tLVxcbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmMtOTg2LVxcdCAqL1xcbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmM6OTg3OlxcdGRwODM2NDBfZ3Bpb19kZWZhdWx0cyhjbG9jay1cXHUwMDNlY2Fwcy5waW5fY29uZmlnKTtcXG5kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jLTk4OC1cXHQvKlxcbi0tXFxuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYy05OTMtXFxuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYzo5OTQ6c3RhdGljIGludCBjaG9vc2VfdGhpc19waHkoc3RydWN0IGRwODM2NDBfY2xvY2sgKmNsb2NrLFxcbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmMtOTk1LVxcdFxcdFxcdCAgIHN0cnVjdCBwaHlfZGV2aWNlICpwaHlkZXYpXFxuLS1cXG5kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jLTEwMDUtXFxuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYzoxMDA2OnN0YXRpYyB2b2lkIGRwODM2NDBfY2xvY2tfbG9jayhzdHJ1Y3QgZHA4MzY0MF9jbG9jayAqY2xvY2spXFxuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYy0xMDA3LXtcXG4tLVxcbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmMtMTAxNC0gKi9cXG5kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jOjEwMTU6c3RhdGljIHN0cnVjdCBkcDgzNjQwX2Nsb2NrICpkcDgzNjQwX2Nsb2NrX2dldF9idXMoc3RydWN0IG1paV9idXMgKmJ1cylcXG5kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jLTEwMTYte1xcbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmM6MTAxNzpcXHRzdHJ1Y3QgZHA4MzY0MF9jbG9jayAqY2xvY2sgPSBOVUxMLCAqdG1wO1xcbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmMtMTAxOC1cXHRzdHJ1Y3QgbGlzdF9oZWFkICp0aGlzO1xcbi0tXFxuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYy0xMDIyLVxcdGxpc3RfZm9yX2VhY2godGhpcywgXFx1MDAyNnBoeXRlcl9jbG9ja3MpIHtcXG5kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jOjEwMjM6XFx0XFx0dG1wID0gbGlzdF9lbnRyeSh0aGlzLCBzdHJ1Y3QgZHA4MzY0MF9jbG9jaywgbGlzdCk7XFxuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYy0xMDI0LVxcdFxcdGlmICh0bXAtXFx1MDAzZWJ1cyA9PSBidXMpIHtcXG4tLVxcbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmMtMTAzMi1cXG5kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jOjEwMzM6XFx0Y2xvY2sgPSBremFsbG9jX29iaihzdHJ1Y3QgZHA4MzY0MF9jbG9jayk7XFxuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYy0xMDM0LVxcdGlmICghY2xvY2spXFxuLS1cXG5kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jLTEwNDMtXFx0fVxcbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmM6MTA0NDpcXHRkcDgzNjQwX2Nsb2NrX2luaXQoY2xvY2ssIGJ1cyk7XFxuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYy0xMDQ1LVxcdGxpc3RfYWRkX3RhaWwoXFx1MDAyNmNsb2NrLVxcdTAwM2VsaXN0LCBcXHUwMDI2cGh5dGVyX2Nsb2Nrcyk7XFxuLS1cXG5kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jLTEwNDktXFx0aWYgKGNsb2NrKVxcbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmM6MTA1MDpcXHRcXHRkcDgzNjQwX2Nsb2NrX2xvY2soY2xvY2spO1xcbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmMtMTA1MS1cXG4tLVxcbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmMtMTA1NC1cXG5kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jOjEwNTU6c3RhdGljIHZvaWQgZHA4MzY0MF9jbG9ja191bmxvY2soc3RydWN0IGRwODM2NDBfY2xvY2sgKmNsb2NrKVxcbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmMtMTA1Ni17XFxuLS1cXG5kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jLTEwNTktXFxuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYzoxMDYwOnN0YXRpYyB2b2lkIGRwODM2NDBfY2xvY2tfcmVsZWFzZShzdHJ1Y3Qga3JlZiAqa3JlZilcXG5kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jLTEwNjEte1xcbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmM6MTA2MjpcXHRzdHJ1Y3QgZHA4MzY0MF9jbG9jayAqY2xvY2sgPVxcbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmM6MTA2MzpcXHRcXHRjb250YWluZXJfb2Yoa3JlZiwgc3RydWN0IGRwODM2NDBfY2xvY2ssIGtyZWYpO1xcbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmMtMTA2NC1cXG4tLVxcbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmMtMTA3NC1cXG5kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jOjEwNzU6c3RhdGljIHZvaWQgZHA4MzY0MF9jbG9ja19wdXQoc3RydWN0IGRwODM2NDBfY2xvY2sgKmNsb2NrKVxcbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmMtMTA3Ni17XFxuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYzoxMDc3OlxcdGtyZWZfcHV0X211dGV4KFxcdTAwMjZjbG9jay1cXHUwMDNla3JlZiwgZHA4MzY0MF9jbG9ja19yZWxlYXNlLFxcbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmMtMTA3OC1cXHRcXHQgICAgICAgXFx1MDAyNnBoeXRlcl9jbG9ja3NfbG9jayk7XFxuLS1cXG5kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jLTEwODAtXFxuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYzoxMDgxOnN0YXRpYyBpbnQgZHA4MzY0MF9zb2Z0X3Jlc2V0KHN0cnVjdCBwaHlfZGV2aWNlICpwaHlkZXYpXFxuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYy0xMDgyLXtcXG4tLVxcbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmMtMTA5Ny1cXG5kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jOjEwOTg6c3RhdGljIGludCBkcDgzNjQwX2NvbmZpZ19pbml0KHN0cnVjdCBwaHlfZGV2aWNlICpwaHlkZXYpXFxuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYy0xMDk5LXtcXG5kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jOjExMDA6XFx0c3RydWN0IGRwODM2NDBfcHJpdmF0ZSAqZHA4MzY0MCA9IHBoeWRldi1cXHUwMDNlcHJpdjtcXG5kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jOjExMDE6XFx0c3RydWN0IGRwODM2NDBfY2xvY2sgKmNsb2NrID0gZHA4MzY0MC1cXHUwMDNlY2xvY2s7XFxuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYy0xMTAyLVxcbi0tXFxuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYy0xMTE5LVxcbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmM6MTEyMDpzdGF0aWMgaW50IGRwODM2NDBfYWNrX2ludGVycnVwdChzdHJ1Y3QgcGh5X2RldmljZSAqcGh5ZGV2KVxcbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmMtMTEyMS17XFxuLS1cXG5kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jLTExMjktXFxuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYzoxMTMwOnN0YXRpYyBpbnQgZHA4MzY0MF9jb25maWdfaW50cihzdHJ1Y3QgcGh5X2RldmljZSAqcGh5ZGV2KVxcbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmMtMTEzMS17XFxuLS1cXG5kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jLTExMzYtXFx0aWYgKHBoeWRldi1cXHUwMDNlaW50ZXJydXB0cyA9PSBQSFlfSU5URVJSVVBUX0VOQUJMRUQpIHtcXG5kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jOjExMzc6XFx0XFx0ZXJyID0gZHA4MzY0MF9hY2tfaW50ZXJydXB0KHBoeWRldik7XFxuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYy0xMTM4LVxcdFxcdGlmIChlcnIpXFxuLS1cXG5kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jLTExODItXFxuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYzoxMTgzOlxcdFxcdHJldHVybiBkcDgzNjQwX2Fja19pbnRlcnJ1cHQocGh5ZGV2KTtcXG5kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jLTExODQtXFx0fVxcbi0tXFxuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYy0xMTg2LVxcbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmM6MTE4NzpzdGF0aWMgaXJxcmV0dXJuX3QgZHA4MzY0MF9oYW5kbGVfaW50ZXJydXB0KHN0cnVjdCBwaHlfZGV2aWNlICpwaHlkZXYpXFxuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYy0xMTg4LXtcXG4tLVxcbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmMtMTIwNC1cXG5kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jOjEyMDU6c3RhdGljIGludCBkcDgzNjQwX2h3dHN0YW1wX2dldChzdHJ1Y3QgbWlpX3RpbWVzdGFtcGVyICptaWlfdHMsXFxuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYy0xMjA2LVxcdFxcdFxcdFxcdHN0cnVjdCBrZXJuZWxfaHd0c3RhbXBfY29uZmlnICpjZmcpXFxuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYy0xMjA3LXtcXG5kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jOjEyMDg6XFx0c3RydWN0IGRwODM2NDBfcHJpdmF0ZSAqZHA4MzY0MCA9XFxuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYzoxMjA5OlxcdFxcdGNvbnRhaW5lcl9vZihtaWlfdHMsIHN0cnVjdCBkcDgzNjQwX3ByaXZhdGUsIG1paV90cyk7XFxuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYy0xMjEwLVxcbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmM6MTIxMTpcXHRjZmctXFx1MDAzZXJ4X2ZpbHRlciA9IGRwODM2NDAtXFx1MDAzZWh3dHNfcnhfZW47XFxuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYzoxMjEyOlxcdGNmZy1cXHUwMDNldHhfdHlwZSA9IGRwODM2NDAtXFx1MDAzZWh3dHNfdHhfZW47XFxuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYy0xMjEzLVxcbi0tXFxuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYy0xMjE2LVxcbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmM6MTIxNzpzdGF0aWMgaW50IGRwODM2NDBfaHd0c3RhbXBfc2V0KHN0cnVjdCBtaWlfdGltZXN0YW1wZXIgKm1paV90cyxcXG5kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jLTEyMTgtXFx0XFx0XFx0XFx0c3RydWN0IGtlcm5lbF9od3RzdGFtcF9jb25maWcgKmNmZyxcXG4tLVxcbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmMtMTIyMC17XFxuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYzoxMjIxOlxcdHN0cnVjdCBkcDgzNjQwX3ByaXZhdGUgKmRwODM2NDAgPVxcbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmM6MTIyMjpcXHRcXHRjb250YWluZXJfb2YobWlpX3RzLCBzdHJ1Y3QgZHA4MzY0MF9wcml2YXRlLCBtaWlfdHMpO1xcbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmMtMTIyMy1cXHR1MTYgdHhjZmcwLCByeGNmZzA7XFxuLS1cXG5kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jLTEyMjctXFxuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYzoxMjI4OlxcdGRwODM2NDAtXFx1MDAzZWh3dHNfdHhfZW4gPSBjZmctXFx1MDAzZXR4X3R5cGU7XFxuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYy0xMjI5LVxcbi0tXFxuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYy0xMjMxLVxcdGNhc2UgSFdUU1RBTVBfRklMVEVSX05PTkU6XFxuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYzoxMjMyOlxcdFxcdGRwODM2NDAtXFx1MDAzZWh3dHNfcnhfZW4gPSAwO1xcbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmM6MTIzMzpcXHRcXHRkcDgzNjQwLVxcdTAwM2VsYXllciA9IDA7XFxuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYzoxMjM0OlxcdFxcdGRwODM2NDAtXFx1MDAzZXZlcnNpb24gPSAwO1xcbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmMtMTIzNS1cXHRcXHRicmVhaztcXG4tLVxcbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmMtMTIzOC1cXHRjYXNlIEhXVFNUQU1QX0ZJTFRFUl9QVFBfVjFfTDRfREVMQVlfUkVROlxcbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmM6MTIzOTpcXHRcXHRkcDgzNjQwLVxcdTAwM2Vod3RzX3J4X2VuID0gSFdUU1RBTVBfRklMVEVSX1BUUF9WMV9MNF9FVkVOVDtcXG5kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jOjEyNDA6XFx0XFx0ZHA4MzY0MC1cXHUwMDNlbGF5ZXIgPSBQVFBfQ0xBU1NfTDQ7XFxuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYzoxMjQxOlxcdFxcdGRwODM2NDAtXFx1MDAzZXZlcnNpb24gPSBQVFBfQ0xBU1NfVjE7XFxuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYy0xMjQyLVxcdFxcdGNmZy1cXHUwMDNlcnhfZmlsdGVyID0gSFdUU1RBTVBfRklMVEVSX1BUUF9WMV9MNF9FVkVOVDtcXG4tLVxcbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmMtMTI0Ni1cXHRjYXNlIEhXVFNUQU1QX0ZJTFRFUl9QVFBfVjJfTDRfREVMQVlfUkVROlxcbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmM6MTI0NzpcXHRcXHRkcDgzNjQwLVxcdTAwM2Vod3RzX3J4X2VuID0gSFdUU1RBTVBfRklMVEVSX1BUUF9WMl9MNF9FVkVOVDtcXG5kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jOjEyNDg6XFx0XFx0ZHA4MzY0MC1cXHUwMDNlbGF5ZXIgPSBQVFBfQ0xBU1NfTDQ7XFxuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYzoxMjQ5OlxcdFxcdGRwODM2NDAtXFx1MDAzZXZlcnNpb24gPSBQVFBfQ0xBU1NfVjI7XFxuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYy0xMjUwLVxcdFxcdGNmZy1cXHUwMDNlcnhfZmlsdGVyID0gSFdUU1RBTVBfRklMVEVSX1BUUF9WMl9MNF9FVkVOVDtcXG4tLVxcbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmMtMTI1NC1cXHRjYXNlIEhXVFNUQU1QX0ZJTFRFUl9QVFBfVjJfTDJfREVMQVlfUkVROlxcbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmM6MTI1NTpcXHRcXHRkcDgzNjQwLVxcdTAwM2Vod3RzX3J4X2VuID0gSFdUU1RBTVBfRklMVEVSX1BUUF9WMl9MMl9FVkVOVDtcXG5kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jOjEyNTY6XFx0XFx0ZHA4MzY0MC1cXHUwMDNlbGF5ZXIgPSBQVFBfQ0xBU1NfTDI7XFxuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYzoxMjU3OlxcdFxcdGRwODM2NDAtXFx1MDAzZXZlcnNpb24gPSBQVFBfQ0xBU1NfVjI7XFxuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYy0xMjU4LVxcdFxcdGNmZy1cXHUwMDNlcnhfZmlsdGVyID0gSFdUU1RBTVBfRklMVEVSX1BUUF9WMl9MMl9FVkVOVDtcXG4tLVxcbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmMtMTI2Mi1cXHRjYXNlIEhXVFNUQU1QX0ZJTFRFUl9QVFBfVjJfREVMQVlfUkVROlxcbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmM6MTI2MzpcXHRcXHRkcDgzNjQwLVxcdTAwM2Vod3RzX3J4X2VuID0gSFdUU1RBTVBfRklMVEVSX1BUUF9WMl9FVkVOVDtcXG5kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jOjEyNjQ6XFx0XFx0ZHA4MzY0MC1cXHUwMDNlbGF5ZXIgPSBQVFBfQ0xBU1NfTDQgfCBQVFBfQ0xBU1NfTDI7XFxuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYzoxMjY1OlxcdFxcdGRwODM2NDAtXFx1MDAzZXZlcnNpb24gPSBQVFBfQ0xBU1NfVjI7XFxuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYy0xMjY2LVxcdFxcdGNmZy1cXHUwMDNlcnhfZmlsdGVyID0gSFdUU1RBTVBfRklMVEVSX1BUUF9WMl9FVkVOVDtcXG4tLVxcbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmMtMTI3MS1cXG5kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jOjEyNzI6XFx0dHhjZmcwID0gKGRwODM2NDAtXFx1MDAzZXZlcnNpb24gXFx1MDAyNiBUWF9QVFBfVkVSX01BU0spIFxcdTAwM2NcXHUwMDNjIFRYX1BUUF9WRVJfU0hJRlQ7XFxuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYzoxMjczOlxcdHJ4Y2ZnMCA9IChkcDgzNjQwLVxcdTAwM2V2ZXJzaW9uIFxcdTAwMjYgVFhfUFRQX1ZFUl9NQVNLKSBcXHUwMDNjXFx1MDAzYyBUWF9QVFBfVkVSX1NISUZUO1xcbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmMtMTI3NC1cXG5kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jOjEyNzU6XFx0aWYgKGRwODM2NDAtXFx1MDAzZWxheWVyIFxcdTAwMjYgUFRQX0NMQVNTX0wyKSB7XFxuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYy0xMjc2LVxcdFxcdHR4Y2ZnMCB8PSBUWF9MMl9FTjtcXG4tLVxcbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmMtMTI3OC1cXHR9XFxuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYzoxMjc5OlxcdGlmIChkcDgzNjQwLVxcdTAwM2VsYXllciBcXHUwMDI2IFBUUF9DTEFTU19MNCkge1xcbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmMtMTI4MC1cXHRcXHR0eGNmZzAgfD0gVFhfSVBWNl9FTiB8IFRYX0lQVjRfRU47XFxuLS1cXG5kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jLTEyODMtXFxuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYzoxMjg0OlxcdGlmIChkcDgzNjQwLVxcdTAwM2Vod3RzX3R4X2VuKVxcbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmMtMTI4NS1cXHRcXHR0eGNmZzAgfD0gVFhfVFNfRU47XFxuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYy0xMjg2LVxcbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmM6MTI4NzpcXHRpZiAoZHA4MzY0MC1cXHUwMDNlaHd0c190eF9lbiA9PSBIV1RTVEFNUF9UWF9PTkVTVEVQX1NZTkMpXFxuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYy0xMjg4LVxcdFxcdHR4Y2ZnMCB8PSBTWU5DXzFTVEVQIHwgQ0hLXzFTVEVQO1xcbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmMtMTI4OS1cXG5kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jOjEyOTA6XFx0aWYgKGRwODM2NDAtXFx1MDAzZWh3dHNfcnhfZW4pXFxuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYy0xMjkxLVxcdFxcdHJ4Y2ZnMCB8PSBSWF9UU19FTjtcXG5kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jLTEyOTItXFxuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYzoxMjkzOlxcdG11dGV4X2xvY2soXFx1MDAyNmRwODM2NDAtXFx1MDAzZWNsb2NrLVxcdTAwM2VleHRyZWdfbG9jayk7XFxuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYy0xMjk0LVxcbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmM6MTI5NTpcXHRleHRfd3JpdGUoMCwgZHA4MzY0MC1cXHUwMDNlcGh5ZGV2LCBQQUdFNSwgUFRQX1RYQ0ZHMCwgdHhjZmcwKTtcXG5kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jOjEyOTY6XFx0ZXh0X3dyaXRlKDAsIGRwODM2NDAtXFx1MDAzZXBoeWRldiwgUEFHRTUsIFBUUF9SWENGRzAsIHJ4Y2ZnMCk7XFxuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYy0xMjk3LVxcbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmM6MTI5ODpcXHRtdXRleF91bmxvY2soXFx1MDAyNmRwODM2NDAtXFx1MDAzZWNsb2NrLVxcdTAwM2VleHRyZWdfbG9jayk7XFxuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYy0xMjk5LVxcbi0tXFxuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYz0xMzAzPXN0YXRpYyB2b2lkIHJ4X3RpbWVzdGFtcF93b3JrKHN0cnVjdCB3b3JrX3N0cnVjdCAqd29yaylcXG5kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jLTEzMDQte1xcbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmM6MTMwNTpcXHRzdHJ1Y3QgZHA4MzY0MF9wcml2YXRlICpkcDgzNjQwID1cXG5kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jOjEzMDY6XFx0XFx0Y29udGFpbmVyX29mKHdvcmssIHN0cnVjdCBkcDgzNjQwX3ByaXZhdGUsIHRzX3dvcmsud29yayk7XFxuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYy0xMzA3LVxcdHN0cnVjdCBza19idWZmICpza2I7XFxuLS1cXG5kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jLTEzMDktXFx0LyogRGVsaXZlciBleHBpcmVkIHBhY2tldHMuICovXFxuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYzoxMzEwOlxcdHdoaWxlICgoc2tiID0gc2tiX2RlcXVldWUoXFx1MDAyNmRwODM2NDAtXFx1MDAzZXJ4X3F1ZXVlKSkpIHtcXG5kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jOjEzMTE6XFx0XFx0c3RydWN0IGRwODM2NDBfc2tiX2luZm8gKnNrYl9pbmZvO1xcbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmMtMTMxMi1cXG5kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jOjEzMTM6XFx0XFx0c2tiX2luZm8gPSAoc3RydWN0IGRwODM2NDBfc2tiX2luZm8gKilza2ItXFx1MDAzZWNiO1xcbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmMtMTMxNC1cXHRcXHRpZiAoIXRpbWVfYWZ0ZXIoamlmZmllcywgc2tiX2luZm8tXFx1MDAzZXRtbykpIHtcXG5kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jOjEzMTU6XFx0XFx0XFx0c2tiX3F1ZXVlX2hlYWQoXFx1MDAyNmRwODM2NDAtXFx1MDAzZXJ4X3F1ZXVlLCBza2IpO1xcbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmMtMTMxNi1cXHRcXHRcXHRicmVhaztcXG4tLVxcbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmMtMTMyMS1cXG5kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jOjEzMjI6XFx0aWYgKCFza2JfcXVldWVfZW1wdHkoXFx1MDAyNmRwODM2NDAtXFx1MDAzZXJ4X3F1ZXVlKSlcXG5kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jOjEzMjM6XFx0XFx0c2NoZWR1bGVfZGVsYXllZF93b3JrKFxcdTAwMjZkcDgzNjQwLVxcdTAwM2V0c193b3JrLCBTS0JfVElNRVNUQU1QX1RJTUVPVVQpO1xcbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmMtMTMyNC19XFxuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYy0xMzI1LVxcbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmM6MTMyNjpzdGF0aWMgYm9vbCBkcDgzNjQwX3J4dHN0YW1wKHN0cnVjdCBtaWlfdGltZXN0YW1wZXIgKm1paV90cyxcXG5kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jLTEzMjctXFx0XFx0XFx0ICAgICBzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBpbnQgdHlwZSlcXG5kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jLTEzMjgte1xcbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmM6MTMyOTpcXHRzdHJ1Y3QgZHA4MzY0MF9wcml2YXRlICpkcDgzNjQwID1cXG5kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jOjEzMzA6XFx0XFx0Y29udGFpbmVyX29mKG1paV90cywgc3RydWN0IGRwODM2NDBfcHJpdmF0ZSwgbWlpX3RzKTtcXG5kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jOjEzMzE6XFx0c3RydWN0IGRwODM2NDBfc2tiX2luZm8gKnNrYl9pbmZvID0gKHN0cnVjdCBkcDgzNjQwX3NrYl9pbmZvICopc2tiLVxcdTAwM2VjYjtcXG5kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jLTEzMzItXFx0c3RydWN0IGxpc3RfaGVhZCAqdGhpcywgKm5leHQ7XFxuLS1cXG5kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jLTEzMzctXFx0aWYgKGlzX3N0YXR1c19mcmFtZShza2IsIHR5cGUpKSB7XFxuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYzoxMzM4OlxcdFxcdGRlY29kZV9zdGF0dXNfZnJhbWUoZHA4MzY0MCwgc2tiKTtcXG5kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jLTEzMzktXFx0XFx0a2ZyZWVfc2tiKHNrYik7XFxuLS1cXG5kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jLTEzNDItXFxuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYzoxMzQzOlxcdGlmICghZHA4MzY0MC1cXHUwMDNlaHd0c19yeF9lbilcXG5kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jLTEzNDQtXFx0XFx0cmV0dXJuIGZhbHNlO1xcbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmMtMTM0NS1cXG5kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jOjEzNDY6XFx0aWYgKCh0eXBlIFxcdTAwMjYgZHA4MzY0MC1cXHUwMDNldmVyc2lvbikgPT0gMCB8fCAodHlwZSBcXHUwMDI2IGRwODM2NDAtXFx1MDAzZWxheWVyKSA9PSAwKVxcbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmMtMTM0Ny1cXHRcXHRyZXR1cm4gZmFsc2U7XFxuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYy0xMzQ4LVxcbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmM6MTM0OTpcXHRzcGluX2xvY2tfaXJxc2F2ZShcXHUwMDI2ZHA4MzY0MC1cXHUwMDNlcnhfbG9jaywgZmxhZ3MpO1xcbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmM6MTM1MDpcXHRwcnVuZV9yeF90cyhkcDgzNjQwKTtcXG5kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jOjEzNTE6XFx0bGlzdF9mb3JfZWFjaF9zYWZlKHRoaXMsIG5leHQsIFxcdTAwMjZkcDgzNjQwLVxcdTAwM2VyeHRzKSB7XFxuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYy0xMzUyLVxcdFxcdHJ4dHMgPSBsaXN0X2VudHJ5KHRoaXMsIHN0cnVjdCByeHRzLCBsaXN0KTtcXG4tLVxcbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmMtMTM1Ny1cXHRcXHRcXHRsaXN0X2RlbF9pbml0KFxcdTAwMjZyeHRzLVxcdTAwM2VsaXN0KTtcXG5kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jOjEzNTg6XFx0XFx0XFx0bGlzdF9hZGQoXFx1MDAyNnJ4dHMtXFx1MDAzZWxpc3QsIFxcdTAwMjZkcDgzNjQwLVxcdTAwM2VyeHBvb2wpO1xcbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmMtMTM1OS1cXHRcXHRcXHRicmVhaztcXG4tLVxcbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmMtMTM2MS1cXHR9XFxuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYzoxMzYyOlxcdHNwaW5fdW5sb2NrX2lycXJlc3RvcmUoXFx1MDAyNmRwODM2NDAtXFx1MDAzZXJ4X2xvY2ssIGZsYWdzKTtcXG5kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jLTEzNjMtXFxuLS1cXG5kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jLTEzNjYtXFx0XFx0c2tiX2luZm8tXFx1MDAzZXRtbyA9IGppZmZpZXMgKyBTS0JfVElNRVNUQU1QX1RJTUVPVVQ7XFxuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYzoxMzY3OlxcdFxcdHNrYl9xdWV1ZV90YWlsKFxcdTAwMjZkcDgzNjQwLVxcdTAwM2VyeF9xdWV1ZSwgc2tiKTtcXG5kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jOjEzNjg6XFx0XFx0c2NoZWR1bGVfZGVsYXllZF93b3JrKFxcdTAwMjZkcDgzNjQwLVxcdTAwM2V0c193b3JrLCBTS0JfVElNRVNUQU1QX1RJTUVPVVQpO1xcbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmMtMTM2OS1cXHR9IGVsc2Uge1xcbi0tXFxuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYy0xMzc1LVxcbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmM6MTM3NjpzdGF0aWMgdm9pZCBkcDgzNjQwX3R4dHN0YW1wKHN0cnVjdCBtaWlfdGltZXN0YW1wZXIgKm1paV90cyxcXG5kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jLTEzNzctXFx0XFx0XFx0ICAgICBzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBpbnQgdHlwZSlcXG5kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jLTEzNzgte1xcbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmM6MTM3OTpcXHRzdHJ1Y3QgZHA4MzY0MF9za2JfaW5mbyAqc2tiX2luZm8gPSAoc3RydWN0IGRwODM2NDBfc2tiX2luZm8gKilza2ItXFx1MDAzZWNiO1xcbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmM6MTM4MDpcXHRzdHJ1Y3QgZHA4MzY0MF9wcml2YXRlICpkcDgzNjQwID1cXG5kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jOjEzODE6XFx0XFx0Y29udGFpbmVyX29mKG1paV90cywgc3RydWN0IGRwODM2NDBfcHJpdmF0ZSwgbWlpX3RzKTtcXG5kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jLTEzODItXFxuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYzoxMzgzOlxcdHN3aXRjaCAoZHA4MzY0MC1cXHUwMDNlaHd0c190eF9lbikge1xcbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmMtMTM4NC1cXG5cXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMjVUMDg6MTk6NTcuMDY1MTkwODkxWiIsIlNlcSI6NSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6ODgwMjY0Njg3NywiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipSZWFjaGluZyB0aGUgRFA4MzY0MCBQSFkgRHJpdmVyIHdpdGggU3l6a2FsbGVyKipcblxuT2theSwgc28gdGhlIGBkcDgzNjQwYCBkcml2ZXIgb25seSBnZXRzIGJ1aWx0IGlmIGBDT05GSUdfRFA4MzY0MF9QSFlgIGlzIGVuYWJsZWQuIEl0J3MgYSBQSFkgZHJpdmVyLCBzbyB0aGUga2V5IGlzIGZpZ3VyaW5nIG91dCBob3cgdG8gdHJpZ2dlciBgZHA4MzY0MF9wcm9iZWAgYW5kIGBkcDgzNjQwX3JlbW92ZWAuIENhbiBTeXprYWxsZXIgZG8gaXQ/XG5cbldlbGwsIHRoZW9yZXRpY2FsbHksIFN5emthbGxlciAqY291bGQqIHRyaWdnZXIgaXQgYnkgY3JlYXRpbmcgYSB2aXJ0dWFsIE1ESU8gYnVzIG9yIHVzaW5nIGEgbmV0ZGV2IHRoYXQgcmVnaXN0ZXJzIFBIWXMuIFRoZSBwcm9ibGVtIGlzLCBTeXprYWxsZXIgZG9lc24ndCBoYXZlIGEgZ2VuZXJpYyBNRElPIGJ1cyBlbXVsYXRvciB3aGVyZSBJIGNhbiBqdXN0IHNwZWNpZnkgYSBQSFkgYW5kIGhhdmUgaXQgcHJvYmVkLiBJIHdlbnQgdGhyb3VnaCB0aGUgYXZhaWxhYmxlIG5ldGRldiBvcHRpb25zIC0gYG1hYzgwMjExX2h3c2ltYCwgYG5ldGRldnNpbWAsIGB2aGNpYCwgYGR1bW15YCwgYHZldGhgLCBgdHVuYCwgYW5kIGB0YXBgIC0gbm9uZSBvZiB0aGVtIGV4cG9zZSBhIGRpcmVjdCBNRElPIGJ1cyBpbnRlcmZhY2UuIEkgZXZlbiBjaGVja2VkIGlmIHRoZXJlIHdhcyBzb21lIGBtZGlvLW1vY2t1cGAsIGJ1dCBub3RoaW5nLlxuXG5XaGF0IGFib3V0IGBtZGlvLWdwaW9gIG9yIGBtZGlvLWJpdGJhbmdgPyBDb3VsZCB0aGV5IGJlIGluc3RhbnRpYXRlZCB1c2luZyBkZXZpY2UgdHJlZSBvdmVybGF5cz8gTm8sIFN5emthbGxlciBkb2Vzbid0IHVzZSB0aG9zZS4gQ2FuIHVzZXJzcGFjZSBjcmVhdGUgYW4gTURJTyBidXMgZGlyZWN0bHk/IE1heWJlIHRocm91Z2ggYGkyY2AsIGBzcGlgLCBvciBgdXNiYD8gQXJlIHRoZXJlIGV2ZW4gVVNCIHRvIE1ESU8gYWRhcHRlcnM/IEl0IGRvZXNuJ3QgbG9vayBsaWtlIGl0LCBidXQgbWF5YmUgc29tZSBVU0IgbmV0d29yayBkcml2ZXJzIGV4cG9zZSBhbiBNRElPIGJ1cz9cblxuQWhhISBNYXliZSBpZiBJIGVtdWxhdGUgYSBVU0IgbmV0d29yayBhZGFwdGVyIHVzaW5nIGBkdW1teV9oY2RgICh2aGNpKSBzdWNoIGFzIGBzbXNjOTV4eGAgb3IgYGFzaXhgLCBpdCBjb3VsZCByZWdpc3RlciBhbiBNRElPIGJ1cy4gVGhlbiwgd2hlbiB0aGUgTURJTyBidXMgZ2V0cyByZWdpc3RlcmVkLCBpdCBzY2FucyBmb3IgUEhZcy4gSWYgdGhlIGVtdWxhdGVkIFVTQiBkZXZpY2UgKnJldHVybnMqIHRoZSBEUDgzNjQwIFBIWSBJRCAoYDB4MjAwMDVjZTFgKSBkdXJpbmcgdGhlIE1ESU8gcmVhZCBvZiByZWdpc3RlcnMgMiBhbmQgMywgdGhlIE1ESU8gYnVzIHdpbGwgbWF0Y2ggaXQgd2l0aCBgZHA4MzY0MF9kcml2ZXJgIGFuZCBjYWxsIGBkcDgzNjQwX3Byb2JlYC5cblxuWWVzISBTeXprYWxsZXIncyBVU0IgZnV6emVyLCB2aGNpLCBjYW4gZGVmaW5pdGVseSBlbXVsYXRlIGEgbmV0d29yayBkZXZpY2UgdGhhdCBleHBvc2VzIGFuIE1ESU8gYnVzLiBBbmQgaXQgY2FuIHJldHVybiBhcmJpdHJhcnkgUEhZIElEcy4gVGhhdCdzIHRoZSBrZXkuIFNvLCB0aGUgYGRwODM2NDBfcHJvYmVgIGFuZCBgZHA4MzY0MF9yZW1vdmVgIGVudHJ5IHBvaW50cyBhcmUgZGVmaW5pdGVseSByZWFjaGFibGUgdGhyb3VnaCBVU0IgZW11bGF0aW9uLiBUaGlzIG5lZWRzIHRvIGJlIHZlcmlmaWVkLlxuXG5cbiIsIklucHV0VG9rZW5zIjoxODQzMSwiT3V0cHV0VG9rZW5zIjoxOSwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjQ5NywiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0yNVQwODoyMDowNS44Njc4NDA5MjhaIiwiU2VxIjo2LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MjEyMTgxNjMwNiwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJtZGlvYnVzX3JlZ2lzdGVyXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcIlxcbkZ1bGwgb3V0cHV0IGlzIHRvbyBsb25nLCBzaG93aW5nIDUwMCBvdXQgb2YgMTEyNyBsaW5lcy5cXG5Vc2UgbW9yZSBwcmVjaXNlIGV4cHJlc3Npb24gaWYgcG9zc2libGUuXFxuXFxuRG9jdW1lbnRhdGlvbi9kcml2ZXItYXBpL2RyaXZlci1tb2RlbC9kZXZyZXMucnN0PTM0OD1NRElPXFxuLS1cXG5Eb2N1bWVudGF0aW9uL2RyaXZlci1hcGkvZHJpdmVyLW1vZGVsL2RldnJlcy5yc3QtMzUwLSAgZGV2bV9tZGlvYnVzX2FsbG9jX3NpemUoKVxcbkRvY3VtZW50YXRpb24vZHJpdmVyLWFwaS9kcml2ZXItbW9kZWwvZGV2cmVzLnJzdDozNTE6ICBkZXZtX21kaW9idXNfcmVnaXN0ZXIoKVxcbkRvY3VtZW50YXRpb24vZHJpdmVyLWFwaS9kcml2ZXItbW9kZWwvZGV2cmVzLnJzdDozNTI6ICBkZXZtX29mX21kaW9idXNfcmVnaXN0ZXIoKVxcbkRvY3VtZW50YXRpb24vZHJpdmVyLWFwaS9kcml2ZXItbW9kZWwvZGV2cmVzLnJzdC0zNTMtXFxuLS1cXG5Eb2N1bWVudGF0aW9uL2Zpcm13YXJlLWd1aWRlL2FjcGkvZHNkL21vdG9yY29tbS15dDh4eHgtcGh5LnJzdD0xMj1kZXZpY2UgKHRoZSBzYW1lIG9iamVjdHMgdGhhdCBhcmUgcmVnaXN0ZXJlZCB2aWFcXG5Eb2N1bWVudGF0aW9uL2Zpcm13YXJlLWd1aWRlL2FjcGkvZHNkL21vdG9yY29tbS15dDh4eHgtcGh5LnJzdDoxMzpgYGZ3bm9kZV9tZGlvYnVzX3JlZ2lzdGVyX3BoeSgpYGApLiBNQUMtc2lkZSBjb25uZWN0aW9uIHByb3BlcnRpZXMgc3VjaCBhc1xcbkRvY3VtZW50YXRpb24vZmlybXdhcmUtZ3VpZGUvYWNwaS9kc2QvbW90b3Jjb21tLXl0OHh4eC1waHkucnN0LTE0LWBgcGh5LWhhbmRsZWBgIGFuZCBgYHBoeS1tb2RlYGAgYXJlIGRvY3VtZW50ZWQgaW4gW2FjcGktbWRpby1waHldXy5cXG4tLVxcbkRvY3VtZW50YXRpb24vZmlybXdhcmUtZ3VpZGUvYWNwaS9kc2QvcGh5LnJzdD03PVRoZSBQSFlzIG9uIGFuIE1ESU8gYnVzIFtwaHldIGFyZSBwcm9iZWQgYW5kIHJlZ2lzdGVyZWQgdXNpbmdcXG5Eb2N1bWVudGF0aW9uL2Zpcm13YXJlLWd1aWRlL2FjcGkvZHNkL3BoeS5yc3Q6ODpmd25vZGVfbWRpb2J1c19yZWdpc3Rlcl9waHkoKS5cXG5Eb2N1bWVudGF0aW9uL2Zpcm13YXJlLWd1aWRlL2FjcGkvZHNkL3BoeS5yc3QtOS1cXG4tLVxcbkRvY3VtZW50YXRpb24vbmV0d29ya2luZy9waHkucnN0PTQwPXJlZ2lzdGVyZWQgYXMgYSBkaXN0aW5jdCBkZXZpY2UuXFxuLS1cXG5Eb2N1bWVudGF0aW9uL25ldHdvcmtpbmcvcGh5LnJzdC01Ni0gICBkcml2ZXIgbmVlZHMsIHNldHVwIHRoZSBtaWlfYnVzIHN0cnVjdHVyZSwgYW5kIHJlZ2lzdGVyIHdpdGggdGhlIFBBTCB1c2luZ1xcbkRvY3VtZW50YXRpb24vbmV0d29ya2luZy9waHkucnN0OjU3OiAgIG1kaW9idXNfcmVnaXN0ZXIuICBTaW1pbGFybHksIHRoZXJlJ3MgYSByZW1vdmUgZnVuY3Rpb24gdG8gdW5kbyBhbGwgb2ZcXG5Eb2N1bWVudGF0aW9uL25ldHdvcmtpbmcvcGh5LnJzdC01OC0gICB0aGF0ICh1c2UgbWRpb2J1c191bnJlZ2lzdGVyKS5cXG4tLVxcbmFyY2gvcG93ZXJwYy9wbGF0Zm9ybXMvODJ4eC9lcDgyNDhlLmM9MTA5PXN0YXRpYyBpbnQgZXA4MjQ4ZV9tZGlvX3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKm9mZGV2KVxcbi0tXFxuYXJjaC9wb3dlcnBjL3BsYXRmb3Jtcy84Mnh4L2VwODI0OGUuYy0xMzItXFxuYXJjaC9wb3dlcnBjL3BsYXRmb3Jtcy84Mnh4L2VwODI0OGUuYzoxMzM6XFx0cmV0ID0gb2ZfbWRpb2J1c19yZWdpc3RlcihidXMsIG9mZGV2LVxcdTAwM2VkZXYub2Zfbm9kZSk7XFxuYXJjaC9wb3dlcnBjL3BsYXRmb3Jtcy84Mnh4L2VwODI0OGUuYy0xMzQtXFx0aWYgKHJldClcXG4tLVxcbmFyY2gvcG93ZXJwYy9wbGF0Zm9ybXMvcGFzZW1pL2dwaW9fbWRpby5jPTIwNz1zdGF0aWMgaW50IGdwaW9fbWRpb19wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpvZmRldilcXG4tLVxcbmFyY2gvcG93ZXJwYy9wbGF0Zm9ybXMvcGFzZW1pL2dwaW9fbWRpby5jLTI0My1cXG5hcmNoL3Bvd2VycGMvcGxhdGZvcm1zL3Bhc2VtaS9ncGlvX21kaW8uYzoyNDQ6XFx0ZXJyID0gb2ZfbWRpb2J1c19yZWdpc3RlcihuZXdfYnVzLCBucCk7XFxuYXJjaC9wb3dlcnBjL3BsYXRmb3Jtcy9wYXNlbWkvZ3Bpb19tZGlvLmMtMjQ1LVxcbi0tXFxuZHJpdmVycy9uZXQvZHNhL2JjbV9zZjIuYz02MDc9c3RhdGljIGludCBiY21fc2YyX21kaW9fcmVnaXN0ZXIoc3RydWN0IGRzYV9zd2l0Y2ggKmRzKVxcbi0tXFxuZHJpdmVycy9uZXQvZHNhL2JjbV9zZjIuYy02ODMtXFxuZHJpdmVycy9uZXQvZHNhL2JjbV9zZjIuYzo2ODQ6XFx0ZXJyID0gbWRpb2J1c19yZWdpc3Rlcihwcml2LVxcdTAwM2V1c2VyX21paV9idXMpO1xcbmRyaXZlcnMvbmV0L2RzYS9iY21fc2YyLmMtNjg1LVxcdGlmIChlcnIpXFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcF9jb21tb24uYz0xODc9c3RhdGljIGludCBnc3dpcF9tZGlvKHN0cnVjdCBnc3dpcF9wcml2ICpwcml2KVxcbi0tXFxuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXBfY29tbW9uLmMtMjEzLVxcbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwX2NvbW1vbi5jOjIxNDpcXHRlcnIgPSBkZXZtX29mX21kaW9idXNfcmVnaXN0ZXIoZGV2LCBidXMsIG1kaW9fbnApO1xcbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwX2NvbW1vbi5jLTIxNS1cXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9taWNyb2NoaXAva3N6OTQ3Ny5jPTMxNT1zdGF0aWMgaW50IGtzejk0NzdfcGNzX2NyZWF0ZShzdHJ1Y3Qga3N6X2RldmljZSAqZGV2KVxcbi0tXFxuZHJpdmVycy9uZXQvZHNhL21pY3JvY2hpcC9rc3o5NDc3LmMtMzM1LVxcbmRyaXZlcnMvbmV0L2RzYS9taWNyb2NoaXAva3N6OTQ3Ny5jOjMzNjpcXHRyZXQgPSBkZXZtX21kaW9idXNfcmVnaXN0ZXIoZGV2LVxcdTAwM2VkZXYsIGJ1cyk7XFxuZHJpdmVycy9uZXQvZHNhL21pY3JvY2hpcC9rc3o5NDc3LmMtMzM3LVxcdGlmIChyZXQpXFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvbWljcm9jaGlwL2tzel9jb21tb24uYz0yNDg0PWludCBrc3pfbWRpb19yZWdpc3RlcihzdHJ1Y3Qga3N6X2RldmljZSAqZGV2KVxcbi0tXFxuZHJpdmVycy9uZXQvZHNhL21pY3JvY2hpcC9rc3pfY29tbW9uLmMtMjU1NS1cXG5kcml2ZXJzL25ldC9kc2EvbWljcm9jaGlwL2tzel9jb21tb24uYzoyNTU2OlxcdHJldCA9IGRldm1fb2ZfbWRpb2J1c19yZWdpc3Rlcihkcy1cXHUwMDNlZGV2LCBidXMsIG1kaW9fbnApO1xcbmRyaXZlcnMvbmV0L2RzYS9taWNyb2NoaXAva3N6X2NvbW1vbi5jLTI1NTctXFx0aWYgKHJldCkge1xcbi0tXFxuZHJpdmVycy9uZXQvZHNhL21pY3JvY2hpcC9sYW45Mzd4X21haW4uYz02ODU9c3RhdGljIGludCBsYW45Mzd4X21kaW9fcmVnaXN0ZXIoc3RydWN0IGtzel9kZXZpY2UgKmRldilcXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9taWNyb2NoaXAvbGFuOTM3eF9tYWluLmMtNzU1LVxcbmRyaXZlcnMvbmV0L2RzYS9taWNyb2NoaXAvbGFuOTM3eF9tYWluLmM6NzU2OlxcdHJldCA9IGRldm1fb2ZfbWRpb2J1c19yZWdpc3Rlcihkcy1cXHUwMDNlZGV2LCBidXMsIG1kaW9fbnApO1xcbmRyaXZlcnMvbmV0L2RzYS9taWNyb2NoaXAvbGFuOTM3eF9tYWluLmMtNzU3LVxcdGlmIChyZXQpXFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvbXQ3NTMwLmM9MjM3MT1tdDc1MzBfc2V0dXBfbWRpbyhzdHJ1Y3QgbXQ3NTMwX3ByaXYgKnByaXYpXFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvbXQ3NTMwLmMtMjQwNi1cXG5kcml2ZXJzL25ldC9kc2EvbXQ3NTMwLmM6MjQwNzpcXHRyZXQgPSBkZXZtX29mX21kaW9idXNfcmVnaXN0ZXIoZGV2LCBidXMsIG1ucCk7XFxuZHJpdmVycy9uZXQvZHNhL210NzUzMC5jLTI0MDgtXFx0aWYgKHJldCkge1xcbi0tXFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmM9MzgzND1zdGF0aWMgaW50IG12ODhlNnh4eF9tZGlvX3JlZ2lzdGVyKHN0cnVjdCBtdjg4ZTZ4eHhfY2hpcCAqY2hpcCxcXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTM4ODctXFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmM6Mzg4ODpcXHRlcnIgPSBvZl9tZGlvYnVzX3JlZ2lzdGVyKGJ1cywgbnApO1xcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTM4ODktXFx0aWYgKGVycikge1xcbi0tXFxuZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L214bDg2Mnh4LmM9MjY3PXN0YXRpYyBpbnQgbXhsODYyeHhfc2V0dXBfbWRpbyhzdHJ1Y3QgZHNhX3N3aXRjaCAqZHMpXFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHguYy0yOTItXFxuZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L214bDg2Mnh4LmM6MjkzOlxcdHJldCA9IGRldm1fb2ZfbWRpb2J1c19yZWdpc3RlcihkZXYsIGJ1cywgbWRpb19ucCk7XFxuZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L214bDg2Mnh4LmMtMjk0LVxcdG9mX25vZGVfcHV0KG1kaW9fbnApO1xcbi0tXFxuZHJpdmVycy9uZXQvZHNhL25ldGMvbmV0Y19tYWluLmM9MTQ5PXN0YXRpYyBpbnQgbmV0Y19wb3J0X2NyZWF0ZV9lbWRpb19idXMoc3RydWN0IG5ldGNfcG9ydCAqbnAsXFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvbmV0Yy9uZXRjX21haW4uYy0xNzktXFxuZHJpdmVycy9uZXQvZHNhL25ldGMvbmV0Y19tYWluLmM6MTgwOlxcdGVyciA9IGRldm1fb2ZfbWRpb2J1c19yZWdpc3RlcihkZXYsIGJ1cywgbm9kZSk7XFxuZHJpdmVycy9uZXQvZHNhL25ldGMvbmV0Y19tYWluLmMtMTgxLVxcdGlmIChlcnIpXFxuLS1cXG5kcml2ZXJzL25ldC9kc2Evb2NlbG90L2ZlbGl4X3ZzYzk5NTkuYz05NTc9c3RhdGljIGludCB2c2M5OTU5X21kaW9fYnVzX2FsbG9jKHN0cnVjdCBvY2Vsb3QgKm9jZWxvdClcXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9vY2Vsb3QvZmVsaXhfdnNjOTk1OS5jLTEwMTMtXFx0LyogTmVlZGVkIGluIG9yZGVyIHRvIGluaXRpYWxpemUgdGhlIGJ1cyBtdXRleCBsb2NrICovXFxuZHJpdmVycy9uZXQvZHNhL29jZWxvdC9mZWxpeF92c2M5OTU5LmM6MTAxNDpcXHRyYyA9IG1kaW9idXNfcmVnaXN0ZXIoYnVzKTtcXG5kcml2ZXJzL25ldC9kc2Evb2NlbG90L2ZlbGl4X3ZzYzk5NTkuYy0xMDE1LVxcdGlmIChyYyBcXHUwMDNjIDApIHtcXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9vY2Vsb3Qvc2V2aWxsZV92c2M5OTUzLmM9ODc4PXN0YXRpYyBpbnQgdnNjOTk1M19tZGlvX2J1c19hbGxvYyhzdHJ1Y3Qgb2NlbG90ICpvY2Vsb3QpXFxuLS1cXG5kcml2ZXJzL25ldC9kc2Evb2NlbG90L3NldmlsbGVfdnNjOTk1My5jLTkwMy1cXHQvKiBOZWVkZWQgaW4gb3JkZXIgdG8gaW5pdGlhbGl6ZSB0aGUgYnVzIG11dGV4IGxvY2sgKi9cXG5kcml2ZXJzL25ldC9kc2Evb2NlbG90L3NldmlsbGVfdnNjOTk1My5jOjkwNDpcXHRyYyA9IGRldm1fb2ZfbWRpb2J1c19yZWdpc3RlcihkZXYsIGJ1cywgTlVMTCk7XFxuZHJpdmVycy9uZXQvZHNhL29jZWxvdC9zZXZpbGxlX3ZzYzk5NTMuYy05MDUtXFx0aWYgKHJjIFxcdTAwM2MgMCkge1xcbi0tXFxuZHJpdmVycy9uZXQvZHNhL3FjYS9hcjkzMzEuYz0zNTc9c3RhdGljIGludCBhcjkzMzFfc3dfbWJ1c19pbml0KHN0cnVjdCBhcjkzMzFfc3dfcHJpdiAqcHJpdilcXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9xY2EvYXI5MzMxLmMtMzgxLVxcbmRyaXZlcnMvbmV0L2RzYS9xY2EvYXI5MzMxLmM6MzgyOlxcdHJldCA9IGRldm1fb2ZfbWRpb2J1c19yZWdpc3RlcihkZXYsIG1idXMsIG1ucCk7XFxuZHJpdmVycy9uZXQvZHNhL3FjYS9hcjkzMzEuYy0zODMtXFx0b2Zfbm9kZV9wdXQobW5wKTtcXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9xY2EvcWNhOGstOHh4eC5jPTk0Nz1xY2E4a19tZGlvX3JlZ2lzdGVyKHN0cnVjdCBxY2E4a19wcml2ICpwcml2KVxcbi0tXFxuZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay04eHh4LmMtOTg2LVxcbmRyaXZlcnMvbmV0L2RzYS9xY2EvcWNhOGstOHh4eC5jOjk4NzpcXHRyZXQgPSBkZXZtX29mX21kaW9idXNfcmVnaXN0ZXIoZGV2LCBidXMsIG1kaW8pO1xcbmRyaXZlcnMvbmV0L2RzYS9xY2EvcWNhOGstOHh4eC5jLTk4OC1cXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzeHguYz03ND1pbnQgcnRsODN4eF9zZXR1cF91c2VyX21kaW8oc3RydWN0IGRzYV9zd2l0Y2ggKmRzKVxcbi0tXFxuZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcnRsODN4eC5jLTk5LVxcbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzeHguYzoxMDA6XFx0cmV0ID0gZGV2bV9vZl9tZGlvYnVzX3JlZ2lzdGVyKHByaXYtXFx1MDAzZWRldiwgYnVzLCBtZGlvX25wKTtcXG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4M3h4LmMtMTAxLVxcdGlmIChyZXQpIHtcXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9yem4xX2E1cHN3LmM9MTExNz1zdGF0aWMgaW50IGE1cHN3X3Byb2JlX21kaW8oc3RydWN0IGE1cHN3ICphNXBzdywgc3RydWN0IGRldmljZV9ub2RlICpub2RlKVxcbi0tXFxuZHJpdmVycy9uZXQvZHNhL3J6bjFfYTVwc3cuYy0xMTQzLVxcbmRyaXZlcnMvbmV0L2RzYS9yem4xX2E1cHN3LmM6MTE0NDpcXHRyZXR1cm4gZGV2bV9vZl9tZGlvYnVzX3JlZ2lzdGVyKGRldiwgYnVzLCBub2RlKTtcXG5kcml2ZXJzL25ldC9kc2EvcnpuMV9hNXBzdy5jLTExNDUtfVxcbi0tXFxuZHJpdmVycy9uZXQvZHNhL3NqYTExMDUvc2phMTEwNS5oPTMwNz12b2lkIHNqYTExMDVfZnJhbWVfbWVtb3J5X3BhcnRpdGlvbmluZyhzdHJ1Y3Qgc2phMTEwNV9wcml2YXRlICpwcml2KTtcXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9zamExMTA1L3NqYTExMDUuaC0zMDktLyogRnJvbSBzamExMTA1X21kaW8uYyAqL1xcbmRyaXZlcnMvbmV0L2RzYS9zamExMTA1L3NqYTExMDUuaDozMTA6aW50IHNqYTExMDVfbWRpb2J1c19yZWdpc3RlcihzdHJ1Y3QgZHNhX3N3aXRjaCAqZHMpO1xcbmRyaXZlcnMvbmV0L2RzYS9zamExMTA1L3NqYTExMDUuaC0zMTEtdm9pZCBzamExMTA1X21kaW9idXNfdW5yZWdpc3RlcihzdHJ1Y3QgZHNhX3N3aXRjaCAqZHMpO1xcbi0tXFxuZHJpdmVycy9uZXQvZHNhL3NqYTExMDUvc2phMTEwNV9tYWluLmM9MzAyNj1zdGF0aWMgaW50IHNqYTExMDVfc2V0dXAoc3RydWN0IGRzYV9zd2l0Y2ggKmRzKVxcbi0tXFxuZHJpdmVycy9uZXQvZHNhL3NqYTExMDUvc2phMTEwNV9tYWluLmMtMzA2Ny1cXG5kcml2ZXJzL25ldC9kc2Evc2phMTEwNS9zamExMTA1X21haW4uYzozMDY4OlxcdHJjID0gc2phMTEwNV9tZGlvYnVzX3JlZ2lzdGVyKGRzKTtcXG5kcml2ZXJzL25ldC9kc2Evc2phMTEwNS9zamExMTA1X21haW4uYy0zMDY5LVxcdGlmIChyYyBcXHUwMDNjIDApIHtcXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9zamExMTA1L3NqYTExMDVfbWRpby5jPTI1OD1zdGF0aWMgaW50IHNqYTExMDVfbWRpb2J1c19iYXNlX3R4X3JlZ2lzdGVyKHN0cnVjdCBzamExMTA1X3ByaXZhdGUgKnByaXYsXFxuLS1cXG5kcml2ZXJzL25ldC9kc2Evc2phMTEwNS9zamExMTA1X21kaW8uYy0yODctXFxuZHJpdmVycy9uZXQvZHNhL3NqYTExMDUvc2phMTEwNV9tZGlvLmM6Mjg4OlxcdHJjID0gb2ZfbWRpb2J1c19yZWdpc3RlcihidXMsIG5wKTtcXG5kcml2ZXJzL25ldC9kc2Evc2phMTEwNS9zamExMTA1X21kaW8uYy0yODktXFx0aWYgKHJjKSB7XFxuLS1cXG5kcml2ZXJzL25ldC9kc2Evc2phMTEwNS9zamExMTA1X21kaW8uYz0zMTI9c3RhdGljIGludCBzamExMTA1X21kaW9idXNfYmFzZV90MV9yZWdpc3RlcihzdHJ1Y3Qgc2phMTEwNV9wcml2YXRlICpwcml2LFxcbi0tXFxuZHJpdmVycy9uZXQvZHNhL3NqYTExMDUvc2phMTEwNV9tZGlvLmMtMzQzLVxcbmRyaXZlcnMvbmV0L2RzYS9zamExMTA1L3NqYTExMDVfbWRpby5jOjM0NDpcXHRyYyA9IG9mX21kaW9idXNfcmVnaXN0ZXIoYnVzLCBucCk7XFxuZHJpdmVycy9uZXQvZHNhL3NqYTExMDUvc2phMTEwNV9tZGlvLmMtMzQ1LVxcdGlmIChyYykge1xcbi0tXFxuZHJpdmVycy9uZXQvZHNhL3NqYTExMDUvc2phMTEwNV9tZGlvLmM9MzY4PXN0YXRpYyBpbnQgc2phMTEwNV9tZGlvYnVzX3Bjc19yZWdpc3RlcihzdHJ1Y3Qgc2phMTEwNV9wcml2YXRlICpwcml2KVxcbi0tXFxuZHJpdmVycy9uZXQvZHNhL3NqYTExMDUvc2phMTEwNV9tZGlvLmMtMzk1LVxcbmRyaXZlcnMvbmV0L2RzYS9zamExMTA1L3NqYTExMDVfbWRpby5jOjM5NjpcXHRyYyA9IG1kaW9idXNfcmVnaXN0ZXIoYnVzKTtcXG5kcml2ZXJzL25ldC9kc2Evc2phMTEwNS9zamExMTA1X21kaW8uYy0zOTctXFx0aWYgKHJjKSB7XFxuLS1cXG5kcml2ZXJzL25ldC9kc2Evc2phMTEwNS9zamExMTA1X21kaW8uYz00Mzk9c3RhdGljIHZvaWQgc2phMTEwNV9tZGlvYnVzX3Bjc191bnJlZ2lzdGVyKHN0cnVjdCBzamExMTA1X3ByaXZhdGUgKnByaXYpXFxuLS1cXG5kcml2ZXJzL25ldC9kc2Evc2phMTEwNS9zamExMTA1X21kaW8uYy00NTgtXFxuZHJpdmVycy9uZXQvZHNhL3NqYTExMDUvc2phMTEwNV9tZGlvLmM6NDU5OmludCBzamExMTA1X21kaW9idXNfcmVnaXN0ZXIoc3RydWN0IGRzYV9zd2l0Y2ggKmRzKVxcbmRyaXZlcnMvbmV0L2RzYS9zamExMTA1L3NqYTExMDVfbWRpby5jLTQ2MC17XFxuLS1cXG5kcml2ZXJzL25ldC9kc2EveXQ5MjF4LmM9NTk1PXl0OTIxeF9tYnVzX2ludF9pbml0KHN0cnVjdCB5dDkyMXhfcHJpdiAqcHJpdiwgc3RydWN0IGRldmljZV9ub2RlICptbnApXFxuLS1cXG5kcml2ZXJzL25ldC9kc2EveXQ5MjF4LmMtNjEyLVxcbmRyaXZlcnMvbmV0L2RzYS95dDkyMXguYzo2MTM6XFx0cmVzID0gZGV2bV9vZl9tZGlvYnVzX3JlZ2lzdGVyKGRldiwgbWJ1cywgbW5wKTtcXG5kcml2ZXJzL25ldC9kc2EveXQ5MjF4LmMtNjE0LVxcdGlmIChyZXMpXFxuLS1cXG5kcml2ZXJzL25ldC9kc2EveXQ5MjF4LmM9NzI2PXl0OTIxeF9tYnVzX2V4dF9pbml0KHN0cnVjdCB5dDkyMXhfcHJpdiAqcHJpdiwgc3RydWN0IGRldmljZV9ub2RlICptbnApXFxuLS1cXG5kcml2ZXJzL25ldC9kc2EveXQ5MjF4LmMtNzQzLVxcbmRyaXZlcnMvbmV0L2RzYS95dDkyMXguYzo3NDQ6XFx0cmVzID0gZGV2bV9vZl9tZGlvYnVzX3JlZ2lzdGVyKGRldiwgbWJ1cywgbW5wKTtcXG5kcml2ZXJzL25ldC9kc2EveXQ5MjF4LmMtNzQ1LVxcdGlmIChyZXMpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC84MzkwL2F4ODg3OTYuYz00NTk9c3RhdGljIGludCBheF9taWlfaW5pdChzdHJ1Y3QgbmV0X2RldmljZSAqZGV2KVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvODM5MC9heDg4Nzk2LmMtNDc4LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0LzgzOTAvYXg4ODc5Ni5jOjQ3OTpcXHRlcnIgPSBtZGlvYnVzX3JlZ2lzdGVyKGF4LVxcdTAwM2VtaWlfYnVzKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC84MzkwL2F4ODg3OTYuYy00ODAtXFx0aWYgKGVycilcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FjdGlvbnMvb3dsLWVtYWMuYz0xMzIxPXN0YXRpYyBpbnQgb3dsX2VtYWNfbWRpb19pbml0KHN0cnVjdCBuZXRfZGV2aWNlICpuZXRkZXYpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hY3Rpb25zL293bC1lbWFjLmMtMTM0NS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hY3Rpb25zL293bC1lbWFjLmM6MTM0NjpcXHRyZXQgPSBkZXZtX29mX21kaW9idXNfcmVnaXN0ZXIoZGV2LCBwcml2LVxcdTAwM2VtaWksIG1kaW9fbm9kZSk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWN0aW9ucy9vd2wtZW1hYy5jLTEzNDctXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hZGkvYWRpbjExMTAuYz01MDk9c3RhdGljIGludCBhZGluMTExMF9yZWdpc3Rlcl9tZGlvYnVzKHN0cnVjdCBhZGluMTExMF9wcml2ICpwcml2LFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWRpL2FkaW4xMTEwLmMtNTI5LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FkaS9hZGluMTExMC5jOjUzMDpcXHRyZXQgPSBkZXZtX21kaW9idXNfcmVnaXN0ZXIoZGV2LCBtaWlfYnVzKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hZGkvYWRpbjExMTAuYy01MzEtXFx0aWYgKHJldClcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Flcm9mbGV4L2dyZXRoLmM9MTI5MD1zdGF0aWMgaW50IGdyZXRoX21kaW9faW5pdChzdHJ1Y3QgZ3JldGhfcHJpdmF0ZSAqZ3JldGgpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hZXJvZmxleC9ncmV0aC5jLTEzMDYtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWVyb2ZsZXgvZ3JldGguYzoxMzA3OlxcdHJldCA9IG1kaW9idXNfcmVnaXN0ZXIoZ3JldGgtXFx1MDAzZW1kaW8pO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Flcm9mbGV4L2dyZXRoLmMtMTMwOC1cXHRpZiAocmV0KSB7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hZ2VyZS9ldDEzMXguYz0zOTMxPXN0YXRpYyBpbnQgZXQxMzF4X3BjaV9zZXR1cChzdHJ1Y3QgcGNpX2RldiAqcGRldixcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FnZXJlL2V0MTMxeC5jLTQwMjYtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWdlcmUvZXQxMzF4LmM6NDAyNzpcXHRyYyA9IG1kaW9idXNfcmVnaXN0ZXIoYWRhcHRlci1cXHUwMDNlbWlpX2J1cyk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWdlcmUvZXQxMzF4LmMtNDAyOC1cXHRpZiAocmMgXFx1MDAzYyAwKSB7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hbHRlcmEvYWx0ZXJhX3RzZV9tYWluLmM9MTIxPXN0YXRpYyBpbnQgYWx0ZXJhX3RzZV9tZGlvX2NyZWF0ZShzdHJ1Y3QgbmV0X2RldmljZSAqZGV2LCB1bnNpZ25lZCBpbnQgaWQpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hbHRlcmEvYWx0ZXJhX3RzZV9tYWluLmMtMTU3LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FsdGVyYS9hbHRlcmFfdHNlX21haW4uYzoxNTg6XFx0cmV0ID0gb2ZfbWRpb2J1c19yZWdpc3RlcihtZGlvLCBtZGlvX25vZGUpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FsdGVyYS9hbHRlcmFfdHNlX21haW4uYy0xNTktXFx0aWYgKHJldCAhPSAwKSB7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQvYXUxMDAwX2V0aC5jPTEwNjE9c3RhdGljIGludCBhdTEwMDBfcHJvYmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldilcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC9hdTEwMDBfZXRoLmMtMTIyMS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQvYXUxMDAwX2V0aC5jOjEyMjI6XFx0ZXJyID0gbWRpb2J1c19yZWdpc3RlcihhdXAtXFx1MDAzZW1paV9idXMpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC9hdTEwMDBfZXRoLmMtMTIyMy1cXHRpZiAoZXJyKSB7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQveGdiZS94Z2JlLXBoeS12Mi5jPTM0Mjg9c3RhdGljIGludCB4Z2JlX3BoeV9pbml0KHN0cnVjdCB4Z2JlX3Bydl9kYXRhICpwZGF0YSlcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC94Z2JlL3hnYmUtcGh5LXYyLmMtMzcxNy1cXHRzbnByaW50ZihtaWktXFx1MDAzZWlkLCBzaXplb2YobWlpLVxcdTAwM2VpZCksIFxcXCIlc1xcXCIsIGRldl9uYW1lKHBkYXRhLVxcdTAwM2VkZXYpKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQveGdiZS94Z2JlLXBoeS12Mi5jOjM3MTg6XFx0cmV0ID0gbWRpb2J1c19yZWdpc3RlcihtaWkpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC94Z2JlL3hnYmUtcGh5LXYyLmMtMzcxOS1cXHRpZiAocmV0KSB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYW1kL3hnYmUveGdiZS1waHktdjIuYzozNzIwOlxcdFxcdGRldl9lcnIocGRhdGEtXFx1MDAzZWRldiwgXFxcIm1kaW9idXNfcmVnaXN0ZXIgZmFpbGVkXFxcXG5cXFwiKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQveGdiZS94Z2JlLXBoeS12Mi5jLTM3MjEtXFx0XFx0cmV0dXJuIHJldDtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FwbS94Z2VuZS12Mi9tZGlvLmM9OTg9aW50IHhnZV9tZGlvX2NvbmZpZyhzdHJ1Y3QgbmV0X2RldmljZSAqbmRldilcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FwbS94Z2VuZS12Mi9tZGlvLmMtMTE4LVxcdG1kaW9fYnVzLVxcdTAwM2VwaHlfbWFzayA9IDB4MTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hcG0veGdlbmUtdjIvbWRpby5jOjExOTpcXHRyZXQgPSBtZGlvYnVzX3JlZ2lzdGVyKG1kaW9fYnVzKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hcG0veGdlbmUtdjIvbWRpby5jLTEyMC1cXHRpZiAocmV0KVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXBtL3hnZW5lL3hnZW5lX2VuZXRfaHcuYz04Mzc9aW50IHhnZW5lX2VuZXRfcGh5X2Nvbm5lY3Qoc3RydWN0IG5ldF9kZXZpY2UgKm5kZXYpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hcG0veGdlbmUveGdlbmVfZW5ldF9ody5jLTg4Ny1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hcG0veGdlbmUveGdlbmVfZW5ldF9ody5jOjg4ODpzdGF0aWMgaW50IHhnZW5lX21kaW9idXNfcmVnaXN0ZXIoc3RydWN0IHhnZW5lX2VuZXRfcGRhdGEgKnBkYXRhLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FwbS94Z2VuZS94Z2VuZV9lbmV0X2h3LmMtODg5LVxcdFxcdFxcdFxcdCAgc3RydWN0IG1paV9idXMgKm1kaW8pXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hcG0veGdlbmUveGdlbmVfZW5ldF9ody5jLTkxMi1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hcG0veGdlbmUveGdlbmVfZW5ldF9ody5jOjkxMzpcXHRcXHRyZXQgPSBvZl9tZGlvYnVzX3JlZ2lzdGVyKG1kaW8sIG1kaW9fbnApO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FwbS94Z2VuZS94Z2VuZV9lbmV0X2h3LmMtOTE0LVxcdFxcdG9mX25vZGVfcHV0KG1kaW9fbnApO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXBtL3hnZW5lL3hnZW5lX2VuZXRfaHcuYy05MjEtXFx0LyogUmVnaXN0ZXIgdGhlIE1ESU8gYnVzICovXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXBtL3hnZW5lL3hnZW5lX2VuZXRfaHcuYzo5MjI6XFx0cmV0ID0gbWRpb2J1c19yZWdpc3RlcihtZGlvKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hcG0veGdlbmUveGdlbmVfZW5ldF9ody5jLTkyMy1cXHRpZiAocmV0KVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXBtL3hnZW5lL3hnZW5lX2VuZXRfaHcuYz05Mzk9aW50IHhnZW5lX2VuZXRfbWRpb19jb25maWcoc3RydWN0IHhnZW5lX2VuZXRfcGRhdGEgKnBkYXRhKVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXBtL3hnZW5lL3hnZW5lX2VuZXRfaHcuYy05NTctXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXBtL3hnZW5lL3hnZW5lX2VuZXRfaHcuYzo5NTg6XFx0cmV0ID0geGdlbmVfbWRpb2J1c19yZWdpc3RlcihwZGF0YSwgbWRpb19idXMpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FwbS94Z2VuZS94Z2VuZV9lbmV0X2h3LmMtOTU5LVxcdGlmIChyZXQpIHtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FyYy9lbWFjX21kaW8uYz0xMzE9aW50IGFyY19tZGlvX3Byb2JlKHN0cnVjdCBhcmNfZW1hY19wcml2ICpwcml2KVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXJjL2VtYWNfbWRpby5jLTE3Mi1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hcmMvZW1hY19tZGlvLmM6MTczOlxcdGVycm9yID0gb2ZfbWRpb2J1c19yZWdpc3RlcihidXMsIG1kaW9fbm9kZSk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXJjL2VtYWNfbWRpby5jLTE3NC1cXHRvZl9ub2RlX3B1dChtZGlvX25vZGUpO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19tYWluLmM9OTY2PXN0YXRpYyBpbnQgYXg4ODc5NmNfcHJvYmUoc3RydWN0IHNwaV9kZXZpY2UgKnNwaSlcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfbWFpbi5jLTEwMTAtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19tYWluLmM6MTAxMTpcXHRyZXQgPSBkZXZtX21kaW9idXNfcmVnaXN0ZXIoXFx1MDAyNnNwaS1cXHUwMDNlZGV2LCBheF9sb2NhbC1cXHUwMDNlbWRpb2J1cyk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19tYWluLmMtMTAxMi1cXHRpZiAocmV0IFxcdTAwM2MgMCkge1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXRoZXJvcy9hZzcxeHguYz02ODc9c3RhdGljIGludCBhZzcxeHhfbWRpb19wcm9iZShzdHJ1Y3QgYWc3MXh4ICphZylcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2F0aGVyb3MvYWc3MXh4LmMtNzI3LVxcdG1ucCA9IG9mX2dldF9jaGlsZF9ieV9uYW1lKG5wLCBcXFwibWRpb1xcXCIpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2F0aGVyb3MvYWc3MXh4LmM6NzI4OlxcdGVyciA9IGRldm1fb2ZfbWRpb2J1c19yZWdpc3RlcihkZXYsIG1paV9idXMsIG1ucCk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXRoZXJvcy9hZzcxeHguYy03MjktXFx0b2Zfbm9kZV9wdXQobW5wKTtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2I0NC5jPTIyMzQ9c3RhdGljIGludCBiNDRfcmVnaXN0ZXJfcGh5X29uZShzdHJ1Y3QgYjQ0ICpicClcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2I0NC5jLTIyNTktXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYjQ0LmM6MjI2MDpcXHRlcnIgPSBtZGlvYnVzX3JlZ2lzdGVyKG1paV9idXMpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2I0NC5jLTIyNjEtXFx0aWYgKGVycikge1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYmNtNjN4eF9lbmV0LmM9MTcxMz1zdGF0aWMgaW50IGJjbV9lbmV0X3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9iY202M3h4X2VuZXQuYy0xODI5LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JjbTYzeHhfZW5ldC5jOjE4MzA6XFx0XFx0cmV0ID0gbWRpb2J1c19yZWdpc3RlcihidXMpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JjbTYzeHhfZW5ldC5jLTE4MzEtXFx0XFx0aWYgKHJldCkge1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYmdtYWMtYmNtYS1tZGlvLmM9MjExPXN0cnVjdCBtaWlfYnVzICpiY21hX21kaW9fbWlpX3JlZ2lzdGVyKHN0cnVjdCBiZ21hYyAqYmdtYWMpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9iZ21hYy1iY21hLW1kaW8uYy0yMzUtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYmdtYWMtYmNtYS1tZGlvLmM6MjM2OlxcdGVyciA9IG9mX21kaW9idXNfcmVnaXN0ZXIobWlpX2J1cywgbnApO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JnbWFjLWJjbWEtbWRpby5jLTIzNy1cXHRvZl9ub2RlX3B1dChucCk7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9nZW5ldC9iY21taWkuYz0xOTM9aW50IGJjbWdlbmV0X21paV9jb25maWcoc3RydWN0IG5ldF9kZXZpY2UgKmRldiwgYm9vbCBpbml0KVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vZ2VuZXQvYmNtbWlpLmMtMjMzLVxcdFxcdHBoeV9uYW1lID0gXFxcImV4dGVybmFsIFJ2TUlJXFxcIjtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9nZW5ldC9iY21taWkuYzoyMzQ6XFx0XFx0Lyogb2ZfbWRpb2J1c19yZWdpc3RlciB0b29rIGNhcmUgb2YgcmVhZGluZyB0aGUgJ21heC1zcGVlZCdcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9nZW5ldC9iY21taWkuYy0yMzUtXFx0XFx0ICogUEhZIHByb3BlcnR5IGZvciB1cywgZWZmZWN0aXZlbHkgbGltaXRpbmcgdGhlIFBIWSBzdXBwb3J0ZWRcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL3NiMTI1MC1tYWMuYz0yMTU3PXN0YXRpYyBpbnQgc2JtYWNfaW5pdChzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwbGRldiwgbG9uZyBsb25nIGJhc2UpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9zYjEyNTAtbWFjLmMtMjIyNy1cXHQgKi9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9zYjEyNTAtbWFjLmM6MjIyODpcXHRlcnIgPSBtZGlvYnVzX3JlZ2lzdGVyKHNjLVxcdTAwM2VtaWlfYnVzKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9zYjEyNTAtbWFjLmMtMjIyOS1cXHRpZiAoZXJyKSB7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS90ZzMuYz0xNTA1PXN0YXRpYyBpbnQgdGczX21kaW9faW5pdChzdHJ1Y3QgdGczICp0cClcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL3RnMy5jLTE1NTctXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vdGczLmM6MTU1ODpcXHRpID0gbWRpb2J1c19yZWdpc3Rlcih0cC1cXHUwMDNlbWRpb19idXMpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL3RnMy5jLTE1NTktXFx0aWYgKGkpIHtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYl9tYWluLmM9MTAyMz1zdGF0aWMgaW50IG1hY2JfbWlpX3Byb2JlKHN0cnVjdCBuZXRfZGV2aWNlICpkZXYpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2JfbWFpbi5jLTEwOTYtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiX21haW4uYzoxMDk3OnN0YXRpYyBpbnQgbWFjYl9tZGlvYnVzX3JlZ2lzdGVyKHN0cnVjdCBtYWNiICpicCwgc3RydWN0IGRldmljZV9ub2RlICptZGlvX25wKVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYl9tYWluLmMtMTA5OC17XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2JfbWFpbi5jLTExMDQtXFx0aWYgKG1kaW9fbnApXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiX21haW4uYzoxMTA1OlxcdFxcdHJldHVybiBvZl9tZGlvYnVzX3JlZ2lzdGVyKGJwLVxcdTAwM2VtaWlfYnVzLCBtZGlvX25wKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2JfbWFpbi5jLTExMDYtXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2JfbWFpbi5jLTExMTgtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiX21haW4uYzoxMTE5OlxcdFxcdFxcdHJldHVybiBvZl9tZGlvYnVzX3JlZ2lzdGVyKGJwLVxcdTAwM2VtaWlfYnVzLCBucCk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiX21haW4uYy0xMTIwLVxcdFxcdH1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2JfbWFpbi5jLTExMjEtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiX21haW4uYzoxMTIyOlxcdHJldHVybiBtZGlvYnVzX3JlZ2lzdGVyKGJwLVxcdTAwM2VtaWlfYnVzKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2JfbWFpbi5jLTExMjMtfVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiX21haW4uYz0xMTI1PXN0YXRpYyBpbnQgbWFjYl9taWlfaW5pdChzdHJ1Y3QgbWFjYiAqYnApXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2JfbWFpbi5jLTExNTgtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiX21haW4uYzoxMTU5OlxcdGVyciA9IG1hY2JfbWRpb2J1c19yZWdpc3RlcihicCwgbWRpb19ucCk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiX21haW4uYy0xMTYwLVxcdGlmIChlcnIpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9kYXZpY29tL2RtOTA1MS5jPTExMDc9c3RhdGljIGludCBkbTkwNTFfbWRpb19yZWdpc3RlcihzdHJ1Y3QgYm9hcmRfaW5mbyAqZGIpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9kYXZpY29tL2RtOTA1MS5jLTExMjQtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvZGF2aWNvbS9kbTkwNTEuYzoxMTI1OlxcdHJldCA9IGRldm1fbWRpb2J1c19yZWdpc3RlcihcXHUwMDI2c3BpLVxcdTAwM2VkZXYsIGRiLVxcdTAwM2VtZGlvYnVzKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9kYXZpY29tL2RtOTA1MS5jLTExMjYtXFx0aWYgKHJldClcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2VuZ2xlZGVyL3RzbmVwX21haW4uYz0yNDIzPXN0YXRpYyBpbnQgdHNuZXBfbWRpb19pbml0KHN0cnVjdCB0c25lcF9hZGFwdGVyICphZGFwdGVyKVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvZW5nbGVkZXIvdHNuZXBfbWFpbi5jLTI0NTQtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvZW5nbGVkZXIvdHNuZXBfbWFpbi5jOjI0NTU6XFx0cmV0dmFsID0gb2ZfbWRpb2J1c19yZWdpc3RlcihhZGFwdGVyLVxcdTAwM2VtZGlvYnVzLCBucCk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvZW5nbGVkZXIvdHNuZXBfbWFpbi5jLTI0NTYtXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9ldGhvYy5jPTEwMjQ9c3RhdGljIGludCBldGhvY19wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvZXRob2MuYy0xMjA3LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2V0aG9jLmM6MTIwODpcXHRyZXQgPSBtZGlvYnVzX3JlZ2lzdGVyKHByaXYtXFx1MDAzZW1kaW8pO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2V0aG9jLmMtMTIwOS1cXHRpZiAocmV0KSB7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9mYXJhZGF5L2Z0Z21hYzEwMC5jPTE3MzQ9c3RhdGljIGludCBmdGdtYWMxMDBfc2V0dXBfbWRpbyhzdHJ1Y3QgbmV0X2RldmljZSAqbmV0ZGV2KVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvZmFyYWRheS9mdGdtYWMxMDAuYy0xNzY5LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ZhcmFkYXkvZnRnbWFjMTAwLmM6MTc3MDpcXHRlcnIgPSBkZXZtX29mX21kaW9idXNfcmVnaXN0ZXIocHJpdi1cXHUwMDNlZGV2LCBwcml2LVxcdTAwM2VtaWlfYnVzLCBtZGlvX25wKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9mYXJhZGF5L2Z0Z21hYzEwMC5jLTE3NzEtXFx0b2Zfbm9kZV9wdXQobWRpb19ucCk7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9mcmVlc2NhbGUvZW5ldGMvZW5ldGNfcGNpX21kaW8uYz0zNj1zdGF0aWMgaW50IGVuZXRjX3BjaV9tZGlvX3Byb2JlKHN0cnVjdCBwY2lfZGV2ICpwZGV2LFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvZnJlZXNjYWxlL2VuZXRjL2VuZXRjX3BjaV9tZGlvLmMtOTAtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvZnJlZXNjYWxlL2VuZXRjL2VuZXRjX3BjaV9tZGlvLmM6OTE6XFx0ZXJyID0gb2ZfbWRpb2J1c19yZWdpc3RlcihidXMsIGRldi1cXHUwMDNlb2Zfbm9kZSk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvZnJlZXNjYWxlL2VuZXRjL2VuZXRjX3BjaV9tZGlvLmMtOTItXFx0aWYgKGVycilcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ZyZWVzY2FsZS9lbmV0Yy9lbmV0Y19wZl9jb21tb24uYz0xNjA9c3RhdGljIGludCBlbmV0Y19tZGlvX3Byb2JlKHN0cnVjdCBlbmV0Y19wZiAqcGYsIHN0cnVjdCBkZXZpY2Vfbm9kZSAqbnApXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9mcmVlc2NhbGUvZW5ldGMvZW5ldGNfcGZfY29tbW9uLmMtMTg2LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ZyZWVzY2FsZS9lbmV0Yy9lbmV0Y19wZl9jb21tb24uYzoxODc6XFx0ZXJyID0gb2ZfbWRpb2J1c19yZWdpc3RlcihidXMsIG5wKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9mcmVlc2NhbGUvZW5ldGMvZW5ldGNfcGZfY29tbW9uLmMtMTg4LVxcdGlmIChlcnIpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9mcmVlc2NhbGUvZW5ldGMvZW5ldGNfcGZfY29tbW9uLmM9MjAyPXN0YXRpYyBpbnQgZW5ldGNfaW1kaW9fY3JlYXRlKHN0cnVjdCBlbmV0Y19wZiAqcGYpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9mcmVlc2NhbGUvZW5ldGMvZW5ldGNfcGZfY29tbW9uLmMtMjM2LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ZyZWVzY2FsZS9lbmV0Yy9lbmV0Y19wZl9jb21tb24uYzoyMzc6XFx0ZXJyID0gbWRpb2J1c19yZWdpc3RlcihidXMpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ZyZWVzY2FsZS9lbmV0Yy9lbmV0Y19wZl9jb21tb24uYy0yMzgtXFx0aWYgKGVycikge1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvZnJlZXNjYWxlL2ZlY19tYWluLmM9MzA0Mj1zdGF0aWMgaW50IGZlY19lbmV0X21paV9pbml0KHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9mcmVlc2NhbGUvZmVjX21haW4uYy0zMTYwLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ZyZWVzY2FsZS9mZWNfbWFpbi5jOjMxNjE6XFx0ZXJyID0gb2ZfbWRpb2J1c19yZWdpc3RlcihmZXAtXFx1MDAzZW1paV9idXMsIG5vZGUpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ZyZWVzY2FsZS9mZWNfbWFpbi5jLTMxNjItXFx0aWYgKGVycilcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ZyZWVzY2FsZS9mZWNfbXBjNTJ4eF9waHkuYz02NT1zdGF0aWMgaW50IG1wYzUyeHhfZmVjX21kaW9fcHJvYmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqb2YpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9mcmVlc2NhbGUvZmVjX21wYzUyeHhfcGh5LmMtMTA1LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ZyZWVzY2FsZS9mZWNfbXBjNTJ4eF9waHkuYzoxMDY6XFx0ZXJyID0gb2ZfbWRpb2J1c19yZWdpc3RlcihidXMsIG5wKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9mcmVlc2NhbGUvZmVjX21wYzUyeHhfcGh5LmMtMTA3LVxcdGlmIChlcnIpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9mcmVlc2NhbGUvZnNfZW5ldC9taWktYml0YmFuZy5jPTE0OT1zdGF0aWMgaW50IGZzX2VuZXRfbWRpb19wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpvZmRldilcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ZyZWVzY2FsZS9mc19lbmV0L21paS1iaXRiYW5nLmMtMTc1LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ZyZWVzY2FsZS9mc19lbmV0L21paS1iaXRiYW5nLmM6MTc2OlxcdHJldCA9IG9mX21kaW9idXNfcmVnaXN0ZXIobmV3X2J1cywgb2ZkZXYtXFx1MDAzZWRldi5vZl9ub2RlKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9mcmVlc2NhbGUvZnNfZW5ldC9taWktYml0YmFuZy5jLTE3Ny1cXHRpZiAocmV0KVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvZnJlZXNjYWxlL2ZzX2VuZXQvbWlpLWZlYy5jPTk3PXN0YXRpYyBpbnQgZnNfZW5ldF9tZGlvX3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKm9mZGV2KVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvZnJlZXNjYWxlL2ZzX2VuZXQvbWlpLWZlYy5jLTE2Ni1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9mcmVlc2NhbGUvZnNfZW5ldC9taWktZmVjLmM6MTY3OlxcdHJldCA9IG9mX21kaW9idXNfcmVnaXN0ZXIobmV3X2J1cywgb2ZkZXYtXFx1MDAzZWRldi5vZl9ub2RlKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9mcmVlc2NhbGUvZnNfZW5ldC9taWktZmVjLmMtMTY4LVxcdGlmIChyZXQpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9mcmVlc2NhbGUvZnNsX3BxX21kaW8uYz00MDk9c3RhdGljIGludCBmc2xfcHFfbWRpb19wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvZnJlZXNjYWxlL2ZzbF9wcV9tZGlvLmMtNDkzLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ZyZWVzY2FsZS9mc2xfcHFfbWRpby5jOjQ5NDpcXHRlcnIgPSBvZl9tZGlvYnVzX3JlZ2lzdGVyKG5ld19idXMsIG5wKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9mcmVlc2NhbGUvZnNsX3BxX21kaW8uYy00OTUtXFx0aWYgKGVycikge1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvZnJlZXNjYWxlL3hnbWFjX21kaW8uYz0zNzE9c3RhdGljIGludCB4Z21hY19tZGlvX3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9mcmVlc2NhbGUveGdtYWNfbWRpby5jLTQyNi1cXHRpZiAoaXNfb2Zfbm9kZShmd25vZGUpKVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ZyZWVzY2FsZS94Z21hY19tZGlvLmM6NDI3OlxcdFxcdHJldCA9IG9mX21kaW9idXNfcmVnaXN0ZXIoYnVzLCB0b19vZl9ub2RlKGZ3bm9kZSkpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ZyZWVzY2FsZS94Z21hY19tZGlvLmMtNDI4LVxcdGVsc2UgaWYgKGlzX2FjcGlfbm9kZShmd25vZGUpKVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ZyZWVzY2FsZS94Z21hY19tZGlvLmM6NDI5OlxcdFxcdHJldCA9IGFjcGlfbWRpb2J1c19yZWdpc3RlcihidXMsIGZ3bm9kZSk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvZnJlZXNjYWxlL3hnbWFjX21kaW8uYy00MzAtXFx0ZWxzZVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2hpYm1jZ2UvaGJnX21kaW8uYz0yNjY9aW50IGhiZ19tZGlvX2luaXQoc3RydWN0IGhiZ19wcml2ICpwcml2KVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2hpYm1jZ2UvaGJnX21kaW8uYy0yOTEtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2hpYm1jZ2UvaGJnX21kaW8uYzoyOTI6XFx0cmV0ID0gZGV2bV9tZGlvYnVzX3JlZ2lzdGVyKGRldiwgbWRpb19idXMpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9oaWJtY2dlL2hiZ19tZGlvLmMtMjkzLVxcdGlmIChyZXQpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaGl4NWhkMl9nbWFjLmM9MTA5ND1zdGF0aWMgaW50IGhpeDVoZDJfZGV2X3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaGl4NWhkMl9nbWFjLmMtMTE4NS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaGl4NWhkMl9nbWFjLmM6MTE4NjpcXHRyZXQgPSBvZl9tZGlvYnVzX3JlZ2lzdGVyKGJ1cywgbm9kZSk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2hpeDVoZDJfZ21hYy5jLTExODctXFx0aWYgKHJldClcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL2huczNwZi9oY2xnZV9tZGlvLmM9MTIzPWludCBoY2xnZV9tYWNfbWRpb19jb25maWcoc3RydWN0IGhjbGdlX2RldiAqaGRldilcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL2huczNwZi9oY2xnZV9tZGlvLmMtMTU0LVxcdG1kaW9fYnVzLVxcdTAwM2VwaHlfbWFzayA9IH4oMVUgXFx1MDAzY1xcdTAwM2MgbWFjLVxcdTAwM2VwaHlfYWRkcik7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM3BmL2hjbGdlX21kaW8uYzoxNTU6XFx0cmV0ID0gbWRpb2J1c19yZWdpc3RlcihtZGlvX2J1cyk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM3BmL2hjbGdlX21kaW8uYy0xNTYtXFx0aWYgKHJldCkge1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huc19tZGlvLmM9NDk1PXN0YXRpYyBpbnQgaG5zX21kaW9fcHJvYmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldilcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnNfbWRpby5jLTU4My1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaG5zX21kaW8uYzo1ODQ6XFx0XFx0cmV0ID0gb2ZfbWRpb2J1c19yZWdpc3RlcihuZXdfYnVzLCBwZGV2LVxcdTAwM2VkZXYub2Zfbm9kZSk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huc19tZGlvLmMtNTg1LVxcdH0gZWxzZSBpZiAoaXNfYWNwaV9ub2RlKHBkZXYtXFx1MDAzZWRldi5md25vZGUpKSB7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaG5zX21kaW8uYy01OTItXFx0XFx0LyogUmVnaXN0ZXIgdGhlIE1ESU8gYnVzICovXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huc19tZGlvLmM6NTkzOlxcdFxcdHJldCA9IG1kaW9idXNfcmVnaXN0ZXIobmV3X2J1cyk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huc19tZGlvLmMtNTk0LVxcdH0gZWxzZSB7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pYm0vZW1hYy9jb3JlLmM9MjU2MD1zdGF0aWMgaW50IGVtYWNfZHRfbWRpb19wcm9iZShzdHJ1Y3QgZW1hY19pbnN0YW5jZSAqZGV2KVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaWJtL2VtYWMvY29yZS5jLTI1ODQtXFx0c25wcmludGYoYnVzLVxcdTAwM2VpZCwgTUlJX0JVU19JRF9TSVpFLCBcXFwiJXNcXFwiLCBkZXYtXFx1MDAzZW9mZGV2LVxcdTAwM2VuYW1lKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pYm0vZW1hYy9jb3JlLmM6MjU4NTpcXHRyZXMgPSBkZXZtX29mX21kaW9idXNfcmVnaXN0ZXIoXFx1MDAyNmRldi1cXHUwMDNlb2ZkZXYtXFx1MDAzZWRldiwgYnVzLCBtaWlfbnApO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2libS9lbWFjL2NvcmUuYy0yNTg2LVxcdGlmIChyZXMpIHtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2l4Z2JlX3BoeS5jPTEwMjY9aW50IGl4Z2JlX21paV9idXNfaW5pdChzdHJ1Y3QgaXhnYmVfaHcgKmh3KVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvaXhnYmVfcGh5LmMtMTA4OC1cXHRhZGFwdGVyLVxcdTAwM2VtaWlfYnVzID0gYnVzO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2l4Z2JlX3BoeS5jOjEwODk6XFx0cmV0dXJuIG1kaW9idXNfcmVnaXN0ZXIoYnVzKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9peGdiZV9waHkuYy0xMDkwLX1cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2xhbnRpcV9ldG9wLmM9Mzg1PWx0cV9ldG9wX21kaW9faW5pdChzdHJ1Y3QgbmV0X2RldmljZSAqZGV2KVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbGFudGlxX2V0b3AuYy00MDItXFx0XFx0IHByaXYtXFx1MDAzZXBkZXYtXFx1MDAzZW5hbWUsIHByaXYtXFx1MDAzZXBkZXYtXFx1MDAzZWlkKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9sYW50aXFfZXRvcC5jOjQwMzpcXHRpZiAobWRpb2J1c19yZWdpc3Rlcihwcml2LVxcdTAwM2VtaWlfYnVzKSkge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2xhbnRpcV9ldG9wLmMtNDA0LVxcdFxcdGVyciA9IC1FTlhJTztcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvbXZtZGlvLmM9MjgzPXN0YXRpYyBpbnQgb3Jpb25fbWRpb19wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9tdm1kaW8uYy0zODEtXFx0LyogRm9yIHRoZSBwbGF0Zm9ybXMgbm90IHN1cHBvcnRpbmcgRFQvQUNQSSBmYWxsLWJhY2tcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL212bWRpby5jOjM4MjpcXHQgKiB0byBtZGlvYnVzX3JlZ2lzdGVyIHZpYSBvZl9tZGlvYnVzX3JlZ2lzdGVyLlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvbXZtZGlvLmMtMzgzLVxcdCAqL1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvbXZtZGlvLmMtMzg0LVxcdGlmIChpc19hY3BpX25vZGUocGRldi1cXHUwMDNlZGV2LmZ3bm9kZSkpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9tdm1kaW8uYzozODU6XFx0XFx0cmV0ID0gYWNwaV9tZGlvYnVzX3JlZ2lzdGVyKGJ1cywgcGRldi1cXHUwMDNlZGV2LmZ3bm9kZSk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9tdm1kaW8uYy0zODYtXFx0ZWxzZVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvbXZtZGlvLmM6Mzg3OlxcdFxcdHJldCA9IG9mX21kaW9idXNfcmVnaXN0ZXIoYnVzLCBwZGV2LVxcdTAwM2VkZXYub2Zfbm9kZSk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9tdm1kaW8uYy0zODgtXFx0aWYgKHJldCBcXHUwMDNjIDApIHtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHhhMTY4X2V0aC5jPTEzODc9c3RhdGljIGludCBweGExNjhfZXRoX3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3B4YTE2OF9ldGguYy0xNTA0LVxcdHBlcC1cXHUwMDNlc21pX2J1cy1cXHUwMDNlcGh5X21hc2sgPSAweGZmZmZmZmZmO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHhhMTY4X2V0aC5jOjE1MDU6XFx0ZXJyID0gbWRpb2J1c19yZWdpc3RlcihwZXAtXFx1MDAzZXNtaV9idXMpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHhhMTY4X2V0aC5jLTE1MDYtXFx0aWYgKGVycilcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a19ldGhfc29jLmM9OTk3PXN0YXRpYyBpbnQgbXRrX21kaW9faW5pdChzdHJ1Y3QgbXRrX2V0aCAqZXRoKVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX2V0aF9zb2MuYy0xMDM2LVxcdGRldl9kYmcoZXRoLVxcdTAwM2VkZXYsIFxcXCJNREMgaXMgcnVubmluZyBvbiAlZCBIelxcXFxuXFxcIiwgTURDX01BWF9GUkVRIC8gZXRoLVxcdTAwM2VtZGNfZGl2aWRlcik7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX2V0aF9zb2MuYzoxMDM3OlxcdHJldCA9IG9mX21kaW9idXNfcmVnaXN0ZXIoZXRoLVxcdTAwM2VtaWlfYnVzLCBtaWlfbnApO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a19ldGhfc29jLmMtMTAzOC1cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a19zdGFyX2VtYWMuYz0xNDIyPXN0YXRpYyBpbnQgbXRrX3N0YXJfbWRpb19pbml0KHN0cnVjdCBuZXRfZGV2aWNlICpuZGV2KVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX3N0YXJfZW1hYy5jLTE0NDctXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX3N0YXJfZW1hYy5jOjE0NDg6XFx0cmV0ID0gZGV2bV9vZl9tZGlvYnVzX3JlZ2lzdGVyKGRldiwgcHJpdi1cXHUwMDNlbWlpLCBtZGlvX25vZGUpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a19zdGFyX2VtYWMuYy0xNDQ5LVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4YmZfZ2lnZS9tbHhiZl9naWdlX21kaW8uYz0yODc9aW50IG1seGJmX2dpZ2VfbWRpb19wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2LCBzdHJ1Y3QgbWx4YmZfZ2lnZSAqcHJpdilcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seGJmX2dpZ2UvbWx4YmZfZ2lnZV9tZGlvLmMtMzMyLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seGJmX2dpZ2UvbWx4YmZfZ2lnZV9tZGlvLmM6MzMzOlxcdHJldCA9IG1kaW9idXNfcmVnaXN0ZXIocHJpdi1cXHUwMDNlbWRpb2J1cyk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4YmZfZ2lnZS9tbHhiZl9naWdlX21kaW8uYy0zMzQtXFx0aWYgKHJldClcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21ldGEvZmJuaWMvZmJuaWNfbWRpby5jPTI1Mz1pbnQgZmJuaWNfbWRpb2J1c19jcmVhdGUoc3RydWN0IGZibmljX2RldiAqZmJkKVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWV0YS9mYm5pYy9mYm5pY19tZGlvLmMtMjcyLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21ldGEvZmJuaWMvZmJuaWNfbWRpby5jOjI3MzpcXHRlcnIgPSBkZXZtX21kaW9idXNfcmVnaXN0ZXIoZmJkLVxcdTAwM2VkZXYsIGJ1cyk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWV0YS9mYm5pYy9mYm5pY19tZGlvLmMtMjc0LVxcdGlmIChlcnIpIHtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JlbC9rczg4NTFfY29tbW9uLmM9MTAzNj1zdGF0aWMgaW50IGtzODg1MV9yZWdpc3Rlcl9tZGlvYnVzKHN0cnVjdCBrczg4NTFfbmV0ICprcywgc3RydWN0IGRldmljZSAqZGV2KVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcmVsL2tzODg1MV9jb21tb24uYy0xMDUyLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JlbC9rczg4NTFfY29tbW9uLmM6MTA1MzpcXHRyZXQgPSBtZGlvYnVzX3JlZ2lzdGVyKG1paV9idXMpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JlbC9rczg4NTFfY29tbW9uLmMtMTA1NC1cXHRpZiAocmV0KVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JlbC9rczg4NTFfY29tbW9uLmM6MTA1NTpcXHRcXHRnb3RvIGVycl9tZGlvYnVzX3JlZ2lzdGVyO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JlbC9rczg4NTFfY29tbW9uLmMtMTA1Ni1cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JlbC9rczg4NTFfY29tbW9uLmMtMTA2MC1cXG5cXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMjVUMDg6MjA6MDcuOTg5NjYzMzU0WiIsIlNlcSI6NywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6MzQ4NzAwMzQ1OCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiT2theSwgbGV0IG1lIHRoaW5rIHRoaXMgdGhyb3VnaC5cblxuKipNRElPIEJ1cyBSZWdpc3RyYXRpb246IEEgUXVpY2sgU2NydXRpbnkqKlxuXG5IbW0sIGhvbGQgb24gYSBzZWNvbmQuIEknbSBzZWVpbmcgYSBmZXcgTURJTyBidXMgcmVnaXN0cmF0aW9uIGZ1bmN0aW9ucyBoZXJlOiBgZGV2bV9tZGlvYnVzX3JlZ2lzdGVyYCwgYG9mX21kaW9idXNfcmVnaXN0ZXJgLCBhbmQgcGxhaW4gb2xkIGBtZGlvYnVzX3JlZ2lzdGVyYC4gVGhlIGtleSBxdWVzdGlvbiBwb3BwaW5nIGludG8gbXkgaGVhZCBpcyB3aGV0aGVyIGBtZGlvYnVzX3JlZ2lzdGVyYCBpcyBzb21ldGhpbmcgdGhhdCBjYW4gYmUgY2FsbGVkIGJ5IGEgVVNCIGRyaXZlci4gVGhhdCBzZWVtcyBhIGxpdHRsZSB1bnVzdWFsIGF0IGZpcnN0IGdsYW5jZSwgYnV0IHlvdSBuZXZlciBrbm93LiBJdCdzIHRpbWUgdG8gZGlnIGludG8gdGhlIGtlcm5lbCdzIFVTQiBuZXR3b3JrIGRyaXZlcnMgdG8gc2VlIGlmIHRoZXJlJ3MgYW55IHByZWNlZGVudC4gTGV0J3Mgc3RhcnQgYnkgcXVpY2tseSBjaGVja2luZyB0aGUgYGRyaXZlcnMvbmV0L3VzYi9gIGRpcmVjdG9yeSB0byBnZXQgYSBmZWVsIGZvciBob3cgdGhleSBpbnRlcmFjdCB3aXRoIHRoZSBNRElPIHN1YnN5c3RlbS4gSSB3YW50IHRvIHNlZSBob3cgdGhlc2UgZGlmZmVyZW50IHJlZ2lzdHJhdGlvbiBtZWNoYW5pc21zIGFyZSB1c2VkIGluIHRoYXQgc3BlY2lmaWMgY29udGV4dC5cblxuXG4iLCJJbnB1dFRva2VucyI6MzI0MDcsIk91dHB1dFRva2VucyI6MzEsIk91dHB1dFRob3VnaHRzVG9rZW5zIjo1OSwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0yNVQwODoyMDoxMS40NzY2NzAwOTJaIiwiU2VxIjo4LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NDU3NjExNDMwLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcIm1kaW9idXNfcmVnaXN0ZXJcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZHJpdmVycy9uZXQvdXNiL1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJkcml2ZXJzL25ldC91c2IvYXNpeF9kZXZpY2VzLmM9NjY5PXN0YXRpYyBpbnQgYXg4ODc3Ml9pbml0X21kaW8oc3RydWN0IHVzYm5ldCAqZGV2KVxcbi0tXFxuZHJpdmVycy9uZXQvdXNiL2FzaXhfZGV2aWNlcy5jLTY4Ni1cXG5kcml2ZXJzL25ldC91c2IvYXNpeF9kZXZpY2VzLmM6Njg3OlxcdHJldCA9IG1kaW9idXNfcmVnaXN0ZXIocHJpdi1cXHUwMDNlbWRpbyk7XFxuZHJpdmVycy9uZXQvdXNiL2FzaXhfZGV2aWNlcy5jLTY4OC1cXHRpZiAocmV0KSB7XFxuLS1cXG5kcml2ZXJzL25ldC91c2IvYXg4ODE3MmEuYz02MT1zdGF0aWMgaW50IGF4ODgxNzJhX2luaXRfbWRpbyhzdHJ1Y3QgdXNibmV0ICpkZXYpXFxuLS1cXG5kcml2ZXJzL25ldC91c2IvYXg4ODE3MmEuYy03OS1cXG5kcml2ZXJzL25ldC91c2IvYXg4ODE3MmEuYzo4MDpcXHRyZXQgPSBtZGlvYnVzX3JlZ2lzdGVyKHByaXYtXFx1MDAzZW1kaW8pO1xcbmRyaXZlcnMvbmV0L3VzYi9heDg4MTcyYS5jLTgxLVxcdGlmIChyZXQpIHtcXG4tLVxcbmRyaXZlcnMvbmV0L3VzYi9sYW43OHh4LmM9MjA5MT1zdGF0aWMgaW50IGxhbjc4eHhfbWRpb19pbml0KHN0cnVjdCBsYW43OHh4X25ldCAqZGV2KVxcbi0tXFxuZHJpdmVycy9uZXQvdXNiL2xhbjc4eHguYy0yMTIxLVxcdG5vZGUgPSBvZl9nZXRfY2hpbGRfYnlfbmFtZShkZXYtXFx1MDAzZXVkZXYtXFx1MDAzZWRldi5vZl9ub2RlLCBcXFwibWRpb1xcXCIpO1xcbmRyaXZlcnMvbmV0L3VzYi9sYW43OHh4LmM6MjEyMjpcXHRyZXQgPSBvZl9tZGlvYnVzX3JlZ2lzdGVyKGRldi1cXHUwMDNlbWRpb2J1cywgbm9kZSk7XFxuZHJpdmVycy9uZXQvdXNiL2xhbjc4eHguYy0yMTIzLVxcdG9mX25vZGVfcHV0KG5vZGUpO1xcbi0tXFxuZHJpdmVycy9uZXQvdXNiL3Ntc2M5NXh4LmM9MTE0Nz1zdGF0aWMgaW50IHNtc2M5NXh4X2JpbmQoc3RydWN0IHVzYm5ldCAqZGV2LCBzdHJ1Y3QgdXNiX2ludGVyZmFjZSAqaW50ZilcXG4tLVxcbmRyaXZlcnMvbmV0L3VzYi9zbXNjOTV4eC5jLTEyNDEtXFxuZHJpdmVycy9uZXQvdXNiL3Ntc2M5NXh4LmM6MTI0MjpcXHRyZXQgPSBtZGlvYnVzX3JlZ2lzdGVyKHBkYXRhLVxcdTAwM2VtZGlvYnVzKTtcXG5kcml2ZXJzL25ldC91c2Ivc21zYzk1eHguYy0xMjQzLVxcdGlmIChyZXQpIHtcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMjVUMDg6MjA6MTEuOTM0Mjg3MzYyWiIsIlNlcSI6OSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NjAwMTczNDk5MCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipSZWFjaGluZyBEUDgzNjQwIFByb2JlIFx1MDAyNiBSZW1vdmUgdmlhIFVTQiBFbXVsYXRpb24qKlxuXG5Pa2F5LCBzbyB0aGUgcGllY2VzIGFyZSBzdGFydGluZyB0byBmaXQgdG9nZXRoZXIgbmljZWx5LiBJJ3ZlIGdvdCBpdDogYHNtc2M5NXh4YCwgYGxhbjc4eHhgLCBgYXg4ODE3MmFgLCBhbmQgYGFzaXhfZGV2aWNlc2Ag4oCTIHRoZXkgYWxsIHJlZ2lzdGVyIGFuIE1ESU8gYnVzLiBUaGF0J3Mga2V5LiBJZiBJIGNhbiBlbXVsYXRlIG9uZSBvZiB0aGVzZSBVU0IgbmV0d29yayBkZXZpY2VzIHVzaW5nIGB2aGNpYCwgdGhlbiB0aGUgY29ycmVzcG9uZGluZyBkcml2ZXIgc2hvdWxkIHByb2JlLCByZWdpc3RlciBpdHMgb3duIE1ESU8gYnVzLCBhbmQgdGhlbiBzY2FuIGZvciBjb25uZWN0ZWQgUEhZcy5cblxuRHVyaW5nIHRoaXMgc2NhbiwgdGhlIGRyaXZlciB3aWxsIGJlIHJlYWRpbmcgUEhZIHJlZ2lzdGVycy4gVGhlIGRyaXZlciBkb2VzIHRoaXMgdXNpbmcgVVNCIGNvbnRyb2wgbWVzc2FnZXMsIHdoaWNoIGlzIHBlcmZlY3QuIElmIG15IGZ1enplciBpbnRlcmNlcHRzIHRoZXNlIG1lc3NhZ2VzLCBJIGNhbiBmZWVkIGl0IHRoZSBQSFkgSUQgZm9yIGEgYGRwODM2NDBgIChgMHgyMDAwNWNlMWApLiBXaGVuIHRoZSBNRElPIGJ1cyBzY2FuIGhhcHBlbnMgYW5kIHRoZSBQSFkgSUQgbWF0Y2hlcywgaXQgc2hvdWxkIGNhbGwgYGRwODM2NDBfcHJvYmVgLiBUaGlzIGlzIGV4YWN0bHkgd2hhdCBJJ20gbG9va2luZyBmb3IuXG5cblRoaXMgYWxzbyBtZWFucyB0aGF0IEkgc2hvdWxkIGJlIGFibGUgdG8gcmVhY2ggYGRwODM2NDBfcHJvYmVgIGFuZCBgZHA4MzY0MF9yZW1vdmVgIGVudGlyZWx5IHdpdGhpbiBhIHZpcnR1YWxpemVkIGVudmlyb25tZW50IHZpYSBVU0IgZGV2aWNlIGVtdWxhdGlvbi4gSXQgaXMgZ29pbmcgdG8gYmUgaW5jcmVkaWJseSB1c2VmdWwgZm9yIGZ1enppbmchXG5cbkkgc2hvdWxkIGRvdWJsZS1jaGVjayB0aGUgZXhhY3QgUEhZIElEIGZvciB0aGUgYGRwODM2NDBgIGp1c3QgdG8gYmUgY2VydGFpbi5cblxuXG4iLCJJbnB1dFRva2VucyI6MzMyMTgsIk91dHB1dFRva2VucyI6MjQsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoxOTQsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDctMjVUMDg6MjA6MTcuOTM2MDI1MjIyWiIsIlNlcSI6MTAsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoxODI3MDUxNjkxLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcIkRQODM2NDBfUEhZX0lEXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmMtMjUtXFxuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYzoyNjojZGVmaW5lIERQODM2NDBfUEhZX0lEXFx0MHgyMDAwNWNlMVxcbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmMtMjctI2RlZmluZSBQQUdFU0VMXFx0XFx0MHgxM1xcbi0tXFxuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYz0xNTMxPXN0YXRpYyBzdHJ1Y3QgcGh5X2RyaXZlciBkcDgzNjQwX2RyaXZlcltdID0ge1xcbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmMtMTUzMi17XFxuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYzoxNTMzOlxcdC5waHlfaWRcXHRcXHQ9IERQODM2NDBfUEhZX0lELFxcbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmMtMTUzNC1cXHQucGh5X2lkX21hc2tcXHQ9IDB4ZmZmZmZmZjAsXFxuLS1cXG5kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jPTE1NTI9c3RhdGljIGNvbnN0IHN0cnVjdCBtZGlvX2RldmljZV9pZCBfX21heWJlX3VudXNlZCBkcDgzNjQwX3RibFtdID0ge1xcbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmM6MTU1MzpcXHR7IERQODM2NDBfUEhZX0lELCAweGZmZmZmZmYwIH0sXFxuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYy0xNTU0LVxcdHsgfVxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0yNVQwODoyMDoxOS43NjMwODQxNzNaIiwiU2VxIjoxMSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NjM5OTYwMDI1NiwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipGdXp6aW5nIFN0cmF0ZWd5IGZvciB0aGUgRFA4MzY0MCBEcml2ZXIqKlxuXG5Pa2F5LCBzbyBgMHgyMDAwNWNlMWAgY29uZmlybXMgaXQg4oCTIHRoaXMgZHJpdmVyIGlzIGRlZmluaXRlbHkgaW4gc3l6a2FsbGVyJ3MgY3Jvc3NoYWlycywgYW5kIHRoZSBVU0IgZnV6emVyIGlzIHRoZSB3YXkgdG8gZ28uIFRoZSBwYXRjaCBpbnRyb2R1Y2luZyBhIGBrcmVmYCBpcyBhIGdvb2Qgc2lnbjsgaXQncyBhIGZ1bmN0aW9uYWwgZml4LCBhZGRyZXNzaW5nIHBvdGVudGlhbCB1c2UtYWZ0ZXItZnJlZSBvciBtZW1vcnkgbGVhayBpc3N1ZXMsIG1ha2luZyBpdCBwcmltZSBmdXp6aW5nIG1hdGVyaWFsLlxuXG5Ob3csIGxldCdzIGlkZW50aWZ5IHRoZSBrZXkga2VybmVsIGZ1bmN0aW9ucyB0byB0YXJnZXQuIFRoZSBwYXRjaCB0b3VjaGVzIGBkcDgzNjQwX2Nsb2NrX2luaXRgLCBgZHA4MzY0MF9jbG9ja19nZXRfYnVzYCwgYGRwODM2NDBfY2xvY2tfcHV0YCwgYGRwODM2NDBfY2xvY2tfcmVsZWFzZWAsIGBkcDgzNjQwX3Byb2JlYCwgYW5kIGBkcDgzNjQwX3JlbW92ZWAuIFdlIHNob3VsZCBkZWZpbml0ZWx5IGluY2x1ZGUgYGRwODM2NDBfcHJvYmVgIGFuZCBgZHA4MzY0MF9yZW1vdmVgIGluIGBGb2N1c1N5bWJvbHNgLiBUaGV5J3JlIHRoZSBlbnRyeSBwb2ludHMsIHRoZSBob29rcyB0aGF0J2xsIGV4cG9zZSB0aGUgZHJpdmVyIHRvIHRoZSBmdXp6ZXIuXG5cbkhtbSwgYGRwODM2NDBfY2xvY2tfZ2V0X2J1c2AgYW5kIGBkcDgzNjQwX2Nsb2NrX3B1dGAgYXJlIHN0YXRpYyBidXQgY2FsbGVkIGZyb20gdGhvc2UgZW50cnkgcG9pbnRzLiBJIHNob3VsZCBkb3VibGUtY2hlY2sgYWJvdXQgaW5saW5pbmcgaGVyZSAtIGVzcGVjaWFsbHkgZm9yIGBkcDgzNjQwX2Nsb2NrX2dldF9idXNgLiBMZXQncyBjb25maXJtIHRoZXJlIGFyZSBubyBub24tc3RhdGljIGZ1bmN0aW9ucyBhbmQgdGhhdCBgZHA4MzY0MF9wcm9iZWAgYW5kIGBkcDgzNjQwX3JlbW92ZWAgYXJlIHRoZSBtYWluIGVudHJ5IHBvaW50cyBmb3IgdGhlIGxvZ2ljLiBXYWl0IGEgc2Vjb25kLCB0aGUgYGRwODM2NDBfcHJvYmVgIGFuZCBgZHA4MzY0MF9yZW1vdmVgIGZ1bmN0aW9ucyBhcmUgc3RhdGljIGFzIHdlbGwhIEJ1dCB0aGV5IGFyZSByZWZlcmVuY2VkIGluIHRoZSBgZHA4MzY0MF9kcml2ZXJgIHN0cnVjdCwgc28gdGhleSBzaG91bGQgbm90IGJlIGlubGluZWQgYW5kIGhhdmUgZGlzdGluY3Qgc3ltYm9sIGFkZHJlc3Nlcy4gVGhpcyBtZWFucyB0aGF0IHN5emthbGxlciAqY2FuKiBmaW5kIHRoZW0uIEFscmlnaHQsIHRoYXQgc2ltcGxpZmllcyB0aGluZ3Mgc29tZXdoYXQuIExldCdzIGdldCB0aGVzZSBmdW5jdGlvbnMgYWRkZWQgdG8gdGhlIGZvY3VzIGxpc3QuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjM0MDc1LCJPdXRwdXRUb2tlbnMiOjIyLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6NDA0LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTI1VDA4OjIwOjI2LjE2MjY4NzcxOVoiLCJTZXEiOjEyLCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MTc5MDgwNjQ0NSwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJkcDgzNjQwX3Byb2JlXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmM9MTQwND1zdGF0aWMgaW50IGRwODM2NDBfdHNfaW5mbyhzdHJ1Y3QgbWlpX3RpbWVzdGFtcGVyICptaWlfdHMsXFxuLS1cXG5kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jLTE0MjctXFxuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYzoxNDI4OnN0YXRpYyBpbnQgZHA4MzY0MF9wcm9iZShzdHJ1Y3QgcGh5X2RldmljZSAqcGh5ZGV2KVxcbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmMtMTQyOS17XFxuLS1cXG5kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jPTE1MzE9c3RhdGljIHN0cnVjdCBwaHlfZHJpdmVyIGRwODM2NDBfZHJpdmVyW10gPSB7XFxuLS1cXG5kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jLTE1MzYtXFx0LyogUEhZX0JBU0lDX0ZFQVRVUkVTICovXFxuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYzoxNTM3OlxcdC5wcm9iZVxcdFxcdD0gZHA4MzY0MF9wcm9iZSxcXG5kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jLTE1MzgtXFx0LnJlbW92ZVxcdFxcdD0gZHA4MzY0MF9yZW1vdmUsXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTI1VDA4OjIwOjI3Ljk1MzUwMDE2NFoiLCJTZXEiOjEzLCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjozNzk3MTIxMDIxLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJPa2F5LCBsZXQncyBicmVhayB0aGlzIGRvd24uXG5cbioqQW5hbHl6aW5nIENhbmRpZGF0ZSBTeW1ib2xzIGZvciBGb2N1c2VkIEV4YW1pbmF0aW9uKipcblxuUmlnaHQsIHNvIHRoZXNlIHN5bWJvbHMsIGV2ZW4gdGhvdWdoIHRoZXkncmUgc2VlbWluZ2x5IHN0YXRpYywgYXJlIGZ1bmN0aW9uaW5nIGFzIGNhbGxiYWNrcy4gVGhhdCdzIGEgZ29vZCBzdGFydGluZyBwb2ludC4gSSB0aGluayBgZHA4MzY0MF9wcm9iZWAgYW5kIGBkcDgzNjQwX3JlbW92ZWAgbG9vayBsaWtlIHNvbGlkIGNhbmRpZGF0ZXMgZm9yIGNsb3NlciBzY3J1dGlueSwgc3BlY2lmaWNhbGx5IGZvciBpbmNsdXNpb24gd2l0aGluIG15IGBGb2N1c1N5bWJvbHNgIGxpc3QuIEkgbmVlZCB0byB1bmRlcnN0YW5kIHRoZWlyIGJlaGF2aW9yIGluIHRoZSBicm9hZGVyIHBpY3R1cmUuXG5cbk5vdywgSSdsbCBuZWVkIHRvIGZpZ3VyZSBvdXQgdGhlIHJlbGV2YW50IGNvbmZpZ3VyYXRpb24gb3B0aW9ucyB0aGF0IGRpY3RhdGUgdGhlaXIgaW5jbHVzaW9uIGFuZCBiZWhhdmlvci4gVGhlIHByaW1hcnkgY29uZmlndXJhdGlvbiBpdGVtIGFwcGVhcnMgdG8gYmUgYENPTkZJR19EUDgzNjQwX1BIWWAsIHdoaWNoIG1ha2VzIHNlbnNlLiBJJ2xsIG5lZWQgdG8gZG91YmxlIGNoZWNrIHRoZSBkZXBlbmRlbmNpZXMgYnkgZXhhbWluaW5nIHRoZSBgZHJpdmVycy9uZXQvcGh5L0tjb25maWdgIGZpbGUuIFRoYXQgc2hvdWxkIGdpdmUgbWUgYSBtb3JlIGNvbXBsZXRlIHBpY3R1cmUgb2YgdGhlIGNvbmZpZ3VyYXRpb24gc3BhY2Ugc3Vycm91bmRpbmcgdGhlc2Ugc3ltYm9scy5cblxuXG4iLCJJbnB1dFRva2VucyI6MzUyMjMsIk91dHB1dFRva2VucyI6MjMsIk91dHB1dFRob3VnaHRzVG9rZW5zIjo5MCwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0yNVQwODoyMDozMS43NTA2MjQ0MDVaIiwiU2VxIjoxNCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjE4MDI5NTM3NTQsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiY29uZmlnIERQODM2NDBfUEhZXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImRyaXZlcnMvcHRwL0tjb25maWc9NzI9Y29tbWVudCBcXFwiRW5hYmxlIFBIWUxJQiBhbmQgTkVUV09SS19QSFlfVElNRVNUQU1QSU5HIHRvIHNlZSB0aGUgYWRkaXRpb25hbCBjbG9ja3MuXFxcIlxcbi0tXFxuZHJpdmVycy9wdHAvS2NvbmZpZy03NC1cXG5kcml2ZXJzL3B0cC9LY29uZmlnOjc1OmNvbmZpZyBEUDgzNjQwX1BIWVxcbmRyaXZlcnMvcHRwL0tjb25maWctNzYtXFx0dHJpc3RhdGUgXFxcIkRyaXZlciBmb3IgdGhlIE5hdGlvbmFsIFNlbWljb25kdWN0b3IgRFA4MzY0MCBQSFlURVJcXFwiXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTI1VDA4OjIwOjMzLjU1MzU4MzQ2OVoiLCJTZXEiOjE1LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjozNDc0OTA1NjY5LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJIZXJlJ3MgbXkgdGFrZSBvbiB0aG9zZSB0aG91Z2h0czpcblxuKipOYXZpZ2F0aW5nIHRoZSBLZXJuZWwncyBQVFAgRHJpdmVycyoqXG5cbk9rYXksIHNvIEknbSBsb29raW5nIGF0IHRoZSBgRFA4MzY0MF9QSFlgIOKAkyB0aGF0J3MgYSBQSFkgZm9yIFBUUCwgcmlnaHQ/IEludGVyZXN0aW5nLiBXaHkgaXMgdGhhdCBzcGVjaWZpYyBkcml2ZXIgY29uZmlndXJhdGlvbiBidXJpZWQgaW4gYGRyaXZlcnMvcHRwL0tjb25maWdgPyBJdCBzZWVtcyBhIGJpdCB1bnVzdWFsLCBidXQgSSBndWVzcyBpdCBtYWtlcyBzZW5zZSBpbiB0aGUgYnJvYWRlciBjb250ZXh0IG9mIFBUUCBoYXJkd2FyZSBzdXBwb3J0LiBUbyBnZXQgYSBiZXR0ZXIgdW5kZXJzdGFuZGluZyBvZiB0aGUgbGF5b3V0LCBsZXQgbWUganVtcCBvdmVyIHRvIHRoYXQgYEtjb25maWdgIGZpbGUgaW4gdGhlIGBkcml2ZXJzL3B0cGAgZGlyZWN0b3J5LiBJJ2xsIHRha2UgYSBsb29rIGFyb3VuZCBsaW5lIDc1OyB0aGF0J3MgdXN1YWxseSBhIGdvb2Qgc3BvdCB0byBzdGFydCB3aGVuIEknbSB0cnlpbmcgdG8gZmlndXJlIG91dCB0aGUgZGVwZW5kZW5jaWVzIGFuZCByZWxhdGlvbnNoaXBzIHdpdGhpbiB0aGVzZSBjb25maWd1cmF0aW9uIGZpbGVzLiBJdCB3aWxsIGdpdmUgbWUgYSBiZXR0ZXIgdW5kZXJzdGFuZGluZyBvZiB3aGVyZSB0aGlzIHBhcnRpY3VsYXIgZHJpdmVyIGZpdHMgaW50byB0aGUgbGFyZ2VyIGFyY2hpdGVjdHVyZSBhbmQgd2hhdCBvdGhlciBvcHRpb25zIG1pZ2h0IGJlIGludm9sdmVkLlxuXG5cbiIsIklucHV0VG9rZW5zIjozNTYyOCwiT3V0cHV0VG9rZW5zIjozNCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjQ0LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTI1VDA4OjIwOjM3LjAyODQ5MTg4OFoiLCJTZXEiOjE2LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJyZWFkLWZpbGUiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo2NjEyMCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkZpbGVcIjogXCJkcml2ZXJzL3B0cC9LY29uZmlnXCIsXG4gIFwiRmlyc3RMaW5lXCI6IDYwLFxuICBcIkxpbmVDb3VudFwiOiAzMFxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiQ29udGVudHNcIjogXCIgIDYwOlxcdFxcdGRlcGVuZHMgb24gR0lBTkZBUiB8fCBGU0xfRFBBQV9FVEggfHwgRlNMX0RQQUEyX0VUSCB8fCBGU0xfRU5FVEMgfHwgRlNMX0VORVRDX1ZGIHx8IENPTVBJTEVfVEVTVFxcbiAgNjE6XFx0XFx0ZGVwZW5kcyBvbiBQVFBfMTU4OF9DTE9DS1xcbiAgNjI6XFx0XFx0ZGVmYXVsdCB5IGlmIEdJQU5GQVIgfHwgRlNMX0RQQUFfRVRIIHx8IEZTTF9EUEFBMl9FVEggfHwgRlNMX0VORVRDIHx8IEZTTF9FTkVUQ19WRlxcbiAgNjM6XFx0XFx0aGVscFxcbiAgNjQ6XFx0XFx0ICBUaGlzIGRyaXZlciBhZGRzIHN1cHBvcnQgZm9yIHVzaW5nIHRoZSBGcmVlc2NhbGUgUW9ySVEgMTU4OFxcbiAgNjU6XFx0XFx0ICB0aW1lciBhcyBhIFBUUCBjbG9jay4gVGhpcyBjbG9jayBpcyBvbmx5IHVzZWZ1bCBpZiB5b3VyIFBUUFxcbiAgNjY6XFx0XFx0ICBwcm9ncmFtcyBhcmUgZ2V0dGluZyBoYXJkd2FyZSB0aW1lIHN0YW1wcyBvbiB0aGUgUFRQIEV0aGVybmV0XFxuICA2NzpcXHRcXHQgIHBhY2tldHMgdXNpbmcgdGhlIFNPX1RJTUVTVEFNUElORyBBUEkuXFxuICA2ODpcXHRcXG4gIDY5OlxcdFxcdCAgVG8gY29tcGlsZSB0aGlzIGRyaXZlciBhcyBhIG1vZHVsZSwgY2hvb3NlIE0gaGVyZTogdGhlIG1vZHVsZVxcbiAgNzA6XFx0XFx0ICB3aWxsIGJlIGNhbGxlZCBwdHBfcW9yaXEuXFxuICA3MTpcXHRcXG4gIDcyOlxcdGNvbW1lbnQgXFxcIkVuYWJsZSBQSFlMSUIgYW5kIE5FVFdPUktfUEhZX1RJTUVTVEFNUElORyB0byBzZWUgdGhlIGFkZGl0aW9uYWwgY2xvY2tzLlxcXCJcXG4gIDczOlxcdFxcdGRlcGVuZHMgb24gUEhZTElCPW4gfHwgTkVUV09SS19QSFlfVElNRVNUQU1QSU5HPW5cXG4gIDc0OlxcdFxcbiAgNzU6XFx0Y29uZmlnIERQODM2NDBfUEhZXFxuICA3NjpcXHRcXHR0cmlzdGF0ZSBcXFwiRHJpdmVyIGZvciB0aGUgTmF0aW9uYWwgU2VtaWNvbmR1Y3RvciBEUDgzNjQwIFBIWVRFUlxcXCJcXG4gIDc3OlxcdFxcdGRlcGVuZHMgb24gTkVUV09SS19QSFlfVElNRVNUQU1QSU5HXFxuICA3ODpcXHRcXHRkZXBlbmRzIG9uIFBIWUxJQlxcbiAgNzk6XFx0XFx0ZGVwZW5kcyBvbiBQVFBfMTU4OF9DTE9DS1xcbiAgODA6XFx0XFx0c2VsZWN0IENSQzMyXFxuICA4MTpcXHRcXHRoZWxwXFxuICA4MjpcXHRcXHQgIFN1cHBvcnRzIHRoZSBEUDgzNjQwIFBIWVRFUiB3aXRoIElFRUUgMTU4OCBmZWF0dXJlcy5cXG4gIDgzOlxcdFxcbiAgODQ6XFx0XFx0ICBUaGlzIGRyaXZlciBhZGRzIHN1cHBvcnQgZm9yIHVzaW5nIHRoZSBEUDgzNjQwIGFzIGEgUFRQXFxuICA4NTpcXHRcXHQgIGNsb2NrLiBUaGlzIGNsb2NrIGlzIG9ubHkgdXNlZnVsIGlmIHlvdXIgUFRQIHByb2dyYW1zIGFyZVxcbiAgODY6XFx0XFx0ICBnZXR0aW5nIGhhcmR3YXJlIHRpbWUgc3RhbXBzIG9uIHRoZSBQVFAgRXRoZXJuZXQgcGFja2V0c1xcbiAgODc6XFx0XFx0ICB1c2luZyB0aGUgU09fVElNRVNUQU1QSU5HIEFQSS5cXG4gIDg4OlxcdFxcbiAgODk6XFx0XFx0ICBJbiBvcmRlciBmb3IgdGhpcyB0byB3b3JrLCB5b3VyIE1BQyBkcml2ZXIgbXVzdCBhbHNvXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTI1VDA4OjIwOjM3LjAyODU1OTM1OFoiLCJTZXEiOjE3LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjozNDIwODA3MTg0LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJPa2F5LCBsZXQncyBicmVhayB0aGlzIGRvd24uXG5cbioqRGVwZW5kZW5jaWVzIGFuZCBWZXJpZmljYXRpb24qKlxuXG5SaWdodCwgc28gSSdtIGxvb2tpbmcgYXQgYERQODM2NDBfUEhZYCBhbmQgaXQncyBmbGFnZ2VkIGFzIGRlcGVuZGluZyBvbiBgTkVUV09SS19QSFlfVElNRVNUQU1QSU5HYCwgYFBIWUxJQmAsIGFuZCBgUFRQXzE1ODhfQ0xPQ0tgLiBNYWtlcyBzZW5zZSwgdGhlIERQODM2NDAgaXMgYSBwb3B1bGFyIFBIWSBmb3IgdGltZXN0YW1waW5nLiBJIG5lZWQgdG8gbWFrZSBzdXJlIHRob3NlIGRlcGVuZGVuY2llcyBhcmUgcHJvcGVybHkgaGFuZGxlZC4gVGhlIGNydWNpYWwgb25lcyB0byBkb3VibGUtY2hlY2ssIHRob3VnaCwgYXJlIGBORVRXT1JLX1BIWV9USU1FU1RBTVBJTkdgIGFuZCBgUFRQXzE1ODhfQ0xPQ0tgIOKAkyBgUEhZTElCYCBpcyBwcmV0dHkgc3RhbmRhcmQgZm9yIFBIWSBkZXZpY2UgZHJpdmVycy4gTGV0J3MgbWFrZSBzdXJlIHRob3NlIHR3byBhcmUgY29uZmlndXJlZCBjb3JyZWN0bHkgYW5kIHRoYXQgdGhlcmUncyBubyBjb25mbGljdC4gSSdsbCBuZWVkIHRvIGRpZyBpbnRvIHRoZSBzZXR0aW5ncyBmb3IgdGhvc2UgZmVhdHVyZXMuIFRoaXMgaXMgd2hlcmUgSSdsbCBiZSBsb29raW5nIGZvciBjb25maWd1cmF0aW9uIG9wdGlvbnMgb3IgYW55IHBvc3NpYmxlIGNvbmZsaWN0cy4gVGltZSB0byBjaGVjayB0aG9zZSBjb25maWd1cmF0aW9ucyBhbmQgbWFrZSBzdXJlIGV2ZXJ5dGhpbmcgaXMgaW4gb3JkZXIuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjM2NDM4LCJPdXRwdXRUb2tlbnMiOjIxLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6NjIsIlRvb2xDYWxscyI6WyJyZWFkLWZpbGUiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0yNVQwODoyMDo0MC40NDkzNjk4MzFaIiwiU2VxIjoxOCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjIxMDI3NjczMDgsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiY29uZmlnIE5FVFdPUktfUEhZX1RJTUVTVEFNUElOR1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJuZXQvS2NvbmZpZz0xNTE9Y29uZmlnIE5FVF9QVFBfQ0xBU1NJRllcXG4tLVxcbm5ldC9LY29uZmlnLTE1My1cXG5uZXQvS2NvbmZpZzoxNTQ6Y29uZmlnIE5FVFdPUktfUEhZX1RJTUVTVEFNUElOR1xcbm5ldC9LY29uZmlnLTE1NS1cXHRib29sIFxcXCJUaW1lc3RhbXBpbmcgaW4gUEhZIGRldmljZXNcXFwiXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTI1VDA4OjIwOjQyLjU1MjE0Mzk0OVoiLCJTZXEiOjE5LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjozMDM2Nzg4OTQ3LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJIZXJlJ3MgYSBzdW1tYXJ5IG9mIG15IHRob3VnaHQgcHJvY2VzcywgYXMgcmVxdWVzdGVkOlxuXG4qKk5hdmlnYXRpbmcgdGhlIEtlcm5lbCBDb25maWd1cmF0aW9uIExhbmRzY2FwZSoqXG5cbk9rYXksIHNvIEknbSBkaWdnaW5nIGludG8gdGhpcyBgbmV0L0tjb25maWdgIGZpbGUgYWdhaW4uIEkgbmVlZCB0byByZWZyZXNoIG15IG1lbW9yeSBvbiBhIHNwZWNpZmljIGNvbmZpZ3VyYXRpb24gZGV0YWlsLCBhbmQgSSBzZWVtIHRvIHJlY2FsbCBpdCdzIHNvbWV3aGVyZSBhcm91bmQgbGluZSAxNTQuIExldCBtZSBqdW1wIHJpZ2h0IHRoZXJlIGFuZCBzZWUgd2hhdCdzIHdoYXQuIEknbSBnb2luZyB0byBxdWlja2x5IHBhcnNlIHRoZSByZWxldmFudCBjb250ZXh0IGFyb3VuZCB0aGF0IGxpbmUg4oCTIGtleXdvcmRzLCBkZXBlbmRlbmNpZXMsIGFuZCBhbnkgYWNjb21wYW55aW5nIGNvbW1lbnRzIOKAkyB0byB6ZXJvIGluIG9uIHRoZSBwcmVjaXNlIGNvbmZpZ3VyYXRpb24gb3B0aW9uIEknbSBpbnRlcmVzdGVkIGluIGFuZCBpdHMgcmVsYXRpb25zaGlwIHRvIHRoZSBzdXJyb3VuZGluZyBuZXR3b3JrIHN0YWNrLiBJJ20gaG9waW5nIEkgY2FuIGZpbmQgdGhlIGluZm9ybWF0aW9uIHF1aWNrbHksIGFuZCBJIGFtIGZhaXJseSBjZXJ0YWluIEkgY2FuLlxuXG5cbiIsIklucHV0VG9rZW5zIjozNjc5OSwiT3V0cHV0VG9rZW5zIjozMiwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjE3LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTI1VDA4OjIwOjQ1LjU4ODkzNjU5NloiLCJTZXEiOjIwLCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJyZWFkLWZpbGUiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo3Mzk4MCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkZpbGVcIjogXCJuZXQvS2NvbmZpZ1wiLFxuICBcIkZpcnN0TGluZVwiOiAxNDUsXG4gIFwiTGluZUNvdW50XCI6IDIwXG59IiwiUmVzdWx0cyI6IntcbiAgXCJDb250ZW50c1wiOiBcIiAxNDU6XFx0XFx0Ym9vbCBcXFwiU2VjdXJpdHkgTWFya2luZ1xcXCJcXG4gMTQ2OlxcdFxcdGhlbHBcXG4gMTQ3OlxcdFxcdCAgVGhpcyBlbmFibGVzIHNlY3VyaXR5IG1hcmtpbmcgb2YgbmV0d29yayBwYWNrZXRzLCBzaW1pbGFyXFxuIDE0ODpcXHRcXHQgIHRvIG5mbWFyaywgYnV0IGRlc2lnbmF0ZWQgZm9yIHNlY3VyaXR5IHB1cnBvc2VzLlxcbiAxNDk6XFx0XFx0ICBJZiB5b3UgYXJlIHVuc3VyZSBob3cgdG8gYW5zd2VyIHRoaXMgcXVlc3Rpb24sIGFuc3dlciBOLlxcbiAxNTA6XFx0XFxuIDE1MTpcXHRjb25maWcgTkVUX1BUUF9DTEFTU0lGWVxcbiAxNTI6XFx0XFx0ZGVmX2Jvb2wgblxcbiAxNTM6XFx0XFxuIDE1NDpcXHRjb25maWcgTkVUV09SS19QSFlfVElNRVNUQU1QSU5HXFxuIDE1NTpcXHRcXHRib29sIFxcXCJUaW1lc3RhbXBpbmcgaW4gUEhZIGRldmljZXNcXFwiXFxuIDE1NjpcXHRcXHRzZWxlY3QgTkVUX1BUUF9DTEFTU0lGWVxcbiAxNTc6XFx0XFx0aGVscFxcbiAxNTg6XFx0XFx0ICBUaGlzIGFsbG93cyB0aW1lc3RhbXBpbmcgb2YgbmV0d29yayBwYWNrZXRzIGJ5IFBIWXMgKG9yXFxuIDE1OTpcXHRcXHQgIG90aGVyIE1JSSBidXMgc25vb3BpbmcgZGV2aWNlcykgd2l0aCBoYXJkd2FyZSB0aW1lc3RhbXBpbmdcXG4gMTYwOlxcdFxcdCAgY2FwYWJpbGl0aWVzLiBUaGlzIG9wdGlvbiBhZGRzIHNvbWUgb3ZlcmhlYWQgaW4gdGhlIHRyYW5zbWl0XFxuIDE2MTpcXHRcXHQgIGFuZCByZWNlaXZlIHBhdGhzLlxcbiAxNjI6XFx0XFxuIDE2MzpcXHRcXHQgIElmIHlvdSBhcmUgdW5zdXJlIGhvdyB0byBhbnN3ZXIgdGhpcyBxdWVzdGlvbiwgYW5zd2VyIE4uXFxuIDE2NDpcXHRcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMjVUMDg6MjA6NDUuNTg5MDEyMzE2WiIsIlNlcSI6MjEsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjMzODkzODU0NDYsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6Ik9rYXksIGhlcmUncyBteSBzdW1tYXJ5LCBwcmVzZW50ZWQgYXMgYSBzdHJlYW0gb2YgdGhvdWdodDpcblxuKipDbG9jaywgQ2xvY2ssIEV2ZXJ5d2hlcmUuLi5CdXQgV2hhdCBBYm91dCBUaGF0IDE1ODggVGhpbmc/KipcblxuQWxyaWdodCwgbGV0J3Mgc2VlLiBXZSdyZSBsb29raW5nIGF0IHRoaXMgYXJjaGl0ZWN0dXJlLCB0aGlzIHN5c3RlbeKApmFuZCBJJ20gdGhpbmtpbmcgYWJvdXQgdGltaW5nLCBhcyBhbHdheXMuIFdlJ3ZlIGdvdCBhbGwgdGhlc2UgY2xvY2tzLCBhbGwgdGhlc2UgZGlmZmVyZW50IHdheXMgb2Yga2VlcGluZyB0cmFjayBvZiB0aW1lLiBCdXQgSSBrZWVwIGNvbWluZyBiYWNrIHRvIHRoaXMgbGl0dGxlIGRldGFpbCwgbmFnZ2luZyBhdCB0aGUgYmFjayBvZiBteSBtaW5kLiBXaGF0IGFib3V0IGBQVFBfMTU4OF9DTE9DS2A/IFdoYXQncyB0aGUgY29udGV4dCBoZXJlPyBJcyBpdCBiZWluZyB1c2VkPyBIb3cgaXMgaXQgaW50ZWdyYXRlZD8gSXMgaXQgYSBjcml0aWNhbCB0aW1pbmcgc291cmNlLCBvciBhIGJhY2t1cD8gQXJlIHRoZXJlIGFueSBwb3RlbnRpYWwgaXNzdWVzIHdpdGggaXRzIHN5bmNocm9uaXphdGlvbiBpbiB0aGlzIHBhcnRpY3VsYXIgc2V0dXA/IEkgbmVlZCB0byBkcmlsbCBkb3duIG9uIHRoYXQuIFRoYXQncyBhIGtleSBlbGVtZW50LCBhbmQgSSBkb24ndCB3YW50IHRvIGdsb3NzIG92ZXIgaXQuIFRoaXMgYFBUUF8xNTg4X0NMT0NLYOKApml0J3MgcG90ZW50aWFsbHkgdGhlIGxpbmNocGluIG9yIGEgd2VhayBwb2ludC4gTmVlZCB0byB1bmRlcnN0YW5kIGl0cyByb2xlLlxuXG5cbiIsIklucHV0VG9rZW5zIjozNzI4MCwiT3V0cHV0VG9rZW5zIjoyNCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjEzLCJUb29sQ2FsbHMiOlsicmVhZC1maWxlIl19LHsiU3RhcnRlZCI6IjIwMjYtMDctMjVUMDg6MjA6NDguOTc4NDAwNjMyWiIsIlNlcSI6MjIsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoxNzkzOTk3ODg0LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcImNvbmZpZyBQVFBfMTU4OF9DTE9DS1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJkcml2ZXJzL25ldC9ldGhlcm5ldC94c2NhbGUvS2NvbmZpZz0yMT1jb25maWcgSVhQNFhYX0VUSFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQveHNjYWxlL0tjb25maWctMzAtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQveHNjYWxlL0tjb25maWc6MzE6Y29uZmlnIFBUUF8xNTg4X0NMT0NLX0lYUDQ2WFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3hzY2FsZS9LY29uZmlnLTMyLVxcdGJvb2wgXFxcIkludGVsIElYUDQ2eCBhcyBQVFAgY2xvY2tcXFwiXFxuLS1cXG5kcml2ZXJzL3B0cC9LY29uZmlnPTY9bWVudSBcXFwiUFRQIGNsb2NrIHN1cHBvcnRcXFwiXFxuZHJpdmVycy9wdHAvS2NvbmZpZy03LVxcbmRyaXZlcnMvcHRwL0tjb25maWc6ODpjb25maWcgUFRQXzE1ODhfQ0xPQ0tcXG5kcml2ZXJzL3B0cC9LY29uZmlnLTktXFx0dHJpc3RhdGUgXFxcIlBUUCBjbG9jayBzdXBwb3J0XFxcIlxcbi0tXFxuZHJpdmVycy9wdHAvS2NvbmZpZy0yOS1cXG5kcml2ZXJzL3B0cC9LY29uZmlnOjMwOmNvbmZpZyBQVFBfMTU4OF9DTE9DS19PUFRJT05BTFxcbmRyaXZlcnMvcHRwL0tjb25maWctMzEtXFx0dHJpc3RhdGVcXG4tLVxcbmRyaXZlcnMvcHRwL0tjb25maWctNDEtXFxuZHJpdmVycy9wdHAvS2NvbmZpZzo0Mjpjb25maWcgUFRQXzE1ODhfQ0xPQ0tfRFRFXFxuZHJpdmVycy9wdHAvS2NvbmZpZy00My1cXHR0cmlzdGF0ZSBcXFwiQnJvYWRjb20gRFRFIGFzIFBUUCBjbG9ja1xcXCJcXG4tLVxcbmRyaXZlcnMvcHRwL0tjb25maWctNTctXFxuZHJpdmVycy9wdHAvS2NvbmZpZzo1ODpjb25maWcgUFRQXzE1ODhfQ0xPQ0tfUU9SSVFcXG5kcml2ZXJzL3B0cC9LY29uZmlnLTU5LVxcdHRyaXN0YXRlIFxcXCJGcmVlc2NhbGUgUW9ySVEgMTU4OCB0aW1lciBhcyBQVFAgY2xvY2tcXFwiXFxuLS1cXG5kcml2ZXJzL3B0cC9LY29uZmlnPTc1PWNvbmZpZyBEUDgzNjQwX1BIWVxcbi0tXFxuZHJpdmVycy9wdHAvS2NvbmZpZy05MS1cXG5kcml2ZXJzL3B0cC9LY29uZmlnOjkyOmNvbmZpZyBQVFBfMTU4OF9DTE9DS19JTkVTXFxuZHJpdmVycy9wdHAvS2NvbmZpZy05My1cXHR0cmlzdGF0ZSBcXFwiWkhBVyBJbkVTIFBUUCB0aW1lIHN0YW1waW5nIElQIGNvcmVcXFwiXFxuLS1cXG5kcml2ZXJzL3B0cC9LY29uZmlnLTEwMi1cXG5kcml2ZXJzL3B0cC9LY29uZmlnOjEwMzpjb25maWcgUFRQXzE1ODhfQ0xPQ0tfUENIXFxuZHJpdmVycy9wdHAvS2NvbmZpZy0xMDQtXFx0dHJpc3RhdGUgXFxcIkludGVsIFBDSCBFRzIwVCBhcyBQVFAgY2xvY2tcXFwiXFxuLS1cXG5kcml2ZXJzL3B0cC9LY29uZmlnLTEyMS1cXG5kcml2ZXJzL3B0cC9LY29uZmlnOjEyMjpjb25maWcgUFRQXzE1ODhfQ0xPQ0tfS1ZNXFxuZHJpdmVycy9wdHAvS2NvbmZpZy0xMjMtXFx0dHJpc3RhdGUgXFxcIktWTSB2aXJ0dWFsIFBUUCBjbG9ja1xcXCJcXG4tLVxcbmRyaXZlcnMvcHRwL0tjb25maWctMTMzLVxcbmRyaXZlcnMvcHRwL0tjb25maWc6MTM0OmNvbmZpZyBQVFBfMTU4OF9DTE9DS19WTUNMT0NLXFxuZHJpdmVycy9wdHAvS2NvbmZpZy0xMzUtXFx0dHJpc3RhdGUgXFxcIlZpcnR1YWwgbWFjaGluZSBQVFAgY2xvY2tcXFwiXFxuLS1cXG5kcml2ZXJzL3B0cC9LY29uZmlnLTE1MC1cXG5kcml2ZXJzL3B0cC9LY29uZmlnOjE1MTpjb25maWcgUFRQXzE1ODhfQ0xPQ0tfSURUODJQMzNcXG5kcml2ZXJzL3B0cC9LY29uZmlnLTE1Mi1cXHR0cmlzdGF0ZSBcXFwiSURUIDgyUDMzeHh4IFBUUCBjbG9ja1xcXCJcXG4tLVxcbmRyaXZlcnMvcHRwL0tjb25maWctMTYyLVxcbmRyaXZlcnMvcHRwL0tjb25maWc6MTYzOmNvbmZpZyBQVFBfMTU4OF9DTE9DS19JRFRDTVxcbmRyaXZlcnMvcHRwL0tjb25maWctMTY0LVxcdHRyaXN0YXRlIFxcXCJJRFQgQ0xPQ0tNQVRSSVggYXMgUFRQIGNsb2NrXFxcIlxcbi0tXFxuZHJpdmVycy9wdHAvS2NvbmZpZy0xNzQtXFxuZHJpdmVycy9wdHAvS2NvbmZpZzoxNzU6Y29uZmlnIFBUUF8xNTg4X0NMT0NLX0ZDM1dcXG5kcml2ZXJzL3B0cC9LY29uZmlnLTE3Ni1cXHR0cmlzdGF0ZSBcXFwiUkVORVNBUyBGZW10b0Nsb2NrMyBXaXJlbGVzcyBhcyBQVFAgY2xvY2tcXFwiXFxuLS1cXG5kcml2ZXJzL3B0cC9LY29uZmlnLTE4Ni1cXG5kcml2ZXJzL3B0cC9LY29uZmlnOjE4Nzpjb25maWcgUFRQXzE1ODhfQ0xPQ0tfTU9DS1xcbmRyaXZlcnMvcHRwL0tjb25maWctMTg4LVxcdHRyaXN0YXRlIFxcXCJNb2NrLXVwIFBUUCBjbG9ja1xcXCJcXG4tLVxcbmRyaXZlcnMvcHRwL0tjb25maWctMTk3LVxcbmRyaXZlcnMvcHRwL0tjb25maWc6MTk4OmNvbmZpZyBQVFBfMTU4OF9DTE9DS19WTVdcXG5kcml2ZXJzL3B0cC9LY29uZmlnLTE5OS1cXHR0cmlzdGF0ZSBcXFwiVk13YXJlIHZpcnR1YWwgUFRQIGNsb2NrXFxcIlxcbi0tXFxuZHJpdmVycy9wdHAvS2NvbmZpZy0yMDktXFxuZHJpdmVycy9wdHAvS2NvbmZpZzoyMTA6Y29uZmlnIFBUUF8xNTg4X0NMT0NLX09DUFxcbmRyaXZlcnMvcHRwL0tjb25maWctMjExLVxcdHRyaXN0YXRlIFxcXCJPcGVuQ29tcHV0ZSBUaW1lQ2FyZCBhcyBQVFAgY2xvY2tcXFwiXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTI1VDA4OjIwOjUwLjc3MjQwNTcwNloiLCJTZXEiOjIzLCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjozNzc4MjE3MzczLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJIZXJlJ3MgbXkgdGFrZSBvbiB0aGUgYGRyaXZlcnMvcHRwL0tjb25maWdgIGZpbGUsIHNwZWNpZmljYWxseSBhcm91bmQgbGluZSA4LlxuXG4qKkV4YW1pbmluZyB0aGUgUFRQIERyaXZlciBDb25maWd1cmF0aW9uIE9wdGlvbnMqKlxuXG5BbHJpZ2h0LCBsZXQncyBkaXZlIGludG8gdGhpcyBgZHJpdmVycy9wdHAvS2NvbmZpZ2AgZmlsZS4gSSBuZWVkIHRvIGdldCBhIGhhbmRsZSBvbiB0aGUgYXZhaWxhYmxlIGNvbmZpZ3VyYXRpb24gb3B0aW9ucyBmb3IgdGhlIFByZWNpc2lvbiBUaW1lIFByb3RvY29sIChQVFApIGRyaXZlcnMgaW4gdGhlIGtlcm5lbC4gSSdtIGZvY3VzaW5nIG9uIGFyb3VuZCBsaW5lIDggYmVjYXVzZSB0aGF0J3MgdXN1YWxseSB3aGVyZSB0aGUgbWFpbiBtb2R1bGUgZGVjbGFyYXRpb25zIG9yIGEgcmVsZXZhbnQgdG9wLWxldmVsIHByb21wdCB0ZW5kcyB0byByZXNpZGUsIG9yIGF0IGxlYXN0IHRoZSBzdGFydCBvZiBhIGxvZ2ljYWwgZ3JvdXBpbmcgb2Ygb3B0aW9ucy4gSSBleHBlY3QgdG8gc2VlIHRoZSBiYXNpYyBzdHJ1Y3R1cmUgb2YgaG93IHRoZXNlIGRyaXZlcnMgYXJlIG9yZ2FuaXplZCwgcGVyaGFwcyB3aXRoIGEgdG9wLWxldmVsIGBDT05GSUdfUFRQYCBvciBzaW1pbGFyIHN5bWJvbCBkZWZpbmluZyB0aGUgcGFyZW50IGZyYW1ld29yaywgYW5kIHRoZW4gdGhlIHZhcmlvdXMgc3BlY2lmaWMgZHJpdmVyIG9wdGlvbnMgYnJhbmNoaW5nIGZyb20gdGhlcmUuIEknbSBsb29raW5nIGZvciB0aGUgZGVwZW5kZW5jaWVzLCBkZWZhdWx0cywgYW5kIGRlc2NyaXB0aW9ucy4gVGhpcyBpbml0aWFsIHNjYW4gd2lsbCBoZWxwIG1lIHVuZGVyc3RhbmQgdGhlIG92ZXJhbGwgZGVzaWduIGFuZCBzZWUgd2hhdCdzIGF2YWlsYWJsZSBhbmQgaWYgaXQgbWF0Y2hlcyB3aXRoIHRoZSBjdXJyZW50IHByb2plY3QgcmVxdWlyZW1lbnRzLiBJJ20gcmVhZHkgdG8gZGlnIGluIGFuZCBkZWNpcGhlciB3aGF0IEkgZmluZCFcblxuXG4iLCJJbnB1dFRva2VucyI6Mzg2MzAsIk91dHB1dFRva2VucyI6MzMsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoxOCwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0yNVQwODoyMDo1NC41NTA2MjU5ODlaIiwiU2VxIjoyNCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoicmVhZC1maWxlIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6ODI2ODAsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJGaWxlXCI6IFwiZHJpdmVycy9wdHAvS2NvbmZpZ1wiLFxuICBcIkZpcnN0TGluZVwiOiAxLFxuICBcIkxpbmVDb3VudFwiOiAyMFxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiQ29udGVudHNcIjogXCIgICAxOlxcdCMgU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjAtb25seVxcbiAgIDI6XFx0I1xcbiAgIDM6XFx0IyBQVFAgY2xvY2sgc3VwcG9ydCBjb25maWd1cmF0aW9uXFxuICAgNDpcXHQjXFxuICAgNTpcXHRcXG4gICA2OlxcdG1lbnUgXFxcIlBUUCBjbG9jayBzdXBwb3J0XFxcIlxcbiAgIDc6XFx0XFxuICAgODpcXHRjb25maWcgUFRQXzE1ODhfQ0xPQ0tcXG4gICA5OlxcdFxcdHRyaXN0YXRlIFxcXCJQVFAgY2xvY2sgc3VwcG9ydFxcXCJcXG4gIDEwOlxcdFxcdGRlcGVuZHMgb24gTkVUIFxcdTAwMjZcXHUwMDI2IFBPU0lYX1RJTUVSU1xcbiAgMTE6XFx0XFx0ZGVmYXVsdCBFVEhFUk5FVFxcbiAgMTI6XFx0XFx0c2VsZWN0IFBQU1xcbiAgMTM6XFx0XFx0c2VsZWN0IE5FVF9QVFBfQ0xBU1NJRllcXG4gIDE0OlxcdFxcdGhlbHBcXG4gIDE1OlxcdFxcdCAgVGhlIElFRUUgMTU4OCBzdGFuZGFyZCBkZWZpbmVzIGEgbWV0aG9kIHRvIHByZWNpc2VseVxcbiAgMTY6XFx0XFx0ICBzeW5jaHJvbml6ZSBkaXN0cmlidXRlZCBjbG9ja3Mgb3ZlciBFdGhlcm5ldCBuZXR3b3Jrcy4gVGhlXFxuICAxNzpcXHRcXHQgIHN0YW5kYXJkIGRlZmluZXMgYSBQcmVjaXNpb24gVGltZSBQcm90b2NvbCAoUFRQKSwgd2hpY2ggY2FuXFxuICAxODpcXHRcXHQgIGJlIHVzZWQgdG8gYWNoaWV2ZSBzeW5jaHJvbml6YXRpb24gd2l0aGluIGEgZmV3IGRvemVuXFxuICAxOTpcXHRcXHQgIG1pY3Jvc2Vjb25kcy4gSW4gYWRkaXRpb24sIHdpdGggdGhlIGhlbHAgb2Ygc3BlY2lhbCBoYXJkd2FyZVxcbiAgMjA6XFx0XFx0ICB0aW1lIHN0YW1waW5nIHVuaXRzLCBpdCBjYW4gYmUgcG9zc2libGUgdG8gYWNoaWV2ZVxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0yNVQwODoyMDo1NC41NTA3MDk5OTlaIiwiU2VxIjoyNSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6MzA3ODA0Nzk2MywiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiT2theSwgaGVyZSdzIG15IGludGVycHJldGF0aW9uIG9mIHRob3NlIHRob3VnaHRzLCBzdW1tYXJpemVkIGZyb20gbXkgcGVyc3BlY3RpdmUgYXMgYSBoaWdobHkga25vd2xlZGdlYWJsZSBwcm9mZXNzaW9uYWwgaW4gdGhlIGZpZWxkOlxuXG4qKkRlcGVuZGVuY2llcyBhbmQgTG9jYXRpb25zOiBBIFF1aWNrIE1lbnRhbCBJbnZlbnRvcnkqKlxuXG5SaWdodCwgc28gSSdtIHRoaW5raW5nIGFib3V0IHRoZSBzeXN0ZW0gZGVwZW5kZW5jaWVzLiBUaGUgYFBUUF8xNTg4X0NMT0NLYCBmZWF0dXJlLCB0aGF0J3MgZGVmaW5pdGVseSBjb250aW5nZW50IG9uIHRoZSBuZXR3b3JraW5nIHN0YWNrLCBgTkVUYCwgYW5kIHRoZSBQT1NJWCB0aW1lcnMgc3VwcG9ydCwgYFBPU0lYX1RJTUVSU2AuIE1ha2VzIHNlbnNlLCBvZiBjb3Vyc2Ug4oCTIGl0IG5lZWRzIG5ldHdvcmsgdGltZSBzeW5jaHJvbml6YXRpb24gYW5kIGEgdGltaW5nIG1lY2hhbmlzbSB0byB3b3JrLiBJdCdzIGFsbW9zdCBheGlvbWF0aWMuIEFuZCBJIG5lZWQgdG8gcmVtZW1iZXIgd2hlcmUgdG8gbG9jYXRlIHRoZSBQSFkgZHJpdmVyIGxpYnJhcnkgY29uZmlndXJhdGlvbiwgaXQncyBgUEhZTElCYCBhbmQgdGhhdCBjb25maWd1cmF0aW9uIGlzIGluIGBkcml2ZXJzL25ldC9waHkvS2NvbmZpZ2AuIFRoZXNlIGFyZSB0aGluZ3MgSSBuZWVkIHRvIGFjY2VzcyBmb3IgZnVydGhlciBpbnZlc3RpZ2F0aW9uLiBJdCdzIGFsbCBhYm91dCByZW1lbWJlcmluZyB3aGVyZSB0aGluZ3MgYXJlLlxuXG5cbiIsIklucHV0VG9rZW5zIjozOTE2NywiT3V0cHV0VG9rZW5zIjoxNywiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjQyLCJUb29sQ2FsbHMiOlsicmVhZC1maWxlIl19LHsiU3RhcnRlZCI6IjIwMjYtMDctMjVUMDg6MjA6NTcuNjI4NzYwNTAyWiIsIlNlcSI6MjYsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoxODMxMTE4NzcxLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcImNvbmZpZyBQSFlMSUJcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiZHJpdmVycy9uZXQvcGh5L0tjb25maWc9Nj1jb25maWcgUEhZTElOS1xcbi0tXFxuZHJpdmVycy9uZXQvcGh5L0tjb25maWctMTQtXFxuZHJpdmVycy9uZXQvcGh5L0tjb25maWc6MTU6bWVudWNvbmZpZyBQSFlMSUJcXG5kcml2ZXJzL25ldC9waHkvS2NvbmZpZy0xNi1cXHR0cmlzdGF0ZSBcXFwiUEhZIERldmljZSBzdXBwb3J0IGFuZCBpbmZyYXN0cnVjdHVyZVxcXCJcXG4tLVxcbmRyaXZlcnMvbmV0L3BoeS9LY29uZmlnPTQ2PWNvbmZpZyBPUEVOX0FMTElBTkNFX0hFTFBFUlNcXG4tLVxcbmRyaXZlcnMvbmV0L3BoeS9LY29uZmlnLTQ4LVxcbmRyaXZlcnMvbmV0L3BoeS9LY29uZmlnOjQ5OmNvbmZpZyBQSFlMSUJfTEVEU1xcbmRyaXZlcnMvbmV0L3BoeS9LY29uZmlnLTUwLVxcdGRlZl9ib29sIE9GXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTI1VDA4OjIwOjU5LjQ1OTg4NzgyMloiLCJTZXEiOjI3LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjozMzk3NzEwODQ1LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJIZXJlJ3MgYSBzdW1tYXJ5IG9mIG15IHRob3VnaHQgcHJvY2VzcywgYXMgcmVxdWVzdGVkOlxuXG4qKk5hdmlnYXRpbmcgdGhlIFBIWSBDb25maWd1cmF0aW9uIFNwYWNlKipcblxuT2theSwgbGV0J3MgZGl2ZSBpbnRvIHRoZSBrZXJuZWwgc291cmNlLiBJIG5lZWQgdG8gdW5kZXJzdGFuZCBob3cgdGhlIFBIWSBjb25maWd1cmF0aW9uIGlzIGhhbmRsZWQgd2l0aGluIHRoZSBuZXR3b3JraW5nIHN1YnN5c3RlbSwgc28gSSdsbCBzdGFydCB3aXRoIHRoZSBsaWtlbHkgY2FuZGlkYXRlOiBgZHJpdmVycy9uZXQvcGh5L0tjb25maWdgLiBTcGVjaWZpY2FsbHksIEkgd2FudCB0byB6ZXJvIGluIG9uIHRoZSByZWxldmFudCBzZWN0aW9ucyBvZiB0aGUgS2NvbmZpZyBmaWxlLCBsaWtlbHkgYXJvdW5kIGxpbmUgMTUsIHRvIGdhaW4gaW5zaWdodCBpbnRvIHRoZSBkZWZhdWx0IG9wdGlvbnMsIGFueSBkZXBlbmRlbmNpZXMsIGFuZCBob3BlZnVsbHkgZ2V0IGEgZmVlbCBmb3IgdGhlIG92ZXJhbGwgc3RydWN0dXJlIG9mIHRoZSBQSFkgZHJpdmVyIGNvbmZpZ3VyYXRpb24uIFRoaXMgZmlsZSBpcyB0aGUgc3RhcnRpbmcgcG9pbnQgZm9yIHVuZGVyc3RhbmRpbmcgd2hhdCBQSFkgZHJpdmVycyBhcmUgYnVpbHQtaW4sIG1vZHVsYXJpemVkLCBhbmQgY29uZmlndXJhYmxlLCBhbmQgd2hhdCBmYWN0b3JzIGNvbnRyb2wgdGhvc2UgYnVpbGQgZGVjaXNpb25zLiBLbm93aW5nIHRoZSBgS2NvbmZpZ2Agc3RydWN0dXJlIGhlbHBzIG1lIHF1aWNrbHkgYXNzZXNzIHRoZSBzY29wZSBvZiB0aGUgUEhZIHN1cHBvcnQgYW5kIGlkZW50aWZ5IGtleSB2YXJpYWJsZXMgSSBuZWVkIHRvIHVuZGVyc3RhbmQuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjM5NTU2LCJPdXRwdXRUb2tlbnMiOjM1LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MjAsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDctMjVUMDg6MjE6MDIuODU3NjAxNjY4WiIsIlNlcSI6MjgsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6InJlYWQtZmlsZSIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjc5MTQwLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRmlsZVwiOiBcImRyaXZlcnMvbmV0L3BoeS9LY29uZmlnXCIsXG4gIFwiRmlyc3RMaW5lXCI6IDEwLFxuICBcIkxpbmVDb3VudFwiOiAyMFxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiQ29udGVudHNcIjogXCIgIDEwOlxcdFxcdGhlbHBcXG4gIDExOlxcdFxcdCAgUEhZbGluayBtb2RlbHMgdGhlIGxpbmsgYmV0d2VlbiB0aGUgUEhZIGFuZCBNQUMsIGFsbG93aW5nIGZpeGVkXFxuICAxMjpcXHRcXHQgIGNvbmZpZ3VyYXRpb24gbGlua3MsIFBIWXMsIGFuZCBTZXJkZXMgbGlua3Mgd2l0aCBNQUMgbGV2ZWxcXG4gIDEzOlxcdFxcdCAgYXV0b25lZ290aWF0aW9uIG1vZGVzLlxcbiAgMTQ6XFx0XFxuICAxNTpcXHRtZW51Y29uZmlnIFBIWUxJQlxcbiAgMTY6XFx0XFx0dHJpc3RhdGUgXFxcIlBIWSBEZXZpY2Ugc3VwcG9ydCBhbmQgaW5mcmFzdHJ1Y3R1cmVcXFwiXFxuICAxNzpcXHRcXHRoZWxwXFxuICAxODpcXHRcXHQgIEV0aGVybmV0IGNvbnRyb2xsZXJzIGFyZSB1c3VhbGx5IGF0dGFjaGVkIHRvIFBIWVxcbiAgMTk6XFx0XFx0ICBkZXZpY2VzLiAgVGhpcyBvcHRpb24gcHJvdmlkZXMgaW5mcmFzdHJ1Y3R1cmUgZm9yXFxuICAyMDpcXHRcXHQgIG1hbmFnaW5nIFBIWSBkZXZpY2VzLlxcbiAgMjE6XFx0XFxuICAyMjpcXHRpZiBQSFlMSUJcXG4gIDIzOlxcdFxcbiAgMjQ6XFx0Y29uZmlnIFNXUEhZXFxuICAyNTpcXHRcXHRib29sXFxuICAyNjpcXHRcXG4gIDI3OlxcdGNvbmZpZyBQSFlfUEFDS0FHRVxcbiAgMjg6XFx0XFx0IHRyaXN0YXRlXFxuICAyOTpcXHRcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMjVUMDg6MjE6MDIuODU3NjgyMTQ4WiIsIlNlcSI6MjksIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjE2MDQxNzI1OTM4LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkFuYWx5c2lzIG9mIERQODM2NDAgUEhZIERyaXZlciBQYXRjaCoqXG5cbk9rYXksIGxldCdzIGJyZWFrIHRoaXMgZG93bi4gRmlyc3QsIHJlZ2FyZGluZyB0aGUgY29uZmlndXJhdGlvbiwgYFBIWUxJQmAgaXRzZWxmIGhhcyBubyBzcGVjaWFsIGRlcGVuZGVuY2llcywgc28gd2UgY2FuIGNvbnNpZGVyIHRoYXQgYSBiYXNlIGxldmVsLiBUaGVuLCB3ZSBuZWVkIHRvIGVuYWJsZSBgRFA4MzY0MF9QSFlgLCBgTkVUV09SS19QSFlfVElNRVNUQU1QSU5HYCwgYFBUUF8xNTg4X0NMT0NLYCwgYW5kIGBQSFlMSUJgIHRvIHN1cHBvcnQgdGhlIGNoYW5nZXMuIFRoZSBkZXBlbmRlbmNpZXMgb2YgYERQODM2NDBfUEhZYCBvbiB0aGUgb3RoZXJzIG1lYW4gdGhhdCBpcyB0aGUgYmVzdCBvcmRlci4gTm8gb3RoZXIgZGVwZW5kZW5jaWVzIGFyZSByZXF1aXJlZC4gYE5FVFdPUktfUEhZX1RJTUVTVEFNUElOR2AgZGVwZW5kcyBvbiBub3RoaW5nLiBgUFRQXzE1ODhfQ0xPQ0tgIGRlcGVuZHMgb24gYE5FVGAgYW5kIGBQT1NJWF9USU1FUlNgLiBgUEhZTElCYCBkZXBlbmRzIG9uIG5vdGhpbmcuIFNvIHRoZSBjb3JlIGBFbmFibGVDb25maWdzYCBzaG91bGQgYmU6IGBEUDgzNjQwX1BIWWAsIGBORVRXT1JLX1BIWV9USU1FU1RBTVBJTkdgLCBgUFRQXzE1ODhfQ0xPQ0tgLCBgUEhZTElCYC5cblxuTm93LCBmb2N1c2luZyBvbiB0aGUgY29kZSBpdHNlbGYsIHRoaXMgaXMgYWxsIGFib3V0IGBkcDgzNjQwYC4gSSBuZWVkIHRvIGlkZW50aWZ5IHRoZSBmdW5jdGlvbnMgaW1wYWN0ZWQuIExvb2tpbmcgdGhyb3VnaCB0aGUgY29kZSwgSSBzZWU6IGBkcDgzNjQwX2Nsb2NrX2luaXRgLCBgZHA4MzY0MF9jbG9ja19nZXRfYnVzYCwgYGRwODM2NDBfY2xvY2tfcHV0YCwgYGRwODM2NDBfY2xvY2tfcmVsZWFzZWAsIGBkcDgzNjQwX3Byb2JlYCwgYGRwODM2NDBfcmVtb3ZlYC5cblxuYGRwODM2NDBfY2xvY2tfcmVsZWFzZWAgaXMgdGhlIGtleSBuZXcgZnVuY3Rpb24sIGV2ZW4gdGhvdWdoIGl0J3Mgc3RhdGljLCBiZWNhdXNlIGl0J3MgcGFzc2VkIGFzIGEgY2FsbGJhY2sgdG8gYGtyZWZfcHV0X211dGV4YCwgd2hpY2ggZW5zdXJlcyBpdCBoYXMgYSBkaXN0aW5jdCBzeW1ib2wgYWRkcmVzcy4gQWxzbywgYGRwODM2NDBfY2xvY2tfZ2V0X2J1c2AgaXMgY2FsbGVkIGZyb20gYGRwODM2NDBfcHJvYmVgLiBgZHA4MzY0MF9jbG9ja19wdXRgIGlzIGNhbGxlZCBmcm9tIGBkcDgzNjQwX3Byb2JlYCBhbmQgYGRwODM2NDBfcmVtb3ZlYC4gV2Ugc2hvdWxkIGFsc28gY29uc2lkZXIgYGRwODM2NDBfY2xvY2tfbG9ja2AgYW5kIGBkcDgzNjQwX2Nsb2NrX3VubG9ja2AgYmVjYXVzZSB0aGV5IGFyZSBtb2RpZmllZC5cblxuQ29uc2lkZXJpbmcgaW5saW5pbmcsIGBkcDgzNjQwX2Nsb2NrX3JlbGVhc2VgIGlzIGEgZnVuY3Rpb24gcG9pbnRlciBhbmQgY2Fubm90IGJlIGlubGluZWQuIGBkcDgzNjQwX3Byb2JlYCBhbmQgYGRwODM2NDBfcmVtb3ZlYCBhcmUgYWxzbyBmdW5jdGlvbiBwb2ludGVycywgc28gdGhleSBjYW4ndCBiZSBpbmxpbmVkIGVpdGhlci4gYGRwODM2NDBfY2xvY2tfZ2V0X2J1c2AgaXMgb25seSBjYWxsZWQgb25jZSB3aXRoaW4gYGRwODM2NDBfcHJvYmVgLCBzbyBpdCAqbWlnaHQqIGJlIGlubGluZWQuIGBkcDgzNjQwX2Nsb2NrX3B1dGAgaXMgc3RhdGljLCBzbyBpdCAqbWlnaHQqIGJlIGlubGluZWQuXG5cblRoZXJlZm9yZSwgdGhlIGtleSBmdW5jdGlvbnMgdG8gZm9jdXMgb24gYXJlOiBgZHA4MzY0MF9wcm9iZWAsIGBkcDgzNjQwX3JlbW92ZWAsIGFuZCBgZHA4MzY0MF9jbG9ja19yZWxlYXNlYC4gVGhlc2UgcmVwcmVzZW50IHRoZSBtYWluIGFyZWFzIG9mIGxvZ2ljYWwgY2hhbmdlIHdpdGhpbiB0aGlzIHBhdGNoLlxuXG5SZXZpZXdpbmcgdGhlIHBhdGNoIGNvbmZpcm1zIHRoYXQgYGRwODM2NDBfY2xvY2tfcmVsZWFzZWAgaXMgaW5kZWVkIGEgbmV3IGZ1bmN0aW9uLCBhbmQgaXQncyBlc3NlbnRpYWwgYmVjYXVzZSBpdCBpcyBwYXNzZWQgYXMgYSBmdW5jdGlvbiBwb2ludGVyIGFuZCBub3cgbWFuYWdlcyB0aGUgYGtyZWZgIGxpZmV0aW1lLiBgZHA4MzY0MF9wcm9iZWAgYW5kIGBkcDgzNjQwX3JlbW92ZWAgYXJlIHRoZSBtYWluIGVudHJ5IHBvaW50cywgc28gdGhvc2UgYXJlIGtleS5cblxuU28sIHRoZSBkZWZpbml0aXZlIGxpc3QgaXM6XG5cbiogICBgRm9jdXNTeW1ib2xzYDogYGRwODM2NDBfcHJvYmVgLCBgZHA4MzY0MF9yZW1vdmVgLCBgZHA4MzY0MF9jbG9ja19yZWxlYXNlYFxuKiAgIGBFbmFibGVDb25maWdzYDogYERQODM2NDBfUEhZYCwgYE5FVFdPUktfUEhZX1RJTUVTVEFNUElOR2AsIGBQVFBfMTU4OF9DTE9DS2AsIGBQSFlMSUJgXG5cbk15IHJlYXNvbmluZyBpcyB0aGlzOiBUaGUgcGF0Y2ggaW50cm9kdWNlcyBhIGBrcmVmYCB0byBtYW5hZ2UgdGhlIGxpZmV0aW1lIG9mIHRoZSBgc3RydWN0IGRwODM2NDBfY2xvY2tgIHdpdGhpbiB0aGUgRFA4MzY0MCBQSFkgZHJpdmVyLCByZXBsYWNpbmcgbWFudWFsIHRlYXJkb3duIGluIGBkcDgzNjQwX3JlbW92ZWAuIFRoaXMgaXMgaW50ZW5kZWQgdG8gZml4IHBvdGVudGlhbCB1c2UtYWZ0ZXItZnJlZSBpc3N1ZXMgYW5kIG1lbW9yeSBsZWFrcy4gVGhlIFBIWSBkcml2ZXIgY2FuIGJlIHByb2JlZCBhbmQgcmVtb3ZlZCBpbiBhIHZpcnR1YWxpemVkIGVudmlyb25tZW50IHdpdGggYSBlbXVsYXRlZCBNRElPIGJ1cyBsaWtlIHNtc2M5NXh4IG9yIGFzaXgsIHRoYXQgY2FuIHJldHVybiB0aGUgRFA4MzY0MCBQSFkgSUQgKDB4MjAwMDVjZTEpIHdoZW4gZG9pbmcgTURJTyByZWFkIG9wZXJhdGlvbnMuIFRoZXJlZm9yZSwgdGhpcyBjb2RlIGlzIHJlYWNoYWJsZSBhbmQgZGVzZXJ2ZXMgZnV6emluZy5cblxuTm93LCBsZXQncyBjYWxsIGBzZXQtcmVzdWx0c2AuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjQwMDA3LCJPdXRwdXRUb2tlbnMiOjIzOSwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjE0ODMsIlRvb2xDYWxscyI6WyJyZWFkLWZpbGUiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0yNVQwODoyMToxOC44OTk0MTA2NTZaIiwiU2VxIjozMCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoic2V0LXJlc3VsdHMiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo3ODgzNTcxMywiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogW1xuICAgIFwiRFA4MzY0MF9QSFlcIixcbiAgICBcIk5FVFdPUktfUEhZX1RJTUVTVEFNUElOR1wiLFxuICAgIFwiUFRQXzE1ODhfQ0xPQ0tcIixcbiAgICBcIlBIWUxJQlwiXG4gIF0sXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtcbiAgICBcImRwODM2NDBfcHJvYmVcIixcbiAgICBcImRwODM2NDBfcmVtb3ZlXCIsXG4gICAgXCJkcDgzNjQwX2Nsb2NrX3JlbGVhc2VcIlxuICBdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBpbnRyb2R1Y2VzIGEga3JlZiB0byBtYW5hZ2UgdGhlIGxpZmV0aW1lIG9mIGBzdHJ1Y3QgZHA4MzY0MF9jbG9ja2AgaW4gdGhlIERQODM2NDAgUEhZIGRyaXZlciwgcmVwbGFjaW5nIG1hbnVhbCB0ZWFyZG93biBsb2dpYyBpbiBgZHA4MzY0MF9yZW1vdmVgLiBUaGlzIGZpeGVzIHBvdGVudGlhbCB1c2UtYWZ0ZXItZnJlZSBvciBtZW1vcnkgbGVhayBpc3N1ZXMuIFRoZSBQSFkgZHJpdmVyIGNhbiBiZSBwcm9iZWQgYW5kIHJlbW92ZWQgaW4gYSB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudCBieSBlbXVsYXRpbmcgYSBVU0IgbmV0d29yayBhZGFwdGVyIChsaWtlIHNtc2M5NXh4IG9yIGFzaXgpIHRoYXQgcmVnaXN0ZXJzIGFuIE1ESU8gYnVzIGFuZCByZXR1cm5zIHRoZSBEUDgzNjQwIFBIWSBJRCAoMHgyMDAwNWNlMSkgZHVyaW5nIE1ESU8gcmVhZCBvcGVyYXRpb25zLiBUaGVyZWZvcmUsIHRoaXMgY29kZSBpcyByZWFjaGFibGUgYW5kIHdvcnRoIGZ1enppbmcuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IHRydWVcbn0iLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogW1xuICAgIFwiRFA4MzY0MF9QSFlcIixcbiAgICBcIk5FVFdPUktfUEhZX1RJTUVTVEFNUElOR1wiLFxuICAgIFwiUFRQXzE1ODhfQ0xPQ0tcIixcbiAgICBcIlBIWUxJQlwiXG4gIF0sXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtcbiAgICBcImRwODM2NDBfcHJvYmVcIixcbiAgICBcImRwODM2NDBfcmVtb3ZlXCIsXG4gICAgXCJkcDgzNjQwX2Nsb2NrX3JlbGVhc2VcIlxuICBdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBpbnRyb2R1Y2VzIGEga3JlZiB0byBtYW5hZ2UgdGhlIGxpZmV0aW1lIG9mIGBzdHJ1Y3QgZHA4MzY0MF9jbG9ja2AgaW4gdGhlIERQODM2NDAgUEhZIGRyaXZlciwgcmVwbGFjaW5nIG1hbnVhbCB0ZWFyZG93biBsb2dpYyBpbiBgZHA4MzY0MF9yZW1vdmVgLiBUaGlzIGZpeGVzIHBvdGVudGlhbCB1c2UtYWZ0ZXItZnJlZSBvciBtZW1vcnkgbGVhayBpc3N1ZXMuIFRoZSBQSFkgZHJpdmVyIGNhbiBiZSBwcm9iZWQgYW5kIHJlbW92ZWQgaW4gYSB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudCBieSBlbXVsYXRpbmcgYSBVU0IgbmV0d29yayBhZGFwdGVyIChsaWtlIHNtc2M5NXh4IG9yIGFzaXgpIHRoYXQgcmVnaXN0ZXJzIGFuIE1ESU8gYnVzIGFuZCByZXR1cm5zIHRoZSBEUDgzNjQwIFBIWSBJRCAoMHgyMDAwNWNlMSkgZHVyaW5nIE1ESU8gcmVhZCBvcGVyYXRpb25zLiBUaGVyZWZvcmUsIHRoaXMgY29kZSBpcyByZWFjaGFibGUgYW5kIHdvcnRoIGZ1enppbmcuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IHRydWVcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfV07CgkJCWlmICghcmF3RGF0YSB8fCByYXdEYXRhLmxlbmd0aCA9PT0gMCkgcmV0dXJuOwoKCQkJZHJhd1N1bW1hcnlUYWJsZXMocmF3RGF0YSk7CgkJCWRyYXdEdXJhdGlvbkNoYXJ0KHJhd0RhdGEpOwoJCQlkcmF3VG9rZW5Db25zdW1wdGlvbkNoYXJ0KHJhd0RhdGEpOwoJCX0KCgkJZnVuY3Rpb24gZHJhd1N1bW1hcnlUYWJsZXMocmF3RGF0YSkgewoJCQljb25zdCBzdGF0cyA9IHsKCQkJCWxsbTogeyBjb3VudDogMCwgdG9rZW5zOiAwLCBkdXJhdGlvbjogMCB9LAoJCQkJdG9vbDogeyBjb3VudDogMCwgZHVyYXRpb246IDAgfQoJCQl9OwoKCQkJcmF3RGF0YS5mb3JFYWNoKHMgPT4gewoJCQkJY29uc3QgZHVyID0gcy5EdXJhdGlvbiAvIDEwMDAwMDAwMDA7IAoJCQkJaWYgKHMuVHlwZSA9PT0gImxsbSIpIHsKCQkJCQlzdGF0cy5sbG0uY291bnQrKzsKCQkJCQlzdGF0cy5sbG0udG9rZW5zICs9IChzLklucHV0VG9rZW5zICsgcy5PdXRwdXRUb2tlbnMgKyBzLk91dHB1dFRob3VnaHRzVG9rZW5zKTsKCQkJCQlzdGF0cy5sbG0uZHVyYXRpb24gKz0gZHVyOwoJCQkJfSBlbHNlIGlmIChzLlR5cGUgPT09ICJ0b29sIikgewoJCQkJCXN0YXRzLnRvb2wuY291bnQrKzsKCQkJCQlzdGF0cy50b29sLmR1cmF0aW9uICs9IGR1cjsKCQkJCX0KCQkJfSk7CgoJCQljb25zdCBhdmdMbG1EdXIgPSBzdGF0cy5sbG0uY291bnQgPiAwID8gKHN0YXRzLmxsbS5kdXJhdGlvbiAvIHN0YXRzLmxsbS5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgkJCWNvbnN0IGF2Z0xsbVRva2VuID0gc3RhdHMubGxtLmNvdW50ID4gMCA/IChzdGF0cy5sbG0udG9rZW5zIC8gc3RhdHMubGxtLmNvdW50KS50b0ZpeGVkKDIpIDogMDsKCQkJY29uc3QgYXZnVG9vbER1ciA9IHN0YXRzLnRvb2wuY291bnQgPiAwID8gKHN0YXRzLnRvb2wuZHVyYXRpb24gLyBzdGF0cy50b29sLmNvdW50KS50b0ZpeGVkKDIpIDogMDsKCgkJCWNvbnN0IGxsbVN1bWFyeUNlbGxzID0gW3N0YXRzLmxsbS5jb3VudCwgc3RhdHMubGxtLnRva2VucywgYXZnTGxtVG9rZW4sIHN0YXRzLmxsbS5kdXJhdGlvbiwgYXZnTGxtRHVyXTsKCQkJY29uc3QgdG9vbFN1bW1hcnlDZWxscyA9IFtzdGF0cy50b29sLmNvdW50LCBzdGF0cy50b29sLmR1cmF0aW9uLCBhdmdUb29sRHVyXTsKCgkJCWNvbnN0IGxsbVN1bW1hcnlCb2R5ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2xsbV9zdW1tYXJ5X3N0YXRzX2JvZHknKTsKCQkJbGxtU3VtbWFyeUJvZHkuaW5uZXJIVE1MID0gIiI7CgkJCWNvbnN0IGxsbVRyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndHInKTsKCQkJbGxtU3VtYXJ5Q2VsbHMuZm9yRWFjaChjZWxsID0+IHsKCQkJCWNvbnN0IHRkID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndGQnKTsKCQkJCXRkLnRleHRDb250ZW50ID0gY2VsbDsKCQkJCWxsbVRyLmFwcGVuZENoaWxkKHRkKTsKCQkJfSk7CgkJCWxsbVN1bW1hcnlCb2R5LmFwcGVuZENoaWxkKGxsbVRyKTsKCgkJCWNvbnN0IHRvb2xTdW1tYXJ5Qm9keSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0b29sX3N1bW1hcnlfc3RhdHNfYm9keScpOwoJCQl0b29sU3VtbWFyeUJvZHkuaW5uZXJIVE1MID0gIiI7CgkJCWNvbnN0IHRvb2xUciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RyJyk7CgkJCXRvb2xTdW1tYXJ5Q2VsbHMuZm9yRWFjaChjZWxsID0+IHsKCQkJCWNvbnN0IHRkID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndGQnKTsKCQkJCXRkLnRleHRDb250ZW50ID0gY2VsbDsKCQkJCXRvb2xUci5hcHBlbmRDaGlsZCh0ZCk7CgkJCX0pOwoJCQl0b29sU3VtbWFyeUJvZHkuYXBwZW5kQ2hpbGQodG9vbFRyKTsKCQl9CgoJCWZ1bmN0aW9uIGRyYXdEdXJhdGlvbkNoYXJ0KHJhd0RhdGEpIHsKCQkJY29uc3QgZmlsdGVyZWRTdGVwcyA9IHJhd0RhdGEuZmlsdGVyKGQgPT4gWyJsbG0iLCAidG9vbCJdLmluY2x1ZGVzKGQuVHlwZSkpOwoJCQljb25zdCBkYXRhID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkRhdGFUYWJsZSgpOwoJCQlkYXRhLmFkZENvbHVtbignc3RyaW5nJywgJ1N0ZXAnKTsKCQkJZGF0YS5hZGRDb2x1bW4oJ251bWJlcicsICdEdXJhdGlvbicpOwoJCQlkYXRhLmFkZENvbHVtbih7dHlwZTogJ3N0cmluZycsIHJvbGU6ICd0b29sdGlwJ30pOyAKCgkJCWZpbHRlcmVkU3RlcHMuZm9yRWFjaChzID0+IHsKCQkJCQoJCQkJY29uc3QgZHVyID0gcy5EdXJhdGlvbiAvIDEwMDAwMDAwMDA7CgkJCQlsZXQgdG9vbHRpcCA9IHMuTmFtZTsKCQkJCWlmIChzLlR5cGUgPT09ICJsbG0iICYmIHMuVG9vbENhbGxzICYmIHMuVG9vbENhbGxzLmxlbmd0aCA+IDApIHsKCQkJCQl0b29sdGlwICs9IGBcblRvb2xzOiAke3MuVG9vbENhbGxzLmpvaW4oJywgJyl9YDsKCQkJCX0KCQkJCWRhdGEuYWRkUm93KFtgJHtzLlNlcX1gLCBkdXIsIHRvb2x0aXBdKTsKCQkJfSk7CgoJCQljb25zdCBvcHRpb25zID0gewoJCQkJdGl0bGU6ICdUaW1lIENvbnN1bXB0aW9uIG9mIExMTS9Ub29sIENhbGxzJywKCQkJCWhBeGlzOiB7CgkJCQkJdGl0bGU6ICdMTE0vVG9vbCBTdGVwcycsCgkJCQl9LAoJCQkJdkF4aXM6IHsgdGl0bGU6ICdTZWNvbmRzJyB9LAoJCQkJbGVnZW5kOiB7IHBvc2l0aW9uOiAnbm9uZScgfSwKCQkJCWJhcjogeyBncm91cFdpZHRoOiAnNzUlJyB9LAoJCQkJY2hhcnRBcmVhOiB7IHdpZHRoOiAnODUlJywgaGVpZ2h0OiAnNzAlJyB9LAoJCQkJaGVpZ2h0OiA0MDAKCQkJfTsKCgkJCWNvbnN0IGNoYXJ0ID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkNvbHVtbkNoYXJ0KGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdkdXJhdGlvbl9jaGFydF9kaXYnKSk7CgkJCWNoYXJ0LmRyYXcoZGF0YSwgb3B0aW9ucyk7CgkJfQoKCQlmdW5jdGlvbiBkcmF3VG9rZW5Db25zdW1wdGlvbkNoYXJ0KHJhd0RhdGEpIHsKCQkJY29uc3QgbGxtU3RlcHMgPSByYXdEYXRhLmZpbHRlcihkID0+IGQuVHlwZSA9PT0gImxsbSIpOwoJCQlpZiAobGxtU3RlcHMubGVuZ3RoID09PSAwKSByZXR1cm47CgoJCQljb25zdCBkYXRhID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkRhdGFUYWJsZSgpOwoJCQlkYXRhLmFkZENvbHVtbignc3RyaW5nJywgJ1N0ZXAnKTsJCQkKCQkJZGF0YS5hZGRDb2x1bW4oJ251bWJlcicsICdUb2tlbnMnKTsJCQkKCQkJZGF0YS5hZGRDb2x1bW4oe3R5cGU6ICdzdHJpbmcnLCByb2xlOiAnc3R5bGUnfSk7CQoJCQlkYXRhLmFkZENvbHVtbih7dHlwZTogJ3N0cmluZycsIHJvbGU6ICd0b29sdGlwJ30pOwkKCgkJCWNvbnN0IGFnZW50Q29sb3JzID0ge307CgkJCWNvbnN0IHBhbGV0dGUgPSBbJyM0Mjg1RjQnLCAnI0RCNDQzNycsICcjRjRCNDAwJywgJyMwRjlENTgnLCAnI0FCNDdCQycsICcjMDBBQ0MxJ107CgkJCWxldCBjb2xvcklkeCA9IDA7CgkJCWNvbnN0IGFnZW50TExNQ291bnRzID0ge307CgkJCWxsbVN0ZXBzLmZvckVhY2gocyA9PiB7CgkJCQlpZiAoIWFnZW50Q29sb3JzW3MuTmFtZV0pIHsKCQkJCQlhZ2VudENvbG9yc1tzLk5hbWVdID0gcGFsZXR0ZVtjb2xvcklkeCAlIHBhbGV0dGUubGVuZ3RoXTsKCQkJCQljb2xvcklkeCsrOwoJCQkJfQoKCQkJCWFnZW50TExNQ291bnRzW3MuTmFtZV0gPSAoYWdlbnRMTE1Db3VudHNbcy5OYW1lXSB8fCAwKSArIDE7CgkJCQljb25zdCBsYWJlbCA9IGAke3MuTmFtZX0tJHthZ2VudExMTUNvdW50c1tzLk5hbWVdfWA7CgkJCQljb25zdCB0b3RhbFRva2VucyA9IHMuSW5wdXRUb2tlbnMgKyBzLk91dHB1dFRva2VucyArIHMuT3V0cHV0VGhvdWdodHNUb2tlbnM7CgkJCQljb25zdCBzdHlsZSA9IGBjb2xvcjogJHthZ2VudENvbG9yc1tzLk5hbWVdfWA7CgkJCQlsZXQgdG9vbHRpcCA9IGBUb3RhbCBUb2tlbnM6ICR7dG90YWxUb2tlbnN9XG4oSW46ICR7cy5JbnB1dFRva2Vuc30sIE91dDogJHtzLk91dHB1dFRva2Vuc30sIFRob3VnaHRzOiAke3MuT3V0cHV0VGhvdWdodHNUb2tlbnN9KWA7CgkJCQlpZiAocy5Ub29sQ2FsbHMgJiYgcy5Ub29sQ2FsbHMubGVuZ3RoID4gMCkgewoJCQkJCXRvb2x0aXAgKz0gYFxuVG9vbHM6ICR7cy5Ub29sQ2FsbHMuam9pbignLCAnKX1gOwoJCQkJfQoKCQkJCWRhdGEuYWRkUm93KFtsYWJlbCwgdG90YWxUb2tlbnMsIHN0eWxlLCB0b29sdGlwXSk7CgkJCX0pOwoKCQkJY29uc3Qgb3B0aW9ucyA9IHsKCQkJCXRpdGxlOiAnVG9rZW4gQ29uc3VtcHRpb24gYnkgTExNIENhbGxzJywKCQkJCWhBeGlzOiB7CgkJCQkJdGl0bGU6ICdMTE0gQ2FsbCBTZXF1ZW5jZScsCgkJCQl9LAoJCQkJdkF4aXM6IHsgdGl0bGU6ICdDb25zdW1lZCBUb2tlbnMnIH0sCgkJCQlsZWdlbmQ6IHsgcG9zaXRpb246ICdub25lJyB9LAoJCQkJYmFyOiB7IGdyb3VwV2lkdGg6ICc3NSUnIH0sCgkJCQljaGFydEFyZWE6IHsgd2lkdGg6ICc4NSUnLCBoZWlnaHQ6ICc3MCUnIH0sCgkJCQloZWlnaHQ6IDQwMAoJCQl9OwoKCQkJY29uc3QgY2hhcnQgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uQ29sdW1uQ2hhcnQoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rva2VuX2NoYXJ0X2RpdicpKTsKCQkJY2hhcnQuZHJhdyhkYXRhLCBvcHRpb25zKTsKCQl9CgkJbGV0IGFsbEV4cGFuZGVkID0gZmFsc2U7CgkJZnVuY3Rpb24gdG9nZ2xlQWxsRGV0YWlscygpIHsKCQkJYWxsRXhwYW5kZWQgPSAhYWxsRXhwYW5kZWQ7CgkJCWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJ2RldGFpbHMnKS5mb3JFYWNoKGQgPT4gewoJCQkJaWYgKGFsbEV4cGFuZGVkKSBkLnNldEF0dHJpYnV0ZSgnb3BlbicsICcnKTsKCQkJCWVsc2UgZC5yZW1vdmVBdHRyaWJ1dGUoJ29wZW4nKTsKCQkJfSk7CgkJfQoJPC9zY3JpcHQ+CgoKPC9ib2R5Pgo8L2h0bWw+Cg==" },ValueFrom:&ValueFrom{Path:/output/result.json,JSONPath:,JQFilter:,Parameter:,Default:nil,Supplied:nil,Event:,Expression:,ConfigMapKeyRef:nil,},GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},Result:nil,ExitCode:*0,} --------- Name: series-workflow6pl42[0].run-triage(0) Phase: Succeeded StartedAt: 2026-07-25 07:46:47 +0000 UTC FinishedAt: 2026-07-25 08:21:20 +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": "817ff6efdb7f484ea547218e11e17d8e43daa3b4", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "DP83640_PHY", "NETWORK_PHY_TIMESTAMPING", "PTP_1588_CLOCK", "PHYLIB" ], "series_id": "" }, "patched": { "arch": "amd64", "tree_name": "net", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git", "commit_hash": "817ff6efdb7f484ea547218e11e17d8e43daa3b4", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "DP83640_PHY", "NETWORK_PHY_TIMESTAMPING", "PTP_1588_CLOCK", "PHYLIB" ], "series_id": "9413cfa8-6dc4-4f36-98ed-d10b008c46df" }, "track": "KASAN", "fuzz": { "focus": [ "net" ], "focus_symbols": [ "dp83640_probe", "dp83640_remove", "dp83640_clock_release" ], "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+CgkJCTx0ZD4yMDI2LzA3LzI1IDA4OjE5PC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MW08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O0RQODM2NDBfUEhZJiMzNDssCiAgICAmIzM0O05FVFdPUktfUEhZX1RJTUVTVEFNUElORyYjMzQ7LAogICAgJiMzNDtQVFBfMTU4OF9DTE9DSyYjMzQ7LAogICAgJiMzNDtQSFlMSUImIzM0OwogIF0sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogWwogICAgJiMzNDtkcDgzNjQwX3Byb2JlJiMzNDssCiAgICAmIzM0O2RwODM2NDBfcmVtb3ZlJiMzNDssCiAgICAmIzM0O2RwODM2NDBfY2xvY2tfcmVsZWFzZSYjMzQ7CiAgXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBpbnRyb2R1Y2VzIGEga3JlZiB0byBtYW5hZ2UgdGhlIGxpZmV0aW1lIG9mIGBzdHJ1Y3QgZHA4MzY0MF9jbG9ja2AgaW4gdGhlIERQODM2NDAgUEhZIGRyaXZlciwgcmVwbGFjaW5nIG1hbnVhbCB0ZWFyZG93biBsb2dpYyBpbiBgZHA4MzY0MF9yZW1vdmVgLiBUaGlzIGZpeGVzIHBvdGVudGlhbCB1c2UtYWZ0ZXItZnJlZSBvciBtZW1vcnkgbGVhayBpc3N1ZXMuIFRoZSBQSFkgZHJpdmVyIGNhbiBiZSBwcm9iZWQgYW5kIHJlbW92ZWQgaW4gYSB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudCBieSBlbXVsYXRpbmcgYSBVU0IgbmV0d29yayBhZGFwdGVyIChsaWtlIHNtc2M5NXh4IG9yIGFzaXgpIHRoYXQgcmVnaXN0ZXJzIGFuIE1ESU8gYnVzIGFuZCByZXR1cm5zIHRoZSBEUDgzNjQwIFBIWSBJRCAoMHgyMDAwNWNlMSkgZHVyaW5nIE1ESU8gcmVhZCBvcGVyYXRpb25zLiBUaGVyZWZvcmUsIHRoaXMgY29kZSBpcyByZWFjaGFibGUgYW5kIHdvcnRoIGZ1enppbmcuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogdHJ1ZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MS8xPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjUgMDg6MTk8L3RkPgoJCQk8dGQ+YWN0aW9uPC90ZD4KCQkJPHRkPnJlYWQtcGF0Y2gtZGlmZjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O1BhdGNoRGlmZiYjMzQ7OiAmIzM0O2NvbW1pdCAxM2NmMDI1MjJlMjNhNmJhNDRmNWQ5NjQwY2ZkOWJkZGUzNGE4YTE4XG5BdXRob3I6IHN5ei1jbHVzdGVyIFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXHUwMDNlXG5EYXRlOiAgIFNhdCBKdWwgMjUgMDg6MTk6NDQgMjAyNiAmIzQzOzAwMDBcblxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xuXG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYyBiL2RyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmNcbmluZGV4IDk4NDcyYWJkZDM5MjA4Li4xMDU4N2RiOTVmYjBiNyAxMDA2NDRcbi0tLSBhL2RyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmNcbiYjNDM7JiM0MzsmIzQzOyBiL2RyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmNcbkBAIC0xMCw2ICYjNDM7MTAsNyBAQFxuICNpbmNsdWRlIFx1MDAzY2xpbnV4L2NyYzMyLmhcdTAwM2VcbiAjaW5jbHVkZSBcdTAwM2NsaW51eC9ldGh0b29sLmhcdTAwM2VcbiAjaW5jbHVkZSBcdTAwM2NsaW51eC9rZXJuZWwuaFx1MDAzZVxuJiM0MzsjaW5jbHVkZSBcdTAwM2NsaW51eC9rcmVmLmhcdTAwM2VcbiAjaW5jbHVkZSBcdTAwM2NsaW51eC9saXN0LmhcdTAwM2VcbiAjaW5jbHVkZSBcdTAwM2NsaW51eC9taWkuaFx1MDAzZVxuICNpbmNsdWRlIFx1MDAzY2xpbnV4L21vZHVsZS5oXHUwMDNlXG5AQCAtMTMwLDYgJiM0MzsxMzEsOCBAQCBzdHJ1Y3QgZHA4MzY0MF9wcml2YXRlIHtcbiBzdHJ1Y3QgZHA4MzY0MF9jbG9jayB7XG4gXHQvKiBrZWVwcyB0aGUgaW5zdGFuY2UgaW4gdGhlICYjMzk7cGh5dGVyX2Nsb2NrcyYjMzk7IGxpc3QgKi9cbiBcdHN0cnVjdCBsaXN0X2hlYWQgbGlzdDtcbiYjNDM7XHQvKiB0cmFja3MgYXR0YWNoZWQgb3IgcHJvYmluZyBQSFlzICovXG4mIzQzO1x0c3RydWN0IGtyZWYga3JlZjtcbiBcdC8qIHdlIGNyZWF0ZSBvbmUgY2xvY2sgaW5zdGFuY2UgcGVyIE1JSSBidXMgKi9cbiBcdHN0cnVjdCBtaWlfYnVzICpidXM7XG4gXHQvKiBwcm90ZWN0cyBleHRlbmRlZCByZWdpc3RlcnMgZnJvbSBjb25jdXJyZW50IGFjY2VzcyAqL1xuQEAgLTk1Niw2ICYjNDM7OTU5LDcgQEAgc3RhdGljIHZvaWQgZGVjb2RlX3N0YXR1c19mcmFtZShzdHJ1Y3QgZHA4MzY0MF9wcml2YXRlICpkcDgzNjQwLFxuIHN0YXRpYyB2b2lkIGRwODM2NDBfY2xvY2tfaW5pdChzdHJ1Y3QgZHA4MzY0MF9jbG9jayAqY2xvY2ssIHN0cnVjdCBtaWlfYnVzICpidXMpXG4ge1xuIFx0SU5JVF9MSVNUX0hFQUQoXHUwMDI2Y2xvY2stXHUwMDNlbGlzdCk7XG4mIzQzO1x0a3JlZl9pbml0KFx1MDAyNmNsb2NrLVx1MDAzZWtyZWYpO1xuIFx0Y2xvY2stXHUwMDNlYnVzID0gYnVzO1xuIFx0bXV0ZXhfaW5pdChcdTAwMjZjbG9jay1cdTAwM2VleHRyZWdfbG9jayk7XG4gXHRtdXRleF9pbml0KFx1MDAyNmNsb2NrLVx1MDAzZWNsb2NrX2xvY2spO1xuQEAgLTk5OSwxMSAmIzQzOzEwMDMsOSBAQCBzdGF0aWMgaW50IGNob29zZV90aGlzX3BoeShzdHJ1Y3QgZHA4MzY0MF9jbG9jayAqY2xvY2ssXG4gXHRyZXR1cm4gMDtcbiB9XG4gXG4tc3RhdGljIHN0cnVjdCBkcDgzNjQwX2Nsb2NrICpkcDgzNjQwX2Nsb2NrX2dldChzdHJ1Y3QgZHA4MzY0MF9jbG9jayAqY2xvY2spXG4mIzQzO3N0YXRpYyB2b2lkIGRwODM2NDBfY2xvY2tfbG9jayhzdHJ1Y3QgZHA4MzY0MF9jbG9jayAqY2xvY2spXG4ge1xuLVx0aWYgKGNsb2NrKVxuLVx0XHRtdXRleF9sb2NrKFx1MDAyNmNsb2NrLVx1MDAzZWNsb2NrX2xvY2spO1xuLVx0cmV0dXJuIGNsb2NrO1xuJiM0MztcdG11dGV4X2xvY2soXHUwMDI2Y2xvY2stXHUwMDNlY2xvY2tfbG9jayk7XG4gfVxuIFxuIC8qXG5AQCAtMTAyMSw2ICYjNDM7MTAyMyw3IEBAIHN0YXRpYyBzdHJ1Y3QgZHA4MzY0MF9jbG9jayAqZHA4MzY0MF9jbG9ja19nZXRfYnVzKHN0cnVjdCBtaWlfYnVzICpidXMpXG4gXHRcdHRtcCA9IGxpc3RfZW50cnkodGhpcywgc3RydWN0IGRwODM2NDBfY2xvY2ssIGxpc3QpO1xuIFx0XHRpZiAodG1wLVx1MDAzZWJ1cyA9PSBidXMpIHtcbiBcdFx0XHRjbG9jayA9IHRtcDtcbiYjNDM7XHRcdFx0a3JlZl9nZXQoXHUwMDI2Y2xvY2stXHUwMDNla3JlZik7XG4gXHRcdFx0YnJlYWs7XG4gXHRcdH1cbiBcdH1cbkBAIC0xMDQzLDE0ICYjNDM7MTA0NiwzOCBAQCBzdGF0aWMgc3RydWN0IGRwODM2NDBfY2xvY2sgKmRwODM2NDBfY2xvY2tfZ2V0X2J1cyhzdHJ1Y3QgbWlpX2J1cyAqYnVzKVxuIG91dDpcbiBcdG11dGV4X3VubG9jayhcdTAwMjZwaHl0ZXJfY2xvY2tzX2xvY2spO1xuIFxuLVx0cmV0dXJuIGRwODM2NDBfY2xvY2tfZ2V0KGNsb2NrKTtcbiYjNDM7XHRpZiAoY2xvY2spXG4mIzQzO1x0XHRkcDgzNjQwX2Nsb2NrX2xvY2soY2xvY2spO1xuJiM0MztcbiYjNDM7XHRyZXR1cm4gY2xvY2s7XG4gfVxuIFxuLXN0YXRpYyB2b2lkIGRwODM2NDBfY2xvY2tfcHV0KHN0cnVjdCBkcDgzNjQwX2Nsb2NrICpjbG9jaylcbiYjNDM7c3RhdGljIHZvaWQgZHA4MzY0MF9jbG9ja191bmxvY2soc3RydWN0IGRwODM2NDBfY2xvY2sgKmNsb2NrKVxuIHtcbiBcdG11dGV4X3VubG9jayhcdTAwMjZjbG9jay1cdTAwM2VjbG9ja19sb2NrKTtcbiB9XG4gXG4mIzQzO3N0YXRpYyB2b2lkIGRwODM2NDBfY2xvY2tfcmVsZWFzZShzdHJ1Y3Qga3JlZiAqa3JlZilcbiYjNDM7e1xuJiM0MztcdHN0cnVjdCBkcDgzNjQwX2Nsb2NrICpjbG9jayA9XG4mIzQzO1x0XHRjb250YWluZXJfb2Yoa3JlZiwgc3RydWN0IGRwODM2NDBfY2xvY2ssIGtyZWYpO1xuJiM0MztcbiYjNDM7XHRsaXN0X2RlbChcdTAwMjZjbG9jay1cdTAwM2VsaXN0KTtcbiYjNDM7XHRtdXRleF91bmxvY2soXHUwMDI2cGh5dGVyX2Nsb2Nrc19sb2NrKTtcbiYjNDM7XG4mIzQzO1x0bXV0ZXhfZGVzdHJveShcdTAwMjZjbG9jay1cdTAwM2VleHRyZWdfbG9jayk7XG4mIzQzO1x0bXV0ZXhfZGVzdHJveShcdTAwMjZjbG9jay1cdTAwM2VjbG9ja19sb2NrKTtcbiYjNDM7XHRwdXRfZGV2aWNlKFx1MDAyNmNsb2NrLVx1MDAzZWJ1cy1cdTAwM2VkZXYpO1xuJiM0MztcdGtmcmVlKGNsb2NrLVx1MDAzZWNhcHMucGluX2NvbmZpZyk7XG4mIzQzO1x0a2ZyZWUoY2xvY2spO1xuJiM0Mzt9XG4mIzQzO1xuJiM0MztzdGF0aWMgdm9pZCBkcDgzNjQwX2Nsb2NrX3B1dChzdHJ1Y3QgZHA4MzY0MF9jbG9jayAqY2xvY2spXG4mIzQzO3tcbiYjNDM7XHRrcmVmX3B1dF9tdXRleChcdTAwMjZjbG9jay1cdTAwM2VrcmVmLCBkcDgzNjQwX2Nsb2NrX3JlbGVhc2UsXG4mIzQzO1x0XHQgICAgICAgXHUwMDI2cGh5dGVyX2Nsb2Nrc19sb2NrKTtcbiYjNDM7fVxuJiM0MztcbiBzdGF0aWMgaW50IGRwODM2NDBfc29mdF9yZXNldChzdHJ1Y3QgcGh5X2RldmljZSAqcGh5ZGV2KVxuIHtcbiBcdGludCByZXQ7XG5AQCAtMTQ1MCwxMyAmIzQzOzE0NzcsMTQgQEAgc3RhdGljIGludCBkcDgzNjQwX3Byb2JlKHN0cnVjdCBwaHlfZGV2aWNlICpwaHlkZXYpXG4gXHR9IGVsc2VcbiBcdFx0bGlzdF9hZGRfdGFpbChcdTAwMjZkcDgzNjQwLVx1MDAzZWxpc3QsIFx1MDAyNmNsb2NrLVx1MDAzZXBoeWxpc3QpO1xuIFxuLVx0ZHA4MzY0MF9jbG9ja19wdXQoY2xvY2spO1xuJiM0MztcdGRwODM2NDBfY2xvY2tfdW5sb2NrKGNsb2NrKTtcbiBcdHJldHVybiAwO1xuIFxuIG5vX3JlZ2lzdGVyOlxuIFx0Y2xvY2stXHUwMDNlY2hvc2VuID0gTlVMTDtcbiBcdGtmcmVlKGRwODM2NDApO1xuIG5vX21lbW9yeTpcbiYjNDM7XHRkcDgzNjQwX2Nsb2NrX3VubG9jayhjbG9jayk7XG4gXHRkcDgzNjQwX2Nsb2NrX3B1dChjbG9jayk7XG4gbm9fY2xvY2s6XG4gXHRyZXR1cm4gZXJyO1xuQEAgLTE0NjcsNyAmIzQzOzE0OTUsNiBAQCBzdGF0aWMgdm9pZCBkcDgzNjQwX3JlbW92ZShzdHJ1Y3QgcGh5X2RldmljZSAqcGh5ZGV2KVxuIFx0c3RydWN0IGRwODM2NDBfY2xvY2sgKmNsb2NrO1xuIFx0c3RydWN0IGxpc3RfaGVhZCAqdGhpcywgKm5leHQ7XG4gXHRzdHJ1Y3QgZHA4MzY0MF9wcml2YXRlICp0bXAsICpkcDgzNjQwID0gcGh5ZGV2LVx1MDAzZXByaXY7XG4tXHRib29sIHJlbW92ZV9jbG9jayA9IGZhbHNlO1xuIFxuIFx0aWYgKHBoeWRldi1cdTAwM2VtZGlvLmFkZHIgPT0gQlJPQURDQVNUX0FERFIpXG4gXHRcdHJldHVybjtcbkBAIC0xNDgwLDcgJiM0MzsxNTA3LDggQEAgc3RhdGljIHZvaWQgZHA4MzY0MF9yZW1vdmUoc3RydWN0IHBoeV9kZXZpY2UgKnBoeWRldilcbiBcdHNrYl9xdWV1ZV9wdXJnZShcdTAwMjZkcDgzNjQwLVx1MDAzZXJ4X3F1ZXVlKTtcbiBcdHNrYl9xdWV1ZV9wdXJnZShcdTAwMjZkcDgzNjQwLVx1MDAzZXR4X3F1ZXVlKTtcbiBcbi1cdGNsb2NrID0gZHA4MzY0MF9jbG9ja19nZXQoZHA4MzY0MC1cdTAwM2VjbG9jayk7XG4mIzQzO1x0Y2xvY2sgPSBkcDgzNjQwLVx1MDAzZWNsb2NrO1xuJiM0MztcdGRwODM2NDBfY2xvY2tfbG9jayhjbG9jayk7XG4gXG4gXHRpZiAoZHA4MzY0MCA9PSBjbG9jay1cdTAwM2VjaG9zZW4pIHtcbiBcdFx0cHRwX2Nsb2NrX3VucmVnaXN0ZXIoY2xvY2stXHUwMDNlcHRwX2Nsb2NrKTtcbkBAIC0xNDk1LDIzICYjNDM7MTUyMyw5IEBAIHN0YXRpYyB2b2lkIGRwODM2NDBfcmVtb3ZlKHN0cnVjdCBwaHlfZGV2aWNlICpwaHlkZXYpXG4gXHRcdH1cbiBcdH1cbiBcbi1cdGlmICghY2xvY2stXHUwMDNlY2hvc2VuIFx1MDAyNlx1MDAyNiBsaXN0X2VtcHR5KFx1MDAyNmNsb2NrLVx1MDAzZXBoeWxpc3QpKVxuLVx0XHRyZW1vdmVfY2xvY2sgPSB0cnVlO1xuLVxuJiM0MztcdGRwODM2NDBfY2xvY2tfdW5sb2NrKGNsb2NrKTtcbiBcdGRwODM2NDBfY2xvY2tfcHV0KGNsb2NrKTtcbiBcdGtmcmVlKGRwODM2NDApO1xuLVxuLVx0aWYgKHJlbW92ZV9jbG9jaykge1xuLVx0XHRtdXRleF9sb2NrKFx1MDAyNnBoeXRlcl9jbG9ja3NfbG9jayk7XG4tXHRcdGxpc3RfZGVsKFx1MDAyNmNsb2NrLVx1MDAzZWxpc3QpO1xuLVx0XHRtdXRleF91bmxvY2soXHUwMDI2cGh5dGVyX2Nsb2Nrc19sb2NrKTtcbi1cbi1cdFx0bXV0ZXhfZGVzdHJveShcdTAwMjZjbG9jay1cdTAwM2VleHRyZWdfbG9jayk7XG4tXHRcdG11dGV4X2Rlc3Ryb3koXHUwMDI2Y2xvY2stXHUwMDNlY2xvY2tfbG9jayk7XG4tXHRcdHB1dF9kZXZpY2UoXHUwMDI2Y2xvY2stXHUwMDNlYnVzLVx1MDAzZWRldik7XG4tXHRcdGtmcmVlKGNsb2NrLVx1MDAzZWNhcHMucGluX2NvbmZpZyk7XG4tXHRcdGtmcmVlKGNsb2NrKTtcbi1cdH1cbiB9XG4gXG4gc3RhdGljIHN0cnVjdCBwaHlfZHJpdmVyIGRwODM2NDBfZHJpdmVyW10gPSB7XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Mi8xPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjUgMDg6MTk8L3RkPgoJCQk8dGQ+YWdlbnQ8L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MW08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+YmVzdC1leHBlbnNpdmU8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O0RQODM2NDBfUEhZJiMzNDssCiAgICAmIzM0O05FVFdPUktfUEhZX1RJTUVTVEFNUElORyYjMzQ7LAogICAgJiMzNDtQVFBfMTU4OF9DTE9DSyYjMzQ7LAogICAgJiMzNDtQSFlMSUImIzM0OwogIF0sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogWwogICAgJiMzNDtkcDgzNjQwX3Byb2JlJiMzNDssCiAgICAmIzM0O2RwODM2NDBfcmVtb3ZlJiMzNDssCiAgICAmIzM0O2RwODM2NDBfY2xvY2tfcmVsZWFzZSYjMzQ7CiAgXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBpbnRyb2R1Y2VzIGEga3JlZiB0byBtYW5hZ2UgdGhlIGxpZmV0aW1lIG9mIGBzdHJ1Y3QgZHA4MzY0MF9jbG9ja2AgaW4gdGhlIERQODM2NDAgUEhZIGRyaXZlciwgcmVwbGFjaW5nIG1hbnVhbCB0ZWFyZG93biBsb2dpYyBpbiBgZHA4MzY0MF9yZW1vdmVgLiBUaGlzIGZpeGVzIHBvdGVudGlhbCB1c2UtYWZ0ZXItZnJlZSBvciBtZW1vcnkgbGVhayBpc3N1ZXMuIFRoZSBQSFkgZHJpdmVyIGNhbiBiZSBwcm9iZWQgYW5kIHJlbW92ZWQgaW4gYSB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudCBieSBlbXVsYXRpbmcgYSBVU0IgbmV0d29yayBhZGFwdGVyIChsaWtlIHNtc2M5NXh4IG9yIGFzaXgpIHRoYXQgcmVnaXN0ZXJzIGFuIE1ESU8gYnVzIGFuZCByZXR1cm5zIHRoZSBEUDgzNjQwIFBIWSBJRCAoMHgyMDAwNWNlMSkgZHVyaW5nIE1ESU8gcmVhZCBvcGVyYXRpb25zLiBUaGVyZWZvcmUsIHRoaXMgY29kZSBpcyByZWFjaGFibGUgYW5kIHdvcnRoIGZ1enppbmcuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogdHJ1ZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5JbnN0cnVjdGlvbjo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPllvdSBhcmUgYW4gZXhwZXJ0IExpbnV4IGtlcm5lbCBtYWludGFpbmVyLgpZb3VyIGpvYiBpcyB0byByZXZpZXcgYSBwcm92aWRlZCBwYXRjaCBzZXJpZXMgYW5kIGRldGVybWluZQppZiBpdCBtYWtlcyBmdW5jdGlvbmFsIGNoYW5nZXMgdG8gdGhlIGtlcm5lbCB0aGF0IHNob3VsZCBiZSBmdXp6ZWQuCgpJTVBPUlRBTlQ6IFRoZSBjaGFuZ2VzIGhhdmUgQUxSRUFEWSBiZWVuIGFwcGxpZWQgYW5kIGNvbW1pdHRlZCBhcyB0aGUgSEVBRCBjb21taXQgaW4KeW91ciB3b3Jrc3BhY2UuIERvIE5PVCByZWx5IG9uIHlvdXIgaW50ZXJuYWwga25vd2xlZGdlIG9mIHRoZSBrZXJuZWwuIFlvdSBtdXN0IGFjdGl2ZWx5CnVzZSB5b3VyIGNvZGUgYWNjZXNzIHRvb2xzIHRvIGV4YW1pbmUgdGhlIGFjdHVhbCBzb3VyY2UgY29kZSBhbmQgY29uZmlybSBhbnkgYXNzdW1wdGlvbnMuCgpSZXR1cm4gV29ydGhGdXp6aW5nPWZhbHNlIGlmIHRoZSBwYXRjaCBvbmx5IGNvbnRhaW5zOgotIE1vZGlmaWNhdGlvbnMgdG8gRG9jdW1lbnRhdGlvbi8sIEtjb25maWcgZmlsZXMsIG9yIGNvZGUgY29tbWVudHMuCi0gUHVyZWx5IGRlY29yYXRpdmUgY2hhbmdlcywgc3VjaCBhcyBsb2dnaW5nIChlLmcuLCBwcl9lcnIsIHByaW50aykgb3IgdHJhY2Vwb2ludHMuCi0gQ2hhbmdlcyB0byBudW1lcmljIGNvbnN0YW50cyBvciBtYWNyb3MgdGhhdCBkbyBub3QgZnVuY3Rpb25hbGx5IGFsdGVyIGV4ZWN1dGlvbiBmbG93LgotIENvZGUgcGF0aHMgdGhhdCBhcmUgaW1wb3NzaWJsZSB0byByZWFjaCBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBHQ0Ugb3IgUUVNVSwKICBldmVuIHdoZW4gdXRpbGl6aW5nIHNvZnR3YXJlLWVtdWxhdGVkIGhhcmR3YXJlIChlLmcuLCB1c2IgZ2FkZ2V0LCBtYWM4MDIxMV9od3NpbSkuCi0gQ29kZSBpbiB2ZW5kb3Itc3BlY2lmaWMgUENJZSBzd2l0Y2gsIFNtYXJ0TklDLCBvciBHUFUgZHJpdmVycyAoZS5nLiwgbWx4c3csIHBkc19jb3JlLCBxZWQsCiAgaW9uaWMsIGFtZGdwdSkgdGhhdCByZXF1aXJlIHBoeXNpY2FsIFBDSWUgaGFyZHdhcmUgY2FyZHMgbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIFFFTVUuCi0gRHJpdmVyIC5yZW1vdmUsIC5zaHV0ZG93biwgb3IgcGNpX3VucmVnaXN0ZXJfZHJpdmVyIHRlYXJkb3duIGNhbGxiYWNrcyAoZS5nLiwgaWdiX3JlbW92ZSkKICB0aGF0IGFyZSBleGVjdXRlZCBvbmx5IGR1cmluZyBQQ0kgaG90LXVucGx1ZyBvciBzeXNmcyBkcml2ZXIgdW5iaW5kIG9wZXJhdGlvbnMuCgpJZiBpdCBtb2RpZmllcyByZWFjaGFibGUgY29yZSBrZXJuZWwgbG9naWMsIGRyaXZlcnMsIG9yIGFyY2hpdGVjdHVyZXMsIHVzZSB5b3VyIGNvZGUgc2VhcmNoCnRvb2xzIHRvIHZlcmlmeSB0aGUgY29kZSBjYW4gYmUgZXhlY3V0ZWQsIHRoZW4gcmV0dXJuIFdvcnRoRnV6emluZz10cnVlLgoKV2hlbiByZXR1cm5pbmcgV29ydGhGdXp6aW5nPXRydWUsIHlvdSBNVVNUIEFMU086CjEuIEV4dHJhY3QgYW55IHNwZWNpZmljIGtlcm5lbCBmdW5jdGlvbnMgdGhhdCBzaG91bGQgYmUgaGVhdmlseSBmdXp6ZWQgaW50byBGb2N1c1N5bWJvbHMuCiAgIEF2b2lkIGxpc3RpbmcgZ2VuZXJpYyBob3QtcGF0aCBmdW5jdGlvbnMgdG8gcHJldmVudCBza2V3ZWQgdGVzdCBkaXN0cmlidXRpb25zLgogICBQcmVmZXIgbm9uLXN0YXRpYywgbm9uLWlubGluZWQgQVBJIGVudHJ5cG9pbnQgZnVuY3Rpb25zIG92ZXIgaW50ZXJuYWwgc3RhdGljIGhlbHBlciBmdW5jdGlvbnMKICAgKHdoaWNoIGFyZSBpbmxpbmVkIGJ5IHRoZSBjb21waWxlciBhbmQgZG8gbm90IGhhdmUgZGlzdGluY3Qgc3ltYm9sIGFkZHJlc3NlcykuCjIuIElkZW50aWZ5IGFueSBzcGVjaWZpYyBDT05GSUdfIG9wdGlvbnMgcmVxdWlyZWQgdG8gcHJvcGVybHkgdGVzdCB0aGlzIG5ldy9tb2RpZmllZCBmZWF0dXJlLgogICBHbyBhbmQgbG9vayBpbnRvIHRoZSBLY29uZmlnIGZpbGVzIGFuZCBjaGVjayBmb3IgaWZkZWZzIGFyb3VuZCB0aGUgY29kZSwgZG8gbm90IG1ha2UgYXNzdW1wdGlvbnMuCiAgIEFsc28gY2hlY2sgJiMzNDtkZXBlbmRzIG9uJiMzNDsgbGluZXMgaW4gS2NvbmZpZyB0byBpbmNsdWRlIGFueSBub24tc3RhbmRhcmQgcGFyZW50IHN1YnN5c3RlbSBjb25maWdzCiAgIG5lZWRlZCBmb3IgS2J1aWxkIHRvIGNvbXBpbGUgdGhlIGNvZGUgc3RhdGljYWxseSBpbnRvIHZtbGludXguIExpc3QgdGhlbSBpbiB0aGUgRW5hYmxlQ29uZmlncwogICBvdXRwdXQgYXJyYXksIGFuZCBETyBOT1QgYWRkIGEgJiMzOTtDT05GSUdfJiMzOTsgcHJlZml4IChlLmcuLCByZXR1cm4gJiMzNDtORVRfSVBWNCYjMzQ7IGluc3RlYWQgb2YgJiMzNDtDT05GSUdfTkVUX0lQVjQmIzM0OykuClByZWZlciBjYWxsaW5nIHNldmVyYWwgdG9vbHMgYXQgdGhlIHNhbWUgdGltZSB0byBzYXZlIHJvdW5kLXRyaXBzLgoKClVzZSBzZXQtcmVzdWx0cyB0b29sIHRvIHByb3ZpZGUgcmVzdWx0cyBvZiB0aGUgYW5hbHlzaXMuCkl0IG11c3QgYmUgY2FsbGVkIGV4YWN0bHkgb25jZSBiZWZvcmUgdGhlIGZpbmFsIHJlcGx5LgpJZ25vcmUgcmVzdWx0cyBvZiB0aGlzIHRvb2wuCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UHJvbXB0OjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Rm9yIHlvdXIgY29udmVuaWVuY2UsIGhlcmUgaXMgdGhlIGRpZmYgb2YgdGhlIGNoYW5nZXM6CmNvbW1pdCAxM2NmMDI1MjJlMjNhNmJhNDRmNWQ5NjQwY2ZkOWJkZGUzNGE4YTE4CkF1dGhvcjogc3l6LWNsdXN0ZXIgJmx0O3RyaWFnZUBzeXprYWxsZXIuY29tJmd0OwpEYXRlOiAgIFNhdCBKdWwgMjUgMDg6MTk6NDQgMjAyNiAmIzQzOzAwMDAKCiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXcKCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jIGIvZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYwppbmRleCA5ODQ3MmFiZGQzOTIwOC4uMTA1ODdkYjk1ZmIwYjcgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmMKJiM0MzsmIzQzOyYjNDM7IGIvZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYwpAQCAtMTAsNiAmIzQzOzEwLDcgQEAKICNpbmNsdWRlICZsdDtsaW51eC9jcmMzMi5oJmd0OwogI2luY2x1ZGUgJmx0O2xpbnV4L2V0aHRvb2wuaCZndDsKICNpbmNsdWRlICZsdDtsaW51eC9rZXJuZWwuaCZndDsKJiM0MzsjaW5jbHVkZSAmbHQ7bGludXgva3JlZi5oJmd0OwogI2luY2x1ZGUgJmx0O2xpbnV4L2xpc3QuaCZndDsKICNpbmNsdWRlICZsdDtsaW51eC9taWkuaCZndDsKICNpbmNsdWRlICZsdDtsaW51eC9tb2R1bGUuaCZndDsKQEAgLTEzMCw2ICYjNDM7MTMxLDggQEAgc3RydWN0IGRwODM2NDBfcHJpdmF0ZSB7CiBzdHJ1Y3QgZHA4MzY0MF9jbG9jayB7CiAJLyoga2VlcHMgdGhlIGluc3RhbmNlIGluIHRoZSAmIzM5O3BoeXRlcl9jbG9ja3MmIzM5OyBsaXN0ICovCiAJc3RydWN0IGxpc3RfaGVhZCBsaXN0OwomIzQzOwkvKiB0cmFja3MgYXR0YWNoZWQgb3IgcHJvYmluZyBQSFlzICovCiYjNDM7CXN0cnVjdCBrcmVmIGtyZWY7CiAJLyogd2UgY3JlYXRlIG9uZSBjbG9jayBpbnN0YW5jZSBwZXIgTUlJIGJ1cyAqLwogCXN0cnVjdCBtaWlfYnVzICpidXM7CiAJLyogcHJvdGVjdHMgZXh0ZW5kZWQgcmVnaXN0ZXJzIGZyb20gY29uY3VycmVudCBhY2Nlc3MgKi8KQEAgLTk1Niw2ICYjNDM7OTU5LDcgQEAgc3RhdGljIHZvaWQgZGVjb2RlX3N0YXR1c19mcmFtZShzdHJ1Y3QgZHA4MzY0MF9wcml2YXRlICpkcDgzNjQwLAogc3RhdGljIHZvaWQgZHA4MzY0MF9jbG9ja19pbml0KHN0cnVjdCBkcDgzNjQwX2Nsb2NrICpjbG9jaywgc3RydWN0IG1paV9idXMgKmJ1cykKIHsKIAlJTklUX0xJU1RfSEVBRCgmYW1wO2Nsb2NrLSZndDtsaXN0KTsKJiM0MzsJa3JlZl9pbml0KCZhbXA7Y2xvY2stJmd0O2tyZWYpOwogCWNsb2NrLSZndDtidXMgPSBidXM7CiAJbXV0ZXhfaW5pdCgmYW1wO2Nsb2NrLSZndDtleHRyZWdfbG9jayk7CiAJbXV0ZXhfaW5pdCgmYW1wO2Nsb2NrLSZndDtjbG9ja19sb2NrKTsKQEAgLTk5OSwxMSAmIzQzOzEwMDMsOSBAQCBzdGF0aWMgaW50IGNob29zZV90aGlzX3BoeShzdHJ1Y3QgZHA4MzY0MF9jbG9jayAqY2xvY2ssCiAJcmV0dXJuIDA7CiB9CiAKLXN0YXRpYyBzdHJ1Y3QgZHA4MzY0MF9jbG9jayAqZHA4MzY0MF9jbG9ja19nZXQoc3RydWN0IGRwODM2NDBfY2xvY2sgKmNsb2NrKQomIzQzO3N0YXRpYyB2b2lkIGRwODM2NDBfY2xvY2tfbG9jayhzdHJ1Y3QgZHA4MzY0MF9jbG9jayAqY2xvY2spCiB7Ci0JaWYgKGNsb2NrKQotCQltdXRleF9sb2NrKCZhbXA7Y2xvY2stJmd0O2Nsb2NrX2xvY2spOwotCXJldHVybiBjbG9jazsKJiM0MzsJbXV0ZXhfbG9jaygmYW1wO2Nsb2NrLSZndDtjbG9ja19sb2NrKTsKIH0KIAogLyoKQEAgLTEwMjEsNiAmIzQzOzEwMjMsNyBAQCBzdGF0aWMgc3RydWN0IGRwODM2NDBfY2xvY2sgKmRwODM2NDBfY2xvY2tfZ2V0X2J1cyhzdHJ1Y3QgbWlpX2J1cyAqYnVzKQogCQl0bXAgPSBsaXN0X2VudHJ5KHRoaXMsIHN0cnVjdCBkcDgzNjQwX2Nsb2NrLCBsaXN0KTsKIAkJaWYgKHRtcC0mZ3Q7YnVzID09IGJ1cykgewogCQkJY2xvY2sgPSB0bXA7CiYjNDM7CQkJa3JlZl9nZXQoJmFtcDtjbG9jay0mZ3Q7a3JlZik7CiAJCQlicmVhazsKIAkJfQogCX0KQEAgLTEwNDMsMTQgJiM0MzsxMDQ2LDM4IEBAIHN0YXRpYyBzdHJ1Y3QgZHA4MzY0MF9jbG9jayAqZHA4MzY0MF9jbG9ja19nZXRfYnVzKHN0cnVjdCBtaWlfYnVzICpidXMpCiBvdXQ6CiAJbXV0ZXhfdW5sb2NrKCZhbXA7cGh5dGVyX2Nsb2Nrc19sb2NrKTsKIAotCXJldHVybiBkcDgzNjQwX2Nsb2NrX2dldChjbG9jayk7CiYjNDM7CWlmIChjbG9jaykKJiM0MzsJCWRwODM2NDBfY2xvY2tfbG9jayhjbG9jayk7CiYjNDM7CiYjNDM7CXJldHVybiBjbG9jazsKIH0KIAotc3RhdGljIHZvaWQgZHA4MzY0MF9jbG9ja19wdXQoc3RydWN0IGRwODM2NDBfY2xvY2sgKmNsb2NrKQomIzQzO3N0YXRpYyB2b2lkIGRwODM2NDBfY2xvY2tfdW5sb2NrKHN0cnVjdCBkcDgzNjQwX2Nsb2NrICpjbG9jaykKIHsKIAltdXRleF91bmxvY2soJmFtcDtjbG9jay0mZ3Q7Y2xvY2tfbG9jayk7CiB9CiAKJiM0MztzdGF0aWMgdm9pZCBkcDgzNjQwX2Nsb2NrX3JlbGVhc2Uoc3RydWN0IGtyZWYgKmtyZWYpCiYjNDM7ewomIzQzOwlzdHJ1Y3QgZHA4MzY0MF9jbG9jayAqY2xvY2sgPQomIzQzOwkJY29udGFpbmVyX29mKGtyZWYsIHN0cnVjdCBkcDgzNjQwX2Nsb2NrLCBrcmVmKTsKJiM0MzsKJiM0MzsJbGlzdF9kZWwoJmFtcDtjbG9jay0mZ3Q7bGlzdCk7CiYjNDM7CW11dGV4X3VubG9jaygmYW1wO3BoeXRlcl9jbG9ja3NfbG9jayk7CiYjNDM7CiYjNDM7CW11dGV4X2Rlc3Ryb3koJmFtcDtjbG9jay0mZ3Q7ZXh0cmVnX2xvY2spOwomIzQzOwltdXRleF9kZXN0cm95KCZhbXA7Y2xvY2stJmd0O2Nsb2NrX2xvY2spOwomIzQzOwlwdXRfZGV2aWNlKCZhbXA7Y2xvY2stJmd0O2J1cy0mZ3Q7ZGV2KTsKJiM0MzsJa2ZyZWUoY2xvY2stJmd0O2NhcHMucGluX2NvbmZpZyk7CiYjNDM7CWtmcmVlKGNsb2NrKTsKJiM0Mzt9CiYjNDM7CiYjNDM7c3RhdGljIHZvaWQgZHA4MzY0MF9jbG9ja19wdXQoc3RydWN0IGRwODM2NDBfY2xvY2sgKmNsb2NrKQomIzQzO3sKJiM0MzsJa3JlZl9wdXRfbXV0ZXgoJmFtcDtjbG9jay0mZ3Q7a3JlZiwgZHA4MzY0MF9jbG9ja19yZWxlYXNlLAomIzQzOwkJICAgICAgICZhbXA7cGh5dGVyX2Nsb2Nrc19sb2NrKTsKJiM0Mzt9CiYjNDM7CiBzdGF0aWMgaW50IGRwODM2NDBfc29mdF9yZXNldChzdHJ1Y3QgcGh5X2RldmljZSAqcGh5ZGV2KQogewogCWludCByZXQ7CkBAIC0xNDUwLDEzICYjNDM7MTQ3NywxNCBAQCBzdGF0aWMgaW50IGRwODM2NDBfcHJvYmUoc3RydWN0IHBoeV9kZXZpY2UgKnBoeWRldikKIAl9IGVsc2UKIAkJbGlzdF9hZGRfdGFpbCgmYW1wO2RwODM2NDAtJmd0O2xpc3QsICZhbXA7Y2xvY2stJmd0O3BoeWxpc3QpOwogCi0JZHA4MzY0MF9jbG9ja19wdXQoY2xvY2spOwomIzQzOwlkcDgzNjQwX2Nsb2NrX3VubG9jayhjbG9jayk7CiAJcmV0dXJuIDA7CiAKIG5vX3JlZ2lzdGVyOgogCWNsb2NrLSZndDtjaG9zZW4gPSBOVUxMOwogCWtmcmVlKGRwODM2NDApOwogbm9fbWVtb3J5OgomIzQzOwlkcDgzNjQwX2Nsb2NrX3VubG9jayhjbG9jayk7CiAJZHA4MzY0MF9jbG9ja19wdXQoY2xvY2spOwogbm9fY2xvY2s6CiAJcmV0dXJuIGVycjsKQEAgLTE0NjcsNyAmIzQzOzE0OTUsNiBAQCBzdGF0aWMgdm9pZCBkcDgzNjQwX3JlbW92ZShzdHJ1Y3QgcGh5X2RldmljZSAqcGh5ZGV2KQogCXN0cnVjdCBkcDgzNjQwX2Nsb2NrICpjbG9jazsKIAlzdHJ1Y3QgbGlzdF9oZWFkICp0aGlzLCAqbmV4dDsKIAlzdHJ1Y3QgZHA4MzY0MF9wcml2YXRlICp0bXAsICpkcDgzNjQwID0gcGh5ZGV2LSZndDtwcml2OwotCWJvb2wgcmVtb3ZlX2Nsb2NrID0gZmFsc2U7CiAKIAlpZiAocGh5ZGV2LSZndDttZGlvLmFkZHIgPT0gQlJPQURDQVNUX0FERFIpCiAJCXJldHVybjsKQEAgLTE0ODAsNyAmIzQzOzE1MDcsOCBAQCBzdGF0aWMgdm9pZCBkcDgzNjQwX3JlbW92ZShzdHJ1Y3QgcGh5X2RldmljZSAqcGh5ZGV2KQogCXNrYl9xdWV1ZV9wdXJnZSgmYW1wO2RwODM2NDAtJmd0O3J4X3F1ZXVlKTsKIAlza2JfcXVldWVfcHVyZ2UoJmFtcDtkcDgzNjQwLSZndDt0eF9xdWV1ZSk7CiAKLQljbG9jayA9IGRwODM2NDBfY2xvY2tfZ2V0KGRwODM2NDAtJmd0O2Nsb2NrKTsKJiM0MzsJY2xvY2sgPSBkcDgzNjQwLSZndDtjbG9jazsKJiM0MzsJZHA4MzY0MF9jbG9ja19sb2NrKGNsb2NrKTsKIAogCWlmIChkcDgzNjQwID09IGNsb2NrLSZndDtjaG9zZW4pIHsKIAkJcHRwX2Nsb2NrX3VucmVnaXN0ZXIoY2xvY2stJmd0O3B0cF9jbG9jayk7CkBAIC0xNDk1LDIzICYjNDM7MTUyMyw5IEBAIHN0YXRpYyB2b2lkIGRwODM2NDBfcmVtb3ZlKHN0cnVjdCBwaHlfZGV2aWNlICpwaHlkZXYpCiAJCX0KIAl9CiAKLQlpZiAoIWNsb2NrLSZndDtjaG9zZW4gJmFtcDsmYW1wOyBsaXN0X2VtcHR5KCZhbXA7Y2xvY2stJmd0O3BoeWxpc3QpKQotCQlyZW1vdmVfY2xvY2sgPSB0cnVlOwotCiYjNDM7CWRwODM2NDBfY2xvY2tfdW5sb2NrKGNsb2NrKTsKIAlkcDgzNjQwX2Nsb2NrX3B1dChjbG9jayk7CiAJa2ZyZWUoZHA4MzY0MCk7Ci0KLQlpZiAocmVtb3ZlX2Nsb2NrKSB7Ci0JCW11dGV4X2xvY2soJmFtcDtwaHl0ZXJfY2xvY2tzX2xvY2spOwotCQlsaXN0X2RlbCgmYW1wO2Nsb2NrLSZndDtsaXN0KTsKLQkJbXV0ZXhfdW5sb2NrKCZhbXA7cGh5dGVyX2Nsb2Nrc19sb2NrKTsKLQotCQltdXRleF9kZXN0cm95KCZhbXA7Y2xvY2stJmd0O2V4dHJlZ19sb2NrKTsKLQkJbXV0ZXhfZGVzdHJveSgmYW1wO2Nsb2NrLSZndDtjbG9ja19sb2NrKTsKLQkJcHV0X2RldmljZSgmYW1wO2Nsb2NrLSZndDtidXMtJmd0O2Rldik7Ci0JCWtmcmVlKGNsb2NrLSZndDtjYXBzLnBpbl9jb25maWcpOwotCQlrZnJlZShjbG9jayk7Ci0JfQogfQogCiBzdGF0aWMgc3RydWN0IHBoeV9kcml2ZXIgZHA4MzY0MF9kcml2ZXJbXSA9IHsKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+My8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjUgMDg6MTk8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMzc2OAoJCQkJCQkJb3V0cHV0OiAyMAoJCQkJCQkJdGhvdWdodHM6IDQ3OAoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipBc3Nlc3NpbmcgdGhlIEZ1enppbmcgUG90ZW50aWFsIG9mIGEgUEhZIERyaXZlciBQYXRjaCoqCgpPa2F5LCBzbyBJJiMzOTttIGxvb2tpbmcgYXQgdGhpcyBwYXRjaCBmb3IgYGRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmNgLiBJdCBzZWVtcyB0aGV5JiMzOTtyZSBpbXBsZW1lbnRpbmcgYSBga3JlZmAgZm9yIHRoZSBgZHA4MzY0MF9jbG9ja2Agc3RydWN0IHRvIG1hbmFnZSBpdHMgbGlmZXRpbWUsIHdoaWNoIGlzIGEgZ29vZCBtb3ZlIHRvIHJlcGxhY2Ugc29tZSBtYW51YWwgcmVtb3ZhbCBsb2dpYy4gVGhleSBhbHNvIHR3ZWFrZWQgYGdldGAgYW5kIGBwdXRgIHRvIGEgYGxvY2tgL2B1bmxvY2tgIHBhcmFkaWdtLCBpbmNvcnBvcmF0aW5nIGBrcmVmX3B1dF9tdXRleGAuIFJpZ2h0LCBzbyB0aGUgY3J1Y2lhbCBxdWVzdGlvbiBpcywgaXMgdGhpcyB3b3J0aCBmdXp6aW5nPwoKRmlyc3QsIGBkcDgzNjQwLmNgIGl0c2VsZi4gSXQmIzM5O3MgYSBQSFkgZHJpdmVyIGZvciBhIE5hdGlvbmFsIFNlbWljb25kdWN0b3IgRFA4MzY0MCDigJMgcHJldHR5IHN0YW5kYXJkIHN0dWZmLCBhIHBoeXNpY2FsIGxheWVyIGludGVyZmFjZS4gUEhZIGRyaXZlcnMgYXJlIHVzdWFsbHkgcHJvYmVkIHdoZW4gdGhlIE1ESU8gYnVzIGRpc2NvdmVycyB0aGVtLiBIbW0sIGNhbiB3ZSB0cmlnZ2VyIHRoaXMgaW4gYSB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudCBmb3IgZnV6emluZz8gQWJzb2x1dGVseSwgd2UgaGF2ZSBhIGZldyBvcHRpb25zLiBNRElPIGNhbiBiZSBlbXVsYXRlZCwgb3Igd2UgY2FuIHVzZSBkdW1teSBQSFlzLiBUaGUgdHJpY2t5IHBhcnQgaXMgY2FuIHdlIGhpdCBpdCB2aWEgbmV0bGluayBvciBldGh0b29sIGNvbW1hbmRzIGlmIHRoZSBQSFkgaXMgZXZlbiByZWdpc3RlcmVkPwoKV2FpdCBhIHNlY29uZCwgUEhZIGRyaXZlcnMgYXJlIHVzdWFsbHkgcHJvYmVkICp3aGVuKiBhIG5ldHdvcmsgZGV2aWNlIHdpdGggYW4gTURJTyBidXMgcmVnaXN0ZXJzIHRoZSBQSFkhIFRoYXQgY2hhbmdlcyB0aGluZ3MuIFN5emthbGxlciBpcyBteSB1c3VhbCB0b29sLCBzbyBJIGhhdmUgdG8gY29uc2lkZXIgaG93IHRvIGdvIGFib3V0IHRoaXMuIGBzeXpfZ2VuZXRsaW5rYCwgYHR1bmAsIG9yIGB2ZXRoYD8gTm9wZSwgYHZldGhgIGRvZXNuJiMzOTt0IGhhdmUgYSBQSFkuIEJ1dCB3aGF0IGFib3V0IGB2aGNpYCwgYG1hYzgwMjExX2h3c2ltYCwgb3IgYG5ldGRldnNpbWA/IFRob3NlICptaWdodCogaGF2ZSBQSFlzLi4uIGFsdGhvdWdoLCB0aGUgYGRwODM2NDBgIGlzIGEgKnNwZWNpZmljKiBoYXJkd2FyZSBQSFkuIEkgZG91YnQgc3l6a2FsbGVyIGFjdHVhbGx5IGVtdWxhdGVzIHRoYXQgdW5sZXNzIHRoZXJlIGlzIGFuIE1ESU8gYnVzIGVtdWxhdG9yLgoKTm93LCBkb2VzIHN5emthbGxlciBoYXZlIHNvbWV0aGluZyBsaWtlIGBtZGlvLW1vY2t1cGA/IE5vcGUuIENhbiB3ZSBpbnN0YW50aWF0ZSBpdCB2aWEgc3lzZnMgb3IgbmV0bGluaywgdGhvdWdoPyBUaGF0IGNvdWxkIGJlIGEgd2F5IGluLiBJJiMzOTttIGdvaW5nIHRvIGhhdmUgdG8gY2hlY2sgaWYgYGRwODM2NDBgIGNhbiBldmVuIGJlIHByb2JlZCByZWxpYWJseS4gVGltZSB0byBmaXJlIHVwIGBncmVwcGVyYCBhbmQgc2VlIGlmIHRoZXJlJiMzOTtzIGFuIG9idmlvdXMgZW50cnkgcG9pbnQgb3IgcHJvYmUgbWVjaGFuaXNtLiBHb3R0YSBmaW5kIHNvbWUgd2F5IHRvIHRyaWdnZXIgdGhhdCBwcm9iZSBwYXRoIHRvIHNlZSBpZiB0aGlzIHBhdGNoIGlzIGV2ZW4gcmVhY2hhYmxlLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjQvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzI1IDA4OjE5PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O2RwODM2NDAmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7XG5GdWxsIG91dHB1dCBpcyB0b28gbG9uZywgc2hvd2luZyA1MDAgb3V0IG9mIDYzMiBsaW5lcy5cblVzZSBtb3JlIHByZWNpc2UgZXhwcmVzc2lvbiBpZiBwb3NzaWJsZS5cblxuTUFJTlRBSU5FUlM9MjE3NDE9RjpcdERvY3VtZW50YXRpb24vZHJpdmVyLWFwaS9wdHAucnN0XG5NQUlOVEFJTkVSUzoyMTc0MjpGOlx0ZHJpdmVycy9uZXQvcGh5L2RwODM2NDAqXG5NQUlOVEFJTkVSUy0yMTc0My1GOlx0ZHJpdmVycy9wdHAvKlxuLS1cbmRyaXZlcnMvbmV0L3BoeS9NYWtlZmlsZT01NT1vYmotJChDT05GSUdfREFWSUNPTV9QSFkpXHQmIzQzOz0gZGF2aWNvbS5vXG5kcml2ZXJzL25ldC9waHkvTWFrZWZpbGU6NTY6b2JqLSQoQ09ORklHX0RQODM2NDBfUEhZKVx0JiM0Mzs9IGRwODM2NDAub1xuZHJpdmVycy9uZXQvcGh5L01ha2VmaWxlLTU3LW9iai0kKENPTkZJR19EUDgzODIyX1BIWSlcdCYjNDM7PSBkcDgzODIyLm9cbi0tXG5kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jLTIzLVxuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYzoyNDojaW5jbHVkZSBcJiMzNDtkcDgzNjQwX3JlZy5oXCYjMzQ7XG5kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jLTI1LVxuLS1cbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmMtNzMtXG5kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jOjc0OnN0cnVjdCBkcDgzNjQwX3NrYl9pbmZvIHtcbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmMtNzUtXHRpbnQgcHRwX3R5cGU7XG4tLVxuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYz05NT1zdHJ1Y3Qgcnh0cyB7XG4tLVxuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYy0xMDMtXG5kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jOjEwNDpzdHJ1Y3QgZHA4MzY0MF9jbG9jaztcbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmMtMTA1LVxuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYzoxMDY6c3RydWN0IGRwODM2NDBfcHJpdmF0ZSB7XG5kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jLTEwNy1cdHN0cnVjdCBsaXN0X2hlYWQgbGlzdDtcbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmM6MTA4Olx0c3RydWN0IGRwODM2NDBfY2xvY2sgKmNsb2NrO1xuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYy0xMDktXHRzdHJ1Y3QgcGh5X2RldmljZSAqcGh5ZGV2O1xuLS1cbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmMtMTMwLVxuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYzoxMzE6c3RydWN0IGRwODM2NDBfY2xvY2sge1xuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYy0xMzItXHQvKiBrZWVwcyB0aGUgaW5zdGFuY2UgaW4gdGhlICYjMzk7cGh5dGVyX2Nsb2NrcyYjMzk7IGxpc3QgKi9cbi0tXG5kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jLTE0Ni1cdC8qIHRoZSBvbmUgcGh5dGVyIGZyb20gd2hpY2ggd2Ugc2hhbGwgcmVhZCAqL1xuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYzoxNDc6XHRzdHJ1Y3QgZHA4MzY0MF9wcml2YXRlICpjaG9zZW47XG5kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jLTE0OC1cdC8qIGxpc3Qgb2YgdGhlIG90aGVyIGF0dGFjaGVkIHBoeXRlcnMsIG5vdCBjaG9zZW4gKi9cbi0tXG5kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jPTE3OD1NT0RVTEVfUEFSTV9ERVNDKGdwaW9fdGFiLFxuLS1cbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmMtMTgwLVxuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYzoxODE6c3RhdGljIHZvaWQgZHA4MzY0MF9ncGlvX2RlZmF1bHRzKHN0cnVjdCBwdHBfcGluX2Rlc2MgKnBkKVxuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYy0xODIte1xuLS1cbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmM9MjI5PXN0YXRpYyBpbnQgZXh0X3JlYWQoc3RydWN0IHBoeV9kZXZpY2UgKnBoeWRldiwgaW50IHBhZ2UsIHUzMiByZWdudW0pXG5kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jLTIzMC17XG5kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jOjIzMTpcdHN0cnVjdCBkcDgzNjQwX3ByaXZhdGUgKmRwODM2NDAgPSBwaHlkZXYtXHUwMDNlcHJpdjtcbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmMtMjMyLVx0aW50IHZhbDtcbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmMtMjMzLVxuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYzoyMzQ6XHRpZiAoZHA4MzY0MC1cdTAwM2VjbG9jay1cdTAwM2VwYWdlICE9IHBhZ2UpIHtcbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmMtMjM1LVx0XHRicm9hZGNhc3Rfd3JpdGUocGh5ZGV2LCBQQUdFU0VMLCBwYWdlKTtcbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmM6MjM2Olx0XHRkcDgzNjQwLVx1MDAzZWNsb2NrLVx1MDAzZXBhZ2UgPSBwYWdlO1xuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYy0yMzctXHR9XG4tLVxuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYz0yNDQ9c3RhdGljIHZvaWQgZXh0X3dyaXRlKGludCBicm9hZGNhc3QsIHN0cnVjdCBwaHlfZGV2aWNlICpwaHlkZXYsXG4tLVxuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYy0yNDYte1xuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYzoyNDc6XHRzdHJ1Y3QgZHA4MzY0MF9wcml2YXRlICpkcDgzNjQwID0gcGh5ZGV2LVx1MDAzZXByaXY7XG5kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jLTI0OC1cbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmM6MjQ5Olx0aWYgKGRwODM2NDAtXHUwMDNlY2xvY2stXHUwMDNlcGFnZSAhPSBwYWdlKSB7XG5kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jLTI1MC1cdFx0YnJvYWRjYXN0X3dyaXRlKHBoeWRldiwgUEFHRVNFTCwgcGFnZSk7XG5kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jOjI1MTpcdFx0ZHA4MzY0MC1cdTAwM2VjbG9jay1cdTAwM2VwYWdlID0gcGFnZTtcbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmMtMjUyLVx0fVxuLS1cbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmM9MjkxPXN0YXRpYyB1NjQgcGh5MnR4dHMoc3RydWN0IHBoeV90eHRzICpwKVxuLS1cbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmMtMzA1LVxuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYzozMDY6c3RhdGljIGludCBwZXJpb2RpY19vdXRwdXQoc3RydWN0IGRwODM2NDBfY2xvY2sgKmNsb2NrLFxuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYy0zMDctXHRcdFx0ICAgc3RydWN0IHB0cF9jbG9ja19yZXF1ZXN0ICpjbGtyZXEsIGJvb2wgb24sXG4tLVxuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYy0zMDkte1xuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYzozMTA6XHRzdHJ1Y3QgZHA4MzY0MF9wcml2YXRlICpkcDgzNjQwID0gY2xvY2stXHUwMDNlY2hvc2VuO1xuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYzozMTE6XHRzdHJ1Y3QgcGh5X2RldmljZSAqcGh5ZGV2ID0gZHA4MzY0MC1cdTAwM2VwaHlkZXY7XG5kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jLTMxMi1cdHUzMiBzZWMsIG5zZWMsIHB3aWR0aDtcbi0tXG5kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jLTM3Ni1cbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmM6Mzc3OnN0YXRpYyBpbnQgcHRwX2RwODM2NDBfYWRqZmluZShzdHJ1Y3QgcHRwX2Nsb2NrX2luZm8gKnB0cCwgbG9uZyBzY2FsZWRfcHBtKVxuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYy0zNzgte1xuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYzozNzk6XHRzdHJ1Y3QgZHA4MzY0MF9jbG9jayAqY2xvY2sgPVxuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYzozODA6XHRcdGNvbnRhaW5lcl9vZihwdHAsIHN0cnVjdCBkcDgzNjQwX2Nsb2NrLCBjYXBzKTtcbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmMtMzgxLVx0c3RydWN0IHBoeV9kZXZpY2UgKnBoeWRldiA9IGNsb2NrLVx1MDAzZWNob3Nlbi1cdTAwM2VwaHlkZXY7XG4tLVxuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYy00MDktXG5kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jOjQxMDpzdGF0aWMgaW50IHB0cF9kcDgzNjQwX2FkanRpbWUoc3RydWN0IHB0cF9jbG9ja19pbmZvICpwdHAsIHM2NCBkZWx0YSlcbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmMtNDExLXtcbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmM6NDEyOlx0c3RydWN0IGRwODM2NDBfY2xvY2sgKmNsb2NrID1cbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmM6NDEzOlx0XHRjb250YWluZXJfb2YocHRwLCBzdHJ1Y3QgZHA4MzY0MF9jbG9jaywgY2Fwcyk7XG5kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jLTQxNC1cdHN0cnVjdCBwaHlfZGV2aWNlICpwaHlkZXYgPSBjbG9jay1cdTAwM2VjaG9zZW4tXHUwMDNlcGh5ZGV2O1xuLS1cbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmMtNDMwLVxuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYzo0MzE6c3RhdGljIGludCBwdHBfZHA4MzY0MF9nZXR0aW1lKHN0cnVjdCBwdHBfY2xvY2tfaW5mbyAqcHRwLFxuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYy00MzItXHRcdFx0ICAgICAgIHN0cnVjdCB0aW1lc3BlYzY0ICp0cylcbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmMtNDMzLXtcbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmM6NDM0Olx0c3RydWN0IGRwODM2NDBfY2xvY2sgKmNsb2NrID1cbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmM6NDM1Olx0XHRjb250YWluZXJfb2YocHRwLCBzdHJ1Y3QgZHA4MzY0MF9jbG9jaywgY2Fwcyk7XG5kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jLTQzNi1cdHN0cnVjdCBwaHlfZGV2aWNlICpwaHlkZXYgPSBjbG9jay1cdTAwM2VjaG9zZW4tXHUwMDNlcGh5ZGV2O1xuLS1cbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmMtNDU1LVxuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYzo0NTY6c3RhdGljIGludCBwdHBfZHA4MzY0MF9zZXR0aW1lKHN0cnVjdCBwdHBfY2xvY2tfaW5mbyAqcHRwLFxuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYy00NTctXHRcdFx0ICAgICAgIGNvbnN0IHN0cnVjdCB0aW1lc3BlYzY0ICp0cylcbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmMtNDU4LXtcbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmM6NDU5Olx0c3RydWN0IGRwODM2NDBfY2xvY2sgKmNsb2NrID1cbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmM6NDYwOlx0XHRjb250YWluZXJfb2YocHRwLCBzdHJ1Y3QgZHA4MzY0MF9jbG9jaywgY2Fwcyk7XG5kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jLTQ2MS1cdHN0cnVjdCBwaHlfZGV2aWNlICpwaHlkZXYgPSBjbG9jay1cdTAwM2VjaG9zZW4tXHUwMDNlcGh5ZGV2O1xuLS1cbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmMtNDcyLVxuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYzo0NzM6c3RhdGljIGludCBwdHBfZHA4MzY0MF9lbmFibGUoc3RydWN0IHB0cF9jbG9ja19pbmZvICpwdHAsXG5kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jLTQ3NC1cdFx0XHQgICAgICBzdHJ1Y3QgcHRwX2Nsb2NrX3JlcXVlc3QgKnJxLCBpbnQgb24pXG5kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jLTQ3NS17XG5kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jOjQ3NjpcdHN0cnVjdCBkcDgzNjQwX2Nsb2NrICpjbG9jayA9XG5kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jOjQ3NzpcdFx0Y29udGFpbmVyX29mKHB0cCwgc3RydWN0IGRwODM2NDBfY2xvY2ssIGNhcHMpO1xuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYy00NzgtXHRzdHJ1Y3QgcGh5X2RldmljZSAqcGh5ZGV2ID0gY2xvY2stXHUwMDNlY2hvc2VuLVx1MDAzZXBoeWRldjtcbi0tXG5kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jLTUyMi1cbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmM6NTIzOnN0YXRpYyBpbnQgcHRwX2RwODM2NDBfdmVyaWZ5KHN0cnVjdCBwdHBfY2xvY2tfaW5mbyAqcHRwLCB1bnNpZ25lZCBpbnQgcGluLFxuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYy01MjQtXHRcdFx0ICAgICAgZW51bSBwdHBfcGluX2Z1bmN0aW9uIGZ1bmMsIHVuc2lnbmVkIGludCBjaGFuKVxuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYy01MjUte1xuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYzo1MjY6XHRzdHJ1Y3QgZHA4MzY0MF9jbG9jayAqY2xvY2sgPVxuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYzo1Mjc6XHRcdGNvbnRhaW5lcl9vZihwdHAsIHN0cnVjdCBkcDgzNjQwX2Nsb2NrLCBjYXBzKTtcbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmMtNTI4LVxuLS1cbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmM9NTQyPXN0YXRpYyB2b2lkIGVuYWJsZV9zdGF0dXNfZnJhbWVzKHN0cnVjdCBwaHlfZGV2aWNlICpwaHlkZXYsIGJvb2wgb24pXG5kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jLTU0My17XG5kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jOjU0NDpcdHN0cnVjdCBkcDgzNjQwX3ByaXZhdGUgKmRwODM2NDAgPSBwaHlkZXYtXHUwMDNlcHJpdjtcbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmM6NTQ1Olx0c3RydWN0IGRwODM2NDBfY2xvY2sgKmNsb2NrID0gZHA4MzY0MC1cdTAwM2VjbG9jaztcbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmMtNTQ2LVx0dTE2IGNmZzAgPSAwLCB2ZXI7XG4tLVxuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYz01ODY9c3RhdGljIGludCBleHBpcmVkKHN0cnVjdCByeHRzICpyeHRzKVxuLS1cbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmMtNTkxLS8qIENhbGxlciBtdXN0IGhvbGQgcnhfbG9jay4gKi9cbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmM6NTkyOnN0YXRpYyB2b2lkIHBydW5lX3J4X3RzKHN0cnVjdCBkcDgzNjQwX3ByaXZhdGUgKmRwODM2NDApXG5kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jLTU5My17XG4tLVxuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYy01OTYtXG5kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jOjU5NzpcdGxpc3RfZm9yX2VhY2hfc2FmZSh0aGlzLCBuZXh0LCBcdTAwMjZkcDgzNjQwLVx1MDAzZXJ4dHMpIHtcbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmMtNTk4LVx0XHRyeHRzID0gbGlzdF9lbnRyeSh0aGlzLCBzdHJ1Y3Qgcnh0cywgbGlzdCk7XG4tLVxuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYy02MDAtXHRcdFx0bGlzdF9kZWxfaW5pdChcdTAwMjZyeHRzLVx1MDAzZWxpc3QpO1xuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYzo2MDE6XHRcdFx0bGlzdF9hZGQoXHUwMDI2cnh0cy1cdTAwM2VsaXN0LCBcdTAwMjZkcDgzNjQwLVx1MDAzZXJ4cG9vbCk7XG5kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jLTYwMi1cdFx0fVxuLS1cbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmM9NjA4PXN0YXRpYyB2b2lkIGVuYWJsZV9icm9hZGNhc3Qoc3RydWN0IHBoeV9kZXZpY2UgKnBoeWRldiwgaW50IGluaXRfcGFnZSwgaW50IG9uKVxuLS1cbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmMtNjIxLVxuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYzo2MjI6c3RhdGljIHZvaWQgcmVjYWxpYnJhdGUoc3RydWN0IGRwODM2NDBfY2xvY2sgKmNsb2NrKVxuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYy02MjMte1xuLS1cbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmMtNjI2LVx0c3RydWN0IHRpbWVzcGVjNjQgdHM7XG5kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jOjYyNzpcdHN0cnVjdCBkcDgzNjQwX3ByaXZhdGUgKnRtcDtcbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmMtNjI4LVx0c3RydWN0IHBoeV9kZXZpY2UgKm1hc3RlciA9IGNsb2NrLVx1MDAzZWNob3Nlbi1cdTAwM2VwaHlkZXY7XG4tLVxuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYz03MzA9c3RhdGljIGlubGluZSB1MTYgZXh0c19jaGFuX3RvX2VkYXRhKGludCBjaClcbi0tXG5kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jLTczNC1cbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmM6NzM1OnN0YXRpYyBpbnQgZGVjb2RlX2V2bnQoc3RydWN0IGRwODM2NDBfcHJpdmF0ZSAqZHA4MzY0MCxcbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmMtNzM2LVx0XHQgICAgICAgdm9pZCAqZGF0YSwgaW50IGxlbiwgdTE2IGVzdHMpXG4tLVxuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYy03NjItXHRjYXNlIDM6XG5kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jOjc2MzpcdFx0ZHA4MzY0MC1cdTAwM2VlZGF0YS5zZWNfaGkgPSBwaHlfdHh0cy1cdTAwM2VzZWNfaGk7XG5kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jLTc2NC1cdFx0ZmFsbHRocm91Z2g7XG5kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jLTc2NS1cdGNhc2UgMjpcbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmM6NzY2Olx0XHRkcDgzNjQwLVx1MDAzZWVkYXRhLnNlY19sbyA9IHBoeV90eHRzLVx1MDAzZXNlY19sbztcbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmMtNzY3LVx0XHRmYWxsdGhyb3VnaDtcbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmMtNzY4LVx0Y2FzZSAxOlxuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYzo3Njk6XHRcdGRwODM2NDAtXHUwMDNlZWRhdGEubnNfaGkgPSBwaHlfdHh0cy1cdTAwM2Vuc19oaTtcbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmMtNzcwLVx0XHRmYWxsdGhyb3VnaDtcbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmMtNzcxLVx0Y2FzZSAwOlxuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYzo3NzI6XHRcdGRwODM2NDAtXHUwMDNlZWRhdGEubnNfbG8gPSBwaHlfdHh0cy1cdTAwM2Vuc19sbztcbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmMtNzczLVx0fVxuLS1cbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmMtNzgwLVx0ZXZlbnQudHlwZSA9IFBUUF9DTE9DS19FWFRUUztcbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmM6NzgxOlx0ZXZlbnQudGltZXN0YW1wID0gcGh5MnR4dHMoXHUwMDI2ZHA4MzY0MC1cdTAwM2VlZGF0YSk7XG5kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jLTc4Mi1cbi0tXG5kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jLTc4OC1cdFx0XHRldmVudC5pbmRleCA9IGk7XG5kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jOjc4OTpcdFx0XHRwdHBfY2xvY2tfZXZlbnQoZHA4MzY0MC1cdTAwM2VjbG9jay1cdTAwM2VwdHBfY2xvY2ssIFx1MDAyNmV2ZW50KTtcbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmMtNzkwLVx0XHR9XG4tLVxuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYz03OTg9c3RhdGljIGludCBtYXRjaChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCB1bnNpZ25lZCBpbnQgdHlwZSwgc3RydWN0IHJ4dHMgKnJ4dHMpXG4tLVxuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYy04MjctXG5kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jOjgyODpzdGF0aWMgdm9pZCBkZWNvZGVfcnh0cyhzdHJ1Y3QgZHA4MzY0MF9wcml2YXRlICpkcDgzNjQwLFxuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYy04MjktXHRcdFx0c3RydWN0IHBoeV9yeHRzICpwaHlfcnh0cylcbi0tXG5kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jLTg0MC1cbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmM6ODQxOlx0c3Bpbl9sb2NrX2lycXNhdmUoXHUwMDI2ZHA4MzY0MC1cdTAwM2VyeF9sb2NrLCBmbGFncyk7XG5kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jLTg0Mi1cbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmM6ODQzOlx0cHJ1bmVfcnhfdHMoZHA4MzY0MCk7XG5kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jLTg0NC1cbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmM6ODQ1Olx0aWYgKGxpc3RfZW1wdHkoXHUwMDI2ZHA4MzY0MC1cdTAwM2VyeHBvb2wpKSB7XG5kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jLTg0Ni1cdFx0cHJfZGVidWcoXCYjMzQ7cnggdGltZXN0YW1wIHBvb2wgaXMgZW1wdHlcXG5cJiMzNDspO1xuLS1cbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmMtODQ4LVx0fVxuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYzo4NDk6XHRyeHRzID0gbGlzdF9maXJzdF9lbnRyeShcdTAwMjZkcDgzNjQwLVx1MDAzZXJ4cG9vbCwgc3RydWN0IHJ4dHMsIGxpc3QpO1xuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYy04NTAtXHRsaXN0X2RlbF9pbml0KFx1MDAyNnJ4dHMtXHUwMDNlbGlzdCk7XG4tLVxuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYy04NTItXG5kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jOjg1MzpcdHNwaW5fbG9jayhcdTAwMjZkcDgzNjQwLVx1MDAzZXJ4X3F1ZXVlLmxvY2spO1xuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYzo4NTQ6XHRza2JfcXVldWVfd2FsayhcdTAwMjZkcDgzNjQwLVx1MDAzZXJ4X3F1ZXVlLCBza2IpIHtcbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmM6ODU1Olx0XHRzdHJ1Y3QgZHA4MzY0MF9za2JfaW5mbyAqc2tiX2luZm87XG5kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jLTg1Ni1cbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmM6ODU3Olx0XHRza2JfaW5mbyA9IChzdHJ1Y3QgZHA4MzY0MF9za2JfaW5mbyAqKXNrYi1cdTAwM2VjYjtcbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmMtODU4LVx0XHRpZiAobWF0Y2goc2tiLCBza2JfaW5mby1cdTAwM2VwdHBfdHlwZSwgcnh0cykpIHtcbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmM6ODU5Olx0XHRcdF9fc2tiX3VubGluayhza2IsIFx1MDAyNmRwODM2NDAtXHUwMDNlcnhfcXVldWUpO1xuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYy04NjAtXHRcdFx0c2hod3RzdGFtcHMgPSBza2JfaHd0c3RhbXBzKHNrYik7XG4tLVxuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYy04NjItXHRcdFx0c2hod3RzdGFtcHMtXHUwMDNlaHd0c3RhbXAgPSBuc190b19rdGltZShyeHRzLVx1MDAzZW5zKTtcbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmM6ODYzOlx0XHRcdGxpc3RfYWRkKFx1MDAyNnJ4dHMtXHUwMDNlbGlzdCwgXHUwMDI2ZHA4MzY0MC1cdTAwM2VyeHBvb2wpO1xuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYy04NjQtXHRcdFx0YnJlYWs7XG4tLVxuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYy04NjYtXHR9XG5kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jOjg2NzpcdHNwaW5fdW5sb2NrKFx1MDAyNmRwODM2NDAtXHUwMDNlcnhfcXVldWUubG9jayk7XG5kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jLTg2OC1cbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmMtODY5LVx0aWYgKCFzaGh3dHN0YW1wcylcbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmM6ODcwOlx0XHRsaXN0X2FkZF90YWlsKFx1MDAyNnJ4dHMtXHUwMDNlbGlzdCwgXHUwMDI2ZHA4MzY0MC1cdTAwM2VyeHRzKTtcbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmMtODcxLW91dDpcbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmM6ODcyOlx0c3Bpbl91bmxvY2tfaXJxcmVzdG9yZShcdTAwMjZkcDgzNjQwLVx1MDAzZXJ4X2xvY2ssIGZsYWdzKTtcbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmMtODczLVxuLS1cbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmMtODc3LVxuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYzo4Nzg6c3RhdGljIHZvaWQgZGVjb2RlX3R4dHMoc3RydWN0IGRwODM2NDBfcHJpdmF0ZSAqZHA4MzY0MCxcbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmMtODc5LVx0XHRcdHN0cnVjdCBwaHlfdHh0cyAqcGh5X3R4dHMpXG4tLVxuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYy04ODEtXHRzdHJ1Y3Qgc2tiX3NoYXJlZF9od3RzdGFtcHMgc2hod3RzdGFtcHM7XG5kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jOjg4MjpcdHN0cnVjdCBkcDgzNjQwX3NrYl9pbmZvICpza2JfaW5mbztcbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmMtODgzLVx0c3RydWN0IHNrX2J1ZmYgKnNrYjtcbi0tXG5kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jLTg4OC1hZ2FpbjpcbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmM6ODg5Olx0c2tiID0gc2tiX2RlcXVldWUoXHUwMDI2ZHA4MzY0MC1cdTAwM2V0eF9xdWV1ZSk7XG5kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jLTg5MC1cdGlmICghc2tiKSB7XG4tLVxuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYy04OTktXHRcdFx0a2ZyZWVfc2tiKHNrYik7XG5kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jOjkwMDpcdFx0XHRza2IgPSBza2JfZGVxdWV1ZShcdTAwMjZkcDgzNjQwLVx1MDAzZXR4X3F1ZXVlKTtcbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmMtOTAxLVx0XHR9XG4tLVxuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYy05MDMtXHR9XG5kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jOjkwNDpcdHNrYl9pbmZvID0gKHN0cnVjdCBkcDgzNjQwX3NrYl9pbmZvICopc2tiLVx1MDAzZWNiO1xuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYy05MDUtXHRpZiAodGltZV9hZnRlcihqaWZmaWVzLCBza2JfaW5mby1cdTAwM2V0bW8pKSB7XG4tLVxuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYy05MTUtXG5kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jOjkxNjpzdGF0aWMgdm9pZCBkZWNvZGVfc3RhdHVzX2ZyYW1lKHN0cnVjdCBkcDgzNjQwX3ByaXZhdGUgKmRwODM2NDAsXG5kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jLTkxNy1cdFx0XHRcdHN0cnVjdCBza19idWZmICpza2IpXG4tLVxuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYy05MzctXHRcdFx0cGh5X3J4dHMgPSAoc3RydWN0IHBoeV9yeHRzICopIHB0cjtcbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmM6OTM4Olx0XHRcdGRlY29kZV9yeHRzKGRwODM2NDAsIHBoeV9yeHRzKTtcbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmMtOTM5LVx0XHRcdHNpemUgPSBzaXplb2YoKnBoeV9yeHRzKTtcbi0tXG5kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jLTk0My1cdFx0XHRwaHlfdHh0cyA9IChzdHJ1Y3QgcGh5X3R4dHMgKikgcHRyO1xuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYzo5NDQ6XHRcdFx0ZGVjb2RlX3R4dHMoZHA4MzY0MCwgcGh5X3R4dHMpO1xuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYy05NDUtXHRcdFx0c2l6ZSA9IHNpemVvZigqcGh5X3R4dHMpO1xuLS1cbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmMtOTQ4LVxuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYzo5NDk6XHRcdFx0c2l6ZSA9IGRlY29kZV9ldm50KGRwODM2NDAsIHB0ciwgbGVuLCBlc3RzKTtcbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmMtOTUwLVxuLS1cbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmMtOTU4LVxuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYzo5NTk6c3RhdGljIHZvaWQgZHA4MzY0MF9jbG9ja19pbml0KHN0cnVjdCBkcDgzNjQwX2Nsb2NrICpjbG9jaywgc3RydWN0IG1paV9idXMgKmJ1cylcbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmMtOTYwLXtcbi0tXG5kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jLTk2Ny1cdGNsb2NrLVx1MDAzZWNhcHMub3duZXIgPSBUSElTX01PRFVMRTtcbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmM6OTY4Olx0c3ByaW50ZihjbG9jay1cdTAwM2VjYXBzLm5hbWUsIFwmIzM0O2RwODM2NDAgdGltZXJcJiMzNDspO1xuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYy05NjktXHRjbG9jay1cdTAwM2VjYXBzLm1heF9hZGpcdD0gMTk1MzEyNDtcbi0tXG5kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jLTk3Ny1cdFx0XHRcdFx0ICAgIFBUUF9TVFJJQ1RfRkxBR1M7XG5kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jOjk3ODpcdGNsb2NrLVx1MDAzZWNhcHMuYWRqZmluZVx0PSBwdHBfZHA4MzY0MF9hZGpmaW5lO1xuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYzo5Nzk6XHRjbG9jay1cdTAwM2VjYXBzLmFkanRpbWVcdD0gcHRwX2RwODM2NDBfYWRqdGltZTtcbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmM6OTgwOlx0Y2xvY2stXHUwMDNlY2Fwcy5nZXR0aW1lNjRcdD0gcHRwX2RwODM2NDBfZ2V0dGltZTtcbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmM6OTgxOlx0Y2xvY2stXHUwMDNlY2Fwcy5zZXR0aW1lNjRcdD0gcHRwX2RwODM2NDBfc2V0dGltZTtcbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmM6OTgyOlx0Y2xvY2stXHUwMDNlY2Fwcy5lbmFibGVcdD0gcHRwX2RwODM2NDBfZW5hYmxlO1xuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYzo5ODM6XHRjbG9jay1cdTAwM2VjYXBzLnZlcmlmeVx0PSBwdHBfZHA4MzY0MF92ZXJpZnk7XG5kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jLTk4NC1cdC8qXG4tLVxuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYy05ODYtXHQgKi9cbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmM6OTg3Olx0ZHA4MzY0MF9ncGlvX2RlZmF1bHRzKGNsb2NrLVx1MDAzZWNhcHMucGluX2NvbmZpZyk7XG5kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jLTk4OC1cdC8qXG4tLVxuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYy05OTMtXG5kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jOjk5NDpzdGF0aWMgaW50IGNob29zZV90aGlzX3BoeShzdHJ1Y3QgZHA4MzY0MF9jbG9jayAqY2xvY2ssXG5kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jLTk5NS1cdFx0XHQgICBzdHJ1Y3QgcGh5X2RldmljZSAqcGh5ZGV2KVxuLS1cbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmMtMTAwNS1cbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmM6MTAwNjpzdGF0aWMgdm9pZCBkcDgzNjQwX2Nsb2NrX2xvY2soc3RydWN0IGRwODM2NDBfY2xvY2sgKmNsb2NrKVxuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYy0xMDA3LXtcbi0tXG5kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jLTEwMTQtICovXG5kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jOjEwMTU6c3RhdGljIHN0cnVjdCBkcDgzNjQwX2Nsb2NrICpkcDgzNjQwX2Nsb2NrX2dldF9idXMoc3RydWN0IG1paV9idXMgKmJ1cylcbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmMtMTAxNi17XG5kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jOjEwMTc6XHRzdHJ1Y3QgZHA4MzY0MF9jbG9jayAqY2xvY2sgPSBOVUxMLCAqdG1wO1xuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYy0xMDE4LVx0c3RydWN0IGxpc3RfaGVhZCAqdGhpcztcbi0tXG5kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jLTEwMjItXHRsaXN0X2Zvcl9lYWNoKHRoaXMsIFx1MDAyNnBoeXRlcl9jbG9ja3MpIHtcbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmM6MTAyMzpcdFx0dG1wID0gbGlzdF9lbnRyeSh0aGlzLCBzdHJ1Y3QgZHA4MzY0MF9jbG9jaywgbGlzdCk7XG5kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jLTEwMjQtXHRcdGlmICh0bXAtXHUwMDNlYnVzID09IGJ1cykge1xuLS1cbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmMtMTAzMi1cbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmM6MTAzMzpcdGNsb2NrID0ga3phbGxvY19vYmooc3RydWN0IGRwODM2NDBfY2xvY2spO1xuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYy0xMDM0LVx0aWYgKCFjbG9jaylcbi0tXG5kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jLTEwNDMtXHR9XG5kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jOjEwNDQ6XHRkcDgzNjQwX2Nsb2NrX2luaXQoY2xvY2ssIGJ1cyk7XG5kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jLTEwNDUtXHRsaXN0X2FkZF90YWlsKFx1MDAyNmNsb2NrLVx1MDAzZWxpc3QsIFx1MDAyNnBoeXRlcl9jbG9ja3MpO1xuLS1cbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmMtMTA0OS1cdGlmIChjbG9jaylcbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmM6MTA1MDpcdFx0ZHA4MzY0MF9jbG9ja19sb2NrKGNsb2NrKTtcbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmMtMTA1MS1cbi0tXG5kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jLTEwNTQtXG5kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jOjEwNTU6c3RhdGljIHZvaWQgZHA4MzY0MF9jbG9ja191bmxvY2soc3RydWN0IGRwODM2NDBfY2xvY2sgKmNsb2NrKVxuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYy0xMDU2LXtcbi0tXG5kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jLTEwNTktXG5kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jOjEwNjA6c3RhdGljIHZvaWQgZHA4MzY0MF9jbG9ja19yZWxlYXNlKHN0cnVjdCBrcmVmICprcmVmKVxuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYy0xMDYxLXtcbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmM6MTA2MjpcdHN0cnVjdCBkcDgzNjQwX2Nsb2NrICpjbG9jayA9XG5kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jOjEwNjM6XHRcdGNvbnRhaW5lcl9vZihrcmVmLCBzdHJ1Y3QgZHA4MzY0MF9jbG9jaywga3JlZik7XG5kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jLTEwNjQtXG4tLVxuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYy0xMDc0LVxuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYzoxMDc1OnN0YXRpYyB2b2lkIGRwODM2NDBfY2xvY2tfcHV0KHN0cnVjdCBkcDgzNjQwX2Nsb2NrICpjbG9jaylcbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmMtMTA3Ni17XG5kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jOjEwNzc6XHRrcmVmX3B1dF9tdXRleChcdTAwMjZjbG9jay1cdTAwM2VrcmVmLCBkcDgzNjQwX2Nsb2NrX3JlbGVhc2UsXG5kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jLTEwNzgtXHRcdCAgICAgICBcdTAwMjZwaHl0ZXJfY2xvY2tzX2xvY2spO1xuLS1cbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmMtMTA4MC1cbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmM6MTA4MTpzdGF0aWMgaW50IGRwODM2NDBfc29mdF9yZXNldChzdHJ1Y3QgcGh5X2RldmljZSAqcGh5ZGV2KVxuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYy0xMDgyLXtcbi0tXG5kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jLTEwOTctXG5kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jOjEwOTg6c3RhdGljIGludCBkcDgzNjQwX2NvbmZpZ19pbml0KHN0cnVjdCBwaHlfZGV2aWNlICpwaHlkZXYpXG5kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jLTEwOTkte1xuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYzoxMTAwOlx0c3RydWN0IGRwODM2NDBfcHJpdmF0ZSAqZHA4MzY0MCA9IHBoeWRldi1cdTAwM2Vwcml2O1xuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYzoxMTAxOlx0c3RydWN0IGRwODM2NDBfY2xvY2sgKmNsb2NrID0gZHA4MzY0MC1cdTAwM2VjbG9jaztcbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmMtMTEwMi1cbi0tXG5kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jLTExMTktXG5kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jOjExMjA6c3RhdGljIGludCBkcDgzNjQwX2Fja19pbnRlcnJ1cHQoc3RydWN0IHBoeV9kZXZpY2UgKnBoeWRldilcbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmMtMTEyMS17XG4tLVxuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYy0xMTI5LVxuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYzoxMTMwOnN0YXRpYyBpbnQgZHA4MzY0MF9jb25maWdfaW50cihzdHJ1Y3QgcGh5X2RldmljZSAqcGh5ZGV2KVxuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYy0xMTMxLXtcbi0tXG5kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jLTExMzYtXHRpZiAocGh5ZGV2LVx1MDAzZWludGVycnVwdHMgPT0gUEhZX0lOVEVSUlVQVF9FTkFCTEVEKSB7XG5kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jOjExMzc6XHRcdGVyciA9IGRwODM2NDBfYWNrX2ludGVycnVwdChwaHlkZXYpO1xuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYy0xMTM4LVx0XHRpZiAoZXJyKVxuLS1cbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmMtMTE4Mi1cbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmM6MTE4MzpcdFx0cmV0dXJuIGRwODM2NDBfYWNrX2ludGVycnVwdChwaHlkZXYpO1xuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYy0xMTg0LVx0fVxuLS1cbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmMtMTE4Ni1cbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmM6MTE4NzpzdGF0aWMgaXJxcmV0dXJuX3QgZHA4MzY0MF9oYW5kbGVfaW50ZXJydXB0KHN0cnVjdCBwaHlfZGV2aWNlICpwaHlkZXYpXG5kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jLTExODgte1xuLS1cbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmMtMTIwNC1cbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmM6MTIwNTpzdGF0aWMgaW50IGRwODM2NDBfaHd0c3RhbXBfZ2V0KHN0cnVjdCBtaWlfdGltZXN0YW1wZXIgKm1paV90cyxcbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmMtMTIwNi1cdFx0XHRcdHN0cnVjdCBrZXJuZWxfaHd0c3RhbXBfY29uZmlnICpjZmcpXG5kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jLTEyMDcte1xuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYzoxMjA4Olx0c3RydWN0IGRwODM2NDBfcHJpdmF0ZSAqZHA4MzY0MCA9XG5kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jOjEyMDk6XHRcdGNvbnRhaW5lcl9vZihtaWlfdHMsIHN0cnVjdCBkcDgzNjQwX3ByaXZhdGUsIG1paV90cyk7XG5kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jLTEyMTAtXG5kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jOjEyMTE6XHRjZmctXHUwMDNlcnhfZmlsdGVyID0gZHA4MzY0MC1cdTAwM2Vod3RzX3J4X2VuO1xuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYzoxMjEyOlx0Y2ZnLVx1MDAzZXR4X3R5cGUgPSBkcDgzNjQwLVx1MDAzZWh3dHNfdHhfZW47XG5kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jLTEyMTMtXG4tLVxuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYy0xMjE2LVxuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYzoxMjE3OnN0YXRpYyBpbnQgZHA4MzY0MF9od3RzdGFtcF9zZXQoc3RydWN0IG1paV90aW1lc3RhbXBlciAqbWlpX3RzLFxuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYy0xMjE4LVx0XHRcdFx0c3RydWN0IGtlcm5lbF9od3RzdGFtcF9jb25maWcgKmNmZyxcbi0tXG5kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jLTEyMjAte1xuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYzoxMjIxOlx0c3RydWN0IGRwODM2NDBfcHJpdmF0ZSAqZHA4MzY0MCA9XG5kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jOjEyMjI6XHRcdGNvbnRhaW5lcl9vZihtaWlfdHMsIHN0cnVjdCBkcDgzNjQwX3ByaXZhdGUsIG1paV90cyk7XG5kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jLTEyMjMtXHR1MTYgdHhjZmcwLCByeGNmZzA7XG4tLVxuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYy0xMjI3LVxuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYzoxMjI4Olx0ZHA4MzY0MC1cdTAwM2Vod3RzX3R4X2VuID0gY2ZnLVx1MDAzZXR4X3R5cGU7XG5kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jLTEyMjktXG4tLVxuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYy0xMjMxLVx0Y2FzZSBIV1RTVEFNUF9GSUxURVJfTk9ORTpcbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmM6MTIzMjpcdFx0ZHA4MzY0MC1cdTAwM2Vod3RzX3J4X2VuID0gMDtcbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmM6MTIzMzpcdFx0ZHA4MzY0MC1cdTAwM2VsYXllciA9IDA7XG5kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jOjEyMzQ6XHRcdGRwODM2NDAtXHUwMDNldmVyc2lvbiA9IDA7XG5kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jLTEyMzUtXHRcdGJyZWFrO1xuLS1cbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmMtMTIzOC1cdGNhc2UgSFdUU1RBTVBfRklMVEVSX1BUUF9WMV9MNF9ERUxBWV9SRVE6XG5kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jOjEyMzk6XHRcdGRwODM2NDAtXHUwMDNlaHd0c19yeF9lbiA9IEhXVFNUQU1QX0ZJTFRFUl9QVFBfVjFfTDRfRVZFTlQ7XG5kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jOjEyNDA6XHRcdGRwODM2NDAtXHUwMDNlbGF5ZXIgPSBQVFBfQ0xBU1NfTDQ7XG5kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jOjEyNDE6XHRcdGRwODM2NDAtXHUwMDNldmVyc2lvbiA9IFBUUF9DTEFTU19WMTtcbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmMtMTI0Mi1cdFx0Y2ZnLVx1MDAzZXJ4X2ZpbHRlciA9IEhXVFNUQU1QX0ZJTFRFUl9QVFBfVjFfTDRfRVZFTlQ7XG4tLVxuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYy0xMjQ2LVx0Y2FzZSBIV1RTVEFNUF9GSUxURVJfUFRQX1YyX0w0X0RFTEFZX1JFUTpcbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmM6MTI0NzpcdFx0ZHA4MzY0MC1cdTAwM2Vod3RzX3J4X2VuID0gSFdUU1RBTVBfRklMVEVSX1BUUF9WMl9MNF9FVkVOVDtcbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmM6MTI0ODpcdFx0ZHA4MzY0MC1cdTAwM2VsYXllciA9IFBUUF9DTEFTU19MNDtcbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmM6MTI0OTpcdFx0ZHA4MzY0MC1cdTAwM2V2ZXJzaW9uID0gUFRQX0NMQVNTX1YyO1xuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYy0xMjUwLVx0XHRjZmctXHUwMDNlcnhfZmlsdGVyID0gSFdUU1RBTVBfRklMVEVSX1BUUF9WMl9MNF9FVkVOVDtcbi0tXG5kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jLTEyNTQtXHRjYXNlIEhXVFNUQU1QX0ZJTFRFUl9QVFBfVjJfTDJfREVMQVlfUkVROlxuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYzoxMjU1Olx0XHRkcDgzNjQwLVx1MDAzZWh3dHNfcnhfZW4gPSBIV1RTVEFNUF9GSUxURVJfUFRQX1YyX0wyX0VWRU5UO1xuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYzoxMjU2Olx0XHRkcDgzNjQwLVx1MDAzZWxheWVyID0gUFRQX0NMQVNTX0wyO1xuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYzoxMjU3Olx0XHRkcDgzNjQwLVx1MDAzZXZlcnNpb24gPSBQVFBfQ0xBU1NfVjI7XG5kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jLTEyNTgtXHRcdGNmZy1cdTAwM2VyeF9maWx0ZXIgPSBIV1RTVEFNUF9GSUxURVJfUFRQX1YyX0wyX0VWRU5UO1xuLS1cbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmMtMTI2Mi1cdGNhc2UgSFdUU1RBTVBfRklMVEVSX1BUUF9WMl9ERUxBWV9SRVE6XG5kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jOjEyNjM6XHRcdGRwODM2NDAtXHUwMDNlaHd0c19yeF9lbiA9IEhXVFNUQU1QX0ZJTFRFUl9QVFBfVjJfRVZFTlQ7XG5kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jOjEyNjQ6XHRcdGRwODM2NDAtXHUwMDNlbGF5ZXIgPSBQVFBfQ0xBU1NfTDQgfCBQVFBfQ0xBU1NfTDI7XG5kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jOjEyNjU6XHRcdGRwODM2NDAtXHUwMDNldmVyc2lvbiA9IFBUUF9DTEFTU19WMjtcbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmMtMTI2Ni1cdFx0Y2ZnLVx1MDAzZXJ4X2ZpbHRlciA9IEhXVFNUQU1QX0ZJTFRFUl9QVFBfVjJfRVZFTlQ7XG4tLVxuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYy0xMjcxLVxuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYzoxMjcyOlx0dHhjZmcwID0gKGRwODM2NDAtXHUwMDNldmVyc2lvbiBcdTAwMjYgVFhfUFRQX1ZFUl9NQVNLKSBcdTAwM2NcdTAwM2MgVFhfUFRQX1ZFUl9TSElGVDtcbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmM6MTI3MzpcdHJ4Y2ZnMCA9IChkcDgzNjQwLVx1MDAzZXZlcnNpb24gXHUwMDI2IFRYX1BUUF9WRVJfTUFTSykgXHUwMDNjXHUwMDNjIFRYX1BUUF9WRVJfU0hJRlQ7XG5kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jLTEyNzQtXG5kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jOjEyNzU6XHRpZiAoZHA4MzY0MC1cdTAwM2VsYXllciBcdTAwMjYgUFRQX0NMQVNTX0wyKSB7XG5kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jLTEyNzYtXHRcdHR4Y2ZnMCB8PSBUWF9MMl9FTjtcbi0tXG5kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jLTEyNzgtXHR9XG5kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jOjEyNzk6XHRpZiAoZHA4MzY0MC1cdTAwM2VsYXllciBcdTAwMjYgUFRQX0NMQVNTX0w0KSB7XG5kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jLTEyODAtXHRcdHR4Y2ZnMCB8PSBUWF9JUFY2X0VOIHwgVFhfSVBWNF9FTjtcbi0tXG5kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jLTEyODMtXG5kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jOjEyODQ6XHRpZiAoZHA4MzY0MC1cdTAwM2Vod3RzX3R4X2VuKVxuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYy0xMjg1LVx0XHR0eGNmZzAgfD0gVFhfVFNfRU47XG5kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jLTEyODYtXG5kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jOjEyODc6XHRpZiAoZHA4MzY0MC1cdTAwM2Vod3RzX3R4X2VuID09IEhXVFNUQU1QX1RYX09ORVNURVBfU1lOQylcbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmMtMTI4OC1cdFx0dHhjZmcwIHw9IFNZTkNfMVNURVAgfCBDSEtfMVNURVA7XG5kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jLTEyODktXG5kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jOjEyOTA6XHRpZiAoZHA4MzY0MC1cdTAwM2Vod3RzX3J4X2VuKVxuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYy0xMjkxLVx0XHRyeGNmZzAgfD0gUlhfVFNfRU47XG5kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jLTEyOTItXG5kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jOjEyOTM6XHRtdXRleF9sb2NrKFx1MDAyNmRwODM2NDAtXHUwMDNlY2xvY2stXHUwMDNlZXh0cmVnX2xvY2spO1xuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYy0xMjk0LVxuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYzoxMjk1Olx0ZXh0X3dyaXRlKDAsIGRwODM2NDAtXHUwMDNlcGh5ZGV2LCBQQUdFNSwgUFRQX1RYQ0ZHMCwgdHhjZmcwKTtcbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmM6MTI5NjpcdGV4dF93cml0ZSgwLCBkcDgzNjQwLVx1MDAzZXBoeWRldiwgUEFHRTUsIFBUUF9SWENGRzAsIHJ4Y2ZnMCk7XG5kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jLTEyOTctXG5kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jOjEyOTg6XHRtdXRleF91bmxvY2soXHUwMDI2ZHA4MzY0MC1cdTAwM2VjbG9jay1cdTAwM2VleHRyZWdfbG9jayk7XG5kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jLTEyOTktXG4tLVxuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYz0xMzAzPXN0YXRpYyB2b2lkIHJ4X3RpbWVzdGFtcF93b3JrKHN0cnVjdCB3b3JrX3N0cnVjdCAqd29yaylcbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmMtMTMwNC17XG5kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jOjEzMDU6XHRzdHJ1Y3QgZHA4MzY0MF9wcml2YXRlICpkcDgzNjQwID1cbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmM6MTMwNjpcdFx0Y29udGFpbmVyX29mKHdvcmssIHN0cnVjdCBkcDgzNjQwX3ByaXZhdGUsIHRzX3dvcmsud29yayk7XG5kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jLTEzMDctXHRzdHJ1Y3Qgc2tfYnVmZiAqc2tiO1xuLS1cbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmMtMTMwOS1cdC8qIERlbGl2ZXIgZXhwaXJlZCBwYWNrZXRzLiAqL1xuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYzoxMzEwOlx0d2hpbGUgKChza2IgPSBza2JfZGVxdWV1ZShcdTAwMjZkcDgzNjQwLVx1MDAzZXJ4X3F1ZXVlKSkpIHtcbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmM6MTMxMTpcdFx0c3RydWN0IGRwODM2NDBfc2tiX2luZm8gKnNrYl9pbmZvO1xuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYy0xMzEyLVxuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYzoxMzEzOlx0XHRza2JfaW5mbyA9IChzdHJ1Y3QgZHA4MzY0MF9za2JfaW5mbyAqKXNrYi1cdTAwM2VjYjtcbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmMtMTMxNC1cdFx0aWYgKCF0aW1lX2FmdGVyKGppZmZpZXMsIHNrYl9pbmZvLVx1MDAzZXRtbykpIHtcbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmM6MTMxNTpcdFx0XHRza2JfcXVldWVfaGVhZChcdTAwMjZkcDgzNjQwLVx1MDAzZXJ4X3F1ZXVlLCBza2IpO1xuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYy0xMzE2LVx0XHRcdGJyZWFrO1xuLS1cbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmMtMTMyMS1cbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmM6MTMyMjpcdGlmICghc2tiX3F1ZXVlX2VtcHR5KFx1MDAyNmRwODM2NDAtXHUwMDNlcnhfcXVldWUpKVxuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYzoxMzIzOlx0XHRzY2hlZHVsZV9kZWxheWVkX3dvcmsoXHUwMDI2ZHA4MzY0MC1cdTAwM2V0c193b3JrLCBTS0JfVElNRVNUQU1QX1RJTUVPVVQpO1xuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYy0xMzI0LX1cbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmMtMTMyNS1cbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmM6MTMyNjpzdGF0aWMgYm9vbCBkcDgzNjQwX3J4dHN0YW1wKHN0cnVjdCBtaWlfdGltZXN0YW1wZXIgKm1paV90cyxcbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmMtMTMyNy1cdFx0XHQgICAgIHN0cnVjdCBza19idWZmICpza2IsIGludCB0eXBlKVxuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYy0xMzI4LXtcbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmM6MTMyOTpcdHN0cnVjdCBkcDgzNjQwX3ByaXZhdGUgKmRwODM2NDAgPVxuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYzoxMzMwOlx0XHRjb250YWluZXJfb2YobWlpX3RzLCBzdHJ1Y3QgZHA4MzY0MF9wcml2YXRlLCBtaWlfdHMpO1xuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYzoxMzMxOlx0c3RydWN0IGRwODM2NDBfc2tiX2luZm8gKnNrYl9pbmZvID0gKHN0cnVjdCBkcDgzNjQwX3NrYl9pbmZvICopc2tiLVx1MDAzZWNiO1xuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYy0xMzMyLVx0c3RydWN0IGxpc3RfaGVhZCAqdGhpcywgKm5leHQ7XG4tLVxuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYy0xMzM3LVx0aWYgKGlzX3N0YXR1c19mcmFtZShza2IsIHR5cGUpKSB7XG5kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jOjEzMzg6XHRcdGRlY29kZV9zdGF0dXNfZnJhbWUoZHA4MzY0MCwgc2tiKTtcbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmMtMTMzOS1cdFx0a2ZyZWVfc2tiKHNrYik7XG4tLVxuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYy0xMzQyLVxuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYzoxMzQzOlx0aWYgKCFkcDgzNjQwLVx1MDAzZWh3dHNfcnhfZW4pXG5kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jLTEzNDQtXHRcdHJldHVybiBmYWxzZTtcbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmMtMTM0NS1cbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmM6MTM0NjpcdGlmICgodHlwZSBcdTAwMjYgZHA4MzY0MC1cdTAwM2V2ZXJzaW9uKSA9PSAwIHx8ICh0eXBlIFx1MDAyNiBkcDgzNjQwLVx1MDAzZWxheWVyKSA9PSAwKVxuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYy0xMzQ3LVx0XHRyZXR1cm4gZmFsc2U7XG5kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jLTEzNDgtXG5kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jOjEzNDk6XHRzcGluX2xvY2tfaXJxc2F2ZShcdTAwMjZkcDgzNjQwLVx1MDAzZXJ4X2xvY2ssIGZsYWdzKTtcbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmM6MTM1MDpcdHBydW5lX3J4X3RzKGRwODM2NDApO1xuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYzoxMzUxOlx0bGlzdF9mb3JfZWFjaF9zYWZlKHRoaXMsIG5leHQsIFx1MDAyNmRwODM2NDAtXHUwMDNlcnh0cykge1xuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYy0xMzUyLVx0XHRyeHRzID0gbGlzdF9lbnRyeSh0aGlzLCBzdHJ1Y3Qgcnh0cywgbGlzdCk7XG4tLVxuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYy0xMzU3LVx0XHRcdGxpc3RfZGVsX2luaXQoXHUwMDI2cnh0cy1cdTAwM2VsaXN0KTtcbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmM6MTM1ODpcdFx0XHRsaXN0X2FkZChcdTAwMjZyeHRzLVx1MDAzZWxpc3QsIFx1MDAyNmRwODM2NDAtXHUwMDNlcnhwb29sKTtcbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmMtMTM1OS1cdFx0XHRicmVhaztcbi0tXG5kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jLTEzNjEtXHR9XG5kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jOjEzNjI6XHRzcGluX3VubG9ja19pcnFyZXN0b3JlKFx1MDAyNmRwODM2NDAtXHUwMDNlcnhfbG9jaywgZmxhZ3MpO1xuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYy0xMzYzLVxuLS1cbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmMtMTM2Ni1cdFx0c2tiX2luZm8tXHUwMDNldG1vID0gamlmZmllcyAmIzQzOyBTS0JfVElNRVNUQU1QX1RJTUVPVVQ7XG5kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jOjEzNjc6XHRcdHNrYl9xdWV1ZV90YWlsKFx1MDAyNmRwODM2NDAtXHUwMDNlcnhfcXVldWUsIHNrYik7XG5kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jOjEzNjg6XHRcdHNjaGVkdWxlX2RlbGF5ZWRfd29yayhcdTAwMjZkcDgzNjQwLVx1MDAzZXRzX3dvcmssIFNLQl9USU1FU1RBTVBfVElNRU9VVCk7XG5kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jLTEzNjktXHR9IGVsc2Uge1xuLS1cbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmMtMTM3NS1cbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmM6MTM3NjpzdGF0aWMgdm9pZCBkcDgzNjQwX3R4dHN0YW1wKHN0cnVjdCBtaWlfdGltZXN0YW1wZXIgKm1paV90cyxcbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmMtMTM3Ny1cdFx0XHQgICAgIHN0cnVjdCBza19idWZmICpza2IsIGludCB0eXBlKVxuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYy0xMzc4LXtcbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmM6MTM3OTpcdHN0cnVjdCBkcDgzNjQwX3NrYl9pbmZvICpza2JfaW5mbyA9IChzdHJ1Y3QgZHA4MzY0MF9za2JfaW5mbyAqKXNrYi1cdTAwM2VjYjtcbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmM6MTM4MDpcdHN0cnVjdCBkcDgzNjQwX3ByaXZhdGUgKmRwODM2NDAgPVxuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYzoxMzgxOlx0XHRjb250YWluZXJfb2YobWlpX3RzLCBzdHJ1Y3QgZHA4MzY0MF9wcml2YXRlLCBtaWlfdHMpO1xuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYy0xMzgyLVxuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYzoxMzgzOlx0c3dpdGNoIChkcDgzNjQwLVx1MDAzZWh3dHNfdHhfZW4pIHtcbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmMtMTM4NC1cblxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjUvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzI1IDA4OjE5PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDE4NDMxCgkJCQkJCQlvdXRwdXQ6IDE5CgkJCQkJCQl0aG91Z2h0czogNDk3CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKlJlYWNoaW5nIHRoZSBEUDgzNjQwIFBIWSBEcml2ZXIgd2l0aCBTeXprYWxsZXIqKgoKT2theSwgc28gdGhlIGBkcDgzNjQwYCBkcml2ZXIgb25seSBnZXRzIGJ1aWx0IGlmIGBDT05GSUdfRFA4MzY0MF9QSFlgIGlzIGVuYWJsZWQuIEl0JiMzOTtzIGEgUEhZIGRyaXZlciwgc28gdGhlIGtleSBpcyBmaWd1cmluZyBvdXQgaG93IHRvIHRyaWdnZXIgYGRwODM2NDBfcHJvYmVgIGFuZCBgZHA4MzY0MF9yZW1vdmVgLiBDYW4gU3l6a2FsbGVyIGRvIGl0PwoKV2VsbCwgdGhlb3JldGljYWxseSwgU3l6a2FsbGVyICpjb3VsZCogdHJpZ2dlciBpdCBieSBjcmVhdGluZyBhIHZpcnR1YWwgTURJTyBidXMgb3IgdXNpbmcgYSBuZXRkZXYgdGhhdCByZWdpc3RlcnMgUEhZcy4gVGhlIHByb2JsZW0gaXMsIFN5emthbGxlciBkb2VzbiYjMzk7dCBoYXZlIGEgZ2VuZXJpYyBNRElPIGJ1cyBlbXVsYXRvciB3aGVyZSBJIGNhbiBqdXN0IHNwZWNpZnkgYSBQSFkgYW5kIGhhdmUgaXQgcHJvYmVkLiBJIHdlbnQgdGhyb3VnaCB0aGUgYXZhaWxhYmxlIG5ldGRldiBvcHRpb25zIC0gYG1hYzgwMjExX2h3c2ltYCwgYG5ldGRldnNpbWAsIGB2aGNpYCwgYGR1bW15YCwgYHZldGhgLCBgdHVuYCwgYW5kIGB0YXBgIC0gbm9uZSBvZiB0aGVtIGV4cG9zZSBhIGRpcmVjdCBNRElPIGJ1cyBpbnRlcmZhY2UuIEkgZXZlbiBjaGVja2VkIGlmIHRoZXJlIHdhcyBzb21lIGBtZGlvLW1vY2t1cGAsIGJ1dCBub3RoaW5nLgoKV2hhdCBhYm91dCBgbWRpby1ncGlvYCBvciBgbWRpby1iaXRiYW5nYD8gQ291bGQgdGhleSBiZSBpbnN0YW50aWF0ZWQgdXNpbmcgZGV2aWNlIHRyZWUgb3ZlcmxheXM/IE5vLCBTeXprYWxsZXIgZG9lc24mIzM5O3QgdXNlIHRob3NlLiBDYW4gdXNlcnNwYWNlIGNyZWF0ZSBhbiBNRElPIGJ1cyBkaXJlY3RseT8gTWF5YmUgdGhyb3VnaCBgaTJjYCwgYHNwaWAsIG9yIGB1c2JgPyBBcmUgdGhlcmUgZXZlbiBVU0IgdG8gTURJTyBhZGFwdGVycz8gSXQgZG9lc24mIzM5O3QgbG9vayBsaWtlIGl0LCBidXQgbWF5YmUgc29tZSBVU0IgbmV0d29yayBkcml2ZXJzIGV4cG9zZSBhbiBNRElPIGJ1cz8KCkFoYSEgTWF5YmUgaWYgSSBlbXVsYXRlIGEgVVNCIG5ldHdvcmsgYWRhcHRlciB1c2luZyBgZHVtbXlfaGNkYCAodmhjaSkgc3VjaCBhcyBgc21zYzk1eHhgIG9yIGBhc2l4YCwgaXQgY291bGQgcmVnaXN0ZXIgYW4gTURJTyBidXMuIFRoZW4sIHdoZW4gdGhlIE1ESU8gYnVzIGdldHMgcmVnaXN0ZXJlZCwgaXQgc2NhbnMgZm9yIFBIWXMuIElmIHRoZSBlbXVsYXRlZCBVU0IgZGV2aWNlICpyZXR1cm5zKiB0aGUgRFA4MzY0MCBQSFkgSUQgKGAweDIwMDA1Y2UxYCkgZHVyaW5nIHRoZSBNRElPIHJlYWQgb2YgcmVnaXN0ZXJzIDIgYW5kIDMsIHRoZSBNRElPIGJ1cyB3aWxsIG1hdGNoIGl0IHdpdGggYGRwODM2NDBfZHJpdmVyYCBhbmQgY2FsbCBgZHA4MzY0MF9wcm9iZWAuCgpZZXMhIFN5emthbGxlciYjMzk7cyBVU0IgZnV6emVyLCB2aGNpLCBjYW4gZGVmaW5pdGVseSBlbXVsYXRlIGEgbmV0d29yayBkZXZpY2UgdGhhdCBleHBvc2VzIGFuIE1ESU8gYnVzLiBBbmQgaXQgY2FuIHJldHVybiBhcmJpdHJhcnkgUEhZIElEcy4gVGhhdCYjMzk7cyB0aGUga2V5LiBTbywgdGhlIGBkcDgzNjQwX3Byb2JlYCBhbmQgYGRwODM2NDBfcmVtb3ZlYCBlbnRyeSBwb2ludHMgYXJlIGRlZmluaXRlbHkgcmVhY2hhYmxlIHRocm91Z2ggVVNCIGVtdWxhdGlvbi4gVGhpcyBuZWVkcyB0byBiZSB2ZXJpZmllZC4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD42LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yNSAwODoyMDwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDttZGlvYnVzX3JlZ2lzdGVyJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O1xuRnVsbCBvdXRwdXQgaXMgdG9vIGxvbmcsIHNob3dpbmcgNTAwIG91dCBvZiAxMTI3IGxpbmVzLlxuVXNlIG1vcmUgcHJlY2lzZSBleHByZXNzaW9uIGlmIHBvc3NpYmxlLlxuXG5Eb2N1bWVudGF0aW9uL2RyaXZlci1hcGkvZHJpdmVyLW1vZGVsL2RldnJlcy5yc3Q9MzQ4PU1ESU9cbi0tXG5Eb2N1bWVudGF0aW9uL2RyaXZlci1hcGkvZHJpdmVyLW1vZGVsL2RldnJlcy5yc3QtMzUwLSAgZGV2bV9tZGlvYnVzX2FsbG9jX3NpemUoKVxuRG9jdW1lbnRhdGlvbi9kcml2ZXItYXBpL2RyaXZlci1tb2RlbC9kZXZyZXMucnN0OjM1MTogIGRldm1fbWRpb2J1c19yZWdpc3RlcigpXG5Eb2N1bWVudGF0aW9uL2RyaXZlci1hcGkvZHJpdmVyLW1vZGVsL2RldnJlcy5yc3Q6MzUyOiAgZGV2bV9vZl9tZGlvYnVzX3JlZ2lzdGVyKClcbkRvY3VtZW50YXRpb24vZHJpdmVyLWFwaS9kcml2ZXItbW9kZWwvZGV2cmVzLnJzdC0zNTMtXG4tLVxuRG9jdW1lbnRhdGlvbi9maXJtd2FyZS1ndWlkZS9hY3BpL2RzZC9tb3RvcmNvbW0teXQ4eHh4LXBoeS5yc3Q9MTI9ZGV2aWNlICh0aGUgc2FtZSBvYmplY3RzIHRoYXQgYXJlIHJlZ2lzdGVyZWQgdmlhXG5Eb2N1bWVudGF0aW9uL2Zpcm13YXJlLWd1aWRlL2FjcGkvZHNkL21vdG9yY29tbS15dDh4eHgtcGh5LnJzdDoxMzpgYGZ3bm9kZV9tZGlvYnVzX3JlZ2lzdGVyX3BoeSgpYGApLiBNQUMtc2lkZSBjb25uZWN0aW9uIHByb3BlcnRpZXMgc3VjaCBhc1xuRG9jdW1lbnRhdGlvbi9maXJtd2FyZS1ndWlkZS9hY3BpL2RzZC9tb3RvcmNvbW0teXQ4eHh4LXBoeS5yc3QtMTQtYGBwaHktaGFuZGxlYGAgYW5kIGBgcGh5LW1vZGVgYCBhcmUgZG9jdW1lbnRlZCBpbiBbYWNwaS1tZGlvLXBoeV1fLlxuLS1cbkRvY3VtZW50YXRpb24vZmlybXdhcmUtZ3VpZGUvYWNwaS9kc2QvcGh5LnJzdD03PVRoZSBQSFlzIG9uIGFuIE1ESU8gYnVzIFtwaHldIGFyZSBwcm9iZWQgYW5kIHJlZ2lzdGVyZWQgdXNpbmdcbkRvY3VtZW50YXRpb24vZmlybXdhcmUtZ3VpZGUvYWNwaS9kc2QvcGh5LnJzdDo4OmZ3bm9kZV9tZGlvYnVzX3JlZ2lzdGVyX3BoeSgpLlxuRG9jdW1lbnRhdGlvbi9maXJtd2FyZS1ndWlkZS9hY3BpL2RzZC9waHkucnN0LTktXG4tLVxuRG9jdW1lbnRhdGlvbi9uZXR3b3JraW5nL3BoeS5yc3Q9NDA9cmVnaXN0ZXJlZCBhcyBhIGRpc3RpbmN0IGRldmljZS5cbi0tXG5Eb2N1bWVudGF0aW9uL25ldHdvcmtpbmcvcGh5LnJzdC01Ni0gICBkcml2ZXIgbmVlZHMsIHNldHVwIHRoZSBtaWlfYnVzIHN0cnVjdHVyZSwgYW5kIHJlZ2lzdGVyIHdpdGggdGhlIFBBTCB1c2luZ1xuRG9jdW1lbnRhdGlvbi9uZXR3b3JraW5nL3BoeS5yc3Q6NTc6ICAgbWRpb2J1c19yZWdpc3Rlci4gIFNpbWlsYXJseSwgdGhlcmUmIzM5O3MgYSByZW1vdmUgZnVuY3Rpb24gdG8gdW5kbyBhbGwgb2ZcbkRvY3VtZW50YXRpb24vbmV0d29ya2luZy9waHkucnN0LTU4LSAgIHRoYXQgKHVzZSBtZGlvYnVzX3VucmVnaXN0ZXIpLlxuLS1cbmFyY2gvcG93ZXJwYy9wbGF0Zm9ybXMvODJ4eC9lcDgyNDhlLmM9MTA5PXN0YXRpYyBpbnQgZXA4MjQ4ZV9tZGlvX3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKm9mZGV2KVxuLS1cbmFyY2gvcG93ZXJwYy9wbGF0Zm9ybXMvODJ4eC9lcDgyNDhlLmMtMTMyLVxuYXJjaC9wb3dlcnBjL3BsYXRmb3Jtcy84Mnh4L2VwODI0OGUuYzoxMzM6XHRyZXQgPSBvZl9tZGlvYnVzX3JlZ2lzdGVyKGJ1cywgb2ZkZXYtXHUwMDNlZGV2Lm9mX25vZGUpO1xuYXJjaC9wb3dlcnBjL3BsYXRmb3Jtcy84Mnh4L2VwODI0OGUuYy0xMzQtXHRpZiAocmV0KVxuLS1cbmFyY2gvcG93ZXJwYy9wbGF0Zm9ybXMvcGFzZW1pL2dwaW9fbWRpby5jPTIwNz1zdGF0aWMgaW50IGdwaW9fbWRpb19wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpvZmRldilcbi0tXG5hcmNoL3Bvd2VycGMvcGxhdGZvcm1zL3Bhc2VtaS9ncGlvX21kaW8uYy0yNDMtXG5hcmNoL3Bvd2VycGMvcGxhdGZvcm1zL3Bhc2VtaS9ncGlvX21kaW8uYzoyNDQ6XHRlcnIgPSBvZl9tZGlvYnVzX3JlZ2lzdGVyKG5ld19idXMsIG5wKTtcbmFyY2gvcG93ZXJwYy9wbGF0Zm9ybXMvcGFzZW1pL2dwaW9fbWRpby5jLTI0NS1cbi0tXG5kcml2ZXJzL25ldC9kc2EvYmNtX3NmMi5jPTYwNz1zdGF0aWMgaW50IGJjbV9zZjJfbWRpb19yZWdpc3RlcihzdHJ1Y3QgZHNhX3N3aXRjaCAqZHMpXG4tLVxuZHJpdmVycy9uZXQvZHNhL2JjbV9zZjIuYy02ODMtXG5kcml2ZXJzL25ldC9kc2EvYmNtX3NmMi5jOjY4NDpcdGVyciA9IG1kaW9idXNfcmVnaXN0ZXIocHJpdi1cdTAwM2V1c2VyX21paV9idXMpO1xuZHJpdmVycy9uZXQvZHNhL2JjbV9zZjIuYy02ODUtXHRpZiAoZXJyKVxuLS1cbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwX2NvbW1vbi5jPTE4Nz1zdGF0aWMgaW50IGdzd2lwX21kaW8oc3RydWN0IGdzd2lwX3ByaXYgKnByaXYpXG4tLVxuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXBfY29tbW9uLmMtMjEzLVxuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXBfY29tbW9uLmM6MjE0Olx0ZXJyID0gZGV2bV9vZl9tZGlvYnVzX3JlZ2lzdGVyKGRldiwgYnVzLCBtZGlvX25wKTtcbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwX2NvbW1vbi5jLTIxNS1cbi0tXG5kcml2ZXJzL25ldC9kc2EvbWljcm9jaGlwL2tzejk0NzcuYz0zMTU9c3RhdGljIGludCBrc3o5NDc3X3Bjc19jcmVhdGUoc3RydWN0IGtzel9kZXZpY2UgKmRldilcbi0tXG5kcml2ZXJzL25ldC9kc2EvbWljcm9jaGlwL2tzejk0NzcuYy0zMzUtXG5kcml2ZXJzL25ldC9kc2EvbWljcm9jaGlwL2tzejk0NzcuYzozMzY6XHRyZXQgPSBkZXZtX21kaW9idXNfcmVnaXN0ZXIoZGV2LVx1MDAzZWRldiwgYnVzKTtcbmRyaXZlcnMvbmV0L2RzYS9taWNyb2NoaXAva3N6OTQ3Ny5jLTMzNy1cdGlmIChyZXQpXG4tLVxuZHJpdmVycy9uZXQvZHNhL21pY3JvY2hpcC9rc3pfY29tbW9uLmM9MjQ4ND1pbnQga3N6X21kaW9fcmVnaXN0ZXIoc3RydWN0IGtzel9kZXZpY2UgKmRldilcbi0tXG5kcml2ZXJzL25ldC9kc2EvbWljcm9jaGlwL2tzel9jb21tb24uYy0yNTU1LVxuZHJpdmVycy9uZXQvZHNhL21pY3JvY2hpcC9rc3pfY29tbW9uLmM6MjU1NjpcdHJldCA9IGRldm1fb2ZfbWRpb2J1c19yZWdpc3Rlcihkcy1cdTAwM2VkZXYsIGJ1cywgbWRpb19ucCk7XG5kcml2ZXJzL25ldC9kc2EvbWljcm9jaGlwL2tzel9jb21tb24uYy0yNTU3LVx0aWYgKHJldCkge1xuLS1cbmRyaXZlcnMvbmV0L2RzYS9taWNyb2NoaXAvbGFuOTM3eF9tYWluLmM9Njg1PXN0YXRpYyBpbnQgbGFuOTM3eF9tZGlvX3JlZ2lzdGVyKHN0cnVjdCBrc3pfZGV2aWNlICpkZXYpXG4tLVxuZHJpdmVycy9uZXQvZHNhL21pY3JvY2hpcC9sYW45Mzd4X21haW4uYy03NTUtXG5kcml2ZXJzL25ldC9kc2EvbWljcm9jaGlwL2xhbjkzN3hfbWFpbi5jOjc1NjpcdHJldCA9IGRldm1fb2ZfbWRpb2J1c19yZWdpc3Rlcihkcy1cdTAwM2VkZXYsIGJ1cywgbWRpb19ucCk7XG5kcml2ZXJzL25ldC9kc2EvbWljcm9jaGlwL2xhbjkzN3hfbWFpbi5jLTc1Ny1cdGlmIChyZXQpXG4tLVxuZHJpdmVycy9uZXQvZHNhL210NzUzMC5jPTIzNzE9bXQ3NTMwX3NldHVwX21kaW8oc3RydWN0IG10NzUzMF9wcml2ICpwcml2KVxuLS1cbmRyaXZlcnMvbmV0L2RzYS9tdDc1MzAuYy0yNDA2LVxuZHJpdmVycy9uZXQvZHNhL210NzUzMC5jOjI0MDc6XHRyZXQgPSBkZXZtX29mX21kaW9idXNfcmVnaXN0ZXIoZGV2LCBidXMsIG1ucCk7XG5kcml2ZXJzL25ldC9kc2EvbXQ3NTMwLmMtMjQwOC1cdGlmIChyZXQpIHtcbi0tXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYz0zODM0PXN0YXRpYyBpbnQgbXY4OGU2eHh4X21kaW9fcmVnaXN0ZXIoc3RydWN0IG12ODhlNnh4eF9jaGlwICpjaGlwLFxuLS1cbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTM4ODctXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYzozODg4Olx0ZXJyID0gb2ZfbWRpb2J1c19yZWdpc3RlcihidXMsIG5wKTtcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTM4ODktXHRpZiAoZXJyKSB7XG4tLVxuZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L214bDg2Mnh4LmM9MjY3PXN0YXRpYyBpbnQgbXhsODYyeHhfc2V0dXBfbWRpbyhzdHJ1Y3QgZHNhX3N3aXRjaCAqZHMpXG4tLVxuZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L214bDg2Mnh4LmMtMjkyLVxuZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L214bDg2Mnh4LmM6MjkzOlx0cmV0ID0gZGV2bV9vZl9tZGlvYnVzX3JlZ2lzdGVyKGRldiwgYnVzLCBtZGlvX25wKTtcbmRyaXZlcnMvbmV0L2RzYS9teGw4NjJ4eC9teGw4NjJ4eC5jLTI5NC1cdG9mX25vZGVfcHV0KG1kaW9fbnApO1xuLS1cbmRyaXZlcnMvbmV0L2RzYS9uZXRjL25ldGNfbWFpbi5jPTE0OT1zdGF0aWMgaW50IG5ldGNfcG9ydF9jcmVhdGVfZW1kaW9fYnVzKHN0cnVjdCBuZXRjX3BvcnQgKm5wLFxuLS1cbmRyaXZlcnMvbmV0L2RzYS9uZXRjL25ldGNfbWFpbi5jLTE3OS1cbmRyaXZlcnMvbmV0L2RzYS9uZXRjL25ldGNfbWFpbi5jOjE4MDpcdGVyciA9IGRldm1fb2ZfbWRpb2J1c19yZWdpc3RlcihkZXYsIGJ1cywgbm9kZSk7XG5kcml2ZXJzL25ldC9kc2EvbmV0Yy9uZXRjX21haW4uYy0xODEtXHRpZiAoZXJyKVxuLS1cbmRyaXZlcnMvbmV0L2RzYS9vY2Vsb3QvZmVsaXhfdnNjOTk1OS5jPTk1Nz1zdGF0aWMgaW50IHZzYzk5NTlfbWRpb19idXNfYWxsb2Moc3RydWN0IG9jZWxvdCAqb2NlbG90KVxuLS1cbmRyaXZlcnMvbmV0L2RzYS9vY2Vsb3QvZmVsaXhfdnNjOTk1OS5jLTEwMTMtXHQvKiBOZWVkZWQgaW4gb3JkZXIgdG8gaW5pdGlhbGl6ZSB0aGUgYnVzIG11dGV4IGxvY2sgKi9cbmRyaXZlcnMvbmV0L2RzYS9vY2Vsb3QvZmVsaXhfdnNjOTk1OS5jOjEwMTQ6XHRyYyA9IG1kaW9idXNfcmVnaXN0ZXIoYnVzKTtcbmRyaXZlcnMvbmV0L2RzYS9vY2Vsb3QvZmVsaXhfdnNjOTk1OS5jLTEwMTUtXHRpZiAocmMgXHUwMDNjIDApIHtcbi0tXG5kcml2ZXJzL25ldC9kc2Evb2NlbG90L3NldmlsbGVfdnNjOTk1My5jPTg3OD1zdGF0aWMgaW50IHZzYzk5NTNfbWRpb19idXNfYWxsb2Moc3RydWN0IG9jZWxvdCAqb2NlbG90KVxuLS1cbmRyaXZlcnMvbmV0L2RzYS9vY2Vsb3Qvc2V2aWxsZV92c2M5OTUzLmMtOTAzLVx0LyogTmVlZGVkIGluIG9yZGVyIHRvIGluaXRpYWxpemUgdGhlIGJ1cyBtdXRleCBsb2NrICovXG5kcml2ZXJzL25ldC9kc2Evb2NlbG90L3NldmlsbGVfdnNjOTk1My5jOjkwNDpcdHJjID0gZGV2bV9vZl9tZGlvYnVzX3JlZ2lzdGVyKGRldiwgYnVzLCBOVUxMKTtcbmRyaXZlcnMvbmV0L2RzYS9vY2Vsb3Qvc2V2aWxsZV92c2M5OTUzLmMtOTA1LVx0aWYgKHJjIFx1MDAzYyAwKSB7XG4tLVxuZHJpdmVycy9uZXQvZHNhL3FjYS9hcjkzMzEuYz0zNTc9c3RhdGljIGludCBhcjkzMzFfc3dfbWJ1c19pbml0KHN0cnVjdCBhcjkzMzFfc3dfcHJpdiAqcHJpdilcbi0tXG5kcml2ZXJzL25ldC9kc2EvcWNhL2FyOTMzMS5jLTM4MS1cbmRyaXZlcnMvbmV0L2RzYS9xY2EvYXI5MzMxLmM6MzgyOlx0cmV0ID0gZGV2bV9vZl9tZGlvYnVzX3JlZ2lzdGVyKGRldiwgbWJ1cywgbW5wKTtcbmRyaXZlcnMvbmV0L2RzYS9xY2EvYXI5MzMxLmMtMzgzLVx0b2Zfbm9kZV9wdXQobW5wKTtcbi0tXG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLTh4eHguYz05NDc9cWNhOGtfbWRpb19yZWdpc3RlcihzdHJ1Y3QgcWNhOGtfcHJpdiAqcHJpdilcbi0tXG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLTh4eHguYy05ODYtXG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLTh4eHguYzo5ODc6XHRyZXQgPSBkZXZtX29mX21kaW9idXNfcmVnaXN0ZXIoZGV2LCBidXMsIG1kaW8pO1xuZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay04eHh4LmMtOTg4LVxuLS1cbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzeHguYz03ND1pbnQgcnRsODN4eF9zZXR1cF91c2VyX21kaW8oc3RydWN0IGRzYV9zd2l0Y2ggKmRzKVxuLS1cbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzeHguYy05OS1cbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzeHguYzoxMDA6XHRyZXQgPSBkZXZtX29mX21kaW9idXNfcmVnaXN0ZXIocHJpdi1cdTAwM2VkZXYsIGJ1cywgbWRpb19ucCk7XG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4M3h4LmMtMTAxLVx0aWYgKHJldCkge1xuLS1cbmRyaXZlcnMvbmV0L2RzYS9yem4xX2E1cHN3LmM9MTExNz1zdGF0aWMgaW50IGE1cHN3X3Byb2JlX21kaW8oc3RydWN0IGE1cHN3ICphNXBzdywgc3RydWN0IGRldmljZV9ub2RlICpub2RlKVxuLS1cbmRyaXZlcnMvbmV0L2RzYS9yem4xX2E1cHN3LmMtMTE0My1cbmRyaXZlcnMvbmV0L2RzYS9yem4xX2E1cHN3LmM6MTE0NDpcdHJldHVybiBkZXZtX29mX21kaW9idXNfcmVnaXN0ZXIoZGV2LCBidXMsIG5vZGUpO1xuZHJpdmVycy9uZXQvZHNhL3J6bjFfYTVwc3cuYy0xMTQ1LX1cbi0tXG5kcml2ZXJzL25ldC9kc2Evc2phMTEwNS9zamExMTA1Lmg9MzA3PXZvaWQgc2phMTEwNV9mcmFtZV9tZW1vcnlfcGFydGl0aW9uaW5nKHN0cnVjdCBzamExMTA1X3ByaXZhdGUgKnByaXYpO1xuLS1cbmRyaXZlcnMvbmV0L2RzYS9zamExMTA1L3NqYTExMDUuaC0zMDktLyogRnJvbSBzamExMTA1X21kaW8uYyAqL1xuZHJpdmVycy9uZXQvZHNhL3NqYTExMDUvc2phMTEwNS5oOjMxMDppbnQgc2phMTEwNV9tZGlvYnVzX3JlZ2lzdGVyKHN0cnVjdCBkc2Ffc3dpdGNoICpkcyk7XG5kcml2ZXJzL25ldC9kc2Evc2phMTEwNS9zamExMTA1LmgtMzExLXZvaWQgc2phMTEwNV9tZGlvYnVzX3VucmVnaXN0ZXIoc3RydWN0IGRzYV9zd2l0Y2ggKmRzKTtcbi0tXG5kcml2ZXJzL25ldC9kc2Evc2phMTEwNS9zamExMTA1X21haW4uYz0zMDI2PXN0YXRpYyBpbnQgc2phMTEwNV9zZXR1cChzdHJ1Y3QgZHNhX3N3aXRjaCAqZHMpXG4tLVxuZHJpdmVycy9uZXQvZHNhL3NqYTExMDUvc2phMTEwNV9tYWluLmMtMzA2Ny1cbmRyaXZlcnMvbmV0L2RzYS9zamExMTA1L3NqYTExMDVfbWFpbi5jOjMwNjg6XHRyYyA9IHNqYTExMDVfbWRpb2J1c19yZWdpc3Rlcihkcyk7XG5kcml2ZXJzL25ldC9kc2Evc2phMTEwNS9zamExMTA1X21haW4uYy0zMDY5LVx0aWYgKHJjIFx1MDAzYyAwKSB7XG4tLVxuZHJpdmVycy9uZXQvZHNhL3NqYTExMDUvc2phMTEwNV9tZGlvLmM9MjU4PXN0YXRpYyBpbnQgc2phMTEwNV9tZGlvYnVzX2Jhc2VfdHhfcmVnaXN0ZXIoc3RydWN0IHNqYTExMDVfcHJpdmF0ZSAqcHJpdixcbi0tXG5kcml2ZXJzL25ldC9kc2Evc2phMTEwNS9zamExMTA1X21kaW8uYy0yODctXG5kcml2ZXJzL25ldC9kc2Evc2phMTEwNS9zamExMTA1X21kaW8uYzoyODg6XHRyYyA9IG9mX21kaW9idXNfcmVnaXN0ZXIoYnVzLCBucCk7XG5kcml2ZXJzL25ldC9kc2Evc2phMTEwNS9zamExMTA1X21kaW8uYy0yODktXHRpZiAocmMpIHtcbi0tXG5kcml2ZXJzL25ldC9kc2Evc2phMTEwNS9zamExMTA1X21kaW8uYz0zMTI9c3RhdGljIGludCBzamExMTA1X21kaW9idXNfYmFzZV90MV9yZWdpc3RlcihzdHJ1Y3Qgc2phMTEwNV9wcml2YXRlICpwcml2LFxuLS1cbmRyaXZlcnMvbmV0L2RzYS9zamExMTA1L3NqYTExMDVfbWRpby5jLTM0My1cbmRyaXZlcnMvbmV0L2RzYS9zamExMTA1L3NqYTExMDVfbWRpby5jOjM0NDpcdHJjID0gb2ZfbWRpb2J1c19yZWdpc3RlcihidXMsIG5wKTtcbmRyaXZlcnMvbmV0L2RzYS9zamExMTA1L3NqYTExMDVfbWRpby5jLTM0NS1cdGlmIChyYykge1xuLS1cbmRyaXZlcnMvbmV0L2RzYS9zamExMTA1L3NqYTExMDVfbWRpby5jPTM2OD1zdGF0aWMgaW50IHNqYTExMDVfbWRpb2J1c19wY3NfcmVnaXN0ZXIoc3RydWN0IHNqYTExMDVfcHJpdmF0ZSAqcHJpdilcbi0tXG5kcml2ZXJzL25ldC9kc2Evc2phMTEwNS9zamExMTA1X21kaW8uYy0zOTUtXG5kcml2ZXJzL25ldC9kc2Evc2phMTEwNS9zamExMTA1X21kaW8uYzozOTY6XHRyYyA9IG1kaW9idXNfcmVnaXN0ZXIoYnVzKTtcbmRyaXZlcnMvbmV0L2RzYS9zamExMTA1L3NqYTExMDVfbWRpby5jLTM5Ny1cdGlmIChyYykge1xuLS1cbmRyaXZlcnMvbmV0L2RzYS9zamExMTA1L3NqYTExMDVfbWRpby5jPTQzOT1zdGF0aWMgdm9pZCBzamExMTA1X21kaW9idXNfcGNzX3VucmVnaXN0ZXIoc3RydWN0IHNqYTExMDVfcHJpdmF0ZSAqcHJpdilcbi0tXG5kcml2ZXJzL25ldC9kc2Evc2phMTEwNS9zamExMTA1X21kaW8uYy00NTgtXG5kcml2ZXJzL25ldC9kc2Evc2phMTEwNS9zamExMTA1X21kaW8uYzo0NTk6aW50IHNqYTExMDVfbWRpb2J1c19yZWdpc3RlcihzdHJ1Y3QgZHNhX3N3aXRjaCAqZHMpXG5kcml2ZXJzL25ldC9kc2Evc2phMTEwNS9zamExMTA1X21kaW8uYy00NjAte1xuLS1cbmRyaXZlcnMvbmV0L2RzYS95dDkyMXguYz01OTU9eXQ5MjF4X21idXNfaW50X2luaXQoc3RydWN0IHl0OTIxeF9wcml2ICpwcml2LCBzdHJ1Y3QgZGV2aWNlX25vZGUgKm1ucClcbi0tXG5kcml2ZXJzL25ldC9kc2EveXQ5MjF4LmMtNjEyLVxuZHJpdmVycy9uZXQvZHNhL3l0OTIxeC5jOjYxMzpcdHJlcyA9IGRldm1fb2ZfbWRpb2J1c19yZWdpc3RlcihkZXYsIG1idXMsIG1ucCk7XG5kcml2ZXJzL25ldC9kc2EveXQ5MjF4LmMtNjE0LVx0aWYgKHJlcylcbi0tXG5kcml2ZXJzL25ldC9kc2EveXQ5MjF4LmM9NzI2PXl0OTIxeF9tYnVzX2V4dF9pbml0KHN0cnVjdCB5dDkyMXhfcHJpdiAqcHJpdiwgc3RydWN0IGRldmljZV9ub2RlICptbnApXG4tLVxuZHJpdmVycy9uZXQvZHNhL3l0OTIxeC5jLTc0My1cbmRyaXZlcnMvbmV0L2RzYS95dDkyMXguYzo3NDQ6XHRyZXMgPSBkZXZtX29mX21kaW9idXNfcmVnaXN0ZXIoZGV2LCBtYnVzLCBtbnApO1xuZHJpdmVycy9uZXQvZHNhL3l0OTIxeC5jLTc0NS1cdGlmIChyZXMpXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvODM5MC9heDg4Nzk2LmM9NDU5PXN0YXRpYyBpbnQgYXhfbWlpX2luaXQoc3RydWN0IG5ldF9kZXZpY2UgKmRldilcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC84MzkwL2F4ODg3OTYuYy00NzgtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC84MzkwL2F4ODg3OTYuYzo0Nzk6XHRlcnIgPSBtZGlvYnVzX3JlZ2lzdGVyKGF4LVx1MDAzZW1paV9idXMpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvODM5MC9heDg4Nzk2LmMtNDgwLVx0aWYgKGVycilcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hY3Rpb25zL293bC1lbWFjLmM9MTMyMT1zdGF0aWMgaW50IG93bF9lbWFjX21kaW9faW5pdChzdHJ1Y3QgbmV0X2RldmljZSAqbmV0ZGV2KVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FjdGlvbnMvb3dsLWVtYWMuYy0xMzQ1LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWN0aW9ucy9vd2wtZW1hYy5jOjEzNDY6XHRyZXQgPSBkZXZtX29mX21kaW9idXNfcmVnaXN0ZXIoZGV2LCBwcml2LVx1MDAzZW1paSwgbWRpb19ub2RlKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FjdGlvbnMvb3dsLWVtYWMuYy0xMzQ3LVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FkaS9hZGluMTExMC5jPTUwOT1zdGF0aWMgaW50IGFkaW4xMTEwX3JlZ2lzdGVyX21kaW9idXMoc3RydWN0IGFkaW4xMTEwX3ByaXYgKnByaXYsXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWRpL2FkaW4xMTEwLmMtNTI5LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWRpL2FkaW4xMTEwLmM6NTMwOlx0cmV0ID0gZGV2bV9tZGlvYnVzX3JlZ2lzdGVyKGRldiwgbWlpX2J1cyk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hZGkvYWRpbjExMTAuYy01MzEtXHRpZiAocmV0KVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Flcm9mbGV4L2dyZXRoLmM9MTI5MD1zdGF0aWMgaW50IGdyZXRoX21kaW9faW5pdChzdHJ1Y3QgZ3JldGhfcHJpdmF0ZSAqZ3JldGgpXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWVyb2ZsZXgvZ3JldGguYy0xMzA2LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWVyb2ZsZXgvZ3JldGguYzoxMzA3Olx0cmV0ID0gbWRpb2J1c19yZWdpc3RlcihncmV0aC1cdTAwM2VtZGlvKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Flcm9mbGV4L2dyZXRoLmMtMTMwOC1cdGlmIChyZXQpIHtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hZ2VyZS9ldDEzMXguYz0zOTMxPXN0YXRpYyBpbnQgZXQxMzF4X3BjaV9zZXR1cChzdHJ1Y3QgcGNpX2RldiAqcGRldixcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hZ2VyZS9ldDEzMXguYy00MDI2LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWdlcmUvZXQxMzF4LmM6NDAyNzpcdHJjID0gbWRpb2J1c19yZWdpc3RlcihhZGFwdGVyLVx1MDAzZW1paV9idXMpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWdlcmUvZXQxMzF4LmMtNDAyOC1cdGlmIChyYyBcdTAwM2MgMCkge1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FsdGVyYS9hbHRlcmFfdHNlX21haW4uYz0xMjE9c3RhdGljIGludCBhbHRlcmFfdHNlX21kaW9fY3JlYXRlKHN0cnVjdCBuZXRfZGV2aWNlICpkZXYsIHVuc2lnbmVkIGludCBpZClcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hbHRlcmEvYWx0ZXJhX3RzZV9tYWluLmMtMTU3LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWx0ZXJhL2FsdGVyYV90c2VfbWFpbi5jOjE1ODpcdHJldCA9IG9mX21kaW9idXNfcmVnaXN0ZXIobWRpbywgbWRpb19ub2RlKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FsdGVyYS9hbHRlcmFfdHNlX21haW4uYy0xNTktXHRpZiAocmV0ICE9IDApIHtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQvYXUxMDAwX2V0aC5jPTEwNjE9c3RhdGljIGludCBhdTEwMDBfcHJvYmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldilcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQvYXUxMDAwX2V0aC5jLTEyMjEtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQvYXUxMDAwX2V0aC5jOjEyMjI6XHRlcnIgPSBtZGlvYnVzX3JlZ2lzdGVyKGF1cC1cdTAwM2VtaWlfYnVzKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC9hdTEwMDBfZXRoLmMtMTIyMy1cdGlmIChlcnIpIHtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQveGdiZS94Z2JlLXBoeS12Mi5jPTM0Mjg9c3RhdGljIGludCB4Z2JlX3BoeV9pbml0KHN0cnVjdCB4Z2JlX3Bydl9kYXRhICpwZGF0YSlcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQveGdiZS94Z2JlLXBoeS12Mi5jLTM3MTctXHRzbnByaW50ZihtaWktXHUwMDNlaWQsIHNpemVvZihtaWktXHUwMDNlaWQpLCBcJiMzNDslc1wmIzM0OywgZGV2X25hbWUocGRhdGEtXHUwMDNlZGV2KSk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQveGdiZS94Z2JlLXBoeS12Mi5jOjM3MTg6XHRyZXQgPSBtZGlvYnVzX3JlZ2lzdGVyKG1paSk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQveGdiZS94Z2JlLXBoeS12Mi5jLTM3MTktXHRpZiAocmV0KSB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQveGdiZS94Z2JlLXBoeS12Mi5jOjM3MjA6XHRcdGRldl9lcnIocGRhdGEtXHUwMDNlZGV2LCBcJiMzNDttZGlvYnVzX3JlZ2lzdGVyIGZhaWxlZFxcblwmIzM0Oyk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQveGdiZS94Z2JlLXBoeS12Mi5jLTM3MjEtXHRcdHJldHVybiByZXQ7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXBtL3hnZW5lLXYyL21kaW8uYz05OD1pbnQgeGdlX21kaW9fY29uZmlnKHN0cnVjdCBuZXRfZGV2aWNlICpuZGV2KVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FwbS94Z2VuZS12Mi9tZGlvLmMtMTE4LVx0bWRpb19idXMtXHUwMDNlcGh5X21hc2sgPSAweDE7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hcG0veGdlbmUtdjIvbWRpby5jOjExOTpcdHJldCA9IG1kaW9idXNfcmVnaXN0ZXIobWRpb19idXMpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXBtL3hnZW5lLXYyL21kaW8uYy0xMjAtXHRpZiAocmV0KVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FwbS94Z2VuZS94Z2VuZV9lbmV0X2h3LmM9ODM3PWludCB4Z2VuZV9lbmV0X3BoeV9jb25uZWN0KHN0cnVjdCBuZXRfZGV2aWNlICpuZGV2KVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FwbS94Z2VuZS94Z2VuZV9lbmV0X2h3LmMtODg3LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXBtL3hnZW5lL3hnZW5lX2VuZXRfaHcuYzo4ODg6c3RhdGljIGludCB4Z2VuZV9tZGlvYnVzX3JlZ2lzdGVyKHN0cnVjdCB4Z2VuZV9lbmV0X3BkYXRhICpwZGF0YSxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FwbS94Z2VuZS94Z2VuZV9lbmV0X2h3LmMtODg5LVx0XHRcdFx0ICBzdHJ1Y3QgbWlpX2J1cyAqbWRpbylcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hcG0veGdlbmUveGdlbmVfZW5ldF9ody5jLTkxMi1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FwbS94Z2VuZS94Z2VuZV9lbmV0X2h3LmM6OTEzOlx0XHRyZXQgPSBvZl9tZGlvYnVzX3JlZ2lzdGVyKG1kaW8sIG1kaW9fbnApO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXBtL3hnZW5lL3hnZW5lX2VuZXRfaHcuYy05MTQtXHRcdG9mX25vZGVfcHV0KG1kaW9fbnApO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FwbS94Z2VuZS94Z2VuZV9lbmV0X2h3LmMtOTIxLVx0LyogUmVnaXN0ZXIgdGhlIE1ESU8gYnVzICovXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hcG0veGdlbmUveGdlbmVfZW5ldF9ody5jOjkyMjpcdHJldCA9IG1kaW9idXNfcmVnaXN0ZXIobWRpbyk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hcG0veGdlbmUveGdlbmVfZW5ldF9ody5jLTkyMy1cdGlmIChyZXQpXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXBtL3hnZW5lL3hnZW5lX2VuZXRfaHcuYz05Mzk9aW50IHhnZW5lX2VuZXRfbWRpb19jb25maWcoc3RydWN0IHhnZW5lX2VuZXRfcGRhdGEgKnBkYXRhKVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FwbS94Z2VuZS94Z2VuZV9lbmV0X2h3LmMtOTU3LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXBtL3hnZW5lL3hnZW5lX2VuZXRfaHcuYzo5NTg6XHRyZXQgPSB4Z2VuZV9tZGlvYnVzX3JlZ2lzdGVyKHBkYXRhLCBtZGlvX2J1cyk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hcG0veGdlbmUveGdlbmVfZW5ldF9ody5jLTk1OS1cdGlmIChyZXQpIHtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hcmMvZW1hY19tZGlvLmM9MTMxPWludCBhcmNfbWRpb19wcm9iZShzdHJ1Y3QgYXJjX2VtYWNfcHJpdiAqcHJpdilcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hcmMvZW1hY19tZGlvLmMtMTcyLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXJjL2VtYWNfbWRpby5jOjE3MzpcdGVycm9yID0gb2ZfbWRpb2J1c19yZWdpc3RlcihidXMsIG1kaW9fbm9kZSk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hcmMvZW1hY19tZGlvLmMtMTc0LVx0b2Zfbm9kZV9wdXQobWRpb19ub2RlKTtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX21haW4uYz05NjY9c3RhdGljIGludCBheDg4Nzk2Y19wcm9iZShzdHJ1Y3Qgc3BpX2RldmljZSAqc3BpKVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfbWFpbi5jLTEwMTAtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hc2l4L2F4ODg3OTZjX21haW4uYzoxMDExOlx0cmV0ID0gZGV2bV9tZGlvYnVzX3JlZ2lzdGVyKFx1MDAyNnNwaS1cdTAwM2VkZXYsIGF4X2xvY2FsLVx1MDAzZW1kaW9idXMpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19tYWluLmMtMTAxMi1cdGlmIChyZXQgXHUwMDNjIDApIHtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hdGhlcm9zL2FnNzF4eC5jPTY4Nz1zdGF0aWMgaW50IGFnNzF4eF9tZGlvX3Byb2JlKHN0cnVjdCBhZzcxeHggKmFnKVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2F0aGVyb3MvYWc3MXh4LmMtNzI3LVx0bW5wID0gb2ZfZ2V0X2NoaWxkX2J5X25hbWUobnAsIFwmIzM0O21kaW9cJiMzNDspO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXRoZXJvcy9hZzcxeHguYzo3Mjg6XHRlcnIgPSBkZXZtX29mX21kaW9idXNfcmVnaXN0ZXIoZGV2LCBtaWlfYnVzLCBtbnApO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXRoZXJvcy9hZzcxeHguYy03MjktXHRvZl9ub2RlX3B1dChtbnApO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2I0NC5jPTIyMzQ9c3RhdGljIGludCBiNDRfcmVnaXN0ZXJfcGh5X29uZShzdHJ1Y3QgYjQ0ICpicClcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9iNDQuYy0yMjU5LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYjQ0LmM6MjI2MDpcdGVyciA9IG1kaW9idXNfcmVnaXN0ZXIobWlpX2J1cyk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9iNDQuYy0yMjYxLVx0aWYgKGVycikge1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JjbTYzeHhfZW5ldC5jPTE3MTM9c3RhdGljIGludCBiY21fZW5ldF9wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JjbTYzeHhfZW5ldC5jLTE4MjktXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9iY202M3h4X2VuZXQuYzoxODMwOlx0XHRyZXQgPSBtZGlvYnVzX3JlZ2lzdGVyKGJ1cyk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9iY202M3h4X2VuZXQuYy0xODMxLVx0XHRpZiAocmV0KSB7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYmdtYWMtYmNtYS1tZGlvLmM9MjExPXN0cnVjdCBtaWlfYnVzICpiY21hX21kaW9fbWlpX3JlZ2lzdGVyKHN0cnVjdCBiZ21hYyAqYmdtYWMpXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYmdtYWMtYmNtYS1tZGlvLmMtMjM1LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYmdtYWMtYmNtYS1tZGlvLmM6MjM2Olx0ZXJyID0gb2ZfbWRpb2J1c19yZWdpc3RlcihtaWlfYnVzLCBucCk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9iZ21hYy1iY21hLW1kaW8uYy0yMzctXHRvZl9ub2RlX3B1dChucCk7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vZ2VuZXQvYmNtbWlpLmM9MTkzPWludCBiY21nZW5ldF9taWlfY29uZmlnKHN0cnVjdCBuZXRfZGV2aWNlICpkZXYsIGJvb2wgaW5pdClcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9nZW5ldC9iY21taWkuYy0yMzMtXHRcdHBoeV9uYW1lID0gXCYjMzQ7ZXh0ZXJuYWwgUnZNSUlcJiMzNDs7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9nZW5ldC9iY21taWkuYzoyMzQ6XHRcdC8qIG9mX21kaW9idXNfcmVnaXN0ZXIgdG9vayBjYXJlIG9mIHJlYWRpbmcgdGhlICYjMzk7bWF4LXNwZWVkJiMzOTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2dlbmV0L2JjbW1paS5jLTIzNS1cdFx0ICogUEhZIHByb3BlcnR5IGZvciB1cywgZWZmZWN0aXZlbHkgbGltaXRpbmcgdGhlIFBIWSBzdXBwb3J0ZWRcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9zYjEyNTAtbWFjLmM9MjE1Nz1zdGF0aWMgaW50IHNibWFjX2luaXQoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGxkZXYsIGxvbmcgbG9uZyBiYXNlKVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL3NiMTI1MC1tYWMuYy0yMjI3LVx0ICovXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9zYjEyNTAtbWFjLmM6MjIyODpcdGVyciA9IG1kaW9idXNfcmVnaXN0ZXIoc2MtXHUwMDNlbWlpX2J1cyk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9zYjEyNTAtbWFjLmMtMjIyOS1cdGlmIChlcnIpIHtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS90ZzMuYz0xNTA1PXN0YXRpYyBpbnQgdGczX21kaW9faW5pdChzdHJ1Y3QgdGczICp0cClcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS90ZzMuYy0xNTU3LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vdGczLmM6MTU1ODpcdGkgPSBtZGlvYnVzX3JlZ2lzdGVyKHRwLVx1MDAzZW1kaW9fYnVzKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL3RnMy5jLTE1NTktXHRpZiAoaSkge1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYl9tYWluLmM9MTAyMz1zdGF0aWMgaW50IG1hY2JfbWlpX3Byb2JlKHN0cnVjdCBuZXRfZGV2aWNlICpkZXYpXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiX21haW4uYy0xMDk2LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiX21haW4uYzoxMDk3OnN0YXRpYyBpbnQgbWFjYl9tZGlvYnVzX3JlZ2lzdGVyKHN0cnVjdCBtYWNiICpicCwgc3RydWN0IGRldmljZV9ub2RlICptZGlvX25wKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiX21haW4uYy0xMDk4LXtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2JfbWFpbi5jLTExMDQtXHRpZiAobWRpb19ucClcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYl9tYWluLmM6MTEwNTpcdFx0cmV0dXJuIG9mX21kaW9idXNfcmVnaXN0ZXIoYnAtXHUwMDNlbWlpX2J1cywgbWRpb19ucCk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2JfbWFpbi5jLTExMDYtXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiX21haW4uYy0xMTE4LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiX21haW4uYzoxMTE5Olx0XHRcdHJldHVybiBvZl9tZGlvYnVzX3JlZ2lzdGVyKGJwLVx1MDAzZW1paV9idXMsIG5wKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYl9tYWluLmMtMTEyMC1cdFx0fVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiX21haW4uYy0xMTIxLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiX21haW4uYzoxMTIyOlx0cmV0dXJuIG1kaW9idXNfcmVnaXN0ZXIoYnAtXHUwMDNlbWlpX2J1cyk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2JfbWFpbi5jLTExMjMtfVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYl9tYWluLmM9MTEyNT1zdGF0aWMgaW50IG1hY2JfbWlpX2luaXQoc3RydWN0IG1hY2IgKmJwKVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYl9tYWluLmMtMTE1OC1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYl9tYWluLmM6MTE1OTpcdGVyciA9IG1hY2JfbWRpb2J1c19yZWdpc3RlcihicCwgbWRpb19ucCk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2JfbWFpbi5jLTExNjAtXHRpZiAoZXJyKVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Rhdmljb20vZG05MDUxLmM9MTEwNz1zdGF0aWMgaW50IGRtOTA1MV9tZGlvX3JlZ2lzdGVyKHN0cnVjdCBib2FyZF9pbmZvICpkYilcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9kYXZpY29tL2RtOTA1MS5jLTExMjQtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9kYXZpY29tL2RtOTA1MS5jOjExMjU6XHRyZXQgPSBkZXZtX21kaW9idXNfcmVnaXN0ZXIoXHUwMDI2c3BpLVx1MDAzZWRldiwgZGItXHUwMDNlbWRpb2J1cyk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9kYXZpY29tL2RtOTA1MS5jLTExMjYtXHRpZiAocmV0KVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2VuZ2xlZGVyL3RzbmVwX21haW4uYz0yNDIzPXN0YXRpYyBpbnQgdHNuZXBfbWRpb19pbml0KHN0cnVjdCB0c25lcF9hZGFwdGVyICphZGFwdGVyKVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2VuZ2xlZGVyL3RzbmVwX21haW4uYy0yNDU0LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvZW5nbGVkZXIvdHNuZXBfbWFpbi5jOjI0NTU6XHRyZXR2YWwgPSBvZl9tZGlvYnVzX3JlZ2lzdGVyKGFkYXB0ZXItXHUwMDNlbWRpb2J1cywgbnApO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvZW5nbGVkZXIvdHNuZXBfbWFpbi5jLTI0NTYtXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvZXRob2MuYz0xMDI0PXN0YXRpYyBpbnQgZXRob2NfcHJvYmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldilcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9ldGhvYy5jLTEyMDctXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9ldGhvYy5jOjEyMDg6XHRyZXQgPSBtZGlvYnVzX3JlZ2lzdGVyKHByaXYtXHUwMDNlbWRpbyk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9ldGhvYy5jLTEyMDktXHRpZiAocmV0KSB7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvZmFyYWRheS9mdGdtYWMxMDAuYz0xNzM0PXN0YXRpYyBpbnQgZnRnbWFjMTAwX3NldHVwX21kaW8oc3RydWN0IG5ldF9kZXZpY2UgKm5ldGRldilcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9mYXJhZGF5L2Z0Z21hYzEwMC5jLTE3NjktXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9mYXJhZGF5L2Z0Z21hYzEwMC5jOjE3NzA6XHRlcnIgPSBkZXZtX29mX21kaW9idXNfcmVnaXN0ZXIocHJpdi1cdTAwM2VkZXYsIHByaXYtXHUwMDNlbWlpX2J1cywgbWRpb19ucCk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9mYXJhZGF5L2Z0Z21hYzEwMC5jLTE3NzEtXHRvZl9ub2RlX3B1dChtZGlvX25wKTtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9mcmVlc2NhbGUvZW5ldGMvZW5ldGNfcGNpX21kaW8uYz0zNj1zdGF0aWMgaW50IGVuZXRjX3BjaV9tZGlvX3Byb2JlKHN0cnVjdCBwY2lfZGV2ICpwZGV2LFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ZyZWVzY2FsZS9lbmV0Yy9lbmV0Y19wY2lfbWRpby5jLTkwLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvZnJlZXNjYWxlL2VuZXRjL2VuZXRjX3BjaV9tZGlvLmM6OTE6XHRlcnIgPSBvZl9tZGlvYnVzX3JlZ2lzdGVyKGJ1cywgZGV2LVx1MDAzZW9mX25vZGUpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvZnJlZXNjYWxlL2VuZXRjL2VuZXRjX3BjaV9tZGlvLmMtOTItXHRpZiAoZXJyKVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ZyZWVzY2FsZS9lbmV0Yy9lbmV0Y19wZl9jb21tb24uYz0xNjA9c3RhdGljIGludCBlbmV0Y19tZGlvX3Byb2JlKHN0cnVjdCBlbmV0Y19wZiAqcGYsIHN0cnVjdCBkZXZpY2Vfbm9kZSAqbnApXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvZnJlZXNjYWxlL2VuZXRjL2VuZXRjX3BmX2NvbW1vbi5jLTE4Ni1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ZyZWVzY2FsZS9lbmV0Yy9lbmV0Y19wZl9jb21tb24uYzoxODc6XHRlcnIgPSBvZl9tZGlvYnVzX3JlZ2lzdGVyKGJ1cywgbnApO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvZnJlZXNjYWxlL2VuZXRjL2VuZXRjX3BmX2NvbW1vbi5jLTE4OC1cdGlmIChlcnIpXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvZnJlZXNjYWxlL2VuZXRjL2VuZXRjX3BmX2NvbW1vbi5jPTIwMj1zdGF0aWMgaW50IGVuZXRjX2ltZGlvX2NyZWF0ZShzdHJ1Y3QgZW5ldGNfcGYgKnBmKVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ZyZWVzY2FsZS9lbmV0Yy9lbmV0Y19wZl9jb21tb24uYy0yMzYtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9mcmVlc2NhbGUvZW5ldGMvZW5ldGNfcGZfY29tbW9uLmM6MjM3Olx0ZXJyID0gbWRpb2J1c19yZWdpc3RlcihidXMpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvZnJlZXNjYWxlL2VuZXRjL2VuZXRjX3BmX2NvbW1vbi5jLTIzOC1cdGlmIChlcnIpIHtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9mcmVlc2NhbGUvZmVjX21haW4uYz0zMDQyPXN0YXRpYyBpbnQgZmVjX2VuZXRfbWlpX2luaXQoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldilcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9mcmVlc2NhbGUvZmVjX21haW4uYy0zMTYwLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvZnJlZXNjYWxlL2ZlY19tYWluLmM6MzE2MTpcdGVyciA9IG9mX21kaW9idXNfcmVnaXN0ZXIoZmVwLVx1MDAzZW1paV9idXMsIG5vZGUpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvZnJlZXNjYWxlL2ZlY19tYWluLmMtMzE2Mi1cdGlmIChlcnIpXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvZnJlZXNjYWxlL2ZlY19tcGM1Mnh4X3BoeS5jPTY1PXN0YXRpYyBpbnQgbXBjNTJ4eF9mZWNfbWRpb19wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpvZilcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9mcmVlc2NhbGUvZmVjX21wYzUyeHhfcGh5LmMtMTA1LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvZnJlZXNjYWxlL2ZlY19tcGM1Mnh4X3BoeS5jOjEwNjpcdGVyciA9IG9mX21kaW9idXNfcmVnaXN0ZXIoYnVzLCBucCk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9mcmVlc2NhbGUvZmVjX21wYzUyeHhfcGh5LmMtMTA3LVx0aWYgKGVycilcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9mcmVlc2NhbGUvZnNfZW5ldC9taWktYml0YmFuZy5jPTE0OT1zdGF0aWMgaW50IGZzX2VuZXRfbWRpb19wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpvZmRldilcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9mcmVlc2NhbGUvZnNfZW5ldC9taWktYml0YmFuZy5jLTE3NS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ZyZWVzY2FsZS9mc19lbmV0L21paS1iaXRiYW5nLmM6MTc2Olx0cmV0ID0gb2ZfbWRpb2J1c19yZWdpc3RlcihuZXdfYnVzLCBvZmRldi1cdTAwM2VkZXYub2Zfbm9kZSk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9mcmVlc2NhbGUvZnNfZW5ldC9taWktYml0YmFuZy5jLTE3Ny1cdGlmIChyZXQpXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvZnJlZXNjYWxlL2ZzX2VuZXQvbWlpLWZlYy5jPTk3PXN0YXRpYyBpbnQgZnNfZW5ldF9tZGlvX3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKm9mZGV2KVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ZyZWVzY2FsZS9mc19lbmV0L21paS1mZWMuYy0xNjYtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9mcmVlc2NhbGUvZnNfZW5ldC9taWktZmVjLmM6MTY3Olx0cmV0ID0gb2ZfbWRpb2J1c19yZWdpc3RlcihuZXdfYnVzLCBvZmRldi1cdTAwM2VkZXYub2Zfbm9kZSk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9mcmVlc2NhbGUvZnNfZW5ldC9taWktZmVjLmMtMTY4LVx0aWYgKHJldClcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9mcmVlc2NhbGUvZnNsX3BxX21kaW8uYz00MDk9c3RhdGljIGludCBmc2xfcHFfbWRpb19wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ZyZWVzY2FsZS9mc2xfcHFfbWRpby5jLTQ5My1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ZyZWVzY2FsZS9mc2xfcHFfbWRpby5jOjQ5NDpcdGVyciA9IG9mX21kaW9idXNfcmVnaXN0ZXIobmV3X2J1cywgbnApO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvZnJlZXNjYWxlL2ZzbF9wcV9tZGlvLmMtNDk1LVx0aWYgKGVycikge1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ZyZWVzY2FsZS94Z21hY19tZGlvLmM9MzcxPXN0YXRpYyBpbnQgeGdtYWNfbWRpb19wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ZyZWVzY2FsZS94Z21hY19tZGlvLmMtNDI2LVx0aWYgKGlzX29mX25vZGUoZndub2RlKSlcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ZyZWVzY2FsZS94Z21hY19tZGlvLmM6NDI3Olx0XHRyZXQgPSBvZl9tZGlvYnVzX3JlZ2lzdGVyKGJ1cywgdG9fb2Zfbm9kZShmd25vZGUpKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ZyZWVzY2FsZS94Z21hY19tZGlvLmMtNDI4LVx0ZWxzZSBpZiAoaXNfYWNwaV9ub2RlKGZ3bm9kZSkpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9mcmVlc2NhbGUveGdtYWNfbWRpby5jOjQyOTpcdFx0cmV0ID0gYWNwaV9tZGlvYnVzX3JlZ2lzdGVyKGJ1cywgZndub2RlKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ZyZWVzY2FsZS94Z21hY19tZGlvLmMtNDMwLVx0ZWxzZVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9oaWJtY2dlL2hiZ19tZGlvLmM9MjY2PWludCBoYmdfbWRpb19pbml0KHN0cnVjdCBoYmdfcHJpdiAqcHJpdilcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaGlibWNnZS9oYmdfbWRpby5jLTI5MS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9oaWJtY2dlL2hiZ19tZGlvLmM6MjkyOlx0cmV0ID0gZGV2bV9tZGlvYnVzX3JlZ2lzdGVyKGRldiwgbWRpb19idXMpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2hpYm1jZ2UvaGJnX21kaW8uYy0yOTMtXHRpZiAocmV0KVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9oaXg1aGQyX2dtYWMuYz0xMDk0PXN0YXRpYyBpbnQgaGl4NWhkMl9kZXZfcHJvYmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldilcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaGl4NWhkMl9nbWFjLmMtMTE4NS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9oaXg1aGQyX2dtYWMuYzoxMTg2Olx0cmV0ID0gb2ZfbWRpb2J1c19yZWdpc3RlcihidXMsIG5vZGUpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2hpeDVoZDJfZ21hYy5jLTExODctXHRpZiAocmV0KVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL2huczNwZi9oY2xnZV9tZGlvLmM9MTIzPWludCBoY2xnZV9tYWNfbWRpb19jb25maWcoc3RydWN0IGhjbGdlX2RldiAqaGRldilcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaG5zMy9obnMzcGYvaGNsZ2VfbWRpby5jLTE1NC1cdG1kaW9fYnVzLVx1MDAzZXBoeV9tYXNrID0gfigxVSBcdTAwM2NcdTAwM2MgbWFjLVx1MDAzZXBoeV9hZGRyKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL2huczNwZi9oY2xnZV9tZGlvLmM6MTU1Olx0cmV0ID0gbWRpb2J1c19yZWdpc3RlcihtZGlvX2J1cyk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaG5zMy9obnMzcGYvaGNsZ2VfbWRpby5jLTE1Ni1cdGlmIChyZXQpIHtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaG5zX21kaW8uYz00OTU9c3RhdGljIGludCBobnNfbWRpb19wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnNfbWRpby5jLTU4My1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnNfbWRpby5jOjU4NDpcdFx0cmV0ID0gb2ZfbWRpb2J1c19yZWdpc3RlcihuZXdfYnVzLCBwZGV2LVx1MDAzZWRldi5vZl9ub2RlKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnNfbWRpby5jLTU4NS1cdH0gZWxzZSBpZiAoaXNfYWNwaV9ub2RlKHBkZXYtXHUwMDNlZGV2LmZ3bm9kZSkpIHtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaG5zX21kaW8uYy01OTItXHRcdC8qIFJlZ2lzdGVyIHRoZSBNRElPIGJ1cyAqL1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huc19tZGlvLmM6NTkzOlx0XHRyZXQgPSBtZGlvYnVzX3JlZ2lzdGVyKG5ld19idXMpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huc19tZGlvLmMtNTk0LVx0fSBlbHNlIHtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pYm0vZW1hYy9jb3JlLmM9MjU2MD1zdGF0aWMgaW50IGVtYWNfZHRfbWRpb19wcm9iZShzdHJ1Y3QgZW1hY19pbnN0YW5jZSAqZGV2KVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2libS9lbWFjL2NvcmUuYy0yNTg0LVx0c25wcmludGYoYnVzLVx1MDAzZWlkLCBNSUlfQlVTX0lEX1NJWkUsIFwmIzM0OyVzXCYjMzQ7LCBkZXYtXHUwMDNlb2ZkZXYtXHUwMDNlbmFtZSk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pYm0vZW1hYy9jb3JlLmM6MjU4NTpcdHJlcyA9IGRldm1fb2ZfbWRpb2J1c19yZWdpc3RlcihcdTAwMjZkZXYtXHUwMDNlb2ZkZXYtXHUwMDNlZGV2LCBidXMsIG1paV9ucCk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pYm0vZW1hYy9jb3JlLmMtMjU4Ni1cdGlmIChyZXMpIHtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9peGdiZV9waHkuYz0xMDI2PWludCBpeGdiZV9taWlfYnVzX2luaXQoc3RydWN0IGl4Z2JlX2h3ICpodylcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9peGdiZV9waHkuYy0xMDg4LVx0YWRhcHRlci1cdTAwM2VtaWlfYnVzID0gYnVzO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvaXhnYmVfcGh5LmM6MTA4OTpcdHJldHVybiBtZGlvYnVzX3JlZ2lzdGVyKGJ1cyk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9peGdiZV9waHkuYy0xMDkwLX1cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9sYW50aXFfZXRvcC5jPTM4NT1sdHFfZXRvcF9tZGlvX2luaXQoc3RydWN0IG5ldF9kZXZpY2UgKmRldilcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9sYW50aXFfZXRvcC5jLTQwMi1cdFx0IHByaXYtXHUwMDNlcGRldi1cdTAwM2VuYW1lLCBwcml2LVx1MDAzZXBkZXYtXHUwMDNlaWQpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbGFudGlxX2V0b3AuYzo0MDM6XHRpZiAobWRpb2J1c19yZWdpc3Rlcihwcml2LVx1MDAzZW1paV9idXMpKSB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9sYW50aXFfZXRvcC5jLTQwNC1cdFx0ZXJyID0gLUVOWElPO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvbXZtZGlvLmM9MjgzPXN0YXRpYyBpbnQgb3Jpb25fbWRpb19wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvbXZtZGlvLmMtMzgxLVx0LyogRm9yIHRoZSBwbGF0Zm9ybXMgbm90IHN1cHBvcnRpbmcgRFQvQUNQSSBmYWxsLWJhY2tcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvbXZtZGlvLmM6MzgyOlx0ICogdG8gbWRpb2J1c19yZWdpc3RlciB2aWEgb2ZfbWRpb2J1c19yZWdpc3Rlci5cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvbXZtZGlvLmMtMzgzLVx0ICovXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL212bWRpby5jLTM4NC1cdGlmIChpc19hY3BpX25vZGUocGRldi1cdTAwM2VkZXYuZndub2RlKSlcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvbXZtZGlvLmM6Mzg1Olx0XHRyZXQgPSBhY3BpX21kaW9idXNfcmVnaXN0ZXIoYnVzLCBwZGV2LVx1MDAzZWRldi5md25vZGUpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9tdm1kaW8uYy0zODYtXHRlbHNlXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL212bWRpby5jOjM4NzpcdFx0cmV0ID0gb2ZfbWRpb2J1c19yZWdpc3RlcihidXMsIHBkZXYtXHUwMDNlZGV2Lm9mX25vZGUpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9tdm1kaW8uYy0zODgtXHRpZiAocmV0IFx1MDAzYyAwKSB7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9weGExNjhfZXRoLmM9MTM4Nz1zdGF0aWMgaW50IHB4YTE2OF9ldGhfcHJvYmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldilcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3B4YTE2OF9ldGguYy0xNTA0LVx0cGVwLVx1MDAzZXNtaV9idXMtXHUwMDNlcGh5X21hc2sgPSAweGZmZmZmZmZmO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9weGExNjhfZXRoLmM6MTUwNTpcdGVyciA9IG1kaW9idXNfcmVnaXN0ZXIocGVwLVx1MDAzZXNtaV9idXMpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9weGExNjhfZXRoLmMtMTUwNi1cdGlmIChlcnIpXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX2V0aF9zb2MuYz05OTc9c3RhdGljIGludCBtdGtfbWRpb19pbml0KHN0cnVjdCBtdGtfZXRoICpldGgpXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX2V0aF9zb2MuYy0xMDM2LVx0ZGV2X2RiZyhldGgtXHUwMDNlZGV2LCBcJiMzNDtNREMgaXMgcnVubmluZyBvbiAlZCBIelxcblwmIzM0OywgTURDX01BWF9GUkVRIC8gZXRoLVx1MDAzZW1kY19kaXZpZGVyKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a19ldGhfc29jLmM6MTAzNzpcdHJldCA9IG9mX21kaW9idXNfcmVnaXN0ZXIoZXRoLVx1MDAzZW1paV9idXMsIG1paV9ucCk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9tdGtfZXRoX3NvYy5jLTEwMzgtXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX3N0YXJfZW1hYy5jPTE0MjI9c3RhdGljIGludCBtdGtfc3Rhcl9tZGlvX2luaXQoc3RydWN0IG5ldF9kZXZpY2UgKm5kZXYpXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX3N0YXJfZW1hYy5jLTE0NDctXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9tdGtfc3Rhcl9lbWFjLmM6MTQ0ODpcdHJldCA9IGRldm1fb2ZfbWRpb2J1c19yZWdpc3RlcihkZXYsIHByaXYtXHUwMDNlbWlpLCBtZGlvX25vZGUpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX3N0YXJfZW1hYy5jLTE0NDktXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4YmZfZ2lnZS9tbHhiZl9naWdlX21kaW8uYz0yODc9aW50IG1seGJmX2dpZ2VfbWRpb19wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2LCBzdHJ1Y3QgbWx4YmZfZ2lnZSAqcHJpdilcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHhiZl9naWdlL21seGJmX2dpZ2VfbWRpby5jLTMzMi1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seGJmX2dpZ2UvbWx4YmZfZ2lnZV9tZGlvLmM6MzMzOlx0cmV0ID0gbWRpb2J1c19yZWdpc3Rlcihwcml2LVx1MDAzZW1kaW9idXMpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4YmZfZ2lnZS9tbHhiZl9naWdlX21kaW8uYy0zMzQtXHRpZiAocmV0KVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21ldGEvZmJuaWMvZmJuaWNfbWRpby5jPTI1Mz1pbnQgZmJuaWNfbWRpb2J1c19jcmVhdGUoc3RydWN0IGZibmljX2RldiAqZmJkKVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21ldGEvZmJuaWMvZmJuaWNfbWRpby5jLTI3Mi1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21ldGEvZmJuaWMvZmJuaWNfbWRpby5jOjI3MzpcdGVyciA9IGRldm1fbWRpb2J1c19yZWdpc3RlcihmYmQtXHUwMDNlZGV2LCBidXMpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWV0YS9mYm5pYy9mYm5pY19tZGlvLmMtMjc0LVx0aWYgKGVycikge1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JlbC9rczg4NTFfY29tbW9uLmM9MTAzNj1zdGF0aWMgaW50IGtzODg1MV9yZWdpc3Rlcl9tZGlvYnVzKHN0cnVjdCBrczg4NTFfbmV0ICprcywgc3RydWN0IGRldmljZSAqZGV2KVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JlbC9rczg4NTFfY29tbW9uLmMtMTA1Mi1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JlbC9rczg4NTFfY29tbW9uLmM6MTA1MzpcdHJldCA9IG1kaW9idXNfcmVnaXN0ZXIobWlpX2J1cyk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyZWwva3M4ODUxX2NvbW1vbi5jLTEwNTQtXHRpZiAocmV0KVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcmVsL2tzODg1MV9jb21tb24uYzoxMDU1Olx0XHRnb3RvIGVycl9tZGlvYnVzX3JlZ2lzdGVyO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcmVsL2tzODg1MV9jb21tb24uYy0xMDU2LVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JlbC9rczg4NTFfY29tbW9uLmMtMTA2MC1cblxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjcvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzI1IDA4OjIwPC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDMyNDA3CgkJCQkJCQlvdXRwdXQ6IDMxCgkJCQkJCQl0aG91Z2h0czogNTkKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPk9rYXksIGxldCBtZSB0aGluayB0aGlzIHRocm91Z2guCgoqKk1ESU8gQnVzIFJlZ2lzdHJhdGlvbjogQSBRdWljayBTY3J1dGlueSoqCgpIbW0sIGhvbGQgb24gYSBzZWNvbmQuIEkmIzM5O20gc2VlaW5nIGEgZmV3IE1ESU8gYnVzIHJlZ2lzdHJhdGlvbiBmdW5jdGlvbnMgaGVyZTogYGRldm1fbWRpb2J1c19yZWdpc3RlcmAsIGBvZl9tZGlvYnVzX3JlZ2lzdGVyYCwgYW5kIHBsYWluIG9sZCBgbWRpb2J1c19yZWdpc3RlcmAuIFRoZSBrZXkgcXVlc3Rpb24gcG9wcGluZyBpbnRvIG15IGhlYWQgaXMgd2hldGhlciBgbWRpb2J1c19yZWdpc3RlcmAgaXMgc29tZXRoaW5nIHRoYXQgY2FuIGJlIGNhbGxlZCBieSBhIFVTQiBkcml2ZXIuIFRoYXQgc2VlbXMgYSBsaXR0bGUgdW51c3VhbCBhdCBmaXJzdCBnbGFuY2UsIGJ1dCB5b3UgbmV2ZXIga25vdy4gSXQmIzM5O3MgdGltZSB0byBkaWcgaW50byB0aGUga2VybmVsJiMzOTtzIFVTQiBuZXR3b3JrIGRyaXZlcnMgdG8gc2VlIGlmIHRoZXJlJiMzOTtzIGFueSBwcmVjZWRlbnQuIExldCYjMzk7cyBzdGFydCBieSBxdWlja2x5IGNoZWNraW5nIHRoZSBgZHJpdmVycy9uZXQvdXNiL2AgZGlyZWN0b3J5IHRvIGdldCBhIGZlZWwgZm9yIGhvdyB0aGV5IGludGVyYWN0IHdpdGggdGhlIE1ESU8gc3Vic3lzdGVtLiBJIHdhbnQgdG8gc2VlIGhvdyB0aGVzZSBkaWZmZXJlbnQgcmVnaXN0cmF0aW9uIG1lY2hhbmlzbXMgYXJlIHVzZWQgaW4gdGhhdCBzcGVjaWZpYyBjb250ZXh0LgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjgvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzI1IDA4OjIwPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O21kaW9idXNfcmVnaXN0ZXImIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtkcml2ZXJzL25ldC91c2IvJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3VzYi9hc2l4X2RldmljZXMuYz02Njk9c3RhdGljIGludCBheDg4NzcyX2luaXRfbWRpbyhzdHJ1Y3QgdXNibmV0ICpkZXYpXG4tLVxuZHJpdmVycy9uZXQvdXNiL2FzaXhfZGV2aWNlcy5jLTY4Ni1cbmRyaXZlcnMvbmV0L3VzYi9hc2l4X2RldmljZXMuYzo2ODc6XHRyZXQgPSBtZGlvYnVzX3JlZ2lzdGVyKHByaXYtXHUwMDNlbWRpbyk7XG5kcml2ZXJzL25ldC91c2IvYXNpeF9kZXZpY2VzLmMtNjg4LVx0aWYgKHJldCkge1xuLS1cbmRyaXZlcnMvbmV0L3VzYi9heDg4MTcyYS5jPTYxPXN0YXRpYyBpbnQgYXg4ODE3MmFfaW5pdF9tZGlvKHN0cnVjdCB1c2JuZXQgKmRldilcbi0tXG5kcml2ZXJzL25ldC91c2IvYXg4ODE3MmEuYy03OS1cbmRyaXZlcnMvbmV0L3VzYi9heDg4MTcyYS5jOjgwOlx0cmV0ID0gbWRpb2J1c19yZWdpc3Rlcihwcml2LVx1MDAzZW1kaW8pO1xuZHJpdmVycy9uZXQvdXNiL2F4ODgxNzJhLmMtODEtXHRpZiAocmV0KSB7XG4tLVxuZHJpdmVycy9uZXQvdXNiL2xhbjc4eHguYz0yMDkxPXN0YXRpYyBpbnQgbGFuNzh4eF9tZGlvX2luaXQoc3RydWN0IGxhbjc4eHhfbmV0ICpkZXYpXG4tLVxuZHJpdmVycy9uZXQvdXNiL2xhbjc4eHguYy0yMTIxLVx0bm9kZSA9IG9mX2dldF9jaGlsZF9ieV9uYW1lKGRldi1cdTAwM2V1ZGV2LVx1MDAzZWRldi5vZl9ub2RlLCBcJiMzNDttZGlvXCYjMzQ7KTtcbmRyaXZlcnMvbmV0L3VzYi9sYW43OHh4LmM6MjEyMjpcdHJldCA9IG9mX21kaW9idXNfcmVnaXN0ZXIoZGV2LVx1MDAzZW1kaW9idXMsIG5vZGUpO1xuZHJpdmVycy9uZXQvdXNiL2xhbjc4eHguYy0yMTIzLVx0b2Zfbm9kZV9wdXQobm9kZSk7XG4tLVxuZHJpdmVycy9uZXQvdXNiL3Ntc2M5NXh4LmM9MTE0Nz1zdGF0aWMgaW50IHNtc2M5NXh4X2JpbmQoc3RydWN0IHVzYm5ldCAqZGV2LCBzdHJ1Y3QgdXNiX2ludGVyZmFjZSAqaW50Zilcbi0tXG5kcml2ZXJzL25ldC91c2Ivc21zYzk1eHguYy0xMjQxLVxuZHJpdmVycy9uZXQvdXNiL3Ntc2M5NXh4LmM6MTI0MjpcdHJldCA9IG1kaW9idXNfcmVnaXN0ZXIocGRhdGEtXHUwMDNlbWRpb2J1cyk7XG5kcml2ZXJzL25ldC91c2Ivc21zYzk1eHguYy0xMjQzLVx0aWYgKHJldCkge1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjkvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzI1IDA4OjIwPC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDMzMjE4CgkJCQkJCQlvdXRwdXQ6IDI0CgkJCQkJCQl0aG91Z2h0czogMTk0CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKlJlYWNoaW5nIERQODM2NDAgUHJvYmUgJmFtcDsgUmVtb3ZlIHZpYSBVU0IgRW11bGF0aW9uKioKCk9rYXksIHNvIHRoZSBwaWVjZXMgYXJlIHN0YXJ0aW5nIHRvIGZpdCB0b2dldGhlciBuaWNlbHkuIEkmIzM5O3ZlIGdvdCBpdDogYHNtc2M5NXh4YCwgYGxhbjc4eHhgLCBgYXg4ODE3MmFgLCBhbmQgYGFzaXhfZGV2aWNlc2Ag4oCTIHRoZXkgYWxsIHJlZ2lzdGVyIGFuIE1ESU8gYnVzLiBUaGF0JiMzOTtzIGtleS4gSWYgSSBjYW4gZW11bGF0ZSBvbmUgb2YgdGhlc2UgVVNCIG5ldHdvcmsgZGV2aWNlcyB1c2luZyBgdmhjaWAsIHRoZW4gdGhlIGNvcnJlc3BvbmRpbmcgZHJpdmVyIHNob3VsZCBwcm9iZSwgcmVnaXN0ZXIgaXRzIG93biBNRElPIGJ1cywgYW5kIHRoZW4gc2NhbiBmb3IgY29ubmVjdGVkIFBIWXMuCgpEdXJpbmcgdGhpcyBzY2FuLCB0aGUgZHJpdmVyIHdpbGwgYmUgcmVhZGluZyBQSFkgcmVnaXN0ZXJzLiBUaGUgZHJpdmVyIGRvZXMgdGhpcyB1c2luZyBVU0IgY29udHJvbCBtZXNzYWdlcywgd2hpY2ggaXMgcGVyZmVjdC4gSWYgbXkgZnV6emVyIGludGVyY2VwdHMgdGhlc2UgbWVzc2FnZXMsIEkgY2FuIGZlZWQgaXQgdGhlIFBIWSBJRCBmb3IgYSBgZHA4MzY0MGAgKGAweDIwMDA1Y2UxYCkuIFdoZW4gdGhlIE1ESU8gYnVzIHNjYW4gaGFwcGVucyBhbmQgdGhlIFBIWSBJRCBtYXRjaGVzLCBpdCBzaG91bGQgY2FsbCBgZHA4MzY0MF9wcm9iZWAuIFRoaXMgaXMgZXhhY3RseSB3aGF0IEkmIzM5O20gbG9va2luZyBmb3IuCgpUaGlzIGFsc28gbWVhbnMgdGhhdCBJIHNob3VsZCBiZSBhYmxlIHRvIHJlYWNoIGBkcDgzNjQwX3Byb2JlYCBhbmQgYGRwODM2NDBfcmVtb3ZlYCBlbnRpcmVseSB3aXRoaW4gYSB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudCB2aWEgVVNCIGRldmljZSBlbXVsYXRpb24uIEl0IGlzIGdvaW5nIHRvIGJlIGluY3JlZGlibHkgdXNlZnVsIGZvciBmdXp6aW5nIQoKSSBzaG91bGQgZG91YmxlLWNoZWNrIHRoZSBleGFjdCBQSFkgSUQgZm9yIHRoZSBgZHA4MzY0MGAganVzdCB0byBiZSBjZXJ0YWluLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEwLzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yNSAwODoyMDwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtEUDgzNjQwX1BIWV9JRCYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtkcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jLTI1LVxuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYzoyNjojZGVmaW5lIERQODM2NDBfUEhZX0lEXHQweDIwMDA1Y2UxXG5kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jLTI3LSNkZWZpbmUgUEFHRVNFTFx0XHQweDEzXG4tLVxuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYz0xNTMxPXN0YXRpYyBzdHJ1Y3QgcGh5X2RyaXZlciBkcDgzNjQwX2RyaXZlcltdID0ge1xuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYy0xNTMyLXtcbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmM6MTUzMzpcdC5waHlfaWRcdFx0PSBEUDgzNjQwX1BIWV9JRCxcbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmMtMTUzNC1cdC5waHlfaWRfbWFza1x0PSAweGZmZmZmZmYwLFxuLS1cbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmM9MTU1Mj1zdGF0aWMgY29uc3Qgc3RydWN0IG1kaW9fZGV2aWNlX2lkIF9fbWF5YmVfdW51c2VkIGRwODM2NDBfdGJsW10gPSB7XG5kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jOjE1NTM6XHR7IERQODM2NDBfUEhZX0lELCAweGZmZmZmZmYwIH0sXG5kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jLTE1NTQtXHR7IH1cbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMS8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjUgMDg6MjA8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMzQwNzUKCQkJCQkJCW91dHB1dDogMjIKCQkJCQkJCXRob3VnaHRzOiA0MDQKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqRnV6emluZyBTdHJhdGVneSBmb3IgdGhlIERQODM2NDAgRHJpdmVyKioKCk9rYXksIHNvIGAweDIwMDA1Y2UxYCBjb25maXJtcyBpdCDigJMgdGhpcyBkcml2ZXIgaXMgZGVmaW5pdGVseSBpbiBzeXprYWxsZXImIzM5O3MgY3Jvc3NoYWlycywgYW5kIHRoZSBVU0IgZnV6emVyIGlzIHRoZSB3YXkgdG8gZ28uIFRoZSBwYXRjaCBpbnRyb2R1Y2luZyBhIGBrcmVmYCBpcyBhIGdvb2Qgc2lnbjsgaXQmIzM5O3MgYSBmdW5jdGlvbmFsIGZpeCwgYWRkcmVzc2luZyBwb3RlbnRpYWwgdXNlLWFmdGVyLWZyZWUgb3IgbWVtb3J5IGxlYWsgaXNzdWVzLCBtYWtpbmcgaXQgcHJpbWUgZnV6emluZyBtYXRlcmlhbC4KCk5vdywgbGV0JiMzOTtzIGlkZW50aWZ5IHRoZSBrZXkga2VybmVsIGZ1bmN0aW9ucyB0byB0YXJnZXQuIFRoZSBwYXRjaCB0b3VjaGVzIGBkcDgzNjQwX2Nsb2NrX2luaXRgLCBgZHA4MzY0MF9jbG9ja19nZXRfYnVzYCwgYGRwODM2NDBfY2xvY2tfcHV0YCwgYGRwODM2NDBfY2xvY2tfcmVsZWFzZWAsIGBkcDgzNjQwX3Byb2JlYCwgYW5kIGBkcDgzNjQwX3JlbW92ZWAuIFdlIHNob3VsZCBkZWZpbml0ZWx5IGluY2x1ZGUgYGRwODM2NDBfcHJvYmVgIGFuZCBgZHA4MzY0MF9yZW1vdmVgIGluIGBGb2N1c1N5bWJvbHNgLiBUaGV5JiMzOTtyZSB0aGUgZW50cnkgcG9pbnRzLCB0aGUgaG9va3MgdGhhdCYjMzk7bGwgZXhwb3NlIHRoZSBkcml2ZXIgdG8gdGhlIGZ1enplci4KCkhtbSwgYGRwODM2NDBfY2xvY2tfZ2V0X2J1c2AgYW5kIGBkcDgzNjQwX2Nsb2NrX3B1dGAgYXJlIHN0YXRpYyBidXQgY2FsbGVkIGZyb20gdGhvc2UgZW50cnkgcG9pbnRzLiBJIHNob3VsZCBkb3VibGUtY2hlY2sgYWJvdXQgaW5saW5pbmcgaGVyZSAtIGVzcGVjaWFsbHkgZm9yIGBkcDgzNjQwX2Nsb2NrX2dldF9idXNgLiBMZXQmIzM5O3MgY29uZmlybSB0aGVyZSBhcmUgbm8gbm9uLXN0YXRpYyBmdW5jdGlvbnMgYW5kIHRoYXQgYGRwODM2NDBfcHJvYmVgIGFuZCBgZHA4MzY0MF9yZW1vdmVgIGFyZSB0aGUgbWFpbiBlbnRyeSBwb2ludHMgZm9yIHRoZSBsb2dpYy4gV2FpdCBhIHNlY29uZCwgdGhlIGBkcDgzNjQwX3Byb2JlYCBhbmQgYGRwODM2NDBfcmVtb3ZlYCBmdW5jdGlvbnMgYXJlIHN0YXRpYyBhcyB3ZWxsISBCdXQgdGhleSBhcmUgcmVmZXJlbmNlZCBpbiB0aGUgYGRwODM2NDBfZHJpdmVyYCBzdHJ1Y3QsIHNvIHRoZXkgc2hvdWxkIG5vdCBiZSBpbmxpbmVkIGFuZCBoYXZlIGRpc3RpbmN0IHN5bWJvbCBhZGRyZXNzZXMuIFRoaXMgbWVhbnMgdGhhdCBzeXprYWxsZXIgKmNhbiogZmluZCB0aGVtLiBBbHJpZ2h0LCB0aGF0IHNpbXBsaWZpZXMgdGhpbmdzIHNvbWV3aGF0LiBMZXQmIzM5O3MgZ2V0IHRoZXNlIGZ1bmN0aW9ucyBhZGRlZCB0byB0aGUgZm9jdXMgbGlzdC4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMi8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjUgMDg6MjA8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7ZHA4MzY0MF9wcm9iZSYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtkcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jPTE0MDQ9c3RhdGljIGludCBkcDgzNjQwX3RzX2luZm8oc3RydWN0IG1paV90aW1lc3RhbXBlciAqbWlpX3RzLFxuLS1cbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmMtMTQyNy1cbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmM6MTQyODpzdGF0aWMgaW50IGRwODM2NDBfcHJvYmUoc3RydWN0IHBoeV9kZXZpY2UgKnBoeWRldilcbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmMtMTQyOS17XG4tLVxuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYz0xNTMxPXN0YXRpYyBzdHJ1Y3QgcGh5X2RyaXZlciBkcDgzNjQwX2RyaXZlcltdID0ge1xuLS1cbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmMtMTUzNi1cdC8qIFBIWV9CQVNJQ19GRUFUVVJFUyAqL1xuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYzoxNTM3Olx0LnByb2JlXHRcdD0gZHA4MzY0MF9wcm9iZSxcbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmMtMTUzOC1cdC5yZW1vdmVcdFx0PSBkcDgzNjQwX3JlbW92ZSxcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMy8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjUgMDg6MjA8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMzUyMjMKCQkJCQkJCW91dHB1dDogMjMKCQkJCQkJCXRob3VnaHRzOiA5MAoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+T2theSwgbGV0JiMzOTtzIGJyZWFrIHRoaXMgZG93bi4KCioqQW5hbHl6aW5nIENhbmRpZGF0ZSBTeW1ib2xzIGZvciBGb2N1c2VkIEV4YW1pbmF0aW9uKioKClJpZ2h0LCBzbyB0aGVzZSBzeW1ib2xzLCBldmVuIHRob3VnaCB0aGV5JiMzOTtyZSBzZWVtaW5nbHkgc3RhdGljLCBhcmUgZnVuY3Rpb25pbmcgYXMgY2FsbGJhY2tzLiBUaGF0JiMzOTtzIGEgZ29vZCBzdGFydGluZyBwb2ludC4gSSB0aGluayBgZHA4MzY0MF9wcm9iZWAgYW5kIGBkcDgzNjQwX3JlbW92ZWAgbG9vayBsaWtlIHNvbGlkIGNhbmRpZGF0ZXMgZm9yIGNsb3NlciBzY3J1dGlueSwgc3BlY2lmaWNhbGx5IGZvciBpbmNsdXNpb24gd2l0aGluIG15IGBGb2N1c1N5bWJvbHNgIGxpc3QuIEkgbmVlZCB0byB1bmRlcnN0YW5kIHRoZWlyIGJlaGF2aW9yIGluIHRoZSBicm9hZGVyIHBpY3R1cmUuCgpOb3csIEkmIzM5O2xsIG5lZWQgdG8gZmlndXJlIG91dCB0aGUgcmVsZXZhbnQgY29uZmlndXJhdGlvbiBvcHRpb25zIHRoYXQgZGljdGF0ZSB0aGVpciBpbmNsdXNpb24gYW5kIGJlaGF2aW9yLiBUaGUgcHJpbWFyeSBjb25maWd1cmF0aW9uIGl0ZW0gYXBwZWFycyB0byBiZSBgQ09ORklHX0RQODM2NDBfUEhZYCwgd2hpY2ggbWFrZXMgc2Vuc2UuIEkmIzM5O2xsIG5lZWQgdG8gZG91YmxlIGNoZWNrIHRoZSBkZXBlbmRlbmNpZXMgYnkgZXhhbWluaW5nIHRoZSBgZHJpdmVycy9uZXQvcGh5L0tjb25maWdgIGZpbGUuIFRoYXQgc2hvdWxkIGdpdmUgbWUgYSBtb3JlIGNvbXBsZXRlIHBpY3R1cmUgb2YgdGhlIGNvbmZpZ3VyYXRpb24gc3BhY2Ugc3Vycm91bmRpbmcgdGhlc2Ugc3ltYm9scy4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xNC8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjUgMDg6MjA8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7Y29uZmlnIERQODM2NDBfUEhZJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2RyaXZlcnMvcHRwL0tjb25maWc9NzI9Y29tbWVudCBcJiMzNDtFbmFibGUgUEhZTElCIGFuZCBORVRXT1JLX1BIWV9USU1FU1RBTVBJTkcgdG8gc2VlIHRoZSBhZGRpdGlvbmFsIGNsb2Nrcy5cJiMzNDtcbi0tXG5kcml2ZXJzL3B0cC9LY29uZmlnLTc0LVxuZHJpdmVycy9wdHAvS2NvbmZpZzo3NTpjb25maWcgRFA4MzY0MF9QSFlcbmRyaXZlcnMvcHRwL0tjb25maWctNzYtXHR0cmlzdGF0ZSBcJiMzNDtEcml2ZXIgZm9yIHRoZSBOYXRpb25hbCBTZW1pY29uZHVjdG9yIERQODM2NDAgUEhZVEVSXCYjMzQ7XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTUvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzI1IDA4OjIwPC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDM1NjI4CgkJCQkJCQlvdXRwdXQ6IDM0CgkJCQkJCQl0aG91Z2h0czogNDQKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPkhlcmUmIzM5O3MgbXkgdGFrZSBvbiB0aG9zZSB0aG91Z2h0czoKCioqTmF2aWdhdGluZyB0aGUgS2VybmVsJiMzOTtzIFBUUCBEcml2ZXJzKioKCk9rYXksIHNvIEkmIzM5O20gbG9va2luZyBhdCB0aGUgYERQODM2NDBfUEhZYCDigJMgdGhhdCYjMzk7cyBhIFBIWSBmb3IgUFRQLCByaWdodD8gSW50ZXJlc3RpbmcuIFdoeSBpcyB0aGF0IHNwZWNpZmljIGRyaXZlciBjb25maWd1cmF0aW9uIGJ1cmllZCBpbiBgZHJpdmVycy9wdHAvS2NvbmZpZ2A/IEl0IHNlZW1zIGEgYml0IHVudXN1YWwsIGJ1dCBJIGd1ZXNzIGl0IG1ha2VzIHNlbnNlIGluIHRoZSBicm9hZGVyIGNvbnRleHQgb2YgUFRQIGhhcmR3YXJlIHN1cHBvcnQuIFRvIGdldCBhIGJldHRlciB1bmRlcnN0YW5kaW5nIG9mIHRoZSBsYXlvdXQsIGxldCBtZSBqdW1wIG92ZXIgdG8gdGhhdCBgS2NvbmZpZ2AgZmlsZSBpbiB0aGUgYGRyaXZlcnMvcHRwYCBkaXJlY3RvcnkuIEkmIzM5O2xsIHRha2UgYSBsb29rIGFyb3VuZCBsaW5lIDc1OyB0aGF0JiMzOTtzIHVzdWFsbHkgYSBnb29kIHNwb3QgdG8gc3RhcnQgd2hlbiBJJiMzOTttIHRyeWluZyB0byBmaWd1cmUgb3V0IHRoZSBkZXBlbmRlbmNpZXMgYW5kIHJlbGF0aW9uc2hpcHMgd2l0aGluIHRoZXNlIGNvbmZpZ3VyYXRpb24gZmlsZXMuIEl0IHdpbGwgZ2l2ZSBtZSBhIGJldHRlciB1bmRlcnN0YW5kaW5nIG9mIHdoZXJlIHRoaXMgcGFydGljdWxhciBkcml2ZXIgZml0cyBpbnRvIHRoZSBsYXJnZXIgYXJjaGl0ZWN0dXJlIGFuZCB3aGF0IG90aGVyIG9wdGlvbnMgbWlnaHQgYmUgaW52b2x2ZWQuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTYvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzI1IDA4OjIwPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+cmVhZC1maWxlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtGaWxlJiMzNDs6ICYjMzQ7ZHJpdmVycy9wdHAvS2NvbmZpZyYjMzQ7LAogICYjMzQ7Rmlyc3RMaW5lJiMzNDs6IDYwLAogICYjMzQ7TGluZUNvdW50JiMzNDs6IDMwCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtDb250ZW50cyYjMzQ7OiAmIzM0OyAgNjA6XHRcdGRlcGVuZHMgb24gR0lBTkZBUiB8fCBGU0xfRFBBQV9FVEggfHwgRlNMX0RQQUEyX0VUSCB8fCBGU0xfRU5FVEMgfHwgRlNMX0VORVRDX1ZGIHx8IENPTVBJTEVfVEVTVFxuICA2MTpcdFx0ZGVwZW5kcyBvbiBQVFBfMTU4OF9DTE9DS1xuICA2MjpcdFx0ZGVmYXVsdCB5IGlmIEdJQU5GQVIgfHwgRlNMX0RQQUFfRVRIIHx8IEZTTF9EUEFBMl9FVEggfHwgRlNMX0VORVRDIHx8IEZTTF9FTkVUQ19WRlxuICA2MzpcdFx0aGVscFxuICA2NDpcdFx0ICBUaGlzIGRyaXZlciBhZGRzIHN1cHBvcnQgZm9yIHVzaW5nIHRoZSBGcmVlc2NhbGUgUW9ySVEgMTU4OFxuICA2NTpcdFx0ICB0aW1lciBhcyBhIFBUUCBjbG9jay4gVGhpcyBjbG9jayBpcyBvbmx5IHVzZWZ1bCBpZiB5b3VyIFBUUFxuICA2NjpcdFx0ICBwcm9ncmFtcyBhcmUgZ2V0dGluZyBoYXJkd2FyZSB0aW1lIHN0YW1wcyBvbiB0aGUgUFRQIEV0aGVybmV0XG4gIDY3Olx0XHQgIHBhY2tldHMgdXNpbmcgdGhlIFNPX1RJTUVTVEFNUElORyBBUEkuXG4gIDY4Olx0XG4gIDY5Olx0XHQgIFRvIGNvbXBpbGUgdGhpcyBkcml2ZXIgYXMgYSBtb2R1bGUsIGNob29zZSBNIGhlcmU6IHRoZSBtb2R1bGVcbiAgNzA6XHRcdCAgd2lsbCBiZSBjYWxsZWQgcHRwX3FvcmlxLlxuICA3MTpcdFxuICA3MjpcdGNvbW1lbnQgXCYjMzQ7RW5hYmxlIFBIWUxJQiBhbmQgTkVUV09SS19QSFlfVElNRVNUQU1QSU5HIHRvIHNlZSB0aGUgYWRkaXRpb25hbCBjbG9ja3MuXCYjMzQ7XG4gIDczOlx0XHRkZXBlbmRzIG9uIFBIWUxJQj1uIHx8IE5FVFdPUktfUEhZX1RJTUVTVEFNUElORz1uXG4gIDc0Olx0XG4gIDc1Olx0Y29uZmlnIERQODM2NDBfUEhZXG4gIDc2Olx0XHR0cmlzdGF0ZSBcJiMzNDtEcml2ZXIgZm9yIHRoZSBOYXRpb25hbCBTZW1pY29uZHVjdG9yIERQODM2NDAgUEhZVEVSXCYjMzQ7XG4gIDc3Olx0XHRkZXBlbmRzIG9uIE5FVFdPUktfUEhZX1RJTUVTVEFNUElOR1xuICA3ODpcdFx0ZGVwZW5kcyBvbiBQSFlMSUJcbiAgNzk6XHRcdGRlcGVuZHMgb24gUFRQXzE1ODhfQ0xPQ0tcbiAgODA6XHRcdHNlbGVjdCBDUkMzMlxuICA4MTpcdFx0aGVscFxuICA4MjpcdFx0ICBTdXBwb3J0cyB0aGUgRFA4MzY0MCBQSFlURVIgd2l0aCBJRUVFIDE1ODggZmVhdHVyZXMuXG4gIDgzOlx0XG4gIDg0Olx0XHQgIFRoaXMgZHJpdmVyIGFkZHMgc3VwcG9ydCBmb3IgdXNpbmcgdGhlIERQODM2NDAgYXMgYSBQVFBcbiAgODU6XHRcdCAgY2xvY2suIFRoaXMgY2xvY2sgaXMgb25seSB1c2VmdWwgaWYgeW91ciBQVFAgcHJvZ3JhbXMgYXJlXG4gIDg2Olx0XHQgIGdldHRpbmcgaGFyZHdhcmUgdGltZSBzdGFtcHMgb24gdGhlIFBUUCBFdGhlcm5ldCBwYWNrZXRzXG4gIDg3Olx0XHQgIHVzaW5nIHRoZSBTT19USU1FU1RBTVBJTkcgQVBJLlxuICA4ODpcdFxuICA4OTpcdFx0ICBJbiBvcmRlciBmb3IgdGhpcyB0byB3b3JrLCB5b3VyIE1BQyBkcml2ZXIgbXVzdCBhbHNvXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTcvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzI1IDA4OjIwPC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDM2NDM4CgkJCQkJCQlvdXRwdXQ6IDIxCgkJCQkJCQl0aG91Z2h0czogNjIKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPk9rYXksIGxldCYjMzk7cyBicmVhayB0aGlzIGRvd24uCgoqKkRlcGVuZGVuY2llcyBhbmQgVmVyaWZpY2F0aW9uKioKClJpZ2h0LCBzbyBJJiMzOTttIGxvb2tpbmcgYXQgYERQODM2NDBfUEhZYCBhbmQgaXQmIzM5O3MgZmxhZ2dlZCBhcyBkZXBlbmRpbmcgb24gYE5FVFdPUktfUEhZX1RJTUVTVEFNUElOR2AsIGBQSFlMSUJgLCBhbmQgYFBUUF8xNTg4X0NMT0NLYC4gTWFrZXMgc2Vuc2UsIHRoZSBEUDgzNjQwIGlzIGEgcG9wdWxhciBQSFkgZm9yIHRpbWVzdGFtcGluZy4gSSBuZWVkIHRvIG1ha2Ugc3VyZSB0aG9zZSBkZXBlbmRlbmNpZXMgYXJlIHByb3Blcmx5IGhhbmRsZWQuIFRoZSBjcnVjaWFsIG9uZXMgdG8gZG91YmxlLWNoZWNrLCB0aG91Z2gsIGFyZSBgTkVUV09SS19QSFlfVElNRVNUQU1QSU5HYCBhbmQgYFBUUF8xNTg4X0NMT0NLYCDigJMgYFBIWUxJQmAgaXMgcHJldHR5IHN0YW5kYXJkIGZvciBQSFkgZGV2aWNlIGRyaXZlcnMuIExldCYjMzk7cyBtYWtlIHN1cmUgdGhvc2UgdHdvIGFyZSBjb25maWd1cmVkIGNvcnJlY3RseSBhbmQgdGhhdCB0aGVyZSYjMzk7cyBubyBjb25mbGljdC4gSSYjMzk7bGwgbmVlZCB0byBkaWcgaW50byB0aGUgc2V0dGluZ3MgZm9yIHRob3NlIGZlYXR1cmVzLiBUaGlzIGlzIHdoZXJlIEkmIzM5O2xsIGJlIGxvb2tpbmcgZm9yIGNvbmZpZ3VyYXRpb24gb3B0aW9ucyBvciBhbnkgcG9zc2libGUgY29uZmxpY3RzLiBUaW1lIHRvIGNoZWNrIHRob3NlIGNvbmZpZ3VyYXRpb25zIGFuZCBtYWtlIHN1cmUgZXZlcnl0aGluZyBpcyBpbiBvcmRlci4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xOC8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjUgMDg6MjA8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7Y29uZmlnIE5FVFdPUktfUEhZX1RJTUVTVEFNUElORyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtuZXQvS2NvbmZpZz0xNTE9Y29uZmlnIE5FVF9QVFBfQ0xBU1NJRllcbi0tXG5uZXQvS2NvbmZpZy0xNTMtXG5uZXQvS2NvbmZpZzoxNTQ6Y29uZmlnIE5FVFdPUktfUEhZX1RJTUVTVEFNUElOR1xubmV0L0tjb25maWctMTU1LVx0Ym9vbCBcJiMzNDtUaW1lc3RhbXBpbmcgaW4gUEhZIGRldmljZXNcJiMzNDtcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xOS8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjUgMDg6MjA8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMzY3OTkKCQkJCQkJCW91dHB1dDogMzIKCQkJCQkJCXRob3VnaHRzOiAxNwoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+SGVyZSYjMzk7cyBhIHN1bW1hcnkgb2YgbXkgdGhvdWdodCBwcm9jZXNzLCBhcyByZXF1ZXN0ZWQ6CgoqKk5hdmlnYXRpbmcgdGhlIEtlcm5lbCBDb25maWd1cmF0aW9uIExhbmRzY2FwZSoqCgpPa2F5LCBzbyBJJiMzOTttIGRpZ2dpbmcgaW50byB0aGlzIGBuZXQvS2NvbmZpZ2AgZmlsZSBhZ2Fpbi4gSSBuZWVkIHRvIHJlZnJlc2ggbXkgbWVtb3J5IG9uIGEgc3BlY2lmaWMgY29uZmlndXJhdGlvbiBkZXRhaWwsIGFuZCBJIHNlZW0gdG8gcmVjYWxsIGl0JiMzOTtzIHNvbWV3aGVyZSBhcm91bmQgbGluZSAxNTQuIExldCBtZSBqdW1wIHJpZ2h0IHRoZXJlIGFuZCBzZWUgd2hhdCYjMzk7cyB3aGF0LiBJJiMzOTttIGdvaW5nIHRvIHF1aWNrbHkgcGFyc2UgdGhlIHJlbGV2YW50IGNvbnRleHQgYXJvdW5kIHRoYXQgbGluZSDigJMga2V5d29yZHMsIGRlcGVuZGVuY2llcywgYW5kIGFueSBhY2NvbXBhbnlpbmcgY29tbWVudHMg4oCTIHRvIHplcm8gaW4gb24gdGhlIHByZWNpc2UgY29uZmlndXJhdGlvbiBvcHRpb24gSSYjMzk7bSBpbnRlcmVzdGVkIGluIGFuZCBpdHMgcmVsYXRpb25zaGlwIHRvIHRoZSBzdXJyb3VuZGluZyBuZXR3b3JrIHN0YWNrLiBJJiMzOTttIGhvcGluZyBJIGNhbiBmaW5kIHRoZSBpbmZvcm1hdGlvbiBxdWlja2x5LCBhbmQgSSBhbSBmYWlybHkgY2VydGFpbiBJIGNhbi4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4yMC8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjUgMDg6MjA8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5yZWFkLWZpbGU8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0ZpbGUmIzM0OzogJiMzNDtuZXQvS2NvbmZpZyYjMzQ7LAogICYjMzQ7Rmlyc3RMaW5lJiMzNDs6IDE0NSwKICAmIzM0O0xpbmVDb3VudCYjMzQ7OiAyMAp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7Q29udGVudHMmIzM0OzogJiMzNDsgMTQ1Olx0XHRib29sIFwmIzM0O1NlY3VyaXR5IE1hcmtpbmdcJiMzNDtcbiAxNDY6XHRcdGhlbHBcbiAxNDc6XHRcdCAgVGhpcyBlbmFibGVzIHNlY3VyaXR5IG1hcmtpbmcgb2YgbmV0d29yayBwYWNrZXRzLCBzaW1pbGFyXG4gMTQ4Olx0XHQgIHRvIG5mbWFyaywgYnV0IGRlc2lnbmF0ZWQgZm9yIHNlY3VyaXR5IHB1cnBvc2VzLlxuIDE0OTpcdFx0ICBJZiB5b3UgYXJlIHVuc3VyZSBob3cgdG8gYW5zd2VyIHRoaXMgcXVlc3Rpb24sIGFuc3dlciBOLlxuIDE1MDpcdFxuIDE1MTpcdGNvbmZpZyBORVRfUFRQX0NMQVNTSUZZXG4gMTUyOlx0XHRkZWZfYm9vbCBuXG4gMTUzOlx0XG4gMTU0Olx0Y29uZmlnIE5FVFdPUktfUEhZX1RJTUVTVEFNUElOR1xuIDE1NTpcdFx0Ym9vbCBcJiMzNDtUaW1lc3RhbXBpbmcgaW4gUEhZIGRldmljZXNcJiMzNDtcbiAxNTY6XHRcdHNlbGVjdCBORVRfUFRQX0NMQVNTSUZZXG4gMTU3Olx0XHRoZWxwXG4gMTU4Olx0XHQgIFRoaXMgYWxsb3dzIHRpbWVzdGFtcGluZyBvZiBuZXR3b3JrIHBhY2tldHMgYnkgUEhZcyAob3JcbiAxNTk6XHRcdCAgb3RoZXIgTUlJIGJ1cyBzbm9vcGluZyBkZXZpY2VzKSB3aXRoIGhhcmR3YXJlIHRpbWVzdGFtcGluZ1xuIDE2MDpcdFx0ICBjYXBhYmlsaXRpZXMuIFRoaXMgb3B0aW9uIGFkZHMgc29tZSBvdmVyaGVhZCBpbiB0aGUgdHJhbnNtaXRcbiAxNjE6XHRcdCAgYW5kIHJlY2VpdmUgcGF0aHMuXG4gMTYyOlx0XG4gMTYzOlx0XHQgIElmIHlvdSBhcmUgdW5zdXJlIGhvdyB0byBhbnN3ZXIgdGhpcyBxdWVzdGlvbiwgYW5zd2VyIE4uXG4gMTY0Olx0XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MjEvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzI1IDA4OjIwPC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDM3MjgwCgkJCQkJCQlvdXRwdXQ6IDI0CgkJCQkJCQl0aG91Z2h0czogMTMKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPk9rYXksIGhlcmUmIzM5O3MgbXkgc3VtbWFyeSwgcHJlc2VudGVkIGFzIGEgc3RyZWFtIG9mIHRob3VnaHQ6CgoqKkNsb2NrLCBDbG9jaywgRXZlcnl3aGVyZS4uLkJ1dCBXaGF0IEFib3V0IFRoYXQgMTU4OCBUaGluZz8qKgoKQWxyaWdodCwgbGV0JiMzOTtzIHNlZS4gV2UmIzM5O3JlIGxvb2tpbmcgYXQgdGhpcyBhcmNoaXRlY3R1cmUsIHRoaXMgc3lzdGVt4oCmYW5kIEkmIzM5O20gdGhpbmtpbmcgYWJvdXQgdGltaW5nLCBhcyBhbHdheXMuIFdlJiMzOTt2ZSBnb3QgYWxsIHRoZXNlIGNsb2NrcywgYWxsIHRoZXNlIGRpZmZlcmVudCB3YXlzIG9mIGtlZXBpbmcgdHJhY2sgb2YgdGltZS4gQnV0IEkga2VlcCBjb21pbmcgYmFjayB0byB0aGlzIGxpdHRsZSBkZXRhaWwsIG5hZ2dpbmcgYXQgdGhlIGJhY2sgb2YgbXkgbWluZC4gV2hhdCBhYm91dCBgUFRQXzE1ODhfQ0xPQ0tgPyBXaGF0JiMzOTtzIHRoZSBjb250ZXh0IGhlcmU/IElzIGl0IGJlaW5nIHVzZWQ/IEhvdyBpcyBpdCBpbnRlZ3JhdGVkPyBJcyBpdCBhIGNyaXRpY2FsIHRpbWluZyBzb3VyY2UsIG9yIGEgYmFja3VwPyBBcmUgdGhlcmUgYW55IHBvdGVudGlhbCBpc3N1ZXMgd2l0aCBpdHMgc3luY2hyb25pemF0aW9uIGluIHRoaXMgcGFydGljdWxhciBzZXR1cD8gSSBuZWVkIHRvIGRyaWxsIGRvd24gb24gdGhhdC4gVGhhdCYjMzk7cyBhIGtleSBlbGVtZW50LCBhbmQgSSBkb24mIzM5O3Qgd2FudCB0byBnbG9zcyBvdmVyIGl0LiBUaGlzIGBQVFBfMTU4OF9DTE9DS2DigKZpdCYjMzk7cyBwb3RlbnRpYWxseSB0aGUgbGluY2hwaW4gb3IgYSB3ZWFrIHBvaW50LiBOZWVkIHRvIHVuZGVyc3RhbmQgaXRzIHJvbGUuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MjIvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzI1IDA4OjIwPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O2NvbmZpZyBQVFBfMTU4OF9DTE9DSyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtkcml2ZXJzL25ldC9ldGhlcm5ldC94c2NhbGUvS2NvbmZpZz0yMT1jb25maWcgSVhQNFhYX0VUSFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3hzY2FsZS9LY29uZmlnLTMwLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQveHNjYWxlL0tjb25maWc6MzE6Y29uZmlnIFBUUF8xNTg4X0NMT0NLX0lYUDQ2WFxuZHJpdmVycy9uZXQvZXRoZXJuZXQveHNjYWxlL0tjb25maWctMzItXHRib29sIFwmIzM0O0ludGVsIElYUDQ2eCBhcyBQVFAgY2xvY2tcJiMzNDtcbi0tXG5kcml2ZXJzL3B0cC9LY29uZmlnPTY9bWVudSBcJiMzNDtQVFAgY2xvY2sgc3VwcG9ydFwmIzM0O1xuZHJpdmVycy9wdHAvS2NvbmZpZy03LVxuZHJpdmVycy9wdHAvS2NvbmZpZzo4OmNvbmZpZyBQVFBfMTU4OF9DTE9DS1xuZHJpdmVycy9wdHAvS2NvbmZpZy05LVx0dHJpc3RhdGUgXCYjMzQ7UFRQIGNsb2NrIHN1cHBvcnRcJiMzNDtcbi0tXG5kcml2ZXJzL3B0cC9LY29uZmlnLTI5LVxuZHJpdmVycy9wdHAvS2NvbmZpZzozMDpjb25maWcgUFRQXzE1ODhfQ0xPQ0tfT1BUSU9OQUxcbmRyaXZlcnMvcHRwL0tjb25maWctMzEtXHR0cmlzdGF0ZVxuLS1cbmRyaXZlcnMvcHRwL0tjb25maWctNDEtXG5kcml2ZXJzL3B0cC9LY29uZmlnOjQyOmNvbmZpZyBQVFBfMTU4OF9DTE9DS19EVEVcbmRyaXZlcnMvcHRwL0tjb25maWctNDMtXHR0cmlzdGF0ZSBcJiMzNDtCcm9hZGNvbSBEVEUgYXMgUFRQIGNsb2NrXCYjMzQ7XG4tLVxuZHJpdmVycy9wdHAvS2NvbmZpZy01Ny1cbmRyaXZlcnMvcHRwL0tjb25maWc6NTg6Y29uZmlnIFBUUF8xNTg4X0NMT0NLX1FPUklRXG5kcml2ZXJzL3B0cC9LY29uZmlnLTU5LVx0dHJpc3RhdGUgXCYjMzQ7RnJlZXNjYWxlIFFvcklRIDE1ODggdGltZXIgYXMgUFRQIGNsb2NrXCYjMzQ7XG4tLVxuZHJpdmVycy9wdHAvS2NvbmZpZz03NT1jb25maWcgRFA4MzY0MF9QSFlcbi0tXG5kcml2ZXJzL3B0cC9LY29uZmlnLTkxLVxuZHJpdmVycy9wdHAvS2NvbmZpZzo5Mjpjb25maWcgUFRQXzE1ODhfQ0xPQ0tfSU5FU1xuZHJpdmVycy9wdHAvS2NvbmZpZy05My1cdHRyaXN0YXRlIFwmIzM0O1pIQVcgSW5FUyBQVFAgdGltZSBzdGFtcGluZyBJUCBjb3JlXCYjMzQ7XG4tLVxuZHJpdmVycy9wdHAvS2NvbmZpZy0xMDItXG5kcml2ZXJzL3B0cC9LY29uZmlnOjEwMzpjb25maWcgUFRQXzE1ODhfQ0xPQ0tfUENIXG5kcml2ZXJzL3B0cC9LY29uZmlnLTEwNC1cdHRyaXN0YXRlIFwmIzM0O0ludGVsIFBDSCBFRzIwVCBhcyBQVFAgY2xvY2tcJiMzNDtcbi0tXG5kcml2ZXJzL3B0cC9LY29uZmlnLTEyMS1cbmRyaXZlcnMvcHRwL0tjb25maWc6MTIyOmNvbmZpZyBQVFBfMTU4OF9DTE9DS19LVk1cbmRyaXZlcnMvcHRwL0tjb25maWctMTIzLVx0dHJpc3RhdGUgXCYjMzQ7S1ZNIHZpcnR1YWwgUFRQIGNsb2NrXCYjMzQ7XG4tLVxuZHJpdmVycy9wdHAvS2NvbmZpZy0xMzMtXG5kcml2ZXJzL3B0cC9LY29uZmlnOjEzNDpjb25maWcgUFRQXzE1ODhfQ0xPQ0tfVk1DTE9DS1xuZHJpdmVycy9wdHAvS2NvbmZpZy0xMzUtXHR0cmlzdGF0ZSBcJiMzNDtWaXJ0dWFsIG1hY2hpbmUgUFRQIGNsb2NrXCYjMzQ7XG4tLVxuZHJpdmVycy9wdHAvS2NvbmZpZy0xNTAtXG5kcml2ZXJzL3B0cC9LY29uZmlnOjE1MTpjb25maWcgUFRQXzE1ODhfQ0xPQ0tfSURUODJQMzNcbmRyaXZlcnMvcHRwL0tjb25maWctMTUyLVx0dHJpc3RhdGUgXCYjMzQ7SURUIDgyUDMzeHh4IFBUUCBjbG9ja1wmIzM0O1xuLS1cbmRyaXZlcnMvcHRwL0tjb25maWctMTYyLVxuZHJpdmVycy9wdHAvS2NvbmZpZzoxNjM6Y29uZmlnIFBUUF8xNTg4X0NMT0NLX0lEVENNXG5kcml2ZXJzL3B0cC9LY29uZmlnLTE2NC1cdHRyaXN0YXRlIFwmIzM0O0lEVCBDTE9DS01BVFJJWCBhcyBQVFAgY2xvY2tcJiMzNDtcbi0tXG5kcml2ZXJzL3B0cC9LY29uZmlnLTE3NC1cbmRyaXZlcnMvcHRwL0tjb25maWc6MTc1OmNvbmZpZyBQVFBfMTU4OF9DTE9DS19GQzNXXG5kcml2ZXJzL3B0cC9LY29uZmlnLTE3Ni1cdHRyaXN0YXRlIFwmIzM0O1JFTkVTQVMgRmVtdG9DbG9jazMgV2lyZWxlc3MgYXMgUFRQIGNsb2NrXCYjMzQ7XG4tLVxuZHJpdmVycy9wdHAvS2NvbmZpZy0xODYtXG5kcml2ZXJzL3B0cC9LY29uZmlnOjE4Nzpjb25maWcgUFRQXzE1ODhfQ0xPQ0tfTU9DS1xuZHJpdmVycy9wdHAvS2NvbmZpZy0xODgtXHR0cmlzdGF0ZSBcJiMzNDtNb2NrLXVwIFBUUCBjbG9ja1wmIzM0O1xuLS1cbmRyaXZlcnMvcHRwL0tjb25maWctMTk3LVxuZHJpdmVycy9wdHAvS2NvbmZpZzoxOTg6Y29uZmlnIFBUUF8xNTg4X0NMT0NLX1ZNV1xuZHJpdmVycy9wdHAvS2NvbmZpZy0xOTktXHR0cmlzdGF0ZSBcJiMzNDtWTXdhcmUgdmlydHVhbCBQVFAgY2xvY2tcJiMzNDtcbi0tXG5kcml2ZXJzL3B0cC9LY29uZmlnLTIwOS1cbmRyaXZlcnMvcHRwL0tjb25maWc6MjEwOmNvbmZpZyBQVFBfMTU4OF9DTE9DS19PQ1BcbmRyaXZlcnMvcHRwL0tjb25maWctMjExLVx0dHJpc3RhdGUgXCYjMzQ7T3BlbkNvbXB1dGUgVGltZUNhcmQgYXMgUFRQIGNsb2NrXCYjMzQ7XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MjMvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzI1IDA4OjIwPC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDM4NjMwCgkJCQkJCQlvdXRwdXQ6IDMzCgkJCQkJCQl0aG91Z2h0czogMTgKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPkhlcmUmIzM5O3MgbXkgdGFrZSBvbiB0aGUgYGRyaXZlcnMvcHRwL0tjb25maWdgIGZpbGUsIHNwZWNpZmljYWxseSBhcm91bmQgbGluZSA4LgoKKipFeGFtaW5pbmcgdGhlIFBUUCBEcml2ZXIgQ29uZmlndXJhdGlvbiBPcHRpb25zKioKCkFscmlnaHQsIGxldCYjMzk7cyBkaXZlIGludG8gdGhpcyBgZHJpdmVycy9wdHAvS2NvbmZpZ2AgZmlsZS4gSSBuZWVkIHRvIGdldCBhIGhhbmRsZSBvbiB0aGUgYXZhaWxhYmxlIGNvbmZpZ3VyYXRpb24gb3B0aW9ucyBmb3IgdGhlIFByZWNpc2lvbiBUaW1lIFByb3RvY29sIChQVFApIGRyaXZlcnMgaW4gdGhlIGtlcm5lbC4gSSYjMzk7bSBmb2N1c2luZyBvbiBhcm91bmQgbGluZSA4IGJlY2F1c2UgdGhhdCYjMzk7cyB1c3VhbGx5IHdoZXJlIHRoZSBtYWluIG1vZHVsZSBkZWNsYXJhdGlvbnMgb3IgYSByZWxldmFudCB0b3AtbGV2ZWwgcHJvbXB0IHRlbmRzIHRvIHJlc2lkZSwgb3IgYXQgbGVhc3QgdGhlIHN0YXJ0IG9mIGEgbG9naWNhbCBncm91cGluZyBvZiBvcHRpb25zLiBJIGV4cGVjdCB0byBzZWUgdGhlIGJhc2ljIHN0cnVjdHVyZSBvZiBob3cgdGhlc2UgZHJpdmVycyBhcmUgb3JnYW5pemVkLCBwZXJoYXBzIHdpdGggYSB0b3AtbGV2ZWwgYENPTkZJR19QVFBgIG9yIHNpbWlsYXIgc3ltYm9sIGRlZmluaW5nIHRoZSBwYXJlbnQgZnJhbWV3b3JrLCBhbmQgdGhlbiB0aGUgdmFyaW91cyBzcGVjaWZpYyBkcml2ZXIgb3B0aW9ucyBicmFuY2hpbmcgZnJvbSB0aGVyZS4gSSYjMzk7bSBsb29raW5nIGZvciB0aGUgZGVwZW5kZW5jaWVzLCBkZWZhdWx0cywgYW5kIGRlc2NyaXB0aW9ucy4gVGhpcyBpbml0aWFsIHNjYW4gd2lsbCBoZWxwIG1lIHVuZGVyc3RhbmQgdGhlIG92ZXJhbGwgZGVzaWduIGFuZCBzZWUgd2hhdCYjMzk7cyBhdmFpbGFibGUgYW5kIGlmIGl0IG1hdGNoZXMgd2l0aCB0aGUgY3VycmVudCBwcm9qZWN0IHJlcXVpcmVtZW50cy4gSSYjMzk7bSByZWFkeSB0byBkaWcgaW4gYW5kIGRlY2lwaGVyIHdoYXQgSSBmaW5kIQoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjI0LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yNSAwODoyMDwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPnJlYWQtZmlsZTwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RmlsZSYjMzQ7OiAmIzM0O2RyaXZlcnMvcHRwL0tjb25maWcmIzM0OywKICAmIzM0O0ZpcnN0TGluZSYjMzQ7OiAxLAogICYjMzQ7TGluZUNvdW50JiMzNDs6IDIwCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtDb250ZW50cyYjMzQ7OiAmIzM0OyAgIDE6XHQjIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wLW9ubHlcbiAgIDI6XHQjXG4gICAzOlx0IyBQVFAgY2xvY2sgc3VwcG9ydCBjb25maWd1cmF0aW9uXG4gICA0Olx0I1xuICAgNTpcdFxuICAgNjpcdG1lbnUgXCYjMzQ7UFRQIGNsb2NrIHN1cHBvcnRcJiMzNDtcbiAgIDc6XHRcbiAgIDg6XHRjb25maWcgUFRQXzE1ODhfQ0xPQ0tcbiAgIDk6XHRcdHRyaXN0YXRlIFwmIzM0O1BUUCBjbG9jayBzdXBwb3J0XCYjMzQ7XG4gIDEwOlx0XHRkZXBlbmRzIG9uIE5FVCBcdTAwMjZcdTAwMjYgUE9TSVhfVElNRVJTXG4gIDExOlx0XHRkZWZhdWx0IEVUSEVSTkVUXG4gIDEyOlx0XHRzZWxlY3QgUFBTXG4gIDEzOlx0XHRzZWxlY3QgTkVUX1BUUF9DTEFTU0lGWVxuICAxNDpcdFx0aGVscFxuICAxNTpcdFx0ICBUaGUgSUVFRSAxNTg4IHN0YW5kYXJkIGRlZmluZXMgYSBtZXRob2QgdG8gcHJlY2lzZWx5XG4gIDE2Olx0XHQgIHN5bmNocm9uaXplIGRpc3RyaWJ1dGVkIGNsb2NrcyBvdmVyIEV0aGVybmV0IG5ldHdvcmtzLiBUaGVcbiAgMTc6XHRcdCAgc3RhbmRhcmQgZGVmaW5lcyBhIFByZWNpc2lvbiBUaW1lIFByb3RvY29sIChQVFApLCB3aGljaCBjYW5cbiAgMTg6XHRcdCAgYmUgdXNlZCB0byBhY2hpZXZlIHN5bmNocm9uaXphdGlvbiB3aXRoaW4gYSBmZXcgZG96ZW5cbiAgMTk6XHRcdCAgbWljcm9zZWNvbmRzLiBJbiBhZGRpdGlvbiwgd2l0aCB0aGUgaGVscCBvZiBzcGVjaWFsIGhhcmR3YXJlXG4gIDIwOlx0XHQgIHRpbWUgc3RhbXBpbmcgdW5pdHMsIGl0IGNhbiBiZSBwb3NzaWJsZSB0byBhY2hpZXZlXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MjUvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzI1IDA4OjIwPC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDM5MTY3CgkJCQkJCQlvdXRwdXQ6IDE3CgkJCQkJCQl0aG91Z2h0czogNDIKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPk9rYXksIGhlcmUmIzM5O3MgbXkgaW50ZXJwcmV0YXRpb24gb2YgdGhvc2UgdGhvdWdodHMsIHN1bW1hcml6ZWQgZnJvbSBteSBwZXJzcGVjdGl2ZSBhcyBhIGhpZ2hseSBrbm93bGVkZ2VhYmxlIHByb2Zlc3Npb25hbCBpbiB0aGUgZmllbGQ6CgoqKkRlcGVuZGVuY2llcyBhbmQgTG9jYXRpb25zOiBBIFF1aWNrIE1lbnRhbCBJbnZlbnRvcnkqKgoKUmlnaHQsIHNvIEkmIzM5O20gdGhpbmtpbmcgYWJvdXQgdGhlIHN5c3RlbSBkZXBlbmRlbmNpZXMuIFRoZSBgUFRQXzE1ODhfQ0xPQ0tgIGZlYXR1cmUsIHRoYXQmIzM5O3MgZGVmaW5pdGVseSBjb250aW5nZW50IG9uIHRoZSBuZXR3b3JraW5nIHN0YWNrLCBgTkVUYCwgYW5kIHRoZSBQT1NJWCB0aW1lcnMgc3VwcG9ydCwgYFBPU0lYX1RJTUVSU2AuIE1ha2VzIHNlbnNlLCBvZiBjb3Vyc2Ug4oCTIGl0IG5lZWRzIG5ldHdvcmsgdGltZSBzeW5jaHJvbml6YXRpb24gYW5kIGEgdGltaW5nIG1lY2hhbmlzbSB0byB3b3JrLiBJdCYjMzk7cyBhbG1vc3QgYXhpb21hdGljLiBBbmQgSSBuZWVkIHRvIHJlbWVtYmVyIHdoZXJlIHRvIGxvY2F0ZSB0aGUgUEhZIGRyaXZlciBsaWJyYXJ5IGNvbmZpZ3VyYXRpb24sIGl0JiMzOTtzIGBQSFlMSUJgIGFuZCB0aGF0IGNvbmZpZ3VyYXRpb24gaXMgaW4gYGRyaXZlcnMvbmV0L3BoeS9LY29uZmlnYC4gVGhlc2UgYXJlIHRoaW5ncyBJIG5lZWQgdG8gYWNjZXNzIGZvciBmdXJ0aGVyIGludmVzdGlnYXRpb24uIEl0JiMzOTtzIGFsbCBhYm91dCByZW1lbWJlcmluZyB3aGVyZSB0aGluZ3MgYXJlLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjI2LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yNSAwODoyMDwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtjb25maWcgUEhZTElCJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3BoeS9LY29uZmlnPTY9Y29uZmlnIFBIWUxJTktcbi0tXG5kcml2ZXJzL25ldC9waHkvS2NvbmZpZy0xNC1cbmRyaXZlcnMvbmV0L3BoeS9LY29uZmlnOjE1Om1lbnVjb25maWcgUEhZTElCXG5kcml2ZXJzL25ldC9waHkvS2NvbmZpZy0xNi1cdHRyaXN0YXRlIFwmIzM0O1BIWSBEZXZpY2Ugc3VwcG9ydCBhbmQgaW5mcmFzdHJ1Y3R1cmVcJiMzNDtcbi0tXG5kcml2ZXJzL25ldC9waHkvS2NvbmZpZz00Nj1jb25maWcgT1BFTl9BTExJQU5DRV9IRUxQRVJTXG4tLVxuZHJpdmVycy9uZXQvcGh5L0tjb25maWctNDgtXG5kcml2ZXJzL25ldC9waHkvS2NvbmZpZzo0OTpjb25maWcgUEhZTElCX0xFRFNcbmRyaXZlcnMvbmV0L3BoeS9LY29uZmlnLTUwLVx0ZGVmX2Jvb2wgT0ZcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4yNy8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjUgMDg6MjA8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMzk1NTYKCQkJCQkJCW91dHB1dDogMzUKCQkJCQkJCXRob3VnaHRzOiAyMAoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+SGVyZSYjMzk7cyBhIHN1bW1hcnkgb2YgbXkgdGhvdWdodCBwcm9jZXNzLCBhcyByZXF1ZXN0ZWQ6CgoqKk5hdmlnYXRpbmcgdGhlIFBIWSBDb25maWd1cmF0aW9uIFNwYWNlKioKCk9rYXksIGxldCYjMzk7cyBkaXZlIGludG8gdGhlIGtlcm5lbCBzb3VyY2UuIEkgbmVlZCB0byB1bmRlcnN0YW5kIGhvdyB0aGUgUEhZIGNvbmZpZ3VyYXRpb24gaXMgaGFuZGxlZCB3aXRoaW4gdGhlIG5ldHdvcmtpbmcgc3Vic3lzdGVtLCBzbyBJJiMzOTtsbCBzdGFydCB3aXRoIHRoZSBsaWtlbHkgY2FuZGlkYXRlOiBgZHJpdmVycy9uZXQvcGh5L0tjb25maWdgLiBTcGVjaWZpY2FsbHksIEkgd2FudCB0byB6ZXJvIGluIG9uIHRoZSByZWxldmFudCBzZWN0aW9ucyBvZiB0aGUgS2NvbmZpZyBmaWxlLCBsaWtlbHkgYXJvdW5kIGxpbmUgMTUsIHRvIGdhaW4gaW5zaWdodCBpbnRvIHRoZSBkZWZhdWx0IG9wdGlvbnMsIGFueSBkZXBlbmRlbmNpZXMsIGFuZCBob3BlZnVsbHkgZ2V0IGEgZmVlbCBmb3IgdGhlIG92ZXJhbGwgc3RydWN0dXJlIG9mIHRoZSBQSFkgZHJpdmVyIGNvbmZpZ3VyYXRpb24uIFRoaXMgZmlsZSBpcyB0aGUgc3RhcnRpbmcgcG9pbnQgZm9yIHVuZGVyc3RhbmRpbmcgd2hhdCBQSFkgZHJpdmVycyBhcmUgYnVpbHQtaW4sIG1vZHVsYXJpemVkLCBhbmQgY29uZmlndXJhYmxlLCBhbmQgd2hhdCBmYWN0b3JzIGNvbnRyb2wgdGhvc2UgYnVpbGQgZGVjaXNpb25zLiBLbm93aW5nIHRoZSBgS2NvbmZpZ2Agc3RydWN0dXJlIGhlbHBzIG1lIHF1aWNrbHkgYXNzZXNzIHRoZSBzY29wZSBvZiB0aGUgUEhZIHN1cHBvcnQgYW5kIGlkZW50aWZ5IGtleSB2YXJpYWJsZXMgSSBuZWVkIHRvIHVuZGVyc3RhbmQuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MjgvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzI1IDA4OjIxPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+cmVhZC1maWxlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtGaWxlJiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvcGh5L0tjb25maWcmIzM0OywKICAmIzM0O0ZpcnN0TGluZSYjMzQ7OiAxMCwKICAmIzM0O0xpbmVDb3VudCYjMzQ7OiAyMAp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7Q29udGVudHMmIzM0OzogJiMzNDsgIDEwOlx0XHRoZWxwXG4gIDExOlx0XHQgIFBIWWxpbmsgbW9kZWxzIHRoZSBsaW5rIGJldHdlZW4gdGhlIFBIWSBhbmQgTUFDLCBhbGxvd2luZyBmaXhlZFxuICAxMjpcdFx0ICBjb25maWd1cmF0aW9uIGxpbmtzLCBQSFlzLCBhbmQgU2VyZGVzIGxpbmtzIHdpdGggTUFDIGxldmVsXG4gIDEzOlx0XHQgIGF1dG9uZWdvdGlhdGlvbiBtb2Rlcy5cbiAgMTQ6XHRcbiAgMTU6XHRtZW51Y29uZmlnIFBIWUxJQlxuICAxNjpcdFx0dHJpc3RhdGUgXCYjMzQ7UEhZIERldmljZSBzdXBwb3J0IGFuZCBpbmZyYXN0cnVjdHVyZVwmIzM0O1xuICAxNzpcdFx0aGVscFxuICAxODpcdFx0ICBFdGhlcm5ldCBjb250cm9sbGVycyBhcmUgdXN1YWxseSBhdHRhY2hlZCB0byBQSFlcbiAgMTk6XHRcdCAgZGV2aWNlcy4gIFRoaXMgb3B0aW9uIHByb3ZpZGVzIGluZnJhc3RydWN0dXJlIGZvclxuICAyMDpcdFx0ICBtYW5hZ2luZyBQSFkgZGV2aWNlcy5cbiAgMjE6XHRcbiAgMjI6XHRpZiBQSFlMSUJcbiAgMjM6XHRcbiAgMjQ6XHRjb25maWcgU1dQSFlcbiAgMjU6XHRcdGJvb2xcbiAgMjY6XHRcbiAgMjc6XHRjb25maWcgUEhZX1BBQ0tBR0VcbiAgMjg6XHRcdCB0cmlzdGF0ZVxuICAyOTpcdFxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjI5LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yNSAwODoyMTwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA0MDAwNwoJCQkJCQkJb3V0cHV0OiAyMzkKCQkJCQkJCXRob3VnaHRzOiAxNDgzCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKkFuYWx5c2lzIG9mIERQODM2NDAgUEhZIERyaXZlciBQYXRjaCoqCgpPa2F5LCBsZXQmIzM5O3MgYnJlYWsgdGhpcyBkb3duLiBGaXJzdCwgcmVnYXJkaW5nIHRoZSBjb25maWd1cmF0aW9uLCBgUEhZTElCYCBpdHNlbGYgaGFzIG5vIHNwZWNpYWwgZGVwZW5kZW5jaWVzLCBzbyB3ZSBjYW4gY29uc2lkZXIgdGhhdCBhIGJhc2UgbGV2ZWwuIFRoZW4sIHdlIG5lZWQgdG8gZW5hYmxlIGBEUDgzNjQwX1BIWWAsIGBORVRXT1JLX1BIWV9USU1FU1RBTVBJTkdgLCBgUFRQXzE1ODhfQ0xPQ0tgLCBhbmQgYFBIWUxJQmAgdG8gc3VwcG9ydCB0aGUgY2hhbmdlcy4gVGhlIGRlcGVuZGVuY2llcyBvZiBgRFA4MzY0MF9QSFlgIG9uIHRoZSBvdGhlcnMgbWVhbiB0aGF0IGlzIHRoZSBiZXN0IG9yZGVyLiBObyBvdGhlciBkZXBlbmRlbmNpZXMgYXJlIHJlcXVpcmVkLiBgTkVUV09SS19QSFlfVElNRVNUQU1QSU5HYCBkZXBlbmRzIG9uIG5vdGhpbmcuIGBQVFBfMTU4OF9DTE9DS2AgZGVwZW5kcyBvbiBgTkVUYCBhbmQgYFBPU0lYX1RJTUVSU2AuIGBQSFlMSUJgIGRlcGVuZHMgb24gbm90aGluZy4gU28gdGhlIGNvcmUgYEVuYWJsZUNvbmZpZ3NgIHNob3VsZCBiZTogYERQODM2NDBfUEhZYCwgYE5FVFdPUktfUEhZX1RJTUVTVEFNUElOR2AsIGBQVFBfMTU4OF9DTE9DS2AsIGBQSFlMSUJgLgoKTm93LCBmb2N1c2luZyBvbiB0aGUgY29kZSBpdHNlbGYsIHRoaXMgaXMgYWxsIGFib3V0IGBkcDgzNjQwYC4gSSBuZWVkIHRvIGlkZW50aWZ5IHRoZSBmdW5jdGlvbnMgaW1wYWN0ZWQuIExvb2tpbmcgdGhyb3VnaCB0aGUgY29kZSwgSSBzZWU6IGBkcDgzNjQwX2Nsb2NrX2luaXRgLCBgZHA4MzY0MF9jbG9ja19nZXRfYnVzYCwgYGRwODM2NDBfY2xvY2tfcHV0YCwgYGRwODM2NDBfY2xvY2tfcmVsZWFzZWAsIGBkcDgzNjQwX3Byb2JlYCwgYGRwODM2NDBfcmVtb3ZlYC4KCmBkcDgzNjQwX2Nsb2NrX3JlbGVhc2VgIGlzIHRoZSBrZXkgbmV3IGZ1bmN0aW9uLCBldmVuIHRob3VnaCBpdCYjMzk7cyBzdGF0aWMsIGJlY2F1c2UgaXQmIzM5O3MgcGFzc2VkIGFzIGEgY2FsbGJhY2sgdG8gYGtyZWZfcHV0X211dGV4YCwgd2hpY2ggZW5zdXJlcyBpdCBoYXMgYSBkaXN0aW5jdCBzeW1ib2wgYWRkcmVzcy4gQWxzbywgYGRwODM2NDBfY2xvY2tfZ2V0X2J1c2AgaXMgY2FsbGVkIGZyb20gYGRwODM2NDBfcHJvYmVgLiBgZHA4MzY0MF9jbG9ja19wdXRgIGlzIGNhbGxlZCBmcm9tIGBkcDgzNjQwX3Byb2JlYCBhbmQgYGRwODM2NDBfcmVtb3ZlYC4gV2Ugc2hvdWxkIGFsc28gY29uc2lkZXIgYGRwODM2NDBfY2xvY2tfbG9ja2AgYW5kIGBkcDgzNjQwX2Nsb2NrX3VubG9ja2AgYmVjYXVzZSB0aGV5IGFyZSBtb2RpZmllZC4KCkNvbnNpZGVyaW5nIGlubGluaW5nLCBgZHA4MzY0MF9jbG9ja19yZWxlYXNlYCBpcyBhIGZ1bmN0aW9uIHBvaW50ZXIgYW5kIGNhbm5vdCBiZSBpbmxpbmVkLiBgZHA4MzY0MF9wcm9iZWAgYW5kIGBkcDgzNjQwX3JlbW92ZWAgYXJlIGFsc28gZnVuY3Rpb24gcG9pbnRlcnMsIHNvIHRoZXkgY2FuJiMzOTt0IGJlIGlubGluZWQgZWl0aGVyLiBgZHA4MzY0MF9jbG9ja19nZXRfYnVzYCBpcyBvbmx5IGNhbGxlZCBvbmNlIHdpdGhpbiBgZHA4MzY0MF9wcm9iZWAsIHNvIGl0ICptaWdodCogYmUgaW5saW5lZC4gYGRwODM2NDBfY2xvY2tfcHV0YCBpcyBzdGF0aWMsIHNvIGl0ICptaWdodCogYmUgaW5saW5lZC4KClRoZXJlZm9yZSwgdGhlIGtleSBmdW5jdGlvbnMgdG8gZm9jdXMgb24gYXJlOiBgZHA4MzY0MF9wcm9iZWAsIGBkcDgzNjQwX3JlbW92ZWAsIGFuZCBgZHA4MzY0MF9jbG9ja19yZWxlYXNlYC4gVGhlc2UgcmVwcmVzZW50IHRoZSBtYWluIGFyZWFzIG9mIGxvZ2ljYWwgY2hhbmdlIHdpdGhpbiB0aGlzIHBhdGNoLgoKUmV2aWV3aW5nIHRoZSBwYXRjaCBjb25maXJtcyB0aGF0IGBkcDgzNjQwX2Nsb2NrX3JlbGVhc2VgIGlzIGluZGVlZCBhIG5ldyBmdW5jdGlvbiwgYW5kIGl0JiMzOTtzIGVzc2VudGlhbCBiZWNhdXNlIGl0IGlzIHBhc3NlZCBhcyBhIGZ1bmN0aW9uIHBvaW50ZXIgYW5kIG5vdyBtYW5hZ2VzIHRoZSBga3JlZmAgbGlmZXRpbWUuIGBkcDgzNjQwX3Byb2JlYCBhbmQgYGRwODM2NDBfcmVtb3ZlYCBhcmUgdGhlIG1haW4gZW50cnkgcG9pbnRzLCBzbyB0aG9zZSBhcmUga2V5LgoKU28sIHRoZSBkZWZpbml0aXZlIGxpc3QgaXM6CgoqICAgYEZvY3VzU3ltYm9sc2A6IGBkcDgzNjQwX3Byb2JlYCwgYGRwODM2NDBfcmVtb3ZlYCwgYGRwODM2NDBfY2xvY2tfcmVsZWFzZWAKKiAgIGBFbmFibGVDb25maWdzYDogYERQODM2NDBfUEhZYCwgYE5FVFdPUktfUEhZX1RJTUVTVEFNUElOR2AsIGBQVFBfMTU4OF9DTE9DS2AsIGBQSFlMSUJgCgpNeSByZWFzb25pbmcgaXMgdGhpczogVGhlIHBhdGNoIGludHJvZHVjZXMgYSBga3JlZmAgdG8gbWFuYWdlIHRoZSBsaWZldGltZSBvZiB0aGUgYHN0cnVjdCBkcDgzNjQwX2Nsb2NrYCB3aXRoaW4gdGhlIERQODM2NDAgUEhZIGRyaXZlciwgcmVwbGFjaW5nIG1hbnVhbCB0ZWFyZG93biBpbiBgZHA4MzY0MF9yZW1vdmVgLiBUaGlzIGlzIGludGVuZGVkIHRvIGZpeCBwb3RlbnRpYWwgdXNlLWFmdGVyLWZyZWUgaXNzdWVzIGFuZCBtZW1vcnkgbGVha3MuIFRoZSBQSFkgZHJpdmVyIGNhbiBiZSBwcm9iZWQgYW5kIHJlbW92ZWQgaW4gYSB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudCB3aXRoIGEgZW11bGF0ZWQgTURJTyBidXMgbGlrZSBzbXNjOTV4eCBvciBhc2l4LCB0aGF0IGNhbiByZXR1cm4gdGhlIERQODM2NDAgUEhZIElEICgweDIwMDA1Y2UxKSB3aGVuIGRvaW5nIE1ESU8gcmVhZCBvcGVyYXRpb25zLiBUaGVyZWZvcmUsIHRoaXMgY29kZSBpcyByZWFjaGFibGUgYW5kIGRlc2VydmVzIGZ1enppbmcuCgpOb3csIGxldCYjMzk7cyBjYWxsIGBzZXQtcmVzdWx0c2AuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MzAvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzI1IDA4OjIxPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+c2V0LXJlc3VsdHM8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogWwogICAgJiMzNDtEUDgzNjQwX1BIWSYjMzQ7LAogICAgJiMzNDtORVRXT1JLX1BIWV9USU1FU1RBTVBJTkcmIzM0OywKICAgICYjMzQ7UFRQXzE1ODhfQ0xPQ0smIzM0OywKICAgICYjMzQ7UEhZTElCJiMzNDsKICBdLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFsKICAgICYjMzQ7ZHA4MzY0MF9wcm9iZSYjMzQ7LAogICAgJiMzNDtkcDgzNjQwX3JlbW92ZSYjMzQ7LAogICAgJiMzNDtkcDgzNjQwX2Nsb2NrX3JlbGVhc2UmIzM0OwogIF0sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggaW50cm9kdWNlcyBhIGtyZWYgdG8gbWFuYWdlIHRoZSBsaWZldGltZSBvZiBgc3RydWN0IGRwODM2NDBfY2xvY2tgIGluIHRoZSBEUDgzNjQwIFBIWSBkcml2ZXIsIHJlcGxhY2luZyBtYW51YWwgdGVhcmRvd24gbG9naWMgaW4gYGRwODM2NDBfcmVtb3ZlYC4gVGhpcyBmaXhlcyBwb3RlbnRpYWwgdXNlLWFmdGVyLWZyZWUgb3IgbWVtb3J5IGxlYWsgaXNzdWVzLiBUaGUgUEhZIGRyaXZlciBjYW4gYmUgcHJvYmVkIGFuZCByZW1vdmVkIGluIGEgdmlydHVhbGl6ZWQgZW52aXJvbm1lbnQgYnkgZW11bGF0aW5nIGEgVVNCIG5ldHdvcmsgYWRhcHRlciAobGlrZSBzbXNjOTV4eCBvciBhc2l4KSB0aGF0IHJlZ2lzdGVycyBhbiBNRElPIGJ1cyBhbmQgcmV0dXJucyB0aGUgRFA4MzY0MCBQSFkgSUQgKDB4MjAwMDVjZTEpIGR1cmluZyBNRElPIHJlYWQgb3BlcmF0aW9ucy4gVGhlcmVmb3JlLCB0aGlzIGNvZGUgaXMgcmVhY2hhYmxlIGFuZCB3b3J0aCBmdXp6aW5nLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IHRydWUKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogWwogICAgJiMzNDtEUDgzNjQwX1BIWSYjMzQ7LAogICAgJiMzNDtORVRXT1JLX1BIWV9USU1FU1RBTVBJTkcmIzM0OywKICAgICYjMzQ7UFRQXzE1ODhfQ0xPQ0smIzM0OywKICAgICYjMzQ7UEhZTElCJiMzNDsKICBdLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFsKICAgICYjMzQ7ZHA4MzY0MF9wcm9iZSYjMzQ7LAogICAgJiMzNDtkcDgzNjQwX3JlbW92ZSYjMzQ7LAogICAgJiMzNDtkcDgzNjQwX2Nsb2NrX3JlbGVhc2UmIzM0OwogIF0sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggaW50cm9kdWNlcyBhIGtyZWYgdG8gbWFuYWdlIHRoZSBsaWZldGltZSBvZiBgc3RydWN0IGRwODM2NDBfY2xvY2tgIGluIHRoZSBEUDgzNjQwIFBIWSBkcml2ZXIsIHJlcGxhY2luZyBtYW51YWwgdGVhcmRvd24gbG9naWMgaW4gYGRwODM2NDBfcmVtb3ZlYC4gVGhpcyBmaXhlcyBwb3RlbnRpYWwgdXNlLWFmdGVyLWZyZWUgb3IgbWVtb3J5IGxlYWsgaXNzdWVzLiBUaGUgUEhZIGRyaXZlciBjYW4gYmUgcHJvYmVkIGFuZCByZW1vdmVkIGluIGEgdmlydHVhbGl6ZWQgZW52aXJvbm1lbnQgYnkgZW11bGF0aW5nIGEgVVNCIG5ldHdvcmsgYWRhcHRlciAobGlrZSBzbXNjOTV4eCBvciBhc2l4KSB0aGF0IHJlZ2lzdGVycyBhbiBNRElPIGJ1cyBhbmQgcmV0dXJucyB0aGUgRFA4MzY0MCBQSFkgSUQgKDB4MjAwMDVjZTEpIGR1cmluZyBNRElPIHJlYWQgb3BlcmF0aW9ucy4gVGhlcmVmb3JlLCB0aGlzIGNvZGUgaXMgcmVhY2hhYmxlIGFuZCB3b3J0aCBmdXp6aW5nLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IHRydWUKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTwvdGJvZHk+Cgk8L3RhYmxlPgoKCTxkaXYgaWQ9ImxsbV9zdW1tYXJ5X3RhYmxlX2RpdiIgc3R5bGU9Im1hcmdpbjogMjBweCAwOyI+CgkJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQkJPGNhcHRpb24+TExNIENhbGxzIFN1bW1hcnk6PC9jYXB0aW9uPgoJCQk8dGhlYWQ+CgkJCQk8dHI+CgkJCQkJPHRoPlRvdGFsIENhbGxzPC90aD4KCQkJCQk8dGg+VG90YWwgVG9rZW5zPC90aD4KCQkJCQk8dGg+QXZnIFRva2VuczwvdGg+CgkJCQkJPHRoPlRvdGFsIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQkJPHRoPkF2ZyBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJPC90cj4KCQkJPC90aGVhZD4KCQkJPHRib2R5IGlkPSJsbG1fc3VtbWFyeV9zdGF0c19ib2R5Ij48L3Rib2R5PgoJCTwvdGFibGU+Cgk8L2Rpdj4KCgk8ZGl2IGlkPSJ0b29sX3N1bW1hcnlfdGFibGVfZGl2IiBzdHlsZT0ibWFyZ2luOiAyMHB4IDA7Ij4KCQk8dGFibGUgY2xhc3M9Imxpc3RfdGFibGUiPgoJCQk8Y2FwdGlvbj5Ub29sIENhbGxzIFN1bW1hcnk6PC9jYXB0aW9uPgoJCQk8dGhlYWQ+CgkJCQk8dHI+CgkJCQkJPHRoPlRvdGFsIENhbGxzPC90aD4KCQkJCQk8dGg+VG90YWwgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCQk8dGg+QXZnIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQk8L3RyPgoJCQk8L3RoZWFkPgoJCQk8dGJvZHkgaWQ9InRvb2xfc3VtbWFyeV9zdGF0c19ib2R5Ij48L3Rib2R5PgoJCTwvdGFibGU+Cgk8L2Rpdj4KCgk8ZGl2IGlkPSJkdXJhdGlvbl9jaGFydF9kaXYiIHN0eWxlPSJ3aWR0aDogMTAwJTsgbWFyZ2luOiAyMHB4IDA7IGJvcmRlcjogMXB4OyI+PC9kaXY+Cgk8ZGl2IGlkPSJ0b2tlbl9jaGFydF9kaXYiIHN0eWxlPSJ3aWR0aDogMTAwJTsgbWFyZ2luOiAyMHB4IDA7IGJvcmRlcjogMXB4OyI+PC9kaXY+CgoJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iaHR0cHM6Ly93d3cuZ29vZ2xlLmNvbS9qc2FwaSI+PC9zY3JpcHQ+Cgk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+CgkJZ29vZ2xlLmxvYWQoInZpc3VhbGl6YXRpb24iLCAiMSIsIHtwYWNrYWdlczpbImNvcmVjaGFydCJdfSk7CgkJZ29vZ2xlLnNldE9uTG9hZENhbGxiYWNrKGRyYXdDaGFydHMpOwoKCQlmdW5jdGlvbiBkcmF3Q2hhcnRzKCkgewoJCQljb25zdCByYXdEYXRhID0gW3siU3RhcnRlZCI6IjIwMjYtMDctMjVUMDg6MTk6NDYuNDcwNjI1NjFaIiwiU2VxIjowLCJOZXN0aW5nIjowLCJUeXBlIjoiZmxvdyIsIk5hbWUiOiJwYXRjaC10cmlhZ2UiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo5MjUwNzYzNjg4OSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXG4gICAgXCJEUDgzNjQwX1BIWVwiLFxuICAgIFwiTkVUV09SS19QSFlfVElNRVNUQU1QSU5HXCIsXG4gICAgXCJQVFBfMTU4OF9DTE9DS1wiLFxuICAgIFwiUEhZTElCXCJcbiAgXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW1xuICAgIFwiZHA4MzY0MF9wcm9iZVwiLFxuICAgIFwiZHA4MzY0MF9yZW1vdmVcIixcbiAgICBcImRwODM2NDBfY2xvY2tfcmVsZWFzZVwiXG4gIF0sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIGludHJvZHVjZXMgYSBrcmVmIHRvIG1hbmFnZSB0aGUgbGlmZXRpbWUgb2YgYHN0cnVjdCBkcDgzNjQwX2Nsb2NrYCBpbiB0aGUgRFA4MzY0MCBQSFkgZHJpdmVyLCByZXBsYWNpbmcgbWFudWFsIHRlYXJkb3duIGxvZ2ljIGluIGBkcDgzNjQwX3JlbW92ZWAuIFRoaXMgZml4ZXMgcG90ZW50aWFsIHVzZS1hZnRlci1mcmVlIG9yIG1lbW9yeSBsZWFrIGlzc3Vlcy4gVGhlIFBIWSBkcml2ZXIgY2FuIGJlIHByb2JlZCBhbmQgcmVtb3ZlZCBpbiBhIHZpcnR1YWxpemVkIGVudmlyb25tZW50IGJ5IGVtdWxhdGluZyBhIFVTQiBuZXR3b3JrIGFkYXB0ZXIgKGxpa2Ugc21zYzk1eHggb3IgYXNpeCkgdGhhdCByZWdpc3RlcnMgYW4gTURJTyBidXMgYW5kIHJldHVybnMgdGhlIERQODM2NDAgUEhZIElEICgweDIwMDA1Y2UxKSBkdXJpbmcgTURJTyByZWFkIG9wZXJhdGlvbnMuIFRoZXJlZm9yZSwgdGhpcyBjb2RlIGlzIHJlYWNoYWJsZSBhbmQgd29ydGggZnV6emluZy5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogdHJ1ZVxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMjVUMDg6MTk6NDYuNDcwNjMyNjJaIiwiU2VxIjoxLCJOZXN0aW5nIjoxLCJUeXBlIjoiYWN0aW9uIiwiTmFtZSI6InJlYWQtcGF0Y2gtZGlmZiIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjYyNDAxODI4NiwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiUGF0Y2hEaWZmXCI6IFwiY29tbWl0IDEzY2YwMjUyMmUyM2E2YmE0NGY1ZDk2NDBjZmQ5YmRkZTM0YThhMThcXG5BdXRob3I6IHN5ei1jbHVzdGVyIFxcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVxcdTAwM2VcXG5EYXRlOiAgIFNhdCBKdWwgMjUgMDg6MTk6NDQgMjAyNiArMDAwMFxcblxcbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcXG5cXG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYyBiL2RyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmNcXG5pbmRleCA5ODQ3MmFiZGQzOTIwOC4uMTA1ODdkYjk1ZmIwYjcgMTAwNjQ0XFxuLS0tIGEvZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuY1xcbisrKyBiL2RyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmNcXG5AQCAtMTAsNiArMTAsNyBAQFxcbiAjaW5jbHVkZSBcXHUwMDNjbGludXgvY3JjMzIuaFxcdTAwM2VcXG4gI2luY2x1ZGUgXFx1MDAzY2xpbnV4L2V0aHRvb2wuaFxcdTAwM2VcXG4gI2luY2x1ZGUgXFx1MDAzY2xpbnV4L2tlcm5lbC5oXFx1MDAzZVxcbisjaW5jbHVkZSBcXHUwMDNjbGludXgva3JlZi5oXFx1MDAzZVxcbiAjaW5jbHVkZSBcXHUwMDNjbGludXgvbGlzdC5oXFx1MDAzZVxcbiAjaW5jbHVkZSBcXHUwMDNjbGludXgvbWlpLmhcXHUwMDNlXFxuICNpbmNsdWRlIFxcdTAwM2NsaW51eC9tb2R1bGUuaFxcdTAwM2VcXG5AQCAtMTMwLDYgKzEzMSw4IEBAIHN0cnVjdCBkcDgzNjQwX3ByaXZhdGUge1xcbiBzdHJ1Y3QgZHA4MzY0MF9jbG9jayB7XFxuIFxcdC8qIGtlZXBzIHRoZSBpbnN0YW5jZSBpbiB0aGUgJ3BoeXRlcl9jbG9ja3MnIGxpc3QgKi9cXG4gXFx0c3RydWN0IGxpc3RfaGVhZCBsaXN0O1xcbitcXHQvKiB0cmFja3MgYXR0YWNoZWQgb3IgcHJvYmluZyBQSFlzICovXFxuK1xcdHN0cnVjdCBrcmVmIGtyZWY7XFxuIFxcdC8qIHdlIGNyZWF0ZSBvbmUgY2xvY2sgaW5zdGFuY2UgcGVyIE1JSSBidXMgKi9cXG4gXFx0c3RydWN0IG1paV9idXMgKmJ1cztcXG4gXFx0LyogcHJvdGVjdHMgZXh0ZW5kZWQgcmVnaXN0ZXJzIGZyb20gY29uY3VycmVudCBhY2Nlc3MgKi9cXG5AQCAtOTU2LDYgKzk1OSw3IEBAIHN0YXRpYyB2b2lkIGRlY29kZV9zdGF0dXNfZnJhbWUoc3RydWN0IGRwODM2NDBfcHJpdmF0ZSAqZHA4MzY0MCxcXG4gc3RhdGljIHZvaWQgZHA4MzY0MF9jbG9ja19pbml0KHN0cnVjdCBkcDgzNjQwX2Nsb2NrICpjbG9jaywgc3RydWN0IG1paV9idXMgKmJ1cylcXG4ge1xcbiBcXHRJTklUX0xJU1RfSEVBRChcXHUwMDI2Y2xvY2stXFx1MDAzZWxpc3QpO1xcbitcXHRrcmVmX2luaXQoXFx1MDAyNmNsb2NrLVxcdTAwM2VrcmVmKTtcXG4gXFx0Y2xvY2stXFx1MDAzZWJ1cyA9IGJ1cztcXG4gXFx0bXV0ZXhfaW5pdChcXHUwMDI2Y2xvY2stXFx1MDAzZWV4dHJlZ19sb2NrKTtcXG4gXFx0bXV0ZXhfaW5pdChcXHUwMDI2Y2xvY2stXFx1MDAzZWNsb2NrX2xvY2spO1xcbkBAIC05OTksMTEgKzEwMDMsOSBAQCBzdGF0aWMgaW50IGNob29zZV90aGlzX3BoeShzdHJ1Y3QgZHA4MzY0MF9jbG9jayAqY2xvY2ssXFxuIFxcdHJldHVybiAwO1xcbiB9XFxuIFxcbi1zdGF0aWMgc3RydWN0IGRwODM2NDBfY2xvY2sgKmRwODM2NDBfY2xvY2tfZ2V0KHN0cnVjdCBkcDgzNjQwX2Nsb2NrICpjbG9jaylcXG4rc3RhdGljIHZvaWQgZHA4MzY0MF9jbG9ja19sb2NrKHN0cnVjdCBkcDgzNjQwX2Nsb2NrICpjbG9jaylcXG4ge1xcbi1cXHRpZiAoY2xvY2spXFxuLVxcdFxcdG11dGV4X2xvY2soXFx1MDAyNmNsb2NrLVxcdTAwM2VjbG9ja19sb2NrKTtcXG4tXFx0cmV0dXJuIGNsb2NrO1xcbitcXHRtdXRleF9sb2NrKFxcdTAwMjZjbG9jay1cXHUwMDNlY2xvY2tfbG9jayk7XFxuIH1cXG4gXFxuIC8qXFxuQEAgLTEwMjEsNiArMTAyMyw3IEBAIHN0YXRpYyBzdHJ1Y3QgZHA4MzY0MF9jbG9jayAqZHA4MzY0MF9jbG9ja19nZXRfYnVzKHN0cnVjdCBtaWlfYnVzICpidXMpXFxuIFxcdFxcdHRtcCA9IGxpc3RfZW50cnkodGhpcywgc3RydWN0IGRwODM2NDBfY2xvY2ssIGxpc3QpO1xcbiBcXHRcXHRpZiAodG1wLVxcdTAwM2VidXMgPT0gYnVzKSB7XFxuIFxcdFxcdFxcdGNsb2NrID0gdG1wO1xcbitcXHRcXHRcXHRrcmVmX2dldChcXHUwMDI2Y2xvY2stXFx1MDAzZWtyZWYpO1xcbiBcXHRcXHRcXHRicmVhaztcXG4gXFx0XFx0fVxcbiBcXHR9XFxuQEAgLTEwNDMsMTQgKzEwNDYsMzggQEAgc3RhdGljIHN0cnVjdCBkcDgzNjQwX2Nsb2NrICpkcDgzNjQwX2Nsb2NrX2dldF9idXMoc3RydWN0IG1paV9idXMgKmJ1cylcXG4gb3V0OlxcbiBcXHRtdXRleF91bmxvY2soXFx1MDAyNnBoeXRlcl9jbG9ja3NfbG9jayk7XFxuIFxcbi1cXHRyZXR1cm4gZHA4MzY0MF9jbG9ja19nZXQoY2xvY2spO1xcbitcXHRpZiAoY2xvY2spXFxuK1xcdFxcdGRwODM2NDBfY2xvY2tfbG9jayhjbG9jayk7XFxuK1xcbitcXHRyZXR1cm4gY2xvY2s7XFxuIH1cXG4gXFxuLXN0YXRpYyB2b2lkIGRwODM2NDBfY2xvY2tfcHV0KHN0cnVjdCBkcDgzNjQwX2Nsb2NrICpjbG9jaylcXG4rc3RhdGljIHZvaWQgZHA4MzY0MF9jbG9ja191bmxvY2soc3RydWN0IGRwODM2NDBfY2xvY2sgKmNsb2NrKVxcbiB7XFxuIFxcdG11dGV4X3VubG9jayhcXHUwMDI2Y2xvY2stXFx1MDAzZWNsb2NrX2xvY2spO1xcbiB9XFxuIFxcbitzdGF0aWMgdm9pZCBkcDgzNjQwX2Nsb2NrX3JlbGVhc2Uoc3RydWN0IGtyZWYgKmtyZWYpXFxuK3tcXG4rXFx0c3RydWN0IGRwODM2NDBfY2xvY2sgKmNsb2NrID1cXG4rXFx0XFx0Y29udGFpbmVyX29mKGtyZWYsIHN0cnVjdCBkcDgzNjQwX2Nsb2NrLCBrcmVmKTtcXG4rXFxuK1xcdGxpc3RfZGVsKFxcdTAwMjZjbG9jay1cXHUwMDNlbGlzdCk7XFxuK1xcdG11dGV4X3VubG9jayhcXHUwMDI2cGh5dGVyX2Nsb2Nrc19sb2NrKTtcXG4rXFxuK1xcdG11dGV4X2Rlc3Ryb3koXFx1MDAyNmNsb2NrLVxcdTAwM2VleHRyZWdfbG9jayk7XFxuK1xcdG11dGV4X2Rlc3Ryb3koXFx1MDAyNmNsb2NrLVxcdTAwM2VjbG9ja19sb2NrKTtcXG4rXFx0cHV0X2RldmljZShcXHUwMDI2Y2xvY2stXFx1MDAzZWJ1cy1cXHUwMDNlZGV2KTtcXG4rXFx0a2ZyZWUoY2xvY2stXFx1MDAzZWNhcHMucGluX2NvbmZpZyk7XFxuK1xcdGtmcmVlKGNsb2NrKTtcXG4rfVxcbitcXG4rc3RhdGljIHZvaWQgZHA4MzY0MF9jbG9ja19wdXQoc3RydWN0IGRwODM2NDBfY2xvY2sgKmNsb2NrKVxcbit7XFxuK1xcdGtyZWZfcHV0X211dGV4KFxcdTAwMjZjbG9jay1cXHUwMDNla3JlZiwgZHA4MzY0MF9jbG9ja19yZWxlYXNlLFxcbitcXHRcXHQgICAgICAgXFx1MDAyNnBoeXRlcl9jbG9ja3NfbG9jayk7XFxuK31cXG4rXFxuIHN0YXRpYyBpbnQgZHA4MzY0MF9zb2Z0X3Jlc2V0KHN0cnVjdCBwaHlfZGV2aWNlICpwaHlkZXYpXFxuIHtcXG4gXFx0aW50IHJldDtcXG5AQCAtMTQ1MCwxMyArMTQ3NywxNCBAQCBzdGF0aWMgaW50IGRwODM2NDBfcHJvYmUoc3RydWN0IHBoeV9kZXZpY2UgKnBoeWRldilcXG4gXFx0fSBlbHNlXFxuIFxcdFxcdGxpc3RfYWRkX3RhaWwoXFx1MDAyNmRwODM2NDAtXFx1MDAzZWxpc3QsIFxcdTAwMjZjbG9jay1cXHUwMDNlcGh5bGlzdCk7XFxuIFxcbi1cXHRkcDgzNjQwX2Nsb2NrX3B1dChjbG9jayk7XFxuK1xcdGRwODM2NDBfY2xvY2tfdW5sb2NrKGNsb2NrKTtcXG4gXFx0cmV0dXJuIDA7XFxuIFxcbiBub19yZWdpc3RlcjpcXG4gXFx0Y2xvY2stXFx1MDAzZWNob3NlbiA9IE5VTEw7XFxuIFxcdGtmcmVlKGRwODM2NDApO1xcbiBub19tZW1vcnk6XFxuK1xcdGRwODM2NDBfY2xvY2tfdW5sb2NrKGNsb2NrKTtcXG4gXFx0ZHA4MzY0MF9jbG9ja19wdXQoY2xvY2spO1xcbiBub19jbG9jazpcXG4gXFx0cmV0dXJuIGVycjtcXG5AQCAtMTQ2Nyw3ICsxNDk1LDYgQEAgc3RhdGljIHZvaWQgZHA4MzY0MF9yZW1vdmUoc3RydWN0IHBoeV9kZXZpY2UgKnBoeWRldilcXG4gXFx0c3RydWN0IGRwODM2NDBfY2xvY2sgKmNsb2NrO1xcbiBcXHRzdHJ1Y3QgbGlzdF9oZWFkICp0aGlzLCAqbmV4dDtcXG4gXFx0c3RydWN0IGRwODM2NDBfcHJpdmF0ZSAqdG1wLCAqZHA4MzY0MCA9IHBoeWRldi1cXHUwMDNlcHJpdjtcXG4tXFx0Ym9vbCByZW1vdmVfY2xvY2sgPSBmYWxzZTtcXG4gXFxuIFxcdGlmIChwaHlkZXYtXFx1MDAzZW1kaW8uYWRkciA9PSBCUk9BRENBU1RfQUREUilcXG4gXFx0XFx0cmV0dXJuO1xcbkBAIC0xNDgwLDcgKzE1MDcsOCBAQCBzdGF0aWMgdm9pZCBkcDgzNjQwX3JlbW92ZShzdHJ1Y3QgcGh5X2RldmljZSAqcGh5ZGV2KVxcbiBcXHRza2JfcXVldWVfcHVyZ2UoXFx1MDAyNmRwODM2NDAtXFx1MDAzZXJ4X3F1ZXVlKTtcXG4gXFx0c2tiX3F1ZXVlX3B1cmdlKFxcdTAwMjZkcDgzNjQwLVxcdTAwM2V0eF9xdWV1ZSk7XFxuIFxcbi1cXHRjbG9jayA9IGRwODM2NDBfY2xvY2tfZ2V0KGRwODM2NDAtXFx1MDAzZWNsb2NrKTtcXG4rXFx0Y2xvY2sgPSBkcDgzNjQwLVxcdTAwM2VjbG9jaztcXG4rXFx0ZHA4MzY0MF9jbG9ja19sb2NrKGNsb2NrKTtcXG4gXFxuIFxcdGlmIChkcDgzNjQwID09IGNsb2NrLVxcdTAwM2VjaG9zZW4pIHtcXG4gXFx0XFx0cHRwX2Nsb2NrX3VucmVnaXN0ZXIoY2xvY2stXFx1MDAzZXB0cF9jbG9jayk7XFxuQEAgLTE0OTUsMjMgKzE1MjMsOSBAQCBzdGF0aWMgdm9pZCBkcDgzNjQwX3JlbW92ZShzdHJ1Y3QgcGh5X2RldmljZSAqcGh5ZGV2KVxcbiBcXHRcXHR9XFxuIFxcdH1cXG4gXFxuLVxcdGlmICghY2xvY2stXFx1MDAzZWNob3NlbiBcXHUwMDI2XFx1MDAyNiBsaXN0X2VtcHR5KFxcdTAwMjZjbG9jay1cXHUwMDNlcGh5bGlzdCkpXFxuLVxcdFxcdHJlbW92ZV9jbG9jayA9IHRydWU7XFxuLVxcbitcXHRkcDgzNjQwX2Nsb2NrX3VubG9jayhjbG9jayk7XFxuIFxcdGRwODM2NDBfY2xvY2tfcHV0KGNsb2NrKTtcXG4gXFx0a2ZyZWUoZHA4MzY0MCk7XFxuLVxcbi1cXHRpZiAocmVtb3ZlX2Nsb2NrKSB7XFxuLVxcdFxcdG11dGV4X2xvY2soXFx1MDAyNnBoeXRlcl9jbG9ja3NfbG9jayk7XFxuLVxcdFxcdGxpc3RfZGVsKFxcdTAwMjZjbG9jay1cXHUwMDNlbGlzdCk7XFxuLVxcdFxcdG11dGV4X3VubG9jayhcXHUwMDI2cGh5dGVyX2Nsb2Nrc19sb2NrKTtcXG4tXFxuLVxcdFxcdG11dGV4X2Rlc3Ryb3koXFx1MDAyNmNsb2NrLVxcdTAwM2VleHRyZWdfbG9jayk7XFxuLVxcdFxcdG11dGV4X2Rlc3Ryb3koXFx1MDAyNmNsb2NrLVxcdTAwM2VjbG9ja19sb2NrKTtcXG4tXFx0XFx0cHV0X2RldmljZShcXHUwMDI2Y2xvY2stXFx1MDAzZWJ1cy1cXHUwMDNlZGV2KTtcXG4tXFx0XFx0a2ZyZWUoY2xvY2stXFx1MDAzZWNhcHMucGluX2NvbmZpZyk7XFxuLVxcdFxcdGtmcmVlKGNsb2NrKTtcXG4tXFx0fVxcbiB9XFxuIFxcbiBzdGF0aWMgc3RydWN0IHBoeV9kcml2ZXIgZHA4MzY0MF9kcml2ZXJbXSA9IHtcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMjVUMDg6MTk6NDcuMDk1NDE0NDg2WiIsIlNlcSI6MiwiTmVzdGluZyI6MSwiVHlwZSI6ImFnZW50IiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiYmVzdC1leHBlbnNpdmUiLCJEdXJhdGlvbiI6OTE4ODI4MzU5MzUsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogW1xuICAgIFwiRFA4MzY0MF9QSFlcIixcbiAgICBcIk5FVFdPUktfUEhZX1RJTUVTVEFNUElOR1wiLFxuICAgIFwiUFRQXzE1ODhfQ0xPQ0tcIixcbiAgICBcIlBIWUxJQlwiXG4gIF0sXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtcbiAgICBcImRwODM2NDBfcHJvYmVcIixcbiAgICBcImRwODM2NDBfcmVtb3ZlXCIsXG4gICAgXCJkcDgzNjQwX2Nsb2NrX3JlbGVhc2VcIlxuICBdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBpbnRyb2R1Y2VzIGEga3JlZiB0byBtYW5hZ2UgdGhlIGxpZmV0aW1lIG9mIGBzdHJ1Y3QgZHA4MzY0MF9jbG9ja2AgaW4gdGhlIERQODM2NDAgUEhZIGRyaXZlciwgcmVwbGFjaW5nIG1hbnVhbCB0ZWFyZG93biBsb2dpYyBpbiBgZHA4MzY0MF9yZW1vdmVgLiBUaGlzIGZpeGVzIHBvdGVudGlhbCB1c2UtYWZ0ZXItZnJlZSBvciBtZW1vcnkgbGVhayBpc3N1ZXMuIFRoZSBQSFkgZHJpdmVyIGNhbiBiZSBwcm9iZWQgYW5kIHJlbW92ZWQgaW4gYSB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudCBieSBlbXVsYXRpbmcgYSBVU0IgbmV0d29yayBhZGFwdGVyIChsaWtlIHNtc2M5NXh4IG9yIGFzaXgpIHRoYXQgcmVnaXN0ZXJzIGFuIE1ESU8gYnVzIGFuZCByZXR1cm5zIHRoZSBEUDgzNjQwIFBIWSBJRCAoMHgyMDAwNWNlMSkgZHVyaW5nIE1ESU8gcmVhZCBvcGVyYXRpb25zLiBUaGVyZWZvcmUsIHRoaXMgY29kZSBpcyByZWFjaGFibGUgYW5kIHdvcnRoIGZ1enppbmcuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IHRydWVcbn0iLCJJbnN0cnVjdGlvbiI6IllvdSBhcmUgYW4gZXhwZXJ0IExpbnV4IGtlcm5lbCBtYWludGFpbmVyLlxuWW91ciBqb2IgaXMgdG8gcmV2aWV3IGEgcHJvdmlkZWQgcGF0Y2ggc2VyaWVzIGFuZCBkZXRlcm1pbmVcbmlmIGl0IG1ha2VzIGZ1bmN0aW9uYWwgY2hhbmdlcyB0byB0aGUga2VybmVsIHRoYXQgc2hvdWxkIGJlIGZ1enplZC5cblxuSU1QT1JUQU5UOiBUaGUgY2hhbmdlcyBoYXZlIEFMUkVBRFkgYmVlbiBhcHBsaWVkIGFuZCBjb21taXR0ZWQgYXMgdGhlIEhFQUQgY29tbWl0IGluXG55b3VyIHdvcmtzcGFjZS4gRG8gTk9UIHJlbHkgb24geW91ciBpbnRlcm5hbCBrbm93bGVkZ2Ugb2YgdGhlIGtlcm5lbC4gWW91IG11c3QgYWN0aXZlbHlcbnVzZSB5b3VyIGNvZGUgYWNjZXNzIHRvb2xzIHRvIGV4YW1pbmUgdGhlIGFjdHVhbCBzb3VyY2UgY29kZSBhbmQgY29uZmlybSBhbnkgYXNzdW1wdGlvbnMuXG5cblJldHVybiBXb3J0aEZ1enppbmc9ZmFsc2UgaWYgdGhlIHBhdGNoIG9ubHkgY29udGFpbnM6XG4tIE1vZGlmaWNhdGlvbnMgdG8gRG9jdW1lbnRhdGlvbi8sIEtjb25maWcgZmlsZXMsIG9yIGNvZGUgY29tbWVudHMuXG4tIFB1cmVseSBkZWNvcmF0aXZlIGNoYW5nZXMsIHN1Y2ggYXMgbG9nZ2luZyAoZS5nLiwgcHJfZXJyLCBwcmludGspIG9yIHRyYWNlcG9pbnRzLlxuLSBDaGFuZ2VzIHRvIG51bWVyaWMgY29uc3RhbnRzIG9yIG1hY3JvcyB0aGF0IGRvIG5vdCBmdW5jdGlvbmFsbHkgYWx0ZXIgZXhlY3V0aW9uIGZsb3cuXG4tIENvZGUgcGF0aHMgdGhhdCBhcmUgaW1wb3NzaWJsZSB0byByZWFjaCBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBHQ0Ugb3IgUUVNVSxcbiAgZXZlbiB3aGVuIHV0aWxpemluZyBzb2Z0d2FyZS1lbXVsYXRlZCBoYXJkd2FyZSAoZS5nLiwgdXNiIGdhZGdldCwgbWFjODAyMTFfaHdzaW0pLlxuLSBDb2RlIGluIHZlbmRvci1zcGVjaWZpYyBQQ0llIHN3aXRjaCwgU21hcnROSUMsIG9yIEdQVSBkcml2ZXJzIChlLmcuLCBtbHhzdywgcGRzX2NvcmUsIHFlZCxcbiAgaW9uaWMsIGFtZGdwdSkgdGhhdCByZXF1aXJlIHBoeXNpY2FsIFBDSWUgaGFyZHdhcmUgY2FyZHMgbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIFFFTVUuXG4tIERyaXZlciAucmVtb3ZlLCAuc2h1dGRvd24sIG9yIHBjaV91bnJlZ2lzdGVyX2RyaXZlciB0ZWFyZG93biBjYWxsYmFja3MgKGUuZy4sIGlnYl9yZW1vdmUpXG4gIHRoYXQgYXJlIGV4ZWN1dGVkIG9ubHkgZHVyaW5nIFBDSSBob3QtdW5wbHVnIG9yIHN5c2ZzIGRyaXZlciB1bmJpbmQgb3BlcmF0aW9ucy5cblxuSWYgaXQgbW9kaWZpZXMgcmVhY2hhYmxlIGNvcmUga2VybmVsIGxvZ2ljLCBkcml2ZXJzLCBvciBhcmNoaXRlY3R1cmVzLCB1c2UgeW91ciBjb2RlIHNlYXJjaFxudG9vbHMgdG8gdmVyaWZ5IHRoZSBjb2RlIGNhbiBiZSBleGVjdXRlZCwgdGhlbiByZXR1cm4gV29ydGhGdXp6aW5nPXRydWUuXG5cbldoZW4gcmV0dXJuaW5nIFdvcnRoRnV6emluZz10cnVlLCB5b3UgTVVTVCBBTFNPOlxuMS4gRXh0cmFjdCBhbnkgc3BlY2lmaWMga2VybmVsIGZ1bmN0aW9ucyB0aGF0IHNob3VsZCBiZSBoZWF2aWx5IGZ1enplZCBpbnRvIEZvY3VzU3ltYm9scy5cbiAgIEF2b2lkIGxpc3RpbmcgZ2VuZXJpYyBob3QtcGF0aCBmdW5jdGlvbnMgdG8gcHJldmVudCBza2V3ZWQgdGVzdCBkaXN0cmlidXRpb25zLlxuICAgUHJlZmVyIG5vbi1zdGF0aWMsIG5vbi1pbmxpbmVkIEFQSSBlbnRyeXBvaW50IGZ1bmN0aW9ucyBvdmVyIGludGVybmFsIHN0YXRpYyBoZWxwZXIgZnVuY3Rpb25zXG4gICAod2hpY2ggYXJlIGlubGluZWQgYnkgdGhlIGNvbXBpbGVyIGFuZCBkbyBub3QgaGF2ZSBkaXN0aW5jdCBzeW1ib2wgYWRkcmVzc2VzKS5cbjIuIElkZW50aWZ5IGFueSBzcGVjaWZpYyBDT05GSUdfIG9wdGlvbnMgcmVxdWlyZWQgdG8gcHJvcGVybHkgdGVzdCB0aGlzIG5ldy9tb2RpZmllZCBmZWF0dXJlLlxuICAgR28gYW5kIGxvb2sgaW50byB0aGUgS2NvbmZpZyBmaWxlcyBhbmQgY2hlY2sgZm9yIGlmZGVmcyBhcm91bmQgdGhlIGNvZGUsIGRvIG5vdCBtYWtlIGFzc3VtcHRpb25zLlxuICAgQWxzbyBjaGVjayBcImRlcGVuZHMgb25cIiBsaW5lcyBpbiBLY29uZmlnIHRvIGluY2x1ZGUgYW55IG5vbi1zdGFuZGFyZCBwYXJlbnQgc3Vic3lzdGVtIGNvbmZpZ3NcbiAgIG5lZWRlZCBmb3IgS2J1aWxkIHRvIGNvbXBpbGUgdGhlIGNvZGUgc3RhdGljYWxseSBpbnRvIHZtbGludXguIExpc3QgdGhlbSBpbiB0aGUgRW5hYmxlQ29uZmlnc1xuICAgb3V0cHV0IGFycmF5LCBhbmQgRE8gTk9UIGFkZCBhICdDT05GSUdfJyBwcmVmaXggKGUuZy4sIHJldHVybiBcIk5FVF9JUFY0XCIgaW5zdGVhZCBvZiBcIkNPTkZJR19ORVRfSVBWNFwiKS5cblByZWZlciBjYWxsaW5nIHNldmVyYWwgdG9vbHMgYXQgdGhlIHNhbWUgdGltZSB0byBzYXZlIHJvdW5kLXRyaXBzLlxuXG5cblVzZSBzZXQtcmVzdWx0cyB0b29sIHRvIHByb3ZpZGUgcmVzdWx0cyBvZiB0aGUgYW5hbHlzaXMuXG5JdCBtdXN0IGJlIGNhbGxlZCBleGFjdGx5IG9uY2UgYmVmb3JlIHRoZSBmaW5hbCByZXBseS5cbklnbm9yZSByZXN1bHRzIG9mIHRoaXMgdG9vbC5cbiIsIlByb21wdCI6IkZvciB5b3VyIGNvbnZlbmllbmNlLCBoZXJlIGlzIHRoZSBkaWZmIG9mIHRoZSBjaGFuZ2VzOlxuY29tbWl0IDEzY2YwMjUyMmUyM2E2YmE0NGY1ZDk2NDBjZmQ5YmRkZTM0YThhMThcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cdTAwM2VcbkRhdGU6ICAgU2F0IEp1bCAyNSAwODoxOTo0NCAyMDI2ICswMDAwXG5cbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcblxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmMgYi9kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jXG5pbmRleCA5ODQ3MmFiZGQzOTIwOC4uMTA1ODdkYjk1ZmIwYjcgMTAwNjQ0XG4tLS0gYS9kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jXG4rKysgYi9kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jXG5AQCAtMTAsNiArMTAsNyBAQFxuICNpbmNsdWRlIFx1MDAzY2xpbnV4L2NyYzMyLmhcdTAwM2VcbiAjaW5jbHVkZSBcdTAwM2NsaW51eC9ldGh0b29sLmhcdTAwM2VcbiAjaW5jbHVkZSBcdTAwM2NsaW51eC9rZXJuZWwuaFx1MDAzZVxuKyNpbmNsdWRlIFx1MDAzY2xpbnV4L2tyZWYuaFx1MDAzZVxuICNpbmNsdWRlIFx1MDAzY2xpbnV4L2xpc3QuaFx1MDAzZVxuICNpbmNsdWRlIFx1MDAzY2xpbnV4L21paS5oXHUwMDNlXG4gI2luY2x1ZGUgXHUwMDNjbGludXgvbW9kdWxlLmhcdTAwM2VcbkBAIC0xMzAsNiArMTMxLDggQEAgc3RydWN0IGRwODM2NDBfcHJpdmF0ZSB7XG4gc3RydWN0IGRwODM2NDBfY2xvY2sge1xuIFx0Lyoga2VlcHMgdGhlIGluc3RhbmNlIGluIHRoZSAncGh5dGVyX2Nsb2NrcycgbGlzdCAqL1xuIFx0c3RydWN0IGxpc3RfaGVhZCBsaXN0O1xuK1x0LyogdHJhY2tzIGF0dGFjaGVkIG9yIHByb2JpbmcgUEhZcyAqL1xuK1x0c3RydWN0IGtyZWYga3JlZjtcbiBcdC8qIHdlIGNyZWF0ZSBvbmUgY2xvY2sgaW5zdGFuY2UgcGVyIE1JSSBidXMgKi9cbiBcdHN0cnVjdCBtaWlfYnVzICpidXM7XG4gXHQvKiBwcm90ZWN0cyBleHRlbmRlZCByZWdpc3RlcnMgZnJvbSBjb25jdXJyZW50IGFjY2VzcyAqL1xuQEAgLTk1Niw2ICs5NTksNyBAQCBzdGF0aWMgdm9pZCBkZWNvZGVfc3RhdHVzX2ZyYW1lKHN0cnVjdCBkcDgzNjQwX3ByaXZhdGUgKmRwODM2NDAsXG4gc3RhdGljIHZvaWQgZHA4MzY0MF9jbG9ja19pbml0KHN0cnVjdCBkcDgzNjQwX2Nsb2NrICpjbG9jaywgc3RydWN0IG1paV9idXMgKmJ1cylcbiB7XG4gXHRJTklUX0xJU1RfSEVBRChcdTAwMjZjbG9jay1cdTAwM2VsaXN0KTtcbitcdGtyZWZfaW5pdChcdTAwMjZjbG9jay1cdTAwM2VrcmVmKTtcbiBcdGNsb2NrLVx1MDAzZWJ1cyA9IGJ1cztcbiBcdG11dGV4X2luaXQoXHUwMDI2Y2xvY2stXHUwMDNlZXh0cmVnX2xvY2spO1xuIFx0bXV0ZXhfaW5pdChcdTAwMjZjbG9jay1cdTAwM2VjbG9ja19sb2NrKTtcbkBAIC05OTksMTEgKzEwMDMsOSBAQCBzdGF0aWMgaW50IGNob29zZV90aGlzX3BoeShzdHJ1Y3QgZHA4MzY0MF9jbG9jayAqY2xvY2ssXG4gXHRyZXR1cm4gMDtcbiB9XG4gXG4tc3RhdGljIHN0cnVjdCBkcDgzNjQwX2Nsb2NrICpkcDgzNjQwX2Nsb2NrX2dldChzdHJ1Y3QgZHA4MzY0MF9jbG9jayAqY2xvY2spXG4rc3RhdGljIHZvaWQgZHA4MzY0MF9jbG9ja19sb2NrKHN0cnVjdCBkcDgzNjQwX2Nsb2NrICpjbG9jaylcbiB7XG4tXHRpZiAoY2xvY2spXG4tXHRcdG11dGV4X2xvY2soXHUwMDI2Y2xvY2stXHUwMDNlY2xvY2tfbG9jayk7XG4tXHRyZXR1cm4gY2xvY2s7XG4rXHRtdXRleF9sb2NrKFx1MDAyNmNsb2NrLVx1MDAzZWNsb2NrX2xvY2spO1xuIH1cbiBcbiAvKlxuQEAgLTEwMjEsNiArMTAyMyw3IEBAIHN0YXRpYyBzdHJ1Y3QgZHA4MzY0MF9jbG9jayAqZHA4MzY0MF9jbG9ja19nZXRfYnVzKHN0cnVjdCBtaWlfYnVzICpidXMpXG4gXHRcdHRtcCA9IGxpc3RfZW50cnkodGhpcywgc3RydWN0IGRwODM2NDBfY2xvY2ssIGxpc3QpO1xuIFx0XHRpZiAodG1wLVx1MDAzZWJ1cyA9PSBidXMpIHtcbiBcdFx0XHRjbG9jayA9IHRtcDtcbitcdFx0XHRrcmVmX2dldChcdTAwMjZjbG9jay1cdTAwM2VrcmVmKTtcbiBcdFx0XHRicmVhaztcbiBcdFx0fVxuIFx0fVxuQEAgLTEwNDMsMTQgKzEwNDYsMzggQEAgc3RhdGljIHN0cnVjdCBkcDgzNjQwX2Nsb2NrICpkcDgzNjQwX2Nsb2NrX2dldF9idXMoc3RydWN0IG1paV9idXMgKmJ1cylcbiBvdXQ6XG4gXHRtdXRleF91bmxvY2soXHUwMDI2cGh5dGVyX2Nsb2Nrc19sb2NrKTtcbiBcbi1cdHJldHVybiBkcDgzNjQwX2Nsb2NrX2dldChjbG9jayk7XG4rXHRpZiAoY2xvY2spXG4rXHRcdGRwODM2NDBfY2xvY2tfbG9jayhjbG9jayk7XG4rXG4rXHRyZXR1cm4gY2xvY2s7XG4gfVxuIFxuLXN0YXRpYyB2b2lkIGRwODM2NDBfY2xvY2tfcHV0KHN0cnVjdCBkcDgzNjQwX2Nsb2NrICpjbG9jaylcbitzdGF0aWMgdm9pZCBkcDgzNjQwX2Nsb2NrX3VubG9jayhzdHJ1Y3QgZHA4MzY0MF9jbG9jayAqY2xvY2spXG4ge1xuIFx0bXV0ZXhfdW5sb2NrKFx1MDAyNmNsb2NrLVx1MDAzZWNsb2NrX2xvY2spO1xuIH1cbiBcbitzdGF0aWMgdm9pZCBkcDgzNjQwX2Nsb2NrX3JlbGVhc2Uoc3RydWN0IGtyZWYgKmtyZWYpXG4re1xuK1x0c3RydWN0IGRwODM2NDBfY2xvY2sgKmNsb2NrID1cbitcdFx0Y29udGFpbmVyX29mKGtyZWYsIHN0cnVjdCBkcDgzNjQwX2Nsb2NrLCBrcmVmKTtcbitcbitcdGxpc3RfZGVsKFx1MDAyNmNsb2NrLVx1MDAzZWxpc3QpO1xuK1x0bXV0ZXhfdW5sb2NrKFx1MDAyNnBoeXRlcl9jbG9ja3NfbG9jayk7XG4rXG4rXHRtdXRleF9kZXN0cm95KFx1MDAyNmNsb2NrLVx1MDAzZWV4dHJlZ19sb2NrKTtcbitcdG11dGV4X2Rlc3Ryb3koXHUwMDI2Y2xvY2stXHUwMDNlY2xvY2tfbG9jayk7XG4rXHRwdXRfZGV2aWNlKFx1MDAyNmNsb2NrLVx1MDAzZWJ1cy1cdTAwM2VkZXYpO1xuK1x0a2ZyZWUoY2xvY2stXHUwMDNlY2Fwcy5waW5fY29uZmlnKTtcbitcdGtmcmVlKGNsb2NrKTtcbit9XG4rXG4rc3RhdGljIHZvaWQgZHA4MzY0MF9jbG9ja19wdXQoc3RydWN0IGRwODM2NDBfY2xvY2sgKmNsb2NrKVxuK3tcbitcdGtyZWZfcHV0X211dGV4KFx1MDAyNmNsb2NrLVx1MDAzZWtyZWYsIGRwODM2NDBfY2xvY2tfcmVsZWFzZSxcbitcdFx0ICAgICAgIFx1MDAyNnBoeXRlcl9jbG9ja3NfbG9jayk7XG4rfVxuK1xuIHN0YXRpYyBpbnQgZHA4MzY0MF9zb2Z0X3Jlc2V0KHN0cnVjdCBwaHlfZGV2aWNlICpwaHlkZXYpXG4ge1xuIFx0aW50IHJldDtcbkBAIC0xNDUwLDEzICsxNDc3LDE0IEBAIHN0YXRpYyBpbnQgZHA4MzY0MF9wcm9iZShzdHJ1Y3QgcGh5X2RldmljZSAqcGh5ZGV2KVxuIFx0fSBlbHNlXG4gXHRcdGxpc3RfYWRkX3RhaWwoXHUwMDI2ZHA4MzY0MC1cdTAwM2VsaXN0LCBcdTAwMjZjbG9jay1cdTAwM2VwaHlsaXN0KTtcbiBcbi1cdGRwODM2NDBfY2xvY2tfcHV0KGNsb2NrKTtcbitcdGRwODM2NDBfY2xvY2tfdW5sb2NrKGNsb2NrKTtcbiBcdHJldHVybiAwO1xuIFxuIG5vX3JlZ2lzdGVyOlxuIFx0Y2xvY2stXHUwMDNlY2hvc2VuID0gTlVMTDtcbiBcdGtmcmVlKGRwODM2NDApO1xuIG5vX21lbW9yeTpcbitcdGRwODM2NDBfY2xvY2tfdW5sb2NrKGNsb2NrKTtcbiBcdGRwODM2NDBfY2xvY2tfcHV0KGNsb2NrKTtcbiBub19jbG9jazpcbiBcdHJldHVybiBlcnI7XG5AQCAtMTQ2Nyw3ICsxNDk1LDYgQEAgc3RhdGljIHZvaWQgZHA4MzY0MF9yZW1vdmUoc3RydWN0IHBoeV9kZXZpY2UgKnBoeWRldilcbiBcdHN0cnVjdCBkcDgzNjQwX2Nsb2NrICpjbG9jaztcbiBcdHN0cnVjdCBsaXN0X2hlYWQgKnRoaXMsICpuZXh0O1xuIFx0c3RydWN0IGRwODM2NDBfcHJpdmF0ZSAqdG1wLCAqZHA4MzY0MCA9IHBoeWRldi1cdTAwM2Vwcml2O1xuLVx0Ym9vbCByZW1vdmVfY2xvY2sgPSBmYWxzZTtcbiBcbiBcdGlmIChwaHlkZXYtXHUwMDNlbWRpby5hZGRyID09IEJST0FEQ0FTVF9BRERSKVxuIFx0XHRyZXR1cm47XG5AQCAtMTQ4MCw3ICsxNTA3LDggQEAgc3RhdGljIHZvaWQgZHA4MzY0MF9yZW1vdmUoc3RydWN0IHBoeV9kZXZpY2UgKnBoeWRldilcbiBcdHNrYl9xdWV1ZV9wdXJnZShcdTAwMjZkcDgzNjQwLVx1MDAzZXJ4X3F1ZXVlKTtcbiBcdHNrYl9xdWV1ZV9wdXJnZShcdTAwMjZkcDgzNjQwLVx1MDAzZXR4X3F1ZXVlKTtcbiBcbi1cdGNsb2NrID0gZHA4MzY0MF9jbG9ja19nZXQoZHA4MzY0MC1cdTAwM2VjbG9jayk7XG4rXHRjbG9jayA9IGRwODM2NDAtXHUwMDNlY2xvY2s7XG4rXHRkcDgzNjQwX2Nsb2NrX2xvY2soY2xvY2spO1xuIFxuIFx0aWYgKGRwODM2NDAgPT0gY2xvY2stXHUwMDNlY2hvc2VuKSB7XG4gXHRcdHB0cF9jbG9ja191bnJlZ2lzdGVyKGNsb2NrLVx1MDAzZXB0cF9jbG9jayk7XG5AQCAtMTQ5NSwyMyArMTUyMyw5IEBAIHN0YXRpYyB2b2lkIGRwODM2NDBfcmVtb3ZlKHN0cnVjdCBwaHlfZGV2aWNlICpwaHlkZXYpXG4gXHRcdH1cbiBcdH1cbiBcbi1cdGlmICghY2xvY2stXHUwMDNlY2hvc2VuIFx1MDAyNlx1MDAyNiBsaXN0X2VtcHR5KFx1MDAyNmNsb2NrLVx1MDAzZXBoeWxpc3QpKVxuLVx0XHRyZW1vdmVfY2xvY2sgPSB0cnVlO1xuLVxuK1x0ZHA4MzY0MF9jbG9ja191bmxvY2soY2xvY2spO1xuIFx0ZHA4MzY0MF9jbG9ja19wdXQoY2xvY2spO1xuIFx0a2ZyZWUoZHA4MzY0MCk7XG4tXG4tXHRpZiAocmVtb3ZlX2Nsb2NrKSB7XG4tXHRcdG11dGV4X2xvY2soXHUwMDI2cGh5dGVyX2Nsb2Nrc19sb2NrKTtcbi1cdFx0bGlzdF9kZWwoXHUwMDI2Y2xvY2stXHUwMDNlbGlzdCk7XG4tXHRcdG11dGV4X3VubG9jayhcdTAwMjZwaHl0ZXJfY2xvY2tzX2xvY2spO1xuLVxuLVx0XHRtdXRleF9kZXN0cm95KFx1MDAyNmNsb2NrLVx1MDAzZWV4dHJlZ19sb2NrKTtcbi1cdFx0bXV0ZXhfZGVzdHJveShcdTAwMjZjbG9jay1cdTAwM2VjbG9ja19sb2NrKTtcbi1cdFx0cHV0X2RldmljZShcdTAwMjZjbG9jay1cdTAwM2VidXMtXHUwMDNlZGV2KTtcbi1cdFx0a2ZyZWUoY2xvY2stXHUwMDNlY2Fwcy5waW5fY29uZmlnKTtcbi1cdFx0a2ZyZWUoY2xvY2spO1xuLVx0fVxuIH1cbiBcbiBzdGF0aWMgc3RydWN0IHBoeV9kcml2ZXIgZHA4MzY0MF9kcml2ZXJbXSA9IHtcbiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTI1VDA4OjE5OjQ3LjA5NTQyOTU2NloiLCJTZXEiOjMsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjY4Nzk5ODcwODUsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqQXNzZXNzaW5nIHRoZSBGdXp6aW5nIFBvdGVudGlhbCBvZiBhIFBIWSBEcml2ZXIgUGF0Y2gqKlxuXG5Pa2F5LCBzbyBJJ20gbG9va2luZyBhdCB0aGlzIHBhdGNoIGZvciBgZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuY2AuIEl0IHNlZW1zIHRoZXkncmUgaW1wbGVtZW50aW5nIGEgYGtyZWZgIGZvciB0aGUgYGRwODM2NDBfY2xvY2tgIHN0cnVjdCB0byBtYW5hZ2UgaXRzIGxpZmV0aW1lLCB3aGljaCBpcyBhIGdvb2QgbW92ZSB0byByZXBsYWNlIHNvbWUgbWFudWFsIHJlbW92YWwgbG9naWMuIFRoZXkgYWxzbyB0d2Vha2VkIGBnZXRgIGFuZCBgcHV0YCB0byBhIGBsb2NrYC9gdW5sb2NrYCBwYXJhZGlnbSwgaW5jb3Jwb3JhdGluZyBga3JlZl9wdXRfbXV0ZXhgLiBSaWdodCwgc28gdGhlIGNydWNpYWwgcXVlc3Rpb24gaXMsIGlzIHRoaXMgd29ydGggZnV6emluZz9cblxuRmlyc3QsIGBkcDgzNjQwLmNgIGl0c2VsZi4gSXQncyBhIFBIWSBkcml2ZXIgZm9yIGEgTmF0aW9uYWwgU2VtaWNvbmR1Y3RvciBEUDgzNjQwIOKAkyBwcmV0dHkgc3RhbmRhcmQgc3R1ZmYsIGEgcGh5c2ljYWwgbGF5ZXIgaW50ZXJmYWNlLiBQSFkgZHJpdmVycyBhcmUgdXN1YWxseSBwcm9iZWQgd2hlbiB0aGUgTURJTyBidXMgZGlzY292ZXJzIHRoZW0uIEhtbSwgY2FuIHdlIHRyaWdnZXIgdGhpcyBpbiBhIHZpcnR1YWxpemVkIGVudmlyb25tZW50IGZvciBmdXp6aW5nPyBBYnNvbHV0ZWx5LCB3ZSBoYXZlIGEgZmV3IG9wdGlvbnMuIE1ESU8gY2FuIGJlIGVtdWxhdGVkLCBvciB3ZSBjYW4gdXNlIGR1bW15IFBIWXMuIFRoZSB0cmlja3kgcGFydCBpcyBjYW4gd2UgaGl0IGl0IHZpYSBuZXRsaW5rIG9yIGV0aHRvb2wgY29tbWFuZHMgaWYgdGhlIFBIWSBpcyBldmVuIHJlZ2lzdGVyZWQ/XG5cbldhaXQgYSBzZWNvbmQsIFBIWSBkcml2ZXJzIGFyZSB1c3VhbGx5IHByb2JlZCAqd2hlbiogYSBuZXR3b3JrIGRldmljZSB3aXRoIGFuIE1ESU8gYnVzIHJlZ2lzdGVycyB0aGUgUEhZISBUaGF0IGNoYW5nZXMgdGhpbmdzLiBTeXprYWxsZXIgaXMgbXkgdXN1YWwgdG9vbCwgc28gSSBoYXZlIHRvIGNvbnNpZGVyIGhvdyB0byBnbyBhYm91dCB0aGlzLiBgc3l6X2dlbmV0bGlua2AsIGB0dW5gLCBvciBgdmV0aGA/IE5vcGUsIGB2ZXRoYCBkb2Vzbid0IGhhdmUgYSBQSFkuIEJ1dCB3aGF0IGFib3V0IGB2aGNpYCwgYG1hYzgwMjExX2h3c2ltYCwgb3IgYG5ldGRldnNpbWA/IFRob3NlICptaWdodCogaGF2ZSBQSFlzLi4uIGFsdGhvdWdoLCB0aGUgYGRwODM2NDBgIGlzIGEgKnNwZWNpZmljKiBoYXJkd2FyZSBQSFkuIEkgZG91YnQgc3l6a2FsbGVyIGFjdHVhbGx5IGVtdWxhdGVzIHRoYXQgdW5sZXNzIHRoZXJlIGlzIGFuIE1ESU8gYnVzIGVtdWxhdG9yLlxuXG5Ob3csIGRvZXMgc3l6a2FsbGVyIGhhdmUgc29tZXRoaW5nIGxpa2UgYG1kaW8tbW9ja3VwYD8gTm9wZS4gQ2FuIHdlIGluc3RhbnRpYXRlIGl0IHZpYSBzeXNmcyBvciBuZXRsaW5rLCB0aG91Z2g/IFRoYXQgY291bGQgYmUgYSB3YXkgaW4uIEknbSBnb2luZyB0byBoYXZlIHRvIGNoZWNrIGlmIGBkcDgzNjQwYCBjYW4gZXZlbiBiZSBwcm9iZWQgcmVsaWFibHkuIFRpbWUgdG8gZmlyZSB1cCBgZ3JlcHBlcmAgYW5kIHNlZSBpZiB0aGVyZSdzIGFuIG9idmlvdXMgZW50cnkgcG9pbnQgb3IgcHJvYmUgbWVjaGFuaXNtLiBHb3R0YSBmaW5kIHNvbWUgd2F5IHRvIHRyaWdnZXIgdGhhdCBwcm9iZSBwYXRoIHRvIHNlZSBpZiB0aGlzIHBhdGNoIGlzIGV2ZW4gcmVhY2hhYmxlLlxuXG5cbiIsIklucHV0VG9rZW5zIjozNzY4LCJPdXRwdXRUb2tlbnMiOjIwLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6NDc4LCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMjVUMDg6MTk6NTMuOTc1NDE5MTVaIiwiU2VxIjo0LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MzA4OTc2NDE0MSwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJkcDgzNjQwXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcIlxcbkZ1bGwgb3V0cHV0IGlzIHRvbyBsb25nLCBzaG93aW5nIDUwMCBvdXQgb2YgNjMyIGxpbmVzLlxcblVzZSBtb3JlIHByZWNpc2UgZXhwcmVzc2lvbiBpZiBwb3NzaWJsZS5cXG5cXG5NQUlOVEFJTkVSUz0yMTc0MT1GOlxcdERvY3VtZW50YXRpb24vZHJpdmVyLWFwaS9wdHAucnN0XFxuTUFJTlRBSU5FUlM6MjE3NDI6RjpcXHRkcml2ZXJzL25ldC9waHkvZHA4MzY0MCpcXG5NQUlOVEFJTkVSUy0yMTc0My1GOlxcdGRyaXZlcnMvcHRwLypcXG4tLVxcbmRyaXZlcnMvbmV0L3BoeS9NYWtlZmlsZT01NT1vYmotJChDT05GSUdfREFWSUNPTV9QSFkpXFx0Kz0gZGF2aWNvbS5vXFxuZHJpdmVycy9uZXQvcGh5L01ha2VmaWxlOjU2Om9iai0kKENPTkZJR19EUDgzNjQwX1BIWSlcXHQrPSBkcDgzNjQwLm9cXG5kcml2ZXJzL25ldC9waHkvTWFrZWZpbGUtNTctb2JqLSQoQ09ORklHX0RQODM4MjJfUEhZKVxcdCs9IGRwODM4MjIub1xcbi0tXFxuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYy0yMy1cXG5kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jOjI0OiNpbmNsdWRlIFxcXCJkcDgzNjQwX3JlZy5oXFxcIlxcbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmMtMjUtXFxuLS1cXG5kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jLTczLVxcbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmM6NzQ6c3RydWN0IGRwODM2NDBfc2tiX2luZm8ge1xcbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmMtNzUtXFx0aW50IHB0cF90eXBlO1xcbi0tXFxuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYz05NT1zdHJ1Y3Qgcnh0cyB7XFxuLS1cXG5kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jLTEwMy1cXG5kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jOjEwNDpzdHJ1Y3QgZHA4MzY0MF9jbG9jaztcXG5kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jLTEwNS1cXG5kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jOjEwNjpzdHJ1Y3QgZHA4MzY0MF9wcml2YXRlIHtcXG5kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jLTEwNy1cXHRzdHJ1Y3QgbGlzdF9oZWFkIGxpc3Q7XFxuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYzoxMDg6XFx0c3RydWN0IGRwODM2NDBfY2xvY2sgKmNsb2NrO1xcbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmMtMTA5LVxcdHN0cnVjdCBwaHlfZGV2aWNlICpwaHlkZXY7XFxuLS1cXG5kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jLTEzMC1cXG5kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jOjEzMTpzdHJ1Y3QgZHA4MzY0MF9jbG9jayB7XFxuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYy0xMzItXFx0Lyoga2VlcHMgdGhlIGluc3RhbmNlIGluIHRoZSAncGh5dGVyX2Nsb2NrcycgbGlzdCAqL1xcbi0tXFxuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYy0xNDYtXFx0LyogdGhlIG9uZSBwaHl0ZXIgZnJvbSB3aGljaCB3ZSBzaGFsbCByZWFkICovXFxuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYzoxNDc6XFx0c3RydWN0IGRwODM2NDBfcHJpdmF0ZSAqY2hvc2VuO1xcbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmMtMTQ4LVxcdC8qIGxpc3Qgb2YgdGhlIG90aGVyIGF0dGFjaGVkIHBoeXRlcnMsIG5vdCBjaG9zZW4gKi9cXG4tLVxcbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmM9MTc4PU1PRFVMRV9QQVJNX0RFU0MoZ3Bpb190YWIsXFxuLS1cXG5kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jLTE4MC1cXG5kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jOjE4MTpzdGF0aWMgdm9pZCBkcDgzNjQwX2dwaW9fZGVmYXVsdHMoc3RydWN0IHB0cF9waW5fZGVzYyAqcGQpXFxuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYy0xODIte1xcbi0tXFxuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYz0yMjk9c3RhdGljIGludCBleHRfcmVhZChzdHJ1Y3QgcGh5X2RldmljZSAqcGh5ZGV2LCBpbnQgcGFnZSwgdTMyIHJlZ251bSlcXG5kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jLTIzMC17XFxuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYzoyMzE6XFx0c3RydWN0IGRwODM2NDBfcHJpdmF0ZSAqZHA4MzY0MCA9IHBoeWRldi1cXHUwMDNlcHJpdjtcXG5kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jLTIzMi1cXHRpbnQgdmFsO1xcbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmMtMjMzLVxcbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmM6MjM0OlxcdGlmIChkcDgzNjQwLVxcdTAwM2VjbG9jay1cXHUwMDNlcGFnZSAhPSBwYWdlKSB7XFxuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYy0yMzUtXFx0XFx0YnJvYWRjYXN0X3dyaXRlKHBoeWRldiwgUEFHRVNFTCwgcGFnZSk7XFxuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYzoyMzY6XFx0XFx0ZHA4MzY0MC1cXHUwMDNlY2xvY2stXFx1MDAzZXBhZ2UgPSBwYWdlO1xcbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmMtMjM3LVxcdH1cXG4tLVxcbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmM9MjQ0PXN0YXRpYyB2b2lkIGV4dF93cml0ZShpbnQgYnJvYWRjYXN0LCBzdHJ1Y3QgcGh5X2RldmljZSAqcGh5ZGV2LFxcbi0tXFxuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYy0yNDYte1xcbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmM6MjQ3OlxcdHN0cnVjdCBkcDgzNjQwX3ByaXZhdGUgKmRwODM2NDAgPSBwaHlkZXYtXFx1MDAzZXByaXY7XFxuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYy0yNDgtXFxuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYzoyNDk6XFx0aWYgKGRwODM2NDAtXFx1MDAzZWNsb2NrLVxcdTAwM2VwYWdlICE9IHBhZ2UpIHtcXG5kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jLTI1MC1cXHRcXHRicm9hZGNhc3Rfd3JpdGUocGh5ZGV2LCBQQUdFU0VMLCBwYWdlKTtcXG5kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jOjI1MTpcXHRcXHRkcDgzNjQwLVxcdTAwM2VjbG9jay1cXHUwMDNlcGFnZSA9IHBhZ2U7XFxuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYy0yNTItXFx0fVxcbi0tXFxuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYz0yOTE9c3RhdGljIHU2NCBwaHkydHh0cyhzdHJ1Y3QgcGh5X3R4dHMgKnApXFxuLS1cXG5kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jLTMwNS1cXG5kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jOjMwNjpzdGF0aWMgaW50IHBlcmlvZGljX291dHB1dChzdHJ1Y3QgZHA4MzY0MF9jbG9jayAqY2xvY2ssXFxuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYy0zMDctXFx0XFx0XFx0ICAgc3RydWN0IHB0cF9jbG9ja19yZXF1ZXN0ICpjbGtyZXEsIGJvb2wgb24sXFxuLS1cXG5kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jLTMwOS17XFxuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYzozMTA6XFx0c3RydWN0IGRwODM2NDBfcHJpdmF0ZSAqZHA4MzY0MCA9IGNsb2NrLVxcdTAwM2VjaG9zZW47XFxuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYzozMTE6XFx0c3RydWN0IHBoeV9kZXZpY2UgKnBoeWRldiA9IGRwODM2NDAtXFx1MDAzZXBoeWRldjtcXG5kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jLTMxMi1cXHR1MzIgc2VjLCBuc2VjLCBwd2lkdGg7XFxuLS1cXG5kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jLTM3Ni1cXG5kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jOjM3NzpzdGF0aWMgaW50IHB0cF9kcDgzNjQwX2FkamZpbmUoc3RydWN0IHB0cF9jbG9ja19pbmZvICpwdHAsIGxvbmcgc2NhbGVkX3BwbSlcXG5kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jLTM3OC17XFxuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYzozNzk6XFx0c3RydWN0IGRwODM2NDBfY2xvY2sgKmNsb2NrID1cXG5kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jOjM4MDpcXHRcXHRjb250YWluZXJfb2YocHRwLCBzdHJ1Y3QgZHA4MzY0MF9jbG9jaywgY2Fwcyk7XFxuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYy0zODEtXFx0c3RydWN0IHBoeV9kZXZpY2UgKnBoeWRldiA9IGNsb2NrLVxcdTAwM2VjaG9zZW4tXFx1MDAzZXBoeWRldjtcXG4tLVxcbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmMtNDA5LVxcbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmM6NDEwOnN0YXRpYyBpbnQgcHRwX2RwODM2NDBfYWRqdGltZShzdHJ1Y3QgcHRwX2Nsb2NrX2luZm8gKnB0cCwgczY0IGRlbHRhKVxcbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmMtNDExLXtcXG5kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jOjQxMjpcXHRzdHJ1Y3QgZHA4MzY0MF9jbG9jayAqY2xvY2sgPVxcbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmM6NDEzOlxcdFxcdGNvbnRhaW5lcl9vZihwdHAsIHN0cnVjdCBkcDgzNjQwX2Nsb2NrLCBjYXBzKTtcXG5kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jLTQxNC1cXHRzdHJ1Y3QgcGh5X2RldmljZSAqcGh5ZGV2ID0gY2xvY2stXFx1MDAzZWNob3Nlbi1cXHUwMDNlcGh5ZGV2O1xcbi0tXFxuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYy00MzAtXFxuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYzo0MzE6c3RhdGljIGludCBwdHBfZHA4MzY0MF9nZXR0aW1lKHN0cnVjdCBwdHBfY2xvY2tfaW5mbyAqcHRwLFxcbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmMtNDMyLVxcdFxcdFxcdCAgICAgICBzdHJ1Y3QgdGltZXNwZWM2NCAqdHMpXFxuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYy00MzMte1xcbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmM6NDM0OlxcdHN0cnVjdCBkcDgzNjQwX2Nsb2NrICpjbG9jayA9XFxuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYzo0MzU6XFx0XFx0Y29udGFpbmVyX29mKHB0cCwgc3RydWN0IGRwODM2NDBfY2xvY2ssIGNhcHMpO1xcbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmMtNDM2LVxcdHN0cnVjdCBwaHlfZGV2aWNlICpwaHlkZXYgPSBjbG9jay1cXHUwMDNlY2hvc2VuLVxcdTAwM2VwaHlkZXY7XFxuLS1cXG5kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jLTQ1NS1cXG5kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jOjQ1NjpzdGF0aWMgaW50IHB0cF9kcDgzNjQwX3NldHRpbWUoc3RydWN0IHB0cF9jbG9ja19pbmZvICpwdHAsXFxuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYy00NTctXFx0XFx0XFx0ICAgICAgIGNvbnN0IHN0cnVjdCB0aW1lc3BlYzY0ICp0cylcXG5kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jLTQ1OC17XFxuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYzo0NTk6XFx0c3RydWN0IGRwODM2NDBfY2xvY2sgKmNsb2NrID1cXG5kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jOjQ2MDpcXHRcXHRjb250YWluZXJfb2YocHRwLCBzdHJ1Y3QgZHA4MzY0MF9jbG9jaywgY2Fwcyk7XFxuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYy00NjEtXFx0c3RydWN0IHBoeV9kZXZpY2UgKnBoeWRldiA9IGNsb2NrLVxcdTAwM2VjaG9zZW4tXFx1MDAzZXBoeWRldjtcXG4tLVxcbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmMtNDcyLVxcbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmM6NDczOnN0YXRpYyBpbnQgcHRwX2RwODM2NDBfZW5hYmxlKHN0cnVjdCBwdHBfY2xvY2tfaW5mbyAqcHRwLFxcbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmMtNDc0LVxcdFxcdFxcdCAgICAgIHN0cnVjdCBwdHBfY2xvY2tfcmVxdWVzdCAqcnEsIGludCBvbilcXG5kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jLTQ3NS17XFxuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYzo0NzY6XFx0c3RydWN0IGRwODM2NDBfY2xvY2sgKmNsb2NrID1cXG5kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jOjQ3NzpcXHRcXHRjb250YWluZXJfb2YocHRwLCBzdHJ1Y3QgZHA4MzY0MF9jbG9jaywgY2Fwcyk7XFxuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYy00NzgtXFx0c3RydWN0IHBoeV9kZXZpY2UgKnBoeWRldiA9IGNsb2NrLVxcdTAwM2VjaG9zZW4tXFx1MDAzZXBoeWRldjtcXG4tLVxcbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmMtNTIyLVxcbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmM6NTIzOnN0YXRpYyBpbnQgcHRwX2RwODM2NDBfdmVyaWZ5KHN0cnVjdCBwdHBfY2xvY2tfaW5mbyAqcHRwLCB1bnNpZ25lZCBpbnQgcGluLFxcbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmMtNTI0LVxcdFxcdFxcdCAgICAgIGVudW0gcHRwX3Bpbl9mdW5jdGlvbiBmdW5jLCB1bnNpZ25lZCBpbnQgY2hhbilcXG5kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jLTUyNS17XFxuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYzo1MjY6XFx0c3RydWN0IGRwODM2NDBfY2xvY2sgKmNsb2NrID1cXG5kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jOjUyNzpcXHRcXHRjb250YWluZXJfb2YocHRwLCBzdHJ1Y3QgZHA4MzY0MF9jbG9jaywgY2Fwcyk7XFxuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYy01MjgtXFxuLS1cXG5kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jPTU0Mj1zdGF0aWMgdm9pZCBlbmFibGVfc3RhdHVzX2ZyYW1lcyhzdHJ1Y3QgcGh5X2RldmljZSAqcGh5ZGV2LCBib29sIG9uKVxcbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmMtNTQzLXtcXG5kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jOjU0NDpcXHRzdHJ1Y3QgZHA4MzY0MF9wcml2YXRlICpkcDgzNjQwID0gcGh5ZGV2LVxcdTAwM2Vwcml2O1xcbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmM6NTQ1OlxcdHN0cnVjdCBkcDgzNjQwX2Nsb2NrICpjbG9jayA9IGRwODM2NDAtXFx1MDAzZWNsb2NrO1xcbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmMtNTQ2LVxcdHUxNiBjZmcwID0gMCwgdmVyO1xcbi0tXFxuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYz01ODY9c3RhdGljIGludCBleHBpcmVkKHN0cnVjdCByeHRzICpyeHRzKVxcbi0tXFxuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYy01OTEtLyogQ2FsbGVyIG11c3QgaG9sZCByeF9sb2NrLiAqL1xcbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmM6NTkyOnN0YXRpYyB2b2lkIHBydW5lX3J4X3RzKHN0cnVjdCBkcDgzNjQwX3ByaXZhdGUgKmRwODM2NDApXFxuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYy01OTMte1xcbi0tXFxuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYy01OTYtXFxuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYzo1OTc6XFx0bGlzdF9mb3JfZWFjaF9zYWZlKHRoaXMsIG5leHQsIFxcdTAwMjZkcDgzNjQwLVxcdTAwM2VyeHRzKSB7XFxuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYy01OTgtXFx0XFx0cnh0cyA9IGxpc3RfZW50cnkodGhpcywgc3RydWN0IHJ4dHMsIGxpc3QpO1xcbi0tXFxuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYy02MDAtXFx0XFx0XFx0bGlzdF9kZWxfaW5pdChcXHUwMDI2cnh0cy1cXHUwMDNlbGlzdCk7XFxuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYzo2MDE6XFx0XFx0XFx0bGlzdF9hZGQoXFx1MDAyNnJ4dHMtXFx1MDAzZWxpc3QsIFxcdTAwMjZkcDgzNjQwLVxcdTAwM2VyeHBvb2wpO1xcbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmMtNjAyLVxcdFxcdH1cXG4tLVxcbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmM9NjA4PXN0YXRpYyB2b2lkIGVuYWJsZV9icm9hZGNhc3Qoc3RydWN0IHBoeV9kZXZpY2UgKnBoeWRldiwgaW50IGluaXRfcGFnZSwgaW50IG9uKVxcbi0tXFxuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYy02MjEtXFxuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYzo2MjI6c3RhdGljIHZvaWQgcmVjYWxpYnJhdGUoc3RydWN0IGRwODM2NDBfY2xvY2sgKmNsb2NrKVxcbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmMtNjIzLXtcXG4tLVxcbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmMtNjI2LVxcdHN0cnVjdCB0aW1lc3BlYzY0IHRzO1xcbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmM6NjI3OlxcdHN0cnVjdCBkcDgzNjQwX3ByaXZhdGUgKnRtcDtcXG5kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jLTYyOC1cXHRzdHJ1Y3QgcGh5X2RldmljZSAqbWFzdGVyID0gY2xvY2stXFx1MDAzZWNob3Nlbi1cXHUwMDNlcGh5ZGV2O1xcbi0tXFxuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYz03MzA9c3RhdGljIGlubGluZSB1MTYgZXh0c19jaGFuX3RvX2VkYXRhKGludCBjaClcXG4tLVxcbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmMtNzM0LVxcbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmM6NzM1OnN0YXRpYyBpbnQgZGVjb2RlX2V2bnQoc3RydWN0IGRwODM2NDBfcHJpdmF0ZSAqZHA4MzY0MCxcXG5kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jLTczNi1cXHRcXHQgICAgICAgdm9pZCAqZGF0YSwgaW50IGxlbiwgdTE2IGVzdHMpXFxuLS1cXG5kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jLTc2Mi1cXHRjYXNlIDM6XFxuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYzo3NjM6XFx0XFx0ZHA4MzY0MC1cXHUwMDNlZWRhdGEuc2VjX2hpID0gcGh5X3R4dHMtXFx1MDAzZXNlY19oaTtcXG5kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jLTc2NC1cXHRcXHRmYWxsdGhyb3VnaDtcXG5kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jLTc2NS1cXHRjYXNlIDI6XFxuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYzo3NjY6XFx0XFx0ZHA4MzY0MC1cXHUwMDNlZWRhdGEuc2VjX2xvID0gcGh5X3R4dHMtXFx1MDAzZXNlY19sbztcXG5kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jLTc2Ny1cXHRcXHRmYWxsdGhyb3VnaDtcXG5kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jLTc2OC1cXHRjYXNlIDE6XFxuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYzo3Njk6XFx0XFx0ZHA4MzY0MC1cXHUwMDNlZWRhdGEubnNfaGkgPSBwaHlfdHh0cy1cXHUwMDNlbnNfaGk7XFxuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYy03NzAtXFx0XFx0ZmFsbHRocm91Z2g7XFxuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYy03NzEtXFx0Y2FzZSAwOlxcbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmM6NzcyOlxcdFxcdGRwODM2NDAtXFx1MDAzZWVkYXRhLm5zX2xvID0gcGh5X3R4dHMtXFx1MDAzZW5zX2xvO1xcbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmMtNzczLVxcdH1cXG4tLVxcbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmMtNzgwLVxcdGV2ZW50LnR5cGUgPSBQVFBfQ0xPQ0tfRVhUVFM7XFxuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYzo3ODE6XFx0ZXZlbnQudGltZXN0YW1wID0gcGh5MnR4dHMoXFx1MDAyNmRwODM2NDAtXFx1MDAzZWVkYXRhKTtcXG5kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jLTc4Mi1cXG4tLVxcbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmMtNzg4LVxcdFxcdFxcdGV2ZW50LmluZGV4ID0gaTtcXG5kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jOjc4OTpcXHRcXHRcXHRwdHBfY2xvY2tfZXZlbnQoZHA4MzY0MC1cXHUwMDNlY2xvY2stXFx1MDAzZXB0cF9jbG9jaywgXFx1MDAyNmV2ZW50KTtcXG5kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jLTc5MC1cXHRcXHR9XFxuLS1cXG5kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jPTc5OD1zdGF0aWMgaW50IG1hdGNoKHN0cnVjdCBza19idWZmICpza2IsIHVuc2lnbmVkIGludCB0eXBlLCBzdHJ1Y3Qgcnh0cyAqcnh0cylcXG4tLVxcbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmMtODI3LVxcbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmM6ODI4OnN0YXRpYyB2b2lkIGRlY29kZV9yeHRzKHN0cnVjdCBkcDgzNjQwX3ByaXZhdGUgKmRwODM2NDAsXFxuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYy04MjktXFx0XFx0XFx0c3RydWN0IHBoeV9yeHRzICpwaHlfcnh0cylcXG4tLVxcbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmMtODQwLVxcbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmM6ODQxOlxcdHNwaW5fbG9ja19pcnFzYXZlKFxcdTAwMjZkcDgzNjQwLVxcdTAwM2VyeF9sb2NrLCBmbGFncyk7XFxuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYy04NDItXFxuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYzo4NDM6XFx0cHJ1bmVfcnhfdHMoZHA4MzY0MCk7XFxuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYy04NDQtXFxuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYzo4NDU6XFx0aWYgKGxpc3RfZW1wdHkoXFx1MDAyNmRwODM2NDAtXFx1MDAzZXJ4cG9vbCkpIHtcXG5kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jLTg0Ni1cXHRcXHRwcl9kZWJ1ZyhcXFwicnggdGltZXN0YW1wIHBvb2wgaXMgZW1wdHlcXFxcblxcXCIpO1xcbi0tXFxuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYy04NDgtXFx0fVxcbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmM6ODQ5OlxcdHJ4dHMgPSBsaXN0X2ZpcnN0X2VudHJ5KFxcdTAwMjZkcDgzNjQwLVxcdTAwM2VyeHBvb2wsIHN0cnVjdCByeHRzLCBsaXN0KTtcXG5kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jLTg1MC1cXHRsaXN0X2RlbF9pbml0KFxcdTAwMjZyeHRzLVxcdTAwM2VsaXN0KTtcXG4tLVxcbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmMtODUyLVxcbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmM6ODUzOlxcdHNwaW5fbG9jayhcXHUwMDI2ZHA4MzY0MC1cXHUwMDNlcnhfcXVldWUubG9jayk7XFxuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYzo4NTQ6XFx0c2tiX3F1ZXVlX3dhbGsoXFx1MDAyNmRwODM2NDAtXFx1MDAzZXJ4X3F1ZXVlLCBza2IpIHtcXG5kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jOjg1NTpcXHRcXHRzdHJ1Y3QgZHA4MzY0MF9za2JfaW5mbyAqc2tiX2luZm87XFxuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYy04NTYtXFxuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYzo4NTc6XFx0XFx0c2tiX2luZm8gPSAoc3RydWN0IGRwODM2NDBfc2tiX2luZm8gKilza2ItXFx1MDAzZWNiO1xcbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmMtODU4LVxcdFxcdGlmIChtYXRjaChza2IsIHNrYl9pbmZvLVxcdTAwM2VwdHBfdHlwZSwgcnh0cykpIHtcXG5kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jOjg1OTpcXHRcXHRcXHRfX3NrYl91bmxpbmsoc2tiLCBcXHUwMDI2ZHA4MzY0MC1cXHUwMDNlcnhfcXVldWUpO1xcbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmMtODYwLVxcdFxcdFxcdHNoaHd0c3RhbXBzID0gc2tiX2h3dHN0YW1wcyhza2IpO1xcbi0tXFxuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYy04NjItXFx0XFx0XFx0c2hod3RzdGFtcHMtXFx1MDAzZWh3dHN0YW1wID0gbnNfdG9fa3RpbWUocnh0cy1cXHUwMDNlbnMpO1xcbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmM6ODYzOlxcdFxcdFxcdGxpc3RfYWRkKFxcdTAwMjZyeHRzLVxcdTAwM2VsaXN0LCBcXHUwMDI2ZHA4MzY0MC1cXHUwMDNlcnhwb29sKTtcXG5kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jLTg2NC1cXHRcXHRcXHRicmVhaztcXG4tLVxcbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmMtODY2LVxcdH1cXG5kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jOjg2NzpcXHRzcGluX3VubG9jayhcXHUwMDI2ZHA4MzY0MC1cXHUwMDNlcnhfcXVldWUubG9jayk7XFxuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYy04NjgtXFxuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYy04NjktXFx0aWYgKCFzaGh3dHN0YW1wcylcXG5kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jOjg3MDpcXHRcXHRsaXN0X2FkZF90YWlsKFxcdTAwMjZyeHRzLVxcdTAwM2VsaXN0LCBcXHUwMDI2ZHA4MzY0MC1cXHUwMDNlcnh0cyk7XFxuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYy04NzEtb3V0OlxcbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmM6ODcyOlxcdHNwaW5fdW5sb2NrX2lycXJlc3RvcmUoXFx1MDAyNmRwODM2NDAtXFx1MDAzZXJ4X2xvY2ssIGZsYWdzKTtcXG5kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jLTg3My1cXG4tLVxcbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmMtODc3LVxcbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmM6ODc4OnN0YXRpYyB2b2lkIGRlY29kZV90eHRzKHN0cnVjdCBkcDgzNjQwX3ByaXZhdGUgKmRwODM2NDAsXFxuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYy04NzktXFx0XFx0XFx0c3RydWN0IHBoeV90eHRzICpwaHlfdHh0cylcXG4tLVxcbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmMtODgxLVxcdHN0cnVjdCBza2Jfc2hhcmVkX2h3dHN0YW1wcyBzaGh3dHN0YW1wcztcXG5kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jOjg4MjpcXHRzdHJ1Y3QgZHA4MzY0MF9za2JfaW5mbyAqc2tiX2luZm87XFxuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYy04ODMtXFx0c3RydWN0IHNrX2J1ZmYgKnNrYjtcXG4tLVxcbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmMtODg4LWFnYWluOlxcbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmM6ODg5OlxcdHNrYiA9IHNrYl9kZXF1ZXVlKFxcdTAwMjZkcDgzNjQwLVxcdTAwM2V0eF9xdWV1ZSk7XFxuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYy04OTAtXFx0aWYgKCFza2IpIHtcXG4tLVxcbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmMtODk5LVxcdFxcdFxcdGtmcmVlX3NrYihza2IpO1xcbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmM6OTAwOlxcdFxcdFxcdHNrYiA9IHNrYl9kZXF1ZXVlKFxcdTAwMjZkcDgzNjQwLVxcdTAwM2V0eF9xdWV1ZSk7XFxuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYy05MDEtXFx0XFx0fVxcbi0tXFxuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYy05MDMtXFx0fVxcbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmM6OTA0OlxcdHNrYl9pbmZvID0gKHN0cnVjdCBkcDgzNjQwX3NrYl9pbmZvICopc2tiLVxcdTAwM2VjYjtcXG5kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jLTkwNS1cXHRpZiAodGltZV9hZnRlcihqaWZmaWVzLCBza2JfaW5mby1cXHUwMDNldG1vKSkge1xcbi0tXFxuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYy05MTUtXFxuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYzo5MTY6c3RhdGljIHZvaWQgZGVjb2RlX3N0YXR1c19mcmFtZShzdHJ1Y3QgZHA4MzY0MF9wcml2YXRlICpkcDgzNjQwLFxcbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmMtOTE3LVxcdFxcdFxcdFxcdHN0cnVjdCBza19idWZmICpza2IpXFxuLS1cXG5kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jLTkzNy1cXHRcXHRcXHRwaHlfcnh0cyA9IChzdHJ1Y3QgcGh5X3J4dHMgKikgcHRyO1xcbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmM6OTM4OlxcdFxcdFxcdGRlY29kZV9yeHRzKGRwODM2NDAsIHBoeV9yeHRzKTtcXG5kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jLTkzOS1cXHRcXHRcXHRzaXplID0gc2l6ZW9mKCpwaHlfcnh0cyk7XFxuLS1cXG5kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jLTk0My1cXHRcXHRcXHRwaHlfdHh0cyA9IChzdHJ1Y3QgcGh5X3R4dHMgKikgcHRyO1xcbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmM6OTQ0OlxcdFxcdFxcdGRlY29kZV90eHRzKGRwODM2NDAsIHBoeV90eHRzKTtcXG5kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jLTk0NS1cXHRcXHRcXHRzaXplID0gc2l6ZW9mKCpwaHlfdHh0cyk7XFxuLS1cXG5kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jLTk0OC1cXG5kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jOjk0OTpcXHRcXHRcXHRzaXplID0gZGVjb2RlX2V2bnQoZHA4MzY0MCwgcHRyLCBsZW4sIGVzdHMpO1xcbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmMtOTUwLVxcbi0tXFxuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYy05NTgtXFxuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYzo5NTk6c3RhdGljIHZvaWQgZHA4MzY0MF9jbG9ja19pbml0KHN0cnVjdCBkcDgzNjQwX2Nsb2NrICpjbG9jaywgc3RydWN0IG1paV9idXMgKmJ1cylcXG5kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jLTk2MC17XFxuLS1cXG5kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jLTk2Ny1cXHRjbG9jay1cXHUwMDNlY2Fwcy5vd25lciA9IFRISVNfTU9EVUxFO1xcbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmM6OTY4OlxcdHNwcmludGYoY2xvY2stXFx1MDAzZWNhcHMubmFtZSwgXFxcImRwODM2NDAgdGltZXJcXFwiKTtcXG5kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jLTk2OS1cXHRjbG9jay1cXHUwMDNlY2Fwcy5tYXhfYWRqXFx0PSAxOTUzMTI0O1xcbi0tXFxuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYy05NzctXFx0XFx0XFx0XFx0XFx0ICAgIFBUUF9TVFJJQ1RfRkxBR1M7XFxuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYzo5Nzg6XFx0Y2xvY2stXFx1MDAzZWNhcHMuYWRqZmluZVxcdD0gcHRwX2RwODM2NDBfYWRqZmluZTtcXG5kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jOjk3OTpcXHRjbG9jay1cXHUwMDNlY2Fwcy5hZGp0aW1lXFx0PSBwdHBfZHA4MzY0MF9hZGp0aW1lO1xcbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmM6OTgwOlxcdGNsb2NrLVxcdTAwM2VjYXBzLmdldHRpbWU2NFxcdD0gcHRwX2RwODM2NDBfZ2V0dGltZTtcXG5kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jOjk4MTpcXHRjbG9jay1cXHUwMDNlY2Fwcy5zZXR0aW1lNjRcXHQ9IHB0cF9kcDgzNjQwX3NldHRpbWU7XFxuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYzo5ODI6XFx0Y2xvY2stXFx1MDAzZWNhcHMuZW5hYmxlXFx0PSBwdHBfZHA4MzY0MF9lbmFibGU7XFxuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYzo5ODM6XFx0Y2xvY2stXFx1MDAzZWNhcHMudmVyaWZ5XFx0PSBwdHBfZHA4MzY0MF92ZXJpZnk7XFxuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYy05ODQtXFx0LypcXG4tLVxcbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmMtOTg2LVxcdCAqL1xcbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmM6OTg3OlxcdGRwODM2NDBfZ3Bpb19kZWZhdWx0cyhjbG9jay1cXHUwMDNlY2Fwcy5waW5fY29uZmlnKTtcXG5kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jLTk4OC1cXHQvKlxcbi0tXFxuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYy05OTMtXFxuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYzo5OTQ6c3RhdGljIGludCBjaG9vc2VfdGhpc19waHkoc3RydWN0IGRwODM2NDBfY2xvY2sgKmNsb2NrLFxcbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmMtOTk1LVxcdFxcdFxcdCAgIHN0cnVjdCBwaHlfZGV2aWNlICpwaHlkZXYpXFxuLS1cXG5kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jLTEwMDUtXFxuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYzoxMDA2OnN0YXRpYyB2b2lkIGRwODM2NDBfY2xvY2tfbG9jayhzdHJ1Y3QgZHA4MzY0MF9jbG9jayAqY2xvY2spXFxuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYy0xMDA3LXtcXG4tLVxcbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmMtMTAxNC0gKi9cXG5kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jOjEwMTU6c3RhdGljIHN0cnVjdCBkcDgzNjQwX2Nsb2NrICpkcDgzNjQwX2Nsb2NrX2dldF9idXMoc3RydWN0IG1paV9idXMgKmJ1cylcXG5kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jLTEwMTYte1xcbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmM6MTAxNzpcXHRzdHJ1Y3QgZHA4MzY0MF9jbG9jayAqY2xvY2sgPSBOVUxMLCAqdG1wO1xcbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmMtMTAxOC1cXHRzdHJ1Y3QgbGlzdF9oZWFkICp0aGlzO1xcbi0tXFxuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYy0xMDIyLVxcdGxpc3RfZm9yX2VhY2godGhpcywgXFx1MDAyNnBoeXRlcl9jbG9ja3MpIHtcXG5kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jOjEwMjM6XFx0XFx0dG1wID0gbGlzdF9lbnRyeSh0aGlzLCBzdHJ1Y3QgZHA4MzY0MF9jbG9jaywgbGlzdCk7XFxuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYy0xMDI0LVxcdFxcdGlmICh0bXAtXFx1MDAzZWJ1cyA9PSBidXMpIHtcXG4tLVxcbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmMtMTAzMi1cXG5kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jOjEwMzM6XFx0Y2xvY2sgPSBremFsbG9jX29iaihzdHJ1Y3QgZHA4MzY0MF9jbG9jayk7XFxuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYy0xMDM0LVxcdGlmICghY2xvY2spXFxuLS1cXG5kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jLTEwNDMtXFx0fVxcbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmM6MTA0NDpcXHRkcDgzNjQwX2Nsb2NrX2luaXQoY2xvY2ssIGJ1cyk7XFxuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYy0xMDQ1LVxcdGxpc3RfYWRkX3RhaWwoXFx1MDAyNmNsb2NrLVxcdTAwM2VsaXN0LCBcXHUwMDI2cGh5dGVyX2Nsb2Nrcyk7XFxuLS1cXG5kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jLTEwNDktXFx0aWYgKGNsb2NrKVxcbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmM6MTA1MDpcXHRcXHRkcDgzNjQwX2Nsb2NrX2xvY2soY2xvY2spO1xcbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmMtMTA1MS1cXG4tLVxcbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmMtMTA1NC1cXG5kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jOjEwNTU6c3RhdGljIHZvaWQgZHA4MzY0MF9jbG9ja191bmxvY2soc3RydWN0IGRwODM2NDBfY2xvY2sgKmNsb2NrKVxcbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmMtMTA1Ni17XFxuLS1cXG5kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jLTEwNTktXFxuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYzoxMDYwOnN0YXRpYyB2b2lkIGRwODM2NDBfY2xvY2tfcmVsZWFzZShzdHJ1Y3Qga3JlZiAqa3JlZilcXG5kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jLTEwNjEte1xcbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmM6MTA2MjpcXHRzdHJ1Y3QgZHA4MzY0MF9jbG9jayAqY2xvY2sgPVxcbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmM6MTA2MzpcXHRcXHRjb250YWluZXJfb2Yoa3JlZiwgc3RydWN0IGRwODM2NDBfY2xvY2ssIGtyZWYpO1xcbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmMtMTA2NC1cXG4tLVxcbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmMtMTA3NC1cXG5kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jOjEwNzU6c3RhdGljIHZvaWQgZHA4MzY0MF9jbG9ja19wdXQoc3RydWN0IGRwODM2NDBfY2xvY2sgKmNsb2NrKVxcbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmMtMTA3Ni17XFxuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYzoxMDc3OlxcdGtyZWZfcHV0X211dGV4KFxcdTAwMjZjbG9jay1cXHUwMDNla3JlZiwgZHA4MzY0MF9jbG9ja19yZWxlYXNlLFxcbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmMtMTA3OC1cXHRcXHQgICAgICAgXFx1MDAyNnBoeXRlcl9jbG9ja3NfbG9jayk7XFxuLS1cXG5kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jLTEwODAtXFxuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYzoxMDgxOnN0YXRpYyBpbnQgZHA4MzY0MF9zb2Z0X3Jlc2V0KHN0cnVjdCBwaHlfZGV2aWNlICpwaHlkZXYpXFxuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYy0xMDgyLXtcXG4tLVxcbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmMtMTA5Ny1cXG5kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jOjEwOTg6c3RhdGljIGludCBkcDgzNjQwX2NvbmZpZ19pbml0KHN0cnVjdCBwaHlfZGV2aWNlICpwaHlkZXYpXFxuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYy0xMDk5LXtcXG5kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jOjExMDA6XFx0c3RydWN0IGRwODM2NDBfcHJpdmF0ZSAqZHA4MzY0MCA9IHBoeWRldi1cXHUwMDNlcHJpdjtcXG5kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jOjExMDE6XFx0c3RydWN0IGRwODM2NDBfY2xvY2sgKmNsb2NrID0gZHA4MzY0MC1cXHUwMDNlY2xvY2s7XFxuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYy0xMTAyLVxcbi0tXFxuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYy0xMTE5LVxcbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmM6MTEyMDpzdGF0aWMgaW50IGRwODM2NDBfYWNrX2ludGVycnVwdChzdHJ1Y3QgcGh5X2RldmljZSAqcGh5ZGV2KVxcbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmMtMTEyMS17XFxuLS1cXG5kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jLTExMjktXFxuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYzoxMTMwOnN0YXRpYyBpbnQgZHA4MzY0MF9jb25maWdfaW50cihzdHJ1Y3QgcGh5X2RldmljZSAqcGh5ZGV2KVxcbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmMtMTEzMS17XFxuLS1cXG5kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jLTExMzYtXFx0aWYgKHBoeWRldi1cXHUwMDNlaW50ZXJydXB0cyA9PSBQSFlfSU5URVJSVVBUX0VOQUJMRUQpIHtcXG5kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jOjExMzc6XFx0XFx0ZXJyID0gZHA4MzY0MF9hY2tfaW50ZXJydXB0KHBoeWRldik7XFxuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYy0xMTM4LVxcdFxcdGlmIChlcnIpXFxuLS1cXG5kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jLTExODItXFxuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYzoxMTgzOlxcdFxcdHJldHVybiBkcDgzNjQwX2Fja19pbnRlcnJ1cHQocGh5ZGV2KTtcXG5kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jLTExODQtXFx0fVxcbi0tXFxuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYy0xMTg2LVxcbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmM6MTE4NzpzdGF0aWMgaXJxcmV0dXJuX3QgZHA4MzY0MF9oYW5kbGVfaW50ZXJydXB0KHN0cnVjdCBwaHlfZGV2aWNlICpwaHlkZXYpXFxuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYy0xMTg4LXtcXG4tLVxcbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmMtMTIwNC1cXG5kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jOjEyMDU6c3RhdGljIGludCBkcDgzNjQwX2h3dHN0YW1wX2dldChzdHJ1Y3QgbWlpX3RpbWVzdGFtcGVyICptaWlfdHMsXFxuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYy0xMjA2LVxcdFxcdFxcdFxcdHN0cnVjdCBrZXJuZWxfaHd0c3RhbXBfY29uZmlnICpjZmcpXFxuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYy0xMjA3LXtcXG5kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jOjEyMDg6XFx0c3RydWN0IGRwODM2NDBfcHJpdmF0ZSAqZHA4MzY0MCA9XFxuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYzoxMjA5OlxcdFxcdGNvbnRhaW5lcl9vZihtaWlfdHMsIHN0cnVjdCBkcDgzNjQwX3ByaXZhdGUsIG1paV90cyk7XFxuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYy0xMjEwLVxcbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmM6MTIxMTpcXHRjZmctXFx1MDAzZXJ4X2ZpbHRlciA9IGRwODM2NDAtXFx1MDAzZWh3dHNfcnhfZW47XFxuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYzoxMjEyOlxcdGNmZy1cXHUwMDNldHhfdHlwZSA9IGRwODM2NDAtXFx1MDAzZWh3dHNfdHhfZW47XFxuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYy0xMjEzLVxcbi0tXFxuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYy0xMjE2LVxcbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmM6MTIxNzpzdGF0aWMgaW50IGRwODM2NDBfaHd0c3RhbXBfc2V0KHN0cnVjdCBtaWlfdGltZXN0YW1wZXIgKm1paV90cyxcXG5kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jLTEyMTgtXFx0XFx0XFx0XFx0c3RydWN0IGtlcm5lbF9od3RzdGFtcF9jb25maWcgKmNmZyxcXG4tLVxcbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmMtMTIyMC17XFxuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYzoxMjIxOlxcdHN0cnVjdCBkcDgzNjQwX3ByaXZhdGUgKmRwODM2NDAgPVxcbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmM6MTIyMjpcXHRcXHRjb250YWluZXJfb2YobWlpX3RzLCBzdHJ1Y3QgZHA4MzY0MF9wcml2YXRlLCBtaWlfdHMpO1xcbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmMtMTIyMy1cXHR1MTYgdHhjZmcwLCByeGNmZzA7XFxuLS1cXG5kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jLTEyMjctXFxuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYzoxMjI4OlxcdGRwODM2NDAtXFx1MDAzZWh3dHNfdHhfZW4gPSBjZmctXFx1MDAzZXR4X3R5cGU7XFxuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYy0xMjI5LVxcbi0tXFxuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYy0xMjMxLVxcdGNhc2UgSFdUU1RBTVBfRklMVEVSX05PTkU6XFxuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYzoxMjMyOlxcdFxcdGRwODM2NDAtXFx1MDAzZWh3dHNfcnhfZW4gPSAwO1xcbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmM6MTIzMzpcXHRcXHRkcDgzNjQwLVxcdTAwM2VsYXllciA9IDA7XFxuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYzoxMjM0OlxcdFxcdGRwODM2NDAtXFx1MDAzZXZlcnNpb24gPSAwO1xcbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmMtMTIzNS1cXHRcXHRicmVhaztcXG4tLVxcbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmMtMTIzOC1cXHRjYXNlIEhXVFNUQU1QX0ZJTFRFUl9QVFBfVjFfTDRfREVMQVlfUkVROlxcbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmM6MTIzOTpcXHRcXHRkcDgzNjQwLVxcdTAwM2Vod3RzX3J4X2VuID0gSFdUU1RBTVBfRklMVEVSX1BUUF9WMV9MNF9FVkVOVDtcXG5kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jOjEyNDA6XFx0XFx0ZHA4MzY0MC1cXHUwMDNlbGF5ZXIgPSBQVFBfQ0xBU1NfTDQ7XFxuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYzoxMjQxOlxcdFxcdGRwODM2NDAtXFx1MDAzZXZlcnNpb24gPSBQVFBfQ0xBU1NfVjE7XFxuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYy0xMjQyLVxcdFxcdGNmZy1cXHUwMDNlcnhfZmlsdGVyID0gSFdUU1RBTVBfRklMVEVSX1BUUF9WMV9MNF9FVkVOVDtcXG4tLVxcbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmMtMTI0Ni1cXHRjYXNlIEhXVFNUQU1QX0ZJTFRFUl9QVFBfVjJfTDRfREVMQVlfUkVROlxcbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmM6MTI0NzpcXHRcXHRkcDgzNjQwLVxcdTAwM2Vod3RzX3J4X2VuID0gSFdUU1RBTVBfRklMVEVSX1BUUF9WMl9MNF9FVkVOVDtcXG5kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jOjEyNDg6XFx0XFx0ZHA4MzY0MC1cXHUwMDNlbGF5ZXIgPSBQVFBfQ0xBU1NfTDQ7XFxuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYzoxMjQ5OlxcdFxcdGRwODM2NDAtXFx1MDAzZXZlcnNpb24gPSBQVFBfQ0xBU1NfVjI7XFxuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYy0xMjUwLVxcdFxcdGNmZy1cXHUwMDNlcnhfZmlsdGVyID0gSFdUU1RBTVBfRklMVEVSX1BUUF9WMl9MNF9FVkVOVDtcXG4tLVxcbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmMtMTI1NC1cXHRjYXNlIEhXVFNUQU1QX0ZJTFRFUl9QVFBfVjJfTDJfREVMQVlfUkVROlxcbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmM6MTI1NTpcXHRcXHRkcDgzNjQwLVxcdTAwM2Vod3RzX3J4X2VuID0gSFdUU1RBTVBfRklMVEVSX1BUUF9WMl9MMl9FVkVOVDtcXG5kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jOjEyNTY6XFx0XFx0ZHA4MzY0MC1cXHUwMDNlbGF5ZXIgPSBQVFBfQ0xBU1NfTDI7XFxuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYzoxMjU3OlxcdFxcdGRwODM2NDAtXFx1MDAzZXZlcnNpb24gPSBQVFBfQ0xBU1NfVjI7XFxuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYy0xMjU4LVxcdFxcdGNmZy1cXHUwMDNlcnhfZmlsdGVyID0gSFdUU1RBTVBfRklMVEVSX1BUUF9WMl9MMl9FVkVOVDtcXG4tLVxcbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmMtMTI2Mi1cXHRjYXNlIEhXVFNUQU1QX0ZJTFRFUl9QVFBfVjJfREVMQVlfUkVROlxcbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmM6MTI2MzpcXHRcXHRkcDgzNjQwLVxcdTAwM2Vod3RzX3J4X2VuID0gSFdUU1RBTVBfRklMVEVSX1BUUF9WMl9FVkVOVDtcXG5kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jOjEyNjQ6XFx0XFx0ZHA4MzY0MC1cXHUwMDNlbGF5ZXIgPSBQVFBfQ0xBU1NfTDQgfCBQVFBfQ0xBU1NfTDI7XFxuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYzoxMjY1OlxcdFxcdGRwODM2NDAtXFx1MDAzZXZlcnNpb24gPSBQVFBfQ0xBU1NfVjI7XFxuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYy0xMjY2LVxcdFxcdGNmZy1cXHUwMDNlcnhfZmlsdGVyID0gSFdUU1RBTVBfRklMVEVSX1BUUF9WMl9FVkVOVDtcXG4tLVxcbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmMtMTI3MS1cXG5kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jOjEyNzI6XFx0dHhjZmcwID0gKGRwODM2NDAtXFx1MDAzZXZlcnNpb24gXFx1MDAyNiBUWF9QVFBfVkVSX01BU0spIFxcdTAwM2NcXHUwMDNjIFRYX1BUUF9WRVJfU0hJRlQ7XFxuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYzoxMjczOlxcdHJ4Y2ZnMCA9IChkcDgzNjQwLVxcdTAwM2V2ZXJzaW9uIFxcdTAwMjYgVFhfUFRQX1ZFUl9NQVNLKSBcXHUwMDNjXFx1MDAzYyBUWF9QVFBfVkVSX1NISUZUO1xcbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmMtMTI3NC1cXG5kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jOjEyNzU6XFx0aWYgKGRwODM2NDAtXFx1MDAzZWxheWVyIFxcdTAwMjYgUFRQX0NMQVNTX0wyKSB7XFxuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYy0xMjc2LVxcdFxcdHR4Y2ZnMCB8PSBUWF9MMl9FTjtcXG4tLVxcbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmMtMTI3OC1cXHR9XFxuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYzoxMjc5OlxcdGlmIChkcDgzNjQwLVxcdTAwM2VsYXllciBcXHUwMDI2IFBUUF9DTEFTU19MNCkge1xcbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmMtMTI4MC1cXHRcXHR0eGNmZzAgfD0gVFhfSVBWNl9FTiB8IFRYX0lQVjRfRU47XFxuLS1cXG5kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jLTEyODMtXFxuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYzoxMjg0OlxcdGlmIChkcDgzNjQwLVxcdTAwM2Vod3RzX3R4X2VuKVxcbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmMtMTI4NS1cXHRcXHR0eGNmZzAgfD0gVFhfVFNfRU47XFxuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYy0xMjg2LVxcbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmM6MTI4NzpcXHRpZiAoZHA4MzY0MC1cXHUwMDNlaHd0c190eF9lbiA9PSBIV1RTVEFNUF9UWF9PTkVTVEVQX1NZTkMpXFxuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYy0xMjg4LVxcdFxcdHR4Y2ZnMCB8PSBTWU5DXzFTVEVQIHwgQ0hLXzFTVEVQO1xcbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmMtMTI4OS1cXG5kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jOjEyOTA6XFx0aWYgKGRwODM2NDAtXFx1MDAzZWh3dHNfcnhfZW4pXFxuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYy0xMjkxLVxcdFxcdHJ4Y2ZnMCB8PSBSWF9UU19FTjtcXG5kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jLTEyOTItXFxuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYzoxMjkzOlxcdG11dGV4X2xvY2soXFx1MDAyNmRwODM2NDAtXFx1MDAzZWNsb2NrLVxcdTAwM2VleHRyZWdfbG9jayk7XFxuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYy0xMjk0LVxcbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmM6MTI5NTpcXHRleHRfd3JpdGUoMCwgZHA4MzY0MC1cXHUwMDNlcGh5ZGV2LCBQQUdFNSwgUFRQX1RYQ0ZHMCwgdHhjZmcwKTtcXG5kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jOjEyOTY6XFx0ZXh0X3dyaXRlKDAsIGRwODM2NDAtXFx1MDAzZXBoeWRldiwgUEFHRTUsIFBUUF9SWENGRzAsIHJ4Y2ZnMCk7XFxuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYy0xMjk3LVxcbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmM6MTI5ODpcXHRtdXRleF91bmxvY2soXFx1MDAyNmRwODM2NDAtXFx1MDAzZWNsb2NrLVxcdTAwM2VleHRyZWdfbG9jayk7XFxuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYy0xMjk5LVxcbi0tXFxuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYz0xMzAzPXN0YXRpYyB2b2lkIHJ4X3RpbWVzdGFtcF93b3JrKHN0cnVjdCB3b3JrX3N0cnVjdCAqd29yaylcXG5kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jLTEzMDQte1xcbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmM6MTMwNTpcXHRzdHJ1Y3QgZHA4MzY0MF9wcml2YXRlICpkcDgzNjQwID1cXG5kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jOjEzMDY6XFx0XFx0Y29udGFpbmVyX29mKHdvcmssIHN0cnVjdCBkcDgzNjQwX3ByaXZhdGUsIHRzX3dvcmsud29yayk7XFxuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYy0xMzA3LVxcdHN0cnVjdCBza19idWZmICpza2I7XFxuLS1cXG5kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jLTEzMDktXFx0LyogRGVsaXZlciBleHBpcmVkIHBhY2tldHMuICovXFxuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYzoxMzEwOlxcdHdoaWxlICgoc2tiID0gc2tiX2RlcXVldWUoXFx1MDAyNmRwODM2NDAtXFx1MDAzZXJ4X3F1ZXVlKSkpIHtcXG5kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jOjEzMTE6XFx0XFx0c3RydWN0IGRwODM2NDBfc2tiX2luZm8gKnNrYl9pbmZvO1xcbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmMtMTMxMi1cXG5kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jOjEzMTM6XFx0XFx0c2tiX2luZm8gPSAoc3RydWN0IGRwODM2NDBfc2tiX2luZm8gKilza2ItXFx1MDAzZWNiO1xcbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmMtMTMxNC1cXHRcXHRpZiAoIXRpbWVfYWZ0ZXIoamlmZmllcywgc2tiX2luZm8tXFx1MDAzZXRtbykpIHtcXG5kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jOjEzMTU6XFx0XFx0XFx0c2tiX3F1ZXVlX2hlYWQoXFx1MDAyNmRwODM2NDAtXFx1MDAzZXJ4X3F1ZXVlLCBza2IpO1xcbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmMtMTMxNi1cXHRcXHRcXHRicmVhaztcXG4tLVxcbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmMtMTMyMS1cXG5kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jOjEzMjI6XFx0aWYgKCFza2JfcXVldWVfZW1wdHkoXFx1MDAyNmRwODM2NDAtXFx1MDAzZXJ4X3F1ZXVlKSlcXG5kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jOjEzMjM6XFx0XFx0c2NoZWR1bGVfZGVsYXllZF93b3JrKFxcdTAwMjZkcDgzNjQwLVxcdTAwM2V0c193b3JrLCBTS0JfVElNRVNUQU1QX1RJTUVPVVQpO1xcbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmMtMTMyNC19XFxuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYy0xMzI1LVxcbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmM6MTMyNjpzdGF0aWMgYm9vbCBkcDgzNjQwX3J4dHN0YW1wKHN0cnVjdCBtaWlfdGltZXN0YW1wZXIgKm1paV90cyxcXG5kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jLTEzMjctXFx0XFx0XFx0ICAgICBzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBpbnQgdHlwZSlcXG5kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jLTEzMjgte1xcbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmM6MTMyOTpcXHRzdHJ1Y3QgZHA4MzY0MF9wcml2YXRlICpkcDgzNjQwID1cXG5kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jOjEzMzA6XFx0XFx0Y29udGFpbmVyX29mKG1paV90cywgc3RydWN0IGRwODM2NDBfcHJpdmF0ZSwgbWlpX3RzKTtcXG5kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jOjEzMzE6XFx0c3RydWN0IGRwODM2NDBfc2tiX2luZm8gKnNrYl9pbmZvID0gKHN0cnVjdCBkcDgzNjQwX3NrYl9pbmZvICopc2tiLVxcdTAwM2VjYjtcXG5kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jLTEzMzItXFx0c3RydWN0IGxpc3RfaGVhZCAqdGhpcywgKm5leHQ7XFxuLS1cXG5kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jLTEzMzctXFx0aWYgKGlzX3N0YXR1c19mcmFtZShza2IsIHR5cGUpKSB7XFxuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYzoxMzM4OlxcdFxcdGRlY29kZV9zdGF0dXNfZnJhbWUoZHA4MzY0MCwgc2tiKTtcXG5kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jLTEzMzktXFx0XFx0a2ZyZWVfc2tiKHNrYik7XFxuLS1cXG5kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jLTEzNDItXFxuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYzoxMzQzOlxcdGlmICghZHA4MzY0MC1cXHUwMDNlaHd0c19yeF9lbilcXG5kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jLTEzNDQtXFx0XFx0cmV0dXJuIGZhbHNlO1xcbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmMtMTM0NS1cXG5kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jOjEzNDY6XFx0aWYgKCh0eXBlIFxcdTAwMjYgZHA4MzY0MC1cXHUwMDNldmVyc2lvbikgPT0gMCB8fCAodHlwZSBcXHUwMDI2IGRwODM2NDAtXFx1MDAzZWxheWVyKSA9PSAwKVxcbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmMtMTM0Ny1cXHRcXHRyZXR1cm4gZmFsc2U7XFxuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYy0xMzQ4LVxcbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmM6MTM0OTpcXHRzcGluX2xvY2tfaXJxc2F2ZShcXHUwMDI2ZHA4MzY0MC1cXHUwMDNlcnhfbG9jaywgZmxhZ3MpO1xcbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmM6MTM1MDpcXHRwcnVuZV9yeF90cyhkcDgzNjQwKTtcXG5kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jOjEzNTE6XFx0bGlzdF9mb3JfZWFjaF9zYWZlKHRoaXMsIG5leHQsIFxcdTAwMjZkcDgzNjQwLVxcdTAwM2VyeHRzKSB7XFxuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYy0xMzUyLVxcdFxcdHJ4dHMgPSBsaXN0X2VudHJ5KHRoaXMsIHN0cnVjdCByeHRzLCBsaXN0KTtcXG4tLVxcbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmMtMTM1Ny1cXHRcXHRcXHRsaXN0X2RlbF9pbml0KFxcdTAwMjZyeHRzLVxcdTAwM2VsaXN0KTtcXG5kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jOjEzNTg6XFx0XFx0XFx0bGlzdF9hZGQoXFx1MDAyNnJ4dHMtXFx1MDAzZWxpc3QsIFxcdTAwMjZkcDgzNjQwLVxcdTAwM2VyeHBvb2wpO1xcbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmMtMTM1OS1cXHRcXHRcXHRicmVhaztcXG4tLVxcbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmMtMTM2MS1cXHR9XFxuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYzoxMzYyOlxcdHNwaW5fdW5sb2NrX2lycXJlc3RvcmUoXFx1MDAyNmRwODM2NDAtXFx1MDAzZXJ4X2xvY2ssIGZsYWdzKTtcXG5kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jLTEzNjMtXFxuLS1cXG5kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jLTEzNjYtXFx0XFx0c2tiX2luZm8tXFx1MDAzZXRtbyA9IGppZmZpZXMgKyBTS0JfVElNRVNUQU1QX1RJTUVPVVQ7XFxuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYzoxMzY3OlxcdFxcdHNrYl9xdWV1ZV90YWlsKFxcdTAwMjZkcDgzNjQwLVxcdTAwM2VyeF9xdWV1ZSwgc2tiKTtcXG5kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jOjEzNjg6XFx0XFx0c2NoZWR1bGVfZGVsYXllZF93b3JrKFxcdTAwMjZkcDgzNjQwLVxcdTAwM2V0c193b3JrLCBTS0JfVElNRVNUQU1QX1RJTUVPVVQpO1xcbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmMtMTM2OS1cXHR9IGVsc2Uge1xcbi0tXFxuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYy0xMzc1LVxcbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmM6MTM3NjpzdGF0aWMgdm9pZCBkcDgzNjQwX3R4dHN0YW1wKHN0cnVjdCBtaWlfdGltZXN0YW1wZXIgKm1paV90cyxcXG5kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jLTEzNzctXFx0XFx0XFx0ICAgICBzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBpbnQgdHlwZSlcXG5kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jLTEzNzgte1xcbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmM6MTM3OTpcXHRzdHJ1Y3QgZHA4MzY0MF9za2JfaW5mbyAqc2tiX2luZm8gPSAoc3RydWN0IGRwODM2NDBfc2tiX2luZm8gKilza2ItXFx1MDAzZWNiO1xcbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmM6MTM4MDpcXHRzdHJ1Y3QgZHA4MzY0MF9wcml2YXRlICpkcDgzNjQwID1cXG5kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jOjEzODE6XFx0XFx0Y29udGFpbmVyX29mKG1paV90cywgc3RydWN0IGRwODM2NDBfcHJpdmF0ZSwgbWlpX3RzKTtcXG5kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jLTEzODItXFxuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYzoxMzgzOlxcdHN3aXRjaCAoZHA4MzY0MC1cXHUwMDNlaHd0c190eF9lbikge1xcbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmMtMTM4NC1cXG5cXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMjVUMDg6MTk6NTcuMDY1MTkwODkxWiIsIlNlcSI6NSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6ODgwMjY0Njg3NywiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipSZWFjaGluZyB0aGUgRFA4MzY0MCBQSFkgRHJpdmVyIHdpdGggU3l6a2FsbGVyKipcblxuT2theSwgc28gdGhlIGBkcDgzNjQwYCBkcml2ZXIgb25seSBnZXRzIGJ1aWx0IGlmIGBDT05GSUdfRFA4MzY0MF9QSFlgIGlzIGVuYWJsZWQuIEl0J3MgYSBQSFkgZHJpdmVyLCBzbyB0aGUga2V5IGlzIGZpZ3VyaW5nIG91dCBob3cgdG8gdHJpZ2dlciBgZHA4MzY0MF9wcm9iZWAgYW5kIGBkcDgzNjQwX3JlbW92ZWAuIENhbiBTeXprYWxsZXIgZG8gaXQ/XG5cbldlbGwsIHRoZW9yZXRpY2FsbHksIFN5emthbGxlciAqY291bGQqIHRyaWdnZXIgaXQgYnkgY3JlYXRpbmcgYSB2aXJ0dWFsIE1ESU8gYnVzIG9yIHVzaW5nIGEgbmV0ZGV2IHRoYXQgcmVnaXN0ZXJzIFBIWXMuIFRoZSBwcm9ibGVtIGlzLCBTeXprYWxsZXIgZG9lc24ndCBoYXZlIGEgZ2VuZXJpYyBNRElPIGJ1cyBlbXVsYXRvciB3aGVyZSBJIGNhbiBqdXN0IHNwZWNpZnkgYSBQSFkgYW5kIGhhdmUgaXQgcHJvYmVkLiBJIHdlbnQgdGhyb3VnaCB0aGUgYXZhaWxhYmxlIG5ldGRldiBvcHRpb25zIC0gYG1hYzgwMjExX2h3c2ltYCwgYG5ldGRldnNpbWAsIGB2aGNpYCwgYGR1bW15YCwgYHZldGhgLCBgdHVuYCwgYW5kIGB0YXBgIC0gbm9uZSBvZiB0aGVtIGV4cG9zZSBhIGRpcmVjdCBNRElPIGJ1cyBpbnRlcmZhY2UuIEkgZXZlbiBjaGVja2VkIGlmIHRoZXJlIHdhcyBzb21lIGBtZGlvLW1vY2t1cGAsIGJ1dCBub3RoaW5nLlxuXG5XaGF0IGFib3V0IGBtZGlvLWdwaW9gIG9yIGBtZGlvLWJpdGJhbmdgPyBDb3VsZCB0aGV5IGJlIGluc3RhbnRpYXRlZCB1c2luZyBkZXZpY2UgdHJlZSBvdmVybGF5cz8gTm8sIFN5emthbGxlciBkb2Vzbid0IHVzZSB0aG9zZS4gQ2FuIHVzZXJzcGFjZSBjcmVhdGUgYW4gTURJTyBidXMgZGlyZWN0bHk/IE1heWJlIHRocm91Z2ggYGkyY2AsIGBzcGlgLCBvciBgdXNiYD8gQXJlIHRoZXJlIGV2ZW4gVVNCIHRvIE1ESU8gYWRhcHRlcnM/IEl0IGRvZXNuJ3QgbG9vayBsaWtlIGl0LCBidXQgbWF5YmUgc29tZSBVU0IgbmV0d29yayBkcml2ZXJzIGV4cG9zZSBhbiBNRElPIGJ1cz9cblxuQWhhISBNYXliZSBpZiBJIGVtdWxhdGUgYSBVU0IgbmV0d29yayBhZGFwdGVyIHVzaW5nIGBkdW1teV9oY2RgICh2aGNpKSBzdWNoIGFzIGBzbXNjOTV4eGAgb3IgYGFzaXhgLCBpdCBjb3VsZCByZWdpc3RlciBhbiBNRElPIGJ1cy4gVGhlbiwgd2hlbiB0aGUgTURJTyBidXMgZ2V0cyByZWdpc3RlcmVkLCBpdCBzY2FucyBmb3IgUEhZcy4gSWYgdGhlIGVtdWxhdGVkIFVTQiBkZXZpY2UgKnJldHVybnMqIHRoZSBEUDgzNjQwIFBIWSBJRCAoYDB4MjAwMDVjZTFgKSBkdXJpbmcgdGhlIE1ESU8gcmVhZCBvZiByZWdpc3RlcnMgMiBhbmQgMywgdGhlIE1ESU8gYnVzIHdpbGwgbWF0Y2ggaXQgd2l0aCBgZHA4MzY0MF9kcml2ZXJgIGFuZCBjYWxsIGBkcDgzNjQwX3Byb2JlYC5cblxuWWVzISBTeXprYWxsZXIncyBVU0IgZnV6emVyLCB2aGNpLCBjYW4gZGVmaW5pdGVseSBlbXVsYXRlIGEgbmV0d29yayBkZXZpY2UgdGhhdCBleHBvc2VzIGFuIE1ESU8gYnVzLiBBbmQgaXQgY2FuIHJldHVybiBhcmJpdHJhcnkgUEhZIElEcy4gVGhhdCdzIHRoZSBrZXkuIFNvLCB0aGUgYGRwODM2NDBfcHJvYmVgIGFuZCBgZHA4MzY0MF9yZW1vdmVgIGVudHJ5IHBvaW50cyBhcmUgZGVmaW5pdGVseSByZWFjaGFibGUgdGhyb3VnaCBVU0IgZW11bGF0aW9uLiBUaGlzIG5lZWRzIHRvIGJlIHZlcmlmaWVkLlxuXG5cbiIsIklucHV0VG9rZW5zIjoxODQzMSwiT3V0cHV0VG9rZW5zIjoxOSwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjQ5NywiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0yNVQwODoyMDowNS44Njc4NDA5MjhaIiwiU2VxIjo2LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MjEyMTgxNjMwNiwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJtZGlvYnVzX3JlZ2lzdGVyXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcIlxcbkZ1bGwgb3V0cHV0IGlzIHRvbyBsb25nLCBzaG93aW5nIDUwMCBvdXQgb2YgMTEyNyBsaW5lcy5cXG5Vc2UgbW9yZSBwcmVjaXNlIGV4cHJlc3Npb24gaWYgcG9zc2libGUuXFxuXFxuRG9jdW1lbnRhdGlvbi9kcml2ZXItYXBpL2RyaXZlci1tb2RlbC9kZXZyZXMucnN0PTM0OD1NRElPXFxuLS1cXG5Eb2N1bWVudGF0aW9uL2RyaXZlci1hcGkvZHJpdmVyLW1vZGVsL2RldnJlcy5yc3QtMzUwLSAgZGV2bV9tZGlvYnVzX2FsbG9jX3NpemUoKVxcbkRvY3VtZW50YXRpb24vZHJpdmVyLWFwaS9kcml2ZXItbW9kZWwvZGV2cmVzLnJzdDozNTE6ICBkZXZtX21kaW9idXNfcmVnaXN0ZXIoKVxcbkRvY3VtZW50YXRpb24vZHJpdmVyLWFwaS9kcml2ZXItbW9kZWwvZGV2cmVzLnJzdDozNTI6ICBkZXZtX29mX21kaW9idXNfcmVnaXN0ZXIoKVxcbkRvY3VtZW50YXRpb24vZHJpdmVyLWFwaS9kcml2ZXItbW9kZWwvZGV2cmVzLnJzdC0zNTMtXFxuLS1cXG5Eb2N1bWVudGF0aW9uL2Zpcm13YXJlLWd1aWRlL2FjcGkvZHNkL21vdG9yY29tbS15dDh4eHgtcGh5LnJzdD0xMj1kZXZpY2UgKHRoZSBzYW1lIG9iamVjdHMgdGhhdCBhcmUgcmVnaXN0ZXJlZCB2aWFcXG5Eb2N1bWVudGF0aW9uL2Zpcm13YXJlLWd1aWRlL2FjcGkvZHNkL21vdG9yY29tbS15dDh4eHgtcGh5LnJzdDoxMzpgYGZ3bm9kZV9tZGlvYnVzX3JlZ2lzdGVyX3BoeSgpYGApLiBNQUMtc2lkZSBjb25uZWN0aW9uIHByb3BlcnRpZXMgc3VjaCBhc1xcbkRvY3VtZW50YXRpb24vZmlybXdhcmUtZ3VpZGUvYWNwaS9kc2QvbW90b3Jjb21tLXl0OHh4eC1waHkucnN0LTE0LWBgcGh5LWhhbmRsZWBgIGFuZCBgYHBoeS1tb2RlYGAgYXJlIGRvY3VtZW50ZWQgaW4gW2FjcGktbWRpby1waHldXy5cXG4tLVxcbkRvY3VtZW50YXRpb24vZmlybXdhcmUtZ3VpZGUvYWNwaS9kc2QvcGh5LnJzdD03PVRoZSBQSFlzIG9uIGFuIE1ESU8gYnVzIFtwaHldIGFyZSBwcm9iZWQgYW5kIHJlZ2lzdGVyZWQgdXNpbmdcXG5Eb2N1bWVudGF0aW9uL2Zpcm13YXJlLWd1aWRlL2FjcGkvZHNkL3BoeS5yc3Q6ODpmd25vZGVfbWRpb2J1c19yZWdpc3Rlcl9waHkoKS5cXG5Eb2N1bWVudGF0aW9uL2Zpcm13YXJlLWd1aWRlL2FjcGkvZHNkL3BoeS5yc3QtOS1cXG4tLVxcbkRvY3VtZW50YXRpb24vbmV0d29ya2luZy9waHkucnN0PTQwPXJlZ2lzdGVyZWQgYXMgYSBkaXN0aW5jdCBkZXZpY2UuXFxuLS1cXG5Eb2N1bWVudGF0aW9uL25ldHdvcmtpbmcvcGh5LnJzdC01Ni0gICBkcml2ZXIgbmVlZHMsIHNldHVwIHRoZSBtaWlfYnVzIHN0cnVjdHVyZSwgYW5kIHJlZ2lzdGVyIHdpdGggdGhlIFBBTCB1c2luZ1xcbkRvY3VtZW50YXRpb24vbmV0d29ya2luZy9waHkucnN0OjU3OiAgIG1kaW9idXNfcmVnaXN0ZXIuICBTaW1pbGFybHksIHRoZXJlJ3MgYSByZW1vdmUgZnVuY3Rpb24gdG8gdW5kbyBhbGwgb2ZcXG5Eb2N1bWVudGF0aW9uL25ldHdvcmtpbmcvcGh5LnJzdC01OC0gICB0aGF0ICh1c2UgbWRpb2J1c191bnJlZ2lzdGVyKS5cXG4tLVxcbmFyY2gvcG93ZXJwYy9wbGF0Zm9ybXMvODJ4eC9lcDgyNDhlLmM9MTA5PXN0YXRpYyBpbnQgZXA4MjQ4ZV9tZGlvX3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKm9mZGV2KVxcbi0tXFxuYXJjaC9wb3dlcnBjL3BsYXRmb3Jtcy84Mnh4L2VwODI0OGUuYy0xMzItXFxuYXJjaC9wb3dlcnBjL3BsYXRmb3Jtcy84Mnh4L2VwODI0OGUuYzoxMzM6XFx0cmV0ID0gb2ZfbWRpb2J1c19yZWdpc3RlcihidXMsIG9mZGV2LVxcdTAwM2VkZXYub2Zfbm9kZSk7XFxuYXJjaC9wb3dlcnBjL3BsYXRmb3Jtcy84Mnh4L2VwODI0OGUuYy0xMzQtXFx0aWYgKHJldClcXG4tLVxcbmFyY2gvcG93ZXJwYy9wbGF0Zm9ybXMvcGFzZW1pL2dwaW9fbWRpby5jPTIwNz1zdGF0aWMgaW50IGdwaW9fbWRpb19wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpvZmRldilcXG4tLVxcbmFyY2gvcG93ZXJwYy9wbGF0Zm9ybXMvcGFzZW1pL2dwaW9fbWRpby5jLTI0My1cXG5hcmNoL3Bvd2VycGMvcGxhdGZvcm1zL3Bhc2VtaS9ncGlvX21kaW8uYzoyNDQ6XFx0ZXJyID0gb2ZfbWRpb2J1c19yZWdpc3RlcihuZXdfYnVzLCBucCk7XFxuYXJjaC9wb3dlcnBjL3BsYXRmb3Jtcy9wYXNlbWkvZ3Bpb19tZGlvLmMtMjQ1LVxcbi0tXFxuZHJpdmVycy9uZXQvZHNhL2JjbV9zZjIuYz02MDc9c3RhdGljIGludCBiY21fc2YyX21kaW9fcmVnaXN0ZXIoc3RydWN0IGRzYV9zd2l0Y2ggKmRzKVxcbi0tXFxuZHJpdmVycy9uZXQvZHNhL2JjbV9zZjIuYy02ODMtXFxuZHJpdmVycy9uZXQvZHNhL2JjbV9zZjIuYzo2ODQ6XFx0ZXJyID0gbWRpb2J1c19yZWdpc3Rlcihwcml2LVxcdTAwM2V1c2VyX21paV9idXMpO1xcbmRyaXZlcnMvbmV0L2RzYS9iY21fc2YyLmMtNjg1LVxcdGlmIChlcnIpXFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL2xhbnRpcV9nc3dpcF9jb21tb24uYz0xODc9c3RhdGljIGludCBnc3dpcF9tZGlvKHN0cnVjdCBnc3dpcF9wcml2ICpwcml2KVxcbi0tXFxuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9sYW50aXFfZ3N3aXBfY29tbW9uLmMtMjEzLVxcbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwX2NvbW1vbi5jOjIxNDpcXHRlcnIgPSBkZXZtX29mX21kaW9idXNfcmVnaXN0ZXIoZGV2LCBidXMsIG1kaW9fbnApO1xcbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbGFudGlxX2dzd2lwX2NvbW1vbi5jLTIxNS1cXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9taWNyb2NoaXAva3N6OTQ3Ny5jPTMxNT1zdGF0aWMgaW50IGtzejk0NzdfcGNzX2NyZWF0ZShzdHJ1Y3Qga3N6X2RldmljZSAqZGV2KVxcbi0tXFxuZHJpdmVycy9uZXQvZHNhL21pY3JvY2hpcC9rc3o5NDc3LmMtMzM1LVxcbmRyaXZlcnMvbmV0L2RzYS9taWNyb2NoaXAva3N6OTQ3Ny5jOjMzNjpcXHRyZXQgPSBkZXZtX21kaW9idXNfcmVnaXN0ZXIoZGV2LVxcdTAwM2VkZXYsIGJ1cyk7XFxuZHJpdmVycy9uZXQvZHNhL21pY3JvY2hpcC9rc3o5NDc3LmMtMzM3LVxcdGlmIChyZXQpXFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvbWljcm9jaGlwL2tzel9jb21tb24uYz0yNDg0PWludCBrc3pfbWRpb19yZWdpc3RlcihzdHJ1Y3Qga3N6X2RldmljZSAqZGV2KVxcbi0tXFxuZHJpdmVycy9uZXQvZHNhL21pY3JvY2hpcC9rc3pfY29tbW9uLmMtMjU1NS1cXG5kcml2ZXJzL25ldC9kc2EvbWljcm9jaGlwL2tzel9jb21tb24uYzoyNTU2OlxcdHJldCA9IGRldm1fb2ZfbWRpb2J1c19yZWdpc3Rlcihkcy1cXHUwMDNlZGV2LCBidXMsIG1kaW9fbnApO1xcbmRyaXZlcnMvbmV0L2RzYS9taWNyb2NoaXAva3N6X2NvbW1vbi5jLTI1NTctXFx0aWYgKHJldCkge1xcbi0tXFxuZHJpdmVycy9uZXQvZHNhL21pY3JvY2hpcC9sYW45Mzd4X21haW4uYz02ODU9c3RhdGljIGludCBsYW45Mzd4X21kaW9fcmVnaXN0ZXIoc3RydWN0IGtzel9kZXZpY2UgKmRldilcXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9taWNyb2NoaXAvbGFuOTM3eF9tYWluLmMtNzU1LVxcbmRyaXZlcnMvbmV0L2RzYS9taWNyb2NoaXAvbGFuOTM3eF9tYWluLmM6NzU2OlxcdHJldCA9IGRldm1fb2ZfbWRpb2J1c19yZWdpc3Rlcihkcy1cXHUwMDNlZGV2LCBidXMsIG1kaW9fbnApO1xcbmRyaXZlcnMvbmV0L2RzYS9taWNyb2NoaXAvbGFuOTM3eF9tYWluLmMtNzU3LVxcdGlmIChyZXQpXFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvbXQ3NTMwLmM9MjM3MT1tdDc1MzBfc2V0dXBfbWRpbyhzdHJ1Y3QgbXQ3NTMwX3ByaXYgKnByaXYpXFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvbXQ3NTMwLmMtMjQwNi1cXG5kcml2ZXJzL25ldC9kc2EvbXQ3NTMwLmM6MjQwNzpcXHRyZXQgPSBkZXZtX29mX21kaW9idXNfcmVnaXN0ZXIoZGV2LCBidXMsIG1ucCk7XFxuZHJpdmVycy9uZXQvZHNhL210NzUzMC5jLTI0MDgtXFx0aWYgKHJldCkge1xcbi0tXFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmM9MzgzND1zdGF0aWMgaW50IG12ODhlNnh4eF9tZGlvX3JlZ2lzdGVyKHN0cnVjdCBtdjg4ZTZ4eHhfY2hpcCAqY2hpcCxcXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTM4ODctXFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmM6Mzg4ODpcXHRlcnIgPSBvZl9tZGlvYnVzX3JlZ2lzdGVyKGJ1cywgbnApO1xcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTM4ODktXFx0aWYgKGVycikge1xcbi0tXFxuZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L214bDg2Mnh4LmM9MjY3PXN0YXRpYyBpbnQgbXhsODYyeHhfc2V0dXBfbWRpbyhzdHJ1Y3QgZHNhX3N3aXRjaCAqZHMpXFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHguYy0yOTItXFxuZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L214bDg2Mnh4LmM6MjkzOlxcdHJldCA9IGRldm1fb2ZfbWRpb2J1c19yZWdpc3RlcihkZXYsIGJ1cywgbWRpb19ucCk7XFxuZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L214bDg2Mnh4LmMtMjk0LVxcdG9mX25vZGVfcHV0KG1kaW9fbnApO1xcbi0tXFxuZHJpdmVycy9uZXQvZHNhL25ldGMvbmV0Y19tYWluLmM9MTQ5PXN0YXRpYyBpbnQgbmV0Y19wb3J0X2NyZWF0ZV9lbWRpb19idXMoc3RydWN0IG5ldGNfcG9ydCAqbnAsXFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvbmV0Yy9uZXRjX21haW4uYy0xNzktXFxuZHJpdmVycy9uZXQvZHNhL25ldGMvbmV0Y19tYWluLmM6MTgwOlxcdGVyciA9IGRldm1fb2ZfbWRpb2J1c19yZWdpc3RlcihkZXYsIGJ1cywgbm9kZSk7XFxuZHJpdmVycy9uZXQvZHNhL25ldGMvbmV0Y19tYWluLmMtMTgxLVxcdGlmIChlcnIpXFxuLS1cXG5kcml2ZXJzL25ldC9kc2Evb2NlbG90L2ZlbGl4X3ZzYzk5NTkuYz05NTc9c3RhdGljIGludCB2c2M5OTU5X21kaW9fYnVzX2FsbG9jKHN0cnVjdCBvY2Vsb3QgKm9jZWxvdClcXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9vY2Vsb3QvZmVsaXhfdnNjOTk1OS5jLTEwMTMtXFx0LyogTmVlZGVkIGluIG9yZGVyIHRvIGluaXRpYWxpemUgdGhlIGJ1cyBtdXRleCBsb2NrICovXFxuZHJpdmVycy9uZXQvZHNhL29jZWxvdC9mZWxpeF92c2M5OTU5LmM6MTAxNDpcXHRyYyA9IG1kaW9idXNfcmVnaXN0ZXIoYnVzKTtcXG5kcml2ZXJzL25ldC9kc2Evb2NlbG90L2ZlbGl4X3ZzYzk5NTkuYy0xMDE1LVxcdGlmIChyYyBcXHUwMDNjIDApIHtcXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9vY2Vsb3Qvc2V2aWxsZV92c2M5OTUzLmM9ODc4PXN0YXRpYyBpbnQgdnNjOTk1M19tZGlvX2J1c19hbGxvYyhzdHJ1Y3Qgb2NlbG90ICpvY2Vsb3QpXFxuLS1cXG5kcml2ZXJzL25ldC9kc2Evb2NlbG90L3NldmlsbGVfdnNjOTk1My5jLTkwMy1cXHQvKiBOZWVkZWQgaW4gb3JkZXIgdG8gaW5pdGlhbGl6ZSB0aGUgYnVzIG11dGV4IGxvY2sgKi9cXG5kcml2ZXJzL25ldC9kc2Evb2NlbG90L3NldmlsbGVfdnNjOTk1My5jOjkwNDpcXHRyYyA9IGRldm1fb2ZfbWRpb2J1c19yZWdpc3RlcihkZXYsIGJ1cywgTlVMTCk7XFxuZHJpdmVycy9uZXQvZHNhL29jZWxvdC9zZXZpbGxlX3ZzYzk5NTMuYy05MDUtXFx0aWYgKHJjIFxcdTAwM2MgMCkge1xcbi0tXFxuZHJpdmVycy9uZXQvZHNhL3FjYS9hcjkzMzEuYz0zNTc9c3RhdGljIGludCBhcjkzMzFfc3dfbWJ1c19pbml0KHN0cnVjdCBhcjkzMzFfc3dfcHJpdiAqcHJpdilcXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9xY2EvYXI5MzMxLmMtMzgxLVxcbmRyaXZlcnMvbmV0L2RzYS9xY2EvYXI5MzMxLmM6MzgyOlxcdHJldCA9IGRldm1fb2ZfbWRpb2J1c19yZWdpc3RlcihkZXYsIG1idXMsIG1ucCk7XFxuZHJpdmVycy9uZXQvZHNhL3FjYS9hcjkzMzEuYy0zODMtXFx0b2Zfbm9kZV9wdXQobW5wKTtcXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9xY2EvcWNhOGstOHh4eC5jPTk0Nz1xY2E4a19tZGlvX3JlZ2lzdGVyKHN0cnVjdCBxY2E4a19wcml2ICpwcml2KVxcbi0tXFxuZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay04eHh4LmMtOTg2LVxcbmRyaXZlcnMvbmV0L2RzYS9xY2EvcWNhOGstOHh4eC5jOjk4NzpcXHRyZXQgPSBkZXZtX29mX21kaW9idXNfcmVnaXN0ZXIoZGV2LCBidXMsIG1kaW8pO1xcbmRyaXZlcnMvbmV0L2RzYS9xY2EvcWNhOGstOHh4eC5jLTk4OC1cXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzeHguYz03ND1pbnQgcnRsODN4eF9zZXR1cF91c2VyX21kaW8oc3RydWN0IGRzYV9zd2l0Y2ggKmRzKVxcbi0tXFxuZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcnRsODN4eC5jLTk5LVxcbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzeHguYzoxMDA6XFx0cmV0ID0gZGV2bV9vZl9tZGlvYnVzX3JlZ2lzdGVyKHByaXYtXFx1MDAzZWRldiwgYnVzLCBtZGlvX25wKTtcXG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4M3h4LmMtMTAxLVxcdGlmIChyZXQpIHtcXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9yem4xX2E1cHN3LmM9MTExNz1zdGF0aWMgaW50IGE1cHN3X3Byb2JlX21kaW8oc3RydWN0IGE1cHN3ICphNXBzdywgc3RydWN0IGRldmljZV9ub2RlICpub2RlKVxcbi0tXFxuZHJpdmVycy9uZXQvZHNhL3J6bjFfYTVwc3cuYy0xMTQzLVxcbmRyaXZlcnMvbmV0L2RzYS9yem4xX2E1cHN3LmM6MTE0NDpcXHRyZXR1cm4gZGV2bV9vZl9tZGlvYnVzX3JlZ2lzdGVyKGRldiwgYnVzLCBub2RlKTtcXG5kcml2ZXJzL25ldC9kc2EvcnpuMV9hNXBzdy5jLTExNDUtfVxcbi0tXFxuZHJpdmVycy9uZXQvZHNhL3NqYTExMDUvc2phMTEwNS5oPTMwNz12b2lkIHNqYTExMDVfZnJhbWVfbWVtb3J5X3BhcnRpdGlvbmluZyhzdHJ1Y3Qgc2phMTEwNV9wcml2YXRlICpwcml2KTtcXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9zamExMTA1L3NqYTExMDUuaC0zMDktLyogRnJvbSBzamExMTA1X21kaW8uYyAqL1xcbmRyaXZlcnMvbmV0L2RzYS9zamExMTA1L3NqYTExMDUuaDozMTA6aW50IHNqYTExMDVfbWRpb2J1c19yZWdpc3RlcihzdHJ1Y3QgZHNhX3N3aXRjaCAqZHMpO1xcbmRyaXZlcnMvbmV0L2RzYS9zamExMTA1L3NqYTExMDUuaC0zMTEtdm9pZCBzamExMTA1X21kaW9idXNfdW5yZWdpc3RlcihzdHJ1Y3QgZHNhX3N3aXRjaCAqZHMpO1xcbi0tXFxuZHJpdmVycy9uZXQvZHNhL3NqYTExMDUvc2phMTEwNV9tYWluLmM9MzAyNj1zdGF0aWMgaW50IHNqYTExMDVfc2V0dXAoc3RydWN0IGRzYV9zd2l0Y2ggKmRzKVxcbi0tXFxuZHJpdmVycy9uZXQvZHNhL3NqYTExMDUvc2phMTEwNV9tYWluLmMtMzA2Ny1cXG5kcml2ZXJzL25ldC9kc2Evc2phMTEwNS9zamExMTA1X21haW4uYzozMDY4OlxcdHJjID0gc2phMTEwNV9tZGlvYnVzX3JlZ2lzdGVyKGRzKTtcXG5kcml2ZXJzL25ldC9kc2Evc2phMTEwNS9zamExMTA1X21haW4uYy0zMDY5LVxcdGlmIChyYyBcXHUwMDNjIDApIHtcXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9zamExMTA1L3NqYTExMDVfbWRpby5jPTI1OD1zdGF0aWMgaW50IHNqYTExMDVfbWRpb2J1c19iYXNlX3R4X3JlZ2lzdGVyKHN0cnVjdCBzamExMTA1X3ByaXZhdGUgKnByaXYsXFxuLS1cXG5kcml2ZXJzL25ldC9kc2Evc2phMTEwNS9zamExMTA1X21kaW8uYy0yODctXFxuZHJpdmVycy9uZXQvZHNhL3NqYTExMDUvc2phMTEwNV9tZGlvLmM6Mjg4OlxcdHJjID0gb2ZfbWRpb2J1c19yZWdpc3RlcihidXMsIG5wKTtcXG5kcml2ZXJzL25ldC9kc2Evc2phMTEwNS9zamExMTA1X21kaW8uYy0yODktXFx0aWYgKHJjKSB7XFxuLS1cXG5kcml2ZXJzL25ldC9kc2Evc2phMTEwNS9zamExMTA1X21kaW8uYz0zMTI9c3RhdGljIGludCBzamExMTA1X21kaW9idXNfYmFzZV90MV9yZWdpc3RlcihzdHJ1Y3Qgc2phMTEwNV9wcml2YXRlICpwcml2LFxcbi0tXFxuZHJpdmVycy9uZXQvZHNhL3NqYTExMDUvc2phMTEwNV9tZGlvLmMtMzQzLVxcbmRyaXZlcnMvbmV0L2RzYS9zamExMTA1L3NqYTExMDVfbWRpby5jOjM0NDpcXHRyYyA9IG9mX21kaW9idXNfcmVnaXN0ZXIoYnVzLCBucCk7XFxuZHJpdmVycy9uZXQvZHNhL3NqYTExMDUvc2phMTEwNV9tZGlvLmMtMzQ1LVxcdGlmIChyYykge1xcbi0tXFxuZHJpdmVycy9uZXQvZHNhL3NqYTExMDUvc2phMTEwNV9tZGlvLmM9MzY4PXN0YXRpYyBpbnQgc2phMTEwNV9tZGlvYnVzX3Bjc19yZWdpc3RlcihzdHJ1Y3Qgc2phMTEwNV9wcml2YXRlICpwcml2KVxcbi0tXFxuZHJpdmVycy9uZXQvZHNhL3NqYTExMDUvc2phMTEwNV9tZGlvLmMtMzk1LVxcbmRyaXZlcnMvbmV0L2RzYS9zamExMTA1L3NqYTExMDVfbWRpby5jOjM5NjpcXHRyYyA9IG1kaW9idXNfcmVnaXN0ZXIoYnVzKTtcXG5kcml2ZXJzL25ldC9kc2Evc2phMTEwNS9zamExMTA1X21kaW8uYy0zOTctXFx0aWYgKHJjKSB7XFxuLS1cXG5kcml2ZXJzL25ldC9kc2Evc2phMTEwNS9zamExMTA1X21kaW8uYz00Mzk9c3RhdGljIHZvaWQgc2phMTEwNV9tZGlvYnVzX3Bjc191bnJlZ2lzdGVyKHN0cnVjdCBzamExMTA1X3ByaXZhdGUgKnByaXYpXFxuLS1cXG5kcml2ZXJzL25ldC9kc2Evc2phMTEwNS9zamExMTA1X21kaW8uYy00NTgtXFxuZHJpdmVycy9uZXQvZHNhL3NqYTExMDUvc2phMTEwNV9tZGlvLmM6NDU5OmludCBzamExMTA1X21kaW9idXNfcmVnaXN0ZXIoc3RydWN0IGRzYV9zd2l0Y2ggKmRzKVxcbmRyaXZlcnMvbmV0L2RzYS9zamExMTA1L3NqYTExMDVfbWRpby5jLTQ2MC17XFxuLS1cXG5kcml2ZXJzL25ldC9kc2EveXQ5MjF4LmM9NTk1PXl0OTIxeF9tYnVzX2ludF9pbml0KHN0cnVjdCB5dDkyMXhfcHJpdiAqcHJpdiwgc3RydWN0IGRldmljZV9ub2RlICptbnApXFxuLS1cXG5kcml2ZXJzL25ldC9kc2EveXQ5MjF4LmMtNjEyLVxcbmRyaXZlcnMvbmV0L2RzYS95dDkyMXguYzo2MTM6XFx0cmVzID0gZGV2bV9vZl9tZGlvYnVzX3JlZ2lzdGVyKGRldiwgbWJ1cywgbW5wKTtcXG5kcml2ZXJzL25ldC9kc2EveXQ5MjF4LmMtNjE0LVxcdGlmIChyZXMpXFxuLS1cXG5kcml2ZXJzL25ldC9kc2EveXQ5MjF4LmM9NzI2PXl0OTIxeF9tYnVzX2V4dF9pbml0KHN0cnVjdCB5dDkyMXhfcHJpdiAqcHJpdiwgc3RydWN0IGRldmljZV9ub2RlICptbnApXFxuLS1cXG5kcml2ZXJzL25ldC9kc2EveXQ5MjF4LmMtNzQzLVxcbmRyaXZlcnMvbmV0L2RzYS95dDkyMXguYzo3NDQ6XFx0cmVzID0gZGV2bV9vZl9tZGlvYnVzX3JlZ2lzdGVyKGRldiwgbWJ1cywgbW5wKTtcXG5kcml2ZXJzL25ldC9kc2EveXQ5MjF4LmMtNzQ1LVxcdGlmIChyZXMpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC84MzkwL2F4ODg3OTYuYz00NTk9c3RhdGljIGludCBheF9taWlfaW5pdChzdHJ1Y3QgbmV0X2RldmljZSAqZGV2KVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvODM5MC9heDg4Nzk2LmMtNDc4LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0LzgzOTAvYXg4ODc5Ni5jOjQ3OTpcXHRlcnIgPSBtZGlvYnVzX3JlZ2lzdGVyKGF4LVxcdTAwM2VtaWlfYnVzKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC84MzkwL2F4ODg3OTYuYy00ODAtXFx0aWYgKGVycilcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FjdGlvbnMvb3dsLWVtYWMuYz0xMzIxPXN0YXRpYyBpbnQgb3dsX2VtYWNfbWRpb19pbml0KHN0cnVjdCBuZXRfZGV2aWNlICpuZXRkZXYpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hY3Rpb25zL293bC1lbWFjLmMtMTM0NS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hY3Rpb25zL293bC1lbWFjLmM6MTM0NjpcXHRyZXQgPSBkZXZtX29mX21kaW9idXNfcmVnaXN0ZXIoZGV2LCBwcml2LVxcdTAwM2VtaWksIG1kaW9fbm9kZSk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWN0aW9ucy9vd2wtZW1hYy5jLTEzNDctXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hZGkvYWRpbjExMTAuYz01MDk9c3RhdGljIGludCBhZGluMTExMF9yZWdpc3Rlcl9tZGlvYnVzKHN0cnVjdCBhZGluMTExMF9wcml2ICpwcml2LFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWRpL2FkaW4xMTEwLmMtNTI5LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FkaS9hZGluMTExMC5jOjUzMDpcXHRyZXQgPSBkZXZtX21kaW9idXNfcmVnaXN0ZXIoZGV2LCBtaWlfYnVzKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hZGkvYWRpbjExMTAuYy01MzEtXFx0aWYgKHJldClcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Flcm9mbGV4L2dyZXRoLmM9MTI5MD1zdGF0aWMgaW50IGdyZXRoX21kaW9faW5pdChzdHJ1Y3QgZ3JldGhfcHJpdmF0ZSAqZ3JldGgpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hZXJvZmxleC9ncmV0aC5jLTEzMDYtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWVyb2ZsZXgvZ3JldGguYzoxMzA3OlxcdHJldCA9IG1kaW9idXNfcmVnaXN0ZXIoZ3JldGgtXFx1MDAzZW1kaW8pO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Flcm9mbGV4L2dyZXRoLmMtMTMwOC1cXHRpZiAocmV0KSB7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hZ2VyZS9ldDEzMXguYz0zOTMxPXN0YXRpYyBpbnQgZXQxMzF4X3BjaV9zZXR1cChzdHJ1Y3QgcGNpX2RldiAqcGRldixcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FnZXJlL2V0MTMxeC5jLTQwMjYtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWdlcmUvZXQxMzF4LmM6NDAyNzpcXHRyYyA9IG1kaW9idXNfcmVnaXN0ZXIoYWRhcHRlci1cXHUwMDNlbWlpX2J1cyk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWdlcmUvZXQxMzF4LmMtNDAyOC1cXHRpZiAocmMgXFx1MDAzYyAwKSB7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hbHRlcmEvYWx0ZXJhX3RzZV9tYWluLmM9MTIxPXN0YXRpYyBpbnQgYWx0ZXJhX3RzZV9tZGlvX2NyZWF0ZShzdHJ1Y3QgbmV0X2RldmljZSAqZGV2LCB1bnNpZ25lZCBpbnQgaWQpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hbHRlcmEvYWx0ZXJhX3RzZV9tYWluLmMtMTU3LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FsdGVyYS9hbHRlcmFfdHNlX21haW4uYzoxNTg6XFx0cmV0ID0gb2ZfbWRpb2J1c19yZWdpc3RlcihtZGlvLCBtZGlvX25vZGUpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FsdGVyYS9hbHRlcmFfdHNlX21haW4uYy0xNTktXFx0aWYgKHJldCAhPSAwKSB7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQvYXUxMDAwX2V0aC5jPTEwNjE9c3RhdGljIGludCBhdTEwMDBfcHJvYmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldilcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC9hdTEwMDBfZXRoLmMtMTIyMS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQvYXUxMDAwX2V0aC5jOjEyMjI6XFx0ZXJyID0gbWRpb2J1c19yZWdpc3RlcihhdXAtXFx1MDAzZW1paV9idXMpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC9hdTEwMDBfZXRoLmMtMTIyMy1cXHRpZiAoZXJyKSB7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQveGdiZS94Z2JlLXBoeS12Mi5jPTM0Mjg9c3RhdGljIGludCB4Z2JlX3BoeV9pbml0KHN0cnVjdCB4Z2JlX3Bydl9kYXRhICpwZGF0YSlcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC94Z2JlL3hnYmUtcGh5LXYyLmMtMzcxNy1cXHRzbnByaW50ZihtaWktXFx1MDAzZWlkLCBzaXplb2YobWlpLVxcdTAwM2VpZCksIFxcXCIlc1xcXCIsIGRldl9uYW1lKHBkYXRhLVxcdTAwM2VkZXYpKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQveGdiZS94Z2JlLXBoeS12Mi5jOjM3MTg6XFx0cmV0ID0gbWRpb2J1c19yZWdpc3RlcihtaWkpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC94Z2JlL3hnYmUtcGh5LXYyLmMtMzcxOS1cXHRpZiAocmV0KSB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYW1kL3hnYmUveGdiZS1waHktdjIuYzozNzIwOlxcdFxcdGRldl9lcnIocGRhdGEtXFx1MDAzZWRldiwgXFxcIm1kaW9idXNfcmVnaXN0ZXIgZmFpbGVkXFxcXG5cXFwiKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQveGdiZS94Z2JlLXBoeS12Mi5jLTM3MjEtXFx0XFx0cmV0dXJuIHJldDtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FwbS94Z2VuZS12Mi9tZGlvLmM9OTg9aW50IHhnZV9tZGlvX2NvbmZpZyhzdHJ1Y3QgbmV0X2RldmljZSAqbmRldilcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FwbS94Z2VuZS12Mi9tZGlvLmMtMTE4LVxcdG1kaW9fYnVzLVxcdTAwM2VwaHlfbWFzayA9IDB4MTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hcG0veGdlbmUtdjIvbWRpby5jOjExOTpcXHRyZXQgPSBtZGlvYnVzX3JlZ2lzdGVyKG1kaW9fYnVzKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hcG0veGdlbmUtdjIvbWRpby5jLTEyMC1cXHRpZiAocmV0KVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXBtL3hnZW5lL3hnZW5lX2VuZXRfaHcuYz04Mzc9aW50IHhnZW5lX2VuZXRfcGh5X2Nvbm5lY3Qoc3RydWN0IG5ldF9kZXZpY2UgKm5kZXYpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hcG0veGdlbmUveGdlbmVfZW5ldF9ody5jLTg4Ny1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hcG0veGdlbmUveGdlbmVfZW5ldF9ody5jOjg4ODpzdGF0aWMgaW50IHhnZW5lX21kaW9idXNfcmVnaXN0ZXIoc3RydWN0IHhnZW5lX2VuZXRfcGRhdGEgKnBkYXRhLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FwbS94Z2VuZS94Z2VuZV9lbmV0X2h3LmMtODg5LVxcdFxcdFxcdFxcdCAgc3RydWN0IG1paV9idXMgKm1kaW8pXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hcG0veGdlbmUveGdlbmVfZW5ldF9ody5jLTkxMi1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hcG0veGdlbmUveGdlbmVfZW5ldF9ody5jOjkxMzpcXHRcXHRyZXQgPSBvZl9tZGlvYnVzX3JlZ2lzdGVyKG1kaW8sIG1kaW9fbnApO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FwbS94Z2VuZS94Z2VuZV9lbmV0X2h3LmMtOTE0LVxcdFxcdG9mX25vZGVfcHV0KG1kaW9fbnApO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXBtL3hnZW5lL3hnZW5lX2VuZXRfaHcuYy05MjEtXFx0LyogUmVnaXN0ZXIgdGhlIE1ESU8gYnVzICovXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXBtL3hnZW5lL3hnZW5lX2VuZXRfaHcuYzo5MjI6XFx0cmV0ID0gbWRpb2J1c19yZWdpc3RlcihtZGlvKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hcG0veGdlbmUveGdlbmVfZW5ldF9ody5jLTkyMy1cXHRpZiAocmV0KVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXBtL3hnZW5lL3hnZW5lX2VuZXRfaHcuYz05Mzk9aW50IHhnZW5lX2VuZXRfbWRpb19jb25maWcoc3RydWN0IHhnZW5lX2VuZXRfcGRhdGEgKnBkYXRhKVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXBtL3hnZW5lL3hnZW5lX2VuZXRfaHcuYy05NTctXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXBtL3hnZW5lL3hnZW5lX2VuZXRfaHcuYzo5NTg6XFx0cmV0ID0geGdlbmVfbWRpb2J1c19yZWdpc3RlcihwZGF0YSwgbWRpb19idXMpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FwbS94Z2VuZS94Z2VuZV9lbmV0X2h3LmMtOTU5LVxcdGlmIChyZXQpIHtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FyYy9lbWFjX21kaW8uYz0xMzE9aW50IGFyY19tZGlvX3Byb2JlKHN0cnVjdCBhcmNfZW1hY19wcml2ICpwcml2KVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXJjL2VtYWNfbWRpby5jLTE3Mi1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hcmMvZW1hY19tZGlvLmM6MTczOlxcdGVycm9yID0gb2ZfbWRpb2J1c19yZWdpc3RlcihidXMsIG1kaW9fbm9kZSk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXJjL2VtYWNfbWRpby5jLTE3NC1cXHRvZl9ub2RlX3B1dChtZGlvX25vZGUpO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19tYWluLmM9OTY2PXN0YXRpYyBpbnQgYXg4ODc5NmNfcHJvYmUoc3RydWN0IHNwaV9kZXZpY2UgKnNwaSlcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FzaXgvYXg4ODc5NmNfbWFpbi5jLTEwMTAtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19tYWluLmM6MTAxMTpcXHRyZXQgPSBkZXZtX21kaW9idXNfcmVnaXN0ZXIoXFx1MDAyNnNwaS1cXHUwMDNlZGV2LCBheF9sb2NhbC1cXHUwMDNlbWRpb2J1cyk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXNpeC9heDg4Nzk2Y19tYWluLmMtMTAxMi1cXHRpZiAocmV0IFxcdTAwM2MgMCkge1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXRoZXJvcy9hZzcxeHguYz02ODc9c3RhdGljIGludCBhZzcxeHhfbWRpb19wcm9iZShzdHJ1Y3QgYWc3MXh4ICphZylcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2F0aGVyb3MvYWc3MXh4LmMtNzI3LVxcdG1ucCA9IG9mX2dldF9jaGlsZF9ieV9uYW1lKG5wLCBcXFwibWRpb1xcXCIpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2F0aGVyb3MvYWc3MXh4LmM6NzI4OlxcdGVyciA9IGRldm1fb2ZfbWRpb2J1c19yZWdpc3RlcihkZXYsIG1paV9idXMsIG1ucCk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXRoZXJvcy9hZzcxeHguYy03MjktXFx0b2Zfbm9kZV9wdXQobW5wKTtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2I0NC5jPTIyMzQ9c3RhdGljIGludCBiNDRfcmVnaXN0ZXJfcGh5X29uZShzdHJ1Y3QgYjQ0ICpicClcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2I0NC5jLTIyNTktXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYjQ0LmM6MjI2MDpcXHRlcnIgPSBtZGlvYnVzX3JlZ2lzdGVyKG1paV9idXMpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2I0NC5jLTIyNjEtXFx0aWYgKGVycikge1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYmNtNjN4eF9lbmV0LmM9MTcxMz1zdGF0aWMgaW50IGJjbV9lbmV0X3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9iY202M3h4X2VuZXQuYy0xODI5LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JjbTYzeHhfZW5ldC5jOjE4MzA6XFx0XFx0cmV0ID0gbWRpb2J1c19yZWdpc3RlcihidXMpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JjbTYzeHhfZW5ldC5jLTE4MzEtXFx0XFx0aWYgKHJldCkge1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYmdtYWMtYmNtYS1tZGlvLmM9MjExPXN0cnVjdCBtaWlfYnVzICpiY21hX21kaW9fbWlpX3JlZ2lzdGVyKHN0cnVjdCBiZ21hYyAqYmdtYWMpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9iZ21hYy1iY21hLW1kaW8uYy0yMzUtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYmdtYWMtYmNtYS1tZGlvLmM6MjM2OlxcdGVyciA9IG9mX21kaW9idXNfcmVnaXN0ZXIobWlpX2J1cywgbnApO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JnbWFjLWJjbWEtbWRpby5jLTIzNy1cXHRvZl9ub2RlX3B1dChucCk7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9nZW5ldC9iY21taWkuYz0xOTM9aW50IGJjbWdlbmV0X21paV9jb25maWcoc3RydWN0IG5ldF9kZXZpY2UgKmRldiwgYm9vbCBpbml0KVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vZ2VuZXQvYmNtbWlpLmMtMjMzLVxcdFxcdHBoeV9uYW1lID0gXFxcImV4dGVybmFsIFJ2TUlJXFxcIjtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9nZW5ldC9iY21taWkuYzoyMzQ6XFx0XFx0Lyogb2ZfbWRpb2J1c19yZWdpc3RlciB0b29rIGNhcmUgb2YgcmVhZGluZyB0aGUgJ21heC1zcGVlZCdcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9nZW5ldC9iY21taWkuYy0yMzUtXFx0XFx0ICogUEhZIHByb3BlcnR5IGZvciB1cywgZWZmZWN0aXZlbHkgbGltaXRpbmcgdGhlIFBIWSBzdXBwb3J0ZWRcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL3NiMTI1MC1tYWMuYz0yMTU3PXN0YXRpYyBpbnQgc2JtYWNfaW5pdChzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwbGRldiwgbG9uZyBsb25nIGJhc2UpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9zYjEyNTAtbWFjLmMtMjIyNy1cXHQgKi9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9zYjEyNTAtbWFjLmM6MjIyODpcXHRlcnIgPSBtZGlvYnVzX3JlZ2lzdGVyKHNjLVxcdTAwM2VtaWlfYnVzKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9zYjEyNTAtbWFjLmMtMjIyOS1cXHRpZiAoZXJyKSB7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS90ZzMuYz0xNTA1PXN0YXRpYyBpbnQgdGczX21kaW9faW5pdChzdHJ1Y3QgdGczICp0cClcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL3RnMy5jLTE1NTctXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vdGczLmM6MTU1ODpcXHRpID0gbWRpb2J1c19yZWdpc3Rlcih0cC1cXHUwMDNlbWRpb19idXMpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL3RnMy5jLTE1NTktXFx0aWYgKGkpIHtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYl9tYWluLmM9MTAyMz1zdGF0aWMgaW50IG1hY2JfbWlpX3Byb2JlKHN0cnVjdCBuZXRfZGV2aWNlICpkZXYpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2JfbWFpbi5jLTEwOTYtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiX21haW4uYzoxMDk3OnN0YXRpYyBpbnQgbWFjYl9tZGlvYnVzX3JlZ2lzdGVyKHN0cnVjdCBtYWNiICpicCwgc3RydWN0IGRldmljZV9ub2RlICptZGlvX25wKVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYl9tYWluLmMtMTA5OC17XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2JfbWFpbi5jLTExMDQtXFx0aWYgKG1kaW9fbnApXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiX21haW4uYzoxMTA1OlxcdFxcdHJldHVybiBvZl9tZGlvYnVzX3JlZ2lzdGVyKGJwLVxcdTAwM2VtaWlfYnVzLCBtZGlvX25wKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2JfbWFpbi5jLTExMDYtXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2JfbWFpbi5jLTExMTgtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiX21haW4uYzoxMTE5OlxcdFxcdFxcdHJldHVybiBvZl9tZGlvYnVzX3JlZ2lzdGVyKGJwLVxcdTAwM2VtaWlfYnVzLCBucCk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiX21haW4uYy0xMTIwLVxcdFxcdH1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2JfbWFpbi5jLTExMjEtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiX21haW4uYzoxMTIyOlxcdHJldHVybiBtZGlvYnVzX3JlZ2lzdGVyKGJwLVxcdTAwM2VtaWlfYnVzKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2JfbWFpbi5jLTExMjMtfVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiX21haW4uYz0xMTI1PXN0YXRpYyBpbnQgbWFjYl9taWlfaW5pdChzdHJ1Y3QgbWFjYiAqYnApXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2JfbWFpbi5jLTExNTgtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiX21haW4uYzoxMTU5OlxcdGVyciA9IG1hY2JfbWRpb2J1c19yZWdpc3RlcihicCwgbWRpb19ucCk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiX21haW4uYy0xMTYwLVxcdGlmIChlcnIpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9kYXZpY29tL2RtOTA1MS5jPTExMDc9c3RhdGljIGludCBkbTkwNTFfbWRpb19yZWdpc3RlcihzdHJ1Y3QgYm9hcmRfaW5mbyAqZGIpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9kYXZpY29tL2RtOTA1MS5jLTExMjQtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvZGF2aWNvbS9kbTkwNTEuYzoxMTI1OlxcdHJldCA9IGRldm1fbWRpb2J1c19yZWdpc3RlcihcXHUwMDI2c3BpLVxcdTAwM2VkZXYsIGRiLVxcdTAwM2VtZGlvYnVzKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9kYXZpY29tL2RtOTA1MS5jLTExMjYtXFx0aWYgKHJldClcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2VuZ2xlZGVyL3RzbmVwX21haW4uYz0yNDIzPXN0YXRpYyBpbnQgdHNuZXBfbWRpb19pbml0KHN0cnVjdCB0c25lcF9hZGFwdGVyICphZGFwdGVyKVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvZW5nbGVkZXIvdHNuZXBfbWFpbi5jLTI0NTQtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvZW5nbGVkZXIvdHNuZXBfbWFpbi5jOjI0NTU6XFx0cmV0dmFsID0gb2ZfbWRpb2J1c19yZWdpc3RlcihhZGFwdGVyLVxcdTAwM2VtZGlvYnVzLCBucCk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvZW5nbGVkZXIvdHNuZXBfbWFpbi5jLTI0NTYtXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9ldGhvYy5jPTEwMjQ9c3RhdGljIGludCBldGhvY19wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvZXRob2MuYy0xMjA3LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2V0aG9jLmM6MTIwODpcXHRyZXQgPSBtZGlvYnVzX3JlZ2lzdGVyKHByaXYtXFx1MDAzZW1kaW8pO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2V0aG9jLmMtMTIwOS1cXHRpZiAocmV0KSB7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9mYXJhZGF5L2Z0Z21hYzEwMC5jPTE3MzQ9c3RhdGljIGludCBmdGdtYWMxMDBfc2V0dXBfbWRpbyhzdHJ1Y3QgbmV0X2RldmljZSAqbmV0ZGV2KVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvZmFyYWRheS9mdGdtYWMxMDAuYy0xNzY5LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ZhcmFkYXkvZnRnbWFjMTAwLmM6MTc3MDpcXHRlcnIgPSBkZXZtX29mX21kaW9idXNfcmVnaXN0ZXIocHJpdi1cXHUwMDNlZGV2LCBwcml2LVxcdTAwM2VtaWlfYnVzLCBtZGlvX25wKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9mYXJhZGF5L2Z0Z21hYzEwMC5jLTE3NzEtXFx0b2Zfbm9kZV9wdXQobWRpb19ucCk7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9mcmVlc2NhbGUvZW5ldGMvZW5ldGNfcGNpX21kaW8uYz0zNj1zdGF0aWMgaW50IGVuZXRjX3BjaV9tZGlvX3Byb2JlKHN0cnVjdCBwY2lfZGV2ICpwZGV2LFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvZnJlZXNjYWxlL2VuZXRjL2VuZXRjX3BjaV9tZGlvLmMtOTAtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvZnJlZXNjYWxlL2VuZXRjL2VuZXRjX3BjaV9tZGlvLmM6OTE6XFx0ZXJyID0gb2ZfbWRpb2J1c19yZWdpc3RlcihidXMsIGRldi1cXHUwMDNlb2Zfbm9kZSk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvZnJlZXNjYWxlL2VuZXRjL2VuZXRjX3BjaV9tZGlvLmMtOTItXFx0aWYgKGVycilcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ZyZWVzY2FsZS9lbmV0Yy9lbmV0Y19wZl9jb21tb24uYz0xNjA9c3RhdGljIGludCBlbmV0Y19tZGlvX3Byb2JlKHN0cnVjdCBlbmV0Y19wZiAqcGYsIHN0cnVjdCBkZXZpY2Vfbm9kZSAqbnApXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9mcmVlc2NhbGUvZW5ldGMvZW5ldGNfcGZfY29tbW9uLmMtMTg2LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ZyZWVzY2FsZS9lbmV0Yy9lbmV0Y19wZl9jb21tb24uYzoxODc6XFx0ZXJyID0gb2ZfbWRpb2J1c19yZWdpc3RlcihidXMsIG5wKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9mcmVlc2NhbGUvZW5ldGMvZW5ldGNfcGZfY29tbW9uLmMtMTg4LVxcdGlmIChlcnIpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9mcmVlc2NhbGUvZW5ldGMvZW5ldGNfcGZfY29tbW9uLmM9MjAyPXN0YXRpYyBpbnQgZW5ldGNfaW1kaW9fY3JlYXRlKHN0cnVjdCBlbmV0Y19wZiAqcGYpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9mcmVlc2NhbGUvZW5ldGMvZW5ldGNfcGZfY29tbW9uLmMtMjM2LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ZyZWVzY2FsZS9lbmV0Yy9lbmV0Y19wZl9jb21tb24uYzoyMzc6XFx0ZXJyID0gbWRpb2J1c19yZWdpc3RlcihidXMpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ZyZWVzY2FsZS9lbmV0Yy9lbmV0Y19wZl9jb21tb24uYy0yMzgtXFx0aWYgKGVycikge1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvZnJlZXNjYWxlL2ZlY19tYWluLmM9MzA0Mj1zdGF0aWMgaW50IGZlY19lbmV0X21paV9pbml0KHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9mcmVlc2NhbGUvZmVjX21haW4uYy0zMTYwLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ZyZWVzY2FsZS9mZWNfbWFpbi5jOjMxNjE6XFx0ZXJyID0gb2ZfbWRpb2J1c19yZWdpc3RlcihmZXAtXFx1MDAzZW1paV9idXMsIG5vZGUpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ZyZWVzY2FsZS9mZWNfbWFpbi5jLTMxNjItXFx0aWYgKGVycilcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ZyZWVzY2FsZS9mZWNfbXBjNTJ4eF9waHkuYz02NT1zdGF0aWMgaW50IG1wYzUyeHhfZmVjX21kaW9fcHJvYmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqb2YpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9mcmVlc2NhbGUvZmVjX21wYzUyeHhfcGh5LmMtMTA1LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ZyZWVzY2FsZS9mZWNfbXBjNTJ4eF9waHkuYzoxMDY6XFx0ZXJyID0gb2ZfbWRpb2J1c19yZWdpc3RlcihidXMsIG5wKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9mcmVlc2NhbGUvZmVjX21wYzUyeHhfcGh5LmMtMTA3LVxcdGlmIChlcnIpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9mcmVlc2NhbGUvZnNfZW5ldC9taWktYml0YmFuZy5jPTE0OT1zdGF0aWMgaW50IGZzX2VuZXRfbWRpb19wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpvZmRldilcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ZyZWVzY2FsZS9mc19lbmV0L21paS1iaXRiYW5nLmMtMTc1LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ZyZWVzY2FsZS9mc19lbmV0L21paS1iaXRiYW5nLmM6MTc2OlxcdHJldCA9IG9mX21kaW9idXNfcmVnaXN0ZXIobmV3X2J1cywgb2ZkZXYtXFx1MDAzZWRldi5vZl9ub2RlKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9mcmVlc2NhbGUvZnNfZW5ldC9taWktYml0YmFuZy5jLTE3Ny1cXHRpZiAocmV0KVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvZnJlZXNjYWxlL2ZzX2VuZXQvbWlpLWZlYy5jPTk3PXN0YXRpYyBpbnQgZnNfZW5ldF9tZGlvX3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKm9mZGV2KVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvZnJlZXNjYWxlL2ZzX2VuZXQvbWlpLWZlYy5jLTE2Ni1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9mcmVlc2NhbGUvZnNfZW5ldC9taWktZmVjLmM6MTY3OlxcdHJldCA9IG9mX21kaW9idXNfcmVnaXN0ZXIobmV3X2J1cywgb2ZkZXYtXFx1MDAzZWRldi5vZl9ub2RlKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9mcmVlc2NhbGUvZnNfZW5ldC9taWktZmVjLmMtMTY4LVxcdGlmIChyZXQpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9mcmVlc2NhbGUvZnNsX3BxX21kaW8uYz00MDk9c3RhdGljIGludCBmc2xfcHFfbWRpb19wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvZnJlZXNjYWxlL2ZzbF9wcV9tZGlvLmMtNDkzLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ZyZWVzY2FsZS9mc2xfcHFfbWRpby5jOjQ5NDpcXHRlcnIgPSBvZl9tZGlvYnVzX3JlZ2lzdGVyKG5ld19idXMsIG5wKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9mcmVlc2NhbGUvZnNsX3BxX21kaW8uYy00OTUtXFx0aWYgKGVycikge1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvZnJlZXNjYWxlL3hnbWFjX21kaW8uYz0zNzE9c3RhdGljIGludCB4Z21hY19tZGlvX3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9mcmVlc2NhbGUveGdtYWNfbWRpby5jLTQyNi1cXHRpZiAoaXNfb2Zfbm9kZShmd25vZGUpKVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ZyZWVzY2FsZS94Z21hY19tZGlvLmM6NDI3OlxcdFxcdHJldCA9IG9mX21kaW9idXNfcmVnaXN0ZXIoYnVzLCB0b19vZl9ub2RlKGZ3bm9kZSkpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ZyZWVzY2FsZS94Z21hY19tZGlvLmMtNDI4LVxcdGVsc2UgaWYgKGlzX2FjcGlfbm9kZShmd25vZGUpKVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ZyZWVzY2FsZS94Z21hY19tZGlvLmM6NDI5OlxcdFxcdHJldCA9IGFjcGlfbWRpb2J1c19yZWdpc3RlcihidXMsIGZ3bm9kZSk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvZnJlZXNjYWxlL3hnbWFjX21kaW8uYy00MzAtXFx0ZWxzZVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2hpYm1jZ2UvaGJnX21kaW8uYz0yNjY9aW50IGhiZ19tZGlvX2luaXQoc3RydWN0IGhiZ19wcml2ICpwcml2KVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2hpYm1jZ2UvaGJnX21kaW8uYy0yOTEtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2hpYm1jZ2UvaGJnX21kaW8uYzoyOTI6XFx0cmV0ID0gZGV2bV9tZGlvYnVzX3JlZ2lzdGVyKGRldiwgbWRpb19idXMpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9oaWJtY2dlL2hiZ19tZGlvLmMtMjkzLVxcdGlmIChyZXQpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaGl4NWhkMl9nbWFjLmM9MTA5ND1zdGF0aWMgaW50IGhpeDVoZDJfZGV2X3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaGl4NWhkMl9nbWFjLmMtMTE4NS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaGl4NWhkMl9nbWFjLmM6MTE4NjpcXHRyZXQgPSBvZl9tZGlvYnVzX3JlZ2lzdGVyKGJ1cywgbm9kZSk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2hpeDVoZDJfZ21hYy5jLTExODctXFx0aWYgKHJldClcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL2huczNwZi9oY2xnZV9tZGlvLmM9MTIzPWludCBoY2xnZV9tYWNfbWRpb19jb25maWcoc3RydWN0IGhjbGdlX2RldiAqaGRldilcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL2huczNwZi9oY2xnZV9tZGlvLmMtMTU0LVxcdG1kaW9fYnVzLVxcdTAwM2VwaHlfbWFzayA9IH4oMVUgXFx1MDAzY1xcdTAwM2MgbWFjLVxcdTAwM2VwaHlfYWRkcik7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM3BmL2hjbGdlX21kaW8uYzoxNTU6XFx0cmV0ID0gbWRpb2J1c19yZWdpc3RlcihtZGlvX2J1cyk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM3BmL2hjbGdlX21kaW8uYy0xNTYtXFx0aWYgKHJldCkge1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huc19tZGlvLmM9NDk1PXN0YXRpYyBpbnQgaG5zX21kaW9fcHJvYmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldilcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnNfbWRpby5jLTU4My1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaG5zX21kaW8uYzo1ODQ6XFx0XFx0cmV0ID0gb2ZfbWRpb2J1c19yZWdpc3RlcihuZXdfYnVzLCBwZGV2LVxcdTAwM2VkZXYub2Zfbm9kZSk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huc19tZGlvLmMtNTg1LVxcdH0gZWxzZSBpZiAoaXNfYWNwaV9ub2RlKHBkZXYtXFx1MDAzZWRldi5md25vZGUpKSB7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaG5zX21kaW8uYy01OTItXFx0XFx0LyogUmVnaXN0ZXIgdGhlIE1ESU8gYnVzICovXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huc19tZGlvLmM6NTkzOlxcdFxcdHJldCA9IG1kaW9idXNfcmVnaXN0ZXIobmV3X2J1cyk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huc19tZGlvLmMtNTk0LVxcdH0gZWxzZSB7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pYm0vZW1hYy9jb3JlLmM9MjU2MD1zdGF0aWMgaW50IGVtYWNfZHRfbWRpb19wcm9iZShzdHJ1Y3QgZW1hY19pbnN0YW5jZSAqZGV2KVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaWJtL2VtYWMvY29yZS5jLTI1ODQtXFx0c25wcmludGYoYnVzLVxcdTAwM2VpZCwgTUlJX0JVU19JRF9TSVpFLCBcXFwiJXNcXFwiLCBkZXYtXFx1MDAzZW9mZGV2LVxcdTAwM2VuYW1lKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pYm0vZW1hYy9jb3JlLmM6MjU4NTpcXHRyZXMgPSBkZXZtX29mX21kaW9idXNfcmVnaXN0ZXIoXFx1MDAyNmRldi1cXHUwMDNlb2ZkZXYtXFx1MDAzZWRldiwgYnVzLCBtaWlfbnApO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2libS9lbWFjL2NvcmUuYy0yNTg2LVxcdGlmIChyZXMpIHtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2l4Z2JlX3BoeS5jPTEwMjY9aW50IGl4Z2JlX21paV9idXNfaW5pdChzdHJ1Y3QgaXhnYmVfaHcgKmh3KVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvaXhnYmVfcGh5LmMtMTA4OC1cXHRhZGFwdGVyLVxcdTAwM2VtaWlfYnVzID0gYnVzO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2l4Z2JlX3BoeS5jOjEwODk6XFx0cmV0dXJuIG1kaW9idXNfcmVnaXN0ZXIoYnVzKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9peGdiZV9waHkuYy0xMDkwLX1cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2xhbnRpcV9ldG9wLmM9Mzg1PWx0cV9ldG9wX21kaW9faW5pdChzdHJ1Y3QgbmV0X2RldmljZSAqZGV2KVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbGFudGlxX2V0b3AuYy00MDItXFx0XFx0IHByaXYtXFx1MDAzZXBkZXYtXFx1MDAzZW5hbWUsIHByaXYtXFx1MDAzZXBkZXYtXFx1MDAzZWlkKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9sYW50aXFfZXRvcC5jOjQwMzpcXHRpZiAobWRpb2J1c19yZWdpc3Rlcihwcml2LVxcdTAwM2VtaWlfYnVzKSkge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2xhbnRpcV9ldG9wLmMtNDA0LVxcdFxcdGVyciA9IC1FTlhJTztcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvbXZtZGlvLmM9MjgzPXN0YXRpYyBpbnQgb3Jpb25fbWRpb19wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9tdm1kaW8uYy0zODEtXFx0LyogRm9yIHRoZSBwbGF0Zm9ybXMgbm90IHN1cHBvcnRpbmcgRFQvQUNQSSBmYWxsLWJhY2tcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL212bWRpby5jOjM4MjpcXHQgKiB0byBtZGlvYnVzX3JlZ2lzdGVyIHZpYSBvZl9tZGlvYnVzX3JlZ2lzdGVyLlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvbXZtZGlvLmMtMzgzLVxcdCAqL1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvbXZtZGlvLmMtMzg0LVxcdGlmIChpc19hY3BpX25vZGUocGRldi1cXHUwMDNlZGV2LmZ3bm9kZSkpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9tdm1kaW8uYzozODU6XFx0XFx0cmV0ID0gYWNwaV9tZGlvYnVzX3JlZ2lzdGVyKGJ1cywgcGRldi1cXHUwMDNlZGV2LmZ3bm9kZSk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9tdm1kaW8uYy0zODYtXFx0ZWxzZVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvbXZtZGlvLmM6Mzg3OlxcdFxcdHJldCA9IG9mX21kaW9idXNfcmVnaXN0ZXIoYnVzLCBwZGV2LVxcdTAwM2VkZXYub2Zfbm9kZSk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9tdm1kaW8uYy0zODgtXFx0aWYgKHJldCBcXHUwMDNjIDApIHtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHhhMTY4X2V0aC5jPTEzODc9c3RhdGljIGludCBweGExNjhfZXRoX3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3B4YTE2OF9ldGguYy0xNTA0LVxcdHBlcC1cXHUwMDNlc21pX2J1cy1cXHUwMDNlcGh5X21hc2sgPSAweGZmZmZmZmZmO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHhhMTY4X2V0aC5jOjE1MDU6XFx0ZXJyID0gbWRpb2J1c19yZWdpc3RlcihwZXAtXFx1MDAzZXNtaV9idXMpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHhhMTY4X2V0aC5jLTE1MDYtXFx0aWYgKGVycilcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a19ldGhfc29jLmM9OTk3PXN0YXRpYyBpbnQgbXRrX21kaW9faW5pdChzdHJ1Y3QgbXRrX2V0aCAqZXRoKVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX2V0aF9zb2MuYy0xMDM2LVxcdGRldl9kYmcoZXRoLVxcdTAwM2VkZXYsIFxcXCJNREMgaXMgcnVubmluZyBvbiAlZCBIelxcXFxuXFxcIiwgTURDX01BWF9GUkVRIC8gZXRoLVxcdTAwM2VtZGNfZGl2aWRlcik7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX2V0aF9zb2MuYzoxMDM3OlxcdHJldCA9IG9mX21kaW9idXNfcmVnaXN0ZXIoZXRoLVxcdTAwM2VtaWlfYnVzLCBtaWlfbnApO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a19ldGhfc29jLmMtMTAzOC1cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a19zdGFyX2VtYWMuYz0xNDIyPXN0YXRpYyBpbnQgbXRrX3N0YXJfbWRpb19pbml0KHN0cnVjdCBuZXRfZGV2aWNlICpuZGV2KVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX3N0YXJfZW1hYy5jLTE0NDctXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX3N0YXJfZW1hYy5jOjE0NDg6XFx0cmV0ID0gZGV2bV9vZl9tZGlvYnVzX3JlZ2lzdGVyKGRldiwgcHJpdi1cXHUwMDNlbWlpLCBtZGlvX25vZGUpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a19zdGFyX2VtYWMuYy0xNDQ5LVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4YmZfZ2lnZS9tbHhiZl9naWdlX21kaW8uYz0yODc9aW50IG1seGJmX2dpZ2VfbWRpb19wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2LCBzdHJ1Y3QgbWx4YmZfZ2lnZSAqcHJpdilcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seGJmX2dpZ2UvbWx4YmZfZ2lnZV9tZGlvLmMtMzMyLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seGJmX2dpZ2UvbWx4YmZfZ2lnZV9tZGlvLmM6MzMzOlxcdHJldCA9IG1kaW9idXNfcmVnaXN0ZXIocHJpdi1cXHUwMDNlbWRpb2J1cyk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4YmZfZ2lnZS9tbHhiZl9naWdlX21kaW8uYy0zMzQtXFx0aWYgKHJldClcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21ldGEvZmJuaWMvZmJuaWNfbWRpby5jPTI1Mz1pbnQgZmJuaWNfbWRpb2J1c19jcmVhdGUoc3RydWN0IGZibmljX2RldiAqZmJkKVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWV0YS9mYm5pYy9mYm5pY19tZGlvLmMtMjcyLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21ldGEvZmJuaWMvZmJuaWNfbWRpby5jOjI3MzpcXHRlcnIgPSBkZXZtX21kaW9idXNfcmVnaXN0ZXIoZmJkLVxcdTAwM2VkZXYsIGJ1cyk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWV0YS9mYm5pYy9mYm5pY19tZGlvLmMtMjc0LVxcdGlmIChlcnIpIHtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JlbC9rczg4NTFfY29tbW9uLmM9MTAzNj1zdGF0aWMgaW50IGtzODg1MV9yZWdpc3Rlcl9tZGlvYnVzKHN0cnVjdCBrczg4NTFfbmV0ICprcywgc3RydWN0IGRldmljZSAqZGV2KVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcmVsL2tzODg1MV9jb21tb24uYy0xMDUyLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JlbC9rczg4NTFfY29tbW9uLmM6MTA1MzpcXHRyZXQgPSBtZGlvYnVzX3JlZ2lzdGVyKG1paV9idXMpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JlbC9rczg4NTFfY29tbW9uLmMtMTA1NC1cXHRpZiAocmV0KVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JlbC9rczg4NTFfY29tbW9uLmM6MTA1NTpcXHRcXHRnb3RvIGVycl9tZGlvYnVzX3JlZ2lzdGVyO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JlbC9rczg4NTFfY29tbW9uLmMtMTA1Ni1cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JlbC9rczg4NTFfY29tbW9uLmMtMTA2MC1cXG5cXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMjVUMDg6MjA6MDcuOTg5NjYzMzU0WiIsIlNlcSI6NywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6MzQ4NzAwMzQ1OCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiT2theSwgbGV0IG1lIHRoaW5rIHRoaXMgdGhyb3VnaC5cblxuKipNRElPIEJ1cyBSZWdpc3RyYXRpb246IEEgUXVpY2sgU2NydXRpbnkqKlxuXG5IbW0sIGhvbGQgb24gYSBzZWNvbmQuIEknbSBzZWVpbmcgYSBmZXcgTURJTyBidXMgcmVnaXN0cmF0aW9uIGZ1bmN0aW9ucyBoZXJlOiBgZGV2bV9tZGlvYnVzX3JlZ2lzdGVyYCwgYG9mX21kaW9idXNfcmVnaXN0ZXJgLCBhbmQgcGxhaW4gb2xkIGBtZGlvYnVzX3JlZ2lzdGVyYC4gVGhlIGtleSBxdWVzdGlvbiBwb3BwaW5nIGludG8gbXkgaGVhZCBpcyB3aGV0aGVyIGBtZGlvYnVzX3JlZ2lzdGVyYCBpcyBzb21ldGhpbmcgdGhhdCBjYW4gYmUgY2FsbGVkIGJ5IGEgVVNCIGRyaXZlci4gVGhhdCBzZWVtcyBhIGxpdHRsZSB1bnVzdWFsIGF0IGZpcnN0IGdsYW5jZSwgYnV0IHlvdSBuZXZlciBrbm93LiBJdCdzIHRpbWUgdG8gZGlnIGludG8gdGhlIGtlcm5lbCdzIFVTQiBuZXR3b3JrIGRyaXZlcnMgdG8gc2VlIGlmIHRoZXJlJ3MgYW55IHByZWNlZGVudC4gTGV0J3Mgc3RhcnQgYnkgcXVpY2tseSBjaGVja2luZyB0aGUgYGRyaXZlcnMvbmV0L3VzYi9gIGRpcmVjdG9yeSB0byBnZXQgYSBmZWVsIGZvciBob3cgdGhleSBpbnRlcmFjdCB3aXRoIHRoZSBNRElPIHN1YnN5c3RlbS4gSSB3YW50IHRvIHNlZSBob3cgdGhlc2UgZGlmZmVyZW50IHJlZ2lzdHJhdGlvbiBtZWNoYW5pc21zIGFyZSB1c2VkIGluIHRoYXQgc3BlY2lmaWMgY29udGV4dC5cblxuXG4iLCJJbnB1dFRva2VucyI6MzI0MDcsIk91dHB1dFRva2VucyI6MzEsIk91dHB1dFRob3VnaHRzVG9rZW5zIjo1OSwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0yNVQwODoyMDoxMS40NzY2NzAwOTJaIiwiU2VxIjo4LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NDU3NjExNDMwLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcIm1kaW9idXNfcmVnaXN0ZXJcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZHJpdmVycy9uZXQvdXNiL1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJkcml2ZXJzL25ldC91c2IvYXNpeF9kZXZpY2VzLmM9NjY5PXN0YXRpYyBpbnQgYXg4ODc3Ml9pbml0X21kaW8oc3RydWN0IHVzYm5ldCAqZGV2KVxcbi0tXFxuZHJpdmVycy9uZXQvdXNiL2FzaXhfZGV2aWNlcy5jLTY4Ni1cXG5kcml2ZXJzL25ldC91c2IvYXNpeF9kZXZpY2VzLmM6Njg3OlxcdHJldCA9IG1kaW9idXNfcmVnaXN0ZXIocHJpdi1cXHUwMDNlbWRpbyk7XFxuZHJpdmVycy9uZXQvdXNiL2FzaXhfZGV2aWNlcy5jLTY4OC1cXHRpZiAocmV0KSB7XFxuLS1cXG5kcml2ZXJzL25ldC91c2IvYXg4ODE3MmEuYz02MT1zdGF0aWMgaW50IGF4ODgxNzJhX2luaXRfbWRpbyhzdHJ1Y3QgdXNibmV0ICpkZXYpXFxuLS1cXG5kcml2ZXJzL25ldC91c2IvYXg4ODE3MmEuYy03OS1cXG5kcml2ZXJzL25ldC91c2IvYXg4ODE3MmEuYzo4MDpcXHRyZXQgPSBtZGlvYnVzX3JlZ2lzdGVyKHByaXYtXFx1MDAzZW1kaW8pO1xcbmRyaXZlcnMvbmV0L3VzYi9heDg4MTcyYS5jLTgxLVxcdGlmIChyZXQpIHtcXG4tLVxcbmRyaXZlcnMvbmV0L3VzYi9sYW43OHh4LmM9MjA5MT1zdGF0aWMgaW50IGxhbjc4eHhfbWRpb19pbml0KHN0cnVjdCBsYW43OHh4X25ldCAqZGV2KVxcbi0tXFxuZHJpdmVycy9uZXQvdXNiL2xhbjc4eHguYy0yMTIxLVxcdG5vZGUgPSBvZl9nZXRfY2hpbGRfYnlfbmFtZShkZXYtXFx1MDAzZXVkZXYtXFx1MDAzZWRldi5vZl9ub2RlLCBcXFwibWRpb1xcXCIpO1xcbmRyaXZlcnMvbmV0L3VzYi9sYW43OHh4LmM6MjEyMjpcXHRyZXQgPSBvZl9tZGlvYnVzX3JlZ2lzdGVyKGRldi1cXHUwMDNlbWRpb2J1cywgbm9kZSk7XFxuZHJpdmVycy9uZXQvdXNiL2xhbjc4eHguYy0yMTIzLVxcdG9mX25vZGVfcHV0KG5vZGUpO1xcbi0tXFxuZHJpdmVycy9uZXQvdXNiL3Ntc2M5NXh4LmM9MTE0Nz1zdGF0aWMgaW50IHNtc2M5NXh4X2JpbmQoc3RydWN0IHVzYm5ldCAqZGV2LCBzdHJ1Y3QgdXNiX2ludGVyZmFjZSAqaW50ZilcXG4tLVxcbmRyaXZlcnMvbmV0L3VzYi9zbXNjOTV4eC5jLTEyNDEtXFxuZHJpdmVycy9uZXQvdXNiL3Ntc2M5NXh4LmM6MTI0MjpcXHRyZXQgPSBtZGlvYnVzX3JlZ2lzdGVyKHBkYXRhLVxcdTAwM2VtZGlvYnVzKTtcXG5kcml2ZXJzL25ldC91c2Ivc21zYzk1eHguYy0xMjQzLVxcdGlmIChyZXQpIHtcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMjVUMDg6MjA6MTEuOTM0Mjg3MzYyWiIsIlNlcSI6OSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NjAwMTczNDk5MCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipSZWFjaGluZyBEUDgzNjQwIFByb2JlIFx1MDAyNiBSZW1vdmUgdmlhIFVTQiBFbXVsYXRpb24qKlxuXG5Pa2F5LCBzbyB0aGUgcGllY2VzIGFyZSBzdGFydGluZyB0byBmaXQgdG9nZXRoZXIgbmljZWx5LiBJJ3ZlIGdvdCBpdDogYHNtc2M5NXh4YCwgYGxhbjc4eHhgLCBgYXg4ODE3MmFgLCBhbmQgYGFzaXhfZGV2aWNlc2Ag4oCTIHRoZXkgYWxsIHJlZ2lzdGVyIGFuIE1ESU8gYnVzLiBUaGF0J3Mga2V5LiBJZiBJIGNhbiBlbXVsYXRlIG9uZSBvZiB0aGVzZSBVU0IgbmV0d29yayBkZXZpY2VzIHVzaW5nIGB2aGNpYCwgdGhlbiB0aGUgY29ycmVzcG9uZGluZyBkcml2ZXIgc2hvdWxkIHByb2JlLCByZWdpc3RlciBpdHMgb3duIE1ESU8gYnVzLCBhbmQgdGhlbiBzY2FuIGZvciBjb25uZWN0ZWQgUEhZcy5cblxuRHVyaW5nIHRoaXMgc2NhbiwgdGhlIGRyaXZlciB3aWxsIGJlIHJlYWRpbmcgUEhZIHJlZ2lzdGVycy4gVGhlIGRyaXZlciBkb2VzIHRoaXMgdXNpbmcgVVNCIGNvbnRyb2wgbWVzc2FnZXMsIHdoaWNoIGlzIHBlcmZlY3QuIElmIG15IGZ1enplciBpbnRlcmNlcHRzIHRoZXNlIG1lc3NhZ2VzLCBJIGNhbiBmZWVkIGl0IHRoZSBQSFkgSUQgZm9yIGEgYGRwODM2NDBgIChgMHgyMDAwNWNlMWApLiBXaGVuIHRoZSBNRElPIGJ1cyBzY2FuIGhhcHBlbnMgYW5kIHRoZSBQSFkgSUQgbWF0Y2hlcywgaXQgc2hvdWxkIGNhbGwgYGRwODM2NDBfcHJvYmVgLiBUaGlzIGlzIGV4YWN0bHkgd2hhdCBJJ20gbG9va2luZyBmb3IuXG5cblRoaXMgYWxzbyBtZWFucyB0aGF0IEkgc2hvdWxkIGJlIGFibGUgdG8gcmVhY2ggYGRwODM2NDBfcHJvYmVgIGFuZCBgZHA4MzY0MF9yZW1vdmVgIGVudGlyZWx5IHdpdGhpbiBhIHZpcnR1YWxpemVkIGVudmlyb25tZW50IHZpYSBVU0IgZGV2aWNlIGVtdWxhdGlvbi4gSXQgaXMgZ29pbmcgdG8gYmUgaW5jcmVkaWJseSB1c2VmdWwgZm9yIGZ1enppbmchXG5cbkkgc2hvdWxkIGRvdWJsZS1jaGVjayB0aGUgZXhhY3QgUEhZIElEIGZvciB0aGUgYGRwODM2NDBgIGp1c3QgdG8gYmUgY2VydGFpbi5cblxuXG4iLCJJbnB1dFRva2VucyI6MzMyMTgsIk91dHB1dFRva2VucyI6MjQsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoxOTQsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDctMjVUMDg6MjA6MTcuOTM2MDI1MjIyWiIsIlNlcSI6MTAsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoxODI3MDUxNjkxLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcIkRQODM2NDBfUEhZX0lEXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmMtMjUtXFxuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYzoyNjojZGVmaW5lIERQODM2NDBfUEhZX0lEXFx0MHgyMDAwNWNlMVxcbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmMtMjctI2RlZmluZSBQQUdFU0VMXFx0XFx0MHgxM1xcbi0tXFxuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYz0xNTMxPXN0YXRpYyBzdHJ1Y3QgcGh5X2RyaXZlciBkcDgzNjQwX2RyaXZlcltdID0ge1xcbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmMtMTUzMi17XFxuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYzoxNTMzOlxcdC5waHlfaWRcXHRcXHQ9IERQODM2NDBfUEhZX0lELFxcbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmMtMTUzNC1cXHQucGh5X2lkX21hc2tcXHQ9IDB4ZmZmZmZmZjAsXFxuLS1cXG5kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jPTE1NTI9c3RhdGljIGNvbnN0IHN0cnVjdCBtZGlvX2RldmljZV9pZCBfX21heWJlX3VudXNlZCBkcDgzNjQwX3RibFtdID0ge1xcbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmM6MTU1MzpcXHR7IERQODM2NDBfUEhZX0lELCAweGZmZmZmZmYwIH0sXFxuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYy0xNTU0LVxcdHsgfVxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0yNVQwODoyMDoxOS43NjMwODQxNzNaIiwiU2VxIjoxMSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NjM5OTYwMDI1NiwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipGdXp6aW5nIFN0cmF0ZWd5IGZvciB0aGUgRFA4MzY0MCBEcml2ZXIqKlxuXG5Pa2F5LCBzbyBgMHgyMDAwNWNlMWAgY29uZmlybXMgaXQg4oCTIHRoaXMgZHJpdmVyIGlzIGRlZmluaXRlbHkgaW4gc3l6a2FsbGVyJ3MgY3Jvc3NoYWlycywgYW5kIHRoZSBVU0IgZnV6emVyIGlzIHRoZSB3YXkgdG8gZ28uIFRoZSBwYXRjaCBpbnRyb2R1Y2luZyBhIGBrcmVmYCBpcyBhIGdvb2Qgc2lnbjsgaXQncyBhIGZ1bmN0aW9uYWwgZml4LCBhZGRyZXNzaW5nIHBvdGVudGlhbCB1c2UtYWZ0ZXItZnJlZSBvciBtZW1vcnkgbGVhayBpc3N1ZXMsIG1ha2luZyBpdCBwcmltZSBmdXp6aW5nIG1hdGVyaWFsLlxuXG5Ob3csIGxldCdzIGlkZW50aWZ5IHRoZSBrZXkga2VybmVsIGZ1bmN0aW9ucyB0byB0YXJnZXQuIFRoZSBwYXRjaCB0b3VjaGVzIGBkcDgzNjQwX2Nsb2NrX2luaXRgLCBgZHA4MzY0MF9jbG9ja19nZXRfYnVzYCwgYGRwODM2NDBfY2xvY2tfcHV0YCwgYGRwODM2NDBfY2xvY2tfcmVsZWFzZWAsIGBkcDgzNjQwX3Byb2JlYCwgYW5kIGBkcDgzNjQwX3JlbW92ZWAuIFdlIHNob3VsZCBkZWZpbml0ZWx5IGluY2x1ZGUgYGRwODM2NDBfcHJvYmVgIGFuZCBgZHA4MzY0MF9yZW1vdmVgIGluIGBGb2N1c1N5bWJvbHNgLiBUaGV5J3JlIHRoZSBlbnRyeSBwb2ludHMsIHRoZSBob29rcyB0aGF0J2xsIGV4cG9zZSB0aGUgZHJpdmVyIHRvIHRoZSBmdXp6ZXIuXG5cbkhtbSwgYGRwODM2NDBfY2xvY2tfZ2V0X2J1c2AgYW5kIGBkcDgzNjQwX2Nsb2NrX3B1dGAgYXJlIHN0YXRpYyBidXQgY2FsbGVkIGZyb20gdGhvc2UgZW50cnkgcG9pbnRzLiBJIHNob3VsZCBkb3VibGUtY2hlY2sgYWJvdXQgaW5saW5pbmcgaGVyZSAtIGVzcGVjaWFsbHkgZm9yIGBkcDgzNjQwX2Nsb2NrX2dldF9idXNgLiBMZXQncyBjb25maXJtIHRoZXJlIGFyZSBubyBub24tc3RhdGljIGZ1bmN0aW9ucyBhbmQgdGhhdCBgZHA4MzY0MF9wcm9iZWAgYW5kIGBkcDgzNjQwX3JlbW92ZWAgYXJlIHRoZSBtYWluIGVudHJ5IHBvaW50cyBmb3IgdGhlIGxvZ2ljLiBXYWl0IGEgc2Vjb25kLCB0aGUgYGRwODM2NDBfcHJvYmVgIGFuZCBgZHA4MzY0MF9yZW1vdmVgIGZ1bmN0aW9ucyBhcmUgc3RhdGljIGFzIHdlbGwhIEJ1dCB0aGV5IGFyZSByZWZlcmVuY2VkIGluIHRoZSBgZHA4MzY0MF9kcml2ZXJgIHN0cnVjdCwgc28gdGhleSBzaG91bGQgbm90IGJlIGlubGluZWQgYW5kIGhhdmUgZGlzdGluY3Qgc3ltYm9sIGFkZHJlc3Nlcy4gVGhpcyBtZWFucyB0aGF0IHN5emthbGxlciAqY2FuKiBmaW5kIHRoZW0uIEFscmlnaHQsIHRoYXQgc2ltcGxpZmllcyB0aGluZ3Mgc29tZXdoYXQuIExldCdzIGdldCB0aGVzZSBmdW5jdGlvbnMgYWRkZWQgdG8gdGhlIGZvY3VzIGxpc3QuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjM0MDc1LCJPdXRwdXRUb2tlbnMiOjIyLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6NDA0LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTI1VDA4OjIwOjI2LjE2MjY4NzcxOVoiLCJTZXEiOjEyLCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MTc5MDgwNjQ0NSwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJkcDgzNjQwX3Byb2JlXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmM9MTQwND1zdGF0aWMgaW50IGRwODM2NDBfdHNfaW5mbyhzdHJ1Y3QgbWlpX3RpbWVzdGFtcGVyICptaWlfdHMsXFxuLS1cXG5kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jLTE0MjctXFxuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYzoxNDI4OnN0YXRpYyBpbnQgZHA4MzY0MF9wcm9iZShzdHJ1Y3QgcGh5X2RldmljZSAqcGh5ZGV2KVxcbmRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmMtMTQyOS17XFxuLS1cXG5kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jPTE1MzE9c3RhdGljIHN0cnVjdCBwaHlfZHJpdmVyIGRwODM2NDBfZHJpdmVyW10gPSB7XFxuLS1cXG5kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jLTE1MzYtXFx0LyogUEhZX0JBU0lDX0ZFQVRVUkVTICovXFxuZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYzoxNTM3OlxcdC5wcm9iZVxcdFxcdD0gZHA4MzY0MF9wcm9iZSxcXG5kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jLTE1MzgtXFx0LnJlbW92ZVxcdFxcdD0gZHA4MzY0MF9yZW1vdmUsXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTI1VDA4OjIwOjI3Ljk1MzUwMDE2NFoiLCJTZXEiOjEzLCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjozNzk3MTIxMDIxLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJPa2F5LCBsZXQncyBicmVhayB0aGlzIGRvd24uXG5cbioqQW5hbHl6aW5nIENhbmRpZGF0ZSBTeW1ib2xzIGZvciBGb2N1c2VkIEV4YW1pbmF0aW9uKipcblxuUmlnaHQsIHNvIHRoZXNlIHN5bWJvbHMsIGV2ZW4gdGhvdWdoIHRoZXkncmUgc2VlbWluZ2x5IHN0YXRpYywgYXJlIGZ1bmN0aW9uaW5nIGFzIGNhbGxiYWNrcy4gVGhhdCdzIGEgZ29vZCBzdGFydGluZyBwb2ludC4gSSB0aGluayBgZHA4MzY0MF9wcm9iZWAgYW5kIGBkcDgzNjQwX3JlbW92ZWAgbG9vayBsaWtlIHNvbGlkIGNhbmRpZGF0ZXMgZm9yIGNsb3NlciBzY3J1dGlueSwgc3BlY2lmaWNhbGx5IGZvciBpbmNsdXNpb24gd2l0aGluIG15IGBGb2N1c1N5bWJvbHNgIGxpc3QuIEkgbmVlZCB0byB1bmRlcnN0YW5kIHRoZWlyIGJlaGF2aW9yIGluIHRoZSBicm9hZGVyIHBpY3R1cmUuXG5cbk5vdywgSSdsbCBuZWVkIHRvIGZpZ3VyZSBvdXQgdGhlIHJlbGV2YW50IGNvbmZpZ3VyYXRpb24gb3B0aW9ucyB0aGF0IGRpY3RhdGUgdGhlaXIgaW5jbHVzaW9uIGFuZCBiZWhhdmlvci4gVGhlIHByaW1hcnkgY29uZmlndXJhdGlvbiBpdGVtIGFwcGVhcnMgdG8gYmUgYENPTkZJR19EUDgzNjQwX1BIWWAsIHdoaWNoIG1ha2VzIHNlbnNlLiBJJ2xsIG5lZWQgdG8gZG91YmxlIGNoZWNrIHRoZSBkZXBlbmRlbmNpZXMgYnkgZXhhbWluaW5nIHRoZSBgZHJpdmVycy9uZXQvcGh5L0tjb25maWdgIGZpbGUuIFRoYXQgc2hvdWxkIGdpdmUgbWUgYSBtb3JlIGNvbXBsZXRlIHBpY3R1cmUgb2YgdGhlIGNvbmZpZ3VyYXRpb24gc3BhY2Ugc3Vycm91bmRpbmcgdGhlc2Ugc3ltYm9scy5cblxuXG4iLCJJbnB1dFRva2VucyI6MzUyMjMsIk91dHB1dFRva2VucyI6MjMsIk91dHB1dFRob3VnaHRzVG9rZW5zIjo5MCwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0yNVQwODoyMDozMS43NTA2MjQ0MDVaIiwiU2VxIjoxNCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjE4MDI5NTM3NTQsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiY29uZmlnIERQODM2NDBfUEhZXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImRyaXZlcnMvcHRwL0tjb25maWc9NzI9Y29tbWVudCBcXFwiRW5hYmxlIFBIWUxJQiBhbmQgTkVUV09SS19QSFlfVElNRVNUQU1QSU5HIHRvIHNlZSB0aGUgYWRkaXRpb25hbCBjbG9ja3MuXFxcIlxcbi0tXFxuZHJpdmVycy9wdHAvS2NvbmZpZy03NC1cXG5kcml2ZXJzL3B0cC9LY29uZmlnOjc1OmNvbmZpZyBEUDgzNjQwX1BIWVxcbmRyaXZlcnMvcHRwL0tjb25maWctNzYtXFx0dHJpc3RhdGUgXFxcIkRyaXZlciBmb3IgdGhlIE5hdGlvbmFsIFNlbWljb25kdWN0b3IgRFA4MzY0MCBQSFlURVJcXFwiXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTI1VDA4OjIwOjMzLjU1MzU4MzQ2OVoiLCJTZXEiOjE1LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjozNDc0OTA1NjY5LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJIZXJlJ3MgbXkgdGFrZSBvbiB0aG9zZSB0aG91Z2h0czpcblxuKipOYXZpZ2F0aW5nIHRoZSBLZXJuZWwncyBQVFAgRHJpdmVycyoqXG5cbk9rYXksIHNvIEknbSBsb29raW5nIGF0IHRoZSBgRFA4MzY0MF9QSFlgIOKAkyB0aGF0J3MgYSBQSFkgZm9yIFBUUCwgcmlnaHQ/IEludGVyZXN0aW5nLiBXaHkgaXMgdGhhdCBzcGVjaWZpYyBkcml2ZXIgY29uZmlndXJhdGlvbiBidXJpZWQgaW4gYGRyaXZlcnMvcHRwL0tjb25maWdgPyBJdCBzZWVtcyBhIGJpdCB1bnVzdWFsLCBidXQgSSBndWVzcyBpdCBtYWtlcyBzZW5zZSBpbiB0aGUgYnJvYWRlciBjb250ZXh0IG9mIFBUUCBoYXJkd2FyZSBzdXBwb3J0LiBUbyBnZXQgYSBiZXR0ZXIgdW5kZXJzdGFuZGluZyBvZiB0aGUgbGF5b3V0LCBsZXQgbWUganVtcCBvdmVyIHRvIHRoYXQgYEtjb25maWdgIGZpbGUgaW4gdGhlIGBkcml2ZXJzL3B0cGAgZGlyZWN0b3J5LiBJJ2xsIHRha2UgYSBsb29rIGFyb3VuZCBsaW5lIDc1OyB0aGF0J3MgdXN1YWxseSBhIGdvb2Qgc3BvdCB0byBzdGFydCB3aGVuIEknbSB0cnlpbmcgdG8gZmlndXJlIG91dCB0aGUgZGVwZW5kZW5jaWVzIGFuZCByZWxhdGlvbnNoaXBzIHdpdGhpbiB0aGVzZSBjb25maWd1cmF0aW9uIGZpbGVzLiBJdCB3aWxsIGdpdmUgbWUgYSBiZXR0ZXIgdW5kZXJzdGFuZGluZyBvZiB3aGVyZSB0aGlzIHBhcnRpY3VsYXIgZHJpdmVyIGZpdHMgaW50byB0aGUgbGFyZ2VyIGFyY2hpdGVjdHVyZSBhbmQgd2hhdCBvdGhlciBvcHRpb25zIG1pZ2h0IGJlIGludm9sdmVkLlxuXG5cbiIsIklucHV0VG9rZW5zIjozNTYyOCwiT3V0cHV0VG9rZW5zIjozNCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjQ0LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTI1VDA4OjIwOjM3LjAyODQ5MTg4OFoiLCJTZXEiOjE2LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJyZWFkLWZpbGUiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo2NjEyMCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkZpbGVcIjogXCJkcml2ZXJzL3B0cC9LY29uZmlnXCIsXG4gIFwiRmlyc3RMaW5lXCI6IDYwLFxuICBcIkxpbmVDb3VudFwiOiAzMFxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiQ29udGVudHNcIjogXCIgIDYwOlxcdFxcdGRlcGVuZHMgb24gR0lBTkZBUiB8fCBGU0xfRFBBQV9FVEggfHwgRlNMX0RQQUEyX0VUSCB8fCBGU0xfRU5FVEMgfHwgRlNMX0VORVRDX1ZGIHx8IENPTVBJTEVfVEVTVFxcbiAgNjE6XFx0XFx0ZGVwZW5kcyBvbiBQVFBfMTU4OF9DTE9DS1xcbiAgNjI6XFx0XFx0ZGVmYXVsdCB5IGlmIEdJQU5GQVIgfHwgRlNMX0RQQUFfRVRIIHx8IEZTTF9EUEFBMl9FVEggfHwgRlNMX0VORVRDIHx8IEZTTF9FTkVUQ19WRlxcbiAgNjM6XFx0XFx0aGVscFxcbiAgNjQ6XFx0XFx0ICBUaGlzIGRyaXZlciBhZGRzIHN1cHBvcnQgZm9yIHVzaW5nIHRoZSBGcmVlc2NhbGUgUW9ySVEgMTU4OFxcbiAgNjU6XFx0XFx0ICB0aW1lciBhcyBhIFBUUCBjbG9jay4gVGhpcyBjbG9jayBpcyBvbmx5IHVzZWZ1bCBpZiB5b3VyIFBUUFxcbiAgNjY6XFx0XFx0ICBwcm9ncmFtcyBhcmUgZ2V0dGluZyBoYXJkd2FyZSB0aW1lIHN0YW1wcyBvbiB0aGUgUFRQIEV0aGVybmV0XFxuICA2NzpcXHRcXHQgIHBhY2tldHMgdXNpbmcgdGhlIFNPX1RJTUVTVEFNUElORyBBUEkuXFxuICA2ODpcXHRcXG4gIDY5OlxcdFxcdCAgVG8gY29tcGlsZSB0aGlzIGRyaXZlciBhcyBhIG1vZHVsZSwgY2hvb3NlIE0gaGVyZTogdGhlIG1vZHVsZVxcbiAgNzA6XFx0XFx0ICB3aWxsIGJlIGNhbGxlZCBwdHBfcW9yaXEuXFxuICA3MTpcXHRcXG4gIDcyOlxcdGNvbW1lbnQgXFxcIkVuYWJsZSBQSFlMSUIgYW5kIE5FVFdPUktfUEhZX1RJTUVTVEFNUElORyB0byBzZWUgdGhlIGFkZGl0aW9uYWwgY2xvY2tzLlxcXCJcXG4gIDczOlxcdFxcdGRlcGVuZHMgb24gUEhZTElCPW4gfHwgTkVUV09SS19QSFlfVElNRVNUQU1QSU5HPW5cXG4gIDc0OlxcdFxcbiAgNzU6XFx0Y29uZmlnIERQODM2NDBfUEhZXFxuICA3NjpcXHRcXHR0cmlzdGF0ZSBcXFwiRHJpdmVyIGZvciB0aGUgTmF0aW9uYWwgU2VtaWNvbmR1Y3RvciBEUDgzNjQwIFBIWVRFUlxcXCJcXG4gIDc3OlxcdFxcdGRlcGVuZHMgb24gTkVUV09SS19QSFlfVElNRVNUQU1QSU5HXFxuICA3ODpcXHRcXHRkZXBlbmRzIG9uIFBIWUxJQlxcbiAgNzk6XFx0XFx0ZGVwZW5kcyBvbiBQVFBfMTU4OF9DTE9DS1xcbiAgODA6XFx0XFx0c2VsZWN0IENSQzMyXFxuICA4MTpcXHRcXHRoZWxwXFxuICA4MjpcXHRcXHQgIFN1cHBvcnRzIHRoZSBEUDgzNjQwIFBIWVRFUiB3aXRoIElFRUUgMTU4OCBmZWF0dXJlcy5cXG4gIDgzOlxcdFxcbiAgODQ6XFx0XFx0ICBUaGlzIGRyaXZlciBhZGRzIHN1cHBvcnQgZm9yIHVzaW5nIHRoZSBEUDgzNjQwIGFzIGEgUFRQXFxuICA4NTpcXHRcXHQgIGNsb2NrLiBUaGlzIGNsb2NrIGlzIG9ubHkgdXNlZnVsIGlmIHlvdXIgUFRQIHByb2dyYW1zIGFyZVxcbiAgODY6XFx0XFx0ICBnZXR0aW5nIGhhcmR3YXJlIHRpbWUgc3RhbXBzIG9uIHRoZSBQVFAgRXRoZXJuZXQgcGFja2V0c1xcbiAgODc6XFx0XFx0ICB1c2luZyB0aGUgU09fVElNRVNUQU1QSU5HIEFQSS5cXG4gIDg4OlxcdFxcbiAgODk6XFx0XFx0ICBJbiBvcmRlciBmb3IgdGhpcyB0byB3b3JrLCB5b3VyIE1BQyBkcml2ZXIgbXVzdCBhbHNvXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTI1VDA4OjIwOjM3LjAyODU1OTM1OFoiLCJTZXEiOjE3LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjozNDIwODA3MTg0LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJPa2F5LCBsZXQncyBicmVhayB0aGlzIGRvd24uXG5cbioqRGVwZW5kZW5jaWVzIGFuZCBWZXJpZmljYXRpb24qKlxuXG5SaWdodCwgc28gSSdtIGxvb2tpbmcgYXQgYERQODM2NDBfUEhZYCBhbmQgaXQncyBmbGFnZ2VkIGFzIGRlcGVuZGluZyBvbiBgTkVUV09SS19QSFlfVElNRVNUQU1QSU5HYCwgYFBIWUxJQmAsIGFuZCBgUFRQXzE1ODhfQ0xPQ0tgLiBNYWtlcyBzZW5zZSwgdGhlIERQODM2NDAgaXMgYSBwb3B1bGFyIFBIWSBmb3IgdGltZXN0YW1waW5nLiBJIG5lZWQgdG8gbWFrZSBzdXJlIHRob3NlIGRlcGVuZGVuY2llcyBhcmUgcHJvcGVybHkgaGFuZGxlZC4gVGhlIGNydWNpYWwgb25lcyB0byBkb3VibGUtY2hlY2ssIHRob3VnaCwgYXJlIGBORVRXT1JLX1BIWV9USU1FU1RBTVBJTkdgIGFuZCBgUFRQXzE1ODhfQ0xPQ0tgIOKAkyBgUEhZTElCYCBpcyBwcmV0dHkgc3RhbmRhcmQgZm9yIFBIWSBkZXZpY2UgZHJpdmVycy4gTGV0J3MgbWFrZSBzdXJlIHRob3NlIHR3byBhcmUgY29uZmlndXJlZCBjb3JyZWN0bHkgYW5kIHRoYXQgdGhlcmUncyBubyBjb25mbGljdC4gSSdsbCBuZWVkIHRvIGRpZyBpbnRvIHRoZSBzZXR0aW5ncyBmb3IgdGhvc2UgZmVhdHVyZXMuIFRoaXMgaXMgd2hlcmUgSSdsbCBiZSBsb29raW5nIGZvciBjb25maWd1cmF0aW9uIG9wdGlvbnMgb3IgYW55IHBvc3NpYmxlIGNvbmZsaWN0cy4gVGltZSB0byBjaGVjayB0aG9zZSBjb25maWd1cmF0aW9ucyBhbmQgbWFrZSBzdXJlIGV2ZXJ5dGhpbmcgaXMgaW4gb3JkZXIuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjM2NDM4LCJPdXRwdXRUb2tlbnMiOjIxLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6NjIsIlRvb2xDYWxscyI6WyJyZWFkLWZpbGUiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0yNVQwODoyMDo0MC40NDkzNjk4MzFaIiwiU2VxIjoxOCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjIxMDI3NjczMDgsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiY29uZmlnIE5FVFdPUktfUEhZX1RJTUVTVEFNUElOR1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJuZXQvS2NvbmZpZz0xNTE9Y29uZmlnIE5FVF9QVFBfQ0xBU1NJRllcXG4tLVxcbm5ldC9LY29uZmlnLTE1My1cXG5uZXQvS2NvbmZpZzoxNTQ6Y29uZmlnIE5FVFdPUktfUEhZX1RJTUVTVEFNUElOR1xcbm5ldC9LY29uZmlnLTE1NS1cXHRib29sIFxcXCJUaW1lc3RhbXBpbmcgaW4gUEhZIGRldmljZXNcXFwiXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTI1VDA4OjIwOjQyLjU1MjE0Mzk0OVoiLCJTZXEiOjE5LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjozMDM2Nzg4OTQ3LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJIZXJlJ3MgYSBzdW1tYXJ5IG9mIG15IHRob3VnaHQgcHJvY2VzcywgYXMgcmVxdWVzdGVkOlxuXG4qKk5hdmlnYXRpbmcgdGhlIEtlcm5lbCBDb25maWd1cmF0aW9uIExhbmRzY2FwZSoqXG5cbk9rYXksIHNvIEknbSBkaWdnaW5nIGludG8gdGhpcyBgbmV0L0tjb25maWdgIGZpbGUgYWdhaW4uIEkgbmVlZCB0byByZWZyZXNoIG15IG1lbW9yeSBvbiBhIHNwZWNpZmljIGNvbmZpZ3VyYXRpb24gZGV0YWlsLCBhbmQgSSBzZWVtIHRvIHJlY2FsbCBpdCdzIHNvbWV3aGVyZSBhcm91bmQgbGluZSAxNTQuIExldCBtZSBqdW1wIHJpZ2h0IHRoZXJlIGFuZCBzZWUgd2hhdCdzIHdoYXQuIEknbSBnb2luZyB0byBxdWlja2x5IHBhcnNlIHRoZSByZWxldmFudCBjb250ZXh0IGFyb3VuZCB0aGF0IGxpbmUg4oCTIGtleXdvcmRzLCBkZXBlbmRlbmNpZXMsIGFuZCBhbnkgYWNjb21wYW55aW5nIGNvbW1lbnRzIOKAkyB0byB6ZXJvIGluIG9uIHRoZSBwcmVjaXNlIGNvbmZpZ3VyYXRpb24gb3B0aW9uIEknbSBpbnRlcmVzdGVkIGluIGFuZCBpdHMgcmVsYXRpb25zaGlwIHRvIHRoZSBzdXJyb3VuZGluZyBuZXR3b3JrIHN0YWNrLiBJJ20gaG9waW5nIEkgY2FuIGZpbmQgdGhlIGluZm9ybWF0aW9uIHF1aWNrbHksIGFuZCBJIGFtIGZhaXJseSBjZXJ0YWluIEkgY2FuLlxuXG5cbiIsIklucHV0VG9rZW5zIjozNjc5OSwiT3V0cHV0VG9rZW5zIjozMiwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjE3LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTI1VDA4OjIwOjQ1LjU4ODkzNjU5NloiLCJTZXEiOjIwLCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJyZWFkLWZpbGUiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo3Mzk4MCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkZpbGVcIjogXCJuZXQvS2NvbmZpZ1wiLFxuICBcIkZpcnN0TGluZVwiOiAxNDUsXG4gIFwiTGluZUNvdW50XCI6IDIwXG59IiwiUmVzdWx0cyI6IntcbiAgXCJDb250ZW50c1wiOiBcIiAxNDU6XFx0XFx0Ym9vbCBcXFwiU2VjdXJpdHkgTWFya2luZ1xcXCJcXG4gMTQ2OlxcdFxcdGhlbHBcXG4gMTQ3OlxcdFxcdCAgVGhpcyBlbmFibGVzIHNlY3VyaXR5IG1hcmtpbmcgb2YgbmV0d29yayBwYWNrZXRzLCBzaW1pbGFyXFxuIDE0ODpcXHRcXHQgIHRvIG5mbWFyaywgYnV0IGRlc2lnbmF0ZWQgZm9yIHNlY3VyaXR5IHB1cnBvc2VzLlxcbiAxNDk6XFx0XFx0ICBJZiB5b3UgYXJlIHVuc3VyZSBob3cgdG8gYW5zd2VyIHRoaXMgcXVlc3Rpb24sIGFuc3dlciBOLlxcbiAxNTA6XFx0XFxuIDE1MTpcXHRjb25maWcgTkVUX1BUUF9DTEFTU0lGWVxcbiAxNTI6XFx0XFx0ZGVmX2Jvb2wgblxcbiAxNTM6XFx0XFxuIDE1NDpcXHRjb25maWcgTkVUV09SS19QSFlfVElNRVNUQU1QSU5HXFxuIDE1NTpcXHRcXHRib29sIFxcXCJUaW1lc3RhbXBpbmcgaW4gUEhZIGRldmljZXNcXFwiXFxuIDE1NjpcXHRcXHRzZWxlY3QgTkVUX1BUUF9DTEFTU0lGWVxcbiAxNTc6XFx0XFx0aGVscFxcbiAxNTg6XFx0XFx0ICBUaGlzIGFsbG93cyB0aW1lc3RhbXBpbmcgb2YgbmV0d29yayBwYWNrZXRzIGJ5IFBIWXMgKG9yXFxuIDE1OTpcXHRcXHQgIG90aGVyIE1JSSBidXMgc25vb3BpbmcgZGV2aWNlcykgd2l0aCBoYXJkd2FyZSB0aW1lc3RhbXBpbmdcXG4gMTYwOlxcdFxcdCAgY2FwYWJpbGl0aWVzLiBUaGlzIG9wdGlvbiBhZGRzIHNvbWUgb3ZlcmhlYWQgaW4gdGhlIHRyYW5zbWl0XFxuIDE2MTpcXHRcXHQgIGFuZCByZWNlaXZlIHBhdGhzLlxcbiAxNjI6XFx0XFxuIDE2MzpcXHRcXHQgIElmIHlvdSBhcmUgdW5zdXJlIGhvdyB0byBhbnN3ZXIgdGhpcyBxdWVzdGlvbiwgYW5zd2VyIE4uXFxuIDE2NDpcXHRcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMjVUMDg6MjA6NDUuNTg5MDEyMzE2WiIsIlNlcSI6MjEsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjMzODkzODU0NDYsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6Ik9rYXksIGhlcmUncyBteSBzdW1tYXJ5LCBwcmVzZW50ZWQgYXMgYSBzdHJlYW0gb2YgdGhvdWdodDpcblxuKipDbG9jaywgQ2xvY2ssIEV2ZXJ5d2hlcmUuLi5CdXQgV2hhdCBBYm91dCBUaGF0IDE1ODggVGhpbmc/KipcblxuQWxyaWdodCwgbGV0J3Mgc2VlLiBXZSdyZSBsb29raW5nIGF0IHRoaXMgYXJjaGl0ZWN0dXJlLCB0aGlzIHN5c3RlbeKApmFuZCBJJ20gdGhpbmtpbmcgYWJvdXQgdGltaW5nLCBhcyBhbHdheXMuIFdlJ3ZlIGdvdCBhbGwgdGhlc2UgY2xvY2tzLCBhbGwgdGhlc2UgZGlmZmVyZW50IHdheXMgb2Yga2VlcGluZyB0cmFjayBvZiB0aW1lLiBCdXQgSSBrZWVwIGNvbWluZyBiYWNrIHRvIHRoaXMgbGl0dGxlIGRldGFpbCwgbmFnZ2luZyBhdCB0aGUgYmFjayBvZiBteSBtaW5kLiBXaGF0IGFib3V0IGBQVFBfMTU4OF9DTE9DS2A/IFdoYXQncyB0aGUgY29udGV4dCBoZXJlPyBJcyBpdCBiZWluZyB1c2VkPyBIb3cgaXMgaXQgaW50ZWdyYXRlZD8gSXMgaXQgYSBjcml0aWNhbCB0aW1pbmcgc291cmNlLCBvciBhIGJhY2t1cD8gQXJlIHRoZXJlIGFueSBwb3RlbnRpYWwgaXNzdWVzIHdpdGggaXRzIHN5bmNocm9uaXphdGlvbiBpbiB0aGlzIHBhcnRpY3VsYXIgc2V0dXA/IEkgbmVlZCB0byBkcmlsbCBkb3duIG9uIHRoYXQuIFRoYXQncyBhIGtleSBlbGVtZW50LCBhbmQgSSBkb24ndCB3YW50IHRvIGdsb3NzIG92ZXIgaXQuIFRoaXMgYFBUUF8xNTg4X0NMT0NLYOKApml0J3MgcG90ZW50aWFsbHkgdGhlIGxpbmNocGluIG9yIGEgd2VhayBwb2ludC4gTmVlZCB0byB1bmRlcnN0YW5kIGl0cyByb2xlLlxuXG5cbiIsIklucHV0VG9rZW5zIjozNzI4MCwiT3V0cHV0VG9rZW5zIjoyNCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjEzLCJUb29sQ2FsbHMiOlsicmVhZC1maWxlIl19LHsiU3RhcnRlZCI6IjIwMjYtMDctMjVUMDg6MjA6NDguOTc4NDAwNjMyWiIsIlNlcSI6MjIsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoxNzkzOTk3ODg0LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcImNvbmZpZyBQVFBfMTU4OF9DTE9DS1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJkcml2ZXJzL25ldC9ldGhlcm5ldC94c2NhbGUvS2NvbmZpZz0yMT1jb25maWcgSVhQNFhYX0VUSFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQveHNjYWxlL0tjb25maWctMzAtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQveHNjYWxlL0tjb25maWc6MzE6Y29uZmlnIFBUUF8xNTg4X0NMT0NLX0lYUDQ2WFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3hzY2FsZS9LY29uZmlnLTMyLVxcdGJvb2wgXFxcIkludGVsIElYUDQ2eCBhcyBQVFAgY2xvY2tcXFwiXFxuLS1cXG5kcml2ZXJzL3B0cC9LY29uZmlnPTY9bWVudSBcXFwiUFRQIGNsb2NrIHN1cHBvcnRcXFwiXFxuZHJpdmVycy9wdHAvS2NvbmZpZy03LVxcbmRyaXZlcnMvcHRwL0tjb25maWc6ODpjb25maWcgUFRQXzE1ODhfQ0xPQ0tcXG5kcml2ZXJzL3B0cC9LY29uZmlnLTktXFx0dHJpc3RhdGUgXFxcIlBUUCBjbG9jayBzdXBwb3J0XFxcIlxcbi0tXFxuZHJpdmVycy9wdHAvS2NvbmZpZy0yOS1cXG5kcml2ZXJzL3B0cC9LY29uZmlnOjMwOmNvbmZpZyBQVFBfMTU4OF9DTE9DS19PUFRJT05BTFxcbmRyaXZlcnMvcHRwL0tjb25maWctMzEtXFx0dHJpc3RhdGVcXG4tLVxcbmRyaXZlcnMvcHRwL0tjb25maWctNDEtXFxuZHJpdmVycy9wdHAvS2NvbmZpZzo0Mjpjb25maWcgUFRQXzE1ODhfQ0xPQ0tfRFRFXFxuZHJpdmVycy9wdHAvS2NvbmZpZy00My1cXHR0cmlzdGF0ZSBcXFwiQnJvYWRjb20gRFRFIGFzIFBUUCBjbG9ja1xcXCJcXG4tLVxcbmRyaXZlcnMvcHRwL0tjb25maWctNTctXFxuZHJpdmVycy9wdHAvS2NvbmZpZzo1ODpjb25maWcgUFRQXzE1ODhfQ0xPQ0tfUU9SSVFcXG5kcml2ZXJzL3B0cC9LY29uZmlnLTU5LVxcdHRyaXN0YXRlIFxcXCJGcmVlc2NhbGUgUW9ySVEgMTU4OCB0aW1lciBhcyBQVFAgY2xvY2tcXFwiXFxuLS1cXG5kcml2ZXJzL3B0cC9LY29uZmlnPTc1PWNvbmZpZyBEUDgzNjQwX1BIWVxcbi0tXFxuZHJpdmVycy9wdHAvS2NvbmZpZy05MS1cXG5kcml2ZXJzL3B0cC9LY29uZmlnOjkyOmNvbmZpZyBQVFBfMTU4OF9DTE9DS19JTkVTXFxuZHJpdmVycy9wdHAvS2NvbmZpZy05My1cXHR0cmlzdGF0ZSBcXFwiWkhBVyBJbkVTIFBUUCB0aW1lIHN0YW1waW5nIElQIGNvcmVcXFwiXFxuLS1cXG5kcml2ZXJzL3B0cC9LY29uZmlnLTEwMi1cXG5kcml2ZXJzL3B0cC9LY29uZmlnOjEwMzpjb25maWcgUFRQXzE1ODhfQ0xPQ0tfUENIXFxuZHJpdmVycy9wdHAvS2NvbmZpZy0xMDQtXFx0dHJpc3RhdGUgXFxcIkludGVsIFBDSCBFRzIwVCBhcyBQVFAgY2xvY2tcXFwiXFxuLS1cXG5kcml2ZXJzL3B0cC9LY29uZmlnLTEyMS1cXG5kcml2ZXJzL3B0cC9LY29uZmlnOjEyMjpjb25maWcgUFRQXzE1ODhfQ0xPQ0tfS1ZNXFxuZHJpdmVycy9wdHAvS2NvbmZpZy0xMjMtXFx0dHJpc3RhdGUgXFxcIktWTSB2aXJ0dWFsIFBUUCBjbG9ja1xcXCJcXG4tLVxcbmRyaXZlcnMvcHRwL0tjb25maWctMTMzLVxcbmRyaXZlcnMvcHRwL0tjb25maWc6MTM0OmNvbmZpZyBQVFBfMTU4OF9DTE9DS19WTUNMT0NLXFxuZHJpdmVycy9wdHAvS2NvbmZpZy0xMzUtXFx0dHJpc3RhdGUgXFxcIlZpcnR1YWwgbWFjaGluZSBQVFAgY2xvY2tcXFwiXFxuLS1cXG5kcml2ZXJzL3B0cC9LY29uZmlnLTE1MC1cXG5kcml2ZXJzL3B0cC9LY29uZmlnOjE1MTpjb25maWcgUFRQXzE1ODhfQ0xPQ0tfSURUODJQMzNcXG5kcml2ZXJzL3B0cC9LY29uZmlnLTE1Mi1cXHR0cmlzdGF0ZSBcXFwiSURUIDgyUDMzeHh4IFBUUCBjbG9ja1xcXCJcXG4tLVxcbmRyaXZlcnMvcHRwL0tjb25maWctMTYyLVxcbmRyaXZlcnMvcHRwL0tjb25maWc6MTYzOmNvbmZpZyBQVFBfMTU4OF9DTE9DS19JRFRDTVxcbmRyaXZlcnMvcHRwL0tjb25maWctMTY0LVxcdHRyaXN0YXRlIFxcXCJJRFQgQ0xPQ0tNQVRSSVggYXMgUFRQIGNsb2NrXFxcIlxcbi0tXFxuZHJpdmVycy9wdHAvS2NvbmZpZy0xNzQtXFxuZHJpdmVycy9wdHAvS2NvbmZpZzoxNzU6Y29uZmlnIFBUUF8xNTg4X0NMT0NLX0ZDM1dcXG5kcml2ZXJzL3B0cC9LY29uZmlnLTE3Ni1cXHR0cmlzdGF0ZSBcXFwiUkVORVNBUyBGZW10b0Nsb2NrMyBXaXJlbGVzcyBhcyBQVFAgY2xvY2tcXFwiXFxuLS1cXG5kcml2ZXJzL3B0cC9LY29uZmlnLTE4Ni1cXG5kcml2ZXJzL3B0cC9LY29uZmlnOjE4Nzpjb25maWcgUFRQXzE1ODhfQ0xPQ0tfTU9DS1xcbmRyaXZlcnMvcHRwL0tjb25maWctMTg4LVxcdHRyaXN0YXRlIFxcXCJNb2NrLXVwIFBUUCBjbG9ja1xcXCJcXG4tLVxcbmRyaXZlcnMvcHRwL0tjb25maWctMTk3LVxcbmRyaXZlcnMvcHRwL0tjb25maWc6MTk4OmNvbmZpZyBQVFBfMTU4OF9DTE9DS19WTVdcXG5kcml2ZXJzL3B0cC9LY29uZmlnLTE5OS1cXHR0cmlzdGF0ZSBcXFwiVk13YXJlIHZpcnR1YWwgUFRQIGNsb2NrXFxcIlxcbi0tXFxuZHJpdmVycy9wdHAvS2NvbmZpZy0yMDktXFxuZHJpdmVycy9wdHAvS2NvbmZpZzoyMTA6Y29uZmlnIFBUUF8xNTg4X0NMT0NLX09DUFxcbmRyaXZlcnMvcHRwL0tjb25maWctMjExLVxcdHRyaXN0YXRlIFxcXCJPcGVuQ29tcHV0ZSBUaW1lQ2FyZCBhcyBQVFAgY2xvY2tcXFwiXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTI1VDA4OjIwOjUwLjc3MjQwNTcwNloiLCJTZXEiOjIzLCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjozNzc4MjE3MzczLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJIZXJlJ3MgbXkgdGFrZSBvbiB0aGUgYGRyaXZlcnMvcHRwL0tjb25maWdgIGZpbGUsIHNwZWNpZmljYWxseSBhcm91bmQgbGluZSA4LlxuXG4qKkV4YW1pbmluZyB0aGUgUFRQIERyaXZlciBDb25maWd1cmF0aW9uIE9wdGlvbnMqKlxuXG5BbHJpZ2h0LCBsZXQncyBkaXZlIGludG8gdGhpcyBgZHJpdmVycy9wdHAvS2NvbmZpZ2AgZmlsZS4gSSBuZWVkIHRvIGdldCBhIGhhbmRsZSBvbiB0aGUgYXZhaWxhYmxlIGNvbmZpZ3VyYXRpb24gb3B0aW9ucyBmb3IgdGhlIFByZWNpc2lvbiBUaW1lIFByb3RvY29sIChQVFApIGRyaXZlcnMgaW4gdGhlIGtlcm5lbC4gSSdtIGZvY3VzaW5nIG9uIGFyb3VuZCBsaW5lIDggYmVjYXVzZSB0aGF0J3MgdXN1YWxseSB3aGVyZSB0aGUgbWFpbiBtb2R1bGUgZGVjbGFyYXRpb25zIG9yIGEgcmVsZXZhbnQgdG9wLWxldmVsIHByb21wdCB0ZW5kcyB0byByZXNpZGUsIG9yIGF0IGxlYXN0IHRoZSBzdGFydCBvZiBhIGxvZ2ljYWwgZ3JvdXBpbmcgb2Ygb3B0aW9ucy4gSSBleHBlY3QgdG8gc2VlIHRoZSBiYXNpYyBzdHJ1Y3R1cmUgb2YgaG93IHRoZXNlIGRyaXZlcnMgYXJlIG9yZ2FuaXplZCwgcGVyaGFwcyB3aXRoIGEgdG9wLWxldmVsIGBDT05GSUdfUFRQYCBvciBzaW1pbGFyIHN5bWJvbCBkZWZpbmluZyB0aGUgcGFyZW50IGZyYW1ld29yaywgYW5kIHRoZW4gdGhlIHZhcmlvdXMgc3BlY2lmaWMgZHJpdmVyIG9wdGlvbnMgYnJhbmNoaW5nIGZyb20gdGhlcmUuIEknbSBsb29raW5nIGZvciB0aGUgZGVwZW5kZW5jaWVzLCBkZWZhdWx0cywgYW5kIGRlc2NyaXB0aW9ucy4gVGhpcyBpbml0aWFsIHNjYW4gd2lsbCBoZWxwIG1lIHVuZGVyc3RhbmQgdGhlIG92ZXJhbGwgZGVzaWduIGFuZCBzZWUgd2hhdCdzIGF2YWlsYWJsZSBhbmQgaWYgaXQgbWF0Y2hlcyB3aXRoIHRoZSBjdXJyZW50IHByb2plY3QgcmVxdWlyZW1lbnRzLiBJJ20gcmVhZHkgdG8gZGlnIGluIGFuZCBkZWNpcGhlciB3aGF0IEkgZmluZCFcblxuXG4iLCJJbnB1dFRva2VucyI6Mzg2MzAsIk91dHB1dFRva2VucyI6MzMsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoxOCwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0yNVQwODoyMDo1NC41NTA2MjU5ODlaIiwiU2VxIjoyNCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoicmVhZC1maWxlIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6ODI2ODAsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJGaWxlXCI6IFwiZHJpdmVycy9wdHAvS2NvbmZpZ1wiLFxuICBcIkZpcnN0TGluZVwiOiAxLFxuICBcIkxpbmVDb3VudFwiOiAyMFxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiQ29udGVudHNcIjogXCIgICAxOlxcdCMgU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjAtb25seVxcbiAgIDI6XFx0I1xcbiAgIDM6XFx0IyBQVFAgY2xvY2sgc3VwcG9ydCBjb25maWd1cmF0aW9uXFxuICAgNDpcXHQjXFxuICAgNTpcXHRcXG4gICA2OlxcdG1lbnUgXFxcIlBUUCBjbG9jayBzdXBwb3J0XFxcIlxcbiAgIDc6XFx0XFxuICAgODpcXHRjb25maWcgUFRQXzE1ODhfQ0xPQ0tcXG4gICA5OlxcdFxcdHRyaXN0YXRlIFxcXCJQVFAgY2xvY2sgc3VwcG9ydFxcXCJcXG4gIDEwOlxcdFxcdGRlcGVuZHMgb24gTkVUIFxcdTAwMjZcXHUwMDI2IFBPU0lYX1RJTUVSU1xcbiAgMTE6XFx0XFx0ZGVmYXVsdCBFVEhFUk5FVFxcbiAgMTI6XFx0XFx0c2VsZWN0IFBQU1xcbiAgMTM6XFx0XFx0c2VsZWN0IE5FVF9QVFBfQ0xBU1NJRllcXG4gIDE0OlxcdFxcdGhlbHBcXG4gIDE1OlxcdFxcdCAgVGhlIElFRUUgMTU4OCBzdGFuZGFyZCBkZWZpbmVzIGEgbWV0aG9kIHRvIHByZWNpc2VseVxcbiAgMTY6XFx0XFx0ICBzeW5jaHJvbml6ZSBkaXN0cmlidXRlZCBjbG9ja3Mgb3ZlciBFdGhlcm5ldCBuZXR3b3Jrcy4gVGhlXFxuICAxNzpcXHRcXHQgIHN0YW5kYXJkIGRlZmluZXMgYSBQcmVjaXNpb24gVGltZSBQcm90b2NvbCAoUFRQKSwgd2hpY2ggY2FuXFxuICAxODpcXHRcXHQgIGJlIHVzZWQgdG8gYWNoaWV2ZSBzeW5jaHJvbml6YXRpb24gd2l0aGluIGEgZmV3IGRvemVuXFxuICAxOTpcXHRcXHQgIG1pY3Jvc2Vjb25kcy4gSW4gYWRkaXRpb24sIHdpdGggdGhlIGhlbHAgb2Ygc3BlY2lhbCBoYXJkd2FyZVxcbiAgMjA6XFx0XFx0ICB0aW1lIHN0YW1waW5nIHVuaXRzLCBpdCBjYW4gYmUgcG9zc2libGUgdG8gYWNoaWV2ZVxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0yNVQwODoyMDo1NC41NTA3MDk5OTlaIiwiU2VxIjoyNSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6MzA3ODA0Nzk2MywiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiT2theSwgaGVyZSdzIG15IGludGVycHJldGF0aW9uIG9mIHRob3NlIHRob3VnaHRzLCBzdW1tYXJpemVkIGZyb20gbXkgcGVyc3BlY3RpdmUgYXMgYSBoaWdobHkga25vd2xlZGdlYWJsZSBwcm9mZXNzaW9uYWwgaW4gdGhlIGZpZWxkOlxuXG4qKkRlcGVuZGVuY2llcyBhbmQgTG9jYXRpb25zOiBBIFF1aWNrIE1lbnRhbCBJbnZlbnRvcnkqKlxuXG5SaWdodCwgc28gSSdtIHRoaW5raW5nIGFib3V0IHRoZSBzeXN0ZW0gZGVwZW5kZW5jaWVzLiBUaGUgYFBUUF8xNTg4X0NMT0NLYCBmZWF0dXJlLCB0aGF0J3MgZGVmaW5pdGVseSBjb250aW5nZW50IG9uIHRoZSBuZXR3b3JraW5nIHN0YWNrLCBgTkVUYCwgYW5kIHRoZSBQT1NJWCB0aW1lcnMgc3VwcG9ydCwgYFBPU0lYX1RJTUVSU2AuIE1ha2VzIHNlbnNlLCBvZiBjb3Vyc2Ug4oCTIGl0IG5lZWRzIG5ldHdvcmsgdGltZSBzeW5jaHJvbml6YXRpb24gYW5kIGEgdGltaW5nIG1lY2hhbmlzbSB0byB3b3JrLiBJdCdzIGFsbW9zdCBheGlvbWF0aWMuIEFuZCBJIG5lZWQgdG8gcmVtZW1iZXIgd2hlcmUgdG8gbG9jYXRlIHRoZSBQSFkgZHJpdmVyIGxpYnJhcnkgY29uZmlndXJhdGlvbiwgaXQncyBgUEhZTElCYCBhbmQgdGhhdCBjb25maWd1cmF0aW9uIGlzIGluIGBkcml2ZXJzL25ldC9waHkvS2NvbmZpZ2AuIFRoZXNlIGFyZSB0aGluZ3MgSSBuZWVkIHRvIGFjY2VzcyBmb3IgZnVydGhlciBpbnZlc3RpZ2F0aW9uLiBJdCdzIGFsbCBhYm91dCByZW1lbWJlcmluZyB3aGVyZSB0aGluZ3MgYXJlLlxuXG5cbiIsIklucHV0VG9rZW5zIjozOTE2NywiT3V0cHV0VG9rZW5zIjoxNywiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjQyLCJUb29sQ2FsbHMiOlsicmVhZC1maWxlIl19LHsiU3RhcnRlZCI6IjIwMjYtMDctMjVUMDg6MjA6NTcuNjI4NzYwNTAyWiIsIlNlcSI6MjYsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoxODMxMTE4NzcxLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcImNvbmZpZyBQSFlMSUJcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiZHJpdmVycy9uZXQvcGh5L0tjb25maWc9Nj1jb25maWcgUEhZTElOS1xcbi0tXFxuZHJpdmVycy9uZXQvcGh5L0tjb25maWctMTQtXFxuZHJpdmVycy9uZXQvcGh5L0tjb25maWc6MTU6bWVudWNvbmZpZyBQSFlMSUJcXG5kcml2ZXJzL25ldC9waHkvS2NvbmZpZy0xNi1cXHR0cmlzdGF0ZSBcXFwiUEhZIERldmljZSBzdXBwb3J0IGFuZCBpbmZyYXN0cnVjdHVyZVxcXCJcXG4tLVxcbmRyaXZlcnMvbmV0L3BoeS9LY29uZmlnPTQ2PWNvbmZpZyBPUEVOX0FMTElBTkNFX0hFTFBFUlNcXG4tLVxcbmRyaXZlcnMvbmV0L3BoeS9LY29uZmlnLTQ4LVxcbmRyaXZlcnMvbmV0L3BoeS9LY29uZmlnOjQ5OmNvbmZpZyBQSFlMSUJfTEVEU1xcbmRyaXZlcnMvbmV0L3BoeS9LY29uZmlnLTUwLVxcdGRlZl9ib29sIE9GXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTI1VDA4OjIwOjU5LjQ1OTg4NzgyMloiLCJTZXEiOjI3LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjozMzk3NzEwODQ1LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJIZXJlJ3MgYSBzdW1tYXJ5IG9mIG15IHRob3VnaHQgcHJvY2VzcywgYXMgcmVxdWVzdGVkOlxuXG4qKk5hdmlnYXRpbmcgdGhlIFBIWSBDb25maWd1cmF0aW9uIFNwYWNlKipcblxuT2theSwgbGV0J3MgZGl2ZSBpbnRvIHRoZSBrZXJuZWwgc291cmNlLiBJIG5lZWQgdG8gdW5kZXJzdGFuZCBob3cgdGhlIFBIWSBjb25maWd1cmF0aW9uIGlzIGhhbmRsZWQgd2l0aGluIHRoZSBuZXR3b3JraW5nIHN1YnN5c3RlbSwgc28gSSdsbCBzdGFydCB3aXRoIHRoZSBsaWtlbHkgY2FuZGlkYXRlOiBgZHJpdmVycy9uZXQvcGh5L0tjb25maWdgLiBTcGVjaWZpY2FsbHksIEkgd2FudCB0byB6ZXJvIGluIG9uIHRoZSByZWxldmFudCBzZWN0aW9ucyBvZiB0aGUgS2NvbmZpZyBmaWxlLCBsaWtlbHkgYXJvdW5kIGxpbmUgMTUsIHRvIGdhaW4gaW5zaWdodCBpbnRvIHRoZSBkZWZhdWx0IG9wdGlvbnMsIGFueSBkZXBlbmRlbmNpZXMsIGFuZCBob3BlZnVsbHkgZ2V0IGEgZmVlbCBmb3IgdGhlIG92ZXJhbGwgc3RydWN0dXJlIG9mIHRoZSBQSFkgZHJpdmVyIGNvbmZpZ3VyYXRpb24uIFRoaXMgZmlsZSBpcyB0aGUgc3RhcnRpbmcgcG9pbnQgZm9yIHVuZGVyc3RhbmRpbmcgd2hhdCBQSFkgZHJpdmVycyBhcmUgYnVpbHQtaW4sIG1vZHVsYXJpemVkLCBhbmQgY29uZmlndXJhYmxlLCBhbmQgd2hhdCBmYWN0b3JzIGNvbnRyb2wgdGhvc2UgYnVpbGQgZGVjaXNpb25zLiBLbm93aW5nIHRoZSBgS2NvbmZpZ2Agc3RydWN0dXJlIGhlbHBzIG1lIHF1aWNrbHkgYXNzZXNzIHRoZSBzY29wZSBvZiB0aGUgUEhZIHN1cHBvcnQgYW5kIGlkZW50aWZ5IGtleSB2YXJpYWJsZXMgSSBuZWVkIHRvIHVuZGVyc3RhbmQuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjM5NTU2LCJPdXRwdXRUb2tlbnMiOjM1LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MjAsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDctMjVUMDg6MjE6MDIuODU3NjAxNjY4WiIsIlNlcSI6MjgsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6InJlYWQtZmlsZSIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjc5MTQwLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRmlsZVwiOiBcImRyaXZlcnMvbmV0L3BoeS9LY29uZmlnXCIsXG4gIFwiRmlyc3RMaW5lXCI6IDEwLFxuICBcIkxpbmVDb3VudFwiOiAyMFxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiQ29udGVudHNcIjogXCIgIDEwOlxcdFxcdGhlbHBcXG4gIDExOlxcdFxcdCAgUEhZbGluayBtb2RlbHMgdGhlIGxpbmsgYmV0d2VlbiB0aGUgUEhZIGFuZCBNQUMsIGFsbG93aW5nIGZpeGVkXFxuICAxMjpcXHRcXHQgIGNvbmZpZ3VyYXRpb24gbGlua3MsIFBIWXMsIGFuZCBTZXJkZXMgbGlua3Mgd2l0aCBNQUMgbGV2ZWxcXG4gIDEzOlxcdFxcdCAgYXV0b25lZ290aWF0aW9uIG1vZGVzLlxcbiAgMTQ6XFx0XFxuICAxNTpcXHRtZW51Y29uZmlnIFBIWUxJQlxcbiAgMTY6XFx0XFx0dHJpc3RhdGUgXFxcIlBIWSBEZXZpY2Ugc3VwcG9ydCBhbmQgaW5mcmFzdHJ1Y3R1cmVcXFwiXFxuICAxNzpcXHRcXHRoZWxwXFxuICAxODpcXHRcXHQgIEV0aGVybmV0IGNvbnRyb2xsZXJzIGFyZSB1c3VhbGx5IGF0dGFjaGVkIHRvIFBIWVxcbiAgMTk6XFx0XFx0ICBkZXZpY2VzLiAgVGhpcyBvcHRpb24gcHJvdmlkZXMgaW5mcmFzdHJ1Y3R1cmUgZm9yXFxuICAyMDpcXHRcXHQgIG1hbmFnaW5nIFBIWSBkZXZpY2VzLlxcbiAgMjE6XFx0XFxuICAyMjpcXHRpZiBQSFlMSUJcXG4gIDIzOlxcdFxcbiAgMjQ6XFx0Y29uZmlnIFNXUEhZXFxuICAyNTpcXHRcXHRib29sXFxuICAyNjpcXHRcXG4gIDI3OlxcdGNvbmZpZyBQSFlfUEFDS0FHRVxcbiAgMjg6XFx0XFx0IHRyaXN0YXRlXFxuICAyOTpcXHRcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMjVUMDg6MjE6MDIuODU3NjgyMTQ4WiIsIlNlcSI6MjksIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjE2MDQxNzI1OTM4LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkFuYWx5c2lzIG9mIERQODM2NDAgUEhZIERyaXZlciBQYXRjaCoqXG5cbk9rYXksIGxldCdzIGJyZWFrIHRoaXMgZG93bi4gRmlyc3QsIHJlZ2FyZGluZyB0aGUgY29uZmlndXJhdGlvbiwgYFBIWUxJQmAgaXRzZWxmIGhhcyBubyBzcGVjaWFsIGRlcGVuZGVuY2llcywgc28gd2UgY2FuIGNvbnNpZGVyIHRoYXQgYSBiYXNlIGxldmVsLiBUaGVuLCB3ZSBuZWVkIHRvIGVuYWJsZSBgRFA4MzY0MF9QSFlgLCBgTkVUV09SS19QSFlfVElNRVNUQU1QSU5HYCwgYFBUUF8xNTg4X0NMT0NLYCwgYW5kIGBQSFlMSUJgIHRvIHN1cHBvcnQgdGhlIGNoYW5nZXMuIFRoZSBkZXBlbmRlbmNpZXMgb2YgYERQODM2NDBfUEhZYCBvbiB0aGUgb3RoZXJzIG1lYW4gdGhhdCBpcyB0aGUgYmVzdCBvcmRlci4gTm8gb3RoZXIgZGVwZW5kZW5jaWVzIGFyZSByZXF1aXJlZC4gYE5FVFdPUktfUEhZX1RJTUVTVEFNUElOR2AgZGVwZW5kcyBvbiBub3RoaW5nLiBgUFRQXzE1ODhfQ0xPQ0tgIGRlcGVuZHMgb24gYE5FVGAgYW5kIGBQT1NJWF9USU1FUlNgLiBgUEhZTElCYCBkZXBlbmRzIG9uIG5vdGhpbmcuIFNvIHRoZSBjb3JlIGBFbmFibGVDb25maWdzYCBzaG91bGQgYmU6IGBEUDgzNjQwX1BIWWAsIGBORVRXT1JLX1BIWV9USU1FU1RBTVBJTkdgLCBgUFRQXzE1ODhfQ0xPQ0tgLCBgUEhZTElCYC5cblxuTm93LCBmb2N1c2luZyBvbiB0aGUgY29kZSBpdHNlbGYsIHRoaXMgaXMgYWxsIGFib3V0IGBkcDgzNjQwYC4gSSBuZWVkIHRvIGlkZW50aWZ5IHRoZSBmdW5jdGlvbnMgaW1wYWN0ZWQuIExvb2tpbmcgdGhyb3VnaCB0aGUgY29kZSwgSSBzZWU6IGBkcDgzNjQwX2Nsb2NrX2luaXRgLCBgZHA4MzY0MF9jbG9ja19nZXRfYnVzYCwgYGRwODM2NDBfY2xvY2tfcHV0YCwgYGRwODM2NDBfY2xvY2tfcmVsZWFzZWAsIGBkcDgzNjQwX3Byb2JlYCwgYGRwODM2NDBfcmVtb3ZlYC5cblxuYGRwODM2NDBfY2xvY2tfcmVsZWFzZWAgaXMgdGhlIGtleSBuZXcgZnVuY3Rpb24sIGV2ZW4gdGhvdWdoIGl0J3Mgc3RhdGljLCBiZWNhdXNlIGl0J3MgcGFzc2VkIGFzIGEgY2FsbGJhY2sgdG8gYGtyZWZfcHV0X211dGV4YCwgd2hpY2ggZW5zdXJlcyBpdCBoYXMgYSBkaXN0aW5jdCBzeW1ib2wgYWRkcmVzcy4gQWxzbywgYGRwODM2NDBfY2xvY2tfZ2V0X2J1c2AgaXMgY2FsbGVkIGZyb20gYGRwODM2NDBfcHJvYmVgLiBgZHA4MzY0MF9jbG9ja19wdXRgIGlzIGNhbGxlZCBmcm9tIGBkcDgzNjQwX3Byb2JlYCBhbmQgYGRwODM2NDBfcmVtb3ZlYC4gV2Ugc2hvdWxkIGFsc28gY29uc2lkZXIgYGRwODM2NDBfY2xvY2tfbG9ja2AgYW5kIGBkcDgzNjQwX2Nsb2NrX3VubG9ja2AgYmVjYXVzZSB0aGV5IGFyZSBtb2RpZmllZC5cblxuQ29uc2lkZXJpbmcgaW5saW5pbmcsIGBkcDgzNjQwX2Nsb2NrX3JlbGVhc2VgIGlzIGEgZnVuY3Rpb24gcG9pbnRlciBhbmQgY2Fubm90IGJlIGlubGluZWQuIGBkcDgzNjQwX3Byb2JlYCBhbmQgYGRwODM2NDBfcmVtb3ZlYCBhcmUgYWxzbyBmdW5jdGlvbiBwb2ludGVycywgc28gdGhleSBjYW4ndCBiZSBpbmxpbmVkIGVpdGhlci4gYGRwODM2NDBfY2xvY2tfZ2V0X2J1c2AgaXMgb25seSBjYWxsZWQgb25jZSB3aXRoaW4gYGRwODM2NDBfcHJvYmVgLCBzbyBpdCAqbWlnaHQqIGJlIGlubGluZWQuIGBkcDgzNjQwX2Nsb2NrX3B1dGAgaXMgc3RhdGljLCBzbyBpdCAqbWlnaHQqIGJlIGlubGluZWQuXG5cblRoZXJlZm9yZSwgdGhlIGtleSBmdW5jdGlvbnMgdG8gZm9jdXMgb24gYXJlOiBgZHA4MzY0MF9wcm9iZWAsIGBkcDgzNjQwX3JlbW92ZWAsIGFuZCBgZHA4MzY0MF9jbG9ja19yZWxlYXNlYC4gVGhlc2UgcmVwcmVzZW50IHRoZSBtYWluIGFyZWFzIG9mIGxvZ2ljYWwgY2hhbmdlIHdpdGhpbiB0aGlzIHBhdGNoLlxuXG5SZXZpZXdpbmcgdGhlIHBhdGNoIGNvbmZpcm1zIHRoYXQgYGRwODM2NDBfY2xvY2tfcmVsZWFzZWAgaXMgaW5kZWVkIGEgbmV3IGZ1bmN0aW9uLCBhbmQgaXQncyBlc3NlbnRpYWwgYmVjYXVzZSBpdCBpcyBwYXNzZWQgYXMgYSBmdW5jdGlvbiBwb2ludGVyIGFuZCBub3cgbWFuYWdlcyB0aGUgYGtyZWZgIGxpZmV0aW1lLiBgZHA4MzY0MF9wcm9iZWAgYW5kIGBkcDgzNjQwX3JlbW92ZWAgYXJlIHRoZSBtYWluIGVudHJ5IHBvaW50cywgc28gdGhvc2UgYXJlIGtleS5cblxuU28sIHRoZSBkZWZpbml0aXZlIGxpc3QgaXM6XG5cbiogICBgRm9jdXNTeW1ib2xzYDogYGRwODM2NDBfcHJvYmVgLCBgZHA4MzY0MF9yZW1vdmVgLCBgZHA4MzY0MF9jbG9ja19yZWxlYXNlYFxuKiAgIGBFbmFibGVDb25maWdzYDogYERQODM2NDBfUEhZYCwgYE5FVFdPUktfUEhZX1RJTUVTVEFNUElOR2AsIGBQVFBfMTU4OF9DTE9DS2AsIGBQSFlMSUJgXG5cbk15IHJlYXNvbmluZyBpcyB0aGlzOiBUaGUgcGF0Y2ggaW50cm9kdWNlcyBhIGBrcmVmYCB0byBtYW5hZ2UgdGhlIGxpZmV0aW1lIG9mIHRoZSBgc3RydWN0IGRwODM2NDBfY2xvY2tgIHdpdGhpbiB0aGUgRFA4MzY0MCBQSFkgZHJpdmVyLCByZXBsYWNpbmcgbWFudWFsIHRlYXJkb3duIGluIGBkcDgzNjQwX3JlbW92ZWAuIFRoaXMgaXMgaW50ZW5kZWQgdG8gZml4IHBvdGVudGlhbCB1c2UtYWZ0ZXItZnJlZSBpc3N1ZXMgYW5kIG1lbW9yeSBsZWFrcy4gVGhlIFBIWSBkcml2ZXIgY2FuIGJlIHByb2JlZCBhbmQgcmVtb3ZlZCBpbiBhIHZpcnR1YWxpemVkIGVudmlyb25tZW50IHdpdGggYSBlbXVsYXRlZCBNRElPIGJ1cyBsaWtlIHNtc2M5NXh4IG9yIGFzaXgsIHRoYXQgY2FuIHJldHVybiB0aGUgRFA4MzY0MCBQSFkgSUQgKDB4MjAwMDVjZTEpIHdoZW4gZG9pbmcgTURJTyByZWFkIG9wZXJhdGlvbnMuIFRoZXJlZm9yZSwgdGhpcyBjb2RlIGlzIHJlYWNoYWJsZSBhbmQgZGVzZXJ2ZXMgZnV6emluZy5cblxuTm93LCBsZXQncyBjYWxsIGBzZXQtcmVzdWx0c2AuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjQwMDA3LCJPdXRwdXRUb2tlbnMiOjIzOSwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjE0ODMsIlRvb2xDYWxscyI6WyJyZWFkLWZpbGUiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0yNVQwODoyMToxOC44OTk0MTA2NTZaIiwiU2VxIjozMCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoic2V0LXJlc3VsdHMiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo3ODgzNTcxMywiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogW1xuICAgIFwiRFA4MzY0MF9QSFlcIixcbiAgICBcIk5FVFdPUktfUEhZX1RJTUVTVEFNUElOR1wiLFxuICAgIFwiUFRQXzE1ODhfQ0xPQ0tcIixcbiAgICBcIlBIWUxJQlwiXG4gIF0sXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtcbiAgICBcImRwODM2NDBfcHJvYmVcIixcbiAgICBcImRwODM2NDBfcmVtb3ZlXCIsXG4gICAgXCJkcDgzNjQwX2Nsb2NrX3JlbGVhc2VcIlxuICBdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBpbnRyb2R1Y2VzIGEga3JlZiB0byBtYW5hZ2UgdGhlIGxpZmV0aW1lIG9mIGBzdHJ1Y3QgZHA4MzY0MF9jbG9ja2AgaW4gdGhlIERQODM2NDAgUEhZIGRyaXZlciwgcmVwbGFjaW5nIG1hbnVhbCB0ZWFyZG93biBsb2dpYyBpbiBgZHA4MzY0MF9yZW1vdmVgLiBUaGlzIGZpeGVzIHBvdGVudGlhbCB1c2UtYWZ0ZXItZnJlZSBvciBtZW1vcnkgbGVhayBpc3N1ZXMuIFRoZSBQSFkgZHJpdmVyIGNhbiBiZSBwcm9iZWQgYW5kIHJlbW92ZWQgaW4gYSB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudCBieSBlbXVsYXRpbmcgYSBVU0IgbmV0d29yayBhZGFwdGVyIChsaWtlIHNtc2M5NXh4IG9yIGFzaXgpIHRoYXQgcmVnaXN0ZXJzIGFuIE1ESU8gYnVzIGFuZCByZXR1cm5zIHRoZSBEUDgzNjQwIFBIWSBJRCAoMHgyMDAwNWNlMSkgZHVyaW5nIE1ESU8gcmVhZCBvcGVyYXRpb25zLiBUaGVyZWZvcmUsIHRoaXMgY29kZSBpcyByZWFjaGFibGUgYW5kIHdvcnRoIGZ1enppbmcuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IHRydWVcbn0iLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogW1xuICAgIFwiRFA4MzY0MF9QSFlcIixcbiAgICBcIk5FVFdPUktfUEhZX1RJTUVTVEFNUElOR1wiLFxuICAgIFwiUFRQXzE1ODhfQ0xPQ0tcIixcbiAgICBcIlBIWUxJQlwiXG4gIF0sXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtcbiAgICBcImRwODM2NDBfcHJvYmVcIixcbiAgICBcImRwODM2NDBfcmVtb3ZlXCIsXG4gICAgXCJkcDgzNjQwX2Nsb2NrX3JlbGVhc2VcIlxuICBdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBpbnRyb2R1Y2VzIGEga3JlZiB0byBtYW5hZ2UgdGhlIGxpZmV0aW1lIG9mIGBzdHJ1Y3QgZHA4MzY0MF9jbG9ja2AgaW4gdGhlIERQODM2NDAgUEhZIGRyaXZlciwgcmVwbGFjaW5nIG1hbnVhbCB0ZWFyZG93biBsb2dpYyBpbiBgZHA4MzY0MF9yZW1vdmVgLiBUaGlzIGZpeGVzIHBvdGVudGlhbCB1c2UtYWZ0ZXItZnJlZSBvciBtZW1vcnkgbGVhayBpc3N1ZXMuIFRoZSBQSFkgZHJpdmVyIGNhbiBiZSBwcm9iZWQgYW5kIHJlbW92ZWQgaW4gYSB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudCBieSBlbXVsYXRpbmcgYSBVU0IgbmV0d29yayBhZGFwdGVyIChsaWtlIHNtc2M5NXh4IG9yIGFzaXgpIHRoYXQgcmVnaXN0ZXJzIGFuIE1ESU8gYnVzIGFuZCByZXR1cm5zIHRoZSBEUDgzNjQwIFBIWSBJRCAoMHgyMDAwNWNlMSkgZHVyaW5nIE1ESU8gcmVhZCBvcGVyYXRpb25zLiBUaGVyZWZvcmUsIHRoaXMgY29kZSBpcyByZWFjaGFibGUgYW5kIHdvcnRoIGZ1enppbmcuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IHRydWVcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfV07CgkJCWlmICghcmF3RGF0YSB8fCByYXdEYXRhLmxlbmd0aCA9PT0gMCkgcmV0dXJuOwoKCQkJZHJhd1N1bW1hcnlUYWJsZXMocmF3RGF0YSk7CgkJCWRyYXdEdXJhdGlvbkNoYXJ0KHJhd0RhdGEpOwoJCQlkcmF3VG9rZW5Db25zdW1wdGlvbkNoYXJ0KHJhd0RhdGEpOwoJCX0KCgkJZnVuY3Rpb24gZHJhd1N1bW1hcnlUYWJsZXMocmF3RGF0YSkgewoJCQljb25zdCBzdGF0cyA9IHsKCQkJCWxsbTogeyBjb3VudDogMCwgdG9rZW5zOiAwLCBkdXJhdGlvbjogMCB9LAoJCQkJdG9vbDogeyBjb3VudDogMCwgZHVyYXRpb246IDAgfQoJCQl9OwoKCQkJcmF3RGF0YS5mb3JFYWNoKHMgPT4gewoJCQkJY29uc3QgZHVyID0gcy5EdXJhdGlvbiAvIDEwMDAwMDAwMDA7IAoJCQkJaWYgKHMuVHlwZSA9PT0gImxsbSIpIHsKCQkJCQlzdGF0cy5sbG0uY291bnQrKzsKCQkJCQlzdGF0cy5sbG0udG9rZW5zICs9IChzLklucHV0VG9rZW5zICsgcy5PdXRwdXRUb2tlbnMgKyBzLk91dHB1dFRob3VnaHRzVG9rZW5zKTsKCQkJCQlzdGF0cy5sbG0uZHVyYXRpb24gKz0gZHVyOwoJCQkJfSBlbHNlIGlmIChzLlR5cGUgPT09ICJ0b29sIikgewoJCQkJCXN0YXRzLnRvb2wuY291bnQrKzsKCQkJCQlzdGF0cy50b29sLmR1cmF0aW9uICs9IGR1cjsKCQkJCX0KCQkJfSk7CgoJCQljb25zdCBhdmdMbG1EdXIgPSBzdGF0cy5sbG0uY291bnQgPiAwID8gKHN0YXRzLmxsbS5kdXJhdGlvbiAvIHN0YXRzLmxsbS5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgkJCWNvbnN0IGF2Z0xsbVRva2VuID0gc3RhdHMubGxtLmNvdW50ID4gMCA/IChzdGF0cy5sbG0udG9rZW5zIC8gc3RhdHMubGxtLmNvdW50KS50b0ZpeGVkKDIpIDogMDsKCQkJY29uc3QgYXZnVG9vbER1ciA9IHN0YXRzLnRvb2wuY291bnQgPiAwID8gKHN0YXRzLnRvb2wuZHVyYXRpb24gLyBzdGF0cy50b29sLmNvdW50KS50b0ZpeGVkKDIpIDogMDsKCgkJCWNvbnN0IGxsbVN1bWFyeUNlbGxzID0gW3N0YXRzLmxsbS5jb3VudCwgc3RhdHMubGxtLnRva2VucywgYXZnTGxtVG9rZW4sIHN0YXRzLmxsbS5kdXJhdGlvbiwgYXZnTGxtRHVyXTsKCQkJY29uc3QgdG9vbFN1bW1hcnlDZWxscyA9IFtzdGF0cy50b29sLmNvdW50LCBzdGF0cy50b29sLmR1cmF0aW9uLCBhdmdUb29sRHVyXTsKCgkJCWNvbnN0IGxsbVN1bW1hcnlCb2R5ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2xsbV9zdW1tYXJ5X3N0YXRzX2JvZHknKTsKCQkJbGxtU3VtbWFyeUJvZHkuaW5uZXJIVE1MID0gIiI7CgkJCWNvbnN0IGxsbVRyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndHInKTsKCQkJbGxtU3VtYXJ5Q2VsbHMuZm9yRWFjaChjZWxsID0+IHsKCQkJCWNvbnN0IHRkID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndGQnKTsKCQkJCXRkLnRleHRDb250ZW50ID0gY2VsbDsKCQkJCWxsbVRyLmFwcGVuZENoaWxkKHRkKTsKCQkJfSk7CgkJCWxsbVN1bW1hcnlCb2R5LmFwcGVuZENoaWxkKGxsbVRyKTsKCgkJCWNvbnN0IHRvb2xTdW1tYXJ5Qm9keSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0b29sX3N1bW1hcnlfc3RhdHNfYm9keScpOwoJCQl0b29sU3VtbWFyeUJvZHkuaW5uZXJIVE1MID0gIiI7CgkJCWNvbnN0IHRvb2xUciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RyJyk7CgkJCXRvb2xTdW1tYXJ5Q2VsbHMuZm9yRWFjaChjZWxsID0+IHsKCQkJCWNvbnN0IHRkID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndGQnKTsKCQkJCXRkLnRleHRDb250ZW50ID0gY2VsbDsKCQkJCXRvb2xUci5hcHBlbmRDaGlsZCh0ZCk7CgkJCX0pOwoJCQl0b29sU3VtbWFyeUJvZHkuYXBwZW5kQ2hpbGQodG9vbFRyKTsKCQl9CgoJCWZ1bmN0aW9uIGRyYXdEdXJhdGlvbkNoYXJ0KHJhd0RhdGEpIHsKCQkJY29uc3QgZmlsdGVyZWRTdGVwcyA9IHJhd0RhdGEuZmlsdGVyKGQgPT4gWyJsbG0iLCAidG9vbCJdLmluY2x1ZGVzKGQuVHlwZSkpOwoJCQljb25zdCBkYXRhID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkRhdGFUYWJsZSgpOwoJCQlkYXRhLmFkZENvbHVtbignc3RyaW5nJywgJ1N0ZXAnKTsKCQkJZGF0YS5hZGRDb2x1bW4oJ251bWJlcicsICdEdXJhdGlvbicpOwoJCQlkYXRhLmFkZENvbHVtbih7dHlwZTogJ3N0cmluZycsIHJvbGU6ICd0b29sdGlwJ30pOyAKCgkJCWZpbHRlcmVkU3RlcHMuZm9yRWFjaChzID0+IHsKCQkJCQoJCQkJY29uc3QgZHVyID0gcy5EdXJhdGlvbiAvIDEwMDAwMDAwMDA7CgkJCQlsZXQgdG9vbHRpcCA9IHMuTmFtZTsKCQkJCWlmIChzLlR5cGUgPT09ICJsbG0iICYmIHMuVG9vbENhbGxzICYmIHMuVG9vbENhbGxzLmxlbmd0aCA+IDApIHsKCQkJCQl0b29sdGlwICs9IGBcblRvb2xzOiAke3MuVG9vbENhbGxzLmpvaW4oJywgJyl9YDsKCQkJCX0KCQkJCWRhdGEuYWRkUm93KFtgJHtzLlNlcX1gLCBkdXIsIHRvb2x0aXBdKTsKCQkJfSk7CgoJCQljb25zdCBvcHRpb25zID0gewoJCQkJdGl0bGU6ICdUaW1lIENvbnN1bXB0aW9uIG9mIExMTS9Ub29sIENhbGxzJywKCQkJCWhBeGlzOiB7CgkJCQkJdGl0bGU6ICdMTE0vVG9vbCBTdGVwcycsCgkJCQl9LAoJCQkJdkF4aXM6IHsgdGl0bGU6ICdTZWNvbmRzJyB9LAoJCQkJbGVnZW5kOiB7IHBvc2l0aW9uOiAnbm9uZScgfSwKCQkJCWJhcjogeyBncm91cFdpZHRoOiAnNzUlJyB9LAoJCQkJY2hhcnRBcmVhOiB7IHdpZHRoOiAnODUlJywgaGVpZ2h0OiAnNzAlJyB9LAoJCQkJaGVpZ2h0OiA0MDAKCQkJfTsKCgkJCWNvbnN0IGNoYXJ0ID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkNvbHVtbkNoYXJ0KGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdkdXJhdGlvbl9jaGFydF9kaXYnKSk7CgkJCWNoYXJ0LmRyYXcoZGF0YSwgb3B0aW9ucyk7CgkJfQoKCQlmdW5jdGlvbiBkcmF3VG9rZW5Db25zdW1wdGlvbkNoYXJ0KHJhd0RhdGEpIHsKCQkJY29uc3QgbGxtU3RlcHMgPSByYXdEYXRhLmZpbHRlcihkID0+IGQuVHlwZSA9PT0gImxsbSIpOwoJCQlpZiAobGxtU3RlcHMubGVuZ3RoID09PSAwKSByZXR1cm47CgoJCQljb25zdCBkYXRhID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkRhdGFUYWJsZSgpOwoJCQlkYXRhLmFkZENvbHVtbignc3RyaW5nJywgJ1N0ZXAnKTsJCQkKCQkJZGF0YS5hZGRDb2x1bW4oJ251bWJlcicsICdUb2tlbnMnKTsJCQkKCQkJZGF0YS5hZGRDb2x1bW4oe3R5cGU6ICdzdHJpbmcnLCByb2xlOiAnc3R5bGUnfSk7CQoJCQlkYXRhLmFkZENvbHVtbih7dHlwZTogJ3N0cmluZycsIHJvbGU6ICd0b29sdGlwJ30pOwkKCgkJCWNvbnN0IGFnZW50Q29sb3JzID0ge307CgkJCWNvbnN0IHBhbGV0dGUgPSBbJyM0Mjg1RjQnLCAnI0RCNDQzNycsICcjRjRCNDAwJywgJyMwRjlENTgnLCAnI0FCNDdCQycsICcjMDBBQ0MxJ107CgkJCWxldCBjb2xvcklkeCA9IDA7CgkJCWNvbnN0IGFnZW50TExNQ291bnRzID0ge307CgkJCWxsbVN0ZXBzLmZvckVhY2gocyA9PiB7CgkJCQlpZiAoIWFnZW50Q29sb3JzW3MuTmFtZV0pIHsKCQkJCQlhZ2VudENvbG9yc1tzLk5hbWVdID0gcGFsZXR0ZVtjb2xvcklkeCAlIHBhbGV0dGUubGVuZ3RoXTsKCQkJCQljb2xvcklkeCsrOwoJCQkJfQoKCQkJCWFnZW50TExNQ291bnRzW3MuTmFtZV0gPSAoYWdlbnRMTE1Db3VudHNbcy5OYW1lXSB8fCAwKSArIDE7CgkJCQljb25zdCBsYWJlbCA9IGAke3MuTmFtZX0tJHthZ2VudExMTUNvdW50c1tzLk5hbWVdfWA7CgkJCQljb25zdCB0b3RhbFRva2VucyA9IHMuSW5wdXRUb2tlbnMgKyBzLk91dHB1dFRva2VucyArIHMuT3V0cHV0VGhvdWdodHNUb2tlbnM7CgkJCQljb25zdCBzdHlsZSA9IGBjb2xvcjogJHthZ2VudENvbG9yc1tzLk5hbWVdfWA7CgkJCQlsZXQgdG9vbHRpcCA9IGBUb3RhbCBUb2tlbnM6ICR7dG90YWxUb2tlbnN9XG4oSW46ICR7cy5JbnB1dFRva2Vuc30sIE91dDogJHtzLk91dHB1dFRva2Vuc30sIFRob3VnaHRzOiAke3MuT3V0cHV0VGhvdWdodHNUb2tlbnN9KWA7CgkJCQlpZiAocy5Ub29sQ2FsbHMgJiYgcy5Ub29sQ2FsbHMubGVuZ3RoID4gMCkgewoJCQkJCXRvb2x0aXAgKz0gYFxuVG9vbHM6ICR7cy5Ub29sQ2FsbHMuam9pbignLCAnKX1gOwoJCQkJfQoKCQkJCWRhdGEuYWRkUm93KFtsYWJlbCwgdG90YWxUb2tlbnMsIHN0eWxlLCB0b29sdGlwXSk7CgkJCX0pOwoKCQkJY29uc3Qgb3B0aW9ucyA9IHsKCQkJCXRpdGxlOiAnVG9rZW4gQ29uc3VtcHRpb24gYnkgTExNIENhbGxzJywKCQkJCWhBeGlzOiB7CgkJCQkJdGl0bGU6ICdMTE0gQ2FsbCBTZXF1ZW5jZScsCgkJCQl9LAoJCQkJdkF4aXM6IHsgdGl0bGU6ICdDb25zdW1lZCBUb2tlbnMnIH0sCgkJCQlsZWdlbmQ6IHsgcG9zaXRpb246ICdub25lJyB9LAoJCQkJYmFyOiB7IGdyb3VwV2lkdGg6ICc3NSUnIH0sCgkJCQljaGFydEFyZWE6IHsgd2lkdGg6ICc4NSUnLCBoZWlnaHQ6ICc3MCUnIH0sCgkJCQloZWlnaHQ6IDQwMAoJCQl9OwoKCQkJY29uc3QgY2hhcnQgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uQ29sdW1uQ2hhcnQoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rva2VuX2NoYXJ0X2RpdicpKTsKCQkJY2hhcnQuZHJhdyhkYXRhLCBvcHRpb25zKTsKCQl9CgkJbGV0IGFsbEV4cGFuZGVkID0gZmFsc2U7CgkJZnVuY3Rpb24gdG9nZ2xlQWxsRGV0YWlscygpIHsKCQkJYWxsRXhwYW5kZWQgPSAhYWxsRXhwYW5kZWQ7CgkJCWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJ2RldGFpbHMnKS5mb3JFYWNoKGQgPT4gewoJCQkJaWYgKGFsbEV4cGFuZGVkKSBkLnNldEF0dHJpYnV0ZSgnb3BlbicsICcnKTsKCQkJCWVsc2UgZC5yZW1vdmVBdHRyaWJ1dGUoJ29wZW4nKTsKCQkJfSk7CgkJfQoJPC9zY3JpcHQ+CgoKPC9ib2R5Pgo8L2h0bWw+Cg==" },ValueFrom:&ValueFrom{Path:/output/result.json,JSONPath:,JQFilter:,Parameter:,Default:nil,Supplied:nil,Event:,Expression:,ConfigMapKeyRef:nil,},GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},Result:nil,ExitCode:*0,} --------- Name: series-workflow6pl42[1] Phase: Succeeded StartedAt: 2026-07-25 08:21:50 +0000 UTC FinishedAt: 2026-07-25 08:21:50 +0000 UTC Input: nil Output: nil --------- Name: series-workflow6pl42[1].abort-on-skip-outcome Phase: Skipped StartedAt: 2026-07-25 08:21:50 +0000 UTC FinishedAt: 2026-07-25 08:21:50 +0000 UTC Input: nil Output: nil --------- Name: series-workflow6pl42[2] Phase: Succeeded StartedAt: 2026-07-25 08:21:50 +0000 UTC FinishedAt: 2026-07-25 10:28:16 +0000 UTC Input: nil Output: nil --------- Name: series-workflow6pl42[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"817ff6efdb7f484ea547218e11e17d8e43daa3b4","config_name":"upstream-apparmor-kasan.config","enable_configs":["DP83640_PHY","NETWORK_PHY_TIMESTAMPING","PTP_1588_CLOCK","PHYLIB"],"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":["dp83640_probe","dp83640_remove","dp83640_clock_release"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"817ff6efdb7f484ea547218e11e17d8e43daa3b4","config_name":"upstream-apparmor-kasan.config","enable_configs":["DP83640_PHY","NETWORK_PHY_TIMESTAMPING","PTP_1588_CLOCK","PHYLIB"],"series_id":"9413cfa8-6dc4-4f36-98ed-d10b008c46df","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-25 08:21:50 +0000 UTC FinishedAt: 2026-07-25 10:28:16 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:element,Default:nil,Value:*{"base":{"arch":"amd64","commit_hash":"817ff6efdb7f484ea547218e11e17d8e43daa3b4","config_name":"upstream-apparmor-kasan.config","enable_configs":["DP83640_PHY","NETWORK_PHY_TIMESTAMPING","PTP_1588_CLOCK","PHYLIB"],"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":["dp83640_probe","dp83640_remove","dp83640_clock_release"],"skip_cover_check":false},"patched":{"arch":"amd64","commit_hash":"817ff6efdb7f484ea547218e11e17d8e43daa3b4","config_name":"upstream-apparmor-kasan.config","enable_configs":["DP83640_PHY","NETWORK_PHY_TIMESTAMPING","PTP_1588_CLOCK","PHYLIB"],"series_id":"9413cfa8-6dc4-4f36-98ed-d10b008c46df","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-workflow6pl42[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"817ff6efdb7f484ea547218e11e17d8e43daa3b4","config_name":"upstream-apparmor-kasan.config","enable_configs":["DP83640_PHY","NETWORK_PHY_TIMESTAMPING","PTP_1588_CLOCK","PHYLIB"],"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":["dp83640_probe","dp83640_remove","dp83640_clock_release"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"817ff6efdb7f484ea547218e11e17d8e43daa3b4","config_name":"upstream-apparmor-kasan.config","enable_configs":["DP83640_PHY","NETWORK_PHY_TIMESTAMPING","PTP_1588_CLOCK","PHYLIB"],"series_id":"9413cfa8-6dc4-4f36-98ed-d10b008c46df","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-25 08:21:50 +0000 UTC FinishedAt: 2026-07-25 08:22:11 +0000 UTC Input: nil Output: nil --------- Name: series-workflow6pl42[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"817ff6efdb7f484ea547218e11e17d8e43daa3b4","config_name":"upstream-apparmor-kasan.config","enable_configs":["DP83640_PHY","NETWORK_PHY_TIMESTAMPING","PTP_1588_CLOCK","PHYLIB"],"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":["dp83640_probe","dp83640_remove","dp83640_clock_release"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"817ff6efdb7f484ea547218e11e17d8e43daa3b4","config_name":"upstream-apparmor-kasan.config","enable_configs":["DP83640_PHY","NETWORK_PHY_TIMESTAMPING","PTP_1588_CLOCK","PHYLIB"],"series_id":"9413cfa8-6dc4-4f36-98ed-d10b008c46df","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-25 08:21:50 +0000 UTC FinishedAt: 2026-07-25 08:22:03 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:data,Default:nil,Value:*{"arch":"amd64","commit_hash":"817ff6efdb7f484ea547218e11e17d8e43daa3b4","config_name":"upstream-apparmor-kasan.config","enable_configs":["DP83640_PHY","NETWORK_PHY_TIMESTAMPING","PTP_1588_CLOCK","PHYLIB"],"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-workflow6pl42/series-workflow6pl42-convert-artifact-686361468/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflow6pl42[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"817ff6efdb7f484ea547218e11e17d8e43daa3b4","config_name":"upstream-apparmor-kasan.config","enable_configs":["DP83640_PHY","NETWORK_PHY_TIMESTAMPING","PTP_1588_CLOCK","PHYLIB"],"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":["dp83640_probe","dp83640_remove","dp83640_clock_release"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"817ff6efdb7f484ea547218e11e17d8e43daa3b4","config_name":"upstream-apparmor-kasan.config","enable_configs":["DP83640_PHY","NETWORK_PHY_TIMESTAMPING","PTP_1588_CLOCK","PHYLIB"],"series_id":"9413cfa8-6dc4-4f36-98ed-d10b008c46df","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-25 08:22:11 +0000 UTC FinishedAt: 2026-07-25 08:52:33 +0000 UTC Input: nil Output: nil --------- Name: series-workflow6pl42[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"817ff6efdb7f484ea547218e11e17d8e43daa3b4","config_name":"upstream-apparmor-kasan.config","enable_configs":["DP83640_PHY","NETWORK_PHY_TIMESTAMPING","PTP_1588_CLOCK","PHYLIB"],"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":["dp83640_probe","dp83640_remove","dp83640_clock_release"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"817ff6efdb7f484ea547218e11e17d8e43daa3b4","config_name":"upstream-apparmor-kasan.config","enable_configs":["DP83640_PHY","NETWORK_PHY_TIMESTAMPING","PTP_1588_CLOCK","PHYLIB"],"series_id":"9413cfa8-6dc4-4f36-98ed-d10b008c46df","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-25 08:22:11 +0000 UTC FinishedAt: 2026-07-25 08:52:33 +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:*f3759889-3712-440d-96b2-4a0403557727,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-workflow6pl42/series-workflow6pl42-convert-artifact-686361468/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": "2d4c7124-44d0-4553-add8-2c8a42d124be", "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-workflow6pl42/series-workflow6pl42-build-action-2878670506/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflow6pl42[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"817ff6efdb7f484ea547218e11e17d8e43daa3b4","config_name":"upstream-apparmor-kasan.config","enable_configs":["DP83640_PHY","NETWORK_PHY_TIMESTAMPING","PTP_1588_CLOCK","PHYLIB"],"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":["dp83640_probe","dp83640_remove","dp83640_clock_release"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"817ff6efdb7f484ea547218e11e17d8e43daa3b4","config_name":"upstream-apparmor-kasan.config","enable_configs":["DP83640_PHY","NETWORK_PHY_TIMESTAMPING","PTP_1588_CLOCK","PHYLIB"],"series_id":"9413cfa8-6dc4-4f36-98ed-d10b008c46df","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-25 08:22:11 +0000 UTC FinishedAt: 2026-07-25 08:52:19 +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:*f3759889-3712-440d-96b2-4a0403557727,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-workflow6pl42/series-workflow6pl42-convert-artifact-686361468/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": "2d4c7124-44d0-4553-add8-2c8a42d124be", "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-workflow6pl42/series-workflow6pl42-build-action-2878670506/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflow6pl42[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"817ff6efdb7f484ea547218e11e17d8e43daa3b4","config_name":"upstream-apparmor-kasan.config","enable_configs":["DP83640_PHY","NETWORK_PHY_TIMESTAMPING","PTP_1588_CLOCK","PHYLIB"],"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":["dp83640_probe","dp83640_remove","dp83640_clock_release"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"817ff6efdb7f484ea547218e11e17d8e43daa3b4","config_name":"upstream-apparmor-kasan.config","enable_configs":["DP83640_PHY","NETWORK_PHY_TIMESTAMPING","PTP_1588_CLOCK","PHYLIB"],"series_id":"9413cfa8-6dc4-4f36-98ed-d10b008c46df","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-25 08:52:33 +0000 UTC FinishedAt: 2026-07-25 08:52:33 +0000 UTC Input: nil Output: nil --------- Name: series-workflow6pl42[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"817ff6efdb7f484ea547218e11e17d8e43daa3b4","config_name":"upstream-apparmor-kasan.config","enable_configs":["DP83640_PHY","NETWORK_PHY_TIMESTAMPING","PTP_1588_CLOCK","PHYLIB"],"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":["dp83640_probe","dp83640_remove","dp83640_clock_release"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"817ff6efdb7f484ea547218e11e17d8e43daa3b4","config_name":"upstream-apparmor-kasan.config","enable_configs":["DP83640_PHY","NETWORK_PHY_TIMESTAMPING","PTP_1588_CLOCK","PHYLIB"],"series_id":"9413cfa8-6dc4-4f36-98ed-d10b008c46df","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-25 08:52:33 +0000 UTC FinishedAt: 2026-07-25 08:52:33 +0000 UTC Input: nil Output: nil --------- Name: series-workflow6pl42[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"817ff6efdb7f484ea547218e11e17d8e43daa3b4","config_name":"upstream-apparmor-kasan.config","enable_configs":["DP83640_PHY","NETWORK_PHY_TIMESTAMPING","PTP_1588_CLOCK","PHYLIB"],"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":["dp83640_probe","dp83640_remove","dp83640_clock_release"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"817ff6efdb7f484ea547218e11e17d8e43daa3b4","config_name":"upstream-apparmor-kasan.config","enable_configs":["DP83640_PHY","NETWORK_PHY_TIMESTAMPING","PTP_1588_CLOCK","PHYLIB"],"series_id":"9413cfa8-6dc4-4f36-98ed-d10b008c46df","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-25 08:52:33 +0000 UTC FinishedAt: 2026-07-25 08:52:44 +0000 UTC Input: nil Output: nil --------- Name: series-workflow6pl42[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"817ff6efdb7f484ea547218e11e17d8e43daa3b4","config_name":"upstream-apparmor-kasan.config","enable_configs":["DP83640_PHY","NETWORK_PHY_TIMESTAMPING","PTP_1588_CLOCK","PHYLIB"],"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":["dp83640_probe","dp83640_remove","dp83640_clock_release"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"817ff6efdb7f484ea547218e11e17d8e43daa3b4","config_name":"upstream-apparmor-kasan.config","enable_configs":["DP83640_PHY","NETWORK_PHY_TIMESTAMPING","PTP_1588_CLOCK","PHYLIB"],"series_id":"9413cfa8-6dc4-4f36-98ed-d10b008c46df","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-25 08:52:33 +0000 UTC FinishedAt: 2026-07-25 08:52:41 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:data,Default:nil,Value:*{"arch":"amd64","commit_hash":"817ff6efdb7f484ea547218e11e17d8e43daa3b4","config_name":"upstream-apparmor-kasan.config","enable_configs":["DP83640_PHY","NETWORK_PHY_TIMESTAMPING","PTP_1588_CLOCK","PHYLIB"],"series_id":"9413cfa8-6dc4-4f36-98ed-d10b008c46df","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-workflow6pl42/series-workflow6pl42-convert-artifact-369218491/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflow6pl42[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"817ff6efdb7f484ea547218e11e17d8e43daa3b4","config_name":"upstream-apparmor-kasan.config","enable_configs":["DP83640_PHY","NETWORK_PHY_TIMESTAMPING","PTP_1588_CLOCK","PHYLIB"],"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":["dp83640_probe","dp83640_remove","dp83640_clock_release"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"817ff6efdb7f484ea547218e11e17d8e43daa3b4","config_name":"upstream-apparmor-kasan.config","enable_configs":["DP83640_PHY","NETWORK_PHY_TIMESTAMPING","PTP_1588_CLOCK","PHYLIB"],"series_id":"9413cfa8-6dc4-4f36-98ed-d10b008c46df","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-25 08:52:44 +0000 UTC FinishedAt: 2026-07-25 08:55:13 +0000 UTC Input: nil Output: nil --------- Name: series-workflow6pl42[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"817ff6efdb7f484ea547218e11e17d8e43daa3b4","config_name":"upstream-apparmor-kasan.config","enable_configs":["DP83640_PHY","NETWORK_PHY_TIMESTAMPING","PTP_1588_CLOCK","PHYLIB"],"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":["dp83640_probe","dp83640_remove","dp83640_clock_release"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"817ff6efdb7f484ea547218e11e17d8e43daa3b4","config_name":"upstream-apparmor-kasan.config","enable_configs":["DP83640_PHY","NETWORK_PHY_TIMESTAMPING","PTP_1588_CLOCK","PHYLIB"],"series_id":"9413cfa8-6dc4-4f36-98ed-d10b008c46df","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-25 08:52:44 +0000 UTC FinishedAt: 2026-07-25 08:55:03 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:base-build-id,Default:nil,Value:*2d4c7124-44d0-4553-add8-2c8a42d124be,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-workflow6pl42/series-workflow6pl42-build-action-2878670506/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-workflow6pl42[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"817ff6efdb7f484ea547218e11e17d8e43daa3b4","config_name":"upstream-apparmor-kasan.config","enable_configs":["DP83640_PHY","NETWORK_PHY_TIMESTAMPING","PTP_1588_CLOCK","PHYLIB"],"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":["dp83640_probe","dp83640_remove","dp83640_clock_release"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"817ff6efdb7f484ea547218e11e17d8e43daa3b4","config_name":"upstream-apparmor-kasan.config","enable_configs":["DP83640_PHY","NETWORK_PHY_TIMESTAMPING","PTP_1588_CLOCK","PHYLIB"],"series_id":"9413cfa8-6dc4-4f36-98ed-d10b008c46df","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-25 08:55:13 +0000 UTC FinishedAt: 2026-07-25 08:55:13 +0000 UTC Input: nil Output: nil --------- Name: series-workflow6pl42[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"817ff6efdb7f484ea547218e11e17d8e43daa3b4","config_name":"upstream-apparmor-kasan.config","enable_configs":["DP83640_PHY","NETWORK_PHY_TIMESTAMPING","PTP_1588_CLOCK","PHYLIB"],"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":["dp83640_probe","dp83640_remove","dp83640_clock_release"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"817ff6efdb7f484ea547218e11e17d8e43daa3b4","config_name":"upstream-apparmor-kasan.config","enable_configs":["DP83640_PHY","NETWORK_PHY_TIMESTAMPING","PTP_1588_CLOCK","PHYLIB"],"series_id":"9413cfa8-6dc4-4f36-98ed-d10b008c46df","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-25 08:55:13 +0000 UTC FinishedAt: 2026-07-25 08:55:13 +0000 UTC Input: nil Output: nil --------- Name: series-workflow6pl42[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"817ff6efdb7f484ea547218e11e17d8e43daa3b4","config_name":"upstream-apparmor-kasan.config","enable_configs":["DP83640_PHY","NETWORK_PHY_TIMESTAMPING","PTP_1588_CLOCK","PHYLIB"],"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":["dp83640_probe","dp83640_remove","dp83640_clock_release"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"817ff6efdb7f484ea547218e11e17d8e43daa3b4","config_name":"upstream-apparmor-kasan.config","enable_configs":["DP83640_PHY","NETWORK_PHY_TIMESTAMPING","PTP_1588_CLOCK","PHYLIB"],"series_id":"9413cfa8-6dc4-4f36-98ed-d10b008c46df","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-25 08:55:13 +0000 UTC FinishedAt: 2026-07-25 09:35:39 +0000 UTC Input: nil Output: nil --------- Name: series-workflow6pl42[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"817ff6efdb7f484ea547218e11e17d8e43daa3b4","config_name":"upstream-apparmor-kasan.config","enable_configs":["DP83640_PHY","NETWORK_PHY_TIMESTAMPING","PTP_1588_CLOCK","PHYLIB"],"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":["dp83640_probe","dp83640_remove","dp83640_clock_release"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"817ff6efdb7f484ea547218e11e17d8e43daa3b4","config_name":"upstream-apparmor-kasan.config","enable_configs":["DP83640_PHY","NETWORK_PHY_TIMESTAMPING","PTP_1588_CLOCK","PHYLIB"],"series_id":"9413cfa8-6dc4-4f36-98ed-d10b008c46df","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-25 08:55:13 +0000 UTC FinishedAt: 2026-07-25 09:35:39 +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:*f3759889-3712-440d-96b2-4a0403557727,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-workflow6pl42/series-workflow6pl42-convert-artifact-369218491/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": "247fdd6f-f972-4d1d-b8f6-30ec753c5a8f", "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-workflow6pl42/series-workflow6pl42-build-action-3977924319/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflow6pl42[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"817ff6efdb7f484ea547218e11e17d8e43daa3b4","config_name":"upstream-apparmor-kasan.config","enable_configs":["DP83640_PHY","NETWORK_PHY_TIMESTAMPING","PTP_1588_CLOCK","PHYLIB"],"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":["dp83640_probe","dp83640_remove","dp83640_clock_release"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"817ff6efdb7f484ea547218e11e17d8e43daa3b4","config_name":"upstream-apparmor-kasan.config","enable_configs":["DP83640_PHY","NETWORK_PHY_TIMESTAMPING","PTP_1588_CLOCK","PHYLIB"],"series_id":"9413cfa8-6dc4-4f36-98ed-d10b008c46df","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-25 08:55:13 +0000 UTC FinishedAt: 2026-07-25 09:34:23 +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:*f3759889-3712-440d-96b2-4a0403557727,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-workflow6pl42/series-workflow6pl42-convert-artifact-369218491/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": "247fdd6f-f972-4d1d-b8f6-30ec753c5a8f", "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-workflow6pl42/series-workflow6pl42-build-action-3977924319/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflow6pl42[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"817ff6efdb7f484ea547218e11e17d8e43daa3b4","config_name":"upstream-apparmor-kasan.config","enable_configs":["DP83640_PHY","NETWORK_PHY_TIMESTAMPING","PTP_1588_CLOCK","PHYLIB"],"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":["dp83640_probe","dp83640_remove","dp83640_clock_release"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"817ff6efdb7f484ea547218e11e17d8e43daa3b4","config_name":"upstream-apparmor-kasan.config","enable_configs":["DP83640_PHY","NETWORK_PHY_TIMESTAMPING","PTP_1588_CLOCK","PHYLIB"],"series_id":"9413cfa8-6dc4-4f36-98ed-d10b008c46df","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-25 09:35:39 +0000 UTC FinishedAt: 2026-07-25 09:35:39 +0000 UTC Input: nil Output: nil --------- Name: series-workflow6pl42[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"817ff6efdb7f484ea547218e11e17d8e43daa3b4","config_name":"upstream-apparmor-kasan.config","enable_configs":["DP83640_PHY","NETWORK_PHY_TIMESTAMPING","PTP_1588_CLOCK","PHYLIB"],"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":["dp83640_probe","dp83640_remove","dp83640_clock_release"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"817ff6efdb7f484ea547218e11e17d8e43daa3b4","config_name":"upstream-apparmor-kasan.config","enable_configs":["DP83640_PHY","NETWORK_PHY_TIMESTAMPING","PTP_1588_CLOCK","PHYLIB"],"series_id":"9413cfa8-6dc4-4f36-98ed-d10b008c46df","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-25 09:35:39 +0000 UTC FinishedAt: 2026-07-25 09:35:39 +0000 UTC Input: nil Output: nil --------- Name: series-workflow6pl42[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"817ff6efdb7f484ea547218e11e17d8e43daa3b4","config_name":"upstream-apparmor-kasan.config","enable_configs":["DP83640_PHY","NETWORK_PHY_TIMESTAMPING","PTP_1588_CLOCK","PHYLIB"],"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":["dp83640_probe","dp83640_remove","dp83640_clock_release"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"817ff6efdb7f484ea547218e11e17d8e43daa3b4","config_name":"upstream-apparmor-kasan.config","enable_configs":["DP83640_PHY","NETWORK_PHY_TIMESTAMPING","PTP_1588_CLOCK","PHYLIB"],"series_id":"9413cfa8-6dc4-4f36-98ed-d10b008c46df","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-25 09:35:39 +0000 UTC FinishedAt: 2026-07-25 09:37:52 +0000 UTC Input: nil Output: nil --------- Name: series-workflow6pl42[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"817ff6efdb7f484ea547218e11e17d8e43daa3b4","config_name":"upstream-apparmor-kasan.config","enable_configs":["DP83640_PHY","NETWORK_PHY_TIMESTAMPING","PTP_1588_CLOCK","PHYLIB"],"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":["dp83640_probe","dp83640_remove","dp83640_clock_release"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"817ff6efdb7f484ea547218e11e17d8e43daa3b4","config_name":"upstream-apparmor-kasan.config","enable_configs":["DP83640_PHY","NETWORK_PHY_TIMESTAMPING","PTP_1588_CLOCK","PHYLIB"],"series_id":"9413cfa8-6dc4-4f36-98ed-d10b008c46df","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-25 09:35:40 +0000 UTC FinishedAt: 2026-07-25 09:37:38 +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:*247fdd6f-f972-4d1d-b8f6-30ec753c5a8f,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-workflow6pl42/series-workflow6pl42-build-action-3977924319/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-workflow6pl42[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"817ff6efdb7f484ea547218e11e17d8e43daa3b4","config_name":"upstream-apparmor-kasan.config","enable_configs":["DP83640_PHY","NETWORK_PHY_TIMESTAMPING","PTP_1588_CLOCK","PHYLIB"],"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":["dp83640_probe","dp83640_remove","dp83640_clock_release"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"817ff6efdb7f484ea547218e11e17d8e43daa3b4","config_name":"upstream-apparmor-kasan.config","enable_configs":["DP83640_PHY","NETWORK_PHY_TIMESTAMPING","PTP_1588_CLOCK","PHYLIB"],"series_id":"9413cfa8-6dc4-4f36-98ed-d10b008c46df","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-25 09:37:52 +0000 UTC FinishedAt: 2026-07-25 10:28:16 +0000 UTC Input: nil Output: nil --------- Name: series-workflow6pl42[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"817ff6efdb7f484ea547218e11e17d8e43daa3b4","config_name":"upstream-apparmor-kasan.config","enable_configs":["DP83640_PHY","NETWORK_PHY_TIMESTAMPING","PTP_1588_CLOCK","PHYLIB"],"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":["dp83640_probe","dp83640_remove","dp83640_clock_release"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"817ff6efdb7f484ea547218e11e17d8e43daa3b4","config_name":"upstream-apparmor-kasan.config","enable_configs":["DP83640_PHY","NETWORK_PHY_TIMESTAMPING","PTP_1588_CLOCK","PHYLIB"],"series_id":"9413cfa8-6dc4-4f36-98ed-d10b008c46df","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-25 09:37:52 +0000 UTC FinishedAt: 2026-07-25 10:28:16 +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":["dp83640_probe","dp83640_remove","dp83640_clock_release"],"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:*2d4c7124-44d0-4553-add8-2c8a42d124be,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:patched-build-id,Default:nil,Value:*247fdd6f-f972-4d1d-b8f6-30ec753c5a8f,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-workflow6pl42/series-workflow6pl42-build-action-2878670506/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-workflow6pl42/series-workflow6pl42-build-action-3977924319/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},} Output: nil --------- Name: series-workflow6pl42[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"817ff6efdb7f484ea547218e11e17d8e43daa3b4","config_name":"upstream-apparmor-kasan.config","enable_configs":["DP83640_PHY","NETWORK_PHY_TIMESTAMPING","PTP_1588_CLOCK","PHYLIB"],"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":["dp83640_probe","dp83640_remove","dp83640_clock_release"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"817ff6efdb7f484ea547218e11e17d8e43daa3b4","config_name":"upstream-apparmor-kasan.config","enable_configs":["DP83640_PHY","NETWORK_PHY_TIMESTAMPING","PTP_1588_CLOCK","PHYLIB"],"series_id":"9413cfa8-6dc4-4f36-98ed-d10b008c46df","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-25 09:37:52 +0000 UTC FinishedAt: 2026-07-25 09:38:07 +0000 UTC Input: nil Output: nil --------- Name: series-workflow6pl42[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"817ff6efdb7f484ea547218e11e17d8e43daa3b4","config_name":"upstream-apparmor-kasan.config","enable_configs":["DP83640_PHY","NETWORK_PHY_TIMESTAMPING","PTP_1588_CLOCK","PHYLIB"],"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":["dp83640_probe","dp83640_remove","dp83640_clock_release"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"817ff6efdb7f484ea547218e11e17d8e43daa3b4","config_name":"upstream-apparmor-kasan.config","enable_configs":["DP83640_PHY","NETWORK_PHY_TIMESTAMPING","PTP_1588_CLOCK","PHYLIB"],"series_id":"9413cfa8-6dc4-4f36-98ed-d10b008c46df","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-25 09:37:52 +0000 UTC FinishedAt: 2026-07-25 09:37:57 +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":["dp83640_probe","dp83640_remove","dp83640_clock_release"],"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-workflow6pl42/series-workflow6pl42-convert-artifact-612691636/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflow6pl42[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"817ff6efdb7f484ea547218e11e17d8e43daa3b4","config_name":"upstream-apparmor-kasan.config","enable_configs":["DP83640_PHY","NETWORK_PHY_TIMESTAMPING","PTP_1588_CLOCK","PHYLIB"],"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":["dp83640_probe","dp83640_remove","dp83640_clock_release"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"817ff6efdb7f484ea547218e11e17d8e43daa3b4","config_name":"upstream-apparmor-kasan.config","enable_configs":["DP83640_PHY","NETWORK_PHY_TIMESTAMPING","PTP_1588_CLOCK","PHYLIB"],"series_id":"9413cfa8-6dc4-4f36-98ed-d10b008c46df","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-25 09:37:52 +0000 UTC FinishedAt: 2026-07-25 09:37:52 +0000 UTC Input: nil Output: nil --------- Name: series-workflow6pl42[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"817ff6efdb7f484ea547218e11e17d8e43daa3b4","config_name":"upstream-apparmor-kasan.config","enable_configs":["DP83640_PHY","NETWORK_PHY_TIMESTAMPING","PTP_1588_CLOCK","PHYLIB"],"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":["dp83640_probe","dp83640_remove","dp83640_clock_release"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"817ff6efdb7f484ea547218e11e17d8e43daa3b4","config_name":"upstream-apparmor-kasan.config","enable_configs":["DP83640_PHY","NETWORK_PHY_TIMESTAMPING","PTP_1588_CLOCK","PHYLIB"],"series_id":"9413cfa8-6dc4-4f36-98ed-d10b008c46df","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-25 09:37:52 +0000 UTC FinishedAt: 2026-07-25 09:37:52 +0000 UTC Input: nil Output: nil --------- Name: series-workflow6pl42[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"817ff6efdb7f484ea547218e11e17d8e43daa3b4","config_name":"upstream-apparmor-kasan.config","enable_configs":["DP83640_PHY","NETWORK_PHY_TIMESTAMPING","PTP_1588_CLOCK","PHYLIB"],"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":["dp83640_probe","dp83640_remove","dp83640_clock_release"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"817ff6efdb7f484ea547218e11e17d8e43daa3b4","config_name":"upstream-apparmor-kasan.config","enable_configs":["DP83640_PHY","NETWORK_PHY_TIMESTAMPING","PTP_1588_CLOCK","PHYLIB"],"series_id":"9413cfa8-6dc4-4f36-98ed-d10b008c46df","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-25 09:37:52 +0000 UTC FinishedAt: 2026-07-25 09:37:52 +0000 UTC Input: nil Output: nil --------- Name: series-workflow6pl42[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"817ff6efdb7f484ea547218e11e17d8e43daa3b4","config_name":"upstream-apparmor-kasan.config","enable_configs":["DP83640_PHY","NETWORK_PHY_TIMESTAMPING","PTP_1588_CLOCK","PHYLIB"],"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":["dp83640_probe","dp83640_remove","dp83640_clock_release"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"817ff6efdb7f484ea547218e11e17d8e43daa3b4","config_name":"upstream-apparmor-kasan.config","enable_configs":["DP83640_PHY","NETWORK_PHY_TIMESTAMPING","PTP_1588_CLOCK","PHYLIB"],"series_id":"9413cfa8-6dc4-4f36-98ed-d10b008c46df","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-25 09:38:07 +0000 UTC FinishedAt: 2026-07-25 10:28:16 +0000 UTC Input: nil Output: nil --------- Name: series-workflow6pl42[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"817ff6efdb7f484ea547218e11e17d8e43daa3b4","config_name":"upstream-apparmor-kasan.config","enable_configs":["DP83640_PHY","NETWORK_PHY_TIMESTAMPING","PTP_1588_CLOCK","PHYLIB"],"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":["dp83640_probe","dp83640_remove","dp83640_clock_release"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"817ff6efdb7f484ea547218e11e17d8e43daa3b4","config_name":"upstream-apparmor-kasan.config","enable_configs":["DP83640_PHY","NETWORK_PHY_TIMESTAMPING","PTP_1588_CLOCK","PHYLIB"],"series_id":"9413cfa8-6dc4-4f36-98ed-d10b008c46df","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-25 09:38:07 +0000 UTC FinishedAt: 2026-07-25 10:28:04 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:base-build-id,Default:nil,Value:*2d4c7124-44d0-4553-add8-2c8a42d124be,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:patched-build-id,Default:nil,Value:*247fdd6f-f972-4d1d-b8f6-30ec753c5a8f,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-workflow6pl42/series-workflow6pl42-build-action-2878670506/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-workflow6pl42/series-workflow6pl42-build-action-3977924319/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-workflow6pl42/series-workflow6pl42-convert-artifact-612691636/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,}