Name: series-workflowrmgs5 Phase: Failed StartedAt: 2026-06-23 15:29:39 +0000 UTC FinishedAt: 2026-06-23 15:40:42 +0000 UTC Input: nil Output: nil --------- Name: series-workflowrmgs5[0] Phase: Succeeded StartedAt: 2026-06-23 15:29:39 +0000 UTC FinishedAt: 2026-06-23 15:40:32 +0000 UTC Input: nil Output: nil --------- Name: series-workflowrmgs5[0].run-triage Phase: Succeeded StartedAt: 2026-06-23 15:29:39 +0000 UTC FinishedAt: 2026-06-23 15:40:32 +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+CgkJCTx0ZD4yMDI2LzA2LzIzIDE1OjQwPC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBudWxsLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFtdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBhdGgxMmsgZHJpdmVyLCB3aGljaCBpcyBmb3IgUXVhbGNvbW0gV2ktRmkgNyBQQ0kvQUhCIGRldmljZXMuIFNpbmNlIHRoZXNlIHBoeXNpY2FsIGhhcmR3YXJlIGRldmljZXMgYXJlIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgKGxpa2UgUUVNVS9HQ0UpIHVzZWQgZm9yIGZ1enppbmcsIHRoaXMgY29kZSBwYXRoIGlzIHVucmVhY2hhYmxlLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IGZhbHNlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xLzE8L3RkPgoJCQk8dGQ+MjAyNi8wNi8yMyAxNTo0MDwvdGQ+CgkJCTx0ZD5hY3Rpb248L3RkPgoJCQk8dGQ+cmVhZC1wYXRjaC1kaWZmPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7UGF0Y2hEaWZmJiMzNDs6ICYjMzQ7Y29tbWl0IDNmMTQwMzk4NTZiMThiMzQ4YjUxZjU5NTZjMzg0N2JmMWVjYWRhZWZcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cdTAwM2VcbkRhdGU6ICAgVHVlIEp1biAyMyAxNTo0MDowMSAyMDI2ICYjNDM7MDAwMFxuXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XG5cbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3dtaS5jIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay93bWkuY1xuaW5kZXggODRhMzFiOTUzZGI4MWEuLmU3Njg5ZWUzZTcwMTUxIDEwMDY0NFxuLS0tIGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay93bWkuY1xuJiM0MzsmIzQzOyYjNDM7IGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay93bWkuY1xuQEAgLTUxNTQsNiAmIzQzOzUxNTQsNyBAQCBzdGF0aWMgdm9pZCBhdGgxMmtfd21pX2VodF9jYXBzX3BhcnNlKHN0cnVjdCBhdGgxMmtfcGRldiAqcGRldiwgdTMyIGJhbmQsXG4gXHRcdFx0XHQgICAgICAgX19sZTMyIGNhcF9pbmZvX2ludGVybmFsKVxuIHtcbiBcdHN0cnVjdCBhdGgxMmtfYmFuZF9jYXAgKmNhcF9iYW5kID0gXHUwMDI2cGRldi1cdTAwM2VjYXAuYmFuZFtiYW5kXTtcbiYjNDM7XHR1OCAqcGh5X2NhcCA9ICh1OCAqKVx1MDAyNmNhcF9iYW5kLVx1MDAzZWVodF9jYXBfcGh5X2luZm9bMF07XG4gXHR1MzIgc3VwcG9ydF8zMjBtaHo7XG4gXHR1OCBpO1xuIFxuQEAgLTUxNjcsOCAmIzQzOzUxNjgsMjIgQEAgc3RhdGljIHZvaWQgYXRoMTJrX3dtaV9laHRfY2Fwc19wYXJzZShzdHJ1Y3QgYXRoMTJrX3BkZXYgKnBkZXYsIHUzMiBiYW5kLFxuIFx0Zm9yIChpID0gMDsgaSBcdTAwM2MgV01JX01BWF9FSFRDQVBfUEhZX1NJWkU7IGkmIzQzOyYjNDM7KVxuIFx0XHRjYXBfYmFuZC1cdTAwM2VlaHRfY2FwX3BoeV9pbmZvW2ldID0gbGUzMl90b19jcHUoY2FwX3BoeV9pbmZvW2ldKTtcbiBcbi1cdGlmIChiYW5kID09IE5MODAyMTFfQkFORF82R0haKVxuJiM0MztcdGlmIChiYW5kID09IE5MODAyMTFfQkFORF82R0haKSB7XG4gXHRcdGNhcF9iYW5kLVx1MDAzZWVodF9jYXBfcGh5X2luZm9bMF0gfD0gc3VwcG9ydF8zMjBtaHo7XG4mIzQzO1x0fSBlbHNlIHtcbiYjNDM7XHRcdC8qXG4mIzQzO1x0XHQgKiBGaXJtd2FyZSBtYXkgcmVwb3J0IDYgR0h6LzMyMCBNSHogc3BlY2lmaWMgY2FwYWJpbGl0aWVzIGZvclxuJiM0MztcdFx0ICogbm9uLTYgR0h6IGJhbmRzLCBzbyBleHBsaWNpdGx5IGNsZWFyIHRoZW0uXG4mIzQzO1x0XHQgKi9cbiYjNDM7XHRcdHBoeV9jYXBbMF0gXHUwMDI2PSB+SUVFRTgwMjExX0VIVF9QSFlfQ0FQMF8zMjBNSFpfSU5fNkdIWjtcbiYjNDM7XHRcdHBoeV9jYXBbMV0gXHUwMDI2PSB+SUVFRTgwMjExX0VIVF9QSFlfQ0FQMV9CRUFNRk9STUVFX1NTXzMyME1IWl9NQVNLO1xuJiM0MztcdFx0cGh5X2NhcFsyXSBcdTAwMjY9IH5JRUVFODAyMTFfRUhUX1BIWV9DQVAyX1NPVU5ESU5HX0RJTV8zMjBNSFpfTUFTSztcbiYjNDM7XHRcdHBoeV9jYXBbM10gXHUwMDI2PSB+SUVFRTgwMjExX0VIVF9QSFlfQ0FQM19TT1VORElOR19ESU1fMzIwTUhaX01BU0s7XG4mIzQzO1x0XHRwaHlfY2FwWzZdIFx1MDAyNj0gfklFRUU4MDIxMV9FSFRfUEhZX0NBUDZfTUNTMTVfU1VQUF8zMjBNSFo7XG4mIzQzO1x0XHRwaHlfY2FwWzZdIFx1MDAyNj0gfklFRUU4MDIxMV9FSFRfUEhZX0NBUDZfRUhUX0RVUF82R0haX1NVUFA7XG4mIzQzO1x0XHRwaHlfY2FwWzddIFx1MDAyNj0gfklFRUU4MDIxMV9FSFRfUEhZX0NBUDdfTk9OX09GRE1BX1VMX01VX01JTU9fMzIwTUhaO1xuJiM0MztcdFx0cGh5X2NhcFs3XSBcdTAwMjY9IH5JRUVFODAyMTFfRUhUX1BIWV9DQVA3X01VX0JFQU1GT1JNRVJfMzIwTUhaO1xuJiM0MztcdH1cbiBcbiBcdGNhcF9iYW5kLVx1MDAzZWVodF9tY3NfMjBfb25seSA9IGxlMzJfdG9fY3B1KHN1cHBfbWNzWzBdKTtcbiBcdGNhcF9iYW5kLVx1MDAzZWVodF9tY3NfODAgPSBsZTMyX3RvX2NwdShzdXBwX21jc1sxXSk7XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Mi8xPC90ZD4KCQkJPHRkPjIwMjYvMDYvMjMgMTU6NDA8L3RkPgoJCQk8dGQ+YWdlbnQ8L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IG51bGwsCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogW10sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIGF0aDEyayBkcml2ZXIsIHdoaWNoIGlzIGZvciBRdWFsY29tbSBXaS1GaSA3IFBDSS9BSEIgZGV2aWNlcy4gU2luY2UgdGhlc2UgcGh5c2ljYWwgaGFyZHdhcmUgZGV2aWNlcyBhcmUgbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyAobGlrZSBRRU1VL0dDRSkgdXNlZCBmb3IgZnV6emluZywgdGhpcyBjb2RlIHBhdGggaXMgdW5yZWFjaGFibGUuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogZmFsc2UKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+SW5zdHJ1Y3Rpb246PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Zb3UgYXJlIGFuIGV4cGVydCBMaW51eCBrZXJuZWwgbWFpbnRhaW5lci4KWW91ciBqb2IgaXMgdG8gcmV2aWV3IGEgcHJvdmlkZWQgcGF0Y2ggc2VyaWVzIGFuZCBkZXRlcm1pbmUKaWYgaXQgbWFrZXMgZnVuY3Rpb25hbCBjaGFuZ2VzIHRvIHRoZSBrZXJuZWwgdGhhdCBzaG91bGQgYmUgZnV6emVkLgoKSU1QT1JUQU5UOiBUaGUgY2hhbmdlcyBoYXZlIEFMUkVBRFkgYmVlbiBhcHBsaWVkIGFuZCBjb21taXR0ZWQgYXMgdGhlIEhFQUQgY29tbWl0IGluCnlvdXIgd29ya3NwYWNlLiBEbyBOT1QgcmVseSBvbiB5b3VyIGludGVybmFsIGtub3dsZWRnZSBvZiB0aGUga2VybmVsLiBZb3UgbXVzdCBhY3RpdmVseQp1c2UgeW91ciBjb2RlIGFjY2VzcyB0b29scyB0byBleGFtaW5lIHRoZSBhY3R1YWwgc291cmNlIGNvZGUgYW5kIGNvbmZpcm0gYW55IGFzc3VtcHRpb25zLgoKUmV0dXJuIFdvcnRoRnV6emluZz1mYWxzZSBpZiB0aGUgcGF0Y2ggb25seSBjb250YWluczoKLSBNb2RpZmljYXRpb25zIHRvIERvY3VtZW50YXRpb24vLCBLY29uZmlnIGZpbGVzLCBvciBjb2RlIGNvbW1lbnRzLgotIFB1cmVseSBkZWNvcmF0aXZlIGNoYW5nZXMsIHN1Y2ggYXMgbG9nZ2luZyAoZS5nLiwgcHJfZXJyLCBwcmludGspIG9yIHRyYWNlcG9pbnRzLgotIENoYW5nZXMgdG8gbnVtZXJpYyBjb25zdGFudHMgb3IgbWFjcm9zIHRoYXQgZG8gbm90IGZ1bmN0aW9uYWxseSBhbHRlciBleGVjdXRpb24gZmxvdy4KLSBDb2RlIHBhdGhzIHRoYXQgYXJlIGltcG9zc2libGUgdG8gcmVhY2ggaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgR0NFIG9yIFFFTVUsCmV2ZW4gd2hlbiB1dGlsaXppbmcgc29mdHdhcmUtZW11bGF0ZWQgaGFyZHdhcmUgKGUuZy4sIHVzYiBnYWRnZXQsIG1hYzgwMjExX2h3c2ltKS4KCklmIGl0IG1vZGlmaWVzIHJlYWNoYWJsZSBjb3JlIGtlcm5lbCBsb2dpYywgZHJpdmVycywgb3IgYXJjaGl0ZWN0dXJlcywgdXNlIHlvdXIgY29kZSBzZWFyY2gKdG9vbHMgdG8gdmVyaWZ5IHRoZSBjb2RlIGNhbiBiZSBleGVjdXRlZCwgdGhlbiByZXR1cm4gV29ydGhGdXp6aW5nPXRydWUuCgpXaGVuIHJldHVybmluZyBXb3J0aEZ1enppbmc9dHJ1ZSwgeW91IE1VU1QgQUxTTzoKMS4gRXh0cmFjdCBhbnkgc3BlY2lmaWMga2VybmVsIGZ1bmN0aW9ucyB0aGF0IHNob3VsZCBiZSBoZWF2aWx5IGZ1enplZCBpbnRvIEZvY3VzU3ltYm9scy4KICAgQXZvaWQgbGlzdGluZyBnZW5lcmljIGhvdC1wYXRoIGZ1bmN0aW9ucyB0byBwcmV2ZW50IHNrZXdlZCB0ZXN0IGRpc3RyaWJ1dGlvbnMuCjIuIElkZW50aWZ5IGFueSBzcGVjaWZpYyBDT05GSUdfIG9wdGlvbnMgcmVxdWlyZWQgdG8gcHJvcGVybHkgdGVzdCB0aGlzIG5ldy9tb2RpZmllZCBmZWF0dXJlLgogICBHbyBhbmQgbG9vayBpbnRvIHRoZSBLY29uZmlnIGZpbGVzIGFuZCBjaGVjayBmb3IgaWZkZWZzIGFyb3VuZCB0aGUgY29kZSwgZG8gbm90IG1ha2UgYXNzdW1wdGlvbnMuCiAgIERvIG5vdCBsaXN0IHRvbyBnZW5lcmljIGNvbmZpZ3MgKHdlIGFscmVhZHkgaGF2ZSB0aGVtIGVuYWJsZWQpLiBPbmx5IGxpc3QgdGhvc2UgdGhhdAogICBzcGVjaWZpY2FsbHkgY292ZXIgdGhlIG1vZGlmaWVkIGNvZGUuIExpc3QgdGhlbSBpbiB0aGUgRW5hYmxlQ29uZmlncyBvdXRwdXQgYXJyYXksCiAgIGFuZCBETyBOT1QgYWRkIGEgJiMzOTtDT05GSUdfJiMzOTsgcHJlZml4IChlLmcuLCByZXR1cm4gJiMzNDtORVRfSVBWNCYjMzQ7IGluc3RlYWQgb2YgJiMzNDtDT05GSUdfTkVUX0lQVjQmIzM0OykuClByZWZlciBjYWxsaW5nIHNldmVyYWwgdG9vbHMgYXQgdGhlIHNhbWUgdGltZSB0byBzYXZlIHJvdW5kLXRyaXBzLgoKClVzZSBzZXQtcmVzdWx0cyB0b29sIHRvIHByb3ZpZGUgcmVzdWx0cyBvZiB0aGUgYW5hbHlzaXMuCkl0IG11c3QgYmUgY2FsbGVkIGV4YWN0bHkgb25jZSBiZWZvcmUgdGhlIGZpbmFsIHJlcGx5LgpJZ25vcmUgcmVzdWx0cyBvZiB0aGlzIHRvb2wuCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UHJvbXB0OjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Rm9yIHlvdXIgY29udmVuaWVuY2UsIGhlcmUgaXMgdGhlIGRpZmYgb2YgdGhlIGNoYW5nZXM6CmNvbW1pdCAzZjE0MDM5ODU2YjE4YjM0OGI1MWY1OTU2YzM4NDdiZjFlY2FkYWVmCkF1dGhvcjogc3l6LWNsdXN0ZXIgJmx0O3RyaWFnZUBzeXprYWxsZXIuY29tJmd0OwpEYXRlOiAgIFR1ZSBKdW4gMjMgMTU6NDA6MDEgMjAyNiAmIzQzOzAwMDAKCiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXcKCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3dtaS5jIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay93bWkuYwppbmRleCA4NGEzMWI5NTNkYjgxYS4uZTc2ODllZTNlNzAxNTEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvd21pLmMKJiM0MzsmIzQzOyYjNDM7IGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay93bWkuYwpAQCAtNTE1NCw2ICYjNDM7NTE1NCw3IEBAIHN0YXRpYyB2b2lkIGF0aDEya193bWlfZWh0X2NhcHNfcGFyc2Uoc3RydWN0IGF0aDEya19wZGV2ICpwZGV2LCB1MzIgYmFuZCwKIAkJCQkgICAgICAgX19sZTMyIGNhcF9pbmZvX2ludGVybmFsKQogewogCXN0cnVjdCBhdGgxMmtfYmFuZF9jYXAgKmNhcF9iYW5kID0gJmFtcDtwZGV2LSZndDtjYXAuYmFuZFtiYW5kXTsKJiM0MzsJdTggKnBoeV9jYXAgPSAodTggKikmYW1wO2NhcF9iYW5kLSZndDtlaHRfY2FwX3BoeV9pbmZvWzBdOwogCXUzMiBzdXBwb3J0XzMyMG1oejsKIAl1OCBpOwogCkBAIC01MTY3LDggJiM0Mzs1MTY4LDIyIEBAIHN0YXRpYyB2b2lkIGF0aDEya193bWlfZWh0X2NhcHNfcGFyc2Uoc3RydWN0IGF0aDEya19wZGV2ICpwZGV2LCB1MzIgYmFuZCwKIAlmb3IgKGkgPSAwOyBpICZsdDsgV01JX01BWF9FSFRDQVBfUEhZX1NJWkU7IGkmIzQzOyYjNDM7KQogCQljYXBfYmFuZC0mZ3Q7ZWh0X2NhcF9waHlfaW5mb1tpXSA9IGxlMzJfdG9fY3B1KGNhcF9waHlfaW5mb1tpXSk7CiAKLQlpZiAoYmFuZCA9PSBOTDgwMjExX0JBTkRfNkdIWikKJiM0MzsJaWYgKGJhbmQgPT0gTkw4MDIxMV9CQU5EXzZHSFopIHsKIAkJY2FwX2JhbmQtJmd0O2VodF9jYXBfcGh5X2luZm9bMF0gfD0gc3VwcG9ydF8zMjBtaHo7CiYjNDM7CX0gZWxzZSB7CiYjNDM7CQkvKgomIzQzOwkJICogRmlybXdhcmUgbWF5IHJlcG9ydCA2IEdIei8zMjAgTUh6IHNwZWNpZmljIGNhcGFiaWxpdGllcyBmb3IKJiM0MzsJCSAqIG5vbi02IEdIeiBiYW5kcywgc28gZXhwbGljaXRseSBjbGVhciB0aGVtLgomIzQzOwkJICovCiYjNDM7CQlwaHlfY2FwWzBdICZhbXA7PSB+SUVFRTgwMjExX0VIVF9QSFlfQ0FQMF8zMjBNSFpfSU5fNkdIWjsKJiM0MzsJCXBoeV9jYXBbMV0gJmFtcDs9IH5JRUVFODAyMTFfRUhUX1BIWV9DQVAxX0JFQU1GT1JNRUVfU1NfMzIwTUhaX01BU0s7CiYjNDM7CQlwaHlfY2FwWzJdICZhbXA7PSB+SUVFRTgwMjExX0VIVF9QSFlfQ0FQMl9TT1VORElOR19ESU1fMzIwTUhaX01BU0s7CiYjNDM7CQlwaHlfY2FwWzNdICZhbXA7PSB+SUVFRTgwMjExX0VIVF9QSFlfQ0FQM19TT1VORElOR19ESU1fMzIwTUhaX01BU0s7CiYjNDM7CQlwaHlfY2FwWzZdICZhbXA7PSB+SUVFRTgwMjExX0VIVF9QSFlfQ0FQNl9NQ1MxNV9TVVBQXzMyME1IWjsKJiM0MzsJCXBoeV9jYXBbNl0gJmFtcDs9IH5JRUVFODAyMTFfRUhUX1BIWV9DQVA2X0VIVF9EVVBfNkdIWl9TVVBQOwomIzQzOwkJcGh5X2NhcFs3XSAmYW1wOz0gfklFRUU4MDIxMV9FSFRfUEhZX0NBUDdfTk9OX09GRE1BX1VMX01VX01JTU9fMzIwTUhaOwomIzQzOwkJcGh5X2NhcFs3XSAmYW1wOz0gfklFRUU4MDIxMV9FSFRfUEhZX0NBUDdfTVVfQkVBTUZPUk1FUl8zMjBNSFo7CiYjNDM7CX0KIAogCWNhcF9iYW5kLSZndDtlaHRfbWNzXzIwX29ubHkgPSBsZTMyX3RvX2NwdShzdXBwX21jc1swXSk7CiAJY2FwX2JhbmQtJmd0O2VodF9tY3NfODAgPSBsZTMyX3RvX2NwdShzdXBwX21jc1sxXSk7CjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjMvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA2LzIzIDE1OjQwPC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDI1MDUKCQkJCQkJCW91dHB1dDogNDAKCQkJCQkJCXRob3VnaHRzOiAyMTcKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqQW5hbHl6aW5nIGEgUmVjZW50IFBhdGNoIGluIHRoZSBhdGgxMmsgRHJpdmVyKioKCk9rYXksIHNvIHRoZXJlJiMzOTtzIGEgcGF0Y2ggaW4gYGRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvd21pLmNgIHRoYXQgbW9kaWZpZXMgdGhlIGBhdGgxMmtfd21pX2VodF9jYXBzX3BhcnNlYCBmdW5jdGlvbi4gU3BlY2lmaWNhbGx5LCBpdCYjMzk7cyBjbGVhcmluZyBjZXJ0YWluIGJpdHMgaW4gYGNhcF9iYW5kLSZndDtlaHRfY2FwX3BoeV9pbmZvYCBmb3Igbm9uLTZHSHogYmFuZHMuIFRoaXMgaXMgaW50ZXJlc3RpbmcuIFRoaXMgaXMgYSBwcmV0dHkgbmV3IGRyaXZlciwgaXQgaGFuZGxlcyBXaS1GaSA3IGRldmljZXMgZnJvbSBRdWFsY29tbSwgdGhlIGF0aDEyayBkcml2ZXIuIE15IGluaXRpYWwgdGhvdWdodCBpcywgaG93IGxpa2VseSBpcyB0aGlzIHRvIGV2ZW4gKmJlKiByZWFjaGFibGUgaW4gdGhlIGRlZmF1bHQgc3l6a2FsbGVyIGVudmlyb25tZW50PwoKR2VuZXJhbGx5LCB3aXRoIHBoeXNpY2FsIFdpLUZpIGRyaXZlcnMgbGlrZSB0aGlzLCB5b3UmIzM5O3JlIGRlYWxpbmcgd2l0aCBzcGVjaWZpYyBoYXJkd2FyZSBpbnRlcmZhY2VzIGxpa2UgUENJZSBvciBBSEIuIFRoYXQgdXN1YWxseSBtZWFucyBpdCB3b24mIzM5O3QgYmUgZW11bGF0ZWQgYXV0b21hdGljYWxseSBpbiBzeXprYWxsZXIgdW5sZXNzIHdlJiMzOTtyZSB0YWxraW5nIGFib3V0IGEgc3BlY2lhbCBlbXVsYXRvciwgb3IgcGVyaGFwcyBhIFVTQiBkZXZpY2UgdGhhdCBjYW4gYmUgbW9ja2VkIHVwIHdpdGggYGR1bW15X2hjZGAgb3IgYHJhdy1nYWRnZXRgLiBCdXQgd2FpdCwgSSBuZWVkIHRvIGNoZWNrIHNvbWV0aGluZy4gRG9lcyBgYXRoMTJrYCBvbmx5IHN1cHBvcnQgUENJZS9BSEI/IE9yIGRvZXMgaXQgYWxzbyBoYXZlIFVTQiBvciBTRElPIHN1cHBvcnQ/IEl0IG1pZ2h0IGluY3JlYXNlIHRoZSB0ZXN0IGNvdmVyYWdlIGZvciBpdCBpZiBpdCBkb2VzLiBJIHNob3VsZCBjaGVjayB0aGUgYGRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvS2NvbmZpZ2AgZmlsZS4gVGhhdCBzaG91bGQgZ2l2ZSBtZSB0aGUgYW5zd2VyLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjQvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA2LzIzIDE1OjQwPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O2NvbmZpZyBBVEgxMksmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL0tjb25maWcmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9LY29uZmlnLTEtIyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQlNELTMtQ2xhdXNlLUNsZWFyXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL0tjb25maWc6Mjpjb25maWcgQVRIMTJLXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL0tjb25maWctMy1cdHRyaXN0YXRlIFwmIzM0O1F1YWxjb21tIFdpLUZpIDcgc3VwcG9ydCAoYXRoMTJrKVwmIzM0O1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvS2NvbmZpZy0xNi1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvS2NvbmZpZzoxNzpjb25maWcgQVRIMTJLX0FIQlxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9LY29uZmlnLTE4LVx0Ym9vbCBcJiMzNDtRdWFsY29tbSBhdGgxMmsgQUhCIHN1cHBvcnRcJiMzNDtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL0tjb25maWctMjQtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL0tjb25maWc6MjU6Y29uZmlnIEFUSDEyS19ERUJVR1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9LY29uZmlnLTI2LVx0Ym9vbCBcJiMzNDthdGgxMmsgZGVidWdnaW5nXCYjMzQ7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9LY29uZmlnLTM0LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9LY29uZmlnOjM1OmNvbmZpZyBBVEgxMktfREVCVUdGU1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9LY29uZmlnLTM2LVx0Ym9vbCBcJiMzNDtRdWFsY29tbSBhdGgxMmsgZGVidWdmcyBzdXBwb3J0XCYjMzQ7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9LY29uZmlnLTQzLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9LY29uZmlnOjQ0OmNvbmZpZyBBVEgxMktfVFJBQ0lOR1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9LY29uZmlnLTQ1LVx0Ym9vbCBcJiMzNDthdGgxMmsgdHJhY2luZyBzdXBwb3J0XCYjMzQ7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9LY29uZmlnLTUyLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9LY29uZmlnOjUzOmNvbmZpZyBBVEgxMktfQ09SRURVTVBcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvS2NvbmZpZy01NC1cdGJvb2wgXCYjMzQ7YXRoMTJrIGNvcmVkdW1wXCYjMzQ7XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+NS8yPC90ZD4KCQkJPHRkPjIwMjYvMDYvMjMgMTU6NDA8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMzU3MAoJCQkJCQkJb3V0cHV0OiA0MgoJCQkJCQkJdGhvdWdodHM6IDExCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Pa2F5LCBoZXJlJiMzOTtzIG15IGF0dGVtcHQgYXQgc3VtbWFyaXppbmcgdGhlIHRob3VnaHQgcHJvY2VzcywgdGFpbG9yZWQgZm9yIGFuIGV4cGVydCBhdWRpZW5jZToKCioqUENJIFN1cHBvcnQgQ2hlY2sqKgoKUmlnaHQsIGxldCYjMzk7cyBnZXQgZG93biB0byBicmFzcyB0YWNrcy4gSSYjMzk7bSB0YWtpbmcgYSBsb29rIGF0IHRoaXMgc3lzdGVtIGFuZCB0aGUgZmlyc3QgdGhpbmcgdGhhdCYjMzk7cyBnb2luZyB0aHJvdWdoIG15IGhlYWQgaXM6ICpkb2VzIGl0IGhhdmUgUENJIHN1cHBvcnQ/KiBJIG5lZWQgdG8gdmVyaWZ5IGl0cyBwcmVzZW5jZS4gSSBrbm93IHRoZSBpbXBsaWNhdGlvbnM7IGlmIGl0JiMzOTtzIHRoZXJlLCBpdCBvcGVucyB1cCBhIHdob2xlIGxhbmRzY2FwZSBvZiBwb3NzaWJpbGl0aWVzLCBmcm9tIGxlZ2FjeSBoYXJkd2FyZSBpbnRlZ3JhdGlvbiB0byBwb3RlbnRpYWxseSBzdXBwb3J0aW5nIGNlcnRhaW4gc3BlY2lhbGl6ZWQgYWNjZWxlcmF0b3IgY2FyZHMuIElmIGl0JiMzOTtzIGFic2VudCwgd2VsbCwgdGhhdCBzaW1wbGlmaWVzIHRoaW5ncyBidXQgZHJhc3RpY2FsbHkgY3VydGFpbHMgcG90ZW50aWFsIHVwZ3JhZGUgcGF0aHMgYW5kIGxlZ2FjeSBjb21wYXRpYmlsaXR5LiBTbywgc3RyYWlnaHQgdG8gdGhlIFBDSSBxdWVzdGlvbi4gTGV04oCZcyBnZXQgdGhhdCBlc3RhYmxpc2hlZCBmaXJzdCBhbmQgdGhlbiB3ZSBjYW4gZGV0ZXJtaW5lIGhvdyB3ZSBtb3ZlIGZvcndhcmQuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Ni8yPC90ZD4KCQkJPHRkPjIwMjYvMDYvMjMgMTU6NDA8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPkVycm9yOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bm8gbWF0Y2hlczwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtjb25maWcgQVRIMTJLX1BDSSYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvS2NvbmZpZyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtlcnJvciYjMzQ7OiAmIzM0O25vIG1hdGNoZXMmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Ny8yPC90ZD4KCQkJPHRkPjIwMjYvMDYvMjMgMTU6NDA8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMzc5MgoJCQkJCQkJb3V0cHV0OiA0MgoJCQkJCQkJdGhvdWdodHM6IDI0CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5IZXJlJiMzOTtzIG15IHRob3VnaHQgcHJvY2VzcywgYXMgaWYgSSB3ZXJlIGNvbnNpZGVyaW5nIHRoaXM6CgoqKkluaXRpYWwgQXNzZXNzbWVudDogTmF2aWdhdGluZyB0aGUgRGV2aWNlIFRyZWUqKgoKT2theSwgSSYjMzk7bSBsb29raW5nIGF0IHRoaXMuLi4gJiMzNDtBVEgxMktfQUhCLiYjMzQ7IFJpZ2h0IGF3YXksIHRoZSBBSEIgYnVzIGlzIGEgY2x1ZS4gQnV0IGJlZm9yZSBJIGdvIGFueSBmdXJ0aGVyLCBJIG5lZWQgdG8ga25vdyBpZiB3ZSYjMzk7cmUgZGVhbGluZyB3aXRoIFBDSSBoZXJlIHRvby4gSSYjMzk7bSBnb2luZyB0byBoYXZlIHRvIGRpdmUgaW50byB0aGUgS2NvbmZpZyBmb3IgdGhpcy4gSSBuZWVkIHRvIHVuZGVyc3RhbmQgdGhlIGNvbmZpZ3VyYXRpb24gb3B0aW9ucyBhbmQgc2VlIGhvdyB0aGlzIHBhcnRpY3VsYXIgZGV2aWNlIGlzIGRlZmluZWQgaW4gdGhlIGJyb2FkZXIgc3lzdGVtIGNvbnRleHQuIExldCYjMzk7cyBzZWUgd2hhdCB0aGUgS2NvbmZpZyBmaWxlcyByZXZlYWwgYWJvdXQgdGhlIHBvc3NpYmxlIGludGVncmF0aW9uIG9wdGlvbnMuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+OC8yPC90ZD4KCQkJPHRkPjIwMjYvMDYvMjMgMTU6NDA8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5yZWFkLWZpbGU8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0ZpbGUmIzM0OzogJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL0tjb25maWcmIzM0OywKICAmIzM0O0ZpcnN0TGluZSYjMzQ7OiAxLAogICYjMzQ7TGluZUNvdW50JiMzNDs6IDEwMAp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7Q29udGVudHMmIzM0OzogJiMzNDsgICAxOlx0IyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQlNELTMtQ2xhdXNlLUNsZWFyXG4gICAyOlx0Y29uZmlnIEFUSDEyS1xuICAgMzpcdFx0dHJpc3RhdGUgXCYjMzQ7UXVhbGNvbW0gV2ktRmkgNyBzdXBwb3J0IChhdGgxMmspXCYjMzQ7XG4gICA0Olx0XHRkZXBlbmRzIG9uIE1BQzgwMjExIFx1MDAyNlx1MDAyNiBIQVNfRE1BIFx1MDAyNlx1MDAyNiBQQ0lcbiAgIDU6XHRcdHNlbGVjdCBRQ09NX1FNSV9IRUxQRVJTXG4gICA2Olx0XHRzZWxlY3QgTUhJX0JVU1xuICAgNzpcdFx0c2VsZWN0IFFSVFJcbiAgIDg6XHRcdHNlbGVjdCBRUlRSX01ISVxuICAgOTpcdFx0c2VsZWN0IFBDSV9QV1JDVFJMX1BXUlNFUSBpZiBIQVZFX1BXUkNUUkxcbiAgMTA6XHRcdGhlbHBcbiAgMTE6XHRcdCAgRW5hYmxlIHN1cHBvcnQgZm9yIFF1YWxjb21tIFRlY2hub2xvZ2llcyBXaS1GaSA3IChJRUVFXG4gIDEyOlx0XHQgIDgwMi4xMWJlKSBmYW1pbHkgb2YgY2hpcHNldHMsIGZvciBleGFtcGxlIFdDTjc4NTAgYW5kXG4gIDEzOlx0XHQgIFFDTjkyNzQuXG4gIDE0Olx0XG4gIDE1Olx0XHQgIElmIHlvdSBjaG9vc2UgdG8gYnVpbGQgYSBtb2R1bGUsIGl0JiMzOTtsbCBiZSBjYWxsZWQgYXRoMTJrLlxuICAxNjpcdFxuICAxNzpcdGNvbmZpZyBBVEgxMktfQUhCXG4gIDE4Olx0XHRib29sIFwmIzM0O1F1YWxjb21tIGF0aDEyayBBSEIgc3VwcG9ydFwmIzM0O1xuICAxOTpcdFx0ZGVwZW5kcyBvbiBBVEgxMksgXHUwMDI2XHUwMDI2IFJFTU9URVBST0NcbiAgMjA6XHRcdHNlbGVjdCBRQ09NX01EVF9MT0FERVJcbiAgMjE6XHRcdHNlbGVjdCBRQ09NX1NDTVxuICAyMjpcdFx0aGVscFxuICAyMzpcdFx0ICBFbmFibGUgc3VwcG9ydCBmb3IgQXRoMTJrIEFIQiBidXMgY2hpcHNldHMsIGV4YW1wbGUgSVBRNTMzMi5cbiAgMjQ6XHRcbiAgMjU6XHRjb25maWcgQVRIMTJLX0RFQlVHXG4gIDI2Olx0XHRib29sIFwmIzM0O2F0aDEyayBkZWJ1Z2dpbmdcJiMzNDtcbiAgMjc6XHRcdGRlcGVuZHMgb24gQVRIMTJLXG4gIDI4Olx0XHRoZWxwXG4gIDI5Olx0XHQgIEVuYWJsZSBkZWJ1ZyBzdXBwb3J0LCBmb3IgZXhhbXBsZSBkZWJ1ZyBtZXNzYWdlcyB3aGljaCBtdXN0XG4gIDMwOlx0XHQgIGJlIGVuYWJsZWQgc2VwYXJhdGVseSB1c2luZyB0aGUgZGVidWdfbWFzayBtb2R1bGUgcGFyYW1ldGVyLlxuICAzMTpcdFxuICAzMjpcdFx0ICBJZiB1bnN1cmUsIHNheSBZIHRvIG1ha2UgaXQgZWFzaWVyIHRvIGRlYnVnIHByb2JsZW1zLiBCdXQgaWZcbiAgMzM6XHRcdCAgeW91IHdhbnQgb3B0aW1hbCBwZXJmb3JtYW5jZSBjaG9vc2UgTi5cbiAgMzQ6XHRcbiAgMzU6XHRjb25maWcgQVRIMTJLX0RFQlVHRlNcbiAgMzY6XHRcdGJvb2wgXCYjMzQ7UXVhbGNvbW0gYXRoMTJrIGRlYnVnZnMgc3VwcG9ydFwmIzM0O1xuICAzNzpcdFx0ZGVwZW5kcyBvbiBBVEgxMksgXHUwMDI2XHUwMDI2IE1BQzgwMjExX0RFQlVHRlNcbiAgMzg6XHRcdGhlbHBcbiAgMzk6XHRcdCAgRW5hYmxlIGF0aDEyayBkZWJ1Z2ZzIHN1cHBvcnRcbiAgNDA6XHRcbiAgNDE6XHRcdCAgSWYgdW5zdXJlLCBzYXkgWSB0byBtYWtlIGl0IGVhc2llciB0byBkZWJ1ZyBwcm9ibGVtcy4gQnV0IGlmXG4gIDQyOlx0XHQgIHlvdSB3YW50IG9wdGltYWwgcGVyZm9ybWFuY2UgY2hvb3NlIE4uXG4gIDQzOlx0XG4gIDQ0Olx0Y29uZmlnIEFUSDEyS19UUkFDSU5HXG4gIDQ1Olx0XHRib29sIFwmIzM0O2F0aDEyayB0cmFjaW5nIHN1cHBvcnRcJiMzNDtcbiAgNDY6XHRcdGRlcGVuZHMgb24gQVRIMTJLIFx1MDAyNlx1MDAyNiBFVkVOVF9UUkFDSU5HXG4gIDQ3Olx0XHRoZWxwXG4gIDQ4Olx0XHQgIEVuYWJsZSBhdGgxMmsgdHJhY2luZyBpbmZyYXN0cnVjdHVyZS5cbiAgNDk6XHRcbiAgNTA6XHRcdCAgSWYgdW5zdXJlLCBzYXkgWSB0byBtYWtlIGl0IGVhc2llciB0byBkZWJ1ZyBwcm9ibGVtcy4gQnV0IGlmXG4gIDUxOlx0XHQgIHlvdSB3YW50IG9wdGltYWwgcGVyZm9ybWFuY2UgY2hvb3NlIE4uXG4gIDUyOlx0XG4gIDUzOlx0Y29uZmlnIEFUSDEyS19DT1JFRFVNUFxuICA1NDpcdFx0Ym9vbCBcJiMzNDthdGgxMmsgY29yZWR1bXBcJiMzNDtcbiAgNTU6XHRcdGRlcGVuZHMgb24gQVRIMTJLXG4gIDU2Olx0XHRzZWxlY3QgV0FOVF9ERVZfQ09SRURVTVBcbiAgNTc6XHRcdGhlbHBcbiAgNTg6XHRcdCAgRW5hYmxlIGF0aDEyayBjb3JlZHVtcCBjb2xsZWN0aW9uXG4gIDU5Olx0XG4gIDYwOlx0XHQgIElmIHVuc3VyZSwgc2F5IFkgdG8gbWFrZSBpdCBlYXNpZXIgdG8gZGVidWcgcHJvYmxlbXMuIEJ1dCBpZlxuICA2MTpcdFx0ICBkdW1wIGNvbGxlY3Rpb24gbm90IHJlcXVpcmVkIGNob29zZSBOLlxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjkvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA2LzIzIDE1OjQwPC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDQ4NDIKCQkJCQkJCW91dHB1dDogOTAKCQkJCQkJCXRob3VnaHRzOiAxNjEKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqVW5yZWFjaGFibGUgQ29kZSBpbiBTdGFuZGFyZCBGdXp6aW5nIEVudmlyb25tZW50cyoqCgpPa2F5LCBzbyBJJiMzOTt2ZSBsb29rZWQgb3ZlciB0aGlzIHBhdGNoIGFuZCBteSBpbml0aWFsIGFzc2Vzc21lbnQgaXMgdGhhdCB0aGUgY29kZSBpbiBxdWVzdGlvbiwgc3BlY2lmaWNhbGx5IHRoZSBtb2RpZmljYXRpb25zIHRvIHRoZSBhdGgxMmsgZHJpdmVyLCBpcyBoaWdobHkgdW5saWtlbHkgdG8gYmUgcmVhY2hhYmxlIGluIHR5cGljYWwgZnV6emluZyBzZXR1cHMuIFRoZSBkcml2ZXIgaXRzZWxmIGlzIGRlc2lnbmVkIGZvciBRdWFsY29tbSBXaS1GaSA3IGRldmljZXMsIG1lYW5pbmcgaXQgcmVsaWVzIG9uIGVpdGhlciBQQ0kgb3IgQUhCIGludGVyZmFjZXMuCgpCZWNhdXNlIHdlJiMzOTtyZSB0YWxraW5nIGFib3V0IGEgKnBoeXNpY2FsKiBkZXZpY2UgZHJpdmVyLCBhbmQgbm90IHNvbWV0aGluZyBlbXVsYXRlZCBsaWtlIFVTQiBvciBhIHB1cmVseSBzb2Z0d2FyZS1iYXNlZCBjb21wb25lbnQsIGl0JiMzOTtzIHZpcnR1YWxseSBpbXBvc3NpYmxlIHRvIHRyaWdnZXIgdGhpcyBjb2RlIGluIHN0YW5kYXJkIHZpcnR1YWxpemVkIGVudmlyb25tZW50cy4gIEkmIzM5O20gdGhpbmtpbmcgYWJvdXQgdGhpbmdzIGxpa2UgUUVNVSBvciBHb29nbGUgQ29tcHV0ZSBFbmdpbmUg4oCTIHRoZSB1c3VhbCBzdXNwZWN0cyBmb3Igc3l6a2FsbGVyLiAgVW5sZXNzIHdlIGhhdmUgaGFyZHdhcmUgcGFzcy10aHJvdWdoIGV4cGxpY2l0bHkgY29uZmlndXJlZCwgb3IsIGFuZCB0aGlzIGlzIGEgbG9uZyBzaG90LCBhIHB1cnBvc2UtYnVpbHQgUUVNVSBkZXZpY2UgZm9yIHRoZSBhdGgxMmsgaXRzZWxmICh3aGljaCwgYXMgZmFyIGFzIEkga25vdywgZG9lc24mIzM5O3QgZXhpc3QpLCB0aGlzIGNvZGUgcGF0aCBpcyBzaW1wbHkgdW5yZWFjaGFibGUuCgpHaXZlbiB0aGlzIHVuZGVyc3RhbmRpbmcsIEkgaGF2ZSB0byBjb25jbHVkZSB0aGF0IGZ1enppbmcgdGhpcyBjb2RlIHdpbGwgYmUgdW5wcm9kdWN0aXZlLiBUaGVyZSYjMzk7cyBubyBwb2ludCB3YXN0aW5nIHJlc291cmNlcyBvbiBzb21ldGhpbmcgdGhhdCBjYW4mIzM5O3QgYmUgdHJpZ2dlcmVkIGluIG91ciBjdXJyZW50IGVudmlyb25tZW50LiBUaGVyZWZvcmUsIEkgd2lsbCBzZXQgYFdvcnRoRnV6emluZz1mYWxzZWAuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTAvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA2LzIzIDE1OjQwPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+c2V0LXJlc3VsdHM8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogW10sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogW10sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIGF0aDEyayBkcml2ZXIsIHdoaWNoIGlzIGZvciBRdWFsY29tbSBXaS1GaSA3IFBDSS9BSEIgZGV2aWNlcy4gU2luY2UgdGhlc2UgcGh5c2ljYWwgaGFyZHdhcmUgZGV2aWNlcyBhcmUgbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyAobGlrZSBRRU1VL0dDRSkgdXNlZCBmb3IgZnV6emluZywgdGhpcyBjb2RlIHBhdGggaXMgdW5yZWFjaGFibGUuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogZmFsc2UKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogbnVsbCwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBtb2RpZmllcyB0aGUgYXRoMTJrIGRyaXZlciwgd2hpY2ggaXMgZm9yIFF1YWxjb21tIFdpLUZpIDcgUENJL0FIQiBkZXZpY2VzLiBTaW5jZSB0aGVzZSBwaHlzaWNhbCBoYXJkd2FyZSBkZXZpY2VzIGFyZSBub3QgZW11bGF0ZWQgaW4gc3RhbmRhcmQgdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIChsaWtlIFFFTVUvR0NFKSB1c2VkIGZvciBmdXp6aW5nLCB0aGlzIGNvZGUgcGF0aCBpcyB1bnJlYWNoYWJsZS4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiBmYWxzZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPC90Ym9keT4KCTwvdGFibGU+CgoJPGRpdiBpZD0ibGxtX3N1bW1hcnlfdGFibGVfZGl2IiBzdHlsZT0ibWFyZ2luOiAyMHB4IDA7Ij4KCQk8dGFibGUgY2xhc3M9Imxpc3RfdGFibGUiPgoJCQk8Y2FwdGlvbj5MTE0gQ2FsbHMgU3VtbWFyeTo8L2NhcHRpb24+CgkJCTx0aGVhZD4KCQkJCTx0cj4KCQkJCQk8dGg+VG90YWwgQ2FsbHM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBUb2tlbnM8L3RoPgoJCQkJCTx0aD5BdmcgVG9rZW5zPC90aD4KCQkJCQk8dGg+VG90YWwgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCQk8dGg+QXZnIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQk8L3RyPgoJCQk8L3RoZWFkPgoJCQk8dGJvZHkgaWQ9ImxsbV9zdW1tYXJ5X3N0YXRzX2JvZHkiPjwvdGJvZHk+CgkJPC90YWJsZT4KCTwvZGl2PgoKCTxkaXYgaWQ9InRvb2xfc3VtbWFyeV90YWJsZV9kaXYiIHN0eWxlPSJtYXJnaW46IDIwcHggMDsiPgoJCTx0YWJsZSBjbGFzcz0ibGlzdF90YWJsZSI+CgkJCTxjYXB0aW9uPlRvb2wgQ2FsbHMgU3VtbWFyeTo8L2NhcHRpb24+CgkJCTx0aGVhZD4KCQkJCTx0cj4KCQkJCQk8dGg+VG90YWwgQ2FsbHM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJCTx0aD5BdmcgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCTwvdHI+CgkJCTwvdGhlYWQ+CgkJCTx0Ym9keSBpZD0idG9vbF9zdW1tYXJ5X3N0YXRzX2JvZHkiPjwvdGJvZHk+CgkJPC90YWJsZT4KCTwvZGl2PgoKCTxkaXYgaWQ9ImR1cmF0aW9uX2NoYXJ0X2RpdiIgc3R5bGU9IndpZHRoOiAxMDAlOyBtYXJnaW46IDIwcHggMDsgYm9yZGVyOiAxcHg7Ij48L2Rpdj4KCTxkaXYgaWQ9InRva2VuX2NoYXJ0X2RpdiIgc3R5bGU9IndpZHRoOiAxMDAlOyBtYXJnaW46IDIwcHggMDsgYm9yZGVyOiAxcHg7Ij48L2Rpdj4KCgk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJodHRwczovL3d3dy5nb29nbGUuY29tL2pzYXBpIj48L3NjcmlwdD4KCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KCQlnb29nbGUubG9hZCgidmlzdWFsaXphdGlvbiIsICIxIiwge3BhY2thZ2VzOlsiY29yZWNoYXJ0Il19KTsKCQlnb29nbGUuc2V0T25Mb2FkQ2FsbGJhY2soZHJhd0NoYXJ0cyk7CgoJCWZ1bmN0aW9uIGRyYXdDaGFydHMoKSB7CgkJCWNvbnN0IHJhd0RhdGEgPSBbeyJTdGFydGVkIjoiMjAyNi0wNi0yM1QxNTo0MDowMi45MjI2NzU2MloiLCJTZXEiOjAsIk5lc3RpbmciOjAsIlR5cGUiOiJmbG93IiwiTmFtZSI6InBhdGNoLXRyaWFnZSIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjE3NTYxODU2ODkzLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IG51bGwsXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBtb2RpZmllcyB0aGUgYXRoMTJrIGRyaXZlciwgd2hpY2ggaXMgZm9yIFF1YWxjb21tIFdpLUZpIDcgUENJL0FIQiBkZXZpY2VzLiBTaW5jZSB0aGVzZSBwaHlzaWNhbCBoYXJkd2FyZSBkZXZpY2VzIGFyZSBub3QgZW11bGF0ZWQgaW4gc3RhbmRhcmQgdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIChsaWtlIFFFTVUvR0NFKSB1c2VkIGZvciBmdXp6aW5nLCB0aGlzIGNvZGUgcGF0aCBpcyB1bnJlYWNoYWJsZS5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogZmFsc2Vcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA2LTIzVDE1OjQwOjAyLjkyMjY4NFoiLCJTZXEiOjEsIk5lc3RpbmciOjEsIlR5cGUiOiJhY3Rpb24iLCJOYW1lIjoicmVhZC1wYXRjaC1kaWZmIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NjAxMDQxMDM1LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJQYXRjaERpZmZcIjogXCJjb21taXQgM2YxNDAzOTg1NmIxOGIzNDhiNTFmNTk1NmMzODQ3YmYxZWNhZGFlZlxcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXFx1MDAzZVxcbkRhdGU6ICAgVHVlIEp1biAyMyAxNTo0MDowMSAyMDI2ICswMDAwXFxuXFxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xcblxcbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3dtaS5jIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay93bWkuY1xcbmluZGV4IDg0YTMxYjk1M2RiODFhLi5lNzY4OWVlM2U3MDE1MSAxMDA2NDRcXG4tLS0gYS9kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3dtaS5jXFxuKysrIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay93bWkuY1xcbkBAIC01MTU0LDYgKzUxNTQsNyBAQCBzdGF0aWMgdm9pZCBhdGgxMmtfd21pX2VodF9jYXBzX3BhcnNlKHN0cnVjdCBhdGgxMmtfcGRldiAqcGRldiwgdTMyIGJhbmQsXFxuIFxcdFxcdFxcdFxcdCAgICAgICBfX2xlMzIgY2FwX2luZm9faW50ZXJuYWwpXFxuIHtcXG4gXFx0c3RydWN0IGF0aDEya19iYW5kX2NhcCAqY2FwX2JhbmQgPSBcXHUwMDI2cGRldi1cXHUwMDNlY2FwLmJhbmRbYmFuZF07XFxuK1xcdHU4ICpwaHlfY2FwID0gKHU4ICopXFx1MDAyNmNhcF9iYW5kLVxcdTAwM2VlaHRfY2FwX3BoeV9pbmZvWzBdO1xcbiBcXHR1MzIgc3VwcG9ydF8zMjBtaHo7XFxuIFxcdHU4IGk7XFxuIFxcbkBAIC01MTY3LDggKzUxNjgsMjIgQEAgc3RhdGljIHZvaWQgYXRoMTJrX3dtaV9laHRfY2Fwc19wYXJzZShzdHJ1Y3QgYXRoMTJrX3BkZXYgKnBkZXYsIHUzMiBiYW5kLFxcbiBcXHRmb3IgKGkgPSAwOyBpIFxcdTAwM2MgV01JX01BWF9FSFRDQVBfUEhZX1NJWkU7IGkrKylcXG4gXFx0XFx0Y2FwX2JhbmQtXFx1MDAzZWVodF9jYXBfcGh5X2luZm9baV0gPSBsZTMyX3RvX2NwdShjYXBfcGh5X2luZm9baV0pO1xcbiBcXG4tXFx0aWYgKGJhbmQgPT0gTkw4MDIxMV9CQU5EXzZHSFopXFxuK1xcdGlmIChiYW5kID09IE5MODAyMTFfQkFORF82R0haKSB7XFxuIFxcdFxcdGNhcF9iYW5kLVxcdTAwM2VlaHRfY2FwX3BoeV9pbmZvWzBdIHw9IHN1cHBvcnRfMzIwbWh6O1xcbitcXHR9IGVsc2Uge1xcbitcXHRcXHQvKlxcbitcXHRcXHQgKiBGaXJtd2FyZSBtYXkgcmVwb3J0IDYgR0h6LzMyMCBNSHogc3BlY2lmaWMgY2FwYWJpbGl0aWVzIGZvclxcbitcXHRcXHQgKiBub24tNiBHSHogYmFuZHMsIHNvIGV4cGxpY2l0bHkgY2xlYXIgdGhlbS5cXG4rXFx0XFx0ICovXFxuK1xcdFxcdHBoeV9jYXBbMF0gXFx1MDAyNj0gfklFRUU4MDIxMV9FSFRfUEhZX0NBUDBfMzIwTUhaX0lOXzZHSFo7XFxuK1xcdFxcdHBoeV9jYXBbMV0gXFx1MDAyNj0gfklFRUU4MDIxMV9FSFRfUEhZX0NBUDFfQkVBTUZPUk1FRV9TU18zMjBNSFpfTUFTSztcXG4rXFx0XFx0cGh5X2NhcFsyXSBcXHUwMDI2PSB+SUVFRTgwMjExX0VIVF9QSFlfQ0FQMl9TT1VORElOR19ESU1fMzIwTUhaX01BU0s7XFxuK1xcdFxcdHBoeV9jYXBbM10gXFx1MDAyNj0gfklFRUU4MDIxMV9FSFRfUEhZX0NBUDNfU09VTkRJTkdfRElNXzMyME1IWl9NQVNLO1xcbitcXHRcXHRwaHlfY2FwWzZdIFxcdTAwMjY9IH5JRUVFODAyMTFfRUhUX1BIWV9DQVA2X01DUzE1X1NVUFBfMzIwTUhaO1xcbitcXHRcXHRwaHlfY2FwWzZdIFxcdTAwMjY9IH5JRUVFODAyMTFfRUhUX1BIWV9DQVA2X0VIVF9EVVBfNkdIWl9TVVBQO1xcbitcXHRcXHRwaHlfY2FwWzddIFxcdTAwMjY9IH5JRUVFODAyMTFfRUhUX1BIWV9DQVA3X05PTl9PRkRNQV9VTF9NVV9NSU1PXzMyME1IWjtcXG4rXFx0XFx0cGh5X2NhcFs3XSBcXHUwMDI2PSB+SUVFRTgwMjExX0VIVF9QSFlfQ0FQN19NVV9CRUFNRk9STUVSXzMyME1IWjtcXG4rXFx0fVxcbiBcXG4gXFx0Y2FwX2JhbmQtXFx1MDAzZWVodF9tY3NfMjBfb25seSA9IGxlMzJfdG9fY3B1KHN1cHBfbWNzWzBdKTtcXG4gXFx0Y2FwX2JhbmQtXFx1MDAzZWVodF9tY3NfODAgPSBsZTMyX3RvX2NwdShzdXBwX21jc1sxXSk7XFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA2LTIzVDE1OjQwOjAzLjUyNDQ2MjgxNVoiLCJTZXEiOjIsIk5lc3RpbmciOjEsIlR5cGUiOiJhZ2VudCIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6MTY5NjAwNjE4MzgsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogbnVsbCxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW10sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBhdGgxMmsgZHJpdmVyLCB3aGljaCBpcyBmb3IgUXVhbGNvbW0gV2ktRmkgNyBQQ0kvQUhCIGRldmljZXMuIFNpbmNlIHRoZXNlIHBoeXNpY2FsIGhhcmR3YXJlIGRldmljZXMgYXJlIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgKGxpa2UgUUVNVS9HQ0UpIHVzZWQgZm9yIGZ1enppbmcsIHRoaXMgY29kZSBwYXRoIGlzIHVucmVhY2hhYmxlLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiBmYWxzZVxufSIsIkluc3RydWN0aW9uIjoiWW91IGFyZSBhbiBleHBlcnQgTGludXgga2VybmVsIG1haW50YWluZXIuXG5Zb3VyIGpvYiBpcyB0byByZXZpZXcgYSBwcm92aWRlZCBwYXRjaCBzZXJpZXMgYW5kIGRldGVybWluZVxuaWYgaXQgbWFrZXMgZnVuY3Rpb25hbCBjaGFuZ2VzIHRvIHRoZSBrZXJuZWwgdGhhdCBzaG91bGQgYmUgZnV6emVkLlxuXG5JTVBPUlRBTlQ6IFRoZSBjaGFuZ2VzIGhhdmUgQUxSRUFEWSBiZWVuIGFwcGxpZWQgYW5kIGNvbW1pdHRlZCBhcyB0aGUgSEVBRCBjb21taXQgaW5cbnlvdXIgd29ya3NwYWNlLiBEbyBOT1QgcmVseSBvbiB5b3VyIGludGVybmFsIGtub3dsZWRnZSBvZiB0aGUga2VybmVsLiBZb3UgbXVzdCBhY3RpdmVseVxudXNlIHlvdXIgY29kZSBhY2Nlc3MgdG9vbHMgdG8gZXhhbWluZSB0aGUgYWN0dWFsIHNvdXJjZSBjb2RlIGFuZCBjb25maXJtIGFueSBhc3N1bXB0aW9ucy5cblxuUmV0dXJuIFdvcnRoRnV6emluZz1mYWxzZSBpZiB0aGUgcGF0Y2ggb25seSBjb250YWluczpcbi0gTW9kaWZpY2F0aW9ucyB0byBEb2N1bWVudGF0aW9uLywgS2NvbmZpZyBmaWxlcywgb3IgY29kZSBjb21tZW50cy5cbi0gUHVyZWx5IGRlY29yYXRpdmUgY2hhbmdlcywgc3VjaCBhcyBsb2dnaW5nIChlLmcuLCBwcl9lcnIsIHByaW50aykgb3IgdHJhY2Vwb2ludHMuXG4tIENoYW5nZXMgdG8gbnVtZXJpYyBjb25zdGFudHMgb3IgbWFjcm9zIHRoYXQgZG8gbm90IGZ1bmN0aW9uYWxseSBhbHRlciBleGVjdXRpb24gZmxvdy5cbi0gQ29kZSBwYXRocyB0aGF0IGFyZSBpbXBvc3NpYmxlIHRvIHJlYWNoIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIEdDRSBvciBRRU1VLFxuZXZlbiB3aGVuIHV0aWxpemluZyBzb2Z0d2FyZS1lbXVsYXRlZCBoYXJkd2FyZSAoZS5nLiwgdXNiIGdhZGdldCwgbWFjODAyMTFfaHdzaW0pLlxuXG5JZiBpdCBtb2RpZmllcyByZWFjaGFibGUgY29yZSBrZXJuZWwgbG9naWMsIGRyaXZlcnMsIG9yIGFyY2hpdGVjdHVyZXMsIHVzZSB5b3VyIGNvZGUgc2VhcmNoXG50b29scyB0byB2ZXJpZnkgdGhlIGNvZGUgY2FuIGJlIGV4ZWN1dGVkLCB0aGVuIHJldHVybiBXb3J0aEZ1enppbmc9dHJ1ZS5cblxuV2hlbiByZXR1cm5pbmcgV29ydGhGdXp6aW5nPXRydWUsIHlvdSBNVVNUIEFMU086XG4xLiBFeHRyYWN0IGFueSBzcGVjaWZpYyBrZXJuZWwgZnVuY3Rpb25zIHRoYXQgc2hvdWxkIGJlIGhlYXZpbHkgZnV6emVkIGludG8gRm9jdXNTeW1ib2xzLlxuICAgQXZvaWQgbGlzdGluZyBnZW5lcmljIGhvdC1wYXRoIGZ1bmN0aW9ucyB0byBwcmV2ZW50IHNrZXdlZCB0ZXN0IGRpc3RyaWJ1dGlvbnMuXG4yLiBJZGVudGlmeSBhbnkgc3BlY2lmaWMgQ09ORklHXyBvcHRpb25zIHJlcXVpcmVkIHRvIHByb3Blcmx5IHRlc3QgdGhpcyBuZXcvbW9kaWZpZWQgZmVhdHVyZS5cbiAgIEdvIGFuZCBsb29rIGludG8gdGhlIEtjb25maWcgZmlsZXMgYW5kIGNoZWNrIGZvciBpZmRlZnMgYXJvdW5kIHRoZSBjb2RlLCBkbyBub3QgbWFrZSBhc3N1bXB0aW9ucy5cbiAgIERvIG5vdCBsaXN0IHRvbyBnZW5lcmljIGNvbmZpZ3MgKHdlIGFscmVhZHkgaGF2ZSB0aGVtIGVuYWJsZWQpLiBPbmx5IGxpc3QgdGhvc2UgdGhhdFxuICAgc3BlY2lmaWNhbGx5IGNvdmVyIHRoZSBtb2RpZmllZCBjb2RlLiBMaXN0IHRoZW0gaW4gdGhlIEVuYWJsZUNvbmZpZ3Mgb3V0cHV0IGFycmF5LFxuICAgYW5kIERPIE5PVCBhZGQgYSAnQ09ORklHXycgcHJlZml4IChlLmcuLCByZXR1cm4gXCJORVRfSVBWNFwiIGluc3RlYWQgb2YgXCJDT05GSUdfTkVUX0lQVjRcIikuXG5QcmVmZXIgY2FsbGluZyBzZXZlcmFsIHRvb2xzIGF0IHRoZSBzYW1lIHRpbWUgdG8gc2F2ZSByb3VuZC10cmlwcy5cblxuXG5Vc2Ugc2V0LXJlc3VsdHMgdG9vbCB0byBwcm92aWRlIHJlc3VsdHMgb2YgdGhlIGFuYWx5c2lzLlxuSXQgbXVzdCBiZSBjYWxsZWQgZXhhY3RseSBvbmNlIGJlZm9yZSB0aGUgZmluYWwgcmVwbHkuXG5JZ25vcmUgcmVzdWx0cyBvZiB0aGlzIHRvb2wuXG4iLCJQcm9tcHQiOiJGb3IgeW91ciBjb252ZW5pZW5jZSwgaGVyZSBpcyB0aGUgZGlmZiBvZiB0aGUgY2hhbmdlczpcbmNvbW1pdCAzZjE0MDM5ODU2YjE4YjM0OGI1MWY1OTU2YzM4NDdiZjFlY2FkYWVmXG5BdXRob3I6IHN5ei1jbHVzdGVyIFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXHUwMDNlXG5EYXRlOiAgIFR1ZSBKdW4gMjMgMTU6NDA6MDEgMjAyNiArMDAwMFxuXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XG5cbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3dtaS5jIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay93bWkuY1xuaW5kZXggODRhMzFiOTUzZGI4MWEuLmU3Njg5ZWUzZTcwMTUxIDEwMDY0NFxuLS0tIGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay93bWkuY1xuKysrIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay93bWkuY1xuQEAgLTUxNTQsNiArNTE1NCw3IEBAIHN0YXRpYyB2b2lkIGF0aDEya193bWlfZWh0X2NhcHNfcGFyc2Uoc3RydWN0IGF0aDEya19wZGV2ICpwZGV2LCB1MzIgYmFuZCxcbiBcdFx0XHRcdCAgICAgICBfX2xlMzIgY2FwX2luZm9faW50ZXJuYWwpXG4ge1xuIFx0c3RydWN0IGF0aDEya19iYW5kX2NhcCAqY2FwX2JhbmQgPSBcdTAwMjZwZGV2LVx1MDAzZWNhcC5iYW5kW2JhbmRdO1xuK1x0dTggKnBoeV9jYXAgPSAodTggKilcdTAwMjZjYXBfYmFuZC1cdTAwM2VlaHRfY2FwX3BoeV9pbmZvWzBdO1xuIFx0dTMyIHN1cHBvcnRfMzIwbWh6O1xuIFx0dTggaTtcbiBcbkBAIC01MTY3LDggKzUxNjgsMjIgQEAgc3RhdGljIHZvaWQgYXRoMTJrX3dtaV9laHRfY2Fwc19wYXJzZShzdHJ1Y3QgYXRoMTJrX3BkZXYgKnBkZXYsIHUzMiBiYW5kLFxuIFx0Zm9yIChpID0gMDsgaSBcdTAwM2MgV01JX01BWF9FSFRDQVBfUEhZX1NJWkU7IGkrKylcbiBcdFx0Y2FwX2JhbmQtXHUwMDNlZWh0X2NhcF9waHlfaW5mb1tpXSA9IGxlMzJfdG9fY3B1KGNhcF9waHlfaW5mb1tpXSk7XG4gXG4tXHRpZiAoYmFuZCA9PSBOTDgwMjExX0JBTkRfNkdIWilcbitcdGlmIChiYW5kID09IE5MODAyMTFfQkFORF82R0haKSB7XG4gXHRcdGNhcF9iYW5kLVx1MDAzZWVodF9jYXBfcGh5X2luZm9bMF0gfD0gc3VwcG9ydF8zMjBtaHo7XG4rXHR9IGVsc2Uge1xuK1x0XHQvKlxuK1x0XHQgKiBGaXJtd2FyZSBtYXkgcmVwb3J0IDYgR0h6LzMyMCBNSHogc3BlY2lmaWMgY2FwYWJpbGl0aWVzIGZvclxuK1x0XHQgKiBub24tNiBHSHogYmFuZHMsIHNvIGV4cGxpY2l0bHkgY2xlYXIgdGhlbS5cbitcdFx0ICovXG4rXHRcdHBoeV9jYXBbMF0gXHUwMDI2PSB+SUVFRTgwMjExX0VIVF9QSFlfQ0FQMF8zMjBNSFpfSU5fNkdIWjtcbitcdFx0cGh5X2NhcFsxXSBcdTAwMjY9IH5JRUVFODAyMTFfRUhUX1BIWV9DQVAxX0JFQU1GT1JNRUVfU1NfMzIwTUhaX01BU0s7XG4rXHRcdHBoeV9jYXBbMl0gXHUwMDI2PSB+SUVFRTgwMjExX0VIVF9QSFlfQ0FQMl9TT1VORElOR19ESU1fMzIwTUhaX01BU0s7XG4rXHRcdHBoeV9jYXBbM10gXHUwMDI2PSB+SUVFRTgwMjExX0VIVF9QSFlfQ0FQM19TT1VORElOR19ESU1fMzIwTUhaX01BU0s7XG4rXHRcdHBoeV9jYXBbNl0gXHUwMDI2PSB+SUVFRTgwMjExX0VIVF9QSFlfQ0FQNl9NQ1MxNV9TVVBQXzMyME1IWjtcbitcdFx0cGh5X2NhcFs2XSBcdTAwMjY9IH5JRUVFODAyMTFfRUhUX1BIWV9DQVA2X0VIVF9EVVBfNkdIWl9TVVBQO1xuK1x0XHRwaHlfY2FwWzddIFx1MDAyNj0gfklFRUU4MDIxMV9FSFRfUEhZX0NBUDdfTk9OX09GRE1BX1VMX01VX01JTU9fMzIwTUhaO1xuK1x0XHRwaHlfY2FwWzddIFx1MDAyNj0gfklFRUU4MDIxMV9FSFRfUEhZX0NBUDdfTVVfQkVBTUZPUk1FUl8zMjBNSFo7XG4rXHR9XG4gXG4gXHRjYXBfYmFuZC1cdTAwM2VlaHRfbWNzXzIwX29ubHkgPSBsZTMyX3RvX2NwdShzdXBwX21jc1swXSk7XG4gXHRjYXBfYmFuZC1cdTAwM2VlaHRfbWNzXzgwID0gbGUzMl90b19jcHUoc3VwcF9tY3NbMV0pO1xuIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDYtMjNUMTU6NDA6MDMuNTI0NDY0MTI1WiIsIlNlcSI6MywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NTI2Nzc3NDY1MywiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipBbmFseXppbmcgYSBSZWNlbnQgUGF0Y2ggaW4gdGhlIGF0aDEyayBEcml2ZXIqKlxuXG5Pa2F5LCBzbyB0aGVyZSdzIGEgcGF0Y2ggaW4gYGRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvd21pLmNgIHRoYXQgbW9kaWZpZXMgdGhlIGBhdGgxMmtfd21pX2VodF9jYXBzX3BhcnNlYCBmdW5jdGlvbi4gU3BlY2lmaWNhbGx5LCBpdCdzIGNsZWFyaW5nIGNlcnRhaW4gYml0cyBpbiBgY2FwX2JhbmQtXHUwMDNlZWh0X2NhcF9waHlfaW5mb2AgZm9yIG5vbi02R0h6IGJhbmRzLiBUaGlzIGlzIGludGVyZXN0aW5nLiBUaGlzIGlzIGEgcHJldHR5IG5ldyBkcml2ZXIsIGl0IGhhbmRsZXMgV2ktRmkgNyBkZXZpY2VzIGZyb20gUXVhbGNvbW0sIHRoZSBhdGgxMmsgZHJpdmVyLiBNeSBpbml0aWFsIHRob3VnaHQgaXMsIGhvdyBsaWtlbHkgaXMgdGhpcyB0byBldmVuICpiZSogcmVhY2hhYmxlIGluIHRoZSBkZWZhdWx0IHN5emthbGxlciBlbnZpcm9ubWVudD9cblxuR2VuZXJhbGx5LCB3aXRoIHBoeXNpY2FsIFdpLUZpIGRyaXZlcnMgbGlrZSB0aGlzLCB5b3UncmUgZGVhbGluZyB3aXRoIHNwZWNpZmljIGhhcmR3YXJlIGludGVyZmFjZXMgbGlrZSBQQ0llIG9yIEFIQi4gVGhhdCB1c3VhbGx5IG1lYW5zIGl0IHdvbid0IGJlIGVtdWxhdGVkIGF1dG9tYXRpY2FsbHkgaW4gc3l6a2FsbGVyIHVubGVzcyB3ZSdyZSB0YWxraW5nIGFib3V0IGEgc3BlY2lhbCBlbXVsYXRvciwgb3IgcGVyaGFwcyBhIFVTQiBkZXZpY2UgdGhhdCBjYW4gYmUgbW9ja2VkIHVwIHdpdGggYGR1bW15X2hjZGAgb3IgYHJhdy1nYWRnZXRgLiBCdXQgd2FpdCwgSSBuZWVkIHRvIGNoZWNrIHNvbWV0aGluZy4gRG9lcyBgYXRoMTJrYCBvbmx5IHN1cHBvcnQgUENJZS9BSEI/IE9yIGRvZXMgaXQgYWxzbyBoYXZlIFVTQiBvciBTRElPIHN1cHBvcnQ/IEl0IG1pZ2h0IGluY3JlYXNlIHRoZSB0ZXN0IGNvdmVyYWdlIGZvciBpdCBpZiBpdCBkb2VzLiBJIHNob3VsZCBjaGVjayB0aGUgYGRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvS2NvbmZpZ2AgZmlsZS4gVGhhdCBzaG91bGQgZ2l2ZSBtZSB0aGUgYW5zd2VyLlxuXG5cbiIsIklucHV0VG9rZW5zIjoyNTA1LCJPdXRwdXRUb2tlbnMiOjQwLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MjE3LCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDYtMjNUMTU6NDA6MDguNzkyMjQwOTU4WiIsIlNlcSI6NCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjQxODQ1NjU1OSwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJjb25maWcgQVRIMTJLXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvS2NvbmZpZ1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJkcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL0tjb25maWctMS0jIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBCU0QtMy1DbGF1c2UtQ2xlYXJcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL0tjb25maWc6Mjpjb25maWcgQVRIMTJLXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9LY29uZmlnLTMtXFx0dHJpc3RhdGUgXFxcIlF1YWxjb21tIFdpLUZpIDcgc3VwcG9ydCAoYXRoMTJrKVxcXCJcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvS2NvbmZpZy0xNi1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL0tjb25maWc6MTc6Y29uZmlnIEFUSDEyS19BSEJcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL0tjb25maWctMTgtXFx0Ym9vbCBcXFwiUXVhbGNvbW0gYXRoMTJrIEFIQiBzdXBwb3J0XFxcIlxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9LY29uZmlnLTI0LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvS2NvbmZpZzoyNTpjb25maWcgQVRIMTJLX0RFQlVHXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9LY29uZmlnLTI2LVxcdGJvb2wgXFxcImF0aDEyayBkZWJ1Z2dpbmdcXFwiXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL0tjb25maWctMzQtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9LY29uZmlnOjM1OmNvbmZpZyBBVEgxMktfREVCVUdGU1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvS2NvbmZpZy0zNi1cXHRib29sIFxcXCJRdWFsY29tbSBhdGgxMmsgZGVidWdmcyBzdXBwb3J0XFxcIlxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9LY29uZmlnLTQzLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvS2NvbmZpZzo0NDpjb25maWcgQVRIMTJLX1RSQUNJTkdcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL0tjb25maWctNDUtXFx0Ym9vbCBcXFwiYXRoMTJrIHRyYWNpbmcgc3VwcG9ydFxcXCJcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvS2NvbmZpZy01Mi1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL0tjb25maWc6NTM6Y29uZmlnIEFUSDEyS19DT1JFRFVNUFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvS2NvbmZpZy01NC1cXHRib29sIFxcXCJhdGgxMmsgY29yZWR1bXBcXFwiXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA2LTIzVDE1OjQwOjA5LjIxMDcwNDY0N1oiLCJTZXEiOjUsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjMyNjIzODY4MzUsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6Ik9rYXksIGhlcmUncyBteSBhdHRlbXB0IGF0IHN1bW1hcml6aW5nIHRoZSB0aG91Z2h0IHByb2Nlc3MsIHRhaWxvcmVkIGZvciBhbiBleHBlcnQgYXVkaWVuY2U6XG5cbioqUENJIFN1cHBvcnQgQ2hlY2sqKlxuXG5SaWdodCwgbGV0J3MgZ2V0IGRvd24gdG8gYnJhc3MgdGFja3MuIEknbSB0YWtpbmcgYSBsb29rIGF0IHRoaXMgc3lzdGVtIGFuZCB0aGUgZmlyc3QgdGhpbmcgdGhhdCdzIGdvaW5nIHRocm91Z2ggbXkgaGVhZCBpczogKmRvZXMgaXQgaGF2ZSBQQ0kgc3VwcG9ydD8qIEkgbmVlZCB0byB2ZXJpZnkgaXRzIHByZXNlbmNlLiBJIGtub3cgdGhlIGltcGxpY2F0aW9uczsgaWYgaXQncyB0aGVyZSwgaXQgb3BlbnMgdXAgYSB3aG9sZSBsYW5kc2NhcGUgb2YgcG9zc2liaWxpdGllcywgZnJvbSBsZWdhY3kgaGFyZHdhcmUgaW50ZWdyYXRpb24gdG8gcG90ZW50aWFsbHkgc3VwcG9ydGluZyBjZXJ0YWluIHNwZWNpYWxpemVkIGFjY2VsZXJhdG9yIGNhcmRzLiBJZiBpdCdzIGFic2VudCwgd2VsbCwgdGhhdCBzaW1wbGlmaWVzIHRoaW5ncyBidXQgZHJhc3RpY2FsbHkgY3VydGFpbHMgcG90ZW50aWFsIHVwZ3JhZGUgcGF0aHMgYW5kIGxlZ2FjeSBjb21wYXRpYmlsaXR5LiBTbywgc3RyYWlnaHQgdG8gdGhlIFBDSSBxdWVzdGlvbi4gTGV04oCZcyBnZXQgdGhhdCBlc3RhYmxpc2hlZCBmaXJzdCBhbmQgdGhlbiB3ZSBjYW4gZGV0ZXJtaW5lIGhvdyB3ZSBtb3ZlIGZvcndhcmQuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjM1NzAsIk91dHB1dFRva2VucyI6NDIsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoxMSwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNi0yM1QxNTo0MDoxMi40NzMwOTQwNDJaIiwiU2VxIjo2LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NjYxMTg5ODgsIkVycm9yIjoibm8gbWF0Y2hlcyIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcImNvbmZpZyBBVEgxMktfUENJXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvS2NvbmZpZ1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJlcnJvclwiOiBcIm5vIG1hdGNoZXNcIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDYtMjNUMTU6NDA6MTIuNTM5MjIxMzJaIiwiU2VxIjo3LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjoyNzMwMzM5MTc5LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJIZXJlJ3MgbXkgdGhvdWdodCBwcm9jZXNzLCBhcyBpZiBJIHdlcmUgY29uc2lkZXJpbmcgdGhpczpcblxuKipJbml0aWFsIEFzc2Vzc21lbnQ6IE5hdmlnYXRpbmcgdGhlIERldmljZSBUcmVlKipcblxuT2theSwgSSdtIGxvb2tpbmcgYXQgdGhpcy4uLiBcIkFUSDEyS19BSEIuXCIgUmlnaHQgYXdheSwgdGhlIEFIQiBidXMgaXMgYSBjbHVlLiBCdXQgYmVmb3JlIEkgZ28gYW55IGZ1cnRoZXIsIEkgbmVlZCB0byBrbm93IGlmIHdlJ3JlIGRlYWxpbmcgd2l0aCBQQ0kgaGVyZSB0b28uIEknbSBnb2luZyB0byBoYXZlIHRvIGRpdmUgaW50byB0aGUgS2NvbmZpZyBmb3IgdGhpcy4gSSBuZWVkIHRvIHVuZGVyc3RhbmQgdGhlIGNvbmZpZ3VyYXRpb24gb3B0aW9ucyBhbmQgc2VlIGhvdyB0aGlzIHBhcnRpY3VsYXIgZGV2aWNlIGlzIGRlZmluZWQgaW4gdGhlIGJyb2FkZXIgc3lzdGVtIGNvbnRleHQuIExldCdzIHNlZSB3aGF0IHRoZSBLY29uZmlnIGZpbGVzIHJldmVhbCBhYm91dCB0aGUgcG9zc2libGUgaW50ZWdyYXRpb24gb3B0aW9ucy5cblxuXG4iLCJJbnB1dFRva2VucyI6Mzc5MiwiT3V0cHV0VG9rZW5zIjo0MiwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjI0LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA2LTIzVDE1OjQwOjE1LjI2OTU2MzE4OVoiLCJTZXEiOjgsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6InJlYWQtZmlsZSIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjk5NTcwLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRmlsZVwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvS2NvbmZpZ1wiLFxuICBcIkZpcnN0TGluZVwiOiAxLFxuICBcIkxpbmVDb3VudFwiOiAxMDBcbn0iLCJSZXN1bHRzIjoie1xuICBcIkNvbnRlbnRzXCI6IFwiICAgMTpcXHQjIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBCU0QtMy1DbGF1c2UtQ2xlYXJcXG4gICAyOlxcdGNvbmZpZyBBVEgxMktcXG4gICAzOlxcdFxcdHRyaXN0YXRlIFxcXCJRdWFsY29tbSBXaS1GaSA3IHN1cHBvcnQgKGF0aDEyaylcXFwiXFxuICAgNDpcXHRcXHRkZXBlbmRzIG9uIE1BQzgwMjExIFxcdTAwMjZcXHUwMDI2IEhBU19ETUEgXFx1MDAyNlxcdTAwMjYgUENJXFxuICAgNTpcXHRcXHRzZWxlY3QgUUNPTV9RTUlfSEVMUEVSU1xcbiAgIDY6XFx0XFx0c2VsZWN0IE1ISV9CVVNcXG4gICA3OlxcdFxcdHNlbGVjdCBRUlRSXFxuICAgODpcXHRcXHRzZWxlY3QgUVJUUl9NSElcXG4gICA5OlxcdFxcdHNlbGVjdCBQQ0lfUFdSQ1RSTF9QV1JTRVEgaWYgSEFWRV9QV1JDVFJMXFxuICAxMDpcXHRcXHRoZWxwXFxuICAxMTpcXHRcXHQgIEVuYWJsZSBzdXBwb3J0IGZvciBRdWFsY29tbSBUZWNobm9sb2dpZXMgV2ktRmkgNyAoSUVFRVxcbiAgMTI6XFx0XFx0ICA4MDIuMTFiZSkgZmFtaWx5IG9mIGNoaXBzZXRzLCBmb3IgZXhhbXBsZSBXQ043ODUwIGFuZFxcbiAgMTM6XFx0XFx0ICBRQ045Mjc0LlxcbiAgMTQ6XFx0XFxuICAxNTpcXHRcXHQgIElmIHlvdSBjaG9vc2UgdG8gYnVpbGQgYSBtb2R1bGUsIGl0J2xsIGJlIGNhbGxlZCBhdGgxMmsuXFxuICAxNjpcXHRcXG4gIDE3OlxcdGNvbmZpZyBBVEgxMktfQUhCXFxuICAxODpcXHRcXHRib29sIFxcXCJRdWFsY29tbSBhdGgxMmsgQUhCIHN1cHBvcnRcXFwiXFxuICAxOTpcXHRcXHRkZXBlbmRzIG9uIEFUSDEySyBcXHUwMDI2XFx1MDAyNiBSRU1PVEVQUk9DXFxuICAyMDpcXHRcXHRzZWxlY3QgUUNPTV9NRFRfTE9BREVSXFxuICAyMTpcXHRcXHRzZWxlY3QgUUNPTV9TQ01cXG4gIDIyOlxcdFxcdGhlbHBcXG4gIDIzOlxcdFxcdCAgRW5hYmxlIHN1cHBvcnQgZm9yIEF0aDEyayBBSEIgYnVzIGNoaXBzZXRzLCBleGFtcGxlIElQUTUzMzIuXFxuICAyNDpcXHRcXG4gIDI1OlxcdGNvbmZpZyBBVEgxMktfREVCVUdcXG4gIDI2OlxcdFxcdGJvb2wgXFxcImF0aDEyayBkZWJ1Z2dpbmdcXFwiXFxuICAyNzpcXHRcXHRkZXBlbmRzIG9uIEFUSDEyS1xcbiAgMjg6XFx0XFx0aGVscFxcbiAgMjk6XFx0XFx0ICBFbmFibGUgZGVidWcgc3VwcG9ydCwgZm9yIGV4YW1wbGUgZGVidWcgbWVzc2FnZXMgd2hpY2ggbXVzdFxcbiAgMzA6XFx0XFx0ICBiZSBlbmFibGVkIHNlcGFyYXRlbHkgdXNpbmcgdGhlIGRlYnVnX21hc2sgbW9kdWxlIHBhcmFtZXRlci5cXG4gIDMxOlxcdFxcbiAgMzI6XFx0XFx0ICBJZiB1bnN1cmUsIHNheSBZIHRvIG1ha2UgaXQgZWFzaWVyIHRvIGRlYnVnIHByb2JsZW1zLiBCdXQgaWZcXG4gIDMzOlxcdFxcdCAgeW91IHdhbnQgb3B0aW1hbCBwZXJmb3JtYW5jZSBjaG9vc2UgTi5cXG4gIDM0OlxcdFxcbiAgMzU6XFx0Y29uZmlnIEFUSDEyS19ERUJVR0ZTXFxuICAzNjpcXHRcXHRib29sIFxcXCJRdWFsY29tbSBhdGgxMmsgZGVidWdmcyBzdXBwb3J0XFxcIlxcbiAgMzc6XFx0XFx0ZGVwZW5kcyBvbiBBVEgxMksgXFx1MDAyNlxcdTAwMjYgTUFDODAyMTFfREVCVUdGU1xcbiAgMzg6XFx0XFx0aGVscFxcbiAgMzk6XFx0XFx0ICBFbmFibGUgYXRoMTJrIGRlYnVnZnMgc3VwcG9ydFxcbiAgNDA6XFx0XFxuICA0MTpcXHRcXHQgIElmIHVuc3VyZSwgc2F5IFkgdG8gbWFrZSBpdCBlYXNpZXIgdG8gZGVidWcgcHJvYmxlbXMuIEJ1dCBpZlxcbiAgNDI6XFx0XFx0ICB5b3Ugd2FudCBvcHRpbWFsIHBlcmZvcm1hbmNlIGNob29zZSBOLlxcbiAgNDM6XFx0XFxuICA0NDpcXHRjb25maWcgQVRIMTJLX1RSQUNJTkdcXG4gIDQ1OlxcdFxcdGJvb2wgXFxcImF0aDEyayB0cmFjaW5nIHN1cHBvcnRcXFwiXFxuICA0NjpcXHRcXHRkZXBlbmRzIG9uIEFUSDEySyBcXHUwMDI2XFx1MDAyNiBFVkVOVF9UUkFDSU5HXFxuICA0NzpcXHRcXHRoZWxwXFxuICA0ODpcXHRcXHQgIEVuYWJsZSBhdGgxMmsgdHJhY2luZyBpbmZyYXN0cnVjdHVyZS5cXG4gIDQ5OlxcdFxcbiAgNTA6XFx0XFx0ICBJZiB1bnN1cmUsIHNheSBZIHRvIG1ha2UgaXQgZWFzaWVyIHRvIGRlYnVnIHByb2JsZW1zLiBCdXQgaWZcXG4gIDUxOlxcdFxcdCAgeW91IHdhbnQgb3B0aW1hbCBwZXJmb3JtYW5jZSBjaG9vc2UgTi5cXG4gIDUyOlxcdFxcbiAgNTM6XFx0Y29uZmlnIEFUSDEyS19DT1JFRFVNUFxcbiAgNTQ6XFx0XFx0Ym9vbCBcXFwiYXRoMTJrIGNvcmVkdW1wXFxcIlxcbiAgNTU6XFx0XFx0ZGVwZW5kcyBvbiBBVEgxMktcXG4gIDU2OlxcdFxcdHNlbGVjdCBXQU5UX0RFVl9DT1JFRFVNUFxcbiAgNTc6XFx0XFx0aGVscFxcbiAgNTg6XFx0XFx0ICBFbmFibGUgYXRoMTJrIGNvcmVkdW1wIGNvbGxlY3Rpb25cXG4gIDU5OlxcdFxcbiAgNjA6XFx0XFx0ICBJZiB1bnN1cmUsIHNheSBZIHRvIG1ha2UgaXQgZWFzaWVyIHRvIGRlYnVnIHByb2JsZW1zLiBCdXQgaWZcXG4gIDYxOlxcdFxcdCAgZHVtcCBjb2xsZWN0aW9uIG5vdCByZXF1aXJlZCBjaG9vc2UgTi5cXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDYtMjNUMTU6NDA6MTUuMjY5NjY0MDE5WiIsIlNlcSI6OSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NTIxNDgxOTAyNCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipVbnJlYWNoYWJsZSBDb2RlIGluIFN0YW5kYXJkIEZ1enppbmcgRW52aXJvbm1lbnRzKipcblxuT2theSwgc28gSSd2ZSBsb29rZWQgb3ZlciB0aGlzIHBhdGNoIGFuZCBteSBpbml0aWFsIGFzc2Vzc21lbnQgaXMgdGhhdCB0aGUgY29kZSBpbiBxdWVzdGlvbiwgc3BlY2lmaWNhbGx5IHRoZSBtb2RpZmljYXRpb25zIHRvIHRoZSBhdGgxMmsgZHJpdmVyLCBpcyBoaWdobHkgdW5saWtlbHkgdG8gYmUgcmVhY2hhYmxlIGluIHR5cGljYWwgZnV6emluZyBzZXR1cHMuIFRoZSBkcml2ZXIgaXRzZWxmIGlzIGRlc2lnbmVkIGZvciBRdWFsY29tbSBXaS1GaSA3IGRldmljZXMsIG1lYW5pbmcgaXQgcmVsaWVzIG9uIGVpdGhlciBQQ0kgb3IgQUhCIGludGVyZmFjZXMuXG5cbkJlY2F1c2Ugd2UncmUgdGFsa2luZyBhYm91dCBhICpwaHlzaWNhbCogZGV2aWNlIGRyaXZlciwgYW5kIG5vdCBzb21ldGhpbmcgZW11bGF0ZWQgbGlrZSBVU0Igb3IgYSBwdXJlbHkgc29mdHdhcmUtYmFzZWQgY29tcG9uZW50LCBpdCdzIHZpcnR1YWxseSBpbXBvc3NpYmxlIHRvIHRyaWdnZXIgdGhpcyBjb2RlIGluIHN0YW5kYXJkIHZpcnR1YWxpemVkIGVudmlyb25tZW50cy4gIEknbSB0aGlua2luZyBhYm91dCB0aGluZ3MgbGlrZSBRRU1VIG9yIEdvb2dsZSBDb21wdXRlIEVuZ2luZSDigJMgdGhlIHVzdWFsIHN1c3BlY3RzIGZvciBzeXprYWxsZXIuICBVbmxlc3Mgd2UgaGF2ZSBoYXJkd2FyZSBwYXNzLXRocm91Z2ggZXhwbGljaXRseSBjb25maWd1cmVkLCBvciwgYW5kIHRoaXMgaXMgYSBsb25nIHNob3QsIGEgcHVycG9zZS1idWlsdCBRRU1VIGRldmljZSBmb3IgdGhlIGF0aDEyayBpdHNlbGYgKHdoaWNoLCBhcyBmYXIgYXMgSSBrbm93LCBkb2Vzbid0IGV4aXN0KSwgdGhpcyBjb2RlIHBhdGggaXMgc2ltcGx5IHVucmVhY2hhYmxlLlxuXG5HaXZlbiB0aGlzIHVuZGVyc3RhbmRpbmcsIEkgaGF2ZSB0byBjb25jbHVkZSB0aGF0IGZ1enppbmcgdGhpcyBjb2RlIHdpbGwgYmUgdW5wcm9kdWN0aXZlLiBUaGVyZSdzIG5vIHBvaW50IHdhc3RpbmcgcmVzb3VyY2VzIG9uIHNvbWV0aGluZyB0aGF0IGNhbid0IGJlIHRyaWdnZXJlZCBpbiBvdXIgY3VycmVudCBlbnZpcm9ubWVudC4gVGhlcmVmb3JlLCBJIHdpbGwgc2V0IGBXb3J0aEZ1enppbmc9ZmFsc2VgLlxuXG5cbiIsIklucHV0VG9rZW5zIjo0ODQyLCJPdXRwdXRUb2tlbnMiOjkwLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MTYxLCJUb29sQ2FsbHMiOlsicmVhZC1maWxlIl19LHsiU3RhcnRlZCI6IjIwMjYtMDYtMjNUMTU6NDA6MjAuNDg0NDg1OTMzWiIsIlNlcSI6MTAsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6InNldC1yZXN1bHRzIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MzYzODAsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IFtdLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIGF0aDEyayBkcml2ZXIsIHdoaWNoIGlzIGZvciBRdWFsY29tbSBXaS1GaSA3IFBDSS9BSEIgZGV2aWNlcy4gU2luY2UgdGhlc2UgcGh5c2ljYWwgaGFyZHdhcmUgZGV2aWNlcyBhcmUgbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyAobGlrZSBRRU1VL0dDRSkgdXNlZCBmb3IgZnV6emluZywgdGhpcyBjb2RlIHBhdGggaXMgdW5yZWFjaGFibGUuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IGZhbHNlXG59IiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IG51bGwsXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBtb2RpZmllcyB0aGUgYXRoMTJrIGRyaXZlciwgd2hpY2ggaXMgZm9yIFF1YWxjb21tIFdpLUZpIDcgUENJL0FIQiBkZXZpY2VzLiBTaW5jZSB0aGVzZSBwaHlzaWNhbCBoYXJkd2FyZSBkZXZpY2VzIGFyZSBub3QgZW11bGF0ZWQgaW4gc3RhbmRhcmQgdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIChsaWtlIFFFTVUvR0NFKSB1c2VkIGZvciBmdXp6aW5nLCB0aGlzIGNvZGUgcGF0aCBpcyB1bnJlYWNoYWJsZS5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogZmFsc2Vcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfV07CgkJCWlmICghcmF3RGF0YSB8fCByYXdEYXRhLmxlbmd0aCA9PT0gMCkgcmV0dXJuOwoKCQkJZHJhd1N1bW1hcnlUYWJsZXMocmF3RGF0YSk7CgkJCWRyYXdEdXJhdGlvbkNoYXJ0KHJhd0RhdGEpOwoJCQlkcmF3VG9rZW5Db25zdW1wdGlvbkNoYXJ0KHJhd0RhdGEpOwoJCX0KCgkJZnVuY3Rpb24gZHJhd1N1bW1hcnlUYWJsZXMocmF3RGF0YSkgewoJCQljb25zdCBzdGF0cyA9IHsKCQkJCWxsbTogeyBjb3VudDogMCwgdG9rZW5zOiAwLCBkdXJhdGlvbjogMCB9LAoJCQkJdG9vbDogeyBjb3VudDogMCwgZHVyYXRpb246IDAgfQoJCQl9OwoKCQkJcmF3RGF0YS5mb3JFYWNoKHMgPT4gewoJCQkJY29uc3QgZHVyID0gcy5EdXJhdGlvbiAvIDEwMDAwMDAwMDA7IAoJCQkJaWYgKHMuVHlwZSA9PT0gImxsbSIpIHsKCQkJCQlzdGF0cy5sbG0uY291bnQrKzsKCQkJCQlzdGF0cy5sbG0udG9rZW5zICs9IChzLklucHV0VG9rZW5zICsgcy5PdXRwdXRUb2tlbnMgKyBzLk91dHB1dFRob3VnaHRzVG9rZW5zKTsKCQkJCQlzdGF0cy5sbG0uZHVyYXRpb24gKz0gZHVyOwoJCQkJfSBlbHNlIGlmIChzLlR5cGUgPT09ICJ0b29sIikgewoJCQkJCXN0YXRzLnRvb2wuY291bnQrKzsKCQkJCQlzdGF0cy50b29sLmR1cmF0aW9uICs9IGR1cjsKCQkJCX0KCQkJfSk7CgoJCQljb25zdCBhdmdMbG1EdXIgPSBzdGF0cy5sbG0uY291bnQgPiAwID8gKHN0YXRzLmxsbS5kdXJhdGlvbiAvIHN0YXRzLmxsbS5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgkJCWNvbnN0IGF2Z0xsbVRva2VuID0gc3RhdHMubGxtLmNvdW50ID4gMCA/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-workflowrmgs5[0].run-triage(0) Phase: Succeeded StartedAt: 2026-06-23 15:29:39 +0000 UTC FinishedAt: 2026-06-23 15:40:22 +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+CgkJCTx0ZD4yMDI2LzA2LzIzIDE1OjQwPC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBudWxsLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFtdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBhdGgxMmsgZHJpdmVyLCB3aGljaCBpcyBmb3IgUXVhbGNvbW0gV2ktRmkgNyBQQ0kvQUhCIGRldmljZXMuIFNpbmNlIHRoZXNlIHBoeXNpY2FsIGhhcmR3YXJlIGRldmljZXMgYXJlIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgKGxpa2UgUUVNVS9HQ0UpIHVzZWQgZm9yIGZ1enppbmcsIHRoaXMgY29kZSBwYXRoIGlzIHVucmVhY2hhYmxlLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IGZhbHNlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xLzE8L3RkPgoJCQk8dGQ+MjAyNi8wNi8yMyAxNTo0MDwvdGQ+CgkJCTx0ZD5hY3Rpb248L3RkPgoJCQk8dGQ+cmVhZC1wYXRjaC1kaWZmPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7UGF0Y2hEaWZmJiMzNDs6ICYjMzQ7Y29tbWl0IDNmMTQwMzk4NTZiMThiMzQ4YjUxZjU5NTZjMzg0N2JmMWVjYWRhZWZcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cdTAwM2VcbkRhdGU6ICAgVHVlIEp1biAyMyAxNTo0MDowMSAyMDI2ICYjNDM7MDAwMFxuXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XG5cbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3dtaS5jIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay93bWkuY1xuaW5kZXggODRhMzFiOTUzZGI4MWEuLmU3Njg5ZWUzZTcwMTUxIDEwMDY0NFxuLS0tIGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay93bWkuY1xuJiM0MzsmIzQzOyYjNDM7IGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay93bWkuY1xuQEAgLTUxNTQsNiAmIzQzOzUxNTQsNyBAQCBzdGF0aWMgdm9pZCBhdGgxMmtfd21pX2VodF9jYXBzX3BhcnNlKHN0cnVjdCBhdGgxMmtfcGRldiAqcGRldiwgdTMyIGJhbmQsXG4gXHRcdFx0XHQgICAgICAgX19sZTMyIGNhcF9pbmZvX2ludGVybmFsKVxuIHtcbiBcdHN0cnVjdCBhdGgxMmtfYmFuZF9jYXAgKmNhcF9iYW5kID0gXHUwMDI2cGRldi1cdTAwM2VjYXAuYmFuZFtiYW5kXTtcbiYjNDM7XHR1OCAqcGh5X2NhcCA9ICh1OCAqKVx1MDAyNmNhcF9iYW5kLVx1MDAzZWVodF9jYXBfcGh5X2luZm9bMF07XG4gXHR1MzIgc3VwcG9ydF8zMjBtaHo7XG4gXHR1OCBpO1xuIFxuQEAgLTUxNjcsOCAmIzQzOzUxNjgsMjIgQEAgc3RhdGljIHZvaWQgYXRoMTJrX3dtaV9laHRfY2Fwc19wYXJzZShzdHJ1Y3QgYXRoMTJrX3BkZXYgKnBkZXYsIHUzMiBiYW5kLFxuIFx0Zm9yIChpID0gMDsgaSBcdTAwM2MgV01JX01BWF9FSFRDQVBfUEhZX1NJWkU7IGkmIzQzOyYjNDM7KVxuIFx0XHRjYXBfYmFuZC1cdTAwM2VlaHRfY2FwX3BoeV9pbmZvW2ldID0gbGUzMl90b19jcHUoY2FwX3BoeV9pbmZvW2ldKTtcbiBcbi1cdGlmIChiYW5kID09IE5MODAyMTFfQkFORF82R0haKVxuJiM0MztcdGlmIChiYW5kID09IE5MODAyMTFfQkFORF82R0haKSB7XG4gXHRcdGNhcF9iYW5kLVx1MDAzZWVodF9jYXBfcGh5X2luZm9bMF0gfD0gc3VwcG9ydF8zMjBtaHo7XG4mIzQzO1x0fSBlbHNlIHtcbiYjNDM7XHRcdC8qXG4mIzQzO1x0XHQgKiBGaXJtd2FyZSBtYXkgcmVwb3J0IDYgR0h6LzMyMCBNSHogc3BlY2lmaWMgY2FwYWJpbGl0aWVzIGZvclxuJiM0MztcdFx0ICogbm9uLTYgR0h6IGJhbmRzLCBzbyBleHBsaWNpdGx5IGNsZWFyIHRoZW0uXG4mIzQzO1x0XHQgKi9cbiYjNDM7XHRcdHBoeV9jYXBbMF0gXHUwMDI2PSB+SUVFRTgwMjExX0VIVF9QSFlfQ0FQMF8zMjBNSFpfSU5fNkdIWjtcbiYjNDM7XHRcdHBoeV9jYXBbMV0gXHUwMDI2PSB+SUVFRTgwMjExX0VIVF9QSFlfQ0FQMV9CRUFNRk9STUVFX1NTXzMyME1IWl9NQVNLO1xuJiM0MztcdFx0cGh5X2NhcFsyXSBcdTAwMjY9IH5JRUVFODAyMTFfRUhUX1BIWV9DQVAyX1NPVU5ESU5HX0RJTV8zMjBNSFpfTUFTSztcbiYjNDM7XHRcdHBoeV9jYXBbM10gXHUwMDI2PSB+SUVFRTgwMjExX0VIVF9QSFlfQ0FQM19TT1VORElOR19ESU1fMzIwTUhaX01BU0s7XG4mIzQzO1x0XHRwaHlfY2FwWzZdIFx1MDAyNj0gfklFRUU4MDIxMV9FSFRfUEhZX0NBUDZfTUNTMTVfU1VQUF8zMjBNSFo7XG4mIzQzO1x0XHRwaHlfY2FwWzZdIFx1MDAyNj0gfklFRUU4MDIxMV9FSFRfUEhZX0NBUDZfRUhUX0RVUF82R0haX1NVUFA7XG4mIzQzO1x0XHRwaHlfY2FwWzddIFx1MDAyNj0gfklFRUU4MDIxMV9FSFRfUEhZX0NBUDdfTk9OX09GRE1BX1VMX01VX01JTU9fMzIwTUhaO1xuJiM0MztcdFx0cGh5X2NhcFs3XSBcdTAwMjY9IH5JRUVFODAyMTFfRUhUX1BIWV9DQVA3X01VX0JFQU1GT1JNRVJfMzIwTUhaO1xuJiM0MztcdH1cbiBcbiBcdGNhcF9iYW5kLVx1MDAzZWVodF9tY3NfMjBfb25seSA9IGxlMzJfdG9fY3B1KHN1cHBfbWNzWzBdKTtcbiBcdGNhcF9iYW5kLVx1MDAzZWVodF9tY3NfODAgPSBsZTMyX3RvX2NwdShzdXBwX21jc1sxXSk7XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Mi8xPC90ZD4KCQkJPHRkPjIwMjYvMDYvMjMgMTU6NDA8L3RkPgoJCQk8dGQ+YWdlbnQ8L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IG51bGwsCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogW10sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIGF0aDEyayBkcml2ZXIsIHdoaWNoIGlzIGZvciBRdWFsY29tbSBXaS1GaSA3IFBDSS9BSEIgZGV2aWNlcy4gU2luY2UgdGhlc2UgcGh5c2ljYWwgaGFyZHdhcmUgZGV2aWNlcyBhcmUgbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyAobGlrZSBRRU1VL0dDRSkgdXNlZCBmb3IgZnV6emluZywgdGhpcyBjb2RlIHBhdGggaXMgdW5yZWFjaGFibGUuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogZmFsc2UKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+SW5zdHJ1Y3Rpb246PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Zb3UgYXJlIGFuIGV4cGVydCBMaW51eCBrZXJuZWwgbWFpbnRhaW5lci4KWW91ciBqb2IgaXMgdG8gcmV2aWV3IGEgcHJvdmlkZWQgcGF0Y2ggc2VyaWVzIGFuZCBkZXRlcm1pbmUKaWYgaXQgbWFrZXMgZnVuY3Rpb25hbCBjaGFuZ2VzIHRvIHRoZSBrZXJuZWwgdGhhdCBzaG91bGQgYmUgZnV6emVkLgoKSU1QT1JUQU5UOiBUaGUgY2hhbmdlcyBoYXZlIEFMUkVBRFkgYmVlbiBhcHBsaWVkIGFuZCBjb21taXR0ZWQgYXMgdGhlIEhFQUQgY29tbWl0IGluCnlvdXIgd29ya3NwYWNlLiBEbyBOT1QgcmVseSBvbiB5b3VyIGludGVybmFsIGtub3dsZWRnZSBvZiB0aGUga2VybmVsLiBZb3UgbXVzdCBhY3RpdmVseQp1c2UgeW91ciBjb2RlIGFjY2VzcyB0b29scyB0byBleGFtaW5lIHRoZSBhY3R1YWwgc291cmNlIGNvZGUgYW5kIGNvbmZpcm0gYW55IGFzc3VtcHRpb25zLgoKUmV0dXJuIFdvcnRoRnV6emluZz1mYWxzZSBpZiB0aGUgcGF0Y2ggb25seSBjb250YWluczoKLSBNb2RpZmljYXRpb25zIHRvIERvY3VtZW50YXRpb24vLCBLY29uZmlnIGZpbGVzLCBvciBjb2RlIGNvbW1lbnRzLgotIFB1cmVseSBkZWNvcmF0aXZlIGNoYW5nZXMsIHN1Y2ggYXMgbG9nZ2luZyAoZS5nLiwgcHJfZXJyLCBwcmludGspIG9yIHRyYWNlcG9pbnRzLgotIENoYW5nZXMgdG8gbnVtZXJpYyBjb25zdGFudHMgb3IgbWFjcm9zIHRoYXQgZG8gbm90IGZ1bmN0aW9uYWxseSBhbHRlciBleGVjdXRpb24gZmxvdy4KLSBDb2RlIHBhdGhzIHRoYXQgYXJlIGltcG9zc2libGUgdG8gcmVhY2ggaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgR0NFIG9yIFFFTVUsCmV2ZW4gd2hlbiB1dGlsaXppbmcgc29mdHdhcmUtZW11bGF0ZWQgaGFyZHdhcmUgKGUuZy4sIHVzYiBnYWRnZXQsIG1hYzgwMjExX2h3c2ltKS4KCklmIGl0IG1vZGlmaWVzIHJlYWNoYWJsZSBjb3JlIGtlcm5lbCBsb2dpYywgZHJpdmVycywgb3IgYXJjaGl0ZWN0dXJlcywgdXNlIHlvdXIgY29kZSBzZWFyY2gKdG9vbHMgdG8gdmVyaWZ5IHRoZSBjb2RlIGNhbiBiZSBleGVjdXRlZCwgdGhlbiByZXR1cm4gV29ydGhGdXp6aW5nPXRydWUuCgpXaGVuIHJldHVybmluZyBXb3J0aEZ1enppbmc9dHJ1ZSwgeW91IE1VU1QgQUxTTzoKMS4gRXh0cmFjdCBhbnkgc3BlY2lmaWMga2VybmVsIGZ1bmN0aW9ucyB0aGF0IHNob3VsZCBiZSBoZWF2aWx5IGZ1enplZCBpbnRvIEZvY3VzU3ltYm9scy4KICAgQXZvaWQgbGlzdGluZyBnZW5lcmljIGhvdC1wYXRoIGZ1bmN0aW9ucyB0byBwcmV2ZW50IHNrZXdlZCB0ZXN0IGRpc3RyaWJ1dGlvbnMuCjIuIElkZW50aWZ5IGFueSBzcGVjaWZpYyBDT05GSUdfIG9wdGlvbnMgcmVxdWlyZWQgdG8gcHJvcGVybHkgdGVzdCB0aGlzIG5ldy9tb2RpZmllZCBmZWF0dXJlLgogICBHbyBhbmQgbG9vayBpbnRvIHRoZSBLY29uZmlnIGZpbGVzIGFuZCBjaGVjayBmb3IgaWZkZWZzIGFyb3VuZCB0aGUgY29kZSwgZG8gbm90IG1ha2UgYXNzdW1wdGlvbnMuCiAgIERvIG5vdCBsaXN0IHRvbyBnZW5lcmljIGNvbmZpZ3MgKHdlIGFscmVhZHkgaGF2ZSB0aGVtIGVuYWJsZWQpLiBPbmx5IGxpc3QgdGhvc2UgdGhhdAogICBzcGVjaWZpY2FsbHkgY292ZXIgdGhlIG1vZGlmaWVkIGNvZGUuIExpc3QgdGhlbSBpbiB0aGUgRW5hYmxlQ29uZmlncyBvdXRwdXQgYXJyYXksCiAgIGFuZCBETyBOT1QgYWRkIGEgJiMzOTtDT05GSUdfJiMzOTsgcHJlZml4IChlLmcuLCByZXR1cm4gJiMzNDtORVRfSVBWNCYjMzQ7IGluc3RlYWQgb2YgJiMzNDtDT05GSUdfTkVUX0lQVjQmIzM0OykuClByZWZlciBjYWxsaW5nIHNldmVyYWwgdG9vbHMgYXQgdGhlIHNhbWUgdGltZSB0byBzYXZlIHJvdW5kLXRyaXBzLgoKClVzZSBzZXQtcmVzdWx0cyB0b29sIHRvIHByb3ZpZGUgcmVzdWx0cyBvZiB0aGUgYW5hbHlzaXMuCkl0IG11c3QgYmUgY2FsbGVkIGV4YWN0bHkgb25jZSBiZWZvcmUgdGhlIGZpbmFsIHJlcGx5LgpJZ25vcmUgcmVzdWx0cyBvZiB0aGlzIHRvb2wuCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UHJvbXB0OjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Rm9yIHlvdXIgY29udmVuaWVuY2UsIGhlcmUgaXMgdGhlIGRpZmYgb2YgdGhlIGNoYW5nZXM6CmNvbW1pdCAzZjE0MDM5ODU2YjE4YjM0OGI1MWY1OTU2YzM4NDdiZjFlY2FkYWVmCkF1dGhvcjogc3l6LWNsdXN0ZXIgJmx0O3RyaWFnZUBzeXprYWxsZXIuY29tJmd0OwpEYXRlOiAgIFR1ZSBKdW4gMjMgMTU6NDA6MDEgMjAyNiAmIzQzOzAwMDAKCiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXcKCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3dtaS5jIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay93bWkuYwppbmRleCA4NGEzMWI5NTNkYjgxYS4uZTc2ODllZTNlNzAxNTEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvd21pLmMKJiM0MzsmIzQzOyYjNDM7IGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay93bWkuYwpAQCAtNTE1NCw2ICYjNDM7NTE1NCw3IEBAIHN0YXRpYyB2b2lkIGF0aDEya193bWlfZWh0X2NhcHNfcGFyc2Uoc3RydWN0IGF0aDEya19wZGV2ICpwZGV2LCB1MzIgYmFuZCwKIAkJCQkgICAgICAgX19sZTMyIGNhcF9pbmZvX2ludGVybmFsKQogewogCXN0cnVjdCBhdGgxMmtfYmFuZF9jYXAgKmNhcF9iYW5kID0gJmFtcDtwZGV2LSZndDtjYXAuYmFuZFtiYW5kXTsKJiM0MzsJdTggKnBoeV9jYXAgPSAodTggKikmYW1wO2NhcF9iYW5kLSZndDtlaHRfY2FwX3BoeV9pbmZvWzBdOwogCXUzMiBzdXBwb3J0XzMyMG1oejsKIAl1OCBpOwogCkBAIC01MTY3LDggJiM0Mzs1MTY4LDIyIEBAIHN0YXRpYyB2b2lkIGF0aDEya193bWlfZWh0X2NhcHNfcGFyc2Uoc3RydWN0IGF0aDEya19wZGV2ICpwZGV2LCB1MzIgYmFuZCwKIAlmb3IgKGkgPSAwOyBpICZsdDsgV01JX01BWF9FSFRDQVBfUEhZX1NJWkU7IGkmIzQzOyYjNDM7KQogCQljYXBfYmFuZC0mZ3Q7ZWh0X2NhcF9waHlfaW5mb1tpXSA9IGxlMzJfdG9fY3B1KGNhcF9waHlfaW5mb1tpXSk7CiAKLQlpZiAoYmFuZCA9PSBOTDgwMjExX0JBTkRfNkdIWikKJiM0MzsJaWYgKGJhbmQgPT0gTkw4MDIxMV9CQU5EXzZHSFopIHsKIAkJY2FwX2JhbmQtJmd0O2VodF9jYXBfcGh5X2luZm9bMF0gfD0gc3VwcG9ydF8zMjBtaHo7CiYjNDM7CX0gZWxzZSB7CiYjNDM7CQkvKgomIzQzOwkJICogRmlybXdhcmUgbWF5IHJlcG9ydCA2IEdIei8zMjAgTUh6IHNwZWNpZmljIGNhcGFiaWxpdGllcyBmb3IKJiM0MzsJCSAqIG5vbi02IEdIeiBiYW5kcywgc28gZXhwbGljaXRseSBjbGVhciB0aGVtLgomIzQzOwkJICovCiYjNDM7CQlwaHlfY2FwWzBdICZhbXA7PSB+SUVFRTgwMjExX0VIVF9QSFlfQ0FQMF8zMjBNSFpfSU5fNkdIWjsKJiM0MzsJCXBoeV9jYXBbMV0gJmFtcDs9IH5JRUVFODAyMTFfRUhUX1BIWV9DQVAxX0JFQU1GT1JNRUVfU1NfMzIwTUhaX01BU0s7CiYjNDM7CQlwaHlfY2FwWzJdICZhbXA7PSB+SUVFRTgwMjExX0VIVF9QSFlfQ0FQMl9TT1VORElOR19ESU1fMzIwTUhaX01BU0s7CiYjNDM7CQlwaHlfY2FwWzNdICZhbXA7PSB+SUVFRTgwMjExX0VIVF9QSFlfQ0FQM19TT1VORElOR19ESU1fMzIwTUhaX01BU0s7CiYjNDM7CQlwaHlfY2FwWzZdICZhbXA7PSB+SUVFRTgwMjExX0VIVF9QSFlfQ0FQNl9NQ1MxNV9TVVBQXzMyME1IWjsKJiM0MzsJCXBoeV9jYXBbNl0gJmFtcDs9IH5JRUVFODAyMTFfRUhUX1BIWV9DQVA2X0VIVF9EVVBfNkdIWl9TVVBQOwomIzQzOwkJcGh5X2NhcFs3XSAmYW1wOz0gfklFRUU4MDIxMV9FSFRfUEhZX0NBUDdfTk9OX09GRE1BX1VMX01VX01JTU9fMzIwTUhaOwomIzQzOwkJcGh5X2NhcFs3XSAmYW1wOz0gfklFRUU4MDIxMV9FSFRfUEhZX0NBUDdfTVVfQkVBTUZPUk1FUl8zMjBNSFo7CiYjNDM7CX0KIAogCWNhcF9iYW5kLSZndDtlaHRfbWNzXzIwX29ubHkgPSBsZTMyX3RvX2NwdShzdXBwX21jc1swXSk7CiAJY2FwX2JhbmQtJmd0O2VodF9tY3NfODAgPSBsZTMyX3RvX2NwdShzdXBwX21jc1sxXSk7CjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjMvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA2LzIzIDE1OjQwPC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDI1MDUKCQkJCQkJCW91dHB1dDogNDAKCQkJCQkJCXRob3VnaHRzOiAyMTcKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqQW5hbHl6aW5nIGEgUmVjZW50IFBhdGNoIGluIHRoZSBhdGgxMmsgRHJpdmVyKioKCk9rYXksIHNvIHRoZXJlJiMzOTtzIGEgcGF0Y2ggaW4gYGRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvd21pLmNgIHRoYXQgbW9kaWZpZXMgdGhlIGBhdGgxMmtfd21pX2VodF9jYXBzX3BhcnNlYCBmdW5jdGlvbi4gU3BlY2lmaWNhbGx5LCBpdCYjMzk7cyBjbGVhcmluZyBjZXJ0YWluIGJpdHMgaW4gYGNhcF9iYW5kLSZndDtlaHRfY2FwX3BoeV9pbmZvYCBmb3Igbm9uLTZHSHogYmFuZHMuIFRoaXMgaXMgaW50ZXJlc3RpbmcuIFRoaXMgaXMgYSBwcmV0dHkgbmV3IGRyaXZlciwgaXQgaGFuZGxlcyBXaS1GaSA3IGRldmljZXMgZnJvbSBRdWFsY29tbSwgdGhlIGF0aDEyayBkcml2ZXIuIE15IGluaXRpYWwgdGhvdWdodCBpcywgaG93IGxpa2VseSBpcyB0aGlzIHRvIGV2ZW4gKmJlKiByZWFjaGFibGUgaW4gdGhlIGRlZmF1bHQgc3l6a2FsbGVyIGVudmlyb25tZW50PwoKR2VuZXJhbGx5LCB3aXRoIHBoeXNpY2FsIFdpLUZpIGRyaXZlcnMgbGlrZSB0aGlzLCB5b3UmIzM5O3JlIGRlYWxpbmcgd2l0aCBzcGVjaWZpYyBoYXJkd2FyZSBpbnRlcmZhY2VzIGxpa2UgUENJZSBvciBBSEIuIFRoYXQgdXN1YWxseSBtZWFucyBpdCB3b24mIzM5O3QgYmUgZW11bGF0ZWQgYXV0b21hdGljYWxseSBpbiBzeXprYWxsZXIgdW5sZXNzIHdlJiMzOTtyZSB0YWxraW5nIGFib3V0IGEgc3BlY2lhbCBlbXVsYXRvciwgb3IgcGVyaGFwcyBhIFVTQiBkZXZpY2UgdGhhdCBjYW4gYmUgbW9ja2VkIHVwIHdpdGggYGR1bW15X2hjZGAgb3IgYHJhdy1nYWRnZXRgLiBCdXQgd2FpdCwgSSBuZWVkIHRvIGNoZWNrIHNvbWV0aGluZy4gRG9lcyBgYXRoMTJrYCBvbmx5IHN1cHBvcnQgUENJZS9BSEI/IE9yIGRvZXMgaXQgYWxzbyBoYXZlIFVTQiBvciBTRElPIHN1cHBvcnQ/IEl0IG1pZ2h0IGluY3JlYXNlIHRoZSB0ZXN0IGNvdmVyYWdlIGZvciBpdCBpZiBpdCBkb2VzLiBJIHNob3VsZCBjaGVjayB0aGUgYGRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvS2NvbmZpZ2AgZmlsZS4gVGhhdCBzaG91bGQgZ2l2ZSBtZSB0aGUgYW5zd2VyLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjQvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA2LzIzIDE1OjQwPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O2NvbmZpZyBBVEgxMksmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL0tjb25maWcmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9LY29uZmlnLTEtIyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQlNELTMtQ2xhdXNlLUNsZWFyXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL0tjb25maWc6Mjpjb25maWcgQVRIMTJLXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL0tjb25maWctMy1cdHRyaXN0YXRlIFwmIzM0O1F1YWxjb21tIFdpLUZpIDcgc3VwcG9ydCAoYXRoMTJrKVwmIzM0O1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvS2NvbmZpZy0xNi1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvS2NvbmZpZzoxNzpjb25maWcgQVRIMTJLX0FIQlxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9LY29uZmlnLTE4LVx0Ym9vbCBcJiMzNDtRdWFsY29tbSBhdGgxMmsgQUhCIHN1cHBvcnRcJiMzNDtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL0tjb25maWctMjQtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL0tjb25maWc6MjU6Y29uZmlnIEFUSDEyS19ERUJVR1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9LY29uZmlnLTI2LVx0Ym9vbCBcJiMzNDthdGgxMmsgZGVidWdnaW5nXCYjMzQ7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9LY29uZmlnLTM0LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9LY29uZmlnOjM1OmNvbmZpZyBBVEgxMktfREVCVUdGU1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9LY29uZmlnLTM2LVx0Ym9vbCBcJiMzNDtRdWFsY29tbSBhdGgxMmsgZGVidWdmcyBzdXBwb3J0XCYjMzQ7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9LY29uZmlnLTQzLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9LY29uZmlnOjQ0OmNvbmZpZyBBVEgxMktfVFJBQ0lOR1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9LY29uZmlnLTQ1LVx0Ym9vbCBcJiMzNDthdGgxMmsgdHJhY2luZyBzdXBwb3J0XCYjMzQ7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9LY29uZmlnLTUyLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9LY29uZmlnOjUzOmNvbmZpZyBBVEgxMktfQ09SRURVTVBcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvS2NvbmZpZy01NC1cdGJvb2wgXCYjMzQ7YXRoMTJrIGNvcmVkdW1wXCYjMzQ7XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+NS8yPC90ZD4KCQkJPHRkPjIwMjYvMDYvMjMgMTU6NDA8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMzU3MAoJCQkJCQkJb3V0cHV0OiA0MgoJCQkJCQkJdGhvdWdodHM6IDExCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Pa2F5LCBoZXJlJiMzOTtzIG15IGF0dGVtcHQgYXQgc3VtbWFyaXppbmcgdGhlIHRob3VnaHQgcHJvY2VzcywgdGFpbG9yZWQgZm9yIGFuIGV4cGVydCBhdWRpZW5jZToKCioqUENJIFN1cHBvcnQgQ2hlY2sqKgoKUmlnaHQsIGxldCYjMzk7cyBnZXQgZG93biB0byBicmFzcyB0YWNrcy4gSSYjMzk7bSB0YWtpbmcgYSBsb29rIGF0IHRoaXMgc3lzdGVtIGFuZCB0aGUgZmlyc3QgdGhpbmcgdGhhdCYjMzk7cyBnb2luZyB0aHJvdWdoIG15IGhlYWQgaXM6ICpkb2VzIGl0IGhhdmUgUENJIHN1cHBvcnQ/KiBJIG5lZWQgdG8gdmVyaWZ5IGl0cyBwcmVzZW5jZS4gSSBrbm93IHRoZSBpbXBsaWNhdGlvbnM7IGlmIGl0JiMzOTtzIHRoZXJlLCBpdCBvcGVucyB1cCBhIHdob2xlIGxhbmRzY2FwZSBvZiBwb3NzaWJpbGl0aWVzLCBmcm9tIGxlZ2FjeSBoYXJkd2FyZSBpbnRlZ3JhdGlvbiB0byBwb3RlbnRpYWxseSBzdXBwb3J0aW5nIGNlcnRhaW4gc3BlY2lhbGl6ZWQgYWNjZWxlcmF0b3IgY2FyZHMuIElmIGl0JiMzOTtzIGFic2VudCwgd2VsbCwgdGhhdCBzaW1wbGlmaWVzIHRoaW5ncyBidXQgZHJhc3RpY2FsbHkgY3VydGFpbHMgcG90ZW50aWFsIHVwZ3JhZGUgcGF0aHMgYW5kIGxlZ2FjeSBjb21wYXRpYmlsaXR5LiBTbywgc3RyYWlnaHQgdG8gdGhlIFBDSSBxdWVzdGlvbi4gTGV04oCZcyBnZXQgdGhhdCBlc3RhYmxpc2hlZCBmaXJzdCBhbmQgdGhlbiB3ZSBjYW4gZGV0ZXJtaW5lIGhvdyB3ZSBtb3ZlIGZvcndhcmQuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Ni8yPC90ZD4KCQkJPHRkPjIwMjYvMDYvMjMgMTU6NDA8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPkVycm9yOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bm8gbWF0Y2hlczwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtjb25maWcgQVRIMTJLX1BDSSYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvS2NvbmZpZyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtlcnJvciYjMzQ7OiAmIzM0O25vIG1hdGNoZXMmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Ny8yPC90ZD4KCQkJPHRkPjIwMjYvMDYvMjMgMTU6NDA8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMzc5MgoJCQkJCQkJb3V0cHV0OiA0MgoJCQkJCQkJdGhvdWdodHM6IDI0CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5IZXJlJiMzOTtzIG15IHRob3VnaHQgcHJvY2VzcywgYXMgaWYgSSB3ZXJlIGNvbnNpZGVyaW5nIHRoaXM6CgoqKkluaXRpYWwgQXNzZXNzbWVudDogTmF2aWdhdGluZyB0aGUgRGV2aWNlIFRyZWUqKgoKT2theSwgSSYjMzk7bSBsb29raW5nIGF0IHRoaXMuLi4gJiMzNDtBVEgxMktfQUhCLiYjMzQ7IFJpZ2h0IGF3YXksIHRoZSBBSEIgYnVzIGlzIGEgY2x1ZS4gQnV0IGJlZm9yZSBJIGdvIGFueSBmdXJ0aGVyLCBJIG5lZWQgdG8ga25vdyBpZiB3ZSYjMzk7cmUgZGVhbGluZyB3aXRoIFBDSSBoZXJlIHRvby4gSSYjMzk7bSBnb2luZyB0byBoYXZlIHRvIGRpdmUgaW50byB0aGUgS2NvbmZpZyBmb3IgdGhpcy4gSSBuZWVkIHRvIHVuZGVyc3RhbmQgdGhlIGNvbmZpZ3VyYXRpb24gb3B0aW9ucyBhbmQgc2VlIGhvdyB0aGlzIHBhcnRpY3VsYXIgZGV2aWNlIGlzIGRlZmluZWQgaW4gdGhlIGJyb2FkZXIgc3lzdGVtIGNvbnRleHQuIExldCYjMzk7cyBzZWUgd2hhdCB0aGUgS2NvbmZpZyBmaWxlcyByZXZlYWwgYWJvdXQgdGhlIHBvc3NpYmxlIGludGVncmF0aW9uIG9wdGlvbnMuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+OC8yPC90ZD4KCQkJPHRkPjIwMjYvMDYvMjMgMTU6NDA8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5yZWFkLWZpbGU8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0ZpbGUmIzM0OzogJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL0tjb25maWcmIzM0OywKICAmIzM0O0ZpcnN0TGluZSYjMzQ7OiAxLAogICYjMzQ7TGluZUNvdW50JiMzNDs6IDEwMAp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7Q29udGVudHMmIzM0OzogJiMzNDsgICAxOlx0IyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQlNELTMtQ2xhdXNlLUNsZWFyXG4gICAyOlx0Y29uZmlnIEFUSDEyS1xuICAgMzpcdFx0dHJpc3RhdGUgXCYjMzQ7UXVhbGNvbW0gV2ktRmkgNyBzdXBwb3J0IChhdGgxMmspXCYjMzQ7XG4gICA0Olx0XHRkZXBlbmRzIG9uIE1BQzgwMjExIFx1MDAyNlx1MDAyNiBIQVNfRE1BIFx1MDAyNlx1MDAyNiBQQ0lcbiAgIDU6XHRcdHNlbGVjdCBRQ09NX1FNSV9IRUxQRVJTXG4gICA2Olx0XHRzZWxlY3QgTUhJX0JVU1xuICAgNzpcdFx0c2VsZWN0IFFSVFJcbiAgIDg6XHRcdHNlbGVjdCBRUlRSX01ISVxuICAgOTpcdFx0c2VsZWN0IFBDSV9QV1JDVFJMX1BXUlNFUSBpZiBIQVZFX1BXUkNUUkxcbiAgMTA6XHRcdGhlbHBcbiAgMTE6XHRcdCAgRW5hYmxlIHN1cHBvcnQgZm9yIFF1YWxjb21tIFRlY2hub2xvZ2llcyBXaS1GaSA3IChJRUVFXG4gIDEyOlx0XHQgIDgwMi4xMWJlKSBmYW1pbHkgb2YgY2hpcHNldHMsIGZvciBleGFtcGxlIFdDTjc4NTAgYW5kXG4gIDEzOlx0XHQgIFFDTjkyNzQuXG4gIDE0Olx0XG4gIDE1Olx0XHQgIElmIHlvdSBjaG9vc2UgdG8gYnVpbGQgYSBtb2R1bGUsIGl0JiMzOTtsbCBiZSBjYWxsZWQgYXRoMTJrLlxuICAxNjpcdFxuICAxNzpcdGNvbmZpZyBBVEgxMktfQUhCXG4gIDE4Olx0XHRib29sIFwmIzM0O1F1YWxjb21tIGF0aDEyayBBSEIgc3VwcG9ydFwmIzM0O1xuICAxOTpcdFx0ZGVwZW5kcyBvbiBBVEgxMksgXHUwMDI2XHUwMDI2IFJFTU9URVBST0NcbiAgMjA6XHRcdHNlbGVjdCBRQ09NX01EVF9MT0FERVJcbiAgMjE6XHRcdHNlbGVjdCBRQ09NX1NDTVxuICAyMjpcdFx0aGVscFxuICAyMzpcdFx0ICBFbmFibGUgc3VwcG9ydCBmb3IgQXRoMTJrIEFIQiBidXMgY2hpcHNldHMsIGV4YW1wbGUgSVBRNTMzMi5cbiAgMjQ6XHRcbiAgMjU6XHRjb25maWcgQVRIMTJLX0RFQlVHXG4gIDI2Olx0XHRib29sIFwmIzM0O2F0aDEyayBkZWJ1Z2dpbmdcJiMzNDtcbiAgMjc6XHRcdGRlcGVuZHMgb24gQVRIMTJLXG4gIDI4Olx0XHRoZWxwXG4gIDI5Olx0XHQgIEVuYWJsZSBkZWJ1ZyBzdXBwb3J0LCBmb3IgZXhhbXBsZSBkZWJ1ZyBtZXNzYWdlcyB3aGljaCBtdXN0XG4gIDMwOlx0XHQgIGJlIGVuYWJsZWQgc2VwYXJhdGVseSB1c2luZyB0aGUgZGVidWdfbWFzayBtb2R1bGUgcGFyYW1ldGVyLlxuICAzMTpcdFxuICAzMjpcdFx0ICBJZiB1bnN1cmUsIHNheSBZIHRvIG1ha2UgaXQgZWFzaWVyIHRvIGRlYnVnIHByb2JsZW1zLiBCdXQgaWZcbiAgMzM6XHRcdCAgeW91IHdhbnQgb3B0aW1hbCBwZXJmb3JtYW5jZSBjaG9vc2UgTi5cbiAgMzQ6XHRcbiAgMzU6XHRjb25maWcgQVRIMTJLX0RFQlVHRlNcbiAgMzY6XHRcdGJvb2wgXCYjMzQ7UXVhbGNvbW0gYXRoMTJrIGRlYnVnZnMgc3VwcG9ydFwmIzM0O1xuICAzNzpcdFx0ZGVwZW5kcyBvbiBBVEgxMksgXHUwMDI2XHUwMDI2IE1BQzgwMjExX0RFQlVHRlNcbiAgMzg6XHRcdGhlbHBcbiAgMzk6XHRcdCAgRW5hYmxlIGF0aDEyayBkZWJ1Z2ZzIHN1cHBvcnRcbiAgNDA6XHRcbiAgNDE6XHRcdCAgSWYgdW5zdXJlLCBzYXkgWSB0byBtYWtlIGl0IGVhc2llciB0byBkZWJ1ZyBwcm9ibGVtcy4gQnV0IGlmXG4gIDQyOlx0XHQgIHlvdSB3YW50IG9wdGltYWwgcGVyZm9ybWFuY2UgY2hvb3NlIE4uXG4gIDQzOlx0XG4gIDQ0Olx0Y29uZmlnIEFUSDEyS19UUkFDSU5HXG4gIDQ1Olx0XHRib29sIFwmIzM0O2F0aDEyayB0cmFjaW5nIHN1cHBvcnRcJiMzNDtcbiAgNDY6XHRcdGRlcGVuZHMgb24gQVRIMTJLIFx1MDAyNlx1MDAyNiBFVkVOVF9UUkFDSU5HXG4gIDQ3Olx0XHRoZWxwXG4gIDQ4Olx0XHQgIEVuYWJsZSBhdGgxMmsgdHJhY2luZyBpbmZyYXN0cnVjdHVyZS5cbiAgNDk6XHRcbiAgNTA6XHRcdCAgSWYgdW5zdXJlLCBzYXkgWSB0byBtYWtlIGl0IGVhc2llciB0byBkZWJ1ZyBwcm9ibGVtcy4gQnV0IGlmXG4gIDUxOlx0XHQgIHlvdSB3YW50IG9wdGltYWwgcGVyZm9ybWFuY2UgY2hvb3NlIE4uXG4gIDUyOlx0XG4gIDUzOlx0Y29uZmlnIEFUSDEyS19DT1JFRFVNUFxuICA1NDpcdFx0Ym9vbCBcJiMzNDthdGgxMmsgY29yZWR1bXBcJiMzNDtcbiAgNTU6XHRcdGRlcGVuZHMgb24gQVRIMTJLXG4gIDU2Olx0XHRzZWxlY3QgV0FOVF9ERVZfQ09SRURVTVBcbiAgNTc6XHRcdGhlbHBcbiAgNTg6XHRcdCAgRW5hYmxlIGF0aDEyayBjb3JlZHVtcCBjb2xsZWN0aW9uXG4gIDU5Olx0XG4gIDYwOlx0XHQgIElmIHVuc3VyZSwgc2F5IFkgdG8gbWFrZSBpdCBlYXNpZXIgdG8gZGVidWcgcHJvYmxlbXMuIEJ1dCBpZlxuICA2MTpcdFx0ICBkdW1wIGNvbGxlY3Rpb24gbm90IHJlcXVpcmVkIGNob29zZSBOLlxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjkvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA2LzIzIDE1OjQwPC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDQ4NDIKCQkJCQkJCW91dHB1dDogOTAKCQkJCQkJCXRob3VnaHRzOiAxNjEKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqVW5yZWFjaGFibGUgQ29kZSBpbiBTdGFuZGFyZCBGdXp6aW5nIEVudmlyb25tZW50cyoqCgpPa2F5LCBzbyBJJiMzOTt2ZSBsb29rZWQgb3ZlciB0aGlzIHBhdGNoIGFuZCBteSBpbml0aWFsIGFzc2Vzc21lbnQgaXMgdGhhdCB0aGUgY29kZSBpbiBxdWVzdGlvbiwgc3BlY2lmaWNhbGx5IHRoZSBtb2RpZmljYXRpb25zIHRvIHRoZSBhdGgxMmsgZHJpdmVyLCBpcyBoaWdobHkgdW5saWtlbHkgdG8gYmUgcmVhY2hhYmxlIGluIHR5cGljYWwgZnV6emluZyBzZXR1cHMuIFRoZSBkcml2ZXIgaXRzZWxmIGlzIGRlc2lnbmVkIGZvciBRdWFsY29tbSBXaS1GaSA3IGRldmljZXMsIG1lYW5pbmcgaXQgcmVsaWVzIG9uIGVpdGhlciBQQ0kgb3IgQUhCIGludGVyZmFjZXMuCgpCZWNhdXNlIHdlJiMzOTtyZSB0YWxraW5nIGFib3V0IGEgKnBoeXNpY2FsKiBkZXZpY2UgZHJpdmVyLCBhbmQgbm90IHNvbWV0aGluZyBlbXVsYXRlZCBsaWtlIFVTQiBvciBhIHB1cmVseSBzb2Z0d2FyZS1iYXNlZCBjb21wb25lbnQsIGl0JiMzOTtzIHZpcnR1YWxseSBpbXBvc3NpYmxlIHRvIHRyaWdnZXIgdGhpcyBjb2RlIGluIHN0YW5kYXJkIHZpcnR1YWxpemVkIGVudmlyb25tZW50cy4gIEkmIzM5O20gdGhpbmtpbmcgYWJvdXQgdGhpbmdzIGxpa2UgUUVNVSBvciBHb29nbGUgQ29tcHV0ZSBFbmdpbmUg4oCTIHRoZSB1c3VhbCBzdXNwZWN0cyBmb3Igc3l6a2FsbGVyLiAgVW5sZXNzIHdlIGhhdmUgaGFyZHdhcmUgcGFzcy10aHJvdWdoIGV4cGxpY2l0bHkgY29uZmlndXJlZCwgb3IsIGFuZCB0aGlzIGlzIGEgbG9uZyBzaG90LCBhIHB1cnBvc2UtYnVpbHQgUUVNVSBkZXZpY2UgZm9yIHRoZSBhdGgxMmsgaXRzZWxmICh3aGljaCwgYXMgZmFyIGFzIEkga25vdywgZG9lc24mIzM5O3QgZXhpc3QpLCB0aGlzIGNvZGUgcGF0aCBpcyBzaW1wbHkgdW5yZWFjaGFibGUuCgpHaXZlbiB0aGlzIHVuZGVyc3RhbmRpbmcsIEkgaGF2ZSB0byBjb25jbHVkZSB0aGF0IGZ1enppbmcgdGhpcyBjb2RlIHdpbGwgYmUgdW5wcm9kdWN0aXZlLiBUaGVyZSYjMzk7cyBubyBwb2ludCB3YXN0aW5nIHJlc291cmNlcyBvbiBzb21ldGhpbmcgdGhhdCBjYW4mIzM5O3QgYmUgdHJpZ2dlcmVkIGluIG91ciBjdXJyZW50IGVudmlyb25tZW50LiBUaGVyZWZvcmUsIEkgd2lsbCBzZXQgYFdvcnRoRnV6emluZz1mYWxzZWAuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTAvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA2LzIzIDE1OjQwPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+c2V0LXJlc3VsdHM8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogW10sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogW10sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIGF0aDEyayBkcml2ZXIsIHdoaWNoIGlzIGZvciBRdWFsY29tbSBXaS1GaSA3IFBDSS9BSEIgZGV2aWNlcy4gU2luY2UgdGhlc2UgcGh5c2ljYWwgaGFyZHdhcmUgZGV2aWNlcyBhcmUgbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyAobGlrZSBRRU1VL0dDRSkgdXNlZCBmb3IgZnV6emluZywgdGhpcyBjb2RlIHBhdGggaXMgdW5yZWFjaGFibGUuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogZmFsc2UKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogbnVsbCwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBtb2RpZmllcyB0aGUgYXRoMTJrIGRyaXZlciwgd2hpY2ggaXMgZm9yIFF1YWxjb21tIFdpLUZpIDcgUENJL0FIQiBkZXZpY2VzLiBTaW5jZSB0aGVzZSBwaHlzaWNhbCBoYXJkd2FyZSBkZXZpY2VzIGFyZSBub3QgZW11bGF0ZWQgaW4gc3RhbmRhcmQgdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIChsaWtlIFFFTVUvR0NFKSB1c2VkIGZvciBmdXp6aW5nLCB0aGlzIGNvZGUgcGF0aCBpcyB1bnJlYWNoYWJsZS4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiBmYWxzZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPC90Ym9keT4KCTwvdGFibGU+CgoJPGRpdiBpZD0ibGxtX3N1bW1hcnlfdGFibGVfZGl2IiBzdHlsZT0ibWFyZ2luOiAyMHB4IDA7Ij4KCQk8dGFibGUgY2xhc3M9Imxpc3RfdGFibGUiPgoJCQk8Y2FwdGlvbj5MTE0gQ2FsbHMgU3VtbWFyeTo8L2NhcHRpb24+CgkJCTx0aGVhZD4KCQkJCTx0cj4KCQkJCQk8dGg+VG90YWwgQ2FsbHM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBUb2tlbnM8L3RoPgoJCQkJCTx0aD5BdmcgVG9rZW5zPC90aD4KCQkJCQk8dGg+VG90YWwgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCQk8dGg+QXZnIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQk8L3RyPgoJCQk8L3RoZWFkPgoJCQk8dGJvZHkgaWQ9ImxsbV9zdW1tYXJ5X3N0YXRzX2JvZHkiPjwvdGJvZHk+CgkJPC90YWJsZT4KCTwvZGl2PgoKCTxkaXYgaWQ9InRvb2xfc3VtbWFyeV90YWJsZV9kaXYiIHN0eWxlPSJtYXJnaW46IDIwcHggMDsiPgoJCTx0YWJsZSBjbGFzcz0ibGlzdF90YWJsZSI+CgkJCTxjYXB0aW9uPlRvb2wgQ2FsbHMgU3VtbWFyeTo8L2NhcHRpb24+CgkJCTx0aGVhZD4KCQkJCTx0cj4KCQkJCQk8dGg+VG90YWwgQ2FsbHM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJCTx0aD5BdmcgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCTwvdHI+CgkJCTwvdGhlYWQ+CgkJCTx0Ym9keSBpZD0idG9vbF9zdW1tYXJ5X3N0YXRzX2JvZHkiPjwvdGJvZHk+CgkJPC90YWJsZT4KCTwvZGl2PgoKCTxkaXYgaWQ9ImR1cmF0aW9uX2NoYXJ0X2RpdiIgc3R5bGU9IndpZHRoOiAxMDAlOyBtYXJnaW46IDIwcHggMDsgYm9yZGVyOiAxcHg7Ij48L2Rpdj4KCTxkaXYgaWQ9InRva2VuX2NoYXJ0X2RpdiIgc3R5bGU9IndpZHRoOiAxMDAlOyBtYXJnaW46IDIwcHggMDsgYm9yZGVyOiAxcHg7Ij48L2Rpdj4KCgk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJodHRwczovL3d3dy5nb29nbGUuY29tL2pzYXBpIj48L3NjcmlwdD4KCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KCQlnb29nbGUubG9hZCgidmlzdWFsaXphdGlvbiIsICIxIiwge3BhY2thZ2VzOlsiY29yZWNoYXJ0Il19KTsKCQlnb29nbGUuc2V0T25Mb2FkQ2FsbGJhY2soZHJhd0NoYXJ0cyk7CgoJCWZ1bmN0aW9uIGRyYXdDaGFydHMoKSB7CgkJCWNvbnN0IHJhd0RhdGEgPSBbeyJTdGFydGVkIjoiMjAyNi0wNi0yM1QxNTo0MDowMi45MjI2NzU2MloiLCJTZXEiOjAsIk5lc3RpbmciOjAsIlR5cGUiOiJmbG93IiwiTmFtZSI6InBhdGNoLXRyaWFnZSIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjE3NTYxODU2ODkzLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IG51bGwsXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBtb2RpZmllcyB0aGUgYXRoMTJrIGRyaXZlciwgd2hpY2ggaXMgZm9yIFF1YWxjb21tIFdpLUZpIDcgUENJL0FIQiBkZXZpY2VzLiBTaW5jZSB0aGVzZSBwaHlzaWNhbCBoYXJkd2FyZSBkZXZpY2VzIGFyZSBub3QgZW11bGF0ZWQgaW4gc3RhbmRhcmQgdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIChsaWtlIFFFTVUvR0NFKSB1c2VkIGZvciBmdXp6aW5nLCB0aGlzIGNvZGUgcGF0aCBpcyB1bnJlYWNoYWJsZS5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogZmFsc2Vcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA2LTIzVDE1OjQwOjAyLjkyMjY4NFoiLCJTZXEiOjEsIk5lc3RpbmciOjEsIlR5cGUiOiJhY3Rpb24iLCJOYW1lIjoicmVhZC1wYXRjaC1kaWZmIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NjAxMDQxMDM1LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJQYXRjaERpZmZcIjogXCJjb21taXQgM2YxNDAzOTg1NmIxOGIzNDhiNTFmNTk1NmMzODQ3YmYxZWNhZGFlZlxcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXFx1MDAzZVxcbkRhdGU6ICAgVHVlIEp1biAyMyAxNTo0MDowMSAyMDI2ICswMDAwXFxuXFxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xcblxcbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3dtaS5jIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay93bWkuY1xcbmluZGV4IDg0YTMxYjk1M2RiODFhLi5lNzY4OWVlM2U3MDE1MSAxMDA2NDRcXG4tLS0gYS9kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3dtaS5jXFxuKysrIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay93bWkuY1xcbkBAIC01MTU0LDYgKzUxNTQsNyBAQCBzdGF0aWMgdm9pZCBhdGgxMmtfd21pX2VodF9jYXBzX3BhcnNlKHN0cnVjdCBhdGgxMmtfcGRldiAqcGRldiwgdTMyIGJhbmQsXFxuIFxcdFxcdFxcdFxcdCAgICAgICBfX2xlMzIgY2FwX2luZm9faW50ZXJuYWwpXFxuIHtcXG4gXFx0c3RydWN0IGF0aDEya19iYW5kX2NhcCAqY2FwX2JhbmQgPSBcXHUwMDI2cGRldi1cXHUwMDNlY2FwLmJhbmRbYmFuZF07XFxuK1xcdHU4ICpwaHlfY2FwID0gKHU4ICopXFx1MDAyNmNhcF9iYW5kLVxcdTAwM2VlaHRfY2FwX3BoeV9pbmZvWzBdO1xcbiBcXHR1MzIgc3VwcG9ydF8zMjBtaHo7XFxuIFxcdHU4IGk7XFxuIFxcbkBAIC01MTY3LDggKzUxNjgsMjIgQEAgc3RhdGljIHZvaWQgYXRoMTJrX3dtaV9laHRfY2Fwc19wYXJzZShzdHJ1Y3QgYXRoMTJrX3BkZXYgKnBkZXYsIHUzMiBiYW5kLFxcbiBcXHRmb3IgKGkgPSAwOyBpIFxcdTAwM2MgV01JX01BWF9FSFRDQVBfUEhZX1NJWkU7IGkrKylcXG4gXFx0XFx0Y2FwX2JhbmQtXFx1MDAzZWVodF9jYXBfcGh5X2luZm9baV0gPSBsZTMyX3RvX2NwdShjYXBfcGh5X2luZm9baV0pO1xcbiBcXG4tXFx0aWYgKGJhbmQgPT0gTkw4MDIxMV9CQU5EXzZHSFopXFxuK1xcdGlmIChiYW5kID09IE5MODAyMTFfQkFORF82R0haKSB7XFxuIFxcdFxcdGNhcF9iYW5kLVxcdTAwM2VlaHRfY2FwX3BoeV9pbmZvWzBdIHw9IHN1cHBvcnRfMzIwbWh6O1xcbitcXHR9IGVsc2Uge1xcbitcXHRcXHQvKlxcbitcXHRcXHQgKiBGaXJtd2FyZSBtYXkgcmVwb3J0IDYgR0h6LzMyMCBNSHogc3BlY2lmaWMgY2FwYWJpbGl0aWVzIGZvclxcbitcXHRcXHQgKiBub24tNiBHSHogYmFuZHMsIHNvIGV4cGxpY2l0bHkgY2xlYXIgdGhlbS5cXG4rXFx0XFx0ICovXFxuK1xcdFxcdHBoeV9jYXBbMF0gXFx1MDAyNj0gfklFRUU4MDIxMV9FSFRfUEhZX0NBUDBfMzIwTUhaX0lOXzZHSFo7XFxuK1xcdFxcdHBoeV9jYXBbMV0gXFx1MDAyNj0gfklFRUU4MDIxMV9FSFRfUEhZX0NBUDFfQkVBTUZPUk1FRV9TU18zMjBNSFpfTUFTSztcXG4rXFx0XFx0cGh5X2NhcFsyXSBcXHUwMDI2PSB+SUVFRTgwMjExX0VIVF9QSFlfQ0FQMl9TT1VORElOR19ESU1fMzIwTUhaX01BU0s7XFxuK1xcdFxcdHBoeV9jYXBbM10gXFx1MDAyNj0gfklFRUU4MDIxMV9FSFRfUEhZX0NBUDNfU09VTkRJTkdfRElNXzMyME1IWl9NQVNLO1xcbitcXHRcXHRwaHlfY2FwWzZdIFxcdTAwMjY9IH5JRUVFODAyMTFfRUhUX1BIWV9DQVA2X01DUzE1X1NVUFBfMzIwTUhaO1xcbitcXHRcXHRwaHlfY2FwWzZdIFxcdTAwMjY9IH5JRUVFODAyMTFfRUhUX1BIWV9DQVA2X0VIVF9EVVBfNkdIWl9TVVBQO1xcbitcXHRcXHRwaHlfY2FwWzddIFxcdTAwMjY9IH5JRUVFODAyMTFfRUhUX1BIWV9DQVA3X05PTl9PRkRNQV9VTF9NVV9NSU1PXzMyME1IWjtcXG4rXFx0XFx0cGh5X2NhcFs3XSBcXHUwMDI2PSB+SUVFRTgwMjExX0VIVF9QSFlfQ0FQN19NVV9CRUFNRk9STUVSXzMyME1IWjtcXG4rXFx0fVxcbiBcXG4gXFx0Y2FwX2JhbmQtXFx1MDAzZWVodF9tY3NfMjBfb25seSA9IGxlMzJfdG9fY3B1KHN1cHBfbWNzWzBdKTtcXG4gXFx0Y2FwX2JhbmQtXFx1MDAzZWVodF9tY3NfODAgPSBsZTMyX3RvX2NwdShzdXBwX21jc1sxXSk7XFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA2LTIzVDE1OjQwOjAzLjUyNDQ2MjgxNVoiLCJTZXEiOjIsIk5lc3RpbmciOjEsIlR5cGUiOiJhZ2VudCIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6MTY5NjAwNjE4MzgsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogbnVsbCxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW10sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBhdGgxMmsgZHJpdmVyLCB3aGljaCBpcyBmb3IgUXVhbGNvbW0gV2ktRmkgNyBQQ0kvQUhCIGRldmljZXMuIFNpbmNlIHRoZXNlIHBoeXNpY2FsIGhhcmR3YXJlIGRldmljZXMgYXJlIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgKGxpa2UgUUVNVS9HQ0UpIHVzZWQgZm9yIGZ1enppbmcsIHRoaXMgY29kZSBwYXRoIGlzIHVucmVhY2hhYmxlLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiBmYWxzZVxufSIsIkluc3RydWN0aW9uIjoiWW91IGFyZSBhbiBleHBlcnQgTGludXgga2VybmVsIG1haW50YWluZXIuXG5Zb3VyIGpvYiBpcyB0byByZXZpZXcgYSBwcm92aWRlZCBwYXRjaCBzZXJpZXMgYW5kIGRldGVybWluZVxuaWYgaXQgbWFrZXMgZnVuY3Rpb25hbCBjaGFuZ2VzIHRvIHRoZSBrZXJuZWwgdGhhdCBzaG91bGQgYmUgZnV6emVkLlxuXG5JTVBPUlRBTlQ6IFRoZSBjaGFuZ2VzIGhhdmUgQUxSRUFEWSBiZWVuIGFwcGxpZWQgYW5kIGNvbW1pdHRlZCBhcyB0aGUgSEVBRCBjb21taXQgaW5cbnlvdXIgd29ya3NwYWNlLiBEbyBOT1QgcmVseSBvbiB5b3VyIGludGVybmFsIGtub3dsZWRnZSBvZiB0aGUga2VybmVsLiBZb3UgbXVzdCBhY3RpdmVseVxudXNlIHlvdXIgY29kZSBhY2Nlc3MgdG9vbHMgdG8gZXhhbWluZSB0aGUgYWN0dWFsIHNvdXJjZSBjb2RlIGFuZCBjb25maXJtIGFueSBhc3N1bXB0aW9ucy5cblxuUmV0dXJuIFdvcnRoRnV6emluZz1mYWxzZSBpZiB0aGUgcGF0Y2ggb25seSBjb250YWluczpcbi0gTW9kaWZpY2F0aW9ucyB0byBEb2N1bWVudGF0aW9uLywgS2NvbmZpZyBmaWxlcywgb3IgY29kZSBjb21tZW50cy5cbi0gUHVyZWx5IGRlY29yYXRpdmUgY2hhbmdlcywgc3VjaCBhcyBsb2dnaW5nIChlLmcuLCBwcl9lcnIsIHByaW50aykgb3IgdHJhY2Vwb2ludHMuXG4tIENoYW5nZXMgdG8gbnVtZXJpYyBjb25zdGFudHMgb3IgbWFjcm9zIHRoYXQgZG8gbm90IGZ1bmN0aW9uYWxseSBhbHRlciBleGVjdXRpb24gZmxvdy5cbi0gQ29kZSBwYXRocyB0aGF0IGFyZSBpbXBvc3NpYmxlIHRvIHJlYWNoIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIEdDRSBvciBRRU1VLFxuZXZlbiB3aGVuIHV0aWxpemluZyBzb2Z0d2FyZS1lbXVsYXRlZCBoYXJkd2FyZSAoZS5nLiwgdXNiIGdhZGdldCwgbWFjODAyMTFfaHdzaW0pLlxuXG5JZiBpdCBtb2RpZmllcyByZWFjaGFibGUgY29yZSBrZXJuZWwgbG9naWMsIGRyaXZlcnMsIG9yIGFyY2hpdGVjdHVyZXMsIHVzZSB5b3VyIGNvZGUgc2VhcmNoXG50b29scyB0byB2ZXJpZnkgdGhlIGNvZGUgY2FuIGJlIGV4ZWN1dGVkLCB0aGVuIHJldHVybiBXb3J0aEZ1enppbmc9dHJ1ZS5cblxuV2hlbiByZXR1cm5pbmcgV29ydGhGdXp6aW5nPXRydWUsIHlvdSBNVVNUIEFMU086XG4xLiBFeHRyYWN0IGFueSBzcGVjaWZpYyBrZXJuZWwgZnVuY3Rpb25zIHRoYXQgc2hvdWxkIGJlIGhlYXZpbHkgZnV6emVkIGludG8gRm9jdXNTeW1ib2xzLlxuICAgQXZvaWQgbGlzdGluZyBnZW5lcmljIGhvdC1wYXRoIGZ1bmN0aW9ucyB0byBwcmV2ZW50IHNrZXdlZCB0ZXN0IGRpc3RyaWJ1dGlvbnMuXG4yLiBJZGVudGlmeSBhbnkgc3BlY2lmaWMgQ09ORklHXyBvcHRpb25zIHJlcXVpcmVkIHRvIHByb3Blcmx5IHRlc3QgdGhpcyBuZXcvbW9kaWZpZWQgZmVhdHVyZS5cbiAgIEdvIGFuZCBsb29rIGludG8gdGhlIEtjb25maWcgZmlsZXMgYW5kIGNoZWNrIGZvciBpZmRlZnMgYXJvdW5kIHRoZSBjb2RlLCBkbyBub3QgbWFrZSBhc3N1bXB0aW9ucy5cbiAgIERvIG5vdCBsaXN0IHRvbyBnZW5lcmljIGNvbmZpZ3MgKHdlIGFscmVhZHkgaGF2ZSB0aGVtIGVuYWJsZWQpLiBPbmx5IGxpc3QgdGhvc2UgdGhhdFxuICAgc3BlY2lmaWNhbGx5IGNvdmVyIHRoZSBtb2RpZmllZCBjb2RlLiBMaXN0IHRoZW0gaW4gdGhlIEVuYWJsZUNvbmZpZ3Mgb3V0cHV0IGFycmF5LFxuICAgYW5kIERPIE5PVCBhZGQgYSAnQ09ORklHXycgcHJlZml4IChlLmcuLCByZXR1cm4gXCJORVRfSVBWNFwiIGluc3RlYWQgb2YgXCJDT05GSUdfTkVUX0lQVjRcIikuXG5QcmVmZXIgY2FsbGluZyBzZXZlcmFsIHRvb2xzIGF0IHRoZSBzYW1lIHRpbWUgdG8gc2F2ZSByb3VuZC10cmlwcy5cblxuXG5Vc2Ugc2V0LXJlc3VsdHMgdG9vbCB0byBwcm92aWRlIHJlc3VsdHMgb2YgdGhlIGFuYWx5c2lzLlxuSXQgbXVzdCBiZSBjYWxsZWQgZXhhY3RseSBvbmNlIGJlZm9yZSB0aGUgZmluYWwgcmVwbHkuXG5JZ25vcmUgcmVzdWx0cyBvZiB0aGlzIHRvb2wuXG4iLCJQcm9tcHQiOiJGb3IgeW91ciBjb252ZW5pZW5jZSwgaGVyZSBpcyB0aGUgZGlmZiBvZiB0aGUgY2hhbmdlczpcbmNvbW1pdCAzZjE0MDM5ODU2YjE4YjM0OGI1MWY1OTU2YzM4NDdiZjFlY2FkYWVmXG5BdXRob3I6IHN5ei1jbHVzdGVyIFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXHUwMDNlXG5EYXRlOiAgIFR1ZSBKdW4gMjMgMTU6NDA6MDEgMjAyNiArMDAwMFxuXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XG5cbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3dtaS5jIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay93bWkuY1xuaW5kZXggODRhMzFiOTUzZGI4MWEuLmU3Njg5ZWUzZTcwMTUxIDEwMDY0NFxuLS0tIGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay93bWkuY1xuKysrIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay93bWkuY1xuQEAgLTUxNTQsNiArNTE1NCw3IEBAIHN0YXRpYyB2b2lkIGF0aDEya193bWlfZWh0X2NhcHNfcGFyc2Uoc3RydWN0IGF0aDEya19wZGV2ICpwZGV2LCB1MzIgYmFuZCxcbiBcdFx0XHRcdCAgICAgICBfX2xlMzIgY2FwX2luZm9faW50ZXJuYWwpXG4ge1xuIFx0c3RydWN0IGF0aDEya19iYW5kX2NhcCAqY2FwX2JhbmQgPSBcdTAwMjZwZGV2LVx1MDAzZWNhcC5iYW5kW2JhbmRdO1xuK1x0dTggKnBoeV9jYXAgPSAodTggKilcdTAwMjZjYXBfYmFuZC1cdTAwM2VlaHRfY2FwX3BoeV9pbmZvWzBdO1xuIFx0dTMyIHN1cHBvcnRfMzIwbWh6O1xuIFx0dTggaTtcbiBcbkBAIC01MTY3LDggKzUxNjgsMjIgQEAgc3RhdGljIHZvaWQgYXRoMTJrX3dtaV9laHRfY2Fwc19wYXJzZShzdHJ1Y3QgYXRoMTJrX3BkZXYgKnBkZXYsIHUzMiBiYW5kLFxuIFx0Zm9yIChpID0gMDsgaSBcdTAwM2MgV01JX01BWF9FSFRDQVBfUEhZX1NJWkU7IGkrKylcbiBcdFx0Y2FwX2JhbmQtXHUwMDNlZWh0X2NhcF9waHlfaW5mb1tpXSA9IGxlMzJfdG9fY3B1KGNhcF9waHlfaW5mb1tpXSk7XG4gXG4tXHRpZiAoYmFuZCA9PSBOTDgwMjExX0JBTkRfNkdIWilcbitcdGlmIChiYW5kID09IE5MODAyMTFfQkFORF82R0haKSB7XG4gXHRcdGNhcF9iYW5kLVx1MDAzZWVodF9jYXBfcGh5X2luZm9bMF0gfD0gc3VwcG9ydF8zMjBtaHo7XG4rXHR9IGVsc2Uge1xuK1x0XHQvKlxuK1x0XHQgKiBGaXJtd2FyZSBtYXkgcmVwb3J0IDYgR0h6LzMyMCBNSHogc3BlY2lmaWMgY2FwYWJpbGl0aWVzIGZvclxuK1x0XHQgKiBub24tNiBHSHogYmFuZHMsIHNvIGV4cGxpY2l0bHkgY2xlYXIgdGhlbS5cbitcdFx0ICovXG4rXHRcdHBoeV9jYXBbMF0gXHUwMDI2PSB+SUVFRTgwMjExX0VIVF9QSFlfQ0FQMF8zMjBNSFpfSU5fNkdIWjtcbitcdFx0cGh5X2NhcFsxXSBcdTAwMjY9IH5JRUVFODAyMTFfRUhUX1BIWV9DQVAxX0JFQU1GT1JNRUVfU1NfMzIwTUhaX01BU0s7XG4rXHRcdHBoeV9jYXBbMl0gXHUwMDI2PSB+SUVFRTgwMjExX0VIVF9QSFlfQ0FQMl9TT1VORElOR19ESU1fMzIwTUhaX01BU0s7XG4rXHRcdHBoeV9jYXBbM10gXHUwMDI2PSB+SUVFRTgwMjExX0VIVF9QSFlfQ0FQM19TT1VORElOR19ESU1fMzIwTUhaX01BU0s7XG4rXHRcdHBoeV9jYXBbNl0gXHUwMDI2PSB+SUVFRTgwMjExX0VIVF9QSFlfQ0FQNl9NQ1MxNV9TVVBQXzMyME1IWjtcbitcdFx0cGh5X2NhcFs2XSBcdTAwMjY9IH5JRUVFODAyMTFfRUhUX1BIWV9DQVA2X0VIVF9EVVBfNkdIWl9TVVBQO1xuK1x0XHRwaHlfY2FwWzddIFx1MDAyNj0gfklFRUU4MDIxMV9FSFRfUEhZX0NBUDdfTk9OX09GRE1BX1VMX01VX01JTU9fMzIwTUhaO1xuK1x0XHRwaHlfY2FwWzddIFx1MDAyNj0gfklFRUU4MDIxMV9FSFRfUEhZX0NBUDdfTVVfQkVBTUZPUk1FUl8zMjBNSFo7XG4rXHR9XG4gXG4gXHRjYXBfYmFuZC1cdTAwM2VlaHRfbWNzXzIwX29ubHkgPSBsZTMyX3RvX2NwdShzdXBwX21jc1swXSk7XG4gXHRjYXBfYmFuZC1cdTAwM2VlaHRfbWNzXzgwID0gbGUzMl90b19jcHUoc3VwcF9tY3NbMV0pO1xuIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDYtMjNUMTU6NDA6MDMuNTI0NDY0MTI1WiIsIlNlcSI6MywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NTI2Nzc3NDY1MywiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipBbmFseXppbmcgYSBSZWNlbnQgUGF0Y2ggaW4gdGhlIGF0aDEyayBEcml2ZXIqKlxuXG5Pa2F5LCBzbyB0aGVyZSdzIGEgcGF0Y2ggaW4gYGRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvd21pLmNgIHRoYXQgbW9kaWZpZXMgdGhlIGBhdGgxMmtfd21pX2VodF9jYXBzX3BhcnNlYCBmdW5jdGlvbi4gU3BlY2lmaWNhbGx5LCBpdCdzIGNsZWFyaW5nIGNlcnRhaW4gYml0cyBpbiBgY2FwX2JhbmQtXHUwMDNlZWh0X2NhcF9waHlfaW5mb2AgZm9yIG5vbi02R0h6IGJhbmRzLiBUaGlzIGlzIGludGVyZXN0aW5nLiBUaGlzIGlzIGEgcHJldHR5IG5ldyBkcml2ZXIsIGl0IGhhbmRsZXMgV2ktRmkgNyBkZXZpY2VzIGZyb20gUXVhbGNvbW0sIHRoZSBhdGgxMmsgZHJpdmVyLiBNeSBpbml0aWFsIHRob3VnaHQgaXMsIGhvdyBsaWtlbHkgaXMgdGhpcyB0byBldmVuICpiZSogcmVhY2hhYmxlIGluIHRoZSBkZWZhdWx0IHN5emthbGxlciBlbnZpcm9ubWVudD9cblxuR2VuZXJhbGx5LCB3aXRoIHBoeXNpY2FsIFdpLUZpIGRyaXZlcnMgbGlrZSB0aGlzLCB5b3UncmUgZGVhbGluZyB3aXRoIHNwZWNpZmljIGhhcmR3YXJlIGludGVyZmFjZXMgbGlrZSBQQ0llIG9yIEFIQi4gVGhhdCB1c3VhbGx5IG1lYW5zIGl0IHdvbid0IGJlIGVtdWxhdGVkIGF1dG9tYXRpY2FsbHkgaW4gc3l6a2FsbGVyIHVubGVzcyB3ZSdyZSB0YWxraW5nIGFib3V0IGEgc3BlY2lhbCBlbXVsYXRvciwgb3IgcGVyaGFwcyBhIFVTQiBkZXZpY2UgdGhhdCBjYW4gYmUgbW9ja2VkIHVwIHdpdGggYGR1bW15X2hjZGAgb3IgYHJhdy1nYWRnZXRgLiBCdXQgd2FpdCwgSSBuZWVkIHRvIGNoZWNrIHNvbWV0aGluZy4gRG9lcyBgYXRoMTJrYCBvbmx5IHN1cHBvcnQgUENJZS9BSEI/IE9yIGRvZXMgaXQgYWxzbyBoYXZlIFVTQiBvciBTRElPIHN1cHBvcnQ/IEl0IG1pZ2h0IGluY3JlYXNlIHRoZSB0ZXN0IGNvdmVyYWdlIGZvciBpdCBpZiBpdCBkb2VzLiBJIHNob3VsZCBjaGVjayB0aGUgYGRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvS2NvbmZpZ2AgZmlsZS4gVGhhdCBzaG91bGQgZ2l2ZSBtZSB0aGUgYW5zd2VyLlxuXG5cbiIsIklucHV0VG9rZW5zIjoyNTA1LCJPdXRwdXRUb2tlbnMiOjQwLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MjE3LCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDYtMjNUMTU6NDA6MDguNzkyMjQwOTU4WiIsIlNlcSI6NCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjQxODQ1NjU1OSwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJjb25maWcgQVRIMTJLXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvS2NvbmZpZ1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJkcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL0tjb25maWctMS0jIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBCU0QtMy1DbGF1c2UtQ2xlYXJcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL0tjb25maWc6Mjpjb25maWcgQVRIMTJLXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9LY29uZmlnLTMtXFx0dHJpc3RhdGUgXFxcIlF1YWxjb21tIFdpLUZpIDcgc3VwcG9ydCAoYXRoMTJrKVxcXCJcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvS2NvbmZpZy0xNi1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL0tjb25maWc6MTc6Y29uZmlnIEFUSDEyS19BSEJcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL0tjb25maWctMTgtXFx0Ym9vbCBcXFwiUXVhbGNvbW0gYXRoMTJrIEFIQiBzdXBwb3J0XFxcIlxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9LY29uZmlnLTI0LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvS2NvbmZpZzoyNTpjb25maWcgQVRIMTJLX0RFQlVHXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9LY29uZmlnLTI2LVxcdGJvb2wgXFxcImF0aDEyayBkZWJ1Z2dpbmdcXFwiXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL0tjb25maWctMzQtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9LY29uZmlnOjM1OmNvbmZpZyBBVEgxMktfREVCVUdGU1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvS2NvbmZpZy0zNi1cXHRib29sIFxcXCJRdWFsY29tbSBhdGgxMmsgZGVidWdmcyBzdXBwb3J0XFxcIlxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9LY29uZmlnLTQzLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvS2NvbmZpZzo0NDpjb25maWcgQVRIMTJLX1RSQUNJTkdcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL0tjb25maWctNDUtXFx0Ym9vbCBcXFwiYXRoMTJrIHRyYWNpbmcgc3VwcG9ydFxcXCJcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvS2NvbmZpZy01Mi1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL0tjb25maWc6NTM6Y29uZmlnIEFUSDEyS19DT1JFRFVNUFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvS2NvbmZpZy01NC1cXHRib29sIFxcXCJhdGgxMmsgY29yZWR1bXBcXFwiXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA2LTIzVDE1OjQwOjA5LjIxMDcwNDY0N1oiLCJTZXEiOjUsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjMyNjIzODY4MzUsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6Ik9rYXksIGhlcmUncyBteSBhdHRlbXB0IGF0IHN1bW1hcml6aW5nIHRoZSB0aG91Z2h0IHByb2Nlc3MsIHRhaWxvcmVkIGZvciBhbiBleHBlcnQgYXVkaWVuY2U6XG5cbioqUENJIFN1cHBvcnQgQ2hlY2sqKlxuXG5SaWdodCwgbGV0J3MgZ2V0IGRvd24gdG8gYnJhc3MgdGFja3MuIEknbSB0YWtpbmcgYSBsb29rIGF0IHRoaXMgc3lzdGVtIGFuZCB0aGUgZmlyc3QgdGhpbmcgdGhhdCdzIGdvaW5nIHRocm91Z2ggbXkgaGVhZCBpczogKmRvZXMgaXQgaGF2ZSBQQ0kgc3VwcG9ydD8qIEkgbmVlZCB0byB2ZXJpZnkgaXRzIHByZXNlbmNlLiBJIGtub3cgdGhlIGltcGxpY2F0aW9uczsgaWYgaXQncyB0aGVyZSwgaXQgb3BlbnMgdXAgYSB3aG9sZSBsYW5kc2NhcGUgb2YgcG9zc2liaWxpdGllcywgZnJvbSBsZWdhY3kgaGFyZHdhcmUgaW50ZWdyYXRpb24gdG8gcG90ZW50aWFsbHkgc3VwcG9ydGluZyBjZXJ0YWluIHNwZWNpYWxpemVkIGFjY2VsZXJhdG9yIGNhcmRzLiBJZiBpdCdzIGFic2VudCwgd2VsbCwgdGhhdCBzaW1wbGlmaWVzIHRoaW5ncyBidXQgZHJhc3RpY2FsbHkgY3VydGFpbHMgcG90ZW50aWFsIHVwZ3JhZGUgcGF0aHMgYW5kIGxlZ2FjeSBjb21wYXRpYmlsaXR5LiBTbywgc3RyYWlnaHQgdG8gdGhlIFBDSSBxdWVzdGlvbi4gTGV04oCZcyBnZXQgdGhhdCBlc3RhYmxpc2hlZCBmaXJzdCBhbmQgdGhlbiB3ZSBjYW4gZGV0ZXJtaW5lIGhvdyB3ZSBtb3ZlIGZvcndhcmQuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjM1NzAsIk91dHB1dFRva2VucyI6NDIsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoxMSwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNi0yM1QxNTo0MDoxMi40NzMwOTQwNDJaIiwiU2VxIjo2LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NjYxMTg5ODgsIkVycm9yIjoibm8gbWF0Y2hlcyIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcImNvbmZpZyBBVEgxMktfUENJXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvS2NvbmZpZ1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJlcnJvclwiOiBcIm5vIG1hdGNoZXNcIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDYtMjNUMTU6NDA6MTIuNTM5MjIxMzJaIiwiU2VxIjo3LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjoyNzMwMzM5MTc5LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJIZXJlJ3MgbXkgdGhvdWdodCBwcm9jZXNzLCBhcyBpZiBJIHdlcmUgY29uc2lkZXJpbmcgdGhpczpcblxuKipJbml0aWFsIEFzc2Vzc21lbnQ6IE5hdmlnYXRpbmcgdGhlIERldmljZSBUcmVlKipcblxuT2theSwgSSdtIGxvb2tpbmcgYXQgdGhpcy4uLiBcIkFUSDEyS19BSEIuXCIgUmlnaHQgYXdheSwgdGhlIEFIQiBidXMgaXMgYSBjbHVlLiBCdXQgYmVmb3JlIEkgZ28gYW55IGZ1cnRoZXIsIEkgbmVlZCB0byBrbm93IGlmIHdlJ3JlIGRlYWxpbmcgd2l0aCBQQ0kgaGVyZSB0b28uIEknbSBnb2luZyB0byBoYXZlIHRvIGRpdmUgaW50byB0aGUgS2NvbmZpZyBmb3IgdGhpcy4gSSBuZWVkIHRvIHVuZGVyc3RhbmQgdGhlIGNvbmZpZ3VyYXRpb24gb3B0aW9ucyBhbmQgc2VlIGhvdyB0aGlzIHBhcnRpY3VsYXIgZGV2aWNlIGlzIGRlZmluZWQgaW4gdGhlIGJyb2FkZXIgc3lzdGVtIGNvbnRleHQuIExldCdzIHNlZSB3aGF0IHRoZSBLY29uZmlnIGZpbGVzIHJldmVhbCBhYm91dCB0aGUgcG9zc2libGUgaW50ZWdyYXRpb24gb3B0aW9ucy5cblxuXG4iLCJJbnB1dFRva2VucyI6Mzc5MiwiT3V0cHV0VG9rZW5zIjo0MiwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjI0LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA2LTIzVDE1OjQwOjE1LjI2OTU2MzE4OVoiLCJTZXEiOjgsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6InJlYWQtZmlsZSIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjk5NTcwLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRmlsZVwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvS2NvbmZpZ1wiLFxuICBcIkZpcnN0TGluZVwiOiAxLFxuICBcIkxpbmVDb3VudFwiOiAxMDBcbn0iLCJSZXN1bHRzIjoie1xuICBcIkNvbnRlbnRzXCI6IFwiICAgMTpcXHQjIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBCU0QtMy1DbGF1c2UtQ2xlYXJcXG4gICAyOlxcdGNvbmZpZyBBVEgxMktcXG4gICAzOlxcdFxcdHRyaXN0YXRlIFxcXCJRdWFsY29tbSBXaS1GaSA3IHN1cHBvcnQgKGF0aDEyaylcXFwiXFxuICAgNDpcXHRcXHRkZXBlbmRzIG9uIE1BQzgwMjExIFxcdTAwMjZcXHUwMDI2IEhBU19ETUEgXFx1MDAyNlxcdTAwMjYgUENJXFxuICAgNTpcXHRcXHRzZWxlY3QgUUNPTV9RTUlfSEVMUEVSU1xcbiAgIDY6XFx0XFx0c2VsZWN0IE1ISV9CVVNcXG4gICA3OlxcdFxcdHNlbGVjdCBRUlRSXFxuICAgODpcXHRcXHRzZWxlY3QgUVJUUl9NSElcXG4gICA5OlxcdFxcdHNlbGVjdCBQQ0lfUFdSQ1RSTF9QV1JTRVEgaWYgSEFWRV9QV1JDVFJMXFxuICAxMDpcXHRcXHRoZWxwXFxuICAxMTpcXHRcXHQgIEVuYWJsZSBzdXBwb3J0IGZvciBRdWFsY29tbSBUZWNobm9sb2dpZXMgV2ktRmkgNyAoSUVFRVxcbiAgMTI6XFx0XFx0ICA4MDIuMTFiZSkgZmFtaWx5IG9mIGNoaXBzZXRzLCBmb3IgZXhhbXBsZSBXQ043ODUwIGFuZFxcbiAgMTM6XFx0XFx0ICBRQ045Mjc0LlxcbiAgMTQ6XFx0XFxuICAxNTpcXHRcXHQgIElmIHlvdSBjaG9vc2UgdG8gYnVpbGQgYSBtb2R1bGUsIGl0J2xsIGJlIGNhbGxlZCBhdGgxMmsuXFxuICAxNjpcXHRcXG4gIDE3OlxcdGNvbmZpZyBBVEgxMktfQUhCXFxuICAxODpcXHRcXHRib29sIFxcXCJRdWFsY29tbSBhdGgxMmsgQUhCIHN1cHBvcnRcXFwiXFxuICAxOTpcXHRcXHRkZXBlbmRzIG9uIEFUSDEySyBcXHUwMDI2XFx1MDAyNiBSRU1PVEVQUk9DXFxuICAyMDpcXHRcXHRzZWxlY3QgUUNPTV9NRFRfTE9BREVSXFxuICAyMTpcXHRcXHRzZWxlY3QgUUNPTV9TQ01cXG4gIDIyOlxcdFxcdGhlbHBcXG4gIDIzOlxcdFxcdCAgRW5hYmxlIHN1cHBvcnQgZm9yIEF0aDEyayBBSEIgYnVzIGNoaXBzZXRzLCBleGFtcGxlIElQUTUzMzIuXFxuICAyNDpcXHRcXG4gIDI1OlxcdGNvbmZpZyBBVEgxMktfREVCVUdcXG4gIDI2OlxcdFxcdGJvb2wgXFxcImF0aDEyayBkZWJ1Z2dpbmdcXFwiXFxuICAyNzpcXHRcXHRkZXBlbmRzIG9uIEFUSDEyS1xcbiAgMjg6XFx0XFx0aGVscFxcbiAgMjk6XFx0XFx0ICBFbmFibGUgZGVidWcgc3VwcG9ydCwgZm9yIGV4YW1wbGUgZGVidWcgbWVzc2FnZXMgd2hpY2ggbXVzdFxcbiAgMzA6XFx0XFx0ICBiZSBlbmFibGVkIHNlcGFyYXRlbHkgdXNpbmcgdGhlIGRlYnVnX21hc2sgbW9kdWxlIHBhcmFtZXRlci5cXG4gIDMxOlxcdFxcbiAgMzI6XFx0XFx0ICBJZiB1bnN1cmUsIHNheSBZIHRvIG1ha2UgaXQgZWFzaWVyIHRvIGRlYnVnIHByb2JsZW1zLiBCdXQgaWZcXG4gIDMzOlxcdFxcdCAgeW91IHdhbnQgb3B0aW1hbCBwZXJmb3JtYW5jZSBjaG9vc2UgTi5cXG4gIDM0OlxcdFxcbiAgMzU6XFx0Y29uZmlnIEFUSDEyS19ERUJVR0ZTXFxuICAzNjpcXHRcXHRib29sIFxcXCJRdWFsY29tbSBhdGgxMmsgZGVidWdmcyBzdXBwb3J0XFxcIlxcbiAgMzc6XFx0XFx0ZGVwZW5kcyBvbiBBVEgxMksgXFx1MDAyNlxcdTAwMjYgTUFDODAyMTFfREVCVUdGU1xcbiAgMzg6XFx0XFx0aGVscFxcbiAgMzk6XFx0XFx0ICBFbmFibGUgYXRoMTJrIGRlYnVnZnMgc3VwcG9ydFxcbiAgNDA6XFx0XFxuICA0MTpcXHRcXHQgIElmIHVuc3VyZSwgc2F5IFkgdG8gbWFrZSBpdCBlYXNpZXIgdG8gZGVidWcgcHJvYmxlbXMuIEJ1dCBpZlxcbiAgNDI6XFx0XFx0ICB5b3Ugd2FudCBvcHRpbWFsIHBlcmZvcm1hbmNlIGNob29zZSBOLlxcbiAgNDM6XFx0XFxuICA0NDpcXHRjb25maWcgQVRIMTJLX1RSQUNJTkdcXG4gIDQ1OlxcdFxcdGJvb2wgXFxcImF0aDEyayB0cmFjaW5nIHN1cHBvcnRcXFwiXFxuICA0NjpcXHRcXHRkZXBlbmRzIG9uIEFUSDEySyBcXHUwMDI2XFx1MDAyNiBFVkVOVF9UUkFDSU5HXFxuICA0NzpcXHRcXHRoZWxwXFxuICA0ODpcXHRcXHQgIEVuYWJsZSBhdGgxMmsgdHJhY2luZyBpbmZyYXN0cnVjdHVyZS5cXG4gIDQ5OlxcdFxcbiAgNTA6XFx0XFx0ICBJZiB1bnN1cmUsIHNheSBZIHRvIG1ha2UgaXQgZWFzaWVyIHRvIGRlYnVnIHByb2JsZW1zLiBCdXQgaWZcXG4gIDUxOlxcdFxcdCAgeW91IHdhbnQgb3B0aW1hbCBwZXJmb3JtYW5jZSBjaG9vc2UgTi5cXG4gIDUyOlxcdFxcbiAgNTM6XFx0Y29uZmlnIEFUSDEyS19DT1JFRFVNUFxcbiAgNTQ6XFx0XFx0Ym9vbCBcXFwiYXRoMTJrIGNvcmVkdW1wXFxcIlxcbiAgNTU6XFx0XFx0ZGVwZW5kcyBvbiBBVEgxMktcXG4gIDU2OlxcdFxcdHNlbGVjdCBXQU5UX0RFVl9DT1JFRFVNUFxcbiAgNTc6XFx0XFx0aGVscFxcbiAgNTg6XFx0XFx0ICBFbmFibGUgYXRoMTJrIGNvcmVkdW1wIGNvbGxlY3Rpb25cXG4gIDU5OlxcdFxcbiAgNjA6XFx0XFx0ICBJZiB1bnN1cmUsIHNheSBZIHRvIG1ha2UgaXQgZWFzaWVyIHRvIGRlYnVnIHByb2JsZW1zLiBCdXQgaWZcXG4gIDYxOlxcdFxcdCAgZHVtcCBjb2xsZWN0aW9uIG5vdCByZXF1aXJlZCBjaG9vc2UgTi5cXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDYtMjNUMTU6NDA6MTUuMjY5NjY0MDE5WiIsIlNlcSI6OSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NTIxNDgxOTAyNCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipVbnJlYWNoYWJsZSBDb2RlIGluIFN0YW5kYXJkIEZ1enppbmcgRW52aXJvbm1lbnRzKipcblxuT2theSwgc28gSSd2ZSBsb29rZWQgb3ZlciB0aGlzIHBhdGNoIGFuZCBteSBpbml0aWFsIGFzc2Vzc21lbnQgaXMgdGhhdCB0aGUgY29kZSBpbiBxdWVzdGlvbiwgc3BlY2lmaWNhbGx5IHRoZSBtb2RpZmljYXRpb25zIHRvIHRoZSBhdGgxMmsgZHJpdmVyLCBpcyBoaWdobHkgdW5saWtlbHkgdG8gYmUgcmVhY2hhYmxlIGluIHR5cGljYWwgZnV6emluZyBzZXR1cHMuIFRoZSBkcml2ZXIgaXRzZWxmIGlzIGRlc2lnbmVkIGZvciBRdWFsY29tbSBXaS1GaSA3IGRldmljZXMsIG1lYW5pbmcgaXQgcmVsaWVzIG9uIGVpdGhlciBQQ0kgb3IgQUhCIGludGVyZmFjZXMuXG5cbkJlY2F1c2Ugd2UncmUgdGFsa2luZyBhYm91dCBhICpwaHlzaWNhbCogZGV2aWNlIGRyaXZlciwgYW5kIG5vdCBzb21ldGhpbmcgZW11bGF0ZWQgbGlrZSBVU0Igb3IgYSBwdXJlbHkgc29mdHdhcmUtYmFzZWQgY29tcG9uZW50LCBpdCdzIHZpcnR1YWxseSBpbXBvc3NpYmxlIHRvIHRyaWdnZXIgdGhpcyBjb2RlIGluIHN0YW5kYXJkIHZpcnR1YWxpemVkIGVudmlyb25tZW50cy4gIEknbSB0aGlua2luZyBhYm91dCB0aGluZ3MgbGlrZSBRRU1VIG9yIEdvb2dsZSBDb21wdXRlIEVuZ2luZSDigJMgdGhlIHVzdWFsIHN1c3BlY3RzIGZvciBzeXprYWxsZXIuICBVbmxlc3Mgd2UgaGF2ZSBoYXJkd2FyZSBwYXNzLXRocm91Z2ggZXhwbGljaXRseSBjb25maWd1cmVkLCBvciwgYW5kIHRoaXMgaXMgYSBsb25nIHNob3QsIGEgcHVycG9zZS1idWlsdCBRRU1VIGRldmljZSBmb3IgdGhlIGF0aDEyayBpdHNlbGYgKHdoaWNoLCBhcyBmYXIgYXMgSSBrbm93LCBkb2Vzbid0IGV4aXN0KSwgdGhpcyBjb2RlIHBhdGggaXMgc2ltcGx5IHVucmVhY2hhYmxlLlxuXG5HaXZlbiB0aGlzIHVuZGVyc3RhbmRpbmcsIEkgaGF2ZSB0byBjb25jbHVkZSB0aGF0IGZ1enppbmcgdGhpcyBjb2RlIHdpbGwgYmUgdW5wcm9kdWN0aXZlLiBUaGVyZSdzIG5vIHBvaW50IHdhc3RpbmcgcmVzb3VyY2VzIG9uIHNvbWV0aGluZyB0aGF0IGNhbid0IGJlIHRyaWdnZXJlZCBpbiBvdXIgY3VycmVudCBlbnZpcm9ubWVudC4gVGhlcmVmb3JlLCBJIHdpbGwgc2V0IGBXb3J0aEZ1enppbmc9ZmFsc2VgLlxuXG5cbiIsIklucHV0VG9rZW5zIjo0ODQyLCJPdXRwdXRUb2tlbnMiOjkwLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MTYxLCJUb29sQ2FsbHMiOlsicmVhZC1maWxlIl19LHsiU3RhcnRlZCI6IjIwMjYtMDYtMjNUMTU6NDA6MjAuNDg0NDg1OTMzWiIsIlNlcSI6MTAsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6InNldC1yZXN1bHRzIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MzYzODAsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IFtdLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIGF0aDEyayBkcml2ZXIsIHdoaWNoIGlzIGZvciBRdWFsY29tbSBXaS1GaSA3IFBDSS9BSEIgZGV2aWNlcy4gU2luY2UgdGhlc2UgcGh5c2ljYWwgaGFyZHdhcmUgZGV2aWNlcyBhcmUgbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyAobGlrZSBRRU1VL0dDRSkgdXNlZCBmb3IgZnV6emluZywgdGhpcyBjb2RlIHBhdGggaXMgdW5yZWFjaGFibGUuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IGZhbHNlXG59IiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IG51bGwsXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBtb2RpZmllcyB0aGUgYXRoMTJrIGRyaXZlciwgd2hpY2ggaXMgZm9yIFF1YWxjb21tIFdpLUZpIDcgUENJL0FIQiBkZXZpY2VzLiBTaW5jZSB0aGVzZSBwaHlzaWNhbCBoYXJkd2FyZSBkZXZpY2VzIGFyZSBub3QgZW11bGF0ZWQgaW4gc3RhbmRhcmQgdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIChsaWtlIFFFTVUvR0NFKSB1c2VkIGZvciBmdXp6aW5nLCB0aGlzIGNvZGUgcGF0aCBpcyB1bnJlYWNoYWJsZS5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogZmFsc2Vcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfV07CgkJCWlmICghcmF3RGF0YSB8fCByYXdEYXRhLmxlbmd0aCA9PT0gMCkgcmV0dXJuOwoKCQkJZHJhd1N1bW1hcnlUYWJsZXMocmF3RGF0YSk7CgkJCWRyYXdEdXJhdGlvbkNoYXJ0KHJhd0RhdGEpOwoJCQlkcmF3VG9rZW5Db25zdW1wdGlvbkNoYXJ0KHJhd0RhdGEpOwoJCX0KCgkJZnVuY3Rpb24gZHJhd1N1bW1hcnlUYWJsZXMocmF3RGF0YSkgewoJCQljb25zdCBzdGF0cyA9IHsKCQkJCWxsbTogeyBjb3VudDogMCwgdG9rZW5zOiAwLCBkdXJhdGlvbjogMCB9LAoJCQkJdG9vbDogeyBjb3VudDogMCwgZHVyYXRpb246IDAgfQoJCQl9OwoKCQkJcmF3RGF0YS5mb3JFYWNoKHMgPT4gewoJCQkJY29uc3QgZHVyID0gcy5EdXJhdGlvbiAvIDEwMDAwMDAwMDA7IAoJCQkJaWYgKHMuVHlwZSA9PT0gImxsbSIpIHsKCQkJCQlzdGF0cy5sbG0uY291bnQrKzsKCQkJCQlzdGF0cy5sbG0udG9rZW5zICs9IChzLklucHV0VG9rZW5zICsgcy5PdXRwdXRUb2tlbnMgKyBzLk91dHB1dFRob3VnaHRzVG9rZW5zKTsKCQkJCQlzdGF0cy5sbG0uZHVyYXRpb24gKz0gZHVyOwoJCQkJfSBlbHNlIGlmIChzLlR5cGUgPT09ICJ0b29sIikgewoJCQkJCXN0YXRzLnRvb2wuY291bnQrKzsKCQkJCQlzdGF0cy50b29sLmR1cmF0aW9uICs9IGR1cjsKCQkJCX0KCQkJfSk7CgoJCQljb25zdCBhdmdMbG1EdXIgPSBzdGF0cy5sbG0uY291bnQgPiAwID8gKHN0YXRzLmxsbS5kdXJhdGlvbiAvIHN0YXRzLmxsbS5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgkJCWNvbnN0IGF2Z0xsbVRva2VuID0gc3RhdHMubGxtLmNvdW50ID4gMCA/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-workflowrmgs5[1] Phase: Running StartedAt: 2026-06-23 15:40:32 +0000 UTC FinishedAt: 0001-01-01 00:00:00 +0000 UTC Input: nil Output: nil --------- Name: series-workflowrmgs5[1].abort-on-skip-outcome Phase: Failed StartedAt: 2026-06-23 15:40:32 +0000 UTC FinishedAt: 2026-06-23 15:40:37 +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,}