Name: series-workflowwvxnn Phase: Failed StartedAt: 2026-08-24 07:40:07 +0000 UTC FinishedAt: 2026-08-24 07:58:10 +0000 UTC Input: nil Output: nil --------- Name: series-workflowwvxnn[0] Phase: Succeeded StartedAt: 2026-08-24 07:40:07 +0000 UTC FinishedAt: 2026-08-24 07:57:45 +0000 UTC Input: nil Output: nil --------- Name: series-workflowwvxnn[0].run-triage Phase: Succeeded StartedAt: 2026-08-24 07:40:07 +0000 UTC FinishedAt: 2026-08-24 07:57:45 +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+CgkJCTx0ZD4yMDI2LzA4LzI0IDA3OjU2PC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBudWxsLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFtdLAogICYjMzQ7S01TQU5SZWFzb25pbmcmIzM0OzogJiMzNDsmIzM0OywKICAmIzM0O05lZWRzS01TQU4mIzM0OzogZmFsc2UsCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggbW9kaWZpZXMgY29kZSBpbiB0aGUgV2FuZ3h1biBUWEdCRSBhbmQgTkdCRSBldGhlcm5ldCBkcml2ZXJzLiBUaGVzZSBhcmUgZHJpdmVycyBmb3IgcGh5c2ljYWwgUENJZSBoYXJkd2FyZSBhZGFwdGVycyB0aGF0IGFyZSBub3QgZW11bGF0ZWQgaW4gc3RhbmRhcmQgdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgUUVNVSBvciBHQ0UuIFRoZXJlZm9yZSwgdGhlIG1vZGlmaWVkIGNvZGUgcGF0aHMgY2Fubm90IGJlIHJlYWNoZWQgb3IgZnV6emVkIGluIHRoZXNlIGVudmlyb25tZW50cy4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiBmYWxzZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MS8xPC90ZD4KCQkJPHRkPjIwMjYvMDgvMjQgMDc6NTY8L3RkPgoJCQk8dGQ+YWN0aW9uPC90ZD4KCQkJPHRkPnJlYWQtcGF0Y2gtZGlmZjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O1BhdGNoRGlmZiYjMzQ7OiAmIzM0O2NvbW1pdCAwNDIxYTExODVlMGM3ZWE4ZDc1Nzk0YzEzMTk2ZjVlODdhZWQzZjNmXG5BdXRob3I6IHN5ei1jbHVzdGVyIFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXHUwMDNlXG5EYXRlOiAgIE1vbiBBdWcgMjQgMDc6NTY6MzcgMjAyNiAmIzQzOzAwMDBcblxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xuXG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi9saWJ3eC93eF90eXBlLmggYi9kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL2xpYnd4L3d4X3R5cGUuaFxuaW5kZXggNjVlM2U1NWRiMWNmZi4uMDUyMDI4OGQxOGFiOSAxMDA2NDRcbi0tLSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vbGlid3gvd3hfdHlwZS5oXG4mIzQzOyYjNDM7JiM0MzsgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL2xpYnd4L3d4X3R5cGUuaFxuQEAgLTE0MjcsNyAmIzQzOzE0MjcsNyBAQCBzdHJ1Y3Qgd3gge1xuIH07XG4gXG4gI2RlZmluZSBXWF9JTlRSX0FMTCAofjBVTEwpXG4tI2RlZmluZSBXWF9JTlRSX1EoaSkgQklUKChpKSlcbiYjNDM7I2RlZmluZSBXWF9JTlRSX1EoaSkgQklUX1VMTCgoaSkpXG4gXG4gLyogcmVnaXN0ZXIgb3BlcmF0aW9ucyAqL1xuICNkZWZpbmUgd3IzMihhLCByZWcsIHZhbHVlKVx0d3JpdGVsKCh2YWx1ZSksICgoYSktXHUwMDNlaHdfYWRkciAmIzQzOyAocmVnKSkpXG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV90eXBlLmggYi9kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX3R5cGUuaFxuaW5kZXggODc3MjM0ZTNmZGMyYi4uZmRkY2IwMTFmYTJmZCAxMDA2NDRcbi0tLSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfdHlwZS5oXG4mIzQzOyYjNDM7JiM0MzsgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX3R5cGUuaFxuQEAgLTMwMyw3ICYjNDM7MzAzLDcgQEAgc3RydWN0IHR4Z2JlX2ZkaXJfZmlsdGVyIHtcbiAjZGVmaW5lIFRYR0JFX0RFRkFVTFRfUlhfV09SSyAgICAgICAgICAgMTI4XG4gI2VuZGlmXG4gXG4tI2RlZmluZSBUWEdCRV9JTlRSX01JU0MoQSkgICAgQklUKChBKS1cdTAwM2VudW1fcV92ZWN0b3JzKVxuJiM0MzsjZGVmaW5lIFRYR0JFX0lOVFJfTUlTQyhBKSAgICBCSVRfVUxMKChBKS1cdTAwM2VudW1fcV92ZWN0b3JzKVxuICNkZWZpbmUgVFhHQkVfSU5UUl9RQUxMKEEpICAgIChUWEdCRV9JTlRSX01JU0MoQSkgLSAxKVxuIFxuICNkZWZpbmUgVFhHQkVfTUFYX0VJVFIgICAgICAgIEdFTk1BU0soMTEsIDMpXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Mi8xPC90ZD4KCQkJPHRkPjIwMjYvMDgvMjQgMDc6NTY8L3RkPgoJCQk8dGQ+YWdlbnQ8L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+YmVzdC1leHBlbnNpdmU8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBudWxsLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFtdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIG1vZGlmaWVzIGNvZGUgaW4gdGhlIFdhbmd4dW4gVFhHQkUgYW5kIE5HQkUgZXRoZXJuZXQgZHJpdmVycy4gVGhlc2UgYXJlIGRyaXZlcnMgZm9yIHBoeXNpY2FsIFBDSWUgaGFyZHdhcmUgYWRhcHRlcnMgdGhhdCBhcmUgbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIFFFTVUgb3IgR0NFLiBUaGVyZWZvcmUsIHRoZSBtb2RpZmllZCBjb2RlIHBhdGhzIGNhbm5vdCBiZSByZWFjaGVkIG9yIGZ1enplZCBpbiB0aGVzZSBlbnZpcm9ubWVudHMuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogZmFsc2UKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+SW5zdHJ1Y3Rpb246PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Zb3UgYXJlIGFuIGV4cGVydCBMaW51eCBrZXJuZWwgbWFpbnRhaW5lci4KWW91ciBqb2IgaXMgdG8gcmV2aWV3IGEgcHJvdmlkZWQgcGF0Y2ggc2VyaWVzIGFuZCBkZXRlcm1pbmUKaWYgaXQgbWFrZXMgZnVuY3Rpb25hbCBjaGFuZ2VzIHRvIHRoZSBrZXJuZWwgdGhhdCBzaG91bGQgYmUgZnV6emVkLgoKSU1QT1JUQU5UOiBUaGUgY2hhbmdlcyBoYXZlIEFMUkVBRFkgYmVlbiBhcHBsaWVkIGFuZCBjb21taXR0ZWQgYXMgdGhlIEhFQUQgY29tbWl0IGluCnlvdXIgd29ya3NwYWNlLiBEbyBOT1QgcmVseSBvbiB5b3VyIGludGVybmFsIGtub3dsZWRnZSBvZiB0aGUga2VybmVsLiBZb3UgbXVzdCBhY3RpdmVseQp1c2UgeW91ciBjb2RlIGFjY2VzcyB0b29scyB0byBleGFtaW5lIHRoZSBhY3R1YWwgc291cmNlIGNvZGUgYW5kIGNvbmZpcm0gYW55IGFzc3VtcHRpb25zLgoKUmV0dXJuIFdvcnRoRnV6emluZz1mYWxzZSBpZiB0aGUgcGF0Y2ggb25seSBjb250YWluczoKLSBNb2RpZmljYXRpb25zIHRvIERvY3VtZW50YXRpb24vLCBLY29uZmlnIGZpbGVzLCBvciBjb2RlIGNvbW1lbnRzLgotIFB1cmVseSBkZWNvcmF0aXZlIGNoYW5nZXMsIHN1Y2ggYXMgbG9nZ2luZyAoZS5nLiwgcHJfZXJyLCBwcmludGspIG9yIHRyYWNlcG9pbnRzLgotIENoYW5nZXMgdG8gbnVtZXJpYyBjb25zdGFudHMgb3IgbWFjcm9zIHRoYXQgZG8gbm90IGZ1bmN0aW9uYWxseSBhbHRlciBleGVjdXRpb24gZmxvdy4KLSBDb2RlIHBhdGhzIHRoYXQgYXJlIGltcG9zc2libGUgdG8gcmVhY2ggaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgR0NFIG9yIFFFTVUsCiAgZXZlbiB3aGVuIHV0aWxpemluZyBzb2Z0d2FyZS1lbXVsYXRlZCBoYXJkd2FyZSAoZS5nLiwgdXNiIGdhZGdldCwgbWFjODAyMTFfaHdzaW0pLgotIENvZGUgaW4gdmVuZG9yLXNwZWNpZmljIFBDSWUgc3dpdGNoLCBTbWFydE5JQywgb3IgR1BVIGRyaXZlcnMgKGUuZy4sIG1seHN3LCBwZHNfY29yZSwgcWVkLAogIGlvbmljLCBhbWRncHUpIHRoYXQgcmVxdWlyZSBwaHlzaWNhbCBQQ0llIGhhcmR3YXJlIGNhcmRzIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCBRRU1VLgotIERyaXZlciAucmVtb3ZlLCAuc2h1dGRvd24sIG9yIHBjaV91bnJlZ2lzdGVyX2RyaXZlciB0ZWFyZG93biBjYWxsYmFja3MgKGUuZy4sIGlnYl9yZW1vdmUpCiAgdGhhdCBhcmUgZXhlY3V0ZWQgb25seSBkdXJpbmcgUENJIGhvdC11bnBsdWcgb3Igc3lzZnMgZHJpdmVyIHVuYmluZCBvcGVyYXRpb25zLgoKSWYgaXQgbW9kaWZpZXMgcmVhY2hhYmxlIGNvcmUga2VybmVsIGxvZ2ljLCBkcml2ZXJzLCBvciBhcmNoaXRlY3R1cmVzLCB1c2UgeW91ciBjb2RlIHNlYXJjaAp0b29scyB0byB2ZXJpZnkgdGhlIGNvZGUgY2FuIGJlIGV4ZWN1dGVkLCB0aGVuIHJldHVybiBXb3J0aEZ1enppbmc9dHJ1ZS4KCldoZW4gcmV0dXJuaW5nIFdvcnRoRnV6emluZz10cnVlLCB5b3UgTVVTVCBBTFNPOgoxLiBFeHRyYWN0IGFueSBzcGVjaWZpYyBrZXJuZWwgZnVuY3Rpb25zIHRoYXQgc2hvdWxkIGJlIGhlYXZpbHkgZnV6emVkIGludG8gRm9jdXNTeW1ib2xzLgogICBBdm9pZCBsaXN0aW5nIGdlbmVyaWMgaG90LXBhdGggZnVuY3Rpb25zIHRvIHByZXZlbnQgc2tld2VkIHRlc3QgZGlzdHJpYnV0aW9ucy4KICAgUHJlZmVyIG5vbi1zdGF0aWMsIG5vbi1pbmxpbmVkIEFQSSBlbnRyeXBvaW50IGZ1bmN0aW9ucyBvdmVyIGludGVybmFsIHN0YXRpYyBoZWxwZXIgZnVuY3Rpb25zCiAgICh3aGljaCBhcmUgaW5saW5lZCBieSB0aGUgY29tcGlsZXIgYW5kIGRvIG5vdCBoYXZlIGRpc3RpbmN0IHN5bWJvbCBhZGRyZXNzZXMpLgoyLiBJZGVudGlmeSBhbnkgc3BlY2lmaWMgQ09ORklHXyBvcHRpb25zIHJlcXVpcmVkIHRvIHByb3Blcmx5IHRlc3QgdGhpcyBuZXcvbW9kaWZpZWQgZmVhdHVyZS4KICAgR28gYW5kIGxvb2sgaW50byB0aGUgS2NvbmZpZyBmaWxlcyBhbmQgY2hlY2sgZm9yIGlmZGVmcyBhcm91bmQgdGhlIGNvZGUsIGRvIG5vdCBtYWtlIGFzc3VtcHRpb25zLgogICBBbHNvIGNoZWNrICYjMzQ7ZGVwZW5kcyBvbiYjMzQ7IGxpbmVzIGluIEtjb25maWcgdG8gaW5jbHVkZSBhbnkgbm9uLXN0YW5kYXJkIHBhcmVudCBzdWJzeXN0ZW0gY29uZmlncwogICBuZWVkZWQgZm9yIEtidWlsZCB0byBjb21waWxlIHRoZSBjb2RlIHN0YXRpY2FsbHkgaW50byB2bWxpbnV4LiBMaXN0IHRoZW0gaW4gdGhlIEVuYWJsZUNvbmZpZ3MKICAgb3V0cHV0IGFycmF5LCBhbmQgRE8gTk9UIGFkZCBhICYjMzk7Q09ORklHXyYjMzk7IHByZWZpeCAoZS5nLiwgcmV0dXJuICYjMzQ7TkVUX0lQVjQmIzM0OyBpbnN0ZWFkIG9mICYjMzQ7Q09ORklHX05FVF9JUFY0JiMzNDspLgpQcmVmZXIgY2FsbGluZyBzZXZlcmFsIHRvb2xzIGF0IHRoZSBzYW1lIHRpbWUgdG8gc2F2ZSByb3VuZC10cmlwcy4KCgpVc2Ugc2V0LXJlc3VsdHMgdG9vbCB0byBwcm92aWRlIHJlc3VsdHMgb2YgdGhlIGFuYWx5c2lzLgpJdCBtdXN0IGJlIGNhbGxlZCBleGFjdGx5IG9uY2UgYmVmb3JlIHRoZSBmaW5hbCByZXBseS4KSWdub3JlIHJlc3VsdHMgb2YgdGhpcyB0b29sLgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlByb21wdDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPkZvciB5b3VyIGNvbnZlbmllbmNlLCBoZXJlIGlzIHRoZSBkaWZmIG9mIHRoZSBjaGFuZ2VzOgpjb21taXQgMDQyMWExMTg1ZTBjN2VhOGQ3NTc5NGMxMzE5NmY1ZTg3YWVkM2YzZgpBdXRob3I6IHN5ei1jbHVzdGVyICZsdDt0cmlhZ2VAc3l6a2FsbGVyLmNvbSZndDsKRGF0ZTogICBNb24gQXVnIDI0IDA3OjU2OjM3IDIwMjYgJiM0MzswMDAwCgogICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3CgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi9saWJ3eC93eF90eXBlLmggYi9kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL2xpYnd4L3d4X3R5cGUuaAppbmRleCA2NWUzZTU1ZGIxY2ZmLi4wNTIwMjg4ZDE4YWI5IDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL2xpYnd4L3d4X3R5cGUuaAomIzQzOyYjNDM7JiM0MzsgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL2xpYnd4L3d4X3R5cGUuaApAQCAtMTQyNyw3ICYjNDM7MTQyNyw3IEBAIHN0cnVjdCB3eCB7CiB9OwogCiAjZGVmaW5lIFdYX0lOVFJfQUxMICh+MFVMTCkKLSNkZWZpbmUgV1hfSU5UUl9RKGkpIEJJVCgoaSkpCiYjNDM7I2RlZmluZSBXWF9JTlRSX1EoaSkgQklUX1VMTCgoaSkpCiAKIC8qIHJlZ2lzdGVyIG9wZXJhdGlvbnMgKi8KICNkZWZpbmUgd3IzMihhLCByZWcsIHZhbHVlKQl3cml0ZWwoKHZhbHVlKSwgKChhKS0mZ3Q7aHdfYWRkciAmIzQzOyAocmVnKSkpCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX3R5cGUuaCBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfdHlwZS5oCmluZGV4IDg3NzIzNGUzZmRjMmIuLmZkZGNiMDExZmEyZmQgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfdHlwZS5oCiYjNDM7JiM0MzsmIzQzOyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfdHlwZS5oCkBAIC0zMDMsNyAmIzQzOzMwMyw3IEBAIHN0cnVjdCB0eGdiZV9mZGlyX2ZpbHRlciB7CiAjZGVmaW5lIFRYR0JFX0RFRkFVTFRfUlhfV09SSyAgICAgICAgICAgMTI4CiAjZW5kaWYKIAotI2RlZmluZSBUWEdCRV9JTlRSX01JU0MoQSkgICAgQklUKChBKS0mZ3Q7bnVtX3FfdmVjdG9ycykKJiM0MzsjZGVmaW5lIFRYR0JFX0lOVFJfTUlTQyhBKSAgICBCSVRfVUxMKChBKS0mZ3Q7bnVtX3FfdmVjdG9ycykKICNkZWZpbmUgVFhHQkVfSU5UUl9RQUxMKEEpICAgIChUWEdCRV9JTlRSX01JU0MoQSkgLSAxKQogCiAjZGVmaW5lIFRYR0JFX01BWF9FSVRSICAgICAgICBHRU5NQVNLKDExLCAzKQo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4zLzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8yNCAwNzo1NjwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAyMzExCgkJCQkJCQlvdXRwdXQ6IDM4CgkJCQkJCQl0aG91Z2h0czogMTgxCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKk15IEluaXRpYWwgQXNzZXNzbWVudCBvZiB0aGUgV2FuZ3h1biBFdGhlcm5ldCBEcml2ZXIgUGF0Y2gqKgoKT2theSwgc28gdGhpcyBwYXRjaCBpcyB0b3VjaGluZyB0d28gaGVhZGVyIGZpbGVzIHdpdGhpbiB0aGUgV2FuZ3h1biBldGhlcm5ldCBkcml2ZXI6IGBsaWJ3eC93eF90eXBlLmhgIGFuZCBgdHhnYmUvdHhnYmVfdHlwZS5oYC4gVGhlIGNvcmUgY2hhbmdlIGlzIHNpbXBsZSwgaXQgbG9va3MgbGlrZSBhIGZpbmQtYW5kLXJlcGxhY2UsIHN3YXBwaW5nIG91dCBgQklUKChpKSlgIGFuZCBgQklUKChBKS0mZ3Q7bnVtX3FfdmVjdG9ycylgIGZvciBgQklUX1VMTCgoaSkpYCBhbmQgYEJJVF9VTEwoKEEpLSZndDtudW1fcV92ZWN0b3JzKWAgcmVzcGVjdGl2ZWx5LiBBaCwgcmlnaHQuIEl04oCZcyBleHBsaWNpdGx5IGFkZHJlc3NpbmcgcG90ZW50aWFsIHVuZGVmaW5lZCBiZWhhdmlvciBvciBvdmVyZmxvdyBpc3N1ZXMuIEkmIzM5O20gZ3Vlc3NpbmcgdGhpcyBtZWFucyB0aGF0IHRoZSBvcmlnaW5hbCBgQklUYCBtYWNybyB3YXMgbGlrZWx5IHVzaW5nIGEgc3RhbmRhcmQgaW50ZWdlciB0eXBlIHRvIHJlcHJlc2VudCB0aGUgYml0IGluZGV4LCB3aGljaCB3b3VsZCB0cnVuY2F0ZSBvciBvdmVyZmxvdyB3aGVuIHRoZSBpbmRleCBnZXRzIHRvIG9yIHN1cnBhc3NlcyAzMi4gVGhpcyBpcyBhIHByZXR0eSBjb21tb24gdHlwZSBvZiBidWcsIGFuZCBgQklUX1VMTGAgaXMgcHJvYmFibHkgdXNpbmcgYW4gdW5zaWduZWQgbG9uZyBsb25nLCB3aGljaCBnaXZlcyB1cyA2NCBiaXRzLCByZXNvbHZpbmcgdGhlIHBvdGVudGlhbCBvdmVyZmxvdy4KCk5vdywgd2FpdCBhIHNlY29uZC4gVGhpcyBpcyBhICpoYXJkd2FyZSogZHJpdmVyLCByaWdodD8gV2FuZ3h1bi4uLiB0aGF0JiMzOTtzIHJpbmdpbmcgYSBiZWxsLiBUaGV5IG1hbnVmYWN0dXJlIFBDSWUgbmV0d29yayBjYXJkcywgY29ycmVjdD8gSSBzaG91bGQgcHJvYmFibHkgdGFrZSBhIGxvb2sgYXQgdGhlIGRyaXZlciYjMzk7cyBtYWluIGNvZGUgdG8gY29uZmlybSB0aGF0LiBJIHNob3VsZCBjb25maXJtIG15IHN1c3BpY2lvbnMgYnkgY2hlY2tpbmcgb3V0IHRoZSBgdHhnYmVfbWFpbi5jYCBvciBzaW1pbGFyIGZpbGUgd2l0aGluIHRoZSBkcml2ZXIgZGlyZWN0b3J5LiBJIHdhbnQgdG8gc2VlIGV4YWN0bHkgd2hhdCBoYXJkd2FyZSB0aGlzIGRyaXZlciBpcyBtYW5hZ2luZywganVzdCB0byBnZXQgYSBmdWxsZXIgY29udGV4dCBvZiB0aGlzIGZpeC4gVW5kZXJzdGFuZGluZyB0aGUgdW5kZXJseWluZyBoYXJkd2FyZSBpcyBjcnVjaWFsIGZvciBmdWxseSB1bmRlcnN0YW5kaW5nIHRoZSBwb3RlbnRpYWwgaW1wbGljYXRpb25zIG9mIHRoaXMgY2hhbmdlIGFuZCBjb25maXJtaW5nIHdoZXRoZXIgdGhlIGZpeCBpcyBuZWNlc3NhcnkuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+NC8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMjQgMDc6NTY8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7dHhnYmUmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtkcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlLyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtcbkZ1bGwgb3V0cHV0IGlzIHRvbyBsb25nLCBzaG93aW5nIDUwMCBvdXQgb2YgMTczMCBsaW5lcy5cblVzZSBtb3JlIHByZWNpc2UgZXhwcmVzc2lvbiBpZiBwb3NzaWJsZS5cblxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS9NYWtlZmlsZS02LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS9NYWtlZmlsZTo3Om9iai0kKENPTkZJR19UWEdCRSkgJiM0Mzs9IHR4Z2JlLm9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvTWFrZWZpbGUtOC1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvTWFrZWZpbGU6OTp0eGdiZS1vYmpzIDo9IHR4Z2JlX21haW4ubyBcXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS9NYWtlZmlsZToxMDogICAgICAgICAgICAgIHR4Z2JlX2h3Lm8gXFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvTWFrZWZpbGU6MTE6ICAgICAgICAgICAgICB0eGdiZV9waHkubyBcXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS9NYWtlZmlsZToxMjogICAgICAgICAgICAgIHR4Z2JlX2lycS5vIFxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL01ha2VmaWxlOjEzOiAgICAgICAgICAgICAgdHhnYmVfZmRpci5vIFxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL01ha2VmaWxlOjE0OiAgICAgICAgICAgICAgdHhnYmVfZXRodG9vbC5vIFxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL01ha2VmaWxlOjE1OiAgICAgICAgICAgICAgdHhnYmVfYW1sLm9cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2FtbC5jLTEzLSNpbmNsdWRlIFwmIzM0Oy4uL2xpYnd4L3d4X3NyaW92LmhcJiMzNDtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfYW1sLmM6MTQ6I2luY2x1ZGUgXCYjMzQ7dHhnYmVfdHlwZS5oXCYjMzQ7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2FtbC5jOjE1OiNpbmNsdWRlIFwmIzM0O3R4Z2JlX2FtbC5oXCYjMzQ7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2FtbC5jOjE2OiNpbmNsdWRlIFwmIzM0O3R4Z2JlX2h3LmhcJiMzNDtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfYW1sLmMtMTctXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2FtbC5jOjE4OnZvaWQgdHhnYmVfZ3Bpb19pbml0X2FtbChzdHJ1Y3Qgd3ggKnd4KVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9hbWwuYy0xOS17XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9hbWwuYy0zNi1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfYW1sLmM6Mzc6aXJxcmV0dXJuX3QgdHhnYmVfZ3Bpb19pcnFfaGFuZGxlcl9hbWwoaW50IGlycSwgdm9pZCAqZGF0YSlcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfYW1sLmMtMzgte1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9hbWwuYzozOTpcdHN0cnVjdCB0eGdiZSAqdHhnYmUgPSBkYXRhO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9hbWwuYzo0MDpcdHN0cnVjdCB3eCAqd3ggPSB0eGdiZS1cdTAwM2V3eDtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfYW1sLmMtNDEtXHR1MzIgc3RhdHVzLCBtb2RfcnN0O1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfYW1sLmMtNTktXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2FtbC5jOjYwOmludCB0eGdiZV90ZXN0X2hvc3RpZihzdHJ1Y3Qgd3ggKnd4KVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9hbWwuYy02MS17XG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2FtbC5jOjYyOlx0c3RydWN0IHR4Z2JlX2hpY19lcGh5X2dldGxpbmsgYnVmZmVyO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9hbWwuYy02My1cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2FtbC5jLTY3LVx0YnVmZmVyLmhkci5jbWQgPSBGV19QSFlfR0VUX0xJTktfQ01EO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9hbWwuYzo2ODpcdGJ1ZmZlci5oZHIuYnVmX2xlbiA9IHNpemVvZihzdHJ1Y3QgdHhnYmVfaGljX2VwaHlfZ2V0bGluaykgLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9hbWwuYy02OS1cdFx0XHQgICAgIHNpemVvZihzdHJ1Y3Qgd3hfaGljX2hkcik7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9hbWwuYy03NS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfYW1sLmM6NzY6aW50IHR4Z2JlX3JlYWRfZWVwcm9tX2hvc3RpZihzdHJ1Y3Qgd3ggKnd4LFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9hbWwuYzo3NzpcdFx0XHQgICAgIHN0cnVjdCB0eGdiZV9oaWNfaTJjX3JlYWQgKmJ1ZmZlcixcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfYW1sLmMtNzgtXHRcdFx0ICAgICB1MzIgbGVuZ3RoLCB1OCAqZGF0YSlcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2FtbC5jLTgzLVx0YnVmZmVyLVx1MDAzZWhkci5jbWQgPSBGV19SRUFEX0VFUFJPTV9DTUQ7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2FtbC5jOjg0Olx0YnVmZmVyLVx1MDAzZWhkci5idWZfbGVuID0gc2l6ZW9mKHN0cnVjdCB0eGdiZV9oaWNfaTJjX3JlYWQpIC1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfYW1sLmMtODUtXHRcdFx0ICAgICAgc2l6ZW9mKHN0cnVjdCB3eF9oaWNfaGRyKTtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2FtbC5jLTg4LVx0ZXJyID0gd3hfaG9zdF9pbnRlcmZhY2VfY29tbWFuZCh3eCwgKHUzMiAqKWJ1ZmZlcixcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfYW1sLmM6ODk6XHRcdFx0XHRcdHNpemVvZihzdHJ1Y3QgdHhnYmVfaGljX2kyY19yZWFkKSxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfYW1sLmMtOTAtXHRcdFx0XHRcdFdYX0hJX0NPTU1BTkRfVElNRU9VVCwgZmFsc2UpO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfYW1sLmMtOTQtXHQvKiBidWZmZXIgbGVuZ3RoIG9mZnNldCB0byByZWFkIHJldHVybiBkYXRhICovXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2FtbC5jOjk1Olx0b2Zmc2V0ID0gc2l6ZW9mKHN0cnVjdCB0eGdiZV9oaWNfaTJjX3JlYWQpIFx1MDAzZVx1MDAzZSAyO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9hbWwuYy05Ni1cdGR3b3JkX2xlbiA9IHJvdW5kX3VwKGxlbmd0aCwgNCkgXHUwMDNlXHUwMDNlIDI7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9hbWwuYy0xMTAtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2FtbC5jOjExMTpzdGF0aWMgaW50IHR4Z2JlX2lkZW50aWZ5X21vZHVsZV9ob3N0aWYoc3RydWN0IHd4ICp3eCxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfYW1sLmM6MTEyOlx0XHRcdFx0XHRzdHJ1Y3QgdHhnYmVfaGljX2dldF9tb2R1bGVfaW5mbyAqYnVmZmVyKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9hbWwuYy0xMTMte1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9hbWwuYy0xMTQtXHRidWZmZXItXHUwMDNlaGRyLmNtZCA9IEZXX0dFVF9NT0RVTEVfSU5GT19DTUQ7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2FtbC5jOjExNTpcdGJ1ZmZlci1cdTAwM2VoZHIuYnVmX2xlbiA9IHNpemVvZihzdHJ1Y3QgdHhnYmVfaGljX2dldF9tb2R1bGVfaW5mbykgLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9hbWwuYy0xMTYtXHRcdFx0ICAgICAgc2l6ZW9mKHN0cnVjdCB3eF9oaWNfaGRyKTtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2FtbC5jLTExOS1cdHJldHVybiB3eF9ob3N0X2ludGVyZmFjZV9jb21tYW5kKHd4LCAodTMyICopYnVmZmVyLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9hbWwuYzoxMjA6XHRcdFx0XHRcdCBzaXplb2Yoc3RydWN0IHR4Z2JlX2hpY19nZXRfbW9kdWxlX2luZm8pLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9hbWwuYy0xMjEtXHRcdFx0XHRcdCBXWF9ISV9DT01NQU5EX1RJTUVPVVQsIHRydWUpO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfYW1sLmMtMTIzLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9hbWwuYzoxMjQ6c3RhdGljIGludCB0eGdiZV9zZXRfcGh5X2xpbmtfaG9zdGlmKHN0cnVjdCB3eCAqd3gsIGludCBzcGVlZCwgaW50IGF1dG9uZWcsIGludCBkdXBsZXgpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2FtbC5jLTEyNS17XG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2FtbC5jOjEyNjpcdHN0cnVjdCB0eGdiZV9oaWNfZXBoeV9zZXRsaW5rIGJ1ZmZlcjtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfYW1sLmMtMTI3LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9hbWwuYy0xMjgtXHRidWZmZXIuaGRyLmNtZCA9IEZXX1BIWV9TRVRfTElOS19DTUQ7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2FtbC5jOjEyOTpcdGJ1ZmZlci5oZHIuYnVmX2xlbiA9IHNpemVvZihzdHJ1Y3QgdHhnYmVfaGljX2VwaHlfc2V0bGluaykgLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9hbWwuYy0xMzAtXHRcdFx0ICAgICBzaXplb2Yoc3RydWN0IHd4X2hpY19oZHIpO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfYW1sLmMtMTU1LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9hbWwuYzoxNTY6c3RhdGljIHZvaWQgdHhnYmVfZ2V0X2xpbmtfY2FwYWJpbGl0aWVzKHN0cnVjdCB3eCAqd3gsIGludCAqc3BlZWQsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2FtbC5jLTE1Ny1cdFx0XHRcdFx0aW50ICphdXRvbmVnLCBpbnQgKmR1cGxleClcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfYW1sLmMtMTU4LXtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfYW1sLmM6MTU5Olx0c3RydWN0IHR4Z2JlICp0eGdiZSA9IHd4LVx1MDAzZXByaXY7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2FtbC5jLTE2MC1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfYW1sLmM6MTYxOlx0aWYgKHRlc3RfYml0KFBIWV9JTlRFUkZBQ0VfTU9ERV9YTEdNSUksIHR4Z2JlLVx1MDAzZWxpbmtfaW50ZXJmYWNlcykpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2FtbC5jLTE2Mi1cdFx0KnNwZWVkID0gU1BFRURfNDAwMDA7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2FtbC5jOjE2MzpcdGVsc2UgaWYgKHRlc3RfYml0KFBIWV9JTlRFUkZBQ0VfTU9ERV8yNUdCQVNFUiwgdHhnYmUtXHUwMDNlbGlua19pbnRlcmZhY2VzKSlcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfYW1sLmMtMTY0LVx0XHQqc3BlZWQgPSBTUEVFRF8yNTAwMDtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfYW1sLmM6MTY1Olx0ZWxzZSBpZiAodGVzdF9iaXQoUEhZX0lOVEVSRkFDRV9NT0RFXzEwR0JBU0VSLCB0eGdiZS1cdTAwM2VsaW5rX2ludGVyZmFjZXMpKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9hbWwuYy0xNjYtXHRcdCpzcGVlZCA9IFNQRUVEXzEwMDAwO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfYW1sLmMtMTY5LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9hbWwuYzoxNzA6XHQqYXV0b25lZyA9IHBoeWxpbmtfdGVzdCh0eGdiZS1cdTAwM2VhZHZlcnRpc2luZywgQXV0b25lZyk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2FtbC5jLTE3MS1cdCpkdXBsZXggPSAqc3BlZWQgPT0gU1BFRURfVU5LTk9XTiA/IERVUExFWF9IQUxGIDogRFVQTEVYX0ZVTEw7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9hbWwuYy0xNzMtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2FtbC5jOjE3NDpzdGF0aWMgdm9pZCB0eGdiZV9nZXRfbWFjX2xpbmsoc3RydWN0IHd4ICp3eCwgaW50ICpzcGVlZClcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfYW1sLmMtMTc1LXtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2FtbC5jLTE5MC1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfYW1sLmM6MTkxOnZvaWQgdHhnYmVfc2V0X3BoeV9saW5rKHN0cnVjdCB3eCAqd3gpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2FtbC5jLTE5Mi17XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9hbWwuYy0xOTQtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2FtbC5jOjE5NTpcdHR4Z2JlX2dldF9saW5rX2NhcGFiaWxpdGllcyh3eCwgXHUwMDI2c3BlZWQsIFx1MDAyNmF1dG9uZWcsIFx1MDAyNmR1cGxleCk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2FtbC5jLTE5Ni1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfYW1sLmM6MTk3Olx0ZXJyID0gdHhnYmVfc2V0X3BoeV9saW5rX2hvc3RpZih3eCwgc3BlZWQsIGF1dG9uZWcsIGR1cGxleCk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2FtbC5jLTE5OC1cdGlmIChlcnIpXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9hbWwuYy0yMDEtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2FtbC5jOjIwMjpzdGF0aWMgaW50IHR4Z2JlX3NmcF90b19saW5rbW9kZXMoc3RydWN0IHd4ICp3eCwgc3RydWN0IHR4Z2JlX3NmZl9pZCAqaWQpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2FtbC5jLTIwMy17XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9hbWwuYy0yMDUtXHRERUNMQVJFX1BIWV9JTlRFUkZBQ0VfTUFTS19aRVJPKGludGVyZmFjZXMpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9hbWwuYzoyMDY6XHRzdHJ1Y3QgdHhnYmUgKnR4Z2JlID0gd3gtXHUwMDNlcHJpdjtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfYW1sLmMtMjA3LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9hbWwuYy0yMDgtXHRpZiAoaWQtXHUwMDNlY2FibGVfdGVjaCBcdTAwMjYgVFhHQkVfU0ZGX0RBX1BBU1NJVkVfQ0FCTEUpIHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfYW1sLmM6MjA5Olx0XHR0eGdiZS1cdTAwM2VsaW5rX3BvcnQgPSBQT1JUX0RBO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9hbWwuYy0yMTAtXHRcdHBoeWxpbmtfc2V0KG1vZGVzLCBBdXRvbmVnKTtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2FtbC5jLTIyMi1cdH0gZWxzZSBpZiAoaWQtXHUwMDNlY2FibGVfdGVjaCBcdTAwMjYgVFhHQkVfU0ZGX0RBX0FDVElWRV9DQUJMRSkge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9hbWwuYzoyMjM6XHRcdHR4Z2JlLVx1MDAzZWxpbmtfcG9ydCA9IFBPUlRfREE7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2FtbC5jLTIyNC1cdFx0cGh5bGlua19zZXQobW9kZXMsIEF1dG9uZWcpO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfYW1sLmMtMjMwLVx0XHQgICAgaWQtXHUwMDNlY29tXzI1Z19jb2RlID09IFRYR0JFX1NGRl8yNUdCQVNFTFJfQ0FQQUJMRSkge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9hbWwuYzoyMzE6XHRcdFx0dHhnYmUtXHUwMDNlbGlua19wb3J0ID0gUE9SVF9GSUJSRTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfYW1sLmMtMjMyLVx0XHRcdHBoeWxpbmtfc2V0KG1vZGVzLCAyNTAwMGJhc2VTUl9GdWxsKTtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2FtbC5jLTIzNS1cdFx0aWYgKGlkLVx1MDAzZWNvbV8xMGdfY29kZSBcdTAwMjYgVFhHQkVfU0ZGXzEwR0JBU0VTUl9DQVBBQkxFKSB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2FtbC5jOjIzNjpcdFx0XHR0eGdiZS1cdTAwM2VsaW5rX3BvcnQgPSBQT1JUX0ZJQlJFO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9hbWwuYy0yMzctXHRcdFx0cGh5bGlua19zZXQobW9kZXMsIDEwMDAwYmFzZVNSX0Z1bGwpO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfYW1sLmMtMjQwLVx0XHRpZiAoaWQtXHUwMDNlY29tXzEwZ19jb2RlIFx1MDAyNiBUWEdCRV9TRkZfMTBHQkFTRUxSX0NBUEFCTEUpIHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfYW1sLmM6MjQxOlx0XHRcdHR4Z2JlLVx1MDAzZWxpbmtfcG9ydCA9IFBPUlRfRklCUkU7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2FtbC5jLTI0Mi1cdFx0XHRwaHlsaW5rX3NldChtb2RlcywgMTAwMDBiYXNlTFJfRnVsbCk7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9hbWwuYy0yNTUtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2FtbC5jOjI1NjpcdGlmICghbGlua21vZGVfZXF1YWwodHhnYmUtXHUwMDNlbGlua19zdXBwb3J0LCBtb2RlcykpIHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfYW1sLmM6MjU3Olx0XHRsaW5rbW9kZV9jb3B5KHR4Z2JlLVx1MDAzZWxpbmtfc3VwcG9ydCwgbW9kZXMpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9hbWwuYzoyNTg6XHRcdHBoeV9pbnRlcmZhY2VfYW5kKHR4Z2JlLVx1MDAzZWxpbmtfaW50ZXJmYWNlcyxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfYW1sLmMtMjU5LVx0XHRcdFx0ICB3eC1cdTAwM2VwaHlsaW5rX2NvbmZpZy5zdXBwb3J0ZWRfaW50ZXJmYWNlcyxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfYW1sLmMtMjYwLVx0XHRcdFx0ICBpbnRlcmZhY2VzKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfYW1sLmM6MjYxOlx0XHRsaW5rbW9kZV9jb3B5KHR4Z2JlLVx1MDAzZWFkdmVydGlzaW5nLCBtb2Rlcyk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2FtbC5jLTI2Mi1cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2FtbC5jLTI2OC1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfYW1sLmM6MjY5OnN0YXRpYyBpbnQgdHhnYmVfcXNmcF90b19saW5rbW9kZXMoc3RydWN0IHd4ICp3eCwgc3RydWN0IHR4Z2JlX3NmZl9pZCAqaWQpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2FtbC5jLTI3MC17XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9hbWwuYy0yNzItXHRERUNMQVJFX1BIWV9JTlRFUkZBQ0VfTUFTS19aRVJPKGludGVyZmFjZXMpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9hbWwuYzoyNzM6XHRzdHJ1Y3QgdHhnYmUgKnR4Z2JlID0gd3gtXHUwMDNlcHJpdjtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfYW1sLmMtMjc0LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9hbWwuYy0yNzUtXHRpZiAoaWQtXHUwMDNldHJhbnNjZWl2ZXJfdHlwZSBcdTAwMjYgVFhHQkVfU0ZGX0VUSEVSTkVUXzQwR19DUjQpIHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfYW1sLmM6Mjc2Olx0XHR0eGdiZS1cdTAwM2VsaW5rX3BvcnQgPSBQT1JUX0RBO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9hbWwuYy0yNzctXHRcdHBoeWxpbmtfc2V0KG1vZGVzLCBBdXRvbmVnKTtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2FtbC5jLTI4My1cdGlmIChpZC1cdTAwM2V0cmFuc2NlaXZlcl90eXBlIFx1MDAyNiBUWEdCRV9TRkZfRVRIRVJORVRfNDBHX1NSNCkge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9hbWwuYzoyODQ6XHRcdHR4Z2JlLVx1MDAzZWxpbmtfcG9ydCA9IFBPUlRfRklCUkU7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2FtbC5jLTI4NS1cdFx0cGh5bGlua19zZXQobW9kZXMsIDQwMDAwYmFzZVNSNF9GdWxsKTtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2FtbC5jLTI4OC1cdGlmIChpZC1cdTAwM2V0cmFuc2NlaXZlcl90eXBlIFx1MDAyNiBUWEdCRV9TRkZfRVRIRVJORVRfNDBHX0xSNCkge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9hbWwuYzoyODk6XHRcdHR4Z2JlLVx1MDAzZWxpbmtfcG9ydCA9IFBPUlRfRklCUkU7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2FtbC5jLTI5MC1cdFx0cGh5bGlua19zZXQobW9kZXMsIDQwMDAwYmFzZUxSNF9GdWxsKTtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2FtbC5jLTI5My1cdGlmIChpZC1cdTAwM2V0cmFuc2NlaXZlcl90eXBlIFx1MDAyNiBUWEdCRV9TRkZfRVRIRVJORVRfNDBHX0FDVElWRSkge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9hbWwuYzoyOTQ6XHRcdHR4Z2JlLVx1MDAzZWxpbmtfcG9ydCA9IFBPUlRfREE7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2FtbC5jLTI5NS1cdFx0cGh5bGlua19zZXQobW9kZXMsIEF1dG9uZWcpO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfYW1sLmMtMzAwLVx0XHRpZiAoaWQtXHUwMDNlc2ZmX29wdDEgXHUwMDI2IFRYR0JFX1NGRl9FVEhFUk5FVF8xMDBHX0NSNCkge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9hbWwuYzozMDE6XHRcdFx0dHhnYmUtXHUwMDNlbGlua19wb3J0ID0gUE9SVF9EQTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfYW1sLmMtMzAyLVx0XHRcdHBoeWxpbmtfc2V0KG1vZGVzLCBBdXRvbmVnKTtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2FtbC5jLTMyMC1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfYW1sLmM6MzIxOlx0aWYgKCFsaW5rbW9kZV9lcXVhbCh0eGdiZS1cdTAwM2VsaW5rX3N1cHBvcnQsIG1vZGVzKSkge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9hbWwuYzozMjI6XHRcdGxpbmttb2RlX2NvcHkodHhnYmUtXHUwMDNlbGlua19zdXBwb3J0LCBtb2Rlcyk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2FtbC5jOjMyMzpcdFx0cGh5X2ludGVyZmFjZV9hbmQodHhnYmUtXHUwMDNlbGlua19pbnRlcmZhY2VzLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9hbWwuYy0zMjQtXHRcdFx0XHQgIHd4LVx1MDAzZXBoeWxpbmtfY29uZmlnLnN1cHBvcnRlZF9pbnRlcmZhY2VzLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9hbWwuYy0zMjUtXHRcdFx0XHQgIGludGVyZmFjZXMpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9hbWwuYzozMjY6XHRcdGxpbmttb2RlX2NvcHkodHhnYmUtXHUwMDNlYWR2ZXJ0aXNpbmcsIG1vZGVzKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfYW1sLmMtMzI3LVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfYW1sLmMtMzMzLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9hbWwuYzozMzQ6aW50IHR4Z2JlX2lkZW50aWZ5X21vZHVsZShzdHJ1Y3Qgd3ggKnd4KVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9hbWwuYy0zMzUte1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9hbWwuYzozMzY6XHRzdHJ1Y3QgdHhnYmVfaGljX2dldF9tb2R1bGVfaW5mbyBidWZmZXIgPSB7IDAgfTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfYW1sLmM6MzM3Olx0c3RydWN0IHR4Z2JlX3NmZl9pZCAqaWQ7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2FtbC5jLTMzOC1cdGludCBlcnIgPSAwO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfYW1sLmMtMzUwLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9hbWwuYzozNTE6XHRlcnIgPSB0eGdiZV9pZGVudGlmeV9tb2R1bGVfaG9zdGlmKHd4LCBcdTAwMjZidWZmZXIpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9hbWwuYy0zNTItXHRpZiAoZXJyKSB7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9hbWwuYy0zNTgtXHRpZiAoaWQtXHUwMDNlaWRlbnRpZmllciA9PSBUWEdCRV9TRkZfSURFTlRJRklFUl9TRlApXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2FtbC5jOjM1OTpcdFx0cmV0dXJuIHR4Z2JlX3NmcF90b19saW5rbW9kZXMod3gsIGlkKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfYW1sLmMtMzYwLVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfYW1sLmMtMzYzLVx0ICAgIGlkLVx1MDAzZWlkZW50aWZpZXIgPT0gVFhHQkVfU0ZGX0lERU5USUZJRVJfUVNGUDI4KVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9hbWwuYzozNjQ6XHRcdHJldHVybiB0eGdiZV9xc2ZwX3RvX2xpbmttb2Rlcyh3eCwgaWQpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9hbWwuYy0zNjUtXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9hbWwuYy0zNjktXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2FtbC5jOjM3MDp2b2lkIHR4Z2JlX3NldHVwX2xpbmsoc3RydWN0IHd4ICp3eClcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfYW1sLmMtMzcxLXtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfYW1sLmM6MzcyOlx0c3RydWN0IHR4Z2JlICp0eGdiZSA9IHd4LVx1MDAzZXByaXY7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2FtbC5jLTM3My1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfYW1sLmM6Mzc0Olx0cGh5X2ludGVyZmFjZV96ZXJvKHR4Z2JlLVx1MDAzZWxpbmtfaW50ZXJmYWNlcyk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2FtbC5jOjM3NTpcdGxpbmttb2RlX3plcm8odHhnYmUtXHUwMDNlbGlua19zdXBwb3J0KTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfYW1sLmMtMzc2LVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfYW1sLmMtMzgwLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9hbWwuYzozODE6c3RhdGljIHZvaWQgdHhnYmVfZ2V0X2xpbmtfc3RhdGUoc3RydWN0IHBoeWxpbmtfY29uZmlnICpjb25maWcsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2FtbC5jLTM4Mi1cdFx0XHRcdCBzdHJ1Y3QgcGh5bGlua19saW5rX3N0YXRlICpzdGF0ZSlcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2FtbC5jLTM4Ni1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfYW1sLmM6Mzg3Olx0dHhnYmVfZ2V0X21hY19saW5rKHd4LCBcdTAwMjZzcGVlZCk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2FtbC5jLTM4OC1cdHN0YXRlLVx1MDAzZWxpbmsgPSBzcGVlZCAhPSBTUEVFRF9VTktOT1dOO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfYW1sLmMtMzkyLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9hbWwuYzozOTM6c3RhdGljIHZvaWQgdHhnYmVfcmVjb25maWdfbWFjKHN0cnVjdCB3eCAqd3gpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2FtbC5jLTM5NC17XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9hbWwuYy00MTEtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2FtbC5jOjQxMjpzdGF0aWMgdm9pZCB0eGdiZV9tYWNfbGlua191cF9hbWwoc3RydWN0IHBoeWxpbmtfY29uZmlnICpjb25maWcsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2FtbC5jLTQxMy1cdFx0XHRcdCAgc3RydWN0IHBoeV9kZXZpY2UgKnBoeSxcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2FtbC5jLTQyMy1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfYW1sLmM6NDI0Olx0dHhnYmVfcmVjb25maWdfbWFjKHd4KTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfYW1sLmM6NDI1Olx0dHhnYmVfZW5hYmxlX3NlY190eF9wYXRoKHd4KTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfYW1sLmMtNDI2LVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfYW1sLmMtNDU0LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9hbWwuYzo0NTU6c3RhdGljIHZvaWQgdHhnYmVfbWFjX2xpbmtfZG93bl9hbWwoc3RydWN0IHBoeWxpbmtfY29uZmlnICpjb25maWcsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2FtbC5jLTQ1Ni1cdFx0XHRcdCAgICB1bnNpZ25lZCBpbnQgbW9kZSxcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2FtbC5jLTQ3MC1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfYW1sLmM6NDcxOnN0YXRpYyB2b2lkIHR4Z2JlX21hY19jb25maWdfYW1sKHN0cnVjdCBwaHlsaW5rX2NvbmZpZyAqY29uZmlnLCB1bnNpZ25lZCBpbnQgbW9kZSxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfYW1sLmMtNDcyLVx0XHRcdFx0IGNvbnN0IHN0cnVjdCBwaHlsaW5rX2xpbmtfc3RhdGUgKnN0YXRlKVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfYW1sLmMtNDc1LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9hbWwuYzo0NzY6c3RhdGljIGNvbnN0IHN0cnVjdCBwaHlsaW5rX21hY19vcHMgdHhnYmVfbWFjX29wc19hbWwgPSB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2FtbC5jOjQ3NzpcdC5tYWNfY29uZmlnID0gdHhnYmVfbWFjX2NvbmZpZ19hbWwsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2FtbC5jOjQ3ODpcdC5tYWNfbGlua19kb3duID0gdHhnYmVfbWFjX2xpbmtfZG93bl9hbWwsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2FtbC5jOjQ3OTpcdC5tYWNfbGlua191cCA9IHR4Z2JlX21hY19saW5rX3VwX2FtbCxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfYW1sLmMtNDgwLX07XG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2FtbC5jLTQ4MS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfYW1sLmM6NDgyOmludCB0eGdiZV9waHlsaW5rX2luaXRfYW1sKHN0cnVjdCB0eGdiZSAqdHhnYmUpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2FtbC5jLTQ4My17XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9hbWwuYy00ODUtXHRzdHJ1Y3QgcGh5bGlua19jb25maWcgKmNvbmZpZztcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfYW1sLmM6NDg2Olx0c3RydWN0IHd4ICp3eCA9IHR4Z2JlLVx1MDAzZXd4O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9hbWwuYy00ODctXHRwaHlfaW50ZXJmYWNlX3QgcGh5X21vZGU7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9hbWwuYy00OTUtXHRcdFx0XHQgICBNQUNfU1lNX1BBVVNFIHwgTUFDX0FTWU1fUEFVU0U7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2FtbC5jOjQ5NjpcdGNvbmZpZy1cdTAwM2VnZXRfZml4ZWRfc3RhdGUgPSB0eGdiZV9nZXRfbGlua19zdGF0ZTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfYW1sLmMtNDk3LVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfYW1sLmMtNTEyLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9hbWwuYzo1MTM6XHRwaHlsaW5rID0gcGh5bGlua19jcmVhdGUoY29uZmlnLCBOVUxMLCBwaHlfbW9kZSwgXHUwMDI2dHhnYmVfbWFjX29wc19hbWwpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9hbWwuYy01MTQtXHRpZiAoSVNfRVJSKHBoeWxpbmspKVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfYW1sLmgtNi1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfYW1sLmg6Nzp2b2lkIHR4Z2JlX2dwaW9faW5pdF9hbWwoc3RydWN0IHd4ICp3eCk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2FtbC5oOjg6aXJxcmV0dXJuX3QgdHhnYmVfZ3Bpb19pcnFfaGFuZGxlcl9hbWwoaW50IGlycSwgdm9pZCAqZGF0YSk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2FtbC5oOjk6aW50IHR4Z2JlX3Rlc3RfaG9zdGlmKHN0cnVjdCB3eCAqd3gpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9hbWwuaDoxMDppbnQgdHhnYmVfcmVhZF9lZXByb21faG9zdGlmKHN0cnVjdCB3eCAqd3gsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2FtbC5oOjExOlx0XHRcdCAgICAgc3RydWN0IHR4Z2JlX2hpY19pMmNfcmVhZCAqYnVmZmVyLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9hbWwuaC0xMi1cdFx0XHQgICAgIHUzMiBsZW5ndGgsIHU4ICpkYXRhKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfYW1sLmg6MTM6dm9pZCB0eGdiZV9zZXRfcGh5X2xpbmsoc3RydWN0IHd4ICp3eCk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2FtbC5oOjE0OmludCB0eGdiZV9pZGVudGlmeV9tb2R1bGUoc3RydWN0IHd4ICp3eCk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2FtbC5oOjE1OnZvaWQgdHhnYmVfc2V0dXBfbGluayhzdHJ1Y3Qgd3ggKnd4KTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfYW1sLmg6MTY6aW50IHR4Z2JlX3BoeWxpbmtfaW5pdF9hbWwoc3RydWN0IHR4Z2JlICp0eGdiZSk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2FtbC5oLTE3LVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfZXRodG9vbC5jLTEwLSNpbmNsdWRlIFwmIzM0Oy4uL2xpYnd4L3d4X2xpYi5oXCYjMzQ7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2V0aHRvb2wuYzoxMTojaW5jbHVkZSBcJiMzNDt0eGdiZV90eXBlLmhcJiMzNDtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfZXRodG9vbC5jOjEyOiNpbmNsdWRlIFwmIzM0O3R4Z2JlX2ZkaXIuaFwmIzM0O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9ldGh0b29sLmM6MTM6I2luY2x1ZGUgXCYjMzQ7dHhnYmVfYW1sLmhcJiMzNDtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfZXRodG9vbC5jOjE0OiNpbmNsdWRlIFwmIzM0O3R4Z2JlX2V0aHRvb2wuaFwmIzM0O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9ldGh0b29sLmMtMTUtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2V0aHRvb2wuYzoxNjppbnQgdHhnYmVfZ2V0X2xpbmtfa3NldHRpbmdzKHN0cnVjdCBuZXRfZGV2aWNlICpuZXRkZXYsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2V0aHRvb2wuYy0xNy1cdFx0XHQgICAgIHN0cnVjdCBldGh0b29sX2xpbmtfa3NldHRpbmdzICpjbWQpXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9ldGh0b29sLmMtMTktXHRzdHJ1Y3Qgd3ggKnd4ID0gbmV0ZGV2X3ByaXYobmV0ZGV2KTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfZXRodG9vbC5jOjIwOlx0c3RydWN0IHR4Z2JlICp0eGdiZSA9IHd4LVx1MDAzZXByaXY7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2V0aHRvb2wuYy0yMS1cdGludCBlcnI7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9ldGh0b29sLmMtMjktXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2V0aHRvb2wuYzozMDpcdGNtZC1cdTAwM2ViYXNlLnBvcnQgPSB0eGdiZS1cdTAwM2VsaW5rX3BvcnQ7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2V0aHRvb2wuYzozMTpcdGNtZC1cdTAwM2ViYXNlLmF1dG9uZWcgPSBwaHlsaW5rX3Rlc3QodHhnYmUtXHUwMDNlYWR2ZXJ0aXNpbmcsIEF1dG9uZWcpID9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfZXRodG9vbC5jLTMyLVx0XHRcdCAgICBBVVRPTkVHX0VOQUJMRSA6IEFVVE9ORUdfRElTQUJMRTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfZXRodG9vbC5jOjMzOlx0bGlua21vZGVfY29weShjbWQtXHUwMDNlbGlua19tb2Rlcy5zdXBwb3J0ZWQsIHR4Z2JlLVx1MDAzZWxpbmtfc3VwcG9ydCk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2V0aHRvb2wuYzozNDpcdGxpbmttb2RlX2NvcHkoY21kLVx1MDAzZWxpbmtfbW9kZXMuYWR2ZXJ0aXNpbmcsIHR4Z2JlLVx1MDAzZWFkdmVydGlzaW5nKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfZXRodG9vbC5jLTM1LVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfZXRodG9vbC5jLTM4LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9ldGh0b29sLmM6Mzk6c3RhdGljIGludCB0eGdiZV9zZXRfcmluZ3BhcmFtKHN0cnVjdCBuZXRfZGV2aWNlICpuZXRkZXYsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2V0aHRvb2wuYy00MC1cdFx0XHQgICAgICAgc3RydWN0IGV0aHRvb2xfcmluZ3BhcmFtICpyaW5nLFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfZXRodG9vbC5jLTgwLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9ldGh0b29sLmM6ODE6XHR0eGdiZV9kb3duKHd4KTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfZXRodG9vbC5jLTgyLVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfZXRodG9vbC5jLTg1LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9ldGh0b29sLmM6ODY6XHR0eGdiZV91cCh3eCk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2V0aHRvb2wuYy04Ny1cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2V0aHRvb2wuYy05My1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfZXRodG9vbC5jOjk0OnN0YXRpYyBpbnQgdHhnYmVfZ2V0X2V0aHRvb2xfZmRpcl9lbnRyeShzdHJ1Y3QgdHhnYmUgKnR4Z2JlLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9ldGh0b29sLmMtOTUtXHRcdFx0XHRcdHN0cnVjdCBldGh0b29sX3J4bmZjICpjbWQpXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9ldGh0b29sLmMtOTgtXHRcdChzdHJ1Y3QgZXRodG9vbF9yeF9mbG93X3NwZWMgKilcdTAwMjZjbWQtXHUwMDNlZnM7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2V0aHRvb2wuYzo5OTpcdHVuaW9uIHR4Z2JlX2F0cl9pbnB1dCAqbWFzayA9IFx1MDAyNnR4Z2JlLVx1MDAzZWZkaXJfbWFzaztcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfZXRodG9vbC5jOjEwMDpcdHN0cnVjdCB0eGdiZV9mZGlyX2ZpbHRlciAqcnVsZSA9IE5VTEw7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2V0aHRvb2wuYy0xMDEtXHRzdHJ1Y3QgaGxpc3Rfbm9kZSAqbm9kZTtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2V0aHRvb2wuYy0xMDUtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2V0aHRvb2wuYzoxMDY6XHRobGlzdF9mb3JfZWFjaF9lbnRyeV9zYWZlKHJ1bGUsIG5vZGUsIFx1MDAyNnR4Z2JlLVx1MDAzZWZkaXJfZmlsdGVyX2xpc3QsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2V0aHRvb2wuYy0xMDctXHRcdFx0XHQgIGZkaXJfbm9kZSkge1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfZXRodG9vbC5jLTE1OC1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfZXRodG9vbC5jOjE1OTpzdGF0aWMgaW50IHR4Z2JlX2dldF9ldGh0b29sX2ZkaXJfYWxsKHN0cnVjdCB0eGdiZSAqdHhnYmUsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2V0aHRvb2wuYy0xNjAtXHRcdFx0XHQgICAgICBzdHJ1Y3QgZXRodG9vbF9yeG5mYyAqY21kLFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfZXRodG9vbC5jLTE2Mi17XG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2V0aHRvb2wuYzoxNjM6XHRzdHJ1Y3QgdHhnYmVfZmRpcl9maWx0ZXIgKnJ1bGU7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2V0aHRvb2wuYy0xNjQtXHRzdHJ1Y3QgaGxpc3Rfbm9kZSAqbm9kZTtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2V0aHRvb2wuYy0xNjktXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2V0aHRvb2wuYzoxNzA6XHRobGlzdF9mb3JfZWFjaF9lbnRyeV9zYWZlKHJ1bGUsIG5vZGUsIFx1MDAyNnR4Z2JlLVx1MDAzZWZkaXJfZmlsdGVyX2xpc3QsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2V0aHRvb2wuYy0xNzEtXHRcdFx0XHQgIGZkaXJfbm9kZSkge1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfZXRodG9vbC5jLTE4Mi1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfZXRodG9vbC5jOjE4MzpzdGF0aWMgdTMyIHR4Z2JlX2dldF9yeF9yaW5nX2NvdW50KHN0cnVjdCBuZXRfZGV2aWNlICpkZXYpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2V0aHRvb2wuYy0xODQte1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfZXRodG9vbC5jLTE4OS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfZXRodG9vbC5jOjE5MDpzdGF0aWMgaW50IHR4Z2JlX2dldF9yeG5mYyhzdHJ1Y3QgbmV0X2RldmljZSAqZGV2LCBzdHJ1Y3QgZXRodG9vbF9yeG5mYyAqY21kLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9ldGh0b29sLmMtMTkxLVx0XHRcdCAgIHUzMiAqcnVsZV9sb2NzKVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfZXRodG9vbC5jLTE5My1cdHN0cnVjdCB3eCAqd3ggPSBuZXRkZXZfcHJpdihkZXYpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9ldGh0b29sLmM6MTk0Olx0c3RydWN0IHR4Z2JlICp0eGdiZSA9IHd4LVx1MDAzZXByaXY7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2V0aHRvb2wuYy0xOTUtXHRpbnQgcmV0ID0gLUVPUE5PVFNVUFA7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9ldGh0b29sLmMtMTk4LVx0Y2FzZSBFVEhUT09MX0dSWENMU1JMQ05UOlxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9ldGh0b29sLmM6MTk5Olx0XHRjbWQtXHUwMDNlcnVsZV9jbnQgPSB0eGdiZS1cdTAwM2VmZGlyX2ZpbHRlcl9jb3VudDtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfZXRodG9vbC5jLTIwMC1cdFx0cmV0ID0gMDtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2V0aHRvb2wuYy0yMDItXHRjYXNlIEVUSFRPT0xfR1JYQ0xTUlVMRTpcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfZXRodG9vbC5jOjIwMzpcdFx0cmV0ID0gdHhnYmVfZ2V0X2V0aHRvb2xfZmRpcl9lbnRyeSh0eGdiZSwgY21kKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfZXRodG9vbC5jLTIwNC1cdFx0YnJlYWs7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2V0aHRvb2wuYy0yMDUtXHRjYXNlIEVUSFRPT0xfR1JYQ0xTUkxBTEw6XG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2V0aHRvb2wuYzoyMDY6XHRcdHJldCA9IHR4Z2JlX2dldF9ldGh0b29sX2ZkaXJfYWxsKHR4Z2JlLCBjbWQsICh1MzIgKilydWxlX2xvY3MpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9ldGh0b29sLmMtMjA3LVx0XHRicmVhaztcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2V0aHRvb2wuYy0yMTQtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2V0aHRvb2wuYzoyMTU6c3RhdGljIGludCB0eGdiZV9mbG93c3BlY190b19mbG93X3R5cGUoc3RydWN0IGV0aHRvb2xfcnhfZmxvd19zcGVjICpmc3AsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2V0aHRvb2wuYy0yMTYtXHRcdFx0XHQgICAgICAgdTggKmZsb3dfdHlwZSlcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2V0aHRvb2wuYy0yNTUtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2V0aHRvb2wuYzoyNTY6c3RhdGljIGJvb2wgdHhnYmVfbWF0Y2hfZXRodG9vbF9mZGlyX2VudHJ5KHN0cnVjdCB0eGdiZSAqdHhnYmUsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2V0aHRvb2wuYzoyNTc6XHRcdFx0XHRcdCAgIHN0cnVjdCB0eGdiZV9mZGlyX2ZpbHRlciAqaW5wdXQpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2V0aHRvb2wuYy0yNTgte1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9ldGh0b29sLmM6MjU5Olx0c3RydWN0IHR4Z2JlX2ZkaXJfZmlsdGVyICpydWxlID0gTlVMTDtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfZXRodG9vbC5jLTI2MC1cdHN0cnVjdCBobGlzdF9ub2RlICpub2RlMjtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfZXRodG9vbC5jLTI2MS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfZXRodG9vbC5jOjI2MjpcdGhsaXN0X2Zvcl9lYWNoX2VudHJ5X3NhZmUocnVsZSwgbm9kZTIsIFx1MDAyNnR4Z2JlLVx1MDAzZWZkaXJfZmlsdGVyX2xpc3QsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2V0aHRvb2wuYy0yNjMtXHRcdFx0XHQgIGZkaXJfbm9kZSkge1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfZXRodG9vbC5jLTI2Ni1cdFx0ICAgIHJ1bGUtXHUwMDNlYWN0aW9uID09IGlucHV0LVx1MDAzZWFjdGlvbikge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9ldGh0b29sLmM6MjY3Olx0XHRcdHd4X2RiZyh0eGdiZS1cdTAwM2V3eCwgXCYjMzQ7RkRJUiBlbnRyeSBhbHJlYWR5IGV4aXN0XFxuXCYjMzQ7KTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfZXRodG9vbC5jLTI2OC1cdFx0XHRyZXR1cm4gdHJ1ZTtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2V0aHRvb2wuYy0yNzMtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2V0aHRvb2wuYzoyNzQ6c3RhdGljIGludCB0eGdiZV91cGRhdGVfZXRodG9vbF9mZGlyX2VudHJ5KHN0cnVjdCB0eGdiZSAqdHhnYmUsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2V0aHRvb2wuYzoyNzU6XHRcdFx0XHRcdCAgIHN0cnVjdCB0eGdiZV9mZGlyX2ZpbHRlciAqaW5wdXQsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2V0aHRvb2wuYy0yNzYtXHRcdFx0XHRcdCAgIHUxNiBzd19pZHgpXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9ldGh0b29sLmMtMjc4LVx0c3RydWN0IGhsaXN0X25vZGUgKm5vZGUgPSBOVUxMLCAqcGFyZW50ID0gTlVMTDtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfZXRodG9vbC5jOjI3OTpcdHN0cnVjdCB0eGdiZV9mZGlyX2ZpbHRlciAqcnVsZTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfZXRodG9vbC5jOjI4MDpcdHN0cnVjdCB3eCAqd3ggPSB0eGdiZS1cdTAwM2V3eDtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfZXRodG9vbC5jLTI4MS1cdGJvb2wgZGVsZXRlZCA9IGZhbHNlO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfZXRodG9vbC5jLTI4My1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfZXRodG9vbC5jOjI4NDpcdGhsaXN0X2Zvcl9lYWNoX2VudHJ5X3NhZmUocnVsZSwgbm9kZSwgXHUwMDI2dHhnYmUtXHUwMDNlZmRpcl9maWx0ZXJfbGlzdCxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfZXRodG9vbC5jLTI4NS1cdFx0XHRcdCAgZmRpcl9ub2RlKSB7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9ldGh0b29sLmMtMzAwLVx0XHQgICAgIGlucHV0LVx1MDAzZWZpbHRlci5mb3JtYXR0ZWQuYmt0X2hhc2gpKSB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2V0aHRvb2wuYzozMDE6XHRcdFx0ZXJyID0gdHhnYmVfZmRpcl9lcmFzZV9wZXJmZWN0X2ZpbHRlcih3eCxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfZXRodG9vbC5jLTMwMi1cdFx0XHRcdFx0XHRcdCAgICAgIFx1MDAyNnJ1bGUtXHUwMDNlZmlsdGVyLFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfZXRodG9vbC5jLTMwOS1cdFx0a2ZyZWUocnVsZSk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2V0aHRvb2wuYzozMTA6XHRcdHR4Z2JlLVx1MDAzZWZkaXJfZmlsdGVyX2NvdW50LS07XG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2V0aHRvb2wuYy0zMTEtXHRcdGRlbGV0ZWQgPSB0cnVlO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfZXRodG9vbC5jLTMyOC1cdFx0aGxpc3RfYWRkX2hlYWQoXHUwMDI2aW5wdXQtXHUwMDNlZmRpcl9ub2RlLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9ldGh0b29sLmM6MzI5Olx0XHRcdCAgICAgICBcdTAwMjZ0eGdiZS1cdTAwM2VmZGlyX2ZpbHRlcl9saXN0KTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfZXRodG9vbC5jLTMzMC1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfZXRodG9vbC5jLTMzMS1cdC8qIHVwZGF0ZSBjb3VudHMgKi9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfZXRodG9vbC5jOjMzMjpcdHR4Z2JlLVx1MDAzZWZkaXJfZmlsdGVyX2NvdW50JiM0MzsmIzQzOztcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfZXRodG9vbC5jLTMzMy1cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2V0aHRvb2wuYy0zMzYtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2V0aHRvb2wuYzozMzc6c3RhdGljIGludCB0eGdiZV9hZGRfZXRodG9vbF9mZGlyX2VudHJ5KHN0cnVjdCB0eGdiZSAqdHhnYmUsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2V0aHRvb2wuYy0zMzgtXHRcdFx0XHRcdHN0cnVjdCBldGh0b29sX3J4bmZjICpjbWQpXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9ldGh0b29sLmMtMzQxLVx0XHQoc3RydWN0IGV0aHRvb2xfcnhfZmxvd19zcGVjICopXHUwMDI2Y21kLVx1MDAzZWZzO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9ldGh0b29sLmM6MzQyOlx0c3RydWN0IHR4Z2JlX2ZkaXJfZmlsdGVyICppbnB1dDtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfZXRodG9vbC5jOjM0MzpcdHVuaW9uIHR4Z2JlX2F0cl9pbnB1dCBtYXNrO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9ldGh0b29sLmM6MzQ0Olx0c3RydWN0IHd4ICp3eCA9IHR4Z2JlLVx1MDAzZXd4O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9ldGh0b29sLmMtMzQ1LVx0aW50IGVyciA9IC1FSU5WQUw7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9ldGh0b29sLmMtMzUxLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9ldGh0b29sLmM6MzUyOlx0LyogcmluZ19jb29raWUgaXMgYSBtYXNrZWQgaW50byBhIHNldCBvZiBxdWV1ZXMgYW5kIHR4Z2JlIHBvb2xzIG9yXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2V0aHRvb2wuYy0zNTMtXHQgKiB3ZSB1c2UgZHJvcCBpbmRleFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfZXRodG9vbC5jLTM4My1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfZXRodG9vbC5jOjM4NDpcdG1lbXNldChcdTAwMjZtYXNrLCAwLCBzaXplb2YodW5pb24gdHhnYmVfYXRyX2lucHV0KSk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2V0aHRvb2wuYy0zODUtXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9ldGh0b29sLmMtMzg5LVx0LyogcmVjb3JkIGZsb3cgdHlwZSAqL1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9ldGh0b29sLmM6MzkwOlx0aWYgKHR4Z2JlX2Zsb3dzcGVjX3RvX2Zsb3dfdHlwZShmc3AsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2V0aHRvb2wuYy0zOTEtXHRcdFx0XHRcdFx1MDAyNmlucHV0LVx1MDAzZWZpbHRlci5mb3JtYXR0ZWQuZmxvd190eXBlKSkge1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfZXRodG9vbC5jLTQ1MC1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfZXRodG9vbC5jOjQ1MTpcdHNwaW5fbG9jayhcdTAwMjZ0eGdiZS1cdTAwM2VmZGlyX3BlcmZlY3RfbG9jayk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2V0aHRvb2wuYy00NTItXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2V0aHRvb2wuYzo0NTM6XHRpZiAoaGxpc3RfZW1wdHkoXHUwMDI2dHhnYmUtXHUwMDNlZmRpcl9maWx0ZXJfbGlzdCkpIHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfZXRodG9vbC5jLTQ1NC1cdFx0Lyogc2F2ZSBtYXNrIGFuZCBwcm9ncmFtIGlucHV0IG1hc2sgaW50byBIVyAqL1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9ldGh0b29sLmM6NDU1Olx0XHRtZW1jcHkoXHUwMDI2dHhnYmUtXHUwMDNlZmRpcl9tYXNrLCBcdTAwMjZtYXNrLCBzaXplb2YobWFzaykpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9ldGh0b29sLmM6NDU2Olx0XHRlcnIgPSB0eGdiZV9mZGlyX3NldF9pbnB1dF9tYXNrKHd4LCBcdTAwMjZtYXNrKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfZXRodG9vbC5jLTQ1Ny1cdFx0aWYgKGVycilcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfZXRodG9vbC5jLTQ1OC1cdFx0XHRnb3RvIGVycl91bmxvY2s7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2V0aHRvb2wuYzo0NTk6XHR9IGVsc2UgaWYgKG1lbWNtcChcdTAwMjZ0eGdiZS1cdTAwM2VmZGlyX21hc2ssIFx1MDAyNm1hc2ssIHNpemVvZihtYXNrKSkpIHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfZXRodG9vbC5jLTQ2MC1cdFx0d3hfZXJyKHd4LCBcJiMzNDtIYXJkd2FyZSBvbmx5IHN1cHBvcnRzIG9uZSBtYXNrIHBlciBwb3J0LiBUbyBjaGFuZ2UgdGhlIG1hc2sgeW91IG11c3QgZmlyc3QgZGVsZXRlIGFsbCB0aGUgcnVsZXMuXFxuXCYjMzQ7KTtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2V0aHRvb2wuYy00NjQtXHQvKiBhcHBseSBtYXNrIGFuZCBjb21wdXRlL3N0b3JlIGhhc2ggKi9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfZXRodG9vbC5jOjQ2NTpcdHR4Z2JlX2F0cl9jb21wdXRlX3BlcmZlY3RfaGFzaChcdTAwMjZpbnB1dC1cdTAwM2VmaWx0ZXIsIFx1MDAyNm1hc2spO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9ldGh0b29sLmMtNDY2LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9ldGh0b29sLmMtNDY3LVx0LyogY2hlY2sgaWYgbmV3IGVudHJ5IGRvZXMgbm90IGV4aXN0IG9uIGZpbHRlciBsaXN0ICovXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2V0aHRvb2wuYzo0Njg6XHRpZiAodHhnYmVfbWF0Y2hfZXRodG9vbF9mZGlyX2VudHJ5KHR4Z2JlLCBpbnB1dCkpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2V0aHRvb2wuYy00NjktXHRcdGdvdG8gZXJyX3VubG9jaztcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2V0aHRvb2wuYy00NzUtXHRpZiAobmV0aWZfcnVubmluZyh3eC1cdTAwM2VuZXRkZXYpKSB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2V0aHRvb2wuYzo0NzY6XHRcdGVyciA9IHR4Z2JlX2ZkaXJfd3JpdGVfcGVyZmVjdF9maWx0ZXIod3gsIFx1MDAyNmlucHV0LVx1MDAzZWZpbHRlcixcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfZXRodG9vbC5jLTQ3Ny1cdFx0XHRcdFx0XHQgICAgICBpbnB1dC1cdTAwM2Vzd19pZHgsIHF1ZXVlKTtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2V0aHRvb2wuYy00ODEtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2V0aHRvb2wuYzo0ODI6XHR0eGdiZV91cGRhdGVfZXRodG9vbF9mZGlyX2VudHJ5KHR4Z2JlLCBpbnB1dCwgaW5wdXQtXHUwMDNlc3dfaWR4KTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfZXRodG9vbC5jLTQ4My1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfZXRodG9vbC5jOjQ4NDpcdHNwaW5fdW5sb2NrKFx1MDAyNnR4Z2JlLVx1MDAzZWZkaXJfcGVyZmVjdF9sb2NrKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfZXRodG9vbC5jLTQ4NS1cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2V0aHRvb2wuYy00ODctZXJyX3VubG9jazpcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfZXRodG9vbC5jOjQ4ODpcdHNwaW5fdW5sb2NrKFx1MDAyNnR4Z2JlLVx1MDAzZWZkaXJfcGVyZmVjdF9sb2NrKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfZXRodG9vbC5jLTQ4OS1lcnJfb3V0OlxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfZXRodG9vbC5jLTQ5My1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfZXRodG9vbC5jOjQ5NDpzdGF0aWMgaW50IHR4Z2JlX2RlbF9ldGh0b29sX2ZkaXJfZW50cnkoc3RydWN0IHR4Z2JlICp0eGdiZSxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfZXRodG9vbC5jLTQ5NS1cdFx0XHRcdFx0c3RydWN0IGV0aHRvb2xfcnhuZmMgKmNtZClcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2V0aHRvb2wuYy01MDAtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2V0aHRvb2wuYzo1MDE6XHRzcGluX2xvY2soXHUwMDI2dHhnYmUtXHUwMDNlZmRpcl9wZXJmZWN0X2xvY2spO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9ldGh0b29sLmM6NTAyOlx0ZXJyID0gdHhnYmVfdXBkYXRlX2V0aHRvb2xfZmRpcl9lbnRyeSh0eGdiZSwgTlVMTCwgZnNwLVx1MDAzZWxvY2F0aW9uKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfZXRodG9vbC5jOjUwMzpcdHNwaW5fdW5sb2NrKFx1MDAyNnR4Z2JlLVx1MDAzZWZkaXJfcGVyZmVjdF9sb2NrKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfZXRodG9vbC5jLTUwNC1cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2V0aHRvb2wuYy01MDctXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2V0aHRvb2wuYzo1MDg6c3RhdGljIGludCB0eGdiZV9zZXRfcnhuZmMoc3RydWN0IG5ldF9kZXZpY2UgKmRldiwgc3RydWN0IGV0aHRvb2xfcnhuZmMgKmNtZClcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfZXRodG9vbC5jLTUwOS17XG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2V0aHRvb2wuYy01MTAtXHRzdHJ1Y3Qgd3ggKnd4ID0gbmV0ZGV2X3ByaXYoZGV2KTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfZXRodG9vbC5jOjUxMTpcdHN0cnVjdCB0eGdiZSAqdHhnYmUgPSB3eC1cdTAwM2Vwcml2O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9ldGh0b29sLmMtNTEyLVx0aW50IHJldCA9IC1FT1BOT1RTVVBQO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfZXRodG9vbC5jLTUxNS1cdGNhc2UgRVRIVE9PTF9TUlhDTFNSTElOUzpcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfZXRodG9vbC5jOjUxNjpcdFx0cmV0ID0gdHhnYmVfYWRkX2V0aHRvb2xfZmRpcl9lbnRyeSh0eGdiZSwgY21kKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfZXRodG9vbC5jLTUxNy1cdFx0YnJlYWs7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2V0aHRvb2wuYy01MTgtXHRjYXNlIEVUSFRPT0xfU1JYQ0xTUkxERUw6XG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2V0aHRvb2wuYzo1MTk6XHRcdHJldCA9IHR4Z2JlX2RlbF9ldGh0b29sX2ZkaXJfZW50cnkodHhnYmUsIGNtZCk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2V0aHRvb2wuYy01MjAtXHRcdGJyZWFrO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfZXRodG9vbC5jPTUyOD1zdGF0aWMgaW50XG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2V0aHRvb2wuYzo1Mjk6dHhnYmVfZ2V0X21vZHVsZV9lZXByb21fYnlfcGFnZShzdHJ1Y3QgbmV0X2RldmljZSAqbmV0ZGV2LFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9ldGh0b29sLmMtNTMwLVx0XHRcdFx0Y29uc3Qgc3RydWN0IGV0aHRvb2xfbW9kdWxlX2VlcHJvbSAqcGFnZV9kYXRhLFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfZXRodG9vbC5jLTUzMy1cdHN0cnVjdCB3eCAqd3ggPSBuZXRkZXZfcHJpdihuZXRkZXYpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9ldGh0b29sLmM6NTM0Olx0c3RydWN0IHR4Z2JlX2hpY19pMmNfcmVhZCBidWZmZXI7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2V0aHRvb2wuYy01MzUtXHRpbnQgZXJyO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfZXRodG9vbC5jLTU0NS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfZXRodG9vbC5jOjU0NjpcdGVyciA9IHR4Z2JlX3JlYWRfZWVwcm9tX2hvc3RpZih3eCwgXHUwMDI2YnVmZmVyLCBwYWdlX2RhdGEtXHUwMDNlbGVuZ3RoLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9ldGh0b29sLmMtNTQ3LVx0XHRcdFx0ICAgICAgIHBhZ2VfZGF0YS1cdTAwM2VkYXRhKTtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2V0aHRvb2wuYy01NTUtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2V0aHRvb2wuYzo1NTY6c3RhdGljIGNvbnN0IHN0cnVjdCBldGh0b29sX29wcyB0eGdiZV9ldGh0b29sX29wcyA9IHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfZXRodG9vbC5jLTU1Ny1cdC5zdXBwb3J0ZWRfY29hbGVzY2VfcGFyYW1zID0gRVRIVE9PTF9DT0FMRVNDRV9VU0VDUyB8XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9ldGh0b29sLmMtNTYyLVx0LmdldF9saW5rXHRcdD0gZXRodG9vbF9vcF9nZXRfbGluayxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfZXRodG9vbC5jOjU2MzpcdC5nZXRfbGlua19rc2V0dGluZ3NcdD0gdHhnYmVfZ2V0X2xpbmtfa3NldHRpbmdzLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9ldGh0b29sLmMtNTY0LVx0LnNldF9saW5rX2tzZXR0aW5nc1x0PSB3eF9zZXRfbGlua19rc2V0dGluZ3MsXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9ldGh0b29sLmMtNTcyLVx0LmdldF9yaW5ncGFyYW1cdFx0PSB3eF9nZXRfcmluZ3BhcmFtLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9ldGh0b29sLmM6NTczOlx0LnNldF9yaW5ncGFyYW1cdFx0PSB0eGdiZV9zZXRfcmluZ3BhcmFtLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9ldGh0b29sLmMtNTc0LVx0LmdldF9jb2FsZXNjZVx0XHQ9IHd4X2dldF9jb2FsZXNjZSxcbi0tXG5cbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD41LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8yNCAwNzo1NjwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAxOTQ5OQoJCQkJCQkJb3V0cHV0OiAzOQoJCQkJCQkJdGhvdWdodHM6IDQyCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Pa2F5LCBoZXJlJiMzOTtzIG15IHRha2Ugb24gdGhvc2UgdGhvdWdodHMsIGZyYW1lZCBhcyBteSBvd246CgoqKkludmVzdGlnYXRpbmcgdGhlIFdhbmd4dW4gdHhnYmUgRHJpdmVyKioKCkFscmlnaHQsIHRoZSBvdXRwdXQmIzM5O3MgaW5kaWNhdGluZyBgdHhnYmVgIGlzIGEgZHJpdmVyIHJlbGF0ZWQgdG8gV2FuZ3h1biBoYXJkd2FyZS4gTXkgZmlyc3QgaW5zdGluY3QsIGFzIGFsd2F5cywgaXMgdG8gZGl2ZSBpbnRvIHRoZSBLY29uZmlnLiBJIG5lZWQgdG8gdW5kZXJzdGFuZCAqZXhhY3RseSogd2hhdCBraW5kIG9mIGhhcmR3YXJlIHRoaXMgZHJpdmVyIHN1cHBvcnRzLiBJcyBpdCBhIHNwZWNpZmljIE5JQz8gQSBzd2l0Y2g/IEtub3dpbmcgdGhlIGhhcmR3YXJlIHRhcmdldCBpcyBjcml0aWNhbCB0byBhc3Nlc3MgdGhlIGRyaXZlciYjMzk7cyBwdXJwb3NlLCBjYXBhYmlsaXRpZXMsIGFuZCBkZXBlbmRlbmNpZXMuIFRoZSBLY29uZmlnIGZpbGUgaXMgdGhlIGZpcnN0IHBsYWNlIEkmIzM5O2xsIGxvb2suIEl0JiMzOTtsbCBnaXZlIG1lIHRoZSBjb25maWd1cmF0aW9uIG9wdGlvbnMsIHRoZSBkZXBlbmRlbmNpZXMsIG1heWJlIGV2ZW4gc29tZSBjbHVlcyBhYm91dCB0aGUgdW5kZXJseWluZyBoYXJkd2FyZSBhcmNoaXRlY3R1cmUsIGFuZCB1bHRpbWF0ZWx5LCBhIG11Y2ggYmV0dGVyIHVuZGVyc3RhbmRpbmcgb2Ygd2hhdCB3ZSYjMzk7cmUgZGVhbGluZyB3aXRoIGhlcmUuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Ni8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMjQgMDc6NTc8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPkVycm9yOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bm8gbWF0Y2hlczwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtjb25maWcgVFhHQkUmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtkcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlLyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtlcnJvciYjMzQ7OiAmIzM0O25vIG1hdGNoZXMmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Ny8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMjQgMDc6NTc8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMTk3NTYKCQkJCQkJCW91dHB1dDogMzUKCQkJCQkJCXRob3VnaHRzOiAyMgoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+SGVyZSYjMzk7cyBteSBhdHRlbXB0IGF0IHN1bW1hcml6aW5nIHRoZSB0aG91Z2h0IHByb2Nlc3MsIHRhaWxvcmVkIGZvciBhbiBleHBlcnQgYXVkaWVuY2U6CgoqKktjb25maWcgTG9jYXRpb24gLSBRdWljayBBc3Nlc3NtZW50KioKCk9rYXksIHNvIEkgbmVlZCB0byBmaW5kIHRoZSBLY29uZmlnIGZpbGUgcmVsYXRlZCB0byBhIHNwZWNpZmljIEV0aGVybmV0IGRyaXZlciwgbGlrZWx5IGZvciBhIFdhbmd4dW4gZGV2aWNlLiBCYXNlZCBvbiBlc3RhYmxpc2hlZCBrZXJuZWwgY29kaW5nIGNvbnZlbnRpb25zLCBteSBmaXJzdCBpbnN0aW5jdCBpcyB0byBjaGVjayB0aGUgYGRyaXZlcnMvbmV0L2V0aGVybmV0YCBkaXJlY3RvcnksIHdoaWNoIGlzIHRoZSBtb3N0IGxvZ2ljYWwgcGxhY2UuIFNpbmNlIGl0JiMzOTtzIGEgdmVuZG9yLXNwZWNpZmljIGRyaXZlciwgSSYjMzk7ZCBleHBlY3QgYSB2ZW5kb3Itc3BlY2lmaWMgc3ViZGlyZWN0b3J5LiAmIzM0O1dhbmd4dW4mIzM0OyBpcyB0aGUgdmVuZG9yLCBzbyB0aGUgZmlsZSBpcyAqcHJvYmFibHkqIGluIGBkcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL0tjb25maWdgLiBUaGF0JiMzOTtzIHdoZXJlIEkmIzM5O2Qgc3RhcnQuIEl0JiMzOTtzIHRoZSBtb3N0IGNvbW1vbiBhbmQgaW50dWl0aXZlIGxvY2F0aW9uLCBhbGlnbmluZyB3aXRoIHRoZSBnZW5lcmFsIG9yZ2FuaXphdGlvbiBwcmluY2lwbGVzLiBUaGVyZSYjMzk7cyBhIGdvb2QgY2hhbmNlIGl0JiMzOTtzIHRoZXJlLCBpZiBub3QgSSBjYW4gZ28gd2l0aCBhIGBmaW5kYCBjb21tYW5kIHRvIG5hcnJvdyBpdCBkb3duLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjgvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzI0IDA3OjU3PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O2NvbmZpZyBUWEdCRSYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vS2NvbmZpZz0yOD1jb25maWcgTkdCRVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vS2NvbmZpZy00Mi1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vS2NvbmZpZzo0Mzpjb25maWcgVFhHQkVcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vS2NvbmZpZy00NC1cdHRyaXN0YXRlIFwmIzM0O1dhbmd4dW4oUikgMTAvMjUvNDBHYkUgUENJIEV4cHJlc3MgYWRhcHRlcnMgc3VwcG9ydFwmIzM0O1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vS2NvbmZpZy02Ni1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vS2NvbmZpZzo2Nzpjb25maWcgVFhHQkVWRlxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi9LY29uZmlnLTY4LVx0dHJpc3RhdGUgXCYjMzQ7V2FuZ3h1bihSKSAxMC8yNS80MEcgVmlydHVhbCBGdW5jdGlvbiBFdGhlcm5ldCBzdXBwb3J0XCYjMzQ7XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+OS8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMjQgMDc6NTc8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMjAyMTEKCQkJCQkJCW91dHB1dDogMzMKCQkJCQkJCXRob3VnaHRzOiAzMDkKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqQW5hbHl6aW5nIHRoZSBQQ0kgRXhwcmVzcyBBZGFwdGVyIERyaXZlciBQYXRjaCoqCgpPa2F5LCBzbyB0aGUgcHJvbXB0IG1lbnRpb25zICYjMzQ7V2FuZ3h1bihSKSAxMC8yNS80MEdiRSBQQ0kgRXhwcmVzcyBhZGFwdGVycyYjMzQ7IOKAkyB0aGlzIGlzIGEgcGh5c2ljYWwgUENJZSBoYXJkd2FyZSBkcml2ZXIsIHNwZWNpZmljYWxseSBgdHhnYmVgLiBUaGUgcHJvbXB0IGV4cGxpY2l0bHkgd2FudHMgbWUgdG8gcmV0dXJuIGBXb3J0aEZ1enppbmc9ZmFsc2VgIGlmIHRoZSBwYXRjaCBpbnZvbHZlcyBjb2RlIHdpdGhpbiB2ZW5kb3Itc3BlY2lmaWMgUENJZSBkcml2ZXJzIHRoYXQgcmVxdWlyZSBwaHlzaWNhbCBoYXJkd2FyZSBhbmQgYXJlbiYjMzk7dCBlbXVsYXRlZCBpbiBzdGFuZGFyZCBRRU1VLgoKTXkgaW1tZWRpYXRlIHRob3VnaHQgaXMsICYjMzQ7SXMgYHR4Z2JlYCBvbmUgb2YgdGhvc2U/JiMzNDsgQW5kIHllcywgaXQgY2xlYXJseSAqaXMqIGEgMTAvMjUvNDBHYkUgUENJZSBhZGFwdGVyIGRyaXZlci4gVGhlIGtleSBxdWVzdGlvbiB0aGVuIGlzLCBkb2VzIHN0YW5kYXJkIFFFTVUgZW11bGF0ZSBpdD8gQWJzb2x1dGVseSBub3QuIFFFTVUgaGFuZGxlcyBhIHJhbmdlIG9mIG5ldHdvcmsgY2FyZHMgbGlrZSBlMTAwMCwgaWdiLCB2aXJ0aW8tbmV0LCBldGMuLCBidXQgYFdhbmd4dW4gVFhHQkVgIGlzbiYjMzk7dCBvbiB0aGF0IGxpc3QuIEkgZXZlbiBkb3VibGUtY2hlY2tlZCB0aGUgdXN1YWwgc3VzcGVjdHMgZm9yIFFFTVUgZW11bGF0aW9uLgoKVGhlcmVmb3JlLCBiZWNhdXNlIHRoaXMgZHJpdmVyIHJlcXVpcmVzIHBoeXNpY2FsIGhhcmR3YXJlLCBhbmQgaXMgKm5vdCogZW11bGF0ZWQgaW4gc3RhbmRhcmQgUUVNVSwgdGhpcyBwYXJ0aWN1bGFyIGNvZGUgcGF0aCBpcyB1bnJlYWNoYWJsZSBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBHb29nbGUgQ29tcHV0ZSBFbmdpbmUgb3IgUUVNVS4gR2l2ZW4gdGhlIHByb21wdCYjMzk7cyBjb25kaXRpb24sIEkgc2hvdWxkIHJldHVybiBgV29ydGhGdXp6aW5nPWZhbHNlYC4KCkhvd2V2ZXIsIGJlZm9yZSBJIGRlZmluaXRpdmVseSBjb21taXQsIEkgc2hvdWxkIGRvdWJsZS1jaGVjayBhbmQgbWFrZSBzdXJlIHRoYXQgYGxpYnd4YCBpc24mIzM5O3QgdXNlZCBieSBzb21ldGhpbmcgZWxzZS4uLiBqdXN0IHRvIGJlIGNvbXBsZXRlbHkgY2VydGFpbi4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMC8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMjQgMDc6NTc8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7bGlid3gmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtkcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuLyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtkcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL01ha2VmaWxlLTUtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL01ha2VmaWxlOjY6b2JqLSQoQ09ORklHX0xJQldYKSAmIzQzOz0gbGlid3gvXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL01ha2VmaWxlLTctb2JqLSQoQ09ORklHX1RYR0JFKSAmIzQzOz0gdHhnYmUvXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi9saWJ3eC9NYWtlZmlsZS00LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi9saWJ3eC9NYWtlZmlsZTo1Om9iai0kKENPTkZJR19MSUJXWCkgJiM0Mzs9IGxpYnd4Lm9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vbGlid3gvTWFrZWZpbGUtNi1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vbGlid3gvTWFrZWZpbGU6NzpsaWJ3eC1vYmpzIDo9IHd4X2h3Lm8gd3hfbGliLm8gd3hfZXRodG9vbC5vIHd4X3B0cC5vIHd4X21ieC5vIHd4X3NyaW92Lm9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vbGlid3gvTWFrZWZpbGU6ODpsaWJ3eC1vYmpzICYjNDM7PSB3eF92Zi5vIHd4X3ZmX2xpYi5vIHd4X3ZmX2NvbW1vbi5vXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi9uZ2JlL25nYmVfZXRodG9vbC5jLTctXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL25nYmUvbmdiZV9ldGh0b29sLmM6ODojaW5jbHVkZSBcJiMzNDsuLi9saWJ3eC93eF9ldGh0b29sLmhcJiMzNDtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vbmdiZS9uZ2JlX2V0aHRvb2wuYzo5OiNpbmNsdWRlIFwmIzM0Oy4uL2xpYnd4L3d4X3R5cGUuaFwmIzM0O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi9uZ2JlL25nYmVfZXRodG9vbC5jOjEwOiNpbmNsdWRlIFwmIzM0Oy4uL2xpYnd4L3d4X2xpYi5oXCYjMzQ7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL25nYmUvbmdiZV9ldGh0b29sLmM6MTE6I2luY2x1ZGUgXCYjMzQ7Li4vbGlid3gvd3hfaHcuaFwmIzM0O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi9uZ2JlL25nYmVfZXRodG9vbC5jLTEyLSNpbmNsdWRlIFwmIzM0O25nYmVfZXRodG9vbC5oXCYjMzQ7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi9uZ2JlL25nYmVfaHcuYy03LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi9uZ2JlL25nYmVfaHcuYzo4OiNpbmNsdWRlIFwmIzM0Oy4uL2xpYnd4L3d4X3R5cGUuaFwmIzM0O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi9uZ2JlL25nYmVfaHcuYzo5OiNpbmNsdWRlIFwmIzM0Oy4uL2xpYnd4L3d4X2h3LmhcJiMzNDtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vbmdiZS9uZ2JlX2h3LmMtMTAtI2luY2x1ZGUgXCYjMzQ7bmdiZV90eXBlLmhcJiMzNDtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL25nYmUvbmdiZV9tYWluLmMtMTMtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL25nYmUvbmdiZV9tYWluLmM6MTQ6I2luY2x1ZGUgXCYjMzQ7Li4vbGlid3gvd3hfdHlwZS5oXCYjMzQ7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL25nYmUvbmdiZV9tYWluLmM6MTU6I2luY2x1ZGUgXCYjMzQ7Li4vbGlid3gvd3hfaHcuaFwmIzM0O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi9uZ2JlL25nYmVfbWFpbi5jOjE2OiNpbmNsdWRlIFwmIzM0Oy4uL2xpYnd4L3d4X2xpYi5oXCYjMzQ7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL25nYmUvbmdiZV9tYWluLmM6MTc6I2luY2x1ZGUgXCYjMzQ7Li4vbGlid3gvd3hfcHRwLmhcJiMzNDtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vbmdiZS9uZ2JlX21haW4uYzoxODojaW5jbHVkZSBcJiMzNDsuLi9saWJ3eC93eF9tYnguaFwmIzM0O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi9uZ2JlL25nYmVfbWFpbi5jOjE5OiNpbmNsdWRlIFwmIzM0Oy4uL2xpYnd4L3d4X3NyaW92LmhcJiMzNDtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vbmdiZS9uZ2JlX21haW4uYy0yMC0jaW5jbHVkZSBcJiMzNDtuZ2JlX3R5cGUuaFwmIzM0O1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vbmdiZS9uZ2JlX21kaW8uYy04LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi9uZ2JlL25nYmVfbWRpby5jOjk6I2luY2x1ZGUgXCYjMzQ7Li4vbGlid3gvd3hfdHlwZS5oXCYjMzQ7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL25nYmUvbmdiZV9tZGlvLmM6MTA6I2luY2x1ZGUgXCYjMzQ7Li4vbGlid3gvd3hfcHRwLmhcJiMzNDtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vbmdiZS9uZ2JlX21kaW8uYzoxMTojaW5jbHVkZSBcJiMzNDsuLi9saWJ3eC93eF9ody5oXCYjMzQ7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL25nYmUvbmdiZV9tZGlvLmM6MTI6I2luY2x1ZGUgXCYjMzQ7Li4vbGlid3gvd3hfc3Jpb3YuaFwmIzM0O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi9uZ2JlL25nYmVfbWRpby5jLTEzLSNpbmNsdWRlIFwmIzM0O25nYmVfdHlwZS5oXCYjMzQ7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi9uZ2JldmYvbmdiZXZmX21haW4uYy0xMC1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vbmdiZXZmL25nYmV2Zl9tYWluLmM6MTE6I2luY2x1ZGUgXCYjMzQ7Li4vbGlid3gvd3hfdHlwZS5oXCYjMzQ7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL25nYmV2Zi9uZ2JldmZfbWFpbi5jOjEyOiNpbmNsdWRlIFwmIzM0Oy4uL2xpYnd4L3d4X2h3LmhcJiMzNDtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vbmdiZXZmL25nYmV2Zl9tYWluLmM6MTM6I2luY2x1ZGUgXCYjMzQ7Li4vbGlid3gvd3hfbGliLmhcJiMzNDtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vbmdiZXZmL25nYmV2Zl9tYWluLmM6MTQ6I2luY2x1ZGUgXCYjMzQ7Li4vbGlid3gvd3hfbWJ4LmhcJiMzNDtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vbmdiZXZmL25nYmV2Zl9tYWluLmM6MTU6I2luY2x1ZGUgXCYjMzQ7Li4vbGlid3gvd3hfdmYuaFwmIzM0O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi9uZ2JldmYvbmdiZXZmX21haW4uYzoxNjojaW5jbHVkZSBcJiMzNDsuLi9saWJ3eC93eF92Zl9jb21tb24uaFwmIzM0O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi9uZ2JldmYvbmdiZXZmX21haW4uYzoxNzojaW5jbHVkZSBcJiMzNDsuLi9saWJ3eC93eF9ldGh0b29sLmhcJiMzNDtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vbmdiZXZmL25nYmV2Zl9tYWluLmMtMTgtI2luY2x1ZGUgXCYjMzQ7bmdiZXZmX3R5cGUuaFwmIzM0O1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfYW1sLmMtOC1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfYW1sLmM6OTojaW5jbHVkZSBcJiMzNDsuLi9saWJ3eC93eF90eXBlLmhcJiMzNDtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfYW1sLmM6MTA6I2luY2x1ZGUgXCYjMzQ7Li4vbGlid3gvd3hfbGliLmhcJiMzNDtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfYW1sLmM6MTE6I2luY2x1ZGUgXCYjMzQ7Li4vbGlid3gvd3hfcHRwLmhcJiMzNDtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfYW1sLmM6MTI6I2luY2x1ZGUgXCYjMzQ7Li4vbGlid3gvd3hfaHcuaFwmIzM0O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9hbWwuYzoxMzojaW5jbHVkZSBcJiMzNDsuLi9saWJ3eC93eF9zcmlvdi5oXCYjMzQ7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2FtbC5jLTE0LSNpbmNsdWRlIFwmIzM0O3R4Z2JlX3R5cGUuaFwmIzM0O1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfZXRodG9vbC5jLTctXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2V0aHRvb2wuYzo4OiNpbmNsdWRlIFwmIzM0Oy4uL2xpYnd4L3d4X2V0aHRvb2wuaFwmIzM0O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9ldGh0b29sLmM6OTojaW5jbHVkZSBcJiMzNDsuLi9saWJ3eC93eF90eXBlLmhcJiMzNDtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfZXRodG9vbC5jOjEwOiNpbmNsdWRlIFwmIzM0Oy4uL2xpYnd4L3d4X2xpYi5oXCYjMzQ7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2V0aHRvb2wuYy0xMS0jaW5jbHVkZSBcJiMzNDt0eGdiZV90eXBlLmhcJiMzNDtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2ZkaXIuYy03LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9mZGlyLmM6ODojaW5jbHVkZSBcJiMzNDsuLi9saWJ3eC93eF90eXBlLmhcJiMzNDtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfZmRpci5jOjk6I2luY2x1ZGUgXCYjMzQ7Li4vbGlid3gvd3hfbGliLmhcJiMzNDtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfZmRpci5jOjEwOiNpbmNsdWRlIFwmIzM0Oy4uL2xpYnd4L3d4X2h3LmhcJiMzNDtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfZmRpci5jLTExLSNpbmNsdWRlIFwmIzM0O3R4Z2JlX3R5cGUuaFwmIzM0O1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfaHcuYy0xMC1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfaHcuYzoxMTojaW5jbHVkZSBcJiMzNDsuLi9saWJ3eC93eF90eXBlLmhcJiMzNDtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfaHcuYzoxMjojaW5jbHVkZSBcJiMzNDsuLi9saWJ3eC93eF9ody5oXCYjMzQ7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2h3LmMtMTMtI2luY2x1ZGUgXCYjMzQ7dHhnYmVfdHlwZS5oXCYjMzQ7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9pcnEuYy02LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9pcnEuYzo3OiNpbmNsdWRlIFwmIzM0Oy4uL2xpYnd4L3d4X3R5cGUuaFwmIzM0O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9pcnEuYzo4OiNpbmNsdWRlIFwmIzM0Oy4uL2xpYnd4L3d4X2xpYi5oXCYjMzQ7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2lycS5jOjk6I2luY2x1ZGUgXCYjMzQ7Li4vbGlid3gvd3hfcHRwLmhcJiMzNDtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfaXJxLmM6MTA6I2luY2x1ZGUgXCYjMzQ7Li4vbGlid3gvd3hfaHcuaFwmIzM0O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9pcnEuYzoxMTojaW5jbHVkZSBcJiMzNDsuLi9saWJ3eC93eF9zcmlvdi5oXCYjMzQ7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2lycS5jLTEyLSNpbmNsdWRlIFwmIzM0O3R4Z2JlX3R5cGUuaFwmIzM0O1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfbWFpbi5jLTE0LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9tYWluLmM6MTU6I2luY2x1ZGUgXCYjMzQ7Li4vbGlid3gvd3hfdHlwZS5oXCYjMzQ7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX21haW4uYzoxNjojaW5jbHVkZSBcJiMzNDsuLi9saWJ3eC93eF9saWIuaFwmIzM0O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9tYWluLmM6MTc6I2luY2x1ZGUgXCYjMzQ7Li4vbGlid3gvd3hfcHRwLmhcJiMzNDtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfbWFpbi5jOjE4OiNpbmNsdWRlIFwmIzM0Oy4uL2xpYnd4L3d4X2h3LmhcJiMzNDtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfbWFpbi5jOjE5OiNpbmNsdWRlIFwmIzM0Oy4uL2xpYnd4L3d4X21ieC5oXCYjMzQ7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX21haW4uYzoyMDojaW5jbHVkZSBcJiMzNDsuLi9saWJ3eC93eF9zcmlvdi5oXCYjMzQ7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX21haW4uYy0yMS0jaW5jbHVkZSBcJiMzNDt0eGdiZV90eXBlLmhcJiMzNDtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX3BoeS5jLTE1LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9waHkuYzoxNjojaW5jbHVkZSBcJiMzNDsuLi9saWJ3eC93eF90eXBlLmhcJiMzNDtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfcGh5LmM6MTc6I2luY2x1ZGUgXCYjMzQ7Li4vbGlid3gvd3hfbGliLmhcJiMzNDtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfcGh5LmM6MTg6I2luY2x1ZGUgXCYjMzQ7Li4vbGlid3gvd3hfcHRwLmhcJiMzNDtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfcGh5LmM6MTk6I2luY2x1ZGUgXCYjMzQ7Li4vbGlid3gvd3hfc3Jpb3YuaFwmIzM0O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9waHkuYzoyMDojaW5jbHVkZSBcJiMzNDsuLi9saWJ3eC93eF9tYnguaFwmIzM0O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9waHkuYzoyMTojaW5jbHVkZSBcJiMzNDsuLi9saWJ3eC93eF9ody5oXCYjMzQ7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX3BoeS5jLTIyLSNpbmNsdWRlIFwmIzM0O3R4Z2JlX3R5cGUuaFwmIzM0O1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfdHlwZS5oLTktI2luY2x1ZGUgXHUwMDNjbGludXgvcGh5LmhcdTAwM2VcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfdHlwZS5oOjEwOiNpbmNsdWRlIFwmIzM0Oy4uL2xpYnd4L3d4X3R5cGUuaFwmIzM0O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV90eXBlLmgtMTEtXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZXZmL3R4Z2JldmZfbWFpbi5jLTEwLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZXZmL3R4Z2JldmZfbWFpbi5jOjExOiNpbmNsdWRlIFwmIzM0Oy4uL2xpYnd4L3d4X3R5cGUuaFwmIzM0O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZXZmL3R4Z2JldmZfbWFpbi5jOjEyOiNpbmNsdWRlIFwmIzM0Oy4uL2xpYnd4L3d4X2h3LmhcJiMzNDtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmV2Zi90eGdiZXZmX21haW4uYzoxMzojaW5jbHVkZSBcJiMzNDsuLi9saWJ3eC93eF9saWIuaFwmIzM0O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZXZmL3R4Z2JldmZfbWFpbi5jOjE0OiNpbmNsdWRlIFwmIzM0Oy4uL2xpYnd4L3d4X21ieC5oXCYjMzQ7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JldmYvdHhnYmV2Zl9tYWluLmM6MTU6I2luY2x1ZGUgXCYjMzQ7Li4vbGlid3gvd3hfdmYuaFwmIzM0O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZXZmL3R4Z2JldmZfbWFpbi5jOjE2OiNpbmNsdWRlIFwmIzM0Oy4uL2xpYnd4L3d4X3ZmX2NvbW1vbi5oXCYjMzQ7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JldmYvdHhnYmV2Zl9tYWluLmM6MTc6I2luY2x1ZGUgXCYjMzQ7Li4vbGlid3gvd3hfZXRodG9vbC5oXCYjMzQ7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JldmYvdHhnYmV2Zl9tYWluLmMtMTgtI2luY2x1ZGUgXCYjMzQ7dHhnYmV2Zl90eXBlLmhcJiMzNDtcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMS8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMjQgMDc6NTc8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMjQzODIKCQkJCQkJCW91dHB1dDogOTMKCQkJCQkJCXRob3VnaHRzOiA3NAoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipVbnJlYWNoYWJsZSBDb2RlIERldGVjdGlvbiBmb3IgV2FuZ3h1biBQQ0llIEFkYXB0ZXJzKioKCk9rYXksIHNvIEkmIzM5O3ZlIGJlZW4gbG9va2luZyBhdCB0aGlzIGNvZGUgYW5kIEkmIzM5O3ZlIGNvbWUgdG8gYSBwcmV0dHkgZGVmaW5pdGl2ZSBjb25jbHVzaW9uLiBUaGUgYGxpYnd4YCBsaWJyYXJ5IGlzIGNsZWFybHkgbGlua2VkIGFuZCB1c2VkIGJ5IGEgY2x1c3RlciBvZiBXYW5neHVuIFBDSWUgYWRhcHRlciBkcml2ZXJzIOKAkyBgbmdiZWAsIGBuZ2JldmZgLCBgdHhnYmVgLCBhbmQgYHR4Z2JldmZgLiBUaGF0JiMzOTtzIHRoZSBzZXR1cC4gSG93ZXZlciwgbm9uZSBvZiB0aGVzZSBzcGVjaWZpYyBXYW5neHVuIFBDSWUgYWRhcHRlcnMgYXJlLCBhcyBmYXIgYXMgSSBjYW4gdGVsbCwgZW11bGF0ZWQgd2l0aGluIGEgUUVNVSBlbnZpcm9ubWVudC4gVGhpcyBpcyB0aGUgY3JpdGljYWwgcGllY2Ugb2YgaW5mb3JtYXRpb24uIFNpbmNlIHRoZSB1bmRlcmx5aW5nIGhhcmR3YXJlIHRoYXQgdGhpcyBjb2RlIGludGVyYWN0cyB3aXRoIGRvZXNuJiMzOTt0IGV4aXN0IGluIGEgdmlydHVhbGl6ZWQgY29udGV4dCwgYW55IGNvZGUgcGF0aCBzcGVjaWZpY2FsbHkgcmVsYXRlZCB0byBpdCBiZWNvbWVzLCBlZmZlY3RpdmVseSwgdW5yZWFjaGFibGUgZHVyaW5nIGZ1enppbmcgb3IgdGVzdGluZyB3aXRoaW4gUUVNVS4gR2l2ZW4gbXkgZXhwZXJpZW5jZSwgcHVyc3VpbmcgdGhpcyBmdXJ0aGVyIHdvdWxkIGJlIGEgd2FzdGUgb2YgcmVzb3VyY2VzLiBUaGVyZWZvcmUsIEkgd2lsbCByZXR1cm4gYFdvcnRoRnV6emluZz1mYWxzZWAuIEl04oCZcyBzaW1wbHkgbm90IGEgd29ydGh3aGlsZSB0YXJnZXQgaW4gdGhlIGN1cnJlbnQgZW52aXJvbm1lbnQuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTIvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzI0IDA3OjU3PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+c2V0LXJlc3VsdHM8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogW10sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogW10sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggbW9kaWZpZXMgY29kZSBpbiB0aGUgV2FuZ3h1biBUWEdCRSBhbmQgTkdCRSBldGhlcm5ldCBkcml2ZXJzLiBUaGVzZSBhcmUgZHJpdmVycyBmb3IgcGh5c2ljYWwgUENJZSBoYXJkd2FyZSBhZGFwdGVycyB0aGF0IGFyZSBub3QgZW11bGF0ZWQgaW4gc3RhbmRhcmQgdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgUUVNVSBvciBHQ0UuIFRoZXJlZm9yZSwgdGhlIG1vZGlmaWVkIGNvZGUgcGF0aHMgY2Fubm90IGJlIHJlYWNoZWQgb3IgZnV6emVkIGluIHRoZXNlIGVudmlyb25tZW50cy4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiBmYWxzZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBudWxsLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFtdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIG1vZGlmaWVzIGNvZGUgaW4gdGhlIFdhbmd4dW4gVFhHQkUgYW5kIE5HQkUgZXRoZXJuZXQgZHJpdmVycy4gVGhlc2UgYXJlIGRyaXZlcnMgZm9yIHBoeXNpY2FsIFBDSWUgaGFyZHdhcmUgYWRhcHRlcnMgdGhhdCBhcmUgbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIFFFTVUgb3IgR0NFLiBUaGVyZWZvcmUsIHRoZSBtb2RpZmllZCBjb2RlIHBhdGhzIGNhbm5vdCBiZSByZWFjaGVkIG9yIGZ1enplZCBpbiB0aGVzZSBlbnZpcm9ubWVudHMuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogZmFsc2UKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEzLzE8L3RkPgoJCQk8dGQ+MjAyNi8wOC8yNCAwNzo1NzwvdGQ+CgkJCTx0ZD5hY3Rpb248L3RkPgoJCQk8dGQ+SWY8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiBmYWxzZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTwvdGJvZHk+Cgk8L3RhYmxlPgoKCTxkaXYgaWQ9ImxsbV9zdW1tYXJ5X3RhYmxlX2RpdiIgc3R5bGU9Im1hcmdpbjogMjBweCAwOyI+CgkJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQkJPGNhcHRpb24+TExNIENhbGxzIFN1bW1hcnk6PC9jYXB0aW9uPgoJCQk8dGhlYWQ+CgkJCQk8dHI+CgkJCQkJPHRoPlRvdGFsIENhbGxzPC90aD4KCQkJCQk8dGg+VG90YWwgVG9rZW5zPC90aD4KCQkJCQk8dGg+QXZnIFRva2VuczwvdGg+CgkJCQkJPHRoPlRvdGFsIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQkJPHRoPkF2ZyBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJPC90cj4KCQkJPC90aGVhZD4KCQkJPHRib2R5IGlkPSJsbG1fc3VtbWFyeV9zdGF0c19ib2R5Ij48L3Rib2R5PgoJCTwvdGFibGU+Cgk8L2Rpdj4KCgk8ZGl2IGlkPSJ0b29sX3N1bW1hcnlfdGFibGVfZGl2IiBzdHlsZT0ibWFyZ2luOiAyMHB4IDA7Ij4KCQk8dGFibGUgY2xhc3M9Imxpc3RfdGFibGUiPgoJCQk8Y2FwdGlvbj5Ub29sIENhbGxzIFN1bW1hcnk6PC9jYXB0aW9uPgoJCQk8dGhlYWQ+CgkJCQk8dHI+CgkJCQkJPHRoPlRvdGFsIENhbGxzPC90aD4KCQkJCQk8dGg+VG90YWwgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCQk8dGg+QXZnIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQk8L3RyPgoJCQk8L3RoZWFkPgoJCQk8dGJvZHkgaWQ9InRvb2xfc3VtbWFyeV9zdGF0c19ib2R5Ij48L3Rib2R5PgoJCTwvdGFibGU+Cgk8L2Rpdj4KCgk8ZGl2IGlkPSJkdXJhdGlvbl9jaGFydF9kaXYiIHN0eWxlPSJ3aWR0aDogMTAwJTsgbWFyZ2luOiAyMHB4IDA7IGJvcmRlcjogMXB4OyI+PC9kaXY+Cgk8ZGl2IGlkPSJ0b2tlbl9jaGFydF9kaXYiIHN0eWxlPSJ3aWR0aDogMTAwJTsgbWFyZ2luOiAyMHB4IDA7IGJvcmRlcjogMXB4OyI+PC9kaXY+CgoJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iaHR0cHM6Ly93d3cuZ29vZ2xlLmNvbS9qc2FwaSI+PC9zY3JpcHQ+Cgk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+CgkJZ29vZ2xlLmxvYWQoInZpc3VhbGl6YXRpb24iLCAiMSIsIHtwYWNrYWdlczpbImNvcmVjaGFydCJdfSk7CgkJZ29vZ2xlLnNldE9uTG9hZENhbGxiYWNrKGRyYXdDaGFydHMpOwoKCQlmdW5jdGlvbiBkcmF3Q2hhcnRzKCkgewoJCQljb25zdCByYXdEYXRhID0gW3siU3RhcnRlZCI6IjIwMjYtMDgtMjRUMDc6NTY6MzcuNzg4OTQ2OTIyWiIsIlNlcSI6MCwiTmVzdGluZyI6MCwiVHlwZSI6ImZsb3ciLCJOYW1lIjoicGF0Y2gtdHJpYWdlIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NTYyMTcxODUwODgsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogbnVsbCxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW10sXG4gIFwiS01TQU5SZWFzb25pbmdcIjogXCJcIixcbiAgXCJOZWVkc0tNU0FOXCI6IGZhbHNlLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBtb2RpZmllcyBjb2RlIGluIHRoZSBXYW5neHVuIFRYR0JFIGFuZCBOR0JFIGV0aGVybmV0IGRyaXZlcnMuIFRoZXNlIGFyZSBkcml2ZXJzIGZvciBwaHlzaWNhbCBQQ0llIGhhcmR3YXJlIGFkYXB0ZXJzIHRoYXQgYXJlIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBRRU1VIG9yIEdDRS4gVGhlcmVmb3JlLCB0aGUgbW9kaWZpZWQgY29kZSBwYXRocyBjYW5ub3QgYmUgcmVhY2hlZCBvciBmdXp6ZWQgaW4gdGhlc2UgZW52aXJvbm1lbnRzLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiBmYWxzZVxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMjRUMDc6NTY6MzcuNzg4OTYyNTQyWiIsIlNlcSI6MSwiTmVzdGluZyI6MSwiVHlwZSI6ImFjdGlvbiIsIk5hbWUiOiJyZWFkLXBhdGNoLWRpZmYiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjozNzM4NTMwMTUsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIlBhdGNoRGlmZlwiOiBcImNvbW1pdCAwNDIxYTExODVlMGM3ZWE4ZDc1Nzk0YzEzMTk2ZjVlODdhZWQzZjNmXFxuQXV0aG9yOiBzeXotY2x1c3RlciBcXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cXHUwMDNlXFxuRGF0ZTogICBNb24gQXVnIDI0IDA3OjU2OjM3IDIwMjYgKzAwMDBcXG5cXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XFxuXFxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vbGlid3gvd3hfdHlwZS5oIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi9saWJ3eC93eF90eXBlLmhcXG5pbmRleCA2NWUzZTU1ZGIxY2ZmLi4wNTIwMjg4ZDE4YWI5IDEwMDY0NFxcbi0tLSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vbGlid3gvd3hfdHlwZS5oXFxuKysrIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi9saWJ3eC93eF90eXBlLmhcXG5AQCAtMTQyNyw3ICsxNDI3LDcgQEAgc3RydWN0IHd4IHtcXG4gfTtcXG4gXFxuICNkZWZpbmUgV1hfSU5UUl9BTEwgKH4wVUxMKVxcbi0jZGVmaW5lIFdYX0lOVFJfUShpKSBCSVQoKGkpKVxcbisjZGVmaW5lIFdYX0lOVFJfUShpKSBCSVRfVUxMKChpKSlcXG4gXFxuIC8qIHJlZ2lzdGVyIG9wZXJhdGlvbnMgKi9cXG4gI2RlZmluZSB3cjMyKGEsIHJlZywgdmFsdWUpXFx0d3JpdGVsKCh2YWx1ZSksICgoYSktXFx1MDAzZWh3X2FkZHIgKyAocmVnKSkpXFxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfdHlwZS5oIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV90eXBlLmhcXG5pbmRleCA4NzcyMzRlM2ZkYzJiLi5mZGRjYjAxMWZhMmZkIDEwMDY0NFxcbi0tLSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfdHlwZS5oXFxuKysrIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV90eXBlLmhcXG5AQCAtMzAzLDcgKzMwMyw3IEBAIHN0cnVjdCB0eGdiZV9mZGlyX2ZpbHRlciB7XFxuICNkZWZpbmUgVFhHQkVfREVGQVVMVF9SWF9XT1JLICAgICAgICAgICAxMjhcXG4gI2VuZGlmXFxuIFxcbi0jZGVmaW5lIFRYR0JFX0lOVFJfTUlTQyhBKSAgICBCSVQoKEEpLVxcdTAwM2VudW1fcV92ZWN0b3JzKVxcbisjZGVmaW5lIFRYR0JFX0lOVFJfTUlTQyhBKSAgICBCSVRfVUxMKChBKS1cXHUwMDNlbnVtX3FfdmVjdG9ycylcXG4gI2RlZmluZSBUWEdCRV9JTlRSX1FBTEwoQSkgICAgKFRYR0JFX0lOVFJfTUlTQyhBKSAtIDEpXFxuIFxcbiAjZGVmaW5lIFRYR0JFX01BWF9FSVRSICAgICAgICBHRU5NQVNLKDExLCAzKVxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0yNFQwNzo1NjozOC4xNjM0MTYyOTdaIiwiU2VxIjoyLCJOZXN0aW5nIjoxLCJUeXBlIjoiYWdlbnQiLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJiZXN0LWV4cGVuc2l2ZSIsIkR1cmF0aW9uIjo1NTg0MjY5ODEyMiwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBudWxsLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggbW9kaWZpZXMgY29kZSBpbiB0aGUgV2FuZ3h1biBUWEdCRSBhbmQgTkdCRSBldGhlcm5ldCBkcml2ZXJzLiBUaGVzZSBhcmUgZHJpdmVycyBmb3IgcGh5c2ljYWwgUENJZSBoYXJkd2FyZSBhZGFwdGVycyB0aGF0IGFyZSBub3QgZW11bGF0ZWQgaW4gc3RhbmRhcmQgdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgUUVNVSBvciBHQ0UuIFRoZXJlZm9yZSwgdGhlIG1vZGlmaWVkIGNvZGUgcGF0aHMgY2Fubm90IGJlIHJlYWNoZWQgb3IgZnV6emVkIGluIHRoZXNlIGVudmlyb25tZW50cy5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogZmFsc2Vcbn0iLCJJbnN0cnVjdGlvbiI6IllvdSBhcmUgYW4gZXhwZXJ0IExpbnV4IGtlcm5lbCBtYWludGFpbmVyLlxuWW91ciBqb2IgaXMgdG8gcmV2aWV3IGEgcHJvdmlkZWQgcGF0Y2ggc2VyaWVzIGFuZCBkZXRlcm1pbmVcbmlmIGl0IG1ha2VzIGZ1bmN0aW9uYWwgY2hhbmdlcyB0byB0aGUga2VybmVsIHRoYXQgc2hvdWxkIGJlIGZ1enplZC5cblxuSU1QT1JUQU5UOiBUaGUgY2hhbmdlcyBoYXZlIEFMUkVBRFkgYmVlbiBhcHBsaWVkIGFuZCBjb21taXR0ZWQgYXMgdGhlIEhFQUQgY29tbWl0IGluXG55b3VyIHdvcmtzcGFjZS4gRG8gTk9UIHJlbHkgb24geW91ciBpbnRlcm5hbCBrbm93bGVkZ2Ugb2YgdGhlIGtlcm5lbC4gWW91IG11c3QgYWN0aXZlbHlcbnVzZSB5b3VyIGNvZGUgYWNjZXNzIHRvb2xzIHRvIGV4YW1pbmUgdGhlIGFjdHVhbCBzb3VyY2UgY29kZSBhbmQgY29uZmlybSBhbnkgYXNzdW1wdGlvbnMuXG5cblJldHVybiBXb3J0aEZ1enppbmc9ZmFsc2UgaWYgdGhlIHBhdGNoIG9ubHkgY29udGFpbnM6XG4tIE1vZGlmaWNhdGlvbnMgdG8gRG9jdW1lbnRhdGlvbi8sIEtjb25maWcgZmlsZXMsIG9yIGNvZGUgY29tbWVudHMuXG4tIFB1cmVseSBkZWNvcmF0aXZlIGNoYW5nZXMsIHN1Y2ggYXMgbG9nZ2luZyAoZS5nLiwgcHJfZXJyLCBwcmludGspIG9yIHRyYWNlcG9pbnRzLlxuLSBDaGFuZ2VzIHRvIG51bWVyaWMgY29uc3RhbnRzIG9yIG1hY3JvcyB0aGF0IGRvIG5vdCBmdW5jdGlvbmFsbHkgYWx0ZXIgZXhlY3V0aW9uIGZsb3cuXG4tIENvZGUgcGF0aHMgdGhhdCBhcmUgaW1wb3NzaWJsZSB0byByZWFjaCBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBHQ0Ugb3IgUUVNVSxcbiAgZXZlbiB3aGVuIHV0aWxpemluZyBzb2Z0d2FyZS1lbXVsYXRlZCBoYXJkd2FyZSAoZS5nLiwgdXNiIGdhZGdldCwgbWFjODAyMTFfaHdzaW0pLlxuLSBDb2RlIGluIHZlbmRvci1zcGVjaWZpYyBQQ0llIHN3aXRjaCwgU21hcnROSUMsIG9yIEdQVSBkcml2ZXJzIChlLmcuLCBtbHhzdywgcGRzX2NvcmUsIHFlZCxcbiAgaW9uaWMsIGFtZGdwdSkgdGhhdCByZXF1aXJlIHBoeXNpY2FsIFBDSWUgaGFyZHdhcmUgY2FyZHMgbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIFFFTVUuXG4tIERyaXZlciAucmVtb3ZlLCAuc2h1dGRvd24sIG9yIHBjaV91bnJlZ2lzdGVyX2RyaXZlciB0ZWFyZG93biBjYWxsYmFja3MgKGUuZy4sIGlnYl9yZW1vdmUpXG4gIHRoYXQgYXJlIGV4ZWN1dGVkIG9ubHkgZHVyaW5nIFBDSSBob3QtdW5wbHVnIG9yIHN5c2ZzIGRyaXZlciB1bmJpbmQgb3BlcmF0aW9ucy5cblxuSWYgaXQgbW9kaWZpZXMgcmVhY2hhYmxlIGNvcmUga2VybmVsIGxvZ2ljLCBkcml2ZXJzLCBvciBhcmNoaXRlY3R1cmVzLCB1c2UgeW91ciBjb2RlIHNlYXJjaFxudG9vbHMgdG8gdmVyaWZ5IHRoZSBjb2RlIGNhbiBiZSBleGVjdXRlZCwgdGhlbiByZXR1cm4gV29ydGhGdXp6aW5nPXRydWUuXG5cbldoZW4gcmV0dXJuaW5nIFdvcnRoRnV6emluZz10cnVlLCB5b3UgTVVTVCBBTFNPOlxuMS4gRXh0cmFjdCBhbnkgc3BlY2lmaWMga2VybmVsIGZ1bmN0aW9ucyB0aGF0IHNob3VsZCBiZSBoZWF2aWx5IGZ1enplZCBpbnRvIEZvY3VzU3ltYm9scy5cbiAgIEF2b2lkIGxpc3RpbmcgZ2VuZXJpYyBob3QtcGF0aCBmdW5jdGlvbnMgdG8gcHJldmVudCBza2V3ZWQgdGVzdCBkaXN0cmlidXRpb25zLlxuICAgUHJlZmVyIG5vbi1zdGF0aWMsIG5vbi1pbmxpbmVkIEFQSSBlbnRyeXBvaW50IGZ1bmN0aW9ucyBvdmVyIGludGVybmFsIHN0YXRpYyBoZWxwZXIgZnVuY3Rpb25zXG4gICAod2hpY2ggYXJlIGlubGluZWQgYnkgdGhlIGNvbXBpbGVyIGFuZCBkbyBub3QgaGF2ZSBkaXN0aW5jdCBzeW1ib2wgYWRkcmVzc2VzKS5cbjIuIElkZW50aWZ5IGFueSBzcGVjaWZpYyBDT05GSUdfIG9wdGlvbnMgcmVxdWlyZWQgdG8gcHJvcGVybHkgdGVzdCB0aGlzIG5ldy9tb2RpZmllZCBmZWF0dXJlLlxuICAgR28gYW5kIGxvb2sgaW50byB0aGUgS2NvbmZpZyBmaWxlcyBhbmQgY2hlY2sgZm9yIGlmZGVmcyBhcm91bmQgdGhlIGNvZGUsIGRvIG5vdCBtYWtlIGFzc3VtcHRpb25zLlxuICAgQWxzbyBjaGVjayBcImRlcGVuZHMgb25cIiBsaW5lcyBpbiBLY29uZmlnIHRvIGluY2x1ZGUgYW55IG5vbi1zdGFuZGFyZCBwYXJlbnQgc3Vic3lzdGVtIGNvbmZpZ3NcbiAgIG5lZWRlZCBmb3IgS2J1aWxkIHRvIGNvbXBpbGUgdGhlIGNvZGUgc3RhdGljYWxseSBpbnRvIHZtbGludXguIExpc3QgdGhlbSBpbiB0aGUgRW5hYmxlQ29uZmlnc1xuICAgb3V0cHV0IGFycmF5LCBhbmQgRE8gTk9UIGFkZCBhICdDT05GSUdfJyBwcmVmaXggKGUuZy4sIHJldHVybiBcIk5FVF9JUFY0XCIgaW5zdGVhZCBvZiBcIkNPTkZJR19ORVRfSVBWNFwiKS5cblByZWZlciBjYWxsaW5nIHNldmVyYWwgdG9vbHMgYXQgdGhlIHNhbWUgdGltZSB0byBzYXZlIHJvdW5kLXRyaXBzLlxuXG5cblVzZSBzZXQtcmVzdWx0cyB0b29sIHRvIHByb3ZpZGUgcmVzdWx0cyBvZiB0aGUgYW5hbHlzaXMuXG5JdCBtdXN0IGJlIGNhbGxlZCBleGFjdGx5IG9uY2UgYmVmb3JlIHRoZSBmaW5hbCByZXBseS5cbklnbm9yZSByZXN1bHRzIG9mIHRoaXMgdG9vbC5cbiIsIlByb21wdCI6IkZvciB5b3VyIGNvbnZlbmllbmNlLCBoZXJlIGlzIHRoZSBkaWZmIG9mIHRoZSBjaGFuZ2VzOlxuY29tbWl0IDA0MjFhMTE4NWUwYzdlYThkNzU3OTRjMTMxOTZmNWU4N2FlZDNmM2ZcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cdTAwM2VcbkRhdGU6ICAgTW9uIEF1ZyAyNCAwNzo1NjozNyAyMDI2ICswMDAwXG5cbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcblxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vbGlid3gvd3hfdHlwZS5oIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi9saWJ3eC93eF90eXBlLmhcbmluZGV4IDY1ZTNlNTVkYjFjZmYuLjA1MjAyODhkMThhYjkgMTAwNjQ0XG4tLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL2xpYnd4L3d4X3R5cGUuaFxuKysrIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi9saWJ3eC93eF90eXBlLmhcbkBAIC0xNDI3LDcgKzE0MjcsNyBAQCBzdHJ1Y3Qgd3gge1xuIH07XG4gXG4gI2RlZmluZSBXWF9JTlRSX0FMTCAofjBVTEwpXG4tI2RlZmluZSBXWF9JTlRSX1EoaSkgQklUKChpKSlcbisjZGVmaW5lIFdYX0lOVFJfUShpKSBCSVRfVUxMKChpKSlcbiBcbiAvKiByZWdpc3RlciBvcGVyYXRpb25zICovXG4gI2RlZmluZSB3cjMyKGEsIHJlZywgdmFsdWUpXHR3cml0ZWwoKHZhbHVlKSwgKChhKS1cdTAwM2Vod19hZGRyICsgKHJlZykpKVxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfdHlwZS5oIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV90eXBlLmhcbmluZGV4IDg3NzIzNGUzZmRjMmIuLmZkZGNiMDExZmEyZmQgMTAwNjQ0XG4tLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX3R5cGUuaFxuKysrIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV90eXBlLmhcbkBAIC0zMDMsNyArMzAzLDcgQEAgc3RydWN0IHR4Z2JlX2ZkaXJfZmlsdGVyIHtcbiAjZGVmaW5lIFRYR0JFX0RFRkFVTFRfUlhfV09SSyAgICAgICAgICAgMTI4XG4gI2VuZGlmXG4gXG4tI2RlZmluZSBUWEdCRV9JTlRSX01JU0MoQSkgICAgQklUKChBKS1cdTAwM2VudW1fcV92ZWN0b3JzKVxuKyNkZWZpbmUgVFhHQkVfSU5UUl9NSVNDKEEpICAgIEJJVF9VTEwoKEEpLVx1MDAzZW51bV9xX3ZlY3RvcnMpXG4gI2RlZmluZSBUWEdCRV9JTlRSX1FBTEwoQSkgICAgKFRYR0JFX0lOVFJfTUlTQyhBKSAtIDEpXG4gXG4gI2RlZmluZSBUWEdCRV9NQVhfRUlUUiAgICAgICAgR0VOTUFTSygxMSwgMylcbiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTI0VDA3OjU2OjM4LjE2MzQxNzU3N1oiLCJTZXEiOjMsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjEzNTIxODQxODE5LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKk15IEluaXRpYWwgQXNzZXNzbWVudCBvZiB0aGUgV2FuZ3h1biBFdGhlcm5ldCBEcml2ZXIgUGF0Y2gqKlxuXG5Pa2F5LCBzbyB0aGlzIHBhdGNoIGlzIHRvdWNoaW5nIHR3byBoZWFkZXIgZmlsZXMgd2l0aGluIHRoZSBXYW5neHVuIGV0aGVybmV0IGRyaXZlcjogYGxpYnd4L3d4X3R5cGUuaGAgYW5kIGB0eGdiZS90eGdiZV90eXBlLmhgLiBUaGUgY29yZSBjaGFuZ2UgaXMgc2ltcGxlLCBpdCBsb29rcyBsaWtlIGEgZmluZC1hbmQtcmVwbGFjZSwgc3dhcHBpbmcgb3V0IGBCSVQoKGkpKWAgYW5kIGBCSVQoKEEpLVx1MDAzZW51bV9xX3ZlY3RvcnMpYCBmb3IgYEJJVF9VTEwoKGkpKWAgYW5kIGBCSVRfVUxMKChBKS1cdTAwM2VudW1fcV92ZWN0b3JzKWAgcmVzcGVjdGl2ZWx5LiBBaCwgcmlnaHQuIEl04oCZcyBleHBsaWNpdGx5IGFkZHJlc3NpbmcgcG90ZW50aWFsIHVuZGVmaW5lZCBiZWhhdmlvciBvciBvdmVyZmxvdyBpc3N1ZXMuIEknbSBndWVzc2luZyB0aGlzIG1lYW5zIHRoYXQgdGhlIG9yaWdpbmFsIGBCSVRgIG1hY3JvIHdhcyBsaWtlbHkgdXNpbmcgYSBzdGFuZGFyZCBpbnRlZ2VyIHR5cGUgdG8gcmVwcmVzZW50IHRoZSBiaXQgaW5kZXgsIHdoaWNoIHdvdWxkIHRydW5jYXRlIG9yIG92ZXJmbG93IHdoZW4gdGhlIGluZGV4IGdldHMgdG8gb3Igc3VycGFzc2VzIDMyLiBUaGlzIGlzIGEgcHJldHR5IGNvbW1vbiB0eXBlIG9mIGJ1ZywgYW5kIGBCSVRfVUxMYCBpcyBwcm9iYWJseSB1c2luZyBhbiB1bnNpZ25lZCBsb25nIGxvbmcsIHdoaWNoIGdpdmVzIHVzIDY0IGJpdHMsIHJlc29sdmluZyB0aGUgcG90ZW50aWFsIG92ZXJmbG93LlxuXG5Ob3csIHdhaXQgYSBzZWNvbmQuIFRoaXMgaXMgYSAqaGFyZHdhcmUqIGRyaXZlciwgcmlnaHQ/IFdhbmd4dW4uLi4gdGhhdCdzIHJpbmdpbmcgYSBiZWxsLiBUaGV5IG1hbnVmYWN0dXJlIFBDSWUgbmV0d29yayBjYXJkcywgY29ycmVjdD8gSSBzaG91bGQgcHJvYmFibHkgdGFrZSBhIGxvb2sgYXQgdGhlIGRyaXZlcidzIG1haW4gY29kZSB0byBjb25maXJtIHRoYXQuIEkgc2hvdWxkIGNvbmZpcm0gbXkgc3VzcGljaW9ucyBieSBjaGVja2luZyBvdXQgdGhlIGB0eGdiZV9tYWluLmNgIG9yIHNpbWlsYXIgZmlsZSB3aXRoaW4gdGhlIGRyaXZlciBkaXJlY3RvcnkuIEkgd2FudCB0byBzZWUgZXhhY3RseSB3aGF0IGhhcmR3YXJlIHRoaXMgZHJpdmVyIGlzIG1hbmFnaW5nLCBqdXN0IHRvIGdldCBhIGZ1bGxlciBjb250ZXh0IG9mIHRoaXMgZml4LiBVbmRlcnN0YW5kaW5nIHRoZSB1bmRlcmx5aW5nIGhhcmR3YXJlIGlzIGNydWNpYWwgZm9yIGZ1bGx5IHVuZGVyc3RhbmRpbmcgdGhlIHBvdGVudGlhbCBpbXBsaWNhdGlvbnMgb2YgdGhpcyBjaGFuZ2UgYW5kIGNvbmZpcm1pbmcgd2hldGhlciB0aGUgZml4IGlzIG5lY2Vzc2FyeS5cblxuXG4iLCJJbnB1dFRva2VucyI6MjMxMSwiT3V0cHV0VG9rZW5zIjozOCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjE4MSwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTI0VDA3OjU2OjUxLjY4NTI2MTU1NloiLCJTZXEiOjQsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo0NjE1MTE0OSwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJ0eGdiZVwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJkcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJcXG5GdWxsIG91dHB1dCBpcyB0b28gbG9uZywgc2hvd2luZyA1MDAgb3V0IG9mIDE3MzAgbGluZXMuXFxuVXNlIG1vcmUgcHJlY2lzZSBleHByZXNzaW9uIGlmIHBvc3NpYmxlLlxcblxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvTWFrZWZpbGUtNi1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL01ha2VmaWxlOjc6b2JqLSQoQ09ORklHX1RYR0JFKSArPSB0eGdiZS5vXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS9NYWtlZmlsZS04LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvTWFrZWZpbGU6OTp0eGdiZS1vYmpzIDo9IHR4Z2JlX21haW4ubyBcXFxcXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS9NYWtlZmlsZToxMDogICAgICAgICAgICAgIHR4Z2JlX2h3Lm8gXFxcXFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvTWFrZWZpbGU6MTE6ICAgICAgICAgICAgICB0eGdiZV9waHkubyBcXFxcXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS9NYWtlZmlsZToxMjogICAgICAgICAgICAgIHR4Z2JlX2lycS5vIFxcXFxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL01ha2VmaWxlOjEzOiAgICAgICAgICAgICAgdHhnYmVfZmRpci5vIFxcXFxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL01ha2VmaWxlOjE0OiAgICAgICAgICAgICAgdHhnYmVfZXRodG9vbC5vIFxcXFxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL01ha2VmaWxlOjE1OiAgICAgICAgICAgICAgdHhnYmVfYW1sLm9cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfYW1sLmMtMTMtI2luY2x1ZGUgXFxcIi4uL2xpYnd4L3d4X3NyaW92LmhcXFwiXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9hbWwuYzoxNDojaW5jbHVkZSBcXFwidHhnYmVfdHlwZS5oXFxcIlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfYW1sLmM6MTU6I2luY2x1ZGUgXFxcInR4Z2JlX2FtbC5oXFxcIlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfYW1sLmM6MTY6I2luY2x1ZGUgXFxcInR4Z2JlX2h3LmhcXFwiXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9hbWwuYy0xNy1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2FtbC5jOjE4OnZvaWQgdHhnYmVfZ3Bpb19pbml0X2FtbChzdHJ1Y3Qgd3ggKnd4KVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfYW1sLmMtMTkte1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9hbWwuYy0zNi1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2FtbC5jOjM3OmlycXJldHVybl90IHR4Z2JlX2dwaW9faXJxX2hhbmRsZXJfYW1sKGludCBpcnEsIHZvaWQgKmRhdGEpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9hbWwuYy0zOC17XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9hbWwuYzozOTpcXHRzdHJ1Y3QgdHhnYmUgKnR4Z2JlID0gZGF0YTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2FtbC5jOjQwOlxcdHN0cnVjdCB3eCAqd3ggPSB0eGdiZS1cXHUwMDNld3g7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9hbWwuYy00MS1cXHR1MzIgc3RhdHVzLCBtb2RfcnN0O1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9hbWwuYy01OS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2FtbC5jOjYwOmludCB0eGdiZV90ZXN0X2hvc3RpZihzdHJ1Y3Qgd3ggKnd4KVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfYW1sLmMtNjEte1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfYW1sLmM6NjI6XFx0c3RydWN0IHR4Z2JlX2hpY19lcGh5X2dldGxpbmsgYnVmZmVyO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfYW1sLmMtNjMtXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2FtbC5jLTY3LVxcdGJ1ZmZlci5oZHIuY21kID0gRldfUEhZX0dFVF9MSU5LX0NNRDtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2FtbC5jOjY4OlxcdGJ1ZmZlci5oZHIuYnVmX2xlbiA9IHNpemVvZihzdHJ1Y3QgdHhnYmVfaGljX2VwaHlfZ2V0bGluaykgLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfYW1sLmMtNjktXFx0XFx0XFx0ICAgICBzaXplb2Yoc3RydWN0IHd4X2hpY19oZHIpO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9hbWwuYy03NS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2FtbC5jOjc2OmludCB0eGdiZV9yZWFkX2VlcHJvbV9ob3N0aWYoc3RydWN0IHd4ICp3eCxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2FtbC5jOjc3OlxcdFxcdFxcdCAgICAgc3RydWN0IHR4Z2JlX2hpY19pMmNfcmVhZCAqYnVmZmVyLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfYW1sLmMtNzgtXFx0XFx0XFx0ICAgICB1MzIgbGVuZ3RoLCB1OCAqZGF0YSlcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfYW1sLmMtODMtXFx0YnVmZmVyLVxcdTAwM2VoZHIuY21kID0gRldfUkVBRF9FRVBST01fQ01EO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfYW1sLmM6ODQ6XFx0YnVmZmVyLVxcdTAwM2VoZHIuYnVmX2xlbiA9IHNpemVvZihzdHJ1Y3QgdHhnYmVfaGljX2kyY19yZWFkKSAtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9hbWwuYy04NS1cXHRcXHRcXHQgICAgICBzaXplb2Yoc3RydWN0IHd4X2hpY19oZHIpO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9hbWwuYy04OC1cXHRlcnIgPSB3eF9ob3N0X2ludGVyZmFjZV9jb21tYW5kKHd4LCAodTMyICopYnVmZmVyLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfYW1sLmM6ODk6XFx0XFx0XFx0XFx0XFx0c2l6ZW9mKHN0cnVjdCB0eGdiZV9oaWNfaTJjX3JlYWQpLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfYW1sLmMtOTAtXFx0XFx0XFx0XFx0XFx0V1hfSElfQ09NTUFORF9USU1FT1VULCBmYWxzZSk7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2FtbC5jLTk0LVxcdC8qIGJ1ZmZlciBsZW5ndGggb2Zmc2V0IHRvIHJlYWQgcmV0dXJuIGRhdGEgKi9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2FtbC5jOjk1OlxcdG9mZnNldCA9IHNpemVvZihzdHJ1Y3QgdHhnYmVfaGljX2kyY19yZWFkKSBcXHUwMDNlXFx1MDAzZSAyO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfYW1sLmMtOTYtXFx0ZHdvcmRfbGVuID0gcm91bmRfdXAobGVuZ3RoLCA0KSBcXHUwMDNlXFx1MDAzZSAyO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9hbWwuYy0xMTAtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9hbWwuYzoxMTE6c3RhdGljIGludCB0eGdiZV9pZGVudGlmeV9tb2R1bGVfaG9zdGlmKHN0cnVjdCB3eCAqd3gsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9hbWwuYzoxMTI6XFx0XFx0XFx0XFx0XFx0c3RydWN0IHR4Z2JlX2hpY19nZXRfbW9kdWxlX2luZm8gKmJ1ZmZlcilcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2FtbC5jLTExMy17XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9hbWwuYy0xMTQtXFx0YnVmZmVyLVxcdTAwM2VoZHIuY21kID0gRldfR0VUX01PRFVMRV9JTkZPX0NNRDtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2FtbC5jOjExNTpcXHRidWZmZXItXFx1MDAzZWhkci5idWZfbGVuID0gc2l6ZW9mKHN0cnVjdCB0eGdiZV9oaWNfZ2V0X21vZHVsZV9pbmZvKSAtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9hbWwuYy0xMTYtXFx0XFx0XFx0ICAgICAgc2l6ZW9mKHN0cnVjdCB3eF9oaWNfaGRyKTtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfYW1sLmMtMTE5LVxcdHJldHVybiB3eF9ob3N0X2ludGVyZmFjZV9jb21tYW5kKHd4LCAodTMyICopYnVmZmVyLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfYW1sLmM6MTIwOlxcdFxcdFxcdFxcdFxcdCBzaXplb2Yoc3RydWN0IHR4Z2JlX2hpY19nZXRfbW9kdWxlX2luZm8pLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfYW1sLmMtMTIxLVxcdFxcdFxcdFxcdFxcdCBXWF9ISV9DT01NQU5EX1RJTUVPVVQsIHRydWUpO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9hbWwuYy0xMjMtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9hbWwuYzoxMjQ6c3RhdGljIGludCB0eGdiZV9zZXRfcGh5X2xpbmtfaG9zdGlmKHN0cnVjdCB3eCAqd3gsIGludCBzcGVlZCwgaW50IGF1dG9uZWcsIGludCBkdXBsZXgpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9hbWwuYy0xMjUte1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfYW1sLmM6MTI2OlxcdHN0cnVjdCB0eGdiZV9oaWNfZXBoeV9zZXRsaW5rIGJ1ZmZlcjtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2FtbC5jLTEyNy1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2FtbC5jLTEyOC1cXHRidWZmZXIuaGRyLmNtZCA9IEZXX1BIWV9TRVRfTElOS19DTUQ7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9hbWwuYzoxMjk6XFx0YnVmZmVyLmhkci5idWZfbGVuID0gc2l6ZW9mKHN0cnVjdCB0eGdiZV9oaWNfZXBoeV9zZXRsaW5rKSAtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9hbWwuYy0xMzAtXFx0XFx0XFx0ICAgICBzaXplb2Yoc3RydWN0IHd4X2hpY19oZHIpO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9hbWwuYy0xNTUtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9hbWwuYzoxNTY6c3RhdGljIHZvaWQgdHhnYmVfZ2V0X2xpbmtfY2FwYWJpbGl0aWVzKHN0cnVjdCB3eCAqd3gsIGludCAqc3BlZWQsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9hbWwuYy0xNTctXFx0XFx0XFx0XFx0XFx0aW50ICphdXRvbmVnLCBpbnQgKmR1cGxleClcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2FtbC5jLTE1OC17XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9hbWwuYzoxNTk6XFx0c3RydWN0IHR4Z2JlICp0eGdiZSA9IHd4LVxcdTAwM2Vwcml2O1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfYW1sLmMtMTYwLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfYW1sLmM6MTYxOlxcdGlmICh0ZXN0X2JpdChQSFlfSU5URVJGQUNFX01PREVfWExHTUlJLCB0eGdiZS1cXHUwMDNlbGlua19pbnRlcmZhY2VzKSlcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2FtbC5jLTE2Mi1cXHRcXHQqc3BlZWQgPSBTUEVFRF80MDAwMDtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2FtbC5jOjE2MzpcXHRlbHNlIGlmICh0ZXN0X2JpdChQSFlfSU5URVJGQUNFX01PREVfMjVHQkFTRVIsIHR4Z2JlLVxcdTAwM2VsaW5rX2ludGVyZmFjZXMpKVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfYW1sLmMtMTY0LVxcdFxcdCpzcGVlZCA9IFNQRUVEXzI1MDAwO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfYW1sLmM6MTY1OlxcdGVsc2UgaWYgKHRlc3RfYml0KFBIWV9JTlRFUkZBQ0VfTU9ERV8xMEdCQVNFUiwgdHhnYmUtXFx1MDAzZWxpbmtfaW50ZXJmYWNlcykpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9hbWwuYy0xNjYtXFx0XFx0KnNwZWVkID0gU1BFRURfMTAwMDA7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2FtbC5jLTE2OS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2FtbC5jOjE3MDpcXHQqYXV0b25lZyA9IHBoeWxpbmtfdGVzdCh0eGdiZS1cXHUwMDNlYWR2ZXJ0aXNpbmcsIEF1dG9uZWcpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfYW1sLmMtMTcxLVxcdCpkdXBsZXggPSAqc3BlZWQgPT0gU1BFRURfVU5LTk9XTiA/IERVUExFWF9IQUxGIDogRFVQTEVYX0ZVTEw7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2FtbC5jLTE3My1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2FtbC5jOjE3NDpzdGF0aWMgdm9pZCB0eGdiZV9nZXRfbWFjX2xpbmsoc3RydWN0IHd4ICp3eCwgaW50ICpzcGVlZClcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2FtbC5jLTE3NS17XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2FtbC5jLTE5MC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2FtbC5jOjE5MTp2b2lkIHR4Z2JlX3NldF9waHlfbGluayhzdHJ1Y3Qgd3ggKnd4KVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfYW1sLmMtMTkyLXtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfYW1sLmMtMTk0LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfYW1sLmM6MTk1OlxcdHR4Z2JlX2dldF9saW5rX2NhcGFiaWxpdGllcyh3eCwgXFx1MDAyNnNwZWVkLCBcXHUwMDI2YXV0b25lZywgXFx1MDAyNmR1cGxleCk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9hbWwuYy0xOTYtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9hbWwuYzoxOTc6XFx0ZXJyID0gdHhnYmVfc2V0X3BoeV9saW5rX2hvc3RpZih3eCwgc3BlZWQsIGF1dG9uZWcsIGR1cGxleCk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9hbWwuYy0xOTgtXFx0aWYgKGVycilcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfYW1sLmMtMjAxLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfYW1sLmM6MjAyOnN0YXRpYyBpbnQgdHhnYmVfc2ZwX3RvX2xpbmttb2RlcyhzdHJ1Y3Qgd3ggKnd4LCBzdHJ1Y3QgdHhnYmVfc2ZmX2lkICppZClcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2FtbC5jLTIwMy17XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2FtbC5jLTIwNS1cXHRERUNMQVJFX1BIWV9JTlRFUkZBQ0VfTUFTS19aRVJPKGludGVyZmFjZXMpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfYW1sLmM6MjA2OlxcdHN0cnVjdCB0eGdiZSAqdHhnYmUgPSB3eC1cXHUwMDNlcHJpdjtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2FtbC5jLTIwNy1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2FtbC5jLTIwOC1cXHRpZiAoaWQtXFx1MDAzZWNhYmxlX3RlY2ggXFx1MDAyNiBUWEdCRV9TRkZfREFfUEFTU0lWRV9DQUJMRSkge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfYW1sLmM6MjA5OlxcdFxcdHR4Z2JlLVxcdTAwM2VsaW5rX3BvcnQgPSBQT1JUX0RBO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfYW1sLmMtMjEwLVxcdFxcdHBoeWxpbmtfc2V0KG1vZGVzLCBBdXRvbmVnKTtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfYW1sLmMtMjIyLVxcdH0gZWxzZSBpZiAoaWQtXFx1MDAzZWNhYmxlX3RlY2ggXFx1MDAyNiBUWEdCRV9TRkZfREFfQUNUSVZFX0NBQkxFKSB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9hbWwuYzoyMjM6XFx0XFx0dHhnYmUtXFx1MDAzZWxpbmtfcG9ydCA9IFBPUlRfREE7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9hbWwuYy0yMjQtXFx0XFx0cGh5bGlua19zZXQobW9kZXMsIEF1dG9uZWcpO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9hbWwuYy0yMzAtXFx0XFx0ICAgIGlkLVxcdTAwM2Vjb21fMjVnX2NvZGUgPT0gVFhHQkVfU0ZGXzI1R0JBU0VMUl9DQVBBQkxFKSB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9hbWwuYzoyMzE6XFx0XFx0XFx0dHhnYmUtXFx1MDAzZWxpbmtfcG9ydCA9IFBPUlRfRklCUkU7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9hbWwuYy0yMzItXFx0XFx0XFx0cGh5bGlua19zZXQobW9kZXMsIDI1MDAwYmFzZVNSX0Z1bGwpO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9hbWwuYy0yMzUtXFx0XFx0aWYgKGlkLVxcdTAwM2Vjb21fMTBnX2NvZGUgXFx1MDAyNiBUWEdCRV9TRkZfMTBHQkFTRVNSX0NBUEFCTEUpIHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2FtbC5jOjIzNjpcXHRcXHRcXHR0eGdiZS1cXHUwMDNlbGlua19wb3J0ID0gUE9SVF9GSUJSRTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2FtbC5jLTIzNy1cXHRcXHRcXHRwaHlsaW5rX3NldChtb2RlcywgMTAwMDBiYXNlU1JfRnVsbCk7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2FtbC5jLTI0MC1cXHRcXHRpZiAoaWQtXFx1MDAzZWNvbV8xMGdfY29kZSBcXHUwMDI2IFRYR0JFX1NGRl8xMEdCQVNFTFJfQ0FQQUJMRSkge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfYW1sLmM6MjQxOlxcdFxcdFxcdHR4Z2JlLVxcdTAwM2VsaW5rX3BvcnQgPSBQT1JUX0ZJQlJFO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfYW1sLmMtMjQyLVxcdFxcdFxcdHBoeWxpbmtfc2V0KG1vZGVzLCAxMDAwMGJhc2VMUl9GdWxsKTtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfYW1sLmMtMjU1LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfYW1sLmM6MjU2OlxcdGlmICghbGlua21vZGVfZXF1YWwodHhnYmUtXFx1MDAzZWxpbmtfc3VwcG9ydCwgbW9kZXMpKSB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9hbWwuYzoyNTc6XFx0XFx0bGlua21vZGVfY29weSh0eGdiZS1cXHUwMDNlbGlua19zdXBwb3J0LCBtb2Rlcyk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9hbWwuYzoyNTg6XFx0XFx0cGh5X2ludGVyZmFjZV9hbmQodHhnYmUtXFx1MDAzZWxpbmtfaW50ZXJmYWNlcyxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2FtbC5jLTI1OS1cXHRcXHRcXHRcXHQgIHd4LVxcdTAwM2VwaHlsaW5rX2NvbmZpZy5zdXBwb3J0ZWRfaW50ZXJmYWNlcyxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2FtbC5jLTI2MC1cXHRcXHRcXHRcXHQgIGludGVyZmFjZXMpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfYW1sLmM6MjYxOlxcdFxcdGxpbmttb2RlX2NvcHkodHhnYmUtXFx1MDAzZWFkdmVydGlzaW5nLCBtb2Rlcyk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9hbWwuYy0yNjItXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2FtbC5jLTI2OC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2FtbC5jOjI2OTpzdGF0aWMgaW50IHR4Z2JlX3FzZnBfdG9fbGlua21vZGVzKHN0cnVjdCB3eCAqd3gsIHN0cnVjdCB0eGdiZV9zZmZfaWQgKmlkKVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfYW1sLmMtMjcwLXtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfYW1sLmMtMjcyLVxcdERFQ0xBUkVfUEhZX0lOVEVSRkFDRV9NQVNLX1pFUk8oaW50ZXJmYWNlcyk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9hbWwuYzoyNzM6XFx0c3RydWN0IHR4Z2JlICp0eGdiZSA9IHd4LVxcdTAwM2Vwcml2O1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfYW1sLmMtMjc0LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfYW1sLmMtMjc1LVxcdGlmIChpZC1cXHUwMDNldHJhbnNjZWl2ZXJfdHlwZSBcXHUwMDI2IFRYR0JFX1NGRl9FVEhFUk5FVF80MEdfQ1I0KSB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9hbWwuYzoyNzY6XFx0XFx0dHhnYmUtXFx1MDAzZWxpbmtfcG9ydCA9IFBPUlRfREE7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9hbWwuYy0yNzctXFx0XFx0cGh5bGlua19zZXQobW9kZXMsIEF1dG9uZWcpO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9hbWwuYy0yODMtXFx0aWYgKGlkLVxcdTAwM2V0cmFuc2NlaXZlcl90eXBlIFxcdTAwMjYgVFhHQkVfU0ZGX0VUSEVSTkVUXzQwR19TUjQpIHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2FtbC5jOjI4NDpcXHRcXHR0eGdiZS1cXHUwMDNlbGlua19wb3J0ID0gUE9SVF9GSUJSRTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2FtbC5jLTI4NS1cXHRcXHRwaHlsaW5rX3NldChtb2RlcywgNDAwMDBiYXNlU1I0X0Z1bGwpO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9hbWwuYy0yODgtXFx0aWYgKGlkLVxcdTAwM2V0cmFuc2NlaXZlcl90eXBlIFxcdTAwMjYgVFhHQkVfU0ZGX0VUSEVSTkVUXzQwR19MUjQpIHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2FtbC5jOjI4OTpcXHRcXHR0eGdiZS1cXHUwMDNlbGlua19wb3J0ID0gUE9SVF9GSUJSRTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2FtbC5jLTI5MC1cXHRcXHRwaHlsaW5rX3NldChtb2RlcywgNDAwMDBiYXNlTFI0X0Z1bGwpO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9hbWwuYy0yOTMtXFx0aWYgKGlkLVxcdTAwM2V0cmFuc2NlaXZlcl90eXBlIFxcdTAwMjYgVFhHQkVfU0ZGX0VUSEVSTkVUXzQwR19BQ1RJVkUpIHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2FtbC5jOjI5NDpcXHRcXHR0eGdiZS1cXHUwMDNlbGlua19wb3J0ID0gUE9SVF9EQTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2FtbC5jLTI5NS1cXHRcXHRwaHlsaW5rX3NldChtb2RlcywgQXV0b25lZyk7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2FtbC5jLTMwMC1cXHRcXHRpZiAoaWQtXFx1MDAzZXNmZl9vcHQxIFxcdTAwMjYgVFhHQkVfU0ZGX0VUSEVSTkVUXzEwMEdfQ1I0KSB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9hbWwuYzozMDE6XFx0XFx0XFx0dHhnYmUtXFx1MDAzZWxpbmtfcG9ydCA9IFBPUlRfREE7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9hbWwuYy0zMDItXFx0XFx0XFx0cGh5bGlua19zZXQobW9kZXMsIEF1dG9uZWcpO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9hbWwuYy0zMjAtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9hbWwuYzozMjE6XFx0aWYgKCFsaW5rbW9kZV9lcXVhbCh0eGdiZS1cXHUwMDNlbGlua19zdXBwb3J0LCBtb2RlcykpIHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2FtbC5jOjMyMjpcXHRcXHRsaW5rbW9kZV9jb3B5KHR4Z2JlLVxcdTAwM2VsaW5rX3N1cHBvcnQsIG1vZGVzKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2FtbC5jOjMyMzpcXHRcXHRwaHlfaW50ZXJmYWNlX2FuZCh0eGdiZS1cXHUwMDNlbGlua19pbnRlcmZhY2VzLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfYW1sLmMtMzI0LVxcdFxcdFxcdFxcdCAgd3gtXFx1MDAzZXBoeWxpbmtfY29uZmlnLnN1cHBvcnRlZF9pbnRlcmZhY2VzLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfYW1sLmMtMzI1LVxcdFxcdFxcdFxcdCAgaW50ZXJmYWNlcyk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9hbWwuYzozMjY6XFx0XFx0bGlua21vZGVfY29weSh0eGdiZS1cXHUwMDNlYWR2ZXJ0aXNpbmcsIG1vZGVzKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2FtbC5jLTMyNy1cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfYW1sLmMtMzMzLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfYW1sLmM6MzM0OmludCB0eGdiZV9pZGVudGlmeV9tb2R1bGUoc3RydWN0IHd4ICp3eClcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2FtbC5jLTMzNS17XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9hbWwuYzozMzY6XFx0c3RydWN0IHR4Z2JlX2hpY19nZXRfbW9kdWxlX2luZm8gYnVmZmVyID0geyAwIH07XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9hbWwuYzozMzc6XFx0c3RydWN0IHR4Z2JlX3NmZl9pZCAqaWQ7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9hbWwuYy0zMzgtXFx0aW50IGVyciA9IDA7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2FtbC5jLTM1MC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2FtbC5jOjM1MTpcXHRlcnIgPSB0eGdiZV9pZGVudGlmeV9tb2R1bGVfaG9zdGlmKHd4LCBcXHUwMDI2YnVmZmVyKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2FtbC5jLTM1Mi1cXHRpZiAoZXJyKSB7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2FtbC5jLTM1OC1cXHRpZiAoaWQtXFx1MDAzZWlkZW50aWZpZXIgPT0gVFhHQkVfU0ZGX0lERU5USUZJRVJfU0ZQKVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfYW1sLmM6MzU5OlxcdFxcdHJldHVybiB0eGdiZV9zZnBfdG9fbGlua21vZGVzKHd4LCBpZCk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9hbWwuYy0zNjAtXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2FtbC5jLTM2My1cXHQgICAgaWQtXFx1MDAzZWlkZW50aWZpZXIgPT0gVFhHQkVfU0ZGX0lERU5USUZJRVJfUVNGUDI4KVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfYW1sLmM6MzY0OlxcdFxcdHJldHVybiB0eGdiZV9xc2ZwX3RvX2xpbmttb2Rlcyh3eCwgaWQpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfYW1sLmMtMzY1LVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9hbWwuYy0zNjktXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9hbWwuYzozNzA6dm9pZCB0eGdiZV9zZXR1cF9saW5rKHN0cnVjdCB3eCAqd3gpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9hbWwuYy0zNzEte1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfYW1sLmM6MzcyOlxcdHN0cnVjdCB0eGdiZSAqdHhnYmUgPSB3eC1cXHUwMDNlcHJpdjtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2FtbC5jLTM3My1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2FtbC5jOjM3NDpcXHRwaHlfaW50ZXJmYWNlX3plcm8odHhnYmUtXFx1MDAzZWxpbmtfaW50ZXJmYWNlcyk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9hbWwuYzozNzU6XFx0bGlua21vZGVfemVybyh0eGdiZS1cXHUwMDNlbGlua19zdXBwb3J0KTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2FtbC5jLTM3Ni1cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfYW1sLmMtMzgwLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfYW1sLmM6MzgxOnN0YXRpYyB2b2lkIHR4Z2JlX2dldF9saW5rX3N0YXRlKHN0cnVjdCBwaHlsaW5rX2NvbmZpZyAqY29uZmlnLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfYW1sLmMtMzgyLVxcdFxcdFxcdFxcdCBzdHJ1Y3QgcGh5bGlua19saW5rX3N0YXRlICpzdGF0ZSlcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfYW1sLmMtMzg2LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfYW1sLmM6Mzg3OlxcdHR4Z2JlX2dldF9tYWNfbGluayh3eCwgXFx1MDAyNnNwZWVkKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2FtbC5jLTM4OC1cXHRzdGF0ZS1cXHUwMDNlbGluayA9IHNwZWVkICE9IFNQRUVEX1VOS05PV047XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2FtbC5jLTM5Mi1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2FtbC5jOjM5MzpzdGF0aWMgdm9pZCB0eGdiZV9yZWNvbmZpZ19tYWMoc3RydWN0IHd4ICp3eClcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2FtbC5jLTM5NC17XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2FtbC5jLTQxMS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2FtbC5jOjQxMjpzdGF0aWMgdm9pZCB0eGdiZV9tYWNfbGlua191cF9hbWwoc3RydWN0IHBoeWxpbmtfY29uZmlnICpjb25maWcsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9hbWwuYy00MTMtXFx0XFx0XFx0XFx0ICBzdHJ1Y3QgcGh5X2RldmljZSAqcGh5LFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9hbWwuYy00MjMtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9hbWwuYzo0MjQ6XFx0dHhnYmVfcmVjb25maWdfbWFjKHd4KTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2FtbC5jOjQyNTpcXHR0eGdiZV9lbmFibGVfc2VjX3R4X3BhdGgod3gpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfYW1sLmMtNDI2LVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9hbWwuYy00NTQtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9hbWwuYzo0NTU6c3RhdGljIHZvaWQgdHhnYmVfbWFjX2xpbmtfZG93bl9hbWwoc3RydWN0IHBoeWxpbmtfY29uZmlnICpjb25maWcsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9hbWwuYy00NTYtXFx0XFx0XFx0XFx0ICAgIHVuc2lnbmVkIGludCBtb2RlLFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9hbWwuYy00NzAtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9hbWwuYzo0NzE6c3RhdGljIHZvaWQgdHhnYmVfbWFjX2NvbmZpZ19hbWwoc3RydWN0IHBoeWxpbmtfY29uZmlnICpjb25maWcsIHVuc2lnbmVkIGludCBtb2RlLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfYW1sLmMtNDcyLVxcdFxcdFxcdFxcdCBjb25zdCBzdHJ1Y3QgcGh5bGlua19saW5rX3N0YXRlICpzdGF0ZSlcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfYW1sLmMtNDc1LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfYW1sLmM6NDc2OnN0YXRpYyBjb25zdCBzdHJ1Y3QgcGh5bGlua19tYWNfb3BzIHR4Z2JlX21hY19vcHNfYW1sID0ge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfYW1sLmM6NDc3OlxcdC5tYWNfY29uZmlnID0gdHhnYmVfbWFjX2NvbmZpZ19hbWwsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9hbWwuYzo0Nzg6XFx0Lm1hY19saW5rX2Rvd24gPSB0eGdiZV9tYWNfbGlua19kb3duX2FtbCxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2FtbC5jOjQ3OTpcXHQubWFjX2xpbmtfdXAgPSB0eGdiZV9tYWNfbGlua191cF9hbWwsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9hbWwuYy00ODAtfTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2FtbC5jLTQ4MS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2FtbC5jOjQ4MjppbnQgdHhnYmVfcGh5bGlua19pbml0X2FtbChzdHJ1Y3QgdHhnYmUgKnR4Z2JlKVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfYW1sLmMtNDgzLXtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfYW1sLmMtNDg1LVxcdHN0cnVjdCBwaHlsaW5rX2NvbmZpZyAqY29uZmlnO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfYW1sLmM6NDg2OlxcdHN0cnVjdCB3eCAqd3ggPSB0eGdiZS1cXHUwMDNld3g7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9hbWwuYy00ODctXFx0cGh5X2ludGVyZmFjZV90IHBoeV9tb2RlO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9hbWwuYy00OTUtXFx0XFx0XFx0XFx0ICAgTUFDX1NZTV9QQVVTRSB8IE1BQ19BU1lNX1BBVVNFO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfYW1sLmM6NDk2OlxcdGNvbmZpZy1cXHUwMDNlZ2V0X2ZpeGVkX3N0YXRlID0gdHhnYmVfZ2V0X2xpbmtfc3RhdGU7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9hbWwuYy00OTctXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2FtbC5jLTUxMi1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2FtbC5jOjUxMzpcXHRwaHlsaW5rID0gcGh5bGlua19jcmVhdGUoY29uZmlnLCBOVUxMLCBwaHlfbW9kZSwgXFx1MDAyNnR4Z2JlX21hY19vcHNfYW1sKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2FtbC5jLTUxNC1cXHRpZiAoSVNfRVJSKHBoeWxpbmspKVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9hbWwuaC02LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfYW1sLmg6Nzp2b2lkIHR4Z2JlX2dwaW9faW5pdF9hbWwoc3RydWN0IHd4ICp3eCk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9hbWwuaDo4OmlycXJldHVybl90IHR4Z2JlX2dwaW9faXJxX2hhbmRsZXJfYW1sKGludCBpcnEsIHZvaWQgKmRhdGEpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfYW1sLmg6OTppbnQgdHhnYmVfdGVzdF9ob3N0aWYoc3RydWN0IHd4ICp3eCk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9hbWwuaDoxMDppbnQgdHhnYmVfcmVhZF9lZXByb21faG9zdGlmKHN0cnVjdCB3eCAqd3gsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9hbWwuaDoxMTpcXHRcXHRcXHQgICAgIHN0cnVjdCB0eGdiZV9oaWNfaTJjX3JlYWQgKmJ1ZmZlcixcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2FtbC5oLTEyLVxcdFxcdFxcdCAgICAgdTMyIGxlbmd0aCwgdTggKmRhdGEpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfYW1sLmg6MTM6dm9pZCB0eGdiZV9zZXRfcGh5X2xpbmsoc3RydWN0IHd4ICp3eCk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9hbWwuaDoxNDppbnQgdHhnYmVfaWRlbnRpZnlfbW9kdWxlKHN0cnVjdCB3eCAqd3gpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfYW1sLmg6MTU6dm9pZCB0eGdiZV9zZXR1cF9saW5rKHN0cnVjdCB3eCAqd3gpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfYW1sLmg6MTY6aW50IHR4Z2JlX3BoeWxpbmtfaW5pdF9hbWwoc3RydWN0IHR4Z2JlICp0eGdiZSk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9hbWwuaC0xNy1cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfZXRodG9vbC5jLTEwLSNpbmNsdWRlIFxcXCIuLi9saWJ3eC93eF9saWIuaFxcXCJcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2V0aHRvb2wuYzoxMTojaW5jbHVkZSBcXFwidHhnYmVfdHlwZS5oXFxcIlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfZXRodG9vbC5jOjEyOiNpbmNsdWRlIFxcXCJ0eGdiZV9mZGlyLmhcXFwiXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9ldGh0b29sLmM6MTM6I2luY2x1ZGUgXFxcInR4Z2JlX2FtbC5oXFxcIlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfZXRodG9vbC5jOjE0OiNpbmNsdWRlIFxcXCJ0eGdiZV9ldGh0b29sLmhcXFwiXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9ldGh0b29sLmMtMTUtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9ldGh0b29sLmM6MTY6aW50IHR4Z2JlX2dldF9saW5rX2tzZXR0aW5ncyhzdHJ1Y3QgbmV0X2RldmljZSAqbmV0ZGV2LFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfZXRodG9vbC5jLTE3LVxcdFxcdFxcdCAgICAgc3RydWN0IGV0aHRvb2xfbGlua19rc2V0dGluZ3MgKmNtZClcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfZXRodG9vbC5jLTE5LVxcdHN0cnVjdCB3eCAqd3ggPSBuZXRkZXZfcHJpdihuZXRkZXYpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfZXRodG9vbC5jOjIwOlxcdHN0cnVjdCB0eGdiZSAqdHhnYmUgPSB3eC1cXHUwMDNlcHJpdjtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2V0aHRvb2wuYy0yMS1cXHRpbnQgZXJyO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9ldGh0b29sLmMtMjktXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9ldGh0b29sLmM6MzA6XFx0Y21kLVxcdTAwM2ViYXNlLnBvcnQgPSB0eGdiZS1cXHUwMDNlbGlua19wb3J0O1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfZXRodG9vbC5jOjMxOlxcdGNtZC1cXHUwMDNlYmFzZS5hdXRvbmVnID0gcGh5bGlua190ZXN0KHR4Z2JlLVxcdTAwM2VhZHZlcnRpc2luZywgQXV0b25lZykgP1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfZXRodG9vbC5jLTMyLVxcdFxcdFxcdCAgICBBVVRPTkVHX0VOQUJMRSA6IEFVVE9ORUdfRElTQUJMRTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2V0aHRvb2wuYzozMzpcXHRsaW5rbW9kZV9jb3B5KGNtZC1cXHUwMDNlbGlua19tb2Rlcy5zdXBwb3J0ZWQsIHR4Z2JlLVxcdTAwM2VsaW5rX3N1cHBvcnQpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfZXRodG9vbC5jOjM0OlxcdGxpbmttb2RlX2NvcHkoY21kLVxcdTAwM2VsaW5rX21vZGVzLmFkdmVydGlzaW5nLCB0eGdiZS1cXHUwMDNlYWR2ZXJ0aXNpbmcpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfZXRodG9vbC5jLTM1LVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9ldGh0b29sLmMtMzgtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9ldGh0b29sLmM6Mzk6c3RhdGljIGludCB0eGdiZV9zZXRfcmluZ3BhcmFtKHN0cnVjdCBuZXRfZGV2aWNlICpuZXRkZXYsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9ldGh0b29sLmMtNDAtXFx0XFx0XFx0ICAgICAgIHN0cnVjdCBldGh0b29sX3JpbmdwYXJhbSAqcmluZyxcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfZXRodG9vbC5jLTgwLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfZXRodG9vbC5jOjgxOlxcdHR4Z2JlX2Rvd24od3gpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfZXRodG9vbC5jLTgyLVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9ldGh0b29sLmMtODUtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9ldGh0b29sLmM6ODY6XFx0dHhnYmVfdXAod3gpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfZXRodG9vbC5jLTg3LVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9ldGh0b29sLmMtOTMtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9ldGh0b29sLmM6OTQ6c3RhdGljIGludCB0eGdiZV9nZXRfZXRodG9vbF9mZGlyX2VudHJ5KHN0cnVjdCB0eGdiZSAqdHhnYmUsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9ldGh0b29sLmMtOTUtXFx0XFx0XFx0XFx0XFx0c3RydWN0IGV0aHRvb2xfcnhuZmMgKmNtZClcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfZXRodG9vbC5jLTk4LVxcdFxcdChzdHJ1Y3QgZXRodG9vbF9yeF9mbG93X3NwZWMgKilcXHUwMDI2Y21kLVxcdTAwM2VmcztcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2V0aHRvb2wuYzo5OTpcXHR1bmlvbiB0eGdiZV9hdHJfaW5wdXQgKm1hc2sgPSBcXHUwMDI2dHhnYmUtXFx1MDAzZWZkaXJfbWFzaztcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2V0aHRvb2wuYzoxMDA6XFx0c3RydWN0IHR4Z2JlX2ZkaXJfZmlsdGVyICpydWxlID0gTlVMTDtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2V0aHRvb2wuYy0xMDEtXFx0c3RydWN0IGhsaXN0X25vZGUgKm5vZGU7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2V0aHRvb2wuYy0xMDUtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9ldGh0b29sLmM6MTA2OlxcdGhsaXN0X2Zvcl9lYWNoX2VudHJ5X3NhZmUocnVsZSwgbm9kZSwgXFx1MDAyNnR4Z2JlLVxcdTAwM2VmZGlyX2ZpbHRlcl9saXN0LFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfZXRodG9vbC5jLTEwNy1cXHRcXHRcXHRcXHQgIGZkaXJfbm9kZSkge1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9ldGh0b29sLmMtMTU4LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfZXRodG9vbC5jOjE1OTpzdGF0aWMgaW50IHR4Z2JlX2dldF9ldGh0b29sX2ZkaXJfYWxsKHN0cnVjdCB0eGdiZSAqdHhnYmUsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9ldGh0b29sLmMtMTYwLVxcdFxcdFxcdFxcdCAgICAgIHN0cnVjdCBldGh0b29sX3J4bmZjICpjbWQsXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2V0aHRvb2wuYy0xNjIte1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfZXRodG9vbC5jOjE2MzpcXHRzdHJ1Y3QgdHhnYmVfZmRpcl9maWx0ZXIgKnJ1bGU7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9ldGh0b29sLmMtMTY0LVxcdHN0cnVjdCBobGlzdF9ub2RlICpub2RlO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9ldGh0b29sLmMtMTY5LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfZXRodG9vbC5jOjE3MDpcXHRobGlzdF9mb3JfZWFjaF9lbnRyeV9zYWZlKHJ1bGUsIG5vZGUsIFxcdTAwMjZ0eGdiZS1cXHUwMDNlZmRpcl9maWx0ZXJfbGlzdCxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2V0aHRvb2wuYy0xNzEtXFx0XFx0XFx0XFx0ICBmZGlyX25vZGUpIHtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfZXRodG9vbC5jLTE4Mi1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2V0aHRvb2wuYzoxODM6c3RhdGljIHUzMiB0eGdiZV9nZXRfcnhfcmluZ19jb3VudChzdHJ1Y3QgbmV0X2RldmljZSAqZGV2KVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfZXRodG9vbC5jLTE4NC17XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2V0aHRvb2wuYy0xODktXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9ldGh0b29sLmM6MTkwOnN0YXRpYyBpbnQgdHhnYmVfZ2V0X3J4bmZjKHN0cnVjdCBuZXRfZGV2aWNlICpkZXYsIHN0cnVjdCBldGh0b29sX3J4bmZjICpjbWQsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9ldGh0b29sLmMtMTkxLVxcdFxcdFxcdCAgIHUzMiAqcnVsZV9sb2NzKVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9ldGh0b29sLmMtMTkzLVxcdHN0cnVjdCB3eCAqd3ggPSBuZXRkZXZfcHJpdihkZXYpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfZXRodG9vbC5jOjE5NDpcXHRzdHJ1Y3QgdHhnYmUgKnR4Z2JlID0gd3gtXFx1MDAzZXByaXY7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9ldGh0b29sLmMtMTk1LVxcdGludCByZXQgPSAtRU9QTk9UU1VQUDtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfZXRodG9vbC5jLTE5OC1cXHRjYXNlIEVUSFRPT0xfR1JYQ0xTUkxDTlQ6XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9ldGh0b29sLmM6MTk5OlxcdFxcdGNtZC1cXHUwMDNlcnVsZV9jbnQgPSB0eGdiZS1cXHUwMDNlZmRpcl9maWx0ZXJfY291bnQ7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9ldGh0b29sLmMtMjAwLVxcdFxcdHJldCA9IDA7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2V0aHRvb2wuYy0yMDItXFx0Y2FzZSBFVEhUT09MX0dSWENMU1JVTEU6XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9ldGh0b29sLmM6MjAzOlxcdFxcdHJldCA9IHR4Z2JlX2dldF9ldGh0b29sX2ZkaXJfZW50cnkodHhnYmUsIGNtZCk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9ldGh0b29sLmMtMjA0LVxcdFxcdGJyZWFrO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfZXRodG9vbC5jLTIwNS1cXHRjYXNlIEVUSFRPT0xfR1JYQ0xTUkxBTEw6XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9ldGh0b29sLmM6MjA2OlxcdFxcdHJldCA9IHR4Z2JlX2dldF9ldGh0b29sX2ZkaXJfYWxsKHR4Z2JlLCBjbWQsICh1MzIgKilydWxlX2xvY3MpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfZXRodG9vbC5jLTIwNy1cXHRcXHRicmVhaztcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfZXRodG9vbC5jLTIxNC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2V0aHRvb2wuYzoyMTU6c3RhdGljIGludCB0eGdiZV9mbG93c3BlY190b19mbG93X3R5cGUoc3RydWN0IGV0aHRvb2xfcnhfZmxvd19zcGVjICpmc3AsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9ldGh0b29sLmMtMjE2LVxcdFxcdFxcdFxcdCAgICAgICB1OCAqZmxvd190eXBlKVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9ldGh0b29sLmMtMjU1LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfZXRodG9vbC5jOjI1NjpzdGF0aWMgYm9vbCB0eGdiZV9tYXRjaF9ldGh0b29sX2ZkaXJfZW50cnkoc3RydWN0IHR4Z2JlICp0eGdiZSxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2V0aHRvb2wuYzoyNTc6XFx0XFx0XFx0XFx0XFx0ICAgc3RydWN0IHR4Z2JlX2ZkaXJfZmlsdGVyICppbnB1dClcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2V0aHRvb2wuYy0yNTgte1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfZXRodG9vbC5jOjI1OTpcXHRzdHJ1Y3QgdHhnYmVfZmRpcl9maWx0ZXIgKnJ1bGUgPSBOVUxMO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfZXRodG9vbC5jLTI2MC1cXHRzdHJ1Y3QgaGxpc3Rfbm9kZSAqbm9kZTI7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9ldGh0b29sLmMtMjYxLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfZXRodG9vbC5jOjI2MjpcXHRobGlzdF9mb3JfZWFjaF9lbnRyeV9zYWZlKHJ1bGUsIG5vZGUyLCBcXHUwMDI2dHhnYmUtXFx1MDAzZWZkaXJfZmlsdGVyX2xpc3QsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9ldGh0b29sLmMtMjYzLVxcdFxcdFxcdFxcdCAgZmRpcl9ub2RlKSB7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2V0aHRvb2wuYy0yNjYtXFx0XFx0ICAgIHJ1bGUtXFx1MDAzZWFjdGlvbiA9PSBpbnB1dC1cXHUwMDNlYWN0aW9uKSB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9ldGh0b29sLmM6MjY3OlxcdFxcdFxcdHd4X2RiZyh0eGdiZS1cXHUwMDNld3gsIFxcXCJGRElSIGVudHJ5IGFscmVhZHkgZXhpc3RcXFxcblxcXCIpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfZXRodG9vbC5jLTI2OC1cXHRcXHRcXHRyZXR1cm4gdHJ1ZTtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfZXRodG9vbC5jLTI3My1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2V0aHRvb2wuYzoyNzQ6c3RhdGljIGludCB0eGdiZV91cGRhdGVfZXRodG9vbF9mZGlyX2VudHJ5KHN0cnVjdCB0eGdiZSAqdHhnYmUsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9ldGh0b29sLmM6Mjc1OlxcdFxcdFxcdFxcdFxcdCAgIHN0cnVjdCB0eGdiZV9mZGlyX2ZpbHRlciAqaW5wdXQsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9ldGh0b29sLmMtMjc2LVxcdFxcdFxcdFxcdFxcdCAgIHUxNiBzd19pZHgpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2V0aHRvb2wuYy0yNzgtXFx0c3RydWN0IGhsaXN0X25vZGUgKm5vZGUgPSBOVUxMLCAqcGFyZW50ID0gTlVMTDtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2V0aHRvb2wuYzoyNzk6XFx0c3RydWN0IHR4Z2JlX2ZkaXJfZmlsdGVyICpydWxlO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfZXRodG9vbC5jOjI4MDpcXHRzdHJ1Y3Qgd3ggKnd4ID0gdHhnYmUtXFx1MDAzZXd4O1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfZXRodG9vbC5jLTI4MS1cXHRib29sIGRlbGV0ZWQgPSBmYWxzZTtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfZXRodG9vbC5jLTI4My1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2V0aHRvb2wuYzoyODQ6XFx0aGxpc3RfZm9yX2VhY2hfZW50cnlfc2FmZShydWxlLCBub2RlLCBcXHUwMDI2dHhnYmUtXFx1MDAzZWZkaXJfZmlsdGVyX2xpc3QsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9ldGh0b29sLmMtMjg1LVxcdFxcdFxcdFxcdCAgZmRpcl9ub2RlKSB7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2V0aHRvb2wuYy0zMDAtXFx0XFx0ICAgICBpbnB1dC1cXHUwMDNlZmlsdGVyLmZvcm1hdHRlZC5ia3RfaGFzaCkpIHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2V0aHRvb2wuYzozMDE6XFx0XFx0XFx0ZXJyID0gdHhnYmVfZmRpcl9lcmFzZV9wZXJmZWN0X2ZpbHRlcih3eCxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2V0aHRvb2wuYy0zMDItXFx0XFx0XFx0XFx0XFx0XFx0XFx0ICAgICAgXFx1MDAyNnJ1bGUtXFx1MDAzZWZpbHRlcixcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfZXRodG9vbC5jLTMwOS1cXHRcXHRrZnJlZShydWxlKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2V0aHRvb2wuYzozMTA6XFx0XFx0dHhnYmUtXFx1MDAzZWZkaXJfZmlsdGVyX2NvdW50LS07XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9ldGh0b29sLmMtMzExLVxcdFxcdGRlbGV0ZWQgPSB0cnVlO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9ldGh0b29sLmMtMzI4LVxcdFxcdGhsaXN0X2FkZF9oZWFkKFxcdTAwMjZpbnB1dC1cXHUwMDNlZmRpcl9ub2RlLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfZXRodG9vbC5jOjMyOTpcXHRcXHRcXHQgICAgICAgXFx1MDAyNnR4Z2JlLVxcdTAwM2VmZGlyX2ZpbHRlcl9saXN0KTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2V0aHRvb2wuYy0zMzAtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9ldGh0b29sLmMtMzMxLVxcdC8qIHVwZGF0ZSBjb3VudHMgKi9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2V0aHRvb2wuYzozMzI6XFx0dHhnYmUtXFx1MDAzZWZkaXJfZmlsdGVyX2NvdW50Kys7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9ldGh0b29sLmMtMzMzLVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9ldGh0b29sLmMtMzM2LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfZXRodG9vbC5jOjMzNzpzdGF0aWMgaW50IHR4Z2JlX2FkZF9ldGh0b29sX2ZkaXJfZW50cnkoc3RydWN0IHR4Z2JlICp0eGdiZSxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2V0aHRvb2wuYy0zMzgtXFx0XFx0XFx0XFx0XFx0c3RydWN0IGV0aHRvb2xfcnhuZmMgKmNtZClcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfZXRodG9vbC5jLTM0MS1cXHRcXHQoc3RydWN0IGV0aHRvb2xfcnhfZmxvd19zcGVjICopXFx1MDAyNmNtZC1cXHUwMDNlZnM7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9ldGh0b29sLmM6MzQyOlxcdHN0cnVjdCB0eGdiZV9mZGlyX2ZpbHRlciAqaW5wdXQ7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9ldGh0b29sLmM6MzQzOlxcdHVuaW9uIHR4Z2JlX2F0cl9pbnB1dCBtYXNrO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfZXRodG9vbC5jOjM0NDpcXHRzdHJ1Y3Qgd3ggKnd4ID0gdHhnYmUtXFx1MDAzZXd4O1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfZXRodG9vbC5jLTM0NS1cXHRpbnQgZXJyID0gLUVJTlZBTDtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfZXRodG9vbC5jLTM1MS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2V0aHRvb2wuYzozNTI6XFx0LyogcmluZ19jb29raWUgaXMgYSBtYXNrZWQgaW50byBhIHNldCBvZiBxdWV1ZXMgYW5kIHR4Z2JlIHBvb2xzIG9yXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9ldGh0b29sLmMtMzUzLVxcdCAqIHdlIHVzZSBkcm9wIGluZGV4XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2V0aHRvb2wuYy0zODMtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9ldGh0b29sLmM6Mzg0OlxcdG1lbXNldChcXHUwMDI2bWFzaywgMCwgc2l6ZW9mKHVuaW9uIHR4Z2JlX2F0cl9pbnB1dCkpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfZXRodG9vbC5jLTM4NS1cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfZXRodG9vbC5jLTM4OS1cXHQvKiByZWNvcmQgZmxvdyB0eXBlICovXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9ldGh0b29sLmM6MzkwOlxcdGlmICh0eGdiZV9mbG93c3BlY190b19mbG93X3R5cGUoZnNwLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfZXRodG9vbC5jLTM5MS1cXHRcXHRcXHRcXHRcXHRcXHUwMDI2aW5wdXQtXFx1MDAzZWZpbHRlci5mb3JtYXR0ZWQuZmxvd190eXBlKSkge1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9ldGh0b29sLmMtNDUwLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfZXRodG9vbC5jOjQ1MTpcXHRzcGluX2xvY2soXFx1MDAyNnR4Z2JlLVxcdTAwM2VmZGlyX3BlcmZlY3RfbG9jayk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9ldGh0b29sLmMtNDUyLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfZXRodG9vbC5jOjQ1MzpcXHRpZiAoaGxpc3RfZW1wdHkoXFx1MDAyNnR4Z2JlLVxcdTAwM2VmZGlyX2ZpbHRlcl9saXN0KSkge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfZXRodG9vbC5jLTQ1NC1cXHRcXHQvKiBzYXZlIG1hc2sgYW5kIHByb2dyYW0gaW5wdXQgbWFzayBpbnRvIEhXICovXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9ldGh0b29sLmM6NDU1OlxcdFxcdG1lbWNweShcXHUwMDI2dHhnYmUtXFx1MDAzZWZkaXJfbWFzaywgXFx1MDAyNm1hc2ssIHNpemVvZihtYXNrKSk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9ldGh0b29sLmM6NDU2OlxcdFxcdGVyciA9IHR4Z2JlX2ZkaXJfc2V0X2lucHV0X21hc2sod3gsIFxcdTAwMjZtYXNrKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2V0aHRvb2wuYy00NTctXFx0XFx0aWYgKGVycilcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2V0aHRvb2wuYy00NTgtXFx0XFx0XFx0Z290byBlcnJfdW5sb2NrO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfZXRodG9vbC5jOjQ1OTpcXHR9IGVsc2UgaWYgKG1lbWNtcChcXHUwMDI2dHhnYmUtXFx1MDAzZWZkaXJfbWFzaywgXFx1MDAyNm1hc2ssIHNpemVvZihtYXNrKSkpIHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2V0aHRvb2wuYy00NjAtXFx0XFx0d3hfZXJyKHd4LCBcXFwiSGFyZHdhcmUgb25seSBzdXBwb3J0cyBvbmUgbWFzayBwZXIgcG9ydC4gVG8gY2hhbmdlIHRoZSBtYXNrIHlvdSBtdXN0IGZpcnN0IGRlbGV0ZSBhbGwgdGhlIHJ1bGVzLlxcXFxuXFxcIik7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2V0aHRvb2wuYy00NjQtXFx0LyogYXBwbHkgbWFzayBhbmQgY29tcHV0ZS9zdG9yZSBoYXNoICovXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9ldGh0b29sLmM6NDY1OlxcdHR4Z2JlX2F0cl9jb21wdXRlX3BlcmZlY3RfaGFzaChcXHUwMDI2aW5wdXQtXFx1MDAzZWZpbHRlciwgXFx1MDAyNm1hc2spO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfZXRodG9vbC5jLTQ2Ni1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2V0aHRvb2wuYy00NjctXFx0LyogY2hlY2sgaWYgbmV3IGVudHJ5IGRvZXMgbm90IGV4aXN0IG9uIGZpbHRlciBsaXN0ICovXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9ldGh0b29sLmM6NDY4OlxcdGlmICh0eGdiZV9tYXRjaF9ldGh0b29sX2ZkaXJfZW50cnkodHhnYmUsIGlucHV0KSlcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2V0aHRvb2wuYy00NjktXFx0XFx0Z290byBlcnJfdW5sb2NrO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9ldGh0b29sLmMtNDc1LVxcdGlmIChuZXRpZl9ydW5uaW5nKHd4LVxcdTAwM2VuZXRkZXYpKSB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9ldGh0b29sLmM6NDc2OlxcdFxcdGVyciA9IHR4Z2JlX2ZkaXJfd3JpdGVfcGVyZmVjdF9maWx0ZXIod3gsIFxcdTAwMjZpbnB1dC1cXHUwMDNlZmlsdGVyLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfZXRodG9vbC5jLTQ3Ny1cXHRcXHRcXHRcXHRcXHRcXHQgICAgICBpbnB1dC1cXHUwMDNlc3dfaWR4LCBxdWV1ZSk7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2V0aHRvb2wuYy00ODEtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9ldGh0b29sLmM6NDgyOlxcdHR4Z2JlX3VwZGF0ZV9ldGh0b29sX2ZkaXJfZW50cnkodHhnYmUsIGlucHV0LCBpbnB1dC1cXHUwMDNlc3dfaWR4KTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2V0aHRvb2wuYy00ODMtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9ldGh0b29sLmM6NDg0OlxcdHNwaW5fdW5sb2NrKFxcdTAwMjZ0eGdiZS1cXHUwMDNlZmRpcl9wZXJmZWN0X2xvY2spO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfZXRodG9vbC5jLTQ4NS1cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfZXRodG9vbC5jLTQ4Ny1lcnJfdW5sb2NrOlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfZXRodG9vbC5jOjQ4ODpcXHRzcGluX3VubG9jayhcXHUwMDI2dHhnYmUtXFx1MDAzZWZkaXJfcGVyZmVjdF9sb2NrKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2V0aHRvb2wuYy00ODktZXJyX291dDpcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfZXRodG9vbC5jLTQ5My1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2V0aHRvb2wuYzo0OTQ6c3RhdGljIGludCB0eGdiZV9kZWxfZXRodG9vbF9mZGlyX2VudHJ5KHN0cnVjdCB0eGdiZSAqdHhnYmUsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9ldGh0b29sLmMtNDk1LVxcdFxcdFxcdFxcdFxcdHN0cnVjdCBldGh0b29sX3J4bmZjICpjbWQpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2V0aHRvb2wuYy01MDAtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9ldGh0b29sLmM6NTAxOlxcdHNwaW5fbG9jayhcXHUwMDI2dHhnYmUtXFx1MDAzZWZkaXJfcGVyZmVjdF9sb2NrKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2V0aHRvb2wuYzo1MDI6XFx0ZXJyID0gdHhnYmVfdXBkYXRlX2V0aHRvb2xfZmRpcl9lbnRyeSh0eGdiZSwgTlVMTCwgZnNwLVxcdTAwM2Vsb2NhdGlvbik7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9ldGh0b29sLmM6NTAzOlxcdHNwaW5fdW5sb2NrKFxcdTAwMjZ0eGdiZS1cXHUwMDNlZmRpcl9wZXJmZWN0X2xvY2spO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfZXRodG9vbC5jLTUwNC1cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfZXRodG9vbC5jLTUwNy1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2V0aHRvb2wuYzo1MDg6c3RhdGljIGludCB0eGdiZV9zZXRfcnhuZmMoc3RydWN0IG5ldF9kZXZpY2UgKmRldiwgc3RydWN0IGV0aHRvb2xfcnhuZmMgKmNtZClcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2V0aHRvb2wuYy01MDkte1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfZXRodG9vbC5jLTUxMC1cXHRzdHJ1Y3Qgd3ggKnd4ID0gbmV0ZGV2X3ByaXYoZGV2KTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2V0aHRvb2wuYzo1MTE6XFx0c3RydWN0IHR4Z2JlICp0eGdiZSA9IHd4LVxcdTAwM2Vwcml2O1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfZXRodG9vbC5jLTUxMi1cXHRpbnQgcmV0ID0gLUVPUE5PVFNVUFA7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2V0aHRvb2wuYy01MTUtXFx0Y2FzZSBFVEhUT09MX1NSWENMU1JMSU5TOlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfZXRodG9vbC5jOjUxNjpcXHRcXHRyZXQgPSB0eGdiZV9hZGRfZXRodG9vbF9mZGlyX2VudHJ5KHR4Z2JlLCBjbWQpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfZXRodG9vbC5jLTUxNy1cXHRcXHRicmVhaztcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2V0aHRvb2wuYy01MTgtXFx0Y2FzZSBFVEhUT09MX1NSWENMU1JMREVMOlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfZXRodG9vbC5jOjUxOTpcXHRcXHRyZXQgPSB0eGdiZV9kZWxfZXRodG9vbF9mZGlyX2VudHJ5KHR4Z2JlLCBjbWQpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfZXRodG9vbC5jLTUyMC1cXHRcXHRicmVhaztcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfZXRodG9vbC5jPTUyOD1zdGF0aWMgaW50XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9ldGh0b29sLmM6NTI5OnR4Z2JlX2dldF9tb2R1bGVfZWVwcm9tX2J5X3BhZ2Uoc3RydWN0IG5ldF9kZXZpY2UgKm5ldGRldixcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2V0aHRvb2wuYy01MzAtXFx0XFx0XFx0XFx0Y29uc3Qgc3RydWN0IGV0aHRvb2xfbW9kdWxlX2VlcHJvbSAqcGFnZV9kYXRhLFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9ldGh0b29sLmMtNTMzLVxcdHN0cnVjdCB3eCAqd3ggPSBuZXRkZXZfcHJpdihuZXRkZXYpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfZXRodG9vbC5jOjUzNDpcXHRzdHJ1Y3QgdHhnYmVfaGljX2kyY19yZWFkIGJ1ZmZlcjtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2V0aHRvb2wuYy01MzUtXFx0aW50IGVycjtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfZXRodG9vbC5jLTU0NS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2V0aHRvb2wuYzo1NDY6XFx0ZXJyID0gdHhnYmVfcmVhZF9lZXByb21faG9zdGlmKHd4LCBcXHUwMDI2YnVmZmVyLCBwYWdlX2RhdGEtXFx1MDAzZWxlbmd0aCxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2V0aHRvb2wuYy01NDctXFx0XFx0XFx0XFx0ICAgICAgIHBhZ2VfZGF0YS1cXHUwMDNlZGF0YSk7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2V0aHRvb2wuYy01NTUtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9ldGh0b29sLmM6NTU2OnN0YXRpYyBjb25zdCBzdHJ1Y3QgZXRodG9vbF9vcHMgdHhnYmVfZXRodG9vbF9vcHMgPSB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9ldGh0b29sLmMtNTU3LVxcdC5zdXBwb3J0ZWRfY29hbGVzY2VfcGFyYW1zID0gRVRIVE9PTF9DT0FMRVNDRV9VU0VDUyB8XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2V0aHRvb2wuYy01NjItXFx0LmdldF9saW5rXFx0XFx0PSBldGh0b29sX29wX2dldF9saW5rLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfZXRodG9vbC5jOjU2MzpcXHQuZ2V0X2xpbmtfa3NldHRpbmdzXFx0PSB0eGdiZV9nZXRfbGlua19rc2V0dGluZ3MsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9ldGh0b29sLmMtNTY0LVxcdC5zZXRfbGlua19rc2V0dGluZ3NcXHQ9IHd4X3NldF9saW5rX2tzZXR0aW5ncyxcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfZXRodG9vbC5jLTU3Mi1cXHQuZ2V0X3JpbmdwYXJhbVxcdFxcdD0gd3hfZ2V0X3JpbmdwYXJhbSxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2V0aHRvb2wuYzo1NzM6XFx0LnNldF9yaW5ncGFyYW1cXHRcXHQ9IHR4Z2JlX3NldF9yaW5ncGFyYW0sXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9ldGh0b29sLmMtNTc0LVxcdC5nZXRfY29hbGVzY2VcXHRcXHQ9IHd4X2dldF9jb2FsZXNjZSxcXG4tLVxcblxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0yNFQwNzo1Njo1MS43MzE0MTc1ODVaIiwiU2VxIjo1LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo4NzY5MjU1MDEzLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJPa2F5LCBoZXJlJ3MgbXkgdGFrZSBvbiB0aG9zZSB0aG91Z2h0cywgZnJhbWVkIGFzIG15IG93bjpcblxuKipJbnZlc3RpZ2F0aW5nIHRoZSBXYW5neHVuIHR4Z2JlIERyaXZlcioqXG5cbkFscmlnaHQsIHRoZSBvdXRwdXQncyBpbmRpY2F0aW5nIGB0eGdiZWAgaXMgYSBkcml2ZXIgcmVsYXRlZCB0byBXYW5neHVuIGhhcmR3YXJlLiBNeSBmaXJzdCBpbnN0aW5jdCwgYXMgYWx3YXlzLCBpcyB0byBkaXZlIGludG8gdGhlIEtjb25maWcuIEkgbmVlZCB0byB1bmRlcnN0YW5kICpleGFjdGx5KiB3aGF0IGtpbmQgb2YgaGFyZHdhcmUgdGhpcyBkcml2ZXIgc3VwcG9ydHMuIElzIGl0IGEgc3BlY2lmaWMgTklDPyBBIHN3aXRjaD8gS25vd2luZyB0aGUgaGFyZHdhcmUgdGFyZ2V0IGlzIGNyaXRpY2FsIHRvIGFzc2VzcyB0aGUgZHJpdmVyJ3MgcHVycG9zZSwgY2FwYWJpbGl0aWVzLCBhbmQgZGVwZW5kZW5jaWVzLiBUaGUgS2NvbmZpZyBmaWxlIGlzIHRoZSBmaXJzdCBwbGFjZSBJJ2xsIGxvb2suIEl0J2xsIGdpdmUgbWUgdGhlIGNvbmZpZ3VyYXRpb24gb3B0aW9ucywgdGhlIGRlcGVuZGVuY2llcywgbWF5YmUgZXZlbiBzb21lIGNsdWVzIGFib3V0IHRoZSB1bmRlcmx5aW5nIGhhcmR3YXJlIGFyY2hpdGVjdHVyZSwgYW5kIHVsdGltYXRlbHksIGEgbXVjaCBiZXR0ZXIgdW5kZXJzdGFuZGluZyBvZiB3aGF0IHdlJ3JlIGRlYWxpbmcgd2l0aCBoZXJlLlxuXG5cbiIsIklucHV0VG9rZW5zIjoxOTQ5OSwiT3V0cHV0VG9rZW5zIjozOSwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjQyLCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTI0VDA3OjU3OjAwLjUwMDY3NTQ0OFoiLCJTZXEiOjYsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo0NTU3NjQ2OSwiRXJyb3IiOiJubyBtYXRjaGVzIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiY29uZmlnIFRYR0JFXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcImVycm9yXCI6IFwibm8gbWF0Y2hlc1wiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0yNFQwNzo1NzowMC41NDYyNjc0NTdaIiwiU2VxIjo3LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjoxNTA5NTE4MTg2OCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiSGVyZSdzIG15IGF0dGVtcHQgYXQgc3VtbWFyaXppbmcgdGhlIHRob3VnaHQgcHJvY2VzcywgdGFpbG9yZWQgZm9yIGFuIGV4cGVydCBhdWRpZW5jZTpcblxuKipLY29uZmlnIExvY2F0aW9uIC0gUXVpY2sgQXNzZXNzbWVudCoqXG5cbk9rYXksIHNvIEkgbmVlZCB0byBmaW5kIHRoZSBLY29uZmlnIGZpbGUgcmVsYXRlZCB0byBhIHNwZWNpZmljIEV0aGVybmV0IGRyaXZlciwgbGlrZWx5IGZvciBhIFdhbmd4dW4gZGV2aWNlLiBCYXNlZCBvbiBlc3RhYmxpc2hlZCBrZXJuZWwgY29kaW5nIGNvbnZlbnRpb25zLCBteSBmaXJzdCBpbnN0aW5jdCBpcyB0byBjaGVjayB0aGUgYGRyaXZlcnMvbmV0L2V0aGVybmV0YCBkaXJlY3RvcnksIHdoaWNoIGlzIHRoZSBtb3N0IGxvZ2ljYWwgcGxhY2UuIFNpbmNlIGl0J3MgYSB2ZW5kb3Itc3BlY2lmaWMgZHJpdmVyLCBJJ2QgZXhwZWN0IGEgdmVuZG9yLXNwZWNpZmljIHN1YmRpcmVjdG9yeS4gXCJXYW5neHVuXCIgaXMgdGhlIHZlbmRvciwgc28gdGhlIGZpbGUgaXMgKnByb2JhYmx5KiBpbiBgZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi9LY29uZmlnYC4gVGhhdCdzIHdoZXJlIEknZCBzdGFydC4gSXQncyB0aGUgbW9zdCBjb21tb24gYW5kIGludHVpdGl2ZSBsb2NhdGlvbiwgYWxpZ25pbmcgd2l0aCB0aGUgZ2VuZXJhbCBvcmdhbml6YXRpb24gcHJpbmNpcGxlcy4gVGhlcmUncyBhIGdvb2QgY2hhbmNlIGl0J3MgdGhlcmUsIGlmIG5vdCBJIGNhbiBnbyB3aXRoIGEgYGZpbmRgIGNvbW1hbmQgdG8gbmFycm93IGl0IGRvd24uXG5cblxuIiwiSW5wdXRUb2tlbnMiOjE5NzU2LCJPdXRwdXRUb2tlbnMiOjM1LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MjIsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDgtMjRUMDc6NTc6MTUuNjQxNDUyMjY1WiIsIlNlcSI6OCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjQ1MDEzMTkwLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcImNvbmZpZyBUWEdCRVwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJkcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJkcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL0tjb25maWc9Mjg9Y29uZmlnIE5HQkVcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vS2NvbmZpZy00Mi1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL0tjb25maWc6NDM6Y29uZmlnIFRYR0JFXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi9LY29uZmlnLTQ0LVxcdHRyaXN0YXRlIFxcXCJXYW5neHVuKFIpIDEwLzI1LzQwR2JFIFBDSSBFeHByZXNzIGFkYXB0ZXJzIHN1cHBvcnRcXFwiXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL0tjb25maWctNjYtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi9LY29uZmlnOjY3OmNvbmZpZyBUWEdCRVZGXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi9LY29uZmlnLTY4LVxcdHRyaXN0YXRlIFxcXCJXYW5neHVuKFIpIDEwLzI1LzQwRyBWaXJ0dWFsIEZ1bmN0aW9uIEV0aGVybmV0IHN1cHBvcnRcXFwiXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTI0VDA3OjU3OjE1LjY4NjQ3MTM4NVoiLCJTZXEiOjksIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjg5Mzc5Mjc4NjAsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqQW5hbHl6aW5nIHRoZSBQQ0kgRXhwcmVzcyBBZGFwdGVyIERyaXZlciBQYXRjaCoqXG5cbk9rYXksIHNvIHRoZSBwcm9tcHQgbWVudGlvbnMgXCJXYW5neHVuKFIpIDEwLzI1LzQwR2JFIFBDSSBFeHByZXNzIGFkYXB0ZXJzXCIg4oCTIHRoaXMgaXMgYSBwaHlzaWNhbCBQQ0llIGhhcmR3YXJlIGRyaXZlciwgc3BlY2lmaWNhbGx5IGB0eGdiZWAuIFRoZSBwcm9tcHQgZXhwbGljaXRseSB3YW50cyBtZSB0byByZXR1cm4gYFdvcnRoRnV6emluZz1mYWxzZWAgaWYgdGhlIHBhdGNoIGludm9sdmVzIGNvZGUgd2l0aGluIHZlbmRvci1zcGVjaWZpYyBQQ0llIGRyaXZlcnMgdGhhdCByZXF1aXJlIHBoeXNpY2FsIGhhcmR3YXJlIGFuZCBhcmVuJ3QgZW11bGF0ZWQgaW4gc3RhbmRhcmQgUUVNVS5cblxuTXkgaW1tZWRpYXRlIHRob3VnaHQgaXMsIFwiSXMgYHR4Z2JlYCBvbmUgb2YgdGhvc2U/XCIgQW5kIHllcywgaXQgY2xlYXJseSAqaXMqIGEgMTAvMjUvNDBHYkUgUENJZSBhZGFwdGVyIGRyaXZlci4gVGhlIGtleSBxdWVzdGlvbiB0aGVuIGlzLCBkb2VzIHN0YW5kYXJkIFFFTVUgZW11bGF0ZSBpdD8gQWJzb2x1dGVseSBub3QuIFFFTVUgaGFuZGxlcyBhIHJhbmdlIG9mIG5ldHdvcmsgY2FyZHMgbGlrZSBlMTAwMCwgaWdiLCB2aXJ0aW8tbmV0LCBldGMuLCBidXQgYFdhbmd4dW4gVFhHQkVgIGlzbid0IG9uIHRoYXQgbGlzdC4gSSBldmVuIGRvdWJsZS1jaGVja2VkIHRoZSB1c3VhbCBzdXNwZWN0cyBmb3IgUUVNVSBlbXVsYXRpb24uXG5cblRoZXJlZm9yZSwgYmVjYXVzZSB0aGlzIGRyaXZlciByZXF1aXJlcyBwaHlzaWNhbCBoYXJkd2FyZSwgYW5kIGlzICpub3QqIGVtdWxhdGVkIGluIHN0YW5kYXJkIFFFTVUsIHRoaXMgcGFydGljdWxhciBjb2RlIHBhdGggaXMgdW5yZWFjaGFibGUgaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgR29vZ2xlIENvbXB1dGUgRW5naW5lIG9yIFFFTVUuIEdpdmVuIHRoZSBwcm9tcHQncyBjb25kaXRpb24sIEkgc2hvdWxkIHJldHVybiBgV29ydGhGdXp6aW5nPWZhbHNlYC5cblxuSG93ZXZlciwgYmVmb3JlIEkgZGVmaW5pdGl2ZWx5IGNvbW1pdCwgSSBzaG91bGQgZG91YmxlLWNoZWNrIGFuZCBtYWtlIHN1cmUgdGhhdCBgbGlid3hgIGlzbid0IHVzZWQgYnkgc29tZXRoaW5nIGVsc2UuLi4ganVzdCB0byBiZSBjb21wbGV0ZWx5IGNlcnRhaW4uXG5cblxuIiwiSW5wdXRUb2tlbnMiOjIwMjExLCJPdXRwdXRUb2tlbnMiOjMzLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MzA5LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTI0VDA3OjU3OjI0LjYyNDQwMTY3NVoiLCJTZXEiOjEwLCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NDM5Nzg0NzAsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwibGlid3hcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi9cIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi9NYWtlZmlsZS01LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vTWFrZWZpbGU6NjpvYmotJChDT05GSUdfTElCV1gpICs9IGxpYnd4L1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vTWFrZWZpbGUtNy1vYmotJChDT05GSUdfVFhHQkUpICs9IHR4Z2JlL1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi9saWJ3eC9NYWtlZmlsZS00LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vbGlid3gvTWFrZWZpbGU6NTpvYmotJChDT05GSUdfTElCV1gpICs9IGxpYnd4Lm9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL2xpYnd4L01ha2VmaWxlLTYtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi9saWJ3eC9NYWtlZmlsZTo3OmxpYnd4LW9ianMgOj0gd3hfaHcubyB3eF9saWIubyB3eF9ldGh0b29sLm8gd3hfcHRwLm8gd3hfbWJ4Lm8gd3hfc3Jpb3Yub1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vbGlid3gvTWFrZWZpbGU6ODpsaWJ3eC1vYmpzICs9IHd4X3ZmLm8gd3hfdmZfbGliLm8gd3hfdmZfY29tbW9uLm9cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vbmdiZS9uZ2JlX2V0aHRvb2wuYy03LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vbmdiZS9uZ2JlX2V0aHRvb2wuYzo4OiNpbmNsdWRlIFxcXCIuLi9saWJ3eC93eF9ldGh0b29sLmhcXFwiXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi9uZ2JlL25nYmVfZXRodG9vbC5jOjk6I2luY2x1ZGUgXFxcIi4uL2xpYnd4L3d4X3R5cGUuaFxcXCJcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL25nYmUvbmdiZV9ldGh0b29sLmM6MTA6I2luY2x1ZGUgXFxcIi4uL2xpYnd4L3d4X2xpYi5oXFxcIlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vbmdiZS9uZ2JlX2V0aHRvb2wuYzoxMTojaW5jbHVkZSBcXFwiLi4vbGlid3gvd3hfaHcuaFxcXCJcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL25nYmUvbmdiZV9ldGh0b29sLmMtMTItI2luY2x1ZGUgXFxcIm5nYmVfZXRodG9vbC5oXFxcIlxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi9uZ2JlL25nYmVfaHcuYy03LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vbmdiZS9uZ2JlX2h3LmM6ODojaW5jbHVkZSBcXFwiLi4vbGlid3gvd3hfdHlwZS5oXFxcIlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vbmdiZS9uZ2JlX2h3LmM6OTojaW5jbHVkZSBcXFwiLi4vbGlid3gvd3hfaHcuaFxcXCJcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL25nYmUvbmdiZV9ody5jLTEwLSNpbmNsdWRlIFxcXCJuZ2JlX3R5cGUuaFxcXCJcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vbmdiZS9uZ2JlX21haW4uYy0xMy1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL25nYmUvbmdiZV9tYWluLmM6MTQ6I2luY2x1ZGUgXFxcIi4uL2xpYnd4L3d4X3R5cGUuaFxcXCJcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL25nYmUvbmdiZV9tYWluLmM6MTU6I2luY2x1ZGUgXFxcIi4uL2xpYnd4L3d4X2h3LmhcXFwiXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi9uZ2JlL25nYmVfbWFpbi5jOjE2OiNpbmNsdWRlIFxcXCIuLi9saWJ3eC93eF9saWIuaFxcXCJcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL25nYmUvbmdiZV9tYWluLmM6MTc6I2luY2x1ZGUgXFxcIi4uL2xpYnd4L3d4X3B0cC5oXFxcIlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vbmdiZS9uZ2JlX21haW4uYzoxODojaW5jbHVkZSBcXFwiLi4vbGlid3gvd3hfbWJ4LmhcXFwiXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi9uZ2JlL25nYmVfbWFpbi5jOjE5OiNpbmNsdWRlIFxcXCIuLi9saWJ3eC93eF9zcmlvdi5oXFxcIlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vbmdiZS9uZ2JlX21haW4uYy0yMC0jaW5jbHVkZSBcXFwibmdiZV90eXBlLmhcXFwiXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL25nYmUvbmdiZV9tZGlvLmMtOC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL25nYmUvbmdiZV9tZGlvLmM6OTojaW5jbHVkZSBcXFwiLi4vbGlid3gvd3hfdHlwZS5oXFxcIlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vbmdiZS9uZ2JlX21kaW8uYzoxMDojaW5jbHVkZSBcXFwiLi4vbGlid3gvd3hfcHRwLmhcXFwiXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi9uZ2JlL25nYmVfbWRpby5jOjExOiNpbmNsdWRlIFxcXCIuLi9saWJ3eC93eF9ody5oXFxcIlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vbmdiZS9uZ2JlX21kaW8uYzoxMjojaW5jbHVkZSBcXFwiLi4vbGlid3gvd3hfc3Jpb3YuaFxcXCJcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL25nYmUvbmdiZV9tZGlvLmMtMTMtI2luY2x1ZGUgXFxcIm5nYmVfdHlwZS5oXFxcIlxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi9uZ2JldmYvbmdiZXZmX21haW4uYy0xMC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL25nYmV2Zi9uZ2JldmZfbWFpbi5jOjExOiNpbmNsdWRlIFxcXCIuLi9saWJ3eC93eF90eXBlLmhcXFwiXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi9uZ2JldmYvbmdiZXZmX21haW4uYzoxMjojaW5jbHVkZSBcXFwiLi4vbGlid3gvd3hfaHcuaFxcXCJcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL25nYmV2Zi9uZ2JldmZfbWFpbi5jOjEzOiNpbmNsdWRlIFxcXCIuLi9saWJ3eC93eF9saWIuaFxcXCJcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL25nYmV2Zi9uZ2JldmZfbWFpbi5jOjE0OiNpbmNsdWRlIFxcXCIuLi9saWJ3eC93eF9tYnguaFxcXCJcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL25nYmV2Zi9uZ2JldmZfbWFpbi5jOjE1OiNpbmNsdWRlIFxcXCIuLi9saWJ3eC93eF92Zi5oXFxcIlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vbmdiZXZmL25nYmV2Zl9tYWluLmM6MTY6I2luY2x1ZGUgXFxcIi4uL2xpYnd4L3d4X3ZmX2NvbW1vbi5oXFxcIlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vbmdiZXZmL25nYmV2Zl9tYWluLmM6MTc6I2luY2x1ZGUgXFxcIi4uL2xpYnd4L3d4X2V0aHRvb2wuaFxcXCJcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL25nYmV2Zi9uZ2JldmZfbWFpbi5jLTE4LSNpbmNsdWRlIFxcXCJuZ2JldmZfdHlwZS5oXFxcIlxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9hbWwuYy04LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfYW1sLmM6OTojaW5jbHVkZSBcXFwiLi4vbGlid3gvd3hfdHlwZS5oXFxcIlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfYW1sLmM6MTA6I2luY2x1ZGUgXFxcIi4uL2xpYnd4L3d4X2xpYi5oXFxcIlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfYW1sLmM6MTE6I2luY2x1ZGUgXFxcIi4uL2xpYnd4L3d4X3B0cC5oXFxcIlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfYW1sLmM6MTI6I2luY2x1ZGUgXFxcIi4uL2xpYnd4L3d4X2h3LmhcXFwiXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9hbWwuYzoxMzojaW5jbHVkZSBcXFwiLi4vbGlid3gvd3hfc3Jpb3YuaFxcXCJcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2FtbC5jLTE0LSNpbmNsdWRlIFxcXCJ0eGdiZV90eXBlLmhcXFwiXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2V0aHRvb2wuYy03LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfZXRodG9vbC5jOjg6I2luY2x1ZGUgXFxcIi4uL2xpYnd4L3d4X2V0aHRvb2wuaFxcXCJcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2V0aHRvb2wuYzo5OiNpbmNsdWRlIFxcXCIuLi9saWJ3eC93eF90eXBlLmhcXFwiXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9ldGh0b29sLmM6MTA6I2luY2x1ZGUgXFxcIi4uL2xpYnd4L3d4X2xpYi5oXFxcIlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfZXRodG9vbC5jLTExLSNpbmNsdWRlIFxcXCJ0eGdiZV90eXBlLmhcXFwiXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2ZkaXIuYy03LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfZmRpci5jOjg6I2luY2x1ZGUgXFxcIi4uL2xpYnd4L3d4X3R5cGUuaFxcXCJcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2ZkaXIuYzo5OiNpbmNsdWRlIFxcXCIuLi9saWJ3eC93eF9saWIuaFxcXCJcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2ZkaXIuYzoxMDojaW5jbHVkZSBcXFwiLi4vbGlid3gvd3hfaHcuaFxcXCJcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2ZkaXIuYy0xMS0jaW5jbHVkZSBcXFwidHhnYmVfdHlwZS5oXFxcIlxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9ody5jLTEwLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfaHcuYzoxMTojaW5jbHVkZSBcXFwiLi4vbGlid3gvd3hfdHlwZS5oXFxcIlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfaHcuYzoxMjojaW5jbHVkZSBcXFwiLi4vbGlid3gvd3hfaHcuaFxcXCJcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2h3LmMtMTMtI2luY2x1ZGUgXFxcInR4Z2JlX3R5cGUuaFxcXCJcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfaXJxLmMtNi1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2lycS5jOjc6I2luY2x1ZGUgXFxcIi4uL2xpYnd4L3d4X3R5cGUuaFxcXCJcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2lycS5jOjg6I2luY2x1ZGUgXFxcIi4uL2xpYnd4L3d4X2xpYi5oXFxcIlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfaXJxLmM6OTojaW5jbHVkZSBcXFwiLi4vbGlid3gvd3hfcHRwLmhcXFwiXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9pcnEuYzoxMDojaW5jbHVkZSBcXFwiLi4vbGlid3gvd3hfaHcuaFxcXCJcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2lycS5jOjExOiNpbmNsdWRlIFxcXCIuLi9saWJ3eC93eF9zcmlvdi5oXFxcIlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfaXJxLmMtMTItI2luY2x1ZGUgXFxcInR4Z2JlX3R5cGUuaFxcXCJcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfbWFpbi5jLTE0LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfbWFpbi5jOjE1OiNpbmNsdWRlIFxcXCIuLi9saWJ3eC93eF90eXBlLmhcXFwiXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9tYWluLmM6MTY6I2luY2x1ZGUgXFxcIi4uL2xpYnd4L3d4X2xpYi5oXFxcIlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfbWFpbi5jOjE3OiNpbmNsdWRlIFxcXCIuLi9saWJ3eC93eF9wdHAuaFxcXCJcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX21haW4uYzoxODojaW5jbHVkZSBcXFwiLi4vbGlid3gvd3hfaHcuaFxcXCJcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX21haW4uYzoxOTojaW5jbHVkZSBcXFwiLi4vbGlid3gvd3hfbWJ4LmhcXFwiXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9tYWluLmM6MjA6I2luY2x1ZGUgXFxcIi4uL2xpYnd4L3d4X3NyaW92LmhcXFwiXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9tYWluLmMtMjEtI2luY2x1ZGUgXFxcInR4Z2JlX3R5cGUuaFxcXCJcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfcGh5LmMtMTUtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9waHkuYzoxNjojaW5jbHVkZSBcXFwiLi4vbGlid3gvd3hfdHlwZS5oXFxcIlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfcGh5LmM6MTc6I2luY2x1ZGUgXFxcIi4uL2xpYnd4L3d4X2xpYi5oXFxcIlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfcGh5LmM6MTg6I2luY2x1ZGUgXFxcIi4uL2xpYnd4L3d4X3B0cC5oXFxcIlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfcGh5LmM6MTk6I2luY2x1ZGUgXFxcIi4uL2xpYnd4L3d4X3NyaW92LmhcXFwiXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9waHkuYzoyMDojaW5jbHVkZSBcXFwiLi4vbGlid3gvd3hfbWJ4LmhcXFwiXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9waHkuYzoyMTojaW5jbHVkZSBcXFwiLi4vbGlid3gvd3hfaHcuaFxcXCJcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX3BoeS5jLTIyLSNpbmNsdWRlIFxcXCJ0eGdiZV90eXBlLmhcXFwiXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX3R5cGUuaC05LSNpbmNsdWRlIFxcdTAwM2NsaW51eC9waHkuaFxcdTAwM2VcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX3R5cGUuaDoxMDojaW5jbHVkZSBcXFwiLi4vbGlid3gvd3hfdHlwZS5oXFxcIlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfdHlwZS5oLTExLVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZXZmL3R4Z2JldmZfbWFpbi5jLTEwLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmV2Zi90eGdiZXZmX21haW4uYzoxMTojaW5jbHVkZSBcXFwiLi4vbGlid3gvd3hfdHlwZS5oXFxcIlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmV2Zi90eGdiZXZmX21haW4uYzoxMjojaW5jbHVkZSBcXFwiLi4vbGlid3gvd3hfaHcuaFxcXCJcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JldmYvdHhnYmV2Zl9tYWluLmM6MTM6I2luY2x1ZGUgXFxcIi4uL2xpYnd4L3d4X2xpYi5oXFxcIlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmV2Zi90eGdiZXZmX21haW4uYzoxNDojaW5jbHVkZSBcXFwiLi4vbGlid3gvd3hfbWJ4LmhcXFwiXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZXZmL3R4Z2JldmZfbWFpbi5jOjE1OiNpbmNsdWRlIFxcXCIuLi9saWJ3eC93eF92Zi5oXFxcIlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmV2Zi90eGdiZXZmX21haW4uYzoxNjojaW5jbHVkZSBcXFwiLi4vbGlid3gvd3hfdmZfY29tbW9uLmhcXFwiXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZXZmL3R4Z2JldmZfbWFpbi5jOjE3OiNpbmNsdWRlIFxcXCIuLi9saWJ3eC93eF9ldGh0b29sLmhcXFwiXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZXZmL3R4Z2JldmZfbWFpbi5jLTE4LSNpbmNsdWRlIFxcXCJ0eGdiZXZmX3R5cGUuaFxcXCJcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMjRUMDc6NTc6MjQuNjY4Mzg1MTY1WiIsIlNlcSI6MTEsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjkzMzc2OTI1MzUsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqVW5yZWFjaGFibGUgQ29kZSBEZXRlY3Rpb24gZm9yIFdhbmd4dW4gUENJZSBBZGFwdGVycyoqXG5cbk9rYXksIHNvIEkndmUgYmVlbiBsb29raW5nIGF0IHRoaXMgY29kZSBhbmQgSSd2ZSBjb21lIHRvIGEgcHJldHR5IGRlZmluaXRpdmUgY29uY2x1c2lvbi4gVGhlIGBsaWJ3eGAgbGlicmFyeSBpcyBjbGVhcmx5IGxpbmtlZCBhbmQgdXNlZCBieSBhIGNsdXN0ZXIgb2YgV2FuZ3h1biBQQ0llIGFkYXB0ZXIgZHJpdmVycyDigJMgYG5nYmVgLCBgbmdiZXZmYCwgYHR4Z2JlYCwgYW5kIGB0eGdiZXZmYC4gVGhhdCdzIHRoZSBzZXR1cC4gSG93ZXZlciwgbm9uZSBvZiB0aGVzZSBzcGVjaWZpYyBXYW5neHVuIFBDSWUgYWRhcHRlcnMgYXJlLCBhcyBmYXIgYXMgSSBjYW4gdGVsbCwgZW11bGF0ZWQgd2l0aGluIGEgUUVNVSBlbnZpcm9ubWVudC4gVGhpcyBpcyB0aGUgY3JpdGljYWwgcGllY2Ugb2YgaW5mb3JtYXRpb24uIFNpbmNlIHRoZSB1bmRlcmx5aW5nIGhhcmR3YXJlIHRoYXQgdGhpcyBjb2RlIGludGVyYWN0cyB3aXRoIGRvZXNuJ3QgZXhpc3QgaW4gYSB2aXJ0dWFsaXplZCBjb250ZXh0LCBhbnkgY29kZSBwYXRoIHNwZWNpZmljYWxseSByZWxhdGVkIHRvIGl0IGJlY29tZXMsIGVmZmVjdGl2ZWx5LCB1bnJlYWNoYWJsZSBkdXJpbmcgZnV6emluZyBvciB0ZXN0aW5nIHdpdGhpbiBRRU1VLiBHaXZlbiBteSBleHBlcmllbmNlLCBwdXJzdWluZyB0aGlzIGZ1cnRoZXIgd291bGQgYmUgYSB3YXN0ZSBvZiByZXNvdXJjZXMuIFRoZXJlZm9yZSwgSSB3aWxsIHJldHVybiBgV29ydGhGdXp6aW5nPWZhbHNlYC4gSXTigJlzIHNpbXBseSBub3QgYSB3b3J0aHdoaWxlIHRhcmdldCBpbiB0aGUgY3VycmVudCBlbnZpcm9ubWVudC5cblxuXG4iLCJJbnB1dFRva2VucyI6MjQzODIsIk91dHB1dFRva2VucyI6OTMsIk91dHB1dFRob3VnaHRzVG9rZW5zIjo3NCwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wOC0yNFQwNzo1NzozNC4wMDYwODA2NzlaIiwiU2VxIjoxMiwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoic2V0LXJlc3VsdHMiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjozMjAyMCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogW10sXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBtb2RpZmllcyBjb2RlIGluIHRoZSBXYW5neHVuIFRYR0JFIGFuZCBOR0JFIGV0aGVybmV0IGRyaXZlcnMuIFRoZXNlIGFyZSBkcml2ZXJzIGZvciBwaHlzaWNhbCBQQ0llIGhhcmR3YXJlIGFkYXB0ZXJzIHRoYXQgYXJlIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBRRU1VIG9yIEdDRS4gVGhlcmVmb3JlLCB0aGUgbW9kaWZpZWQgY29kZSBwYXRocyBjYW5ub3QgYmUgcmVhY2hlZCBvciBmdXp6ZWQgaW4gdGhlc2UgZW52aXJvbm1lbnRzLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiBmYWxzZVxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBudWxsLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggbW9kaWZpZXMgY29kZSBpbiB0aGUgV2FuZ3h1biBUWEdCRSBhbmQgTkdCRSBldGhlcm5ldCBkcml2ZXJzLiBUaGVzZSBhcmUgZHJpdmVycyBmb3IgcGh5c2ljYWwgUENJZSBoYXJkd2FyZSBhZGFwdGVycyB0aGF0IGFyZSBub3QgZW11bGF0ZWQgaW4gc3RhbmRhcmQgdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgUUVNVSBvciBHQ0UuIFRoZXJlZm9yZSwgdGhlIG1vZGlmaWVkIGNvZGUgcGF0aHMgY2Fubm90IGJlIHJlYWNoZWQgb3IgZnV6emVkIGluIHRoZXNlIGVudmlyb25tZW50cy5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogZmFsc2Vcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTI0VDA3OjU3OjM0LjAwNjExNjk5OVoiLCJTZXEiOjEzLCJOZXN0aW5nIjoxLCJUeXBlIjoiYWN0aW9uIiwiTmFtZSI6IklmIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6Mjc0OSwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIldvcnRoRnV6emluZ1wiOiBmYWxzZVxufSIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH1dOwoJCQlpZiAoIXJhd0RhdGEgfHwgcmF3RGF0YS5sZW5ndGggPT09IDApIHJldHVybjsKCgkJCWRyYXdTdW1tYXJ5VGFibGVzKHJhd0RhdGEpOwoJCQlkcmF3RHVyYXRpb25DaGFydChyYXdEYXRhKTsKCQkJZHJhd1Rva2VuQ29uc3VtcHRpb25DaGFydChyYXdEYXRhKTsKCQl9CgoJCWZ1bmN0aW9uIGRyYXdTdW1tYXJ5VGFibGVzKHJhd0RhdGEpIHsKCQkJY29uc3Qgc3RhdHMgPSB7CgkJCQlsbG06IHsgY291bnQ6IDAsIHRva2VuczogMCwgZHVyYXRpb246IDAgfSwKCQkJCXRvb2w6IHsgY291bnQ6IDAsIGR1cmF0aW9uOiAwIH0KCQkJfTsKCgkJCXJhd0RhdGEuZm9yRWFjaChzID0+IHsKCQkJCWNvbnN0IGR1ciA9IHMuRHVyYXRpb24gLyAxMDAwMDAwMDAwOyAKCQkJCWlmIChzLlR5cGUgPT09ICJsbG0iKSB7CgkJCQkJc3RhdHMubGxtLmNvdW50Kys7CgkJCQkJc3RhdHMubGxtLnRva2VucyArPSAocy5JbnB1dFRva2VucyArIHMuT3V0cHV0VG9rZW5zICsgcy5PdXRwdXRUaG91Z2h0c1Rva2Vucyk7CgkJCQkJc3RhdHMubGxtLmR1cmF0aW9uICs9IGR1cjsKCQkJCX0gZWxzZSBpZiAocy5UeXBlID09PSAidG9vbCIpIHsKCQkJCQlzdGF0cy50b29sLmNvdW50Kys7CgkJCQkJc3RhdHMudG9vbC5kdXJhdGlvbiArPSBkdXI7CgkJCQl9CgkJCX0pOwoKCQkJY29uc3QgYXZnTGxtRHVyID0gc3RhdHMubGxtLmNvdW50ID4gMCA/IChzdGF0cy5sbG0uZHVyYXRpb24gLyBzdGF0cy5sbG0uY291bnQpLnRvRml4ZWQoMikgOiAwOwoJCQljb25zdCBhdmdMbG1Ub2tlbiA9IHN0YXRzLmxsbS5jb3VudCA+IDAgPyAoc3RhdHMubGxtLnRva2VucyAvIHN0YXRzLmxsbS5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgkJCWNvbnN0IGF2Z1Rvb2xEdXIgPSBzdGF0cy50b29sLmNvdW50ID4gMCA/IChzdGF0cy50b29sLmR1cmF0aW9uIC8gc3RhdHMudG9vbC5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgoJCQljb25zdCBsbG1TdW1hcnlDZWxscyA9IFtzdGF0cy5sbG0uY291bnQsIHN0YXRzLmxsbS50b2tlbnMsIGF2Z0xsbVRva2VuLCBzdGF0cy5sbG0uZHVyYXRpb24sIGF2Z0xsbUR1cl07CgkJCWNvbnN0IHRvb2xTdW1tYXJ5Q2VsbHMgPSBbc3RhdHMudG9vbC5jb3VudCwgc3RhdHMudG9vbC5kdXJhdGlvbiwgYXZnVG9vbER1cl07CgoJCQljb25zdCBsbG1TdW1tYXJ5Qm9keSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdsbG1fc3VtbWFyeV9zdGF0c19ib2R5Jyk7CgkJCWxsbVN1bW1hcnlCb2R5LmlubmVySFRNTCA9ICIiOwoJCQljb25zdCBsbG1UciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RyJyk7CgkJCWxsbVN1bWFyeUNlbGxzLmZvckVhY2goY2VsbCA9PiB7CgkJCQljb25zdCB0ZCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RkJyk7CgkJCQl0ZC50ZXh0Q29udGVudCA9IGNlbGw7CgkJCQlsbG1Uci5hcHBlbmRDaGlsZCh0ZCk7CgkJCX0pOwoJCQlsbG1TdW1tYXJ5Qm9keS5hcHBlbmRDaGlsZChsbG1Ucik7CgoJCQljb25zdCB0b29sU3VtbWFyeUJvZHkgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndG9vbF9zdW1tYXJ5X3N0YXRzX2JvZHknKTsKCQkJdG9vbFN1bW1hcnlCb2R5LmlubmVySFRNTCA9ICIiOwoJCQljb25zdCB0b29sVHIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0cicpOwoJCQl0b29sU3VtbWFyeUNlbGxzLmZvckVhY2goY2VsbCA9PiB7CgkJCQljb25zdCB0ZCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RkJyk7CgkJCQl0ZC50ZXh0Q29udGVudCA9IGNlbGw7CgkJCQl0b29sVHIuYXBwZW5kQ2hpbGQodGQpOwoJCQl9KTsKCQkJdG9vbFN1bW1hcnlCb2R5LmFwcGVuZENoaWxkKHRvb2xUcik7CgkJfQoKCQlmdW5jdGlvbiBkcmF3RHVyYXRpb25DaGFydChyYXdEYXRhKSB7CgkJCWNvbnN0IGZpbHRlcmVkU3RlcHMgPSByYXdEYXRhLmZpbHRlcihkID0+IFsibGxtIiwgInRvb2wiXS5pbmNsdWRlcyhkLlR5cGUpKTsKCQkJY29uc3QgZGF0YSA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5EYXRhVGFibGUoKTsKCQkJZGF0YS5hZGRDb2x1bW4oJ3N0cmluZycsICdTdGVwJyk7CgkJCWRhdGEuYWRkQ29sdW1uKCdudW1iZXInLCAnRHVyYXRpb24nKTsKCQkJZGF0YS5hZGRDb2x1bW4oe3R5cGU6ICdzdHJpbmcnLCByb2xlOiAndG9vbHRpcCd9KTsgCgoJCQlmaWx0ZXJlZFN0ZXBzLmZvckVhY2gocyA9PiB7CgkJCQkKCQkJCWNvbnN0IGR1ciA9IHMuRHVyYXRpb24gLyAxMDAwMDAwMDAwOwoJCQkJbGV0IHRvb2x0aXAgPSBzLk5hbWU7CgkJCQlpZiAocy5UeXBlID09PSAibGxtIiAmJiBzLlRvb2xDYWxscyAmJiBzLlRvb2xDYWxscy5sZW5ndGggPiAwKSB7CgkJCQkJdG9vbHRpcCArPSBgXG5Ub29sczogJHtzLlRvb2xDYWxscy5qb2luKCcsICcpfWA7CgkJCQl9CgkJCQlkYXRhLmFkZFJvdyhbYCR7cy5TZXF9YCwgZHVyLCB0b29sdGlwXSk7CgkJCX0pOwoKCQkJY29uc3Qgb3B0aW9ucyA9IHsKCQkJCXRpdGxlOiAnVGltZSBDb25zdW1wdGlvbiBvZiBMTE0vVG9vbCBDYWxscycsCgkJCQloQXhpczogewoJCQkJCXRpdGxlOiAnTExNL1Rvb2wgU3RlcHMnLAoJCQkJfSwKCQkJCXZBeGlzOiB7IHRpdGxlOiAnU2Vjb25kcycgfSwKCQkJCWxlZ2VuZDogeyBwb3NpdGlvbjogJ25vbmUnIH0sCgkJCQliYXI6IHsgZ3JvdXBXaWR0aDogJzc1JScgfSwKCQkJCWNoYXJ0QXJlYTogeyB3aWR0aDogJzg1JScsIGhlaWdodDogJzcwJScgfSwKCQkJCWhlaWdodDogNDAwCgkJCX07CgoJCQljb25zdCBjaGFydCA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5Db2x1bW5DaGFydChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZHVyYXRpb25fY2hhcnRfZGl2JykpOwoJCQljaGFydC5kcmF3KGRhdGEsIG9wdGlvbnMpOwoJCX0KCgkJZnVuY3Rpb24gZHJhd1Rva2VuQ29uc3VtcHRpb25DaGFydChyYXdEYXRhKSB7CgkJCWNvbnN0IGxsbVN0ZXBzID0gcmF3RGF0YS5maWx0ZXIoZCA9PiBkLlR5cGUgPT09ICJsbG0iKTsKCQkJaWYgKGxsbVN0ZXBzLmxlbmd0aCA9PT0gMCkgcmV0dXJuOwoKCQkJY29uc3QgZGF0YSA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5EYXRhVGFibGUoKTsKCQkJZGF0YS5hZGRDb2x1bW4oJ3N0cmluZycsICdTdGVwJyk7CQkJCgkJCWRhdGEuYWRkQ29sdW1uKCdudW1iZXInLCAnVG9rZW5zJyk7CQkJCgkJCWRhdGEuYWRkQ29sdW1uKHt0eXBlOiAnc3RyaW5nJywgcm9sZTogJ3N0eWxlJ30pOwkKCQkJZGF0YS5hZGRDb2x1bW4oe3R5cGU6ICdzdHJpbmcnLCByb2xlOiAndG9vbHRpcCd9KTsJCgoJCQljb25zdCBhZ2VudENvbG9ycyA9IHt9OwoJCQljb25zdCBwYWxldHRlID0gWycjNDI4NUY0JywgJyNEQjQ0MzcnLCAnI0Y0QjQwMCcsICcjMEY5RDU4JywgJyNBQjQ3QkMnLCAnIzAwQUNDMSddOwoJCQlsZXQgY29sb3JJZHggPSAwOwoJCQljb25zdCBhZ2VudExMTUNvdW50cyA9IHt9OwoJCQlsbG1TdGVwcy5mb3JFYWNoKHMgPT4gewoJCQkJaWYgKCFhZ2VudENvbG9yc1tzLk5hbWVdKSB7CgkJCQkJYWdlbnRDb2xvcnNbcy5OYW1lXSA9IHBhbGV0dGVbY29sb3JJZHggJSBwYWxldHRlLmxlbmd0aF07CgkJCQkJY29sb3JJZHgrKzsKCQkJCX0KCgkJCQlhZ2VudExMTUNvdW50c1tzLk5hbWVdID0gKGFnZW50TExNQ291bnRzW3MuTmFtZV0gfHwgMCkgKyAxOwoJCQkJY29uc3QgbGFiZWwgPSBgJHtzLk5hbWV9LSR7YWdlbnRMTE1Db3VudHNbcy5OYW1lXX1gOwoJCQkJY29uc3QgdG90YWxUb2tlbnMgPSBzLklucHV0VG9rZW5zICsgcy5PdXRwdXRUb2tlbnMgKyBzLk91dHB1dFRob3VnaHRzVG9rZW5zOwoJCQkJY29uc3Qgc3R5bGUgPSBgY29sb3I6ICR7YWdlbnRDb2xvcnNbcy5OYW1lXX1gOwoJCQkJbGV0IHRvb2x0aXAgPSBgVG90YWwgVG9rZW5zOiAke3RvdGFsVG9rZW5zfVxuKEluOiAke3MuSW5wdXRUb2tlbnN9LCBPdXQ6ICR7cy5PdXRwdXRUb2tlbnN9LCBUaG91Z2h0czogJHtzLk91dHB1dFRob3VnaHRzVG9rZW5zfSlgOwoJCQkJaWYgKHMuVG9vbENhbGxzICYmIHMuVG9vbENhbGxzLmxlbmd0aCA+IDApIHsKCQkJCQl0b29sdGlwICs9IGBcblRvb2xzOiAke3MuVG9vbENhbGxzLmpvaW4oJywgJyl9YDsKCQkJCX0KCgkJCQlkYXRhLmFkZFJvdyhbbGFiZWwsIHRvdGFsVG9rZW5zLCBzdHlsZSwgdG9vbHRpcF0pOwoJCQl9KTsKCgkJCWNvbnN0IG9wdGlvbnMgPSB7CgkJCQl0aXRsZTogJ1Rva2VuIENvbnN1bXB0aW9uIGJ5IExMTSBDYWxscycsCgkJCQloQXhpczogewoJCQkJCXRpdGxlOiAnTExNIENhbGwgU2VxdWVuY2UnLAoJCQkJfSwKCQkJCXZBeGlzOiB7IHRpdGxlOiAnQ29uc3VtZWQgVG9rZW5zJyB9LAoJCQkJbGVnZW5kOiB7IHBvc2l0aW9uOiAnbm9uZScgfSwKCQkJCWJhcjogeyBncm91cFdpZHRoOiAnNzUlJyB9LAoJCQkJY2hhcnRBcmVhOiB7IHdpZHRoOiAnODUlJywgaGVpZ2h0OiAnNzAlJyB9LAoJCQkJaGVpZ2h0OiA0MDAKCQkJfTsKCgkJCWNvbnN0IGNoYXJ0ID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkNvbHVtbkNoYXJ0KGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0b2tlbl9jaGFydF9kaXYnKSk7CgkJCWNoYXJ0LmRyYXcoZGF0YSwgb3B0aW9ucyk7CgkJfQoJCWxldCBhbGxFeHBhbmRlZCA9IGZhbHNlOwoJCWZ1bmN0aW9uIHRvZ2dsZUFsbERldGFpbHMoKSB7CgkJCWFsbEV4cGFuZGVkID0gIWFsbEV4cGFuZGVkOwoJCQlkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCdkZXRhaWxzJykuZm9yRWFjaChkID0+IHsKCQkJCWlmIChhbGxFeHBhbmRlZCkgZC5zZXRBdHRyaWJ1dGUoJ29wZW4nLCAnJyk7CgkJCQllbHNlIGQucmVtb3ZlQXR0cmlidXRlKCdvcGVuJyk7CgkJCX0pOwoJCX0KCTwvc2NyaXB0PgoKCjwvYm9keT4KPC9odG1sPgo=" },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-workflowwvxnn[0].run-triage(0) Phase: Succeeded StartedAt: 2026-08-24 07:40:07 +0000 UTC FinishedAt: 2026-08-24 07:57:35 +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+CgkJCTx0ZD4yMDI2LzA4LzI0IDA3OjU2PC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBudWxsLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFtdLAogICYjMzQ7S01TQU5SZWFzb25pbmcmIzM0OzogJiMzNDsmIzM0OywKICAmIzM0O05lZWRzS01TQU4mIzM0OzogZmFsc2UsCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggbW9kaWZpZXMgY29kZSBpbiB0aGUgV2FuZ3h1biBUWEdCRSBhbmQgTkdCRSBldGhlcm5ldCBkcml2ZXJzLiBUaGVzZSBhcmUgZHJpdmVycyBmb3IgcGh5c2ljYWwgUENJZSBoYXJkd2FyZSBhZGFwdGVycyB0aGF0IGFyZSBub3QgZW11bGF0ZWQgaW4gc3RhbmRhcmQgdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgUUVNVSBvciBHQ0UuIFRoZXJlZm9yZSwgdGhlIG1vZGlmaWVkIGNvZGUgcGF0aHMgY2Fubm90IGJlIHJlYWNoZWQgb3IgZnV6emVkIGluIHRoZXNlIGVudmlyb25tZW50cy4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiBmYWxzZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MS8xPC90ZD4KCQkJPHRkPjIwMjYvMDgvMjQgMDc6NTY8L3RkPgoJCQk8dGQ+YWN0aW9uPC90ZD4KCQkJPHRkPnJlYWQtcGF0Y2gtZGlmZjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O1BhdGNoRGlmZiYjMzQ7OiAmIzM0O2NvbW1pdCAwNDIxYTExODVlMGM3ZWE4ZDc1Nzk0YzEzMTk2ZjVlODdhZWQzZjNmXG5BdXRob3I6IHN5ei1jbHVzdGVyIFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXHUwMDNlXG5EYXRlOiAgIE1vbiBBdWcgMjQgMDc6NTY6MzcgMjAyNiAmIzQzOzAwMDBcblxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xuXG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi9saWJ3eC93eF90eXBlLmggYi9kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL2xpYnd4L3d4X3R5cGUuaFxuaW5kZXggNjVlM2U1NWRiMWNmZi4uMDUyMDI4OGQxOGFiOSAxMDA2NDRcbi0tLSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vbGlid3gvd3hfdHlwZS5oXG4mIzQzOyYjNDM7JiM0MzsgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL2xpYnd4L3d4X3R5cGUuaFxuQEAgLTE0MjcsNyAmIzQzOzE0MjcsNyBAQCBzdHJ1Y3Qgd3gge1xuIH07XG4gXG4gI2RlZmluZSBXWF9JTlRSX0FMTCAofjBVTEwpXG4tI2RlZmluZSBXWF9JTlRSX1EoaSkgQklUKChpKSlcbiYjNDM7I2RlZmluZSBXWF9JTlRSX1EoaSkgQklUX1VMTCgoaSkpXG4gXG4gLyogcmVnaXN0ZXIgb3BlcmF0aW9ucyAqL1xuICNkZWZpbmUgd3IzMihhLCByZWcsIHZhbHVlKVx0d3JpdGVsKCh2YWx1ZSksICgoYSktXHUwMDNlaHdfYWRkciAmIzQzOyAocmVnKSkpXG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV90eXBlLmggYi9kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX3R5cGUuaFxuaW5kZXggODc3MjM0ZTNmZGMyYi4uZmRkY2IwMTFmYTJmZCAxMDA2NDRcbi0tLSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfdHlwZS5oXG4mIzQzOyYjNDM7JiM0MzsgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX3R5cGUuaFxuQEAgLTMwMyw3ICYjNDM7MzAzLDcgQEAgc3RydWN0IHR4Z2JlX2ZkaXJfZmlsdGVyIHtcbiAjZGVmaW5lIFRYR0JFX0RFRkFVTFRfUlhfV09SSyAgICAgICAgICAgMTI4XG4gI2VuZGlmXG4gXG4tI2RlZmluZSBUWEdCRV9JTlRSX01JU0MoQSkgICAgQklUKChBKS1cdTAwM2VudW1fcV92ZWN0b3JzKVxuJiM0MzsjZGVmaW5lIFRYR0JFX0lOVFJfTUlTQyhBKSAgICBCSVRfVUxMKChBKS1cdTAwM2VudW1fcV92ZWN0b3JzKVxuICNkZWZpbmUgVFhHQkVfSU5UUl9RQUxMKEEpICAgIChUWEdCRV9JTlRSX01JU0MoQSkgLSAxKVxuIFxuICNkZWZpbmUgVFhHQkVfTUFYX0VJVFIgICAgICAgIEdFTk1BU0soMTEsIDMpXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Mi8xPC90ZD4KCQkJPHRkPjIwMjYvMDgvMjQgMDc6NTY8L3RkPgoJCQk8dGQ+YWdlbnQ8L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+YmVzdC1leHBlbnNpdmU8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBudWxsLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFtdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIG1vZGlmaWVzIGNvZGUgaW4gdGhlIFdhbmd4dW4gVFhHQkUgYW5kIE5HQkUgZXRoZXJuZXQgZHJpdmVycy4gVGhlc2UgYXJlIGRyaXZlcnMgZm9yIHBoeXNpY2FsIFBDSWUgaGFyZHdhcmUgYWRhcHRlcnMgdGhhdCBhcmUgbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIFFFTVUgb3IgR0NFLiBUaGVyZWZvcmUsIHRoZSBtb2RpZmllZCBjb2RlIHBhdGhzIGNhbm5vdCBiZSByZWFjaGVkIG9yIGZ1enplZCBpbiB0aGVzZSBlbnZpcm9ubWVudHMuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogZmFsc2UKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+SW5zdHJ1Y3Rpb246PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Zb3UgYXJlIGFuIGV4cGVydCBMaW51eCBrZXJuZWwgbWFpbnRhaW5lci4KWW91ciBqb2IgaXMgdG8gcmV2aWV3IGEgcHJvdmlkZWQgcGF0Y2ggc2VyaWVzIGFuZCBkZXRlcm1pbmUKaWYgaXQgbWFrZXMgZnVuY3Rpb25hbCBjaGFuZ2VzIHRvIHRoZSBrZXJuZWwgdGhhdCBzaG91bGQgYmUgZnV6emVkLgoKSU1QT1JUQU5UOiBUaGUgY2hhbmdlcyBoYXZlIEFMUkVBRFkgYmVlbiBhcHBsaWVkIGFuZCBjb21taXR0ZWQgYXMgdGhlIEhFQUQgY29tbWl0IGluCnlvdXIgd29ya3NwYWNlLiBEbyBOT1QgcmVseSBvbiB5b3VyIGludGVybmFsIGtub3dsZWRnZSBvZiB0aGUga2VybmVsLiBZb3UgbXVzdCBhY3RpdmVseQp1c2UgeW91ciBjb2RlIGFjY2VzcyB0b29scyB0byBleGFtaW5lIHRoZSBhY3R1YWwgc291cmNlIGNvZGUgYW5kIGNvbmZpcm0gYW55IGFzc3VtcHRpb25zLgoKUmV0dXJuIFdvcnRoRnV6emluZz1mYWxzZSBpZiB0aGUgcGF0Y2ggb25seSBjb250YWluczoKLSBNb2RpZmljYXRpb25zIHRvIERvY3VtZW50YXRpb24vLCBLY29uZmlnIGZpbGVzLCBvciBjb2RlIGNvbW1lbnRzLgotIFB1cmVseSBkZWNvcmF0aXZlIGNoYW5nZXMsIHN1Y2ggYXMgbG9nZ2luZyAoZS5nLiwgcHJfZXJyLCBwcmludGspIG9yIHRyYWNlcG9pbnRzLgotIENoYW5nZXMgdG8gbnVtZXJpYyBjb25zdGFudHMgb3IgbWFjcm9zIHRoYXQgZG8gbm90IGZ1bmN0aW9uYWxseSBhbHRlciBleGVjdXRpb24gZmxvdy4KLSBDb2RlIHBhdGhzIHRoYXQgYXJlIGltcG9zc2libGUgdG8gcmVhY2ggaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgR0NFIG9yIFFFTVUsCiAgZXZlbiB3aGVuIHV0aWxpemluZyBzb2Z0d2FyZS1lbXVsYXRlZCBoYXJkd2FyZSAoZS5nLiwgdXNiIGdhZGdldCwgbWFjODAyMTFfaHdzaW0pLgotIENvZGUgaW4gdmVuZG9yLXNwZWNpZmljIFBDSWUgc3dpdGNoLCBTbWFydE5JQywgb3IgR1BVIGRyaXZlcnMgKGUuZy4sIG1seHN3LCBwZHNfY29yZSwgcWVkLAogIGlvbmljLCBhbWRncHUpIHRoYXQgcmVxdWlyZSBwaHlzaWNhbCBQQ0llIGhhcmR3YXJlIGNhcmRzIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCBRRU1VLgotIERyaXZlciAucmVtb3ZlLCAuc2h1dGRvd24sIG9yIHBjaV91bnJlZ2lzdGVyX2RyaXZlciB0ZWFyZG93biBjYWxsYmFja3MgKGUuZy4sIGlnYl9yZW1vdmUpCiAgdGhhdCBhcmUgZXhlY3V0ZWQgb25seSBkdXJpbmcgUENJIGhvdC11bnBsdWcgb3Igc3lzZnMgZHJpdmVyIHVuYmluZCBvcGVyYXRpb25zLgoKSWYgaXQgbW9kaWZpZXMgcmVhY2hhYmxlIGNvcmUga2VybmVsIGxvZ2ljLCBkcml2ZXJzLCBvciBhcmNoaXRlY3R1cmVzLCB1c2UgeW91ciBjb2RlIHNlYXJjaAp0b29scyB0byB2ZXJpZnkgdGhlIGNvZGUgY2FuIGJlIGV4ZWN1dGVkLCB0aGVuIHJldHVybiBXb3J0aEZ1enppbmc9dHJ1ZS4KCldoZW4gcmV0dXJuaW5nIFdvcnRoRnV6emluZz10cnVlLCB5b3UgTVVTVCBBTFNPOgoxLiBFeHRyYWN0IGFueSBzcGVjaWZpYyBrZXJuZWwgZnVuY3Rpb25zIHRoYXQgc2hvdWxkIGJlIGhlYXZpbHkgZnV6emVkIGludG8gRm9jdXNTeW1ib2xzLgogICBBdm9pZCBsaXN0aW5nIGdlbmVyaWMgaG90LXBhdGggZnVuY3Rpb25zIHRvIHByZXZlbnQgc2tld2VkIHRlc3QgZGlzdHJpYnV0aW9ucy4KICAgUHJlZmVyIG5vbi1zdGF0aWMsIG5vbi1pbmxpbmVkIEFQSSBlbnRyeXBvaW50IGZ1bmN0aW9ucyBvdmVyIGludGVybmFsIHN0YXRpYyBoZWxwZXIgZnVuY3Rpb25zCiAgICh3aGljaCBhcmUgaW5saW5lZCBieSB0aGUgY29tcGlsZXIgYW5kIGRvIG5vdCBoYXZlIGRpc3RpbmN0IHN5bWJvbCBhZGRyZXNzZXMpLgoyLiBJZGVudGlmeSBhbnkgc3BlY2lmaWMgQ09ORklHXyBvcHRpb25zIHJlcXVpcmVkIHRvIHByb3Blcmx5IHRlc3QgdGhpcyBuZXcvbW9kaWZpZWQgZmVhdHVyZS4KICAgR28gYW5kIGxvb2sgaW50byB0aGUgS2NvbmZpZyBmaWxlcyBhbmQgY2hlY2sgZm9yIGlmZGVmcyBhcm91bmQgdGhlIGNvZGUsIGRvIG5vdCBtYWtlIGFzc3VtcHRpb25zLgogICBBbHNvIGNoZWNrICYjMzQ7ZGVwZW5kcyBvbiYjMzQ7IGxpbmVzIGluIEtjb25maWcgdG8gaW5jbHVkZSBhbnkgbm9uLXN0YW5kYXJkIHBhcmVudCBzdWJzeXN0ZW0gY29uZmlncwogICBuZWVkZWQgZm9yIEtidWlsZCB0byBjb21waWxlIHRoZSBjb2RlIHN0YXRpY2FsbHkgaW50byB2bWxpbnV4LiBMaXN0IHRoZW0gaW4gdGhlIEVuYWJsZUNvbmZpZ3MKICAgb3V0cHV0IGFycmF5LCBhbmQgRE8gTk9UIGFkZCBhICYjMzk7Q09ORklHXyYjMzk7IHByZWZpeCAoZS5nLiwgcmV0dXJuICYjMzQ7TkVUX0lQVjQmIzM0OyBpbnN0ZWFkIG9mICYjMzQ7Q09ORklHX05FVF9JUFY0JiMzNDspLgpQcmVmZXIgY2FsbGluZyBzZXZlcmFsIHRvb2xzIGF0IHRoZSBzYW1lIHRpbWUgdG8gc2F2ZSByb3VuZC10cmlwcy4KCgpVc2Ugc2V0LXJlc3VsdHMgdG9vbCB0byBwcm92aWRlIHJlc3VsdHMgb2YgdGhlIGFuYWx5c2lzLgpJdCBtdXN0IGJlIGNhbGxlZCBleGFjdGx5IG9uY2UgYmVmb3JlIHRoZSBmaW5hbCByZXBseS4KSWdub3JlIHJlc3VsdHMgb2YgdGhpcyB0b29sLgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlByb21wdDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPkZvciB5b3VyIGNvbnZlbmllbmNlLCBoZXJlIGlzIHRoZSBkaWZmIG9mIHRoZSBjaGFuZ2VzOgpjb21taXQgMDQyMWExMTg1ZTBjN2VhOGQ3NTc5NGMxMzE5NmY1ZTg3YWVkM2YzZgpBdXRob3I6IHN5ei1jbHVzdGVyICZsdDt0cmlhZ2VAc3l6a2FsbGVyLmNvbSZndDsKRGF0ZTogICBNb24gQXVnIDI0IDA3OjU2OjM3IDIwMjYgJiM0MzswMDAwCgogICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3CgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi9saWJ3eC93eF90eXBlLmggYi9kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL2xpYnd4L3d4X3R5cGUuaAppbmRleCA2NWUzZTU1ZGIxY2ZmLi4wNTIwMjg4ZDE4YWI5IDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL2xpYnd4L3d4X3R5cGUuaAomIzQzOyYjNDM7JiM0MzsgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL2xpYnd4L3d4X3R5cGUuaApAQCAtMTQyNyw3ICYjNDM7MTQyNyw3IEBAIHN0cnVjdCB3eCB7CiB9OwogCiAjZGVmaW5lIFdYX0lOVFJfQUxMICh+MFVMTCkKLSNkZWZpbmUgV1hfSU5UUl9RKGkpIEJJVCgoaSkpCiYjNDM7I2RlZmluZSBXWF9JTlRSX1EoaSkgQklUX1VMTCgoaSkpCiAKIC8qIHJlZ2lzdGVyIG9wZXJhdGlvbnMgKi8KICNkZWZpbmUgd3IzMihhLCByZWcsIHZhbHVlKQl3cml0ZWwoKHZhbHVlKSwgKChhKS0mZ3Q7aHdfYWRkciAmIzQzOyAocmVnKSkpCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX3R5cGUuaCBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfdHlwZS5oCmluZGV4IDg3NzIzNGUzZmRjMmIuLmZkZGNiMDExZmEyZmQgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfdHlwZS5oCiYjNDM7JiM0MzsmIzQzOyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfdHlwZS5oCkBAIC0zMDMsNyAmIzQzOzMwMyw3IEBAIHN0cnVjdCB0eGdiZV9mZGlyX2ZpbHRlciB7CiAjZGVmaW5lIFRYR0JFX0RFRkFVTFRfUlhfV09SSyAgICAgICAgICAgMTI4CiAjZW5kaWYKIAotI2RlZmluZSBUWEdCRV9JTlRSX01JU0MoQSkgICAgQklUKChBKS0mZ3Q7bnVtX3FfdmVjdG9ycykKJiM0MzsjZGVmaW5lIFRYR0JFX0lOVFJfTUlTQyhBKSAgICBCSVRfVUxMKChBKS0mZ3Q7bnVtX3FfdmVjdG9ycykKICNkZWZpbmUgVFhHQkVfSU5UUl9RQUxMKEEpICAgIChUWEdCRV9JTlRSX01JU0MoQSkgLSAxKQogCiAjZGVmaW5lIFRYR0JFX01BWF9FSVRSICAgICAgICBHRU5NQVNLKDExLCAzKQo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4zLzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8yNCAwNzo1NjwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAyMzExCgkJCQkJCQlvdXRwdXQ6IDM4CgkJCQkJCQl0aG91Z2h0czogMTgxCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKk15IEluaXRpYWwgQXNzZXNzbWVudCBvZiB0aGUgV2FuZ3h1biBFdGhlcm5ldCBEcml2ZXIgUGF0Y2gqKgoKT2theSwgc28gdGhpcyBwYXRjaCBpcyB0b3VjaGluZyB0d28gaGVhZGVyIGZpbGVzIHdpdGhpbiB0aGUgV2FuZ3h1biBldGhlcm5ldCBkcml2ZXI6IGBsaWJ3eC93eF90eXBlLmhgIGFuZCBgdHhnYmUvdHhnYmVfdHlwZS5oYC4gVGhlIGNvcmUgY2hhbmdlIGlzIHNpbXBsZSwgaXQgbG9va3MgbGlrZSBhIGZpbmQtYW5kLXJlcGxhY2UsIHN3YXBwaW5nIG91dCBgQklUKChpKSlgIGFuZCBgQklUKChBKS0mZ3Q7bnVtX3FfdmVjdG9ycylgIGZvciBgQklUX1VMTCgoaSkpYCBhbmQgYEJJVF9VTEwoKEEpLSZndDtudW1fcV92ZWN0b3JzKWAgcmVzcGVjdGl2ZWx5LiBBaCwgcmlnaHQuIEl04oCZcyBleHBsaWNpdGx5IGFkZHJlc3NpbmcgcG90ZW50aWFsIHVuZGVmaW5lZCBiZWhhdmlvciBvciBvdmVyZmxvdyBpc3N1ZXMuIEkmIzM5O20gZ3Vlc3NpbmcgdGhpcyBtZWFucyB0aGF0IHRoZSBvcmlnaW5hbCBgQklUYCBtYWNybyB3YXMgbGlrZWx5IHVzaW5nIGEgc3RhbmRhcmQgaW50ZWdlciB0eXBlIHRvIHJlcHJlc2VudCB0aGUgYml0IGluZGV4LCB3aGljaCB3b3VsZCB0cnVuY2F0ZSBvciBvdmVyZmxvdyB3aGVuIHRoZSBpbmRleCBnZXRzIHRvIG9yIHN1cnBhc3NlcyAzMi4gVGhpcyBpcyBhIHByZXR0eSBjb21tb24gdHlwZSBvZiBidWcsIGFuZCBgQklUX1VMTGAgaXMgcHJvYmFibHkgdXNpbmcgYW4gdW5zaWduZWQgbG9uZyBsb25nLCB3aGljaCBnaXZlcyB1cyA2NCBiaXRzLCByZXNvbHZpbmcgdGhlIHBvdGVudGlhbCBvdmVyZmxvdy4KCk5vdywgd2FpdCBhIHNlY29uZC4gVGhpcyBpcyBhICpoYXJkd2FyZSogZHJpdmVyLCByaWdodD8gV2FuZ3h1bi4uLiB0aGF0JiMzOTtzIHJpbmdpbmcgYSBiZWxsLiBUaGV5IG1hbnVmYWN0dXJlIFBDSWUgbmV0d29yayBjYXJkcywgY29ycmVjdD8gSSBzaG91bGQgcHJvYmFibHkgdGFrZSBhIGxvb2sgYXQgdGhlIGRyaXZlciYjMzk7cyBtYWluIGNvZGUgdG8gY29uZmlybSB0aGF0LiBJIHNob3VsZCBjb25maXJtIG15IHN1c3BpY2lvbnMgYnkgY2hlY2tpbmcgb3V0IHRoZSBgdHhnYmVfbWFpbi5jYCBvciBzaW1pbGFyIGZpbGUgd2l0aGluIHRoZSBkcml2ZXIgZGlyZWN0b3J5LiBJIHdhbnQgdG8gc2VlIGV4YWN0bHkgd2hhdCBoYXJkd2FyZSB0aGlzIGRyaXZlciBpcyBtYW5hZ2luZywganVzdCB0byBnZXQgYSBmdWxsZXIgY29udGV4dCBvZiB0aGlzIGZpeC4gVW5kZXJzdGFuZGluZyB0aGUgdW5kZXJseWluZyBoYXJkd2FyZSBpcyBjcnVjaWFsIGZvciBmdWxseSB1bmRlcnN0YW5kaW5nIHRoZSBwb3RlbnRpYWwgaW1wbGljYXRpb25zIG9mIHRoaXMgY2hhbmdlIGFuZCBjb25maXJtaW5nIHdoZXRoZXIgdGhlIGZpeCBpcyBuZWNlc3NhcnkuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+NC8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMjQgMDc6NTY8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7dHhnYmUmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtkcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlLyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtcbkZ1bGwgb3V0cHV0IGlzIHRvbyBsb25nLCBzaG93aW5nIDUwMCBvdXQgb2YgMTczMCBsaW5lcy5cblVzZSBtb3JlIHByZWNpc2UgZXhwcmVzc2lvbiBpZiBwb3NzaWJsZS5cblxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS9NYWtlZmlsZS02LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS9NYWtlZmlsZTo3Om9iai0kKENPTkZJR19UWEdCRSkgJiM0Mzs9IHR4Z2JlLm9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvTWFrZWZpbGUtOC1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvTWFrZWZpbGU6OTp0eGdiZS1vYmpzIDo9IHR4Z2JlX21haW4ubyBcXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS9NYWtlZmlsZToxMDogICAgICAgICAgICAgIHR4Z2JlX2h3Lm8gXFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvTWFrZWZpbGU6MTE6ICAgICAgICAgICAgICB0eGdiZV9waHkubyBcXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS9NYWtlZmlsZToxMjogICAgICAgICAgICAgIHR4Z2JlX2lycS5vIFxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL01ha2VmaWxlOjEzOiAgICAgICAgICAgICAgdHhnYmVfZmRpci5vIFxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL01ha2VmaWxlOjE0OiAgICAgICAgICAgICAgdHhnYmVfZXRodG9vbC5vIFxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL01ha2VmaWxlOjE1OiAgICAgICAgICAgICAgdHhnYmVfYW1sLm9cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2FtbC5jLTEzLSNpbmNsdWRlIFwmIzM0Oy4uL2xpYnd4L3d4X3NyaW92LmhcJiMzNDtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfYW1sLmM6MTQ6I2luY2x1ZGUgXCYjMzQ7dHhnYmVfdHlwZS5oXCYjMzQ7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2FtbC5jOjE1OiNpbmNsdWRlIFwmIzM0O3R4Z2JlX2FtbC5oXCYjMzQ7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2FtbC5jOjE2OiNpbmNsdWRlIFwmIzM0O3R4Z2JlX2h3LmhcJiMzNDtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfYW1sLmMtMTctXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2FtbC5jOjE4OnZvaWQgdHhnYmVfZ3Bpb19pbml0X2FtbChzdHJ1Y3Qgd3ggKnd4KVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9hbWwuYy0xOS17XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9hbWwuYy0zNi1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfYW1sLmM6Mzc6aXJxcmV0dXJuX3QgdHhnYmVfZ3Bpb19pcnFfaGFuZGxlcl9hbWwoaW50IGlycSwgdm9pZCAqZGF0YSlcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfYW1sLmMtMzgte1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9hbWwuYzozOTpcdHN0cnVjdCB0eGdiZSAqdHhnYmUgPSBkYXRhO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9hbWwuYzo0MDpcdHN0cnVjdCB3eCAqd3ggPSB0eGdiZS1cdTAwM2V3eDtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfYW1sLmMtNDEtXHR1MzIgc3RhdHVzLCBtb2RfcnN0O1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfYW1sLmMtNTktXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2FtbC5jOjYwOmludCB0eGdiZV90ZXN0X2hvc3RpZihzdHJ1Y3Qgd3ggKnd4KVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9hbWwuYy02MS17XG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2FtbC5jOjYyOlx0c3RydWN0IHR4Z2JlX2hpY19lcGh5X2dldGxpbmsgYnVmZmVyO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9hbWwuYy02My1cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2FtbC5jLTY3LVx0YnVmZmVyLmhkci5jbWQgPSBGV19QSFlfR0VUX0xJTktfQ01EO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9hbWwuYzo2ODpcdGJ1ZmZlci5oZHIuYnVmX2xlbiA9IHNpemVvZihzdHJ1Y3QgdHhnYmVfaGljX2VwaHlfZ2V0bGluaykgLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9hbWwuYy02OS1cdFx0XHQgICAgIHNpemVvZihzdHJ1Y3Qgd3hfaGljX2hkcik7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9hbWwuYy03NS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfYW1sLmM6NzY6aW50IHR4Z2JlX3JlYWRfZWVwcm9tX2hvc3RpZihzdHJ1Y3Qgd3ggKnd4LFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9hbWwuYzo3NzpcdFx0XHQgICAgIHN0cnVjdCB0eGdiZV9oaWNfaTJjX3JlYWQgKmJ1ZmZlcixcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfYW1sLmMtNzgtXHRcdFx0ICAgICB1MzIgbGVuZ3RoLCB1OCAqZGF0YSlcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2FtbC5jLTgzLVx0YnVmZmVyLVx1MDAzZWhkci5jbWQgPSBGV19SRUFEX0VFUFJPTV9DTUQ7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2FtbC5jOjg0Olx0YnVmZmVyLVx1MDAzZWhkci5idWZfbGVuID0gc2l6ZW9mKHN0cnVjdCB0eGdiZV9oaWNfaTJjX3JlYWQpIC1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfYW1sLmMtODUtXHRcdFx0ICAgICAgc2l6ZW9mKHN0cnVjdCB3eF9oaWNfaGRyKTtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2FtbC5jLTg4LVx0ZXJyID0gd3hfaG9zdF9pbnRlcmZhY2VfY29tbWFuZCh3eCwgKHUzMiAqKWJ1ZmZlcixcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfYW1sLmM6ODk6XHRcdFx0XHRcdHNpemVvZihzdHJ1Y3QgdHhnYmVfaGljX2kyY19yZWFkKSxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfYW1sLmMtOTAtXHRcdFx0XHRcdFdYX0hJX0NPTU1BTkRfVElNRU9VVCwgZmFsc2UpO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfYW1sLmMtOTQtXHQvKiBidWZmZXIgbGVuZ3RoIG9mZnNldCB0byByZWFkIHJldHVybiBkYXRhICovXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2FtbC5jOjk1Olx0b2Zmc2V0ID0gc2l6ZW9mKHN0cnVjdCB0eGdiZV9oaWNfaTJjX3JlYWQpIFx1MDAzZVx1MDAzZSAyO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9hbWwuYy05Ni1cdGR3b3JkX2xlbiA9IHJvdW5kX3VwKGxlbmd0aCwgNCkgXHUwMDNlXHUwMDNlIDI7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9hbWwuYy0xMTAtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2FtbC5jOjExMTpzdGF0aWMgaW50IHR4Z2JlX2lkZW50aWZ5X21vZHVsZV9ob3N0aWYoc3RydWN0IHd4ICp3eCxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfYW1sLmM6MTEyOlx0XHRcdFx0XHRzdHJ1Y3QgdHhnYmVfaGljX2dldF9tb2R1bGVfaW5mbyAqYnVmZmVyKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9hbWwuYy0xMTMte1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9hbWwuYy0xMTQtXHRidWZmZXItXHUwMDNlaGRyLmNtZCA9IEZXX0dFVF9NT0RVTEVfSU5GT19DTUQ7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2FtbC5jOjExNTpcdGJ1ZmZlci1cdTAwM2VoZHIuYnVmX2xlbiA9IHNpemVvZihzdHJ1Y3QgdHhnYmVfaGljX2dldF9tb2R1bGVfaW5mbykgLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9hbWwuYy0xMTYtXHRcdFx0ICAgICAgc2l6ZW9mKHN0cnVjdCB3eF9oaWNfaGRyKTtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2FtbC5jLTExOS1cdHJldHVybiB3eF9ob3N0X2ludGVyZmFjZV9jb21tYW5kKHd4LCAodTMyICopYnVmZmVyLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9hbWwuYzoxMjA6XHRcdFx0XHRcdCBzaXplb2Yoc3RydWN0IHR4Z2JlX2hpY19nZXRfbW9kdWxlX2luZm8pLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9hbWwuYy0xMjEtXHRcdFx0XHRcdCBXWF9ISV9DT01NQU5EX1RJTUVPVVQsIHRydWUpO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfYW1sLmMtMTIzLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9hbWwuYzoxMjQ6c3RhdGljIGludCB0eGdiZV9zZXRfcGh5X2xpbmtfaG9zdGlmKHN0cnVjdCB3eCAqd3gsIGludCBzcGVlZCwgaW50IGF1dG9uZWcsIGludCBkdXBsZXgpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2FtbC5jLTEyNS17XG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2FtbC5jOjEyNjpcdHN0cnVjdCB0eGdiZV9oaWNfZXBoeV9zZXRsaW5rIGJ1ZmZlcjtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfYW1sLmMtMTI3LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9hbWwuYy0xMjgtXHRidWZmZXIuaGRyLmNtZCA9IEZXX1BIWV9TRVRfTElOS19DTUQ7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2FtbC5jOjEyOTpcdGJ1ZmZlci5oZHIuYnVmX2xlbiA9IHNpemVvZihzdHJ1Y3QgdHhnYmVfaGljX2VwaHlfc2V0bGluaykgLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9hbWwuYy0xMzAtXHRcdFx0ICAgICBzaXplb2Yoc3RydWN0IHd4X2hpY19oZHIpO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfYW1sLmMtMTU1LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9hbWwuYzoxNTY6c3RhdGljIHZvaWQgdHhnYmVfZ2V0X2xpbmtfY2FwYWJpbGl0aWVzKHN0cnVjdCB3eCAqd3gsIGludCAqc3BlZWQsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2FtbC5jLTE1Ny1cdFx0XHRcdFx0aW50ICphdXRvbmVnLCBpbnQgKmR1cGxleClcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfYW1sLmMtMTU4LXtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfYW1sLmM6MTU5Olx0c3RydWN0IHR4Z2JlICp0eGdiZSA9IHd4LVx1MDAzZXByaXY7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2FtbC5jLTE2MC1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfYW1sLmM6MTYxOlx0aWYgKHRlc3RfYml0KFBIWV9JTlRFUkZBQ0VfTU9ERV9YTEdNSUksIHR4Z2JlLVx1MDAzZWxpbmtfaW50ZXJmYWNlcykpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2FtbC5jLTE2Mi1cdFx0KnNwZWVkID0gU1BFRURfNDAwMDA7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2FtbC5jOjE2MzpcdGVsc2UgaWYgKHRlc3RfYml0KFBIWV9JTlRFUkZBQ0VfTU9ERV8yNUdCQVNFUiwgdHhnYmUtXHUwMDNlbGlua19pbnRlcmZhY2VzKSlcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfYW1sLmMtMTY0LVx0XHQqc3BlZWQgPSBTUEVFRF8yNTAwMDtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfYW1sLmM6MTY1Olx0ZWxzZSBpZiAodGVzdF9iaXQoUEhZX0lOVEVSRkFDRV9NT0RFXzEwR0JBU0VSLCB0eGdiZS1cdTAwM2VsaW5rX2ludGVyZmFjZXMpKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9hbWwuYy0xNjYtXHRcdCpzcGVlZCA9IFNQRUVEXzEwMDAwO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfYW1sLmMtMTY5LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9hbWwuYzoxNzA6XHQqYXV0b25lZyA9IHBoeWxpbmtfdGVzdCh0eGdiZS1cdTAwM2VhZHZlcnRpc2luZywgQXV0b25lZyk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2FtbC5jLTE3MS1cdCpkdXBsZXggPSAqc3BlZWQgPT0gU1BFRURfVU5LTk9XTiA/IERVUExFWF9IQUxGIDogRFVQTEVYX0ZVTEw7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9hbWwuYy0xNzMtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2FtbC5jOjE3NDpzdGF0aWMgdm9pZCB0eGdiZV9nZXRfbWFjX2xpbmsoc3RydWN0IHd4ICp3eCwgaW50ICpzcGVlZClcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfYW1sLmMtMTc1LXtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2FtbC5jLTE5MC1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfYW1sLmM6MTkxOnZvaWQgdHhnYmVfc2V0X3BoeV9saW5rKHN0cnVjdCB3eCAqd3gpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2FtbC5jLTE5Mi17XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9hbWwuYy0xOTQtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2FtbC5jOjE5NTpcdHR4Z2JlX2dldF9saW5rX2NhcGFiaWxpdGllcyh3eCwgXHUwMDI2c3BlZWQsIFx1MDAyNmF1dG9uZWcsIFx1MDAyNmR1cGxleCk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2FtbC5jLTE5Ni1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfYW1sLmM6MTk3Olx0ZXJyID0gdHhnYmVfc2V0X3BoeV9saW5rX2hvc3RpZih3eCwgc3BlZWQsIGF1dG9uZWcsIGR1cGxleCk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2FtbC5jLTE5OC1cdGlmIChlcnIpXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9hbWwuYy0yMDEtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2FtbC5jOjIwMjpzdGF0aWMgaW50IHR4Z2JlX3NmcF90b19saW5rbW9kZXMoc3RydWN0IHd4ICp3eCwgc3RydWN0IHR4Z2JlX3NmZl9pZCAqaWQpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2FtbC5jLTIwMy17XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9hbWwuYy0yMDUtXHRERUNMQVJFX1BIWV9JTlRFUkZBQ0VfTUFTS19aRVJPKGludGVyZmFjZXMpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9hbWwuYzoyMDY6XHRzdHJ1Y3QgdHhnYmUgKnR4Z2JlID0gd3gtXHUwMDNlcHJpdjtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfYW1sLmMtMjA3LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9hbWwuYy0yMDgtXHRpZiAoaWQtXHUwMDNlY2FibGVfdGVjaCBcdTAwMjYgVFhHQkVfU0ZGX0RBX1BBU1NJVkVfQ0FCTEUpIHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfYW1sLmM6MjA5Olx0XHR0eGdiZS1cdTAwM2VsaW5rX3BvcnQgPSBQT1JUX0RBO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9hbWwuYy0yMTAtXHRcdHBoeWxpbmtfc2V0KG1vZGVzLCBBdXRvbmVnKTtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2FtbC5jLTIyMi1cdH0gZWxzZSBpZiAoaWQtXHUwMDNlY2FibGVfdGVjaCBcdTAwMjYgVFhHQkVfU0ZGX0RBX0FDVElWRV9DQUJMRSkge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9hbWwuYzoyMjM6XHRcdHR4Z2JlLVx1MDAzZWxpbmtfcG9ydCA9IFBPUlRfREE7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2FtbC5jLTIyNC1cdFx0cGh5bGlua19zZXQobW9kZXMsIEF1dG9uZWcpO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfYW1sLmMtMjMwLVx0XHQgICAgaWQtXHUwMDNlY29tXzI1Z19jb2RlID09IFRYR0JFX1NGRl8yNUdCQVNFTFJfQ0FQQUJMRSkge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9hbWwuYzoyMzE6XHRcdFx0dHhnYmUtXHUwMDNlbGlua19wb3J0ID0gUE9SVF9GSUJSRTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfYW1sLmMtMjMyLVx0XHRcdHBoeWxpbmtfc2V0KG1vZGVzLCAyNTAwMGJhc2VTUl9GdWxsKTtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2FtbC5jLTIzNS1cdFx0aWYgKGlkLVx1MDAzZWNvbV8xMGdfY29kZSBcdTAwMjYgVFhHQkVfU0ZGXzEwR0JBU0VTUl9DQVBBQkxFKSB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2FtbC5jOjIzNjpcdFx0XHR0eGdiZS1cdTAwM2VsaW5rX3BvcnQgPSBQT1JUX0ZJQlJFO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9hbWwuYy0yMzctXHRcdFx0cGh5bGlua19zZXQobW9kZXMsIDEwMDAwYmFzZVNSX0Z1bGwpO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfYW1sLmMtMjQwLVx0XHRpZiAoaWQtXHUwMDNlY29tXzEwZ19jb2RlIFx1MDAyNiBUWEdCRV9TRkZfMTBHQkFTRUxSX0NBUEFCTEUpIHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfYW1sLmM6MjQxOlx0XHRcdHR4Z2JlLVx1MDAzZWxpbmtfcG9ydCA9IFBPUlRfRklCUkU7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2FtbC5jLTI0Mi1cdFx0XHRwaHlsaW5rX3NldChtb2RlcywgMTAwMDBiYXNlTFJfRnVsbCk7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9hbWwuYy0yNTUtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2FtbC5jOjI1NjpcdGlmICghbGlua21vZGVfZXF1YWwodHhnYmUtXHUwMDNlbGlua19zdXBwb3J0LCBtb2RlcykpIHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfYW1sLmM6MjU3Olx0XHRsaW5rbW9kZV9jb3B5KHR4Z2JlLVx1MDAzZWxpbmtfc3VwcG9ydCwgbW9kZXMpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9hbWwuYzoyNTg6XHRcdHBoeV9pbnRlcmZhY2VfYW5kKHR4Z2JlLVx1MDAzZWxpbmtfaW50ZXJmYWNlcyxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfYW1sLmMtMjU5LVx0XHRcdFx0ICB3eC1cdTAwM2VwaHlsaW5rX2NvbmZpZy5zdXBwb3J0ZWRfaW50ZXJmYWNlcyxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfYW1sLmMtMjYwLVx0XHRcdFx0ICBpbnRlcmZhY2VzKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfYW1sLmM6MjYxOlx0XHRsaW5rbW9kZV9jb3B5KHR4Z2JlLVx1MDAzZWFkdmVydGlzaW5nLCBtb2Rlcyk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2FtbC5jLTI2Mi1cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2FtbC5jLTI2OC1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfYW1sLmM6MjY5OnN0YXRpYyBpbnQgdHhnYmVfcXNmcF90b19saW5rbW9kZXMoc3RydWN0IHd4ICp3eCwgc3RydWN0IHR4Z2JlX3NmZl9pZCAqaWQpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2FtbC5jLTI3MC17XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9hbWwuYy0yNzItXHRERUNMQVJFX1BIWV9JTlRFUkZBQ0VfTUFTS19aRVJPKGludGVyZmFjZXMpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9hbWwuYzoyNzM6XHRzdHJ1Y3QgdHhnYmUgKnR4Z2JlID0gd3gtXHUwMDNlcHJpdjtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfYW1sLmMtMjc0LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9hbWwuYy0yNzUtXHRpZiAoaWQtXHUwMDNldHJhbnNjZWl2ZXJfdHlwZSBcdTAwMjYgVFhHQkVfU0ZGX0VUSEVSTkVUXzQwR19DUjQpIHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfYW1sLmM6Mjc2Olx0XHR0eGdiZS1cdTAwM2VsaW5rX3BvcnQgPSBQT1JUX0RBO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9hbWwuYy0yNzctXHRcdHBoeWxpbmtfc2V0KG1vZGVzLCBBdXRvbmVnKTtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2FtbC5jLTI4My1cdGlmIChpZC1cdTAwM2V0cmFuc2NlaXZlcl90eXBlIFx1MDAyNiBUWEdCRV9TRkZfRVRIRVJORVRfNDBHX1NSNCkge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9hbWwuYzoyODQ6XHRcdHR4Z2JlLVx1MDAzZWxpbmtfcG9ydCA9IFBPUlRfRklCUkU7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2FtbC5jLTI4NS1cdFx0cGh5bGlua19zZXQobW9kZXMsIDQwMDAwYmFzZVNSNF9GdWxsKTtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2FtbC5jLTI4OC1cdGlmIChpZC1cdTAwM2V0cmFuc2NlaXZlcl90eXBlIFx1MDAyNiBUWEdCRV9TRkZfRVRIRVJORVRfNDBHX0xSNCkge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9hbWwuYzoyODk6XHRcdHR4Z2JlLVx1MDAzZWxpbmtfcG9ydCA9IFBPUlRfRklCUkU7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2FtbC5jLTI5MC1cdFx0cGh5bGlua19zZXQobW9kZXMsIDQwMDAwYmFzZUxSNF9GdWxsKTtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2FtbC5jLTI5My1cdGlmIChpZC1cdTAwM2V0cmFuc2NlaXZlcl90eXBlIFx1MDAyNiBUWEdCRV9TRkZfRVRIRVJORVRfNDBHX0FDVElWRSkge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9hbWwuYzoyOTQ6XHRcdHR4Z2JlLVx1MDAzZWxpbmtfcG9ydCA9IFBPUlRfREE7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2FtbC5jLTI5NS1cdFx0cGh5bGlua19zZXQobW9kZXMsIEF1dG9uZWcpO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfYW1sLmMtMzAwLVx0XHRpZiAoaWQtXHUwMDNlc2ZmX29wdDEgXHUwMDI2IFRYR0JFX1NGRl9FVEhFUk5FVF8xMDBHX0NSNCkge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9hbWwuYzozMDE6XHRcdFx0dHhnYmUtXHUwMDNlbGlua19wb3J0ID0gUE9SVF9EQTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfYW1sLmMtMzAyLVx0XHRcdHBoeWxpbmtfc2V0KG1vZGVzLCBBdXRvbmVnKTtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2FtbC5jLTMyMC1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfYW1sLmM6MzIxOlx0aWYgKCFsaW5rbW9kZV9lcXVhbCh0eGdiZS1cdTAwM2VsaW5rX3N1cHBvcnQsIG1vZGVzKSkge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9hbWwuYzozMjI6XHRcdGxpbmttb2RlX2NvcHkodHhnYmUtXHUwMDNlbGlua19zdXBwb3J0LCBtb2Rlcyk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2FtbC5jOjMyMzpcdFx0cGh5X2ludGVyZmFjZV9hbmQodHhnYmUtXHUwMDNlbGlua19pbnRlcmZhY2VzLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9hbWwuYy0zMjQtXHRcdFx0XHQgIHd4LVx1MDAzZXBoeWxpbmtfY29uZmlnLnN1cHBvcnRlZF9pbnRlcmZhY2VzLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9hbWwuYy0zMjUtXHRcdFx0XHQgIGludGVyZmFjZXMpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9hbWwuYzozMjY6XHRcdGxpbmttb2RlX2NvcHkodHhnYmUtXHUwMDNlYWR2ZXJ0aXNpbmcsIG1vZGVzKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfYW1sLmMtMzI3LVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfYW1sLmMtMzMzLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9hbWwuYzozMzQ6aW50IHR4Z2JlX2lkZW50aWZ5X21vZHVsZShzdHJ1Y3Qgd3ggKnd4KVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9hbWwuYy0zMzUte1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9hbWwuYzozMzY6XHRzdHJ1Y3QgdHhnYmVfaGljX2dldF9tb2R1bGVfaW5mbyBidWZmZXIgPSB7IDAgfTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfYW1sLmM6MzM3Olx0c3RydWN0IHR4Z2JlX3NmZl9pZCAqaWQ7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2FtbC5jLTMzOC1cdGludCBlcnIgPSAwO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfYW1sLmMtMzUwLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9hbWwuYzozNTE6XHRlcnIgPSB0eGdiZV9pZGVudGlmeV9tb2R1bGVfaG9zdGlmKHd4LCBcdTAwMjZidWZmZXIpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9hbWwuYy0zNTItXHRpZiAoZXJyKSB7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9hbWwuYy0zNTgtXHRpZiAoaWQtXHUwMDNlaWRlbnRpZmllciA9PSBUWEdCRV9TRkZfSURFTlRJRklFUl9TRlApXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2FtbC5jOjM1OTpcdFx0cmV0dXJuIHR4Z2JlX3NmcF90b19saW5rbW9kZXMod3gsIGlkKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfYW1sLmMtMzYwLVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfYW1sLmMtMzYzLVx0ICAgIGlkLVx1MDAzZWlkZW50aWZpZXIgPT0gVFhHQkVfU0ZGX0lERU5USUZJRVJfUVNGUDI4KVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9hbWwuYzozNjQ6XHRcdHJldHVybiB0eGdiZV9xc2ZwX3RvX2xpbmttb2Rlcyh3eCwgaWQpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9hbWwuYy0zNjUtXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9hbWwuYy0zNjktXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2FtbC5jOjM3MDp2b2lkIHR4Z2JlX3NldHVwX2xpbmsoc3RydWN0IHd4ICp3eClcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfYW1sLmMtMzcxLXtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfYW1sLmM6MzcyOlx0c3RydWN0IHR4Z2JlICp0eGdiZSA9IHd4LVx1MDAzZXByaXY7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2FtbC5jLTM3My1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfYW1sLmM6Mzc0Olx0cGh5X2ludGVyZmFjZV96ZXJvKHR4Z2JlLVx1MDAzZWxpbmtfaW50ZXJmYWNlcyk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2FtbC5jOjM3NTpcdGxpbmttb2RlX3plcm8odHhnYmUtXHUwMDNlbGlua19zdXBwb3J0KTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfYW1sLmMtMzc2LVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfYW1sLmMtMzgwLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9hbWwuYzozODE6c3RhdGljIHZvaWQgdHhnYmVfZ2V0X2xpbmtfc3RhdGUoc3RydWN0IHBoeWxpbmtfY29uZmlnICpjb25maWcsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2FtbC5jLTM4Mi1cdFx0XHRcdCBzdHJ1Y3QgcGh5bGlua19saW5rX3N0YXRlICpzdGF0ZSlcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2FtbC5jLTM4Ni1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfYW1sLmM6Mzg3Olx0dHhnYmVfZ2V0X21hY19saW5rKHd4LCBcdTAwMjZzcGVlZCk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2FtbC5jLTM4OC1cdHN0YXRlLVx1MDAzZWxpbmsgPSBzcGVlZCAhPSBTUEVFRF9VTktOT1dOO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfYW1sLmMtMzkyLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9hbWwuYzozOTM6c3RhdGljIHZvaWQgdHhnYmVfcmVjb25maWdfbWFjKHN0cnVjdCB3eCAqd3gpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2FtbC5jLTM5NC17XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9hbWwuYy00MTEtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2FtbC5jOjQxMjpzdGF0aWMgdm9pZCB0eGdiZV9tYWNfbGlua191cF9hbWwoc3RydWN0IHBoeWxpbmtfY29uZmlnICpjb25maWcsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2FtbC5jLTQxMy1cdFx0XHRcdCAgc3RydWN0IHBoeV9kZXZpY2UgKnBoeSxcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2FtbC5jLTQyMy1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfYW1sLmM6NDI0Olx0dHhnYmVfcmVjb25maWdfbWFjKHd4KTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfYW1sLmM6NDI1Olx0dHhnYmVfZW5hYmxlX3NlY190eF9wYXRoKHd4KTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfYW1sLmMtNDI2LVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfYW1sLmMtNDU0LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9hbWwuYzo0NTU6c3RhdGljIHZvaWQgdHhnYmVfbWFjX2xpbmtfZG93bl9hbWwoc3RydWN0IHBoeWxpbmtfY29uZmlnICpjb25maWcsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2FtbC5jLTQ1Ni1cdFx0XHRcdCAgICB1bnNpZ25lZCBpbnQgbW9kZSxcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2FtbC5jLTQ3MC1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfYW1sLmM6NDcxOnN0YXRpYyB2b2lkIHR4Z2JlX21hY19jb25maWdfYW1sKHN0cnVjdCBwaHlsaW5rX2NvbmZpZyAqY29uZmlnLCB1bnNpZ25lZCBpbnQgbW9kZSxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfYW1sLmMtNDcyLVx0XHRcdFx0IGNvbnN0IHN0cnVjdCBwaHlsaW5rX2xpbmtfc3RhdGUgKnN0YXRlKVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfYW1sLmMtNDc1LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9hbWwuYzo0NzY6c3RhdGljIGNvbnN0IHN0cnVjdCBwaHlsaW5rX21hY19vcHMgdHhnYmVfbWFjX29wc19hbWwgPSB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2FtbC5jOjQ3NzpcdC5tYWNfY29uZmlnID0gdHhnYmVfbWFjX2NvbmZpZ19hbWwsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2FtbC5jOjQ3ODpcdC5tYWNfbGlua19kb3duID0gdHhnYmVfbWFjX2xpbmtfZG93bl9hbWwsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2FtbC5jOjQ3OTpcdC5tYWNfbGlua191cCA9IHR4Z2JlX21hY19saW5rX3VwX2FtbCxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfYW1sLmMtNDgwLX07XG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2FtbC5jLTQ4MS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfYW1sLmM6NDgyOmludCB0eGdiZV9waHlsaW5rX2luaXRfYW1sKHN0cnVjdCB0eGdiZSAqdHhnYmUpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2FtbC5jLTQ4My17XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9hbWwuYy00ODUtXHRzdHJ1Y3QgcGh5bGlua19jb25maWcgKmNvbmZpZztcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfYW1sLmM6NDg2Olx0c3RydWN0IHd4ICp3eCA9IHR4Z2JlLVx1MDAzZXd4O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9hbWwuYy00ODctXHRwaHlfaW50ZXJmYWNlX3QgcGh5X21vZGU7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9hbWwuYy00OTUtXHRcdFx0XHQgICBNQUNfU1lNX1BBVVNFIHwgTUFDX0FTWU1fUEFVU0U7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2FtbC5jOjQ5NjpcdGNvbmZpZy1cdTAwM2VnZXRfZml4ZWRfc3RhdGUgPSB0eGdiZV9nZXRfbGlua19zdGF0ZTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfYW1sLmMtNDk3LVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfYW1sLmMtNTEyLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9hbWwuYzo1MTM6XHRwaHlsaW5rID0gcGh5bGlua19jcmVhdGUoY29uZmlnLCBOVUxMLCBwaHlfbW9kZSwgXHUwMDI2dHhnYmVfbWFjX29wc19hbWwpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9hbWwuYy01MTQtXHRpZiAoSVNfRVJSKHBoeWxpbmspKVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfYW1sLmgtNi1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfYW1sLmg6Nzp2b2lkIHR4Z2JlX2dwaW9faW5pdF9hbWwoc3RydWN0IHd4ICp3eCk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2FtbC5oOjg6aXJxcmV0dXJuX3QgdHhnYmVfZ3Bpb19pcnFfaGFuZGxlcl9hbWwoaW50IGlycSwgdm9pZCAqZGF0YSk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2FtbC5oOjk6aW50IHR4Z2JlX3Rlc3RfaG9zdGlmKHN0cnVjdCB3eCAqd3gpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9hbWwuaDoxMDppbnQgdHhnYmVfcmVhZF9lZXByb21faG9zdGlmKHN0cnVjdCB3eCAqd3gsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2FtbC5oOjExOlx0XHRcdCAgICAgc3RydWN0IHR4Z2JlX2hpY19pMmNfcmVhZCAqYnVmZmVyLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9hbWwuaC0xMi1cdFx0XHQgICAgIHUzMiBsZW5ndGgsIHU4ICpkYXRhKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfYW1sLmg6MTM6dm9pZCB0eGdiZV9zZXRfcGh5X2xpbmsoc3RydWN0IHd4ICp3eCk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2FtbC5oOjE0OmludCB0eGdiZV9pZGVudGlmeV9tb2R1bGUoc3RydWN0IHd4ICp3eCk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2FtbC5oOjE1OnZvaWQgdHhnYmVfc2V0dXBfbGluayhzdHJ1Y3Qgd3ggKnd4KTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfYW1sLmg6MTY6aW50IHR4Z2JlX3BoeWxpbmtfaW5pdF9hbWwoc3RydWN0IHR4Z2JlICp0eGdiZSk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2FtbC5oLTE3LVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfZXRodG9vbC5jLTEwLSNpbmNsdWRlIFwmIzM0Oy4uL2xpYnd4L3d4X2xpYi5oXCYjMzQ7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2V0aHRvb2wuYzoxMTojaW5jbHVkZSBcJiMzNDt0eGdiZV90eXBlLmhcJiMzNDtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfZXRodG9vbC5jOjEyOiNpbmNsdWRlIFwmIzM0O3R4Z2JlX2ZkaXIuaFwmIzM0O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9ldGh0b29sLmM6MTM6I2luY2x1ZGUgXCYjMzQ7dHhnYmVfYW1sLmhcJiMzNDtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfZXRodG9vbC5jOjE0OiNpbmNsdWRlIFwmIzM0O3R4Z2JlX2V0aHRvb2wuaFwmIzM0O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9ldGh0b29sLmMtMTUtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2V0aHRvb2wuYzoxNjppbnQgdHhnYmVfZ2V0X2xpbmtfa3NldHRpbmdzKHN0cnVjdCBuZXRfZGV2aWNlICpuZXRkZXYsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2V0aHRvb2wuYy0xNy1cdFx0XHQgICAgIHN0cnVjdCBldGh0b29sX2xpbmtfa3NldHRpbmdzICpjbWQpXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9ldGh0b29sLmMtMTktXHRzdHJ1Y3Qgd3ggKnd4ID0gbmV0ZGV2X3ByaXYobmV0ZGV2KTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfZXRodG9vbC5jOjIwOlx0c3RydWN0IHR4Z2JlICp0eGdiZSA9IHd4LVx1MDAzZXByaXY7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2V0aHRvb2wuYy0yMS1cdGludCBlcnI7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9ldGh0b29sLmMtMjktXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2V0aHRvb2wuYzozMDpcdGNtZC1cdTAwM2ViYXNlLnBvcnQgPSB0eGdiZS1cdTAwM2VsaW5rX3BvcnQ7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2V0aHRvb2wuYzozMTpcdGNtZC1cdTAwM2ViYXNlLmF1dG9uZWcgPSBwaHlsaW5rX3Rlc3QodHhnYmUtXHUwMDNlYWR2ZXJ0aXNpbmcsIEF1dG9uZWcpID9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfZXRodG9vbC5jLTMyLVx0XHRcdCAgICBBVVRPTkVHX0VOQUJMRSA6IEFVVE9ORUdfRElTQUJMRTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfZXRodG9vbC5jOjMzOlx0bGlua21vZGVfY29weShjbWQtXHUwMDNlbGlua19tb2Rlcy5zdXBwb3J0ZWQsIHR4Z2JlLVx1MDAzZWxpbmtfc3VwcG9ydCk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2V0aHRvb2wuYzozNDpcdGxpbmttb2RlX2NvcHkoY21kLVx1MDAzZWxpbmtfbW9kZXMuYWR2ZXJ0aXNpbmcsIHR4Z2JlLVx1MDAzZWFkdmVydGlzaW5nKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfZXRodG9vbC5jLTM1LVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfZXRodG9vbC5jLTM4LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9ldGh0b29sLmM6Mzk6c3RhdGljIGludCB0eGdiZV9zZXRfcmluZ3BhcmFtKHN0cnVjdCBuZXRfZGV2aWNlICpuZXRkZXYsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2V0aHRvb2wuYy00MC1cdFx0XHQgICAgICAgc3RydWN0IGV0aHRvb2xfcmluZ3BhcmFtICpyaW5nLFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfZXRodG9vbC5jLTgwLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9ldGh0b29sLmM6ODE6XHR0eGdiZV9kb3duKHd4KTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfZXRodG9vbC5jLTgyLVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfZXRodG9vbC5jLTg1LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9ldGh0b29sLmM6ODY6XHR0eGdiZV91cCh3eCk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2V0aHRvb2wuYy04Ny1cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2V0aHRvb2wuYy05My1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfZXRodG9vbC5jOjk0OnN0YXRpYyBpbnQgdHhnYmVfZ2V0X2V0aHRvb2xfZmRpcl9lbnRyeShzdHJ1Y3QgdHhnYmUgKnR4Z2JlLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9ldGh0b29sLmMtOTUtXHRcdFx0XHRcdHN0cnVjdCBldGh0b29sX3J4bmZjICpjbWQpXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9ldGh0b29sLmMtOTgtXHRcdChzdHJ1Y3QgZXRodG9vbF9yeF9mbG93X3NwZWMgKilcdTAwMjZjbWQtXHUwMDNlZnM7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2V0aHRvb2wuYzo5OTpcdHVuaW9uIHR4Z2JlX2F0cl9pbnB1dCAqbWFzayA9IFx1MDAyNnR4Z2JlLVx1MDAzZWZkaXJfbWFzaztcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfZXRodG9vbC5jOjEwMDpcdHN0cnVjdCB0eGdiZV9mZGlyX2ZpbHRlciAqcnVsZSA9IE5VTEw7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2V0aHRvb2wuYy0xMDEtXHRzdHJ1Y3QgaGxpc3Rfbm9kZSAqbm9kZTtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2V0aHRvb2wuYy0xMDUtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2V0aHRvb2wuYzoxMDY6XHRobGlzdF9mb3JfZWFjaF9lbnRyeV9zYWZlKHJ1bGUsIG5vZGUsIFx1MDAyNnR4Z2JlLVx1MDAzZWZkaXJfZmlsdGVyX2xpc3QsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2V0aHRvb2wuYy0xMDctXHRcdFx0XHQgIGZkaXJfbm9kZSkge1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfZXRodG9vbC5jLTE1OC1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfZXRodG9vbC5jOjE1OTpzdGF0aWMgaW50IHR4Z2JlX2dldF9ldGh0b29sX2ZkaXJfYWxsKHN0cnVjdCB0eGdiZSAqdHhnYmUsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2V0aHRvb2wuYy0xNjAtXHRcdFx0XHQgICAgICBzdHJ1Y3QgZXRodG9vbF9yeG5mYyAqY21kLFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfZXRodG9vbC5jLTE2Mi17XG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2V0aHRvb2wuYzoxNjM6XHRzdHJ1Y3QgdHhnYmVfZmRpcl9maWx0ZXIgKnJ1bGU7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2V0aHRvb2wuYy0xNjQtXHRzdHJ1Y3QgaGxpc3Rfbm9kZSAqbm9kZTtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2V0aHRvb2wuYy0xNjktXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2V0aHRvb2wuYzoxNzA6XHRobGlzdF9mb3JfZWFjaF9lbnRyeV9zYWZlKHJ1bGUsIG5vZGUsIFx1MDAyNnR4Z2JlLVx1MDAzZWZkaXJfZmlsdGVyX2xpc3QsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2V0aHRvb2wuYy0xNzEtXHRcdFx0XHQgIGZkaXJfbm9kZSkge1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfZXRodG9vbC5jLTE4Mi1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfZXRodG9vbC5jOjE4MzpzdGF0aWMgdTMyIHR4Z2JlX2dldF9yeF9yaW5nX2NvdW50KHN0cnVjdCBuZXRfZGV2aWNlICpkZXYpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2V0aHRvb2wuYy0xODQte1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfZXRodG9vbC5jLTE4OS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfZXRodG9vbC5jOjE5MDpzdGF0aWMgaW50IHR4Z2JlX2dldF9yeG5mYyhzdHJ1Y3QgbmV0X2RldmljZSAqZGV2LCBzdHJ1Y3QgZXRodG9vbF9yeG5mYyAqY21kLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9ldGh0b29sLmMtMTkxLVx0XHRcdCAgIHUzMiAqcnVsZV9sb2NzKVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfZXRodG9vbC5jLTE5My1cdHN0cnVjdCB3eCAqd3ggPSBuZXRkZXZfcHJpdihkZXYpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9ldGh0b29sLmM6MTk0Olx0c3RydWN0IHR4Z2JlICp0eGdiZSA9IHd4LVx1MDAzZXByaXY7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2V0aHRvb2wuYy0xOTUtXHRpbnQgcmV0ID0gLUVPUE5PVFNVUFA7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9ldGh0b29sLmMtMTk4LVx0Y2FzZSBFVEhUT09MX0dSWENMU1JMQ05UOlxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9ldGh0b29sLmM6MTk5Olx0XHRjbWQtXHUwMDNlcnVsZV9jbnQgPSB0eGdiZS1cdTAwM2VmZGlyX2ZpbHRlcl9jb3VudDtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfZXRodG9vbC5jLTIwMC1cdFx0cmV0ID0gMDtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2V0aHRvb2wuYy0yMDItXHRjYXNlIEVUSFRPT0xfR1JYQ0xTUlVMRTpcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfZXRodG9vbC5jOjIwMzpcdFx0cmV0ID0gdHhnYmVfZ2V0X2V0aHRvb2xfZmRpcl9lbnRyeSh0eGdiZSwgY21kKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfZXRodG9vbC5jLTIwNC1cdFx0YnJlYWs7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2V0aHRvb2wuYy0yMDUtXHRjYXNlIEVUSFRPT0xfR1JYQ0xTUkxBTEw6XG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2V0aHRvb2wuYzoyMDY6XHRcdHJldCA9IHR4Z2JlX2dldF9ldGh0b29sX2ZkaXJfYWxsKHR4Z2JlLCBjbWQsICh1MzIgKilydWxlX2xvY3MpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9ldGh0b29sLmMtMjA3LVx0XHRicmVhaztcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2V0aHRvb2wuYy0yMTQtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2V0aHRvb2wuYzoyMTU6c3RhdGljIGludCB0eGdiZV9mbG93c3BlY190b19mbG93X3R5cGUoc3RydWN0IGV0aHRvb2xfcnhfZmxvd19zcGVjICpmc3AsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2V0aHRvb2wuYy0yMTYtXHRcdFx0XHQgICAgICAgdTggKmZsb3dfdHlwZSlcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2V0aHRvb2wuYy0yNTUtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2V0aHRvb2wuYzoyNTY6c3RhdGljIGJvb2wgdHhnYmVfbWF0Y2hfZXRodG9vbF9mZGlyX2VudHJ5KHN0cnVjdCB0eGdiZSAqdHhnYmUsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2V0aHRvb2wuYzoyNTc6XHRcdFx0XHRcdCAgIHN0cnVjdCB0eGdiZV9mZGlyX2ZpbHRlciAqaW5wdXQpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2V0aHRvb2wuYy0yNTgte1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9ldGh0b29sLmM6MjU5Olx0c3RydWN0IHR4Z2JlX2ZkaXJfZmlsdGVyICpydWxlID0gTlVMTDtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfZXRodG9vbC5jLTI2MC1cdHN0cnVjdCBobGlzdF9ub2RlICpub2RlMjtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfZXRodG9vbC5jLTI2MS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfZXRodG9vbC5jOjI2MjpcdGhsaXN0X2Zvcl9lYWNoX2VudHJ5X3NhZmUocnVsZSwgbm9kZTIsIFx1MDAyNnR4Z2JlLVx1MDAzZWZkaXJfZmlsdGVyX2xpc3QsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2V0aHRvb2wuYy0yNjMtXHRcdFx0XHQgIGZkaXJfbm9kZSkge1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfZXRodG9vbC5jLTI2Ni1cdFx0ICAgIHJ1bGUtXHUwMDNlYWN0aW9uID09IGlucHV0LVx1MDAzZWFjdGlvbikge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9ldGh0b29sLmM6MjY3Olx0XHRcdHd4X2RiZyh0eGdiZS1cdTAwM2V3eCwgXCYjMzQ7RkRJUiBlbnRyeSBhbHJlYWR5IGV4aXN0XFxuXCYjMzQ7KTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfZXRodG9vbC5jLTI2OC1cdFx0XHRyZXR1cm4gdHJ1ZTtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2V0aHRvb2wuYy0yNzMtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2V0aHRvb2wuYzoyNzQ6c3RhdGljIGludCB0eGdiZV91cGRhdGVfZXRodG9vbF9mZGlyX2VudHJ5KHN0cnVjdCB0eGdiZSAqdHhnYmUsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2V0aHRvb2wuYzoyNzU6XHRcdFx0XHRcdCAgIHN0cnVjdCB0eGdiZV9mZGlyX2ZpbHRlciAqaW5wdXQsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2V0aHRvb2wuYy0yNzYtXHRcdFx0XHRcdCAgIHUxNiBzd19pZHgpXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9ldGh0b29sLmMtMjc4LVx0c3RydWN0IGhsaXN0X25vZGUgKm5vZGUgPSBOVUxMLCAqcGFyZW50ID0gTlVMTDtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfZXRodG9vbC5jOjI3OTpcdHN0cnVjdCB0eGdiZV9mZGlyX2ZpbHRlciAqcnVsZTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfZXRodG9vbC5jOjI4MDpcdHN0cnVjdCB3eCAqd3ggPSB0eGdiZS1cdTAwM2V3eDtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfZXRodG9vbC5jLTI4MS1cdGJvb2wgZGVsZXRlZCA9IGZhbHNlO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfZXRodG9vbC5jLTI4My1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfZXRodG9vbC5jOjI4NDpcdGhsaXN0X2Zvcl9lYWNoX2VudHJ5X3NhZmUocnVsZSwgbm9kZSwgXHUwMDI2dHhnYmUtXHUwMDNlZmRpcl9maWx0ZXJfbGlzdCxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfZXRodG9vbC5jLTI4NS1cdFx0XHRcdCAgZmRpcl9ub2RlKSB7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9ldGh0b29sLmMtMzAwLVx0XHQgICAgIGlucHV0LVx1MDAzZWZpbHRlci5mb3JtYXR0ZWQuYmt0X2hhc2gpKSB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2V0aHRvb2wuYzozMDE6XHRcdFx0ZXJyID0gdHhnYmVfZmRpcl9lcmFzZV9wZXJmZWN0X2ZpbHRlcih3eCxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfZXRodG9vbC5jLTMwMi1cdFx0XHRcdFx0XHRcdCAgICAgIFx1MDAyNnJ1bGUtXHUwMDNlZmlsdGVyLFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfZXRodG9vbC5jLTMwOS1cdFx0a2ZyZWUocnVsZSk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2V0aHRvb2wuYzozMTA6XHRcdHR4Z2JlLVx1MDAzZWZkaXJfZmlsdGVyX2NvdW50LS07XG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2V0aHRvb2wuYy0zMTEtXHRcdGRlbGV0ZWQgPSB0cnVlO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfZXRodG9vbC5jLTMyOC1cdFx0aGxpc3RfYWRkX2hlYWQoXHUwMDI2aW5wdXQtXHUwMDNlZmRpcl9ub2RlLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9ldGh0b29sLmM6MzI5Olx0XHRcdCAgICAgICBcdTAwMjZ0eGdiZS1cdTAwM2VmZGlyX2ZpbHRlcl9saXN0KTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfZXRodG9vbC5jLTMzMC1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfZXRodG9vbC5jLTMzMS1cdC8qIHVwZGF0ZSBjb3VudHMgKi9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfZXRodG9vbC5jOjMzMjpcdHR4Z2JlLVx1MDAzZWZkaXJfZmlsdGVyX2NvdW50JiM0MzsmIzQzOztcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfZXRodG9vbC5jLTMzMy1cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2V0aHRvb2wuYy0zMzYtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2V0aHRvb2wuYzozMzc6c3RhdGljIGludCB0eGdiZV9hZGRfZXRodG9vbF9mZGlyX2VudHJ5KHN0cnVjdCB0eGdiZSAqdHhnYmUsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2V0aHRvb2wuYy0zMzgtXHRcdFx0XHRcdHN0cnVjdCBldGh0b29sX3J4bmZjICpjbWQpXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9ldGh0b29sLmMtMzQxLVx0XHQoc3RydWN0IGV0aHRvb2xfcnhfZmxvd19zcGVjICopXHUwMDI2Y21kLVx1MDAzZWZzO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9ldGh0b29sLmM6MzQyOlx0c3RydWN0IHR4Z2JlX2ZkaXJfZmlsdGVyICppbnB1dDtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfZXRodG9vbC5jOjM0MzpcdHVuaW9uIHR4Z2JlX2F0cl9pbnB1dCBtYXNrO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9ldGh0b29sLmM6MzQ0Olx0c3RydWN0IHd4ICp3eCA9IHR4Z2JlLVx1MDAzZXd4O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9ldGh0b29sLmMtMzQ1LVx0aW50IGVyciA9IC1FSU5WQUw7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9ldGh0b29sLmMtMzUxLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9ldGh0b29sLmM6MzUyOlx0LyogcmluZ19jb29raWUgaXMgYSBtYXNrZWQgaW50byBhIHNldCBvZiBxdWV1ZXMgYW5kIHR4Z2JlIHBvb2xzIG9yXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2V0aHRvb2wuYy0zNTMtXHQgKiB3ZSB1c2UgZHJvcCBpbmRleFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfZXRodG9vbC5jLTM4My1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfZXRodG9vbC5jOjM4NDpcdG1lbXNldChcdTAwMjZtYXNrLCAwLCBzaXplb2YodW5pb24gdHhnYmVfYXRyX2lucHV0KSk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2V0aHRvb2wuYy0zODUtXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9ldGh0b29sLmMtMzg5LVx0LyogcmVjb3JkIGZsb3cgdHlwZSAqL1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9ldGh0b29sLmM6MzkwOlx0aWYgKHR4Z2JlX2Zsb3dzcGVjX3RvX2Zsb3dfdHlwZShmc3AsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2V0aHRvb2wuYy0zOTEtXHRcdFx0XHRcdFx1MDAyNmlucHV0LVx1MDAzZWZpbHRlci5mb3JtYXR0ZWQuZmxvd190eXBlKSkge1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfZXRodG9vbC5jLTQ1MC1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfZXRodG9vbC5jOjQ1MTpcdHNwaW5fbG9jayhcdTAwMjZ0eGdiZS1cdTAwM2VmZGlyX3BlcmZlY3RfbG9jayk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2V0aHRvb2wuYy00NTItXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2V0aHRvb2wuYzo0NTM6XHRpZiAoaGxpc3RfZW1wdHkoXHUwMDI2dHhnYmUtXHUwMDNlZmRpcl9maWx0ZXJfbGlzdCkpIHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfZXRodG9vbC5jLTQ1NC1cdFx0Lyogc2F2ZSBtYXNrIGFuZCBwcm9ncmFtIGlucHV0IG1hc2sgaW50byBIVyAqL1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9ldGh0b29sLmM6NDU1Olx0XHRtZW1jcHkoXHUwMDI2dHhnYmUtXHUwMDNlZmRpcl9tYXNrLCBcdTAwMjZtYXNrLCBzaXplb2YobWFzaykpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9ldGh0b29sLmM6NDU2Olx0XHRlcnIgPSB0eGdiZV9mZGlyX3NldF9pbnB1dF9tYXNrKHd4LCBcdTAwMjZtYXNrKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfZXRodG9vbC5jLTQ1Ny1cdFx0aWYgKGVycilcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfZXRodG9vbC5jLTQ1OC1cdFx0XHRnb3RvIGVycl91bmxvY2s7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2V0aHRvb2wuYzo0NTk6XHR9IGVsc2UgaWYgKG1lbWNtcChcdTAwMjZ0eGdiZS1cdTAwM2VmZGlyX21hc2ssIFx1MDAyNm1hc2ssIHNpemVvZihtYXNrKSkpIHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfZXRodG9vbC5jLTQ2MC1cdFx0d3hfZXJyKHd4LCBcJiMzNDtIYXJkd2FyZSBvbmx5IHN1cHBvcnRzIG9uZSBtYXNrIHBlciBwb3J0LiBUbyBjaGFuZ2UgdGhlIG1hc2sgeW91IG11c3QgZmlyc3QgZGVsZXRlIGFsbCB0aGUgcnVsZXMuXFxuXCYjMzQ7KTtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2V0aHRvb2wuYy00NjQtXHQvKiBhcHBseSBtYXNrIGFuZCBjb21wdXRlL3N0b3JlIGhhc2ggKi9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfZXRodG9vbC5jOjQ2NTpcdHR4Z2JlX2F0cl9jb21wdXRlX3BlcmZlY3RfaGFzaChcdTAwMjZpbnB1dC1cdTAwM2VmaWx0ZXIsIFx1MDAyNm1hc2spO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9ldGh0b29sLmMtNDY2LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9ldGh0b29sLmMtNDY3LVx0LyogY2hlY2sgaWYgbmV3IGVudHJ5IGRvZXMgbm90IGV4aXN0IG9uIGZpbHRlciBsaXN0ICovXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2V0aHRvb2wuYzo0Njg6XHRpZiAodHhnYmVfbWF0Y2hfZXRodG9vbF9mZGlyX2VudHJ5KHR4Z2JlLCBpbnB1dCkpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2V0aHRvb2wuYy00NjktXHRcdGdvdG8gZXJyX3VubG9jaztcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2V0aHRvb2wuYy00NzUtXHRpZiAobmV0aWZfcnVubmluZyh3eC1cdTAwM2VuZXRkZXYpKSB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2V0aHRvb2wuYzo0NzY6XHRcdGVyciA9IHR4Z2JlX2ZkaXJfd3JpdGVfcGVyZmVjdF9maWx0ZXIod3gsIFx1MDAyNmlucHV0LVx1MDAzZWZpbHRlcixcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfZXRodG9vbC5jLTQ3Ny1cdFx0XHRcdFx0XHQgICAgICBpbnB1dC1cdTAwM2Vzd19pZHgsIHF1ZXVlKTtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2V0aHRvb2wuYy00ODEtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2V0aHRvb2wuYzo0ODI6XHR0eGdiZV91cGRhdGVfZXRodG9vbF9mZGlyX2VudHJ5KHR4Z2JlLCBpbnB1dCwgaW5wdXQtXHUwMDNlc3dfaWR4KTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfZXRodG9vbC5jLTQ4My1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfZXRodG9vbC5jOjQ4NDpcdHNwaW5fdW5sb2NrKFx1MDAyNnR4Z2JlLVx1MDAzZWZkaXJfcGVyZmVjdF9sb2NrKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfZXRodG9vbC5jLTQ4NS1cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2V0aHRvb2wuYy00ODctZXJyX3VubG9jazpcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfZXRodG9vbC5jOjQ4ODpcdHNwaW5fdW5sb2NrKFx1MDAyNnR4Z2JlLVx1MDAzZWZkaXJfcGVyZmVjdF9sb2NrKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfZXRodG9vbC5jLTQ4OS1lcnJfb3V0OlxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfZXRodG9vbC5jLTQ5My1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfZXRodG9vbC5jOjQ5NDpzdGF0aWMgaW50IHR4Z2JlX2RlbF9ldGh0b29sX2ZkaXJfZW50cnkoc3RydWN0IHR4Z2JlICp0eGdiZSxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfZXRodG9vbC5jLTQ5NS1cdFx0XHRcdFx0c3RydWN0IGV0aHRvb2xfcnhuZmMgKmNtZClcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2V0aHRvb2wuYy01MDAtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2V0aHRvb2wuYzo1MDE6XHRzcGluX2xvY2soXHUwMDI2dHhnYmUtXHUwMDNlZmRpcl9wZXJmZWN0X2xvY2spO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9ldGh0b29sLmM6NTAyOlx0ZXJyID0gdHhnYmVfdXBkYXRlX2V0aHRvb2xfZmRpcl9lbnRyeSh0eGdiZSwgTlVMTCwgZnNwLVx1MDAzZWxvY2F0aW9uKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfZXRodG9vbC5jOjUwMzpcdHNwaW5fdW5sb2NrKFx1MDAyNnR4Z2JlLVx1MDAzZWZkaXJfcGVyZmVjdF9sb2NrKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfZXRodG9vbC5jLTUwNC1cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2V0aHRvb2wuYy01MDctXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2V0aHRvb2wuYzo1MDg6c3RhdGljIGludCB0eGdiZV9zZXRfcnhuZmMoc3RydWN0IG5ldF9kZXZpY2UgKmRldiwgc3RydWN0IGV0aHRvb2xfcnhuZmMgKmNtZClcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfZXRodG9vbC5jLTUwOS17XG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2V0aHRvb2wuYy01MTAtXHRzdHJ1Y3Qgd3ggKnd4ID0gbmV0ZGV2X3ByaXYoZGV2KTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfZXRodG9vbC5jOjUxMTpcdHN0cnVjdCB0eGdiZSAqdHhnYmUgPSB3eC1cdTAwM2Vwcml2O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9ldGh0b29sLmMtNTEyLVx0aW50IHJldCA9IC1FT1BOT1RTVVBQO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfZXRodG9vbC5jLTUxNS1cdGNhc2UgRVRIVE9PTF9TUlhDTFNSTElOUzpcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfZXRodG9vbC5jOjUxNjpcdFx0cmV0ID0gdHhnYmVfYWRkX2V0aHRvb2xfZmRpcl9lbnRyeSh0eGdiZSwgY21kKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfZXRodG9vbC5jLTUxNy1cdFx0YnJlYWs7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2V0aHRvb2wuYy01MTgtXHRjYXNlIEVUSFRPT0xfU1JYQ0xTUkxERUw6XG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2V0aHRvb2wuYzo1MTk6XHRcdHJldCA9IHR4Z2JlX2RlbF9ldGh0b29sX2ZkaXJfZW50cnkodHhnYmUsIGNtZCk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2V0aHRvb2wuYy01MjAtXHRcdGJyZWFrO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfZXRodG9vbC5jPTUyOD1zdGF0aWMgaW50XG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2V0aHRvb2wuYzo1Mjk6dHhnYmVfZ2V0X21vZHVsZV9lZXByb21fYnlfcGFnZShzdHJ1Y3QgbmV0X2RldmljZSAqbmV0ZGV2LFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9ldGh0b29sLmMtNTMwLVx0XHRcdFx0Y29uc3Qgc3RydWN0IGV0aHRvb2xfbW9kdWxlX2VlcHJvbSAqcGFnZV9kYXRhLFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfZXRodG9vbC5jLTUzMy1cdHN0cnVjdCB3eCAqd3ggPSBuZXRkZXZfcHJpdihuZXRkZXYpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9ldGh0b29sLmM6NTM0Olx0c3RydWN0IHR4Z2JlX2hpY19pMmNfcmVhZCBidWZmZXI7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2V0aHRvb2wuYy01MzUtXHRpbnQgZXJyO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfZXRodG9vbC5jLTU0NS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfZXRodG9vbC5jOjU0NjpcdGVyciA9IHR4Z2JlX3JlYWRfZWVwcm9tX2hvc3RpZih3eCwgXHUwMDI2YnVmZmVyLCBwYWdlX2RhdGEtXHUwMDNlbGVuZ3RoLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9ldGh0b29sLmMtNTQ3LVx0XHRcdFx0ICAgICAgIHBhZ2VfZGF0YS1cdTAwM2VkYXRhKTtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2V0aHRvb2wuYy01NTUtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2V0aHRvb2wuYzo1NTY6c3RhdGljIGNvbnN0IHN0cnVjdCBldGh0b29sX29wcyB0eGdiZV9ldGh0b29sX29wcyA9IHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfZXRodG9vbC5jLTU1Ny1cdC5zdXBwb3J0ZWRfY29hbGVzY2VfcGFyYW1zID0gRVRIVE9PTF9DT0FMRVNDRV9VU0VDUyB8XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9ldGh0b29sLmMtNTYyLVx0LmdldF9saW5rXHRcdD0gZXRodG9vbF9vcF9nZXRfbGluayxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfZXRodG9vbC5jOjU2MzpcdC5nZXRfbGlua19rc2V0dGluZ3NcdD0gdHhnYmVfZ2V0X2xpbmtfa3NldHRpbmdzLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9ldGh0b29sLmMtNTY0LVx0LnNldF9saW5rX2tzZXR0aW5nc1x0PSB3eF9zZXRfbGlua19rc2V0dGluZ3MsXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9ldGh0b29sLmMtNTcyLVx0LmdldF9yaW5ncGFyYW1cdFx0PSB3eF9nZXRfcmluZ3BhcmFtLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9ldGh0b29sLmM6NTczOlx0LnNldF9yaW5ncGFyYW1cdFx0PSB0eGdiZV9zZXRfcmluZ3BhcmFtLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9ldGh0b29sLmMtNTc0LVx0LmdldF9jb2FsZXNjZVx0XHQ9IHd4X2dldF9jb2FsZXNjZSxcbi0tXG5cbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD41LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8yNCAwNzo1NjwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAxOTQ5OQoJCQkJCQkJb3V0cHV0OiAzOQoJCQkJCQkJdGhvdWdodHM6IDQyCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Pa2F5LCBoZXJlJiMzOTtzIG15IHRha2Ugb24gdGhvc2UgdGhvdWdodHMsIGZyYW1lZCBhcyBteSBvd246CgoqKkludmVzdGlnYXRpbmcgdGhlIFdhbmd4dW4gdHhnYmUgRHJpdmVyKioKCkFscmlnaHQsIHRoZSBvdXRwdXQmIzM5O3MgaW5kaWNhdGluZyBgdHhnYmVgIGlzIGEgZHJpdmVyIHJlbGF0ZWQgdG8gV2FuZ3h1biBoYXJkd2FyZS4gTXkgZmlyc3QgaW5zdGluY3QsIGFzIGFsd2F5cywgaXMgdG8gZGl2ZSBpbnRvIHRoZSBLY29uZmlnLiBJIG5lZWQgdG8gdW5kZXJzdGFuZCAqZXhhY3RseSogd2hhdCBraW5kIG9mIGhhcmR3YXJlIHRoaXMgZHJpdmVyIHN1cHBvcnRzLiBJcyBpdCBhIHNwZWNpZmljIE5JQz8gQSBzd2l0Y2g/IEtub3dpbmcgdGhlIGhhcmR3YXJlIHRhcmdldCBpcyBjcml0aWNhbCB0byBhc3Nlc3MgdGhlIGRyaXZlciYjMzk7cyBwdXJwb3NlLCBjYXBhYmlsaXRpZXMsIGFuZCBkZXBlbmRlbmNpZXMuIFRoZSBLY29uZmlnIGZpbGUgaXMgdGhlIGZpcnN0IHBsYWNlIEkmIzM5O2xsIGxvb2suIEl0JiMzOTtsbCBnaXZlIG1lIHRoZSBjb25maWd1cmF0aW9uIG9wdGlvbnMsIHRoZSBkZXBlbmRlbmNpZXMsIG1heWJlIGV2ZW4gc29tZSBjbHVlcyBhYm91dCB0aGUgdW5kZXJseWluZyBoYXJkd2FyZSBhcmNoaXRlY3R1cmUsIGFuZCB1bHRpbWF0ZWx5LCBhIG11Y2ggYmV0dGVyIHVuZGVyc3RhbmRpbmcgb2Ygd2hhdCB3ZSYjMzk7cmUgZGVhbGluZyB3aXRoIGhlcmUuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Ni8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMjQgMDc6NTc8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPkVycm9yOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bm8gbWF0Y2hlczwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtjb25maWcgVFhHQkUmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtkcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlLyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtlcnJvciYjMzQ7OiAmIzM0O25vIG1hdGNoZXMmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Ny8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMjQgMDc6NTc8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMTk3NTYKCQkJCQkJCW91dHB1dDogMzUKCQkJCQkJCXRob3VnaHRzOiAyMgoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+SGVyZSYjMzk7cyBteSBhdHRlbXB0IGF0IHN1bW1hcml6aW5nIHRoZSB0aG91Z2h0IHByb2Nlc3MsIHRhaWxvcmVkIGZvciBhbiBleHBlcnQgYXVkaWVuY2U6CgoqKktjb25maWcgTG9jYXRpb24gLSBRdWljayBBc3Nlc3NtZW50KioKCk9rYXksIHNvIEkgbmVlZCB0byBmaW5kIHRoZSBLY29uZmlnIGZpbGUgcmVsYXRlZCB0byBhIHNwZWNpZmljIEV0aGVybmV0IGRyaXZlciwgbGlrZWx5IGZvciBhIFdhbmd4dW4gZGV2aWNlLiBCYXNlZCBvbiBlc3RhYmxpc2hlZCBrZXJuZWwgY29kaW5nIGNvbnZlbnRpb25zLCBteSBmaXJzdCBpbnN0aW5jdCBpcyB0byBjaGVjayB0aGUgYGRyaXZlcnMvbmV0L2V0aGVybmV0YCBkaXJlY3RvcnksIHdoaWNoIGlzIHRoZSBtb3N0IGxvZ2ljYWwgcGxhY2UuIFNpbmNlIGl0JiMzOTtzIGEgdmVuZG9yLXNwZWNpZmljIGRyaXZlciwgSSYjMzk7ZCBleHBlY3QgYSB2ZW5kb3Itc3BlY2lmaWMgc3ViZGlyZWN0b3J5LiAmIzM0O1dhbmd4dW4mIzM0OyBpcyB0aGUgdmVuZG9yLCBzbyB0aGUgZmlsZSBpcyAqcHJvYmFibHkqIGluIGBkcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL0tjb25maWdgLiBUaGF0JiMzOTtzIHdoZXJlIEkmIzM5O2Qgc3RhcnQuIEl0JiMzOTtzIHRoZSBtb3N0IGNvbW1vbiBhbmQgaW50dWl0aXZlIGxvY2F0aW9uLCBhbGlnbmluZyB3aXRoIHRoZSBnZW5lcmFsIG9yZ2FuaXphdGlvbiBwcmluY2lwbGVzLiBUaGVyZSYjMzk7cyBhIGdvb2QgY2hhbmNlIGl0JiMzOTtzIHRoZXJlLCBpZiBub3QgSSBjYW4gZ28gd2l0aCBhIGBmaW5kYCBjb21tYW5kIHRvIG5hcnJvdyBpdCBkb3duLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjgvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzI0IDA3OjU3PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O2NvbmZpZyBUWEdCRSYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vS2NvbmZpZz0yOD1jb25maWcgTkdCRVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vS2NvbmZpZy00Mi1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vS2NvbmZpZzo0Mzpjb25maWcgVFhHQkVcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vS2NvbmZpZy00NC1cdHRyaXN0YXRlIFwmIzM0O1dhbmd4dW4oUikgMTAvMjUvNDBHYkUgUENJIEV4cHJlc3MgYWRhcHRlcnMgc3VwcG9ydFwmIzM0O1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vS2NvbmZpZy02Ni1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vS2NvbmZpZzo2Nzpjb25maWcgVFhHQkVWRlxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi9LY29uZmlnLTY4LVx0dHJpc3RhdGUgXCYjMzQ7V2FuZ3h1bihSKSAxMC8yNS80MEcgVmlydHVhbCBGdW5jdGlvbiBFdGhlcm5ldCBzdXBwb3J0XCYjMzQ7XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+OS8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMjQgMDc6NTc8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMjAyMTEKCQkJCQkJCW91dHB1dDogMzMKCQkJCQkJCXRob3VnaHRzOiAzMDkKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqQW5hbHl6aW5nIHRoZSBQQ0kgRXhwcmVzcyBBZGFwdGVyIERyaXZlciBQYXRjaCoqCgpPa2F5LCBzbyB0aGUgcHJvbXB0IG1lbnRpb25zICYjMzQ7V2FuZ3h1bihSKSAxMC8yNS80MEdiRSBQQ0kgRXhwcmVzcyBhZGFwdGVycyYjMzQ7IOKAkyB0aGlzIGlzIGEgcGh5c2ljYWwgUENJZSBoYXJkd2FyZSBkcml2ZXIsIHNwZWNpZmljYWxseSBgdHhnYmVgLiBUaGUgcHJvbXB0IGV4cGxpY2l0bHkgd2FudHMgbWUgdG8gcmV0dXJuIGBXb3J0aEZ1enppbmc9ZmFsc2VgIGlmIHRoZSBwYXRjaCBpbnZvbHZlcyBjb2RlIHdpdGhpbiB2ZW5kb3Itc3BlY2lmaWMgUENJZSBkcml2ZXJzIHRoYXQgcmVxdWlyZSBwaHlzaWNhbCBoYXJkd2FyZSBhbmQgYXJlbiYjMzk7dCBlbXVsYXRlZCBpbiBzdGFuZGFyZCBRRU1VLgoKTXkgaW1tZWRpYXRlIHRob3VnaHQgaXMsICYjMzQ7SXMgYHR4Z2JlYCBvbmUgb2YgdGhvc2U/JiMzNDsgQW5kIHllcywgaXQgY2xlYXJseSAqaXMqIGEgMTAvMjUvNDBHYkUgUENJZSBhZGFwdGVyIGRyaXZlci4gVGhlIGtleSBxdWVzdGlvbiB0aGVuIGlzLCBkb2VzIHN0YW5kYXJkIFFFTVUgZW11bGF0ZSBpdD8gQWJzb2x1dGVseSBub3QuIFFFTVUgaGFuZGxlcyBhIHJhbmdlIG9mIG5ldHdvcmsgY2FyZHMgbGlrZSBlMTAwMCwgaWdiLCB2aXJ0aW8tbmV0LCBldGMuLCBidXQgYFdhbmd4dW4gVFhHQkVgIGlzbiYjMzk7dCBvbiB0aGF0IGxpc3QuIEkgZXZlbiBkb3VibGUtY2hlY2tlZCB0aGUgdXN1YWwgc3VzcGVjdHMgZm9yIFFFTVUgZW11bGF0aW9uLgoKVGhlcmVmb3JlLCBiZWNhdXNlIHRoaXMgZHJpdmVyIHJlcXVpcmVzIHBoeXNpY2FsIGhhcmR3YXJlLCBhbmQgaXMgKm5vdCogZW11bGF0ZWQgaW4gc3RhbmRhcmQgUUVNVSwgdGhpcyBwYXJ0aWN1bGFyIGNvZGUgcGF0aCBpcyB1bnJlYWNoYWJsZSBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBHb29nbGUgQ29tcHV0ZSBFbmdpbmUgb3IgUUVNVS4gR2l2ZW4gdGhlIHByb21wdCYjMzk7cyBjb25kaXRpb24sIEkgc2hvdWxkIHJldHVybiBgV29ydGhGdXp6aW5nPWZhbHNlYC4KCkhvd2V2ZXIsIGJlZm9yZSBJIGRlZmluaXRpdmVseSBjb21taXQsIEkgc2hvdWxkIGRvdWJsZS1jaGVjayBhbmQgbWFrZSBzdXJlIHRoYXQgYGxpYnd4YCBpc24mIzM5O3QgdXNlZCBieSBzb21ldGhpbmcgZWxzZS4uLiBqdXN0IHRvIGJlIGNvbXBsZXRlbHkgY2VydGFpbi4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMC8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMjQgMDc6NTc8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7bGlid3gmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtkcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuLyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtkcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL01ha2VmaWxlLTUtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL01ha2VmaWxlOjY6b2JqLSQoQ09ORklHX0xJQldYKSAmIzQzOz0gbGlid3gvXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL01ha2VmaWxlLTctb2JqLSQoQ09ORklHX1RYR0JFKSAmIzQzOz0gdHhnYmUvXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi9saWJ3eC9NYWtlZmlsZS00LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi9saWJ3eC9NYWtlZmlsZTo1Om9iai0kKENPTkZJR19MSUJXWCkgJiM0Mzs9IGxpYnd4Lm9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vbGlid3gvTWFrZWZpbGUtNi1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vbGlid3gvTWFrZWZpbGU6NzpsaWJ3eC1vYmpzIDo9IHd4X2h3Lm8gd3hfbGliLm8gd3hfZXRodG9vbC5vIHd4X3B0cC5vIHd4X21ieC5vIHd4X3NyaW92Lm9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vbGlid3gvTWFrZWZpbGU6ODpsaWJ3eC1vYmpzICYjNDM7PSB3eF92Zi5vIHd4X3ZmX2xpYi5vIHd4X3ZmX2NvbW1vbi5vXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi9uZ2JlL25nYmVfZXRodG9vbC5jLTctXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL25nYmUvbmdiZV9ldGh0b29sLmM6ODojaW5jbHVkZSBcJiMzNDsuLi9saWJ3eC93eF9ldGh0b29sLmhcJiMzNDtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vbmdiZS9uZ2JlX2V0aHRvb2wuYzo5OiNpbmNsdWRlIFwmIzM0Oy4uL2xpYnd4L3d4X3R5cGUuaFwmIzM0O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi9uZ2JlL25nYmVfZXRodG9vbC5jOjEwOiNpbmNsdWRlIFwmIzM0Oy4uL2xpYnd4L3d4X2xpYi5oXCYjMzQ7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL25nYmUvbmdiZV9ldGh0b29sLmM6MTE6I2luY2x1ZGUgXCYjMzQ7Li4vbGlid3gvd3hfaHcuaFwmIzM0O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi9uZ2JlL25nYmVfZXRodG9vbC5jLTEyLSNpbmNsdWRlIFwmIzM0O25nYmVfZXRodG9vbC5oXCYjMzQ7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi9uZ2JlL25nYmVfaHcuYy03LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi9uZ2JlL25nYmVfaHcuYzo4OiNpbmNsdWRlIFwmIzM0Oy4uL2xpYnd4L3d4X3R5cGUuaFwmIzM0O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi9uZ2JlL25nYmVfaHcuYzo5OiNpbmNsdWRlIFwmIzM0Oy4uL2xpYnd4L3d4X2h3LmhcJiMzNDtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vbmdiZS9uZ2JlX2h3LmMtMTAtI2luY2x1ZGUgXCYjMzQ7bmdiZV90eXBlLmhcJiMzNDtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL25nYmUvbmdiZV9tYWluLmMtMTMtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL25nYmUvbmdiZV9tYWluLmM6MTQ6I2luY2x1ZGUgXCYjMzQ7Li4vbGlid3gvd3hfdHlwZS5oXCYjMzQ7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL25nYmUvbmdiZV9tYWluLmM6MTU6I2luY2x1ZGUgXCYjMzQ7Li4vbGlid3gvd3hfaHcuaFwmIzM0O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi9uZ2JlL25nYmVfbWFpbi5jOjE2OiNpbmNsdWRlIFwmIzM0Oy4uL2xpYnd4L3d4X2xpYi5oXCYjMzQ7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL25nYmUvbmdiZV9tYWluLmM6MTc6I2luY2x1ZGUgXCYjMzQ7Li4vbGlid3gvd3hfcHRwLmhcJiMzNDtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vbmdiZS9uZ2JlX21haW4uYzoxODojaW5jbHVkZSBcJiMzNDsuLi9saWJ3eC93eF9tYnguaFwmIzM0O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi9uZ2JlL25nYmVfbWFpbi5jOjE5OiNpbmNsdWRlIFwmIzM0Oy4uL2xpYnd4L3d4X3NyaW92LmhcJiMzNDtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vbmdiZS9uZ2JlX21haW4uYy0yMC0jaW5jbHVkZSBcJiMzNDtuZ2JlX3R5cGUuaFwmIzM0O1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vbmdiZS9uZ2JlX21kaW8uYy04LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi9uZ2JlL25nYmVfbWRpby5jOjk6I2luY2x1ZGUgXCYjMzQ7Li4vbGlid3gvd3hfdHlwZS5oXCYjMzQ7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL25nYmUvbmdiZV9tZGlvLmM6MTA6I2luY2x1ZGUgXCYjMzQ7Li4vbGlid3gvd3hfcHRwLmhcJiMzNDtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vbmdiZS9uZ2JlX21kaW8uYzoxMTojaW5jbHVkZSBcJiMzNDsuLi9saWJ3eC93eF9ody5oXCYjMzQ7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL25nYmUvbmdiZV9tZGlvLmM6MTI6I2luY2x1ZGUgXCYjMzQ7Li4vbGlid3gvd3hfc3Jpb3YuaFwmIzM0O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi9uZ2JlL25nYmVfbWRpby5jLTEzLSNpbmNsdWRlIFwmIzM0O25nYmVfdHlwZS5oXCYjMzQ7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi9uZ2JldmYvbmdiZXZmX21haW4uYy0xMC1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vbmdiZXZmL25nYmV2Zl9tYWluLmM6MTE6I2luY2x1ZGUgXCYjMzQ7Li4vbGlid3gvd3hfdHlwZS5oXCYjMzQ7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL25nYmV2Zi9uZ2JldmZfbWFpbi5jOjEyOiNpbmNsdWRlIFwmIzM0Oy4uL2xpYnd4L3d4X2h3LmhcJiMzNDtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vbmdiZXZmL25nYmV2Zl9tYWluLmM6MTM6I2luY2x1ZGUgXCYjMzQ7Li4vbGlid3gvd3hfbGliLmhcJiMzNDtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vbmdiZXZmL25nYmV2Zl9tYWluLmM6MTQ6I2luY2x1ZGUgXCYjMzQ7Li4vbGlid3gvd3hfbWJ4LmhcJiMzNDtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vbmdiZXZmL25nYmV2Zl9tYWluLmM6MTU6I2luY2x1ZGUgXCYjMzQ7Li4vbGlid3gvd3hfdmYuaFwmIzM0O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi9uZ2JldmYvbmdiZXZmX21haW4uYzoxNjojaW5jbHVkZSBcJiMzNDsuLi9saWJ3eC93eF92Zl9jb21tb24uaFwmIzM0O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi9uZ2JldmYvbmdiZXZmX21haW4uYzoxNzojaW5jbHVkZSBcJiMzNDsuLi9saWJ3eC93eF9ldGh0b29sLmhcJiMzNDtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vbmdiZXZmL25nYmV2Zl9tYWluLmMtMTgtI2luY2x1ZGUgXCYjMzQ7bmdiZXZmX3R5cGUuaFwmIzM0O1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfYW1sLmMtOC1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfYW1sLmM6OTojaW5jbHVkZSBcJiMzNDsuLi9saWJ3eC93eF90eXBlLmhcJiMzNDtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfYW1sLmM6MTA6I2luY2x1ZGUgXCYjMzQ7Li4vbGlid3gvd3hfbGliLmhcJiMzNDtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfYW1sLmM6MTE6I2luY2x1ZGUgXCYjMzQ7Li4vbGlid3gvd3hfcHRwLmhcJiMzNDtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfYW1sLmM6MTI6I2luY2x1ZGUgXCYjMzQ7Li4vbGlid3gvd3hfaHcuaFwmIzM0O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9hbWwuYzoxMzojaW5jbHVkZSBcJiMzNDsuLi9saWJ3eC93eF9zcmlvdi5oXCYjMzQ7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2FtbC5jLTE0LSNpbmNsdWRlIFwmIzM0O3R4Z2JlX3R5cGUuaFwmIzM0O1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfZXRodG9vbC5jLTctXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2V0aHRvb2wuYzo4OiNpbmNsdWRlIFwmIzM0Oy4uL2xpYnd4L3d4X2V0aHRvb2wuaFwmIzM0O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9ldGh0b29sLmM6OTojaW5jbHVkZSBcJiMzNDsuLi9saWJ3eC93eF90eXBlLmhcJiMzNDtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfZXRodG9vbC5jOjEwOiNpbmNsdWRlIFwmIzM0Oy4uL2xpYnd4L3d4X2xpYi5oXCYjMzQ7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2V0aHRvb2wuYy0xMS0jaW5jbHVkZSBcJiMzNDt0eGdiZV90eXBlLmhcJiMzNDtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2ZkaXIuYy03LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9mZGlyLmM6ODojaW5jbHVkZSBcJiMzNDsuLi9saWJ3eC93eF90eXBlLmhcJiMzNDtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfZmRpci5jOjk6I2luY2x1ZGUgXCYjMzQ7Li4vbGlid3gvd3hfbGliLmhcJiMzNDtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfZmRpci5jOjEwOiNpbmNsdWRlIFwmIzM0Oy4uL2xpYnd4L3d4X2h3LmhcJiMzNDtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfZmRpci5jLTExLSNpbmNsdWRlIFwmIzM0O3R4Z2JlX3R5cGUuaFwmIzM0O1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfaHcuYy0xMC1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfaHcuYzoxMTojaW5jbHVkZSBcJiMzNDsuLi9saWJ3eC93eF90eXBlLmhcJiMzNDtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfaHcuYzoxMjojaW5jbHVkZSBcJiMzNDsuLi9saWJ3eC93eF9ody5oXCYjMzQ7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2h3LmMtMTMtI2luY2x1ZGUgXCYjMzQ7dHhnYmVfdHlwZS5oXCYjMzQ7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9pcnEuYy02LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9pcnEuYzo3OiNpbmNsdWRlIFwmIzM0Oy4uL2xpYnd4L3d4X3R5cGUuaFwmIzM0O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9pcnEuYzo4OiNpbmNsdWRlIFwmIzM0Oy4uL2xpYnd4L3d4X2xpYi5oXCYjMzQ7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2lycS5jOjk6I2luY2x1ZGUgXCYjMzQ7Li4vbGlid3gvd3hfcHRwLmhcJiMzNDtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfaXJxLmM6MTA6I2luY2x1ZGUgXCYjMzQ7Li4vbGlid3gvd3hfaHcuaFwmIzM0O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9pcnEuYzoxMTojaW5jbHVkZSBcJiMzNDsuLi9saWJ3eC93eF9zcmlvdi5oXCYjMzQ7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2lycS5jLTEyLSNpbmNsdWRlIFwmIzM0O3R4Z2JlX3R5cGUuaFwmIzM0O1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfbWFpbi5jLTE0LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9tYWluLmM6MTU6I2luY2x1ZGUgXCYjMzQ7Li4vbGlid3gvd3hfdHlwZS5oXCYjMzQ7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX21haW4uYzoxNjojaW5jbHVkZSBcJiMzNDsuLi9saWJ3eC93eF9saWIuaFwmIzM0O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9tYWluLmM6MTc6I2luY2x1ZGUgXCYjMzQ7Li4vbGlid3gvd3hfcHRwLmhcJiMzNDtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfbWFpbi5jOjE4OiNpbmNsdWRlIFwmIzM0Oy4uL2xpYnd4L3d4X2h3LmhcJiMzNDtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfbWFpbi5jOjE5OiNpbmNsdWRlIFwmIzM0Oy4uL2xpYnd4L3d4X21ieC5oXCYjMzQ7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX21haW4uYzoyMDojaW5jbHVkZSBcJiMzNDsuLi9saWJ3eC93eF9zcmlvdi5oXCYjMzQ7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX21haW4uYy0yMS0jaW5jbHVkZSBcJiMzNDt0eGdiZV90eXBlLmhcJiMzNDtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX3BoeS5jLTE1LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9waHkuYzoxNjojaW5jbHVkZSBcJiMzNDsuLi9saWJ3eC93eF90eXBlLmhcJiMzNDtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfcGh5LmM6MTc6I2luY2x1ZGUgXCYjMzQ7Li4vbGlid3gvd3hfbGliLmhcJiMzNDtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfcGh5LmM6MTg6I2luY2x1ZGUgXCYjMzQ7Li4vbGlid3gvd3hfcHRwLmhcJiMzNDtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfcGh5LmM6MTk6I2luY2x1ZGUgXCYjMzQ7Li4vbGlid3gvd3hfc3Jpb3YuaFwmIzM0O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9waHkuYzoyMDojaW5jbHVkZSBcJiMzNDsuLi9saWJ3eC93eF9tYnguaFwmIzM0O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9waHkuYzoyMTojaW5jbHVkZSBcJiMzNDsuLi9saWJ3eC93eF9ody5oXCYjMzQ7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX3BoeS5jLTIyLSNpbmNsdWRlIFwmIzM0O3R4Z2JlX3R5cGUuaFwmIzM0O1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfdHlwZS5oLTktI2luY2x1ZGUgXHUwMDNjbGludXgvcGh5LmhcdTAwM2VcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfdHlwZS5oOjEwOiNpbmNsdWRlIFwmIzM0Oy4uL2xpYnd4L3d4X3R5cGUuaFwmIzM0O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV90eXBlLmgtMTEtXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZXZmL3R4Z2JldmZfbWFpbi5jLTEwLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZXZmL3R4Z2JldmZfbWFpbi5jOjExOiNpbmNsdWRlIFwmIzM0Oy4uL2xpYnd4L3d4X3R5cGUuaFwmIzM0O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZXZmL3R4Z2JldmZfbWFpbi5jOjEyOiNpbmNsdWRlIFwmIzM0Oy4uL2xpYnd4L3d4X2h3LmhcJiMzNDtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmV2Zi90eGdiZXZmX21haW4uYzoxMzojaW5jbHVkZSBcJiMzNDsuLi9saWJ3eC93eF9saWIuaFwmIzM0O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZXZmL3R4Z2JldmZfbWFpbi5jOjE0OiNpbmNsdWRlIFwmIzM0Oy4uL2xpYnd4L3d4X21ieC5oXCYjMzQ7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JldmYvdHhnYmV2Zl9tYWluLmM6MTU6I2luY2x1ZGUgXCYjMzQ7Li4vbGlid3gvd3hfdmYuaFwmIzM0O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZXZmL3R4Z2JldmZfbWFpbi5jOjE2OiNpbmNsdWRlIFwmIzM0Oy4uL2xpYnd4L3d4X3ZmX2NvbW1vbi5oXCYjMzQ7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JldmYvdHhnYmV2Zl9tYWluLmM6MTc6I2luY2x1ZGUgXCYjMzQ7Li4vbGlid3gvd3hfZXRodG9vbC5oXCYjMzQ7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JldmYvdHhnYmV2Zl9tYWluLmMtMTgtI2luY2x1ZGUgXCYjMzQ7dHhnYmV2Zl90eXBlLmhcJiMzNDtcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMS8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMjQgMDc6NTc8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMjQzODIKCQkJCQkJCW91dHB1dDogOTMKCQkJCQkJCXRob3VnaHRzOiA3NAoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipVbnJlYWNoYWJsZSBDb2RlIERldGVjdGlvbiBmb3IgV2FuZ3h1biBQQ0llIEFkYXB0ZXJzKioKCk9rYXksIHNvIEkmIzM5O3ZlIGJlZW4gbG9va2luZyBhdCB0aGlzIGNvZGUgYW5kIEkmIzM5O3ZlIGNvbWUgdG8gYSBwcmV0dHkgZGVmaW5pdGl2ZSBjb25jbHVzaW9uLiBUaGUgYGxpYnd4YCBsaWJyYXJ5IGlzIGNsZWFybHkgbGlua2VkIGFuZCB1c2VkIGJ5IGEgY2x1c3RlciBvZiBXYW5neHVuIFBDSWUgYWRhcHRlciBkcml2ZXJzIOKAkyBgbmdiZWAsIGBuZ2JldmZgLCBgdHhnYmVgLCBhbmQgYHR4Z2JldmZgLiBUaGF0JiMzOTtzIHRoZSBzZXR1cC4gSG93ZXZlciwgbm9uZSBvZiB0aGVzZSBzcGVjaWZpYyBXYW5neHVuIFBDSWUgYWRhcHRlcnMgYXJlLCBhcyBmYXIgYXMgSSBjYW4gdGVsbCwgZW11bGF0ZWQgd2l0aGluIGEgUUVNVSBlbnZpcm9ubWVudC4gVGhpcyBpcyB0aGUgY3JpdGljYWwgcGllY2Ugb2YgaW5mb3JtYXRpb24uIFNpbmNlIHRoZSB1bmRlcmx5aW5nIGhhcmR3YXJlIHRoYXQgdGhpcyBjb2RlIGludGVyYWN0cyB3aXRoIGRvZXNuJiMzOTt0IGV4aXN0IGluIGEgdmlydHVhbGl6ZWQgY29udGV4dCwgYW55IGNvZGUgcGF0aCBzcGVjaWZpY2FsbHkgcmVsYXRlZCB0byBpdCBiZWNvbWVzLCBlZmZlY3RpdmVseSwgdW5yZWFjaGFibGUgZHVyaW5nIGZ1enppbmcgb3IgdGVzdGluZyB3aXRoaW4gUUVNVS4gR2l2ZW4gbXkgZXhwZXJpZW5jZSwgcHVyc3VpbmcgdGhpcyBmdXJ0aGVyIHdvdWxkIGJlIGEgd2FzdGUgb2YgcmVzb3VyY2VzLiBUaGVyZWZvcmUsIEkgd2lsbCByZXR1cm4gYFdvcnRoRnV6emluZz1mYWxzZWAuIEl04oCZcyBzaW1wbHkgbm90IGEgd29ydGh3aGlsZSB0YXJnZXQgaW4gdGhlIGN1cnJlbnQgZW52aXJvbm1lbnQuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTIvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzI0IDA3OjU3PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+c2V0LXJlc3VsdHM8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogW10sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogW10sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggbW9kaWZpZXMgY29kZSBpbiB0aGUgV2FuZ3h1biBUWEdCRSBhbmQgTkdCRSBldGhlcm5ldCBkcml2ZXJzLiBUaGVzZSBhcmUgZHJpdmVycyBmb3IgcGh5c2ljYWwgUENJZSBoYXJkd2FyZSBhZGFwdGVycyB0aGF0IGFyZSBub3QgZW11bGF0ZWQgaW4gc3RhbmRhcmQgdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgUUVNVSBvciBHQ0UuIFRoZXJlZm9yZSwgdGhlIG1vZGlmaWVkIGNvZGUgcGF0aHMgY2Fubm90IGJlIHJlYWNoZWQgb3IgZnV6emVkIGluIHRoZXNlIGVudmlyb25tZW50cy4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiBmYWxzZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBudWxsLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFtdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIG1vZGlmaWVzIGNvZGUgaW4gdGhlIFdhbmd4dW4gVFhHQkUgYW5kIE5HQkUgZXRoZXJuZXQgZHJpdmVycy4gVGhlc2UgYXJlIGRyaXZlcnMgZm9yIHBoeXNpY2FsIFBDSWUgaGFyZHdhcmUgYWRhcHRlcnMgdGhhdCBhcmUgbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIFFFTVUgb3IgR0NFLiBUaGVyZWZvcmUsIHRoZSBtb2RpZmllZCBjb2RlIHBhdGhzIGNhbm5vdCBiZSByZWFjaGVkIG9yIGZ1enplZCBpbiB0aGVzZSBlbnZpcm9ubWVudHMuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogZmFsc2UKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEzLzE8L3RkPgoJCQk8dGQ+MjAyNi8wOC8yNCAwNzo1NzwvdGQ+CgkJCTx0ZD5hY3Rpb248L3RkPgoJCQk8dGQ+SWY8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiBmYWxzZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTwvdGJvZHk+Cgk8L3RhYmxlPgoKCTxkaXYgaWQ9ImxsbV9zdW1tYXJ5X3RhYmxlX2RpdiIgc3R5bGU9Im1hcmdpbjogMjBweCAwOyI+CgkJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQkJPGNhcHRpb24+TExNIENhbGxzIFN1bW1hcnk6PC9jYXB0aW9uPgoJCQk8dGhlYWQ+CgkJCQk8dHI+CgkJCQkJPHRoPlRvdGFsIENhbGxzPC90aD4KCQkJCQk8dGg+VG90YWwgVG9rZW5zPC90aD4KCQkJCQk8dGg+QXZnIFRva2VuczwvdGg+CgkJCQkJPHRoPlRvdGFsIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQkJPHRoPkF2ZyBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJPC90cj4KCQkJPC90aGVhZD4KCQkJPHRib2R5IGlkPSJsbG1fc3VtbWFyeV9zdGF0c19ib2R5Ij48L3Rib2R5PgoJCTwvdGFibGU+Cgk8L2Rpdj4KCgk8ZGl2IGlkPSJ0b29sX3N1bW1hcnlfdGFibGVfZGl2IiBzdHlsZT0ibWFyZ2luOiAyMHB4IDA7Ij4KCQk8dGFibGUgY2xhc3M9Imxpc3RfdGFibGUiPgoJCQk8Y2FwdGlvbj5Ub29sIENhbGxzIFN1bW1hcnk6PC9jYXB0aW9uPgoJCQk8dGhlYWQ+CgkJCQk8dHI+CgkJCQkJPHRoPlRvdGFsIENhbGxzPC90aD4KCQkJCQk8dGg+VG90YWwgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCQk8dGg+QXZnIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQk8L3RyPgoJCQk8L3RoZWFkPgoJCQk8dGJvZHkgaWQ9InRvb2xfc3VtbWFyeV9zdGF0c19ib2R5Ij48L3Rib2R5PgoJCTwvdGFibGU+Cgk8L2Rpdj4KCgk8ZGl2IGlkPSJkdXJhdGlvbl9jaGFydF9kaXYiIHN0eWxlPSJ3aWR0aDogMTAwJTsgbWFyZ2luOiAyMHB4IDA7IGJvcmRlcjogMXB4OyI+PC9kaXY+Cgk8ZGl2IGlkPSJ0b2tlbl9jaGFydF9kaXYiIHN0eWxlPSJ3aWR0aDogMTAwJTsgbWFyZ2luOiAyMHB4IDA7IGJvcmRlcjogMXB4OyI+PC9kaXY+CgoJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iaHR0cHM6Ly93d3cuZ29vZ2xlLmNvbS9qc2FwaSI+PC9zY3JpcHQ+Cgk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+CgkJZ29vZ2xlLmxvYWQoInZpc3VhbGl6YXRpb24iLCAiMSIsIHtwYWNrYWdlczpbImNvcmVjaGFydCJdfSk7CgkJZ29vZ2xlLnNldE9uTG9hZENhbGxiYWNrKGRyYXdDaGFydHMpOwoKCQlmdW5jdGlvbiBkcmF3Q2hhcnRzKCkgewoJCQljb25zdCByYXdEYXRhID0gW3siU3RhcnRlZCI6IjIwMjYtMDgtMjRUMDc6NTY6MzcuNzg4OTQ2OTIyWiIsIlNlcSI6MCwiTmVzdGluZyI6MCwiVHlwZSI6ImZsb3ciLCJOYW1lIjoicGF0Y2gtdHJpYWdlIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NTYyMTcxODUwODgsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogbnVsbCxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW10sXG4gIFwiS01TQU5SZWFzb25pbmdcIjogXCJcIixcbiAgXCJOZWVkc0tNU0FOXCI6IGZhbHNlLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBtb2RpZmllcyBjb2RlIGluIHRoZSBXYW5neHVuIFRYR0JFIGFuZCBOR0JFIGV0aGVybmV0IGRyaXZlcnMuIFRoZXNlIGFyZSBkcml2ZXJzIGZvciBwaHlzaWNhbCBQQ0llIGhhcmR3YXJlIGFkYXB0ZXJzIHRoYXQgYXJlIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBRRU1VIG9yIEdDRS4gVGhlcmVmb3JlLCB0aGUgbW9kaWZpZWQgY29kZSBwYXRocyBjYW5ub3QgYmUgcmVhY2hlZCBvciBmdXp6ZWQgaW4gdGhlc2UgZW52aXJvbm1lbnRzLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiBmYWxzZVxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMjRUMDc6NTY6MzcuNzg4OTYyNTQyWiIsIlNlcSI6MSwiTmVzdGluZyI6MSwiVHlwZSI6ImFjdGlvbiIsIk5hbWUiOiJyZWFkLXBhdGNoLWRpZmYiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjozNzM4NTMwMTUsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIlBhdGNoRGlmZlwiOiBcImNvbW1pdCAwNDIxYTExODVlMGM3ZWE4ZDc1Nzk0YzEzMTk2ZjVlODdhZWQzZjNmXFxuQXV0aG9yOiBzeXotY2x1c3RlciBcXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cXHUwMDNlXFxuRGF0ZTogICBNb24gQXVnIDI0IDA3OjU2OjM3IDIwMjYgKzAwMDBcXG5cXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XFxuXFxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vbGlid3gvd3hfdHlwZS5oIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi9saWJ3eC93eF90eXBlLmhcXG5pbmRleCA2NWUzZTU1ZGIxY2ZmLi4wNTIwMjg4ZDE4YWI5IDEwMDY0NFxcbi0tLSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vbGlid3gvd3hfdHlwZS5oXFxuKysrIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi9saWJ3eC93eF90eXBlLmhcXG5AQCAtMTQyNyw3ICsxNDI3LDcgQEAgc3RydWN0IHd4IHtcXG4gfTtcXG4gXFxuICNkZWZpbmUgV1hfSU5UUl9BTEwgKH4wVUxMKVxcbi0jZGVmaW5lIFdYX0lOVFJfUShpKSBCSVQoKGkpKVxcbisjZGVmaW5lIFdYX0lOVFJfUShpKSBCSVRfVUxMKChpKSlcXG4gXFxuIC8qIHJlZ2lzdGVyIG9wZXJhdGlvbnMgKi9cXG4gI2RlZmluZSB3cjMyKGEsIHJlZywgdmFsdWUpXFx0d3JpdGVsKCh2YWx1ZSksICgoYSktXFx1MDAzZWh3X2FkZHIgKyAocmVnKSkpXFxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfdHlwZS5oIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV90eXBlLmhcXG5pbmRleCA4NzcyMzRlM2ZkYzJiLi5mZGRjYjAxMWZhMmZkIDEwMDY0NFxcbi0tLSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfdHlwZS5oXFxuKysrIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV90eXBlLmhcXG5AQCAtMzAzLDcgKzMwMyw3IEBAIHN0cnVjdCB0eGdiZV9mZGlyX2ZpbHRlciB7XFxuICNkZWZpbmUgVFhHQkVfREVGQVVMVF9SWF9XT1JLICAgICAgICAgICAxMjhcXG4gI2VuZGlmXFxuIFxcbi0jZGVmaW5lIFRYR0JFX0lOVFJfTUlTQyhBKSAgICBCSVQoKEEpLVxcdTAwM2VudW1fcV92ZWN0b3JzKVxcbisjZGVmaW5lIFRYR0JFX0lOVFJfTUlTQyhBKSAgICBCSVRfVUxMKChBKS1cXHUwMDNlbnVtX3FfdmVjdG9ycylcXG4gI2RlZmluZSBUWEdCRV9JTlRSX1FBTEwoQSkgICAgKFRYR0JFX0lOVFJfTUlTQyhBKSAtIDEpXFxuIFxcbiAjZGVmaW5lIFRYR0JFX01BWF9FSVRSICAgICAgICBHRU5NQVNLKDExLCAzKVxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0yNFQwNzo1NjozOC4xNjM0MTYyOTdaIiwiU2VxIjoyLCJOZXN0aW5nIjoxLCJUeXBlIjoiYWdlbnQiLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJiZXN0LWV4cGVuc2l2ZSIsIkR1cmF0aW9uIjo1NTg0MjY5ODEyMiwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBudWxsLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggbW9kaWZpZXMgY29kZSBpbiB0aGUgV2FuZ3h1biBUWEdCRSBhbmQgTkdCRSBldGhlcm5ldCBkcml2ZXJzLiBUaGVzZSBhcmUgZHJpdmVycyBmb3IgcGh5c2ljYWwgUENJZSBoYXJkd2FyZSBhZGFwdGVycyB0aGF0IGFyZSBub3QgZW11bGF0ZWQgaW4gc3RhbmRhcmQgdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgUUVNVSBvciBHQ0UuIFRoZXJlZm9yZSwgdGhlIG1vZGlmaWVkIGNvZGUgcGF0aHMgY2Fubm90IGJlIHJlYWNoZWQgb3IgZnV6emVkIGluIHRoZXNlIGVudmlyb25tZW50cy5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogZmFsc2Vcbn0iLCJJbnN0cnVjdGlvbiI6IllvdSBhcmUgYW4gZXhwZXJ0IExpbnV4IGtlcm5lbCBtYWludGFpbmVyLlxuWW91ciBqb2IgaXMgdG8gcmV2aWV3IGEgcHJvdmlkZWQgcGF0Y2ggc2VyaWVzIGFuZCBkZXRlcm1pbmVcbmlmIGl0IG1ha2VzIGZ1bmN0aW9uYWwgY2hhbmdlcyB0byB0aGUga2VybmVsIHRoYXQgc2hvdWxkIGJlIGZ1enplZC5cblxuSU1QT1JUQU5UOiBUaGUgY2hhbmdlcyBoYXZlIEFMUkVBRFkgYmVlbiBhcHBsaWVkIGFuZCBjb21taXR0ZWQgYXMgdGhlIEhFQUQgY29tbWl0IGluXG55b3VyIHdvcmtzcGFjZS4gRG8gTk9UIHJlbHkgb24geW91ciBpbnRlcm5hbCBrbm93bGVkZ2Ugb2YgdGhlIGtlcm5lbC4gWW91IG11c3QgYWN0aXZlbHlcbnVzZSB5b3VyIGNvZGUgYWNjZXNzIHRvb2xzIHRvIGV4YW1pbmUgdGhlIGFjdHVhbCBzb3VyY2UgY29kZSBhbmQgY29uZmlybSBhbnkgYXNzdW1wdGlvbnMuXG5cblJldHVybiBXb3J0aEZ1enppbmc9ZmFsc2UgaWYgdGhlIHBhdGNoIG9ubHkgY29udGFpbnM6XG4tIE1vZGlmaWNhdGlvbnMgdG8gRG9jdW1lbnRhdGlvbi8sIEtjb25maWcgZmlsZXMsIG9yIGNvZGUgY29tbWVudHMuXG4tIFB1cmVseSBkZWNvcmF0aXZlIGNoYW5nZXMsIHN1Y2ggYXMgbG9nZ2luZyAoZS5nLiwgcHJfZXJyLCBwcmludGspIG9yIHRyYWNlcG9pbnRzLlxuLSBDaGFuZ2VzIHRvIG51bWVyaWMgY29uc3RhbnRzIG9yIG1hY3JvcyB0aGF0IGRvIG5vdCBmdW5jdGlvbmFsbHkgYWx0ZXIgZXhlY3V0aW9uIGZsb3cuXG4tIENvZGUgcGF0aHMgdGhhdCBhcmUgaW1wb3NzaWJsZSB0byByZWFjaCBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBHQ0Ugb3IgUUVNVSxcbiAgZXZlbiB3aGVuIHV0aWxpemluZyBzb2Z0d2FyZS1lbXVsYXRlZCBoYXJkd2FyZSAoZS5nLiwgdXNiIGdhZGdldCwgbWFjODAyMTFfaHdzaW0pLlxuLSBDb2RlIGluIHZlbmRvci1zcGVjaWZpYyBQQ0llIHN3aXRjaCwgU21hcnROSUMsIG9yIEdQVSBkcml2ZXJzIChlLmcuLCBtbHhzdywgcGRzX2NvcmUsIHFlZCxcbiAgaW9uaWMsIGFtZGdwdSkgdGhhdCByZXF1aXJlIHBoeXNpY2FsIFBDSWUgaGFyZHdhcmUgY2FyZHMgbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIFFFTVUuXG4tIERyaXZlciAucmVtb3ZlLCAuc2h1dGRvd24sIG9yIHBjaV91bnJlZ2lzdGVyX2RyaXZlciB0ZWFyZG93biBjYWxsYmFja3MgKGUuZy4sIGlnYl9yZW1vdmUpXG4gIHRoYXQgYXJlIGV4ZWN1dGVkIG9ubHkgZHVyaW5nIFBDSSBob3QtdW5wbHVnIG9yIHN5c2ZzIGRyaXZlciB1bmJpbmQgb3BlcmF0aW9ucy5cblxuSWYgaXQgbW9kaWZpZXMgcmVhY2hhYmxlIGNvcmUga2VybmVsIGxvZ2ljLCBkcml2ZXJzLCBvciBhcmNoaXRlY3R1cmVzLCB1c2UgeW91ciBjb2RlIHNlYXJjaFxudG9vbHMgdG8gdmVyaWZ5IHRoZSBjb2RlIGNhbiBiZSBleGVjdXRlZCwgdGhlbiByZXR1cm4gV29ydGhGdXp6aW5nPXRydWUuXG5cbldoZW4gcmV0dXJuaW5nIFdvcnRoRnV6emluZz10cnVlLCB5b3UgTVVTVCBBTFNPOlxuMS4gRXh0cmFjdCBhbnkgc3BlY2lmaWMga2VybmVsIGZ1bmN0aW9ucyB0aGF0IHNob3VsZCBiZSBoZWF2aWx5IGZ1enplZCBpbnRvIEZvY3VzU3ltYm9scy5cbiAgIEF2b2lkIGxpc3RpbmcgZ2VuZXJpYyBob3QtcGF0aCBmdW5jdGlvbnMgdG8gcHJldmVudCBza2V3ZWQgdGVzdCBkaXN0cmlidXRpb25zLlxuICAgUHJlZmVyIG5vbi1zdGF0aWMsIG5vbi1pbmxpbmVkIEFQSSBlbnRyeXBvaW50IGZ1bmN0aW9ucyBvdmVyIGludGVybmFsIHN0YXRpYyBoZWxwZXIgZnVuY3Rpb25zXG4gICAod2hpY2ggYXJlIGlubGluZWQgYnkgdGhlIGNvbXBpbGVyIGFuZCBkbyBub3QgaGF2ZSBkaXN0aW5jdCBzeW1ib2wgYWRkcmVzc2VzKS5cbjIuIElkZW50aWZ5IGFueSBzcGVjaWZpYyBDT05GSUdfIG9wdGlvbnMgcmVxdWlyZWQgdG8gcHJvcGVybHkgdGVzdCB0aGlzIG5ldy9tb2RpZmllZCBmZWF0dXJlLlxuICAgR28gYW5kIGxvb2sgaW50byB0aGUgS2NvbmZpZyBmaWxlcyBhbmQgY2hlY2sgZm9yIGlmZGVmcyBhcm91bmQgdGhlIGNvZGUsIGRvIG5vdCBtYWtlIGFzc3VtcHRpb25zLlxuICAgQWxzbyBjaGVjayBcImRlcGVuZHMgb25cIiBsaW5lcyBpbiBLY29uZmlnIHRvIGluY2x1ZGUgYW55IG5vbi1zdGFuZGFyZCBwYXJlbnQgc3Vic3lzdGVtIGNvbmZpZ3NcbiAgIG5lZWRlZCBmb3IgS2J1aWxkIHRvIGNvbXBpbGUgdGhlIGNvZGUgc3RhdGljYWxseSBpbnRvIHZtbGludXguIExpc3QgdGhlbSBpbiB0aGUgRW5hYmxlQ29uZmlnc1xuICAgb3V0cHV0IGFycmF5LCBhbmQgRE8gTk9UIGFkZCBhICdDT05GSUdfJyBwcmVmaXggKGUuZy4sIHJldHVybiBcIk5FVF9JUFY0XCIgaW5zdGVhZCBvZiBcIkNPTkZJR19ORVRfSVBWNFwiKS5cblByZWZlciBjYWxsaW5nIHNldmVyYWwgdG9vbHMgYXQgdGhlIHNhbWUgdGltZSB0byBzYXZlIHJvdW5kLXRyaXBzLlxuXG5cblVzZSBzZXQtcmVzdWx0cyB0b29sIHRvIHByb3ZpZGUgcmVzdWx0cyBvZiB0aGUgYW5hbHlzaXMuXG5JdCBtdXN0IGJlIGNhbGxlZCBleGFjdGx5IG9uY2UgYmVmb3JlIHRoZSBmaW5hbCByZXBseS5cbklnbm9yZSByZXN1bHRzIG9mIHRoaXMgdG9vbC5cbiIsIlByb21wdCI6IkZvciB5b3VyIGNvbnZlbmllbmNlLCBoZXJlIGlzIHRoZSBkaWZmIG9mIHRoZSBjaGFuZ2VzOlxuY29tbWl0IDA0MjFhMTE4NWUwYzdlYThkNzU3OTRjMTMxOTZmNWU4N2FlZDNmM2ZcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cdTAwM2VcbkRhdGU6ICAgTW9uIEF1ZyAyNCAwNzo1NjozNyAyMDI2ICswMDAwXG5cbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcblxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vbGlid3gvd3hfdHlwZS5oIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi9saWJ3eC93eF90eXBlLmhcbmluZGV4IDY1ZTNlNTVkYjFjZmYuLjA1MjAyODhkMThhYjkgMTAwNjQ0XG4tLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL2xpYnd4L3d4X3R5cGUuaFxuKysrIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi9saWJ3eC93eF90eXBlLmhcbkBAIC0xNDI3LDcgKzE0MjcsNyBAQCBzdHJ1Y3Qgd3gge1xuIH07XG4gXG4gI2RlZmluZSBXWF9JTlRSX0FMTCAofjBVTEwpXG4tI2RlZmluZSBXWF9JTlRSX1EoaSkgQklUKChpKSlcbisjZGVmaW5lIFdYX0lOVFJfUShpKSBCSVRfVUxMKChpKSlcbiBcbiAvKiByZWdpc3RlciBvcGVyYXRpb25zICovXG4gI2RlZmluZSB3cjMyKGEsIHJlZywgdmFsdWUpXHR3cml0ZWwoKHZhbHVlKSwgKChhKS1cdTAwM2Vod19hZGRyICsgKHJlZykpKVxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfdHlwZS5oIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV90eXBlLmhcbmluZGV4IDg3NzIzNGUzZmRjMmIuLmZkZGNiMDExZmEyZmQgMTAwNjQ0XG4tLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX3R5cGUuaFxuKysrIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV90eXBlLmhcbkBAIC0zMDMsNyArMzAzLDcgQEAgc3RydWN0IHR4Z2JlX2ZkaXJfZmlsdGVyIHtcbiAjZGVmaW5lIFRYR0JFX0RFRkFVTFRfUlhfV09SSyAgICAgICAgICAgMTI4XG4gI2VuZGlmXG4gXG4tI2RlZmluZSBUWEdCRV9JTlRSX01JU0MoQSkgICAgQklUKChBKS1cdTAwM2VudW1fcV92ZWN0b3JzKVxuKyNkZWZpbmUgVFhHQkVfSU5UUl9NSVNDKEEpICAgIEJJVF9VTEwoKEEpLVx1MDAzZW51bV9xX3ZlY3RvcnMpXG4gI2RlZmluZSBUWEdCRV9JTlRSX1FBTEwoQSkgICAgKFRYR0JFX0lOVFJfTUlTQyhBKSAtIDEpXG4gXG4gI2RlZmluZSBUWEdCRV9NQVhfRUlUUiAgICAgICAgR0VOTUFTSygxMSwgMylcbiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTI0VDA3OjU2OjM4LjE2MzQxNzU3N1oiLCJTZXEiOjMsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjEzNTIxODQxODE5LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKk15IEluaXRpYWwgQXNzZXNzbWVudCBvZiB0aGUgV2FuZ3h1biBFdGhlcm5ldCBEcml2ZXIgUGF0Y2gqKlxuXG5Pa2F5LCBzbyB0aGlzIHBhdGNoIGlzIHRvdWNoaW5nIHR3byBoZWFkZXIgZmlsZXMgd2l0aGluIHRoZSBXYW5neHVuIGV0aGVybmV0IGRyaXZlcjogYGxpYnd4L3d4X3R5cGUuaGAgYW5kIGB0eGdiZS90eGdiZV90eXBlLmhgLiBUaGUgY29yZSBjaGFuZ2UgaXMgc2ltcGxlLCBpdCBsb29rcyBsaWtlIGEgZmluZC1hbmQtcmVwbGFjZSwgc3dhcHBpbmcgb3V0IGBCSVQoKGkpKWAgYW5kIGBCSVQoKEEpLVx1MDAzZW51bV9xX3ZlY3RvcnMpYCBmb3IgYEJJVF9VTEwoKGkpKWAgYW5kIGBCSVRfVUxMKChBKS1cdTAwM2VudW1fcV92ZWN0b3JzKWAgcmVzcGVjdGl2ZWx5LiBBaCwgcmlnaHQuIEl04oCZcyBleHBsaWNpdGx5IGFkZHJlc3NpbmcgcG90ZW50aWFsIHVuZGVmaW5lZCBiZWhhdmlvciBvciBvdmVyZmxvdyBpc3N1ZXMuIEknbSBndWVzc2luZyB0aGlzIG1lYW5zIHRoYXQgdGhlIG9yaWdpbmFsIGBCSVRgIG1hY3JvIHdhcyBsaWtlbHkgdXNpbmcgYSBzdGFuZGFyZCBpbnRlZ2VyIHR5cGUgdG8gcmVwcmVzZW50IHRoZSBiaXQgaW5kZXgsIHdoaWNoIHdvdWxkIHRydW5jYXRlIG9yIG92ZXJmbG93IHdoZW4gdGhlIGluZGV4IGdldHMgdG8gb3Igc3VycGFzc2VzIDMyLiBUaGlzIGlzIGEgcHJldHR5IGNvbW1vbiB0eXBlIG9mIGJ1ZywgYW5kIGBCSVRfVUxMYCBpcyBwcm9iYWJseSB1c2luZyBhbiB1bnNpZ25lZCBsb25nIGxvbmcsIHdoaWNoIGdpdmVzIHVzIDY0IGJpdHMsIHJlc29sdmluZyB0aGUgcG90ZW50aWFsIG92ZXJmbG93LlxuXG5Ob3csIHdhaXQgYSBzZWNvbmQuIFRoaXMgaXMgYSAqaGFyZHdhcmUqIGRyaXZlciwgcmlnaHQ/IFdhbmd4dW4uLi4gdGhhdCdzIHJpbmdpbmcgYSBiZWxsLiBUaGV5IG1hbnVmYWN0dXJlIFBDSWUgbmV0d29yayBjYXJkcywgY29ycmVjdD8gSSBzaG91bGQgcHJvYmFibHkgdGFrZSBhIGxvb2sgYXQgdGhlIGRyaXZlcidzIG1haW4gY29kZSB0byBjb25maXJtIHRoYXQuIEkgc2hvdWxkIGNvbmZpcm0gbXkgc3VzcGljaW9ucyBieSBjaGVja2luZyBvdXQgdGhlIGB0eGdiZV9tYWluLmNgIG9yIHNpbWlsYXIgZmlsZSB3aXRoaW4gdGhlIGRyaXZlciBkaXJlY3RvcnkuIEkgd2FudCB0byBzZWUgZXhhY3RseSB3aGF0IGhhcmR3YXJlIHRoaXMgZHJpdmVyIGlzIG1hbmFnaW5nLCBqdXN0IHRvIGdldCBhIGZ1bGxlciBjb250ZXh0IG9mIHRoaXMgZml4LiBVbmRlcnN0YW5kaW5nIHRoZSB1bmRlcmx5aW5nIGhhcmR3YXJlIGlzIGNydWNpYWwgZm9yIGZ1bGx5IHVuZGVyc3RhbmRpbmcgdGhlIHBvdGVudGlhbCBpbXBsaWNhdGlvbnMgb2YgdGhpcyBjaGFuZ2UgYW5kIGNvbmZpcm1pbmcgd2hldGhlciB0aGUgZml4IGlzIG5lY2Vzc2FyeS5cblxuXG4iLCJJbnB1dFRva2VucyI6MjMxMSwiT3V0cHV0VG9rZW5zIjozOCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjE4MSwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTI0VDA3OjU2OjUxLjY4NTI2MTU1NloiLCJTZXEiOjQsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo0NjE1MTE0OSwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJ0eGdiZVwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJkcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJcXG5GdWxsIG91dHB1dCBpcyB0b28gbG9uZywgc2hvd2luZyA1MDAgb3V0IG9mIDE3MzAgbGluZXMuXFxuVXNlIG1vcmUgcHJlY2lzZSBleHByZXNzaW9uIGlmIHBvc3NpYmxlLlxcblxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvTWFrZWZpbGUtNi1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL01ha2VmaWxlOjc6b2JqLSQoQ09ORklHX1RYR0JFKSArPSB0eGdiZS5vXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS9NYWtlZmlsZS04LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvTWFrZWZpbGU6OTp0eGdiZS1vYmpzIDo9IHR4Z2JlX21haW4ubyBcXFxcXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS9NYWtlZmlsZToxMDogICAgICAgICAgICAgIHR4Z2JlX2h3Lm8gXFxcXFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvTWFrZWZpbGU6MTE6ICAgICAgICAgICAgICB0eGdiZV9waHkubyBcXFxcXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS9NYWtlZmlsZToxMjogICAgICAgICAgICAgIHR4Z2JlX2lycS5vIFxcXFxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL01ha2VmaWxlOjEzOiAgICAgICAgICAgICAgdHhnYmVfZmRpci5vIFxcXFxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL01ha2VmaWxlOjE0OiAgICAgICAgICAgICAgdHhnYmVfZXRodG9vbC5vIFxcXFxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL01ha2VmaWxlOjE1OiAgICAgICAgICAgICAgdHhnYmVfYW1sLm9cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfYW1sLmMtMTMtI2luY2x1ZGUgXFxcIi4uL2xpYnd4L3d4X3NyaW92LmhcXFwiXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9hbWwuYzoxNDojaW5jbHVkZSBcXFwidHhnYmVfdHlwZS5oXFxcIlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfYW1sLmM6MTU6I2luY2x1ZGUgXFxcInR4Z2JlX2FtbC5oXFxcIlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfYW1sLmM6MTY6I2luY2x1ZGUgXFxcInR4Z2JlX2h3LmhcXFwiXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9hbWwuYy0xNy1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2FtbC5jOjE4OnZvaWQgdHhnYmVfZ3Bpb19pbml0X2FtbChzdHJ1Y3Qgd3ggKnd4KVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfYW1sLmMtMTkte1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9hbWwuYy0zNi1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2FtbC5jOjM3OmlycXJldHVybl90IHR4Z2JlX2dwaW9faXJxX2hhbmRsZXJfYW1sKGludCBpcnEsIHZvaWQgKmRhdGEpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9hbWwuYy0zOC17XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9hbWwuYzozOTpcXHRzdHJ1Y3QgdHhnYmUgKnR4Z2JlID0gZGF0YTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2FtbC5jOjQwOlxcdHN0cnVjdCB3eCAqd3ggPSB0eGdiZS1cXHUwMDNld3g7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9hbWwuYy00MS1cXHR1MzIgc3RhdHVzLCBtb2RfcnN0O1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9hbWwuYy01OS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2FtbC5jOjYwOmludCB0eGdiZV90ZXN0X2hvc3RpZihzdHJ1Y3Qgd3ggKnd4KVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfYW1sLmMtNjEte1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfYW1sLmM6NjI6XFx0c3RydWN0IHR4Z2JlX2hpY19lcGh5X2dldGxpbmsgYnVmZmVyO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfYW1sLmMtNjMtXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2FtbC5jLTY3LVxcdGJ1ZmZlci5oZHIuY21kID0gRldfUEhZX0dFVF9MSU5LX0NNRDtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2FtbC5jOjY4OlxcdGJ1ZmZlci5oZHIuYnVmX2xlbiA9IHNpemVvZihzdHJ1Y3QgdHhnYmVfaGljX2VwaHlfZ2V0bGluaykgLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfYW1sLmMtNjktXFx0XFx0XFx0ICAgICBzaXplb2Yoc3RydWN0IHd4X2hpY19oZHIpO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9hbWwuYy03NS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2FtbC5jOjc2OmludCB0eGdiZV9yZWFkX2VlcHJvbV9ob3N0aWYoc3RydWN0IHd4ICp3eCxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2FtbC5jOjc3OlxcdFxcdFxcdCAgICAgc3RydWN0IHR4Z2JlX2hpY19pMmNfcmVhZCAqYnVmZmVyLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfYW1sLmMtNzgtXFx0XFx0XFx0ICAgICB1MzIgbGVuZ3RoLCB1OCAqZGF0YSlcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfYW1sLmMtODMtXFx0YnVmZmVyLVxcdTAwM2VoZHIuY21kID0gRldfUkVBRF9FRVBST01fQ01EO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfYW1sLmM6ODQ6XFx0YnVmZmVyLVxcdTAwM2VoZHIuYnVmX2xlbiA9IHNpemVvZihzdHJ1Y3QgdHhnYmVfaGljX2kyY19yZWFkKSAtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9hbWwuYy04NS1cXHRcXHRcXHQgICAgICBzaXplb2Yoc3RydWN0IHd4X2hpY19oZHIpO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9hbWwuYy04OC1cXHRlcnIgPSB3eF9ob3N0X2ludGVyZmFjZV9jb21tYW5kKHd4LCAodTMyICopYnVmZmVyLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfYW1sLmM6ODk6XFx0XFx0XFx0XFx0XFx0c2l6ZW9mKHN0cnVjdCB0eGdiZV9oaWNfaTJjX3JlYWQpLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfYW1sLmMtOTAtXFx0XFx0XFx0XFx0XFx0V1hfSElfQ09NTUFORF9USU1FT1VULCBmYWxzZSk7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2FtbC5jLTk0LVxcdC8qIGJ1ZmZlciBsZW5ndGggb2Zmc2V0IHRvIHJlYWQgcmV0dXJuIGRhdGEgKi9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2FtbC5jOjk1OlxcdG9mZnNldCA9IHNpemVvZihzdHJ1Y3QgdHhnYmVfaGljX2kyY19yZWFkKSBcXHUwMDNlXFx1MDAzZSAyO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfYW1sLmMtOTYtXFx0ZHdvcmRfbGVuID0gcm91bmRfdXAobGVuZ3RoLCA0KSBcXHUwMDNlXFx1MDAzZSAyO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9hbWwuYy0xMTAtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9hbWwuYzoxMTE6c3RhdGljIGludCB0eGdiZV9pZGVudGlmeV9tb2R1bGVfaG9zdGlmKHN0cnVjdCB3eCAqd3gsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9hbWwuYzoxMTI6XFx0XFx0XFx0XFx0XFx0c3RydWN0IHR4Z2JlX2hpY19nZXRfbW9kdWxlX2luZm8gKmJ1ZmZlcilcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2FtbC5jLTExMy17XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9hbWwuYy0xMTQtXFx0YnVmZmVyLVxcdTAwM2VoZHIuY21kID0gRldfR0VUX01PRFVMRV9JTkZPX0NNRDtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2FtbC5jOjExNTpcXHRidWZmZXItXFx1MDAzZWhkci5idWZfbGVuID0gc2l6ZW9mKHN0cnVjdCB0eGdiZV9oaWNfZ2V0X21vZHVsZV9pbmZvKSAtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9hbWwuYy0xMTYtXFx0XFx0XFx0ICAgICAgc2l6ZW9mKHN0cnVjdCB3eF9oaWNfaGRyKTtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfYW1sLmMtMTE5LVxcdHJldHVybiB3eF9ob3N0X2ludGVyZmFjZV9jb21tYW5kKHd4LCAodTMyICopYnVmZmVyLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfYW1sLmM6MTIwOlxcdFxcdFxcdFxcdFxcdCBzaXplb2Yoc3RydWN0IHR4Z2JlX2hpY19nZXRfbW9kdWxlX2luZm8pLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfYW1sLmMtMTIxLVxcdFxcdFxcdFxcdFxcdCBXWF9ISV9DT01NQU5EX1RJTUVPVVQsIHRydWUpO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9hbWwuYy0xMjMtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9hbWwuYzoxMjQ6c3RhdGljIGludCB0eGdiZV9zZXRfcGh5X2xpbmtfaG9zdGlmKHN0cnVjdCB3eCAqd3gsIGludCBzcGVlZCwgaW50IGF1dG9uZWcsIGludCBkdXBsZXgpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9hbWwuYy0xMjUte1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfYW1sLmM6MTI2OlxcdHN0cnVjdCB0eGdiZV9oaWNfZXBoeV9zZXRsaW5rIGJ1ZmZlcjtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2FtbC5jLTEyNy1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2FtbC5jLTEyOC1cXHRidWZmZXIuaGRyLmNtZCA9IEZXX1BIWV9TRVRfTElOS19DTUQ7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9hbWwuYzoxMjk6XFx0YnVmZmVyLmhkci5idWZfbGVuID0gc2l6ZW9mKHN0cnVjdCB0eGdiZV9oaWNfZXBoeV9zZXRsaW5rKSAtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9hbWwuYy0xMzAtXFx0XFx0XFx0ICAgICBzaXplb2Yoc3RydWN0IHd4X2hpY19oZHIpO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9hbWwuYy0xNTUtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9hbWwuYzoxNTY6c3RhdGljIHZvaWQgdHhnYmVfZ2V0X2xpbmtfY2FwYWJpbGl0aWVzKHN0cnVjdCB3eCAqd3gsIGludCAqc3BlZWQsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9hbWwuYy0xNTctXFx0XFx0XFx0XFx0XFx0aW50ICphdXRvbmVnLCBpbnQgKmR1cGxleClcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2FtbC5jLTE1OC17XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9hbWwuYzoxNTk6XFx0c3RydWN0IHR4Z2JlICp0eGdiZSA9IHd4LVxcdTAwM2Vwcml2O1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfYW1sLmMtMTYwLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfYW1sLmM6MTYxOlxcdGlmICh0ZXN0X2JpdChQSFlfSU5URVJGQUNFX01PREVfWExHTUlJLCB0eGdiZS1cXHUwMDNlbGlua19pbnRlcmZhY2VzKSlcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2FtbC5jLTE2Mi1cXHRcXHQqc3BlZWQgPSBTUEVFRF80MDAwMDtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2FtbC5jOjE2MzpcXHRlbHNlIGlmICh0ZXN0X2JpdChQSFlfSU5URVJGQUNFX01PREVfMjVHQkFTRVIsIHR4Z2JlLVxcdTAwM2VsaW5rX2ludGVyZmFjZXMpKVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfYW1sLmMtMTY0LVxcdFxcdCpzcGVlZCA9IFNQRUVEXzI1MDAwO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfYW1sLmM6MTY1OlxcdGVsc2UgaWYgKHRlc3RfYml0KFBIWV9JTlRFUkZBQ0VfTU9ERV8xMEdCQVNFUiwgdHhnYmUtXFx1MDAzZWxpbmtfaW50ZXJmYWNlcykpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9hbWwuYy0xNjYtXFx0XFx0KnNwZWVkID0gU1BFRURfMTAwMDA7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2FtbC5jLTE2OS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2FtbC5jOjE3MDpcXHQqYXV0b25lZyA9IHBoeWxpbmtfdGVzdCh0eGdiZS1cXHUwMDNlYWR2ZXJ0aXNpbmcsIEF1dG9uZWcpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfYW1sLmMtMTcxLVxcdCpkdXBsZXggPSAqc3BlZWQgPT0gU1BFRURfVU5LTk9XTiA/IERVUExFWF9IQUxGIDogRFVQTEVYX0ZVTEw7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2FtbC5jLTE3My1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2FtbC5jOjE3NDpzdGF0aWMgdm9pZCB0eGdiZV9nZXRfbWFjX2xpbmsoc3RydWN0IHd4ICp3eCwgaW50ICpzcGVlZClcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2FtbC5jLTE3NS17XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2FtbC5jLTE5MC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2FtbC5jOjE5MTp2b2lkIHR4Z2JlX3NldF9waHlfbGluayhzdHJ1Y3Qgd3ggKnd4KVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfYW1sLmMtMTkyLXtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfYW1sLmMtMTk0LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfYW1sLmM6MTk1OlxcdHR4Z2JlX2dldF9saW5rX2NhcGFiaWxpdGllcyh3eCwgXFx1MDAyNnNwZWVkLCBcXHUwMDI2YXV0b25lZywgXFx1MDAyNmR1cGxleCk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9hbWwuYy0xOTYtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9hbWwuYzoxOTc6XFx0ZXJyID0gdHhnYmVfc2V0X3BoeV9saW5rX2hvc3RpZih3eCwgc3BlZWQsIGF1dG9uZWcsIGR1cGxleCk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9hbWwuYy0xOTgtXFx0aWYgKGVycilcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfYW1sLmMtMjAxLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfYW1sLmM6MjAyOnN0YXRpYyBpbnQgdHhnYmVfc2ZwX3RvX2xpbmttb2RlcyhzdHJ1Y3Qgd3ggKnd4LCBzdHJ1Y3QgdHhnYmVfc2ZmX2lkICppZClcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2FtbC5jLTIwMy17XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2FtbC5jLTIwNS1cXHRERUNMQVJFX1BIWV9JTlRFUkZBQ0VfTUFTS19aRVJPKGludGVyZmFjZXMpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfYW1sLmM6MjA2OlxcdHN0cnVjdCB0eGdiZSAqdHhnYmUgPSB3eC1cXHUwMDNlcHJpdjtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2FtbC5jLTIwNy1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2FtbC5jLTIwOC1cXHRpZiAoaWQtXFx1MDAzZWNhYmxlX3RlY2ggXFx1MDAyNiBUWEdCRV9TRkZfREFfUEFTU0lWRV9DQUJMRSkge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfYW1sLmM6MjA5OlxcdFxcdHR4Z2JlLVxcdTAwM2VsaW5rX3BvcnQgPSBQT1JUX0RBO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfYW1sLmMtMjEwLVxcdFxcdHBoeWxpbmtfc2V0KG1vZGVzLCBBdXRvbmVnKTtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfYW1sLmMtMjIyLVxcdH0gZWxzZSBpZiAoaWQtXFx1MDAzZWNhYmxlX3RlY2ggXFx1MDAyNiBUWEdCRV9TRkZfREFfQUNUSVZFX0NBQkxFKSB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9hbWwuYzoyMjM6XFx0XFx0dHhnYmUtXFx1MDAzZWxpbmtfcG9ydCA9IFBPUlRfREE7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9hbWwuYy0yMjQtXFx0XFx0cGh5bGlua19zZXQobW9kZXMsIEF1dG9uZWcpO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9hbWwuYy0yMzAtXFx0XFx0ICAgIGlkLVxcdTAwM2Vjb21fMjVnX2NvZGUgPT0gVFhHQkVfU0ZGXzI1R0JBU0VMUl9DQVBBQkxFKSB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9hbWwuYzoyMzE6XFx0XFx0XFx0dHhnYmUtXFx1MDAzZWxpbmtfcG9ydCA9IFBPUlRfRklCUkU7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9hbWwuYy0yMzItXFx0XFx0XFx0cGh5bGlua19zZXQobW9kZXMsIDI1MDAwYmFzZVNSX0Z1bGwpO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9hbWwuYy0yMzUtXFx0XFx0aWYgKGlkLVxcdTAwM2Vjb21fMTBnX2NvZGUgXFx1MDAyNiBUWEdCRV9TRkZfMTBHQkFTRVNSX0NBUEFCTEUpIHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2FtbC5jOjIzNjpcXHRcXHRcXHR0eGdiZS1cXHUwMDNlbGlua19wb3J0ID0gUE9SVF9GSUJSRTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2FtbC5jLTIzNy1cXHRcXHRcXHRwaHlsaW5rX3NldChtb2RlcywgMTAwMDBiYXNlU1JfRnVsbCk7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2FtbC5jLTI0MC1cXHRcXHRpZiAoaWQtXFx1MDAzZWNvbV8xMGdfY29kZSBcXHUwMDI2IFRYR0JFX1NGRl8xMEdCQVNFTFJfQ0FQQUJMRSkge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfYW1sLmM6MjQxOlxcdFxcdFxcdHR4Z2JlLVxcdTAwM2VsaW5rX3BvcnQgPSBQT1JUX0ZJQlJFO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfYW1sLmMtMjQyLVxcdFxcdFxcdHBoeWxpbmtfc2V0KG1vZGVzLCAxMDAwMGJhc2VMUl9GdWxsKTtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfYW1sLmMtMjU1LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfYW1sLmM6MjU2OlxcdGlmICghbGlua21vZGVfZXF1YWwodHhnYmUtXFx1MDAzZWxpbmtfc3VwcG9ydCwgbW9kZXMpKSB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9hbWwuYzoyNTc6XFx0XFx0bGlua21vZGVfY29weSh0eGdiZS1cXHUwMDNlbGlua19zdXBwb3J0LCBtb2Rlcyk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9hbWwuYzoyNTg6XFx0XFx0cGh5X2ludGVyZmFjZV9hbmQodHhnYmUtXFx1MDAzZWxpbmtfaW50ZXJmYWNlcyxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2FtbC5jLTI1OS1cXHRcXHRcXHRcXHQgIHd4LVxcdTAwM2VwaHlsaW5rX2NvbmZpZy5zdXBwb3J0ZWRfaW50ZXJmYWNlcyxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2FtbC5jLTI2MC1cXHRcXHRcXHRcXHQgIGludGVyZmFjZXMpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfYW1sLmM6MjYxOlxcdFxcdGxpbmttb2RlX2NvcHkodHhnYmUtXFx1MDAzZWFkdmVydGlzaW5nLCBtb2Rlcyk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9hbWwuYy0yNjItXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2FtbC5jLTI2OC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2FtbC5jOjI2OTpzdGF0aWMgaW50IHR4Z2JlX3FzZnBfdG9fbGlua21vZGVzKHN0cnVjdCB3eCAqd3gsIHN0cnVjdCB0eGdiZV9zZmZfaWQgKmlkKVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfYW1sLmMtMjcwLXtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfYW1sLmMtMjcyLVxcdERFQ0xBUkVfUEhZX0lOVEVSRkFDRV9NQVNLX1pFUk8oaW50ZXJmYWNlcyk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9hbWwuYzoyNzM6XFx0c3RydWN0IHR4Z2JlICp0eGdiZSA9IHd4LVxcdTAwM2Vwcml2O1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfYW1sLmMtMjc0LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfYW1sLmMtMjc1LVxcdGlmIChpZC1cXHUwMDNldHJhbnNjZWl2ZXJfdHlwZSBcXHUwMDI2IFRYR0JFX1NGRl9FVEhFUk5FVF80MEdfQ1I0KSB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9hbWwuYzoyNzY6XFx0XFx0dHhnYmUtXFx1MDAzZWxpbmtfcG9ydCA9IFBPUlRfREE7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9hbWwuYy0yNzctXFx0XFx0cGh5bGlua19zZXQobW9kZXMsIEF1dG9uZWcpO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9hbWwuYy0yODMtXFx0aWYgKGlkLVxcdTAwM2V0cmFuc2NlaXZlcl90eXBlIFxcdTAwMjYgVFhHQkVfU0ZGX0VUSEVSTkVUXzQwR19TUjQpIHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2FtbC5jOjI4NDpcXHRcXHR0eGdiZS1cXHUwMDNlbGlua19wb3J0ID0gUE9SVF9GSUJSRTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2FtbC5jLTI4NS1cXHRcXHRwaHlsaW5rX3NldChtb2RlcywgNDAwMDBiYXNlU1I0X0Z1bGwpO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9hbWwuYy0yODgtXFx0aWYgKGlkLVxcdTAwM2V0cmFuc2NlaXZlcl90eXBlIFxcdTAwMjYgVFhHQkVfU0ZGX0VUSEVSTkVUXzQwR19MUjQpIHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2FtbC5jOjI4OTpcXHRcXHR0eGdiZS1cXHUwMDNlbGlua19wb3J0ID0gUE9SVF9GSUJSRTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2FtbC5jLTI5MC1cXHRcXHRwaHlsaW5rX3NldChtb2RlcywgNDAwMDBiYXNlTFI0X0Z1bGwpO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9hbWwuYy0yOTMtXFx0aWYgKGlkLVxcdTAwM2V0cmFuc2NlaXZlcl90eXBlIFxcdTAwMjYgVFhHQkVfU0ZGX0VUSEVSTkVUXzQwR19BQ1RJVkUpIHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2FtbC5jOjI5NDpcXHRcXHR0eGdiZS1cXHUwMDNlbGlua19wb3J0ID0gUE9SVF9EQTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2FtbC5jLTI5NS1cXHRcXHRwaHlsaW5rX3NldChtb2RlcywgQXV0b25lZyk7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2FtbC5jLTMwMC1cXHRcXHRpZiAoaWQtXFx1MDAzZXNmZl9vcHQxIFxcdTAwMjYgVFhHQkVfU0ZGX0VUSEVSTkVUXzEwMEdfQ1I0KSB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9hbWwuYzozMDE6XFx0XFx0XFx0dHhnYmUtXFx1MDAzZWxpbmtfcG9ydCA9IFBPUlRfREE7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9hbWwuYy0zMDItXFx0XFx0XFx0cGh5bGlua19zZXQobW9kZXMsIEF1dG9uZWcpO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9hbWwuYy0zMjAtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9hbWwuYzozMjE6XFx0aWYgKCFsaW5rbW9kZV9lcXVhbCh0eGdiZS1cXHUwMDNlbGlua19zdXBwb3J0LCBtb2RlcykpIHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2FtbC5jOjMyMjpcXHRcXHRsaW5rbW9kZV9jb3B5KHR4Z2JlLVxcdTAwM2VsaW5rX3N1cHBvcnQsIG1vZGVzKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2FtbC5jOjMyMzpcXHRcXHRwaHlfaW50ZXJmYWNlX2FuZCh0eGdiZS1cXHUwMDNlbGlua19pbnRlcmZhY2VzLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfYW1sLmMtMzI0LVxcdFxcdFxcdFxcdCAgd3gtXFx1MDAzZXBoeWxpbmtfY29uZmlnLnN1cHBvcnRlZF9pbnRlcmZhY2VzLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfYW1sLmMtMzI1LVxcdFxcdFxcdFxcdCAgaW50ZXJmYWNlcyk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9hbWwuYzozMjY6XFx0XFx0bGlua21vZGVfY29weSh0eGdiZS1cXHUwMDNlYWR2ZXJ0aXNpbmcsIG1vZGVzKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2FtbC5jLTMyNy1cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfYW1sLmMtMzMzLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfYW1sLmM6MzM0OmludCB0eGdiZV9pZGVudGlmeV9tb2R1bGUoc3RydWN0IHd4ICp3eClcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2FtbC5jLTMzNS17XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9hbWwuYzozMzY6XFx0c3RydWN0IHR4Z2JlX2hpY19nZXRfbW9kdWxlX2luZm8gYnVmZmVyID0geyAwIH07XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9hbWwuYzozMzc6XFx0c3RydWN0IHR4Z2JlX3NmZl9pZCAqaWQ7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9hbWwuYy0zMzgtXFx0aW50IGVyciA9IDA7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2FtbC5jLTM1MC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2FtbC5jOjM1MTpcXHRlcnIgPSB0eGdiZV9pZGVudGlmeV9tb2R1bGVfaG9zdGlmKHd4LCBcXHUwMDI2YnVmZmVyKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2FtbC5jLTM1Mi1cXHRpZiAoZXJyKSB7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2FtbC5jLTM1OC1cXHRpZiAoaWQtXFx1MDAzZWlkZW50aWZpZXIgPT0gVFhHQkVfU0ZGX0lERU5USUZJRVJfU0ZQKVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfYW1sLmM6MzU5OlxcdFxcdHJldHVybiB0eGdiZV9zZnBfdG9fbGlua21vZGVzKHd4LCBpZCk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9hbWwuYy0zNjAtXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2FtbC5jLTM2My1cXHQgICAgaWQtXFx1MDAzZWlkZW50aWZpZXIgPT0gVFhHQkVfU0ZGX0lERU5USUZJRVJfUVNGUDI4KVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfYW1sLmM6MzY0OlxcdFxcdHJldHVybiB0eGdiZV9xc2ZwX3RvX2xpbmttb2Rlcyh3eCwgaWQpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfYW1sLmMtMzY1LVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9hbWwuYy0zNjktXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9hbWwuYzozNzA6dm9pZCB0eGdiZV9zZXR1cF9saW5rKHN0cnVjdCB3eCAqd3gpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9hbWwuYy0zNzEte1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfYW1sLmM6MzcyOlxcdHN0cnVjdCB0eGdiZSAqdHhnYmUgPSB3eC1cXHUwMDNlcHJpdjtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2FtbC5jLTM3My1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2FtbC5jOjM3NDpcXHRwaHlfaW50ZXJmYWNlX3plcm8odHhnYmUtXFx1MDAzZWxpbmtfaW50ZXJmYWNlcyk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9hbWwuYzozNzU6XFx0bGlua21vZGVfemVybyh0eGdiZS1cXHUwMDNlbGlua19zdXBwb3J0KTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2FtbC5jLTM3Ni1cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfYW1sLmMtMzgwLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfYW1sLmM6MzgxOnN0YXRpYyB2b2lkIHR4Z2JlX2dldF9saW5rX3N0YXRlKHN0cnVjdCBwaHlsaW5rX2NvbmZpZyAqY29uZmlnLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfYW1sLmMtMzgyLVxcdFxcdFxcdFxcdCBzdHJ1Y3QgcGh5bGlua19saW5rX3N0YXRlICpzdGF0ZSlcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfYW1sLmMtMzg2LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfYW1sLmM6Mzg3OlxcdHR4Z2JlX2dldF9tYWNfbGluayh3eCwgXFx1MDAyNnNwZWVkKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2FtbC5jLTM4OC1cXHRzdGF0ZS1cXHUwMDNlbGluayA9IHNwZWVkICE9IFNQRUVEX1VOS05PV047XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2FtbC5jLTM5Mi1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2FtbC5jOjM5MzpzdGF0aWMgdm9pZCB0eGdiZV9yZWNvbmZpZ19tYWMoc3RydWN0IHd4ICp3eClcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2FtbC5jLTM5NC17XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2FtbC5jLTQxMS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2FtbC5jOjQxMjpzdGF0aWMgdm9pZCB0eGdiZV9tYWNfbGlua191cF9hbWwoc3RydWN0IHBoeWxpbmtfY29uZmlnICpjb25maWcsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9hbWwuYy00MTMtXFx0XFx0XFx0XFx0ICBzdHJ1Y3QgcGh5X2RldmljZSAqcGh5LFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9hbWwuYy00MjMtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9hbWwuYzo0MjQ6XFx0dHhnYmVfcmVjb25maWdfbWFjKHd4KTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2FtbC5jOjQyNTpcXHR0eGdiZV9lbmFibGVfc2VjX3R4X3BhdGgod3gpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfYW1sLmMtNDI2LVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9hbWwuYy00NTQtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9hbWwuYzo0NTU6c3RhdGljIHZvaWQgdHhnYmVfbWFjX2xpbmtfZG93bl9hbWwoc3RydWN0IHBoeWxpbmtfY29uZmlnICpjb25maWcsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9hbWwuYy00NTYtXFx0XFx0XFx0XFx0ICAgIHVuc2lnbmVkIGludCBtb2RlLFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9hbWwuYy00NzAtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9hbWwuYzo0NzE6c3RhdGljIHZvaWQgdHhnYmVfbWFjX2NvbmZpZ19hbWwoc3RydWN0IHBoeWxpbmtfY29uZmlnICpjb25maWcsIHVuc2lnbmVkIGludCBtb2RlLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfYW1sLmMtNDcyLVxcdFxcdFxcdFxcdCBjb25zdCBzdHJ1Y3QgcGh5bGlua19saW5rX3N0YXRlICpzdGF0ZSlcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfYW1sLmMtNDc1LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfYW1sLmM6NDc2OnN0YXRpYyBjb25zdCBzdHJ1Y3QgcGh5bGlua19tYWNfb3BzIHR4Z2JlX21hY19vcHNfYW1sID0ge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfYW1sLmM6NDc3OlxcdC5tYWNfY29uZmlnID0gdHhnYmVfbWFjX2NvbmZpZ19hbWwsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9hbWwuYzo0Nzg6XFx0Lm1hY19saW5rX2Rvd24gPSB0eGdiZV9tYWNfbGlua19kb3duX2FtbCxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2FtbC5jOjQ3OTpcXHQubWFjX2xpbmtfdXAgPSB0eGdiZV9tYWNfbGlua191cF9hbWwsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9hbWwuYy00ODAtfTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2FtbC5jLTQ4MS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2FtbC5jOjQ4MjppbnQgdHhnYmVfcGh5bGlua19pbml0X2FtbChzdHJ1Y3QgdHhnYmUgKnR4Z2JlKVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfYW1sLmMtNDgzLXtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfYW1sLmMtNDg1LVxcdHN0cnVjdCBwaHlsaW5rX2NvbmZpZyAqY29uZmlnO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfYW1sLmM6NDg2OlxcdHN0cnVjdCB3eCAqd3ggPSB0eGdiZS1cXHUwMDNld3g7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9hbWwuYy00ODctXFx0cGh5X2ludGVyZmFjZV90IHBoeV9tb2RlO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9hbWwuYy00OTUtXFx0XFx0XFx0XFx0ICAgTUFDX1NZTV9QQVVTRSB8IE1BQ19BU1lNX1BBVVNFO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfYW1sLmM6NDk2OlxcdGNvbmZpZy1cXHUwMDNlZ2V0X2ZpeGVkX3N0YXRlID0gdHhnYmVfZ2V0X2xpbmtfc3RhdGU7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9hbWwuYy00OTctXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2FtbC5jLTUxMi1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2FtbC5jOjUxMzpcXHRwaHlsaW5rID0gcGh5bGlua19jcmVhdGUoY29uZmlnLCBOVUxMLCBwaHlfbW9kZSwgXFx1MDAyNnR4Z2JlX21hY19vcHNfYW1sKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2FtbC5jLTUxNC1cXHRpZiAoSVNfRVJSKHBoeWxpbmspKVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9hbWwuaC02LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfYW1sLmg6Nzp2b2lkIHR4Z2JlX2dwaW9faW5pdF9hbWwoc3RydWN0IHd4ICp3eCk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9hbWwuaDo4OmlycXJldHVybl90IHR4Z2JlX2dwaW9faXJxX2hhbmRsZXJfYW1sKGludCBpcnEsIHZvaWQgKmRhdGEpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfYW1sLmg6OTppbnQgdHhnYmVfdGVzdF9ob3N0aWYoc3RydWN0IHd4ICp3eCk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9hbWwuaDoxMDppbnQgdHhnYmVfcmVhZF9lZXByb21faG9zdGlmKHN0cnVjdCB3eCAqd3gsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9hbWwuaDoxMTpcXHRcXHRcXHQgICAgIHN0cnVjdCB0eGdiZV9oaWNfaTJjX3JlYWQgKmJ1ZmZlcixcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2FtbC5oLTEyLVxcdFxcdFxcdCAgICAgdTMyIGxlbmd0aCwgdTggKmRhdGEpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfYW1sLmg6MTM6dm9pZCB0eGdiZV9zZXRfcGh5X2xpbmsoc3RydWN0IHd4ICp3eCk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9hbWwuaDoxNDppbnQgdHhnYmVfaWRlbnRpZnlfbW9kdWxlKHN0cnVjdCB3eCAqd3gpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfYW1sLmg6MTU6dm9pZCB0eGdiZV9zZXR1cF9saW5rKHN0cnVjdCB3eCAqd3gpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfYW1sLmg6MTY6aW50IHR4Z2JlX3BoeWxpbmtfaW5pdF9hbWwoc3RydWN0IHR4Z2JlICp0eGdiZSk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9hbWwuaC0xNy1cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfZXRodG9vbC5jLTEwLSNpbmNsdWRlIFxcXCIuLi9saWJ3eC93eF9saWIuaFxcXCJcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2V0aHRvb2wuYzoxMTojaW5jbHVkZSBcXFwidHhnYmVfdHlwZS5oXFxcIlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfZXRodG9vbC5jOjEyOiNpbmNsdWRlIFxcXCJ0eGdiZV9mZGlyLmhcXFwiXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9ldGh0b29sLmM6MTM6I2luY2x1ZGUgXFxcInR4Z2JlX2FtbC5oXFxcIlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfZXRodG9vbC5jOjE0OiNpbmNsdWRlIFxcXCJ0eGdiZV9ldGh0b29sLmhcXFwiXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9ldGh0b29sLmMtMTUtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9ldGh0b29sLmM6MTY6aW50IHR4Z2JlX2dldF9saW5rX2tzZXR0aW5ncyhzdHJ1Y3QgbmV0X2RldmljZSAqbmV0ZGV2LFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfZXRodG9vbC5jLTE3LVxcdFxcdFxcdCAgICAgc3RydWN0IGV0aHRvb2xfbGlua19rc2V0dGluZ3MgKmNtZClcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfZXRodG9vbC5jLTE5LVxcdHN0cnVjdCB3eCAqd3ggPSBuZXRkZXZfcHJpdihuZXRkZXYpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfZXRodG9vbC5jOjIwOlxcdHN0cnVjdCB0eGdiZSAqdHhnYmUgPSB3eC1cXHUwMDNlcHJpdjtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2V0aHRvb2wuYy0yMS1cXHRpbnQgZXJyO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9ldGh0b29sLmMtMjktXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9ldGh0b29sLmM6MzA6XFx0Y21kLVxcdTAwM2ViYXNlLnBvcnQgPSB0eGdiZS1cXHUwMDNlbGlua19wb3J0O1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfZXRodG9vbC5jOjMxOlxcdGNtZC1cXHUwMDNlYmFzZS5hdXRvbmVnID0gcGh5bGlua190ZXN0KHR4Z2JlLVxcdTAwM2VhZHZlcnRpc2luZywgQXV0b25lZykgP1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfZXRodG9vbC5jLTMyLVxcdFxcdFxcdCAgICBBVVRPTkVHX0VOQUJMRSA6IEFVVE9ORUdfRElTQUJMRTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2V0aHRvb2wuYzozMzpcXHRsaW5rbW9kZV9jb3B5KGNtZC1cXHUwMDNlbGlua19tb2Rlcy5zdXBwb3J0ZWQsIHR4Z2JlLVxcdTAwM2VsaW5rX3N1cHBvcnQpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfZXRodG9vbC5jOjM0OlxcdGxpbmttb2RlX2NvcHkoY21kLVxcdTAwM2VsaW5rX21vZGVzLmFkdmVydGlzaW5nLCB0eGdiZS1cXHUwMDNlYWR2ZXJ0aXNpbmcpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfZXRodG9vbC5jLTM1LVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9ldGh0b29sLmMtMzgtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9ldGh0b29sLmM6Mzk6c3RhdGljIGludCB0eGdiZV9zZXRfcmluZ3BhcmFtKHN0cnVjdCBuZXRfZGV2aWNlICpuZXRkZXYsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9ldGh0b29sLmMtNDAtXFx0XFx0XFx0ICAgICAgIHN0cnVjdCBldGh0b29sX3JpbmdwYXJhbSAqcmluZyxcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfZXRodG9vbC5jLTgwLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfZXRodG9vbC5jOjgxOlxcdHR4Z2JlX2Rvd24od3gpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfZXRodG9vbC5jLTgyLVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9ldGh0b29sLmMtODUtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9ldGh0b29sLmM6ODY6XFx0dHhnYmVfdXAod3gpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfZXRodG9vbC5jLTg3LVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9ldGh0b29sLmMtOTMtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9ldGh0b29sLmM6OTQ6c3RhdGljIGludCB0eGdiZV9nZXRfZXRodG9vbF9mZGlyX2VudHJ5KHN0cnVjdCB0eGdiZSAqdHhnYmUsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9ldGh0b29sLmMtOTUtXFx0XFx0XFx0XFx0XFx0c3RydWN0IGV0aHRvb2xfcnhuZmMgKmNtZClcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfZXRodG9vbC5jLTk4LVxcdFxcdChzdHJ1Y3QgZXRodG9vbF9yeF9mbG93X3NwZWMgKilcXHUwMDI2Y21kLVxcdTAwM2VmcztcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2V0aHRvb2wuYzo5OTpcXHR1bmlvbiB0eGdiZV9hdHJfaW5wdXQgKm1hc2sgPSBcXHUwMDI2dHhnYmUtXFx1MDAzZWZkaXJfbWFzaztcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2V0aHRvb2wuYzoxMDA6XFx0c3RydWN0IHR4Z2JlX2ZkaXJfZmlsdGVyICpydWxlID0gTlVMTDtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2V0aHRvb2wuYy0xMDEtXFx0c3RydWN0IGhsaXN0X25vZGUgKm5vZGU7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2V0aHRvb2wuYy0xMDUtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9ldGh0b29sLmM6MTA2OlxcdGhsaXN0X2Zvcl9lYWNoX2VudHJ5X3NhZmUocnVsZSwgbm9kZSwgXFx1MDAyNnR4Z2JlLVxcdTAwM2VmZGlyX2ZpbHRlcl9saXN0LFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfZXRodG9vbC5jLTEwNy1cXHRcXHRcXHRcXHQgIGZkaXJfbm9kZSkge1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9ldGh0b29sLmMtMTU4LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfZXRodG9vbC5jOjE1OTpzdGF0aWMgaW50IHR4Z2JlX2dldF9ldGh0b29sX2ZkaXJfYWxsKHN0cnVjdCB0eGdiZSAqdHhnYmUsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9ldGh0b29sLmMtMTYwLVxcdFxcdFxcdFxcdCAgICAgIHN0cnVjdCBldGh0b29sX3J4bmZjICpjbWQsXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2V0aHRvb2wuYy0xNjIte1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfZXRodG9vbC5jOjE2MzpcXHRzdHJ1Y3QgdHhnYmVfZmRpcl9maWx0ZXIgKnJ1bGU7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9ldGh0b29sLmMtMTY0LVxcdHN0cnVjdCBobGlzdF9ub2RlICpub2RlO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9ldGh0b29sLmMtMTY5LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfZXRodG9vbC5jOjE3MDpcXHRobGlzdF9mb3JfZWFjaF9lbnRyeV9zYWZlKHJ1bGUsIG5vZGUsIFxcdTAwMjZ0eGdiZS1cXHUwMDNlZmRpcl9maWx0ZXJfbGlzdCxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2V0aHRvb2wuYy0xNzEtXFx0XFx0XFx0XFx0ICBmZGlyX25vZGUpIHtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfZXRodG9vbC5jLTE4Mi1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2V0aHRvb2wuYzoxODM6c3RhdGljIHUzMiB0eGdiZV9nZXRfcnhfcmluZ19jb3VudChzdHJ1Y3QgbmV0X2RldmljZSAqZGV2KVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfZXRodG9vbC5jLTE4NC17XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2V0aHRvb2wuYy0xODktXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9ldGh0b29sLmM6MTkwOnN0YXRpYyBpbnQgdHhnYmVfZ2V0X3J4bmZjKHN0cnVjdCBuZXRfZGV2aWNlICpkZXYsIHN0cnVjdCBldGh0b29sX3J4bmZjICpjbWQsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9ldGh0b29sLmMtMTkxLVxcdFxcdFxcdCAgIHUzMiAqcnVsZV9sb2NzKVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9ldGh0b29sLmMtMTkzLVxcdHN0cnVjdCB3eCAqd3ggPSBuZXRkZXZfcHJpdihkZXYpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfZXRodG9vbC5jOjE5NDpcXHRzdHJ1Y3QgdHhnYmUgKnR4Z2JlID0gd3gtXFx1MDAzZXByaXY7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9ldGh0b29sLmMtMTk1LVxcdGludCByZXQgPSAtRU9QTk9UU1VQUDtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfZXRodG9vbC5jLTE5OC1cXHRjYXNlIEVUSFRPT0xfR1JYQ0xTUkxDTlQ6XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9ldGh0b29sLmM6MTk5OlxcdFxcdGNtZC1cXHUwMDNlcnVsZV9jbnQgPSB0eGdiZS1cXHUwMDNlZmRpcl9maWx0ZXJfY291bnQ7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9ldGh0b29sLmMtMjAwLVxcdFxcdHJldCA9IDA7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2V0aHRvb2wuYy0yMDItXFx0Y2FzZSBFVEhUT09MX0dSWENMU1JVTEU6XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9ldGh0b29sLmM6MjAzOlxcdFxcdHJldCA9IHR4Z2JlX2dldF9ldGh0b29sX2ZkaXJfZW50cnkodHhnYmUsIGNtZCk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9ldGh0b29sLmMtMjA0LVxcdFxcdGJyZWFrO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfZXRodG9vbC5jLTIwNS1cXHRjYXNlIEVUSFRPT0xfR1JYQ0xTUkxBTEw6XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9ldGh0b29sLmM6MjA2OlxcdFxcdHJldCA9IHR4Z2JlX2dldF9ldGh0b29sX2ZkaXJfYWxsKHR4Z2JlLCBjbWQsICh1MzIgKilydWxlX2xvY3MpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfZXRodG9vbC5jLTIwNy1cXHRcXHRicmVhaztcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfZXRodG9vbC5jLTIxNC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2V0aHRvb2wuYzoyMTU6c3RhdGljIGludCB0eGdiZV9mbG93c3BlY190b19mbG93X3R5cGUoc3RydWN0IGV0aHRvb2xfcnhfZmxvd19zcGVjICpmc3AsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9ldGh0b29sLmMtMjE2LVxcdFxcdFxcdFxcdCAgICAgICB1OCAqZmxvd190eXBlKVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9ldGh0b29sLmMtMjU1LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfZXRodG9vbC5jOjI1NjpzdGF0aWMgYm9vbCB0eGdiZV9tYXRjaF9ldGh0b29sX2ZkaXJfZW50cnkoc3RydWN0IHR4Z2JlICp0eGdiZSxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2V0aHRvb2wuYzoyNTc6XFx0XFx0XFx0XFx0XFx0ICAgc3RydWN0IHR4Z2JlX2ZkaXJfZmlsdGVyICppbnB1dClcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2V0aHRvb2wuYy0yNTgte1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfZXRodG9vbC5jOjI1OTpcXHRzdHJ1Y3QgdHhnYmVfZmRpcl9maWx0ZXIgKnJ1bGUgPSBOVUxMO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfZXRodG9vbC5jLTI2MC1cXHRzdHJ1Y3QgaGxpc3Rfbm9kZSAqbm9kZTI7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9ldGh0b29sLmMtMjYxLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfZXRodG9vbC5jOjI2MjpcXHRobGlzdF9mb3JfZWFjaF9lbnRyeV9zYWZlKHJ1bGUsIG5vZGUyLCBcXHUwMDI2dHhnYmUtXFx1MDAzZWZkaXJfZmlsdGVyX2xpc3QsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9ldGh0b29sLmMtMjYzLVxcdFxcdFxcdFxcdCAgZmRpcl9ub2RlKSB7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2V0aHRvb2wuYy0yNjYtXFx0XFx0ICAgIHJ1bGUtXFx1MDAzZWFjdGlvbiA9PSBpbnB1dC1cXHUwMDNlYWN0aW9uKSB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9ldGh0b29sLmM6MjY3OlxcdFxcdFxcdHd4X2RiZyh0eGdiZS1cXHUwMDNld3gsIFxcXCJGRElSIGVudHJ5IGFscmVhZHkgZXhpc3RcXFxcblxcXCIpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfZXRodG9vbC5jLTI2OC1cXHRcXHRcXHRyZXR1cm4gdHJ1ZTtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfZXRodG9vbC5jLTI3My1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2V0aHRvb2wuYzoyNzQ6c3RhdGljIGludCB0eGdiZV91cGRhdGVfZXRodG9vbF9mZGlyX2VudHJ5KHN0cnVjdCB0eGdiZSAqdHhnYmUsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9ldGh0b29sLmM6Mjc1OlxcdFxcdFxcdFxcdFxcdCAgIHN0cnVjdCB0eGdiZV9mZGlyX2ZpbHRlciAqaW5wdXQsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9ldGh0b29sLmMtMjc2LVxcdFxcdFxcdFxcdFxcdCAgIHUxNiBzd19pZHgpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2V0aHRvb2wuYy0yNzgtXFx0c3RydWN0IGhsaXN0X25vZGUgKm5vZGUgPSBOVUxMLCAqcGFyZW50ID0gTlVMTDtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2V0aHRvb2wuYzoyNzk6XFx0c3RydWN0IHR4Z2JlX2ZkaXJfZmlsdGVyICpydWxlO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfZXRodG9vbC5jOjI4MDpcXHRzdHJ1Y3Qgd3ggKnd4ID0gdHhnYmUtXFx1MDAzZXd4O1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfZXRodG9vbC5jLTI4MS1cXHRib29sIGRlbGV0ZWQgPSBmYWxzZTtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfZXRodG9vbC5jLTI4My1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2V0aHRvb2wuYzoyODQ6XFx0aGxpc3RfZm9yX2VhY2hfZW50cnlfc2FmZShydWxlLCBub2RlLCBcXHUwMDI2dHhnYmUtXFx1MDAzZWZkaXJfZmlsdGVyX2xpc3QsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9ldGh0b29sLmMtMjg1LVxcdFxcdFxcdFxcdCAgZmRpcl9ub2RlKSB7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2V0aHRvb2wuYy0zMDAtXFx0XFx0ICAgICBpbnB1dC1cXHUwMDNlZmlsdGVyLmZvcm1hdHRlZC5ia3RfaGFzaCkpIHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2V0aHRvb2wuYzozMDE6XFx0XFx0XFx0ZXJyID0gdHhnYmVfZmRpcl9lcmFzZV9wZXJmZWN0X2ZpbHRlcih3eCxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2V0aHRvb2wuYy0zMDItXFx0XFx0XFx0XFx0XFx0XFx0XFx0ICAgICAgXFx1MDAyNnJ1bGUtXFx1MDAzZWZpbHRlcixcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfZXRodG9vbC5jLTMwOS1cXHRcXHRrZnJlZShydWxlKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2V0aHRvb2wuYzozMTA6XFx0XFx0dHhnYmUtXFx1MDAzZWZkaXJfZmlsdGVyX2NvdW50LS07XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9ldGh0b29sLmMtMzExLVxcdFxcdGRlbGV0ZWQgPSB0cnVlO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9ldGh0b29sLmMtMzI4LVxcdFxcdGhsaXN0X2FkZF9oZWFkKFxcdTAwMjZpbnB1dC1cXHUwMDNlZmRpcl9ub2RlLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfZXRodG9vbC5jOjMyOTpcXHRcXHRcXHQgICAgICAgXFx1MDAyNnR4Z2JlLVxcdTAwM2VmZGlyX2ZpbHRlcl9saXN0KTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2V0aHRvb2wuYy0zMzAtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9ldGh0b29sLmMtMzMxLVxcdC8qIHVwZGF0ZSBjb3VudHMgKi9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2V0aHRvb2wuYzozMzI6XFx0dHhnYmUtXFx1MDAzZWZkaXJfZmlsdGVyX2NvdW50Kys7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9ldGh0b29sLmMtMzMzLVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9ldGh0b29sLmMtMzM2LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfZXRodG9vbC5jOjMzNzpzdGF0aWMgaW50IHR4Z2JlX2FkZF9ldGh0b29sX2ZkaXJfZW50cnkoc3RydWN0IHR4Z2JlICp0eGdiZSxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2V0aHRvb2wuYy0zMzgtXFx0XFx0XFx0XFx0XFx0c3RydWN0IGV0aHRvb2xfcnhuZmMgKmNtZClcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfZXRodG9vbC5jLTM0MS1cXHRcXHQoc3RydWN0IGV0aHRvb2xfcnhfZmxvd19zcGVjICopXFx1MDAyNmNtZC1cXHUwMDNlZnM7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9ldGh0b29sLmM6MzQyOlxcdHN0cnVjdCB0eGdiZV9mZGlyX2ZpbHRlciAqaW5wdXQ7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9ldGh0b29sLmM6MzQzOlxcdHVuaW9uIHR4Z2JlX2F0cl9pbnB1dCBtYXNrO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfZXRodG9vbC5jOjM0NDpcXHRzdHJ1Y3Qgd3ggKnd4ID0gdHhnYmUtXFx1MDAzZXd4O1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfZXRodG9vbC5jLTM0NS1cXHRpbnQgZXJyID0gLUVJTlZBTDtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfZXRodG9vbC5jLTM1MS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2V0aHRvb2wuYzozNTI6XFx0LyogcmluZ19jb29raWUgaXMgYSBtYXNrZWQgaW50byBhIHNldCBvZiBxdWV1ZXMgYW5kIHR4Z2JlIHBvb2xzIG9yXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9ldGh0b29sLmMtMzUzLVxcdCAqIHdlIHVzZSBkcm9wIGluZGV4XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2V0aHRvb2wuYy0zODMtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9ldGh0b29sLmM6Mzg0OlxcdG1lbXNldChcXHUwMDI2bWFzaywgMCwgc2l6ZW9mKHVuaW9uIHR4Z2JlX2F0cl9pbnB1dCkpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfZXRodG9vbC5jLTM4NS1cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfZXRodG9vbC5jLTM4OS1cXHQvKiByZWNvcmQgZmxvdyB0eXBlICovXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9ldGh0b29sLmM6MzkwOlxcdGlmICh0eGdiZV9mbG93c3BlY190b19mbG93X3R5cGUoZnNwLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfZXRodG9vbC5jLTM5MS1cXHRcXHRcXHRcXHRcXHRcXHUwMDI2aW5wdXQtXFx1MDAzZWZpbHRlci5mb3JtYXR0ZWQuZmxvd190eXBlKSkge1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9ldGh0b29sLmMtNDUwLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfZXRodG9vbC5jOjQ1MTpcXHRzcGluX2xvY2soXFx1MDAyNnR4Z2JlLVxcdTAwM2VmZGlyX3BlcmZlY3RfbG9jayk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9ldGh0b29sLmMtNDUyLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfZXRodG9vbC5jOjQ1MzpcXHRpZiAoaGxpc3RfZW1wdHkoXFx1MDAyNnR4Z2JlLVxcdTAwM2VmZGlyX2ZpbHRlcl9saXN0KSkge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfZXRodG9vbC5jLTQ1NC1cXHRcXHQvKiBzYXZlIG1hc2sgYW5kIHByb2dyYW0gaW5wdXQgbWFzayBpbnRvIEhXICovXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9ldGh0b29sLmM6NDU1OlxcdFxcdG1lbWNweShcXHUwMDI2dHhnYmUtXFx1MDAzZWZkaXJfbWFzaywgXFx1MDAyNm1hc2ssIHNpemVvZihtYXNrKSk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9ldGh0b29sLmM6NDU2OlxcdFxcdGVyciA9IHR4Z2JlX2ZkaXJfc2V0X2lucHV0X21hc2sod3gsIFxcdTAwMjZtYXNrKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2V0aHRvb2wuYy00NTctXFx0XFx0aWYgKGVycilcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2V0aHRvb2wuYy00NTgtXFx0XFx0XFx0Z290byBlcnJfdW5sb2NrO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfZXRodG9vbC5jOjQ1OTpcXHR9IGVsc2UgaWYgKG1lbWNtcChcXHUwMDI2dHhnYmUtXFx1MDAzZWZkaXJfbWFzaywgXFx1MDAyNm1hc2ssIHNpemVvZihtYXNrKSkpIHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2V0aHRvb2wuYy00NjAtXFx0XFx0d3hfZXJyKHd4LCBcXFwiSGFyZHdhcmUgb25seSBzdXBwb3J0cyBvbmUgbWFzayBwZXIgcG9ydC4gVG8gY2hhbmdlIHRoZSBtYXNrIHlvdSBtdXN0IGZpcnN0IGRlbGV0ZSBhbGwgdGhlIHJ1bGVzLlxcXFxuXFxcIik7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2V0aHRvb2wuYy00NjQtXFx0LyogYXBwbHkgbWFzayBhbmQgY29tcHV0ZS9zdG9yZSBoYXNoICovXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9ldGh0b29sLmM6NDY1OlxcdHR4Z2JlX2F0cl9jb21wdXRlX3BlcmZlY3RfaGFzaChcXHUwMDI2aW5wdXQtXFx1MDAzZWZpbHRlciwgXFx1MDAyNm1hc2spO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfZXRodG9vbC5jLTQ2Ni1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2V0aHRvb2wuYy00NjctXFx0LyogY2hlY2sgaWYgbmV3IGVudHJ5IGRvZXMgbm90IGV4aXN0IG9uIGZpbHRlciBsaXN0ICovXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9ldGh0b29sLmM6NDY4OlxcdGlmICh0eGdiZV9tYXRjaF9ldGh0b29sX2ZkaXJfZW50cnkodHhnYmUsIGlucHV0KSlcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2V0aHRvb2wuYy00NjktXFx0XFx0Z290byBlcnJfdW5sb2NrO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9ldGh0b29sLmMtNDc1LVxcdGlmIChuZXRpZl9ydW5uaW5nKHd4LVxcdTAwM2VuZXRkZXYpKSB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9ldGh0b29sLmM6NDc2OlxcdFxcdGVyciA9IHR4Z2JlX2ZkaXJfd3JpdGVfcGVyZmVjdF9maWx0ZXIod3gsIFxcdTAwMjZpbnB1dC1cXHUwMDNlZmlsdGVyLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfZXRodG9vbC5jLTQ3Ny1cXHRcXHRcXHRcXHRcXHRcXHQgICAgICBpbnB1dC1cXHUwMDNlc3dfaWR4LCBxdWV1ZSk7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2V0aHRvb2wuYy00ODEtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9ldGh0b29sLmM6NDgyOlxcdHR4Z2JlX3VwZGF0ZV9ldGh0b29sX2ZkaXJfZW50cnkodHhnYmUsIGlucHV0LCBpbnB1dC1cXHUwMDNlc3dfaWR4KTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2V0aHRvb2wuYy00ODMtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9ldGh0b29sLmM6NDg0OlxcdHNwaW5fdW5sb2NrKFxcdTAwMjZ0eGdiZS1cXHUwMDNlZmRpcl9wZXJmZWN0X2xvY2spO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfZXRodG9vbC5jLTQ4NS1cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfZXRodG9vbC5jLTQ4Ny1lcnJfdW5sb2NrOlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfZXRodG9vbC5jOjQ4ODpcXHRzcGluX3VubG9jayhcXHUwMDI2dHhnYmUtXFx1MDAzZWZkaXJfcGVyZmVjdF9sb2NrKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2V0aHRvb2wuYy00ODktZXJyX291dDpcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfZXRodG9vbC5jLTQ5My1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2V0aHRvb2wuYzo0OTQ6c3RhdGljIGludCB0eGdiZV9kZWxfZXRodG9vbF9mZGlyX2VudHJ5KHN0cnVjdCB0eGdiZSAqdHhnYmUsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9ldGh0b29sLmMtNDk1LVxcdFxcdFxcdFxcdFxcdHN0cnVjdCBldGh0b29sX3J4bmZjICpjbWQpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2V0aHRvb2wuYy01MDAtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9ldGh0b29sLmM6NTAxOlxcdHNwaW5fbG9jayhcXHUwMDI2dHhnYmUtXFx1MDAzZWZkaXJfcGVyZmVjdF9sb2NrKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2V0aHRvb2wuYzo1MDI6XFx0ZXJyID0gdHhnYmVfdXBkYXRlX2V0aHRvb2xfZmRpcl9lbnRyeSh0eGdiZSwgTlVMTCwgZnNwLVxcdTAwM2Vsb2NhdGlvbik7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9ldGh0b29sLmM6NTAzOlxcdHNwaW5fdW5sb2NrKFxcdTAwMjZ0eGdiZS1cXHUwMDNlZmRpcl9wZXJmZWN0X2xvY2spO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfZXRodG9vbC5jLTUwNC1cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfZXRodG9vbC5jLTUwNy1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2V0aHRvb2wuYzo1MDg6c3RhdGljIGludCB0eGdiZV9zZXRfcnhuZmMoc3RydWN0IG5ldF9kZXZpY2UgKmRldiwgc3RydWN0IGV0aHRvb2xfcnhuZmMgKmNtZClcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2V0aHRvb2wuYy01MDkte1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfZXRodG9vbC5jLTUxMC1cXHRzdHJ1Y3Qgd3ggKnd4ID0gbmV0ZGV2X3ByaXYoZGV2KTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2V0aHRvb2wuYzo1MTE6XFx0c3RydWN0IHR4Z2JlICp0eGdiZSA9IHd4LVxcdTAwM2Vwcml2O1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfZXRodG9vbC5jLTUxMi1cXHRpbnQgcmV0ID0gLUVPUE5PVFNVUFA7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2V0aHRvb2wuYy01MTUtXFx0Y2FzZSBFVEhUT09MX1NSWENMU1JMSU5TOlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfZXRodG9vbC5jOjUxNjpcXHRcXHRyZXQgPSB0eGdiZV9hZGRfZXRodG9vbF9mZGlyX2VudHJ5KHR4Z2JlLCBjbWQpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfZXRodG9vbC5jLTUxNy1cXHRcXHRicmVhaztcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2V0aHRvb2wuYy01MTgtXFx0Y2FzZSBFVEhUT09MX1NSWENMU1JMREVMOlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfZXRodG9vbC5jOjUxOTpcXHRcXHRyZXQgPSB0eGdiZV9kZWxfZXRodG9vbF9mZGlyX2VudHJ5KHR4Z2JlLCBjbWQpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfZXRodG9vbC5jLTUyMC1cXHRcXHRicmVhaztcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfZXRodG9vbC5jPTUyOD1zdGF0aWMgaW50XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9ldGh0b29sLmM6NTI5OnR4Z2JlX2dldF9tb2R1bGVfZWVwcm9tX2J5X3BhZ2Uoc3RydWN0IG5ldF9kZXZpY2UgKm5ldGRldixcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2V0aHRvb2wuYy01MzAtXFx0XFx0XFx0XFx0Y29uc3Qgc3RydWN0IGV0aHRvb2xfbW9kdWxlX2VlcHJvbSAqcGFnZV9kYXRhLFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9ldGh0b29sLmMtNTMzLVxcdHN0cnVjdCB3eCAqd3ggPSBuZXRkZXZfcHJpdihuZXRkZXYpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfZXRodG9vbC5jOjUzNDpcXHRzdHJ1Y3QgdHhnYmVfaGljX2kyY19yZWFkIGJ1ZmZlcjtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2V0aHRvb2wuYy01MzUtXFx0aW50IGVycjtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfZXRodG9vbC5jLTU0NS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2V0aHRvb2wuYzo1NDY6XFx0ZXJyID0gdHhnYmVfcmVhZF9lZXByb21faG9zdGlmKHd4LCBcXHUwMDI2YnVmZmVyLCBwYWdlX2RhdGEtXFx1MDAzZWxlbmd0aCxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2V0aHRvb2wuYy01NDctXFx0XFx0XFx0XFx0ICAgICAgIHBhZ2VfZGF0YS1cXHUwMDNlZGF0YSk7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2V0aHRvb2wuYy01NTUtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9ldGh0b29sLmM6NTU2OnN0YXRpYyBjb25zdCBzdHJ1Y3QgZXRodG9vbF9vcHMgdHhnYmVfZXRodG9vbF9vcHMgPSB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9ldGh0b29sLmMtNTU3LVxcdC5zdXBwb3J0ZWRfY29hbGVzY2VfcGFyYW1zID0gRVRIVE9PTF9DT0FMRVNDRV9VU0VDUyB8XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2V0aHRvb2wuYy01NjItXFx0LmdldF9saW5rXFx0XFx0PSBldGh0b29sX29wX2dldF9saW5rLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfZXRodG9vbC5jOjU2MzpcXHQuZ2V0X2xpbmtfa3NldHRpbmdzXFx0PSB0eGdiZV9nZXRfbGlua19rc2V0dGluZ3MsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9ldGh0b29sLmMtNTY0LVxcdC5zZXRfbGlua19rc2V0dGluZ3NcXHQ9IHd4X3NldF9saW5rX2tzZXR0aW5ncyxcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfZXRodG9vbC5jLTU3Mi1cXHQuZ2V0X3JpbmdwYXJhbVxcdFxcdD0gd3hfZ2V0X3JpbmdwYXJhbSxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2V0aHRvb2wuYzo1NzM6XFx0LnNldF9yaW5ncGFyYW1cXHRcXHQ9IHR4Z2JlX3NldF9yaW5ncGFyYW0sXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9ldGh0b29sLmMtNTc0LVxcdC5nZXRfY29hbGVzY2VcXHRcXHQ9IHd4X2dldF9jb2FsZXNjZSxcXG4tLVxcblxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0yNFQwNzo1Njo1MS43MzE0MTc1ODVaIiwiU2VxIjo1LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo4NzY5MjU1MDEzLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJPa2F5LCBoZXJlJ3MgbXkgdGFrZSBvbiB0aG9zZSB0aG91Z2h0cywgZnJhbWVkIGFzIG15IG93bjpcblxuKipJbnZlc3RpZ2F0aW5nIHRoZSBXYW5neHVuIHR4Z2JlIERyaXZlcioqXG5cbkFscmlnaHQsIHRoZSBvdXRwdXQncyBpbmRpY2F0aW5nIGB0eGdiZWAgaXMgYSBkcml2ZXIgcmVsYXRlZCB0byBXYW5neHVuIGhhcmR3YXJlLiBNeSBmaXJzdCBpbnN0aW5jdCwgYXMgYWx3YXlzLCBpcyB0byBkaXZlIGludG8gdGhlIEtjb25maWcuIEkgbmVlZCB0byB1bmRlcnN0YW5kICpleGFjdGx5KiB3aGF0IGtpbmQgb2YgaGFyZHdhcmUgdGhpcyBkcml2ZXIgc3VwcG9ydHMuIElzIGl0IGEgc3BlY2lmaWMgTklDPyBBIHN3aXRjaD8gS25vd2luZyB0aGUgaGFyZHdhcmUgdGFyZ2V0IGlzIGNyaXRpY2FsIHRvIGFzc2VzcyB0aGUgZHJpdmVyJ3MgcHVycG9zZSwgY2FwYWJpbGl0aWVzLCBhbmQgZGVwZW5kZW5jaWVzLiBUaGUgS2NvbmZpZyBmaWxlIGlzIHRoZSBmaXJzdCBwbGFjZSBJJ2xsIGxvb2suIEl0J2xsIGdpdmUgbWUgdGhlIGNvbmZpZ3VyYXRpb24gb3B0aW9ucywgdGhlIGRlcGVuZGVuY2llcywgbWF5YmUgZXZlbiBzb21lIGNsdWVzIGFib3V0IHRoZSB1bmRlcmx5aW5nIGhhcmR3YXJlIGFyY2hpdGVjdHVyZSwgYW5kIHVsdGltYXRlbHksIGEgbXVjaCBiZXR0ZXIgdW5kZXJzdGFuZGluZyBvZiB3aGF0IHdlJ3JlIGRlYWxpbmcgd2l0aCBoZXJlLlxuXG5cbiIsIklucHV0VG9rZW5zIjoxOTQ5OSwiT3V0cHV0VG9rZW5zIjozOSwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjQyLCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTI0VDA3OjU3OjAwLjUwMDY3NTQ0OFoiLCJTZXEiOjYsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo0NTU3NjQ2OSwiRXJyb3IiOiJubyBtYXRjaGVzIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiY29uZmlnIFRYR0JFXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcImVycm9yXCI6IFwibm8gbWF0Y2hlc1wiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0yNFQwNzo1NzowMC41NDYyNjc0NTdaIiwiU2VxIjo3LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjoxNTA5NTE4MTg2OCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiSGVyZSdzIG15IGF0dGVtcHQgYXQgc3VtbWFyaXppbmcgdGhlIHRob3VnaHQgcHJvY2VzcywgdGFpbG9yZWQgZm9yIGFuIGV4cGVydCBhdWRpZW5jZTpcblxuKipLY29uZmlnIExvY2F0aW9uIC0gUXVpY2sgQXNzZXNzbWVudCoqXG5cbk9rYXksIHNvIEkgbmVlZCB0byBmaW5kIHRoZSBLY29uZmlnIGZpbGUgcmVsYXRlZCB0byBhIHNwZWNpZmljIEV0aGVybmV0IGRyaXZlciwgbGlrZWx5IGZvciBhIFdhbmd4dW4gZGV2aWNlLiBCYXNlZCBvbiBlc3RhYmxpc2hlZCBrZXJuZWwgY29kaW5nIGNvbnZlbnRpb25zLCBteSBmaXJzdCBpbnN0aW5jdCBpcyB0byBjaGVjayB0aGUgYGRyaXZlcnMvbmV0L2V0aGVybmV0YCBkaXJlY3RvcnksIHdoaWNoIGlzIHRoZSBtb3N0IGxvZ2ljYWwgcGxhY2UuIFNpbmNlIGl0J3MgYSB2ZW5kb3Itc3BlY2lmaWMgZHJpdmVyLCBJJ2QgZXhwZWN0IGEgdmVuZG9yLXNwZWNpZmljIHN1YmRpcmVjdG9yeS4gXCJXYW5neHVuXCIgaXMgdGhlIHZlbmRvciwgc28gdGhlIGZpbGUgaXMgKnByb2JhYmx5KiBpbiBgZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi9LY29uZmlnYC4gVGhhdCdzIHdoZXJlIEknZCBzdGFydC4gSXQncyB0aGUgbW9zdCBjb21tb24gYW5kIGludHVpdGl2ZSBsb2NhdGlvbiwgYWxpZ25pbmcgd2l0aCB0aGUgZ2VuZXJhbCBvcmdhbml6YXRpb24gcHJpbmNpcGxlcy4gVGhlcmUncyBhIGdvb2QgY2hhbmNlIGl0J3MgdGhlcmUsIGlmIG5vdCBJIGNhbiBnbyB3aXRoIGEgYGZpbmRgIGNvbW1hbmQgdG8gbmFycm93IGl0IGRvd24uXG5cblxuIiwiSW5wdXRUb2tlbnMiOjE5NzU2LCJPdXRwdXRUb2tlbnMiOjM1LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MjIsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDgtMjRUMDc6NTc6MTUuNjQxNDUyMjY1WiIsIlNlcSI6OCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjQ1MDEzMTkwLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcImNvbmZpZyBUWEdCRVwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJkcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJkcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL0tjb25maWc9Mjg9Y29uZmlnIE5HQkVcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vS2NvbmZpZy00Mi1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL0tjb25maWc6NDM6Y29uZmlnIFRYR0JFXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi9LY29uZmlnLTQ0LVxcdHRyaXN0YXRlIFxcXCJXYW5neHVuKFIpIDEwLzI1LzQwR2JFIFBDSSBFeHByZXNzIGFkYXB0ZXJzIHN1cHBvcnRcXFwiXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL0tjb25maWctNjYtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi9LY29uZmlnOjY3OmNvbmZpZyBUWEdCRVZGXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi9LY29uZmlnLTY4LVxcdHRyaXN0YXRlIFxcXCJXYW5neHVuKFIpIDEwLzI1LzQwRyBWaXJ0dWFsIEZ1bmN0aW9uIEV0aGVybmV0IHN1cHBvcnRcXFwiXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTI0VDA3OjU3OjE1LjY4NjQ3MTM4NVoiLCJTZXEiOjksIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjg5Mzc5Mjc4NjAsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqQW5hbHl6aW5nIHRoZSBQQ0kgRXhwcmVzcyBBZGFwdGVyIERyaXZlciBQYXRjaCoqXG5cbk9rYXksIHNvIHRoZSBwcm9tcHQgbWVudGlvbnMgXCJXYW5neHVuKFIpIDEwLzI1LzQwR2JFIFBDSSBFeHByZXNzIGFkYXB0ZXJzXCIg4oCTIHRoaXMgaXMgYSBwaHlzaWNhbCBQQ0llIGhhcmR3YXJlIGRyaXZlciwgc3BlY2lmaWNhbGx5IGB0eGdiZWAuIFRoZSBwcm9tcHQgZXhwbGljaXRseSB3YW50cyBtZSB0byByZXR1cm4gYFdvcnRoRnV6emluZz1mYWxzZWAgaWYgdGhlIHBhdGNoIGludm9sdmVzIGNvZGUgd2l0aGluIHZlbmRvci1zcGVjaWZpYyBQQ0llIGRyaXZlcnMgdGhhdCByZXF1aXJlIHBoeXNpY2FsIGhhcmR3YXJlIGFuZCBhcmVuJ3QgZW11bGF0ZWQgaW4gc3RhbmRhcmQgUUVNVS5cblxuTXkgaW1tZWRpYXRlIHRob3VnaHQgaXMsIFwiSXMgYHR4Z2JlYCBvbmUgb2YgdGhvc2U/XCIgQW5kIHllcywgaXQgY2xlYXJseSAqaXMqIGEgMTAvMjUvNDBHYkUgUENJZSBhZGFwdGVyIGRyaXZlci4gVGhlIGtleSBxdWVzdGlvbiB0aGVuIGlzLCBkb2VzIHN0YW5kYXJkIFFFTVUgZW11bGF0ZSBpdD8gQWJzb2x1dGVseSBub3QuIFFFTVUgaGFuZGxlcyBhIHJhbmdlIG9mIG5ldHdvcmsgY2FyZHMgbGlrZSBlMTAwMCwgaWdiLCB2aXJ0aW8tbmV0LCBldGMuLCBidXQgYFdhbmd4dW4gVFhHQkVgIGlzbid0IG9uIHRoYXQgbGlzdC4gSSBldmVuIGRvdWJsZS1jaGVja2VkIHRoZSB1c3VhbCBzdXNwZWN0cyBmb3IgUUVNVSBlbXVsYXRpb24uXG5cblRoZXJlZm9yZSwgYmVjYXVzZSB0aGlzIGRyaXZlciByZXF1aXJlcyBwaHlzaWNhbCBoYXJkd2FyZSwgYW5kIGlzICpub3QqIGVtdWxhdGVkIGluIHN0YW5kYXJkIFFFTVUsIHRoaXMgcGFydGljdWxhciBjb2RlIHBhdGggaXMgdW5yZWFjaGFibGUgaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgR29vZ2xlIENvbXB1dGUgRW5naW5lIG9yIFFFTVUuIEdpdmVuIHRoZSBwcm9tcHQncyBjb25kaXRpb24sIEkgc2hvdWxkIHJldHVybiBgV29ydGhGdXp6aW5nPWZhbHNlYC5cblxuSG93ZXZlciwgYmVmb3JlIEkgZGVmaW5pdGl2ZWx5IGNvbW1pdCwgSSBzaG91bGQgZG91YmxlLWNoZWNrIGFuZCBtYWtlIHN1cmUgdGhhdCBgbGlid3hgIGlzbid0IHVzZWQgYnkgc29tZXRoaW5nIGVsc2UuLi4ganVzdCB0byBiZSBjb21wbGV0ZWx5IGNlcnRhaW4uXG5cblxuIiwiSW5wdXRUb2tlbnMiOjIwMjExLCJPdXRwdXRUb2tlbnMiOjMzLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MzA5LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTI0VDA3OjU3OjI0LjYyNDQwMTY3NVoiLCJTZXEiOjEwLCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NDM5Nzg0NzAsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwibGlid3hcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi9cIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi9NYWtlZmlsZS01LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vTWFrZWZpbGU6NjpvYmotJChDT05GSUdfTElCV1gpICs9IGxpYnd4L1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vTWFrZWZpbGUtNy1vYmotJChDT05GSUdfVFhHQkUpICs9IHR4Z2JlL1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi9saWJ3eC9NYWtlZmlsZS00LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vbGlid3gvTWFrZWZpbGU6NTpvYmotJChDT05GSUdfTElCV1gpICs9IGxpYnd4Lm9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL2xpYnd4L01ha2VmaWxlLTYtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi9saWJ3eC9NYWtlZmlsZTo3OmxpYnd4LW9ianMgOj0gd3hfaHcubyB3eF9saWIubyB3eF9ldGh0b29sLm8gd3hfcHRwLm8gd3hfbWJ4Lm8gd3hfc3Jpb3Yub1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vbGlid3gvTWFrZWZpbGU6ODpsaWJ3eC1vYmpzICs9IHd4X3ZmLm8gd3hfdmZfbGliLm8gd3hfdmZfY29tbW9uLm9cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vbmdiZS9uZ2JlX2V0aHRvb2wuYy03LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vbmdiZS9uZ2JlX2V0aHRvb2wuYzo4OiNpbmNsdWRlIFxcXCIuLi9saWJ3eC93eF9ldGh0b29sLmhcXFwiXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi9uZ2JlL25nYmVfZXRodG9vbC5jOjk6I2luY2x1ZGUgXFxcIi4uL2xpYnd4L3d4X3R5cGUuaFxcXCJcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL25nYmUvbmdiZV9ldGh0b29sLmM6MTA6I2luY2x1ZGUgXFxcIi4uL2xpYnd4L3d4X2xpYi5oXFxcIlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vbmdiZS9uZ2JlX2V0aHRvb2wuYzoxMTojaW5jbHVkZSBcXFwiLi4vbGlid3gvd3hfaHcuaFxcXCJcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL25nYmUvbmdiZV9ldGh0b29sLmMtMTItI2luY2x1ZGUgXFxcIm5nYmVfZXRodG9vbC5oXFxcIlxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi9uZ2JlL25nYmVfaHcuYy03LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vbmdiZS9uZ2JlX2h3LmM6ODojaW5jbHVkZSBcXFwiLi4vbGlid3gvd3hfdHlwZS5oXFxcIlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vbmdiZS9uZ2JlX2h3LmM6OTojaW5jbHVkZSBcXFwiLi4vbGlid3gvd3hfaHcuaFxcXCJcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL25nYmUvbmdiZV9ody5jLTEwLSNpbmNsdWRlIFxcXCJuZ2JlX3R5cGUuaFxcXCJcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vbmdiZS9uZ2JlX21haW4uYy0xMy1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL25nYmUvbmdiZV9tYWluLmM6MTQ6I2luY2x1ZGUgXFxcIi4uL2xpYnd4L3d4X3R5cGUuaFxcXCJcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL25nYmUvbmdiZV9tYWluLmM6MTU6I2luY2x1ZGUgXFxcIi4uL2xpYnd4L3d4X2h3LmhcXFwiXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi9uZ2JlL25nYmVfbWFpbi5jOjE2OiNpbmNsdWRlIFxcXCIuLi9saWJ3eC93eF9saWIuaFxcXCJcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL25nYmUvbmdiZV9tYWluLmM6MTc6I2luY2x1ZGUgXFxcIi4uL2xpYnd4L3d4X3B0cC5oXFxcIlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vbmdiZS9uZ2JlX21haW4uYzoxODojaW5jbHVkZSBcXFwiLi4vbGlid3gvd3hfbWJ4LmhcXFwiXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi9uZ2JlL25nYmVfbWFpbi5jOjE5OiNpbmNsdWRlIFxcXCIuLi9saWJ3eC93eF9zcmlvdi5oXFxcIlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vbmdiZS9uZ2JlX21haW4uYy0yMC0jaW5jbHVkZSBcXFwibmdiZV90eXBlLmhcXFwiXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL25nYmUvbmdiZV9tZGlvLmMtOC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL25nYmUvbmdiZV9tZGlvLmM6OTojaW5jbHVkZSBcXFwiLi4vbGlid3gvd3hfdHlwZS5oXFxcIlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vbmdiZS9uZ2JlX21kaW8uYzoxMDojaW5jbHVkZSBcXFwiLi4vbGlid3gvd3hfcHRwLmhcXFwiXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi9uZ2JlL25nYmVfbWRpby5jOjExOiNpbmNsdWRlIFxcXCIuLi9saWJ3eC93eF9ody5oXFxcIlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vbmdiZS9uZ2JlX21kaW8uYzoxMjojaW5jbHVkZSBcXFwiLi4vbGlid3gvd3hfc3Jpb3YuaFxcXCJcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL25nYmUvbmdiZV9tZGlvLmMtMTMtI2luY2x1ZGUgXFxcIm5nYmVfdHlwZS5oXFxcIlxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi9uZ2JldmYvbmdiZXZmX21haW4uYy0xMC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL25nYmV2Zi9uZ2JldmZfbWFpbi5jOjExOiNpbmNsdWRlIFxcXCIuLi9saWJ3eC93eF90eXBlLmhcXFwiXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi9uZ2JldmYvbmdiZXZmX21haW4uYzoxMjojaW5jbHVkZSBcXFwiLi4vbGlid3gvd3hfaHcuaFxcXCJcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL25nYmV2Zi9uZ2JldmZfbWFpbi5jOjEzOiNpbmNsdWRlIFxcXCIuLi9saWJ3eC93eF9saWIuaFxcXCJcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL25nYmV2Zi9uZ2JldmZfbWFpbi5jOjE0OiNpbmNsdWRlIFxcXCIuLi9saWJ3eC93eF9tYnguaFxcXCJcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL25nYmV2Zi9uZ2JldmZfbWFpbi5jOjE1OiNpbmNsdWRlIFxcXCIuLi9saWJ3eC93eF92Zi5oXFxcIlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vbmdiZXZmL25nYmV2Zl9tYWluLmM6MTY6I2luY2x1ZGUgXFxcIi4uL2xpYnd4L3d4X3ZmX2NvbW1vbi5oXFxcIlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vbmdiZXZmL25nYmV2Zl9tYWluLmM6MTc6I2luY2x1ZGUgXFxcIi4uL2xpYnd4L3d4X2V0aHRvb2wuaFxcXCJcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL25nYmV2Zi9uZ2JldmZfbWFpbi5jLTE4LSNpbmNsdWRlIFxcXCJuZ2JldmZfdHlwZS5oXFxcIlxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9hbWwuYy04LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfYW1sLmM6OTojaW5jbHVkZSBcXFwiLi4vbGlid3gvd3hfdHlwZS5oXFxcIlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfYW1sLmM6MTA6I2luY2x1ZGUgXFxcIi4uL2xpYnd4L3d4X2xpYi5oXFxcIlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfYW1sLmM6MTE6I2luY2x1ZGUgXFxcIi4uL2xpYnd4L3d4X3B0cC5oXFxcIlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfYW1sLmM6MTI6I2luY2x1ZGUgXFxcIi4uL2xpYnd4L3d4X2h3LmhcXFwiXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9hbWwuYzoxMzojaW5jbHVkZSBcXFwiLi4vbGlid3gvd3hfc3Jpb3YuaFxcXCJcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2FtbC5jLTE0LSNpbmNsdWRlIFxcXCJ0eGdiZV90eXBlLmhcXFwiXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2V0aHRvb2wuYy03LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfZXRodG9vbC5jOjg6I2luY2x1ZGUgXFxcIi4uL2xpYnd4L3d4X2V0aHRvb2wuaFxcXCJcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2V0aHRvb2wuYzo5OiNpbmNsdWRlIFxcXCIuLi9saWJ3eC93eF90eXBlLmhcXFwiXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9ldGh0b29sLmM6MTA6I2luY2x1ZGUgXFxcIi4uL2xpYnd4L3d4X2xpYi5oXFxcIlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfZXRodG9vbC5jLTExLSNpbmNsdWRlIFxcXCJ0eGdiZV90eXBlLmhcXFwiXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2ZkaXIuYy03LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfZmRpci5jOjg6I2luY2x1ZGUgXFxcIi4uL2xpYnd4L3d4X3R5cGUuaFxcXCJcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2ZkaXIuYzo5OiNpbmNsdWRlIFxcXCIuLi9saWJ3eC93eF9saWIuaFxcXCJcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2ZkaXIuYzoxMDojaW5jbHVkZSBcXFwiLi4vbGlid3gvd3hfaHcuaFxcXCJcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2ZkaXIuYy0xMS0jaW5jbHVkZSBcXFwidHhnYmVfdHlwZS5oXFxcIlxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9ody5jLTEwLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfaHcuYzoxMTojaW5jbHVkZSBcXFwiLi4vbGlid3gvd3hfdHlwZS5oXFxcIlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfaHcuYzoxMjojaW5jbHVkZSBcXFwiLi4vbGlid3gvd3hfaHcuaFxcXCJcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2h3LmMtMTMtI2luY2x1ZGUgXFxcInR4Z2JlX3R5cGUuaFxcXCJcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfaXJxLmMtNi1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2lycS5jOjc6I2luY2x1ZGUgXFxcIi4uL2xpYnd4L3d4X3R5cGUuaFxcXCJcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2lycS5jOjg6I2luY2x1ZGUgXFxcIi4uL2xpYnd4L3d4X2xpYi5oXFxcIlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfaXJxLmM6OTojaW5jbHVkZSBcXFwiLi4vbGlid3gvd3hfcHRwLmhcXFwiXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9pcnEuYzoxMDojaW5jbHVkZSBcXFwiLi4vbGlid3gvd3hfaHcuaFxcXCJcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2lycS5jOjExOiNpbmNsdWRlIFxcXCIuLi9saWJ3eC93eF9zcmlvdi5oXFxcIlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfaXJxLmMtMTItI2luY2x1ZGUgXFxcInR4Z2JlX3R5cGUuaFxcXCJcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfbWFpbi5jLTE0LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfbWFpbi5jOjE1OiNpbmNsdWRlIFxcXCIuLi9saWJ3eC93eF90eXBlLmhcXFwiXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9tYWluLmM6MTY6I2luY2x1ZGUgXFxcIi4uL2xpYnd4L3d4X2xpYi5oXFxcIlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfbWFpbi5jOjE3OiNpbmNsdWRlIFxcXCIuLi9saWJ3eC93eF9wdHAuaFxcXCJcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX21haW4uYzoxODojaW5jbHVkZSBcXFwiLi4vbGlid3gvd3hfaHcuaFxcXCJcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX21haW4uYzoxOTojaW5jbHVkZSBcXFwiLi4vbGlid3gvd3hfbWJ4LmhcXFwiXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9tYWluLmM6MjA6I2luY2x1ZGUgXFxcIi4uL2xpYnd4L3d4X3NyaW92LmhcXFwiXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9tYWluLmMtMjEtI2luY2x1ZGUgXFxcInR4Z2JlX3R5cGUuaFxcXCJcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfcGh5LmMtMTUtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9waHkuYzoxNjojaW5jbHVkZSBcXFwiLi4vbGlid3gvd3hfdHlwZS5oXFxcIlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfcGh5LmM6MTc6I2luY2x1ZGUgXFxcIi4uL2xpYnd4L3d4X2xpYi5oXFxcIlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfcGh5LmM6MTg6I2luY2x1ZGUgXFxcIi4uL2xpYnd4L3d4X3B0cC5oXFxcIlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfcGh5LmM6MTk6I2luY2x1ZGUgXFxcIi4uL2xpYnd4L3d4X3NyaW92LmhcXFwiXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9waHkuYzoyMDojaW5jbHVkZSBcXFwiLi4vbGlid3gvd3hfbWJ4LmhcXFwiXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9waHkuYzoyMTojaW5jbHVkZSBcXFwiLi4vbGlid3gvd3hfaHcuaFxcXCJcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX3BoeS5jLTIyLSNpbmNsdWRlIFxcXCJ0eGdiZV90eXBlLmhcXFwiXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX3R5cGUuaC05LSNpbmNsdWRlIFxcdTAwM2NsaW51eC9waHkuaFxcdTAwM2VcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX3R5cGUuaDoxMDojaW5jbHVkZSBcXFwiLi4vbGlid3gvd3hfdHlwZS5oXFxcIlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfdHlwZS5oLTExLVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZXZmL3R4Z2JldmZfbWFpbi5jLTEwLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmV2Zi90eGdiZXZmX21haW4uYzoxMTojaW5jbHVkZSBcXFwiLi4vbGlid3gvd3hfdHlwZS5oXFxcIlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmV2Zi90eGdiZXZmX21haW4uYzoxMjojaW5jbHVkZSBcXFwiLi4vbGlid3gvd3hfaHcuaFxcXCJcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JldmYvdHhnYmV2Zl9tYWluLmM6MTM6I2luY2x1ZGUgXFxcIi4uL2xpYnd4L3d4X2xpYi5oXFxcIlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmV2Zi90eGdiZXZmX21haW4uYzoxNDojaW5jbHVkZSBcXFwiLi4vbGlid3gvd3hfbWJ4LmhcXFwiXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZXZmL3R4Z2JldmZfbWFpbi5jOjE1OiNpbmNsdWRlIFxcXCIuLi9saWJ3eC93eF92Zi5oXFxcIlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmV2Zi90eGdiZXZmX21haW4uYzoxNjojaW5jbHVkZSBcXFwiLi4vbGlid3gvd3hfdmZfY29tbW9uLmhcXFwiXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZXZmL3R4Z2JldmZfbWFpbi5jOjE3OiNpbmNsdWRlIFxcXCIuLi9saWJ3eC93eF9ldGh0b29sLmhcXFwiXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZXZmL3R4Z2JldmZfbWFpbi5jLTE4LSNpbmNsdWRlIFxcXCJ0eGdiZXZmX3R5cGUuaFxcXCJcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMjRUMDc6NTc6MjQuNjY4Mzg1MTY1WiIsIlNlcSI6MTEsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjkzMzc2OTI1MzUsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqVW5yZWFjaGFibGUgQ29kZSBEZXRlY3Rpb24gZm9yIFdhbmd4dW4gUENJZSBBZGFwdGVycyoqXG5cbk9rYXksIHNvIEkndmUgYmVlbiBsb29raW5nIGF0IHRoaXMgY29kZSBhbmQgSSd2ZSBjb21lIHRvIGEgcHJldHR5IGRlZmluaXRpdmUgY29uY2x1c2lvbi4gVGhlIGBsaWJ3eGAgbGlicmFyeSBpcyBjbGVhcmx5IGxpbmtlZCBhbmQgdXNlZCBieSBhIGNsdXN0ZXIgb2YgV2FuZ3h1biBQQ0llIGFkYXB0ZXIgZHJpdmVycyDigJMgYG5nYmVgLCBgbmdiZXZmYCwgYHR4Z2JlYCwgYW5kIGB0eGdiZXZmYC4gVGhhdCdzIHRoZSBzZXR1cC4gSG93ZXZlciwgbm9uZSBvZiB0aGVzZSBzcGVjaWZpYyBXYW5neHVuIFBDSWUgYWRhcHRlcnMgYXJlLCBhcyBmYXIgYXMgSSBjYW4gdGVsbCwgZW11bGF0ZWQgd2l0aGluIGEgUUVNVSBlbnZpcm9ubWVudC4gVGhpcyBpcyB0aGUgY3JpdGljYWwgcGllY2Ugb2YgaW5mb3JtYXRpb24uIFNpbmNlIHRoZSB1bmRlcmx5aW5nIGhhcmR3YXJlIHRoYXQgdGhpcyBjb2RlIGludGVyYWN0cyB3aXRoIGRvZXNuJ3QgZXhpc3QgaW4gYSB2aXJ0dWFsaXplZCBjb250ZXh0LCBhbnkgY29kZSBwYXRoIHNwZWNpZmljYWxseSByZWxhdGVkIHRvIGl0IGJlY29tZXMsIGVmZmVjdGl2ZWx5LCB1bnJlYWNoYWJsZSBkdXJpbmcgZnV6emluZyBvciB0ZXN0aW5nIHdpdGhpbiBRRU1VLiBHaXZlbiBteSBleHBlcmllbmNlLCBwdXJzdWluZyB0aGlzIGZ1cnRoZXIgd291bGQgYmUgYSB3YXN0ZSBvZiByZXNvdXJjZXMuIFRoZXJlZm9yZSwgSSB3aWxsIHJldHVybiBgV29ydGhGdXp6aW5nPWZhbHNlYC4gSXTigJlzIHNpbXBseSBub3QgYSB3b3J0aHdoaWxlIHRhcmdldCBpbiB0aGUgY3VycmVudCBlbnZpcm9ubWVudC5cblxuXG4iLCJJbnB1dFRva2VucyI6MjQzODIsIk91dHB1dFRva2VucyI6OTMsIk91dHB1dFRob3VnaHRzVG9rZW5zIjo3NCwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wOC0yNFQwNzo1NzozNC4wMDYwODA2NzlaIiwiU2VxIjoxMiwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoic2V0LXJlc3VsdHMiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjozMjAyMCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogW10sXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBtb2RpZmllcyBjb2RlIGluIHRoZSBXYW5neHVuIFRYR0JFIGFuZCBOR0JFIGV0aGVybmV0IGRyaXZlcnMuIFRoZXNlIGFyZSBkcml2ZXJzIGZvciBwaHlzaWNhbCBQQ0llIGhhcmR3YXJlIGFkYXB0ZXJzIHRoYXQgYXJlIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBRRU1VIG9yIEdDRS4gVGhlcmVmb3JlLCB0aGUgbW9kaWZpZWQgY29kZSBwYXRocyBjYW5ub3QgYmUgcmVhY2hlZCBvciBmdXp6ZWQgaW4gdGhlc2UgZW52aXJvbm1lbnRzLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiBmYWxzZVxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBudWxsLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggbW9kaWZpZXMgY29kZSBpbiB0aGUgV2FuZ3h1biBUWEdCRSBhbmQgTkdCRSBldGhlcm5ldCBkcml2ZXJzLiBUaGVzZSBhcmUgZHJpdmVycyBmb3IgcGh5c2ljYWwgUENJZSBoYXJkd2FyZSBhZGFwdGVycyB0aGF0IGFyZSBub3QgZW11bGF0ZWQgaW4gc3RhbmRhcmQgdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgUUVNVSBvciBHQ0UuIFRoZXJlZm9yZSwgdGhlIG1vZGlmaWVkIGNvZGUgcGF0aHMgY2Fubm90IGJlIHJlYWNoZWQgb3IgZnV6emVkIGluIHRoZXNlIGVudmlyb25tZW50cy5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogZmFsc2Vcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTI0VDA3OjU3OjM0LjAwNjExNjk5OVoiLCJTZXEiOjEzLCJOZXN0aW5nIjoxLCJUeXBlIjoiYWN0aW9uIiwiTmFtZSI6IklmIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6Mjc0OSwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIldvcnRoRnV6emluZ1wiOiBmYWxzZVxufSIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH1dOwoJCQlpZiAoIXJhd0RhdGEgfHwgcmF3RGF0YS5sZW5ndGggPT09IDApIHJldHVybjsKCgkJCWRyYXdTdW1tYXJ5VGFibGVzKHJhd0RhdGEpOwoJCQlkcmF3RHVyYXRpb25DaGFydChyYXdEYXRhKTsKCQkJZHJhd1Rva2VuQ29uc3VtcHRpb25DaGFydChyYXdEYXRhKTsKCQl9CgoJCWZ1bmN0aW9uIGRyYXdTdW1tYXJ5VGFibGVzKHJhd0RhdGEpIHsKCQkJY29uc3Qgc3RhdHMgPSB7CgkJCQlsbG06IHsgY291bnQ6IDAsIHRva2VuczogMCwgZHVyYXRpb246IDAgfSwKCQkJCXRvb2w6IHsgY291bnQ6IDAsIGR1cmF0aW9uOiAwIH0KCQkJfTsKCgkJCXJhd0RhdGEuZm9yRWFjaChzID0+IHsKCQkJCWNvbnN0IGR1ciA9IHMuRHVyYXRpb24gLyAxMDAwMDAwMDAwOyAKCQkJCWlmIChzLlR5cGUgPT09ICJsbG0iKSB7CgkJCQkJc3RhdHMubGxtLmNvdW50Kys7CgkJCQkJc3RhdHMubGxtLnRva2VucyArPSAocy5JbnB1dFRva2VucyArIHMuT3V0cHV0VG9rZW5zICsgcy5PdXRwdXRUaG91Z2h0c1Rva2Vucyk7CgkJCQkJc3RhdHMubGxtLmR1cmF0aW9uICs9IGR1cjsKCQkJCX0gZWxzZSBpZiAocy5UeXBlID09PSAidG9vbCIpIHsKCQkJCQlzdGF0cy50b29sLmNvdW50Kys7CgkJCQkJc3RhdHMudG9vbC5kdXJhdGlvbiArPSBkdXI7CgkJCQl9CgkJCX0pOwoKCQkJY29uc3QgYXZnTGxtRHVyID0gc3RhdHMubGxtLmNvdW50ID4gMCA/IChzdGF0cy5sbG0uZHVyYXRpb24gLyBzdGF0cy5sbG0uY291bnQpLnRvRml4ZWQoMikgOiAwOwoJCQljb25zdCBhdmdMbG1Ub2tlbiA9IHN0YXRzLmxsbS5jb3VudCA+IDAgPyAoc3RhdHMubGxtLnRva2VucyAvIHN0YXRzLmxsbS5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgkJCWNvbnN0IGF2Z1Rvb2xEdXIgPSBzdGF0cy50b29sLmNvdW50ID4gMCA/IChzdGF0cy50b29sLmR1cmF0aW9uIC8gc3RhdHMudG9vbC5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgoJCQljb25zdCBsbG1TdW1hcnlDZWxscyA9IFtzdGF0cy5sbG0uY291bnQsIHN0YXRzLmxsbS50b2tlbnMsIGF2Z0xsbVRva2VuLCBzdGF0cy5sbG0uZHVyYXRpb24sIGF2Z0xsbUR1cl07CgkJCWNvbnN0IHRvb2xTdW1tYXJ5Q2VsbHMgPSBbc3RhdHMudG9vbC5jb3VudCwgc3RhdHMudG9vbC5kdXJhdGlvbiwgYXZnVG9vbER1cl07CgoJCQljb25zdCBsbG1TdW1tYXJ5Qm9keSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdsbG1fc3VtbWFyeV9zdGF0c19ib2R5Jyk7CgkJCWxsbVN1bW1hcnlCb2R5LmlubmVySFRNTCA9ICIiOwoJCQljb25zdCBsbG1UciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RyJyk7CgkJCWxsbVN1bWFyeUNlbGxzLmZvckVhY2goY2VsbCA9PiB7CgkJCQljb25zdCB0ZCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RkJyk7CgkJCQl0ZC50ZXh0Q29udGVudCA9IGNlbGw7CgkJCQlsbG1Uci5hcHBlbmRDaGlsZCh0ZCk7CgkJCX0pOwoJCQlsbG1TdW1tYXJ5Qm9keS5hcHBlbmRDaGlsZChsbG1Ucik7CgoJCQljb25zdCB0b29sU3VtbWFyeUJvZHkgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndG9vbF9zdW1tYXJ5X3N0YXRzX2JvZHknKTsKCQkJdG9vbFN1bW1hcnlCb2R5LmlubmVySFRNTCA9ICIiOwoJCQljb25zdCB0b29sVHIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0cicpOwoJCQl0b29sU3VtbWFyeUNlbGxzLmZvckVhY2goY2VsbCA9PiB7CgkJCQljb25zdCB0ZCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RkJyk7CgkJCQl0ZC50ZXh0Q29udGVudCA9IGNlbGw7CgkJCQl0b29sVHIuYXBwZW5kQ2hpbGQodGQpOwoJCQl9KTsKCQkJdG9vbFN1bW1hcnlCb2R5LmFwcGVuZENoaWxkKHRvb2xUcik7CgkJfQoKCQlmdW5jdGlvbiBkcmF3RHVyYXRpb25DaGFydChyYXdEYXRhKSB7CgkJCWNvbnN0IGZpbHRlcmVkU3RlcHMgPSByYXdEYXRhLmZpbHRlcihkID0+IFsibGxtIiwgInRvb2wiXS5pbmNsdWRlcyhkLlR5cGUpKTsKCQkJY29uc3QgZGF0YSA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5EYXRhVGFibGUoKTsKCQkJZGF0YS5hZGRDb2x1bW4oJ3N0cmluZycsICdTdGVwJyk7CgkJCWRhdGEuYWRkQ29sdW1uKCdudW1iZXInLCAnRHVyYXRpb24nKTsKCQkJZGF0YS5hZGRDb2x1bW4oe3R5cGU6ICdzdHJpbmcnLCByb2xlOiAndG9vbHRpcCd9KTsgCgoJCQlmaWx0ZXJlZFN0ZXBzLmZvckVhY2gocyA9PiB7CgkJCQkKCQkJCWNvbnN0IGR1ciA9IHMuRHVyYXRpb24gLyAxMDAwMDAwMDAwOwoJCQkJbGV0IHRvb2x0aXAgPSBzLk5hbWU7CgkJCQlpZiAocy5UeXBlID09PSAibGxtIiAmJiBzLlRvb2xDYWxscyAmJiBzLlRvb2xDYWxscy5sZW5ndGggPiAwKSB7CgkJCQkJdG9vbHRpcCArPSBgXG5Ub29sczogJHtzLlRvb2xDYWxscy5qb2luKCcsICcpfWA7CgkJCQl9CgkJCQlkYXRhLmFkZFJvdyhbYCR7cy5TZXF9YCwgZHVyLCB0b29sdGlwXSk7CgkJCX0pOwoKCQkJY29uc3Qgb3B0aW9ucyA9IHsKCQkJCXRpdGxlOiAnVGltZSBDb25zdW1wdGlvbiBvZiBMTE0vVG9vbCBDYWxscycsCgkJCQloQXhpczogewoJCQkJCXRpdGxlOiAnTExNL1Rvb2wgU3RlcHMnLAoJCQkJfSwKCQkJCXZBeGlzOiB7IHRpdGxlOiAnU2Vjb25kcycgfSwKCQkJCWxlZ2VuZDogeyBwb3NpdGlvbjogJ25vbmUnIH0sCgkJCQliYXI6IHsgZ3JvdXBXaWR0aDogJzc1JScgfSwKCQkJCWNoYXJ0QXJlYTogeyB3aWR0aDogJzg1JScsIGhlaWdodDogJzcwJScgfSwKCQkJCWhlaWdodDogNDAwCgkJCX07CgoJCQljb25zdCBjaGFydCA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5Db2x1bW5DaGFydChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZHVyYXRpb25fY2hhcnRfZGl2JykpOwoJCQljaGFydC5kcmF3KGRhdGEsIG9wdGlvbnMpOwoJCX0KCgkJZnVuY3Rpb24gZHJhd1Rva2VuQ29uc3VtcHRpb25DaGFydChyYXdEYXRhKSB7CgkJCWNvbnN0IGxsbVN0ZXBzID0gcmF3RGF0YS5maWx0ZXIoZCA9PiBkLlR5cGUgPT09ICJsbG0iKTsKCQkJaWYgKGxsbVN0ZXBzLmxlbmd0aCA9PT0gMCkgcmV0dXJuOwoKCQkJY29uc3QgZGF0YSA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5EYXRhVGFibGUoKTsKCQkJZGF0YS5hZGRDb2x1bW4oJ3N0cmluZycsICdTdGVwJyk7CQkJCgkJCWRhdGEuYWRkQ29sdW1uKCdudW1iZXInLCAnVG9rZW5zJyk7CQkJCgkJCWRhdGEuYWRkQ29sdW1uKHt0eXBlOiAnc3RyaW5nJywgcm9sZTogJ3N0eWxlJ30pOwkKCQkJZGF0YS5hZGRDb2x1bW4oe3R5cGU6ICdzdHJpbmcnLCByb2xlOiAndG9vbHRpcCd9KTsJCgoJCQljb25zdCBhZ2VudENvbG9ycyA9IHt9OwoJCQljb25zdCBwYWxldHRlID0gWycjNDI4NUY0JywgJyNEQjQ0MzcnLCAnI0Y0QjQwMCcsICcjMEY5RDU4JywgJyNBQjQ3QkMnLCAnIzAwQUNDMSddOwoJCQlsZXQgY29sb3JJZHggPSAwOwoJCQljb25zdCBhZ2VudExMTUNvdW50cyA9IHt9OwoJCQlsbG1TdGVwcy5mb3JFYWNoKHMgPT4gewoJCQkJaWYgKCFhZ2VudENvbG9yc1tzLk5hbWVdKSB7CgkJCQkJYWdlbnRDb2xvcnNbcy5OYW1lXSA9IHBhbGV0dGVbY29sb3JJZHggJSBwYWxldHRlLmxlbmd0aF07CgkJCQkJY29sb3JJZHgrKzsKCQkJCX0KCgkJCQlhZ2VudExMTUNvdW50c1tzLk5hbWVdID0gKGFnZW50TExNQ291bnRzW3MuTmFtZV0gfHwgMCkgKyAxOwoJCQkJY29uc3QgbGFiZWwgPSBgJHtzLk5hbWV9LSR7YWdlbnRMTE1Db3VudHNbcy5OYW1lXX1gOwoJCQkJY29uc3QgdG90YWxUb2tlbnMgPSBzLklucHV0VG9rZW5zICsgcy5PdXRwdXRUb2tlbnMgKyBzLk91dHB1dFRob3VnaHRzVG9rZW5zOwoJCQkJY29uc3Qgc3R5bGUgPSBgY29sb3I6ICR7YWdlbnRDb2xvcnNbcy5OYW1lXX1gOwoJCQkJbGV0IHRvb2x0aXAgPSBgVG90YWwgVG9rZW5zOiAke3RvdGFsVG9rZW5zfVxuKEluOiAke3MuSW5wdXRUb2tlbnN9LCBPdXQ6ICR7cy5PdXRwdXRUb2tlbnN9LCBUaG91Z2h0czogJHtzLk91dHB1dFRob3VnaHRzVG9rZW5zfSlgOwoJCQkJaWYgKHMuVG9vbENhbGxzICYmIHMuVG9vbENhbGxzLmxlbmd0aCA+IDApIHsKCQkJCQl0b29sdGlwICs9IGBcblRvb2xzOiAke3MuVG9vbENhbGxzLmpvaW4oJywgJyl9YDsKCQkJCX0KCgkJCQlkYXRhLmFkZFJvdyhbbGFiZWwsIHRvdGFsVG9rZW5zLCBzdHlsZSwgdG9vbHRpcF0pOwoJCQl9KTsKCgkJCWNvbnN0IG9wdGlvbnMgPSB7CgkJCQl0aXRsZTogJ1Rva2VuIENvbnN1bXB0aW9uIGJ5IExMTSBDYWxscycsCgkJCQloQXhpczogewoJCQkJCXRpdGxlOiAnTExNIENhbGwgU2VxdWVuY2UnLAoJCQkJfSwKCQkJCXZBeGlzOiB7IHRpdGxlOiAnQ29uc3VtZWQgVG9rZW5zJyB9LAoJCQkJbGVnZW5kOiB7IHBvc2l0aW9uOiAnbm9uZScgfSwKCQkJCWJhcjogeyBncm91cFdpZHRoOiAnNzUlJyB9LAoJCQkJY2hhcnRBcmVhOiB7IHdpZHRoOiAnODUlJywgaGVpZ2h0OiAnNzAlJyB9LAoJCQkJaGVpZ2h0OiA0MDAKCQkJfTsKCgkJCWNvbnN0IGNoYXJ0ID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkNvbHVtbkNoYXJ0KGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0b2tlbl9jaGFydF9kaXYnKSk7CgkJCWNoYXJ0LmRyYXcoZGF0YSwgb3B0aW9ucyk7CgkJfQoJCWxldCBhbGxFeHBhbmRlZCA9IGZhbHNlOwoJCWZ1bmN0aW9uIHRvZ2dsZUFsbERldGFpbHMoKSB7CgkJCWFsbEV4cGFuZGVkID0gIWFsbEV4cGFuZGVkOwoJCQlkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCdkZXRhaWxzJykuZm9yRWFjaChkID0+IHsKCQkJCWlmIChhbGxFeHBhbmRlZCkgZC5zZXRBdHRyaWJ1dGUoJ29wZW4nLCAnJyk7CgkJCQllbHNlIGQucmVtb3ZlQXR0cmlidXRlKCdvcGVuJyk7CgkJCX0pOwoJCX0KCTwvc2NyaXB0PgoKCjwvYm9keT4KPC9odG1sPgo=" },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-workflowwvxnn[1] Phase: Running StartedAt: 2026-08-24 07:57:45 +0000 UTC FinishedAt: 0001-01-01 00:00:00 +0000 UTC Input: nil Output: nil --------- Name: series-workflowwvxnn[1].abort-on-skip-outcome Phase: Failed StartedAt: 2026-08-24 07:57:45 +0000 UTC FinishedAt: 2026-08-24 07:58:03 +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,}