Name: series-workflowpblwz Phase: Failed StartedAt: 2026-08-11 11:45:22 +0000 UTC FinishedAt: 2026-08-11 12:00:54 +0000 UTC Input: nil Output: nil --------- Name: series-workflowpblwz[0] Phase: Succeeded StartedAt: 2026-08-11 11:45:22 +0000 UTC FinishedAt: 2026-08-11 12:00:43 +0000 UTC Input: nil Output: nil --------- Name: series-workflowpblwz[0].run-triage Phase: Succeeded StartedAt: 2026-08-11 11:45:22 +0000 UTC FinishedAt: 2026-08-11 12:00:43 +0000 UTC Input: nil Output: &Outputs{Parameters:[]Parameter{Parameter{Name:result,Default:nil,Value:*{ "skip_reason": "AI determined the patch has no functional impact", "targets": null, "trajectory": "CjwhZG9jdHlwZSBodG1sPgo8aHRtbD4KPGhlYWQ+Cgk8dGl0bGU+QUkgVHJhamVjdG9yeTwvdGl0bGU+Cgk8c3R5bGU+CgkJdGFibGUgewoJCQlib3JkZXI6IDFweCBzb2xpZCAjY2NjOwoJCQltYXJnaW46IDIwcHggNXB4OwoJCQlib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlOwoJCQl3aGl0ZS1zcGFjZTogbm93cmFwOwoJCQl0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsKCQkJb3ZlcmZsb3c6IGhpZGRlbjsKCQl9CgoJCXRhYmxlIGNhcHRpb24gewoJCQlmb250LXdlaWdodDogYm9sZDsKCQl9CgoJCXRhYmxlIHRkLCB0YWJsZSB0aCB7CgkJCXZlcnRpY2FsLWFsaWduOiB0b3A7CgkJCXBhZGRpbmc6IDJweCA4cHg7CgkJCXRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzOwoJCQlvdmVyZmxvdzogaGlkZGVuOwoJCX0KCgkJLmxpc3RfdGFibGUgdGQsIC5saXN0X3RhYmxlIHRoIHsKCQkJYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCAjY2NjOwoJCX0KCgkJLmxpc3RfdGFibGUgdGggewoJCQliYWNrZ3JvdW5kOiAjRjRGNEY0OwoJCX0KCgkJLmxpc3RfdGFibGUgdHI6bnRoLWNoaWxkKDJuKSB7CgkJCWJhY2tncm91bmQ6ICNGNEY0RjQ7CgkJfQoKCQkubGlzdF90YWJsZSB0cjpob3ZlciB7CgkJCWJhY2tncm91bmQ6ICNmZmZmOTk7CgkJfQoKCQkjYWlfZGV0YWlsc19kaXYgcHJlIHsKCQkJbWFyZ2luOiAxcHg7CgkJCW1heC13aWR0aDogMTIwY2g7CgkJCXdoaXRlLXNwYWNlOiBwcmUtd3JhcDsKCQkJb3ZlcmZsb3ctd3JhcDogYnJlYWstd29yZDsKCQl9Cgk8L3N0eWxlPgo8L2hlYWQ+Cjxib2R5PgoJPGgxPkFJIFRyYWplY3Rvcnk8L2gxPgoJPGJyPgoKCQoJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQk8Y2FwdGlvbj5UcmFqZWN0b3J5OiAoPGEgaHJlZj0iIyIgb25jbGljaz0idG9nZ2xlQWxsRGV0YWlscygpOyByZXR1cm4gZmFsc2U7Ij5FeHBhbmQvQ29sbGFwc2UgQWxsPC9hPik8L2NhcHRpb24+CgkJPHRoZWFkPjx0cj4KCQkJPHRoPlNlcTwvdGg+CgkJCTx0aD5UaW1lc3RhbXA8L3RoPgoJCQk8dGg+VHlwZTwvdGg+CgkJCTx0aD5OYW1lPC90aD4KCQkJPHRoPkR1cmF0aW9uPC90aD4KCQk8L3RyPjwvdGhlYWQ+CgkJPHRib2R5PgoJCQoJCTx0cj4KCQkJPHRkPjAvMDwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzExIDEyOjAwPC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBudWxsLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFtdLAogICYjMzQ7S01TQU5SZWFzb25pbmcmIzM0OzogJiMzNDsmIzM0OywKICAmIzM0O05lZWRzS01TQU4mIzM0OzogZmFsc2UsCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggb25seSBhZGRzIHJlZ3VsYXRvciBzdXBwb3J0IHRvIHRoZSBwcm9iZSBmdW5jdGlvbiBvZiB0aGUgUmVhbHRlayBEU0Egc3dpdGNoIGRyaXZlci4gVGhpcyBpcyBhIHZlbmRvci1zcGVjaWZpYyBoYXJkd2FyZSBkcml2ZXIgdGhhdCByZXF1aXJlcyBwaHlzaWNhbCBoYXJkd2FyZSAob3Igc3BlY2lmaWMgTURJTy9TTUkgZW11bGF0aW9uKSBub3QgcHJlc2VudCBpbiBzdGFuZGFyZCB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMuIEZ1cnRoZXJtb3JlLCB0aGUgY2hhbmdlcyBhcmUgbGltaXRlZCB0byBoYXJkd2FyZSBpbml0aWFsaXphdGlvbiAoZW5hYmxpbmcgcmVndWxhdG9ycyBhbmQgYWRkaW5nIGEgZGVsYXkpLCB3aGljaCBkb2VzIG5vdCBpbnRyb2R1Y2UgY29tcGxleCBsb2dpYyB3b3J0aCBmdXp6aW5nLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IGZhbHNlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xLzE8L3RkPgoJCQk8dGQ+MjAyNi8wOC8xMSAxMjowMDwvdGQ+CgkJCTx0ZD5hY3Rpb248L3RkPgoJCQk8dGQ+cmVhZC1wYXRjaC1kaWZmPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7UGF0Y2hEaWZmJiMzNDs6ICYjMzQ7Y29tbWl0IDg5Mzk5MmNkZjIyMDUwMTBkYzQ3YmJjZDZmN2EwNmRhNzA1NDA1YTJcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cdTAwM2VcbkRhdGU6ICAgVHVlIEF1ZyAxMSAxMjowMDoxMyAyMDI2ICYjNDM7MDAwMFxuXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XG5cbmRpZmYgLS1naXQgYS9Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L2RzYS9yZWFsdGVrLnlhbWwgYi9Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L2RzYS9yZWFsdGVrLnlhbWxcbmluZGV4IDQ3M2ZhY2Q4N2E2MjIuLjk4ZWE2MDcyYmQ5NmUgMTAwNjQ0XG4tLS0gYS9Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L2RzYS9yZWFsdGVrLnlhbWxcbiYjNDM7JiM0MzsmIzQzOyBiL0RvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvZHNhL3JlYWx0ZWsueWFtbFxuQEAgLTgsNiAmIzQzOzgsMzAgQEAgdGl0bGU6IFJlYWx0ZWsgc3dpdGNoZXMgZm9yIHVubWFuYWdlZCBzd2l0Y2hlc1xuIFxuIGFsbE9mOlxuICAgLSAkcmVmOiBkc2EueWFtbCMvJGRlZnMvZXRoZXJuZXQtcG9ydHNcbiYjNDM7ICAtIGlmOlxuJiM0MzsgICAgICBwcm9wZXJ0aWVzOlxuJiM0MzsgICAgICAgIGNvbXBhdGlibGU6XG4mIzQzOyAgICAgICAgICBjb250YWluczpcbiYjNDM7ICAgICAgICAgICAgY29uc3Q6IHJlYWx0ZWsscnRsODM2NW1iXG4mIzQzOyAgICB0aGVuOlxuJiM0MzsgICAgICBwcm9wZXJ0aWVzOlxuJiM0MzsgICAgICAgIGF2ZGRoLXN1cHBseTpcbiYjNDM7ICAgICAgICAgIGRlc2NyaXB0aW9uOiBBVkRESCBoaWdoLXZvbHRhZ2UgYW5hbG9nIHN1cHBseS5cbiYjNDM7XG4mIzQzOyAgICAgICAgYXZkZGwtc3VwcGx5OlxuJiM0MzsgICAgICAgICAgZGVzY3JpcHRpb246IEFWRERMIGxvdy12b2x0YWdlIGFuYWxvZyBzdXBwbHkuXG4mIzQzO1xuJiM0MzsgICAgICAgIGR2ZGRpby1zdXBwbHk6XG4mIzQzOyAgICAgICAgICBkZXNjcmlwdGlvbjogRFZERElPIGRpZ2l0YWwgSS9PIHN1cHBseS5cbiYjNDM7XG4mIzQzOyAgICAgICAgZHZkZGlvMS1zdXBwbHk6XG4mIzQzOyAgICAgICAgICBkZXNjcmlwdGlvbjogRFZERElPXzEgc2Vjb25kYXJ5IGRpZ2l0YWwgSS9PIHN1cHBseSBmb3IgdGhlIFJHTUlJIGJhbmsuXG4mIzQzO1xuJiM0MzsgICAgICAgIGR2ZGRsLXN1cHBseTpcbiYjNDM7ICAgICAgICAgIGRlc2NyaXB0aW9uOiBEVkRETCBkaWdpdGFsIGNvcmUgc3VwcGx5LlxuJiM0MztcbiYjNDM7ICAgICAgICBwbGx2ZGRsLXN1cHBseTpcbiYjNDM7ICAgICAgICAgIGRlc2NyaXB0aW9uOiBQTExWRERMIFBMTCBhbmFsb2cgc3VwcGx5LlxuIFxuIG1haW50YWluZXJzOlxuICAgLSBMaW51cyBXYWxsZWlqIFx1MDAzY2xpbnVzd0BrZXJuZWwub3JnXHUwMDNlXG5AQCAtMjQzLDYgJiM0MzsyNjcsNyBAQCBleGFtcGxlczpcbiAgICAgcGxhdGZvcm0ge1xuICAgICAgICAgICAgIGV0aGVybmV0LXN3aXRjaCB7XG4gICAgICAgICAgICAgICAgICAgICBjb21wYXRpYmxlID0gXCYjMzQ7cmVhbHRlayxydGw4MzY1bWJcJiMzNDs7XG4mIzQzOyAgICAgICAgICAgICAgICAgICAgYXZkZGgtc3VwcGx5ID0gXHUwMDNjXHUwMDI2YXZkZGhcdTAwM2U7XG4gICAgICAgICAgICAgICAgICAgICBtZGMtZ3Bpb3MgPSBcdTAwM2NcdTAwMjZncGlvMSAxNiBHUElPX0FDVElWRV9ISUdIXHUwMDNlO1xuICAgICAgICAgICAgICAgICAgICAgbWRpby1ncGlvcyA9IFx1MDAzY1x1MDAyNmdwaW8xIDE3IEdQSU9fQUNUSVZFX0hJR0hcdTAwM2U7XG4gICAgICAgICAgICAgICAgICAgICByZXNldC1ncGlvcyA9IFx1MDAzY1x1MDAyNmdwaW81IDAgR1BJT19BQ1RJVkVfTE9XXHUwMDNlO1xuZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3JlYWx0ZWsuaCBiL2RyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3JlYWx0ZWsuaFxuaW5kZXggNmUwMTQ4Y2VlOGQ4Ny4uNzVhMTI3NTQ1ZTVkZCAxMDA2NDRcbi0tLSBhL2RyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3JlYWx0ZWsuaFxuJiM0MzsmIzQzOyYjNDM7IGIvZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcmVhbHRlay5oXG5AQCAtMTY2LDYgJiM0MzsxNjYsOSBAQCBzdHJ1Y3QgcmVhbHRla192YXJpYW50IHtcbiBcdHU4IGNtZF9yZWFkO1xuIFx0dTggY21kX3dyaXRlO1xuIFx0c2l6ZV90IGNoaXBfZGF0YV9zejtcbiYjNDM7XHQvKiBSZWd1bGF0b3Igc3VwcGxpZXMgdG8gZW5hYmxlIGF0IHByb2JlLCBvciBOVUxMICovXG4mIzQzO1x0Y29uc3QgY2hhciAqY29uc3QgKnN1cHBsaWVzO1xuJiM0MztcdGludCBudW1fc3VwcGxpZXM7XG4gfTtcbiBcbiAvKiBSVEw4MzY2IGxpYnJhcnkgaGVscGVycyAqL1xuZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzNjVtYl9tYWluLmMgYi9kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY1bWJfbWFpbi5jXG5pbmRleCA3MjgyMzFkOGY5NGNhLi40YzMwNTc1NjExNmNjIDEwMDY0NFxuLS0tIGEvZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcnRsODM2NW1iX21haW4uY1xuJiM0MzsmIzQzOyYjNDM7IGIvZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcnRsODM2NW1iX21haW4uY1xuQEAgLTMzMzQsNiAmIzQzOzMzMzQsMTAgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCByZWFsdGVrX29wcyBydGw4MzY1bWJfb3BzID0ge1xuIFx0LnBoeV93cml0ZSA9IHJ0bDgzNjVtYl9waHlfd3JpdGUsXG4gfTtcbiBcbiYjNDM7c3RhdGljIGNvbnN0IGNoYXIgKmNvbnN0IHJ0bDgzNjVtYl9zdXBwbGllc1tdID0ge1xuJiM0MztcdFwmIzM0O2F2ZGRoXCYjMzQ7LCBcJiMzNDthdmRkbFwmIzM0OywgXCYjMzQ7ZHZkZGlvXCYjMzQ7LCBcJiMzNDtkdmRkaW8xXCYjMzQ7LCBcJiMzNDtkdmRkbFwmIzM0OywgXCYjMzQ7cGxsdmRkbFwmIzM0OyxcbiYjNDM7fTtcbiYjNDM7XG4gY29uc3Qgc3RydWN0IHJlYWx0ZWtfdmFyaWFudCBydGw4MzY1bWJfdmFyaWFudCA9IHtcbiBcdC5kc19vcHMgPSBcdTAwMjZydGw4MzY1bWJfc3dpdGNoX29wcyxcbiBcdC5vcHMgPSBcdTAwMjZydGw4MzY1bWJfb3BzLFxuQEAgLTMzNDIsNiAmIzQzOzMzNDYsOCBAQCBjb25zdCBzdHJ1Y3QgcmVhbHRla192YXJpYW50IHJ0bDgzNjVtYl92YXJpYW50ID0ge1xuIFx0LmNtZF9yZWFkID0gMHhiOSxcbiBcdC5jbWRfd3JpdGUgPSAweGI4LFxuIFx0LmNoaXBfZGF0YV9zeiA9IHNpemVvZihzdHJ1Y3QgcnRsODM2NW1iKSxcbiYjNDM7XHQuc3VwcGxpZXMgPSBydGw4MzY1bWJfc3VwcGxpZXMsXG4mIzQzO1x0Lm51bV9zdXBwbGllcyA9IEFSUkFZX1NJWkUocnRsODM2NW1iX3N1cHBsaWVzKSxcbiB9O1xuIFxuIHN0YXRpYyBjb25zdCBzdHJ1Y3Qgb2ZfZGV2aWNlX2lkIHJ0bDgzNjVtYl9vZl9tYXRjaFtdID0ge1xuZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzeHguYyBiL2RyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzeHguY1xuaW5kZXggMzVkZjgwOWE1OTUxOC4uMGFlOWUzMTFlZjg3NCAxMDA2NDRcbi0tLSBhL2RyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzeHguY1xuJiM0MzsmIzQzOyYjNDM7IGIvZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcnRsODN4eC5jXG5AQCAtMiw2ICYjNDM7Miw3IEBAXG4gXG4gI2luY2x1ZGUgXHUwMDNjbGludXgvbW9kdWxlLmhcdTAwM2VcbiAjaW5jbHVkZSBcdTAwM2NsaW51eC9yZWdtYXAuaFx1MDAzZVxuJiM0MzsjaW5jbHVkZSBcdTAwM2NsaW51eC9yZWd1bGF0b3IvY29uc3VtZXIuaFx1MDAzZVxuICNpbmNsdWRlIFx1MDAzY2xpbnV4L29mX21kaW8uaFx1MDAzZVxuICNpbmNsdWRlIFx1MDAzY2xpbnV4L2lmX2JyaWRnZS5oXHUwMDNlXG4gI2luY2x1ZGUgXHUwMDNjbGludXgvZXRoZXJkZXZpY2UuaFx1MDAzZVxuQEAgLTE5NSw3ICYjNDM7MTk2LDE2IEBAIHJ0bDgzeHhfcHJvYmUoc3RydWN0IGRldmljZSAqZGV2LFxuIFx0cHJpdi1cdTAwM2VsZWRzX2Rpc2FibGVkID0gb2ZfcHJvcGVydHlfcmVhZF9ib29sKGRldi1cdTAwM2VvZl9ub2RlLFxuIFx0XHRcdFx0XHRcdCAgICBcJiMzNDtyZWFsdGVrLGRpc2FibGUtbGVkc1wmIzM0Oyk7XG4gXG4tXHQvKiBUT0RPOiBpZiBwb3dlciBpcyBzb2Z0d2FyZSBjb250cm9sbGVkLCBzZXQgdXAgYW55IHJlZ3VsYXRvcnMgaGVyZSAqL1xuJiM0MztcdC8qIEVuYWJsZSB0aGUgc3VwcGxpZXMgYmVmb3JlIHRoZSByZXNldCBsaW5lIGlzIHJlcXVlc3RlZCBhbmQgZHJpdmVuLFxuJiM0MztcdCAqIHNvIHRoZSBjaGlwIGlzIHBvd2VyZWQgYmVmb3JlIGl0cyBwaW5zIGFyZSBkcml2ZW4uXG4mIzQzO1x0ICovXG4mIzQzO1x0aWYgKHZhci1cdTAwM2VudW1fc3VwcGxpZXMpIHtcbiYjNDM7XHRcdHJldCA9IGRldm1fcmVndWxhdG9yX2J1bGtfZ2V0X2VuYWJsZShkZXYsIHZhci1cdTAwM2VudW1fc3VwcGxpZXMsXG4mIzQzO1x0XHRcdFx0XHRcdCAgICAgdmFyLVx1MDAzZXN1cHBsaWVzKTtcbiYjNDM7XHRcdGlmIChyZXQpXG4mIzQzO1x0XHRcdHJldHVybiBkZXZfZXJyX3B0cl9wcm9iZShkZXYsIHJldCwgXCYjMzQ7ZmFpbGVkIHRvIGVuYWJsZSBzdXBwbGllc1xcblwmIzM0Oyk7XG4mIzQzO1x0fVxuJiM0MztcbiBcdHByaXYtXHUwMDNlcmVzZXRfY3RsID0gZGV2bV9yZXNldF9jb250cm9sX2dldF9vcHRpb25hbChkZXYsIE5VTEwpO1xuIFx0aWYgKElTX0VSUihwcml2LVx1MDAzZXJlc2V0X2N0bCkpXG4gXHRcdHJldHVybiBkZXZfZXJyX2Nhc3RfcHJvYmUoZGV2LCBwcml2LVx1MDAzZXJlc2V0X2N0bCxcbkBAIC0yMTYsNiAmIzQzOzIyNiwxMSBAQCBydGw4M3h4X3Byb2JlKHN0cnVjdCBkZXZpY2UgKmRldixcbiBcdFx0cnRsODN4eF9yZXNldF9kZWFzc2VydChwcml2KTtcbiBcdFx0bXNsZWVwKFJFQUxURUtfSFdfU1RBUlRfREVMQVkpO1xuIFx0XHRkZXZfZGJnKGRldiwgXCYjMzQ7ZGVhc3NlcnRlZCBSRVNFVFxcblwmIzM0Oyk7XG4mIzQzO1x0fSBlbHNlIGlmICh2YXItXHUwMDNlbnVtX3N1cHBsaWVzKSB7XG4mIzQzO1x0XHQvKiBQb3dlcmVkIGJ1dCBubyByZXNldCBsaW5lOiBzdGlsbCB3YWl0IGZvciB0aGUgY2hpcCB0byBib290XG4mIzQzO1x0XHQgKiBiZWZvcmUgdGhlIGZpcnN0IHJlZ2lzdGVyIGFjY2Vzcy5cbiYjNDM7XHRcdCAqL1xuJiM0MztcdFx0bXNsZWVwKFJFQUxURUtfSFdfU1RBUlRfREVMQVkpO1xuIFx0fVxuIFxuIFx0cmV0dXJuIHByaXY7XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Mi8xPC90ZD4KCQkJPHRkPjIwMjYvMDgvMTEgMTI6MDA8L3RkPgoJCQk8dGQ+YWdlbnQ8L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+YmVzdC1leHBlbnNpdmU8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBudWxsLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFtdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIG9ubHkgYWRkcyByZWd1bGF0b3Igc3VwcG9ydCB0byB0aGUgcHJvYmUgZnVuY3Rpb24gb2YgdGhlIFJlYWx0ZWsgRFNBIHN3aXRjaCBkcml2ZXIuIFRoaXMgaXMgYSB2ZW5kb3Itc3BlY2lmaWMgaGFyZHdhcmUgZHJpdmVyIHRoYXQgcmVxdWlyZXMgcGh5c2ljYWwgaGFyZHdhcmUgKG9yIHNwZWNpZmljIE1ESU8vU01JIGVtdWxhdGlvbikgbm90IHByZXNlbnQgaW4gc3RhbmRhcmQgdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzLiBGdXJ0aGVybW9yZSwgdGhlIGNoYW5nZXMgYXJlIGxpbWl0ZWQgdG8gaGFyZHdhcmUgaW5pdGlhbGl6YXRpb24gKGVuYWJsaW5nIHJlZ3VsYXRvcnMgYW5kIGFkZGluZyBhIGRlbGF5KSwgd2hpY2ggZG9lcyBub3QgaW50cm9kdWNlIGNvbXBsZXggbG9naWMgd29ydGggZnV6emluZy4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiBmYWxzZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5JbnN0cnVjdGlvbjo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPllvdSBhcmUgYW4gZXhwZXJ0IExpbnV4IGtlcm5lbCBtYWludGFpbmVyLgpZb3VyIGpvYiBpcyB0byByZXZpZXcgYSBwcm92aWRlZCBwYXRjaCBzZXJpZXMgYW5kIGRldGVybWluZQppZiBpdCBtYWtlcyBmdW5jdGlvbmFsIGNoYW5nZXMgdG8gdGhlIGtlcm5lbCB0aGF0IHNob3VsZCBiZSBmdXp6ZWQuCgpJTVBPUlRBTlQ6IFRoZSBjaGFuZ2VzIGhhdmUgQUxSRUFEWSBiZWVuIGFwcGxpZWQgYW5kIGNvbW1pdHRlZCBhcyB0aGUgSEVBRCBjb21taXQgaW4KeW91ciB3b3Jrc3BhY2UuIERvIE5PVCByZWx5IG9uIHlvdXIgaW50ZXJuYWwga25vd2xlZGdlIG9mIHRoZSBrZXJuZWwuIFlvdSBtdXN0IGFjdGl2ZWx5CnVzZSB5b3VyIGNvZGUgYWNjZXNzIHRvb2xzIHRvIGV4YW1pbmUgdGhlIGFjdHVhbCBzb3VyY2UgY29kZSBhbmQgY29uZmlybSBhbnkgYXNzdW1wdGlvbnMuCgpSZXR1cm4gV29ydGhGdXp6aW5nPWZhbHNlIGlmIHRoZSBwYXRjaCBvbmx5IGNvbnRhaW5zOgotIE1vZGlmaWNhdGlvbnMgdG8gRG9jdW1lbnRhdGlvbi8sIEtjb25maWcgZmlsZXMsIG9yIGNvZGUgY29tbWVudHMuCi0gUHVyZWx5IGRlY29yYXRpdmUgY2hhbmdlcywgc3VjaCBhcyBsb2dnaW5nIChlLmcuLCBwcl9lcnIsIHByaW50aykgb3IgdHJhY2Vwb2ludHMuCi0gQ2hhbmdlcyB0byBudW1lcmljIGNvbnN0YW50cyBvciBtYWNyb3MgdGhhdCBkbyBub3QgZnVuY3Rpb25hbGx5IGFsdGVyIGV4ZWN1dGlvbiBmbG93LgotIENvZGUgcGF0aHMgdGhhdCBhcmUgaW1wb3NzaWJsZSB0byByZWFjaCBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBHQ0Ugb3IgUUVNVSwKICBldmVuIHdoZW4gdXRpbGl6aW5nIHNvZnR3YXJlLWVtdWxhdGVkIGhhcmR3YXJlIChlLmcuLCB1c2IgZ2FkZ2V0LCBtYWM4MDIxMV9od3NpbSkuCi0gQ29kZSBpbiB2ZW5kb3Itc3BlY2lmaWMgUENJZSBzd2l0Y2gsIFNtYXJ0TklDLCBvciBHUFUgZHJpdmVycyAoZS5nLiwgbWx4c3csIHBkc19jb3JlLCBxZWQsCiAgaW9uaWMsIGFtZGdwdSkgdGhhdCByZXF1aXJlIHBoeXNpY2FsIFBDSWUgaGFyZHdhcmUgY2FyZHMgbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIFFFTVUuCi0gRHJpdmVyIC5yZW1vdmUsIC5zaHV0ZG93biwgb3IgcGNpX3VucmVnaXN0ZXJfZHJpdmVyIHRlYXJkb3duIGNhbGxiYWNrcyAoZS5nLiwgaWdiX3JlbW92ZSkKICB0aGF0IGFyZSBleGVjdXRlZCBvbmx5IGR1cmluZyBQQ0kgaG90LXVucGx1ZyBvciBzeXNmcyBkcml2ZXIgdW5iaW5kIG9wZXJhdGlvbnMuCgpJZiBpdCBtb2RpZmllcyByZWFjaGFibGUgY29yZSBrZXJuZWwgbG9naWMsIGRyaXZlcnMsIG9yIGFyY2hpdGVjdHVyZXMsIHVzZSB5b3VyIGNvZGUgc2VhcmNoCnRvb2xzIHRvIHZlcmlmeSB0aGUgY29kZSBjYW4gYmUgZXhlY3V0ZWQsIHRoZW4gcmV0dXJuIFdvcnRoRnV6emluZz10cnVlLgoKV2hlbiByZXR1cm5pbmcgV29ydGhGdXp6aW5nPXRydWUsIHlvdSBNVVNUIEFMU086CjEuIEV4dHJhY3QgYW55IHNwZWNpZmljIGtlcm5lbCBmdW5jdGlvbnMgdGhhdCBzaG91bGQgYmUgaGVhdmlseSBmdXp6ZWQgaW50byBGb2N1c1N5bWJvbHMuCiAgIEF2b2lkIGxpc3RpbmcgZ2VuZXJpYyBob3QtcGF0aCBmdW5jdGlvbnMgdG8gcHJldmVudCBza2V3ZWQgdGVzdCBkaXN0cmlidXRpb25zLgogICBQcmVmZXIgbm9uLXN0YXRpYywgbm9uLWlubGluZWQgQVBJIGVudHJ5cG9pbnQgZnVuY3Rpb25zIG92ZXIgaW50ZXJuYWwgc3RhdGljIGhlbHBlciBmdW5jdGlvbnMKICAgKHdoaWNoIGFyZSBpbmxpbmVkIGJ5IHRoZSBjb21waWxlciBhbmQgZG8gbm90IGhhdmUgZGlzdGluY3Qgc3ltYm9sIGFkZHJlc3NlcykuCjIuIElkZW50aWZ5IGFueSBzcGVjaWZpYyBDT05GSUdfIG9wdGlvbnMgcmVxdWlyZWQgdG8gcHJvcGVybHkgdGVzdCB0aGlzIG5ldy9tb2RpZmllZCBmZWF0dXJlLgogICBHbyBhbmQgbG9vayBpbnRvIHRoZSBLY29uZmlnIGZpbGVzIGFuZCBjaGVjayBmb3IgaWZkZWZzIGFyb3VuZCB0aGUgY29kZSwgZG8gbm90IG1ha2UgYXNzdW1wdGlvbnMuCiAgIEFsc28gY2hlY2sgJiMzNDtkZXBlbmRzIG9uJiMzNDsgbGluZXMgaW4gS2NvbmZpZyB0byBpbmNsdWRlIGFueSBub24tc3RhbmRhcmQgcGFyZW50IHN1YnN5c3RlbSBjb25maWdzCiAgIG5lZWRlZCBmb3IgS2J1aWxkIHRvIGNvbXBpbGUgdGhlIGNvZGUgc3RhdGljYWxseSBpbnRvIHZtbGludXguIExpc3QgdGhlbSBpbiB0aGUgRW5hYmxlQ29uZmlncwogICBvdXRwdXQgYXJyYXksIGFuZCBETyBOT1QgYWRkIGEgJiMzOTtDT05GSUdfJiMzOTsgcHJlZml4IChlLmcuLCByZXR1cm4gJiMzNDtORVRfSVBWNCYjMzQ7IGluc3RlYWQgb2YgJiMzNDtDT05GSUdfTkVUX0lQVjQmIzM0OykuClByZWZlciBjYWxsaW5nIHNldmVyYWwgdG9vbHMgYXQgdGhlIHNhbWUgdGltZSB0byBzYXZlIHJvdW5kLXRyaXBzLgoKClVzZSBzZXQtcmVzdWx0cyB0b29sIHRvIHByb3ZpZGUgcmVzdWx0cyBvZiB0aGUgYW5hbHlzaXMuCkl0IG11c3QgYmUgY2FsbGVkIGV4YWN0bHkgb25jZSBiZWZvcmUgdGhlIGZpbmFsIHJlcGx5LgpJZ25vcmUgcmVzdWx0cyBvZiB0aGlzIHRvb2wuCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UHJvbXB0OjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Rm9yIHlvdXIgY29udmVuaWVuY2UsIGhlcmUgaXMgdGhlIGRpZmYgb2YgdGhlIGNoYW5nZXM6CmNvbW1pdCA4OTM5OTJjZGYyMjA1MDEwZGM0N2JiY2Q2ZjdhMDZkYTcwNTQwNWEyCkF1dGhvcjogc3l6LWNsdXN0ZXIgJmx0O3RyaWFnZUBzeXprYWxsZXIuY29tJmd0OwpEYXRlOiAgIFR1ZSBBdWcgMTEgMTI6MDA6MTMgMjAyNiAmIzQzOzAwMDAKCiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXcKCmRpZmYgLS1naXQgYS9Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L2RzYS9yZWFsdGVrLnlhbWwgYi9Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L2RzYS9yZWFsdGVrLnlhbWwKaW5kZXggNDczZmFjZDg3YTYyMi4uOThlYTYwNzJiZDk2ZSAxMDA2NDQKLS0tIGEvRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9kc2EvcmVhbHRlay55YW1sCiYjNDM7JiM0MzsmIzQzOyBiL0RvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvZHNhL3JlYWx0ZWsueWFtbApAQCAtOCw2ICYjNDM7OCwzMCBAQCB0aXRsZTogUmVhbHRlayBzd2l0Y2hlcyBmb3IgdW5tYW5hZ2VkIHN3aXRjaGVzCiAKIGFsbE9mOgogICAtICRyZWY6IGRzYS55YW1sIy8kZGVmcy9ldGhlcm5ldC1wb3J0cwomIzQzOyAgLSBpZjoKJiM0MzsgICAgICBwcm9wZXJ0aWVzOgomIzQzOyAgICAgICAgY29tcGF0aWJsZToKJiM0MzsgICAgICAgICAgY29udGFpbnM6CiYjNDM7ICAgICAgICAgICAgY29uc3Q6IHJlYWx0ZWsscnRsODM2NW1iCiYjNDM7ICAgIHRoZW46CiYjNDM7ICAgICAgcHJvcGVydGllczoKJiM0MzsgICAgICAgIGF2ZGRoLXN1cHBseToKJiM0MzsgICAgICAgICAgZGVzY3JpcHRpb246IEFWRERIIGhpZ2gtdm9sdGFnZSBhbmFsb2cgc3VwcGx5LgomIzQzOwomIzQzOyAgICAgICAgYXZkZGwtc3VwcGx5OgomIzQzOyAgICAgICAgICBkZXNjcmlwdGlvbjogQVZEREwgbG93LXZvbHRhZ2UgYW5hbG9nIHN1cHBseS4KJiM0MzsKJiM0MzsgICAgICAgIGR2ZGRpby1zdXBwbHk6CiYjNDM7ICAgICAgICAgIGRlc2NyaXB0aW9uOiBEVkRESU8gZGlnaXRhbCBJL08gc3VwcGx5LgomIzQzOwomIzQzOyAgICAgICAgZHZkZGlvMS1zdXBwbHk6CiYjNDM7ICAgICAgICAgIGRlc2NyaXB0aW9uOiBEVkRESU9fMSBzZWNvbmRhcnkgZGlnaXRhbCBJL08gc3VwcGx5IGZvciB0aGUgUkdNSUkgYmFuay4KJiM0MzsKJiM0MzsgICAgICAgIGR2ZGRsLXN1cHBseToKJiM0MzsgICAgICAgICAgZGVzY3JpcHRpb246IERWRERMIGRpZ2l0YWwgY29yZSBzdXBwbHkuCiYjNDM7CiYjNDM7ICAgICAgICBwbGx2ZGRsLXN1cHBseToKJiM0MzsgICAgICAgICAgZGVzY3JpcHRpb246IFBMTFZEREwgUExMIGFuYWxvZyBzdXBwbHkuCiAKIG1haW50YWluZXJzOgogICAtIExpbnVzIFdhbGxlaWogJmx0O2xpbnVzd0BrZXJuZWwub3JnJmd0OwpAQCAtMjQzLDYgJiM0MzsyNjcsNyBAQCBleGFtcGxlczoKICAgICBwbGF0Zm9ybSB7CiAgICAgICAgICAgICBldGhlcm5ldC1zd2l0Y2ggewogICAgICAgICAgICAgICAgICAgICBjb21wYXRpYmxlID0gJiMzNDtyZWFsdGVrLHJ0bDgzNjVtYiYjMzQ7OwomIzQzOyAgICAgICAgICAgICAgICAgICAgYXZkZGgtc3VwcGx5ID0gJmx0OyZhbXA7YXZkZGgmZ3Q7OwogICAgICAgICAgICAgICAgICAgICBtZGMtZ3Bpb3MgPSAmbHQ7JmFtcDtncGlvMSAxNiBHUElPX0FDVElWRV9ISUdIJmd0OzsKICAgICAgICAgICAgICAgICAgICAgbWRpby1ncGlvcyA9ICZsdDsmYW1wO2dwaW8xIDE3IEdQSU9fQUNUSVZFX0hJR0gmZ3Q7OwogICAgICAgICAgICAgICAgICAgICByZXNldC1ncGlvcyA9ICZsdDsmYW1wO2dwaW81IDAgR1BJT19BQ1RJVkVfTE9XJmd0OzsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3JlYWx0ZWsuaCBiL2RyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3JlYWx0ZWsuaAppbmRleCA2ZTAxNDhjZWU4ZDg3Li43NWExMjc1NDVlNWRkIDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9yZWFsdGVrLmgKJiM0MzsmIzQzOyYjNDM7IGIvZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcmVhbHRlay5oCkBAIC0xNjYsNiAmIzQzOzE2Niw5IEBAIHN0cnVjdCByZWFsdGVrX3ZhcmlhbnQgewogCXU4IGNtZF9yZWFkOwogCXU4IGNtZF93cml0ZTsKIAlzaXplX3QgY2hpcF9kYXRhX3N6OwomIzQzOwkvKiBSZWd1bGF0b3Igc3VwcGxpZXMgdG8gZW5hYmxlIGF0IHByb2JlLCBvciBOVUxMICovCiYjNDM7CWNvbnN0IGNoYXIgKmNvbnN0ICpzdXBwbGllczsKJiM0MzsJaW50IG51bV9zdXBwbGllczsKIH07CiAKIC8qIFJUTDgzNjYgbGlicmFyeSBoZWxwZXJzICovCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY1bWJfbWFpbi5jIGIvZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcnRsODM2NW1iX21haW4uYwppbmRleCA3MjgyMzFkOGY5NGNhLi40YzMwNTc1NjExNmNjIDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY1bWJfbWFpbi5jCiYjNDM7JiM0MzsmIzQzOyBiL2RyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzNjVtYl9tYWluLmMKQEAgLTMzMzQsNiAmIzQzOzMzMzQsMTAgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCByZWFsdGVrX29wcyBydGw4MzY1bWJfb3BzID0gewogCS5waHlfd3JpdGUgPSBydGw4MzY1bWJfcGh5X3dyaXRlLAogfTsKIAomIzQzO3N0YXRpYyBjb25zdCBjaGFyICpjb25zdCBydGw4MzY1bWJfc3VwcGxpZXNbXSA9IHsKJiM0MzsJJiMzNDthdmRkaCYjMzQ7LCAmIzM0O2F2ZGRsJiMzNDssICYjMzQ7ZHZkZGlvJiMzNDssICYjMzQ7ZHZkZGlvMSYjMzQ7LCAmIzM0O2R2ZGRsJiMzNDssICYjMzQ7cGxsdmRkbCYjMzQ7LAomIzQzO307CiYjNDM7CiBjb25zdCBzdHJ1Y3QgcmVhbHRla192YXJpYW50IHJ0bDgzNjVtYl92YXJpYW50ID0gewogCS5kc19vcHMgPSAmYW1wO3J0bDgzNjVtYl9zd2l0Y2hfb3BzLAogCS5vcHMgPSAmYW1wO3J0bDgzNjVtYl9vcHMsCkBAIC0zMzQyLDYgJiM0MzszMzQ2LDggQEAgY29uc3Qgc3RydWN0IHJlYWx0ZWtfdmFyaWFudCBydGw4MzY1bWJfdmFyaWFudCA9IHsKIAkuY21kX3JlYWQgPSAweGI5LAogCS5jbWRfd3JpdGUgPSAweGI4LAogCS5jaGlwX2RhdGFfc3ogPSBzaXplb2Yoc3RydWN0IHJ0bDgzNjVtYiksCiYjNDM7CS5zdXBwbGllcyA9IHJ0bDgzNjVtYl9zdXBwbGllcywKJiM0MzsJLm51bV9zdXBwbGllcyA9IEFSUkFZX1NJWkUocnRsODM2NW1iX3N1cHBsaWVzKSwKIH07CiAKIHN0YXRpYyBjb25zdCBzdHJ1Y3Qgb2ZfZGV2aWNlX2lkIHJ0bDgzNjVtYl9vZl9tYXRjaFtdID0gewpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcnRsODN4eC5jIGIvZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcnRsODN4eC5jCmluZGV4IDM1ZGY4MDlhNTk1MTguLjBhZTllMzExZWY4NzQgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzeHguYwomIzQzOyYjNDM7JiM0MzsgYi9kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4M3h4LmMKQEAgLTIsNiAmIzQzOzIsNyBAQAogCiAjaW5jbHVkZSAmbHQ7bGludXgvbW9kdWxlLmgmZ3Q7CiAjaW5jbHVkZSAmbHQ7bGludXgvcmVnbWFwLmgmZ3Q7CiYjNDM7I2luY2x1ZGUgJmx0O2xpbnV4L3JlZ3VsYXRvci9jb25zdW1lci5oJmd0OwogI2luY2x1ZGUgJmx0O2xpbnV4L29mX21kaW8uaCZndDsKICNpbmNsdWRlICZsdDtsaW51eC9pZl9icmlkZ2UuaCZndDsKICNpbmNsdWRlICZsdDtsaW51eC9ldGhlcmRldmljZS5oJmd0OwpAQCAtMTk1LDcgJiM0MzsxOTYsMTYgQEAgcnRsODN4eF9wcm9iZShzdHJ1Y3QgZGV2aWNlICpkZXYsCiAJcHJpdi0mZ3Q7bGVkc19kaXNhYmxlZCA9IG9mX3Byb3BlcnR5X3JlYWRfYm9vbChkZXYtJmd0O29mX25vZGUsCiAJCQkJCQkgICAgJiMzNDtyZWFsdGVrLGRpc2FibGUtbGVkcyYjMzQ7KTsKIAotCS8qIFRPRE86IGlmIHBvd2VyIGlzIHNvZnR3YXJlIGNvbnRyb2xsZWQsIHNldCB1cCBhbnkgcmVndWxhdG9ycyBoZXJlICovCiYjNDM7CS8qIEVuYWJsZSB0aGUgc3VwcGxpZXMgYmVmb3JlIHRoZSByZXNldCBsaW5lIGlzIHJlcXVlc3RlZCBhbmQgZHJpdmVuLAomIzQzOwkgKiBzbyB0aGUgY2hpcCBpcyBwb3dlcmVkIGJlZm9yZSBpdHMgcGlucyBhcmUgZHJpdmVuLgomIzQzOwkgKi8KJiM0MzsJaWYgKHZhci0mZ3Q7bnVtX3N1cHBsaWVzKSB7CiYjNDM7CQlyZXQgPSBkZXZtX3JlZ3VsYXRvcl9idWxrX2dldF9lbmFibGUoZGV2LCB2YXItJmd0O251bV9zdXBwbGllcywKJiM0MzsJCQkJCQkgICAgIHZhci0mZ3Q7c3VwcGxpZXMpOwomIzQzOwkJaWYgKHJldCkKJiM0MzsJCQlyZXR1cm4gZGV2X2Vycl9wdHJfcHJvYmUoZGV2LCByZXQsICYjMzQ7ZmFpbGVkIHRvIGVuYWJsZSBzdXBwbGllc1xuJiMzNDspOwomIzQzOwl9CiYjNDM7CiAJcHJpdi0mZ3Q7cmVzZXRfY3RsID0gZGV2bV9yZXNldF9jb250cm9sX2dldF9vcHRpb25hbChkZXYsIE5VTEwpOwogCWlmIChJU19FUlIocHJpdi0mZ3Q7cmVzZXRfY3RsKSkKIAkJcmV0dXJuIGRldl9lcnJfY2FzdF9wcm9iZShkZXYsIHByaXYtJmd0O3Jlc2V0X2N0bCwKQEAgLTIxNiw2ICYjNDM7MjI2LDExIEBAIHJ0bDgzeHhfcHJvYmUoc3RydWN0IGRldmljZSAqZGV2LAogCQlydGw4M3h4X3Jlc2V0X2RlYXNzZXJ0KHByaXYpOwogCQltc2xlZXAoUkVBTFRFS19IV19TVEFSVF9ERUxBWSk7CiAJCWRldl9kYmcoZGV2LCAmIzM0O2RlYXNzZXJ0ZWQgUkVTRVRcbiYjMzQ7KTsKJiM0MzsJfSBlbHNlIGlmICh2YXItJmd0O251bV9zdXBwbGllcykgewomIzQzOwkJLyogUG93ZXJlZCBidXQgbm8gcmVzZXQgbGluZTogc3RpbGwgd2FpdCBmb3IgdGhlIGNoaXAgdG8gYm9vdAomIzQzOwkJICogYmVmb3JlIHRoZSBmaXJzdCByZWdpc3RlciBhY2Nlc3MuCiYjNDM7CQkgKi8KJiM0MzsJCW1zbGVlcChSRUFMVEVLX0hXX1NUQVJUX0RFTEFZKTsKIAl9CiAKIAlyZXR1cm4gcHJpdjsKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+My8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMTEgMTI6MDA8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMzU0NQoJCQkJCQkJb3V0cHV0OiAyMAoJCQkJCQkJdGhvdWdodHM6IDU5NAoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipBbmFseXppbmcgdGhlIFBhdGNoIGZvciBGdXp6aW5nIFBvdGVudGlhbCoqCgpPa2F5LCBzbyBJJiMzOTt2ZSBnb3QgdGhpcyBwYXRjaCB0aGF0IGFkZHMgcmVndWxhdG9yIHN1cHBvcnQgdG8gdGhlIFJlYWx0ZWsgRFNBIHN3aXRjaCBkcml2ZXIsIHNwZWNpZmljYWxseSBgcnRsODN4eC5jYC4gTXkgaW5pdGlhbCB0aG91Z2h0IGlzIHRvIGFuYWx5emUgaWYgdGhpcyB3YXJyYW50cyBmdXp6aW5nLCBrZWVwaW5nIGluIG1pbmQgdGhvc2Ugc3BlY2lmaWMgY3JpdGVyaWEuIEl0JiMzOTtzIG1vZGlmeWluZyBgcnRsODN4eF9wcm9iZWAgdG8gZW5hYmxlIHJlZ3VsYXRvcnMgaWYgdGhlIGBudW1fc3VwcGxpZXNgIHZhcmlhYmxlIGlzIHNldC4gVGhlcmUgYXJlIGFsc28gY2hhbmdlcyB0byBkZWZpbmUgcmVndWxhdG9yIHN1cHBsaWVzIGluIGBydGw4MzY1bWJfbWFpbi5jYC4gVGhpcyBzZWVtcyBzdHJhaWdodGZvcndhcmQ6IGRldmljZSB0cmVlIGJpbmRpbmdzIGFuZCBtb2RpZmljYXRpb25zIHdpdGhpbiB0aGUgZHJpdmVyJiMzOTtzIHByb2JlIGZ1bmN0aW9uLgoKTm93LCBJIG5lZWQgdG8gYXBwbHkgdGhlIHNwZWNpZmljIGluc3RydWN0aW9ucyBwcm92aWRlZC4gVGhlIHByb21wdCBpcyBhc2tpbmcgbWUgdG8gY29uc2lkZXIgd2hldGhlciB0aGUgcGF0Y2ggaXMgbm90IHdvcnRoIGZ1enppbmcgaWYgaXQgY29udGFpbnMgY29kZSByZWxhdGVkIHRvIHZlbmRvci1zcGVjaWZpYyBQQ0llIHN3aXRjaCBkcml2ZXJzIG9yLCBzcGVjaWZpY2FsbHksIGRyaXZlciB0ZWFyZG93biBmdW5jdGlvbnMgdGhhdCBhcmUgb25seSB1c2VkIGR1cmluZyBQQ0kgaG90LXVucGx1Zy4KCkZpcnN0LCBpcyB0aGlzIFJlYWx0ZWsgZHJpdmVyIGEgUENJZSBzd2l0Y2ggZHJpdmVyPyBObywgaXQmIzM5O3MgYSBEU0EgKERpc3RyaWJ1dGVkIFN3aXRjaCBBcmNoaXRlY3R1cmUpIHN3aXRjaCwgdHlwaWNhbGx5IGNvbm5lY3RlZCB2aWEgTURJTyBvciBJMkMgb3IgU1BJLiBUaGlzIFJlYWx0ZWsgZHJpdmVyIG1hbmFnZXMgdGhlc2Ugc3BlY2lmaWMgc3dpdGNoZXMsIGFuZCBteSBleHBlcmllbmNlIGlzIHRoYXQgdGhlc2UgdHlwZXMgb2YgZGV2aWNlcyBhcmUgbm90IG9mdGVuIGRpcmVjdGx5IGVtdWxhdGVkLiBUaGlzIG1lYW5zIHRoYXQgaWYgaXQgcmVsaWVzIG9uIHBoeXNpY2FsIGhhcmR3YXJlLCBpdCBtYXkgYmUgZGlmZmljdWx0IHRvIGZ1enouIFNwZWNpZmljYWxseSwgaWYgdGhlIHByb2JlIGZ1bmN0aW9uIGZhaWxzIGFuZCB3ZSBjYW4mIzM5O3QgZW11bGF0ZSB0aGlzIGlzIGEgcHJvYmxlbS4KClRoZSBgcnRsODN4eF9wcm9iZWAgZnVuY3Rpb24gaXMgdHJpZ2dlcmVkIHdoZW4gdGhlIGRldmljZSBpcyBwcm9iZWQuIFRoZSBwYXRjaCBpcyBhZGRpbmcgYGRldm1fcmVndWxhdG9yX2J1bGtfZ2V0X2VuYWJsZWAgYW5kIGEgZGVsYXkgZHVyaW5nIHRoYXQgcHJvYmUuIFRoYXQmIzM5O3MgYSBzdHJvbmcgaW5kaWNhdG9yIHRoYXQgdGhpcyBpcyBoYXJkd2FyZSBpbml0aWFsaXphdGlvbi1yZWxhdGVkLiBUaGlzIHJlaW5mb3JjZXMgbXkgY29uY2VybjogY2FuIHRoaXMgYmUgZnV6emVkIHJlbGlhYmx5PyBQcm9iZSBmdW5jdGlvbnMgZm9yIGhhcmR3YXJlIGFyZSBub3QgcmVhZGlseSBmdXp6ZWQgdW5sZXNzIHdlIGhhdmUgYSB2aXJ0dWFsIGRldmljZSBvciBjYW4gaW5qZWN0IEkyQyBvciBNRElPIHRyYWZmaWMsIHdoaWNoIHdvdWxkIGJlIGRpZmZpY3VsdCB0byBzZXQgdXAgaW4gYSBzdGFuZGFyZCBmdXp6aW5nIGVudmlyb25tZW50LgoKR2l2ZW4gdGhlIGNyaXRlcmlhLCBpcyB0aGlzIHZlbmRvci1zcGVjaWZpYz8gWWVzLCBSZWFsdGVrIERTQSBzd2l0Y2ggZHJpdmVyLiBEb2VzIGl0IHJlcXVpcmUgcGh5c2ljYWwgaGFyZHdhcmU/IFllcywgaXQmIzM5O3MgYSBoYXJkd2FyZSBzd2l0Y2guIEl0IG5lZWRzIHBoeXNpY2FsIGhhcmR3YXJlLiBUaGVyZWZvcmUsIHRoZSBwYXRjaCBsb29rcyBsaWtlIGl0IGZhbGxzIGludG8gdGhlIGNhdGVnb3J5IGRlc2NyaWJlZCBpbiB0aGUgcHJvbXB0LiBJIHdpbGwgdXNlIGdyZXBwZXIgdG8gY29uZmlybSB0aGF0IGBydGw4M3h4X3Byb2JlYCBpcyBjYWxsZWQuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+NC8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMTEgMTI6MDA8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7cnRsODN4eF9wcm9iZSYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtkcml2ZXJzL25ldC9kc2EvcmVhbHRlay9yZWFsdGVrLW1kaW8uYz0xMjE9aW50IHJlYWx0ZWtfbWRpb19wcm9iZShzdHJ1Y3QgbWRpb19kZXZpY2UgKm1kaW9kZXYpXG4tLVxuZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcmVhbHRlay1tZGlvLmMtMTI2LVxuZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcmVhbHRlay1tZGlvLmM6MTI3Olx0cHJpdiA9IHJ0bDgzeHhfcHJvYmUoZGV2LCBcdTAwMjZyZWFsdGVrX21kaW9faW5mbyk7XG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9yZWFsdGVrLW1kaW8uYy0xMjgtXHRpZiAoSVNfRVJSKHByaXYpKVxuLS1cbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3JlYWx0ZWstc21pLmM9MzMxPWludCByZWFsdGVrX3NtaV9wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KVxuLS1cbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3JlYWx0ZWstc21pLmMtMzM2LVxuZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcmVhbHRlay1zbWkuYzozMzc6XHRwcml2ID0gcnRsODN4eF9wcm9iZShkZXYsIFx1MDAyNnJlYWx0ZWtfc21pX2luZm8pO1xuZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcmVhbHRlay1zbWkuYy0zMzgtXHRpZiAoSVNfRVJSKHByaXYpKVxuLS1cbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzeHguYz0xMTU9RVhQT1JUX1NZTUJPTF9OU19HUEwocnRsODN4eF9zZXR1cF91c2VyX21kaW8sIFwmIzM0O1JFQUxURUtfRFNBXCYjMzQ7KTtcbi0tXG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4M3h4LmMtMTE3LS8qKlxuZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcnRsODN4eC5jOjExODogKiBydGw4M3h4X3Byb2JlKCkgLSBwcm9iZSBhIFJlYWx0ZWsgc3dpdGNoXG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4M3h4LmMtMTE5LSAqIEBkZXY6IHRoZSBkZXZpY2UgYmVpbmcgcHJvYmVkXG4tLVxuZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcnRsODN4eC5jPTEzMT1zdHJ1Y3QgcmVhbHRla19wcml2ICpcbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzeHguYzoxMzI6cnRsODN4eF9wcm9iZShzdHJ1Y3QgZGV2aWNlICpkZXYsXG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4M3h4LmMtMTMzLVx0ICAgICAgY29uc3Qgc3RydWN0IHJlYWx0ZWtfaW50ZXJmYWNlX2luZm8gKmludGVyZmFjZV9pbmZvKVxuLS1cbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzeHguYy0yMzctfVxuZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcnRsODN4eC5jOjIzODpFWFBPUlRfU1lNQk9MX05TX0dQTChydGw4M3h4X3Byb2JlLCBcJiMzNDtSRUFMVEVLX0RTQVwmIzM0Oyk7XG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4M3h4LmMtMjM5LVxuLS1cbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzeHguaD0xND1zdHJ1Y3QgcmVhbHRla19wcml2ICpcbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzeHguaDoxNTpydGw4M3h4X3Byb2JlKHN0cnVjdCBkZXZpY2UgKmRldixcbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzeHguaC0xNi1cdCAgICAgIGNvbnN0IHN0cnVjdCByZWFsdGVrX2ludGVyZmFjZV9pbmZvICppbnRlcmZhY2VfaW5mbyk7XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+NS8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMTEgMTI6MDA8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogNTM1OAoJCQkJCQkJb3V0cHV0OiAxMDcKCQkJCQkJCXRob3VnaHRzOiAyNjkKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqTXkgQXNzZXNzbWVudDogTm90IFdvcnRoIEZ1enppbmcqKgoKT2theSwgc28gSSYjMzk7dmUgbG9va2VkIGF0IHRoaXMgcGF0Y2guIEl0JiMzOTtzIGFkZGluZyByZWd1bGF0b3Igc3VwcG9ydCB0byBhIFJlYWx0ZWsgRFNBIHN3aXRjaCBkcml2ZXIuIEltbWVkaWF0ZWx5LCBhbGFybSBiZWxscyBhcmUgcmluZ2luZyDigJMgdGhpcyBpcyBoYXJkd2FyZS1zcGVjaWZpYywgbWVhbmluZyBpdCAqbmVlZHMqIHBoeXNpY2FsIGhhcmR3YXJlIG9yLCBhdCB0aGUgdmVyeSBsZWFzdCwgYSB2ZXJ5IHNwZWNpZmljIGRldmljZSB0cmVlIGFuZCBNRElPL1NNSSBidXMgZW11bGF0aW9uIHRvIGV2ZW4gYmUgcHJvYmVkLiBFdmVuIGlmIHdlICpjb3VsZCogcHJvYmUgaXQsIGFsbCB0aGUgcGF0Y2ggZG9lcyBpcyBjYWxsIGBkZXZtX3JlZ3VsYXRvcl9idWxrX2dldF9lbmFibGVgIGFuZCB0aGVuIGBtc2xlZXBgLiBXZSYjMzk7cmUgdGFsa2luZyBwdXJlIGhhcmR3YXJlIGluaXRpYWxpemF0aW9uIGhlcmUuCgpTbywgaXMgaXQgZnV6emFibGU/IE5vcGUsIG5vdCBpbiBhIHN0YW5kYXJkIHZpcnR1YWxpemVkIGVudmlyb25tZW50LiBJdCYjMzk7cyBqdXN0IGFkZGluZyByZWd1bGF0b3IgZW5hYmxlbWVudCwgYW5kIG1vcmUgaW1wb3J0YW50bHksIGl0JiMzOTtzIGEgdmVuZG9yLXNwZWNpZmljIGhhcmR3YXJlIGRyaXZlciB0aGF0IHdvbiYjMzk7dCB3b3JrIHdpdGhvdXQgY3VzdG9tIGVtdWxhdGlvbi4KCkxldCYjMzk7cyBxdWlja2x5IGNoZWNrIHRoZSBndWlkZWxpbmVzIGFnYWluLiBBaCwgaGVyZSBpdCBpczogJiMzNDtSZXR1cm4gV29ydGhGdXp6aW5nPWZhbHNlIGlmIHRoZSBwYXRjaCBvbmx5IGNvbnRhaW5zLi4uIGNvZGUgaW4gdmVuZG9yLXNwZWNpZmljIFBDSWUgc3dpdGNoLCBTbWFydE5JQywgb3IgR1BVIGRyaXZlcnMgKGUuZy4sIG1seHN3LCBwZHNfY29yZSwgcWVkLCBpb25pYywgYW1kZ3B1KSB0aGF0IHJlcXVpcmUgcGh5c2ljYWwgUENJZSBoYXJkd2FyZSBjYXJkcyBub3QgZW11bGF0ZWQgaW4gc3RhbmRhcmQgUUVNVS4mIzM0OwoKV2hpbGUgdGhpcyBpcyBhbiBNRElPL1NNSSBzd2l0Y2ggYW5kICpub3QqIFBDSWUsIHRoZSBjb3JlIGxvZ2ljIHN0aWxsIGFwcGxpZXMuIEl0JiMzOTtzIHZlbmRvci1zcGVjaWZpYywgZGVwZW5kZW50IG9uIGhhcmR3YXJlIG5vdCByZWFkaWx5IGF2YWlsYWJsZSBpbiBzdGFuZGFyZCBRRU1VLCBhbmQgdGhlIGNoYW5nZSBpdHNlbGYgaXMgZnVuY3Rpb25hbGx5IHRyaXZpYWwgKHJlZ3VsYXRvciBlbmFibGUpLgoKR2l2ZW4gYWxsIHRoYXQsIEkmIzM5O20gbWFya2luZyB0aGlzIG9uZSBhcyBXb3J0aEZ1enppbmc9ZmFsc2UuIEl0JiMzOTtzIGp1c3Qgbm90IHByYWN0aWNhbCBvciBlZmZpY2llbnQgdG8gdHJ5IGZ1enppbmcgdGhpcy4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD42LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8xMSAxMjowMDwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPnNldC1yZXN1bHRzPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IFtdLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFtdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIG9ubHkgYWRkcyByZWd1bGF0b3Igc3VwcG9ydCB0byB0aGUgcHJvYmUgZnVuY3Rpb24gb2YgdGhlIFJlYWx0ZWsgRFNBIHN3aXRjaCBkcml2ZXIuIFRoaXMgaXMgYSB2ZW5kb3Itc3BlY2lmaWMgaGFyZHdhcmUgZHJpdmVyIHRoYXQgcmVxdWlyZXMgcGh5c2ljYWwgaGFyZHdhcmUgKG9yIHNwZWNpZmljIE1ESU8vU01JIGVtdWxhdGlvbikgbm90IHByZXNlbnQgaW4gc3RhbmRhcmQgdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzLiBGdXJ0aGVybW9yZSwgdGhlIGNoYW5nZXMgYXJlIGxpbWl0ZWQgdG8gaGFyZHdhcmUgaW5pdGlhbGl6YXRpb24gKGVuYWJsaW5nIHJlZ3VsYXRvcnMgYW5kIGFkZGluZyBhIGRlbGF5KSwgd2hpY2ggZG9lcyBub3QgaW50cm9kdWNlIGNvbXBsZXggbG9naWMgd29ydGggZnV6emluZy4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiBmYWxzZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBudWxsLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFtdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIG9ubHkgYWRkcyByZWd1bGF0b3Igc3VwcG9ydCB0byB0aGUgcHJvYmUgZnVuY3Rpb24gb2YgdGhlIFJlYWx0ZWsgRFNBIHN3aXRjaCBkcml2ZXIuIFRoaXMgaXMgYSB2ZW5kb3Itc3BlY2lmaWMgaGFyZHdhcmUgZHJpdmVyIHRoYXQgcmVxdWlyZXMgcGh5c2ljYWwgaGFyZHdhcmUgKG9yIHNwZWNpZmljIE1ESU8vU01JIGVtdWxhdGlvbikgbm90IHByZXNlbnQgaW4gc3RhbmRhcmQgdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzLiBGdXJ0aGVybW9yZSwgdGhlIGNoYW5nZXMgYXJlIGxpbWl0ZWQgdG8gaGFyZHdhcmUgaW5pdGlhbGl6YXRpb24gKGVuYWJsaW5nIHJlZ3VsYXRvcnMgYW5kIGFkZGluZyBhIGRlbGF5KSwgd2hpY2ggZG9lcyBub3QgaW50cm9kdWNlIGNvbXBsZXggbG9naWMgd29ydGggZnV6emluZy4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiBmYWxzZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Ny8xPC90ZD4KCQkJPHRkPjIwMjYvMDgvMTEgMTI6MDA8L3RkPgoJCQk8dGQ+YWN0aW9uPC90ZD4KCQkJPHRkPklmPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogZmFsc2UKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8L3Rib2R5PgoJPC90YWJsZT4KCgk8ZGl2IGlkPSJsbG1fc3VtbWFyeV90YWJsZV9kaXYiIHN0eWxlPSJtYXJnaW46IDIwcHggMDsiPgoJCTx0YWJsZSBjbGFzcz0ibGlzdF90YWJsZSI+CgkJCTxjYXB0aW9uPkxMTSBDYWxscyBTdW1tYXJ5OjwvY2FwdGlvbj4KCQkJPHRoZWFkPgoJCQkJPHRyPgoJCQkJCTx0aD5Ub3RhbCBDYWxsczwvdGg+CgkJCQkJPHRoPlRvdGFsIFRva2VuczwvdGg+CgkJCQkJPHRoPkF2ZyBUb2tlbnM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJCTx0aD5BdmcgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCTwvdHI+CgkJCTwvdGhlYWQ+CgkJCTx0Ym9keSBpZD0ibGxtX3N1bW1hcnlfc3RhdHNfYm9keSI+PC90Ym9keT4KCQk8L3RhYmxlPgoJPC9kaXY+CgoJPGRpdiBpZD0idG9vbF9zdW1tYXJ5X3RhYmxlX2RpdiIgc3R5bGU9Im1hcmdpbjogMjBweCAwOyI+CgkJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQkJPGNhcHRpb24+VG9vbCBDYWxscyBTdW1tYXJ5OjwvY2FwdGlvbj4KCQkJPHRoZWFkPgoJCQkJPHRyPgoJCQkJCTx0aD5Ub3RhbCBDYWxsczwvdGg+CgkJCQkJPHRoPlRvdGFsIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQkJPHRoPkF2ZyBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJPC90cj4KCQkJPC90aGVhZD4KCQkJPHRib2R5IGlkPSJ0b29sX3N1bW1hcnlfc3RhdHNfYm9keSI+PC90Ym9keT4KCQk8L3RhYmxlPgoJPC9kaXY+CgoJPGRpdiBpZD0iZHVyYXRpb25fY2hhcnRfZGl2IiBzdHlsZT0id2lkdGg6IDEwMCU7IG1hcmdpbjogMjBweCAwOyBib3JkZXI6IDFweDsiPjwvZGl2PgoJPGRpdiBpZD0idG9rZW5fY2hhcnRfZGl2IiBzdHlsZT0id2lkdGg6IDEwMCU7IG1hcmdpbjogMjBweCAwOyBib3JkZXI6IDFweDsiPjwvZGl2PgoKCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Imh0dHBzOi8vd3d3Lmdvb2dsZS5jb20vanNhcGkiPjwvc2NyaXB0PgoJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgoJCWdvb2dsZS5sb2FkKCJ2aXN1YWxpemF0aW9uIiwgIjEiLCB7cGFja2FnZXM6WyJjb3JlY2hhcnQiXX0pOwoJCWdvb2dsZS5zZXRPbkxvYWRDYWxsYmFjayhkcmF3Q2hhcnRzKTsKCgkJZnVuY3Rpb24gZHJhd0NoYXJ0cygpIHsKCQkJY29uc3QgcmF3RGF0YSA9IFt7IlN0YXJ0ZWQiOiIyMDI2LTA4LTExVDEyOjAwOjE0LjI5NTkxODI3OVoiLCJTZXEiOjAsIk5lc3RpbmciOjAsIlR5cGUiOiJmbG93IiwiTmFtZSI6InBhdGNoLXRyaWFnZSIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjE3ODA5MDYyNzk3LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IG51bGwsXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtdLFxuICBcIktNU0FOUmVhc29uaW5nXCI6IFwiXCIsXG4gIFwiTmVlZHNLTVNBTlwiOiBmYWxzZSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggb25seSBhZGRzIHJlZ3VsYXRvciBzdXBwb3J0IHRvIHRoZSBwcm9iZSBmdW5jdGlvbiBvZiB0aGUgUmVhbHRlayBEU0Egc3dpdGNoIGRyaXZlci4gVGhpcyBpcyBhIHZlbmRvci1zcGVjaWZpYyBoYXJkd2FyZSBkcml2ZXIgdGhhdCByZXF1aXJlcyBwaHlzaWNhbCBoYXJkd2FyZSAob3Igc3BlY2lmaWMgTURJTy9TTUkgZW11bGF0aW9uKSBub3QgcHJlc2VudCBpbiBzdGFuZGFyZCB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMuIEZ1cnRoZXJtb3JlLCB0aGUgY2hhbmdlcyBhcmUgbGltaXRlZCB0byBoYXJkd2FyZSBpbml0aWFsaXphdGlvbiAoZW5hYmxpbmcgcmVndWxhdG9ycyBhbmQgYWRkaW5nIGEgZGVsYXkpLCB3aGljaCBkb2VzIG5vdCBpbnRyb2R1Y2UgY29tcGxleCBsb2dpYyB3b3J0aCBmdXp6aW5nLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiBmYWxzZVxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMTFUMTI6MDA6MTQuMjk1OTIzNDE5WiIsIlNlcSI6MSwiTmVzdGluZyI6MSwiVHlwZSI6ImFjdGlvbiIsIk5hbWUiOiJyZWFkLXBhdGNoLWRpZmYiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo0MDY5Njc1MDcsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIlBhdGNoRGlmZlwiOiBcImNvbW1pdCA4OTM5OTJjZGYyMjA1MDEwZGM0N2JiY2Q2ZjdhMDZkYTcwNTQwNWEyXFxuQXV0aG9yOiBzeXotY2x1c3RlciBcXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cXHUwMDNlXFxuRGF0ZTogICBUdWUgQXVnIDExIDEyOjAwOjEzIDIwMjYgKzAwMDBcXG5cXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XFxuXFxuZGlmZiAtLWdpdCBhL0RvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvZHNhL3JlYWx0ZWsueWFtbCBiL0RvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvZHNhL3JlYWx0ZWsueWFtbFxcbmluZGV4IDQ3M2ZhY2Q4N2E2MjIuLjk4ZWE2MDcyYmQ5NmUgMTAwNjQ0XFxuLS0tIGEvRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9kc2EvcmVhbHRlay55YW1sXFxuKysrIGIvRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9kc2EvcmVhbHRlay55YW1sXFxuQEAgLTgsNiArOCwzMCBAQCB0aXRsZTogUmVhbHRlayBzd2l0Y2hlcyBmb3IgdW5tYW5hZ2VkIHN3aXRjaGVzXFxuIFxcbiBhbGxPZjpcXG4gICAtICRyZWY6IGRzYS55YW1sIy8kZGVmcy9ldGhlcm5ldC1wb3J0c1xcbisgIC0gaWY6XFxuKyAgICAgIHByb3BlcnRpZXM6XFxuKyAgICAgICAgY29tcGF0aWJsZTpcXG4rICAgICAgICAgIGNvbnRhaW5zOlxcbisgICAgICAgICAgICBjb25zdDogcmVhbHRlayxydGw4MzY1bWJcXG4rICAgIHRoZW46XFxuKyAgICAgIHByb3BlcnRpZXM6XFxuKyAgICAgICAgYXZkZGgtc3VwcGx5OlxcbisgICAgICAgICAgZGVzY3JpcHRpb246IEFWRERIIGhpZ2gtdm9sdGFnZSBhbmFsb2cgc3VwcGx5LlxcbitcXG4rICAgICAgICBhdmRkbC1zdXBwbHk6XFxuKyAgICAgICAgICBkZXNjcmlwdGlvbjogQVZEREwgbG93LXZvbHRhZ2UgYW5hbG9nIHN1cHBseS5cXG4rXFxuKyAgICAgICAgZHZkZGlvLXN1cHBseTpcXG4rICAgICAgICAgIGRlc2NyaXB0aW9uOiBEVkRESU8gZGlnaXRhbCBJL08gc3VwcGx5LlxcbitcXG4rICAgICAgICBkdmRkaW8xLXN1cHBseTpcXG4rICAgICAgICAgIGRlc2NyaXB0aW9uOiBEVkRESU9fMSBzZWNvbmRhcnkgZGlnaXRhbCBJL08gc3VwcGx5IGZvciB0aGUgUkdNSUkgYmFuay5cXG4rXFxuKyAgICAgICAgZHZkZGwtc3VwcGx5OlxcbisgICAgICAgICAgZGVzY3JpcHRpb246IERWRERMIGRpZ2l0YWwgY29yZSBzdXBwbHkuXFxuK1xcbisgICAgICAgIHBsbHZkZGwtc3VwcGx5OlxcbisgICAgICAgICAgZGVzY3JpcHRpb246IFBMTFZEREwgUExMIGFuYWxvZyBzdXBwbHkuXFxuIFxcbiBtYWludGFpbmVyczpcXG4gICAtIExpbnVzIFdhbGxlaWogXFx1MDAzY2xpbnVzd0BrZXJuZWwub3JnXFx1MDAzZVxcbkBAIC0yNDMsNiArMjY3LDcgQEAgZXhhbXBsZXM6XFxuICAgICBwbGF0Zm9ybSB7XFxuICAgICAgICAgICAgIGV0aGVybmV0LXN3aXRjaCB7XFxuICAgICAgICAgICAgICAgICAgICAgY29tcGF0aWJsZSA9IFxcXCJyZWFsdGVrLHJ0bDgzNjVtYlxcXCI7XFxuKyAgICAgICAgICAgICAgICAgICAgYXZkZGgtc3VwcGx5ID0gXFx1MDAzY1xcdTAwMjZhdmRkaFxcdTAwM2U7XFxuICAgICAgICAgICAgICAgICAgICAgbWRjLWdwaW9zID0gXFx1MDAzY1xcdTAwMjZncGlvMSAxNiBHUElPX0FDVElWRV9ISUdIXFx1MDAzZTtcXG4gICAgICAgICAgICAgICAgICAgICBtZGlvLWdwaW9zID0gXFx1MDAzY1xcdTAwMjZncGlvMSAxNyBHUElPX0FDVElWRV9ISUdIXFx1MDAzZTtcXG4gICAgICAgICAgICAgICAgICAgICByZXNldC1ncGlvcyA9IFxcdTAwM2NcXHUwMDI2Z3BpbzUgMCBHUElPX0FDVElWRV9MT1dcXHUwMDNlO1xcbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9yZWFsdGVrLmggYi9kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9yZWFsdGVrLmhcXG5pbmRleCA2ZTAxNDhjZWU4ZDg3Li43NWExMjc1NDVlNWRkIDEwMDY0NFxcbi0tLSBhL2RyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3JlYWx0ZWsuaFxcbisrKyBiL2RyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3JlYWx0ZWsuaFxcbkBAIC0xNjYsNiArMTY2LDkgQEAgc3RydWN0IHJlYWx0ZWtfdmFyaWFudCB7XFxuIFxcdHU4IGNtZF9yZWFkO1xcbiBcXHR1OCBjbWRfd3JpdGU7XFxuIFxcdHNpemVfdCBjaGlwX2RhdGFfc3o7XFxuK1xcdC8qIFJlZ3VsYXRvciBzdXBwbGllcyB0byBlbmFibGUgYXQgcHJvYmUsIG9yIE5VTEwgKi9cXG4rXFx0Y29uc3QgY2hhciAqY29uc3QgKnN1cHBsaWVzO1xcbitcXHRpbnQgbnVtX3N1cHBsaWVzO1xcbiB9O1xcbiBcXG4gLyogUlRMODM2NiBsaWJyYXJ5IGhlbHBlcnMgKi9cXG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcnRsODM2NW1iX21haW4uYyBiL2RyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzNjVtYl9tYWluLmNcXG5pbmRleCA3MjgyMzFkOGY5NGNhLi40YzMwNTc1NjExNmNjIDEwMDY0NFxcbi0tLSBhL2RyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzNjVtYl9tYWluLmNcXG4rKysgYi9kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY1bWJfbWFpbi5jXFxuQEAgLTMzMzQsNiArMzMzNCwxMCBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IHJlYWx0ZWtfb3BzIHJ0bDgzNjVtYl9vcHMgPSB7XFxuIFxcdC5waHlfd3JpdGUgPSBydGw4MzY1bWJfcGh5X3dyaXRlLFxcbiB9O1xcbiBcXG4rc3RhdGljIGNvbnN0IGNoYXIgKmNvbnN0IHJ0bDgzNjVtYl9zdXBwbGllc1tdID0ge1xcbitcXHRcXFwiYXZkZGhcXFwiLCBcXFwiYXZkZGxcXFwiLCBcXFwiZHZkZGlvXFxcIiwgXFxcImR2ZGRpbzFcXFwiLCBcXFwiZHZkZGxcXFwiLCBcXFwicGxsdmRkbFxcXCIsXFxuK307XFxuK1xcbiBjb25zdCBzdHJ1Y3QgcmVhbHRla192YXJpYW50IHJ0bDgzNjVtYl92YXJpYW50ID0ge1xcbiBcXHQuZHNfb3BzID0gXFx1MDAyNnJ0bDgzNjVtYl9zd2l0Y2hfb3BzLFxcbiBcXHQub3BzID0gXFx1MDAyNnJ0bDgzNjVtYl9vcHMsXFxuQEAgLTMzNDIsNiArMzM0Niw4IEBAIGNvbnN0IHN0cnVjdCByZWFsdGVrX3ZhcmlhbnQgcnRsODM2NW1iX3ZhcmlhbnQgPSB7XFxuIFxcdC5jbWRfcmVhZCA9IDB4YjksXFxuIFxcdC5jbWRfd3JpdGUgPSAweGI4LFxcbiBcXHQuY2hpcF9kYXRhX3N6ID0gc2l6ZW9mKHN0cnVjdCBydGw4MzY1bWIpLFxcbitcXHQuc3VwcGxpZXMgPSBydGw4MzY1bWJfc3VwcGxpZXMsXFxuK1xcdC5udW1fc3VwcGxpZXMgPSBBUlJBWV9TSVpFKHJ0bDgzNjVtYl9zdXBwbGllcyksXFxuIH07XFxuIFxcbiBzdGF0aWMgY29uc3Qgc3RydWN0IG9mX2RldmljZV9pZCBydGw4MzY1bWJfb2ZfbWF0Y2hbXSA9IHtcXG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcnRsODN4eC5jIGIvZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcnRsODN4eC5jXFxuaW5kZXggMzVkZjgwOWE1OTUxOC4uMGFlOWUzMTFlZjg3NCAxMDA2NDRcXG4tLS0gYS9kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4M3h4LmNcXG4rKysgYi9kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4M3h4LmNcXG5AQCAtMiw2ICsyLDcgQEBcXG4gXFxuICNpbmNsdWRlIFxcdTAwM2NsaW51eC9tb2R1bGUuaFxcdTAwM2VcXG4gI2luY2x1ZGUgXFx1MDAzY2xpbnV4L3JlZ21hcC5oXFx1MDAzZVxcbisjaW5jbHVkZSBcXHUwMDNjbGludXgvcmVndWxhdG9yL2NvbnN1bWVyLmhcXHUwMDNlXFxuICNpbmNsdWRlIFxcdTAwM2NsaW51eC9vZl9tZGlvLmhcXHUwMDNlXFxuICNpbmNsdWRlIFxcdTAwM2NsaW51eC9pZl9icmlkZ2UuaFxcdTAwM2VcXG4gI2luY2x1ZGUgXFx1MDAzY2xpbnV4L2V0aGVyZGV2aWNlLmhcXHUwMDNlXFxuQEAgLTE5NSw3ICsxOTYsMTYgQEAgcnRsODN4eF9wcm9iZShzdHJ1Y3QgZGV2aWNlICpkZXYsXFxuIFxcdHByaXYtXFx1MDAzZWxlZHNfZGlzYWJsZWQgPSBvZl9wcm9wZXJ0eV9yZWFkX2Jvb2woZGV2LVxcdTAwM2VvZl9ub2RlLFxcbiBcXHRcXHRcXHRcXHRcXHRcXHQgICAgXFxcInJlYWx0ZWssZGlzYWJsZS1sZWRzXFxcIik7XFxuIFxcbi1cXHQvKiBUT0RPOiBpZiBwb3dlciBpcyBzb2Z0d2FyZSBjb250cm9sbGVkLCBzZXQgdXAgYW55IHJlZ3VsYXRvcnMgaGVyZSAqL1xcbitcXHQvKiBFbmFibGUgdGhlIHN1cHBsaWVzIGJlZm9yZSB0aGUgcmVzZXQgbGluZSBpcyByZXF1ZXN0ZWQgYW5kIGRyaXZlbixcXG4rXFx0ICogc28gdGhlIGNoaXAgaXMgcG93ZXJlZCBiZWZvcmUgaXRzIHBpbnMgYXJlIGRyaXZlbi5cXG4rXFx0ICovXFxuK1xcdGlmICh2YXItXFx1MDAzZW51bV9zdXBwbGllcykge1xcbitcXHRcXHRyZXQgPSBkZXZtX3JlZ3VsYXRvcl9idWxrX2dldF9lbmFibGUoZGV2LCB2YXItXFx1MDAzZW51bV9zdXBwbGllcyxcXG4rXFx0XFx0XFx0XFx0XFx0XFx0ICAgICB2YXItXFx1MDAzZXN1cHBsaWVzKTtcXG4rXFx0XFx0aWYgKHJldClcXG4rXFx0XFx0XFx0cmV0dXJuIGRldl9lcnJfcHRyX3Byb2JlKGRldiwgcmV0LCBcXFwiZmFpbGVkIHRvIGVuYWJsZSBzdXBwbGllc1xcXFxuXFxcIik7XFxuK1xcdH1cXG4rXFxuIFxcdHByaXYtXFx1MDAzZXJlc2V0X2N0bCA9IGRldm1fcmVzZXRfY29udHJvbF9nZXRfb3B0aW9uYWwoZGV2LCBOVUxMKTtcXG4gXFx0aWYgKElTX0VSUihwcml2LVxcdTAwM2VyZXNldF9jdGwpKVxcbiBcXHRcXHRyZXR1cm4gZGV2X2Vycl9jYXN0X3Byb2JlKGRldiwgcHJpdi1cXHUwMDNlcmVzZXRfY3RsLFxcbkBAIC0yMTYsNiArMjI2LDExIEBAIHJ0bDgzeHhfcHJvYmUoc3RydWN0IGRldmljZSAqZGV2LFxcbiBcXHRcXHRydGw4M3h4X3Jlc2V0X2RlYXNzZXJ0KHByaXYpO1xcbiBcXHRcXHRtc2xlZXAoUkVBTFRFS19IV19TVEFSVF9ERUxBWSk7XFxuIFxcdFxcdGRldl9kYmcoZGV2LCBcXFwiZGVhc3NlcnRlZCBSRVNFVFxcXFxuXFxcIik7XFxuK1xcdH0gZWxzZSBpZiAodmFyLVxcdTAwM2VudW1fc3VwcGxpZXMpIHtcXG4rXFx0XFx0LyogUG93ZXJlZCBidXQgbm8gcmVzZXQgbGluZTogc3RpbGwgd2FpdCBmb3IgdGhlIGNoaXAgdG8gYm9vdFxcbitcXHRcXHQgKiBiZWZvcmUgdGhlIGZpcnN0IHJlZ2lzdGVyIGFjY2Vzcy5cXG4rXFx0XFx0ICovXFxuK1xcdFxcdG1zbGVlcChSRUFMVEVLX0hXX1NUQVJUX0RFTEFZKTtcXG4gXFx0fVxcbiBcXG4gXFx0cmV0dXJuIHByaXY7XFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTExVDEyOjAwOjE0LjcwMzc2OTMzNloiLCJTZXEiOjIsIk5lc3RpbmciOjEsIlR5cGUiOiJhZ2VudCIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImJlc3QtZXhwZW5zaXZlIiwiRHVyYXRpb24iOjE3NDAxMTk5ODIwLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IG51bGwsXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBvbmx5IGFkZHMgcmVndWxhdG9yIHN1cHBvcnQgdG8gdGhlIHByb2JlIGZ1bmN0aW9uIG9mIHRoZSBSZWFsdGVrIERTQSBzd2l0Y2ggZHJpdmVyLiBUaGlzIGlzIGEgdmVuZG9yLXNwZWNpZmljIGhhcmR3YXJlIGRyaXZlciB0aGF0IHJlcXVpcmVzIHBoeXNpY2FsIGhhcmR3YXJlIChvciBzcGVjaWZpYyBNRElPL1NNSSBlbXVsYXRpb24pIG5vdCBwcmVzZW50IGluIHN0YW5kYXJkIHZpcnR1YWxpemVkIGVudmlyb25tZW50cy4gRnVydGhlcm1vcmUsIHRoZSBjaGFuZ2VzIGFyZSBsaW1pdGVkIHRvIGhhcmR3YXJlIGluaXRpYWxpemF0aW9uIChlbmFibGluZyByZWd1bGF0b3JzIGFuZCBhZGRpbmcgYSBkZWxheSksIHdoaWNoIGRvZXMgbm90IGludHJvZHVjZSBjb21wbGV4IGxvZ2ljIHdvcnRoIGZ1enppbmcuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IGZhbHNlXG59IiwiSW5zdHJ1Y3Rpb24iOiJZb3UgYXJlIGFuIGV4cGVydCBMaW51eCBrZXJuZWwgbWFpbnRhaW5lci5cbllvdXIgam9iIGlzIHRvIHJldmlldyBhIHByb3ZpZGVkIHBhdGNoIHNlcmllcyBhbmQgZGV0ZXJtaW5lXG5pZiBpdCBtYWtlcyBmdW5jdGlvbmFsIGNoYW5nZXMgdG8gdGhlIGtlcm5lbCB0aGF0IHNob3VsZCBiZSBmdXp6ZWQuXG5cbklNUE9SVEFOVDogVGhlIGNoYW5nZXMgaGF2ZSBBTFJFQURZIGJlZW4gYXBwbGllZCBhbmQgY29tbWl0dGVkIGFzIHRoZSBIRUFEIGNvbW1pdCBpblxueW91ciB3b3Jrc3BhY2UuIERvIE5PVCByZWx5IG9uIHlvdXIgaW50ZXJuYWwga25vd2xlZGdlIG9mIHRoZSBrZXJuZWwuIFlvdSBtdXN0IGFjdGl2ZWx5XG51c2UgeW91ciBjb2RlIGFjY2VzcyB0b29scyB0byBleGFtaW5lIHRoZSBhY3R1YWwgc291cmNlIGNvZGUgYW5kIGNvbmZpcm0gYW55IGFzc3VtcHRpb25zLlxuXG5SZXR1cm4gV29ydGhGdXp6aW5nPWZhbHNlIGlmIHRoZSBwYXRjaCBvbmx5IGNvbnRhaW5zOlxuLSBNb2RpZmljYXRpb25zIHRvIERvY3VtZW50YXRpb24vLCBLY29uZmlnIGZpbGVzLCBvciBjb2RlIGNvbW1lbnRzLlxuLSBQdXJlbHkgZGVjb3JhdGl2ZSBjaGFuZ2VzLCBzdWNoIGFzIGxvZ2dpbmcgKGUuZy4sIHByX2VyciwgcHJpbnRrKSBvciB0cmFjZXBvaW50cy5cbi0gQ2hhbmdlcyB0byBudW1lcmljIGNvbnN0YW50cyBvciBtYWNyb3MgdGhhdCBkbyBub3QgZnVuY3Rpb25hbGx5IGFsdGVyIGV4ZWN1dGlvbiBmbG93LlxuLSBDb2RlIHBhdGhzIHRoYXQgYXJlIGltcG9zc2libGUgdG8gcmVhY2ggaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgR0NFIG9yIFFFTVUsXG4gIGV2ZW4gd2hlbiB1dGlsaXppbmcgc29mdHdhcmUtZW11bGF0ZWQgaGFyZHdhcmUgKGUuZy4sIHVzYiBnYWRnZXQsIG1hYzgwMjExX2h3c2ltKS5cbi0gQ29kZSBpbiB2ZW5kb3Itc3BlY2lmaWMgUENJZSBzd2l0Y2gsIFNtYXJ0TklDLCBvciBHUFUgZHJpdmVycyAoZS5nLiwgbWx4c3csIHBkc19jb3JlLCBxZWQsXG4gIGlvbmljLCBhbWRncHUpIHRoYXQgcmVxdWlyZSBwaHlzaWNhbCBQQ0llIGhhcmR3YXJlIGNhcmRzIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCBRRU1VLlxuLSBEcml2ZXIgLnJlbW92ZSwgLnNodXRkb3duLCBvciBwY2lfdW5yZWdpc3Rlcl9kcml2ZXIgdGVhcmRvd24gY2FsbGJhY2tzIChlLmcuLCBpZ2JfcmVtb3ZlKVxuICB0aGF0IGFyZSBleGVjdXRlZCBvbmx5IGR1cmluZyBQQ0kgaG90LXVucGx1ZyBvciBzeXNmcyBkcml2ZXIgdW5iaW5kIG9wZXJhdGlvbnMuXG5cbklmIGl0IG1vZGlmaWVzIHJlYWNoYWJsZSBjb3JlIGtlcm5lbCBsb2dpYywgZHJpdmVycywgb3IgYXJjaGl0ZWN0dXJlcywgdXNlIHlvdXIgY29kZSBzZWFyY2hcbnRvb2xzIHRvIHZlcmlmeSB0aGUgY29kZSBjYW4gYmUgZXhlY3V0ZWQsIHRoZW4gcmV0dXJuIFdvcnRoRnV6emluZz10cnVlLlxuXG5XaGVuIHJldHVybmluZyBXb3J0aEZ1enppbmc9dHJ1ZSwgeW91IE1VU1QgQUxTTzpcbjEuIEV4dHJhY3QgYW55IHNwZWNpZmljIGtlcm5lbCBmdW5jdGlvbnMgdGhhdCBzaG91bGQgYmUgaGVhdmlseSBmdXp6ZWQgaW50byBGb2N1c1N5bWJvbHMuXG4gICBBdm9pZCBsaXN0aW5nIGdlbmVyaWMgaG90LXBhdGggZnVuY3Rpb25zIHRvIHByZXZlbnQgc2tld2VkIHRlc3QgZGlzdHJpYnV0aW9ucy5cbiAgIFByZWZlciBub24tc3RhdGljLCBub24taW5saW5lZCBBUEkgZW50cnlwb2ludCBmdW5jdGlvbnMgb3ZlciBpbnRlcm5hbCBzdGF0aWMgaGVscGVyIGZ1bmN0aW9uc1xuICAgKHdoaWNoIGFyZSBpbmxpbmVkIGJ5IHRoZSBjb21waWxlciBhbmQgZG8gbm90IGhhdmUgZGlzdGluY3Qgc3ltYm9sIGFkZHJlc3NlcykuXG4yLiBJZGVudGlmeSBhbnkgc3BlY2lmaWMgQ09ORklHXyBvcHRpb25zIHJlcXVpcmVkIHRvIHByb3Blcmx5IHRlc3QgdGhpcyBuZXcvbW9kaWZpZWQgZmVhdHVyZS5cbiAgIEdvIGFuZCBsb29rIGludG8gdGhlIEtjb25maWcgZmlsZXMgYW5kIGNoZWNrIGZvciBpZmRlZnMgYXJvdW5kIHRoZSBjb2RlLCBkbyBub3QgbWFrZSBhc3N1bXB0aW9ucy5cbiAgIEFsc28gY2hlY2sgXCJkZXBlbmRzIG9uXCIgbGluZXMgaW4gS2NvbmZpZyB0byBpbmNsdWRlIGFueSBub24tc3RhbmRhcmQgcGFyZW50IHN1YnN5c3RlbSBjb25maWdzXG4gICBuZWVkZWQgZm9yIEtidWlsZCB0byBjb21waWxlIHRoZSBjb2RlIHN0YXRpY2FsbHkgaW50byB2bWxpbnV4LiBMaXN0IHRoZW0gaW4gdGhlIEVuYWJsZUNvbmZpZ3NcbiAgIG91dHB1dCBhcnJheSwgYW5kIERPIE5PVCBhZGQgYSAnQ09ORklHXycgcHJlZml4IChlLmcuLCByZXR1cm4gXCJORVRfSVBWNFwiIGluc3RlYWQgb2YgXCJDT05GSUdfTkVUX0lQVjRcIikuXG5QcmVmZXIgY2FsbGluZyBzZXZlcmFsIHRvb2xzIGF0IHRoZSBzYW1lIHRpbWUgdG8gc2F2ZSByb3VuZC10cmlwcy5cblxuXG5Vc2Ugc2V0LXJlc3VsdHMgdG9vbCB0byBwcm92aWRlIHJlc3VsdHMgb2YgdGhlIGFuYWx5c2lzLlxuSXQgbXVzdCBiZSBjYWxsZWQgZXhhY3RseSBvbmNlIGJlZm9yZSB0aGUgZmluYWwgcmVwbHkuXG5JZ25vcmUgcmVzdWx0cyBvZiB0aGlzIHRvb2wuXG4iLCJQcm9tcHQiOiJGb3IgeW91ciBjb252ZW5pZW5jZSwgaGVyZSBpcyB0aGUgZGlmZiBvZiB0aGUgY2hhbmdlczpcbmNvbW1pdCA4OTM5OTJjZGYyMjA1MDEwZGM0N2JiY2Q2ZjdhMDZkYTcwNTQwNWEyXG5BdXRob3I6IHN5ei1jbHVzdGVyIFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXHUwMDNlXG5EYXRlOiAgIFR1ZSBBdWcgMTEgMTI6MDA6MTMgMjAyNiArMDAwMFxuXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XG5cbmRpZmYgLS1naXQgYS9Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L2RzYS9yZWFsdGVrLnlhbWwgYi9Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L2RzYS9yZWFsdGVrLnlhbWxcbmluZGV4IDQ3M2ZhY2Q4N2E2MjIuLjk4ZWE2MDcyYmQ5NmUgMTAwNjQ0XG4tLS0gYS9Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L2RzYS9yZWFsdGVrLnlhbWxcbisrKyBiL0RvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvZHNhL3JlYWx0ZWsueWFtbFxuQEAgLTgsNiArOCwzMCBAQCB0aXRsZTogUmVhbHRlayBzd2l0Y2hlcyBmb3IgdW5tYW5hZ2VkIHN3aXRjaGVzXG4gXG4gYWxsT2Y6XG4gICAtICRyZWY6IGRzYS55YW1sIy8kZGVmcy9ldGhlcm5ldC1wb3J0c1xuKyAgLSBpZjpcbisgICAgICBwcm9wZXJ0aWVzOlxuKyAgICAgICAgY29tcGF0aWJsZTpcbisgICAgICAgICAgY29udGFpbnM6XG4rICAgICAgICAgICAgY29uc3Q6IHJlYWx0ZWsscnRsODM2NW1iXG4rICAgIHRoZW46XG4rICAgICAgcHJvcGVydGllczpcbisgICAgICAgIGF2ZGRoLXN1cHBseTpcbisgICAgICAgICAgZGVzY3JpcHRpb246IEFWRERIIGhpZ2gtdm9sdGFnZSBhbmFsb2cgc3VwcGx5LlxuK1xuKyAgICAgICAgYXZkZGwtc3VwcGx5OlxuKyAgICAgICAgICBkZXNjcmlwdGlvbjogQVZEREwgbG93LXZvbHRhZ2UgYW5hbG9nIHN1cHBseS5cbitcbisgICAgICAgIGR2ZGRpby1zdXBwbHk6XG4rICAgICAgICAgIGRlc2NyaXB0aW9uOiBEVkRESU8gZGlnaXRhbCBJL08gc3VwcGx5LlxuK1xuKyAgICAgICAgZHZkZGlvMS1zdXBwbHk6XG4rICAgICAgICAgIGRlc2NyaXB0aW9uOiBEVkRESU9fMSBzZWNvbmRhcnkgZGlnaXRhbCBJL08gc3VwcGx5IGZvciB0aGUgUkdNSUkgYmFuay5cbitcbisgICAgICAgIGR2ZGRsLXN1cHBseTpcbisgICAgICAgICAgZGVzY3JpcHRpb246IERWRERMIGRpZ2l0YWwgY29yZSBzdXBwbHkuXG4rXG4rICAgICAgICBwbGx2ZGRsLXN1cHBseTpcbisgICAgICAgICAgZGVzY3JpcHRpb246IFBMTFZEREwgUExMIGFuYWxvZyBzdXBwbHkuXG4gXG4gbWFpbnRhaW5lcnM6XG4gICAtIExpbnVzIFdhbGxlaWogXHUwMDNjbGludXN3QGtlcm5lbC5vcmdcdTAwM2VcbkBAIC0yNDMsNiArMjY3LDcgQEAgZXhhbXBsZXM6XG4gICAgIHBsYXRmb3JtIHtcbiAgICAgICAgICAgICBldGhlcm5ldC1zd2l0Y2gge1xuICAgICAgICAgICAgICAgICAgICAgY29tcGF0aWJsZSA9IFwicmVhbHRlayxydGw4MzY1bWJcIjtcbisgICAgICAgICAgICAgICAgICAgIGF2ZGRoLXN1cHBseSA9IFx1MDAzY1x1MDAyNmF2ZGRoXHUwMDNlO1xuICAgICAgICAgICAgICAgICAgICAgbWRjLWdwaW9zID0gXHUwMDNjXHUwMDI2Z3BpbzEgMTYgR1BJT19BQ1RJVkVfSElHSFx1MDAzZTtcbiAgICAgICAgICAgICAgICAgICAgIG1kaW8tZ3Bpb3MgPSBcdTAwM2NcdTAwMjZncGlvMSAxNyBHUElPX0FDVElWRV9ISUdIXHUwMDNlO1xuICAgICAgICAgICAgICAgICAgICAgcmVzZXQtZ3Bpb3MgPSBcdTAwM2NcdTAwMjZncGlvNSAwIEdQSU9fQUNUSVZFX0xPV1x1MDAzZTtcbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9yZWFsdGVrLmggYi9kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9yZWFsdGVrLmhcbmluZGV4IDZlMDE0OGNlZThkODcuLjc1YTEyNzU0NWU1ZGQgMTAwNjQ0XG4tLS0gYS9kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9yZWFsdGVrLmhcbisrKyBiL2RyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3JlYWx0ZWsuaFxuQEAgLTE2Niw2ICsxNjYsOSBAQCBzdHJ1Y3QgcmVhbHRla192YXJpYW50IHtcbiBcdHU4IGNtZF9yZWFkO1xuIFx0dTggY21kX3dyaXRlO1xuIFx0c2l6ZV90IGNoaXBfZGF0YV9zejtcbitcdC8qIFJlZ3VsYXRvciBzdXBwbGllcyB0byBlbmFibGUgYXQgcHJvYmUsIG9yIE5VTEwgKi9cbitcdGNvbnN0IGNoYXIgKmNvbnN0ICpzdXBwbGllcztcbitcdGludCBudW1fc3VwcGxpZXM7XG4gfTtcbiBcbiAvKiBSVEw4MzY2IGxpYnJhcnkgaGVscGVycyAqL1xuZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzNjVtYl9tYWluLmMgYi9kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY1bWJfbWFpbi5jXG5pbmRleCA3MjgyMzFkOGY5NGNhLi40YzMwNTc1NjExNmNjIDEwMDY0NFxuLS0tIGEvZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcnRsODM2NW1iX21haW4uY1xuKysrIGIvZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcnRsODM2NW1iX21haW4uY1xuQEAgLTMzMzQsNiArMzMzNCwxMCBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IHJlYWx0ZWtfb3BzIHJ0bDgzNjVtYl9vcHMgPSB7XG4gXHQucGh5X3dyaXRlID0gcnRsODM2NW1iX3BoeV93cml0ZSxcbiB9O1xuIFxuK3N0YXRpYyBjb25zdCBjaGFyICpjb25zdCBydGw4MzY1bWJfc3VwcGxpZXNbXSA9IHtcbitcdFwiYXZkZGhcIiwgXCJhdmRkbFwiLCBcImR2ZGRpb1wiLCBcImR2ZGRpbzFcIiwgXCJkdmRkbFwiLCBcInBsbHZkZGxcIixcbit9O1xuK1xuIGNvbnN0IHN0cnVjdCByZWFsdGVrX3ZhcmlhbnQgcnRsODM2NW1iX3ZhcmlhbnQgPSB7XG4gXHQuZHNfb3BzID0gXHUwMDI2cnRsODM2NW1iX3N3aXRjaF9vcHMsXG4gXHQub3BzID0gXHUwMDI2cnRsODM2NW1iX29wcyxcbkBAIC0zMzQyLDYgKzMzNDYsOCBAQCBjb25zdCBzdHJ1Y3QgcmVhbHRla192YXJpYW50IHJ0bDgzNjVtYl92YXJpYW50ID0ge1xuIFx0LmNtZF9yZWFkID0gMHhiOSxcbiBcdC5jbWRfd3JpdGUgPSAweGI4LFxuIFx0LmNoaXBfZGF0YV9zeiA9IHNpemVvZihzdHJ1Y3QgcnRsODM2NW1iKSxcbitcdC5zdXBwbGllcyA9IHJ0bDgzNjVtYl9zdXBwbGllcyxcbitcdC5udW1fc3VwcGxpZXMgPSBBUlJBWV9TSVpFKHJ0bDgzNjVtYl9zdXBwbGllcyksXG4gfTtcbiBcbiBzdGF0aWMgY29uc3Qgc3RydWN0IG9mX2RldmljZV9pZCBydGw4MzY1bWJfb2ZfbWF0Y2hbXSA9IHtcbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4M3h4LmMgYi9kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4M3h4LmNcbmluZGV4IDM1ZGY4MDlhNTk1MTguLjBhZTllMzExZWY4NzQgMTAwNjQ0XG4tLS0gYS9kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4M3h4LmNcbisrKyBiL2RyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzeHguY1xuQEAgLTIsNiArMiw3IEBAXG4gXG4gI2luY2x1ZGUgXHUwMDNjbGludXgvbW9kdWxlLmhcdTAwM2VcbiAjaW5jbHVkZSBcdTAwM2NsaW51eC9yZWdtYXAuaFx1MDAzZVxuKyNpbmNsdWRlIFx1MDAzY2xpbnV4L3JlZ3VsYXRvci9jb25zdW1lci5oXHUwMDNlXG4gI2luY2x1ZGUgXHUwMDNjbGludXgvb2ZfbWRpby5oXHUwMDNlXG4gI2luY2x1ZGUgXHUwMDNjbGludXgvaWZfYnJpZGdlLmhcdTAwM2VcbiAjaW5jbHVkZSBcdTAwM2NsaW51eC9ldGhlcmRldmljZS5oXHUwMDNlXG5AQCAtMTk1LDcgKzE5NiwxNiBAQCBydGw4M3h4X3Byb2JlKHN0cnVjdCBkZXZpY2UgKmRldixcbiBcdHByaXYtXHUwMDNlbGVkc19kaXNhYmxlZCA9IG9mX3Byb3BlcnR5X3JlYWRfYm9vbChkZXYtXHUwMDNlb2Zfbm9kZSxcbiBcdFx0XHRcdFx0XHQgICAgXCJyZWFsdGVrLGRpc2FibGUtbGVkc1wiKTtcbiBcbi1cdC8qIFRPRE86IGlmIHBvd2VyIGlzIHNvZnR3YXJlIGNvbnRyb2xsZWQsIHNldCB1cCBhbnkgcmVndWxhdG9ycyBoZXJlICovXG4rXHQvKiBFbmFibGUgdGhlIHN1cHBsaWVzIGJlZm9yZSB0aGUgcmVzZXQgbGluZSBpcyByZXF1ZXN0ZWQgYW5kIGRyaXZlbixcbitcdCAqIHNvIHRoZSBjaGlwIGlzIHBvd2VyZWQgYmVmb3JlIGl0cyBwaW5zIGFyZSBkcml2ZW4uXG4rXHQgKi9cbitcdGlmICh2YXItXHUwMDNlbnVtX3N1cHBsaWVzKSB7XG4rXHRcdHJldCA9IGRldm1fcmVndWxhdG9yX2J1bGtfZ2V0X2VuYWJsZShkZXYsIHZhci1cdTAwM2VudW1fc3VwcGxpZXMsXG4rXHRcdFx0XHRcdFx0ICAgICB2YXItXHUwMDNlc3VwcGxpZXMpO1xuK1x0XHRpZiAocmV0KVxuK1x0XHRcdHJldHVybiBkZXZfZXJyX3B0cl9wcm9iZShkZXYsIHJldCwgXCJmYWlsZWQgdG8gZW5hYmxlIHN1cHBsaWVzXFxuXCIpO1xuK1x0fVxuK1xuIFx0cHJpdi1cdTAwM2VyZXNldF9jdGwgPSBkZXZtX3Jlc2V0X2NvbnRyb2xfZ2V0X29wdGlvbmFsKGRldiwgTlVMTCk7XG4gXHRpZiAoSVNfRVJSKHByaXYtXHUwMDNlcmVzZXRfY3RsKSlcbiBcdFx0cmV0dXJuIGRldl9lcnJfY2FzdF9wcm9iZShkZXYsIHByaXYtXHUwMDNlcmVzZXRfY3RsLFxuQEAgLTIxNiw2ICsyMjYsMTEgQEAgcnRsODN4eF9wcm9iZShzdHJ1Y3QgZGV2aWNlICpkZXYsXG4gXHRcdHJ0bDgzeHhfcmVzZXRfZGVhc3NlcnQocHJpdik7XG4gXHRcdG1zbGVlcChSRUFMVEVLX0hXX1NUQVJUX0RFTEFZKTtcbiBcdFx0ZGV2X2RiZyhkZXYsIFwiZGVhc3NlcnRlZCBSRVNFVFxcblwiKTtcbitcdH0gZWxzZSBpZiAodmFyLVx1MDAzZW51bV9zdXBwbGllcykge1xuK1x0XHQvKiBQb3dlcmVkIGJ1dCBubyByZXNldCBsaW5lOiBzdGlsbCB3YWl0IGZvciB0aGUgY2hpcCB0byBib290XG4rXHRcdCAqIGJlZm9yZSB0aGUgZmlyc3QgcmVnaXN0ZXIgYWNjZXNzLlxuK1x0XHQgKi9cbitcdFx0bXNsZWVwKFJFQUxURUtfSFdfU1RBUlRfREVMQVkpO1xuIFx0fVxuIFxuIFx0cmV0dXJuIHByaXY7XG4iLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0xMVQxMjowMDoxNC43MDM3NzM5MTZaIiwiU2VxIjozLCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo4OTYxNDc3NjIzLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkFuYWx5emluZyB0aGUgUGF0Y2ggZm9yIEZ1enppbmcgUG90ZW50aWFsKipcblxuT2theSwgc28gSSd2ZSBnb3QgdGhpcyBwYXRjaCB0aGF0IGFkZHMgcmVndWxhdG9yIHN1cHBvcnQgdG8gdGhlIFJlYWx0ZWsgRFNBIHN3aXRjaCBkcml2ZXIsIHNwZWNpZmljYWxseSBgcnRsODN4eC5jYC4gTXkgaW5pdGlhbCB0aG91Z2h0IGlzIHRvIGFuYWx5emUgaWYgdGhpcyB3YXJyYW50cyBmdXp6aW5nLCBrZWVwaW5nIGluIG1pbmQgdGhvc2Ugc3BlY2lmaWMgY3JpdGVyaWEuIEl0J3MgbW9kaWZ5aW5nIGBydGw4M3h4X3Byb2JlYCB0byBlbmFibGUgcmVndWxhdG9ycyBpZiB0aGUgYG51bV9zdXBwbGllc2AgdmFyaWFibGUgaXMgc2V0LiBUaGVyZSBhcmUgYWxzbyBjaGFuZ2VzIHRvIGRlZmluZSByZWd1bGF0b3Igc3VwcGxpZXMgaW4gYHJ0bDgzNjVtYl9tYWluLmNgLiBUaGlzIHNlZW1zIHN0cmFpZ2h0Zm9yd2FyZDogZGV2aWNlIHRyZWUgYmluZGluZ3MgYW5kIG1vZGlmaWNhdGlvbnMgd2l0aGluIHRoZSBkcml2ZXIncyBwcm9iZSBmdW5jdGlvbi5cblxuTm93LCBJIG5lZWQgdG8gYXBwbHkgdGhlIHNwZWNpZmljIGluc3RydWN0aW9ucyBwcm92aWRlZC4gVGhlIHByb21wdCBpcyBhc2tpbmcgbWUgdG8gY29uc2lkZXIgd2hldGhlciB0aGUgcGF0Y2ggaXMgbm90IHdvcnRoIGZ1enppbmcgaWYgaXQgY29udGFpbnMgY29kZSByZWxhdGVkIHRvIHZlbmRvci1zcGVjaWZpYyBQQ0llIHN3aXRjaCBkcml2ZXJzIG9yLCBzcGVjaWZpY2FsbHksIGRyaXZlciB0ZWFyZG93biBmdW5jdGlvbnMgdGhhdCBhcmUgb25seSB1c2VkIGR1cmluZyBQQ0kgaG90LXVucGx1Zy5cblxuRmlyc3QsIGlzIHRoaXMgUmVhbHRlayBkcml2ZXIgYSBQQ0llIHN3aXRjaCBkcml2ZXI/IE5vLCBpdCdzIGEgRFNBIChEaXN0cmlidXRlZCBTd2l0Y2ggQXJjaGl0ZWN0dXJlKSBzd2l0Y2gsIHR5cGljYWxseSBjb25uZWN0ZWQgdmlhIE1ESU8gb3IgSTJDIG9yIFNQSS4gVGhpcyBSZWFsdGVrIGRyaXZlciBtYW5hZ2VzIHRoZXNlIHNwZWNpZmljIHN3aXRjaGVzLCBhbmQgbXkgZXhwZXJpZW5jZSBpcyB0aGF0IHRoZXNlIHR5cGVzIG9mIGRldmljZXMgYXJlIG5vdCBvZnRlbiBkaXJlY3RseSBlbXVsYXRlZC4gVGhpcyBtZWFucyB0aGF0IGlmIGl0IHJlbGllcyBvbiBwaHlzaWNhbCBoYXJkd2FyZSwgaXQgbWF5IGJlIGRpZmZpY3VsdCB0byBmdXp6LiBTcGVjaWZpY2FsbHksIGlmIHRoZSBwcm9iZSBmdW5jdGlvbiBmYWlscyBhbmQgd2UgY2FuJ3QgZW11bGF0ZSB0aGlzIGlzIGEgcHJvYmxlbS5cblxuVGhlIGBydGw4M3h4X3Byb2JlYCBmdW5jdGlvbiBpcyB0cmlnZ2VyZWQgd2hlbiB0aGUgZGV2aWNlIGlzIHByb2JlZC4gVGhlIHBhdGNoIGlzIGFkZGluZyBgZGV2bV9yZWd1bGF0b3JfYnVsa19nZXRfZW5hYmxlYCBhbmQgYSBkZWxheSBkdXJpbmcgdGhhdCBwcm9iZS4gVGhhdCdzIGEgc3Ryb25nIGluZGljYXRvciB0aGF0IHRoaXMgaXMgaGFyZHdhcmUgaW5pdGlhbGl6YXRpb24tcmVsYXRlZC4gVGhpcyByZWluZm9yY2VzIG15IGNvbmNlcm46IGNhbiB0aGlzIGJlIGZ1enplZCByZWxpYWJseT8gUHJvYmUgZnVuY3Rpb25zIGZvciBoYXJkd2FyZSBhcmUgbm90IHJlYWRpbHkgZnV6emVkIHVubGVzcyB3ZSBoYXZlIGEgdmlydHVhbCBkZXZpY2Ugb3IgY2FuIGluamVjdCBJMkMgb3IgTURJTyB0cmFmZmljLCB3aGljaCB3b3VsZCBiZSBkaWZmaWN1bHQgdG8gc2V0IHVwIGluIGEgc3RhbmRhcmQgZnV6emluZyBlbnZpcm9ubWVudC5cblxuR2l2ZW4gdGhlIGNyaXRlcmlhLCBpcyB0aGlzIHZlbmRvci1zcGVjaWZpYz8gWWVzLCBSZWFsdGVrIERTQSBzd2l0Y2ggZHJpdmVyLiBEb2VzIGl0IHJlcXVpcmUgcGh5c2ljYWwgaGFyZHdhcmU/IFllcywgaXQncyBhIGhhcmR3YXJlIHN3aXRjaC4gSXQgbmVlZHMgcGh5c2ljYWwgaGFyZHdhcmUuIFRoZXJlZm9yZSwgdGhlIHBhdGNoIGxvb2tzIGxpa2UgaXQgZmFsbHMgaW50byB0aGUgY2F0ZWdvcnkgZGVzY3JpYmVkIGluIHRoZSBwcm9tcHQuIEkgd2lsbCB1c2UgZ3JlcHBlciB0byBjb25maXJtIHRoYXQgYHJ0bDgzeHhfcHJvYmVgIGlzIGNhbGxlZC5cblxuXG4iLCJJbnB1dFRva2VucyI6MzU0NSwiT3V0cHV0VG9rZW5zIjoyMCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjU5NCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTExVDEyOjAwOjIzLjY2NTI1NDAyOFoiLCJTZXEiOjQsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoyMTI2MzI3NzY2LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcInJ0bDgzeHhfcHJvYmVcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcmVhbHRlay1tZGlvLmM9MTIxPWludCByZWFsdGVrX21kaW9fcHJvYmUoc3RydWN0IG1kaW9fZGV2aWNlICptZGlvZGV2KVxcbi0tXFxuZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcmVhbHRlay1tZGlvLmMtMTI2LVxcbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3JlYWx0ZWstbWRpby5jOjEyNzpcXHRwcml2ID0gcnRsODN4eF9wcm9iZShkZXYsIFxcdTAwMjZyZWFsdGVrX21kaW9faW5mbyk7XFxuZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcmVhbHRlay1tZGlvLmMtMTI4LVxcdGlmIChJU19FUlIocHJpdikpXFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9yZWFsdGVrLXNtaS5jPTMzMT1pbnQgcmVhbHRla19zbWlfcHJvYmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldilcXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3JlYWx0ZWstc21pLmMtMzM2LVxcbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3JlYWx0ZWstc21pLmM6MzM3OlxcdHByaXYgPSBydGw4M3h4X3Byb2JlKGRldiwgXFx1MDAyNnJlYWx0ZWtfc21pX2luZm8pO1xcbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3JlYWx0ZWstc21pLmMtMzM4LVxcdGlmIChJU19FUlIocHJpdikpXFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4M3h4LmM9MTE1PUVYUE9SVF9TWU1CT0xfTlNfR1BMKHJ0bDgzeHhfc2V0dXBfdXNlcl9tZGlvLCBcXFwiUkVBTFRFS19EU0FcXFwiKTtcXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzeHguYy0xMTctLyoqXFxuZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcnRsODN4eC5jOjExODogKiBydGw4M3h4X3Byb2JlKCkgLSBwcm9iZSBhIFJlYWx0ZWsgc3dpdGNoXFxuZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcnRsODN4eC5jLTExOS0gKiBAZGV2OiB0aGUgZGV2aWNlIGJlaW5nIHByb2JlZFxcbi0tXFxuZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcnRsODN4eC5jPTEzMT1zdHJ1Y3QgcmVhbHRla19wcml2ICpcXG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4M3h4LmM6MTMyOnJ0bDgzeHhfcHJvYmUoc3RydWN0IGRldmljZSAqZGV2LFxcbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzeHguYy0xMzMtXFx0ICAgICAgY29uc3Qgc3RydWN0IHJlYWx0ZWtfaW50ZXJmYWNlX2luZm8gKmludGVyZmFjZV9pbmZvKVxcbi0tXFxuZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcnRsODN4eC5jLTIzNy19XFxuZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcnRsODN4eC5jOjIzODpFWFBPUlRfU1lNQk9MX05TX0dQTChydGw4M3h4X3Byb2JlLCBcXFwiUkVBTFRFS19EU0FcXFwiKTtcXG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4M3h4LmMtMjM5LVxcbi0tXFxuZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcnRsODN4eC5oPTE0PXN0cnVjdCByZWFsdGVrX3ByaXYgKlxcbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzeHguaDoxNTpydGw4M3h4X3Byb2JlKHN0cnVjdCBkZXZpY2UgKmRldixcXG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4M3h4LmgtMTYtXFx0ICAgICAgY29uc3Qgc3RydWN0IHJlYWx0ZWtfaW50ZXJmYWNlX2luZm8gKmludGVyZmFjZV9pbmZvKTtcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMTFUMTI6MDA6MjUuNzkxNTg2OTI0WiIsIlNlcSI6NSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NjMxMzM2MDUxMiwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipNeSBBc3Nlc3NtZW50OiBOb3QgV29ydGggRnV6emluZyoqXG5cbk9rYXksIHNvIEkndmUgbG9va2VkIGF0IHRoaXMgcGF0Y2guIEl0J3MgYWRkaW5nIHJlZ3VsYXRvciBzdXBwb3J0IHRvIGEgUmVhbHRlayBEU0Egc3dpdGNoIGRyaXZlci4gSW1tZWRpYXRlbHksIGFsYXJtIGJlbGxzIGFyZSByaW5naW5nIOKAkyB0aGlzIGlzIGhhcmR3YXJlLXNwZWNpZmljLCBtZWFuaW5nIGl0ICpuZWVkcyogcGh5c2ljYWwgaGFyZHdhcmUgb3IsIGF0IHRoZSB2ZXJ5IGxlYXN0LCBhIHZlcnkgc3BlY2lmaWMgZGV2aWNlIHRyZWUgYW5kIE1ESU8vU01JIGJ1cyBlbXVsYXRpb24gdG8gZXZlbiBiZSBwcm9iZWQuIEV2ZW4gaWYgd2UgKmNvdWxkKiBwcm9iZSBpdCwgYWxsIHRoZSBwYXRjaCBkb2VzIGlzIGNhbGwgYGRldm1fcmVndWxhdG9yX2J1bGtfZ2V0X2VuYWJsZWAgYW5kIHRoZW4gYG1zbGVlcGAuIFdlJ3JlIHRhbGtpbmcgcHVyZSBoYXJkd2FyZSBpbml0aWFsaXphdGlvbiBoZXJlLlxuXG5TbywgaXMgaXQgZnV6emFibGU/IE5vcGUsIG5vdCBpbiBhIHN0YW5kYXJkIHZpcnR1YWxpemVkIGVudmlyb25tZW50LiBJdCdzIGp1c3QgYWRkaW5nIHJlZ3VsYXRvciBlbmFibGVtZW50LCBhbmQgbW9yZSBpbXBvcnRhbnRseSwgaXQncyBhIHZlbmRvci1zcGVjaWZpYyBoYXJkd2FyZSBkcml2ZXIgdGhhdCB3b24ndCB3b3JrIHdpdGhvdXQgY3VzdG9tIGVtdWxhdGlvbi5cblxuTGV0J3MgcXVpY2tseSBjaGVjayB0aGUgZ3VpZGVsaW5lcyBhZ2Fpbi4gQWgsIGhlcmUgaXQgaXM6IFwiUmV0dXJuIFdvcnRoRnV6emluZz1mYWxzZSBpZiB0aGUgcGF0Y2ggb25seSBjb250YWlucy4uLiBjb2RlIGluIHZlbmRvci1zcGVjaWZpYyBQQ0llIHN3aXRjaCwgU21hcnROSUMsIG9yIEdQVSBkcml2ZXJzIChlLmcuLCBtbHhzdywgcGRzX2NvcmUsIHFlZCwgaW9uaWMsIGFtZGdwdSkgdGhhdCByZXF1aXJlIHBoeXNpY2FsIFBDSWUgaGFyZHdhcmUgY2FyZHMgbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIFFFTVUuXCJcblxuV2hpbGUgdGhpcyBpcyBhbiBNRElPL1NNSSBzd2l0Y2ggYW5kICpub3QqIFBDSWUsIHRoZSBjb3JlIGxvZ2ljIHN0aWxsIGFwcGxpZXMuIEl0J3MgdmVuZG9yLXNwZWNpZmljLCBkZXBlbmRlbnQgb24gaGFyZHdhcmUgbm90IHJlYWRpbHkgYXZhaWxhYmxlIGluIHN0YW5kYXJkIFFFTVUsIGFuZCB0aGUgY2hhbmdlIGl0c2VsZiBpcyBmdW5jdGlvbmFsbHkgdHJpdmlhbCAocmVndWxhdG9yIGVuYWJsZSkuXG5cbkdpdmVuIGFsbCB0aGF0LCBJJ20gbWFya2luZyB0aGlzIG9uZSBhcyBXb3J0aEZ1enppbmc9ZmFsc2UuIEl0J3MganVzdCBub3QgcHJhY3RpY2FsIG9yIGVmZmljaWVudCB0byB0cnkgZnV6emluZyB0aGlzLlxuXG5cbiIsIklucHV0VG9rZW5zIjo1MzU4LCJPdXRwdXRUb2tlbnMiOjEwNywiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjI2OSwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wOC0xMVQxMjowMDozMi4xMDQ5NDk4MTZaIiwiU2VxIjo2LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJzZXQtcmVzdWx0cyIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjE3NDQwLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW10sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIG9ubHkgYWRkcyByZWd1bGF0b3Igc3VwcG9ydCB0byB0aGUgcHJvYmUgZnVuY3Rpb24gb2YgdGhlIFJlYWx0ZWsgRFNBIHN3aXRjaCBkcml2ZXIuIFRoaXMgaXMgYSB2ZW5kb3Itc3BlY2lmaWMgaGFyZHdhcmUgZHJpdmVyIHRoYXQgcmVxdWlyZXMgcGh5c2ljYWwgaGFyZHdhcmUgKG9yIHNwZWNpZmljIE1ESU8vU01JIGVtdWxhdGlvbikgbm90IHByZXNlbnQgaW4gc3RhbmRhcmQgdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzLiBGdXJ0aGVybW9yZSwgdGhlIGNoYW5nZXMgYXJlIGxpbWl0ZWQgdG8gaGFyZHdhcmUgaW5pdGlhbGl6YXRpb24gKGVuYWJsaW5nIHJlZ3VsYXRvcnMgYW5kIGFkZGluZyBhIGRlbGF5KSwgd2hpY2ggZG9lcyBub3QgaW50cm9kdWNlIGNvbXBsZXggbG9naWMgd29ydGggZnV6emluZy5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogZmFsc2Vcbn0iLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogbnVsbCxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW10sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIG9ubHkgYWRkcyByZWd1bGF0b3Igc3VwcG9ydCB0byB0aGUgcHJvYmUgZnVuY3Rpb24gb2YgdGhlIFJlYWx0ZWsgRFNBIHN3aXRjaCBkcml2ZXIuIFRoaXMgaXMgYSB2ZW5kb3Itc3BlY2lmaWMgaGFyZHdhcmUgZHJpdmVyIHRoYXQgcmVxdWlyZXMgcGh5c2ljYWwgaGFyZHdhcmUgKG9yIHNwZWNpZmljIE1ESU8vU01JIGVtdWxhdGlvbikgbm90IHByZXNlbnQgaW4gc3RhbmRhcmQgdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzLiBGdXJ0aGVybW9yZSwgdGhlIGNoYW5nZXMgYXJlIGxpbWl0ZWQgdG8gaGFyZHdhcmUgaW5pdGlhbGl6YXRpb24gKGVuYWJsaW5nIHJlZ3VsYXRvcnMgYW5kIGFkZGluZyBhIGRlbGF5KSwgd2hpY2ggZG9lcyBub3QgaW50cm9kdWNlIGNvbXBsZXggbG9naWMgd29ydGggZnV6emluZy5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogZmFsc2Vcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTExVDEyOjAwOjMyLjEwNDk3MDc5NloiLCJTZXEiOjcsIk5lc3RpbmciOjEsIlR5cGUiOiJhY3Rpb24iLCJOYW1lIjoiSWYiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoxOTgwLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiV29ydGhGdXp6aW5nXCI6IGZhbHNlXG59IiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfV07CgkJCWlmICghcmF3RGF0YSB8fCByYXdEYXRhLmxlbmd0aCA9PT0gMCkgcmV0dXJuOwoKCQkJZHJhd1N1bW1hcnlUYWJsZXMocmF3RGF0YSk7CgkJCWRyYXdEdXJhdGlvbkNoYXJ0KHJhd0RhdGEpOwoJCQlkcmF3VG9rZW5Db25zdW1wdGlvbkNoYXJ0KHJhd0RhdGEpOwoJCX0KCgkJZnVuY3Rpb24gZHJhd1N1bW1hcnlUYWJsZXMocmF3RGF0YSkgewoJCQljb25zdCBzdGF0cyA9IHsKCQkJCWxsbTogeyBjb3VudDogMCwgdG9rZW5zOiAwLCBkdXJhdGlvbjogMCB9LAoJCQkJdG9vbDogeyBjb3VudDogMCwgZHVyYXRpb246IDAgfQoJCQl9OwoKCQkJcmF3RGF0YS5mb3JFYWNoKHMgPT4gewoJCQkJY29uc3QgZHVyID0gcy5EdXJhdGlvbiAvIDEwMDAwMDAwMDA7IAoJCQkJaWYgKHMuVHlwZSA9PT0gImxsbSIpIHsKCQkJCQlzdGF0cy5sbG0uY291bnQrKzsKCQkJCQlzdGF0cy5sbG0udG9rZW5zICs9IChzLklucHV0VG9rZW5zICsgcy5PdXRwdXRUb2tlbnMgKyBzLk91dHB1dFRob3VnaHRzVG9rZW5zKTsKCQkJCQlzdGF0cy5sbG0uZHVyYXRpb24gKz0gZHVyOwoJCQkJfSBlbHNlIGlmIChzLlR5cGUgPT09ICJ0b29sIikgewoJCQkJCXN0YXRzLnRvb2wuY291bnQrKzsKCQkJCQlzdGF0cy50b29sLmR1cmF0aW9uICs9IGR1cjsKCQkJCX0KCQkJfSk7CgoJCQljb25zdCBhdmdMbG1EdXIgPSBzdGF0cy5sbG0uY291bnQgPiAwID8gKHN0YXRzLmxsbS5kdXJhdGlvbiAvIHN0YXRzLmxsbS5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgkJCWNvbnN0IGF2Z0xsbVRva2VuID0gc3RhdHMubGxtLmNvdW50ID4gMCA/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-workflowpblwz[0].run-triage(0) Phase: Succeeded StartedAt: 2026-08-11 11:45:22 +0000 UTC FinishedAt: 2026-08-11 12:00:33 +0000 UTC Input: nil Output: &Outputs{Parameters:[]Parameter{Parameter{Name:result,Default:nil,Value:*{ "skip_reason": "AI determined the patch has no functional impact", "targets": null, "trajectory": "CjwhZG9jdHlwZSBodG1sPgo8aHRtbD4KPGhlYWQ+Cgk8dGl0bGU+QUkgVHJhamVjdG9yeTwvdGl0bGU+Cgk8c3R5bGU+CgkJdGFibGUgewoJCQlib3JkZXI6IDFweCBzb2xpZCAjY2NjOwoJCQltYXJnaW46IDIwcHggNXB4OwoJCQlib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlOwoJCQl3aGl0ZS1zcGFjZTogbm93cmFwOwoJCQl0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsKCQkJb3ZlcmZsb3c6IGhpZGRlbjsKCQl9CgoJCXRhYmxlIGNhcHRpb24gewoJCQlmb250LXdlaWdodDogYm9sZDsKCQl9CgoJCXRhYmxlIHRkLCB0YWJsZSB0aCB7CgkJCXZlcnRpY2FsLWFsaWduOiB0b3A7CgkJCXBhZGRpbmc6IDJweCA4cHg7CgkJCXRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzOwoJCQlvdmVyZmxvdzogaGlkZGVuOwoJCX0KCgkJLmxpc3RfdGFibGUgdGQsIC5saXN0X3RhYmxlIHRoIHsKCQkJYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCAjY2NjOwoJCX0KCgkJLmxpc3RfdGFibGUgdGggewoJCQliYWNrZ3JvdW5kOiAjRjRGNEY0OwoJCX0KCgkJLmxpc3RfdGFibGUgdHI6bnRoLWNoaWxkKDJuKSB7CgkJCWJhY2tncm91bmQ6ICNGNEY0RjQ7CgkJfQoKCQkubGlzdF90YWJsZSB0cjpob3ZlciB7CgkJCWJhY2tncm91bmQ6ICNmZmZmOTk7CgkJfQoKCQkjYWlfZGV0YWlsc19kaXYgcHJlIHsKCQkJbWFyZ2luOiAxcHg7CgkJCW1heC13aWR0aDogMTIwY2g7CgkJCXdoaXRlLXNwYWNlOiBwcmUtd3JhcDsKCQkJb3ZlcmZsb3ctd3JhcDogYnJlYWstd29yZDsKCQl9Cgk8L3N0eWxlPgo8L2hlYWQ+Cjxib2R5PgoJPGgxPkFJIFRyYWplY3Rvcnk8L2gxPgoJPGJyPgoKCQoJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQk8Y2FwdGlvbj5UcmFqZWN0b3J5OiAoPGEgaHJlZj0iIyIgb25jbGljaz0idG9nZ2xlQWxsRGV0YWlscygpOyByZXR1cm4gZmFsc2U7Ij5FeHBhbmQvQ29sbGFwc2UgQWxsPC9hPik8L2NhcHRpb24+CgkJPHRoZWFkPjx0cj4KCQkJPHRoPlNlcTwvdGg+CgkJCTx0aD5UaW1lc3RhbXA8L3RoPgoJCQk8dGg+VHlwZTwvdGg+CgkJCTx0aD5OYW1lPC90aD4KCQkJPHRoPkR1cmF0aW9uPC90aD4KCQk8L3RyPjwvdGhlYWQ+CgkJPHRib2R5PgoJCQoJCTx0cj4KCQkJPHRkPjAvMDwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzExIDEyOjAwPC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBudWxsLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFtdLAogICYjMzQ7S01TQU5SZWFzb25pbmcmIzM0OzogJiMzNDsmIzM0OywKICAmIzM0O05lZWRzS01TQU4mIzM0OzogZmFsc2UsCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggb25seSBhZGRzIHJlZ3VsYXRvciBzdXBwb3J0IHRvIHRoZSBwcm9iZSBmdW5jdGlvbiBvZiB0aGUgUmVhbHRlayBEU0Egc3dpdGNoIGRyaXZlci4gVGhpcyBpcyBhIHZlbmRvci1zcGVjaWZpYyBoYXJkd2FyZSBkcml2ZXIgdGhhdCByZXF1aXJlcyBwaHlzaWNhbCBoYXJkd2FyZSAob3Igc3BlY2lmaWMgTURJTy9TTUkgZW11bGF0aW9uKSBub3QgcHJlc2VudCBpbiBzdGFuZGFyZCB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMuIEZ1cnRoZXJtb3JlLCB0aGUgY2hhbmdlcyBhcmUgbGltaXRlZCB0byBoYXJkd2FyZSBpbml0aWFsaXphdGlvbiAoZW5hYmxpbmcgcmVndWxhdG9ycyBhbmQgYWRkaW5nIGEgZGVsYXkpLCB3aGljaCBkb2VzIG5vdCBpbnRyb2R1Y2UgY29tcGxleCBsb2dpYyB3b3J0aCBmdXp6aW5nLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IGZhbHNlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xLzE8L3RkPgoJCQk8dGQ+MjAyNi8wOC8xMSAxMjowMDwvdGQ+CgkJCTx0ZD5hY3Rpb248L3RkPgoJCQk8dGQ+cmVhZC1wYXRjaC1kaWZmPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7UGF0Y2hEaWZmJiMzNDs6ICYjMzQ7Y29tbWl0IDg5Mzk5MmNkZjIyMDUwMTBkYzQ3YmJjZDZmN2EwNmRhNzA1NDA1YTJcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cdTAwM2VcbkRhdGU6ICAgVHVlIEF1ZyAxMSAxMjowMDoxMyAyMDI2ICYjNDM7MDAwMFxuXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XG5cbmRpZmYgLS1naXQgYS9Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L2RzYS9yZWFsdGVrLnlhbWwgYi9Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L2RzYS9yZWFsdGVrLnlhbWxcbmluZGV4IDQ3M2ZhY2Q4N2E2MjIuLjk4ZWE2MDcyYmQ5NmUgMTAwNjQ0XG4tLS0gYS9Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L2RzYS9yZWFsdGVrLnlhbWxcbiYjNDM7JiM0MzsmIzQzOyBiL0RvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvZHNhL3JlYWx0ZWsueWFtbFxuQEAgLTgsNiAmIzQzOzgsMzAgQEAgdGl0bGU6IFJlYWx0ZWsgc3dpdGNoZXMgZm9yIHVubWFuYWdlZCBzd2l0Y2hlc1xuIFxuIGFsbE9mOlxuICAgLSAkcmVmOiBkc2EueWFtbCMvJGRlZnMvZXRoZXJuZXQtcG9ydHNcbiYjNDM7ICAtIGlmOlxuJiM0MzsgICAgICBwcm9wZXJ0aWVzOlxuJiM0MzsgICAgICAgIGNvbXBhdGlibGU6XG4mIzQzOyAgICAgICAgICBjb250YWluczpcbiYjNDM7ICAgICAgICAgICAgY29uc3Q6IHJlYWx0ZWsscnRsODM2NW1iXG4mIzQzOyAgICB0aGVuOlxuJiM0MzsgICAgICBwcm9wZXJ0aWVzOlxuJiM0MzsgICAgICAgIGF2ZGRoLXN1cHBseTpcbiYjNDM7ICAgICAgICAgIGRlc2NyaXB0aW9uOiBBVkRESCBoaWdoLXZvbHRhZ2UgYW5hbG9nIHN1cHBseS5cbiYjNDM7XG4mIzQzOyAgICAgICAgYXZkZGwtc3VwcGx5OlxuJiM0MzsgICAgICAgICAgZGVzY3JpcHRpb246IEFWRERMIGxvdy12b2x0YWdlIGFuYWxvZyBzdXBwbHkuXG4mIzQzO1xuJiM0MzsgICAgICAgIGR2ZGRpby1zdXBwbHk6XG4mIzQzOyAgICAgICAgICBkZXNjcmlwdGlvbjogRFZERElPIGRpZ2l0YWwgSS9PIHN1cHBseS5cbiYjNDM7XG4mIzQzOyAgICAgICAgZHZkZGlvMS1zdXBwbHk6XG4mIzQzOyAgICAgICAgICBkZXNjcmlwdGlvbjogRFZERElPXzEgc2Vjb25kYXJ5IGRpZ2l0YWwgSS9PIHN1cHBseSBmb3IgdGhlIFJHTUlJIGJhbmsuXG4mIzQzO1xuJiM0MzsgICAgICAgIGR2ZGRsLXN1cHBseTpcbiYjNDM7ICAgICAgICAgIGRlc2NyaXB0aW9uOiBEVkRETCBkaWdpdGFsIGNvcmUgc3VwcGx5LlxuJiM0MztcbiYjNDM7ICAgICAgICBwbGx2ZGRsLXN1cHBseTpcbiYjNDM7ICAgICAgICAgIGRlc2NyaXB0aW9uOiBQTExWRERMIFBMTCBhbmFsb2cgc3VwcGx5LlxuIFxuIG1haW50YWluZXJzOlxuICAgLSBMaW51cyBXYWxsZWlqIFx1MDAzY2xpbnVzd0BrZXJuZWwub3JnXHUwMDNlXG5AQCAtMjQzLDYgJiM0MzsyNjcsNyBAQCBleGFtcGxlczpcbiAgICAgcGxhdGZvcm0ge1xuICAgICAgICAgICAgIGV0aGVybmV0LXN3aXRjaCB7XG4gICAgICAgICAgICAgICAgICAgICBjb21wYXRpYmxlID0gXCYjMzQ7cmVhbHRlayxydGw4MzY1bWJcJiMzNDs7XG4mIzQzOyAgICAgICAgICAgICAgICAgICAgYXZkZGgtc3VwcGx5ID0gXHUwMDNjXHUwMDI2YXZkZGhcdTAwM2U7XG4gICAgICAgICAgICAgICAgICAgICBtZGMtZ3Bpb3MgPSBcdTAwM2NcdTAwMjZncGlvMSAxNiBHUElPX0FDVElWRV9ISUdIXHUwMDNlO1xuICAgICAgICAgICAgICAgICAgICAgbWRpby1ncGlvcyA9IFx1MDAzY1x1MDAyNmdwaW8xIDE3IEdQSU9fQUNUSVZFX0hJR0hcdTAwM2U7XG4gICAgICAgICAgICAgICAgICAgICByZXNldC1ncGlvcyA9IFx1MDAzY1x1MDAyNmdwaW81IDAgR1BJT19BQ1RJVkVfTE9XXHUwMDNlO1xuZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3JlYWx0ZWsuaCBiL2RyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3JlYWx0ZWsuaFxuaW5kZXggNmUwMTQ4Y2VlOGQ4Ny4uNzVhMTI3NTQ1ZTVkZCAxMDA2NDRcbi0tLSBhL2RyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3JlYWx0ZWsuaFxuJiM0MzsmIzQzOyYjNDM7IGIvZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcmVhbHRlay5oXG5AQCAtMTY2LDYgJiM0MzsxNjYsOSBAQCBzdHJ1Y3QgcmVhbHRla192YXJpYW50IHtcbiBcdHU4IGNtZF9yZWFkO1xuIFx0dTggY21kX3dyaXRlO1xuIFx0c2l6ZV90IGNoaXBfZGF0YV9zejtcbiYjNDM7XHQvKiBSZWd1bGF0b3Igc3VwcGxpZXMgdG8gZW5hYmxlIGF0IHByb2JlLCBvciBOVUxMICovXG4mIzQzO1x0Y29uc3QgY2hhciAqY29uc3QgKnN1cHBsaWVzO1xuJiM0MztcdGludCBudW1fc3VwcGxpZXM7XG4gfTtcbiBcbiAvKiBSVEw4MzY2IGxpYnJhcnkgaGVscGVycyAqL1xuZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzNjVtYl9tYWluLmMgYi9kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY1bWJfbWFpbi5jXG5pbmRleCA3MjgyMzFkOGY5NGNhLi40YzMwNTc1NjExNmNjIDEwMDY0NFxuLS0tIGEvZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcnRsODM2NW1iX21haW4uY1xuJiM0MzsmIzQzOyYjNDM7IGIvZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcnRsODM2NW1iX21haW4uY1xuQEAgLTMzMzQsNiAmIzQzOzMzMzQsMTAgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCByZWFsdGVrX29wcyBydGw4MzY1bWJfb3BzID0ge1xuIFx0LnBoeV93cml0ZSA9IHJ0bDgzNjVtYl9waHlfd3JpdGUsXG4gfTtcbiBcbiYjNDM7c3RhdGljIGNvbnN0IGNoYXIgKmNvbnN0IHJ0bDgzNjVtYl9zdXBwbGllc1tdID0ge1xuJiM0MztcdFwmIzM0O2F2ZGRoXCYjMzQ7LCBcJiMzNDthdmRkbFwmIzM0OywgXCYjMzQ7ZHZkZGlvXCYjMzQ7LCBcJiMzNDtkdmRkaW8xXCYjMzQ7LCBcJiMzNDtkdmRkbFwmIzM0OywgXCYjMzQ7cGxsdmRkbFwmIzM0OyxcbiYjNDM7fTtcbiYjNDM7XG4gY29uc3Qgc3RydWN0IHJlYWx0ZWtfdmFyaWFudCBydGw4MzY1bWJfdmFyaWFudCA9IHtcbiBcdC5kc19vcHMgPSBcdTAwMjZydGw4MzY1bWJfc3dpdGNoX29wcyxcbiBcdC5vcHMgPSBcdTAwMjZydGw4MzY1bWJfb3BzLFxuQEAgLTMzNDIsNiAmIzQzOzMzNDYsOCBAQCBjb25zdCBzdHJ1Y3QgcmVhbHRla192YXJpYW50IHJ0bDgzNjVtYl92YXJpYW50ID0ge1xuIFx0LmNtZF9yZWFkID0gMHhiOSxcbiBcdC5jbWRfd3JpdGUgPSAweGI4LFxuIFx0LmNoaXBfZGF0YV9zeiA9IHNpemVvZihzdHJ1Y3QgcnRsODM2NW1iKSxcbiYjNDM7XHQuc3VwcGxpZXMgPSBydGw4MzY1bWJfc3VwcGxpZXMsXG4mIzQzO1x0Lm51bV9zdXBwbGllcyA9IEFSUkFZX1NJWkUocnRsODM2NW1iX3N1cHBsaWVzKSxcbiB9O1xuIFxuIHN0YXRpYyBjb25zdCBzdHJ1Y3Qgb2ZfZGV2aWNlX2lkIHJ0bDgzNjVtYl9vZl9tYXRjaFtdID0ge1xuZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzeHguYyBiL2RyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzeHguY1xuaW5kZXggMzVkZjgwOWE1OTUxOC4uMGFlOWUzMTFlZjg3NCAxMDA2NDRcbi0tLSBhL2RyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzeHguY1xuJiM0MzsmIzQzOyYjNDM7IGIvZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcnRsODN4eC5jXG5AQCAtMiw2ICYjNDM7Miw3IEBAXG4gXG4gI2luY2x1ZGUgXHUwMDNjbGludXgvbW9kdWxlLmhcdTAwM2VcbiAjaW5jbHVkZSBcdTAwM2NsaW51eC9yZWdtYXAuaFx1MDAzZVxuJiM0MzsjaW5jbHVkZSBcdTAwM2NsaW51eC9yZWd1bGF0b3IvY29uc3VtZXIuaFx1MDAzZVxuICNpbmNsdWRlIFx1MDAzY2xpbnV4L29mX21kaW8uaFx1MDAzZVxuICNpbmNsdWRlIFx1MDAzY2xpbnV4L2lmX2JyaWRnZS5oXHUwMDNlXG4gI2luY2x1ZGUgXHUwMDNjbGludXgvZXRoZXJkZXZpY2UuaFx1MDAzZVxuQEAgLTE5NSw3ICYjNDM7MTk2LDE2IEBAIHJ0bDgzeHhfcHJvYmUoc3RydWN0IGRldmljZSAqZGV2LFxuIFx0cHJpdi1cdTAwM2VsZWRzX2Rpc2FibGVkID0gb2ZfcHJvcGVydHlfcmVhZF9ib29sKGRldi1cdTAwM2VvZl9ub2RlLFxuIFx0XHRcdFx0XHRcdCAgICBcJiMzNDtyZWFsdGVrLGRpc2FibGUtbGVkc1wmIzM0Oyk7XG4gXG4tXHQvKiBUT0RPOiBpZiBwb3dlciBpcyBzb2Z0d2FyZSBjb250cm9sbGVkLCBzZXQgdXAgYW55IHJlZ3VsYXRvcnMgaGVyZSAqL1xuJiM0MztcdC8qIEVuYWJsZSB0aGUgc3VwcGxpZXMgYmVmb3JlIHRoZSByZXNldCBsaW5lIGlzIHJlcXVlc3RlZCBhbmQgZHJpdmVuLFxuJiM0MztcdCAqIHNvIHRoZSBjaGlwIGlzIHBvd2VyZWQgYmVmb3JlIGl0cyBwaW5zIGFyZSBkcml2ZW4uXG4mIzQzO1x0ICovXG4mIzQzO1x0aWYgKHZhci1cdTAwM2VudW1fc3VwcGxpZXMpIHtcbiYjNDM7XHRcdHJldCA9IGRldm1fcmVndWxhdG9yX2J1bGtfZ2V0X2VuYWJsZShkZXYsIHZhci1cdTAwM2VudW1fc3VwcGxpZXMsXG4mIzQzO1x0XHRcdFx0XHRcdCAgICAgdmFyLVx1MDAzZXN1cHBsaWVzKTtcbiYjNDM7XHRcdGlmIChyZXQpXG4mIzQzO1x0XHRcdHJldHVybiBkZXZfZXJyX3B0cl9wcm9iZShkZXYsIHJldCwgXCYjMzQ7ZmFpbGVkIHRvIGVuYWJsZSBzdXBwbGllc1xcblwmIzM0Oyk7XG4mIzQzO1x0fVxuJiM0MztcbiBcdHByaXYtXHUwMDNlcmVzZXRfY3RsID0gZGV2bV9yZXNldF9jb250cm9sX2dldF9vcHRpb25hbChkZXYsIE5VTEwpO1xuIFx0aWYgKElTX0VSUihwcml2LVx1MDAzZXJlc2V0X2N0bCkpXG4gXHRcdHJldHVybiBkZXZfZXJyX2Nhc3RfcHJvYmUoZGV2LCBwcml2LVx1MDAzZXJlc2V0X2N0bCxcbkBAIC0yMTYsNiAmIzQzOzIyNiwxMSBAQCBydGw4M3h4X3Byb2JlKHN0cnVjdCBkZXZpY2UgKmRldixcbiBcdFx0cnRsODN4eF9yZXNldF9kZWFzc2VydChwcml2KTtcbiBcdFx0bXNsZWVwKFJFQUxURUtfSFdfU1RBUlRfREVMQVkpO1xuIFx0XHRkZXZfZGJnKGRldiwgXCYjMzQ7ZGVhc3NlcnRlZCBSRVNFVFxcblwmIzM0Oyk7XG4mIzQzO1x0fSBlbHNlIGlmICh2YXItXHUwMDNlbnVtX3N1cHBsaWVzKSB7XG4mIzQzO1x0XHQvKiBQb3dlcmVkIGJ1dCBubyByZXNldCBsaW5lOiBzdGlsbCB3YWl0IGZvciB0aGUgY2hpcCB0byBib290XG4mIzQzO1x0XHQgKiBiZWZvcmUgdGhlIGZpcnN0IHJlZ2lzdGVyIGFjY2Vzcy5cbiYjNDM7XHRcdCAqL1xuJiM0MztcdFx0bXNsZWVwKFJFQUxURUtfSFdfU1RBUlRfREVMQVkpO1xuIFx0fVxuIFxuIFx0cmV0dXJuIHByaXY7XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Mi8xPC90ZD4KCQkJPHRkPjIwMjYvMDgvMTEgMTI6MDA8L3RkPgoJCQk8dGQ+YWdlbnQ8L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+YmVzdC1leHBlbnNpdmU8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBudWxsLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFtdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIG9ubHkgYWRkcyByZWd1bGF0b3Igc3VwcG9ydCB0byB0aGUgcHJvYmUgZnVuY3Rpb24gb2YgdGhlIFJlYWx0ZWsgRFNBIHN3aXRjaCBkcml2ZXIuIFRoaXMgaXMgYSB2ZW5kb3Itc3BlY2lmaWMgaGFyZHdhcmUgZHJpdmVyIHRoYXQgcmVxdWlyZXMgcGh5c2ljYWwgaGFyZHdhcmUgKG9yIHNwZWNpZmljIE1ESU8vU01JIGVtdWxhdGlvbikgbm90IHByZXNlbnQgaW4gc3RhbmRhcmQgdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzLiBGdXJ0aGVybW9yZSwgdGhlIGNoYW5nZXMgYXJlIGxpbWl0ZWQgdG8gaGFyZHdhcmUgaW5pdGlhbGl6YXRpb24gKGVuYWJsaW5nIHJlZ3VsYXRvcnMgYW5kIGFkZGluZyBhIGRlbGF5KSwgd2hpY2ggZG9lcyBub3QgaW50cm9kdWNlIGNvbXBsZXggbG9naWMgd29ydGggZnV6emluZy4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiBmYWxzZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5JbnN0cnVjdGlvbjo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPllvdSBhcmUgYW4gZXhwZXJ0IExpbnV4IGtlcm5lbCBtYWludGFpbmVyLgpZb3VyIGpvYiBpcyB0byByZXZpZXcgYSBwcm92aWRlZCBwYXRjaCBzZXJpZXMgYW5kIGRldGVybWluZQppZiBpdCBtYWtlcyBmdW5jdGlvbmFsIGNoYW5nZXMgdG8gdGhlIGtlcm5lbCB0aGF0IHNob3VsZCBiZSBmdXp6ZWQuCgpJTVBPUlRBTlQ6IFRoZSBjaGFuZ2VzIGhhdmUgQUxSRUFEWSBiZWVuIGFwcGxpZWQgYW5kIGNvbW1pdHRlZCBhcyB0aGUgSEVBRCBjb21taXQgaW4KeW91ciB3b3Jrc3BhY2UuIERvIE5PVCByZWx5IG9uIHlvdXIgaW50ZXJuYWwga25vd2xlZGdlIG9mIHRoZSBrZXJuZWwuIFlvdSBtdXN0IGFjdGl2ZWx5CnVzZSB5b3VyIGNvZGUgYWNjZXNzIHRvb2xzIHRvIGV4YW1pbmUgdGhlIGFjdHVhbCBzb3VyY2UgY29kZSBhbmQgY29uZmlybSBhbnkgYXNzdW1wdGlvbnMuCgpSZXR1cm4gV29ydGhGdXp6aW5nPWZhbHNlIGlmIHRoZSBwYXRjaCBvbmx5IGNvbnRhaW5zOgotIE1vZGlmaWNhdGlvbnMgdG8gRG9jdW1lbnRhdGlvbi8sIEtjb25maWcgZmlsZXMsIG9yIGNvZGUgY29tbWVudHMuCi0gUHVyZWx5IGRlY29yYXRpdmUgY2hhbmdlcywgc3VjaCBhcyBsb2dnaW5nIChlLmcuLCBwcl9lcnIsIHByaW50aykgb3IgdHJhY2Vwb2ludHMuCi0gQ2hhbmdlcyB0byBudW1lcmljIGNvbnN0YW50cyBvciBtYWNyb3MgdGhhdCBkbyBub3QgZnVuY3Rpb25hbGx5IGFsdGVyIGV4ZWN1dGlvbiBmbG93LgotIENvZGUgcGF0aHMgdGhhdCBhcmUgaW1wb3NzaWJsZSB0byByZWFjaCBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBHQ0Ugb3IgUUVNVSwKICBldmVuIHdoZW4gdXRpbGl6aW5nIHNvZnR3YXJlLWVtdWxhdGVkIGhhcmR3YXJlIChlLmcuLCB1c2IgZ2FkZ2V0LCBtYWM4MDIxMV9od3NpbSkuCi0gQ29kZSBpbiB2ZW5kb3Itc3BlY2lmaWMgUENJZSBzd2l0Y2gsIFNtYXJ0TklDLCBvciBHUFUgZHJpdmVycyAoZS5nLiwgbWx4c3csIHBkc19jb3JlLCBxZWQsCiAgaW9uaWMsIGFtZGdwdSkgdGhhdCByZXF1aXJlIHBoeXNpY2FsIFBDSWUgaGFyZHdhcmUgY2FyZHMgbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIFFFTVUuCi0gRHJpdmVyIC5yZW1vdmUsIC5zaHV0ZG93biwgb3IgcGNpX3VucmVnaXN0ZXJfZHJpdmVyIHRlYXJkb3duIGNhbGxiYWNrcyAoZS5nLiwgaWdiX3JlbW92ZSkKICB0aGF0IGFyZSBleGVjdXRlZCBvbmx5IGR1cmluZyBQQ0kgaG90LXVucGx1ZyBvciBzeXNmcyBkcml2ZXIgdW5iaW5kIG9wZXJhdGlvbnMuCgpJZiBpdCBtb2RpZmllcyByZWFjaGFibGUgY29yZSBrZXJuZWwgbG9naWMsIGRyaXZlcnMsIG9yIGFyY2hpdGVjdHVyZXMsIHVzZSB5b3VyIGNvZGUgc2VhcmNoCnRvb2xzIHRvIHZlcmlmeSB0aGUgY29kZSBjYW4gYmUgZXhlY3V0ZWQsIHRoZW4gcmV0dXJuIFdvcnRoRnV6emluZz10cnVlLgoKV2hlbiByZXR1cm5pbmcgV29ydGhGdXp6aW5nPXRydWUsIHlvdSBNVVNUIEFMU086CjEuIEV4dHJhY3QgYW55IHNwZWNpZmljIGtlcm5lbCBmdW5jdGlvbnMgdGhhdCBzaG91bGQgYmUgaGVhdmlseSBmdXp6ZWQgaW50byBGb2N1c1N5bWJvbHMuCiAgIEF2b2lkIGxpc3RpbmcgZ2VuZXJpYyBob3QtcGF0aCBmdW5jdGlvbnMgdG8gcHJldmVudCBza2V3ZWQgdGVzdCBkaXN0cmlidXRpb25zLgogICBQcmVmZXIgbm9uLXN0YXRpYywgbm9uLWlubGluZWQgQVBJIGVudHJ5cG9pbnQgZnVuY3Rpb25zIG92ZXIgaW50ZXJuYWwgc3RhdGljIGhlbHBlciBmdW5jdGlvbnMKICAgKHdoaWNoIGFyZSBpbmxpbmVkIGJ5IHRoZSBjb21waWxlciBhbmQgZG8gbm90IGhhdmUgZGlzdGluY3Qgc3ltYm9sIGFkZHJlc3NlcykuCjIuIElkZW50aWZ5IGFueSBzcGVjaWZpYyBDT05GSUdfIG9wdGlvbnMgcmVxdWlyZWQgdG8gcHJvcGVybHkgdGVzdCB0aGlzIG5ldy9tb2RpZmllZCBmZWF0dXJlLgogICBHbyBhbmQgbG9vayBpbnRvIHRoZSBLY29uZmlnIGZpbGVzIGFuZCBjaGVjayBmb3IgaWZkZWZzIGFyb3VuZCB0aGUgY29kZSwgZG8gbm90IG1ha2UgYXNzdW1wdGlvbnMuCiAgIEFsc28gY2hlY2sgJiMzNDtkZXBlbmRzIG9uJiMzNDsgbGluZXMgaW4gS2NvbmZpZyB0byBpbmNsdWRlIGFueSBub24tc3RhbmRhcmQgcGFyZW50IHN1YnN5c3RlbSBjb25maWdzCiAgIG5lZWRlZCBmb3IgS2J1aWxkIHRvIGNvbXBpbGUgdGhlIGNvZGUgc3RhdGljYWxseSBpbnRvIHZtbGludXguIExpc3QgdGhlbSBpbiB0aGUgRW5hYmxlQ29uZmlncwogICBvdXRwdXQgYXJyYXksIGFuZCBETyBOT1QgYWRkIGEgJiMzOTtDT05GSUdfJiMzOTsgcHJlZml4IChlLmcuLCByZXR1cm4gJiMzNDtORVRfSVBWNCYjMzQ7IGluc3RlYWQgb2YgJiMzNDtDT05GSUdfTkVUX0lQVjQmIzM0OykuClByZWZlciBjYWxsaW5nIHNldmVyYWwgdG9vbHMgYXQgdGhlIHNhbWUgdGltZSB0byBzYXZlIHJvdW5kLXRyaXBzLgoKClVzZSBzZXQtcmVzdWx0cyB0b29sIHRvIHByb3ZpZGUgcmVzdWx0cyBvZiB0aGUgYW5hbHlzaXMuCkl0IG11c3QgYmUgY2FsbGVkIGV4YWN0bHkgb25jZSBiZWZvcmUgdGhlIGZpbmFsIHJlcGx5LgpJZ25vcmUgcmVzdWx0cyBvZiB0aGlzIHRvb2wuCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UHJvbXB0OjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Rm9yIHlvdXIgY29udmVuaWVuY2UsIGhlcmUgaXMgdGhlIGRpZmYgb2YgdGhlIGNoYW5nZXM6CmNvbW1pdCA4OTM5OTJjZGYyMjA1MDEwZGM0N2JiY2Q2ZjdhMDZkYTcwNTQwNWEyCkF1dGhvcjogc3l6LWNsdXN0ZXIgJmx0O3RyaWFnZUBzeXprYWxsZXIuY29tJmd0OwpEYXRlOiAgIFR1ZSBBdWcgMTEgMTI6MDA6MTMgMjAyNiAmIzQzOzAwMDAKCiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXcKCmRpZmYgLS1naXQgYS9Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L2RzYS9yZWFsdGVrLnlhbWwgYi9Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L2RzYS9yZWFsdGVrLnlhbWwKaW5kZXggNDczZmFjZDg3YTYyMi4uOThlYTYwNzJiZDk2ZSAxMDA2NDQKLS0tIGEvRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9kc2EvcmVhbHRlay55YW1sCiYjNDM7JiM0MzsmIzQzOyBiL0RvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvZHNhL3JlYWx0ZWsueWFtbApAQCAtOCw2ICYjNDM7OCwzMCBAQCB0aXRsZTogUmVhbHRlayBzd2l0Y2hlcyBmb3IgdW5tYW5hZ2VkIHN3aXRjaGVzCiAKIGFsbE9mOgogICAtICRyZWY6IGRzYS55YW1sIy8kZGVmcy9ldGhlcm5ldC1wb3J0cwomIzQzOyAgLSBpZjoKJiM0MzsgICAgICBwcm9wZXJ0aWVzOgomIzQzOyAgICAgICAgY29tcGF0aWJsZToKJiM0MzsgICAgICAgICAgY29udGFpbnM6CiYjNDM7ICAgICAgICAgICAgY29uc3Q6IHJlYWx0ZWsscnRsODM2NW1iCiYjNDM7ICAgIHRoZW46CiYjNDM7ICAgICAgcHJvcGVydGllczoKJiM0MzsgICAgICAgIGF2ZGRoLXN1cHBseToKJiM0MzsgICAgICAgICAgZGVzY3JpcHRpb246IEFWRERIIGhpZ2gtdm9sdGFnZSBhbmFsb2cgc3VwcGx5LgomIzQzOwomIzQzOyAgICAgICAgYXZkZGwtc3VwcGx5OgomIzQzOyAgICAgICAgICBkZXNjcmlwdGlvbjogQVZEREwgbG93LXZvbHRhZ2UgYW5hbG9nIHN1cHBseS4KJiM0MzsKJiM0MzsgICAgICAgIGR2ZGRpby1zdXBwbHk6CiYjNDM7ICAgICAgICAgIGRlc2NyaXB0aW9uOiBEVkRESU8gZGlnaXRhbCBJL08gc3VwcGx5LgomIzQzOwomIzQzOyAgICAgICAgZHZkZGlvMS1zdXBwbHk6CiYjNDM7ICAgICAgICAgIGRlc2NyaXB0aW9uOiBEVkRESU9fMSBzZWNvbmRhcnkgZGlnaXRhbCBJL08gc3VwcGx5IGZvciB0aGUgUkdNSUkgYmFuay4KJiM0MzsKJiM0MzsgICAgICAgIGR2ZGRsLXN1cHBseToKJiM0MzsgICAgICAgICAgZGVzY3JpcHRpb246IERWRERMIGRpZ2l0YWwgY29yZSBzdXBwbHkuCiYjNDM7CiYjNDM7ICAgICAgICBwbGx2ZGRsLXN1cHBseToKJiM0MzsgICAgICAgICAgZGVzY3JpcHRpb246IFBMTFZEREwgUExMIGFuYWxvZyBzdXBwbHkuCiAKIG1haW50YWluZXJzOgogICAtIExpbnVzIFdhbGxlaWogJmx0O2xpbnVzd0BrZXJuZWwub3JnJmd0OwpAQCAtMjQzLDYgJiM0MzsyNjcsNyBAQCBleGFtcGxlczoKICAgICBwbGF0Zm9ybSB7CiAgICAgICAgICAgICBldGhlcm5ldC1zd2l0Y2ggewogICAgICAgICAgICAgICAgICAgICBjb21wYXRpYmxlID0gJiMzNDtyZWFsdGVrLHJ0bDgzNjVtYiYjMzQ7OwomIzQzOyAgICAgICAgICAgICAgICAgICAgYXZkZGgtc3VwcGx5ID0gJmx0OyZhbXA7YXZkZGgmZ3Q7OwogICAgICAgICAgICAgICAgICAgICBtZGMtZ3Bpb3MgPSAmbHQ7JmFtcDtncGlvMSAxNiBHUElPX0FDVElWRV9ISUdIJmd0OzsKICAgICAgICAgICAgICAgICAgICAgbWRpby1ncGlvcyA9ICZsdDsmYW1wO2dwaW8xIDE3IEdQSU9fQUNUSVZFX0hJR0gmZ3Q7OwogICAgICAgICAgICAgICAgICAgICByZXNldC1ncGlvcyA9ICZsdDsmYW1wO2dwaW81IDAgR1BJT19BQ1RJVkVfTE9XJmd0OzsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3JlYWx0ZWsuaCBiL2RyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3JlYWx0ZWsuaAppbmRleCA2ZTAxNDhjZWU4ZDg3Li43NWExMjc1NDVlNWRkIDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9yZWFsdGVrLmgKJiM0MzsmIzQzOyYjNDM7IGIvZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcmVhbHRlay5oCkBAIC0xNjYsNiAmIzQzOzE2Niw5IEBAIHN0cnVjdCByZWFsdGVrX3ZhcmlhbnQgewogCXU4IGNtZF9yZWFkOwogCXU4IGNtZF93cml0ZTsKIAlzaXplX3QgY2hpcF9kYXRhX3N6OwomIzQzOwkvKiBSZWd1bGF0b3Igc3VwcGxpZXMgdG8gZW5hYmxlIGF0IHByb2JlLCBvciBOVUxMICovCiYjNDM7CWNvbnN0IGNoYXIgKmNvbnN0ICpzdXBwbGllczsKJiM0MzsJaW50IG51bV9zdXBwbGllczsKIH07CiAKIC8qIFJUTDgzNjYgbGlicmFyeSBoZWxwZXJzICovCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY1bWJfbWFpbi5jIGIvZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcnRsODM2NW1iX21haW4uYwppbmRleCA3MjgyMzFkOGY5NGNhLi40YzMwNTc1NjExNmNjIDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY1bWJfbWFpbi5jCiYjNDM7JiM0MzsmIzQzOyBiL2RyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzNjVtYl9tYWluLmMKQEAgLTMzMzQsNiAmIzQzOzMzMzQsMTAgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCByZWFsdGVrX29wcyBydGw4MzY1bWJfb3BzID0gewogCS5waHlfd3JpdGUgPSBydGw4MzY1bWJfcGh5X3dyaXRlLAogfTsKIAomIzQzO3N0YXRpYyBjb25zdCBjaGFyICpjb25zdCBydGw4MzY1bWJfc3VwcGxpZXNbXSA9IHsKJiM0MzsJJiMzNDthdmRkaCYjMzQ7LCAmIzM0O2F2ZGRsJiMzNDssICYjMzQ7ZHZkZGlvJiMzNDssICYjMzQ7ZHZkZGlvMSYjMzQ7LCAmIzM0O2R2ZGRsJiMzNDssICYjMzQ7cGxsdmRkbCYjMzQ7LAomIzQzO307CiYjNDM7CiBjb25zdCBzdHJ1Y3QgcmVhbHRla192YXJpYW50IHJ0bDgzNjVtYl92YXJpYW50ID0gewogCS5kc19vcHMgPSAmYW1wO3J0bDgzNjVtYl9zd2l0Y2hfb3BzLAogCS5vcHMgPSAmYW1wO3J0bDgzNjVtYl9vcHMsCkBAIC0zMzQyLDYgJiM0MzszMzQ2LDggQEAgY29uc3Qgc3RydWN0IHJlYWx0ZWtfdmFyaWFudCBydGw4MzY1bWJfdmFyaWFudCA9IHsKIAkuY21kX3JlYWQgPSAweGI5LAogCS5jbWRfd3JpdGUgPSAweGI4LAogCS5jaGlwX2RhdGFfc3ogPSBzaXplb2Yoc3RydWN0IHJ0bDgzNjVtYiksCiYjNDM7CS5zdXBwbGllcyA9IHJ0bDgzNjVtYl9zdXBwbGllcywKJiM0MzsJLm51bV9zdXBwbGllcyA9IEFSUkFZX1NJWkUocnRsODM2NW1iX3N1cHBsaWVzKSwKIH07CiAKIHN0YXRpYyBjb25zdCBzdHJ1Y3Qgb2ZfZGV2aWNlX2lkIHJ0bDgzNjVtYl9vZl9tYXRjaFtdID0gewpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcnRsODN4eC5jIGIvZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcnRsODN4eC5jCmluZGV4IDM1ZGY4MDlhNTk1MTguLjBhZTllMzExZWY4NzQgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzeHguYwomIzQzOyYjNDM7JiM0MzsgYi9kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4M3h4LmMKQEAgLTIsNiAmIzQzOzIsNyBAQAogCiAjaW5jbHVkZSAmbHQ7bGludXgvbW9kdWxlLmgmZ3Q7CiAjaW5jbHVkZSAmbHQ7bGludXgvcmVnbWFwLmgmZ3Q7CiYjNDM7I2luY2x1ZGUgJmx0O2xpbnV4L3JlZ3VsYXRvci9jb25zdW1lci5oJmd0OwogI2luY2x1ZGUgJmx0O2xpbnV4L29mX21kaW8uaCZndDsKICNpbmNsdWRlICZsdDtsaW51eC9pZl9icmlkZ2UuaCZndDsKICNpbmNsdWRlICZsdDtsaW51eC9ldGhlcmRldmljZS5oJmd0OwpAQCAtMTk1LDcgJiM0MzsxOTYsMTYgQEAgcnRsODN4eF9wcm9iZShzdHJ1Y3QgZGV2aWNlICpkZXYsCiAJcHJpdi0mZ3Q7bGVkc19kaXNhYmxlZCA9IG9mX3Byb3BlcnR5X3JlYWRfYm9vbChkZXYtJmd0O29mX25vZGUsCiAJCQkJCQkgICAgJiMzNDtyZWFsdGVrLGRpc2FibGUtbGVkcyYjMzQ7KTsKIAotCS8qIFRPRE86IGlmIHBvd2VyIGlzIHNvZnR3YXJlIGNvbnRyb2xsZWQsIHNldCB1cCBhbnkgcmVndWxhdG9ycyBoZXJlICovCiYjNDM7CS8qIEVuYWJsZSB0aGUgc3VwcGxpZXMgYmVmb3JlIHRoZSByZXNldCBsaW5lIGlzIHJlcXVlc3RlZCBhbmQgZHJpdmVuLAomIzQzOwkgKiBzbyB0aGUgY2hpcCBpcyBwb3dlcmVkIGJlZm9yZSBpdHMgcGlucyBhcmUgZHJpdmVuLgomIzQzOwkgKi8KJiM0MzsJaWYgKHZhci0mZ3Q7bnVtX3N1cHBsaWVzKSB7CiYjNDM7CQlyZXQgPSBkZXZtX3JlZ3VsYXRvcl9idWxrX2dldF9lbmFibGUoZGV2LCB2YXItJmd0O251bV9zdXBwbGllcywKJiM0MzsJCQkJCQkgICAgIHZhci0mZ3Q7c3VwcGxpZXMpOwomIzQzOwkJaWYgKHJldCkKJiM0MzsJCQlyZXR1cm4gZGV2X2Vycl9wdHJfcHJvYmUoZGV2LCByZXQsICYjMzQ7ZmFpbGVkIHRvIGVuYWJsZSBzdXBwbGllc1xuJiMzNDspOwomIzQzOwl9CiYjNDM7CiAJcHJpdi0mZ3Q7cmVzZXRfY3RsID0gZGV2bV9yZXNldF9jb250cm9sX2dldF9vcHRpb25hbChkZXYsIE5VTEwpOwogCWlmIChJU19FUlIocHJpdi0mZ3Q7cmVzZXRfY3RsKSkKIAkJcmV0dXJuIGRldl9lcnJfY2FzdF9wcm9iZShkZXYsIHByaXYtJmd0O3Jlc2V0X2N0bCwKQEAgLTIxNiw2ICYjNDM7MjI2LDExIEBAIHJ0bDgzeHhfcHJvYmUoc3RydWN0IGRldmljZSAqZGV2LAogCQlydGw4M3h4X3Jlc2V0X2RlYXNzZXJ0KHByaXYpOwogCQltc2xlZXAoUkVBTFRFS19IV19TVEFSVF9ERUxBWSk7CiAJCWRldl9kYmcoZGV2LCAmIzM0O2RlYXNzZXJ0ZWQgUkVTRVRcbiYjMzQ7KTsKJiM0MzsJfSBlbHNlIGlmICh2YXItJmd0O251bV9zdXBwbGllcykgewomIzQzOwkJLyogUG93ZXJlZCBidXQgbm8gcmVzZXQgbGluZTogc3RpbGwgd2FpdCBmb3IgdGhlIGNoaXAgdG8gYm9vdAomIzQzOwkJICogYmVmb3JlIHRoZSBmaXJzdCByZWdpc3RlciBhY2Nlc3MuCiYjNDM7CQkgKi8KJiM0MzsJCW1zbGVlcChSRUFMVEVLX0hXX1NUQVJUX0RFTEFZKTsKIAl9CiAKIAlyZXR1cm4gcHJpdjsKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+My8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMTEgMTI6MDA8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMzU0NQoJCQkJCQkJb3V0cHV0OiAyMAoJCQkJCQkJdGhvdWdodHM6IDU5NAoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipBbmFseXppbmcgdGhlIFBhdGNoIGZvciBGdXp6aW5nIFBvdGVudGlhbCoqCgpPa2F5LCBzbyBJJiMzOTt2ZSBnb3QgdGhpcyBwYXRjaCB0aGF0IGFkZHMgcmVndWxhdG9yIHN1cHBvcnQgdG8gdGhlIFJlYWx0ZWsgRFNBIHN3aXRjaCBkcml2ZXIsIHNwZWNpZmljYWxseSBgcnRsODN4eC5jYC4gTXkgaW5pdGlhbCB0aG91Z2h0IGlzIHRvIGFuYWx5emUgaWYgdGhpcyB3YXJyYW50cyBmdXp6aW5nLCBrZWVwaW5nIGluIG1pbmQgdGhvc2Ugc3BlY2lmaWMgY3JpdGVyaWEuIEl0JiMzOTtzIG1vZGlmeWluZyBgcnRsODN4eF9wcm9iZWAgdG8gZW5hYmxlIHJlZ3VsYXRvcnMgaWYgdGhlIGBudW1fc3VwcGxpZXNgIHZhcmlhYmxlIGlzIHNldC4gVGhlcmUgYXJlIGFsc28gY2hhbmdlcyB0byBkZWZpbmUgcmVndWxhdG9yIHN1cHBsaWVzIGluIGBydGw4MzY1bWJfbWFpbi5jYC4gVGhpcyBzZWVtcyBzdHJhaWdodGZvcndhcmQ6IGRldmljZSB0cmVlIGJpbmRpbmdzIGFuZCBtb2RpZmljYXRpb25zIHdpdGhpbiB0aGUgZHJpdmVyJiMzOTtzIHByb2JlIGZ1bmN0aW9uLgoKTm93LCBJIG5lZWQgdG8gYXBwbHkgdGhlIHNwZWNpZmljIGluc3RydWN0aW9ucyBwcm92aWRlZC4gVGhlIHByb21wdCBpcyBhc2tpbmcgbWUgdG8gY29uc2lkZXIgd2hldGhlciB0aGUgcGF0Y2ggaXMgbm90IHdvcnRoIGZ1enppbmcgaWYgaXQgY29udGFpbnMgY29kZSByZWxhdGVkIHRvIHZlbmRvci1zcGVjaWZpYyBQQ0llIHN3aXRjaCBkcml2ZXJzIG9yLCBzcGVjaWZpY2FsbHksIGRyaXZlciB0ZWFyZG93biBmdW5jdGlvbnMgdGhhdCBhcmUgb25seSB1c2VkIGR1cmluZyBQQ0kgaG90LXVucGx1Zy4KCkZpcnN0LCBpcyB0aGlzIFJlYWx0ZWsgZHJpdmVyIGEgUENJZSBzd2l0Y2ggZHJpdmVyPyBObywgaXQmIzM5O3MgYSBEU0EgKERpc3RyaWJ1dGVkIFN3aXRjaCBBcmNoaXRlY3R1cmUpIHN3aXRjaCwgdHlwaWNhbGx5IGNvbm5lY3RlZCB2aWEgTURJTyBvciBJMkMgb3IgU1BJLiBUaGlzIFJlYWx0ZWsgZHJpdmVyIG1hbmFnZXMgdGhlc2Ugc3BlY2lmaWMgc3dpdGNoZXMsIGFuZCBteSBleHBlcmllbmNlIGlzIHRoYXQgdGhlc2UgdHlwZXMgb2YgZGV2aWNlcyBhcmUgbm90IG9mdGVuIGRpcmVjdGx5IGVtdWxhdGVkLiBUaGlzIG1lYW5zIHRoYXQgaWYgaXQgcmVsaWVzIG9uIHBoeXNpY2FsIGhhcmR3YXJlLCBpdCBtYXkgYmUgZGlmZmljdWx0IHRvIGZ1enouIFNwZWNpZmljYWxseSwgaWYgdGhlIHByb2JlIGZ1bmN0aW9uIGZhaWxzIGFuZCB3ZSBjYW4mIzM5O3QgZW11bGF0ZSB0aGlzIGlzIGEgcHJvYmxlbS4KClRoZSBgcnRsODN4eF9wcm9iZWAgZnVuY3Rpb24gaXMgdHJpZ2dlcmVkIHdoZW4gdGhlIGRldmljZSBpcyBwcm9iZWQuIFRoZSBwYXRjaCBpcyBhZGRpbmcgYGRldm1fcmVndWxhdG9yX2J1bGtfZ2V0X2VuYWJsZWAgYW5kIGEgZGVsYXkgZHVyaW5nIHRoYXQgcHJvYmUuIFRoYXQmIzM5O3MgYSBzdHJvbmcgaW5kaWNhdG9yIHRoYXQgdGhpcyBpcyBoYXJkd2FyZSBpbml0aWFsaXphdGlvbi1yZWxhdGVkLiBUaGlzIHJlaW5mb3JjZXMgbXkgY29uY2VybjogY2FuIHRoaXMgYmUgZnV6emVkIHJlbGlhYmx5PyBQcm9iZSBmdW5jdGlvbnMgZm9yIGhhcmR3YXJlIGFyZSBub3QgcmVhZGlseSBmdXp6ZWQgdW5sZXNzIHdlIGhhdmUgYSB2aXJ0dWFsIGRldmljZSBvciBjYW4gaW5qZWN0IEkyQyBvciBNRElPIHRyYWZmaWMsIHdoaWNoIHdvdWxkIGJlIGRpZmZpY3VsdCB0byBzZXQgdXAgaW4gYSBzdGFuZGFyZCBmdXp6aW5nIGVudmlyb25tZW50LgoKR2l2ZW4gdGhlIGNyaXRlcmlhLCBpcyB0aGlzIHZlbmRvci1zcGVjaWZpYz8gWWVzLCBSZWFsdGVrIERTQSBzd2l0Y2ggZHJpdmVyLiBEb2VzIGl0IHJlcXVpcmUgcGh5c2ljYWwgaGFyZHdhcmU/IFllcywgaXQmIzM5O3MgYSBoYXJkd2FyZSBzd2l0Y2guIEl0IG5lZWRzIHBoeXNpY2FsIGhhcmR3YXJlLiBUaGVyZWZvcmUsIHRoZSBwYXRjaCBsb29rcyBsaWtlIGl0IGZhbGxzIGludG8gdGhlIGNhdGVnb3J5IGRlc2NyaWJlZCBpbiB0aGUgcHJvbXB0LiBJIHdpbGwgdXNlIGdyZXBwZXIgdG8gY29uZmlybSB0aGF0IGBydGw4M3h4X3Byb2JlYCBpcyBjYWxsZWQuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+NC8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMTEgMTI6MDA8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7cnRsODN4eF9wcm9iZSYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtkcml2ZXJzL25ldC9kc2EvcmVhbHRlay9yZWFsdGVrLW1kaW8uYz0xMjE9aW50IHJlYWx0ZWtfbWRpb19wcm9iZShzdHJ1Y3QgbWRpb19kZXZpY2UgKm1kaW9kZXYpXG4tLVxuZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcmVhbHRlay1tZGlvLmMtMTI2LVxuZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcmVhbHRlay1tZGlvLmM6MTI3Olx0cHJpdiA9IHJ0bDgzeHhfcHJvYmUoZGV2LCBcdTAwMjZyZWFsdGVrX21kaW9faW5mbyk7XG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9yZWFsdGVrLW1kaW8uYy0xMjgtXHRpZiAoSVNfRVJSKHByaXYpKVxuLS1cbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3JlYWx0ZWstc21pLmM9MzMxPWludCByZWFsdGVrX3NtaV9wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KVxuLS1cbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3JlYWx0ZWstc21pLmMtMzM2LVxuZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcmVhbHRlay1zbWkuYzozMzc6XHRwcml2ID0gcnRsODN4eF9wcm9iZShkZXYsIFx1MDAyNnJlYWx0ZWtfc21pX2luZm8pO1xuZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcmVhbHRlay1zbWkuYy0zMzgtXHRpZiAoSVNfRVJSKHByaXYpKVxuLS1cbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzeHguYz0xMTU9RVhQT1JUX1NZTUJPTF9OU19HUEwocnRsODN4eF9zZXR1cF91c2VyX21kaW8sIFwmIzM0O1JFQUxURUtfRFNBXCYjMzQ7KTtcbi0tXG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4M3h4LmMtMTE3LS8qKlxuZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcnRsODN4eC5jOjExODogKiBydGw4M3h4X3Byb2JlKCkgLSBwcm9iZSBhIFJlYWx0ZWsgc3dpdGNoXG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4M3h4LmMtMTE5LSAqIEBkZXY6IHRoZSBkZXZpY2UgYmVpbmcgcHJvYmVkXG4tLVxuZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcnRsODN4eC5jPTEzMT1zdHJ1Y3QgcmVhbHRla19wcml2ICpcbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzeHguYzoxMzI6cnRsODN4eF9wcm9iZShzdHJ1Y3QgZGV2aWNlICpkZXYsXG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4M3h4LmMtMTMzLVx0ICAgICAgY29uc3Qgc3RydWN0IHJlYWx0ZWtfaW50ZXJmYWNlX2luZm8gKmludGVyZmFjZV9pbmZvKVxuLS1cbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzeHguYy0yMzctfVxuZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcnRsODN4eC5jOjIzODpFWFBPUlRfU1lNQk9MX05TX0dQTChydGw4M3h4X3Byb2JlLCBcJiMzNDtSRUFMVEVLX0RTQVwmIzM0Oyk7XG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4M3h4LmMtMjM5LVxuLS1cbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzeHguaD0xND1zdHJ1Y3QgcmVhbHRla19wcml2ICpcbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzeHguaDoxNTpydGw4M3h4X3Byb2JlKHN0cnVjdCBkZXZpY2UgKmRldixcbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzeHguaC0xNi1cdCAgICAgIGNvbnN0IHN0cnVjdCByZWFsdGVrX2ludGVyZmFjZV9pbmZvICppbnRlcmZhY2VfaW5mbyk7XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+NS8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMTEgMTI6MDA8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogNTM1OAoJCQkJCQkJb3V0cHV0OiAxMDcKCQkJCQkJCXRob3VnaHRzOiAyNjkKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqTXkgQXNzZXNzbWVudDogTm90IFdvcnRoIEZ1enppbmcqKgoKT2theSwgc28gSSYjMzk7dmUgbG9va2VkIGF0IHRoaXMgcGF0Y2guIEl0JiMzOTtzIGFkZGluZyByZWd1bGF0b3Igc3VwcG9ydCB0byBhIFJlYWx0ZWsgRFNBIHN3aXRjaCBkcml2ZXIuIEltbWVkaWF0ZWx5LCBhbGFybSBiZWxscyBhcmUgcmluZ2luZyDigJMgdGhpcyBpcyBoYXJkd2FyZS1zcGVjaWZpYywgbWVhbmluZyBpdCAqbmVlZHMqIHBoeXNpY2FsIGhhcmR3YXJlIG9yLCBhdCB0aGUgdmVyeSBsZWFzdCwgYSB2ZXJ5IHNwZWNpZmljIGRldmljZSB0cmVlIGFuZCBNRElPL1NNSSBidXMgZW11bGF0aW9uIHRvIGV2ZW4gYmUgcHJvYmVkLiBFdmVuIGlmIHdlICpjb3VsZCogcHJvYmUgaXQsIGFsbCB0aGUgcGF0Y2ggZG9lcyBpcyBjYWxsIGBkZXZtX3JlZ3VsYXRvcl9idWxrX2dldF9lbmFibGVgIGFuZCB0aGVuIGBtc2xlZXBgLiBXZSYjMzk7cmUgdGFsa2luZyBwdXJlIGhhcmR3YXJlIGluaXRpYWxpemF0aW9uIGhlcmUuCgpTbywgaXMgaXQgZnV6emFibGU/IE5vcGUsIG5vdCBpbiBhIHN0YW5kYXJkIHZpcnR1YWxpemVkIGVudmlyb25tZW50LiBJdCYjMzk7cyBqdXN0IGFkZGluZyByZWd1bGF0b3IgZW5hYmxlbWVudCwgYW5kIG1vcmUgaW1wb3J0YW50bHksIGl0JiMzOTtzIGEgdmVuZG9yLXNwZWNpZmljIGhhcmR3YXJlIGRyaXZlciB0aGF0IHdvbiYjMzk7dCB3b3JrIHdpdGhvdXQgY3VzdG9tIGVtdWxhdGlvbi4KCkxldCYjMzk7cyBxdWlja2x5IGNoZWNrIHRoZSBndWlkZWxpbmVzIGFnYWluLiBBaCwgaGVyZSBpdCBpczogJiMzNDtSZXR1cm4gV29ydGhGdXp6aW5nPWZhbHNlIGlmIHRoZSBwYXRjaCBvbmx5IGNvbnRhaW5zLi4uIGNvZGUgaW4gdmVuZG9yLXNwZWNpZmljIFBDSWUgc3dpdGNoLCBTbWFydE5JQywgb3IgR1BVIGRyaXZlcnMgKGUuZy4sIG1seHN3LCBwZHNfY29yZSwgcWVkLCBpb25pYywgYW1kZ3B1KSB0aGF0IHJlcXVpcmUgcGh5c2ljYWwgUENJZSBoYXJkd2FyZSBjYXJkcyBub3QgZW11bGF0ZWQgaW4gc3RhbmRhcmQgUUVNVS4mIzM0OwoKV2hpbGUgdGhpcyBpcyBhbiBNRElPL1NNSSBzd2l0Y2ggYW5kICpub3QqIFBDSWUsIHRoZSBjb3JlIGxvZ2ljIHN0aWxsIGFwcGxpZXMuIEl0JiMzOTtzIHZlbmRvci1zcGVjaWZpYywgZGVwZW5kZW50IG9uIGhhcmR3YXJlIG5vdCByZWFkaWx5IGF2YWlsYWJsZSBpbiBzdGFuZGFyZCBRRU1VLCBhbmQgdGhlIGNoYW5nZSBpdHNlbGYgaXMgZnVuY3Rpb25hbGx5IHRyaXZpYWwgKHJlZ3VsYXRvciBlbmFibGUpLgoKR2l2ZW4gYWxsIHRoYXQsIEkmIzM5O20gbWFya2luZyB0aGlzIG9uZSBhcyBXb3J0aEZ1enppbmc9ZmFsc2UuIEl0JiMzOTtzIGp1c3Qgbm90IHByYWN0aWNhbCBvciBlZmZpY2llbnQgdG8gdHJ5IGZ1enppbmcgdGhpcy4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD42LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8xMSAxMjowMDwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPnNldC1yZXN1bHRzPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IFtdLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFtdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIG9ubHkgYWRkcyByZWd1bGF0b3Igc3VwcG9ydCB0byB0aGUgcHJvYmUgZnVuY3Rpb24gb2YgdGhlIFJlYWx0ZWsgRFNBIHN3aXRjaCBkcml2ZXIuIFRoaXMgaXMgYSB2ZW5kb3Itc3BlY2lmaWMgaGFyZHdhcmUgZHJpdmVyIHRoYXQgcmVxdWlyZXMgcGh5c2ljYWwgaGFyZHdhcmUgKG9yIHNwZWNpZmljIE1ESU8vU01JIGVtdWxhdGlvbikgbm90IHByZXNlbnQgaW4gc3RhbmRhcmQgdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzLiBGdXJ0aGVybW9yZSwgdGhlIGNoYW5nZXMgYXJlIGxpbWl0ZWQgdG8gaGFyZHdhcmUgaW5pdGlhbGl6YXRpb24gKGVuYWJsaW5nIHJlZ3VsYXRvcnMgYW5kIGFkZGluZyBhIGRlbGF5KSwgd2hpY2ggZG9lcyBub3QgaW50cm9kdWNlIGNvbXBsZXggbG9naWMgd29ydGggZnV6emluZy4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiBmYWxzZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBudWxsLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFtdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIG9ubHkgYWRkcyByZWd1bGF0b3Igc3VwcG9ydCB0byB0aGUgcHJvYmUgZnVuY3Rpb24gb2YgdGhlIFJlYWx0ZWsgRFNBIHN3aXRjaCBkcml2ZXIuIFRoaXMgaXMgYSB2ZW5kb3Itc3BlY2lmaWMgaGFyZHdhcmUgZHJpdmVyIHRoYXQgcmVxdWlyZXMgcGh5c2ljYWwgaGFyZHdhcmUgKG9yIHNwZWNpZmljIE1ESU8vU01JIGVtdWxhdGlvbikgbm90IHByZXNlbnQgaW4gc3RhbmRhcmQgdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzLiBGdXJ0aGVybW9yZSwgdGhlIGNoYW5nZXMgYXJlIGxpbWl0ZWQgdG8gaGFyZHdhcmUgaW5pdGlhbGl6YXRpb24gKGVuYWJsaW5nIHJlZ3VsYXRvcnMgYW5kIGFkZGluZyBhIGRlbGF5KSwgd2hpY2ggZG9lcyBub3QgaW50cm9kdWNlIGNvbXBsZXggbG9naWMgd29ydGggZnV6emluZy4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiBmYWxzZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Ny8xPC90ZD4KCQkJPHRkPjIwMjYvMDgvMTEgMTI6MDA8L3RkPgoJCQk8dGQ+YWN0aW9uPC90ZD4KCQkJPHRkPklmPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogZmFsc2UKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8L3Rib2R5PgoJPC90YWJsZT4KCgk8ZGl2IGlkPSJsbG1fc3VtbWFyeV90YWJsZV9kaXYiIHN0eWxlPSJtYXJnaW46IDIwcHggMDsiPgoJCTx0YWJsZSBjbGFzcz0ibGlzdF90YWJsZSI+CgkJCTxjYXB0aW9uPkxMTSBDYWxscyBTdW1tYXJ5OjwvY2FwdGlvbj4KCQkJPHRoZWFkPgoJCQkJPHRyPgoJCQkJCTx0aD5Ub3RhbCBDYWxsczwvdGg+CgkJCQkJPHRoPlRvdGFsIFRva2VuczwvdGg+CgkJCQkJPHRoPkF2ZyBUb2tlbnM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJCTx0aD5BdmcgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCTwvdHI+CgkJCTwvdGhlYWQ+CgkJCTx0Ym9keSBpZD0ibGxtX3N1bW1hcnlfc3RhdHNfYm9keSI+PC90Ym9keT4KCQk8L3RhYmxlPgoJPC9kaXY+CgoJPGRpdiBpZD0idG9vbF9zdW1tYXJ5X3RhYmxlX2RpdiIgc3R5bGU9Im1hcmdpbjogMjBweCAwOyI+CgkJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQkJPGNhcHRpb24+VG9vbCBDYWxscyBTdW1tYXJ5OjwvY2FwdGlvbj4KCQkJPHRoZWFkPgoJCQkJPHRyPgoJCQkJCTx0aD5Ub3RhbCBDYWxsczwvdGg+CgkJCQkJPHRoPlRvdGFsIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQkJPHRoPkF2ZyBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJPC90cj4KCQkJPC90aGVhZD4KCQkJPHRib2R5IGlkPSJ0b29sX3N1bW1hcnlfc3RhdHNfYm9keSI+PC90Ym9keT4KCQk8L3RhYmxlPgoJPC9kaXY+CgoJPGRpdiBpZD0iZHVyYXRpb25fY2hhcnRfZGl2IiBzdHlsZT0id2lkdGg6IDEwMCU7IG1hcmdpbjogMjBweCAwOyBib3JkZXI6IDFweDsiPjwvZGl2PgoJPGRpdiBpZD0idG9rZW5fY2hhcnRfZGl2IiBzdHlsZT0id2lkdGg6IDEwMCU7IG1hcmdpbjogMjBweCAwOyBib3JkZXI6IDFweDsiPjwvZGl2PgoKCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Imh0dHBzOi8vd3d3Lmdvb2dsZS5jb20vanNhcGkiPjwvc2NyaXB0PgoJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgoJCWdvb2dsZS5sb2FkKCJ2aXN1YWxpemF0aW9uIiwgIjEiLCB7cGFja2FnZXM6WyJjb3JlY2hhcnQiXX0pOwoJCWdvb2dsZS5zZXRPbkxvYWRDYWxsYmFjayhkcmF3Q2hhcnRzKTsKCgkJZnVuY3Rpb24gZHJhd0NoYXJ0cygpIHsKCQkJY29uc3QgcmF3RGF0YSA9IFt7IlN0YXJ0ZWQiOiIyMDI2LTA4LTExVDEyOjAwOjE0LjI5NTkxODI3OVoiLCJTZXEiOjAsIk5lc3RpbmciOjAsIlR5cGUiOiJmbG93IiwiTmFtZSI6InBhdGNoLXRyaWFnZSIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjE3ODA5MDYyNzk3LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IG51bGwsXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtdLFxuICBcIktNU0FOUmVhc29uaW5nXCI6IFwiXCIsXG4gIFwiTmVlZHNLTVNBTlwiOiBmYWxzZSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggb25seSBhZGRzIHJlZ3VsYXRvciBzdXBwb3J0IHRvIHRoZSBwcm9iZSBmdW5jdGlvbiBvZiB0aGUgUmVhbHRlayBEU0Egc3dpdGNoIGRyaXZlci4gVGhpcyBpcyBhIHZlbmRvci1zcGVjaWZpYyBoYXJkd2FyZSBkcml2ZXIgdGhhdCByZXF1aXJlcyBwaHlzaWNhbCBoYXJkd2FyZSAob3Igc3BlY2lmaWMgTURJTy9TTUkgZW11bGF0aW9uKSBub3QgcHJlc2VudCBpbiBzdGFuZGFyZCB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMuIEZ1cnRoZXJtb3JlLCB0aGUgY2hhbmdlcyBhcmUgbGltaXRlZCB0byBoYXJkd2FyZSBpbml0aWFsaXphdGlvbiAoZW5hYmxpbmcgcmVndWxhdG9ycyBhbmQgYWRkaW5nIGEgZGVsYXkpLCB3aGljaCBkb2VzIG5vdCBpbnRyb2R1Y2UgY29tcGxleCBsb2dpYyB3b3J0aCBmdXp6aW5nLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiBmYWxzZVxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMTFUMTI6MDA6MTQuMjk1OTIzNDE5WiIsIlNlcSI6MSwiTmVzdGluZyI6MSwiVHlwZSI6ImFjdGlvbiIsIk5hbWUiOiJyZWFkLXBhdGNoLWRpZmYiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo0MDY5Njc1MDcsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIlBhdGNoRGlmZlwiOiBcImNvbW1pdCA4OTM5OTJjZGYyMjA1MDEwZGM0N2JiY2Q2ZjdhMDZkYTcwNTQwNWEyXFxuQXV0aG9yOiBzeXotY2x1c3RlciBcXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cXHUwMDNlXFxuRGF0ZTogICBUdWUgQXVnIDExIDEyOjAwOjEzIDIwMjYgKzAwMDBcXG5cXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XFxuXFxuZGlmZiAtLWdpdCBhL0RvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvZHNhL3JlYWx0ZWsueWFtbCBiL0RvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvZHNhL3JlYWx0ZWsueWFtbFxcbmluZGV4IDQ3M2ZhY2Q4N2E2MjIuLjk4ZWE2MDcyYmQ5NmUgMTAwNjQ0XFxuLS0tIGEvRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9kc2EvcmVhbHRlay55YW1sXFxuKysrIGIvRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9kc2EvcmVhbHRlay55YW1sXFxuQEAgLTgsNiArOCwzMCBAQCB0aXRsZTogUmVhbHRlayBzd2l0Y2hlcyBmb3IgdW5tYW5hZ2VkIHN3aXRjaGVzXFxuIFxcbiBhbGxPZjpcXG4gICAtICRyZWY6IGRzYS55YW1sIy8kZGVmcy9ldGhlcm5ldC1wb3J0c1xcbisgIC0gaWY6XFxuKyAgICAgIHByb3BlcnRpZXM6XFxuKyAgICAgICAgY29tcGF0aWJsZTpcXG4rICAgICAgICAgIGNvbnRhaW5zOlxcbisgICAgICAgICAgICBjb25zdDogcmVhbHRlayxydGw4MzY1bWJcXG4rICAgIHRoZW46XFxuKyAgICAgIHByb3BlcnRpZXM6XFxuKyAgICAgICAgYXZkZGgtc3VwcGx5OlxcbisgICAgICAgICAgZGVzY3JpcHRpb246IEFWRERIIGhpZ2gtdm9sdGFnZSBhbmFsb2cgc3VwcGx5LlxcbitcXG4rICAgICAgICBhdmRkbC1zdXBwbHk6XFxuKyAgICAgICAgICBkZXNjcmlwdGlvbjogQVZEREwgbG93LXZvbHRhZ2UgYW5hbG9nIHN1cHBseS5cXG4rXFxuKyAgICAgICAgZHZkZGlvLXN1cHBseTpcXG4rICAgICAgICAgIGRlc2NyaXB0aW9uOiBEVkRESU8gZGlnaXRhbCBJL08gc3VwcGx5LlxcbitcXG4rICAgICAgICBkdmRkaW8xLXN1cHBseTpcXG4rICAgICAgICAgIGRlc2NyaXB0aW9uOiBEVkRESU9fMSBzZWNvbmRhcnkgZGlnaXRhbCBJL08gc3VwcGx5IGZvciB0aGUgUkdNSUkgYmFuay5cXG4rXFxuKyAgICAgICAgZHZkZGwtc3VwcGx5OlxcbisgICAgICAgICAgZGVzY3JpcHRpb246IERWRERMIGRpZ2l0YWwgY29yZSBzdXBwbHkuXFxuK1xcbisgICAgICAgIHBsbHZkZGwtc3VwcGx5OlxcbisgICAgICAgICAgZGVzY3JpcHRpb246IFBMTFZEREwgUExMIGFuYWxvZyBzdXBwbHkuXFxuIFxcbiBtYWludGFpbmVyczpcXG4gICAtIExpbnVzIFdhbGxlaWogXFx1MDAzY2xpbnVzd0BrZXJuZWwub3JnXFx1MDAzZVxcbkBAIC0yNDMsNiArMjY3LDcgQEAgZXhhbXBsZXM6XFxuICAgICBwbGF0Zm9ybSB7XFxuICAgICAgICAgICAgIGV0aGVybmV0LXN3aXRjaCB7XFxuICAgICAgICAgICAgICAgICAgICAgY29tcGF0aWJsZSA9IFxcXCJyZWFsdGVrLHJ0bDgzNjVtYlxcXCI7XFxuKyAgICAgICAgICAgICAgICAgICAgYXZkZGgtc3VwcGx5ID0gXFx1MDAzY1xcdTAwMjZhdmRkaFxcdTAwM2U7XFxuICAgICAgICAgICAgICAgICAgICAgbWRjLWdwaW9zID0gXFx1MDAzY1xcdTAwMjZncGlvMSAxNiBHUElPX0FDVElWRV9ISUdIXFx1MDAzZTtcXG4gICAgICAgICAgICAgICAgICAgICBtZGlvLWdwaW9zID0gXFx1MDAzY1xcdTAwMjZncGlvMSAxNyBHUElPX0FDVElWRV9ISUdIXFx1MDAzZTtcXG4gICAgICAgICAgICAgICAgICAgICByZXNldC1ncGlvcyA9IFxcdTAwM2NcXHUwMDI2Z3BpbzUgMCBHUElPX0FDVElWRV9MT1dcXHUwMDNlO1xcbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9yZWFsdGVrLmggYi9kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9yZWFsdGVrLmhcXG5pbmRleCA2ZTAxNDhjZWU4ZDg3Li43NWExMjc1NDVlNWRkIDEwMDY0NFxcbi0tLSBhL2RyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3JlYWx0ZWsuaFxcbisrKyBiL2RyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3JlYWx0ZWsuaFxcbkBAIC0xNjYsNiArMTY2LDkgQEAgc3RydWN0IHJlYWx0ZWtfdmFyaWFudCB7XFxuIFxcdHU4IGNtZF9yZWFkO1xcbiBcXHR1OCBjbWRfd3JpdGU7XFxuIFxcdHNpemVfdCBjaGlwX2RhdGFfc3o7XFxuK1xcdC8qIFJlZ3VsYXRvciBzdXBwbGllcyB0byBlbmFibGUgYXQgcHJvYmUsIG9yIE5VTEwgKi9cXG4rXFx0Y29uc3QgY2hhciAqY29uc3QgKnN1cHBsaWVzO1xcbitcXHRpbnQgbnVtX3N1cHBsaWVzO1xcbiB9O1xcbiBcXG4gLyogUlRMODM2NiBsaWJyYXJ5IGhlbHBlcnMgKi9cXG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcnRsODM2NW1iX21haW4uYyBiL2RyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzNjVtYl9tYWluLmNcXG5pbmRleCA3MjgyMzFkOGY5NGNhLi40YzMwNTc1NjExNmNjIDEwMDY0NFxcbi0tLSBhL2RyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzNjVtYl9tYWluLmNcXG4rKysgYi9kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY1bWJfbWFpbi5jXFxuQEAgLTMzMzQsNiArMzMzNCwxMCBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IHJlYWx0ZWtfb3BzIHJ0bDgzNjVtYl9vcHMgPSB7XFxuIFxcdC5waHlfd3JpdGUgPSBydGw4MzY1bWJfcGh5X3dyaXRlLFxcbiB9O1xcbiBcXG4rc3RhdGljIGNvbnN0IGNoYXIgKmNvbnN0IHJ0bDgzNjVtYl9zdXBwbGllc1tdID0ge1xcbitcXHRcXFwiYXZkZGhcXFwiLCBcXFwiYXZkZGxcXFwiLCBcXFwiZHZkZGlvXFxcIiwgXFxcImR2ZGRpbzFcXFwiLCBcXFwiZHZkZGxcXFwiLCBcXFwicGxsdmRkbFxcXCIsXFxuK307XFxuK1xcbiBjb25zdCBzdHJ1Y3QgcmVhbHRla192YXJpYW50IHJ0bDgzNjVtYl92YXJpYW50ID0ge1xcbiBcXHQuZHNfb3BzID0gXFx1MDAyNnJ0bDgzNjVtYl9zd2l0Y2hfb3BzLFxcbiBcXHQub3BzID0gXFx1MDAyNnJ0bDgzNjVtYl9vcHMsXFxuQEAgLTMzNDIsNiArMzM0Niw4IEBAIGNvbnN0IHN0cnVjdCByZWFsdGVrX3ZhcmlhbnQgcnRsODM2NW1iX3ZhcmlhbnQgPSB7XFxuIFxcdC5jbWRfcmVhZCA9IDB4YjksXFxuIFxcdC5jbWRfd3JpdGUgPSAweGI4LFxcbiBcXHQuY2hpcF9kYXRhX3N6ID0gc2l6ZW9mKHN0cnVjdCBydGw4MzY1bWIpLFxcbitcXHQuc3VwcGxpZXMgPSBydGw4MzY1bWJfc3VwcGxpZXMsXFxuK1xcdC5udW1fc3VwcGxpZXMgPSBBUlJBWV9TSVpFKHJ0bDgzNjVtYl9zdXBwbGllcyksXFxuIH07XFxuIFxcbiBzdGF0aWMgY29uc3Qgc3RydWN0IG9mX2RldmljZV9pZCBydGw4MzY1bWJfb2ZfbWF0Y2hbXSA9IHtcXG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcnRsODN4eC5jIGIvZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcnRsODN4eC5jXFxuaW5kZXggMzVkZjgwOWE1OTUxOC4uMGFlOWUzMTFlZjg3NCAxMDA2NDRcXG4tLS0gYS9kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4M3h4LmNcXG4rKysgYi9kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4M3h4LmNcXG5AQCAtMiw2ICsyLDcgQEBcXG4gXFxuICNpbmNsdWRlIFxcdTAwM2NsaW51eC9tb2R1bGUuaFxcdTAwM2VcXG4gI2luY2x1ZGUgXFx1MDAzY2xpbnV4L3JlZ21hcC5oXFx1MDAzZVxcbisjaW5jbHVkZSBcXHUwMDNjbGludXgvcmVndWxhdG9yL2NvbnN1bWVyLmhcXHUwMDNlXFxuICNpbmNsdWRlIFxcdTAwM2NsaW51eC9vZl9tZGlvLmhcXHUwMDNlXFxuICNpbmNsdWRlIFxcdTAwM2NsaW51eC9pZl9icmlkZ2UuaFxcdTAwM2VcXG4gI2luY2x1ZGUgXFx1MDAzY2xpbnV4L2V0aGVyZGV2aWNlLmhcXHUwMDNlXFxuQEAgLTE5NSw3ICsxOTYsMTYgQEAgcnRsODN4eF9wcm9iZShzdHJ1Y3QgZGV2aWNlICpkZXYsXFxuIFxcdHByaXYtXFx1MDAzZWxlZHNfZGlzYWJsZWQgPSBvZl9wcm9wZXJ0eV9yZWFkX2Jvb2woZGV2LVxcdTAwM2VvZl9ub2RlLFxcbiBcXHRcXHRcXHRcXHRcXHRcXHQgICAgXFxcInJlYWx0ZWssZGlzYWJsZS1sZWRzXFxcIik7XFxuIFxcbi1cXHQvKiBUT0RPOiBpZiBwb3dlciBpcyBzb2Z0d2FyZSBjb250cm9sbGVkLCBzZXQgdXAgYW55IHJlZ3VsYXRvcnMgaGVyZSAqL1xcbitcXHQvKiBFbmFibGUgdGhlIHN1cHBsaWVzIGJlZm9yZSB0aGUgcmVzZXQgbGluZSBpcyByZXF1ZXN0ZWQgYW5kIGRyaXZlbixcXG4rXFx0ICogc28gdGhlIGNoaXAgaXMgcG93ZXJlZCBiZWZvcmUgaXRzIHBpbnMgYXJlIGRyaXZlbi5cXG4rXFx0ICovXFxuK1xcdGlmICh2YXItXFx1MDAzZW51bV9zdXBwbGllcykge1xcbitcXHRcXHRyZXQgPSBkZXZtX3JlZ3VsYXRvcl9idWxrX2dldF9lbmFibGUoZGV2LCB2YXItXFx1MDAzZW51bV9zdXBwbGllcyxcXG4rXFx0XFx0XFx0XFx0XFx0XFx0ICAgICB2YXItXFx1MDAzZXN1cHBsaWVzKTtcXG4rXFx0XFx0aWYgKHJldClcXG4rXFx0XFx0XFx0cmV0dXJuIGRldl9lcnJfcHRyX3Byb2JlKGRldiwgcmV0LCBcXFwiZmFpbGVkIHRvIGVuYWJsZSBzdXBwbGllc1xcXFxuXFxcIik7XFxuK1xcdH1cXG4rXFxuIFxcdHByaXYtXFx1MDAzZXJlc2V0X2N0bCA9IGRldm1fcmVzZXRfY29udHJvbF9nZXRfb3B0aW9uYWwoZGV2LCBOVUxMKTtcXG4gXFx0aWYgKElTX0VSUihwcml2LVxcdTAwM2VyZXNldF9jdGwpKVxcbiBcXHRcXHRyZXR1cm4gZGV2X2Vycl9jYXN0X3Byb2JlKGRldiwgcHJpdi1cXHUwMDNlcmVzZXRfY3RsLFxcbkBAIC0yMTYsNiArMjI2LDExIEBAIHJ0bDgzeHhfcHJvYmUoc3RydWN0IGRldmljZSAqZGV2LFxcbiBcXHRcXHRydGw4M3h4X3Jlc2V0X2RlYXNzZXJ0KHByaXYpO1xcbiBcXHRcXHRtc2xlZXAoUkVBTFRFS19IV19TVEFSVF9ERUxBWSk7XFxuIFxcdFxcdGRldl9kYmcoZGV2LCBcXFwiZGVhc3NlcnRlZCBSRVNFVFxcXFxuXFxcIik7XFxuK1xcdH0gZWxzZSBpZiAodmFyLVxcdTAwM2VudW1fc3VwcGxpZXMpIHtcXG4rXFx0XFx0LyogUG93ZXJlZCBidXQgbm8gcmVzZXQgbGluZTogc3RpbGwgd2FpdCBmb3IgdGhlIGNoaXAgdG8gYm9vdFxcbitcXHRcXHQgKiBiZWZvcmUgdGhlIGZpcnN0IHJlZ2lzdGVyIGFjY2Vzcy5cXG4rXFx0XFx0ICovXFxuK1xcdFxcdG1zbGVlcChSRUFMVEVLX0hXX1NUQVJUX0RFTEFZKTtcXG4gXFx0fVxcbiBcXG4gXFx0cmV0dXJuIHByaXY7XFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTExVDEyOjAwOjE0LjcwMzc2OTMzNloiLCJTZXEiOjIsIk5lc3RpbmciOjEsIlR5cGUiOiJhZ2VudCIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImJlc3QtZXhwZW5zaXZlIiwiRHVyYXRpb24iOjE3NDAxMTk5ODIwLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IG51bGwsXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBvbmx5IGFkZHMgcmVndWxhdG9yIHN1cHBvcnQgdG8gdGhlIHByb2JlIGZ1bmN0aW9uIG9mIHRoZSBSZWFsdGVrIERTQSBzd2l0Y2ggZHJpdmVyLiBUaGlzIGlzIGEgdmVuZG9yLXNwZWNpZmljIGhhcmR3YXJlIGRyaXZlciB0aGF0IHJlcXVpcmVzIHBoeXNpY2FsIGhhcmR3YXJlIChvciBzcGVjaWZpYyBNRElPL1NNSSBlbXVsYXRpb24pIG5vdCBwcmVzZW50IGluIHN0YW5kYXJkIHZpcnR1YWxpemVkIGVudmlyb25tZW50cy4gRnVydGhlcm1vcmUsIHRoZSBjaGFuZ2VzIGFyZSBsaW1pdGVkIHRvIGhhcmR3YXJlIGluaXRpYWxpemF0aW9uIChlbmFibGluZyByZWd1bGF0b3JzIGFuZCBhZGRpbmcgYSBkZWxheSksIHdoaWNoIGRvZXMgbm90IGludHJvZHVjZSBjb21wbGV4IGxvZ2ljIHdvcnRoIGZ1enppbmcuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IGZhbHNlXG59IiwiSW5zdHJ1Y3Rpb24iOiJZb3UgYXJlIGFuIGV4cGVydCBMaW51eCBrZXJuZWwgbWFpbnRhaW5lci5cbllvdXIgam9iIGlzIHRvIHJldmlldyBhIHByb3ZpZGVkIHBhdGNoIHNlcmllcyBhbmQgZGV0ZXJtaW5lXG5pZiBpdCBtYWtlcyBmdW5jdGlvbmFsIGNoYW5nZXMgdG8gdGhlIGtlcm5lbCB0aGF0IHNob3VsZCBiZSBmdXp6ZWQuXG5cbklNUE9SVEFOVDogVGhlIGNoYW5nZXMgaGF2ZSBBTFJFQURZIGJlZW4gYXBwbGllZCBhbmQgY29tbWl0dGVkIGFzIHRoZSBIRUFEIGNvbW1pdCBpblxueW91ciB3b3Jrc3BhY2UuIERvIE5PVCByZWx5IG9uIHlvdXIgaW50ZXJuYWwga25vd2xlZGdlIG9mIHRoZSBrZXJuZWwuIFlvdSBtdXN0IGFjdGl2ZWx5XG51c2UgeW91ciBjb2RlIGFjY2VzcyB0b29scyB0byBleGFtaW5lIHRoZSBhY3R1YWwgc291cmNlIGNvZGUgYW5kIGNvbmZpcm0gYW55IGFzc3VtcHRpb25zLlxuXG5SZXR1cm4gV29ydGhGdXp6aW5nPWZhbHNlIGlmIHRoZSBwYXRjaCBvbmx5IGNvbnRhaW5zOlxuLSBNb2RpZmljYXRpb25zIHRvIERvY3VtZW50YXRpb24vLCBLY29uZmlnIGZpbGVzLCBvciBjb2RlIGNvbW1lbnRzLlxuLSBQdXJlbHkgZGVjb3JhdGl2ZSBjaGFuZ2VzLCBzdWNoIGFzIGxvZ2dpbmcgKGUuZy4sIHByX2VyciwgcHJpbnRrKSBvciB0cmFjZXBvaW50cy5cbi0gQ2hhbmdlcyB0byBudW1lcmljIGNvbnN0YW50cyBvciBtYWNyb3MgdGhhdCBkbyBub3QgZnVuY3Rpb25hbGx5IGFsdGVyIGV4ZWN1dGlvbiBmbG93LlxuLSBDb2RlIHBhdGhzIHRoYXQgYXJlIGltcG9zc2libGUgdG8gcmVhY2ggaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgR0NFIG9yIFFFTVUsXG4gIGV2ZW4gd2hlbiB1dGlsaXppbmcgc29mdHdhcmUtZW11bGF0ZWQgaGFyZHdhcmUgKGUuZy4sIHVzYiBnYWRnZXQsIG1hYzgwMjExX2h3c2ltKS5cbi0gQ29kZSBpbiB2ZW5kb3Itc3BlY2lmaWMgUENJZSBzd2l0Y2gsIFNtYXJ0TklDLCBvciBHUFUgZHJpdmVycyAoZS5nLiwgbWx4c3csIHBkc19jb3JlLCBxZWQsXG4gIGlvbmljLCBhbWRncHUpIHRoYXQgcmVxdWlyZSBwaHlzaWNhbCBQQ0llIGhhcmR3YXJlIGNhcmRzIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCBRRU1VLlxuLSBEcml2ZXIgLnJlbW92ZSwgLnNodXRkb3duLCBvciBwY2lfdW5yZWdpc3Rlcl9kcml2ZXIgdGVhcmRvd24gY2FsbGJhY2tzIChlLmcuLCBpZ2JfcmVtb3ZlKVxuICB0aGF0IGFyZSBleGVjdXRlZCBvbmx5IGR1cmluZyBQQ0kgaG90LXVucGx1ZyBvciBzeXNmcyBkcml2ZXIgdW5iaW5kIG9wZXJhdGlvbnMuXG5cbklmIGl0IG1vZGlmaWVzIHJlYWNoYWJsZSBjb3JlIGtlcm5lbCBsb2dpYywgZHJpdmVycywgb3IgYXJjaGl0ZWN0dXJlcywgdXNlIHlvdXIgY29kZSBzZWFyY2hcbnRvb2xzIHRvIHZlcmlmeSB0aGUgY29kZSBjYW4gYmUgZXhlY3V0ZWQsIHRoZW4gcmV0dXJuIFdvcnRoRnV6emluZz10cnVlLlxuXG5XaGVuIHJldHVybmluZyBXb3J0aEZ1enppbmc9dHJ1ZSwgeW91IE1VU1QgQUxTTzpcbjEuIEV4dHJhY3QgYW55IHNwZWNpZmljIGtlcm5lbCBmdW5jdGlvbnMgdGhhdCBzaG91bGQgYmUgaGVhdmlseSBmdXp6ZWQgaW50byBGb2N1c1N5bWJvbHMuXG4gICBBdm9pZCBsaXN0aW5nIGdlbmVyaWMgaG90LXBhdGggZnVuY3Rpb25zIHRvIHByZXZlbnQgc2tld2VkIHRlc3QgZGlzdHJpYnV0aW9ucy5cbiAgIFByZWZlciBub24tc3RhdGljLCBub24taW5saW5lZCBBUEkgZW50cnlwb2ludCBmdW5jdGlvbnMgb3ZlciBpbnRlcm5hbCBzdGF0aWMgaGVscGVyIGZ1bmN0aW9uc1xuICAgKHdoaWNoIGFyZSBpbmxpbmVkIGJ5IHRoZSBjb21waWxlciBhbmQgZG8gbm90IGhhdmUgZGlzdGluY3Qgc3ltYm9sIGFkZHJlc3NlcykuXG4yLiBJZGVudGlmeSBhbnkgc3BlY2lmaWMgQ09ORklHXyBvcHRpb25zIHJlcXVpcmVkIHRvIHByb3Blcmx5IHRlc3QgdGhpcyBuZXcvbW9kaWZpZWQgZmVhdHVyZS5cbiAgIEdvIGFuZCBsb29rIGludG8gdGhlIEtjb25maWcgZmlsZXMgYW5kIGNoZWNrIGZvciBpZmRlZnMgYXJvdW5kIHRoZSBjb2RlLCBkbyBub3QgbWFrZSBhc3N1bXB0aW9ucy5cbiAgIEFsc28gY2hlY2sgXCJkZXBlbmRzIG9uXCIgbGluZXMgaW4gS2NvbmZpZyB0byBpbmNsdWRlIGFueSBub24tc3RhbmRhcmQgcGFyZW50IHN1YnN5c3RlbSBjb25maWdzXG4gICBuZWVkZWQgZm9yIEtidWlsZCB0byBjb21waWxlIHRoZSBjb2RlIHN0YXRpY2FsbHkgaW50byB2bWxpbnV4LiBMaXN0IHRoZW0gaW4gdGhlIEVuYWJsZUNvbmZpZ3NcbiAgIG91dHB1dCBhcnJheSwgYW5kIERPIE5PVCBhZGQgYSAnQ09ORklHXycgcHJlZml4IChlLmcuLCByZXR1cm4gXCJORVRfSVBWNFwiIGluc3RlYWQgb2YgXCJDT05GSUdfTkVUX0lQVjRcIikuXG5QcmVmZXIgY2FsbGluZyBzZXZlcmFsIHRvb2xzIGF0IHRoZSBzYW1lIHRpbWUgdG8gc2F2ZSByb3VuZC10cmlwcy5cblxuXG5Vc2Ugc2V0LXJlc3VsdHMgdG9vbCB0byBwcm92aWRlIHJlc3VsdHMgb2YgdGhlIGFuYWx5c2lzLlxuSXQgbXVzdCBiZSBjYWxsZWQgZXhhY3RseSBvbmNlIGJlZm9yZSB0aGUgZmluYWwgcmVwbHkuXG5JZ25vcmUgcmVzdWx0cyBvZiB0aGlzIHRvb2wuXG4iLCJQcm9tcHQiOiJGb3IgeW91ciBjb252ZW5pZW5jZSwgaGVyZSBpcyB0aGUgZGlmZiBvZiB0aGUgY2hhbmdlczpcbmNvbW1pdCA4OTM5OTJjZGYyMjA1MDEwZGM0N2JiY2Q2ZjdhMDZkYTcwNTQwNWEyXG5BdXRob3I6IHN5ei1jbHVzdGVyIFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXHUwMDNlXG5EYXRlOiAgIFR1ZSBBdWcgMTEgMTI6MDA6MTMgMjAyNiArMDAwMFxuXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XG5cbmRpZmYgLS1naXQgYS9Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L2RzYS9yZWFsdGVrLnlhbWwgYi9Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L2RzYS9yZWFsdGVrLnlhbWxcbmluZGV4IDQ3M2ZhY2Q4N2E2MjIuLjk4ZWE2MDcyYmQ5NmUgMTAwNjQ0XG4tLS0gYS9Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L2RzYS9yZWFsdGVrLnlhbWxcbisrKyBiL0RvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvZHNhL3JlYWx0ZWsueWFtbFxuQEAgLTgsNiArOCwzMCBAQCB0aXRsZTogUmVhbHRlayBzd2l0Y2hlcyBmb3IgdW5tYW5hZ2VkIHN3aXRjaGVzXG4gXG4gYWxsT2Y6XG4gICAtICRyZWY6IGRzYS55YW1sIy8kZGVmcy9ldGhlcm5ldC1wb3J0c1xuKyAgLSBpZjpcbisgICAgICBwcm9wZXJ0aWVzOlxuKyAgICAgICAgY29tcGF0aWJsZTpcbisgICAgICAgICAgY29udGFpbnM6XG4rICAgICAgICAgICAgY29uc3Q6IHJlYWx0ZWsscnRsODM2NW1iXG4rICAgIHRoZW46XG4rICAgICAgcHJvcGVydGllczpcbisgICAgICAgIGF2ZGRoLXN1cHBseTpcbisgICAgICAgICAgZGVzY3JpcHRpb246IEFWRERIIGhpZ2gtdm9sdGFnZSBhbmFsb2cgc3VwcGx5LlxuK1xuKyAgICAgICAgYXZkZGwtc3VwcGx5OlxuKyAgICAgICAgICBkZXNjcmlwdGlvbjogQVZEREwgbG93LXZvbHRhZ2UgYW5hbG9nIHN1cHBseS5cbitcbisgICAgICAgIGR2ZGRpby1zdXBwbHk6XG4rICAgICAgICAgIGRlc2NyaXB0aW9uOiBEVkRESU8gZGlnaXRhbCBJL08gc3VwcGx5LlxuK1xuKyAgICAgICAgZHZkZGlvMS1zdXBwbHk6XG4rICAgICAgICAgIGRlc2NyaXB0aW9uOiBEVkRESU9fMSBzZWNvbmRhcnkgZGlnaXRhbCBJL08gc3VwcGx5IGZvciB0aGUgUkdNSUkgYmFuay5cbitcbisgICAgICAgIGR2ZGRsLXN1cHBseTpcbisgICAgICAgICAgZGVzY3JpcHRpb246IERWRERMIGRpZ2l0YWwgY29yZSBzdXBwbHkuXG4rXG4rICAgICAgICBwbGx2ZGRsLXN1cHBseTpcbisgICAgICAgICAgZGVzY3JpcHRpb246IFBMTFZEREwgUExMIGFuYWxvZyBzdXBwbHkuXG4gXG4gbWFpbnRhaW5lcnM6XG4gICAtIExpbnVzIFdhbGxlaWogXHUwMDNjbGludXN3QGtlcm5lbC5vcmdcdTAwM2VcbkBAIC0yNDMsNiArMjY3LDcgQEAgZXhhbXBsZXM6XG4gICAgIHBsYXRmb3JtIHtcbiAgICAgICAgICAgICBldGhlcm5ldC1zd2l0Y2gge1xuICAgICAgICAgICAgICAgICAgICAgY29tcGF0aWJsZSA9IFwicmVhbHRlayxydGw4MzY1bWJcIjtcbisgICAgICAgICAgICAgICAgICAgIGF2ZGRoLXN1cHBseSA9IFx1MDAzY1x1MDAyNmF2ZGRoXHUwMDNlO1xuICAgICAgICAgICAgICAgICAgICAgbWRjLWdwaW9zID0gXHUwMDNjXHUwMDI2Z3BpbzEgMTYgR1BJT19BQ1RJVkVfSElHSFx1MDAzZTtcbiAgICAgICAgICAgICAgICAgICAgIG1kaW8tZ3Bpb3MgPSBcdTAwM2NcdTAwMjZncGlvMSAxNyBHUElPX0FDVElWRV9ISUdIXHUwMDNlO1xuICAgICAgICAgICAgICAgICAgICAgcmVzZXQtZ3Bpb3MgPSBcdTAwM2NcdTAwMjZncGlvNSAwIEdQSU9fQUNUSVZFX0xPV1x1MDAzZTtcbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9yZWFsdGVrLmggYi9kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9yZWFsdGVrLmhcbmluZGV4IDZlMDE0OGNlZThkODcuLjc1YTEyNzU0NWU1ZGQgMTAwNjQ0XG4tLS0gYS9kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9yZWFsdGVrLmhcbisrKyBiL2RyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3JlYWx0ZWsuaFxuQEAgLTE2Niw2ICsxNjYsOSBAQCBzdHJ1Y3QgcmVhbHRla192YXJpYW50IHtcbiBcdHU4IGNtZF9yZWFkO1xuIFx0dTggY21kX3dyaXRlO1xuIFx0c2l6ZV90IGNoaXBfZGF0YV9zejtcbitcdC8qIFJlZ3VsYXRvciBzdXBwbGllcyB0byBlbmFibGUgYXQgcHJvYmUsIG9yIE5VTEwgKi9cbitcdGNvbnN0IGNoYXIgKmNvbnN0ICpzdXBwbGllcztcbitcdGludCBudW1fc3VwcGxpZXM7XG4gfTtcbiBcbiAvKiBSVEw4MzY2IGxpYnJhcnkgaGVscGVycyAqL1xuZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzNjVtYl9tYWluLmMgYi9kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4MzY1bWJfbWFpbi5jXG5pbmRleCA3MjgyMzFkOGY5NGNhLi40YzMwNTc1NjExNmNjIDEwMDY0NFxuLS0tIGEvZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcnRsODM2NW1iX21haW4uY1xuKysrIGIvZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcnRsODM2NW1iX21haW4uY1xuQEAgLTMzMzQsNiArMzMzNCwxMCBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IHJlYWx0ZWtfb3BzIHJ0bDgzNjVtYl9vcHMgPSB7XG4gXHQucGh5X3dyaXRlID0gcnRsODM2NW1iX3BoeV93cml0ZSxcbiB9O1xuIFxuK3N0YXRpYyBjb25zdCBjaGFyICpjb25zdCBydGw4MzY1bWJfc3VwcGxpZXNbXSA9IHtcbitcdFwiYXZkZGhcIiwgXCJhdmRkbFwiLCBcImR2ZGRpb1wiLCBcImR2ZGRpbzFcIiwgXCJkdmRkbFwiLCBcInBsbHZkZGxcIixcbit9O1xuK1xuIGNvbnN0IHN0cnVjdCByZWFsdGVrX3ZhcmlhbnQgcnRsODM2NW1iX3ZhcmlhbnQgPSB7XG4gXHQuZHNfb3BzID0gXHUwMDI2cnRsODM2NW1iX3N3aXRjaF9vcHMsXG4gXHQub3BzID0gXHUwMDI2cnRsODM2NW1iX29wcyxcbkBAIC0zMzQyLDYgKzMzNDYsOCBAQCBjb25zdCBzdHJ1Y3QgcmVhbHRla192YXJpYW50IHJ0bDgzNjVtYl92YXJpYW50ID0ge1xuIFx0LmNtZF9yZWFkID0gMHhiOSxcbiBcdC5jbWRfd3JpdGUgPSAweGI4LFxuIFx0LmNoaXBfZGF0YV9zeiA9IHNpemVvZihzdHJ1Y3QgcnRsODM2NW1iKSxcbitcdC5zdXBwbGllcyA9IHJ0bDgzNjVtYl9zdXBwbGllcyxcbitcdC5udW1fc3VwcGxpZXMgPSBBUlJBWV9TSVpFKHJ0bDgzNjVtYl9zdXBwbGllcyksXG4gfTtcbiBcbiBzdGF0aWMgY29uc3Qgc3RydWN0IG9mX2RldmljZV9pZCBydGw4MzY1bWJfb2ZfbWF0Y2hbXSA9IHtcbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4M3h4LmMgYi9kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4M3h4LmNcbmluZGV4IDM1ZGY4MDlhNTk1MTguLjBhZTllMzExZWY4NzQgMTAwNjQ0XG4tLS0gYS9kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4M3h4LmNcbisrKyBiL2RyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzeHguY1xuQEAgLTIsNiArMiw3IEBAXG4gXG4gI2luY2x1ZGUgXHUwMDNjbGludXgvbW9kdWxlLmhcdTAwM2VcbiAjaW5jbHVkZSBcdTAwM2NsaW51eC9yZWdtYXAuaFx1MDAzZVxuKyNpbmNsdWRlIFx1MDAzY2xpbnV4L3JlZ3VsYXRvci9jb25zdW1lci5oXHUwMDNlXG4gI2luY2x1ZGUgXHUwMDNjbGludXgvb2ZfbWRpby5oXHUwMDNlXG4gI2luY2x1ZGUgXHUwMDNjbGludXgvaWZfYnJpZGdlLmhcdTAwM2VcbiAjaW5jbHVkZSBcdTAwM2NsaW51eC9ldGhlcmRldmljZS5oXHUwMDNlXG5AQCAtMTk1LDcgKzE5NiwxNiBAQCBydGw4M3h4X3Byb2JlKHN0cnVjdCBkZXZpY2UgKmRldixcbiBcdHByaXYtXHUwMDNlbGVkc19kaXNhYmxlZCA9IG9mX3Byb3BlcnR5X3JlYWRfYm9vbChkZXYtXHUwMDNlb2Zfbm9kZSxcbiBcdFx0XHRcdFx0XHQgICAgXCJyZWFsdGVrLGRpc2FibGUtbGVkc1wiKTtcbiBcbi1cdC8qIFRPRE86IGlmIHBvd2VyIGlzIHNvZnR3YXJlIGNvbnRyb2xsZWQsIHNldCB1cCBhbnkgcmVndWxhdG9ycyBoZXJlICovXG4rXHQvKiBFbmFibGUgdGhlIHN1cHBsaWVzIGJlZm9yZSB0aGUgcmVzZXQgbGluZSBpcyByZXF1ZXN0ZWQgYW5kIGRyaXZlbixcbitcdCAqIHNvIHRoZSBjaGlwIGlzIHBvd2VyZWQgYmVmb3JlIGl0cyBwaW5zIGFyZSBkcml2ZW4uXG4rXHQgKi9cbitcdGlmICh2YXItXHUwMDNlbnVtX3N1cHBsaWVzKSB7XG4rXHRcdHJldCA9IGRldm1fcmVndWxhdG9yX2J1bGtfZ2V0X2VuYWJsZShkZXYsIHZhci1cdTAwM2VudW1fc3VwcGxpZXMsXG4rXHRcdFx0XHRcdFx0ICAgICB2YXItXHUwMDNlc3VwcGxpZXMpO1xuK1x0XHRpZiAocmV0KVxuK1x0XHRcdHJldHVybiBkZXZfZXJyX3B0cl9wcm9iZShkZXYsIHJldCwgXCJmYWlsZWQgdG8gZW5hYmxlIHN1cHBsaWVzXFxuXCIpO1xuK1x0fVxuK1xuIFx0cHJpdi1cdTAwM2VyZXNldF9jdGwgPSBkZXZtX3Jlc2V0X2NvbnRyb2xfZ2V0X29wdGlvbmFsKGRldiwgTlVMTCk7XG4gXHRpZiAoSVNfRVJSKHByaXYtXHUwMDNlcmVzZXRfY3RsKSlcbiBcdFx0cmV0dXJuIGRldl9lcnJfY2FzdF9wcm9iZShkZXYsIHByaXYtXHUwMDNlcmVzZXRfY3RsLFxuQEAgLTIxNiw2ICsyMjYsMTEgQEAgcnRsODN4eF9wcm9iZShzdHJ1Y3QgZGV2aWNlICpkZXYsXG4gXHRcdHJ0bDgzeHhfcmVzZXRfZGVhc3NlcnQocHJpdik7XG4gXHRcdG1zbGVlcChSRUFMVEVLX0hXX1NUQVJUX0RFTEFZKTtcbiBcdFx0ZGV2X2RiZyhkZXYsIFwiZGVhc3NlcnRlZCBSRVNFVFxcblwiKTtcbitcdH0gZWxzZSBpZiAodmFyLVx1MDAzZW51bV9zdXBwbGllcykge1xuK1x0XHQvKiBQb3dlcmVkIGJ1dCBubyByZXNldCBsaW5lOiBzdGlsbCB3YWl0IGZvciB0aGUgY2hpcCB0byBib290XG4rXHRcdCAqIGJlZm9yZSB0aGUgZmlyc3QgcmVnaXN0ZXIgYWNjZXNzLlxuK1x0XHQgKi9cbitcdFx0bXNsZWVwKFJFQUxURUtfSFdfU1RBUlRfREVMQVkpO1xuIFx0fVxuIFxuIFx0cmV0dXJuIHByaXY7XG4iLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0xMVQxMjowMDoxNC43MDM3NzM5MTZaIiwiU2VxIjozLCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo4OTYxNDc3NjIzLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkFuYWx5emluZyB0aGUgUGF0Y2ggZm9yIEZ1enppbmcgUG90ZW50aWFsKipcblxuT2theSwgc28gSSd2ZSBnb3QgdGhpcyBwYXRjaCB0aGF0IGFkZHMgcmVndWxhdG9yIHN1cHBvcnQgdG8gdGhlIFJlYWx0ZWsgRFNBIHN3aXRjaCBkcml2ZXIsIHNwZWNpZmljYWxseSBgcnRsODN4eC5jYC4gTXkgaW5pdGlhbCB0aG91Z2h0IGlzIHRvIGFuYWx5emUgaWYgdGhpcyB3YXJyYW50cyBmdXp6aW5nLCBrZWVwaW5nIGluIG1pbmQgdGhvc2Ugc3BlY2lmaWMgY3JpdGVyaWEuIEl0J3MgbW9kaWZ5aW5nIGBydGw4M3h4X3Byb2JlYCB0byBlbmFibGUgcmVndWxhdG9ycyBpZiB0aGUgYG51bV9zdXBwbGllc2AgdmFyaWFibGUgaXMgc2V0LiBUaGVyZSBhcmUgYWxzbyBjaGFuZ2VzIHRvIGRlZmluZSByZWd1bGF0b3Igc3VwcGxpZXMgaW4gYHJ0bDgzNjVtYl9tYWluLmNgLiBUaGlzIHNlZW1zIHN0cmFpZ2h0Zm9yd2FyZDogZGV2aWNlIHRyZWUgYmluZGluZ3MgYW5kIG1vZGlmaWNhdGlvbnMgd2l0aGluIHRoZSBkcml2ZXIncyBwcm9iZSBmdW5jdGlvbi5cblxuTm93LCBJIG5lZWQgdG8gYXBwbHkgdGhlIHNwZWNpZmljIGluc3RydWN0aW9ucyBwcm92aWRlZC4gVGhlIHByb21wdCBpcyBhc2tpbmcgbWUgdG8gY29uc2lkZXIgd2hldGhlciB0aGUgcGF0Y2ggaXMgbm90IHdvcnRoIGZ1enppbmcgaWYgaXQgY29udGFpbnMgY29kZSByZWxhdGVkIHRvIHZlbmRvci1zcGVjaWZpYyBQQ0llIHN3aXRjaCBkcml2ZXJzIG9yLCBzcGVjaWZpY2FsbHksIGRyaXZlciB0ZWFyZG93biBmdW5jdGlvbnMgdGhhdCBhcmUgb25seSB1c2VkIGR1cmluZyBQQ0kgaG90LXVucGx1Zy5cblxuRmlyc3QsIGlzIHRoaXMgUmVhbHRlayBkcml2ZXIgYSBQQ0llIHN3aXRjaCBkcml2ZXI/IE5vLCBpdCdzIGEgRFNBIChEaXN0cmlidXRlZCBTd2l0Y2ggQXJjaGl0ZWN0dXJlKSBzd2l0Y2gsIHR5cGljYWxseSBjb25uZWN0ZWQgdmlhIE1ESU8gb3IgSTJDIG9yIFNQSS4gVGhpcyBSZWFsdGVrIGRyaXZlciBtYW5hZ2VzIHRoZXNlIHNwZWNpZmljIHN3aXRjaGVzLCBhbmQgbXkgZXhwZXJpZW5jZSBpcyB0aGF0IHRoZXNlIHR5cGVzIG9mIGRldmljZXMgYXJlIG5vdCBvZnRlbiBkaXJlY3RseSBlbXVsYXRlZC4gVGhpcyBtZWFucyB0aGF0IGlmIGl0IHJlbGllcyBvbiBwaHlzaWNhbCBoYXJkd2FyZSwgaXQgbWF5IGJlIGRpZmZpY3VsdCB0byBmdXp6LiBTcGVjaWZpY2FsbHksIGlmIHRoZSBwcm9iZSBmdW5jdGlvbiBmYWlscyBhbmQgd2UgY2FuJ3QgZW11bGF0ZSB0aGlzIGlzIGEgcHJvYmxlbS5cblxuVGhlIGBydGw4M3h4X3Byb2JlYCBmdW5jdGlvbiBpcyB0cmlnZ2VyZWQgd2hlbiB0aGUgZGV2aWNlIGlzIHByb2JlZC4gVGhlIHBhdGNoIGlzIGFkZGluZyBgZGV2bV9yZWd1bGF0b3JfYnVsa19nZXRfZW5hYmxlYCBhbmQgYSBkZWxheSBkdXJpbmcgdGhhdCBwcm9iZS4gVGhhdCdzIGEgc3Ryb25nIGluZGljYXRvciB0aGF0IHRoaXMgaXMgaGFyZHdhcmUgaW5pdGlhbGl6YXRpb24tcmVsYXRlZC4gVGhpcyByZWluZm9yY2VzIG15IGNvbmNlcm46IGNhbiB0aGlzIGJlIGZ1enplZCByZWxpYWJseT8gUHJvYmUgZnVuY3Rpb25zIGZvciBoYXJkd2FyZSBhcmUgbm90IHJlYWRpbHkgZnV6emVkIHVubGVzcyB3ZSBoYXZlIGEgdmlydHVhbCBkZXZpY2Ugb3IgY2FuIGluamVjdCBJMkMgb3IgTURJTyB0cmFmZmljLCB3aGljaCB3b3VsZCBiZSBkaWZmaWN1bHQgdG8gc2V0IHVwIGluIGEgc3RhbmRhcmQgZnV6emluZyBlbnZpcm9ubWVudC5cblxuR2l2ZW4gdGhlIGNyaXRlcmlhLCBpcyB0aGlzIHZlbmRvci1zcGVjaWZpYz8gWWVzLCBSZWFsdGVrIERTQSBzd2l0Y2ggZHJpdmVyLiBEb2VzIGl0IHJlcXVpcmUgcGh5c2ljYWwgaGFyZHdhcmU/IFllcywgaXQncyBhIGhhcmR3YXJlIHN3aXRjaC4gSXQgbmVlZHMgcGh5c2ljYWwgaGFyZHdhcmUuIFRoZXJlZm9yZSwgdGhlIHBhdGNoIGxvb2tzIGxpa2UgaXQgZmFsbHMgaW50byB0aGUgY2F0ZWdvcnkgZGVzY3JpYmVkIGluIHRoZSBwcm9tcHQuIEkgd2lsbCB1c2UgZ3JlcHBlciB0byBjb25maXJtIHRoYXQgYHJ0bDgzeHhfcHJvYmVgIGlzIGNhbGxlZC5cblxuXG4iLCJJbnB1dFRva2VucyI6MzU0NSwiT3V0cHV0VG9rZW5zIjoyMCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjU5NCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTExVDEyOjAwOjIzLjY2NTI1NDAyOFoiLCJTZXEiOjQsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoyMTI2MzI3NzY2LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcInJ0bDgzeHhfcHJvYmVcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcmVhbHRlay1tZGlvLmM9MTIxPWludCByZWFsdGVrX21kaW9fcHJvYmUoc3RydWN0IG1kaW9fZGV2aWNlICptZGlvZGV2KVxcbi0tXFxuZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcmVhbHRlay1tZGlvLmMtMTI2LVxcbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3JlYWx0ZWstbWRpby5jOjEyNzpcXHRwcml2ID0gcnRsODN4eF9wcm9iZShkZXYsIFxcdTAwMjZyZWFsdGVrX21kaW9faW5mbyk7XFxuZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcmVhbHRlay1tZGlvLmMtMTI4LVxcdGlmIChJU19FUlIocHJpdikpXFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9yZWFsdGVrLXNtaS5jPTMzMT1pbnQgcmVhbHRla19zbWlfcHJvYmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldilcXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3JlYWx0ZWstc21pLmMtMzM2LVxcbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3JlYWx0ZWstc21pLmM6MzM3OlxcdHByaXYgPSBydGw4M3h4X3Byb2JlKGRldiwgXFx1MDAyNnJlYWx0ZWtfc21pX2luZm8pO1xcbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3JlYWx0ZWstc21pLmMtMzM4LVxcdGlmIChJU19FUlIocHJpdikpXFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4M3h4LmM9MTE1PUVYUE9SVF9TWU1CT0xfTlNfR1BMKHJ0bDgzeHhfc2V0dXBfdXNlcl9tZGlvLCBcXFwiUkVBTFRFS19EU0FcXFwiKTtcXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzeHguYy0xMTctLyoqXFxuZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcnRsODN4eC5jOjExODogKiBydGw4M3h4X3Byb2JlKCkgLSBwcm9iZSBhIFJlYWx0ZWsgc3dpdGNoXFxuZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcnRsODN4eC5jLTExOS0gKiBAZGV2OiB0aGUgZGV2aWNlIGJlaW5nIHByb2JlZFxcbi0tXFxuZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcnRsODN4eC5jPTEzMT1zdHJ1Y3QgcmVhbHRla19wcml2ICpcXG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4M3h4LmM6MTMyOnJ0bDgzeHhfcHJvYmUoc3RydWN0IGRldmljZSAqZGV2LFxcbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzeHguYy0xMzMtXFx0ICAgICAgY29uc3Qgc3RydWN0IHJlYWx0ZWtfaW50ZXJmYWNlX2luZm8gKmludGVyZmFjZV9pbmZvKVxcbi0tXFxuZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcnRsODN4eC5jLTIzNy19XFxuZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcnRsODN4eC5jOjIzODpFWFBPUlRfU1lNQk9MX05TX0dQTChydGw4M3h4X3Byb2JlLCBcXFwiUkVBTFRFS19EU0FcXFwiKTtcXG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4M3h4LmMtMjM5LVxcbi0tXFxuZHJpdmVycy9uZXQvZHNhL3JlYWx0ZWsvcnRsODN4eC5oPTE0PXN0cnVjdCByZWFsdGVrX3ByaXYgKlxcbmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3J0bDgzeHguaDoxNTpydGw4M3h4X3Byb2JlKHN0cnVjdCBkZXZpY2UgKmRldixcXG5kcml2ZXJzL25ldC9kc2EvcmVhbHRlay9ydGw4M3h4LmgtMTYtXFx0ICAgICAgY29uc3Qgc3RydWN0IHJlYWx0ZWtfaW50ZXJmYWNlX2luZm8gKmludGVyZmFjZV9pbmZvKTtcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMTFUMTI6MDA6MjUuNzkxNTg2OTI0WiIsIlNlcSI6NSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NjMxMzM2MDUxMiwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipNeSBBc3Nlc3NtZW50OiBOb3QgV29ydGggRnV6emluZyoqXG5cbk9rYXksIHNvIEkndmUgbG9va2VkIGF0IHRoaXMgcGF0Y2guIEl0J3MgYWRkaW5nIHJlZ3VsYXRvciBzdXBwb3J0IHRvIGEgUmVhbHRlayBEU0Egc3dpdGNoIGRyaXZlci4gSW1tZWRpYXRlbHksIGFsYXJtIGJlbGxzIGFyZSByaW5naW5nIOKAkyB0aGlzIGlzIGhhcmR3YXJlLXNwZWNpZmljLCBtZWFuaW5nIGl0ICpuZWVkcyogcGh5c2ljYWwgaGFyZHdhcmUgb3IsIGF0IHRoZSB2ZXJ5IGxlYXN0LCBhIHZlcnkgc3BlY2lmaWMgZGV2aWNlIHRyZWUgYW5kIE1ESU8vU01JIGJ1cyBlbXVsYXRpb24gdG8gZXZlbiBiZSBwcm9iZWQuIEV2ZW4gaWYgd2UgKmNvdWxkKiBwcm9iZSBpdCwgYWxsIHRoZSBwYXRjaCBkb2VzIGlzIGNhbGwgYGRldm1fcmVndWxhdG9yX2J1bGtfZ2V0X2VuYWJsZWAgYW5kIHRoZW4gYG1zbGVlcGAuIFdlJ3JlIHRhbGtpbmcgcHVyZSBoYXJkd2FyZSBpbml0aWFsaXphdGlvbiBoZXJlLlxuXG5TbywgaXMgaXQgZnV6emFibGU/IE5vcGUsIG5vdCBpbiBhIHN0YW5kYXJkIHZpcnR1YWxpemVkIGVudmlyb25tZW50LiBJdCdzIGp1c3QgYWRkaW5nIHJlZ3VsYXRvciBlbmFibGVtZW50LCBhbmQgbW9yZSBpbXBvcnRhbnRseSwgaXQncyBhIHZlbmRvci1zcGVjaWZpYyBoYXJkd2FyZSBkcml2ZXIgdGhhdCB3b24ndCB3b3JrIHdpdGhvdXQgY3VzdG9tIGVtdWxhdGlvbi5cblxuTGV0J3MgcXVpY2tseSBjaGVjayB0aGUgZ3VpZGVsaW5lcyBhZ2Fpbi4gQWgsIGhlcmUgaXQgaXM6IFwiUmV0dXJuIFdvcnRoRnV6emluZz1mYWxzZSBpZiB0aGUgcGF0Y2ggb25seSBjb250YWlucy4uLiBjb2RlIGluIHZlbmRvci1zcGVjaWZpYyBQQ0llIHN3aXRjaCwgU21hcnROSUMsIG9yIEdQVSBkcml2ZXJzIChlLmcuLCBtbHhzdywgcGRzX2NvcmUsIHFlZCwgaW9uaWMsIGFtZGdwdSkgdGhhdCByZXF1aXJlIHBoeXNpY2FsIFBDSWUgaGFyZHdhcmUgY2FyZHMgbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIFFFTVUuXCJcblxuV2hpbGUgdGhpcyBpcyBhbiBNRElPL1NNSSBzd2l0Y2ggYW5kICpub3QqIFBDSWUsIHRoZSBjb3JlIGxvZ2ljIHN0aWxsIGFwcGxpZXMuIEl0J3MgdmVuZG9yLXNwZWNpZmljLCBkZXBlbmRlbnQgb24gaGFyZHdhcmUgbm90IHJlYWRpbHkgYXZhaWxhYmxlIGluIHN0YW5kYXJkIFFFTVUsIGFuZCB0aGUgY2hhbmdlIGl0c2VsZiBpcyBmdW5jdGlvbmFsbHkgdHJpdmlhbCAocmVndWxhdG9yIGVuYWJsZSkuXG5cbkdpdmVuIGFsbCB0aGF0LCBJJ20gbWFya2luZyB0aGlzIG9uZSBhcyBXb3J0aEZ1enppbmc9ZmFsc2UuIEl0J3MganVzdCBub3QgcHJhY3RpY2FsIG9yIGVmZmljaWVudCB0byB0cnkgZnV6emluZyB0aGlzLlxuXG5cbiIsIklucHV0VG9rZW5zIjo1MzU4LCJPdXRwdXRUb2tlbnMiOjEwNywiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjI2OSwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wOC0xMVQxMjowMDozMi4xMDQ5NDk4MTZaIiwiU2VxIjo2LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJzZXQtcmVzdWx0cyIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjE3NDQwLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW10sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIG9ubHkgYWRkcyByZWd1bGF0b3Igc3VwcG9ydCB0byB0aGUgcHJvYmUgZnVuY3Rpb24gb2YgdGhlIFJlYWx0ZWsgRFNBIHN3aXRjaCBkcml2ZXIuIFRoaXMgaXMgYSB2ZW5kb3Itc3BlY2lmaWMgaGFyZHdhcmUgZHJpdmVyIHRoYXQgcmVxdWlyZXMgcGh5c2ljYWwgaGFyZHdhcmUgKG9yIHNwZWNpZmljIE1ESU8vU01JIGVtdWxhdGlvbikgbm90IHByZXNlbnQgaW4gc3RhbmRhcmQgdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzLiBGdXJ0aGVybW9yZSwgdGhlIGNoYW5nZXMgYXJlIGxpbWl0ZWQgdG8gaGFyZHdhcmUgaW5pdGlhbGl6YXRpb24gKGVuYWJsaW5nIHJlZ3VsYXRvcnMgYW5kIGFkZGluZyBhIGRlbGF5KSwgd2hpY2ggZG9lcyBub3QgaW50cm9kdWNlIGNvbXBsZXggbG9naWMgd29ydGggZnV6emluZy5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogZmFsc2Vcbn0iLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogbnVsbCxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW10sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIG9ubHkgYWRkcyByZWd1bGF0b3Igc3VwcG9ydCB0byB0aGUgcHJvYmUgZnVuY3Rpb24gb2YgdGhlIFJlYWx0ZWsgRFNBIHN3aXRjaCBkcml2ZXIuIFRoaXMgaXMgYSB2ZW5kb3Itc3BlY2lmaWMgaGFyZHdhcmUgZHJpdmVyIHRoYXQgcmVxdWlyZXMgcGh5c2ljYWwgaGFyZHdhcmUgKG9yIHNwZWNpZmljIE1ESU8vU01JIGVtdWxhdGlvbikgbm90IHByZXNlbnQgaW4gc3RhbmRhcmQgdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzLiBGdXJ0aGVybW9yZSwgdGhlIGNoYW5nZXMgYXJlIGxpbWl0ZWQgdG8gaGFyZHdhcmUgaW5pdGlhbGl6YXRpb24gKGVuYWJsaW5nIHJlZ3VsYXRvcnMgYW5kIGFkZGluZyBhIGRlbGF5KSwgd2hpY2ggZG9lcyBub3QgaW50cm9kdWNlIGNvbXBsZXggbG9naWMgd29ydGggZnV6emluZy5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogZmFsc2Vcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTExVDEyOjAwOjMyLjEwNDk3MDc5NloiLCJTZXEiOjcsIk5lc3RpbmciOjEsIlR5cGUiOiJhY3Rpb24iLCJOYW1lIjoiSWYiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoxOTgwLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiV29ydGhGdXp6aW5nXCI6IGZhbHNlXG59IiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfV07CgkJCWlmICghcmF3RGF0YSB8fCByYXdEYXRhLmxlbmd0aCA9PT0gMCkgcmV0dXJuOwoKCQkJZHJhd1N1bW1hcnlUYWJsZXMocmF3RGF0YSk7CgkJCWRyYXdEdXJhdGlvbkNoYXJ0KHJhd0RhdGEpOwoJCQlkcmF3VG9rZW5Db25zdW1wdGlvbkNoYXJ0KHJhd0RhdGEpOwoJCX0KCgkJZnVuY3Rpb24gZHJhd1N1bW1hcnlUYWJsZXMocmF3RGF0YSkgewoJCQljb25zdCBzdGF0cyA9IHsKCQkJCWxsbTogeyBjb3VudDogMCwgdG9rZW5zOiAwLCBkdXJhdGlvbjogMCB9LAoJCQkJdG9vbDogeyBjb3VudDogMCwgZHVyYXRpb246IDAgfQoJCQl9OwoKCQkJcmF3RGF0YS5mb3JFYWNoKHMgPT4gewoJCQkJY29uc3QgZHVyID0gcy5EdXJhdGlvbiAvIDEwMDAwMDAwMDA7IAoJCQkJaWYgKHMuVHlwZSA9PT0gImxsbSIpIHsKCQkJCQlzdGF0cy5sbG0uY291bnQrKzsKCQkJCQlzdGF0cy5sbG0udG9rZW5zICs9IChzLklucHV0VG9rZW5zICsgcy5PdXRwdXRUb2tlbnMgKyBzLk91dHB1dFRob3VnaHRzVG9rZW5zKTsKCQkJCQlzdGF0cy5sbG0uZHVyYXRpb24gKz0gZHVyOwoJCQkJfSBlbHNlIGlmIChzLlR5cGUgPT09ICJ0b29sIikgewoJCQkJCXN0YXRzLnRvb2wuY291bnQrKzsKCQkJCQlzdGF0cy50b29sLmR1cmF0aW9uICs9IGR1cjsKCQkJCX0KCQkJfSk7CgoJCQljb25zdCBhdmdMbG1EdXIgPSBzdGF0cy5sbG0uY291bnQgPiAwID8gKHN0YXRzLmxsbS5kdXJhdGlvbiAvIHN0YXRzLmxsbS5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgkJCWNvbnN0IGF2Z0xsbVRva2VuID0gc3RhdHMubGxtLmNvdW50ID4gMCA/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-workflowpblwz[1] Phase: Running StartedAt: 2026-08-11 12:00:43 +0000 UTC FinishedAt: 0001-01-01 00:00:00 +0000 UTC Input: nil Output: nil --------- Name: series-workflowpblwz[1].abort-on-skip-outcome Phase: Failed StartedAt: 2026-08-11 12:00:43 +0000 UTC FinishedAt: 2026-08-11 12:00:48 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:code,Default:nil,Value:*1,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},} Output: &Outputs{Parameters:[]Parameter{},Artifacts:[]Artifact{},Result:nil,ExitCode:*1,}