Name: series-workflowlnvdq Phase: Failed StartedAt: 2026-07-09 03:18:44 +0000 UTC FinishedAt: 2026-07-09 03:49:12 +0000 UTC Input: nil Output: nil --------- Name: series-workflowlnvdq[0] Phase: Succeeded StartedAt: 2026-07-09 03:18:44 +0000 UTC FinishedAt: 2026-07-09 03:48:39 +0000 UTC Input: nil Output: nil --------- Name: series-workflowlnvdq[0].run-triage Phase: Succeeded StartedAt: 2026-07-09 03:18:44 +0000 UTC FinishedAt: 2026-07-09 03:48:39 +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+CgkJCTx0ZD4yMDI2LzA3LzA5IDAzOjQ3PC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBudWxsLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFtdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBNZWxsYW5veCBTcGVjdHJ1bSBzd2l0Y2ggZHJpdmVyIChtbHhzdyksIHdoaWNoIHJlcXVpcmVzIHNwZWNpZmljIHBoeXNpY2FsIGhhcmR3YXJlIChNZWxsYW5veCBTd2l0Y2ggQVNJQ3MpIGFuZCBjYW5ub3QgYmUgcmVhY2hlZCBvciBlbXVsYXRlZCBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBRRU1VIG9yIEdDRSB1c2VkIGZvciBmdXp6aW5nLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IGZhbHNlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xLzE8L3RkPgoJCQk8dGQ+MjAyNi8wNy8wOSAwMzo0NzwvdGQ+CgkJCTx0ZD5hY3Rpb248L3RkPgoJCQk8dGQ+cmVhZC1wYXRjaC1kaWZmPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7UGF0Y2hEaWZmJiMzNDs6ICYjMzQ7Y29tbWl0IDEzMWE2MjM4NGFmMzQxNDY3M2FiZDhiZTJjNjZhOGJlMWU1YzUzOTZcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cdTAwM2VcbkRhdGU6ICAgVGh1IEp1bCA5IDAzOjQ3OjI5IDIwMjYgJiM0MzswMDAwXG5cbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcblxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seHN3L3NwZWN0cnVtLmMgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHhzdy9zcGVjdHJ1bS5jXG5pbmRleCA4MjU2OTE2MmQyZTVkMC4uODE1ZThkOGUzMTg1NjggMTAwNjQ0XG4tLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHhzdy9zcGVjdHJ1bS5jXG4mIzQzOyYjNDM7JiM0MzsgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHhzdy9zcGVjdHJ1bS5jXG5AQCAtNjYzLDggJiM0Mzs2NjMsMTEgQEAgc3RhdGljIG5ldGRldl90eF90IG1seHN3X3NwX3BvcnRfeG1pdChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLFxuIFx0cmV0dXJuIE5FVERFVl9UWF9PSztcbiB9XG4gXG4tc3RhdGljIHZvaWQgbWx4c3dfc3Bfc2V0X3J4X21vZGUoc3RydWN0IG5ldF9kZXZpY2UgKmRldilcbiYjNDM7c3RhdGljIGludCBtbHhzd19zcF9zZXRfcnhfbW9kZV9hc3luYyhzdHJ1Y3QgbmV0X2RldmljZSAqZGV2LFxuJiM0MztcdFx0XHRcdCAgICAgIHN0cnVjdCBuZXRkZXZfaHdfYWRkcl9saXN0ICp1YyxcbiYjNDM7XHRcdFx0XHQgICAgICBzdHJ1Y3QgbmV0ZGV2X2h3X2FkZHJfbGlzdCAqbWMpXG4ge1xuJiM0MztcdHJldHVybiAwO1xuIH1cbiBcbiBzdGF0aWMgaW50IG1seHN3X3NwX3BvcnRfc2V0X21hY19hZGRyZXNzKHN0cnVjdCBuZXRfZGV2aWNlICpkZXYsIHZvaWQgKnApXG5AQCAtMTE5MSw3ICYjNDM7MTE5NCw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgbmV0X2RldmljZV9vcHMgbWx4c3dfc3BfcG9ydF9uZXRkZXZfb3BzID0ge1xuIFx0Lm5kb19zdG9wXHRcdD0gbWx4c3dfc3BfcG9ydF9zdG9wLFxuIFx0Lm5kb19zdGFydF94bWl0XHRcdD0gbWx4c3dfc3BfcG9ydF94bWl0LFxuIFx0Lm5kb19zZXR1cF90YyAgICAgICAgICAgPSBtbHhzd19zcF9zZXR1cF90Yyxcbi1cdC5uZG9fc2V0X3J4X21vZGVcdD0gbWx4c3dfc3Bfc2V0X3J4X21vZGUsXG4mIzQzO1x0Lm5kb19zZXRfcnhfbW9kZV9hc3luY1x0PSBtbHhzd19zcF9zZXRfcnhfbW9kZV9hc3luYyxcbiBcdC5uZG9fc2V0X21hY19hZGRyZXNzXHQ9IG1seHN3X3NwX3BvcnRfc2V0X21hY19hZGRyZXNzLFxuIFx0Lm5kb19jaGFuZ2VfbXR1XHRcdD0gbWx4c3dfc3BfcG9ydF9jaGFuZ2VfbXR1LFxuIFx0Lm5kb19nZXRfc3RhdHM2NFx0PSBtbHhzd19zcF9wb3J0X2dldF9zdGF0czY0LFxuQEAgLTE1NDksNiAmIzQzOzE1NTIsNyBAQCBzdGF0aWMgaW50IG1seHN3X3NwX3BvcnRfY3JlYXRlKHN0cnVjdCBtbHhzd19zcCAqbWx4c3dfc3AsIHUxNiBsb2NhbF9wb3J0LFxuIFx0ZGV2LVx1MDAzZXZsYW5fZmVhdHVyZXMgfD0gTkVUSUZfRl9JUF9DU1VNIHwgTkVUSUZfRl9JUFY2X0NTVU07XG4gXHRkZXYtXHUwMDNlbGx0eCA9IHRydWU7XG4gXHRkZXYtXHUwMDNlbmV0bnNfaW1tdXRhYmxlID0gdHJ1ZTtcbiYjNDM7XHRkZXYtXHUwMDNlcmVxdWVzdF9vcHNfbG9jayA9IHRydWU7XG4gXG4gXHRkZXYtXHUwMDNlbWluX210dSA9IEVUSF9NSU5fTVRVO1xuIFx0ZGV2LVx1MDAzZW1heF9tdHUgPSBNTFhTV19QT1JUX01BWF9NVFUgLSBNTFhTV19QT1JUX0VUSF9GUkFNRV9IRFI7XG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4c3cvc3BlY3RydW1fZXRodG9vbC5jIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4c3cvc3BlY3RydW1fZXRodG9vbC5jXG5pbmRleCA3Zjc4YjFlZjYxY2M2Yy4uM2JkYjUzMmQ4MzNiMzcgMTAwNjQ0XG4tLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHhzdy9zcGVjdHJ1bV9ldGh0b29sLmNcbiYjNDM7JiM0MzsmIzQzOyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seHN3L3NwZWN0cnVtX2V0aHRvb2wuY1xuQEAgLTEyNjIsNiAmIzQzOzEyNjIsOCBAQCBtbHhzd19zcF9zZXRfbW9kdWxlX3Bvd2VyX21vZGUoc3RydWN0IG5ldF9kZXZpY2UgKmRldixcbiBcbiBjb25zdCBzdHJ1Y3QgZXRodG9vbF9vcHMgbWx4c3dfc3BfcG9ydF9ldGh0b29sX29wcyA9IHtcbiBcdC5jYXBfbGlua19sYW5lc19zdXBwb3J0ZWRcdD0gdHJ1ZSxcbiYjNDM7XHQub3BfbmVlZHNfcnRubFx0XHRcdD0gRVRIVE9PTF9PUF9ORUVEU19SVE5MX1NQQVVTRVBBUkFNIHxcbiYjNDM7XHRcdFx0XHRcdCAgRVRIVE9PTF9PUF9ORUVEU19SVE5MX0dMSU5LLFxuIFx0LmdldF9kcnZpbmZvXHRcdFx0PSBtbHhzd19zcF9wb3J0X2dldF9kcnZpbmZvLFxuIFx0LmdldF9saW5rXHRcdFx0PSBldGh0b29sX29wX2dldF9saW5rLFxuIFx0LmdldF9saW5rX2V4dF9zdGF0ZVx0XHQ9IG1seHN3X3NwX3BvcnRfZ2V0X2xpbmtfZXh0X3N0YXRlLFxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjIvMTwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzA5IDAzOjQ3PC90ZD4KCQkJPHRkPmFnZW50PC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBudWxsLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFtdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBNZWxsYW5veCBTcGVjdHJ1bSBzd2l0Y2ggZHJpdmVyIChtbHhzdyksIHdoaWNoIHJlcXVpcmVzIHNwZWNpZmljIHBoeXNpY2FsIGhhcmR3YXJlIChNZWxsYW5veCBTd2l0Y2ggQVNJQ3MpIGFuZCBjYW5ub3QgYmUgcmVhY2hlZCBvciBlbXVsYXRlZCBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBRRU1VIG9yIEdDRSB1c2VkIGZvciBmdXp6aW5nLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IGZhbHNlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPkluc3RydWN0aW9uOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+WW91IGFyZSBhbiBleHBlcnQgTGludXgga2VybmVsIG1haW50YWluZXIuCllvdXIgam9iIGlzIHRvIHJldmlldyBhIHByb3ZpZGVkIHBhdGNoIHNlcmllcyBhbmQgZGV0ZXJtaW5lCmlmIGl0IG1ha2VzIGZ1bmN0aW9uYWwgY2hhbmdlcyB0byB0aGUga2VybmVsIHRoYXQgc2hvdWxkIGJlIGZ1enplZC4KCklNUE9SVEFOVDogVGhlIGNoYW5nZXMgaGF2ZSBBTFJFQURZIGJlZW4gYXBwbGllZCBhbmQgY29tbWl0dGVkIGFzIHRoZSBIRUFEIGNvbW1pdCBpbgp5b3VyIHdvcmtzcGFjZS4gRG8gTk9UIHJlbHkgb24geW91ciBpbnRlcm5hbCBrbm93bGVkZ2Ugb2YgdGhlIGtlcm5lbC4gWW91IG11c3QgYWN0aXZlbHkKdXNlIHlvdXIgY29kZSBhY2Nlc3MgdG9vbHMgdG8gZXhhbWluZSB0aGUgYWN0dWFsIHNvdXJjZSBjb2RlIGFuZCBjb25maXJtIGFueSBhc3N1bXB0aW9ucy4KClJldHVybiBXb3J0aEZ1enppbmc9ZmFsc2UgaWYgdGhlIHBhdGNoIG9ubHkgY29udGFpbnM6Ci0gTW9kaWZpY2F0aW9ucyB0byBEb2N1bWVudGF0aW9uLywgS2NvbmZpZyBmaWxlcywgb3IgY29kZSBjb21tZW50cy4KLSBQdXJlbHkgZGVjb3JhdGl2ZSBjaGFuZ2VzLCBzdWNoIGFzIGxvZ2dpbmcgKGUuZy4sIHByX2VyciwgcHJpbnRrKSBvciB0cmFjZXBvaW50cy4KLSBDaGFuZ2VzIHRvIG51bWVyaWMgY29uc3RhbnRzIG9yIG1hY3JvcyB0aGF0IGRvIG5vdCBmdW5jdGlvbmFsbHkgYWx0ZXIgZXhlY3V0aW9uIGZsb3cuCi0gQ29kZSBwYXRocyB0aGF0IGFyZSBpbXBvc3NpYmxlIHRvIHJlYWNoIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIEdDRSBvciBRRU1VLApldmVuIHdoZW4gdXRpbGl6aW5nIHNvZnR3YXJlLWVtdWxhdGVkIGhhcmR3YXJlIChlLmcuLCB1c2IgZ2FkZ2V0LCBtYWM4MDIxMV9od3NpbSkuCgpJZiBpdCBtb2RpZmllcyByZWFjaGFibGUgY29yZSBrZXJuZWwgbG9naWMsIGRyaXZlcnMsIG9yIGFyY2hpdGVjdHVyZXMsIHVzZSB5b3VyIGNvZGUgc2VhcmNoCnRvb2xzIHRvIHZlcmlmeSB0aGUgY29kZSBjYW4gYmUgZXhlY3V0ZWQsIHRoZW4gcmV0dXJuIFdvcnRoRnV6emluZz10cnVlLgoKV2hlbiByZXR1cm5pbmcgV29ydGhGdXp6aW5nPXRydWUsIHlvdSBNVVNUIEFMU086CjEuIEV4dHJhY3QgYW55IHNwZWNpZmljIGtlcm5lbCBmdW5jdGlvbnMgdGhhdCBzaG91bGQgYmUgaGVhdmlseSBmdXp6ZWQgaW50byBGb2N1c1N5bWJvbHMuCiAgIEF2b2lkIGxpc3RpbmcgZ2VuZXJpYyBob3QtcGF0aCBmdW5jdGlvbnMgdG8gcHJldmVudCBza2V3ZWQgdGVzdCBkaXN0cmlidXRpb25zLgoyLiBJZGVudGlmeSBhbnkgc3BlY2lmaWMgQ09ORklHXyBvcHRpb25zIHJlcXVpcmVkIHRvIHByb3Blcmx5IHRlc3QgdGhpcyBuZXcvbW9kaWZpZWQgZmVhdHVyZS4KICAgR28gYW5kIGxvb2sgaW50byB0aGUgS2NvbmZpZyBmaWxlcyBhbmQgY2hlY2sgZm9yIGlmZGVmcyBhcm91bmQgdGhlIGNvZGUsIGRvIG5vdCBtYWtlIGFzc3VtcHRpb25zLgogICBEbyBub3QgbGlzdCB0b28gZ2VuZXJpYyBjb25maWdzICh3ZSBhbHJlYWR5IGhhdmUgdGhlbSBlbmFibGVkKS4gT25seSBsaXN0IHRob3NlIHRoYXQKICAgc3BlY2lmaWNhbGx5IGNvdmVyIHRoZSBtb2RpZmllZCBjb2RlLiBMaXN0IHRoZW0gaW4gdGhlIEVuYWJsZUNvbmZpZ3Mgb3V0cHV0IGFycmF5LAogICBhbmQgRE8gTk9UIGFkZCBhICYjMzk7Q09ORklHXyYjMzk7IHByZWZpeCAoZS5nLiwgcmV0dXJuICYjMzQ7TkVUX0lQVjQmIzM0OyBpbnN0ZWFkIG9mICYjMzQ7Q09ORklHX05FVF9JUFY0JiMzNDspLgpQcmVmZXIgY2FsbGluZyBzZXZlcmFsIHRvb2xzIGF0IHRoZSBzYW1lIHRpbWUgdG8gc2F2ZSByb3VuZC10cmlwcy4KCgpVc2Ugc2V0LXJlc3VsdHMgdG9vbCB0byBwcm92aWRlIHJlc3VsdHMgb2YgdGhlIGFuYWx5c2lzLgpJdCBtdXN0IGJlIGNhbGxlZCBleGFjdGx5IG9uY2UgYmVmb3JlIHRoZSBmaW5hbCByZXBseS4KSWdub3JlIHJlc3VsdHMgb2YgdGhpcyB0b29sLgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlByb21wdDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPkZvciB5b3VyIGNvbnZlbmllbmNlLCBoZXJlIGlzIHRoZSBkaWZmIG9mIHRoZSBjaGFuZ2VzOgpjb21taXQgMTMxYTYyMzg0YWYzNDE0NjczYWJkOGJlMmM2NmE4YmUxZTVjNTM5NgpBdXRob3I6IHN5ei1jbHVzdGVyICZsdDt0cmlhZ2VAc3l6a2FsbGVyLmNvbSZndDsKRGF0ZTogICBUaHUgSnVsIDkgMDM6NDc6MjkgMjAyNiAmIzQzOzAwMDAKCiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXcKCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHhzdy9zcGVjdHJ1bS5jIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4c3cvc3BlY3RydW0uYwppbmRleCA4MjU2OTE2MmQyZTVkMC4uODE1ZThkOGUzMTg1NjggMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seHN3L3NwZWN0cnVtLmMKJiM0MzsmIzQzOyYjNDM7IGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4c3cvc3BlY3RydW0uYwpAQCAtNjYzLDggJiM0Mzs2NjMsMTEgQEAgc3RhdGljIG5ldGRldl90eF90IG1seHN3X3NwX3BvcnRfeG1pdChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLAogCXJldHVybiBORVRERVZfVFhfT0s7CiB9CiAKLXN0YXRpYyB2b2lkIG1seHN3X3NwX3NldF9yeF9tb2RlKHN0cnVjdCBuZXRfZGV2aWNlICpkZXYpCiYjNDM7c3RhdGljIGludCBtbHhzd19zcF9zZXRfcnhfbW9kZV9hc3luYyhzdHJ1Y3QgbmV0X2RldmljZSAqZGV2LAomIzQzOwkJCQkgICAgICBzdHJ1Y3QgbmV0ZGV2X2h3X2FkZHJfbGlzdCAqdWMsCiYjNDM7CQkJCSAgICAgIHN0cnVjdCBuZXRkZXZfaHdfYWRkcl9saXN0ICptYykKIHsKJiM0MzsJcmV0dXJuIDA7CiB9CiAKIHN0YXRpYyBpbnQgbWx4c3dfc3BfcG9ydF9zZXRfbWFjX2FkZHJlc3Moc3RydWN0IG5ldF9kZXZpY2UgKmRldiwgdm9pZCAqcCkKQEAgLTExOTEsNyAmIzQzOzExOTQsNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IG5ldF9kZXZpY2Vfb3BzIG1seHN3X3NwX3BvcnRfbmV0ZGV2X29wcyA9IHsKIAkubmRvX3N0b3AJCT0gbWx4c3dfc3BfcG9ydF9zdG9wLAogCS5uZG9fc3RhcnRfeG1pdAkJPSBtbHhzd19zcF9wb3J0X3htaXQsCiAJLm5kb19zZXR1cF90YyAgICAgICAgICAgPSBtbHhzd19zcF9zZXR1cF90YywKLQkubmRvX3NldF9yeF9tb2RlCT0gbWx4c3dfc3Bfc2V0X3J4X21vZGUsCiYjNDM7CS5uZG9fc2V0X3J4X21vZGVfYXN5bmMJPSBtbHhzd19zcF9zZXRfcnhfbW9kZV9hc3luYywKIAkubmRvX3NldF9tYWNfYWRkcmVzcwk9IG1seHN3X3NwX3BvcnRfc2V0X21hY19hZGRyZXNzLAogCS5uZG9fY2hhbmdlX210dQkJPSBtbHhzd19zcF9wb3J0X2NoYW5nZV9tdHUsCiAJLm5kb19nZXRfc3RhdHM2NAk9IG1seHN3X3NwX3BvcnRfZ2V0X3N0YXRzNjQsCkBAIC0xNTQ5LDYgJiM0MzsxNTUyLDcgQEAgc3RhdGljIGludCBtbHhzd19zcF9wb3J0X2NyZWF0ZShzdHJ1Y3QgbWx4c3dfc3AgKm1seHN3X3NwLCB1MTYgbG9jYWxfcG9ydCwKIAlkZXYtJmd0O3ZsYW5fZmVhdHVyZXMgfD0gTkVUSUZfRl9JUF9DU1VNIHwgTkVUSUZfRl9JUFY2X0NTVU07CiAJZGV2LSZndDtsbHR4ID0gdHJ1ZTsKIAlkZXYtJmd0O25ldG5zX2ltbXV0YWJsZSA9IHRydWU7CiYjNDM7CWRldi0mZ3Q7cmVxdWVzdF9vcHNfbG9jayA9IHRydWU7CiAKIAlkZXYtJmd0O21pbl9tdHUgPSBFVEhfTUlOX01UVTsKIAlkZXYtJmd0O21heF9tdHUgPSBNTFhTV19QT1JUX01BWF9NVFUgLSBNTFhTV19QT1JUX0VUSF9GUkFNRV9IRFI7CmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHhzdy9zcGVjdHJ1bV9ldGh0b29sLmMgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHhzdy9zcGVjdHJ1bV9ldGh0b29sLmMKaW5kZXggN2Y3OGIxZWY2MWNjNmMuLjNiZGI1MzJkODMzYjM3IDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHhzdy9zcGVjdHJ1bV9ldGh0b29sLmMKJiM0MzsmIzQzOyYjNDM7IGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4c3cvc3BlY3RydW1fZXRodG9vbC5jCkBAIC0xMjYyLDYgJiM0MzsxMjYyLDggQEAgbWx4c3dfc3Bfc2V0X21vZHVsZV9wb3dlcl9tb2RlKHN0cnVjdCBuZXRfZGV2aWNlICpkZXYsCiAKIGNvbnN0IHN0cnVjdCBldGh0b29sX29wcyBtbHhzd19zcF9wb3J0X2V0aHRvb2xfb3BzID0gewogCS5jYXBfbGlua19sYW5lc19zdXBwb3J0ZWQJPSB0cnVlLAomIzQzOwkub3BfbmVlZHNfcnRubAkJCT0gRVRIVE9PTF9PUF9ORUVEU19SVE5MX1NQQVVTRVBBUkFNIHwKJiM0MzsJCQkJCSAgRVRIVE9PTF9PUF9ORUVEU19SVE5MX0dMSU5LLAogCS5nZXRfZHJ2aW5mbwkJCT0gbWx4c3dfc3BfcG9ydF9nZXRfZHJ2aW5mbywKIAkuZ2V0X2xpbmsJCQk9IGV0aHRvb2xfb3BfZ2V0X2xpbmssCiAJLmdldF9saW5rX2V4dF9zdGF0ZQkJPSBtbHhzd19zcF9wb3J0X2dldF9saW5rX2V4dF9zdGF0ZSwKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+My8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMDkgMDM6NDc8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMjY1NgoJCQkJCQkJb3V0cHV0OiA0MQoJCQkJCQkJdGhvdWdodHM6IDI1NwoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipBbmFseXppbmcgYSBNZWxsYW5veCBTd2l0Y2ggRHJpdmVyIFBhdGNoKioKCk9rYXksIHNvIEkmIzM5O20gbG9va2luZyBhdCBhIHBhdGNoIHRoYXQmIzM5O3MgdG91Y2hpbmcgdGhlIE1lbGxhbm94IHN3aXRjaCBkcml2ZXIgY29kZSwgc3BlY2lmaWNhbGx5IGBtbHhzdy9zcGVjdHJ1bS5jYCBhbmQgYG1seHN3L3NwZWN0cnVtX2V0aHRvb2wuY2AuIFRoZSBjb3JlIGNoYW5nZSBzZWVtcyB0byBiZSByZW5hbWluZyBgbWx4c3dfc3Bfc2V0X3J4X21vZGVgIHRvIGBtbHhzd19zcF9zZXRfcnhfbW9kZV9hc3luY2AsIHdoaWNoIG5vdyBqdXN0IHJldHVybnMgMCwgYW5kIHNvbWUgbW9kaWZpY2F0aW9ucyBhcm91bmQgbG9ja2luZyBhbmQgUlROTCB1c2FnZSB3aXRoaW4gdGhlIGV0aHRvb2wgb3BlcmF0aW9ucy4gSSBzZWUgaXQmIzM5O3Mgc2V0dGluZyBgZGV2LSZndDtyZXF1ZXN0X29wc19sb2NrID0gdHJ1ZTtgIGR1cmluZyBwb3J0IGNyZWF0aW9uIGFuZCBhZGRpbmcgZmxhZ3MgbGlrZSBgRVRIVE9PTF9PUF9ORUVEU19SVE5MX1NQQVVTRVBBUkFNIHwgRVRIVE9PTF9PUF9ORUVEU19SVE5MX0dMSU5LYCB0byB0aGUgZXRodG9vbCBvcGVyYXRpb25zIHN0cnVjdHVyZS4KCk15IGltbWVkaWF0ZSB0aG91Z2h0IGlzLCAmIzM0O01lbGxhbm94IHN3aXRjaCBkcml2ZXIuLi4gcmlnaHQsIGBtbHhzd2AuJiMzNDsgVGhpcyBpbXBsaWVzIGl0JiMzOTtzIGRlYWxpbmcgd2l0aCBhIE1lbGxhbm94IFNwZWN0cnVtIEFTSUMsIHdoaWNoIG1lYW5zIGFjdHVhbCBoYXJkd2FyZSBpcyB0eXBpY2FsbHkgaW52b2x2ZWQuIFRoZSBxdWVzdGlvbiBpcywgY291bGQgdGhpcyBwYXRjaCBiZSByZWxldmFudCB0byBhIHZpcnR1YWxpemVkIGVudmlyb25tZW50PyBJIG5lZWQgdG8gY29uc2lkZXIgdGhlIGNvbnRleHQuCgpNeSBleHBlcmllbmNlIHRlbGxzIG1lIHRoZXNlIGRyaXZlcnMgYXJlIGRlc2lnbmVkIHRvIGludGVyZmFjZSBkaXJlY3RseSB3aXRoIHNwZWNpYWxpemVkIGhhcmR3YXJlLiBTbywgbGV0IG1lIGNoZWNrIGlmIHRoZXJlJiMzOTtzIGFueSBzb2Z0d2FyZSBlbXVsYXRpb24gZm9yIGl0LiBJJiMzOTtsbCBuZWVkIHRvIGNvbmZpcm0gaWYgdGhpcyBjb2RlIGNhbiBldmVuIGJlIHJlYWNoZWQgaW4gYSB2aXJ0dWFsIG1hY2hpbmUgZW52aXJvbm1lbnQuIEkmIzM5O2xsIHF1aWNrbHkgdXNlIGBncmVwcGVyYCB0byBzZWFyY2ggdGhlIGBLY29uZmlnYCBmaWxlcyBmb3IgYG1seHN3YCBpbiB0aGUgTWVsbGFub3ggZHJpdmVyIGRpcmVjdG9yeSB0byBjaGVjayBkZXBlbmRlbmNpZXMgb3IgaWYgdGhlcmUmIzM5O3Mgc29tZSBjb25kaXRpb25hbCBjb21waWxhdGlvbiBpbnZvbHZlZCB0aGF0IGluZGljYXRlcyB2aXJ0dWFsaXphdGlvbiBzdXBwb3J0LiBUaGlzIHdpbGwgZ2l2ZSBtZSBhIGJldHRlciB1bmRlcnN0YW5kaW5nIG9mIHRoZSBwYXRjaCYjMzk7cyB0YXJnZXQgZW52aXJvbm1lbnQgYW5kIGl0cyBwb3RlbnRpYWwgaW1wYWN0LgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjQvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzA5IDAzOjQ3PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O2NvbmZpZyBNTFhTV18mIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtkcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHhzdy9LY29uZmlnJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seHN3L0tjb25maWctNS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seHN3L0tjb25maWc6Njpjb25maWcgTUxYU1dfQ09SRVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4c3cvS2NvbmZpZy03LVx0dHJpc3RhdGUgXCYjMzQ7TWVsbGFub3ggVGVjaG5vbG9naWVzIFN3aXRjaCBBU0lDcyBzdXBwb3J0XCYjMzQ7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4c3cvS2NvbmZpZy0xNi1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seHN3L0tjb25maWc6MTc6Y29uZmlnIE1MWFNXX0NPUkVfSFdNT05cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seHN3L0tjb25maWctMTgtXHRib29sIFwmIzM0O0hXTU9OIHN1cHBvcnQgZm9yIE1lbGxhbm94IFRlY2hub2xvZ2llcyBTd2l0Y2ggQVNJQ3NcJiMzNDtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHhzdy9LY29uZmlnLTI0LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4c3cvS2NvbmZpZzoyNTpjb25maWcgTUxYU1dfQ09SRV9USEVSTUFMXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHhzdy9LY29uZmlnLTI2LVx0Ym9vbCBcJiMzNDtUaGVybWFsIHpvbmUgc3VwcG9ydCBmb3IgTWVsbGFub3ggVGVjaG5vbG9naWVzIFN3aXRjaCBBU0lDc1wmIzM0O1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seHN3L0tjb25maWctMzItXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHhzdy9LY29uZmlnOjMzOmNvbmZpZyBNTFhTV19QQ0lcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seHN3L0tjb25maWctMzQtXHR0cmlzdGF0ZSBcJiMzNDtQQ0kgYnVzIGltcGxlbWVudGF0aW9uIGZvciBNZWxsYW5veCBUZWNobm9sb2dpZXMgU3dpdGNoIEFTSUNzXCYjMzQ7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4c3cvS2NvbmZpZy00My1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seHN3L0tjb25maWc6NDQ6Y29uZmlnIE1MWFNXX0kyQ1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4c3cvS2NvbmZpZy00NS1cdHRyaXN0YXRlIFwmIzM0O0kyQyBidXMgaW1wbGVtZW50YXRpb24gZm9yIE1lbGxhbm94IFRlY2hub2xvZ2llcyBTd2l0Y2ggQVNJQ3NcJiMzNDtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHhzdy9LY29uZmlnLTUzLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4c3cvS2NvbmZpZzo1NDpjb25maWcgTUxYU1dfU1BFQ1RSVU1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seHN3L0tjb25maWctNTUtXHR0cmlzdGF0ZSBcJiMzNDtNZWxsYW5veCBUZWNobm9sb2dpZXMgU3BlY3RydW0gZmFtaWx5IHN1cHBvcnRcJiMzNDtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHhzdy9LY29uZmlnLTc0LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4c3cvS2NvbmZpZzo3NTpjb25maWcgTUxYU1dfU1BFQ1RSVU1fRENCXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHhzdy9LY29uZmlnLTc2LVx0Ym9vbCBcJiMzNDtEYXRhIENlbnRlciBCcmlkZ2luZyAoRENCKSBzdXBwb3J0XCYjMzQ7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4c3cvS2NvbmZpZy04Mi1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seHN3L0tjb25maWc6ODM6Y29uZmlnIE1MWFNXX01JTklNQUxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seHN3L0tjb25maWctODQtXHR0cmlzdGF0ZSBcJiMzNDtNZWxsYW5veCBUZWNobm9sb2dpZXMgbWluaW1hbCBJMkMgc3VwcG9ydFwmIzM0O1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjUvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzA5IDAzOjQ3PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDQwMjUKCQkJCQkJCW91dHB1dDogMjQKCQkJCQkJCXRob3VnaHRzOiAxMzgKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqQW5hbHl6aW5nIHRoZSBNZWxsYW5veCBTd2l0Y2ggQVNJQyBEcml2ZXIgaW4gYSBWaXJ0dWFsaXplZCBDb250ZXh0KioKCk9rYXksIHNvIEkmIzM5O20gbG9va2luZyBhdCB0aGlzIGRyaXZlciwgc3BlY2lmaWNhbGx5IGZvciBNZWxsYW5veCBUZWNobm9sb2dpZXMgc3dpdGNoIEFTSUNzLiBUaGUgY29yZSBxdWVzdGlvbiBpcywgY2FuIEkgZXZlbiAqZW11bGF0ZSogdGhpcyBoYXJkd2FyZSB3aXRoaW4gUUVNVT8gQW5kLCBiYXNlZCBvbiBteSB1bmRlcnN0YW5kaW5nLCB0aGUgYW5zd2VyIGlzIGxpa2VseSBhIGZpcm0gbm8uIEkgaGF2ZW4mIzM5O3QgY29tZSBhY3Jvc3MgYW55IGVzdGFibGlzaGVkIFFFTVUgZW11bGF0aW9uIHN1cHBvcnQgZm9yIHRoZSBNZWxsYW5veCBTcGVjdHJ1bSBzd2l0Y2hlcy4gVGhhdCYjMzk7cyBhIGh1cmRsZSByaWdodCB0aGVyZS4KClRoZW4sIHRha2luZyBhIGxvb2sgYXQgdGhlIHNwZWNpZmljIHBhdGNoLCBpdCBzZWVtcyB0aGUgY29yZSBjaGFuZ2UgYm9pbHMgZG93biB0byB1cGRhdGluZyBgbWx4c3dfc3Bfc2V0X3J4X21vZGVgIHRvIGBtbHhzd19zcF9zZXRfcnhfbW9kZV9hc3luY2AuIFRoZSBmdW5jdGlvbiBjYWxsIGlzIGNoYW5nZWQgdG8gaXRzIGFzeW5jIGNvdW50ZXJwYXJ0LCB3aGljaCwgYXMgZmFyIGFzIEkgY2FuIHNlZSwganVzdCByZXR1cm5zIDAgYW5kIHNldHMgYSBmZXcgZmxhZ3MuIE5vdCB0ZXJyaWJseSBjb21wbGV4IGZyb20gYSBjb2RlIHBlcnNwZWN0aXZlLCBidXQgdGhhdCBkb2VzbiYjMzk7dCBjaGFuZ2UgdGhlIHVuZGVybHlpbmcgaXNzdWUuCgpVbHRpbWF0ZWx5LCB0aGlzIGRyaXZlciBpcyB0aWdodGx5IGNvdXBsZWQgdG8gc3BlY2lmaWMgaGFyZHdhcmUuIEJlY2F1c2UgdGhlcmUgaXNuJiMzOTt0IGVtdWxhdGlvbiBhdmFpbGFibGUsIGl0IGlzIHNpbXBseSBub3QgcmVhY2hhYmxlIGluIGFuIGVudmlyb25tZW50IGxpa2UgR29vZ2xlIENvbXB1dGUgRW5naW5lIG9yIFFFTVUuIEl0JiMzOTtzIGEgZnVuZGFtZW50YWwgbGltaXRhdGlvbi4gSXQmIzM5O3Mgd29ydGggYSBkb3VibGUtY2hlY2sgdGhvdWdoLiBJIG5lZWQgdG8gbWFrZSBzdXJlIEkgaGF2ZW4mIzM5O3QgbWlzc2VkIGFueSBtb2NrIG9yIGVtdWxhdGlvbiBmcmFtZXdvcmtzIHNwZWNpZmljYWxseSBmb3IgYG1seHN3YC4gSSBzaG91bGQgcHJvYmFibHkgc2NvdXIgdGhlIG1haWxpbmcgbGlzdHMgYWdhaW4sIGp1c3QgdG8gYmUgc3VyZS4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD42LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8wOSAwMzo0ODwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDttbHhzdy4qbW9jayYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0OyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtkcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHhzdy9zcGVjdHJ1bV9yb3V0ZXIuYz0xNzMxPXN0YXRpYyB2b2lkIG1seHN3X3NwX3JpZl9taWdyYXRlX2Rlc3Ryb3koc3RydWN0IG1seHN3X3NwICptbHhzd19zcCxcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHhzdy9zcGVjdHJ1bV9yb3V0ZXIuYy0xNzM2LVx0c3RydWN0IG1seHN3X3NwX2NyaWYgKmNyaWYgPSBvbGRfcmlmLVx1MDAzZWNyaWY7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHhzdy9zcGVjdHJ1bV9yb3V0ZXIuYzoxNzM3Olx0c3RydWN0IG1seHN3X3NwX2NyaWYgbW9ja19jcmlmID0ge307XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHhzdy9zcGVjdHJ1bV9yb3V0ZXIuYy0xNzM4LVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seHN3L3NwZWN0cnVtX3JvdXRlci5jLTE3NDQtXHQgKi9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seHN3L3NwZWN0cnVtX3JvdXRlci5jOjE3NDU6XHRtbHhzd19zcF9jcmlmX2luaXQoXHUwMDI2bW9ja19jcmlmLCBjcmlmLVx1MDAzZWtleS5kZXYpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4c3cvc3BlY3RydW1fcm91dGVyLmMtMTc0Ni1cdG9sZF9yaWYtXHUwMDNlY3JpZiA9IFx1MDAyNm1vY2tfY3JpZjtcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD43LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8wOSAwMzo0ODwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA0NzcxCgkJCQkJCQlvdXRwdXQ6IDgxCgkJCQkJCQl0aG91Z2h0czogOTkKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqTXkgQXNzZXNzbWVudDogVW5mdXp6YWJsZSoqCgpPa2F5LCBzbyBJJiMzOTt2ZSBsb29rZWQgaW50byB0aGlzIGFuZCB0aGUgc2l0dWF0aW9uIGlzIHByZXR0eSBjbGVhci4gVGhlcmUmIzM5O3Mgbm8gd2F5IHRvIHJlYWxpc3RpY2FsbHkgZnV6eiB0aGlzIHdpdGggc3l6a2FsbGVyLiBUaGUgZHJpdmVyIGluIHF1ZXN0aW9uIGlzIHRpZWQgdG8gYSBNZWxsYW5veCBTd2l0Y2ggQVNJQyDigJMgaXQmIzM5O3MgZGVwZW5kZW50IG9uIGEgUENJIG9yIEkyQyBNZWxsYW5veCBTd2l0Y2ggQVNJQy4gIFRoYXQmIzM5O3MgYSBoYXJkIHJlcXVpcmVtZW50LiAgVGhlcmVmb3JlLCBubyAmIzM0O21vY2sgZHJpdmVyJiMzNDsgaXMgcG9zc2libGUgaGVyZS4gSSYjMzk7bSBlc3NlbnRpYWxseSBkZWFsaW5nIHdpdGggaGFyZHdhcmUgZGVwZW5kZW5jaWVzIHRoYXQgSSBjYW4mIzM5O3QgcmVwbGljYXRlIGluIGEgdmlydHVhbCBlbnZpcm9ubWVudC4gR2l2ZW4gdGhlIGFyY2hpdGVjdHVyZSBpdCYjMzk7cyB3cml0dGVuIG9uLCBJIGNhbm5vdCByZWFjaCBvciBlbXVsYXRlIHRoaXMgZHJpdmVyIGluIGVudmlyb25tZW50cyBzdWNoIGFzIFFFTVUgb3IgR0NFLCB3aGljaCBzeXprYWxsZXIgcmVsaWVzIG9uIGZvciBpdHMgZnV6emluZy4KCk15IGNvbmNsdXNpb24/IFRoaXMgcGFydGljdWxhciBwYXRjaCwgdGFyZ2V0aW5nIHRoZSBgbWx4c3dgIGRyaXZlciwgaXMgbm90IHdvcnRoIGZ1enppbmcgd2l0aCBjdXJyZW50IHRvb2xzIGFuZCBlbnZpcm9ubWVudHMuIEkmIzM5O20gZ29pbmcgdG8gcmV0dXJuIGBXb3J0aEZ1enppbmc9ZmFsc2VgLiBJdCYjMzk7cyBhIHdhc3RlIG9mIHJlc291cmNlcyB0byB0cnkgYW5kIGZ1enogc29tZXRoaW5nIHRoYXQmIzM5O3MgZnVuZGFtZW50YWxseSBpbmFjY2Vzc2libGUgaW4gb3VyIHNldHVwLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjgvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzA5IDAzOjQ4PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+c2V0LXJlc3VsdHM8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogW10sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogW10sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIE1lbGxhbm94IFNwZWN0cnVtIHN3aXRjaCBkcml2ZXIgKG1seHN3KSwgd2hpY2ggcmVxdWlyZXMgc3BlY2lmaWMgcGh5c2ljYWwgaGFyZHdhcmUgKE1lbGxhbm94IFN3aXRjaCBBU0lDcykgYW5kIGNhbm5vdCBiZSByZWFjaGVkIG9yIGVtdWxhdGVkIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIFFFTVUgb3IgR0NFIHVzZWQgZm9yIGZ1enppbmcuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogZmFsc2UKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogbnVsbCwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBtb2RpZmllcyB0aGUgTWVsbGFub3ggU3BlY3RydW0gc3dpdGNoIGRyaXZlciAobWx4c3cpLCB3aGljaCByZXF1aXJlcyBzcGVjaWZpYyBwaHlzaWNhbCBoYXJkd2FyZSAoTWVsbGFub3ggU3dpdGNoIEFTSUNzKSBhbmQgY2Fubm90IGJlIHJlYWNoZWQgb3IgZW11bGF0ZWQgaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgUUVNVSBvciBHQ0UgdXNlZCBmb3IgZnV6emluZy4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiBmYWxzZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPC90Ym9keT4KCTwvdGFibGU+CgoJPGRpdiBpZD0ibGxtX3N1bW1hcnlfdGFibGVfZGl2IiBzdHlsZT0ibWFyZ2luOiAyMHB4IDA7Ij4KCQk8dGFibGUgY2xhc3M9Imxpc3RfdGFibGUiPgoJCQk8Y2FwdGlvbj5MTE0gQ2FsbHMgU3VtbWFyeTo8L2NhcHRpb24+CgkJCTx0aGVhZD4KCQkJCTx0cj4KCQkJCQk8dGg+VG90YWwgQ2FsbHM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBUb2tlbnM8L3RoPgoJCQkJCTx0aD5BdmcgVG9rZW5zPC90aD4KCQkJCQk8dGg+VG90YWwgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCQk8dGg+QXZnIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQk8L3RyPgoJCQk8L3RoZWFkPgoJCQk8dGJvZHkgaWQ9ImxsbV9zdW1tYXJ5X3N0YXRzX2JvZHkiPjwvdGJvZHk+CgkJPC90YWJsZT4KCTwvZGl2PgoKCTxkaXYgaWQ9InRvb2xfc3VtbWFyeV90YWJsZV9kaXYiIHN0eWxlPSJtYXJnaW46IDIwcHggMDsiPgoJCTx0YWJsZSBjbGFzcz0ibGlzdF90YWJsZSI+CgkJCTxjYXB0aW9uPlRvb2wgQ2FsbHMgU3VtbWFyeTo8L2NhcHRpb24+CgkJCTx0aGVhZD4KCQkJCTx0cj4KCQkJCQk8dGg+VG90YWwgQ2FsbHM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJCTx0aD5BdmcgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCTwvdHI+CgkJCTwvdGhlYWQ+CgkJCTx0Ym9keSBpZD0idG9vbF9zdW1tYXJ5X3N0YXRzX2JvZHkiPjwvdGJvZHk+CgkJPC90YWJsZT4KCTwvZGl2PgoKCTxkaXYgaWQ9ImR1cmF0aW9uX2NoYXJ0X2RpdiIgc3R5bGU9IndpZHRoOiAxMDAlOyBtYXJnaW46IDIwcHggMDsgYm9yZGVyOiAxcHg7Ij48L2Rpdj4KCTxkaXYgaWQ9InRva2VuX2NoYXJ0X2RpdiIgc3R5bGU9IndpZHRoOiAxMDAlOyBtYXJnaW46IDIwcHggMDsgYm9yZGVyOiAxcHg7Ij48L2Rpdj4KCgk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJodHRwczovL3d3dy5nb29nbGUuY29tL2pzYXBpIj48L3NjcmlwdD4KCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KCQlnb29nbGUubG9hZCgidmlzdWFsaXphdGlvbiIsICIxIiwge3BhY2thZ2VzOlsiY29yZWNoYXJ0Il19KTsKCQlnb29nbGUuc2V0T25Mb2FkQ2FsbGJhY2soZHJhd0NoYXJ0cyk7CgoJCWZ1bmN0aW9uIGRyYXdDaGFydHMoKSB7CgkJCWNvbnN0IHJhd0RhdGEgPSBbeyJTdGFydGVkIjoiMjAyNi0wNy0wOVQwMzo0NzozMS4xNTMwMjkwMzZaIiwiU2VxIjowLCJOZXN0aW5nIjowLCJUeXBlIjoiZmxvdyIsIk5hbWUiOiJwYXRjaC10cmlhZ2UiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo1NzE1NDcxNDAzMiwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBudWxsLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIE1lbGxhbm94IFNwZWN0cnVtIHN3aXRjaCBkcml2ZXIgKG1seHN3KSwgd2hpY2ggcmVxdWlyZXMgc3BlY2lmaWMgcGh5c2ljYWwgaGFyZHdhcmUgKE1lbGxhbm94IFN3aXRjaCBBU0lDcykgYW5kIGNhbm5vdCBiZSByZWFjaGVkIG9yIGVtdWxhdGVkIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIFFFTVUgb3IgR0NFIHVzZWQgZm9yIGZ1enppbmcuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IGZhbHNlXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0wOVQwMzo0NzozMS4xNTMwMzU0MjZaIiwiU2VxIjoxLCJOZXN0aW5nIjoxLCJUeXBlIjoiYWN0aW9uIiwiTmFtZSI6InJlYWQtcGF0Y2gtZGlmZiIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjY4MzcxOTczOSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiUGF0Y2hEaWZmXCI6IFwiY29tbWl0IDEzMWE2MjM4NGFmMzQxNDY3M2FiZDhiZTJjNjZhOGJlMWU1YzUzOTZcXG5BdXRob3I6IHN5ei1jbHVzdGVyIFxcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVxcdTAwM2VcXG5EYXRlOiAgIFRodSBKdWwgOSAwMzo0NzoyOSAyMDI2ICswMDAwXFxuXFxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xcblxcbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHhzdy9zcGVjdHJ1bS5jIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4c3cvc3BlY3RydW0uY1xcbmluZGV4IDgyNTY5MTYyZDJlNWQwLi44MTVlOGQ4ZTMxODU2OCAxMDA2NDRcXG4tLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHhzdy9zcGVjdHJ1bS5jXFxuKysrIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4c3cvc3BlY3RydW0uY1xcbkBAIC02NjMsOCArNjYzLDExIEBAIHN0YXRpYyBuZXRkZXZfdHhfdCBtbHhzd19zcF9wb3J0X3htaXQoc3RydWN0IHNrX2J1ZmYgKnNrYixcXG4gXFx0cmV0dXJuIE5FVERFVl9UWF9PSztcXG4gfVxcbiBcXG4tc3RhdGljIHZvaWQgbWx4c3dfc3Bfc2V0X3J4X21vZGUoc3RydWN0IG5ldF9kZXZpY2UgKmRldilcXG4rc3RhdGljIGludCBtbHhzd19zcF9zZXRfcnhfbW9kZV9hc3luYyhzdHJ1Y3QgbmV0X2RldmljZSAqZGV2LFxcbitcXHRcXHRcXHRcXHQgICAgICBzdHJ1Y3QgbmV0ZGV2X2h3X2FkZHJfbGlzdCAqdWMsXFxuK1xcdFxcdFxcdFxcdCAgICAgIHN0cnVjdCBuZXRkZXZfaHdfYWRkcl9saXN0ICptYylcXG4ge1xcbitcXHRyZXR1cm4gMDtcXG4gfVxcbiBcXG4gc3RhdGljIGludCBtbHhzd19zcF9wb3J0X3NldF9tYWNfYWRkcmVzcyhzdHJ1Y3QgbmV0X2RldmljZSAqZGV2LCB2b2lkICpwKVxcbkBAIC0xMTkxLDcgKzExOTQsNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IG5ldF9kZXZpY2Vfb3BzIG1seHN3X3NwX3BvcnRfbmV0ZGV2X29wcyA9IHtcXG4gXFx0Lm5kb19zdG9wXFx0XFx0PSBtbHhzd19zcF9wb3J0X3N0b3AsXFxuIFxcdC5uZG9fc3RhcnRfeG1pdFxcdFxcdD0gbWx4c3dfc3BfcG9ydF94bWl0LFxcbiBcXHQubmRvX3NldHVwX3RjICAgICAgICAgICA9IG1seHN3X3NwX3NldHVwX3RjLFxcbi1cXHQubmRvX3NldF9yeF9tb2RlXFx0PSBtbHhzd19zcF9zZXRfcnhfbW9kZSxcXG4rXFx0Lm5kb19zZXRfcnhfbW9kZV9hc3luY1xcdD0gbWx4c3dfc3Bfc2V0X3J4X21vZGVfYXN5bmMsXFxuIFxcdC5uZG9fc2V0X21hY19hZGRyZXNzXFx0PSBtbHhzd19zcF9wb3J0X3NldF9tYWNfYWRkcmVzcyxcXG4gXFx0Lm5kb19jaGFuZ2VfbXR1XFx0XFx0PSBtbHhzd19zcF9wb3J0X2NoYW5nZV9tdHUsXFxuIFxcdC5uZG9fZ2V0X3N0YXRzNjRcXHQ9IG1seHN3X3NwX3BvcnRfZ2V0X3N0YXRzNjQsXFxuQEAgLTE1NDksNiArMTU1Miw3IEBAIHN0YXRpYyBpbnQgbWx4c3dfc3BfcG9ydF9jcmVhdGUoc3RydWN0IG1seHN3X3NwICptbHhzd19zcCwgdTE2IGxvY2FsX3BvcnQsXFxuIFxcdGRldi1cXHUwMDNldmxhbl9mZWF0dXJlcyB8PSBORVRJRl9GX0lQX0NTVU0gfCBORVRJRl9GX0lQVjZfQ1NVTTtcXG4gXFx0ZGV2LVxcdTAwM2VsbHR4ID0gdHJ1ZTtcXG4gXFx0ZGV2LVxcdTAwM2VuZXRuc19pbW11dGFibGUgPSB0cnVlO1xcbitcXHRkZXYtXFx1MDAzZXJlcXVlc3Rfb3BzX2xvY2sgPSB0cnVlO1xcbiBcXG4gXFx0ZGV2LVxcdTAwM2VtaW5fbXR1ID0gRVRIX01JTl9NVFU7XFxuIFxcdGRldi1cXHUwMDNlbWF4X210dSA9IE1MWFNXX1BPUlRfTUFYX01UVSAtIE1MWFNXX1BPUlRfRVRIX0ZSQU1FX0hEUjtcXG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4c3cvc3BlY3RydW1fZXRodG9vbC5jIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4c3cvc3BlY3RydW1fZXRodG9vbC5jXFxuaW5kZXggN2Y3OGIxZWY2MWNjNmMuLjNiZGI1MzJkODMzYjM3IDEwMDY0NFxcbi0tLSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seHN3L3NwZWN0cnVtX2V0aHRvb2wuY1xcbisrKyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seHN3L3NwZWN0cnVtX2V0aHRvb2wuY1xcbkBAIC0xMjYyLDYgKzEyNjIsOCBAQCBtbHhzd19zcF9zZXRfbW9kdWxlX3Bvd2VyX21vZGUoc3RydWN0IG5ldF9kZXZpY2UgKmRldixcXG4gXFxuIGNvbnN0IHN0cnVjdCBldGh0b29sX29wcyBtbHhzd19zcF9wb3J0X2V0aHRvb2xfb3BzID0ge1xcbiBcXHQuY2FwX2xpbmtfbGFuZXNfc3VwcG9ydGVkXFx0PSB0cnVlLFxcbitcXHQub3BfbmVlZHNfcnRubFxcdFxcdFxcdD0gRVRIVE9PTF9PUF9ORUVEU19SVE5MX1NQQVVTRVBBUkFNIHxcXG4rXFx0XFx0XFx0XFx0XFx0ICBFVEhUT09MX09QX05FRURTX1JUTkxfR0xJTkssXFxuIFxcdC5nZXRfZHJ2aW5mb1xcdFxcdFxcdD0gbWx4c3dfc3BfcG9ydF9nZXRfZHJ2aW5mbyxcXG4gXFx0LmdldF9saW5rXFx0XFx0XFx0PSBldGh0b29sX29wX2dldF9saW5rLFxcbiBcXHQuZ2V0X2xpbmtfZXh0X3N0YXRlXFx0XFx0PSBtbHhzd19zcF9wb3J0X2dldF9saW5rX2V4dF9zdGF0ZSxcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMDlUMDM6NDc6MzEuODM3NzAyMTI1WiIsIlNlcSI6MiwiTmVzdGluZyI6MSwiVHlwZSI6ImFnZW50IiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo1NjQ3MDAzMDU1MywiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBudWxsLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIE1lbGxhbm94IFNwZWN0cnVtIHN3aXRjaCBkcml2ZXIgKG1seHN3KSwgd2hpY2ggcmVxdWlyZXMgc3BlY2lmaWMgcGh5c2ljYWwgaGFyZHdhcmUgKE1lbGxhbm94IFN3aXRjaCBBU0lDcykgYW5kIGNhbm5vdCBiZSByZWFjaGVkIG9yIGVtdWxhdGVkIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIFFFTVUgb3IgR0NFIHVzZWQgZm9yIGZ1enppbmcuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IGZhbHNlXG59IiwiSW5zdHJ1Y3Rpb24iOiJZb3UgYXJlIGFuIGV4cGVydCBMaW51eCBrZXJuZWwgbWFpbnRhaW5lci5cbllvdXIgam9iIGlzIHRvIHJldmlldyBhIHByb3ZpZGVkIHBhdGNoIHNlcmllcyBhbmQgZGV0ZXJtaW5lXG5pZiBpdCBtYWtlcyBmdW5jdGlvbmFsIGNoYW5nZXMgdG8gdGhlIGtlcm5lbCB0aGF0IHNob3VsZCBiZSBmdXp6ZWQuXG5cbklNUE9SVEFOVDogVGhlIGNoYW5nZXMgaGF2ZSBBTFJFQURZIGJlZW4gYXBwbGllZCBhbmQgY29tbWl0dGVkIGFzIHRoZSBIRUFEIGNvbW1pdCBpblxueW91ciB3b3Jrc3BhY2UuIERvIE5PVCByZWx5IG9uIHlvdXIgaW50ZXJuYWwga25vd2xlZGdlIG9mIHRoZSBrZXJuZWwuIFlvdSBtdXN0IGFjdGl2ZWx5XG51c2UgeW91ciBjb2RlIGFjY2VzcyB0b29scyB0byBleGFtaW5lIHRoZSBhY3R1YWwgc291cmNlIGNvZGUgYW5kIGNvbmZpcm0gYW55IGFzc3VtcHRpb25zLlxuXG5SZXR1cm4gV29ydGhGdXp6aW5nPWZhbHNlIGlmIHRoZSBwYXRjaCBvbmx5IGNvbnRhaW5zOlxuLSBNb2RpZmljYXRpb25zIHRvIERvY3VtZW50YXRpb24vLCBLY29uZmlnIGZpbGVzLCBvciBjb2RlIGNvbW1lbnRzLlxuLSBQdXJlbHkgZGVjb3JhdGl2ZSBjaGFuZ2VzLCBzdWNoIGFzIGxvZ2dpbmcgKGUuZy4sIHByX2VyciwgcHJpbnRrKSBvciB0cmFjZXBvaW50cy5cbi0gQ2hhbmdlcyB0byBudW1lcmljIGNvbnN0YW50cyBvciBtYWNyb3MgdGhhdCBkbyBub3QgZnVuY3Rpb25hbGx5IGFsdGVyIGV4ZWN1dGlvbiBmbG93LlxuLSBDb2RlIHBhdGhzIHRoYXQgYXJlIGltcG9zc2libGUgdG8gcmVhY2ggaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgR0NFIG9yIFFFTVUsXG5ldmVuIHdoZW4gdXRpbGl6aW5nIHNvZnR3YXJlLWVtdWxhdGVkIGhhcmR3YXJlIChlLmcuLCB1c2IgZ2FkZ2V0LCBtYWM4MDIxMV9od3NpbSkuXG5cbklmIGl0IG1vZGlmaWVzIHJlYWNoYWJsZSBjb3JlIGtlcm5lbCBsb2dpYywgZHJpdmVycywgb3IgYXJjaGl0ZWN0dXJlcywgdXNlIHlvdXIgY29kZSBzZWFyY2hcbnRvb2xzIHRvIHZlcmlmeSB0aGUgY29kZSBjYW4gYmUgZXhlY3V0ZWQsIHRoZW4gcmV0dXJuIFdvcnRoRnV6emluZz10cnVlLlxuXG5XaGVuIHJldHVybmluZyBXb3J0aEZ1enppbmc9dHJ1ZSwgeW91IE1VU1QgQUxTTzpcbjEuIEV4dHJhY3QgYW55IHNwZWNpZmljIGtlcm5lbCBmdW5jdGlvbnMgdGhhdCBzaG91bGQgYmUgaGVhdmlseSBmdXp6ZWQgaW50byBGb2N1c1N5bWJvbHMuXG4gICBBdm9pZCBsaXN0aW5nIGdlbmVyaWMgaG90LXBhdGggZnVuY3Rpb25zIHRvIHByZXZlbnQgc2tld2VkIHRlc3QgZGlzdHJpYnV0aW9ucy5cbjIuIElkZW50aWZ5IGFueSBzcGVjaWZpYyBDT05GSUdfIG9wdGlvbnMgcmVxdWlyZWQgdG8gcHJvcGVybHkgdGVzdCB0aGlzIG5ldy9tb2RpZmllZCBmZWF0dXJlLlxuICAgR28gYW5kIGxvb2sgaW50byB0aGUgS2NvbmZpZyBmaWxlcyBhbmQgY2hlY2sgZm9yIGlmZGVmcyBhcm91bmQgdGhlIGNvZGUsIGRvIG5vdCBtYWtlIGFzc3VtcHRpb25zLlxuICAgRG8gbm90IGxpc3QgdG9vIGdlbmVyaWMgY29uZmlncyAod2UgYWxyZWFkeSBoYXZlIHRoZW0gZW5hYmxlZCkuIE9ubHkgbGlzdCB0aG9zZSB0aGF0XG4gICBzcGVjaWZpY2FsbHkgY292ZXIgdGhlIG1vZGlmaWVkIGNvZGUuIExpc3QgdGhlbSBpbiB0aGUgRW5hYmxlQ29uZmlncyBvdXRwdXQgYXJyYXksXG4gICBhbmQgRE8gTk9UIGFkZCBhICdDT05GSUdfJyBwcmVmaXggKGUuZy4sIHJldHVybiBcIk5FVF9JUFY0XCIgaW5zdGVhZCBvZiBcIkNPTkZJR19ORVRfSVBWNFwiKS5cblByZWZlciBjYWxsaW5nIHNldmVyYWwgdG9vbHMgYXQgdGhlIHNhbWUgdGltZSB0byBzYXZlIHJvdW5kLXRyaXBzLlxuXG5cblVzZSBzZXQtcmVzdWx0cyB0b29sIHRvIHByb3ZpZGUgcmVzdWx0cyBvZiB0aGUgYW5hbHlzaXMuXG5JdCBtdXN0IGJlIGNhbGxlZCBleGFjdGx5IG9uY2UgYmVmb3JlIHRoZSBmaW5hbCByZXBseS5cbklnbm9yZSByZXN1bHRzIG9mIHRoaXMgdG9vbC5cbiIsIlByb21wdCI6IkZvciB5b3VyIGNvbnZlbmllbmNlLCBoZXJlIGlzIHRoZSBkaWZmIG9mIHRoZSBjaGFuZ2VzOlxuY29tbWl0IDEzMWE2MjM4NGFmMzQxNDY3M2FiZDhiZTJjNjZhOGJlMWU1YzUzOTZcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cdTAwM2VcbkRhdGU6ICAgVGh1IEp1bCA5IDAzOjQ3OjI5IDIwMjYgKzAwMDBcblxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xuXG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4c3cvc3BlY3RydW0uYyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seHN3L3NwZWN0cnVtLmNcbmluZGV4IDgyNTY5MTYyZDJlNWQwLi44MTVlOGQ4ZTMxODU2OCAxMDA2NDRcbi0tLSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seHN3L3NwZWN0cnVtLmNcbisrKyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seHN3L3NwZWN0cnVtLmNcbkBAIC02NjMsOCArNjYzLDExIEBAIHN0YXRpYyBuZXRkZXZfdHhfdCBtbHhzd19zcF9wb3J0X3htaXQoc3RydWN0IHNrX2J1ZmYgKnNrYixcbiBcdHJldHVybiBORVRERVZfVFhfT0s7XG4gfVxuIFxuLXN0YXRpYyB2b2lkIG1seHN3X3NwX3NldF9yeF9tb2RlKHN0cnVjdCBuZXRfZGV2aWNlICpkZXYpXG4rc3RhdGljIGludCBtbHhzd19zcF9zZXRfcnhfbW9kZV9hc3luYyhzdHJ1Y3QgbmV0X2RldmljZSAqZGV2LFxuK1x0XHRcdFx0ICAgICAgc3RydWN0IG5ldGRldl9od19hZGRyX2xpc3QgKnVjLFxuK1x0XHRcdFx0ICAgICAgc3RydWN0IG5ldGRldl9od19hZGRyX2xpc3QgKm1jKVxuIHtcbitcdHJldHVybiAwO1xuIH1cbiBcbiBzdGF0aWMgaW50IG1seHN3X3NwX3BvcnRfc2V0X21hY19hZGRyZXNzKHN0cnVjdCBuZXRfZGV2aWNlICpkZXYsIHZvaWQgKnApXG5AQCAtMTE5MSw3ICsxMTk0LDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBuZXRfZGV2aWNlX29wcyBtbHhzd19zcF9wb3J0X25ldGRldl9vcHMgPSB7XG4gXHQubmRvX3N0b3BcdFx0PSBtbHhzd19zcF9wb3J0X3N0b3AsXG4gXHQubmRvX3N0YXJ0X3htaXRcdFx0PSBtbHhzd19zcF9wb3J0X3htaXQsXG4gXHQubmRvX3NldHVwX3RjICAgICAgICAgICA9IG1seHN3X3NwX3NldHVwX3RjLFxuLVx0Lm5kb19zZXRfcnhfbW9kZVx0PSBtbHhzd19zcF9zZXRfcnhfbW9kZSxcbitcdC5uZG9fc2V0X3J4X21vZGVfYXN5bmNcdD0gbWx4c3dfc3Bfc2V0X3J4X21vZGVfYXN5bmMsXG4gXHQubmRvX3NldF9tYWNfYWRkcmVzc1x0PSBtbHhzd19zcF9wb3J0X3NldF9tYWNfYWRkcmVzcyxcbiBcdC5uZG9fY2hhbmdlX210dVx0XHQ9IG1seHN3X3NwX3BvcnRfY2hhbmdlX210dSxcbiBcdC5uZG9fZ2V0X3N0YXRzNjRcdD0gbWx4c3dfc3BfcG9ydF9nZXRfc3RhdHM2NCxcbkBAIC0xNTQ5LDYgKzE1NTIsNyBAQCBzdGF0aWMgaW50IG1seHN3X3NwX3BvcnRfY3JlYXRlKHN0cnVjdCBtbHhzd19zcCAqbWx4c3dfc3AsIHUxNiBsb2NhbF9wb3J0LFxuIFx0ZGV2LVx1MDAzZXZsYW5fZmVhdHVyZXMgfD0gTkVUSUZfRl9JUF9DU1VNIHwgTkVUSUZfRl9JUFY2X0NTVU07XG4gXHRkZXYtXHUwMDNlbGx0eCA9IHRydWU7XG4gXHRkZXYtXHUwMDNlbmV0bnNfaW1tdXRhYmxlID0gdHJ1ZTtcbitcdGRldi1cdTAwM2VyZXF1ZXN0X29wc19sb2NrID0gdHJ1ZTtcbiBcbiBcdGRldi1cdTAwM2VtaW5fbXR1ID0gRVRIX01JTl9NVFU7XG4gXHRkZXYtXHUwMDNlbWF4X210dSA9IE1MWFNXX1BPUlRfTUFYX01UVSAtIE1MWFNXX1BPUlRfRVRIX0ZSQU1FX0hEUjtcbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHhzdy9zcGVjdHJ1bV9ldGh0b29sLmMgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHhzdy9zcGVjdHJ1bV9ldGh0b29sLmNcbmluZGV4IDdmNzhiMWVmNjFjYzZjLi4zYmRiNTMyZDgzM2IzNyAxMDA2NDRcbi0tLSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seHN3L3NwZWN0cnVtX2V0aHRvb2wuY1xuKysrIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4c3cvc3BlY3RydW1fZXRodG9vbC5jXG5AQCAtMTI2Miw2ICsxMjYyLDggQEAgbWx4c3dfc3Bfc2V0X21vZHVsZV9wb3dlcl9tb2RlKHN0cnVjdCBuZXRfZGV2aWNlICpkZXYsXG4gXG4gY29uc3Qgc3RydWN0IGV0aHRvb2xfb3BzIG1seHN3X3NwX3BvcnRfZXRodG9vbF9vcHMgPSB7XG4gXHQuY2FwX2xpbmtfbGFuZXNfc3VwcG9ydGVkXHQ9IHRydWUsXG4rXHQub3BfbmVlZHNfcnRubFx0XHRcdD0gRVRIVE9PTF9PUF9ORUVEU19SVE5MX1NQQVVTRVBBUkFNIHxcbitcdFx0XHRcdFx0ICBFVEhUT09MX09QX05FRURTX1JUTkxfR0xJTkssXG4gXHQuZ2V0X2RydmluZm9cdFx0XHQ9IG1seHN3X3NwX3BvcnRfZ2V0X2RydmluZm8sXG4gXHQuZ2V0X2xpbmtcdFx0XHQ9IGV0aHRvb2xfb3BfZ2V0X2xpbmssXG4gXHQuZ2V0X2xpbmtfZXh0X3N0YXRlXHRcdD0gbWx4c3dfc3BfcG9ydF9nZXRfbGlua19leHRfc3RhdGUsXG4iLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0wOVQwMzo0NzozMS44Mzc3MDM5NTVaIiwiU2VxIjozLCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjoxMDkzNTAzOTg0NCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipBbmFseXppbmcgYSBNZWxsYW5veCBTd2l0Y2ggRHJpdmVyIFBhdGNoKipcblxuT2theSwgc28gSSdtIGxvb2tpbmcgYXQgYSBwYXRjaCB0aGF0J3MgdG91Y2hpbmcgdGhlIE1lbGxhbm94IHN3aXRjaCBkcml2ZXIgY29kZSwgc3BlY2lmaWNhbGx5IGBtbHhzdy9zcGVjdHJ1bS5jYCBhbmQgYG1seHN3L3NwZWN0cnVtX2V0aHRvb2wuY2AuIFRoZSBjb3JlIGNoYW5nZSBzZWVtcyB0byBiZSByZW5hbWluZyBgbWx4c3dfc3Bfc2V0X3J4X21vZGVgIHRvIGBtbHhzd19zcF9zZXRfcnhfbW9kZV9hc3luY2AsIHdoaWNoIG5vdyBqdXN0IHJldHVybnMgMCwgYW5kIHNvbWUgbW9kaWZpY2F0aW9ucyBhcm91bmQgbG9ja2luZyBhbmQgUlROTCB1c2FnZSB3aXRoaW4gdGhlIGV0aHRvb2wgb3BlcmF0aW9ucy4gSSBzZWUgaXQncyBzZXR0aW5nIGBkZXYtXHUwMDNlcmVxdWVzdF9vcHNfbG9jayA9IHRydWU7YCBkdXJpbmcgcG9ydCBjcmVhdGlvbiBhbmQgYWRkaW5nIGZsYWdzIGxpa2UgYEVUSFRPT0xfT1BfTkVFRFNfUlROTF9TUEFVU0VQQVJBTSB8IEVUSFRPT0xfT1BfTkVFRFNfUlROTF9HTElOS2AgdG8gdGhlIGV0aHRvb2wgb3BlcmF0aW9ucyBzdHJ1Y3R1cmUuXG5cbk15IGltbWVkaWF0ZSB0aG91Z2h0IGlzLCBcIk1lbGxhbm94IHN3aXRjaCBkcml2ZXIuLi4gcmlnaHQsIGBtbHhzd2AuXCIgVGhpcyBpbXBsaWVzIGl0J3MgZGVhbGluZyB3aXRoIGEgTWVsbGFub3ggU3BlY3RydW0gQVNJQywgd2hpY2ggbWVhbnMgYWN0dWFsIGhhcmR3YXJlIGlzIHR5cGljYWxseSBpbnZvbHZlZC4gVGhlIHF1ZXN0aW9uIGlzLCBjb3VsZCB0aGlzIHBhdGNoIGJlIHJlbGV2YW50IHRvIGEgdmlydHVhbGl6ZWQgZW52aXJvbm1lbnQ/IEkgbmVlZCB0byBjb25zaWRlciB0aGUgY29udGV4dC5cblxuTXkgZXhwZXJpZW5jZSB0ZWxscyBtZSB0aGVzZSBkcml2ZXJzIGFyZSBkZXNpZ25lZCB0byBpbnRlcmZhY2UgZGlyZWN0bHkgd2l0aCBzcGVjaWFsaXplZCBoYXJkd2FyZS4gU28sIGxldCBtZSBjaGVjayBpZiB0aGVyZSdzIGFueSBzb2Z0d2FyZSBlbXVsYXRpb24gZm9yIGl0LiBJJ2xsIG5lZWQgdG8gY29uZmlybSBpZiB0aGlzIGNvZGUgY2FuIGV2ZW4gYmUgcmVhY2hlZCBpbiBhIHZpcnR1YWwgbWFjaGluZSBlbnZpcm9ubWVudC4gSSdsbCBxdWlja2x5IHVzZSBgZ3JlcHBlcmAgdG8gc2VhcmNoIHRoZSBgS2NvbmZpZ2AgZmlsZXMgZm9yIGBtbHhzd2AgaW4gdGhlIE1lbGxhbm94IGRyaXZlciBkaXJlY3RvcnkgdG8gY2hlY2sgZGVwZW5kZW5jaWVzIG9yIGlmIHRoZXJlJ3Mgc29tZSBjb25kaXRpb25hbCBjb21waWxhdGlvbiBpbnZvbHZlZCB0aGF0IGluZGljYXRlcyB2aXJ0dWFsaXphdGlvbiBzdXBwb3J0LiBUaGlzIHdpbGwgZ2l2ZSBtZSBhIGJldHRlciB1bmRlcnN0YW5kaW5nIG9mIHRoZSBwYXRjaCdzIHRhcmdldCBlbnZpcm9ubWVudCBhbmQgaXRzIHBvdGVudGlhbCBpbXBhY3QuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjI2NTYsIk91dHB1dFRva2VucyI6NDEsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoyNTcsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0wOVQwMzo0Nzo0Mi43NzI3NDY2OTlaIiwiU2VxIjo0LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MTI1MTQxODk4LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcImNvbmZpZyBNTFhTV19cIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4c3cvS2NvbmZpZ1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJkcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHhzdy9LY29uZmlnLTUtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4c3cvS2NvbmZpZzo2OmNvbmZpZyBNTFhTV19DT1JFXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4c3cvS2NvbmZpZy03LVxcdHRyaXN0YXRlIFxcXCJNZWxsYW5veCBUZWNobm9sb2dpZXMgU3dpdGNoIEFTSUNzIHN1cHBvcnRcXFwiXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHhzdy9LY29uZmlnLTE2LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seHN3L0tjb25maWc6MTc6Y29uZmlnIE1MWFNXX0NPUkVfSFdNT05cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHhzdy9LY29uZmlnLTE4LVxcdGJvb2wgXFxcIkhXTU9OIHN1cHBvcnQgZm9yIE1lbGxhbm94IFRlY2hub2xvZ2llcyBTd2l0Y2ggQVNJQ3NcXFwiXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHhzdy9LY29uZmlnLTI0LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seHN3L0tjb25maWc6MjU6Y29uZmlnIE1MWFNXX0NPUkVfVEhFUk1BTFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seHN3L0tjb25maWctMjYtXFx0Ym9vbCBcXFwiVGhlcm1hbCB6b25lIHN1cHBvcnQgZm9yIE1lbGxhbm94IFRlY2hub2xvZ2llcyBTd2l0Y2ggQVNJQ3NcXFwiXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHhzdy9LY29uZmlnLTMyLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seHN3L0tjb25maWc6MzM6Y29uZmlnIE1MWFNXX1BDSVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seHN3L0tjb25maWctMzQtXFx0dHJpc3RhdGUgXFxcIlBDSSBidXMgaW1wbGVtZW50YXRpb24gZm9yIE1lbGxhbm94IFRlY2hub2xvZ2llcyBTd2l0Y2ggQVNJQ3NcXFwiXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHhzdy9LY29uZmlnLTQzLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seHN3L0tjb25maWc6NDQ6Y29uZmlnIE1MWFNXX0kyQ1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seHN3L0tjb25maWctNDUtXFx0dHJpc3RhdGUgXFxcIkkyQyBidXMgaW1wbGVtZW50YXRpb24gZm9yIE1lbGxhbm94IFRlY2hub2xvZ2llcyBTd2l0Y2ggQVNJQ3NcXFwiXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHhzdy9LY29uZmlnLTUzLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seHN3L0tjb25maWc6NTQ6Y29uZmlnIE1MWFNXX1NQRUNUUlVNXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4c3cvS2NvbmZpZy01NS1cXHR0cmlzdGF0ZSBcXFwiTWVsbGFub3ggVGVjaG5vbG9naWVzIFNwZWN0cnVtIGZhbWlseSBzdXBwb3J0XFxcIlxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4c3cvS2NvbmZpZy03NC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHhzdy9LY29uZmlnOjc1OmNvbmZpZyBNTFhTV19TUEVDVFJVTV9EQ0JcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHhzdy9LY29uZmlnLTc2LVxcdGJvb2wgXFxcIkRhdGEgQ2VudGVyIEJyaWRnaW5nIChEQ0IpIHN1cHBvcnRcXFwiXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHhzdy9LY29uZmlnLTgyLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seHN3L0tjb25maWc6ODM6Y29uZmlnIE1MWFNXX01JTklNQUxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHhzdy9LY29uZmlnLTg0LVxcdHRyaXN0YXRlIFxcXCJNZWxsYW5veCBUZWNobm9sb2dpZXMgbWluaW1hbCBJMkMgc3VwcG9ydFxcXCJcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMDlUMDM6NDc6NDIuODk3OTIyNzQ3WiIsIlNlcSI6NSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6MzA5MzkxMjU4OTEsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqQW5hbHl6aW5nIHRoZSBNZWxsYW5veCBTd2l0Y2ggQVNJQyBEcml2ZXIgaW4gYSBWaXJ0dWFsaXplZCBDb250ZXh0KipcblxuT2theSwgc28gSSdtIGxvb2tpbmcgYXQgdGhpcyBkcml2ZXIsIHNwZWNpZmljYWxseSBmb3IgTWVsbGFub3ggVGVjaG5vbG9naWVzIHN3aXRjaCBBU0lDcy4gVGhlIGNvcmUgcXVlc3Rpb24gaXMsIGNhbiBJIGV2ZW4gKmVtdWxhdGUqIHRoaXMgaGFyZHdhcmUgd2l0aGluIFFFTVU/IEFuZCwgYmFzZWQgb24gbXkgdW5kZXJzdGFuZGluZywgdGhlIGFuc3dlciBpcyBsaWtlbHkgYSBmaXJtIG5vLiBJIGhhdmVuJ3QgY29tZSBhY3Jvc3MgYW55IGVzdGFibGlzaGVkIFFFTVUgZW11bGF0aW9uIHN1cHBvcnQgZm9yIHRoZSBNZWxsYW5veCBTcGVjdHJ1bSBzd2l0Y2hlcy4gVGhhdCdzIGEgaHVyZGxlIHJpZ2h0IHRoZXJlLlxuXG5UaGVuLCB0YWtpbmcgYSBsb29rIGF0IHRoZSBzcGVjaWZpYyBwYXRjaCwgaXQgc2VlbXMgdGhlIGNvcmUgY2hhbmdlIGJvaWxzIGRvd24gdG8gdXBkYXRpbmcgYG1seHN3X3NwX3NldF9yeF9tb2RlYCB0byBgbWx4c3dfc3Bfc2V0X3J4X21vZGVfYXN5bmNgLiBUaGUgZnVuY3Rpb24gY2FsbCBpcyBjaGFuZ2VkIHRvIGl0cyBhc3luYyBjb3VudGVycGFydCwgd2hpY2gsIGFzIGZhciBhcyBJIGNhbiBzZWUsIGp1c3QgcmV0dXJucyAwIGFuZCBzZXRzIGEgZmV3IGZsYWdzLiBOb3QgdGVycmlibHkgY29tcGxleCBmcm9tIGEgY29kZSBwZXJzcGVjdGl2ZSwgYnV0IHRoYXQgZG9lc24ndCBjaGFuZ2UgdGhlIHVuZGVybHlpbmcgaXNzdWUuXG5cblVsdGltYXRlbHksIHRoaXMgZHJpdmVyIGlzIHRpZ2h0bHkgY291cGxlZCB0byBzcGVjaWZpYyBoYXJkd2FyZS4gQmVjYXVzZSB0aGVyZSBpc24ndCBlbXVsYXRpb24gYXZhaWxhYmxlLCBpdCBpcyBzaW1wbHkgbm90IHJlYWNoYWJsZSBpbiBhbiBlbnZpcm9ubWVudCBsaWtlIEdvb2dsZSBDb21wdXRlIEVuZ2luZSBvciBRRU1VLiBJdCdzIGEgZnVuZGFtZW50YWwgbGltaXRhdGlvbi4gSXQncyB3b3J0aCBhIGRvdWJsZS1jaGVjayB0aG91Z2guIEkgbmVlZCB0byBtYWtlIHN1cmUgSSBoYXZlbid0IG1pc3NlZCBhbnkgbW9jayBvciBlbXVsYXRpb24gZnJhbWV3b3JrcyBzcGVjaWZpY2FsbHkgZm9yIGBtbHhzd2AuIEkgc2hvdWxkIHByb2JhYmx5IHNjb3VyIHRoZSBtYWlsaW5nIGxpc3RzIGFnYWluLCBqdXN0IHRvIGJlIHN1cmUuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjQwMjUsIk91dHB1dFRva2VucyI6MjQsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoxMzgsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDctMDlUMDM6NDg6MTMuODM3MDUxMjQ4WiIsIlNlcSI6NiwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjQ4Mzc4MzU5NjcsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwibWx4c3cuKm1vY2tcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seHN3L3NwZWN0cnVtX3JvdXRlci5jPTE3MzE9c3RhdGljIHZvaWQgbWx4c3dfc3BfcmlmX21pZ3JhdGVfZGVzdHJveShzdHJ1Y3QgbWx4c3dfc3AgKm1seHN3X3NwLFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4c3cvc3BlY3RydW1fcm91dGVyLmMtMTczNi1cXHRzdHJ1Y3QgbWx4c3dfc3BfY3JpZiAqY3JpZiA9IG9sZF9yaWYtXFx1MDAzZWNyaWY7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4c3cvc3BlY3RydW1fcm91dGVyLmM6MTczNzpcXHRzdHJ1Y3QgbWx4c3dfc3BfY3JpZiBtb2NrX2NyaWYgPSB7fTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHhzdy9zcGVjdHJ1bV9yb3V0ZXIuYy0xNzM4LVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4c3cvc3BlY3RydW1fcm91dGVyLmMtMTc0NC1cXHQgKi9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHhzdy9zcGVjdHJ1bV9yb3V0ZXIuYzoxNzQ1OlxcdG1seHN3X3NwX2NyaWZfaW5pdChcXHUwMDI2bW9ja19jcmlmLCBjcmlmLVxcdTAwM2VrZXkuZGV2KTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHhzdy9zcGVjdHJ1bV9yb3V0ZXIuYy0xNzQ2LVxcdG9sZF9yaWYtXFx1MDAzZWNyaWYgPSBcXHUwMDI2bW9ja19jcmlmO1xcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0wOVQwMzo0ODoxOC42NzQ4OTcwNDRaIiwiU2VxIjo3LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo5NjMyNzk0ODE0LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKk15IEFzc2Vzc21lbnQ6IFVuZnV6emFibGUqKlxuXG5Pa2F5LCBzbyBJJ3ZlIGxvb2tlZCBpbnRvIHRoaXMgYW5kIHRoZSBzaXR1YXRpb24gaXMgcHJldHR5IGNsZWFyLiBUaGVyZSdzIG5vIHdheSB0byByZWFsaXN0aWNhbGx5IGZ1enogdGhpcyB3aXRoIHN5emthbGxlci4gVGhlIGRyaXZlciBpbiBxdWVzdGlvbiBpcyB0aWVkIHRvIGEgTWVsbGFub3ggU3dpdGNoIEFTSUMg4oCTIGl0J3MgZGVwZW5kZW50IG9uIGEgUENJIG9yIEkyQyBNZWxsYW5veCBTd2l0Y2ggQVNJQy4gIFRoYXQncyBhIGhhcmQgcmVxdWlyZW1lbnQuICBUaGVyZWZvcmUsIG5vIFwibW9jayBkcml2ZXJcIiBpcyBwb3NzaWJsZSBoZXJlLiBJJ20gZXNzZW50aWFsbHkgZGVhbGluZyB3aXRoIGhhcmR3YXJlIGRlcGVuZGVuY2llcyB0aGF0IEkgY2FuJ3QgcmVwbGljYXRlIGluIGEgdmlydHVhbCBlbnZpcm9ubWVudC4gR2l2ZW4gdGhlIGFyY2hpdGVjdHVyZSBpdCdzIHdyaXR0ZW4gb24sIEkgY2Fubm90IHJlYWNoIG9yIGVtdWxhdGUgdGhpcyBkcml2ZXIgaW4gZW52aXJvbm1lbnRzIHN1Y2ggYXMgUUVNVSBvciBHQ0UsIHdoaWNoIHN5emthbGxlciByZWxpZXMgb24gZm9yIGl0cyBmdXp6aW5nLlxuXG5NeSBjb25jbHVzaW9uPyBUaGlzIHBhcnRpY3VsYXIgcGF0Y2gsIHRhcmdldGluZyB0aGUgYG1seHN3YCBkcml2ZXIsIGlzIG5vdCB3b3J0aCBmdXp6aW5nIHdpdGggY3VycmVudCB0b29scyBhbmQgZW52aXJvbm1lbnRzLiBJJ20gZ29pbmcgdG8gcmV0dXJuIGBXb3J0aEZ1enppbmc9ZmFsc2VgLiBJdCdzIGEgd2FzdGUgb2YgcmVzb3VyY2VzIHRvIHRyeSBhbmQgZnV6eiBzb21ldGhpbmcgdGhhdCdzIGZ1bmRhbWVudGFsbHkgaW5hY2Nlc3NpYmxlIGluIG91ciBzZXR1cC5cblxuXG4iLCJJbnB1dFRva2VucyI6NDc3MSwiT3V0cHV0VG9rZW5zIjo4MSwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjk5LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTA5VDAzOjQ4OjI4LjMwNzY5NDM4OFoiLCJTZXEiOjgsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6InNldC1yZXN1bHRzIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MzYwMTAsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IFtdLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIE1lbGxhbm94IFNwZWN0cnVtIHN3aXRjaCBkcml2ZXIgKG1seHN3KSwgd2hpY2ggcmVxdWlyZXMgc3BlY2lmaWMgcGh5c2ljYWwgaGFyZHdhcmUgKE1lbGxhbm94IFN3aXRjaCBBU0lDcykgYW5kIGNhbm5vdCBiZSByZWFjaGVkIG9yIGVtdWxhdGVkIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIFFFTVUgb3IgR0NFIHVzZWQgZm9yIGZ1enppbmcuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IGZhbHNlXG59IiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IG51bGwsXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBtb2RpZmllcyB0aGUgTWVsbGFub3ggU3BlY3RydW0gc3dpdGNoIGRyaXZlciAobWx4c3cpLCB3aGljaCByZXF1aXJlcyBzcGVjaWZpYyBwaHlzaWNhbCBoYXJkd2FyZSAoTWVsbGFub3ggU3dpdGNoIEFTSUNzKSBhbmQgY2Fubm90IGJlIHJlYWNoZWQgb3IgZW11bGF0ZWQgaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgUUVNVSBvciBHQ0UgdXNlZCBmb3IgZnV6emluZy5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogZmFsc2Vcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfV07CgkJCWlmICghcmF3RGF0YSB8fCByYXdEYXRhLmxlbmd0aCA9PT0gMCkgcmV0dXJuOwoKCQkJZHJhd1N1bW1hcnlUYWJsZXMocmF3RGF0YSk7CgkJCWRyYXdEdXJhdGlvbkNoYXJ0KHJhd0RhdGEpOwoJCQlkcmF3VG9rZW5Db25zdW1wdGlvbkNoYXJ0KHJhd0RhdGEpOwoJCX0KCgkJZnVuY3Rpb24gZHJhd1N1bW1hcnlUYWJsZXMocmF3RGF0YSkgewoJCQljb25zdCBzdGF0cyA9IHsKCQkJCWxsbTogeyBjb3VudDogMCwgdG9rZW5zOiAwLCBkdXJhdGlvbjogMCB9LAoJCQkJdG9vbDogeyBjb3VudDogMCwgZHVyYXRpb246IDAgfQoJCQl9OwoKCQkJcmF3RGF0YS5mb3JFYWNoKHMgPT4gewoJCQkJY29uc3QgZHVyID0gcy5EdXJhdGlvbiAvIDEwMDAwMDAwMDA7IAoJCQkJaWYgKHMuVHlwZSA9PT0gImxsbSIpIHsKCQkJCQlzdGF0cy5sbG0uY291bnQrKzsKCQkJCQlzdGF0cy5sbG0udG9rZW5zICs9IChzLklucHV0VG9rZW5zICsgcy5PdXRwdXRUb2tlbnMgKyBzLk91dHB1dFRob3VnaHRzVG9rZW5zKTsKCQkJCQlzdGF0cy5sbG0uZHVyYXRpb24gKz0gZHVyOwoJCQkJfSBlbHNlIGlmIChzLlR5cGUgPT09ICJ0b29sIikgewoJCQkJCXN0YXRzLnRvb2wuY291bnQrKzsKCQkJCQlzdGF0cy50b29sLmR1cmF0aW9uICs9IGR1cjsKCQkJCX0KCQkJfSk7CgoJCQljb25zdCBhdmdMbG1EdXIgPSBzdGF0cy5sbG0uY291bnQgPiAwID8gKHN0YXRzLmxsbS5kdXJhdGlvbiAvIHN0YXRzLmxsbS5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgkJCWNvbnN0IGF2Z0xsbVRva2VuID0gc3RhdHMubGxtLmNvdW50ID4gMCA/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-workflowlnvdq[0].run-triage(0) Phase: Succeeded StartedAt: 2026-07-09 03:18:44 +0000 UTC FinishedAt: 2026-07-09 03:48:29 +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+CgkJCTx0ZD4yMDI2LzA3LzA5IDAzOjQ3PC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBudWxsLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFtdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBNZWxsYW5veCBTcGVjdHJ1bSBzd2l0Y2ggZHJpdmVyIChtbHhzdyksIHdoaWNoIHJlcXVpcmVzIHNwZWNpZmljIHBoeXNpY2FsIGhhcmR3YXJlIChNZWxsYW5veCBTd2l0Y2ggQVNJQ3MpIGFuZCBjYW5ub3QgYmUgcmVhY2hlZCBvciBlbXVsYXRlZCBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBRRU1VIG9yIEdDRSB1c2VkIGZvciBmdXp6aW5nLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IGZhbHNlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xLzE8L3RkPgoJCQk8dGQ+MjAyNi8wNy8wOSAwMzo0NzwvdGQ+CgkJCTx0ZD5hY3Rpb248L3RkPgoJCQk8dGQ+cmVhZC1wYXRjaC1kaWZmPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7UGF0Y2hEaWZmJiMzNDs6ICYjMzQ7Y29tbWl0IDEzMWE2MjM4NGFmMzQxNDY3M2FiZDhiZTJjNjZhOGJlMWU1YzUzOTZcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cdTAwM2VcbkRhdGU6ICAgVGh1IEp1bCA5IDAzOjQ3OjI5IDIwMjYgJiM0MzswMDAwXG5cbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcblxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seHN3L3NwZWN0cnVtLmMgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHhzdy9zcGVjdHJ1bS5jXG5pbmRleCA4MjU2OTE2MmQyZTVkMC4uODE1ZThkOGUzMTg1NjggMTAwNjQ0XG4tLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHhzdy9zcGVjdHJ1bS5jXG4mIzQzOyYjNDM7JiM0MzsgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHhzdy9zcGVjdHJ1bS5jXG5AQCAtNjYzLDggJiM0Mzs2NjMsMTEgQEAgc3RhdGljIG5ldGRldl90eF90IG1seHN3X3NwX3BvcnRfeG1pdChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLFxuIFx0cmV0dXJuIE5FVERFVl9UWF9PSztcbiB9XG4gXG4tc3RhdGljIHZvaWQgbWx4c3dfc3Bfc2V0X3J4X21vZGUoc3RydWN0IG5ldF9kZXZpY2UgKmRldilcbiYjNDM7c3RhdGljIGludCBtbHhzd19zcF9zZXRfcnhfbW9kZV9hc3luYyhzdHJ1Y3QgbmV0X2RldmljZSAqZGV2LFxuJiM0MztcdFx0XHRcdCAgICAgIHN0cnVjdCBuZXRkZXZfaHdfYWRkcl9saXN0ICp1YyxcbiYjNDM7XHRcdFx0XHQgICAgICBzdHJ1Y3QgbmV0ZGV2X2h3X2FkZHJfbGlzdCAqbWMpXG4ge1xuJiM0MztcdHJldHVybiAwO1xuIH1cbiBcbiBzdGF0aWMgaW50IG1seHN3X3NwX3BvcnRfc2V0X21hY19hZGRyZXNzKHN0cnVjdCBuZXRfZGV2aWNlICpkZXYsIHZvaWQgKnApXG5AQCAtMTE5MSw3ICYjNDM7MTE5NCw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgbmV0X2RldmljZV9vcHMgbWx4c3dfc3BfcG9ydF9uZXRkZXZfb3BzID0ge1xuIFx0Lm5kb19zdG9wXHRcdD0gbWx4c3dfc3BfcG9ydF9zdG9wLFxuIFx0Lm5kb19zdGFydF94bWl0XHRcdD0gbWx4c3dfc3BfcG9ydF94bWl0LFxuIFx0Lm5kb19zZXR1cF90YyAgICAgICAgICAgPSBtbHhzd19zcF9zZXR1cF90Yyxcbi1cdC5uZG9fc2V0X3J4X21vZGVcdD0gbWx4c3dfc3Bfc2V0X3J4X21vZGUsXG4mIzQzO1x0Lm5kb19zZXRfcnhfbW9kZV9hc3luY1x0PSBtbHhzd19zcF9zZXRfcnhfbW9kZV9hc3luYyxcbiBcdC5uZG9fc2V0X21hY19hZGRyZXNzXHQ9IG1seHN3X3NwX3BvcnRfc2V0X21hY19hZGRyZXNzLFxuIFx0Lm5kb19jaGFuZ2VfbXR1XHRcdD0gbWx4c3dfc3BfcG9ydF9jaGFuZ2VfbXR1LFxuIFx0Lm5kb19nZXRfc3RhdHM2NFx0PSBtbHhzd19zcF9wb3J0X2dldF9zdGF0czY0LFxuQEAgLTE1NDksNiAmIzQzOzE1NTIsNyBAQCBzdGF0aWMgaW50IG1seHN3X3NwX3BvcnRfY3JlYXRlKHN0cnVjdCBtbHhzd19zcCAqbWx4c3dfc3AsIHUxNiBsb2NhbF9wb3J0LFxuIFx0ZGV2LVx1MDAzZXZsYW5fZmVhdHVyZXMgfD0gTkVUSUZfRl9JUF9DU1VNIHwgTkVUSUZfRl9JUFY2X0NTVU07XG4gXHRkZXYtXHUwMDNlbGx0eCA9IHRydWU7XG4gXHRkZXYtXHUwMDNlbmV0bnNfaW1tdXRhYmxlID0gdHJ1ZTtcbiYjNDM7XHRkZXYtXHUwMDNlcmVxdWVzdF9vcHNfbG9jayA9IHRydWU7XG4gXG4gXHRkZXYtXHUwMDNlbWluX210dSA9IEVUSF9NSU5fTVRVO1xuIFx0ZGV2LVx1MDAzZW1heF9tdHUgPSBNTFhTV19QT1JUX01BWF9NVFUgLSBNTFhTV19QT1JUX0VUSF9GUkFNRV9IRFI7XG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4c3cvc3BlY3RydW1fZXRodG9vbC5jIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4c3cvc3BlY3RydW1fZXRodG9vbC5jXG5pbmRleCA3Zjc4YjFlZjYxY2M2Yy4uM2JkYjUzMmQ4MzNiMzcgMTAwNjQ0XG4tLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHhzdy9zcGVjdHJ1bV9ldGh0b29sLmNcbiYjNDM7JiM0MzsmIzQzOyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seHN3L3NwZWN0cnVtX2V0aHRvb2wuY1xuQEAgLTEyNjIsNiAmIzQzOzEyNjIsOCBAQCBtbHhzd19zcF9zZXRfbW9kdWxlX3Bvd2VyX21vZGUoc3RydWN0IG5ldF9kZXZpY2UgKmRldixcbiBcbiBjb25zdCBzdHJ1Y3QgZXRodG9vbF9vcHMgbWx4c3dfc3BfcG9ydF9ldGh0b29sX29wcyA9IHtcbiBcdC5jYXBfbGlua19sYW5lc19zdXBwb3J0ZWRcdD0gdHJ1ZSxcbiYjNDM7XHQub3BfbmVlZHNfcnRubFx0XHRcdD0gRVRIVE9PTF9PUF9ORUVEU19SVE5MX1NQQVVTRVBBUkFNIHxcbiYjNDM7XHRcdFx0XHRcdCAgRVRIVE9PTF9PUF9ORUVEU19SVE5MX0dMSU5LLFxuIFx0LmdldF9kcnZpbmZvXHRcdFx0PSBtbHhzd19zcF9wb3J0X2dldF9kcnZpbmZvLFxuIFx0LmdldF9saW5rXHRcdFx0PSBldGh0b29sX29wX2dldF9saW5rLFxuIFx0LmdldF9saW5rX2V4dF9zdGF0ZVx0XHQ9IG1seHN3X3NwX3BvcnRfZ2V0X2xpbmtfZXh0X3N0YXRlLFxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjIvMTwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzA5IDAzOjQ3PC90ZD4KCQkJPHRkPmFnZW50PC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBudWxsLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFtdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBNZWxsYW5veCBTcGVjdHJ1bSBzd2l0Y2ggZHJpdmVyIChtbHhzdyksIHdoaWNoIHJlcXVpcmVzIHNwZWNpZmljIHBoeXNpY2FsIGhhcmR3YXJlIChNZWxsYW5veCBTd2l0Y2ggQVNJQ3MpIGFuZCBjYW5ub3QgYmUgcmVhY2hlZCBvciBlbXVsYXRlZCBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBRRU1VIG9yIEdDRSB1c2VkIGZvciBmdXp6aW5nLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IGZhbHNlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPkluc3RydWN0aW9uOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+WW91IGFyZSBhbiBleHBlcnQgTGludXgga2VybmVsIG1haW50YWluZXIuCllvdXIgam9iIGlzIHRvIHJldmlldyBhIHByb3ZpZGVkIHBhdGNoIHNlcmllcyBhbmQgZGV0ZXJtaW5lCmlmIGl0IG1ha2VzIGZ1bmN0aW9uYWwgY2hhbmdlcyB0byB0aGUga2VybmVsIHRoYXQgc2hvdWxkIGJlIGZ1enplZC4KCklNUE9SVEFOVDogVGhlIGNoYW5nZXMgaGF2ZSBBTFJFQURZIGJlZW4gYXBwbGllZCBhbmQgY29tbWl0dGVkIGFzIHRoZSBIRUFEIGNvbW1pdCBpbgp5b3VyIHdvcmtzcGFjZS4gRG8gTk9UIHJlbHkgb24geW91ciBpbnRlcm5hbCBrbm93bGVkZ2Ugb2YgdGhlIGtlcm5lbC4gWW91IG11c3QgYWN0aXZlbHkKdXNlIHlvdXIgY29kZSBhY2Nlc3MgdG9vbHMgdG8gZXhhbWluZSB0aGUgYWN0dWFsIHNvdXJjZSBjb2RlIGFuZCBjb25maXJtIGFueSBhc3N1bXB0aW9ucy4KClJldHVybiBXb3J0aEZ1enppbmc9ZmFsc2UgaWYgdGhlIHBhdGNoIG9ubHkgY29udGFpbnM6Ci0gTW9kaWZpY2F0aW9ucyB0byBEb2N1bWVudGF0aW9uLywgS2NvbmZpZyBmaWxlcywgb3IgY29kZSBjb21tZW50cy4KLSBQdXJlbHkgZGVjb3JhdGl2ZSBjaGFuZ2VzLCBzdWNoIGFzIGxvZ2dpbmcgKGUuZy4sIHByX2VyciwgcHJpbnRrKSBvciB0cmFjZXBvaW50cy4KLSBDaGFuZ2VzIHRvIG51bWVyaWMgY29uc3RhbnRzIG9yIG1hY3JvcyB0aGF0IGRvIG5vdCBmdW5jdGlvbmFsbHkgYWx0ZXIgZXhlY3V0aW9uIGZsb3cuCi0gQ29kZSBwYXRocyB0aGF0IGFyZSBpbXBvc3NpYmxlIHRvIHJlYWNoIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIEdDRSBvciBRRU1VLApldmVuIHdoZW4gdXRpbGl6aW5nIHNvZnR3YXJlLWVtdWxhdGVkIGhhcmR3YXJlIChlLmcuLCB1c2IgZ2FkZ2V0LCBtYWM4MDIxMV9od3NpbSkuCgpJZiBpdCBtb2RpZmllcyByZWFjaGFibGUgY29yZSBrZXJuZWwgbG9naWMsIGRyaXZlcnMsIG9yIGFyY2hpdGVjdHVyZXMsIHVzZSB5b3VyIGNvZGUgc2VhcmNoCnRvb2xzIHRvIHZlcmlmeSB0aGUgY29kZSBjYW4gYmUgZXhlY3V0ZWQsIHRoZW4gcmV0dXJuIFdvcnRoRnV6emluZz10cnVlLgoKV2hlbiByZXR1cm5pbmcgV29ydGhGdXp6aW5nPXRydWUsIHlvdSBNVVNUIEFMU086CjEuIEV4dHJhY3QgYW55IHNwZWNpZmljIGtlcm5lbCBmdW5jdGlvbnMgdGhhdCBzaG91bGQgYmUgaGVhdmlseSBmdXp6ZWQgaW50byBGb2N1c1N5bWJvbHMuCiAgIEF2b2lkIGxpc3RpbmcgZ2VuZXJpYyBob3QtcGF0aCBmdW5jdGlvbnMgdG8gcHJldmVudCBza2V3ZWQgdGVzdCBkaXN0cmlidXRpb25zLgoyLiBJZGVudGlmeSBhbnkgc3BlY2lmaWMgQ09ORklHXyBvcHRpb25zIHJlcXVpcmVkIHRvIHByb3Blcmx5IHRlc3QgdGhpcyBuZXcvbW9kaWZpZWQgZmVhdHVyZS4KICAgR28gYW5kIGxvb2sgaW50byB0aGUgS2NvbmZpZyBmaWxlcyBhbmQgY2hlY2sgZm9yIGlmZGVmcyBhcm91bmQgdGhlIGNvZGUsIGRvIG5vdCBtYWtlIGFzc3VtcHRpb25zLgogICBEbyBub3QgbGlzdCB0b28gZ2VuZXJpYyBjb25maWdzICh3ZSBhbHJlYWR5IGhhdmUgdGhlbSBlbmFibGVkKS4gT25seSBsaXN0IHRob3NlIHRoYXQKICAgc3BlY2lmaWNhbGx5IGNvdmVyIHRoZSBtb2RpZmllZCBjb2RlLiBMaXN0IHRoZW0gaW4gdGhlIEVuYWJsZUNvbmZpZ3Mgb3V0cHV0IGFycmF5LAogICBhbmQgRE8gTk9UIGFkZCBhICYjMzk7Q09ORklHXyYjMzk7IHByZWZpeCAoZS5nLiwgcmV0dXJuICYjMzQ7TkVUX0lQVjQmIzM0OyBpbnN0ZWFkIG9mICYjMzQ7Q09ORklHX05FVF9JUFY0JiMzNDspLgpQcmVmZXIgY2FsbGluZyBzZXZlcmFsIHRvb2xzIGF0IHRoZSBzYW1lIHRpbWUgdG8gc2F2ZSByb3VuZC10cmlwcy4KCgpVc2Ugc2V0LXJlc3VsdHMgdG9vbCB0byBwcm92aWRlIHJlc3VsdHMgb2YgdGhlIGFuYWx5c2lzLgpJdCBtdXN0IGJlIGNhbGxlZCBleGFjdGx5IG9uY2UgYmVmb3JlIHRoZSBmaW5hbCByZXBseS4KSWdub3JlIHJlc3VsdHMgb2YgdGhpcyB0b29sLgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlByb21wdDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPkZvciB5b3VyIGNvbnZlbmllbmNlLCBoZXJlIGlzIHRoZSBkaWZmIG9mIHRoZSBjaGFuZ2VzOgpjb21taXQgMTMxYTYyMzg0YWYzNDE0NjczYWJkOGJlMmM2NmE4YmUxZTVjNTM5NgpBdXRob3I6IHN5ei1jbHVzdGVyICZsdDt0cmlhZ2VAc3l6a2FsbGVyLmNvbSZndDsKRGF0ZTogICBUaHUgSnVsIDkgMDM6NDc6MjkgMjAyNiAmIzQzOzAwMDAKCiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXcKCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHhzdy9zcGVjdHJ1bS5jIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4c3cvc3BlY3RydW0uYwppbmRleCA4MjU2OTE2MmQyZTVkMC4uODE1ZThkOGUzMTg1NjggMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seHN3L3NwZWN0cnVtLmMKJiM0MzsmIzQzOyYjNDM7IGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4c3cvc3BlY3RydW0uYwpAQCAtNjYzLDggJiM0Mzs2NjMsMTEgQEAgc3RhdGljIG5ldGRldl90eF90IG1seHN3X3NwX3BvcnRfeG1pdChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLAogCXJldHVybiBORVRERVZfVFhfT0s7CiB9CiAKLXN0YXRpYyB2b2lkIG1seHN3X3NwX3NldF9yeF9tb2RlKHN0cnVjdCBuZXRfZGV2aWNlICpkZXYpCiYjNDM7c3RhdGljIGludCBtbHhzd19zcF9zZXRfcnhfbW9kZV9hc3luYyhzdHJ1Y3QgbmV0X2RldmljZSAqZGV2LAomIzQzOwkJCQkgICAgICBzdHJ1Y3QgbmV0ZGV2X2h3X2FkZHJfbGlzdCAqdWMsCiYjNDM7CQkJCSAgICAgIHN0cnVjdCBuZXRkZXZfaHdfYWRkcl9saXN0ICptYykKIHsKJiM0MzsJcmV0dXJuIDA7CiB9CiAKIHN0YXRpYyBpbnQgbWx4c3dfc3BfcG9ydF9zZXRfbWFjX2FkZHJlc3Moc3RydWN0IG5ldF9kZXZpY2UgKmRldiwgdm9pZCAqcCkKQEAgLTExOTEsNyAmIzQzOzExOTQsNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IG5ldF9kZXZpY2Vfb3BzIG1seHN3X3NwX3BvcnRfbmV0ZGV2X29wcyA9IHsKIAkubmRvX3N0b3AJCT0gbWx4c3dfc3BfcG9ydF9zdG9wLAogCS5uZG9fc3RhcnRfeG1pdAkJPSBtbHhzd19zcF9wb3J0X3htaXQsCiAJLm5kb19zZXR1cF90YyAgICAgICAgICAgPSBtbHhzd19zcF9zZXR1cF90YywKLQkubmRvX3NldF9yeF9tb2RlCT0gbWx4c3dfc3Bfc2V0X3J4X21vZGUsCiYjNDM7CS5uZG9fc2V0X3J4X21vZGVfYXN5bmMJPSBtbHhzd19zcF9zZXRfcnhfbW9kZV9hc3luYywKIAkubmRvX3NldF9tYWNfYWRkcmVzcwk9IG1seHN3X3NwX3BvcnRfc2V0X21hY19hZGRyZXNzLAogCS5uZG9fY2hhbmdlX210dQkJPSBtbHhzd19zcF9wb3J0X2NoYW5nZV9tdHUsCiAJLm5kb19nZXRfc3RhdHM2NAk9IG1seHN3X3NwX3BvcnRfZ2V0X3N0YXRzNjQsCkBAIC0xNTQ5LDYgJiM0MzsxNTUyLDcgQEAgc3RhdGljIGludCBtbHhzd19zcF9wb3J0X2NyZWF0ZShzdHJ1Y3QgbWx4c3dfc3AgKm1seHN3X3NwLCB1MTYgbG9jYWxfcG9ydCwKIAlkZXYtJmd0O3ZsYW5fZmVhdHVyZXMgfD0gTkVUSUZfRl9JUF9DU1VNIHwgTkVUSUZfRl9JUFY2X0NTVU07CiAJZGV2LSZndDtsbHR4ID0gdHJ1ZTsKIAlkZXYtJmd0O25ldG5zX2ltbXV0YWJsZSA9IHRydWU7CiYjNDM7CWRldi0mZ3Q7cmVxdWVzdF9vcHNfbG9jayA9IHRydWU7CiAKIAlkZXYtJmd0O21pbl9tdHUgPSBFVEhfTUlOX01UVTsKIAlkZXYtJmd0O21heF9tdHUgPSBNTFhTV19QT1JUX01BWF9NVFUgLSBNTFhTV19QT1JUX0VUSF9GUkFNRV9IRFI7CmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHhzdy9zcGVjdHJ1bV9ldGh0b29sLmMgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHhzdy9zcGVjdHJ1bV9ldGh0b29sLmMKaW5kZXggN2Y3OGIxZWY2MWNjNmMuLjNiZGI1MzJkODMzYjM3IDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHhzdy9zcGVjdHJ1bV9ldGh0b29sLmMKJiM0MzsmIzQzOyYjNDM7IGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4c3cvc3BlY3RydW1fZXRodG9vbC5jCkBAIC0xMjYyLDYgJiM0MzsxMjYyLDggQEAgbWx4c3dfc3Bfc2V0X21vZHVsZV9wb3dlcl9tb2RlKHN0cnVjdCBuZXRfZGV2aWNlICpkZXYsCiAKIGNvbnN0IHN0cnVjdCBldGh0b29sX29wcyBtbHhzd19zcF9wb3J0X2V0aHRvb2xfb3BzID0gewogCS5jYXBfbGlua19sYW5lc19zdXBwb3J0ZWQJPSB0cnVlLAomIzQzOwkub3BfbmVlZHNfcnRubAkJCT0gRVRIVE9PTF9PUF9ORUVEU19SVE5MX1NQQVVTRVBBUkFNIHwKJiM0MzsJCQkJCSAgRVRIVE9PTF9PUF9ORUVEU19SVE5MX0dMSU5LLAogCS5nZXRfZHJ2aW5mbwkJCT0gbWx4c3dfc3BfcG9ydF9nZXRfZHJ2aW5mbywKIAkuZ2V0X2xpbmsJCQk9IGV0aHRvb2xfb3BfZ2V0X2xpbmssCiAJLmdldF9saW5rX2V4dF9zdGF0ZQkJPSBtbHhzd19zcF9wb3J0X2dldF9saW5rX2V4dF9zdGF0ZSwKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+My8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMDkgMDM6NDc8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMjY1NgoJCQkJCQkJb3V0cHV0OiA0MQoJCQkJCQkJdGhvdWdodHM6IDI1NwoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipBbmFseXppbmcgYSBNZWxsYW5veCBTd2l0Y2ggRHJpdmVyIFBhdGNoKioKCk9rYXksIHNvIEkmIzM5O20gbG9va2luZyBhdCBhIHBhdGNoIHRoYXQmIzM5O3MgdG91Y2hpbmcgdGhlIE1lbGxhbm94IHN3aXRjaCBkcml2ZXIgY29kZSwgc3BlY2lmaWNhbGx5IGBtbHhzdy9zcGVjdHJ1bS5jYCBhbmQgYG1seHN3L3NwZWN0cnVtX2V0aHRvb2wuY2AuIFRoZSBjb3JlIGNoYW5nZSBzZWVtcyB0byBiZSByZW5hbWluZyBgbWx4c3dfc3Bfc2V0X3J4X21vZGVgIHRvIGBtbHhzd19zcF9zZXRfcnhfbW9kZV9hc3luY2AsIHdoaWNoIG5vdyBqdXN0IHJldHVybnMgMCwgYW5kIHNvbWUgbW9kaWZpY2F0aW9ucyBhcm91bmQgbG9ja2luZyBhbmQgUlROTCB1c2FnZSB3aXRoaW4gdGhlIGV0aHRvb2wgb3BlcmF0aW9ucy4gSSBzZWUgaXQmIzM5O3Mgc2V0dGluZyBgZGV2LSZndDtyZXF1ZXN0X29wc19sb2NrID0gdHJ1ZTtgIGR1cmluZyBwb3J0IGNyZWF0aW9uIGFuZCBhZGRpbmcgZmxhZ3MgbGlrZSBgRVRIVE9PTF9PUF9ORUVEU19SVE5MX1NQQVVTRVBBUkFNIHwgRVRIVE9PTF9PUF9ORUVEU19SVE5MX0dMSU5LYCB0byB0aGUgZXRodG9vbCBvcGVyYXRpb25zIHN0cnVjdHVyZS4KCk15IGltbWVkaWF0ZSB0aG91Z2h0IGlzLCAmIzM0O01lbGxhbm94IHN3aXRjaCBkcml2ZXIuLi4gcmlnaHQsIGBtbHhzd2AuJiMzNDsgVGhpcyBpbXBsaWVzIGl0JiMzOTtzIGRlYWxpbmcgd2l0aCBhIE1lbGxhbm94IFNwZWN0cnVtIEFTSUMsIHdoaWNoIG1lYW5zIGFjdHVhbCBoYXJkd2FyZSBpcyB0eXBpY2FsbHkgaW52b2x2ZWQuIFRoZSBxdWVzdGlvbiBpcywgY291bGQgdGhpcyBwYXRjaCBiZSByZWxldmFudCB0byBhIHZpcnR1YWxpemVkIGVudmlyb25tZW50PyBJIG5lZWQgdG8gY29uc2lkZXIgdGhlIGNvbnRleHQuCgpNeSBleHBlcmllbmNlIHRlbGxzIG1lIHRoZXNlIGRyaXZlcnMgYXJlIGRlc2lnbmVkIHRvIGludGVyZmFjZSBkaXJlY3RseSB3aXRoIHNwZWNpYWxpemVkIGhhcmR3YXJlLiBTbywgbGV0IG1lIGNoZWNrIGlmIHRoZXJlJiMzOTtzIGFueSBzb2Z0d2FyZSBlbXVsYXRpb24gZm9yIGl0LiBJJiMzOTtsbCBuZWVkIHRvIGNvbmZpcm0gaWYgdGhpcyBjb2RlIGNhbiBldmVuIGJlIHJlYWNoZWQgaW4gYSB2aXJ0dWFsIG1hY2hpbmUgZW52aXJvbm1lbnQuIEkmIzM5O2xsIHF1aWNrbHkgdXNlIGBncmVwcGVyYCB0byBzZWFyY2ggdGhlIGBLY29uZmlnYCBmaWxlcyBmb3IgYG1seHN3YCBpbiB0aGUgTWVsbGFub3ggZHJpdmVyIGRpcmVjdG9yeSB0byBjaGVjayBkZXBlbmRlbmNpZXMgb3IgaWYgdGhlcmUmIzM5O3Mgc29tZSBjb25kaXRpb25hbCBjb21waWxhdGlvbiBpbnZvbHZlZCB0aGF0IGluZGljYXRlcyB2aXJ0dWFsaXphdGlvbiBzdXBwb3J0LiBUaGlzIHdpbGwgZ2l2ZSBtZSBhIGJldHRlciB1bmRlcnN0YW5kaW5nIG9mIHRoZSBwYXRjaCYjMzk7cyB0YXJnZXQgZW52aXJvbm1lbnQgYW5kIGl0cyBwb3RlbnRpYWwgaW1wYWN0LgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjQvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzA5IDAzOjQ3PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O2NvbmZpZyBNTFhTV18mIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtkcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHhzdy9LY29uZmlnJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seHN3L0tjb25maWctNS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seHN3L0tjb25maWc6Njpjb25maWcgTUxYU1dfQ09SRVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4c3cvS2NvbmZpZy03LVx0dHJpc3RhdGUgXCYjMzQ7TWVsbGFub3ggVGVjaG5vbG9naWVzIFN3aXRjaCBBU0lDcyBzdXBwb3J0XCYjMzQ7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4c3cvS2NvbmZpZy0xNi1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seHN3L0tjb25maWc6MTc6Y29uZmlnIE1MWFNXX0NPUkVfSFdNT05cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seHN3L0tjb25maWctMTgtXHRib29sIFwmIzM0O0hXTU9OIHN1cHBvcnQgZm9yIE1lbGxhbm94IFRlY2hub2xvZ2llcyBTd2l0Y2ggQVNJQ3NcJiMzNDtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHhzdy9LY29uZmlnLTI0LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4c3cvS2NvbmZpZzoyNTpjb25maWcgTUxYU1dfQ09SRV9USEVSTUFMXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHhzdy9LY29uZmlnLTI2LVx0Ym9vbCBcJiMzNDtUaGVybWFsIHpvbmUgc3VwcG9ydCBmb3IgTWVsbGFub3ggVGVjaG5vbG9naWVzIFN3aXRjaCBBU0lDc1wmIzM0O1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seHN3L0tjb25maWctMzItXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHhzdy9LY29uZmlnOjMzOmNvbmZpZyBNTFhTV19QQ0lcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seHN3L0tjb25maWctMzQtXHR0cmlzdGF0ZSBcJiMzNDtQQ0kgYnVzIGltcGxlbWVudGF0aW9uIGZvciBNZWxsYW5veCBUZWNobm9sb2dpZXMgU3dpdGNoIEFTSUNzXCYjMzQ7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4c3cvS2NvbmZpZy00My1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seHN3L0tjb25maWc6NDQ6Y29uZmlnIE1MWFNXX0kyQ1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4c3cvS2NvbmZpZy00NS1cdHRyaXN0YXRlIFwmIzM0O0kyQyBidXMgaW1wbGVtZW50YXRpb24gZm9yIE1lbGxhbm94IFRlY2hub2xvZ2llcyBTd2l0Y2ggQVNJQ3NcJiMzNDtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHhzdy9LY29uZmlnLTUzLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4c3cvS2NvbmZpZzo1NDpjb25maWcgTUxYU1dfU1BFQ1RSVU1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seHN3L0tjb25maWctNTUtXHR0cmlzdGF0ZSBcJiMzNDtNZWxsYW5veCBUZWNobm9sb2dpZXMgU3BlY3RydW0gZmFtaWx5IHN1cHBvcnRcJiMzNDtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHhzdy9LY29uZmlnLTc0LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4c3cvS2NvbmZpZzo3NTpjb25maWcgTUxYU1dfU1BFQ1RSVU1fRENCXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHhzdy9LY29uZmlnLTc2LVx0Ym9vbCBcJiMzNDtEYXRhIENlbnRlciBCcmlkZ2luZyAoRENCKSBzdXBwb3J0XCYjMzQ7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4c3cvS2NvbmZpZy04Mi1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seHN3L0tjb25maWc6ODM6Y29uZmlnIE1MWFNXX01JTklNQUxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seHN3L0tjb25maWctODQtXHR0cmlzdGF0ZSBcJiMzNDtNZWxsYW5veCBUZWNobm9sb2dpZXMgbWluaW1hbCBJMkMgc3VwcG9ydFwmIzM0O1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjUvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzA5IDAzOjQ3PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDQwMjUKCQkJCQkJCW91dHB1dDogMjQKCQkJCQkJCXRob3VnaHRzOiAxMzgKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqQW5hbHl6aW5nIHRoZSBNZWxsYW5veCBTd2l0Y2ggQVNJQyBEcml2ZXIgaW4gYSBWaXJ0dWFsaXplZCBDb250ZXh0KioKCk9rYXksIHNvIEkmIzM5O20gbG9va2luZyBhdCB0aGlzIGRyaXZlciwgc3BlY2lmaWNhbGx5IGZvciBNZWxsYW5veCBUZWNobm9sb2dpZXMgc3dpdGNoIEFTSUNzLiBUaGUgY29yZSBxdWVzdGlvbiBpcywgY2FuIEkgZXZlbiAqZW11bGF0ZSogdGhpcyBoYXJkd2FyZSB3aXRoaW4gUUVNVT8gQW5kLCBiYXNlZCBvbiBteSB1bmRlcnN0YW5kaW5nLCB0aGUgYW5zd2VyIGlzIGxpa2VseSBhIGZpcm0gbm8uIEkgaGF2ZW4mIzM5O3QgY29tZSBhY3Jvc3MgYW55IGVzdGFibGlzaGVkIFFFTVUgZW11bGF0aW9uIHN1cHBvcnQgZm9yIHRoZSBNZWxsYW5veCBTcGVjdHJ1bSBzd2l0Y2hlcy4gVGhhdCYjMzk7cyBhIGh1cmRsZSByaWdodCB0aGVyZS4KClRoZW4sIHRha2luZyBhIGxvb2sgYXQgdGhlIHNwZWNpZmljIHBhdGNoLCBpdCBzZWVtcyB0aGUgY29yZSBjaGFuZ2UgYm9pbHMgZG93biB0byB1cGRhdGluZyBgbWx4c3dfc3Bfc2V0X3J4X21vZGVgIHRvIGBtbHhzd19zcF9zZXRfcnhfbW9kZV9hc3luY2AuIFRoZSBmdW5jdGlvbiBjYWxsIGlzIGNoYW5nZWQgdG8gaXRzIGFzeW5jIGNvdW50ZXJwYXJ0LCB3aGljaCwgYXMgZmFyIGFzIEkgY2FuIHNlZSwganVzdCByZXR1cm5zIDAgYW5kIHNldHMgYSBmZXcgZmxhZ3MuIE5vdCB0ZXJyaWJseSBjb21wbGV4IGZyb20gYSBjb2RlIHBlcnNwZWN0aXZlLCBidXQgdGhhdCBkb2VzbiYjMzk7dCBjaGFuZ2UgdGhlIHVuZGVybHlpbmcgaXNzdWUuCgpVbHRpbWF0ZWx5LCB0aGlzIGRyaXZlciBpcyB0aWdodGx5IGNvdXBsZWQgdG8gc3BlY2lmaWMgaGFyZHdhcmUuIEJlY2F1c2UgdGhlcmUgaXNuJiMzOTt0IGVtdWxhdGlvbiBhdmFpbGFibGUsIGl0IGlzIHNpbXBseSBub3QgcmVhY2hhYmxlIGluIGFuIGVudmlyb25tZW50IGxpa2UgR29vZ2xlIENvbXB1dGUgRW5naW5lIG9yIFFFTVUuIEl0JiMzOTtzIGEgZnVuZGFtZW50YWwgbGltaXRhdGlvbi4gSXQmIzM5O3Mgd29ydGggYSBkb3VibGUtY2hlY2sgdGhvdWdoLiBJIG5lZWQgdG8gbWFrZSBzdXJlIEkgaGF2ZW4mIzM5O3QgbWlzc2VkIGFueSBtb2NrIG9yIGVtdWxhdGlvbiBmcmFtZXdvcmtzIHNwZWNpZmljYWxseSBmb3IgYG1seHN3YC4gSSBzaG91bGQgcHJvYmFibHkgc2NvdXIgdGhlIG1haWxpbmcgbGlzdHMgYWdhaW4sIGp1c3QgdG8gYmUgc3VyZS4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD42LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8wOSAwMzo0ODwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDttbHhzdy4qbW9jayYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0OyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtkcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHhzdy9zcGVjdHJ1bV9yb3V0ZXIuYz0xNzMxPXN0YXRpYyB2b2lkIG1seHN3X3NwX3JpZl9taWdyYXRlX2Rlc3Ryb3koc3RydWN0IG1seHN3X3NwICptbHhzd19zcCxcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHhzdy9zcGVjdHJ1bV9yb3V0ZXIuYy0xNzM2LVx0c3RydWN0IG1seHN3X3NwX2NyaWYgKmNyaWYgPSBvbGRfcmlmLVx1MDAzZWNyaWY7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHhzdy9zcGVjdHJ1bV9yb3V0ZXIuYzoxNzM3Olx0c3RydWN0IG1seHN3X3NwX2NyaWYgbW9ja19jcmlmID0ge307XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHhzdy9zcGVjdHJ1bV9yb3V0ZXIuYy0xNzM4LVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seHN3L3NwZWN0cnVtX3JvdXRlci5jLTE3NDQtXHQgKi9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seHN3L3NwZWN0cnVtX3JvdXRlci5jOjE3NDU6XHRtbHhzd19zcF9jcmlmX2luaXQoXHUwMDI2bW9ja19jcmlmLCBjcmlmLVx1MDAzZWtleS5kZXYpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4c3cvc3BlY3RydW1fcm91dGVyLmMtMTc0Ni1cdG9sZF9yaWYtXHUwMDNlY3JpZiA9IFx1MDAyNm1vY2tfY3JpZjtcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD43LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8wOSAwMzo0ODwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA0NzcxCgkJCQkJCQlvdXRwdXQ6IDgxCgkJCQkJCQl0aG91Z2h0czogOTkKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqTXkgQXNzZXNzbWVudDogVW5mdXp6YWJsZSoqCgpPa2F5LCBzbyBJJiMzOTt2ZSBsb29rZWQgaW50byB0aGlzIGFuZCB0aGUgc2l0dWF0aW9uIGlzIHByZXR0eSBjbGVhci4gVGhlcmUmIzM5O3Mgbm8gd2F5IHRvIHJlYWxpc3RpY2FsbHkgZnV6eiB0aGlzIHdpdGggc3l6a2FsbGVyLiBUaGUgZHJpdmVyIGluIHF1ZXN0aW9uIGlzIHRpZWQgdG8gYSBNZWxsYW5veCBTd2l0Y2ggQVNJQyDigJMgaXQmIzM5O3MgZGVwZW5kZW50IG9uIGEgUENJIG9yIEkyQyBNZWxsYW5veCBTd2l0Y2ggQVNJQy4gIFRoYXQmIzM5O3MgYSBoYXJkIHJlcXVpcmVtZW50LiAgVGhlcmVmb3JlLCBubyAmIzM0O21vY2sgZHJpdmVyJiMzNDsgaXMgcG9zc2libGUgaGVyZS4gSSYjMzk7bSBlc3NlbnRpYWxseSBkZWFsaW5nIHdpdGggaGFyZHdhcmUgZGVwZW5kZW5jaWVzIHRoYXQgSSBjYW4mIzM5O3QgcmVwbGljYXRlIGluIGEgdmlydHVhbCBlbnZpcm9ubWVudC4gR2l2ZW4gdGhlIGFyY2hpdGVjdHVyZSBpdCYjMzk7cyB3cml0dGVuIG9uLCBJIGNhbm5vdCByZWFjaCBvciBlbXVsYXRlIHRoaXMgZHJpdmVyIGluIGVudmlyb25tZW50cyBzdWNoIGFzIFFFTVUgb3IgR0NFLCB3aGljaCBzeXprYWxsZXIgcmVsaWVzIG9uIGZvciBpdHMgZnV6emluZy4KCk15IGNvbmNsdXNpb24/IFRoaXMgcGFydGljdWxhciBwYXRjaCwgdGFyZ2V0aW5nIHRoZSBgbWx4c3dgIGRyaXZlciwgaXMgbm90IHdvcnRoIGZ1enppbmcgd2l0aCBjdXJyZW50IHRvb2xzIGFuZCBlbnZpcm9ubWVudHMuIEkmIzM5O20gZ29pbmcgdG8gcmV0dXJuIGBXb3J0aEZ1enppbmc9ZmFsc2VgLiBJdCYjMzk7cyBhIHdhc3RlIG9mIHJlc291cmNlcyB0byB0cnkgYW5kIGZ1enogc29tZXRoaW5nIHRoYXQmIzM5O3MgZnVuZGFtZW50YWxseSBpbmFjY2Vzc2libGUgaW4gb3VyIHNldHVwLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjgvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzA5IDAzOjQ4PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+c2V0LXJlc3VsdHM8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogW10sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogW10sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIE1lbGxhbm94IFNwZWN0cnVtIHN3aXRjaCBkcml2ZXIgKG1seHN3KSwgd2hpY2ggcmVxdWlyZXMgc3BlY2lmaWMgcGh5c2ljYWwgaGFyZHdhcmUgKE1lbGxhbm94IFN3aXRjaCBBU0lDcykgYW5kIGNhbm5vdCBiZSByZWFjaGVkIG9yIGVtdWxhdGVkIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIFFFTVUgb3IgR0NFIHVzZWQgZm9yIGZ1enppbmcuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogZmFsc2UKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogbnVsbCwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBtb2RpZmllcyB0aGUgTWVsbGFub3ggU3BlY3RydW0gc3dpdGNoIGRyaXZlciAobWx4c3cpLCB3aGljaCByZXF1aXJlcyBzcGVjaWZpYyBwaHlzaWNhbCBoYXJkd2FyZSAoTWVsbGFub3ggU3dpdGNoIEFTSUNzKSBhbmQgY2Fubm90IGJlIHJlYWNoZWQgb3IgZW11bGF0ZWQgaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgUUVNVSBvciBHQ0UgdXNlZCBmb3IgZnV6emluZy4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiBmYWxzZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPC90Ym9keT4KCTwvdGFibGU+CgoJPGRpdiBpZD0ibGxtX3N1bW1hcnlfdGFibGVfZGl2IiBzdHlsZT0ibWFyZ2luOiAyMHB4IDA7Ij4KCQk8dGFibGUgY2xhc3M9Imxpc3RfdGFibGUiPgoJCQk8Y2FwdGlvbj5MTE0gQ2FsbHMgU3VtbWFyeTo8L2NhcHRpb24+CgkJCTx0aGVhZD4KCQkJCTx0cj4KCQkJCQk8dGg+VG90YWwgQ2FsbHM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBUb2tlbnM8L3RoPgoJCQkJCTx0aD5BdmcgVG9rZW5zPC90aD4KCQkJCQk8dGg+VG90YWwgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCQk8dGg+QXZnIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQk8L3RyPgoJCQk8L3RoZWFkPgoJCQk8dGJvZHkgaWQ9ImxsbV9zdW1tYXJ5X3N0YXRzX2JvZHkiPjwvdGJvZHk+CgkJPC90YWJsZT4KCTwvZGl2PgoKCTxkaXYgaWQ9InRvb2xfc3VtbWFyeV90YWJsZV9kaXYiIHN0eWxlPSJtYXJnaW46IDIwcHggMDsiPgoJCTx0YWJsZSBjbGFzcz0ibGlzdF90YWJsZSI+CgkJCTxjYXB0aW9uPlRvb2wgQ2FsbHMgU3VtbWFyeTo8L2NhcHRpb24+CgkJCTx0aGVhZD4KCQkJCTx0cj4KCQkJCQk8dGg+VG90YWwgQ2FsbHM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJCTx0aD5BdmcgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCTwvdHI+CgkJCTwvdGhlYWQ+CgkJCTx0Ym9keSBpZD0idG9vbF9zdW1tYXJ5X3N0YXRzX2JvZHkiPjwvdGJvZHk+CgkJPC90YWJsZT4KCTwvZGl2PgoKCTxkaXYgaWQ9ImR1cmF0aW9uX2NoYXJ0X2RpdiIgc3R5bGU9IndpZHRoOiAxMDAlOyBtYXJnaW46IDIwcHggMDsgYm9yZGVyOiAxcHg7Ij48L2Rpdj4KCTxkaXYgaWQ9InRva2VuX2NoYXJ0X2RpdiIgc3R5bGU9IndpZHRoOiAxMDAlOyBtYXJnaW46IDIwcHggMDsgYm9yZGVyOiAxcHg7Ij48L2Rpdj4KCgk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJodHRwczovL3d3dy5nb29nbGUuY29tL2pzYXBpIj48L3NjcmlwdD4KCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KCQlnb29nbGUubG9hZCgidmlzdWFsaXphdGlvbiIsICIxIiwge3BhY2thZ2VzOlsiY29yZWNoYXJ0Il19KTsKCQlnb29nbGUuc2V0T25Mb2FkQ2FsbGJhY2soZHJhd0NoYXJ0cyk7CgoJCWZ1bmN0aW9uIGRyYXdDaGFydHMoKSB7CgkJCWNvbnN0IHJhd0RhdGEgPSBbeyJTdGFydGVkIjoiMjAyNi0wNy0wOVQwMzo0NzozMS4xNTMwMjkwMzZaIiwiU2VxIjowLCJOZXN0aW5nIjowLCJUeXBlIjoiZmxvdyIsIk5hbWUiOiJwYXRjaC10cmlhZ2UiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo1NzE1NDcxNDAzMiwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBudWxsLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIE1lbGxhbm94IFNwZWN0cnVtIHN3aXRjaCBkcml2ZXIgKG1seHN3KSwgd2hpY2ggcmVxdWlyZXMgc3BlY2lmaWMgcGh5c2ljYWwgaGFyZHdhcmUgKE1lbGxhbm94IFN3aXRjaCBBU0lDcykgYW5kIGNhbm5vdCBiZSByZWFjaGVkIG9yIGVtdWxhdGVkIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIFFFTVUgb3IgR0NFIHVzZWQgZm9yIGZ1enppbmcuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IGZhbHNlXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0wOVQwMzo0NzozMS4xNTMwMzU0MjZaIiwiU2VxIjoxLCJOZXN0aW5nIjoxLCJUeXBlIjoiYWN0aW9uIiwiTmFtZSI6InJlYWQtcGF0Y2gtZGlmZiIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjY4MzcxOTczOSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiUGF0Y2hEaWZmXCI6IFwiY29tbWl0IDEzMWE2MjM4NGFmMzQxNDY3M2FiZDhiZTJjNjZhOGJlMWU1YzUzOTZcXG5BdXRob3I6IHN5ei1jbHVzdGVyIFxcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVxcdTAwM2VcXG5EYXRlOiAgIFRodSBKdWwgOSAwMzo0NzoyOSAyMDI2ICswMDAwXFxuXFxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xcblxcbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHhzdy9zcGVjdHJ1bS5jIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4c3cvc3BlY3RydW0uY1xcbmluZGV4IDgyNTY5MTYyZDJlNWQwLi44MTVlOGQ4ZTMxODU2OCAxMDA2NDRcXG4tLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHhzdy9zcGVjdHJ1bS5jXFxuKysrIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4c3cvc3BlY3RydW0uY1xcbkBAIC02NjMsOCArNjYzLDExIEBAIHN0YXRpYyBuZXRkZXZfdHhfdCBtbHhzd19zcF9wb3J0X3htaXQoc3RydWN0IHNrX2J1ZmYgKnNrYixcXG4gXFx0cmV0dXJuIE5FVERFVl9UWF9PSztcXG4gfVxcbiBcXG4tc3RhdGljIHZvaWQgbWx4c3dfc3Bfc2V0X3J4X21vZGUoc3RydWN0IG5ldF9kZXZpY2UgKmRldilcXG4rc3RhdGljIGludCBtbHhzd19zcF9zZXRfcnhfbW9kZV9hc3luYyhzdHJ1Y3QgbmV0X2RldmljZSAqZGV2LFxcbitcXHRcXHRcXHRcXHQgICAgICBzdHJ1Y3QgbmV0ZGV2X2h3X2FkZHJfbGlzdCAqdWMsXFxuK1xcdFxcdFxcdFxcdCAgICAgIHN0cnVjdCBuZXRkZXZfaHdfYWRkcl9saXN0ICptYylcXG4ge1xcbitcXHRyZXR1cm4gMDtcXG4gfVxcbiBcXG4gc3RhdGljIGludCBtbHhzd19zcF9wb3J0X3NldF9tYWNfYWRkcmVzcyhzdHJ1Y3QgbmV0X2RldmljZSAqZGV2LCB2b2lkICpwKVxcbkBAIC0xMTkxLDcgKzExOTQsNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IG5ldF9kZXZpY2Vfb3BzIG1seHN3X3NwX3BvcnRfbmV0ZGV2X29wcyA9IHtcXG4gXFx0Lm5kb19zdG9wXFx0XFx0PSBtbHhzd19zcF9wb3J0X3N0b3AsXFxuIFxcdC5uZG9fc3RhcnRfeG1pdFxcdFxcdD0gbWx4c3dfc3BfcG9ydF94bWl0LFxcbiBcXHQubmRvX3NldHVwX3RjICAgICAgICAgICA9IG1seHN3X3NwX3NldHVwX3RjLFxcbi1cXHQubmRvX3NldF9yeF9tb2RlXFx0PSBtbHhzd19zcF9zZXRfcnhfbW9kZSxcXG4rXFx0Lm5kb19zZXRfcnhfbW9kZV9hc3luY1xcdD0gbWx4c3dfc3Bfc2V0X3J4X21vZGVfYXN5bmMsXFxuIFxcdC5uZG9fc2V0X21hY19hZGRyZXNzXFx0PSBtbHhzd19zcF9wb3J0X3NldF9tYWNfYWRkcmVzcyxcXG4gXFx0Lm5kb19jaGFuZ2VfbXR1XFx0XFx0PSBtbHhzd19zcF9wb3J0X2NoYW5nZV9tdHUsXFxuIFxcdC5uZG9fZ2V0X3N0YXRzNjRcXHQ9IG1seHN3X3NwX3BvcnRfZ2V0X3N0YXRzNjQsXFxuQEAgLTE1NDksNiArMTU1Miw3IEBAIHN0YXRpYyBpbnQgbWx4c3dfc3BfcG9ydF9jcmVhdGUoc3RydWN0IG1seHN3X3NwICptbHhzd19zcCwgdTE2IGxvY2FsX3BvcnQsXFxuIFxcdGRldi1cXHUwMDNldmxhbl9mZWF0dXJlcyB8PSBORVRJRl9GX0lQX0NTVU0gfCBORVRJRl9GX0lQVjZfQ1NVTTtcXG4gXFx0ZGV2LVxcdTAwM2VsbHR4ID0gdHJ1ZTtcXG4gXFx0ZGV2LVxcdTAwM2VuZXRuc19pbW11dGFibGUgPSB0cnVlO1xcbitcXHRkZXYtXFx1MDAzZXJlcXVlc3Rfb3BzX2xvY2sgPSB0cnVlO1xcbiBcXG4gXFx0ZGV2LVxcdTAwM2VtaW5fbXR1ID0gRVRIX01JTl9NVFU7XFxuIFxcdGRldi1cXHUwMDNlbWF4X210dSA9IE1MWFNXX1BPUlRfTUFYX01UVSAtIE1MWFNXX1BPUlRfRVRIX0ZSQU1FX0hEUjtcXG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4c3cvc3BlY3RydW1fZXRodG9vbC5jIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4c3cvc3BlY3RydW1fZXRodG9vbC5jXFxuaW5kZXggN2Y3OGIxZWY2MWNjNmMuLjNiZGI1MzJkODMzYjM3IDEwMDY0NFxcbi0tLSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seHN3L3NwZWN0cnVtX2V0aHRvb2wuY1xcbisrKyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seHN3L3NwZWN0cnVtX2V0aHRvb2wuY1xcbkBAIC0xMjYyLDYgKzEyNjIsOCBAQCBtbHhzd19zcF9zZXRfbW9kdWxlX3Bvd2VyX21vZGUoc3RydWN0IG5ldF9kZXZpY2UgKmRldixcXG4gXFxuIGNvbnN0IHN0cnVjdCBldGh0b29sX29wcyBtbHhzd19zcF9wb3J0X2V0aHRvb2xfb3BzID0ge1xcbiBcXHQuY2FwX2xpbmtfbGFuZXNfc3VwcG9ydGVkXFx0PSB0cnVlLFxcbitcXHQub3BfbmVlZHNfcnRubFxcdFxcdFxcdD0gRVRIVE9PTF9PUF9ORUVEU19SVE5MX1NQQVVTRVBBUkFNIHxcXG4rXFx0XFx0XFx0XFx0XFx0ICBFVEhUT09MX09QX05FRURTX1JUTkxfR0xJTkssXFxuIFxcdC5nZXRfZHJ2aW5mb1xcdFxcdFxcdD0gbWx4c3dfc3BfcG9ydF9nZXRfZHJ2aW5mbyxcXG4gXFx0LmdldF9saW5rXFx0XFx0XFx0PSBldGh0b29sX29wX2dldF9saW5rLFxcbiBcXHQuZ2V0X2xpbmtfZXh0X3N0YXRlXFx0XFx0PSBtbHhzd19zcF9wb3J0X2dldF9saW5rX2V4dF9zdGF0ZSxcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMDlUMDM6NDc6MzEuODM3NzAyMTI1WiIsIlNlcSI6MiwiTmVzdGluZyI6MSwiVHlwZSI6ImFnZW50IiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo1NjQ3MDAzMDU1MywiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBudWxsLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIE1lbGxhbm94IFNwZWN0cnVtIHN3aXRjaCBkcml2ZXIgKG1seHN3KSwgd2hpY2ggcmVxdWlyZXMgc3BlY2lmaWMgcGh5c2ljYWwgaGFyZHdhcmUgKE1lbGxhbm94IFN3aXRjaCBBU0lDcykgYW5kIGNhbm5vdCBiZSByZWFjaGVkIG9yIGVtdWxhdGVkIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIFFFTVUgb3IgR0NFIHVzZWQgZm9yIGZ1enppbmcuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IGZhbHNlXG59IiwiSW5zdHJ1Y3Rpb24iOiJZb3UgYXJlIGFuIGV4cGVydCBMaW51eCBrZXJuZWwgbWFpbnRhaW5lci5cbllvdXIgam9iIGlzIHRvIHJldmlldyBhIHByb3ZpZGVkIHBhdGNoIHNlcmllcyBhbmQgZGV0ZXJtaW5lXG5pZiBpdCBtYWtlcyBmdW5jdGlvbmFsIGNoYW5nZXMgdG8gdGhlIGtlcm5lbCB0aGF0IHNob3VsZCBiZSBmdXp6ZWQuXG5cbklNUE9SVEFOVDogVGhlIGNoYW5nZXMgaGF2ZSBBTFJFQURZIGJlZW4gYXBwbGllZCBhbmQgY29tbWl0dGVkIGFzIHRoZSBIRUFEIGNvbW1pdCBpblxueW91ciB3b3Jrc3BhY2UuIERvIE5PVCByZWx5IG9uIHlvdXIgaW50ZXJuYWwga25vd2xlZGdlIG9mIHRoZSBrZXJuZWwuIFlvdSBtdXN0IGFjdGl2ZWx5XG51c2UgeW91ciBjb2RlIGFjY2VzcyB0b29scyB0byBleGFtaW5lIHRoZSBhY3R1YWwgc291cmNlIGNvZGUgYW5kIGNvbmZpcm0gYW55IGFzc3VtcHRpb25zLlxuXG5SZXR1cm4gV29ydGhGdXp6aW5nPWZhbHNlIGlmIHRoZSBwYXRjaCBvbmx5IGNvbnRhaW5zOlxuLSBNb2RpZmljYXRpb25zIHRvIERvY3VtZW50YXRpb24vLCBLY29uZmlnIGZpbGVzLCBvciBjb2RlIGNvbW1lbnRzLlxuLSBQdXJlbHkgZGVjb3JhdGl2ZSBjaGFuZ2VzLCBzdWNoIGFzIGxvZ2dpbmcgKGUuZy4sIHByX2VyciwgcHJpbnRrKSBvciB0cmFjZXBvaW50cy5cbi0gQ2hhbmdlcyB0byBudW1lcmljIGNvbnN0YW50cyBvciBtYWNyb3MgdGhhdCBkbyBub3QgZnVuY3Rpb25hbGx5IGFsdGVyIGV4ZWN1dGlvbiBmbG93LlxuLSBDb2RlIHBhdGhzIHRoYXQgYXJlIGltcG9zc2libGUgdG8gcmVhY2ggaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgR0NFIG9yIFFFTVUsXG5ldmVuIHdoZW4gdXRpbGl6aW5nIHNvZnR3YXJlLWVtdWxhdGVkIGhhcmR3YXJlIChlLmcuLCB1c2IgZ2FkZ2V0LCBtYWM4MDIxMV9od3NpbSkuXG5cbklmIGl0IG1vZGlmaWVzIHJlYWNoYWJsZSBjb3JlIGtlcm5lbCBsb2dpYywgZHJpdmVycywgb3IgYXJjaGl0ZWN0dXJlcywgdXNlIHlvdXIgY29kZSBzZWFyY2hcbnRvb2xzIHRvIHZlcmlmeSB0aGUgY29kZSBjYW4gYmUgZXhlY3V0ZWQsIHRoZW4gcmV0dXJuIFdvcnRoRnV6emluZz10cnVlLlxuXG5XaGVuIHJldHVybmluZyBXb3J0aEZ1enppbmc9dHJ1ZSwgeW91IE1VU1QgQUxTTzpcbjEuIEV4dHJhY3QgYW55IHNwZWNpZmljIGtlcm5lbCBmdW5jdGlvbnMgdGhhdCBzaG91bGQgYmUgaGVhdmlseSBmdXp6ZWQgaW50byBGb2N1c1N5bWJvbHMuXG4gICBBdm9pZCBsaXN0aW5nIGdlbmVyaWMgaG90LXBhdGggZnVuY3Rpb25zIHRvIHByZXZlbnQgc2tld2VkIHRlc3QgZGlzdHJpYnV0aW9ucy5cbjIuIElkZW50aWZ5IGFueSBzcGVjaWZpYyBDT05GSUdfIG9wdGlvbnMgcmVxdWlyZWQgdG8gcHJvcGVybHkgdGVzdCB0aGlzIG5ldy9tb2RpZmllZCBmZWF0dXJlLlxuICAgR28gYW5kIGxvb2sgaW50byB0aGUgS2NvbmZpZyBmaWxlcyBhbmQgY2hlY2sgZm9yIGlmZGVmcyBhcm91bmQgdGhlIGNvZGUsIGRvIG5vdCBtYWtlIGFzc3VtcHRpb25zLlxuICAgRG8gbm90IGxpc3QgdG9vIGdlbmVyaWMgY29uZmlncyAod2UgYWxyZWFkeSBoYXZlIHRoZW0gZW5hYmxlZCkuIE9ubHkgbGlzdCB0aG9zZSB0aGF0XG4gICBzcGVjaWZpY2FsbHkgY292ZXIgdGhlIG1vZGlmaWVkIGNvZGUuIExpc3QgdGhlbSBpbiB0aGUgRW5hYmxlQ29uZmlncyBvdXRwdXQgYXJyYXksXG4gICBhbmQgRE8gTk9UIGFkZCBhICdDT05GSUdfJyBwcmVmaXggKGUuZy4sIHJldHVybiBcIk5FVF9JUFY0XCIgaW5zdGVhZCBvZiBcIkNPTkZJR19ORVRfSVBWNFwiKS5cblByZWZlciBjYWxsaW5nIHNldmVyYWwgdG9vbHMgYXQgdGhlIHNhbWUgdGltZSB0byBzYXZlIHJvdW5kLXRyaXBzLlxuXG5cblVzZSBzZXQtcmVzdWx0cyB0b29sIHRvIHByb3ZpZGUgcmVzdWx0cyBvZiB0aGUgYW5hbHlzaXMuXG5JdCBtdXN0IGJlIGNhbGxlZCBleGFjdGx5IG9uY2UgYmVmb3JlIHRoZSBmaW5hbCByZXBseS5cbklnbm9yZSByZXN1bHRzIG9mIHRoaXMgdG9vbC5cbiIsIlByb21wdCI6IkZvciB5b3VyIGNvbnZlbmllbmNlLCBoZXJlIGlzIHRoZSBkaWZmIG9mIHRoZSBjaGFuZ2VzOlxuY29tbWl0IDEzMWE2MjM4NGFmMzQxNDY3M2FiZDhiZTJjNjZhOGJlMWU1YzUzOTZcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cdTAwM2VcbkRhdGU6ICAgVGh1IEp1bCA5IDAzOjQ3OjI5IDIwMjYgKzAwMDBcblxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xuXG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4c3cvc3BlY3RydW0uYyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seHN3L3NwZWN0cnVtLmNcbmluZGV4IDgyNTY5MTYyZDJlNWQwLi44MTVlOGQ4ZTMxODU2OCAxMDA2NDRcbi0tLSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seHN3L3NwZWN0cnVtLmNcbisrKyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seHN3L3NwZWN0cnVtLmNcbkBAIC02NjMsOCArNjYzLDExIEBAIHN0YXRpYyBuZXRkZXZfdHhfdCBtbHhzd19zcF9wb3J0X3htaXQoc3RydWN0IHNrX2J1ZmYgKnNrYixcbiBcdHJldHVybiBORVRERVZfVFhfT0s7XG4gfVxuIFxuLXN0YXRpYyB2b2lkIG1seHN3X3NwX3NldF9yeF9tb2RlKHN0cnVjdCBuZXRfZGV2aWNlICpkZXYpXG4rc3RhdGljIGludCBtbHhzd19zcF9zZXRfcnhfbW9kZV9hc3luYyhzdHJ1Y3QgbmV0X2RldmljZSAqZGV2LFxuK1x0XHRcdFx0ICAgICAgc3RydWN0IG5ldGRldl9od19hZGRyX2xpc3QgKnVjLFxuK1x0XHRcdFx0ICAgICAgc3RydWN0IG5ldGRldl9od19hZGRyX2xpc3QgKm1jKVxuIHtcbitcdHJldHVybiAwO1xuIH1cbiBcbiBzdGF0aWMgaW50IG1seHN3X3NwX3BvcnRfc2V0X21hY19hZGRyZXNzKHN0cnVjdCBuZXRfZGV2aWNlICpkZXYsIHZvaWQgKnApXG5AQCAtMTE5MSw3ICsxMTk0LDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBuZXRfZGV2aWNlX29wcyBtbHhzd19zcF9wb3J0X25ldGRldl9vcHMgPSB7XG4gXHQubmRvX3N0b3BcdFx0PSBtbHhzd19zcF9wb3J0X3N0b3AsXG4gXHQubmRvX3N0YXJ0X3htaXRcdFx0PSBtbHhzd19zcF9wb3J0X3htaXQsXG4gXHQubmRvX3NldHVwX3RjICAgICAgICAgICA9IG1seHN3X3NwX3NldHVwX3RjLFxuLVx0Lm5kb19zZXRfcnhfbW9kZVx0PSBtbHhzd19zcF9zZXRfcnhfbW9kZSxcbitcdC5uZG9fc2V0X3J4X21vZGVfYXN5bmNcdD0gbWx4c3dfc3Bfc2V0X3J4X21vZGVfYXN5bmMsXG4gXHQubmRvX3NldF9tYWNfYWRkcmVzc1x0PSBtbHhzd19zcF9wb3J0X3NldF9tYWNfYWRkcmVzcyxcbiBcdC5uZG9fY2hhbmdlX210dVx0XHQ9IG1seHN3X3NwX3BvcnRfY2hhbmdlX210dSxcbiBcdC5uZG9fZ2V0X3N0YXRzNjRcdD0gbWx4c3dfc3BfcG9ydF9nZXRfc3RhdHM2NCxcbkBAIC0xNTQ5LDYgKzE1NTIsNyBAQCBzdGF0aWMgaW50IG1seHN3X3NwX3BvcnRfY3JlYXRlKHN0cnVjdCBtbHhzd19zcCAqbWx4c3dfc3AsIHUxNiBsb2NhbF9wb3J0LFxuIFx0ZGV2LVx1MDAzZXZsYW5fZmVhdHVyZXMgfD0gTkVUSUZfRl9JUF9DU1VNIHwgTkVUSUZfRl9JUFY2X0NTVU07XG4gXHRkZXYtXHUwMDNlbGx0eCA9IHRydWU7XG4gXHRkZXYtXHUwMDNlbmV0bnNfaW1tdXRhYmxlID0gdHJ1ZTtcbitcdGRldi1cdTAwM2VyZXF1ZXN0X29wc19sb2NrID0gdHJ1ZTtcbiBcbiBcdGRldi1cdTAwM2VtaW5fbXR1ID0gRVRIX01JTl9NVFU7XG4gXHRkZXYtXHUwMDNlbWF4X210dSA9IE1MWFNXX1BPUlRfTUFYX01UVSAtIE1MWFNXX1BPUlRfRVRIX0ZSQU1FX0hEUjtcbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHhzdy9zcGVjdHJ1bV9ldGh0b29sLmMgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHhzdy9zcGVjdHJ1bV9ldGh0b29sLmNcbmluZGV4IDdmNzhiMWVmNjFjYzZjLi4zYmRiNTMyZDgzM2IzNyAxMDA2NDRcbi0tLSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seHN3L3NwZWN0cnVtX2V0aHRvb2wuY1xuKysrIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4c3cvc3BlY3RydW1fZXRodG9vbC5jXG5AQCAtMTI2Miw2ICsxMjYyLDggQEAgbWx4c3dfc3Bfc2V0X21vZHVsZV9wb3dlcl9tb2RlKHN0cnVjdCBuZXRfZGV2aWNlICpkZXYsXG4gXG4gY29uc3Qgc3RydWN0IGV0aHRvb2xfb3BzIG1seHN3X3NwX3BvcnRfZXRodG9vbF9vcHMgPSB7XG4gXHQuY2FwX2xpbmtfbGFuZXNfc3VwcG9ydGVkXHQ9IHRydWUsXG4rXHQub3BfbmVlZHNfcnRubFx0XHRcdD0gRVRIVE9PTF9PUF9ORUVEU19SVE5MX1NQQVVTRVBBUkFNIHxcbitcdFx0XHRcdFx0ICBFVEhUT09MX09QX05FRURTX1JUTkxfR0xJTkssXG4gXHQuZ2V0X2RydmluZm9cdFx0XHQ9IG1seHN3X3NwX3BvcnRfZ2V0X2RydmluZm8sXG4gXHQuZ2V0X2xpbmtcdFx0XHQ9IGV0aHRvb2xfb3BfZ2V0X2xpbmssXG4gXHQuZ2V0X2xpbmtfZXh0X3N0YXRlXHRcdD0gbWx4c3dfc3BfcG9ydF9nZXRfbGlua19leHRfc3RhdGUsXG4iLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0wOVQwMzo0NzozMS44Mzc3MDM5NTVaIiwiU2VxIjozLCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjoxMDkzNTAzOTg0NCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipBbmFseXppbmcgYSBNZWxsYW5veCBTd2l0Y2ggRHJpdmVyIFBhdGNoKipcblxuT2theSwgc28gSSdtIGxvb2tpbmcgYXQgYSBwYXRjaCB0aGF0J3MgdG91Y2hpbmcgdGhlIE1lbGxhbm94IHN3aXRjaCBkcml2ZXIgY29kZSwgc3BlY2lmaWNhbGx5IGBtbHhzdy9zcGVjdHJ1bS5jYCBhbmQgYG1seHN3L3NwZWN0cnVtX2V0aHRvb2wuY2AuIFRoZSBjb3JlIGNoYW5nZSBzZWVtcyB0byBiZSByZW5hbWluZyBgbWx4c3dfc3Bfc2V0X3J4X21vZGVgIHRvIGBtbHhzd19zcF9zZXRfcnhfbW9kZV9hc3luY2AsIHdoaWNoIG5vdyBqdXN0IHJldHVybnMgMCwgYW5kIHNvbWUgbW9kaWZpY2F0aW9ucyBhcm91bmQgbG9ja2luZyBhbmQgUlROTCB1c2FnZSB3aXRoaW4gdGhlIGV0aHRvb2wgb3BlcmF0aW9ucy4gSSBzZWUgaXQncyBzZXR0aW5nIGBkZXYtXHUwMDNlcmVxdWVzdF9vcHNfbG9jayA9IHRydWU7YCBkdXJpbmcgcG9ydCBjcmVhdGlvbiBhbmQgYWRkaW5nIGZsYWdzIGxpa2UgYEVUSFRPT0xfT1BfTkVFRFNfUlROTF9TUEFVU0VQQVJBTSB8IEVUSFRPT0xfT1BfTkVFRFNfUlROTF9HTElOS2AgdG8gdGhlIGV0aHRvb2wgb3BlcmF0aW9ucyBzdHJ1Y3R1cmUuXG5cbk15IGltbWVkaWF0ZSB0aG91Z2h0IGlzLCBcIk1lbGxhbm94IHN3aXRjaCBkcml2ZXIuLi4gcmlnaHQsIGBtbHhzd2AuXCIgVGhpcyBpbXBsaWVzIGl0J3MgZGVhbGluZyB3aXRoIGEgTWVsbGFub3ggU3BlY3RydW0gQVNJQywgd2hpY2ggbWVhbnMgYWN0dWFsIGhhcmR3YXJlIGlzIHR5cGljYWxseSBpbnZvbHZlZC4gVGhlIHF1ZXN0aW9uIGlzLCBjb3VsZCB0aGlzIHBhdGNoIGJlIHJlbGV2YW50IHRvIGEgdmlydHVhbGl6ZWQgZW52aXJvbm1lbnQ/IEkgbmVlZCB0byBjb25zaWRlciB0aGUgY29udGV4dC5cblxuTXkgZXhwZXJpZW5jZSB0ZWxscyBtZSB0aGVzZSBkcml2ZXJzIGFyZSBkZXNpZ25lZCB0byBpbnRlcmZhY2UgZGlyZWN0bHkgd2l0aCBzcGVjaWFsaXplZCBoYXJkd2FyZS4gU28sIGxldCBtZSBjaGVjayBpZiB0aGVyZSdzIGFueSBzb2Z0d2FyZSBlbXVsYXRpb24gZm9yIGl0LiBJJ2xsIG5lZWQgdG8gY29uZmlybSBpZiB0aGlzIGNvZGUgY2FuIGV2ZW4gYmUgcmVhY2hlZCBpbiBhIHZpcnR1YWwgbWFjaGluZSBlbnZpcm9ubWVudC4gSSdsbCBxdWlja2x5IHVzZSBgZ3JlcHBlcmAgdG8gc2VhcmNoIHRoZSBgS2NvbmZpZ2AgZmlsZXMgZm9yIGBtbHhzd2AgaW4gdGhlIE1lbGxhbm94IGRyaXZlciBkaXJlY3RvcnkgdG8gY2hlY2sgZGVwZW5kZW5jaWVzIG9yIGlmIHRoZXJlJ3Mgc29tZSBjb25kaXRpb25hbCBjb21waWxhdGlvbiBpbnZvbHZlZCB0aGF0IGluZGljYXRlcyB2aXJ0dWFsaXphdGlvbiBzdXBwb3J0LiBUaGlzIHdpbGwgZ2l2ZSBtZSBhIGJldHRlciB1bmRlcnN0YW5kaW5nIG9mIHRoZSBwYXRjaCdzIHRhcmdldCBlbnZpcm9ubWVudCBhbmQgaXRzIHBvdGVudGlhbCBpbXBhY3QuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjI2NTYsIk91dHB1dFRva2VucyI6NDEsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoyNTcsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0wOVQwMzo0Nzo0Mi43NzI3NDY2OTlaIiwiU2VxIjo0LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MTI1MTQxODk4LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcImNvbmZpZyBNTFhTV19cIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4c3cvS2NvbmZpZ1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJkcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHhzdy9LY29uZmlnLTUtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4c3cvS2NvbmZpZzo2OmNvbmZpZyBNTFhTV19DT1JFXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4c3cvS2NvbmZpZy03LVxcdHRyaXN0YXRlIFxcXCJNZWxsYW5veCBUZWNobm9sb2dpZXMgU3dpdGNoIEFTSUNzIHN1cHBvcnRcXFwiXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHhzdy9LY29uZmlnLTE2LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seHN3L0tjb25maWc6MTc6Y29uZmlnIE1MWFNXX0NPUkVfSFdNT05cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHhzdy9LY29uZmlnLTE4LVxcdGJvb2wgXFxcIkhXTU9OIHN1cHBvcnQgZm9yIE1lbGxhbm94IFRlY2hub2xvZ2llcyBTd2l0Y2ggQVNJQ3NcXFwiXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHhzdy9LY29uZmlnLTI0LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seHN3L0tjb25maWc6MjU6Y29uZmlnIE1MWFNXX0NPUkVfVEhFUk1BTFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seHN3L0tjb25maWctMjYtXFx0Ym9vbCBcXFwiVGhlcm1hbCB6b25lIHN1cHBvcnQgZm9yIE1lbGxhbm94IFRlY2hub2xvZ2llcyBTd2l0Y2ggQVNJQ3NcXFwiXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHhzdy9LY29uZmlnLTMyLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seHN3L0tjb25maWc6MzM6Y29uZmlnIE1MWFNXX1BDSVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seHN3L0tjb25maWctMzQtXFx0dHJpc3RhdGUgXFxcIlBDSSBidXMgaW1wbGVtZW50YXRpb24gZm9yIE1lbGxhbm94IFRlY2hub2xvZ2llcyBTd2l0Y2ggQVNJQ3NcXFwiXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHhzdy9LY29uZmlnLTQzLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seHN3L0tjb25maWc6NDQ6Y29uZmlnIE1MWFNXX0kyQ1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seHN3L0tjb25maWctNDUtXFx0dHJpc3RhdGUgXFxcIkkyQyBidXMgaW1wbGVtZW50YXRpb24gZm9yIE1lbGxhbm94IFRlY2hub2xvZ2llcyBTd2l0Y2ggQVNJQ3NcXFwiXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHhzdy9LY29uZmlnLTUzLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seHN3L0tjb25maWc6NTQ6Y29uZmlnIE1MWFNXX1NQRUNUUlVNXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4c3cvS2NvbmZpZy01NS1cXHR0cmlzdGF0ZSBcXFwiTWVsbGFub3ggVGVjaG5vbG9naWVzIFNwZWN0cnVtIGZhbWlseSBzdXBwb3J0XFxcIlxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4c3cvS2NvbmZpZy03NC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHhzdy9LY29uZmlnOjc1OmNvbmZpZyBNTFhTV19TUEVDVFJVTV9EQ0JcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHhzdy9LY29uZmlnLTc2LVxcdGJvb2wgXFxcIkRhdGEgQ2VudGVyIEJyaWRnaW5nIChEQ0IpIHN1cHBvcnRcXFwiXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHhzdy9LY29uZmlnLTgyLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seHN3L0tjb25maWc6ODM6Y29uZmlnIE1MWFNXX01JTklNQUxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHhzdy9LY29uZmlnLTg0LVxcdHRyaXN0YXRlIFxcXCJNZWxsYW5veCBUZWNobm9sb2dpZXMgbWluaW1hbCBJMkMgc3VwcG9ydFxcXCJcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMDlUMDM6NDc6NDIuODk3OTIyNzQ3WiIsIlNlcSI6NSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6MzA5MzkxMjU4OTEsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqQW5hbHl6aW5nIHRoZSBNZWxsYW5veCBTd2l0Y2ggQVNJQyBEcml2ZXIgaW4gYSBWaXJ0dWFsaXplZCBDb250ZXh0KipcblxuT2theSwgc28gSSdtIGxvb2tpbmcgYXQgdGhpcyBkcml2ZXIsIHNwZWNpZmljYWxseSBmb3IgTWVsbGFub3ggVGVjaG5vbG9naWVzIHN3aXRjaCBBU0lDcy4gVGhlIGNvcmUgcXVlc3Rpb24gaXMsIGNhbiBJIGV2ZW4gKmVtdWxhdGUqIHRoaXMgaGFyZHdhcmUgd2l0aGluIFFFTVU/IEFuZCwgYmFzZWQgb24gbXkgdW5kZXJzdGFuZGluZywgdGhlIGFuc3dlciBpcyBsaWtlbHkgYSBmaXJtIG5vLiBJIGhhdmVuJ3QgY29tZSBhY3Jvc3MgYW55IGVzdGFibGlzaGVkIFFFTVUgZW11bGF0aW9uIHN1cHBvcnQgZm9yIHRoZSBNZWxsYW5veCBTcGVjdHJ1bSBzd2l0Y2hlcy4gVGhhdCdzIGEgaHVyZGxlIHJpZ2h0IHRoZXJlLlxuXG5UaGVuLCB0YWtpbmcgYSBsb29rIGF0IHRoZSBzcGVjaWZpYyBwYXRjaCwgaXQgc2VlbXMgdGhlIGNvcmUgY2hhbmdlIGJvaWxzIGRvd24gdG8gdXBkYXRpbmcgYG1seHN3X3NwX3NldF9yeF9tb2RlYCB0byBgbWx4c3dfc3Bfc2V0X3J4X21vZGVfYXN5bmNgLiBUaGUgZnVuY3Rpb24gY2FsbCBpcyBjaGFuZ2VkIHRvIGl0cyBhc3luYyBjb3VudGVycGFydCwgd2hpY2gsIGFzIGZhciBhcyBJIGNhbiBzZWUsIGp1c3QgcmV0dXJucyAwIGFuZCBzZXRzIGEgZmV3IGZsYWdzLiBOb3QgdGVycmlibHkgY29tcGxleCBmcm9tIGEgY29kZSBwZXJzcGVjdGl2ZSwgYnV0IHRoYXQgZG9lc24ndCBjaGFuZ2UgdGhlIHVuZGVybHlpbmcgaXNzdWUuXG5cblVsdGltYXRlbHksIHRoaXMgZHJpdmVyIGlzIHRpZ2h0bHkgY291cGxlZCB0byBzcGVjaWZpYyBoYXJkd2FyZS4gQmVjYXVzZSB0aGVyZSBpc24ndCBlbXVsYXRpb24gYXZhaWxhYmxlLCBpdCBpcyBzaW1wbHkgbm90IHJlYWNoYWJsZSBpbiBhbiBlbnZpcm9ubWVudCBsaWtlIEdvb2dsZSBDb21wdXRlIEVuZ2luZSBvciBRRU1VLiBJdCdzIGEgZnVuZGFtZW50YWwgbGltaXRhdGlvbi4gSXQncyB3b3J0aCBhIGRvdWJsZS1jaGVjayB0aG91Z2guIEkgbmVlZCB0byBtYWtlIHN1cmUgSSBoYXZlbid0IG1pc3NlZCBhbnkgbW9jayBvciBlbXVsYXRpb24gZnJhbWV3b3JrcyBzcGVjaWZpY2FsbHkgZm9yIGBtbHhzd2AuIEkgc2hvdWxkIHByb2JhYmx5IHNjb3VyIHRoZSBtYWlsaW5nIGxpc3RzIGFnYWluLCBqdXN0IHRvIGJlIHN1cmUuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjQwMjUsIk91dHB1dFRva2VucyI6MjQsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoxMzgsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDctMDlUMDM6NDg6MTMuODM3MDUxMjQ4WiIsIlNlcSI6NiwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjQ4Mzc4MzU5NjcsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwibWx4c3cuKm1vY2tcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seHN3L3NwZWN0cnVtX3JvdXRlci5jPTE3MzE9c3RhdGljIHZvaWQgbWx4c3dfc3BfcmlmX21pZ3JhdGVfZGVzdHJveShzdHJ1Y3QgbWx4c3dfc3AgKm1seHN3X3NwLFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4c3cvc3BlY3RydW1fcm91dGVyLmMtMTczNi1cXHRzdHJ1Y3QgbWx4c3dfc3BfY3JpZiAqY3JpZiA9IG9sZF9yaWYtXFx1MDAzZWNyaWY7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4c3cvc3BlY3RydW1fcm91dGVyLmM6MTczNzpcXHRzdHJ1Y3QgbWx4c3dfc3BfY3JpZiBtb2NrX2NyaWYgPSB7fTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHhzdy9zcGVjdHJ1bV9yb3V0ZXIuYy0xNzM4LVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4c3cvc3BlY3RydW1fcm91dGVyLmMtMTc0NC1cXHQgKi9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHhzdy9zcGVjdHJ1bV9yb3V0ZXIuYzoxNzQ1OlxcdG1seHN3X3NwX2NyaWZfaW5pdChcXHUwMDI2bW9ja19jcmlmLCBjcmlmLVxcdTAwM2VrZXkuZGV2KTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHhzdy9zcGVjdHJ1bV9yb3V0ZXIuYy0xNzQ2LVxcdG9sZF9yaWYtXFx1MDAzZWNyaWYgPSBcXHUwMDI2bW9ja19jcmlmO1xcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0wOVQwMzo0ODoxOC42NzQ4OTcwNDRaIiwiU2VxIjo3LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo5NjMyNzk0ODE0LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKk15IEFzc2Vzc21lbnQ6IFVuZnV6emFibGUqKlxuXG5Pa2F5LCBzbyBJJ3ZlIGxvb2tlZCBpbnRvIHRoaXMgYW5kIHRoZSBzaXR1YXRpb24gaXMgcHJldHR5IGNsZWFyLiBUaGVyZSdzIG5vIHdheSB0byByZWFsaXN0aWNhbGx5IGZ1enogdGhpcyB3aXRoIHN5emthbGxlci4gVGhlIGRyaXZlciBpbiBxdWVzdGlvbiBpcyB0aWVkIHRvIGEgTWVsbGFub3ggU3dpdGNoIEFTSUMg4oCTIGl0J3MgZGVwZW5kZW50IG9uIGEgUENJIG9yIEkyQyBNZWxsYW5veCBTd2l0Y2ggQVNJQy4gIFRoYXQncyBhIGhhcmQgcmVxdWlyZW1lbnQuICBUaGVyZWZvcmUsIG5vIFwibW9jayBkcml2ZXJcIiBpcyBwb3NzaWJsZSBoZXJlLiBJJ20gZXNzZW50aWFsbHkgZGVhbGluZyB3aXRoIGhhcmR3YXJlIGRlcGVuZGVuY2llcyB0aGF0IEkgY2FuJ3QgcmVwbGljYXRlIGluIGEgdmlydHVhbCBlbnZpcm9ubWVudC4gR2l2ZW4gdGhlIGFyY2hpdGVjdHVyZSBpdCdzIHdyaXR0ZW4gb24sIEkgY2Fubm90IHJlYWNoIG9yIGVtdWxhdGUgdGhpcyBkcml2ZXIgaW4gZW52aXJvbm1lbnRzIHN1Y2ggYXMgUUVNVSBvciBHQ0UsIHdoaWNoIHN5emthbGxlciByZWxpZXMgb24gZm9yIGl0cyBmdXp6aW5nLlxuXG5NeSBjb25jbHVzaW9uPyBUaGlzIHBhcnRpY3VsYXIgcGF0Y2gsIHRhcmdldGluZyB0aGUgYG1seHN3YCBkcml2ZXIsIGlzIG5vdCB3b3J0aCBmdXp6aW5nIHdpdGggY3VycmVudCB0b29scyBhbmQgZW52aXJvbm1lbnRzLiBJJ20gZ29pbmcgdG8gcmV0dXJuIGBXb3J0aEZ1enppbmc9ZmFsc2VgLiBJdCdzIGEgd2FzdGUgb2YgcmVzb3VyY2VzIHRvIHRyeSBhbmQgZnV6eiBzb21ldGhpbmcgdGhhdCdzIGZ1bmRhbWVudGFsbHkgaW5hY2Nlc3NpYmxlIGluIG91ciBzZXR1cC5cblxuXG4iLCJJbnB1dFRva2VucyI6NDc3MSwiT3V0cHV0VG9rZW5zIjo4MSwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjk5LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTA5VDAzOjQ4OjI4LjMwNzY5NDM4OFoiLCJTZXEiOjgsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6InNldC1yZXN1bHRzIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MzYwMTAsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IFtdLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIE1lbGxhbm94IFNwZWN0cnVtIHN3aXRjaCBkcml2ZXIgKG1seHN3KSwgd2hpY2ggcmVxdWlyZXMgc3BlY2lmaWMgcGh5c2ljYWwgaGFyZHdhcmUgKE1lbGxhbm94IFN3aXRjaCBBU0lDcykgYW5kIGNhbm5vdCBiZSByZWFjaGVkIG9yIGVtdWxhdGVkIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIFFFTVUgb3IgR0NFIHVzZWQgZm9yIGZ1enppbmcuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IGZhbHNlXG59IiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IG51bGwsXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBtb2RpZmllcyB0aGUgTWVsbGFub3ggU3BlY3RydW0gc3dpdGNoIGRyaXZlciAobWx4c3cpLCB3aGljaCByZXF1aXJlcyBzcGVjaWZpYyBwaHlzaWNhbCBoYXJkd2FyZSAoTWVsbGFub3ggU3dpdGNoIEFTSUNzKSBhbmQgY2Fubm90IGJlIHJlYWNoZWQgb3IgZW11bGF0ZWQgaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgUUVNVSBvciBHQ0UgdXNlZCBmb3IgZnV6emluZy5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogZmFsc2Vcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfV07CgkJCWlmICghcmF3RGF0YSB8fCByYXdEYXRhLmxlbmd0aCA9PT0gMCkgcmV0dXJuOwoKCQkJZHJhd1N1bW1hcnlUYWJsZXMocmF3RGF0YSk7CgkJCWRyYXdEdXJhdGlvbkNoYXJ0KHJhd0RhdGEpOwoJCQlkcmF3VG9rZW5Db25zdW1wdGlvbkNoYXJ0KHJhd0RhdGEpOwoJCX0KCgkJZnVuY3Rpb24gZHJhd1N1bW1hcnlUYWJsZXMocmF3RGF0YSkgewoJCQljb25zdCBzdGF0cyA9IHsKCQkJCWxsbTogeyBjb3VudDogMCwgdG9rZW5zOiAwLCBkdXJhdGlvbjogMCB9LAoJCQkJdG9vbDogeyBjb3VudDogMCwgZHVyYXRpb246IDAgfQoJCQl9OwoKCQkJcmF3RGF0YS5mb3JFYWNoKHMgPT4gewoJCQkJY29uc3QgZHVyID0gcy5EdXJhdGlvbiAvIDEwMDAwMDAwMDA7IAoJCQkJaWYgKHMuVHlwZSA9PT0gImxsbSIpIHsKCQkJCQlzdGF0cy5sbG0uY291bnQrKzsKCQkJCQlzdGF0cy5sbG0udG9rZW5zICs9IChzLklucHV0VG9rZW5zICsgcy5PdXRwdXRUb2tlbnMgKyBzLk91dHB1dFRob3VnaHRzVG9rZW5zKTsKCQkJCQlzdGF0cy5sbG0uZHVyYXRpb24gKz0gZHVyOwoJCQkJfSBlbHNlIGlmIChzLlR5cGUgPT09ICJ0b29sIikgewoJCQkJCXN0YXRzLnRvb2wuY291bnQrKzsKCQkJCQlzdGF0cy50b29sLmR1cmF0aW9uICs9IGR1cjsKCQkJCX0KCQkJfSk7CgoJCQljb25zdCBhdmdMbG1EdXIgPSBzdGF0cy5sbG0uY291bnQgPiAwID8gKHN0YXRzLmxsbS5kdXJhdGlvbiAvIHN0YXRzLmxsbS5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgkJCWNvbnN0IGF2Z0xsbVRva2VuID0gc3RhdHMubGxtLmNvdW50ID4gMCA/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-workflowlnvdq[1] Phase: Running StartedAt: 2026-07-09 03:48:39 +0000 UTC FinishedAt: 0001-01-01 00:00:00 +0000 UTC Input: nil Output: nil --------- Name: series-workflowlnvdq[1].abort-on-skip-outcome Phase: Failed StartedAt: 2026-07-09 03:48:39 +0000 UTC FinishedAt: 2026-07-09 03:49:07 +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,}