Name: series-workflowgstwm Phase: Failed StartedAt: 2026-08-31 17:41:57 +0000 UTC FinishedAt: 2026-08-31 18:16:52 +0000 UTC Input: nil Output: nil --------- Name: series-workflowgstwm[0] Phase: Succeeded StartedAt: 2026-08-31 17:41:57 +0000 UTC FinishedAt: 2026-08-31 18:16:42 +0000 UTC Input: nil Output: nil --------- Name: series-workflowgstwm[0].run-triage Phase: Succeeded StartedAt: 2026-08-31 17:41:57 +0000 UTC FinishedAt: 2026-08-31 18:16:42 +0000 UTC Input: nil Output: &Outputs{Parameters:[]Parameter{Parameter{Name:result,Default:nil,Value:*{ "skip_reason": "AI determined the patch has no functional impact", "targets": null, "trajectory": "CjwhZG9jdHlwZSBodG1sPgo8aHRtbD4KPGhlYWQ+Cgk8dGl0bGU+QUkgVHJhamVjdG9yeTwvdGl0bGU+Cgk8c3R5bGU+CgkJdGFibGUgewoJCQlib3JkZXI6IDFweCBzb2xpZCAjY2NjOwoJCQltYXJnaW46IDIwcHggNXB4OwoJCQlib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlOwoJCQl3aGl0ZS1zcGFjZTogbm93cmFwOwoJCQl0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsKCQkJb3ZlcmZsb3c6IGhpZGRlbjsKCQl9CgoJCXRhYmxlIGNhcHRpb24gewoJCQlmb250LXdlaWdodDogYm9sZDsKCQl9CgoJCXRhYmxlIHRkLCB0YWJsZSB0aCB7CgkJCXZlcnRpY2FsLWFsaWduOiB0b3A7CgkJCXBhZGRpbmc6IDJweCA4cHg7CgkJCXRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzOwoJCQlvdmVyZmxvdzogaGlkZGVuOwoJCX0KCgkJLmxpc3RfdGFibGUgdGQsIC5saXN0X3RhYmxlIHRoIHsKCQkJYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCAjY2NjOwoJCX0KCgkJLmxpc3RfdGFibGUgdGggewoJCQliYWNrZ3JvdW5kOiAjRjRGNEY0OwoJCX0KCgkJLmxpc3RfdGFibGUgdHI6bnRoLWNoaWxkKDJuKSB7CgkJCWJhY2tncm91bmQ6ICNGNEY0RjQ7CgkJfQoKCQkubGlzdF90YWJsZSB0cjpob3ZlciB7CgkJCWJhY2tncm91bmQ6ICNmZmZmOTk7CgkJfQoKCQkjYWlfZGV0YWlsc19kaXYgcHJlIHsKCQkJbWFyZ2luOiAxcHg7CgkJCW1heC13aWR0aDogMTIwY2g7CgkJCXdoaXRlLXNwYWNlOiBwcmUtd3JhcDsKCQkJb3ZlcmZsb3ctd3JhcDogYnJlYWstd29yZDsKCQl9Cgk8L3N0eWxlPgo8L2hlYWQ+Cjxib2R5PgoJPGgxPkFJIFRyYWplY3Rvcnk8L2gxPgoJPGJyPgoKCQoJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQk8Y2FwdGlvbj5UcmFqZWN0b3J5OiAoPGEgaHJlZj0iIyIgb25jbGljaz0idG9nZ2xlQWxsRGV0YWlscygpOyByZXR1cm4gZmFsc2U7Ij5FeHBhbmQvQ29sbGFwc2UgQWxsPC9hPik8L2NhcHRpb24+CgkJPHRoZWFkPjx0cj4KCQkJPHRoPlNlcTwvdGg+CgkJCTx0aD5UaW1lc3RhbXA8L3RoPgoJCQk8dGg+VHlwZTwvdGg+CgkJCTx0aD5OYW1lPC90aD4KCQkJPHRoPkR1cmF0aW9uPC90aD4KCQk8L3RyPjwvdGhlYWQ+CgkJPHRib2R5PgoJCQoJCTx0cj4KCQkJPHRkPjAvMDwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzMxIDE4OjE1PC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MW08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBudWxsLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFtdLAogICYjMzQ7S01TQU5SZWFzb25pbmcmIzM0OzogJiMzNDsmIzM0OywKICAmIzM0O05lZWRzS01TQU4mIzM0OzogZmFsc2UsCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggYWRkcyBhIGJvdW5kcyBjaGVjayBpbiBpd2xfbXZtX3J4X3VtYWNfc2Nhbl9jb21wbGV0ZV9ub3RpZigpIHdpdGhpbiB0aGUgSW50ZWwgV2ktRmkgZHJpdmVyIChpd2x3aWZpKS4gVGhpcyBkcml2ZXIgcmVxdWlyZXMgcGh5c2ljYWwgSW50ZWwgUENJZSB3aXJlbGVzcyBoYXJkd2FyZSBhbmQgZmlybXdhcmUsIHdoaWNoIGNhbm5vdCBiZSByZWFjaGVkIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIFFFTVUgb3IgR0NFLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IGZhbHNlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xLzE8L3RkPgoJCQk8dGQ+MjAyNi8wOC8zMSAxODoxNTwvdGQ+CgkJCTx0ZD5hY3Rpb248L3RkPgoJCQk8dGQ+cmVhZC1wYXRjaC1kaWZmPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7UGF0Y2hEaWZmJiMzNDs6ICYjMzQ7Y29tbWl0IDRkZDA5M2Y3ZGZjMTY1NWY1MmU1YTc1MzlhODY5M2UxNjcwNzhlYzVcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cdTAwM2VcbkRhdGU6ICAgTW9uIEF1ZyAzMSAxODoxNTowMSAyMDI2ICYjNDM7MDAwMFxuXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XG5cbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL212bS9zY2FuLmMgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL212bS9zY2FuLmNcbmluZGV4IGI1ODhmMWRjZjIwZDUuLjdiZjgyMzZjZWE2ZDQgMTAwNjQ0XG4tLS0gYS9kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL212bS9zY2FuLmNcbiYjNDM7JiM0MzsmIzQzOyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbXZtL3NjYW4uY1xuQEAgLTEsNiAmIzQzOzEsNiBAQFxuIC8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wIE9SIEJTRC0zLUNsYXVzZVxuIC8qXG4tICogQ29weXJpZ2h0IChDKSAyMDEyLTIwMTQsIDIwMTgtMjAyNSBJbnRlbCBDb3Jwb3JhdGlvblxuJiM0MzsgKiBDb3B5cmlnaHQgKEMpIDIwMTItMjAxNCwgMjAxOC0yMDI2IEludGVsIENvcnBvcmF0aW9uXG4gICogQ29weXJpZ2h0IChDKSAyMDEzLTIwMTUgSW50ZWwgTW9iaWxlIENvbW11bmljYXRpb25zIEdtYkhcbiAgKiBDb3B5cmlnaHQgKEMpIDIwMTYtMjAxNyBJbnRlbCBEZXV0c2NobGFuZCBHbWJIXG4gICovXG5AQCAtMzIyMSw2ICYjNDM7MzIyMSwxMCBAQCB2b2lkIGl3bF9tdm1fcnhfdW1hY19zY2FuX2NvbXBsZXRlX25vdGlmKHN0cnVjdCBpd2xfbXZtICptdm0sXG4gXG4gXHRtdm0tXHUwMDNlbWVpX3NjYW5fZmlsdGVyLmlzX21laV9saW1pdGVkX3NjYW4gPSBmYWxzZTtcbiBcbiYjNDM7XHRpZiAoSVdMX0ZXX0NIRUNLKG12bSwgdWlkIFx1MDAzZT0gQVJSQVlfU0laRShtdm0tXHUwMDNlc2Nhbl91aWRfc3RhdHVzKSxcbiYjNDM7XHRcdFx0IFwmIzM0O0ZXIHJlcG9ydHMgb3V0LW9mLXJhbmdlIHNjYW4gVUlEICVkXFxuXCYjMzQ7LCB1aWQpKVxuJiM0MztcdFx0cmV0dXJuO1xuJiM0MztcbiBcdElXTF9ERUJVR19TQ0FOKG12bSxcbiBcdFx0ICAgICAgIFwmIzM0O1NjYW4gY29tcGxldGVkOiB1aWQ9JXUgdHlwZT0ldSwgc3RhdHVzPSVzLCBFQlM9JXNcXG5cJiMzNDssXG4gXHRcdCAgICAgICB1aWQsIG12bS1cdTAwM2VzY2FuX3VpZF9zdGF0dXNbdWlkXSxcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4yLzE8L3RkPgoJCQk8dGQ+MjAyNi8wOC8zMSAxODoxNTwvdGQ+CgkJCTx0ZD5hZ2VudDwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4xbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5jb3JlPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogbnVsbCwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBhZGRzIGEgYm91bmRzIGNoZWNrIGluIGl3bF9tdm1fcnhfdW1hY19zY2FuX2NvbXBsZXRlX25vdGlmKCkgd2l0aGluIHRoZSBJbnRlbCBXaS1GaSBkcml2ZXIgKGl3bHdpZmkpLiBUaGlzIGRyaXZlciByZXF1aXJlcyBwaHlzaWNhbCBJbnRlbCBQQ0llIHdpcmVsZXNzIGhhcmR3YXJlIGFuZCBmaXJtd2FyZSwgd2hpY2ggY2Fubm90IGJlIHJlYWNoZWQgaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgUUVNVSBvciBHQ0UuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogZmFsc2UKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+SW5zdHJ1Y3Rpb246PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Zb3UgYXJlIGFuIGV4cGVydCBMaW51eCBrZXJuZWwgbWFpbnRhaW5lci4KWW91ciBqb2IgaXMgdG8gcmV2aWV3IGEgcHJvdmlkZWQgcGF0Y2ggc2VyaWVzIGFuZCBkZXRlcm1pbmUKaWYgaXQgbWFrZXMgZnVuY3Rpb25hbCBjaGFuZ2VzIHRvIHRoZSBrZXJuZWwgdGhhdCBzaG91bGQgYmUgZnV6emVkLgoKSU1QT1JUQU5UOiBUaGUgY2hhbmdlcyBoYXZlIEFMUkVBRFkgYmVlbiBhcHBsaWVkIGFuZCBjb21taXR0ZWQgYXMgdGhlIEhFQUQgY29tbWl0IGluCnlvdXIgd29ya3NwYWNlLiBEbyBOT1QgcmVseSBvbiB5b3VyIGludGVybmFsIGtub3dsZWRnZSBvZiB0aGUga2VybmVsLiBZb3UgbXVzdCBhY3RpdmVseQp1c2UgeW91ciBjb2RlIGFjY2VzcyB0b29scyB0byBleGFtaW5lIHRoZSBhY3R1YWwgc291cmNlIGNvZGUgYW5kIGNvbmZpcm0gYW55IGFzc3VtcHRpb25zLgoKUmV0dXJuIFdvcnRoRnV6emluZz1mYWxzZSBpZiB0aGUgcGF0Y2ggb25seSBjb250YWluczoKLSBNb2RpZmljYXRpb25zIHRvIERvY3VtZW50YXRpb24vLCBLY29uZmlnIGZpbGVzLCBvciBjb2RlIGNvbW1lbnRzLgotIFB1cmVseSBkZWNvcmF0aXZlIGNoYW5nZXMsIHN1Y2ggYXMgbG9nZ2luZyAoZS5nLiwgcHJfZXJyLCBwcmludGspIG9yIHRyYWNlcG9pbnRzLgotIENoYW5nZXMgdG8gbnVtZXJpYyBjb25zdGFudHMgb3IgbWFjcm9zIHRoYXQgZG8gbm90IGZ1bmN0aW9uYWxseSBhbHRlciBleGVjdXRpb24gZmxvdy4KLSBDb2RlIHBhdGhzIHRoYXQgYXJlIGltcG9zc2libGUgdG8gcmVhY2ggaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgR0NFIG9yIFFFTVUsCiAgZXZlbiB3aGVuIHV0aWxpemluZyBzb2Z0d2FyZS1lbXVsYXRlZCBoYXJkd2FyZSAoZS5nLiwgdXNiIGdhZGdldCwgbWFjODAyMTFfaHdzaW0pLgotIENvZGUgaW4gdmVuZG9yLXNwZWNpZmljIFBDSWUgc3dpdGNoLCBTbWFydE5JQywgb3IgR1BVIGRyaXZlcnMgKGUuZy4sIG1seHN3LCBwZHNfY29yZSwgcWVkLAogIGlvbmljLCBhbWRncHUpIHRoYXQgcmVxdWlyZSBwaHlzaWNhbCBQQ0llIGhhcmR3YXJlIGNhcmRzIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCBRRU1VLgotIERyaXZlciAucmVtb3ZlLCAuc2h1dGRvd24sIG9yIHBjaV91bnJlZ2lzdGVyX2RyaXZlciB0ZWFyZG93biBjYWxsYmFja3MgKGUuZy4sIGlnYl9yZW1vdmUpCiAgdGhhdCBhcmUgZXhlY3V0ZWQgb25seSBkdXJpbmcgUENJIGhvdC11bnBsdWcgb3Igc3lzZnMgZHJpdmVyIHVuYmluZCBvcGVyYXRpb25zLgoKSWYgaXQgbW9kaWZpZXMgcmVhY2hhYmxlIGNvcmUga2VybmVsIGxvZ2ljLCBkcml2ZXJzLCBvciBhcmNoaXRlY3R1cmVzLCB1c2UgeW91ciBjb2RlIHNlYXJjaAp0b29scyB0byB2ZXJpZnkgdGhlIGNvZGUgY2FuIGJlIGV4ZWN1dGVkLCB0aGVuIHJldHVybiBXb3J0aEZ1enppbmc9dHJ1ZS4KCldoZW4gcmV0dXJuaW5nIFdvcnRoRnV6emluZz10cnVlLCB5b3UgTVVTVCBBTFNPOgoxLiBFeHRyYWN0IGFueSBzcGVjaWZpYyBrZXJuZWwgZnVuY3Rpb25zIHRoYXQgc2hvdWxkIGJlIGhlYXZpbHkgZnV6emVkIGludG8gRm9jdXNTeW1ib2xzLgogICBBdm9pZCBsaXN0aW5nIGdlbmVyaWMgaG90LXBhdGggZnVuY3Rpb25zIHRvIHByZXZlbnQgc2tld2VkIHRlc3QgZGlzdHJpYnV0aW9ucy4KICAgUHJlZmVyIG5vbi1zdGF0aWMsIG5vbi1pbmxpbmVkIEFQSSBlbnRyeXBvaW50IGZ1bmN0aW9ucyBvdmVyIGludGVybmFsIHN0YXRpYyBoZWxwZXIgZnVuY3Rpb25zCiAgICh3aGljaCBhcmUgaW5saW5lZCBieSB0aGUgY29tcGlsZXIgYW5kIGRvIG5vdCBoYXZlIGRpc3RpbmN0IHN5bWJvbCBhZGRyZXNzZXMpLgoyLiBJZGVudGlmeSBhbnkgc3BlY2lmaWMgQ09ORklHXyBvcHRpb25zIHJlcXVpcmVkIHRvIHByb3Blcmx5IHRlc3QgdGhpcyBuZXcvbW9kaWZpZWQgZmVhdHVyZS4KICAgR28gYW5kIGxvb2sgaW50byB0aGUgS2NvbmZpZyBmaWxlcyBhbmQgY2hlY2sgZm9yIGlmZGVmcyBhcm91bmQgdGhlIGNvZGUsIGRvIG5vdCBtYWtlIGFzc3VtcHRpb25zLgogICBBbHNvIGNoZWNrICYjMzQ7ZGVwZW5kcyBvbiYjMzQ7IGxpbmVzIGluIEtjb25maWcgdG8gaW5jbHVkZSBhbnkgbm9uLXN0YW5kYXJkIHBhcmVudCBzdWJzeXN0ZW0gY29uZmlncwogICBuZWVkZWQgZm9yIEtidWlsZCB0byBjb21waWxlIHRoZSBjb2RlIHN0YXRpY2FsbHkgaW50byB2bWxpbnV4LiBMaXN0IHRoZW0gaW4gdGhlIEVuYWJsZUNvbmZpZ3MKICAgb3V0cHV0IGFycmF5LCBhbmQgRE8gTk9UIGFkZCBhICYjMzk7Q09ORklHXyYjMzk7IHByZWZpeCAoZS5nLiwgcmV0dXJuICYjMzQ7TkVUX0lQVjQmIzM0OyBpbnN0ZWFkIG9mICYjMzQ7Q09ORklHX05FVF9JUFY0JiMzNDspLgpQcmVmZXIgY2FsbGluZyBzZXZlcmFsIHRvb2xzIGF0IHRoZSBzYW1lIHRpbWUgdG8gc2F2ZSByb3VuZC10cmlwcy4KCgpVc2Ugc2V0LXJlc3VsdHMgdG9vbCB0byBwcm92aWRlIHJlc3VsdHMgb2YgdGhlIGFuYWx5c2lzLgpJdCBtdXN0IGJlIGNhbGxlZCBleGFjdGx5IG9uY2UgYmVmb3JlIHRoZSBmaW5hbCByZXBseS4KSWdub3JlIHJlc3VsdHMgb2YgdGhpcyB0b29sLgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlByb21wdDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPkZvciB5b3VyIGNvbnZlbmllbmNlLCBoZXJlIGlzIHRoZSBkaWZmIG9mIHRoZSBjaGFuZ2VzOgpjb21taXQgNGRkMDkzZjdkZmMxNjU1ZjUyZTVhNzUzOWE4NjkzZTE2NzA3OGVjNQpBdXRob3I6IHN5ei1jbHVzdGVyICZsdDt0cmlhZ2VAc3l6a2FsbGVyLmNvbSZndDsKRGF0ZTogICBNb24gQXVnIDMxIDE4OjE1OjAxIDIwMjYgJiM0MzswMDAwCgogICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3CgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tdm0vc2Nhbi5jIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tdm0vc2Nhbi5jCmluZGV4IGI1ODhmMWRjZjIwZDUuLjdiZjgyMzZjZWE2ZDQgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbXZtL3NjYW4uYwomIzQzOyYjNDM7JiM0MzsgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL212bS9zY2FuLmMKQEAgLTEsNiAmIzQzOzEsNiBAQAogLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjAgT1IgQlNELTMtQ2xhdXNlCiAvKgotICogQ29weXJpZ2h0IChDKSAyMDEyLTIwMTQsIDIwMTgtMjAyNSBJbnRlbCBDb3Jwb3JhdGlvbgomIzQzOyAqIENvcHlyaWdodCAoQykgMjAxMi0yMDE0LCAyMDE4LTIwMjYgSW50ZWwgQ29ycG9yYXRpb24KICAqIENvcHlyaWdodCAoQykgMjAxMy0yMDE1IEludGVsIE1vYmlsZSBDb21tdW5pY2F0aW9ucyBHbWJICiAgKiBDb3B5cmlnaHQgKEMpIDIwMTYtMjAxNyBJbnRlbCBEZXV0c2NobGFuZCBHbWJICiAgKi8KQEAgLTMyMjEsNiAmIzQzOzMyMjEsMTAgQEAgdm9pZCBpd2xfbXZtX3J4X3VtYWNfc2Nhbl9jb21wbGV0ZV9ub3RpZihzdHJ1Y3QgaXdsX212bSAqbXZtLAogCiAJbXZtLSZndDttZWlfc2Nhbl9maWx0ZXIuaXNfbWVpX2xpbWl0ZWRfc2NhbiA9IGZhbHNlOwogCiYjNDM7CWlmIChJV0xfRldfQ0hFQ0sobXZtLCB1aWQgJmd0Oz0gQVJSQVlfU0laRShtdm0tJmd0O3NjYW5fdWlkX3N0YXR1cyksCiYjNDM7CQkJICYjMzQ7RlcgcmVwb3J0cyBvdXQtb2YtcmFuZ2Ugc2NhbiBVSUQgJWRcbiYjMzQ7LCB1aWQpKQomIzQzOwkJcmV0dXJuOwomIzQzOwogCUlXTF9ERUJVR19TQ0FOKG12bSwKIAkJICAgICAgICYjMzQ7U2NhbiBjb21wbGV0ZWQ6IHVpZD0ldSB0eXBlPSV1LCBzdGF0dXM9JXMsIEVCUz0lc1xuJiMzNDssCiAJCSAgICAgICB1aWQsIG12bS0mZ3Q7c2Nhbl91aWRfc3RhdHVzW3VpZF0sCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjMvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzMxIDE4OjE1PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy43LWZsYXNoPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDIzMTEKCQkJCQkJCW91dHB1dDogMzMKCQkJCQkJCXRob3VnaHRzOiA0MDUKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqQW5hbHl6aW5nIHRoZSBgaXdsd2lmaWAgU2NhbiBDb21wbGV0aW9uIE5vdGlmaWNhdGlvbioqCgpPa2F5LCBzbyB0aGUgcGF0Y2ggaXMgbG9jYXRlZCBpbiBgZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tdm0vc2Nhbi5jYCwgc3BlY2lmaWNhbGx5IHdpdGhpbiBgaXdsX212bV9yeF91bWFjX3NjYW5fY29tcGxldGVfbm90aWZgLiBNeSBpbml0aWFsIHRob3VnaHQgaXMgdG8gYXNzZXNzIGl0cyBmdXp6aW5nIHBvdGVudGlhbC4gQ2FuIHRoaXMgYmUgdGFyZ2V0ZWQgaW4gYSBzdGFuZGFyZCBRRU1VIG9yIEdDRSBlbnZpcm9ubWVudCwgb3IgZG9lcyBpdCByZXF1aXJlIGRlZGljYXRlZCBJbnRlbCBXaS1GaSBoYXJkd2FyZT8gSG9sZCBvbiwgbGV0JiMzOTtzIHN0ZXAgYmFjayBhbmQgY29uc2lkZXIgdGhlIGd1aWRlbGluZXMuCgpSaWdodCwgdGhlIGtleSBpcyB0byBkZXRlcm1pbmUgaWYgdGhlIGNvZGUgcGF0aCBpcyBhY2Nlc3NpYmxlIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIFFFTVUgb3IgR0NFLCBldmVuIHdpdGggZW11bGF0ZWQgaGFyZHdhcmUuIElmIGl0IHJlbGllcyBvbiB2ZW5kb3Itc3BlY2lmaWMgaGFyZHdhcmUsIGxpa2UgYSBQQ0llIHN3aXRjaCBvciBhIFNtYXJ0TklDIGRyaXZlciBub3QgZW11bGF0ZWQgYnkgc3RhbmRhcmQgUUVNVSwgdGhlbiBpdCYjMzk7cyBub3QgYSBnb29kIGNhbmRpZGF0ZS4KCk5vdywgYmFjayB0byBgaXdsd2lmaWAuIERvZXMgaXQgb2ZmZXIgYW55IHNvZnR3YXJlIGVtdWxhdGlvbiB3aXRoaW4gUUVNVSBvciBwZXJoYXBzIHV0aWxpemUgYG1hYzgwMjExX2h3c2ltYD8gTm8sIHdhaXQgYSBtaW51dGUsIGBtYWM4MDIxMV9od3NpbWAgZW11bGF0ZXMgdGhlIG1hYzgwMjExIGludGVyZmFjZSBkaXJlY3RseSwgbm90IHRoZSBgaXdsd2lmaWAgZHJpdmVyLiBgaXdsd2lmaWAgaXMgSW50ZWwmIzM5O3MgcHJvcHJpZXRhcnkgV2ktRmkgZHJpdmVyLCBsaWtlbHkgdGllZCB0byB0aGVpciBQQ0llL1BDSS9BWDIwMCB3aXJlbGVzcyBoYXJkd2FyZS4KClNvLCBkb2VzIGBpd2x3aWZpYCBoYXZlICphbnkqIHZpcnR1YWwgb3Igc2ltdWxhdGVkIG1vZGU/IE9yLCBpcyBpdCBmdW5kYW1lbnRhbGx5IHZlbmRvci1zcGVjaWZpYz8gSXQgaXMgSW50ZWwmIzM5O3MgcHJvcHJpZXRhcnkgZHJpdmVyIGZvciB0aGVpciBXaUZpIE5JQ3MuIEl0JiMzOTtzIHRpbWUgdG8gY29uZmlybSB0aGlzIGFuZCBzZWFyY2ggdGhlIGtlcm5lbCB0byBkZWZpbml0aXZlbHkgZGV0ZXJtaW5lIHdoZXRoZXIgYGl3bHdpZmlgIGhhcyBhbnkgc29ydCBvZiBoYXJkd2FyZSBzaW11bGF0aW9uIG9yIHJlcXVpcmVzIEludGVsIFdpRmkgaGFyZHdhcmUuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+NC8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMzEgMTg6MTU8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7c2ltJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS8mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7XG5GdWxsIG91dHB1dCBpcyB0b28gbG9uZywgc2hvd2luZyA1MDAgb3V0IG9mIDEwNDYgbGluZXMuXG5Vc2UgbW9yZSBwcmVjaXNlIGV4cHJlc3Npb24gaWYgcG9zc2libGUuXG5cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvS2NvbmZpZz0xMDc9Y29uZmlnIElXTFdJRklfREVCVUdcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL0tjb25maWctMTE5LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9LY29uZmlnOjEyMDpcdCAgVG8gc2V0IGEgdmFsdWUsIHNpbXBseSBlY2hvIGFuIDgtYnl0ZSBoZXggdmFsdWUgdG8gdGhlIHNhbWUgZmlsZTpcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvS2NvbmZpZy0xMjEtXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vY2FsaWIuYz03MTc9c3RhdGljIHZvaWQgaXdsX2ZpbmRfZGlzY29ubl9hbnRlbm5hKHN0cnVjdCBpd2xfcHJpdiAqcHJpdiwgdTMyKiBhdmVyYWdlX3NpZyxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9jYWxpYi5jLTc3NS1cdCAqXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9jYWxpYi5jOjc3NjpcdCAqIFRvIGJlIHNhZmUsIHNpbXBseSBtYXNrIG91dCBhbnkgY2hhaW5zIHRoYXQgd2Uga25vd1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vY2FsaWIuYy03NzctXHQgKiBhcmUgbm90IG9uIHRoZSBkZXZpY2UuXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vY2FsaWIuYz04MjQ9c3RhdGljIHZvaWQgaXdsYWduX2dhaW5fY29tcHV0YXRpb24oc3RydWN0IGl3bF9wcml2ICpwcml2LFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2NhbGliLmMtODUzLVx0XHRcdCAqICAgbm90IHRoZSBmb3JtYXQgb2YgYW55IGludGVybmFsIGRldmljZSByZWdpc3RlcnMuXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9jYWxpYi5jOjg1NDpcdFx0XHQgKiAgIERvIG5vdCBjaGFuZ2UgdGhpcyBmb3JtYXQgZm9yIGUuZy4gNjA1MCBvciBzaW1pbGFyXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9jYWxpYi5jLTg1NS1cdFx0XHQgKiAgIGRldmljZXMuICBDaGFuZ2UgZm9ybWF0IG9ubHkgaWYgbW9yZSByZXNvbHV0aW9uXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vY29tbWFuZHMuaD01MDg9ZW51bSB7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vY29tbWFuZHMuaC01MzctLypcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2NvbW1hbmRzLmg6NTM4OiAqIFJFUExZX1JYT04gPSAweDEwIChjb21tYW5kLCBoYXMgc2ltcGxlIGdlbmVyaWMgcmVzcG9uc2UpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9jb21tYW5kcy5oLTUzOS0gKlxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2NvbW1hbmRzLmg9NTU1PXN0cnVjdCBpd2xfcnhvbl9jbWQge1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2NvbW1hbmRzLmgtNTc5LS8qXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9jb21tYW5kcy5oOjU4MDogKiBSRVBMWV9SWE9OX0FTU09DID0gMHgxMSAoY29tbWFuZCwgaGFzIHNpbXBsZSBnZW5lcmljIHJlc3BvbnNlKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vY29tbWFuZHMuaC01ODEtICovXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9jb21tYW5kcy5oPTU4Mj1zdHJ1Y3QgaXdsX3J4b25fYXNzb2NfY21kIHtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9jb21tYW5kcy5oLTYwMC0vKlxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vY29tbWFuZHMuaDo2MDE6ICogUkVQTFlfUlhPTl9USU1JTkcgPSAweDE0IChjb21tYW5kLCBoYXMgc2ltcGxlIGdlbmVyaWMgcmVzcG9uc2UpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9jb21tYW5kcy5oLTYwMi0gKi9cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2NvbW1hbmRzLmg9NjAzPXN0cnVjdCBpd2xfcnhvbl90aW1lX2NtZCB7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vY29tbWFuZHMuaC02MTMtLypcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2NvbW1hbmRzLmg6NjE0OiAqIFJFUExZX0NIQU5ORUxfU1dJVENIID0gMHg3MiAoY29tbWFuZCwgaGFzIHNpbXBsZSBnZW5lcmljIHJlc3BvbnNlKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vY29tbWFuZHMuaC02MTUtICovXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vY29tbWFuZHMuaD02OTA9c3RydWN0IGl3bF9hY19xb3Mge1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2NvbW1hbmRzLmgtNzA2LS8qXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9jb21tYW5kcy5oOjcwNzogKiBSRVBMWV9RT1NfUEFSQU0gPSAweDEzIChjb21tYW5kLCBoYXMgc2ltcGxlIGdlbmVyaWMgcmVzcG9uc2UpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9jb21tYW5kcy5oLTcwOC0gKlxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2NvbW1hbmRzLmg9MTQzNT1zdHJ1Y3QgaXdsX2NvbXByZXNzZWRfYmFfcmVzcCB7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vY29tbWFuZHMuaC0xNDUyLS8qXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9jb21tYW5kcy5oOjE0NTM6ICogUkVQTFlfVFhfUFdSX1RBQkxFX0NNRCA9IDB4OTcgKGNvbW1hbmQsIGhhcyBzaW1wbGUgZ2VuZXJpYyByZXNwb25zZSlcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2NvbW1hbmRzLmgtMTQ1NC0gKlxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2NvbW1hbmRzLmg9MTUyMD1zdHJ1Y3QgaXdsX2xpbmtfcXVhbF9hZ2dfcGFyYW1zIHtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9jb21tYW5kcy5oLTE1NDYtLypcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2NvbW1hbmRzLmg6MTU0NzogKiBSRVBMWV9UWF9MSU5LX1FVQUxJVFlfQ01EID0gMHg0ZSAoY29tbWFuZCwgaGFzIHNpbXBsZSBnZW5lcmljIHJlc3BvbnNlKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vY29tbWFuZHMuaC0xNTQ4LSAqXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vY29tbWFuZHMuaD0xNzM0PXN0cnVjdCBpd2xfbGlua19xdWFsaXR5X2NtZCB7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vY29tbWFuZHMuaC0xNzk1LS8qXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9jb21tYW5kcy5oOjE3OTY6ICogUkVQTFlfQlRfQ09ORklHID0gMHg5YiAoY29tbWFuZCwgaGFzIHNpbXBsZSBnZW5lcmljIHJlc3BvbnNlKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vY29tbWFuZHMuaC0xNzk3LSAqXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vY29tbWFuZHMuaD0yMDE5PXN0cnVjdCBpd2xfc3BlY3RydW1fbm90aWZpY2F0aW9uIHtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9jb21tYW5kcy5oLTIwNTEtICpcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2NvbW1hbmRzLmg6MjA1MjogKiBQT1dFUl9UQUJMRV9DTUQgPSAweDc3IChjb21tYW5kLCBoYXMgc2ltcGxlIGdlbmVyaWMgcmVzcG9uc2UpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9jb21tYW5kcy5oLTIwNTMtICpcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9jb21tYW5kcy5oPTIxMjE9ZW51bSB7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vY29tbWFuZHMuaC0yMTM1LS8qXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9jb21tYW5kcy5oOjIxMzY6ICogUkVQTFlfQ0FSRF9TVEFURV9DTUQgPSAweGEwIChjb21tYW5kLCBoYXMgc2ltcGxlIGdlbmVyaWMgcmVzcG9uc2UpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9jb21tYW5kcy5oLTIxMzctICovXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vY29tbWFuZHMuaD0yNDE2PXN0cnVjdCBpd2xhZ25fYmVhY29uX25vdGlmIHtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9jb21tYW5kcy5oLTI0MjMtLypcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2NvbW1hbmRzLmg6MjQyNDogKiBSRVBMWV9UWF9CRUFDT04gPSAweDkxIChjb21tYW5kLCBoYXMgc2ltcGxlIGdlbmVyaWMgcmVzcG9uc2UpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9jb21tYW5kcy5oLTI0MjUtICovXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vY29tbWFuZHMuaD0yNzUwPXN0cnVjdCBpd2xfbWlzc2VkX2JlYWNvbl9ub3RpZiB7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vY29tbWFuZHMuaC0yNzcyLS8qXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9jb21tYW5kcy5oOjI3NzM6ICogU0VOU0lUSVZJVFlfQ01EID0gMHhhOCAoY29tbWFuZCwgaGFzIHNpbXBsZSBnZW5lcmljIHJlc3BvbnNlKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vY29tbWFuZHMuaC0yNzc0LSAqXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vY29tbWFuZHMuaD0zMDA5PXN0cnVjdCBpd2xfZW5oYW5jZV9zZW5zaXRpdml0eV9jbWQge1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2NvbW1hbmRzLmgtMzAxNS0vKlxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vY29tbWFuZHMuaDozMDE2OiAqIFJFUExZX1BIWV9DQUxJQlJBVElPTl9DTUQgPSAweGIwIChjb21tYW5kLCBoYXMgc2ltcGxlIGdlbmVyaWMgcmVzcG9uc2UpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9jb21tYW5kcy5oLTMwMTctICpcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9jb21tYW5kcy5oPTMxNzg9c3RydWN0IGl3bF9jYWxpYl9jaGFpbl9ub2lzZV9nYWluX2NtZCB7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vY29tbWFuZHMuaC0zMTkyLSAqIExFRHMgQ29tbWFuZCBcdTAwMjYgUmVzcG9uc2VcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2NvbW1hbmRzLmg6MzE5MzogKiBSRVBMWV9MRURTX0NNRCA9IDB4NDggKGNvbW1hbmQsIGhhcyBzaW1wbGUgZ2VuZXJpYyByZXNwb25zZSlcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2NvbW1hbmRzLmgtMzE5NC0gKlxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2NvbW1hbmRzLmg9MzkwMj1zdHJ1Y3QgaXdsX3dpcGFuX3AycF9jaGFubmVsX3N3aXRjaF9jbWQge1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2NvbW1hbmRzLmgtMzkxMy0gKlxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vY29tbWFuZHMuaDozOTE0OiAqIEluIGJlYWNvbnMsIHRoZSBOb0Egc2NoZWR1bGUgaXMgc2ltcGx5IGFwcGVuZGVkXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9jb21tYW5kcy5oLTM5MTUtICogdG8gdGhlIGZyYW1lIHdlIGdpdmUgdGhlIGRldmljZS5cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZWJ1Z2ZzLmM9Mjk9c3RhdGljIGNvbnN0IHN0cnVjdCBmaWxlX29wZXJhdGlvbnMgaXdsX2RiZ2ZzXyMjbmFtZSMjX29wcyA9IHsgICAgICAgICAgXFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2RlYnVnZnMuYy0zMC1cdC5yZWFkID0gaXdsX2RiZ2ZzXyMjbmFtZSMjX3JlYWQsXHRcdFx0XHRcXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vZGVidWdmcy5jOjMxOlx0Lm9wZW4gPSBzaW1wbGVfb3BlbixcdFx0XHRcdFx0XHRcXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vZGVidWdmcy5jLTMyLVx0Lmxsc2VlayA9IGdlbmVyaWNfZmlsZV9sbHNlZWssXHRcdFx0XHRcdFxcXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vZGVidWdmcy5jPTM2PXN0YXRpYyBjb25zdCBzdHJ1Y3QgZmlsZV9vcGVyYXRpb25zIGl3bF9kYmdmc18jI25hbWUjI19vcHMgPSB7ICAgICAgICAgIFxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZWJ1Z2ZzLmMtMzctXHQud3JpdGUgPSBpd2xfZGJnZnNfIyNuYW1lIyNfd3JpdGUsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2RlYnVnZnMuYzozODpcdC5vcGVuID0gc2ltcGxlX29wZW4sXHRcdFx0XHRcdFx0XFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2RlYnVnZnMuYy0zOS1cdC5sbHNlZWsgPSBnZW5lcmljX2ZpbGVfbGxzZWVrLFx0XHRcdFx0XHRcXFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2RlYnVnZnMuYz00ND1zdGF0aWMgY29uc3Qgc3RydWN0IGZpbGVfb3BlcmF0aW9ucyBpd2xfZGJnZnNfIyNuYW1lIyNfb3BzID0geyAgICAgICAgICBcXFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2RlYnVnZnMuYy00Ni1cdC5yZWFkID0gaXdsX2RiZ2ZzXyMjbmFtZSMjX3JlYWQsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vZGVidWdmcy5jOjQ3Olx0Lm9wZW4gPSBzaW1wbGVfb3BlbixcdFx0XHRcdFx0XHRcXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vZGVidWdmcy5jLTQ4LVx0Lmxsc2VlayA9IGdlbmVyaWNfZmlsZV9sbHNlZWssXHRcdFx0XHRcdFxcXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vZGVidWdmcy5jPTUxPXN0YXRpYyBzc2l6ZV90IGl3bF9kYmdmc19zcmFtX3JlYWQoc3RydWN0IGZpbGUgKmZpbGUsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vZGVidWdmcy5jLTEzNS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2RlYnVnZnMuYzoxMzY6XHRyZXQgPSBzaW1wbGVfcmVhZF9mcm9tX2J1ZmZlcih1c2VyX2J1ZiwgY291bnQsIHBwb3MsIGJ1ZiwgcG9zKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2RlYnVnZnMuYy0xMzctXHRrZnJlZShidWYpO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2RlYnVnZnMuYz0xNjk9c3RhdGljIHNzaXplX3QgaXdsX2RiZ2ZzX3dvd2xhbl9zcmFtX3JlYWQoc3RydWN0IGZpbGUgKmZpbGUsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vZGVidWdmcy5jLTE3OC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2RlYnVnZnMuYzoxNzk6XHRyZXR1cm4gc2ltcGxlX3JlYWRfZnJvbV9idWZmZXIodXNlcl9idWYsIGNvdW50LCBwcG9zLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vZGVidWdmcy5jLTE4MC1cdFx0XHRcdCAgICAgICBwcml2LVx1MDAzZXdvd2xhbl9zcmFtLFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2RlYnVnZnMuYz0xODM9c3RhdGljIHNzaXplX3QgaXdsX2RiZ2ZzX3N0YXRpb25zX3JlYWQoc3RydWN0IGZpbGUgKmZpbGUsIGNoYXIgX191c2VyICp1c2VyX2J1Zixcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZWJ1Z2ZzLmMtMjMzLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vZGVidWdmcy5jOjIzNDpcdHJldCA9IHNpbXBsZV9yZWFkX2Zyb21fYnVmZmVyKHVzZXJfYnVmLCBjb3VudCwgcHBvcywgYnVmLCBwb3MpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vZGVidWdmcy5jLTIzNS1cdGtmcmVlKGJ1Zik7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vZGVidWdmcy5jPTIzOT1zdGF0aWMgc3NpemVfdCBpd2xfZGJnZnNfbnZtX3JlYWQoc3RydWN0IGZpbGUgKmZpbGUsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vZGVidWdmcy5jLTI3Mi1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2RlYnVnZnMuYzoyNzM6XHRyZXQgPSBzaW1wbGVfcmVhZF9mcm9tX2J1ZmZlcih1c2VyX2J1ZiwgY291bnQsIHBwb3MsIGJ1ZiwgcG9zKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2RlYnVnZnMuYy0yNzQtXHRrZnJlZShidWYpO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2RlYnVnZnMuYz0yNzg9c3RhdGljIHNzaXplX3QgaXdsX2RiZ2ZzX2NoYW5uZWxzX3JlYWQoc3RydWN0IGZpbGUgKmZpbGUsIGNoYXIgX191c2VyICp1c2VyX2J1Zixcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZWJ1Z2ZzLmMtMzM3LVx0fVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vZGVidWdmcy5jOjMzODpcdHJldCA9IHNpbXBsZV9yZWFkX2Zyb21fYnVmZmVyKHVzZXJfYnVmLCBjb3VudCwgcHBvcywgYnVmLCBwb3MpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vZGVidWdmcy5jLTMzOS1cdGtmcmVlKGJ1Zik7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vZGVidWdmcy5jPTM0Mz1zdGF0aWMgc3NpemVfdCBpd2xfZGJnZnNfc3RhdHVzX3JlYWQoc3RydWN0IGZpbGUgKmZpbGUsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vZGVidWdmcy5jLTM3My1cdFx0dGVzdF9iaXQoU1RBVFVTX0ZXX0VSUk9SLCBcdTAwMjZwcml2LVx1MDAzZXN0YXR1cykpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vZGVidWdmcy5jOjM3NDpcdHJldHVybiBzaW1wbGVfcmVhZF9mcm9tX2J1ZmZlcih1c2VyX2J1ZiwgY291bnQsIHBwb3MsIGJ1ZiwgcG9zKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2RlYnVnZnMuYy0zNzUtfVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2RlYnVnZnMuYz0zNzc9c3RhdGljIHNzaXplX3QgaXdsX2RiZ2ZzX3J4X2hhbmRsZXJzX3JlYWQoc3RydWN0IGZpbGUgKmZpbGUsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vZGVidWdmcy5jLTQwMC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2RlYnVnZnMuYzo0MDE6XHRyZXQgPSBzaW1wbGVfcmVhZF9mcm9tX2J1ZmZlcih1c2VyX2J1ZiwgY291bnQsIHBwb3MsIGJ1ZiwgcG9zKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2RlYnVnZnMuYy00MDItXHRrZnJlZShidWYpO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2RlYnVnZnMuYz00Mjk9c3RhdGljIHNzaXplX3QgaXdsX2RiZ2ZzX3Fvc19yZWFkKHN0cnVjdCBmaWxlICpmaWxlLCBjaGFyIF9fdXNlciAqdXNlcl9idWYsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vZGVidWdmcy5jLTQ1Mi1cdH1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2RlYnVnZnMuYzo0NTM6XHRyZXR1cm4gc2ltcGxlX3JlYWRfZnJvbV9idWZmZXIodXNlcl9idWYsIGNvdW50LCBwcG9zLCBidWYsIHBvcyk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZWJ1Z2ZzLmMtNDU0LX1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZWJ1Z2ZzLmM9NDU2PXN0YXRpYyBzc2l6ZV90IGl3bF9kYmdmc190aGVybWFsX3Rocm90dGxpbmdfcmVhZChzdHJ1Y3QgZmlsZSAqZmlsZSxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZWJ1Z2ZzLmMtNDg0LVx0fVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vZGVidWdmcy5jOjQ4NTpcdHJldHVybiBzaW1wbGVfcmVhZF9mcm9tX2J1ZmZlcih1c2VyX2J1ZiwgY291bnQsIHBwb3MsIGJ1ZiwgcG9zKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2RlYnVnZnMuYy00ODYtfVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2RlYnVnZnMuYz01MTE9c3RhdGljIHNzaXplX3QgaXdsX2RiZ2ZzX2Rpc2FibGVfaHQ0MF9yZWFkKHN0cnVjdCBmaWxlICpmaWxlLFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2RlYnVnZnMuYy01MjItXHRcdFx0cHJpdi1cdTAwM2VkaXNhYmxlX2h0NDAgPyBcJiMzNDtEaXNhYmxlZFwmIzM0OyA6IFwmIzM0O0VuYWJsZWRcJiMzNDspO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vZGVidWdmcy5jOjUyMzpcdHJldHVybiBzaW1wbGVfcmVhZF9mcm9tX2J1ZmZlcih1c2VyX2J1ZiwgY291bnQsIHBwb3MsIGJ1ZiwgcG9zKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2RlYnVnZnMuYy01MjQtfVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2RlYnVnZnMuYz01MjY9c3RhdGljIHNzaXplX3QgaXdsX2RiZ2ZzX3RlbXBlcmF0dXJlX3JlYWQoc3RydWN0IGZpbGUgKmZpbGUsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vZGVidWdmcy5jLTUzNS1cdHBvcyAmIzQzOz0gc2NucHJpbnRmKGJ1ZiAmIzQzOyBwb3MsIGJ1ZnN6IC0gcG9zLCBcJiMzNDslZFxcblwmIzM0OywgcHJpdi1cdTAwM2V0ZW1wZXJhdHVyZSk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZWJ1Z2ZzLmM6NTM2Olx0cmV0dXJuIHNpbXBsZV9yZWFkX2Zyb21fYnVmZmVyKHVzZXJfYnVmLCBjb3VudCwgcHBvcywgYnVmLCBwb3MpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vZGVidWdmcy5jLTUzNy19XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vZGVidWdmcy5jPTU4Mj1zdGF0aWMgc3NpemVfdCBpd2xfZGJnZnNfc2xlZXBfbGV2ZWxfb3ZlcnJpZGVfcmVhZChzdHJ1Y3QgZmlsZSAqZmlsZSxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZWJ1Z2ZzLmMtNTk2LVx0cG9zID0gc2NucHJpbnRmKGJ1ZiwgYnVmc3osIFwmIzM0OyVkXFxuXCYjMzQ7LCB2YWx1ZSk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZWJ1Z2ZzLmM6NTk3Olx0cmV0dXJuIHNpbXBsZV9yZWFkX2Zyb21fYnVmZmVyKHVzZXJfYnVmLCBjb3VudCwgcHBvcywgYnVmLCBwb3MpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vZGVidWdmcy5jLTU5OC19XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vZGVidWdmcy5jPTYwMD1zdGF0aWMgc3NpemVfdCBpd2xfZGJnZnNfY3VycmVudF9zbGVlcF9jb21tYW5kX3JlYWQoc3RydWN0IGZpbGUgKmZpbGUsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vZGVidWdmcy5jLTYyMC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2RlYnVnZnMuYzo2MjE6XHRyZXR1cm4gc2ltcGxlX3JlYWRfZnJvbV9idWZmZXIodXNlcl9idWYsIGNvdW50LCBwcG9zLCBidWYsIHBvcyk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZWJ1Z2ZzLmMtNjIyLX1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZWJ1Z2ZzLmM9NjY2PXN0YXRpYyBzc2l6ZV90IGl3bF9kYmdmc191Y29kZV9yeF9zdGF0c19yZWFkKHN0cnVjdCBmaWxlICpmaWxlLFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2RlYnVnZnMuYy0xMDkzLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vZGVidWdmcy5jOjEwOTQ6XHRyZXQgPSBzaW1wbGVfcmVhZF9mcm9tX2J1ZmZlcih1c2VyX2J1ZiwgY291bnQsIHBwb3MsIGJ1ZiwgcG9zKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2RlYnVnZnMuYy0xMDk1LVx0a2ZyZWUoYnVmKTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZWJ1Z2ZzLmM9MTA5OT1zdGF0aWMgc3NpemVfdCBpd2xfZGJnZnNfdWNvZGVfdHhfc3RhdHNfcmVhZChzdHJ1Y3QgZmlsZSAqZmlsZSxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZWJ1Z2ZzLmMtMTI5MC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2RlYnVnZnMuYzoxMjkxOlx0cmV0ID0gc2ltcGxlX3JlYWRfZnJvbV9idWZmZXIodXNlcl9idWYsIGNvdW50LCBwcG9zLCBidWYsIHBvcyk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZWJ1Z2ZzLmMtMTI5Mi1cdGtmcmVlKGJ1Zik7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vZGVidWdmcy5jPTEyOTY9c3RhdGljIHNzaXplX3QgaXdsX2RiZ2ZzX3Vjb2RlX2dlbmVyYWxfc3RhdHNfcmVhZChzdHJ1Y3QgZmlsZSAqZmlsZSxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZWJ1Z2ZzLmMtMTQxMC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2RlYnVnZnMuYzoxNDExOlx0cmV0ID0gc2ltcGxlX3JlYWRfZnJvbV9idWZmZXIodXNlcl9idWYsIGNvdW50LCBwcG9zLCBidWYsIHBvcyk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZWJ1Z2ZzLmMtMTQxMi1cdGtmcmVlKGJ1Zik7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vZGVidWdmcy5jPTE0MTY9c3RhdGljIHNzaXplX3QgaXdsX2RiZ2ZzX3Vjb2RlX2J0X3N0YXRzX3JlYWQoc3RydWN0IGZpbGUgKmZpbGUsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vZGVidWdmcy5jLTE0OTgtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZWJ1Z2ZzLmM6MTQ5OTpcdHJldCA9IHNpbXBsZV9yZWFkX2Zyb21fYnVmZmVyKHVzZXJfYnVmLCBjb3VudCwgcHBvcywgYnVmLCBwb3MpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vZGVidWdmcy5jLTE1MDAtXHRrZnJlZShidWYpO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2RlYnVnZnMuYz0xNTA0PXN0YXRpYyBzc2l6ZV90IGl3bF9kYmdmc19yZXBseV90eF9lcnJvcl9yZWFkKHN0cnVjdCBmaWxlICpmaWxlLFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2RlYnVnZnMuYy0xNjQwLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vZGVidWdmcy5jOjE2NDE6XHRyZXQgPSBzaW1wbGVfcmVhZF9mcm9tX2J1ZmZlcih1c2VyX2J1ZiwgY291bnQsIHBwb3MsIGJ1ZiwgcG9zKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2RlYnVnZnMuYy0xNjQyLVx0a2ZyZWUoYnVmKTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZWJ1Z2ZzLmM9MTY0Nj1zdGF0aWMgc3NpemVfdCBpd2xfZGJnZnNfc2Vuc2l0aXZpdHlfcmVhZChzdHJ1Y3QgZmlsZSAqZmlsZSxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZWJ1Z2ZzLmMtMTcxOC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2RlYnVnZnMuYzoxNzE5Olx0cmV0ID0gc2ltcGxlX3JlYWRfZnJvbV9idWZmZXIodXNlcl9idWYsIGNvdW50LCBwcG9zLCBidWYsIHBvcyk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZWJ1Z2ZzLmMtMTcyMC1cdGtmcmVlKGJ1Zik7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vZGVidWdmcy5jPTE3MjU9c3RhdGljIHNzaXplX3QgaXdsX2RiZ2ZzX2NoYWluX25vaXNlX3JlYWQoc3RydWN0IGZpbGUgKmZpbGUsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vZGVidWdmcy5jLTE3NzUtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZWJ1Z2ZzLmM6MTc3NjpcdHJldCA9IHNpbXBsZV9yZWFkX2Zyb21fYnVmZmVyKHVzZXJfYnVmLCBjb3VudCwgcHBvcywgYnVmLCBwb3MpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vZGVidWdmcy5jLTE3NzctXHRrZnJlZShidWYpO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2RlYnVnZnMuYz0xNzgxPXN0YXRpYyBzc2l6ZV90IGl3bF9kYmdmc19wb3dlcl9zYXZlX3N0YXR1c19yZWFkKHN0cnVjdCBmaWxlICpmaWxlLFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2RlYnVnZnMuYy0xODAwLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vZGVidWdmcy5jOjE4MDE6XHRyZXR1cm4gc2ltcGxlX3JlYWRfZnJvbV9idWZmZXIodXNlcl9idWYsIGNvdW50LCBwcG9zLCBidWYsIHBvcyk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZWJ1Z2ZzLmMtMTgwMi19XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vZGVidWdmcy5jPTE4Mjg9c3RhdGljIHNzaXplX3QgaXdsX2RiZ2ZzX3Vjb2RlX3RyYWNpbmdfcmVhZChzdHJ1Y3QgZmlsZSAqZmlsZSxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZWJ1Z2ZzLmMtMTg0NS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2RlYnVnZnMuYzoxODQ2Olx0cmV0dXJuIHNpbXBsZV9yZWFkX2Zyb21fYnVmZmVyKHVzZXJfYnVmLCBjb3VudCwgcHBvcywgYnVmLCBwb3MpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vZGVidWdmcy5jLTE4NDctfVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2RlYnVnZnMuYz0xODc5PXN0YXRpYyBzc2l6ZV90IGl3bF9kYmdmc19yeG9uX2ZsYWdzX3JlYWQoc3RydWN0IGZpbGUgKmZpbGUsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vZGVidWdmcy5jLTE4ODgtXHRcdGxlMzJfdG9fY3B1KHByaXYtXHUwMDNlY29udGV4dHNbSVdMX1JYT05fQ1RYX0JTU10uYWN0aXZlLmZsYWdzKSk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZWJ1Z2ZzLmM6MTg4OTpcdHJldHVybiBzaW1wbGVfcmVhZF9mcm9tX2J1ZmZlcih1c2VyX2J1ZiwgY291bnQsIHBwb3MsIGJ1ZiwgbGVuKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2RlYnVnZnMuYy0xODkwLX1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZWJ1Z2ZzLmM9MTg5Mj1zdGF0aWMgc3NpemVfdCBpd2xfZGJnZnNfcnhvbl9maWx0ZXJfZmxhZ3NfcmVhZChzdHJ1Y3QgZmlsZSAqZmlsZSxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZWJ1Z2ZzLmMtMTkwMS1cdFx0bGUzMl90b19jcHUocHJpdi1cdTAwM2Vjb250ZXh0c1tJV0xfUlhPTl9DVFhfQlNTXS5hY3RpdmUuZmlsdGVyX2ZsYWdzKSk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZWJ1Z2ZzLmM6MTkwMjpcdHJldHVybiBzaW1wbGVfcmVhZF9mcm9tX2J1ZmZlcih1c2VyX2J1ZiwgY291bnQsIHBwb3MsIGJ1ZiwgbGVuKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2RlYnVnZnMuYy0xOTAzLX1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZWJ1Z2ZzLmM9MTkwNT1zdGF0aWMgc3NpemVfdCBpd2xfZGJnZnNfbWlzc2VkX2JlYWNvbl9yZWFkKHN0cnVjdCBmaWxlICpmaWxlLFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2RlYnVnZnMuYy0xOTE2LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vZGVidWdmcy5jOjE5MTc6XHRyZXR1cm4gc2ltcGxlX3JlYWRfZnJvbV9idWZmZXIodXNlcl9idWYsIGNvdW50LCBwcG9zLCBidWYsIHBvcyk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZWJ1Z2ZzLmMtMTkxOC19XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vZGVidWdmcy5jPTE5NDY9c3RhdGljIHNzaXplX3QgaXdsX2RiZ2ZzX3BsY3BfZGVsdGFfcmVhZChzdHJ1Y3QgZmlsZSAqZmlsZSxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZWJ1Z2ZzLmMtMTk1Ny1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2RlYnVnZnMuYzoxOTU4Olx0cmV0dXJuIHNpbXBsZV9yZWFkX2Zyb21fYnVmZmVyKHVzZXJfYnVmLCBjb3VudCwgcHBvcywgYnVmLCBwb3MpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vZGVidWdmcy5jLTE5NTktfVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2RlYnVnZnMuYz0xOTg1PXN0YXRpYyBzc2l6ZV90IGl3bF9kYmdmc19yZl9yZXNldF9yZWFkKHN0cnVjdCBmaWxlICpmaWxlLFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2RlYnVnZnMuYy0yMDA2LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vZGVidWdmcy5jOjIwMDc6XHRyZXR1cm4gc2ltcGxlX3JlYWRfZnJvbV9idWZmZXIodXNlcl9idWYsIGNvdW50LCBwcG9zLCBidWYsIHBvcyk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZWJ1Z2ZzLmMtMjAwOC19XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vZGVidWdmcy5jPTIwNDU9c3RhdGljIHNzaXplX3QgaXdsX2RiZ2ZzX2J0X3RyYWZmaWNfcmVhZChzdHJ1Y3QgZmlsZSAqZmlsZSxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZWJ1Z2ZzLmMtMjA1NS1cdFx0cG9zICYjNDM7PSBzY25wcmludGYoYnVmICYjNDM7IHBvcywgYnVmc3ogLSBwb3MsIFwmIzM0O0JUIGNvZXggZGlzYWJsZWRcXG5cJiMzNDspO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vZGVidWdmcy5jOjIwNTY6XHRcdHJldHVybiBzaW1wbGVfcmVhZF9mcm9tX2J1ZmZlcih1c2VyX2J1ZiwgY291bnQsIHBwb3MsIGJ1ZiwgcG9zKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2RlYnVnZnMuYy0yMDU3LVx0fVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2RlYnVnZnMuYy0yMDg2LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vZGVidWdmcy5jOjIwODc6XHRyZXR1cm4gc2ltcGxlX3JlYWRfZnJvbV9idWZmZXIodXNlcl9idWYsIGNvdW50LCBwcG9zLCBidWYsIHBvcyk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZWJ1Z2ZzLmMtMjA4OC19XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vZGVidWdmcy5jPTIwOTA9c3RhdGljIHNzaXplX3QgaXdsX2RiZ2ZzX3Byb3RlY3Rpb25fbW9kZV9yZWFkKHN0cnVjdCBmaWxlICpmaWxlLFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2RlYnVnZnMuYy0yMTA4LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vZGVidWdmcy5jOjIxMDk6XHRyZXR1cm4gc2ltcGxlX3JlYWRfZnJvbV9idWZmZXIodXNlcl9idWYsIGNvdW50LCBwcG9zLCBidWYsIHBvcyk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZWJ1Z2ZzLmMtMjExMC19XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vZGVidWdmcy5jPTIxNzI9c3RhdGljIHNzaXplX3QgaXdsX2RiZ2ZzX2xvZ19ldmVudF9yZWFkKHN0cnVjdCBmaWxlICpmaWxlLFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2RlYnVnZnMuYy0yMTgxLVx0aWYgKHJldCBcdTAwM2UgMClcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2RlYnVnZnMuYzoyMTgyOlx0XHRyZXQgPSBzaW1wbGVfcmVhZF9mcm9tX2J1ZmZlcih1c2VyX2J1ZiwgY291bnQsIHBwb3MsIGJ1ZiwgcmV0KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2RlYnVnZnMuYy0yMTgzLVx0a2ZyZWUoYnVmKTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZWJ1Z2ZzLmM9MjIxMz1zdGF0aWMgc3NpemVfdCBpd2xfZGJnZnNfY2FsaWJfZGlzYWJsZWRfcmVhZChzdHJ1Y3QgZmlsZSAqZmlsZSxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZWJ1Z2ZzLmMtMjIzNy1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2RlYnVnZnMuYzoyMjM4Olx0cmV0dXJuIHNpbXBsZV9yZWFkX2Zyb21fYnVmZmVyKHVzZXJfYnVmLCBjb3VudCwgcHBvcywgYnVmLCBwb3MpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vZGVidWdmcy5jLTIyMzktfVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL21hYzgwMjExLmM9MTM4OD1zdGF0aWMgaW50IGl3bGFnbl9tYWNfY2hhbmdlX2ludGVyZmFjZShzdHJ1Y3QgaWVlZTgwMjExX2h3ICpodyxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9tYWM4MDIxMS5jLTE0MDYtXHQvKlxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vbWFjODAyMTEuYzoxNDA3Olx0ICogVG8gc2ltcGxpZnkgdGhpcyBjb2RlLCBvbmx5IHN1cHBvcnQgY2hhbmdlcyBvbiB0aGVcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL21hYzgwMjExLmMtMTQwOC1cdCAqIEJTUyBjb250ZXh0LiBUaGUgUEFOIGNvbnRleHQgaXMgdXN1YWxseSByZWFzc2lnbmVkXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vcnMuYz0yMTU3PXN0YXRpYyB2b2lkIHJzX3JhdGVfc2NhbGVfcGVyZm9ybShzdHJ1Y3QgaXdsX3ByaXYgKnByaXYsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vcnMuYy0yNjAwLSAqICAgICAgIGlmIHRoZSBkcml2ZXImIzM5O3MgaXdsLWFnbi1ycyByYXRlIHNjYWxpbmcgYWxnb3JpdGhtIGlzIHVzZWQsIGluc3RlYWQgb2ZcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL3JzLmM6MjYwMTogKiAgICAgICByYzgwMjExX3NpbXBsZS5cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL3JzLmMtMjYwMi0gKlxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL3JzLmM9MzA2MT1zdGF0aWMgc3NpemVfdCByc19zdGFfZGJnZnNfc2NhbGVfdGFibGVfcmVhZChzdHJ1Y3QgZmlsZSAqZmlsZSxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9ycy5jLTMxNTctXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9ycy5jOjMxNTg6XHRyZXQgPSBzaW1wbGVfcmVhZF9mcm9tX2J1ZmZlcih1c2VyX2J1ZiwgY291bnQsIHBwb3MsIGJ1ZmYsIGRlc2MpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vcnMuYy0zMTU5LVx0a2ZyZWUoYnVmZik7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vcnMuYz0zMTYzPXN0YXRpYyBjb25zdCBzdHJ1Y3QgZmlsZV9vcGVyYXRpb25zIHJzX3N0YV9kYmdmc19zY2FsZV90YWJsZV9vcHMgPSB7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vcnMuYy0zMTY1LVx0LnJlYWQgPSByc19zdGFfZGJnZnNfc2NhbGVfdGFibGVfcmVhZCxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL3JzLmM6MzE2NjpcdC5vcGVuID0gc2ltcGxlX29wZW4sXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9ycy5jLTMxNjctXHQubGxzZWVrID0gZGVmYXVsdF9sbHNlZWssXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vcnMuYz0zMTY5PXN0YXRpYyBzc2l6ZV90IHJzX3N0YV9kYmdmc19zdGF0c190YWJsZV9yZWFkKHN0cnVjdCBmaWxlICpmaWxlLFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL3JzLmMtMzIwMS1cdH1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL3JzLmM6MzIwMjpcdHJldCA9IHNpbXBsZV9yZWFkX2Zyb21fYnVmZmVyKHVzZXJfYnVmLCBjb3VudCwgcHBvcywgYnVmZiwgZGVzYyk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9ycy5jLTMyMDMtXHRrZnJlZShidWZmKTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9ycy5jPTMyMDc9c3RhdGljIGNvbnN0IHN0cnVjdCBmaWxlX29wZXJhdGlvbnMgcnNfc3RhX2RiZ2ZzX3N0YXRzX3RhYmxlX29wcyA9IHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL3JzLmMtMzIwOC1cdC5yZWFkID0gcnNfc3RhX2RiZ2ZzX3N0YXRzX3RhYmxlX3JlYWQsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9ycy5jOjMyMDk6XHQub3BlbiA9IHNpbXBsZV9vcGVuLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vcnMuYy0zMjEwLVx0Lmxsc2VlayA9IGRlZmF1bHRfbGxzZWVrLFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL3JzLmM9MzIxMz1zdGF0aWMgc3NpemVfdCByc19zdGFfZGJnZnNfcmF0ZV9zY2FsZV9kYXRhX3JlYWQoc3RydWN0IGZpbGUgKmZpbGUsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vcnMuYy0zMjI5LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vcnMuYzozMjMwOlx0cmV0dXJuIHNpbXBsZV9yZWFkX2Zyb21fYnVmZmVyKHVzZXJfYnVmLCBjb3VudCwgcHBvcywgYnVmZiwgZGVzYyk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9ycy5jLTMyMzEtfVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL3JzLmM9MzIzMz1zdGF0aWMgY29uc3Qgc3RydWN0IGZpbGVfb3BlcmF0aW9ucyByc19zdGFfZGJnZnNfcmF0ZV9zY2FsZV9kYXRhX29wcyA9IHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL3JzLmMtMzIzNC1cdC5yZWFkID0gcnNfc3RhX2RiZ2ZzX3JhdGVfc2NhbGVfZGF0YV9yZWFkLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vcnMuYzozMjM1Olx0Lm9wZW4gPSBzaW1wbGVfb3BlbixcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL3JzLmMtMzIzNi1cdC5sbHNlZWsgPSBkZWZhdWx0X2xsc2Vlayxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9zY2FuLmM9MzY9c3RhdGljIGludCBpd2xfc2VuZF9zY2FuX2Fib3J0KHN0cnVjdCBpd2xfcHJpdiAqcHJpdilcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9zY2FuLmMtNjAtXHRcdCAqIDIgZm9yIFwmIzM0O2ZhaWx1cmVcJiMzNDsuICBBIGZhaWx1cmUgY29uZGl0aW9uIGNhbiBiZVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vc2Nhbi5jOjYxOlx0XHQgKiBkdWUgdG8gc2ltcGx5IG5vdCBiZWluZyBpbiBhbiBhY3RpdmUgc2NhbiB3aGljaFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vc2Nhbi5jLTYyLVx0XHQgKiBjYW4gb2NjdXIgaWYgd2Ugc2VuZCB0aGUgc2NhbiBhYm9ydCBiZWZvcmUgd2Vcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2Z3L2FwaS9sb2NhdGlvbi5oPTIxMT1lbnVtIGl3bF90b2ZfcmVzcG9uZGVyX2NmZ19mbGFncyB7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9mdy9hcGkvbG9jYXRpb24uaC0yMzgtICogQHRvYV9vZmZzZXQ6IEFydGlmaWNpYWwgYWRkaXRpb24gW3BTZWNdIGZvciB0aGUgVG9BIC0gdG8gYmUgdXNlZCBmb3IgZGVidWdcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZncvYXBpL2xvY2F0aW9uLmg6MjM5OiAqXHRwdXJwb3Nlcywgc2ltdWxhdGluZyBzdGF0aW9uIG1vdmVtZW50IGJ5IGFkZGluZyB2YXJpb3VzIHZhbHVlc1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9mdy9hcGkvbG9jYXRpb24uaC0yNDAtICpcdHRvIHRoaXMgZmllbGRcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2Z3L2FwaS9sb2NhdGlvbi5oPTI0Nj1zdHJ1Y3QgaXdsX3RvZl9yZXNwb25kZXJfY29uZmlnX2NtZF92NiB7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9mdy9hcGkvbG9jYXRpb24uaC0yNzQtICogQHRvYV9vZmZzZXQ6IEFydGlmaWNpYWwgYWRkaXRpb24gW3BTZWNdIGZvciB0aGUgVG9BIC0gdG8gYmUgdXNlZCBmb3IgZGVidWdcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZncvYXBpL2xvY2F0aW9uLmg6Mjc1OiAqXHRwdXJwb3Nlcywgc2ltdWxhdGluZyBzdGF0aW9uIG1vdmVtZW50IGJ5IGFkZGluZyB2YXJpb3VzIHZhbHVlc1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9mdy9hcGkvbG9jYXRpb24uaC0yNzYtICpcdHRvIHRoaXMgZmllbGRcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2Z3L2FwaS9sb2NhdGlvbi5oPTI4Mj1zdHJ1Y3QgaXdsX3RvZl9yZXNwb25kZXJfY29uZmlnX2NtZF92NyB7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9mdy9hcGkvbG9jYXRpb24uaC0zMTMtICogQHRvYV9vZmZzZXQ6IEFydGlmaWNpYWwgYWRkaXRpb24gW3BTZWNdIGZvciB0aGUgVG9BIC0gdG8gYmUgdXNlZCBmb3IgZGVidWdcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZncvYXBpL2xvY2F0aW9uLmg6MzE0OiAqXHRwdXJwb3Nlcywgc2ltdWxhdGluZyBzdGF0aW9uIG1vdmVtZW50IGJ5IGFkZGluZyB2YXJpb3VzIHZhbHVlc1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9mdy9hcGkvbG9jYXRpb24uaC0zMTUtICpcdHRvIHRoaXMgZmllbGRcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2Z3L2FwaS9sb2NhdGlvbi5oPTMzMD1zdHJ1Y3QgaXdsX3RvZl9yZXNwb25kZXJfY29uZmlnX2NtZF92OCB7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9mdy9hcGkvbG9jYXRpb24uaC0zNTktICogQHRvYV9vZmZzZXQ6IEFydGlmaWNpYWwgYWRkaXRpb24gW3BTZWNdIGZvciB0aGUgVG9BIC0gdG8gYmUgdXNlZCBmb3IgZGVidWdcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZncvYXBpL2xvY2F0aW9uLmg6MzYwOiAqXHRwdXJwb3Nlcywgc2ltdWxhdGluZyBzdGF0aW9uIG1vdmVtZW50IGJ5IGFkZGluZyB2YXJpb3VzIHZhbHVlc1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9mdy9hcGkvbG9jYXRpb24uaC0zNjEtICpcdHRvIHRoaXMgZmllbGRcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2Z3L2FwaS9sb2NhdGlvbi5oPTM4MD1zdHJ1Y3QgaXdsX3RvZl9yZXNwb25kZXJfY29uZmlnX2NtZF92OSB7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9mdy9hcGkvbG9jYXRpb24uaC00MTEtICogQHRvYV9vZmZzZXQ6IEFydGlmaWNpYWwgYWRkaXRpb24gW3BTZWNdIGZvciB0aGUgVG9BIC0gdG8gYmUgdXNlZCBmb3IgZGVidWdcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZncvYXBpL2xvY2F0aW9uLmg6NDEyOiAqXHRwdXJwb3Nlcywgc2ltdWxhdGluZyBzdGF0aW9uIG1vdmVtZW50IGJ5IGFkZGluZyB2YXJpb3VzIHZhbHVlc1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9mdy9hcGkvbG9jYXRpb24uaC00MTMtICpcdHRvIHRoaXMgZmllbGRcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2Z3L2FwaS9wb3dlci5oPTk2PWVudW0gaXdsX3Bvd2VyX2ZsYWdzIHtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2Z3L2FwaS9wb3dlci5oLTExMi0gKlx0aXMgdXNlZCBhbHNvIHdpdGggYSBuZXdcdHBvd2VyIEFQSSBmb3IgZGV2aWNlIHdpZGUgcG93ZXIgc2V0dGluZ3MuXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2Z3L2FwaS9wb3dlci5oOjExMzogKiBQT1dFUl9UQUJMRV9DTUQgPSAweDc3IChjb21tYW5kLCBoYXMgc2ltcGxlIGdlbmVyaWMgcmVzcG9uc2UpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2Z3L2FwaS9wb3dlci5oLTExNC0gKlxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZncvYXBpL3Bvd2VyLmg9MTU3PWVudW0gaXdsX2RldmljZV9wb3dlcl9mbGFncyB7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9mdy9hcGkvcG93ZXIuaC0xNjUtICogc3RydWN0IGl3bF9kZXZpY2VfcG93ZXJfY21kIC0gZGV2aWNlIHdpZGUgcG93ZXIgY29tbWFuZC5cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZncvYXBpL3Bvd2VyLmg6MTY2OiAqIERFVklDRV9QT1dFUl9DTUQgPSAweDc3IChjb21tYW5kLCBoYXMgc2ltcGxlIGdlbmVyaWMgcmVzcG9uc2UpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2Z3L2FwaS9wb3dlci5oLTE2Ny0gKlxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZncvYXBpL3Bvd2VyLmg9MTcxPXN0cnVjdCBpd2xfZGV2aWNlX3Bvd2VyX2NtZCB7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9mdy9hcGkvcG93ZXIuaC0xNzgtICogc3RydWN0IGl3bF9tYWNfcG93ZXJfY21kIC0gTmV3IHBvd2VyIGNvbW1hbmQgY29udGFpbmluZyB1QVBTRCBzdXBwb3J0XG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2Z3L2FwaS9wb3dlci5oOjE3OTogKiBNQUNfUE1fUE9XRVJfVEFCTEUgPSAweEE5IChjb21tYW5kLCBoYXMgc2ltcGxlIGdlbmVyaWMgcmVzcG9uc2UpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2Z3L2FwaS9wb3dlci5oLTE4MC0gKiBAaWRfYW5kX2NvbG9yOlx0TUFDIGNvbnRleCBpZGVudGlmaWVyLCBcdTAwMjZlbnVtIGl3bF9jdHh0X2lkX2FuZF9jb2xvclxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZncvZGJnLmg9MTU2PXN0YXRpYyBpbmxpbmUgdm9pZFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9mdy9kYmcuaDoxNTc6X2l3bF9md19kYmdfdHJpZ2dlcl9zaW1wbGVfc3RvcChzdHJ1Y3QgaXdsX2Z3X3J1bnRpbWUgKmZ3cnQsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2Z3L2RiZy5oLTE1OC1cdFx0XHRcdHN0cnVjdCB3aXJlbGVzc19kZXYgKndkZXYsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9mdy9kYmcuaC0xNjktXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2Z3L2RiZy5oOjE3MDojZGVmaW5lIGl3bF9md19kYmdfdHJpZ2dlcl9zaW1wbGVfc3RvcChmd3J0LCB3ZGV2LCB0cmlnKVx0XFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZncvZGJnLmg6MTcxOlx0X2l3bF9md19kYmdfdHJpZ2dlcl9zaW1wbGVfc3RvcCgoZndydCksICh3ZGV2KSxcdFx0XFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZncvZGJnLmgtMTcyLVx0XHRcdFx0XHRpd2xfZndfZGJnX2dldF90cmlnZ2VyKChmd3J0KS1cdTAwM2VmdyxcXFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZncvZGVidWdmcy5jPTM2PXN0YXRpYyBzc2l6ZV90IF9pd2xfZGJnZnNfIyNuYW1lIyNfcmVhZChzdHJ1Y3QgZmlsZSAqZmlsZSxcdFx0XFxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2Z3L2RlYnVnZnMuYy01MC1cdFx0cmV0dXJuIGRhdGEtXHUwMDNlcmxlbjtcdFx0XHRcdFx0XFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZncvZGVidWdmcy5jOjUxOlx0cmV0dXJuIHNpbXBsZV9yZWFkX2Zyb21fYnVmZmVyKHVzZXJfYnVmLCBjb3VudCwgcHBvcyxcdFx0XFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZncvZGVidWdmcy5jLTUyLVx0XHRcdFx0ICAgICAgIGRhdGEtXHUwMDNlcmJ1ZiwgZGF0YS1cdTAwM2VybGVuKTtcdFx0XFxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2Z3L3VlZmkuaD0yNDE9c3RydWN0IHVlZmlfY252X3dwZmNfZGF0YSB7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9mdy91ZWZpLmgtMjQ3LSAqIFRoaXMgaXMga25vd24gdG8gYmUgYnJva2VuIG9uIHY0LjE5IGFuZCB0byB3b3JrIG9uIHY1LjQuICBVbnRpbCB3ZVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9mdy91ZWZpLmg6MjQ4OiAqIGZpZ3VyZSBvdXQgd2h5IHRoaXMgaXMgdGhlIGNhc2UgYW5kIGhvdyB0byBtYWtlIGl0IHdvcmssIHNpbXBseVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9mdy91ZWZpLmgtMjQ5LSAqIGRpc2FibGUgdGhlIGZlYXR1cmUgaW4gb2xkIGtlcm5lbHMuXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9pd2wtY3NyLmgtMTctICogVXNlIGl3bF93cml0ZTMyKCkgYW5kIGl3bF9yZWFkMzIoKSBmYW1pbHkgdG8gYWNjZXNzIHRoZXNlIHJlZ2lzdGVycztcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvaXdsLWNzci5oOjE4OiAqIHRoZXNlIHByb3ZpZGUgc2ltcGxlIFBDSSBidXMgYWNjZXNzLCB3aXRob3V0IHdha2luZyB1cCB0aGUgTUFDLlxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9pd2wtY3NyLmgtMTktICogRG8gbm90IHVzZSBpd2xfd3JpdGVfZGlyZWN0MzIoKSBmYW1pbHkgZm9yIHRoZXNlIHJlZ2lzdGVycztcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2l3bC1jc3IuaD0zMjE9ZW51bSB7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9pd2wtY3NyLmgtNTA4LSAqIERvIG5vdCB1c2UgaXdsX3dyaXRlMzIoKS9pd2xfcmVhZDMyKCkgZmFtaWx5IHRvIGFjY2VzcyB0aGVzZSByZWdpc3RlcnM7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2l3bC1jc3IuaDo1MDk6ICogdGhlc2UgcHJvdmlkZSBvbmx5IHNpbXBsZSBQQ0kgYnVzIGFjY2Vzcywgd2l0aG91dCB3YWtpbmcgdXAgdGhlIE1BQy5cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvaXdsLWNzci5oLTUxMC0gKi9cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2l3bC1kZWJ1Zy5oPTEwMj1kbyB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcdFx0XHRcXFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvaXdsLWRlYnVnLmgtMTEzLSAqXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2l3bC1kZWJ1Zy5oOjExNDogKiBJZiB5b3UgYXJlIGRlZmluaW5nIGEgbmV3IGRlYnVnIGNsYXNzaWZpY2F0aW9uLCBzaW1wbHkgYWRkIGl0IHRvIHRoZSAjZGVmaW5lXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2l3bC1kZWJ1Zy5oLTExNS0gKiBsaXN0IGhlcmUgaW4gdGhlIGZvcm0gb2Zcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2l3bC1vcC1tb2RlLmg9MjA9c3RydWN0IGl3bF9yZl9jZmc7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9pd2wtb3AtbW9kZS5oLTM2LSAqXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2l3bC1vcC1tb2RlLmg6Mzc6ICogVGhlIG9wZXJhdGlvbmFsIG1vZGUgaGFzIGEgdmVyeSBzaW1wbGUgbGlmZSBjeWNsZS5cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvaXdsLW9wLW1vZGUuaC0zOC0gKlxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvaXdsLXV0aWxzLmM9ODY9c3RhdGljIHUzMiBpd2xfZGl2X2J5X2RiKHUzMiB2YWx1ZSwgdTggZGIpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9pd2wtdXRpbHMuYy04OC1cdC8qXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2l3bC11dGlscy5jOjg5Olx0ICogMl4zMiAqIDEwKiooaSAvIDEwKSBmb3IgaSA9IFsxLCAxMF0sIHNraXBwaW5nIDAgYW5kIHNpbXBseSBzdG9wcGluZ1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9pd2wtdXRpbHMuYy05MC1cdCAqIGF0IDEwIGRCIGFuZCBsb29waW5nIGluc3RlYWQgb2YgdXNpbmcgYSBtdWNoIGxhcmdlciB0YWJsZS5cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21laS9pd2wtbWVpLmgtMTc0LSAqIENTTUUgY2FuIHRyYW5zbWl0IHBhY2tldHMsIHRocm91Z2ggdGhlIG5ldGRldiB0aGF0IGl0IGdldHMgZnJvbSB0aGUgd2lmaVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tZWkvaXdsLW1laS5oOjE3NTogKiBkcml2ZXIuIEl0JiMzOTtsbCBzZW5kIHBhY2tldCBpbiB0aGUgODAyLjMgZm9ybWF0IGFuZCBzaW1wbHkgY2FsbFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tZWkvaXdsLW1laS5oLTE3Ni0gKiBkZXZfcXVldWVfeG1pdC5cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21laS9pd2wtbWVpLmg9NDI4PXZvaWQgaXdsX21laV9zZXRfbmV0ZGV2KHN0cnVjdCBuZXRfZGV2aWNlICpuZXRkZXYpO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWVpL2l3bC1tZWkuaC00MzYtICpcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWVpL2l3bC1tZWkuaDo0Mzc6ICogVGhpcyBmdW5jdGlvbiBkb2VzbiYjMzk7dCB0YWtlIGFueSBsb2NrLCBpdCBzaW1wbHkgdHJpZXMgdG8gY2F0Y2ggREhDUFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tZWkvaXdsLW1laS5oLTQzOC0gKiBwYWNrZXRzIHNlbnQgYnkgdGhlIHdpZmkgZHJpdmVyLiBJZiB0aGUgcGFja2V0IGlzIGEgREhDUCBwYWNrZXQsIGl0XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tZWkvbWFpbi5jPTE5MDA9c3RhdGljIGNvbnN0IHN0cnVjdCBmaWxlX29wZXJhdGlvbnMgaXdsX21laV9kYmdmc19zZW5kX3N0YXJ0X21lc3NhZ2Vfb3BzID0ge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tZWkvbWFpbi5jLTE5MDEtXHQud3JpdGUgPSBpd2xfbWVpX2RiZ2ZzX3NlbmRfc3RhcnRfbWVzc2FnZV93cml0ZSxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWVpL21haW4uYzoxOTAyOlx0Lm9wZW4gPSBzaW1wbGVfb3BlbixcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWVpL21haW4uYy0xOTAzLVx0Lmxsc2VlayA9IGRlZmF1bHRfbGxzZWVrLFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWVpL21haW4uYz0xOTE1PXN0YXRpYyBjb25zdCBzdHJ1Y3QgZmlsZV9vcGVyYXRpb25zIGl3bF9tZWlfZGJnZnNfcmVxX293bmVyc2hpcF9vcHMgPSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21laS9tYWluLmMtMTkxNi1cdC53cml0ZSA9IGl3bF9tZWlfZGJnZnNfcmVxX293bmVyc2hpcF93cml0ZSxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWVpL21haW4uYzoxOTE3Olx0Lm9wZW4gPSBzaW1wbGVfb3BlbixcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWVpL21haW4uYy0xOTE4LVx0Lmxsc2VlayA9IGRlZmF1bHRfbGxzZWVrLFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL2RlYnVnZnMuaD0zNT1zdGF0aWMgc3NpemVfdCBfaXdsX2RiZ2ZzXyMjbmFtZSMjX3JlYWQoc3RydWN0IGZpbGUgKmZpbGUsXHRcdFxcXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvZGVidWdmcy5oLTQ5LVx0XHRyZXR1cm4gZGF0YS1cdTAwM2VybGVuO1x0XHRcdFx0XHRcXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvZGVidWdmcy5oOjUwOlx0cmV0dXJuIHNpbXBsZV9yZWFkX2Zyb21fYnVmZmVyKHVzZXJfYnVmLCBjb3VudCwgcHBvcyxcdFx0XFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL2RlYnVnZnMuaC01MS1cdFx0XHRcdCAgICAgICBkYXRhLVx1MDAzZWJ1ZiwgZGF0YS1cdTAwM2VybGVuKTtcdFx0XFxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC9kZWJ1Z2ZzLmg9MTAxPXN0YXRpYyBzc2l6ZV90IF9faXdsX2RiZ2ZzXyMjbmFtZSMjX3dyaXRlKHN0cnVjdCBmaWxlICpmaWxlLFx0XHRcXFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL2RlYnVnZnMuaC0xMTktXHRcdC53cml0ZSA9IF9faXdsX2RiZ2ZzXyMjbmFtZSMjX3dyaXRlLFx0XHRcdFxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC9kZWJ1Z2ZzLmg6MTIwOlx0XHQub3BlbiA9IHNpbXBsZV9vcGVuLFx0XHRcdFx0XHRcXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvZGVidWdmcy5oLTEyMS1cdFx0Lmxsc2VlayA9IGdlbmVyaWNfZmlsZV9sbHNlZWssXHRcdFx0XHRcXFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL2RlYnVnZnMuaD0xNjI9c3RhdGljIHNzaXplX3QgX19pd2xfZGJnZnNfIyNuYW1lIyNfcmVhZChzdHJ1Y3QgZmlsZSAqZmlsZSxcdFx0XFxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC9kZWJ1Z2ZzLmgtMTc5LVx0XHRyZXR1cm4gZGF0YS1cdTAwM2VybGVuO1x0XHRcdFx0XHRcXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvZGVidWdmcy5oOjE4MDpcdHJldHVybiBzaW1wbGVfcmVhZF9mcm9tX2J1ZmZlcih1c2VyX2J1ZiwgY291bnQsIHBwb3MsXHRcdFxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC9kZWJ1Z2ZzLmgtMTgxLVx0XHRcdFx0ICAgICAgIGRhdGEtXHUwMDNlYnVmLCBkYXRhLVx1MDAzZXJsZW4pO1x0XHRcXFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL21hYzgwMjExLmM9MTM2OT1pd2xfbWxkX21hYzgwMjExX2NhbmNlbF9od19zY2FuKHN0cnVjdCBpZWVlODAyMTFfaHcgKmh3LFxuXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+NS8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMzEgMTg6MTU8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjctZmxhc2g8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMTYzMjAKCQkJCQkJCW91dHB1dDogNDUKCQkJCQkJCXRob3VnaHRzOiAyNAoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+SGVyZSYjMzk7cyBteSBhdHRlbXB0IGF0IHN1bW1hcml6aW5nIHRoYXQgdGhvdWdodCBwcm9jZXNzLCB0YWlsb3JlZCBmb3IgYW4gZXhwZXJ0IGF1ZGllbmNlOgoKKipEaXZpbmcgaW50byB0aGUgaXdsd2lmaSBEcml2ZXIqKgoKT2theSwgc28gSSYjMzk7bSBwb2tpbmcgYXJvdW5kIHRoZSBrZXJuZWwmIzM5O3MgaXdsd2lmaSBkcml2ZXIgY29kZS4gSSYjMzk7bSBwcmltYXJpbHkgaW50ZXJlc3RlZCBpbiB1bmRlcnN0YW5kaW5nIGl0cyBpbnRlcmFjdGlvbnMuIFNwZWNpZmljYWxseSwgSSB3YW50IHRvIHRyYWNlIGhvdyBpdCBob29rcyBpbnRvIHRoZSBzeXN0ZW0uIE15IGZpcnN0IGxpbmUgb2YgaW52ZXN0aWdhdGlvbiB3aWxsIGJlIHRvIGZpZ3VyZSBvdXQgdGhlIGJ1cyByZWdpc3RyYXRpb25zLiBXaGF0IGJ1c2VzIGRvZXMgdGhpcyBkcml2ZXIgaW5pdGlhbGl6ZSB3aXRoPyBQQ0k/IFVTQj8gUGVyaGFwcyBldmVuIFNESU8gb3Igc29tZXRoaW5nIG1vcmUgb2JzY3VyZSwgZGVwZW5kaW5nIG9uIHRoZSBJbnRlbCB3aXJlbGVzcyBjaGlwc2V0cyBpdCBzdXBwb3J0cz8gSSBuZWVkIHRvIGdldCBhIGNsZWFyIHBpY3R1cmUgb2YgaXRzIGRldmljZSBwcm9iaW5nIGFuZCBkcml2ZXIgYmluZGluZyBtZWNoYW5pc21zLiBVbmRlcnN0YW5kaW5nIHRoZSBidXMgaW50ZXJhY3Rpb25zIHdpbGwgdGhlbiBkaWN0YXRlIHdoaWNoIGtlcm5lbCBjb21wb25lbnRzIG9yIGNvbmZpZ3VyYXRpb25zLCBpZiBhbnksIEkgbmVlZCB0byBmb2N1cyBteSBhdHRlbnRpb24uCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Ni8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMzEgMTg6MTU8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7bW9kdWxlX3BjaV9kcml2ZXJ8cGNpX3JlZ2lzdGVyX2RyaXZlciYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvaXdsLWRydi5jPTIwNjI9c3RhdGljIGludCBfX2luaXQgaXdsX2Rydl9pbml0KHZvaWQpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9pd2wtZHJ2LmMtMjA3My1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvaXdsLWRydi5jOjIwNzQ6XHRlcnIgPSBpd2xfcGNpX3JlZ2lzdGVyX2RyaXZlcigpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9pd2wtZHJ2LmMtMjA3NS1cdGlmIChlcnIpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9pd2wtdHJhbnMuaD0xMjEyPXN0YXRpYyBpbmxpbmUgdm9pZCBpd2xfdHJhbnNfbm90aWZ5X2Z3X2Vycm9yKHN0cnVjdCBpd2xfdHJhbnMgKnRyYW5zKVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvaXdsLXRyYW5zLmgtMTIxOS0gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2l3bC10cmFucy5oOjEyMjA6aW50IF9fbXVzdF9jaGVjayBpd2xfcGNpX3JlZ2lzdGVyX2RyaXZlcih2b2lkKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvaXdsLXRyYW5zLmgtMTIyMS12b2lkIGl3bF9wY2lfdW5yZWdpc3Rlcl9kcml2ZXIodm9pZCk7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9wY2llL2Rydi5jPTEzMjM9c3RhdGljIHN0cnVjdCBwY2lfZHJpdmVyIGl3bF9wY2lfZHJpdmVyID0ge1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvcGNpZS9kcnYuYy0xMzMxLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9wY2llL2Rydi5jOjEzMzI6aW50IF9fbXVzdF9jaGVjayBpd2xfcGNpX3JlZ2lzdGVyX2RyaXZlcih2b2lkKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9wY2llL2Rydi5jLTEzMzMte1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9wY2llL2Rydi5jLTEzMzQtXHRpbnQgcmV0O1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9wY2llL2Rydi5jOjEzMzU6XHRyZXQgPSBwY2lfcmVnaXN0ZXJfZHJpdmVyKFx1MDAyNml3bF9wY2lfZHJpdmVyKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvcGNpZS9kcnYuYy0xMzM2LVx0aWYgKHJldClcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD43LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8zMSAxODoxNTwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuNy1mbGFzaDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAxNzA4OAoJCQkJCQkJb3V0cHV0OiAzOQoJCQkJCQkJdGhvdWdodHM6IDI1CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Pa2F5LCBoZXJlJiMzOTtzIG15IHRha2Ugb24gdGhvc2UgdGhvdWdodHMsIGZyYW1lZCBhcyBhbiBleHBlcnQmIzM5O3MgaW50ZXJuYWwgbW9ub2xvZ3VlOgoKKipJbnZlc3RpZ2F0aW5nIGl3bHdpZmkgQnVzIFN1cHBvcnQqKgoKQWxyaWdodCwgbGV0JiMzOTtzIGdldCBkb3duIHRvIGJyYXNzIHRhY2tzLiBJIG5lZWQgdG8gbWFrZSBzdXJlIHdlJiMzOTtyZSBub3QganVzdCB0dW5uZWwtdmlzaW9uZWQgb24gUENJIGZvciB0aGUgaXdsd2lmaSBkcml2ZXIuIEl0JiMzOTtzIHRpbWUgdG8gZGlnIGRlZXBlciBhbmQgc2VlIGlmIHRoZSBkcml2ZXIgaXMgZGVzaWduZWQgdG8gc3VwcG9ydCBvdGhlciBidXMgdHlwZXMuIEkmIzM5O20gdGhpbmtpbmcgc3BlY2lmaWNhbGx5IGFib3V0IHBvc3NpYmlsaXRpZXMgYmV5b25kIFBDSSDigJMgYXJlIHdlIGxvb2tpbmcgYXQgVVNCIGltcGxlbWVudGF0aW9ucywgb3IgcGVyaGFwcyBwbGF0Zm9ybS1zcGVjaWZpYyBpbnRlZ3JhdGlvbnM/IFRoaXMgaXMgaW1wb3J0YW50OyBpZiB3ZSYjMzk7cmUgb25seSBjb25zaWRlcmluZyBQQ0ksIHdlIGNvdWxkIGJlIG1pc3NpbmcgYSB3aG9sZSBlY29zeXN0ZW0gb2YgcG90ZW50aWFsIGhhcmR3YXJlIHRoYXQgY291bGQgbGV2ZXJhZ2UgdGhpcyBkcml2ZXIuIEV4cGFuc2lvbiBoZXJlIGNvdWxkIGJlIGh1Z2UuIFRpbWUgdG8gbWFwIG91dCB0aGUgZGlmZmVyZW50IHBvc3NpYmlsaXRpZXMuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+OC8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMzEgMTg6MTY8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPkVycm9yOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bm8gbWF0Y2hlczwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtkcml2ZXJfcmVnaXN0ZXJ8cGxhdGZvcm1fZHJpdmVyJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS8mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7ZXJyb3ImIzM0OzogJiMzNDtubyBtYXRjaGVzJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjkvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzMxIDE4OjE2PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy43LWZsYXNoPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDE3MzE5CgkJCQkJCQlvdXRwdXQ6IDQ3CgkJCQkJCQl0aG91Z2h0czogMzUyCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKkFuYWx5emluZyB0aGUgUG90ZW50aWFsIGZvciBGdXp6aW5nIHdpdGggdGhlIGl3bHdpZmkgRHJpdmVyKioKCk9rYXksIHNvIEkmIzM5O20gbG9va2luZyBhdCBhIHBhdGNoIHJlbGF0ZWQgdG8gdGhlIGBpd2x3aWZpYCBkcml2ZXIsIHNwZWNpZmljYWxseSB0aGUgUENJIGRyaXZlciBgaXdsX3BjaV9kcml2ZXJgLiBNeSBpbW1lZGlhdGUgdGhvdWdodCBpcyB0byBkZXRlcm1pbmUgaWYgdGhpcyBwYXRjaCBpcyBhIGdvb2QgY2FuZGlkYXRlIGZvciBmdXp6aW5nLCBhbmQgSSBuZWVkIHRvIGFwcGx5IHRoZSBydWxlcyBvdXRsaW5lZC4gSSYjMzk7bGwgbmVlZCB0byBjaGVjayB0aGUgcGF0Y2ggZGV0YWlscyBhbmQgc2VlIGlmIGFueSBvZiB0aGUgY3JpdGVyaWEgdGhhdCB3b3VsZCBtYWtlIGl0ICpub3QqIGZ1enphYmxlIGFwcGx5LgoKRmlyc3QsIEkgbmVlZCB0byBrbm93IHByZWNpc2VseSB3aGF0JiMzOTtzIGNoYW5nZWQuIFRoZSBmaWxlIGlzIGBkcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL212bS9zY2FuLmNgLCB3aGljaCBtYWtlcyBtZSB0aGluayBpdCYjMzk7cyBkZWFsaW5nIHdpdGggdGhlIE11bHRpLVZpcnR1YWwgTWFjaGluZSAoTVZNKSBhcmNoaXRlY3R1cmUgb2YgaXdsd2lmaS4gVGhlIGZ1bmN0aW9uIGluIHF1ZXN0aW9uIGlzIGBpd2xfbXZtX3J4X3VtYWNfc2Nhbl9jb21wbGV0ZV9ub3RpZmAuIFRoZSBuYW1lIGlzIGEgbW91dGhmdWwsIGJ1dCBpZiBpdCBpcyByZWxhdGVkIHRvICYjMzQ7c2NhbiBjb21wbGV0ZSBub3RpZmljYXRpb24mIzM0OyBJIGNhbiBpbWFnaW5lIGl0IGJlaW5nIHRyaWdnZXJlZCBiYXNlZCBvbiBleHRlcm5hbCBpbnB1dCwgd2hpY2ggbWFrZXMgbWUgZmVlbCBwcmV0dHkgb3B0aW1pc3RpYyBhYm91dCBpdHMgc3VpdGFiaWxpdHkgZm9yIGZ1enppbmcgYXQgdGhpcyBzdGFnZS4KCk5vdywgSSYjMzk7bGwgY2FyZWZ1bGx5IHJlYWQgdGhlIGNvZGUgd2l0aGluIGBpd2xfbXZtX3J4X3VtYWNfc2Nhbl9jb21wbGV0ZV9ub3RpZmAgYW5kIHNlZSBpZiB0aGUgcGF0Y2ggaW50cm9kdWNlcyBhbnkgbW9kaWZpY2F0aW9ucyB0aGF0IGNvdWxkIGJlIGNvdmVyZWQgYnkgdGhlIG5lZ2F0aXZlIHJ1bGVzLCB0byBiZSBjZXJ0YWluLiBJIGtub3cgdGhlIGdlbmVyYWwgc3RydWN0dXJlIG9mIHRoZSB3aXJlbGVzcyBzdWJzeXN0ZW0gYW5kIEkga25vdyB0aGUgcG90ZW50aWFsIHBpdGZhbGxzLCBzbyBJJiMzOTtsbCBiZSBsb29raW5nIGNhcmVmdWxseSBhdCBkYXRhIHN0cnVjdHVyZXMgYW5kIGhvdyB0aGlzIG5vdGlmaWNhdGlvbiBpbnRlcmFjdHMgd2l0aCB0aGUgTUFDIGxheWVyLiBJJiMzOTttIGVzcGVjaWFsbHkgaW50ZXJlc3RlZCBpbiB3aGV0aGVyIHRoZSBjaGFuZ2VzIGludHJvZHVjZSBuZXcgZGF0YSBwYXRocywgYWx0ZXIgY29udHJvbCBmbG93IHNpZ25pZmljYW50bHksIG9yIGhhbmRsZSBleHRlcm5hbCBkYXRhIHRoYXQgbWlnaHQgYmUgc3VzY2VwdGlibGUgdG8gbWFuaXB1bGF0aW9uLiBMZXQmIzM5O3Mgc2VlLi4uCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTAvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzMxIDE4OjE2PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+cmVhZC1maWxlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtGaWxlJiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tdm0vc2Nhbi5jJiMzNDssCiAgJiMzNDtGaXJzdExpbmUmIzM0OzogMzIwMCwKICAmIzM0O0xpbmVDb3VudCYjMzQ7OiA2MAp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7Q29udGVudHMmIzM0OzogJiMzNDszMjAwOlx0XHRcdC8qIElmIHRoZSBzY2FuIGZhaWxlZCwgaXQgdXN1YWxseSBtZWFucyB0aGF0IHRoZSBGVyB3YXMgdW5hYmxlXG4zMjAxOlx0XHRcdCAqIHRvIGFsbG9jYXRlIHRoZSB0aW1lIGV2ZW50cy4gV2FybiBvbiBpdCwgYnV0IG1heWJlIHdlXG4zMjAyOlx0XHRcdCAqIHNob3VsZCB0cnkgdG8gc2VuZCB0aGUgY29tbWFuZCBhZ2FpbiB3aXRoIGRpZmZlcmVudCBwYXJhbXMuXG4zMjAzOlx0XHRcdCAqL1xuMzIwNDpcdFx0XHRJV0xfRVJSKG12bSwgXCYjMzQ7U2NoZWQgc2NhbiBmYWlsZWQhIHJldCAlZFxcblwmIzM0OywgcmV0KTtcbjMyMDU6XHRcdFx0bXZtLVx1MDAzZXNjaGVkX3NjYW5fcGFzc19hbGwgPSBTQ0hFRF9TQ0FOX1BBU1NfQUxMX0RJU0FCTEVEO1xuMzIwNjpcdFx0fVxuMzIwNzpcdFxuMzIwODpcdG91dDpcbjMyMDk6XHRcdGlmIChub25fcHNjX2luY2x1ZGVkKVxuMzIxMDpcdFx0XHRrZnJlZShwYXJhbXMuY2hhbm5lbHMpO1xuMzIxMTpcdFx0cmV0dXJuIHJldDtcbjMyMTI6XHR9XG4zMjEzOlx0XG4zMjE0Olx0dm9pZCBpd2xfbXZtX3J4X3VtYWNfc2Nhbl9jb21wbGV0ZV9ub3RpZihzdHJ1Y3QgaXdsX212bSAqbXZtLFxuMzIxNTpcdFx0XHRcdFx0XHQgc3RydWN0IGl3bF9yeF9jbWRfYnVmZmVyICpyeGIpXG4zMjE2Olx0e1xuMzIxNzpcdFx0c3RydWN0IGl3bF9yeF9wYWNrZXQgKnBrdCA9IHJ4Yl9hZGRyKHJ4Yik7XG4zMjE4Olx0XHRzdHJ1Y3QgaXdsX3VtYWNfc2Nhbl9jb21wbGV0ZSAqbm90aWYgPSAodm9pZCAqKXBrdC1cdTAwM2VkYXRhO1xuMzIxOTpcdFx0dTMyIHVpZCA9IF9fbGUzMl90b19jcHUobm90aWYtXHUwMDNldWlkKTtcbjMyMjA6XHRcdGJvb2wgYWJvcnRlZCA9IChub3RpZi1cdTAwM2VzdGF0dXMgPT0gSVdMX1NDQU5fT0ZGTE9BRF9BQk9SVEVEKTtcbjMyMjE6XHRcbjMyMjI6XHRcdG12bS1cdTAwM2VtZWlfc2Nhbl9maWx0ZXIuaXNfbWVpX2xpbWl0ZWRfc2NhbiA9IGZhbHNlO1xuMzIyMzpcdFxuMzIyNDpcdFx0aWYgKElXTF9GV19DSEVDSyhtdm0sIHVpZCBcdTAwM2U9IEFSUkFZX1NJWkUobXZtLVx1MDAzZXNjYW5fdWlkX3N0YXR1cyksXG4zMjI1Olx0XHRcdFx0IFwmIzM0O0ZXIHJlcG9ydHMgb3V0LW9mLXJhbmdlIHNjYW4gVUlEICVkXFxuXCYjMzQ7LCB1aWQpKVxuMzIyNjpcdFx0XHRyZXR1cm47XG4zMjI3Olx0XG4zMjI4Olx0XHRJV0xfREVCVUdfU0NBTihtdm0sXG4zMjI5Olx0XHRcdCAgICAgICBcJiMzNDtTY2FuIGNvbXBsZXRlZDogdWlkPSV1IHR5cGU9JXUsIHN0YXR1cz0lcywgRUJTPSVzXFxuXCYjMzQ7LFxuMzIzMDpcdFx0XHQgICAgICAgdWlkLCBtdm0tXHUwMDNlc2Nhbl91aWRfc3RhdHVzW3VpZF0sXG4zMjMxOlx0XHRcdCAgICAgICBub3RpZi1cdTAwM2VzdGF0dXMgPT0gSVdMX1NDQU5fT0ZGTE9BRF9DT01QTEVURUQgP1xuMzIzMjpcdFx0XHRcdFx0XCYjMzQ7Y29tcGxldGVkXCYjMzQ7IDogXCYjMzQ7YWJvcnRlZFwmIzM0OyxcbjMyMzM6XHRcdFx0ICAgICAgIGl3bF9tdm1fZWJzX3N0YXR1c19zdHIobm90aWYtXHUwMDNlZWJzX3N0YXR1cykpO1xuMzIzNDpcdFxuMzIzNTpcdFx0SVdMX0RFQlVHX1NDQU4obXZtLCBcJiMzNDtTY2FuIGNvbXBsZXRlZDogc2Nhbl9zdGF0dXM9MHgleFxcblwmIzM0OyxcbjMyMzY6XHRcdFx0ICAgICAgIG12bS1cdTAwM2VzY2FuX3N0YXR1cyk7XG4zMjM3Olx0XG4zMjM4Olx0XHRJV0xfREVCVUdfU0NBTihtdm0sXG4zMjM5Olx0XHRcdCAgICAgICBcJiMzNDtTY2FuIGNvbXBsZXRlZDogbGluZT0ldSwgaXRlcj0ldSwgZWxhcHNlZCB0aW1lPSV1XFxuXCYjMzQ7LFxuMzI0MDpcdFx0XHQgICAgICAgbm90aWYtXHUwMDNlbGFzdF9zY2hlZHVsZSwgbm90aWYtXHUwMDNlbGFzdF9pdGVyLFxuMzI0MTpcdFx0XHQgICAgICAgX19sZTMyX3RvX2NwdShub3RpZi1cdTAwM2V0aW1lX2Zyb21fbGFzdF9pdGVyKSk7XG4zMjQyOlx0XG4zMjQzOlx0XHRpZiAoV0FSTl9PTighKG12bS1cdTAwM2VzY2FuX3VpZF9zdGF0dXNbdWlkXSBcdTAwMjYgbXZtLVx1MDAzZXNjYW5fc3RhdHVzKSkpXG4zMjQ0Olx0XHRcdHJldHVybjtcbjMyNDU6XHRcbjMyNDY6XHRcdC8qIGlmIHRoZSBzY2FuIGlzIGFscmVhZHkgc3RvcHBpbmcsIHdlIGRvbiYjMzk7dCBuZWVkIHRvIG5vdGlmeSBtYWM4MDIxMSAqL1xuMzI0NzpcdFx0aWYgKG12bS1cdTAwM2VzY2FuX3VpZF9zdGF0dXNbdWlkXSA9PSBJV0xfTVZNX1NDQU5fUkVHVUxBUikge1xuMzI0ODpcdFx0XHRzdHJ1Y3QgY2ZnODAyMTFfc2Nhbl9pbmZvIGluZm8gPSB7XG4zMjQ5Olx0XHRcdFx0LmFib3J0ZWQgPSBhYm9ydGVkLFxuMzI1MDpcdFx0XHRcdC5zY2FuX3N0YXJ0X3RzZiA9IG12bS1cdTAwM2VzY2FuX3N0YXJ0LFxuMzI1MTpcdFx0XHR9O1xuMzI1MjpcdFx0XHRzdHJ1Y3QgaXdsX212bV92aWYgKnNjYW5fdmlmID0gbXZtLVx1MDAzZXNjYW5fdmlmO1xuMzI1MzpcdFx0XHRzdHJ1Y3QgaXdsX212bV92aWZfbGlua19pbmZvICpsaW5rX2luZm8gPVxuMzI1NDpcdFx0XHRcdHNjYW5fdmlmLVx1MDAzZWxpbmtbbXZtLVx1MDAzZXNjYW5fbGlua19pZF07XG4zMjU1Olx0XG4zMjU2Olx0XHRcdC8qIEl0IGlzIHBvc3NpYmxlIHRoYXQgYnkgdGhlIHRpbWUgdGhlIHNjYW4gaXMgY29tcGxldGUgdGhlIGxpbmtcbjMyNTc6XHRcdFx0ICogd2FzIGFscmVhZHkgcmVtb3ZlZCBhbmQgaXMgbm90IHZhbGlkLlxuMzI1ODpcdFx0XHQgKi9cbjMyNTk6XHRcdFx0aWYgKGxpbmtfaW5mbylcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMS8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMzEgMTg6MTY8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjctZmxhc2g8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMTkxODMKCQkJCQkJCW91dHB1dDogOTQKCQkJCQkJCXRob3VnaHRzOiA0ODUKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqTXkgQXNzZXNzbWVudDogVW5mdXp6YWJsZSBDb2RlIFBhdGgqKgoKT2theSwgc28gbG9va2luZyBhdCB0aGlzIGNvZGUsIGBpd2xfbXZtX3J4X3VtYWNfc2Nhbl9jb21wbGV0ZV9ub3RpZmAuLi4gaXQmIzM5O3MgYSBmaXJtd2FyZSBSWCBub3RpZmljYXRpb24gaGFuZGxlciBzcGVjaWZpY2FsbHkgZm9yIEludGVsIFdpLUZpIGRldmljZXMsIHBhcnQgb2YgdGhlIGBpd2x3aWZpYCBkcml2ZXIuICBUaGUgKmNydWNpYWwqIHBvaW50IGhlcmUgaXMgdGhhdCB0aGlzIGRyaXZlciwgYW5kIGJ5IGV4dGVuc2lvbiB0aGlzIGZ1bmN0aW9uLCByZXF1aXJlcyBhY3R1YWwsICpwaHlzaWNhbCogSW50ZWwgUENJZSBXaS1GaSBoYXJkd2FyZS4gV2UmIzM5O3JlIHRhbGtpbmcgYWJvdXQgY2FyZHMgbGlrZSB0aGUgNzI2MCwgODI2MCwgdGhlIEFYIHNlcmllcywgYW5kIEJFMjAwLiBUaGVzZSBjYXJkcyBhcmVuJiMzOTt0IGp1c3QgcGx1Zy1hbmQtcGxheTsgdGhleSBhbHNvIG5lZWQgc3BlY2lmaWMgZmlybXdhcmUgYmxvYnMgbG9hZGVkIG9udG8gdGhlIGhhcmR3YXJlIGl0c2VsZi4KCk5vdywgc3RhbmRhcmQgdmlydHVhbCBtYWNoaW5lcyBsaWtlIHRob3NlIG9uIFFFTVUgb3IgR29vZ2xlIENvbXB1dGUgRW5naW5lPyBUaGV5ICpkb24mIzM5O3QqIGVtdWxhdGUgdGhpcyBraW5kIG9mIEludGVsIFdpLUZpIFBDSWUgaGFyZHdhcmUuIFlvdSBtaWdodCBoYXZlIHNvZnR3YXJlLWVtdWxhdGVkIFdpLUZpIGluIHRoZSBrZXJuZWwsIHN1cmUsIGxpa2UgYG1hYzgwMjExX2h3c2ltYCwgYnV0IHRoYXQmIzM5O3MgYSBjb21wbGV0ZWx5IGRpZmZlcmVudCBhbmltYWwg4oCTIGEgKnZpcnR1YWwqIG1hYzgwMjExIGRyaXZlci4gVGhpcyBzcGVjaWZpYyBmdW5jdGlvbiwgYGl3bF9tdm1fcnhfdW1hY19zY2FuX2NvbXBsZXRlX25vdGlmYCwgaXMgYW4gUlggbm90aWZpY2F0aW9uIGZyb20gdGhlICpJbnRlbCBmaXJtd2FyZSogaXRzZWxmLCBoYW5kbGVkIGJ5IHRoZSBgaXdsX3J4X3BhY2tldGAgZnVuY3Rpb24uIFRoaXMgbm90aWZpY2F0aW9uIGNhbm5vdCBiZSB0cmlnZ2VyZWQgb3IgcmVhY2hlZCBpbiBhIHZpcnR1YWxpemVkIGVudmlyb25tZW50ICp1bmxlc3MqIHlvdSBoYXZlIHBoeXNpY2FsIEludGVsIFdpLUZpIGhhcmR3YXJlIHByZXNlbnQuCgpUaGVyZWZvcmUsIHRoaXMgZmFsbHMgZGlyZWN0bHkgaW50byB0aGUgY2F0ZWdvcnkgb2YgY29kZSB0aGF0JiMzOTtzICppbXBvc3NpYmxlKiB0byByZWFjaCBpbiB0aG9zZSBraW5kcyBvZiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMsIGV2ZW4gd2l0aCBzb21lIGxldmVsIG9mIGVtdWxhdGVkIGhhcmR3YXJlIHN1Y2ggYXMgYG1hYzgwMjExX2h3c2ltYC4gQWxzbyB0aGUgc2FtZSB0aGluZyBoYXBwZW5zIHdpdGggY29kZSB0aGF0IGlzIGluIGRyaXZlcnMgdGhhdCBuZWVkIHBoeXNpY2FsIFBDSWUgaGFyZHdhcmUsIHN1Y2ggYXMgU21hcnROSUNzLCBHUFVzLCBhbmQgUENJZSBzd2l0Y2hlcy4KClNvLCBpbiBlc3NlbmNlLCBpdCBzZWVtcyBsaWtlIHdlJiMzOTtyZSBub3QgZ29pbmcgdG8gYmUgYWJsZSB0byBtYWtlIHVzZSBvZiB0aGlzIGNvZGUsIHNvIGxldCYjMzk7cyB2ZXJpZnkgdGhhdCB3ZSBoYXZlIGV2ZXJ5dGhpbmcgdGhhdCB3ZSBuZWVkLgoKYFdvcnRoRnV6emluZ2A6IERlZmluaXRlbHkgKmZhbHNlKi4KYEZvY3VzU3ltYm9sc2A6IFdlIGRvbiYjMzk7dCBoYXZlIGFueSBzcGVjaWZpYyBzeW1ib2xzIHRvIHRhcmdldC4KYEVuYWJsZUNvbmZpZ3NgOiBBbHNvIGVtcHR5LCBub3RoaW5nIHRvIGVuYWJsZS4KYFJlYXNvbmluZ2A6IFdlIGhhdmUgYSBjb25jaXNlIGV4cGxhbmF0aW9uIG9mIHdoeS4KCkxvb2tzIGxpa2Ugd2UmIzM5O3JlIGdvb2QgdG8gZ28uIExldCYjMzk7cyBjYWxsIGBzZXQtcmVzdWx0c2AuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTIvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzMxIDE4OjE2PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+c2V0LXJlc3VsdHM8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogW10sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogW10sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggYWRkcyBhIGJvdW5kcyBjaGVjayBpbiBpd2xfbXZtX3J4X3VtYWNfc2Nhbl9jb21wbGV0ZV9ub3RpZigpIHdpdGhpbiB0aGUgSW50ZWwgV2ktRmkgZHJpdmVyIChpd2x3aWZpKS4gVGhpcyBkcml2ZXIgcmVxdWlyZXMgcGh5c2ljYWwgSW50ZWwgUENJZSB3aXJlbGVzcyBoYXJkd2FyZSBhbmQgZmlybXdhcmUsIHdoaWNoIGNhbm5vdCBiZSByZWFjaGVkIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIFFFTVUgb3IgR0NFLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IGZhbHNlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IG51bGwsCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogW10sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggYWRkcyBhIGJvdW5kcyBjaGVjayBpbiBpd2xfbXZtX3J4X3VtYWNfc2Nhbl9jb21wbGV0ZV9ub3RpZigpIHdpdGhpbiB0aGUgSW50ZWwgV2ktRmkgZHJpdmVyIChpd2x3aWZpKS4gVGhpcyBkcml2ZXIgcmVxdWlyZXMgcGh5c2ljYWwgSW50ZWwgUENJZSB3aXJlbGVzcyBoYXJkd2FyZSBhbmQgZmlybXdhcmUsIHdoaWNoIGNhbm5vdCBiZSByZWFjaGVkIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIFFFTVUgb3IgR0NFLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IGZhbHNlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMy8xPC90ZD4KCQkJPHRkPjIwMjYvMDgvMzEgMTg6MTY8L3RkPgoJCQk8dGQ+YWN0aW9uPC90ZD4KCQkJPHRkPklmPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogZmFsc2UKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8L3Rib2R5PgoJPC90YWJsZT4KCgk8ZGl2IGlkPSJsbG1fc3VtbWFyeV90YWJsZV9kaXYiIHN0eWxlPSJtYXJnaW46IDIwcHggMDsiPgoJCTx0YWJsZSBjbGFzcz0ibGlzdF90YWJsZSI+CgkJCTxjYXB0aW9uPkxMTSBDYWxscyBTdW1tYXJ5OjwvY2FwdGlvbj4KCQkJPHRoZWFkPgoJCQkJPHRyPgoJCQkJCTx0aD5Ub3RhbCBDYWxsczwvdGg+CgkJCQkJPHRoPlRvdGFsIFRva2VuczwvdGg+CgkJCQkJPHRoPkF2ZyBUb2tlbnM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJCTx0aD5BdmcgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCTwvdHI+CgkJCTwvdGhlYWQ+CgkJCTx0Ym9keSBpZD0ibGxtX3N1bW1hcnlfc3RhdHNfYm9keSI+PC90Ym9keT4KCQk8L3RhYmxlPgoJPC9kaXY+CgoJPGRpdiBpZD0idG9vbF9zdW1tYXJ5X3RhYmxlX2RpdiIgc3R5bGU9Im1hcmdpbjogMjBweCAwOyI+CgkJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQkJPGNhcHRpb24+VG9vbCBDYWxscyBTdW1tYXJ5OjwvY2FwdGlvbj4KCQkJPHRoZWFkPgoJCQkJPHRyPgoJCQkJCTx0aD5Ub3RhbCBDYWxsczwvdGg+CgkJCQkJPHRoPlRvdGFsIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQkJPHRoPkF2ZyBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJPC90cj4KCQkJPC90aGVhZD4KCQkJPHRib2R5IGlkPSJ0b29sX3N1bW1hcnlfc3RhdHNfYm9keSI+PC90Ym9keT4KCQk8L3RhYmxlPgoJPC9kaXY+CgoJPGRpdiBpZD0iZHVyYXRpb25fY2hhcnRfZGl2IiBzdHlsZT0id2lkdGg6IDEwMCU7IG1hcmdpbjogMjBweCAwOyBib3JkZXI6IDFweDsiPjwvZGl2PgoJPGRpdiBpZD0idG9rZW5fY2hhcnRfZGl2IiBzdHlsZT0id2lkdGg6IDEwMCU7IG1hcmdpbjogMjBweCAwOyBib3JkZXI6IDFweDsiPjwvZGl2PgoKCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Imh0dHBzOi8vd3d3Lmdvb2dsZS5jb20vanNhcGkiPjwvc2NyaXB0PgoJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgoJCWdvb2dsZS5sb2FkKCJ2aXN1YWxpemF0aW9uIiwgIjEiLCB7cGFja2FnZXM6WyJjb3JlY2hhcnQiXX0pOwoJCWdvb2dsZS5zZXRPbkxvYWRDYWxsYmFjayhkcmF3Q2hhcnRzKTsKCgkJZnVuY3Rpb24gZHJhd0NoYXJ0cygpIHsKCQkJY29uc3QgcmF3RGF0YSA9IFt7IlN0YXJ0ZWQiOiIyMDI2LTA4LTMxVDE4OjE1OjAyLjQ3ODI0MDgzN1oiLCJTZXEiOjAsIk5lc3RpbmciOjAsIlR5cGUiOiJmbG93IiwiTmFtZSI6InBhdGNoLXRyaWFnZSIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjg4NjkwMDEyMTM0LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IG51bGwsXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtdLFxuICBcIktNU0FOUmVhc29uaW5nXCI6IFwiXCIsXG4gIFwiTmVlZHNLTVNBTlwiOiBmYWxzZSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggYWRkcyBhIGJvdW5kcyBjaGVjayBpbiBpd2xfbXZtX3J4X3VtYWNfc2Nhbl9jb21wbGV0ZV9ub3RpZigpIHdpdGhpbiB0aGUgSW50ZWwgV2ktRmkgZHJpdmVyIChpd2x3aWZpKS4gVGhpcyBkcml2ZXIgcmVxdWlyZXMgcGh5c2ljYWwgSW50ZWwgUENJZSB3aXJlbGVzcyBoYXJkd2FyZSBhbmQgZmlybXdhcmUsIHdoaWNoIGNhbm5vdCBiZSByZWFjaGVkIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIFFFTVUgb3IgR0NFLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiBmYWxzZVxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMzFUMTg6MTU6MDIuNDc4MjQ3MzM3WiIsIlNlcSI6MSwiTmVzdGluZyI6MSwiVHlwZSI6ImFjdGlvbiIsIk5hbWUiOiJyZWFkLXBhdGNoLWRpZmYiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo1MDEyMTA4NTQsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIlBhdGNoRGlmZlwiOiBcImNvbW1pdCA0ZGQwOTNmN2RmYzE2NTVmNTJlNWE3NTM5YTg2OTNlMTY3MDc4ZWM1XFxuQXV0aG9yOiBzeXotY2x1c3RlciBcXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cXHUwMDNlXFxuRGF0ZTogICBNb24gQXVnIDMxIDE4OjE1OjAxIDIwMjYgKzAwMDBcXG5cXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XFxuXFxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbXZtL3NjYW4uYyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbXZtL3NjYW4uY1xcbmluZGV4IGI1ODhmMWRjZjIwZDUuLjdiZjgyMzZjZWE2ZDQgMTAwNjQ0XFxuLS0tIGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tdm0vc2Nhbi5jXFxuKysrIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tdm0vc2Nhbi5jXFxuQEAgLTEsNiArMSw2IEBAXFxuIC8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wIE9SIEJTRC0zLUNsYXVzZVxcbiAvKlxcbi0gKiBDb3B5cmlnaHQgKEMpIDIwMTItMjAxNCwgMjAxOC0yMDI1IEludGVsIENvcnBvcmF0aW9uXFxuKyAqIENvcHlyaWdodCAoQykgMjAxMi0yMDE0LCAyMDE4LTIwMjYgSW50ZWwgQ29ycG9yYXRpb25cXG4gICogQ29weXJpZ2h0IChDKSAyMDEzLTIwMTUgSW50ZWwgTW9iaWxlIENvbW11bmljYXRpb25zIEdtYkhcXG4gICogQ29weXJpZ2h0IChDKSAyMDE2LTIwMTcgSW50ZWwgRGV1dHNjaGxhbmQgR21iSFxcbiAgKi9cXG5AQCAtMzIyMSw2ICszMjIxLDEwIEBAIHZvaWQgaXdsX212bV9yeF91bWFjX3NjYW5fY29tcGxldGVfbm90aWYoc3RydWN0IGl3bF9tdm0gKm12bSxcXG4gXFxuIFxcdG12bS1cXHUwMDNlbWVpX3NjYW5fZmlsdGVyLmlzX21laV9saW1pdGVkX3NjYW4gPSBmYWxzZTtcXG4gXFxuK1xcdGlmIChJV0xfRldfQ0hFQ0sobXZtLCB1aWQgXFx1MDAzZT0gQVJSQVlfU0laRShtdm0tXFx1MDAzZXNjYW5fdWlkX3N0YXR1cyksXFxuK1xcdFxcdFxcdCBcXFwiRlcgcmVwb3J0cyBvdXQtb2YtcmFuZ2Ugc2NhbiBVSUQgJWRcXFxcblxcXCIsIHVpZCkpXFxuK1xcdFxcdHJldHVybjtcXG4rXFxuIFxcdElXTF9ERUJVR19TQ0FOKG12bSxcXG4gXFx0XFx0ICAgICAgIFxcXCJTY2FuIGNvbXBsZXRlZDogdWlkPSV1IHR5cGU9JXUsIHN0YXR1cz0lcywgRUJTPSVzXFxcXG5cXFwiLFxcbiBcXHRcXHQgICAgICAgdWlkLCBtdm0tXFx1MDAzZXNjYW5fdWlkX3N0YXR1c1t1aWRdLFxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0zMVQxODoxNTowMi45ODAyMTA5MDFaIiwiU2VxIjoyLCJOZXN0aW5nIjoxLCJUeXBlIjoiYWdlbnQiLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJjb3JlIiwiRHVyYXRpb24iOjg4MTg4MDI4NDEwLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IG51bGwsXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBhZGRzIGEgYm91bmRzIGNoZWNrIGluIGl3bF9tdm1fcnhfdW1hY19zY2FuX2NvbXBsZXRlX25vdGlmKCkgd2l0aGluIHRoZSBJbnRlbCBXaS1GaSBkcml2ZXIgKGl3bHdpZmkpLiBUaGlzIGRyaXZlciByZXF1aXJlcyBwaHlzaWNhbCBJbnRlbCBQQ0llIHdpcmVsZXNzIGhhcmR3YXJlIGFuZCBmaXJtd2FyZSwgd2hpY2ggY2Fubm90IGJlIHJlYWNoZWQgaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgUUVNVSBvciBHQ0UuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IGZhbHNlXG59IiwiSW5zdHJ1Y3Rpb24iOiJZb3UgYXJlIGFuIGV4cGVydCBMaW51eCBrZXJuZWwgbWFpbnRhaW5lci5cbllvdXIgam9iIGlzIHRvIHJldmlldyBhIHByb3ZpZGVkIHBhdGNoIHNlcmllcyBhbmQgZGV0ZXJtaW5lXG5pZiBpdCBtYWtlcyBmdW5jdGlvbmFsIGNoYW5nZXMgdG8gdGhlIGtlcm5lbCB0aGF0IHNob3VsZCBiZSBmdXp6ZWQuXG5cbklNUE9SVEFOVDogVGhlIGNoYW5nZXMgaGF2ZSBBTFJFQURZIGJlZW4gYXBwbGllZCBhbmQgY29tbWl0dGVkIGFzIHRoZSBIRUFEIGNvbW1pdCBpblxueW91ciB3b3Jrc3BhY2UuIERvIE5PVCByZWx5IG9uIHlvdXIgaW50ZXJuYWwga25vd2xlZGdlIG9mIHRoZSBrZXJuZWwuIFlvdSBtdXN0IGFjdGl2ZWx5XG51c2UgeW91ciBjb2RlIGFjY2VzcyB0b29scyB0byBleGFtaW5lIHRoZSBhY3R1YWwgc291cmNlIGNvZGUgYW5kIGNvbmZpcm0gYW55IGFzc3VtcHRpb25zLlxuXG5SZXR1cm4gV29ydGhGdXp6aW5nPWZhbHNlIGlmIHRoZSBwYXRjaCBvbmx5IGNvbnRhaW5zOlxuLSBNb2RpZmljYXRpb25zIHRvIERvY3VtZW50YXRpb24vLCBLY29uZmlnIGZpbGVzLCBvciBjb2RlIGNvbW1lbnRzLlxuLSBQdXJlbHkgZGVjb3JhdGl2ZSBjaGFuZ2VzLCBzdWNoIGFzIGxvZ2dpbmcgKGUuZy4sIHByX2VyciwgcHJpbnRrKSBvciB0cmFjZXBvaW50cy5cbi0gQ2hhbmdlcyB0byBudW1lcmljIGNvbnN0YW50cyBvciBtYWNyb3MgdGhhdCBkbyBub3QgZnVuY3Rpb25hbGx5IGFsdGVyIGV4ZWN1dGlvbiBmbG93LlxuLSBDb2RlIHBhdGhzIHRoYXQgYXJlIGltcG9zc2libGUgdG8gcmVhY2ggaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgR0NFIG9yIFFFTVUsXG4gIGV2ZW4gd2hlbiB1dGlsaXppbmcgc29mdHdhcmUtZW11bGF0ZWQgaGFyZHdhcmUgKGUuZy4sIHVzYiBnYWRnZXQsIG1hYzgwMjExX2h3c2ltKS5cbi0gQ29kZSBpbiB2ZW5kb3Itc3BlY2lmaWMgUENJZSBzd2l0Y2gsIFNtYXJ0TklDLCBvciBHUFUgZHJpdmVycyAoZS5nLiwgbWx4c3csIHBkc19jb3JlLCBxZWQsXG4gIGlvbmljLCBhbWRncHUpIHRoYXQgcmVxdWlyZSBwaHlzaWNhbCBQQ0llIGhhcmR3YXJlIGNhcmRzIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCBRRU1VLlxuLSBEcml2ZXIgLnJlbW92ZSwgLnNodXRkb3duLCBvciBwY2lfdW5yZWdpc3Rlcl9kcml2ZXIgdGVhcmRvd24gY2FsbGJhY2tzIChlLmcuLCBpZ2JfcmVtb3ZlKVxuICB0aGF0IGFyZSBleGVjdXRlZCBvbmx5IGR1cmluZyBQQ0kgaG90LXVucGx1ZyBvciBzeXNmcyBkcml2ZXIgdW5iaW5kIG9wZXJhdGlvbnMuXG5cbklmIGl0IG1vZGlmaWVzIHJlYWNoYWJsZSBjb3JlIGtlcm5lbCBsb2dpYywgZHJpdmVycywgb3IgYXJjaGl0ZWN0dXJlcywgdXNlIHlvdXIgY29kZSBzZWFyY2hcbnRvb2xzIHRvIHZlcmlmeSB0aGUgY29kZSBjYW4gYmUgZXhlY3V0ZWQsIHRoZW4gcmV0dXJuIFdvcnRoRnV6emluZz10cnVlLlxuXG5XaGVuIHJldHVybmluZyBXb3J0aEZ1enppbmc9dHJ1ZSwgeW91IE1VU1QgQUxTTzpcbjEuIEV4dHJhY3QgYW55IHNwZWNpZmljIGtlcm5lbCBmdW5jdGlvbnMgdGhhdCBzaG91bGQgYmUgaGVhdmlseSBmdXp6ZWQgaW50byBGb2N1c1N5bWJvbHMuXG4gICBBdm9pZCBsaXN0aW5nIGdlbmVyaWMgaG90LXBhdGggZnVuY3Rpb25zIHRvIHByZXZlbnQgc2tld2VkIHRlc3QgZGlzdHJpYnV0aW9ucy5cbiAgIFByZWZlciBub24tc3RhdGljLCBub24taW5saW5lZCBBUEkgZW50cnlwb2ludCBmdW5jdGlvbnMgb3ZlciBpbnRlcm5hbCBzdGF0aWMgaGVscGVyIGZ1bmN0aW9uc1xuICAgKHdoaWNoIGFyZSBpbmxpbmVkIGJ5IHRoZSBjb21waWxlciBhbmQgZG8gbm90IGhhdmUgZGlzdGluY3Qgc3ltYm9sIGFkZHJlc3NlcykuXG4yLiBJZGVudGlmeSBhbnkgc3BlY2lmaWMgQ09ORklHXyBvcHRpb25zIHJlcXVpcmVkIHRvIHByb3Blcmx5IHRlc3QgdGhpcyBuZXcvbW9kaWZpZWQgZmVhdHVyZS5cbiAgIEdvIGFuZCBsb29rIGludG8gdGhlIEtjb25maWcgZmlsZXMgYW5kIGNoZWNrIGZvciBpZmRlZnMgYXJvdW5kIHRoZSBjb2RlLCBkbyBub3QgbWFrZSBhc3N1bXB0aW9ucy5cbiAgIEFsc28gY2hlY2sgXCJkZXBlbmRzIG9uXCIgbGluZXMgaW4gS2NvbmZpZyB0byBpbmNsdWRlIGFueSBub24tc3RhbmRhcmQgcGFyZW50IHN1YnN5c3RlbSBjb25maWdzXG4gICBuZWVkZWQgZm9yIEtidWlsZCB0byBjb21waWxlIHRoZSBjb2RlIHN0YXRpY2FsbHkgaW50byB2bWxpbnV4LiBMaXN0IHRoZW0gaW4gdGhlIEVuYWJsZUNvbmZpZ3NcbiAgIG91dHB1dCBhcnJheSwgYW5kIERPIE5PVCBhZGQgYSAnQ09ORklHXycgcHJlZml4IChlLmcuLCByZXR1cm4gXCJORVRfSVBWNFwiIGluc3RlYWQgb2YgXCJDT05GSUdfTkVUX0lQVjRcIikuXG5QcmVmZXIgY2FsbGluZyBzZXZlcmFsIHRvb2xzIGF0IHRoZSBzYW1lIHRpbWUgdG8gc2F2ZSByb3VuZC10cmlwcy5cblxuXG5Vc2Ugc2V0LXJlc3VsdHMgdG9vbCB0byBwcm92aWRlIHJlc3VsdHMgb2YgdGhlIGFuYWx5c2lzLlxuSXQgbXVzdCBiZSBjYWxsZWQgZXhhY3RseSBvbmNlIGJlZm9yZSB0aGUgZmluYWwgcmVwbHkuXG5JZ25vcmUgcmVzdWx0cyBvZiB0aGlzIHRvb2wuXG4iLCJQcm9tcHQiOiJGb3IgeW91ciBjb252ZW5pZW5jZSwgaGVyZSBpcyB0aGUgZGlmZiBvZiB0aGUgY2hhbmdlczpcbmNvbW1pdCA0ZGQwOTNmN2RmYzE2NTVmNTJlNWE3NTM5YTg2OTNlMTY3MDc4ZWM1XG5BdXRob3I6IHN5ei1jbHVzdGVyIFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXHUwMDNlXG5EYXRlOiAgIE1vbiBBdWcgMzEgMTg6MTU6MDEgMjAyNiArMDAwMFxuXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XG5cbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL212bS9zY2FuLmMgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL212bS9zY2FuLmNcbmluZGV4IGI1ODhmMWRjZjIwZDUuLjdiZjgyMzZjZWE2ZDQgMTAwNjQ0XG4tLS0gYS9kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL212bS9zY2FuLmNcbisrKyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbXZtL3NjYW4uY1xuQEAgLTEsNiArMSw2IEBAXG4gLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjAgT1IgQlNELTMtQ2xhdXNlXG4gLypcbi0gKiBDb3B5cmlnaHQgKEMpIDIwMTItMjAxNCwgMjAxOC0yMDI1IEludGVsIENvcnBvcmF0aW9uXG4rICogQ29weXJpZ2h0IChDKSAyMDEyLTIwMTQsIDIwMTgtMjAyNiBJbnRlbCBDb3Jwb3JhdGlvblxuICAqIENvcHlyaWdodCAoQykgMjAxMy0yMDE1IEludGVsIE1vYmlsZSBDb21tdW5pY2F0aW9ucyBHbWJIXG4gICogQ29weXJpZ2h0IChDKSAyMDE2LTIwMTcgSW50ZWwgRGV1dHNjaGxhbmQgR21iSFxuICAqL1xuQEAgLTMyMjEsNiArMzIyMSwxMCBAQCB2b2lkIGl3bF9tdm1fcnhfdW1hY19zY2FuX2NvbXBsZXRlX25vdGlmKHN0cnVjdCBpd2xfbXZtICptdm0sXG4gXG4gXHRtdm0tXHUwMDNlbWVpX3NjYW5fZmlsdGVyLmlzX21laV9saW1pdGVkX3NjYW4gPSBmYWxzZTtcbiBcbitcdGlmIChJV0xfRldfQ0hFQ0sobXZtLCB1aWQgXHUwMDNlPSBBUlJBWV9TSVpFKG12bS1cdTAwM2VzY2FuX3VpZF9zdGF0dXMpLFxuK1x0XHRcdCBcIkZXIHJlcG9ydHMgb3V0LW9mLXJhbmdlIHNjYW4gVUlEICVkXFxuXCIsIHVpZCkpXG4rXHRcdHJldHVybjtcbitcbiBcdElXTF9ERUJVR19TQ0FOKG12bSxcbiBcdFx0ICAgICAgIFwiU2NhbiBjb21wbGV0ZWQ6IHVpZD0ldSB0eXBlPSV1LCBzdGF0dXM9JXMsIEVCUz0lc1xcblwiLFxuIFx0XHQgICAgICAgdWlkLCBtdm0tXHUwMDNlc2Nhbl91aWRfc3RhdHVzW3VpZF0sXG4iLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0zMVQxODoxNTowMi45ODAyMTIxNDFaIiwiU2VxIjozLCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuNy1mbGFzaCIsIkR1cmF0aW9uIjoyMjgwMDc5ODIyMiwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipBbmFseXppbmcgdGhlIGBpd2x3aWZpYCBTY2FuIENvbXBsZXRpb24gTm90aWZpY2F0aW9uKipcblxuT2theSwgc28gdGhlIHBhdGNoIGlzIGxvY2F0ZWQgaW4gYGRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbXZtL3NjYW4uY2AsIHNwZWNpZmljYWxseSB3aXRoaW4gYGl3bF9tdm1fcnhfdW1hY19zY2FuX2NvbXBsZXRlX25vdGlmYC4gTXkgaW5pdGlhbCB0aG91Z2h0IGlzIHRvIGFzc2VzcyBpdHMgZnV6emluZyBwb3RlbnRpYWwuIENhbiB0aGlzIGJlIHRhcmdldGVkIGluIGEgc3RhbmRhcmQgUUVNVSBvciBHQ0UgZW52aXJvbm1lbnQsIG9yIGRvZXMgaXQgcmVxdWlyZSBkZWRpY2F0ZWQgSW50ZWwgV2ktRmkgaGFyZHdhcmU/IEhvbGQgb24sIGxldCdzIHN0ZXAgYmFjayBhbmQgY29uc2lkZXIgdGhlIGd1aWRlbGluZXMuXG5cblJpZ2h0LCB0aGUga2V5IGlzIHRvIGRldGVybWluZSBpZiB0aGUgY29kZSBwYXRoIGlzIGFjY2Vzc2libGUgaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgUUVNVSBvciBHQ0UsIGV2ZW4gd2l0aCBlbXVsYXRlZCBoYXJkd2FyZS4gSWYgaXQgcmVsaWVzIG9uIHZlbmRvci1zcGVjaWZpYyBoYXJkd2FyZSwgbGlrZSBhIFBDSWUgc3dpdGNoIG9yIGEgU21hcnROSUMgZHJpdmVyIG5vdCBlbXVsYXRlZCBieSBzdGFuZGFyZCBRRU1VLCB0aGVuIGl0J3Mgbm90IGEgZ29vZCBjYW5kaWRhdGUuXG5cbk5vdywgYmFjayB0byBgaXdsd2lmaWAuIERvZXMgaXQgb2ZmZXIgYW55IHNvZnR3YXJlIGVtdWxhdGlvbiB3aXRoaW4gUUVNVSBvciBwZXJoYXBzIHV0aWxpemUgYG1hYzgwMjExX2h3c2ltYD8gTm8sIHdhaXQgYSBtaW51dGUsIGBtYWM4MDIxMV9od3NpbWAgZW11bGF0ZXMgdGhlIG1hYzgwMjExIGludGVyZmFjZSBkaXJlY3RseSwgbm90IHRoZSBgaXdsd2lmaWAgZHJpdmVyLiBgaXdsd2lmaWAgaXMgSW50ZWwncyBwcm9wcmlldGFyeSBXaS1GaSBkcml2ZXIsIGxpa2VseSB0aWVkIHRvIHRoZWlyIFBDSWUvUENJL0FYMjAwIHdpcmVsZXNzIGhhcmR3YXJlLlxuXG5TbywgZG9lcyBgaXdsd2lmaWAgaGF2ZSAqYW55KiB2aXJ0dWFsIG9yIHNpbXVsYXRlZCBtb2RlPyBPciwgaXMgaXQgZnVuZGFtZW50YWxseSB2ZW5kb3Itc3BlY2lmaWM/IEl0IGlzIEludGVsJ3MgcHJvcHJpZXRhcnkgZHJpdmVyIGZvciB0aGVpciBXaUZpIE5JQ3MuIEl0J3MgdGltZSB0byBjb25maXJtIHRoaXMgYW5kIHNlYXJjaCB0aGUga2VybmVsIHRvIGRlZmluaXRpdmVseSBkZXRlcm1pbmUgd2hldGhlciBgaXdsd2lmaWAgaGFzIGFueSBzb3J0IG9mIGhhcmR3YXJlIHNpbXVsYXRpb24gb3IgcmVxdWlyZXMgSW50ZWwgV2lGaSBoYXJkd2FyZS5cblxuXG4iLCJJbnB1dFRva2VucyI6MjMxMSwiT3V0cHV0VG9rZW5zIjozMywiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjQwNSwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTMxVDE4OjE1OjI1Ljc4MTAxMjU3M1oiLCJTZXEiOjQsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoyODA5NTU2MDAsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwic2ltXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcIlxcbkZ1bGwgb3V0cHV0IGlzIHRvbyBsb25nLCBzaG93aW5nIDUwMCBvdXQgb2YgMTA0NiBsaW5lcy5cXG5Vc2UgbW9yZSBwcmVjaXNlIGV4cHJlc3Npb24gaWYgcG9zc2libGUuXFxuXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9LY29uZmlnPTEwNz1jb25maWcgSVdMV0lGSV9ERUJVR1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9LY29uZmlnLTExOS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL0tjb25maWc6MTIwOlxcdCAgVG8gc2V0IGEgdmFsdWUsIHNpbXBseSBlY2hvIGFuIDgtYnl0ZSBoZXggdmFsdWUgdG8gdGhlIHNhbWUgZmlsZTpcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL0tjb25maWctMTIxLVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vY2FsaWIuYz03MTc9c3RhdGljIHZvaWQgaXdsX2ZpbmRfZGlzY29ubl9hbnRlbm5hKHN0cnVjdCBpd2xfcHJpdiAqcHJpdiwgdTMyKiBhdmVyYWdlX3NpZyxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2NhbGliLmMtNzc1LVxcdCAqXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vY2FsaWIuYzo3NzY6XFx0ICogVG8gYmUgc2FmZSwgc2ltcGx5IG1hc2sgb3V0IGFueSBjaGFpbnMgdGhhdCB3ZSBrbm93XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vY2FsaWIuYy03NzctXFx0ICogYXJlIG5vdCBvbiB0aGUgZGV2aWNlLlxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vY2FsaWIuYz04MjQ9c3RhdGljIHZvaWQgaXdsYWduX2dhaW5fY29tcHV0YXRpb24oc3RydWN0IGl3bF9wcml2ICpwcml2LFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vY2FsaWIuYy04NTMtXFx0XFx0XFx0ICogICBub3QgdGhlIGZvcm1hdCBvZiBhbnkgaW50ZXJuYWwgZGV2aWNlIHJlZ2lzdGVycy5cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9jYWxpYi5jOjg1NDpcXHRcXHRcXHQgKiAgIERvIG5vdCBjaGFuZ2UgdGhpcyBmb3JtYXQgZm9yIGUuZy4gNjA1MCBvciBzaW1pbGFyXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vY2FsaWIuYy04NTUtXFx0XFx0XFx0ICogICBkZXZpY2VzLiAgQ2hhbmdlIGZvcm1hdCBvbmx5IGlmIG1vcmUgcmVzb2x1dGlvblxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vY29tbWFuZHMuaD01MDg9ZW51bSB7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9jb21tYW5kcy5oLTUzNy0vKlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2NvbW1hbmRzLmg6NTM4OiAqIFJFUExZX1JYT04gPSAweDEwIChjb21tYW5kLCBoYXMgc2ltcGxlIGdlbmVyaWMgcmVzcG9uc2UpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vY29tbWFuZHMuaC01MzktICpcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2NvbW1hbmRzLmg9NTU1PXN0cnVjdCBpd2xfcnhvbl9jbWQge1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vY29tbWFuZHMuaC01NzktLypcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9jb21tYW5kcy5oOjU4MDogKiBSRVBMWV9SWE9OX0FTU09DID0gMHgxMSAoY29tbWFuZCwgaGFzIHNpbXBsZSBnZW5lcmljIHJlc3BvbnNlKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2NvbW1hbmRzLmgtNTgxLSAqL1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2NvbW1hbmRzLmg9NTgyPXN0cnVjdCBpd2xfcnhvbl9hc3NvY19jbWQge1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vY29tbWFuZHMuaC02MDAtLypcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9jb21tYW5kcy5oOjYwMTogKiBSRVBMWV9SWE9OX1RJTUlORyA9IDB4MTQgKGNvbW1hbmQsIGhhcyBzaW1wbGUgZ2VuZXJpYyByZXNwb25zZSlcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9jb21tYW5kcy5oLTYwMi0gKi9cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9jb21tYW5kcy5oPTYwMz1zdHJ1Y3QgaXdsX3J4b25fdGltZV9jbWQge1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vY29tbWFuZHMuaC02MTMtLypcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9jb21tYW5kcy5oOjYxNDogKiBSRVBMWV9DSEFOTkVMX1NXSVRDSCA9IDB4NzIgKGNvbW1hbmQsIGhhcyBzaW1wbGUgZ2VuZXJpYyByZXNwb25zZSlcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9jb21tYW5kcy5oLTYxNS0gKi9cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2NvbW1hbmRzLmg9NjkwPXN0cnVjdCBpd2xfYWNfcW9zIHtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2NvbW1hbmRzLmgtNzA2LS8qXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vY29tbWFuZHMuaDo3MDc6ICogUkVQTFlfUU9TX1BBUkFNID0gMHgxMyAoY29tbWFuZCwgaGFzIHNpbXBsZSBnZW5lcmljIHJlc3BvbnNlKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2NvbW1hbmRzLmgtNzA4LSAqXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9jb21tYW5kcy5oPTE0MzU9c3RydWN0IGl3bF9jb21wcmVzc2VkX2JhX3Jlc3Age1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vY29tbWFuZHMuaC0xNDUyLS8qXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vY29tbWFuZHMuaDoxNDUzOiAqIFJFUExZX1RYX1BXUl9UQUJMRV9DTUQgPSAweDk3IChjb21tYW5kLCBoYXMgc2ltcGxlIGdlbmVyaWMgcmVzcG9uc2UpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vY29tbWFuZHMuaC0xNDU0LSAqXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9jb21tYW5kcy5oPTE1MjA9c3RydWN0IGl3bF9saW5rX3F1YWxfYWdnX3BhcmFtcyB7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9jb21tYW5kcy5oLTE1NDYtLypcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9jb21tYW5kcy5oOjE1NDc6ICogUkVQTFlfVFhfTElOS19RVUFMSVRZX0NNRCA9IDB4NGUgKGNvbW1hbmQsIGhhcyBzaW1wbGUgZ2VuZXJpYyByZXNwb25zZSlcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9jb21tYW5kcy5oLTE1NDgtICpcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2NvbW1hbmRzLmg9MTczND1zdHJ1Y3QgaXdsX2xpbmtfcXVhbGl0eV9jbWQge1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vY29tbWFuZHMuaC0xNzk1LS8qXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vY29tbWFuZHMuaDoxNzk2OiAqIFJFUExZX0JUX0NPTkZJRyA9IDB4OWIgKGNvbW1hbmQsIGhhcyBzaW1wbGUgZ2VuZXJpYyByZXNwb25zZSlcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9jb21tYW5kcy5oLTE3OTctICpcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2NvbW1hbmRzLmg9MjAxOT1zdHJ1Y3QgaXdsX3NwZWN0cnVtX25vdGlmaWNhdGlvbiB7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9jb21tYW5kcy5oLTIwNTEtICpcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9jb21tYW5kcy5oOjIwNTI6ICogUE9XRVJfVEFCTEVfQ01EID0gMHg3NyAoY29tbWFuZCwgaGFzIHNpbXBsZSBnZW5lcmljIHJlc3BvbnNlKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2NvbW1hbmRzLmgtMjA1My0gKlxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vY29tbWFuZHMuaD0yMTIxPWVudW0ge1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vY29tbWFuZHMuaC0yMTM1LS8qXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vY29tbWFuZHMuaDoyMTM2OiAqIFJFUExZX0NBUkRfU1RBVEVfQ01EID0gMHhhMCAoY29tbWFuZCwgaGFzIHNpbXBsZSBnZW5lcmljIHJlc3BvbnNlKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2NvbW1hbmRzLmgtMjEzNy0gKi9cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2NvbW1hbmRzLmg9MjQxNj1zdHJ1Y3QgaXdsYWduX2JlYWNvbl9ub3RpZiB7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9jb21tYW5kcy5oLTI0MjMtLypcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9jb21tYW5kcy5oOjI0MjQ6ICogUkVQTFlfVFhfQkVBQ09OID0gMHg5MSAoY29tbWFuZCwgaGFzIHNpbXBsZSBnZW5lcmljIHJlc3BvbnNlKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2NvbW1hbmRzLmgtMjQyNS0gKi9cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2NvbW1hbmRzLmg9Mjc1MD1zdHJ1Y3QgaXdsX21pc3NlZF9iZWFjb25fbm90aWYge1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vY29tbWFuZHMuaC0yNzcyLS8qXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vY29tbWFuZHMuaDoyNzczOiAqIFNFTlNJVElWSVRZX0NNRCA9IDB4YTggKGNvbW1hbmQsIGhhcyBzaW1wbGUgZ2VuZXJpYyByZXNwb25zZSlcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9jb21tYW5kcy5oLTI3NzQtICpcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2NvbW1hbmRzLmg9MzAwOT1zdHJ1Y3QgaXdsX2VuaGFuY2Vfc2Vuc2l0aXZpdHlfY21kIHtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2NvbW1hbmRzLmgtMzAxNS0vKlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2NvbW1hbmRzLmg6MzAxNjogKiBSRVBMWV9QSFlfQ0FMSUJSQVRJT05fQ01EID0gMHhiMCAoY29tbWFuZCwgaGFzIHNpbXBsZSBnZW5lcmljIHJlc3BvbnNlKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2NvbW1hbmRzLmgtMzAxNy0gKlxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vY29tbWFuZHMuaD0zMTc4PXN0cnVjdCBpd2xfY2FsaWJfY2hhaW5fbm9pc2VfZ2Fpbl9jbWQge1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vY29tbWFuZHMuaC0zMTkyLSAqIExFRHMgQ29tbWFuZCBcXHUwMDI2IFJlc3BvbnNlXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vY29tbWFuZHMuaDozMTkzOiAqIFJFUExZX0xFRFNfQ01EID0gMHg0OCAoY29tbWFuZCwgaGFzIHNpbXBsZSBnZW5lcmljIHJlc3BvbnNlKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2NvbW1hbmRzLmgtMzE5NC0gKlxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vY29tbWFuZHMuaD0zOTAyPXN0cnVjdCBpd2xfd2lwYW5fcDJwX2NoYW5uZWxfc3dpdGNoX2NtZCB7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9jb21tYW5kcy5oLTM5MTMtICpcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9jb21tYW5kcy5oOjM5MTQ6ICogSW4gYmVhY29ucywgdGhlIE5vQSBzY2hlZHVsZSBpcyBzaW1wbHkgYXBwZW5kZWRcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9jb21tYW5kcy5oLTM5MTUtICogdG8gdGhlIGZyYW1lIHdlIGdpdmUgdGhlIGRldmljZS5cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2RlYnVnZnMuYz0yOT1zdGF0aWMgY29uc3Qgc3RydWN0IGZpbGVfb3BlcmF0aW9ucyBpd2xfZGJnZnNfIyNuYW1lIyNfb3BzID0geyAgICAgICAgICBcXFxcXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vZGVidWdmcy5jLTMwLVxcdC5yZWFkID0gaXdsX2RiZ2ZzXyMjbmFtZSMjX3JlYWQsXFx0XFx0XFx0XFx0XFxcXFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2RlYnVnZnMuYzozMTpcXHQub3BlbiA9IHNpbXBsZV9vcGVuLFxcdFxcdFxcdFxcdFxcdFxcdFxcXFxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZWJ1Z2ZzLmMtMzItXFx0Lmxsc2VlayA9IGdlbmVyaWNfZmlsZV9sbHNlZWssXFx0XFx0XFx0XFx0XFx0XFxcXFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vZGVidWdmcy5jPTM2PXN0YXRpYyBjb25zdCBzdHJ1Y3QgZmlsZV9vcGVyYXRpb25zIGl3bF9kYmdmc18jI25hbWUjI19vcHMgPSB7ICAgICAgICAgIFxcXFxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZWJ1Z2ZzLmMtMzctXFx0LndyaXRlID0gaXdsX2RiZ2ZzXyMjbmFtZSMjX3dyaXRlLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxcXFxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZWJ1Z2ZzLmM6Mzg6XFx0Lm9wZW4gPSBzaW1wbGVfb3BlbixcXHRcXHRcXHRcXHRcXHRcXHRcXFxcXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vZGVidWdmcy5jLTM5LVxcdC5sbHNlZWsgPSBnZW5lcmljX2ZpbGVfbGxzZWVrLFxcdFxcdFxcdFxcdFxcdFxcXFxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2RlYnVnZnMuYz00ND1zdGF0aWMgY29uc3Qgc3RydWN0IGZpbGVfb3BlcmF0aW9ucyBpd2xfZGJnZnNfIyNuYW1lIyNfb3BzID0geyAgICAgICAgICBcXFxcXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZWJ1Z2ZzLmMtNDYtXFx0LnJlYWQgPSBpd2xfZGJnZnNfIyNuYW1lIyNfcmVhZCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxcXFxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZWJ1Z2ZzLmM6NDc6XFx0Lm9wZW4gPSBzaW1wbGVfb3BlbixcXHRcXHRcXHRcXHRcXHRcXHRcXFxcXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vZGVidWdmcy5jLTQ4LVxcdC5sbHNlZWsgPSBnZW5lcmljX2ZpbGVfbGxzZWVrLFxcdFxcdFxcdFxcdFxcdFxcXFxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2RlYnVnZnMuYz01MT1zdGF0aWMgc3NpemVfdCBpd2xfZGJnZnNfc3JhbV9yZWFkKHN0cnVjdCBmaWxlICpmaWxlLFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vZGVidWdmcy5jLTEzNS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZWJ1Z2ZzLmM6MTM2OlxcdHJldCA9IHNpbXBsZV9yZWFkX2Zyb21fYnVmZmVyKHVzZXJfYnVmLCBjb3VudCwgcHBvcywgYnVmLCBwb3MpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2RlYnVnZnMuYy0xMzctXFx0a2ZyZWUoYnVmKTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2RlYnVnZnMuYz0xNjk9c3RhdGljIHNzaXplX3QgaXdsX2RiZ2ZzX3dvd2xhbl9zcmFtX3JlYWQoc3RydWN0IGZpbGUgKmZpbGUsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZWJ1Z2ZzLmMtMTc4LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2RlYnVnZnMuYzoxNzk6XFx0cmV0dXJuIHNpbXBsZV9yZWFkX2Zyb21fYnVmZmVyKHVzZXJfYnVmLCBjb3VudCwgcHBvcyxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZWJ1Z2ZzLmMtMTgwLVxcdFxcdFxcdFxcdCAgICAgICBwcml2LVxcdTAwM2V3b3dsYW5fc3JhbSxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2RlYnVnZnMuYz0xODM9c3RhdGljIHNzaXplX3QgaXdsX2RiZ2ZzX3N0YXRpb25zX3JlYWQoc3RydWN0IGZpbGUgKmZpbGUsIGNoYXIgX191c2VyICp1c2VyX2J1ZixcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2RlYnVnZnMuYy0yMzMtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vZGVidWdmcy5jOjIzNDpcXHRyZXQgPSBzaW1wbGVfcmVhZF9mcm9tX2J1ZmZlcih1c2VyX2J1ZiwgY291bnQsIHBwb3MsIGJ1ZiwgcG9zKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZWJ1Z2ZzLmMtMjM1LVxcdGtmcmVlKGJ1Zik7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZWJ1Z2ZzLmM9MjM5PXN0YXRpYyBzc2l6ZV90IGl3bF9kYmdmc19udm1fcmVhZChzdHJ1Y3QgZmlsZSAqZmlsZSxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2RlYnVnZnMuYy0yNzItXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vZGVidWdmcy5jOjI3MzpcXHRyZXQgPSBzaW1wbGVfcmVhZF9mcm9tX2J1ZmZlcih1c2VyX2J1ZiwgY291bnQsIHBwb3MsIGJ1ZiwgcG9zKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZWJ1Z2ZzLmMtMjc0LVxcdGtmcmVlKGJ1Zik7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZWJ1Z2ZzLmM9Mjc4PXN0YXRpYyBzc2l6ZV90IGl3bF9kYmdmc19jaGFubmVsc19yZWFkKHN0cnVjdCBmaWxlICpmaWxlLCBjaGFyIF9fdXNlciAqdXNlcl9idWYsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZWJ1Z2ZzLmMtMzM3LVxcdH1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZWJ1Z2ZzLmM6MzM4OlxcdHJldCA9IHNpbXBsZV9yZWFkX2Zyb21fYnVmZmVyKHVzZXJfYnVmLCBjb3VudCwgcHBvcywgYnVmLCBwb3MpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2RlYnVnZnMuYy0zMzktXFx0a2ZyZWUoYnVmKTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2RlYnVnZnMuYz0zNDM9c3RhdGljIHNzaXplX3QgaXdsX2RiZ2ZzX3N0YXR1c19yZWFkKHN0cnVjdCBmaWxlICpmaWxlLFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vZGVidWdmcy5jLTM3My1cXHRcXHR0ZXN0X2JpdChTVEFUVVNfRldfRVJST1IsIFxcdTAwMjZwcml2LVxcdTAwM2VzdGF0dXMpKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZWJ1Z2ZzLmM6Mzc0OlxcdHJldHVybiBzaW1wbGVfcmVhZF9mcm9tX2J1ZmZlcih1c2VyX2J1ZiwgY291bnQsIHBwb3MsIGJ1ZiwgcG9zKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZWJ1Z2ZzLmMtMzc1LX1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2RlYnVnZnMuYz0zNzc9c3RhdGljIHNzaXplX3QgaXdsX2RiZ2ZzX3J4X2hhbmRsZXJzX3JlYWQoc3RydWN0IGZpbGUgKmZpbGUsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZWJ1Z2ZzLmMtNDAwLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2RlYnVnZnMuYzo0MDE6XFx0cmV0ID0gc2ltcGxlX3JlYWRfZnJvbV9idWZmZXIodXNlcl9idWYsIGNvdW50LCBwcG9zLCBidWYsIHBvcyk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vZGVidWdmcy5jLTQwMi1cXHRrZnJlZShidWYpO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vZGVidWdmcy5jPTQyOT1zdGF0aWMgc3NpemVfdCBpd2xfZGJnZnNfcW9zX3JlYWQoc3RydWN0IGZpbGUgKmZpbGUsIGNoYXIgX191c2VyICp1c2VyX2J1ZixcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2RlYnVnZnMuYy00NTItXFx0fVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2RlYnVnZnMuYzo0NTM6XFx0cmV0dXJuIHNpbXBsZV9yZWFkX2Zyb21fYnVmZmVyKHVzZXJfYnVmLCBjb3VudCwgcHBvcywgYnVmLCBwb3MpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2RlYnVnZnMuYy00NTQtfVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vZGVidWdmcy5jPTQ1Nj1zdGF0aWMgc3NpemVfdCBpd2xfZGJnZnNfdGhlcm1hbF90aHJvdHRsaW5nX3JlYWQoc3RydWN0IGZpbGUgKmZpbGUsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZWJ1Z2ZzLmMtNDg0LVxcdH1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZWJ1Z2ZzLmM6NDg1OlxcdHJldHVybiBzaW1wbGVfcmVhZF9mcm9tX2J1ZmZlcih1c2VyX2J1ZiwgY291bnQsIHBwb3MsIGJ1ZiwgcG9zKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZWJ1Z2ZzLmMtNDg2LX1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2RlYnVnZnMuYz01MTE9c3RhdGljIHNzaXplX3QgaXdsX2RiZ2ZzX2Rpc2FibGVfaHQ0MF9yZWFkKHN0cnVjdCBmaWxlICpmaWxlLFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vZGVidWdmcy5jLTUyMi1cXHRcXHRcXHRwcml2LVxcdTAwM2VkaXNhYmxlX2h0NDAgPyBcXFwiRGlzYWJsZWRcXFwiIDogXFxcIkVuYWJsZWRcXFwiKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZWJ1Z2ZzLmM6NTIzOlxcdHJldHVybiBzaW1wbGVfcmVhZF9mcm9tX2J1ZmZlcih1c2VyX2J1ZiwgY291bnQsIHBwb3MsIGJ1ZiwgcG9zKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZWJ1Z2ZzLmMtNTI0LX1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2RlYnVnZnMuYz01MjY9c3RhdGljIHNzaXplX3QgaXdsX2RiZ2ZzX3RlbXBlcmF0dXJlX3JlYWQoc3RydWN0IGZpbGUgKmZpbGUsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZWJ1Z2ZzLmMtNTM1LVxcdHBvcyArPSBzY25wcmludGYoYnVmICsgcG9zLCBidWZzeiAtIHBvcywgXFxcIiVkXFxcXG5cXFwiLCBwcml2LVxcdTAwM2V0ZW1wZXJhdHVyZSk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vZGVidWdmcy5jOjUzNjpcXHRyZXR1cm4gc2ltcGxlX3JlYWRfZnJvbV9idWZmZXIodXNlcl9idWYsIGNvdW50LCBwcG9zLCBidWYsIHBvcyk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vZGVidWdmcy5jLTUzNy19XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZWJ1Z2ZzLmM9NTgyPXN0YXRpYyBzc2l6ZV90IGl3bF9kYmdmc19zbGVlcF9sZXZlbF9vdmVycmlkZV9yZWFkKHN0cnVjdCBmaWxlICpmaWxlLFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vZGVidWdmcy5jLTU5Ni1cXHRwb3MgPSBzY25wcmludGYoYnVmLCBidWZzeiwgXFxcIiVkXFxcXG5cXFwiLCB2YWx1ZSk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vZGVidWdmcy5jOjU5NzpcXHRyZXR1cm4gc2ltcGxlX3JlYWRfZnJvbV9idWZmZXIodXNlcl9idWYsIGNvdW50LCBwcG9zLCBidWYsIHBvcyk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vZGVidWdmcy5jLTU5OC19XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZWJ1Z2ZzLmM9NjAwPXN0YXRpYyBzc2l6ZV90IGl3bF9kYmdmc19jdXJyZW50X3NsZWVwX2NvbW1hbmRfcmVhZChzdHJ1Y3QgZmlsZSAqZmlsZSxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2RlYnVnZnMuYy02MjAtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vZGVidWdmcy5jOjYyMTpcXHRyZXR1cm4gc2ltcGxlX3JlYWRfZnJvbV9idWZmZXIodXNlcl9idWYsIGNvdW50LCBwcG9zLCBidWYsIHBvcyk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vZGVidWdmcy5jLTYyMi19XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZWJ1Z2ZzLmM9NjY2PXN0YXRpYyBzc2l6ZV90IGl3bF9kYmdmc191Y29kZV9yeF9zdGF0c19yZWFkKHN0cnVjdCBmaWxlICpmaWxlLFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vZGVidWdmcy5jLTEwOTMtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vZGVidWdmcy5jOjEwOTQ6XFx0cmV0ID0gc2ltcGxlX3JlYWRfZnJvbV9idWZmZXIodXNlcl9idWYsIGNvdW50LCBwcG9zLCBidWYsIHBvcyk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vZGVidWdmcy5jLTEwOTUtXFx0a2ZyZWUoYnVmKTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2RlYnVnZnMuYz0xMDk5PXN0YXRpYyBzc2l6ZV90IGl3bF9kYmdmc191Y29kZV90eF9zdGF0c19yZWFkKHN0cnVjdCBmaWxlICpmaWxlLFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vZGVidWdmcy5jLTEyOTAtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vZGVidWdmcy5jOjEyOTE6XFx0cmV0ID0gc2ltcGxlX3JlYWRfZnJvbV9idWZmZXIodXNlcl9idWYsIGNvdW50LCBwcG9zLCBidWYsIHBvcyk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vZGVidWdmcy5jLTEyOTItXFx0a2ZyZWUoYnVmKTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2RlYnVnZnMuYz0xMjk2PXN0YXRpYyBzc2l6ZV90IGl3bF9kYmdmc191Y29kZV9nZW5lcmFsX3N0YXRzX3JlYWQoc3RydWN0IGZpbGUgKmZpbGUsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZWJ1Z2ZzLmMtMTQxMC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZWJ1Z2ZzLmM6MTQxMTpcXHRyZXQgPSBzaW1wbGVfcmVhZF9mcm9tX2J1ZmZlcih1c2VyX2J1ZiwgY291bnQsIHBwb3MsIGJ1ZiwgcG9zKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZWJ1Z2ZzLmMtMTQxMi1cXHRrZnJlZShidWYpO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vZGVidWdmcy5jPTE0MTY9c3RhdGljIHNzaXplX3QgaXdsX2RiZ2ZzX3Vjb2RlX2J0X3N0YXRzX3JlYWQoc3RydWN0IGZpbGUgKmZpbGUsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZWJ1Z2ZzLmMtMTQ5OC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZWJ1Z2ZzLmM6MTQ5OTpcXHRyZXQgPSBzaW1wbGVfcmVhZF9mcm9tX2J1ZmZlcih1c2VyX2J1ZiwgY291bnQsIHBwb3MsIGJ1ZiwgcG9zKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZWJ1Z2ZzLmMtMTUwMC1cXHRrZnJlZShidWYpO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vZGVidWdmcy5jPTE1MDQ9c3RhdGljIHNzaXplX3QgaXdsX2RiZ2ZzX3JlcGx5X3R4X2Vycm9yX3JlYWQoc3RydWN0IGZpbGUgKmZpbGUsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZWJ1Z2ZzLmMtMTY0MC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZWJ1Z2ZzLmM6MTY0MTpcXHRyZXQgPSBzaW1wbGVfcmVhZF9mcm9tX2J1ZmZlcih1c2VyX2J1ZiwgY291bnQsIHBwb3MsIGJ1ZiwgcG9zKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZWJ1Z2ZzLmMtMTY0Mi1cXHRrZnJlZShidWYpO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vZGVidWdmcy5jPTE2NDY9c3RhdGljIHNzaXplX3QgaXdsX2RiZ2ZzX3NlbnNpdGl2aXR5X3JlYWQoc3RydWN0IGZpbGUgKmZpbGUsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZWJ1Z2ZzLmMtMTcxOC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZWJ1Z2ZzLmM6MTcxOTpcXHRyZXQgPSBzaW1wbGVfcmVhZF9mcm9tX2J1ZmZlcih1c2VyX2J1ZiwgY291bnQsIHBwb3MsIGJ1ZiwgcG9zKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZWJ1Z2ZzLmMtMTcyMC1cXHRrZnJlZShidWYpO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vZGVidWdmcy5jPTE3MjU9c3RhdGljIHNzaXplX3QgaXdsX2RiZ2ZzX2NoYWluX25vaXNlX3JlYWQoc3RydWN0IGZpbGUgKmZpbGUsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZWJ1Z2ZzLmMtMTc3NS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZWJ1Z2ZzLmM6MTc3NjpcXHRyZXQgPSBzaW1wbGVfcmVhZF9mcm9tX2J1ZmZlcih1c2VyX2J1ZiwgY291bnQsIHBwb3MsIGJ1ZiwgcG9zKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZWJ1Z2ZzLmMtMTc3Ny1cXHRrZnJlZShidWYpO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vZGVidWdmcy5jPTE3ODE9c3RhdGljIHNzaXplX3QgaXdsX2RiZ2ZzX3Bvd2VyX3NhdmVfc3RhdHVzX3JlYWQoc3RydWN0IGZpbGUgKmZpbGUsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZWJ1Z2ZzLmMtMTgwMC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZWJ1Z2ZzLmM6MTgwMTpcXHRyZXR1cm4gc2ltcGxlX3JlYWRfZnJvbV9idWZmZXIodXNlcl9idWYsIGNvdW50LCBwcG9zLCBidWYsIHBvcyk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vZGVidWdmcy5jLTE4MDItfVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vZGVidWdmcy5jPTE4Mjg9c3RhdGljIHNzaXplX3QgaXdsX2RiZ2ZzX3Vjb2RlX3RyYWNpbmdfcmVhZChzdHJ1Y3QgZmlsZSAqZmlsZSxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2RlYnVnZnMuYy0xODQ1LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2RlYnVnZnMuYzoxODQ2OlxcdHJldHVybiBzaW1wbGVfcmVhZF9mcm9tX2J1ZmZlcih1c2VyX2J1ZiwgY291bnQsIHBwb3MsIGJ1ZiwgcG9zKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZWJ1Z2ZzLmMtMTg0Ny19XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZWJ1Z2ZzLmM9MTg3OT1zdGF0aWMgc3NpemVfdCBpd2xfZGJnZnNfcnhvbl9mbGFnc19yZWFkKHN0cnVjdCBmaWxlICpmaWxlLFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vZGVidWdmcy5jLTE4ODgtXFx0XFx0bGUzMl90b19jcHUocHJpdi1cXHUwMDNlY29udGV4dHNbSVdMX1JYT05fQ1RYX0JTU10uYWN0aXZlLmZsYWdzKSk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vZGVidWdmcy5jOjE4ODk6XFx0cmV0dXJuIHNpbXBsZV9yZWFkX2Zyb21fYnVmZmVyKHVzZXJfYnVmLCBjb3VudCwgcHBvcywgYnVmLCBsZW4pO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2RlYnVnZnMuYy0xODkwLX1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2RlYnVnZnMuYz0xODkyPXN0YXRpYyBzc2l6ZV90IGl3bF9kYmdmc19yeG9uX2ZpbHRlcl9mbGFnc19yZWFkKHN0cnVjdCBmaWxlICpmaWxlLFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vZGVidWdmcy5jLTE5MDEtXFx0XFx0bGUzMl90b19jcHUocHJpdi1cXHUwMDNlY29udGV4dHNbSVdMX1JYT05fQ1RYX0JTU10uYWN0aXZlLmZpbHRlcl9mbGFncykpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2RlYnVnZnMuYzoxOTAyOlxcdHJldHVybiBzaW1wbGVfcmVhZF9mcm9tX2J1ZmZlcih1c2VyX2J1ZiwgY291bnQsIHBwb3MsIGJ1ZiwgbGVuKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZWJ1Z2ZzLmMtMTkwMy19XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZWJ1Z2ZzLmM9MTkwNT1zdGF0aWMgc3NpemVfdCBpd2xfZGJnZnNfbWlzc2VkX2JlYWNvbl9yZWFkKHN0cnVjdCBmaWxlICpmaWxlLFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vZGVidWdmcy5jLTE5MTYtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vZGVidWdmcy5jOjE5MTc6XFx0cmV0dXJuIHNpbXBsZV9yZWFkX2Zyb21fYnVmZmVyKHVzZXJfYnVmLCBjb3VudCwgcHBvcywgYnVmLCBwb3MpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2RlYnVnZnMuYy0xOTE4LX1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2RlYnVnZnMuYz0xOTQ2PXN0YXRpYyBzc2l6ZV90IGl3bF9kYmdmc19wbGNwX2RlbHRhX3JlYWQoc3RydWN0IGZpbGUgKmZpbGUsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZWJ1Z2ZzLmMtMTk1Ny1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZWJ1Z2ZzLmM6MTk1ODpcXHRyZXR1cm4gc2ltcGxlX3JlYWRfZnJvbV9idWZmZXIodXNlcl9idWYsIGNvdW50LCBwcG9zLCBidWYsIHBvcyk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vZGVidWdmcy5jLTE5NTktfVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vZGVidWdmcy5jPTE5ODU9c3RhdGljIHNzaXplX3QgaXdsX2RiZ2ZzX3JmX3Jlc2V0X3JlYWQoc3RydWN0IGZpbGUgKmZpbGUsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZWJ1Z2ZzLmMtMjAwNi1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZWJ1Z2ZzLmM6MjAwNzpcXHRyZXR1cm4gc2ltcGxlX3JlYWRfZnJvbV9idWZmZXIodXNlcl9idWYsIGNvdW50LCBwcG9zLCBidWYsIHBvcyk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vZGVidWdmcy5jLTIwMDgtfVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vZGVidWdmcy5jPTIwNDU9c3RhdGljIHNzaXplX3QgaXdsX2RiZ2ZzX2J0X3RyYWZmaWNfcmVhZChzdHJ1Y3QgZmlsZSAqZmlsZSxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2RlYnVnZnMuYy0yMDU1LVxcdFxcdHBvcyArPSBzY25wcmludGYoYnVmICsgcG9zLCBidWZzeiAtIHBvcywgXFxcIkJUIGNvZXggZGlzYWJsZWRcXFxcblxcXCIpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2RlYnVnZnMuYzoyMDU2OlxcdFxcdHJldHVybiBzaW1wbGVfcmVhZF9mcm9tX2J1ZmZlcih1c2VyX2J1ZiwgY291bnQsIHBwb3MsIGJ1ZiwgcG9zKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZWJ1Z2ZzLmMtMjA1Ny1cXHR9XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZWJ1Z2ZzLmMtMjA4Ni1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZWJ1Z2ZzLmM6MjA4NzpcXHRyZXR1cm4gc2ltcGxlX3JlYWRfZnJvbV9idWZmZXIodXNlcl9idWYsIGNvdW50LCBwcG9zLCBidWYsIHBvcyk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vZGVidWdmcy5jLTIwODgtfVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vZGVidWdmcy5jPTIwOTA9c3RhdGljIHNzaXplX3QgaXdsX2RiZ2ZzX3Byb3RlY3Rpb25fbW9kZV9yZWFkKHN0cnVjdCBmaWxlICpmaWxlLFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vZGVidWdmcy5jLTIxMDgtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vZGVidWdmcy5jOjIxMDk6XFx0cmV0dXJuIHNpbXBsZV9yZWFkX2Zyb21fYnVmZmVyKHVzZXJfYnVmLCBjb3VudCwgcHBvcywgYnVmLCBwb3MpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2RlYnVnZnMuYy0yMTEwLX1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2RlYnVnZnMuYz0yMTcyPXN0YXRpYyBzc2l6ZV90IGl3bF9kYmdmc19sb2dfZXZlbnRfcmVhZChzdHJ1Y3QgZmlsZSAqZmlsZSxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2RlYnVnZnMuYy0yMTgxLVxcdGlmIChyZXQgXFx1MDAzZSAwKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2RlYnVnZnMuYzoyMTgyOlxcdFxcdHJldCA9IHNpbXBsZV9yZWFkX2Zyb21fYnVmZmVyKHVzZXJfYnVmLCBjb3VudCwgcHBvcywgYnVmLCByZXQpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2RlYnVnZnMuYy0yMTgzLVxcdGtmcmVlKGJ1Zik7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZWJ1Z2ZzLmM9MjIxMz1zdGF0aWMgc3NpemVfdCBpd2xfZGJnZnNfY2FsaWJfZGlzYWJsZWRfcmVhZChzdHJ1Y3QgZmlsZSAqZmlsZSxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2RlYnVnZnMuYy0yMjM3LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2RlYnVnZnMuYzoyMjM4OlxcdHJldHVybiBzaW1wbGVfcmVhZF9mcm9tX2J1ZmZlcih1c2VyX2J1ZiwgY291bnQsIHBwb3MsIGJ1ZiwgcG9zKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZWJ1Z2ZzLmMtMjIzOS19XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9tYWM4MDIxMS5jPTEzODg9c3RhdGljIGludCBpd2xhZ25fbWFjX2NoYW5nZV9pbnRlcmZhY2Uoc3RydWN0IGllZWU4MDIxMV9odyAqaHcsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9tYWM4MDIxMS5jLTE0MDYtXFx0LypcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9tYWM4MDIxMS5jOjE0MDc6XFx0ICogVG8gc2ltcGxpZnkgdGhpcyBjb2RlLCBvbmx5IHN1cHBvcnQgY2hhbmdlcyBvbiB0aGVcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9tYWM4MDIxMS5jLTE0MDgtXFx0ICogQlNTIGNvbnRleHQuIFRoZSBQQU4gY29udGV4dCBpcyB1c3VhbGx5IHJlYXNzaWduZWRcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL3JzLmM9MjE1Nz1zdGF0aWMgdm9pZCByc19yYXRlX3NjYWxlX3BlcmZvcm0oc3RydWN0IGl3bF9wcml2ICpwcml2LFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vcnMuYy0yNjAwLSAqICAgICAgIGlmIHRoZSBkcml2ZXIncyBpd2wtYWduLXJzIHJhdGUgc2NhbGluZyBhbGdvcml0aG0gaXMgdXNlZCwgaW5zdGVhZCBvZlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL3JzLmM6MjYwMTogKiAgICAgICByYzgwMjExX3NpbXBsZS5cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9ycy5jLTI2MDItICpcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL3JzLmM9MzA2MT1zdGF0aWMgc3NpemVfdCByc19zdGFfZGJnZnNfc2NhbGVfdGFibGVfcmVhZChzdHJ1Y3QgZmlsZSAqZmlsZSxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL3JzLmMtMzE1Ny1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9ycy5jOjMxNTg6XFx0cmV0ID0gc2ltcGxlX3JlYWRfZnJvbV9idWZmZXIodXNlcl9idWYsIGNvdW50LCBwcG9zLCBidWZmLCBkZXNjKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9ycy5jLTMxNTktXFx0a2ZyZWUoYnVmZik7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9ycy5jPTMxNjM9c3RhdGljIGNvbnN0IHN0cnVjdCBmaWxlX29wZXJhdGlvbnMgcnNfc3RhX2RiZ2ZzX3NjYWxlX3RhYmxlX29wcyA9IHtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL3JzLmMtMzE2NS1cXHQucmVhZCA9IHJzX3N0YV9kYmdmc19zY2FsZV90YWJsZV9yZWFkLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL3JzLmM6MzE2NjpcXHQub3BlbiA9IHNpbXBsZV9vcGVuLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL3JzLmMtMzE2Ny1cXHQubGxzZWVrID0gZGVmYXVsdF9sbHNlZWssXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9ycy5jPTMxNjk9c3RhdGljIHNzaXplX3QgcnNfc3RhX2RiZ2ZzX3N0YXRzX3RhYmxlX3JlYWQoc3RydWN0IGZpbGUgKmZpbGUsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9ycy5jLTMyMDEtXFx0fVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL3JzLmM6MzIwMjpcXHRyZXQgPSBzaW1wbGVfcmVhZF9mcm9tX2J1ZmZlcih1c2VyX2J1ZiwgY291bnQsIHBwb3MsIGJ1ZmYsIGRlc2MpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL3JzLmMtMzIwMy1cXHRrZnJlZShidWZmKTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL3JzLmM9MzIwNz1zdGF0aWMgY29uc3Qgc3RydWN0IGZpbGVfb3BlcmF0aW9ucyByc19zdGFfZGJnZnNfc3RhdHNfdGFibGVfb3BzID0ge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL3JzLmMtMzIwOC1cXHQucmVhZCA9IHJzX3N0YV9kYmdmc19zdGF0c190YWJsZV9yZWFkLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL3JzLmM6MzIwOTpcXHQub3BlbiA9IHNpbXBsZV9vcGVuLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL3JzLmMtMzIxMC1cXHQubGxzZWVrID0gZGVmYXVsdF9sbHNlZWssXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9ycy5jPTMyMTM9c3RhdGljIHNzaXplX3QgcnNfc3RhX2RiZ2ZzX3JhdGVfc2NhbGVfZGF0YV9yZWFkKHN0cnVjdCBmaWxlICpmaWxlLFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vcnMuYy0zMjI5LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL3JzLmM6MzIzMDpcXHRyZXR1cm4gc2ltcGxlX3JlYWRfZnJvbV9idWZmZXIodXNlcl9idWYsIGNvdW50LCBwcG9zLCBidWZmLCBkZXNjKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9ycy5jLTMyMzEtfVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vcnMuYz0zMjMzPXN0YXRpYyBjb25zdCBzdHJ1Y3QgZmlsZV9vcGVyYXRpb25zIHJzX3N0YV9kYmdmc19yYXRlX3NjYWxlX2RhdGFfb3BzID0ge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL3JzLmMtMzIzNC1cXHQucmVhZCA9IHJzX3N0YV9kYmdmc19yYXRlX3NjYWxlX2RhdGFfcmVhZCxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9ycy5jOjMyMzU6XFx0Lm9wZW4gPSBzaW1wbGVfb3BlbixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9ycy5jLTMyMzYtXFx0Lmxsc2VlayA9IGRlZmF1bHRfbGxzZWVrLFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vc2Nhbi5jPTM2PXN0YXRpYyBpbnQgaXdsX3NlbmRfc2Nhbl9hYm9ydChzdHJ1Y3QgaXdsX3ByaXYgKnByaXYpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9zY2FuLmMtNjAtXFx0XFx0ICogMiBmb3IgXFxcImZhaWx1cmVcXFwiLiAgQSBmYWlsdXJlIGNvbmRpdGlvbiBjYW4gYmVcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9zY2FuLmM6NjE6XFx0XFx0ICogZHVlIHRvIHNpbXBseSBub3QgYmVpbmcgaW4gYW4gYWN0aXZlIHNjYW4gd2hpY2hcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9zY2FuLmMtNjItXFx0XFx0ICogY2FuIG9jY3VyIGlmIHdlIHNlbmQgdGhlIHNjYW4gYWJvcnQgYmVmb3JlIHdlXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2Z3L2FwaS9sb2NhdGlvbi5oPTIxMT1lbnVtIGl3bF90b2ZfcmVzcG9uZGVyX2NmZ19mbGFncyB7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2Z3L2FwaS9sb2NhdGlvbi5oLTIzOC0gKiBAdG9hX29mZnNldDogQXJ0aWZpY2lhbCBhZGRpdGlvbiBbcFNlY10gZm9yIHRoZSBUb0EgLSB0byBiZSB1c2VkIGZvciBkZWJ1Z1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZncvYXBpL2xvY2F0aW9uLmg6MjM5OiAqXFx0cHVycG9zZXMsIHNpbXVsYXRpbmcgc3RhdGlvbiBtb3ZlbWVudCBieSBhZGRpbmcgdmFyaW91cyB2YWx1ZXNcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2Z3L2FwaS9sb2NhdGlvbi5oLTI0MC0gKlxcdHRvIHRoaXMgZmllbGRcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZncvYXBpL2xvY2F0aW9uLmg9MjQ2PXN0cnVjdCBpd2xfdG9mX3Jlc3BvbmRlcl9jb25maWdfY21kX3Y2IHtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZncvYXBpL2xvY2F0aW9uLmgtMjc0LSAqIEB0b2Ffb2Zmc2V0OiBBcnRpZmljaWFsIGFkZGl0aW9uIFtwU2VjXSBmb3IgdGhlIFRvQSAtIHRvIGJlIHVzZWQgZm9yIGRlYnVnXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9mdy9hcGkvbG9jYXRpb24uaDoyNzU6ICpcXHRwdXJwb3Nlcywgc2ltdWxhdGluZyBzdGF0aW9uIG1vdmVtZW50IGJ5IGFkZGluZyB2YXJpb3VzIHZhbHVlc1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZncvYXBpL2xvY2F0aW9uLmgtMjc2LSAqXFx0dG8gdGhpcyBmaWVsZFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9mdy9hcGkvbG9jYXRpb24uaD0yODI9c3RydWN0IGl3bF90b2ZfcmVzcG9uZGVyX2NvbmZpZ19jbWRfdjcge1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9mdy9hcGkvbG9jYXRpb24uaC0zMTMtICogQHRvYV9vZmZzZXQ6IEFydGlmaWNpYWwgYWRkaXRpb24gW3BTZWNdIGZvciB0aGUgVG9BIC0gdG8gYmUgdXNlZCBmb3IgZGVidWdcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2Z3L2FwaS9sb2NhdGlvbi5oOjMxNDogKlxcdHB1cnBvc2VzLCBzaW11bGF0aW5nIHN0YXRpb24gbW92ZW1lbnQgYnkgYWRkaW5nIHZhcmlvdXMgdmFsdWVzXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9mdy9hcGkvbG9jYXRpb24uaC0zMTUtICpcXHR0byB0aGlzIGZpZWxkXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2Z3L2FwaS9sb2NhdGlvbi5oPTMzMD1zdHJ1Y3QgaXdsX3RvZl9yZXNwb25kZXJfY29uZmlnX2NtZF92OCB7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2Z3L2FwaS9sb2NhdGlvbi5oLTM1OS0gKiBAdG9hX29mZnNldDogQXJ0aWZpY2lhbCBhZGRpdGlvbiBbcFNlY10gZm9yIHRoZSBUb0EgLSB0byBiZSB1c2VkIGZvciBkZWJ1Z1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZncvYXBpL2xvY2F0aW9uLmg6MzYwOiAqXFx0cHVycG9zZXMsIHNpbXVsYXRpbmcgc3RhdGlvbiBtb3ZlbWVudCBieSBhZGRpbmcgdmFyaW91cyB2YWx1ZXNcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2Z3L2FwaS9sb2NhdGlvbi5oLTM2MS0gKlxcdHRvIHRoaXMgZmllbGRcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZncvYXBpL2xvY2F0aW9uLmg9MzgwPXN0cnVjdCBpd2xfdG9mX3Jlc3BvbmRlcl9jb25maWdfY21kX3Y5IHtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZncvYXBpL2xvY2F0aW9uLmgtNDExLSAqIEB0b2Ffb2Zmc2V0OiBBcnRpZmljaWFsIGFkZGl0aW9uIFtwU2VjXSBmb3IgdGhlIFRvQSAtIHRvIGJlIHVzZWQgZm9yIGRlYnVnXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9mdy9hcGkvbG9jYXRpb24uaDo0MTI6ICpcXHRwdXJwb3Nlcywgc2ltdWxhdGluZyBzdGF0aW9uIG1vdmVtZW50IGJ5IGFkZGluZyB2YXJpb3VzIHZhbHVlc1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZncvYXBpL2xvY2F0aW9uLmgtNDEzLSAqXFx0dG8gdGhpcyBmaWVsZFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9mdy9hcGkvcG93ZXIuaD05Nj1lbnVtIGl3bF9wb3dlcl9mbGFncyB7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2Z3L2FwaS9wb3dlci5oLTExMi0gKlxcdGlzIHVzZWQgYWxzbyB3aXRoIGEgbmV3XFx0cG93ZXIgQVBJIGZvciBkZXZpY2Ugd2lkZSBwb3dlciBzZXR0aW5ncy5cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2Z3L2FwaS9wb3dlci5oOjExMzogKiBQT1dFUl9UQUJMRV9DTUQgPSAweDc3IChjb21tYW5kLCBoYXMgc2ltcGxlIGdlbmVyaWMgcmVzcG9uc2UpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9mdy9hcGkvcG93ZXIuaC0xMTQtICpcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZncvYXBpL3Bvd2VyLmg9MTU3PWVudW0gaXdsX2RldmljZV9wb3dlcl9mbGFncyB7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2Z3L2FwaS9wb3dlci5oLTE2NS0gKiBzdHJ1Y3QgaXdsX2RldmljZV9wb3dlcl9jbWQgLSBkZXZpY2Ugd2lkZSBwb3dlciBjb21tYW5kLlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZncvYXBpL3Bvd2VyLmg6MTY2OiAqIERFVklDRV9QT1dFUl9DTUQgPSAweDc3IChjb21tYW5kLCBoYXMgc2ltcGxlIGdlbmVyaWMgcmVzcG9uc2UpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9mdy9hcGkvcG93ZXIuaC0xNjctICpcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZncvYXBpL3Bvd2VyLmg9MTcxPXN0cnVjdCBpd2xfZGV2aWNlX3Bvd2VyX2NtZCB7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2Z3L2FwaS9wb3dlci5oLTE3OC0gKiBzdHJ1Y3QgaXdsX21hY19wb3dlcl9jbWQgLSBOZXcgcG93ZXIgY29tbWFuZCBjb250YWluaW5nIHVBUFNEIHN1cHBvcnRcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2Z3L2FwaS9wb3dlci5oOjE3OTogKiBNQUNfUE1fUE9XRVJfVEFCTEUgPSAweEE5IChjb21tYW5kLCBoYXMgc2ltcGxlIGdlbmVyaWMgcmVzcG9uc2UpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9mdy9hcGkvcG93ZXIuaC0xODAtICogQGlkX2FuZF9jb2xvcjpcXHRNQUMgY29udGV4IGlkZW50aWZpZXIsIFxcdTAwMjZlbnVtIGl3bF9jdHh0X2lkX2FuZF9jb2xvclxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9mdy9kYmcuaD0xNTY9c3RhdGljIGlubGluZSB2b2lkXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9mdy9kYmcuaDoxNTc6X2l3bF9md19kYmdfdHJpZ2dlcl9zaW1wbGVfc3RvcChzdHJ1Y3QgaXdsX2Z3X3J1bnRpbWUgKmZ3cnQsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9mdy9kYmcuaC0xNTgtXFx0XFx0XFx0XFx0c3RydWN0IHdpcmVsZXNzX2RldiAqd2RldixcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZncvZGJnLmgtMTY5LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZncvZGJnLmg6MTcwOiNkZWZpbmUgaXdsX2Z3X2RiZ190cmlnZ2VyX3NpbXBsZV9zdG9wKGZ3cnQsIHdkZXYsIHRyaWcpXFx0XFxcXFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZncvZGJnLmg6MTcxOlxcdF9pd2xfZndfZGJnX3RyaWdnZXJfc2ltcGxlX3N0b3AoKGZ3cnQpLCAod2RldiksXFx0XFx0XFxcXFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZncvZGJnLmgtMTcyLVxcdFxcdFxcdFxcdFxcdGl3bF9md19kYmdfZ2V0X3RyaWdnZXIoKGZ3cnQpLVxcdTAwM2VmdyxcXFxcXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2Z3L2RlYnVnZnMuYz0zNj1zdGF0aWMgc3NpemVfdCBfaXdsX2RiZ2ZzXyMjbmFtZSMjX3JlYWQoc3RydWN0IGZpbGUgKmZpbGUsXFx0XFx0XFxcXFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9mdy9kZWJ1Z2ZzLmMtNTAtXFx0XFx0cmV0dXJuIGRhdGEtXFx1MDAzZXJsZW47XFx0XFx0XFx0XFx0XFx0XFxcXFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZncvZGVidWdmcy5jOjUxOlxcdHJldHVybiBzaW1wbGVfcmVhZF9mcm9tX2J1ZmZlcih1c2VyX2J1ZiwgY291bnQsIHBwb3MsXFx0XFx0XFxcXFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZncvZGVidWdmcy5jLTUyLVxcdFxcdFxcdFxcdCAgICAgICBkYXRhLVxcdTAwM2VyYnVmLCBkYXRhLVxcdTAwM2VybGVuKTtcXHRcXHRcXFxcXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2Z3L3VlZmkuaD0yNDE9c3RydWN0IHVlZmlfY252X3dwZmNfZGF0YSB7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2Z3L3VlZmkuaC0yNDctICogVGhpcyBpcyBrbm93biB0byBiZSBicm9rZW4gb24gdjQuMTkgYW5kIHRvIHdvcmsgb24gdjUuNC4gIFVudGlsIHdlXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9mdy91ZWZpLmg6MjQ4OiAqIGZpZ3VyZSBvdXQgd2h5IHRoaXMgaXMgdGhlIGNhc2UgYW5kIGhvdyB0byBtYWtlIGl0IHdvcmssIHNpbXBseVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZncvdWVmaS5oLTI0OS0gKiBkaXNhYmxlIHRoZSBmZWF0dXJlIGluIG9sZCBrZXJuZWxzLlxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9pd2wtY3NyLmgtMTctICogVXNlIGl3bF93cml0ZTMyKCkgYW5kIGl3bF9yZWFkMzIoKSBmYW1pbHkgdG8gYWNjZXNzIHRoZXNlIHJlZ2lzdGVycztcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2l3bC1jc3IuaDoxODogKiB0aGVzZSBwcm92aWRlIHNpbXBsZSBQQ0kgYnVzIGFjY2Vzcywgd2l0aG91dCB3YWtpbmcgdXAgdGhlIE1BQy5cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2l3bC1jc3IuaC0xOS0gKiBEbyBub3QgdXNlIGl3bF93cml0ZV9kaXJlY3QzMigpIGZhbWlseSBmb3IgdGhlc2UgcmVnaXN0ZXJzO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9pd2wtY3NyLmg9MzIxPWVudW0ge1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9pd2wtY3NyLmgtNTA4LSAqIERvIG5vdCB1c2UgaXdsX3dyaXRlMzIoKS9pd2xfcmVhZDMyKCkgZmFtaWx5IHRvIGFjY2VzcyB0aGVzZSByZWdpc3RlcnM7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9pd2wtY3NyLmg6NTA5OiAqIHRoZXNlIHByb3ZpZGUgb25seSBzaW1wbGUgUENJIGJ1cyBhY2Nlc3MsIHdpdGhvdXQgd2FraW5nIHVwIHRoZSBNQUMuXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9pd2wtY3NyLmgtNTEwLSAqL1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9pd2wtZGVidWcuaD0xMDI9ZG8geyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXFx0XFx0XFx0XFxcXFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9pd2wtZGVidWcuaC0xMTMtICpcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2l3bC1kZWJ1Zy5oOjExNDogKiBJZiB5b3UgYXJlIGRlZmluaW5nIGEgbmV3IGRlYnVnIGNsYXNzaWZpY2F0aW9uLCBzaW1wbHkgYWRkIGl0IHRvIHRoZSAjZGVmaW5lXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9pd2wtZGVidWcuaC0xMTUtICogbGlzdCBoZXJlIGluIHRoZSBmb3JtIG9mXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2l3bC1vcC1tb2RlLmg9MjA9c3RydWN0IGl3bF9yZl9jZmc7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2l3bC1vcC1tb2RlLmgtMzYtICpcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2l3bC1vcC1tb2RlLmg6Mzc6ICogVGhlIG9wZXJhdGlvbmFsIG1vZGUgaGFzIGEgdmVyeSBzaW1wbGUgbGlmZSBjeWNsZS5cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2l3bC1vcC1tb2RlLmgtMzgtICpcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvaXdsLXV0aWxzLmM9ODY9c3RhdGljIHUzMiBpd2xfZGl2X2J5X2RiKHUzMiB2YWx1ZSwgdTggZGIpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2l3bC11dGlscy5jLTg4LVxcdC8qXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9pd2wtdXRpbHMuYzo4OTpcXHQgKiAyXjMyICogMTAqKihpIC8gMTApIGZvciBpID0gWzEsIDEwXSwgc2tpcHBpbmcgMCBhbmQgc2ltcGx5IHN0b3BwaW5nXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9pd2wtdXRpbHMuYy05MC1cXHQgKiBhdCAxMCBkQiBhbmQgbG9vcGluZyBpbnN0ZWFkIG9mIHVzaW5nIGEgbXVjaCBsYXJnZXIgdGFibGUuXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21laS9pd2wtbWVpLmgtMTc0LSAqIENTTUUgY2FuIHRyYW5zbWl0IHBhY2tldHMsIHRocm91Z2ggdGhlIG5ldGRldiB0aGF0IGl0IGdldHMgZnJvbSB0aGUgd2lmaVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWVpL2l3bC1tZWkuaDoxNzU6ICogZHJpdmVyLiBJdCdsbCBzZW5kIHBhY2tldCBpbiB0aGUgODAyLjMgZm9ybWF0IGFuZCBzaW1wbHkgY2FsbFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWVpL2l3bC1tZWkuaC0xNzYtICogZGV2X3F1ZXVlX3htaXQuXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21laS9pd2wtbWVpLmg9NDI4PXZvaWQgaXdsX21laV9zZXRfbmV0ZGV2KHN0cnVjdCBuZXRfZGV2aWNlICpuZXRkZXYpO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tZWkvaXdsLW1laS5oLTQzNi0gKlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWVpL2l3bC1tZWkuaDo0Mzc6ICogVGhpcyBmdW5jdGlvbiBkb2Vzbid0IHRha2UgYW55IGxvY2ssIGl0IHNpbXBseSB0cmllcyB0byBjYXRjaCBESENQXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tZWkvaXdsLW1laS5oLTQzOC0gKiBwYWNrZXRzIHNlbnQgYnkgdGhlIHdpZmkgZHJpdmVyLiBJZiB0aGUgcGFja2V0IGlzIGEgREhDUCBwYWNrZXQsIGl0XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21laS9tYWluLmM9MTkwMD1zdGF0aWMgY29uc3Qgc3RydWN0IGZpbGVfb3BlcmF0aW9ucyBpd2xfbWVpX2RiZ2ZzX3NlbmRfc3RhcnRfbWVzc2FnZV9vcHMgPSB7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tZWkvbWFpbi5jLTE5MDEtXFx0LndyaXRlID0gaXdsX21laV9kYmdmc19zZW5kX3N0YXJ0X21lc3NhZ2Vfd3JpdGUsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tZWkvbWFpbi5jOjE5MDI6XFx0Lm9wZW4gPSBzaW1wbGVfb3BlbixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21laS9tYWluLmMtMTkwMy1cXHQubGxzZWVrID0gZGVmYXVsdF9sbHNlZWssXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21laS9tYWluLmM9MTkxNT1zdGF0aWMgY29uc3Qgc3RydWN0IGZpbGVfb3BlcmF0aW9ucyBpd2xfbWVpX2RiZ2ZzX3JlcV9vd25lcnNoaXBfb3BzID0ge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWVpL21haW4uYy0xOTE2LVxcdC53cml0ZSA9IGl3bF9tZWlfZGJnZnNfcmVxX293bmVyc2hpcF93cml0ZSxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21laS9tYWluLmM6MTkxNzpcXHQub3BlbiA9IHNpbXBsZV9vcGVuLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWVpL21haW4uYy0xOTE4LVxcdC5sbHNlZWsgPSBkZWZhdWx0X2xsc2VlayxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL2RlYnVnZnMuaD0zNT1zdGF0aWMgc3NpemVfdCBfaXdsX2RiZ2ZzXyMjbmFtZSMjX3JlYWQoc3RydWN0IGZpbGUgKmZpbGUsXFx0XFx0XFxcXFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvZGVidWdmcy5oLTQ5LVxcdFxcdHJldHVybiBkYXRhLVxcdTAwM2VybGVuO1xcdFxcdFxcdFxcdFxcdFxcXFxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC9kZWJ1Z2ZzLmg6NTA6XFx0cmV0dXJuIHNpbXBsZV9yZWFkX2Zyb21fYnVmZmVyKHVzZXJfYnVmLCBjb3VudCwgcHBvcyxcXHRcXHRcXFxcXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvZGVidWdmcy5oLTUxLVxcdFxcdFxcdFxcdCAgICAgICBkYXRhLVxcdTAwM2VidWYsIGRhdGEtXFx1MDAzZXJsZW4pO1xcdFxcdFxcXFxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL2RlYnVnZnMuaD0xMDE9c3RhdGljIHNzaXplX3QgX19pd2xfZGJnZnNfIyNuYW1lIyNfd3JpdGUoc3RydWN0IGZpbGUgKmZpbGUsXFx0XFx0XFxcXFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvZGVidWdmcy5oLTExOS1cXHRcXHQud3JpdGUgPSBfX2l3bF9kYmdmc18jI25hbWUjI193cml0ZSxcXHRcXHRcXHRcXFxcXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvZGVidWdmcy5oOjEyMDpcXHRcXHQub3BlbiA9IHNpbXBsZV9vcGVuLFxcdFxcdFxcdFxcdFxcdFxcXFxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC9kZWJ1Z2ZzLmgtMTIxLVxcdFxcdC5sbHNlZWsgPSBnZW5lcmljX2ZpbGVfbGxzZWVrLFxcdFxcdFxcdFxcdFxcXFxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL2RlYnVnZnMuaD0xNjI9c3RhdGljIHNzaXplX3QgX19pd2xfZGJnZnNfIyNuYW1lIyNfcmVhZChzdHJ1Y3QgZmlsZSAqZmlsZSxcXHRcXHRcXFxcXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC9kZWJ1Z2ZzLmgtMTc5LVxcdFxcdHJldHVybiBkYXRhLVxcdTAwM2VybGVuO1xcdFxcdFxcdFxcdFxcdFxcXFxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC9kZWJ1Z2ZzLmg6MTgwOlxcdHJldHVybiBzaW1wbGVfcmVhZF9mcm9tX2J1ZmZlcih1c2VyX2J1ZiwgY291bnQsIHBwb3MsXFx0XFx0XFxcXFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL2RlYnVnZnMuaC0xODEtXFx0XFx0XFx0XFx0ICAgICAgIGRhdGEtXFx1MDAzZWJ1ZiwgZGF0YS1cXHUwMDNlcmxlbik7XFx0XFx0XFxcXFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvbWFjODAyMTEuYz0xMzY5PWl3bF9tbGRfbWFjODAyMTFfY2FuY2VsX2h3X3NjYW4oc3RydWN0IGllZWU4MDIxMV9odyAqaHcsXFxuXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTMxVDE4OjE1OjI2LjA2MTk3ODg3M1oiLCJTZXEiOjUsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy43LWZsYXNoIiwiRHVyYXRpb24iOjU2NjY5NTExMDUsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IkhlcmUncyBteSBhdHRlbXB0IGF0IHN1bW1hcml6aW5nIHRoYXQgdGhvdWdodCBwcm9jZXNzLCB0YWlsb3JlZCBmb3IgYW4gZXhwZXJ0IGF1ZGllbmNlOlxuXG4qKkRpdmluZyBpbnRvIHRoZSBpd2x3aWZpIERyaXZlcioqXG5cbk9rYXksIHNvIEknbSBwb2tpbmcgYXJvdW5kIHRoZSBrZXJuZWwncyBpd2x3aWZpIGRyaXZlciBjb2RlLiBJJ20gcHJpbWFyaWx5IGludGVyZXN0ZWQgaW4gdW5kZXJzdGFuZGluZyBpdHMgaW50ZXJhY3Rpb25zLiBTcGVjaWZpY2FsbHksIEkgd2FudCB0byB0cmFjZSBob3cgaXQgaG9va3MgaW50byB0aGUgc3lzdGVtLiBNeSBmaXJzdCBsaW5lIG9mIGludmVzdGlnYXRpb24gd2lsbCBiZSB0byBmaWd1cmUgb3V0IHRoZSBidXMgcmVnaXN0cmF0aW9ucy4gV2hhdCBidXNlcyBkb2VzIHRoaXMgZHJpdmVyIGluaXRpYWxpemUgd2l0aD8gUENJPyBVU0I/IFBlcmhhcHMgZXZlbiBTRElPIG9yIHNvbWV0aGluZyBtb3JlIG9ic2N1cmUsIGRlcGVuZGluZyBvbiB0aGUgSW50ZWwgd2lyZWxlc3MgY2hpcHNldHMgaXQgc3VwcG9ydHM/IEkgbmVlZCB0byBnZXQgYSBjbGVhciBwaWN0dXJlIG9mIGl0cyBkZXZpY2UgcHJvYmluZyBhbmQgZHJpdmVyIGJpbmRpbmcgbWVjaGFuaXNtcy4gVW5kZXJzdGFuZGluZyB0aGUgYnVzIGludGVyYWN0aW9ucyB3aWxsIHRoZW4gZGljdGF0ZSB3aGljaCBrZXJuZWwgY29tcG9uZW50cyBvciBjb25maWd1cmF0aW9ucywgaWYgYW55LCBJIG5lZWQgdG8gZm9jdXMgbXkgYXR0ZW50aW9uLlxuXG5cbiIsIklucHV0VG9rZW5zIjoxNjMyMCwiT3V0cHV0VG9rZW5zIjo0NSwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjI0LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTMxVDE4OjE1OjMxLjcyODkzMjMxOFoiLCJTZXEiOjYsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoxNDE0MTAzNzAsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwibW9kdWxlX3BjaV9kcml2ZXJ8cGNpX3JlZ2lzdGVyX2RyaXZlclwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJkcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJkcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2l3bC1kcnYuYz0yMDYyPXN0YXRpYyBpbnQgX19pbml0IGl3bF9kcnZfaW5pdCh2b2lkKVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9pd2wtZHJ2LmMtMjA3My1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2l3bC1kcnYuYzoyMDc0OlxcdGVyciA9IGl3bF9wY2lfcmVnaXN0ZXJfZHJpdmVyKCk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9pd2wtZHJ2LmMtMjA3NS1cXHRpZiAoZXJyKVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9pd2wtdHJhbnMuaD0xMjEyPXN0YXRpYyBpbmxpbmUgdm9pZCBpd2xfdHJhbnNfbm90aWZ5X2Z3X2Vycm9yKHN0cnVjdCBpd2xfdHJhbnMgKnRyYW5zKVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9pd2wtdHJhbnMuaC0xMjE5LSAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2l3bC10cmFucy5oOjEyMjA6aW50IF9fbXVzdF9jaGVjayBpd2xfcGNpX3JlZ2lzdGVyX2RyaXZlcih2b2lkKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2l3bC10cmFucy5oLTEyMjEtdm9pZCBpd2xfcGNpX3VucmVnaXN0ZXJfZHJpdmVyKHZvaWQpO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9wY2llL2Rydi5jPTEzMjM9c3RhdGljIHN0cnVjdCBwY2lfZHJpdmVyIGl3bF9wY2lfZHJpdmVyID0ge1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9wY2llL2Rydi5jLTEzMzEtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9wY2llL2Rydi5jOjEzMzI6aW50IF9fbXVzdF9jaGVjayBpd2xfcGNpX3JlZ2lzdGVyX2RyaXZlcih2b2lkKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvcGNpZS9kcnYuYy0xMzMzLXtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL3BjaWUvZHJ2LmMtMTMzNC1cXHRpbnQgcmV0O1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvcGNpZS9kcnYuYzoxMzM1OlxcdHJldCA9IHBjaV9yZWdpc3Rlcl9kcml2ZXIoXFx1MDAyNml3bF9wY2lfZHJpdmVyKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL3BjaWUvZHJ2LmMtMTMzNi1cXHRpZiAocmV0KVxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0zMVQxODoxNTozMS44NzAzNDk0NDhaIiwiU2VxIjo3LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuNy1mbGFzaCIsIkR1cmF0aW9uIjozNzUzMjgwMTc3NSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiT2theSwgaGVyZSdzIG15IHRha2Ugb24gdGhvc2UgdGhvdWdodHMsIGZyYW1lZCBhcyBhbiBleHBlcnQncyBpbnRlcm5hbCBtb25vbG9ndWU6XG5cbioqSW52ZXN0aWdhdGluZyBpd2x3aWZpIEJ1cyBTdXBwb3J0KipcblxuQWxyaWdodCwgbGV0J3MgZ2V0IGRvd24gdG8gYnJhc3MgdGFja3MuIEkgbmVlZCB0byBtYWtlIHN1cmUgd2UncmUgbm90IGp1c3QgdHVubmVsLXZpc2lvbmVkIG9uIFBDSSBmb3IgdGhlIGl3bHdpZmkgZHJpdmVyLiBJdCdzIHRpbWUgdG8gZGlnIGRlZXBlciBhbmQgc2VlIGlmIHRoZSBkcml2ZXIgaXMgZGVzaWduZWQgdG8gc3VwcG9ydCBvdGhlciBidXMgdHlwZXMuIEknbSB0aGlua2luZyBzcGVjaWZpY2FsbHkgYWJvdXQgcG9zc2liaWxpdGllcyBiZXlvbmQgUENJIOKAkyBhcmUgd2UgbG9va2luZyBhdCBVU0IgaW1wbGVtZW50YXRpb25zLCBvciBwZXJoYXBzIHBsYXRmb3JtLXNwZWNpZmljIGludGVncmF0aW9ucz8gVGhpcyBpcyBpbXBvcnRhbnQ7IGlmIHdlJ3JlIG9ubHkgY29uc2lkZXJpbmcgUENJLCB3ZSBjb3VsZCBiZSBtaXNzaW5nIGEgd2hvbGUgZWNvc3lzdGVtIG9mIHBvdGVudGlhbCBoYXJkd2FyZSB0aGF0IGNvdWxkIGxldmVyYWdlIHRoaXMgZHJpdmVyLiBFeHBhbnNpb24gaGVyZSBjb3VsZCBiZSBodWdlLiBUaW1lIHRvIG1hcCBvdXQgdGhlIGRpZmZlcmVudCBwb3NzaWJpbGl0aWVzLlxuXG5cbiIsIklucHV0VG9rZW5zIjoxNzA4OCwiT3V0cHV0VG9rZW5zIjozOSwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjI1LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTMxVDE4OjE2OjA5LjQwMzE1NDEyM1oiLCJTZXEiOjgsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoxMjkzMzI2NzEsIkVycm9yIjoibm8gbWF0Y2hlcyIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcImRyaXZlcl9yZWdpc3RlcnxwbGF0Zm9ybV9kcml2ZXJcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9cIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiZXJyb3JcIjogXCJubyBtYXRjaGVzXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTMxVDE4OjE2OjA5LjUzMjUwMDE2NFoiLCJTZXEiOjksIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy43LWZsYXNoIiwiRHVyYXRpb24iOjEwMDIxODk2NDQ3LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkFuYWx5emluZyB0aGUgUG90ZW50aWFsIGZvciBGdXp6aW5nIHdpdGggdGhlIGl3bHdpZmkgRHJpdmVyKipcblxuT2theSwgc28gSSdtIGxvb2tpbmcgYXQgYSBwYXRjaCByZWxhdGVkIHRvIHRoZSBgaXdsd2lmaWAgZHJpdmVyLCBzcGVjaWZpY2FsbHkgdGhlIFBDSSBkcml2ZXIgYGl3bF9wY2lfZHJpdmVyYC4gTXkgaW1tZWRpYXRlIHRob3VnaHQgaXMgdG8gZGV0ZXJtaW5lIGlmIHRoaXMgcGF0Y2ggaXMgYSBnb29kIGNhbmRpZGF0ZSBmb3IgZnV6emluZywgYW5kIEkgbmVlZCB0byBhcHBseSB0aGUgcnVsZXMgb3V0bGluZWQuIEknbGwgbmVlZCB0byBjaGVjayB0aGUgcGF0Y2ggZGV0YWlscyBhbmQgc2VlIGlmIGFueSBvZiB0aGUgY3JpdGVyaWEgdGhhdCB3b3VsZCBtYWtlIGl0ICpub3QqIGZ1enphYmxlIGFwcGx5LlxuXG5GaXJzdCwgSSBuZWVkIHRvIGtub3cgcHJlY2lzZWx5IHdoYXQncyBjaGFuZ2VkLiBUaGUgZmlsZSBpcyBgZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tdm0vc2Nhbi5jYCwgd2hpY2ggbWFrZXMgbWUgdGhpbmsgaXQncyBkZWFsaW5nIHdpdGggdGhlIE11bHRpLVZpcnR1YWwgTWFjaGluZSAoTVZNKSBhcmNoaXRlY3R1cmUgb2YgaXdsd2lmaS4gVGhlIGZ1bmN0aW9uIGluIHF1ZXN0aW9uIGlzIGBpd2xfbXZtX3J4X3VtYWNfc2Nhbl9jb21wbGV0ZV9ub3RpZmAuIFRoZSBuYW1lIGlzIGEgbW91dGhmdWwsIGJ1dCBpZiBpdCBpcyByZWxhdGVkIHRvIFwic2NhbiBjb21wbGV0ZSBub3RpZmljYXRpb25cIiBJIGNhbiBpbWFnaW5lIGl0IGJlaW5nIHRyaWdnZXJlZCBiYXNlZCBvbiBleHRlcm5hbCBpbnB1dCwgd2hpY2ggbWFrZXMgbWUgZmVlbCBwcmV0dHkgb3B0aW1pc3RpYyBhYm91dCBpdHMgc3VpdGFiaWxpdHkgZm9yIGZ1enppbmcgYXQgdGhpcyBzdGFnZS5cblxuTm93LCBJJ2xsIGNhcmVmdWxseSByZWFkIHRoZSBjb2RlIHdpdGhpbiBgaXdsX212bV9yeF91bWFjX3NjYW5fY29tcGxldGVfbm90aWZgIGFuZCBzZWUgaWYgdGhlIHBhdGNoIGludHJvZHVjZXMgYW55IG1vZGlmaWNhdGlvbnMgdGhhdCBjb3VsZCBiZSBjb3ZlcmVkIGJ5IHRoZSBuZWdhdGl2ZSBydWxlcywgdG8gYmUgY2VydGFpbi4gSSBrbm93IHRoZSBnZW5lcmFsIHN0cnVjdHVyZSBvZiB0aGUgd2lyZWxlc3Mgc3Vic3lzdGVtIGFuZCBJIGtub3cgdGhlIHBvdGVudGlhbCBwaXRmYWxscywgc28gSSdsbCBiZSBsb29raW5nIGNhcmVmdWxseSBhdCBkYXRhIHN0cnVjdHVyZXMgYW5kIGhvdyB0aGlzIG5vdGlmaWNhdGlvbiBpbnRlcmFjdHMgd2l0aCB0aGUgTUFDIGxheWVyLiBJJ20gZXNwZWNpYWxseSBpbnRlcmVzdGVkIGluIHdoZXRoZXIgdGhlIGNoYW5nZXMgaW50cm9kdWNlIG5ldyBkYXRhIHBhdGhzLCBhbHRlciBjb250cm9sIGZsb3cgc2lnbmlmaWNhbnRseSwgb3IgaGFuZGxlIGV4dGVybmFsIGRhdGEgdGhhdCBtaWdodCBiZSBzdXNjZXB0aWJsZSB0byBtYW5pcHVsYXRpb24uIExldCdzIHNlZS4uLlxuXG5cbiIsIklucHV0VG9rZW5zIjoxNzMxOSwiT3V0cHV0VG9rZW5zIjo0NywiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjM1MiwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wOC0zMVQxODoxNjoxOS41NTQzOTk5OTFaIiwiU2VxIjoxMCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoicmVhZC1maWxlIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MjEyMDgwLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRmlsZVwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbXZtL3NjYW4uY1wiLFxuICBcIkZpcnN0TGluZVwiOiAzMjAwLFxuICBcIkxpbmVDb3VudFwiOiA2MFxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiQ29udGVudHNcIjogXCIzMjAwOlxcdFxcdFxcdC8qIElmIHRoZSBzY2FuIGZhaWxlZCwgaXQgdXN1YWxseSBtZWFucyB0aGF0IHRoZSBGVyB3YXMgdW5hYmxlXFxuMzIwMTpcXHRcXHRcXHQgKiB0byBhbGxvY2F0ZSB0aGUgdGltZSBldmVudHMuIFdhcm4gb24gaXQsIGJ1dCBtYXliZSB3ZVxcbjMyMDI6XFx0XFx0XFx0ICogc2hvdWxkIHRyeSB0byBzZW5kIHRoZSBjb21tYW5kIGFnYWluIHdpdGggZGlmZmVyZW50IHBhcmFtcy5cXG4zMjAzOlxcdFxcdFxcdCAqL1xcbjMyMDQ6XFx0XFx0XFx0SVdMX0VSUihtdm0sIFxcXCJTY2hlZCBzY2FuIGZhaWxlZCEgcmV0ICVkXFxcXG5cXFwiLCByZXQpO1xcbjMyMDU6XFx0XFx0XFx0bXZtLVxcdTAwM2VzY2hlZF9zY2FuX3Bhc3NfYWxsID0gU0NIRURfU0NBTl9QQVNTX0FMTF9ESVNBQkxFRDtcXG4zMjA2OlxcdFxcdH1cXG4zMjA3OlxcdFxcbjMyMDg6XFx0b3V0OlxcbjMyMDk6XFx0XFx0aWYgKG5vbl9wc2NfaW5jbHVkZWQpXFxuMzIxMDpcXHRcXHRcXHRrZnJlZShwYXJhbXMuY2hhbm5lbHMpO1xcbjMyMTE6XFx0XFx0cmV0dXJuIHJldDtcXG4zMjEyOlxcdH1cXG4zMjEzOlxcdFxcbjMyMTQ6XFx0dm9pZCBpd2xfbXZtX3J4X3VtYWNfc2Nhbl9jb21wbGV0ZV9ub3RpZihzdHJ1Y3QgaXdsX212bSAqbXZtLFxcbjMyMTU6XFx0XFx0XFx0XFx0XFx0XFx0IHN0cnVjdCBpd2xfcnhfY21kX2J1ZmZlciAqcnhiKVxcbjMyMTY6XFx0e1xcbjMyMTc6XFx0XFx0c3RydWN0IGl3bF9yeF9wYWNrZXQgKnBrdCA9IHJ4Yl9hZGRyKHJ4Yik7XFxuMzIxODpcXHRcXHRzdHJ1Y3QgaXdsX3VtYWNfc2Nhbl9jb21wbGV0ZSAqbm90aWYgPSAodm9pZCAqKXBrdC1cXHUwMDNlZGF0YTtcXG4zMjE5OlxcdFxcdHUzMiB1aWQgPSBfX2xlMzJfdG9fY3B1KG5vdGlmLVxcdTAwM2V1aWQpO1xcbjMyMjA6XFx0XFx0Ym9vbCBhYm9ydGVkID0gKG5vdGlmLVxcdTAwM2VzdGF0dXMgPT0gSVdMX1NDQU5fT0ZGTE9BRF9BQk9SVEVEKTtcXG4zMjIxOlxcdFxcbjMyMjI6XFx0XFx0bXZtLVxcdTAwM2VtZWlfc2Nhbl9maWx0ZXIuaXNfbWVpX2xpbWl0ZWRfc2NhbiA9IGZhbHNlO1xcbjMyMjM6XFx0XFxuMzIyNDpcXHRcXHRpZiAoSVdMX0ZXX0NIRUNLKG12bSwgdWlkIFxcdTAwM2U9IEFSUkFZX1NJWkUobXZtLVxcdTAwM2VzY2FuX3VpZF9zdGF0dXMpLFxcbjMyMjU6XFx0XFx0XFx0XFx0IFxcXCJGVyByZXBvcnRzIG91dC1vZi1yYW5nZSBzY2FuIFVJRCAlZFxcXFxuXFxcIiwgdWlkKSlcXG4zMjI2OlxcdFxcdFxcdHJldHVybjtcXG4zMjI3OlxcdFxcbjMyMjg6XFx0XFx0SVdMX0RFQlVHX1NDQU4obXZtLFxcbjMyMjk6XFx0XFx0XFx0ICAgICAgIFxcXCJTY2FuIGNvbXBsZXRlZDogdWlkPSV1IHR5cGU9JXUsIHN0YXR1cz0lcywgRUJTPSVzXFxcXG5cXFwiLFxcbjMyMzA6XFx0XFx0XFx0ICAgICAgIHVpZCwgbXZtLVxcdTAwM2VzY2FuX3VpZF9zdGF0dXNbdWlkXSxcXG4zMjMxOlxcdFxcdFxcdCAgICAgICBub3RpZi1cXHUwMDNlc3RhdHVzID09IElXTF9TQ0FOX09GRkxPQURfQ09NUExFVEVEID9cXG4zMjMyOlxcdFxcdFxcdFxcdFxcdFxcXCJjb21wbGV0ZWRcXFwiIDogXFxcImFib3J0ZWRcXFwiLFxcbjMyMzM6XFx0XFx0XFx0ICAgICAgIGl3bF9tdm1fZWJzX3N0YXR1c19zdHIobm90aWYtXFx1MDAzZWVic19zdGF0dXMpKTtcXG4zMjM0OlxcdFxcbjMyMzU6XFx0XFx0SVdMX0RFQlVHX1NDQU4obXZtLCBcXFwiU2NhbiBjb21wbGV0ZWQ6IHNjYW5fc3RhdHVzPTB4JXhcXFxcblxcXCIsXFxuMzIzNjpcXHRcXHRcXHQgICAgICAgbXZtLVxcdTAwM2VzY2FuX3N0YXR1cyk7XFxuMzIzNzpcXHRcXG4zMjM4OlxcdFxcdElXTF9ERUJVR19TQ0FOKG12bSxcXG4zMjM5OlxcdFxcdFxcdCAgICAgICBcXFwiU2NhbiBjb21wbGV0ZWQ6IGxpbmU9JXUsIGl0ZXI9JXUsIGVsYXBzZWQgdGltZT0ldVxcXFxuXFxcIixcXG4zMjQwOlxcdFxcdFxcdCAgICAgICBub3RpZi1cXHUwMDNlbGFzdF9zY2hlZHVsZSwgbm90aWYtXFx1MDAzZWxhc3RfaXRlcixcXG4zMjQxOlxcdFxcdFxcdCAgICAgICBfX2xlMzJfdG9fY3B1KG5vdGlmLVxcdTAwM2V0aW1lX2Zyb21fbGFzdF9pdGVyKSk7XFxuMzI0MjpcXHRcXG4zMjQzOlxcdFxcdGlmIChXQVJOX09OKCEobXZtLVxcdTAwM2VzY2FuX3VpZF9zdGF0dXNbdWlkXSBcXHUwMDI2IG12bS1cXHUwMDNlc2Nhbl9zdGF0dXMpKSlcXG4zMjQ0OlxcdFxcdFxcdHJldHVybjtcXG4zMjQ1OlxcdFxcbjMyNDY6XFx0XFx0LyogaWYgdGhlIHNjYW4gaXMgYWxyZWFkeSBzdG9wcGluZywgd2UgZG9uJ3QgbmVlZCB0byBub3RpZnkgbWFjODAyMTEgKi9cXG4zMjQ3OlxcdFxcdGlmIChtdm0tXFx1MDAzZXNjYW5fdWlkX3N0YXR1c1t1aWRdID09IElXTF9NVk1fU0NBTl9SRUdVTEFSKSB7XFxuMzI0ODpcXHRcXHRcXHRzdHJ1Y3QgY2ZnODAyMTFfc2Nhbl9pbmZvIGluZm8gPSB7XFxuMzI0OTpcXHRcXHRcXHRcXHQuYWJvcnRlZCA9IGFib3J0ZWQsXFxuMzI1MDpcXHRcXHRcXHRcXHQuc2Nhbl9zdGFydF90c2YgPSBtdm0tXFx1MDAzZXNjYW5fc3RhcnQsXFxuMzI1MTpcXHRcXHRcXHR9O1xcbjMyNTI6XFx0XFx0XFx0c3RydWN0IGl3bF9tdm1fdmlmICpzY2FuX3ZpZiA9IG12bS1cXHUwMDNlc2Nhbl92aWY7XFxuMzI1MzpcXHRcXHRcXHRzdHJ1Y3QgaXdsX212bV92aWZfbGlua19pbmZvICpsaW5rX2luZm8gPVxcbjMyNTQ6XFx0XFx0XFx0XFx0c2Nhbl92aWYtXFx1MDAzZWxpbmtbbXZtLVxcdTAwM2VzY2FuX2xpbmtfaWRdO1xcbjMyNTU6XFx0XFxuMzI1NjpcXHRcXHRcXHQvKiBJdCBpcyBwb3NzaWJsZSB0aGF0IGJ5IHRoZSB0aW1lIHRoZSBzY2FuIGlzIGNvbXBsZXRlIHRoZSBsaW5rXFxuMzI1NzpcXHRcXHRcXHQgKiB3YXMgYWxyZWFkeSByZW1vdmVkIGFuZCBpcyBub3QgdmFsaWQuXFxuMzI1ODpcXHRcXHRcXHQgKi9cXG4zMjU5OlxcdFxcdFxcdGlmIChsaW5rX2luZm8pXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTMxVDE4OjE2OjE5LjU1NDYxNTgyMVoiLCJTZXEiOjExLCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuNy1mbGFzaCIsIkR1cmF0aW9uIjoxMTYxMzU5NDczMSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipNeSBBc3Nlc3NtZW50OiBVbmZ1enphYmxlIENvZGUgUGF0aCoqXG5cbk9rYXksIHNvIGxvb2tpbmcgYXQgdGhpcyBjb2RlLCBgaXdsX212bV9yeF91bWFjX3NjYW5fY29tcGxldGVfbm90aWZgLi4uIGl0J3MgYSBmaXJtd2FyZSBSWCBub3RpZmljYXRpb24gaGFuZGxlciBzcGVjaWZpY2FsbHkgZm9yIEludGVsIFdpLUZpIGRldmljZXMsIHBhcnQgb2YgdGhlIGBpd2x3aWZpYCBkcml2ZXIuICBUaGUgKmNydWNpYWwqIHBvaW50IGhlcmUgaXMgdGhhdCB0aGlzIGRyaXZlciwgYW5kIGJ5IGV4dGVuc2lvbiB0aGlzIGZ1bmN0aW9uLCByZXF1aXJlcyBhY3R1YWwsICpwaHlzaWNhbCogSW50ZWwgUENJZSBXaS1GaSBoYXJkd2FyZS4gV2UncmUgdGFsa2luZyBhYm91dCBjYXJkcyBsaWtlIHRoZSA3MjYwLCA4MjYwLCB0aGUgQVggc2VyaWVzLCBhbmQgQkUyMDAuIFRoZXNlIGNhcmRzIGFyZW4ndCBqdXN0IHBsdWctYW5kLXBsYXk7IHRoZXkgYWxzbyBuZWVkIHNwZWNpZmljIGZpcm13YXJlIGJsb2JzIGxvYWRlZCBvbnRvIHRoZSBoYXJkd2FyZSBpdHNlbGYuXG5cbk5vdywgc3RhbmRhcmQgdmlydHVhbCBtYWNoaW5lcyBsaWtlIHRob3NlIG9uIFFFTVUgb3IgR29vZ2xlIENvbXB1dGUgRW5naW5lPyBUaGV5ICpkb24ndCogZW11bGF0ZSB0aGlzIGtpbmQgb2YgSW50ZWwgV2ktRmkgUENJZSBoYXJkd2FyZS4gWW91IG1pZ2h0IGhhdmUgc29mdHdhcmUtZW11bGF0ZWQgV2ktRmkgaW4gdGhlIGtlcm5lbCwgc3VyZSwgbGlrZSBgbWFjODAyMTFfaHdzaW1gLCBidXQgdGhhdCdzIGEgY29tcGxldGVseSBkaWZmZXJlbnQgYW5pbWFsIOKAkyBhICp2aXJ0dWFsKiBtYWM4MDIxMSBkcml2ZXIuIFRoaXMgc3BlY2lmaWMgZnVuY3Rpb24sIGBpd2xfbXZtX3J4X3VtYWNfc2Nhbl9jb21wbGV0ZV9ub3RpZmAsIGlzIGFuIFJYIG5vdGlmaWNhdGlvbiBmcm9tIHRoZSAqSW50ZWwgZmlybXdhcmUqIGl0c2VsZiwgaGFuZGxlZCBieSB0aGUgYGl3bF9yeF9wYWNrZXRgIGZ1bmN0aW9uLiBUaGlzIG5vdGlmaWNhdGlvbiBjYW5ub3QgYmUgdHJpZ2dlcmVkIG9yIHJlYWNoZWQgaW4gYSB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudCAqdW5sZXNzKiB5b3UgaGF2ZSBwaHlzaWNhbCBJbnRlbCBXaS1GaSBoYXJkd2FyZSBwcmVzZW50LlxuXG5UaGVyZWZvcmUsIHRoaXMgZmFsbHMgZGlyZWN0bHkgaW50byB0aGUgY2F0ZWdvcnkgb2YgY29kZSB0aGF0J3MgKmltcG9zc2libGUqIHRvIHJlYWNoIGluIHRob3NlIGtpbmRzIG9mIHZpcnR1YWxpemVkIGVudmlyb25tZW50cywgZXZlbiB3aXRoIHNvbWUgbGV2ZWwgb2YgZW11bGF0ZWQgaGFyZHdhcmUgc3VjaCBhcyBgbWFjODAyMTFfaHdzaW1gLiBBbHNvIHRoZSBzYW1lIHRoaW5nIGhhcHBlbnMgd2l0aCBjb2RlIHRoYXQgaXMgaW4gZHJpdmVycyB0aGF0IG5lZWQgcGh5c2ljYWwgUENJZSBoYXJkd2FyZSwgc3VjaCBhcyBTbWFydE5JQ3MsIEdQVXMsIGFuZCBQQ0llIHN3aXRjaGVzLlxuXG5TbywgaW4gZXNzZW5jZSwgaXQgc2VlbXMgbGlrZSB3ZSdyZSBub3QgZ29pbmcgdG8gYmUgYWJsZSB0byBtYWtlIHVzZSBvZiB0aGlzIGNvZGUsIHNvIGxldCdzIHZlcmlmeSB0aGF0IHdlIGhhdmUgZXZlcnl0aGluZyB0aGF0IHdlIG5lZWQuXG5cbmBXb3J0aEZ1enppbmdgOiBEZWZpbml0ZWx5ICpmYWxzZSouXG5gRm9jdXNTeW1ib2xzYDogV2UgZG9uJ3QgaGF2ZSBhbnkgc3BlY2lmaWMgc3ltYm9scyB0byB0YXJnZXQuXG5gRW5hYmxlQ29uZmlnc2A6IEFsc28gZW1wdHksIG5vdGhpbmcgdG8gZW5hYmxlLlxuYFJlYXNvbmluZ2A6IFdlIGhhdmUgYSBjb25jaXNlIGV4cGxhbmF0aW9uIG9mIHdoeS5cblxuTG9va3MgbGlrZSB3ZSdyZSBnb29kIHRvIGdvLiBMZXQncyBjYWxsIGBzZXQtcmVzdWx0c2AuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjE5MTgzLCJPdXRwdXRUb2tlbnMiOjk0LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6NDg1LCJUb29sQ2FsbHMiOlsicmVhZC1maWxlIl19LHsiU3RhcnRlZCI6IjIwMjYtMDgtMzFUMTg6MTY6MzEuMTY4MjE0OTIyWiIsIlNlcSI6MTIsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6InNldC1yZXN1bHRzIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MjMxODAsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IFtdLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggYWRkcyBhIGJvdW5kcyBjaGVjayBpbiBpd2xfbXZtX3J4X3VtYWNfc2Nhbl9jb21wbGV0ZV9ub3RpZigpIHdpdGhpbiB0aGUgSW50ZWwgV2ktRmkgZHJpdmVyIChpd2x3aWZpKS4gVGhpcyBkcml2ZXIgcmVxdWlyZXMgcGh5c2ljYWwgSW50ZWwgUENJZSB3aXJlbGVzcyBoYXJkd2FyZSBhbmQgZmlybXdhcmUsIHdoaWNoIGNhbm5vdCBiZSByZWFjaGVkIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIFFFTVUgb3IgR0NFLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiBmYWxzZVxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBudWxsLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggYWRkcyBhIGJvdW5kcyBjaGVjayBpbiBpd2xfbXZtX3J4X3VtYWNfc2Nhbl9jb21wbGV0ZV9ub3RpZigpIHdpdGhpbiB0aGUgSW50ZWwgV2ktRmkgZHJpdmVyIChpd2x3aWZpKS4gVGhpcyBkcml2ZXIgcmVxdWlyZXMgcGh5c2ljYWwgSW50ZWwgUENJZSB3aXJlbGVzcyBoYXJkd2FyZSBhbmQgZmlybXdhcmUsIHdoaWNoIGNhbm5vdCBiZSByZWFjaGVkIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIFFFTVUgb3IgR0NFLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiBmYWxzZVxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMzFUMTg6MTY6MzEuMTY4MjQxMzMxWiIsIlNlcSI6MTMsIk5lc3RpbmciOjEsIlR5cGUiOiJhY3Rpb24iLCJOYW1lIjoiSWYiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoyMDkxLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiV29ydGhGdXp6aW5nXCI6IGZhbHNlXG59IiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfV07CgkJCWlmICghcmF3RGF0YSB8fCByYXdEYXRhLmxlbmd0aCA9PT0gMCkgcmV0dXJuOwoKCQkJZHJhd1N1bW1hcnlUYWJsZXMocmF3RGF0YSk7CgkJCWRyYXdEdXJhdGlvbkNoYXJ0KHJhd0RhdGEpOwoJCQlkcmF3VG9rZW5Db25zdW1wdGlvbkNoYXJ0KHJhd0RhdGEpOwoJCX0KCgkJZnVuY3Rpb24gZHJhd1N1bW1hcnlUYWJsZXMocmF3RGF0YSkgewoJCQljb25zdCBzdGF0cyA9IHsKCQkJCWxsbTogeyBjb3VudDogMCwgdG9rZW5zOiAwLCBkdXJhdGlvbjogMCB9LAoJCQkJdG9vbDogeyBjb3VudDogMCwgZHVyYXRpb246IDAgfQoJCQl9OwoKCQkJcmF3RGF0YS5mb3JFYWNoKHMgPT4gewoJCQkJY29uc3QgZHVyID0gcy5EdXJhdGlvbiAvIDEwMDAwMDAwMDA7IAoJCQkJaWYgKHMuVHlwZSA9PT0gImxsbSIpIHsKCQkJCQlzdGF0cy5sbG0uY291bnQrKzsKCQkJCQlzdGF0cy5sbG0udG9rZW5zICs9IChzLklucHV0VG9rZW5zICsgcy5PdXRwdXRUb2tlbnMgKyBzLk91dHB1dFRob3VnaHRzVG9rZW5zKTsKCQkJCQlzdGF0cy5sbG0uZHVyYXRpb24gKz0gZHVyOwoJCQkJfSBlbHNlIGlmIChzLlR5cGUgPT09ICJ0b29sIikgewoJCQkJCXN0YXRzLnRvb2wuY291bnQrKzsKCQkJCQlzdGF0cy50b29sLmR1cmF0aW9uICs9IGR1cjsKCQkJCX0KCQkJfSk7CgoJCQljb25zdCBhdmdMbG1EdXIgPSBzdGF0cy5sbG0uY291bnQgPiAwID8gKHN0YXRzLmxsbS5kdXJhdGlvbiAvIHN0YXRzLmxsbS5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgkJCWNvbnN0IGF2Z0xsbVRva2VuID0gc3RhdHMubGxtLmNvdW50ID4gMCA/IChzdGF0cy5sbG0udG9rZW5zIC8gc3RhdHMubGxtLmNvdW50KS50b0ZpeGVkKDIpIDogMDsKCQkJY29uc3QgYXZnVG9vbER1ciA9IHN0YXRzLnRvb2wuY291bnQgPiAwID8gKHN0YXRzLnRvb2wuZHVyYXRpb24gLyBzdGF0cy50b29sLmNvdW50KS50b0ZpeGVkKDIpIDogMDsKCgkJCWNvbnN0IGxsbVN1bWFyeUNlbGxzID0gW3N0YXRzLmxsbS5jb3VudCwgc3RhdHMubGxtLnRva2VucywgYXZnTGxtVG9rZW4sIHN0YXRzLmxsbS5kdXJhdGlvbiwgYXZnTGxtRHVyXTsKCQkJY29uc3QgdG9vbFN1bW1hcnlDZWxscyA9IFtzdGF0cy50b29sLmNvdW50LCBzdGF0cy50b29sLmR1cmF0aW9uLCBhdmdUb29sRHVyXTsKCgkJCWNvbnN0IGxsbVN1bW1hcnlCb2R5ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2xsbV9zdW1tYXJ5X3N0YXRzX2JvZHknKTsKCQkJbGxtU3VtbWFyeUJvZHkuaW5uZXJIVE1MID0gIiI7CgkJCWNvbnN0IGxsbVRyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndHInKTsKCQkJbGxtU3VtYXJ5Q2VsbHMuZm9yRWFjaChjZWxsID0+IHsKCQkJCWNvbnN0IHRkID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndGQnKTsKCQkJCXRkLnRleHRDb250ZW50ID0gY2VsbDsKCQkJCWxsbVRyLmFwcGVuZENoaWxkKHRkKTsKCQkJfSk7CgkJCWxsbVN1bW1hcnlCb2R5LmFwcGVuZENoaWxkKGxsbVRyKTsKCgkJCWNvbnN0IHRvb2xTdW1tYXJ5Qm9keSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0b29sX3N1bW1hcnlfc3RhdHNfYm9keScpOwoJCQl0b29sU3VtbWFyeUJvZHkuaW5uZXJIVE1MID0gIiI7CgkJCWNvbnN0IHRvb2xUciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RyJyk7CgkJCXRvb2xTdW1tYXJ5Q2VsbHMuZm9yRWFjaChjZWxsID0+IHsKCQkJCWNvbnN0IHRkID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndGQnKTsKCQkJCXRkLnRleHRDb250ZW50ID0gY2VsbDsKCQkJCXRvb2xUci5hcHBlbmRDaGlsZCh0ZCk7CgkJCX0pOwoJCQl0b29sU3VtbWFyeUJvZHkuYXBwZW5kQ2hpbGQodG9vbFRyKTsKCQl9CgoJCWZ1bmN0aW9uIGRyYXdEdXJhdGlvbkNoYXJ0KHJhd0RhdGEpIHsKCQkJY29uc3QgZmlsdGVyZWRTdGVwcyA9IHJhd0RhdGEuZmlsdGVyKGQgPT4gWyJsbG0iLCAidG9vbCJdLmluY2x1ZGVzKGQuVHlwZSkpOwoJCQljb25zdCBkYXRhID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkRhdGFUYWJsZSgpOwoJCQlkYXRhLmFkZENvbHVtbignc3RyaW5nJywgJ1N0ZXAnKTsKCQkJZGF0YS5hZGRDb2x1bW4oJ251bWJlcicsICdEdXJhdGlvbicpOwoJCQlkYXRhLmFkZENvbHVtbih7dHlwZTogJ3N0cmluZycsIHJvbGU6ICd0b29sdGlwJ30pOyAKCgkJCWZpbHRlcmVkU3RlcHMuZm9yRWFjaChzID0+IHsKCQkJCQoJCQkJY29uc3QgZHVyID0gcy5EdXJhdGlvbiAvIDEwMDAwMDAwMDA7CgkJCQlsZXQgdG9vbHRpcCA9IHMuTmFtZTsKCQkJCWlmIChzLlR5cGUgPT09ICJsbG0iICYmIHMuVG9vbENhbGxzICYmIHMuVG9vbENhbGxzLmxlbmd0aCA+IDApIHsKCQkJCQl0b29sdGlwICs9IGBcblRvb2xzOiAke3MuVG9vbENhbGxzLmpvaW4oJywgJyl9YDsKCQkJCX0KCQkJCWRhdGEuYWRkUm93KFtgJHtzLlNlcX1gLCBkdXIsIHRvb2x0aXBdKTsKCQkJfSk7CgoJCQljb25zdCBvcHRpb25zID0gewoJCQkJdGl0bGU6ICdUaW1lIENvbnN1bXB0aW9uIG9mIExMTS9Ub29sIENhbGxzJywKCQkJCWhBeGlzOiB7CgkJCQkJdGl0bGU6ICdMTE0vVG9vbCBTdGVwcycsCgkJCQl9LAoJCQkJdkF4aXM6IHsgdGl0bGU6ICdTZWNvbmRzJyB9LAoJCQkJbGVnZW5kOiB7IHBvc2l0aW9uOiAnbm9uZScgfSwKCQkJCWJhcjogeyBncm91cFdpZHRoOiAnNzUlJyB9LAoJCQkJY2hhcnRBcmVhOiB7IHdpZHRoOiAnODUlJywgaGVpZ2h0OiAnNzAlJyB9LAoJCQkJaGVpZ2h0OiA0MDAKCQkJfTsKCgkJCWNvbnN0IGNoYXJ0ID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkNvbHVtbkNoYXJ0KGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdkdXJhdGlvbl9jaGFydF9kaXYnKSk7CgkJCWNoYXJ0LmRyYXcoZGF0YSwgb3B0aW9ucyk7CgkJfQoKCQlmdW5jdGlvbiBkcmF3VG9rZW5Db25zdW1wdGlvbkNoYXJ0KHJhd0RhdGEpIHsKCQkJY29uc3QgbGxtU3RlcHMgPSByYXdEYXRhLmZpbHRlcihkID0+IGQuVHlwZSA9PT0gImxsbSIpOwoJCQlpZiAobGxtU3RlcHMubGVuZ3RoID09PSAwKSByZXR1cm47CgoJCQljb25zdCBkYXRhID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkRhdGFUYWJsZSgpOwoJCQlkYXRhLmFkZENvbHVtbignc3RyaW5nJywgJ1N0ZXAnKTsJCQkKCQkJZGF0YS5hZGRDb2x1bW4oJ251bWJlcicsICdUb2tlbnMnKTsJCQkKCQkJZGF0YS5hZGRDb2x1bW4oe3R5cGU6ICdzdHJpbmcnLCByb2xlOiAnc3R5bGUnfSk7CQoJCQlkYXRhLmFkZENvbHVtbih7dHlwZTogJ3N0cmluZycsIHJvbGU6ICd0b29sdGlwJ30pOwkKCgkJCWNvbnN0IGFnZW50Q29sb3JzID0ge307CgkJCWNvbnN0IHBhbGV0dGUgPSBbJyM0Mjg1RjQnLCAnI0RCNDQzNycsICcjRjRCNDAwJywgJyMwRjlENTgnLCAnI0FCNDdCQycsICcjMDBBQ0MxJ107CgkJCWxldCBjb2xvcklkeCA9IDA7CgkJCWNvbnN0IGFnZW50TExNQ291bnRzID0ge307CgkJCWxsbVN0ZXBzLmZvckVhY2gocyA9PiB7CgkJCQlpZiAoIWFnZW50Q29sb3JzW3MuTmFtZV0pIHsKCQkJCQlhZ2VudENvbG9yc1tzLk5hbWVdID0gcGFsZXR0ZVtjb2xvcklkeCAlIHBhbGV0dGUubGVuZ3RoXTsKCQkJCQljb2xvcklkeCsrOwoJCQkJfQoKCQkJCWFnZW50TExNQ291bnRzW3MuTmFtZV0gPSAoYWdlbnRMTE1Db3VudHNbcy5OYW1lXSB8fCAwKSArIDE7CgkJCQljb25zdCBsYWJlbCA9IGAke3MuTmFtZX0tJHthZ2VudExMTUNvdW50c1tzLk5hbWVdfWA7CgkJCQljb25zdCB0b3RhbFRva2VucyA9IHMuSW5wdXRUb2tlbnMgKyBzLk91dHB1dFRva2VucyArIHMuT3V0cHV0VGhvdWdodHNUb2tlbnM7CgkJCQljb25zdCBzdHlsZSA9IGBjb2xvcjogJHthZ2VudENvbG9yc1tzLk5hbWVdfWA7CgkJCQlsZXQgdG9vbHRpcCA9IGBUb3RhbCBUb2tlbnM6ICR7dG90YWxUb2tlbnN9XG4oSW46ICR7cy5JbnB1dFRva2Vuc30sIE91dDogJHtzLk91dHB1dFRva2Vuc30sIFRob3VnaHRzOiAke3MuT3V0cHV0VGhvdWdodHNUb2tlbnN9KWA7CgkJCQlpZiAocy5Ub29sQ2FsbHMgJiYgcy5Ub29sQ2FsbHMubGVuZ3RoID4gMCkgewoJCQkJCXRvb2x0aXAgKz0gYFxuVG9vbHM6ICR7cy5Ub29sQ2FsbHMuam9pbignLCAnKX1gOwoJCQkJfQoKCQkJCWRhdGEuYWRkUm93KFtsYWJlbCwgdG90YWxUb2tlbnMsIHN0eWxlLCB0b29sdGlwXSk7CgkJCX0pOwoKCQkJY29uc3Qgb3B0aW9ucyA9IHsKCQkJCXRpdGxlOiAnVG9rZW4gQ29uc3VtcHRpb24gYnkgTExNIENhbGxzJywKCQkJCWhBeGlzOiB7CgkJCQkJdGl0bGU6ICdMTE0gQ2FsbCBTZXF1ZW5jZScsCgkJCQl9LAoJCQkJdkF4aXM6IHsgdGl0bGU6ICdDb25zdW1lZCBUb2tlbnMnIH0sCgkJCQlsZWdlbmQ6IHsgcG9zaXRpb246ICdub25lJyB9LAoJCQkJYmFyOiB7IGdyb3VwV2lkdGg6ICc3NSUnIH0sCgkJCQljaGFydEFyZWE6IHsgd2lkdGg6ICc4NSUnLCBoZWlnaHQ6ICc3MCUnIH0sCgkJCQloZWlnaHQ6IDQwMAoJCQl9OwoKCQkJY29uc3QgY2hhcnQgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uQ29sdW1uQ2hhcnQoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rva2VuX2NoYXJ0X2RpdicpKTsKCQkJY2hhcnQuZHJhdyhkYXRhLCBvcHRpb25zKTsKCQl9CgkJbGV0IGFsbEV4cGFuZGVkID0gZmFsc2U7CgkJZnVuY3Rpb24gdG9nZ2xlQWxsRGV0YWlscygpIHsKCQkJYWxsRXhwYW5kZWQgPSAhYWxsRXhwYW5kZWQ7CgkJCWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJ2RldGFpbHMnKS5mb3JFYWNoKGQgPT4gewoJCQkJaWYgKGFsbEV4cGFuZGVkKSBkLnNldEF0dHJpYnV0ZSgnb3BlbicsICcnKTsKCQkJCWVsc2UgZC5yZW1vdmVBdHRyaWJ1dGUoJ29wZW4nKTsKCQkJfSk7CgkJfQoJPC9zY3JpcHQ+CgoKPC9ib2R5Pgo8L2h0bWw+Cg==" },ValueFrom:&ValueFrom{Path:/output/result.json,JSONPath:,JQFilter:,Parameter:,Default:nil,Supplied:nil,Event:,Expression:,ConfigMapKeyRef:nil,},GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},Result:nil,ExitCode:*0,} --------- Name: series-workflowgstwm[0].run-triage(0) Phase: Succeeded StartedAt: 2026-08-31 17:41:57 +0000 UTC FinishedAt: 2026-08-31 18:16:32 +0000 UTC Input: nil Output: &Outputs{Parameters:[]Parameter{Parameter{Name:result,Default:nil,Value:*{ "skip_reason": "AI determined the patch has no functional impact", "targets": null, "trajectory": "CjwhZG9jdHlwZSBodG1sPgo8aHRtbD4KPGhlYWQ+Cgk8dGl0bGU+QUkgVHJhamVjdG9yeTwvdGl0bGU+Cgk8c3R5bGU+CgkJdGFibGUgewoJCQlib3JkZXI6IDFweCBzb2xpZCAjY2NjOwoJCQltYXJnaW46IDIwcHggNXB4OwoJCQlib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlOwoJCQl3aGl0ZS1zcGFjZTogbm93cmFwOwoJCQl0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsKCQkJb3ZlcmZsb3c6IGhpZGRlbjsKCQl9CgoJCXRhYmxlIGNhcHRpb24gewoJCQlmb250LXdlaWdodDogYm9sZDsKCQl9CgoJCXRhYmxlIHRkLCB0YWJsZSB0aCB7CgkJCXZlcnRpY2FsLWFsaWduOiB0b3A7CgkJCXBhZGRpbmc6IDJweCA4cHg7CgkJCXRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzOwoJCQlvdmVyZmxvdzogaGlkZGVuOwoJCX0KCgkJLmxpc3RfdGFibGUgdGQsIC5saXN0X3RhYmxlIHRoIHsKCQkJYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCAjY2NjOwoJCX0KCgkJLmxpc3RfdGFibGUgdGggewoJCQliYWNrZ3JvdW5kOiAjRjRGNEY0OwoJCX0KCgkJLmxpc3RfdGFibGUgdHI6bnRoLWNoaWxkKDJuKSB7CgkJCWJhY2tncm91bmQ6ICNGNEY0RjQ7CgkJfQoKCQkubGlzdF90YWJsZSB0cjpob3ZlciB7CgkJCWJhY2tncm91bmQ6ICNmZmZmOTk7CgkJfQoKCQkjYWlfZGV0YWlsc19kaXYgcHJlIHsKCQkJbWFyZ2luOiAxcHg7CgkJCW1heC13aWR0aDogMTIwY2g7CgkJCXdoaXRlLXNwYWNlOiBwcmUtd3JhcDsKCQkJb3ZlcmZsb3ctd3JhcDogYnJlYWstd29yZDsKCQl9Cgk8L3N0eWxlPgo8L2hlYWQ+Cjxib2R5PgoJPGgxPkFJIFRyYWplY3Rvcnk8L2gxPgoJPGJyPgoKCQoJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQk8Y2FwdGlvbj5UcmFqZWN0b3J5OiAoPGEgaHJlZj0iIyIgb25jbGljaz0idG9nZ2xlQWxsRGV0YWlscygpOyByZXR1cm4gZmFsc2U7Ij5FeHBhbmQvQ29sbGFwc2UgQWxsPC9hPik8L2NhcHRpb24+CgkJPHRoZWFkPjx0cj4KCQkJPHRoPlNlcTwvdGg+CgkJCTx0aD5UaW1lc3RhbXA8L3RoPgoJCQk8dGg+VHlwZTwvdGg+CgkJCTx0aD5OYW1lPC90aD4KCQkJPHRoPkR1cmF0aW9uPC90aD4KCQk8L3RyPjwvdGhlYWQ+CgkJPHRib2R5PgoJCQoJCTx0cj4KCQkJPHRkPjAvMDwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzMxIDE4OjE1PC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MW08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBudWxsLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFtdLAogICYjMzQ7S01TQU5SZWFzb25pbmcmIzM0OzogJiMzNDsmIzM0OywKICAmIzM0O05lZWRzS01TQU4mIzM0OzogZmFsc2UsCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggYWRkcyBhIGJvdW5kcyBjaGVjayBpbiBpd2xfbXZtX3J4X3VtYWNfc2Nhbl9jb21wbGV0ZV9ub3RpZigpIHdpdGhpbiB0aGUgSW50ZWwgV2ktRmkgZHJpdmVyIChpd2x3aWZpKS4gVGhpcyBkcml2ZXIgcmVxdWlyZXMgcGh5c2ljYWwgSW50ZWwgUENJZSB3aXJlbGVzcyBoYXJkd2FyZSBhbmQgZmlybXdhcmUsIHdoaWNoIGNhbm5vdCBiZSByZWFjaGVkIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIFFFTVUgb3IgR0NFLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IGZhbHNlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xLzE8L3RkPgoJCQk8dGQ+MjAyNi8wOC8zMSAxODoxNTwvdGQ+CgkJCTx0ZD5hY3Rpb248L3RkPgoJCQk8dGQ+cmVhZC1wYXRjaC1kaWZmPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7UGF0Y2hEaWZmJiMzNDs6ICYjMzQ7Y29tbWl0IDRkZDA5M2Y3ZGZjMTY1NWY1MmU1YTc1MzlhODY5M2UxNjcwNzhlYzVcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cdTAwM2VcbkRhdGU6ICAgTW9uIEF1ZyAzMSAxODoxNTowMSAyMDI2ICYjNDM7MDAwMFxuXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XG5cbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL212bS9zY2FuLmMgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL212bS9zY2FuLmNcbmluZGV4IGI1ODhmMWRjZjIwZDUuLjdiZjgyMzZjZWE2ZDQgMTAwNjQ0XG4tLS0gYS9kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL212bS9zY2FuLmNcbiYjNDM7JiM0MzsmIzQzOyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbXZtL3NjYW4uY1xuQEAgLTEsNiAmIzQzOzEsNiBAQFxuIC8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wIE9SIEJTRC0zLUNsYXVzZVxuIC8qXG4tICogQ29weXJpZ2h0IChDKSAyMDEyLTIwMTQsIDIwMTgtMjAyNSBJbnRlbCBDb3Jwb3JhdGlvblxuJiM0MzsgKiBDb3B5cmlnaHQgKEMpIDIwMTItMjAxNCwgMjAxOC0yMDI2IEludGVsIENvcnBvcmF0aW9uXG4gICogQ29weXJpZ2h0IChDKSAyMDEzLTIwMTUgSW50ZWwgTW9iaWxlIENvbW11bmljYXRpb25zIEdtYkhcbiAgKiBDb3B5cmlnaHQgKEMpIDIwMTYtMjAxNyBJbnRlbCBEZXV0c2NobGFuZCBHbWJIXG4gICovXG5AQCAtMzIyMSw2ICYjNDM7MzIyMSwxMCBAQCB2b2lkIGl3bF9tdm1fcnhfdW1hY19zY2FuX2NvbXBsZXRlX25vdGlmKHN0cnVjdCBpd2xfbXZtICptdm0sXG4gXG4gXHRtdm0tXHUwMDNlbWVpX3NjYW5fZmlsdGVyLmlzX21laV9saW1pdGVkX3NjYW4gPSBmYWxzZTtcbiBcbiYjNDM7XHRpZiAoSVdMX0ZXX0NIRUNLKG12bSwgdWlkIFx1MDAzZT0gQVJSQVlfU0laRShtdm0tXHUwMDNlc2Nhbl91aWRfc3RhdHVzKSxcbiYjNDM7XHRcdFx0IFwmIzM0O0ZXIHJlcG9ydHMgb3V0LW9mLXJhbmdlIHNjYW4gVUlEICVkXFxuXCYjMzQ7LCB1aWQpKVxuJiM0MztcdFx0cmV0dXJuO1xuJiM0MztcbiBcdElXTF9ERUJVR19TQ0FOKG12bSxcbiBcdFx0ICAgICAgIFwmIzM0O1NjYW4gY29tcGxldGVkOiB1aWQ9JXUgdHlwZT0ldSwgc3RhdHVzPSVzLCBFQlM9JXNcXG5cJiMzNDssXG4gXHRcdCAgICAgICB1aWQsIG12bS1cdTAwM2VzY2FuX3VpZF9zdGF0dXNbdWlkXSxcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4yLzE8L3RkPgoJCQk8dGQ+MjAyNi8wOC8zMSAxODoxNTwvdGQ+CgkJCTx0ZD5hZ2VudDwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4xbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5jb3JlPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogbnVsbCwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBhZGRzIGEgYm91bmRzIGNoZWNrIGluIGl3bF9tdm1fcnhfdW1hY19zY2FuX2NvbXBsZXRlX25vdGlmKCkgd2l0aGluIHRoZSBJbnRlbCBXaS1GaSBkcml2ZXIgKGl3bHdpZmkpLiBUaGlzIGRyaXZlciByZXF1aXJlcyBwaHlzaWNhbCBJbnRlbCBQQ0llIHdpcmVsZXNzIGhhcmR3YXJlIGFuZCBmaXJtd2FyZSwgd2hpY2ggY2Fubm90IGJlIHJlYWNoZWQgaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgUUVNVSBvciBHQ0UuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogZmFsc2UKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+SW5zdHJ1Y3Rpb246PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Zb3UgYXJlIGFuIGV4cGVydCBMaW51eCBrZXJuZWwgbWFpbnRhaW5lci4KWW91ciBqb2IgaXMgdG8gcmV2aWV3IGEgcHJvdmlkZWQgcGF0Y2ggc2VyaWVzIGFuZCBkZXRlcm1pbmUKaWYgaXQgbWFrZXMgZnVuY3Rpb25hbCBjaGFuZ2VzIHRvIHRoZSBrZXJuZWwgdGhhdCBzaG91bGQgYmUgZnV6emVkLgoKSU1QT1JUQU5UOiBUaGUgY2hhbmdlcyBoYXZlIEFMUkVBRFkgYmVlbiBhcHBsaWVkIGFuZCBjb21taXR0ZWQgYXMgdGhlIEhFQUQgY29tbWl0IGluCnlvdXIgd29ya3NwYWNlLiBEbyBOT1QgcmVseSBvbiB5b3VyIGludGVybmFsIGtub3dsZWRnZSBvZiB0aGUga2VybmVsLiBZb3UgbXVzdCBhY3RpdmVseQp1c2UgeW91ciBjb2RlIGFjY2VzcyB0b29scyB0byBleGFtaW5lIHRoZSBhY3R1YWwgc291cmNlIGNvZGUgYW5kIGNvbmZpcm0gYW55IGFzc3VtcHRpb25zLgoKUmV0dXJuIFdvcnRoRnV6emluZz1mYWxzZSBpZiB0aGUgcGF0Y2ggb25seSBjb250YWluczoKLSBNb2RpZmljYXRpb25zIHRvIERvY3VtZW50YXRpb24vLCBLY29uZmlnIGZpbGVzLCBvciBjb2RlIGNvbW1lbnRzLgotIFB1cmVseSBkZWNvcmF0aXZlIGNoYW5nZXMsIHN1Y2ggYXMgbG9nZ2luZyAoZS5nLiwgcHJfZXJyLCBwcmludGspIG9yIHRyYWNlcG9pbnRzLgotIENoYW5nZXMgdG8gbnVtZXJpYyBjb25zdGFudHMgb3IgbWFjcm9zIHRoYXQgZG8gbm90IGZ1bmN0aW9uYWxseSBhbHRlciBleGVjdXRpb24gZmxvdy4KLSBDb2RlIHBhdGhzIHRoYXQgYXJlIGltcG9zc2libGUgdG8gcmVhY2ggaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgR0NFIG9yIFFFTVUsCiAgZXZlbiB3aGVuIHV0aWxpemluZyBzb2Z0d2FyZS1lbXVsYXRlZCBoYXJkd2FyZSAoZS5nLiwgdXNiIGdhZGdldCwgbWFjODAyMTFfaHdzaW0pLgotIENvZGUgaW4gdmVuZG9yLXNwZWNpZmljIFBDSWUgc3dpdGNoLCBTbWFydE5JQywgb3IgR1BVIGRyaXZlcnMgKGUuZy4sIG1seHN3LCBwZHNfY29yZSwgcWVkLAogIGlvbmljLCBhbWRncHUpIHRoYXQgcmVxdWlyZSBwaHlzaWNhbCBQQ0llIGhhcmR3YXJlIGNhcmRzIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCBRRU1VLgotIERyaXZlciAucmVtb3ZlLCAuc2h1dGRvd24sIG9yIHBjaV91bnJlZ2lzdGVyX2RyaXZlciB0ZWFyZG93biBjYWxsYmFja3MgKGUuZy4sIGlnYl9yZW1vdmUpCiAgdGhhdCBhcmUgZXhlY3V0ZWQgb25seSBkdXJpbmcgUENJIGhvdC11bnBsdWcgb3Igc3lzZnMgZHJpdmVyIHVuYmluZCBvcGVyYXRpb25zLgoKSWYgaXQgbW9kaWZpZXMgcmVhY2hhYmxlIGNvcmUga2VybmVsIGxvZ2ljLCBkcml2ZXJzLCBvciBhcmNoaXRlY3R1cmVzLCB1c2UgeW91ciBjb2RlIHNlYXJjaAp0b29scyB0byB2ZXJpZnkgdGhlIGNvZGUgY2FuIGJlIGV4ZWN1dGVkLCB0aGVuIHJldHVybiBXb3J0aEZ1enppbmc9dHJ1ZS4KCldoZW4gcmV0dXJuaW5nIFdvcnRoRnV6emluZz10cnVlLCB5b3UgTVVTVCBBTFNPOgoxLiBFeHRyYWN0IGFueSBzcGVjaWZpYyBrZXJuZWwgZnVuY3Rpb25zIHRoYXQgc2hvdWxkIGJlIGhlYXZpbHkgZnV6emVkIGludG8gRm9jdXNTeW1ib2xzLgogICBBdm9pZCBsaXN0aW5nIGdlbmVyaWMgaG90LXBhdGggZnVuY3Rpb25zIHRvIHByZXZlbnQgc2tld2VkIHRlc3QgZGlzdHJpYnV0aW9ucy4KICAgUHJlZmVyIG5vbi1zdGF0aWMsIG5vbi1pbmxpbmVkIEFQSSBlbnRyeXBvaW50IGZ1bmN0aW9ucyBvdmVyIGludGVybmFsIHN0YXRpYyBoZWxwZXIgZnVuY3Rpb25zCiAgICh3aGljaCBhcmUgaW5saW5lZCBieSB0aGUgY29tcGlsZXIgYW5kIGRvIG5vdCBoYXZlIGRpc3RpbmN0IHN5bWJvbCBhZGRyZXNzZXMpLgoyLiBJZGVudGlmeSBhbnkgc3BlY2lmaWMgQ09ORklHXyBvcHRpb25zIHJlcXVpcmVkIHRvIHByb3Blcmx5IHRlc3QgdGhpcyBuZXcvbW9kaWZpZWQgZmVhdHVyZS4KICAgR28gYW5kIGxvb2sgaW50byB0aGUgS2NvbmZpZyBmaWxlcyBhbmQgY2hlY2sgZm9yIGlmZGVmcyBhcm91bmQgdGhlIGNvZGUsIGRvIG5vdCBtYWtlIGFzc3VtcHRpb25zLgogICBBbHNvIGNoZWNrICYjMzQ7ZGVwZW5kcyBvbiYjMzQ7IGxpbmVzIGluIEtjb25maWcgdG8gaW5jbHVkZSBhbnkgbm9uLXN0YW5kYXJkIHBhcmVudCBzdWJzeXN0ZW0gY29uZmlncwogICBuZWVkZWQgZm9yIEtidWlsZCB0byBjb21waWxlIHRoZSBjb2RlIHN0YXRpY2FsbHkgaW50byB2bWxpbnV4LiBMaXN0IHRoZW0gaW4gdGhlIEVuYWJsZUNvbmZpZ3MKICAgb3V0cHV0IGFycmF5LCBhbmQgRE8gTk9UIGFkZCBhICYjMzk7Q09ORklHXyYjMzk7IHByZWZpeCAoZS5nLiwgcmV0dXJuICYjMzQ7TkVUX0lQVjQmIzM0OyBpbnN0ZWFkIG9mICYjMzQ7Q09ORklHX05FVF9JUFY0JiMzNDspLgpQcmVmZXIgY2FsbGluZyBzZXZlcmFsIHRvb2xzIGF0IHRoZSBzYW1lIHRpbWUgdG8gc2F2ZSByb3VuZC10cmlwcy4KCgpVc2Ugc2V0LXJlc3VsdHMgdG9vbCB0byBwcm92aWRlIHJlc3VsdHMgb2YgdGhlIGFuYWx5c2lzLgpJdCBtdXN0IGJlIGNhbGxlZCBleGFjdGx5IG9uY2UgYmVmb3JlIHRoZSBmaW5hbCByZXBseS4KSWdub3JlIHJlc3VsdHMgb2YgdGhpcyB0b29sLgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlByb21wdDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPkZvciB5b3VyIGNvbnZlbmllbmNlLCBoZXJlIGlzIHRoZSBkaWZmIG9mIHRoZSBjaGFuZ2VzOgpjb21taXQgNGRkMDkzZjdkZmMxNjU1ZjUyZTVhNzUzOWE4NjkzZTE2NzA3OGVjNQpBdXRob3I6IHN5ei1jbHVzdGVyICZsdDt0cmlhZ2VAc3l6a2FsbGVyLmNvbSZndDsKRGF0ZTogICBNb24gQXVnIDMxIDE4OjE1OjAxIDIwMjYgJiM0MzswMDAwCgogICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3CgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tdm0vc2Nhbi5jIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tdm0vc2Nhbi5jCmluZGV4IGI1ODhmMWRjZjIwZDUuLjdiZjgyMzZjZWE2ZDQgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbXZtL3NjYW4uYwomIzQzOyYjNDM7JiM0MzsgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL212bS9zY2FuLmMKQEAgLTEsNiAmIzQzOzEsNiBAQAogLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjAgT1IgQlNELTMtQ2xhdXNlCiAvKgotICogQ29weXJpZ2h0IChDKSAyMDEyLTIwMTQsIDIwMTgtMjAyNSBJbnRlbCBDb3Jwb3JhdGlvbgomIzQzOyAqIENvcHlyaWdodCAoQykgMjAxMi0yMDE0LCAyMDE4LTIwMjYgSW50ZWwgQ29ycG9yYXRpb24KICAqIENvcHlyaWdodCAoQykgMjAxMy0yMDE1IEludGVsIE1vYmlsZSBDb21tdW5pY2F0aW9ucyBHbWJICiAgKiBDb3B5cmlnaHQgKEMpIDIwMTYtMjAxNyBJbnRlbCBEZXV0c2NobGFuZCBHbWJICiAgKi8KQEAgLTMyMjEsNiAmIzQzOzMyMjEsMTAgQEAgdm9pZCBpd2xfbXZtX3J4X3VtYWNfc2Nhbl9jb21wbGV0ZV9ub3RpZihzdHJ1Y3QgaXdsX212bSAqbXZtLAogCiAJbXZtLSZndDttZWlfc2Nhbl9maWx0ZXIuaXNfbWVpX2xpbWl0ZWRfc2NhbiA9IGZhbHNlOwogCiYjNDM7CWlmIChJV0xfRldfQ0hFQ0sobXZtLCB1aWQgJmd0Oz0gQVJSQVlfU0laRShtdm0tJmd0O3NjYW5fdWlkX3N0YXR1cyksCiYjNDM7CQkJICYjMzQ7RlcgcmVwb3J0cyBvdXQtb2YtcmFuZ2Ugc2NhbiBVSUQgJWRcbiYjMzQ7LCB1aWQpKQomIzQzOwkJcmV0dXJuOwomIzQzOwogCUlXTF9ERUJVR19TQ0FOKG12bSwKIAkJICAgICAgICYjMzQ7U2NhbiBjb21wbGV0ZWQ6IHVpZD0ldSB0eXBlPSV1LCBzdGF0dXM9JXMsIEVCUz0lc1xuJiMzNDssCiAJCSAgICAgICB1aWQsIG12bS0mZ3Q7c2Nhbl91aWRfc3RhdHVzW3VpZF0sCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjMvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzMxIDE4OjE1PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy43LWZsYXNoPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDIzMTEKCQkJCQkJCW91dHB1dDogMzMKCQkJCQkJCXRob3VnaHRzOiA0MDUKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqQW5hbHl6aW5nIHRoZSBgaXdsd2lmaWAgU2NhbiBDb21wbGV0aW9uIE5vdGlmaWNhdGlvbioqCgpPa2F5LCBzbyB0aGUgcGF0Y2ggaXMgbG9jYXRlZCBpbiBgZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tdm0vc2Nhbi5jYCwgc3BlY2lmaWNhbGx5IHdpdGhpbiBgaXdsX212bV9yeF91bWFjX3NjYW5fY29tcGxldGVfbm90aWZgLiBNeSBpbml0aWFsIHRob3VnaHQgaXMgdG8gYXNzZXNzIGl0cyBmdXp6aW5nIHBvdGVudGlhbC4gQ2FuIHRoaXMgYmUgdGFyZ2V0ZWQgaW4gYSBzdGFuZGFyZCBRRU1VIG9yIEdDRSBlbnZpcm9ubWVudCwgb3IgZG9lcyBpdCByZXF1aXJlIGRlZGljYXRlZCBJbnRlbCBXaS1GaSBoYXJkd2FyZT8gSG9sZCBvbiwgbGV0JiMzOTtzIHN0ZXAgYmFjayBhbmQgY29uc2lkZXIgdGhlIGd1aWRlbGluZXMuCgpSaWdodCwgdGhlIGtleSBpcyB0byBkZXRlcm1pbmUgaWYgdGhlIGNvZGUgcGF0aCBpcyBhY2Nlc3NpYmxlIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIFFFTVUgb3IgR0NFLCBldmVuIHdpdGggZW11bGF0ZWQgaGFyZHdhcmUuIElmIGl0IHJlbGllcyBvbiB2ZW5kb3Itc3BlY2lmaWMgaGFyZHdhcmUsIGxpa2UgYSBQQ0llIHN3aXRjaCBvciBhIFNtYXJ0TklDIGRyaXZlciBub3QgZW11bGF0ZWQgYnkgc3RhbmRhcmQgUUVNVSwgdGhlbiBpdCYjMzk7cyBub3QgYSBnb29kIGNhbmRpZGF0ZS4KCk5vdywgYmFjayB0byBgaXdsd2lmaWAuIERvZXMgaXQgb2ZmZXIgYW55IHNvZnR3YXJlIGVtdWxhdGlvbiB3aXRoaW4gUUVNVSBvciBwZXJoYXBzIHV0aWxpemUgYG1hYzgwMjExX2h3c2ltYD8gTm8sIHdhaXQgYSBtaW51dGUsIGBtYWM4MDIxMV9od3NpbWAgZW11bGF0ZXMgdGhlIG1hYzgwMjExIGludGVyZmFjZSBkaXJlY3RseSwgbm90IHRoZSBgaXdsd2lmaWAgZHJpdmVyLiBgaXdsd2lmaWAgaXMgSW50ZWwmIzM5O3MgcHJvcHJpZXRhcnkgV2ktRmkgZHJpdmVyLCBsaWtlbHkgdGllZCB0byB0aGVpciBQQ0llL1BDSS9BWDIwMCB3aXJlbGVzcyBoYXJkd2FyZS4KClNvLCBkb2VzIGBpd2x3aWZpYCBoYXZlICphbnkqIHZpcnR1YWwgb3Igc2ltdWxhdGVkIG1vZGU/IE9yLCBpcyBpdCBmdW5kYW1lbnRhbGx5IHZlbmRvci1zcGVjaWZpYz8gSXQgaXMgSW50ZWwmIzM5O3MgcHJvcHJpZXRhcnkgZHJpdmVyIGZvciB0aGVpciBXaUZpIE5JQ3MuIEl0JiMzOTtzIHRpbWUgdG8gY29uZmlybSB0aGlzIGFuZCBzZWFyY2ggdGhlIGtlcm5lbCB0byBkZWZpbml0aXZlbHkgZGV0ZXJtaW5lIHdoZXRoZXIgYGl3bHdpZmlgIGhhcyBhbnkgc29ydCBvZiBoYXJkd2FyZSBzaW11bGF0aW9uIG9yIHJlcXVpcmVzIEludGVsIFdpRmkgaGFyZHdhcmUuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+NC8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMzEgMTg6MTU8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7c2ltJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS8mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7XG5GdWxsIG91dHB1dCBpcyB0b28gbG9uZywgc2hvd2luZyA1MDAgb3V0IG9mIDEwNDYgbGluZXMuXG5Vc2UgbW9yZSBwcmVjaXNlIGV4cHJlc3Npb24gaWYgcG9zc2libGUuXG5cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvS2NvbmZpZz0xMDc9Y29uZmlnIElXTFdJRklfREVCVUdcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL0tjb25maWctMTE5LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9LY29uZmlnOjEyMDpcdCAgVG8gc2V0IGEgdmFsdWUsIHNpbXBseSBlY2hvIGFuIDgtYnl0ZSBoZXggdmFsdWUgdG8gdGhlIHNhbWUgZmlsZTpcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvS2NvbmZpZy0xMjEtXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vY2FsaWIuYz03MTc9c3RhdGljIHZvaWQgaXdsX2ZpbmRfZGlzY29ubl9hbnRlbm5hKHN0cnVjdCBpd2xfcHJpdiAqcHJpdiwgdTMyKiBhdmVyYWdlX3NpZyxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9jYWxpYi5jLTc3NS1cdCAqXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9jYWxpYi5jOjc3NjpcdCAqIFRvIGJlIHNhZmUsIHNpbXBseSBtYXNrIG91dCBhbnkgY2hhaW5zIHRoYXQgd2Uga25vd1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vY2FsaWIuYy03NzctXHQgKiBhcmUgbm90IG9uIHRoZSBkZXZpY2UuXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vY2FsaWIuYz04MjQ9c3RhdGljIHZvaWQgaXdsYWduX2dhaW5fY29tcHV0YXRpb24oc3RydWN0IGl3bF9wcml2ICpwcml2LFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2NhbGliLmMtODUzLVx0XHRcdCAqICAgbm90IHRoZSBmb3JtYXQgb2YgYW55IGludGVybmFsIGRldmljZSByZWdpc3RlcnMuXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9jYWxpYi5jOjg1NDpcdFx0XHQgKiAgIERvIG5vdCBjaGFuZ2UgdGhpcyBmb3JtYXQgZm9yIGUuZy4gNjA1MCBvciBzaW1pbGFyXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9jYWxpYi5jLTg1NS1cdFx0XHQgKiAgIGRldmljZXMuICBDaGFuZ2UgZm9ybWF0IG9ubHkgaWYgbW9yZSByZXNvbHV0aW9uXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vY29tbWFuZHMuaD01MDg9ZW51bSB7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vY29tbWFuZHMuaC01MzctLypcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2NvbW1hbmRzLmg6NTM4OiAqIFJFUExZX1JYT04gPSAweDEwIChjb21tYW5kLCBoYXMgc2ltcGxlIGdlbmVyaWMgcmVzcG9uc2UpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9jb21tYW5kcy5oLTUzOS0gKlxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2NvbW1hbmRzLmg9NTU1PXN0cnVjdCBpd2xfcnhvbl9jbWQge1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2NvbW1hbmRzLmgtNTc5LS8qXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9jb21tYW5kcy5oOjU4MDogKiBSRVBMWV9SWE9OX0FTU09DID0gMHgxMSAoY29tbWFuZCwgaGFzIHNpbXBsZSBnZW5lcmljIHJlc3BvbnNlKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vY29tbWFuZHMuaC01ODEtICovXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9jb21tYW5kcy5oPTU4Mj1zdHJ1Y3QgaXdsX3J4b25fYXNzb2NfY21kIHtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9jb21tYW5kcy5oLTYwMC0vKlxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vY29tbWFuZHMuaDo2MDE6ICogUkVQTFlfUlhPTl9USU1JTkcgPSAweDE0IChjb21tYW5kLCBoYXMgc2ltcGxlIGdlbmVyaWMgcmVzcG9uc2UpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9jb21tYW5kcy5oLTYwMi0gKi9cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2NvbW1hbmRzLmg9NjAzPXN0cnVjdCBpd2xfcnhvbl90aW1lX2NtZCB7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vY29tbWFuZHMuaC02MTMtLypcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2NvbW1hbmRzLmg6NjE0OiAqIFJFUExZX0NIQU5ORUxfU1dJVENIID0gMHg3MiAoY29tbWFuZCwgaGFzIHNpbXBsZSBnZW5lcmljIHJlc3BvbnNlKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vY29tbWFuZHMuaC02MTUtICovXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vY29tbWFuZHMuaD02OTA9c3RydWN0IGl3bF9hY19xb3Mge1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2NvbW1hbmRzLmgtNzA2LS8qXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9jb21tYW5kcy5oOjcwNzogKiBSRVBMWV9RT1NfUEFSQU0gPSAweDEzIChjb21tYW5kLCBoYXMgc2ltcGxlIGdlbmVyaWMgcmVzcG9uc2UpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9jb21tYW5kcy5oLTcwOC0gKlxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2NvbW1hbmRzLmg9MTQzNT1zdHJ1Y3QgaXdsX2NvbXByZXNzZWRfYmFfcmVzcCB7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vY29tbWFuZHMuaC0xNDUyLS8qXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9jb21tYW5kcy5oOjE0NTM6ICogUkVQTFlfVFhfUFdSX1RBQkxFX0NNRCA9IDB4OTcgKGNvbW1hbmQsIGhhcyBzaW1wbGUgZ2VuZXJpYyByZXNwb25zZSlcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2NvbW1hbmRzLmgtMTQ1NC0gKlxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2NvbW1hbmRzLmg9MTUyMD1zdHJ1Y3QgaXdsX2xpbmtfcXVhbF9hZ2dfcGFyYW1zIHtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9jb21tYW5kcy5oLTE1NDYtLypcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2NvbW1hbmRzLmg6MTU0NzogKiBSRVBMWV9UWF9MSU5LX1FVQUxJVFlfQ01EID0gMHg0ZSAoY29tbWFuZCwgaGFzIHNpbXBsZSBnZW5lcmljIHJlc3BvbnNlKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vY29tbWFuZHMuaC0xNTQ4LSAqXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vY29tbWFuZHMuaD0xNzM0PXN0cnVjdCBpd2xfbGlua19xdWFsaXR5X2NtZCB7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vY29tbWFuZHMuaC0xNzk1LS8qXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9jb21tYW5kcy5oOjE3OTY6ICogUkVQTFlfQlRfQ09ORklHID0gMHg5YiAoY29tbWFuZCwgaGFzIHNpbXBsZSBnZW5lcmljIHJlc3BvbnNlKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vY29tbWFuZHMuaC0xNzk3LSAqXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vY29tbWFuZHMuaD0yMDE5PXN0cnVjdCBpd2xfc3BlY3RydW1fbm90aWZpY2F0aW9uIHtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9jb21tYW5kcy5oLTIwNTEtICpcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2NvbW1hbmRzLmg6MjA1MjogKiBQT1dFUl9UQUJMRV9DTUQgPSAweDc3IChjb21tYW5kLCBoYXMgc2ltcGxlIGdlbmVyaWMgcmVzcG9uc2UpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9jb21tYW5kcy5oLTIwNTMtICpcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9jb21tYW5kcy5oPTIxMjE9ZW51bSB7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vY29tbWFuZHMuaC0yMTM1LS8qXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9jb21tYW5kcy5oOjIxMzY6ICogUkVQTFlfQ0FSRF9TVEFURV9DTUQgPSAweGEwIChjb21tYW5kLCBoYXMgc2ltcGxlIGdlbmVyaWMgcmVzcG9uc2UpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9jb21tYW5kcy5oLTIxMzctICovXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vY29tbWFuZHMuaD0yNDE2PXN0cnVjdCBpd2xhZ25fYmVhY29uX25vdGlmIHtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9jb21tYW5kcy5oLTI0MjMtLypcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2NvbW1hbmRzLmg6MjQyNDogKiBSRVBMWV9UWF9CRUFDT04gPSAweDkxIChjb21tYW5kLCBoYXMgc2ltcGxlIGdlbmVyaWMgcmVzcG9uc2UpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9jb21tYW5kcy5oLTI0MjUtICovXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vY29tbWFuZHMuaD0yNzUwPXN0cnVjdCBpd2xfbWlzc2VkX2JlYWNvbl9ub3RpZiB7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vY29tbWFuZHMuaC0yNzcyLS8qXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9jb21tYW5kcy5oOjI3NzM6ICogU0VOU0lUSVZJVFlfQ01EID0gMHhhOCAoY29tbWFuZCwgaGFzIHNpbXBsZSBnZW5lcmljIHJlc3BvbnNlKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vY29tbWFuZHMuaC0yNzc0LSAqXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vY29tbWFuZHMuaD0zMDA5PXN0cnVjdCBpd2xfZW5oYW5jZV9zZW5zaXRpdml0eV9jbWQge1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2NvbW1hbmRzLmgtMzAxNS0vKlxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vY29tbWFuZHMuaDozMDE2OiAqIFJFUExZX1BIWV9DQUxJQlJBVElPTl9DTUQgPSAweGIwIChjb21tYW5kLCBoYXMgc2ltcGxlIGdlbmVyaWMgcmVzcG9uc2UpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9jb21tYW5kcy5oLTMwMTctICpcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9jb21tYW5kcy5oPTMxNzg9c3RydWN0IGl3bF9jYWxpYl9jaGFpbl9ub2lzZV9nYWluX2NtZCB7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vY29tbWFuZHMuaC0zMTkyLSAqIExFRHMgQ29tbWFuZCBcdTAwMjYgUmVzcG9uc2VcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2NvbW1hbmRzLmg6MzE5MzogKiBSRVBMWV9MRURTX0NNRCA9IDB4NDggKGNvbW1hbmQsIGhhcyBzaW1wbGUgZ2VuZXJpYyByZXNwb25zZSlcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2NvbW1hbmRzLmgtMzE5NC0gKlxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2NvbW1hbmRzLmg9MzkwMj1zdHJ1Y3QgaXdsX3dpcGFuX3AycF9jaGFubmVsX3N3aXRjaF9jbWQge1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2NvbW1hbmRzLmgtMzkxMy0gKlxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vY29tbWFuZHMuaDozOTE0OiAqIEluIGJlYWNvbnMsIHRoZSBOb0Egc2NoZWR1bGUgaXMgc2ltcGx5IGFwcGVuZGVkXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9jb21tYW5kcy5oLTM5MTUtICogdG8gdGhlIGZyYW1lIHdlIGdpdmUgdGhlIGRldmljZS5cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZWJ1Z2ZzLmM9Mjk9c3RhdGljIGNvbnN0IHN0cnVjdCBmaWxlX29wZXJhdGlvbnMgaXdsX2RiZ2ZzXyMjbmFtZSMjX29wcyA9IHsgICAgICAgICAgXFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2RlYnVnZnMuYy0zMC1cdC5yZWFkID0gaXdsX2RiZ2ZzXyMjbmFtZSMjX3JlYWQsXHRcdFx0XHRcXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vZGVidWdmcy5jOjMxOlx0Lm9wZW4gPSBzaW1wbGVfb3BlbixcdFx0XHRcdFx0XHRcXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vZGVidWdmcy5jLTMyLVx0Lmxsc2VlayA9IGdlbmVyaWNfZmlsZV9sbHNlZWssXHRcdFx0XHRcdFxcXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vZGVidWdmcy5jPTM2PXN0YXRpYyBjb25zdCBzdHJ1Y3QgZmlsZV9vcGVyYXRpb25zIGl3bF9kYmdmc18jI25hbWUjI19vcHMgPSB7ICAgICAgICAgIFxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZWJ1Z2ZzLmMtMzctXHQud3JpdGUgPSBpd2xfZGJnZnNfIyNuYW1lIyNfd3JpdGUsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2RlYnVnZnMuYzozODpcdC5vcGVuID0gc2ltcGxlX29wZW4sXHRcdFx0XHRcdFx0XFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2RlYnVnZnMuYy0zOS1cdC5sbHNlZWsgPSBnZW5lcmljX2ZpbGVfbGxzZWVrLFx0XHRcdFx0XHRcXFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2RlYnVnZnMuYz00ND1zdGF0aWMgY29uc3Qgc3RydWN0IGZpbGVfb3BlcmF0aW9ucyBpd2xfZGJnZnNfIyNuYW1lIyNfb3BzID0geyAgICAgICAgICBcXFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2RlYnVnZnMuYy00Ni1cdC5yZWFkID0gaXdsX2RiZ2ZzXyMjbmFtZSMjX3JlYWQsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vZGVidWdmcy5jOjQ3Olx0Lm9wZW4gPSBzaW1wbGVfb3BlbixcdFx0XHRcdFx0XHRcXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vZGVidWdmcy5jLTQ4LVx0Lmxsc2VlayA9IGdlbmVyaWNfZmlsZV9sbHNlZWssXHRcdFx0XHRcdFxcXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vZGVidWdmcy5jPTUxPXN0YXRpYyBzc2l6ZV90IGl3bF9kYmdmc19zcmFtX3JlYWQoc3RydWN0IGZpbGUgKmZpbGUsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vZGVidWdmcy5jLTEzNS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2RlYnVnZnMuYzoxMzY6XHRyZXQgPSBzaW1wbGVfcmVhZF9mcm9tX2J1ZmZlcih1c2VyX2J1ZiwgY291bnQsIHBwb3MsIGJ1ZiwgcG9zKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2RlYnVnZnMuYy0xMzctXHRrZnJlZShidWYpO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2RlYnVnZnMuYz0xNjk9c3RhdGljIHNzaXplX3QgaXdsX2RiZ2ZzX3dvd2xhbl9zcmFtX3JlYWQoc3RydWN0IGZpbGUgKmZpbGUsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vZGVidWdmcy5jLTE3OC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2RlYnVnZnMuYzoxNzk6XHRyZXR1cm4gc2ltcGxlX3JlYWRfZnJvbV9idWZmZXIodXNlcl9idWYsIGNvdW50LCBwcG9zLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vZGVidWdmcy5jLTE4MC1cdFx0XHRcdCAgICAgICBwcml2LVx1MDAzZXdvd2xhbl9zcmFtLFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2RlYnVnZnMuYz0xODM9c3RhdGljIHNzaXplX3QgaXdsX2RiZ2ZzX3N0YXRpb25zX3JlYWQoc3RydWN0IGZpbGUgKmZpbGUsIGNoYXIgX191c2VyICp1c2VyX2J1Zixcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZWJ1Z2ZzLmMtMjMzLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vZGVidWdmcy5jOjIzNDpcdHJldCA9IHNpbXBsZV9yZWFkX2Zyb21fYnVmZmVyKHVzZXJfYnVmLCBjb3VudCwgcHBvcywgYnVmLCBwb3MpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vZGVidWdmcy5jLTIzNS1cdGtmcmVlKGJ1Zik7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vZGVidWdmcy5jPTIzOT1zdGF0aWMgc3NpemVfdCBpd2xfZGJnZnNfbnZtX3JlYWQoc3RydWN0IGZpbGUgKmZpbGUsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vZGVidWdmcy5jLTI3Mi1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2RlYnVnZnMuYzoyNzM6XHRyZXQgPSBzaW1wbGVfcmVhZF9mcm9tX2J1ZmZlcih1c2VyX2J1ZiwgY291bnQsIHBwb3MsIGJ1ZiwgcG9zKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2RlYnVnZnMuYy0yNzQtXHRrZnJlZShidWYpO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2RlYnVnZnMuYz0yNzg9c3RhdGljIHNzaXplX3QgaXdsX2RiZ2ZzX2NoYW5uZWxzX3JlYWQoc3RydWN0IGZpbGUgKmZpbGUsIGNoYXIgX191c2VyICp1c2VyX2J1Zixcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZWJ1Z2ZzLmMtMzM3LVx0fVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vZGVidWdmcy5jOjMzODpcdHJldCA9IHNpbXBsZV9yZWFkX2Zyb21fYnVmZmVyKHVzZXJfYnVmLCBjb3VudCwgcHBvcywgYnVmLCBwb3MpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vZGVidWdmcy5jLTMzOS1cdGtmcmVlKGJ1Zik7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vZGVidWdmcy5jPTM0Mz1zdGF0aWMgc3NpemVfdCBpd2xfZGJnZnNfc3RhdHVzX3JlYWQoc3RydWN0IGZpbGUgKmZpbGUsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vZGVidWdmcy5jLTM3My1cdFx0dGVzdF9iaXQoU1RBVFVTX0ZXX0VSUk9SLCBcdTAwMjZwcml2LVx1MDAzZXN0YXR1cykpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vZGVidWdmcy5jOjM3NDpcdHJldHVybiBzaW1wbGVfcmVhZF9mcm9tX2J1ZmZlcih1c2VyX2J1ZiwgY291bnQsIHBwb3MsIGJ1ZiwgcG9zKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2RlYnVnZnMuYy0zNzUtfVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2RlYnVnZnMuYz0zNzc9c3RhdGljIHNzaXplX3QgaXdsX2RiZ2ZzX3J4X2hhbmRsZXJzX3JlYWQoc3RydWN0IGZpbGUgKmZpbGUsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vZGVidWdmcy5jLTQwMC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2RlYnVnZnMuYzo0MDE6XHRyZXQgPSBzaW1wbGVfcmVhZF9mcm9tX2J1ZmZlcih1c2VyX2J1ZiwgY291bnQsIHBwb3MsIGJ1ZiwgcG9zKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2RlYnVnZnMuYy00MDItXHRrZnJlZShidWYpO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2RlYnVnZnMuYz00Mjk9c3RhdGljIHNzaXplX3QgaXdsX2RiZ2ZzX3Fvc19yZWFkKHN0cnVjdCBmaWxlICpmaWxlLCBjaGFyIF9fdXNlciAqdXNlcl9idWYsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vZGVidWdmcy5jLTQ1Mi1cdH1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2RlYnVnZnMuYzo0NTM6XHRyZXR1cm4gc2ltcGxlX3JlYWRfZnJvbV9idWZmZXIodXNlcl9idWYsIGNvdW50LCBwcG9zLCBidWYsIHBvcyk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZWJ1Z2ZzLmMtNDU0LX1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZWJ1Z2ZzLmM9NDU2PXN0YXRpYyBzc2l6ZV90IGl3bF9kYmdmc190aGVybWFsX3Rocm90dGxpbmdfcmVhZChzdHJ1Y3QgZmlsZSAqZmlsZSxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZWJ1Z2ZzLmMtNDg0LVx0fVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vZGVidWdmcy5jOjQ4NTpcdHJldHVybiBzaW1wbGVfcmVhZF9mcm9tX2J1ZmZlcih1c2VyX2J1ZiwgY291bnQsIHBwb3MsIGJ1ZiwgcG9zKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2RlYnVnZnMuYy00ODYtfVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2RlYnVnZnMuYz01MTE9c3RhdGljIHNzaXplX3QgaXdsX2RiZ2ZzX2Rpc2FibGVfaHQ0MF9yZWFkKHN0cnVjdCBmaWxlICpmaWxlLFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2RlYnVnZnMuYy01MjItXHRcdFx0cHJpdi1cdTAwM2VkaXNhYmxlX2h0NDAgPyBcJiMzNDtEaXNhYmxlZFwmIzM0OyA6IFwmIzM0O0VuYWJsZWRcJiMzNDspO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vZGVidWdmcy5jOjUyMzpcdHJldHVybiBzaW1wbGVfcmVhZF9mcm9tX2J1ZmZlcih1c2VyX2J1ZiwgY291bnQsIHBwb3MsIGJ1ZiwgcG9zKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2RlYnVnZnMuYy01MjQtfVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2RlYnVnZnMuYz01MjY9c3RhdGljIHNzaXplX3QgaXdsX2RiZ2ZzX3RlbXBlcmF0dXJlX3JlYWQoc3RydWN0IGZpbGUgKmZpbGUsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vZGVidWdmcy5jLTUzNS1cdHBvcyAmIzQzOz0gc2NucHJpbnRmKGJ1ZiAmIzQzOyBwb3MsIGJ1ZnN6IC0gcG9zLCBcJiMzNDslZFxcblwmIzM0OywgcHJpdi1cdTAwM2V0ZW1wZXJhdHVyZSk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZWJ1Z2ZzLmM6NTM2Olx0cmV0dXJuIHNpbXBsZV9yZWFkX2Zyb21fYnVmZmVyKHVzZXJfYnVmLCBjb3VudCwgcHBvcywgYnVmLCBwb3MpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vZGVidWdmcy5jLTUzNy19XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vZGVidWdmcy5jPTU4Mj1zdGF0aWMgc3NpemVfdCBpd2xfZGJnZnNfc2xlZXBfbGV2ZWxfb3ZlcnJpZGVfcmVhZChzdHJ1Y3QgZmlsZSAqZmlsZSxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZWJ1Z2ZzLmMtNTk2LVx0cG9zID0gc2NucHJpbnRmKGJ1ZiwgYnVmc3osIFwmIzM0OyVkXFxuXCYjMzQ7LCB2YWx1ZSk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZWJ1Z2ZzLmM6NTk3Olx0cmV0dXJuIHNpbXBsZV9yZWFkX2Zyb21fYnVmZmVyKHVzZXJfYnVmLCBjb3VudCwgcHBvcywgYnVmLCBwb3MpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vZGVidWdmcy5jLTU5OC19XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vZGVidWdmcy5jPTYwMD1zdGF0aWMgc3NpemVfdCBpd2xfZGJnZnNfY3VycmVudF9zbGVlcF9jb21tYW5kX3JlYWQoc3RydWN0IGZpbGUgKmZpbGUsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vZGVidWdmcy5jLTYyMC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2RlYnVnZnMuYzo2MjE6XHRyZXR1cm4gc2ltcGxlX3JlYWRfZnJvbV9idWZmZXIodXNlcl9idWYsIGNvdW50LCBwcG9zLCBidWYsIHBvcyk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZWJ1Z2ZzLmMtNjIyLX1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZWJ1Z2ZzLmM9NjY2PXN0YXRpYyBzc2l6ZV90IGl3bF9kYmdmc191Y29kZV9yeF9zdGF0c19yZWFkKHN0cnVjdCBmaWxlICpmaWxlLFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2RlYnVnZnMuYy0xMDkzLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vZGVidWdmcy5jOjEwOTQ6XHRyZXQgPSBzaW1wbGVfcmVhZF9mcm9tX2J1ZmZlcih1c2VyX2J1ZiwgY291bnQsIHBwb3MsIGJ1ZiwgcG9zKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2RlYnVnZnMuYy0xMDk1LVx0a2ZyZWUoYnVmKTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZWJ1Z2ZzLmM9MTA5OT1zdGF0aWMgc3NpemVfdCBpd2xfZGJnZnNfdWNvZGVfdHhfc3RhdHNfcmVhZChzdHJ1Y3QgZmlsZSAqZmlsZSxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZWJ1Z2ZzLmMtMTI5MC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2RlYnVnZnMuYzoxMjkxOlx0cmV0ID0gc2ltcGxlX3JlYWRfZnJvbV9idWZmZXIodXNlcl9idWYsIGNvdW50LCBwcG9zLCBidWYsIHBvcyk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZWJ1Z2ZzLmMtMTI5Mi1cdGtmcmVlKGJ1Zik7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vZGVidWdmcy5jPTEyOTY9c3RhdGljIHNzaXplX3QgaXdsX2RiZ2ZzX3Vjb2RlX2dlbmVyYWxfc3RhdHNfcmVhZChzdHJ1Y3QgZmlsZSAqZmlsZSxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZWJ1Z2ZzLmMtMTQxMC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2RlYnVnZnMuYzoxNDExOlx0cmV0ID0gc2ltcGxlX3JlYWRfZnJvbV9idWZmZXIodXNlcl9idWYsIGNvdW50LCBwcG9zLCBidWYsIHBvcyk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZWJ1Z2ZzLmMtMTQxMi1cdGtmcmVlKGJ1Zik7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vZGVidWdmcy5jPTE0MTY9c3RhdGljIHNzaXplX3QgaXdsX2RiZ2ZzX3Vjb2RlX2J0X3N0YXRzX3JlYWQoc3RydWN0IGZpbGUgKmZpbGUsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vZGVidWdmcy5jLTE0OTgtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZWJ1Z2ZzLmM6MTQ5OTpcdHJldCA9IHNpbXBsZV9yZWFkX2Zyb21fYnVmZmVyKHVzZXJfYnVmLCBjb3VudCwgcHBvcywgYnVmLCBwb3MpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vZGVidWdmcy5jLTE1MDAtXHRrZnJlZShidWYpO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2RlYnVnZnMuYz0xNTA0PXN0YXRpYyBzc2l6ZV90IGl3bF9kYmdmc19yZXBseV90eF9lcnJvcl9yZWFkKHN0cnVjdCBmaWxlICpmaWxlLFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2RlYnVnZnMuYy0xNjQwLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vZGVidWdmcy5jOjE2NDE6XHRyZXQgPSBzaW1wbGVfcmVhZF9mcm9tX2J1ZmZlcih1c2VyX2J1ZiwgY291bnQsIHBwb3MsIGJ1ZiwgcG9zKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2RlYnVnZnMuYy0xNjQyLVx0a2ZyZWUoYnVmKTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZWJ1Z2ZzLmM9MTY0Nj1zdGF0aWMgc3NpemVfdCBpd2xfZGJnZnNfc2Vuc2l0aXZpdHlfcmVhZChzdHJ1Y3QgZmlsZSAqZmlsZSxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZWJ1Z2ZzLmMtMTcxOC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2RlYnVnZnMuYzoxNzE5Olx0cmV0ID0gc2ltcGxlX3JlYWRfZnJvbV9idWZmZXIodXNlcl9idWYsIGNvdW50LCBwcG9zLCBidWYsIHBvcyk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZWJ1Z2ZzLmMtMTcyMC1cdGtmcmVlKGJ1Zik7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vZGVidWdmcy5jPTE3MjU9c3RhdGljIHNzaXplX3QgaXdsX2RiZ2ZzX2NoYWluX25vaXNlX3JlYWQoc3RydWN0IGZpbGUgKmZpbGUsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vZGVidWdmcy5jLTE3NzUtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZWJ1Z2ZzLmM6MTc3NjpcdHJldCA9IHNpbXBsZV9yZWFkX2Zyb21fYnVmZmVyKHVzZXJfYnVmLCBjb3VudCwgcHBvcywgYnVmLCBwb3MpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vZGVidWdmcy5jLTE3NzctXHRrZnJlZShidWYpO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2RlYnVnZnMuYz0xNzgxPXN0YXRpYyBzc2l6ZV90IGl3bF9kYmdmc19wb3dlcl9zYXZlX3N0YXR1c19yZWFkKHN0cnVjdCBmaWxlICpmaWxlLFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2RlYnVnZnMuYy0xODAwLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vZGVidWdmcy5jOjE4MDE6XHRyZXR1cm4gc2ltcGxlX3JlYWRfZnJvbV9idWZmZXIodXNlcl9idWYsIGNvdW50LCBwcG9zLCBidWYsIHBvcyk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZWJ1Z2ZzLmMtMTgwMi19XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vZGVidWdmcy5jPTE4Mjg9c3RhdGljIHNzaXplX3QgaXdsX2RiZ2ZzX3Vjb2RlX3RyYWNpbmdfcmVhZChzdHJ1Y3QgZmlsZSAqZmlsZSxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZWJ1Z2ZzLmMtMTg0NS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2RlYnVnZnMuYzoxODQ2Olx0cmV0dXJuIHNpbXBsZV9yZWFkX2Zyb21fYnVmZmVyKHVzZXJfYnVmLCBjb3VudCwgcHBvcywgYnVmLCBwb3MpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vZGVidWdmcy5jLTE4NDctfVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2RlYnVnZnMuYz0xODc5PXN0YXRpYyBzc2l6ZV90IGl3bF9kYmdmc19yeG9uX2ZsYWdzX3JlYWQoc3RydWN0IGZpbGUgKmZpbGUsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vZGVidWdmcy5jLTE4ODgtXHRcdGxlMzJfdG9fY3B1KHByaXYtXHUwMDNlY29udGV4dHNbSVdMX1JYT05fQ1RYX0JTU10uYWN0aXZlLmZsYWdzKSk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZWJ1Z2ZzLmM6MTg4OTpcdHJldHVybiBzaW1wbGVfcmVhZF9mcm9tX2J1ZmZlcih1c2VyX2J1ZiwgY291bnQsIHBwb3MsIGJ1ZiwgbGVuKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2RlYnVnZnMuYy0xODkwLX1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZWJ1Z2ZzLmM9MTg5Mj1zdGF0aWMgc3NpemVfdCBpd2xfZGJnZnNfcnhvbl9maWx0ZXJfZmxhZ3NfcmVhZChzdHJ1Y3QgZmlsZSAqZmlsZSxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZWJ1Z2ZzLmMtMTkwMS1cdFx0bGUzMl90b19jcHUocHJpdi1cdTAwM2Vjb250ZXh0c1tJV0xfUlhPTl9DVFhfQlNTXS5hY3RpdmUuZmlsdGVyX2ZsYWdzKSk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZWJ1Z2ZzLmM6MTkwMjpcdHJldHVybiBzaW1wbGVfcmVhZF9mcm9tX2J1ZmZlcih1c2VyX2J1ZiwgY291bnQsIHBwb3MsIGJ1ZiwgbGVuKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2RlYnVnZnMuYy0xOTAzLX1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZWJ1Z2ZzLmM9MTkwNT1zdGF0aWMgc3NpemVfdCBpd2xfZGJnZnNfbWlzc2VkX2JlYWNvbl9yZWFkKHN0cnVjdCBmaWxlICpmaWxlLFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2RlYnVnZnMuYy0xOTE2LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vZGVidWdmcy5jOjE5MTc6XHRyZXR1cm4gc2ltcGxlX3JlYWRfZnJvbV9idWZmZXIodXNlcl9idWYsIGNvdW50LCBwcG9zLCBidWYsIHBvcyk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZWJ1Z2ZzLmMtMTkxOC19XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vZGVidWdmcy5jPTE5NDY9c3RhdGljIHNzaXplX3QgaXdsX2RiZ2ZzX3BsY3BfZGVsdGFfcmVhZChzdHJ1Y3QgZmlsZSAqZmlsZSxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZWJ1Z2ZzLmMtMTk1Ny1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2RlYnVnZnMuYzoxOTU4Olx0cmV0dXJuIHNpbXBsZV9yZWFkX2Zyb21fYnVmZmVyKHVzZXJfYnVmLCBjb3VudCwgcHBvcywgYnVmLCBwb3MpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vZGVidWdmcy5jLTE5NTktfVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2RlYnVnZnMuYz0xOTg1PXN0YXRpYyBzc2l6ZV90IGl3bF9kYmdmc19yZl9yZXNldF9yZWFkKHN0cnVjdCBmaWxlICpmaWxlLFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2RlYnVnZnMuYy0yMDA2LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vZGVidWdmcy5jOjIwMDc6XHRyZXR1cm4gc2ltcGxlX3JlYWRfZnJvbV9idWZmZXIodXNlcl9idWYsIGNvdW50LCBwcG9zLCBidWYsIHBvcyk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZWJ1Z2ZzLmMtMjAwOC19XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vZGVidWdmcy5jPTIwNDU9c3RhdGljIHNzaXplX3QgaXdsX2RiZ2ZzX2J0X3RyYWZmaWNfcmVhZChzdHJ1Y3QgZmlsZSAqZmlsZSxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZWJ1Z2ZzLmMtMjA1NS1cdFx0cG9zICYjNDM7PSBzY25wcmludGYoYnVmICYjNDM7IHBvcywgYnVmc3ogLSBwb3MsIFwmIzM0O0JUIGNvZXggZGlzYWJsZWRcXG5cJiMzNDspO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vZGVidWdmcy5jOjIwNTY6XHRcdHJldHVybiBzaW1wbGVfcmVhZF9mcm9tX2J1ZmZlcih1c2VyX2J1ZiwgY291bnQsIHBwb3MsIGJ1ZiwgcG9zKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2RlYnVnZnMuYy0yMDU3LVx0fVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2RlYnVnZnMuYy0yMDg2LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vZGVidWdmcy5jOjIwODc6XHRyZXR1cm4gc2ltcGxlX3JlYWRfZnJvbV9idWZmZXIodXNlcl9idWYsIGNvdW50LCBwcG9zLCBidWYsIHBvcyk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZWJ1Z2ZzLmMtMjA4OC19XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vZGVidWdmcy5jPTIwOTA9c3RhdGljIHNzaXplX3QgaXdsX2RiZ2ZzX3Byb3RlY3Rpb25fbW9kZV9yZWFkKHN0cnVjdCBmaWxlICpmaWxlLFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2RlYnVnZnMuYy0yMTA4LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vZGVidWdmcy5jOjIxMDk6XHRyZXR1cm4gc2ltcGxlX3JlYWRfZnJvbV9idWZmZXIodXNlcl9idWYsIGNvdW50LCBwcG9zLCBidWYsIHBvcyk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZWJ1Z2ZzLmMtMjExMC19XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vZGVidWdmcy5jPTIxNzI9c3RhdGljIHNzaXplX3QgaXdsX2RiZ2ZzX2xvZ19ldmVudF9yZWFkKHN0cnVjdCBmaWxlICpmaWxlLFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2RlYnVnZnMuYy0yMTgxLVx0aWYgKHJldCBcdTAwM2UgMClcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2RlYnVnZnMuYzoyMTgyOlx0XHRyZXQgPSBzaW1wbGVfcmVhZF9mcm9tX2J1ZmZlcih1c2VyX2J1ZiwgY291bnQsIHBwb3MsIGJ1ZiwgcmV0KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2RlYnVnZnMuYy0yMTgzLVx0a2ZyZWUoYnVmKTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZWJ1Z2ZzLmM9MjIxMz1zdGF0aWMgc3NpemVfdCBpd2xfZGJnZnNfY2FsaWJfZGlzYWJsZWRfcmVhZChzdHJ1Y3QgZmlsZSAqZmlsZSxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZWJ1Z2ZzLmMtMjIzNy1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2RlYnVnZnMuYzoyMjM4Olx0cmV0dXJuIHNpbXBsZV9yZWFkX2Zyb21fYnVmZmVyKHVzZXJfYnVmLCBjb3VudCwgcHBvcywgYnVmLCBwb3MpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vZGVidWdmcy5jLTIyMzktfVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL21hYzgwMjExLmM9MTM4OD1zdGF0aWMgaW50IGl3bGFnbl9tYWNfY2hhbmdlX2ludGVyZmFjZShzdHJ1Y3QgaWVlZTgwMjExX2h3ICpodyxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9tYWM4MDIxMS5jLTE0MDYtXHQvKlxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vbWFjODAyMTEuYzoxNDA3Olx0ICogVG8gc2ltcGxpZnkgdGhpcyBjb2RlLCBvbmx5IHN1cHBvcnQgY2hhbmdlcyBvbiB0aGVcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL21hYzgwMjExLmMtMTQwOC1cdCAqIEJTUyBjb250ZXh0LiBUaGUgUEFOIGNvbnRleHQgaXMgdXN1YWxseSByZWFzc2lnbmVkXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vcnMuYz0yMTU3PXN0YXRpYyB2b2lkIHJzX3JhdGVfc2NhbGVfcGVyZm9ybShzdHJ1Y3QgaXdsX3ByaXYgKnByaXYsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vcnMuYy0yNjAwLSAqICAgICAgIGlmIHRoZSBkcml2ZXImIzM5O3MgaXdsLWFnbi1ycyByYXRlIHNjYWxpbmcgYWxnb3JpdGhtIGlzIHVzZWQsIGluc3RlYWQgb2ZcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL3JzLmM6MjYwMTogKiAgICAgICByYzgwMjExX3NpbXBsZS5cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL3JzLmMtMjYwMi0gKlxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL3JzLmM9MzA2MT1zdGF0aWMgc3NpemVfdCByc19zdGFfZGJnZnNfc2NhbGVfdGFibGVfcmVhZChzdHJ1Y3QgZmlsZSAqZmlsZSxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9ycy5jLTMxNTctXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9ycy5jOjMxNTg6XHRyZXQgPSBzaW1wbGVfcmVhZF9mcm9tX2J1ZmZlcih1c2VyX2J1ZiwgY291bnQsIHBwb3MsIGJ1ZmYsIGRlc2MpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vcnMuYy0zMTU5LVx0a2ZyZWUoYnVmZik7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vcnMuYz0zMTYzPXN0YXRpYyBjb25zdCBzdHJ1Y3QgZmlsZV9vcGVyYXRpb25zIHJzX3N0YV9kYmdmc19zY2FsZV90YWJsZV9vcHMgPSB7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vcnMuYy0zMTY1LVx0LnJlYWQgPSByc19zdGFfZGJnZnNfc2NhbGVfdGFibGVfcmVhZCxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL3JzLmM6MzE2NjpcdC5vcGVuID0gc2ltcGxlX29wZW4sXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9ycy5jLTMxNjctXHQubGxzZWVrID0gZGVmYXVsdF9sbHNlZWssXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vcnMuYz0zMTY5PXN0YXRpYyBzc2l6ZV90IHJzX3N0YV9kYmdmc19zdGF0c190YWJsZV9yZWFkKHN0cnVjdCBmaWxlICpmaWxlLFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL3JzLmMtMzIwMS1cdH1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL3JzLmM6MzIwMjpcdHJldCA9IHNpbXBsZV9yZWFkX2Zyb21fYnVmZmVyKHVzZXJfYnVmLCBjb3VudCwgcHBvcywgYnVmZiwgZGVzYyk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9ycy5jLTMyMDMtXHRrZnJlZShidWZmKTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9ycy5jPTMyMDc9c3RhdGljIGNvbnN0IHN0cnVjdCBmaWxlX29wZXJhdGlvbnMgcnNfc3RhX2RiZ2ZzX3N0YXRzX3RhYmxlX29wcyA9IHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL3JzLmMtMzIwOC1cdC5yZWFkID0gcnNfc3RhX2RiZ2ZzX3N0YXRzX3RhYmxlX3JlYWQsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9ycy5jOjMyMDk6XHQub3BlbiA9IHNpbXBsZV9vcGVuLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vcnMuYy0zMjEwLVx0Lmxsc2VlayA9IGRlZmF1bHRfbGxzZWVrLFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL3JzLmM9MzIxMz1zdGF0aWMgc3NpemVfdCByc19zdGFfZGJnZnNfcmF0ZV9zY2FsZV9kYXRhX3JlYWQoc3RydWN0IGZpbGUgKmZpbGUsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vcnMuYy0zMjI5LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vcnMuYzozMjMwOlx0cmV0dXJuIHNpbXBsZV9yZWFkX2Zyb21fYnVmZmVyKHVzZXJfYnVmLCBjb3VudCwgcHBvcywgYnVmZiwgZGVzYyk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9ycy5jLTMyMzEtfVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL3JzLmM9MzIzMz1zdGF0aWMgY29uc3Qgc3RydWN0IGZpbGVfb3BlcmF0aW9ucyByc19zdGFfZGJnZnNfcmF0ZV9zY2FsZV9kYXRhX29wcyA9IHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL3JzLmMtMzIzNC1cdC5yZWFkID0gcnNfc3RhX2RiZ2ZzX3JhdGVfc2NhbGVfZGF0YV9yZWFkLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vcnMuYzozMjM1Olx0Lm9wZW4gPSBzaW1wbGVfb3BlbixcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL3JzLmMtMzIzNi1cdC5sbHNlZWsgPSBkZWZhdWx0X2xsc2Vlayxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9zY2FuLmM9MzY9c3RhdGljIGludCBpd2xfc2VuZF9zY2FuX2Fib3J0KHN0cnVjdCBpd2xfcHJpdiAqcHJpdilcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9zY2FuLmMtNjAtXHRcdCAqIDIgZm9yIFwmIzM0O2ZhaWx1cmVcJiMzNDsuICBBIGZhaWx1cmUgY29uZGl0aW9uIGNhbiBiZVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vc2Nhbi5jOjYxOlx0XHQgKiBkdWUgdG8gc2ltcGx5IG5vdCBiZWluZyBpbiBhbiBhY3RpdmUgc2NhbiB3aGljaFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vc2Nhbi5jLTYyLVx0XHQgKiBjYW4gb2NjdXIgaWYgd2Ugc2VuZCB0aGUgc2NhbiBhYm9ydCBiZWZvcmUgd2Vcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2Z3L2FwaS9sb2NhdGlvbi5oPTIxMT1lbnVtIGl3bF90b2ZfcmVzcG9uZGVyX2NmZ19mbGFncyB7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9mdy9hcGkvbG9jYXRpb24uaC0yMzgtICogQHRvYV9vZmZzZXQ6IEFydGlmaWNpYWwgYWRkaXRpb24gW3BTZWNdIGZvciB0aGUgVG9BIC0gdG8gYmUgdXNlZCBmb3IgZGVidWdcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZncvYXBpL2xvY2F0aW9uLmg6MjM5OiAqXHRwdXJwb3Nlcywgc2ltdWxhdGluZyBzdGF0aW9uIG1vdmVtZW50IGJ5IGFkZGluZyB2YXJpb3VzIHZhbHVlc1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9mdy9hcGkvbG9jYXRpb24uaC0yNDAtICpcdHRvIHRoaXMgZmllbGRcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2Z3L2FwaS9sb2NhdGlvbi5oPTI0Nj1zdHJ1Y3QgaXdsX3RvZl9yZXNwb25kZXJfY29uZmlnX2NtZF92NiB7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9mdy9hcGkvbG9jYXRpb24uaC0yNzQtICogQHRvYV9vZmZzZXQ6IEFydGlmaWNpYWwgYWRkaXRpb24gW3BTZWNdIGZvciB0aGUgVG9BIC0gdG8gYmUgdXNlZCBmb3IgZGVidWdcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZncvYXBpL2xvY2F0aW9uLmg6Mjc1OiAqXHRwdXJwb3Nlcywgc2ltdWxhdGluZyBzdGF0aW9uIG1vdmVtZW50IGJ5IGFkZGluZyB2YXJpb3VzIHZhbHVlc1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9mdy9hcGkvbG9jYXRpb24uaC0yNzYtICpcdHRvIHRoaXMgZmllbGRcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2Z3L2FwaS9sb2NhdGlvbi5oPTI4Mj1zdHJ1Y3QgaXdsX3RvZl9yZXNwb25kZXJfY29uZmlnX2NtZF92NyB7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9mdy9hcGkvbG9jYXRpb24uaC0zMTMtICogQHRvYV9vZmZzZXQ6IEFydGlmaWNpYWwgYWRkaXRpb24gW3BTZWNdIGZvciB0aGUgVG9BIC0gdG8gYmUgdXNlZCBmb3IgZGVidWdcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZncvYXBpL2xvY2F0aW9uLmg6MzE0OiAqXHRwdXJwb3Nlcywgc2ltdWxhdGluZyBzdGF0aW9uIG1vdmVtZW50IGJ5IGFkZGluZyB2YXJpb3VzIHZhbHVlc1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9mdy9hcGkvbG9jYXRpb24uaC0zMTUtICpcdHRvIHRoaXMgZmllbGRcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2Z3L2FwaS9sb2NhdGlvbi5oPTMzMD1zdHJ1Y3QgaXdsX3RvZl9yZXNwb25kZXJfY29uZmlnX2NtZF92OCB7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9mdy9hcGkvbG9jYXRpb24uaC0zNTktICogQHRvYV9vZmZzZXQ6IEFydGlmaWNpYWwgYWRkaXRpb24gW3BTZWNdIGZvciB0aGUgVG9BIC0gdG8gYmUgdXNlZCBmb3IgZGVidWdcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZncvYXBpL2xvY2F0aW9uLmg6MzYwOiAqXHRwdXJwb3Nlcywgc2ltdWxhdGluZyBzdGF0aW9uIG1vdmVtZW50IGJ5IGFkZGluZyB2YXJpb3VzIHZhbHVlc1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9mdy9hcGkvbG9jYXRpb24uaC0zNjEtICpcdHRvIHRoaXMgZmllbGRcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2Z3L2FwaS9sb2NhdGlvbi5oPTM4MD1zdHJ1Y3QgaXdsX3RvZl9yZXNwb25kZXJfY29uZmlnX2NtZF92OSB7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9mdy9hcGkvbG9jYXRpb24uaC00MTEtICogQHRvYV9vZmZzZXQ6IEFydGlmaWNpYWwgYWRkaXRpb24gW3BTZWNdIGZvciB0aGUgVG9BIC0gdG8gYmUgdXNlZCBmb3IgZGVidWdcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZncvYXBpL2xvY2F0aW9uLmg6NDEyOiAqXHRwdXJwb3Nlcywgc2ltdWxhdGluZyBzdGF0aW9uIG1vdmVtZW50IGJ5IGFkZGluZyB2YXJpb3VzIHZhbHVlc1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9mdy9hcGkvbG9jYXRpb24uaC00MTMtICpcdHRvIHRoaXMgZmllbGRcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2Z3L2FwaS9wb3dlci5oPTk2PWVudW0gaXdsX3Bvd2VyX2ZsYWdzIHtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2Z3L2FwaS9wb3dlci5oLTExMi0gKlx0aXMgdXNlZCBhbHNvIHdpdGggYSBuZXdcdHBvd2VyIEFQSSBmb3IgZGV2aWNlIHdpZGUgcG93ZXIgc2V0dGluZ3MuXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2Z3L2FwaS9wb3dlci5oOjExMzogKiBQT1dFUl9UQUJMRV9DTUQgPSAweDc3IChjb21tYW5kLCBoYXMgc2ltcGxlIGdlbmVyaWMgcmVzcG9uc2UpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2Z3L2FwaS9wb3dlci5oLTExNC0gKlxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZncvYXBpL3Bvd2VyLmg9MTU3PWVudW0gaXdsX2RldmljZV9wb3dlcl9mbGFncyB7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9mdy9hcGkvcG93ZXIuaC0xNjUtICogc3RydWN0IGl3bF9kZXZpY2VfcG93ZXJfY21kIC0gZGV2aWNlIHdpZGUgcG93ZXIgY29tbWFuZC5cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZncvYXBpL3Bvd2VyLmg6MTY2OiAqIERFVklDRV9QT1dFUl9DTUQgPSAweDc3IChjb21tYW5kLCBoYXMgc2ltcGxlIGdlbmVyaWMgcmVzcG9uc2UpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2Z3L2FwaS9wb3dlci5oLTE2Ny0gKlxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZncvYXBpL3Bvd2VyLmg9MTcxPXN0cnVjdCBpd2xfZGV2aWNlX3Bvd2VyX2NtZCB7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9mdy9hcGkvcG93ZXIuaC0xNzgtICogc3RydWN0IGl3bF9tYWNfcG93ZXJfY21kIC0gTmV3IHBvd2VyIGNvbW1hbmQgY29udGFpbmluZyB1QVBTRCBzdXBwb3J0XG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2Z3L2FwaS9wb3dlci5oOjE3OTogKiBNQUNfUE1fUE9XRVJfVEFCTEUgPSAweEE5IChjb21tYW5kLCBoYXMgc2ltcGxlIGdlbmVyaWMgcmVzcG9uc2UpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2Z3L2FwaS9wb3dlci5oLTE4MC0gKiBAaWRfYW5kX2NvbG9yOlx0TUFDIGNvbnRleCBpZGVudGlmaWVyLCBcdTAwMjZlbnVtIGl3bF9jdHh0X2lkX2FuZF9jb2xvclxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZncvZGJnLmg9MTU2PXN0YXRpYyBpbmxpbmUgdm9pZFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9mdy9kYmcuaDoxNTc6X2l3bF9md19kYmdfdHJpZ2dlcl9zaW1wbGVfc3RvcChzdHJ1Y3QgaXdsX2Z3X3J1bnRpbWUgKmZ3cnQsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2Z3L2RiZy5oLTE1OC1cdFx0XHRcdHN0cnVjdCB3aXJlbGVzc19kZXYgKndkZXYsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9mdy9kYmcuaC0xNjktXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2Z3L2RiZy5oOjE3MDojZGVmaW5lIGl3bF9md19kYmdfdHJpZ2dlcl9zaW1wbGVfc3RvcChmd3J0LCB3ZGV2LCB0cmlnKVx0XFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZncvZGJnLmg6MTcxOlx0X2l3bF9md19kYmdfdHJpZ2dlcl9zaW1wbGVfc3RvcCgoZndydCksICh3ZGV2KSxcdFx0XFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZncvZGJnLmgtMTcyLVx0XHRcdFx0XHRpd2xfZndfZGJnX2dldF90cmlnZ2VyKChmd3J0KS1cdTAwM2VmdyxcXFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZncvZGVidWdmcy5jPTM2PXN0YXRpYyBzc2l6ZV90IF9pd2xfZGJnZnNfIyNuYW1lIyNfcmVhZChzdHJ1Y3QgZmlsZSAqZmlsZSxcdFx0XFxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2Z3L2RlYnVnZnMuYy01MC1cdFx0cmV0dXJuIGRhdGEtXHUwMDNlcmxlbjtcdFx0XHRcdFx0XFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZncvZGVidWdmcy5jOjUxOlx0cmV0dXJuIHNpbXBsZV9yZWFkX2Zyb21fYnVmZmVyKHVzZXJfYnVmLCBjb3VudCwgcHBvcyxcdFx0XFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZncvZGVidWdmcy5jLTUyLVx0XHRcdFx0ICAgICAgIGRhdGEtXHUwMDNlcmJ1ZiwgZGF0YS1cdTAwM2VybGVuKTtcdFx0XFxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2Z3L3VlZmkuaD0yNDE9c3RydWN0IHVlZmlfY252X3dwZmNfZGF0YSB7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9mdy91ZWZpLmgtMjQ3LSAqIFRoaXMgaXMga25vd24gdG8gYmUgYnJva2VuIG9uIHY0LjE5IGFuZCB0byB3b3JrIG9uIHY1LjQuICBVbnRpbCB3ZVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9mdy91ZWZpLmg6MjQ4OiAqIGZpZ3VyZSBvdXQgd2h5IHRoaXMgaXMgdGhlIGNhc2UgYW5kIGhvdyB0byBtYWtlIGl0IHdvcmssIHNpbXBseVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9mdy91ZWZpLmgtMjQ5LSAqIGRpc2FibGUgdGhlIGZlYXR1cmUgaW4gb2xkIGtlcm5lbHMuXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9pd2wtY3NyLmgtMTctICogVXNlIGl3bF93cml0ZTMyKCkgYW5kIGl3bF9yZWFkMzIoKSBmYW1pbHkgdG8gYWNjZXNzIHRoZXNlIHJlZ2lzdGVycztcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvaXdsLWNzci5oOjE4OiAqIHRoZXNlIHByb3ZpZGUgc2ltcGxlIFBDSSBidXMgYWNjZXNzLCB3aXRob3V0IHdha2luZyB1cCB0aGUgTUFDLlxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9pd2wtY3NyLmgtMTktICogRG8gbm90IHVzZSBpd2xfd3JpdGVfZGlyZWN0MzIoKSBmYW1pbHkgZm9yIHRoZXNlIHJlZ2lzdGVycztcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2l3bC1jc3IuaD0zMjE9ZW51bSB7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9pd2wtY3NyLmgtNTA4LSAqIERvIG5vdCB1c2UgaXdsX3dyaXRlMzIoKS9pd2xfcmVhZDMyKCkgZmFtaWx5IHRvIGFjY2VzcyB0aGVzZSByZWdpc3RlcnM7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2l3bC1jc3IuaDo1MDk6ICogdGhlc2UgcHJvdmlkZSBvbmx5IHNpbXBsZSBQQ0kgYnVzIGFjY2Vzcywgd2l0aG91dCB3YWtpbmcgdXAgdGhlIE1BQy5cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvaXdsLWNzci5oLTUxMC0gKi9cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2l3bC1kZWJ1Zy5oPTEwMj1kbyB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcdFx0XHRcXFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvaXdsLWRlYnVnLmgtMTEzLSAqXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2l3bC1kZWJ1Zy5oOjExNDogKiBJZiB5b3UgYXJlIGRlZmluaW5nIGEgbmV3IGRlYnVnIGNsYXNzaWZpY2F0aW9uLCBzaW1wbHkgYWRkIGl0IHRvIHRoZSAjZGVmaW5lXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2l3bC1kZWJ1Zy5oLTExNS0gKiBsaXN0IGhlcmUgaW4gdGhlIGZvcm0gb2Zcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2l3bC1vcC1tb2RlLmg9MjA9c3RydWN0IGl3bF9yZl9jZmc7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9pd2wtb3AtbW9kZS5oLTM2LSAqXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2l3bC1vcC1tb2RlLmg6Mzc6ICogVGhlIG9wZXJhdGlvbmFsIG1vZGUgaGFzIGEgdmVyeSBzaW1wbGUgbGlmZSBjeWNsZS5cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvaXdsLW9wLW1vZGUuaC0zOC0gKlxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvaXdsLXV0aWxzLmM9ODY9c3RhdGljIHUzMiBpd2xfZGl2X2J5X2RiKHUzMiB2YWx1ZSwgdTggZGIpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9pd2wtdXRpbHMuYy04OC1cdC8qXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2l3bC11dGlscy5jOjg5Olx0ICogMl4zMiAqIDEwKiooaSAvIDEwKSBmb3IgaSA9IFsxLCAxMF0sIHNraXBwaW5nIDAgYW5kIHNpbXBseSBzdG9wcGluZ1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9pd2wtdXRpbHMuYy05MC1cdCAqIGF0IDEwIGRCIGFuZCBsb29waW5nIGluc3RlYWQgb2YgdXNpbmcgYSBtdWNoIGxhcmdlciB0YWJsZS5cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21laS9pd2wtbWVpLmgtMTc0LSAqIENTTUUgY2FuIHRyYW5zbWl0IHBhY2tldHMsIHRocm91Z2ggdGhlIG5ldGRldiB0aGF0IGl0IGdldHMgZnJvbSB0aGUgd2lmaVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tZWkvaXdsLW1laS5oOjE3NTogKiBkcml2ZXIuIEl0JiMzOTtsbCBzZW5kIHBhY2tldCBpbiB0aGUgODAyLjMgZm9ybWF0IGFuZCBzaW1wbHkgY2FsbFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tZWkvaXdsLW1laS5oLTE3Ni0gKiBkZXZfcXVldWVfeG1pdC5cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21laS9pd2wtbWVpLmg9NDI4PXZvaWQgaXdsX21laV9zZXRfbmV0ZGV2KHN0cnVjdCBuZXRfZGV2aWNlICpuZXRkZXYpO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWVpL2l3bC1tZWkuaC00MzYtICpcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWVpL2l3bC1tZWkuaDo0Mzc6ICogVGhpcyBmdW5jdGlvbiBkb2VzbiYjMzk7dCB0YWtlIGFueSBsb2NrLCBpdCBzaW1wbHkgdHJpZXMgdG8gY2F0Y2ggREhDUFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tZWkvaXdsLW1laS5oLTQzOC0gKiBwYWNrZXRzIHNlbnQgYnkgdGhlIHdpZmkgZHJpdmVyLiBJZiB0aGUgcGFja2V0IGlzIGEgREhDUCBwYWNrZXQsIGl0XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tZWkvbWFpbi5jPTE5MDA9c3RhdGljIGNvbnN0IHN0cnVjdCBmaWxlX29wZXJhdGlvbnMgaXdsX21laV9kYmdmc19zZW5kX3N0YXJ0X21lc3NhZ2Vfb3BzID0ge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tZWkvbWFpbi5jLTE5MDEtXHQud3JpdGUgPSBpd2xfbWVpX2RiZ2ZzX3NlbmRfc3RhcnRfbWVzc2FnZV93cml0ZSxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWVpL21haW4uYzoxOTAyOlx0Lm9wZW4gPSBzaW1wbGVfb3BlbixcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWVpL21haW4uYy0xOTAzLVx0Lmxsc2VlayA9IGRlZmF1bHRfbGxzZWVrLFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWVpL21haW4uYz0xOTE1PXN0YXRpYyBjb25zdCBzdHJ1Y3QgZmlsZV9vcGVyYXRpb25zIGl3bF9tZWlfZGJnZnNfcmVxX293bmVyc2hpcF9vcHMgPSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21laS9tYWluLmMtMTkxNi1cdC53cml0ZSA9IGl3bF9tZWlfZGJnZnNfcmVxX293bmVyc2hpcF93cml0ZSxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWVpL21haW4uYzoxOTE3Olx0Lm9wZW4gPSBzaW1wbGVfb3BlbixcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWVpL21haW4uYy0xOTE4LVx0Lmxsc2VlayA9IGRlZmF1bHRfbGxzZWVrLFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL2RlYnVnZnMuaD0zNT1zdGF0aWMgc3NpemVfdCBfaXdsX2RiZ2ZzXyMjbmFtZSMjX3JlYWQoc3RydWN0IGZpbGUgKmZpbGUsXHRcdFxcXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvZGVidWdmcy5oLTQ5LVx0XHRyZXR1cm4gZGF0YS1cdTAwM2VybGVuO1x0XHRcdFx0XHRcXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvZGVidWdmcy5oOjUwOlx0cmV0dXJuIHNpbXBsZV9yZWFkX2Zyb21fYnVmZmVyKHVzZXJfYnVmLCBjb3VudCwgcHBvcyxcdFx0XFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL2RlYnVnZnMuaC01MS1cdFx0XHRcdCAgICAgICBkYXRhLVx1MDAzZWJ1ZiwgZGF0YS1cdTAwM2VybGVuKTtcdFx0XFxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC9kZWJ1Z2ZzLmg9MTAxPXN0YXRpYyBzc2l6ZV90IF9faXdsX2RiZ2ZzXyMjbmFtZSMjX3dyaXRlKHN0cnVjdCBmaWxlICpmaWxlLFx0XHRcXFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL2RlYnVnZnMuaC0xMTktXHRcdC53cml0ZSA9IF9faXdsX2RiZ2ZzXyMjbmFtZSMjX3dyaXRlLFx0XHRcdFxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC9kZWJ1Z2ZzLmg6MTIwOlx0XHQub3BlbiA9IHNpbXBsZV9vcGVuLFx0XHRcdFx0XHRcXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvZGVidWdmcy5oLTEyMS1cdFx0Lmxsc2VlayA9IGdlbmVyaWNfZmlsZV9sbHNlZWssXHRcdFx0XHRcXFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL2RlYnVnZnMuaD0xNjI9c3RhdGljIHNzaXplX3QgX19pd2xfZGJnZnNfIyNuYW1lIyNfcmVhZChzdHJ1Y3QgZmlsZSAqZmlsZSxcdFx0XFxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC9kZWJ1Z2ZzLmgtMTc5LVx0XHRyZXR1cm4gZGF0YS1cdTAwM2VybGVuO1x0XHRcdFx0XHRcXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvZGVidWdmcy5oOjE4MDpcdHJldHVybiBzaW1wbGVfcmVhZF9mcm9tX2J1ZmZlcih1c2VyX2J1ZiwgY291bnQsIHBwb3MsXHRcdFxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC9kZWJ1Z2ZzLmgtMTgxLVx0XHRcdFx0ICAgICAgIGRhdGEtXHUwMDNlYnVmLCBkYXRhLVx1MDAzZXJsZW4pO1x0XHRcXFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL21hYzgwMjExLmM9MTM2OT1pd2xfbWxkX21hYzgwMjExX2NhbmNlbF9od19zY2FuKHN0cnVjdCBpZWVlODAyMTFfaHcgKmh3LFxuXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+NS8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMzEgMTg6MTU8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjctZmxhc2g8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMTYzMjAKCQkJCQkJCW91dHB1dDogNDUKCQkJCQkJCXRob3VnaHRzOiAyNAoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+SGVyZSYjMzk7cyBteSBhdHRlbXB0IGF0IHN1bW1hcml6aW5nIHRoYXQgdGhvdWdodCBwcm9jZXNzLCB0YWlsb3JlZCBmb3IgYW4gZXhwZXJ0IGF1ZGllbmNlOgoKKipEaXZpbmcgaW50byB0aGUgaXdsd2lmaSBEcml2ZXIqKgoKT2theSwgc28gSSYjMzk7bSBwb2tpbmcgYXJvdW5kIHRoZSBrZXJuZWwmIzM5O3MgaXdsd2lmaSBkcml2ZXIgY29kZS4gSSYjMzk7bSBwcmltYXJpbHkgaW50ZXJlc3RlZCBpbiB1bmRlcnN0YW5kaW5nIGl0cyBpbnRlcmFjdGlvbnMuIFNwZWNpZmljYWxseSwgSSB3YW50IHRvIHRyYWNlIGhvdyBpdCBob29rcyBpbnRvIHRoZSBzeXN0ZW0uIE15IGZpcnN0IGxpbmUgb2YgaW52ZXN0aWdhdGlvbiB3aWxsIGJlIHRvIGZpZ3VyZSBvdXQgdGhlIGJ1cyByZWdpc3RyYXRpb25zLiBXaGF0IGJ1c2VzIGRvZXMgdGhpcyBkcml2ZXIgaW5pdGlhbGl6ZSB3aXRoPyBQQ0k/IFVTQj8gUGVyaGFwcyBldmVuIFNESU8gb3Igc29tZXRoaW5nIG1vcmUgb2JzY3VyZSwgZGVwZW5kaW5nIG9uIHRoZSBJbnRlbCB3aXJlbGVzcyBjaGlwc2V0cyBpdCBzdXBwb3J0cz8gSSBuZWVkIHRvIGdldCBhIGNsZWFyIHBpY3R1cmUgb2YgaXRzIGRldmljZSBwcm9iaW5nIGFuZCBkcml2ZXIgYmluZGluZyBtZWNoYW5pc21zLiBVbmRlcnN0YW5kaW5nIHRoZSBidXMgaW50ZXJhY3Rpb25zIHdpbGwgdGhlbiBkaWN0YXRlIHdoaWNoIGtlcm5lbCBjb21wb25lbnRzIG9yIGNvbmZpZ3VyYXRpb25zLCBpZiBhbnksIEkgbmVlZCB0byBmb2N1cyBteSBhdHRlbnRpb24uCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Ni8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMzEgMTg6MTU8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7bW9kdWxlX3BjaV9kcml2ZXJ8cGNpX3JlZ2lzdGVyX2RyaXZlciYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvaXdsLWRydi5jPTIwNjI9c3RhdGljIGludCBfX2luaXQgaXdsX2Rydl9pbml0KHZvaWQpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9pd2wtZHJ2LmMtMjA3My1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvaXdsLWRydi5jOjIwNzQ6XHRlcnIgPSBpd2xfcGNpX3JlZ2lzdGVyX2RyaXZlcigpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9pd2wtZHJ2LmMtMjA3NS1cdGlmIChlcnIpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9pd2wtdHJhbnMuaD0xMjEyPXN0YXRpYyBpbmxpbmUgdm9pZCBpd2xfdHJhbnNfbm90aWZ5X2Z3X2Vycm9yKHN0cnVjdCBpd2xfdHJhbnMgKnRyYW5zKVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvaXdsLXRyYW5zLmgtMTIxOS0gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2l3bC10cmFucy5oOjEyMjA6aW50IF9fbXVzdF9jaGVjayBpd2xfcGNpX3JlZ2lzdGVyX2RyaXZlcih2b2lkKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvaXdsLXRyYW5zLmgtMTIyMS12b2lkIGl3bF9wY2lfdW5yZWdpc3Rlcl9kcml2ZXIodm9pZCk7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9wY2llL2Rydi5jPTEzMjM9c3RhdGljIHN0cnVjdCBwY2lfZHJpdmVyIGl3bF9wY2lfZHJpdmVyID0ge1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvcGNpZS9kcnYuYy0xMzMxLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9wY2llL2Rydi5jOjEzMzI6aW50IF9fbXVzdF9jaGVjayBpd2xfcGNpX3JlZ2lzdGVyX2RyaXZlcih2b2lkKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9wY2llL2Rydi5jLTEzMzMte1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9wY2llL2Rydi5jLTEzMzQtXHRpbnQgcmV0O1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9wY2llL2Rydi5jOjEzMzU6XHRyZXQgPSBwY2lfcmVnaXN0ZXJfZHJpdmVyKFx1MDAyNml3bF9wY2lfZHJpdmVyKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvcGNpZS9kcnYuYy0xMzM2LVx0aWYgKHJldClcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD43LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8zMSAxODoxNTwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuNy1mbGFzaDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAxNzA4OAoJCQkJCQkJb3V0cHV0OiAzOQoJCQkJCQkJdGhvdWdodHM6IDI1CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Pa2F5LCBoZXJlJiMzOTtzIG15IHRha2Ugb24gdGhvc2UgdGhvdWdodHMsIGZyYW1lZCBhcyBhbiBleHBlcnQmIzM5O3MgaW50ZXJuYWwgbW9ub2xvZ3VlOgoKKipJbnZlc3RpZ2F0aW5nIGl3bHdpZmkgQnVzIFN1cHBvcnQqKgoKQWxyaWdodCwgbGV0JiMzOTtzIGdldCBkb3duIHRvIGJyYXNzIHRhY2tzLiBJIG5lZWQgdG8gbWFrZSBzdXJlIHdlJiMzOTtyZSBub3QganVzdCB0dW5uZWwtdmlzaW9uZWQgb24gUENJIGZvciB0aGUgaXdsd2lmaSBkcml2ZXIuIEl0JiMzOTtzIHRpbWUgdG8gZGlnIGRlZXBlciBhbmQgc2VlIGlmIHRoZSBkcml2ZXIgaXMgZGVzaWduZWQgdG8gc3VwcG9ydCBvdGhlciBidXMgdHlwZXMuIEkmIzM5O20gdGhpbmtpbmcgc3BlY2lmaWNhbGx5IGFib3V0IHBvc3NpYmlsaXRpZXMgYmV5b25kIFBDSSDigJMgYXJlIHdlIGxvb2tpbmcgYXQgVVNCIGltcGxlbWVudGF0aW9ucywgb3IgcGVyaGFwcyBwbGF0Zm9ybS1zcGVjaWZpYyBpbnRlZ3JhdGlvbnM/IFRoaXMgaXMgaW1wb3J0YW50OyBpZiB3ZSYjMzk7cmUgb25seSBjb25zaWRlcmluZyBQQ0ksIHdlIGNvdWxkIGJlIG1pc3NpbmcgYSB3aG9sZSBlY29zeXN0ZW0gb2YgcG90ZW50aWFsIGhhcmR3YXJlIHRoYXQgY291bGQgbGV2ZXJhZ2UgdGhpcyBkcml2ZXIuIEV4cGFuc2lvbiBoZXJlIGNvdWxkIGJlIGh1Z2UuIFRpbWUgdG8gbWFwIG91dCB0aGUgZGlmZmVyZW50IHBvc3NpYmlsaXRpZXMuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+OC8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMzEgMTg6MTY8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPkVycm9yOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bm8gbWF0Y2hlczwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtkcml2ZXJfcmVnaXN0ZXJ8cGxhdGZvcm1fZHJpdmVyJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS8mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7ZXJyb3ImIzM0OzogJiMzNDtubyBtYXRjaGVzJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjkvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzMxIDE4OjE2PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy43LWZsYXNoPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDE3MzE5CgkJCQkJCQlvdXRwdXQ6IDQ3CgkJCQkJCQl0aG91Z2h0czogMzUyCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKkFuYWx5emluZyB0aGUgUG90ZW50aWFsIGZvciBGdXp6aW5nIHdpdGggdGhlIGl3bHdpZmkgRHJpdmVyKioKCk9rYXksIHNvIEkmIzM5O20gbG9va2luZyBhdCBhIHBhdGNoIHJlbGF0ZWQgdG8gdGhlIGBpd2x3aWZpYCBkcml2ZXIsIHNwZWNpZmljYWxseSB0aGUgUENJIGRyaXZlciBgaXdsX3BjaV9kcml2ZXJgLiBNeSBpbW1lZGlhdGUgdGhvdWdodCBpcyB0byBkZXRlcm1pbmUgaWYgdGhpcyBwYXRjaCBpcyBhIGdvb2QgY2FuZGlkYXRlIGZvciBmdXp6aW5nLCBhbmQgSSBuZWVkIHRvIGFwcGx5IHRoZSBydWxlcyBvdXRsaW5lZC4gSSYjMzk7bGwgbmVlZCB0byBjaGVjayB0aGUgcGF0Y2ggZGV0YWlscyBhbmQgc2VlIGlmIGFueSBvZiB0aGUgY3JpdGVyaWEgdGhhdCB3b3VsZCBtYWtlIGl0ICpub3QqIGZ1enphYmxlIGFwcGx5LgoKRmlyc3QsIEkgbmVlZCB0byBrbm93IHByZWNpc2VseSB3aGF0JiMzOTtzIGNoYW5nZWQuIFRoZSBmaWxlIGlzIGBkcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL212bS9zY2FuLmNgLCB3aGljaCBtYWtlcyBtZSB0aGluayBpdCYjMzk7cyBkZWFsaW5nIHdpdGggdGhlIE11bHRpLVZpcnR1YWwgTWFjaGluZSAoTVZNKSBhcmNoaXRlY3R1cmUgb2YgaXdsd2lmaS4gVGhlIGZ1bmN0aW9uIGluIHF1ZXN0aW9uIGlzIGBpd2xfbXZtX3J4X3VtYWNfc2Nhbl9jb21wbGV0ZV9ub3RpZmAuIFRoZSBuYW1lIGlzIGEgbW91dGhmdWwsIGJ1dCBpZiBpdCBpcyByZWxhdGVkIHRvICYjMzQ7c2NhbiBjb21wbGV0ZSBub3RpZmljYXRpb24mIzM0OyBJIGNhbiBpbWFnaW5lIGl0IGJlaW5nIHRyaWdnZXJlZCBiYXNlZCBvbiBleHRlcm5hbCBpbnB1dCwgd2hpY2ggbWFrZXMgbWUgZmVlbCBwcmV0dHkgb3B0aW1pc3RpYyBhYm91dCBpdHMgc3VpdGFiaWxpdHkgZm9yIGZ1enppbmcgYXQgdGhpcyBzdGFnZS4KCk5vdywgSSYjMzk7bGwgY2FyZWZ1bGx5IHJlYWQgdGhlIGNvZGUgd2l0aGluIGBpd2xfbXZtX3J4X3VtYWNfc2Nhbl9jb21wbGV0ZV9ub3RpZmAgYW5kIHNlZSBpZiB0aGUgcGF0Y2ggaW50cm9kdWNlcyBhbnkgbW9kaWZpY2F0aW9ucyB0aGF0IGNvdWxkIGJlIGNvdmVyZWQgYnkgdGhlIG5lZ2F0aXZlIHJ1bGVzLCB0byBiZSBjZXJ0YWluLiBJIGtub3cgdGhlIGdlbmVyYWwgc3RydWN0dXJlIG9mIHRoZSB3aXJlbGVzcyBzdWJzeXN0ZW0gYW5kIEkga25vdyB0aGUgcG90ZW50aWFsIHBpdGZhbGxzLCBzbyBJJiMzOTtsbCBiZSBsb29raW5nIGNhcmVmdWxseSBhdCBkYXRhIHN0cnVjdHVyZXMgYW5kIGhvdyB0aGlzIG5vdGlmaWNhdGlvbiBpbnRlcmFjdHMgd2l0aCB0aGUgTUFDIGxheWVyLiBJJiMzOTttIGVzcGVjaWFsbHkgaW50ZXJlc3RlZCBpbiB3aGV0aGVyIHRoZSBjaGFuZ2VzIGludHJvZHVjZSBuZXcgZGF0YSBwYXRocywgYWx0ZXIgY29udHJvbCBmbG93IHNpZ25pZmljYW50bHksIG9yIGhhbmRsZSBleHRlcm5hbCBkYXRhIHRoYXQgbWlnaHQgYmUgc3VzY2VwdGlibGUgdG8gbWFuaXB1bGF0aW9uLiBMZXQmIzM5O3Mgc2VlLi4uCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTAvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzMxIDE4OjE2PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+cmVhZC1maWxlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtGaWxlJiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tdm0vc2Nhbi5jJiMzNDssCiAgJiMzNDtGaXJzdExpbmUmIzM0OzogMzIwMCwKICAmIzM0O0xpbmVDb3VudCYjMzQ7OiA2MAp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7Q29udGVudHMmIzM0OzogJiMzNDszMjAwOlx0XHRcdC8qIElmIHRoZSBzY2FuIGZhaWxlZCwgaXQgdXN1YWxseSBtZWFucyB0aGF0IHRoZSBGVyB3YXMgdW5hYmxlXG4zMjAxOlx0XHRcdCAqIHRvIGFsbG9jYXRlIHRoZSB0aW1lIGV2ZW50cy4gV2FybiBvbiBpdCwgYnV0IG1heWJlIHdlXG4zMjAyOlx0XHRcdCAqIHNob3VsZCB0cnkgdG8gc2VuZCB0aGUgY29tbWFuZCBhZ2FpbiB3aXRoIGRpZmZlcmVudCBwYXJhbXMuXG4zMjAzOlx0XHRcdCAqL1xuMzIwNDpcdFx0XHRJV0xfRVJSKG12bSwgXCYjMzQ7U2NoZWQgc2NhbiBmYWlsZWQhIHJldCAlZFxcblwmIzM0OywgcmV0KTtcbjMyMDU6XHRcdFx0bXZtLVx1MDAzZXNjaGVkX3NjYW5fcGFzc19hbGwgPSBTQ0hFRF9TQ0FOX1BBU1NfQUxMX0RJU0FCTEVEO1xuMzIwNjpcdFx0fVxuMzIwNzpcdFxuMzIwODpcdG91dDpcbjMyMDk6XHRcdGlmIChub25fcHNjX2luY2x1ZGVkKVxuMzIxMDpcdFx0XHRrZnJlZShwYXJhbXMuY2hhbm5lbHMpO1xuMzIxMTpcdFx0cmV0dXJuIHJldDtcbjMyMTI6XHR9XG4zMjEzOlx0XG4zMjE0Olx0dm9pZCBpd2xfbXZtX3J4X3VtYWNfc2Nhbl9jb21wbGV0ZV9ub3RpZihzdHJ1Y3QgaXdsX212bSAqbXZtLFxuMzIxNTpcdFx0XHRcdFx0XHQgc3RydWN0IGl3bF9yeF9jbWRfYnVmZmVyICpyeGIpXG4zMjE2Olx0e1xuMzIxNzpcdFx0c3RydWN0IGl3bF9yeF9wYWNrZXQgKnBrdCA9IHJ4Yl9hZGRyKHJ4Yik7XG4zMjE4Olx0XHRzdHJ1Y3QgaXdsX3VtYWNfc2Nhbl9jb21wbGV0ZSAqbm90aWYgPSAodm9pZCAqKXBrdC1cdTAwM2VkYXRhO1xuMzIxOTpcdFx0dTMyIHVpZCA9IF9fbGUzMl90b19jcHUobm90aWYtXHUwMDNldWlkKTtcbjMyMjA6XHRcdGJvb2wgYWJvcnRlZCA9IChub3RpZi1cdTAwM2VzdGF0dXMgPT0gSVdMX1NDQU5fT0ZGTE9BRF9BQk9SVEVEKTtcbjMyMjE6XHRcbjMyMjI6XHRcdG12bS1cdTAwM2VtZWlfc2Nhbl9maWx0ZXIuaXNfbWVpX2xpbWl0ZWRfc2NhbiA9IGZhbHNlO1xuMzIyMzpcdFxuMzIyNDpcdFx0aWYgKElXTF9GV19DSEVDSyhtdm0sIHVpZCBcdTAwM2U9IEFSUkFZX1NJWkUobXZtLVx1MDAzZXNjYW5fdWlkX3N0YXR1cyksXG4zMjI1Olx0XHRcdFx0IFwmIzM0O0ZXIHJlcG9ydHMgb3V0LW9mLXJhbmdlIHNjYW4gVUlEICVkXFxuXCYjMzQ7LCB1aWQpKVxuMzIyNjpcdFx0XHRyZXR1cm47XG4zMjI3Olx0XG4zMjI4Olx0XHRJV0xfREVCVUdfU0NBTihtdm0sXG4zMjI5Olx0XHRcdCAgICAgICBcJiMzNDtTY2FuIGNvbXBsZXRlZDogdWlkPSV1IHR5cGU9JXUsIHN0YXR1cz0lcywgRUJTPSVzXFxuXCYjMzQ7LFxuMzIzMDpcdFx0XHQgICAgICAgdWlkLCBtdm0tXHUwMDNlc2Nhbl91aWRfc3RhdHVzW3VpZF0sXG4zMjMxOlx0XHRcdCAgICAgICBub3RpZi1cdTAwM2VzdGF0dXMgPT0gSVdMX1NDQU5fT0ZGTE9BRF9DT01QTEVURUQgP1xuMzIzMjpcdFx0XHRcdFx0XCYjMzQ7Y29tcGxldGVkXCYjMzQ7IDogXCYjMzQ7YWJvcnRlZFwmIzM0OyxcbjMyMzM6XHRcdFx0ICAgICAgIGl3bF9tdm1fZWJzX3N0YXR1c19zdHIobm90aWYtXHUwMDNlZWJzX3N0YXR1cykpO1xuMzIzNDpcdFxuMzIzNTpcdFx0SVdMX0RFQlVHX1NDQU4obXZtLCBcJiMzNDtTY2FuIGNvbXBsZXRlZDogc2Nhbl9zdGF0dXM9MHgleFxcblwmIzM0OyxcbjMyMzY6XHRcdFx0ICAgICAgIG12bS1cdTAwM2VzY2FuX3N0YXR1cyk7XG4zMjM3Olx0XG4zMjM4Olx0XHRJV0xfREVCVUdfU0NBTihtdm0sXG4zMjM5Olx0XHRcdCAgICAgICBcJiMzNDtTY2FuIGNvbXBsZXRlZDogbGluZT0ldSwgaXRlcj0ldSwgZWxhcHNlZCB0aW1lPSV1XFxuXCYjMzQ7LFxuMzI0MDpcdFx0XHQgICAgICAgbm90aWYtXHUwMDNlbGFzdF9zY2hlZHVsZSwgbm90aWYtXHUwMDNlbGFzdF9pdGVyLFxuMzI0MTpcdFx0XHQgICAgICAgX19sZTMyX3RvX2NwdShub3RpZi1cdTAwM2V0aW1lX2Zyb21fbGFzdF9pdGVyKSk7XG4zMjQyOlx0XG4zMjQzOlx0XHRpZiAoV0FSTl9PTighKG12bS1cdTAwM2VzY2FuX3VpZF9zdGF0dXNbdWlkXSBcdTAwMjYgbXZtLVx1MDAzZXNjYW5fc3RhdHVzKSkpXG4zMjQ0Olx0XHRcdHJldHVybjtcbjMyNDU6XHRcbjMyNDY6XHRcdC8qIGlmIHRoZSBzY2FuIGlzIGFscmVhZHkgc3RvcHBpbmcsIHdlIGRvbiYjMzk7dCBuZWVkIHRvIG5vdGlmeSBtYWM4MDIxMSAqL1xuMzI0NzpcdFx0aWYgKG12bS1cdTAwM2VzY2FuX3VpZF9zdGF0dXNbdWlkXSA9PSBJV0xfTVZNX1NDQU5fUkVHVUxBUikge1xuMzI0ODpcdFx0XHRzdHJ1Y3QgY2ZnODAyMTFfc2Nhbl9pbmZvIGluZm8gPSB7XG4zMjQ5Olx0XHRcdFx0LmFib3J0ZWQgPSBhYm9ydGVkLFxuMzI1MDpcdFx0XHRcdC5zY2FuX3N0YXJ0X3RzZiA9IG12bS1cdTAwM2VzY2FuX3N0YXJ0LFxuMzI1MTpcdFx0XHR9O1xuMzI1MjpcdFx0XHRzdHJ1Y3QgaXdsX212bV92aWYgKnNjYW5fdmlmID0gbXZtLVx1MDAzZXNjYW5fdmlmO1xuMzI1MzpcdFx0XHRzdHJ1Y3QgaXdsX212bV92aWZfbGlua19pbmZvICpsaW5rX2luZm8gPVxuMzI1NDpcdFx0XHRcdHNjYW5fdmlmLVx1MDAzZWxpbmtbbXZtLVx1MDAzZXNjYW5fbGlua19pZF07XG4zMjU1Olx0XG4zMjU2Olx0XHRcdC8qIEl0IGlzIHBvc3NpYmxlIHRoYXQgYnkgdGhlIHRpbWUgdGhlIHNjYW4gaXMgY29tcGxldGUgdGhlIGxpbmtcbjMyNTc6XHRcdFx0ICogd2FzIGFscmVhZHkgcmVtb3ZlZCBhbmQgaXMgbm90IHZhbGlkLlxuMzI1ODpcdFx0XHQgKi9cbjMyNTk6XHRcdFx0aWYgKGxpbmtfaW5mbylcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMS8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMzEgMTg6MTY8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjctZmxhc2g8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMTkxODMKCQkJCQkJCW91dHB1dDogOTQKCQkJCQkJCXRob3VnaHRzOiA0ODUKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqTXkgQXNzZXNzbWVudDogVW5mdXp6YWJsZSBDb2RlIFBhdGgqKgoKT2theSwgc28gbG9va2luZyBhdCB0aGlzIGNvZGUsIGBpd2xfbXZtX3J4X3VtYWNfc2Nhbl9jb21wbGV0ZV9ub3RpZmAuLi4gaXQmIzM5O3MgYSBmaXJtd2FyZSBSWCBub3RpZmljYXRpb24gaGFuZGxlciBzcGVjaWZpY2FsbHkgZm9yIEludGVsIFdpLUZpIGRldmljZXMsIHBhcnQgb2YgdGhlIGBpd2x3aWZpYCBkcml2ZXIuICBUaGUgKmNydWNpYWwqIHBvaW50IGhlcmUgaXMgdGhhdCB0aGlzIGRyaXZlciwgYW5kIGJ5IGV4dGVuc2lvbiB0aGlzIGZ1bmN0aW9uLCByZXF1aXJlcyBhY3R1YWwsICpwaHlzaWNhbCogSW50ZWwgUENJZSBXaS1GaSBoYXJkd2FyZS4gV2UmIzM5O3JlIHRhbGtpbmcgYWJvdXQgY2FyZHMgbGlrZSB0aGUgNzI2MCwgODI2MCwgdGhlIEFYIHNlcmllcywgYW5kIEJFMjAwLiBUaGVzZSBjYXJkcyBhcmVuJiMzOTt0IGp1c3QgcGx1Zy1hbmQtcGxheTsgdGhleSBhbHNvIG5lZWQgc3BlY2lmaWMgZmlybXdhcmUgYmxvYnMgbG9hZGVkIG9udG8gdGhlIGhhcmR3YXJlIGl0c2VsZi4KCk5vdywgc3RhbmRhcmQgdmlydHVhbCBtYWNoaW5lcyBsaWtlIHRob3NlIG9uIFFFTVUgb3IgR29vZ2xlIENvbXB1dGUgRW5naW5lPyBUaGV5ICpkb24mIzM5O3QqIGVtdWxhdGUgdGhpcyBraW5kIG9mIEludGVsIFdpLUZpIFBDSWUgaGFyZHdhcmUuIFlvdSBtaWdodCBoYXZlIHNvZnR3YXJlLWVtdWxhdGVkIFdpLUZpIGluIHRoZSBrZXJuZWwsIHN1cmUsIGxpa2UgYG1hYzgwMjExX2h3c2ltYCwgYnV0IHRoYXQmIzM5O3MgYSBjb21wbGV0ZWx5IGRpZmZlcmVudCBhbmltYWwg4oCTIGEgKnZpcnR1YWwqIG1hYzgwMjExIGRyaXZlci4gVGhpcyBzcGVjaWZpYyBmdW5jdGlvbiwgYGl3bF9tdm1fcnhfdW1hY19zY2FuX2NvbXBsZXRlX25vdGlmYCwgaXMgYW4gUlggbm90aWZpY2F0aW9uIGZyb20gdGhlICpJbnRlbCBmaXJtd2FyZSogaXRzZWxmLCBoYW5kbGVkIGJ5IHRoZSBgaXdsX3J4X3BhY2tldGAgZnVuY3Rpb24uIFRoaXMgbm90aWZpY2F0aW9uIGNhbm5vdCBiZSB0cmlnZ2VyZWQgb3IgcmVhY2hlZCBpbiBhIHZpcnR1YWxpemVkIGVudmlyb25tZW50ICp1bmxlc3MqIHlvdSBoYXZlIHBoeXNpY2FsIEludGVsIFdpLUZpIGhhcmR3YXJlIHByZXNlbnQuCgpUaGVyZWZvcmUsIHRoaXMgZmFsbHMgZGlyZWN0bHkgaW50byB0aGUgY2F0ZWdvcnkgb2YgY29kZSB0aGF0JiMzOTtzICppbXBvc3NpYmxlKiB0byByZWFjaCBpbiB0aG9zZSBraW5kcyBvZiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMsIGV2ZW4gd2l0aCBzb21lIGxldmVsIG9mIGVtdWxhdGVkIGhhcmR3YXJlIHN1Y2ggYXMgYG1hYzgwMjExX2h3c2ltYC4gQWxzbyB0aGUgc2FtZSB0aGluZyBoYXBwZW5zIHdpdGggY29kZSB0aGF0IGlzIGluIGRyaXZlcnMgdGhhdCBuZWVkIHBoeXNpY2FsIFBDSWUgaGFyZHdhcmUsIHN1Y2ggYXMgU21hcnROSUNzLCBHUFVzLCBhbmQgUENJZSBzd2l0Y2hlcy4KClNvLCBpbiBlc3NlbmNlLCBpdCBzZWVtcyBsaWtlIHdlJiMzOTtyZSBub3QgZ29pbmcgdG8gYmUgYWJsZSB0byBtYWtlIHVzZSBvZiB0aGlzIGNvZGUsIHNvIGxldCYjMzk7cyB2ZXJpZnkgdGhhdCB3ZSBoYXZlIGV2ZXJ5dGhpbmcgdGhhdCB3ZSBuZWVkLgoKYFdvcnRoRnV6emluZ2A6IERlZmluaXRlbHkgKmZhbHNlKi4KYEZvY3VzU3ltYm9sc2A6IFdlIGRvbiYjMzk7dCBoYXZlIGFueSBzcGVjaWZpYyBzeW1ib2xzIHRvIHRhcmdldC4KYEVuYWJsZUNvbmZpZ3NgOiBBbHNvIGVtcHR5LCBub3RoaW5nIHRvIGVuYWJsZS4KYFJlYXNvbmluZ2A6IFdlIGhhdmUgYSBjb25jaXNlIGV4cGxhbmF0aW9uIG9mIHdoeS4KCkxvb2tzIGxpa2Ugd2UmIzM5O3JlIGdvb2QgdG8gZ28uIExldCYjMzk7cyBjYWxsIGBzZXQtcmVzdWx0c2AuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTIvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzMxIDE4OjE2PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+c2V0LXJlc3VsdHM8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogW10sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogW10sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggYWRkcyBhIGJvdW5kcyBjaGVjayBpbiBpd2xfbXZtX3J4X3VtYWNfc2Nhbl9jb21wbGV0ZV9ub3RpZigpIHdpdGhpbiB0aGUgSW50ZWwgV2ktRmkgZHJpdmVyIChpd2x3aWZpKS4gVGhpcyBkcml2ZXIgcmVxdWlyZXMgcGh5c2ljYWwgSW50ZWwgUENJZSB3aXJlbGVzcyBoYXJkd2FyZSBhbmQgZmlybXdhcmUsIHdoaWNoIGNhbm5vdCBiZSByZWFjaGVkIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIFFFTVUgb3IgR0NFLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IGZhbHNlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IG51bGwsCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogW10sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggYWRkcyBhIGJvdW5kcyBjaGVjayBpbiBpd2xfbXZtX3J4X3VtYWNfc2Nhbl9jb21wbGV0ZV9ub3RpZigpIHdpdGhpbiB0aGUgSW50ZWwgV2ktRmkgZHJpdmVyIChpd2x3aWZpKS4gVGhpcyBkcml2ZXIgcmVxdWlyZXMgcGh5c2ljYWwgSW50ZWwgUENJZSB3aXJlbGVzcyBoYXJkd2FyZSBhbmQgZmlybXdhcmUsIHdoaWNoIGNhbm5vdCBiZSByZWFjaGVkIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIFFFTVUgb3IgR0NFLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IGZhbHNlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMy8xPC90ZD4KCQkJPHRkPjIwMjYvMDgvMzEgMTg6MTY8L3RkPgoJCQk8dGQ+YWN0aW9uPC90ZD4KCQkJPHRkPklmPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogZmFsc2UKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8L3Rib2R5PgoJPC90YWJsZT4KCgk8ZGl2IGlkPSJsbG1fc3VtbWFyeV90YWJsZV9kaXYiIHN0eWxlPSJtYXJnaW46IDIwcHggMDsiPgoJCTx0YWJsZSBjbGFzcz0ibGlzdF90YWJsZSI+CgkJCTxjYXB0aW9uPkxMTSBDYWxscyBTdW1tYXJ5OjwvY2FwdGlvbj4KCQkJPHRoZWFkPgoJCQkJPHRyPgoJCQkJCTx0aD5Ub3RhbCBDYWxsczwvdGg+CgkJCQkJPHRoPlRvdGFsIFRva2VuczwvdGg+CgkJCQkJPHRoPkF2ZyBUb2tlbnM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJCTx0aD5BdmcgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCTwvdHI+CgkJCTwvdGhlYWQ+CgkJCTx0Ym9keSBpZD0ibGxtX3N1bW1hcnlfc3RhdHNfYm9keSI+PC90Ym9keT4KCQk8L3RhYmxlPgoJPC9kaXY+CgoJPGRpdiBpZD0idG9vbF9zdW1tYXJ5X3RhYmxlX2RpdiIgc3R5bGU9Im1hcmdpbjogMjBweCAwOyI+CgkJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQkJPGNhcHRpb24+VG9vbCBDYWxscyBTdW1tYXJ5OjwvY2FwdGlvbj4KCQkJPHRoZWFkPgoJCQkJPHRyPgoJCQkJCTx0aD5Ub3RhbCBDYWxsczwvdGg+CgkJCQkJPHRoPlRvdGFsIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQkJPHRoPkF2ZyBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJPC90cj4KCQkJPC90aGVhZD4KCQkJPHRib2R5IGlkPSJ0b29sX3N1bW1hcnlfc3RhdHNfYm9keSI+PC90Ym9keT4KCQk8L3RhYmxlPgoJPC9kaXY+CgoJPGRpdiBpZD0iZHVyYXRpb25fY2hhcnRfZGl2IiBzdHlsZT0id2lkdGg6IDEwMCU7IG1hcmdpbjogMjBweCAwOyBib3JkZXI6IDFweDsiPjwvZGl2PgoJPGRpdiBpZD0idG9rZW5fY2hhcnRfZGl2IiBzdHlsZT0id2lkdGg6IDEwMCU7IG1hcmdpbjogMjBweCAwOyBib3JkZXI6IDFweDsiPjwvZGl2PgoKCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Imh0dHBzOi8vd3d3Lmdvb2dsZS5jb20vanNhcGkiPjwvc2NyaXB0PgoJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgoJCWdvb2dsZS5sb2FkKCJ2aXN1YWxpemF0aW9uIiwgIjEiLCB7cGFja2FnZXM6WyJjb3JlY2hhcnQiXX0pOwoJCWdvb2dsZS5zZXRPbkxvYWRDYWxsYmFjayhkcmF3Q2hhcnRzKTsKCgkJZnVuY3Rpb24gZHJhd0NoYXJ0cygpIHsKCQkJY29uc3QgcmF3RGF0YSA9IFt7IlN0YXJ0ZWQiOiIyMDI2LTA4LTMxVDE4OjE1OjAyLjQ3ODI0MDgzN1oiLCJTZXEiOjAsIk5lc3RpbmciOjAsIlR5cGUiOiJmbG93IiwiTmFtZSI6InBhdGNoLXRyaWFnZSIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjg4NjkwMDEyMTM0LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IG51bGwsXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtdLFxuICBcIktNU0FOUmVhc29uaW5nXCI6IFwiXCIsXG4gIFwiTmVlZHNLTVNBTlwiOiBmYWxzZSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggYWRkcyBhIGJvdW5kcyBjaGVjayBpbiBpd2xfbXZtX3J4X3VtYWNfc2Nhbl9jb21wbGV0ZV9ub3RpZigpIHdpdGhpbiB0aGUgSW50ZWwgV2ktRmkgZHJpdmVyIChpd2x3aWZpKS4gVGhpcyBkcml2ZXIgcmVxdWlyZXMgcGh5c2ljYWwgSW50ZWwgUENJZSB3aXJlbGVzcyBoYXJkd2FyZSBhbmQgZmlybXdhcmUsIHdoaWNoIGNhbm5vdCBiZSByZWFjaGVkIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIFFFTVUgb3IgR0NFLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiBmYWxzZVxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMzFUMTg6MTU6MDIuNDc4MjQ3MzM3WiIsIlNlcSI6MSwiTmVzdGluZyI6MSwiVHlwZSI6ImFjdGlvbiIsIk5hbWUiOiJyZWFkLXBhdGNoLWRpZmYiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo1MDEyMTA4NTQsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIlBhdGNoRGlmZlwiOiBcImNvbW1pdCA0ZGQwOTNmN2RmYzE2NTVmNTJlNWE3NTM5YTg2OTNlMTY3MDc4ZWM1XFxuQXV0aG9yOiBzeXotY2x1c3RlciBcXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cXHUwMDNlXFxuRGF0ZTogICBNb24gQXVnIDMxIDE4OjE1OjAxIDIwMjYgKzAwMDBcXG5cXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XFxuXFxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbXZtL3NjYW4uYyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbXZtL3NjYW4uY1xcbmluZGV4IGI1ODhmMWRjZjIwZDUuLjdiZjgyMzZjZWE2ZDQgMTAwNjQ0XFxuLS0tIGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tdm0vc2Nhbi5jXFxuKysrIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tdm0vc2Nhbi5jXFxuQEAgLTEsNiArMSw2IEBAXFxuIC8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wIE9SIEJTRC0zLUNsYXVzZVxcbiAvKlxcbi0gKiBDb3B5cmlnaHQgKEMpIDIwMTItMjAxNCwgMjAxOC0yMDI1IEludGVsIENvcnBvcmF0aW9uXFxuKyAqIENvcHlyaWdodCAoQykgMjAxMi0yMDE0LCAyMDE4LTIwMjYgSW50ZWwgQ29ycG9yYXRpb25cXG4gICogQ29weXJpZ2h0IChDKSAyMDEzLTIwMTUgSW50ZWwgTW9iaWxlIENvbW11bmljYXRpb25zIEdtYkhcXG4gICogQ29weXJpZ2h0IChDKSAyMDE2LTIwMTcgSW50ZWwgRGV1dHNjaGxhbmQgR21iSFxcbiAgKi9cXG5AQCAtMzIyMSw2ICszMjIxLDEwIEBAIHZvaWQgaXdsX212bV9yeF91bWFjX3NjYW5fY29tcGxldGVfbm90aWYoc3RydWN0IGl3bF9tdm0gKm12bSxcXG4gXFxuIFxcdG12bS1cXHUwMDNlbWVpX3NjYW5fZmlsdGVyLmlzX21laV9saW1pdGVkX3NjYW4gPSBmYWxzZTtcXG4gXFxuK1xcdGlmIChJV0xfRldfQ0hFQ0sobXZtLCB1aWQgXFx1MDAzZT0gQVJSQVlfU0laRShtdm0tXFx1MDAzZXNjYW5fdWlkX3N0YXR1cyksXFxuK1xcdFxcdFxcdCBcXFwiRlcgcmVwb3J0cyBvdXQtb2YtcmFuZ2Ugc2NhbiBVSUQgJWRcXFxcblxcXCIsIHVpZCkpXFxuK1xcdFxcdHJldHVybjtcXG4rXFxuIFxcdElXTF9ERUJVR19TQ0FOKG12bSxcXG4gXFx0XFx0ICAgICAgIFxcXCJTY2FuIGNvbXBsZXRlZDogdWlkPSV1IHR5cGU9JXUsIHN0YXR1cz0lcywgRUJTPSVzXFxcXG5cXFwiLFxcbiBcXHRcXHQgICAgICAgdWlkLCBtdm0tXFx1MDAzZXNjYW5fdWlkX3N0YXR1c1t1aWRdLFxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0zMVQxODoxNTowMi45ODAyMTA5MDFaIiwiU2VxIjoyLCJOZXN0aW5nIjoxLCJUeXBlIjoiYWdlbnQiLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJjb3JlIiwiRHVyYXRpb24iOjg4MTg4MDI4NDEwLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IG51bGwsXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBhZGRzIGEgYm91bmRzIGNoZWNrIGluIGl3bF9tdm1fcnhfdW1hY19zY2FuX2NvbXBsZXRlX25vdGlmKCkgd2l0aGluIHRoZSBJbnRlbCBXaS1GaSBkcml2ZXIgKGl3bHdpZmkpLiBUaGlzIGRyaXZlciByZXF1aXJlcyBwaHlzaWNhbCBJbnRlbCBQQ0llIHdpcmVsZXNzIGhhcmR3YXJlIGFuZCBmaXJtd2FyZSwgd2hpY2ggY2Fubm90IGJlIHJlYWNoZWQgaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgUUVNVSBvciBHQ0UuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IGZhbHNlXG59IiwiSW5zdHJ1Y3Rpb24iOiJZb3UgYXJlIGFuIGV4cGVydCBMaW51eCBrZXJuZWwgbWFpbnRhaW5lci5cbllvdXIgam9iIGlzIHRvIHJldmlldyBhIHByb3ZpZGVkIHBhdGNoIHNlcmllcyBhbmQgZGV0ZXJtaW5lXG5pZiBpdCBtYWtlcyBmdW5jdGlvbmFsIGNoYW5nZXMgdG8gdGhlIGtlcm5lbCB0aGF0IHNob3VsZCBiZSBmdXp6ZWQuXG5cbklNUE9SVEFOVDogVGhlIGNoYW5nZXMgaGF2ZSBBTFJFQURZIGJlZW4gYXBwbGllZCBhbmQgY29tbWl0dGVkIGFzIHRoZSBIRUFEIGNvbW1pdCBpblxueW91ciB3b3Jrc3BhY2UuIERvIE5PVCByZWx5IG9uIHlvdXIgaW50ZXJuYWwga25vd2xlZGdlIG9mIHRoZSBrZXJuZWwuIFlvdSBtdXN0IGFjdGl2ZWx5XG51c2UgeW91ciBjb2RlIGFjY2VzcyB0b29scyB0byBleGFtaW5lIHRoZSBhY3R1YWwgc291cmNlIGNvZGUgYW5kIGNvbmZpcm0gYW55IGFzc3VtcHRpb25zLlxuXG5SZXR1cm4gV29ydGhGdXp6aW5nPWZhbHNlIGlmIHRoZSBwYXRjaCBvbmx5IGNvbnRhaW5zOlxuLSBNb2RpZmljYXRpb25zIHRvIERvY3VtZW50YXRpb24vLCBLY29uZmlnIGZpbGVzLCBvciBjb2RlIGNvbW1lbnRzLlxuLSBQdXJlbHkgZGVjb3JhdGl2ZSBjaGFuZ2VzLCBzdWNoIGFzIGxvZ2dpbmcgKGUuZy4sIHByX2VyciwgcHJpbnRrKSBvciB0cmFjZXBvaW50cy5cbi0gQ2hhbmdlcyB0byBudW1lcmljIGNvbnN0YW50cyBvciBtYWNyb3MgdGhhdCBkbyBub3QgZnVuY3Rpb25hbGx5IGFsdGVyIGV4ZWN1dGlvbiBmbG93LlxuLSBDb2RlIHBhdGhzIHRoYXQgYXJlIGltcG9zc2libGUgdG8gcmVhY2ggaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgR0NFIG9yIFFFTVUsXG4gIGV2ZW4gd2hlbiB1dGlsaXppbmcgc29mdHdhcmUtZW11bGF0ZWQgaGFyZHdhcmUgKGUuZy4sIHVzYiBnYWRnZXQsIG1hYzgwMjExX2h3c2ltKS5cbi0gQ29kZSBpbiB2ZW5kb3Itc3BlY2lmaWMgUENJZSBzd2l0Y2gsIFNtYXJ0TklDLCBvciBHUFUgZHJpdmVycyAoZS5nLiwgbWx4c3csIHBkc19jb3JlLCBxZWQsXG4gIGlvbmljLCBhbWRncHUpIHRoYXQgcmVxdWlyZSBwaHlzaWNhbCBQQ0llIGhhcmR3YXJlIGNhcmRzIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCBRRU1VLlxuLSBEcml2ZXIgLnJlbW92ZSwgLnNodXRkb3duLCBvciBwY2lfdW5yZWdpc3Rlcl9kcml2ZXIgdGVhcmRvd24gY2FsbGJhY2tzIChlLmcuLCBpZ2JfcmVtb3ZlKVxuICB0aGF0IGFyZSBleGVjdXRlZCBvbmx5IGR1cmluZyBQQ0kgaG90LXVucGx1ZyBvciBzeXNmcyBkcml2ZXIgdW5iaW5kIG9wZXJhdGlvbnMuXG5cbklmIGl0IG1vZGlmaWVzIHJlYWNoYWJsZSBjb3JlIGtlcm5lbCBsb2dpYywgZHJpdmVycywgb3IgYXJjaGl0ZWN0dXJlcywgdXNlIHlvdXIgY29kZSBzZWFyY2hcbnRvb2xzIHRvIHZlcmlmeSB0aGUgY29kZSBjYW4gYmUgZXhlY3V0ZWQsIHRoZW4gcmV0dXJuIFdvcnRoRnV6emluZz10cnVlLlxuXG5XaGVuIHJldHVybmluZyBXb3J0aEZ1enppbmc9dHJ1ZSwgeW91IE1VU1QgQUxTTzpcbjEuIEV4dHJhY3QgYW55IHNwZWNpZmljIGtlcm5lbCBmdW5jdGlvbnMgdGhhdCBzaG91bGQgYmUgaGVhdmlseSBmdXp6ZWQgaW50byBGb2N1c1N5bWJvbHMuXG4gICBBdm9pZCBsaXN0aW5nIGdlbmVyaWMgaG90LXBhdGggZnVuY3Rpb25zIHRvIHByZXZlbnQgc2tld2VkIHRlc3QgZGlzdHJpYnV0aW9ucy5cbiAgIFByZWZlciBub24tc3RhdGljLCBub24taW5saW5lZCBBUEkgZW50cnlwb2ludCBmdW5jdGlvbnMgb3ZlciBpbnRlcm5hbCBzdGF0aWMgaGVscGVyIGZ1bmN0aW9uc1xuICAgKHdoaWNoIGFyZSBpbmxpbmVkIGJ5IHRoZSBjb21waWxlciBhbmQgZG8gbm90IGhhdmUgZGlzdGluY3Qgc3ltYm9sIGFkZHJlc3NlcykuXG4yLiBJZGVudGlmeSBhbnkgc3BlY2lmaWMgQ09ORklHXyBvcHRpb25zIHJlcXVpcmVkIHRvIHByb3Blcmx5IHRlc3QgdGhpcyBuZXcvbW9kaWZpZWQgZmVhdHVyZS5cbiAgIEdvIGFuZCBsb29rIGludG8gdGhlIEtjb25maWcgZmlsZXMgYW5kIGNoZWNrIGZvciBpZmRlZnMgYXJvdW5kIHRoZSBjb2RlLCBkbyBub3QgbWFrZSBhc3N1bXB0aW9ucy5cbiAgIEFsc28gY2hlY2sgXCJkZXBlbmRzIG9uXCIgbGluZXMgaW4gS2NvbmZpZyB0byBpbmNsdWRlIGFueSBub24tc3RhbmRhcmQgcGFyZW50IHN1YnN5c3RlbSBjb25maWdzXG4gICBuZWVkZWQgZm9yIEtidWlsZCB0byBjb21waWxlIHRoZSBjb2RlIHN0YXRpY2FsbHkgaW50byB2bWxpbnV4LiBMaXN0IHRoZW0gaW4gdGhlIEVuYWJsZUNvbmZpZ3NcbiAgIG91dHB1dCBhcnJheSwgYW5kIERPIE5PVCBhZGQgYSAnQ09ORklHXycgcHJlZml4IChlLmcuLCByZXR1cm4gXCJORVRfSVBWNFwiIGluc3RlYWQgb2YgXCJDT05GSUdfTkVUX0lQVjRcIikuXG5QcmVmZXIgY2FsbGluZyBzZXZlcmFsIHRvb2xzIGF0IHRoZSBzYW1lIHRpbWUgdG8gc2F2ZSByb3VuZC10cmlwcy5cblxuXG5Vc2Ugc2V0LXJlc3VsdHMgdG9vbCB0byBwcm92aWRlIHJlc3VsdHMgb2YgdGhlIGFuYWx5c2lzLlxuSXQgbXVzdCBiZSBjYWxsZWQgZXhhY3RseSBvbmNlIGJlZm9yZSB0aGUgZmluYWwgcmVwbHkuXG5JZ25vcmUgcmVzdWx0cyBvZiB0aGlzIHRvb2wuXG4iLCJQcm9tcHQiOiJGb3IgeW91ciBjb252ZW5pZW5jZSwgaGVyZSBpcyB0aGUgZGlmZiBvZiB0aGUgY2hhbmdlczpcbmNvbW1pdCA0ZGQwOTNmN2RmYzE2NTVmNTJlNWE3NTM5YTg2OTNlMTY3MDc4ZWM1XG5BdXRob3I6IHN5ei1jbHVzdGVyIFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXHUwMDNlXG5EYXRlOiAgIE1vbiBBdWcgMzEgMTg6MTU6MDEgMjAyNiArMDAwMFxuXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XG5cbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL212bS9zY2FuLmMgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL212bS9zY2FuLmNcbmluZGV4IGI1ODhmMWRjZjIwZDUuLjdiZjgyMzZjZWE2ZDQgMTAwNjQ0XG4tLS0gYS9kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL212bS9zY2FuLmNcbisrKyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbXZtL3NjYW4uY1xuQEAgLTEsNiArMSw2IEBAXG4gLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjAgT1IgQlNELTMtQ2xhdXNlXG4gLypcbi0gKiBDb3B5cmlnaHQgKEMpIDIwMTItMjAxNCwgMjAxOC0yMDI1IEludGVsIENvcnBvcmF0aW9uXG4rICogQ29weXJpZ2h0IChDKSAyMDEyLTIwMTQsIDIwMTgtMjAyNiBJbnRlbCBDb3Jwb3JhdGlvblxuICAqIENvcHlyaWdodCAoQykgMjAxMy0yMDE1IEludGVsIE1vYmlsZSBDb21tdW5pY2F0aW9ucyBHbWJIXG4gICogQ29weXJpZ2h0IChDKSAyMDE2LTIwMTcgSW50ZWwgRGV1dHNjaGxhbmQgR21iSFxuICAqL1xuQEAgLTMyMjEsNiArMzIyMSwxMCBAQCB2b2lkIGl3bF9tdm1fcnhfdW1hY19zY2FuX2NvbXBsZXRlX25vdGlmKHN0cnVjdCBpd2xfbXZtICptdm0sXG4gXG4gXHRtdm0tXHUwMDNlbWVpX3NjYW5fZmlsdGVyLmlzX21laV9saW1pdGVkX3NjYW4gPSBmYWxzZTtcbiBcbitcdGlmIChJV0xfRldfQ0hFQ0sobXZtLCB1aWQgXHUwMDNlPSBBUlJBWV9TSVpFKG12bS1cdTAwM2VzY2FuX3VpZF9zdGF0dXMpLFxuK1x0XHRcdCBcIkZXIHJlcG9ydHMgb3V0LW9mLXJhbmdlIHNjYW4gVUlEICVkXFxuXCIsIHVpZCkpXG4rXHRcdHJldHVybjtcbitcbiBcdElXTF9ERUJVR19TQ0FOKG12bSxcbiBcdFx0ICAgICAgIFwiU2NhbiBjb21wbGV0ZWQ6IHVpZD0ldSB0eXBlPSV1LCBzdGF0dXM9JXMsIEVCUz0lc1xcblwiLFxuIFx0XHQgICAgICAgdWlkLCBtdm0tXHUwMDNlc2Nhbl91aWRfc3RhdHVzW3VpZF0sXG4iLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0zMVQxODoxNTowMi45ODAyMTIxNDFaIiwiU2VxIjozLCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuNy1mbGFzaCIsIkR1cmF0aW9uIjoyMjgwMDc5ODIyMiwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipBbmFseXppbmcgdGhlIGBpd2x3aWZpYCBTY2FuIENvbXBsZXRpb24gTm90aWZpY2F0aW9uKipcblxuT2theSwgc28gdGhlIHBhdGNoIGlzIGxvY2F0ZWQgaW4gYGRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbXZtL3NjYW4uY2AsIHNwZWNpZmljYWxseSB3aXRoaW4gYGl3bF9tdm1fcnhfdW1hY19zY2FuX2NvbXBsZXRlX25vdGlmYC4gTXkgaW5pdGlhbCB0aG91Z2h0IGlzIHRvIGFzc2VzcyBpdHMgZnV6emluZyBwb3RlbnRpYWwuIENhbiB0aGlzIGJlIHRhcmdldGVkIGluIGEgc3RhbmRhcmQgUUVNVSBvciBHQ0UgZW52aXJvbm1lbnQsIG9yIGRvZXMgaXQgcmVxdWlyZSBkZWRpY2F0ZWQgSW50ZWwgV2ktRmkgaGFyZHdhcmU/IEhvbGQgb24sIGxldCdzIHN0ZXAgYmFjayBhbmQgY29uc2lkZXIgdGhlIGd1aWRlbGluZXMuXG5cblJpZ2h0LCB0aGUga2V5IGlzIHRvIGRldGVybWluZSBpZiB0aGUgY29kZSBwYXRoIGlzIGFjY2Vzc2libGUgaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgUUVNVSBvciBHQ0UsIGV2ZW4gd2l0aCBlbXVsYXRlZCBoYXJkd2FyZS4gSWYgaXQgcmVsaWVzIG9uIHZlbmRvci1zcGVjaWZpYyBoYXJkd2FyZSwgbGlrZSBhIFBDSWUgc3dpdGNoIG9yIGEgU21hcnROSUMgZHJpdmVyIG5vdCBlbXVsYXRlZCBieSBzdGFuZGFyZCBRRU1VLCB0aGVuIGl0J3Mgbm90IGEgZ29vZCBjYW5kaWRhdGUuXG5cbk5vdywgYmFjayB0byBgaXdsd2lmaWAuIERvZXMgaXQgb2ZmZXIgYW55IHNvZnR3YXJlIGVtdWxhdGlvbiB3aXRoaW4gUUVNVSBvciBwZXJoYXBzIHV0aWxpemUgYG1hYzgwMjExX2h3c2ltYD8gTm8sIHdhaXQgYSBtaW51dGUsIGBtYWM4MDIxMV9od3NpbWAgZW11bGF0ZXMgdGhlIG1hYzgwMjExIGludGVyZmFjZSBkaXJlY3RseSwgbm90IHRoZSBgaXdsd2lmaWAgZHJpdmVyLiBgaXdsd2lmaWAgaXMgSW50ZWwncyBwcm9wcmlldGFyeSBXaS1GaSBkcml2ZXIsIGxpa2VseSB0aWVkIHRvIHRoZWlyIFBDSWUvUENJL0FYMjAwIHdpcmVsZXNzIGhhcmR3YXJlLlxuXG5TbywgZG9lcyBgaXdsd2lmaWAgaGF2ZSAqYW55KiB2aXJ0dWFsIG9yIHNpbXVsYXRlZCBtb2RlPyBPciwgaXMgaXQgZnVuZGFtZW50YWxseSB2ZW5kb3Itc3BlY2lmaWM/IEl0IGlzIEludGVsJ3MgcHJvcHJpZXRhcnkgZHJpdmVyIGZvciB0aGVpciBXaUZpIE5JQ3MuIEl0J3MgdGltZSB0byBjb25maXJtIHRoaXMgYW5kIHNlYXJjaCB0aGUga2VybmVsIHRvIGRlZmluaXRpdmVseSBkZXRlcm1pbmUgd2hldGhlciBgaXdsd2lmaWAgaGFzIGFueSBzb3J0IG9mIGhhcmR3YXJlIHNpbXVsYXRpb24gb3IgcmVxdWlyZXMgSW50ZWwgV2lGaSBoYXJkd2FyZS5cblxuXG4iLCJJbnB1dFRva2VucyI6MjMxMSwiT3V0cHV0VG9rZW5zIjozMywiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjQwNSwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTMxVDE4OjE1OjI1Ljc4MTAxMjU3M1oiLCJTZXEiOjQsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoyODA5NTU2MDAsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwic2ltXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcIlxcbkZ1bGwgb3V0cHV0IGlzIHRvbyBsb25nLCBzaG93aW5nIDUwMCBvdXQgb2YgMTA0NiBsaW5lcy5cXG5Vc2UgbW9yZSBwcmVjaXNlIGV4cHJlc3Npb24gaWYgcG9zc2libGUuXFxuXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9LY29uZmlnPTEwNz1jb25maWcgSVdMV0lGSV9ERUJVR1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9LY29uZmlnLTExOS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL0tjb25maWc6MTIwOlxcdCAgVG8gc2V0IGEgdmFsdWUsIHNpbXBseSBlY2hvIGFuIDgtYnl0ZSBoZXggdmFsdWUgdG8gdGhlIHNhbWUgZmlsZTpcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL0tjb25maWctMTIxLVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vY2FsaWIuYz03MTc9c3RhdGljIHZvaWQgaXdsX2ZpbmRfZGlzY29ubl9hbnRlbm5hKHN0cnVjdCBpd2xfcHJpdiAqcHJpdiwgdTMyKiBhdmVyYWdlX3NpZyxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2NhbGliLmMtNzc1LVxcdCAqXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vY2FsaWIuYzo3NzY6XFx0ICogVG8gYmUgc2FmZSwgc2ltcGx5IG1hc2sgb3V0IGFueSBjaGFpbnMgdGhhdCB3ZSBrbm93XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vY2FsaWIuYy03NzctXFx0ICogYXJlIG5vdCBvbiB0aGUgZGV2aWNlLlxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vY2FsaWIuYz04MjQ9c3RhdGljIHZvaWQgaXdsYWduX2dhaW5fY29tcHV0YXRpb24oc3RydWN0IGl3bF9wcml2ICpwcml2LFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vY2FsaWIuYy04NTMtXFx0XFx0XFx0ICogICBub3QgdGhlIGZvcm1hdCBvZiBhbnkgaW50ZXJuYWwgZGV2aWNlIHJlZ2lzdGVycy5cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9jYWxpYi5jOjg1NDpcXHRcXHRcXHQgKiAgIERvIG5vdCBjaGFuZ2UgdGhpcyBmb3JtYXQgZm9yIGUuZy4gNjA1MCBvciBzaW1pbGFyXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vY2FsaWIuYy04NTUtXFx0XFx0XFx0ICogICBkZXZpY2VzLiAgQ2hhbmdlIGZvcm1hdCBvbmx5IGlmIG1vcmUgcmVzb2x1dGlvblxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vY29tbWFuZHMuaD01MDg9ZW51bSB7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9jb21tYW5kcy5oLTUzNy0vKlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2NvbW1hbmRzLmg6NTM4OiAqIFJFUExZX1JYT04gPSAweDEwIChjb21tYW5kLCBoYXMgc2ltcGxlIGdlbmVyaWMgcmVzcG9uc2UpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vY29tbWFuZHMuaC01MzktICpcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2NvbW1hbmRzLmg9NTU1PXN0cnVjdCBpd2xfcnhvbl9jbWQge1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vY29tbWFuZHMuaC01NzktLypcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9jb21tYW5kcy5oOjU4MDogKiBSRVBMWV9SWE9OX0FTU09DID0gMHgxMSAoY29tbWFuZCwgaGFzIHNpbXBsZSBnZW5lcmljIHJlc3BvbnNlKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2NvbW1hbmRzLmgtNTgxLSAqL1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2NvbW1hbmRzLmg9NTgyPXN0cnVjdCBpd2xfcnhvbl9hc3NvY19jbWQge1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vY29tbWFuZHMuaC02MDAtLypcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9jb21tYW5kcy5oOjYwMTogKiBSRVBMWV9SWE9OX1RJTUlORyA9IDB4MTQgKGNvbW1hbmQsIGhhcyBzaW1wbGUgZ2VuZXJpYyByZXNwb25zZSlcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9jb21tYW5kcy5oLTYwMi0gKi9cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9jb21tYW5kcy5oPTYwMz1zdHJ1Y3QgaXdsX3J4b25fdGltZV9jbWQge1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vY29tbWFuZHMuaC02MTMtLypcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9jb21tYW5kcy5oOjYxNDogKiBSRVBMWV9DSEFOTkVMX1NXSVRDSCA9IDB4NzIgKGNvbW1hbmQsIGhhcyBzaW1wbGUgZ2VuZXJpYyByZXNwb25zZSlcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9jb21tYW5kcy5oLTYxNS0gKi9cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2NvbW1hbmRzLmg9NjkwPXN0cnVjdCBpd2xfYWNfcW9zIHtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2NvbW1hbmRzLmgtNzA2LS8qXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vY29tbWFuZHMuaDo3MDc6ICogUkVQTFlfUU9TX1BBUkFNID0gMHgxMyAoY29tbWFuZCwgaGFzIHNpbXBsZSBnZW5lcmljIHJlc3BvbnNlKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2NvbW1hbmRzLmgtNzA4LSAqXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9jb21tYW5kcy5oPTE0MzU9c3RydWN0IGl3bF9jb21wcmVzc2VkX2JhX3Jlc3Age1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vY29tbWFuZHMuaC0xNDUyLS8qXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vY29tbWFuZHMuaDoxNDUzOiAqIFJFUExZX1RYX1BXUl9UQUJMRV9DTUQgPSAweDk3IChjb21tYW5kLCBoYXMgc2ltcGxlIGdlbmVyaWMgcmVzcG9uc2UpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vY29tbWFuZHMuaC0xNDU0LSAqXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9jb21tYW5kcy5oPTE1MjA9c3RydWN0IGl3bF9saW5rX3F1YWxfYWdnX3BhcmFtcyB7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9jb21tYW5kcy5oLTE1NDYtLypcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9jb21tYW5kcy5oOjE1NDc6ICogUkVQTFlfVFhfTElOS19RVUFMSVRZX0NNRCA9IDB4NGUgKGNvbW1hbmQsIGhhcyBzaW1wbGUgZ2VuZXJpYyByZXNwb25zZSlcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9jb21tYW5kcy5oLTE1NDgtICpcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2NvbW1hbmRzLmg9MTczND1zdHJ1Y3QgaXdsX2xpbmtfcXVhbGl0eV9jbWQge1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vY29tbWFuZHMuaC0xNzk1LS8qXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vY29tbWFuZHMuaDoxNzk2OiAqIFJFUExZX0JUX0NPTkZJRyA9IDB4OWIgKGNvbW1hbmQsIGhhcyBzaW1wbGUgZ2VuZXJpYyByZXNwb25zZSlcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9jb21tYW5kcy5oLTE3OTctICpcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2NvbW1hbmRzLmg9MjAxOT1zdHJ1Y3QgaXdsX3NwZWN0cnVtX25vdGlmaWNhdGlvbiB7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9jb21tYW5kcy5oLTIwNTEtICpcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9jb21tYW5kcy5oOjIwNTI6ICogUE9XRVJfVEFCTEVfQ01EID0gMHg3NyAoY29tbWFuZCwgaGFzIHNpbXBsZSBnZW5lcmljIHJlc3BvbnNlKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2NvbW1hbmRzLmgtMjA1My0gKlxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vY29tbWFuZHMuaD0yMTIxPWVudW0ge1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vY29tbWFuZHMuaC0yMTM1LS8qXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vY29tbWFuZHMuaDoyMTM2OiAqIFJFUExZX0NBUkRfU1RBVEVfQ01EID0gMHhhMCAoY29tbWFuZCwgaGFzIHNpbXBsZSBnZW5lcmljIHJlc3BvbnNlKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2NvbW1hbmRzLmgtMjEzNy0gKi9cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2NvbW1hbmRzLmg9MjQxNj1zdHJ1Y3QgaXdsYWduX2JlYWNvbl9ub3RpZiB7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9jb21tYW5kcy5oLTI0MjMtLypcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9jb21tYW5kcy5oOjI0MjQ6ICogUkVQTFlfVFhfQkVBQ09OID0gMHg5MSAoY29tbWFuZCwgaGFzIHNpbXBsZSBnZW5lcmljIHJlc3BvbnNlKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2NvbW1hbmRzLmgtMjQyNS0gKi9cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2NvbW1hbmRzLmg9Mjc1MD1zdHJ1Y3QgaXdsX21pc3NlZF9iZWFjb25fbm90aWYge1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vY29tbWFuZHMuaC0yNzcyLS8qXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vY29tbWFuZHMuaDoyNzczOiAqIFNFTlNJVElWSVRZX0NNRCA9IDB4YTggKGNvbW1hbmQsIGhhcyBzaW1wbGUgZ2VuZXJpYyByZXNwb25zZSlcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9jb21tYW5kcy5oLTI3NzQtICpcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2NvbW1hbmRzLmg9MzAwOT1zdHJ1Y3QgaXdsX2VuaGFuY2Vfc2Vuc2l0aXZpdHlfY21kIHtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2NvbW1hbmRzLmgtMzAxNS0vKlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2NvbW1hbmRzLmg6MzAxNjogKiBSRVBMWV9QSFlfQ0FMSUJSQVRJT05fQ01EID0gMHhiMCAoY29tbWFuZCwgaGFzIHNpbXBsZSBnZW5lcmljIHJlc3BvbnNlKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2NvbW1hbmRzLmgtMzAxNy0gKlxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vY29tbWFuZHMuaD0zMTc4PXN0cnVjdCBpd2xfY2FsaWJfY2hhaW5fbm9pc2VfZ2Fpbl9jbWQge1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vY29tbWFuZHMuaC0zMTkyLSAqIExFRHMgQ29tbWFuZCBcXHUwMDI2IFJlc3BvbnNlXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vY29tbWFuZHMuaDozMTkzOiAqIFJFUExZX0xFRFNfQ01EID0gMHg0OCAoY29tbWFuZCwgaGFzIHNpbXBsZSBnZW5lcmljIHJlc3BvbnNlKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2NvbW1hbmRzLmgtMzE5NC0gKlxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vY29tbWFuZHMuaD0zOTAyPXN0cnVjdCBpd2xfd2lwYW5fcDJwX2NoYW5uZWxfc3dpdGNoX2NtZCB7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9jb21tYW5kcy5oLTM5MTMtICpcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9jb21tYW5kcy5oOjM5MTQ6ICogSW4gYmVhY29ucywgdGhlIE5vQSBzY2hlZHVsZSBpcyBzaW1wbHkgYXBwZW5kZWRcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9jb21tYW5kcy5oLTM5MTUtICogdG8gdGhlIGZyYW1lIHdlIGdpdmUgdGhlIGRldmljZS5cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2RlYnVnZnMuYz0yOT1zdGF0aWMgY29uc3Qgc3RydWN0IGZpbGVfb3BlcmF0aW9ucyBpd2xfZGJnZnNfIyNuYW1lIyNfb3BzID0geyAgICAgICAgICBcXFxcXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vZGVidWdmcy5jLTMwLVxcdC5yZWFkID0gaXdsX2RiZ2ZzXyMjbmFtZSMjX3JlYWQsXFx0XFx0XFx0XFx0XFxcXFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2RlYnVnZnMuYzozMTpcXHQub3BlbiA9IHNpbXBsZV9vcGVuLFxcdFxcdFxcdFxcdFxcdFxcdFxcXFxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZWJ1Z2ZzLmMtMzItXFx0Lmxsc2VlayA9IGdlbmVyaWNfZmlsZV9sbHNlZWssXFx0XFx0XFx0XFx0XFx0XFxcXFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vZGVidWdmcy5jPTM2PXN0YXRpYyBjb25zdCBzdHJ1Y3QgZmlsZV9vcGVyYXRpb25zIGl3bF9kYmdmc18jI25hbWUjI19vcHMgPSB7ICAgICAgICAgIFxcXFxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZWJ1Z2ZzLmMtMzctXFx0LndyaXRlID0gaXdsX2RiZ2ZzXyMjbmFtZSMjX3dyaXRlLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxcXFxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZWJ1Z2ZzLmM6Mzg6XFx0Lm9wZW4gPSBzaW1wbGVfb3BlbixcXHRcXHRcXHRcXHRcXHRcXHRcXFxcXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vZGVidWdmcy5jLTM5LVxcdC5sbHNlZWsgPSBnZW5lcmljX2ZpbGVfbGxzZWVrLFxcdFxcdFxcdFxcdFxcdFxcXFxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2RlYnVnZnMuYz00ND1zdGF0aWMgY29uc3Qgc3RydWN0IGZpbGVfb3BlcmF0aW9ucyBpd2xfZGJnZnNfIyNuYW1lIyNfb3BzID0geyAgICAgICAgICBcXFxcXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZWJ1Z2ZzLmMtNDYtXFx0LnJlYWQgPSBpd2xfZGJnZnNfIyNuYW1lIyNfcmVhZCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxcXFxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZWJ1Z2ZzLmM6NDc6XFx0Lm9wZW4gPSBzaW1wbGVfb3BlbixcXHRcXHRcXHRcXHRcXHRcXHRcXFxcXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vZGVidWdmcy5jLTQ4LVxcdC5sbHNlZWsgPSBnZW5lcmljX2ZpbGVfbGxzZWVrLFxcdFxcdFxcdFxcdFxcdFxcXFxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2RlYnVnZnMuYz01MT1zdGF0aWMgc3NpemVfdCBpd2xfZGJnZnNfc3JhbV9yZWFkKHN0cnVjdCBmaWxlICpmaWxlLFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vZGVidWdmcy5jLTEzNS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZWJ1Z2ZzLmM6MTM2OlxcdHJldCA9IHNpbXBsZV9yZWFkX2Zyb21fYnVmZmVyKHVzZXJfYnVmLCBjb3VudCwgcHBvcywgYnVmLCBwb3MpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2RlYnVnZnMuYy0xMzctXFx0a2ZyZWUoYnVmKTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2RlYnVnZnMuYz0xNjk9c3RhdGljIHNzaXplX3QgaXdsX2RiZ2ZzX3dvd2xhbl9zcmFtX3JlYWQoc3RydWN0IGZpbGUgKmZpbGUsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZWJ1Z2ZzLmMtMTc4LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2RlYnVnZnMuYzoxNzk6XFx0cmV0dXJuIHNpbXBsZV9yZWFkX2Zyb21fYnVmZmVyKHVzZXJfYnVmLCBjb3VudCwgcHBvcyxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZWJ1Z2ZzLmMtMTgwLVxcdFxcdFxcdFxcdCAgICAgICBwcml2LVxcdTAwM2V3b3dsYW5fc3JhbSxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2RlYnVnZnMuYz0xODM9c3RhdGljIHNzaXplX3QgaXdsX2RiZ2ZzX3N0YXRpb25zX3JlYWQoc3RydWN0IGZpbGUgKmZpbGUsIGNoYXIgX191c2VyICp1c2VyX2J1ZixcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2RlYnVnZnMuYy0yMzMtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vZGVidWdmcy5jOjIzNDpcXHRyZXQgPSBzaW1wbGVfcmVhZF9mcm9tX2J1ZmZlcih1c2VyX2J1ZiwgY291bnQsIHBwb3MsIGJ1ZiwgcG9zKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZWJ1Z2ZzLmMtMjM1LVxcdGtmcmVlKGJ1Zik7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZWJ1Z2ZzLmM9MjM5PXN0YXRpYyBzc2l6ZV90IGl3bF9kYmdmc19udm1fcmVhZChzdHJ1Y3QgZmlsZSAqZmlsZSxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2RlYnVnZnMuYy0yNzItXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vZGVidWdmcy5jOjI3MzpcXHRyZXQgPSBzaW1wbGVfcmVhZF9mcm9tX2J1ZmZlcih1c2VyX2J1ZiwgY291bnQsIHBwb3MsIGJ1ZiwgcG9zKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZWJ1Z2ZzLmMtMjc0LVxcdGtmcmVlKGJ1Zik7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZWJ1Z2ZzLmM9Mjc4PXN0YXRpYyBzc2l6ZV90IGl3bF9kYmdmc19jaGFubmVsc19yZWFkKHN0cnVjdCBmaWxlICpmaWxlLCBjaGFyIF9fdXNlciAqdXNlcl9idWYsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZWJ1Z2ZzLmMtMzM3LVxcdH1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZWJ1Z2ZzLmM6MzM4OlxcdHJldCA9IHNpbXBsZV9yZWFkX2Zyb21fYnVmZmVyKHVzZXJfYnVmLCBjb3VudCwgcHBvcywgYnVmLCBwb3MpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2RlYnVnZnMuYy0zMzktXFx0a2ZyZWUoYnVmKTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2RlYnVnZnMuYz0zNDM9c3RhdGljIHNzaXplX3QgaXdsX2RiZ2ZzX3N0YXR1c19yZWFkKHN0cnVjdCBmaWxlICpmaWxlLFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vZGVidWdmcy5jLTM3My1cXHRcXHR0ZXN0X2JpdChTVEFUVVNfRldfRVJST1IsIFxcdTAwMjZwcml2LVxcdTAwM2VzdGF0dXMpKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZWJ1Z2ZzLmM6Mzc0OlxcdHJldHVybiBzaW1wbGVfcmVhZF9mcm9tX2J1ZmZlcih1c2VyX2J1ZiwgY291bnQsIHBwb3MsIGJ1ZiwgcG9zKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZWJ1Z2ZzLmMtMzc1LX1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2RlYnVnZnMuYz0zNzc9c3RhdGljIHNzaXplX3QgaXdsX2RiZ2ZzX3J4X2hhbmRsZXJzX3JlYWQoc3RydWN0IGZpbGUgKmZpbGUsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZWJ1Z2ZzLmMtNDAwLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2RlYnVnZnMuYzo0MDE6XFx0cmV0ID0gc2ltcGxlX3JlYWRfZnJvbV9idWZmZXIodXNlcl9idWYsIGNvdW50LCBwcG9zLCBidWYsIHBvcyk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vZGVidWdmcy5jLTQwMi1cXHRrZnJlZShidWYpO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vZGVidWdmcy5jPTQyOT1zdGF0aWMgc3NpemVfdCBpd2xfZGJnZnNfcW9zX3JlYWQoc3RydWN0IGZpbGUgKmZpbGUsIGNoYXIgX191c2VyICp1c2VyX2J1ZixcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2RlYnVnZnMuYy00NTItXFx0fVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2RlYnVnZnMuYzo0NTM6XFx0cmV0dXJuIHNpbXBsZV9yZWFkX2Zyb21fYnVmZmVyKHVzZXJfYnVmLCBjb3VudCwgcHBvcywgYnVmLCBwb3MpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2RlYnVnZnMuYy00NTQtfVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vZGVidWdmcy5jPTQ1Nj1zdGF0aWMgc3NpemVfdCBpd2xfZGJnZnNfdGhlcm1hbF90aHJvdHRsaW5nX3JlYWQoc3RydWN0IGZpbGUgKmZpbGUsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZWJ1Z2ZzLmMtNDg0LVxcdH1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZWJ1Z2ZzLmM6NDg1OlxcdHJldHVybiBzaW1wbGVfcmVhZF9mcm9tX2J1ZmZlcih1c2VyX2J1ZiwgY291bnQsIHBwb3MsIGJ1ZiwgcG9zKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZWJ1Z2ZzLmMtNDg2LX1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2RlYnVnZnMuYz01MTE9c3RhdGljIHNzaXplX3QgaXdsX2RiZ2ZzX2Rpc2FibGVfaHQ0MF9yZWFkKHN0cnVjdCBmaWxlICpmaWxlLFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vZGVidWdmcy5jLTUyMi1cXHRcXHRcXHRwcml2LVxcdTAwM2VkaXNhYmxlX2h0NDAgPyBcXFwiRGlzYWJsZWRcXFwiIDogXFxcIkVuYWJsZWRcXFwiKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZWJ1Z2ZzLmM6NTIzOlxcdHJldHVybiBzaW1wbGVfcmVhZF9mcm9tX2J1ZmZlcih1c2VyX2J1ZiwgY291bnQsIHBwb3MsIGJ1ZiwgcG9zKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZWJ1Z2ZzLmMtNTI0LX1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2RlYnVnZnMuYz01MjY9c3RhdGljIHNzaXplX3QgaXdsX2RiZ2ZzX3RlbXBlcmF0dXJlX3JlYWQoc3RydWN0IGZpbGUgKmZpbGUsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZWJ1Z2ZzLmMtNTM1LVxcdHBvcyArPSBzY25wcmludGYoYnVmICsgcG9zLCBidWZzeiAtIHBvcywgXFxcIiVkXFxcXG5cXFwiLCBwcml2LVxcdTAwM2V0ZW1wZXJhdHVyZSk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vZGVidWdmcy5jOjUzNjpcXHRyZXR1cm4gc2ltcGxlX3JlYWRfZnJvbV9idWZmZXIodXNlcl9idWYsIGNvdW50LCBwcG9zLCBidWYsIHBvcyk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vZGVidWdmcy5jLTUzNy19XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZWJ1Z2ZzLmM9NTgyPXN0YXRpYyBzc2l6ZV90IGl3bF9kYmdmc19zbGVlcF9sZXZlbF9vdmVycmlkZV9yZWFkKHN0cnVjdCBmaWxlICpmaWxlLFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vZGVidWdmcy5jLTU5Ni1cXHRwb3MgPSBzY25wcmludGYoYnVmLCBidWZzeiwgXFxcIiVkXFxcXG5cXFwiLCB2YWx1ZSk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vZGVidWdmcy5jOjU5NzpcXHRyZXR1cm4gc2ltcGxlX3JlYWRfZnJvbV9idWZmZXIodXNlcl9idWYsIGNvdW50LCBwcG9zLCBidWYsIHBvcyk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vZGVidWdmcy5jLTU5OC19XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZWJ1Z2ZzLmM9NjAwPXN0YXRpYyBzc2l6ZV90IGl3bF9kYmdmc19jdXJyZW50X3NsZWVwX2NvbW1hbmRfcmVhZChzdHJ1Y3QgZmlsZSAqZmlsZSxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2RlYnVnZnMuYy02MjAtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vZGVidWdmcy5jOjYyMTpcXHRyZXR1cm4gc2ltcGxlX3JlYWRfZnJvbV9idWZmZXIodXNlcl9idWYsIGNvdW50LCBwcG9zLCBidWYsIHBvcyk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vZGVidWdmcy5jLTYyMi19XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZWJ1Z2ZzLmM9NjY2PXN0YXRpYyBzc2l6ZV90IGl3bF9kYmdmc191Y29kZV9yeF9zdGF0c19yZWFkKHN0cnVjdCBmaWxlICpmaWxlLFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vZGVidWdmcy5jLTEwOTMtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vZGVidWdmcy5jOjEwOTQ6XFx0cmV0ID0gc2ltcGxlX3JlYWRfZnJvbV9idWZmZXIodXNlcl9idWYsIGNvdW50LCBwcG9zLCBidWYsIHBvcyk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vZGVidWdmcy5jLTEwOTUtXFx0a2ZyZWUoYnVmKTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2RlYnVnZnMuYz0xMDk5PXN0YXRpYyBzc2l6ZV90IGl3bF9kYmdmc191Y29kZV90eF9zdGF0c19yZWFkKHN0cnVjdCBmaWxlICpmaWxlLFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vZGVidWdmcy5jLTEyOTAtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vZGVidWdmcy5jOjEyOTE6XFx0cmV0ID0gc2ltcGxlX3JlYWRfZnJvbV9idWZmZXIodXNlcl9idWYsIGNvdW50LCBwcG9zLCBidWYsIHBvcyk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vZGVidWdmcy5jLTEyOTItXFx0a2ZyZWUoYnVmKTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2RlYnVnZnMuYz0xMjk2PXN0YXRpYyBzc2l6ZV90IGl3bF9kYmdmc191Y29kZV9nZW5lcmFsX3N0YXRzX3JlYWQoc3RydWN0IGZpbGUgKmZpbGUsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZWJ1Z2ZzLmMtMTQxMC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZWJ1Z2ZzLmM6MTQxMTpcXHRyZXQgPSBzaW1wbGVfcmVhZF9mcm9tX2J1ZmZlcih1c2VyX2J1ZiwgY291bnQsIHBwb3MsIGJ1ZiwgcG9zKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZWJ1Z2ZzLmMtMTQxMi1cXHRrZnJlZShidWYpO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vZGVidWdmcy5jPTE0MTY9c3RhdGljIHNzaXplX3QgaXdsX2RiZ2ZzX3Vjb2RlX2J0X3N0YXRzX3JlYWQoc3RydWN0IGZpbGUgKmZpbGUsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZWJ1Z2ZzLmMtMTQ5OC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZWJ1Z2ZzLmM6MTQ5OTpcXHRyZXQgPSBzaW1wbGVfcmVhZF9mcm9tX2J1ZmZlcih1c2VyX2J1ZiwgY291bnQsIHBwb3MsIGJ1ZiwgcG9zKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZWJ1Z2ZzLmMtMTUwMC1cXHRrZnJlZShidWYpO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vZGVidWdmcy5jPTE1MDQ9c3RhdGljIHNzaXplX3QgaXdsX2RiZ2ZzX3JlcGx5X3R4X2Vycm9yX3JlYWQoc3RydWN0IGZpbGUgKmZpbGUsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZWJ1Z2ZzLmMtMTY0MC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZWJ1Z2ZzLmM6MTY0MTpcXHRyZXQgPSBzaW1wbGVfcmVhZF9mcm9tX2J1ZmZlcih1c2VyX2J1ZiwgY291bnQsIHBwb3MsIGJ1ZiwgcG9zKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZWJ1Z2ZzLmMtMTY0Mi1cXHRrZnJlZShidWYpO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vZGVidWdmcy5jPTE2NDY9c3RhdGljIHNzaXplX3QgaXdsX2RiZ2ZzX3NlbnNpdGl2aXR5X3JlYWQoc3RydWN0IGZpbGUgKmZpbGUsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZWJ1Z2ZzLmMtMTcxOC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZWJ1Z2ZzLmM6MTcxOTpcXHRyZXQgPSBzaW1wbGVfcmVhZF9mcm9tX2J1ZmZlcih1c2VyX2J1ZiwgY291bnQsIHBwb3MsIGJ1ZiwgcG9zKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZWJ1Z2ZzLmMtMTcyMC1cXHRrZnJlZShidWYpO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vZGVidWdmcy5jPTE3MjU9c3RhdGljIHNzaXplX3QgaXdsX2RiZ2ZzX2NoYWluX25vaXNlX3JlYWQoc3RydWN0IGZpbGUgKmZpbGUsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZWJ1Z2ZzLmMtMTc3NS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZWJ1Z2ZzLmM6MTc3NjpcXHRyZXQgPSBzaW1wbGVfcmVhZF9mcm9tX2J1ZmZlcih1c2VyX2J1ZiwgY291bnQsIHBwb3MsIGJ1ZiwgcG9zKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZWJ1Z2ZzLmMtMTc3Ny1cXHRrZnJlZShidWYpO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vZGVidWdmcy5jPTE3ODE9c3RhdGljIHNzaXplX3QgaXdsX2RiZ2ZzX3Bvd2VyX3NhdmVfc3RhdHVzX3JlYWQoc3RydWN0IGZpbGUgKmZpbGUsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZWJ1Z2ZzLmMtMTgwMC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZWJ1Z2ZzLmM6MTgwMTpcXHRyZXR1cm4gc2ltcGxlX3JlYWRfZnJvbV9idWZmZXIodXNlcl9idWYsIGNvdW50LCBwcG9zLCBidWYsIHBvcyk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vZGVidWdmcy5jLTE4MDItfVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vZGVidWdmcy5jPTE4Mjg9c3RhdGljIHNzaXplX3QgaXdsX2RiZ2ZzX3Vjb2RlX3RyYWNpbmdfcmVhZChzdHJ1Y3QgZmlsZSAqZmlsZSxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2RlYnVnZnMuYy0xODQ1LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2RlYnVnZnMuYzoxODQ2OlxcdHJldHVybiBzaW1wbGVfcmVhZF9mcm9tX2J1ZmZlcih1c2VyX2J1ZiwgY291bnQsIHBwb3MsIGJ1ZiwgcG9zKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZWJ1Z2ZzLmMtMTg0Ny19XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZWJ1Z2ZzLmM9MTg3OT1zdGF0aWMgc3NpemVfdCBpd2xfZGJnZnNfcnhvbl9mbGFnc19yZWFkKHN0cnVjdCBmaWxlICpmaWxlLFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vZGVidWdmcy5jLTE4ODgtXFx0XFx0bGUzMl90b19jcHUocHJpdi1cXHUwMDNlY29udGV4dHNbSVdMX1JYT05fQ1RYX0JTU10uYWN0aXZlLmZsYWdzKSk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vZGVidWdmcy5jOjE4ODk6XFx0cmV0dXJuIHNpbXBsZV9yZWFkX2Zyb21fYnVmZmVyKHVzZXJfYnVmLCBjb3VudCwgcHBvcywgYnVmLCBsZW4pO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2RlYnVnZnMuYy0xODkwLX1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2RlYnVnZnMuYz0xODkyPXN0YXRpYyBzc2l6ZV90IGl3bF9kYmdmc19yeG9uX2ZpbHRlcl9mbGFnc19yZWFkKHN0cnVjdCBmaWxlICpmaWxlLFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vZGVidWdmcy5jLTE5MDEtXFx0XFx0bGUzMl90b19jcHUocHJpdi1cXHUwMDNlY29udGV4dHNbSVdMX1JYT05fQ1RYX0JTU10uYWN0aXZlLmZpbHRlcl9mbGFncykpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2RlYnVnZnMuYzoxOTAyOlxcdHJldHVybiBzaW1wbGVfcmVhZF9mcm9tX2J1ZmZlcih1c2VyX2J1ZiwgY291bnQsIHBwb3MsIGJ1ZiwgbGVuKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZWJ1Z2ZzLmMtMTkwMy19XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZWJ1Z2ZzLmM9MTkwNT1zdGF0aWMgc3NpemVfdCBpd2xfZGJnZnNfbWlzc2VkX2JlYWNvbl9yZWFkKHN0cnVjdCBmaWxlICpmaWxlLFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vZGVidWdmcy5jLTE5MTYtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vZGVidWdmcy5jOjE5MTc6XFx0cmV0dXJuIHNpbXBsZV9yZWFkX2Zyb21fYnVmZmVyKHVzZXJfYnVmLCBjb3VudCwgcHBvcywgYnVmLCBwb3MpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2RlYnVnZnMuYy0xOTE4LX1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2RlYnVnZnMuYz0xOTQ2PXN0YXRpYyBzc2l6ZV90IGl3bF9kYmdmc19wbGNwX2RlbHRhX3JlYWQoc3RydWN0IGZpbGUgKmZpbGUsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZWJ1Z2ZzLmMtMTk1Ny1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZWJ1Z2ZzLmM6MTk1ODpcXHRyZXR1cm4gc2ltcGxlX3JlYWRfZnJvbV9idWZmZXIodXNlcl9idWYsIGNvdW50LCBwcG9zLCBidWYsIHBvcyk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vZGVidWdmcy5jLTE5NTktfVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vZGVidWdmcy5jPTE5ODU9c3RhdGljIHNzaXplX3QgaXdsX2RiZ2ZzX3JmX3Jlc2V0X3JlYWQoc3RydWN0IGZpbGUgKmZpbGUsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZWJ1Z2ZzLmMtMjAwNi1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZWJ1Z2ZzLmM6MjAwNzpcXHRyZXR1cm4gc2ltcGxlX3JlYWRfZnJvbV9idWZmZXIodXNlcl9idWYsIGNvdW50LCBwcG9zLCBidWYsIHBvcyk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vZGVidWdmcy5jLTIwMDgtfVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vZGVidWdmcy5jPTIwNDU9c3RhdGljIHNzaXplX3QgaXdsX2RiZ2ZzX2J0X3RyYWZmaWNfcmVhZChzdHJ1Y3QgZmlsZSAqZmlsZSxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2RlYnVnZnMuYy0yMDU1LVxcdFxcdHBvcyArPSBzY25wcmludGYoYnVmICsgcG9zLCBidWZzeiAtIHBvcywgXFxcIkJUIGNvZXggZGlzYWJsZWRcXFxcblxcXCIpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2RlYnVnZnMuYzoyMDU2OlxcdFxcdHJldHVybiBzaW1wbGVfcmVhZF9mcm9tX2J1ZmZlcih1c2VyX2J1ZiwgY291bnQsIHBwb3MsIGJ1ZiwgcG9zKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZWJ1Z2ZzLmMtMjA1Ny1cXHR9XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZWJ1Z2ZzLmMtMjA4Ni1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZWJ1Z2ZzLmM6MjA4NzpcXHRyZXR1cm4gc2ltcGxlX3JlYWRfZnJvbV9idWZmZXIodXNlcl9idWYsIGNvdW50LCBwcG9zLCBidWYsIHBvcyk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vZGVidWdmcy5jLTIwODgtfVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vZGVidWdmcy5jPTIwOTA9c3RhdGljIHNzaXplX3QgaXdsX2RiZ2ZzX3Byb3RlY3Rpb25fbW9kZV9yZWFkKHN0cnVjdCBmaWxlICpmaWxlLFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vZGVidWdmcy5jLTIxMDgtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vZGVidWdmcy5jOjIxMDk6XFx0cmV0dXJuIHNpbXBsZV9yZWFkX2Zyb21fYnVmZmVyKHVzZXJfYnVmLCBjb3VudCwgcHBvcywgYnVmLCBwb3MpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2RlYnVnZnMuYy0yMTEwLX1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2RlYnVnZnMuYz0yMTcyPXN0YXRpYyBzc2l6ZV90IGl3bF9kYmdmc19sb2dfZXZlbnRfcmVhZChzdHJ1Y3QgZmlsZSAqZmlsZSxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2RlYnVnZnMuYy0yMTgxLVxcdGlmIChyZXQgXFx1MDAzZSAwKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2RlYnVnZnMuYzoyMTgyOlxcdFxcdHJldCA9IHNpbXBsZV9yZWFkX2Zyb21fYnVmZmVyKHVzZXJfYnVmLCBjb3VudCwgcHBvcywgYnVmLCByZXQpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2RlYnVnZnMuYy0yMTgzLVxcdGtmcmVlKGJ1Zik7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZWJ1Z2ZzLmM9MjIxMz1zdGF0aWMgc3NpemVfdCBpd2xfZGJnZnNfY2FsaWJfZGlzYWJsZWRfcmVhZChzdHJ1Y3QgZmlsZSAqZmlsZSxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2RlYnVnZnMuYy0yMjM3LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2RlYnVnZnMuYzoyMjM4OlxcdHJldHVybiBzaW1wbGVfcmVhZF9mcm9tX2J1ZmZlcih1c2VyX2J1ZiwgY291bnQsIHBwb3MsIGJ1ZiwgcG9zKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZWJ1Z2ZzLmMtMjIzOS19XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9tYWM4MDIxMS5jPTEzODg9c3RhdGljIGludCBpd2xhZ25fbWFjX2NoYW5nZV9pbnRlcmZhY2Uoc3RydWN0IGllZWU4MDIxMV9odyAqaHcsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9tYWM4MDIxMS5jLTE0MDYtXFx0LypcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9tYWM4MDIxMS5jOjE0MDc6XFx0ICogVG8gc2ltcGxpZnkgdGhpcyBjb2RlLCBvbmx5IHN1cHBvcnQgY2hhbmdlcyBvbiB0aGVcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9tYWM4MDIxMS5jLTE0MDgtXFx0ICogQlNTIGNvbnRleHQuIFRoZSBQQU4gY29udGV4dCBpcyB1c3VhbGx5IHJlYXNzaWduZWRcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL3JzLmM9MjE1Nz1zdGF0aWMgdm9pZCByc19yYXRlX3NjYWxlX3BlcmZvcm0oc3RydWN0IGl3bF9wcml2ICpwcml2LFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vcnMuYy0yNjAwLSAqICAgICAgIGlmIHRoZSBkcml2ZXIncyBpd2wtYWduLXJzIHJhdGUgc2NhbGluZyBhbGdvcml0aG0gaXMgdXNlZCwgaW5zdGVhZCBvZlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL3JzLmM6MjYwMTogKiAgICAgICByYzgwMjExX3NpbXBsZS5cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9ycy5jLTI2MDItICpcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL3JzLmM9MzA2MT1zdGF0aWMgc3NpemVfdCByc19zdGFfZGJnZnNfc2NhbGVfdGFibGVfcmVhZChzdHJ1Y3QgZmlsZSAqZmlsZSxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL3JzLmMtMzE1Ny1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9ycy5jOjMxNTg6XFx0cmV0ID0gc2ltcGxlX3JlYWRfZnJvbV9idWZmZXIodXNlcl9idWYsIGNvdW50LCBwcG9zLCBidWZmLCBkZXNjKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9ycy5jLTMxNTktXFx0a2ZyZWUoYnVmZik7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9ycy5jPTMxNjM9c3RhdGljIGNvbnN0IHN0cnVjdCBmaWxlX29wZXJhdGlvbnMgcnNfc3RhX2RiZ2ZzX3NjYWxlX3RhYmxlX29wcyA9IHtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL3JzLmMtMzE2NS1cXHQucmVhZCA9IHJzX3N0YV9kYmdmc19zY2FsZV90YWJsZV9yZWFkLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL3JzLmM6MzE2NjpcXHQub3BlbiA9IHNpbXBsZV9vcGVuLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL3JzLmMtMzE2Ny1cXHQubGxzZWVrID0gZGVmYXVsdF9sbHNlZWssXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9ycy5jPTMxNjk9c3RhdGljIHNzaXplX3QgcnNfc3RhX2RiZ2ZzX3N0YXRzX3RhYmxlX3JlYWQoc3RydWN0IGZpbGUgKmZpbGUsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9ycy5jLTMyMDEtXFx0fVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL3JzLmM6MzIwMjpcXHRyZXQgPSBzaW1wbGVfcmVhZF9mcm9tX2J1ZmZlcih1c2VyX2J1ZiwgY291bnQsIHBwb3MsIGJ1ZmYsIGRlc2MpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL3JzLmMtMzIwMy1cXHRrZnJlZShidWZmKTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL3JzLmM9MzIwNz1zdGF0aWMgY29uc3Qgc3RydWN0IGZpbGVfb3BlcmF0aW9ucyByc19zdGFfZGJnZnNfc3RhdHNfdGFibGVfb3BzID0ge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL3JzLmMtMzIwOC1cXHQucmVhZCA9IHJzX3N0YV9kYmdmc19zdGF0c190YWJsZV9yZWFkLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL3JzLmM6MzIwOTpcXHQub3BlbiA9IHNpbXBsZV9vcGVuLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL3JzLmMtMzIxMC1cXHQubGxzZWVrID0gZGVmYXVsdF9sbHNlZWssXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9ycy5jPTMyMTM9c3RhdGljIHNzaXplX3QgcnNfc3RhX2RiZ2ZzX3JhdGVfc2NhbGVfZGF0YV9yZWFkKHN0cnVjdCBmaWxlICpmaWxlLFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vcnMuYy0zMjI5LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL3JzLmM6MzIzMDpcXHRyZXR1cm4gc2ltcGxlX3JlYWRfZnJvbV9idWZmZXIodXNlcl9idWYsIGNvdW50LCBwcG9zLCBidWZmLCBkZXNjKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9ycy5jLTMyMzEtfVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vcnMuYz0zMjMzPXN0YXRpYyBjb25zdCBzdHJ1Y3QgZmlsZV9vcGVyYXRpb25zIHJzX3N0YV9kYmdmc19yYXRlX3NjYWxlX2RhdGFfb3BzID0ge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL3JzLmMtMzIzNC1cXHQucmVhZCA9IHJzX3N0YV9kYmdmc19yYXRlX3NjYWxlX2RhdGFfcmVhZCxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9ycy5jOjMyMzU6XFx0Lm9wZW4gPSBzaW1wbGVfb3BlbixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9ycy5jLTMyMzYtXFx0Lmxsc2VlayA9IGRlZmF1bHRfbGxzZWVrLFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vc2Nhbi5jPTM2PXN0YXRpYyBpbnQgaXdsX3NlbmRfc2Nhbl9hYm9ydChzdHJ1Y3QgaXdsX3ByaXYgKnByaXYpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9zY2FuLmMtNjAtXFx0XFx0ICogMiBmb3IgXFxcImZhaWx1cmVcXFwiLiAgQSBmYWlsdXJlIGNvbmRpdGlvbiBjYW4gYmVcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9zY2FuLmM6NjE6XFx0XFx0ICogZHVlIHRvIHNpbXBseSBub3QgYmVpbmcgaW4gYW4gYWN0aXZlIHNjYW4gd2hpY2hcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9zY2FuLmMtNjItXFx0XFx0ICogY2FuIG9jY3VyIGlmIHdlIHNlbmQgdGhlIHNjYW4gYWJvcnQgYmVmb3JlIHdlXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2Z3L2FwaS9sb2NhdGlvbi5oPTIxMT1lbnVtIGl3bF90b2ZfcmVzcG9uZGVyX2NmZ19mbGFncyB7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2Z3L2FwaS9sb2NhdGlvbi5oLTIzOC0gKiBAdG9hX29mZnNldDogQXJ0aWZpY2lhbCBhZGRpdGlvbiBbcFNlY10gZm9yIHRoZSBUb0EgLSB0byBiZSB1c2VkIGZvciBkZWJ1Z1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZncvYXBpL2xvY2F0aW9uLmg6MjM5OiAqXFx0cHVycG9zZXMsIHNpbXVsYXRpbmcgc3RhdGlvbiBtb3ZlbWVudCBieSBhZGRpbmcgdmFyaW91cyB2YWx1ZXNcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2Z3L2FwaS9sb2NhdGlvbi5oLTI0MC0gKlxcdHRvIHRoaXMgZmllbGRcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZncvYXBpL2xvY2F0aW9uLmg9MjQ2PXN0cnVjdCBpd2xfdG9mX3Jlc3BvbmRlcl9jb25maWdfY21kX3Y2IHtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZncvYXBpL2xvY2F0aW9uLmgtMjc0LSAqIEB0b2Ffb2Zmc2V0OiBBcnRpZmljaWFsIGFkZGl0aW9uIFtwU2VjXSBmb3IgdGhlIFRvQSAtIHRvIGJlIHVzZWQgZm9yIGRlYnVnXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9mdy9hcGkvbG9jYXRpb24uaDoyNzU6ICpcXHRwdXJwb3Nlcywgc2ltdWxhdGluZyBzdGF0aW9uIG1vdmVtZW50IGJ5IGFkZGluZyB2YXJpb3VzIHZhbHVlc1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZncvYXBpL2xvY2F0aW9uLmgtMjc2LSAqXFx0dG8gdGhpcyBmaWVsZFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9mdy9hcGkvbG9jYXRpb24uaD0yODI9c3RydWN0IGl3bF90b2ZfcmVzcG9uZGVyX2NvbmZpZ19jbWRfdjcge1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9mdy9hcGkvbG9jYXRpb24uaC0zMTMtICogQHRvYV9vZmZzZXQ6IEFydGlmaWNpYWwgYWRkaXRpb24gW3BTZWNdIGZvciB0aGUgVG9BIC0gdG8gYmUgdXNlZCBmb3IgZGVidWdcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2Z3L2FwaS9sb2NhdGlvbi5oOjMxNDogKlxcdHB1cnBvc2VzLCBzaW11bGF0aW5nIHN0YXRpb24gbW92ZW1lbnQgYnkgYWRkaW5nIHZhcmlvdXMgdmFsdWVzXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9mdy9hcGkvbG9jYXRpb24uaC0zMTUtICpcXHR0byB0aGlzIGZpZWxkXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2Z3L2FwaS9sb2NhdGlvbi5oPTMzMD1zdHJ1Y3QgaXdsX3RvZl9yZXNwb25kZXJfY29uZmlnX2NtZF92OCB7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2Z3L2FwaS9sb2NhdGlvbi5oLTM1OS0gKiBAdG9hX29mZnNldDogQXJ0aWZpY2lhbCBhZGRpdGlvbiBbcFNlY10gZm9yIHRoZSBUb0EgLSB0byBiZSB1c2VkIGZvciBkZWJ1Z1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZncvYXBpL2xvY2F0aW9uLmg6MzYwOiAqXFx0cHVycG9zZXMsIHNpbXVsYXRpbmcgc3RhdGlvbiBtb3ZlbWVudCBieSBhZGRpbmcgdmFyaW91cyB2YWx1ZXNcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2Z3L2FwaS9sb2NhdGlvbi5oLTM2MS0gKlxcdHRvIHRoaXMgZmllbGRcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZncvYXBpL2xvY2F0aW9uLmg9MzgwPXN0cnVjdCBpd2xfdG9mX3Jlc3BvbmRlcl9jb25maWdfY21kX3Y5IHtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZncvYXBpL2xvY2F0aW9uLmgtNDExLSAqIEB0b2Ffb2Zmc2V0OiBBcnRpZmljaWFsIGFkZGl0aW9uIFtwU2VjXSBmb3IgdGhlIFRvQSAtIHRvIGJlIHVzZWQgZm9yIGRlYnVnXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9mdy9hcGkvbG9jYXRpb24uaDo0MTI6ICpcXHRwdXJwb3Nlcywgc2ltdWxhdGluZyBzdGF0aW9uIG1vdmVtZW50IGJ5IGFkZGluZyB2YXJpb3VzIHZhbHVlc1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZncvYXBpL2xvY2F0aW9uLmgtNDEzLSAqXFx0dG8gdGhpcyBmaWVsZFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9mdy9hcGkvcG93ZXIuaD05Nj1lbnVtIGl3bF9wb3dlcl9mbGFncyB7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2Z3L2FwaS9wb3dlci5oLTExMi0gKlxcdGlzIHVzZWQgYWxzbyB3aXRoIGEgbmV3XFx0cG93ZXIgQVBJIGZvciBkZXZpY2Ugd2lkZSBwb3dlciBzZXR0aW5ncy5cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2Z3L2FwaS9wb3dlci5oOjExMzogKiBQT1dFUl9UQUJMRV9DTUQgPSAweDc3IChjb21tYW5kLCBoYXMgc2ltcGxlIGdlbmVyaWMgcmVzcG9uc2UpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9mdy9hcGkvcG93ZXIuaC0xMTQtICpcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZncvYXBpL3Bvd2VyLmg9MTU3PWVudW0gaXdsX2RldmljZV9wb3dlcl9mbGFncyB7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2Z3L2FwaS9wb3dlci5oLTE2NS0gKiBzdHJ1Y3QgaXdsX2RldmljZV9wb3dlcl9jbWQgLSBkZXZpY2Ugd2lkZSBwb3dlciBjb21tYW5kLlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZncvYXBpL3Bvd2VyLmg6MTY2OiAqIERFVklDRV9QT1dFUl9DTUQgPSAweDc3IChjb21tYW5kLCBoYXMgc2ltcGxlIGdlbmVyaWMgcmVzcG9uc2UpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9mdy9hcGkvcG93ZXIuaC0xNjctICpcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZncvYXBpL3Bvd2VyLmg9MTcxPXN0cnVjdCBpd2xfZGV2aWNlX3Bvd2VyX2NtZCB7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2Z3L2FwaS9wb3dlci5oLTE3OC0gKiBzdHJ1Y3QgaXdsX21hY19wb3dlcl9jbWQgLSBOZXcgcG93ZXIgY29tbWFuZCBjb250YWluaW5nIHVBUFNEIHN1cHBvcnRcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2Z3L2FwaS9wb3dlci5oOjE3OTogKiBNQUNfUE1fUE9XRVJfVEFCTEUgPSAweEE5IChjb21tYW5kLCBoYXMgc2ltcGxlIGdlbmVyaWMgcmVzcG9uc2UpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9mdy9hcGkvcG93ZXIuaC0xODAtICogQGlkX2FuZF9jb2xvcjpcXHRNQUMgY29udGV4IGlkZW50aWZpZXIsIFxcdTAwMjZlbnVtIGl3bF9jdHh0X2lkX2FuZF9jb2xvclxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9mdy9kYmcuaD0xNTY9c3RhdGljIGlubGluZSB2b2lkXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9mdy9kYmcuaDoxNTc6X2l3bF9md19kYmdfdHJpZ2dlcl9zaW1wbGVfc3RvcChzdHJ1Y3QgaXdsX2Z3X3J1bnRpbWUgKmZ3cnQsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9mdy9kYmcuaC0xNTgtXFx0XFx0XFx0XFx0c3RydWN0IHdpcmVsZXNzX2RldiAqd2RldixcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZncvZGJnLmgtMTY5LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZncvZGJnLmg6MTcwOiNkZWZpbmUgaXdsX2Z3X2RiZ190cmlnZ2VyX3NpbXBsZV9zdG9wKGZ3cnQsIHdkZXYsIHRyaWcpXFx0XFxcXFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZncvZGJnLmg6MTcxOlxcdF9pd2xfZndfZGJnX3RyaWdnZXJfc2ltcGxlX3N0b3AoKGZ3cnQpLCAod2RldiksXFx0XFx0XFxcXFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZncvZGJnLmgtMTcyLVxcdFxcdFxcdFxcdFxcdGl3bF9md19kYmdfZ2V0X3RyaWdnZXIoKGZ3cnQpLVxcdTAwM2VmdyxcXFxcXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2Z3L2RlYnVnZnMuYz0zNj1zdGF0aWMgc3NpemVfdCBfaXdsX2RiZ2ZzXyMjbmFtZSMjX3JlYWQoc3RydWN0IGZpbGUgKmZpbGUsXFx0XFx0XFxcXFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9mdy9kZWJ1Z2ZzLmMtNTAtXFx0XFx0cmV0dXJuIGRhdGEtXFx1MDAzZXJsZW47XFx0XFx0XFx0XFx0XFx0XFxcXFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZncvZGVidWdmcy5jOjUxOlxcdHJldHVybiBzaW1wbGVfcmVhZF9mcm9tX2J1ZmZlcih1c2VyX2J1ZiwgY291bnQsIHBwb3MsXFx0XFx0XFxcXFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZncvZGVidWdmcy5jLTUyLVxcdFxcdFxcdFxcdCAgICAgICBkYXRhLVxcdTAwM2VyYnVmLCBkYXRhLVxcdTAwM2VybGVuKTtcXHRcXHRcXFxcXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2Z3L3VlZmkuaD0yNDE9c3RydWN0IHVlZmlfY252X3dwZmNfZGF0YSB7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2Z3L3VlZmkuaC0yNDctICogVGhpcyBpcyBrbm93biB0byBiZSBicm9rZW4gb24gdjQuMTkgYW5kIHRvIHdvcmsgb24gdjUuNC4gIFVudGlsIHdlXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9mdy91ZWZpLmg6MjQ4OiAqIGZpZ3VyZSBvdXQgd2h5IHRoaXMgaXMgdGhlIGNhc2UgYW5kIGhvdyB0byBtYWtlIGl0IHdvcmssIHNpbXBseVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZncvdWVmaS5oLTI0OS0gKiBkaXNhYmxlIHRoZSBmZWF0dXJlIGluIG9sZCBrZXJuZWxzLlxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9pd2wtY3NyLmgtMTctICogVXNlIGl3bF93cml0ZTMyKCkgYW5kIGl3bF9yZWFkMzIoKSBmYW1pbHkgdG8gYWNjZXNzIHRoZXNlIHJlZ2lzdGVycztcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2l3bC1jc3IuaDoxODogKiB0aGVzZSBwcm92aWRlIHNpbXBsZSBQQ0kgYnVzIGFjY2Vzcywgd2l0aG91dCB3YWtpbmcgdXAgdGhlIE1BQy5cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2l3bC1jc3IuaC0xOS0gKiBEbyBub3QgdXNlIGl3bF93cml0ZV9kaXJlY3QzMigpIGZhbWlseSBmb3IgdGhlc2UgcmVnaXN0ZXJzO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9pd2wtY3NyLmg9MzIxPWVudW0ge1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9pd2wtY3NyLmgtNTA4LSAqIERvIG5vdCB1c2UgaXdsX3dyaXRlMzIoKS9pd2xfcmVhZDMyKCkgZmFtaWx5IHRvIGFjY2VzcyB0aGVzZSByZWdpc3RlcnM7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9pd2wtY3NyLmg6NTA5OiAqIHRoZXNlIHByb3ZpZGUgb25seSBzaW1wbGUgUENJIGJ1cyBhY2Nlc3MsIHdpdGhvdXQgd2FraW5nIHVwIHRoZSBNQUMuXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9pd2wtY3NyLmgtNTEwLSAqL1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9pd2wtZGVidWcuaD0xMDI9ZG8geyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXFx0XFx0XFx0XFxcXFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9pd2wtZGVidWcuaC0xMTMtICpcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2l3bC1kZWJ1Zy5oOjExNDogKiBJZiB5b3UgYXJlIGRlZmluaW5nIGEgbmV3IGRlYnVnIGNsYXNzaWZpY2F0aW9uLCBzaW1wbHkgYWRkIGl0IHRvIHRoZSAjZGVmaW5lXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9pd2wtZGVidWcuaC0xMTUtICogbGlzdCBoZXJlIGluIHRoZSBmb3JtIG9mXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2l3bC1vcC1tb2RlLmg9MjA9c3RydWN0IGl3bF9yZl9jZmc7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2l3bC1vcC1tb2RlLmgtMzYtICpcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2l3bC1vcC1tb2RlLmg6Mzc6ICogVGhlIG9wZXJhdGlvbmFsIG1vZGUgaGFzIGEgdmVyeSBzaW1wbGUgbGlmZSBjeWNsZS5cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2l3bC1vcC1tb2RlLmgtMzgtICpcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvaXdsLXV0aWxzLmM9ODY9c3RhdGljIHUzMiBpd2xfZGl2X2J5X2RiKHUzMiB2YWx1ZSwgdTggZGIpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2l3bC11dGlscy5jLTg4LVxcdC8qXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9pd2wtdXRpbHMuYzo4OTpcXHQgKiAyXjMyICogMTAqKihpIC8gMTApIGZvciBpID0gWzEsIDEwXSwgc2tpcHBpbmcgMCBhbmQgc2ltcGx5IHN0b3BwaW5nXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9pd2wtdXRpbHMuYy05MC1cXHQgKiBhdCAxMCBkQiBhbmQgbG9vcGluZyBpbnN0ZWFkIG9mIHVzaW5nIGEgbXVjaCBsYXJnZXIgdGFibGUuXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21laS9pd2wtbWVpLmgtMTc0LSAqIENTTUUgY2FuIHRyYW5zbWl0IHBhY2tldHMsIHRocm91Z2ggdGhlIG5ldGRldiB0aGF0IGl0IGdldHMgZnJvbSB0aGUgd2lmaVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWVpL2l3bC1tZWkuaDoxNzU6ICogZHJpdmVyLiBJdCdsbCBzZW5kIHBhY2tldCBpbiB0aGUgODAyLjMgZm9ybWF0IGFuZCBzaW1wbHkgY2FsbFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWVpL2l3bC1tZWkuaC0xNzYtICogZGV2X3F1ZXVlX3htaXQuXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21laS9pd2wtbWVpLmg9NDI4PXZvaWQgaXdsX21laV9zZXRfbmV0ZGV2KHN0cnVjdCBuZXRfZGV2aWNlICpuZXRkZXYpO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tZWkvaXdsLW1laS5oLTQzNi0gKlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWVpL2l3bC1tZWkuaDo0Mzc6ICogVGhpcyBmdW5jdGlvbiBkb2Vzbid0IHRha2UgYW55IGxvY2ssIGl0IHNpbXBseSB0cmllcyB0byBjYXRjaCBESENQXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tZWkvaXdsLW1laS5oLTQzOC0gKiBwYWNrZXRzIHNlbnQgYnkgdGhlIHdpZmkgZHJpdmVyLiBJZiB0aGUgcGFja2V0IGlzIGEgREhDUCBwYWNrZXQsIGl0XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21laS9tYWluLmM9MTkwMD1zdGF0aWMgY29uc3Qgc3RydWN0IGZpbGVfb3BlcmF0aW9ucyBpd2xfbWVpX2RiZ2ZzX3NlbmRfc3RhcnRfbWVzc2FnZV9vcHMgPSB7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tZWkvbWFpbi5jLTE5MDEtXFx0LndyaXRlID0gaXdsX21laV9kYmdmc19zZW5kX3N0YXJ0X21lc3NhZ2Vfd3JpdGUsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tZWkvbWFpbi5jOjE5MDI6XFx0Lm9wZW4gPSBzaW1wbGVfb3BlbixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21laS9tYWluLmMtMTkwMy1cXHQubGxzZWVrID0gZGVmYXVsdF9sbHNlZWssXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21laS9tYWluLmM9MTkxNT1zdGF0aWMgY29uc3Qgc3RydWN0IGZpbGVfb3BlcmF0aW9ucyBpd2xfbWVpX2RiZ2ZzX3JlcV9vd25lcnNoaXBfb3BzID0ge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWVpL21haW4uYy0xOTE2LVxcdC53cml0ZSA9IGl3bF9tZWlfZGJnZnNfcmVxX293bmVyc2hpcF93cml0ZSxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21laS9tYWluLmM6MTkxNzpcXHQub3BlbiA9IHNpbXBsZV9vcGVuLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWVpL21haW4uYy0xOTE4LVxcdC5sbHNlZWsgPSBkZWZhdWx0X2xsc2VlayxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL2RlYnVnZnMuaD0zNT1zdGF0aWMgc3NpemVfdCBfaXdsX2RiZ2ZzXyMjbmFtZSMjX3JlYWQoc3RydWN0IGZpbGUgKmZpbGUsXFx0XFx0XFxcXFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvZGVidWdmcy5oLTQ5LVxcdFxcdHJldHVybiBkYXRhLVxcdTAwM2VybGVuO1xcdFxcdFxcdFxcdFxcdFxcXFxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC9kZWJ1Z2ZzLmg6NTA6XFx0cmV0dXJuIHNpbXBsZV9yZWFkX2Zyb21fYnVmZmVyKHVzZXJfYnVmLCBjb3VudCwgcHBvcyxcXHRcXHRcXFxcXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvZGVidWdmcy5oLTUxLVxcdFxcdFxcdFxcdCAgICAgICBkYXRhLVxcdTAwM2VidWYsIGRhdGEtXFx1MDAzZXJsZW4pO1xcdFxcdFxcXFxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL2RlYnVnZnMuaD0xMDE9c3RhdGljIHNzaXplX3QgX19pd2xfZGJnZnNfIyNuYW1lIyNfd3JpdGUoc3RydWN0IGZpbGUgKmZpbGUsXFx0XFx0XFxcXFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvZGVidWdmcy5oLTExOS1cXHRcXHQud3JpdGUgPSBfX2l3bF9kYmdmc18jI25hbWUjI193cml0ZSxcXHRcXHRcXHRcXFxcXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvZGVidWdmcy5oOjEyMDpcXHRcXHQub3BlbiA9IHNpbXBsZV9vcGVuLFxcdFxcdFxcdFxcdFxcdFxcXFxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC9kZWJ1Z2ZzLmgtMTIxLVxcdFxcdC5sbHNlZWsgPSBnZW5lcmljX2ZpbGVfbGxzZWVrLFxcdFxcdFxcdFxcdFxcXFxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL2RlYnVnZnMuaD0xNjI9c3RhdGljIHNzaXplX3QgX19pd2xfZGJnZnNfIyNuYW1lIyNfcmVhZChzdHJ1Y3QgZmlsZSAqZmlsZSxcXHRcXHRcXFxcXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC9kZWJ1Z2ZzLmgtMTc5LVxcdFxcdHJldHVybiBkYXRhLVxcdTAwM2VybGVuO1xcdFxcdFxcdFxcdFxcdFxcXFxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC9kZWJ1Z2ZzLmg6MTgwOlxcdHJldHVybiBzaW1wbGVfcmVhZF9mcm9tX2J1ZmZlcih1c2VyX2J1ZiwgY291bnQsIHBwb3MsXFx0XFx0XFxcXFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL2RlYnVnZnMuaC0xODEtXFx0XFx0XFx0XFx0ICAgICAgIGRhdGEtXFx1MDAzZWJ1ZiwgZGF0YS1cXHUwMDNlcmxlbik7XFx0XFx0XFxcXFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvbWFjODAyMTEuYz0xMzY5PWl3bF9tbGRfbWFjODAyMTFfY2FuY2VsX2h3X3NjYW4oc3RydWN0IGllZWU4MDIxMV9odyAqaHcsXFxuXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTMxVDE4OjE1OjI2LjA2MTk3ODg3M1oiLCJTZXEiOjUsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy43LWZsYXNoIiwiRHVyYXRpb24iOjU2NjY5NTExMDUsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IkhlcmUncyBteSBhdHRlbXB0IGF0IHN1bW1hcml6aW5nIHRoYXQgdGhvdWdodCBwcm9jZXNzLCB0YWlsb3JlZCBmb3IgYW4gZXhwZXJ0IGF1ZGllbmNlOlxuXG4qKkRpdmluZyBpbnRvIHRoZSBpd2x3aWZpIERyaXZlcioqXG5cbk9rYXksIHNvIEknbSBwb2tpbmcgYXJvdW5kIHRoZSBrZXJuZWwncyBpd2x3aWZpIGRyaXZlciBjb2RlLiBJJ20gcHJpbWFyaWx5IGludGVyZXN0ZWQgaW4gdW5kZXJzdGFuZGluZyBpdHMgaW50ZXJhY3Rpb25zLiBTcGVjaWZpY2FsbHksIEkgd2FudCB0byB0cmFjZSBob3cgaXQgaG9va3MgaW50byB0aGUgc3lzdGVtLiBNeSBmaXJzdCBsaW5lIG9mIGludmVzdGlnYXRpb24gd2lsbCBiZSB0byBmaWd1cmUgb3V0IHRoZSBidXMgcmVnaXN0cmF0aW9ucy4gV2hhdCBidXNlcyBkb2VzIHRoaXMgZHJpdmVyIGluaXRpYWxpemUgd2l0aD8gUENJPyBVU0I/IFBlcmhhcHMgZXZlbiBTRElPIG9yIHNvbWV0aGluZyBtb3JlIG9ic2N1cmUsIGRlcGVuZGluZyBvbiB0aGUgSW50ZWwgd2lyZWxlc3MgY2hpcHNldHMgaXQgc3VwcG9ydHM/IEkgbmVlZCB0byBnZXQgYSBjbGVhciBwaWN0dXJlIG9mIGl0cyBkZXZpY2UgcHJvYmluZyBhbmQgZHJpdmVyIGJpbmRpbmcgbWVjaGFuaXNtcy4gVW5kZXJzdGFuZGluZyB0aGUgYnVzIGludGVyYWN0aW9ucyB3aWxsIHRoZW4gZGljdGF0ZSB3aGljaCBrZXJuZWwgY29tcG9uZW50cyBvciBjb25maWd1cmF0aW9ucywgaWYgYW55LCBJIG5lZWQgdG8gZm9jdXMgbXkgYXR0ZW50aW9uLlxuXG5cbiIsIklucHV0VG9rZW5zIjoxNjMyMCwiT3V0cHV0VG9rZW5zIjo0NSwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjI0LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTMxVDE4OjE1OjMxLjcyODkzMjMxOFoiLCJTZXEiOjYsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoxNDE0MTAzNzAsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwibW9kdWxlX3BjaV9kcml2ZXJ8cGNpX3JlZ2lzdGVyX2RyaXZlclwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJkcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJkcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2l3bC1kcnYuYz0yMDYyPXN0YXRpYyBpbnQgX19pbml0IGl3bF9kcnZfaW5pdCh2b2lkKVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9pd2wtZHJ2LmMtMjA3My1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2l3bC1kcnYuYzoyMDc0OlxcdGVyciA9IGl3bF9wY2lfcmVnaXN0ZXJfZHJpdmVyKCk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9pd2wtZHJ2LmMtMjA3NS1cXHRpZiAoZXJyKVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9pd2wtdHJhbnMuaD0xMjEyPXN0YXRpYyBpbmxpbmUgdm9pZCBpd2xfdHJhbnNfbm90aWZ5X2Z3X2Vycm9yKHN0cnVjdCBpd2xfdHJhbnMgKnRyYW5zKVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9pd2wtdHJhbnMuaC0xMjE5LSAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2l3bC10cmFucy5oOjEyMjA6aW50IF9fbXVzdF9jaGVjayBpd2xfcGNpX3JlZ2lzdGVyX2RyaXZlcih2b2lkKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2l3bC10cmFucy5oLTEyMjEtdm9pZCBpd2xfcGNpX3VucmVnaXN0ZXJfZHJpdmVyKHZvaWQpO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9wY2llL2Rydi5jPTEzMjM9c3RhdGljIHN0cnVjdCBwY2lfZHJpdmVyIGl3bF9wY2lfZHJpdmVyID0ge1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9wY2llL2Rydi5jLTEzMzEtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9wY2llL2Rydi5jOjEzMzI6aW50IF9fbXVzdF9jaGVjayBpd2xfcGNpX3JlZ2lzdGVyX2RyaXZlcih2b2lkKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvcGNpZS9kcnYuYy0xMzMzLXtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL3BjaWUvZHJ2LmMtMTMzNC1cXHRpbnQgcmV0O1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvcGNpZS9kcnYuYzoxMzM1OlxcdHJldCA9IHBjaV9yZWdpc3Rlcl9kcml2ZXIoXFx1MDAyNml3bF9wY2lfZHJpdmVyKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL3BjaWUvZHJ2LmMtMTMzNi1cXHRpZiAocmV0KVxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0zMVQxODoxNTozMS44NzAzNDk0NDhaIiwiU2VxIjo3LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuNy1mbGFzaCIsIkR1cmF0aW9uIjozNzUzMjgwMTc3NSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiT2theSwgaGVyZSdzIG15IHRha2Ugb24gdGhvc2UgdGhvdWdodHMsIGZyYW1lZCBhcyBhbiBleHBlcnQncyBpbnRlcm5hbCBtb25vbG9ndWU6XG5cbioqSW52ZXN0aWdhdGluZyBpd2x3aWZpIEJ1cyBTdXBwb3J0KipcblxuQWxyaWdodCwgbGV0J3MgZ2V0IGRvd24gdG8gYnJhc3MgdGFja3MuIEkgbmVlZCB0byBtYWtlIHN1cmUgd2UncmUgbm90IGp1c3QgdHVubmVsLXZpc2lvbmVkIG9uIFBDSSBmb3IgdGhlIGl3bHdpZmkgZHJpdmVyLiBJdCdzIHRpbWUgdG8gZGlnIGRlZXBlciBhbmQgc2VlIGlmIHRoZSBkcml2ZXIgaXMgZGVzaWduZWQgdG8gc3VwcG9ydCBvdGhlciBidXMgdHlwZXMuIEknbSB0aGlua2luZyBzcGVjaWZpY2FsbHkgYWJvdXQgcG9zc2liaWxpdGllcyBiZXlvbmQgUENJIOKAkyBhcmUgd2UgbG9va2luZyBhdCBVU0IgaW1wbGVtZW50YXRpb25zLCBvciBwZXJoYXBzIHBsYXRmb3JtLXNwZWNpZmljIGludGVncmF0aW9ucz8gVGhpcyBpcyBpbXBvcnRhbnQ7IGlmIHdlJ3JlIG9ubHkgY29uc2lkZXJpbmcgUENJLCB3ZSBjb3VsZCBiZSBtaXNzaW5nIGEgd2hvbGUgZWNvc3lzdGVtIG9mIHBvdGVudGlhbCBoYXJkd2FyZSB0aGF0IGNvdWxkIGxldmVyYWdlIHRoaXMgZHJpdmVyLiBFeHBhbnNpb24gaGVyZSBjb3VsZCBiZSBodWdlLiBUaW1lIHRvIG1hcCBvdXQgdGhlIGRpZmZlcmVudCBwb3NzaWJpbGl0aWVzLlxuXG5cbiIsIklucHV0VG9rZW5zIjoxNzA4OCwiT3V0cHV0VG9rZW5zIjozOSwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjI1LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTMxVDE4OjE2OjA5LjQwMzE1NDEyM1oiLCJTZXEiOjgsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoxMjkzMzI2NzEsIkVycm9yIjoibm8gbWF0Y2hlcyIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcImRyaXZlcl9yZWdpc3RlcnxwbGF0Zm9ybV9kcml2ZXJcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9cIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiZXJyb3JcIjogXCJubyBtYXRjaGVzXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTMxVDE4OjE2OjA5LjUzMjUwMDE2NFoiLCJTZXEiOjksIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy43LWZsYXNoIiwiRHVyYXRpb24iOjEwMDIxODk2NDQ3LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkFuYWx5emluZyB0aGUgUG90ZW50aWFsIGZvciBGdXp6aW5nIHdpdGggdGhlIGl3bHdpZmkgRHJpdmVyKipcblxuT2theSwgc28gSSdtIGxvb2tpbmcgYXQgYSBwYXRjaCByZWxhdGVkIHRvIHRoZSBgaXdsd2lmaWAgZHJpdmVyLCBzcGVjaWZpY2FsbHkgdGhlIFBDSSBkcml2ZXIgYGl3bF9wY2lfZHJpdmVyYC4gTXkgaW1tZWRpYXRlIHRob3VnaHQgaXMgdG8gZGV0ZXJtaW5lIGlmIHRoaXMgcGF0Y2ggaXMgYSBnb29kIGNhbmRpZGF0ZSBmb3IgZnV6emluZywgYW5kIEkgbmVlZCB0byBhcHBseSB0aGUgcnVsZXMgb3V0bGluZWQuIEknbGwgbmVlZCB0byBjaGVjayB0aGUgcGF0Y2ggZGV0YWlscyBhbmQgc2VlIGlmIGFueSBvZiB0aGUgY3JpdGVyaWEgdGhhdCB3b3VsZCBtYWtlIGl0ICpub3QqIGZ1enphYmxlIGFwcGx5LlxuXG5GaXJzdCwgSSBuZWVkIHRvIGtub3cgcHJlY2lzZWx5IHdoYXQncyBjaGFuZ2VkLiBUaGUgZmlsZSBpcyBgZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tdm0vc2Nhbi5jYCwgd2hpY2ggbWFrZXMgbWUgdGhpbmsgaXQncyBkZWFsaW5nIHdpdGggdGhlIE11bHRpLVZpcnR1YWwgTWFjaGluZSAoTVZNKSBhcmNoaXRlY3R1cmUgb2YgaXdsd2lmaS4gVGhlIGZ1bmN0aW9uIGluIHF1ZXN0aW9uIGlzIGBpd2xfbXZtX3J4X3VtYWNfc2Nhbl9jb21wbGV0ZV9ub3RpZmAuIFRoZSBuYW1lIGlzIGEgbW91dGhmdWwsIGJ1dCBpZiBpdCBpcyByZWxhdGVkIHRvIFwic2NhbiBjb21wbGV0ZSBub3RpZmljYXRpb25cIiBJIGNhbiBpbWFnaW5lIGl0IGJlaW5nIHRyaWdnZXJlZCBiYXNlZCBvbiBleHRlcm5hbCBpbnB1dCwgd2hpY2ggbWFrZXMgbWUgZmVlbCBwcmV0dHkgb3B0aW1pc3RpYyBhYm91dCBpdHMgc3VpdGFiaWxpdHkgZm9yIGZ1enppbmcgYXQgdGhpcyBzdGFnZS5cblxuTm93LCBJJ2xsIGNhcmVmdWxseSByZWFkIHRoZSBjb2RlIHdpdGhpbiBgaXdsX212bV9yeF91bWFjX3NjYW5fY29tcGxldGVfbm90aWZgIGFuZCBzZWUgaWYgdGhlIHBhdGNoIGludHJvZHVjZXMgYW55IG1vZGlmaWNhdGlvbnMgdGhhdCBjb3VsZCBiZSBjb3ZlcmVkIGJ5IHRoZSBuZWdhdGl2ZSBydWxlcywgdG8gYmUgY2VydGFpbi4gSSBrbm93IHRoZSBnZW5lcmFsIHN0cnVjdHVyZSBvZiB0aGUgd2lyZWxlc3Mgc3Vic3lzdGVtIGFuZCBJIGtub3cgdGhlIHBvdGVudGlhbCBwaXRmYWxscywgc28gSSdsbCBiZSBsb29raW5nIGNhcmVmdWxseSBhdCBkYXRhIHN0cnVjdHVyZXMgYW5kIGhvdyB0aGlzIG5vdGlmaWNhdGlvbiBpbnRlcmFjdHMgd2l0aCB0aGUgTUFDIGxheWVyLiBJJ20gZXNwZWNpYWxseSBpbnRlcmVzdGVkIGluIHdoZXRoZXIgdGhlIGNoYW5nZXMgaW50cm9kdWNlIG5ldyBkYXRhIHBhdGhzLCBhbHRlciBjb250cm9sIGZsb3cgc2lnbmlmaWNhbnRseSwgb3IgaGFuZGxlIGV4dGVybmFsIGRhdGEgdGhhdCBtaWdodCBiZSBzdXNjZXB0aWJsZSB0byBtYW5pcHVsYXRpb24uIExldCdzIHNlZS4uLlxuXG5cbiIsIklucHV0VG9rZW5zIjoxNzMxOSwiT3V0cHV0VG9rZW5zIjo0NywiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjM1MiwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wOC0zMVQxODoxNjoxOS41NTQzOTk5OTFaIiwiU2VxIjoxMCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoicmVhZC1maWxlIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MjEyMDgwLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRmlsZVwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbXZtL3NjYW4uY1wiLFxuICBcIkZpcnN0TGluZVwiOiAzMjAwLFxuICBcIkxpbmVDb3VudFwiOiA2MFxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiQ29udGVudHNcIjogXCIzMjAwOlxcdFxcdFxcdC8qIElmIHRoZSBzY2FuIGZhaWxlZCwgaXQgdXN1YWxseSBtZWFucyB0aGF0IHRoZSBGVyB3YXMgdW5hYmxlXFxuMzIwMTpcXHRcXHRcXHQgKiB0byBhbGxvY2F0ZSB0aGUgdGltZSBldmVudHMuIFdhcm4gb24gaXQsIGJ1dCBtYXliZSB3ZVxcbjMyMDI6XFx0XFx0XFx0ICogc2hvdWxkIHRyeSB0byBzZW5kIHRoZSBjb21tYW5kIGFnYWluIHdpdGggZGlmZmVyZW50IHBhcmFtcy5cXG4zMjAzOlxcdFxcdFxcdCAqL1xcbjMyMDQ6XFx0XFx0XFx0SVdMX0VSUihtdm0sIFxcXCJTY2hlZCBzY2FuIGZhaWxlZCEgcmV0ICVkXFxcXG5cXFwiLCByZXQpO1xcbjMyMDU6XFx0XFx0XFx0bXZtLVxcdTAwM2VzY2hlZF9zY2FuX3Bhc3NfYWxsID0gU0NIRURfU0NBTl9QQVNTX0FMTF9ESVNBQkxFRDtcXG4zMjA2OlxcdFxcdH1cXG4zMjA3OlxcdFxcbjMyMDg6XFx0b3V0OlxcbjMyMDk6XFx0XFx0aWYgKG5vbl9wc2NfaW5jbHVkZWQpXFxuMzIxMDpcXHRcXHRcXHRrZnJlZShwYXJhbXMuY2hhbm5lbHMpO1xcbjMyMTE6XFx0XFx0cmV0dXJuIHJldDtcXG4zMjEyOlxcdH1cXG4zMjEzOlxcdFxcbjMyMTQ6XFx0dm9pZCBpd2xfbXZtX3J4X3VtYWNfc2Nhbl9jb21wbGV0ZV9ub3RpZihzdHJ1Y3QgaXdsX212bSAqbXZtLFxcbjMyMTU6XFx0XFx0XFx0XFx0XFx0XFx0IHN0cnVjdCBpd2xfcnhfY21kX2J1ZmZlciAqcnhiKVxcbjMyMTY6XFx0e1xcbjMyMTc6XFx0XFx0c3RydWN0IGl3bF9yeF9wYWNrZXQgKnBrdCA9IHJ4Yl9hZGRyKHJ4Yik7XFxuMzIxODpcXHRcXHRzdHJ1Y3QgaXdsX3VtYWNfc2Nhbl9jb21wbGV0ZSAqbm90aWYgPSAodm9pZCAqKXBrdC1cXHUwMDNlZGF0YTtcXG4zMjE5OlxcdFxcdHUzMiB1aWQgPSBfX2xlMzJfdG9fY3B1KG5vdGlmLVxcdTAwM2V1aWQpO1xcbjMyMjA6XFx0XFx0Ym9vbCBhYm9ydGVkID0gKG5vdGlmLVxcdTAwM2VzdGF0dXMgPT0gSVdMX1NDQU5fT0ZGTE9BRF9BQk9SVEVEKTtcXG4zMjIxOlxcdFxcbjMyMjI6XFx0XFx0bXZtLVxcdTAwM2VtZWlfc2Nhbl9maWx0ZXIuaXNfbWVpX2xpbWl0ZWRfc2NhbiA9IGZhbHNlO1xcbjMyMjM6XFx0XFxuMzIyNDpcXHRcXHRpZiAoSVdMX0ZXX0NIRUNLKG12bSwgdWlkIFxcdTAwM2U9IEFSUkFZX1NJWkUobXZtLVxcdTAwM2VzY2FuX3VpZF9zdGF0dXMpLFxcbjMyMjU6XFx0XFx0XFx0XFx0IFxcXCJGVyByZXBvcnRzIG91dC1vZi1yYW5nZSBzY2FuIFVJRCAlZFxcXFxuXFxcIiwgdWlkKSlcXG4zMjI2OlxcdFxcdFxcdHJldHVybjtcXG4zMjI3OlxcdFxcbjMyMjg6XFx0XFx0SVdMX0RFQlVHX1NDQU4obXZtLFxcbjMyMjk6XFx0XFx0XFx0ICAgICAgIFxcXCJTY2FuIGNvbXBsZXRlZDogdWlkPSV1IHR5cGU9JXUsIHN0YXR1cz0lcywgRUJTPSVzXFxcXG5cXFwiLFxcbjMyMzA6XFx0XFx0XFx0ICAgICAgIHVpZCwgbXZtLVxcdTAwM2VzY2FuX3VpZF9zdGF0dXNbdWlkXSxcXG4zMjMxOlxcdFxcdFxcdCAgICAgICBub3RpZi1cXHUwMDNlc3RhdHVzID09IElXTF9TQ0FOX09GRkxPQURfQ09NUExFVEVEID9cXG4zMjMyOlxcdFxcdFxcdFxcdFxcdFxcXCJjb21wbGV0ZWRcXFwiIDogXFxcImFib3J0ZWRcXFwiLFxcbjMyMzM6XFx0XFx0XFx0ICAgICAgIGl3bF9tdm1fZWJzX3N0YXR1c19zdHIobm90aWYtXFx1MDAzZWVic19zdGF0dXMpKTtcXG4zMjM0OlxcdFxcbjMyMzU6XFx0XFx0SVdMX0RFQlVHX1NDQU4obXZtLCBcXFwiU2NhbiBjb21wbGV0ZWQ6IHNjYW5fc3RhdHVzPTB4JXhcXFxcblxcXCIsXFxuMzIzNjpcXHRcXHRcXHQgICAgICAgbXZtLVxcdTAwM2VzY2FuX3N0YXR1cyk7XFxuMzIzNzpcXHRcXG4zMjM4OlxcdFxcdElXTF9ERUJVR19TQ0FOKG12bSxcXG4zMjM5OlxcdFxcdFxcdCAgICAgICBcXFwiU2NhbiBjb21wbGV0ZWQ6IGxpbmU9JXUsIGl0ZXI9JXUsIGVsYXBzZWQgdGltZT0ldVxcXFxuXFxcIixcXG4zMjQwOlxcdFxcdFxcdCAgICAgICBub3RpZi1cXHUwMDNlbGFzdF9zY2hlZHVsZSwgbm90aWYtXFx1MDAzZWxhc3RfaXRlcixcXG4zMjQxOlxcdFxcdFxcdCAgICAgICBfX2xlMzJfdG9fY3B1KG5vdGlmLVxcdTAwM2V0aW1lX2Zyb21fbGFzdF9pdGVyKSk7XFxuMzI0MjpcXHRcXG4zMjQzOlxcdFxcdGlmIChXQVJOX09OKCEobXZtLVxcdTAwM2VzY2FuX3VpZF9zdGF0dXNbdWlkXSBcXHUwMDI2IG12bS1cXHUwMDNlc2Nhbl9zdGF0dXMpKSlcXG4zMjQ0OlxcdFxcdFxcdHJldHVybjtcXG4zMjQ1OlxcdFxcbjMyNDY6XFx0XFx0LyogaWYgdGhlIHNjYW4gaXMgYWxyZWFkeSBzdG9wcGluZywgd2UgZG9uJ3QgbmVlZCB0byBub3RpZnkgbWFjODAyMTEgKi9cXG4zMjQ3OlxcdFxcdGlmIChtdm0tXFx1MDAzZXNjYW5fdWlkX3N0YXR1c1t1aWRdID09IElXTF9NVk1fU0NBTl9SRUdVTEFSKSB7XFxuMzI0ODpcXHRcXHRcXHRzdHJ1Y3QgY2ZnODAyMTFfc2Nhbl9pbmZvIGluZm8gPSB7XFxuMzI0OTpcXHRcXHRcXHRcXHQuYWJvcnRlZCA9IGFib3J0ZWQsXFxuMzI1MDpcXHRcXHRcXHRcXHQuc2Nhbl9zdGFydF90c2YgPSBtdm0tXFx1MDAzZXNjYW5fc3RhcnQsXFxuMzI1MTpcXHRcXHRcXHR9O1xcbjMyNTI6XFx0XFx0XFx0c3RydWN0IGl3bF9tdm1fdmlmICpzY2FuX3ZpZiA9IG12bS1cXHUwMDNlc2Nhbl92aWY7XFxuMzI1MzpcXHRcXHRcXHRzdHJ1Y3QgaXdsX212bV92aWZfbGlua19pbmZvICpsaW5rX2luZm8gPVxcbjMyNTQ6XFx0XFx0XFx0XFx0c2Nhbl92aWYtXFx1MDAzZWxpbmtbbXZtLVxcdTAwM2VzY2FuX2xpbmtfaWRdO1xcbjMyNTU6XFx0XFxuMzI1NjpcXHRcXHRcXHQvKiBJdCBpcyBwb3NzaWJsZSB0aGF0IGJ5IHRoZSB0aW1lIHRoZSBzY2FuIGlzIGNvbXBsZXRlIHRoZSBsaW5rXFxuMzI1NzpcXHRcXHRcXHQgKiB3YXMgYWxyZWFkeSByZW1vdmVkIGFuZCBpcyBub3QgdmFsaWQuXFxuMzI1ODpcXHRcXHRcXHQgKi9cXG4zMjU5OlxcdFxcdFxcdGlmIChsaW5rX2luZm8pXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTMxVDE4OjE2OjE5LjU1NDYxNTgyMVoiLCJTZXEiOjExLCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuNy1mbGFzaCIsIkR1cmF0aW9uIjoxMTYxMzU5NDczMSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipNeSBBc3Nlc3NtZW50OiBVbmZ1enphYmxlIENvZGUgUGF0aCoqXG5cbk9rYXksIHNvIGxvb2tpbmcgYXQgdGhpcyBjb2RlLCBgaXdsX212bV9yeF91bWFjX3NjYW5fY29tcGxldGVfbm90aWZgLi4uIGl0J3MgYSBmaXJtd2FyZSBSWCBub3RpZmljYXRpb24gaGFuZGxlciBzcGVjaWZpY2FsbHkgZm9yIEludGVsIFdpLUZpIGRldmljZXMsIHBhcnQgb2YgdGhlIGBpd2x3aWZpYCBkcml2ZXIuICBUaGUgKmNydWNpYWwqIHBvaW50IGhlcmUgaXMgdGhhdCB0aGlzIGRyaXZlciwgYW5kIGJ5IGV4dGVuc2lvbiB0aGlzIGZ1bmN0aW9uLCByZXF1aXJlcyBhY3R1YWwsICpwaHlzaWNhbCogSW50ZWwgUENJZSBXaS1GaSBoYXJkd2FyZS4gV2UncmUgdGFsa2luZyBhYm91dCBjYXJkcyBsaWtlIHRoZSA3MjYwLCA4MjYwLCB0aGUgQVggc2VyaWVzLCBhbmQgQkUyMDAuIFRoZXNlIGNhcmRzIGFyZW4ndCBqdXN0IHBsdWctYW5kLXBsYXk7IHRoZXkgYWxzbyBuZWVkIHNwZWNpZmljIGZpcm13YXJlIGJsb2JzIGxvYWRlZCBvbnRvIHRoZSBoYXJkd2FyZSBpdHNlbGYuXG5cbk5vdywgc3RhbmRhcmQgdmlydHVhbCBtYWNoaW5lcyBsaWtlIHRob3NlIG9uIFFFTVUgb3IgR29vZ2xlIENvbXB1dGUgRW5naW5lPyBUaGV5ICpkb24ndCogZW11bGF0ZSB0aGlzIGtpbmQgb2YgSW50ZWwgV2ktRmkgUENJZSBoYXJkd2FyZS4gWW91IG1pZ2h0IGhhdmUgc29mdHdhcmUtZW11bGF0ZWQgV2ktRmkgaW4gdGhlIGtlcm5lbCwgc3VyZSwgbGlrZSBgbWFjODAyMTFfaHdzaW1gLCBidXQgdGhhdCdzIGEgY29tcGxldGVseSBkaWZmZXJlbnQgYW5pbWFsIOKAkyBhICp2aXJ0dWFsKiBtYWM4MDIxMSBkcml2ZXIuIFRoaXMgc3BlY2lmaWMgZnVuY3Rpb24sIGBpd2xfbXZtX3J4X3VtYWNfc2Nhbl9jb21wbGV0ZV9ub3RpZmAsIGlzIGFuIFJYIG5vdGlmaWNhdGlvbiBmcm9tIHRoZSAqSW50ZWwgZmlybXdhcmUqIGl0c2VsZiwgaGFuZGxlZCBieSB0aGUgYGl3bF9yeF9wYWNrZXRgIGZ1bmN0aW9uLiBUaGlzIG5vdGlmaWNhdGlvbiBjYW5ub3QgYmUgdHJpZ2dlcmVkIG9yIHJlYWNoZWQgaW4gYSB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudCAqdW5sZXNzKiB5b3UgaGF2ZSBwaHlzaWNhbCBJbnRlbCBXaS1GaSBoYXJkd2FyZSBwcmVzZW50LlxuXG5UaGVyZWZvcmUsIHRoaXMgZmFsbHMgZGlyZWN0bHkgaW50byB0aGUgY2F0ZWdvcnkgb2YgY29kZSB0aGF0J3MgKmltcG9zc2libGUqIHRvIHJlYWNoIGluIHRob3NlIGtpbmRzIG9mIHZpcnR1YWxpemVkIGVudmlyb25tZW50cywgZXZlbiB3aXRoIHNvbWUgbGV2ZWwgb2YgZW11bGF0ZWQgaGFyZHdhcmUgc3VjaCBhcyBgbWFjODAyMTFfaHdzaW1gLiBBbHNvIHRoZSBzYW1lIHRoaW5nIGhhcHBlbnMgd2l0aCBjb2RlIHRoYXQgaXMgaW4gZHJpdmVycyB0aGF0IG5lZWQgcGh5c2ljYWwgUENJZSBoYXJkd2FyZSwgc3VjaCBhcyBTbWFydE5JQ3MsIEdQVXMsIGFuZCBQQ0llIHN3aXRjaGVzLlxuXG5TbywgaW4gZXNzZW5jZSwgaXQgc2VlbXMgbGlrZSB3ZSdyZSBub3QgZ29pbmcgdG8gYmUgYWJsZSB0byBtYWtlIHVzZSBvZiB0aGlzIGNvZGUsIHNvIGxldCdzIHZlcmlmeSB0aGF0IHdlIGhhdmUgZXZlcnl0aGluZyB0aGF0IHdlIG5lZWQuXG5cbmBXb3J0aEZ1enppbmdgOiBEZWZpbml0ZWx5ICpmYWxzZSouXG5gRm9jdXNTeW1ib2xzYDogV2UgZG9uJ3QgaGF2ZSBhbnkgc3BlY2lmaWMgc3ltYm9scyB0byB0YXJnZXQuXG5gRW5hYmxlQ29uZmlnc2A6IEFsc28gZW1wdHksIG5vdGhpbmcgdG8gZW5hYmxlLlxuYFJlYXNvbmluZ2A6IFdlIGhhdmUgYSBjb25jaXNlIGV4cGxhbmF0aW9uIG9mIHdoeS5cblxuTG9va3MgbGlrZSB3ZSdyZSBnb29kIHRvIGdvLiBMZXQncyBjYWxsIGBzZXQtcmVzdWx0c2AuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjE5MTgzLCJPdXRwdXRUb2tlbnMiOjk0LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6NDg1LCJUb29sQ2FsbHMiOlsicmVhZC1maWxlIl19LHsiU3RhcnRlZCI6IjIwMjYtMDgtMzFUMTg6MTY6MzEuMTY4MjE0OTIyWiIsIlNlcSI6MTIsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6InNldC1yZXN1bHRzIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MjMxODAsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IFtdLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggYWRkcyBhIGJvdW5kcyBjaGVjayBpbiBpd2xfbXZtX3J4X3VtYWNfc2Nhbl9jb21wbGV0ZV9ub3RpZigpIHdpdGhpbiB0aGUgSW50ZWwgV2ktRmkgZHJpdmVyIChpd2x3aWZpKS4gVGhpcyBkcml2ZXIgcmVxdWlyZXMgcGh5c2ljYWwgSW50ZWwgUENJZSB3aXJlbGVzcyBoYXJkd2FyZSBhbmQgZmlybXdhcmUsIHdoaWNoIGNhbm5vdCBiZSByZWFjaGVkIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIFFFTVUgb3IgR0NFLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiBmYWxzZVxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBudWxsLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggYWRkcyBhIGJvdW5kcyBjaGVjayBpbiBpd2xfbXZtX3J4X3VtYWNfc2Nhbl9jb21wbGV0ZV9ub3RpZigpIHdpdGhpbiB0aGUgSW50ZWwgV2ktRmkgZHJpdmVyIChpd2x3aWZpKS4gVGhpcyBkcml2ZXIgcmVxdWlyZXMgcGh5c2ljYWwgSW50ZWwgUENJZSB3aXJlbGVzcyBoYXJkd2FyZSBhbmQgZmlybXdhcmUsIHdoaWNoIGNhbm5vdCBiZSByZWFjaGVkIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIFFFTVUgb3IgR0NFLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiBmYWxzZVxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMzFUMTg6MTY6MzEuMTY4MjQxMzMxWiIsIlNlcSI6MTMsIk5lc3RpbmciOjEsIlR5cGUiOiJhY3Rpb24iLCJOYW1lIjoiSWYiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoyMDkxLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiV29ydGhGdXp6aW5nXCI6IGZhbHNlXG59IiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfV07CgkJCWlmICghcmF3RGF0YSB8fCByYXdEYXRhLmxlbmd0aCA9PT0gMCkgcmV0dXJuOwoKCQkJZHJhd1N1bW1hcnlUYWJsZXMocmF3RGF0YSk7CgkJCWRyYXdEdXJhdGlvbkNoYXJ0KHJhd0RhdGEpOwoJCQlkcmF3VG9rZW5Db25zdW1wdGlvbkNoYXJ0KHJhd0RhdGEpOwoJCX0KCgkJZnVuY3Rpb24gZHJhd1N1bW1hcnlUYWJsZXMocmF3RGF0YSkgewoJCQljb25zdCBzdGF0cyA9IHsKCQkJCWxsbTogeyBjb3VudDogMCwgdG9rZW5zOiAwLCBkdXJhdGlvbjogMCB9LAoJCQkJdG9vbDogeyBjb3VudDogMCwgZHVyYXRpb246IDAgfQoJCQl9OwoKCQkJcmF3RGF0YS5mb3JFYWNoKHMgPT4gewoJCQkJY29uc3QgZHVyID0gcy5EdXJhdGlvbiAvIDEwMDAwMDAwMDA7IAoJCQkJaWYgKHMuVHlwZSA9PT0gImxsbSIpIHsKCQkJCQlzdGF0cy5sbG0uY291bnQrKzsKCQkJCQlzdGF0cy5sbG0udG9rZW5zICs9IChzLklucHV0VG9rZW5zICsgcy5PdXRwdXRUb2tlbnMgKyBzLk91dHB1dFRob3VnaHRzVG9rZW5zKTsKCQkJCQlzdGF0cy5sbG0uZHVyYXRpb24gKz0gZHVyOwoJCQkJfSBlbHNlIGlmIChzLlR5cGUgPT09ICJ0b29sIikgewoJCQkJCXN0YXRzLnRvb2wuY291bnQrKzsKCQkJCQlzdGF0cy50b29sLmR1cmF0aW9uICs9IGR1cjsKCQkJCX0KCQkJfSk7CgoJCQljb25zdCBhdmdMbG1EdXIgPSBzdGF0cy5sbG0uY291bnQgPiAwID8gKHN0YXRzLmxsbS5kdXJhdGlvbiAvIHN0YXRzLmxsbS5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgkJCWNvbnN0IGF2Z0xsbVRva2VuID0gc3RhdHMubGxtLmNvdW50ID4gMCA/IChzdGF0cy5sbG0udG9rZW5zIC8gc3RhdHMubGxtLmNvdW50KS50b0ZpeGVkKDIpIDogMDsKCQkJY29uc3QgYXZnVG9vbER1ciA9IHN0YXRzLnRvb2wuY291bnQgPiAwID8gKHN0YXRzLnRvb2wuZHVyYXRpb24gLyBzdGF0cy50b29sLmNvdW50KS50b0ZpeGVkKDIpIDogMDsKCgkJCWNvbnN0IGxsbVN1bWFyeUNlbGxzID0gW3N0YXRzLmxsbS5jb3VudCwgc3RhdHMubGxtLnRva2VucywgYXZnTGxtVG9rZW4sIHN0YXRzLmxsbS5kdXJhdGlvbiwgYXZnTGxtRHVyXTsKCQkJY29uc3QgdG9vbFN1bW1hcnlDZWxscyA9IFtzdGF0cy50b29sLmNvdW50LCBzdGF0cy50b29sLmR1cmF0aW9uLCBhdmdUb29sRHVyXTsKCgkJCWNvbnN0IGxsbVN1bW1hcnlCb2R5ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2xsbV9zdW1tYXJ5X3N0YXRzX2JvZHknKTsKCQkJbGxtU3VtbWFyeUJvZHkuaW5uZXJIVE1MID0gIiI7CgkJCWNvbnN0IGxsbVRyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndHInKTsKCQkJbGxtU3VtYXJ5Q2VsbHMuZm9yRWFjaChjZWxsID0+IHsKCQkJCWNvbnN0IHRkID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndGQnKTsKCQkJCXRkLnRleHRDb250ZW50ID0gY2VsbDsKCQkJCWxsbVRyLmFwcGVuZENoaWxkKHRkKTsKCQkJfSk7CgkJCWxsbVN1bW1hcnlCb2R5LmFwcGVuZENoaWxkKGxsbVRyKTsKCgkJCWNvbnN0IHRvb2xTdW1tYXJ5Qm9keSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0b29sX3N1bW1hcnlfc3RhdHNfYm9keScpOwoJCQl0b29sU3VtbWFyeUJvZHkuaW5uZXJIVE1MID0gIiI7CgkJCWNvbnN0IHRvb2xUciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RyJyk7CgkJCXRvb2xTdW1tYXJ5Q2VsbHMuZm9yRWFjaChjZWxsID0+IHsKCQkJCWNvbnN0IHRkID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndGQnKTsKCQkJCXRkLnRleHRDb250ZW50ID0gY2VsbDsKCQkJCXRvb2xUci5hcHBlbmRDaGlsZCh0ZCk7CgkJCX0pOwoJCQl0b29sU3VtbWFyeUJvZHkuYXBwZW5kQ2hpbGQodG9vbFRyKTsKCQl9CgoJCWZ1bmN0aW9uIGRyYXdEdXJhdGlvbkNoYXJ0KHJhd0RhdGEpIHsKCQkJY29uc3QgZmlsdGVyZWRTdGVwcyA9IHJhd0RhdGEuZmlsdGVyKGQgPT4gWyJsbG0iLCAidG9vbCJdLmluY2x1ZGVzKGQuVHlwZSkpOwoJCQljb25zdCBkYXRhID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkRhdGFUYWJsZSgpOwoJCQlkYXRhLmFkZENvbHVtbignc3RyaW5nJywgJ1N0ZXAnKTsKCQkJZGF0YS5hZGRDb2x1bW4oJ251bWJlcicsICdEdXJhdGlvbicpOwoJCQlkYXRhLmFkZENvbHVtbih7dHlwZTogJ3N0cmluZycsIHJvbGU6ICd0b29sdGlwJ30pOyAKCgkJCWZpbHRlcmVkU3RlcHMuZm9yRWFjaChzID0+IHsKCQkJCQoJCQkJY29uc3QgZHVyID0gcy5EdXJhdGlvbiAvIDEwMDAwMDAwMDA7CgkJCQlsZXQgdG9vbHRpcCA9IHMuTmFtZTsKCQkJCWlmIChzLlR5cGUgPT09ICJsbG0iICYmIHMuVG9vbENhbGxzICYmIHMuVG9vbENhbGxzLmxlbmd0aCA+IDApIHsKCQkJCQl0b29sdGlwICs9IGBcblRvb2xzOiAke3MuVG9vbENhbGxzLmpvaW4oJywgJyl9YDsKCQkJCX0KCQkJCWRhdGEuYWRkUm93KFtgJHtzLlNlcX1gLCBkdXIsIHRvb2x0aXBdKTsKCQkJfSk7CgoJCQljb25zdCBvcHRpb25zID0gewoJCQkJdGl0bGU6ICdUaW1lIENvbnN1bXB0aW9uIG9mIExMTS9Ub29sIENhbGxzJywKCQkJCWhBeGlzOiB7CgkJCQkJdGl0bGU6ICdMTE0vVG9vbCBTdGVwcycsCgkJCQl9LAoJCQkJdkF4aXM6IHsgdGl0bGU6ICdTZWNvbmRzJyB9LAoJCQkJbGVnZW5kOiB7IHBvc2l0aW9uOiAnbm9uZScgfSwKCQkJCWJhcjogeyBncm91cFdpZHRoOiAnNzUlJyB9LAoJCQkJY2hhcnRBcmVhOiB7IHdpZHRoOiAnODUlJywgaGVpZ2h0OiAnNzAlJyB9LAoJCQkJaGVpZ2h0OiA0MDAKCQkJfTsKCgkJCWNvbnN0IGNoYXJ0ID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkNvbHVtbkNoYXJ0KGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdkdXJhdGlvbl9jaGFydF9kaXYnKSk7CgkJCWNoYXJ0LmRyYXcoZGF0YSwgb3B0aW9ucyk7CgkJfQoKCQlmdW5jdGlvbiBkcmF3VG9rZW5Db25zdW1wdGlvbkNoYXJ0KHJhd0RhdGEpIHsKCQkJY29uc3QgbGxtU3RlcHMgPSByYXdEYXRhLmZpbHRlcihkID0+IGQuVHlwZSA9PT0gImxsbSIpOwoJCQlpZiAobGxtU3RlcHMubGVuZ3RoID09PSAwKSByZXR1cm47CgoJCQljb25zdCBkYXRhID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkRhdGFUYWJsZSgpOwoJCQlkYXRhLmFkZENvbHVtbignc3RyaW5nJywgJ1N0ZXAnKTsJCQkKCQkJZGF0YS5hZGRDb2x1bW4oJ251bWJlcicsICdUb2tlbnMnKTsJCQkKCQkJZGF0YS5hZGRDb2x1bW4oe3R5cGU6ICdzdHJpbmcnLCByb2xlOiAnc3R5bGUnfSk7CQoJCQlkYXRhLmFkZENvbHVtbih7dHlwZTogJ3N0cmluZycsIHJvbGU6ICd0b29sdGlwJ30pOwkKCgkJCWNvbnN0IGFnZW50Q29sb3JzID0ge307CgkJCWNvbnN0IHBhbGV0dGUgPSBbJyM0Mjg1RjQnLCAnI0RCNDQzNycsICcjRjRCNDAwJywgJyMwRjlENTgnLCAnI0FCNDdCQycsICcjMDBBQ0MxJ107CgkJCWxldCBjb2xvcklkeCA9IDA7CgkJCWNvbnN0IGFnZW50TExNQ291bnRzID0ge307CgkJCWxsbVN0ZXBzLmZvckVhY2gocyA9PiB7CgkJCQlpZiAoIWFnZW50Q29sb3JzW3MuTmFtZV0pIHsKCQkJCQlhZ2VudENvbG9yc1tzLk5hbWVdID0gcGFsZXR0ZVtjb2xvcklkeCAlIHBhbGV0dGUubGVuZ3RoXTsKCQkJCQljb2xvcklkeCsrOwoJCQkJfQoKCQkJCWFnZW50TExNQ291bnRzW3MuTmFtZV0gPSAoYWdlbnRMTE1Db3VudHNbcy5OYW1lXSB8fCAwKSArIDE7CgkJCQljb25zdCBsYWJlbCA9IGAke3MuTmFtZX0tJHthZ2VudExMTUNvdW50c1tzLk5hbWVdfWA7CgkJCQljb25zdCB0b3RhbFRva2VucyA9IHMuSW5wdXRUb2tlbnMgKyBzLk91dHB1dFRva2VucyArIHMuT3V0cHV0VGhvdWdodHNUb2tlbnM7CgkJCQljb25zdCBzdHlsZSA9IGBjb2xvcjogJHthZ2VudENvbG9yc1tzLk5hbWVdfWA7CgkJCQlsZXQgdG9vbHRpcCA9IGBUb3RhbCBUb2tlbnM6ICR7dG90YWxUb2tlbnN9XG4oSW46ICR7cy5JbnB1dFRva2Vuc30sIE91dDogJHtzLk91dHB1dFRva2Vuc30sIFRob3VnaHRzOiAke3MuT3V0cHV0VGhvdWdodHNUb2tlbnN9KWA7CgkJCQlpZiAocy5Ub29sQ2FsbHMgJiYgcy5Ub29sQ2FsbHMubGVuZ3RoID4gMCkgewoJCQkJCXRvb2x0aXAgKz0gYFxuVG9vbHM6ICR7cy5Ub29sQ2FsbHMuam9pbignLCAnKX1gOwoJCQkJfQoKCQkJCWRhdGEuYWRkUm93KFtsYWJlbCwgdG90YWxUb2tlbnMsIHN0eWxlLCB0b29sdGlwXSk7CgkJCX0pOwoKCQkJY29uc3Qgb3B0aW9ucyA9IHsKCQkJCXRpdGxlOiAnVG9rZW4gQ29uc3VtcHRpb24gYnkgTExNIENhbGxzJywKCQkJCWhBeGlzOiB7CgkJCQkJdGl0bGU6ICdMTE0gQ2FsbCBTZXF1ZW5jZScsCgkJCQl9LAoJCQkJdkF4aXM6IHsgdGl0bGU6ICdDb25zdW1lZCBUb2tlbnMnIH0sCgkJCQlsZWdlbmQ6IHsgcG9zaXRpb246ICdub25lJyB9LAoJCQkJYmFyOiB7IGdyb3VwV2lkdGg6ICc3NSUnIH0sCgkJCQljaGFydEFyZWE6IHsgd2lkdGg6ICc4NSUnLCBoZWlnaHQ6ICc3MCUnIH0sCgkJCQloZWlnaHQ6IDQwMAoJCQl9OwoKCQkJY29uc3QgY2hhcnQgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uQ29sdW1uQ2hhcnQoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rva2VuX2NoYXJ0X2RpdicpKTsKCQkJY2hhcnQuZHJhdyhkYXRhLCBvcHRpb25zKTsKCQl9CgkJbGV0IGFsbEV4cGFuZGVkID0gZmFsc2U7CgkJZnVuY3Rpb24gdG9nZ2xlQWxsRGV0YWlscygpIHsKCQkJYWxsRXhwYW5kZWQgPSAhYWxsRXhwYW5kZWQ7CgkJCWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJ2RldGFpbHMnKS5mb3JFYWNoKGQgPT4gewoJCQkJaWYgKGFsbEV4cGFuZGVkKSBkLnNldEF0dHJpYnV0ZSgnb3BlbicsICcnKTsKCQkJCWVsc2UgZC5yZW1vdmVBdHRyaWJ1dGUoJ29wZW4nKTsKCQkJfSk7CgkJfQoJPC9zY3JpcHQ+CgoKPC9ib2R5Pgo8L2h0bWw+Cg==" },ValueFrom:&ValueFrom{Path:/output/result.json,JSONPath:,JQFilter:,Parameter:,Default:nil,Supplied:nil,Event:,Expression:,ConfigMapKeyRef:nil,},GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},Result:nil,ExitCode:*0,} --------- Name: series-workflowgstwm[1] Phase: Running StartedAt: 2026-08-31 18:16:42 +0000 UTC FinishedAt: 0001-01-01 00:00:00 +0000 UTC Input: nil Output: nil --------- Name: series-workflowgstwm[1].abort-on-skip-outcome Phase: Failed StartedAt: 2026-08-31 18:16:42 +0000 UTC FinishedAt: 2026-08-31 18:16:45 +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,}