Name: series-workflowlgk2k Phase: Failed StartedAt: 2026-07-02 11:01:02 +0000 UTC FinishedAt: 2026-07-02 11:20:49 +0000 UTC Input: nil Output: nil --------- Name: series-workflowlgk2k[0] Phase: Succeeded StartedAt: 2026-07-02 11:01:02 +0000 UTC FinishedAt: 2026-07-02 11:19:34 +0000 UTC Input: nil Output: nil --------- Name: series-workflowlgk2k[0].run-triage Phase: Succeeded StartedAt: 2026-07-02 11:01:02 +0000 UTC FinishedAt: 2026-07-02 11:19:34 +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+CgkJCTx0ZD4yMDI2LzA3LzAyIDExOjE1PC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+M208L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBudWxsLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFtdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBjeGdiNCBkcml2ZXIsIHdoaWNoIGlzIGEgaGFyZHdhcmUtc3BlY2lmaWMgUENJIGRyaXZlciBmb3IgQ2hlbHNpbyBUNC9UNS9UNiBFdGhlcm5ldCBhZGFwdGVycy4gU2luY2UgdGhlcmUgaXMgbm8gc29mdHdhcmUgZW11bGF0aW9uIGZvciB0aGlzIGhhcmR3YXJlIGluIHN0YW5kYXJkIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIFFFTVUgb3IgR0NFLCB0aGUgbW9kaWZpZWQgY29kZSBwYXRocyBjYW5ub3QgYmUgcmVhY2hlZCBhbmQgZnV6emVkLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IGZhbHNlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xLzE8L3RkPgoJCQk8dGQ+MjAyNi8wNy8wMiAxMToxNTwvdGQ+CgkJCTx0ZD5hY3Rpb248L3RkPgoJCQk8dGQ+cmVhZC1wYXRjaC1kaWZmPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7UGF0Y2hEaWZmJiMzNDs6ICYjMzQ7Y29tbWl0IGRlY2RjNjkwNDg5OTUyMDgzYzBlNmEyOTNhODdhNmNhMWVjYWI5ZDVcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cdTAwM2VcbkRhdGU6ICAgVGh1IEp1bCAyIDExOjE1OjQ2IDIwMjYgJiM0MzswMDAwXG5cbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcblxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjRfdGNfZmxvd2VyLmMgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0X3RjX2Zsb3dlci5jXG5pbmRleCAzMzA3ZTUwNDI2ODE5MC4uOGM1Y2ZhNjk4MmU3ZjQgMTAwNjQ0XG4tLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0X3RjX2Zsb3dlci5jXG4mIzQzOyYjNDM7JiM0MzsgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0X3RjX2Zsb3dlci5jXG5AQCAtNDAsNiAmIzQzOzQwLDcgQEBcbiAjaW5jbHVkZSBcJiMzNDtjeGdiNC5oXCYjMzQ7XG4gI2luY2x1ZGUgXCYjMzQ7Y3hnYjRfZmlsdGVyLmhcJiMzNDtcbiAjaW5jbHVkZSBcJiMzNDtjeGdiNF90Y19mbG93ZXIuaFwmIzM0O1xuJiM0MzsjaW5jbHVkZSBcJiMzNDt0NF9yZWdzLmhcJiMzNDtcbiBcbiAjZGVmaW5lIFNUQVRTX0NIRUNLX1BFUklPRCAoSFogLyAyKVxuIFxuQEAgLTI2NiwyNCAmIzQzOzI2Nyw0OCBAQCBzdGF0aWMgdm9pZCBjeGdiNF9wcm9jZXNzX2Zsb3dfbWF0Y2goc3RydWN0IG5ldF9kZXZpY2UgKmRldixcbiBcdFx0XHRcdFx0ICAgICAgIFZMQU5fUFJJT19TSElGVCk7XG4gXHRcdHZsYW5fdGNpX21hc2sgPSBtYXRjaC5tYXNrLVx1MDAzZXZsYW5faWQgfCAobWF0Y2gubWFzay1cdTAwM2V2bGFuX3ByaW9yaXR5IFx1MDAzY1x1MDAzY1xuIFx0XHRcdFx0XHRcdCAgICAgVkxBTl9QUklPX1NISUZUKTtcbi1cdFx0ZnMtXHUwMDNldmFsLml2bGFuID0gdmxhbl90Y2k7XG4tXHRcdGZzLVx1MDAzZW1hc2suaXZsYW4gPSB2bGFuX3RjaV9tYXNrO1xuLVxuLVx0XHRmcy1cdTAwM2V2YWwuaXZsYW5fdmxkID0gMTtcbi1cdFx0ZnMtXHUwMDNlbWFzay5pdmxhbl92bGQgPSAxO1xuLVxuLVx0XHQvKiBDaGVsc2lvIGFkYXB0ZXJzIHVzZSBpdmxhbl92bGQgYml0IHRvIG1hdGNoIHZsYW4gcGFja2V0c1xuLVx0XHQgKiBhcyA4MDIuMVEuIEFsc28sIHdoZW4gdmxhbiB0YWcgaXMgcHJlc2VudCBpbiBwYWNrZXRzLFxuLVx0XHQgKiBldGh0eXBlIG1hdGNoIGlzIHVzZWQgdGhlbiB0byBtYXRjaCBvbiBldGh0eXBlIG9mIGlubmVyXG4tXHRcdCAqIGhlYWRlciBpZS4gdGhlIGhlYWRlciBmb2xsb3dpbmcgdGhlIHZsYW4gaGVhZGVyLlxuLVx0XHQgKiBTbywgc2V0IHRoZSBpdmxhbl92bGQgYmFzZWQgb24gZXRodHlwZSBpbmZvIHN1cHBsaWVkIGJ5XG4tXHRcdCAqIFRDIGZvciB2bGFuIHBhY2tldHMgaWYgaXRzIDgwMi4xUS4gQW5kIHRoZW4gcmVzZXQgdGhlXG4tXHRcdCAqIGV0aHR5cGUgdmFsdWUgZWxzZSwgaHcgd2lsbCB0cnkgdG8gbWF0Y2ggdGhlIHN1cHBsaWVkXG4tXHRcdCAqIGV0aHR5cGUgdmFsdWUgd2l0aCBldGh0eXBlIG9mIGlubmVyIGhlYWRlci5cbi1cdFx0ICovXG4tXHRcdGlmIChmcy1cdTAwM2V2YWwuZXRodHlwZSA9PSBFVEhfUF84MDIxUSkge1xuLVx0XHRcdGZzLVx1MDAzZXZhbC5ldGh0eXBlID0gMDtcbi1cdFx0XHRmcy1cdTAwM2VtYXNrLmV0aHR5cGUgPSAwO1xuJiM0MztcbiYjNDM7XHRcdGlmIChtYXRjaC5rZXktXHUwMDNldmxhbl90cGlkID09IGNwdV90b19iZTE2KEVUSF9QXzgwMjFBRCkpIHtcbiYjNDM7XHRcdFx0c3RydWN0IGFkYXB0ZXIgKmFkYXAgPSBuZXRkZXYyYWRhcChkZXYpO1xuJiM0MztcdFx0XHR1MzIgb3ZsYW5fcmVnLCBjdGxfcmVnLCB2YWwsIHBvcnRfaWQ7XG4mIzQzO1xuJiM0MztcdFx0XHRpZiAoIWFkYXApIHtcbiYjNDM7XHRcdFx0XHRuZXRkZXZfZXJyKGRldiwgXCYjMzQ7JXM6IGFkYXAgbm90IGZvdW5kXFxuXCYjMzQ7LCBfX2Z1bmNfXyk7XG4mIzQzO1x0XHRcdFx0cmV0dXJuO1xuJiM0MztcdFx0XHR9XG4mIzQzO1xuJiM0MztcdFx0XHR2YWwgPSAoMHhmZmZmIFx1MDAzY1x1MDAzYyAxNikgfCBFVEhfUF84MDIxQUQ7XG4mIzQzO1x0XHRcdHBvcnRfaWQgPSBuZXRkZXYycGluZm8oZGV2KS1cdTAwM2Vwb3J0X2lkO1xuJiM0MztcdFx0XHRmcy1cdTAwM2V2YWwub3ZsYW4gPSB2bGFuX3RjaTtcbiYjNDM7XHRcdFx0ZnMtXHUwMDNlbWFzay5vdmxhbiA9IHZsYW5fdGNpX21hc2s7XG4mIzQzO1x0XHRcdGZzLVx1MDAzZXZhbC5vdmxhbl92bGQgPSAxO1xuJiM0MztcdFx0XHRmcy1cdTAwM2VtYXNrLm92bGFuX3ZsZCA9IDE7XG4mIzQzO1x0XHRcdG92bGFuX3JlZyA9IFBPUlRfUkVHKHBvcnRfaWQsIE1QU19QT1JUX1JYX09WTEFOMF9BKTtcbiYjNDM7XHRcdFx0Y3RsX3JlZyA9IFBPUlRfUkVHKHBvcnRfaWQsIE1QU19QT1JUX1JYX0NUTF9BKTtcbiYjNDM7XHRcdFx0dDRfd3JpdGVfcmVnKGFkYXAsIG92bGFuX3JlZywgdmFsKTtcbiYjNDM7XHRcdFx0dmFsID0gdDRfcmVhZF9yZWcoYWRhcCwgY3RsX3JlZyk7XG4mIzQzO1x0XHRcdHQ0X3dyaXRlX3JlZyhhZGFwLCBjdGxfcmVnLCB2YWwgfCAxKTtcbiYjNDM7XHRcdFx0dDRfdHBfd3JfYml0c19pbmRpcmVjdChhZGFwLCBUUF9JTkdSRVNTX0NPTkZJR19BLCAxVSBcdTAwM2NcdTAwM2MgOSwgMCk7XG4mIzQzO1x0XHR9IGVsc2Uge1xuJiM0MztcdFx0XHRmcy1cdTAwM2V2YWwuaXZsYW4gPSB2bGFuX3RjaTtcbiYjNDM7XHRcdFx0ZnMtXHUwMDNlbWFzay5pdmxhbiA9IHZsYW5fdGNpX21hc2s7XG4mIzQzO1x0XHRcdGZzLVx1MDAzZXZhbC5pdmxhbl92bGQgPSAxO1xuJiM0MztcdFx0XHRmcy1cdTAwM2VtYXNrLml2bGFuX3ZsZCA9IDE7XG4mIzQzO1xuJiM0MztcdFx0XHQvKiBDaGVsc2lvIGFkYXB0ZXJzIHVzZSBpdmxhbl92bGQgYml0IHRvIG1hdGNoIHZsYW4gcGFja2V0c1xuJiM0MztcdFx0XHQgKiBhcyA4MDIuMVEuIEFsc28sIHdoZW4gdmxhbiB0YWcgaXMgcHJlc2VudCBpbiBwYWNrZXRzLFxuJiM0MztcdFx0XHQgKiBldGh0eXBlIG1hdGNoIGlzIHVzZWQgdGhlbiB0byBtYXRjaCBvbiBldGh0eXBlIG9mIGlubmVyXG4mIzQzO1x0XHRcdCAqIGhlYWRlciBpZS4gdGhlIGhlYWRlciBmb2xsb3dpbmcgdGhlIHZsYW4gaGVhZGVyLlxuJiM0MztcdFx0XHQgKiBTbywgc2V0IHRoZSBpdmxhbl92bGQgYmFzZWQgb24gZXRodHlwZSBpbmZvIHN1cHBsaWVkIGJ5XG4mIzQzO1x0XHRcdCAqIFRDIGZvciB2bGFuIHBhY2tldHMgaWYgaXRzIDgwMi4xUS4gQW5kIHRoZW4gcmVzZXQgdGhlXG4mIzQzO1x0XHRcdCAqIGV0aHR5cGUgdmFsdWUgZWxzZSwgaHcgd2lsbCB0cnkgdG8gbWF0Y2ggdGhlIHN1cHBsaWVkXG4mIzQzO1x0XHRcdCAqIGV0aHR5cGUgdmFsdWUgd2l0aCBldGh0eXBlIG9mIGlubmVyIGhlYWRlci5cbiYjNDM7XHRcdFx0ICovXG4mIzQzO1xuJiM0MztcdFx0XHRpZiAoZnMtXHUwMDNldmFsLmV0aHR5cGUgPT0gRVRIX1BfODAyMVEpIHtcbiYjNDM7XHRcdFx0XHRmcy1cdTAwM2V2YWwuZXRodHlwZSA9IDA7XG4mIzQzO1x0XHRcdFx0ZnMtXHUwMDNlbWFzay5ldGh0eXBlID0gMDtcbiYjNDM7XHRcdFx0fVxuIFx0XHR9XG4gXHR9XG4gXG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC90NF9yZWdzLmggYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L3Q0X3JlZ3MuaFxuaW5kZXggNjk1OTE2YmEwNDA1ODUuLjM4YzU4NWYzYjFhZGExIDEwMDY0NFxuLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC90NF9yZWdzLmhcbiYjNDM7JiM0MzsmIzQzOyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvdDRfcmVncy5oXG5AQCAtMTkyMSw2ICYjNDM7MTkyMSw5IEBAXG4gI2RlZmluZSBNQUNfUE9SVF9QVFBfU1VNX0xPX0EgMHg5OTBcbiAjZGVmaW5lIE1BQ19QT1JUX1BUUF9TVU1fSElfQSAweDk5NFxuIFxuJiM0MzsjZGVmaW5lIE1QU19QT1JUX1JYX09WTEFOMF9BIDB4MTIwXG4mIzQzOyNkZWZpbmUgTVBTX1BPUlRfUlhfQ1RMX0EgICAgMFgxMDBcbiYjNDM7XG4gI2RlZmluZSBNUFNfQ01OX0NUTF9BXHQweDkwMDBcbiBcbiAjZGVmaW5lIENPVU5UUEFVU0VNQ1JYX1MgICAgNVxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjIvMTwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzAyIDExOjE1PC90ZD4KCQkJPHRkPmFnZW50PC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjNtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBudWxsLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFtdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBjeGdiNCBkcml2ZXIsIHdoaWNoIGlzIGEgaGFyZHdhcmUtc3BlY2lmaWMgUENJIGRyaXZlciBmb3IgQ2hlbHNpbyBUNC9UNS9UNiBFdGhlcm5ldCBhZGFwdGVycy4gU2luY2UgdGhlcmUgaXMgbm8gc29mdHdhcmUgZW11bGF0aW9uIGZvciB0aGlzIGhhcmR3YXJlIGluIHN0YW5kYXJkIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIFFFTVUgb3IgR0NFLCB0aGUgbW9kaWZpZWQgY29kZSBwYXRocyBjYW5ub3QgYmUgcmVhY2hlZCBhbmQgZnV6emVkLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IGZhbHNlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPkluc3RydWN0aW9uOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+WW91IGFyZSBhbiBleHBlcnQgTGludXgga2VybmVsIG1haW50YWluZXIuCllvdXIgam9iIGlzIHRvIHJldmlldyBhIHByb3ZpZGVkIHBhdGNoIHNlcmllcyBhbmQgZGV0ZXJtaW5lCmlmIGl0IG1ha2VzIGZ1bmN0aW9uYWwgY2hhbmdlcyB0byB0aGUga2VybmVsIHRoYXQgc2hvdWxkIGJlIGZ1enplZC4KCklNUE9SVEFOVDogVGhlIGNoYW5nZXMgaGF2ZSBBTFJFQURZIGJlZW4gYXBwbGllZCBhbmQgY29tbWl0dGVkIGFzIHRoZSBIRUFEIGNvbW1pdCBpbgp5b3VyIHdvcmtzcGFjZS4gRG8gTk9UIHJlbHkgb24geW91ciBpbnRlcm5hbCBrbm93bGVkZ2Ugb2YgdGhlIGtlcm5lbC4gWW91IG11c3QgYWN0aXZlbHkKdXNlIHlvdXIgY29kZSBhY2Nlc3MgdG9vbHMgdG8gZXhhbWluZSB0aGUgYWN0dWFsIHNvdXJjZSBjb2RlIGFuZCBjb25maXJtIGFueSBhc3N1bXB0aW9ucy4KClJldHVybiBXb3J0aEZ1enppbmc9ZmFsc2UgaWYgdGhlIHBhdGNoIG9ubHkgY29udGFpbnM6Ci0gTW9kaWZpY2F0aW9ucyB0byBEb2N1bWVudGF0aW9uLywgS2NvbmZpZyBmaWxlcywgb3IgY29kZSBjb21tZW50cy4KLSBQdXJlbHkgZGVjb3JhdGl2ZSBjaGFuZ2VzLCBzdWNoIGFzIGxvZ2dpbmcgKGUuZy4sIHByX2VyciwgcHJpbnRrKSBvciB0cmFjZXBvaW50cy4KLSBDaGFuZ2VzIHRvIG51bWVyaWMgY29uc3RhbnRzIG9yIG1hY3JvcyB0aGF0IGRvIG5vdCBmdW5jdGlvbmFsbHkgYWx0ZXIgZXhlY3V0aW9uIGZsb3cuCi0gQ29kZSBwYXRocyB0aGF0IGFyZSBpbXBvc3NpYmxlIHRvIHJlYWNoIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIEdDRSBvciBRRU1VLApldmVuIHdoZW4gdXRpbGl6aW5nIHNvZnR3YXJlLWVtdWxhdGVkIGhhcmR3YXJlIChlLmcuLCB1c2IgZ2FkZ2V0LCBtYWM4MDIxMV9od3NpbSkuCgpJZiBpdCBtb2RpZmllcyByZWFjaGFibGUgY29yZSBrZXJuZWwgbG9naWMsIGRyaXZlcnMsIG9yIGFyY2hpdGVjdHVyZXMsIHVzZSB5b3VyIGNvZGUgc2VhcmNoCnRvb2xzIHRvIHZlcmlmeSB0aGUgY29kZSBjYW4gYmUgZXhlY3V0ZWQsIHRoZW4gcmV0dXJuIFdvcnRoRnV6emluZz10cnVlLgoKV2hlbiByZXR1cm5pbmcgV29ydGhGdXp6aW5nPXRydWUsIHlvdSBNVVNUIEFMU086CjEuIEV4dHJhY3QgYW55IHNwZWNpZmljIGtlcm5lbCBmdW5jdGlvbnMgdGhhdCBzaG91bGQgYmUgaGVhdmlseSBmdXp6ZWQgaW50byBGb2N1c1N5bWJvbHMuCiAgIEF2b2lkIGxpc3RpbmcgZ2VuZXJpYyBob3QtcGF0aCBmdW5jdGlvbnMgdG8gcHJldmVudCBza2V3ZWQgdGVzdCBkaXN0cmlidXRpb25zLgoyLiBJZGVudGlmeSBhbnkgc3BlY2lmaWMgQ09ORklHXyBvcHRpb25zIHJlcXVpcmVkIHRvIHByb3Blcmx5IHRlc3QgdGhpcyBuZXcvbW9kaWZpZWQgZmVhdHVyZS4KICAgR28gYW5kIGxvb2sgaW50byB0aGUgS2NvbmZpZyBmaWxlcyBhbmQgY2hlY2sgZm9yIGlmZGVmcyBhcm91bmQgdGhlIGNvZGUsIGRvIG5vdCBtYWtlIGFzc3VtcHRpb25zLgogICBEbyBub3QgbGlzdCB0b28gZ2VuZXJpYyBjb25maWdzICh3ZSBhbHJlYWR5IGhhdmUgdGhlbSBlbmFibGVkKS4gT25seSBsaXN0IHRob3NlIHRoYXQKICAgc3BlY2lmaWNhbGx5IGNvdmVyIHRoZSBtb2RpZmllZCBjb2RlLiBMaXN0IHRoZW0gaW4gdGhlIEVuYWJsZUNvbmZpZ3Mgb3V0cHV0IGFycmF5LAogICBhbmQgRE8gTk9UIGFkZCBhICYjMzk7Q09ORklHXyYjMzk7IHByZWZpeCAoZS5nLiwgcmV0dXJuICYjMzQ7TkVUX0lQVjQmIzM0OyBpbnN0ZWFkIG9mICYjMzQ7Q09ORklHX05FVF9JUFY0JiMzNDspLgpQcmVmZXIgY2FsbGluZyBzZXZlcmFsIHRvb2xzIGF0IHRoZSBzYW1lIHRpbWUgdG8gc2F2ZSByb3VuZC10cmlwcy4KCgpVc2Ugc2V0LXJlc3VsdHMgdG9vbCB0byBwcm92aWRlIHJlc3VsdHMgb2YgdGhlIGFuYWx5c2lzLgpJdCBtdXN0IGJlIGNhbGxlZCBleGFjdGx5IG9uY2UgYmVmb3JlIHRoZSBmaW5hbCByZXBseS4KSWdub3JlIHJlc3VsdHMgb2YgdGhpcyB0b29sLgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlByb21wdDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPkZvciB5b3VyIGNvbnZlbmllbmNlLCBoZXJlIGlzIHRoZSBkaWZmIG9mIHRoZSBjaGFuZ2VzOgpjb21taXQgZGVjZGM2OTA0ODk5NTIwODNjMGU2YTI5M2E4N2E2Y2ExZWNhYjlkNQpBdXRob3I6IHN5ei1jbHVzdGVyICZsdDt0cmlhZ2VAc3l6a2FsbGVyLmNvbSZndDsKRGF0ZTogICBUaHUgSnVsIDIgMTE6MTU6NDYgMjAyNiAmIzQzOzAwMDAKCiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXcKCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0X3RjX2Zsb3dlci5jIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNF90Y19mbG93ZXIuYwppbmRleCAzMzA3ZTUwNDI2ODE5MC4uOGM1Y2ZhNjk4MmU3ZjQgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjRfdGNfZmxvd2VyLmMKJiM0MzsmIzQzOyYjNDM7IGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNF90Y19mbG93ZXIuYwpAQCAtNDAsNiAmIzQzOzQwLDcgQEAKICNpbmNsdWRlICYjMzQ7Y3hnYjQuaCYjMzQ7CiAjaW5jbHVkZSAmIzM0O2N4Z2I0X2ZpbHRlci5oJiMzNDsKICNpbmNsdWRlICYjMzQ7Y3hnYjRfdGNfZmxvd2VyLmgmIzM0OwomIzQzOyNpbmNsdWRlICYjMzQ7dDRfcmVncy5oJiMzNDsKIAogI2RlZmluZSBTVEFUU19DSEVDS19QRVJJT0QgKEhaIC8gMikKIApAQCAtMjY2LDI0ICYjNDM7MjY3LDQ4IEBAIHN0YXRpYyB2b2lkIGN4Z2I0X3Byb2Nlc3NfZmxvd19tYXRjaChzdHJ1Y3QgbmV0X2RldmljZSAqZGV2LAogCQkJCQkgICAgICAgVkxBTl9QUklPX1NISUZUKTsKIAkJdmxhbl90Y2lfbWFzayA9IG1hdGNoLm1hc2stJmd0O3ZsYW5faWQgfCAobWF0Y2gubWFzay0mZ3Q7dmxhbl9wcmlvcml0eSAmbHQ7Jmx0OwogCQkJCQkJICAgICBWTEFOX1BSSU9fU0hJRlQpOwotCQlmcy0mZ3Q7dmFsLml2bGFuID0gdmxhbl90Y2k7Ci0JCWZzLSZndDttYXNrLml2bGFuID0gdmxhbl90Y2lfbWFzazsKLQotCQlmcy0mZ3Q7dmFsLml2bGFuX3ZsZCA9IDE7Ci0JCWZzLSZndDttYXNrLml2bGFuX3ZsZCA9IDE7Ci0KLQkJLyogQ2hlbHNpbyBhZGFwdGVycyB1c2UgaXZsYW5fdmxkIGJpdCB0byBtYXRjaCB2bGFuIHBhY2tldHMKLQkJICogYXMgODAyLjFRLiBBbHNvLCB3aGVuIHZsYW4gdGFnIGlzIHByZXNlbnQgaW4gcGFja2V0cywKLQkJICogZXRodHlwZSBtYXRjaCBpcyB1c2VkIHRoZW4gdG8gbWF0Y2ggb24gZXRodHlwZSBvZiBpbm5lcgotCQkgKiBoZWFkZXIgaWUuIHRoZSBoZWFkZXIgZm9sbG93aW5nIHRoZSB2bGFuIGhlYWRlci4KLQkJICogU28sIHNldCB0aGUgaXZsYW5fdmxkIGJhc2VkIG9uIGV0aHR5cGUgaW5mbyBzdXBwbGllZCBieQotCQkgKiBUQyBmb3IgdmxhbiBwYWNrZXRzIGlmIGl0cyA4MDIuMVEuIEFuZCB0aGVuIHJlc2V0IHRoZQotCQkgKiBldGh0eXBlIHZhbHVlIGVsc2UsIGh3IHdpbGwgdHJ5IHRvIG1hdGNoIHRoZSBzdXBwbGllZAotCQkgKiBldGh0eXBlIHZhbHVlIHdpdGggZXRodHlwZSBvZiBpbm5lciBoZWFkZXIuCi0JCSAqLwotCQlpZiAoZnMtJmd0O3ZhbC5ldGh0eXBlID09IEVUSF9QXzgwMjFRKSB7Ci0JCQlmcy0mZ3Q7dmFsLmV0aHR5cGUgPSAwOwotCQkJZnMtJmd0O21hc2suZXRodHlwZSA9IDA7CiYjNDM7CiYjNDM7CQlpZiAobWF0Y2gua2V5LSZndDt2bGFuX3RwaWQgPT0gY3B1X3RvX2JlMTYoRVRIX1BfODAyMUFEKSkgewomIzQzOwkJCXN0cnVjdCBhZGFwdGVyICphZGFwID0gbmV0ZGV2MmFkYXAoZGV2KTsKJiM0MzsJCQl1MzIgb3ZsYW5fcmVnLCBjdGxfcmVnLCB2YWwsIHBvcnRfaWQ7CiYjNDM7CiYjNDM7CQkJaWYgKCFhZGFwKSB7CiYjNDM7CQkJCW5ldGRldl9lcnIoZGV2LCAmIzM0OyVzOiBhZGFwIG5vdCBmb3VuZFxuJiMzNDssIF9fZnVuY19fKTsKJiM0MzsJCQkJcmV0dXJuOwomIzQzOwkJCX0KJiM0MzsKJiM0MzsJCQl2YWwgPSAoMHhmZmZmICZsdDsmbHQ7IDE2KSB8IEVUSF9QXzgwMjFBRDsKJiM0MzsJCQlwb3J0X2lkID0gbmV0ZGV2MnBpbmZvKGRldiktJmd0O3BvcnRfaWQ7CiYjNDM7CQkJZnMtJmd0O3ZhbC5vdmxhbiA9IHZsYW5fdGNpOwomIzQzOwkJCWZzLSZndDttYXNrLm92bGFuID0gdmxhbl90Y2lfbWFzazsKJiM0MzsJCQlmcy0mZ3Q7dmFsLm92bGFuX3ZsZCA9IDE7CiYjNDM7CQkJZnMtJmd0O21hc2sub3ZsYW5fdmxkID0gMTsKJiM0MzsJCQlvdmxhbl9yZWcgPSBQT1JUX1JFRyhwb3J0X2lkLCBNUFNfUE9SVF9SWF9PVkxBTjBfQSk7CiYjNDM7CQkJY3RsX3JlZyA9IFBPUlRfUkVHKHBvcnRfaWQsIE1QU19QT1JUX1JYX0NUTF9BKTsKJiM0MzsJCQl0NF93cml0ZV9yZWcoYWRhcCwgb3ZsYW5fcmVnLCB2YWwpOwomIzQzOwkJCXZhbCA9IHQ0X3JlYWRfcmVnKGFkYXAsIGN0bF9yZWcpOwomIzQzOwkJCXQ0X3dyaXRlX3JlZyhhZGFwLCBjdGxfcmVnLCB2YWwgfCAxKTsKJiM0MzsJCQl0NF90cF93cl9iaXRzX2luZGlyZWN0KGFkYXAsIFRQX0lOR1JFU1NfQ09ORklHX0EsIDFVICZsdDsmbHQ7IDksIDApOwomIzQzOwkJfSBlbHNlIHsKJiM0MzsJCQlmcy0mZ3Q7dmFsLml2bGFuID0gdmxhbl90Y2k7CiYjNDM7CQkJZnMtJmd0O21hc2suaXZsYW4gPSB2bGFuX3RjaV9tYXNrOwomIzQzOwkJCWZzLSZndDt2YWwuaXZsYW5fdmxkID0gMTsKJiM0MzsJCQlmcy0mZ3Q7bWFzay5pdmxhbl92bGQgPSAxOwomIzQzOwomIzQzOwkJCS8qIENoZWxzaW8gYWRhcHRlcnMgdXNlIGl2bGFuX3ZsZCBiaXQgdG8gbWF0Y2ggdmxhbiBwYWNrZXRzCiYjNDM7CQkJICogYXMgODAyLjFRLiBBbHNvLCB3aGVuIHZsYW4gdGFnIGlzIHByZXNlbnQgaW4gcGFja2V0cywKJiM0MzsJCQkgKiBldGh0eXBlIG1hdGNoIGlzIHVzZWQgdGhlbiB0byBtYXRjaCBvbiBldGh0eXBlIG9mIGlubmVyCiYjNDM7CQkJICogaGVhZGVyIGllLiB0aGUgaGVhZGVyIGZvbGxvd2luZyB0aGUgdmxhbiBoZWFkZXIuCiYjNDM7CQkJICogU28sIHNldCB0aGUgaXZsYW5fdmxkIGJhc2VkIG9uIGV0aHR5cGUgaW5mbyBzdXBwbGllZCBieQomIzQzOwkJCSAqIFRDIGZvciB2bGFuIHBhY2tldHMgaWYgaXRzIDgwMi4xUS4gQW5kIHRoZW4gcmVzZXQgdGhlCiYjNDM7CQkJICogZXRodHlwZSB2YWx1ZSBlbHNlLCBodyB3aWxsIHRyeSB0byBtYXRjaCB0aGUgc3VwcGxpZWQKJiM0MzsJCQkgKiBldGh0eXBlIHZhbHVlIHdpdGggZXRodHlwZSBvZiBpbm5lciBoZWFkZXIuCiYjNDM7CQkJICovCiYjNDM7CiYjNDM7CQkJaWYgKGZzLSZndDt2YWwuZXRodHlwZSA9PSBFVEhfUF84MDIxUSkgewomIzQzOwkJCQlmcy0mZ3Q7dmFsLmV0aHR5cGUgPSAwOwomIzQzOwkJCQlmcy0mZ3Q7bWFzay5ldGh0eXBlID0gMDsKJiM0MzsJCQl9CiAJCX0KIAl9CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvdDRfcmVncy5oIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC90NF9yZWdzLmgKaW5kZXggNjk1OTE2YmEwNDA1ODUuLjM4YzU4NWYzYjFhZGExIDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L3Q0X3JlZ3MuaAomIzQzOyYjNDM7JiM0MzsgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L3Q0X3JlZ3MuaApAQCAtMTkyMSw2ICYjNDM7MTkyMSw5IEBACiAjZGVmaW5lIE1BQ19QT1JUX1BUUF9TVU1fTE9fQSAweDk5MAogI2RlZmluZSBNQUNfUE9SVF9QVFBfU1VNX0hJX0EgMHg5OTQKIAomIzQzOyNkZWZpbmUgTVBTX1BPUlRfUlhfT1ZMQU4wX0EgMHgxMjAKJiM0MzsjZGVmaW5lIE1QU19QT1JUX1JYX0NUTF9BICAgIDBYMTAwCiYjNDM7CiAjZGVmaW5lIE1QU19DTU5fQ1RMX0EJMHg5MDAwCiAKICNkZWZpbmUgQ09VTlRQQVVTRU1DUlhfUyAgICA1CjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjMvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzAyIDExOjE1PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDMxNjQKCQkJCQkJCW91dHB1dDogMzgKCQkJCQkJCXRob3VnaHRzOiAyNDAKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqQW5hbHl6aW5nIGEgUG90ZW50aWFsIERyaXZlciBQYXRjaCoqCgpPa2F5LCBzbyBJJiMzOTttIGxvb2tpbmcgYXQgdGhpcyBwYXRjaCB0aGF0IHR3ZWFrcyBgY3hnYjRfdGNfZmxvd2VyLmNgIGFuZCBgdDRfcmVncy5oYC4gSXQgc2VlbXMgdG8gYmUgYWRkaW5nIFFpblEgKDgwMi4xYWQpIFZMQU4gc3VwcG9ydCBieSBtb2RpZnlpbmcgYGN4Z2I0X3Byb2Nlc3NfZmxvd19tYXRjaGAsIHVzaW5nIGZ1bmN0aW9ucyBsaWtlIGB0NF93cml0ZV9yZWdgIGFuZCBgdDRfdHBfd3JfYml0c19pbmRpcmVjdGAgdG8gZGlyZWN0bHkgd3JpdGUgdG8gaGFyZHdhcmUgcmVnaXN0ZXJzLiBTdGFuZGFyZCBzdHVmZiBmb3IgZHJpdmVyIGRldmVsb3BtZW50LgoKQnV0IHdhaXQgYSBtaW51dGUuLi4gdGhpcyBpcyB0aGUgQ2hlbHNpbyBgY3hnYjRgIGRyaXZlciwgYSAqcGh5c2ljYWwqIEV0aGVybmV0IGFkYXB0ZXIgZHJpdmVyLiBNeSBpbml0aWFsIGluc3RpbmN0IGlzIHRvIHdvbmRlciBob3cgdGhpcyBjb2RlIGNvdWxkIGV2ZW4gYmUgdHJpZ2dlcmVkIGluIGEgdmlydHVhbGl6ZWQgY29udGV4dC4gSSBtZWFuLCB3ZSYjMzk7cmUgdGFsa2luZyBhYm91dCBoYXJkd2FyZSBpbnRlcmFjdGlvbnMgaGVyZS4gVW5sZXNzIHRoZXJlJiMzOTtzIGEgc29mdHdhcmUgZW11bGF0b3IgaW4gcGxhY2UsIGxpa2UgYG1hYzgwMjExX2h3c2ltYCBvciBzb21ldGhpbmcgc2ltaWxhciwgb3IgcGVyaGFwcyBhIGNvbXBsZXRlbHkgdmlydHVhbCBkcml2ZXIgbGlrZSBgdmlydGlvYCBvciBgdmV0aGAgaXMgaW52b2x2ZWQsIHRoaXMgY29kZSBwYXRoIGdlbmVyYWxseSB3b3VsZG4mIzM5O3QgYmUgYWNjZXNzaWJsZSBpbiBhIGNsb3VkIGVudmlyb25tZW50IGxpa2UgR0NFIG9yIHdpdGhpbiBRRU1VLgoKR2l2ZW4gdGhhdCBDaGVsc2lvIGBjeGdiNGAgaXMgYSBwaHlzaWNhbCBhZGFwdGVyIGRyaXZlciwgSSBuZWVkIHRvIGludmVzdGlnYXRlIGlmIHRoZXJlJiMzOTtzIGFueSBlbXVsYXRpb24gc3BlY2lmaWMgdG8gdGhpcyBkcml2ZXIuIExldCBtZSBkaWcgaW50byB0aGUga2VybmVsIHRyZWUgYW5kIHNlYXJjaCBmb3IgaW5zdGFuY2VzIG9mIGBjeGdiNGAgdG8gZ2V0IGEgYmV0dGVyIGhhbmRsZSBvbiB0aGUgc2l0dWF0aW9uLiBJIG5lZWQgdG8gdW5kZXJzdGFuZCB0aGUgcG90ZW50aWFsIGVudmlyb25tZW50IGluIHdoaWNoIHRoaXMgcGF0Y2ggd291bGQgYmUgcmVsZXZhbnQuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+NC8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMDIgMTE6MTY8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7Y3hnYjQmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtkcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0LyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtcbkZ1bGwgb3V0cHV0IGlzIHRvbyBsb25nLCBzaG93aW5nIDUwMCBvdXQgb2YgNDU5NSBsaW5lcy5cblVzZSBtb3JlIHByZWNpc2UgZXhwcmVzc2lvbiBpZiBwb3NzaWJsZS5cblxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9NYWtlZmlsZS01LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9NYWtlZmlsZTo2Om9iai0kKENPTkZJR19DSEVMU0lPX1Q0KSAmIzQzOz0gY3hnYjQub1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9NYWtlZmlsZS03LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9NYWtlZmlsZTo4OmN4Z2I0LW9ianMgOj0gY3hnYjRfbWFpbi5vIGwydC5vIHNtdC5vIHQ0X2h3Lm8gc2dlLm8gY2xpcF90YmwubyBjeGdiNF9ldGh0b29sLm8gXFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvTWFrZWZpbGU6OTpcdCAgICAgIGN4Z2I0X3VsZC5vIHNycS5vIHNjaGVkLm8gY3hnYjRfZmlsdGVyLm8gY3hnYjRfdGNfdTMyLm8gXFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvTWFrZWZpbGU6MTA6XHQgICAgICBjeGdiNF9wdHAubyBjeGdiNF90Y19mbG93ZXIubyBjeGdiNF9jdWRiZy5vIGN4Z2I0X21wcy5vIFxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L01ha2VmaWxlOjExOlx0ICAgICAgY3VkYmdfY29tbW9uLm8gY3VkYmdfbGliLm8gY3VkYmdfemxpYi5vIGN4Z2I0X3RjX21xcHJpby5vIFxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L01ha2VmaWxlOjEyOlx0ICAgICAgY3hnYjRfdGNfbWF0Y2hhbGwub1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9NYWtlZmlsZToxMzpjeGdiNC0kKENPTkZJR19DSEVMU0lPX1Q0X0RDQikgJiM0Mzs9ICBjeGdiNF9kY2Iub1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9NYWtlZmlsZToxNDpjeGdiNC0kKENPTkZJR19DSEVMU0lPX1Q0X0ZDT0UpICYjNDM7PSAgY3hnYjRfZmNvZS5vXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L01ha2VmaWxlOjE1OmN4Z2I0LSQoQ09ORklHX0RFQlVHX0ZTKSAmIzQzOz0gY3hnYjRfZGVidWdmcy5vXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L01ha2VmaWxlOjE2OmN4Z2I0LSQoQ09ORklHX1RIRVJNQUwpICYjNDM7PSBjeGdiNF90aGVybWFsLm9cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2NsaXBfdGJsLmMtMTctI2luY2x1ZGUgXHUwMDNjbmV0L2FkZHJjb25mLmhcdTAwM2VcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY2xpcF90YmwuYzoxODojaW5jbHVkZSBcJiMzNDtjeGdiNC5oXCYjMzQ7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2NsaXBfdGJsLmMtMTktI2luY2x1ZGUgXCYjMzQ7Y2xpcF90YmwuaFwmIzM0O1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY2xpcF90YmwuYz01OT1zdGF0aWMgaW50IGNsaXA2X3JlbGVhc2VfbWJveChjb25zdCBzdHJ1Y3QgbmV0X2RldmljZSAqZGV2LFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY2xpcF90YmwuYy03My1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY2xpcF90YmwuYzo3NDppbnQgY3hnYjRfY2xpcF9nZXQoY29uc3Qgc3RydWN0IG5ldF9kZXZpY2UgKmRldiwgY29uc3QgdTMyICpsaXAsIHU4IHY2KVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jbGlwX3RibC5jLTc1LXtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2NsaXBfdGJsLmMtMTQzLX1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY2xpcF90YmwuYzoxNDQ6RVhQT1JUX1NZTUJPTChjeGdiNF9jbGlwX2dldCk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2NsaXBfdGJsLmMtMTQ1LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jbGlwX3RibC5jOjE0Njp2b2lkIGN4Z2I0X2NsaXBfcmVsZWFzZShjb25zdCBzdHJ1Y3QgbmV0X2RldmljZSAqZGV2LCBjb25zdCB1MzIgKmxpcCwgdTggdjYpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2NsaXBfdGJsLmMtMTQ3LXtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2NsaXBfdGJsLmMtMTg5LX1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY2xpcF90YmwuYzoxOTA6RVhQT1JUX1NZTUJPTChjeGdiNF9jbGlwX3JlbGVhc2UpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jbGlwX3RibC5jLTE5MS1cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2NsaXBfdGJsLmMtMTk1LSAqL1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jbGlwX3RibC5jOjE5NjpzdGF0aWMgaW50IGN4Z2I0X3VwZGF0ZV9kZXZfY2xpcChzdHJ1Y3QgbmV0X2RldmljZSAqcm9vdF9kZXYsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2NsaXBfdGJsLmMtMTk3LVx0XHRcdFx0IHN0cnVjdCBuZXRfZGV2aWNlICpkZXYpXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jbGlwX3RibC5jLTIwOC1cdGxpc3RfZm9yX2VhY2hfZW50cnkoaWZhLCBcdTAwMjZpZGV2LVx1MDAzZWFkZHJfbGlzdCwgaWZfbGlzdCkge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jbGlwX3RibC5jOjIwOTpcdFx0cmV0ID0gY3hnYjRfY2xpcF9nZXQoZGV2LCAoY29uc3QgdTMyICopaWZhLVx1MDAzZWFkZHIuczZfYWRkciwgMSk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2NsaXBfdGJsLmMtMjEwLVx0XHRpZiAocmV0IFx1MDAzYyAwKVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY2xpcF90YmwuYy0yMTctXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2NsaXBfdGJsLmM6MjE4OmludCBjeGdiNF91cGRhdGVfcm9vdF9kZXZfY2xpcChzdHJ1Y3QgbmV0X2RldmljZSAqZGV2KVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jbGlwX3RibC5jLTIxOS17XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jbGlwX3RibC5jLTIyMy1cdC8qIEZpcnN0IHBvcHVsYXRlIHRoZSByZWFsIG5ldCBkZXZpY2UmIzM5O3MgSVB2NiBhZGRyZXNzZXMgKi9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY2xpcF90YmwuYzoyMjQ6XHRyZXQgPSBjeGdiNF91cGRhdGVfZGV2X2NsaXAoZGV2LCBkZXYpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jbGlwX3RibC5jLTIyNS1cdGlmIChyZXQpXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jbGlwX3RibC5jLTIzMC1cdGlmIChyb290X2Rldikge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jbGlwX3RibC5jOjIzMTpcdFx0cmV0ID0gY3hnYjRfdXBkYXRlX2Rldl9jbGlwKHJvb3RfZGV2LCBkZXYpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jbGlwX3RibC5jLTIzMi1cdFx0aWYgKHJldClcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2NsaXBfdGJsLmMtMjQwLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jbGlwX3RibC5jOjI0MTpcdFx0cmV0ID0gY3hnYjRfdXBkYXRlX2Rldl9jbGlwKHJvb3RfZGV2LCBkZXYpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jbGlwX3RibC5jLTI0Mi1cdFx0aWYgKHJldClcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2NsaXBfdGJsLmMtMjQ3LX1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY2xpcF90YmwuYzoyNDg6RVhQT1JUX1NZTUJPTChjeGdiNF91cGRhdGVfcm9vdF9kZXZfY2xpcCk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2NsaXBfdGJsLmMtMjQ5LVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY2xpcF90YmwuaD0zOT1zdHJ1Y3QgY2xpcF90YmwgKnQ0X2luaXRfY2xpcF90YmwodW5zaWduZWQgaW50IGNsaXB0X3N0YXJ0LFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jbGlwX3RibC5oLTQwLVx0XHRcdFx0ICB1bnNpZ25lZCBpbnQgY2xpcHRfZW5kKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY2xpcF90YmwuaDo0MTppbnQgY3hnYjRfY2xpcF9nZXQoY29uc3Qgc3RydWN0IG5ldF9kZXZpY2UgKmRldiwgY29uc3QgdTMyICpsaXAsIHU4IHY2KTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY2xpcF90YmwuaDo0Mjp2b2lkIGN4Z2I0X2NsaXBfcmVsZWFzZShjb25zdCBzdHJ1Y3QgbmV0X2RldmljZSAqZGV2LCBjb25zdCB1MzIgKmxpcCwgdTggdjYpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jbGlwX3RibC5oLTQzLWludCBjbGlwX3RibF9zaG93KHN0cnVjdCBzZXFfZmlsZSAqc2VxLCB2b2lkICp2KTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY2xpcF90YmwuaDo0NDppbnQgY3hnYjRfdXBkYXRlX3Jvb3RfZGV2X2NsaXAoc3RydWN0IG5ldF9kZXZpY2UgKmRldik7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2NsaXBfdGJsLmgtNDUtdm9pZCB0NF9jbGVhbnVwX2NsaXBfdGJsKHN0cnVjdCBhZGFwdGVyICphZGFwKTtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N1ZGJnX2NvbW1vbi5jLTUtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N1ZGJnX2NvbW1vbi5jOjY6I2luY2x1ZGUgXCYjMzQ7Y3hnYjQuaFwmIzM0O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jdWRiZ19jb21tb24uYy03LSNpbmNsdWRlIFwmIzM0O2N1ZGJnX2lmLmhcJiMzNDtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N1ZGJnX2xpYi5jLTktI2luY2x1ZGUgXCYjMzQ7dDRfcmVncy5oXCYjMzQ7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N1ZGJnX2xpYi5jOjEwOiNpbmNsdWRlIFwmIzM0O2N4Z2I0LmhcJiMzNDtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3VkYmdfbGliLmM6MTE6I2luY2x1ZGUgXCYjMzQ7Y3hnYjRfY3VkYmcuaFwmIzM0O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jdWRiZ19saWIuYy0xMi0jaW5jbHVkZSBcJiMzNDtjdWRiZ19pZi5oXCYjMzQ7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jdWRiZ19saWIuYy0xNi0jaW5jbHVkZSBcJiMzNDtjdWRiZ196bGliLmhcJiMzNDtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3VkYmdfbGliLmM6MTc6I2luY2x1ZGUgXCYjMzQ7Y3hnYjRfdGNfbXFwcmlvLmhcJiMzNDtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3VkYmdfbGliLmMtMTgtXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jdWRiZ196bGliLmMtNy1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3VkYmdfemxpYi5jOjg6I2luY2x1ZGUgXCYjMzQ7Y3hnYjQuaFwmIzM0O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jdWRiZ196bGliLmMtOS0jaW5jbHVkZSBcJiMzNDtjdWRiZ19pZi5oXCYjMzQ7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNC5oLTU4LSNpbmNsdWRlIFwmIzM0O3Q0X2NoaXBfdHlwZS5oXCYjMzQ7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0Lmg6NTk6I2luY2x1ZGUgXCYjMzQ7Y3hnYjRfdWxkLmhcJiMzNDtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjQuaC02MC0jaW5jbHVkZSBcJiMzNDt0NGZ3X2FwaS5oXCYjMzQ7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNC5oPTE0Mj1lbnVtIHtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0LmgtMTQ4LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNC5oOjE0OTplbnVtIGN4Z2I0X25ldGRldl90bHNfb3BzIHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjQuaC0xNTAtXHRDWEdCNF9UTFNERVZfT1BTICA9IDEsXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNC5oLTE1My1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjQuaDoxNTQ6c3RydWN0IGN4Z2I0X2Jvb3RjZmdfZGF0YSB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0LmgtMTU1LVx0X19sZTE2IHNpZ25hdHVyZTtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0LmgtMTU4LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNC5oOjE1OTpzdHJ1Y3QgY3hnYjRfcGNpcl9kYXRhIHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjQuaC0xNjAtXHRfX2xlMzIgc2lnbmF0dXJlO1x0LyogU2lnbmF0dXJlLiBUaGUgc3RyaW5nIFwmIzM0O1BDSVJcJiMzNDsgKi9cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0LmgtMTc0LS8qIEJJT1MgYm9vdCBoZWFkZXJzICovXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0Lmg6MTc1OnN0cnVjdCBjeGdiNF9wY2lfZXhwX3JvbV9oZWFkZXIge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNC5oLTE3Ni1cdF9fbGUxNiBzaWduYXR1cmU7XHQvKiBST00gU2lnbmF0dXJlLiBTaG91bGQgYmUgMHhhYTU1ICovXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNC5oPTE5Nj1lbnVtIHtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0LmgtMTk5LVx0Qk9PVF9TSUdOQVRVUkUgPSAweGFhNTUsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0Lmg6MjAwOlx0Qk9PVF9NSU5fU0laRSA9IHNpemVvZihzdHJ1Y3QgY3hnYjRfcGNpX2V4cF9yb21faGVhZGVyKSxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjQuaC0yMDEtXHRCT09UX01BWF9TSVpFID0gMTAyNCAqIEJPT1RfU0laRV9JTkMsXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNC5oPTUyNT1zdGF0aWMgaW5saW5lIHN0cnVjdCBtYm94X2NtZCAqbWJveF9jbWRfbG9nX2VudHJ5KHN0cnVjdCBtYm94X2NtZF9sb2cgKmxvZyxcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0LmgtNTM3LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNC5oOjUzODpzdHJ1Y3QgY3hnYjRfZXRodG9vbF9sYl90ZXN0IHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjQuaC01MzktXHRzdHJ1Y3QgY29tcGxldGlvbiBjb21wbGV0aW9uO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjQuaD01NTE9c3RydWN0IHRyYWNlX3BhcmFtcyB7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNC5oLTU2MS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjQuaDo1NjI6c3RydWN0IGN4Z2I0X2Z3X2RhdGEge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNC5oLTU2My1cdF9fYmUzMiBzaWduYXR1cmU7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNC5oPTY0NT1zdHJ1Y3Qgc2dlX3JzcHE7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0LmgtNjQ2LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNC5oOjY0NzojaW5jbHVkZSBcJiMzNDtjeGdiNF9kY2IuaFwmIzM0O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNC5oLTY0OC1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjQuaC02NDktI2lmZGVmIENPTkZJR19DSEVMU0lPX1Q0X0ZDT0VcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjQuaDo2NTA6I2luY2x1ZGUgXCYjMzQ7Y3hnYjRfZmNvZS5oXCYjMzQ7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0LmgtNjUxLSNlbmRpZiAvKiBDT05GSUdfQ0hFTFNJT19UNF9GQ09FICovXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNC5oPTY1Mz1zdHJ1Y3QgcG9ydF9pbmZvIHtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0LmgtNjk2LVx0c3RydWN0IG11dGV4IHZpX21pcnJvcl9tdXRleDsgLyogU3luYyBhY2Nlc3MgdG8gTWlycm9yIFZJIGluZm8gKi9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjQuaDo2OTc6XHRzdHJ1Y3QgY3hnYjRfZXRodG9vbF9sYl90ZXN0IGV0aHRvb2xfbGI7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0LmgtNjk4LX07XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNC5oPTkwNj1zdHJ1Y3Qgc2dlX3VsZF90eHFfaW5mbyB7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNC5oLTkxMi0vKiBzdHJ1Y3QgdG8gbWFpbnRhaW4gVUxEIGxpc3QgdG8gcmVhbGxvY2F0ZSBVTEQgcmVzb3VyY2VzIG9uIGhvdHBsdWcgKi9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjQuaDo5MTM6c3RydWN0IGN4Z2I0X3VsZF9saXN0IHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjQuaDo5MTQ6XHRzdHJ1Y3QgY3hnYjRfdWxkX2luZm8gdWxkX2luZm87XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0LmgtOTE1LVx0c3RydWN0IGxpc3RfaGVhZCBsaXN0X25vZGU7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0Lmg6OTE2Olx0ZW51bSBjeGdiNF91bGQgdWxkX3R5cGU7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0LmgtOTE3LX07XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNC5oPTEwODU9c3RydWN0IG1wc19lbnRyaWVzX3JlZiB7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNC5oLTEwOTItXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0Lmg6MTA5MzpzdHJ1Y3QgY3hnYjRfZXRodG9vbF9maWx0ZXJfaW5mbyB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0LmgtMTA5NC1cdHUzMiAqbG9jX2FycmF5OyAvKiBBcnJheSBob2xkaW5nIHRoZSBhY3R1YWwgVElEcyBzZXQgdG8gZmlsdGVycyAqL1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjQuaC0xMDk4LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNC5oOjEwOTk6c3RydWN0IGN4Z2I0X2V0aHRvb2xfZmlsdGVyIHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjQuaC0xMTAwLVx0dTMyIG5lbnRyaWVzOyAvKiBBZGFwdGVyIHdpZGUgbnVtYmVyIG9mIHN1cHBvcnRlZCBmaWx0ZXJzICovXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0Lmg6MTEwMTpcdHN0cnVjdCBjeGdiNF9ldGh0b29sX2ZpbHRlcl9pbmZvICpwb3J0OyAvKiBQZXIgcG9ydCBlbnRyeSAqL1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNC5oLTExMDItfTtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0Lmg9MTEwND1zdHJ1Y3QgYWRhcHRlciB7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNC5oLTExMjItXHRzdHJ1Y3QgYWRhcHRlcl9wYXJhbXMgcGFyYW1zO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNC5oOjExMjM6XHRzdHJ1Y3QgY3hnYjRfdmlydF9yZXMgdnJlcztcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjQuaC0xMTI0LVx0dW5zaWduZWQgaW50IHN3aW50cjtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0LmgtMTE0OC1cdHN0cnVjdCBzbXRfZGF0YSAqc210O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNC5oOjExNDk6XHRzdHJ1Y3QgY3hnYjRfdWxkX2luZm8gKnVsZDtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjQuaC0xMTUwLVx0dm9pZCAqdWxkX2hhbmRsZVtDWEdCNF9VTERfTUFYXTtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0LmgtMTE5Ni1cdC8qIFRDIHUzMiBvZmZsb2FkICovXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0Lmg6MTE5NzpcdHN0cnVjdCBjeGdiNF90Y191MzJfdGFibGUgKnRjX3UzMjtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjQuaC0xMTk4LVx0c3RydWN0IGNoY3Jfa3RscyBjaGNyX2t0bHM7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNC5oLTEyMjUtXHQvKiBUQyBNUVBSSU8gb2ZmbG9hZCAqL1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNC5oOjEyMjY6XHRzdHJ1Y3QgY3hnYjRfdGNfbXFwcmlvICp0Y19tcXByaW87XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0LmgtMTIyNy1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjQuaC0xMjI4LVx0LyogVEMgTUFUQ0hBTEwgY2xhc3NpZmllciBvZmZsb2FkICovXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0Lmg6MTIyOTpcdHN0cnVjdCBjeGdiNF90Y19tYXRjaGFsbCAqdGNfbWF0Y2hhbGw7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0LmgtMTIzMC1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjQuaC0xMjMxLVx0LyogRXRodG9vbCBuLXR1cGxlICovXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0Lmg6MTIzMjpcdHN0cnVjdCBjeGdiNF9ldGh0b29sX2ZpbHRlciAqZXRodG9vbF9maWx0ZXJzO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNC5oLTEyMzMtXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNC5oPTE1OTc9c3RhdGljIGlubGluZSB1bnNpZ25lZCBpbnQgcXRpbWVyX3ZhbChjb25zdCBzdHJ1Y3QgYWRhcHRlciAqYWRhcCxcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0LmgtMTYwNS0vKiBkcml2ZXIgbmFtZSB1c2VkIGZvciBldGh0b29sX2RydmluZm8gKi9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjQuaDoxNjA2OmV4dGVybiBjaGFyIGN4Z2I0X2RyaXZlcl9uYW1lW107XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0LmgtMTYwNy1cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0Lmg9MTYxMz1uZXRkZXZfdHhfdCB0NF9zdGFydF94bWl0KHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBuZXRfZGV2aWNlICpkZXYpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNC5oOjE2MTQ6aW50IGN4Z2I0X3NlbGZ0ZXN0X2xiX3BrdChzdHJ1Y3QgbmV0X2RldmljZSAqbmV0ZGV2KTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjQuaC0xNjE1LWludCB0NF9ldGhyeF9oYW5kbGVyKHN0cnVjdCBzZ2VfcnNwcSAqcSwgY29uc3QgX19iZTY0ICpyc3AsXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNC5oPTE2NDE9aW50IHQ0X3NnZV9ldGhfdHhxX2VncmVzc191cGRhdGUoc3RydWN0IGFkYXB0ZXIgKmFkYXAsIHN0cnVjdCBzZ2VfZXRoX3R4cSAqcSxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjQuaC0xNjQyLVx0XHRcdFx0IGludCBtYXhyZWNsYWltKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjQuaDoxNjQzOnZvaWQgY3hnYjRfc2V0X2V0aHRvb2xfb3BzKHN0cnVjdCBuZXRfZGV2aWNlICpuZXRkZXYpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNC5oOjE2NDQ6aW50IGN4Z2I0X3dyaXRlX3Jzcyhjb25zdCBzdHJ1Y3QgcG9ydF9pbmZvICpwaSwgY29uc3QgdTE2ICpxdWV1ZXMpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNC5oLTE2NDUtZW51bSBjcGxfdHhfdG5sX2xzb190eXBlIGN4Z2JfZW5jYXBfb2ZmbG9hZF9zdXBwb3J0ZWQoc3RydWN0IHNrX2J1ZmYgKnNrYik7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNC5oPTE3NDE9c3RhdGljIGlubGluZSBpbnQgaGFzaF9tYWNfYWRkcihjb25zdCB1OCAqYWRkcilcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0LmgtMTc1MS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjQuaDoxNzUyOmludCBjeGdiNF9zZXRfcnNwcV9pbnRyX3BhcmFtcyhzdHJ1Y3Qgc2dlX3JzcHEgKnEsIHVuc2lnbmVkIGludCB1cyxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjQuaC0xNzUzLVx0XHRcdCAgICAgICB1bnNpZ25lZCBpbnQgY250KTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjQuaD0xNzU0PXN0YXRpYyBpbmxpbmUgdm9pZCBpbml0X3JzcHEoc3RydWN0IGFkYXB0ZXIgKmFkYXAsIHN0cnVjdCBzZ2VfcnNwcSAqcSxcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0LmgtMTc1OC1cdHEtXHUwMDNlYWRhcCA9IGFkYXA7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0Lmg6MTc1OTpcdGN4Z2I0X3NldF9yc3BxX2ludHJfcGFyYW1zKHEsIHVzLCBjbnQpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNC5oLTE3NjAtXHRxLVx1MDAzZWlxZV9sZW4gPSBpcWVfc2l6ZTtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0Lmg9MjEwMD12b2lkIGZyZWVfdHhfZGVzYyhzdHJ1Y3QgYWRhcHRlciAqYWRhcCwgc3RydWN0IHNnZV90eHEgKnEsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0LmgtMjEwMS1cdFx0ICB1bnNpZ25lZCBpbnQgbiwgYm9vbCB1bm1hcCk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0Lmg6MjEwMjp2b2lkIGN4Z2I0X2Vvc3dfdHhxX2ZyZWVfZGVzYyhzdHJ1Y3QgYWRhcHRlciAqYWRhcCwgc3RydWN0IHNnZV9lb3N3X3R4cSAqdHhxLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNC5oLTIxMDMtXHRcdFx0ICAgICAgdTMyIG5kZXNjKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjQuaDoyMTA0OmludCBjeGdiNF9ldGhvZmxkX3NlbmRfZmxvd2Moc3RydWN0IG5ldF9kZXZpY2UgKmRldiwgdTMyIGVvdGlkLCB1MzIgdGMpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNC5oOjIxMDU6dm9pZCBjeGdiNF9ldGhvZmxkX3Jlc3RhcnQoc3RydWN0IHRhc2tsZXRfc3RydWN0ICp0KTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjQuaDoyMTA2OmludCBjeGdiNF9ldGhvZmxkX3J4X2hhbmRsZXIoc3RydWN0IHNnZV9yc3BxICpxLCBjb25zdCBfX2JlNjQgKnJzcCxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjQuaC0yMTA3LVx0XHRcdCAgICAgY29uc3Qgc3RydWN0IHBrdF9nbCAqc2kpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNC5oPTIxMDg9dm9pZCBmcmVlX3R4cShzdHJ1Y3QgYWRhcHRlciAqYWRhcCwgc3RydWN0IHNnZV90eHEgKnEpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNC5oOjIxMDk6dm9pZCBjeGdiNF9yZWNsYWltX2NvbXBsZXRlZF90eChzdHJ1Y3QgYWRhcHRlciAqYWRhcCxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjQuaC0yMTEwLVx0XHRcdFx0c3RydWN0IHNnZV90eHEgKnEsIGJvb2wgdW5tYXApO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNC5oOjIxMTE6aW50IGN4Z2I0X21hcF9za2Ioc3RydWN0IGRldmljZSAqZGV2LCBjb25zdCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNC5oLTIxMTItXHRcdCAgZG1hX2FkZHJfdCAqYWRkcik7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0Lmg6MjExMzp2b2lkIGN4Z2I0X2lubGluZV90eF9za2IoY29uc3Qgc3RydWN0IHNrX2J1ZmYgKnNrYiwgY29uc3Qgc3RydWN0IHNnZV90eHEgKnEsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0LmgtMjExNC1cdFx0XHQgdm9pZCAqcG9zKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjQuaDoyMTE1OnZvaWQgY3hnYjRfd3JpdGVfc2dsKGNvbnN0IHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBzZ2VfdHhxICpxLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNC5oLTIxMTYtXHRcdCAgICAgc3RydWN0IHVscHR4X3NnbCAqc2dsLCB1NjQgKmVuZCwgdW5zaWduZWQgaW50IHN0YXJ0LFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNC5oLTIxMTctXHRcdCAgICAgY29uc3QgZG1hX2FkZHJfdCAqYWRkcik7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0Lmg6MjExODp2b2lkIGN4Z2I0X3dyaXRlX3BhcnRpYWxfc2dsKGNvbnN0IHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBzZ2VfdHhxICpxLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNC5oLTIxMTktXHRcdFx0ICAgICBzdHJ1Y3QgdWxwdHhfc2dsICpzZ2wsIHU2NCAqZW5kLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNC5oLTIxMjAtXHRcdFx0ICAgICBjb25zdCBkbWFfYWRkcl90ICphZGRyLCB1MzIgc3RhcnQsIHUzMiBzZW5kX2xlbik7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0Lmg6MjEyMTp2b2lkIGN4Z2I0X3JpbmdfdHhfZGIoc3RydWN0IGFkYXB0ZXIgKmFkYXAsIHN0cnVjdCBzZ2VfdHhxICpxLCBpbnQgbik7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0LmgtMjEyMi1pbnQgdDRfc2V0X3ZsYW5fYWNsKHN0cnVjdCBhZGFwdGVyICphZGFwLCB1bnNpZ25lZCBpbnQgbWJveCwgdW5zaWduZWQgaW50IHZmLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNC5oLTIxMjMtXHRcdCAgICB1MTYgdmxhbik7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0Lmg6MjEyNDppbnQgY3hnYjRfZGNiX2VuYWJsZWQoY29uc3Qgc3RydWN0IG5ldF9kZXZpY2UgKmRldik7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0LmgtMjEyNS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjQuaDoyMTI2OmludCBjeGdiNF90aGVybWFsX2luaXQoc3RydWN0IGFkYXB0ZXIgKmFkYXApO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNC5oOjIxMjc6aW50IGN4Z2I0X3RoZXJtYWxfcmVtb3ZlKHN0cnVjdCBhZGFwdGVyICphZGFwKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjQuaDoyMTI4OmludCBjeGdiNF9zZXRfbXNpeF9hZmYoc3RydWN0IGFkYXB0ZXIgKmFkYXAsIHVuc2lnbmVkIHNob3J0IHZlYyxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjQuaC0yMTI5LVx0XHQgICAgICAgY3B1bWFza192YXJfdCAqYWZmX21hc2ssIGludCBpZHgpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNC5oOjIxMzA6dm9pZCBjeGdiNF9jbGVhcl9tc2l4X2FmZih1bnNpZ25lZCBzaG9ydCB2ZWMsIGNwdW1hc2tfdmFyX3QgYWZmX21hc2spO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNC5oLTIxMzEtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0Lmg6MjEzMjppbnQgY3hnYjRfY2hhbmdlX21hYyhzdHJ1Y3QgcG9ydF9pbmZvICpwaSwgdW5zaWduZWQgaW50IHZpaWQsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0LmgtMjEzMy1cdFx0ICAgICBpbnQgKnRjYW1faWR4LCBjb25zdCB1OCAqYWRkcixcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0LmgtMjEzNS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjQuaDoyMTM2OmludCBjeGdiNF9hbGxvY19tYWNfZmlsdChzdHJ1Y3QgYWRhcHRlciAqYWRhcCwgdW5zaWduZWQgaW50IHZpaWQsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0LmgtMjEzNy1cdFx0XHQgYm9vbCBmcmVlLCB1bnNpZ25lZCBpbnQgbmFkZHIsXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNC5oLTIxMzktXHRcdFx0IHU2NCAqaGFzaCwgYm9vbCBzbGVlcF9vayk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0Lmg6MjE0MDppbnQgY3hnYjRfZnJlZV9tYWNfZmlsdChzdHJ1Y3QgYWRhcHRlciAqYWRhcCwgdW5zaWduZWQgaW50IHZpaWQsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0LmgtMjE0MS1cdFx0XHR1bnNpZ25lZCBpbnQgbmFkZHIsIGNvbnN0IHU4ICoqYWRkciwgYm9vbCBzbGVlcF9vayk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0Lmg6MjE0MjppbnQgY3hnYjRfaW5pdF9tcHNfcmVmX2VudHJpZXMoc3RydWN0IGFkYXB0ZXIgKmFkYXApO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNC5oOjIxNDM6dm9pZCBjeGdiNF9mcmVlX21wc19yZWZfZW50cmllcyhzdHJ1Y3QgYWRhcHRlciAqYWRhcCk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0Lmg6MjE0NDppbnQgY3hnYjRfdXBkYXRlX21hY19maWx0KHN0cnVjdCBwb3J0X2luZm8gKnBpLCB1bnNpZ25lZCBpbnQgdmlpZCxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjQuaC0yMTQ1LVx0XHRcdCAgaW50ICp0Y2FtX2lkeCwgY29uc3QgdTggKmFkZHIsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0LmgtMjE0Ni1cdFx0XHQgIGJvb2wgcGVyc2lzdGVudCwgdTggKnNtdF9pZHgpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNC5oOjIxNDc6aW50IGN4Z2I0X2dldF9tc2l4X2lkeF9mcm9tX2JtYXAoc3RydWN0IGFkYXB0ZXIgKmFkYXApO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNC5oOjIxNDg6dm9pZCBjeGdiNF9mcmVlX21zaXhfaWR4X2luX2JtYXAoc3RydWN0IGFkYXB0ZXIgKmFkYXAsIHUzMiBtc2l4X2lkeCk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0Lmg6MjE0OTp2b2lkIGN4Z2I0X2VuYWJsZV9yeChzdHJ1Y3QgYWRhcHRlciAqYWRhcCwgc3RydWN0IHNnZV9yc3BxICpxKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjQuaDoyMTUwOnZvaWQgY3hnYjRfcXVpZXNjZV9yeChzdHJ1Y3Qgc2dlX3JzcHEgKnEpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNC5oOjIxNTE6aW50IGN4Z2I0X3BvcnRfbWlycm9yX2FsbG9jKHN0cnVjdCBuZXRfZGV2aWNlICpkZXYpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNC5oOjIxNTI6dm9pZCBjeGdiNF9wb3J0X21pcnJvcl9mcmVlKHN0cnVjdCBuZXRfZGV2aWNlICpkZXYpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNC5oLTIxNTMtI2lmIElTX0VOQUJMRUQoQ09ORklHX0NIRUxTSU9fVExTX0RFVklDRSlcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjQuaDoyMTU0OmludCBjeGdiNF9zZXRfa3Rsc19mZWF0dXJlKHN0cnVjdCBhZGFwdGVyICphZGFwLCBib29sIGVuYWJsZSk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0LmgtMjE1NS0jZW5kaWZcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0X2N1ZGJnLmMtNi0jaW5jbHVkZSBcJiMzNDt0NF9yZWdzLmhcJiMzNDtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjRfY3VkYmcuYzo3OiNpbmNsdWRlIFwmIzM0O2N4Z2I0LmhcJiMzNDtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjRfY3VkYmcuYzo4OiNpbmNsdWRlIFwmIzM0O2N4Z2I0X2N1ZGJnLmhcJiMzNDtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjRfY3VkYmcuYy05LSNpbmNsdWRlIFwmIzM0O2N1ZGJnX3psaWIuaFwmIzM0O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNF9jdWRiZy5jLTEwLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNF9jdWRiZy5jOjExOnN0YXRpYyBjb25zdCBzdHJ1Y3QgY3hnYjRfY29sbGVjdF9lbnRpdHkgY3hnYjRfY29sbGVjdF9tZW1fZHVtcFtdID0ge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNF9jdWRiZy5jLTEyLVx0eyBDVURCR19FREMwLCBjdWRiZ19jb2xsZWN0X2VkYzBfbWVtaW5mbyB9LFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjRfY3VkYmcuYy0xOC1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjRfY3VkYmcuYzoxOTpzdGF0aWMgY29uc3Qgc3RydWN0IGN4Z2I0X2NvbGxlY3RfZW50aXR5IGN4Z2I0X2NvbGxlY3RfaHdfZHVtcFtdID0ge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNF9jdWRiZy5jLTIwLVx0eyBDVURCR19NQk9YX0xPRywgY3VkYmdfY29sbGVjdF9tYm94X2xvZyB9LFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjRfY3VkYmcuYy02OC1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjRfY3VkYmcuYzo2OTpzdGF0aWMgY29uc3Qgc3RydWN0IGN4Z2I0X2NvbGxlY3RfZW50aXR5IGN4Z2I0X2NvbGxlY3RfZmxhc2hfZHVtcFtdID0ge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNF9jdWRiZy5jLTcwLVx0eyBDVURCR19GTEFTSCwgY3VkYmdfY29sbGVjdF9mbGFzaCB9LFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjRfY3VkYmcuYy03Mi1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjRfY3VkYmcuYzo3Mzp1MzIgY3hnYjRfZ2V0X2R1bXBfbGVuZ3RoKHN0cnVjdCBhZGFwdGVyICphZGFwLCB1MzIgZmxhZylcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjRfY3VkYmcuYy03NC17XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNF9jdWRiZy5jLTc5LVx0aWYgKGZsYWcgXHUwMDI2IENYR0I0X0VUSF9EVU1QX0hXKSB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0X2N1ZGJnLmM6ODA6XHRcdGZvciAoaSA9IDA7IGkgXHUwMDNjIEFSUkFZX1NJWkUoY3hnYjRfY29sbGVjdF9od19kdW1wKTsgaSYjNDM7JiM0MzspIHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjRfY3VkYmcuYzo4MTpcdFx0XHRlbnRpdHkgPSBjeGdiNF9jb2xsZWN0X2h3X2R1bXBbaV0uZW50aXR5O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNF9jdWRiZy5jLTgyLVx0XHRcdGxlbiAmIzQzOz0gY3VkYmdfZ2V0X2VudGl0eV9sZW5ndGgoYWRhcCwgZW50aXR5KTtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0X2N1ZGJnLmMtODYtXHRpZiAoZmxhZyBcdTAwMjYgQ1hHQjRfRVRIX0RVTVBfTUVNKSB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0X2N1ZGJnLmM6ODc6XHRcdGZvciAoaSA9IDA7IGkgXHUwMDNjIEFSUkFZX1NJWkUoY3hnYjRfY29sbGVjdF9tZW1fZHVtcCk7IGkmIzQzOyYjNDM7KSB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0X2N1ZGJnLmM6ODg6XHRcdFx0ZW50aXR5ID0gY3hnYjRfY29sbGVjdF9tZW1fZHVtcFtpXS5lbnRpdHk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0X2N1ZGJnLmMtODktXHRcdFx0bGVuICYjNDM7PSBjdWRiZ19nZXRfZW50aXR5X2xlbmd0aChhZGFwLCBlbnRpdHkpO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjRfY3VkYmcuYy0xMDMtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0X2N1ZGJnLmM6MTA0OnN0YXRpYyB2b2lkIGN4Z2I0X2N1ZGJnX2NvbGxlY3RfZW50aXR5KHN0cnVjdCBjdWRiZ19pbml0ICpwZGJnX2luaXQsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0X2N1ZGJnLmMtMTA1LVx0XHRcdFx0ICAgICAgIHN0cnVjdCBjdWRiZ19idWZmZXIgKmRiZ19idWZmLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNF9jdWRiZy5jOjEwNjpcdFx0XHRcdCAgICAgICBjb25zdCBzdHJ1Y3QgY3hnYjRfY29sbGVjdF9lbnRpdHkgKmVfYXJyLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNF9jdWRiZy5jLTEwNy1cdFx0XHRcdCAgICAgICB1MzIgYXJyX3NpemUsIHZvaWQgKmJ1ZiwgdTMyICp0b3Rfc2l6ZSlcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0X2N1ZGJnLmMtMTE0LVx0Zm9yIChpID0gMDsgaSBcdTAwM2MgYXJyX3NpemU7IGkmIzQzOyYjNDM7KSB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0X2N1ZGJnLmM6MTE1Olx0XHRjb25zdCBzdHJ1Y3QgY3hnYjRfY29sbGVjdF9lbnRpdHkgKmUgPSBcdTAwMjZlX2FycltpXTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjRfY3VkYmcuYy0xMTYtXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNF9jdWRiZy5jPTE1OD1zdGF0aWMgdm9pZCBjdWRiZ19mcmVlX2NvbXByZXNzX2J1ZmYoc3RydWN0IGN1ZGJnX2luaXQgKnBkYmdfaW5pdClcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0X2N1ZGJnLmMtMTYyLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNF9jdWRiZy5jOjE2MzppbnQgY3hnYjRfY3VkYmdfY29sbGVjdChzdHJ1Y3QgYWRhcHRlciAqYWRhcCwgdm9pZCAqYnVmLCB1MzIgKmJ1Zl9zaXplLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNF9jdWRiZy5jLTE2NC1cdFx0XHR1MzIgZmxhZylcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0X2N1ZGJnLmMtMjE5LVx0aWYgKGZsYWcgXHUwMDI2IENYR0I0X0VUSF9EVU1QX0hXKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNF9jdWRiZy5jOjIyMDpcdFx0Y3hnYjRfY3VkYmdfY29sbGVjdF9lbnRpdHkoXHUwMDI2Y3VkYmdfaW5pdCwgXHUwMDI2ZGJnX2J1ZmYsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0X2N1ZGJnLmM6MjIxOlx0XHRcdFx0XHQgICBjeGdiNF9jb2xsZWN0X2h3X2R1bXAsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0X2N1ZGJnLmM6MjIyOlx0XHRcdFx0XHQgICBBUlJBWV9TSVpFKGN4Z2I0X2NvbGxlY3RfaHdfZHVtcCksXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0X2N1ZGJnLmMtMjIzLVx0XHRcdFx0XHQgICBidWYsXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNF9jdWRiZy5jLTIyNi1cdGlmIChmbGFnIFx1MDAyNiBDWEdCNF9FVEhfRFVNUF9NRU0pXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0X2N1ZGJnLmM6MjI3Olx0XHRjeGdiNF9jdWRiZ19jb2xsZWN0X2VudGl0eShcdTAwMjZjdWRiZ19pbml0LCBcdTAwMjZkYmdfYnVmZixcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjRfY3VkYmcuYzoyMjg6XHRcdFx0XHRcdCAgIGN4Z2I0X2NvbGxlY3RfbWVtX2R1bXAsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0X2N1ZGJnLmM6MjI5Olx0XHRcdFx0XHQgICBBUlJBWV9TSVpFKGN4Z2I0X2NvbGxlY3RfbWVtX2R1bXApLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNF9jdWRiZy5jLTIzMC1cdFx0XHRcdFx0ICAgYnVmLFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjRfY3VkYmcuYy0yMzMtXHRpZiAoZmxhZyBcdTAwMjYgQ1hHQjRfRVRIX0RVTVBfRkxBU0gpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0X2N1ZGJnLmM6MjM0Olx0XHRjeGdiNF9jdWRiZ19jb2xsZWN0X2VudGl0eShcdTAwMjZjdWRiZ19pbml0LCBcdTAwMjZkYmdfYnVmZixcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjRfY3VkYmcuYzoyMzU6XHRcdFx0XHRcdCAgIGN4Z2I0X2NvbGxlY3RfZmxhc2hfZHVtcCxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjRfY3VkYmcuYzoyMzY6XHRcdFx0XHRcdCAgIEFSUkFZX1NJWkUoY3hnYjRfY29sbGVjdF9mbGFzaF9kdW1wKSxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjRfY3VkYmcuYy0yMzctXHRcdFx0XHRcdCAgIGJ1Zixcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0X2N1ZGJnLmMtMjQ4LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNF9jdWRiZy5jOjI0OTp2b2lkIGN4Z2I0X2luaXRfZXRodG9vbF9kdW1wKHN0cnVjdCBhZGFwdGVyICphZGFwdGVyKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNF9jdWRiZy5jLTI1MC17XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNF9jdWRiZy5jLTI1NS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjRfY3VkYmcuYzoyNTY6c3RhdGljIGludCBjeGdiNF9jdWRiZ192bWNvcmVkZF9jb2xsZWN0KHN0cnVjdCB2bWNvcmVkZF9kYXRhICpkYXRhLCB2b2lkICpidWYpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0X2N1ZGJnLmMtMjU3LXtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0X2N1ZGJnLmMtMjYwLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNF9jdWRiZy5jOjI2MTpcdHJldHVybiBjeGdiNF9jdWRiZ19jb2xsZWN0KGFkYXAsIGJ1ZiwgXHUwMDI2bGVuLCBDWEdCNF9FVEhfRFVNUF9BTEwpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNF9jdWRiZy5jLTI2Mi19XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0X2N1ZGJnLmMtMjYzLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNF9jdWRiZy5jOjI2NDppbnQgY3hnYjRfY3VkYmdfdm1jb3JlX2FkZF9kdW1wKHN0cnVjdCBhZGFwdGVyICphZGFwKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNF9jdWRiZy5jLTI2NS17XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNF9jdWRiZy5jLTI3NC1cdHNucHJpbnRmKGRhdGEtXHUwMDNlZHVtcF9uYW1lLCBzaXplb2YoZGF0YS1cdTAwM2VkdW1wX25hbWUpLCBcJiMzNDslc18lc1wmIzM0OyxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjRfY3VkYmcuYzoyNzU6XHRcdCBjeGdiNF9kcml2ZXJfbmFtZSwgYWRhcC1cdTAwM2VuYW1lKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjRfY3VkYmcuYzoyNzY6XHRkYXRhLVx1MDAzZXZtY29yZWRkX2NhbGxiYWNrID0gY3hnYjRfY3VkYmdfdm1jb3JlZGRfY29sbGVjdDtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjRfY3VkYmcuYy0yNzctXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNF9jdWRiZy5oPTE3PXR5cGVkZWYgaW50ICgqY3VkYmdfY29sbGVjdF9jYWxsYmFja190KShzdHJ1Y3QgY3VkYmdfaW5pdCAqcGRiZ19pbml0LFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjRfY3VkYmcuaC0yMC1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjRfY3VkYmcuaDoyMTpzdHJ1Y3QgY3hnYjRfY29sbGVjdF9lbnRpdHkge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNF9jdWRiZy5oLTIyLVx0ZW51bSBjdWRiZ19kYmdfZW50aXR5X3R5cGUgZW50aXR5O1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjRfY3VkYmcuaD0yNj1lbnVtIENYR0I0X0VUSFRPT0xfRFVNUF9GTEFHUyB7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNF9jdWRiZy5oLTM0LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNF9jdWRiZy5oOjM1OnUzMiBjeGdiNF9nZXRfZHVtcF9sZW5ndGgoc3RydWN0IGFkYXB0ZXIgKmFkYXAsIHUzMiBmbGFnKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjRfY3VkYmcuaDozNjppbnQgY3hnYjRfY3VkYmdfY29sbGVjdChzdHJ1Y3QgYWRhcHRlciAqYWRhcCwgdm9pZCAqYnVmLCB1MzIgKmJ1Zl9zaXplLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNF9jdWRiZy5oLTM3LVx0XHRcdHUzMiBmbGFnKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjRfY3VkYmcuaDozODp2b2lkIGN4Z2I0X2luaXRfZXRodG9vbF9kdW1wKHN0cnVjdCBhZGFwdGVyICphZGFwdGVyKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjRfY3VkYmcuaDozOTppbnQgY3hnYjRfY3VkYmdfdm1jb3JlX2FkZF9kdW1wKHN0cnVjdCBhZGFwdGVyICphZGFwKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjRfY3VkYmcuaC00MC0jZW5kaWYgLyogX19DWEdCNF9DVURCR19IX18gKi9cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0X2RjYi5jLTgtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0X2RjYi5jOjk6I2luY2x1ZGUgXCYjMzQ7Y3hnYjQuaFwmIzM0O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNF9kY2IuYy0xMC1cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0X2RjYi5jPTEzPWNvbnN0IGNoYXIgKiBjb25zdCBkY2JfdmVyX2FycmF5W10gPSB7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNF9kY2IuYy0yMS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjRfZGNiLmM6MjI6c3RhdGljIGlubGluZSBib29sIGN4Z2I0X2RjYl9zdGF0ZV9zeW5jZWQoZW51bSBjeGdiNF9kY2Jfc3RhdGUgc3RhdGUpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0X2RjYi5jLTIzLXtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0X2RjYi5jLTMyLSAqL1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNF9kY2IuYzozMzp2b2lkIGN4Z2I0X2RjYl9zdGF0ZV9pbml0KHN0cnVjdCBuZXRfZGV2aWNlICpkZXYpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0X2RjYi5jLTM0LXtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0X2RjYi5jLTQ3LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNF9kY2IuYzo0ODp2b2lkIGN4Z2I0X2RjYl92ZXJzaW9uX2luaXQoc3RydWN0IG5ldF9kZXZpY2UgKmRldilcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjRfZGNiLmMtNDkte1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjRfZGNiLmMtNTgtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0X2RjYi5jOjU5OnN0YXRpYyB2b2lkIGN4Z2I0X2RjYl9jbGVhbnVwX2FwcHMoc3RydWN0IG5ldF9kZXZpY2UgKmRldilcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjRfZGNiLmMtNjAte1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjRfZGNiLmMtOTgtICovXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0X2RjYi5jOjk5OnZvaWQgY3hnYjRfZGNiX3Jlc2V0KHN0cnVjdCBuZXRfZGV2aWNlICpkZXYpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0X2RjYi5jLTEwMC17XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0X2RjYi5jOjEwMTpcdGN4Z2I0X2RjYl9jbGVhbnVwX2FwcHMoZGV2KTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjRfZGNiLmM6MTAyOlx0Y3hnYjRfZGNiX3N0YXRlX2luaXQoZGV2KTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjRfZGNiLmMtMTAzLX1cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0X2RjYi5jLTEwOS0gKi9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjRfZGNiLmM6MTEwOnN0YXRpYyBpbmxpbmUgdm9pZCBjeGdiNF9kY2JfdXBkYXRlX3N1cHBvcnQoc3RydWN0IHBvcnRfZGNiX2luZm8gKmRjYilcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjRfZGNiLmMtMTExLXtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0X2RjYi5jLTEyNC0gKi9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjRfZGNiLmM6MTI1OnZvaWQgY3hnYjRfZGNiX3N0YXRlX2ZzbShzdHJ1Y3QgbmV0X2RldmljZSAqZGV2LFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNF9kY2IuYzoxMjY6XHRcdFx0IGVudW0gY3hnYjRfZGNiX3N0YXRlX2lucHV0IHRyYW5zaXRpb25fdG8pXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0X2RjYi5jLTEyNy17XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNF9kY2IuYy0xMzAtXHRzdHJ1Y3QgYWRhcHRlciAqYWRhcCA9IHBpLVx1MDAzZWFkYXB0ZXI7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0X2RjYi5jOjEzMTpcdGVudW0gY3hnYjRfZGNiX3N0YXRlIGN1cnJlbnRfc3RhdGUgPSBkY2ItXHUwMDNlc3RhdGU7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0X2RjYi5jLTEzMi1cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0X2RjYi5jLTE4MC1cdFx0XHQgKi9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjRfZGNiLmM6MTgxOlx0XHRcdGN4Z2I0X2RjYl91cGRhdGVfc3VwcG9ydChkY2IpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNF9kY2IuYy0xODItXHRcdH1cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0X2RjYi5jLTIxOS1cdFx0XHQgKi9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjRfZGNiLmM6MjIwOlx0XHRcdGN4Z2I0X2RjYl9yZXNldChkZXYpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNF9kY2IuYy0yMjEtXHRcdFx0ZGNiLVx1MDAzZXN0YXRlID0gQ1hHQjRfRENCX1NUQVRFX0ZXX0lOQ09NUExFVEU7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNF9kY2IuYy0yNjEtYmFkX3N0YXRlX2lucHV0OlxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNF9kY2IuYzoyNjI6XHRkZXZfZXJyKGFkYXAtXHUwMDNlcGRldl9kZXYsIFwmIzM0O2N4Z2I0X2RjYl9zdGF0ZV9mc206IGlsbGVnYWwgaW5wdXQgc3ltYm9sICVkXFxuXCYjMzQ7LFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNF9kY2IuYy0yNjMtXHRcdHRyYW5zaXRpb25fdG8pO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjRfZGNiLmMtMjY2LWJhZF9zdGF0ZV90cmFuc2l0aW9uOlxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNF9kY2IuYzoyNjc6XHRkZXZfZXJyKGFkYXAtXHUwMDNlcGRldl9kZXYsIFwmIzM0O2N4Z2I0X2RjYl9zdGF0ZV9mc206IGJhZCBzdGF0ZSB0cmFuc2l0aW9uLCBzdGF0ZSA9ICVkLCBpbnB1dCA9ICVkXFxuXCYjMzQ7LFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNF9kY2IuYy0yNjgtXHRcdGN1cnJlbnRfc3RhdGUsIHRyYW5zaXRpb25fdG8pO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjRfZGNiLmMtMjcyLSAqL1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNF9kY2IuYzoyNzM6dm9pZCBjeGdiNF9kY2JfaGFuZGxlX2Z3X3VwZGF0ZShzdHJ1Y3QgYWRhcHRlciAqYWRhcCxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjRfZGNiLmMtMjc0LVx0XHRcdFx0Y29uc3Qgc3RydWN0IGZ3X3BvcnRfY21kICpwY21kKVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjRfZGNiLmMtMjg3LVx0aWYgKGRjYl90eXBlID09IEZXX1BPUlRfRENCX1RZUEVfQ09OVFJPTCkge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNF9kY2IuYzoyODg6XHRcdGVudW0gY3hnYjRfZGNiX3N0YXRlX2lucHV0IGlucHV0ID1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjRfZGNiLmMtMjg5LVx0XHRcdCgocGNtZC1cdTAwM2V1LmRjYi5jb250cm9sLmFsbF9zeW5jZF9wa2QgXHUwMDI2XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNF9kY2IuYy0zMTItXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0X2RjYi5jOjMxMzpcdFx0Y3hnYjRfZGNiX3N0YXRlX2ZzbShkZXYsIGlucHV0KTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjRfZGNiLmMtMzE0LVx0XHRyZXR1cm47XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNF9kY2IuYy00MTAtICovXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0X2RjYi5jOjQxMTpzdGF0aWMgdTggY3hnYjRfZ2V0c3RhdGUoc3RydWN0IG5ldF9kZXZpY2UgKmRldilcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjRfZGNiLmMtNDEyLXtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0X2RjYi5jLTQxOS0gKi9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjRfZGNiLmM6NDIwOnN0YXRpYyB1OCBjeGdiNF9zZXRzdGF0ZShzdHJ1Y3QgbmV0X2RldmljZSAqZGV2LCB1OCBlbmFibGVkKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNF9kY2IuYy00MjEte1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjRfZGNiLmMtNDM3LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNF9kY2IuYzo0Mzg6c3RhdGljIHZvaWQgY3hnYjRfZ2V0cGd0Y2NmZyhzdHJ1Y3QgbmV0X2RldmljZSAqZGV2LCBpbnQgdGMsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0X2RjYi5jLTQzOS1cdFx0XHQgICAgIHU4ICpwcmlvX3R5cGUsIHU4ICpwZ2lkLCB1OCAqYndfcGVyLFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjRfZGNiLmMtNDgxLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNF9kY2IuYzo0ODI6c3RhdGljIHZvaWQgY3hnYjRfZ2V0cGd0Y2NmZ190eChzdHJ1Y3QgbmV0X2RldmljZSAqZGV2LCBpbnQgdGMsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0X2RjYi5jLTQ4My1cdFx0XHRcdHU4ICpwcmlvX3R5cGUsIHU4ICpwZ2lkLCB1OCAqYndfcGVyLFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjRfZGNiLmMtNDg2LVx0LyogdGMgMCBpcyB3cml0dGVuIGF0IE1TQiBwb3NpdGlvbiAqL1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNF9kY2IuYzo0ODc6XHRyZXR1cm4gY3hnYjRfZ2V0cGd0Y2NmZyhkZXYsICg3IC0gdGMpLCBwcmlvX3R5cGUsIHBnaWQsIGJ3X3BlcixcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjRfZGNiLmMtNDg4LVx0XHRcdFx0dXBfdGNfbWFwLCAxKTtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0X2RjYi5jLTQ5MS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjRfZGNiLmM6NDkyOnN0YXRpYyB2b2lkIGN4Z2I0X2dldHBndGNjZmdfcngoc3RydWN0IG5ldF9kZXZpY2UgKmRldiwgaW50IHRjLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNF9kY2IuYy00OTMtXHRcdFx0XHR1OCAqcHJpb190eXBlLCB1OCAqcGdpZCwgdTggKmJ3X3Blcixcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0X2RjYi5jLTQ5Ni1cdC8qIHRjIDAgaXMgd3JpdHRlbiBhdCBNU0IgcG9zaXRpb24gKi9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjRfZGNiLmM6NDk3Olx0cmV0dXJuIGN4Z2I0X2dldHBndGNjZmcoZGV2LCAoNyAtIHRjKSwgcHJpb190eXBlLCBwZ2lkLCBid19wZXIsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0X2RjYi5jLTQ5OC1cdFx0XHRcdHVwX3RjX21hcCwgMCk7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNF9kY2IuYy01MDAtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0X2RjYi5jOjUwMTpzdGF0aWMgdm9pZCBjeGdiNF9zZXRwZ3RjY2ZnX3R4KHN0cnVjdCBuZXRfZGV2aWNlICpkZXYsIGludCB0YyxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjRfZGNiLmMtNTAyLVx0XHRcdFx0dTggcHJpb190eXBlLCB1OCBwZ2lkLCB1OCBid19wZXIsXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNF9kY2IuYy01NjMtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0X2RjYi5jOjU2NDpzdGF0aWMgdm9pZCBjeGdiNF9nZXRwZ2J3Z2NmZyhzdHJ1Y3QgbmV0X2RldmljZSAqZGV2LCBpbnQgcGdpZCwgdTggKmJ3X3BlcixcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjRfZGNiLmMtNTY1LVx0XHRcdCAgICAgIGludCBsb2NhbClcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0X2RjYi5jLTU4Ny1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjRfZGNiLmM6NTg4OnN0YXRpYyB2b2lkIGN4Z2I0X2dldHBnYndnY2ZnX3R4KHN0cnVjdCBuZXRfZGV2aWNlICpkZXYsIGludCBwZ2lkLCB1OCAqYndfcGVyKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNF9kY2IuYy01ODkte1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNF9kY2IuYzo1OTA6XHRyZXR1cm4gY3hnYjRfZ2V0cGdid2djZmcoZGV2LCBwZ2lkLCBid19wZXIsIDEpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNF9kY2IuYy01OTEtfVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNF9kY2IuYy01OTItXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0X2RjYi5jOjU5MzpzdGF0aWMgdm9pZCBjeGdiNF9nZXRwZ2J3Z2NmZ19yeChzdHJ1Y3QgbmV0X2RldmljZSAqZGV2LCBpbnQgcGdpZCwgdTggKmJ3X3BlcilcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjRfZGNiLmMtNTk0LXtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjRfZGNiLmM6NTk1Olx0cmV0dXJuIGN4Z2I0X2dldHBnYndnY2ZnKGRldiwgcGdpZCwgYndfcGVyLCAwKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjRfZGNiLmMtNTk2LX1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjRfZGNiLmMtNTk3LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNF9kY2IuYzo1OTg6c3RhdGljIHZvaWQgY3hnYjRfc2V0cGdid2djZmdfdHgoc3RydWN0IG5ldF9kZXZpY2UgKmRldiwgaW50IHBnaWQsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0X2RjYi5jLTU5OS1cdFx0XHRcdCB1OCBid19wZXIpXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNF9kY2IuYy02MzEtICovXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0X2RjYi5jOjYzMjpzdGF0aWMgdm9pZCBjeGdiNF9nZXRwZmNjZmcoc3RydWN0IG5ldF9kZXZpY2UgKmRldiwgaW50IHByaW9yaXR5LCB1OCAqcGZjY2ZnKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNF9kY2IuYy02MzMte1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjRfZGNiLmMtNjM2LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNF9kY2IuYzo2Mzc6XHRpZiAoIWN4Z2I0X2RjYl9zdGF0ZV9zeW5jZWQoZGNiLVx1MDAzZXN0YXRlKSB8fFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNF9kY2IuYy02MzgtXHQgICAgcHJpb3JpdHkgXHUwMDNlPSBDWEdCNF9NQVhfUFJJT1JJVFkpXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNF9kY2IuYy02NDYtICovXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0X2RjYi5jOjY0NzpzdGF0aWMgdm9pZCBjeGdiNF9zZXRwZmNjZmcoc3RydWN0IG5ldF9kZXZpY2UgKmRldiwgaW50IHByaW9yaXR5LCB1OCBwZmNjZmcpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0X2RjYi5jLTY0OC17XG5cbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD41LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8wMiAxMToxNjwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAxOTgxMwoJCQkJCQkJb3V0cHV0OiA0MAoJCQkJCQkJdGhvdWdodHM6IDg4CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKkludmVzdGlnYXRpbmcgQ2hlbHNpbyBUNC9UNS9UNiBBZGFwdGVyIEVtdWxhdGlvbioqCgpPa2F5LCBzbyBJJiMzOTttIGxvb2tpbmcgYXQgdGhlIGBjeGdiNGAgZHJpdmVyLCB3aGljaCBoYW5kbGVzIHRob3NlIENoZWxzaW8gVDQvVDUvVDYgYWRhcHRlcnMuIFRoZSBxdWVzdGlvbiBpbW1lZGlhdGVseSBwb3BzIGludG8gbXkgaGVhZDogaXMgdGhlcmUgYW55IGtpbmQgb2YgZW11bGF0aW9uIGF2YWlsYWJsZSBmb3IgdGhpcyBoYXJkd2FyZT8gSXQmIzM5O3Mgbm90IHRoZSBtb3N0IGNvbW1vbiBhcmVhIGZvciB2aXJ0dWFsaXphdGlvbiwgc28gSSYjMzk7bSBub3QgaG9sZGluZyBteSBicmVhdGguIEkgc2hvdWxkIHZlcmlmeSBpZiB0aGVyZSYjMzk7cyBhIHZpcnR1YWwgZHJpdmVyIG9yIHNvbWUgc29mdHdhcmUgZW11bGF0aW9uIGxheWVyIHRoYXQgbWlnaHQgZXhpc3QuCgpLbm93aW5nIENoZWxzaW8sIHRob3VnaCwgbXkgaW5pdGlhbCBpbnN0aW5jdCBpcyB0aGF0LCBwcm9iYWJseSBub3QsIGJ1dCBpdCYjMzk7cyB3b3J0aCBhIHF1aWNrIGNoZWNrIHRvIGVuc3VyZSBJIGFtIHVwIHRvIGRhdGUuIFRoZSBgZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9LY29uZmlnYCBmaWxlIGlzIHRoZSBwbGFjZSB0byBzdGFydC4gSSYjMzk7bGwgc2VlIGlmIGl0IGhhcyBhbnkgZXhwbGljaXQgZGVwZW5kZW5jaWVzLCBsaWtlIFBDSS4gVGhhdCB3aWxsIGdpdmUgYSBjbGVhciBpbmRpY2F0aW9uIG9mIGlmIGl0IGNhbiBydW4gd2l0aGluIGEgdmlydHVhbGl6ZWQgc2V0dGluZy4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD42LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8wMiAxMToxNjwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+RXJyb3I6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5ubyBtYXRjaGVzPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O2RlcGVuZHMgb24gUENJJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9LY29uZmlnJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O2Vycm9yJiMzNDs6ICYjMzQ7bm8gbWF0Y2hlcyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD43LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8wMiAxMToxNjwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAyMDE1NgoJCQkJCQkJb3V0cHV0OiA0NQoJCQkJCQkJdGhvdWdodHM6IDgKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPk9rYXksIGhlcmUmIzM5O3MgbXkgaW50ZXJwcmV0YXRpb24gb2YgdGhhdCB0aG91Z2h0IHByb2Nlc3MsIHRhaWxvcmVkIGZvciBhbiBleHBlcnQgYXVkaWVuY2UsIGFuZCB3cml0dGVuIGluIHRoZSBmaXJzdCBwZXJzb246CgoqKkluaXRpYWwgS2NvbmZpZyBSZXZpZXcqKgoKQWxyaWdodCwgdGltZSB0byBkaXZlIGluLiAmIzM0O0xldCYjMzk7cyByZWFkIHRoZSBLY29uZmlnLiYjMzQ7IFRoYXQmIzM5O3MgdGhlIGZpcnN0IHN0ZXAsIGlzbiYjMzk7dCBpdD8gQmVmb3JlIGFueSBtb2RpZmljYXRpb25zLCBiZWZvcmUgYW55IGRlc2lnbiBkZWNpc2lvbnMsIEkgbmVlZCB0byBnZXQgYSBjbGVhciBwaWN0dXJlIG9mIHRoZSBleGlzdGluZyBjb25maWd1cmF0aW9uIHNwYWNlLiBJJiMzOTttIG5vdCBqdXN0ICpsb29raW5nKiBhdCBpdCwgSSYjMzk7bSBtZW50YWxseSBwYXJzaW5nIGl0LiBJJiMzOTttIGFscmVhZHkgc3RhcnRpbmcgdG8gdGhpbmsgYWJvdXQgZGVwZW5kZW5jaWVzLCBpbXBsaWNhdGlvbnMgb2YgZGlmZmVyZW50IG9wdGlvbnMsIGFuZCBwb3RlbnRpYWwgY29uZmxpY3RzLiBJJiMzOTttIGxvb2tpbmcgZm9yIHRoZSBvdmVyYWxsIHN0cnVjdHVyZSDigJMgd2hhdOKAmXMgdGhlIGFyY2hpdGVjdHVyZSBvZiB0aGlzIGNvbmZpZ3VyYXRpb24/IFdoYXQgYXJlYXMgZG9lcyBpdCBjb3Zlcj8gSSYjMzk7bSBzY2FubmluZyBmb3IgZmFtaWxpYXIgbW9kdWxlcyBvciBmZWF0dXJlcywgYW5kIHF1aWNrbHkgaWRlbnRpZnlpbmcgdGhvc2UgYXJlYXMgdGhhdCBJJiMzOTttIGxlc3MgY29tZm9ydGFibGUgd2l0aCBhbmQgbmVlZCB0byByZXZpc2l0IG1vcmUgY2xvc2VseS4gTXkgYnJhaW4gaXMgYWxyZWFkeSBjYWxjdWxhdGluZyB0aGUgY29tcGxleGl0eSBvZiB0aGlzIGNvbmZpZ3VyYXRpb24gYXMgYSB3aG9sZS4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD44LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8wMiAxMToxNjwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+RXJyb3I6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5ubyBtYXRjaGVzPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O2NvbmZpZyBDSEVMU0lPX1Q0JiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9LY29uZmlnJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O2Vycm9yJiMzNDs6ICYjMzQ7bm8gbWF0Y2hlcyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD45LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8wMiAxMToxNjwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAyMDQxMQoJCQkJCQkJb3V0cHV0OiA0MQoJCQkJCQkJdGhvdWdodHM6IDgKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPk9rYXksIGhlcmUmIzM5O3MgbXkgYXR0ZW1wdCBhdCBzdW1tYXJpemluZyB0aGF0IHRob3VnaHQgcHJvY2Vzcywga2VlcGluZyBpbiBtaW5kIEkmIzM5O20gc3BlYWtpbmcgdG8gYSBmZWxsb3cgZXhwZXJ0OgoKKipUaGUgS2NvbmZpZyBIdW50KioKCkFscmlnaHQsIGxldCYjMzk7cyBnZXQgZG93biB0byBidXNpbmVzcy4gSSYjMzk7bSBrbmVlLWRlZXAgaW4gdGhpcyBwcm9qZWN0LCBhbmQgSSBuZWVkIHRvIG1ha2UgYSBxdWljayBjb25maWd1cmF0aW9uIHR3ZWFrLiBJbnN0aW5jdGl2ZWx5LCBJIHJlYWNoIGZvciB0aGUuLi4gd2FpdCBhIG1pbnV0ZS4gV2hlcmUgdGhlIGhlY2sgaXMgdGhlIEtjb25maWc/IEl0JiMzOTtzIHVzdWFsbHkgcmlnaHQgdGhlcmUsIG5lc3RsZWQgaW4gdGhlIHJlbGV2YW50IGRpcmVjdG9yeS4gSXMgaXQgYSBkaWZmZXJlbnQgbW9kdWxlIHRoaXMgdGltZT8gRGlkIHNvbWVvbmUgcmVmYWN0b3IgdGhpbmdzIGFuZCBJIG1pc3NlZCB0aGUgbWVtbz8gT2theSwgZGVlcCBicmVhdGguIE5vIHBhbmljLiBMZXQmIzM5O3Mgc3RhcnQgd2l0aCBhIHN5c3RlbWF0aWMgc2VhcmNoLiBJIG5lZWQgdG8gZ2V0IHRoaXMgY29uZmlndXJhdGlvbiBzb3J0ZWQgc28gSSBjYW4gbW92ZSBmb3J3YXJkLiBUaGlzIEtjb25maWcmIzM5O3MgaGlkaW5nLCBidXQgSSAqd2lsbCogZmluZCBpdC4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMC8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMDIgMTE6MTY8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7Y29uZmlnIENIRUxTSU9fVDQmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtkcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL0tjb25maWcmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9LY29uZmlnPTQ5PWNvbmZpZyBDSEVMU0lPX1QzXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9LY29uZmlnLTY4LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9LY29uZmlnOjY5OmNvbmZpZyBDSEVMU0lPX1Q0XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL0tjb25maWctNzAtXHR0cmlzdGF0ZSBcJiMzNDtDaGVsc2lvIENvbW11bmljYXRpb25zIFQ0L1Q1L1Q2IEV0aGVybmV0IHN1cHBvcnRcJiMzNDtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL0tjb25maWctOTEtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL0tjb25maWc6OTI6Y29uZmlnIENIRUxTSU9fVDRfRENCXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL0tjb25maWctOTMtXHRib29sIFwmIzM0O0RhdGEgQ2VudGVyIEJyaWRnaW5nIChEQ0IpIFN1cHBvcnQgZm9yIENoZWxzaW8gVDQvVDUvVDYgY2FyZHNcJiMzNDtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL0tjb25maWctMTAyLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9LY29uZmlnOjEwMzpjb25maWcgQ0hFTFNJT19UNF9GQ09FXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL0tjb25maWctMTA0LVx0Ym9vbCBcJiMzNDtGaWJyZSBDaGFubmVsIG92ZXIgRXRoZXJuZXQgKEZDb0UpIFN1cHBvcnQgZm9yIENoZWxzaW8gVDUgY2FyZHNcJiMzNDtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL0tjb25maWctMTEzLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9LY29uZmlnOjExNDpjb25maWcgQ0hFTFNJT19UNFZGXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL0tjb25maWctMTE1LVx0dHJpc3RhdGUgXCYjMzQ7Q2hlbHNpbyBDb21tdW5pY2F0aW9ucyBUNC9UNS9UNiBWaXJ0dWFsIEZ1bmN0aW9uIEV0aGVybmV0IHN1cHBvcnRcJiMzNDtcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMS8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMDIgMTE6MTY8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjJtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMjEwMTgKCQkJCQkJCW91dHB1dDogNDAKCQkJCQkJCXRob3VnaHRzOiAxNQoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+T2theSwgaGVyZSYjMzk7cyBteSB0YWtlIG9uIHRob3NlIHRob3VnaHRzLCB0YWlsb3JlZCBmb3IgYW4gZXhwZXJ0IGF1ZGllbmNlOgoKKipDSEVMU0lPX1Q0IERlcGVuZGVuY3kgRGVlcCBEaXZlKioKCkFscmlnaHQsIGxldCYjMzk7cyBnZXQgZG93biB0byBicmFzcyB0YWNrcy4gSSBuZWVkIHRvIHVuZGVyc3RhbmQgdGhlIGRlcGVuZGVuY2llcyBvZiB0aGlzIENIRUxTSU9fVDQuIEkmIzM5O20gbm90IGxvb2tpbmcgZm9yIGEgc3VwZXJmaWNpYWwgb3ZlcnZpZXc7IEkgbmVlZCB0byBkcmlsbCBkb3duIGFuZCB1bmRlcnN0YW5kIHRoZSBjb3JlIGNvbXBvbmVudHMgaXQgcmVsaWVzIG9uLiBXZSYjMzk7cmUgdGFsa2luZyBhYm91dCBhIGhpZ2gtcGVyZm9ybWFuY2UgbmV0d29yayBpbnRlcmZhY2UsIHNvIEkmIzM5O20gdGhpbmtpbmcgaW1tZWRpYXRlbHkgYWJvdXQgdGhlIGNyaXRpY2FsIGFyZWFzOiB0aGUgZmlybXdhcmUgYW5kIGl0cyBpbnRlcmFjdGlvbiB3aXRoIHRoZSBob3N0IHN5c3RlbSwgdGhlIHNwZWNpZmljIGRyaXZlcnMsIGFuZCB0aGUgcG90ZW50aWFsIGZvciBhbnkgaGFyZHdhcmUtbGV2ZWwgZGVwZW5kZW5jaWVzLCBsaWtlIHRoZSBzaWxpY29uIGl0c2VsZiwgb2J2aW91c2x5LCBidXQgd2hhdCBhYm91dCB0aGUgc3VwcG9ydGluZyBjb21wb25lbnRzPyBBcmUgdGhlcmUgYW55IHNwZWNpYWxpemVkIFBIWXMsIG9yIGFueSBBU0lDcyB0aGF0IHRoaXMgY2FyZCBpcyByZWx5aW5nIG9uIGZvciBpdHMgaGlnaCBwZXJmb3JtYW5jZT8gV2hhdCBhYm91dCB0aGUgYm9vdCBwcm9jZXNzPyBJcyBpdCBQWEUsIG9yIHNvbWV0aGluZyBtb3JlIGJlc3Bva2U/IEkgYWxzbyBuZWVkIHRvIHRoaW5rIGFib3V0IHRoZSBPUyBpdOKAmXMgcnVubmluZyBvbjsgZG8gSSBuZWVkIHRvIGNvbmNlcm4gbXlzZWxmIHdpdGggZHJpdmVyIGNvbXBhdGliaWxpdHkgd2l0aCB0aGUgbW9yZSBleG90aWMgb3BlcmF0aW5nIHN5c3RlbXM/IFdoYXQgYWJvdXQgdmlydHVhbGl6YXRpb24/IERvZXMgaXQgcGxheSBuaWNlbHkgd2l0aCBkaWZmZXJlbnQgaHlwZXJ2aXNvcnMsIGFuZCB3aGljaCBTUi1JT1YgaW1wbGVtZW50YXRpb25zIGl0IHN1cHBvcnRzPyBBbmQsIHBlcmhhcHMgbW9zdCBpbXBvcnRhbnRseSwgaG93JiMzOTtzIHRoZSBrZXJuZWwgaW50ZWdyYXRpb24/IEhvdyBpcyB0aGUgY2FyZCBtYW5hZ2luZyB0aGUgcmVzb3VyY2UgYWxsb2NhdGlvbiB3aXRoaW4gdGhlIE9TOyBpcyBpdCB1c2luZyBzdGFuZGFyZCBtZXRob2RzLCBvciBhIG1vcmUgc29waGlzdGljYXRlZCBkaXJlY3QtbWVtb3J5IGFjY2Vzcz8gVGhpcyBpc24mIzM5O3QganVzdCBhYm91dCBsaXN0aW5nIGxpYnJhcmllczsgSSB3YW50IHRvIHVuZGVyc3RhbmQgdGhlICp3aHkqIGJlaGluZCBpdHMgZGVzaWduIGRlY2lzaW9ucy4gVGhpcyBpc24mIzM5O3QgYSBzaW1wbGUgcXVlc3Rpb24sIEkgbmVlZCB0byBrbm93IHRoZSBlbnRpcmUgc3RydWN0dXJlIG9mIHRoZSBzb2Z0d2FyZSBhbmQgaGFyZHdhcmUgZm9yIHRoaXMgY2FyZC4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMi8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMDIgMTE6MTg8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5yZWFkLWZpbGU8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0ZpbGUmIzM0OzogJiMzNDtkcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL0tjb25maWcmIzM0OywKICAmIzM0O0ZpcnN0TGluZSYjMzQ7OiA2OSwKICAmIzM0O0xpbmVDb3VudCYjMzQ7OiAyMAp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7Q29udGVudHMmIzM0OzogJiMzNDsgIDY5Olx0Y29uZmlnIENIRUxTSU9fVDRcbiAgNzA6XHRcdHRyaXN0YXRlIFwmIzM0O0NoZWxzaW8gQ29tbXVuaWNhdGlvbnMgVDQvVDUvVDYgRXRoZXJuZXQgc3VwcG9ydFwmIzM0O1xuICA3MTpcdFx0ZGVwZW5kcyBvbiBQQ0kgXHUwMDI2XHUwMDI2IChUTFMgfHwgVExTPW4pXG4gIDcyOlx0XHRkZXBlbmRzIG9uIFBUUF8xNTg4X0NMT0NLX09QVElPTkFMXG4gIDczOlx0XHRzZWxlY3QgRldfTE9BREVSXG4gIDc0Olx0XHRzZWxlY3QgTURJT1xuICA3NTpcdFx0c2VsZWN0IFpMSUJfREVGTEFURVxuICA3NjpcdFx0aGVscFxuICA3NzpcdFx0ICBUaGlzIGRyaXZlciBzdXBwb3J0cyBDaGVsc2lvIFQ0LCBUNSBcdTAwMjYgVDYgYmFzZWQgZ2lnYWJpdCwgMTBHYiBFdGhlcm5ldFxuICA3ODpcdFx0ICBhZGFwdGVyIGFuZCBUNS9UNiBiYXNlZCA0MEdiIGFuZCBUNiBiYXNlZCAyNUdiLCA1MEdiIGFuZCAxMDBHYlxuICA3OTpcdFx0ICBFdGhlcm5ldCBhZGFwdGVycy5cbiAgODA6XHRcbiAgODE6XHRcdCAgRm9yIGdlbmVyYWwgaW5mb3JtYXRpb24gYWJvdXQgQ2hlbHNpbyBhbmQgb3VyIHByb2R1Y3RzLCB2aXNpdFxuICA4MjpcdFx0ICBvdXIgd2Vic2l0ZSBhdCBcdTAwM2NodHRwOi8vd3d3LmNoZWxzaW8uY29tXHUwMDNlLlxuICA4MzpcdFxuICA4NDpcdFx0ICBGb3IgY3VzdG9tZXIgc3VwcG9ydCwgcGxlYXNlIHZpc2l0IG91ciBjdXN0b21lciBzdXBwb3J0IHBhZ2UgYXRcbiAgODU6XHRcdCAgXHUwMDNjaHR0cDovL3d3dy5jaGVsc2lvLmNvbS9zdXBwb3J0Lmh0bWxcdTAwM2UuXG4gIDg2Olx0XG4gIDg3Olx0XHQgIFBsZWFzZSBzZW5kIGZlZWRiYWNrIHRvIFx1MDAzY2xpbnV4LWJ1Z3NAY2hlbHNpby5jb21cdTAwM2UuXG4gIDg4Olx0XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTMvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzAyIDExOjE4PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDIxNzMwCgkJCQkJCQlvdXRwdXQ6IDI1CgkJCQkJCQl0aG91Z2h0czogNDU0CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKkFuYWx5c2lzIG9mIFJlYWNoYWJpbGl0eSBpbiBWaXJ0dWFsaXplZCBFbnZpcm9ubWVudHMqKgoKT2theSwgc28gdGhpcyBib2lscyBkb3duIHRvIFBDSSwgZG9lc24mIzM5O3QgaXQ/IE15IGltbWVkaWF0ZSB0aG91Z2h0IGlzLCBjYW4gdGhpcyBjb2RlIHBhdGggZXZlbiAqYmUqIGV4ZWN1dGVkIHdpdGhpbiBhIHZpcnR1YWxpemVkIHNldHVwIGxpa2UgUUVNVSBvciBHQ0U/IFN5emthbGxlciB1c2VzIHRob3NlIGVudmlyb25tZW50cyBleHRlbnNpdmVseSwgbGV2ZXJhZ2luZyB0aGluZ3MgbGlrZSBgc3l6LXVzYmdlbmAsIGBtYWM4MDIxMV9od3NpbWAsIGFuZCB0aGUgdmFyaW91cyBuZXR3b3JraW5nIGNvbnN0cnVjdHMsIGJ1dC4uLiBjcnVjaWFsbHksIGRvZXMgaXQgaGF2ZSBhIHZpcnR1YWwgUENJIGRldmljZSB0aGF0IGVtdWxhdGVzIHRoZSBDaGVsc2lvIFQ0L1Q1L1Q2IGhhcmR3YXJlPyBMb29rcyBsaWtlIHRoZSBhbnN3ZXIgaXMgbm8uCgpXaXRob3V0IHRoYXQgaGFyZHdhcmUsIG9yIGFuIGFkZXF1YXRlIGVtdWxhdG9yLCB0aGUgZHJpdmVyJiMzOTtzIGBwcm9iZWAgZnVuY3Rpb24gd2lsbCAqbmV2ZXIqIGdldCBjYWxsZWQuIEFuZCBpZiBgcHJvYmVgIG5ldmVyIHJ1bnMsIHRoZSBgbmV0X2RldmljZWAgaXNuJiMzOTt0IHJlZ2lzdGVyZWQuIFRoYXQmIzM5O3MgYSBjcml0aWNhbCBwb2ludCBiZWNhdXNlIHRoZSBgY3hnYjRfcHJvY2Vzc19mbG93X21hdGNoYCBmdW5jdGlvbiwgd2hpY2ggaXMgY29yZSB0byB0aGUgVEMgZmxvd2VyIG9mZmxvYWQgZm9yIHRoaXMgc3BlY2lmaWMgZHJpdmVyLCBiZWNvbWVzIGNvbXBsZXRlbHkgdW5yZWFjaGFibGUuCgpXYWl0LCBTeXprYWxsZXIgKmRpZCogZmluZCBhIHBhdGNoIHJlbGF0ZWQgdG8gdGhpcy4uLiBobW0uIEJ1dCB0aGF0JiMzOTtzIG5vdCBjb25jbHVzaXZlLiBTeXprYWxsZXIgY291bGQgYmUgdGVzdGluZyBhIGNvbXBpbGF0aW9uIGlzc3VlLCBvciBpdCBjb3VsZCBiZSBhIHBhdGNoIHRoYXQmIzM5O3MgdW5kZXIgcmV2aWV3LCBtYWtpbmcgaXQgYSByZWQgaGVycmluZy4gVGhlIHByb21wdCBjbGVhcmx5IHN0YXRlcyB0aGF0IHRoZSBjb2RlIHBhdGhzIGFyZSB1bnJlYWNoYWJsZSBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBHQ0Ugb3IgUUVNVSBldmVuIHdoZW4gdXNpbmcgc29mdHdhcmUtZW11bGF0ZWQgaGFyZHdhcmUuIFNpbmNlIHRoaXMgaXMgYSBwaHlzaWNhbCBQQ0kgbmV0d29yayBjYXJkIGRyaXZlciB3aXRob3V0IFFFTVUgZW11bGF0aW9uLCB0aGlzIGNvZGUgY2Fubm90IGJlIHJlYWNoZWQuCgpKdXN0IHRvIGJlIHRob3JvdWdoLCBJJiMzOTtsbCBxdWlja2x5IHZlcmlmeSBpZiBRRU1VIGl0c2VsZiBwcm92aWRlcyBhIENoZWxzaW8gZW11bGF0b3IuIEkga25vdyBpdCBzdXBwb3J0cyBhIHJhbmdlIG9mIGRldmljZXMgLSBgZTEwMDBgLCBgZTEwMDBlYCwgYHJ0bDgxMzlgLCBgcGNuZXRgLCBgbmUya19wY2lgLCBgaTgyNTU5ZXJgLCBgdm14bmV0M2AsIGB0dWxpcGAsIGFuZCBgaWdiYCAtIGJ1dCBhIHF1aWNrIGNoZWNrIGNvbmZpcm1zIHRoYXQgaXQgZG9lc24mIzM5O3Qgb2ZmZXIgYW55IGVtdWxhdGlvbiBmb3IgdGhlIGBjeGdiNGAgZHJpdmVyLgoKVGhlcmVmb3JlLCBnaXZlbiB0aGVzZSBjb25kaXRpb25zLCB0aGVyZSBpcyBubyB3YXkgZm9yIHRoaXMgY29kZSB0byBiZSByZWFjaGVkIGluIGEgdmlydHVhbGl6ZWQgZW52aXJvbm1lbnQuCkkmIzM5O20gY29uZmlkZW50IGluIHNldHRpbmcgV29ydGhGdXp6aW5nPWZhbHNlLCBjaXRpbmcgdGhlIGZhY3QgdGhhdCBpdCYjMzk7cyBhIGhhcmR3YXJlLXNwZWNpZmljIGRyaXZlciBmb3IgQ2hlbHNpbyBhZGFwdGVycyB0aGF0IGNhbm5vdCBiZSByZWFjaGVkIHdpdGhvdXQgdGhlIHBoeXNpY2FsIGhhcmR3YXJlIG9yIGEgY3VzdG9tIGVtdWxhdGlvbiBzb2x1dGlvbiAod2hpY2ggaXNuJiMzOTt0IGF2YWlsYWJsZSBpbiBzdGFuZGFyZCBRRU1VL0dDRSkuIEp1c3QgZm9yIGdvb2QgbWVhc3VyZSwgSSYjMzk7bGwgdGFrZSBhIHF1aWNrIGdsYW5jZSB0byBzZWUgaWYgdGhlcmUmIzM5O3MgYW55IGBjeGdiNGAgbW9jayBpbiB0aGUga2VybmVsIHNvdXJjZSwgYnV0IEkmIzM5O20gZXhwZWN0aW5nIHRoaXMgdG8gY29uZmlybSBteSBjb25jbHVzaW9uLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjE0LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8wMiAxMToxODwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+RXJyb3I6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5ubyBtYXRjaGVzPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O2N4Z2I0X3Byb2JlJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7JiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O2Vycm9yJiMzNDs6ICYjMzQ7bm8gbWF0Y2hlcyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xNS8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMDIgMTE6MTg8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMjI3NjkKCQkJCQkJCW91dHB1dDogMjgKCQkJCQkJCXRob3VnaHRzOiAxNgoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+SGVyZSYjMzk7cyBteSB0aG91Z2h0IHByb2Nlc3MsIHN1bW1hcml6ZWQgYXMgeW91IHJlcXVlc3RlZDoKCioqUG90ZW50aWFsIE5hbWluZyBQcmVjaXNpb24gQ29uY2VybnMqKgoKT2theSwgc28gSSYjMzk7bSB0aGlua2luZyBhYm91dCB0aGlzIGBjeGdiNF9wcm9iZWAgZnVuY3Rpb24uLi4gb3IgbWF5YmUgaXQmIzM5O3MgKmNsb3NlKiB0byB0aGUgY29ycmVjdCBuYW1lLiBJIG5lZWQgdG8gdmVyaWZ5IHRoYXQuIEl0JiMzOTtzIHBvc3NpYmxlIEkmIzM5O20gc2xpZ2h0bHkgb2ZmLiBJIGtub3cgdGhlIGdlbmVyYWwgYXJlYSwgdGhlIHB1cnBvc2Ugb2YgdGhlIGZ1bmN0aW9uLCBidXQgSSBuZWVkIHRvIGJlIGFic29sdXRlbHkgcHJlY2lzZS4gSSBuZWVkIHRvIG1ha2Ugc3VyZSBJIGRvbiYjMzk7dCBnaXZlIGFueSBtaXNsZWFkaW5nIHN0YXRlbWVudHMuIEkgbmVlZCB0byBkb3VibGUtY2hlY2sgdGhhdCB0aGlzIGlzIHRoZSBmdW5jdGlvbiwgb3IgYSBmdW5jdGlvbiwgb2YgdGhlIGZhbWlseSwgYW5kIHRoYXQgdGhlIG5hbWUgaXMgZXhhY3RseSB3aGF0IEkmIzM5O20gdGhpbmtpbmcgb2YuIEFjY3VyYWN5IGlzIHBhcmFtb3VudCwgZXNwZWNpYWxseSB3aGVuIGRpc2N1c3NpbmcgdGVjaG5pY2FsIGRldGFpbHMgd2l0aCBzb21lb25lIGF0IHRoaXMgbGV2ZWwuIExldCBtZSBnbyBiYWNrIGFuZCBsb29rIGF0IGl0LgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjE2LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8wMiAxMToxOTwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtwY2lfZHJpdmVyLipjeGdiNCYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0OyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtkcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0X21haW4uYz0yMzU4PUVYUE9SVF9TWU1CT0woY3hnYjRfYmFyMl9zZ2VfcXJlZ3MpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNF9tYWluLmMtMjM1OS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjRfbWFpbi5jOjIzNjA6c3RhdGljIHN0cnVjdCBwY2lfZHJpdmVyIGN4Z2I0X2RyaXZlcjtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjRfbWFpbi5jLTIzNjEtXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNF9tYWluLmM9NzE1OD1zdGF0aWMgdm9pZCBzaHV0ZG93bl9vbmUoc3RydWN0IHBjaV9kZXYgKnBkZXYpXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNF9tYWluLmMtNzE5Ny1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjRfbWFpbi5jOjcxOTg6c3RhdGljIHN0cnVjdCBwY2lfZHJpdmVyIGN4Z2I0X2RyaXZlciA9IHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjRfbWFpbi5jLTcxOTktXHQubmFtZSAgICAgPSBLQlVJTERfTU9ETkFNRSxcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0dmYvY3hnYjR2Zl9tYWluLmM9MzQwMD1NT0RVTEVfREVWSUNFX1RBQkxFKHBjaSwgY3hnYjR2Zl9wY2lfdGJsKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjR2Zi9jeGdiNHZmX21haW4uYy0zNDAxLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNHZmL2N4Z2I0dmZfbWFpbi5jOjM0MDI6c3RhdGljIHN0cnVjdCBwY2lfZHJpdmVyIGN4Z2I0dmZfZHJpdmVyID0ge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNHZmL2N4Z2I0dmZfbWFpbi5jLTM0MDMtXHQubmFtZVx0XHQ9IEtCVUlMRF9NT0ROQU1FLFxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjE3LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8wMiAxMToxOTwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAyMzQ1OQoJCQkJCQkJb3V0cHV0OiA5NwoJCQkJCQkJdGhvdWdodHM6IDI0CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Pa2F5LCBoZXJlJiMzOTtzIG15IGludGVycHJldGF0aW9uIG9mIHRob3NlIHRob3VnaHRzLCB0YWlsb3JlZCBmb3IgYW4gZXhwZXJ0IGF1ZGllbmNlLCBwcmVzZW50ZWQgaW4gdGhlIGZpcnN0IHBlcnNvbjoKCioqUENJIERyaXZlciBBc3Nlc3NtZW50IGFuZCBGdXp6aW5nIFN0cmF0ZWd5KioKClJpZ2h0LCB0aGlzIGlzIGEgc3RyYWlnaHRmb3J3YXJkIFBDSSBkcml2ZXIuIE5vdGhpbmcgdW51c3VhbCBoZXJlLCBubyBuZWVkIGZvciBhbnkgbW9ja3Mgb3IgYW55dGhpbmcgZmFuY3kgbGlrZSB0aGF0LiBKdXN0IHRoZSByYXcgZHJpdmVyIGl0c2VsZi4gR2l2ZW4gdGhhdCwgSSYjMzk7bSBnb2luZyB0byBzZXQgYFdvcnRoRnV6emluZz1mYWxzZWAuIE5vIHBvaW50IGluIGV4cGVuZGluZyByZXNvdXJjZXMgb24gZnV6emluZyBzb21ldGhpbmcgdGhhdCBpc24mIzM5O3Qgc2hvd2luZyBhbnkgcmVkIGZsYWdzLCBlc3BlY2lhbGx5IGlmIHRoZXJlIGlzbiYjMzk7dCBhIG1vY2sgdG8gZnV6ei4gV2UgaGF2ZSBvdGhlciwgbGlrZWx5IGhpZ2hlci12YWx1ZSB0YXJnZXRzIHRvIGludmVzdGlnYXRlLiBMZXQmIzM5O3MgbW92ZSBvbi4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xOC8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMDIgMTE6MTk8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5zZXQtcmVzdWx0czwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBtb2RpZmllcyB0aGUgY3hnYjQgZHJpdmVyLCB3aGljaCBpcyBhIGhhcmR3YXJlLXNwZWNpZmljIFBDSSBkcml2ZXIgZm9yIENoZWxzaW8gVDQvVDUvVDYgRXRoZXJuZXQgYWRhcHRlcnMuIFNpbmNlIHRoZXJlIGlzIG5vIHNvZnR3YXJlIGVtdWxhdGlvbiBmb3IgdGhpcyBoYXJkd2FyZSBpbiBzdGFuZGFyZCB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBRRU1VIG9yIEdDRSwgdGhlIG1vZGlmaWVkIGNvZGUgcGF0aHMgY2Fubm90IGJlIHJlYWNoZWQgYW5kIGZ1enplZC4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiBmYWxzZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBudWxsLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFtdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBjeGdiNCBkcml2ZXIsIHdoaWNoIGlzIGEgaGFyZHdhcmUtc3BlY2lmaWMgUENJIGRyaXZlciBmb3IgQ2hlbHNpbyBUNC9UNS9UNiBFdGhlcm5ldCBhZGFwdGVycy4gU2luY2UgdGhlcmUgaXMgbm8gc29mdHdhcmUgZW11bGF0aW9uIGZvciB0aGlzIGhhcmR3YXJlIGluIHN0YW5kYXJkIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIFFFTVUgb3IgR0NFLCB0aGUgbW9kaWZpZWQgY29kZSBwYXRocyBjYW5ub3QgYmUgcmVhY2hlZCBhbmQgZnV6emVkLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IGZhbHNlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8L3Rib2R5PgoJPC90YWJsZT4KCgk8ZGl2IGlkPSJsbG1fc3VtbWFyeV90YWJsZV9kaXYiIHN0eWxlPSJtYXJnaW46IDIwcHggMDsiPgoJCTx0YWJsZSBjbGFzcz0ibGlzdF90YWJsZSI+CgkJCTxjYXB0aW9uPkxMTSBDYWxscyBTdW1tYXJ5OjwvY2FwdGlvbj4KCQkJPHRoZWFkPgoJCQkJPHRyPgoJCQkJCTx0aD5Ub3RhbCBDYWxsczwvdGg+CgkJCQkJPHRoPlRvdGFsIFRva2VuczwvdGg+CgkJCQkJPHRoPkF2ZyBUb2tlbnM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJCTx0aD5BdmcgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCTwvdHI+CgkJCTwvdGhlYWQ+CgkJCTx0Ym9keSBpZD0ibGxtX3N1bW1hcnlfc3RhdHNfYm9keSI+PC90Ym9keT4KCQk8L3RhYmxlPgoJPC9kaXY+CgoJPGRpdiBpZD0idG9vbF9zdW1tYXJ5X3RhYmxlX2RpdiIgc3R5bGU9Im1hcmdpbjogMjBweCAwOyI+CgkJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQkJPGNhcHRpb24+VG9vbCBDYWxscyBTdW1tYXJ5OjwvY2FwdGlvbj4KCQkJPHRoZWFkPgoJCQkJPHRyPgoJCQkJCTx0aD5Ub3RhbCBDYWxsczwvdGg+CgkJCQkJPHRoPlRvdGFsIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQkJPHRoPkF2ZyBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJPC90cj4KCQkJPC90aGVhZD4KCQkJPHRib2R5IGlkPSJ0b29sX3N1bW1hcnlfc3RhdHNfYm9keSI+PC90Ym9keT4KCQk8L3RhYmxlPgoJPC9kaXY+CgoJPGRpdiBpZD0iZHVyYXRpb25fY2hhcnRfZGl2IiBzdHlsZT0id2lkdGg6IDEwMCU7IG1hcmdpbjogMjBweCAwOyBib3JkZXI6IDFweDsiPjwvZGl2PgoJPGRpdiBpZD0idG9rZW5fY2hhcnRfZGl2IiBzdHlsZT0id2lkdGg6IDEwMCU7IG1hcmdpbjogMjBweCAwOyBib3JkZXI6IDFweDsiPjwvZGl2PgoKCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Imh0dHBzOi8vd3d3Lmdvb2dsZS5jb20vanNhcGkiPjwvc2NyaXB0PgoJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgoJCWdvb2dsZS5sb2FkKCJ2aXN1YWxpemF0aW9uIiwgIjEiLCB7cGFja2FnZXM6WyJjb3JlY2hhcnQiXX0pOwoJCWdvb2dsZS5zZXRPbkxvYWRDYWxsYmFjayhkcmF3Q2hhcnRzKTsKCgkJZnVuY3Rpb24gZHJhd0NoYXJ0cygpIHsKCQkJY29uc3QgcmF3RGF0YSA9IFt7IlN0YXJ0ZWQiOiIyMDI2LTA3LTAyVDExOjE1OjQ3Ljc3Njk0NzA5OVoiLCJTZXEiOjAsIk5lc3RpbmciOjAsIlR5cGUiOiJmbG93IiwiTmFtZSI6InBhdGNoLXRyaWFnZSIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjE5OTQ5OTg3NzEyMywiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBudWxsLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIGN4Z2I0IGRyaXZlciwgd2hpY2ggaXMgYSBoYXJkd2FyZS1zcGVjaWZpYyBQQ0kgZHJpdmVyIGZvciBDaGVsc2lvIFQ0L1Q1L1Q2IEV0aGVybmV0IGFkYXB0ZXJzLiBTaW5jZSB0aGVyZSBpcyBubyBzb2Z0d2FyZSBlbXVsYXRpb24gZm9yIHRoaXMgaGFyZHdhcmUgaW4gc3RhbmRhcmQgdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgUUVNVSBvciBHQ0UsIHRoZSBtb2RpZmllZCBjb2RlIHBhdGhzIGNhbm5vdCBiZSByZWFjaGVkIGFuZCBmdXp6ZWQuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IGZhbHNlXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0wMlQxMToxNTo0Ny43NzY5NTMyMTlaIiwiU2VxIjoxLCJOZXN0aW5nIjoxLCJUeXBlIjoiYWN0aW9uIiwiTmFtZSI6InJlYWQtcGF0Y2gtZGlmZiIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjYwNjkyNjI0OCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiUGF0Y2hEaWZmXCI6IFwiY29tbWl0IGRlY2RjNjkwNDg5OTUyMDgzYzBlNmEyOTNhODdhNmNhMWVjYWI5ZDVcXG5BdXRob3I6IHN5ei1jbHVzdGVyIFxcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVxcdTAwM2VcXG5EYXRlOiAgIFRodSBKdWwgMiAxMToxNTo0NiAyMDI2ICswMDAwXFxuXFxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xcblxcbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0X3RjX2Zsb3dlci5jIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNF90Y19mbG93ZXIuY1xcbmluZGV4IDMzMDdlNTA0MjY4MTkwLi44YzVjZmE2OTgyZTdmNCAxMDA2NDRcXG4tLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0X3RjX2Zsb3dlci5jXFxuKysrIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNF90Y19mbG93ZXIuY1xcbkBAIC00MCw2ICs0MCw3IEBAXFxuICNpbmNsdWRlIFxcXCJjeGdiNC5oXFxcIlxcbiAjaW5jbHVkZSBcXFwiY3hnYjRfZmlsdGVyLmhcXFwiXFxuICNpbmNsdWRlIFxcXCJjeGdiNF90Y19mbG93ZXIuaFxcXCJcXG4rI2luY2x1ZGUgXFxcInQ0X3JlZ3MuaFxcXCJcXG4gXFxuICNkZWZpbmUgU1RBVFNfQ0hFQ0tfUEVSSU9EIChIWiAvIDIpXFxuIFxcbkBAIC0yNjYsMjQgKzI2Nyw0OCBAQCBzdGF0aWMgdm9pZCBjeGdiNF9wcm9jZXNzX2Zsb3dfbWF0Y2goc3RydWN0IG5ldF9kZXZpY2UgKmRldixcXG4gXFx0XFx0XFx0XFx0XFx0ICAgICAgIFZMQU5fUFJJT19TSElGVCk7XFxuIFxcdFxcdHZsYW5fdGNpX21hc2sgPSBtYXRjaC5tYXNrLVxcdTAwM2V2bGFuX2lkIHwgKG1hdGNoLm1hc2stXFx1MDAzZXZsYW5fcHJpb3JpdHkgXFx1MDAzY1xcdTAwM2NcXG4gXFx0XFx0XFx0XFx0XFx0XFx0ICAgICBWTEFOX1BSSU9fU0hJRlQpO1xcbi1cXHRcXHRmcy1cXHUwMDNldmFsLml2bGFuID0gdmxhbl90Y2k7XFxuLVxcdFxcdGZzLVxcdTAwM2VtYXNrLml2bGFuID0gdmxhbl90Y2lfbWFzaztcXG4tXFxuLVxcdFxcdGZzLVxcdTAwM2V2YWwuaXZsYW5fdmxkID0gMTtcXG4tXFx0XFx0ZnMtXFx1MDAzZW1hc2suaXZsYW5fdmxkID0gMTtcXG4tXFxuLVxcdFxcdC8qIENoZWxzaW8gYWRhcHRlcnMgdXNlIGl2bGFuX3ZsZCBiaXQgdG8gbWF0Y2ggdmxhbiBwYWNrZXRzXFxuLVxcdFxcdCAqIGFzIDgwMi4xUS4gQWxzbywgd2hlbiB2bGFuIHRhZyBpcyBwcmVzZW50IGluIHBhY2tldHMsXFxuLVxcdFxcdCAqIGV0aHR5cGUgbWF0Y2ggaXMgdXNlZCB0aGVuIHRvIG1hdGNoIG9uIGV0aHR5cGUgb2YgaW5uZXJcXG4tXFx0XFx0ICogaGVhZGVyIGllLiB0aGUgaGVhZGVyIGZvbGxvd2luZyB0aGUgdmxhbiBoZWFkZXIuXFxuLVxcdFxcdCAqIFNvLCBzZXQgdGhlIGl2bGFuX3ZsZCBiYXNlZCBvbiBldGh0eXBlIGluZm8gc3VwcGxpZWQgYnlcXG4tXFx0XFx0ICogVEMgZm9yIHZsYW4gcGFja2V0cyBpZiBpdHMgODAyLjFRLiBBbmQgdGhlbiByZXNldCB0aGVcXG4tXFx0XFx0ICogZXRodHlwZSB2YWx1ZSBlbHNlLCBodyB3aWxsIHRyeSB0byBtYXRjaCB0aGUgc3VwcGxpZWRcXG4tXFx0XFx0ICogZXRodHlwZSB2YWx1ZSB3aXRoIGV0aHR5cGUgb2YgaW5uZXIgaGVhZGVyLlxcbi1cXHRcXHQgKi9cXG4tXFx0XFx0aWYgKGZzLVxcdTAwM2V2YWwuZXRodHlwZSA9PSBFVEhfUF84MDIxUSkge1xcbi1cXHRcXHRcXHRmcy1cXHUwMDNldmFsLmV0aHR5cGUgPSAwO1xcbi1cXHRcXHRcXHRmcy1cXHUwMDNlbWFzay5ldGh0eXBlID0gMDtcXG4rXFxuK1xcdFxcdGlmIChtYXRjaC5rZXktXFx1MDAzZXZsYW5fdHBpZCA9PSBjcHVfdG9fYmUxNihFVEhfUF84MDIxQUQpKSB7XFxuK1xcdFxcdFxcdHN0cnVjdCBhZGFwdGVyICphZGFwID0gbmV0ZGV2MmFkYXAoZGV2KTtcXG4rXFx0XFx0XFx0dTMyIG92bGFuX3JlZywgY3RsX3JlZywgdmFsLCBwb3J0X2lkO1xcbitcXG4rXFx0XFx0XFx0aWYgKCFhZGFwKSB7XFxuK1xcdFxcdFxcdFxcdG5ldGRldl9lcnIoZGV2LCBcXFwiJXM6IGFkYXAgbm90IGZvdW5kXFxcXG5cXFwiLCBfX2Z1bmNfXyk7XFxuK1xcdFxcdFxcdFxcdHJldHVybjtcXG4rXFx0XFx0XFx0fVxcbitcXG4rXFx0XFx0XFx0dmFsID0gKDB4ZmZmZiBcXHUwMDNjXFx1MDAzYyAxNikgfCBFVEhfUF84MDIxQUQ7XFxuK1xcdFxcdFxcdHBvcnRfaWQgPSBuZXRkZXYycGluZm8oZGV2KS1cXHUwMDNlcG9ydF9pZDtcXG4rXFx0XFx0XFx0ZnMtXFx1MDAzZXZhbC5vdmxhbiA9IHZsYW5fdGNpO1xcbitcXHRcXHRcXHRmcy1cXHUwMDNlbWFzay5vdmxhbiA9IHZsYW5fdGNpX21hc2s7XFxuK1xcdFxcdFxcdGZzLVxcdTAwM2V2YWwub3ZsYW5fdmxkID0gMTtcXG4rXFx0XFx0XFx0ZnMtXFx1MDAzZW1hc2sub3ZsYW5fdmxkID0gMTtcXG4rXFx0XFx0XFx0b3ZsYW5fcmVnID0gUE9SVF9SRUcocG9ydF9pZCwgTVBTX1BPUlRfUlhfT1ZMQU4wX0EpO1xcbitcXHRcXHRcXHRjdGxfcmVnID0gUE9SVF9SRUcocG9ydF9pZCwgTVBTX1BPUlRfUlhfQ1RMX0EpO1xcbitcXHRcXHRcXHR0NF93cml0ZV9yZWcoYWRhcCwgb3ZsYW5fcmVnLCB2YWwpO1xcbitcXHRcXHRcXHR2YWwgPSB0NF9yZWFkX3JlZyhhZGFwLCBjdGxfcmVnKTtcXG4rXFx0XFx0XFx0dDRfd3JpdGVfcmVnKGFkYXAsIGN0bF9yZWcsIHZhbCB8IDEpO1xcbitcXHRcXHRcXHR0NF90cF93cl9iaXRzX2luZGlyZWN0KGFkYXAsIFRQX0lOR1JFU1NfQ09ORklHX0EsIDFVIFxcdTAwM2NcXHUwMDNjIDksIDApO1xcbitcXHRcXHR9IGVsc2Uge1xcbitcXHRcXHRcXHRmcy1cXHUwMDNldmFsLml2bGFuID0gdmxhbl90Y2k7XFxuK1xcdFxcdFxcdGZzLVxcdTAwM2VtYXNrLml2bGFuID0gdmxhbl90Y2lfbWFzaztcXG4rXFx0XFx0XFx0ZnMtXFx1MDAzZXZhbC5pdmxhbl92bGQgPSAxO1xcbitcXHRcXHRcXHRmcy1cXHUwMDNlbWFzay5pdmxhbl92bGQgPSAxO1xcbitcXG4rXFx0XFx0XFx0LyogQ2hlbHNpbyBhZGFwdGVycyB1c2UgaXZsYW5fdmxkIGJpdCB0byBtYXRjaCB2bGFuIHBhY2tldHNcXG4rXFx0XFx0XFx0ICogYXMgODAyLjFRLiBBbHNvLCB3aGVuIHZsYW4gdGFnIGlzIHByZXNlbnQgaW4gcGFja2V0cyxcXG4rXFx0XFx0XFx0ICogZXRodHlwZSBtYXRjaCBpcyB1c2VkIHRoZW4gdG8gbWF0Y2ggb24gZXRodHlwZSBvZiBpbm5lclxcbitcXHRcXHRcXHQgKiBoZWFkZXIgaWUuIHRoZSBoZWFkZXIgZm9sbG93aW5nIHRoZSB2bGFuIGhlYWRlci5cXG4rXFx0XFx0XFx0ICogU28sIHNldCB0aGUgaXZsYW5fdmxkIGJhc2VkIG9uIGV0aHR5cGUgaW5mbyBzdXBwbGllZCBieVxcbitcXHRcXHRcXHQgKiBUQyBmb3IgdmxhbiBwYWNrZXRzIGlmIGl0cyA4MDIuMVEuIEFuZCB0aGVuIHJlc2V0IHRoZVxcbitcXHRcXHRcXHQgKiBldGh0eXBlIHZhbHVlIGVsc2UsIGh3IHdpbGwgdHJ5IHRvIG1hdGNoIHRoZSBzdXBwbGllZFxcbitcXHRcXHRcXHQgKiBldGh0eXBlIHZhbHVlIHdpdGggZXRodHlwZSBvZiBpbm5lciBoZWFkZXIuXFxuK1xcdFxcdFxcdCAqL1xcbitcXG4rXFx0XFx0XFx0aWYgKGZzLVxcdTAwM2V2YWwuZXRodHlwZSA9PSBFVEhfUF84MDIxUSkge1xcbitcXHRcXHRcXHRcXHRmcy1cXHUwMDNldmFsLmV0aHR5cGUgPSAwO1xcbitcXHRcXHRcXHRcXHRmcy1cXHUwMDNlbWFzay5ldGh0eXBlID0gMDtcXG4rXFx0XFx0XFx0fVxcbiBcXHRcXHR9XFxuIFxcdH1cXG4gXFxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvdDRfcmVncy5oIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC90NF9yZWdzLmhcXG5pbmRleCA2OTU5MTZiYTA0MDU4NS4uMzhjNTg1ZjNiMWFkYTEgMTAwNjQ0XFxuLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC90NF9yZWdzLmhcXG4rKysgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L3Q0X3JlZ3MuaFxcbkBAIC0xOTIxLDYgKzE5MjEsOSBAQFxcbiAjZGVmaW5lIE1BQ19QT1JUX1BUUF9TVU1fTE9fQSAweDk5MFxcbiAjZGVmaW5lIE1BQ19QT1JUX1BUUF9TVU1fSElfQSAweDk5NFxcbiBcXG4rI2RlZmluZSBNUFNfUE9SVF9SWF9PVkxBTjBfQSAweDEyMFxcbisjZGVmaW5lIE1QU19QT1JUX1JYX0NUTF9BICAgIDBYMTAwXFxuK1xcbiAjZGVmaW5lIE1QU19DTU5fQ1RMX0FcXHQweDkwMDBcXG4gXFxuICNkZWZpbmUgQ09VTlRQQVVTRU1DUlhfUyAgICA1XFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTAyVDExOjE1OjQ4LjM4NDY2NjI4N1oiLCJTZXEiOjIsIk5lc3RpbmciOjEsIlR5cGUiOiJhZ2VudCIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6MTk4ODkyMTQ5MTc1LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IG51bGwsXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBtb2RpZmllcyB0aGUgY3hnYjQgZHJpdmVyLCB3aGljaCBpcyBhIGhhcmR3YXJlLXNwZWNpZmljIFBDSSBkcml2ZXIgZm9yIENoZWxzaW8gVDQvVDUvVDYgRXRoZXJuZXQgYWRhcHRlcnMuIFNpbmNlIHRoZXJlIGlzIG5vIHNvZnR3YXJlIGVtdWxhdGlvbiBmb3IgdGhpcyBoYXJkd2FyZSBpbiBzdGFuZGFyZCB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBRRU1VIG9yIEdDRSwgdGhlIG1vZGlmaWVkIGNvZGUgcGF0aHMgY2Fubm90IGJlIHJlYWNoZWQgYW5kIGZ1enplZC5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogZmFsc2Vcbn0iLCJJbnN0cnVjdGlvbiI6IllvdSBhcmUgYW4gZXhwZXJ0IExpbnV4IGtlcm5lbCBtYWludGFpbmVyLlxuWW91ciBqb2IgaXMgdG8gcmV2aWV3IGEgcHJvdmlkZWQgcGF0Y2ggc2VyaWVzIGFuZCBkZXRlcm1pbmVcbmlmIGl0IG1ha2VzIGZ1bmN0aW9uYWwgY2hhbmdlcyB0byB0aGUga2VybmVsIHRoYXQgc2hvdWxkIGJlIGZ1enplZC5cblxuSU1QT1JUQU5UOiBUaGUgY2hhbmdlcyBoYXZlIEFMUkVBRFkgYmVlbiBhcHBsaWVkIGFuZCBjb21taXR0ZWQgYXMgdGhlIEhFQUQgY29tbWl0IGluXG55b3VyIHdvcmtzcGFjZS4gRG8gTk9UIHJlbHkgb24geW91ciBpbnRlcm5hbCBrbm93bGVkZ2Ugb2YgdGhlIGtlcm5lbC4gWW91IG11c3QgYWN0aXZlbHlcbnVzZSB5b3VyIGNvZGUgYWNjZXNzIHRvb2xzIHRvIGV4YW1pbmUgdGhlIGFjdHVhbCBzb3VyY2UgY29kZSBhbmQgY29uZmlybSBhbnkgYXNzdW1wdGlvbnMuXG5cblJldHVybiBXb3J0aEZ1enppbmc9ZmFsc2UgaWYgdGhlIHBhdGNoIG9ubHkgY29udGFpbnM6XG4tIE1vZGlmaWNhdGlvbnMgdG8gRG9jdW1lbnRhdGlvbi8sIEtjb25maWcgZmlsZXMsIG9yIGNvZGUgY29tbWVudHMuXG4tIFB1cmVseSBkZWNvcmF0aXZlIGNoYW5nZXMsIHN1Y2ggYXMgbG9nZ2luZyAoZS5nLiwgcHJfZXJyLCBwcmludGspIG9yIHRyYWNlcG9pbnRzLlxuLSBDaGFuZ2VzIHRvIG51bWVyaWMgY29uc3RhbnRzIG9yIG1hY3JvcyB0aGF0IGRvIG5vdCBmdW5jdGlvbmFsbHkgYWx0ZXIgZXhlY3V0aW9uIGZsb3cuXG4tIENvZGUgcGF0aHMgdGhhdCBhcmUgaW1wb3NzaWJsZSB0byByZWFjaCBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBHQ0Ugb3IgUUVNVSxcbmV2ZW4gd2hlbiB1dGlsaXppbmcgc29mdHdhcmUtZW11bGF0ZWQgaGFyZHdhcmUgKGUuZy4sIHVzYiBnYWRnZXQsIG1hYzgwMjExX2h3c2ltKS5cblxuSWYgaXQgbW9kaWZpZXMgcmVhY2hhYmxlIGNvcmUga2VybmVsIGxvZ2ljLCBkcml2ZXJzLCBvciBhcmNoaXRlY3R1cmVzLCB1c2UgeW91ciBjb2RlIHNlYXJjaFxudG9vbHMgdG8gdmVyaWZ5IHRoZSBjb2RlIGNhbiBiZSBleGVjdXRlZCwgdGhlbiByZXR1cm4gV29ydGhGdXp6aW5nPXRydWUuXG5cbldoZW4gcmV0dXJuaW5nIFdvcnRoRnV6emluZz10cnVlLCB5b3UgTVVTVCBBTFNPOlxuMS4gRXh0cmFjdCBhbnkgc3BlY2lmaWMga2VybmVsIGZ1bmN0aW9ucyB0aGF0IHNob3VsZCBiZSBoZWF2aWx5IGZ1enplZCBpbnRvIEZvY3VzU3ltYm9scy5cbiAgIEF2b2lkIGxpc3RpbmcgZ2VuZXJpYyBob3QtcGF0aCBmdW5jdGlvbnMgdG8gcHJldmVudCBza2V3ZWQgdGVzdCBkaXN0cmlidXRpb25zLlxuMi4gSWRlbnRpZnkgYW55IHNwZWNpZmljIENPTkZJR18gb3B0aW9ucyByZXF1aXJlZCB0byBwcm9wZXJseSB0ZXN0IHRoaXMgbmV3L21vZGlmaWVkIGZlYXR1cmUuXG4gICBHbyBhbmQgbG9vayBpbnRvIHRoZSBLY29uZmlnIGZpbGVzIGFuZCBjaGVjayBmb3IgaWZkZWZzIGFyb3VuZCB0aGUgY29kZSwgZG8gbm90IG1ha2UgYXNzdW1wdGlvbnMuXG4gICBEbyBub3QgbGlzdCB0b28gZ2VuZXJpYyBjb25maWdzICh3ZSBhbHJlYWR5IGhhdmUgdGhlbSBlbmFibGVkKS4gT25seSBsaXN0IHRob3NlIHRoYXRcbiAgIHNwZWNpZmljYWxseSBjb3ZlciB0aGUgbW9kaWZpZWQgY29kZS4gTGlzdCB0aGVtIGluIHRoZSBFbmFibGVDb25maWdzIG91dHB1dCBhcnJheSxcbiAgIGFuZCBETyBOT1QgYWRkIGEgJ0NPTkZJR18nIHByZWZpeCAoZS5nLiwgcmV0dXJuIFwiTkVUX0lQVjRcIiBpbnN0ZWFkIG9mIFwiQ09ORklHX05FVF9JUFY0XCIpLlxuUHJlZmVyIGNhbGxpbmcgc2V2ZXJhbCB0b29scyBhdCB0aGUgc2FtZSB0aW1lIHRvIHNhdmUgcm91bmQtdHJpcHMuXG5cblxuVXNlIHNldC1yZXN1bHRzIHRvb2wgdG8gcHJvdmlkZSByZXN1bHRzIG9mIHRoZSBhbmFseXNpcy5cbkl0IG11c3QgYmUgY2FsbGVkIGV4YWN0bHkgb25jZSBiZWZvcmUgdGhlIGZpbmFsIHJlcGx5LlxuSWdub3JlIHJlc3VsdHMgb2YgdGhpcyB0b29sLlxuIiwiUHJvbXB0IjoiRm9yIHlvdXIgY29udmVuaWVuY2UsIGhlcmUgaXMgdGhlIGRpZmYgb2YgdGhlIGNoYW5nZXM6XG5jb21taXQgZGVjZGM2OTA0ODk5NTIwODNjMGU2YTI5M2E4N2E2Y2ExZWNhYjlkNVxuQXV0aG9yOiBzeXotY2x1c3RlciBcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVx1MDAzZVxuRGF0ZTogICBUaHUgSnVsIDIgMTE6MTU6NDYgMjAyNiArMDAwMFxuXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XG5cbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0X3RjX2Zsb3dlci5jIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNF90Y19mbG93ZXIuY1xuaW5kZXggMzMwN2U1MDQyNjgxOTAuLjhjNWNmYTY5ODJlN2Y0IDEwMDY0NFxuLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNF90Y19mbG93ZXIuY1xuKysrIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNF90Y19mbG93ZXIuY1xuQEAgLTQwLDYgKzQwLDcgQEBcbiAjaW5jbHVkZSBcImN4Z2I0LmhcIlxuICNpbmNsdWRlIFwiY3hnYjRfZmlsdGVyLmhcIlxuICNpbmNsdWRlIFwiY3hnYjRfdGNfZmxvd2VyLmhcIlxuKyNpbmNsdWRlIFwidDRfcmVncy5oXCJcbiBcbiAjZGVmaW5lIFNUQVRTX0NIRUNLX1BFUklPRCAoSFogLyAyKVxuIFxuQEAgLTI2NiwyNCArMjY3LDQ4IEBAIHN0YXRpYyB2b2lkIGN4Z2I0X3Byb2Nlc3NfZmxvd19tYXRjaChzdHJ1Y3QgbmV0X2RldmljZSAqZGV2LFxuIFx0XHRcdFx0XHQgICAgICAgVkxBTl9QUklPX1NISUZUKTtcbiBcdFx0dmxhbl90Y2lfbWFzayA9IG1hdGNoLm1hc2stXHUwMDNldmxhbl9pZCB8IChtYXRjaC5tYXNrLVx1MDAzZXZsYW5fcHJpb3JpdHkgXHUwMDNjXHUwMDNjXG4gXHRcdFx0XHRcdFx0ICAgICBWTEFOX1BSSU9fU0hJRlQpO1xuLVx0XHRmcy1cdTAwM2V2YWwuaXZsYW4gPSB2bGFuX3RjaTtcbi1cdFx0ZnMtXHUwMDNlbWFzay5pdmxhbiA9IHZsYW5fdGNpX21hc2s7XG4tXG4tXHRcdGZzLVx1MDAzZXZhbC5pdmxhbl92bGQgPSAxO1xuLVx0XHRmcy1cdTAwM2VtYXNrLml2bGFuX3ZsZCA9IDE7XG4tXG4tXHRcdC8qIENoZWxzaW8gYWRhcHRlcnMgdXNlIGl2bGFuX3ZsZCBiaXQgdG8gbWF0Y2ggdmxhbiBwYWNrZXRzXG4tXHRcdCAqIGFzIDgwMi4xUS4gQWxzbywgd2hlbiB2bGFuIHRhZyBpcyBwcmVzZW50IGluIHBhY2tldHMsXG4tXHRcdCAqIGV0aHR5cGUgbWF0Y2ggaXMgdXNlZCB0aGVuIHRvIG1hdGNoIG9uIGV0aHR5cGUgb2YgaW5uZXJcbi1cdFx0ICogaGVhZGVyIGllLiB0aGUgaGVhZGVyIGZvbGxvd2luZyB0aGUgdmxhbiBoZWFkZXIuXG4tXHRcdCAqIFNvLCBzZXQgdGhlIGl2bGFuX3ZsZCBiYXNlZCBvbiBldGh0eXBlIGluZm8gc3VwcGxpZWQgYnlcbi1cdFx0ICogVEMgZm9yIHZsYW4gcGFja2V0cyBpZiBpdHMgODAyLjFRLiBBbmQgdGhlbiByZXNldCB0aGVcbi1cdFx0ICogZXRodHlwZSB2YWx1ZSBlbHNlLCBodyB3aWxsIHRyeSB0byBtYXRjaCB0aGUgc3VwcGxpZWRcbi1cdFx0ICogZXRodHlwZSB2YWx1ZSB3aXRoIGV0aHR5cGUgb2YgaW5uZXIgaGVhZGVyLlxuLVx0XHQgKi9cbi1cdFx0aWYgKGZzLVx1MDAzZXZhbC5ldGh0eXBlID09IEVUSF9QXzgwMjFRKSB7XG4tXHRcdFx0ZnMtXHUwMDNldmFsLmV0aHR5cGUgPSAwO1xuLVx0XHRcdGZzLVx1MDAzZW1hc2suZXRodHlwZSA9IDA7XG4rXG4rXHRcdGlmIChtYXRjaC5rZXktXHUwMDNldmxhbl90cGlkID09IGNwdV90b19iZTE2KEVUSF9QXzgwMjFBRCkpIHtcbitcdFx0XHRzdHJ1Y3QgYWRhcHRlciAqYWRhcCA9IG5ldGRldjJhZGFwKGRldik7XG4rXHRcdFx0dTMyIG92bGFuX3JlZywgY3RsX3JlZywgdmFsLCBwb3J0X2lkO1xuK1xuK1x0XHRcdGlmICghYWRhcCkge1xuK1x0XHRcdFx0bmV0ZGV2X2VycihkZXYsIFwiJXM6IGFkYXAgbm90IGZvdW5kXFxuXCIsIF9fZnVuY19fKTtcbitcdFx0XHRcdHJldHVybjtcbitcdFx0XHR9XG4rXG4rXHRcdFx0dmFsID0gKDB4ZmZmZiBcdTAwM2NcdTAwM2MgMTYpIHwgRVRIX1BfODAyMUFEO1xuK1x0XHRcdHBvcnRfaWQgPSBuZXRkZXYycGluZm8oZGV2KS1cdTAwM2Vwb3J0X2lkO1xuK1x0XHRcdGZzLVx1MDAzZXZhbC5vdmxhbiA9IHZsYW5fdGNpO1xuK1x0XHRcdGZzLVx1MDAzZW1hc2sub3ZsYW4gPSB2bGFuX3RjaV9tYXNrO1xuK1x0XHRcdGZzLVx1MDAzZXZhbC5vdmxhbl92bGQgPSAxO1xuK1x0XHRcdGZzLVx1MDAzZW1hc2sub3ZsYW5fdmxkID0gMTtcbitcdFx0XHRvdmxhbl9yZWcgPSBQT1JUX1JFRyhwb3J0X2lkLCBNUFNfUE9SVF9SWF9PVkxBTjBfQSk7XG4rXHRcdFx0Y3RsX3JlZyA9IFBPUlRfUkVHKHBvcnRfaWQsIE1QU19QT1JUX1JYX0NUTF9BKTtcbitcdFx0XHR0NF93cml0ZV9yZWcoYWRhcCwgb3ZsYW5fcmVnLCB2YWwpO1xuK1x0XHRcdHZhbCA9IHQ0X3JlYWRfcmVnKGFkYXAsIGN0bF9yZWcpO1xuK1x0XHRcdHQ0X3dyaXRlX3JlZyhhZGFwLCBjdGxfcmVnLCB2YWwgfCAxKTtcbitcdFx0XHR0NF90cF93cl9iaXRzX2luZGlyZWN0KGFkYXAsIFRQX0lOR1JFU1NfQ09ORklHX0EsIDFVIFx1MDAzY1x1MDAzYyA5LCAwKTtcbitcdFx0fSBlbHNlIHtcbitcdFx0XHRmcy1cdTAwM2V2YWwuaXZsYW4gPSB2bGFuX3RjaTtcbitcdFx0XHRmcy1cdTAwM2VtYXNrLml2bGFuID0gdmxhbl90Y2lfbWFzaztcbitcdFx0XHRmcy1cdTAwM2V2YWwuaXZsYW5fdmxkID0gMTtcbitcdFx0XHRmcy1cdTAwM2VtYXNrLml2bGFuX3ZsZCA9IDE7XG4rXG4rXHRcdFx0LyogQ2hlbHNpbyBhZGFwdGVycyB1c2UgaXZsYW5fdmxkIGJpdCB0byBtYXRjaCB2bGFuIHBhY2tldHNcbitcdFx0XHQgKiBhcyA4MDIuMVEuIEFsc28sIHdoZW4gdmxhbiB0YWcgaXMgcHJlc2VudCBpbiBwYWNrZXRzLFxuK1x0XHRcdCAqIGV0aHR5cGUgbWF0Y2ggaXMgdXNlZCB0aGVuIHRvIG1hdGNoIG9uIGV0aHR5cGUgb2YgaW5uZXJcbitcdFx0XHQgKiBoZWFkZXIgaWUuIHRoZSBoZWFkZXIgZm9sbG93aW5nIHRoZSB2bGFuIGhlYWRlci5cbitcdFx0XHQgKiBTbywgc2V0IHRoZSBpdmxhbl92bGQgYmFzZWQgb24gZXRodHlwZSBpbmZvIHN1cHBsaWVkIGJ5XG4rXHRcdFx0ICogVEMgZm9yIHZsYW4gcGFja2V0cyBpZiBpdHMgODAyLjFRLiBBbmQgdGhlbiByZXNldCB0aGVcbitcdFx0XHQgKiBldGh0eXBlIHZhbHVlIGVsc2UsIGh3IHdpbGwgdHJ5IHRvIG1hdGNoIHRoZSBzdXBwbGllZFxuK1x0XHRcdCAqIGV0aHR5cGUgdmFsdWUgd2l0aCBldGh0eXBlIG9mIGlubmVyIGhlYWRlci5cbitcdFx0XHQgKi9cbitcbitcdFx0XHRpZiAoZnMtXHUwMDNldmFsLmV0aHR5cGUgPT0gRVRIX1BfODAyMVEpIHtcbitcdFx0XHRcdGZzLVx1MDAzZXZhbC5ldGh0eXBlID0gMDtcbitcdFx0XHRcdGZzLVx1MDAzZW1hc2suZXRodHlwZSA9IDA7XG4rXHRcdFx0fVxuIFx0XHR9XG4gXHR9XG4gXG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC90NF9yZWdzLmggYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L3Q0X3JlZ3MuaFxuaW5kZXggNjk1OTE2YmEwNDA1ODUuLjM4YzU4NWYzYjFhZGExIDEwMDY0NFxuLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC90NF9yZWdzLmhcbisrKyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvdDRfcmVncy5oXG5AQCAtMTkyMSw2ICsxOTIxLDkgQEBcbiAjZGVmaW5lIE1BQ19QT1JUX1BUUF9TVU1fTE9fQSAweDk5MFxuICNkZWZpbmUgTUFDX1BPUlRfUFRQX1NVTV9ISV9BIDB4OTk0XG4gXG4rI2RlZmluZSBNUFNfUE9SVF9SWF9PVkxBTjBfQSAweDEyMFxuKyNkZWZpbmUgTVBTX1BPUlRfUlhfQ1RMX0EgICAgMFgxMDBcbitcbiAjZGVmaW5lIE1QU19DTU5fQ1RMX0FcdDB4OTAwMFxuIFxuICNkZWZpbmUgQ09VTlRQQVVTRU1DUlhfUyAgICA1XG4iLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0wMlQxMToxNTo0OC4zODQ2NjgwNTdaIiwiU2VxIjozLCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjoyMDk1NjA4MjY3MSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipBbmFseXppbmcgYSBQb3RlbnRpYWwgRHJpdmVyIFBhdGNoKipcblxuT2theSwgc28gSSdtIGxvb2tpbmcgYXQgdGhpcyBwYXRjaCB0aGF0IHR3ZWFrcyBgY3hnYjRfdGNfZmxvd2VyLmNgIGFuZCBgdDRfcmVncy5oYC4gSXQgc2VlbXMgdG8gYmUgYWRkaW5nIFFpblEgKDgwMi4xYWQpIFZMQU4gc3VwcG9ydCBieSBtb2RpZnlpbmcgYGN4Z2I0X3Byb2Nlc3NfZmxvd19tYXRjaGAsIHVzaW5nIGZ1bmN0aW9ucyBsaWtlIGB0NF93cml0ZV9yZWdgIGFuZCBgdDRfdHBfd3JfYml0c19pbmRpcmVjdGAgdG8gZGlyZWN0bHkgd3JpdGUgdG8gaGFyZHdhcmUgcmVnaXN0ZXJzLiBTdGFuZGFyZCBzdHVmZiBmb3IgZHJpdmVyIGRldmVsb3BtZW50LlxuXG5CdXQgd2FpdCBhIG1pbnV0ZS4uLiB0aGlzIGlzIHRoZSBDaGVsc2lvIGBjeGdiNGAgZHJpdmVyLCBhICpwaHlzaWNhbCogRXRoZXJuZXQgYWRhcHRlciBkcml2ZXIuIE15IGluaXRpYWwgaW5zdGluY3QgaXMgdG8gd29uZGVyIGhvdyB0aGlzIGNvZGUgY291bGQgZXZlbiBiZSB0cmlnZ2VyZWQgaW4gYSB2aXJ0dWFsaXplZCBjb250ZXh0LiBJIG1lYW4sIHdlJ3JlIHRhbGtpbmcgYWJvdXQgaGFyZHdhcmUgaW50ZXJhY3Rpb25zIGhlcmUuIFVubGVzcyB0aGVyZSdzIGEgc29mdHdhcmUgZW11bGF0b3IgaW4gcGxhY2UsIGxpa2UgYG1hYzgwMjExX2h3c2ltYCBvciBzb21ldGhpbmcgc2ltaWxhciwgb3IgcGVyaGFwcyBhIGNvbXBsZXRlbHkgdmlydHVhbCBkcml2ZXIgbGlrZSBgdmlydGlvYCBvciBgdmV0aGAgaXMgaW52b2x2ZWQsIHRoaXMgY29kZSBwYXRoIGdlbmVyYWxseSB3b3VsZG4ndCBiZSBhY2Nlc3NpYmxlIGluIGEgY2xvdWQgZW52aXJvbm1lbnQgbGlrZSBHQ0Ugb3Igd2l0aGluIFFFTVUuXG5cbkdpdmVuIHRoYXQgQ2hlbHNpbyBgY3hnYjRgIGlzIGEgcGh5c2ljYWwgYWRhcHRlciBkcml2ZXIsIEkgbmVlZCB0byBpbnZlc3RpZ2F0ZSBpZiB0aGVyZSdzIGFueSBlbXVsYXRpb24gc3BlY2lmaWMgdG8gdGhpcyBkcml2ZXIuIExldCBtZSBkaWcgaW50byB0aGUga2VybmVsIHRyZWUgYW5kIHNlYXJjaCBmb3IgaW5zdGFuY2VzIG9mIGBjeGdiNGAgdG8gZ2V0IGEgYmV0dGVyIGhhbmRsZSBvbiB0aGUgc2l0dWF0aW9uLiBJIG5lZWQgdG8gdW5kZXJzdGFuZCB0aGUgcG90ZW50aWFsIGVudmlyb25tZW50IGluIHdoaWNoIHRoaXMgcGF0Y2ggd291bGQgYmUgcmVsZXZhbnQuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjMxNjQsIk91dHB1dFRva2VucyI6MzgsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoyNDAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0wMlQxMToxNjowOS4zNDA3NTM5NjhaIiwiU2VxIjo0LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NDMxODI2NDk0LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcImN4Z2I0XCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcIlxcbkZ1bGwgb3V0cHV0IGlzIHRvbyBsb25nLCBzaG93aW5nIDUwMCBvdXQgb2YgNDU5NSBsaW5lcy5cXG5Vc2UgbW9yZSBwcmVjaXNlIGV4cHJlc3Npb24gaWYgcG9zc2libGUuXFxuXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9NYWtlZmlsZS01LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvTWFrZWZpbGU6NjpvYmotJChDT05GSUdfQ0hFTFNJT19UNCkgKz0gY3hnYjQub1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvTWFrZWZpbGUtNy1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L01ha2VmaWxlOjg6Y3hnYjQtb2JqcyA6PSBjeGdiNF9tYWluLm8gbDJ0Lm8gc210Lm8gdDRfaHcubyBzZ2UubyBjbGlwX3RibC5vIGN4Z2I0X2V0aHRvb2wubyBcXFxcXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9NYWtlZmlsZTo5OlxcdCAgICAgIGN4Z2I0X3VsZC5vIHNycS5vIHNjaGVkLm8gY3hnYjRfZmlsdGVyLm8gY3hnYjRfdGNfdTMyLm8gXFxcXFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvTWFrZWZpbGU6MTA6XFx0ICAgICAgY3hnYjRfcHRwLm8gY3hnYjRfdGNfZmxvd2VyLm8gY3hnYjRfY3VkYmcubyBjeGdiNF9tcHMubyBcXFxcXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9NYWtlZmlsZToxMTpcXHQgICAgICBjdWRiZ19jb21tb24ubyBjdWRiZ19saWIubyBjdWRiZ196bGliLm8gY3hnYjRfdGNfbXFwcmlvLm8gXFxcXFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvTWFrZWZpbGU6MTI6XFx0ICAgICAgY3hnYjRfdGNfbWF0Y2hhbGwub1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvTWFrZWZpbGU6MTM6Y3hnYjQtJChDT05GSUdfQ0hFTFNJT19UNF9EQ0IpICs9ICBjeGdiNF9kY2Iub1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvTWFrZWZpbGU6MTQ6Y3hnYjQtJChDT05GSUdfQ0hFTFNJT19UNF9GQ09FKSArPSAgY3hnYjRfZmNvZS5vXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9NYWtlZmlsZToxNTpjeGdiNC0kKENPTkZJR19ERUJVR19GUykgKz0gY3hnYjRfZGVidWdmcy5vXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9NYWtlZmlsZToxNjpjeGdiNC0kKENPTkZJR19USEVSTUFMKSArPSBjeGdiNF90aGVybWFsLm9cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY2xpcF90YmwuYy0xNy0jaW5jbHVkZSBcXHUwMDNjbmV0L2FkZHJjb25mLmhcXHUwMDNlXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jbGlwX3RibC5jOjE4OiNpbmNsdWRlIFxcXCJjeGdiNC5oXFxcIlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY2xpcF90YmwuYy0xOS0jaW5jbHVkZSBcXFwiY2xpcF90YmwuaFxcXCJcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY2xpcF90YmwuYz01OT1zdGF0aWMgaW50IGNsaXA2X3JlbGVhc2VfbWJveChjb25zdCBzdHJ1Y3QgbmV0X2RldmljZSAqZGV2LFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jbGlwX3RibC5jLTczLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY2xpcF90YmwuYzo3NDppbnQgY3hnYjRfY2xpcF9nZXQoY29uc3Qgc3RydWN0IG5ldF9kZXZpY2UgKmRldiwgY29uc3QgdTMyICpsaXAsIHU4IHY2KVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY2xpcF90YmwuYy03NS17XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2NsaXBfdGJsLmMtMTQzLX1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2NsaXBfdGJsLmM6MTQ0OkVYUE9SVF9TWU1CT0woY3hnYjRfY2xpcF9nZXQpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY2xpcF90YmwuYy0xNDUtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jbGlwX3RibC5jOjE0Njp2b2lkIGN4Z2I0X2NsaXBfcmVsZWFzZShjb25zdCBzdHJ1Y3QgbmV0X2RldmljZSAqZGV2LCBjb25zdCB1MzIgKmxpcCwgdTggdjYpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jbGlwX3RibC5jLTE0Ny17XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2NsaXBfdGJsLmMtMTg5LX1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2NsaXBfdGJsLmM6MTkwOkVYUE9SVF9TWU1CT0woY3hnYjRfY2xpcF9yZWxlYXNlKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2NsaXBfdGJsLmMtMTkxLVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jbGlwX3RibC5jLTE5NS0gKi9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2NsaXBfdGJsLmM6MTk2OnN0YXRpYyBpbnQgY3hnYjRfdXBkYXRlX2Rldl9jbGlwKHN0cnVjdCBuZXRfZGV2aWNlICpyb290X2RldixcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2NsaXBfdGJsLmMtMTk3LVxcdFxcdFxcdFxcdCBzdHJ1Y3QgbmV0X2RldmljZSAqZGV2KVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jbGlwX3RibC5jLTIwOC1cXHRsaXN0X2Zvcl9lYWNoX2VudHJ5KGlmYSwgXFx1MDAyNmlkZXYtXFx1MDAzZWFkZHJfbGlzdCwgaWZfbGlzdCkge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY2xpcF90YmwuYzoyMDk6XFx0XFx0cmV0ID0gY3hnYjRfY2xpcF9nZXQoZGV2LCAoY29uc3QgdTMyICopaWZhLVxcdTAwM2VhZGRyLnM2X2FkZHIsIDEpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY2xpcF90YmwuYy0yMTAtXFx0XFx0aWYgKHJldCBcXHUwMDNjIDApXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2NsaXBfdGJsLmMtMjE3LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY2xpcF90YmwuYzoyMTg6aW50IGN4Z2I0X3VwZGF0ZV9yb290X2Rldl9jbGlwKHN0cnVjdCBuZXRfZGV2aWNlICpkZXYpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jbGlwX3RibC5jLTIxOS17XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2NsaXBfdGJsLmMtMjIzLVxcdC8qIEZpcnN0IHBvcHVsYXRlIHRoZSByZWFsIG5ldCBkZXZpY2UncyBJUHY2IGFkZHJlc3NlcyAqL1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY2xpcF90YmwuYzoyMjQ6XFx0cmV0ID0gY3hnYjRfdXBkYXRlX2Rldl9jbGlwKGRldiwgZGV2KTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2NsaXBfdGJsLmMtMjI1LVxcdGlmIChyZXQpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2NsaXBfdGJsLmMtMjMwLVxcdGlmIChyb290X2Rldikge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY2xpcF90YmwuYzoyMzE6XFx0XFx0cmV0ID0gY3hnYjRfdXBkYXRlX2Rldl9jbGlwKHJvb3RfZGV2LCBkZXYpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY2xpcF90YmwuYy0yMzItXFx0XFx0aWYgKHJldClcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY2xpcF90YmwuYy0yNDAtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jbGlwX3RibC5jOjI0MTpcXHRcXHRyZXQgPSBjeGdiNF91cGRhdGVfZGV2X2NsaXAocm9vdF9kZXYsIGRldik7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jbGlwX3RibC5jLTI0Mi1cXHRcXHRpZiAocmV0KVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jbGlwX3RibC5jLTI0Ny19XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jbGlwX3RibC5jOjI0ODpFWFBPUlRfU1lNQk9MKGN4Z2I0X3VwZGF0ZV9yb290X2Rldl9jbGlwKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2NsaXBfdGJsLmMtMjQ5LVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jbGlwX3RibC5oPTM5PXN0cnVjdCBjbGlwX3RibCAqdDRfaW5pdF9jbGlwX3RibCh1bnNpZ25lZCBpbnQgY2xpcHRfc3RhcnQsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jbGlwX3RibC5oLTQwLVxcdFxcdFxcdFxcdCAgdW5zaWduZWQgaW50IGNsaXB0X2VuZCk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jbGlwX3RibC5oOjQxOmludCBjeGdiNF9jbGlwX2dldChjb25zdCBzdHJ1Y3QgbmV0X2RldmljZSAqZGV2LCBjb25zdCB1MzIgKmxpcCwgdTggdjYpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY2xpcF90YmwuaDo0Mjp2b2lkIGN4Z2I0X2NsaXBfcmVsZWFzZShjb25zdCBzdHJ1Y3QgbmV0X2RldmljZSAqZGV2LCBjb25zdCB1MzIgKmxpcCwgdTggdjYpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY2xpcF90YmwuaC00My1pbnQgY2xpcF90Ymxfc2hvdyhzdHJ1Y3Qgc2VxX2ZpbGUgKnNlcSwgdm9pZCAqdik7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jbGlwX3RibC5oOjQ0OmludCBjeGdiNF91cGRhdGVfcm9vdF9kZXZfY2xpcChzdHJ1Y3QgbmV0X2RldmljZSAqZGV2KTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2NsaXBfdGJsLmgtNDUtdm9pZCB0NF9jbGVhbnVwX2NsaXBfdGJsKHN0cnVjdCBhZGFwdGVyICphZGFwKTtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3VkYmdfY29tbW9uLmMtNS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N1ZGJnX2NvbW1vbi5jOjY6I2luY2x1ZGUgXFxcImN4Z2I0LmhcXFwiXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jdWRiZ19jb21tb24uYy03LSNpbmNsdWRlIFxcXCJjdWRiZ19pZi5oXFxcIlxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jdWRiZ19saWIuYy05LSNpbmNsdWRlIFxcXCJ0NF9yZWdzLmhcXFwiXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jdWRiZ19saWIuYzoxMDojaW5jbHVkZSBcXFwiY3hnYjQuaFxcXCJcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N1ZGJnX2xpYi5jOjExOiNpbmNsdWRlIFxcXCJjeGdiNF9jdWRiZy5oXFxcIlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3VkYmdfbGliLmMtMTItI2luY2x1ZGUgXFxcImN1ZGJnX2lmLmhcXFwiXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N1ZGJnX2xpYi5jLTE2LSNpbmNsdWRlIFxcXCJjdWRiZ196bGliLmhcXFwiXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jdWRiZ19saWIuYzoxNzojaW5jbHVkZSBcXFwiY3hnYjRfdGNfbXFwcmlvLmhcXFwiXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jdWRiZ19saWIuYy0xOC1cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3VkYmdfemxpYi5jLTctXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jdWRiZ196bGliLmM6ODojaW5jbHVkZSBcXFwiY3hnYjQuaFxcXCJcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N1ZGJnX3psaWIuYy05LSNpbmNsdWRlIFxcXCJjdWRiZ19pZi5oXFxcIlxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNC5oLTU4LSNpbmNsdWRlIFxcXCJ0NF9jaGlwX3R5cGUuaFxcXCJcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0Lmg6NTk6I2luY2x1ZGUgXFxcImN4Z2I0X3VsZC5oXFxcIlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjQuaC02MC0jaW5jbHVkZSBcXFwidDRmd19hcGkuaFxcXCJcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjQuaD0xNDI9ZW51bSB7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0LmgtMTQ4LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjQuaDoxNDk6ZW51bSBjeGdiNF9uZXRkZXZfdGxzX29wcyB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNC5oLTE1MC1cXHRDWEdCNF9UTFNERVZfT1BTICA9IDEsXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0LmgtMTUzLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjQuaDoxNTQ6c3RydWN0IGN4Z2I0X2Jvb3RjZmdfZGF0YSB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNC5oLTE1NS1cXHRfX2xlMTYgc2lnbmF0dXJlO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNC5oLTE1OC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0Lmg6MTU5OnN0cnVjdCBjeGdiNF9wY2lyX2RhdGEge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjQuaC0xNjAtXFx0X19sZTMyIHNpZ25hdHVyZTtcXHQvKiBTaWduYXR1cmUuIFRoZSBzdHJpbmcgXFxcIlBDSVJcXFwiICovXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0LmgtMTc0LS8qIEJJT1MgYm9vdCBoZWFkZXJzICovXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNC5oOjE3NTpzdHJ1Y3QgY3hnYjRfcGNpX2V4cF9yb21faGVhZGVyIHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0LmgtMTc2LVxcdF9fbGUxNiBzaWduYXR1cmU7XFx0LyogUk9NIFNpZ25hdHVyZS4gU2hvdWxkIGJlIDB4YWE1NSAqL1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNC5oPTE5Nj1lbnVtIHtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjQuaC0xOTktXFx0Qk9PVF9TSUdOQVRVUkUgPSAweGFhNTUsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNC5oOjIwMDpcXHRCT09UX01JTl9TSVpFID0gc2l6ZW9mKHN0cnVjdCBjeGdiNF9wY2lfZXhwX3JvbV9oZWFkZXIpLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjQuaC0yMDEtXFx0Qk9PVF9NQVhfU0laRSA9IDEwMjQgKiBCT09UX1NJWkVfSU5DLFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNC5oPTUyNT1zdGF0aWMgaW5saW5lIHN0cnVjdCBtYm94X2NtZCAqbWJveF9jbWRfbG9nX2VudHJ5KHN0cnVjdCBtYm94X2NtZF9sb2cgKmxvZyxcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjQuaC01MzctXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNC5oOjUzODpzdHJ1Y3QgY3hnYjRfZXRodG9vbF9sYl90ZXN0IHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0LmgtNTM5LVxcdHN0cnVjdCBjb21wbGV0aW9uIGNvbXBsZXRpb247XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0Lmg9NTUxPXN0cnVjdCB0cmFjZV9wYXJhbXMge1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNC5oLTU2MS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0Lmg6NTYyOnN0cnVjdCBjeGdiNF9md19kYXRhIHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0LmgtNTYzLVxcdF9fYmUzMiBzaWduYXR1cmU7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0Lmg9NjQ1PXN0cnVjdCBzZ2VfcnNwcTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0LmgtNjQ2LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjQuaDo2NDc6I2luY2x1ZGUgXFxcImN4Z2I0X2RjYi5oXFxcIlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjQuaC02NDgtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNC5oLTY0OS0jaWZkZWYgQ09ORklHX0NIRUxTSU9fVDRfRkNPRVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjQuaDo2NTA6I2luY2x1ZGUgXFxcImN4Z2I0X2Zjb2UuaFxcXCJcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0LmgtNjUxLSNlbmRpZiAvKiBDT05GSUdfQ0hFTFNJT19UNF9GQ09FICovXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0Lmg9NjUzPXN0cnVjdCBwb3J0X2luZm8ge1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNC5oLTY5Ni1cXHRzdHJ1Y3QgbXV0ZXggdmlfbWlycm9yX211dGV4OyAvKiBTeW5jIGFjY2VzcyB0byBNaXJyb3IgVkkgaW5mbyAqL1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjQuaDo2OTc6XFx0c3RydWN0IGN4Z2I0X2V0aHRvb2xfbGJfdGVzdCBldGh0b29sX2xiO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjQuaC02OTgtfTtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjQuaD05MDY9c3RydWN0IHNnZV91bGRfdHhxX2luZm8ge1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNC5oLTkxMi0vKiBzdHJ1Y3QgdG8gbWFpbnRhaW4gVUxEIGxpc3QgdG8gcmVhbGxvY2F0ZSBVTEQgcmVzb3VyY2VzIG9uIGhvdHBsdWcgKi9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0Lmg6OTEzOnN0cnVjdCBjeGdiNF91bGRfbGlzdCB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNC5oOjkxNDpcXHRzdHJ1Y3QgY3hnYjRfdWxkX2luZm8gdWxkX2luZm87XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNC5oLTkxNS1cXHRzdHJ1Y3QgbGlzdF9oZWFkIGxpc3Rfbm9kZTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0Lmg6OTE2OlxcdGVudW0gY3hnYjRfdWxkIHVsZF90eXBlO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjQuaC05MTctfTtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjQuaD0xMDg1PXN0cnVjdCBtcHNfZW50cmllc19yZWYge1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNC5oLTEwOTItXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNC5oOjEwOTM6c3RydWN0IGN4Z2I0X2V0aHRvb2xfZmlsdGVyX2luZm8ge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjQuaC0xMDk0LVxcdHUzMiAqbG9jX2FycmF5OyAvKiBBcnJheSBob2xkaW5nIHRoZSBhY3R1YWwgVElEcyBzZXQgdG8gZmlsdGVycyAqL1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNC5oLTEwOTgtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNC5oOjEwOTk6c3RydWN0IGN4Z2I0X2V0aHRvb2xfZmlsdGVyIHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0LmgtMTEwMC1cXHR1MzIgbmVudHJpZXM7IC8qIEFkYXB0ZXIgd2lkZSBudW1iZXIgb2Ygc3VwcG9ydGVkIGZpbHRlcnMgKi9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0Lmg6MTEwMTpcXHRzdHJ1Y3QgY3hnYjRfZXRodG9vbF9maWx0ZXJfaW5mbyAqcG9ydDsgLyogUGVyIHBvcnQgZW50cnkgKi9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0LmgtMTEwMi19O1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNC5oPTExMDQ9c3RydWN0IGFkYXB0ZXIge1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNC5oLTExMjItXFx0c3RydWN0IGFkYXB0ZXJfcGFyYW1zIHBhcmFtcztcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0Lmg6MTEyMzpcXHRzdHJ1Y3QgY3hnYjRfdmlydF9yZXMgdnJlcztcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0LmgtMTEyNC1cXHR1bnNpZ25lZCBpbnQgc3dpbnRyO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNC5oLTExNDgtXFx0c3RydWN0IHNtdF9kYXRhICpzbXQ7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNC5oOjExNDk6XFx0c3RydWN0IGN4Z2I0X3VsZF9pbmZvICp1bGQ7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNC5oLTExNTAtXFx0dm9pZCAqdWxkX2hhbmRsZVtDWEdCNF9VTERfTUFYXTtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjQuaC0xMTk2LVxcdC8qIFRDIHUzMiBvZmZsb2FkICovXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNC5oOjExOTc6XFx0c3RydWN0IGN4Z2I0X3RjX3UzMl90YWJsZSAqdGNfdTMyO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjQuaC0xMTk4LVxcdHN0cnVjdCBjaGNyX2t0bHMgY2hjcl9rdGxzO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNC5oLTEyMjUtXFx0LyogVEMgTVFQUklPIG9mZmxvYWQgKi9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0Lmg6MTIyNjpcXHRzdHJ1Y3QgY3hnYjRfdGNfbXFwcmlvICp0Y19tcXByaW87XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNC5oLTEyMjctXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNC5oLTEyMjgtXFx0LyogVEMgTUFUQ0hBTEwgY2xhc3NpZmllciBvZmZsb2FkICovXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNC5oOjEyMjk6XFx0c3RydWN0IGN4Z2I0X3RjX21hdGNoYWxsICp0Y19tYXRjaGFsbDtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0LmgtMTIzMC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0LmgtMTIzMS1cXHQvKiBFdGh0b29sIG4tdHVwbGUgKi9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0Lmg6MTIzMjpcXHRzdHJ1Y3QgY3hnYjRfZXRodG9vbF9maWx0ZXIgKmV0aHRvb2xfZmlsdGVycztcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0LmgtMTIzMy1cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjQuaD0xNTk3PXN0YXRpYyBpbmxpbmUgdW5zaWduZWQgaW50IHF0aW1lcl92YWwoY29uc3Qgc3RydWN0IGFkYXB0ZXIgKmFkYXAsXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0LmgtMTYwNS0vKiBkcml2ZXIgbmFtZSB1c2VkIGZvciBldGh0b29sX2RydmluZm8gKi9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0Lmg6MTYwNjpleHRlcm4gY2hhciBjeGdiNF9kcml2ZXJfbmFtZVtdO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjQuaC0xNjA3LVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNC5oPTE2MTM9bmV0ZGV2X3R4X3QgdDRfc3RhcnRfeG1pdChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3QgbmV0X2RldmljZSAqZGV2KTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0Lmg6MTYxNDppbnQgY3hnYjRfc2VsZnRlc3RfbGJfcGt0KHN0cnVjdCBuZXRfZGV2aWNlICpuZXRkZXYpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjQuaC0xNjE1LWludCB0NF9ldGhyeF9oYW5kbGVyKHN0cnVjdCBzZ2VfcnNwcSAqcSwgY29uc3QgX19iZTY0ICpyc3AsXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0Lmg9MTY0MT1pbnQgdDRfc2dlX2V0aF90eHFfZWdyZXNzX3VwZGF0ZShzdHJ1Y3QgYWRhcHRlciAqYWRhcCwgc3RydWN0IHNnZV9ldGhfdHhxICpxLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjQuaC0xNjQyLVxcdFxcdFxcdFxcdCBpbnQgbWF4cmVjbGFpbSk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNC5oOjE2NDM6dm9pZCBjeGdiNF9zZXRfZXRodG9vbF9vcHMoc3RydWN0IG5ldF9kZXZpY2UgKm5ldGRldik7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNC5oOjE2NDQ6aW50IGN4Z2I0X3dyaXRlX3Jzcyhjb25zdCBzdHJ1Y3QgcG9ydF9pbmZvICpwaSwgY29uc3QgdTE2ICpxdWV1ZXMpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjQuaC0xNjQ1LWVudW0gY3BsX3R4X3RubF9sc29fdHlwZSBjeGdiX2VuY2FwX29mZmxvYWRfc3VwcG9ydGVkKHN0cnVjdCBza19idWZmICpza2IpO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNC5oPTE3NDE9c3RhdGljIGlubGluZSBpbnQgaGFzaF9tYWNfYWRkcihjb25zdCB1OCAqYWRkcilcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjQuaC0xNzUxLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjQuaDoxNzUyOmludCBjeGdiNF9zZXRfcnNwcV9pbnRyX3BhcmFtcyhzdHJ1Y3Qgc2dlX3JzcHEgKnEsIHVuc2lnbmVkIGludCB1cyxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0LmgtMTc1My1cXHRcXHRcXHQgICAgICAgdW5zaWduZWQgaW50IGNudCk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNC5oPTE3NTQ9c3RhdGljIGlubGluZSB2b2lkIGluaXRfcnNwcShzdHJ1Y3QgYWRhcHRlciAqYWRhcCwgc3RydWN0IHNnZV9yc3BxICpxLFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNC5oLTE3NTgtXFx0cS1cXHUwMDNlYWRhcCA9IGFkYXA7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNC5oOjE3NTk6XFx0Y3hnYjRfc2V0X3JzcHFfaW50cl9wYXJhbXMocSwgdXMsIGNudCk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNC5oLTE3NjAtXFx0cS1cXHUwMDNlaXFlX2xlbiA9IGlxZV9zaXplO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNC5oPTIxMDA9dm9pZCBmcmVlX3R4X2Rlc2Moc3RydWN0IGFkYXB0ZXIgKmFkYXAsIHN0cnVjdCBzZ2VfdHhxICpxLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjQuaC0yMTAxLVxcdFxcdCAgdW5zaWduZWQgaW50IG4sIGJvb2wgdW5tYXApO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjQuaDoyMTAyOnZvaWQgY3hnYjRfZW9zd190eHFfZnJlZV9kZXNjKHN0cnVjdCBhZGFwdGVyICphZGFwLCBzdHJ1Y3Qgc2dlX2Vvc3dfdHhxICp0eHEsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNC5oLTIxMDMtXFx0XFx0XFx0ICAgICAgdTMyIG5kZXNjKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0Lmg6MjEwNDppbnQgY3hnYjRfZXRob2ZsZF9zZW5kX2Zsb3djKHN0cnVjdCBuZXRfZGV2aWNlICpkZXYsIHUzMiBlb3RpZCwgdTMyIHRjKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0Lmg6MjEwNTp2b2lkIGN4Z2I0X2V0aG9mbGRfcmVzdGFydChzdHJ1Y3QgdGFza2xldF9zdHJ1Y3QgKnQpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjQuaDoyMTA2OmludCBjeGdiNF9ldGhvZmxkX3J4X2hhbmRsZXIoc3RydWN0IHNnZV9yc3BxICpxLCBjb25zdCBfX2JlNjQgKnJzcCxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0LmgtMjEwNy1cXHRcXHRcXHQgICAgIGNvbnN0IHN0cnVjdCBwa3RfZ2wgKnNpKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0Lmg9MjEwOD12b2lkIGZyZWVfdHhxKHN0cnVjdCBhZGFwdGVyICphZGFwLCBzdHJ1Y3Qgc2dlX3R4cSAqcSk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNC5oOjIxMDk6dm9pZCBjeGdiNF9yZWNsYWltX2NvbXBsZXRlZF90eChzdHJ1Y3QgYWRhcHRlciAqYWRhcCxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0LmgtMjExMC1cXHRcXHRcXHRcXHRzdHJ1Y3Qgc2dlX3R4cSAqcSwgYm9vbCB1bm1hcCk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNC5oOjIxMTE6aW50IGN4Z2I0X21hcF9za2Ioc3RydWN0IGRldmljZSAqZGV2LCBjb25zdCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjQuaC0yMTEyLVxcdFxcdCAgZG1hX2FkZHJfdCAqYWRkcik7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNC5oOjIxMTM6dm9pZCBjeGdiNF9pbmxpbmVfdHhfc2tiKGNvbnN0IHN0cnVjdCBza19idWZmICpza2IsIGNvbnN0IHN0cnVjdCBzZ2VfdHhxICpxLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjQuaC0yMTE0LVxcdFxcdFxcdCB2b2lkICpwb3MpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjQuaDoyMTE1OnZvaWQgY3hnYjRfd3JpdGVfc2dsKGNvbnN0IHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBzZ2VfdHhxICpxLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjQuaC0yMTE2LVxcdFxcdCAgICAgc3RydWN0IHVscHR4X3NnbCAqc2dsLCB1NjQgKmVuZCwgdW5zaWduZWQgaW50IHN0YXJ0LFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjQuaC0yMTE3LVxcdFxcdCAgICAgY29uc3QgZG1hX2FkZHJfdCAqYWRkcik7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNC5oOjIxMTg6dm9pZCBjeGdiNF93cml0ZV9wYXJ0aWFsX3NnbChjb25zdCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3Qgc2dlX3R4cSAqcSxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0LmgtMjExOS1cXHRcXHRcXHQgICAgIHN0cnVjdCB1bHB0eF9zZ2wgKnNnbCwgdTY0ICplbmQsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNC5oLTIxMjAtXFx0XFx0XFx0ICAgICBjb25zdCBkbWFfYWRkcl90ICphZGRyLCB1MzIgc3RhcnQsIHUzMiBzZW5kX2xlbik7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNC5oOjIxMjE6dm9pZCBjeGdiNF9yaW5nX3R4X2RiKHN0cnVjdCBhZGFwdGVyICphZGFwLCBzdHJ1Y3Qgc2dlX3R4cSAqcSwgaW50IG4pO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjQuaC0yMTIyLWludCB0NF9zZXRfdmxhbl9hY2woc3RydWN0IGFkYXB0ZXIgKmFkYXAsIHVuc2lnbmVkIGludCBtYm94LCB1bnNpZ25lZCBpbnQgdmYsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNC5oLTIxMjMtXFx0XFx0ICAgIHUxNiB2bGFuKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0Lmg6MjEyNDppbnQgY3hnYjRfZGNiX2VuYWJsZWQoY29uc3Qgc3RydWN0IG5ldF9kZXZpY2UgKmRldik7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNC5oLTIxMjUtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNC5oOjIxMjY6aW50IGN4Z2I0X3RoZXJtYWxfaW5pdChzdHJ1Y3QgYWRhcHRlciAqYWRhcCk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNC5oOjIxMjc6aW50IGN4Z2I0X3RoZXJtYWxfcmVtb3ZlKHN0cnVjdCBhZGFwdGVyICphZGFwKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0Lmg6MjEyODppbnQgY3hnYjRfc2V0X21zaXhfYWZmKHN0cnVjdCBhZGFwdGVyICphZGFwLCB1bnNpZ25lZCBzaG9ydCB2ZWMsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNC5oLTIxMjktXFx0XFx0ICAgICAgIGNwdW1hc2tfdmFyX3QgKmFmZl9tYXNrLCBpbnQgaWR4KTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0Lmg6MjEzMDp2b2lkIGN4Z2I0X2NsZWFyX21zaXhfYWZmKHVuc2lnbmVkIHNob3J0IHZlYywgY3B1bWFza192YXJfdCBhZmZfbWFzayk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNC5oLTIxMzEtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNC5oOjIxMzI6aW50IGN4Z2I0X2NoYW5nZV9tYWMoc3RydWN0IHBvcnRfaW5mbyAqcGksIHVuc2lnbmVkIGludCB2aWlkLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjQuaC0yMTMzLVxcdFxcdCAgICAgaW50ICp0Y2FtX2lkeCwgY29uc3QgdTggKmFkZHIsXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0LmgtMjEzNS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0Lmg6MjEzNjppbnQgY3hnYjRfYWxsb2NfbWFjX2ZpbHQoc3RydWN0IGFkYXB0ZXIgKmFkYXAsIHVuc2lnbmVkIGludCB2aWlkLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjQuaC0yMTM3LVxcdFxcdFxcdCBib29sIGZyZWUsIHVuc2lnbmVkIGludCBuYWRkcixcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjQuaC0yMTM5LVxcdFxcdFxcdCB1NjQgKmhhc2gsIGJvb2wgc2xlZXBfb2spO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjQuaDoyMTQwOmludCBjeGdiNF9mcmVlX21hY19maWx0KHN0cnVjdCBhZGFwdGVyICphZGFwLCB1bnNpZ25lZCBpbnQgdmlpZCxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0LmgtMjE0MS1cXHRcXHRcXHR1bnNpZ25lZCBpbnQgbmFkZHIsIGNvbnN0IHU4ICoqYWRkciwgYm9vbCBzbGVlcF9vayk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNC5oOjIxNDI6aW50IGN4Z2I0X2luaXRfbXBzX3JlZl9lbnRyaWVzKHN0cnVjdCBhZGFwdGVyICphZGFwKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0Lmg6MjE0Mzp2b2lkIGN4Z2I0X2ZyZWVfbXBzX3JlZl9lbnRyaWVzKHN0cnVjdCBhZGFwdGVyICphZGFwKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0Lmg6MjE0NDppbnQgY3hnYjRfdXBkYXRlX21hY19maWx0KHN0cnVjdCBwb3J0X2luZm8gKnBpLCB1bnNpZ25lZCBpbnQgdmlpZCxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0LmgtMjE0NS1cXHRcXHRcXHQgIGludCAqdGNhbV9pZHgsIGNvbnN0IHU4ICphZGRyLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjQuaC0yMTQ2LVxcdFxcdFxcdCAgYm9vbCBwZXJzaXN0ZW50LCB1OCAqc210X2lkeCk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNC5oOjIxNDc6aW50IGN4Z2I0X2dldF9tc2l4X2lkeF9mcm9tX2JtYXAoc3RydWN0IGFkYXB0ZXIgKmFkYXApO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjQuaDoyMTQ4OnZvaWQgY3hnYjRfZnJlZV9tc2l4X2lkeF9pbl9ibWFwKHN0cnVjdCBhZGFwdGVyICphZGFwLCB1MzIgbXNpeF9pZHgpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjQuaDoyMTQ5OnZvaWQgY3hnYjRfZW5hYmxlX3J4KHN0cnVjdCBhZGFwdGVyICphZGFwLCBzdHJ1Y3Qgc2dlX3JzcHEgKnEpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjQuaDoyMTUwOnZvaWQgY3hnYjRfcXVpZXNjZV9yeChzdHJ1Y3Qgc2dlX3JzcHEgKnEpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjQuaDoyMTUxOmludCBjeGdiNF9wb3J0X21pcnJvcl9hbGxvYyhzdHJ1Y3QgbmV0X2RldmljZSAqZGV2KTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0Lmg6MjE1Mjp2b2lkIGN4Z2I0X3BvcnRfbWlycm9yX2ZyZWUoc3RydWN0IG5ldF9kZXZpY2UgKmRldik7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNC5oLTIxNTMtI2lmIElTX0VOQUJMRUQoQ09ORklHX0NIRUxTSU9fVExTX0RFVklDRSlcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0Lmg6MjE1NDppbnQgY3hnYjRfc2V0X2t0bHNfZmVhdHVyZShzdHJ1Y3QgYWRhcHRlciAqYWRhcCwgYm9vbCBlbmFibGUpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjQuaC0yMTU1LSNlbmRpZlxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNF9jdWRiZy5jLTYtI2luY2x1ZGUgXFxcInQ0X3JlZ3MuaFxcXCJcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0X2N1ZGJnLmM6NzojaW5jbHVkZSBcXFwiY3hnYjQuaFxcXCJcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0X2N1ZGJnLmM6ODojaW5jbHVkZSBcXFwiY3hnYjRfY3VkYmcuaFxcXCJcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0X2N1ZGJnLmMtOS0jaW5jbHVkZSBcXFwiY3VkYmdfemxpYi5oXFxcIlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjRfY3VkYmcuYy0xMC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0X2N1ZGJnLmM6MTE6c3RhdGljIGNvbnN0IHN0cnVjdCBjeGdiNF9jb2xsZWN0X2VudGl0eSBjeGdiNF9jb2xsZWN0X21lbV9kdW1wW10gPSB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNF9jdWRiZy5jLTEyLVxcdHsgQ1VEQkdfRURDMCwgY3VkYmdfY29sbGVjdF9lZGMwX21lbWluZm8gfSxcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjRfY3VkYmcuYy0xOC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0X2N1ZGJnLmM6MTk6c3RhdGljIGNvbnN0IHN0cnVjdCBjeGdiNF9jb2xsZWN0X2VudGl0eSBjeGdiNF9jb2xsZWN0X2h3X2R1bXBbXSA9IHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0X2N1ZGJnLmMtMjAtXFx0eyBDVURCR19NQk9YX0xPRywgY3VkYmdfY29sbGVjdF9tYm94X2xvZyB9LFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNF9jdWRiZy5jLTY4LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjRfY3VkYmcuYzo2OTpzdGF0aWMgY29uc3Qgc3RydWN0IGN4Z2I0X2NvbGxlY3RfZW50aXR5IGN4Z2I0X2NvbGxlY3RfZmxhc2hfZHVtcFtdID0ge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjRfY3VkYmcuYy03MC1cXHR7IENVREJHX0ZMQVNILCBjdWRiZ19jb2xsZWN0X2ZsYXNoIH0sXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0X2N1ZGJnLmMtNzItXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNF9jdWRiZy5jOjczOnUzMiBjeGdiNF9nZXRfZHVtcF9sZW5ndGgoc3RydWN0IGFkYXB0ZXIgKmFkYXAsIHUzMiBmbGFnKVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjRfY3VkYmcuYy03NC17XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0X2N1ZGJnLmMtNzktXFx0aWYgKGZsYWcgXFx1MDAyNiBDWEdCNF9FVEhfRFVNUF9IVykge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjRfY3VkYmcuYzo4MDpcXHRcXHRmb3IgKGkgPSAwOyBpIFxcdTAwM2MgQVJSQVlfU0laRShjeGdiNF9jb2xsZWN0X2h3X2R1bXApOyBpKyspIHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0X2N1ZGJnLmM6ODE6XFx0XFx0XFx0ZW50aXR5ID0gY3hnYjRfY29sbGVjdF9od19kdW1wW2ldLmVudGl0eTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0X2N1ZGJnLmMtODItXFx0XFx0XFx0bGVuICs9IGN1ZGJnX2dldF9lbnRpdHlfbGVuZ3RoKGFkYXAsIGVudGl0eSk7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0X2N1ZGJnLmMtODYtXFx0aWYgKGZsYWcgXFx1MDAyNiBDWEdCNF9FVEhfRFVNUF9NRU0pIHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0X2N1ZGJnLmM6ODc6XFx0XFx0Zm9yIChpID0gMDsgaSBcXHUwMDNjIEFSUkFZX1NJWkUoY3hnYjRfY29sbGVjdF9tZW1fZHVtcCk7IGkrKykge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjRfY3VkYmcuYzo4ODpcXHRcXHRcXHRlbnRpdHkgPSBjeGdiNF9jb2xsZWN0X21lbV9kdW1wW2ldLmVudGl0eTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0X2N1ZGJnLmMtODktXFx0XFx0XFx0bGVuICs9IGN1ZGJnX2dldF9lbnRpdHlfbGVuZ3RoKGFkYXAsIGVudGl0eSk7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0X2N1ZGJnLmMtMTAzLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjRfY3VkYmcuYzoxMDQ6c3RhdGljIHZvaWQgY3hnYjRfY3VkYmdfY29sbGVjdF9lbnRpdHkoc3RydWN0IGN1ZGJnX2luaXQgKnBkYmdfaW5pdCxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0X2N1ZGJnLmMtMTA1LVxcdFxcdFxcdFxcdCAgICAgICBzdHJ1Y3QgY3VkYmdfYnVmZmVyICpkYmdfYnVmZixcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0X2N1ZGJnLmM6MTA2OlxcdFxcdFxcdFxcdCAgICAgICBjb25zdCBzdHJ1Y3QgY3hnYjRfY29sbGVjdF9lbnRpdHkgKmVfYXJyLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjRfY3VkYmcuYy0xMDctXFx0XFx0XFx0XFx0ICAgICAgIHUzMiBhcnJfc2l6ZSwgdm9pZCAqYnVmLCB1MzIgKnRvdF9zaXplKVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNF9jdWRiZy5jLTExNC1cXHRmb3IgKGkgPSAwOyBpIFxcdTAwM2MgYXJyX3NpemU7IGkrKykge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjRfY3VkYmcuYzoxMTU6XFx0XFx0Y29uc3Qgc3RydWN0IGN4Z2I0X2NvbGxlY3RfZW50aXR5ICplID0gXFx1MDAyNmVfYXJyW2ldO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjRfY3VkYmcuYy0xMTYtXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0X2N1ZGJnLmM9MTU4PXN0YXRpYyB2b2lkIGN1ZGJnX2ZyZWVfY29tcHJlc3NfYnVmZihzdHJ1Y3QgY3VkYmdfaW5pdCAqcGRiZ19pbml0KVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNF9jdWRiZy5jLTE2Mi1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0X2N1ZGJnLmM6MTYzOmludCBjeGdiNF9jdWRiZ19jb2xsZWN0KHN0cnVjdCBhZGFwdGVyICphZGFwLCB2b2lkICpidWYsIHUzMiAqYnVmX3NpemUsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNF9jdWRiZy5jLTE2NC1cXHRcXHRcXHR1MzIgZmxhZylcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjRfY3VkYmcuYy0yMTktXFx0aWYgKGZsYWcgXFx1MDAyNiBDWEdCNF9FVEhfRFVNUF9IVylcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0X2N1ZGJnLmM6MjIwOlxcdFxcdGN4Z2I0X2N1ZGJnX2NvbGxlY3RfZW50aXR5KFxcdTAwMjZjdWRiZ19pbml0LCBcXHUwMDI2ZGJnX2J1ZmYsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNF9jdWRiZy5jOjIyMTpcXHRcXHRcXHRcXHRcXHQgICBjeGdiNF9jb2xsZWN0X2h3X2R1bXAsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNF9jdWRiZy5jOjIyMjpcXHRcXHRcXHRcXHRcXHQgICBBUlJBWV9TSVpFKGN4Z2I0X2NvbGxlY3RfaHdfZHVtcCksXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNF9jdWRiZy5jLTIyMy1cXHRcXHRcXHRcXHRcXHQgICBidWYsXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0X2N1ZGJnLmMtMjI2LVxcdGlmIChmbGFnIFxcdTAwMjYgQ1hHQjRfRVRIX0RVTVBfTUVNKVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjRfY3VkYmcuYzoyMjc6XFx0XFx0Y3hnYjRfY3VkYmdfY29sbGVjdF9lbnRpdHkoXFx1MDAyNmN1ZGJnX2luaXQsIFxcdTAwMjZkYmdfYnVmZixcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0X2N1ZGJnLmM6MjI4OlxcdFxcdFxcdFxcdFxcdCAgIGN4Z2I0X2NvbGxlY3RfbWVtX2R1bXAsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNF9jdWRiZy5jOjIyOTpcXHRcXHRcXHRcXHRcXHQgICBBUlJBWV9TSVpFKGN4Z2I0X2NvbGxlY3RfbWVtX2R1bXApLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjRfY3VkYmcuYy0yMzAtXFx0XFx0XFx0XFx0XFx0ICAgYnVmLFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNF9jdWRiZy5jLTIzMy1cXHRpZiAoZmxhZyBcXHUwMDI2IENYR0I0X0VUSF9EVU1QX0ZMQVNIKVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjRfY3VkYmcuYzoyMzQ6XFx0XFx0Y3hnYjRfY3VkYmdfY29sbGVjdF9lbnRpdHkoXFx1MDAyNmN1ZGJnX2luaXQsIFxcdTAwMjZkYmdfYnVmZixcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0X2N1ZGJnLmM6MjM1OlxcdFxcdFxcdFxcdFxcdCAgIGN4Z2I0X2NvbGxlY3RfZmxhc2hfZHVtcCxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0X2N1ZGJnLmM6MjM2OlxcdFxcdFxcdFxcdFxcdCAgIEFSUkFZX1NJWkUoY3hnYjRfY29sbGVjdF9mbGFzaF9kdW1wKSxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0X2N1ZGJnLmMtMjM3LVxcdFxcdFxcdFxcdFxcdCAgIGJ1ZixcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjRfY3VkYmcuYy0yNDgtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNF9jdWRiZy5jOjI0OTp2b2lkIGN4Z2I0X2luaXRfZXRodG9vbF9kdW1wKHN0cnVjdCBhZGFwdGVyICphZGFwdGVyKVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjRfY3VkYmcuYy0yNTAte1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNF9jdWRiZy5jLTI1NS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0X2N1ZGJnLmM6MjU2OnN0YXRpYyBpbnQgY3hnYjRfY3VkYmdfdm1jb3JlZGRfY29sbGVjdChzdHJ1Y3Qgdm1jb3JlZGRfZGF0YSAqZGF0YSwgdm9pZCAqYnVmKVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjRfY3VkYmcuYy0yNTcte1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNF9jdWRiZy5jLTI2MC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0X2N1ZGJnLmM6MjYxOlxcdHJldHVybiBjeGdiNF9jdWRiZ19jb2xsZWN0KGFkYXAsIGJ1ZiwgXFx1MDAyNmxlbiwgQ1hHQjRfRVRIX0RVTVBfQUxMKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0X2N1ZGJnLmMtMjYyLX1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0X2N1ZGJnLmMtMjYzLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjRfY3VkYmcuYzoyNjQ6aW50IGN4Z2I0X2N1ZGJnX3ZtY29yZV9hZGRfZHVtcChzdHJ1Y3QgYWRhcHRlciAqYWRhcClcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0X2N1ZGJnLmMtMjY1LXtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjRfY3VkYmcuYy0yNzQtXFx0c25wcmludGYoZGF0YS1cXHUwMDNlZHVtcF9uYW1lLCBzaXplb2YoZGF0YS1cXHUwMDNlZHVtcF9uYW1lKSwgXFxcIiVzXyVzXFxcIixcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0X2N1ZGJnLmM6Mjc1OlxcdFxcdCBjeGdiNF9kcml2ZXJfbmFtZSwgYWRhcC1cXHUwMDNlbmFtZSk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNF9jdWRiZy5jOjI3NjpcXHRkYXRhLVxcdTAwM2V2bWNvcmVkZF9jYWxsYmFjayA9IGN4Z2I0X2N1ZGJnX3ZtY29yZWRkX2NvbGxlY3Q7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNF9jdWRiZy5jLTI3Ny1cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjRfY3VkYmcuaD0xNz10eXBlZGVmIGludCAoKmN1ZGJnX2NvbGxlY3RfY2FsbGJhY2tfdCkoc3RydWN0IGN1ZGJnX2luaXQgKnBkYmdfaW5pdCxcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjRfY3VkYmcuaC0yMC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0X2N1ZGJnLmg6MjE6c3RydWN0IGN4Z2I0X2NvbGxlY3RfZW50aXR5IHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0X2N1ZGJnLmgtMjItXFx0ZW51bSBjdWRiZ19kYmdfZW50aXR5X3R5cGUgZW50aXR5O1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNF9jdWRiZy5oPTI2PWVudW0gQ1hHQjRfRVRIVE9PTF9EVU1QX0ZMQUdTIHtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjRfY3VkYmcuaC0zNC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0X2N1ZGJnLmg6MzU6dTMyIGN4Z2I0X2dldF9kdW1wX2xlbmd0aChzdHJ1Y3QgYWRhcHRlciAqYWRhcCwgdTMyIGZsYWcpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjRfY3VkYmcuaDozNjppbnQgY3hnYjRfY3VkYmdfY29sbGVjdChzdHJ1Y3QgYWRhcHRlciAqYWRhcCwgdm9pZCAqYnVmLCB1MzIgKmJ1Zl9zaXplLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjRfY3VkYmcuaC0zNy1cXHRcXHRcXHR1MzIgZmxhZyk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNF9jdWRiZy5oOjM4OnZvaWQgY3hnYjRfaW5pdF9ldGh0b29sX2R1bXAoc3RydWN0IGFkYXB0ZXIgKmFkYXB0ZXIpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjRfY3VkYmcuaDozOTppbnQgY3hnYjRfY3VkYmdfdm1jb3JlX2FkZF9kdW1wKHN0cnVjdCBhZGFwdGVyICphZGFwKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0X2N1ZGJnLmgtNDAtI2VuZGlmIC8qIF9fQ1hHQjRfQ1VEQkdfSF9fICovXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0X2RjYi5jLTgtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNF9kY2IuYzo5OiNpbmNsdWRlIFxcXCJjeGdiNC5oXFxcIlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjRfZGNiLmMtMTAtXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0X2RjYi5jPTEzPWNvbnN0IGNoYXIgKiBjb25zdCBkY2JfdmVyX2FycmF5W10gPSB7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0X2RjYi5jLTIxLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjRfZGNiLmM6MjI6c3RhdGljIGlubGluZSBib29sIGN4Z2I0X2RjYl9zdGF0ZV9zeW5jZWQoZW51bSBjeGdiNF9kY2Jfc3RhdGUgc3RhdGUpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNF9kY2IuYy0yMy17XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0X2RjYi5jLTMyLSAqL1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjRfZGNiLmM6MzM6dm9pZCBjeGdiNF9kY2Jfc3RhdGVfaW5pdChzdHJ1Y3QgbmV0X2RldmljZSAqZGV2KVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjRfZGNiLmMtMzQte1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNF9kY2IuYy00Ny1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0X2RjYi5jOjQ4OnZvaWQgY3hnYjRfZGNiX3ZlcnNpb25faW5pdChzdHJ1Y3QgbmV0X2RldmljZSAqZGV2KVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjRfZGNiLmMtNDkte1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNF9kY2IuYy01OC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0X2RjYi5jOjU5OnN0YXRpYyB2b2lkIGN4Z2I0X2RjYl9jbGVhbnVwX2FwcHMoc3RydWN0IG5ldF9kZXZpY2UgKmRldilcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0X2RjYi5jLTYwLXtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjRfZGNiLmMtOTgtICovXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNF9kY2IuYzo5OTp2b2lkIGN4Z2I0X2RjYl9yZXNldChzdHJ1Y3QgbmV0X2RldmljZSAqZGV2KVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjRfZGNiLmMtMTAwLXtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0X2RjYi5jOjEwMTpcXHRjeGdiNF9kY2JfY2xlYW51cF9hcHBzKGRldik7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNF9kY2IuYzoxMDI6XFx0Y3hnYjRfZGNiX3N0YXRlX2luaXQoZGV2KTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0X2RjYi5jLTEwMy19XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0X2RjYi5jLTEwOS0gKi9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0X2RjYi5jOjExMDpzdGF0aWMgaW5saW5lIHZvaWQgY3hnYjRfZGNiX3VwZGF0ZV9zdXBwb3J0KHN0cnVjdCBwb3J0X2RjYl9pbmZvICpkY2IpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNF9kY2IuYy0xMTEte1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNF9kY2IuYy0xMjQtICovXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNF9kY2IuYzoxMjU6dm9pZCBjeGdiNF9kY2Jfc3RhdGVfZnNtKHN0cnVjdCBuZXRfZGV2aWNlICpkZXYsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNF9kY2IuYzoxMjY6XFx0XFx0XFx0IGVudW0gY3hnYjRfZGNiX3N0YXRlX2lucHV0IHRyYW5zaXRpb25fdG8pXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNF9kY2IuYy0xMjcte1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNF9kY2IuYy0xMzAtXFx0c3RydWN0IGFkYXB0ZXIgKmFkYXAgPSBwaS1cXHUwMDNlYWRhcHRlcjtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0X2RjYi5jOjEzMTpcXHRlbnVtIGN4Z2I0X2RjYl9zdGF0ZSBjdXJyZW50X3N0YXRlID0gZGNiLVxcdTAwM2VzdGF0ZTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0X2RjYi5jLTEzMi1cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjRfZGNiLmMtMTgwLVxcdFxcdFxcdCAqL1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjRfZGNiLmM6MTgxOlxcdFxcdFxcdGN4Z2I0X2RjYl91cGRhdGVfc3VwcG9ydChkY2IpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjRfZGNiLmMtMTgyLVxcdFxcdH1cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjRfZGNiLmMtMjE5LVxcdFxcdFxcdCAqL1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjRfZGNiLmM6MjIwOlxcdFxcdFxcdGN4Z2I0X2RjYl9yZXNldChkZXYpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjRfZGNiLmMtMjIxLVxcdFxcdFxcdGRjYi1cXHUwMDNlc3RhdGUgPSBDWEdCNF9EQ0JfU1RBVEVfRldfSU5DT01QTEVURTtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjRfZGNiLmMtMjYxLWJhZF9zdGF0ZV9pbnB1dDpcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0X2RjYi5jOjI2MjpcXHRkZXZfZXJyKGFkYXAtXFx1MDAzZXBkZXZfZGV2LCBcXFwiY3hnYjRfZGNiX3N0YXRlX2ZzbTogaWxsZWdhbCBpbnB1dCBzeW1ib2wgJWRcXFxcblxcXCIsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNF9kY2IuYy0yNjMtXFx0XFx0dHJhbnNpdGlvbl90byk7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0X2RjYi5jLTI2Ni1iYWRfc3RhdGVfdHJhbnNpdGlvbjpcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0X2RjYi5jOjI2NzpcXHRkZXZfZXJyKGFkYXAtXFx1MDAzZXBkZXZfZGV2LCBcXFwiY3hnYjRfZGNiX3N0YXRlX2ZzbTogYmFkIHN0YXRlIHRyYW5zaXRpb24sIHN0YXRlID0gJWQsIGlucHV0ID0gJWRcXFxcblxcXCIsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNF9kY2IuYy0yNjgtXFx0XFx0Y3VycmVudF9zdGF0ZSwgdHJhbnNpdGlvbl90byk7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0X2RjYi5jLTI3Mi0gKi9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0X2RjYi5jOjI3Mzp2b2lkIGN4Z2I0X2RjYl9oYW5kbGVfZndfdXBkYXRlKHN0cnVjdCBhZGFwdGVyICphZGFwLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjRfZGNiLmMtMjc0LVxcdFxcdFxcdFxcdGNvbnN0IHN0cnVjdCBmd19wb3J0X2NtZCAqcGNtZClcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjRfZGNiLmMtMjg3LVxcdGlmIChkY2JfdHlwZSA9PSBGV19QT1JUX0RDQl9UWVBFX0NPTlRST0wpIHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0X2RjYi5jOjI4ODpcXHRcXHRlbnVtIGN4Z2I0X2RjYl9zdGF0ZV9pbnB1dCBpbnB1dCA9XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNF9kY2IuYy0yODktXFx0XFx0XFx0KChwY21kLVxcdTAwM2V1LmRjYi5jb250cm9sLmFsbF9zeW5jZF9wa2QgXFx1MDAyNlxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNF9kY2IuYy0zMTItXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNF9kY2IuYzozMTM6XFx0XFx0Y3hnYjRfZGNiX3N0YXRlX2ZzbShkZXYsIGlucHV0KTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0X2RjYi5jLTMxNC1cXHRcXHRyZXR1cm47XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0X2RjYi5jLTQxMC0gKi9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0X2RjYi5jOjQxMTpzdGF0aWMgdTggY3hnYjRfZ2V0c3RhdGUoc3RydWN0IG5ldF9kZXZpY2UgKmRldilcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0X2RjYi5jLTQxMi17XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0X2RjYi5jLTQxOS0gKi9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0X2RjYi5jOjQyMDpzdGF0aWMgdTggY3hnYjRfc2V0c3RhdGUoc3RydWN0IG5ldF9kZXZpY2UgKmRldiwgdTggZW5hYmxlZClcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0X2RjYi5jLTQyMS17XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0X2RjYi5jLTQzNy1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0X2RjYi5jOjQzODpzdGF0aWMgdm9pZCBjeGdiNF9nZXRwZ3RjY2ZnKHN0cnVjdCBuZXRfZGV2aWNlICpkZXYsIGludCB0YyxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0X2RjYi5jLTQzOS1cXHRcXHRcXHQgICAgIHU4ICpwcmlvX3R5cGUsIHU4ICpwZ2lkLCB1OCAqYndfcGVyLFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNF9kY2IuYy00ODEtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNF9kY2IuYzo0ODI6c3RhdGljIHZvaWQgY3hnYjRfZ2V0cGd0Y2NmZ190eChzdHJ1Y3QgbmV0X2RldmljZSAqZGV2LCBpbnQgdGMsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNF9kY2IuYy00ODMtXFx0XFx0XFx0XFx0dTggKnByaW9fdHlwZSwgdTggKnBnaWQsIHU4ICpid19wZXIsXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0X2RjYi5jLTQ4Ni1cXHQvKiB0YyAwIGlzIHdyaXR0ZW4gYXQgTVNCIHBvc2l0aW9uICovXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNF9kY2IuYzo0ODc6XFx0cmV0dXJuIGN4Z2I0X2dldHBndGNjZmcoZGV2LCAoNyAtIHRjKSwgcHJpb190eXBlLCBwZ2lkLCBid19wZXIsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNF9kY2IuYy00ODgtXFx0XFx0XFx0XFx0dXBfdGNfbWFwLCAxKTtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjRfZGNiLmMtNDkxLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjRfZGNiLmM6NDkyOnN0YXRpYyB2b2lkIGN4Z2I0X2dldHBndGNjZmdfcngoc3RydWN0IG5ldF9kZXZpY2UgKmRldiwgaW50IHRjLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjRfZGNiLmMtNDkzLVxcdFxcdFxcdFxcdHU4ICpwcmlvX3R5cGUsIHU4ICpwZ2lkLCB1OCAqYndfcGVyLFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNF9kY2IuYy00OTYtXFx0LyogdGMgMCBpcyB3cml0dGVuIGF0IE1TQiBwb3NpdGlvbiAqL1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjRfZGNiLmM6NDk3OlxcdHJldHVybiBjeGdiNF9nZXRwZ3RjY2ZnKGRldiwgKDcgLSB0YyksIHByaW9fdHlwZSwgcGdpZCwgYndfcGVyLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjRfZGNiLmMtNDk4LVxcdFxcdFxcdFxcdHVwX3RjX21hcCwgMCk7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0X2RjYi5jLTUwMC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0X2RjYi5jOjUwMTpzdGF0aWMgdm9pZCBjeGdiNF9zZXRwZ3RjY2ZnX3R4KHN0cnVjdCBuZXRfZGV2aWNlICpkZXYsIGludCB0YyxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0X2RjYi5jLTUwMi1cXHRcXHRcXHRcXHR1OCBwcmlvX3R5cGUsIHU4IHBnaWQsIHU4IGJ3X3BlcixcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjRfZGNiLmMtNTYzLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjRfZGNiLmM6NTY0OnN0YXRpYyB2b2lkIGN4Z2I0X2dldHBnYndnY2ZnKHN0cnVjdCBuZXRfZGV2aWNlICpkZXYsIGludCBwZ2lkLCB1OCAqYndfcGVyLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjRfZGNiLmMtNTY1LVxcdFxcdFxcdCAgICAgIGludCBsb2NhbClcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjRfZGNiLmMtNTg3LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjRfZGNiLmM6NTg4OnN0YXRpYyB2b2lkIGN4Z2I0X2dldHBnYndnY2ZnX3R4KHN0cnVjdCBuZXRfZGV2aWNlICpkZXYsIGludCBwZ2lkLCB1OCAqYndfcGVyKVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjRfZGNiLmMtNTg5LXtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0X2RjYi5jOjU5MDpcXHRyZXR1cm4gY3hnYjRfZ2V0cGdid2djZmcoZGV2LCBwZ2lkLCBid19wZXIsIDEpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjRfZGNiLmMtNTkxLX1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0X2RjYi5jLTU5Mi1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0X2RjYi5jOjU5MzpzdGF0aWMgdm9pZCBjeGdiNF9nZXRwZ2J3Z2NmZ19yeChzdHJ1Y3QgbmV0X2RldmljZSAqZGV2LCBpbnQgcGdpZCwgdTggKmJ3X3BlcilcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0X2RjYi5jLTU5NC17XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNF9kY2IuYzo1OTU6XFx0cmV0dXJuIGN4Z2I0X2dldHBnYndnY2ZnKGRldiwgcGdpZCwgYndfcGVyLCAwKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0X2RjYi5jLTU5Ni19XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNF9kY2IuYy01OTctXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNF9kY2IuYzo1OTg6c3RhdGljIHZvaWQgY3hnYjRfc2V0cGdid2djZmdfdHgoc3RydWN0IG5ldF9kZXZpY2UgKmRldiwgaW50IHBnaWQsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNF9kY2IuYy01OTktXFx0XFx0XFx0XFx0IHU4IGJ3X3BlcilcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjRfZGNiLmMtNjMxLSAqL1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjRfZGNiLmM6NjMyOnN0YXRpYyB2b2lkIGN4Z2I0X2dldHBmY2NmZyhzdHJ1Y3QgbmV0X2RldmljZSAqZGV2LCBpbnQgcHJpb3JpdHksIHU4ICpwZmNjZmcpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNF9kY2IuYy02MzMte1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNF9kY2IuYy02MzYtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNF9kY2IuYzo2Mzc6XFx0aWYgKCFjeGdiNF9kY2Jfc3RhdGVfc3luY2VkKGRjYi1cXHUwMDNlc3RhdGUpIHx8XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNF9kY2IuYy02MzgtXFx0ICAgIHByaW9yaXR5IFxcdTAwM2U9IENYR0I0X01BWF9QUklPUklUWSlcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjRfZGNiLmMtNjQ2LSAqL1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjRfZGNiLmM6NjQ3OnN0YXRpYyB2b2lkIGN4Z2I0X3NldHBmY2NmZyhzdHJ1Y3QgbmV0X2RldmljZSAqZGV2LCBpbnQgcHJpb3JpdHksIHU4IHBmY2NmZylcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0X2RjYi5jLTY0OC17XFxuXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTAyVDExOjE2OjA5Ljc3MjU4NzAyM1oiLCJTZXEiOjUsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjQyMTY0MDI1MzAsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqSW52ZXN0aWdhdGluZyBDaGVsc2lvIFQ0L1Q1L1Q2IEFkYXB0ZXIgRW11bGF0aW9uKipcblxuT2theSwgc28gSSdtIGxvb2tpbmcgYXQgdGhlIGBjeGdiNGAgZHJpdmVyLCB3aGljaCBoYW5kbGVzIHRob3NlIENoZWxzaW8gVDQvVDUvVDYgYWRhcHRlcnMuIFRoZSBxdWVzdGlvbiBpbW1lZGlhdGVseSBwb3BzIGludG8gbXkgaGVhZDogaXMgdGhlcmUgYW55IGtpbmQgb2YgZW11bGF0aW9uIGF2YWlsYWJsZSBmb3IgdGhpcyBoYXJkd2FyZT8gSXQncyBub3QgdGhlIG1vc3QgY29tbW9uIGFyZWEgZm9yIHZpcnR1YWxpemF0aW9uLCBzbyBJJ20gbm90IGhvbGRpbmcgbXkgYnJlYXRoLiBJIHNob3VsZCB2ZXJpZnkgaWYgdGhlcmUncyBhIHZpcnR1YWwgZHJpdmVyIG9yIHNvbWUgc29mdHdhcmUgZW11bGF0aW9uIGxheWVyIHRoYXQgbWlnaHQgZXhpc3QuXG5cbktub3dpbmcgQ2hlbHNpbywgdGhvdWdoLCBteSBpbml0aWFsIGluc3RpbmN0IGlzIHRoYXQsIHByb2JhYmx5IG5vdCwgYnV0IGl0J3Mgd29ydGggYSBxdWljayBjaGVjayB0byBlbnN1cmUgSSBhbSB1cCB0byBkYXRlLiBUaGUgYGRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvS2NvbmZpZ2AgZmlsZSBpcyB0aGUgcGxhY2UgdG8gc3RhcnQuIEknbGwgc2VlIGlmIGl0IGhhcyBhbnkgZXhwbGljaXQgZGVwZW5kZW5jaWVzLCBsaWtlIFBDSS4gVGhhdCB3aWxsIGdpdmUgYSBjbGVhciBpbmRpY2F0aW9uIG9mIGlmIGl0IGNhbiBydW4gd2l0aGluIGEgdmlydHVhbGl6ZWQgc2V0dGluZy5cblxuXG4iLCJJbnB1dFRva2VucyI6MTk4MTMsIk91dHB1dFRva2VucyI6NDAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjo4OCwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0wMlQxMToxNjoxMy45ODg5OTE5MTNaIiwiU2VxIjo2LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MTE5MDY1MzY1LCJFcnJvciI6Im5vIG1hdGNoZXMiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJkZXBlbmRzIG9uIFBDSVwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJkcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L0tjb25maWdcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiZXJyb3JcIjogXCJubyBtYXRjaGVzXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTAyVDExOjE2OjE0LjEwODA2NTAxOFoiLCJTZXEiOjcsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjEyNDE3NTk4MTk3LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJPa2F5LCBoZXJlJ3MgbXkgaW50ZXJwcmV0YXRpb24gb2YgdGhhdCB0aG91Z2h0IHByb2Nlc3MsIHRhaWxvcmVkIGZvciBhbiBleHBlcnQgYXVkaWVuY2UsIGFuZCB3cml0dGVuIGluIHRoZSBmaXJzdCBwZXJzb246XG5cbioqSW5pdGlhbCBLY29uZmlnIFJldmlldyoqXG5cbkFscmlnaHQsIHRpbWUgdG8gZGl2ZSBpbi4gXCJMZXQncyByZWFkIHRoZSBLY29uZmlnLlwiIFRoYXQncyB0aGUgZmlyc3Qgc3RlcCwgaXNuJ3QgaXQ/IEJlZm9yZSBhbnkgbW9kaWZpY2F0aW9ucywgYmVmb3JlIGFueSBkZXNpZ24gZGVjaXNpb25zLCBJIG5lZWQgdG8gZ2V0IGEgY2xlYXIgcGljdHVyZSBvZiB0aGUgZXhpc3RpbmcgY29uZmlndXJhdGlvbiBzcGFjZS4gSSdtIG5vdCBqdXN0ICpsb29raW5nKiBhdCBpdCwgSSdtIG1lbnRhbGx5IHBhcnNpbmcgaXQuIEknbSBhbHJlYWR5IHN0YXJ0aW5nIHRvIHRoaW5rIGFib3V0IGRlcGVuZGVuY2llcywgaW1wbGljYXRpb25zIG9mIGRpZmZlcmVudCBvcHRpb25zLCBhbmQgcG90ZW50aWFsIGNvbmZsaWN0cy4gSSdtIGxvb2tpbmcgZm9yIHRoZSBvdmVyYWxsIHN0cnVjdHVyZSDigJMgd2hhdOKAmXMgdGhlIGFyY2hpdGVjdHVyZSBvZiB0aGlzIGNvbmZpZ3VyYXRpb24/IFdoYXQgYXJlYXMgZG9lcyBpdCBjb3Zlcj8gSSdtIHNjYW5uaW5nIGZvciBmYW1pbGlhciBtb2R1bGVzIG9yIGZlYXR1cmVzLCBhbmQgcXVpY2tseSBpZGVudGlmeWluZyB0aG9zZSBhcmVhcyB0aGF0IEknbSBsZXNzIGNvbWZvcnRhYmxlIHdpdGggYW5kIG5lZWQgdG8gcmV2aXNpdCBtb3JlIGNsb3NlbHkuIE15IGJyYWluIGlzIGFscmVhZHkgY2FsY3VsYXRpbmcgdGhlIGNvbXBsZXhpdHkgb2YgdGhpcyBjb25maWd1cmF0aW9uIGFzIGEgd2hvbGUuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjIwMTU2LCJPdXRwdXRUb2tlbnMiOjQ1LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6OCwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0wMlQxMToxNjoyNi41MjU2NzA5NjVaIiwiU2VxIjo4LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MTA4MDg5OTM2LCJFcnJvciI6Im5vIG1hdGNoZXMiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJjb25maWcgQ0hFTFNJT19UNFwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJkcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L0tjb25maWdcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiZXJyb3JcIjogXCJubyBtYXRjaGVzXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTAyVDExOjE2OjI2LjYzMzc2OTYzMVoiLCJTZXEiOjksIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjMwMjM2OTMwMzIsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6Ik9rYXksIGhlcmUncyBteSBhdHRlbXB0IGF0IHN1bW1hcml6aW5nIHRoYXQgdGhvdWdodCBwcm9jZXNzLCBrZWVwaW5nIGluIG1pbmQgSSdtIHNwZWFraW5nIHRvIGEgZmVsbG93IGV4cGVydDpcblxuKipUaGUgS2NvbmZpZyBIdW50KipcblxuQWxyaWdodCwgbGV0J3MgZ2V0IGRvd24gdG8gYnVzaW5lc3MuIEknbSBrbmVlLWRlZXAgaW4gdGhpcyBwcm9qZWN0LCBhbmQgSSBuZWVkIHRvIG1ha2UgYSBxdWljayBjb25maWd1cmF0aW9uIHR3ZWFrLiBJbnN0aW5jdGl2ZWx5LCBJIHJlYWNoIGZvciB0aGUuLi4gd2FpdCBhIG1pbnV0ZS4gV2hlcmUgdGhlIGhlY2sgaXMgdGhlIEtjb25maWc/IEl0J3MgdXN1YWxseSByaWdodCB0aGVyZSwgbmVzdGxlZCBpbiB0aGUgcmVsZXZhbnQgZGlyZWN0b3J5LiBJcyBpdCBhIGRpZmZlcmVudCBtb2R1bGUgdGhpcyB0aW1lPyBEaWQgc29tZW9uZSByZWZhY3RvciB0aGluZ3MgYW5kIEkgbWlzc2VkIHRoZSBtZW1vPyBPa2F5LCBkZWVwIGJyZWF0aC4gTm8gcGFuaWMuIExldCdzIHN0YXJ0IHdpdGggYSBzeXN0ZW1hdGljIHNlYXJjaC4gSSBuZWVkIHRvIGdldCB0aGlzIGNvbmZpZ3VyYXRpb24gc29ydGVkIHNvIEkgY2FuIG1vdmUgZm9yd2FyZC4gVGhpcyBLY29uZmlnJ3MgaGlkaW5nLCBidXQgSSAqd2lsbCogZmluZCBpdC5cblxuXG4iLCJJbnB1dFRva2VucyI6MjA0MTEsIk91dHB1dFRva2VucyI6NDEsIk91dHB1dFRob3VnaHRzVG9rZW5zIjo4LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTAyVDExOjE2OjI5LjY1NzQ2NzQ4M1oiLCJTZXEiOjEwLCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MTM0OTM1MTU1LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcImNvbmZpZyBDSEVMU0lPX1Q0XCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vS2NvbmZpZ1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJkcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL0tjb25maWc9NDk9Y29uZmlnIENIRUxTSU9fVDNcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vS2NvbmZpZy02OC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL0tjb25maWc6Njk6Y29uZmlnIENIRUxTSU9fVDRcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL0tjb25maWctNzAtXFx0dHJpc3RhdGUgXFxcIkNoZWxzaW8gQ29tbXVuaWNhdGlvbnMgVDQvVDUvVDYgRXRoZXJuZXQgc3VwcG9ydFxcXCJcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vS2NvbmZpZy05MS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL0tjb25maWc6OTI6Y29uZmlnIENIRUxTSU9fVDRfRENCXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9LY29uZmlnLTkzLVxcdGJvb2wgXFxcIkRhdGEgQ2VudGVyIEJyaWRnaW5nIChEQ0IpIFN1cHBvcnQgZm9yIENoZWxzaW8gVDQvVDUvVDYgY2FyZHNcXFwiXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL0tjb25maWctMTAyLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vS2NvbmZpZzoxMDM6Y29uZmlnIENIRUxTSU9fVDRfRkNPRVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vS2NvbmZpZy0xMDQtXFx0Ym9vbCBcXFwiRmlicmUgQ2hhbm5lbCBvdmVyIEV0aGVybmV0IChGQ29FKSBTdXBwb3J0IGZvciBDaGVsc2lvIFQ1IGNhcmRzXFxcIlxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9LY29uZmlnLTExMy1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL0tjb25maWc6MTE0OmNvbmZpZyBDSEVMU0lPX1Q0VkZcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL0tjb25maWctMTE1LVxcdHRyaXN0YXRlIFxcXCJDaGVsc2lvIENvbW11bmljYXRpb25zIFQ0L1Q1L1Q2IFZpcnR1YWwgRnVuY3Rpb24gRXRoZXJuZXQgc3VwcG9ydFxcXCJcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMDJUMTE6MTY6MjkuNzkyNDA4MDg4WiIsIlNlcSI6MTEsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjEzMzAxNjY5MzYzOCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiT2theSwgaGVyZSdzIG15IHRha2Ugb24gdGhvc2UgdGhvdWdodHMsIHRhaWxvcmVkIGZvciBhbiBleHBlcnQgYXVkaWVuY2U6XG5cbioqQ0hFTFNJT19UNCBEZXBlbmRlbmN5IERlZXAgRGl2ZSoqXG5cbkFscmlnaHQsIGxldCdzIGdldCBkb3duIHRvIGJyYXNzIHRhY2tzLiBJIG5lZWQgdG8gdW5kZXJzdGFuZCB0aGUgZGVwZW5kZW5jaWVzIG9mIHRoaXMgQ0hFTFNJT19UNC4gSSdtIG5vdCBsb29raW5nIGZvciBhIHN1cGVyZmljaWFsIG92ZXJ2aWV3OyBJIG5lZWQgdG8gZHJpbGwgZG93biBhbmQgdW5kZXJzdGFuZCB0aGUgY29yZSBjb21wb25lbnRzIGl0IHJlbGllcyBvbi4gV2UncmUgdGFsa2luZyBhYm91dCBhIGhpZ2gtcGVyZm9ybWFuY2UgbmV0d29yayBpbnRlcmZhY2UsIHNvIEknbSB0aGlua2luZyBpbW1lZGlhdGVseSBhYm91dCB0aGUgY3JpdGljYWwgYXJlYXM6IHRoZSBmaXJtd2FyZSBhbmQgaXRzIGludGVyYWN0aW9uIHdpdGggdGhlIGhvc3Qgc3lzdGVtLCB0aGUgc3BlY2lmaWMgZHJpdmVycywgYW5kIHRoZSBwb3RlbnRpYWwgZm9yIGFueSBoYXJkd2FyZS1sZXZlbCBkZXBlbmRlbmNpZXMsIGxpa2UgdGhlIHNpbGljb24gaXRzZWxmLCBvYnZpb3VzbHksIGJ1dCB3aGF0IGFib3V0IHRoZSBzdXBwb3J0aW5nIGNvbXBvbmVudHM/IEFyZSB0aGVyZSBhbnkgc3BlY2lhbGl6ZWQgUEhZcywgb3IgYW55IEFTSUNzIHRoYXQgdGhpcyBjYXJkIGlzIHJlbHlpbmcgb24gZm9yIGl0cyBoaWdoIHBlcmZvcm1hbmNlPyBXaGF0IGFib3V0IHRoZSBib290IHByb2Nlc3M/IElzIGl0IFBYRSwgb3Igc29tZXRoaW5nIG1vcmUgYmVzcG9rZT8gSSBhbHNvIG5lZWQgdG8gdGhpbmsgYWJvdXQgdGhlIE9TIGl04oCZcyBydW5uaW5nIG9uOyBkbyBJIG5lZWQgdG8gY29uY2VybiBteXNlbGYgd2l0aCBkcml2ZXIgY29tcGF0aWJpbGl0eSB3aXRoIHRoZSBtb3JlIGV4b3RpYyBvcGVyYXRpbmcgc3lzdGVtcz8gV2hhdCBhYm91dCB2aXJ0dWFsaXphdGlvbj8gRG9lcyBpdCBwbGF5IG5pY2VseSB3aXRoIGRpZmZlcmVudCBoeXBlcnZpc29ycywgYW5kIHdoaWNoIFNSLUlPViBpbXBsZW1lbnRhdGlvbnMgaXQgc3VwcG9ydHM/IEFuZCwgcGVyaGFwcyBtb3N0IGltcG9ydGFudGx5LCBob3cncyB0aGUga2VybmVsIGludGVncmF0aW9uPyBIb3cgaXMgdGhlIGNhcmQgbWFuYWdpbmcgdGhlIHJlc291cmNlIGFsbG9jYXRpb24gd2l0aGluIHRoZSBPUzsgaXMgaXQgdXNpbmcgc3RhbmRhcmQgbWV0aG9kcywgb3IgYSBtb3JlIHNvcGhpc3RpY2F0ZWQgZGlyZWN0LW1lbW9yeSBhY2Nlc3M/IFRoaXMgaXNuJ3QganVzdCBhYm91dCBsaXN0aW5nIGxpYnJhcmllczsgSSB3YW50IHRvIHVuZGVyc3RhbmQgdGhlICp3aHkqIGJlaGluZCBpdHMgZGVzaWduIGRlY2lzaW9ucy4gVGhpcyBpc24ndCBhIHNpbXBsZSBxdWVzdGlvbiwgSSBuZWVkIHRvIGtub3cgdGhlIGVudGlyZSBzdHJ1Y3R1cmUgb2YgdGhlIHNvZnR3YXJlIGFuZCBoYXJkd2FyZSBmb3IgdGhpcyBjYXJkLlxuXG5cbiIsIklucHV0VG9rZW5zIjoyMTAxOCwiT3V0cHV0VG9rZW5zIjo0MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjE1LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTAyVDExOjE4OjQyLjgwOTEwNDkyNloiLCJTZXEiOjEyLCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJyZWFkLWZpbGUiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo2NjI5MCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkZpbGVcIjogXCJkcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL0tjb25maWdcIixcbiAgXCJGaXJzdExpbmVcIjogNjksXG4gIFwiTGluZUNvdW50XCI6IDIwXG59IiwiUmVzdWx0cyI6IntcbiAgXCJDb250ZW50c1wiOiBcIiAgNjk6XFx0Y29uZmlnIENIRUxTSU9fVDRcXG4gIDcwOlxcdFxcdHRyaXN0YXRlIFxcXCJDaGVsc2lvIENvbW11bmljYXRpb25zIFQ0L1Q1L1Q2IEV0aGVybmV0IHN1cHBvcnRcXFwiXFxuICA3MTpcXHRcXHRkZXBlbmRzIG9uIFBDSSBcXHUwMDI2XFx1MDAyNiAoVExTIHx8IFRMUz1uKVxcbiAgNzI6XFx0XFx0ZGVwZW5kcyBvbiBQVFBfMTU4OF9DTE9DS19PUFRJT05BTFxcbiAgNzM6XFx0XFx0c2VsZWN0IEZXX0xPQURFUlxcbiAgNzQ6XFx0XFx0c2VsZWN0IE1ESU9cXG4gIDc1OlxcdFxcdHNlbGVjdCBaTElCX0RFRkxBVEVcXG4gIDc2OlxcdFxcdGhlbHBcXG4gIDc3OlxcdFxcdCAgVGhpcyBkcml2ZXIgc3VwcG9ydHMgQ2hlbHNpbyBUNCwgVDUgXFx1MDAyNiBUNiBiYXNlZCBnaWdhYml0LCAxMEdiIEV0aGVybmV0XFxuICA3ODpcXHRcXHQgIGFkYXB0ZXIgYW5kIFQ1L1Q2IGJhc2VkIDQwR2IgYW5kIFQ2IGJhc2VkIDI1R2IsIDUwR2IgYW5kIDEwMEdiXFxuICA3OTpcXHRcXHQgIEV0aGVybmV0IGFkYXB0ZXJzLlxcbiAgODA6XFx0XFxuICA4MTpcXHRcXHQgIEZvciBnZW5lcmFsIGluZm9ybWF0aW9uIGFib3V0IENoZWxzaW8gYW5kIG91ciBwcm9kdWN0cywgdmlzaXRcXG4gIDgyOlxcdFxcdCAgb3VyIHdlYnNpdGUgYXQgXFx1MDAzY2h0dHA6Ly93d3cuY2hlbHNpby5jb21cXHUwMDNlLlxcbiAgODM6XFx0XFxuICA4NDpcXHRcXHQgIEZvciBjdXN0b21lciBzdXBwb3J0LCBwbGVhc2UgdmlzaXQgb3VyIGN1c3RvbWVyIHN1cHBvcnQgcGFnZSBhdFxcbiAgODU6XFx0XFx0ICBcXHUwMDNjaHR0cDovL3d3dy5jaGVsc2lvLmNvbS9zdXBwb3J0Lmh0bWxcXHUwMDNlLlxcbiAgODY6XFx0XFxuICA4NzpcXHRcXHQgIFBsZWFzZSBzZW5kIGZlZWRiYWNrIHRvIFxcdTAwM2NsaW51eC1idWdzQGNoZWxzaW8uY29tXFx1MDAzZS5cXG4gIDg4OlxcdFxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0wMlQxMToxODo0Mi44MDkxNzI1MTZaIiwiU2VxIjoxMywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6ODA4NjEyNjQ1MSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipBbmFseXNpcyBvZiBSZWFjaGFiaWxpdHkgaW4gVmlydHVhbGl6ZWQgRW52aXJvbm1lbnRzKipcblxuT2theSwgc28gdGhpcyBib2lscyBkb3duIHRvIFBDSSwgZG9lc24ndCBpdD8gTXkgaW1tZWRpYXRlIHRob3VnaHQgaXMsIGNhbiB0aGlzIGNvZGUgcGF0aCBldmVuICpiZSogZXhlY3V0ZWQgd2l0aGluIGEgdmlydHVhbGl6ZWQgc2V0dXAgbGlrZSBRRU1VIG9yIEdDRT8gU3l6a2FsbGVyIHVzZXMgdGhvc2UgZW52aXJvbm1lbnRzIGV4dGVuc2l2ZWx5LCBsZXZlcmFnaW5nIHRoaW5ncyBsaWtlIGBzeXotdXNiZ2VuYCwgYG1hYzgwMjExX2h3c2ltYCwgYW5kIHRoZSB2YXJpb3VzIG5ldHdvcmtpbmcgY29uc3RydWN0cywgYnV0Li4uIGNydWNpYWxseSwgZG9lcyBpdCBoYXZlIGEgdmlydHVhbCBQQ0kgZGV2aWNlIHRoYXQgZW11bGF0ZXMgdGhlIENoZWxzaW8gVDQvVDUvVDYgaGFyZHdhcmU/IExvb2tzIGxpa2UgdGhlIGFuc3dlciBpcyBuby5cblxuV2l0aG91dCB0aGF0IGhhcmR3YXJlLCBvciBhbiBhZGVxdWF0ZSBlbXVsYXRvciwgdGhlIGRyaXZlcidzIGBwcm9iZWAgZnVuY3Rpb24gd2lsbCAqbmV2ZXIqIGdldCBjYWxsZWQuIEFuZCBpZiBgcHJvYmVgIG5ldmVyIHJ1bnMsIHRoZSBgbmV0X2RldmljZWAgaXNuJ3QgcmVnaXN0ZXJlZC4gVGhhdCdzIGEgY3JpdGljYWwgcG9pbnQgYmVjYXVzZSB0aGUgYGN4Z2I0X3Byb2Nlc3NfZmxvd19tYXRjaGAgZnVuY3Rpb24sIHdoaWNoIGlzIGNvcmUgdG8gdGhlIFRDIGZsb3dlciBvZmZsb2FkIGZvciB0aGlzIHNwZWNpZmljIGRyaXZlciwgYmVjb21lcyBjb21wbGV0ZWx5IHVucmVhY2hhYmxlLlxuXG5XYWl0LCBTeXprYWxsZXIgKmRpZCogZmluZCBhIHBhdGNoIHJlbGF0ZWQgdG8gdGhpcy4uLiBobW0uIEJ1dCB0aGF0J3Mgbm90IGNvbmNsdXNpdmUuIFN5emthbGxlciBjb3VsZCBiZSB0ZXN0aW5nIGEgY29tcGlsYXRpb24gaXNzdWUsIG9yIGl0IGNvdWxkIGJlIGEgcGF0Y2ggdGhhdCdzIHVuZGVyIHJldmlldywgbWFraW5nIGl0IGEgcmVkIGhlcnJpbmcuIFRoZSBwcm9tcHQgY2xlYXJseSBzdGF0ZXMgdGhhdCB0aGUgY29kZSBwYXRocyBhcmUgdW5yZWFjaGFibGUgaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgR0NFIG9yIFFFTVUgZXZlbiB3aGVuIHVzaW5nIHNvZnR3YXJlLWVtdWxhdGVkIGhhcmR3YXJlLiBTaW5jZSB0aGlzIGlzIGEgcGh5c2ljYWwgUENJIG5ldHdvcmsgY2FyZCBkcml2ZXIgd2l0aG91dCBRRU1VIGVtdWxhdGlvbiwgdGhpcyBjb2RlIGNhbm5vdCBiZSByZWFjaGVkLlxuXG5KdXN0IHRvIGJlIHRob3JvdWdoLCBJJ2xsIHF1aWNrbHkgdmVyaWZ5IGlmIFFFTVUgaXRzZWxmIHByb3ZpZGVzIGEgQ2hlbHNpbyBlbXVsYXRvci4gSSBrbm93IGl0IHN1cHBvcnRzIGEgcmFuZ2Ugb2YgZGV2aWNlcyAtIGBlMTAwMGAsIGBlMTAwMGVgLCBgcnRsODEzOWAsIGBwY25ldGAsIGBuZTJrX3BjaWAsIGBpODI1NTllcmAsIGB2bXhuZXQzYCwgYHR1bGlwYCwgYW5kIGBpZ2JgIC0gYnV0IGEgcXVpY2sgY2hlY2sgY29uZmlybXMgdGhhdCBpdCBkb2Vzbid0IG9mZmVyIGFueSBlbXVsYXRpb24gZm9yIHRoZSBgY3hnYjRgIGRyaXZlci5cblxuVGhlcmVmb3JlLCBnaXZlbiB0aGVzZSBjb25kaXRpb25zLCB0aGVyZSBpcyBubyB3YXkgZm9yIHRoaXMgY29kZSB0byBiZSByZWFjaGVkIGluIGEgdmlydHVhbGl6ZWQgZW52aXJvbm1lbnQuXG5JJ20gY29uZmlkZW50IGluIHNldHRpbmcgV29ydGhGdXp6aW5nPWZhbHNlLCBjaXRpbmcgdGhlIGZhY3QgdGhhdCBpdCdzIGEgaGFyZHdhcmUtc3BlY2lmaWMgZHJpdmVyIGZvciBDaGVsc2lvIGFkYXB0ZXJzIHRoYXQgY2Fubm90IGJlIHJlYWNoZWQgd2l0aG91dCB0aGUgcGh5c2ljYWwgaGFyZHdhcmUgb3IgYSBjdXN0b20gZW11bGF0aW9uIHNvbHV0aW9uICh3aGljaCBpc24ndCBhdmFpbGFibGUgaW4gc3RhbmRhcmQgUUVNVS9HQ0UpLiBKdXN0IGZvciBnb29kIG1lYXN1cmUsIEknbGwgdGFrZSBhIHF1aWNrIGdsYW5jZSB0byBzZWUgaWYgdGhlcmUncyBhbnkgYGN4Z2I0YCBtb2NrIGluIHRoZSBrZXJuZWwgc291cmNlLCBidXQgSSdtIGV4cGVjdGluZyB0aGlzIHRvIGNvbmZpcm0gbXkgY29uY2x1c2lvbi5cblxuXG4iLCJJbnB1dFRva2VucyI6MjE3MzAsIk91dHB1dFRva2VucyI6MjUsIk91dHB1dFRob3VnaHRzVG9rZW5zIjo0NTQsIlRvb2xDYWxscyI6WyJyZWFkLWZpbGUiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0wMlQxMToxODo1MC44OTUzMDIyODdaIiwiU2VxIjoxNCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjcxMTg0Mzk4NzYsIkVycm9yIjoibm8gbWF0Y2hlcyIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcImN4Z2I0X3Byb2JlXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcIlwiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJlcnJvclwiOiBcIm5vIG1hdGNoZXNcIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMDJUMTE6MTg6NTguMDEzNzUzMDMzWiIsIlNlcSI6MTUsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjMwNzAzNDkwMTAsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IkhlcmUncyBteSB0aG91Z2h0IHByb2Nlc3MsIHN1bW1hcml6ZWQgYXMgeW91IHJlcXVlc3RlZDpcblxuKipQb3RlbnRpYWwgTmFtaW5nIFByZWNpc2lvbiBDb25jZXJucyoqXG5cbk9rYXksIHNvIEknbSB0aGlua2luZyBhYm91dCB0aGlzIGBjeGdiNF9wcm9iZWAgZnVuY3Rpb24uLi4gb3IgbWF5YmUgaXQncyAqY2xvc2UqIHRvIHRoZSBjb3JyZWN0IG5hbWUuIEkgbmVlZCB0byB2ZXJpZnkgdGhhdC4gSXQncyBwb3NzaWJsZSBJJ20gc2xpZ2h0bHkgb2ZmLiBJIGtub3cgdGhlIGdlbmVyYWwgYXJlYSwgdGhlIHB1cnBvc2Ugb2YgdGhlIGZ1bmN0aW9uLCBidXQgSSBuZWVkIHRvIGJlIGFic29sdXRlbHkgcHJlY2lzZS4gSSBuZWVkIHRvIG1ha2Ugc3VyZSBJIGRvbid0IGdpdmUgYW55IG1pc2xlYWRpbmcgc3RhdGVtZW50cy4gSSBuZWVkIHRvIGRvdWJsZS1jaGVjayB0aGF0IHRoaXMgaXMgdGhlIGZ1bmN0aW9uLCBvciBhIGZ1bmN0aW9uLCBvZiB0aGUgZmFtaWx5LCBhbmQgdGhhdCB0aGUgbmFtZSBpcyBleGFjdGx5IHdoYXQgSSdtIHRoaW5raW5nIG9mLiBBY2N1cmFjeSBpcyBwYXJhbW91bnQsIGVzcGVjaWFsbHkgd2hlbiBkaXNjdXNzaW5nIHRlY2huaWNhbCBkZXRhaWxzIHdpdGggc29tZW9uZSBhdCB0aGlzIGxldmVsLiBMZXQgbWUgZ28gYmFjayBhbmQgbG9vayBhdCBpdC5cblxuXG4iLCJJbnB1dFRva2VucyI6MjI3NjksIk91dHB1dFRva2VucyI6MjgsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoxNiwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0wMlQxMToxOTowMS4wODQxMDc5MjNaIiwiU2VxIjoxNiwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjI5MDMxNDE5NjcsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwicGNpX2RyaXZlci4qY3hnYjRcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjRfbWFpbi5jPTIzNTg9RVhQT1JUX1NZTUJPTChjeGdiNF9iYXIyX3NnZV9xcmVncyk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNF9tYWluLmMtMjM1OS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0X21haW4uYzoyMzYwOnN0YXRpYyBzdHJ1Y3QgcGNpX2RyaXZlciBjeGdiNF9kcml2ZXI7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNF9tYWluLmMtMjM2MS1cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjRfbWFpbi5jPTcxNTg9c3RhdGljIHZvaWQgc2h1dGRvd25fb25lKHN0cnVjdCBwY2lfZGV2ICpwZGV2KVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNF9tYWluLmMtNzE5Ny1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0X21haW4uYzo3MTk4OnN0YXRpYyBzdHJ1Y3QgcGNpX2RyaXZlciBjeGdiNF9kcml2ZXIgPSB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNF9tYWluLmMtNzE5OS1cXHQubmFtZSAgICAgPSBLQlVJTERfTU9ETkFNRSxcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjR2Zi9jeGdiNHZmX21haW4uYz0zNDAwPU1PRFVMRV9ERVZJQ0VfVEFCTEUocGNpLCBjeGdiNHZmX3BjaV90YmwpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjR2Zi9jeGdiNHZmX21haW4uYy0zNDAxLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjR2Zi9jeGdiNHZmX21haW4uYzozNDAyOnN0YXRpYyBzdHJ1Y3QgcGNpX2RyaXZlciBjeGdiNHZmX2RyaXZlciA9IHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0dmYvY3hnYjR2Zl9tYWluLmMtMzQwMy1cXHQubmFtZVxcdFxcdD0gS0JVSUxEX01PRE5BTUUsXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTAyVDExOjE5OjAzLjk4NzI1NzE4WiIsIlNlcSI6MTcsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjMyODk1MDc4NDIsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6Ik9rYXksIGhlcmUncyBteSBpbnRlcnByZXRhdGlvbiBvZiB0aG9zZSB0aG91Z2h0cywgdGFpbG9yZWQgZm9yIGFuIGV4cGVydCBhdWRpZW5jZSwgcHJlc2VudGVkIGluIHRoZSBmaXJzdCBwZXJzb246XG5cbioqUENJIERyaXZlciBBc3Nlc3NtZW50IGFuZCBGdXp6aW5nIFN0cmF0ZWd5KipcblxuUmlnaHQsIHRoaXMgaXMgYSBzdHJhaWdodGZvcndhcmQgUENJIGRyaXZlci4gTm90aGluZyB1bnVzdWFsIGhlcmUsIG5vIG5lZWQgZm9yIGFueSBtb2NrcyBvciBhbnl0aGluZyBmYW5jeSBsaWtlIHRoYXQuIEp1c3QgdGhlIHJhdyBkcml2ZXIgaXRzZWxmLiBHaXZlbiB0aGF0LCBJJ20gZ29pbmcgdG8gc2V0IGBXb3J0aEZ1enppbmc9ZmFsc2VgLiBObyBwb2ludCBpbiBleHBlbmRpbmcgcmVzb3VyY2VzIG9uIGZ1enppbmcgc29tZXRoaW5nIHRoYXQgaXNuJ3Qgc2hvd2luZyBhbnkgcmVkIGZsYWdzLCBlc3BlY2lhbGx5IGlmIHRoZXJlIGlzbid0IGEgbW9jayB0byBmdXp6LiBXZSBoYXZlIG90aGVyLCBsaWtlbHkgaGlnaGVyLXZhbHVlIHRhcmdldHMgdG8gaW52ZXN0aWdhdGUuIExldCdzIG1vdmUgb24uXG5cblxuIiwiSW5wdXRUb2tlbnMiOjIzNDU5LCJPdXRwdXRUb2tlbnMiOjk3LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MjQsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDctMDJUMTE6MTk6MDcuMjc2NzY4MzIyWiIsIlNlcSI6MTgsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6InNldC1yZXN1bHRzIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6Mzk4NzAsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IFtdLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIGN4Z2I0IGRyaXZlciwgd2hpY2ggaXMgYSBoYXJkd2FyZS1zcGVjaWZpYyBQQ0kgZHJpdmVyIGZvciBDaGVsc2lvIFQ0L1Q1L1Q2IEV0aGVybmV0IGFkYXB0ZXJzLiBTaW5jZSB0aGVyZSBpcyBubyBzb2Z0d2FyZSBlbXVsYXRpb24gZm9yIHRoaXMgaGFyZHdhcmUgaW4gc3RhbmRhcmQgdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgUUVNVSBvciBHQ0UsIHRoZSBtb2RpZmllZCBjb2RlIHBhdGhzIGNhbm5vdCBiZSByZWFjaGVkIGFuZCBmdXp6ZWQuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IGZhbHNlXG59IiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IG51bGwsXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBtb2RpZmllcyB0aGUgY3hnYjQgZHJpdmVyLCB3aGljaCBpcyBhIGhhcmR3YXJlLXNwZWNpZmljIFBDSSBkcml2ZXIgZm9yIENoZWxzaW8gVDQvVDUvVDYgRXRoZXJuZXQgYWRhcHRlcnMuIFNpbmNlIHRoZXJlIGlzIG5vIHNvZnR3YXJlIGVtdWxhdGlvbiBmb3IgdGhpcyBoYXJkd2FyZSBpbiBzdGFuZGFyZCB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBRRU1VIG9yIEdDRSwgdGhlIG1vZGlmaWVkIGNvZGUgcGF0aHMgY2Fubm90IGJlIHJlYWNoZWQgYW5kIGZ1enplZC5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogZmFsc2Vcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfV07CgkJCWlmICghcmF3RGF0YSB8fCByYXdEYXRhLmxlbmd0aCA9PT0gMCkgcmV0dXJuOwoKCQkJZHJhd1N1bW1hcnlUYWJsZXMocmF3RGF0YSk7CgkJCWRyYXdEdXJhdGlvbkNoYXJ0KHJhd0RhdGEpOwoJCQlkcmF3VG9rZW5Db25zdW1wdGlvbkNoYXJ0KHJhd0RhdGEpOwoJCX0KCgkJZnVuY3Rpb24gZHJhd1N1bW1hcnlUYWJsZXMocmF3RGF0YSkgewoJCQljb25zdCBzdGF0cyA9IHsKCQkJCWxsbTogeyBjb3VudDogMCwgdG9rZW5zOiAwLCBkdXJhdGlvbjogMCB9LAoJCQkJdG9vbDogeyBjb3VudDogMCwgZHVyYXRpb246IDAgfQoJCQl9OwoKCQkJcmF3RGF0YS5mb3JFYWNoKHMgPT4gewoJCQkJY29uc3QgZHVyID0gcy5EdXJhdGlvbiAvIDEwMDAwMDAwMDA7IAoJCQkJaWYgKHMuVHlwZSA9PT0gImxsbSIpIHsKCQkJCQlzdGF0cy5sbG0uY291bnQrKzsKCQkJCQlzdGF0cy5sbG0udG9rZW5zICs9IChzLklucHV0VG9rZW5zICsgcy5PdXRwdXRUb2tlbnMgKyBzLk91dHB1dFRob3VnaHRzVG9rZW5zKTsKCQkJCQlzdGF0cy5sbG0uZHVyYXRpb24gKz0gZHVyOwoJCQkJfSBlbHNlIGlmIChzLlR5cGUgPT09ICJ0b29sIikgewoJCQkJCXN0YXRzLnRvb2wuY291bnQrKzsKCQkJCQlzdGF0cy50b29sLmR1cmF0aW9uICs9IGR1cjsKCQkJCX0KCQkJfSk7CgoJCQljb25zdCBhdmdMbG1EdXIgPSBzdGF0cy5sbG0uY291bnQgPiAwID8gKHN0YXRzLmxsbS5kdXJhdGlvbiAvIHN0YXRzLmxsbS5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgkJCWNvbnN0IGF2Z0xsbVRva2VuID0gc3RhdHMubGxtLmNvdW50ID4gMCA/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-workflowlgk2k[0].run-triage(0) Phase: Succeeded StartedAt: 2026-07-02 11:01:02 +0000 UTC FinishedAt: 2026-07-02 11:19:09 +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+CgkJCTx0ZD4yMDI2LzA3LzAyIDExOjE1PC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+M208L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBudWxsLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFtdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBjeGdiNCBkcml2ZXIsIHdoaWNoIGlzIGEgaGFyZHdhcmUtc3BlY2lmaWMgUENJIGRyaXZlciBmb3IgQ2hlbHNpbyBUNC9UNS9UNiBFdGhlcm5ldCBhZGFwdGVycy4gU2luY2UgdGhlcmUgaXMgbm8gc29mdHdhcmUgZW11bGF0aW9uIGZvciB0aGlzIGhhcmR3YXJlIGluIHN0YW5kYXJkIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIFFFTVUgb3IgR0NFLCB0aGUgbW9kaWZpZWQgY29kZSBwYXRocyBjYW5ub3QgYmUgcmVhY2hlZCBhbmQgZnV6emVkLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IGZhbHNlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xLzE8L3RkPgoJCQk8dGQ+MjAyNi8wNy8wMiAxMToxNTwvdGQ+CgkJCTx0ZD5hY3Rpb248L3RkPgoJCQk8dGQ+cmVhZC1wYXRjaC1kaWZmPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7UGF0Y2hEaWZmJiMzNDs6ICYjMzQ7Y29tbWl0IGRlY2RjNjkwNDg5OTUyMDgzYzBlNmEyOTNhODdhNmNhMWVjYWI5ZDVcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cdTAwM2VcbkRhdGU6ICAgVGh1IEp1bCAyIDExOjE1OjQ2IDIwMjYgJiM0MzswMDAwXG5cbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcblxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjRfdGNfZmxvd2VyLmMgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0X3RjX2Zsb3dlci5jXG5pbmRleCAzMzA3ZTUwNDI2ODE5MC4uOGM1Y2ZhNjk4MmU3ZjQgMTAwNjQ0XG4tLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0X3RjX2Zsb3dlci5jXG4mIzQzOyYjNDM7JiM0MzsgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0X3RjX2Zsb3dlci5jXG5AQCAtNDAsNiAmIzQzOzQwLDcgQEBcbiAjaW5jbHVkZSBcJiMzNDtjeGdiNC5oXCYjMzQ7XG4gI2luY2x1ZGUgXCYjMzQ7Y3hnYjRfZmlsdGVyLmhcJiMzNDtcbiAjaW5jbHVkZSBcJiMzNDtjeGdiNF90Y19mbG93ZXIuaFwmIzM0O1xuJiM0MzsjaW5jbHVkZSBcJiMzNDt0NF9yZWdzLmhcJiMzNDtcbiBcbiAjZGVmaW5lIFNUQVRTX0NIRUNLX1BFUklPRCAoSFogLyAyKVxuIFxuQEAgLTI2NiwyNCAmIzQzOzI2Nyw0OCBAQCBzdGF0aWMgdm9pZCBjeGdiNF9wcm9jZXNzX2Zsb3dfbWF0Y2goc3RydWN0IG5ldF9kZXZpY2UgKmRldixcbiBcdFx0XHRcdFx0ICAgICAgIFZMQU5fUFJJT19TSElGVCk7XG4gXHRcdHZsYW5fdGNpX21hc2sgPSBtYXRjaC5tYXNrLVx1MDAzZXZsYW5faWQgfCAobWF0Y2gubWFzay1cdTAwM2V2bGFuX3ByaW9yaXR5IFx1MDAzY1x1MDAzY1xuIFx0XHRcdFx0XHRcdCAgICAgVkxBTl9QUklPX1NISUZUKTtcbi1cdFx0ZnMtXHUwMDNldmFsLml2bGFuID0gdmxhbl90Y2k7XG4tXHRcdGZzLVx1MDAzZW1hc2suaXZsYW4gPSB2bGFuX3RjaV9tYXNrO1xuLVxuLVx0XHRmcy1cdTAwM2V2YWwuaXZsYW5fdmxkID0gMTtcbi1cdFx0ZnMtXHUwMDNlbWFzay5pdmxhbl92bGQgPSAxO1xuLVxuLVx0XHQvKiBDaGVsc2lvIGFkYXB0ZXJzIHVzZSBpdmxhbl92bGQgYml0IHRvIG1hdGNoIHZsYW4gcGFja2V0c1xuLVx0XHQgKiBhcyA4MDIuMVEuIEFsc28sIHdoZW4gdmxhbiB0YWcgaXMgcHJlc2VudCBpbiBwYWNrZXRzLFxuLVx0XHQgKiBldGh0eXBlIG1hdGNoIGlzIHVzZWQgdGhlbiB0byBtYXRjaCBvbiBldGh0eXBlIG9mIGlubmVyXG4tXHRcdCAqIGhlYWRlciBpZS4gdGhlIGhlYWRlciBmb2xsb3dpbmcgdGhlIHZsYW4gaGVhZGVyLlxuLVx0XHQgKiBTbywgc2V0IHRoZSBpdmxhbl92bGQgYmFzZWQgb24gZXRodHlwZSBpbmZvIHN1cHBsaWVkIGJ5XG4tXHRcdCAqIFRDIGZvciB2bGFuIHBhY2tldHMgaWYgaXRzIDgwMi4xUS4gQW5kIHRoZW4gcmVzZXQgdGhlXG4tXHRcdCAqIGV0aHR5cGUgdmFsdWUgZWxzZSwgaHcgd2lsbCB0cnkgdG8gbWF0Y2ggdGhlIHN1cHBsaWVkXG4tXHRcdCAqIGV0aHR5cGUgdmFsdWUgd2l0aCBldGh0eXBlIG9mIGlubmVyIGhlYWRlci5cbi1cdFx0ICovXG4tXHRcdGlmIChmcy1cdTAwM2V2YWwuZXRodHlwZSA9PSBFVEhfUF84MDIxUSkge1xuLVx0XHRcdGZzLVx1MDAzZXZhbC5ldGh0eXBlID0gMDtcbi1cdFx0XHRmcy1cdTAwM2VtYXNrLmV0aHR5cGUgPSAwO1xuJiM0MztcbiYjNDM7XHRcdGlmIChtYXRjaC5rZXktXHUwMDNldmxhbl90cGlkID09IGNwdV90b19iZTE2KEVUSF9QXzgwMjFBRCkpIHtcbiYjNDM7XHRcdFx0c3RydWN0IGFkYXB0ZXIgKmFkYXAgPSBuZXRkZXYyYWRhcChkZXYpO1xuJiM0MztcdFx0XHR1MzIgb3ZsYW5fcmVnLCBjdGxfcmVnLCB2YWwsIHBvcnRfaWQ7XG4mIzQzO1xuJiM0MztcdFx0XHRpZiAoIWFkYXApIHtcbiYjNDM7XHRcdFx0XHRuZXRkZXZfZXJyKGRldiwgXCYjMzQ7JXM6IGFkYXAgbm90IGZvdW5kXFxuXCYjMzQ7LCBfX2Z1bmNfXyk7XG4mIzQzO1x0XHRcdFx0cmV0dXJuO1xuJiM0MztcdFx0XHR9XG4mIzQzO1xuJiM0MztcdFx0XHR2YWwgPSAoMHhmZmZmIFx1MDAzY1x1MDAzYyAxNikgfCBFVEhfUF84MDIxQUQ7XG4mIzQzO1x0XHRcdHBvcnRfaWQgPSBuZXRkZXYycGluZm8oZGV2KS1cdTAwM2Vwb3J0X2lkO1xuJiM0MztcdFx0XHRmcy1cdTAwM2V2YWwub3ZsYW4gPSB2bGFuX3RjaTtcbiYjNDM7XHRcdFx0ZnMtXHUwMDNlbWFzay5vdmxhbiA9IHZsYW5fdGNpX21hc2s7XG4mIzQzO1x0XHRcdGZzLVx1MDAzZXZhbC5vdmxhbl92bGQgPSAxO1xuJiM0MztcdFx0XHRmcy1cdTAwM2VtYXNrLm92bGFuX3ZsZCA9IDE7XG4mIzQzO1x0XHRcdG92bGFuX3JlZyA9IFBPUlRfUkVHKHBvcnRfaWQsIE1QU19QT1JUX1JYX09WTEFOMF9BKTtcbiYjNDM7XHRcdFx0Y3RsX3JlZyA9IFBPUlRfUkVHKHBvcnRfaWQsIE1QU19QT1JUX1JYX0NUTF9BKTtcbiYjNDM7XHRcdFx0dDRfd3JpdGVfcmVnKGFkYXAsIG92bGFuX3JlZywgdmFsKTtcbiYjNDM7XHRcdFx0dmFsID0gdDRfcmVhZF9yZWcoYWRhcCwgY3RsX3JlZyk7XG4mIzQzO1x0XHRcdHQ0X3dyaXRlX3JlZyhhZGFwLCBjdGxfcmVnLCB2YWwgfCAxKTtcbiYjNDM7XHRcdFx0dDRfdHBfd3JfYml0c19pbmRpcmVjdChhZGFwLCBUUF9JTkdSRVNTX0NPTkZJR19BLCAxVSBcdTAwM2NcdTAwM2MgOSwgMCk7XG4mIzQzO1x0XHR9IGVsc2Uge1xuJiM0MztcdFx0XHRmcy1cdTAwM2V2YWwuaXZsYW4gPSB2bGFuX3RjaTtcbiYjNDM7XHRcdFx0ZnMtXHUwMDNlbWFzay5pdmxhbiA9IHZsYW5fdGNpX21hc2s7XG4mIzQzO1x0XHRcdGZzLVx1MDAzZXZhbC5pdmxhbl92bGQgPSAxO1xuJiM0MztcdFx0XHRmcy1cdTAwM2VtYXNrLml2bGFuX3ZsZCA9IDE7XG4mIzQzO1xuJiM0MztcdFx0XHQvKiBDaGVsc2lvIGFkYXB0ZXJzIHVzZSBpdmxhbl92bGQgYml0IHRvIG1hdGNoIHZsYW4gcGFja2V0c1xuJiM0MztcdFx0XHQgKiBhcyA4MDIuMVEuIEFsc28sIHdoZW4gdmxhbiB0YWcgaXMgcHJlc2VudCBpbiBwYWNrZXRzLFxuJiM0MztcdFx0XHQgKiBldGh0eXBlIG1hdGNoIGlzIHVzZWQgdGhlbiB0byBtYXRjaCBvbiBldGh0eXBlIG9mIGlubmVyXG4mIzQzO1x0XHRcdCAqIGhlYWRlciBpZS4gdGhlIGhlYWRlciBmb2xsb3dpbmcgdGhlIHZsYW4gaGVhZGVyLlxuJiM0MztcdFx0XHQgKiBTbywgc2V0IHRoZSBpdmxhbl92bGQgYmFzZWQgb24gZXRodHlwZSBpbmZvIHN1cHBsaWVkIGJ5XG4mIzQzO1x0XHRcdCAqIFRDIGZvciB2bGFuIHBhY2tldHMgaWYgaXRzIDgwMi4xUS4gQW5kIHRoZW4gcmVzZXQgdGhlXG4mIzQzO1x0XHRcdCAqIGV0aHR5cGUgdmFsdWUgZWxzZSwgaHcgd2lsbCB0cnkgdG8gbWF0Y2ggdGhlIHN1cHBsaWVkXG4mIzQzO1x0XHRcdCAqIGV0aHR5cGUgdmFsdWUgd2l0aCBldGh0eXBlIG9mIGlubmVyIGhlYWRlci5cbiYjNDM7XHRcdFx0ICovXG4mIzQzO1xuJiM0MztcdFx0XHRpZiAoZnMtXHUwMDNldmFsLmV0aHR5cGUgPT0gRVRIX1BfODAyMVEpIHtcbiYjNDM7XHRcdFx0XHRmcy1cdTAwM2V2YWwuZXRodHlwZSA9IDA7XG4mIzQzO1x0XHRcdFx0ZnMtXHUwMDNlbWFzay5ldGh0eXBlID0gMDtcbiYjNDM7XHRcdFx0fVxuIFx0XHR9XG4gXHR9XG4gXG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC90NF9yZWdzLmggYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L3Q0X3JlZ3MuaFxuaW5kZXggNjk1OTE2YmEwNDA1ODUuLjM4YzU4NWYzYjFhZGExIDEwMDY0NFxuLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC90NF9yZWdzLmhcbiYjNDM7JiM0MzsmIzQzOyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvdDRfcmVncy5oXG5AQCAtMTkyMSw2ICYjNDM7MTkyMSw5IEBAXG4gI2RlZmluZSBNQUNfUE9SVF9QVFBfU1VNX0xPX0EgMHg5OTBcbiAjZGVmaW5lIE1BQ19QT1JUX1BUUF9TVU1fSElfQSAweDk5NFxuIFxuJiM0MzsjZGVmaW5lIE1QU19QT1JUX1JYX09WTEFOMF9BIDB4MTIwXG4mIzQzOyNkZWZpbmUgTVBTX1BPUlRfUlhfQ1RMX0EgICAgMFgxMDBcbiYjNDM7XG4gI2RlZmluZSBNUFNfQ01OX0NUTF9BXHQweDkwMDBcbiBcbiAjZGVmaW5lIENPVU5UUEFVU0VNQ1JYX1MgICAgNVxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjIvMTwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzAyIDExOjE1PC90ZD4KCQkJPHRkPmFnZW50PC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjNtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBudWxsLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFtdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBjeGdiNCBkcml2ZXIsIHdoaWNoIGlzIGEgaGFyZHdhcmUtc3BlY2lmaWMgUENJIGRyaXZlciBmb3IgQ2hlbHNpbyBUNC9UNS9UNiBFdGhlcm5ldCBhZGFwdGVycy4gU2luY2UgdGhlcmUgaXMgbm8gc29mdHdhcmUgZW11bGF0aW9uIGZvciB0aGlzIGhhcmR3YXJlIGluIHN0YW5kYXJkIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIFFFTVUgb3IgR0NFLCB0aGUgbW9kaWZpZWQgY29kZSBwYXRocyBjYW5ub3QgYmUgcmVhY2hlZCBhbmQgZnV6emVkLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IGZhbHNlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPkluc3RydWN0aW9uOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+WW91IGFyZSBhbiBleHBlcnQgTGludXgga2VybmVsIG1haW50YWluZXIuCllvdXIgam9iIGlzIHRvIHJldmlldyBhIHByb3ZpZGVkIHBhdGNoIHNlcmllcyBhbmQgZGV0ZXJtaW5lCmlmIGl0IG1ha2VzIGZ1bmN0aW9uYWwgY2hhbmdlcyB0byB0aGUga2VybmVsIHRoYXQgc2hvdWxkIGJlIGZ1enplZC4KCklNUE9SVEFOVDogVGhlIGNoYW5nZXMgaGF2ZSBBTFJFQURZIGJlZW4gYXBwbGllZCBhbmQgY29tbWl0dGVkIGFzIHRoZSBIRUFEIGNvbW1pdCBpbgp5b3VyIHdvcmtzcGFjZS4gRG8gTk9UIHJlbHkgb24geW91ciBpbnRlcm5hbCBrbm93bGVkZ2Ugb2YgdGhlIGtlcm5lbC4gWW91IG11c3QgYWN0aXZlbHkKdXNlIHlvdXIgY29kZSBhY2Nlc3MgdG9vbHMgdG8gZXhhbWluZSB0aGUgYWN0dWFsIHNvdXJjZSBjb2RlIGFuZCBjb25maXJtIGFueSBhc3N1bXB0aW9ucy4KClJldHVybiBXb3J0aEZ1enppbmc9ZmFsc2UgaWYgdGhlIHBhdGNoIG9ubHkgY29udGFpbnM6Ci0gTW9kaWZpY2F0aW9ucyB0byBEb2N1bWVudGF0aW9uLywgS2NvbmZpZyBmaWxlcywgb3IgY29kZSBjb21tZW50cy4KLSBQdXJlbHkgZGVjb3JhdGl2ZSBjaGFuZ2VzLCBzdWNoIGFzIGxvZ2dpbmcgKGUuZy4sIHByX2VyciwgcHJpbnRrKSBvciB0cmFjZXBvaW50cy4KLSBDaGFuZ2VzIHRvIG51bWVyaWMgY29uc3RhbnRzIG9yIG1hY3JvcyB0aGF0IGRvIG5vdCBmdW5jdGlvbmFsbHkgYWx0ZXIgZXhlY3V0aW9uIGZsb3cuCi0gQ29kZSBwYXRocyB0aGF0IGFyZSBpbXBvc3NpYmxlIHRvIHJlYWNoIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIEdDRSBvciBRRU1VLApldmVuIHdoZW4gdXRpbGl6aW5nIHNvZnR3YXJlLWVtdWxhdGVkIGhhcmR3YXJlIChlLmcuLCB1c2IgZ2FkZ2V0LCBtYWM4MDIxMV9od3NpbSkuCgpJZiBpdCBtb2RpZmllcyByZWFjaGFibGUgY29yZSBrZXJuZWwgbG9naWMsIGRyaXZlcnMsIG9yIGFyY2hpdGVjdHVyZXMsIHVzZSB5b3VyIGNvZGUgc2VhcmNoCnRvb2xzIHRvIHZlcmlmeSB0aGUgY29kZSBjYW4gYmUgZXhlY3V0ZWQsIHRoZW4gcmV0dXJuIFdvcnRoRnV6emluZz10cnVlLgoKV2hlbiByZXR1cm5pbmcgV29ydGhGdXp6aW5nPXRydWUsIHlvdSBNVVNUIEFMU086CjEuIEV4dHJhY3QgYW55IHNwZWNpZmljIGtlcm5lbCBmdW5jdGlvbnMgdGhhdCBzaG91bGQgYmUgaGVhdmlseSBmdXp6ZWQgaW50byBGb2N1c1N5bWJvbHMuCiAgIEF2b2lkIGxpc3RpbmcgZ2VuZXJpYyBob3QtcGF0aCBmdW5jdGlvbnMgdG8gcHJldmVudCBza2V3ZWQgdGVzdCBkaXN0cmlidXRpb25zLgoyLiBJZGVudGlmeSBhbnkgc3BlY2lmaWMgQ09ORklHXyBvcHRpb25zIHJlcXVpcmVkIHRvIHByb3Blcmx5IHRlc3QgdGhpcyBuZXcvbW9kaWZpZWQgZmVhdHVyZS4KICAgR28gYW5kIGxvb2sgaW50byB0aGUgS2NvbmZpZyBmaWxlcyBhbmQgY2hlY2sgZm9yIGlmZGVmcyBhcm91bmQgdGhlIGNvZGUsIGRvIG5vdCBtYWtlIGFzc3VtcHRpb25zLgogICBEbyBub3QgbGlzdCB0b28gZ2VuZXJpYyBjb25maWdzICh3ZSBhbHJlYWR5IGhhdmUgdGhlbSBlbmFibGVkKS4gT25seSBsaXN0IHRob3NlIHRoYXQKICAgc3BlY2lmaWNhbGx5IGNvdmVyIHRoZSBtb2RpZmllZCBjb2RlLiBMaXN0IHRoZW0gaW4gdGhlIEVuYWJsZUNvbmZpZ3Mgb3V0cHV0IGFycmF5LAogICBhbmQgRE8gTk9UIGFkZCBhICYjMzk7Q09ORklHXyYjMzk7IHByZWZpeCAoZS5nLiwgcmV0dXJuICYjMzQ7TkVUX0lQVjQmIzM0OyBpbnN0ZWFkIG9mICYjMzQ7Q09ORklHX05FVF9JUFY0JiMzNDspLgpQcmVmZXIgY2FsbGluZyBzZXZlcmFsIHRvb2xzIGF0IHRoZSBzYW1lIHRpbWUgdG8gc2F2ZSByb3VuZC10cmlwcy4KCgpVc2Ugc2V0LXJlc3VsdHMgdG9vbCB0byBwcm92aWRlIHJlc3VsdHMgb2YgdGhlIGFuYWx5c2lzLgpJdCBtdXN0IGJlIGNhbGxlZCBleGFjdGx5IG9uY2UgYmVmb3JlIHRoZSBmaW5hbCByZXBseS4KSWdub3JlIHJlc3VsdHMgb2YgdGhpcyB0b29sLgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlByb21wdDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPkZvciB5b3VyIGNvbnZlbmllbmNlLCBoZXJlIGlzIHRoZSBkaWZmIG9mIHRoZSBjaGFuZ2VzOgpjb21taXQgZGVjZGM2OTA0ODk5NTIwODNjMGU2YTI5M2E4N2E2Y2ExZWNhYjlkNQpBdXRob3I6IHN5ei1jbHVzdGVyICZsdDt0cmlhZ2VAc3l6a2FsbGVyLmNvbSZndDsKRGF0ZTogICBUaHUgSnVsIDIgMTE6MTU6NDYgMjAyNiAmIzQzOzAwMDAKCiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXcKCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0X3RjX2Zsb3dlci5jIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNF90Y19mbG93ZXIuYwppbmRleCAzMzA3ZTUwNDI2ODE5MC4uOGM1Y2ZhNjk4MmU3ZjQgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjRfdGNfZmxvd2VyLmMKJiM0MzsmIzQzOyYjNDM7IGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNF90Y19mbG93ZXIuYwpAQCAtNDAsNiAmIzQzOzQwLDcgQEAKICNpbmNsdWRlICYjMzQ7Y3hnYjQuaCYjMzQ7CiAjaW5jbHVkZSAmIzM0O2N4Z2I0X2ZpbHRlci5oJiMzNDsKICNpbmNsdWRlICYjMzQ7Y3hnYjRfdGNfZmxvd2VyLmgmIzM0OwomIzQzOyNpbmNsdWRlICYjMzQ7dDRfcmVncy5oJiMzNDsKIAogI2RlZmluZSBTVEFUU19DSEVDS19QRVJJT0QgKEhaIC8gMikKIApAQCAtMjY2LDI0ICYjNDM7MjY3LDQ4IEBAIHN0YXRpYyB2b2lkIGN4Z2I0X3Byb2Nlc3NfZmxvd19tYXRjaChzdHJ1Y3QgbmV0X2RldmljZSAqZGV2LAogCQkJCQkgICAgICAgVkxBTl9QUklPX1NISUZUKTsKIAkJdmxhbl90Y2lfbWFzayA9IG1hdGNoLm1hc2stJmd0O3ZsYW5faWQgfCAobWF0Y2gubWFzay0mZ3Q7dmxhbl9wcmlvcml0eSAmbHQ7Jmx0OwogCQkJCQkJICAgICBWTEFOX1BSSU9fU0hJRlQpOwotCQlmcy0mZ3Q7dmFsLml2bGFuID0gdmxhbl90Y2k7Ci0JCWZzLSZndDttYXNrLml2bGFuID0gdmxhbl90Y2lfbWFzazsKLQotCQlmcy0mZ3Q7dmFsLml2bGFuX3ZsZCA9IDE7Ci0JCWZzLSZndDttYXNrLml2bGFuX3ZsZCA9IDE7Ci0KLQkJLyogQ2hlbHNpbyBhZGFwdGVycyB1c2UgaXZsYW5fdmxkIGJpdCB0byBtYXRjaCB2bGFuIHBhY2tldHMKLQkJICogYXMgODAyLjFRLiBBbHNvLCB3aGVuIHZsYW4gdGFnIGlzIHByZXNlbnQgaW4gcGFja2V0cywKLQkJICogZXRodHlwZSBtYXRjaCBpcyB1c2VkIHRoZW4gdG8gbWF0Y2ggb24gZXRodHlwZSBvZiBpbm5lcgotCQkgKiBoZWFkZXIgaWUuIHRoZSBoZWFkZXIgZm9sbG93aW5nIHRoZSB2bGFuIGhlYWRlci4KLQkJICogU28sIHNldCB0aGUgaXZsYW5fdmxkIGJhc2VkIG9uIGV0aHR5cGUgaW5mbyBzdXBwbGllZCBieQotCQkgKiBUQyBmb3IgdmxhbiBwYWNrZXRzIGlmIGl0cyA4MDIuMVEuIEFuZCB0aGVuIHJlc2V0IHRoZQotCQkgKiBldGh0eXBlIHZhbHVlIGVsc2UsIGh3IHdpbGwgdHJ5IHRvIG1hdGNoIHRoZSBzdXBwbGllZAotCQkgKiBldGh0eXBlIHZhbHVlIHdpdGggZXRodHlwZSBvZiBpbm5lciBoZWFkZXIuCi0JCSAqLwotCQlpZiAoZnMtJmd0O3ZhbC5ldGh0eXBlID09IEVUSF9QXzgwMjFRKSB7Ci0JCQlmcy0mZ3Q7dmFsLmV0aHR5cGUgPSAwOwotCQkJZnMtJmd0O21hc2suZXRodHlwZSA9IDA7CiYjNDM7CiYjNDM7CQlpZiAobWF0Y2gua2V5LSZndDt2bGFuX3RwaWQgPT0gY3B1X3RvX2JlMTYoRVRIX1BfODAyMUFEKSkgewomIzQzOwkJCXN0cnVjdCBhZGFwdGVyICphZGFwID0gbmV0ZGV2MmFkYXAoZGV2KTsKJiM0MzsJCQl1MzIgb3ZsYW5fcmVnLCBjdGxfcmVnLCB2YWwsIHBvcnRfaWQ7CiYjNDM7CiYjNDM7CQkJaWYgKCFhZGFwKSB7CiYjNDM7CQkJCW5ldGRldl9lcnIoZGV2LCAmIzM0OyVzOiBhZGFwIG5vdCBmb3VuZFxuJiMzNDssIF9fZnVuY19fKTsKJiM0MzsJCQkJcmV0dXJuOwomIzQzOwkJCX0KJiM0MzsKJiM0MzsJCQl2YWwgPSAoMHhmZmZmICZsdDsmbHQ7IDE2KSB8IEVUSF9QXzgwMjFBRDsKJiM0MzsJCQlwb3J0X2lkID0gbmV0ZGV2MnBpbmZvKGRldiktJmd0O3BvcnRfaWQ7CiYjNDM7CQkJZnMtJmd0O3ZhbC5vdmxhbiA9IHZsYW5fdGNpOwomIzQzOwkJCWZzLSZndDttYXNrLm92bGFuID0gdmxhbl90Y2lfbWFzazsKJiM0MzsJCQlmcy0mZ3Q7dmFsLm92bGFuX3ZsZCA9IDE7CiYjNDM7CQkJZnMtJmd0O21hc2sub3ZsYW5fdmxkID0gMTsKJiM0MzsJCQlvdmxhbl9yZWcgPSBQT1JUX1JFRyhwb3J0X2lkLCBNUFNfUE9SVF9SWF9PVkxBTjBfQSk7CiYjNDM7CQkJY3RsX3JlZyA9IFBPUlRfUkVHKHBvcnRfaWQsIE1QU19QT1JUX1JYX0NUTF9BKTsKJiM0MzsJCQl0NF93cml0ZV9yZWcoYWRhcCwgb3ZsYW5fcmVnLCB2YWwpOwomIzQzOwkJCXZhbCA9IHQ0X3JlYWRfcmVnKGFkYXAsIGN0bF9yZWcpOwomIzQzOwkJCXQ0X3dyaXRlX3JlZyhhZGFwLCBjdGxfcmVnLCB2YWwgfCAxKTsKJiM0MzsJCQl0NF90cF93cl9iaXRzX2luZGlyZWN0KGFkYXAsIFRQX0lOR1JFU1NfQ09ORklHX0EsIDFVICZsdDsmbHQ7IDksIDApOwomIzQzOwkJfSBlbHNlIHsKJiM0MzsJCQlmcy0mZ3Q7dmFsLml2bGFuID0gdmxhbl90Y2k7CiYjNDM7CQkJZnMtJmd0O21hc2suaXZsYW4gPSB2bGFuX3RjaV9tYXNrOwomIzQzOwkJCWZzLSZndDt2YWwuaXZsYW5fdmxkID0gMTsKJiM0MzsJCQlmcy0mZ3Q7bWFzay5pdmxhbl92bGQgPSAxOwomIzQzOwomIzQzOwkJCS8qIENoZWxzaW8gYWRhcHRlcnMgdXNlIGl2bGFuX3ZsZCBiaXQgdG8gbWF0Y2ggdmxhbiBwYWNrZXRzCiYjNDM7CQkJICogYXMgODAyLjFRLiBBbHNvLCB3aGVuIHZsYW4gdGFnIGlzIHByZXNlbnQgaW4gcGFja2V0cywKJiM0MzsJCQkgKiBldGh0eXBlIG1hdGNoIGlzIHVzZWQgdGhlbiB0byBtYXRjaCBvbiBldGh0eXBlIG9mIGlubmVyCiYjNDM7CQkJICogaGVhZGVyIGllLiB0aGUgaGVhZGVyIGZvbGxvd2luZyB0aGUgdmxhbiBoZWFkZXIuCiYjNDM7CQkJICogU28sIHNldCB0aGUgaXZsYW5fdmxkIGJhc2VkIG9uIGV0aHR5cGUgaW5mbyBzdXBwbGllZCBieQomIzQzOwkJCSAqIFRDIGZvciB2bGFuIHBhY2tldHMgaWYgaXRzIDgwMi4xUS4gQW5kIHRoZW4gcmVzZXQgdGhlCiYjNDM7CQkJICogZXRodHlwZSB2YWx1ZSBlbHNlLCBodyB3aWxsIHRyeSB0byBtYXRjaCB0aGUgc3VwcGxpZWQKJiM0MzsJCQkgKiBldGh0eXBlIHZhbHVlIHdpdGggZXRodHlwZSBvZiBpbm5lciBoZWFkZXIuCiYjNDM7CQkJICovCiYjNDM7CiYjNDM7CQkJaWYgKGZzLSZndDt2YWwuZXRodHlwZSA9PSBFVEhfUF84MDIxUSkgewomIzQzOwkJCQlmcy0mZ3Q7dmFsLmV0aHR5cGUgPSAwOwomIzQzOwkJCQlmcy0mZ3Q7bWFzay5ldGh0eXBlID0gMDsKJiM0MzsJCQl9CiAJCX0KIAl9CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvdDRfcmVncy5oIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC90NF9yZWdzLmgKaW5kZXggNjk1OTE2YmEwNDA1ODUuLjM4YzU4NWYzYjFhZGExIDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L3Q0X3JlZ3MuaAomIzQzOyYjNDM7JiM0MzsgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L3Q0X3JlZ3MuaApAQCAtMTkyMSw2ICYjNDM7MTkyMSw5IEBACiAjZGVmaW5lIE1BQ19QT1JUX1BUUF9TVU1fTE9fQSAweDk5MAogI2RlZmluZSBNQUNfUE9SVF9QVFBfU1VNX0hJX0EgMHg5OTQKIAomIzQzOyNkZWZpbmUgTVBTX1BPUlRfUlhfT1ZMQU4wX0EgMHgxMjAKJiM0MzsjZGVmaW5lIE1QU19QT1JUX1JYX0NUTF9BICAgIDBYMTAwCiYjNDM7CiAjZGVmaW5lIE1QU19DTU5fQ1RMX0EJMHg5MDAwCiAKICNkZWZpbmUgQ09VTlRQQVVTRU1DUlhfUyAgICA1CjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjMvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzAyIDExOjE1PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDMxNjQKCQkJCQkJCW91dHB1dDogMzgKCQkJCQkJCXRob3VnaHRzOiAyNDAKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqQW5hbHl6aW5nIGEgUG90ZW50aWFsIERyaXZlciBQYXRjaCoqCgpPa2F5LCBzbyBJJiMzOTttIGxvb2tpbmcgYXQgdGhpcyBwYXRjaCB0aGF0IHR3ZWFrcyBgY3hnYjRfdGNfZmxvd2VyLmNgIGFuZCBgdDRfcmVncy5oYC4gSXQgc2VlbXMgdG8gYmUgYWRkaW5nIFFpblEgKDgwMi4xYWQpIFZMQU4gc3VwcG9ydCBieSBtb2RpZnlpbmcgYGN4Z2I0X3Byb2Nlc3NfZmxvd19tYXRjaGAsIHVzaW5nIGZ1bmN0aW9ucyBsaWtlIGB0NF93cml0ZV9yZWdgIGFuZCBgdDRfdHBfd3JfYml0c19pbmRpcmVjdGAgdG8gZGlyZWN0bHkgd3JpdGUgdG8gaGFyZHdhcmUgcmVnaXN0ZXJzLiBTdGFuZGFyZCBzdHVmZiBmb3IgZHJpdmVyIGRldmVsb3BtZW50LgoKQnV0IHdhaXQgYSBtaW51dGUuLi4gdGhpcyBpcyB0aGUgQ2hlbHNpbyBgY3hnYjRgIGRyaXZlciwgYSAqcGh5c2ljYWwqIEV0aGVybmV0IGFkYXB0ZXIgZHJpdmVyLiBNeSBpbml0aWFsIGluc3RpbmN0IGlzIHRvIHdvbmRlciBob3cgdGhpcyBjb2RlIGNvdWxkIGV2ZW4gYmUgdHJpZ2dlcmVkIGluIGEgdmlydHVhbGl6ZWQgY29udGV4dC4gSSBtZWFuLCB3ZSYjMzk7cmUgdGFsa2luZyBhYm91dCBoYXJkd2FyZSBpbnRlcmFjdGlvbnMgaGVyZS4gVW5sZXNzIHRoZXJlJiMzOTtzIGEgc29mdHdhcmUgZW11bGF0b3IgaW4gcGxhY2UsIGxpa2UgYG1hYzgwMjExX2h3c2ltYCBvciBzb21ldGhpbmcgc2ltaWxhciwgb3IgcGVyaGFwcyBhIGNvbXBsZXRlbHkgdmlydHVhbCBkcml2ZXIgbGlrZSBgdmlydGlvYCBvciBgdmV0aGAgaXMgaW52b2x2ZWQsIHRoaXMgY29kZSBwYXRoIGdlbmVyYWxseSB3b3VsZG4mIzM5O3QgYmUgYWNjZXNzaWJsZSBpbiBhIGNsb3VkIGVudmlyb25tZW50IGxpa2UgR0NFIG9yIHdpdGhpbiBRRU1VLgoKR2l2ZW4gdGhhdCBDaGVsc2lvIGBjeGdiNGAgaXMgYSBwaHlzaWNhbCBhZGFwdGVyIGRyaXZlciwgSSBuZWVkIHRvIGludmVzdGlnYXRlIGlmIHRoZXJlJiMzOTtzIGFueSBlbXVsYXRpb24gc3BlY2lmaWMgdG8gdGhpcyBkcml2ZXIuIExldCBtZSBkaWcgaW50byB0aGUga2VybmVsIHRyZWUgYW5kIHNlYXJjaCBmb3IgaW5zdGFuY2VzIG9mIGBjeGdiNGAgdG8gZ2V0IGEgYmV0dGVyIGhhbmRsZSBvbiB0aGUgc2l0dWF0aW9uLiBJIG5lZWQgdG8gdW5kZXJzdGFuZCB0aGUgcG90ZW50aWFsIGVudmlyb25tZW50IGluIHdoaWNoIHRoaXMgcGF0Y2ggd291bGQgYmUgcmVsZXZhbnQuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+NC8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMDIgMTE6MTY8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7Y3hnYjQmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtkcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0LyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtcbkZ1bGwgb3V0cHV0IGlzIHRvbyBsb25nLCBzaG93aW5nIDUwMCBvdXQgb2YgNDU5NSBsaW5lcy5cblVzZSBtb3JlIHByZWNpc2UgZXhwcmVzc2lvbiBpZiBwb3NzaWJsZS5cblxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9NYWtlZmlsZS01LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9NYWtlZmlsZTo2Om9iai0kKENPTkZJR19DSEVMU0lPX1Q0KSAmIzQzOz0gY3hnYjQub1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9NYWtlZmlsZS03LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9NYWtlZmlsZTo4OmN4Z2I0LW9ianMgOj0gY3hnYjRfbWFpbi5vIGwydC5vIHNtdC5vIHQ0X2h3Lm8gc2dlLm8gY2xpcF90YmwubyBjeGdiNF9ldGh0b29sLm8gXFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvTWFrZWZpbGU6OTpcdCAgICAgIGN4Z2I0X3VsZC5vIHNycS5vIHNjaGVkLm8gY3hnYjRfZmlsdGVyLm8gY3hnYjRfdGNfdTMyLm8gXFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvTWFrZWZpbGU6MTA6XHQgICAgICBjeGdiNF9wdHAubyBjeGdiNF90Y19mbG93ZXIubyBjeGdiNF9jdWRiZy5vIGN4Z2I0X21wcy5vIFxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L01ha2VmaWxlOjExOlx0ICAgICAgY3VkYmdfY29tbW9uLm8gY3VkYmdfbGliLm8gY3VkYmdfemxpYi5vIGN4Z2I0X3RjX21xcHJpby5vIFxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L01ha2VmaWxlOjEyOlx0ICAgICAgY3hnYjRfdGNfbWF0Y2hhbGwub1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9NYWtlZmlsZToxMzpjeGdiNC0kKENPTkZJR19DSEVMU0lPX1Q0X0RDQikgJiM0Mzs9ICBjeGdiNF9kY2Iub1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9NYWtlZmlsZToxNDpjeGdiNC0kKENPTkZJR19DSEVMU0lPX1Q0X0ZDT0UpICYjNDM7PSAgY3hnYjRfZmNvZS5vXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L01ha2VmaWxlOjE1OmN4Z2I0LSQoQ09ORklHX0RFQlVHX0ZTKSAmIzQzOz0gY3hnYjRfZGVidWdmcy5vXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L01ha2VmaWxlOjE2OmN4Z2I0LSQoQ09ORklHX1RIRVJNQUwpICYjNDM7PSBjeGdiNF90aGVybWFsLm9cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2NsaXBfdGJsLmMtMTctI2luY2x1ZGUgXHUwMDNjbmV0L2FkZHJjb25mLmhcdTAwM2VcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY2xpcF90YmwuYzoxODojaW5jbHVkZSBcJiMzNDtjeGdiNC5oXCYjMzQ7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2NsaXBfdGJsLmMtMTktI2luY2x1ZGUgXCYjMzQ7Y2xpcF90YmwuaFwmIzM0O1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY2xpcF90YmwuYz01OT1zdGF0aWMgaW50IGNsaXA2X3JlbGVhc2VfbWJveChjb25zdCBzdHJ1Y3QgbmV0X2RldmljZSAqZGV2LFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY2xpcF90YmwuYy03My1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY2xpcF90YmwuYzo3NDppbnQgY3hnYjRfY2xpcF9nZXQoY29uc3Qgc3RydWN0IG5ldF9kZXZpY2UgKmRldiwgY29uc3QgdTMyICpsaXAsIHU4IHY2KVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jbGlwX3RibC5jLTc1LXtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2NsaXBfdGJsLmMtMTQzLX1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY2xpcF90YmwuYzoxNDQ6RVhQT1JUX1NZTUJPTChjeGdiNF9jbGlwX2dldCk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2NsaXBfdGJsLmMtMTQ1LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jbGlwX3RibC5jOjE0Njp2b2lkIGN4Z2I0X2NsaXBfcmVsZWFzZShjb25zdCBzdHJ1Y3QgbmV0X2RldmljZSAqZGV2LCBjb25zdCB1MzIgKmxpcCwgdTggdjYpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2NsaXBfdGJsLmMtMTQ3LXtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2NsaXBfdGJsLmMtMTg5LX1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY2xpcF90YmwuYzoxOTA6RVhQT1JUX1NZTUJPTChjeGdiNF9jbGlwX3JlbGVhc2UpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jbGlwX3RibC5jLTE5MS1cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2NsaXBfdGJsLmMtMTk1LSAqL1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jbGlwX3RibC5jOjE5NjpzdGF0aWMgaW50IGN4Z2I0X3VwZGF0ZV9kZXZfY2xpcChzdHJ1Y3QgbmV0X2RldmljZSAqcm9vdF9kZXYsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2NsaXBfdGJsLmMtMTk3LVx0XHRcdFx0IHN0cnVjdCBuZXRfZGV2aWNlICpkZXYpXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jbGlwX3RibC5jLTIwOC1cdGxpc3RfZm9yX2VhY2hfZW50cnkoaWZhLCBcdTAwMjZpZGV2LVx1MDAzZWFkZHJfbGlzdCwgaWZfbGlzdCkge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jbGlwX3RibC5jOjIwOTpcdFx0cmV0ID0gY3hnYjRfY2xpcF9nZXQoZGV2LCAoY29uc3QgdTMyICopaWZhLVx1MDAzZWFkZHIuczZfYWRkciwgMSk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2NsaXBfdGJsLmMtMjEwLVx0XHRpZiAocmV0IFx1MDAzYyAwKVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY2xpcF90YmwuYy0yMTctXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2NsaXBfdGJsLmM6MjE4OmludCBjeGdiNF91cGRhdGVfcm9vdF9kZXZfY2xpcChzdHJ1Y3QgbmV0X2RldmljZSAqZGV2KVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jbGlwX3RibC5jLTIxOS17XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jbGlwX3RibC5jLTIyMy1cdC8qIEZpcnN0IHBvcHVsYXRlIHRoZSByZWFsIG5ldCBkZXZpY2UmIzM5O3MgSVB2NiBhZGRyZXNzZXMgKi9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY2xpcF90YmwuYzoyMjQ6XHRyZXQgPSBjeGdiNF91cGRhdGVfZGV2X2NsaXAoZGV2LCBkZXYpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jbGlwX3RibC5jLTIyNS1cdGlmIChyZXQpXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jbGlwX3RibC5jLTIzMC1cdGlmIChyb290X2Rldikge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jbGlwX3RibC5jOjIzMTpcdFx0cmV0ID0gY3hnYjRfdXBkYXRlX2Rldl9jbGlwKHJvb3RfZGV2LCBkZXYpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jbGlwX3RibC5jLTIzMi1cdFx0aWYgKHJldClcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2NsaXBfdGJsLmMtMjQwLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jbGlwX3RibC5jOjI0MTpcdFx0cmV0ID0gY3hnYjRfdXBkYXRlX2Rldl9jbGlwKHJvb3RfZGV2LCBkZXYpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jbGlwX3RibC5jLTI0Mi1cdFx0aWYgKHJldClcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2NsaXBfdGJsLmMtMjQ3LX1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY2xpcF90YmwuYzoyNDg6RVhQT1JUX1NZTUJPTChjeGdiNF91cGRhdGVfcm9vdF9kZXZfY2xpcCk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2NsaXBfdGJsLmMtMjQ5LVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY2xpcF90YmwuaD0zOT1zdHJ1Y3QgY2xpcF90YmwgKnQ0X2luaXRfY2xpcF90YmwodW5zaWduZWQgaW50IGNsaXB0X3N0YXJ0LFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jbGlwX3RibC5oLTQwLVx0XHRcdFx0ICB1bnNpZ25lZCBpbnQgY2xpcHRfZW5kKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY2xpcF90YmwuaDo0MTppbnQgY3hnYjRfY2xpcF9nZXQoY29uc3Qgc3RydWN0IG5ldF9kZXZpY2UgKmRldiwgY29uc3QgdTMyICpsaXAsIHU4IHY2KTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY2xpcF90YmwuaDo0Mjp2b2lkIGN4Z2I0X2NsaXBfcmVsZWFzZShjb25zdCBzdHJ1Y3QgbmV0X2RldmljZSAqZGV2LCBjb25zdCB1MzIgKmxpcCwgdTggdjYpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jbGlwX3RibC5oLTQzLWludCBjbGlwX3RibF9zaG93KHN0cnVjdCBzZXFfZmlsZSAqc2VxLCB2b2lkICp2KTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY2xpcF90YmwuaDo0NDppbnQgY3hnYjRfdXBkYXRlX3Jvb3RfZGV2X2NsaXAoc3RydWN0IG5ldF9kZXZpY2UgKmRldik7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2NsaXBfdGJsLmgtNDUtdm9pZCB0NF9jbGVhbnVwX2NsaXBfdGJsKHN0cnVjdCBhZGFwdGVyICphZGFwKTtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N1ZGJnX2NvbW1vbi5jLTUtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N1ZGJnX2NvbW1vbi5jOjY6I2luY2x1ZGUgXCYjMzQ7Y3hnYjQuaFwmIzM0O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jdWRiZ19jb21tb24uYy03LSNpbmNsdWRlIFwmIzM0O2N1ZGJnX2lmLmhcJiMzNDtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N1ZGJnX2xpYi5jLTktI2luY2x1ZGUgXCYjMzQ7dDRfcmVncy5oXCYjMzQ7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N1ZGJnX2xpYi5jOjEwOiNpbmNsdWRlIFwmIzM0O2N4Z2I0LmhcJiMzNDtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3VkYmdfbGliLmM6MTE6I2luY2x1ZGUgXCYjMzQ7Y3hnYjRfY3VkYmcuaFwmIzM0O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jdWRiZ19saWIuYy0xMi0jaW5jbHVkZSBcJiMzNDtjdWRiZ19pZi5oXCYjMzQ7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jdWRiZ19saWIuYy0xNi0jaW5jbHVkZSBcJiMzNDtjdWRiZ196bGliLmhcJiMzNDtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3VkYmdfbGliLmM6MTc6I2luY2x1ZGUgXCYjMzQ7Y3hnYjRfdGNfbXFwcmlvLmhcJiMzNDtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3VkYmdfbGliLmMtMTgtXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jdWRiZ196bGliLmMtNy1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3VkYmdfemxpYi5jOjg6I2luY2x1ZGUgXCYjMzQ7Y3hnYjQuaFwmIzM0O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jdWRiZ196bGliLmMtOS0jaW5jbHVkZSBcJiMzNDtjdWRiZ19pZi5oXCYjMzQ7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNC5oLTU4LSNpbmNsdWRlIFwmIzM0O3Q0X2NoaXBfdHlwZS5oXCYjMzQ7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0Lmg6NTk6I2luY2x1ZGUgXCYjMzQ7Y3hnYjRfdWxkLmhcJiMzNDtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjQuaC02MC0jaW5jbHVkZSBcJiMzNDt0NGZ3X2FwaS5oXCYjMzQ7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNC5oPTE0Mj1lbnVtIHtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0LmgtMTQ4LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNC5oOjE0OTplbnVtIGN4Z2I0X25ldGRldl90bHNfb3BzIHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjQuaC0xNTAtXHRDWEdCNF9UTFNERVZfT1BTICA9IDEsXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNC5oLTE1My1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjQuaDoxNTQ6c3RydWN0IGN4Z2I0X2Jvb3RjZmdfZGF0YSB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0LmgtMTU1LVx0X19sZTE2IHNpZ25hdHVyZTtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0LmgtMTU4LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNC5oOjE1OTpzdHJ1Y3QgY3hnYjRfcGNpcl9kYXRhIHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjQuaC0xNjAtXHRfX2xlMzIgc2lnbmF0dXJlO1x0LyogU2lnbmF0dXJlLiBUaGUgc3RyaW5nIFwmIzM0O1BDSVJcJiMzNDsgKi9cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0LmgtMTc0LS8qIEJJT1MgYm9vdCBoZWFkZXJzICovXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0Lmg6MTc1OnN0cnVjdCBjeGdiNF9wY2lfZXhwX3JvbV9oZWFkZXIge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNC5oLTE3Ni1cdF9fbGUxNiBzaWduYXR1cmU7XHQvKiBST00gU2lnbmF0dXJlLiBTaG91bGQgYmUgMHhhYTU1ICovXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNC5oPTE5Nj1lbnVtIHtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0LmgtMTk5LVx0Qk9PVF9TSUdOQVRVUkUgPSAweGFhNTUsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0Lmg6MjAwOlx0Qk9PVF9NSU5fU0laRSA9IHNpemVvZihzdHJ1Y3QgY3hnYjRfcGNpX2V4cF9yb21faGVhZGVyKSxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjQuaC0yMDEtXHRCT09UX01BWF9TSVpFID0gMTAyNCAqIEJPT1RfU0laRV9JTkMsXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNC5oPTUyNT1zdGF0aWMgaW5saW5lIHN0cnVjdCBtYm94X2NtZCAqbWJveF9jbWRfbG9nX2VudHJ5KHN0cnVjdCBtYm94X2NtZF9sb2cgKmxvZyxcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0LmgtNTM3LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNC5oOjUzODpzdHJ1Y3QgY3hnYjRfZXRodG9vbF9sYl90ZXN0IHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjQuaC01MzktXHRzdHJ1Y3QgY29tcGxldGlvbiBjb21wbGV0aW9uO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjQuaD01NTE9c3RydWN0IHRyYWNlX3BhcmFtcyB7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNC5oLTU2MS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjQuaDo1NjI6c3RydWN0IGN4Z2I0X2Z3X2RhdGEge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNC5oLTU2My1cdF9fYmUzMiBzaWduYXR1cmU7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNC5oPTY0NT1zdHJ1Y3Qgc2dlX3JzcHE7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0LmgtNjQ2LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNC5oOjY0NzojaW5jbHVkZSBcJiMzNDtjeGdiNF9kY2IuaFwmIzM0O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNC5oLTY0OC1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjQuaC02NDktI2lmZGVmIENPTkZJR19DSEVMU0lPX1Q0X0ZDT0VcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjQuaDo2NTA6I2luY2x1ZGUgXCYjMzQ7Y3hnYjRfZmNvZS5oXCYjMzQ7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0LmgtNjUxLSNlbmRpZiAvKiBDT05GSUdfQ0hFTFNJT19UNF9GQ09FICovXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNC5oPTY1Mz1zdHJ1Y3QgcG9ydF9pbmZvIHtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0LmgtNjk2LVx0c3RydWN0IG11dGV4IHZpX21pcnJvcl9tdXRleDsgLyogU3luYyBhY2Nlc3MgdG8gTWlycm9yIFZJIGluZm8gKi9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjQuaDo2OTc6XHRzdHJ1Y3QgY3hnYjRfZXRodG9vbF9sYl90ZXN0IGV0aHRvb2xfbGI7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0LmgtNjk4LX07XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNC5oPTkwNj1zdHJ1Y3Qgc2dlX3VsZF90eHFfaW5mbyB7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNC5oLTkxMi0vKiBzdHJ1Y3QgdG8gbWFpbnRhaW4gVUxEIGxpc3QgdG8gcmVhbGxvY2F0ZSBVTEQgcmVzb3VyY2VzIG9uIGhvdHBsdWcgKi9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjQuaDo5MTM6c3RydWN0IGN4Z2I0X3VsZF9saXN0IHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjQuaDo5MTQ6XHRzdHJ1Y3QgY3hnYjRfdWxkX2luZm8gdWxkX2luZm87XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0LmgtOTE1LVx0c3RydWN0IGxpc3RfaGVhZCBsaXN0X25vZGU7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0Lmg6OTE2Olx0ZW51bSBjeGdiNF91bGQgdWxkX3R5cGU7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0LmgtOTE3LX07XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNC5oPTEwODU9c3RydWN0IG1wc19lbnRyaWVzX3JlZiB7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNC5oLTEwOTItXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0Lmg6MTA5MzpzdHJ1Y3QgY3hnYjRfZXRodG9vbF9maWx0ZXJfaW5mbyB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0LmgtMTA5NC1cdHUzMiAqbG9jX2FycmF5OyAvKiBBcnJheSBob2xkaW5nIHRoZSBhY3R1YWwgVElEcyBzZXQgdG8gZmlsdGVycyAqL1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjQuaC0xMDk4LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNC5oOjEwOTk6c3RydWN0IGN4Z2I0X2V0aHRvb2xfZmlsdGVyIHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjQuaC0xMTAwLVx0dTMyIG5lbnRyaWVzOyAvKiBBZGFwdGVyIHdpZGUgbnVtYmVyIG9mIHN1cHBvcnRlZCBmaWx0ZXJzICovXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0Lmg6MTEwMTpcdHN0cnVjdCBjeGdiNF9ldGh0b29sX2ZpbHRlcl9pbmZvICpwb3J0OyAvKiBQZXIgcG9ydCBlbnRyeSAqL1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNC5oLTExMDItfTtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0Lmg9MTEwND1zdHJ1Y3QgYWRhcHRlciB7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNC5oLTExMjItXHRzdHJ1Y3QgYWRhcHRlcl9wYXJhbXMgcGFyYW1zO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNC5oOjExMjM6XHRzdHJ1Y3QgY3hnYjRfdmlydF9yZXMgdnJlcztcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjQuaC0xMTI0LVx0dW5zaWduZWQgaW50IHN3aW50cjtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0LmgtMTE0OC1cdHN0cnVjdCBzbXRfZGF0YSAqc210O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNC5oOjExNDk6XHRzdHJ1Y3QgY3hnYjRfdWxkX2luZm8gKnVsZDtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjQuaC0xMTUwLVx0dm9pZCAqdWxkX2hhbmRsZVtDWEdCNF9VTERfTUFYXTtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0LmgtMTE5Ni1cdC8qIFRDIHUzMiBvZmZsb2FkICovXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0Lmg6MTE5NzpcdHN0cnVjdCBjeGdiNF90Y191MzJfdGFibGUgKnRjX3UzMjtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjQuaC0xMTk4LVx0c3RydWN0IGNoY3Jfa3RscyBjaGNyX2t0bHM7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNC5oLTEyMjUtXHQvKiBUQyBNUVBSSU8gb2ZmbG9hZCAqL1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNC5oOjEyMjY6XHRzdHJ1Y3QgY3hnYjRfdGNfbXFwcmlvICp0Y19tcXByaW87XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0LmgtMTIyNy1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjQuaC0xMjI4LVx0LyogVEMgTUFUQ0hBTEwgY2xhc3NpZmllciBvZmZsb2FkICovXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0Lmg6MTIyOTpcdHN0cnVjdCBjeGdiNF90Y19tYXRjaGFsbCAqdGNfbWF0Y2hhbGw7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0LmgtMTIzMC1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjQuaC0xMjMxLVx0LyogRXRodG9vbCBuLXR1cGxlICovXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0Lmg6MTIzMjpcdHN0cnVjdCBjeGdiNF9ldGh0b29sX2ZpbHRlciAqZXRodG9vbF9maWx0ZXJzO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNC5oLTEyMzMtXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNC5oPTE1OTc9c3RhdGljIGlubGluZSB1bnNpZ25lZCBpbnQgcXRpbWVyX3ZhbChjb25zdCBzdHJ1Y3QgYWRhcHRlciAqYWRhcCxcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0LmgtMTYwNS0vKiBkcml2ZXIgbmFtZSB1c2VkIGZvciBldGh0b29sX2RydmluZm8gKi9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjQuaDoxNjA2OmV4dGVybiBjaGFyIGN4Z2I0X2RyaXZlcl9uYW1lW107XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0LmgtMTYwNy1cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0Lmg9MTYxMz1uZXRkZXZfdHhfdCB0NF9zdGFydF94bWl0KHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBuZXRfZGV2aWNlICpkZXYpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNC5oOjE2MTQ6aW50IGN4Z2I0X3NlbGZ0ZXN0X2xiX3BrdChzdHJ1Y3QgbmV0X2RldmljZSAqbmV0ZGV2KTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjQuaC0xNjE1LWludCB0NF9ldGhyeF9oYW5kbGVyKHN0cnVjdCBzZ2VfcnNwcSAqcSwgY29uc3QgX19iZTY0ICpyc3AsXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNC5oPTE2NDE9aW50IHQ0X3NnZV9ldGhfdHhxX2VncmVzc191cGRhdGUoc3RydWN0IGFkYXB0ZXIgKmFkYXAsIHN0cnVjdCBzZ2VfZXRoX3R4cSAqcSxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjQuaC0xNjQyLVx0XHRcdFx0IGludCBtYXhyZWNsYWltKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjQuaDoxNjQzOnZvaWQgY3hnYjRfc2V0X2V0aHRvb2xfb3BzKHN0cnVjdCBuZXRfZGV2aWNlICpuZXRkZXYpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNC5oOjE2NDQ6aW50IGN4Z2I0X3dyaXRlX3Jzcyhjb25zdCBzdHJ1Y3QgcG9ydF9pbmZvICpwaSwgY29uc3QgdTE2ICpxdWV1ZXMpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNC5oLTE2NDUtZW51bSBjcGxfdHhfdG5sX2xzb190eXBlIGN4Z2JfZW5jYXBfb2ZmbG9hZF9zdXBwb3J0ZWQoc3RydWN0IHNrX2J1ZmYgKnNrYik7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNC5oPTE3NDE9c3RhdGljIGlubGluZSBpbnQgaGFzaF9tYWNfYWRkcihjb25zdCB1OCAqYWRkcilcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0LmgtMTc1MS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjQuaDoxNzUyOmludCBjeGdiNF9zZXRfcnNwcV9pbnRyX3BhcmFtcyhzdHJ1Y3Qgc2dlX3JzcHEgKnEsIHVuc2lnbmVkIGludCB1cyxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjQuaC0xNzUzLVx0XHRcdCAgICAgICB1bnNpZ25lZCBpbnQgY250KTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjQuaD0xNzU0PXN0YXRpYyBpbmxpbmUgdm9pZCBpbml0X3JzcHEoc3RydWN0IGFkYXB0ZXIgKmFkYXAsIHN0cnVjdCBzZ2VfcnNwcSAqcSxcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0LmgtMTc1OC1cdHEtXHUwMDNlYWRhcCA9IGFkYXA7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0Lmg6MTc1OTpcdGN4Z2I0X3NldF9yc3BxX2ludHJfcGFyYW1zKHEsIHVzLCBjbnQpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNC5oLTE3NjAtXHRxLVx1MDAzZWlxZV9sZW4gPSBpcWVfc2l6ZTtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0Lmg9MjEwMD12b2lkIGZyZWVfdHhfZGVzYyhzdHJ1Y3QgYWRhcHRlciAqYWRhcCwgc3RydWN0IHNnZV90eHEgKnEsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0LmgtMjEwMS1cdFx0ICB1bnNpZ25lZCBpbnQgbiwgYm9vbCB1bm1hcCk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0Lmg6MjEwMjp2b2lkIGN4Z2I0X2Vvc3dfdHhxX2ZyZWVfZGVzYyhzdHJ1Y3QgYWRhcHRlciAqYWRhcCwgc3RydWN0IHNnZV9lb3N3X3R4cSAqdHhxLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNC5oLTIxMDMtXHRcdFx0ICAgICAgdTMyIG5kZXNjKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjQuaDoyMTA0OmludCBjeGdiNF9ldGhvZmxkX3NlbmRfZmxvd2Moc3RydWN0IG5ldF9kZXZpY2UgKmRldiwgdTMyIGVvdGlkLCB1MzIgdGMpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNC5oOjIxMDU6dm9pZCBjeGdiNF9ldGhvZmxkX3Jlc3RhcnQoc3RydWN0IHRhc2tsZXRfc3RydWN0ICp0KTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjQuaDoyMTA2OmludCBjeGdiNF9ldGhvZmxkX3J4X2hhbmRsZXIoc3RydWN0IHNnZV9yc3BxICpxLCBjb25zdCBfX2JlNjQgKnJzcCxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjQuaC0yMTA3LVx0XHRcdCAgICAgY29uc3Qgc3RydWN0IHBrdF9nbCAqc2kpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNC5oPTIxMDg9dm9pZCBmcmVlX3R4cShzdHJ1Y3QgYWRhcHRlciAqYWRhcCwgc3RydWN0IHNnZV90eHEgKnEpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNC5oOjIxMDk6dm9pZCBjeGdiNF9yZWNsYWltX2NvbXBsZXRlZF90eChzdHJ1Y3QgYWRhcHRlciAqYWRhcCxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjQuaC0yMTEwLVx0XHRcdFx0c3RydWN0IHNnZV90eHEgKnEsIGJvb2wgdW5tYXApO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNC5oOjIxMTE6aW50IGN4Z2I0X21hcF9za2Ioc3RydWN0IGRldmljZSAqZGV2LCBjb25zdCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNC5oLTIxMTItXHRcdCAgZG1hX2FkZHJfdCAqYWRkcik7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0Lmg6MjExMzp2b2lkIGN4Z2I0X2lubGluZV90eF9za2IoY29uc3Qgc3RydWN0IHNrX2J1ZmYgKnNrYiwgY29uc3Qgc3RydWN0IHNnZV90eHEgKnEsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0LmgtMjExNC1cdFx0XHQgdm9pZCAqcG9zKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjQuaDoyMTE1OnZvaWQgY3hnYjRfd3JpdGVfc2dsKGNvbnN0IHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBzZ2VfdHhxICpxLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNC5oLTIxMTYtXHRcdCAgICAgc3RydWN0IHVscHR4X3NnbCAqc2dsLCB1NjQgKmVuZCwgdW5zaWduZWQgaW50IHN0YXJ0LFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNC5oLTIxMTctXHRcdCAgICAgY29uc3QgZG1hX2FkZHJfdCAqYWRkcik7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0Lmg6MjExODp2b2lkIGN4Z2I0X3dyaXRlX3BhcnRpYWxfc2dsKGNvbnN0IHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBzZ2VfdHhxICpxLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNC5oLTIxMTktXHRcdFx0ICAgICBzdHJ1Y3QgdWxwdHhfc2dsICpzZ2wsIHU2NCAqZW5kLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNC5oLTIxMjAtXHRcdFx0ICAgICBjb25zdCBkbWFfYWRkcl90ICphZGRyLCB1MzIgc3RhcnQsIHUzMiBzZW5kX2xlbik7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0Lmg6MjEyMTp2b2lkIGN4Z2I0X3JpbmdfdHhfZGIoc3RydWN0IGFkYXB0ZXIgKmFkYXAsIHN0cnVjdCBzZ2VfdHhxICpxLCBpbnQgbik7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0LmgtMjEyMi1pbnQgdDRfc2V0X3ZsYW5fYWNsKHN0cnVjdCBhZGFwdGVyICphZGFwLCB1bnNpZ25lZCBpbnQgbWJveCwgdW5zaWduZWQgaW50IHZmLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNC5oLTIxMjMtXHRcdCAgICB1MTYgdmxhbik7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0Lmg6MjEyNDppbnQgY3hnYjRfZGNiX2VuYWJsZWQoY29uc3Qgc3RydWN0IG5ldF9kZXZpY2UgKmRldik7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0LmgtMjEyNS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjQuaDoyMTI2OmludCBjeGdiNF90aGVybWFsX2luaXQoc3RydWN0IGFkYXB0ZXIgKmFkYXApO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNC5oOjIxMjc6aW50IGN4Z2I0X3RoZXJtYWxfcmVtb3ZlKHN0cnVjdCBhZGFwdGVyICphZGFwKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjQuaDoyMTI4OmludCBjeGdiNF9zZXRfbXNpeF9hZmYoc3RydWN0IGFkYXB0ZXIgKmFkYXAsIHVuc2lnbmVkIHNob3J0IHZlYyxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjQuaC0yMTI5LVx0XHQgICAgICAgY3B1bWFza192YXJfdCAqYWZmX21hc2ssIGludCBpZHgpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNC5oOjIxMzA6dm9pZCBjeGdiNF9jbGVhcl9tc2l4X2FmZih1bnNpZ25lZCBzaG9ydCB2ZWMsIGNwdW1hc2tfdmFyX3QgYWZmX21hc2spO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNC5oLTIxMzEtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0Lmg6MjEzMjppbnQgY3hnYjRfY2hhbmdlX21hYyhzdHJ1Y3QgcG9ydF9pbmZvICpwaSwgdW5zaWduZWQgaW50IHZpaWQsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0LmgtMjEzMy1cdFx0ICAgICBpbnQgKnRjYW1faWR4LCBjb25zdCB1OCAqYWRkcixcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0LmgtMjEzNS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjQuaDoyMTM2OmludCBjeGdiNF9hbGxvY19tYWNfZmlsdChzdHJ1Y3QgYWRhcHRlciAqYWRhcCwgdW5zaWduZWQgaW50IHZpaWQsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0LmgtMjEzNy1cdFx0XHQgYm9vbCBmcmVlLCB1bnNpZ25lZCBpbnQgbmFkZHIsXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNC5oLTIxMzktXHRcdFx0IHU2NCAqaGFzaCwgYm9vbCBzbGVlcF9vayk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0Lmg6MjE0MDppbnQgY3hnYjRfZnJlZV9tYWNfZmlsdChzdHJ1Y3QgYWRhcHRlciAqYWRhcCwgdW5zaWduZWQgaW50IHZpaWQsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0LmgtMjE0MS1cdFx0XHR1bnNpZ25lZCBpbnQgbmFkZHIsIGNvbnN0IHU4ICoqYWRkciwgYm9vbCBzbGVlcF9vayk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0Lmg6MjE0MjppbnQgY3hnYjRfaW5pdF9tcHNfcmVmX2VudHJpZXMoc3RydWN0IGFkYXB0ZXIgKmFkYXApO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNC5oOjIxNDM6dm9pZCBjeGdiNF9mcmVlX21wc19yZWZfZW50cmllcyhzdHJ1Y3QgYWRhcHRlciAqYWRhcCk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0Lmg6MjE0NDppbnQgY3hnYjRfdXBkYXRlX21hY19maWx0KHN0cnVjdCBwb3J0X2luZm8gKnBpLCB1bnNpZ25lZCBpbnQgdmlpZCxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjQuaC0yMTQ1LVx0XHRcdCAgaW50ICp0Y2FtX2lkeCwgY29uc3QgdTggKmFkZHIsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0LmgtMjE0Ni1cdFx0XHQgIGJvb2wgcGVyc2lzdGVudCwgdTggKnNtdF9pZHgpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNC5oOjIxNDc6aW50IGN4Z2I0X2dldF9tc2l4X2lkeF9mcm9tX2JtYXAoc3RydWN0IGFkYXB0ZXIgKmFkYXApO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNC5oOjIxNDg6dm9pZCBjeGdiNF9mcmVlX21zaXhfaWR4X2luX2JtYXAoc3RydWN0IGFkYXB0ZXIgKmFkYXAsIHUzMiBtc2l4X2lkeCk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0Lmg6MjE0OTp2b2lkIGN4Z2I0X2VuYWJsZV9yeChzdHJ1Y3QgYWRhcHRlciAqYWRhcCwgc3RydWN0IHNnZV9yc3BxICpxKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjQuaDoyMTUwOnZvaWQgY3hnYjRfcXVpZXNjZV9yeChzdHJ1Y3Qgc2dlX3JzcHEgKnEpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNC5oOjIxNTE6aW50IGN4Z2I0X3BvcnRfbWlycm9yX2FsbG9jKHN0cnVjdCBuZXRfZGV2aWNlICpkZXYpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNC5oOjIxNTI6dm9pZCBjeGdiNF9wb3J0X21pcnJvcl9mcmVlKHN0cnVjdCBuZXRfZGV2aWNlICpkZXYpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNC5oLTIxNTMtI2lmIElTX0VOQUJMRUQoQ09ORklHX0NIRUxTSU9fVExTX0RFVklDRSlcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjQuaDoyMTU0OmludCBjeGdiNF9zZXRfa3Rsc19mZWF0dXJlKHN0cnVjdCBhZGFwdGVyICphZGFwLCBib29sIGVuYWJsZSk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0LmgtMjE1NS0jZW5kaWZcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0X2N1ZGJnLmMtNi0jaW5jbHVkZSBcJiMzNDt0NF9yZWdzLmhcJiMzNDtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjRfY3VkYmcuYzo3OiNpbmNsdWRlIFwmIzM0O2N4Z2I0LmhcJiMzNDtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjRfY3VkYmcuYzo4OiNpbmNsdWRlIFwmIzM0O2N4Z2I0X2N1ZGJnLmhcJiMzNDtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjRfY3VkYmcuYy05LSNpbmNsdWRlIFwmIzM0O2N1ZGJnX3psaWIuaFwmIzM0O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNF9jdWRiZy5jLTEwLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNF9jdWRiZy5jOjExOnN0YXRpYyBjb25zdCBzdHJ1Y3QgY3hnYjRfY29sbGVjdF9lbnRpdHkgY3hnYjRfY29sbGVjdF9tZW1fZHVtcFtdID0ge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNF9jdWRiZy5jLTEyLVx0eyBDVURCR19FREMwLCBjdWRiZ19jb2xsZWN0X2VkYzBfbWVtaW5mbyB9LFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjRfY3VkYmcuYy0xOC1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjRfY3VkYmcuYzoxOTpzdGF0aWMgY29uc3Qgc3RydWN0IGN4Z2I0X2NvbGxlY3RfZW50aXR5IGN4Z2I0X2NvbGxlY3RfaHdfZHVtcFtdID0ge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNF9jdWRiZy5jLTIwLVx0eyBDVURCR19NQk9YX0xPRywgY3VkYmdfY29sbGVjdF9tYm94X2xvZyB9LFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjRfY3VkYmcuYy02OC1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjRfY3VkYmcuYzo2OTpzdGF0aWMgY29uc3Qgc3RydWN0IGN4Z2I0X2NvbGxlY3RfZW50aXR5IGN4Z2I0X2NvbGxlY3RfZmxhc2hfZHVtcFtdID0ge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNF9jdWRiZy5jLTcwLVx0eyBDVURCR19GTEFTSCwgY3VkYmdfY29sbGVjdF9mbGFzaCB9LFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjRfY3VkYmcuYy03Mi1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjRfY3VkYmcuYzo3Mzp1MzIgY3hnYjRfZ2V0X2R1bXBfbGVuZ3RoKHN0cnVjdCBhZGFwdGVyICphZGFwLCB1MzIgZmxhZylcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjRfY3VkYmcuYy03NC17XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNF9jdWRiZy5jLTc5LVx0aWYgKGZsYWcgXHUwMDI2IENYR0I0X0VUSF9EVU1QX0hXKSB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0X2N1ZGJnLmM6ODA6XHRcdGZvciAoaSA9IDA7IGkgXHUwMDNjIEFSUkFZX1NJWkUoY3hnYjRfY29sbGVjdF9od19kdW1wKTsgaSYjNDM7JiM0MzspIHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjRfY3VkYmcuYzo4MTpcdFx0XHRlbnRpdHkgPSBjeGdiNF9jb2xsZWN0X2h3X2R1bXBbaV0uZW50aXR5O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNF9jdWRiZy5jLTgyLVx0XHRcdGxlbiAmIzQzOz0gY3VkYmdfZ2V0X2VudGl0eV9sZW5ndGgoYWRhcCwgZW50aXR5KTtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0X2N1ZGJnLmMtODYtXHRpZiAoZmxhZyBcdTAwMjYgQ1hHQjRfRVRIX0RVTVBfTUVNKSB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0X2N1ZGJnLmM6ODc6XHRcdGZvciAoaSA9IDA7IGkgXHUwMDNjIEFSUkFZX1NJWkUoY3hnYjRfY29sbGVjdF9tZW1fZHVtcCk7IGkmIzQzOyYjNDM7KSB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0X2N1ZGJnLmM6ODg6XHRcdFx0ZW50aXR5ID0gY3hnYjRfY29sbGVjdF9tZW1fZHVtcFtpXS5lbnRpdHk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0X2N1ZGJnLmMtODktXHRcdFx0bGVuICYjNDM7PSBjdWRiZ19nZXRfZW50aXR5X2xlbmd0aChhZGFwLCBlbnRpdHkpO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjRfY3VkYmcuYy0xMDMtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0X2N1ZGJnLmM6MTA0OnN0YXRpYyB2b2lkIGN4Z2I0X2N1ZGJnX2NvbGxlY3RfZW50aXR5KHN0cnVjdCBjdWRiZ19pbml0ICpwZGJnX2luaXQsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0X2N1ZGJnLmMtMTA1LVx0XHRcdFx0ICAgICAgIHN0cnVjdCBjdWRiZ19idWZmZXIgKmRiZ19idWZmLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNF9jdWRiZy5jOjEwNjpcdFx0XHRcdCAgICAgICBjb25zdCBzdHJ1Y3QgY3hnYjRfY29sbGVjdF9lbnRpdHkgKmVfYXJyLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNF9jdWRiZy5jLTEwNy1cdFx0XHRcdCAgICAgICB1MzIgYXJyX3NpemUsIHZvaWQgKmJ1ZiwgdTMyICp0b3Rfc2l6ZSlcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0X2N1ZGJnLmMtMTE0LVx0Zm9yIChpID0gMDsgaSBcdTAwM2MgYXJyX3NpemU7IGkmIzQzOyYjNDM7KSB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0X2N1ZGJnLmM6MTE1Olx0XHRjb25zdCBzdHJ1Y3QgY3hnYjRfY29sbGVjdF9lbnRpdHkgKmUgPSBcdTAwMjZlX2FycltpXTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjRfY3VkYmcuYy0xMTYtXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNF9jdWRiZy5jPTE1OD1zdGF0aWMgdm9pZCBjdWRiZ19mcmVlX2NvbXByZXNzX2J1ZmYoc3RydWN0IGN1ZGJnX2luaXQgKnBkYmdfaW5pdClcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0X2N1ZGJnLmMtMTYyLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNF9jdWRiZy5jOjE2MzppbnQgY3hnYjRfY3VkYmdfY29sbGVjdChzdHJ1Y3QgYWRhcHRlciAqYWRhcCwgdm9pZCAqYnVmLCB1MzIgKmJ1Zl9zaXplLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNF9jdWRiZy5jLTE2NC1cdFx0XHR1MzIgZmxhZylcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0X2N1ZGJnLmMtMjE5LVx0aWYgKGZsYWcgXHUwMDI2IENYR0I0X0VUSF9EVU1QX0hXKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNF9jdWRiZy5jOjIyMDpcdFx0Y3hnYjRfY3VkYmdfY29sbGVjdF9lbnRpdHkoXHUwMDI2Y3VkYmdfaW5pdCwgXHUwMDI2ZGJnX2J1ZmYsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0X2N1ZGJnLmM6MjIxOlx0XHRcdFx0XHQgICBjeGdiNF9jb2xsZWN0X2h3X2R1bXAsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0X2N1ZGJnLmM6MjIyOlx0XHRcdFx0XHQgICBBUlJBWV9TSVpFKGN4Z2I0X2NvbGxlY3RfaHdfZHVtcCksXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0X2N1ZGJnLmMtMjIzLVx0XHRcdFx0XHQgICBidWYsXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNF9jdWRiZy5jLTIyNi1cdGlmIChmbGFnIFx1MDAyNiBDWEdCNF9FVEhfRFVNUF9NRU0pXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0X2N1ZGJnLmM6MjI3Olx0XHRjeGdiNF9jdWRiZ19jb2xsZWN0X2VudGl0eShcdTAwMjZjdWRiZ19pbml0LCBcdTAwMjZkYmdfYnVmZixcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjRfY3VkYmcuYzoyMjg6XHRcdFx0XHRcdCAgIGN4Z2I0X2NvbGxlY3RfbWVtX2R1bXAsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0X2N1ZGJnLmM6MjI5Olx0XHRcdFx0XHQgICBBUlJBWV9TSVpFKGN4Z2I0X2NvbGxlY3RfbWVtX2R1bXApLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNF9jdWRiZy5jLTIzMC1cdFx0XHRcdFx0ICAgYnVmLFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjRfY3VkYmcuYy0yMzMtXHRpZiAoZmxhZyBcdTAwMjYgQ1hHQjRfRVRIX0RVTVBfRkxBU0gpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0X2N1ZGJnLmM6MjM0Olx0XHRjeGdiNF9jdWRiZ19jb2xsZWN0X2VudGl0eShcdTAwMjZjdWRiZ19pbml0LCBcdTAwMjZkYmdfYnVmZixcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjRfY3VkYmcuYzoyMzU6XHRcdFx0XHRcdCAgIGN4Z2I0X2NvbGxlY3RfZmxhc2hfZHVtcCxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjRfY3VkYmcuYzoyMzY6XHRcdFx0XHRcdCAgIEFSUkFZX1NJWkUoY3hnYjRfY29sbGVjdF9mbGFzaF9kdW1wKSxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjRfY3VkYmcuYy0yMzctXHRcdFx0XHRcdCAgIGJ1Zixcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0X2N1ZGJnLmMtMjQ4LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNF9jdWRiZy5jOjI0OTp2b2lkIGN4Z2I0X2luaXRfZXRodG9vbF9kdW1wKHN0cnVjdCBhZGFwdGVyICphZGFwdGVyKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNF9jdWRiZy5jLTI1MC17XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNF9jdWRiZy5jLTI1NS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjRfY3VkYmcuYzoyNTY6c3RhdGljIGludCBjeGdiNF9jdWRiZ192bWNvcmVkZF9jb2xsZWN0KHN0cnVjdCB2bWNvcmVkZF9kYXRhICpkYXRhLCB2b2lkICpidWYpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0X2N1ZGJnLmMtMjU3LXtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0X2N1ZGJnLmMtMjYwLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNF9jdWRiZy5jOjI2MTpcdHJldHVybiBjeGdiNF9jdWRiZ19jb2xsZWN0KGFkYXAsIGJ1ZiwgXHUwMDI2bGVuLCBDWEdCNF9FVEhfRFVNUF9BTEwpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNF9jdWRiZy5jLTI2Mi19XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0X2N1ZGJnLmMtMjYzLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNF9jdWRiZy5jOjI2NDppbnQgY3hnYjRfY3VkYmdfdm1jb3JlX2FkZF9kdW1wKHN0cnVjdCBhZGFwdGVyICphZGFwKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNF9jdWRiZy5jLTI2NS17XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNF9jdWRiZy5jLTI3NC1cdHNucHJpbnRmKGRhdGEtXHUwMDNlZHVtcF9uYW1lLCBzaXplb2YoZGF0YS1cdTAwM2VkdW1wX25hbWUpLCBcJiMzNDslc18lc1wmIzM0OyxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjRfY3VkYmcuYzoyNzU6XHRcdCBjeGdiNF9kcml2ZXJfbmFtZSwgYWRhcC1cdTAwM2VuYW1lKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjRfY3VkYmcuYzoyNzY6XHRkYXRhLVx1MDAzZXZtY29yZWRkX2NhbGxiYWNrID0gY3hnYjRfY3VkYmdfdm1jb3JlZGRfY29sbGVjdDtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjRfY3VkYmcuYy0yNzctXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNF9jdWRiZy5oPTE3PXR5cGVkZWYgaW50ICgqY3VkYmdfY29sbGVjdF9jYWxsYmFja190KShzdHJ1Y3QgY3VkYmdfaW5pdCAqcGRiZ19pbml0LFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjRfY3VkYmcuaC0yMC1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjRfY3VkYmcuaDoyMTpzdHJ1Y3QgY3hnYjRfY29sbGVjdF9lbnRpdHkge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNF9jdWRiZy5oLTIyLVx0ZW51bSBjdWRiZ19kYmdfZW50aXR5X3R5cGUgZW50aXR5O1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjRfY3VkYmcuaD0yNj1lbnVtIENYR0I0X0VUSFRPT0xfRFVNUF9GTEFHUyB7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNF9jdWRiZy5oLTM0LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNF9jdWRiZy5oOjM1OnUzMiBjeGdiNF9nZXRfZHVtcF9sZW5ndGgoc3RydWN0IGFkYXB0ZXIgKmFkYXAsIHUzMiBmbGFnKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjRfY3VkYmcuaDozNjppbnQgY3hnYjRfY3VkYmdfY29sbGVjdChzdHJ1Y3QgYWRhcHRlciAqYWRhcCwgdm9pZCAqYnVmLCB1MzIgKmJ1Zl9zaXplLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNF9jdWRiZy5oLTM3LVx0XHRcdHUzMiBmbGFnKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjRfY3VkYmcuaDozODp2b2lkIGN4Z2I0X2luaXRfZXRodG9vbF9kdW1wKHN0cnVjdCBhZGFwdGVyICphZGFwdGVyKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjRfY3VkYmcuaDozOTppbnQgY3hnYjRfY3VkYmdfdm1jb3JlX2FkZF9kdW1wKHN0cnVjdCBhZGFwdGVyICphZGFwKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjRfY3VkYmcuaC00MC0jZW5kaWYgLyogX19DWEdCNF9DVURCR19IX18gKi9cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0X2RjYi5jLTgtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0X2RjYi5jOjk6I2luY2x1ZGUgXCYjMzQ7Y3hnYjQuaFwmIzM0O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNF9kY2IuYy0xMC1cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0X2RjYi5jPTEzPWNvbnN0IGNoYXIgKiBjb25zdCBkY2JfdmVyX2FycmF5W10gPSB7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNF9kY2IuYy0yMS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjRfZGNiLmM6MjI6c3RhdGljIGlubGluZSBib29sIGN4Z2I0X2RjYl9zdGF0ZV9zeW5jZWQoZW51bSBjeGdiNF9kY2Jfc3RhdGUgc3RhdGUpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0X2RjYi5jLTIzLXtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0X2RjYi5jLTMyLSAqL1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNF9kY2IuYzozMzp2b2lkIGN4Z2I0X2RjYl9zdGF0ZV9pbml0KHN0cnVjdCBuZXRfZGV2aWNlICpkZXYpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0X2RjYi5jLTM0LXtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0X2RjYi5jLTQ3LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNF9kY2IuYzo0ODp2b2lkIGN4Z2I0X2RjYl92ZXJzaW9uX2luaXQoc3RydWN0IG5ldF9kZXZpY2UgKmRldilcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjRfZGNiLmMtNDkte1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjRfZGNiLmMtNTgtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0X2RjYi5jOjU5OnN0YXRpYyB2b2lkIGN4Z2I0X2RjYl9jbGVhbnVwX2FwcHMoc3RydWN0IG5ldF9kZXZpY2UgKmRldilcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjRfZGNiLmMtNjAte1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjRfZGNiLmMtOTgtICovXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0X2RjYi5jOjk5OnZvaWQgY3hnYjRfZGNiX3Jlc2V0KHN0cnVjdCBuZXRfZGV2aWNlICpkZXYpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0X2RjYi5jLTEwMC17XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0X2RjYi5jOjEwMTpcdGN4Z2I0X2RjYl9jbGVhbnVwX2FwcHMoZGV2KTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjRfZGNiLmM6MTAyOlx0Y3hnYjRfZGNiX3N0YXRlX2luaXQoZGV2KTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjRfZGNiLmMtMTAzLX1cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0X2RjYi5jLTEwOS0gKi9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjRfZGNiLmM6MTEwOnN0YXRpYyBpbmxpbmUgdm9pZCBjeGdiNF9kY2JfdXBkYXRlX3N1cHBvcnQoc3RydWN0IHBvcnRfZGNiX2luZm8gKmRjYilcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjRfZGNiLmMtMTExLXtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0X2RjYi5jLTEyNC0gKi9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjRfZGNiLmM6MTI1OnZvaWQgY3hnYjRfZGNiX3N0YXRlX2ZzbShzdHJ1Y3QgbmV0X2RldmljZSAqZGV2LFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNF9kY2IuYzoxMjY6XHRcdFx0IGVudW0gY3hnYjRfZGNiX3N0YXRlX2lucHV0IHRyYW5zaXRpb25fdG8pXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0X2RjYi5jLTEyNy17XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNF9kY2IuYy0xMzAtXHRzdHJ1Y3QgYWRhcHRlciAqYWRhcCA9IHBpLVx1MDAzZWFkYXB0ZXI7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0X2RjYi5jOjEzMTpcdGVudW0gY3hnYjRfZGNiX3N0YXRlIGN1cnJlbnRfc3RhdGUgPSBkY2ItXHUwMDNlc3RhdGU7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0X2RjYi5jLTEzMi1cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0X2RjYi5jLTE4MC1cdFx0XHQgKi9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjRfZGNiLmM6MTgxOlx0XHRcdGN4Z2I0X2RjYl91cGRhdGVfc3VwcG9ydChkY2IpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNF9kY2IuYy0xODItXHRcdH1cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0X2RjYi5jLTIxOS1cdFx0XHQgKi9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjRfZGNiLmM6MjIwOlx0XHRcdGN4Z2I0X2RjYl9yZXNldChkZXYpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNF9kY2IuYy0yMjEtXHRcdFx0ZGNiLVx1MDAzZXN0YXRlID0gQ1hHQjRfRENCX1NUQVRFX0ZXX0lOQ09NUExFVEU7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNF9kY2IuYy0yNjEtYmFkX3N0YXRlX2lucHV0OlxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNF9kY2IuYzoyNjI6XHRkZXZfZXJyKGFkYXAtXHUwMDNlcGRldl9kZXYsIFwmIzM0O2N4Z2I0X2RjYl9zdGF0ZV9mc206IGlsbGVnYWwgaW5wdXQgc3ltYm9sICVkXFxuXCYjMzQ7LFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNF9kY2IuYy0yNjMtXHRcdHRyYW5zaXRpb25fdG8pO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjRfZGNiLmMtMjY2LWJhZF9zdGF0ZV90cmFuc2l0aW9uOlxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNF9kY2IuYzoyNjc6XHRkZXZfZXJyKGFkYXAtXHUwMDNlcGRldl9kZXYsIFwmIzM0O2N4Z2I0X2RjYl9zdGF0ZV9mc206IGJhZCBzdGF0ZSB0cmFuc2l0aW9uLCBzdGF0ZSA9ICVkLCBpbnB1dCA9ICVkXFxuXCYjMzQ7LFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNF9kY2IuYy0yNjgtXHRcdGN1cnJlbnRfc3RhdGUsIHRyYW5zaXRpb25fdG8pO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjRfZGNiLmMtMjcyLSAqL1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNF9kY2IuYzoyNzM6dm9pZCBjeGdiNF9kY2JfaGFuZGxlX2Z3X3VwZGF0ZShzdHJ1Y3QgYWRhcHRlciAqYWRhcCxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjRfZGNiLmMtMjc0LVx0XHRcdFx0Y29uc3Qgc3RydWN0IGZ3X3BvcnRfY21kICpwY21kKVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjRfZGNiLmMtMjg3LVx0aWYgKGRjYl90eXBlID09IEZXX1BPUlRfRENCX1RZUEVfQ09OVFJPTCkge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNF9kY2IuYzoyODg6XHRcdGVudW0gY3hnYjRfZGNiX3N0YXRlX2lucHV0IGlucHV0ID1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjRfZGNiLmMtMjg5LVx0XHRcdCgocGNtZC1cdTAwM2V1LmRjYi5jb250cm9sLmFsbF9zeW5jZF9wa2QgXHUwMDI2XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNF9kY2IuYy0zMTItXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0X2RjYi5jOjMxMzpcdFx0Y3hnYjRfZGNiX3N0YXRlX2ZzbShkZXYsIGlucHV0KTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjRfZGNiLmMtMzE0LVx0XHRyZXR1cm47XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNF9kY2IuYy00MTAtICovXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0X2RjYi5jOjQxMTpzdGF0aWMgdTggY3hnYjRfZ2V0c3RhdGUoc3RydWN0IG5ldF9kZXZpY2UgKmRldilcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjRfZGNiLmMtNDEyLXtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0X2RjYi5jLTQxOS0gKi9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjRfZGNiLmM6NDIwOnN0YXRpYyB1OCBjeGdiNF9zZXRzdGF0ZShzdHJ1Y3QgbmV0X2RldmljZSAqZGV2LCB1OCBlbmFibGVkKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNF9kY2IuYy00MjEte1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjRfZGNiLmMtNDM3LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNF9kY2IuYzo0Mzg6c3RhdGljIHZvaWQgY3hnYjRfZ2V0cGd0Y2NmZyhzdHJ1Y3QgbmV0X2RldmljZSAqZGV2LCBpbnQgdGMsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0X2RjYi5jLTQzOS1cdFx0XHQgICAgIHU4ICpwcmlvX3R5cGUsIHU4ICpwZ2lkLCB1OCAqYndfcGVyLFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjRfZGNiLmMtNDgxLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNF9kY2IuYzo0ODI6c3RhdGljIHZvaWQgY3hnYjRfZ2V0cGd0Y2NmZ190eChzdHJ1Y3QgbmV0X2RldmljZSAqZGV2LCBpbnQgdGMsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0X2RjYi5jLTQ4My1cdFx0XHRcdHU4ICpwcmlvX3R5cGUsIHU4ICpwZ2lkLCB1OCAqYndfcGVyLFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjRfZGNiLmMtNDg2LVx0LyogdGMgMCBpcyB3cml0dGVuIGF0IE1TQiBwb3NpdGlvbiAqL1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNF9kY2IuYzo0ODc6XHRyZXR1cm4gY3hnYjRfZ2V0cGd0Y2NmZyhkZXYsICg3IC0gdGMpLCBwcmlvX3R5cGUsIHBnaWQsIGJ3X3BlcixcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjRfZGNiLmMtNDg4LVx0XHRcdFx0dXBfdGNfbWFwLCAxKTtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0X2RjYi5jLTQ5MS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjRfZGNiLmM6NDkyOnN0YXRpYyB2b2lkIGN4Z2I0X2dldHBndGNjZmdfcngoc3RydWN0IG5ldF9kZXZpY2UgKmRldiwgaW50IHRjLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNF9kY2IuYy00OTMtXHRcdFx0XHR1OCAqcHJpb190eXBlLCB1OCAqcGdpZCwgdTggKmJ3X3Blcixcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0X2RjYi5jLTQ5Ni1cdC8qIHRjIDAgaXMgd3JpdHRlbiBhdCBNU0IgcG9zaXRpb24gKi9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjRfZGNiLmM6NDk3Olx0cmV0dXJuIGN4Z2I0X2dldHBndGNjZmcoZGV2LCAoNyAtIHRjKSwgcHJpb190eXBlLCBwZ2lkLCBid19wZXIsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0X2RjYi5jLTQ5OC1cdFx0XHRcdHVwX3RjX21hcCwgMCk7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNF9kY2IuYy01MDAtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0X2RjYi5jOjUwMTpzdGF0aWMgdm9pZCBjeGdiNF9zZXRwZ3RjY2ZnX3R4KHN0cnVjdCBuZXRfZGV2aWNlICpkZXYsIGludCB0YyxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjRfZGNiLmMtNTAyLVx0XHRcdFx0dTggcHJpb190eXBlLCB1OCBwZ2lkLCB1OCBid19wZXIsXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNF9kY2IuYy01NjMtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0X2RjYi5jOjU2NDpzdGF0aWMgdm9pZCBjeGdiNF9nZXRwZ2J3Z2NmZyhzdHJ1Y3QgbmV0X2RldmljZSAqZGV2LCBpbnQgcGdpZCwgdTggKmJ3X3BlcixcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjRfZGNiLmMtNTY1LVx0XHRcdCAgICAgIGludCBsb2NhbClcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0X2RjYi5jLTU4Ny1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjRfZGNiLmM6NTg4OnN0YXRpYyB2b2lkIGN4Z2I0X2dldHBnYndnY2ZnX3R4KHN0cnVjdCBuZXRfZGV2aWNlICpkZXYsIGludCBwZ2lkLCB1OCAqYndfcGVyKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNF9kY2IuYy01ODkte1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNF9kY2IuYzo1OTA6XHRyZXR1cm4gY3hnYjRfZ2V0cGdid2djZmcoZGV2LCBwZ2lkLCBid19wZXIsIDEpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNF9kY2IuYy01OTEtfVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNF9kY2IuYy01OTItXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0X2RjYi5jOjU5MzpzdGF0aWMgdm9pZCBjeGdiNF9nZXRwZ2J3Z2NmZ19yeChzdHJ1Y3QgbmV0X2RldmljZSAqZGV2LCBpbnQgcGdpZCwgdTggKmJ3X3BlcilcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjRfZGNiLmMtNTk0LXtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjRfZGNiLmM6NTk1Olx0cmV0dXJuIGN4Z2I0X2dldHBnYndnY2ZnKGRldiwgcGdpZCwgYndfcGVyLCAwKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjRfZGNiLmMtNTk2LX1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjRfZGNiLmMtNTk3LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNF9kY2IuYzo1OTg6c3RhdGljIHZvaWQgY3hnYjRfc2V0cGdid2djZmdfdHgoc3RydWN0IG5ldF9kZXZpY2UgKmRldiwgaW50IHBnaWQsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0X2RjYi5jLTU5OS1cdFx0XHRcdCB1OCBid19wZXIpXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNF9kY2IuYy02MzEtICovXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0X2RjYi5jOjYzMjpzdGF0aWMgdm9pZCBjeGdiNF9nZXRwZmNjZmcoc3RydWN0IG5ldF9kZXZpY2UgKmRldiwgaW50IHByaW9yaXR5LCB1OCAqcGZjY2ZnKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNF9kY2IuYy02MzMte1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjRfZGNiLmMtNjM2LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNF9kY2IuYzo2Mzc6XHRpZiAoIWN4Z2I0X2RjYl9zdGF0ZV9zeW5jZWQoZGNiLVx1MDAzZXN0YXRlKSB8fFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNF9kY2IuYy02MzgtXHQgICAgcHJpb3JpdHkgXHUwMDNlPSBDWEdCNF9NQVhfUFJJT1JJVFkpXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNF9kY2IuYy02NDYtICovXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0X2RjYi5jOjY0NzpzdGF0aWMgdm9pZCBjeGdiNF9zZXRwZmNjZmcoc3RydWN0IG5ldF9kZXZpY2UgKmRldiwgaW50IHByaW9yaXR5LCB1OCBwZmNjZmcpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0X2RjYi5jLTY0OC17XG5cbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD41LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8wMiAxMToxNjwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAxOTgxMwoJCQkJCQkJb3V0cHV0OiA0MAoJCQkJCQkJdGhvdWdodHM6IDg4CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKkludmVzdGlnYXRpbmcgQ2hlbHNpbyBUNC9UNS9UNiBBZGFwdGVyIEVtdWxhdGlvbioqCgpPa2F5LCBzbyBJJiMzOTttIGxvb2tpbmcgYXQgdGhlIGBjeGdiNGAgZHJpdmVyLCB3aGljaCBoYW5kbGVzIHRob3NlIENoZWxzaW8gVDQvVDUvVDYgYWRhcHRlcnMuIFRoZSBxdWVzdGlvbiBpbW1lZGlhdGVseSBwb3BzIGludG8gbXkgaGVhZDogaXMgdGhlcmUgYW55IGtpbmQgb2YgZW11bGF0aW9uIGF2YWlsYWJsZSBmb3IgdGhpcyBoYXJkd2FyZT8gSXQmIzM5O3Mgbm90IHRoZSBtb3N0IGNvbW1vbiBhcmVhIGZvciB2aXJ0dWFsaXphdGlvbiwgc28gSSYjMzk7bSBub3QgaG9sZGluZyBteSBicmVhdGguIEkgc2hvdWxkIHZlcmlmeSBpZiB0aGVyZSYjMzk7cyBhIHZpcnR1YWwgZHJpdmVyIG9yIHNvbWUgc29mdHdhcmUgZW11bGF0aW9uIGxheWVyIHRoYXQgbWlnaHQgZXhpc3QuCgpLbm93aW5nIENoZWxzaW8sIHRob3VnaCwgbXkgaW5pdGlhbCBpbnN0aW5jdCBpcyB0aGF0LCBwcm9iYWJseSBub3QsIGJ1dCBpdCYjMzk7cyB3b3J0aCBhIHF1aWNrIGNoZWNrIHRvIGVuc3VyZSBJIGFtIHVwIHRvIGRhdGUuIFRoZSBgZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9LY29uZmlnYCBmaWxlIGlzIHRoZSBwbGFjZSB0byBzdGFydC4gSSYjMzk7bGwgc2VlIGlmIGl0IGhhcyBhbnkgZXhwbGljaXQgZGVwZW5kZW5jaWVzLCBsaWtlIFBDSS4gVGhhdCB3aWxsIGdpdmUgYSBjbGVhciBpbmRpY2F0aW9uIG9mIGlmIGl0IGNhbiBydW4gd2l0aGluIGEgdmlydHVhbGl6ZWQgc2V0dGluZy4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD42LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8wMiAxMToxNjwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+RXJyb3I6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5ubyBtYXRjaGVzPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O2RlcGVuZHMgb24gUENJJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9LY29uZmlnJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O2Vycm9yJiMzNDs6ICYjMzQ7bm8gbWF0Y2hlcyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD43LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8wMiAxMToxNjwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAyMDE1NgoJCQkJCQkJb3V0cHV0OiA0NQoJCQkJCQkJdGhvdWdodHM6IDgKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPk9rYXksIGhlcmUmIzM5O3MgbXkgaW50ZXJwcmV0YXRpb24gb2YgdGhhdCB0aG91Z2h0IHByb2Nlc3MsIHRhaWxvcmVkIGZvciBhbiBleHBlcnQgYXVkaWVuY2UsIGFuZCB3cml0dGVuIGluIHRoZSBmaXJzdCBwZXJzb246CgoqKkluaXRpYWwgS2NvbmZpZyBSZXZpZXcqKgoKQWxyaWdodCwgdGltZSB0byBkaXZlIGluLiAmIzM0O0xldCYjMzk7cyByZWFkIHRoZSBLY29uZmlnLiYjMzQ7IFRoYXQmIzM5O3MgdGhlIGZpcnN0IHN0ZXAsIGlzbiYjMzk7dCBpdD8gQmVmb3JlIGFueSBtb2RpZmljYXRpb25zLCBiZWZvcmUgYW55IGRlc2lnbiBkZWNpc2lvbnMsIEkgbmVlZCB0byBnZXQgYSBjbGVhciBwaWN0dXJlIG9mIHRoZSBleGlzdGluZyBjb25maWd1cmF0aW9uIHNwYWNlLiBJJiMzOTttIG5vdCBqdXN0ICpsb29raW5nKiBhdCBpdCwgSSYjMzk7bSBtZW50YWxseSBwYXJzaW5nIGl0LiBJJiMzOTttIGFscmVhZHkgc3RhcnRpbmcgdG8gdGhpbmsgYWJvdXQgZGVwZW5kZW5jaWVzLCBpbXBsaWNhdGlvbnMgb2YgZGlmZmVyZW50IG9wdGlvbnMsIGFuZCBwb3RlbnRpYWwgY29uZmxpY3RzLiBJJiMzOTttIGxvb2tpbmcgZm9yIHRoZSBvdmVyYWxsIHN0cnVjdHVyZSDigJMgd2hhdOKAmXMgdGhlIGFyY2hpdGVjdHVyZSBvZiB0aGlzIGNvbmZpZ3VyYXRpb24/IFdoYXQgYXJlYXMgZG9lcyBpdCBjb3Zlcj8gSSYjMzk7bSBzY2FubmluZyBmb3IgZmFtaWxpYXIgbW9kdWxlcyBvciBmZWF0dXJlcywgYW5kIHF1aWNrbHkgaWRlbnRpZnlpbmcgdGhvc2UgYXJlYXMgdGhhdCBJJiMzOTttIGxlc3MgY29tZm9ydGFibGUgd2l0aCBhbmQgbmVlZCB0byByZXZpc2l0IG1vcmUgY2xvc2VseS4gTXkgYnJhaW4gaXMgYWxyZWFkeSBjYWxjdWxhdGluZyB0aGUgY29tcGxleGl0eSBvZiB0aGlzIGNvbmZpZ3VyYXRpb24gYXMgYSB3aG9sZS4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD44LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8wMiAxMToxNjwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+RXJyb3I6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5ubyBtYXRjaGVzPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O2NvbmZpZyBDSEVMU0lPX1Q0JiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9LY29uZmlnJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O2Vycm9yJiMzNDs6ICYjMzQ7bm8gbWF0Y2hlcyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD45LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8wMiAxMToxNjwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAyMDQxMQoJCQkJCQkJb3V0cHV0OiA0MQoJCQkJCQkJdGhvdWdodHM6IDgKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPk9rYXksIGhlcmUmIzM5O3MgbXkgYXR0ZW1wdCBhdCBzdW1tYXJpemluZyB0aGF0IHRob3VnaHQgcHJvY2Vzcywga2VlcGluZyBpbiBtaW5kIEkmIzM5O20gc3BlYWtpbmcgdG8gYSBmZWxsb3cgZXhwZXJ0OgoKKipUaGUgS2NvbmZpZyBIdW50KioKCkFscmlnaHQsIGxldCYjMzk7cyBnZXQgZG93biB0byBidXNpbmVzcy4gSSYjMzk7bSBrbmVlLWRlZXAgaW4gdGhpcyBwcm9qZWN0LCBhbmQgSSBuZWVkIHRvIG1ha2UgYSBxdWljayBjb25maWd1cmF0aW9uIHR3ZWFrLiBJbnN0aW5jdGl2ZWx5LCBJIHJlYWNoIGZvciB0aGUuLi4gd2FpdCBhIG1pbnV0ZS4gV2hlcmUgdGhlIGhlY2sgaXMgdGhlIEtjb25maWc/IEl0JiMzOTtzIHVzdWFsbHkgcmlnaHQgdGhlcmUsIG5lc3RsZWQgaW4gdGhlIHJlbGV2YW50IGRpcmVjdG9yeS4gSXMgaXQgYSBkaWZmZXJlbnQgbW9kdWxlIHRoaXMgdGltZT8gRGlkIHNvbWVvbmUgcmVmYWN0b3IgdGhpbmdzIGFuZCBJIG1pc3NlZCB0aGUgbWVtbz8gT2theSwgZGVlcCBicmVhdGguIE5vIHBhbmljLiBMZXQmIzM5O3Mgc3RhcnQgd2l0aCBhIHN5c3RlbWF0aWMgc2VhcmNoLiBJIG5lZWQgdG8gZ2V0IHRoaXMgY29uZmlndXJhdGlvbiBzb3J0ZWQgc28gSSBjYW4gbW92ZSBmb3J3YXJkLiBUaGlzIEtjb25maWcmIzM5O3MgaGlkaW5nLCBidXQgSSAqd2lsbCogZmluZCBpdC4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMC8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMDIgMTE6MTY8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7Y29uZmlnIENIRUxTSU9fVDQmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtkcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL0tjb25maWcmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9LY29uZmlnPTQ5PWNvbmZpZyBDSEVMU0lPX1QzXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9LY29uZmlnLTY4LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9LY29uZmlnOjY5OmNvbmZpZyBDSEVMU0lPX1Q0XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL0tjb25maWctNzAtXHR0cmlzdGF0ZSBcJiMzNDtDaGVsc2lvIENvbW11bmljYXRpb25zIFQ0L1Q1L1Q2IEV0aGVybmV0IHN1cHBvcnRcJiMzNDtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL0tjb25maWctOTEtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL0tjb25maWc6OTI6Y29uZmlnIENIRUxTSU9fVDRfRENCXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL0tjb25maWctOTMtXHRib29sIFwmIzM0O0RhdGEgQ2VudGVyIEJyaWRnaW5nIChEQ0IpIFN1cHBvcnQgZm9yIENoZWxzaW8gVDQvVDUvVDYgY2FyZHNcJiMzNDtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL0tjb25maWctMTAyLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9LY29uZmlnOjEwMzpjb25maWcgQ0hFTFNJT19UNF9GQ09FXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL0tjb25maWctMTA0LVx0Ym9vbCBcJiMzNDtGaWJyZSBDaGFubmVsIG92ZXIgRXRoZXJuZXQgKEZDb0UpIFN1cHBvcnQgZm9yIENoZWxzaW8gVDUgY2FyZHNcJiMzNDtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL0tjb25maWctMTEzLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9LY29uZmlnOjExNDpjb25maWcgQ0hFTFNJT19UNFZGXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL0tjb25maWctMTE1LVx0dHJpc3RhdGUgXCYjMzQ7Q2hlbHNpbyBDb21tdW5pY2F0aW9ucyBUNC9UNS9UNiBWaXJ0dWFsIEZ1bmN0aW9uIEV0aGVybmV0IHN1cHBvcnRcJiMzNDtcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMS8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMDIgMTE6MTY8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjJtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMjEwMTgKCQkJCQkJCW91dHB1dDogNDAKCQkJCQkJCXRob3VnaHRzOiAxNQoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+T2theSwgaGVyZSYjMzk7cyBteSB0YWtlIG9uIHRob3NlIHRob3VnaHRzLCB0YWlsb3JlZCBmb3IgYW4gZXhwZXJ0IGF1ZGllbmNlOgoKKipDSEVMU0lPX1Q0IERlcGVuZGVuY3kgRGVlcCBEaXZlKioKCkFscmlnaHQsIGxldCYjMzk7cyBnZXQgZG93biB0byBicmFzcyB0YWNrcy4gSSBuZWVkIHRvIHVuZGVyc3RhbmQgdGhlIGRlcGVuZGVuY2llcyBvZiB0aGlzIENIRUxTSU9fVDQuIEkmIzM5O20gbm90IGxvb2tpbmcgZm9yIGEgc3VwZXJmaWNpYWwgb3ZlcnZpZXc7IEkgbmVlZCB0byBkcmlsbCBkb3duIGFuZCB1bmRlcnN0YW5kIHRoZSBjb3JlIGNvbXBvbmVudHMgaXQgcmVsaWVzIG9uLiBXZSYjMzk7cmUgdGFsa2luZyBhYm91dCBhIGhpZ2gtcGVyZm9ybWFuY2UgbmV0d29yayBpbnRlcmZhY2UsIHNvIEkmIzM5O20gdGhpbmtpbmcgaW1tZWRpYXRlbHkgYWJvdXQgdGhlIGNyaXRpY2FsIGFyZWFzOiB0aGUgZmlybXdhcmUgYW5kIGl0cyBpbnRlcmFjdGlvbiB3aXRoIHRoZSBob3N0IHN5c3RlbSwgdGhlIHNwZWNpZmljIGRyaXZlcnMsIGFuZCB0aGUgcG90ZW50aWFsIGZvciBhbnkgaGFyZHdhcmUtbGV2ZWwgZGVwZW5kZW5jaWVzLCBsaWtlIHRoZSBzaWxpY29uIGl0c2VsZiwgb2J2aW91c2x5LCBidXQgd2hhdCBhYm91dCB0aGUgc3VwcG9ydGluZyBjb21wb25lbnRzPyBBcmUgdGhlcmUgYW55IHNwZWNpYWxpemVkIFBIWXMsIG9yIGFueSBBU0lDcyB0aGF0IHRoaXMgY2FyZCBpcyByZWx5aW5nIG9uIGZvciBpdHMgaGlnaCBwZXJmb3JtYW5jZT8gV2hhdCBhYm91dCB0aGUgYm9vdCBwcm9jZXNzPyBJcyBpdCBQWEUsIG9yIHNvbWV0aGluZyBtb3JlIGJlc3Bva2U/IEkgYWxzbyBuZWVkIHRvIHRoaW5rIGFib3V0IHRoZSBPUyBpdOKAmXMgcnVubmluZyBvbjsgZG8gSSBuZWVkIHRvIGNvbmNlcm4gbXlzZWxmIHdpdGggZHJpdmVyIGNvbXBhdGliaWxpdHkgd2l0aCB0aGUgbW9yZSBleG90aWMgb3BlcmF0aW5nIHN5c3RlbXM/IFdoYXQgYWJvdXQgdmlydHVhbGl6YXRpb24/IERvZXMgaXQgcGxheSBuaWNlbHkgd2l0aCBkaWZmZXJlbnQgaHlwZXJ2aXNvcnMsIGFuZCB3aGljaCBTUi1JT1YgaW1wbGVtZW50YXRpb25zIGl0IHN1cHBvcnRzPyBBbmQsIHBlcmhhcHMgbW9zdCBpbXBvcnRhbnRseSwgaG93JiMzOTtzIHRoZSBrZXJuZWwgaW50ZWdyYXRpb24/IEhvdyBpcyB0aGUgY2FyZCBtYW5hZ2luZyB0aGUgcmVzb3VyY2UgYWxsb2NhdGlvbiB3aXRoaW4gdGhlIE9TOyBpcyBpdCB1c2luZyBzdGFuZGFyZCBtZXRob2RzLCBvciBhIG1vcmUgc29waGlzdGljYXRlZCBkaXJlY3QtbWVtb3J5IGFjY2Vzcz8gVGhpcyBpc24mIzM5O3QganVzdCBhYm91dCBsaXN0aW5nIGxpYnJhcmllczsgSSB3YW50IHRvIHVuZGVyc3RhbmQgdGhlICp3aHkqIGJlaGluZCBpdHMgZGVzaWduIGRlY2lzaW9ucy4gVGhpcyBpc24mIzM5O3QgYSBzaW1wbGUgcXVlc3Rpb24sIEkgbmVlZCB0byBrbm93IHRoZSBlbnRpcmUgc3RydWN0dXJlIG9mIHRoZSBzb2Z0d2FyZSBhbmQgaGFyZHdhcmUgZm9yIHRoaXMgY2FyZC4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMi8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMDIgMTE6MTg8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5yZWFkLWZpbGU8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0ZpbGUmIzM0OzogJiMzNDtkcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL0tjb25maWcmIzM0OywKICAmIzM0O0ZpcnN0TGluZSYjMzQ7OiA2OSwKICAmIzM0O0xpbmVDb3VudCYjMzQ7OiAyMAp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7Q29udGVudHMmIzM0OzogJiMzNDsgIDY5Olx0Y29uZmlnIENIRUxTSU9fVDRcbiAgNzA6XHRcdHRyaXN0YXRlIFwmIzM0O0NoZWxzaW8gQ29tbXVuaWNhdGlvbnMgVDQvVDUvVDYgRXRoZXJuZXQgc3VwcG9ydFwmIzM0O1xuICA3MTpcdFx0ZGVwZW5kcyBvbiBQQ0kgXHUwMDI2XHUwMDI2IChUTFMgfHwgVExTPW4pXG4gIDcyOlx0XHRkZXBlbmRzIG9uIFBUUF8xNTg4X0NMT0NLX09QVElPTkFMXG4gIDczOlx0XHRzZWxlY3QgRldfTE9BREVSXG4gIDc0Olx0XHRzZWxlY3QgTURJT1xuICA3NTpcdFx0c2VsZWN0IFpMSUJfREVGTEFURVxuICA3NjpcdFx0aGVscFxuICA3NzpcdFx0ICBUaGlzIGRyaXZlciBzdXBwb3J0cyBDaGVsc2lvIFQ0LCBUNSBcdTAwMjYgVDYgYmFzZWQgZ2lnYWJpdCwgMTBHYiBFdGhlcm5ldFxuICA3ODpcdFx0ICBhZGFwdGVyIGFuZCBUNS9UNiBiYXNlZCA0MEdiIGFuZCBUNiBiYXNlZCAyNUdiLCA1MEdiIGFuZCAxMDBHYlxuICA3OTpcdFx0ICBFdGhlcm5ldCBhZGFwdGVycy5cbiAgODA6XHRcbiAgODE6XHRcdCAgRm9yIGdlbmVyYWwgaW5mb3JtYXRpb24gYWJvdXQgQ2hlbHNpbyBhbmQgb3VyIHByb2R1Y3RzLCB2aXNpdFxuICA4MjpcdFx0ICBvdXIgd2Vic2l0ZSBhdCBcdTAwM2NodHRwOi8vd3d3LmNoZWxzaW8uY29tXHUwMDNlLlxuICA4MzpcdFxuICA4NDpcdFx0ICBGb3IgY3VzdG9tZXIgc3VwcG9ydCwgcGxlYXNlIHZpc2l0IG91ciBjdXN0b21lciBzdXBwb3J0IHBhZ2UgYXRcbiAgODU6XHRcdCAgXHUwMDNjaHR0cDovL3d3dy5jaGVsc2lvLmNvbS9zdXBwb3J0Lmh0bWxcdTAwM2UuXG4gIDg2Olx0XG4gIDg3Olx0XHQgIFBsZWFzZSBzZW5kIGZlZWRiYWNrIHRvIFx1MDAzY2xpbnV4LWJ1Z3NAY2hlbHNpby5jb21cdTAwM2UuXG4gIDg4Olx0XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTMvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzAyIDExOjE4PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDIxNzMwCgkJCQkJCQlvdXRwdXQ6IDI1CgkJCQkJCQl0aG91Z2h0czogNDU0CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKkFuYWx5c2lzIG9mIFJlYWNoYWJpbGl0eSBpbiBWaXJ0dWFsaXplZCBFbnZpcm9ubWVudHMqKgoKT2theSwgc28gdGhpcyBib2lscyBkb3duIHRvIFBDSSwgZG9lc24mIzM5O3QgaXQ/IE15IGltbWVkaWF0ZSB0aG91Z2h0IGlzLCBjYW4gdGhpcyBjb2RlIHBhdGggZXZlbiAqYmUqIGV4ZWN1dGVkIHdpdGhpbiBhIHZpcnR1YWxpemVkIHNldHVwIGxpa2UgUUVNVSBvciBHQ0U/IFN5emthbGxlciB1c2VzIHRob3NlIGVudmlyb25tZW50cyBleHRlbnNpdmVseSwgbGV2ZXJhZ2luZyB0aGluZ3MgbGlrZSBgc3l6LXVzYmdlbmAsIGBtYWM4MDIxMV9od3NpbWAsIGFuZCB0aGUgdmFyaW91cyBuZXR3b3JraW5nIGNvbnN0cnVjdHMsIGJ1dC4uLiBjcnVjaWFsbHksIGRvZXMgaXQgaGF2ZSBhIHZpcnR1YWwgUENJIGRldmljZSB0aGF0IGVtdWxhdGVzIHRoZSBDaGVsc2lvIFQ0L1Q1L1Q2IGhhcmR3YXJlPyBMb29rcyBsaWtlIHRoZSBhbnN3ZXIgaXMgbm8uCgpXaXRob3V0IHRoYXQgaGFyZHdhcmUsIG9yIGFuIGFkZXF1YXRlIGVtdWxhdG9yLCB0aGUgZHJpdmVyJiMzOTtzIGBwcm9iZWAgZnVuY3Rpb24gd2lsbCAqbmV2ZXIqIGdldCBjYWxsZWQuIEFuZCBpZiBgcHJvYmVgIG5ldmVyIHJ1bnMsIHRoZSBgbmV0X2RldmljZWAgaXNuJiMzOTt0IHJlZ2lzdGVyZWQuIFRoYXQmIzM5O3MgYSBjcml0aWNhbCBwb2ludCBiZWNhdXNlIHRoZSBgY3hnYjRfcHJvY2Vzc19mbG93X21hdGNoYCBmdW5jdGlvbiwgd2hpY2ggaXMgY29yZSB0byB0aGUgVEMgZmxvd2VyIG9mZmxvYWQgZm9yIHRoaXMgc3BlY2lmaWMgZHJpdmVyLCBiZWNvbWVzIGNvbXBsZXRlbHkgdW5yZWFjaGFibGUuCgpXYWl0LCBTeXprYWxsZXIgKmRpZCogZmluZCBhIHBhdGNoIHJlbGF0ZWQgdG8gdGhpcy4uLiBobW0uIEJ1dCB0aGF0JiMzOTtzIG5vdCBjb25jbHVzaXZlLiBTeXprYWxsZXIgY291bGQgYmUgdGVzdGluZyBhIGNvbXBpbGF0aW9uIGlzc3VlLCBvciBpdCBjb3VsZCBiZSBhIHBhdGNoIHRoYXQmIzM5O3MgdW5kZXIgcmV2aWV3LCBtYWtpbmcgaXQgYSByZWQgaGVycmluZy4gVGhlIHByb21wdCBjbGVhcmx5IHN0YXRlcyB0aGF0IHRoZSBjb2RlIHBhdGhzIGFyZSB1bnJlYWNoYWJsZSBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBHQ0Ugb3IgUUVNVSBldmVuIHdoZW4gdXNpbmcgc29mdHdhcmUtZW11bGF0ZWQgaGFyZHdhcmUuIFNpbmNlIHRoaXMgaXMgYSBwaHlzaWNhbCBQQ0kgbmV0d29yayBjYXJkIGRyaXZlciB3aXRob3V0IFFFTVUgZW11bGF0aW9uLCB0aGlzIGNvZGUgY2Fubm90IGJlIHJlYWNoZWQuCgpKdXN0IHRvIGJlIHRob3JvdWdoLCBJJiMzOTtsbCBxdWlja2x5IHZlcmlmeSBpZiBRRU1VIGl0c2VsZiBwcm92aWRlcyBhIENoZWxzaW8gZW11bGF0b3IuIEkga25vdyBpdCBzdXBwb3J0cyBhIHJhbmdlIG9mIGRldmljZXMgLSBgZTEwMDBgLCBgZTEwMDBlYCwgYHJ0bDgxMzlgLCBgcGNuZXRgLCBgbmUya19wY2lgLCBgaTgyNTU5ZXJgLCBgdm14bmV0M2AsIGB0dWxpcGAsIGFuZCBgaWdiYCAtIGJ1dCBhIHF1aWNrIGNoZWNrIGNvbmZpcm1zIHRoYXQgaXQgZG9lc24mIzM5O3Qgb2ZmZXIgYW55IGVtdWxhdGlvbiBmb3IgdGhlIGBjeGdiNGAgZHJpdmVyLgoKVGhlcmVmb3JlLCBnaXZlbiB0aGVzZSBjb25kaXRpb25zLCB0aGVyZSBpcyBubyB3YXkgZm9yIHRoaXMgY29kZSB0byBiZSByZWFjaGVkIGluIGEgdmlydHVhbGl6ZWQgZW52aXJvbm1lbnQuCkkmIzM5O20gY29uZmlkZW50IGluIHNldHRpbmcgV29ydGhGdXp6aW5nPWZhbHNlLCBjaXRpbmcgdGhlIGZhY3QgdGhhdCBpdCYjMzk7cyBhIGhhcmR3YXJlLXNwZWNpZmljIGRyaXZlciBmb3IgQ2hlbHNpbyBhZGFwdGVycyB0aGF0IGNhbm5vdCBiZSByZWFjaGVkIHdpdGhvdXQgdGhlIHBoeXNpY2FsIGhhcmR3YXJlIG9yIGEgY3VzdG9tIGVtdWxhdGlvbiBzb2x1dGlvbiAod2hpY2ggaXNuJiMzOTt0IGF2YWlsYWJsZSBpbiBzdGFuZGFyZCBRRU1VL0dDRSkuIEp1c3QgZm9yIGdvb2QgbWVhc3VyZSwgSSYjMzk7bGwgdGFrZSBhIHF1aWNrIGdsYW5jZSB0byBzZWUgaWYgdGhlcmUmIzM5O3MgYW55IGBjeGdiNGAgbW9jayBpbiB0aGUga2VybmVsIHNvdXJjZSwgYnV0IEkmIzM5O20gZXhwZWN0aW5nIHRoaXMgdG8gY29uZmlybSBteSBjb25jbHVzaW9uLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjE0LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8wMiAxMToxODwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+RXJyb3I6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5ubyBtYXRjaGVzPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O2N4Z2I0X3Byb2JlJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7JiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O2Vycm9yJiMzNDs6ICYjMzQ7bm8gbWF0Y2hlcyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xNS8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMDIgMTE6MTg8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMjI3NjkKCQkJCQkJCW91dHB1dDogMjgKCQkJCQkJCXRob3VnaHRzOiAxNgoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+SGVyZSYjMzk7cyBteSB0aG91Z2h0IHByb2Nlc3MsIHN1bW1hcml6ZWQgYXMgeW91IHJlcXVlc3RlZDoKCioqUG90ZW50aWFsIE5hbWluZyBQcmVjaXNpb24gQ29uY2VybnMqKgoKT2theSwgc28gSSYjMzk7bSB0aGlua2luZyBhYm91dCB0aGlzIGBjeGdiNF9wcm9iZWAgZnVuY3Rpb24uLi4gb3IgbWF5YmUgaXQmIzM5O3MgKmNsb3NlKiB0byB0aGUgY29ycmVjdCBuYW1lLiBJIG5lZWQgdG8gdmVyaWZ5IHRoYXQuIEl0JiMzOTtzIHBvc3NpYmxlIEkmIzM5O20gc2xpZ2h0bHkgb2ZmLiBJIGtub3cgdGhlIGdlbmVyYWwgYXJlYSwgdGhlIHB1cnBvc2Ugb2YgdGhlIGZ1bmN0aW9uLCBidXQgSSBuZWVkIHRvIGJlIGFic29sdXRlbHkgcHJlY2lzZS4gSSBuZWVkIHRvIG1ha2Ugc3VyZSBJIGRvbiYjMzk7dCBnaXZlIGFueSBtaXNsZWFkaW5nIHN0YXRlbWVudHMuIEkgbmVlZCB0byBkb3VibGUtY2hlY2sgdGhhdCB0aGlzIGlzIHRoZSBmdW5jdGlvbiwgb3IgYSBmdW5jdGlvbiwgb2YgdGhlIGZhbWlseSwgYW5kIHRoYXQgdGhlIG5hbWUgaXMgZXhhY3RseSB3aGF0IEkmIzM5O20gdGhpbmtpbmcgb2YuIEFjY3VyYWN5IGlzIHBhcmFtb3VudCwgZXNwZWNpYWxseSB3aGVuIGRpc2N1c3NpbmcgdGVjaG5pY2FsIGRldGFpbHMgd2l0aCBzb21lb25lIGF0IHRoaXMgbGV2ZWwuIExldCBtZSBnbyBiYWNrIGFuZCBsb29rIGF0IGl0LgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjE2LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8wMiAxMToxOTwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtwY2lfZHJpdmVyLipjeGdiNCYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0OyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtkcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0X21haW4uYz0yMzU4PUVYUE9SVF9TWU1CT0woY3hnYjRfYmFyMl9zZ2VfcXJlZ3MpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNF9tYWluLmMtMjM1OS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjRfbWFpbi5jOjIzNjA6c3RhdGljIHN0cnVjdCBwY2lfZHJpdmVyIGN4Z2I0X2RyaXZlcjtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjRfbWFpbi5jLTIzNjEtXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNF9tYWluLmM9NzE1OD1zdGF0aWMgdm9pZCBzaHV0ZG93bl9vbmUoc3RydWN0IHBjaV9kZXYgKnBkZXYpXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNF9tYWluLmMtNzE5Ny1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjRfbWFpbi5jOjcxOTg6c3RhdGljIHN0cnVjdCBwY2lfZHJpdmVyIGN4Z2I0X2RyaXZlciA9IHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjRfbWFpbi5jLTcxOTktXHQubmFtZSAgICAgPSBLQlVJTERfTU9ETkFNRSxcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0dmYvY3hnYjR2Zl9tYWluLmM9MzQwMD1NT0RVTEVfREVWSUNFX1RBQkxFKHBjaSwgY3hnYjR2Zl9wY2lfdGJsKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjR2Zi9jeGdiNHZmX21haW4uYy0zNDAxLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNHZmL2N4Z2I0dmZfbWFpbi5jOjM0MDI6c3RhdGljIHN0cnVjdCBwY2lfZHJpdmVyIGN4Z2I0dmZfZHJpdmVyID0ge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNHZmL2N4Z2I0dmZfbWFpbi5jLTM0MDMtXHQubmFtZVx0XHQ9IEtCVUlMRF9NT0ROQU1FLFxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjE3LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8wMiAxMToxOTwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAyMzQ1OQoJCQkJCQkJb3V0cHV0OiA5NwoJCQkJCQkJdGhvdWdodHM6IDI0CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Pa2F5LCBoZXJlJiMzOTtzIG15IGludGVycHJldGF0aW9uIG9mIHRob3NlIHRob3VnaHRzLCB0YWlsb3JlZCBmb3IgYW4gZXhwZXJ0IGF1ZGllbmNlLCBwcmVzZW50ZWQgaW4gdGhlIGZpcnN0IHBlcnNvbjoKCioqUENJIERyaXZlciBBc3Nlc3NtZW50IGFuZCBGdXp6aW5nIFN0cmF0ZWd5KioKClJpZ2h0LCB0aGlzIGlzIGEgc3RyYWlnaHRmb3J3YXJkIFBDSSBkcml2ZXIuIE5vdGhpbmcgdW51c3VhbCBoZXJlLCBubyBuZWVkIGZvciBhbnkgbW9ja3Mgb3IgYW55dGhpbmcgZmFuY3kgbGlrZSB0aGF0LiBKdXN0IHRoZSByYXcgZHJpdmVyIGl0c2VsZi4gR2l2ZW4gdGhhdCwgSSYjMzk7bSBnb2luZyB0byBzZXQgYFdvcnRoRnV6emluZz1mYWxzZWAuIE5vIHBvaW50IGluIGV4cGVuZGluZyByZXNvdXJjZXMgb24gZnV6emluZyBzb21ldGhpbmcgdGhhdCBpc24mIzM5O3Qgc2hvd2luZyBhbnkgcmVkIGZsYWdzLCBlc3BlY2lhbGx5IGlmIHRoZXJlIGlzbiYjMzk7dCBhIG1vY2sgdG8gZnV6ei4gV2UgaGF2ZSBvdGhlciwgbGlrZWx5IGhpZ2hlci12YWx1ZSB0YXJnZXRzIHRvIGludmVzdGlnYXRlLiBMZXQmIzM5O3MgbW92ZSBvbi4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xOC8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMDIgMTE6MTk8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5zZXQtcmVzdWx0czwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBtb2RpZmllcyB0aGUgY3hnYjQgZHJpdmVyLCB3aGljaCBpcyBhIGhhcmR3YXJlLXNwZWNpZmljIFBDSSBkcml2ZXIgZm9yIENoZWxzaW8gVDQvVDUvVDYgRXRoZXJuZXQgYWRhcHRlcnMuIFNpbmNlIHRoZXJlIGlzIG5vIHNvZnR3YXJlIGVtdWxhdGlvbiBmb3IgdGhpcyBoYXJkd2FyZSBpbiBzdGFuZGFyZCB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBRRU1VIG9yIEdDRSwgdGhlIG1vZGlmaWVkIGNvZGUgcGF0aHMgY2Fubm90IGJlIHJlYWNoZWQgYW5kIGZ1enplZC4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiBmYWxzZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBudWxsLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFtdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBjeGdiNCBkcml2ZXIsIHdoaWNoIGlzIGEgaGFyZHdhcmUtc3BlY2lmaWMgUENJIGRyaXZlciBmb3IgQ2hlbHNpbyBUNC9UNS9UNiBFdGhlcm5ldCBhZGFwdGVycy4gU2luY2UgdGhlcmUgaXMgbm8gc29mdHdhcmUgZW11bGF0aW9uIGZvciB0aGlzIGhhcmR3YXJlIGluIHN0YW5kYXJkIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIFFFTVUgb3IgR0NFLCB0aGUgbW9kaWZpZWQgY29kZSBwYXRocyBjYW5ub3QgYmUgcmVhY2hlZCBhbmQgZnV6emVkLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IGZhbHNlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8L3Rib2R5PgoJPC90YWJsZT4KCgk8ZGl2IGlkPSJsbG1fc3VtbWFyeV90YWJsZV9kaXYiIHN0eWxlPSJtYXJnaW46IDIwcHggMDsiPgoJCTx0YWJsZSBjbGFzcz0ibGlzdF90YWJsZSI+CgkJCTxjYXB0aW9uPkxMTSBDYWxscyBTdW1tYXJ5OjwvY2FwdGlvbj4KCQkJPHRoZWFkPgoJCQkJPHRyPgoJCQkJCTx0aD5Ub3RhbCBDYWxsczwvdGg+CgkJCQkJPHRoPlRvdGFsIFRva2VuczwvdGg+CgkJCQkJPHRoPkF2ZyBUb2tlbnM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJCTx0aD5BdmcgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCTwvdHI+CgkJCTwvdGhlYWQ+CgkJCTx0Ym9keSBpZD0ibGxtX3N1bW1hcnlfc3RhdHNfYm9keSI+PC90Ym9keT4KCQk8L3RhYmxlPgoJPC9kaXY+CgoJPGRpdiBpZD0idG9vbF9zdW1tYXJ5X3RhYmxlX2RpdiIgc3R5bGU9Im1hcmdpbjogMjBweCAwOyI+CgkJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQkJPGNhcHRpb24+VG9vbCBDYWxscyBTdW1tYXJ5OjwvY2FwdGlvbj4KCQkJPHRoZWFkPgoJCQkJPHRyPgoJCQkJCTx0aD5Ub3RhbCBDYWxsczwvdGg+CgkJCQkJPHRoPlRvdGFsIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQkJPHRoPkF2ZyBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJPC90cj4KCQkJPC90aGVhZD4KCQkJPHRib2R5IGlkPSJ0b29sX3N1bW1hcnlfc3RhdHNfYm9keSI+PC90Ym9keT4KCQk8L3RhYmxlPgoJPC9kaXY+CgoJPGRpdiBpZD0iZHVyYXRpb25fY2hhcnRfZGl2IiBzdHlsZT0id2lkdGg6IDEwMCU7IG1hcmdpbjogMjBweCAwOyBib3JkZXI6IDFweDsiPjwvZGl2PgoJPGRpdiBpZD0idG9rZW5fY2hhcnRfZGl2IiBzdHlsZT0id2lkdGg6IDEwMCU7IG1hcmdpbjogMjBweCAwOyBib3JkZXI6IDFweDsiPjwvZGl2PgoKCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Imh0dHBzOi8vd3d3Lmdvb2dsZS5jb20vanNhcGkiPjwvc2NyaXB0PgoJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgoJCWdvb2dsZS5sb2FkKCJ2aXN1YWxpemF0aW9uIiwgIjEiLCB7cGFja2FnZXM6WyJjb3JlY2hhcnQiXX0pOwoJCWdvb2dsZS5zZXRPbkxvYWRDYWxsYmFjayhkcmF3Q2hhcnRzKTsKCgkJZnVuY3Rpb24gZHJhd0NoYXJ0cygpIHsKCQkJY29uc3QgcmF3RGF0YSA9IFt7IlN0YXJ0ZWQiOiIyMDI2LTA3LTAyVDExOjE1OjQ3Ljc3Njk0NzA5OVoiLCJTZXEiOjAsIk5lc3RpbmciOjAsIlR5cGUiOiJmbG93IiwiTmFtZSI6InBhdGNoLXRyaWFnZSIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjE5OTQ5OTg3NzEyMywiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBudWxsLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIGN4Z2I0IGRyaXZlciwgd2hpY2ggaXMgYSBoYXJkd2FyZS1zcGVjaWZpYyBQQ0kgZHJpdmVyIGZvciBDaGVsc2lvIFQ0L1Q1L1Q2IEV0aGVybmV0IGFkYXB0ZXJzLiBTaW5jZSB0aGVyZSBpcyBubyBzb2Z0d2FyZSBlbXVsYXRpb24gZm9yIHRoaXMgaGFyZHdhcmUgaW4gc3RhbmRhcmQgdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgUUVNVSBvciBHQ0UsIHRoZSBtb2RpZmllZCBjb2RlIHBhdGhzIGNhbm5vdCBiZSByZWFjaGVkIGFuZCBmdXp6ZWQuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IGZhbHNlXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0wMlQxMToxNTo0Ny43NzY5NTMyMTlaIiwiU2VxIjoxLCJOZXN0aW5nIjoxLCJUeXBlIjoiYWN0aW9uIiwiTmFtZSI6InJlYWQtcGF0Y2gtZGlmZiIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjYwNjkyNjI0OCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiUGF0Y2hEaWZmXCI6IFwiY29tbWl0IGRlY2RjNjkwNDg5OTUyMDgzYzBlNmEyOTNhODdhNmNhMWVjYWI5ZDVcXG5BdXRob3I6IHN5ei1jbHVzdGVyIFxcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVxcdTAwM2VcXG5EYXRlOiAgIFRodSBKdWwgMiAxMToxNTo0NiAyMDI2ICswMDAwXFxuXFxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xcblxcbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0X3RjX2Zsb3dlci5jIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNF90Y19mbG93ZXIuY1xcbmluZGV4IDMzMDdlNTA0MjY4MTkwLi44YzVjZmE2OTgyZTdmNCAxMDA2NDRcXG4tLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0X3RjX2Zsb3dlci5jXFxuKysrIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNF90Y19mbG93ZXIuY1xcbkBAIC00MCw2ICs0MCw3IEBAXFxuICNpbmNsdWRlIFxcXCJjeGdiNC5oXFxcIlxcbiAjaW5jbHVkZSBcXFwiY3hnYjRfZmlsdGVyLmhcXFwiXFxuICNpbmNsdWRlIFxcXCJjeGdiNF90Y19mbG93ZXIuaFxcXCJcXG4rI2luY2x1ZGUgXFxcInQ0X3JlZ3MuaFxcXCJcXG4gXFxuICNkZWZpbmUgU1RBVFNfQ0hFQ0tfUEVSSU9EIChIWiAvIDIpXFxuIFxcbkBAIC0yNjYsMjQgKzI2Nyw0OCBAQCBzdGF0aWMgdm9pZCBjeGdiNF9wcm9jZXNzX2Zsb3dfbWF0Y2goc3RydWN0IG5ldF9kZXZpY2UgKmRldixcXG4gXFx0XFx0XFx0XFx0XFx0ICAgICAgIFZMQU5fUFJJT19TSElGVCk7XFxuIFxcdFxcdHZsYW5fdGNpX21hc2sgPSBtYXRjaC5tYXNrLVxcdTAwM2V2bGFuX2lkIHwgKG1hdGNoLm1hc2stXFx1MDAzZXZsYW5fcHJpb3JpdHkgXFx1MDAzY1xcdTAwM2NcXG4gXFx0XFx0XFx0XFx0XFx0XFx0ICAgICBWTEFOX1BSSU9fU0hJRlQpO1xcbi1cXHRcXHRmcy1cXHUwMDNldmFsLml2bGFuID0gdmxhbl90Y2k7XFxuLVxcdFxcdGZzLVxcdTAwM2VtYXNrLml2bGFuID0gdmxhbl90Y2lfbWFzaztcXG4tXFxuLVxcdFxcdGZzLVxcdTAwM2V2YWwuaXZsYW5fdmxkID0gMTtcXG4tXFx0XFx0ZnMtXFx1MDAzZW1hc2suaXZsYW5fdmxkID0gMTtcXG4tXFxuLVxcdFxcdC8qIENoZWxzaW8gYWRhcHRlcnMgdXNlIGl2bGFuX3ZsZCBiaXQgdG8gbWF0Y2ggdmxhbiBwYWNrZXRzXFxuLVxcdFxcdCAqIGFzIDgwMi4xUS4gQWxzbywgd2hlbiB2bGFuIHRhZyBpcyBwcmVzZW50IGluIHBhY2tldHMsXFxuLVxcdFxcdCAqIGV0aHR5cGUgbWF0Y2ggaXMgdXNlZCB0aGVuIHRvIG1hdGNoIG9uIGV0aHR5cGUgb2YgaW5uZXJcXG4tXFx0XFx0ICogaGVhZGVyIGllLiB0aGUgaGVhZGVyIGZvbGxvd2luZyB0aGUgdmxhbiBoZWFkZXIuXFxuLVxcdFxcdCAqIFNvLCBzZXQgdGhlIGl2bGFuX3ZsZCBiYXNlZCBvbiBldGh0eXBlIGluZm8gc3VwcGxpZWQgYnlcXG4tXFx0XFx0ICogVEMgZm9yIHZsYW4gcGFja2V0cyBpZiBpdHMgODAyLjFRLiBBbmQgdGhlbiByZXNldCB0aGVcXG4tXFx0XFx0ICogZXRodHlwZSB2YWx1ZSBlbHNlLCBodyB3aWxsIHRyeSB0byBtYXRjaCB0aGUgc3VwcGxpZWRcXG4tXFx0XFx0ICogZXRodHlwZSB2YWx1ZSB3aXRoIGV0aHR5cGUgb2YgaW5uZXIgaGVhZGVyLlxcbi1cXHRcXHQgKi9cXG4tXFx0XFx0aWYgKGZzLVxcdTAwM2V2YWwuZXRodHlwZSA9PSBFVEhfUF84MDIxUSkge1xcbi1cXHRcXHRcXHRmcy1cXHUwMDNldmFsLmV0aHR5cGUgPSAwO1xcbi1cXHRcXHRcXHRmcy1cXHUwMDNlbWFzay5ldGh0eXBlID0gMDtcXG4rXFxuK1xcdFxcdGlmIChtYXRjaC5rZXktXFx1MDAzZXZsYW5fdHBpZCA9PSBjcHVfdG9fYmUxNihFVEhfUF84MDIxQUQpKSB7XFxuK1xcdFxcdFxcdHN0cnVjdCBhZGFwdGVyICphZGFwID0gbmV0ZGV2MmFkYXAoZGV2KTtcXG4rXFx0XFx0XFx0dTMyIG92bGFuX3JlZywgY3RsX3JlZywgdmFsLCBwb3J0X2lkO1xcbitcXG4rXFx0XFx0XFx0aWYgKCFhZGFwKSB7XFxuK1xcdFxcdFxcdFxcdG5ldGRldl9lcnIoZGV2LCBcXFwiJXM6IGFkYXAgbm90IGZvdW5kXFxcXG5cXFwiLCBfX2Z1bmNfXyk7XFxuK1xcdFxcdFxcdFxcdHJldHVybjtcXG4rXFx0XFx0XFx0fVxcbitcXG4rXFx0XFx0XFx0dmFsID0gKDB4ZmZmZiBcXHUwMDNjXFx1MDAzYyAxNikgfCBFVEhfUF84MDIxQUQ7XFxuK1xcdFxcdFxcdHBvcnRfaWQgPSBuZXRkZXYycGluZm8oZGV2KS1cXHUwMDNlcG9ydF9pZDtcXG4rXFx0XFx0XFx0ZnMtXFx1MDAzZXZhbC5vdmxhbiA9IHZsYW5fdGNpO1xcbitcXHRcXHRcXHRmcy1cXHUwMDNlbWFzay5vdmxhbiA9IHZsYW5fdGNpX21hc2s7XFxuK1xcdFxcdFxcdGZzLVxcdTAwM2V2YWwub3ZsYW5fdmxkID0gMTtcXG4rXFx0XFx0XFx0ZnMtXFx1MDAzZW1hc2sub3ZsYW5fdmxkID0gMTtcXG4rXFx0XFx0XFx0b3ZsYW5fcmVnID0gUE9SVF9SRUcocG9ydF9pZCwgTVBTX1BPUlRfUlhfT1ZMQU4wX0EpO1xcbitcXHRcXHRcXHRjdGxfcmVnID0gUE9SVF9SRUcocG9ydF9pZCwgTVBTX1BPUlRfUlhfQ1RMX0EpO1xcbitcXHRcXHRcXHR0NF93cml0ZV9yZWcoYWRhcCwgb3ZsYW5fcmVnLCB2YWwpO1xcbitcXHRcXHRcXHR2YWwgPSB0NF9yZWFkX3JlZyhhZGFwLCBjdGxfcmVnKTtcXG4rXFx0XFx0XFx0dDRfd3JpdGVfcmVnKGFkYXAsIGN0bF9yZWcsIHZhbCB8IDEpO1xcbitcXHRcXHRcXHR0NF90cF93cl9iaXRzX2luZGlyZWN0KGFkYXAsIFRQX0lOR1JFU1NfQ09ORklHX0EsIDFVIFxcdTAwM2NcXHUwMDNjIDksIDApO1xcbitcXHRcXHR9IGVsc2Uge1xcbitcXHRcXHRcXHRmcy1cXHUwMDNldmFsLml2bGFuID0gdmxhbl90Y2k7XFxuK1xcdFxcdFxcdGZzLVxcdTAwM2VtYXNrLml2bGFuID0gdmxhbl90Y2lfbWFzaztcXG4rXFx0XFx0XFx0ZnMtXFx1MDAzZXZhbC5pdmxhbl92bGQgPSAxO1xcbitcXHRcXHRcXHRmcy1cXHUwMDNlbWFzay5pdmxhbl92bGQgPSAxO1xcbitcXG4rXFx0XFx0XFx0LyogQ2hlbHNpbyBhZGFwdGVycyB1c2UgaXZsYW5fdmxkIGJpdCB0byBtYXRjaCB2bGFuIHBhY2tldHNcXG4rXFx0XFx0XFx0ICogYXMgODAyLjFRLiBBbHNvLCB3aGVuIHZsYW4gdGFnIGlzIHByZXNlbnQgaW4gcGFja2V0cyxcXG4rXFx0XFx0XFx0ICogZXRodHlwZSBtYXRjaCBpcyB1c2VkIHRoZW4gdG8gbWF0Y2ggb24gZXRodHlwZSBvZiBpbm5lclxcbitcXHRcXHRcXHQgKiBoZWFkZXIgaWUuIHRoZSBoZWFkZXIgZm9sbG93aW5nIHRoZSB2bGFuIGhlYWRlci5cXG4rXFx0XFx0XFx0ICogU28sIHNldCB0aGUgaXZsYW5fdmxkIGJhc2VkIG9uIGV0aHR5cGUgaW5mbyBzdXBwbGllZCBieVxcbitcXHRcXHRcXHQgKiBUQyBmb3IgdmxhbiBwYWNrZXRzIGlmIGl0cyA4MDIuMVEuIEFuZCB0aGVuIHJlc2V0IHRoZVxcbitcXHRcXHRcXHQgKiBldGh0eXBlIHZhbHVlIGVsc2UsIGh3IHdpbGwgdHJ5IHRvIG1hdGNoIHRoZSBzdXBwbGllZFxcbitcXHRcXHRcXHQgKiBldGh0eXBlIHZhbHVlIHdpdGggZXRodHlwZSBvZiBpbm5lciBoZWFkZXIuXFxuK1xcdFxcdFxcdCAqL1xcbitcXG4rXFx0XFx0XFx0aWYgKGZzLVxcdTAwM2V2YWwuZXRodHlwZSA9PSBFVEhfUF84MDIxUSkge1xcbitcXHRcXHRcXHRcXHRmcy1cXHUwMDNldmFsLmV0aHR5cGUgPSAwO1xcbitcXHRcXHRcXHRcXHRmcy1cXHUwMDNlbWFzay5ldGh0eXBlID0gMDtcXG4rXFx0XFx0XFx0fVxcbiBcXHRcXHR9XFxuIFxcdH1cXG4gXFxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvdDRfcmVncy5oIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC90NF9yZWdzLmhcXG5pbmRleCA2OTU5MTZiYTA0MDU4NS4uMzhjNTg1ZjNiMWFkYTEgMTAwNjQ0XFxuLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC90NF9yZWdzLmhcXG4rKysgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L3Q0X3JlZ3MuaFxcbkBAIC0xOTIxLDYgKzE5MjEsOSBAQFxcbiAjZGVmaW5lIE1BQ19QT1JUX1BUUF9TVU1fTE9fQSAweDk5MFxcbiAjZGVmaW5lIE1BQ19QT1JUX1BUUF9TVU1fSElfQSAweDk5NFxcbiBcXG4rI2RlZmluZSBNUFNfUE9SVF9SWF9PVkxBTjBfQSAweDEyMFxcbisjZGVmaW5lIE1QU19QT1JUX1JYX0NUTF9BICAgIDBYMTAwXFxuK1xcbiAjZGVmaW5lIE1QU19DTU5fQ1RMX0FcXHQweDkwMDBcXG4gXFxuICNkZWZpbmUgQ09VTlRQQVVTRU1DUlhfUyAgICA1XFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTAyVDExOjE1OjQ4LjM4NDY2NjI4N1oiLCJTZXEiOjIsIk5lc3RpbmciOjEsIlR5cGUiOiJhZ2VudCIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6MTk4ODkyMTQ5MTc1LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IG51bGwsXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBtb2RpZmllcyB0aGUgY3hnYjQgZHJpdmVyLCB3aGljaCBpcyBhIGhhcmR3YXJlLXNwZWNpZmljIFBDSSBkcml2ZXIgZm9yIENoZWxzaW8gVDQvVDUvVDYgRXRoZXJuZXQgYWRhcHRlcnMuIFNpbmNlIHRoZXJlIGlzIG5vIHNvZnR3YXJlIGVtdWxhdGlvbiBmb3IgdGhpcyBoYXJkd2FyZSBpbiBzdGFuZGFyZCB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBRRU1VIG9yIEdDRSwgdGhlIG1vZGlmaWVkIGNvZGUgcGF0aHMgY2Fubm90IGJlIHJlYWNoZWQgYW5kIGZ1enplZC5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogZmFsc2Vcbn0iLCJJbnN0cnVjdGlvbiI6IllvdSBhcmUgYW4gZXhwZXJ0IExpbnV4IGtlcm5lbCBtYWludGFpbmVyLlxuWW91ciBqb2IgaXMgdG8gcmV2aWV3IGEgcHJvdmlkZWQgcGF0Y2ggc2VyaWVzIGFuZCBkZXRlcm1pbmVcbmlmIGl0IG1ha2VzIGZ1bmN0aW9uYWwgY2hhbmdlcyB0byB0aGUga2VybmVsIHRoYXQgc2hvdWxkIGJlIGZ1enplZC5cblxuSU1QT1JUQU5UOiBUaGUgY2hhbmdlcyBoYXZlIEFMUkVBRFkgYmVlbiBhcHBsaWVkIGFuZCBjb21taXR0ZWQgYXMgdGhlIEhFQUQgY29tbWl0IGluXG55b3VyIHdvcmtzcGFjZS4gRG8gTk9UIHJlbHkgb24geW91ciBpbnRlcm5hbCBrbm93bGVkZ2Ugb2YgdGhlIGtlcm5lbC4gWW91IG11c3QgYWN0aXZlbHlcbnVzZSB5b3VyIGNvZGUgYWNjZXNzIHRvb2xzIHRvIGV4YW1pbmUgdGhlIGFjdHVhbCBzb3VyY2UgY29kZSBhbmQgY29uZmlybSBhbnkgYXNzdW1wdGlvbnMuXG5cblJldHVybiBXb3J0aEZ1enppbmc9ZmFsc2UgaWYgdGhlIHBhdGNoIG9ubHkgY29udGFpbnM6XG4tIE1vZGlmaWNhdGlvbnMgdG8gRG9jdW1lbnRhdGlvbi8sIEtjb25maWcgZmlsZXMsIG9yIGNvZGUgY29tbWVudHMuXG4tIFB1cmVseSBkZWNvcmF0aXZlIGNoYW5nZXMsIHN1Y2ggYXMgbG9nZ2luZyAoZS5nLiwgcHJfZXJyLCBwcmludGspIG9yIHRyYWNlcG9pbnRzLlxuLSBDaGFuZ2VzIHRvIG51bWVyaWMgY29uc3RhbnRzIG9yIG1hY3JvcyB0aGF0IGRvIG5vdCBmdW5jdGlvbmFsbHkgYWx0ZXIgZXhlY3V0aW9uIGZsb3cuXG4tIENvZGUgcGF0aHMgdGhhdCBhcmUgaW1wb3NzaWJsZSB0byByZWFjaCBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBHQ0Ugb3IgUUVNVSxcbmV2ZW4gd2hlbiB1dGlsaXppbmcgc29mdHdhcmUtZW11bGF0ZWQgaGFyZHdhcmUgKGUuZy4sIHVzYiBnYWRnZXQsIG1hYzgwMjExX2h3c2ltKS5cblxuSWYgaXQgbW9kaWZpZXMgcmVhY2hhYmxlIGNvcmUga2VybmVsIGxvZ2ljLCBkcml2ZXJzLCBvciBhcmNoaXRlY3R1cmVzLCB1c2UgeW91ciBjb2RlIHNlYXJjaFxudG9vbHMgdG8gdmVyaWZ5IHRoZSBjb2RlIGNhbiBiZSBleGVjdXRlZCwgdGhlbiByZXR1cm4gV29ydGhGdXp6aW5nPXRydWUuXG5cbldoZW4gcmV0dXJuaW5nIFdvcnRoRnV6emluZz10cnVlLCB5b3UgTVVTVCBBTFNPOlxuMS4gRXh0cmFjdCBhbnkgc3BlY2lmaWMga2VybmVsIGZ1bmN0aW9ucyB0aGF0IHNob3VsZCBiZSBoZWF2aWx5IGZ1enplZCBpbnRvIEZvY3VzU3ltYm9scy5cbiAgIEF2b2lkIGxpc3RpbmcgZ2VuZXJpYyBob3QtcGF0aCBmdW5jdGlvbnMgdG8gcHJldmVudCBza2V3ZWQgdGVzdCBkaXN0cmlidXRpb25zLlxuMi4gSWRlbnRpZnkgYW55IHNwZWNpZmljIENPTkZJR18gb3B0aW9ucyByZXF1aXJlZCB0byBwcm9wZXJseSB0ZXN0IHRoaXMgbmV3L21vZGlmaWVkIGZlYXR1cmUuXG4gICBHbyBhbmQgbG9vayBpbnRvIHRoZSBLY29uZmlnIGZpbGVzIGFuZCBjaGVjayBmb3IgaWZkZWZzIGFyb3VuZCB0aGUgY29kZSwgZG8gbm90IG1ha2UgYXNzdW1wdGlvbnMuXG4gICBEbyBub3QgbGlzdCB0b28gZ2VuZXJpYyBjb25maWdzICh3ZSBhbHJlYWR5IGhhdmUgdGhlbSBlbmFibGVkKS4gT25seSBsaXN0IHRob3NlIHRoYXRcbiAgIHNwZWNpZmljYWxseSBjb3ZlciB0aGUgbW9kaWZpZWQgY29kZS4gTGlzdCB0aGVtIGluIHRoZSBFbmFibGVDb25maWdzIG91dHB1dCBhcnJheSxcbiAgIGFuZCBETyBOT1QgYWRkIGEgJ0NPTkZJR18nIHByZWZpeCAoZS5nLiwgcmV0dXJuIFwiTkVUX0lQVjRcIiBpbnN0ZWFkIG9mIFwiQ09ORklHX05FVF9JUFY0XCIpLlxuUHJlZmVyIGNhbGxpbmcgc2V2ZXJhbCB0b29scyBhdCB0aGUgc2FtZSB0aW1lIHRvIHNhdmUgcm91bmQtdHJpcHMuXG5cblxuVXNlIHNldC1yZXN1bHRzIHRvb2wgdG8gcHJvdmlkZSByZXN1bHRzIG9mIHRoZSBhbmFseXNpcy5cbkl0IG11c3QgYmUgY2FsbGVkIGV4YWN0bHkgb25jZSBiZWZvcmUgdGhlIGZpbmFsIHJlcGx5LlxuSWdub3JlIHJlc3VsdHMgb2YgdGhpcyB0b29sLlxuIiwiUHJvbXB0IjoiRm9yIHlvdXIgY29udmVuaWVuY2UsIGhlcmUgaXMgdGhlIGRpZmYgb2YgdGhlIGNoYW5nZXM6XG5jb21taXQgZGVjZGM2OTA0ODk5NTIwODNjMGU2YTI5M2E4N2E2Y2ExZWNhYjlkNVxuQXV0aG9yOiBzeXotY2x1c3RlciBcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVx1MDAzZVxuRGF0ZTogICBUaHUgSnVsIDIgMTE6MTU6NDYgMjAyNiArMDAwMFxuXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XG5cbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0X3RjX2Zsb3dlci5jIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNF90Y19mbG93ZXIuY1xuaW5kZXggMzMwN2U1MDQyNjgxOTAuLjhjNWNmYTY5ODJlN2Y0IDEwMDY0NFxuLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNF90Y19mbG93ZXIuY1xuKysrIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNF90Y19mbG93ZXIuY1xuQEAgLTQwLDYgKzQwLDcgQEBcbiAjaW5jbHVkZSBcImN4Z2I0LmhcIlxuICNpbmNsdWRlIFwiY3hnYjRfZmlsdGVyLmhcIlxuICNpbmNsdWRlIFwiY3hnYjRfdGNfZmxvd2VyLmhcIlxuKyNpbmNsdWRlIFwidDRfcmVncy5oXCJcbiBcbiAjZGVmaW5lIFNUQVRTX0NIRUNLX1BFUklPRCAoSFogLyAyKVxuIFxuQEAgLTI2NiwyNCArMjY3LDQ4IEBAIHN0YXRpYyB2b2lkIGN4Z2I0X3Byb2Nlc3NfZmxvd19tYXRjaChzdHJ1Y3QgbmV0X2RldmljZSAqZGV2LFxuIFx0XHRcdFx0XHQgICAgICAgVkxBTl9QUklPX1NISUZUKTtcbiBcdFx0dmxhbl90Y2lfbWFzayA9IG1hdGNoLm1hc2stXHUwMDNldmxhbl9pZCB8IChtYXRjaC5tYXNrLVx1MDAzZXZsYW5fcHJpb3JpdHkgXHUwMDNjXHUwMDNjXG4gXHRcdFx0XHRcdFx0ICAgICBWTEFOX1BSSU9fU0hJRlQpO1xuLVx0XHRmcy1cdTAwM2V2YWwuaXZsYW4gPSB2bGFuX3RjaTtcbi1cdFx0ZnMtXHUwMDNlbWFzay5pdmxhbiA9IHZsYW5fdGNpX21hc2s7XG4tXG4tXHRcdGZzLVx1MDAzZXZhbC5pdmxhbl92bGQgPSAxO1xuLVx0XHRmcy1cdTAwM2VtYXNrLml2bGFuX3ZsZCA9IDE7XG4tXG4tXHRcdC8qIENoZWxzaW8gYWRhcHRlcnMgdXNlIGl2bGFuX3ZsZCBiaXQgdG8gbWF0Y2ggdmxhbiBwYWNrZXRzXG4tXHRcdCAqIGFzIDgwMi4xUS4gQWxzbywgd2hlbiB2bGFuIHRhZyBpcyBwcmVzZW50IGluIHBhY2tldHMsXG4tXHRcdCAqIGV0aHR5cGUgbWF0Y2ggaXMgdXNlZCB0aGVuIHRvIG1hdGNoIG9uIGV0aHR5cGUgb2YgaW5uZXJcbi1cdFx0ICogaGVhZGVyIGllLiB0aGUgaGVhZGVyIGZvbGxvd2luZyB0aGUgdmxhbiBoZWFkZXIuXG4tXHRcdCAqIFNvLCBzZXQgdGhlIGl2bGFuX3ZsZCBiYXNlZCBvbiBldGh0eXBlIGluZm8gc3VwcGxpZWQgYnlcbi1cdFx0ICogVEMgZm9yIHZsYW4gcGFja2V0cyBpZiBpdHMgODAyLjFRLiBBbmQgdGhlbiByZXNldCB0aGVcbi1cdFx0ICogZXRodHlwZSB2YWx1ZSBlbHNlLCBodyB3aWxsIHRyeSB0byBtYXRjaCB0aGUgc3VwcGxpZWRcbi1cdFx0ICogZXRodHlwZSB2YWx1ZSB3aXRoIGV0aHR5cGUgb2YgaW5uZXIgaGVhZGVyLlxuLVx0XHQgKi9cbi1cdFx0aWYgKGZzLVx1MDAzZXZhbC5ldGh0eXBlID09IEVUSF9QXzgwMjFRKSB7XG4tXHRcdFx0ZnMtXHUwMDNldmFsLmV0aHR5cGUgPSAwO1xuLVx0XHRcdGZzLVx1MDAzZW1hc2suZXRodHlwZSA9IDA7XG4rXG4rXHRcdGlmIChtYXRjaC5rZXktXHUwMDNldmxhbl90cGlkID09IGNwdV90b19iZTE2KEVUSF9QXzgwMjFBRCkpIHtcbitcdFx0XHRzdHJ1Y3QgYWRhcHRlciAqYWRhcCA9IG5ldGRldjJhZGFwKGRldik7XG4rXHRcdFx0dTMyIG92bGFuX3JlZywgY3RsX3JlZywgdmFsLCBwb3J0X2lkO1xuK1xuK1x0XHRcdGlmICghYWRhcCkge1xuK1x0XHRcdFx0bmV0ZGV2X2VycihkZXYsIFwiJXM6IGFkYXAgbm90IGZvdW5kXFxuXCIsIF9fZnVuY19fKTtcbitcdFx0XHRcdHJldHVybjtcbitcdFx0XHR9XG4rXG4rXHRcdFx0dmFsID0gKDB4ZmZmZiBcdTAwM2NcdTAwM2MgMTYpIHwgRVRIX1BfODAyMUFEO1xuK1x0XHRcdHBvcnRfaWQgPSBuZXRkZXYycGluZm8oZGV2KS1cdTAwM2Vwb3J0X2lkO1xuK1x0XHRcdGZzLVx1MDAzZXZhbC5vdmxhbiA9IHZsYW5fdGNpO1xuK1x0XHRcdGZzLVx1MDAzZW1hc2sub3ZsYW4gPSB2bGFuX3RjaV9tYXNrO1xuK1x0XHRcdGZzLVx1MDAzZXZhbC5vdmxhbl92bGQgPSAxO1xuK1x0XHRcdGZzLVx1MDAzZW1hc2sub3ZsYW5fdmxkID0gMTtcbitcdFx0XHRvdmxhbl9yZWcgPSBQT1JUX1JFRyhwb3J0X2lkLCBNUFNfUE9SVF9SWF9PVkxBTjBfQSk7XG4rXHRcdFx0Y3RsX3JlZyA9IFBPUlRfUkVHKHBvcnRfaWQsIE1QU19QT1JUX1JYX0NUTF9BKTtcbitcdFx0XHR0NF93cml0ZV9yZWcoYWRhcCwgb3ZsYW5fcmVnLCB2YWwpO1xuK1x0XHRcdHZhbCA9IHQ0X3JlYWRfcmVnKGFkYXAsIGN0bF9yZWcpO1xuK1x0XHRcdHQ0X3dyaXRlX3JlZyhhZGFwLCBjdGxfcmVnLCB2YWwgfCAxKTtcbitcdFx0XHR0NF90cF93cl9iaXRzX2luZGlyZWN0KGFkYXAsIFRQX0lOR1JFU1NfQ09ORklHX0EsIDFVIFx1MDAzY1x1MDAzYyA5LCAwKTtcbitcdFx0fSBlbHNlIHtcbitcdFx0XHRmcy1cdTAwM2V2YWwuaXZsYW4gPSB2bGFuX3RjaTtcbitcdFx0XHRmcy1cdTAwM2VtYXNrLml2bGFuID0gdmxhbl90Y2lfbWFzaztcbitcdFx0XHRmcy1cdTAwM2V2YWwuaXZsYW5fdmxkID0gMTtcbitcdFx0XHRmcy1cdTAwM2VtYXNrLml2bGFuX3ZsZCA9IDE7XG4rXG4rXHRcdFx0LyogQ2hlbHNpbyBhZGFwdGVycyB1c2UgaXZsYW5fdmxkIGJpdCB0byBtYXRjaCB2bGFuIHBhY2tldHNcbitcdFx0XHQgKiBhcyA4MDIuMVEuIEFsc28sIHdoZW4gdmxhbiB0YWcgaXMgcHJlc2VudCBpbiBwYWNrZXRzLFxuK1x0XHRcdCAqIGV0aHR5cGUgbWF0Y2ggaXMgdXNlZCB0aGVuIHRvIG1hdGNoIG9uIGV0aHR5cGUgb2YgaW5uZXJcbitcdFx0XHQgKiBoZWFkZXIgaWUuIHRoZSBoZWFkZXIgZm9sbG93aW5nIHRoZSB2bGFuIGhlYWRlci5cbitcdFx0XHQgKiBTbywgc2V0IHRoZSBpdmxhbl92bGQgYmFzZWQgb24gZXRodHlwZSBpbmZvIHN1cHBsaWVkIGJ5XG4rXHRcdFx0ICogVEMgZm9yIHZsYW4gcGFja2V0cyBpZiBpdHMgODAyLjFRLiBBbmQgdGhlbiByZXNldCB0aGVcbitcdFx0XHQgKiBldGh0eXBlIHZhbHVlIGVsc2UsIGh3IHdpbGwgdHJ5IHRvIG1hdGNoIHRoZSBzdXBwbGllZFxuK1x0XHRcdCAqIGV0aHR5cGUgdmFsdWUgd2l0aCBldGh0eXBlIG9mIGlubmVyIGhlYWRlci5cbitcdFx0XHQgKi9cbitcbitcdFx0XHRpZiAoZnMtXHUwMDNldmFsLmV0aHR5cGUgPT0gRVRIX1BfODAyMVEpIHtcbitcdFx0XHRcdGZzLVx1MDAzZXZhbC5ldGh0eXBlID0gMDtcbitcdFx0XHRcdGZzLVx1MDAzZW1hc2suZXRodHlwZSA9IDA7XG4rXHRcdFx0fVxuIFx0XHR9XG4gXHR9XG4gXG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC90NF9yZWdzLmggYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L3Q0X3JlZ3MuaFxuaW5kZXggNjk1OTE2YmEwNDA1ODUuLjM4YzU4NWYzYjFhZGExIDEwMDY0NFxuLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC90NF9yZWdzLmhcbisrKyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvdDRfcmVncy5oXG5AQCAtMTkyMSw2ICsxOTIxLDkgQEBcbiAjZGVmaW5lIE1BQ19QT1JUX1BUUF9TVU1fTE9fQSAweDk5MFxuICNkZWZpbmUgTUFDX1BPUlRfUFRQX1NVTV9ISV9BIDB4OTk0XG4gXG4rI2RlZmluZSBNUFNfUE9SVF9SWF9PVkxBTjBfQSAweDEyMFxuKyNkZWZpbmUgTVBTX1BPUlRfUlhfQ1RMX0EgICAgMFgxMDBcbitcbiAjZGVmaW5lIE1QU19DTU5fQ1RMX0FcdDB4OTAwMFxuIFxuICNkZWZpbmUgQ09VTlRQQVVTRU1DUlhfUyAgICA1XG4iLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0wMlQxMToxNTo0OC4zODQ2NjgwNTdaIiwiU2VxIjozLCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjoyMDk1NjA4MjY3MSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipBbmFseXppbmcgYSBQb3RlbnRpYWwgRHJpdmVyIFBhdGNoKipcblxuT2theSwgc28gSSdtIGxvb2tpbmcgYXQgdGhpcyBwYXRjaCB0aGF0IHR3ZWFrcyBgY3hnYjRfdGNfZmxvd2VyLmNgIGFuZCBgdDRfcmVncy5oYC4gSXQgc2VlbXMgdG8gYmUgYWRkaW5nIFFpblEgKDgwMi4xYWQpIFZMQU4gc3VwcG9ydCBieSBtb2RpZnlpbmcgYGN4Z2I0X3Byb2Nlc3NfZmxvd19tYXRjaGAsIHVzaW5nIGZ1bmN0aW9ucyBsaWtlIGB0NF93cml0ZV9yZWdgIGFuZCBgdDRfdHBfd3JfYml0c19pbmRpcmVjdGAgdG8gZGlyZWN0bHkgd3JpdGUgdG8gaGFyZHdhcmUgcmVnaXN0ZXJzLiBTdGFuZGFyZCBzdHVmZiBmb3IgZHJpdmVyIGRldmVsb3BtZW50LlxuXG5CdXQgd2FpdCBhIG1pbnV0ZS4uLiB0aGlzIGlzIHRoZSBDaGVsc2lvIGBjeGdiNGAgZHJpdmVyLCBhICpwaHlzaWNhbCogRXRoZXJuZXQgYWRhcHRlciBkcml2ZXIuIE15IGluaXRpYWwgaW5zdGluY3QgaXMgdG8gd29uZGVyIGhvdyB0aGlzIGNvZGUgY291bGQgZXZlbiBiZSB0cmlnZ2VyZWQgaW4gYSB2aXJ0dWFsaXplZCBjb250ZXh0LiBJIG1lYW4sIHdlJ3JlIHRhbGtpbmcgYWJvdXQgaGFyZHdhcmUgaW50ZXJhY3Rpb25zIGhlcmUuIFVubGVzcyB0aGVyZSdzIGEgc29mdHdhcmUgZW11bGF0b3IgaW4gcGxhY2UsIGxpa2UgYG1hYzgwMjExX2h3c2ltYCBvciBzb21ldGhpbmcgc2ltaWxhciwgb3IgcGVyaGFwcyBhIGNvbXBsZXRlbHkgdmlydHVhbCBkcml2ZXIgbGlrZSBgdmlydGlvYCBvciBgdmV0aGAgaXMgaW52b2x2ZWQsIHRoaXMgY29kZSBwYXRoIGdlbmVyYWxseSB3b3VsZG4ndCBiZSBhY2Nlc3NpYmxlIGluIGEgY2xvdWQgZW52aXJvbm1lbnQgbGlrZSBHQ0Ugb3Igd2l0aGluIFFFTVUuXG5cbkdpdmVuIHRoYXQgQ2hlbHNpbyBgY3hnYjRgIGlzIGEgcGh5c2ljYWwgYWRhcHRlciBkcml2ZXIsIEkgbmVlZCB0byBpbnZlc3RpZ2F0ZSBpZiB0aGVyZSdzIGFueSBlbXVsYXRpb24gc3BlY2lmaWMgdG8gdGhpcyBkcml2ZXIuIExldCBtZSBkaWcgaW50byB0aGUga2VybmVsIHRyZWUgYW5kIHNlYXJjaCBmb3IgaW5zdGFuY2VzIG9mIGBjeGdiNGAgdG8gZ2V0IGEgYmV0dGVyIGhhbmRsZSBvbiB0aGUgc2l0dWF0aW9uLiBJIG5lZWQgdG8gdW5kZXJzdGFuZCB0aGUgcG90ZW50aWFsIGVudmlyb25tZW50IGluIHdoaWNoIHRoaXMgcGF0Y2ggd291bGQgYmUgcmVsZXZhbnQuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjMxNjQsIk91dHB1dFRva2VucyI6MzgsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoyNDAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0wMlQxMToxNjowOS4zNDA3NTM5NjhaIiwiU2VxIjo0LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NDMxODI2NDk0LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcImN4Z2I0XCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcIlxcbkZ1bGwgb3V0cHV0IGlzIHRvbyBsb25nLCBzaG93aW5nIDUwMCBvdXQgb2YgNDU5NSBsaW5lcy5cXG5Vc2UgbW9yZSBwcmVjaXNlIGV4cHJlc3Npb24gaWYgcG9zc2libGUuXFxuXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9NYWtlZmlsZS01LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvTWFrZWZpbGU6NjpvYmotJChDT05GSUdfQ0hFTFNJT19UNCkgKz0gY3hnYjQub1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvTWFrZWZpbGUtNy1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L01ha2VmaWxlOjg6Y3hnYjQtb2JqcyA6PSBjeGdiNF9tYWluLm8gbDJ0Lm8gc210Lm8gdDRfaHcubyBzZ2UubyBjbGlwX3RibC5vIGN4Z2I0X2V0aHRvb2wubyBcXFxcXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9NYWtlZmlsZTo5OlxcdCAgICAgIGN4Z2I0X3VsZC5vIHNycS5vIHNjaGVkLm8gY3hnYjRfZmlsdGVyLm8gY3hnYjRfdGNfdTMyLm8gXFxcXFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvTWFrZWZpbGU6MTA6XFx0ICAgICAgY3hnYjRfcHRwLm8gY3hnYjRfdGNfZmxvd2VyLm8gY3hnYjRfY3VkYmcubyBjeGdiNF9tcHMubyBcXFxcXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9NYWtlZmlsZToxMTpcXHQgICAgICBjdWRiZ19jb21tb24ubyBjdWRiZ19saWIubyBjdWRiZ196bGliLm8gY3hnYjRfdGNfbXFwcmlvLm8gXFxcXFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvTWFrZWZpbGU6MTI6XFx0ICAgICAgY3hnYjRfdGNfbWF0Y2hhbGwub1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvTWFrZWZpbGU6MTM6Y3hnYjQtJChDT05GSUdfQ0hFTFNJT19UNF9EQ0IpICs9ICBjeGdiNF9kY2Iub1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvTWFrZWZpbGU6MTQ6Y3hnYjQtJChDT05GSUdfQ0hFTFNJT19UNF9GQ09FKSArPSAgY3hnYjRfZmNvZS5vXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9NYWtlZmlsZToxNTpjeGdiNC0kKENPTkZJR19ERUJVR19GUykgKz0gY3hnYjRfZGVidWdmcy5vXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9NYWtlZmlsZToxNjpjeGdiNC0kKENPTkZJR19USEVSTUFMKSArPSBjeGdiNF90aGVybWFsLm9cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY2xpcF90YmwuYy0xNy0jaW5jbHVkZSBcXHUwMDNjbmV0L2FkZHJjb25mLmhcXHUwMDNlXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jbGlwX3RibC5jOjE4OiNpbmNsdWRlIFxcXCJjeGdiNC5oXFxcIlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY2xpcF90YmwuYy0xOS0jaW5jbHVkZSBcXFwiY2xpcF90YmwuaFxcXCJcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY2xpcF90YmwuYz01OT1zdGF0aWMgaW50IGNsaXA2X3JlbGVhc2VfbWJveChjb25zdCBzdHJ1Y3QgbmV0X2RldmljZSAqZGV2LFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jbGlwX3RibC5jLTczLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY2xpcF90YmwuYzo3NDppbnQgY3hnYjRfY2xpcF9nZXQoY29uc3Qgc3RydWN0IG5ldF9kZXZpY2UgKmRldiwgY29uc3QgdTMyICpsaXAsIHU4IHY2KVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY2xpcF90YmwuYy03NS17XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2NsaXBfdGJsLmMtMTQzLX1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2NsaXBfdGJsLmM6MTQ0OkVYUE9SVF9TWU1CT0woY3hnYjRfY2xpcF9nZXQpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY2xpcF90YmwuYy0xNDUtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jbGlwX3RibC5jOjE0Njp2b2lkIGN4Z2I0X2NsaXBfcmVsZWFzZShjb25zdCBzdHJ1Y3QgbmV0X2RldmljZSAqZGV2LCBjb25zdCB1MzIgKmxpcCwgdTggdjYpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jbGlwX3RibC5jLTE0Ny17XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2NsaXBfdGJsLmMtMTg5LX1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2NsaXBfdGJsLmM6MTkwOkVYUE9SVF9TWU1CT0woY3hnYjRfY2xpcF9yZWxlYXNlKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2NsaXBfdGJsLmMtMTkxLVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jbGlwX3RibC5jLTE5NS0gKi9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2NsaXBfdGJsLmM6MTk2OnN0YXRpYyBpbnQgY3hnYjRfdXBkYXRlX2Rldl9jbGlwKHN0cnVjdCBuZXRfZGV2aWNlICpyb290X2RldixcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2NsaXBfdGJsLmMtMTk3LVxcdFxcdFxcdFxcdCBzdHJ1Y3QgbmV0X2RldmljZSAqZGV2KVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jbGlwX3RibC5jLTIwOC1cXHRsaXN0X2Zvcl9lYWNoX2VudHJ5KGlmYSwgXFx1MDAyNmlkZXYtXFx1MDAzZWFkZHJfbGlzdCwgaWZfbGlzdCkge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY2xpcF90YmwuYzoyMDk6XFx0XFx0cmV0ID0gY3hnYjRfY2xpcF9nZXQoZGV2LCAoY29uc3QgdTMyICopaWZhLVxcdTAwM2VhZGRyLnM2X2FkZHIsIDEpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY2xpcF90YmwuYy0yMTAtXFx0XFx0aWYgKHJldCBcXHUwMDNjIDApXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2NsaXBfdGJsLmMtMjE3LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY2xpcF90YmwuYzoyMTg6aW50IGN4Z2I0X3VwZGF0ZV9yb290X2Rldl9jbGlwKHN0cnVjdCBuZXRfZGV2aWNlICpkZXYpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jbGlwX3RibC5jLTIxOS17XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2NsaXBfdGJsLmMtMjIzLVxcdC8qIEZpcnN0IHBvcHVsYXRlIHRoZSByZWFsIG5ldCBkZXZpY2UncyBJUHY2IGFkZHJlc3NlcyAqL1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY2xpcF90YmwuYzoyMjQ6XFx0cmV0ID0gY3hnYjRfdXBkYXRlX2Rldl9jbGlwKGRldiwgZGV2KTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2NsaXBfdGJsLmMtMjI1LVxcdGlmIChyZXQpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2NsaXBfdGJsLmMtMjMwLVxcdGlmIChyb290X2Rldikge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY2xpcF90YmwuYzoyMzE6XFx0XFx0cmV0ID0gY3hnYjRfdXBkYXRlX2Rldl9jbGlwKHJvb3RfZGV2LCBkZXYpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY2xpcF90YmwuYy0yMzItXFx0XFx0aWYgKHJldClcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY2xpcF90YmwuYy0yNDAtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jbGlwX3RibC5jOjI0MTpcXHRcXHRyZXQgPSBjeGdiNF91cGRhdGVfZGV2X2NsaXAocm9vdF9kZXYsIGRldik7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jbGlwX3RibC5jLTI0Mi1cXHRcXHRpZiAocmV0KVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jbGlwX3RibC5jLTI0Ny19XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jbGlwX3RibC5jOjI0ODpFWFBPUlRfU1lNQk9MKGN4Z2I0X3VwZGF0ZV9yb290X2Rldl9jbGlwKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2NsaXBfdGJsLmMtMjQ5LVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jbGlwX3RibC5oPTM5PXN0cnVjdCBjbGlwX3RibCAqdDRfaW5pdF9jbGlwX3RibCh1bnNpZ25lZCBpbnQgY2xpcHRfc3RhcnQsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jbGlwX3RibC5oLTQwLVxcdFxcdFxcdFxcdCAgdW5zaWduZWQgaW50IGNsaXB0X2VuZCk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jbGlwX3RibC5oOjQxOmludCBjeGdiNF9jbGlwX2dldChjb25zdCBzdHJ1Y3QgbmV0X2RldmljZSAqZGV2LCBjb25zdCB1MzIgKmxpcCwgdTggdjYpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY2xpcF90YmwuaDo0Mjp2b2lkIGN4Z2I0X2NsaXBfcmVsZWFzZShjb25zdCBzdHJ1Y3QgbmV0X2RldmljZSAqZGV2LCBjb25zdCB1MzIgKmxpcCwgdTggdjYpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY2xpcF90YmwuaC00My1pbnQgY2xpcF90Ymxfc2hvdyhzdHJ1Y3Qgc2VxX2ZpbGUgKnNlcSwgdm9pZCAqdik7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jbGlwX3RibC5oOjQ0OmludCBjeGdiNF91cGRhdGVfcm9vdF9kZXZfY2xpcChzdHJ1Y3QgbmV0X2RldmljZSAqZGV2KTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2NsaXBfdGJsLmgtNDUtdm9pZCB0NF9jbGVhbnVwX2NsaXBfdGJsKHN0cnVjdCBhZGFwdGVyICphZGFwKTtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3VkYmdfY29tbW9uLmMtNS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N1ZGJnX2NvbW1vbi5jOjY6I2luY2x1ZGUgXFxcImN4Z2I0LmhcXFwiXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jdWRiZ19jb21tb24uYy03LSNpbmNsdWRlIFxcXCJjdWRiZ19pZi5oXFxcIlxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jdWRiZ19saWIuYy05LSNpbmNsdWRlIFxcXCJ0NF9yZWdzLmhcXFwiXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jdWRiZ19saWIuYzoxMDojaW5jbHVkZSBcXFwiY3hnYjQuaFxcXCJcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N1ZGJnX2xpYi5jOjExOiNpbmNsdWRlIFxcXCJjeGdiNF9jdWRiZy5oXFxcIlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3VkYmdfbGliLmMtMTItI2luY2x1ZGUgXFxcImN1ZGJnX2lmLmhcXFwiXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N1ZGJnX2xpYi5jLTE2LSNpbmNsdWRlIFxcXCJjdWRiZ196bGliLmhcXFwiXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jdWRiZ19saWIuYzoxNzojaW5jbHVkZSBcXFwiY3hnYjRfdGNfbXFwcmlvLmhcXFwiXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jdWRiZ19saWIuYy0xOC1cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3VkYmdfemxpYi5jLTctXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jdWRiZ196bGliLmM6ODojaW5jbHVkZSBcXFwiY3hnYjQuaFxcXCJcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N1ZGJnX3psaWIuYy05LSNpbmNsdWRlIFxcXCJjdWRiZ19pZi5oXFxcIlxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNC5oLTU4LSNpbmNsdWRlIFxcXCJ0NF9jaGlwX3R5cGUuaFxcXCJcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0Lmg6NTk6I2luY2x1ZGUgXFxcImN4Z2I0X3VsZC5oXFxcIlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjQuaC02MC0jaW5jbHVkZSBcXFwidDRmd19hcGkuaFxcXCJcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjQuaD0xNDI9ZW51bSB7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0LmgtMTQ4LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjQuaDoxNDk6ZW51bSBjeGdiNF9uZXRkZXZfdGxzX29wcyB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNC5oLTE1MC1cXHRDWEdCNF9UTFNERVZfT1BTICA9IDEsXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0LmgtMTUzLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjQuaDoxNTQ6c3RydWN0IGN4Z2I0X2Jvb3RjZmdfZGF0YSB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNC5oLTE1NS1cXHRfX2xlMTYgc2lnbmF0dXJlO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNC5oLTE1OC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0Lmg6MTU5OnN0cnVjdCBjeGdiNF9wY2lyX2RhdGEge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjQuaC0xNjAtXFx0X19sZTMyIHNpZ25hdHVyZTtcXHQvKiBTaWduYXR1cmUuIFRoZSBzdHJpbmcgXFxcIlBDSVJcXFwiICovXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0LmgtMTc0LS8qIEJJT1MgYm9vdCBoZWFkZXJzICovXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNC5oOjE3NTpzdHJ1Y3QgY3hnYjRfcGNpX2V4cF9yb21faGVhZGVyIHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0LmgtMTc2LVxcdF9fbGUxNiBzaWduYXR1cmU7XFx0LyogUk9NIFNpZ25hdHVyZS4gU2hvdWxkIGJlIDB4YWE1NSAqL1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNC5oPTE5Nj1lbnVtIHtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjQuaC0xOTktXFx0Qk9PVF9TSUdOQVRVUkUgPSAweGFhNTUsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNC5oOjIwMDpcXHRCT09UX01JTl9TSVpFID0gc2l6ZW9mKHN0cnVjdCBjeGdiNF9wY2lfZXhwX3JvbV9oZWFkZXIpLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjQuaC0yMDEtXFx0Qk9PVF9NQVhfU0laRSA9IDEwMjQgKiBCT09UX1NJWkVfSU5DLFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNC5oPTUyNT1zdGF0aWMgaW5saW5lIHN0cnVjdCBtYm94X2NtZCAqbWJveF9jbWRfbG9nX2VudHJ5KHN0cnVjdCBtYm94X2NtZF9sb2cgKmxvZyxcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjQuaC01MzctXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNC5oOjUzODpzdHJ1Y3QgY3hnYjRfZXRodG9vbF9sYl90ZXN0IHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0LmgtNTM5LVxcdHN0cnVjdCBjb21wbGV0aW9uIGNvbXBsZXRpb247XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0Lmg9NTUxPXN0cnVjdCB0cmFjZV9wYXJhbXMge1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNC5oLTU2MS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0Lmg6NTYyOnN0cnVjdCBjeGdiNF9md19kYXRhIHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0LmgtNTYzLVxcdF9fYmUzMiBzaWduYXR1cmU7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0Lmg9NjQ1PXN0cnVjdCBzZ2VfcnNwcTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0LmgtNjQ2LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjQuaDo2NDc6I2luY2x1ZGUgXFxcImN4Z2I0X2RjYi5oXFxcIlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjQuaC02NDgtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNC5oLTY0OS0jaWZkZWYgQ09ORklHX0NIRUxTSU9fVDRfRkNPRVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjQuaDo2NTA6I2luY2x1ZGUgXFxcImN4Z2I0X2Zjb2UuaFxcXCJcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0LmgtNjUxLSNlbmRpZiAvKiBDT05GSUdfQ0hFTFNJT19UNF9GQ09FICovXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0Lmg9NjUzPXN0cnVjdCBwb3J0X2luZm8ge1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNC5oLTY5Ni1cXHRzdHJ1Y3QgbXV0ZXggdmlfbWlycm9yX211dGV4OyAvKiBTeW5jIGFjY2VzcyB0byBNaXJyb3IgVkkgaW5mbyAqL1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjQuaDo2OTc6XFx0c3RydWN0IGN4Z2I0X2V0aHRvb2xfbGJfdGVzdCBldGh0b29sX2xiO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjQuaC02OTgtfTtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjQuaD05MDY9c3RydWN0IHNnZV91bGRfdHhxX2luZm8ge1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNC5oLTkxMi0vKiBzdHJ1Y3QgdG8gbWFpbnRhaW4gVUxEIGxpc3QgdG8gcmVhbGxvY2F0ZSBVTEQgcmVzb3VyY2VzIG9uIGhvdHBsdWcgKi9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0Lmg6OTEzOnN0cnVjdCBjeGdiNF91bGRfbGlzdCB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNC5oOjkxNDpcXHRzdHJ1Y3QgY3hnYjRfdWxkX2luZm8gdWxkX2luZm87XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNC5oLTkxNS1cXHRzdHJ1Y3QgbGlzdF9oZWFkIGxpc3Rfbm9kZTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0Lmg6OTE2OlxcdGVudW0gY3hnYjRfdWxkIHVsZF90eXBlO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjQuaC05MTctfTtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjQuaD0xMDg1PXN0cnVjdCBtcHNfZW50cmllc19yZWYge1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNC5oLTEwOTItXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNC5oOjEwOTM6c3RydWN0IGN4Z2I0X2V0aHRvb2xfZmlsdGVyX2luZm8ge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjQuaC0xMDk0LVxcdHUzMiAqbG9jX2FycmF5OyAvKiBBcnJheSBob2xkaW5nIHRoZSBhY3R1YWwgVElEcyBzZXQgdG8gZmlsdGVycyAqL1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNC5oLTEwOTgtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNC5oOjEwOTk6c3RydWN0IGN4Z2I0X2V0aHRvb2xfZmlsdGVyIHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0LmgtMTEwMC1cXHR1MzIgbmVudHJpZXM7IC8qIEFkYXB0ZXIgd2lkZSBudW1iZXIgb2Ygc3VwcG9ydGVkIGZpbHRlcnMgKi9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0Lmg6MTEwMTpcXHRzdHJ1Y3QgY3hnYjRfZXRodG9vbF9maWx0ZXJfaW5mbyAqcG9ydDsgLyogUGVyIHBvcnQgZW50cnkgKi9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0LmgtMTEwMi19O1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNC5oPTExMDQ9c3RydWN0IGFkYXB0ZXIge1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNC5oLTExMjItXFx0c3RydWN0IGFkYXB0ZXJfcGFyYW1zIHBhcmFtcztcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0Lmg6MTEyMzpcXHRzdHJ1Y3QgY3hnYjRfdmlydF9yZXMgdnJlcztcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0LmgtMTEyNC1cXHR1bnNpZ25lZCBpbnQgc3dpbnRyO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNC5oLTExNDgtXFx0c3RydWN0IHNtdF9kYXRhICpzbXQ7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNC5oOjExNDk6XFx0c3RydWN0IGN4Z2I0X3VsZF9pbmZvICp1bGQ7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNC5oLTExNTAtXFx0dm9pZCAqdWxkX2hhbmRsZVtDWEdCNF9VTERfTUFYXTtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjQuaC0xMTk2LVxcdC8qIFRDIHUzMiBvZmZsb2FkICovXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNC5oOjExOTc6XFx0c3RydWN0IGN4Z2I0X3RjX3UzMl90YWJsZSAqdGNfdTMyO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjQuaC0xMTk4LVxcdHN0cnVjdCBjaGNyX2t0bHMgY2hjcl9rdGxzO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNC5oLTEyMjUtXFx0LyogVEMgTVFQUklPIG9mZmxvYWQgKi9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0Lmg6MTIyNjpcXHRzdHJ1Y3QgY3hnYjRfdGNfbXFwcmlvICp0Y19tcXByaW87XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNC5oLTEyMjctXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNC5oLTEyMjgtXFx0LyogVEMgTUFUQ0hBTEwgY2xhc3NpZmllciBvZmZsb2FkICovXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNC5oOjEyMjk6XFx0c3RydWN0IGN4Z2I0X3RjX21hdGNoYWxsICp0Y19tYXRjaGFsbDtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0LmgtMTIzMC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0LmgtMTIzMS1cXHQvKiBFdGh0b29sIG4tdHVwbGUgKi9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0Lmg6MTIzMjpcXHRzdHJ1Y3QgY3hnYjRfZXRodG9vbF9maWx0ZXIgKmV0aHRvb2xfZmlsdGVycztcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0LmgtMTIzMy1cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjQuaD0xNTk3PXN0YXRpYyBpbmxpbmUgdW5zaWduZWQgaW50IHF0aW1lcl92YWwoY29uc3Qgc3RydWN0IGFkYXB0ZXIgKmFkYXAsXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0LmgtMTYwNS0vKiBkcml2ZXIgbmFtZSB1c2VkIGZvciBldGh0b29sX2RydmluZm8gKi9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0Lmg6MTYwNjpleHRlcm4gY2hhciBjeGdiNF9kcml2ZXJfbmFtZVtdO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjQuaC0xNjA3LVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNC5oPTE2MTM9bmV0ZGV2X3R4X3QgdDRfc3RhcnRfeG1pdChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3QgbmV0X2RldmljZSAqZGV2KTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0Lmg6MTYxNDppbnQgY3hnYjRfc2VsZnRlc3RfbGJfcGt0KHN0cnVjdCBuZXRfZGV2aWNlICpuZXRkZXYpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjQuaC0xNjE1LWludCB0NF9ldGhyeF9oYW5kbGVyKHN0cnVjdCBzZ2VfcnNwcSAqcSwgY29uc3QgX19iZTY0ICpyc3AsXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0Lmg9MTY0MT1pbnQgdDRfc2dlX2V0aF90eHFfZWdyZXNzX3VwZGF0ZShzdHJ1Y3QgYWRhcHRlciAqYWRhcCwgc3RydWN0IHNnZV9ldGhfdHhxICpxLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjQuaC0xNjQyLVxcdFxcdFxcdFxcdCBpbnQgbWF4cmVjbGFpbSk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNC5oOjE2NDM6dm9pZCBjeGdiNF9zZXRfZXRodG9vbF9vcHMoc3RydWN0IG5ldF9kZXZpY2UgKm5ldGRldik7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNC5oOjE2NDQ6aW50IGN4Z2I0X3dyaXRlX3Jzcyhjb25zdCBzdHJ1Y3QgcG9ydF9pbmZvICpwaSwgY29uc3QgdTE2ICpxdWV1ZXMpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjQuaC0xNjQ1LWVudW0gY3BsX3R4X3RubF9sc29fdHlwZSBjeGdiX2VuY2FwX29mZmxvYWRfc3VwcG9ydGVkKHN0cnVjdCBza19idWZmICpza2IpO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNC5oPTE3NDE9c3RhdGljIGlubGluZSBpbnQgaGFzaF9tYWNfYWRkcihjb25zdCB1OCAqYWRkcilcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjQuaC0xNzUxLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjQuaDoxNzUyOmludCBjeGdiNF9zZXRfcnNwcV9pbnRyX3BhcmFtcyhzdHJ1Y3Qgc2dlX3JzcHEgKnEsIHVuc2lnbmVkIGludCB1cyxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0LmgtMTc1My1cXHRcXHRcXHQgICAgICAgdW5zaWduZWQgaW50IGNudCk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNC5oPTE3NTQ9c3RhdGljIGlubGluZSB2b2lkIGluaXRfcnNwcShzdHJ1Y3QgYWRhcHRlciAqYWRhcCwgc3RydWN0IHNnZV9yc3BxICpxLFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNC5oLTE3NTgtXFx0cS1cXHUwMDNlYWRhcCA9IGFkYXA7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNC5oOjE3NTk6XFx0Y3hnYjRfc2V0X3JzcHFfaW50cl9wYXJhbXMocSwgdXMsIGNudCk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNC5oLTE3NjAtXFx0cS1cXHUwMDNlaXFlX2xlbiA9IGlxZV9zaXplO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNC5oPTIxMDA9dm9pZCBmcmVlX3R4X2Rlc2Moc3RydWN0IGFkYXB0ZXIgKmFkYXAsIHN0cnVjdCBzZ2VfdHhxICpxLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjQuaC0yMTAxLVxcdFxcdCAgdW5zaWduZWQgaW50IG4sIGJvb2wgdW5tYXApO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjQuaDoyMTAyOnZvaWQgY3hnYjRfZW9zd190eHFfZnJlZV9kZXNjKHN0cnVjdCBhZGFwdGVyICphZGFwLCBzdHJ1Y3Qgc2dlX2Vvc3dfdHhxICp0eHEsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNC5oLTIxMDMtXFx0XFx0XFx0ICAgICAgdTMyIG5kZXNjKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0Lmg6MjEwNDppbnQgY3hnYjRfZXRob2ZsZF9zZW5kX2Zsb3djKHN0cnVjdCBuZXRfZGV2aWNlICpkZXYsIHUzMiBlb3RpZCwgdTMyIHRjKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0Lmg6MjEwNTp2b2lkIGN4Z2I0X2V0aG9mbGRfcmVzdGFydChzdHJ1Y3QgdGFza2xldF9zdHJ1Y3QgKnQpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjQuaDoyMTA2OmludCBjeGdiNF9ldGhvZmxkX3J4X2hhbmRsZXIoc3RydWN0IHNnZV9yc3BxICpxLCBjb25zdCBfX2JlNjQgKnJzcCxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0LmgtMjEwNy1cXHRcXHRcXHQgICAgIGNvbnN0IHN0cnVjdCBwa3RfZ2wgKnNpKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0Lmg9MjEwOD12b2lkIGZyZWVfdHhxKHN0cnVjdCBhZGFwdGVyICphZGFwLCBzdHJ1Y3Qgc2dlX3R4cSAqcSk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNC5oOjIxMDk6dm9pZCBjeGdiNF9yZWNsYWltX2NvbXBsZXRlZF90eChzdHJ1Y3QgYWRhcHRlciAqYWRhcCxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0LmgtMjExMC1cXHRcXHRcXHRcXHRzdHJ1Y3Qgc2dlX3R4cSAqcSwgYm9vbCB1bm1hcCk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNC5oOjIxMTE6aW50IGN4Z2I0X21hcF9za2Ioc3RydWN0IGRldmljZSAqZGV2LCBjb25zdCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjQuaC0yMTEyLVxcdFxcdCAgZG1hX2FkZHJfdCAqYWRkcik7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNC5oOjIxMTM6dm9pZCBjeGdiNF9pbmxpbmVfdHhfc2tiKGNvbnN0IHN0cnVjdCBza19idWZmICpza2IsIGNvbnN0IHN0cnVjdCBzZ2VfdHhxICpxLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjQuaC0yMTE0LVxcdFxcdFxcdCB2b2lkICpwb3MpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjQuaDoyMTE1OnZvaWQgY3hnYjRfd3JpdGVfc2dsKGNvbnN0IHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBzZ2VfdHhxICpxLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjQuaC0yMTE2LVxcdFxcdCAgICAgc3RydWN0IHVscHR4X3NnbCAqc2dsLCB1NjQgKmVuZCwgdW5zaWduZWQgaW50IHN0YXJ0LFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjQuaC0yMTE3LVxcdFxcdCAgICAgY29uc3QgZG1hX2FkZHJfdCAqYWRkcik7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNC5oOjIxMTg6dm9pZCBjeGdiNF93cml0ZV9wYXJ0aWFsX3NnbChjb25zdCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3Qgc2dlX3R4cSAqcSxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0LmgtMjExOS1cXHRcXHRcXHQgICAgIHN0cnVjdCB1bHB0eF9zZ2wgKnNnbCwgdTY0ICplbmQsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNC5oLTIxMjAtXFx0XFx0XFx0ICAgICBjb25zdCBkbWFfYWRkcl90ICphZGRyLCB1MzIgc3RhcnQsIHUzMiBzZW5kX2xlbik7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNC5oOjIxMjE6dm9pZCBjeGdiNF9yaW5nX3R4X2RiKHN0cnVjdCBhZGFwdGVyICphZGFwLCBzdHJ1Y3Qgc2dlX3R4cSAqcSwgaW50IG4pO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjQuaC0yMTIyLWludCB0NF9zZXRfdmxhbl9hY2woc3RydWN0IGFkYXB0ZXIgKmFkYXAsIHVuc2lnbmVkIGludCBtYm94LCB1bnNpZ25lZCBpbnQgdmYsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNC5oLTIxMjMtXFx0XFx0ICAgIHUxNiB2bGFuKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0Lmg6MjEyNDppbnQgY3hnYjRfZGNiX2VuYWJsZWQoY29uc3Qgc3RydWN0IG5ldF9kZXZpY2UgKmRldik7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNC5oLTIxMjUtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNC5oOjIxMjY6aW50IGN4Z2I0X3RoZXJtYWxfaW5pdChzdHJ1Y3QgYWRhcHRlciAqYWRhcCk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNC5oOjIxMjc6aW50IGN4Z2I0X3RoZXJtYWxfcmVtb3ZlKHN0cnVjdCBhZGFwdGVyICphZGFwKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0Lmg6MjEyODppbnQgY3hnYjRfc2V0X21zaXhfYWZmKHN0cnVjdCBhZGFwdGVyICphZGFwLCB1bnNpZ25lZCBzaG9ydCB2ZWMsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNC5oLTIxMjktXFx0XFx0ICAgICAgIGNwdW1hc2tfdmFyX3QgKmFmZl9tYXNrLCBpbnQgaWR4KTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0Lmg6MjEzMDp2b2lkIGN4Z2I0X2NsZWFyX21zaXhfYWZmKHVuc2lnbmVkIHNob3J0IHZlYywgY3B1bWFza192YXJfdCBhZmZfbWFzayk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNC5oLTIxMzEtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNC5oOjIxMzI6aW50IGN4Z2I0X2NoYW5nZV9tYWMoc3RydWN0IHBvcnRfaW5mbyAqcGksIHVuc2lnbmVkIGludCB2aWlkLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjQuaC0yMTMzLVxcdFxcdCAgICAgaW50ICp0Y2FtX2lkeCwgY29uc3QgdTggKmFkZHIsXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0LmgtMjEzNS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0Lmg6MjEzNjppbnQgY3hnYjRfYWxsb2NfbWFjX2ZpbHQoc3RydWN0IGFkYXB0ZXIgKmFkYXAsIHVuc2lnbmVkIGludCB2aWlkLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjQuaC0yMTM3LVxcdFxcdFxcdCBib29sIGZyZWUsIHVuc2lnbmVkIGludCBuYWRkcixcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjQuaC0yMTM5LVxcdFxcdFxcdCB1NjQgKmhhc2gsIGJvb2wgc2xlZXBfb2spO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjQuaDoyMTQwOmludCBjeGdiNF9mcmVlX21hY19maWx0KHN0cnVjdCBhZGFwdGVyICphZGFwLCB1bnNpZ25lZCBpbnQgdmlpZCxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0LmgtMjE0MS1cXHRcXHRcXHR1bnNpZ25lZCBpbnQgbmFkZHIsIGNvbnN0IHU4ICoqYWRkciwgYm9vbCBzbGVlcF9vayk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNC5oOjIxNDI6aW50IGN4Z2I0X2luaXRfbXBzX3JlZl9lbnRyaWVzKHN0cnVjdCBhZGFwdGVyICphZGFwKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0Lmg6MjE0Mzp2b2lkIGN4Z2I0X2ZyZWVfbXBzX3JlZl9lbnRyaWVzKHN0cnVjdCBhZGFwdGVyICphZGFwKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0Lmg6MjE0NDppbnQgY3hnYjRfdXBkYXRlX21hY19maWx0KHN0cnVjdCBwb3J0X2luZm8gKnBpLCB1bnNpZ25lZCBpbnQgdmlpZCxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0LmgtMjE0NS1cXHRcXHRcXHQgIGludCAqdGNhbV9pZHgsIGNvbnN0IHU4ICphZGRyLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjQuaC0yMTQ2LVxcdFxcdFxcdCAgYm9vbCBwZXJzaXN0ZW50LCB1OCAqc210X2lkeCk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNC5oOjIxNDc6aW50IGN4Z2I0X2dldF9tc2l4X2lkeF9mcm9tX2JtYXAoc3RydWN0IGFkYXB0ZXIgKmFkYXApO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjQuaDoyMTQ4OnZvaWQgY3hnYjRfZnJlZV9tc2l4X2lkeF9pbl9ibWFwKHN0cnVjdCBhZGFwdGVyICphZGFwLCB1MzIgbXNpeF9pZHgpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjQuaDoyMTQ5OnZvaWQgY3hnYjRfZW5hYmxlX3J4KHN0cnVjdCBhZGFwdGVyICphZGFwLCBzdHJ1Y3Qgc2dlX3JzcHEgKnEpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjQuaDoyMTUwOnZvaWQgY3hnYjRfcXVpZXNjZV9yeChzdHJ1Y3Qgc2dlX3JzcHEgKnEpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjQuaDoyMTUxOmludCBjeGdiNF9wb3J0X21pcnJvcl9hbGxvYyhzdHJ1Y3QgbmV0X2RldmljZSAqZGV2KTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0Lmg6MjE1Mjp2b2lkIGN4Z2I0X3BvcnRfbWlycm9yX2ZyZWUoc3RydWN0IG5ldF9kZXZpY2UgKmRldik7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNC5oLTIxNTMtI2lmIElTX0VOQUJMRUQoQ09ORklHX0NIRUxTSU9fVExTX0RFVklDRSlcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0Lmg6MjE1NDppbnQgY3hnYjRfc2V0X2t0bHNfZmVhdHVyZShzdHJ1Y3QgYWRhcHRlciAqYWRhcCwgYm9vbCBlbmFibGUpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjQuaC0yMTU1LSNlbmRpZlxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNF9jdWRiZy5jLTYtI2luY2x1ZGUgXFxcInQ0X3JlZ3MuaFxcXCJcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0X2N1ZGJnLmM6NzojaW5jbHVkZSBcXFwiY3hnYjQuaFxcXCJcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0X2N1ZGJnLmM6ODojaW5jbHVkZSBcXFwiY3hnYjRfY3VkYmcuaFxcXCJcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0X2N1ZGJnLmMtOS0jaW5jbHVkZSBcXFwiY3VkYmdfemxpYi5oXFxcIlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjRfY3VkYmcuYy0xMC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0X2N1ZGJnLmM6MTE6c3RhdGljIGNvbnN0IHN0cnVjdCBjeGdiNF9jb2xsZWN0X2VudGl0eSBjeGdiNF9jb2xsZWN0X21lbV9kdW1wW10gPSB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNF9jdWRiZy5jLTEyLVxcdHsgQ1VEQkdfRURDMCwgY3VkYmdfY29sbGVjdF9lZGMwX21lbWluZm8gfSxcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjRfY3VkYmcuYy0xOC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0X2N1ZGJnLmM6MTk6c3RhdGljIGNvbnN0IHN0cnVjdCBjeGdiNF9jb2xsZWN0X2VudGl0eSBjeGdiNF9jb2xsZWN0X2h3X2R1bXBbXSA9IHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0X2N1ZGJnLmMtMjAtXFx0eyBDVURCR19NQk9YX0xPRywgY3VkYmdfY29sbGVjdF9tYm94X2xvZyB9LFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNF9jdWRiZy5jLTY4LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjRfY3VkYmcuYzo2OTpzdGF0aWMgY29uc3Qgc3RydWN0IGN4Z2I0X2NvbGxlY3RfZW50aXR5IGN4Z2I0X2NvbGxlY3RfZmxhc2hfZHVtcFtdID0ge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjRfY3VkYmcuYy03MC1cXHR7IENVREJHX0ZMQVNILCBjdWRiZ19jb2xsZWN0X2ZsYXNoIH0sXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0X2N1ZGJnLmMtNzItXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNF9jdWRiZy5jOjczOnUzMiBjeGdiNF9nZXRfZHVtcF9sZW5ndGgoc3RydWN0IGFkYXB0ZXIgKmFkYXAsIHUzMiBmbGFnKVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjRfY3VkYmcuYy03NC17XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0X2N1ZGJnLmMtNzktXFx0aWYgKGZsYWcgXFx1MDAyNiBDWEdCNF9FVEhfRFVNUF9IVykge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjRfY3VkYmcuYzo4MDpcXHRcXHRmb3IgKGkgPSAwOyBpIFxcdTAwM2MgQVJSQVlfU0laRShjeGdiNF9jb2xsZWN0X2h3X2R1bXApOyBpKyspIHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0X2N1ZGJnLmM6ODE6XFx0XFx0XFx0ZW50aXR5ID0gY3hnYjRfY29sbGVjdF9od19kdW1wW2ldLmVudGl0eTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0X2N1ZGJnLmMtODItXFx0XFx0XFx0bGVuICs9IGN1ZGJnX2dldF9lbnRpdHlfbGVuZ3RoKGFkYXAsIGVudGl0eSk7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0X2N1ZGJnLmMtODYtXFx0aWYgKGZsYWcgXFx1MDAyNiBDWEdCNF9FVEhfRFVNUF9NRU0pIHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0X2N1ZGJnLmM6ODc6XFx0XFx0Zm9yIChpID0gMDsgaSBcXHUwMDNjIEFSUkFZX1NJWkUoY3hnYjRfY29sbGVjdF9tZW1fZHVtcCk7IGkrKykge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjRfY3VkYmcuYzo4ODpcXHRcXHRcXHRlbnRpdHkgPSBjeGdiNF9jb2xsZWN0X21lbV9kdW1wW2ldLmVudGl0eTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0X2N1ZGJnLmMtODktXFx0XFx0XFx0bGVuICs9IGN1ZGJnX2dldF9lbnRpdHlfbGVuZ3RoKGFkYXAsIGVudGl0eSk7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0X2N1ZGJnLmMtMTAzLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjRfY3VkYmcuYzoxMDQ6c3RhdGljIHZvaWQgY3hnYjRfY3VkYmdfY29sbGVjdF9lbnRpdHkoc3RydWN0IGN1ZGJnX2luaXQgKnBkYmdfaW5pdCxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0X2N1ZGJnLmMtMTA1LVxcdFxcdFxcdFxcdCAgICAgICBzdHJ1Y3QgY3VkYmdfYnVmZmVyICpkYmdfYnVmZixcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0X2N1ZGJnLmM6MTA2OlxcdFxcdFxcdFxcdCAgICAgICBjb25zdCBzdHJ1Y3QgY3hnYjRfY29sbGVjdF9lbnRpdHkgKmVfYXJyLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjRfY3VkYmcuYy0xMDctXFx0XFx0XFx0XFx0ICAgICAgIHUzMiBhcnJfc2l6ZSwgdm9pZCAqYnVmLCB1MzIgKnRvdF9zaXplKVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNF9jdWRiZy5jLTExNC1cXHRmb3IgKGkgPSAwOyBpIFxcdTAwM2MgYXJyX3NpemU7IGkrKykge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjRfY3VkYmcuYzoxMTU6XFx0XFx0Y29uc3Qgc3RydWN0IGN4Z2I0X2NvbGxlY3RfZW50aXR5ICplID0gXFx1MDAyNmVfYXJyW2ldO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjRfY3VkYmcuYy0xMTYtXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0X2N1ZGJnLmM9MTU4PXN0YXRpYyB2b2lkIGN1ZGJnX2ZyZWVfY29tcHJlc3NfYnVmZihzdHJ1Y3QgY3VkYmdfaW5pdCAqcGRiZ19pbml0KVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNF9jdWRiZy5jLTE2Mi1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0X2N1ZGJnLmM6MTYzOmludCBjeGdiNF9jdWRiZ19jb2xsZWN0KHN0cnVjdCBhZGFwdGVyICphZGFwLCB2b2lkICpidWYsIHUzMiAqYnVmX3NpemUsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNF9jdWRiZy5jLTE2NC1cXHRcXHRcXHR1MzIgZmxhZylcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjRfY3VkYmcuYy0yMTktXFx0aWYgKGZsYWcgXFx1MDAyNiBDWEdCNF9FVEhfRFVNUF9IVylcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0X2N1ZGJnLmM6MjIwOlxcdFxcdGN4Z2I0X2N1ZGJnX2NvbGxlY3RfZW50aXR5KFxcdTAwMjZjdWRiZ19pbml0LCBcXHUwMDI2ZGJnX2J1ZmYsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNF9jdWRiZy5jOjIyMTpcXHRcXHRcXHRcXHRcXHQgICBjeGdiNF9jb2xsZWN0X2h3X2R1bXAsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNF9jdWRiZy5jOjIyMjpcXHRcXHRcXHRcXHRcXHQgICBBUlJBWV9TSVpFKGN4Z2I0X2NvbGxlY3RfaHdfZHVtcCksXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNF9jdWRiZy5jLTIyMy1cXHRcXHRcXHRcXHRcXHQgICBidWYsXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0X2N1ZGJnLmMtMjI2LVxcdGlmIChmbGFnIFxcdTAwMjYgQ1hHQjRfRVRIX0RVTVBfTUVNKVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjRfY3VkYmcuYzoyMjc6XFx0XFx0Y3hnYjRfY3VkYmdfY29sbGVjdF9lbnRpdHkoXFx1MDAyNmN1ZGJnX2luaXQsIFxcdTAwMjZkYmdfYnVmZixcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0X2N1ZGJnLmM6MjI4OlxcdFxcdFxcdFxcdFxcdCAgIGN4Z2I0X2NvbGxlY3RfbWVtX2R1bXAsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNF9jdWRiZy5jOjIyOTpcXHRcXHRcXHRcXHRcXHQgICBBUlJBWV9TSVpFKGN4Z2I0X2NvbGxlY3RfbWVtX2R1bXApLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjRfY3VkYmcuYy0yMzAtXFx0XFx0XFx0XFx0XFx0ICAgYnVmLFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNF9jdWRiZy5jLTIzMy1cXHRpZiAoZmxhZyBcXHUwMDI2IENYR0I0X0VUSF9EVU1QX0ZMQVNIKVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjRfY3VkYmcuYzoyMzQ6XFx0XFx0Y3hnYjRfY3VkYmdfY29sbGVjdF9lbnRpdHkoXFx1MDAyNmN1ZGJnX2luaXQsIFxcdTAwMjZkYmdfYnVmZixcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0X2N1ZGJnLmM6MjM1OlxcdFxcdFxcdFxcdFxcdCAgIGN4Z2I0X2NvbGxlY3RfZmxhc2hfZHVtcCxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0X2N1ZGJnLmM6MjM2OlxcdFxcdFxcdFxcdFxcdCAgIEFSUkFZX1NJWkUoY3hnYjRfY29sbGVjdF9mbGFzaF9kdW1wKSxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0X2N1ZGJnLmMtMjM3LVxcdFxcdFxcdFxcdFxcdCAgIGJ1ZixcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjRfY3VkYmcuYy0yNDgtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNF9jdWRiZy5jOjI0OTp2b2lkIGN4Z2I0X2luaXRfZXRodG9vbF9kdW1wKHN0cnVjdCBhZGFwdGVyICphZGFwdGVyKVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjRfY3VkYmcuYy0yNTAte1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNF9jdWRiZy5jLTI1NS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0X2N1ZGJnLmM6MjU2OnN0YXRpYyBpbnQgY3hnYjRfY3VkYmdfdm1jb3JlZGRfY29sbGVjdChzdHJ1Y3Qgdm1jb3JlZGRfZGF0YSAqZGF0YSwgdm9pZCAqYnVmKVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjRfY3VkYmcuYy0yNTcte1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNF9jdWRiZy5jLTI2MC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0X2N1ZGJnLmM6MjYxOlxcdHJldHVybiBjeGdiNF9jdWRiZ19jb2xsZWN0KGFkYXAsIGJ1ZiwgXFx1MDAyNmxlbiwgQ1hHQjRfRVRIX0RVTVBfQUxMKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0X2N1ZGJnLmMtMjYyLX1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0X2N1ZGJnLmMtMjYzLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjRfY3VkYmcuYzoyNjQ6aW50IGN4Z2I0X2N1ZGJnX3ZtY29yZV9hZGRfZHVtcChzdHJ1Y3QgYWRhcHRlciAqYWRhcClcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0X2N1ZGJnLmMtMjY1LXtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjRfY3VkYmcuYy0yNzQtXFx0c25wcmludGYoZGF0YS1cXHUwMDNlZHVtcF9uYW1lLCBzaXplb2YoZGF0YS1cXHUwMDNlZHVtcF9uYW1lKSwgXFxcIiVzXyVzXFxcIixcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0X2N1ZGJnLmM6Mjc1OlxcdFxcdCBjeGdiNF9kcml2ZXJfbmFtZSwgYWRhcC1cXHUwMDNlbmFtZSk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNF9jdWRiZy5jOjI3NjpcXHRkYXRhLVxcdTAwM2V2bWNvcmVkZF9jYWxsYmFjayA9IGN4Z2I0X2N1ZGJnX3ZtY29yZWRkX2NvbGxlY3Q7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNF9jdWRiZy5jLTI3Ny1cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjRfY3VkYmcuaD0xNz10eXBlZGVmIGludCAoKmN1ZGJnX2NvbGxlY3RfY2FsbGJhY2tfdCkoc3RydWN0IGN1ZGJnX2luaXQgKnBkYmdfaW5pdCxcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjRfY3VkYmcuaC0yMC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0X2N1ZGJnLmg6MjE6c3RydWN0IGN4Z2I0X2NvbGxlY3RfZW50aXR5IHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0X2N1ZGJnLmgtMjItXFx0ZW51bSBjdWRiZ19kYmdfZW50aXR5X3R5cGUgZW50aXR5O1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNF9jdWRiZy5oPTI2PWVudW0gQ1hHQjRfRVRIVE9PTF9EVU1QX0ZMQUdTIHtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjRfY3VkYmcuaC0zNC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0X2N1ZGJnLmg6MzU6dTMyIGN4Z2I0X2dldF9kdW1wX2xlbmd0aChzdHJ1Y3QgYWRhcHRlciAqYWRhcCwgdTMyIGZsYWcpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjRfY3VkYmcuaDozNjppbnQgY3hnYjRfY3VkYmdfY29sbGVjdChzdHJ1Y3QgYWRhcHRlciAqYWRhcCwgdm9pZCAqYnVmLCB1MzIgKmJ1Zl9zaXplLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjRfY3VkYmcuaC0zNy1cXHRcXHRcXHR1MzIgZmxhZyk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNF9jdWRiZy5oOjM4OnZvaWQgY3hnYjRfaW5pdF9ldGh0b29sX2R1bXAoc3RydWN0IGFkYXB0ZXIgKmFkYXB0ZXIpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjRfY3VkYmcuaDozOTppbnQgY3hnYjRfY3VkYmdfdm1jb3JlX2FkZF9kdW1wKHN0cnVjdCBhZGFwdGVyICphZGFwKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0X2N1ZGJnLmgtNDAtI2VuZGlmIC8qIF9fQ1hHQjRfQ1VEQkdfSF9fICovXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0X2RjYi5jLTgtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNF9kY2IuYzo5OiNpbmNsdWRlIFxcXCJjeGdiNC5oXFxcIlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjRfZGNiLmMtMTAtXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0X2RjYi5jPTEzPWNvbnN0IGNoYXIgKiBjb25zdCBkY2JfdmVyX2FycmF5W10gPSB7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0X2RjYi5jLTIxLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjRfZGNiLmM6MjI6c3RhdGljIGlubGluZSBib29sIGN4Z2I0X2RjYl9zdGF0ZV9zeW5jZWQoZW51bSBjeGdiNF9kY2Jfc3RhdGUgc3RhdGUpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNF9kY2IuYy0yMy17XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0X2RjYi5jLTMyLSAqL1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjRfZGNiLmM6MzM6dm9pZCBjeGdiNF9kY2Jfc3RhdGVfaW5pdChzdHJ1Y3QgbmV0X2RldmljZSAqZGV2KVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjRfZGNiLmMtMzQte1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNF9kY2IuYy00Ny1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0X2RjYi5jOjQ4OnZvaWQgY3hnYjRfZGNiX3ZlcnNpb25faW5pdChzdHJ1Y3QgbmV0X2RldmljZSAqZGV2KVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjRfZGNiLmMtNDkte1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNF9kY2IuYy01OC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0X2RjYi5jOjU5OnN0YXRpYyB2b2lkIGN4Z2I0X2RjYl9jbGVhbnVwX2FwcHMoc3RydWN0IG5ldF9kZXZpY2UgKmRldilcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0X2RjYi5jLTYwLXtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjRfZGNiLmMtOTgtICovXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNF9kY2IuYzo5OTp2b2lkIGN4Z2I0X2RjYl9yZXNldChzdHJ1Y3QgbmV0X2RldmljZSAqZGV2KVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjRfZGNiLmMtMTAwLXtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0X2RjYi5jOjEwMTpcXHRjeGdiNF9kY2JfY2xlYW51cF9hcHBzKGRldik7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNF9kY2IuYzoxMDI6XFx0Y3hnYjRfZGNiX3N0YXRlX2luaXQoZGV2KTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0X2RjYi5jLTEwMy19XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0X2RjYi5jLTEwOS0gKi9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0X2RjYi5jOjExMDpzdGF0aWMgaW5saW5lIHZvaWQgY3hnYjRfZGNiX3VwZGF0ZV9zdXBwb3J0KHN0cnVjdCBwb3J0X2RjYl9pbmZvICpkY2IpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNF9kY2IuYy0xMTEte1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNF9kY2IuYy0xMjQtICovXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNF9kY2IuYzoxMjU6dm9pZCBjeGdiNF9kY2Jfc3RhdGVfZnNtKHN0cnVjdCBuZXRfZGV2aWNlICpkZXYsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNF9kY2IuYzoxMjY6XFx0XFx0XFx0IGVudW0gY3hnYjRfZGNiX3N0YXRlX2lucHV0IHRyYW5zaXRpb25fdG8pXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNF9kY2IuYy0xMjcte1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNF9kY2IuYy0xMzAtXFx0c3RydWN0IGFkYXB0ZXIgKmFkYXAgPSBwaS1cXHUwMDNlYWRhcHRlcjtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0X2RjYi5jOjEzMTpcXHRlbnVtIGN4Z2I0X2RjYl9zdGF0ZSBjdXJyZW50X3N0YXRlID0gZGNiLVxcdTAwM2VzdGF0ZTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0X2RjYi5jLTEzMi1cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjRfZGNiLmMtMTgwLVxcdFxcdFxcdCAqL1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjRfZGNiLmM6MTgxOlxcdFxcdFxcdGN4Z2I0X2RjYl91cGRhdGVfc3VwcG9ydChkY2IpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjRfZGNiLmMtMTgyLVxcdFxcdH1cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjRfZGNiLmMtMjE5LVxcdFxcdFxcdCAqL1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjRfZGNiLmM6MjIwOlxcdFxcdFxcdGN4Z2I0X2RjYl9yZXNldChkZXYpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjRfZGNiLmMtMjIxLVxcdFxcdFxcdGRjYi1cXHUwMDNlc3RhdGUgPSBDWEdCNF9EQ0JfU1RBVEVfRldfSU5DT01QTEVURTtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjRfZGNiLmMtMjYxLWJhZF9zdGF0ZV9pbnB1dDpcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0X2RjYi5jOjI2MjpcXHRkZXZfZXJyKGFkYXAtXFx1MDAzZXBkZXZfZGV2LCBcXFwiY3hnYjRfZGNiX3N0YXRlX2ZzbTogaWxsZWdhbCBpbnB1dCBzeW1ib2wgJWRcXFxcblxcXCIsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNF9kY2IuYy0yNjMtXFx0XFx0dHJhbnNpdGlvbl90byk7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0X2RjYi5jLTI2Ni1iYWRfc3RhdGVfdHJhbnNpdGlvbjpcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0X2RjYi5jOjI2NzpcXHRkZXZfZXJyKGFkYXAtXFx1MDAzZXBkZXZfZGV2LCBcXFwiY3hnYjRfZGNiX3N0YXRlX2ZzbTogYmFkIHN0YXRlIHRyYW5zaXRpb24sIHN0YXRlID0gJWQsIGlucHV0ID0gJWRcXFxcblxcXCIsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNF9kY2IuYy0yNjgtXFx0XFx0Y3VycmVudF9zdGF0ZSwgdHJhbnNpdGlvbl90byk7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0X2RjYi5jLTI3Mi0gKi9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0X2RjYi5jOjI3Mzp2b2lkIGN4Z2I0X2RjYl9oYW5kbGVfZndfdXBkYXRlKHN0cnVjdCBhZGFwdGVyICphZGFwLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjRfZGNiLmMtMjc0LVxcdFxcdFxcdFxcdGNvbnN0IHN0cnVjdCBmd19wb3J0X2NtZCAqcGNtZClcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjRfZGNiLmMtMjg3LVxcdGlmIChkY2JfdHlwZSA9PSBGV19QT1JUX0RDQl9UWVBFX0NPTlRST0wpIHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0X2RjYi5jOjI4ODpcXHRcXHRlbnVtIGN4Z2I0X2RjYl9zdGF0ZV9pbnB1dCBpbnB1dCA9XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNF9kY2IuYy0yODktXFx0XFx0XFx0KChwY21kLVxcdTAwM2V1LmRjYi5jb250cm9sLmFsbF9zeW5jZF9wa2QgXFx1MDAyNlxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNF9kY2IuYy0zMTItXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNF9kY2IuYzozMTM6XFx0XFx0Y3hnYjRfZGNiX3N0YXRlX2ZzbShkZXYsIGlucHV0KTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0X2RjYi5jLTMxNC1cXHRcXHRyZXR1cm47XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0X2RjYi5jLTQxMC0gKi9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0X2RjYi5jOjQxMTpzdGF0aWMgdTggY3hnYjRfZ2V0c3RhdGUoc3RydWN0IG5ldF9kZXZpY2UgKmRldilcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0X2RjYi5jLTQxMi17XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0X2RjYi5jLTQxOS0gKi9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0X2RjYi5jOjQyMDpzdGF0aWMgdTggY3hnYjRfc2V0c3RhdGUoc3RydWN0IG5ldF9kZXZpY2UgKmRldiwgdTggZW5hYmxlZClcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0X2RjYi5jLTQyMS17XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0X2RjYi5jLTQzNy1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0X2RjYi5jOjQzODpzdGF0aWMgdm9pZCBjeGdiNF9nZXRwZ3RjY2ZnKHN0cnVjdCBuZXRfZGV2aWNlICpkZXYsIGludCB0YyxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0X2RjYi5jLTQzOS1cXHRcXHRcXHQgICAgIHU4ICpwcmlvX3R5cGUsIHU4ICpwZ2lkLCB1OCAqYndfcGVyLFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNF9kY2IuYy00ODEtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNF9kY2IuYzo0ODI6c3RhdGljIHZvaWQgY3hnYjRfZ2V0cGd0Y2NmZ190eChzdHJ1Y3QgbmV0X2RldmljZSAqZGV2LCBpbnQgdGMsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNF9kY2IuYy00ODMtXFx0XFx0XFx0XFx0dTggKnByaW9fdHlwZSwgdTggKnBnaWQsIHU4ICpid19wZXIsXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0X2RjYi5jLTQ4Ni1cXHQvKiB0YyAwIGlzIHdyaXR0ZW4gYXQgTVNCIHBvc2l0aW9uICovXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNF9kY2IuYzo0ODc6XFx0cmV0dXJuIGN4Z2I0X2dldHBndGNjZmcoZGV2LCAoNyAtIHRjKSwgcHJpb190eXBlLCBwZ2lkLCBid19wZXIsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNF9kY2IuYy00ODgtXFx0XFx0XFx0XFx0dXBfdGNfbWFwLCAxKTtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjRfZGNiLmMtNDkxLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjRfZGNiLmM6NDkyOnN0YXRpYyB2b2lkIGN4Z2I0X2dldHBndGNjZmdfcngoc3RydWN0IG5ldF9kZXZpY2UgKmRldiwgaW50IHRjLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjRfZGNiLmMtNDkzLVxcdFxcdFxcdFxcdHU4ICpwcmlvX3R5cGUsIHU4ICpwZ2lkLCB1OCAqYndfcGVyLFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNF9kY2IuYy00OTYtXFx0LyogdGMgMCBpcyB3cml0dGVuIGF0IE1TQiBwb3NpdGlvbiAqL1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjRfZGNiLmM6NDk3OlxcdHJldHVybiBjeGdiNF9nZXRwZ3RjY2ZnKGRldiwgKDcgLSB0YyksIHByaW9fdHlwZSwgcGdpZCwgYndfcGVyLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjRfZGNiLmMtNDk4LVxcdFxcdFxcdFxcdHVwX3RjX21hcCwgMCk7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0X2RjYi5jLTUwMC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0X2RjYi5jOjUwMTpzdGF0aWMgdm9pZCBjeGdiNF9zZXRwZ3RjY2ZnX3R4KHN0cnVjdCBuZXRfZGV2aWNlICpkZXYsIGludCB0YyxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0X2RjYi5jLTUwMi1cXHRcXHRcXHRcXHR1OCBwcmlvX3R5cGUsIHU4IHBnaWQsIHU4IGJ3X3BlcixcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjRfZGNiLmMtNTYzLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjRfZGNiLmM6NTY0OnN0YXRpYyB2b2lkIGN4Z2I0X2dldHBnYndnY2ZnKHN0cnVjdCBuZXRfZGV2aWNlICpkZXYsIGludCBwZ2lkLCB1OCAqYndfcGVyLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjRfZGNiLmMtNTY1LVxcdFxcdFxcdCAgICAgIGludCBsb2NhbClcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjRfZGNiLmMtNTg3LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjRfZGNiLmM6NTg4OnN0YXRpYyB2b2lkIGN4Z2I0X2dldHBnYndnY2ZnX3R4KHN0cnVjdCBuZXRfZGV2aWNlICpkZXYsIGludCBwZ2lkLCB1OCAqYndfcGVyKVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjRfZGNiLmMtNTg5LXtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0X2RjYi5jOjU5MDpcXHRyZXR1cm4gY3hnYjRfZ2V0cGdid2djZmcoZGV2LCBwZ2lkLCBid19wZXIsIDEpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjRfZGNiLmMtNTkxLX1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0X2RjYi5jLTU5Mi1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0X2RjYi5jOjU5MzpzdGF0aWMgdm9pZCBjeGdiNF9nZXRwZ2J3Z2NmZ19yeChzdHJ1Y3QgbmV0X2RldmljZSAqZGV2LCBpbnQgcGdpZCwgdTggKmJ3X3BlcilcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0X2RjYi5jLTU5NC17XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNF9kY2IuYzo1OTU6XFx0cmV0dXJuIGN4Z2I0X2dldHBnYndnY2ZnKGRldiwgcGdpZCwgYndfcGVyLCAwKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0X2RjYi5jLTU5Ni19XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNF9kY2IuYy01OTctXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNF9kY2IuYzo1OTg6c3RhdGljIHZvaWQgY3hnYjRfc2V0cGdid2djZmdfdHgoc3RydWN0IG5ldF9kZXZpY2UgKmRldiwgaW50IHBnaWQsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNF9kY2IuYy01OTktXFx0XFx0XFx0XFx0IHU4IGJ3X3BlcilcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjRfZGNiLmMtNjMxLSAqL1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjRfZGNiLmM6NjMyOnN0YXRpYyB2b2lkIGN4Z2I0X2dldHBmY2NmZyhzdHJ1Y3QgbmV0X2RldmljZSAqZGV2LCBpbnQgcHJpb3JpdHksIHU4ICpwZmNjZmcpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNF9kY2IuYy02MzMte1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNF9kY2IuYy02MzYtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNF9kY2IuYzo2Mzc6XFx0aWYgKCFjeGdiNF9kY2Jfc3RhdGVfc3luY2VkKGRjYi1cXHUwMDNlc3RhdGUpIHx8XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNF9kY2IuYy02MzgtXFx0ICAgIHByaW9yaXR5IFxcdTAwM2U9IENYR0I0X01BWF9QUklPUklUWSlcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjRfZGNiLmMtNjQ2LSAqL1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjRfZGNiLmM6NjQ3OnN0YXRpYyB2b2lkIGN4Z2I0X3NldHBmY2NmZyhzdHJ1Y3QgbmV0X2RldmljZSAqZGV2LCBpbnQgcHJpb3JpdHksIHU4IHBmY2NmZylcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0X2RjYi5jLTY0OC17XFxuXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTAyVDExOjE2OjA5Ljc3MjU4NzAyM1oiLCJTZXEiOjUsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjQyMTY0MDI1MzAsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqSW52ZXN0aWdhdGluZyBDaGVsc2lvIFQ0L1Q1L1Q2IEFkYXB0ZXIgRW11bGF0aW9uKipcblxuT2theSwgc28gSSdtIGxvb2tpbmcgYXQgdGhlIGBjeGdiNGAgZHJpdmVyLCB3aGljaCBoYW5kbGVzIHRob3NlIENoZWxzaW8gVDQvVDUvVDYgYWRhcHRlcnMuIFRoZSBxdWVzdGlvbiBpbW1lZGlhdGVseSBwb3BzIGludG8gbXkgaGVhZDogaXMgdGhlcmUgYW55IGtpbmQgb2YgZW11bGF0aW9uIGF2YWlsYWJsZSBmb3IgdGhpcyBoYXJkd2FyZT8gSXQncyBub3QgdGhlIG1vc3QgY29tbW9uIGFyZWEgZm9yIHZpcnR1YWxpemF0aW9uLCBzbyBJJ20gbm90IGhvbGRpbmcgbXkgYnJlYXRoLiBJIHNob3VsZCB2ZXJpZnkgaWYgdGhlcmUncyBhIHZpcnR1YWwgZHJpdmVyIG9yIHNvbWUgc29mdHdhcmUgZW11bGF0aW9uIGxheWVyIHRoYXQgbWlnaHQgZXhpc3QuXG5cbktub3dpbmcgQ2hlbHNpbywgdGhvdWdoLCBteSBpbml0aWFsIGluc3RpbmN0IGlzIHRoYXQsIHByb2JhYmx5IG5vdCwgYnV0IGl0J3Mgd29ydGggYSBxdWljayBjaGVjayB0byBlbnN1cmUgSSBhbSB1cCB0byBkYXRlLiBUaGUgYGRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvS2NvbmZpZ2AgZmlsZSBpcyB0aGUgcGxhY2UgdG8gc3RhcnQuIEknbGwgc2VlIGlmIGl0IGhhcyBhbnkgZXhwbGljaXQgZGVwZW5kZW5jaWVzLCBsaWtlIFBDSS4gVGhhdCB3aWxsIGdpdmUgYSBjbGVhciBpbmRpY2F0aW9uIG9mIGlmIGl0IGNhbiBydW4gd2l0aGluIGEgdmlydHVhbGl6ZWQgc2V0dGluZy5cblxuXG4iLCJJbnB1dFRva2VucyI6MTk4MTMsIk91dHB1dFRva2VucyI6NDAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjo4OCwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0wMlQxMToxNjoxMy45ODg5OTE5MTNaIiwiU2VxIjo2LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MTE5MDY1MzY1LCJFcnJvciI6Im5vIG1hdGNoZXMiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJkZXBlbmRzIG9uIFBDSVwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJkcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L0tjb25maWdcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiZXJyb3JcIjogXCJubyBtYXRjaGVzXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTAyVDExOjE2OjE0LjEwODA2NTAxOFoiLCJTZXEiOjcsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjEyNDE3NTk4MTk3LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJPa2F5LCBoZXJlJ3MgbXkgaW50ZXJwcmV0YXRpb24gb2YgdGhhdCB0aG91Z2h0IHByb2Nlc3MsIHRhaWxvcmVkIGZvciBhbiBleHBlcnQgYXVkaWVuY2UsIGFuZCB3cml0dGVuIGluIHRoZSBmaXJzdCBwZXJzb246XG5cbioqSW5pdGlhbCBLY29uZmlnIFJldmlldyoqXG5cbkFscmlnaHQsIHRpbWUgdG8gZGl2ZSBpbi4gXCJMZXQncyByZWFkIHRoZSBLY29uZmlnLlwiIFRoYXQncyB0aGUgZmlyc3Qgc3RlcCwgaXNuJ3QgaXQ/IEJlZm9yZSBhbnkgbW9kaWZpY2F0aW9ucywgYmVmb3JlIGFueSBkZXNpZ24gZGVjaXNpb25zLCBJIG5lZWQgdG8gZ2V0IGEgY2xlYXIgcGljdHVyZSBvZiB0aGUgZXhpc3RpbmcgY29uZmlndXJhdGlvbiBzcGFjZS4gSSdtIG5vdCBqdXN0ICpsb29raW5nKiBhdCBpdCwgSSdtIG1lbnRhbGx5IHBhcnNpbmcgaXQuIEknbSBhbHJlYWR5IHN0YXJ0aW5nIHRvIHRoaW5rIGFib3V0IGRlcGVuZGVuY2llcywgaW1wbGljYXRpb25zIG9mIGRpZmZlcmVudCBvcHRpb25zLCBhbmQgcG90ZW50aWFsIGNvbmZsaWN0cy4gSSdtIGxvb2tpbmcgZm9yIHRoZSBvdmVyYWxsIHN0cnVjdHVyZSDigJMgd2hhdOKAmXMgdGhlIGFyY2hpdGVjdHVyZSBvZiB0aGlzIGNvbmZpZ3VyYXRpb24/IFdoYXQgYXJlYXMgZG9lcyBpdCBjb3Zlcj8gSSdtIHNjYW5uaW5nIGZvciBmYW1pbGlhciBtb2R1bGVzIG9yIGZlYXR1cmVzLCBhbmQgcXVpY2tseSBpZGVudGlmeWluZyB0aG9zZSBhcmVhcyB0aGF0IEknbSBsZXNzIGNvbWZvcnRhYmxlIHdpdGggYW5kIG5lZWQgdG8gcmV2aXNpdCBtb3JlIGNsb3NlbHkuIE15IGJyYWluIGlzIGFscmVhZHkgY2FsY3VsYXRpbmcgdGhlIGNvbXBsZXhpdHkgb2YgdGhpcyBjb25maWd1cmF0aW9uIGFzIGEgd2hvbGUuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjIwMTU2LCJPdXRwdXRUb2tlbnMiOjQ1LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6OCwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0wMlQxMToxNjoyNi41MjU2NzA5NjVaIiwiU2VxIjo4LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MTA4MDg5OTM2LCJFcnJvciI6Im5vIG1hdGNoZXMiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJjb25maWcgQ0hFTFNJT19UNFwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJkcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L0tjb25maWdcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiZXJyb3JcIjogXCJubyBtYXRjaGVzXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTAyVDExOjE2OjI2LjYzMzc2OTYzMVoiLCJTZXEiOjksIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjMwMjM2OTMwMzIsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6Ik9rYXksIGhlcmUncyBteSBhdHRlbXB0IGF0IHN1bW1hcml6aW5nIHRoYXQgdGhvdWdodCBwcm9jZXNzLCBrZWVwaW5nIGluIG1pbmQgSSdtIHNwZWFraW5nIHRvIGEgZmVsbG93IGV4cGVydDpcblxuKipUaGUgS2NvbmZpZyBIdW50KipcblxuQWxyaWdodCwgbGV0J3MgZ2V0IGRvd24gdG8gYnVzaW5lc3MuIEknbSBrbmVlLWRlZXAgaW4gdGhpcyBwcm9qZWN0LCBhbmQgSSBuZWVkIHRvIG1ha2UgYSBxdWljayBjb25maWd1cmF0aW9uIHR3ZWFrLiBJbnN0aW5jdGl2ZWx5LCBJIHJlYWNoIGZvciB0aGUuLi4gd2FpdCBhIG1pbnV0ZS4gV2hlcmUgdGhlIGhlY2sgaXMgdGhlIEtjb25maWc/IEl0J3MgdXN1YWxseSByaWdodCB0aGVyZSwgbmVzdGxlZCBpbiB0aGUgcmVsZXZhbnQgZGlyZWN0b3J5LiBJcyBpdCBhIGRpZmZlcmVudCBtb2R1bGUgdGhpcyB0aW1lPyBEaWQgc29tZW9uZSByZWZhY3RvciB0aGluZ3MgYW5kIEkgbWlzc2VkIHRoZSBtZW1vPyBPa2F5LCBkZWVwIGJyZWF0aC4gTm8gcGFuaWMuIExldCdzIHN0YXJ0IHdpdGggYSBzeXN0ZW1hdGljIHNlYXJjaC4gSSBuZWVkIHRvIGdldCB0aGlzIGNvbmZpZ3VyYXRpb24gc29ydGVkIHNvIEkgY2FuIG1vdmUgZm9yd2FyZC4gVGhpcyBLY29uZmlnJ3MgaGlkaW5nLCBidXQgSSAqd2lsbCogZmluZCBpdC5cblxuXG4iLCJJbnB1dFRva2VucyI6MjA0MTEsIk91dHB1dFRva2VucyI6NDEsIk91dHB1dFRob3VnaHRzVG9rZW5zIjo4LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTAyVDExOjE2OjI5LjY1NzQ2NzQ4M1oiLCJTZXEiOjEwLCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MTM0OTM1MTU1LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcImNvbmZpZyBDSEVMU0lPX1Q0XCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vS2NvbmZpZ1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJkcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL0tjb25maWc9NDk9Y29uZmlnIENIRUxTSU9fVDNcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vS2NvbmZpZy02OC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL0tjb25maWc6Njk6Y29uZmlnIENIRUxTSU9fVDRcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL0tjb25maWctNzAtXFx0dHJpc3RhdGUgXFxcIkNoZWxzaW8gQ29tbXVuaWNhdGlvbnMgVDQvVDUvVDYgRXRoZXJuZXQgc3VwcG9ydFxcXCJcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vS2NvbmZpZy05MS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL0tjb25maWc6OTI6Y29uZmlnIENIRUxTSU9fVDRfRENCXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9LY29uZmlnLTkzLVxcdGJvb2wgXFxcIkRhdGEgQ2VudGVyIEJyaWRnaW5nIChEQ0IpIFN1cHBvcnQgZm9yIENoZWxzaW8gVDQvVDUvVDYgY2FyZHNcXFwiXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL0tjb25maWctMTAyLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vS2NvbmZpZzoxMDM6Y29uZmlnIENIRUxTSU9fVDRfRkNPRVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vS2NvbmZpZy0xMDQtXFx0Ym9vbCBcXFwiRmlicmUgQ2hhbm5lbCBvdmVyIEV0aGVybmV0IChGQ29FKSBTdXBwb3J0IGZvciBDaGVsc2lvIFQ1IGNhcmRzXFxcIlxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9LY29uZmlnLTExMy1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL0tjb25maWc6MTE0OmNvbmZpZyBDSEVMU0lPX1Q0VkZcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL0tjb25maWctMTE1LVxcdHRyaXN0YXRlIFxcXCJDaGVsc2lvIENvbW11bmljYXRpb25zIFQ0L1Q1L1Q2IFZpcnR1YWwgRnVuY3Rpb24gRXRoZXJuZXQgc3VwcG9ydFxcXCJcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMDJUMTE6MTY6MjkuNzkyNDA4MDg4WiIsIlNlcSI6MTEsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjEzMzAxNjY5MzYzOCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiT2theSwgaGVyZSdzIG15IHRha2Ugb24gdGhvc2UgdGhvdWdodHMsIHRhaWxvcmVkIGZvciBhbiBleHBlcnQgYXVkaWVuY2U6XG5cbioqQ0hFTFNJT19UNCBEZXBlbmRlbmN5IERlZXAgRGl2ZSoqXG5cbkFscmlnaHQsIGxldCdzIGdldCBkb3duIHRvIGJyYXNzIHRhY2tzLiBJIG5lZWQgdG8gdW5kZXJzdGFuZCB0aGUgZGVwZW5kZW5jaWVzIG9mIHRoaXMgQ0hFTFNJT19UNC4gSSdtIG5vdCBsb29raW5nIGZvciBhIHN1cGVyZmljaWFsIG92ZXJ2aWV3OyBJIG5lZWQgdG8gZHJpbGwgZG93biBhbmQgdW5kZXJzdGFuZCB0aGUgY29yZSBjb21wb25lbnRzIGl0IHJlbGllcyBvbi4gV2UncmUgdGFsa2luZyBhYm91dCBhIGhpZ2gtcGVyZm9ybWFuY2UgbmV0d29yayBpbnRlcmZhY2UsIHNvIEknbSB0aGlua2luZyBpbW1lZGlhdGVseSBhYm91dCB0aGUgY3JpdGljYWwgYXJlYXM6IHRoZSBmaXJtd2FyZSBhbmQgaXRzIGludGVyYWN0aW9uIHdpdGggdGhlIGhvc3Qgc3lzdGVtLCB0aGUgc3BlY2lmaWMgZHJpdmVycywgYW5kIHRoZSBwb3RlbnRpYWwgZm9yIGFueSBoYXJkd2FyZS1sZXZlbCBkZXBlbmRlbmNpZXMsIGxpa2UgdGhlIHNpbGljb24gaXRzZWxmLCBvYnZpb3VzbHksIGJ1dCB3aGF0IGFib3V0IHRoZSBzdXBwb3J0aW5nIGNvbXBvbmVudHM/IEFyZSB0aGVyZSBhbnkgc3BlY2lhbGl6ZWQgUEhZcywgb3IgYW55IEFTSUNzIHRoYXQgdGhpcyBjYXJkIGlzIHJlbHlpbmcgb24gZm9yIGl0cyBoaWdoIHBlcmZvcm1hbmNlPyBXaGF0IGFib3V0IHRoZSBib290IHByb2Nlc3M/IElzIGl0IFBYRSwgb3Igc29tZXRoaW5nIG1vcmUgYmVzcG9rZT8gSSBhbHNvIG5lZWQgdG8gdGhpbmsgYWJvdXQgdGhlIE9TIGl04oCZcyBydW5uaW5nIG9uOyBkbyBJIG5lZWQgdG8gY29uY2VybiBteXNlbGYgd2l0aCBkcml2ZXIgY29tcGF0aWJpbGl0eSB3aXRoIHRoZSBtb3JlIGV4b3RpYyBvcGVyYXRpbmcgc3lzdGVtcz8gV2hhdCBhYm91dCB2aXJ0dWFsaXphdGlvbj8gRG9lcyBpdCBwbGF5IG5pY2VseSB3aXRoIGRpZmZlcmVudCBoeXBlcnZpc29ycywgYW5kIHdoaWNoIFNSLUlPViBpbXBsZW1lbnRhdGlvbnMgaXQgc3VwcG9ydHM/IEFuZCwgcGVyaGFwcyBtb3N0IGltcG9ydGFudGx5LCBob3cncyB0aGUga2VybmVsIGludGVncmF0aW9uPyBIb3cgaXMgdGhlIGNhcmQgbWFuYWdpbmcgdGhlIHJlc291cmNlIGFsbG9jYXRpb24gd2l0aGluIHRoZSBPUzsgaXMgaXQgdXNpbmcgc3RhbmRhcmQgbWV0aG9kcywgb3IgYSBtb3JlIHNvcGhpc3RpY2F0ZWQgZGlyZWN0LW1lbW9yeSBhY2Nlc3M/IFRoaXMgaXNuJ3QganVzdCBhYm91dCBsaXN0aW5nIGxpYnJhcmllczsgSSB3YW50IHRvIHVuZGVyc3RhbmQgdGhlICp3aHkqIGJlaGluZCBpdHMgZGVzaWduIGRlY2lzaW9ucy4gVGhpcyBpc24ndCBhIHNpbXBsZSBxdWVzdGlvbiwgSSBuZWVkIHRvIGtub3cgdGhlIGVudGlyZSBzdHJ1Y3R1cmUgb2YgdGhlIHNvZnR3YXJlIGFuZCBoYXJkd2FyZSBmb3IgdGhpcyBjYXJkLlxuXG5cbiIsIklucHV0VG9rZW5zIjoyMTAxOCwiT3V0cHV0VG9rZW5zIjo0MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjE1LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTAyVDExOjE4OjQyLjgwOTEwNDkyNloiLCJTZXEiOjEyLCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJyZWFkLWZpbGUiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo2NjI5MCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkZpbGVcIjogXCJkcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL0tjb25maWdcIixcbiAgXCJGaXJzdExpbmVcIjogNjksXG4gIFwiTGluZUNvdW50XCI6IDIwXG59IiwiUmVzdWx0cyI6IntcbiAgXCJDb250ZW50c1wiOiBcIiAgNjk6XFx0Y29uZmlnIENIRUxTSU9fVDRcXG4gIDcwOlxcdFxcdHRyaXN0YXRlIFxcXCJDaGVsc2lvIENvbW11bmljYXRpb25zIFQ0L1Q1L1Q2IEV0aGVybmV0IHN1cHBvcnRcXFwiXFxuICA3MTpcXHRcXHRkZXBlbmRzIG9uIFBDSSBcXHUwMDI2XFx1MDAyNiAoVExTIHx8IFRMUz1uKVxcbiAgNzI6XFx0XFx0ZGVwZW5kcyBvbiBQVFBfMTU4OF9DTE9DS19PUFRJT05BTFxcbiAgNzM6XFx0XFx0c2VsZWN0IEZXX0xPQURFUlxcbiAgNzQ6XFx0XFx0c2VsZWN0IE1ESU9cXG4gIDc1OlxcdFxcdHNlbGVjdCBaTElCX0RFRkxBVEVcXG4gIDc2OlxcdFxcdGhlbHBcXG4gIDc3OlxcdFxcdCAgVGhpcyBkcml2ZXIgc3VwcG9ydHMgQ2hlbHNpbyBUNCwgVDUgXFx1MDAyNiBUNiBiYXNlZCBnaWdhYml0LCAxMEdiIEV0aGVybmV0XFxuICA3ODpcXHRcXHQgIGFkYXB0ZXIgYW5kIFQ1L1Q2IGJhc2VkIDQwR2IgYW5kIFQ2IGJhc2VkIDI1R2IsIDUwR2IgYW5kIDEwMEdiXFxuICA3OTpcXHRcXHQgIEV0aGVybmV0IGFkYXB0ZXJzLlxcbiAgODA6XFx0XFxuICA4MTpcXHRcXHQgIEZvciBnZW5lcmFsIGluZm9ybWF0aW9uIGFib3V0IENoZWxzaW8gYW5kIG91ciBwcm9kdWN0cywgdmlzaXRcXG4gIDgyOlxcdFxcdCAgb3VyIHdlYnNpdGUgYXQgXFx1MDAzY2h0dHA6Ly93d3cuY2hlbHNpby5jb21cXHUwMDNlLlxcbiAgODM6XFx0XFxuICA4NDpcXHRcXHQgIEZvciBjdXN0b21lciBzdXBwb3J0LCBwbGVhc2UgdmlzaXQgb3VyIGN1c3RvbWVyIHN1cHBvcnQgcGFnZSBhdFxcbiAgODU6XFx0XFx0ICBcXHUwMDNjaHR0cDovL3d3dy5jaGVsc2lvLmNvbS9zdXBwb3J0Lmh0bWxcXHUwMDNlLlxcbiAgODY6XFx0XFxuICA4NzpcXHRcXHQgIFBsZWFzZSBzZW5kIGZlZWRiYWNrIHRvIFxcdTAwM2NsaW51eC1idWdzQGNoZWxzaW8uY29tXFx1MDAzZS5cXG4gIDg4OlxcdFxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0wMlQxMToxODo0Mi44MDkxNzI1MTZaIiwiU2VxIjoxMywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6ODA4NjEyNjQ1MSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipBbmFseXNpcyBvZiBSZWFjaGFiaWxpdHkgaW4gVmlydHVhbGl6ZWQgRW52aXJvbm1lbnRzKipcblxuT2theSwgc28gdGhpcyBib2lscyBkb3duIHRvIFBDSSwgZG9lc24ndCBpdD8gTXkgaW1tZWRpYXRlIHRob3VnaHQgaXMsIGNhbiB0aGlzIGNvZGUgcGF0aCBldmVuICpiZSogZXhlY3V0ZWQgd2l0aGluIGEgdmlydHVhbGl6ZWQgc2V0dXAgbGlrZSBRRU1VIG9yIEdDRT8gU3l6a2FsbGVyIHVzZXMgdGhvc2UgZW52aXJvbm1lbnRzIGV4dGVuc2l2ZWx5LCBsZXZlcmFnaW5nIHRoaW5ncyBsaWtlIGBzeXotdXNiZ2VuYCwgYG1hYzgwMjExX2h3c2ltYCwgYW5kIHRoZSB2YXJpb3VzIG5ldHdvcmtpbmcgY29uc3RydWN0cywgYnV0Li4uIGNydWNpYWxseSwgZG9lcyBpdCBoYXZlIGEgdmlydHVhbCBQQ0kgZGV2aWNlIHRoYXQgZW11bGF0ZXMgdGhlIENoZWxzaW8gVDQvVDUvVDYgaGFyZHdhcmU/IExvb2tzIGxpa2UgdGhlIGFuc3dlciBpcyBuby5cblxuV2l0aG91dCB0aGF0IGhhcmR3YXJlLCBvciBhbiBhZGVxdWF0ZSBlbXVsYXRvciwgdGhlIGRyaXZlcidzIGBwcm9iZWAgZnVuY3Rpb24gd2lsbCAqbmV2ZXIqIGdldCBjYWxsZWQuIEFuZCBpZiBgcHJvYmVgIG5ldmVyIHJ1bnMsIHRoZSBgbmV0X2RldmljZWAgaXNuJ3QgcmVnaXN0ZXJlZC4gVGhhdCdzIGEgY3JpdGljYWwgcG9pbnQgYmVjYXVzZSB0aGUgYGN4Z2I0X3Byb2Nlc3NfZmxvd19tYXRjaGAgZnVuY3Rpb24sIHdoaWNoIGlzIGNvcmUgdG8gdGhlIFRDIGZsb3dlciBvZmZsb2FkIGZvciB0aGlzIHNwZWNpZmljIGRyaXZlciwgYmVjb21lcyBjb21wbGV0ZWx5IHVucmVhY2hhYmxlLlxuXG5XYWl0LCBTeXprYWxsZXIgKmRpZCogZmluZCBhIHBhdGNoIHJlbGF0ZWQgdG8gdGhpcy4uLiBobW0uIEJ1dCB0aGF0J3Mgbm90IGNvbmNsdXNpdmUuIFN5emthbGxlciBjb3VsZCBiZSB0ZXN0aW5nIGEgY29tcGlsYXRpb24gaXNzdWUsIG9yIGl0IGNvdWxkIGJlIGEgcGF0Y2ggdGhhdCdzIHVuZGVyIHJldmlldywgbWFraW5nIGl0IGEgcmVkIGhlcnJpbmcuIFRoZSBwcm9tcHQgY2xlYXJseSBzdGF0ZXMgdGhhdCB0aGUgY29kZSBwYXRocyBhcmUgdW5yZWFjaGFibGUgaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgR0NFIG9yIFFFTVUgZXZlbiB3aGVuIHVzaW5nIHNvZnR3YXJlLWVtdWxhdGVkIGhhcmR3YXJlLiBTaW5jZSB0aGlzIGlzIGEgcGh5c2ljYWwgUENJIG5ldHdvcmsgY2FyZCBkcml2ZXIgd2l0aG91dCBRRU1VIGVtdWxhdGlvbiwgdGhpcyBjb2RlIGNhbm5vdCBiZSByZWFjaGVkLlxuXG5KdXN0IHRvIGJlIHRob3JvdWdoLCBJJ2xsIHF1aWNrbHkgdmVyaWZ5IGlmIFFFTVUgaXRzZWxmIHByb3ZpZGVzIGEgQ2hlbHNpbyBlbXVsYXRvci4gSSBrbm93IGl0IHN1cHBvcnRzIGEgcmFuZ2Ugb2YgZGV2aWNlcyAtIGBlMTAwMGAsIGBlMTAwMGVgLCBgcnRsODEzOWAsIGBwY25ldGAsIGBuZTJrX3BjaWAsIGBpODI1NTllcmAsIGB2bXhuZXQzYCwgYHR1bGlwYCwgYW5kIGBpZ2JgIC0gYnV0IGEgcXVpY2sgY2hlY2sgY29uZmlybXMgdGhhdCBpdCBkb2Vzbid0IG9mZmVyIGFueSBlbXVsYXRpb24gZm9yIHRoZSBgY3hnYjRgIGRyaXZlci5cblxuVGhlcmVmb3JlLCBnaXZlbiB0aGVzZSBjb25kaXRpb25zLCB0aGVyZSBpcyBubyB3YXkgZm9yIHRoaXMgY29kZSB0byBiZSByZWFjaGVkIGluIGEgdmlydHVhbGl6ZWQgZW52aXJvbm1lbnQuXG5JJ20gY29uZmlkZW50IGluIHNldHRpbmcgV29ydGhGdXp6aW5nPWZhbHNlLCBjaXRpbmcgdGhlIGZhY3QgdGhhdCBpdCdzIGEgaGFyZHdhcmUtc3BlY2lmaWMgZHJpdmVyIGZvciBDaGVsc2lvIGFkYXB0ZXJzIHRoYXQgY2Fubm90IGJlIHJlYWNoZWQgd2l0aG91dCB0aGUgcGh5c2ljYWwgaGFyZHdhcmUgb3IgYSBjdXN0b20gZW11bGF0aW9uIHNvbHV0aW9uICh3aGljaCBpc24ndCBhdmFpbGFibGUgaW4gc3RhbmRhcmQgUUVNVS9HQ0UpLiBKdXN0IGZvciBnb29kIG1lYXN1cmUsIEknbGwgdGFrZSBhIHF1aWNrIGdsYW5jZSB0byBzZWUgaWYgdGhlcmUncyBhbnkgYGN4Z2I0YCBtb2NrIGluIHRoZSBrZXJuZWwgc291cmNlLCBidXQgSSdtIGV4cGVjdGluZyB0aGlzIHRvIGNvbmZpcm0gbXkgY29uY2x1c2lvbi5cblxuXG4iLCJJbnB1dFRva2VucyI6MjE3MzAsIk91dHB1dFRva2VucyI6MjUsIk91dHB1dFRob3VnaHRzVG9rZW5zIjo0NTQsIlRvb2xDYWxscyI6WyJyZWFkLWZpbGUiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0wMlQxMToxODo1MC44OTUzMDIyODdaIiwiU2VxIjoxNCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjcxMTg0Mzk4NzYsIkVycm9yIjoibm8gbWF0Y2hlcyIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcImN4Z2I0X3Byb2JlXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcIlwiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJlcnJvclwiOiBcIm5vIG1hdGNoZXNcIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMDJUMTE6MTg6NTguMDEzNzUzMDMzWiIsIlNlcSI6MTUsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjMwNzAzNDkwMTAsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IkhlcmUncyBteSB0aG91Z2h0IHByb2Nlc3MsIHN1bW1hcml6ZWQgYXMgeW91IHJlcXVlc3RlZDpcblxuKipQb3RlbnRpYWwgTmFtaW5nIFByZWNpc2lvbiBDb25jZXJucyoqXG5cbk9rYXksIHNvIEknbSB0aGlua2luZyBhYm91dCB0aGlzIGBjeGdiNF9wcm9iZWAgZnVuY3Rpb24uLi4gb3IgbWF5YmUgaXQncyAqY2xvc2UqIHRvIHRoZSBjb3JyZWN0IG5hbWUuIEkgbmVlZCB0byB2ZXJpZnkgdGhhdC4gSXQncyBwb3NzaWJsZSBJJ20gc2xpZ2h0bHkgb2ZmLiBJIGtub3cgdGhlIGdlbmVyYWwgYXJlYSwgdGhlIHB1cnBvc2Ugb2YgdGhlIGZ1bmN0aW9uLCBidXQgSSBuZWVkIHRvIGJlIGFic29sdXRlbHkgcHJlY2lzZS4gSSBuZWVkIHRvIG1ha2Ugc3VyZSBJIGRvbid0IGdpdmUgYW55IG1pc2xlYWRpbmcgc3RhdGVtZW50cy4gSSBuZWVkIHRvIGRvdWJsZS1jaGVjayB0aGF0IHRoaXMgaXMgdGhlIGZ1bmN0aW9uLCBvciBhIGZ1bmN0aW9uLCBvZiB0aGUgZmFtaWx5LCBhbmQgdGhhdCB0aGUgbmFtZSBpcyBleGFjdGx5IHdoYXQgSSdtIHRoaW5raW5nIG9mLiBBY2N1cmFjeSBpcyBwYXJhbW91bnQsIGVzcGVjaWFsbHkgd2hlbiBkaXNjdXNzaW5nIHRlY2huaWNhbCBkZXRhaWxzIHdpdGggc29tZW9uZSBhdCB0aGlzIGxldmVsLiBMZXQgbWUgZ28gYmFjayBhbmQgbG9vayBhdCBpdC5cblxuXG4iLCJJbnB1dFRva2VucyI6MjI3NjksIk91dHB1dFRva2VucyI6MjgsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoxNiwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0wMlQxMToxOTowMS4wODQxMDc5MjNaIiwiU2VxIjoxNiwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjI5MDMxNDE5NjcsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwicGNpX2RyaXZlci4qY3hnYjRcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjRfbWFpbi5jPTIzNTg9RVhQT1JUX1NZTUJPTChjeGdiNF9iYXIyX3NnZV9xcmVncyk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNF9tYWluLmMtMjM1OS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0X21haW4uYzoyMzYwOnN0YXRpYyBzdHJ1Y3QgcGNpX2RyaXZlciBjeGdiNF9kcml2ZXI7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNF9tYWluLmMtMjM2MS1cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjRfbWFpbi5jPTcxNTg9c3RhdGljIHZvaWQgc2h1dGRvd25fb25lKHN0cnVjdCBwY2lfZGV2ICpwZGV2KVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNF9tYWluLmMtNzE5Ny1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0X21haW4uYzo3MTk4OnN0YXRpYyBzdHJ1Y3QgcGNpX2RyaXZlciBjeGdiNF9kcml2ZXIgPSB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNF9tYWluLmMtNzE5OS1cXHQubmFtZSAgICAgPSBLQlVJTERfTU9ETkFNRSxcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjR2Zi9jeGdiNHZmX21haW4uYz0zNDAwPU1PRFVMRV9ERVZJQ0VfVEFCTEUocGNpLCBjeGdiNHZmX3BjaV90YmwpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjR2Zi9jeGdiNHZmX21haW4uYy0zNDAxLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjR2Zi9jeGdiNHZmX21haW4uYzozNDAyOnN0YXRpYyBzdHJ1Y3QgcGNpX2RyaXZlciBjeGdiNHZmX2RyaXZlciA9IHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0dmYvY3hnYjR2Zl9tYWluLmMtMzQwMy1cXHQubmFtZVxcdFxcdD0gS0JVSUxEX01PRE5BTUUsXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTAyVDExOjE5OjAzLjk4NzI1NzE4WiIsIlNlcSI6MTcsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjMyODk1MDc4NDIsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6Ik9rYXksIGhlcmUncyBteSBpbnRlcnByZXRhdGlvbiBvZiB0aG9zZSB0aG91Z2h0cywgdGFpbG9yZWQgZm9yIGFuIGV4cGVydCBhdWRpZW5jZSwgcHJlc2VudGVkIGluIHRoZSBmaXJzdCBwZXJzb246XG5cbioqUENJIERyaXZlciBBc3Nlc3NtZW50IGFuZCBGdXp6aW5nIFN0cmF0ZWd5KipcblxuUmlnaHQsIHRoaXMgaXMgYSBzdHJhaWdodGZvcndhcmQgUENJIGRyaXZlci4gTm90aGluZyB1bnVzdWFsIGhlcmUsIG5vIG5lZWQgZm9yIGFueSBtb2NrcyBvciBhbnl0aGluZyBmYW5jeSBsaWtlIHRoYXQuIEp1c3QgdGhlIHJhdyBkcml2ZXIgaXRzZWxmLiBHaXZlbiB0aGF0LCBJJ20gZ29pbmcgdG8gc2V0IGBXb3J0aEZ1enppbmc9ZmFsc2VgLiBObyBwb2ludCBpbiBleHBlbmRpbmcgcmVzb3VyY2VzIG9uIGZ1enppbmcgc29tZXRoaW5nIHRoYXQgaXNuJ3Qgc2hvd2luZyBhbnkgcmVkIGZsYWdzLCBlc3BlY2lhbGx5IGlmIHRoZXJlIGlzbid0IGEgbW9jayB0byBmdXp6LiBXZSBoYXZlIG90aGVyLCBsaWtlbHkgaGlnaGVyLXZhbHVlIHRhcmdldHMgdG8gaW52ZXN0aWdhdGUuIExldCdzIG1vdmUgb24uXG5cblxuIiwiSW5wdXRUb2tlbnMiOjIzNDU5LCJPdXRwdXRUb2tlbnMiOjk3LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MjQsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDctMDJUMTE6MTk6MDcuMjc2NzY4MzIyWiIsIlNlcSI6MTgsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6InNldC1yZXN1bHRzIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6Mzk4NzAsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IFtdLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIGN4Z2I0IGRyaXZlciwgd2hpY2ggaXMgYSBoYXJkd2FyZS1zcGVjaWZpYyBQQ0kgZHJpdmVyIGZvciBDaGVsc2lvIFQ0L1Q1L1Q2IEV0aGVybmV0IGFkYXB0ZXJzLiBTaW5jZSB0aGVyZSBpcyBubyBzb2Z0d2FyZSBlbXVsYXRpb24gZm9yIHRoaXMgaGFyZHdhcmUgaW4gc3RhbmRhcmQgdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgUUVNVSBvciBHQ0UsIHRoZSBtb2RpZmllZCBjb2RlIHBhdGhzIGNhbm5vdCBiZSByZWFjaGVkIGFuZCBmdXp6ZWQuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IGZhbHNlXG59IiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IG51bGwsXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBtb2RpZmllcyB0aGUgY3hnYjQgZHJpdmVyLCB3aGljaCBpcyBhIGhhcmR3YXJlLXNwZWNpZmljIFBDSSBkcml2ZXIgZm9yIENoZWxzaW8gVDQvVDUvVDYgRXRoZXJuZXQgYWRhcHRlcnMuIFNpbmNlIHRoZXJlIGlzIG5vIHNvZnR3YXJlIGVtdWxhdGlvbiBmb3IgdGhpcyBoYXJkd2FyZSBpbiBzdGFuZGFyZCB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBRRU1VIG9yIEdDRSwgdGhlIG1vZGlmaWVkIGNvZGUgcGF0aHMgY2Fubm90IGJlIHJlYWNoZWQgYW5kIGZ1enplZC5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogZmFsc2Vcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfV07CgkJCWlmICghcmF3RGF0YSB8fCByYXdEYXRhLmxlbmd0aCA9PT0gMCkgcmV0dXJuOwoKCQkJZHJhd1N1bW1hcnlUYWJsZXMocmF3RGF0YSk7CgkJCWRyYXdEdXJhdGlvbkNoYXJ0KHJhd0RhdGEpOwoJCQlkcmF3VG9rZW5Db25zdW1wdGlvbkNoYXJ0KHJhd0RhdGEpOwoJCX0KCgkJZnVuY3Rpb24gZHJhd1N1bW1hcnlUYWJsZXMocmF3RGF0YSkgewoJCQljb25zdCBzdGF0cyA9IHsKCQkJCWxsbTogeyBjb3VudDogMCwgdG9rZW5zOiAwLCBkdXJhdGlvbjogMCB9LAoJCQkJdG9vbDogeyBjb3VudDogMCwgZHVyYXRpb246IDAgfQoJCQl9OwoKCQkJcmF3RGF0YS5mb3JFYWNoKHMgPT4gewoJCQkJY29uc3QgZHVyID0gcy5EdXJhdGlvbiAvIDEwMDAwMDAwMDA7IAoJCQkJaWYgKHMuVHlwZSA9PT0gImxsbSIpIHsKCQkJCQlzdGF0cy5sbG0uY291bnQrKzsKCQkJCQlzdGF0cy5sbG0udG9rZW5zICs9IChzLklucHV0VG9rZW5zICsgcy5PdXRwdXRUb2tlbnMgKyBzLk91dHB1dFRob3VnaHRzVG9rZW5zKTsKCQkJCQlzdGF0cy5sbG0uZHVyYXRpb24gKz0gZHVyOwoJCQkJfSBlbHNlIGlmIChzLlR5cGUgPT09ICJ0b29sIikgewoJCQkJCXN0YXRzLnRvb2wuY291bnQrKzsKCQkJCQlzdGF0cy50b29sLmR1cmF0aW9uICs9IGR1cjsKCQkJCX0KCQkJfSk7CgoJCQljb25zdCBhdmdMbG1EdXIgPSBzdGF0cy5sbG0uY291bnQgPiAwID8gKHN0YXRzLmxsbS5kdXJhdGlvbiAvIHN0YXRzLmxsbS5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgkJCWNvbnN0IGF2Z0xsbVRva2VuID0gc3RhdHMubGxtLmNvdW50ID4gMCA/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-workflowlgk2k[1] Phase: Running StartedAt: 2026-07-02 11:19:34 +0000 UTC FinishedAt: 0001-01-01 00:00:00 +0000 UTC Input: nil Output: nil --------- Name: series-workflowlgk2k[1].abort-on-skip-outcome Phase: Failed StartedAt: 2026-07-02 11:19:34 +0000 UTC FinishedAt: 2026-07-02 11:20:33 +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,}