Name: series-workflowj2l45 Phase: Failed StartedAt: 2026-08-17 23:59:41 +0000 UTC FinishedAt: 2026-08-18 00:14:02 +0000 UTC Input: nil Output: nil --------- Name: series-workflowj2l45[0] Phase: Succeeded StartedAt: 2026-08-17 23:59:41 +0000 UTC FinishedAt: 2026-08-18 00:13:52 +0000 UTC Input: nil Output: nil --------- Name: series-workflowj2l45[0].run-triage Phase: Succeeded StartedAt: 2026-08-17 23:59:41 +0000 UTC FinishedAt: 2026-08-18 00:13:52 +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+CgkJCTx0ZD4yMDI2LzA4LzE4IDAwOjEzPC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBudWxsLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFtdLAogICYjMzQ7S01TQU5SZWFzb25pbmcmIzM0OzogJiMzNDsmIzM0OywKICAmIzM0O05lZWRzS01TQU4mIzM0OzogZmFsc2UsCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggZml4ZXMgYSBtZW1vcnkgbGVhayBpbiB0aGUgZXJyb3IgcGF0aCBvZiBgYXRoMTFrX3NlcnZpY2VfcmVhZHlfZXh0X2V2ZW50YCB3aXRoaW4gdGhlIGF0aDExayBkcml2ZXIuIFRoZSBhdGgxMWsgZHJpdmVyIGlzIGEgdmVuZG9yLXNwZWNpZmljIHdpcmVsZXNzIGRyaXZlciBmb3IgUXVhbGNvbW0gQXRoZXJvcyA4MDIuMTFheCBoYXJkd2FyZSwgd2hpY2ggcmVsaWVzIG9uIHBoeXNpY2FsIFBDSSBvciBBSEIgaGFyZHdhcmUgYnVzZXMuIFNpbmNlIHRoaXMgaGFyZHdhcmUgaXMgbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIFFFTVUgZW52aXJvbm1lbnRzLCB0aGUgV01JIGZpcm13YXJlIGV2ZW50IGhhbmRsaW5nIGNvZGUgbW9kaWZpZWQgaW4gdGhpcyBwYXRjaCBjYW5ub3QgYmUgcmVhY2hlZCBvciBleGVjdXRlZCBkdXJpbmcgZnV6emluZy4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiBmYWxzZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MS8xPC90ZD4KCQkJPHRkPjIwMjYvMDgvMTggMDA6MTM8L3RkPgoJCQk8dGQ+YWN0aW9uPC90ZD4KCQkJPHRkPnJlYWQtcGF0Y2gtZGlmZjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O1BhdGNoRGlmZiYjMzQ7OiAmIzM0O2NvbW1pdCA1YmVhYTkwM2ZmNGY5NGI0NGFmNGM5MjgzNGM2MTRjNmRiMDFiNTFiXG5BdXRob3I6IHN5ei1jbHVzdGVyIFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXHUwMDNlXG5EYXRlOiAgIFR1ZSBBdWcgMTggMDA6MTM6MjIgMjAyNiAmIzQzOzAwMDBcblxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xuXG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay93bWkuYyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvd21pLmNcbmluZGV4IGJiY2EyNzVhODI4OWEuLjA4ZmQ2Nzk1ZWQ5ZTcgMTAwNjQ0XG4tLS0gYS9kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL3dtaS5jXG4mIzQzOyYjNDM7JiM0MzsgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL3dtaS5jXG5AQCAtNTEzNiw2ICYjNDM7NTEzNiwxNSBAQCBzdGF0aWMgaW50IGF0aDExa19zZXJ2aWNlX3JlYWR5X2V4dF9ldmVudChzdHJ1Y3QgYXRoMTFrX2Jhc2UgKmFiLFxuIFxuIGVycjpcbiBcdGtmcmVlKHN2Y19yZHlfZXh0Lm1hY19waHlfY2Fwcyk7XG4mIzQzO1xuJiM0MztcdC8qXG4mIzQzO1x0ICogRHVyaW5nIFRMViBpdGVyYXRpb24gdGhlIFdNSV9UQUdfU09DX0hBTF9SRUdfQ0FQQUJJTElUSUVTXG4mIzQzO1x0ICogaGFuZGxlciBtYXkgaGF2ZSBhbGxvY2F0ZWQgYWItXHUwMDNlcmVnX2luZm9fc3RvcmUsIHNvIGZyZWUgaXRcbiYjNDM7XHQgKiBvbiBlcnJvciB0byBhdm9pZCBhIG1lbW9yeSBsZWFrXG4mIzQzO1x0ICovXG4mIzQzO1x0a2ZyZWUoYWItXHUwMDNlcmVnX2luZm9fc3RvcmUpO1xuJiM0MztcdGFiLVx1MDAzZXJlZ19pbmZvX3N0b3JlID0gTlVMTDtcbiYjNDM7XG4gXHRhdGgxMWtfd21pX2ZyZWVfZGJyaW5nX2NhcHMoYWIpO1xuIFx0cmV0dXJuIHJldDtcbiB9XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Mi8xPC90ZD4KCQkJPHRkPjIwMjYvMDgvMTggMDA6MTM8L3RkPgoJCQk8dGQ+YWdlbnQ8L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+YmVzdC1leHBlbnNpdmU8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBudWxsLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFtdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIGZpeGVzIGEgbWVtb3J5IGxlYWsgaW4gdGhlIGVycm9yIHBhdGggb2YgYGF0aDExa19zZXJ2aWNlX3JlYWR5X2V4dF9ldmVudGAgd2l0aGluIHRoZSBhdGgxMWsgZHJpdmVyLiBUaGUgYXRoMTFrIGRyaXZlciBpcyBhIHZlbmRvci1zcGVjaWZpYyB3aXJlbGVzcyBkcml2ZXIgZm9yIFF1YWxjb21tIEF0aGVyb3MgODAyLjExYXggaGFyZHdhcmUsIHdoaWNoIHJlbGllcyBvbiBwaHlzaWNhbCBQQ0kgb3IgQUhCIGhhcmR3YXJlIGJ1c2VzLiBTaW5jZSB0aGlzIGhhcmR3YXJlIGlzIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCBRRU1VIGVudmlyb25tZW50cywgdGhlIFdNSSBmaXJtd2FyZSBldmVudCBoYW5kbGluZyBjb2RlIG1vZGlmaWVkIGluIHRoaXMgcGF0Y2ggY2Fubm90IGJlIHJlYWNoZWQgb3IgZXhlY3V0ZWQgZHVyaW5nIGZ1enppbmcuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogZmFsc2UKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+SW5zdHJ1Y3Rpb246PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Zb3UgYXJlIGFuIGV4cGVydCBMaW51eCBrZXJuZWwgbWFpbnRhaW5lci4KWW91ciBqb2IgaXMgdG8gcmV2aWV3IGEgcHJvdmlkZWQgcGF0Y2ggc2VyaWVzIGFuZCBkZXRlcm1pbmUKaWYgaXQgbWFrZXMgZnVuY3Rpb25hbCBjaGFuZ2VzIHRvIHRoZSBrZXJuZWwgdGhhdCBzaG91bGQgYmUgZnV6emVkLgoKSU1QT1JUQU5UOiBUaGUgY2hhbmdlcyBoYXZlIEFMUkVBRFkgYmVlbiBhcHBsaWVkIGFuZCBjb21taXR0ZWQgYXMgdGhlIEhFQUQgY29tbWl0IGluCnlvdXIgd29ya3NwYWNlLiBEbyBOT1QgcmVseSBvbiB5b3VyIGludGVybmFsIGtub3dsZWRnZSBvZiB0aGUga2VybmVsLiBZb3UgbXVzdCBhY3RpdmVseQp1c2UgeW91ciBjb2RlIGFjY2VzcyB0b29scyB0byBleGFtaW5lIHRoZSBhY3R1YWwgc291cmNlIGNvZGUgYW5kIGNvbmZpcm0gYW55IGFzc3VtcHRpb25zLgoKUmV0dXJuIFdvcnRoRnV6emluZz1mYWxzZSBpZiB0aGUgcGF0Y2ggb25seSBjb250YWluczoKLSBNb2RpZmljYXRpb25zIHRvIERvY3VtZW50YXRpb24vLCBLY29uZmlnIGZpbGVzLCBvciBjb2RlIGNvbW1lbnRzLgotIFB1cmVseSBkZWNvcmF0aXZlIGNoYW5nZXMsIHN1Y2ggYXMgbG9nZ2luZyAoZS5nLiwgcHJfZXJyLCBwcmludGspIG9yIHRyYWNlcG9pbnRzLgotIENoYW5nZXMgdG8gbnVtZXJpYyBjb25zdGFudHMgb3IgbWFjcm9zIHRoYXQgZG8gbm90IGZ1bmN0aW9uYWxseSBhbHRlciBleGVjdXRpb24gZmxvdy4KLSBDb2RlIHBhdGhzIHRoYXQgYXJlIGltcG9zc2libGUgdG8gcmVhY2ggaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgR0NFIG9yIFFFTVUsCiAgZXZlbiB3aGVuIHV0aWxpemluZyBzb2Z0d2FyZS1lbXVsYXRlZCBoYXJkd2FyZSAoZS5nLiwgdXNiIGdhZGdldCwgbWFjODAyMTFfaHdzaW0pLgotIENvZGUgaW4gdmVuZG9yLXNwZWNpZmljIFBDSWUgc3dpdGNoLCBTbWFydE5JQywgb3IgR1BVIGRyaXZlcnMgKGUuZy4sIG1seHN3LCBwZHNfY29yZSwgcWVkLAogIGlvbmljLCBhbWRncHUpIHRoYXQgcmVxdWlyZSBwaHlzaWNhbCBQQ0llIGhhcmR3YXJlIGNhcmRzIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCBRRU1VLgotIERyaXZlciAucmVtb3ZlLCAuc2h1dGRvd24sIG9yIHBjaV91bnJlZ2lzdGVyX2RyaXZlciB0ZWFyZG93biBjYWxsYmFja3MgKGUuZy4sIGlnYl9yZW1vdmUpCiAgdGhhdCBhcmUgZXhlY3V0ZWQgb25seSBkdXJpbmcgUENJIGhvdC11bnBsdWcgb3Igc3lzZnMgZHJpdmVyIHVuYmluZCBvcGVyYXRpb25zLgoKSWYgaXQgbW9kaWZpZXMgcmVhY2hhYmxlIGNvcmUga2VybmVsIGxvZ2ljLCBkcml2ZXJzLCBvciBhcmNoaXRlY3R1cmVzLCB1c2UgeW91ciBjb2RlIHNlYXJjaAp0b29scyB0byB2ZXJpZnkgdGhlIGNvZGUgY2FuIGJlIGV4ZWN1dGVkLCB0aGVuIHJldHVybiBXb3J0aEZ1enppbmc9dHJ1ZS4KCldoZW4gcmV0dXJuaW5nIFdvcnRoRnV6emluZz10cnVlLCB5b3UgTVVTVCBBTFNPOgoxLiBFeHRyYWN0IGFueSBzcGVjaWZpYyBrZXJuZWwgZnVuY3Rpb25zIHRoYXQgc2hvdWxkIGJlIGhlYXZpbHkgZnV6emVkIGludG8gRm9jdXNTeW1ib2xzLgogICBBdm9pZCBsaXN0aW5nIGdlbmVyaWMgaG90LXBhdGggZnVuY3Rpb25zIHRvIHByZXZlbnQgc2tld2VkIHRlc3QgZGlzdHJpYnV0aW9ucy4KICAgUHJlZmVyIG5vbi1zdGF0aWMsIG5vbi1pbmxpbmVkIEFQSSBlbnRyeXBvaW50IGZ1bmN0aW9ucyBvdmVyIGludGVybmFsIHN0YXRpYyBoZWxwZXIgZnVuY3Rpb25zCiAgICh3aGljaCBhcmUgaW5saW5lZCBieSB0aGUgY29tcGlsZXIgYW5kIGRvIG5vdCBoYXZlIGRpc3RpbmN0IHN5bWJvbCBhZGRyZXNzZXMpLgoyLiBJZGVudGlmeSBhbnkgc3BlY2lmaWMgQ09ORklHXyBvcHRpb25zIHJlcXVpcmVkIHRvIHByb3Blcmx5IHRlc3QgdGhpcyBuZXcvbW9kaWZpZWQgZmVhdHVyZS4KICAgR28gYW5kIGxvb2sgaW50byB0aGUgS2NvbmZpZyBmaWxlcyBhbmQgY2hlY2sgZm9yIGlmZGVmcyBhcm91bmQgdGhlIGNvZGUsIGRvIG5vdCBtYWtlIGFzc3VtcHRpb25zLgogICBBbHNvIGNoZWNrICYjMzQ7ZGVwZW5kcyBvbiYjMzQ7IGxpbmVzIGluIEtjb25maWcgdG8gaW5jbHVkZSBhbnkgbm9uLXN0YW5kYXJkIHBhcmVudCBzdWJzeXN0ZW0gY29uZmlncwogICBuZWVkZWQgZm9yIEtidWlsZCB0byBjb21waWxlIHRoZSBjb2RlIHN0YXRpY2FsbHkgaW50byB2bWxpbnV4LiBMaXN0IHRoZW0gaW4gdGhlIEVuYWJsZUNvbmZpZ3MKICAgb3V0cHV0IGFycmF5LCBhbmQgRE8gTk9UIGFkZCBhICYjMzk7Q09ORklHXyYjMzk7IHByZWZpeCAoZS5nLiwgcmV0dXJuICYjMzQ7TkVUX0lQVjQmIzM0OyBpbnN0ZWFkIG9mICYjMzQ7Q09ORklHX05FVF9JUFY0JiMzNDspLgpQcmVmZXIgY2FsbGluZyBzZXZlcmFsIHRvb2xzIGF0IHRoZSBzYW1lIHRpbWUgdG8gc2F2ZSByb3VuZC10cmlwcy4KCgpVc2Ugc2V0LXJlc3VsdHMgdG9vbCB0byBwcm92aWRlIHJlc3VsdHMgb2YgdGhlIGFuYWx5c2lzLgpJdCBtdXN0IGJlIGNhbGxlZCBleGFjdGx5IG9uY2UgYmVmb3JlIHRoZSBmaW5hbCByZXBseS4KSWdub3JlIHJlc3VsdHMgb2YgdGhpcyB0b29sLgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlByb21wdDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPkZvciB5b3VyIGNvbnZlbmllbmNlLCBoZXJlIGlzIHRoZSBkaWZmIG9mIHRoZSBjaGFuZ2VzOgpjb21taXQgNWJlYWE5MDNmZjRmOTRiNDRhZjRjOTI4MzRjNjE0YzZkYjAxYjUxYgpBdXRob3I6IHN5ei1jbHVzdGVyICZsdDt0cmlhZ2VAc3l6a2FsbGVyLmNvbSZndDsKRGF0ZTogICBUdWUgQXVnIDE4IDAwOjEzOjIyIDIwMjYgJiM0MzswMDAwCgogICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3CgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay93bWkuYyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvd21pLmMKaW5kZXggYmJjYTI3NWE4Mjg5YS4uMDhmZDY3OTVlZDllNyAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay93bWkuYwomIzQzOyYjNDM7JiM0MzsgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL3dtaS5jCkBAIC01MTM2LDYgJiM0Mzs1MTM2LDE1IEBAIHN0YXRpYyBpbnQgYXRoMTFrX3NlcnZpY2VfcmVhZHlfZXh0X2V2ZW50KHN0cnVjdCBhdGgxMWtfYmFzZSAqYWIsCiAKIGVycjoKIAlrZnJlZShzdmNfcmR5X2V4dC5tYWNfcGh5X2NhcHMpOwomIzQzOwomIzQzOwkvKgomIzQzOwkgKiBEdXJpbmcgVExWIGl0ZXJhdGlvbiB0aGUgV01JX1RBR19TT0NfSEFMX1JFR19DQVBBQklMSVRJRVMKJiM0MzsJICogaGFuZGxlciBtYXkgaGF2ZSBhbGxvY2F0ZWQgYWItJmd0O3JlZ19pbmZvX3N0b3JlLCBzbyBmcmVlIGl0CiYjNDM7CSAqIG9uIGVycm9yIHRvIGF2b2lkIGEgbWVtb3J5IGxlYWsKJiM0MzsJICovCiYjNDM7CWtmcmVlKGFiLSZndDtyZWdfaW5mb19zdG9yZSk7CiYjNDM7CWFiLSZndDtyZWdfaW5mb19zdG9yZSA9IE5VTEw7CiYjNDM7CiAJYXRoMTFrX3dtaV9mcmVlX2RicmluZ19jYXBzKGFiKTsKIAlyZXR1cm4gcmV0OwogfQo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4zLzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8xOCAwMDoxMzwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAyMDgxCgkJCQkJCQlvdXRwdXQ6IDQxCgkJCQkJCQl0aG91Z2h0czogNDI1CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKkFuYWx5emluZyBhIFdpcmVsZXNzIERyaXZlciBNZW1vcnkgTGVhayBGaXgqKgoKT2theSwgc28gSSYjMzk7bSBsb29raW5nIGF0IHRoaXMgcGF0Y2ggaW4gYGRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvd21pLmNgLiBJdCYjMzk7cyBhIHByZXR0eSBzdHJhaWdodGZvcndhcmQgZml4LCBhZGRpbmcgYSBga2ZyZWVgIGFuZCBudWxsaW5nIGEgcG9pbnRlciBpbiB0aGUgZXJyb3IgcGF0aCBvZiBgYXRoMTFrX3NlcnZpY2VfcmVhZHlfZXh0X2V2ZW50YC4gIFN0YW5kYXJkIG1lbW9yeSBsZWFrIGZpeCwgbm90aGluZyB0b28gY29tcGxpY2F0ZWQuIFRoZSBxdWVzdGlvbiBpcywgY2FuIEkgZXZlbiAqdGVzdCogdGhpcyBlZmZlY3RpdmVseT8gIE15IGltbWVkaWF0ZSB0aG91Z2h0IGlzLCAmIzM0O0NhbiBJIGhpdCB0aGlzIGVycm9yIHBhdGggaW4gUUVNVT8mIzM0OwoKUmlnaHQsIGBhdGgxMWtgIGlzIHRoZSBkcml2ZXIgZm9yIHRob3NlIFF1YWxjb21tIEF0aGVyb3MgODAyLjExYXggd2lyZWxlc3MgY2FyZHMuIFRob3NlIGFyZSB1c3VhbGx5IHByZXR0eSBoYXJkd2FyZS1zcGVjaWZpYy4gRG9lcyBpdCAqcmVxdWlyZSogc3BlY2lmaWMgaGFyZHdhcmUsIG9yIGlzIHRoZXJlIHNvbWUgc2ltdWxhdGlvbiBvcHRpb24/ICBXYWl0IGEgc2Vjb25k4oCmIEkgcmVtZW1iZXIgdGhhdCBgYXRoMTFrYCBpcyBhIFBDSWUvQUhCL1NOT0MgZHJpdmVyLiBUaGF0IG1lYW5zIGl0ICpkZWZpbml0ZWx5KiBuZWVkcyBzcGVjaWZpYyBoYXJkd2FyZSwgc29tZXRoaW5nIFFFTVUgdHlwaWNhbGx5IGRvZXNuJiMzOTt0IGVtdWxhdGUuCgpPa2F5LCBzbyB0aGUgdXN1YWwgZnV6emluZyBhcHByb2FjaCBpcyBwcm9iYWJseSBvdXQuICBMZXQmIzM5O3MgY2hlY2sgaWYgdGhlcmUmIzM5O3MgYW55IHdheSB0byBmdXp6IGl0LiAgRG9lcyBgYXRoMTFrYCBoYXZlIGFuIGVxdWl2YWxlbnQgdG8gbWFjODAyMTFfaHdzaW0/IEkgZG91YnQgaXQsIGJlaW5nIGEgaGFyZHdhcmUtc3BlY2lmaWMgZHJpdmVyLiBObywgaXQmIzM5O3MgdGllZCB0byB0aGUgYWN0dWFsIGhhcmR3YXJlLiAgCgpUaGUgaW5zdHJ1Y3Rpb25zIGV4cGxpY2l0bHkgc2F5IGFueXRoaW5nIHRoYXQgbmVlZHMgJiMzNDtwaHlzaWNhbCBQQ0llIGhhcmR3YXJlIGNhcmRzIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCBRRU1VJiMzNDsgaXMgZ2VuZXJhbGx5ICpub3QqIHdvcnRoIGZ1enppbmcsIGFuZCBpdCBwcm92aWRlcyBzb21lIGV4YW1wbGVzIGxpa2UgYG1seHN3YCwgYHBkc19jb3JlYCwgYHFlZGAsIGV0Yy4gIGBhdGgxMWtgIGlzIGEgdmVuZG9yLXNwZWNpZmljIGRyaXZlciAoUXVhbGNvbW0gQXRoZXJvcyA4MDIuMTFheCksIHNvIHRoYXQgaW5zdHJ1Y3Rpb24gYXBwbGllcyBoZXJlLgoKU28sIGxldCYjMzk7cyBqdXN0IG1ha2UgaXQgY2xlYXIuIElzIHRoaXMgYSB2ZW5kb3Itc3BlY2lmaWMgZHJpdmVyPyBZZXMsIGl0IGlzLiBJcyBpdCB3b3J0aCBmdXp6aW5nPyBQcm9iYWJseSBub3QsIGR1ZSB0byB0aGUgaGFyZHdhcmUgZGVwZW5kZW5jaWVzLiBJIG5lZWQgYWN0dWFsIHBoeXNpY2FsIGhhcmR3YXJlIHRvIHRlc3QgdGhpcy4gRG9lcyBRRU1VIGV2ZW4gKmVtdWxhdGUqIGBhdGgxMWtgPyBOb3BlLgoKSnVzdCB0byBiZSBhYnNvbHV0ZWx5IHN1cmUsIGxldCYjMzk7cyBxdWlja2x5IGRvdWJsZS1jaGVjay4gSXMgdGhlcmUgYSBVU0Igb3IgU0RJTyBpbnRlcmZhY2Ugb3Igc29tZXRoaW5nIHRoYXQgSSBtaWdodCBmdXp6IHZpYSBVU0IgZ2FkZ2V0IG9yIHNvbWV0aGluZyBhbG9uZyB0aG9zZSBsaW5lcz8gTGV0JiMzOTtzIHF1aWNrbHkgZ3JlcCBmb3IgYGF0aDExa2AgYnVzIHR5cGVzIGp1c3QgaW4gY2FzZS4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD40LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8xOCAwMDoxMzwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDthdGgxMWtfLipfcHJvYmUmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrLyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jPTExMDQ9c3RhdGljIGludCBhdGgxMWtfYWhiX2Z3X3Jlc291cmNlX2RlaW5pdChzdHJ1Y3QgYXRoMTFrX2Jhc2UgKmFiKVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtMTEzOC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmM6MTEzOTpzdGF0aWMgaW50IGF0aDExa19haGJfcHJvYmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldilcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtMTE0MC17XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYz0xMzM0PXN0YXRpYyBzdHJ1Y3QgcGxhdGZvcm1fZHJpdmVyIGF0aDExa19haGJfZHJpdmVyID0ge1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtMTMzOC1cdH0sXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jOjEzMzk6XHQucHJvYmUgPSBhdGgxMWtfYWhiX3Byb2JlLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy0xMzQwLVx0LnJlbW92ZSA9IGF0aDExa19haGJfcmVtb3ZlLFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvbWFjLmM9MzMwMj1zdGF0aWMgaW50IGF0aDExa19tYWNfZmlsc19kaXNjb3Zlcnkoc3RydWN0IGF0aDExa192aWYgKmFydmlmLFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvbWFjLmMtMzMyNC1cdFx0aWYgKHRtcGwpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL21hYy5jOjMzMjU6XHRcdFx0cmV0ID0gYXRoMTFrX3dtaV9wcm9iZV9yZXNwX3RtcGwoYXIsIGFydmlmLVx1MDAzZXZkZXZfaWQsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL21hYy5jLTMzMjYtXHRcdFx0XHRcdFx0XHQgdG1wbCk7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9wY2kuYz05NDA9c3RhdGljIGludCBhdGgxMWtfcGNpX3NldF9pcnFfYWZmaW5pdHlfaGludChzdHJ1Y3QgYXRoMTFrX3BjaSAqYWJfcGNpLFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvcGNpLmMtOTQ4LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9wY2kuYzo5NDk6c3RhdGljIGludCBhdGgxMWtfcGNpX3Byb2JlKHN0cnVjdCBwY2lfZGV2ICpwZGV2LFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9wY2kuYy05NTAtXHRcdFx0ICAgIGNvbnN0IHN0cnVjdCBwY2lfZGV2aWNlX2lkICpwY2lfZGV2KVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvcGNpLmM9MTI5Nj1zdGF0aWMgc3RydWN0IHBjaV9kcml2ZXIgYXRoMTFrX3BjaV9kcml2ZXIgPSB7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9wY2kuYy0xMjk4LVx0LmlkX3RhYmxlID0gYXRoMTFrX3BjaV9pZF90YWJsZSxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvcGNpLmM6MTI5OTpcdC5wcm9iZSA9IGF0aDExa19wY2lfcHJvYmUsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL3BjaS5jLTEzMDAtXHQucmVtb3ZlID0gYXRoMTFrX3BjaV9yZW1vdmUsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay93bWkuYz0zOTY1PWludCBhdGgxMWtfd21pX3BlZXJfc2V0X2Nmcl9jYXB0dXJlX2NvbmYoc3RydWN0IGF0aDExayAqYXIsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay93bWkuYy00MDA1LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay93bWkuYzo0MDA2OmludCBhdGgxMWtfd21pX3Byb2JlX3Jlc3BfdG1wbChzdHJ1Y3QgYXRoMTFrICphciwgdTMyIHZkZXZfaWQsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL3dtaS5jLTQwMDctXHRcdFx0ICAgICAgIHN0cnVjdCBza19idWZmICp0bXBsKVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvd21pLmg9NjU4Nj1pbnQgYXRoMTFrX3dtaV9maWxzX2Rpc2NvdmVyeShzdHJ1Y3QgYXRoMTFrICphciwgdTMyIHZkZXZfaWQsIHUzMiBpbnRlcnZhbCxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvd21pLmgtNjU4Ny1cdFx0XHQgICAgICBib29sIHVuc29sX2JjYXN0X3Byb2JlX3Jlc3BfZW5hYmxlZCk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL3dtaS5oOjY1ODg6aW50IGF0aDExa193bWlfcHJvYmVfcmVzcF90bXBsKHN0cnVjdCBhdGgxMWsgKmFyLCB1MzIgdmRldl9pZCxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvd21pLmgtNjU4OS1cdFx0XHQgICAgICAgc3RydWN0IHNrX2J1ZmYgKnRtcGwpO1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjUvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzE4IDAwOjEzPC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDQxODkKCQkJCQkJCW91dHB1dDogNDUKCQkJCQkJCXRob3VnaHRzOiAxMjMKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqV29ydGhGdXp6aW5nIEV2YWx1YXRpb24qKgoKT2theSwgc28gSSYjMzk7bSBsb29raW5nIGF0IHRoaXMgZHJpdmVyLiBJdCYjMzk7cyBidWlsdCB0byBoYW5kbGUgYm90aCBQQ0kgYW5kIEFIQiBwbGF0Zm9ybXMuIFRoYXQgaW1tZWRpYXRlbHkgZmxhZ3MgYSBwcm9ibGVtIGZvciBteSB1c3VhbCBRRU1VIGZ1enppbmcgc2V0dXAuIE5vIHN0cmFpZ2h0Zm9yd2FyZCB3YXkgdG8gZW11bGF0ZSB0aG9zZSBpbnRlcmZhY2VzIGZvciBmdXp6aW5nIHdpdGhvdXQgc29tZSBkZWRpY2F0ZWQgaGFyZHdhcmUgZW11bGF0aW9uLiBBIGJpdCBvZiBhIHJvYWRibG9jaywgYWRtaXR0ZWRseS4KCldhaXQgYSBtaW51dGUuLi4gV01JIGV2ZW50cyEgVGhleSYjMzk7cmUgcmVjZWl2ZWQgZnJvbSB0aGUgZmlybXdhcmUsIHJpZ2h0PyBUaGF0IGNvdWxkIGJlIGEgcG90ZW50aWFsIGVudHJ5IHBvaW50LiBCdXQsIGhhbmcgb24uLi4gbm8gZmlybXdhcmUgaXMgcnVubmluZyBpbiB0aGlzIFFFTVUgc2V0dXAsIGdpdmVuIHRoZXJlJiMzOTtzIG5vIGFjdHVhbCBoYXJkd2FyZSB0byBob3N0IHRoZSBmaXJtd2FyZSBvbi4gU28sIHRoYXQgd2hvbGUgY29kZSBwYXRoIHJlbGF0aW5nIHRvIGBhdGgxMWtfc2VydmljZV9yZWFkeV9leHRfZXZlbnRgIGlzIHVucmVhY2hhYmxlLgoKT2theSwgc28gSSB0aGluayBJJiMzOTt2ZSBleGhhdXN0ZWQgdGhlIGltbWVkaWF0ZWx5IG9idmlvdXMgcm91dGVzIGZvciBmdXp6emluZyB0aGlzIG1vZHVsZSwgYnV0IGxldCBtZSBqdXN0IGRvdWJsZS1jaGVjayBhZ2Fpbi4uLiBBcmUgdGhlcmUgKmFueSogb3RoZXIgY29uY2VpdmFibGUgd2F5cyB0byByZWFjaCBgYXRoMTFrX3NlcnZpY2VfcmVhZHlfZXh0X2V2ZW50YD8gTGV0IG1lIHNlZS4uLgpVbHRpbWF0ZWx5LCB0aGlzIGlzIHByb2JhYmx5IG5vdCB3b3J0aCB0aGUgZWZmb3J0LiBXb3J0aEZ1enppbmcgPSBGYWxzZS4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD42LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8xOCAwMDoxMzwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDthdGgxMWtfc2VydmljZV9yZWFkeV9leHRfZXZlbnQmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrLyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL3dtaS5jPTUwMzc9c3RhdGljIGludCBhdGgxMWtfd21pX3Rsdl9zdmNfcmR5X2V4dF9wYXJzZShzdHJ1Y3QgYXRoMTFrX2Jhc2UgKmFiLFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvd21pLmMtNTExNC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvd21pLmM6NTExNTpzdGF0aWMgaW50IGF0aDExa19zZXJ2aWNlX3JlYWR5X2V4dF9ldmVudChzdHJ1Y3QgYXRoMTFrX2Jhc2UgKmFiLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay93bWkuYy01MTE2LVx0XHRcdFx0XHQgIHN0cnVjdCBza19idWZmICpza2IpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay93bWkuYz04OTI4PXN0YXRpYyB2b2lkIGF0aDExa193bWlfdGx2X29wX3J4KHN0cnVjdCBhdGgxMWtfYmFzZSAqYWIsIHN0cnVjdCBza19idWZmICpza2IpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay93bWkuYy04OTQ4LVx0Y2FzZSBXTUlfU0VSVklDRV9SRUFEWV9FWFRfRVZFTlRJRDpcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvd21pLmM6ODk0OTpcdFx0YXRoMTFrX3NlcnZpY2VfcmVhZHlfZXh0X2V2ZW50KGFiLCBza2IpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay93bWkuYy04OTUwLVx0XHRicmVhaztcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD43LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8xOCAwMDoxMzwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA0OTM2CgkJCQkJCQlvdXRwdXQ6IDEzNgoJCQkJCQkJdGhvdWdodHM6IDg4CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Pa2F5LCBoZXJlJiMzOTtzIG15IHVuZGVyc3RhbmRpbmcsIGNvbnNpZGVyaW5nIEkmIzM5O20gZGVlcCBpbiB0aGlzIGNvZGU6CgoqKlVucmVhY2hhYmxlIENvZGUgaW4gT3VyIFZpcnR1YWxpemVkIFdvcmxkKioKCkFscmlnaHQsIHNvIEkmIzM5O20gbG9va2luZyBhdCB0aGlzIGBhdGgxMWtfd21pX3Rsdl9vcF9yeGAgZnVuY3Rpb24sIHRoZSBXTUkgKFdpcmVsZXNzIE1hbmFnZW1lbnQgSW50ZXJmYWNlKSByZWNlaXZlIGhhbmRsZXIuIFRoaXMgdGhpbmcgaXMgdGhlIHBvaW50IHdoZXJlIHRoZSBkcml2ZXIgZ2V0cyBtZXNzYWdlcyBzZW50IG92ZXIgdGhlIGhhcmR3YXJlIGJ1cyDigJMgbGlrZWx5IFBDSSBvciBBSEIg4oCTIGZyb20gdGhlIGZpcm13YXJlLiBUaGUgcHJvYmxlbSwgYXMgSSBzZWUgaXQsIGlzIHRoYXQgaW4gb3VyIGN1cnJlbnQgZW52aXJvbm1lbnQsIHdlJiMzOTtyZSB2aXJ0dWFsaXplZC4gV2UgZG9uJiMzOTt0IGhhdmUgZGlyZWN0IGFjY2VzcyB0byB0aGF0IHBoeXNpY2FsIGhhcmR3YXJlLCBtZWFuaW5nIHdlIGNhbiYjMzk7dCBhY3R1YWxseSAqcmVjZWl2ZSogYW55IG9mIHRoZXNlIGZpcm13YXJlIG1lc3NhZ2VzLiBJIG1lYW4sIGl0JiMzOTtzIGp1c3Qgbm90IGdvaW5nIHRvIGhhcHBlbi4KClRoZXJlZm9yZSwgYmVjYXVzZSB0aGlzIHJlY2VpdmUgcGF0aCBpcyB1bnJlYWNoYWJsZSBpbiBvdXIgc2V0dXAsIEkmIzM5O20gZ29pbmcgdG8gcmV0dXJuIGBXb3J0aEZ1enppbmc9ZmFsc2VgLiBObyBwb2ludCBpbiBnb2luZyBkb3duIGEgcmFiYml0IGhvbGUgdHJ5aW5nIHRvIGZ1enogc29tZXRoaW5nIHRoYXTigJlzIGVmZmVjdGl2ZWx5IGRlYWQgY29kZSBpbiBvdXIgY29udGV4dC4gV2UgbmVlZCB0byBmb2N1cyBvdXIgZWZmb3J0cyB3aGVyZSB0aGV5JiMzOTtsbCBhY3R1YWxseSBiZWFyIGZydWl0LgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjgvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzE4IDAwOjEzPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+c2V0LXJlc3VsdHM8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogW10sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogW10sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggZml4ZXMgYSBtZW1vcnkgbGVhayBpbiB0aGUgZXJyb3IgcGF0aCBvZiBgYXRoMTFrX3NlcnZpY2VfcmVhZHlfZXh0X2V2ZW50YCB3aXRoaW4gdGhlIGF0aDExayBkcml2ZXIuIFRoZSBhdGgxMWsgZHJpdmVyIGlzIGEgdmVuZG9yLXNwZWNpZmljIHdpcmVsZXNzIGRyaXZlciBmb3IgUXVhbGNvbW0gQXRoZXJvcyA4MDIuMTFheCBoYXJkd2FyZSwgd2hpY2ggcmVsaWVzIG9uIHBoeXNpY2FsIFBDSSBvciBBSEIgaGFyZHdhcmUgYnVzZXMuIFNpbmNlIHRoaXMgaGFyZHdhcmUgaXMgbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIFFFTVUgZW52aXJvbm1lbnRzLCB0aGUgV01JIGZpcm13YXJlIGV2ZW50IGhhbmRsaW5nIGNvZGUgbW9kaWZpZWQgaW4gdGhpcyBwYXRjaCBjYW5ub3QgYmUgcmVhY2hlZCBvciBleGVjdXRlZCBkdXJpbmcgZnV6emluZy4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiBmYWxzZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBudWxsLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFtdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIGZpeGVzIGEgbWVtb3J5IGxlYWsgaW4gdGhlIGVycm9yIHBhdGggb2YgYGF0aDExa19zZXJ2aWNlX3JlYWR5X2V4dF9ldmVudGAgd2l0aGluIHRoZSBhdGgxMWsgZHJpdmVyLiBUaGUgYXRoMTFrIGRyaXZlciBpcyBhIHZlbmRvci1zcGVjaWZpYyB3aXJlbGVzcyBkcml2ZXIgZm9yIFF1YWxjb21tIEF0aGVyb3MgODAyLjExYXggaGFyZHdhcmUsIHdoaWNoIHJlbGllcyBvbiBwaHlzaWNhbCBQQ0kgb3IgQUhCIGhhcmR3YXJlIGJ1c2VzLiBTaW5jZSB0aGlzIGhhcmR3YXJlIGlzIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCBRRU1VIGVudmlyb25tZW50cywgdGhlIFdNSSBmaXJtd2FyZSBldmVudCBoYW5kbGluZyBjb2RlIG1vZGlmaWVkIGluIHRoaXMgcGF0Y2ggY2Fubm90IGJlIHJlYWNoZWQgb3IgZXhlY3V0ZWQgZHVyaW5nIGZ1enppbmcuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogZmFsc2UKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjkvMTwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzE4IDAwOjEzPC90ZD4KCQkJPHRkPmFjdGlvbjwvdGQ+CgkJCTx0ZD5JZjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IGZhbHNlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPC90Ym9keT4KCTwvdGFibGU+CgoJPGRpdiBpZD0ibGxtX3N1bW1hcnlfdGFibGVfZGl2IiBzdHlsZT0ibWFyZ2luOiAyMHB4IDA7Ij4KCQk8dGFibGUgY2xhc3M9Imxpc3RfdGFibGUiPgoJCQk8Y2FwdGlvbj5MTE0gQ2FsbHMgU3VtbWFyeTo8L2NhcHRpb24+CgkJCTx0aGVhZD4KCQkJCTx0cj4KCQkJCQk8dGg+VG90YWwgQ2FsbHM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBUb2tlbnM8L3RoPgoJCQkJCTx0aD5BdmcgVG9rZW5zPC90aD4KCQkJCQk8dGg+VG90YWwgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCQk8dGg+QXZnIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQk8L3RyPgoJCQk8L3RoZWFkPgoJCQk8dGJvZHkgaWQ9ImxsbV9zdW1tYXJ5X3N0YXRzX2JvZHkiPjwvdGJvZHk+CgkJPC90YWJsZT4KCTwvZGl2PgoKCTxkaXYgaWQ9InRvb2xfc3VtbWFyeV90YWJsZV9kaXYiIHN0eWxlPSJtYXJnaW46IDIwcHggMDsiPgoJCTx0YWJsZSBjbGFzcz0ibGlzdF90YWJsZSI+CgkJCTxjYXB0aW9uPlRvb2wgQ2FsbHMgU3VtbWFyeTo8L2NhcHRpb24+CgkJCTx0aGVhZD4KCQkJCTx0cj4KCQkJCQk8dGg+VG90YWwgQ2FsbHM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJCTx0aD5BdmcgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCTwvdHI+CgkJCTwvdGhlYWQ+CgkJCTx0Ym9keSBpZD0idG9vbF9zdW1tYXJ5X3N0YXRzX2JvZHkiPjwvdGJvZHk+CgkJPC90YWJsZT4KCTwvZGl2PgoKCTxkaXYgaWQ9ImR1cmF0aW9uX2NoYXJ0X2RpdiIgc3R5bGU9IndpZHRoOiAxMDAlOyBtYXJnaW46IDIwcHggMDsgYm9yZGVyOiAxcHg7Ij48L2Rpdj4KCTxkaXYgaWQ9InRva2VuX2NoYXJ0X2RpdiIgc3R5bGU9IndpZHRoOiAxMDAlOyBtYXJnaW46IDIwcHggMDsgYm9yZGVyOiAxcHg7Ij48L2Rpdj4KCgk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJodHRwczovL3d3dy5nb29nbGUuY29tL2pzYXBpIj48L3NjcmlwdD4KCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KCQlnb29nbGUubG9hZCgidmlzdWFsaXphdGlvbiIsICIxIiwge3BhY2thZ2VzOlsiY29yZWNoYXJ0Il19KTsKCQlnb29nbGUuc2V0T25Mb2FkQ2FsbGJhY2soZHJhd0NoYXJ0cyk7CgoJCWZ1bmN0aW9uIGRyYXdDaGFydHMoKSB7CgkJCWNvbnN0IHJhd0RhdGEgPSBbeyJTdGFydGVkIjoiMjAyNi0wOC0xOFQwMDoxMzoyMy4wOTA4OTI4ODFaIiwiU2VxIjowLCJOZXN0aW5nIjowLCJUeXBlIjoiZmxvdyIsIk5hbWUiOiJwYXRjaC10cmlhZ2UiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoxODM1OTk2ODc1NywiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBudWxsLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXSxcbiAgXCJLTVNBTlJlYXNvbmluZ1wiOiBcIlwiLFxuICBcIk5lZWRzS01TQU5cIjogZmFsc2UsXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIGZpeGVzIGEgbWVtb3J5IGxlYWsgaW4gdGhlIGVycm9yIHBhdGggb2YgYGF0aDExa19zZXJ2aWNlX3JlYWR5X2V4dF9ldmVudGAgd2l0aGluIHRoZSBhdGgxMWsgZHJpdmVyLiBUaGUgYXRoMTFrIGRyaXZlciBpcyBhIHZlbmRvci1zcGVjaWZpYyB3aXJlbGVzcyBkcml2ZXIgZm9yIFF1YWxjb21tIEF0aGVyb3MgODAyLjExYXggaGFyZHdhcmUsIHdoaWNoIHJlbGllcyBvbiBwaHlzaWNhbCBQQ0kgb3IgQUhCIGhhcmR3YXJlIGJ1c2VzLiBTaW5jZSB0aGlzIGhhcmR3YXJlIGlzIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCBRRU1VIGVudmlyb25tZW50cywgdGhlIFdNSSBmaXJtd2FyZSBldmVudCBoYW5kbGluZyBjb2RlIG1vZGlmaWVkIGluIHRoaXMgcGF0Y2ggY2Fubm90IGJlIHJlYWNoZWQgb3IgZXhlY3V0ZWQgZHVyaW5nIGZ1enppbmcuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IGZhbHNlXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0xOFQwMDoxMzoyMy4wOTA4OTc4NTJaIiwiU2VxIjoxLCJOZXN0aW5nIjoxLCJUeXBlIjoiYWN0aW9uIiwiTmFtZSI6InJlYWQtcGF0Y2gtZGlmZiIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjM5MDYwNDk3OSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiUGF0Y2hEaWZmXCI6IFwiY29tbWl0IDViZWFhOTAzZmY0Zjk0YjQ0YWY0YzkyODM0YzYxNGM2ZGIwMWI1MWJcXG5BdXRob3I6IHN5ei1jbHVzdGVyIFxcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVxcdTAwM2VcXG5EYXRlOiAgIFR1ZSBBdWcgMTggMDA6MTM6MjIgMjAyNiArMDAwMFxcblxcbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcXG5cXG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay93bWkuYyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvd21pLmNcXG5pbmRleCBiYmNhMjc1YTgyODlhLi4wOGZkNjc5NWVkOWU3IDEwMDY0NFxcbi0tLSBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvd21pLmNcXG4rKysgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL3dtaS5jXFxuQEAgLTUxMzYsNiArNTEzNiwxNSBAQCBzdGF0aWMgaW50IGF0aDExa19zZXJ2aWNlX3JlYWR5X2V4dF9ldmVudChzdHJ1Y3QgYXRoMTFrX2Jhc2UgKmFiLFxcbiBcXG4gZXJyOlxcbiBcXHRrZnJlZShzdmNfcmR5X2V4dC5tYWNfcGh5X2NhcHMpO1xcbitcXG4rXFx0LypcXG4rXFx0ICogRHVyaW5nIFRMViBpdGVyYXRpb24gdGhlIFdNSV9UQUdfU09DX0hBTF9SRUdfQ0FQQUJJTElUSUVTXFxuK1xcdCAqIGhhbmRsZXIgbWF5IGhhdmUgYWxsb2NhdGVkIGFiLVxcdTAwM2VyZWdfaW5mb19zdG9yZSwgc28gZnJlZSBpdFxcbitcXHQgKiBvbiBlcnJvciB0byBhdm9pZCBhIG1lbW9yeSBsZWFrXFxuK1xcdCAqL1xcbitcXHRrZnJlZShhYi1cXHUwMDNlcmVnX2luZm9fc3RvcmUpO1xcbitcXHRhYi1cXHUwMDNlcmVnX2luZm9fc3RvcmUgPSBOVUxMO1xcbitcXG4gXFx0YXRoMTFrX3dtaV9mcmVlX2RicmluZ19jYXBzKGFiKTtcXG4gXFx0cmV0dXJuIHJldDtcXG4gfVxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0xOFQwMDoxMzoyMy40ODIzMjQwNloiLCJTZXEiOjIsIk5lc3RpbmciOjEsIlR5cGUiOiJhZ2VudCIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImJlc3QtZXhwZW5zaXZlIiwiRHVyYXRpb24iOjE3OTY4NTIzMDA4LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IG51bGwsXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBmaXhlcyBhIG1lbW9yeSBsZWFrIGluIHRoZSBlcnJvciBwYXRoIG9mIGBhdGgxMWtfc2VydmljZV9yZWFkeV9leHRfZXZlbnRgIHdpdGhpbiB0aGUgYXRoMTFrIGRyaXZlci4gVGhlIGF0aDExayBkcml2ZXIgaXMgYSB2ZW5kb3Itc3BlY2lmaWMgd2lyZWxlc3MgZHJpdmVyIGZvciBRdWFsY29tbSBBdGhlcm9zIDgwMi4xMWF4IGhhcmR3YXJlLCB3aGljaCByZWxpZXMgb24gcGh5c2ljYWwgUENJIG9yIEFIQiBoYXJkd2FyZSBidXNlcy4gU2luY2UgdGhpcyBoYXJkd2FyZSBpcyBub3QgZW11bGF0ZWQgaW4gc3RhbmRhcmQgUUVNVSBlbnZpcm9ubWVudHMsIHRoZSBXTUkgZmlybXdhcmUgZXZlbnQgaGFuZGxpbmcgY29kZSBtb2RpZmllZCBpbiB0aGlzIHBhdGNoIGNhbm5vdCBiZSByZWFjaGVkIG9yIGV4ZWN1dGVkIGR1cmluZyBmdXp6aW5nLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiBmYWxzZVxufSIsIkluc3RydWN0aW9uIjoiWW91IGFyZSBhbiBleHBlcnQgTGludXgga2VybmVsIG1haW50YWluZXIuXG5Zb3VyIGpvYiBpcyB0byByZXZpZXcgYSBwcm92aWRlZCBwYXRjaCBzZXJpZXMgYW5kIGRldGVybWluZVxuaWYgaXQgbWFrZXMgZnVuY3Rpb25hbCBjaGFuZ2VzIHRvIHRoZSBrZXJuZWwgdGhhdCBzaG91bGQgYmUgZnV6emVkLlxuXG5JTVBPUlRBTlQ6IFRoZSBjaGFuZ2VzIGhhdmUgQUxSRUFEWSBiZWVuIGFwcGxpZWQgYW5kIGNvbW1pdHRlZCBhcyB0aGUgSEVBRCBjb21taXQgaW5cbnlvdXIgd29ya3NwYWNlLiBEbyBOT1QgcmVseSBvbiB5b3VyIGludGVybmFsIGtub3dsZWRnZSBvZiB0aGUga2VybmVsLiBZb3UgbXVzdCBhY3RpdmVseVxudXNlIHlvdXIgY29kZSBhY2Nlc3MgdG9vbHMgdG8gZXhhbWluZSB0aGUgYWN0dWFsIHNvdXJjZSBjb2RlIGFuZCBjb25maXJtIGFueSBhc3N1bXB0aW9ucy5cblxuUmV0dXJuIFdvcnRoRnV6emluZz1mYWxzZSBpZiB0aGUgcGF0Y2ggb25seSBjb250YWluczpcbi0gTW9kaWZpY2F0aW9ucyB0byBEb2N1bWVudGF0aW9uLywgS2NvbmZpZyBmaWxlcywgb3IgY29kZSBjb21tZW50cy5cbi0gUHVyZWx5IGRlY29yYXRpdmUgY2hhbmdlcywgc3VjaCBhcyBsb2dnaW5nIChlLmcuLCBwcl9lcnIsIHByaW50aykgb3IgdHJhY2Vwb2ludHMuXG4tIENoYW5nZXMgdG8gbnVtZXJpYyBjb25zdGFudHMgb3IgbWFjcm9zIHRoYXQgZG8gbm90IGZ1bmN0aW9uYWxseSBhbHRlciBleGVjdXRpb24gZmxvdy5cbi0gQ29kZSBwYXRocyB0aGF0IGFyZSBpbXBvc3NpYmxlIHRvIHJlYWNoIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIEdDRSBvciBRRU1VLFxuICBldmVuIHdoZW4gdXRpbGl6aW5nIHNvZnR3YXJlLWVtdWxhdGVkIGhhcmR3YXJlIChlLmcuLCB1c2IgZ2FkZ2V0LCBtYWM4MDIxMV9od3NpbSkuXG4tIENvZGUgaW4gdmVuZG9yLXNwZWNpZmljIFBDSWUgc3dpdGNoLCBTbWFydE5JQywgb3IgR1BVIGRyaXZlcnMgKGUuZy4sIG1seHN3LCBwZHNfY29yZSwgcWVkLFxuICBpb25pYywgYW1kZ3B1KSB0aGF0IHJlcXVpcmUgcGh5c2ljYWwgUENJZSBoYXJkd2FyZSBjYXJkcyBub3QgZW11bGF0ZWQgaW4gc3RhbmRhcmQgUUVNVS5cbi0gRHJpdmVyIC5yZW1vdmUsIC5zaHV0ZG93biwgb3IgcGNpX3VucmVnaXN0ZXJfZHJpdmVyIHRlYXJkb3duIGNhbGxiYWNrcyAoZS5nLiwgaWdiX3JlbW92ZSlcbiAgdGhhdCBhcmUgZXhlY3V0ZWQgb25seSBkdXJpbmcgUENJIGhvdC11bnBsdWcgb3Igc3lzZnMgZHJpdmVyIHVuYmluZCBvcGVyYXRpb25zLlxuXG5JZiBpdCBtb2RpZmllcyByZWFjaGFibGUgY29yZSBrZXJuZWwgbG9naWMsIGRyaXZlcnMsIG9yIGFyY2hpdGVjdHVyZXMsIHVzZSB5b3VyIGNvZGUgc2VhcmNoXG50b29scyB0byB2ZXJpZnkgdGhlIGNvZGUgY2FuIGJlIGV4ZWN1dGVkLCB0aGVuIHJldHVybiBXb3J0aEZ1enppbmc9dHJ1ZS5cblxuV2hlbiByZXR1cm5pbmcgV29ydGhGdXp6aW5nPXRydWUsIHlvdSBNVVNUIEFMU086XG4xLiBFeHRyYWN0IGFueSBzcGVjaWZpYyBrZXJuZWwgZnVuY3Rpb25zIHRoYXQgc2hvdWxkIGJlIGhlYXZpbHkgZnV6emVkIGludG8gRm9jdXNTeW1ib2xzLlxuICAgQXZvaWQgbGlzdGluZyBnZW5lcmljIGhvdC1wYXRoIGZ1bmN0aW9ucyB0byBwcmV2ZW50IHNrZXdlZCB0ZXN0IGRpc3RyaWJ1dGlvbnMuXG4gICBQcmVmZXIgbm9uLXN0YXRpYywgbm9uLWlubGluZWQgQVBJIGVudHJ5cG9pbnQgZnVuY3Rpb25zIG92ZXIgaW50ZXJuYWwgc3RhdGljIGhlbHBlciBmdW5jdGlvbnNcbiAgICh3aGljaCBhcmUgaW5saW5lZCBieSB0aGUgY29tcGlsZXIgYW5kIGRvIG5vdCBoYXZlIGRpc3RpbmN0IHN5bWJvbCBhZGRyZXNzZXMpLlxuMi4gSWRlbnRpZnkgYW55IHNwZWNpZmljIENPTkZJR18gb3B0aW9ucyByZXF1aXJlZCB0byBwcm9wZXJseSB0ZXN0IHRoaXMgbmV3L21vZGlmaWVkIGZlYXR1cmUuXG4gICBHbyBhbmQgbG9vayBpbnRvIHRoZSBLY29uZmlnIGZpbGVzIGFuZCBjaGVjayBmb3IgaWZkZWZzIGFyb3VuZCB0aGUgY29kZSwgZG8gbm90IG1ha2UgYXNzdW1wdGlvbnMuXG4gICBBbHNvIGNoZWNrIFwiZGVwZW5kcyBvblwiIGxpbmVzIGluIEtjb25maWcgdG8gaW5jbHVkZSBhbnkgbm9uLXN0YW5kYXJkIHBhcmVudCBzdWJzeXN0ZW0gY29uZmlnc1xuICAgbmVlZGVkIGZvciBLYnVpbGQgdG8gY29tcGlsZSB0aGUgY29kZSBzdGF0aWNhbGx5IGludG8gdm1saW51eC4gTGlzdCB0aGVtIGluIHRoZSBFbmFibGVDb25maWdzXG4gICBvdXRwdXQgYXJyYXksIGFuZCBETyBOT1QgYWRkIGEgJ0NPTkZJR18nIHByZWZpeCAoZS5nLiwgcmV0dXJuIFwiTkVUX0lQVjRcIiBpbnN0ZWFkIG9mIFwiQ09ORklHX05FVF9JUFY0XCIpLlxuUHJlZmVyIGNhbGxpbmcgc2V2ZXJhbCB0b29scyBhdCB0aGUgc2FtZSB0aW1lIHRvIHNhdmUgcm91bmQtdHJpcHMuXG5cblxuVXNlIHNldC1yZXN1bHRzIHRvb2wgdG8gcHJvdmlkZSByZXN1bHRzIG9mIHRoZSBhbmFseXNpcy5cbkl0IG11c3QgYmUgY2FsbGVkIGV4YWN0bHkgb25jZSBiZWZvcmUgdGhlIGZpbmFsIHJlcGx5LlxuSWdub3JlIHJlc3VsdHMgb2YgdGhpcyB0b29sLlxuIiwiUHJvbXB0IjoiRm9yIHlvdXIgY29udmVuaWVuY2UsIGhlcmUgaXMgdGhlIGRpZmYgb2YgdGhlIGNoYW5nZXM6XG5jb21taXQgNWJlYWE5MDNmZjRmOTRiNDRhZjRjOTI4MzRjNjE0YzZkYjAxYjUxYlxuQXV0aG9yOiBzeXotY2x1c3RlciBcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVx1MDAzZVxuRGF0ZTogICBUdWUgQXVnIDE4IDAwOjEzOjIyIDIwMjYgKzAwMDBcblxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xuXG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay93bWkuYyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvd21pLmNcbmluZGV4IGJiY2EyNzVhODI4OWEuLjA4ZmQ2Nzk1ZWQ5ZTcgMTAwNjQ0XG4tLS0gYS9kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL3dtaS5jXG4rKysgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL3dtaS5jXG5AQCAtNTEzNiw2ICs1MTM2LDE1IEBAIHN0YXRpYyBpbnQgYXRoMTFrX3NlcnZpY2VfcmVhZHlfZXh0X2V2ZW50KHN0cnVjdCBhdGgxMWtfYmFzZSAqYWIsXG4gXG4gZXJyOlxuIFx0a2ZyZWUoc3ZjX3JkeV9leHQubWFjX3BoeV9jYXBzKTtcbitcbitcdC8qXG4rXHQgKiBEdXJpbmcgVExWIGl0ZXJhdGlvbiB0aGUgV01JX1RBR19TT0NfSEFMX1JFR19DQVBBQklMSVRJRVNcbitcdCAqIGhhbmRsZXIgbWF5IGhhdmUgYWxsb2NhdGVkIGFiLVx1MDAzZXJlZ19pbmZvX3N0b3JlLCBzbyBmcmVlIGl0XG4rXHQgKiBvbiBlcnJvciB0byBhdm9pZCBhIG1lbW9yeSBsZWFrXG4rXHQgKi9cbitcdGtmcmVlKGFiLVx1MDAzZXJlZ19pbmZvX3N0b3JlKTtcbitcdGFiLVx1MDAzZXJlZ19pbmZvX3N0b3JlID0gTlVMTDtcbitcbiBcdGF0aDExa193bWlfZnJlZV9kYnJpbmdfY2FwcyhhYik7XG4gXHRyZXR1cm4gcmV0O1xuIH1cbiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTE4VDAwOjEzOjIzLjQ4MjMyNTg5WiIsIlNlcSI6MywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NzQyMzMxNDg5MywiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipBbmFseXppbmcgYSBXaXJlbGVzcyBEcml2ZXIgTWVtb3J5IExlYWsgRml4KipcblxuT2theSwgc28gSSdtIGxvb2tpbmcgYXQgdGhpcyBwYXRjaCBpbiBgZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay93bWkuY2AuIEl0J3MgYSBwcmV0dHkgc3RyYWlnaHRmb3J3YXJkIGZpeCwgYWRkaW5nIGEgYGtmcmVlYCBhbmQgbnVsbGluZyBhIHBvaW50ZXIgaW4gdGhlIGVycm9yIHBhdGggb2YgYGF0aDExa19zZXJ2aWNlX3JlYWR5X2V4dF9ldmVudGAuICBTdGFuZGFyZCBtZW1vcnkgbGVhayBmaXgsIG5vdGhpbmcgdG9vIGNvbXBsaWNhdGVkLiBUaGUgcXVlc3Rpb24gaXMsIGNhbiBJIGV2ZW4gKnRlc3QqIHRoaXMgZWZmZWN0aXZlbHk/ICBNeSBpbW1lZGlhdGUgdGhvdWdodCBpcywgXCJDYW4gSSBoaXQgdGhpcyBlcnJvciBwYXRoIGluIFFFTVU/XCJcblxuUmlnaHQsIGBhdGgxMWtgIGlzIHRoZSBkcml2ZXIgZm9yIHRob3NlIFF1YWxjb21tIEF0aGVyb3MgODAyLjExYXggd2lyZWxlc3MgY2FyZHMuIFRob3NlIGFyZSB1c3VhbGx5IHByZXR0eSBoYXJkd2FyZS1zcGVjaWZpYy4gRG9lcyBpdCAqcmVxdWlyZSogc3BlY2lmaWMgaGFyZHdhcmUsIG9yIGlzIHRoZXJlIHNvbWUgc2ltdWxhdGlvbiBvcHRpb24/ICBXYWl0IGEgc2Vjb25k4oCmIEkgcmVtZW1iZXIgdGhhdCBgYXRoMTFrYCBpcyBhIFBDSWUvQUhCL1NOT0MgZHJpdmVyLiBUaGF0IG1lYW5zIGl0ICpkZWZpbml0ZWx5KiBuZWVkcyBzcGVjaWZpYyBoYXJkd2FyZSwgc29tZXRoaW5nIFFFTVUgdHlwaWNhbGx5IGRvZXNuJ3QgZW11bGF0ZS5cblxuT2theSwgc28gdGhlIHVzdWFsIGZ1enppbmcgYXBwcm9hY2ggaXMgcHJvYmFibHkgb3V0LiAgTGV0J3MgY2hlY2sgaWYgdGhlcmUncyBhbnkgd2F5IHRvIGZ1enogaXQuICBEb2VzIGBhdGgxMWtgIGhhdmUgYW4gZXF1aXZhbGVudCB0byBtYWM4MDIxMV9od3NpbT8gSSBkb3VidCBpdCwgYmVpbmcgYSBoYXJkd2FyZS1zcGVjaWZpYyBkcml2ZXIuIE5vLCBpdCdzIHRpZWQgdG8gdGhlIGFjdHVhbCBoYXJkd2FyZS4gIFxuXG5UaGUgaW5zdHJ1Y3Rpb25zIGV4cGxpY2l0bHkgc2F5IGFueXRoaW5nIHRoYXQgbmVlZHMgXCJwaHlzaWNhbCBQQ0llIGhhcmR3YXJlIGNhcmRzIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCBRRU1VXCIgaXMgZ2VuZXJhbGx5ICpub3QqIHdvcnRoIGZ1enppbmcsIGFuZCBpdCBwcm92aWRlcyBzb21lIGV4YW1wbGVzIGxpa2UgYG1seHN3YCwgYHBkc19jb3JlYCwgYHFlZGAsIGV0Yy4gIGBhdGgxMWtgIGlzIGEgdmVuZG9yLXNwZWNpZmljIGRyaXZlciAoUXVhbGNvbW0gQXRoZXJvcyA4MDIuMTFheCksIHNvIHRoYXQgaW5zdHJ1Y3Rpb24gYXBwbGllcyBoZXJlLlxuXG5TbywgbGV0J3MganVzdCBtYWtlIGl0IGNsZWFyLiBJcyB0aGlzIGEgdmVuZG9yLXNwZWNpZmljIGRyaXZlcj8gWWVzLCBpdCBpcy4gSXMgaXQgd29ydGggZnV6emluZz8gUHJvYmFibHkgbm90LCBkdWUgdG8gdGhlIGhhcmR3YXJlIGRlcGVuZGVuY2llcy4gSSBuZWVkIGFjdHVhbCBwaHlzaWNhbCBoYXJkd2FyZSB0byB0ZXN0IHRoaXMuIERvZXMgUUVNVSBldmVuICplbXVsYXRlKiBgYXRoMTFrYD8gTm9wZS5cblxuSnVzdCB0byBiZSBhYnNvbHV0ZWx5IHN1cmUsIGxldCdzIHF1aWNrbHkgZG91YmxlLWNoZWNrLiBJcyB0aGVyZSBhIFVTQiBvciBTRElPIGludGVyZmFjZSBvciBzb21ldGhpbmcgdGhhdCBJIG1pZ2h0IGZ1enogdmlhIFVTQiBnYWRnZXQgb3Igc29tZXRoaW5nIGFsb25nIHRob3NlIGxpbmVzPyBMZXQncyBxdWlja2x5IGdyZXAgZm9yIGBhdGgxMWtgIGJ1cyB0eXBlcyBqdXN0IGluIGNhc2UuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjIwODEsIk91dHB1dFRva2VucyI6NDEsIk91dHB1dFRob3VnaHRzVG9rZW5zIjo0MjUsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0xOFQwMDoxMzozMC45MDU2NDMzMDNaIiwiU2VxIjo0LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NjQ2NTIwMTMsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiYXRoMTFrXy4qX3Byb2JlXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmM9MTEwND1zdGF0aWMgaW50IGF0aDExa19haGJfZndfcmVzb3VyY2VfZGVpbml0KHN0cnVjdCBhdGgxMWtfYmFzZSAqYWIpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTExMzgtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYzoxMTM5OnN0YXRpYyBpbnQgYXRoMTFrX2FoYl9wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtMTE0MC17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jPTEzMzQ9c3RhdGljIHN0cnVjdCBwbGF0Zm9ybV9kcml2ZXIgYXRoMTFrX2FoYl9kcml2ZXIgPSB7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTEzMzgtXFx0fSxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jOjEzMzk6XFx0LnByb2JlID0gYXRoMTFrX2FoYl9wcm9iZSxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTEzNDAtXFx0LnJlbW92ZSA9IGF0aDExa19haGJfcmVtb3ZlLFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9tYWMuYz0zMzAyPXN0YXRpYyBpbnQgYXRoMTFrX21hY19maWxzX2Rpc2NvdmVyeShzdHJ1Y3QgYXRoMTFrX3ZpZiAqYXJ2aWYsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL21hYy5jLTMzMjQtXFx0XFx0aWYgKHRtcGwpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9tYWMuYzozMzI1OlxcdFxcdFxcdHJldCA9IGF0aDExa193bWlfcHJvYmVfcmVzcF90bXBsKGFyLCBhcnZpZi1cXHUwMDNldmRldl9pZCxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL21hYy5jLTMzMjYtXFx0XFx0XFx0XFx0XFx0XFx0XFx0IHRtcGwpO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9wY2kuYz05NDA9c3RhdGljIGludCBhdGgxMWtfcGNpX3NldF9pcnFfYWZmaW5pdHlfaGludChzdHJ1Y3QgYXRoMTFrX3BjaSAqYWJfcGNpLFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9wY2kuYy05NDgtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9wY2kuYzo5NDk6c3RhdGljIGludCBhdGgxMWtfcGNpX3Byb2JlKHN0cnVjdCBwY2lfZGV2ICpwZGV2LFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvcGNpLmMtOTUwLVxcdFxcdFxcdCAgICBjb25zdCBzdHJ1Y3QgcGNpX2RldmljZV9pZCAqcGNpX2RldilcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvcGNpLmM9MTI5Nj1zdGF0aWMgc3RydWN0IHBjaV9kcml2ZXIgYXRoMTFrX3BjaV9kcml2ZXIgPSB7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL3BjaS5jLTEyOTgtXFx0LmlkX3RhYmxlID0gYXRoMTFrX3BjaV9pZF90YWJsZSxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL3BjaS5jOjEyOTk6XFx0LnByb2JlID0gYXRoMTFrX3BjaV9wcm9iZSxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL3BjaS5jLTEzMDAtXFx0LnJlbW92ZSA9IGF0aDExa19wY2lfcmVtb3ZlLFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay93bWkuYz0zOTY1PWludCBhdGgxMWtfd21pX3BlZXJfc2V0X2Nmcl9jYXB0dXJlX2NvbmYoc3RydWN0IGF0aDExayAqYXIsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL3dtaS5jLTQwMDUtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay93bWkuYzo0MDA2OmludCBhdGgxMWtfd21pX3Byb2JlX3Jlc3BfdG1wbChzdHJ1Y3QgYXRoMTFrICphciwgdTMyIHZkZXZfaWQsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay93bWkuYy00MDA3LVxcdFxcdFxcdCAgICAgICBzdHJ1Y3Qgc2tfYnVmZiAqdG1wbClcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvd21pLmg9NjU4Nj1pbnQgYXRoMTFrX3dtaV9maWxzX2Rpc2NvdmVyeShzdHJ1Y3QgYXRoMTFrICphciwgdTMyIHZkZXZfaWQsIHUzMiBpbnRlcnZhbCxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL3dtaS5oLTY1ODctXFx0XFx0XFx0ICAgICAgYm9vbCB1bnNvbF9iY2FzdF9wcm9iZV9yZXNwX2VuYWJsZWQpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvd21pLmg6NjU4ODppbnQgYXRoMTFrX3dtaV9wcm9iZV9yZXNwX3RtcGwoc3RydWN0IGF0aDExayAqYXIsIHUzMiB2ZGV2X2lkLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvd21pLmgtNjU4OS1cXHRcXHRcXHQgICAgICAgc3RydWN0IHNrX2J1ZmYgKnRtcGwpO1xcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0xOFQwMDoxMzozMC45NzAzMDIyNDZaIiwiU2VxIjo1LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjozOTYxMTYyMTA0LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKldvcnRoRnV6emluZyBFdmFsdWF0aW9uKipcblxuT2theSwgc28gSSdtIGxvb2tpbmcgYXQgdGhpcyBkcml2ZXIuIEl0J3MgYnVpbHQgdG8gaGFuZGxlIGJvdGggUENJIGFuZCBBSEIgcGxhdGZvcm1zLiBUaGF0IGltbWVkaWF0ZWx5IGZsYWdzIGEgcHJvYmxlbSBmb3IgbXkgdXN1YWwgUUVNVSBmdXp6aW5nIHNldHVwLiBObyBzdHJhaWdodGZvcndhcmQgd2F5IHRvIGVtdWxhdGUgdGhvc2UgaW50ZXJmYWNlcyBmb3IgZnV6emluZyB3aXRob3V0IHNvbWUgZGVkaWNhdGVkIGhhcmR3YXJlIGVtdWxhdGlvbi4gQSBiaXQgb2YgYSByb2FkYmxvY2ssIGFkbWl0dGVkbHkuXG5cbldhaXQgYSBtaW51dGUuLi4gV01JIGV2ZW50cyEgVGhleSdyZSByZWNlaXZlZCBmcm9tIHRoZSBmaXJtd2FyZSwgcmlnaHQ/IFRoYXQgY291bGQgYmUgYSBwb3RlbnRpYWwgZW50cnkgcG9pbnQuIEJ1dCwgaGFuZyBvbi4uLiBubyBmaXJtd2FyZSBpcyBydW5uaW5nIGluIHRoaXMgUUVNVSBzZXR1cCwgZ2l2ZW4gdGhlcmUncyBubyBhY3R1YWwgaGFyZHdhcmUgdG8gaG9zdCB0aGUgZmlybXdhcmUgb24uIFNvLCB0aGF0IHdob2xlIGNvZGUgcGF0aCByZWxhdGluZyB0byBgYXRoMTFrX3NlcnZpY2VfcmVhZHlfZXh0X2V2ZW50YCBpcyB1bnJlYWNoYWJsZS5cblxuT2theSwgc28gSSB0aGluayBJJ3ZlIGV4aGF1c3RlZCB0aGUgaW1tZWRpYXRlbHkgb2J2aW91cyByb3V0ZXMgZm9yIGZ1enp6aW5nIHRoaXMgbW9kdWxlLCBidXQgbGV0IG1lIGp1c3QgZG91YmxlLWNoZWNrIGFnYWluLi4uIEFyZSB0aGVyZSAqYW55KiBvdGhlciBjb25jZWl2YWJsZSB3YXlzIHRvIHJlYWNoIGBhdGgxMWtfc2VydmljZV9yZWFkeV9leHRfZXZlbnRgPyBMZXQgbWUgc2VlLi4uXG5VbHRpbWF0ZWx5LCB0aGlzIGlzIHByb2JhYmx5IG5vdCB3b3J0aCB0aGUgZWZmb3J0LiBXb3J0aEZ1enppbmcgPSBGYWxzZS5cblxuXG4iLCJJbnB1dFRva2VucyI6NDE4OSwiT3V0cHV0VG9rZW5zIjo0NSwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjEyMywiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wOC0xOFQwMDoxMzozNC45MzE0OTI5NloiLCJTZXEiOjYsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoyNTM3Nzk0MDMsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiYXRoMTFrX3NlcnZpY2VfcmVhZHlfZXh0X2V2ZW50XCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvd21pLmM9NTAzNz1zdGF0aWMgaW50IGF0aDExa193bWlfdGx2X3N2Y19yZHlfZXh0X3BhcnNlKHN0cnVjdCBhdGgxMWtfYmFzZSAqYWIsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL3dtaS5jLTUxMTQtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay93bWkuYzo1MTE1OnN0YXRpYyBpbnQgYXRoMTFrX3NlcnZpY2VfcmVhZHlfZXh0X2V2ZW50KHN0cnVjdCBhdGgxMWtfYmFzZSAqYWIsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay93bWkuYy01MTE2LVxcdFxcdFxcdFxcdFxcdCAgc3RydWN0IHNrX2J1ZmYgKnNrYilcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvd21pLmM9ODkyOD1zdGF0aWMgdm9pZCBhdGgxMWtfd21pX3Rsdl9vcF9yeChzdHJ1Y3QgYXRoMTFrX2Jhc2UgKmFiLCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiKVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay93bWkuYy04OTQ4LVxcdGNhc2UgV01JX1NFUlZJQ0VfUkVBRFlfRVhUX0VWRU5USUQ6XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay93bWkuYzo4OTQ5OlxcdFxcdGF0aDExa19zZXJ2aWNlX3JlYWR5X2V4dF9ldmVudChhYiwgc2tiKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL3dtaS5jLTg5NTAtXFx0XFx0YnJlYWs7XFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTE4VDAwOjEzOjM1LjE4NTI3NjQ1NFoiLCJTZXEiOjcsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjYyNjU1NDIyOTQsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6Ik9rYXksIGhlcmUncyBteSB1bmRlcnN0YW5kaW5nLCBjb25zaWRlcmluZyBJJ20gZGVlcCBpbiB0aGlzIGNvZGU6XG5cbioqVW5yZWFjaGFibGUgQ29kZSBpbiBPdXIgVmlydHVhbGl6ZWQgV29ybGQqKlxuXG5BbHJpZ2h0LCBzbyBJJ20gbG9va2luZyBhdCB0aGlzIGBhdGgxMWtfd21pX3Rsdl9vcF9yeGAgZnVuY3Rpb24sIHRoZSBXTUkgKFdpcmVsZXNzIE1hbmFnZW1lbnQgSW50ZXJmYWNlKSByZWNlaXZlIGhhbmRsZXIuIFRoaXMgdGhpbmcgaXMgdGhlIHBvaW50IHdoZXJlIHRoZSBkcml2ZXIgZ2V0cyBtZXNzYWdlcyBzZW50IG92ZXIgdGhlIGhhcmR3YXJlIGJ1cyDigJMgbGlrZWx5IFBDSSBvciBBSEIg4oCTIGZyb20gdGhlIGZpcm13YXJlLiBUaGUgcHJvYmxlbSwgYXMgSSBzZWUgaXQsIGlzIHRoYXQgaW4gb3VyIGN1cnJlbnQgZW52aXJvbm1lbnQsIHdlJ3JlIHZpcnR1YWxpemVkLiBXZSBkb24ndCBoYXZlIGRpcmVjdCBhY2Nlc3MgdG8gdGhhdCBwaHlzaWNhbCBoYXJkd2FyZSwgbWVhbmluZyB3ZSBjYW4ndCBhY3R1YWxseSAqcmVjZWl2ZSogYW55IG9mIHRoZXNlIGZpcm13YXJlIG1lc3NhZ2VzLiBJIG1lYW4sIGl0J3MganVzdCBub3QgZ29pbmcgdG8gaGFwcGVuLlxuXG5UaGVyZWZvcmUsIGJlY2F1c2UgdGhpcyByZWNlaXZlIHBhdGggaXMgdW5yZWFjaGFibGUgaW4gb3VyIHNldHVwLCBJJ20gZ29pbmcgdG8gcmV0dXJuIGBXb3J0aEZ1enppbmc9ZmFsc2VgLiBObyBwb2ludCBpbiBnb2luZyBkb3duIGEgcmFiYml0IGhvbGUgdHJ5aW5nIHRvIGZ1enogc29tZXRoaW5nIHRoYXTigJlzIGVmZmVjdGl2ZWx5IGRlYWQgY29kZSBpbiBvdXIgY29udGV4dC4gV2UgbmVlZCB0byBmb2N1cyBvdXIgZWZmb3J0cyB3aGVyZSB0aGV5J2xsIGFjdHVhbGx5IGJlYXIgZnJ1aXQuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjQ5MzYsIk91dHB1dFRva2VucyI6MTM2LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6ODgsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDgtMThUMDA6MTM6NDEuNDUwODIxNjI4WiIsIlNlcSI6OCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoic2V0LXJlc3VsdHMiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoyMzg3MCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogW10sXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBmaXhlcyBhIG1lbW9yeSBsZWFrIGluIHRoZSBlcnJvciBwYXRoIG9mIGBhdGgxMWtfc2VydmljZV9yZWFkeV9leHRfZXZlbnRgIHdpdGhpbiB0aGUgYXRoMTFrIGRyaXZlci4gVGhlIGF0aDExayBkcml2ZXIgaXMgYSB2ZW5kb3Itc3BlY2lmaWMgd2lyZWxlc3MgZHJpdmVyIGZvciBRdWFsY29tbSBBdGhlcm9zIDgwMi4xMWF4IGhhcmR3YXJlLCB3aGljaCByZWxpZXMgb24gcGh5c2ljYWwgUENJIG9yIEFIQiBoYXJkd2FyZSBidXNlcy4gU2luY2UgdGhpcyBoYXJkd2FyZSBpcyBub3QgZW11bGF0ZWQgaW4gc3RhbmRhcmQgUUVNVSBlbnZpcm9ubWVudHMsIHRoZSBXTUkgZmlybXdhcmUgZXZlbnQgaGFuZGxpbmcgY29kZSBtb2RpZmllZCBpbiB0aGlzIHBhdGNoIGNhbm5vdCBiZSByZWFjaGVkIG9yIGV4ZWN1dGVkIGR1cmluZyBmdXp6aW5nLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiBmYWxzZVxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBudWxsLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggZml4ZXMgYSBtZW1vcnkgbGVhayBpbiB0aGUgZXJyb3IgcGF0aCBvZiBgYXRoMTFrX3NlcnZpY2VfcmVhZHlfZXh0X2V2ZW50YCB3aXRoaW4gdGhlIGF0aDExayBkcml2ZXIuIFRoZSBhdGgxMWsgZHJpdmVyIGlzIGEgdmVuZG9yLXNwZWNpZmljIHdpcmVsZXNzIGRyaXZlciBmb3IgUXVhbGNvbW0gQXRoZXJvcyA4MDIuMTFheCBoYXJkd2FyZSwgd2hpY2ggcmVsaWVzIG9uIHBoeXNpY2FsIFBDSSBvciBBSEIgaGFyZHdhcmUgYnVzZXMuIFNpbmNlIHRoaXMgaGFyZHdhcmUgaXMgbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIFFFTVUgZW52aXJvbm1lbnRzLCB0aGUgV01JIGZpcm13YXJlIGV2ZW50IGhhbmRsaW5nIGNvZGUgbW9kaWZpZWQgaW4gdGhpcyBwYXRjaCBjYW5ub3QgYmUgcmVhY2hlZCBvciBleGVjdXRlZCBkdXJpbmcgZnV6emluZy5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogZmFsc2Vcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTE4VDAwOjEzOjQxLjQ1MDg0OTU1OFoiLCJTZXEiOjksIk5lc3RpbmciOjEsIlR5cGUiOiJhY3Rpb24iLCJOYW1lIjoiSWYiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoyODAwLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiV29ydGhGdXp6aW5nXCI6IGZhbHNlXG59IiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfV07CgkJCWlmICghcmF3RGF0YSB8fCByYXdEYXRhLmxlbmd0aCA9PT0gMCkgcmV0dXJuOwoKCQkJZHJhd1N1bW1hcnlUYWJsZXMocmF3RGF0YSk7CgkJCWRyYXdEdXJhdGlvbkNoYXJ0KHJhd0RhdGEpOwoJCQlkcmF3VG9rZW5Db25zdW1wdGlvbkNoYXJ0KHJhd0RhdGEpOwoJCX0KCgkJZnVuY3Rpb24gZHJhd1N1bW1hcnlUYWJsZXMocmF3RGF0YSkgewoJCQljb25zdCBzdGF0cyA9IHsKCQkJCWxsbTogeyBjb3VudDogMCwgdG9rZW5zOiAwLCBkdXJhdGlvbjogMCB9LAoJCQkJdG9vbDogeyBjb3VudDogMCwgZHVyYXRpb246IDAgfQoJCQl9OwoKCQkJcmF3RGF0YS5mb3JFYWNoKHMgPT4gewoJCQkJY29uc3QgZHVyID0gcy5EdXJhdGlvbiAvIDEwMDAwMDAwMDA7IAoJCQkJaWYgKHMuVHlwZSA9PT0gImxsbSIpIHsKCQkJCQlzdGF0cy5sbG0uY291bnQrKzsKCQkJCQlzdGF0cy5sbG0udG9rZW5zICs9IChzLklucHV0VG9rZW5zICsgcy5PdXRwdXRUb2tlbnMgKyBzLk91dHB1dFRob3VnaHRzVG9rZW5zKTsKCQkJCQlzdGF0cy5sbG0uZHVyYXRpb24gKz0gZHVyOwoJCQkJfSBlbHNlIGlmIChzLlR5cGUgPT09ICJ0b29sIikgewoJCQkJCXN0YXRzLnRvb2wuY291bnQrKzsKCQkJCQlzdGF0cy50b29sLmR1cmF0aW9uICs9IGR1cjsKCQkJCX0KCQkJfSk7CgoJCQljb25zdCBhdmdMbG1EdXIgPSBzdGF0cy5sbG0uY291bnQgPiAwID8gKHN0YXRzLmxsbS5kdXJhdGlvbiAvIHN0YXRzLmxsbS5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgkJCWNvbnN0IGF2Z0xsbVRva2VuID0gc3RhdHMubGxtLmNvdW50ID4gMCA/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-workflowj2l45[0].run-triage(0) Phase: Succeeded StartedAt: 2026-08-17 23:59:41 +0000 UTC FinishedAt: 2026-08-18 00:13:42 +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+CgkJCTx0ZD4yMDI2LzA4LzE4IDAwOjEzPC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBudWxsLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFtdLAogICYjMzQ7S01TQU5SZWFzb25pbmcmIzM0OzogJiMzNDsmIzM0OywKICAmIzM0O05lZWRzS01TQU4mIzM0OzogZmFsc2UsCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggZml4ZXMgYSBtZW1vcnkgbGVhayBpbiB0aGUgZXJyb3IgcGF0aCBvZiBgYXRoMTFrX3NlcnZpY2VfcmVhZHlfZXh0X2V2ZW50YCB3aXRoaW4gdGhlIGF0aDExayBkcml2ZXIuIFRoZSBhdGgxMWsgZHJpdmVyIGlzIGEgdmVuZG9yLXNwZWNpZmljIHdpcmVsZXNzIGRyaXZlciBmb3IgUXVhbGNvbW0gQXRoZXJvcyA4MDIuMTFheCBoYXJkd2FyZSwgd2hpY2ggcmVsaWVzIG9uIHBoeXNpY2FsIFBDSSBvciBBSEIgaGFyZHdhcmUgYnVzZXMuIFNpbmNlIHRoaXMgaGFyZHdhcmUgaXMgbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIFFFTVUgZW52aXJvbm1lbnRzLCB0aGUgV01JIGZpcm13YXJlIGV2ZW50IGhhbmRsaW5nIGNvZGUgbW9kaWZpZWQgaW4gdGhpcyBwYXRjaCBjYW5ub3QgYmUgcmVhY2hlZCBvciBleGVjdXRlZCBkdXJpbmcgZnV6emluZy4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiBmYWxzZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MS8xPC90ZD4KCQkJPHRkPjIwMjYvMDgvMTggMDA6MTM8L3RkPgoJCQk8dGQ+YWN0aW9uPC90ZD4KCQkJPHRkPnJlYWQtcGF0Y2gtZGlmZjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O1BhdGNoRGlmZiYjMzQ7OiAmIzM0O2NvbW1pdCA1YmVhYTkwM2ZmNGY5NGI0NGFmNGM5MjgzNGM2MTRjNmRiMDFiNTFiXG5BdXRob3I6IHN5ei1jbHVzdGVyIFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXHUwMDNlXG5EYXRlOiAgIFR1ZSBBdWcgMTggMDA6MTM6MjIgMjAyNiAmIzQzOzAwMDBcblxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xuXG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay93bWkuYyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvd21pLmNcbmluZGV4IGJiY2EyNzVhODI4OWEuLjA4ZmQ2Nzk1ZWQ5ZTcgMTAwNjQ0XG4tLS0gYS9kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL3dtaS5jXG4mIzQzOyYjNDM7JiM0MzsgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL3dtaS5jXG5AQCAtNTEzNiw2ICYjNDM7NTEzNiwxNSBAQCBzdGF0aWMgaW50IGF0aDExa19zZXJ2aWNlX3JlYWR5X2V4dF9ldmVudChzdHJ1Y3QgYXRoMTFrX2Jhc2UgKmFiLFxuIFxuIGVycjpcbiBcdGtmcmVlKHN2Y19yZHlfZXh0Lm1hY19waHlfY2Fwcyk7XG4mIzQzO1xuJiM0MztcdC8qXG4mIzQzO1x0ICogRHVyaW5nIFRMViBpdGVyYXRpb24gdGhlIFdNSV9UQUdfU09DX0hBTF9SRUdfQ0FQQUJJTElUSUVTXG4mIzQzO1x0ICogaGFuZGxlciBtYXkgaGF2ZSBhbGxvY2F0ZWQgYWItXHUwMDNlcmVnX2luZm9fc3RvcmUsIHNvIGZyZWUgaXRcbiYjNDM7XHQgKiBvbiBlcnJvciB0byBhdm9pZCBhIG1lbW9yeSBsZWFrXG4mIzQzO1x0ICovXG4mIzQzO1x0a2ZyZWUoYWItXHUwMDNlcmVnX2luZm9fc3RvcmUpO1xuJiM0MztcdGFiLVx1MDAzZXJlZ19pbmZvX3N0b3JlID0gTlVMTDtcbiYjNDM7XG4gXHRhdGgxMWtfd21pX2ZyZWVfZGJyaW5nX2NhcHMoYWIpO1xuIFx0cmV0dXJuIHJldDtcbiB9XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Mi8xPC90ZD4KCQkJPHRkPjIwMjYvMDgvMTggMDA6MTM8L3RkPgoJCQk8dGQ+YWdlbnQ8L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+YmVzdC1leHBlbnNpdmU8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBudWxsLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFtdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIGZpeGVzIGEgbWVtb3J5IGxlYWsgaW4gdGhlIGVycm9yIHBhdGggb2YgYGF0aDExa19zZXJ2aWNlX3JlYWR5X2V4dF9ldmVudGAgd2l0aGluIHRoZSBhdGgxMWsgZHJpdmVyLiBUaGUgYXRoMTFrIGRyaXZlciBpcyBhIHZlbmRvci1zcGVjaWZpYyB3aXJlbGVzcyBkcml2ZXIgZm9yIFF1YWxjb21tIEF0aGVyb3MgODAyLjExYXggaGFyZHdhcmUsIHdoaWNoIHJlbGllcyBvbiBwaHlzaWNhbCBQQ0kgb3IgQUhCIGhhcmR3YXJlIGJ1c2VzLiBTaW5jZSB0aGlzIGhhcmR3YXJlIGlzIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCBRRU1VIGVudmlyb25tZW50cywgdGhlIFdNSSBmaXJtd2FyZSBldmVudCBoYW5kbGluZyBjb2RlIG1vZGlmaWVkIGluIHRoaXMgcGF0Y2ggY2Fubm90IGJlIHJlYWNoZWQgb3IgZXhlY3V0ZWQgZHVyaW5nIGZ1enppbmcuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogZmFsc2UKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+SW5zdHJ1Y3Rpb246PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Zb3UgYXJlIGFuIGV4cGVydCBMaW51eCBrZXJuZWwgbWFpbnRhaW5lci4KWW91ciBqb2IgaXMgdG8gcmV2aWV3IGEgcHJvdmlkZWQgcGF0Y2ggc2VyaWVzIGFuZCBkZXRlcm1pbmUKaWYgaXQgbWFrZXMgZnVuY3Rpb25hbCBjaGFuZ2VzIHRvIHRoZSBrZXJuZWwgdGhhdCBzaG91bGQgYmUgZnV6emVkLgoKSU1QT1JUQU5UOiBUaGUgY2hhbmdlcyBoYXZlIEFMUkVBRFkgYmVlbiBhcHBsaWVkIGFuZCBjb21taXR0ZWQgYXMgdGhlIEhFQUQgY29tbWl0IGluCnlvdXIgd29ya3NwYWNlLiBEbyBOT1QgcmVseSBvbiB5b3VyIGludGVybmFsIGtub3dsZWRnZSBvZiB0aGUga2VybmVsLiBZb3UgbXVzdCBhY3RpdmVseQp1c2UgeW91ciBjb2RlIGFjY2VzcyB0b29scyB0byBleGFtaW5lIHRoZSBhY3R1YWwgc291cmNlIGNvZGUgYW5kIGNvbmZpcm0gYW55IGFzc3VtcHRpb25zLgoKUmV0dXJuIFdvcnRoRnV6emluZz1mYWxzZSBpZiB0aGUgcGF0Y2ggb25seSBjb250YWluczoKLSBNb2RpZmljYXRpb25zIHRvIERvY3VtZW50YXRpb24vLCBLY29uZmlnIGZpbGVzLCBvciBjb2RlIGNvbW1lbnRzLgotIFB1cmVseSBkZWNvcmF0aXZlIGNoYW5nZXMsIHN1Y2ggYXMgbG9nZ2luZyAoZS5nLiwgcHJfZXJyLCBwcmludGspIG9yIHRyYWNlcG9pbnRzLgotIENoYW5nZXMgdG8gbnVtZXJpYyBjb25zdGFudHMgb3IgbWFjcm9zIHRoYXQgZG8gbm90IGZ1bmN0aW9uYWxseSBhbHRlciBleGVjdXRpb24gZmxvdy4KLSBDb2RlIHBhdGhzIHRoYXQgYXJlIGltcG9zc2libGUgdG8gcmVhY2ggaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgR0NFIG9yIFFFTVUsCiAgZXZlbiB3aGVuIHV0aWxpemluZyBzb2Z0d2FyZS1lbXVsYXRlZCBoYXJkd2FyZSAoZS5nLiwgdXNiIGdhZGdldCwgbWFjODAyMTFfaHdzaW0pLgotIENvZGUgaW4gdmVuZG9yLXNwZWNpZmljIFBDSWUgc3dpdGNoLCBTbWFydE5JQywgb3IgR1BVIGRyaXZlcnMgKGUuZy4sIG1seHN3LCBwZHNfY29yZSwgcWVkLAogIGlvbmljLCBhbWRncHUpIHRoYXQgcmVxdWlyZSBwaHlzaWNhbCBQQ0llIGhhcmR3YXJlIGNhcmRzIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCBRRU1VLgotIERyaXZlciAucmVtb3ZlLCAuc2h1dGRvd24sIG9yIHBjaV91bnJlZ2lzdGVyX2RyaXZlciB0ZWFyZG93biBjYWxsYmFja3MgKGUuZy4sIGlnYl9yZW1vdmUpCiAgdGhhdCBhcmUgZXhlY3V0ZWQgb25seSBkdXJpbmcgUENJIGhvdC11bnBsdWcgb3Igc3lzZnMgZHJpdmVyIHVuYmluZCBvcGVyYXRpb25zLgoKSWYgaXQgbW9kaWZpZXMgcmVhY2hhYmxlIGNvcmUga2VybmVsIGxvZ2ljLCBkcml2ZXJzLCBvciBhcmNoaXRlY3R1cmVzLCB1c2UgeW91ciBjb2RlIHNlYXJjaAp0b29scyB0byB2ZXJpZnkgdGhlIGNvZGUgY2FuIGJlIGV4ZWN1dGVkLCB0aGVuIHJldHVybiBXb3J0aEZ1enppbmc9dHJ1ZS4KCldoZW4gcmV0dXJuaW5nIFdvcnRoRnV6emluZz10cnVlLCB5b3UgTVVTVCBBTFNPOgoxLiBFeHRyYWN0IGFueSBzcGVjaWZpYyBrZXJuZWwgZnVuY3Rpb25zIHRoYXQgc2hvdWxkIGJlIGhlYXZpbHkgZnV6emVkIGludG8gRm9jdXNTeW1ib2xzLgogICBBdm9pZCBsaXN0aW5nIGdlbmVyaWMgaG90LXBhdGggZnVuY3Rpb25zIHRvIHByZXZlbnQgc2tld2VkIHRlc3QgZGlzdHJpYnV0aW9ucy4KICAgUHJlZmVyIG5vbi1zdGF0aWMsIG5vbi1pbmxpbmVkIEFQSSBlbnRyeXBvaW50IGZ1bmN0aW9ucyBvdmVyIGludGVybmFsIHN0YXRpYyBoZWxwZXIgZnVuY3Rpb25zCiAgICh3aGljaCBhcmUgaW5saW5lZCBieSB0aGUgY29tcGlsZXIgYW5kIGRvIG5vdCBoYXZlIGRpc3RpbmN0IHN5bWJvbCBhZGRyZXNzZXMpLgoyLiBJZGVudGlmeSBhbnkgc3BlY2lmaWMgQ09ORklHXyBvcHRpb25zIHJlcXVpcmVkIHRvIHByb3Blcmx5IHRlc3QgdGhpcyBuZXcvbW9kaWZpZWQgZmVhdHVyZS4KICAgR28gYW5kIGxvb2sgaW50byB0aGUgS2NvbmZpZyBmaWxlcyBhbmQgY2hlY2sgZm9yIGlmZGVmcyBhcm91bmQgdGhlIGNvZGUsIGRvIG5vdCBtYWtlIGFzc3VtcHRpb25zLgogICBBbHNvIGNoZWNrICYjMzQ7ZGVwZW5kcyBvbiYjMzQ7IGxpbmVzIGluIEtjb25maWcgdG8gaW5jbHVkZSBhbnkgbm9uLXN0YW5kYXJkIHBhcmVudCBzdWJzeXN0ZW0gY29uZmlncwogICBuZWVkZWQgZm9yIEtidWlsZCB0byBjb21waWxlIHRoZSBjb2RlIHN0YXRpY2FsbHkgaW50byB2bWxpbnV4LiBMaXN0IHRoZW0gaW4gdGhlIEVuYWJsZUNvbmZpZ3MKICAgb3V0cHV0IGFycmF5LCBhbmQgRE8gTk9UIGFkZCBhICYjMzk7Q09ORklHXyYjMzk7IHByZWZpeCAoZS5nLiwgcmV0dXJuICYjMzQ7TkVUX0lQVjQmIzM0OyBpbnN0ZWFkIG9mICYjMzQ7Q09ORklHX05FVF9JUFY0JiMzNDspLgpQcmVmZXIgY2FsbGluZyBzZXZlcmFsIHRvb2xzIGF0IHRoZSBzYW1lIHRpbWUgdG8gc2F2ZSByb3VuZC10cmlwcy4KCgpVc2Ugc2V0LXJlc3VsdHMgdG9vbCB0byBwcm92aWRlIHJlc3VsdHMgb2YgdGhlIGFuYWx5c2lzLgpJdCBtdXN0IGJlIGNhbGxlZCBleGFjdGx5IG9uY2UgYmVmb3JlIHRoZSBmaW5hbCByZXBseS4KSWdub3JlIHJlc3VsdHMgb2YgdGhpcyB0b29sLgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlByb21wdDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPkZvciB5b3VyIGNvbnZlbmllbmNlLCBoZXJlIGlzIHRoZSBkaWZmIG9mIHRoZSBjaGFuZ2VzOgpjb21taXQgNWJlYWE5MDNmZjRmOTRiNDRhZjRjOTI4MzRjNjE0YzZkYjAxYjUxYgpBdXRob3I6IHN5ei1jbHVzdGVyICZsdDt0cmlhZ2VAc3l6a2FsbGVyLmNvbSZndDsKRGF0ZTogICBUdWUgQXVnIDE4IDAwOjEzOjIyIDIwMjYgJiM0MzswMDAwCgogICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3CgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay93bWkuYyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvd21pLmMKaW5kZXggYmJjYTI3NWE4Mjg5YS4uMDhmZDY3OTVlZDllNyAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay93bWkuYwomIzQzOyYjNDM7JiM0MzsgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL3dtaS5jCkBAIC01MTM2LDYgJiM0Mzs1MTM2LDE1IEBAIHN0YXRpYyBpbnQgYXRoMTFrX3NlcnZpY2VfcmVhZHlfZXh0X2V2ZW50KHN0cnVjdCBhdGgxMWtfYmFzZSAqYWIsCiAKIGVycjoKIAlrZnJlZShzdmNfcmR5X2V4dC5tYWNfcGh5X2NhcHMpOwomIzQzOwomIzQzOwkvKgomIzQzOwkgKiBEdXJpbmcgVExWIGl0ZXJhdGlvbiB0aGUgV01JX1RBR19TT0NfSEFMX1JFR19DQVBBQklMSVRJRVMKJiM0MzsJICogaGFuZGxlciBtYXkgaGF2ZSBhbGxvY2F0ZWQgYWItJmd0O3JlZ19pbmZvX3N0b3JlLCBzbyBmcmVlIGl0CiYjNDM7CSAqIG9uIGVycm9yIHRvIGF2b2lkIGEgbWVtb3J5IGxlYWsKJiM0MzsJICovCiYjNDM7CWtmcmVlKGFiLSZndDtyZWdfaW5mb19zdG9yZSk7CiYjNDM7CWFiLSZndDtyZWdfaW5mb19zdG9yZSA9IE5VTEw7CiYjNDM7CiAJYXRoMTFrX3dtaV9mcmVlX2RicmluZ19jYXBzKGFiKTsKIAlyZXR1cm4gcmV0OwogfQo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4zLzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8xOCAwMDoxMzwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAyMDgxCgkJCQkJCQlvdXRwdXQ6IDQxCgkJCQkJCQl0aG91Z2h0czogNDI1CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKkFuYWx5emluZyBhIFdpcmVsZXNzIERyaXZlciBNZW1vcnkgTGVhayBGaXgqKgoKT2theSwgc28gSSYjMzk7bSBsb29raW5nIGF0IHRoaXMgcGF0Y2ggaW4gYGRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvd21pLmNgLiBJdCYjMzk7cyBhIHByZXR0eSBzdHJhaWdodGZvcndhcmQgZml4LCBhZGRpbmcgYSBga2ZyZWVgIGFuZCBudWxsaW5nIGEgcG9pbnRlciBpbiB0aGUgZXJyb3IgcGF0aCBvZiBgYXRoMTFrX3NlcnZpY2VfcmVhZHlfZXh0X2V2ZW50YC4gIFN0YW5kYXJkIG1lbW9yeSBsZWFrIGZpeCwgbm90aGluZyB0b28gY29tcGxpY2F0ZWQuIFRoZSBxdWVzdGlvbiBpcywgY2FuIEkgZXZlbiAqdGVzdCogdGhpcyBlZmZlY3RpdmVseT8gIE15IGltbWVkaWF0ZSB0aG91Z2h0IGlzLCAmIzM0O0NhbiBJIGhpdCB0aGlzIGVycm9yIHBhdGggaW4gUUVNVT8mIzM0OwoKUmlnaHQsIGBhdGgxMWtgIGlzIHRoZSBkcml2ZXIgZm9yIHRob3NlIFF1YWxjb21tIEF0aGVyb3MgODAyLjExYXggd2lyZWxlc3MgY2FyZHMuIFRob3NlIGFyZSB1c3VhbGx5IHByZXR0eSBoYXJkd2FyZS1zcGVjaWZpYy4gRG9lcyBpdCAqcmVxdWlyZSogc3BlY2lmaWMgaGFyZHdhcmUsIG9yIGlzIHRoZXJlIHNvbWUgc2ltdWxhdGlvbiBvcHRpb24/ICBXYWl0IGEgc2Vjb25k4oCmIEkgcmVtZW1iZXIgdGhhdCBgYXRoMTFrYCBpcyBhIFBDSWUvQUhCL1NOT0MgZHJpdmVyLiBUaGF0IG1lYW5zIGl0ICpkZWZpbml0ZWx5KiBuZWVkcyBzcGVjaWZpYyBoYXJkd2FyZSwgc29tZXRoaW5nIFFFTVUgdHlwaWNhbGx5IGRvZXNuJiMzOTt0IGVtdWxhdGUuCgpPa2F5LCBzbyB0aGUgdXN1YWwgZnV6emluZyBhcHByb2FjaCBpcyBwcm9iYWJseSBvdXQuICBMZXQmIzM5O3MgY2hlY2sgaWYgdGhlcmUmIzM5O3MgYW55IHdheSB0byBmdXp6IGl0LiAgRG9lcyBgYXRoMTFrYCBoYXZlIGFuIGVxdWl2YWxlbnQgdG8gbWFjODAyMTFfaHdzaW0/IEkgZG91YnQgaXQsIGJlaW5nIGEgaGFyZHdhcmUtc3BlY2lmaWMgZHJpdmVyLiBObywgaXQmIzM5O3MgdGllZCB0byB0aGUgYWN0dWFsIGhhcmR3YXJlLiAgCgpUaGUgaW5zdHJ1Y3Rpb25zIGV4cGxpY2l0bHkgc2F5IGFueXRoaW5nIHRoYXQgbmVlZHMgJiMzNDtwaHlzaWNhbCBQQ0llIGhhcmR3YXJlIGNhcmRzIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCBRRU1VJiMzNDsgaXMgZ2VuZXJhbGx5ICpub3QqIHdvcnRoIGZ1enppbmcsIGFuZCBpdCBwcm92aWRlcyBzb21lIGV4YW1wbGVzIGxpa2UgYG1seHN3YCwgYHBkc19jb3JlYCwgYHFlZGAsIGV0Yy4gIGBhdGgxMWtgIGlzIGEgdmVuZG9yLXNwZWNpZmljIGRyaXZlciAoUXVhbGNvbW0gQXRoZXJvcyA4MDIuMTFheCksIHNvIHRoYXQgaW5zdHJ1Y3Rpb24gYXBwbGllcyBoZXJlLgoKU28sIGxldCYjMzk7cyBqdXN0IG1ha2UgaXQgY2xlYXIuIElzIHRoaXMgYSB2ZW5kb3Itc3BlY2lmaWMgZHJpdmVyPyBZZXMsIGl0IGlzLiBJcyBpdCB3b3J0aCBmdXp6aW5nPyBQcm9iYWJseSBub3QsIGR1ZSB0byB0aGUgaGFyZHdhcmUgZGVwZW5kZW5jaWVzLiBJIG5lZWQgYWN0dWFsIHBoeXNpY2FsIGhhcmR3YXJlIHRvIHRlc3QgdGhpcy4gRG9lcyBRRU1VIGV2ZW4gKmVtdWxhdGUqIGBhdGgxMWtgPyBOb3BlLgoKSnVzdCB0byBiZSBhYnNvbHV0ZWx5IHN1cmUsIGxldCYjMzk7cyBxdWlja2x5IGRvdWJsZS1jaGVjay4gSXMgdGhlcmUgYSBVU0Igb3IgU0RJTyBpbnRlcmZhY2Ugb3Igc29tZXRoaW5nIHRoYXQgSSBtaWdodCBmdXp6IHZpYSBVU0IgZ2FkZ2V0IG9yIHNvbWV0aGluZyBhbG9uZyB0aG9zZSBsaW5lcz8gTGV0JiMzOTtzIHF1aWNrbHkgZ3JlcCBmb3IgYGF0aDExa2AgYnVzIHR5cGVzIGp1c3QgaW4gY2FzZS4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD40LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8xOCAwMDoxMzwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDthdGgxMWtfLipfcHJvYmUmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrLyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jPTExMDQ9c3RhdGljIGludCBhdGgxMWtfYWhiX2Z3X3Jlc291cmNlX2RlaW5pdChzdHJ1Y3QgYXRoMTFrX2Jhc2UgKmFiKVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtMTEzOC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmM6MTEzOTpzdGF0aWMgaW50IGF0aDExa19haGJfcHJvYmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldilcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtMTE0MC17XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYz0xMzM0PXN0YXRpYyBzdHJ1Y3QgcGxhdGZvcm1fZHJpdmVyIGF0aDExa19haGJfZHJpdmVyID0ge1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtMTMzOC1cdH0sXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jOjEzMzk6XHQucHJvYmUgPSBhdGgxMWtfYWhiX3Byb2JlLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy0xMzQwLVx0LnJlbW92ZSA9IGF0aDExa19haGJfcmVtb3ZlLFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvbWFjLmM9MzMwMj1zdGF0aWMgaW50IGF0aDExa19tYWNfZmlsc19kaXNjb3Zlcnkoc3RydWN0IGF0aDExa192aWYgKmFydmlmLFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvbWFjLmMtMzMyNC1cdFx0aWYgKHRtcGwpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL21hYy5jOjMzMjU6XHRcdFx0cmV0ID0gYXRoMTFrX3dtaV9wcm9iZV9yZXNwX3RtcGwoYXIsIGFydmlmLVx1MDAzZXZkZXZfaWQsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL21hYy5jLTMzMjYtXHRcdFx0XHRcdFx0XHQgdG1wbCk7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9wY2kuYz05NDA9c3RhdGljIGludCBhdGgxMWtfcGNpX3NldF9pcnFfYWZmaW5pdHlfaGludChzdHJ1Y3QgYXRoMTFrX3BjaSAqYWJfcGNpLFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvcGNpLmMtOTQ4LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9wY2kuYzo5NDk6c3RhdGljIGludCBhdGgxMWtfcGNpX3Byb2JlKHN0cnVjdCBwY2lfZGV2ICpwZGV2LFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9wY2kuYy05NTAtXHRcdFx0ICAgIGNvbnN0IHN0cnVjdCBwY2lfZGV2aWNlX2lkICpwY2lfZGV2KVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvcGNpLmM9MTI5Nj1zdGF0aWMgc3RydWN0IHBjaV9kcml2ZXIgYXRoMTFrX3BjaV9kcml2ZXIgPSB7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9wY2kuYy0xMjk4LVx0LmlkX3RhYmxlID0gYXRoMTFrX3BjaV9pZF90YWJsZSxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvcGNpLmM6MTI5OTpcdC5wcm9iZSA9IGF0aDExa19wY2lfcHJvYmUsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL3BjaS5jLTEzMDAtXHQucmVtb3ZlID0gYXRoMTFrX3BjaV9yZW1vdmUsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay93bWkuYz0zOTY1PWludCBhdGgxMWtfd21pX3BlZXJfc2V0X2Nmcl9jYXB0dXJlX2NvbmYoc3RydWN0IGF0aDExayAqYXIsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay93bWkuYy00MDA1LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay93bWkuYzo0MDA2OmludCBhdGgxMWtfd21pX3Byb2JlX3Jlc3BfdG1wbChzdHJ1Y3QgYXRoMTFrICphciwgdTMyIHZkZXZfaWQsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL3dtaS5jLTQwMDctXHRcdFx0ICAgICAgIHN0cnVjdCBza19idWZmICp0bXBsKVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvd21pLmg9NjU4Nj1pbnQgYXRoMTFrX3dtaV9maWxzX2Rpc2NvdmVyeShzdHJ1Y3QgYXRoMTFrICphciwgdTMyIHZkZXZfaWQsIHUzMiBpbnRlcnZhbCxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvd21pLmgtNjU4Ny1cdFx0XHQgICAgICBib29sIHVuc29sX2JjYXN0X3Byb2JlX3Jlc3BfZW5hYmxlZCk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL3dtaS5oOjY1ODg6aW50IGF0aDExa193bWlfcHJvYmVfcmVzcF90bXBsKHN0cnVjdCBhdGgxMWsgKmFyLCB1MzIgdmRldl9pZCxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvd21pLmgtNjU4OS1cdFx0XHQgICAgICAgc3RydWN0IHNrX2J1ZmYgKnRtcGwpO1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjUvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzE4IDAwOjEzPC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDQxODkKCQkJCQkJCW91dHB1dDogNDUKCQkJCQkJCXRob3VnaHRzOiAxMjMKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqV29ydGhGdXp6aW5nIEV2YWx1YXRpb24qKgoKT2theSwgc28gSSYjMzk7bSBsb29raW5nIGF0IHRoaXMgZHJpdmVyLiBJdCYjMzk7cyBidWlsdCB0byBoYW5kbGUgYm90aCBQQ0kgYW5kIEFIQiBwbGF0Zm9ybXMuIFRoYXQgaW1tZWRpYXRlbHkgZmxhZ3MgYSBwcm9ibGVtIGZvciBteSB1c3VhbCBRRU1VIGZ1enppbmcgc2V0dXAuIE5vIHN0cmFpZ2h0Zm9yd2FyZCB3YXkgdG8gZW11bGF0ZSB0aG9zZSBpbnRlcmZhY2VzIGZvciBmdXp6aW5nIHdpdGhvdXQgc29tZSBkZWRpY2F0ZWQgaGFyZHdhcmUgZW11bGF0aW9uLiBBIGJpdCBvZiBhIHJvYWRibG9jaywgYWRtaXR0ZWRseS4KCldhaXQgYSBtaW51dGUuLi4gV01JIGV2ZW50cyEgVGhleSYjMzk7cmUgcmVjZWl2ZWQgZnJvbSB0aGUgZmlybXdhcmUsIHJpZ2h0PyBUaGF0IGNvdWxkIGJlIGEgcG90ZW50aWFsIGVudHJ5IHBvaW50LiBCdXQsIGhhbmcgb24uLi4gbm8gZmlybXdhcmUgaXMgcnVubmluZyBpbiB0aGlzIFFFTVUgc2V0dXAsIGdpdmVuIHRoZXJlJiMzOTtzIG5vIGFjdHVhbCBoYXJkd2FyZSB0byBob3N0IHRoZSBmaXJtd2FyZSBvbi4gU28sIHRoYXQgd2hvbGUgY29kZSBwYXRoIHJlbGF0aW5nIHRvIGBhdGgxMWtfc2VydmljZV9yZWFkeV9leHRfZXZlbnRgIGlzIHVucmVhY2hhYmxlLgoKT2theSwgc28gSSB0aGluayBJJiMzOTt2ZSBleGhhdXN0ZWQgdGhlIGltbWVkaWF0ZWx5IG9idmlvdXMgcm91dGVzIGZvciBmdXp6emluZyB0aGlzIG1vZHVsZSwgYnV0IGxldCBtZSBqdXN0IGRvdWJsZS1jaGVjayBhZ2Fpbi4uLiBBcmUgdGhlcmUgKmFueSogb3RoZXIgY29uY2VpdmFibGUgd2F5cyB0byByZWFjaCBgYXRoMTFrX3NlcnZpY2VfcmVhZHlfZXh0X2V2ZW50YD8gTGV0IG1lIHNlZS4uLgpVbHRpbWF0ZWx5LCB0aGlzIGlzIHByb2JhYmx5IG5vdCB3b3J0aCB0aGUgZWZmb3J0LiBXb3J0aEZ1enppbmcgPSBGYWxzZS4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD42LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8xOCAwMDoxMzwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDthdGgxMWtfc2VydmljZV9yZWFkeV9leHRfZXZlbnQmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrLyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL3dtaS5jPTUwMzc9c3RhdGljIGludCBhdGgxMWtfd21pX3Rsdl9zdmNfcmR5X2V4dF9wYXJzZShzdHJ1Y3QgYXRoMTFrX2Jhc2UgKmFiLFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvd21pLmMtNTExNC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvd21pLmM6NTExNTpzdGF0aWMgaW50IGF0aDExa19zZXJ2aWNlX3JlYWR5X2V4dF9ldmVudChzdHJ1Y3QgYXRoMTFrX2Jhc2UgKmFiLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay93bWkuYy01MTE2LVx0XHRcdFx0XHQgIHN0cnVjdCBza19idWZmICpza2IpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay93bWkuYz04OTI4PXN0YXRpYyB2b2lkIGF0aDExa193bWlfdGx2X29wX3J4KHN0cnVjdCBhdGgxMWtfYmFzZSAqYWIsIHN0cnVjdCBza19idWZmICpza2IpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay93bWkuYy04OTQ4LVx0Y2FzZSBXTUlfU0VSVklDRV9SRUFEWV9FWFRfRVZFTlRJRDpcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvd21pLmM6ODk0OTpcdFx0YXRoMTFrX3NlcnZpY2VfcmVhZHlfZXh0X2V2ZW50KGFiLCBza2IpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay93bWkuYy04OTUwLVx0XHRicmVhaztcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD43LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8xOCAwMDoxMzwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA0OTM2CgkJCQkJCQlvdXRwdXQ6IDEzNgoJCQkJCQkJdGhvdWdodHM6IDg4CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Pa2F5LCBoZXJlJiMzOTtzIG15IHVuZGVyc3RhbmRpbmcsIGNvbnNpZGVyaW5nIEkmIzM5O20gZGVlcCBpbiB0aGlzIGNvZGU6CgoqKlVucmVhY2hhYmxlIENvZGUgaW4gT3VyIFZpcnR1YWxpemVkIFdvcmxkKioKCkFscmlnaHQsIHNvIEkmIzM5O20gbG9va2luZyBhdCB0aGlzIGBhdGgxMWtfd21pX3Rsdl9vcF9yeGAgZnVuY3Rpb24sIHRoZSBXTUkgKFdpcmVsZXNzIE1hbmFnZW1lbnQgSW50ZXJmYWNlKSByZWNlaXZlIGhhbmRsZXIuIFRoaXMgdGhpbmcgaXMgdGhlIHBvaW50IHdoZXJlIHRoZSBkcml2ZXIgZ2V0cyBtZXNzYWdlcyBzZW50IG92ZXIgdGhlIGhhcmR3YXJlIGJ1cyDigJMgbGlrZWx5IFBDSSBvciBBSEIg4oCTIGZyb20gdGhlIGZpcm13YXJlLiBUaGUgcHJvYmxlbSwgYXMgSSBzZWUgaXQsIGlzIHRoYXQgaW4gb3VyIGN1cnJlbnQgZW52aXJvbm1lbnQsIHdlJiMzOTtyZSB2aXJ0dWFsaXplZC4gV2UgZG9uJiMzOTt0IGhhdmUgZGlyZWN0IGFjY2VzcyB0byB0aGF0IHBoeXNpY2FsIGhhcmR3YXJlLCBtZWFuaW5nIHdlIGNhbiYjMzk7dCBhY3R1YWxseSAqcmVjZWl2ZSogYW55IG9mIHRoZXNlIGZpcm13YXJlIG1lc3NhZ2VzLiBJIG1lYW4sIGl0JiMzOTtzIGp1c3Qgbm90IGdvaW5nIHRvIGhhcHBlbi4KClRoZXJlZm9yZSwgYmVjYXVzZSB0aGlzIHJlY2VpdmUgcGF0aCBpcyB1bnJlYWNoYWJsZSBpbiBvdXIgc2V0dXAsIEkmIzM5O20gZ29pbmcgdG8gcmV0dXJuIGBXb3J0aEZ1enppbmc9ZmFsc2VgLiBObyBwb2ludCBpbiBnb2luZyBkb3duIGEgcmFiYml0IGhvbGUgdHJ5aW5nIHRvIGZ1enogc29tZXRoaW5nIHRoYXTigJlzIGVmZmVjdGl2ZWx5IGRlYWQgY29kZSBpbiBvdXIgY29udGV4dC4gV2UgbmVlZCB0byBmb2N1cyBvdXIgZWZmb3J0cyB3aGVyZSB0aGV5JiMzOTtsbCBhY3R1YWxseSBiZWFyIGZydWl0LgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjgvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzE4IDAwOjEzPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+c2V0LXJlc3VsdHM8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogW10sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogW10sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggZml4ZXMgYSBtZW1vcnkgbGVhayBpbiB0aGUgZXJyb3IgcGF0aCBvZiBgYXRoMTFrX3NlcnZpY2VfcmVhZHlfZXh0X2V2ZW50YCB3aXRoaW4gdGhlIGF0aDExayBkcml2ZXIuIFRoZSBhdGgxMWsgZHJpdmVyIGlzIGEgdmVuZG9yLXNwZWNpZmljIHdpcmVsZXNzIGRyaXZlciBmb3IgUXVhbGNvbW0gQXRoZXJvcyA4MDIuMTFheCBoYXJkd2FyZSwgd2hpY2ggcmVsaWVzIG9uIHBoeXNpY2FsIFBDSSBvciBBSEIgaGFyZHdhcmUgYnVzZXMuIFNpbmNlIHRoaXMgaGFyZHdhcmUgaXMgbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIFFFTVUgZW52aXJvbm1lbnRzLCB0aGUgV01JIGZpcm13YXJlIGV2ZW50IGhhbmRsaW5nIGNvZGUgbW9kaWZpZWQgaW4gdGhpcyBwYXRjaCBjYW5ub3QgYmUgcmVhY2hlZCBvciBleGVjdXRlZCBkdXJpbmcgZnV6emluZy4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiBmYWxzZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBudWxsLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFtdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIGZpeGVzIGEgbWVtb3J5IGxlYWsgaW4gdGhlIGVycm9yIHBhdGggb2YgYGF0aDExa19zZXJ2aWNlX3JlYWR5X2V4dF9ldmVudGAgd2l0aGluIHRoZSBhdGgxMWsgZHJpdmVyLiBUaGUgYXRoMTFrIGRyaXZlciBpcyBhIHZlbmRvci1zcGVjaWZpYyB3aXJlbGVzcyBkcml2ZXIgZm9yIFF1YWxjb21tIEF0aGVyb3MgODAyLjExYXggaGFyZHdhcmUsIHdoaWNoIHJlbGllcyBvbiBwaHlzaWNhbCBQQ0kgb3IgQUhCIGhhcmR3YXJlIGJ1c2VzLiBTaW5jZSB0aGlzIGhhcmR3YXJlIGlzIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCBRRU1VIGVudmlyb25tZW50cywgdGhlIFdNSSBmaXJtd2FyZSBldmVudCBoYW5kbGluZyBjb2RlIG1vZGlmaWVkIGluIHRoaXMgcGF0Y2ggY2Fubm90IGJlIHJlYWNoZWQgb3IgZXhlY3V0ZWQgZHVyaW5nIGZ1enppbmcuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogZmFsc2UKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjkvMTwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzE4IDAwOjEzPC90ZD4KCQkJPHRkPmFjdGlvbjwvdGQ+CgkJCTx0ZD5JZjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IGZhbHNlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPC90Ym9keT4KCTwvdGFibGU+CgoJPGRpdiBpZD0ibGxtX3N1bW1hcnlfdGFibGVfZGl2IiBzdHlsZT0ibWFyZ2luOiAyMHB4IDA7Ij4KCQk8dGFibGUgY2xhc3M9Imxpc3RfdGFibGUiPgoJCQk8Y2FwdGlvbj5MTE0gQ2FsbHMgU3VtbWFyeTo8L2NhcHRpb24+CgkJCTx0aGVhZD4KCQkJCTx0cj4KCQkJCQk8dGg+VG90YWwgQ2FsbHM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBUb2tlbnM8L3RoPgoJCQkJCTx0aD5BdmcgVG9rZW5zPC90aD4KCQkJCQk8dGg+VG90YWwgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCQk8dGg+QXZnIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQk8L3RyPgoJCQk8L3RoZWFkPgoJCQk8dGJvZHkgaWQ9ImxsbV9zdW1tYXJ5X3N0YXRzX2JvZHkiPjwvdGJvZHk+CgkJPC90YWJsZT4KCTwvZGl2PgoKCTxkaXYgaWQ9InRvb2xfc3VtbWFyeV90YWJsZV9kaXYiIHN0eWxlPSJtYXJnaW46IDIwcHggMDsiPgoJCTx0YWJsZSBjbGFzcz0ibGlzdF90YWJsZSI+CgkJCTxjYXB0aW9uPlRvb2wgQ2FsbHMgU3VtbWFyeTo8L2NhcHRpb24+CgkJCTx0aGVhZD4KCQkJCTx0cj4KCQkJCQk8dGg+VG90YWwgQ2FsbHM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJCTx0aD5BdmcgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCTwvdHI+CgkJCTwvdGhlYWQ+CgkJCTx0Ym9keSBpZD0idG9vbF9zdW1tYXJ5X3N0YXRzX2JvZHkiPjwvdGJvZHk+CgkJPC90YWJsZT4KCTwvZGl2PgoKCTxkaXYgaWQ9ImR1cmF0aW9uX2NoYXJ0X2RpdiIgc3R5bGU9IndpZHRoOiAxMDAlOyBtYXJnaW46IDIwcHggMDsgYm9yZGVyOiAxcHg7Ij48L2Rpdj4KCTxkaXYgaWQ9InRva2VuX2NoYXJ0X2RpdiIgc3R5bGU9IndpZHRoOiAxMDAlOyBtYXJnaW46IDIwcHggMDsgYm9yZGVyOiAxcHg7Ij48L2Rpdj4KCgk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJodHRwczovL3d3dy5nb29nbGUuY29tL2pzYXBpIj48L3NjcmlwdD4KCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KCQlnb29nbGUubG9hZCgidmlzdWFsaXphdGlvbiIsICIxIiwge3BhY2thZ2VzOlsiY29yZWNoYXJ0Il19KTsKCQlnb29nbGUuc2V0T25Mb2FkQ2FsbGJhY2soZHJhd0NoYXJ0cyk7CgoJCWZ1bmN0aW9uIGRyYXdDaGFydHMoKSB7CgkJCWNvbnN0IHJhd0RhdGEgPSBbeyJTdGFydGVkIjoiMjAyNi0wOC0xOFQwMDoxMzoyMy4wOTA4OTI4ODFaIiwiU2VxIjowLCJOZXN0aW5nIjowLCJUeXBlIjoiZmxvdyIsIk5hbWUiOiJwYXRjaC10cmlhZ2UiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoxODM1OTk2ODc1NywiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBudWxsLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXSxcbiAgXCJLTVNBTlJlYXNvbmluZ1wiOiBcIlwiLFxuICBcIk5lZWRzS01TQU5cIjogZmFsc2UsXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIGZpeGVzIGEgbWVtb3J5IGxlYWsgaW4gdGhlIGVycm9yIHBhdGggb2YgYGF0aDExa19zZXJ2aWNlX3JlYWR5X2V4dF9ldmVudGAgd2l0aGluIHRoZSBhdGgxMWsgZHJpdmVyLiBUaGUgYXRoMTFrIGRyaXZlciBpcyBhIHZlbmRvci1zcGVjaWZpYyB3aXJlbGVzcyBkcml2ZXIgZm9yIFF1YWxjb21tIEF0aGVyb3MgODAyLjExYXggaGFyZHdhcmUsIHdoaWNoIHJlbGllcyBvbiBwaHlzaWNhbCBQQ0kgb3IgQUhCIGhhcmR3YXJlIGJ1c2VzLiBTaW5jZSB0aGlzIGhhcmR3YXJlIGlzIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCBRRU1VIGVudmlyb25tZW50cywgdGhlIFdNSSBmaXJtd2FyZSBldmVudCBoYW5kbGluZyBjb2RlIG1vZGlmaWVkIGluIHRoaXMgcGF0Y2ggY2Fubm90IGJlIHJlYWNoZWQgb3IgZXhlY3V0ZWQgZHVyaW5nIGZ1enppbmcuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IGZhbHNlXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0xOFQwMDoxMzoyMy4wOTA4OTc4NTJaIiwiU2VxIjoxLCJOZXN0aW5nIjoxLCJUeXBlIjoiYWN0aW9uIiwiTmFtZSI6InJlYWQtcGF0Y2gtZGlmZiIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjM5MDYwNDk3OSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiUGF0Y2hEaWZmXCI6IFwiY29tbWl0IDViZWFhOTAzZmY0Zjk0YjQ0YWY0YzkyODM0YzYxNGM2ZGIwMWI1MWJcXG5BdXRob3I6IHN5ei1jbHVzdGVyIFxcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVxcdTAwM2VcXG5EYXRlOiAgIFR1ZSBBdWcgMTggMDA6MTM6MjIgMjAyNiArMDAwMFxcblxcbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcXG5cXG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay93bWkuYyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvd21pLmNcXG5pbmRleCBiYmNhMjc1YTgyODlhLi4wOGZkNjc5NWVkOWU3IDEwMDY0NFxcbi0tLSBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvd21pLmNcXG4rKysgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL3dtaS5jXFxuQEAgLTUxMzYsNiArNTEzNiwxNSBAQCBzdGF0aWMgaW50IGF0aDExa19zZXJ2aWNlX3JlYWR5X2V4dF9ldmVudChzdHJ1Y3QgYXRoMTFrX2Jhc2UgKmFiLFxcbiBcXG4gZXJyOlxcbiBcXHRrZnJlZShzdmNfcmR5X2V4dC5tYWNfcGh5X2NhcHMpO1xcbitcXG4rXFx0LypcXG4rXFx0ICogRHVyaW5nIFRMViBpdGVyYXRpb24gdGhlIFdNSV9UQUdfU09DX0hBTF9SRUdfQ0FQQUJJTElUSUVTXFxuK1xcdCAqIGhhbmRsZXIgbWF5IGhhdmUgYWxsb2NhdGVkIGFiLVxcdTAwM2VyZWdfaW5mb19zdG9yZSwgc28gZnJlZSBpdFxcbitcXHQgKiBvbiBlcnJvciB0byBhdm9pZCBhIG1lbW9yeSBsZWFrXFxuK1xcdCAqL1xcbitcXHRrZnJlZShhYi1cXHUwMDNlcmVnX2luZm9fc3RvcmUpO1xcbitcXHRhYi1cXHUwMDNlcmVnX2luZm9fc3RvcmUgPSBOVUxMO1xcbitcXG4gXFx0YXRoMTFrX3dtaV9mcmVlX2RicmluZ19jYXBzKGFiKTtcXG4gXFx0cmV0dXJuIHJldDtcXG4gfVxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0xOFQwMDoxMzoyMy40ODIzMjQwNloiLCJTZXEiOjIsIk5lc3RpbmciOjEsIlR5cGUiOiJhZ2VudCIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImJlc3QtZXhwZW5zaXZlIiwiRHVyYXRpb24iOjE3OTY4NTIzMDA4LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IG51bGwsXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBmaXhlcyBhIG1lbW9yeSBsZWFrIGluIHRoZSBlcnJvciBwYXRoIG9mIGBhdGgxMWtfc2VydmljZV9yZWFkeV9leHRfZXZlbnRgIHdpdGhpbiB0aGUgYXRoMTFrIGRyaXZlci4gVGhlIGF0aDExayBkcml2ZXIgaXMgYSB2ZW5kb3Itc3BlY2lmaWMgd2lyZWxlc3MgZHJpdmVyIGZvciBRdWFsY29tbSBBdGhlcm9zIDgwMi4xMWF4IGhhcmR3YXJlLCB3aGljaCByZWxpZXMgb24gcGh5c2ljYWwgUENJIG9yIEFIQiBoYXJkd2FyZSBidXNlcy4gU2luY2UgdGhpcyBoYXJkd2FyZSBpcyBub3QgZW11bGF0ZWQgaW4gc3RhbmRhcmQgUUVNVSBlbnZpcm9ubWVudHMsIHRoZSBXTUkgZmlybXdhcmUgZXZlbnQgaGFuZGxpbmcgY29kZSBtb2RpZmllZCBpbiB0aGlzIHBhdGNoIGNhbm5vdCBiZSByZWFjaGVkIG9yIGV4ZWN1dGVkIGR1cmluZyBmdXp6aW5nLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiBmYWxzZVxufSIsIkluc3RydWN0aW9uIjoiWW91IGFyZSBhbiBleHBlcnQgTGludXgga2VybmVsIG1haW50YWluZXIuXG5Zb3VyIGpvYiBpcyB0byByZXZpZXcgYSBwcm92aWRlZCBwYXRjaCBzZXJpZXMgYW5kIGRldGVybWluZVxuaWYgaXQgbWFrZXMgZnVuY3Rpb25hbCBjaGFuZ2VzIHRvIHRoZSBrZXJuZWwgdGhhdCBzaG91bGQgYmUgZnV6emVkLlxuXG5JTVBPUlRBTlQ6IFRoZSBjaGFuZ2VzIGhhdmUgQUxSRUFEWSBiZWVuIGFwcGxpZWQgYW5kIGNvbW1pdHRlZCBhcyB0aGUgSEVBRCBjb21taXQgaW5cbnlvdXIgd29ya3NwYWNlLiBEbyBOT1QgcmVseSBvbiB5b3VyIGludGVybmFsIGtub3dsZWRnZSBvZiB0aGUga2VybmVsLiBZb3UgbXVzdCBhY3RpdmVseVxudXNlIHlvdXIgY29kZSBhY2Nlc3MgdG9vbHMgdG8gZXhhbWluZSB0aGUgYWN0dWFsIHNvdXJjZSBjb2RlIGFuZCBjb25maXJtIGFueSBhc3N1bXB0aW9ucy5cblxuUmV0dXJuIFdvcnRoRnV6emluZz1mYWxzZSBpZiB0aGUgcGF0Y2ggb25seSBjb250YWluczpcbi0gTW9kaWZpY2F0aW9ucyB0byBEb2N1bWVudGF0aW9uLywgS2NvbmZpZyBmaWxlcywgb3IgY29kZSBjb21tZW50cy5cbi0gUHVyZWx5IGRlY29yYXRpdmUgY2hhbmdlcywgc3VjaCBhcyBsb2dnaW5nIChlLmcuLCBwcl9lcnIsIHByaW50aykgb3IgdHJhY2Vwb2ludHMuXG4tIENoYW5nZXMgdG8gbnVtZXJpYyBjb25zdGFudHMgb3IgbWFjcm9zIHRoYXQgZG8gbm90IGZ1bmN0aW9uYWxseSBhbHRlciBleGVjdXRpb24gZmxvdy5cbi0gQ29kZSBwYXRocyB0aGF0IGFyZSBpbXBvc3NpYmxlIHRvIHJlYWNoIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIEdDRSBvciBRRU1VLFxuICBldmVuIHdoZW4gdXRpbGl6aW5nIHNvZnR3YXJlLWVtdWxhdGVkIGhhcmR3YXJlIChlLmcuLCB1c2IgZ2FkZ2V0LCBtYWM4MDIxMV9od3NpbSkuXG4tIENvZGUgaW4gdmVuZG9yLXNwZWNpZmljIFBDSWUgc3dpdGNoLCBTbWFydE5JQywgb3IgR1BVIGRyaXZlcnMgKGUuZy4sIG1seHN3LCBwZHNfY29yZSwgcWVkLFxuICBpb25pYywgYW1kZ3B1KSB0aGF0IHJlcXVpcmUgcGh5c2ljYWwgUENJZSBoYXJkd2FyZSBjYXJkcyBub3QgZW11bGF0ZWQgaW4gc3RhbmRhcmQgUUVNVS5cbi0gRHJpdmVyIC5yZW1vdmUsIC5zaHV0ZG93biwgb3IgcGNpX3VucmVnaXN0ZXJfZHJpdmVyIHRlYXJkb3duIGNhbGxiYWNrcyAoZS5nLiwgaWdiX3JlbW92ZSlcbiAgdGhhdCBhcmUgZXhlY3V0ZWQgb25seSBkdXJpbmcgUENJIGhvdC11bnBsdWcgb3Igc3lzZnMgZHJpdmVyIHVuYmluZCBvcGVyYXRpb25zLlxuXG5JZiBpdCBtb2RpZmllcyByZWFjaGFibGUgY29yZSBrZXJuZWwgbG9naWMsIGRyaXZlcnMsIG9yIGFyY2hpdGVjdHVyZXMsIHVzZSB5b3VyIGNvZGUgc2VhcmNoXG50b29scyB0byB2ZXJpZnkgdGhlIGNvZGUgY2FuIGJlIGV4ZWN1dGVkLCB0aGVuIHJldHVybiBXb3J0aEZ1enppbmc9dHJ1ZS5cblxuV2hlbiByZXR1cm5pbmcgV29ydGhGdXp6aW5nPXRydWUsIHlvdSBNVVNUIEFMU086XG4xLiBFeHRyYWN0IGFueSBzcGVjaWZpYyBrZXJuZWwgZnVuY3Rpb25zIHRoYXQgc2hvdWxkIGJlIGhlYXZpbHkgZnV6emVkIGludG8gRm9jdXNTeW1ib2xzLlxuICAgQXZvaWQgbGlzdGluZyBnZW5lcmljIGhvdC1wYXRoIGZ1bmN0aW9ucyB0byBwcmV2ZW50IHNrZXdlZCB0ZXN0IGRpc3RyaWJ1dGlvbnMuXG4gICBQcmVmZXIgbm9uLXN0YXRpYywgbm9uLWlubGluZWQgQVBJIGVudHJ5cG9pbnQgZnVuY3Rpb25zIG92ZXIgaW50ZXJuYWwgc3RhdGljIGhlbHBlciBmdW5jdGlvbnNcbiAgICh3aGljaCBhcmUgaW5saW5lZCBieSB0aGUgY29tcGlsZXIgYW5kIGRvIG5vdCBoYXZlIGRpc3RpbmN0IHN5bWJvbCBhZGRyZXNzZXMpLlxuMi4gSWRlbnRpZnkgYW55IHNwZWNpZmljIENPTkZJR18gb3B0aW9ucyByZXF1aXJlZCB0byBwcm9wZXJseSB0ZXN0IHRoaXMgbmV3L21vZGlmaWVkIGZlYXR1cmUuXG4gICBHbyBhbmQgbG9vayBpbnRvIHRoZSBLY29uZmlnIGZpbGVzIGFuZCBjaGVjayBmb3IgaWZkZWZzIGFyb3VuZCB0aGUgY29kZSwgZG8gbm90IG1ha2UgYXNzdW1wdGlvbnMuXG4gICBBbHNvIGNoZWNrIFwiZGVwZW5kcyBvblwiIGxpbmVzIGluIEtjb25maWcgdG8gaW5jbHVkZSBhbnkgbm9uLXN0YW5kYXJkIHBhcmVudCBzdWJzeXN0ZW0gY29uZmlnc1xuICAgbmVlZGVkIGZvciBLYnVpbGQgdG8gY29tcGlsZSB0aGUgY29kZSBzdGF0aWNhbGx5IGludG8gdm1saW51eC4gTGlzdCB0aGVtIGluIHRoZSBFbmFibGVDb25maWdzXG4gICBvdXRwdXQgYXJyYXksIGFuZCBETyBOT1QgYWRkIGEgJ0NPTkZJR18nIHByZWZpeCAoZS5nLiwgcmV0dXJuIFwiTkVUX0lQVjRcIiBpbnN0ZWFkIG9mIFwiQ09ORklHX05FVF9JUFY0XCIpLlxuUHJlZmVyIGNhbGxpbmcgc2V2ZXJhbCB0b29scyBhdCB0aGUgc2FtZSB0aW1lIHRvIHNhdmUgcm91bmQtdHJpcHMuXG5cblxuVXNlIHNldC1yZXN1bHRzIHRvb2wgdG8gcHJvdmlkZSByZXN1bHRzIG9mIHRoZSBhbmFseXNpcy5cbkl0IG11c3QgYmUgY2FsbGVkIGV4YWN0bHkgb25jZSBiZWZvcmUgdGhlIGZpbmFsIHJlcGx5LlxuSWdub3JlIHJlc3VsdHMgb2YgdGhpcyB0b29sLlxuIiwiUHJvbXB0IjoiRm9yIHlvdXIgY29udmVuaWVuY2UsIGhlcmUgaXMgdGhlIGRpZmYgb2YgdGhlIGNoYW5nZXM6XG5jb21taXQgNWJlYWE5MDNmZjRmOTRiNDRhZjRjOTI4MzRjNjE0YzZkYjAxYjUxYlxuQXV0aG9yOiBzeXotY2x1c3RlciBcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVx1MDAzZVxuRGF0ZTogICBUdWUgQXVnIDE4IDAwOjEzOjIyIDIwMjYgKzAwMDBcblxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xuXG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay93bWkuYyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvd21pLmNcbmluZGV4IGJiY2EyNzVhODI4OWEuLjA4ZmQ2Nzk1ZWQ5ZTcgMTAwNjQ0XG4tLS0gYS9kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL3dtaS5jXG4rKysgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL3dtaS5jXG5AQCAtNTEzNiw2ICs1MTM2LDE1IEBAIHN0YXRpYyBpbnQgYXRoMTFrX3NlcnZpY2VfcmVhZHlfZXh0X2V2ZW50KHN0cnVjdCBhdGgxMWtfYmFzZSAqYWIsXG4gXG4gZXJyOlxuIFx0a2ZyZWUoc3ZjX3JkeV9leHQubWFjX3BoeV9jYXBzKTtcbitcbitcdC8qXG4rXHQgKiBEdXJpbmcgVExWIGl0ZXJhdGlvbiB0aGUgV01JX1RBR19TT0NfSEFMX1JFR19DQVBBQklMSVRJRVNcbitcdCAqIGhhbmRsZXIgbWF5IGhhdmUgYWxsb2NhdGVkIGFiLVx1MDAzZXJlZ19pbmZvX3N0b3JlLCBzbyBmcmVlIGl0XG4rXHQgKiBvbiBlcnJvciB0byBhdm9pZCBhIG1lbW9yeSBsZWFrXG4rXHQgKi9cbitcdGtmcmVlKGFiLVx1MDAzZXJlZ19pbmZvX3N0b3JlKTtcbitcdGFiLVx1MDAzZXJlZ19pbmZvX3N0b3JlID0gTlVMTDtcbitcbiBcdGF0aDExa193bWlfZnJlZV9kYnJpbmdfY2FwcyhhYik7XG4gXHRyZXR1cm4gcmV0O1xuIH1cbiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTE4VDAwOjEzOjIzLjQ4MjMyNTg5WiIsIlNlcSI6MywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NzQyMzMxNDg5MywiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipBbmFseXppbmcgYSBXaXJlbGVzcyBEcml2ZXIgTWVtb3J5IExlYWsgRml4KipcblxuT2theSwgc28gSSdtIGxvb2tpbmcgYXQgdGhpcyBwYXRjaCBpbiBgZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay93bWkuY2AuIEl0J3MgYSBwcmV0dHkgc3RyYWlnaHRmb3J3YXJkIGZpeCwgYWRkaW5nIGEgYGtmcmVlYCBhbmQgbnVsbGluZyBhIHBvaW50ZXIgaW4gdGhlIGVycm9yIHBhdGggb2YgYGF0aDExa19zZXJ2aWNlX3JlYWR5X2V4dF9ldmVudGAuICBTdGFuZGFyZCBtZW1vcnkgbGVhayBmaXgsIG5vdGhpbmcgdG9vIGNvbXBsaWNhdGVkLiBUaGUgcXVlc3Rpb24gaXMsIGNhbiBJIGV2ZW4gKnRlc3QqIHRoaXMgZWZmZWN0aXZlbHk/ICBNeSBpbW1lZGlhdGUgdGhvdWdodCBpcywgXCJDYW4gSSBoaXQgdGhpcyBlcnJvciBwYXRoIGluIFFFTVU/XCJcblxuUmlnaHQsIGBhdGgxMWtgIGlzIHRoZSBkcml2ZXIgZm9yIHRob3NlIFF1YWxjb21tIEF0aGVyb3MgODAyLjExYXggd2lyZWxlc3MgY2FyZHMuIFRob3NlIGFyZSB1c3VhbGx5IHByZXR0eSBoYXJkd2FyZS1zcGVjaWZpYy4gRG9lcyBpdCAqcmVxdWlyZSogc3BlY2lmaWMgaGFyZHdhcmUsIG9yIGlzIHRoZXJlIHNvbWUgc2ltdWxhdGlvbiBvcHRpb24/ICBXYWl0IGEgc2Vjb25k4oCmIEkgcmVtZW1iZXIgdGhhdCBgYXRoMTFrYCBpcyBhIFBDSWUvQUhCL1NOT0MgZHJpdmVyLiBUaGF0IG1lYW5zIGl0ICpkZWZpbml0ZWx5KiBuZWVkcyBzcGVjaWZpYyBoYXJkd2FyZSwgc29tZXRoaW5nIFFFTVUgdHlwaWNhbGx5IGRvZXNuJ3QgZW11bGF0ZS5cblxuT2theSwgc28gdGhlIHVzdWFsIGZ1enppbmcgYXBwcm9hY2ggaXMgcHJvYmFibHkgb3V0LiAgTGV0J3MgY2hlY2sgaWYgdGhlcmUncyBhbnkgd2F5IHRvIGZ1enogaXQuICBEb2VzIGBhdGgxMWtgIGhhdmUgYW4gZXF1aXZhbGVudCB0byBtYWM4MDIxMV9od3NpbT8gSSBkb3VidCBpdCwgYmVpbmcgYSBoYXJkd2FyZS1zcGVjaWZpYyBkcml2ZXIuIE5vLCBpdCdzIHRpZWQgdG8gdGhlIGFjdHVhbCBoYXJkd2FyZS4gIFxuXG5UaGUgaW5zdHJ1Y3Rpb25zIGV4cGxpY2l0bHkgc2F5IGFueXRoaW5nIHRoYXQgbmVlZHMgXCJwaHlzaWNhbCBQQ0llIGhhcmR3YXJlIGNhcmRzIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCBRRU1VXCIgaXMgZ2VuZXJhbGx5ICpub3QqIHdvcnRoIGZ1enppbmcsIGFuZCBpdCBwcm92aWRlcyBzb21lIGV4YW1wbGVzIGxpa2UgYG1seHN3YCwgYHBkc19jb3JlYCwgYHFlZGAsIGV0Yy4gIGBhdGgxMWtgIGlzIGEgdmVuZG9yLXNwZWNpZmljIGRyaXZlciAoUXVhbGNvbW0gQXRoZXJvcyA4MDIuMTFheCksIHNvIHRoYXQgaW5zdHJ1Y3Rpb24gYXBwbGllcyBoZXJlLlxuXG5TbywgbGV0J3MganVzdCBtYWtlIGl0IGNsZWFyLiBJcyB0aGlzIGEgdmVuZG9yLXNwZWNpZmljIGRyaXZlcj8gWWVzLCBpdCBpcy4gSXMgaXQgd29ydGggZnV6emluZz8gUHJvYmFibHkgbm90LCBkdWUgdG8gdGhlIGhhcmR3YXJlIGRlcGVuZGVuY2llcy4gSSBuZWVkIGFjdHVhbCBwaHlzaWNhbCBoYXJkd2FyZSB0byB0ZXN0IHRoaXMuIERvZXMgUUVNVSBldmVuICplbXVsYXRlKiBgYXRoMTFrYD8gTm9wZS5cblxuSnVzdCB0byBiZSBhYnNvbHV0ZWx5IHN1cmUsIGxldCdzIHF1aWNrbHkgZG91YmxlLWNoZWNrLiBJcyB0aGVyZSBhIFVTQiBvciBTRElPIGludGVyZmFjZSBvciBzb21ldGhpbmcgdGhhdCBJIG1pZ2h0IGZ1enogdmlhIFVTQiBnYWRnZXQgb3Igc29tZXRoaW5nIGFsb25nIHRob3NlIGxpbmVzPyBMZXQncyBxdWlja2x5IGdyZXAgZm9yIGBhdGgxMWtgIGJ1cyB0eXBlcyBqdXN0IGluIGNhc2UuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjIwODEsIk91dHB1dFRva2VucyI6NDEsIk91dHB1dFRob3VnaHRzVG9rZW5zIjo0MjUsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0xOFQwMDoxMzozMC45MDU2NDMzMDNaIiwiU2VxIjo0LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NjQ2NTIwMTMsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiYXRoMTFrXy4qX3Byb2JlXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmM9MTEwND1zdGF0aWMgaW50IGF0aDExa19haGJfZndfcmVzb3VyY2VfZGVpbml0KHN0cnVjdCBhdGgxMWtfYmFzZSAqYWIpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTExMzgtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYzoxMTM5OnN0YXRpYyBpbnQgYXRoMTFrX2FoYl9wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtMTE0MC17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jPTEzMzQ9c3RhdGljIHN0cnVjdCBwbGF0Zm9ybV9kcml2ZXIgYXRoMTFrX2FoYl9kcml2ZXIgPSB7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTEzMzgtXFx0fSxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jOjEzMzk6XFx0LnByb2JlID0gYXRoMTFrX2FoYl9wcm9iZSxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTEzNDAtXFx0LnJlbW92ZSA9IGF0aDExa19haGJfcmVtb3ZlLFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9tYWMuYz0zMzAyPXN0YXRpYyBpbnQgYXRoMTFrX21hY19maWxzX2Rpc2NvdmVyeShzdHJ1Y3QgYXRoMTFrX3ZpZiAqYXJ2aWYsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL21hYy5jLTMzMjQtXFx0XFx0aWYgKHRtcGwpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9tYWMuYzozMzI1OlxcdFxcdFxcdHJldCA9IGF0aDExa193bWlfcHJvYmVfcmVzcF90bXBsKGFyLCBhcnZpZi1cXHUwMDNldmRldl9pZCxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL21hYy5jLTMzMjYtXFx0XFx0XFx0XFx0XFx0XFx0XFx0IHRtcGwpO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9wY2kuYz05NDA9c3RhdGljIGludCBhdGgxMWtfcGNpX3NldF9pcnFfYWZmaW5pdHlfaGludChzdHJ1Y3QgYXRoMTFrX3BjaSAqYWJfcGNpLFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9wY2kuYy05NDgtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9wY2kuYzo5NDk6c3RhdGljIGludCBhdGgxMWtfcGNpX3Byb2JlKHN0cnVjdCBwY2lfZGV2ICpwZGV2LFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvcGNpLmMtOTUwLVxcdFxcdFxcdCAgICBjb25zdCBzdHJ1Y3QgcGNpX2RldmljZV9pZCAqcGNpX2RldilcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvcGNpLmM9MTI5Nj1zdGF0aWMgc3RydWN0IHBjaV9kcml2ZXIgYXRoMTFrX3BjaV9kcml2ZXIgPSB7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL3BjaS5jLTEyOTgtXFx0LmlkX3RhYmxlID0gYXRoMTFrX3BjaV9pZF90YWJsZSxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL3BjaS5jOjEyOTk6XFx0LnByb2JlID0gYXRoMTFrX3BjaV9wcm9iZSxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL3BjaS5jLTEzMDAtXFx0LnJlbW92ZSA9IGF0aDExa19wY2lfcmVtb3ZlLFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay93bWkuYz0zOTY1PWludCBhdGgxMWtfd21pX3BlZXJfc2V0X2Nmcl9jYXB0dXJlX2NvbmYoc3RydWN0IGF0aDExayAqYXIsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL3dtaS5jLTQwMDUtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay93bWkuYzo0MDA2OmludCBhdGgxMWtfd21pX3Byb2JlX3Jlc3BfdG1wbChzdHJ1Y3QgYXRoMTFrICphciwgdTMyIHZkZXZfaWQsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay93bWkuYy00MDA3LVxcdFxcdFxcdCAgICAgICBzdHJ1Y3Qgc2tfYnVmZiAqdG1wbClcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvd21pLmg9NjU4Nj1pbnQgYXRoMTFrX3dtaV9maWxzX2Rpc2NvdmVyeShzdHJ1Y3QgYXRoMTFrICphciwgdTMyIHZkZXZfaWQsIHUzMiBpbnRlcnZhbCxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL3dtaS5oLTY1ODctXFx0XFx0XFx0ICAgICAgYm9vbCB1bnNvbF9iY2FzdF9wcm9iZV9yZXNwX2VuYWJsZWQpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvd21pLmg6NjU4ODppbnQgYXRoMTFrX3dtaV9wcm9iZV9yZXNwX3RtcGwoc3RydWN0IGF0aDExayAqYXIsIHUzMiB2ZGV2X2lkLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvd21pLmgtNjU4OS1cXHRcXHRcXHQgICAgICAgc3RydWN0IHNrX2J1ZmYgKnRtcGwpO1xcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0xOFQwMDoxMzozMC45NzAzMDIyNDZaIiwiU2VxIjo1LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjozOTYxMTYyMTA0LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKldvcnRoRnV6emluZyBFdmFsdWF0aW9uKipcblxuT2theSwgc28gSSdtIGxvb2tpbmcgYXQgdGhpcyBkcml2ZXIuIEl0J3MgYnVpbHQgdG8gaGFuZGxlIGJvdGggUENJIGFuZCBBSEIgcGxhdGZvcm1zLiBUaGF0IGltbWVkaWF0ZWx5IGZsYWdzIGEgcHJvYmxlbSBmb3IgbXkgdXN1YWwgUUVNVSBmdXp6aW5nIHNldHVwLiBObyBzdHJhaWdodGZvcndhcmQgd2F5IHRvIGVtdWxhdGUgdGhvc2UgaW50ZXJmYWNlcyBmb3IgZnV6emluZyB3aXRob3V0IHNvbWUgZGVkaWNhdGVkIGhhcmR3YXJlIGVtdWxhdGlvbi4gQSBiaXQgb2YgYSByb2FkYmxvY2ssIGFkbWl0dGVkbHkuXG5cbldhaXQgYSBtaW51dGUuLi4gV01JIGV2ZW50cyEgVGhleSdyZSByZWNlaXZlZCBmcm9tIHRoZSBmaXJtd2FyZSwgcmlnaHQ/IFRoYXQgY291bGQgYmUgYSBwb3RlbnRpYWwgZW50cnkgcG9pbnQuIEJ1dCwgaGFuZyBvbi4uLiBubyBmaXJtd2FyZSBpcyBydW5uaW5nIGluIHRoaXMgUUVNVSBzZXR1cCwgZ2l2ZW4gdGhlcmUncyBubyBhY3R1YWwgaGFyZHdhcmUgdG8gaG9zdCB0aGUgZmlybXdhcmUgb24uIFNvLCB0aGF0IHdob2xlIGNvZGUgcGF0aCByZWxhdGluZyB0byBgYXRoMTFrX3NlcnZpY2VfcmVhZHlfZXh0X2V2ZW50YCBpcyB1bnJlYWNoYWJsZS5cblxuT2theSwgc28gSSB0aGluayBJJ3ZlIGV4aGF1c3RlZCB0aGUgaW1tZWRpYXRlbHkgb2J2aW91cyByb3V0ZXMgZm9yIGZ1enp6aW5nIHRoaXMgbW9kdWxlLCBidXQgbGV0IG1lIGp1c3QgZG91YmxlLWNoZWNrIGFnYWluLi4uIEFyZSB0aGVyZSAqYW55KiBvdGhlciBjb25jZWl2YWJsZSB3YXlzIHRvIHJlYWNoIGBhdGgxMWtfc2VydmljZV9yZWFkeV9leHRfZXZlbnRgPyBMZXQgbWUgc2VlLi4uXG5VbHRpbWF0ZWx5LCB0aGlzIGlzIHByb2JhYmx5IG5vdCB3b3J0aCB0aGUgZWZmb3J0LiBXb3J0aEZ1enppbmcgPSBGYWxzZS5cblxuXG4iLCJJbnB1dFRva2VucyI6NDE4OSwiT3V0cHV0VG9rZW5zIjo0NSwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjEyMywiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wOC0xOFQwMDoxMzozNC45MzE0OTI5NloiLCJTZXEiOjYsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoyNTM3Nzk0MDMsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiYXRoMTFrX3NlcnZpY2VfcmVhZHlfZXh0X2V2ZW50XCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvd21pLmM9NTAzNz1zdGF0aWMgaW50IGF0aDExa193bWlfdGx2X3N2Y19yZHlfZXh0X3BhcnNlKHN0cnVjdCBhdGgxMWtfYmFzZSAqYWIsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL3dtaS5jLTUxMTQtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay93bWkuYzo1MTE1OnN0YXRpYyBpbnQgYXRoMTFrX3NlcnZpY2VfcmVhZHlfZXh0X2V2ZW50KHN0cnVjdCBhdGgxMWtfYmFzZSAqYWIsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay93bWkuYy01MTE2LVxcdFxcdFxcdFxcdFxcdCAgc3RydWN0IHNrX2J1ZmYgKnNrYilcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvd21pLmM9ODkyOD1zdGF0aWMgdm9pZCBhdGgxMWtfd21pX3Rsdl9vcF9yeChzdHJ1Y3QgYXRoMTFrX2Jhc2UgKmFiLCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiKVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay93bWkuYy04OTQ4LVxcdGNhc2UgV01JX1NFUlZJQ0VfUkVBRFlfRVhUX0VWRU5USUQ6XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay93bWkuYzo4OTQ5OlxcdFxcdGF0aDExa19zZXJ2aWNlX3JlYWR5X2V4dF9ldmVudChhYiwgc2tiKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL3dtaS5jLTg5NTAtXFx0XFx0YnJlYWs7XFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTE4VDAwOjEzOjM1LjE4NTI3NjQ1NFoiLCJTZXEiOjcsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjYyNjU1NDIyOTQsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6Ik9rYXksIGhlcmUncyBteSB1bmRlcnN0YW5kaW5nLCBjb25zaWRlcmluZyBJJ20gZGVlcCBpbiB0aGlzIGNvZGU6XG5cbioqVW5yZWFjaGFibGUgQ29kZSBpbiBPdXIgVmlydHVhbGl6ZWQgV29ybGQqKlxuXG5BbHJpZ2h0LCBzbyBJJ20gbG9va2luZyBhdCB0aGlzIGBhdGgxMWtfd21pX3Rsdl9vcF9yeGAgZnVuY3Rpb24sIHRoZSBXTUkgKFdpcmVsZXNzIE1hbmFnZW1lbnQgSW50ZXJmYWNlKSByZWNlaXZlIGhhbmRsZXIuIFRoaXMgdGhpbmcgaXMgdGhlIHBvaW50IHdoZXJlIHRoZSBkcml2ZXIgZ2V0cyBtZXNzYWdlcyBzZW50IG92ZXIgdGhlIGhhcmR3YXJlIGJ1cyDigJMgbGlrZWx5IFBDSSBvciBBSEIg4oCTIGZyb20gdGhlIGZpcm13YXJlLiBUaGUgcHJvYmxlbSwgYXMgSSBzZWUgaXQsIGlzIHRoYXQgaW4gb3VyIGN1cnJlbnQgZW52aXJvbm1lbnQsIHdlJ3JlIHZpcnR1YWxpemVkLiBXZSBkb24ndCBoYXZlIGRpcmVjdCBhY2Nlc3MgdG8gdGhhdCBwaHlzaWNhbCBoYXJkd2FyZSwgbWVhbmluZyB3ZSBjYW4ndCBhY3R1YWxseSAqcmVjZWl2ZSogYW55IG9mIHRoZXNlIGZpcm13YXJlIG1lc3NhZ2VzLiBJIG1lYW4sIGl0J3MganVzdCBub3QgZ29pbmcgdG8gaGFwcGVuLlxuXG5UaGVyZWZvcmUsIGJlY2F1c2UgdGhpcyByZWNlaXZlIHBhdGggaXMgdW5yZWFjaGFibGUgaW4gb3VyIHNldHVwLCBJJ20gZ29pbmcgdG8gcmV0dXJuIGBXb3J0aEZ1enppbmc9ZmFsc2VgLiBObyBwb2ludCBpbiBnb2luZyBkb3duIGEgcmFiYml0IGhvbGUgdHJ5aW5nIHRvIGZ1enogc29tZXRoaW5nIHRoYXTigJlzIGVmZmVjdGl2ZWx5IGRlYWQgY29kZSBpbiBvdXIgY29udGV4dC4gV2UgbmVlZCB0byBmb2N1cyBvdXIgZWZmb3J0cyB3aGVyZSB0aGV5J2xsIGFjdHVhbGx5IGJlYXIgZnJ1aXQuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjQ5MzYsIk91dHB1dFRva2VucyI6MTM2LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6ODgsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDgtMThUMDA6MTM6NDEuNDUwODIxNjI4WiIsIlNlcSI6OCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoic2V0LXJlc3VsdHMiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoyMzg3MCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogW10sXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBmaXhlcyBhIG1lbW9yeSBsZWFrIGluIHRoZSBlcnJvciBwYXRoIG9mIGBhdGgxMWtfc2VydmljZV9yZWFkeV9leHRfZXZlbnRgIHdpdGhpbiB0aGUgYXRoMTFrIGRyaXZlci4gVGhlIGF0aDExayBkcml2ZXIgaXMgYSB2ZW5kb3Itc3BlY2lmaWMgd2lyZWxlc3MgZHJpdmVyIGZvciBRdWFsY29tbSBBdGhlcm9zIDgwMi4xMWF4IGhhcmR3YXJlLCB3aGljaCByZWxpZXMgb24gcGh5c2ljYWwgUENJIG9yIEFIQiBoYXJkd2FyZSBidXNlcy4gU2luY2UgdGhpcyBoYXJkd2FyZSBpcyBub3QgZW11bGF0ZWQgaW4gc3RhbmRhcmQgUUVNVSBlbnZpcm9ubWVudHMsIHRoZSBXTUkgZmlybXdhcmUgZXZlbnQgaGFuZGxpbmcgY29kZSBtb2RpZmllZCBpbiB0aGlzIHBhdGNoIGNhbm5vdCBiZSByZWFjaGVkIG9yIGV4ZWN1dGVkIGR1cmluZyBmdXp6aW5nLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiBmYWxzZVxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBudWxsLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggZml4ZXMgYSBtZW1vcnkgbGVhayBpbiB0aGUgZXJyb3IgcGF0aCBvZiBgYXRoMTFrX3NlcnZpY2VfcmVhZHlfZXh0X2V2ZW50YCB3aXRoaW4gdGhlIGF0aDExayBkcml2ZXIuIFRoZSBhdGgxMWsgZHJpdmVyIGlzIGEgdmVuZG9yLXNwZWNpZmljIHdpcmVsZXNzIGRyaXZlciBmb3IgUXVhbGNvbW0gQXRoZXJvcyA4MDIuMTFheCBoYXJkd2FyZSwgd2hpY2ggcmVsaWVzIG9uIHBoeXNpY2FsIFBDSSBvciBBSEIgaGFyZHdhcmUgYnVzZXMuIFNpbmNlIHRoaXMgaGFyZHdhcmUgaXMgbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIFFFTVUgZW52aXJvbm1lbnRzLCB0aGUgV01JIGZpcm13YXJlIGV2ZW50IGhhbmRsaW5nIGNvZGUgbW9kaWZpZWQgaW4gdGhpcyBwYXRjaCBjYW5ub3QgYmUgcmVhY2hlZCBvciBleGVjdXRlZCBkdXJpbmcgZnV6emluZy5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogZmFsc2Vcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTE4VDAwOjEzOjQxLjQ1MDg0OTU1OFoiLCJTZXEiOjksIk5lc3RpbmciOjEsIlR5cGUiOiJhY3Rpb24iLCJOYW1lIjoiSWYiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoyODAwLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiV29ydGhGdXp6aW5nXCI6IGZhbHNlXG59IiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfV07CgkJCWlmICghcmF3RGF0YSB8fCByYXdEYXRhLmxlbmd0aCA9PT0gMCkgcmV0dXJuOwoKCQkJZHJhd1N1bW1hcnlUYWJsZXMocmF3RGF0YSk7CgkJCWRyYXdEdXJhdGlvbkNoYXJ0KHJhd0RhdGEpOwoJCQlkcmF3VG9rZW5Db25zdW1wdGlvbkNoYXJ0KHJhd0RhdGEpOwoJCX0KCgkJZnVuY3Rpb24gZHJhd1N1bW1hcnlUYWJsZXMocmF3RGF0YSkgewoJCQljb25zdCBzdGF0cyA9IHsKCQkJCWxsbTogeyBjb3VudDogMCwgdG9rZW5zOiAwLCBkdXJhdGlvbjogMCB9LAoJCQkJdG9vbDogeyBjb3VudDogMCwgZHVyYXRpb246IDAgfQoJCQl9OwoKCQkJcmF3RGF0YS5mb3JFYWNoKHMgPT4gewoJCQkJY29uc3QgZHVyID0gcy5EdXJhdGlvbiAvIDEwMDAwMDAwMDA7IAoJCQkJaWYgKHMuVHlwZSA9PT0gImxsbSIpIHsKCQkJCQlzdGF0cy5sbG0uY291bnQrKzsKCQkJCQlzdGF0cy5sbG0udG9rZW5zICs9IChzLklucHV0VG9rZW5zICsgcy5PdXRwdXRUb2tlbnMgKyBzLk91dHB1dFRob3VnaHRzVG9rZW5zKTsKCQkJCQlzdGF0cy5sbG0uZHVyYXRpb24gKz0gZHVyOwoJCQkJfSBlbHNlIGlmIChzLlR5cGUgPT09ICJ0b29sIikgewoJCQkJCXN0YXRzLnRvb2wuY291bnQrKzsKCQkJCQlzdGF0cy50b29sLmR1cmF0aW9uICs9IGR1cjsKCQkJCX0KCQkJfSk7CgoJCQljb25zdCBhdmdMbG1EdXIgPSBzdGF0cy5sbG0uY291bnQgPiAwID8gKHN0YXRzLmxsbS5kdXJhdGlvbiAvIHN0YXRzLmxsbS5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgkJCWNvbnN0IGF2Z0xsbVRva2VuID0gc3RhdHMubGxtLmNvdW50ID4gMCA/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-workflowj2l45[1] Phase: Running StartedAt: 2026-08-18 00:13:52 +0000 UTC FinishedAt: 0001-01-01 00:00:00 +0000 UTC Input: nil Output: nil --------- Name: series-workflowj2l45[1].abort-on-skip-outcome Phase: Failed StartedAt: 2026-08-18 00:13:52 +0000 UTC FinishedAt: 2026-08-18 00:13:56 +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,}