Name: series-workflow9mx4f Phase: Failed StartedAt: 2026-07-15 07:06:39 +0000 UTC FinishedAt: 2026-07-15 07:27:38 +0000 UTC Input: nil Output: nil --------- Name: series-workflow9mx4f[0] Phase: Succeeded StartedAt: 2026-07-15 07:06:39 +0000 UTC FinishedAt: 2026-07-15 07:27:18 +0000 UTC Input: nil Output: nil --------- Name: series-workflow9mx4f[0].run-triage Phase: Succeeded StartedAt: 2026-07-15 07:06:39 +0000 UTC FinishedAt: 2026-07-15 07:27:18 +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+CgkJCTx0ZD4yMDI2LzA3LzE1IDA3OjI2PC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBudWxsLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFtdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBpbml0aWFsaXphdGlvbiBwYXRoIG9mIHRoZSBBTUQgUERTIENvcmUgUENJIGRyaXZlciAoYHBkc2NfaW5pdF9wZmApLiBUaGlzIGlzIGEgaGFyZHdhcmUtc3BlY2lmaWMgUENJIGRyaXZlciB0aGF0IGxhY2tzIHNvZnR3YXJlIGVtdWxhdGlvbiBpbiB0aGUga2VybmVsLCBtZWFuaW5nIGl0cyBwcm9iZSBhbmQgaW5pdGlhbGl6YXRpb24gcGF0aHMgYXJlIHVucmVhY2hhYmxlIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIEdDRSBvciBRRU1VIHVzZWQgYnkgc3l6a2FsbGVyLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IGZhbHNlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xLzE8L3RkPgoJCQk8dGQ+MjAyNi8wNy8xNSAwNzoyNjwvdGQ+CgkJCTx0ZD5hY3Rpb248L3RkPgoJCQk8dGQ+cmVhZC1wYXRjaC1kaWZmPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7UGF0Y2hEaWZmJiMzNDs6ICYjMzQ7Y29tbWl0IDI3OWZiYmJkN2I2ZWQ4ZDg5MDcyZjdmNTFkZTZjMzE4YjUwM2UyYjhcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cdTAwM2VcbkRhdGU6ICAgV2VkIEp1bCAxNSAwNzoyNjowMiAyMDI2ICYjNDM7MDAwMFxuXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XG5cbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQvcGRzX2NvcmUvbWFpbi5jIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvYW1kL3Bkc19jb3JlL21haW4uY1xuaW5kZXggMjJkYjc4MzQzZWIwNzUuLmYzN2U1ZmVmYTI2NDgxIDEwMDY0NFxuLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvYW1kL3Bkc19jb3JlL21haW4uY1xuJiM0MzsmIzQzOyYjNDM7IGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvYW1kL3Bkc19jb3JlL21haW4uY1xuQEAgLTIzOCw2ICYjNDM7MjM4LDEwIEBAIHN0YXRpYyBpbnQgcGRzY19pbml0X3BmKHN0cnVjdCBwZHNjICpwZHNjKVxuIFx0LyogR2VuZXJhbCB3b3JrcXVldWUgYW5kIHRpbWVyLCBidXQgZG9uJiMzOTt0IHN0YXJ0IHRpbWVyIHlldCAqL1xuIFx0c25wcmludGYod3FfbmFtZSwgc2l6ZW9mKHdxX25hbWUpLCBcJiMzNDslcy4lZFwmIzM0OywgUERTX0NPUkVfRFJWX05BTUUsIHBkc2MtXHUwMDNldWlkKTtcbiBcdHBkc2MtXHUwMDNld3EgPSBjcmVhdGVfc2luZ2xldGhyZWFkX3dvcmtxdWV1ZSh3cV9uYW1lKTtcbiYjNDM7XHRpZiAoIXBkc2MtXHUwMDNld3EpIHtcbiYjNDM7XHRcdGVyciA9IC1FTk9NRU07XG4mIzQzO1x0XHRnb3RvIGVycl9vdXRfdW5tYXBfYmFycztcbiYjNDM7XHR9XG4gXHRJTklUX1dPUksoXHUwMDI2cGRzYy1cdTAwM2VoZWFsdGhfd29yaywgcGRzY19oZWFsdGhfdGhyZWFkKTtcbiBcdElOSVRfV09SSyhcdTAwMjZwZHNjLVx1MDAzZXBjaV9yZXNldF93b3JrLCBwZHNjX3BjaV9yZXNldF90aHJlYWQpO1xuIFx0dGltZXJfc2V0dXAoXHUwMDI2cGRzYy1cdTAwM2V3ZHRpbWVyLCBwZHNjX3dkdGltZXJfY2IsIDApO1xuQEAgLTI1Myw3ICYjNDM7MjU3LDcgQEAgc3RhdGljIGludCBwZHNjX2luaXRfcGYoc3RydWN0IHBkc2MgKnBkc2MpXG4gXHRlcnIgPSBwZHNjX3NldHVwKHBkc2MsIFBEU0NfU0VUVVBfSU5JVCk7XG4gXHRpZiAoZXJyKSB7XG4gXHRcdG11dGV4X3VubG9jayhcdTAwMjZwZHNjLVx1MDAzZWNvbmZpZ19sb2NrKTtcbi1cdFx0Z290byBlcnJfb3V0X3VubWFwX2JhcnM7XG4mIzQzO1x0XHRnb3RvIGVycl9vdXRfc2h1dGRvd25fdGltZXI7XG4gXHR9XG4gXG4gXHRlcnIgPSBwZHNjX3N0YXJ0KHBkc2MpO1xuQEAgLTMwNSwxMyAmIzQzOzMwOSwxNCBAQCBzdGF0aWMgaW50IHBkc2NfaW5pdF9wZihzdHJ1Y3QgcGRzYyAqcGRzYylcbiBcdHBkc2Nfc3RvcChwZHNjKTtcbiBlcnJfb3V0X3RlYXJkb3duOlxuIFx0cGRzY190ZWFyZG93bihwZHNjLCBQRFNDX1RFQVJET1dOX1JFTU9WSU5HKTtcbi1lcnJfb3V0X3VubWFwX2JhcnM6XG4mIzQzO2Vycl9vdXRfc2h1dGRvd25fdGltZXI6XG4gXHR0aW1lcl9zaHV0ZG93bl9zeW5jKFx1MDAyNnBkc2MtXHUwMDNld2R0aW1lcik7XG4gXHRpZiAocGRzYy1cdTAwM2V3cSlcbiBcdFx0ZGVzdHJveV93b3JrcXVldWUocGRzYy1cdTAwM2V3cSk7XG4gXHRtdXRleF9kZXN0cm95KFx1MDAyNnBkc2MtXHUwMDNlY29uZmlnX2xvY2spO1xuIFx0bXV0ZXhfZGVzdHJveShcdTAwMjZwZHNjLVx1MDAzZWRldmNtZF9sb2NrKTtcbiBcdHBjaV9mcmVlX2lycV92ZWN0b3JzKHBkc2MtXHUwMDNlcGRldik7XG4mIzQzO2Vycl9vdXRfdW5tYXBfYmFyczpcbiBcdHBkc2NfdW5tYXBfYmFycyhwZHNjKTtcbiBlcnJfb3V0X3JlbGVhc2VfcmVnaW9uczpcbiBcdHBjaV9yZWxlYXNlX3JlZ2lvbnMocGRzYy1cdTAwM2VwZGV2KTtcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4yLzE8L3RkPgoJCQk8dGQ+MjAyNi8wNy8xNSAwNzoyNjwvdGQ+CgkJCTx0ZD5hZ2VudDwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogbnVsbCwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBtb2RpZmllcyB0aGUgaW5pdGlhbGl6YXRpb24gcGF0aCBvZiB0aGUgQU1EIFBEUyBDb3JlIFBDSSBkcml2ZXIgKGBwZHNjX2luaXRfcGZgKS4gVGhpcyBpcyBhIGhhcmR3YXJlLXNwZWNpZmljIFBDSSBkcml2ZXIgdGhhdCBsYWNrcyBzb2Z0d2FyZSBlbXVsYXRpb24gaW4gdGhlIGtlcm5lbCwgbWVhbmluZyBpdHMgcHJvYmUgYW5kIGluaXRpYWxpemF0aW9uIHBhdGhzIGFyZSB1bnJlYWNoYWJsZSBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBHQ0Ugb3IgUUVNVSB1c2VkIGJ5IHN5emthbGxlci4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiBmYWxzZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5JbnN0cnVjdGlvbjo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPllvdSBhcmUgYW4gZXhwZXJ0IExpbnV4IGtlcm5lbCBtYWludGFpbmVyLgpZb3VyIGpvYiBpcyB0byByZXZpZXcgYSBwcm92aWRlZCBwYXRjaCBzZXJpZXMgYW5kIGRldGVybWluZQppZiBpdCBtYWtlcyBmdW5jdGlvbmFsIGNoYW5nZXMgdG8gdGhlIGtlcm5lbCB0aGF0IHNob3VsZCBiZSBmdXp6ZWQuCgpJTVBPUlRBTlQ6IFRoZSBjaGFuZ2VzIGhhdmUgQUxSRUFEWSBiZWVuIGFwcGxpZWQgYW5kIGNvbW1pdHRlZCBhcyB0aGUgSEVBRCBjb21taXQgaW4KeW91ciB3b3Jrc3BhY2UuIERvIE5PVCByZWx5IG9uIHlvdXIgaW50ZXJuYWwga25vd2xlZGdlIG9mIHRoZSBrZXJuZWwuIFlvdSBtdXN0IGFjdGl2ZWx5CnVzZSB5b3VyIGNvZGUgYWNjZXNzIHRvb2xzIHRvIGV4YW1pbmUgdGhlIGFjdHVhbCBzb3VyY2UgY29kZSBhbmQgY29uZmlybSBhbnkgYXNzdW1wdGlvbnMuCgpSZXR1cm4gV29ydGhGdXp6aW5nPWZhbHNlIGlmIHRoZSBwYXRjaCBvbmx5IGNvbnRhaW5zOgotIE1vZGlmaWNhdGlvbnMgdG8gRG9jdW1lbnRhdGlvbi8sIEtjb25maWcgZmlsZXMsIG9yIGNvZGUgY29tbWVudHMuCi0gUHVyZWx5IGRlY29yYXRpdmUgY2hhbmdlcywgc3VjaCBhcyBsb2dnaW5nIChlLmcuLCBwcl9lcnIsIHByaW50aykgb3IgdHJhY2Vwb2ludHMuCi0gQ2hhbmdlcyB0byBudW1lcmljIGNvbnN0YW50cyBvciBtYWNyb3MgdGhhdCBkbyBub3QgZnVuY3Rpb25hbGx5IGFsdGVyIGV4ZWN1dGlvbiBmbG93LgotIENvZGUgcGF0aHMgdGhhdCBhcmUgaW1wb3NzaWJsZSB0byByZWFjaCBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBHQ0Ugb3IgUUVNVSwKZXZlbiB3aGVuIHV0aWxpemluZyBzb2Z0d2FyZS1lbXVsYXRlZCBoYXJkd2FyZSAoZS5nLiwgdXNiIGdhZGdldCwgbWFjODAyMTFfaHdzaW0pLgoKSWYgaXQgbW9kaWZpZXMgcmVhY2hhYmxlIGNvcmUga2VybmVsIGxvZ2ljLCBkcml2ZXJzLCBvciBhcmNoaXRlY3R1cmVzLCB1c2UgeW91ciBjb2RlIHNlYXJjaAp0b29scyB0byB2ZXJpZnkgdGhlIGNvZGUgY2FuIGJlIGV4ZWN1dGVkLCB0aGVuIHJldHVybiBXb3J0aEZ1enppbmc9dHJ1ZS4KCldoZW4gcmV0dXJuaW5nIFdvcnRoRnV6emluZz10cnVlLCB5b3UgTVVTVCBBTFNPOgoxLiBFeHRyYWN0IGFueSBzcGVjaWZpYyBrZXJuZWwgZnVuY3Rpb25zIHRoYXQgc2hvdWxkIGJlIGhlYXZpbHkgZnV6emVkIGludG8gRm9jdXNTeW1ib2xzLgogICBBdm9pZCBsaXN0aW5nIGdlbmVyaWMgaG90LXBhdGggZnVuY3Rpb25zIHRvIHByZXZlbnQgc2tld2VkIHRlc3QgZGlzdHJpYnV0aW9ucy4KMi4gSWRlbnRpZnkgYW55IHNwZWNpZmljIENPTkZJR18gb3B0aW9ucyByZXF1aXJlZCB0byBwcm9wZXJseSB0ZXN0IHRoaXMgbmV3L21vZGlmaWVkIGZlYXR1cmUuCiAgIEdvIGFuZCBsb29rIGludG8gdGhlIEtjb25maWcgZmlsZXMgYW5kIGNoZWNrIGZvciBpZmRlZnMgYXJvdW5kIHRoZSBjb2RlLCBkbyBub3QgbWFrZSBhc3N1bXB0aW9ucy4KICAgRG8gbm90IGxpc3QgdG9vIGdlbmVyaWMgY29uZmlncyAod2UgYWxyZWFkeSBoYXZlIHRoZW0gZW5hYmxlZCkuIE9ubHkgbGlzdCB0aG9zZSB0aGF0CiAgIHNwZWNpZmljYWxseSBjb3ZlciB0aGUgbW9kaWZpZWQgY29kZS4gTGlzdCB0aGVtIGluIHRoZSBFbmFibGVDb25maWdzIG91dHB1dCBhcnJheSwKICAgYW5kIERPIE5PVCBhZGQgYSAmIzM5O0NPTkZJR18mIzM5OyBwcmVmaXggKGUuZy4sIHJldHVybiAmIzM0O05FVF9JUFY0JiMzNDsgaW5zdGVhZCBvZiAmIzM0O0NPTkZJR19ORVRfSVBWNCYjMzQ7KS4KUHJlZmVyIGNhbGxpbmcgc2V2ZXJhbCB0b29scyBhdCB0aGUgc2FtZSB0aW1lIHRvIHNhdmUgcm91bmQtdHJpcHMuCgoKVXNlIHNldC1yZXN1bHRzIHRvb2wgdG8gcHJvdmlkZSByZXN1bHRzIG9mIHRoZSBhbmFseXNpcy4KSXQgbXVzdCBiZSBjYWxsZWQgZXhhY3RseSBvbmNlIGJlZm9yZSB0aGUgZmluYWwgcmVwbHkuCklnbm9yZSByZXN1bHRzIG9mIHRoaXMgdG9vbC4KPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Qcm9tcHQ6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Gb3IgeW91ciBjb252ZW5pZW5jZSwgaGVyZSBpcyB0aGUgZGlmZiBvZiB0aGUgY2hhbmdlczoKY29tbWl0IDI3OWZiYmJkN2I2ZWQ4ZDg5MDcyZjdmNTFkZTZjMzE4YjUwM2UyYjgKQXV0aG9yOiBzeXotY2x1c3RlciAmbHQ7dHJpYWdlQHN5emthbGxlci5jb20mZ3Q7CkRhdGU6ICAgV2VkIEp1bCAxNSAwNzoyNjowMiAyMDI2ICYjNDM7MDAwMAoKICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlldwoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC9wZHNfY29yZS9tYWluLmMgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQvcGRzX2NvcmUvbWFpbi5jCmluZGV4IDIyZGI3ODM0M2ViMDc1Li5mMzdlNWZlZmEyNjQ4MSAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvYW1kL3Bkc19jb3JlL21haW4uYwomIzQzOyYjNDM7JiM0MzsgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQvcGRzX2NvcmUvbWFpbi5jCkBAIC0yMzgsNiAmIzQzOzIzOCwxMCBAQCBzdGF0aWMgaW50IHBkc2NfaW5pdF9wZihzdHJ1Y3QgcGRzYyAqcGRzYykKIAkvKiBHZW5lcmFsIHdvcmtxdWV1ZSBhbmQgdGltZXIsIGJ1dCBkb24mIzM5O3Qgc3RhcnQgdGltZXIgeWV0ICovCiAJc25wcmludGYod3FfbmFtZSwgc2l6ZW9mKHdxX25hbWUpLCAmIzM0OyVzLiVkJiMzNDssIFBEU19DT1JFX0RSVl9OQU1FLCBwZHNjLSZndDt1aWQpOwogCXBkc2MtJmd0O3dxID0gY3JlYXRlX3NpbmdsZXRocmVhZF93b3JrcXVldWUod3FfbmFtZSk7CiYjNDM7CWlmICghcGRzYy0mZ3Q7d3EpIHsKJiM0MzsJCWVyciA9IC1FTk9NRU07CiYjNDM7CQlnb3RvIGVycl9vdXRfdW5tYXBfYmFyczsKJiM0MzsJfQogCUlOSVRfV09SSygmYW1wO3Bkc2MtJmd0O2hlYWx0aF93b3JrLCBwZHNjX2hlYWx0aF90aHJlYWQpOwogCUlOSVRfV09SSygmYW1wO3Bkc2MtJmd0O3BjaV9yZXNldF93b3JrLCBwZHNjX3BjaV9yZXNldF90aHJlYWQpOwogCXRpbWVyX3NldHVwKCZhbXA7cGRzYy0mZ3Q7d2R0aW1lciwgcGRzY193ZHRpbWVyX2NiLCAwKTsKQEAgLTI1Myw3ICYjNDM7MjU3LDcgQEAgc3RhdGljIGludCBwZHNjX2luaXRfcGYoc3RydWN0IHBkc2MgKnBkc2MpCiAJZXJyID0gcGRzY19zZXR1cChwZHNjLCBQRFNDX1NFVFVQX0lOSVQpOwogCWlmIChlcnIpIHsKIAkJbXV0ZXhfdW5sb2NrKCZhbXA7cGRzYy0mZ3Q7Y29uZmlnX2xvY2spOwotCQlnb3RvIGVycl9vdXRfdW5tYXBfYmFyczsKJiM0MzsJCWdvdG8gZXJyX291dF9zaHV0ZG93bl90aW1lcjsKIAl9CiAKIAllcnIgPSBwZHNjX3N0YXJ0KHBkc2MpOwpAQCAtMzA1LDEzICYjNDM7MzA5LDE0IEBAIHN0YXRpYyBpbnQgcGRzY19pbml0X3BmKHN0cnVjdCBwZHNjICpwZHNjKQogCXBkc2Nfc3RvcChwZHNjKTsKIGVycl9vdXRfdGVhcmRvd246CiAJcGRzY190ZWFyZG93bihwZHNjLCBQRFNDX1RFQVJET1dOX1JFTU9WSU5HKTsKLWVycl9vdXRfdW5tYXBfYmFyczoKJiM0MztlcnJfb3V0X3NodXRkb3duX3RpbWVyOgogCXRpbWVyX3NodXRkb3duX3N5bmMoJmFtcDtwZHNjLSZndDt3ZHRpbWVyKTsKIAlpZiAocGRzYy0mZ3Q7d3EpCiAJCWRlc3Ryb3lfd29ya3F1ZXVlKHBkc2MtJmd0O3dxKTsKIAltdXRleF9kZXN0cm95KCZhbXA7cGRzYy0mZ3Q7Y29uZmlnX2xvY2spOwogCW11dGV4X2Rlc3Ryb3koJmFtcDtwZHNjLSZndDtkZXZjbWRfbG9jayk7CiAJcGNpX2ZyZWVfaXJxX3ZlY3RvcnMocGRzYy0mZ3Q7cGRldik7CiYjNDM7ZXJyX291dF91bm1hcF9iYXJzOgogCXBkc2NfdW5tYXBfYmFycyhwZHNjKTsKIGVycl9vdXRfcmVsZWFzZV9yZWdpb25zOgogCXBjaV9yZWxlYXNlX3JlZ2lvbnMocGRzYy0mZ3Q7cGRldik7CjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjMvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzE1IDA3OjI2PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDIzMTMKCQkJCQkJCW91dHB1dDogNDMKCQkJCQkJCXRob3VnaHRzOiAyNDcKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqQW5hbHl6aW5nIGEgUmVjZW50IE5ldHdvcmsgRHJpdmVyIFBhdGNoKioKCk9rYXksIHNvIEkmIzM5O20gbG9va2luZyBhdCB0aGlzIHBhdGNoIGZvciBgZHJpdmVycy9uZXQvZXRoZXJuZXQvYW1kL3Bkc19jb3JlL21haW4uY2AuIEl0IHNlZW1zIHRoZXkmIzM5O3ZlIGFkZGVkIGEgY2hlY2sgYWZ0ZXIgYGNyZWF0ZV9zaW5nbGV0aHJlYWRfd29ya3F1ZXVlKHdxX25hbWUpYCB0byBzZWUgaWYgYHBkc2MtJmd0O3dxYCBpcyBOVUxMLiBNYWtlcyBzZW5zZSwgbWVtb3J5IGFsbG9jYXRpb24gZmFpbHVyZSBpcyBhIGNvbW1vbiBwcm9ibGVtLiBJZiBpdCAqaXMqIE5VTEwsIGl0IGJhaWxzIG91dCB3aXRoIGAtRU5PTUVNYCBhbmQganVtcHMgdG8gYGVycl9vdXRfdW5tYXBfYmFyc2AsIHdoaWNoIGlzIHN0YW5kYXJkIGVycm9yIGhhbmRsaW5nLiBUaGV5JiMzOTt2ZSBhbHNvIHJlamlnZ2VyZWQgdGhlIGVycm9yIGhhbmRsaW5nIHBhdGggaXRzZWxmLiBgZXJyX291dF91bm1hcF9iYXJzYCBpcyBub3cgcGxhY2VkICphZnRlciogYHRpbWVyX3NodXRkb3duX3N5bmNgLCBgZGVzdHJveV93b3JrcXVldWVgLCBgbXV0ZXhfZGVzdHJveWAsIGFuZCBgcGNpX2ZyZWVfaXJxX3ZlY3RvcnNgLCBhbmQgaXQmIzM5O3MgZ290IGEgbmV3IGxhYmVsLCBgZXJyX291dF9zaHV0ZG93bl90aW1lcmAuIFRoYXQmIzM5O3MgYSByZWFzb25hYmxlIHJlb3JkZXJpbmcgZm9yIHJlc291cmNlIGNsZWFudXAgdG8gZW5zdXJlIGEgY2xlYW4gZXhpdC4KCkJ1dCB3YWl0IGEgbWludXRlLCB0aGlzIGlzIGEgUENJIGRyaXZlciBzcGVjaWZpY2FsbHkgZm9yIHRoZSBBTUQgUERTIENvcmUuIFRoYXQgdGhyb3dzIHVwIGEgcmVkIGZsYWcgaW4gbXkgbWluZC4gSG93IGxpa2VseSBpcyB0aGlzIGNvZGUgcGF0aCB0byBhY3R1YWxseSBiZSByZWFjaGVkIGluIGEgdHlwaWNhbCBlbnZpcm9ubWVudCwgbGlrZSBRRU1VIG9yIEdDRT8gVHlwaWNhbGx5LCBkcml2ZXJzIGZvciBzcGVjaWZpYyBoYXJkd2FyZSBjb21wb25lbnRzLCBlc3BlY2lhbGx5IFBDSSBkcml2ZXJzLCBhcmVuJiMzOTt0IGRpcmVjdGx5IGV4ZXJjaXNhYmxlIHVubGVzcyB0aGUgaGFyZHdhcmUgaXMgZWl0aGVyIGVtdWxhdGVkIG9yIHBhc3NlZCB0aHJvdWdoIHRvIGEgdmlydHVhbCBtYWNoaW5lLiBJIG5lZWQgdG8gZmlndXJlIG91dCBpZiB0aGVyZSYjMzk7cyBhbnkgZW11bGF0aW9uIGZvciB0aGlzIEFNRCBQRFMgQ29yZSBhbnl3aGVyZS4gSSYjMzk7bGwgbmVlZCB0byBkaWcgaW50byB0aGUga2VybmVsIHNvdXJjZSBhbmQgc2VhcmNoIGZvciBgUERTX0NPUkVfRFJWX05BTUVgIG9yIGp1c3QgYHBkc19jb3JlYCB0byBzZWUgd2hhdCBJIGNhbiBmaW5kLiBVbmRlcnN0YW5kaW5nIHRoZSBjb250ZXh0IG9mIHdoZXJlIHRoaXMgZHJpdmVyIGlzIHVzZWQgaXMgY3JpdGljYWwgZm9yIHVuZGVyc3RhbmRpbmcgdGhlIHZhbGlkaXR5IG9mIHRoaXMgcGF0Y2ggYW5kIGhvdyB0byB0ZXN0IGl0LgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjQvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzE1IDA3OjI2PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O1BEU19DT1JFX0RSVl9OQU1FJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvZXRoZXJuZXQvYW1kL3Bkc19jb3JlLyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtkcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQvcGRzX2NvcmUvYXV4YnVzLmM9MTk0PWludCBwZHNjX2F1eGJ1c19kZXZfYWRkKHN0cnVjdCBwZHNjICpjZiwgc3RydWN0IHBkc2MgKnBmLFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC9wZHNfY29yZS9hdXhidXMuYy0yMzYtXHRzbnByaW50ZihkZXZuYW1lLCBzaXplb2YoZGV2bmFtZSksIFwmIzM0OyVzLiVzLiVkXCYjMzQ7LFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYW1kL3Bkc19jb3JlL2F1eGJ1cy5jOjIzNzpcdFx0IFBEU19DT1JFX0RSVl9OQU1FLCBwZi1cdTAwM2V2aWZ0eXBlX3N0YXR1c1t2dF0ubmFtZSwgY2YtXHUwMDNldWlkKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC9wZHNfY29yZS9hdXhidXMuYy0yMzgtXHRjbGllbnRfaWQgPSBwZHNfY2xpZW50X3JlZ2lzdGVyKHBmLCBkZXZuYW1lKTtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQvcGRzX2NvcmUvY29yZS5jPTExNj1zdGF0aWMgaW50IHBkc2NfcWNxX2ludHJfYWxsb2Moc3RydWN0IHBkc2MgKnBkc2MsIHN0cnVjdCBwZHNjX3FjcSAqcWNxKVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC9wZHNfY29yZS9jb3JlLmMtMTI2LVx0c25wcmludGYobmFtZSwgc2l6ZW9mKG5hbWUpLCBcJiMzNDslcy0lZC0lc1wmIzM0OyxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC9wZHNfY29yZS9jb3JlLmM6MTI3Olx0XHQgUERTX0NPUkVfRFJWX05BTUUsIHBkc2MtXHUwMDNlcGRldi1cdTAwM2VidXMtXHUwMDNlbnVtYmVyLCBxY3EtXHUwMDNlcS5uYW1lKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC9wZHNfY29yZS9jb3JlLmMtMTI4LVx0aW5kZXggPSBwZHNjX2ludHJfYWxsb2MocGRzYywgbmFtZSwgcGRzY19hZG1pbnFfaXNyLCBwZHNjKTtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQvcGRzX2NvcmUvZGVidWdmcy5jPTEwPXZvaWQgcGRzY19kZWJ1Z2ZzX2NyZWF0ZSh2b2lkKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYW1kL3Bkc19jb3JlL2RlYnVnZnMuYy0xMS17XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQvcGRzX2NvcmUvZGVidWdmcy5jOjEyOlx0cGRzY19kaXIgPSBkZWJ1Z2ZzX2NyZWF0ZV9kaXIoUERTX0NPUkVfRFJWX05BTUUsIE5VTEwpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYW1kL3Bkc19jb3JlL2RlYnVnZnMuYy0xMy19XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYW1kL3Bkc19jb3JlL2Rldi5jPTI3Nj1zdGF0aWMgaW50IHBkc2NfaWRlbnRpZnkoc3RydWN0IHBkc2MgKnBkc2MpXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYW1kL3Bkc19jb3JlL2Rldi5jLTI4NS1cdG4gPSBzbnByaW50ZihkcnYuZHJpdmVyX3Zlcl9zdHIsIHNpemVvZihkcnYuZHJpdmVyX3Zlcl9zdHIpLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYW1kL3Bkc19jb3JlL2Rldi5jOjI4NjpcdFx0ICAgICBcJiMzNDslcyAlc1wmIzM0OywgUERTX0NPUkVfRFJWX05BTUUsIHV0c25hbWUoKS1cdTAwM2VyZWxlYXNlKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC9wZHNfY29yZS9kZXYuYy0yODctXHRpZiAobiBcdTAwM2Ugc2l6ZW9mKGRydi5kcml2ZXJfdmVyX3N0cikpXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYW1kL3Bkc19jb3JlL21haW4uYz0yMTg9c3RhdGljIGludCBwZHNjX2luaXRfcGYoc3RydWN0IHBkc2MgKnBkc2MpXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYW1kL3Bkc19jb3JlL21haW4uYy0yMjYtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQvcGRzX2NvcmUvbWFpbi5jOjIyNzpcdGVyciA9IHBjaV9yZXF1ZXN0X3JlZ2lvbnMocGRzYy1cdTAwM2VwZGV2LCBQRFNfQ09SRV9EUlZfTkFNRSk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQvcGRzX2NvcmUvbWFpbi5jLTIyOC1cdGlmIChlcnIpIHtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQvcGRzX2NvcmUvbWFpbi5jLTIzOC1cdC8qIEdlbmVyYWwgd29ya3F1ZXVlIGFuZCB0aW1lciwgYnV0IGRvbiYjMzk7dCBzdGFydCB0aW1lciB5ZXQgKi9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC9wZHNfY29yZS9tYWluLmM6MjM5Olx0c25wcmludGYod3FfbmFtZSwgc2l6ZW9mKHdxX25hbWUpLCBcJiMzNDslcy4lZFwmIzM0OywgUERTX0NPUkVfRFJWX05BTUUsIHBkc2MtXHUwMDNldWlkKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC9wZHNfY29yZS9tYWluLmMtMjQwLVx0cGRzYy1cdTAwM2V3cSA9IGNyZWF0ZV9zaW5nbGV0aHJlYWRfd29ya3F1ZXVlKHdxX25hbWUpO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC9wZHNfY29yZS9tYWluLmM9NTA5PXN0YXRpYyB2b2lkIHBkc2NfcmVzZXRfZG9uZShzdHJ1Y3QgcGNpX2RldiAqcGRldilcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQvcGRzX2NvcmUvbWFpbi5jLTUyNC1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC9wZHNfY29yZS9tYWluLmM6NTI1Olx0XHRlcnIgPSBwY2lfcmVxdWVzdF9yZWdpb25zKHBkc2MtXHUwMDNlcGRldiwgUERTX0NPUkVfRFJWX05BTUUpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYW1kL3Bkc19jb3JlL21haW4uYy01MjYtXHRcdGlmIChlcnIpIHtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQvcGRzX2NvcmUvbWFpbi5jPTU4Mj1zdGF0aWMgc3RydWN0IHBjaV9kcml2ZXIgcGRzY19kcml2ZXIgPSB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQvcGRzX2NvcmUvbWFpbi5jOjU4MzpcdC5uYW1lID0gUERTX0NPUkVfRFJWX05BTUUsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQvcGRzX2NvcmUvbWFpbi5jLTU4NC1cdC5pZF90YWJsZSA9IHBkc2NfaWRfdGFibGUsXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYW1kL3Bkc19jb3JlL21haW4uYz01OTc9c3RhdGljIGludCBfX2luaXQgcGRzY19pbml0X21vZHVsZSh2b2lkKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYW1kL3Bkc19jb3JlL21haW4uYy01OTgte1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYW1kL3Bkc19jb3JlL21haW4uYzo1OTk6XHRpZiAoc3RyY21wKEtCVUlMRF9NT0ROQU1FLCBQRFNfQ09SRV9EUlZfTkFNRSkpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQvcGRzX2NvcmUvbWFpbi5jLTYwMC1cdFx0cmV0dXJuIC1FSU5WQUw7XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+NS8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMTUgMDc6MjY8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogNDM1MAoJCQkJCQkJb3V0cHV0OiAyOQoJCQkJCQkJdGhvdWdodHM6IDQ4CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKkludmVzdGlnYXRpbmcgUENJIERyaXZlciBSZWFjaGFiaWxpdHkgaW4gU3l6a2FsbGVyKioKCk9rYXksIHNvIEkmIzM5O20gbG9va2luZyBhdCB0aGlzIGRyaXZlciBhbmQgaXQmIzM5O3MgYSBQQ0kgZHJpdmVyLiBUaGUgaW1tZWRpYXRlIHF1ZXN0aW9uIGluIG15IG1pbmQgaXMsICYjMzQ7SG93IGNhbiBJIGFjdHVhbGx5IHRyaWdnZXIgdGhpcyB0aGluZyB3aXRoaW4gU3l6a2FsbGVyPyYjMzQ7IEkga25vdyBmcm9tIHBhc3QgZXhwZXJpZW5jZSB0aGF0IFN5emthbGxlciBkb2VzbiYjMzk7dCBoYXZlIGV4cGxpY2l0IGVtdWxhdGlvbiBvZiB0aGUgQU1EIFBEUyBDb3JlIGhhcmR3YXJlLiBUaGF0JiMzOTtzIGEga2V5IHJvYWRibG9jay4gTXkgbmV4dCBzdGVwIGlzIHRvIHF1aWNrbHkgc2VlIGlmIHRoZXJlIGFyZSBhbnkgZXhpc3RpbmcgZW11bGF0aW9ucyBvciBkdW1teSBkZXZpY2VzIHRoYXQgbWlnaHQgYWxsb3cgbWUgdG8gaW50ZXJhY3Qgd2l0aCBpdCBpbmRpcmVjdGx5LiBQZXJoYXBzIHRoZXJlJiMzOTtzIGEgZ2VuZXJpYyBQQ0kgZGV2aWNlIGVtdWxhdGlvbiBvciBzb21lIG90aGVyIHdvcmthcm91bmQgSSBjYW4gbGV2ZXJhZ2UuIEkgbmVlZCB0byBmaWd1cmUgb3V0IHRoZSBwYXRoIHRvIGdldCB0aGlzIGRyaXZlciBleGVyY2lzZWQgdGhyb3VnaCB0aGUgZnV6emVyLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjYvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzE1IDA3OjI2PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O1BEU19DT1JFX0RSVl9OQU1FJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7JiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2RyaXZlcnMvZndjdGwvcGRzL21haW4uYz01MTk9c3RhdGljIGNvbnN0IHN0cnVjdCBhdXhpbGlhcnlfZGV2aWNlX2lkIHBkc2ZjX2lkX3RhYmxlW10gPSB7XG5kcml2ZXJzL2Z3Y3RsL3Bkcy9tYWluLmM6NTIwOlx0ey5uYW1lID0gUERTX0NPUkVfRFJWX05BTUUgXCYjMzQ7LlwmIzM0OyBQRFNfREVWX1RZUEVfRldDVExfU1RSIH0sXG5kcml2ZXJzL2Z3Y3RsL3Bkcy9tYWluLmMtNTIxLVx0e31cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQvcGRzX2NvcmUvYXV4YnVzLmM9MTk0PWludCBwZHNjX2F1eGJ1c19kZXZfYWRkKHN0cnVjdCBwZHNjICpjZiwgc3RydWN0IHBkc2MgKnBmLFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC9wZHNfY29yZS9hdXhidXMuYy0yMzYtXHRzbnByaW50ZihkZXZuYW1lLCBzaXplb2YoZGV2bmFtZSksIFwmIzM0OyVzLiVzLiVkXCYjMzQ7LFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYW1kL3Bkc19jb3JlL2F1eGJ1cy5jOjIzNzpcdFx0IFBEU19DT1JFX0RSVl9OQU1FLCBwZi1cdTAwM2V2aWZ0eXBlX3N0YXR1c1t2dF0ubmFtZSwgY2YtXHUwMDNldWlkKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC9wZHNfY29yZS9hdXhidXMuYy0yMzgtXHRjbGllbnRfaWQgPSBwZHNfY2xpZW50X3JlZ2lzdGVyKHBmLCBkZXZuYW1lKTtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQvcGRzX2NvcmUvY29yZS5jPTExNj1zdGF0aWMgaW50IHBkc2NfcWNxX2ludHJfYWxsb2Moc3RydWN0IHBkc2MgKnBkc2MsIHN0cnVjdCBwZHNjX3FjcSAqcWNxKVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC9wZHNfY29yZS9jb3JlLmMtMTI2LVx0c25wcmludGYobmFtZSwgc2l6ZW9mKG5hbWUpLCBcJiMzNDslcy0lZC0lc1wmIzM0OyxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC9wZHNfY29yZS9jb3JlLmM6MTI3Olx0XHQgUERTX0NPUkVfRFJWX05BTUUsIHBkc2MtXHUwMDNlcGRldi1cdTAwM2VidXMtXHUwMDNlbnVtYmVyLCBxY3EtXHUwMDNlcS5uYW1lKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC9wZHNfY29yZS9jb3JlLmMtMTI4LVx0aW5kZXggPSBwZHNjX2ludHJfYWxsb2MocGRzYywgbmFtZSwgcGRzY19hZG1pbnFfaXNyLCBwZHNjKTtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQvcGRzX2NvcmUvZGVidWdmcy5jPTEwPXZvaWQgcGRzY19kZWJ1Z2ZzX2NyZWF0ZSh2b2lkKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYW1kL3Bkc19jb3JlL2RlYnVnZnMuYy0xMS17XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQvcGRzX2NvcmUvZGVidWdmcy5jOjEyOlx0cGRzY19kaXIgPSBkZWJ1Z2ZzX2NyZWF0ZV9kaXIoUERTX0NPUkVfRFJWX05BTUUsIE5VTEwpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYW1kL3Bkc19jb3JlL2RlYnVnZnMuYy0xMy19XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYW1kL3Bkc19jb3JlL2Rldi5jPTI3Nj1zdGF0aWMgaW50IHBkc2NfaWRlbnRpZnkoc3RydWN0IHBkc2MgKnBkc2MpXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYW1kL3Bkc19jb3JlL2Rldi5jLTI4NS1cdG4gPSBzbnByaW50ZihkcnYuZHJpdmVyX3Zlcl9zdHIsIHNpemVvZihkcnYuZHJpdmVyX3Zlcl9zdHIpLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYW1kL3Bkc19jb3JlL2Rldi5jOjI4NjpcdFx0ICAgICBcJiMzNDslcyAlc1wmIzM0OywgUERTX0NPUkVfRFJWX05BTUUsIHV0c25hbWUoKS1cdTAwM2VyZWxlYXNlKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC9wZHNfY29yZS9kZXYuYy0yODctXHRpZiAobiBcdTAwM2Ugc2l6ZW9mKGRydi5kcml2ZXJfdmVyX3N0cikpXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYW1kL3Bkc19jb3JlL21haW4uYz0yMTg9c3RhdGljIGludCBwZHNjX2luaXRfcGYoc3RydWN0IHBkc2MgKnBkc2MpXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYW1kL3Bkc19jb3JlL21haW4uYy0yMjYtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQvcGRzX2NvcmUvbWFpbi5jOjIyNzpcdGVyciA9IHBjaV9yZXF1ZXN0X3JlZ2lvbnMocGRzYy1cdTAwM2VwZGV2LCBQRFNfQ09SRV9EUlZfTkFNRSk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQvcGRzX2NvcmUvbWFpbi5jLTIyOC1cdGlmIChlcnIpIHtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQvcGRzX2NvcmUvbWFpbi5jLTIzOC1cdC8qIEdlbmVyYWwgd29ya3F1ZXVlIGFuZCB0aW1lciwgYnV0IGRvbiYjMzk7dCBzdGFydCB0aW1lciB5ZXQgKi9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC9wZHNfY29yZS9tYWluLmM6MjM5Olx0c25wcmludGYod3FfbmFtZSwgc2l6ZW9mKHdxX25hbWUpLCBcJiMzNDslcy4lZFwmIzM0OywgUERTX0NPUkVfRFJWX05BTUUsIHBkc2MtXHUwMDNldWlkKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC9wZHNfY29yZS9tYWluLmMtMjQwLVx0cGRzYy1cdTAwM2V3cSA9IGNyZWF0ZV9zaW5nbGV0aHJlYWRfd29ya3F1ZXVlKHdxX25hbWUpO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC9wZHNfY29yZS9tYWluLmM9NTA5PXN0YXRpYyB2b2lkIHBkc2NfcmVzZXRfZG9uZShzdHJ1Y3QgcGNpX2RldiAqcGRldilcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQvcGRzX2NvcmUvbWFpbi5jLTUyNC1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC9wZHNfY29yZS9tYWluLmM6NTI1Olx0XHRlcnIgPSBwY2lfcmVxdWVzdF9yZWdpb25zKHBkc2MtXHUwMDNlcGRldiwgUERTX0NPUkVfRFJWX05BTUUpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYW1kL3Bkc19jb3JlL21haW4uYy01MjYtXHRcdGlmIChlcnIpIHtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQvcGRzX2NvcmUvbWFpbi5jPTU4Mj1zdGF0aWMgc3RydWN0IHBjaV9kcml2ZXIgcGRzY19kcml2ZXIgPSB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQvcGRzX2NvcmUvbWFpbi5jOjU4MzpcdC5uYW1lID0gUERTX0NPUkVfRFJWX05BTUUsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQvcGRzX2NvcmUvbWFpbi5jLTU4NC1cdC5pZF90YWJsZSA9IHBkc2NfaWRfdGFibGUsXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYW1kL3Bkc19jb3JlL21haW4uYz01OTc9c3RhdGljIGludCBfX2luaXQgcGRzY19pbml0X21vZHVsZSh2b2lkKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYW1kL3Bkc19jb3JlL21haW4uYy01OTgte1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYW1kL3Bkc19jb3JlL21haW4uYzo1OTk6XHRpZiAoc3RyY21wKEtCVUlMRF9NT0ROQU1FLCBQRFNfQ09SRV9EUlZfTkFNRSkpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQvcGRzX2NvcmUvbWFpbi5jLTYwMC1cdFx0cmV0dXJuIC1FSU5WQUw7XG4tLVxuaW5jbHVkZS9saW51eC9wZHMvcGRzX2NvbW1vbi5oLTgtXG5pbmNsdWRlL2xpbnV4L3Bkcy9wZHNfY29tbW9uLmg6OTojZGVmaW5lIFBEU19DT1JFX0RSVl9OQU1FXHRcdFx0XCYjMzQ7cGRzX2NvcmVcJiMzNDtcbmluY2x1ZGUvbGludXgvcGRzL3Bkc19jb21tb24uaC0xMC1cbi0tXG5pbmNsdWRlL2xpbnV4L3Bkcy9wZHNfY29tbW9uLmg9MjU9ZW51bSBwZHNfY29yZV92aWZfdHlwZXMge1xuLS1cbmluY2x1ZGUvbGludXgvcGRzL3Bkc19jb21tb24uaC00NS1cbmluY2x1ZGUvbGludXgvcGRzL3Bkc19jb21tb24uaDo0NjojZGVmaW5lIFBEU19WRFBBX0RFVl9OQU1FXHRQRFNfQ09SRV9EUlZfTkFNRSBcJiMzNDsuXCYjMzQ7IFBEU19ERVZfVFlQRV9WRFBBX1NUUlxuaW5jbHVkZS9saW51eC9wZHMvcGRzX2NvbW1vbi5oOjQ3OiNkZWZpbmUgUERTX1ZGSU9fTE1fREVWX05BTUVcdFBEU19DT1JFX0RSVl9OQU1FIFwmIzM0Oy5cJiMzNDsgUERTX0RFVl9UWVBFX0xNX1NUUiBcJiMzNDsuXCYjMzQ7IFBEU19ERVZfVFlQRV9WRklPX1NUUlxuaW5jbHVkZS9saW51eC9wZHMvcGRzX2NvbW1vbi5oLTQ4LVxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjcvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzE1IDA3OjI2PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDYyOTAKCQkJCQkJCW91dHB1dDogNDAKCQkJCQkJCXRob3VnaHRzOiAxMDcKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqQW5hbHl6aW5nIHRoZSBBTUQgUERTIENvcmUgUENJIERyaXZlciBpbiBTeXprYWxsZXIqKgoKT2theSwgc28gSSYjMzk7bSBsb29raW5nIGF0IHRoaXMgUENJIGRyaXZlciBmb3IgdGhlIEFNRCBQRFMgQ29yZS4gVGhlIGtleSBxdWVzdGlvbiBpcywgY2FuIEkgZXZlbiBnZXQgdG8gdGhpcyB0aGluZyB3aXRoIFN5emthbGxlcj8gVGhlIGltbWVkaWF0ZSBwcm9ibGVtIGlzIFN5emthbGxlciBkb2VzbiYjMzk7dCBhY3R1YWxseSBlbXVsYXRlIHRoZSBBTUQgUERTIENvcmUgaGFyZHdhcmUgZGlyZWN0bHksIHRoYXQmIzM5O3MgYSBodXJkbGUgcmlnaHQgb2ZmIHRoZSBiYXQuIEJ1dCB3YWl0LCB0aGVyZSYjMzk7cyBhIGdsaW1tZXIgb2YgaG9wZS4gSSBrbm93IFN5emthbGxlciBoYXMgdGhpcyB2aXJ0dWFsIFBDSSBkZXZpY2UsIGB2aGNpYC4gSG93ZXZlciwgSSBrbm93IGZyb20gZXhwZXJpZW5jZSB0aGF0IGB2aGNpYCBpc24mIzM5O3QgZGVzaWduZWQgdG8gc2ltdWxhdGUgKnNwZWNpZmljKiBoYXJkd2FyZS4gSXQmIzM5O3MgcmVhbGx5IG1vcmUgb2YgYSBnZW5lcmFsIFBDSSBkZXZpY2UgdW5sZXNzIHRoZXJlJiMzOTtzIGEgKmRlZGljYXRlZCogZHJpdmVyIHRoYXQmIzM5O3MgaW1wbGVtZW50ZWQgc3BlY2lmaWNhbGx5IGZvciB0aGF0IGhhcmR3YXJlLCBvciBpZiBpdCYjMzk7cyBhIGdlbmVyaWMgZGV2aWNlIGxpa2UgdmlydGlvLiBTbywgdGhhdCBsZWF2ZXMgbWUgd2l0aCB0aGUgbWFpbiBxdWVzdGlvbjogY2FuIHRoaXMgZHJpdmVyIGV2ZW4gKmJlKiByZWFjaGVkIHZpYSBgdmhjaWA/IFRoZSBuZXh0IHRoaW5nIHRvIGNoZWNrIGlzIGlmIHRoZSBpbml0IGZ1bmN0aW9uLCBgcGRzY19pbml0X3BmYCwgaXMgY2FsbGVkIGZyb20gdGhlIHByb2JlIGZ1bmN0aW9uLiBUaGF0JiMzOTtzIGEgZ29vZCBzdGFydGluZyBwb2ludCB0byBzZWUgaG93IHJlYWNoYWJsZSB0aGlzIGlzLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjgvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzE1IDA3OjI2PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O3Bkc2NfaW5pdF9wZiYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC9wZHNfY29yZS8mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvZXRoZXJuZXQvYW1kL3Bkc19jb3JlL21haW4uYz0yMDg9c3RhdGljIGNvbnN0IHN0cnVjdCBkZXZsaW5rX3BhcmFtIHBkc2NfZGxfcGFyYW1zW10gPSB7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYW1kL3Bkc19jb3JlL21haW4uYy0yMTctXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQvcGRzX2NvcmUvbWFpbi5jOjIxODpzdGF0aWMgaW50IHBkc2NfaW5pdF9wZihzdHJ1Y3QgcGRzYyAqcGRzYylcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC9wZHNfY29yZS9tYWluLmMtMjE5LXtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQvcGRzX2NvcmUvbWFpbi5jPTMzNz1zdGF0aWMgaW50IHBkc2NfcHJvYmUoc3RydWN0IHBjaV9kZXYgKnBkZXYsIGNvbnN0IHN0cnVjdCBwY2lfZGV2aWNlX2lkICplbnQpXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYW1kL3Bkc19jb3JlL21haW4uYy0zODItXHRpZiAoaXNfcGYpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQvcGRzX2NvcmUvbWFpbi5jOjM4MzpcdFx0ZXJyID0gcGRzY19pbml0X3BmKHBkc2MpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYW1kL3Bkc19jb3JlL21haW4uYy0zODQtXHRlbHNlXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+OS8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMTUgMDc6MjY8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogNjk1MwoJCQkJCQkJb3V0cHV0OiAzMwoJCQkJCQkJdGhvdWdodHM6IDEwMAoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipBbmFseXppbmcgdGhlIEZlYXNpYmlsaXR5IG9mIEZ1enppbmcgYSBQQ0kgRHJpdmVyKioKCk9rYXksIHNvIEkmIzM5O20gbG9va2luZyBhdCB0aGlzIGNvZGUgcGF0aCwgYW5kIGl0JiMzOTtzIGJlaW5nIGNhbGxlZCBmcm9tIGBwZHNjX3Byb2JlYC4gUmlnaHQgb2ZmIHRoZSBiYXQsIG15IGV4cGVydCBpbnR1aXRpb24gaXMgdGVsbGluZyBtZSB0aGlzIGlzIGEgaGFyZHdhcmUtc3BlY2lmaWMgUENJIGRyaXZlci4gVGhpcyBtZWFucyB0aGF0LCByZWFsaXN0aWNhbGx5LCBJJiMzOTttIG5vdCBnb2luZyB0byBzZWUgdGhpcyBjb2RlIGV4ZWN1dGVkIGluIGEgdmlydHVhbGl6ZWQgZW52aXJvbm1lbnQgbGlrZSBHQ0Ugb3IgUUVNVSB1bmxlc3MgSSYjMzk7dmUgZ290IHRoZSBleGFjdCBoYXJkd2FyZSBpbiBwbGFjZS4gVGhlcmVmb3JlLCBteSBpbml0aWFsIGFzc2Vzc21lbnQgaXMgdGhhdCBgV29ydGhGdXp6aW5nYCBzaG91bGQgZXZhbHVhdGUgdG8gZmFsc2UuIAoKQnV0IGhvbGQgb24gYSBzZWNvbmQuLi4gbGV0JiMzOTtzIG5vdCBiZSB0b28gaGFzdHkuIE15IGV4cGVyaWVuY2UgaGFzIHRhdWdodCBtZSB0byBjb25zaWRlciBhbGwgcG9zc2liaWxpdGllcy4gSXMgdGhlcmUgYSBjaGFuY2UgdGhpcyBjYW4gYmUgcmVhY2hlZCB0aHJvdWdoIGEgZHVtbXkgZGV2aWNlIG9yIHNvbWUga2luZCBvZiBzb2Z0d2FyZSBlbXVsYXRpb24/IFdoYXQgYWJvdXQgYGh3c2ltYCBvciBgdmhjaWAgZm9yIGBwZHNfY29yZWA/IEl0JiMzOTtzIHdvcnRoIGEgcXVpY2sgY2hlY2sgdG8gcnVsZSB0aG9zZSBvdXQgYmVmb3JlIEkgbWFrZSBhIGZpbmFsIGRldGVybWluYXRpb24uIEkgbmVlZCB0byBmdWxseSB1bmRlcnN0YW5kIHRoZSBhY2Nlc3NpYmlsaXR5IG9mIHRoaXMgY29kZSBiZWZvcmUgbWFraW5nIGEgY2FsbC4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMC8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMTUgMDc6MjY8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7cGRzX2NvcmUmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtkcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQvJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC9LY29uZmlnPTE2OT1jb25maWcgUERTX0NPUkVcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQvS2NvbmZpZy0xNzctXHQgIGZvdW5kIGluXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQvS2NvbmZpZzoxNzg6XHQgIFx1MDAzY2ZpbGU6RG9jdW1lbnRhdGlvbi9uZXR3b3JraW5nL2RldmljZV9kcml2ZXJzL2V0aGVybmV0L2FtZC9wZHNfY29yZS5yc3RcdTAwM2UuXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQvS2NvbmZpZy0xNzktXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQvS2NvbmZpZy0xODAtXHQgIFRvIGNvbXBpbGUgdGhpcyBkcml2ZXIgYXMgYSBtb2R1bGUsIGNob29zZSBNIGhlcmUuIFRoZSBtb2R1bGVcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC9LY29uZmlnOjE4MTpcdCAgd2lsbCBiZSBjYWxsZWQgcGRzX2NvcmUuXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQvS2NvbmZpZy0xODItXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYW1kL01ha2VmaWxlPTE3PW9iai0kKENPTkZJR19BTURfWEdCRSkgJiM0Mzs9IHhnYmUvXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQvTWFrZWZpbGU6MTg6b2JqLSQoQ09ORklHX1BEU19DT1JFKSAmIzQzOz0gcGRzX2NvcmUvXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYW1kL3Bkc19jb3JlL01ha2VmaWxlLTMtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQvcGRzX2NvcmUvTWFrZWZpbGU6NDpvYmotJChDT05GSUdfUERTX0NPUkUpIDo9IHBkc19jb3JlLm9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC9wZHNfY29yZS9NYWtlZmlsZS01LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYW1kL3Bkc19jb3JlL01ha2VmaWxlOjY6cGRzX2NvcmUteSA6PSBtYWluLm8gXFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC9wZHNfY29yZS9NYWtlZmlsZS03LVx0ICAgICAgZGV2bGluay5vIFxcXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYW1kL3Bkc19jb3JlL2FkbWlucS5jPTg9c3RhdGljIGludCBwZHNjX3Byb2Nlc3Nfbm90aWZ5cShzdHJ1Y3QgcGRzY19xY3EgKnFjcSlcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC9wZHNfY29yZS9hZG1pbnEuYy05LXtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC9wZHNfY29yZS9hZG1pbnEuYzoxMDpcdHVuaW9uIHBkc19jb3JlX25vdGlmeXFfY29tcCAqY29tcDtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC9wZHNfY29yZS9hZG1pbnEuYy0xMS1cdHN0cnVjdCBwZHNjICpwZHNjID0gcWNxLVx1MDAzZXBkc2M7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYW1kL3Bkc19jb3JlL2FkbWlucS5jPTcwPXZvaWQgcGRzY19wcm9jZXNzX2FkbWlucShzdHJ1Y3QgcGRzY19xY3EgKnFjcSlcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC9wZHNfY29yZS9hZG1pbnEuYy03MS17XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQvcGRzX2NvcmUvYWRtaW5xLmM6NzI6XHR1bmlvbiBwZHNfY29yZV9hZG1pbnFfY29tcCAqY29tcDtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC9wZHNfY29yZS9hZG1pbnEuYy03My1cdHN0cnVjdCBwZHNjX3F1ZXVlICpxID0gXHUwMDI2cWNxLVx1MDAzZXE7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYW1kL3Bkc19jb3JlL2FkbWlucS5jLTEyNC1cdC8qIFJldHVybiB0aGUgaW50ZXJydXB0IGNyZWRpdHMsIG9uZSBmb3IgZWFjaCBjb21wbGV0aW9uICovXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQvcGRzX2NvcmUvYWRtaW5xLmM6MTI1Olx0cGRzX2NvcmVfaW50cl9jcmVkaXRzKFx1MDAyNnBkc2MtXHUwMDNlaW50cl9jdHJsW3FjcS1cdTAwM2VpbnR4XSxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC9wZHNfY29yZS9hZG1pbnEuYy0xMjYtXHRcdFx0ICAgICAgbnFfd29yayAmIzQzOyBhcV93b3JrLFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC9wZHNfY29yZS9hZG1pbnEuYz0xNTc9c3RhdGljIGludCBfX3Bkc2NfYWRtaW5xX3Bvc3Qoc3RydWN0IHBkc2MgKnBkc2MsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQvcGRzX2NvcmUvYWRtaW5xLmMtMTU4LVx0XHRcdCAgICAgIHN0cnVjdCBwZHNjX3FjcSAqcWNxLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYW1kL3Bkc19jb3JlL2FkbWlucS5jOjE1OTpcdFx0XHQgICAgICB1bmlvbiBwZHNfY29yZV9hZG1pbnFfY21kICpjbWQsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQvcGRzX2NvcmUvYWRtaW5xLmM6MTYwOlx0XHRcdCAgICAgIHVuaW9uIHBkc19jb3JlX2FkbWlucV9jb21wICpjb21wKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYW1kL3Bkc19jb3JlL2FkbWlucS5jLTE2MS17XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYW1kL3Bkc19jb3JlL2FkbWlucS5jLTIxMy1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC9wZHNfY29yZS9hZG1pbnEuYzoyMTQ6XHRwZHNfY29yZV9kYmVsbF9yaW5nKHBkc2MtXHUwMDNla2Vybl9kYnBhZ2UsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQvcGRzX2NvcmUvYWRtaW5xLmMtMjE1LVx0XHRcdCAgICBxLVx1MDAzZWh3X3R5cGUsIHEtXHUwMDNlZGJ2YWwgfCBxLVx1MDAzZWhlYWRfaWR4KTtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQvcGRzX2NvcmUvYWRtaW5xLmM9MjIzPWludCBwZHNjX2FkbWlucV9wb3N0KHN0cnVjdCBwZHNjICpwZHNjLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYW1kL3Bkc19jb3JlL2FkbWlucS5jOjIyNDpcdFx0ICAgICB1bmlvbiBwZHNfY29yZV9hZG1pbnFfY21kICpjbWQsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQvcGRzX2NvcmUvYWRtaW5xLmM6MjI1Olx0XHQgICAgIHVuaW9uIHBkc19jb3JlX2FkbWlucV9jb21wICpjb21wLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYW1kL3Bkc19jb3JlL2FkbWlucS5jLTIyNi1cdFx0ICAgICBib29sIGZhc3RfcG9sbClcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQvcGRzX2NvcmUvYXV4YnVzLmMtMTEtICogQHBmOlx0XHRwdHIgdG8gdGhlIFBGIGRyaXZlciYjMzk7cyBwcml2YXRlIGRhdGEgc3RydWN0XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQvcGRzX2NvcmUvYXV4YnVzLmM6MTI6ICogQGRldm5hbWU6XHRuYW1lIHRoYXQgaW5jbHVkZXMgc2VydmljZSBpbnRvLCBlLmcuIHBkc19jb3JlLnZEUEFcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC9wZHNfY29yZS9hdXhidXMuYy0xMy0gKlxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC9wZHNfY29yZS9hdXhidXMuYz0xNz1pbnQgcGRzX2NsaWVudF9yZWdpc3RlcihzdHJ1Y3QgcGRzYyAqcGYsIGNoYXIgKmRldm5hbWUpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQvcGRzX2NvcmUvYXV4YnVzLmMtMTgte1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYW1kL3Bkc19jb3JlL2F1eGJ1cy5jOjE5Olx0dW5pb24gcGRzX2NvcmVfYWRtaW5xX2NvbXAgY29tcCA9IHt9O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYW1kL3Bkc19jb3JlL2F1eGJ1cy5jOjIwOlx0dW5pb24gcGRzX2NvcmVfYWRtaW5xX2NtZCBjbWQgPSB7fTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC9wZHNfY29yZS9hdXhidXMuYy0yMS1cdGludCBlcnI7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYW1kL3Bkc19jb3JlL2F1eGJ1cy5jPTU3PWludCBwZHNfY2xpZW50X3VucmVnaXN0ZXIoc3RydWN0IHBkc2MgKnBmLCB1MTYgY2xpZW50X2lkKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYW1kL3Bkc19jb3JlL2F1eGJ1cy5jLTU4LXtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC9wZHNfY29yZS9hdXhidXMuYzo1OTpcdHVuaW9uIHBkc19jb3JlX2FkbWlucV9jb21wIGNvbXAgPSB7fTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC9wZHNfY29yZS9hdXhidXMuYzo2MDpcdHVuaW9uIHBkc19jb3JlX2FkbWlucV9jbWQgY21kID0ge307XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQvcGRzX2NvcmUvYXV4YnVzLmMtNjEtXHRpbnQgZXJyO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC9wZHNfY29yZS9hdXhidXMuYz03Mz1FWFBPUlRfU1lNQk9MX0dQTChwZHNfY2xpZW50X3VucmVnaXN0ZXIpO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC9wZHNfY29yZS9hdXhidXMuYy04MC0gKiBAcmVzcDogICAgcHRyIHRvIGJ1ZmZlciB3aGVyZSBhbnN3ZXIgaXMgdG8gYmUgY29waWVkXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQvcGRzX2NvcmUvYXV4YnVzLmM6ODE6ICogQGZsYWdzOiAgIG9wdGlvbmFsIGZsYWdzIGZyb20gcGRzX2NvcmVfYWRtaW5xX2ZsYWdzXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQvcGRzX2NvcmUvYXV4YnVzLmMtODItICpcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQvcGRzX2NvcmUvYXV4YnVzLmMtODYtICogQ2xpZW50IHNlbmRzIHBvaW50ZXJzIHRvIHJlcXVlc3QgYW5kIHJlc3BvbnNlIGJ1ZmZlcnNcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC9wZHNfY29yZS9hdXhidXMuYzo4NzogKiBDb3JlIGNvcGllcyByZXF1ZXN0IGRhdGEgaW50byBwZHNfY29yZV9jbGllbnRfcmVxdWVzdF9jbWRcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC9wZHNfY29yZS9hdXhidXMuYy04OC0gKiBDb3JlIHNldHMgb3RoZXIgZmllbGRzIGFzIG5lZWRlZFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC9wZHNfY29yZS9hdXhidXMuYz05Mj1pbnQgcGRzX2NsaWVudF9hZG1pbnFfY21kKHN0cnVjdCBwZHNfYXV4aWxpYXJ5X2RldiAqcGFkZXYsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQvcGRzX2NvcmUvYXV4YnVzLmM6OTM6XHRcdFx0ICB1bmlvbiBwZHNfY29yZV9hZG1pbnFfY21kICpyZXEsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQvcGRzX2NvcmUvYXV4YnVzLmMtOTQtXHRcdFx0ICBzaXplX3QgcmVxX2xlbixcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC9wZHNfY29yZS9hdXhidXMuYzo5NTpcdFx0XHQgIHVuaW9uIHBkc19jb3JlX2FkbWlucV9jb21wICpyZXNwLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYW1kL3Bkc19jb3JlL2F1eGJ1cy5jLTk2LVx0XHRcdCAgdTY0IGZsYWdzKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYW1kL3Bkc19jb3JlL2F1eGJ1cy5jLTk3LXtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC9wZHNfY29yZS9hdXhidXMuYzo5ODpcdHVuaW9uIHBkc19jb3JlX2FkbWlucV9jbWQgY21kID0ge307XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQvcGRzX2NvcmUvYXV4YnVzLmMtOTktXHRzdHJ1Y3QgcGNpX2RldiAqcGZfcGRldjtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQvcGRzX2NvcmUvYXV4YnVzLmM9MTk0PWludCBwZHNjX2F1eGJ1c19kZXZfYWRkKHN0cnVjdCBwZHNjICpjZiwgc3RydWN0IHBkc2MgKnBmLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYW1kL3Bkc19jb3JlL2F1eGJ1cy5jOjE5NTpcdFx0XHRlbnVtIHBkc19jb3JlX3ZpZl90eXBlcyB2dCxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC9wZHNfY29yZS9hdXhidXMuYy0xOTYtXHRcdFx0c3RydWN0IHBkc19hdXhpbGlhcnlfZGV2ICoqcGRfcHRyKVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC9wZHNfY29yZS9jb3JlLmM9Mjg9dm9pZCBwZHNjX2ludHJfZnJlZShzdHJ1Y3QgcGRzYyAqcGRzYywgaW50IGluZGV4KVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC9wZHNfY29yZS9jb3JlLmMtNDItXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQvcGRzX2NvcmUvY29yZS5jOjQzOlx0cGRzX2NvcmVfaW50cl9tYXNrKFx1MDAyNnBkc2MtXHUwMDNlaW50cl9jdHJsW2luZGV4XSwgUERTX0NPUkVfSU5UUl9NQVNLX1NFVCk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQvcGRzX2NvcmUvY29yZS5jOjQ0Olx0cGRzX2NvcmVfaW50cl9jbGVhbihcdTAwMjZwZHNjLVx1MDAzZWludHJfY3RybFtpbmRleF0pO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYW1kL3Bkc19jb3JlL2NvcmUuYy00NS1cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQvcGRzX2NvcmUvY29yZS5jPTUxPWludCBwZHNjX2ludHJfYWxsb2Moc3RydWN0IHBkc2MgKnBkc2MsIGNoYXIgKm5hbWUsXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYW1kL3Bkc19jb3JlL2NvcmUuYy02Ny1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC9wZHNfY29yZS9jb3JlLmM6Njg6XHRwZHNfY29yZV9pbnRyX2NsZWFuX2ZsYWdzKFx1MDAyNnBkc2MtXHUwMDNlaW50cl9jdHJsW2luZGV4XSxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC9wZHNfY29yZS9jb3JlLmMtNjktXHRcdFx0XHQgIFBEU19DT1JFX0lOVFJfQ1JFRF9SRVNFVF9DT0FMRVNDRSk7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYW1kL3Bkc19jb3JlL2NvcmUuYy04Ni1cdC8qIEluaXQgdGhlIGRldmljZSYjMzk7cyBpbnRyIG1hc2sgKi9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC9wZHNfY29yZS9jb3JlLmM6ODc6XHRwZHNfY29yZV9pbnRyX2NsZWFuKFx1MDAyNnBkc2MtXHUwMDNlaW50cl9jdHJsW2luZGV4XSk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQvcGRzX2NvcmUvY29yZS5jOjg4Olx0cGRzX2NvcmVfaW50cl9tYXNrX2Fzc2VydChcdTAwMjZwZHNjLVx1MDAzZWludHJfY3RybFtpbmRleF0sIDEpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYW1kL3Bkc19jb3JlL2NvcmUuYzo4OTpcdHBkc19jb3JlX2ludHJfbWFzayhcdTAwMjZwZHNjLVx1MDAzZWludHJfY3RybFtpbmRleF0sIFBEU19DT1JFX0lOVFJfTUFTS19TRVQpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYW1kL3Bkc19jb3JlL2NvcmUuYy05MC1cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQvcGRzX2NvcmUvY29yZS5jPTMxNj1zdGF0aWMgaW50IHBkc2NfY29yZV9pbml0KHN0cnVjdCBwZHNjICpwZHNjKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYW1kL3Bkc19jb3JlL2NvcmUuYy0zMTcte1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYW1kL3Bkc19jb3JlL2NvcmUuYzozMTg6XHR1bmlvbiBwZHNfY29yZV9kZXZfY29tcCBjb21wID0ge307XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQvcGRzX2NvcmUvY29yZS5jOjMxOTpcdHVuaW9uIHBkc19jb3JlX2Rldl9jbWQgY21kID0ge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYW1kL3Bkc19jb3JlL2NvcmUuYy0zMjAtXHRcdC5pbml0Lm9wY29kZSA9IFBEU19DT1JFX0NNRF9JTklULFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYW1kL3Bkc19jb3JlL2NvcmUuYy0zMjEtXHR9O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYW1kL3Bkc19jb3JlL2NvcmUuYzozMjI6XHRzdHJ1Y3QgcGRzX2NvcmVfZGV2X2luaXRfZGF0YV9vdXQgY2lkbztcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC9wZHNfY29yZS9jb3JlLmM6MzIzOlx0c3RydWN0IHBkc19jb3JlX2Rldl9pbml0X2RhdGFfaW4gY2lkaTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC9wZHNfY29yZS9jb3JlLmMtMzI0LVx0dTMyIGRiaWRfY291bnQ7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYW1kL3Bkc19jb3JlL2NvcmUuYy0zMzMtXHRcdFx0ICAgICBudW1kZXNjcyxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC9wZHNfY29yZS9jb3JlLmM6MzM0Olx0XHRcdCAgICAgc2l6ZW9mKHVuaW9uIHBkc19jb3JlX2FkbWlucV9jbWQpLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYW1kL3Bkc19jb3JlL2NvcmUuYzozMzU6XHRcdFx0ICAgICBzaXplb2YodW5pb24gcGRzX2NvcmVfYWRtaW5xX2NvbXApLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYW1kL3Bkc19jb3JlL2NvcmUuYy0zMzYtXHRcdFx0ICAgICAwLCBcdTAwMjZwZHNjLVx1MDAzZWFkbWlucWNxKTtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQvcGRzX2NvcmUvY29yZS5jLTM0Mi1cdFx0XHQgICAgIFBEU0NfTk9USUZZUV9MRU5HVEgsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQvcGRzX2NvcmUvY29yZS5jOjM0MzpcdFx0XHQgICAgIHNpemVvZihzdHJ1Y3QgcGRzX2NvcmVfbm90aWZ5cV9jbWQpLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYW1kL3Bkc19jb3JlL2NvcmUuYzozNDQ6XHRcdFx0ICAgICBzaXplb2YodW5pb24gcGRzX2NvcmVfbm90aWZ5cV9jb21wKSxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC9wZHNfY29yZS9jb3JlLmMtMzQ1LVx0XHRcdCAgICAgMCwgXHUwMDI2cGRzYy1cdTAwM2Vub3RpZnlxY3EpO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC9wZHNfY29yZS9jb3JlLmM9NDE0PXN0YXRpYyBpbnQgcGRzY192aWZ0eXBlc19pbml0KHN0cnVjdCBwZHNjICpwZHNjKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYW1kL3Bkc19jb3JlL2NvcmUuYy00MTUte1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYW1kL3Bkc19jb3JlL2NvcmUuYzo0MTY6XHRlbnVtIHBkc19jb3JlX3ZpZl90eXBlcyB2dDtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC9wZHNfY29yZS9jb3JlLmMtNDE3LVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC9wZHNfY29yZS9jb3JlLmM9NDk5PWludCBwZHNjX3N0YXJ0KHN0cnVjdCBwZHNjICpwZHNjKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYW1kL3Bkc19jb3JlL2NvcmUuYy01MDAte1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYW1kL3Bkc19jb3JlL2NvcmUuYzo1MDE6XHRwZHNfY29yZV9pbnRyX21hc2soXHUwMDI2cGRzYy1cdTAwM2VpbnRyX2N0cmxbcGRzYy1cdTAwM2VhZG1pbnFjcS5pbnR4XSxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC9wZHNfY29yZS9jb3JlLmMtNTAyLVx0XHRcdCAgIFBEU19DT1JFX0lOVFJfTUFTS19DTEVBUik7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYW1kL3Bkc19jb3JlL2NvcmUuYz01MDc9dm9pZCBwZHNjX3N0b3Aoc3RydWN0IHBkc2MgKnBkc2MpXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYW1kL3Bkc19jb3JlL2NvcmUuYy01MTYtXHRcdGlmIChwZHNjLVx1MDAzZWludHJfaW5mb1tpXS52ZWN0b3IpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQvcGRzX2NvcmUvY29yZS5jOjUxNzpcdFx0XHRwZHNfY29yZV9pbnRyX21hc2soXHUwMDI2cGRzYy1cdTAwM2VpbnRyX2N0cmxbaV0sXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQvcGRzX2NvcmUvY29yZS5jLTUxOC1cdFx0XHRcdFx0ICAgUERTX0NPUkVfSU5UUl9NQVNLX1NFVCk7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYW1kL3Bkc19jb3JlL2NvcmUuYz01Mzk9dm9pZCBwZHNjX2Z3X2Rvd24oc3RydWN0IHBkc2MgKnBkc2MpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQvcGRzX2NvcmUvY29yZS5jLTU0MC17XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQvcGRzX2NvcmUvY29yZS5jOjU0MTpcdHVuaW9uIHBkc19jb3JlX25vdGlmeXFfY29tcCByZXNldF9ldmVudCA9IHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC9wZHNfY29yZS9jb3JlLmMtNTQyLVx0XHQucmVzZXQuZWNvZGUgPSBjcHVfdG9fbGUxNihQRFNfRVZFTlRfUkVTRVQpLFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC9wZHNfY29yZS9jb3JlLmM9NTY1PXZvaWQgcGRzY19md191cChzdHJ1Y3QgcGRzYyAqcGRzYylcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC9wZHNfY29yZS9jb3JlLmMtNTY2LXtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC9wZHNfY29yZS9jb3JlLmM6NTY3Olx0dW5pb24gcGRzX2NvcmVfbm90aWZ5cV9jb21wIHJlc2V0X2V2ZW50ID0ge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYW1kL3Bkc19jb3JlL2NvcmUuYy01NjgtXHRcdC5yZXNldC5lY29kZSA9IGNwdV90b19sZTE2KFBEU19FVkVOVF9SRVNFVCksXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYW1kL3Bkc19jb3JlL2NvcmUuaC0xMC0jaW5jbHVkZSBcdTAwM2NsaW51eC9wZHMvcGRzX2NvbW1vbi5oXHUwMDNlXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQvcGRzX2NvcmUvY29yZS5oOjExOiNpbmNsdWRlIFx1MDAzY2xpbnV4L3Bkcy9wZHNfY29yZV9pZi5oXHUwMDNlXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQvcGRzX2NvcmUvY29yZS5oLTEyLSNpbmNsdWRlIFx1MDAzY2xpbnV4L3Bkcy9wZHNfYWRtaW5xLmhcdTAwM2Vcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQvcGRzX2NvcmUvY29yZS5oPTQ5PXN0cnVjdCBwZHNjX3F1ZXVlIHtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQvcGRzX2NvcmUvY29yZS5oLTYyLVx0XHR2b2lkICpiYXNlO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYW1kL3Bkc19jb3JlL2NvcmUuaDo2MzpcdFx0c3RydWN0IHBkc19jb3JlX2FkbWluX2NtZCAqYWRtaW5xO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYW1kL3Bkc19jb3JlL2NvcmUuaC02NC1cdH07XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYW1kL3Bkc19jb3JlL2NvcmUuaD0xNTQ9c3RydWN0IHBkc2Mge1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC9wZHNfY29yZS9jb3JlLmgtMTc3LVx0c3RydWN0IHBkc2NfZGV2aW5mbyBkZXZfaW5mbztcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC9wZHNfY29yZS9jb3JlLmg6MTc4Olx0c3RydWN0IHBkc19jb3JlX2Rldl9pZGVudGl0eSBkZXZfaWRlbnQ7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQvcGRzX2NvcmUvY29yZS5oLTE3OS1cdHVuc2lnbmVkIGludCBuaW50cnM7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYW1kL3Bkc19jb3JlL2NvcmUuaC0xODgtXHRyZWZjb3VudF90IGFkbWlucV9yZWZjbnQ7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQvcGRzX2NvcmUvY29yZS5oOjE4OTpcdHN0cnVjdCBwZHNfY29yZV9kZXZfaW5mb19yZWdzIF9faW9tZW0gKmluZm9fcmVncztcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC9wZHNfY29yZS9jb3JlLmg6MTkwOlx0c3RydWN0IHBkc19jb3JlX2Rldl9jbWRfcmVncyBfX2lvbWVtICpjbWRfcmVncztcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC9wZHNfY29yZS9jb3JlLmg6MTkxOlx0c3RydWN0IHBkc19jb3JlX2ludHIgX19pb21lbSAqaW50cl9jdHJsO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYW1kL3Bkc19jb3JlL2NvcmUuaC0xOTItXHR1NjQgX19pb21lbSAqaW50cl9zdGF0dXM7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYW1kL3Bkc19jb3JlL2NvcmUuaC0yMDMtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQvcGRzX2NvcmUvY29yZS5oOjIwNDovKiogZW51bSBwZHNfY29yZV9kYmVsbF9iaXRzIC0gYml0d2lzZSBjb21wb3NpdGlvbiBvZiBkYmVsbCB2YWx1ZXMuXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQvcGRzX2NvcmUvY29yZS5oLTIwNS0gKlxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC9wZHNfY29yZS9jb3JlLmgtMjIwLSAqL1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYW1kL3Bkc19jb3JlL2NvcmUuaDoyMjE6ZW51bSBwZHNfY29yZV9kYmVsbF9iaXRzIHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC9wZHNfY29yZS9jb3JlLmgtMjIyLVx0UERTX0NPUkVfREJFTExfUUlEX01BU0tcdFx0PSAweGZmZmZmZixcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQvcGRzX2NvcmUvY29yZS5oLTI0MS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC9wZHNfY29yZS9jb3JlLmg6MjQyOnN0YXRpYyBpbmxpbmUgdm9pZCBwZHNfY29yZV9kYmVsbF9yaW5nKHU2NCBfX2lvbWVtICpkYl9wYWdlLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYW1kL3Bkc19jb3JlL2NvcmUuaDoyNDM6XHRcdFx0XHQgICAgICAgZW51bSBwZHNfY29yZV9sb2dpY2FsX3F0eXBlIHF0eXBlLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYW1kL3Bkc19jb3JlL2NvcmUuaC0yNDQtXHRcdFx0XHQgICAgICAgdTY0IHZhbClcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQvcGRzX2NvcmUvY29yZS5oPTI3Nz12b2lkIHBkc2NfZGVidWdmc19kZWxfcWNxKHN0cnVjdCBwZHNjX3FjcSAqcWNxKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC9wZHNfY29yZS9jb3JlLmgtMjc4LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYW1kL3Bkc19jb3JlL2NvcmUuaDoyNzk6aW50IHBkc2NfZXJyX3RvX2Vycm5vKGVudW0gcGRzX2NvcmVfc3RhdHVzX2NvZGUgY29kZSk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQvcGRzX2NvcmUvY29yZS5oLTI4MC1ib29sIHBkc2NfaXNfZndfcnVubmluZyhzdHJ1Y3QgcGRzYyAqcGRzYyk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQvcGRzX2NvcmUvY29yZS5oPTI4MT1ib29sIHBkc2NfaXNfZndfZ29vZChzdHJ1Y3QgcGRzYyAqcGRzYyk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQvcGRzX2NvcmUvY29yZS5oOjI4MjppbnQgcGRzY19kZXZjbWQoc3RydWN0IHBkc2MgKnBkc2MsIHVuaW9uIHBkc19jb3JlX2Rldl9jbWQgKmNtZCxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC9wZHNfY29yZS9jb3JlLmg6MjgzOlx0XHR1bmlvbiBwZHNfY29yZV9kZXZfY29tcCAqY29tcCwgaW50IG1heF9zZWNvbmRzKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC9wZHNfY29yZS9jb3JlLmg6Mjg0OmludCBwZHNjX2RldmNtZF9sb2NrZWQoc3RydWN0IHBkc2MgKnBkc2MsIHVuaW9uIHBkc19jb3JlX2Rldl9jbWQgKmNtZCxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC9wZHNfY29yZS9jb3JlLmg6Mjg1Olx0XHQgICAgICAgdW5pb24gcGRzX2NvcmVfZGV2X2NvbXAgKmNvbXAsIGludCBtYXhfc2Vjb25kcyk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQvcGRzX2NvcmUvY29yZS5oLTI4Ni1pbnQgcGRzY19kZXZjbWRfaW5pdChzdHJ1Y3QgcGRzYyAqcGRzYyk7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYW1kL3Bkc19jb3JlL2NvcmUuaD0zMDg9aW50IHBkc2NfYXV4YnVzX2Rldl9hZGQoc3RydWN0IHBkc2MgKmNmLCBzdHJ1Y3QgcGRzYyAqcGYsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQvcGRzX2NvcmUvY29yZS5oOjMwOTpcdFx0XHRlbnVtIHBkc19jb3JlX3ZpZl90eXBlcyB2dCxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC9wZHNfY29yZS9jb3JlLmgtMzEwLVx0XHRcdHN0cnVjdCBwZHNfYXV4aWxpYXJ5X2RldiAqKnBkX3B0cik7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYW1kL3Bkc19jb3JlL2RlYnVnZnMuYz0zMz1zdGF0aWMgaW50IGlkZW50aXR5X3Nob3coc3RydWN0IHNlcV9maWxlICpzZXEsIHZvaWQgKnYpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQvcGRzX2NvcmUvZGVidWdmcy5jLTM0LXtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC9wZHNfY29yZS9kZWJ1Z2ZzLmM6MzU6XHRzdHJ1Y3QgcGRzX2NvcmVfZGV2X2lkZW50aXR5ICppZGVudDtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC9wZHNfY29yZS9kZWJ1Z2ZzLmMtMzYtXHRzdHJ1Y3QgcGRzYyAqcGRzYyA9IHNlcS1cdTAwM2Vwcml2YXRlO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC9wZHNfY29yZS9kZXYuYy05LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYW1kL3Bkc19jb3JlL2Rldi5jOjEwOmludCBwZHNjX2Vycl90b19lcnJubyhlbnVtIHBkc19jb3JlX3N0YXR1c19jb2RlIGNvZGUpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQvcGRzX2NvcmUvZGV2LmMtMTEte1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC9wZHNfY29yZS9kZXYuYz0xMjk9c3RhdGljIGludCBwZHNjX2RldmNtZF93YWl0KHN0cnVjdCBwZHNjICpwZHNjLCB1OCBvcGNvZGUsIGludCBtYXhfc2Vjb25kcylcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQvcGRzX2NvcmUvZGV2LmMtMTg5LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYW1kL3Bkc19jb3JlL2Rldi5jOjE5MDppbnQgcGRzY19kZXZjbWRfbG9ja2VkKHN0cnVjdCBwZHNjICpwZHNjLCB1bmlvbiBwZHNfY29yZV9kZXZfY21kICpjbWQsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQvcGRzX2NvcmUvZGV2LmM6MTkxOlx0XHQgICAgICAgdW5pb24gcGRzX2NvcmVfZGV2X2NvbXAgKmNvbXAsIGludCBtYXhfc2Vjb25kcylcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC9wZHNfY29yZS9kZXYuYy0xOTIte1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC9wZHNfY29yZS9kZXYuYy0yMDktXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQvcGRzX2NvcmUvZGV2LmM6MjEwOmludCBwZHNjX2RldmNtZChzdHJ1Y3QgcGRzYyAqcGRzYywgdW5pb24gcGRzX2NvcmVfZGV2X2NtZCAqY21kLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYW1kL3Bkc19jb3JlL2Rldi5jOjIxMTpcdFx0dW5pb24gcGRzX2NvcmVfZGV2X2NvbXAgKmNvbXAsIGludCBtYXhfc2Vjb25kcylcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC9wZHNfY29yZS9kZXYuYy0yMTIte1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC9wZHNfY29yZS9kZXYuYz0yMjI9aW50IHBkc2NfZGV2Y21kX2luaXQoc3RydWN0IHBkc2MgKnBkc2MpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQvcGRzX2NvcmUvZGV2LmMtMjIzLXtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC9wZHNfY29yZS9kZXYuYzoyMjQ6XHR1bmlvbiBwZHNfY29yZV9kZXZfY29tcCBjb21wID0ge307XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQvcGRzX2NvcmUvZGV2LmM6MjI1Olx0dW5pb24gcGRzX2NvcmVfZGV2X2NtZCBjbWQgPSB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQvcGRzX2NvcmUvZGV2LmMtMjI2LVx0XHQub3Bjb2RlID0gUERTX0NPUkVfQ01EX0lOSVQsXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYW1kL3Bkc19jb3JlL2Rldi5jPTIzMj1pbnQgcGRzY19kZXZjbWRfcmVzZXQoc3RydWN0IHBkc2MgKnBkc2MpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQvcGRzX2NvcmUvZGV2LmMtMjMzLXtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC9wZHNfY29yZS9kZXYuYzoyMzQ6XHR1bmlvbiBwZHNfY29yZV9kZXZfY29tcCBjb21wID0ge307XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQvcGRzX2NvcmUvZGV2LmM6MjM1Olx0dW5pb24gcGRzX2NvcmVfZGV2X2NtZCBjbWQgPSB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQvcGRzX2NvcmUvZGV2LmMtMjM2LVx0XHQucmVzZXQub3Bjb2RlID0gUERTX0NPUkVfQ01EX1JFU0VULFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC9wZHNfY29yZS9kZXYuYz0yNDU9c3RhdGljIGludCBwZHNjX2RldmNtZF9pZGVudGlmeV9sb2NrZWQoc3RydWN0IHBkc2MgKnBkc2MpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQvcGRzX2NvcmUvZGV2LmMtMjQ2LXtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC9wZHNfY29yZS9kZXYuYzoyNDc6XHR1bmlvbiBwZHNfY29yZV9kZXZfY29tcCBjb21wID0ge307XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQvcGRzX2NvcmUvZGV2LmM6MjQ4Olx0dW5pb24gcGRzX2NvcmVfZGV2X2NtZCBjbWQgPSB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQvcGRzX2NvcmUvZGV2LmMtMjQ5LVx0XHQuaWRlbnRpZnkub3Bjb2RlID0gUERTX0NPUkVfQ01EX0lERU5USUZZLFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC9wZHNfY29yZS9kZXYuYz0yNzY9c3RhdGljIGludCBwZHNjX2lkZW50aWZ5KHN0cnVjdCBwZHNjICpwZHNjKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYW1kL3Bkc19jb3JlL2Rldi5jLTI3Ny17XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQvcGRzX2NvcmUvZGV2LmM6Mjc4Olx0c3RydWN0IHBkc19jb3JlX2Rydl9pZGVudGl0eSBkcnYgPSB7fTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC9wZHNfY29yZS9kZXYuYy0yNzktXHRzaXplX3Qgc3o7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYW1kL3Bkc19jb3JlL2RldmxpbmsuYz0xMDI9aW50IHBkc2NfZGxfaW5mb19nZXQoc3RydWN0IGRldmxpbmsgKmRsLCBzdHJ1Y3QgZGV2bGlua19pbmZvX3JlcSAqcmVxLFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC9wZHNfY29yZS9kZXZsaW5rLmMtMTA0LXtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC9wZHNfY29yZS9kZXZsaW5rLmM6MTA1Olx0dW5pb24gcGRzX2NvcmVfZGV2X2NtZCBjbWQgPSB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQvcGRzX2NvcmUvZGV2bGluay5jLTEwNi1cdFx0LmZ3X2NvbnRyb2wub3Bjb2RlID0gUERTX0NPUkVfQ01EX0ZXX0NPTlRST0wsXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYW1kL3Bkc19jb3JlL2RldmxpbmsuYy0xMDgtXHR9O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYW1kL3Bkc19jb3JlL2RldmxpbmsuYzoxMDk6XHRzdHJ1Y3QgcGRzX2NvcmVfZndfbGlzdF9pbmZvIGZ3X2xpc3QgPSB7fTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC9wZHNfY29yZS9kZXZsaW5rLmMtMTEwLVx0c3RydWN0IHBkc2MgKnBkc2MgPSBkZXZsaW5rX3ByaXYoZGwpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYW1kL3Bkc19jb3JlL2RldmxpbmsuYzoxMTE6XHR1bmlvbiBwZHNfY29yZV9kZXZfY29tcCBjb21wO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYW1kL3Bkc19jb3JlL2RldmxpbmsuYy0xMTItXHRjaGFyIGJ1ZlszMl07XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYW1kL3Bkc19jb3JlL2Z3LmM9MTc9c3RhdGljIGludCBwZHNjX2RldmNtZF9md19kb3dubG9hZF9sb2NrZWQoc3RydWN0IHBkc2MgKnBkc2MsIHU2NCBhZGRyLFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC9wZHNfY29yZS9mdy5jLTE5LXtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC9wZHNfY29yZS9mdy5jOjIwOlx0dW5pb24gcGRzX2NvcmVfZGV2X2NtZCBjbWQgPSB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQvcGRzX2NvcmUvZncuYy0yMS1cdFx0LmZ3X2Rvd25sb2FkLm9wY29kZSA9IFBEU19DT1JFX0NNRF9GV19ET1dOTE9BRCxcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQvcGRzX2NvcmUvZncuYy0yNS1cdH07XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQvcGRzX2NvcmUvZncuYzoyNjpcdHVuaW9uIHBkc19jb3JlX2Rldl9jb21wIGNvbXA7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQvcGRzX2NvcmUvZncuYy0yNy1cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQvcGRzX2NvcmUvZncuYz0zMT1zdGF0aWMgaW50IHBkc2NfZGV2Y21kX2Z3X2luc3RhbGwoc3RydWN0IHBkc2MgKnBkc2MpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQvcGRzX2NvcmUvZncuYy0zMi17XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQvcGRzX2NvcmUvZncuYzozMzpcdHVuaW9uIHBkc19jb3JlX2Rldl9jbWQgY21kID0ge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYW1kL3Bkc19jb3JlL2Z3LmMtMzQtXHRcdC5md19jb250cm9sLm9wY29kZSA9IFBEU19DT1JFX0NNRF9GV19DT05UUk9MLFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC9wZHNfY29yZS9mdy5jLTM2LVx0fTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC9wZHNfY29yZS9mdy5jOjM3Olx0dW5pb24gcGRzX2NvcmVfZGV2X2NvbXAgY29tcDtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC9wZHNfY29yZS9mdy5jLTM4LVx0aW50IGVycjtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQvcGRzX2NvcmUvZncuYz00Nz1zdGF0aWMgaW50IHBkc2NfZGV2Y21kX2Z3X2FjdGl2YXRlKHN0cnVjdCBwZHNjICpwZHNjLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYW1kL3Bkc19jb3JlL2Z3LmM6NDg6XHRcdFx0XHQgICBlbnVtIHBkc19jb3JlX2Z3X3Nsb3Qgc2xvdClcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC9wZHNfY29yZS9mdy5jLTQ5LXtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC9wZHNfY29yZS9mdy5jOjUwOlx0dW5pb24gcGRzX2NvcmVfZGV2X2NtZCBjbWQgPSB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQvcGRzX2NvcmUvZncuYy01MS1cdFx0LmZ3X2NvbnRyb2wub3Bjb2RlID0gUERTX0NPUkVfQ01EX0ZXX0NPTlRST0wsXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYW1kL3Bkc19jb3JlL2Z3LmMtNTQtXHR9O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYW1kL3Bkc19jb3JlL2Z3LmM6NTU6XHR1bmlvbiBwZHNfY29yZV9kZXZfY29tcCBjb21wO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYW1kL3Bkc19jb3JlL2Z3LmMtNTYtXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYW1kL3Bkc19jb3JlL2Z3LmM9NjA9c3RhdGljIGludCBwZHNjX2Z3X3N0YXR1c19sb25nX3dhaXQoc3RydWN0IHBkc2MgKnBkc2MsXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYW1kL3Bkc19jb3JlL2Z3LmMtNjUte1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYW1kL3Bkc19jb3JlL2Z3LmM6NjY6XHR1bmlvbiBwZHNfY29yZV9kZXZfY21kIGNtZCA9IHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC9wZHNfY29yZS9mdy5jLTY3LVx0XHQuZndfY29udHJvbC5vcGNvZGUgPSBQRFNfQ09SRV9DTURfRldfQ09OVFJPTCxcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQvcGRzX2NvcmUvZncuYy02OS1cdH07XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQvcGRzX2NvcmUvZncuYzo3MDpcdHVuaW9uIHBkc19jb3JlX2Rldl9jb21wIGNvbXA7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQvcGRzX2NvcmUvZncuYy03MS1cdHVuc2lnbmVkIGxvbmcgc3RhcnRfdGltZTtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQvcGRzX2NvcmUvZncuYz05OD1pbnQgcGRzY19maXJtd2FyZV91cGRhdGUoc3RydWN0IHBkc2MgKnBkc2MsIGNvbnN0IHN0cnVjdCBmaXJtd2FyZSAqZncsXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYW1kL3Bkc19jb3JlL2Z3LmMtMTI0LVx0bmV4dF9pbnRlcnZhbCA9IDA7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQvcGRzX2NvcmUvZncuYzoxMjU6XHRkYXRhX2FkZHIgPSBvZmZzZXRvZihzdHJ1Y3QgcGRzX2NvcmVfZGV2X2NtZF9yZWdzLCBkYXRhKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC9wZHNfY29yZS9mdy5jLTEyNi1cdHdoaWxlIChvZmZzZXQgXHUwMDNjIGZ3LVx1MDAzZXNpemUpIHtcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMS8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMTUgMDc6MjY8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMTU1NjYKCQkJCQkJCW91dHB1dDogMjYKCQkJCQkJCXRob3VnaHRzOiA1MDkKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqQW5hbHl6aW5nIHRoZSBGdXp6aW5nIFBvdGVudGlhbCBvZiBgUERTX0NPUkVgKioKCk9rYXksIHNvIEkmIzM5O20gbG9va2luZyBhdCB0aGlzIGBQRFNfQ09SRWAgZHJpdmVyLCBhbmQgaXQmIzM5O3MgcHJldHR5IGNsZWFyIGl0JiMzOTtzIGEgUENJIGRyaXZlciBkZXNpZ25lZCBmb3IgQU1EIFBlbnNhbmRvIENvcmUgaGFyZHdhcmUuIFRoZSBrZXkgaXNzdWUgaGVyZSBpcyB0aGF0IHRoZXJlJiMzOTtzIG5vIHNvZnR3YXJlIGVtdWxhdGlvbiBmb3IgaXQgaW4gdGhlIGtlcm5lbC4gVGhpcyBtZWFucyBpdCYjMzk7cyBub3QgZ29pbmcgdG8gYmUgYWNjZXNzaWJsZSB3aXRoaW4gYSB0eXBpY2FsIHZpcnR1YWxpemVkIGVudmlyb25tZW50LCBsaWtlIEdDRSBvciBRRU1VLCB1bmxlc3MgeW91JiMzOTt2ZSBnb3QgdGhlIGFjdHVhbCBoYXJkd2FyZSBwcmVzZW50LgoKTXkgaW5pdGlhbCB0aG91Z2h0IHdhcywgJiMzNDtDb3VsZCBpdCBiZSByZWFjaGVkIHZpYSBzb21ldGhpbmcgbGlrZSBgdmhjaWAgb3IgYSBgZHVtbXlgIGludGVyZmFjZT8mIzM0OyBCdXQgbm8sIGl0JiMzOTtzIGp1c3QgYSBzdGFuZGFyZCBQQ0kgZHJpdmVyIChgcGNpX2RyaXZlciBwZHNjX2RyaXZlcmApLiBVbmxlc3MgYSBQQ0kgZGV2aWNlIHdpdGggdGhlIHJpZ2h0IHZlbmRvciBhbmQgZGV2aWNlIElEIGlzIHByZXNlbnQsIHRoZSBkcml2ZXImIzM5O3MgYHByb2JlYCBmdW5jdGlvbiB3b24mIzM5O3QgZXZlbiBiZSB0cmlnZ2VyZWQuCgpUaGVuIEkgd29uZGVyZWQgYWJvdXQgU3l6a2FsbGVyLiBEb2VzIFN5emthbGxlciBwcm92aWRlIHNvbWUgZ2VuZXJpYyBQQ0kgZGV2aWNlIGluamVjdGlvbiBtZWNoYW5pc20sIG1heWJlIHVzaW5nIGB2aGNpYCAoVmlydHVhbCBIb3N0IENvbnRyb2xsZXIgSW50ZXJmYWNlKSBvciBzb21ldGhpbmcgc2ltaWxhciwgbGlrZSB3aXRoIGBzeXpfa3ZtX3NldHVwX2NwdWAgb3IgcGVyaGFwcyBhIGBzeXpfcGNpX2RldmljZWAgY2FsbD8gTm8sIGl0IGRvZXNuJiMzOTt0LiBTeXprYWxsZXIgZG9lc24mIzM5O3QgaGF2ZSBhIGdlbmVyaWMgUENJIGVtdWxhdG9yIGNhcGFibGUgb2YgbWltaWNraW5nIHRoZSBjb21wbGV4aXRpZXMgb2YgYXJiaXRyYXJ5IGhhcmR3YXJlIHJlZ2lzdGVycy4gV2hpbGUgU3l6a2FsbGVyIGhhcyBldm9sdmVkIHRvIHByb3ZpZGUgc29tZSBmdXp6aW5nIHN1cHBvcnQgZm9yIFBDSSBkZXZpY2VzLCBpdCBkb2VzIG5vdCBkbyBzbyBpbiBhIHdheSB0aGF0IGFsbG93cyB1cyB0byB0YXJnZXQgYFBEU19DT1JFYC4KCkkgdHJpZWQgdG8gcmVjYWxsIGlmIHRoZXJlIHdlcmUgYW55IHJlY2VudCBhZGRpdGlvbnMgdG8gU3l6a2FsbGVyIHJlZ2FyZGluZyBQQ0kgZnV6emluZyB0aHJvdWdoIGB2aGNpYCBvciBgdmZpb2AsIGJ1dCB0aGUgYW5zd2VyIGlzIG5vLiBTeXprYWxsZXIgaGFzIGBzeXpfZ2VuZXRsaW5rYCwgYW5kIEkga25vdyBpdCBoYXMgY2FsbHMgbGlrZSBgc3l6X3VzYl9jb25uZWN0YCBmb3IgVVNCLCBgc3l6XzgwMjExX2pvaW5faWJzc2AgZm9yIFdpLUZpLCBidXQgSSBhbSBmYW1pbGlhciB3aXRoIFN5emthbGxlciwgYW5kIEkmIzM5O20gY2VydGFpbiB0aGF0IHRoZSBQQ0kgc2lkZSBoYXMgbm8gZXF1aXZhbGVudCBhYmlsaXR5IHRvIGVtdWxhdGUgYXJiaXRyYXJ5IFBDSSBoYXJkd2FyZS4KClNvIHRoZSBib3R0b20gbGluZSBpczogVGhlIGNvZGUgaXNuJiMzOTt0IHJlYWNoYWJsZSBpbiBhIHN0YW5kYXJkIHZpcnR1YWxpemVkIGVudmlyb25tZW50LiBXaXRob3V0IHNvZnR3YXJlIGVtdWxhdGlvbiwgdGhpcyBkcml2ZXIgaXMgZWZmZWN0aXZlbHkgbG9ja2VkIGJlaGluZCBhIGhhcmR3YXJlIHJlcXVpcmVtZW50LgoKSnVzdCB0byBiZSBhYnNvbHV0ZWx5IHN1cmUsIEkmIzM5O2xsIHF1aWNrbHkgZG91YmxlLWNoZWNrIGZvciBhbnkgc2lnbiBvZiBgcGRzX2NvcmVgIGVtdWxhdGlvbiBhbnl3aGVyZS4gSSYjMzk7bGwgZG8gYSBxdWljayBncmVwIGFuZCBtYWtlIHN1cmUgdGhlcmUgaXNuJiMzOTt0IGFueXRoaW5nIGhpZGluZyBpbiBzb21lIG9ic2N1cmUgY29ybmVyIG9mIHRoZSBjb2RlYmFzZS4KClllcCwgSSBncmVwcGVkIGZvciBgcGRzX2NvcmVgIGFuZCBmb3VuZCBub3RoaW5nIHJlc2VtYmxpbmcgZW11bGF0aW9uLgoKVGhlcmVmb3JlLCBteSBmaW5hbCBjb25jbHVzaW9uIGlzIGBXb3J0aEZ1enppbmc6IGZhbHNlYC4gTXkgcmVhc29uaW5nIGlzIHRoYXQgdGhpcyBpcyBhIGhhcmR3YXJlLXNwZWNpZmljIFBDSSBkcml2ZXIgdGhhdCBsYWNrcyBzb2Z0d2FyZSBlbXVsYXRpb24uIEl0JiMzOTtzIHNpbXBseSB1bnJlYWNoYWJsZSBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBHQ0Ugb3IgUUVNVS4KCkkmIzM5O2xsIGNoZWNrIGlmIGBwZHNjX2luaXRfcGZgIGlzIGNhbGxlZCBmcm9tIGFueXdoZXJlIGVsc2UuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTIvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzE1IDA3OjI2PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O3Bkc2NfaW5pdF9wZiYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0OyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtkcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQvcGRzX2NvcmUvbWFpbi5jPTIwOD1zdGF0aWMgY29uc3Qgc3RydWN0IGRldmxpbmtfcGFyYW0gcGRzY19kbF9wYXJhbXNbXSA9IHtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQvcGRzX2NvcmUvbWFpbi5jLTIxNy1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC9wZHNfY29yZS9tYWluLmM6MjE4OnN0YXRpYyBpbnQgcGRzY19pbml0X3BmKHN0cnVjdCBwZHNjICpwZHNjKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYW1kL3Bkc19jb3JlL21haW4uYy0yMTkte1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC9wZHNfY29yZS9tYWluLmM9MzM3PXN0YXRpYyBpbnQgcGRzY19wcm9iZShzdHJ1Y3QgcGNpX2RldiAqcGRldiwgY29uc3Qgc3RydWN0IHBjaV9kZXZpY2VfaWQgKmVudClcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQvcGRzX2NvcmUvbWFpbi5jLTM4Mi1cdGlmIChpc19wZilcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC9wZHNfY29yZS9tYWluLmM6MzgzOlx0XHRlcnIgPSBwZHNjX2luaXRfcGYocGRzYyk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQvcGRzX2NvcmUvbWFpbi5jLTM4NC1cdGVsc2VcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMy8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMTUgMDc6MjY8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMTY5NzkKCQkJCQkJCW91dHB1dDogMjQKCQkJCQkJCXRob3VnaHRzOiAzMAoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+T2theSwgaGVyZSYjMzk7cyBteSBpbnRlcnByZXRhdGlvbiBvZiB0aG9zZSB0aG91Z2h0cywgdGFpbG9yZWQgZm9yIGFuIGV4cGVydCBhdWRpZW5jZSwgcHJlc2VudGVkIGluIHRoZSBmaXJzdCBwZXJzb246CgoqKkRlY29kaW5nIHRoZSBEcml2ZXIgUHJvYmUqKgoKQWxyaWdodCwgbGV0JiMzOTtzIGJyZWFrIHRoaXMgZG93bi4gTXkgbWluZCBpcyBpbW1lZGlhdGVseSBkcmF3biB0byB0aGUgY2FsbCBzdGFjay4gVGhlIGNydWNpYWwgYml0IGhlcmUgaXMgdGhhdCB0aGlzIHBhcnRpY3VsYXIgcGllY2Ugb2YgbG9naWMgaXMgKmV4Y2x1c2l2ZWx5KiBpbnZva2VkIGZyb20gYHBkc2NfcHJvYmVgLiBUaGF0JiMzOTtzIHRoZSBlbnRyeSBwb2ludC4gQW5kIGBwZHNjX3Byb2JlYCwgYXMgSSYjMzk7bSByZW1pbmRlZCwgaXMgdGhlIHByb2JlIGZ1bmN0aW9uIGRlZmluZWQgd2l0aGluIHRoZSBgcGRzY19kcml2ZXJgIHN0cnVjdHVyZS4gRXNzZW50aWFsbHksIHdlJiMzOTtyZSBsb29raW5nIGF0IHRoZSBjb3JlIG9mIHRoZSBkcml2ZXImIzM5O3MgaW5pdGlhbGl6YXRpb24gc2VxdWVuY2UsIHRoZSBwb2ludCB3aGVyZSBpdCBhdHRlbXB0cyB0byBpZGVudGlmeSBhbmQgY29uZmlndXJlIHRoZSB0YXJnZXQgZGV2aWNlLiBUaGlzIGlzIHdoZXJlIHRoZSBtYWdpYyAob3IgdGhlIHRyb3VibGVzaG9vdGluZykgYmVnaW5zLiBLbm93aW5nIHRoYXQgdGhpcyBpcyB0aGUgc29sZSBlbnRyeSBwb2ludCBwcm92aWRlcyBjcml0aWNhbCBjb250ZXh0IGZvciBkZWJ1Z2dpbmcgb3IgYXVkaXRpbmcgdGhlIGRyaXZlciYjMzk7cyBiZWhhdmlvci4gV2Uga25vdyBleGFjdGx5IHdoZXJlIHRvIGxvb2sgZm9yIHRoZSBpbml0aWFsIHRyaWdnZXJzIGFuZCBkZXBlbmRlbmNpZXMuIEFueSBpc3N1ZXMgaW4gaGVyZSBhcmUgZm91bmRhdGlvbmFsOyB0aGV5JiMzOTtsbCBjYXNjYWRlIG91dHdhcmRzLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjE0LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8xNSAwNzoyNjwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtwZHNjX3Byb2JlJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7JiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC9wZHNfY29yZS9tYWluLmM9MzM1PXN0YXRpYyBERUZJTkVfSURBKHBkc2NfaWRhKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC9wZHNfY29yZS9tYWluLmMtMzM2LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYW1kL3Bkc19jb3JlL21haW4uYzozMzc6c3RhdGljIGludCBwZHNjX3Byb2JlKHN0cnVjdCBwY2lfZGV2ICpwZGV2LCBjb25zdCBzdHJ1Y3QgcGNpX2RldmljZV9pZCAqZW50KVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYW1kL3Bkc19jb3JlL21haW4uYy0zMzgte1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC9wZHNfY29yZS9tYWluLmM9NTgyPXN0YXRpYyBzdHJ1Y3QgcGNpX2RyaXZlciBwZHNjX2RyaXZlciA9IHtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQvcGRzX2NvcmUvbWFpbi5jLTU4NC1cdC5pZF90YWJsZSA9IHBkc2NfaWRfdGFibGUsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQvcGRzX2NvcmUvbWFpbi5jOjU4NTpcdC5wcm9iZSA9IHBkc2NfcHJvYmUsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQvcGRzX2NvcmUvbWFpbi5jLTU4Ni1cdC5yZW1vdmUgPSBwZHNjX3JlbW92ZSxcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xNS8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMTUgMDc6MjY8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMTc1MTMKCQkJCQkJCW91dHB1dDogOTQKCQkJCQkJCXRob3VnaHRzOiA0OAoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipNeSBBc3Nlc3NtZW50IG9mIHRoZSBQQ0kgRHJpdmVyIFByb2JlIEZ1bmN0aW9uKioKCk9rYXksIHNvIEkmIzM5O20gbG9va2luZyBhdCB0aGlzIGNvZGUgYW5kIGl0JiMzOTtzIHByZXR0eSBjbGVhciB0aGlzIGlzIHNvbGVseSBhIFBDSSBkcml2ZXIgcHJvYmUgZnVuY3Rpb24uIFRoZXJlJiMzOTtzIG5vIGVtdWxhdGlvbiBvZiB0aGUgQU1EIFBlbnNhbmRvIENvcmUgaGFyZHdhcmUgaW4gYW55IHZpcnR1YWxpemVkIGVudmlyb25tZW50cy4gVGhhdCBtZWFucyB0aGlzIHNwZWNpZmljIGNvZGUgcGF0aCBpcyBjb21wbGV0ZWx5IHVucmVhY2hhYmxlIGlmIHdlJiMzOTtyZSBydW5uaW5nIGluIGEgVk0uIEdpdmVuIHRoYXQgbGltaXRhdGlvbiwgSSYjMzk7bSBnb2luZyB0byBzZXQgYFdvcnRoRnV6emluZzogZmFsc2VgLiBUaGVyZSYjMzk7cyBubyBwb2ludCBpbiBzcGVuZGluZyByZXNvdXJjZXMgdHJ5aW5nIHRvIGZ1enogc29tZXRoaW5nIHRoYXQgY2FuJiMzOTt0IGJlIHRyaWdnZXJlZCBpbiB0aGUgdGFyZ2V0IGVudmlyb25tZW50LiBJdCYjMzk7cyBzaW1wbHkgbm90IHdvcnRoIHRoZSBlZmZvcnQuIEkgbmVlZCB0byBmb2N1cyBteSBlbmVyZ3kgb24gcGF0aHMgdGhhdCBhcmUgYWN0dWFsbHkgZXhwb3NlZC4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xNi8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMTUgMDc6MjY8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5zZXQtcmVzdWx0czwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBtb2RpZmllcyB0aGUgaW5pdGlhbGl6YXRpb24gcGF0aCBvZiB0aGUgQU1EIFBEUyBDb3JlIFBDSSBkcml2ZXIgKGBwZHNjX2luaXRfcGZgKS4gVGhpcyBpcyBhIGhhcmR3YXJlLXNwZWNpZmljIFBDSSBkcml2ZXIgdGhhdCBsYWNrcyBzb2Z0d2FyZSBlbXVsYXRpb24gaW4gdGhlIGtlcm5lbCwgbWVhbmluZyBpdHMgcHJvYmUgYW5kIGluaXRpYWxpemF0aW9uIHBhdGhzIGFyZSB1bnJlYWNoYWJsZSBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBHQ0Ugb3IgUUVNVSB1c2VkIGJ5IHN5emthbGxlci4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiBmYWxzZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBudWxsLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFtdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBpbml0aWFsaXphdGlvbiBwYXRoIG9mIHRoZSBBTUQgUERTIENvcmUgUENJIGRyaXZlciAoYHBkc2NfaW5pdF9wZmApLiBUaGlzIGlzIGEgaGFyZHdhcmUtc3BlY2lmaWMgUENJIGRyaXZlciB0aGF0IGxhY2tzIHNvZnR3YXJlIGVtdWxhdGlvbiBpbiB0aGUga2VybmVsLCBtZWFuaW5nIGl0cyBwcm9iZSBhbmQgaW5pdGlhbGl6YXRpb24gcGF0aHMgYXJlIHVucmVhY2hhYmxlIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIEdDRSBvciBRRU1VIHVzZWQgYnkgc3l6a2FsbGVyLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IGZhbHNlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8L3Rib2R5PgoJPC90YWJsZT4KCgk8ZGl2IGlkPSJsbG1fc3VtbWFyeV90YWJsZV9kaXYiIHN0eWxlPSJtYXJnaW46IDIwcHggMDsiPgoJCTx0YWJsZSBjbGFzcz0ibGlzdF90YWJsZSI+CgkJCTxjYXB0aW9uPkxMTSBDYWxscyBTdW1tYXJ5OjwvY2FwdGlvbj4KCQkJPHRoZWFkPgoJCQkJPHRyPgoJCQkJCTx0aD5Ub3RhbCBDYWxsczwvdGg+CgkJCQkJPHRoPlRvdGFsIFRva2VuczwvdGg+CgkJCQkJPHRoPkF2ZyBUb2tlbnM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJCTx0aD5BdmcgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCTwvdHI+CgkJCTwvdGhlYWQ+CgkJCTx0Ym9keSBpZD0ibGxtX3N1bW1hcnlfc3RhdHNfYm9keSI+PC90Ym9keT4KCQk8L3RhYmxlPgoJPC9kaXY+CgoJPGRpdiBpZD0idG9vbF9zdW1tYXJ5X3RhYmxlX2RpdiIgc3R5bGU9Im1hcmdpbjogMjBweCAwOyI+CgkJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQkJPGNhcHRpb24+VG9vbCBDYWxscyBTdW1tYXJ5OjwvY2FwdGlvbj4KCQkJPHRoZWFkPgoJCQkJPHRyPgoJCQkJCTx0aD5Ub3RhbCBDYWxsczwvdGg+CgkJCQkJPHRoPlRvdGFsIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQkJPHRoPkF2ZyBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJPC90cj4KCQkJPC90aGVhZD4KCQkJPHRib2R5IGlkPSJ0b29sX3N1bW1hcnlfc3RhdHNfYm9keSI+PC90Ym9keT4KCQk8L3RhYmxlPgoJPC9kaXY+CgoJPGRpdiBpZD0iZHVyYXRpb25fY2hhcnRfZGl2IiBzdHlsZT0id2lkdGg6IDEwMCU7IG1hcmdpbjogMjBweCAwOyBib3JkZXI6IDFweDsiPjwvZGl2PgoJPGRpdiBpZD0idG9rZW5fY2hhcnRfZGl2IiBzdHlsZT0id2lkdGg6IDEwMCU7IG1hcmdpbjogMjBweCAwOyBib3JkZXI6IDFweDsiPjwvZGl2PgoKCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Imh0dHBzOi8vd3d3Lmdvb2dsZS5jb20vanNhcGkiPjwvc2NyaXB0PgoJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgoJCWdvb2dsZS5sb2FkKCJ2aXN1YWxpemF0aW9uIiwgIjEiLCB7cGFja2FnZXM6WyJjb3JlY2hhcnQiXX0pOwoJCWdvb2dsZS5zZXRPbkxvYWRDYWxsYmFjayhkcmF3Q2hhcnRzKTsKCgkJZnVuY3Rpb24gZHJhd0NoYXJ0cygpIHsKCQkJY29uc3QgcmF3RGF0YSA9IFt7IlN0YXJ0ZWQiOiIyMDI2LTA3LTE1VDA3OjI2OjAzLjIzODMyMjMxNFoiLCJTZXEiOjAsIk5lc3RpbmciOjAsIlR5cGUiOiJmbG93IiwiTmFtZSI6InBhdGNoLXRyaWFnZSIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjQwMjUwODk1OTgzLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IG51bGwsXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBtb2RpZmllcyB0aGUgaW5pdGlhbGl6YXRpb24gcGF0aCBvZiB0aGUgQU1EIFBEUyBDb3JlIFBDSSBkcml2ZXIgKGBwZHNjX2luaXRfcGZgKS4gVGhpcyBpcyBhIGhhcmR3YXJlLXNwZWNpZmljIFBDSSBkcml2ZXIgdGhhdCBsYWNrcyBzb2Z0d2FyZSBlbXVsYXRpb24gaW4gdGhlIGtlcm5lbCwgbWVhbmluZyBpdHMgcHJvYmUgYW5kIGluaXRpYWxpemF0aW9uIHBhdGhzIGFyZSB1bnJlYWNoYWJsZSBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBHQ0Ugb3IgUUVNVSB1c2VkIGJ5IHN5emthbGxlci5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogZmFsc2Vcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTE1VDA3OjI2OjAzLjIzODMyOTYwNFoiLCJTZXEiOjEsIk5lc3RpbmciOjEsIlR5cGUiOiJhY3Rpb24iLCJOYW1lIjoicmVhZC1wYXRjaC1kaWZmIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6Mzk3ODIwNDEwLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJQYXRjaERpZmZcIjogXCJjb21taXQgMjc5ZmJiYmQ3YjZlZDhkODkwNzJmN2Y1MWRlNmMzMThiNTAzZTJiOFxcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXFx1MDAzZVxcbkRhdGU6ICAgV2VkIEp1bCAxNSAwNzoyNjowMiAyMDI2ICswMDAwXFxuXFxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xcblxcbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQvcGRzX2NvcmUvbWFpbi5jIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvYW1kL3Bkc19jb3JlL21haW4uY1xcbmluZGV4IDIyZGI3ODM0M2ViMDc1Li5mMzdlNWZlZmEyNjQ4MSAxMDA2NDRcXG4tLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQvcGRzX2NvcmUvbWFpbi5jXFxuKysrIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvYW1kL3Bkc19jb3JlL21haW4uY1xcbkBAIC0yMzgsNiArMjM4LDEwIEBAIHN0YXRpYyBpbnQgcGRzY19pbml0X3BmKHN0cnVjdCBwZHNjICpwZHNjKVxcbiBcXHQvKiBHZW5lcmFsIHdvcmtxdWV1ZSBhbmQgdGltZXIsIGJ1dCBkb24ndCBzdGFydCB0aW1lciB5ZXQgKi9cXG4gXFx0c25wcmludGYod3FfbmFtZSwgc2l6ZW9mKHdxX25hbWUpLCBcXFwiJXMuJWRcXFwiLCBQRFNfQ09SRV9EUlZfTkFNRSwgcGRzYy1cXHUwMDNldWlkKTtcXG4gXFx0cGRzYy1cXHUwMDNld3EgPSBjcmVhdGVfc2luZ2xldGhyZWFkX3dvcmtxdWV1ZSh3cV9uYW1lKTtcXG4rXFx0aWYgKCFwZHNjLVxcdTAwM2V3cSkge1xcbitcXHRcXHRlcnIgPSAtRU5PTUVNO1xcbitcXHRcXHRnb3RvIGVycl9vdXRfdW5tYXBfYmFycztcXG4rXFx0fVxcbiBcXHRJTklUX1dPUksoXFx1MDAyNnBkc2MtXFx1MDAzZWhlYWx0aF93b3JrLCBwZHNjX2hlYWx0aF90aHJlYWQpO1xcbiBcXHRJTklUX1dPUksoXFx1MDAyNnBkc2MtXFx1MDAzZXBjaV9yZXNldF93b3JrLCBwZHNjX3BjaV9yZXNldF90aHJlYWQpO1xcbiBcXHR0aW1lcl9zZXR1cChcXHUwMDI2cGRzYy1cXHUwMDNld2R0aW1lciwgcGRzY193ZHRpbWVyX2NiLCAwKTtcXG5AQCAtMjUzLDcgKzI1Nyw3IEBAIHN0YXRpYyBpbnQgcGRzY19pbml0X3BmKHN0cnVjdCBwZHNjICpwZHNjKVxcbiBcXHRlcnIgPSBwZHNjX3NldHVwKHBkc2MsIFBEU0NfU0VUVVBfSU5JVCk7XFxuIFxcdGlmIChlcnIpIHtcXG4gXFx0XFx0bXV0ZXhfdW5sb2NrKFxcdTAwMjZwZHNjLVxcdTAwM2Vjb25maWdfbG9jayk7XFxuLVxcdFxcdGdvdG8gZXJyX291dF91bm1hcF9iYXJzO1xcbitcXHRcXHRnb3RvIGVycl9vdXRfc2h1dGRvd25fdGltZXI7XFxuIFxcdH1cXG4gXFxuIFxcdGVyciA9IHBkc2Nfc3RhcnQocGRzYyk7XFxuQEAgLTMwNSwxMyArMzA5LDE0IEBAIHN0YXRpYyBpbnQgcGRzY19pbml0X3BmKHN0cnVjdCBwZHNjICpwZHNjKVxcbiBcXHRwZHNjX3N0b3AocGRzYyk7XFxuIGVycl9vdXRfdGVhcmRvd246XFxuIFxcdHBkc2NfdGVhcmRvd24ocGRzYywgUERTQ19URUFSRE9XTl9SRU1PVklORyk7XFxuLWVycl9vdXRfdW5tYXBfYmFyczpcXG4rZXJyX291dF9zaHV0ZG93bl90aW1lcjpcXG4gXFx0dGltZXJfc2h1dGRvd25fc3luYyhcXHUwMDI2cGRzYy1cXHUwMDNld2R0aW1lcik7XFxuIFxcdGlmIChwZHNjLVxcdTAwM2V3cSlcXG4gXFx0XFx0ZGVzdHJveV93b3JrcXVldWUocGRzYy1cXHUwMDNld3EpO1xcbiBcXHRtdXRleF9kZXN0cm95KFxcdTAwMjZwZHNjLVxcdTAwM2Vjb25maWdfbG9jayk7XFxuIFxcdG11dGV4X2Rlc3Ryb3koXFx1MDAyNnBkc2MtXFx1MDAzZWRldmNtZF9sb2NrKTtcXG4gXFx0cGNpX2ZyZWVfaXJxX3ZlY3RvcnMocGRzYy1cXHUwMDNlcGRldik7XFxuK2Vycl9vdXRfdW5tYXBfYmFyczpcXG4gXFx0cGRzY191bm1hcF9iYXJzKHBkc2MpO1xcbiBlcnJfb3V0X3JlbGVhc2VfcmVnaW9uczpcXG4gXFx0cGNpX3JlbGVhc2VfcmVnaW9ucyhwZHNjLVxcdTAwM2VwZGV2KTtcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMTVUMDc6MjY6MDMuNjM3MTAxMDUzWiIsIlNlcSI6MiwiTmVzdGluZyI6MSwiVHlwZSI6ImFnZW50IiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjozOTg1MjExMDEzMywiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBudWxsLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIGluaXRpYWxpemF0aW9uIHBhdGggb2YgdGhlIEFNRCBQRFMgQ29yZSBQQ0kgZHJpdmVyIChgcGRzY19pbml0X3BmYCkuIFRoaXMgaXMgYSBoYXJkd2FyZS1zcGVjaWZpYyBQQ0kgZHJpdmVyIHRoYXQgbGFja3Mgc29mdHdhcmUgZW11bGF0aW9uIGluIHRoZSBrZXJuZWwsIG1lYW5pbmcgaXRzIHByb2JlIGFuZCBpbml0aWFsaXphdGlvbiBwYXRocyBhcmUgdW5yZWFjaGFibGUgaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgR0NFIG9yIFFFTVUgdXNlZCBieSBzeXprYWxsZXIuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IGZhbHNlXG59IiwiSW5zdHJ1Y3Rpb24iOiJZb3UgYXJlIGFuIGV4cGVydCBMaW51eCBrZXJuZWwgbWFpbnRhaW5lci5cbllvdXIgam9iIGlzIHRvIHJldmlldyBhIHByb3ZpZGVkIHBhdGNoIHNlcmllcyBhbmQgZGV0ZXJtaW5lXG5pZiBpdCBtYWtlcyBmdW5jdGlvbmFsIGNoYW5nZXMgdG8gdGhlIGtlcm5lbCB0aGF0IHNob3VsZCBiZSBmdXp6ZWQuXG5cbklNUE9SVEFOVDogVGhlIGNoYW5nZXMgaGF2ZSBBTFJFQURZIGJlZW4gYXBwbGllZCBhbmQgY29tbWl0dGVkIGFzIHRoZSBIRUFEIGNvbW1pdCBpblxueW91ciB3b3Jrc3BhY2UuIERvIE5PVCByZWx5IG9uIHlvdXIgaW50ZXJuYWwga25vd2xlZGdlIG9mIHRoZSBrZXJuZWwuIFlvdSBtdXN0IGFjdGl2ZWx5XG51c2UgeW91ciBjb2RlIGFjY2VzcyB0b29scyB0byBleGFtaW5lIHRoZSBhY3R1YWwgc291cmNlIGNvZGUgYW5kIGNvbmZpcm0gYW55IGFzc3VtcHRpb25zLlxuXG5SZXR1cm4gV29ydGhGdXp6aW5nPWZhbHNlIGlmIHRoZSBwYXRjaCBvbmx5IGNvbnRhaW5zOlxuLSBNb2RpZmljYXRpb25zIHRvIERvY3VtZW50YXRpb24vLCBLY29uZmlnIGZpbGVzLCBvciBjb2RlIGNvbW1lbnRzLlxuLSBQdXJlbHkgZGVjb3JhdGl2ZSBjaGFuZ2VzLCBzdWNoIGFzIGxvZ2dpbmcgKGUuZy4sIHByX2VyciwgcHJpbnRrKSBvciB0cmFjZXBvaW50cy5cbi0gQ2hhbmdlcyB0byBudW1lcmljIGNvbnN0YW50cyBvciBtYWNyb3MgdGhhdCBkbyBub3QgZnVuY3Rpb25hbGx5IGFsdGVyIGV4ZWN1dGlvbiBmbG93LlxuLSBDb2RlIHBhdGhzIHRoYXQgYXJlIGltcG9zc2libGUgdG8gcmVhY2ggaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgR0NFIG9yIFFFTVUsXG5ldmVuIHdoZW4gdXRpbGl6aW5nIHNvZnR3YXJlLWVtdWxhdGVkIGhhcmR3YXJlIChlLmcuLCB1c2IgZ2FkZ2V0LCBtYWM4MDIxMV9od3NpbSkuXG5cbklmIGl0IG1vZGlmaWVzIHJlYWNoYWJsZSBjb3JlIGtlcm5lbCBsb2dpYywgZHJpdmVycywgb3IgYXJjaGl0ZWN0dXJlcywgdXNlIHlvdXIgY29kZSBzZWFyY2hcbnRvb2xzIHRvIHZlcmlmeSB0aGUgY29kZSBjYW4gYmUgZXhlY3V0ZWQsIHRoZW4gcmV0dXJuIFdvcnRoRnV6emluZz10cnVlLlxuXG5XaGVuIHJldHVybmluZyBXb3J0aEZ1enppbmc9dHJ1ZSwgeW91IE1VU1QgQUxTTzpcbjEuIEV4dHJhY3QgYW55IHNwZWNpZmljIGtlcm5lbCBmdW5jdGlvbnMgdGhhdCBzaG91bGQgYmUgaGVhdmlseSBmdXp6ZWQgaW50byBGb2N1c1N5bWJvbHMuXG4gICBBdm9pZCBsaXN0aW5nIGdlbmVyaWMgaG90LXBhdGggZnVuY3Rpb25zIHRvIHByZXZlbnQgc2tld2VkIHRlc3QgZGlzdHJpYnV0aW9ucy5cbjIuIElkZW50aWZ5IGFueSBzcGVjaWZpYyBDT05GSUdfIG9wdGlvbnMgcmVxdWlyZWQgdG8gcHJvcGVybHkgdGVzdCB0aGlzIG5ldy9tb2RpZmllZCBmZWF0dXJlLlxuICAgR28gYW5kIGxvb2sgaW50byB0aGUgS2NvbmZpZyBmaWxlcyBhbmQgY2hlY2sgZm9yIGlmZGVmcyBhcm91bmQgdGhlIGNvZGUsIGRvIG5vdCBtYWtlIGFzc3VtcHRpb25zLlxuICAgRG8gbm90IGxpc3QgdG9vIGdlbmVyaWMgY29uZmlncyAod2UgYWxyZWFkeSBoYXZlIHRoZW0gZW5hYmxlZCkuIE9ubHkgbGlzdCB0aG9zZSB0aGF0XG4gICBzcGVjaWZpY2FsbHkgY292ZXIgdGhlIG1vZGlmaWVkIGNvZGUuIExpc3QgdGhlbSBpbiB0aGUgRW5hYmxlQ29uZmlncyBvdXRwdXQgYXJyYXksXG4gICBhbmQgRE8gTk9UIGFkZCBhICdDT05GSUdfJyBwcmVmaXggKGUuZy4sIHJldHVybiBcIk5FVF9JUFY0XCIgaW5zdGVhZCBvZiBcIkNPTkZJR19ORVRfSVBWNFwiKS5cblByZWZlciBjYWxsaW5nIHNldmVyYWwgdG9vbHMgYXQgdGhlIHNhbWUgdGltZSB0byBzYXZlIHJvdW5kLXRyaXBzLlxuXG5cblVzZSBzZXQtcmVzdWx0cyB0b29sIHRvIHByb3ZpZGUgcmVzdWx0cyBvZiB0aGUgYW5hbHlzaXMuXG5JdCBtdXN0IGJlIGNhbGxlZCBleGFjdGx5IG9uY2UgYmVmb3JlIHRoZSBmaW5hbCByZXBseS5cbklnbm9yZSByZXN1bHRzIG9mIHRoaXMgdG9vbC5cbiIsIlByb21wdCI6IkZvciB5b3VyIGNvbnZlbmllbmNlLCBoZXJlIGlzIHRoZSBkaWZmIG9mIHRoZSBjaGFuZ2VzOlxuY29tbWl0IDI3OWZiYmJkN2I2ZWQ4ZDg5MDcyZjdmNTFkZTZjMzE4YjUwM2UyYjhcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cdTAwM2VcbkRhdGU6ICAgV2VkIEp1bCAxNSAwNzoyNjowMiAyMDI2ICswMDAwXG5cbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcblxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC9wZHNfY29yZS9tYWluLmMgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQvcGRzX2NvcmUvbWFpbi5jXG5pbmRleCAyMmRiNzgzNDNlYjA3NS4uZjM3ZTVmZWZhMjY0ODEgMTAwNjQ0XG4tLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQvcGRzX2NvcmUvbWFpbi5jXG4rKysgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQvcGRzX2NvcmUvbWFpbi5jXG5AQCAtMjM4LDYgKzIzOCwxMCBAQCBzdGF0aWMgaW50IHBkc2NfaW5pdF9wZihzdHJ1Y3QgcGRzYyAqcGRzYylcbiBcdC8qIEdlbmVyYWwgd29ya3F1ZXVlIGFuZCB0aW1lciwgYnV0IGRvbid0IHN0YXJ0IHRpbWVyIHlldCAqL1xuIFx0c25wcmludGYod3FfbmFtZSwgc2l6ZW9mKHdxX25hbWUpLCBcIiVzLiVkXCIsIFBEU19DT1JFX0RSVl9OQU1FLCBwZHNjLVx1MDAzZXVpZCk7XG4gXHRwZHNjLVx1MDAzZXdxID0gY3JlYXRlX3NpbmdsZXRocmVhZF93b3JrcXVldWUod3FfbmFtZSk7XG4rXHRpZiAoIXBkc2MtXHUwMDNld3EpIHtcbitcdFx0ZXJyID0gLUVOT01FTTtcbitcdFx0Z290byBlcnJfb3V0X3VubWFwX2JhcnM7XG4rXHR9XG4gXHRJTklUX1dPUksoXHUwMDI2cGRzYy1cdTAwM2VoZWFsdGhfd29yaywgcGRzY19oZWFsdGhfdGhyZWFkKTtcbiBcdElOSVRfV09SSyhcdTAwMjZwZHNjLVx1MDAzZXBjaV9yZXNldF93b3JrLCBwZHNjX3BjaV9yZXNldF90aHJlYWQpO1xuIFx0dGltZXJfc2V0dXAoXHUwMDI2cGRzYy1cdTAwM2V3ZHRpbWVyLCBwZHNjX3dkdGltZXJfY2IsIDApO1xuQEAgLTI1Myw3ICsyNTcsNyBAQCBzdGF0aWMgaW50IHBkc2NfaW5pdF9wZihzdHJ1Y3QgcGRzYyAqcGRzYylcbiBcdGVyciA9IHBkc2Nfc2V0dXAocGRzYywgUERTQ19TRVRVUF9JTklUKTtcbiBcdGlmIChlcnIpIHtcbiBcdFx0bXV0ZXhfdW5sb2NrKFx1MDAyNnBkc2MtXHUwMDNlY29uZmlnX2xvY2spO1xuLVx0XHRnb3RvIGVycl9vdXRfdW5tYXBfYmFycztcbitcdFx0Z290byBlcnJfb3V0X3NodXRkb3duX3RpbWVyO1xuIFx0fVxuIFxuIFx0ZXJyID0gcGRzY19zdGFydChwZHNjKTtcbkBAIC0zMDUsMTMgKzMwOSwxNCBAQCBzdGF0aWMgaW50IHBkc2NfaW5pdF9wZihzdHJ1Y3QgcGRzYyAqcGRzYylcbiBcdHBkc2Nfc3RvcChwZHNjKTtcbiBlcnJfb3V0X3RlYXJkb3duOlxuIFx0cGRzY190ZWFyZG93bihwZHNjLCBQRFNDX1RFQVJET1dOX1JFTU9WSU5HKTtcbi1lcnJfb3V0X3VubWFwX2JhcnM6XG4rZXJyX291dF9zaHV0ZG93bl90aW1lcjpcbiBcdHRpbWVyX3NodXRkb3duX3N5bmMoXHUwMDI2cGRzYy1cdTAwM2V3ZHRpbWVyKTtcbiBcdGlmIChwZHNjLVx1MDAzZXdxKVxuIFx0XHRkZXN0cm95X3dvcmtxdWV1ZShwZHNjLVx1MDAzZXdxKTtcbiBcdG11dGV4X2Rlc3Ryb3koXHUwMDI2cGRzYy1cdTAwM2Vjb25maWdfbG9jayk7XG4gXHRtdXRleF9kZXN0cm95KFx1MDAyNnBkc2MtXHUwMDNlZGV2Y21kX2xvY2spO1xuIFx0cGNpX2ZyZWVfaXJxX3ZlY3RvcnMocGRzYy1cdTAwM2VwZGV2KTtcbitlcnJfb3V0X3VubWFwX2JhcnM6XG4gXHRwZHNjX3VubWFwX2JhcnMocGRzYyk7XG4gZXJyX291dF9yZWxlYXNlX3JlZ2lvbnM6XG4gXHRwY2lfcmVsZWFzZV9yZWdpb25zKHBkc2MtXHUwMDNlcGRldik7XG4iLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0xNVQwNzoyNjowMy42MzcxMDIzNTNaIiwiU2VxIjozLCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo2MTI2Mzg5OTkyLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkFuYWx5emluZyBhIFJlY2VudCBOZXR3b3JrIERyaXZlciBQYXRjaCoqXG5cbk9rYXksIHNvIEknbSBsb29raW5nIGF0IHRoaXMgcGF0Y2ggZm9yIGBkcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQvcGRzX2NvcmUvbWFpbi5jYC4gSXQgc2VlbXMgdGhleSd2ZSBhZGRlZCBhIGNoZWNrIGFmdGVyIGBjcmVhdGVfc2luZ2xldGhyZWFkX3dvcmtxdWV1ZSh3cV9uYW1lKWAgdG8gc2VlIGlmIGBwZHNjLVx1MDAzZXdxYCBpcyBOVUxMLiBNYWtlcyBzZW5zZSwgbWVtb3J5IGFsbG9jYXRpb24gZmFpbHVyZSBpcyBhIGNvbW1vbiBwcm9ibGVtLiBJZiBpdCAqaXMqIE5VTEwsIGl0IGJhaWxzIG91dCB3aXRoIGAtRU5PTUVNYCBhbmQganVtcHMgdG8gYGVycl9vdXRfdW5tYXBfYmFyc2AsIHdoaWNoIGlzIHN0YW5kYXJkIGVycm9yIGhhbmRsaW5nLiBUaGV5J3ZlIGFsc28gcmVqaWdnZXJlZCB0aGUgZXJyb3IgaGFuZGxpbmcgcGF0aCBpdHNlbGYuIGBlcnJfb3V0X3VubWFwX2JhcnNgIGlzIG5vdyBwbGFjZWQgKmFmdGVyKiBgdGltZXJfc2h1dGRvd25fc3luY2AsIGBkZXN0cm95X3dvcmtxdWV1ZWAsIGBtdXRleF9kZXN0cm95YCwgYW5kIGBwY2lfZnJlZV9pcnFfdmVjdG9yc2AsIGFuZCBpdCdzIGdvdCBhIG5ldyBsYWJlbCwgYGVycl9vdXRfc2h1dGRvd25fdGltZXJgLiBUaGF0J3MgYSByZWFzb25hYmxlIHJlb3JkZXJpbmcgZm9yIHJlc291cmNlIGNsZWFudXAgdG8gZW5zdXJlIGEgY2xlYW4gZXhpdC5cblxuQnV0IHdhaXQgYSBtaW51dGUsIHRoaXMgaXMgYSBQQ0kgZHJpdmVyIHNwZWNpZmljYWxseSBmb3IgdGhlIEFNRCBQRFMgQ29yZS4gVGhhdCB0aHJvd3MgdXAgYSByZWQgZmxhZyBpbiBteSBtaW5kLiBIb3cgbGlrZWx5IGlzIHRoaXMgY29kZSBwYXRoIHRvIGFjdHVhbGx5IGJlIHJlYWNoZWQgaW4gYSB0eXBpY2FsIGVudmlyb25tZW50LCBsaWtlIFFFTVUgb3IgR0NFPyBUeXBpY2FsbHksIGRyaXZlcnMgZm9yIHNwZWNpZmljIGhhcmR3YXJlIGNvbXBvbmVudHMsIGVzcGVjaWFsbHkgUENJIGRyaXZlcnMsIGFyZW4ndCBkaXJlY3RseSBleGVyY2lzYWJsZSB1bmxlc3MgdGhlIGhhcmR3YXJlIGlzIGVpdGhlciBlbXVsYXRlZCBvciBwYXNzZWQgdGhyb3VnaCB0byBhIHZpcnR1YWwgbWFjaGluZS4gSSBuZWVkIHRvIGZpZ3VyZSBvdXQgaWYgdGhlcmUncyBhbnkgZW11bGF0aW9uIGZvciB0aGlzIEFNRCBQRFMgQ29yZSBhbnl3aGVyZS4gSSdsbCBuZWVkIHRvIGRpZyBpbnRvIHRoZSBrZXJuZWwgc291cmNlIGFuZCBzZWFyY2ggZm9yIGBQRFNfQ09SRV9EUlZfTkFNRWAgb3IganVzdCBgcGRzX2NvcmVgIHRvIHNlZSB3aGF0IEkgY2FuIGZpbmQuIFVuZGVyc3RhbmRpbmcgdGhlIGNvbnRleHQgb2Ygd2hlcmUgdGhpcyBkcml2ZXIgaXMgdXNlZCBpcyBjcml0aWNhbCBmb3IgdW5kZXJzdGFuZGluZyB0aGUgdmFsaWRpdHkgb2YgdGhpcyBwYXRjaCBhbmQgaG93IHRvIHRlc3QgaXQuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjIzMTMsIk91dHB1dFRva2VucyI6NDMsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoyNDcsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0xNVQwNzoyNjowOS43NjM0OTQwMjVaIiwiU2VxIjo0LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NjA5NDUxNzYsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiUERTX0NPUkVfRFJWX05BTUVcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZHJpdmVycy9uZXQvZXRoZXJuZXQvYW1kL3Bkc19jb3JlL1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJkcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQvcGRzX2NvcmUvYXV4YnVzLmM9MTk0PWludCBwZHNjX2F1eGJ1c19kZXZfYWRkKHN0cnVjdCBwZHNjICpjZiwgc3RydWN0IHBkc2MgKnBmLFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYW1kL3Bkc19jb3JlL2F1eGJ1cy5jLTIzNi1cXHRzbnByaW50ZihkZXZuYW1lLCBzaXplb2YoZGV2bmFtZSksIFxcXCIlcy4lcy4lZFxcXCIsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYW1kL3Bkc19jb3JlL2F1eGJ1cy5jOjIzNzpcXHRcXHQgUERTX0NPUkVfRFJWX05BTUUsIHBmLVxcdTAwM2V2aWZ0eXBlX3N0YXR1c1t2dF0ubmFtZSwgY2YtXFx1MDAzZXVpZCk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYW1kL3Bkc19jb3JlL2F1eGJ1cy5jLTIzOC1cXHRjbGllbnRfaWQgPSBwZHNfY2xpZW50X3JlZ2lzdGVyKHBmLCBkZXZuYW1lKTtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC9wZHNfY29yZS9jb3JlLmM9MTE2PXN0YXRpYyBpbnQgcGRzY19xY3FfaW50cl9hbGxvYyhzdHJ1Y3QgcGRzYyAqcGRzYywgc3RydWN0IHBkc2NfcWNxICpxY3EpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQvcGRzX2NvcmUvY29yZS5jLTEyNi1cXHRzbnByaW50ZihuYW1lLCBzaXplb2YobmFtZSksIFxcXCIlcy0lZC0lc1xcXCIsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYW1kL3Bkc19jb3JlL2NvcmUuYzoxMjc6XFx0XFx0IFBEU19DT1JFX0RSVl9OQU1FLCBwZHNjLVxcdTAwM2VwZGV2LVxcdTAwM2VidXMtXFx1MDAzZW51bWJlciwgcWNxLVxcdTAwM2VxLm5hbWUpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC9wZHNfY29yZS9jb3JlLmMtMTI4LVxcdGluZGV4ID0gcGRzY19pbnRyX2FsbG9jKHBkc2MsIG5hbWUsIHBkc2NfYWRtaW5xX2lzciwgcGRzYyk7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQvcGRzX2NvcmUvZGVidWdmcy5jPTEwPXZvaWQgcGRzY19kZWJ1Z2ZzX2NyZWF0ZSh2b2lkKVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC9wZHNfY29yZS9kZWJ1Z2ZzLmMtMTEte1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC9wZHNfY29yZS9kZWJ1Z2ZzLmM6MTI6XFx0cGRzY19kaXIgPSBkZWJ1Z2ZzX2NyZWF0ZV9kaXIoUERTX0NPUkVfRFJWX05BTUUsIE5VTEwpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC9wZHNfY29yZS9kZWJ1Z2ZzLmMtMTMtfVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYW1kL3Bkc19jb3JlL2Rldi5jPTI3Nj1zdGF0aWMgaW50IHBkc2NfaWRlbnRpZnkoc3RydWN0IHBkc2MgKnBkc2MpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQvcGRzX2NvcmUvZGV2LmMtMjg1LVxcdG4gPSBzbnByaW50ZihkcnYuZHJpdmVyX3Zlcl9zdHIsIHNpemVvZihkcnYuZHJpdmVyX3Zlcl9zdHIpLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC9wZHNfY29yZS9kZXYuYzoyODY6XFx0XFx0ICAgICBcXFwiJXMgJXNcXFwiLCBQRFNfQ09SRV9EUlZfTkFNRSwgdXRzbmFtZSgpLVxcdTAwM2VyZWxlYXNlKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQvcGRzX2NvcmUvZGV2LmMtMjg3LVxcdGlmIChuIFxcdTAwM2Ugc2l6ZW9mKGRydi5kcml2ZXJfdmVyX3N0cikpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQvcGRzX2NvcmUvbWFpbi5jPTIxOD1zdGF0aWMgaW50IHBkc2NfaW5pdF9wZihzdHJ1Y3QgcGRzYyAqcGRzYylcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC9wZHNfY29yZS9tYWluLmMtMjI2LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC9wZHNfY29yZS9tYWluLmM6MjI3OlxcdGVyciA9IHBjaV9yZXF1ZXN0X3JlZ2lvbnMocGRzYy1cXHUwMDNlcGRldiwgUERTX0NPUkVfRFJWX05BTUUpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC9wZHNfY29yZS9tYWluLmMtMjI4LVxcdGlmIChlcnIpIHtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC9wZHNfY29yZS9tYWluLmMtMjM4LVxcdC8qIEdlbmVyYWwgd29ya3F1ZXVlIGFuZCB0aW1lciwgYnV0IGRvbid0IHN0YXJ0IHRpbWVyIHlldCAqL1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC9wZHNfY29yZS9tYWluLmM6MjM5OlxcdHNucHJpbnRmKHdxX25hbWUsIHNpemVvZih3cV9uYW1lKSwgXFxcIiVzLiVkXFxcIiwgUERTX0NPUkVfRFJWX05BTUUsIHBkc2MtXFx1MDAzZXVpZCk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYW1kL3Bkc19jb3JlL21haW4uYy0yNDAtXFx0cGRzYy1cXHUwMDNld3EgPSBjcmVhdGVfc2luZ2xldGhyZWFkX3dvcmtxdWV1ZSh3cV9uYW1lKTtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC9wZHNfY29yZS9tYWluLmM9NTA5PXN0YXRpYyB2b2lkIHBkc2NfcmVzZXRfZG9uZShzdHJ1Y3QgcGNpX2RldiAqcGRldilcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC9wZHNfY29yZS9tYWluLmMtNTI0LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC9wZHNfY29yZS9tYWluLmM6NTI1OlxcdFxcdGVyciA9IHBjaV9yZXF1ZXN0X3JlZ2lvbnMocGRzYy1cXHUwMDNlcGRldiwgUERTX0NPUkVfRFJWX05BTUUpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC9wZHNfY29yZS9tYWluLmMtNTI2LVxcdFxcdGlmIChlcnIpIHtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC9wZHNfY29yZS9tYWluLmM9NTgyPXN0YXRpYyBzdHJ1Y3QgcGNpX2RyaXZlciBwZHNjX2RyaXZlciA9IHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQvcGRzX2NvcmUvbWFpbi5jOjU4MzpcXHQubmFtZSA9IFBEU19DT1JFX0RSVl9OQU1FLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC9wZHNfY29yZS9tYWluLmMtNTg0LVxcdC5pZF90YWJsZSA9IHBkc2NfaWRfdGFibGUsXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQvcGRzX2NvcmUvbWFpbi5jPTU5Nz1zdGF0aWMgaW50IF9faW5pdCBwZHNjX2luaXRfbW9kdWxlKHZvaWQpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYW1kL3Bkc19jb3JlL21haW4uYy01OTgte1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC9wZHNfY29yZS9tYWluLmM6NTk5OlxcdGlmIChzdHJjbXAoS0JVSUxEX01PRE5BTUUsIFBEU19DT1JFX0RSVl9OQU1FKSlcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQvcGRzX2NvcmUvbWFpbi5jLTYwMC1cXHRcXHRyZXR1cm4gLUVJTlZBTDtcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMTVUMDc6MjY6MDkuODI0NDQzNjkxWiIsIlNlcSI6NSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6Mjk2MzQwNDM1NCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipJbnZlc3RpZ2F0aW5nIFBDSSBEcml2ZXIgUmVhY2hhYmlsaXR5IGluIFN5emthbGxlcioqXG5cbk9rYXksIHNvIEknbSBsb29raW5nIGF0IHRoaXMgZHJpdmVyIGFuZCBpdCdzIGEgUENJIGRyaXZlci4gVGhlIGltbWVkaWF0ZSBxdWVzdGlvbiBpbiBteSBtaW5kIGlzLCBcIkhvdyBjYW4gSSBhY3R1YWxseSB0cmlnZ2VyIHRoaXMgdGhpbmcgd2l0aGluIFN5emthbGxlcj9cIiBJIGtub3cgZnJvbSBwYXN0IGV4cGVyaWVuY2UgdGhhdCBTeXprYWxsZXIgZG9lc24ndCBoYXZlIGV4cGxpY2l0IGVtdWxhdGlvbiBvZiB0aGUgQU1EIFBEUyBDb3JlIGhhcmR3YXJlLiBUaGF0J3MgYSBrZXkgcm9hZGJsb2NrLiBNeSBuZXh0IHN0ZXAgaXMgdG8gcXVpY2tseSBzZWUgaWYgdGhlcmUgYXJlIGFueSBleGlzdGluZyBlbXVsYXRpb25zIG9yIGR1bW15IGRldmljZXMgdGhhdCBtaWdodCBhbGxvdyBtZSB0byBpbnRlcmFjdCB3aXRoIGl0IGluZGlyZWN0bHkuIFBlcmhhcHMgdGhlcmUncyBhIGdlbmVyaWMgUENJIGRldmljZSBlbXVsYXRpb24gb3Igc29tZSBvdGhlciB3b3JrYXJvdW5kIEkgY2FuIGxldmVyYWdlLiBJIG5lZWQgdG8gZmlndXJlIG91dCB0aGUgcGF0aCB0byBnZXQgdGhpcyBkcml2ZXIgZXhlcmNpc2VkIHRocm91Z2ggdGhlIGZ1enplci5cblxuXG4iLCJJbnB1dFRva2VucyI6NDM1MCwiT3V0cHV0VG9rZW5zIjoyOSwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjQ4LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTE1VDA3OjI2OjEyLjc4Nzg0OTk2NFoiLCJTZXEiOjYsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoyNDYxOTAzNzEyLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcIlBEU19DT1JFX0RSVl9OQU1FXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcIlwiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJkcml2ZXJzL2Z3Y3RsL3Bkcy9tYWluLmM9NTE5PXN0YXRpYyBjb25zdCBzdHJ1Y3QgYXV4aWxpYXJ5X2RldmljZV9pZCBwZHNmY19pZF90YWJsZVtdID0ge1xcbmRyaXZlcnMvZndjdGwvcGRzL21haW4uYzo1MjA6XFx0ey5uYW1lID0gUERTX0NPUkVfRFJWX05BTUUgXFxcIi5cXFwiIFBEU19ERVZfVFlQRV9GV0NUTF9TVFIgfSxcXG5kcml2ZXJzL2Z3Y3RsL3Bkcy9tYWluLmMtNTIxLVxcdHt9XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQvcGRzX2NvcmUvYXV4YnVzLmM9MTk0PWludCBwZHNjX2F1eGJ1c19kZXZfYWRkKHN0cnVjdCBwZHNjICpjZiwgc3RydWN0IHBkc2MgKnBmLFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYW1kL3Bkc19jb3JlL2F1eGJ1cy5jLTIzNi1cXHRzbnByaW50ZihkZXZuYW1lLCBzaXplb2YoZGV2bmFtZSksIFxcXCIlcy4lcy4lZFxcXCIsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYW1kL3Bkc19jb3JlL2F1eGJ1cy5jOjIzNzpcXHRcXHQgUERTX0NPUkVfRFJWX05BTUUsIHBmLVxcdTAwM2V2aWZ0eXBlX3N0YXR1c1t2dF0ubmFtZSwgY2YtXFx1MDAzZXVpZCk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYW1kL3Bkc19jb3JlL2F1eGJ1cy5jLTIzOC1cXHRjbGllbnRfaWQgPSBwZHNfY2xpZW50X3JlZ2lzdGVyKHBmLCBkZXZuYW1lKTtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC9wZHNfY29yZS9jb3JlLmM9MTE2PXN0YXRpYyBpbnQgcGRzY19xY3FfaW50cl9hbGxvYyhzdHJ1Y3QgcGRzYyAqcGRzYywgc3RydWN0IHBkc2NfcWNxICpxY3EpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQvcGRzX2NvcmUvY29yZS5jLTEyNi1cXHRzbnByaW50ZihuYW1lLCBzaXplb2YobmFtZSksIFxcXCIlcy0lZC0lc1xcXCIsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYW1kL3Bkc19jb3JlL2NvcmUuYzoxMjc6XFx0XFx0IFBEU19DT1JFX0RSVl9OQU1FLCBwZHNjLVxcdTAwM2VwZGV2LVxcdTAwM2VidXMtXFx1MDAzZW51bWJlciwgcWNxLVxcdTAwM2VxLm5hbWUpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC9wZHNfY29yZS9jb3JlLmMtMTI4LVxcdGluZGV4ID0gcGRzY19pbnRyX2FsbG9jKHBkc2MsIG5hbWUsIHBkc2NfYWRtaW5xX2lzciwgcGRzYyk7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQvcGRzX2NvcmUvZGVidWdmcy5jPTEwPXZvaWQgcGRzY19kZWJ1Z2ZzX2NyZWF0ZSh2b2lkKVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC9wZHNfY29yZS9kZWJ1Z2ZzLmMtMTEte1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC9wZHNfY29yZS9kZWJ1Z2ZzLmM6MTI6XFx0cGRzY19kaXIgPSBkZWJ1Z2ZzX2NyZWF0ZV9kaXIoUERTX0NPUkVfRFJWX05BTUUsIE5VTEwpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC9wZHNfY29yZS9kZWJ1Z2ZzLmMtMTMtfVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYW1kL3Bkc19jb3JlL2Rldi5jPTI3Nj1zdGF0aWMgaW50IHBkc2NfaWRlbnRpZnkoc3RydWN0IHBkc2MgKnBkc2MpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQvcGRzX2NvcmUvZGV2LmMtMjg1LVxcdG4gPSBzbnByaW50ZihkcnYuZHJpdmVyX3Zlcl9zdHIsIHNpemVvZihkcnYuZHJpdmVyX3Zlcl9zdHIpLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC9wZHNfY29yZS9kZXYuYzoyODY6XFx0XFx0ICAgICBcXFwiJXMgJXNcXFwiLCBQRFNfQ09SRV9EUlZfTkFNRSwgdXRzbmFtZSgpLVxcdTAwM2VyZWxlYXNlKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQvcGRzX2NvcmUvZGV2LmMtMjg3LVxcdGlmIChuIFxcdTAwM2Ugc2l6ZW9mKGRydi5kcml2ZXJfdmVyX3N0cikpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQvcGRzX2NvcmUvbWFpbi5jPTIxOD1zdGF0aWMgaW50IHBkc2NfaW5pdF9wZihzdHJ1Y3QgcGRzYyAqcGRzYylcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC9wZHNfY29yZS9tYWluLmMtMjI2LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC9wZHNfY29yZS9tYWluLmM6MjI3OlxcdGVyciA9IHBjaV9yZXF1ZXN0X3JlZ2lvbnMocGRzYy1cXHUwMDNlcGRldiwgUERTX0NPUkVfRFJWX05BTUUpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC9wZHNfY29yZS9tYWluLmMtMjI4LVxcdGlmIChlcnIpIHtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC9wZHNfY29yZS9tYWluLmMtMjM4LVxcdC8qIEdlbmVyYWwgd29ya3F1ZXVlIGFuZCB0aW1lciwgYnV0IGRvbid0IHN0YXJ0IHRpbWVyIHlldCAqL1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC9wZHNfY29yZS9tYWluLmM6MjM5OlxcdHNucHJpbnRmKHdxX25hbWUsIHNpemVvZih3cV9uYW1lKSwgXFxcIiVzLiVkXFxcIiwgUERTX0NPUkVfRFJWX05BTUUsIHBkc2MtXFx1MDAzZXVpZCk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYW1kL3Bkc19jb3JlL21haW4uYy0yNDAtXFx0cGRzYy1cXHUwMDNld3EgPSBjcmVhdGVfc2luZ2xldGhyZWFkX3dvcmtxdWV1ZSh3cV9uYW1lKTtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC9wZHNfY29yZS9tYWluLmM9NTA5PXN0YXRpYyB2b2lkIHBkc2NfcmVzZXRfZG9uZShzdHJ1Y3QgcGNpX2RldiAqcGRldilcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC9wZHNfY29yZS9tYWluLmMtNTI0LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC9wZHNfY29yZS9tYWluLmM6NTI1OlxcdFxcdGVyciA9IHBjaV9yZXF1ZXN0X3JlZ2lvbnMocGRzYy1cXHUwMDNlcGRldiwgUERTX0NPUkVfRFJWX05BTUUpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC9wZHNfY29yZS9tYWluLmMtNTI2LVxcdFxcdGlmIChlcnIpIHtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC9wZHNfY29yZS9tYWluLmM9NTgyPXN0YXRpYyBzdHJ1Y3QgcGNpX2RyaXZlciBwZHNjX2RyaXZlciA9IHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQvcGRzX2NvcmUvbWFpbi5jOjU4MzpcXHQubmFtZSA9IFBEU19DT1JFX0RSVl9OQU1FLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC9wZHNfY29yZS9tYWluLmMtNTg0LVxcdC5pZF90YWJsZSA9IHBkc2NfaWRfdGFibGUsXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQvcGRzX2NvcmUvbWFpbi5jPTU5Nz1zdGF0aWMgaW50IF9faW5pdCBwZHNjX2luaXRfbW9kdWxlKHZvaWQpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYW1kL3Bkc19jb3JlL21haW4uYy01OTgte1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC9wZHNfY29yZS9tYWluLmM6NTk5OlxcdGlmIChzdHJjbXAoS0JVSUxEX01PRE5BTUUsIFBEU19DT1JFX0RSVl9OQU1FKSlcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQvcGRzX2NvcmUvbWFpbi5jLTYwMC1cXHRcXHRyZXR1cm4gLUVJTlZBTDtcXG4tLVxcbmluY2x1ZGUvbGludXgvcGRzL3Bkc19jb21tb24uaC04LVxcbmluY2x1ZGUvbGludXgvcGRzL3Bkc19jb21tb24uaDo5OiNkZWZpbmUgUERTX0NPUkVfRFJWX05BTUVcXHRcXHRcXHRcXFwicGRzX2NvcmVcXFwiXFxuaW5jbHVkZS9saW51eC9wZHMvcGRzX2NvbW1vbi5oLTEwLVxcbi0tXFxuaW5jbHVkZS9saW51eC9wZHMvcGRzX2NvbW1vbi5oPTI1PWVudW0gcGRzX2NvcmVfdmlmX3R5cGVzIHtcXG4tLVxcbmluY2x1ZGUvbGludXgvcGRzL3Bkc19jb21tb24uaC00NS1cXG5pbmNsdWRlL2xpbnV4L3Bkcy9wZHNfY29tbW9uLmg6NDY6I2RlZmluZSBQRFNfVkRQQV9ERVZfTkFNRVxcdFBEU19DT1JFX0RSVl9OQU1FIFxcXCIuXFxcIiBQRFNfREVWX1RZUEVfVkRQQV9TVFJcXG5pbmNsdWRlL2xpbnV4L3Bkcy9wZHNfY29tbW9uLmg6NDc6I2RlZmluZSBQRFNfVkZJT19MTV9ERVZfTkFNRVxcdFBEU19DT1JFX0RSVl9OQU1FIFxcXCIuXFxcIiBQRFNfREVWX1RZUEVfTE1fU1RSIFxcXCIuXFxcIiBQRFNfREVWX1RZUEVfVkZJT19TVFJcXG5pbmNsdWRlL2xpbnV4L3Bkcy9wZHNfY29tbW9uLmgtNDgtXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTE1VDA3OjI2OjE1LjI0OTc1OTg3NloiLCJTZXEiOjcsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjQwOTIzNzkzMTcsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqQW5hbHl6aW5nIHRoZSBBTUQgUERTIENvcmUgUENJIERyaXZlciBpbiBTeXprYWxsZXIqKlxuXG5Pa2F5LCBzbyBJJ20gbG9va2luZyBhdCB0aGlzIFBDSSBkcml2ZXIgZm9yIHRoZSBBTUQgUERTIENvcmUuIFRoZSBrZXkgcXVlc3Rpb24gaXMsIGNhbiBJIGV2ZW4gZ2V0IHRvIHRoaXMgdGhpbmcgd2l0aCBTeXprYWxsZXI/IFRoZSBpbW1lZGlhdGUgcHJvYmxlbSBpcyBTeXprYWxsZXIgZG9lc24ndCBhY3R1YWxseSBlbXVsYXRlIHRoZSBBTUQgUERTIENvcmUgaGFyZHdhcmUgZGlyZWN0bHksIHRoYXQncyBhIGh1cmRsZSByaWdodCBvZmYgdGhlIGJhdC4gQnV0IHdhaXQsIHRoZXJlJ3MgYSBnbGltbWVyIG9mIGhvcGUuIEkga25vdyBTeXprYWxsZXIgaGFzIHRoaXMgdmlydHVhbCBQQ0kgZGV2aWNlLCBgdmhjaWAuIEhvd2V2ZXIsIEkga25vdyBmcm9tIGV4cGVyaWVuY2UgdGhhdCBgdmhjaWAgaXNuJ3QgZGVzaWduZWQgdG8gc2ltdWxhdGUgKnNwZWNpZmljKiBoYXJkd2FyZS4gSXQncyByZWFsbHkgbW9yZSBvZiBhIGdlbmVyYWwgUENJIGRldmljZSB1bmxlc3MgdGhlcmUncyBhICpkZWRpY2F0ZWQqIGRyaXZlciB0aGF0J3MgaW1wbGVtZW50ZWQgc3BlY2lmaWNhbGx5IGZvciB0aGF0IGhhcmR3YXJlLCBvciBpZiBpdCdzIGEgZ2VuZXJpYyBkZXZpY2UgbGlrZSB2aXJ0aW8uIFNvLCB0aGF0IGxlYXZlcyBtZSB3aXRoIHRoZSBtYWluIHF1ZXN0aW9uOiBjYW4gdGhpcyBkcml2ZXIgZXZlbiAqYmUqIHJlYWNoZWQgdmlhIGB2aGNpYD8gVGhlIG5leHQgdGhpbmcgdG8gY2hlY2sgaXMgaWYgdGhlIGluaXQgZnVuY3Rpb24sIGBwZHNjX2luaXRfcGZgLCBpcyBjYWxsZWQgZnJvbSB0aGUgcHJvYmUgZnVuY3Rpb24uIFRoYXQncyBhIGdvb2Qgc3RhcnRpbmcgcG9pbnQgdG8gc2VlIGhvdyByZWFjaGFibGUgdGhpcyBpcy5cblxuXG4iLCJJbnB1dFRva2VucyI6NjI5MCwiT3V0cHV0VG9rZW5zIjo0MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjEwNywiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0xNVQwNzoyNjoxOS4zNDIxNDA4NjNaIiwiU2VxIjo4LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NTgwODU3NzUsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwicGRzY19pbml0X3BmXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC9wZHNfY29yZS9cIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiZHJpdmVycy9uZXQvZXRoZXJuZXQvYW1kL3Bkc19jb3JlL21haW4uYz0yMDg9c3RhdGljIGNvbnN0IHN0cnVjdCBkZXZsaW5rX3BhcmFtIHBkc2NfZGxfcGFyYW1zW10gPSB7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQvcGRzX2NvcmUvbWFpbi5jLTIxNy1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQvcGRzX2NvcmUvbWFpbi5jOjIxODpzdGF0aWMgaW50IHBkc2NfaW5pdF9wZihzdHJ1Y3QgcGRzYyAqcGRzYylcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQvcGRzX2NvcmUvbWFpbi5jLTIxOS17XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQvcGRzX2NvcmUvbWFpbi5jPTMzNz1zdGF0aWMgaW50IHBkc2NfcHJvYmUoc3RydWN0IHBjaV9kZXYgKnBkZXYsIGNvbnN0IHN0cnVjdCBwY2lfZGV2aWNlX2lkICplbnQpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQvcGRzX2NvcmUvbWFpbi5jLTM4Mi1cXHRpZiAoaXNfcGYpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYW1kL3Bkc19jb3JlL21haW4uYzozODM6XFx0XFx0ZXJyID0gcGRzY19pbml0X3BmKHBkc2MpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC9wZHNfY29yZS9tYWluLmMtMzg0LVxcdGVsc2VcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMTVUMDc6MjY6MTkuNDAwMjM3MzY4WiIsIlNlcSI6OSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6MzgyODU1Mjc1NywiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipBbmFseXppbmcgdGhlIEZlYXNpYmlsaXR5IG9mIEZ1enppbmcgYSBQQ0kgRHJpdmVyKipcblxuT2theSwgc28gSSdtIGxvb2tpbmcgYXQgdGhpcyBjb2RlIHBhdGgsIGFuZCBpdCdzIGJlaW5nIGNhbGxlZCBmcm9tIGBwZHNjX3Byb2JlYC4gUmlnaHQgb2ZmIHRoZSBiYXQsIG15IGV4cGVydCBpbnR1aXRpb24gaXMgdGVsbGluZyBtZSB0aGlzIGlzIGEgaGFyZHdhcmUtc3BlY2lmaWMgUENJIGRyaXZlci4gVGhpcyBtZWFucyB0aGF0LCByZWFsaXN0aWNhbGx5LCBJJ20gbm90IGdvaW5nIHRvIHNlZSB0aGlzIGNvZGUgZXhlY3V0ZWQgaW4gYSB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudCBsaWtlIEdDRSBvciBRRU1VIHVubGVzcyBJJ3ZlIGdvdCB0aGUgZXhhY3QgaGFyZHdhcmUgaW4gcGxhY2UuIFRoZXJlZm9yZSwgbXkgaW5pdGlhbCBhc3Nlc3NtZW50IGlzIHRoYXQgYFdvcnRoRnV6emluZ2Agc2hvdWxkIGV2YWx1YXRlIHRvIGZhbHNlLiBcblxuQnV0IGhvbGQgb24gYSBzZWNvbmQuLi4gbGV0J3Mgbm90IGJlIHRvbyBoYXN0eS4gTXkgZXhwZXJpZW5jZSBoYXMgdGF1Z2h0IG1lIHRvIGNvbnNpZGVyIGFsbCBwb3NzaWJpbGl0aWVzLiBJcyB0aGVyZSBhIGNoYW5jZSB0aGlzIGNhbiBiZSByZWFjaGVkIHRocm91Z2ggYSBkdW1teSBkZXZpY2Ugb3Igc29tZSBraW5kIG9mIHNvZnR3YXJlIGVtdWxhdGlvbj8gV2hhdCBhYm91dCBgaHdzaW1gIG9yIGB2aGNpYCBmb3IgYHBkc19jb3JlYD8gSXQncyB3b3J0aCBhIHF1aWNrIGNoZWNrIHRvIHJ1bGUgdGhvc2Ugb3V0IGJlZm9yZSBJIG1ha2UgYSBmaW5hbCBkZXRlcm1pbmF0aW9uLiBJIG5lZWQgdG8gZnVsbHkgdW5kZXJzdGFuZCB0aGUgYWNjZXNzaWJpbGl0eSBvZiB0aGlzIGNvZGUgYmVmb3JlIG1ha2luZyBhIGNhbGwuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjY5NTMsIk91dHB1dFRva2VucyI6MzMsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoxMDAsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDctMTVUMDc6MjY6MjMuMjI4NzkyNTA2WiIsIlNlcSI6MTAsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo1ODg2MDUxNiwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJwZHNfY29yZVwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJkcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQvXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImRyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC9LY29uZmlnPTE2OT1jb25maWcgUERTX0NPUkVcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC9LY29uZmlnLTE3Ny1cXHQgIGZvdW5kIGluXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYW1kL0tjb25maWc6MTc4OlxcdCAgXFx1MDAzY2ZpbGU6RG9jdW1lbnRhdGlvbi9uZXR3b3JraW5nL2RldmljZV9kcml2ZXJzL2V0aGVybmV0L2FtZC9wZHNfY29yZS5yc3RcXHUwMDNlLlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC9LY29uZmlnLTE3OS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQvS2NvbmZpZy0xODAtXFx0ICBUbyBjb21waWxlIHRoaXMgZHJpdmVyIGFzIGEgbW9kdWxlLCBjaG9vc2UgTSBoZXJlLiBUaGUgbW9kdWxlXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYW1kL0tjb25maWc6MTgxOlxcdCAgd2lsbCBiZSBjYWxsZWQgcGRzX2NvcmUuXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYW1kL0tjb25maWctMTgyLVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYW1kL01ha2VmaWxlPTE3PW9iai0kKENPTkZJR19BTURfWEdCRSkgKz0geGdiZS9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQvTWFrZWZpbGU6MTg6b2JqLSQoQ09ORklHX1BEU19DT1JFKSArPSBwZHNfY29yZS9cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC9wZHNfY29yZS9NYWtlZmlsZS0zLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC9wZHNfY29yZS9NYWtlZmlsZTo0Om9iai0kKENPTkZJR19QRFNfQ09SRSkgOj0gcGRzX2NvcmUub1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC9wZHNfY29yZS9NYWtlZmlsZS01LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC9wZHNfY29yZS9NYWtlZmlsZTo2OnBkc19jb3JlLXkgOj0gbWFpbi5vIFxcXFxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQvcGRzX2NvcmUvTWFrZWZpbGUtNy1cXHQgICAgICBkZXZsaW5rLm8gXFxcXFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYW1kL3Bkc19jb3JlL2FkbWlucS5jPTg9c3RhdGljIGludCBwZHNjX3Byb2Nlc3Nfbm90aWZ5cShzdHJ1Y3QgcGRzY19xY3EgKnFjcSlcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQvcGRzX2NvcmUvYWRtaW5xLmMtOS17XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYW1kL3Bkc19jb3JlL2FkbWlucS5jOjEwOlxcdHVuaW9uIHBkc19jb3JlX25vdGlmeXFfY29tcCAqY29tcDtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQvcGRzX2NvcmUvYWRtaW5xLmMtMTEtXFx0c3RydWN0IHBkc2MgKnBkc2MgPSBxY3EtXFx1MDAzZXBkc2M7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQvcGRzX2NvcmUvYWRtaW5xLmM9NzA9dm9pZCBwZHNjX3Byb2Nlc3NfYWRtaW5xKHN0cnVjdCBwZHNjX3FjcSAqcWNxKVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC9wZHNfY29yZS9hZG1pbnEuYy03MS17XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYW1kL3Bkc19jb3JlL2FkbWlucS5jOjcyOlxcdHVuaW9uIHBkc19jb3JlX2FkbWlucV9jb21wICpjb21wO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC9wZHNfY29yZS9hZG1pbnEuYy03My1cXHRzdHJ1Y3QgcGRzY19xdWV1ZSAqcSA9IFxcdTAwMjZxY3EtXFx1MDAzZXE7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQvcGRzX2NvcmUvYWRtaW5xLmMtMTI0LVxcdC8qIFJldHVybiB0aGUgaW50ZXJydXB0IGNyZWRpdHMsIG9uZSBmb3IgZWFjaCBjb21wbGV0aW9uICovXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYW1kL3Bkc19jb3JlL2FkbWlucS5jOjEyNTpcXHRwZHNfY29yZV9pbnRyX2NyZWRpdHMoXFx1MDAyNnBkc2MtXFx1MDAzZWludHJfY3RybFtxY3EtXFx1MDAzZWludHhdLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC9wZHNfY29yZS9hZG1pbnEuYy0xMjYtXFx0XFx0XFx0ICAgICAgbnFfd29yayArIGFxX3dvcmssXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQvcGRzX2NvcmUvYWRtaW5xLmM9MTU3PXN0YXRpYyBpbnQgX19wZHNjX2FkbWlucV9wb3N0KHN0cnVjdCBwZHNjICpwZHNjLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC9wZHNfY29yZS9hZG1pbnEuYy0xNTgtXFx0XFx0XFx0ICAgICAgc3RydWN0IHBkc2NfcWNxICpxY3EsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYW1kL3Bkc19jb3JlL2FkbWlucS5jOjE1OTpcXHRcXHRcXHQgICAgICB1bmlvbiBwZHNfY29yZV9hZG1pbnFfY21kICpjbWQsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYW1kL3Bkc19jb3JlL2FkbWlucS5jOjE2MDpcXHRcXHRcXHQgICAgICB1bmlvbiBwZHNfY29yZV9hZG1pbnFfY29tcCAqY29tcClcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQvcGRzX2NvcmUvYWRtaW5xLmMtMTYxLXtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC9wZHNfY29yZS9hZG1pbnEuYy0yMTMtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYW1kL3Bkc19jb3JlL2FkbWlucS5jOjIxNDpcXHRwZHNfY29yZV9kYmVsbF9yaW5nKHBkc2MtXFx1MDAzZWtlcm5fZGJwYWdlLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC9wZHNfY29yZS9hZG1pbnEuYy0yMTUtXFx0XFx0XFx0ICAgIHEtXFx1MDAzZWh3X3R5cGUsIHEtXFx1MDAzZWRidmFsIHwgcS1cXHUwMDNlaGVhZF9pZHgpO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYW1kL3Bkc19jb3JlL2FkbWlucS5jPTIyMz1pbnQgcGRzY19hZG1pbnFfcG9zdChzdHJ1Y3QgcGRzYyAqcGRzYyxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQvcGRzX2NvcmUvYWRtaW5xLmM6MjI0OlxcdFxcdCAgICAgdW5pb24gcGRzX2NvcmVfYWRtaW5xX2NtZCAqY21kLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC9wZHNfY29yZS9hZG1pbnEuYzoyMjU6XFx0XFx0ICAgICB1bmlvbiBwZHNfY29yZV9hZG1pbnFfY29tcCAqY29tcCxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQvcGRzX2NvcmUvYWRtaW5xLmMtMjI2LVxcdFxcdCAgICAgYm9vbCBmYXN0X3BvbGwpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQvcGRzX2NvcmUvYXV4YnVzLmMtMTEtICogQHBmOlxcdFxcdHB0ciB0byB0aGUgUEYgZHJpdmVyJ3MgcHJpdmF0ZSBkYXRhIHN0cnVjdFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC9wZHNfY29yZS9hdXhidXMuYzoxMjogKiBAZGV2bmFtZTpcXHRuYW1lIHRoYXQgaW5jbHVkZXMgc2VydmljZSBpbnRvLCBlLmcuIHBkc19jb3JlLnZEUEFcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQvcGRzX2NvcmUvYXV4YnVzLmMtMTMtICpcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC9wZHNfY29yZS9hdXhidXMuYz0xNz1pbnQgcGRzX2NsaWVudF9yZWdpc3RlcihzdHJ1Y3QgcGRzYyAqcGYsIGNoYXIgKmRldm5hbWUpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYW1kL3Bkc19jb3JlL2F1eGJ1cy5jLTE4LXtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQvcGRzX2NvcmUvYXV4YnVzLmM6MTk6XFx0dW5pb24gcGRzX2NvcmVfYWRtaW5xX2NvbXAgY29tcCA9IHt9O1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC9wZHNfY29yZS9hdXhidXMuYzoyMDpcXHR1bmlvbiBwZHNfY29yZV9hZG1pbnFfY21kIGNtZCA9IHt9O1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC9wZHNfY29yZS9hdXhidXMuYy0yMS1cXHRpbnQgZXJyO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYW1kL3Bkc19jb3JlL2F1eGJ1cy5jPTU3PWludCBwZHNfY2xpZW50X3VucmVnaXN0ZXIoc3RydWN0IHBkc2MgKnBmLCB1MTYgY2xpZW50X2lkKVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC9wZHNfY29yZS9hdXhidXMuYy01OC17XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYW1kL3Bkc19jb3JlL2F1eGJ1cy5jOjU5OlxcdHVuaW9uIHBkc19jb3JlX2FkbWlucV9jb21wIGNvbXAgPSB7fTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQvcGRzX2NvcmUvYXV4YnVzLmM6NjA6XFx0dW5pb24gcGRzX2NvcmVfYWRtaW5xX2NtZCBjbWQgPSB7fTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQvcGRzX2NvcmUvYXV4YnVzLmMtNjEtXFx0aW50IGVycjtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC9wZHNfY29yZS9hdXhidXMuYz03Mz1FWFBPUlRfU1lNQk9MX0dQTChwZHNfY2xpZW50X3VucmVnaXN0ZXIpO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYW1kL3Bkc19jb3JlL2F1eGJ1cy5jLTgwLSAqIEByZXNwOiAgICBwdHIgdG8gYnVmZmVyIHdoZXJlIGFuc3dlciBpcyB0byBiZSBjb3BpZWRcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQvcGRzX2NvcmUvYXV4YnVzLmM6ODE6ICogQGZsYWdzOiAgIG9wdGlvbmFsIGZsYWdzIGZyb20gcGRzX2NvcmVfYWRtaW5xX2ZsYWdzXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYW1kL3Bkc19jb3JlL2F1eGJ1cy5jLTgyLSAqXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQvcGRzX2NvcmUvYXV4YnVzLmMtODYtICogQ2xpZW50IHNlbmRzIHBvaW50ZXJzIHRvIHJlcXVlc3QgYW5kIHJlc3BvbnNlIGJ1ZmZlcnNcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQvcGRzX2NvcmUvYXV4YnVzLmM6ODc6ICogQ29yZSBjb3BpZXMgcmVxdWVzdCBkYXRhIGludG8gcGRzX2NvcmVfY2xpZW50X3JlcXVlc3RfY21kXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYW1kL3Bkc19jb3JlL2F1eGJ1cy5jLTg4LSAqIENvcmUgc2V0cyBvdGhlciBmaWVsZHMgYXMgbmVlZGVkXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQvcGRzX2NvcmUvYXV4YnVzLmM9OTI9aW50IHBkc19jbGllbnRfYWRtaW5xX2NtZChzdHJ1Y3QgcGRzX2F1eGlsaWFyeV9kZXYgKnBhZGV2LFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC9wZHNfY29yZS9hdXhidXMuYzo5MzpcXHRcXHRcXHQgIHVuaW9uIHBkc19jb3JlX2FkbWlucV9jbWQgKnJlcSxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQvcGRzX2NvcmUvYXV4YnVzLmMtOTQtXFx0XFx0XFx0ICBzaXplX3QgcmVxX2xlbixcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQvcGRzX2NvcmUvYXV4YnVzLmM6OTU6XFx0XFx0XFx0ICB1bmlvbiBwZHNfY29yZV9hZG1pbnFfY29tcCAqcmVzcCxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQvcGRzX2NvcmUvYXV4YnVzLmMtOTYtXFx0XFx0XFx0ICB1NjQgZmxhZ3MpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYW1kL3Bkc19jb3JlL2F1eGJ1cy5jLTk3LXtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQvcGRzX2NvcmUvYXV4YnVzLmM6OTg6XFx0dW5pb24gcGRzX2NvcmVfYWRtaW5xX2NtZCBjbWQgPSB7fTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQvcGRzX2NvcmUvYXV4YnVzLmMtOTktXFx0c3RydWN0IHBjaV9kZXYgKnBmX3BkZXY7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQvcGRzX2NvcmUvYXV4YnVzLmM9MTk0PWludCBwZHNjX2F1eGJ1c19kZXZfYWRkKHN0cnVjdCBwZHNjICpjZiwgc3RydWN0IHBkc2MgKnBmLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC9wZHNfY29yZS9hdXhidXMuYzoxOTU6XFx0XFx0XFx0ZW51bSBwZHNfY29yZV92aWZfdHlwZXMgdnQsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYW1kL3Bkc19jb3JlL2F1eGJ1cy5jLTE5Ni1cXHRcXHRcXHRzdHJ1Y3QgcGRzX2F1eGlsaWFyeV9kZXYgKipwZF9wdHIpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQvcGRzX2NvcmUvY29yZS5jPTI4PXZvaWQgcGRzY19pbnRyX2ZyZWUoc3RydWN0IHBkc2MgKnBkc2MsIGludCBpbmRleClcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC9wZHNfY29yZS9jb3JlLmMtNDItXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYW1kL3Bkc19jb3JlL2NvcmUuYzo0MzpcXHRwZHNfY29yZV9pbnRyX21hc2soXFx1MDAyNnBkc2MtXFx1MDAzZWludHJfY3RybFtpbmRleF0sIFBEU19DT1JFX0lOVFJfTUFTS19TRVQpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC9wZHNfY29yZS9jb3JlLmM6NDQ6XFx0cGRzX2NvcmVfaW50cl9jbGVhbihcXHUwMDI2cGRzYy1cXHUwMDNlaW50cl9jdHJsW2luZGV4XSk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYW1kL3Bkc19jb3JlL2NvcmUuYy00NS1cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC9wZHNfY29yZS9jb3JlLmM9NTE9aW50IHBkc2NfaW50cl9hbGxvYyhzdHJ1Y3QgcGRzYyAqcGRzYywgY2hhciAqbmFtZSxcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC9wZHNfY29yZS9jb3JlLmMtNjctXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYW1kL3Bkc19jb3JlL2NvcmUuYzo2ODpcXHRwZHNfY29yZV9pbnRyX2NsZWFuX2ZsYWdzKFxcdTAwMjZwZHNjLVxcdTAwM2VpbnRyX2N0cmxbaW5kZXhdLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC9wZHNfY29yZS9jb3JlLmMtNjktXFx0XFx0XFx0XFx0ICBQRFNfQ09SRV9JTlRSX0NSRURfUkVTRVRfQ09BTEVTQ0UpO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYW1kL3Bkc19jb3JlL2NvcmUuYy04Ni1cXHQvKiBJbml0IHRoZSBkZXZpY2UncyBpbnRyIG1hc2sgKi9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQvcGRzX2NvcmUvY29yZS5jOjg3OlxcdHBkc19jb3JlX2ludHJfY2xlYW4oXFx1MDAyNnBkc2MtXFx1MDAzZWludHJfY3RybFtpbmRleF0pO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC9wZHNfY29yZS9jb3JlLmM6ODg6XFx0cGRzX2NvcmVfaW50cl9tYXNrX2Fzc2VydChcXHUwMDI2cGRzYy1cXHUwMDNlaW50cl9jdHJsW2luZGV4XSwgMSk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYW1kL3Bkc19jb3JlL2NvcmUuYzo4OTpcXHRwZHNfY29yZV9pbnRyX21hc2soXFx1MDAyNnBkc2MtXFx1MDAzZWludHJfY3RybFtpbmRleF0sIFBEU19DT1JFX0lOVFJfTUFTS19TRVQpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC9wZHNfY29yZS9jb3JlLmMtOTAtXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQvcGRzX2NvcmUvY29yZS5jPTMxNj1zdGF0aWMgaW50IHBkc2NfY29yZV9pbml0KHN0cnVjdCBwZHNjICpwZHNjKVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC9wZHNfY29yZS9jb3JlLmMtMzE3LXtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQvcGRzX2NvcmUvY29yZS5jOjMxODpcXHR1bmlvbiBwZHNfY29yZV9kZXZfY29tcCBjb21wID0ge307XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYW1kL3Bkc19jb3JlL2NvcmUuYzozMTk6XFx0dW5pb24gcGRzX2NvcmVfZGV2X2NtZCBjbWQgPSB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYW1kL3Bkc19jb3JlL2NvcmUuYy0zMjAtXFx0XFx0LmluaXQub3Bjb2RlID0gUERTX0NPUkVfQ01EX0lOSVQsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYW1kL3Bkc19jb3JlL2NvcmUuYy0zMjEtXFx0fTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQvcGRzX2NvcmUvY29yZS5jOjMyMjpcXHRzdHJ1Y3QgcGRzX2NvcmVfZGV2X2luaXRfZGF0YV9vdXQgY2lkbztcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQvcGRzX2NvcmUvY29yZS5jOjMyMzpcXHRzdHJ1Y3QgcGRzX2NvcmVfZGV2X2luaXRfZGF0YV9pbiBjaWRpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC9wZHNfY29yZS9jb3JlLmMtMzI0LVxcdHUzMiBkYmlkX2NvdW50O1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYW1kL3Bkc19jb3JlL2NvcmUuYy0zMzMtXFx0XFx0XFx0ICAgICBudW1kZXNjcyxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQvcGRzX2NvcmUvY29yZS5jOjMzNDpcXHRcXHRcXHQgICAgIHNpemVvZih1bmlvbiBwZHNfY29yZV9hZG1pbnFfY21kKSxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQvcGRzX2NvcmUvY29yZS5jOjMzNTpcXHRcXHRcXHQgICAgIHNpemVvZih1bmlvbiBwZHNfY29yZV9hZG1pbnFfY29tcCksXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYW1kL3Bkc19jb3JlL2NvcmUuYy0zMzYtXFx0XFx0XFx0ICAgICAwLCBcXHUwMDI2cGRzYy1cXHUwMDNlYWRtaW5xY3EpO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYW1kL3Bkc19jb3JlL2NvcmUuYy0zNDItXFx0XFx0XFx0ICAgICBQRFNDX05PVElGWVFfTEVOR1RILFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC9wZHNfY29yZS9jb3JlLmM6MzQzOlxcdFxcdFxcdCAgICAgc2l6ZW9mKHN0cnVjdCBwZHNfY29yZV9ub3RpZnlxX2NtZCksXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYW1kL3Bkc19jb3JlL2NvcmUuYzozNDQ6XFx0XFx0XFx0ICAgICBzaXplb2YodW5pb24gcGRzX2NvcmVfbm90aWZ5cV9jb21wKSxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQvcGRzX2NvcmUvY29yZS5jLTM0NS1cXHRcXHRcXHQgICAgIDAsIFxcdTAwMjZwZHNjLVxcdTAwM2Vub3RpZnlxY3EpO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYW1kL3Bkc19jb3JlL2NvcmUuYz00MTQ9c3RhdGljIGludCBwZHNjX3ZpZnR5cGVzX2luaXQoc3RydWN0IHBkc2MgKnBkc2MpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYW1kL3Bkc19jb3JlL2NvcmUuYy00MTUte1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC9wZHNfY29yZS9jb3JlLmM6NDE2OlxcdGVudW0gcGRzX2NvcmVfdmlmX3R5cGVzIHZ0O1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC9wZHNfY29yZS9jb3JlLmMtNDE3LVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYW1kL3Bkc19jb3JlL2NvcmUuYz00OTk9aW50IHBkc2Nfc3RhcnQoc3RydWN0IHBkc2MgKnBkc2MpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYW1kL3Bkc19jb3JlL2NvcmUuYy01MDAte1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC9wZHNfY29yZS9jb3JlLmM6NTAxOlxcdHBkc19jb3JlX2ludHJfbWFzayhcXHUwMDI2cGRzYy1cXHUwMDNlaW50cl9jdHJsW3Bkc2MtXFx1MDAzZWFkbWlucWNxLmludHhdLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC9wZHNfY29yZS9jb3JlLmMtNTAyLVxcdFxcdFxcdCAgIFBEU19DT1JFX0lOVFJfTUFTS19DTEVBUik7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQvcGRzX2NvcmUvY29yZS5jPTUwNz12b2lkIHBkc2Nfc3RvcChzdHJ1Y3QgcGRzYyAqcGRzYylcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC9wZHNfY29yZS9jb3JlLmMtNTE2LVxcdFxcdGlmIChwZHNjLVxcdTAwM2VpbnRyX2luZm9baV0udmVjdG9yKVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC9wZHNfY29yZS9jb3JlLmM6NTE3OlxcdFxcdFxcdHBkc19jb3JlX2ludHJfbWFzayhcXHUwMDI2cGRzYy1cXHUwMDNlaW50cl9jdHJsW2ldLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC9wZHNfY29yZS9jb3JlLmMtNTE4LVxcdFxcdFxcdFxcdFxcdCAgIFBEU19DT1JFX0lOVFJfTUFTS19TRVQpO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYW1kL3Bkc19jb3JlL2NvcmUuYz01Mzk9dm9pZCBwZHNjX2Z3X2Rvd24oc3RydWN0IHBkc2MgKnBkc2MpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYW1kL3Bkc19jb3JlL2NvcmUuYy01NDAte1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC9wZHNfY29yZS9jb3JlLmM6NTQxOlxcdHVuaW9uIHBkc19jb3JlX25vdGlmeXFfY29tcCByZXNldF9ldmVudCA9IHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQvcGRzX2NvcmUvY29yZS5jLTU0Mi1cXHRcXHQucmVzZXQuZWNvZGUgPSBjcHVfdG9fbGUxNihQRFNfRVZFTlRfUkVTRVQpLFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYW1kL3Bkc19jb3JlL2NvcmUuYz01NjU9dm9pZCBwZHNjX2Z3X3VwKHN0cnVjdCBwZHNjICpwZHNjKVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC9wZHNfY29yZS9jb3JlLmMtNTY2LXtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQvcGRzX2NvcmUvY29yZS5jOjU2NzpcXHR1bmlvbiBwZHNfY29yZV9ub3RpZnlxX2NvbXAgcmVzZXRfZXZlbnQgPSB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYW1kL3Bkc19jb3JlL2NvcmUuYy01NjgtXFx0XFx0LnJlc2V0LmVjb2RlID0gY3B1X3RvX2xlMTYoUERTX0VWRU5UX1JFU0VUKSxcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC9wZHNfY29yZS9jb3JlLmgtMTAtI2luY2x1ZGUgXFx1MDAzY2xpbnV4L3Bkcy9wZHNfY29tbW9uLmhcXHUwMDNlXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYW1kL3Bkc19jb3JlL2NvcmUuaDoxMTojaW5jbHVkZSBcXHUwMDNjbGludXgvcGRzL3Bkc19jb3JlX2lmLmhcXHUwMDNlXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYW1kL3Bkc19jb3JlL2NvcmUuaC0xMi0jaW5jbHVkZSBcXHUwMDNjbGludXgvcGRzL3Bkc19hZG1pbnEuaFxcdTAwM2VcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC9wZHNfY29yZS9jb3JlLmg9NDk9c3RydWN0IHBkc2NfcXVldWUge1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYW1kL3Bkc19jb3JlL2NvcmUuaC02Mi1cXHRcXHR2b2lkICpiYXNlO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC9wZHNfY29yZS9jb3JlLmg6NjM6XFx0XFx0c3RydWN0IHBkc19jb3JlX2FkbWluX2NtZCAqYWRtaW5xO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC9wZHNfY29yZS9jb3JlLmgtNjQtXFx0fTtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC9wZHNfY29yZS9jb3JlLmg9MTU0PXN0cnVjdCBwZHNjIHtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC9wZHNfY29yZS9jb3JlLmgtMTc3LVxcdHN0cnVjdCBwZHNjX2RldmluZm8gZGV2X2luZm87XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYW1kL3Bkc19jb3JlL2NvcmUuaDoxNzg6XFx0c3RydWN0IHBkc19jb3JlX2Rldl9pZGVudGl0eSBkZXZfaWRlbnQ7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYW1kL3Bkc19jb3JlL2NvcmUuaC0xNzktXFx0dW5zaWduZWQgaW50IG5pbnRycztcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC9wZHNfY29yZS9jb3JlLmgtMTg4LVxcdHJlZmNvdW50X3QgYWRtaW5xX3JlZmNudDtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQvcGRzX2NvcmUvY29yZS5oOjE4OTpcXHRzdHJ1Y3QgcGRzX2NvcmVfZGV2X2luZm9fcmVncyBfX2lvbWVtICppbmZvX3JlZ3M7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYW1kL3Bkc19jb3JlL2NvcmUuaDoxOTA6XFx0c3RydWN0IHBkc19jb3JlX2Rldl9jbWRfcmVncyBfX2lvbWVtICpjbWRfcmVncztcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQvcGRzX2NvcmUvY29yZS5oOjE5MTpcXHRzdHJ1Y3QgcGRzX2NvcmVfaW50ciBfX2lvbWVtICppbnRyX2N0cmw7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYW1kL3Bkc19jb3JlL2NvcmUuaC0xOTItXFx0dTY0IF9faW9tZW0gKmludHJfc3RhdHVzO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYW1kL3Bkc19jb3JlL2NvcmUuaC0yMDMtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYW1kL3Bkc19jb3JlL2NvcmUuaDoyMDQ6LyoqIGVudW0gcGRzX2NvcmVfZGJlbGxfYml0cyAtIGJpdHdpc2UgY29tcG9zaXRpb24gb2YgZGJlbGwgdmFsdWVzLlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC9wZHNfY29yZS9jb3JlLmgtMjA1LSAqXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQvcGRzX2NvcmUvY29yZS5oLTIyMC0gKi9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQvcGRzX2NvcmUvY29yZS5oOjIyMTplbnVtIHBkc19jb3JlX2RiZWxsX2JpdHMge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC9wZHNfY29yZS9jb3JlLmgtMjIyLVxcdFBEU19DT1JFX0RCRUxMX1FJRF9NQVNLXFx0XFx0PSAweGZmZmZmZixcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC9wZHNfY29yZS9jb3JlLmgtMjQxLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC9wZHNfY29yZS9jb3JlLmg6MjQyOnN0YXRpYyBpbmxpbmUgdm9pZCBwZHNfY29yZV9kYmVsbF9yaW5nKHU2NCBfX2lvbWVtICpkYl9wYWdlLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC9wZHNfY29yZS9jb3JlLmg6MjQzOlxcdFxcdFxcdFxcdCAgICAgICBlbnVtIHBkc19jb3JlX2xvZ2ljYWxfcXR5cGUgcXR5cGUsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYW1kL3Bkc19jb3JlL2NvcmUuaC0yNDQtXFx0XFx0XFx0XFx0ICAgICAgIHU2NCB2YWwpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQvcGRzX2NvcmUvY29yZS5oPTI3Nz12b2lkIHBkc2NfZGVidWdmc19kZWxfcWNxKHN0cnVjdCBwZHNjX3FjcSAqcWNxKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQvcGRzX2NvcmUvY29yZS5oLTI3OC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQvcGRzX2NvcmUvY29yZS5oOjI3OTppbnQgcGRzY19lcnJfdG9fZXJybm8oZW51bSBwZHNfY29yZV9zdGF0dXNfY29kZSBjb2RlKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQvcGRzX2NvcmUvY29yZS5oLTI4MC1ib29sIHBkc2NfaXNfZndfcnVubmluZyhzdHJ1Y3QgcGRzYyAqcGRzYyk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYW1kL3Bkc19jb3JlL2NvcmUuaD0yODE9Ym9vbCBwZHNjX2lzX2Z3X2dvb2Qoc3RydWN0IHBkc2MgKnBkc2MpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC9wZHNfY29yZS9jb3JlLmg6MjgyOmludCBwZHNjX2RldmNtZChzdHJ1Y3QgcGRzYyAqcGRzYywgdW5pb24gcGRzX2NvcmVfZGV2X2NtZCAqY21kLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC9wZHNfY29yZS9jb3JlLmg6MjgzOlxcdFxcdHVuaW9uIHBkc19jb3JlX2Rldl9jb21wICpjb21wLCBpbnQgbWF4X3NlY29uZHMpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC9wZHNfY29yZS9jb3JlLmg6Mjg0OmludCBwZHNjX2RldmNtZF9sb2NrZWQoc3RydWN0IHBkc2MgKnBkc2MsIHVuaW9uIHBkc19jb3JlX2Rldl9jbWQgKmNtZCxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQvcGRzX2NvcmUvY29yZS5oOjI4NTpcXHRcXHQgICAgICAgdW5pb24gcGRzX2NvcmVfZGV2X2NvbXAgKmNvbXAsIGludCBtYXhfc2Vjb25kcyk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYW1kL3Bkc19jb3JlL2NvcmUuaC0yODYtaW50IHBkc2NfZGV2Y21kX2luaXQoc3RydWN0IHBkc2MgKnBkc2MpO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYW1kL3Bkc19jb3JlL2NvcmUuaD0zMDg9aW50IHBkc2NfYXV4YnVzX2Rldl9hZGQoc3RydWN0IHBkc2MgKmNmLCBzdHJ1Y3QgcGRzYyAqcGYsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYW1kL3Bkc19jb3JlL2NvcmUuaDozMDk6XFx0XFx0XFx0ZW51bSBwZHNfY29yZV92aWZfdHlwZXMgdnQsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYW1kL3Bkc19jb3JlL2NvcmUuaC0zMTAtXFx0XFx0XFx0c3RydWN0IHBkc19hdXhpbGlhcnlfZGV2ICoqcGRfcHRyKTtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC9wZHNfY29yZS9kZWJ1Z2ZzLmM9MzM9c3RhdGljIGludCBpZGVudGl0eV9zaG93KHN0cnVjdCBzZXFfZmlsZSAqc2VxLCB2b2lkICp2KVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC9wZHNfY29yZS9kZWJ1Z2ZzLmMtMzQte1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC9wZHNfY29yZS9kZWJ1Z2ZzLmM6MzU6XFx0c3RydWN0IHBkc19jb3JlX2Rldl9pZGVudGl0eSAqaWRlbnQ7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYW1kL3Bkc19jb3JlL2RlYnVnZnMuYy0zNi1cXHRzdHJ1Y3QgcGRzYyAqcGRzYyA9IHNlcS1cXHUwMDNlcHJpdmF0ZTtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC9wZHNfY29yZS9kZXYuYy05LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC9wZHNfY29yZS9kZXYuYzoxMDppbnQgcGRzY19lcnJfdG9fZXJybm8oZW51bSBwZHNfY29yZV9zdGF0dXNfY29kZSBjb2RlKVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC9wZHNfY29yZS9kZXYuYy0xMS17XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQvcGRzX2NvcmUvZGV2LmM9MTI5PXN0YXRpYyBpbnQgcGRzY19kZXZjbWRfd2FpdChzdHJ1Y3QgcGRzYyAqcGRzYywgdTggb3Bjb2RlLCBpbnQgbWF4X3NlY29uZHMpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQvcGRzX2NvcmUvZGV2LmMtMTg5LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC9wZHNfY29yZS9kZXYuYzoxOTA6aW50IHBkc2NfZGV2Y21kX2xvY2tlZChzdHJ1Y3QgcGRzYyAqcGRzYywgdW5pb24gcGRzX2NvcmVfZGV2X2NtZCAqY21kLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC9wZHNfY29yZS9kZXYuYzoxOTE6XFx0XFx0ICAgICAgIHVuaW9uIHBkc19jb3JlX2Rldl9jb21wICpjb21wLCBpbnQgbWF4X3NlY29uZHMpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYW1kL3Bkc19jb3JlL2Rldi5jLTE5Mi17XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQvcGRzX2NvcmUvZGV2LmMtMjA5LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC9wZHNfY29yZS9kZXYuYzoyMTA6aW50IHBkc2NfZGV2Y21kKHN0cnVjdCBwZHNjICpwZHNjLCB1bmlvbiBwZHNfY29yZV9kZXZfY21kICpjbWQsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYW1kL3Bkc19jb3JlL2Rldi5jOjIxMTpcXHRcXHR1bmlvbiBwZHNfY29yZV9kZXZfY29tcCAqY29tcCwgaW50IG1heF9zZWNvbmRzKVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC9wZHNfY29yZS9kZXYuYy0yMTIte1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYW1kL3Bkc19jb3JlL2Rldi5jPTIyMj1pbnQgcGRzY19kZXZjbWRfaW5pdChzdHJ1Y3QgcGRzYyAqcGRzYylcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQvcGRzX2NvcmUvZGV2LmMtMjIzLXtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQvcGRzX2NvcmUvZGV2LmM6MjI0OlxcdHVuaW9uIHBkc19jb3JlX2Rldl9jb21wIGNvbXAgPSB7fTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQvcGRzX2NvcmUvZGV2LmM6MjI1OlxcdHVuaW9uIHBkc19jb3JlX2Rldl9jbWQgY21kID0ge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC9wZHNfY29yZS9kZXYuYy0yMjYtXFx0XFx0Lm9wY29kZSA9IFBEU19DT1JFX0NNRF9JTklULFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYW1kL3Bkc19jb3JlL2Rldi5jPTIzMj1pbnQgcGRzY19kZXZjbWRfcmVzZXQoc3RydWN0IHBkc2MgKnBkc2MpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYW1kL3Bkc19jb3JlL2Rldi5jLTIzMy17XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYW1kL3Bkc19jb3JlL2Rldi5jOjIzNDpcXHR1bmlvbiBwZHNfY29yZV9kZXZfY29tcCBjb21wID0ge307XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYW1kL3Bkc19jb3JlL2Rldi5jOjIzNTpcXHR1bmlvbiBwZHNfY29yZV9kZXZfY21kIGNtZCA9IHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQvcGRzX2NvcmUvZGV2LmMtMjM2LVxcdFxcdC5yZXNldC5vcGNvZGUgPSBQRFNfQ09SRV9DTURfUkVTRVQsXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQvcGRzX2NvcmUvZGV2LmM9MjQ1PXN0YXRpYyBpbnQgcGRzY19kZXZjbWRfaWRlbnRpZnlfbG9ja2VkKHN0cnVjdCBwZHNjICpwZHNjKVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC9wZHNfY29yZS9kZXYuYy0yNDYte1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC9wZHNfY29yZS9kZXYuYzoyNDc6XFx0dW5pb24gcGRzX2NvcmVfZGV2X2NvbXAgY29tcCA9IHt9O1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC9wZHNfY29yZS9kZXYuYzoyNDg6XFx0dW5pb24gcGRzX2NvcmVfZGV2X2NtZCBjbWQgPSB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYW1kL3Bkc19jb3JlL2Rldi5jLTI0OS1cXHRcXHQuaWRlbnRpZnkub3Bjb2RlID0gUERTX0NPUkVfQ01EX0lERU5USUZZLFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYW1kL3Bkc19jb3JlL2Rldi5jPTI3Nj1zdGF0aWMgaW50IHBkc2NfaWRlbnRpZnkoc3RydWN0IHBkc2MgKnBkc2MpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYW1kL3Bkc19jb3JlL2Rldi5jLTI3Ny17XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYW1kL3Bkc19jb3JlL2Rldi5jOjI3ODpcXHRzdHJ1Y3QgcGRzX2NvcmVfZHJ2X2lkZW50aXR5IGRydiA9IHt9O1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC9wZHNfY29yZS9kZXYuYy0yNzktXFx0c2l6ZV90IHN6O1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYW1kL3Bkc19jb3JlL2RldmxpbmsuYz0xMDI9aW50IHBkc2NfZGxfaW5mb19nZXQoc3RydWN0IGRldmxpbmsgKmRsLCBzdHJ1Y3QgZGV2bGlua19pbmZvX3JlcSAqcmVxLFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYW1kL3Bkc19jb3JlL2RldmxpbmsuYy0xMDQte1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC9wZHNfY29yZS9kZXZsaW5rLmM6MTA1OlxcdHVuaW9uIHBkc19jb3JlX2Rldl9jbWQgY21kID0ge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC9wZHNfY29yZS9kZXZsaW5rLmMtMTA2LVxcdFxcdC5md19jb250cm9sLm9wY29kZSA9IFBEU19DT1JFX0NNRF9GV19DT05UUk9MLFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYW1kL3Bkc19jb3JlL2RldmxpbmsuYy0xMDgtXFx0fTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQvcGRzX2NvcmUvZGV2bGluay5jOjEwOTpcXHRzdHJ1Y3QgcGRzX2NvcmVfZndfbGlzdF9pbmZvIGZ3X2xpc3QgPSB7fTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQvcGRzX2NvcmUvZGV2bGluay5jLTExMC1cXHRzdHJ1Y3QgcGRzYyAqcGRzYyA9IGRldmxpbmtfcHJpdihkbCk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYW1kL3Bkc19jb3JlL2RldmxpbmsuYzoxMTE6XFx0dW5pb24gcGRzX2NvcmVfZGV2X2NvbXAgY29tcDtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQvcGRzX2NvcmUvZGV2bGluay5jLTExMi1cXHRjaGFyIGJ1ZlszMl07XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQvcGRzX2NvcmUvZncuYz0xNz1zdGF0aWMgaW50IHBkc2NfZGV2Y21kX2Z3X2Rvd25sb2FkX2xvY2tlZChzdHJ1Y3QgcGRzYyAqcGRzYywgdTY0IGFkZHIsXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQvcGRzX2NvcmUvZncuYy0xOS17XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYW1kL3Bkc19jb3JlL2Z3LmM6MjA6XFx0dW5pb24gcGRzX2NvcmVfZGV2X2NtZCBjbWQgPSB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYW1kL3Bkc19jb3JlL2Z3LmMtMjEtXFx0XFx0LmZ3X2Rvd25sb2FkLm9wY29kZSA9IFBEU19DT1JFX0NNRF9GV19ET1dOTE9BRCxcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC9wZHNfY29yZS9mdy5jLTI1LVxcdH07XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYW1kL3Bkc19jb3JlL2Z3LmM6MjY6XFx0dW5pb24gcGRzX2NvcmVfZGV2X2NvbXAgY29tcDtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQvcGRzX2NvcmUvZncuYy0yNy1cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC9wZHNfY29yZS9mdy5jPTMxPXN0YXRpYyBpbnQgcGRzY19kZXZjbWRfZndfaW5zdGFsbChzdHJ1Y3QgcGRzYyAqcGRzYylcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQvcGRzX2NvcmUvZncuYy0zMi17XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYW1kL3Bkc19jb3JlL2Z3LmM6MzM6XFx0dW5pb24gcGRzX2NvcmVfZGV2X2NtZCBjbWQgPSB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYW1kL3Bkc19jb3JlL2Z3LmMtMzQtXFx0XFx0LmZ3X2NvbnRyb2wub3Bjb2RlID0gUERTX0NPUkVfQ01EX0ZXX0NPTlRST0wsXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQvcGRzX2NvcmUvZncuYy0zNi1cXHR9O1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC9wZHNfY29yZS9mdy5jOjM3OlxcdHVuaW9uIHBkc19jb3JlX2Rldl9jb21wIGNvbXA7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYW1kL3Bkc19jb3JlL2Z3LmMtMzgtXFx0aW50IGVycjtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC9wZHNfY29yZS9mdy5jPTQ3PXN0YXRpYyBpbnQgcGRzY19kZXZjbWRfZndfYWN0aXZhdGUoc3RydWN0IHBkc2MgKnBkc2MsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYW1kL3Bkc19jb3JlL2Z3LmM6NDg6XFx0XFx0XFx0XFx0ICAgZW51bSBwZHNfY29yZV9md19zbG90IHNsb3QpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYW1kL3Bkc19jb3JlL2Z3LmMtNDkte1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC9wZHNfY29yZS9mdy5jOjUwOlxcdHVuaW9uIHBkc19jb3JlX2Rldl9jbWQgY21kID0ge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC9wZHNfY29yZS9mdy5jLTUxLVxcdFxcdC5md19jb250cm9sLm9wY29kZSA9IFBEU19DT1JFX0NNRF9GV19DT05UUk9MLFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYW1kL3Bkc19jb3JlL2Z3LmMtNTQtXFx0fTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQvcGRzX2NvcmUvZncuYzo1NTpcXHR1bmlvbiBwZHNfY29yZV9kZXZfY29tcCBjb21wO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC9wZHNfY29yZS9mdy5jLTU2LVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYW1kL3Bkc19jb3JlL2Z3LmM9NjA9c3RhdGljIGludCBwZHNjX2Z3X3N0YXR1c19sb25nX3dhaXQoc3RydWN0IHBkc2MgKnBkc2MsXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQvcGRzX2NvcmUvZncuYy02NS17XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYW1kL3Bkc19jb3JlL2Z3LmM6NjY6XFx0dW5pb24gcGRzX2NvcmVfZGV2X2NtZCBjbWQgPSB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYW1kL3Bkc19jb3JlL2Z3LmMtNjctXFx0XFx0LmZ3X2NvbnRyb2wub3Bjb2RlID0gUERTX0NPUkVfQ01EX0ZXX0NPTlRST0wsXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQvcGRzX2NvcmUvZncuYy02OS1cXHR9O1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC9wZHNfY29yZS9mdy5jOjcwOlxcdHVuaW9uIHBkc19jb3JlX2Rldl9jb21wIGNvbXA7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYW1kL3Bkc19jb3JlL2Z3LmMtNzEtXFx0dW5zaWduZWQgbG9uZyBzdGFydF90aW1lO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYW1kL3Bkc19jb3JlL2Z3LmM9OTg9aW50IHBkc2NfZmlybXdhcmVfdXBkYXRlKHN0cnVjdCBwZHNjICpwZHNjLCBjb25zdCBzdHJ1Y3QgZmlybXdhcmUgKmZ3LFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYW1kL3Bkc19jb3JlL2Z3LmMtMTI0LVxcdG5leHRfaW50ZXJ2YWwgPSAwO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC9wZHNfY29yZS9mdy5jOjEyNTpcXHRkYXRhX2FkZHIgPSBvZmZzZXRvZihzdHJ1Y3QgcGRzX2NvcmVfZGV2X2NtZF9yZWdzLCBkYXRhKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQvcGRzX2NvcmUvZncuYy0xMjYtXFx0d2hpbGUgKG9mZnNldCBcXHUwMDNjIGZ3LVxcdTAwM2VzaXplKSB7XFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTE1VDA3OjI2OjIzLjI4NzY2NDI0MVoiLCJTZXEiOjExLCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo5MTUwNjEwMjQwLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkFuYWx5emluZyB0aGUgRnV6emluZyBQb3RlbnRpYWwgb2YgYFBEU19DT1JFYCoqXG5cbk9rYXksIHNvIEknbSBsb29raW5nIGF0IHRoaXMgYFBEU19DT1JFYCBkcml2ZXIsIGFuZCBpdCdzIHByZXR0eSBjbGVhciBpdCdzIGEgUENJIGRyaXZlciBkZXNpZ25lZCBmb3IgQU1EIFBlbnNhbmRvIENvcmUgaGFyZHdhcmUuIFRoZSBrZXkgaXNzdWUgaGVyZSBpcyB0aGF0IHRoZXJlJ3Mgbm8gc29mdHdhcmUgZW11bGF0aW9uIGZvciBpdCBpbiB0aGUga2VybmVsLiBUaGlzIG1lYW5zIGl0J3Mgbm90IGdvaW5nIHRvIGJlIGFjY2Vzc2libGUgd2l0aGluIGEgdHlwaWNhbCB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudCwgbGlrZSBHQ0Ugb3IgUUVNVSwgdW5sZXNzIHlvdSd2ZSBnb3QgdGhlIGFjdHVhbCBoYXJkd2FyZSBwcmVzZW50LlxuXG5NeSBpbml0aWFsIHRob3VnaHQgd2FzLCBcIkNvdWxkIGl0IGJlIHJlYWNoZWQgdmlhIHNvbWV0aGluZyBsaWtlIGB2aGNpYCBvciBhIGBkdW1teWAgaW50ZXJmYWNlP1wiIEJ1dCBubywgaXQncyBqdXN0IGEgc3RhbmRhcmQgUENJIGRyaXZlciAoYHBjaV9kcml2ZXIgcGRzY19kcml2ZXJgKS4gVW5sZXNzIGEgUENJIGRldmljZSB3aXRoIHRoZSByaWdodCB2ZW5kb3IgYW5kIGRldmljZSBJRCBpcyBwcmVzZW50LCB0aGUgZHJpdmVyJ3MgYHByb2JlYCBmdW5jdGlvbiB3b24ndCBldmVuIGJlIHRyaWdnZXJlZC5cblxuVGhlbiBJIHdvbmRlcmVkIGFib3V0IFN5emthbGxlci4gRG9lcyBTeXprYWxsZXIgcHJvdmlkZSBzb21lIGdlbmVyaWMgUENJIGRldmljZSBpbmplY3Rpb24gbWVjaGFuaXNtLCBtYXliZSB1c2luZyBgdmhjaWAgKFZpcnR1YWwgSG9zdCBDb250cm9sbGVyIEludGVyZmFjZSkgb3Igc29tZXRoaW5nIHNpbWlsYXIsIGxpa2Ugd2l0aCBgc3l6X2t2bV9zZXR1cF9jcHVgIG9yIHBlcmhhcHMgYSBgc3l6X3BjaV9kZXZpY2VgIGNhbGw/IE5vLCBpdCBkb2Vzbid0LiBTeXprYWxsZXIgZG9lc24ndCBoYXZlIGEgZ2VuZXJpYyBQQ0kgZW11bGF0b3IgY2FwYWJsZSBvZiBtaW1pY2tpbmcgdGhlIGNvbXBsZXhpdGllcyBvZiBhcmJpdHJhcnkgaGFyZHdhcmUgcmVnaXN0ZXJzLiBXaGlsZSBTeXprYWxsZXIgaGFzIGV2b2x2ZWQgdG8gcHJvdmlkZSBzb21lIGZ1enppbmcgc3VwcG9ydCBmb3IgUENJIGRldmljZXMsIGl0IGRvZXMgbm90IGRvIHNvIGluIGEgd2F5IHRoYXQgYWxsb3dzIHVzIHRvIHRhcmdldCBgUERTX0NPUkVgLlxuXG5JIHRyaWVkIHRvIHJlY2FsbCBpZiB0aGVyZSB3ZXJlIGFueSByZWNlbnQgYWRkaXRpb25zIHRvIFN5emthbGxlciByZWdhcmRpbmcgUENJIGZ1enppbmcgdGhyb3VnaCBgdmhjaWAgb3IgYHZmaW9gLCBidXQgdGhlIGFuc3dlciBpcyBuby4gU3l6a2FsbGVyIGhhcyBgc3l6X2dlbmV0bGlua2AsIGFuZCBJIGtub3cgaXQgaGFzIGNhbGxzIGxpa2UgYHN5el91c2JfY29ubmVjdGAgZm9yIFVTQiwgYHN5el84MDIxMV9qb2luX2lic3NgIGZvciBXaS1GaSwgYnV0IEkgYW0gZmFtaWxpYXIgd2l0aCBTeXprYWxsZXIsIGFuZCBJJ20gY2VydGFpbiB0aGF0IHRoZSBQQ0kgc2lkZSBoYXMgbm8gZXF1aXZhbGVudCBhYmlsaXR5IHRvIGVtdWxhdGUgYXJiaXRyYXJ5IFBDSSBoYXJkd2FyZS5cblxuU28gdGhlIGJvdHRvbSBsaW5lIGlzOiBUaGUgY29kZSBpc24ndCByZWFjaGFibGUgaW4gYSBzdGFuZGFyZCB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudC4gV2l0aG91dCBzb2Z0d2FyZSBlbXVsYXRpb24sIHRoaXMgZHJpdmVyIGlzIGVmZmVjdGl2ZWx5IGxvY2tlZCBiZWhpbmQgYSBoYXJkd2FyZSByZXF1aXJlbWVudC5cblxuSnVzdCB0byBiZSBhYnNvbHV0ZWx5IHN1cmUsIEknbGwgcXVpY2tseSBkb3VibGUtY2hlY2sgZm9yIGFueSBzaWduIG9mIGBwZHNfY29yZWAgZW11bGF0aW9uIGFueXdoZXJlLiBJJ2xsIGRvIGEgcXVpY2sgZ3JlcCBhbmQgbWFrZSBzdXJlIHRoZXJlIGlzbid0IGFueXRoaW5nIGhpZGluZyBpbiBzb21lIG9ic2N1cmUgY29ybmVyIG9mIHRoZSBjb2RlYmFzZS5cblxuWWVwLCBJIGdyZXBwZWQgZm9yIGBwZHNfY29yZWAgYW5kIGZvdW5kIG5vdGhpbmcgcmVzZW1ibGluZyBlbXVsYXRpb24uXG5cblRoZXJlZm9yZSwgbXkgZmluYWwgY29uY2x1c2lvbiBpcyBgV29ydGhGdXp6aW5nOiBmYWxzZWAuIE15IHJlYXNvbmluZyBpcyB0aGF0IHRoaXMgaXMgYSBoYXJkd2FyZS1zcGVjaWZpYyBQQ0kgZHJpdmVyIHRoYXQgbGFja3Mgc29mdHdhcmUgZW11bGF0aW9uLiBJdCdzIHNpbXBseSB1bnJlYWNoYWJsZSBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBHQ0Ugb3IgUUVNVS5cblxuSSdsbCBjaGVjayBpZiBgcGRzY19pbml0X3BmYCBpcyBjYWxsZWQgZnJvbSBhbnl3aGVyZSBlbHNlLlxuXG5cbiIsIklucHV0VG9rZW5zIjoxNTU2NiwiT3V0cHV0VG9rZW5zIjoyNiwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjUwOSwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0xNVQwNzoyNjozMi40MzgyNzczNzFaIiwiU2VxIjoxMiwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjIyNzE0NTczNTcsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwicGRzY19pbml0X3BmXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcIlwiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJkcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQvcGRzX2NvcmUvbWFpbi5jPTIwOD1zdGF0aWMgY29uc3Qgc3RydWN0IGRldmxpbmtfcGFyYW0gcGRzY19kbF9wYXJhbXNbXSA9IHtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC9wZHNfY29yZS9tYWluLmMtMjE3LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC9wZHNfY29yZS9tYWluLmM6MjE4OnN0YXRpYyBpbnQgcGRzY19pbml0X3BmKHN0cnVjdCBwZHNjICpwZHNjKVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC9wZHNfY29yZS9tYWluLmMtMjE5LXtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC9wZHNfY29yZS9tYWluLmM9MzM3PXN0YXRpYyBpbnQgcGRzY19wcm9iZShzdHJ1Y3QgcGNpX2RldiAqcGRldiwgY29uc3Qgc3RydWN0IHBjaV9kZXZpY2VfaWQgKmVudClcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC9wZHNfY29yZS9tYWluLmMtMzgyLVxcdGlmIChpc19wZilcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQvcGRzX2NvcmUvbWFpbi5jOjM4MzpcXHRcXHRlcnIgPSBwZHNjX2luaXRfcGYocGRzYyk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYW1kL3Bkc19jb3JlL21haW4uYy0zODQtXFx0ZWxzZVxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0xNVQwNzoyNjozNC43MDk3NDIwOThaIiwiU2VxIjoxMywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6MzM3OTgwODgzMSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiT2theSwgaGVyZSdzIG15IGludGVycHJldGF0aW9uIG9mIHRob3NlIHRob3VnaHRzLCB0YWlsb3JlZCBmb3IgYW4gZXhwZXJ0IGF1ZGllbmNlLCBwcmVzZW50ZWQgaW4gdGhlIGZpcnN0IHBlcnNvbjpcblxuKipEZWNvZGluZyB0aGUgRHJpdmVyIFByb2JlKipcblxuQWxyaWdodCwgbGV0J3MgYnJlYWsgdGhpcyBkb3duLiBNeSBtaW5kIGlzIGltbWVkaWF0ZWx5IGRyYXduIHRvIHRoZSBjYWxsIHN0YWNrLiBUaGUgY3J1Y2lhbCBiaXQgaGVyZSBpcyB0aGF0IHRoaXMgcGFydGljdWxhciBwaWVjZSBvZiBsb2dpYyBpcyAqZXhjbHVzaXZlbHkqIGludm9rZWQgZnJvbSBgcGRzY19wcm9iZWAuIFRoYXQncyB0aGUgZW50cnkgcG9pbnQuIEFuZCBgcGRzY19wcm9iZWAsIGFzIEknbSByZW1pbmRlZCwgaXMgdGhlIHByb2JlIGZ1bmN0aW9uIGRlZmluZWQgd2l0aGluIHRoZSBgcGRzY19kcml2ZXJgIHN0cnVjdHVyZS4gRXNzZW50aWFsbHksIHdlJ3JlIGxvb2tpbmcgYXQgdGhlIGNvcmUgb2YgdGhlIGRyaXZlcidzIGluaXRpYWxpemF0aW9uIHNlcXVlbmNlLCB0aGUgcG9pbnQgd2hlcmUgaXQgYXR0ZW1wdHMgdG8gaWRlbnRpZnkgYW5kIGNvbmZpZ3VyZSB0aGUgdGFyZ2V0IGRldmljZS4gVGhpcyBpcyB3aGVyZSB0aGUgbWFnaWMgKG9yIHRoZSB0cm91Ymxlc2hvb3RpbmcpIGJlZ2lucy4gS25vd2luZyB0aGF0IHRoaXMgaXMgdGhlIHNvbGUgZW50cnkgcG9pbnQgcHJvdmlkZXMgY3JpdGljYWwgY29udGV4dCBmb3IgZGVidWdnaW5nIG9yIGF1ZGl0aW5nIHRoZSBkcml2ZXIncyBiZWhhdmlvci4gV2Uga25vdyBleGFjdGx5IHdoZXJlIHRvIGxvb2sgZm9yIHRoZSBpbml0aWFsIHRyaWdnZXJzIGFuZCBkZXBlbmRlbmNpZXMuIEFueSBpc3N1ZXMgaW4gaGVyZSBhcmUgZm91bmRhdGlvbmFsOyB0aGV5J2xsIGNhc2NhZGUgb3V0d2FyZHMuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjE2OTc5LCJPdXRwdXRUb2tlbnMiOjI0LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MzAsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDctMTVUMDc6MjY6MzguMDg5NTUzNjg5WiIsIlNlcSI6MTQsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoxODUwNzU4Mzk5LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcInBkc2NfcHJvYmVcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImRyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC9wZHNfY29yZS9tYWluLmM9MzM1PXN0YXRpYyBERUZJTkVfSURBKHBkc2NfaWRhKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQvcGRzX2NvcmUvbWFpbi5jLTMzNi1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQvcGRzX2NvcmUvbWFpbi5jOjMzNzpzdGF0aWMgaW50IHBkc2NfcHJvYmUoc3RydWN0IHBjaV9kZXYgKnBkZXYsIGNvbnN0IHN0cnVjdCBwY2lfZGV2aWNlX2lkICplbnQpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYW1kL3Bkc19jb3JlL21haW4uYy0zMzgte1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYW1kL3Bkc19jb3JlL21haW4uYz01ODI9c3RhdGljIHN0cnVjdCBwY2lfZHJpdmVyIHBkc2NfZHJpdmVyID0ge1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYW1kL3Bkc19jb3JlL21haW4uYy01ODQtXFx0LmlkX3RhYmxlID0gcGRzY19pZF90YWJsZSxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQvcGRzX2NvcmUvbWFpbi5jOjU4NTpcXHQucHJvYmUgPSBwZHNjX3Byb2JlLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC9wZHNfY29yZS9tYWluLmMtNTg2LVxcdC5yZW1vdmUgPSBwZHNjX3JlbW92ZSxcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMTVUMDc6MjY6MzkuOTQwMzIwOTY4WiIsIlNlcSI6MTUsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjM1NDg4NjA3MTksIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqTXkgQXNzZXNzbWVudCBvZiB0aGUgUENJIERyaXZlciBQcm9iZSBGdW5jdGlvbioqXG5cbk9rYXksIHNvIEknbSBsb29raW5nIGF0IHRoaXMgY29kZSBhbmQgaXQncyBwcmV0dHkgY2xlYXIgdGhpcyBpcyBzb2xlbHkgYSBQQ0kgZHJpdmVyIHByb2JlIGZ1bmN0aW9uLiBUaGVyZSdzIG5vIGVtdWxhdGlvbiBvZiB0aGUgQU1EIFBlbnNhbmRvIENvcmUgaGFyZHdhcmUgaW4gYW55IHZpcnR1YWxpemVkIGVudmlyb25tZW50cy4gVGhhdCBtZWFucyB0aGlzIHNwZWNpZmljIGNvZGUgcGF0aCBpcyBjb21wbGV0ZWx5IHVucmVhY2hhYmxlIGlmIHdlJ3JlIHJ1bm5pbmcgaW4gYSBWTS4gR2l2ZW4gdGhhdCBsaW1pdGF0aW9uLCBJJ20gZ29pbmcgdG8gc2V0IGBXb3J0aEZ1enppbmc6IGZhbHNlYC4gVGhlcmUncyBubyBwb2ludCBpbiBzcGVuZGluZyByZXNvdXJjZXMgdHJ5aW5nIHRvIGZ1enogc29tZXRoaW5nIHRoYXQgY2FuJ3QgYmUgdHJpZ2dlcmVkIGluIHRoZSB0YXJnZXQgZW52aXJvbm1lbnQuIEl0J3Mgc2ltcGx5IG5vdCB3b3J0aCB0aGUgZWZmb3J0LiBJIG5lZWQgdG8gZm9jdXMgbXkgZW5lcmd5IG9uIHBhdGhzIHRoYXQgYXJlIGFjdHVhbGx5IGV4cG9zZWQuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjE3NTEzLCJPdXRwdXRUb2tlbnMiOjk0LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6NDgsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDctMTVUMDc6MjY6NDMuNDg5MTg0NzQ3WiIsIlNlcSI6MTYsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6InNldC1yZXN1bHRzIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MjQ1OTAsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IFtdLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIGluaXRpYWxpemF0aW9uIHBhdGggb2YgdGhlIEFNRCBQRFMgQ29yZSBQQ0kgZHJpdmVyIChgcGRzY19pbml0X3BmYCkuIFRoaXMgaXMgYSBoYXJkd2FyZS1zcGVjaWZpYyBQQ0kgZHJpdmVyIHRoYXQgbGFja3Mgc29mdHdhcmUgZW11bGF0aW9uIGluIHRoZSBrZXJuZWwsIG1lYW5pbmcgaXRzIHByb2JlIGFuZCBpbml0aWFsaXphdGlvbiBwYXRocyBhcmUgdW5yZWFjaGFibGUgaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgR0NFIG9yIFFFTVUgdXNlZCBieSBzeXprYWxsZXIuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IGZhbHNlXG59IiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IG51bGwsXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBtb2RpZmllcyB0aGUgaW5pdGlhbGl6YXRpb24gcGF0aCBvZiB0aGUgQU1EIFBEUyBDb3JlIFBDSSBkcml2ZXIgKGBwZHNjX2luaXRfcGZgKS4gVGhpcyBpcyBhIGhhcmR3YXJlLXNwZWNpZmljIFBDSSBkcml2ZXIgdGhhdCBsYWNrcyBzb2Z0d2FyZSBlbXVsYXRpb24gaW4gdGhlIGtlcm5lbCwgbWVhbmluZyBpdHMgcHJvYmUgYW5kIGluaXRpYWxpemF0aW9uIHBhdGhzIGFyZSB1bnJlYWNoYWJsZSBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBHQ0Ugb3IgUUVNVSB1c2VkIGJ5IHN5emthbGxlci5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogZmFsc2Vcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfV07CgkJCWlmICghcmF3RGF0YSB8fCByYXdEYXRhLmxlbmd0aCA9PT0gMCkgcmV0dXJuOwoKCQkJZHJhd1N1bW1hcnlUYWJsZXMocmF3RGF0YSk7CgkJCWRyYXdEdXJhdGlvbkNoYXJ0KHJhd0RhdGEpOwoJCQlkcmF3VG9rZW5Db25zdW1wdGlvbkNoYXJ0KHJhd0RhdGEpOwoJCX0KCgkJZnVuY3Rpb24gZHJhd1N1bW1hcnlUYWJsZXMocmF3RGF0YSkgewoJCQljb25zdCBzdGF0cyA9IHsKCQkJCWxsbTogeyBjb3VudDogMCwgdG9rZW5zOiAwLCBkdXJhdGlvbjogMCB9LAoJCQkJdG9vbDogeyBjb3VudDogMCwgZHVyYXRpb246IDAgfQoJCQl9OwoKCQkJcmF3RGF0YS5mb3JFYWNoKHMgPT4gewoJCQkJY29uc3QgZHVyID0gcy5EdXJhdGlvbiAvIDEwMDAwMDAwMDA7IAoJCQkJaWYgKHMuVHlwZSA9PT0gImxsbSIpIHsKCQkJCQlzdGF0cy5sbG0uY291bnQrKzsKCQkJCQlzdGF0cy5sbG0udG9rZW5zICs9IChzLklucHV0VG9rZW5zICsgcy5PdXRwdXRUb2tlbnMgKyBzLk91dHB1dFRob3VnaHRzVG9rZW5zKTsKCQkJCQlzdGF0cy5sbG0uZHVyYXRpb24gKz0gZHVyOwoJCQkJfSBlbHNlIGlmIChzLlR5cGUgPT09ICJ0b29sIikgewoJCQkJCXN0YXRzLnRvb2wuY291bnQrKzsKCQkJCQlzdGF0cy50b29sLmR1cmF0aW9uICs9IGR1cjsKCQkJCX0KCQkJfSk7CgoJCQljb25zdCBhdmdMbG1EdXIgPSBzdGF0cy5sbG0uY291bnQgPiAwID8gKHN0YXRzLmxsbS5kdXJhdGlvbiAvIHN0YXRzLmxsbS5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgkJCWNvbnN0IGF2Z0xsbVRva2VuID0gc3RhdHMubGxtLmNvdW50ID4gMCA/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-workflow9mx4f[0].run-triage(0) Phase: Succeeded StartedAt: 2026-07-15 07:06:39 +0000 UTC FinishedAt: 2026-07-15 07:26:45 +0000 UTC Input: nil Output: &Outputs{Parameters:[]Parameter{Parameter{Name:result,Default:nil,Value:*{ "skip_reason": "AI determined the patch has no functional impact", "targets": null, "trajectory": "CjwhZG9jdHlwZSBodG1sPgo8aHRtbD4KPGhlYWQ+Cgk8dGl0bGU+QUkgVHJhamVjdG9yeTwvdGl0bGU+Cgk8c3R5bGU+CgkJdGFibGUgewoJCQlib3JkZXI6IDFweCBzb2xpZCAjY2NjOwoJCQltYXJnaW46IDIwcHggNXB4OwoJCQlib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlOwoJCQl3aGl0ZS1zcGFjZTogbm93cmFwOwoJCQl0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsKCQkJb3ZlcmZsb3c6IGhpZGRlbjsKCQl9CgoJCXRhYmxlIGNhcHRpb24gewoJCQlmb250LXdlaWdodDogYm9sZDsKCQl9CgoJCXRhYmxlIHRkLCB0YWJsZSB0aCB7CgkJCXZlcnRpY2FsLWFsaWduOiB0b3A7CgkJCXBhZGRpbmc6IDJweCA4cHg7CgkJCXRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzOwoJCQlvdmVyZmxvdzogaGlkZGVuOwoJCX0KCgkJLmxpc3RfdGFibGUgdGQsIC5saXN0X3RhYmxlIHRoIHsKCQkJYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCAjY2NjOwoJCX0KCgkJLmxpc3RfdGFibGUgdGggewoJCQliYWNrZ3JvdW5kOiAjRjRGNEY0OwoJCX0KCgkJLmxpc3RfdGFibGUgdHI6bnRoLWNoaWxkKDJuKSB7CgkJCWJhY2tncm91bmQ6ICNGNEY0RjQ7CgkJfQoKCQkubGlzdF90YWJsZSB0cjpob3ZlciB7CgkJCWJhY2tncm91bmQ6ICNmZmZmOTk7CgkJfQoKCQkjYWlfZGV0YWlsc19kaXYgcHJlIHsKCQkJbWFyZ2luOiAxcHg7CgkJCW1heC13aWR0aDogMTIwY2g7CgkJCXdoaXRlLXNwYWNlOiBwcmUtd3JhcDsKCQkJb3ZlcmZsb3ctd3JhcDogYnJlYWstd29yZDsKCQl9Cgk8L3N0eWxlPgo8L2hlYWQ+Cjxib2R5PgoJPGgxPkFJIFRyYWplY3Rvcnk8L2gxPgoJPGJyPgoKCQoJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQk8Y2FwdGlvbj5UcmFqZWN0b3J5OiAoPGEgaHJlZj0iIyIgb25jbGljaz0idG9nZ2xlQWxsRGV0YWlscygpOyByZXR1cm4gZmFsc2U7Ij5FeHBhbmQvQ29sbGFwc2UgQWxsPC9hPik8L2NhcHRpb24+CgkJPHRoZWFkPjx0cj4KCQkJPHRoPlNlcTwvdGg+CgkJCTx0aD5UaW1lc3RhbXA8L3RoPgoJCQk8dGg+VHlwZTwvdGg+CgkJCTx0aD5OYW1lPC90aD4KCQkJPHRoPkR1cmF0aW9uPC90aD4KCQk8L3RyPjwvdGhlYWQ+CgkJPHRib2R5PgoJCQoJCTx0cj4KCQkJPHRkPjAvMDwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzE1IDA3OjI2PC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBudWxsLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFtdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBpbml0aWFsaXphdGlvbiBwYXRoIG9mIHRoZSBBTUQgUERTIENvcmUgUENJIGRyaXZlciAoYHBkc2NfaW5pdF9wZmApLiBUaGlzIGlzIGEgaGFyZHdhcmUtc3BlY2lmaWMgUENJIGRyaXZlciB0aGF0IGxhY2tzIHNvZnR3YXJlIGVtdWxhdGlvbiBpbiB0aGUga2VybmVsLCBtZWFuaW5nIGl0cyBwcm9iZSBhbmQgaW5pdGlhbGl6YXRpb24gcGF0aHMgYXJlIHVucmVhY2hhYmxlIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIEdDRSBvciBRRU1VIHVzZWQgYnkgc3l6a2FsbGVyLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IGZhbHNlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xLzE8L3RkPgoJCQk8dGQ+MjAyNi8wNy8xNSAwNzoyNjwvdGQ+CgkJCTx0ZD5hY3Rpb248L3RkPgoJCQk8dGQ+cmVhZC1wYXRjaC1kaWZmPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7UGF0Y2hEaWZmJiMzNDs6ICYjMzQ7Y29tbWl0IDI3OWZiYmJkN2I2ZWQ4ZDg5MDcyZjdmNTFkZTZjMzE4YjUwM2UyYjhcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cdTAwM2VcbkRhdGU6ICAgV2VkIEp1bCAxNSAwNzoyNjowMiAyMDI2ICYjNDM7MDAwMFxuXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XG5cbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQvcGRzX2NvcmUvbWFpbi5jIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvYW1kL3Bkc19jb3JlL21haW4uY1xuaW5kZXggMjJkYjc4MzQzZWIwNzUuLmYzN2U1ZmVmYTI2NDgxIDEwMDY0NFxuLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvYW1kL3Bkc19jb3JlL21haW4uY1xuJiM0MzsmIzQzOyYjNDM7IGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvYW1kL3Bkc19jb3JlL21haW4uY1xuQEAgLTIzOCw2ICYjNDM7MjM4LDEwIEBAIHN0YXRpYyBpbnQgcGRzY19pbml0X3BmKHN0cnVjdCBwZHNjICpwZHNjKVxuIFx0LyogR2VuZXJhbCB3b3JrcXVldWUgYW5kIHRpbWVyLCBidXQgZG9uJiMzOTt0IHN0YXJ0IHRpbWVyIHlldCAqL1xuIFx0c25wcmludGYod3FfbmFtZSwgc2l6ZW9mKHdxX25hbWUpLCBcJiMzNDslcy4lZFwmIzM0OywgUERTX0NPUkVfRFJWX05BTUUsIHBkc2MtXHUwMDNldWlkKTtcbiBcdHBkc2MtXHUwMDNld3EgPSBjcmVhdGVfc2luZ2xldGhyZWFkX3dvcmtxdWV1ZSh3cV9uYW1lKTtcbiYjNDM7XHRpZiAoIXBkc2MtXHUwMDNld3EpIHtcbiYjNDM7XHRcdGVyciA9IC1FTk9NRU07XG4mIzQzO1x0XHRnb3RvIGVycl9vdXRfdW5tYXBfYmFycztcbiYjNDM7XHR9XG4gXHRJTklUX1dPUksoXHUwMDI2cGRzYy1cdTAwM2VoZWFsdGhfd29yaywgcGRzY19oZWFsdGhfdGhyZWFkKTtcbiBcdElOSVRfV09SSyhcdTAwMjZwZHNjLVx1MDAzZXBjaV9yZXNldF93b3JrLCBwZHNjX3BjaV9yZXNldF90aHJlYWQpO1xuIFx0dGltZXJfc2V0dXAoXHUwMDI2cGRzYy1cdTAwM2V3ZHRpbWVyLCBwZHNjX3dkdGltZXJfY2IsIDApO1xuQEAgLTI1Myw3ICYjNDM7MjU3LDcgQEAgc3RhdGljIGludCBwZHNjX2luaXRfcGYoc3RydWN0IHBkc2MgKnBkc2MpXG4gXHRlcnIgPSBwZHNjX3NldHVwKHBkc2MsIFBEU0NfU0VUVVBfSU5JVCk7XG4gXHRpZiAoZXJyKSB7XG4gXHRcdG11dGV4X3VubG9jayhcdTAwMjZwZHNjLVx1MDAzZWNvbmZpZ19sb2NrKTtcbi1cdFx0Z290byBlcnJfb3V0X3VubWFwX2JhcnM7XG4mIzQzO1x0XHRnb3RvIGVycl9vdXRfc2h1dGRvd25fdGltZXI7XG4gXHR9XG4gXG4gXHRlcnIgPSBwZHNjX3N0YXJ0KHBkc2MpO1xuQEAgLTMwNSwxMyAmIzQzOzMwOSwxNCBAQCBzdGF0aWMgaW50IHBkc2NfaW5pdF9wZihzdHJ1Y3QgcGRzYyAqcGRzYylcbiBcdHBkc2Nfc3RvcChwZHNjKTtcbiBlcnJfb3V0X3RlYXJkb3duOlxuIFx0cGRzY190ZWFyZG93bihwZHNjLCBQRFNDX1RFQVJET1dOX1JFTU9WSU5HKTtcbi1lcnJfb3V0X3VubWFwX2JhcnM6XG4mIzQzO2Vycl9vdXRfc2h1dGRvd25fdGltZXI6XG4gXHR0aW1lcl9zaHV0ZG93bl9zeW5jKFx1MDAyNnBkc2MtXHUwMDNld2R0aW1lcik7XG4gXHRpZiAocGRzYy1cdTAwM2V3cSlcbiBcdFx0ZGVzdHJveV93b3JrcXVldWUocGRzYy1cdTAwM2V3cSk7XG4gXHRtdXRleF9kZXN0cm95KFx1MDAyNnBkc2MtXHUwMDNlY29uZmlnX2xvY2spO1xuIFx0bXV0ZXhfZGVzdHJveShcdTAwMjZwZHNjLVx1MDAzZWRldmNtZF9sb2NrKTtcbiBcdHBjaV9mcmVlX2lycV92ZWN0b3JzKHBkc2MtXHUwMDNlcGRldik7XG4mIzQzO2Vycl9vdXRfdW5tYXBfYmFyczpcbiBcdHBkc2NfdW5tYXBfYmFycyhwZHNjKTtcbiBlcnJfb3V0X3JlbGVhc2VfcmVnaW9uczpcbiBcdHBjaV9yZWxlYXNlX3JlZ2lvbnMocGRzYy1cdTAwM2VwZGV2KTtcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4yLzE8L3RkPgoJCQk8dGQ+MjAyNi8wNy8xNSAwNzoyNjwvdGQ+CgkJCTx0ZD5hZ2VudDwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogbnVsbCwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBtb2RpZmllcyB0aGUgaW5pdGlhbGl6YXRpb24gcGF0aCBvZiB0aGUgQU1EIFBEUyBDb3JlIFBDSSBkcml2ZXIgKGBwZHNjX2luaXRfcGZgKS4gVGhpcyBpcyBhIGhhcmR3YXJlLXNwZWNpZmljIFBDSSBkcml2ZXIgdGhhdCBsYWNrcyBzb2Z0d2FyZSBlbXVsYXRpb24gaW4gdGhlIGtlcm5lbCwgbWVhbmluZyBpdHMgcHJvYmUgYW5kIGluaXRpYWxpemF0aW9uIHBhdGhzIGFyZSB1bnJlYWNoYWJsZSBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBHQ0Ugb3IgUUVNVSB1c2VkIGJ5IHN5emthbGxlci4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiBmYWxzZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5JbnN0cnVjdGlvbjo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPllvdSBhcmUgYW4gZXhwZXJ0IExpbnV4IGtlcm5lbCBtYWludGFpbmVyLgpZb3VyIGpvYiBpcyB0byByZXZpZXcgYSBwcm92aWRlZCBwYXRjaCBzZXJpZXMgYW5kIGRldGVybWluZQppZiBpdCBtYWtlcyBmdW5jdGlvbmFsIGNoYW5nZXMgdG8gdGhlIGtlcm5lbCB0aGF0IHNob3VsZCBiZSBmdXp6ZWQuCgpJTVBPUlRBTlQ6IFRoZSBjaGFuZ2VzIGhhdmUgQUxSRUFEWSBiZWVuIGFwcGxpZWQgYW5kIGNvbW1pdHRlZCBhcyB0aGUgSEVBRCBjb21taXQgaW4KeW91ciB3b3Jrc3BhY2UuIERvIE5PVCByZWx5IG9uIHlvdXIgaW50ZXJuYWwga25vd2xlZGdlIG9mIHRoZSBrZXJuZWwuIFlvdSBtdXN0IGFjdGl2ZWx5CnVzZSB5b3VyIGNvZGUgYWNjZXNzIHRvb2xzIHRvIGV4YW1pbmUgdGhlIGFjdHVhbCBzb3VyY2UgY29kZSBhbmQgY29uZmlybSBhbnkgYXNzdW1wdGlvbnMuCgpSZXR1cm4gV29ydGhGdXp6aW5nPWZhbHNlIGlmIHRoZSBwYXRjaCBvbmx5IGNvbnRhaW5zOgotIE1vZGlmaWNhdGlvbnMgdG8gRG9jdW1lbnRhdGlvbi8sIEtjb25maWcgZmlsZXMsIG9yIGNvZGUgY29tbWVudHMuCi0gUHVyZWx5IGRlY29yYXRpdmUgY2hhbmdlcywgc3VjaCBhcyBsb2dnaW5nIChlLmcuLCBwcl9lcnIsIHByaW50aykgb3IgdHJhY2Vwb2ludHMuCi0gQ2hhbmdlcyB0byBudW1lcmljIGNvbnN0YW50cyBvciBtYWNyb3MgdGhhdCBkbyBub3QgZnVuY3Rpb25hbGx5IGFsdGVyIGV4ZWN1dGlvbiBmbG93LgotIENvZGUgcGF0aHMgdGhhdCBhcmUgaW1wb3NzaWJsZSB0byByZWFjaCBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBHQ0Ugb3IgUUVNVSwKZXZlbiB3aGVuIHV0aWxpemluZyBzb2Z0d2FyZS1lbXVsYXRlZCBoYXJkd2FyZSAoZS5nLiwgdXNiIGdhZGdldCwgbWFjODAyMTFfaHdzaW0pLgoKSWYgaXQgbW9kaWZpZXMgcmVhY2hhYmxlIGNvcmUga2VybmVsIGxvZ2ljLCBkcml2ZXJzLCBvciBhcmNoaXRlY3R1cmVzLCB1c2UgeW91ciBjb2RlIHNlYXJjaAp0b29scyB0byB2ZXJpZnkgdGhlIGNvZGUgY2FuIGJlIGV4ZWN1dGVkLCB0aGVuIHJldHVybiBXb3J0aEZ1enppbmc9dHJ1ZS4KCldoZW4gcmV0dXJuaW5nIFdvcnRoRnV6emluZz10cnVlLCB5b3UgTVVTVCBBTFNPOgoxLiBFeHRyYWN0IGFueSBzcGVjaWZpYyBrZXJuZWwgZnVuY3Rpb25zIHRoYXQgc2hvdWxkIGJlIGhlYXZpbHkgZnV6emVkIGludG8gRm9jdXNTeW1ib2xzLgogICBBdm9pZCBsaXN0aW5nIGdlbmVyaWMgaG90LXBhdGggZnVuY3Rpb25zIHRvIHByZXZlbnQgc2tld2VkIHRlc3QgZGlzdHJpYnV0aW9ucy4KMi4gSWRlbnRpZnkgYW55IHNwZWNpZmljIENPTkZJR18gb3B0aW9ucyByZXF1aXJlZCB0byBwcm9wZXJseSB0ZXN0IHRoaXMgbmV3L21vZGlmaWVkIGZlYXR1cmUuCiAgIEdvIGFuZCBsb29rIGludG8gdGhlIEtjb25maWcgZmlsZXMgYW5kIGNoZWNrIGZvciBpZmRlZnMgYXJvdW5kIHRoZSBjb2RlLCBkbyBub3QgbWFrZSBhc3N1bXB0aW9ucy4KICAgRG8gbm90IGxpc3QgdG9vIGdlbmVyaWMgY29uZmlncyAod2UgYWxyZWFkeSBoYXZlIHRoZW0gZW5hYmxlZCkuIE9ubHkgbGlzdCB0aG9zZSB0aGF0CiAgIHNwZWNpZmljYWxseSBjb3ZlciB0aGUgbW9kaWZpZWQgY29kZS4gTGlzdCB0aGVtIGluIHRoZSBFbmFibGVDb25maWdzIG91dHB1dCBhcnJheSwKICAgYW5kIERPIE5PVCBhZGQgYSAmIzM5O0NPTkZJR18mIzM5OyBwcmVmaXggKGUuZy4sIHJldHVybiAmIzM0O05FVF9JUFY0JiMzNDsgaW5zdGVhZCBvZiAmIzM0O0NPTkZJR19ORVRfSVBWNCYjMzQ7KS4KUHJlZmVyIGNhbGxpbmcgc2V2ZXJhbCB0b29scyBhdCB0aGUgc2FtZSB0aW1lIHRvIHNhdmUgcm91bmQtdHJpcHMuCgoKVXNlIHNldC1yZXN1bHRzIHRvb2wgdG8gcHJvdmlkZSByZXN1bHRzIG9mIHRoZSBhbmFseXNpcy4KSXQgbXVzdCBiZSBjYWxsZWQgZXhhY3RseSBvbmNlIGJlZm9yZSB0aGUgZmluYWwgcmVwbHkuCklnbm9yZSByZXN1bHRzIG9mIHRoaXMgdG9vbC4KPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Qcm9tcHQ6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Gb3IgeW91ciBjb252ZW5pZW5jZSwgaGVyZSBpcyB0aGUgZGlmZiBvZiB0aGUgY2hhbmdlczoKY29tbWl0IDI3OWZiYmJkN2I2ZWQ4ZDg5MDcyZjdmNTFkZTZjMzE4YjUwM2UyYjgKQXV0aG9yOiBzeXotY2x1c3RlciAmbHQ7dHJpYWdlQHN5emthbGxlci5jb20mZ3Q7CkRhdGU6ICAgV2VkIEp1bCAxNSAwNzoyNjowMiAyMDI2ICYjNDM7MDAwMAoKICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlldwoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC9wZHNfY29yZS9tYWluLmMgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQvcGRzX2NvcmUvbWFpbi5jCmluZGV4IDIyZGI3ODM0M2ViMDc1Li5mMzdlNWZlZmEyNjQ4MSAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvYW1kL3Bkc19jb3JlL21haW4uYwomIzQzOyYjNDM7JiM0MzsgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQvcGRzX2NvcmUvbWFpbi5jCkBAIC0yMzgsNiAmIzQzOzIzOCwxMCBAQCBzdGF0aWMgaW50IHBkc2NfaW5pdF9wZihzdHJ1Y3QgcGRzYyAqcGRzYykKIAkvKiBHZW5lcmFsIHdvcmtxdWV1ZSBhbmQgdGltZXIsIGJ1dCBkb24mIzM5O3Qgc3RhcnQgdGltZXIgeWV0ICovCiAJc25wcmludGYod3FfbmFtZSwgc2l6ZW9mKHdxX25hbWUpLCAmIzM0OyVzLiVkJiMzNDssIFBEU19DT1JFX0RSVl9OQU1FLCBwZHNjLSZndDt1aWQpOwogCXBkc2MtJmd0O3dxID0gY3JlYXRlX3NpbmdsZXRocmVhZF93b3JrcXVldWUod3FfbmFtZSk7CiYjNDM7CWlmICghcGRzYy0mZ3Q7d3EpIHsKJiM0MzsJCWVyciA9IC1FTk9NRU07CiYjNDM7CQlnb3RvIGVycl9vdXRfdW5tYXBfYmFyczsKJiM0MzsJfQogCUlOSVRfV09SSygmYW1wO3Bkc2MtJmd0O2hlYWx0aF93b3JrLCBwZHNjX2hlYWx0aF90aHJlYWQpOwogCUlOSVRfV09SSygmYW1wO3Bkc2MtJmd0O3BjaV9yZXNldF93b3JrLCBwZHNjX3BjaV9yZXNldF90aHJlYWQpOwogCXRpbWVyX3NldHVwKCZhbXA7cGRzYy0mZ3Q7d2R0aW1lciwgcGRzY193ZHRpbWVyX2NiLCAwKTsKQEAgLTI1Myw3ICYjNDM7MjU3LDcgQEAgc3RhdGljIGludCBwZHNjX2luaXRfcGYoc3RydWN0IHBkc2MgKnBkc2MpCiAJZXJyID0gcGRzY19zZXR1cChwZHNjLCBQRFNDX1NFVFVQX0lOSVQpOwogCWlmIChlcnIpIHsKIAkJbXV0ZXhfdW5sb2NrKCZhbXA7cGRzYy0mZ3Q7Y29uZmlnX2xvY2spOwotCQlnb3RvIGVycl9vdXRfdW5tYXBfYmFyczsKJiM0MzsJCWdvdG8gZXJyX291dF9zaHV0ZG93bl90aW1lcjsKIAl9CiAKIAllcnIgPSBwZHNjX3N0YXJ0KHBkc2MpOwpAQCAtMzA1LDEzICYjNDM7MzA5LDE0IEBAIHN0YXRpYyBpbnQgcGRzY19pbml0X3BmKHN0cnVjdCBwZHNjICpwZHNjKQogCXBkc2Nfc3RvcChwZHNjKTsKIGVycl9vdXRfdGVhcmRvd246CiAJcGRzY190ZWFyZG93bihwZHNjLCBQRFNDX1RFQVJET1dOX1JFTU9WSU5HKTsKLWVycl9vdXRfdW5tYXBfYmFyczoKJiM0MztlcnJfb3V0X3NodXRkb3duX3RpbWVyOgogCXRpbWVyX3NodXRkb3duX3N5bmMoJmFtcDtwZHNjLSZndDt3ZHRpbWVyKTsKIAlpZiAocGRzYy0mZ3Q7d3EpCiAJCWRlc3Ryb3lfd29ya3F1ZXVlKHBkc2MtJmd0O3dxKTsKIAltdXRleF9kZXN0cm95KCZhbXA7cGRzYy0mZ3Q7Y29uZmlnX2xvY2spOwogCW11dGV4X2Rlc3Ryb3koJmFtcDtwZHNjLSZndDtkZXZjbWRfbG9jayk7CiAJcGNpX2ZyZWVfaXJxX3ZlY3RvcnMocGRzYy0mZ3Q7cGRldik7CiYjNDM7ZXJyX291dF91bm1hcF9iYXJzOgogCXBkc2NfdW5tYXBfYmFycyhwZHNjKTsKIGVycl9vdXRfcmVsZWFzZV9yZWdpb25zOgogCXBjaV9yZWxlYXNlX3JlZ2lvbnMocGRzYy0mZ3Q7cGRldik7CjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjMvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzE1IDA3OjI2PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDIzMTMKCQkJCQkJCW91dHB1dDogNDMKCQkJCQkJCXRob3VnaHRzOiAyNDcKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqQW5hbHl6aW5nIGEgUmVjZW50IE5ldHdvcmsgRHJpdmVyIFBhdGNoKioKCk9rYXksIHNvIEkmIzM5O20gbG9va2luZyBhdCB0aGlzIHBhdGNoIGZvciBgZHJpdmVycy9uZXQvZXRoZXJuZXQvYW1kL3Bkc19jb3JlL21haW4uY2AuIEl0IHNlZW1zIHRoZXkmIzM5O3ZlIGFkZGVkIGEgY2hlY2sgYWZ0ZXIgYGNyZWF0ZV9zaW5nbGV0aHJlYWRfd29ya3F1ZXVlKHdxX25hbWUpYCB0byBzZWUgaWYgYHBkc2MtJmd0O3dxYCBpcyBOVUxMLiBNYWtlcyBzZW5zZSwgbWVtb3J5IGFsbG9jYXRpb24gZmFpbHVyZSBpcyBhIGNvbW1vbiBwcm9ibGVtLiBJZiBpdCAqaXMqIE5VTEwsIGl0IGJhaWxzIG91dCB3aXRoIGAtRU5PTUVNYCBhbmQganVtcHMgdG8gYGVycl9vdXRfdW5tYXBfYmFyc2AsIHdoaWNoIGlzIHN0YW5kYXJkIGVycm9yIGhhbmRsaW5nLiBUaGV5JiMzOTt2ZSBhbHNvIHJlamlnZ2VyZWQgdGhlIGVycm9yIGhhbmRsaW5nIHBhdGggaXRzZWxmLiBgZXJyX291dF91bm1hcF9iYXJzYCBpcyBub3cgcGxhY2VkICphZnRlciogYHRpbWVyX3NodXRkb3duX3N5bmNgLCBgZGVzdHJveV93b3JrcXVldWVgLCBgbXV0ZXhfZGVzdHJveWAsIGFuZCBgcGNpX2ZyZWVfaXJxX3ZlY3RvcnNgLCBhbmQgaXQmIzM5O3MgZ290IGEgbmV3IGxhYmVsLCBgZXJyX291dF9zaHV0ZG93bl90aW1lcmAuIFRoYXQmIzM5O3MgYSByZWFzb25hYmxlIHJlb3JkZXJpbmcgZm9yIHJlc291cmNlIGNsZWFudXAgdG8gZW5zdXJlIGEgY2xlYW4gZXhpdC4KCkJ1dCB3YWl0IGEgbWludXRlLCB0aGlzIGlzIGEgUENJIGRyaXZlciBzcGVjaWZpY2FsbHkgZm9yIHRoZSBBTUQgUERTIENvcmUuIFRoYXQgdGhyb3dzIHVwIGEgcmVkIGZsYWcgaW4gbXkgbWluZC4gSG93IGxpa2VseSBpcyB0aGlzIGNvZGUgcGF0aCB0byBhY3R1YWxseSBiZSByZWFjaGVkIGluIGEgdHlwaWNhbCBlbnZpcm9ubWVudCwgbGlrZSBRRU1VIG9yIEdDRT8gVHlwaWNhbGx5LCBkcml2ZXJzIGZvciBzcGVjaWZpYyBoYXJkd2FyZSBjb21wb25lbnRzLCBlc3BlY2lhbGx5IFBDSSBkcml2ZXJzLCBhcmVuJiMzOTt0IGRpcmVjdGx5IGV4ZXJjaXNhYmxlIHVubGVzcyB0aGUgaGFyZHdhcmUgaXMgZWl0aGVyIGVtdWxhdGVkIG9yIHBhc3NlZCB0aHJvdWdoIHRvIGEgdmlydHVhbCBtYWNoaW5lLiBJIG5lZWQgdG8gZmlndXJlIG91dCBpZiB0aGVyZSYjMzk7cyBhbnkgZW11bGF0aW9uIGZvciB0aGlzIEFNRCBQRFMgQ29yZSBhbnl3aGVyZS4gSSYjMzk7bGwgbmVlZCB0byBkaWcgaW50byB0aGUga2VybmVsIHNvdXJjZSBhbmQgc2VhcmNoIGZvciBgUERTX0NPUkVfRFJWX05BTUVgIG9yIGp1c3QgYHBkc19jb3JlYCB0byBzZWUgd2hhdCBJIGNhbiBmaW5kLiBVbmRlcnN0YW5kaW5nIHRoZSBjb250ZXh0IG9mIHdoZXJlIHRoaXMgZHJpdmVyIGlzIHVzZWQgaXMgY3JpdGljYWwgZm9yIHVuZGVyc3RhbmRpbmcgdGhlIHZhbGlkaXR5IG9mIHRoaXMgcGF0Y2ggYW5kIGhvdyB0byB0ZXN0IGl0LgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjQvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzE1IDA3OjI2PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O1BEU19DT1JFX0RSVl9OQU1FJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvZXRoZXJuZXQvYW1kL3Bkc19jb3JlLyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtkcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQvcGRzX2NvcmUvYXV4YnVzLmM9MTk0PWludCBwZHNjX2F1eGJ1c19kZXZfYWRkKHN0cnVjdCBwZHNjICpjZiwgc3RydWN0IHBkc2MgKnBmLFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC9wZHNfY29yZS9hdXhidXMuYy0yMzYtXHRzbnByaW50ZihkZXZuYW1lLCBzaXplb2YoZGV2bmFtZSksIFwmIzM0OyVzLiVzLiVkXCYjMzQ7LFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYW1kL3Bkc19jb3JlL2F1eGJ1cy5jOjIzNzpcdFx0IFBEU19DT1JFX0RSVl9OQU1FLCBwZi1cdTAwM2V2aWZ0eXBlX3N0YXR1c1t2dF0ubmFtZSwgY2YtXHUwMDNldWlkKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC9wZHNfY29yZS9hdXhidXMuYy0yMzgtXHRjbGllbnRfaWQgPSBwZHNfY2xpZW50X3JlZ2lzdGVyKHBmLCBkZXZuYW1lKTtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQvcGRzX2NvcmUvY29yZS5jPTExNj1zdGF0aWMgaW50IHBkc2NfcWNxX2ludHJfYWxsb2Moc3RydWN0IHBkc2MgKnBkc2MsIHN0cnVjdCBwZHNjX3FjcSAqcWNxKVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC9wZHNfY29yZS9jb3JlLmMtMTI2LVx0c25wcmludGYobmFtZSwgc2l6ZW9mKG5hbWUpLCBcJiMzNDslcy0lZC0lc1wmIzM0OyxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC9wZHNfY29yZS9jb3JlLmM6MTI3Olx0XHQgUERTX0NPUkVfRFJWX05BTUUsIHBkc2MtXHUwMDNlcGRldi1cdTAwM2VidXMtXHUwMDNlbnVtYmVyLCBxY3EtXHUwMDNlcS5uYW1lKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC9wZHNfY29yZS9jb3JlLmMtMTI4LVx0aW5kZXggPSBwZHNjX2ludHJfYWxsb2MocGRzYywgbmFtZSwgcGRzY19hZG1pbnFfaXNyLCBwZHNjKTtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQvcGRzX2NvcmUvZGVidWdmcy5jPTEwPXZvaWQgcGRzY19kZWJ1Z2ZzX2NyZWF0ZSh2b2lkKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYW1kL3Bkc19jb3JlL2RlYnVnZnMuYy0xMS17XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQvcGRzX2NvcmUvZGVidWdmcy5jOjEyOlx0cGRzY19kaXIgPSBkZWJ1Z2ZzX2NyZWF0ZV9kaXIoUERTX0NPUkVfRFJWX05BTUUsIE5VTEwpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYW1kL3Bkc19jb3JlL2RlYnVnZnMuYy0xMy19XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYW1kL3Bkc19jb3JlL2Rldi5jPTI3Nj1zdGF0aWMgaW50IHBkc2NfaWRlbnRpZnkoc3RydWN0IHBkc2MgKnBkc2MpXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYW1kL3Bkc19jb3JlL2Rldi5jLTI4NS1cdG4gPSBzbnByaW50ZihkcnYuZHJpdmVyX3Zlcl9zdHIsIHNpemVvZihkcnYuZHJpdmVyX3Zlcl9zdHIpLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYW1kL3Bkc19jb3JlL2Rldi5jOjI4NjpcdFx0ICAgICBcJiMzNDslcyAlc1wmIzM0OywgUERTX0NPUkVfRFJWX05BTUUsIHV0c25hbWUoKS1cdTAwM2VyZWxlYXNlKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC9wZHNfY29yZS9kZXYuYy0yODctXHRpZiAobiBcdTAwM2Ugc2l6ZW9mKGRydi5kcml2ZXJfdmVyX3N0cikpXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYW1kL3Bkc19jb3JlL21haW4uYz0yMTg9c3RhdGljIGludCBwZHNjX2luaXRfcGYoc3RydWN0IHBkc2MgKnBkc2MpXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYW1kL3Bkc19jb3JlL21haW4uYy0yMjYtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQvcGRzX2NvcmUvbWFpbi5jOjIyNzpcdGVyciA9IHBjaV9yZXF1ZXN0X3JlZ2lvbnMocGRzYy1cdTAwM2VwZGV2LCBQRFNfQ09SRV9EUlZfTkFNRSk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQvcGRzX2NvcmUvbWFpbi5jLTIyOC1cdGlmIChlcnIpIHtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQvcGRzX2NvcmUvbWFpbi5jLTIzOC1cdC8qIEdlbmVyYWwgd29ya3F1ZXVlIGFuZCB0aW1lciwgYnV0IGRvbiYjMzk7dCBzdGFydCB0aW1lciB5ZXQgKi9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC9wZHNfY29yZS9tYWluLmM6MjM5Olx0c25wcmludGYod3FfbmFtZSwgc2l6ZW9mKHdxX25hbWUpLCBcJiMzNDslcy4lZFwmIzM0OywgUERTX0NPUkVfRFJWX05BTUUsIHBkc2MtXHUwMDNldWlkKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC9wZHNfY29yZS9tYWluLmMtMjQwLVx0cGRzYy1cdTAwM2V3cSA9IGNyZWF0ZV9zaW5nbGV0aHJlYWRfd29ya3F1ZXVlKHdxX25hbWUpO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC9wZHNfY29yZS9tYWluLmM9NTA5PXN0YXRpYyB2b2lkIHBkc2NfcmVzZXRfZG9uZShzdHJ1Y3QgcGNpX2RldiAqcGRldilcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQvcGRzX2NvcmUvbWFpbi5jLTUyNC1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC9wZHNfY29yZS9tYWluLmM6NTI1Olx0XHRlcnIgPSBwY2lfcmVxdWVzdF9yZWdpb25zKHBkc2MtXHUwMDNlcGRldiwgUERTX0NPUkVfRFJWX05BTUUpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYW1kL3Bkc19jb3JlL21haW4uYy01MjYtXHRcdGlmIChlcnIpIHtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQvcGRzX2NvcmUvbWFpbi5jPTU4Mj1zdGF0aWMgc3RydWN0IHBjaV9kcml2ZXIgcGRzY19kcml2ZXIgPSB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQvcGRzX2NvcmUvbWFpbi5jOjU4MzpcdC5uYW1lID0gUERTX0NPUkVfRFJWX05BTUUsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQvcGRzX2NvcmUvbWFpbi5jLTU4NC1cdC5pZF90YWJsZSA9IHBkc2NfaWRfdGFibGUsXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYW1kL3Bkc19jb3JlL21haW4uYz01OTc9c3RhdGljIGludCBfX2luaXQgcGRzY19pbml0X21vZHVsZSh2b2lkKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYW1kL3Bkc19jb3JlL21haW4uYy01OTgte1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYW1kL3Bkc19jb3JlL21haW4uYzo1OTk6XHRpZiAoc3RyY21wKEtCVUlMRF9NT0ROQU1FLCBQRFNfQ09SRV9EUlZfTkFNRSkpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQvcGRzX2NvcmUvbWFpbi5jLTYwMC1cdFx0cmV0dXJuIC1FSU5WQUw7XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+NS8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMTUgMDc6MjY8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogNDM1MAoJCQkJCQkJb3V0cHV0OiAyOQoJCQkJCQkJdGhvdWdodHM6IDQ4CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKkludmVzdGlnYXRpbmcgUENJIERyaXZlciBSZWFjaGFiaWxpdHkgaW4gU3l6a2FsbGVyKioKCk9rYXksIHNvIEkmIzM5O20gbG9va2luZyBhdCB0aGlzIGRyaXZlciBhbmQgaXQmIzM5O3MgYSBQQ0kgZHJpdmVyLiBUaGUgaW1tZWRpYXRlIHF1ZXN0aW9uIGluIG15IG1pbmQgaXMsICYjMzQ7SG93IGNhbiBJIGFjdHVhbGx5IHRyaWdnZXIgdGhpcyB0aGluZyB3aXRoaW4gU3l6a2FsbGVyPyYjMzQ7IEkga25vdyBmcm9tIHBhc3QgZXhwZXJpZW5jZSB0aGF0IFN5emthbGxlciBkb2VzbiYjMzk7dCBoYXZlIGV4cGxpY2l0IGVtdWxhdGlvbiBvZiB0aGUgQU1EIFBEUyBDb3JlIGhhcmR3YXJlLiBUaGF0JiMzOTtzIGEga2V5IHJvYWRibG9jay4gTXkgbmV4dCBzdGVwIGlzIHRvIHF1aWNrbHkgc2VlIGlmIHRoZXJlIGFyZSBhbnkgZXhpc3RpbmcgZW11bGF0aW9ucyBvciBkdW1teSBkZXZpY2VzIHRoYXQgbWlnaHQgYWxsb3cgbWUgdG8gaW50ZXJhY3Qgd2l0aCBpdCBpbmRpcmVjdGx5LiBQZXJoYXBzIHRoZXJlJiMzOTtzIGEgZ2VuZXJpYyBQQ0kgZGV2aWNlIGVtdWxhdGlvbiBvciBzb21lIG90aGVyIHdvcmthcm91bmQgSSBjYW4gbGV2ZXJhZ2UuIEkgbmVlZCB0byBmaWd1cmUgb3V0IHRoZSBwYXRoIHRvIGdldCB0aGlzIGRyaXZlciBleGVyY2lzZWQgdGhyb3VnaCB0aGUgZnV6emVyLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjYvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzE1IDA3OjI2PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O1BEU19DT1JFX0RSVl9OQU1FJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7JiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2RyaXZlcnMvZndjdGwvcGRzL21haW4uYz01MTk9c3RhdGljIGNvbnN0IHN0cnVjdCBhdXhpbGlhcnlfZGV2aWNlX2lkIHBkc2ZjX2lkX3RhYmxlW10gPSB7XG5kcml2ZXJzL2Z3Y3RsL3Bkcy9tYWluLmM6NTIwOlx0ey5uYW1lID0gUERTX0NPUkVfRFJWX05BTUUgXCYjMzQ7LlwmIzM0OyBQRFNfREVWX1RZUEVfRldDVExfU1RSIH0sXG5kcml2ZXJzL2Z3Y3RsL3Bkcy9tYWluLmMtNTIxLVx0e31cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQvcGRzX2NvcmUvYXV4YnVzLmM9MTk0PWludCBwZHNjX2F1eGJ1c19kZXZfYWRkKHN0cnVjdCBwZHNjICpjZiwgc3RydWN0IHBkc2MgKnBmLFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC9wZHNfY29yZS9hdXhidXMuYy0yMzYtXHRzbnByaW50ZihkZXZuYW1lLCBzaXplb2YoZGV2bmFtZSksIFwmIzM0OyVzLiVzLiVkXCYjMzQ7LFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYW1kL3Bkc19jb3JlL2F1eGJ1cy5jOjIzNzpcdFx0IFBEU19DT1JFX0RSVl9OQU1FLCBwZi1cdTAwM2V2aWZ0eXBlX3N0YXR1c1t2dF0ubmFtZSwgY2YtXHUwMDNldWlkKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC9wZHNfY29yZS9hdXhidXMuYy0yMzgtXHRjbGllbnRfaWQgPSBwZHNfY2xpZW50X3JlZ2lzdGVyKHBmLCBkZXZuYW1lKTtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQvcGRzX2NvcmUvY29yZS5jPTExNj1zdGF0aWMgaW50IHBkc2NfcWNxX2ludHJfYWxsb2Moc3RydWN0IHBkc2MgKnBkc2MsIHN0cnVjdCBwZHNjX3FjcSAqcWNxKVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC9wZHNfY29yZS9jb3JlLmMtMTI2LVx0c25wcmludGYobmFtZSwgc2l6ZW9mKG5hbWUpLCBcJiMzNDslcy0lZC0lc1wmIzM0OyxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC9wZHNfY29yZS9jb3JlLmM6MTI3Olx0XHQgUERTX0NPUkVfRFJWX05BTUUsIHBkc2MtXHUwMDNlcGRldi1cdTAwM2VidXMtXHUwMDNlbnVtYmVyLCBxY3EtXHUwMDNlcS5uYW1lKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC9wZHNfY29yZS9jb3JlLmMtMTI4LVx0aW5kZXggPSBwZHNjX2ludHJfYWxsb2MocGRzYywgbmFtZSwgcGRzY19hZG1pbnFfaXNyLCBwZHNjKTtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQvcGRzX2NvcmUvZGVidWdmcy5jPTEwPXZvaWQgcGRzY19kZWJ1Z2ZzX2NyZWF0ZSh2b2lkKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYW1kL3Bkc19jb3JlL2RlYnVnZnMuYy0xMS17XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQvcGRzX2NvcmUvZGVidWdmcy5jOjEyOlx0cGRzY19kaXIgPSBkZWJ1Z2ZzX2NyZWF0ZV9kaXIoUERTX0NPUkVfRFJWX05BTUUsIE5VTEwpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYW1kL3Bkc19jb3JlL2RlYnVnZnMuYy0xMy19XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYW1kL3Bkc19jb3JlL2Rldi5jPTI3Nj1zdGF0aWMgaW50IHBkc2NfaWRlbnRpZnkoc3RydWN0IHBkc2MgKnBkc2MpXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYW1kL3Bkc19jb3JlL2Rldi5jLTI4NS1cdG4gPSBzbnByaW50ZihkcnYuZHJpdmVyX3Zlcl9zdHIsIHNpemVvZihkcnYuZHJpdmVyX3Zlcl9zdHIpLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYW1kL3Bkc19jb3JlL2Rldi5jOjI4NjpcdFx0ICAgICBcJiMzNDslcyAlc1wmIzM0OywgUERTX0NPUkVfRFJWX05BTUUsIHV0c25hbWUoKS1cdTAwM2VyZWxlYXNlKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC9wZHNfY29yZS9kZXYuYy0yODctXHRpZiAobiBcdTAwM2Ugc2l6ZW9mKGRydi5kcml2ZXJfdmVyX3N0cikpXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYW1kL3Bkc19jb3JlL21haW4uYz0yMTg9c3RhdGljIGludCBwZHNjX2luaXRfcGYoc3RydWN0IHBkc2MgKnBkc2MpXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYW1kL3Bkc19jb3JlL21haW4uYy0yMjYtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQvcGRzX2NvcmUvbWFpbi5jOjIyNzpcdGVyciA9IHBjaV9yZXF1ZXN0X3JlZ2lvbnMocGRzYy1cdTAwM2VwZGV2LCBQRFNfQ09SRV9EUlZfTkFNRSk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQvcGRzX2NvcmUvbWFpbi5jLTIyOC1cdGlmIChlcnIpIHtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQvcGRzX2NvcmUvbWFpbi5jLTIzOC1cdC8qIEdlbmVyYWwgd29ya3F1ZXVlIGFuZCB0aW1lciwgYnV0IGRvbiYjMzk7dCBzdGFydCB0aW1lciB5ZXQgKi9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC9wZHNfY29yZS9tYWluLmM6MjM5Olx0c25wcmludGYod3FfbmFtZSwgc2l6ZW9mKHdxX25hbWUpLCBcJiMzNDslcy4lZFwmIzM0OywgUERTX0NPUkVfRFJWX05BTUUsIHBkc2MtXHUwMDNldWlkKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC9wZHNfY29yZS9tYWluLmMtMjQwLVx0cGRzYy1cdTAwM2V3cSA9IGNyZWF0ZV9zaW5nbGV0aHJlYWRfd29ya3F1ZXVlKHdxX25hbWUpO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC9wZHNfY29yZS9tYWluLmM9NTA5PXN0YXRpYyB2b2lkIHBkc2NfcmVzZXRfZG9uZShzdHJ1Y3QgcGNpX2RldiAqcGRldilcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQvcGRzX2NvcmUvbWFpbi5jLTUyNC1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC9wZHNfY29yZS9tYWluLmM6NTI1Olx0XHRlcnIgPSBwY2lfcmVxdWVzdF9yZWdpb25zKHBkc2MtXHUwMDNlcGRldiwgUERTX0NPUkVfRFJWX05BTUUpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYW1kL3Bkc19jb3JlL21haW4uYy01MjYtXHRcdGlmIChlcnIpIHtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQvcGRzX2NvcmUvbWFpbi5jPTU4Mj1zdGF0aWMgc3RydWN0IHBjaV9kcml2ZXIgcGRzY19kcml2ZXIgPSB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQvcGRzX2NvcmUvbWFpbi5jOjU4MzpcdC5uYW1lID0gUERTX0NPUkVfRFJWX05BTUUsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQvcGRzX2NvcmUvbWFpbi5jLTU4NC1cdC5pZF90YWJsZSA9IHBkc2NfaWRfdGFibGUsXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYW1kL3Bkc19jb3JlL21haW4uYz01OTc9c3RhdGljIGludCBfX2luaXQgcGRzY19pbml0X21vZHVsZSh2b2lkKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYW1kL3Bkc19jb3JlL21haW4uYy01OTgte1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYW1kL3Bkc19jb3JlL21haW4uYzo1OTk6XHRpZiAoc3RyY21wKEtCVUlMRF9NT0ROQU1FLCBQRFNfQ09SRV9EUlZfTkFNRSkpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQvcGRzX2NvcmUvbWFpbi5jLTYwMC1cdFx0cmV0dXJuIC1FSU5WQUw7XG4tLVxuaW5jbHVkZS9saW51eC9wZHMvcGRzX2NvbW1vbi5oLTgtXG5pbmNsdWRlL2xpbnV4L3Bkcy9wZHNfY29tbW9uLmg6OTojZGVmaW5lIFBEU19DT1JFX0RSVl9OQU1FXHRcdFx0XCYjMzQ7cGRzX2NvcmVcJiMzNDtcbmluY2x1ZGUvbGludXgvcGRzL3Bkc19jb21tb24uaC0xMC1cbi0tXG5pbmNsdWRlL2xpbnV4L3Bkcy9wZHNfY29tbW9uLmg9MjU9ZW51bSBwZHNfY29yZV92aWZfdHlwZXMge1xuLS1cbmluY2x1ZGUvbGludXgvcGRzL3Bkc19jb21tb24uaC00NS1cbmluY2x1ZGUvbGludXgvcGRzL3Bkc19jb21tb24uaDo0NjojZGVmaW5lIFBEU19WRFBBX0RFVl9OQU1FXHRQRFNfQ09SRV9EUlZfTkFNRSBcJiMzNDsuXCYjMzQ7IFBEU19ERVZfVFlQRV9WRFBBX1NUUlxuaW5jbHVkZS9saW51eC9wZHMvcGRzX2NvbW1vbi5oOjQ3OiNkZWZpbmUgUERTX1ZGSU9fTE1fREVWX05BTUVcdFBEU19DT1JFX0RSVl9OQU1FIFwmIzM0Oy5cJiMzNDsgUERTX0RFVl9UWVBFX0xNX1NUUiBcJiMzNDsuXCYjMzQ7IFBEU19ERVZfVFlQRV9WRklPX1NUUlxuaW5jbHVkZS9saW51eC9wZHMvcGRzX2NvbW1vbi5oLTQ4LVxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjcvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzE1IDA3OjI2PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDYyOTAKCQkJCQkJCW91dHB1dDogNDAKCQkJCQkJCXRob3VnaHRzOiAxMDcKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqQW5hbHl6aW5nIHRoZSBBTUQgUERTIENvcmUgUENJIERyaXZlciBpbiBTeXprYWxsZXIqKgoKT2theSwgc28gSSYjMzk7bSBsb29raW5nIGF0IHRoaXMgUENJIGRyaXZlciBmb3IgdGhlIEFNRCBQRFMgQ29yZS4gVGhlIGtleSBxdWVzdGlvbiBpcywgY2FuIEkgZXZlbiBnZXQgdG8gdGhpcyB0aGluZyB3aXRoIFN5emthbGxlcj8gVGhlIGltbWVkaWF0ZSBwcm9ibGVtIGlzIFN5emthbGxlciBkb2VzbiYjMzk7dCBhY3R1YWxseSBlbXVsYXRlIHRoZSBBTUQgUERTIENvcmUgaGFyZHdhcmUgZGlyZWN0bHksIHRoYXQmIzM5O3MgYSBodXJkbGUgcmlnaHQgb2ZmIHRoZSBiYXQuIEJ1dCB3YWl0LCB0aGVyZSYjMzk7cyBhIGdsaW1tZXIgb2YgaG9wZS4gSSBrbm93IFN5emthbGxlciBoYXMgdGhpcyB2aXJ0dWFsIFBDSSBkZXZpY2UsIGB2aGNpYC4gSG93ZXZlciwgSSBrbm93IGZyb20gZXhwZXJpZW5jZSB0aGF0IGB2aGNpYCBpc24mIzM5O3QgZGVzaWduZWQgdG8gc2ltdWxhdGUgKnNwZWNpZmljKiBoYXJkd2FyZS4gSXQmIzM5O3MgcmVhbGx5IG1vcmUgb2YgYSBnZW5lcmFsIFBDSSBkZXZpY2UgdW5sZXNzIHRoZXJlJiMzOTtzIGEgKmRlZGljYXRlZCogZHJpdmVyIHRoYXQmIzM5O3MgaW1wbGVtZW50ZWQgc3BlY2lmaWNhbGx5IGZvciB0aGF0IGhhcmR3YXJlLCBvciBpZiBpdCYjMzk7cyBhIGdlbmVyaWMgZGV2aWNlIGxpa2UgdmlydGlvLiBTbywgdGhhdCBsZWF2ZXMgbWUgd2l0aCB0aGUgbWFpbiBxdWVzdGlvbjogY2FuIHRoaXMgZHJpdmVyIGV2ZW4gKmJlKiByZWFjaGVkIHZpYSBgdmhjaWA/IFRoZSBuZXh0IHRoaW5nIHRvIGNoZWNrIGlzIGlmIHRoZSBpbml0IGZ1bmN0aW9uLCBgcGRzY19pbml0X3BmYCwgaXMgY2FsbGVkIGZyb20gdGhlIHByb2JlIGZ1bmN0aW9uLiBUaGF0JiMzOTtzIGEgZ29vZCBzdGFydGluZyBwb2ludCB0byBzZWUgaG93IHJlYWNoYWJsZSB0aGlzIGlzLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjgvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzE1IDA3OjI2PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O3Bkc2NfaW5pdF9wZiYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC9wZHNfY29yZS8mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvZXRoZXJuZXQvYW1kL3Bkc19jb3JlL21haW4uYz0yMDg9c3RhdGljIGNvbnN0IHN0cnVjdCBkZXZsaW5rX3BhcmFtIHBkc2NfZGxfcGFyYW1zW10gPSB7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYW1kL3Bkc19jb3JlL21haW4uYy0yMTctXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQvcGRzX2NvcmUvbWFpbi5jOjIxODpzdGF0aWMgaW50IHBkc2NfaW5pdF9wZihzdHJ1Y3QgcGRzYyAqcGRzYylcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC9wZHNfY29yZS9tYWluLmMtMjE5LXtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQvcGRzX2NvcmUvbWFpbi5jPTMzNz1zdGF0aWMgaW50IHBkc2NfcHJvYmUoc3RydWN0IHBjaV9kZXYgKnBkZXYsIGNvbnN0IHN0cnVjdCBwY2lfZGV2aWNlX2lkICplbnQpXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYW1kL3Bkc19jb3JlL21haW4uYy0zODItXHRpZiAoaXNfcGYpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQvcGRzX2NvcmUvbWFpbi5jOjM4MzpcdFx0ZXJyID0gcGRzY19pbml0X3BmKHBkc2MpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYW1kL3Bkc19jb3JlL21haW4uYy0zODQtXHRlbHNlXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+OS8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMTUgMDc6MjY8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogNjk1MwoJCQkJCQkJb3V0cHV0OiAzMwoJCQkJCQkJdGhvdWdodHM6IDEwMAoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipBbmFseXppbmcgdGhlIEZlYXNpYmlsaXR5IG9mIEZ1enppbmcgYSBQQ0kgRHJpdmVyKioKCk9rYXksIHNvIEkmIzM5O20gbG9va2luZyBhdCB0aGlzIGNvZGUgcGF0aCwgYW5kIGl0JiMzOTtzIGJlaW5nIGNhbGxlZCBmcm9tIGBwZHNjX3Byb2JlYC4gUmlnaHQgb2ZmIHRoZSBiYXQsIG15IGV4cGVydCBpbnR1aXRpb24gaXMgdGVsbGluZyBtZSB0aGlzIGlzIGEgaGFyZHdhcmUtc3BlY2lmaWMgUENJIGRyaXZlci4gVGhpcyBtZWFucyB0aGF0LCByZWFsaXN0aWNhbGx5LCBJJiMzOTttIG5vdCBnb2luZyB0byBzZWUgdGhpcyBjb2RlIGV4ZWN1dGVkIGluIGEgdmlydHVhbGl6ZWQgZW52aXJvbm1lbnQgbGlrZSBHQ0Ugb3IgUUVNVSB1bmxlc3MgSSYjMzk7dmUgZ290IHRoZSBleGFjdCBoYXJkd2FyZSBpbiBwbGFjZS4gVGhlcmVmb3JlLCBteSBpbml0aWFsIGFzc2Vzc21lbnQgaXMgdGhhdCBgV29ydGhGdXp6aW5nYCBzaG91bGQgZXZhbHVhdGUgdG8gZmFsc2UuIAoKQnV0IGhvbGQgb24gYSBzZWNvbmQuLi4gbGV0JiMzOTtzIG5vdCBiZSB0b28gaGFzdHkuIE15IGV4cGVyaWVuY2UgaGFzIHRhdWdodCBtZSB0byBjb25zaWRlciBhbGwgcG9zc2liaWxpdGllcy4gSXMgdGhlcmUgYSBjaGFuY2UgdGhpcyBjYW4gYmUgcmVhY2hlZCB0aHJvdWdoIGEgZHVtbXkgZGV2aWNlIG9yIHNvbWUga2luZCBvZiBzb2Z0d2FyZSBlbXVsYXRpb24/IFdoYXQgYWJvdXQgYGh3c2ltYCBvciBgdmhjaWAgZm9yIGBwZHNfY29yZWA/IEl0JiMzOTtzIHdvcnRoIGEgcXVpY2sgY2hlY2sgdG8gcnVsZSB0aG9zZSBvdXQgYmVmb3JlIEkgbWFrZSBhIGZpbmFsIGRldGVybWluYXRpb24uIEkgbmVlZCB0byBmdWxseSB1bmRlcnN0YW5kIHRoZSBhY2Nlc3NpYmlsaXR5IG9mIHRoaXMgY29kZSBiZWZvcmUgbWFraW5nIGEgY2FsbC4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMC8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMTUgMDc6MjY8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7cGRzX2NvcmUmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtkcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQvJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC9LY29uZmlnPTE2OT1jb25maWcgUERTX0NPUkVcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQvS2NvbmZpZy0xNzctXHQgIGZvdW5kIGluXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQvS2NvbmZpZzoxNzg6XHQgIFx1MDAzY2ZpbGU6RG9jdW1lbnRhdGlvbi9uZXR3b3JraW5nL2RldmljZV9kcml2ZXJzL2V0aGVybmV0L2FtZC9wZHNfY29yZS5yc3RcdTAwM2UuXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQvS2NvbmZpZy0xNzktXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQvS2NvbmZpZy0xODAtXHQgIFRvIGNvbXBpbGUgdGhpcyBkcml2ZXIgYXMgYSBtb2R1bGUsIGNob29zZSBNIGhlcmUuIFRoZSBtb2R1bGVcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC9LY29uZmlnOjE4MTpcdCAgd2lsbCBiZSBjYWxsZWQgcGRzX2NvcmUuXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQvS2NvbmZpZy0xODItXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYW1kL01ha2VmaWxlPTE3PW9iai0kKENPTkZJR19BTURfWEdCRSkgJiM0Mzs9IHhnYmUvXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQvTWFrZWZpbGU6MTg6b2JqLSQoQ09ORklHX1BEU19DT1JFKSAmIzQzOz0gcGRzX2NvcmUvXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYW1kL3Bkc19jb3JlL01ha2VmaWxlLTMtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQvcGRzX2NvcmUvTWFrZWZpbGU6NDpvYmotJChDT05GSUdfUERTX0NPUkUpIDo9IHBkc19jb3JlLm9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC9wZHNfY29yZS9NYWtlZmlsZS01LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYW1kL3Bkc19jb3JlL01ha2VmaWxlOjY6cGRzX2NvcmUteSA6PSBtYWluLm8gXFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC9wZHNfY29yZS9NYWtlZmlsZS03LVx0ICAgICAgZGV2bGluay5vIFxcXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYW1kL3Bkc19jb3JlL2FkbWlucS5jPTg9c3RhdGljIGludCBwZHNjX3Byb2Nlc3Nfbm90aWZ5cShzdHJ1Y3QgcGRzY19xY3EgKnFjcSlcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC9wZHNfY29yZS9hZG1pbnEuYy05LXtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC9wZHNfY29yZS9hZG1pbnEuYzoxMDpcdHVuaW9uIHBkc19jb3JlX25vdGlmeXFfY29tcCAqY29tcDtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC9wZHNfY29yZS9hZG1pbnEuYy0xMS1cdHN0cnVjdCBwZHNjICpwZHNjID0gcWNxLVx1MDAzZXBkc2M7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYW1kL3Bkc19jb3JlL2FkbWlucS5jPTcwPXZvaWQgcGRzY19wcm9jZXNzX2FkbWlucShzdHJ1Y3QgcGRzY19xY3EgKnFjcSlcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC9wZHNfY29yZS9hZG1pbnEuYy03MS17XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQvcGRzX2NvcmUvYWRtaW5xLmM6NzI6XHR1bmlvbiBwZHNfY29yZV9hZG1pbnFfY29tcCAqY29tcDtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC9wZHNfY29yZS9hZG1pbnEuYy03My1cdHN0cnVjdCBwZHNjX3F1ZXVlICpxID0gXHUwMDI2cWNxLVx1MDAzZXE7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYW1kL3Bkc19jb3JlL2FkbWlucS5jLTEyNC1cdC8qIFJldHVybiB0aGUgaW50ZXJydXB0IGNyZWRpdHMsIG9uZSBmb3IgZWFjaCBjb21wbGV0aW9uICovXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQvcGRzX2NvcmUvYWRtaW5xLmM6MTI1Olx0cGRzX2NvcmVfaW50cl9jcmVkaXRzKFx1MDAyNnBkc2MtXHUwMDNlaW50cl9jdHJsW3FjcS1cdTAwM2VpbnR4XSxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC9wZHNfY29yZS9hZG1pbnEuYy0xMjYtXHRcdFx0ICAgICAgbnFfd29yayAmIzQzOyBhcV93b3JrLFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC9wZHNfY29yZS9hZG1pbnEuYz0xNTc9c3RhdGljIGludCBfX3Bkc2NfYWRtaW5xX3Bvc3Qoc3RydWN0IHBkc2MgKnBkc2MsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQvcGRzX2NvcmUvYWRtaW5xLmMtMTU4LVx0XHRcdCAgICAgIHN0cnVjdCBwZHNjX3FjcSAqcWNxLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYW1kL3Bkc19jb3JlL2FkbWlucS5jOjE1OTpcdFx0XHQgICAgICB1bmlvbiBwZHNfY29yZV9hZG1pbnFfY21kICpjbWQsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQvcGRzX2NvcmUvYWRtaW5xLmM6MTYwOlx0XHRcdCAgICAgIHVuaW9uIHBkc19jb3JlX2FkbWlucV9jb21wICpjb21wKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYW1kL3Bkc19jb3JlL2FkbWlucS5jLTE2MS17XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYW1kL3Bkc19jb3JlL2FkbWlucS5jLTIxMy1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC9wZHNfY29yZS9hZG1pbnEuYzoyMTQ6XHRwZHNfY29yZV9kYmVsbF9yaW5nKHBkc2MtXHUwMDNla2Vybl9kYnBhZ2UsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQvcGRzX2NvcmUvYWRtaW5xLmMtMjE1LVx0XHRcdCAgICBxLVx1MDAzZWh3X3R5cGUsIHEtXHUwMDNlZGJ2YWwgfCBxLVx1MDAzZWhlYWRfaWR4KTtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQvcGRzX2NvcmUvYWRtaW5xLmM9MjIzPWludCBwZHNjX2FkbWlucV9wb3N0KHN0cnVjdCBwZHNjICpwZHNjLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYW1kL3Bkc19jb3JlL2FkbWlucS5jOjIyNDpcdFx0ICAgICB1bmlvbiBwZHNfY29yZV9hZG1pbnFfY21kICpjbWQsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQvcGRzX2NvcmUvYWRtaW5xLmM6MjI1Olx0XHQgICAgIHVuaW9uIHBkc19jb3JlX2FkbWlucV9jb21wICpjb21wLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYW1kL3Bkc19jb3JlL2FkbWlucS5jLTIyNi1cdFx0ICAgICBib29sIGZhc3RfcG9sbClcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQvcGRzX2NvcmUvYXV4YnVzLmMtMTEtICogQHBmOlx0XHRwdHIgdG8gdGhlIFBGIGRyaXZlciYjMzk7cyBwcml2YXRlIGRhdGEgc3RydWN0XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQvcGRzX2NvcmUvYXV4YnVzLmM6MTI6ICogQGRldm5hbWU6XHRuYW1lIHRoYXQgaW5jbHVkZXMgc2VydmljZSBpbnRvLCBlLmcuIHBkc19jb3JlLnZEUEFcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC9wZHNfY29yZS9hdXhidXMuYy0xMy0gKlxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC9wZHNfY29yZS9hdXhidXMuYz0xNz1pbnQgcGRzX2NsaWVudF9yZWdpc3RlcihzdHJ1Y3QgcGRzYyAqcGYsIGNoYXIgKmRldm5hbWUpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQvcGRzX2NvcmUvYXV4YnVzLmMtMTgte1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYW1kL3Bkc19jb3JlL2F1eGJ1cy5jOjE5Olx0dW5pb24gcGRzX2NvcmVfYWRtaW5xX2NvbXAgY29tcCA9IHt9O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYW1kL3Bkc19jb3JlL2F1eGJ1cy5jOjIwOlx0dW5pb24gcGRzX2NvcmVfYWRtaW5xX2NtZCBjbWQgPSB7fTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC9wZHNfY29yZS9hdXhidXMuYy0yMS1cdGludCBlcnI7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYW1kL3Bkc19jb3JlL2F1eGJ1cy5jPTU3PWludCBwZHNfY2xpZW50X3VucmVnaXN0ZXIoc3RydWN0IHBkc2MgKnBmLCB1MTYgY2xpZW50X2lkKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYW1kL3Bkc19jb3JlL2F1eGJ1cy5jLTU4LXtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC9wZHNfY29yZS9hdXhidXMuYzo1OTpcdHVuaW9uIHBkc19jb3JlX2FkbWlucV9jb21wIGNvbXAgPSB7fTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC9wZHNfY29yZS9hdXhidXMuYzo2MDpcdHVuaW9uIHBkc19jb3JlX2FkbWlucV9jbWQgY21kID0ge307XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQvcGRzX2NvcmUvYXV4YnVzLmMtNjEtXHRpbnQgZXJyO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC9wZHNfY29yZS9hdXhidXMuYz03Mz1FWFBPUlRfU1lNQk9MX0dQTChwZHNfY2xpZW50X3VucmVnaXN0ZXIpO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC9wZHNfY29yZS9hdXhidXMuYy04MC0gKiBAcmVzcDogICAgcHRyIHRvIGJ1ZmZlciB3aGVyZSBhbnN3ZXIgaXMgdG8gYmUgY29waWVkXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQvcGRzX2NvcmUvYXV4YnVzLmM6ODE6ICogQGZsYWdzOiAgIG9wdGlvbmFsIGZsYWdzIGZyb20gcGRzX2NvcmVfYWRtaW5xX2ZsYWdzXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQvcGRzX2NvcmUvYXV4YnVzLmMtODItICpcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQvcGRzX2NvcmUvYXV4YnVzLmMtODYtICogQ2xpZW50IHNlbmRzIHBvaW50ZXJzIHRvIHJlcXVlc3QgYW5kIHJlc3BvbnNlIGJ1ZmZlcnNcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC9wZHNfY29yZS9hdXhidXMuYzo4NzogKiBDb3JlIGNvcGllcyByZXF1ZXN0IGRhdGEgaW50byBwZHNfY29yZV9jbGllbnRfcmVxdWVzdF9jbWRcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC9wZHNfY29yZS9hdXhidXMuYy04OC0gKiBDb3JlIHNldHMgb3RoZXIgZmllbGRzIGFzIG5lZWRlZFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC9wZHNfY29yZS9hdXhidXMuYz05Mj1pbnQgcGRzX2NsaWVudF9hZG1pbnFfY21kKHN0cnVjdCBwZHNfYXV4aWxpYXJ5X2RldiAqcGFkZXYsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQvcGRzX2NvcmUvYXV4YnVzLmM6OTM6XHRcdFx0ICB1bmlvbiBwZHNfY29yZV9hZG1pbnFfY21kICpyZXEsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQvcGRzX2NvcmUvYXV4YnVzLmMtOTQtXHRcdFx0ICBzaXplX3QgcmVxX2xlbixcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC9wZHNfY29yZS9hdXhidXMuYzo5NTpcdFx0XHQgIHVuaW9uIHBkc19jb3JlX2FkbWlucV9jb21wICpyZXNwLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYW1kL3Bkc19jb3JlL2F1eGJ1cy5jLTk2LVx0XHRcdCAgdTY0IGZsYWdzKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYW1kL3Bkc19jb3JlL2F1eGJ1cy5jLTk3LXtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC9wZHNfY29yZS9hdXhidXMuYzo5ODpcdHVuaW9uIHBkc19jb3JlX2FkbWlucV9jbWQgY21kID0ge307XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQvcGRzX2NvcmUvYXV4YnVzLmMtOTktXHRzdHJ1Y3QgcGNpX2RldiAqcGZfcGRldjtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQvcGRzX2NvcmUvYXV4YnVzLmM9MTk0PWludCBwZHNjX2F1eGJ1c19kZXZfYWRkKHN0cnVjdCBwZHNjICpjZiwgc3RydWN0IHBkc2MgKnBmLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYW1kL3Bkc19jb3JlL2F1eGJ1cy5jOjE5NTpcdFx0XHRlbnVtIHBkc19jb3JlX3ZpZl90eXBlcyB2dCxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC9wZHNfY29yZS9hdXhidXMuYy0xOTYtXHRcdFx0c3RydWN0IHBkc19hdXhpbGlhcnlfZGV2ICoqcGRfcHRyKVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC9wZHNfY29yZS9jb3JlLmM9Mjg9dm9pZCBwZHNjX2ludHJfZnJlZShzdHJ1Y3QgcGRzYyAqcGRzYywgaW50IGluZGV4KVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC9wZHNfY29yZS9jb3JlLmMtNDItXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQvcGRzX2NvcmUvY29yZS5jOjQzOlx0cGRzX2NvcmVfaW50cl9tYXNrKFx1MDAyNnBkc2MtXHUwMDNlaW50cl9jdHJsW2luZGV4XSwgUERTX0NPUkVfSU5UUl9NQVNLX1NFVCk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQvcGRzX2NvcmUvY29yZS5jOjQ0Olx0cGRzX2NvcmVfaW50cl9jbGVhbihcdTAwMjZwZHNjLVx1MDAzZWludHJfY3RybFtpbmRleF0pO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYW1kL3Bkc19jb3JlL2NvcmUuYy00NS1cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQvcGRzX2NvcmUvY29yZS5jPTUxPWludCBwZHNjX2ludHJfYWxsb2Moc3RydWN0IHBkc2MgKnBkc2MsIGNoYXIgKm5hbWUsXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYW1kL3Bkc19jb3JlL2NvcmUuYy02Ny1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC9wZHNfY29yZS9jb3JlLmM6Njg6XHRwZHNfY29yZV9pbnRyX2NsZWFuX2ZsYWdzKFx1MDAyNnBkc2MtXHUwMDNlaW50cl9jdHJsW2luZGV4XSxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC9wZHNfY29yZS9jb3JlLmMtNjktXHRcdFx0XHQgIFBEU19DT1JFX0lOVFJfQ1JFRF9SRVNFVF9DT0FMRVNDRSk7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYW1kL3Bkc19jb3JlL2NvcmUuYy04Ni1cdC8qIEluaXQgdGhlIGRldmljZSYjMzk7cyBpbnRyIG1hc2sgKi9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC9wZHNfY29yZS9jb3JlLmM6ODc6XHRwZHNfY29yZV9pbnRyX2NsZWFuKFx1MDAyNnBkc2MtXHUwMDNlaW50cl9jdHJsW2luZGV4XSk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQvcGRzX2NvcmUvY29yZS5jOjg4Olx0cGRzX2NvcmVfaW50cl9tYXNrX2Fzc2VydChcdTAwMjZwZHNjLVx1MDAzZWludHJfY3RybFtpbmRleF0sIDEpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYW1kL3Bkc19jb3JlL2NvcmUuYzo4OTpcdHBkc19jb3JlX2ludHJfbWFzayhcdTAwMjZwZHNjLVx1MDAzZWludHJfY3RybFtpbmRleF0sIFBEU19DT1JFX0lOVFJfTUFTS19TRVQpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYW1kL3Bkc19jb3JlL2NvcmUuYy05MC1cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQvcGRzX2NvcmUvY29yZS5jPTMxNj1zdGF0aWMgaW50IHBkc2NfY29yZV9pbml0KHN0cnVjdCBwZHNjICpwZHNjKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYW1kL3Bkc19jb3JlL2NvcmUuYy0zMTcte1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYW1kL3Bkc19jb3JlL2NvcmUuYzozMTg6XHR1bmlvbiBwZHNfY29yZV9kZXZfY29tcCBjb21wID0ge307XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQvcGRzX2NvcmUvY29yZS5jOjMxOTpcdHVuaW9uIHBkc19jb3JlX2Rldl9jbWQgY21kID0ge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYW1kL3Bkc19jb3JlL2NvcmUuYy0zMjAtXHRcdC5pbml0Lm9wY29kZSA9IFBEU19DT1JFX0NNRF9JTklULFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYW1kL3Bkc19jb3JlL2NvcmUuYy0zMjEtXHR9O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYW1kL3Bkc19jb3JlL2NvcmUuYzozMjI6XHRzdHJ1Y3QgcGRzX2NvcmVfZGV2X2luaXRfZGF0YV9vdXQgY2lkbztcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC9wZHNfY29yZS9jb3JlLmM6MzIzOlx0c3RydWN0IHBkc19jb3JlX2Rldl9pbml0X2RhdGFfaW4gY2lkaTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC9wZHNfY29yZS9jb3JlLmMtMzI0LVx0dTMyIGRiaWRfY291bnQ7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYW1kL3Bkc19jb3JlL2NvcmUuYy0zMzMtXHRcdFx0ICAgICBudW1kZXNjcyxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC9wZHNfY29yZS9jb3JlLmM6MzM0Olx0XHRcdCAgICAgc2l6ZW9mKHVuaW9uIHBkc19jb3JlX2FkbWlucV9jbWQpLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYW1kL3Bkc19jb3JlL2NvcmUuYzozMzU6XHRcdFx0ICAgICBzaXplb2YodW5pb24gcGRzX2NvcmVfYWRtaW5xX2NvbXApLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYW1kL3Bkc19jb3JlL2NvcmUuYy0zMzYtXHRcdFx0ICAgICAwLCBcdTAwMjZwZHNjLVx1MDAzZWFkbWlucWNxKTtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQvcGRzX2NvcmUvY29yZS5jLTM0Mi1cdFx0XHQgICAgIFBEU0NfTk9USUZZUV9MRU5HVEgsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQvcGRzX2NvcmUvY29yZS5jOjM0MzpcdFx0XHQgICAgIHNpemVvZihzdHJ1Y3QgcGRzX2NvcmVfbm90aWZ5cV9jbWQpLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYW1kL3Bkc19jb3JlL2NvcmUuYzozNDQ6XHRcdFx0ICAgICBzaXplb2YodW5pb24gcGRzX2NvcmVfbm90aWZ5cV9jb21wKSxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC9wZHNfY29yZS9jb3JlLmMtMzQ1LVx0XHRcdCAgICAgMCwgXHUwMDI2cGRzYy1cdTAwM2Vub3RpZnlxY3EpO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC9wZHNfY29yZS9jb3JlLmM9NDE0PXN0YXRpYyBpbnQgcGRzY192aWZ0eXBlc19pbml0KHN0cnVjdCBwZHNjICpwZHNjKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYW1kL3Bkc19jb3JlL2NvcmUuYy00MTUte1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYW1kL3Bkc19jb3JlL2NvcmUuYzo0MTY6XHRlbnVtIHBkc19jb3JlX3ZpZl90eXBlcyB2dDtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC9wZHNfY29yZS9jb3JlLmMtNDE3LVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC9wZHNfY29yZS9jb3JlLmM9NDk5PWludCBwZHNjX3N0YXJ0KHN0cnVjdCBwZHNjICpwZHNjKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYW1kL3Bkc19jb3JlL2NvcmUuYy01MDAte1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYW1kL3Bkc19jb3JlL2NvcmUuYzo1MDE6XHRwZHNfY29yZV9pbnRyX21hc2soXHUwMDI2cGRzYy1cdTAwM2VpbnRyX2N0cmxbcGRzYy1cdTAwM2VhZG1pbnFjcS5pbnR4XSxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC9wZHNfY29yZS9jb3JlLmMtNTAyLVx0XHRcdCAgIFBEU19DT1JFX0lOVFJfTUFTS19DTEVBUik7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYW1kL3Bkc19jb3JlL2NvcmUuYz01MDc9dm9pZCBwZHNjX3N0b3Aoc3RydWN0IHBkc2MgKnBkc2MpXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYW1kL3Bkc19jb3JlL2NvcmUuYy01MTYtXHRcdGlmIChwZHNjLVx1MDAzZWludHJfaW5mb1tpXS52ZWN0b3IpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQvcGRzX2NvcmUvY29yZS5jOjUxNzpcdFx0XHRwZHNfY29yZV9pbnRyX21hc2soXHUwMDI2cGRzYy1cdTAwM2VpbnRyX2N0cmxbaV0sXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQvcGRzX2NvcmUvY29yZS5jLTUxOC1cdFx0XHRcdFx0ICAgUERTX0NPUkVfSU5UUl9NQVNLX1NFVCk7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYW1kL3Bkc19jb3JlL2NvcmUuYz01Mzk9dm9pZCBwZHNjX2Z3X2Rvd24oc3RydWN0IHBkc2MgKnBkc2MpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQvcGRzX2NvcmUvY29yZS5jLTU0MC17XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQvcGRzX2NvcmUvY29yZS5jOjU0MTpcdHVuaW9uIHBkc19jb3JlX25vdGlmeXFfY29tcCByZXNldF9ldmVudCA9IHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC9wZHNfY29yZS9jb3JlLmMtNTQyLVx0XHQucmVzZXQuZWNvZGUgPSBjcHVfdG9fbGUxNihQRFNfRVZFTlRfUkVTRVQpLFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC9wZHNfY29yZS9jb3JlLmM9NTY1PXZvaWQgcGRzY19md191cChzdHJ1Y3QgcGRzYyAqcGRzYylcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC9wZHNfY29yZS9jb3JlLmMtNTY2LXtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC9wZHNfY29yZS9jb3JlLmM6NTY3Olx0dW5pb24gcGRzX2NvcmVfbm90aWZ5cV9jb21wIHJlc2V0X2V2ZW50ID0ge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYW1kL3Bkc19jb3JlL2NvcmUuYy01NjgtXHRcdC5yZXNldC5lY29kZSA9IGNwdV90b19sZTE2KFBEU19FVkVOVF9SRVNFVCksXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYW1kL3Bkc19jb3JlL2NvcmUuaC0xMC0jaW5jbHVkZSBcdTAwM2NsaW51eC9wZHMvcGRzX2NvbW1vbi5oXHUwMDNlXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQvcGRzX2NvcmUvY29yZS5oOjExOiNpbmNsdWRlIFx1MDAzY2xpbnV4L3Bkcy9wZHNfY29yZV9pZi5oXHUwMDNlXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQvcGRzX2NvcmUvY29yZS5oLTEyLSNpbmNsdWRlIFx1MDAzY2xpbnV4L3Bkcy9wZHNfYWRtaW5xLmhcdTAwM2Vcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQvcGRzX2NvcmUvY29yZS5oPTQ5PXN0cnVjdCBwZHNjX3F1ZXVlIHtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQvcGRzX2NvcmUvY29yZS5oLTYyLVx0XHR2b2lkICpiYXNlO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYW1kL3Bkc19jb3JlL2NvcmUuaDo2MzpcdFx0c3RydWN0IHBkc19jb3JlX2FkbWluX2NtZCAqYWRtaW5xO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYW1kL3Bkc19jb3JlL2NvcmUuaC02NC1cdH07XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYW1kL3Bkc19jb3JlL2NvcmUuaD0xNTQ9c3RydWN0IHBkc2Mge1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC9wZHNfY29yZS9jb3JlLmgtMTc3LVx0c3RydWN0IHBkc2NfZGV2aW5mbyBkZXZfaW5mbztcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC9wZHNfY29yZS9jb3JlLmg6MTc4Olx0c3RydWN0IHBkc19jb3JlX2Rldl9pZGVudGl0eSBkZXZfaWRlbnQ7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQvcGRzX2NvcmUvY29yZS5oLTE3OS1cdHVuc2lnbmVkIGludCBuaW50cnM7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYW1kL3Bkc19jb3JlL2NvcmUuaC0xODgtXHRyZWZjb3VudF90IGFkbWlucV9yZWZjbnQ7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQvcGRzX2NvcmUvY29yZS5oOjE4OTpcdHN0cnVjdCBwZHNfY29yZV9kZXZfaW5mb19yZWdzIF9faW9tZW0gKmluZm9fcmVncztcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC9wZHNfY29yZS9jb3JlLmg6MTkwOlx0c3RydWN0IHBkc19jb3JlX2Rldl9jbWRfcmVncyBfX2lvbWVtICpjbWRfcmVncztcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC9wZHNfY29yZS9jb3JlLmg6MTkxOlx0c3RydWN0IHBkc19jb3JlX2ludHIgX19pb21lbSAqaW50cl9jdHJsO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYW1kL3Bkc19jb3JlL2NvcmUuaC0xOTItXHR1NjQgX19pb21lbSAqaW50cl9zdGF0dXM7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYW1kL3Bkc19jb3JlL2NvcmUuaC0yMDMtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQvcGRzX2NvcmUvY29yZS5oOjIwNDovKiogZW51bSBwZHNfY29yZV9kYmVsbF9iaXRzIC0gYml0d2lzZSBjb21wb3NpdGlvbiBvZiBkYmVsbCB2YWx1ZXMuXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQvcGRzX2NvcmUvY29yZS5oLTIwNS0gKlxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC9wZHNfY29yZS9jb3JlLmgtMjIwLSAqL1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYW1kL3Bkc19jb3JlL2NvcmUuaDoyMjE6ZW51bSBwZHNfY29yZV9kYmVsbF9iaXRzIHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC9wZHNfY29yZS9jb3JlLmgtMjIyLVx0UERTX0NPUkVfREJFTExfUUlEX01BU0tcdFx0PSAweGZmZmZmZixcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQvcGRzX2NvcmUvY29yZS5oLTI0MS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC9wZHNfY29yZS9jb3JlLmg6MjQyOnN0YXRpYyBpbmxpbmUgdm9pZCBwZHNfY29yZV9kYmVsbF9yaW5nKHU2NCBfX2lvbWVtICpkYl9wYWdlLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYW1kL3Bkc19jb3JlL2NvcmUuaDoyNDM6XHRcdFx0XHQgICAgICAgZW51bSBwZHNfY29yZV9sb2dpY2FsX3F0eXBlIHF0eXBlLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYW1kL3Bkc19jb3JlL2NvcmUuaC0yNDQtXHRcdFx0XHQgICAgICAgdTY0IHZhbClcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQvcGRzX2NvcmUvY29yZS5oPTI3Nz12b2lkIHBkc2NfZGVidWdmc19kZWxfcWNxKHN0cnVjdCBwZHNjX3FjcSAqcWNxKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC9wZHNfY29yZS9jb3JlLmgtMjc4LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYW1kL3Bkc19jb3JlL2NvcmUuaDoyNzk6aW50IHBkc2NfZXJyX3RvX2Vycm5vKGVudW0gcGRzX2NvcmVfc3RhdHVzX2NvZGUgY29kZSk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQvcGRzX2NvcmUvY29yZS5oLTI4MC1ib29sIHBkc2NfaXNfZndfcnVubmluZyhzdHJ1Y3QgcGRzYyAqcGRzYyk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQvcGRzX2NvcmUvY29yZS5oPTI4MT1ib29sIHBkc2NfaXNfZndfZ29vZChzdHJ1Y3QgcGRzYyAqcGRzYyk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQvcGRzX2NvcmUvY29yZS5oOjI4MjppbnQgcGRzY19kZXZjbWQoc3RydWN0IHBkc2MgKnBkc2MsIHVuaW9uIHBkc19jb3JlX2Rldl9jbWQgKmNtZCxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC9wZHNfY29yZS9jb3JlLmg6MjgzOlx0XHR1bmlvbiBwZHNfY29yZV9kZXZfY29tcCAqY29tcCwgaW50IG1heF9zZWNvbmRzKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC9wZHNfY29yZS9jb3JlLmg6Mjg0OmludCBwZHNjX2RldmNtZF9sb2NrZWQoc3RydWN0IHBkc2MgKnBkc2MsIHVuaW9uIHBkc19jb3JlX2Rldl9jbWQgKmNtZCxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC9wZHNfY29yZS9jb3JlLmg6Mjg1Olx0XHQgICAgICAgdW5pb24gcGRzX2NvcmVfZGV2X2NvbXAgKmNvbXAsIGludCBtYXhfc2Vjb25kcyk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQvcGRzX2NvcmUvY29yZS5oLTI4Ni1pbnQgcGRzY19kZXZjbWRfaW5pdChzdHJ1Y3QgcGRzYyAqcGRzYyk7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYW1kL3Bkc19jb3JlL2NvcmUuaD0zMDg9aW50IHBkc2NfYXV4YnVzX2Rldl9hZGQoc3RydWN0IHBkc2MgKmNmLCBzdHJ1Y3QgcGRzYyAqcGYsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQvcGRzX2NvcmUvY29yZS5oOjMwOTpcdFx0XHRlbnVtIHBkc19jb3JlX3ZpZl90eXBlcyB2dCxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC9wZHNfY29yZS9jb3JlLmgtMzEwLVx0XHRcdHN0cnVjdCBwZHNfYXV4aWxpYXJ5X2RldiAqKnBkX3B0cik7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYW1kL3Bkc19jb3JlL2RlYnVnZnMuYz0zMz1zdGF0aWMgaW50IGlkZW50aXR5X3Nob3coc3RydWN0IHNlcV9maWxlICpzZXEsIHZvaWQgKnYpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQvcGRzX2NvcmUvZGVidWdmcy5jLTM0LXtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC9wZHNfY29yZS9kZWJ1Z2ZzLmM6MzU6XHRzdHJ1Y3QgcGRzX2NvcmVfZGV2X2lkZW50aXR5ICppZGVudDtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC9wZHNfY29yZS9kZWJ1Z2ZzLmMtMzYtXHRzdHJ1Y3QgcGRzYyAqcGRzYyA9IHNlcS1cdTAwM2Vwcml2YXRlO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC9wZHNfY29yZS9kZXYuYy05LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYW1kL3Bkc19jb3JlL2Rldi5jOjEwOmludCBwZHNjX2Vycl90b19lcnJubyhlbnVtIHBkc19jb3JlX3N0YXR1c19jb2RlIGNvZGUpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQvcGRzX2NvcmUvZGV2LmMtMTEte1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC9wZHNfY29yZS9kZXYuYz0xMjk9c3RhdGljIGludCBwZHNjX2RldmNtZF93YWl0KHN0cnVjdCBwZHNjICpwZHNjLCB1OCBvcGNvZGUsIGludCBtYXhfc2Vjb25kcylcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQvcGRzX2NvcmUvZGV2LmMtMTg5LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYW1kL3Bkc19jb3JlL2Rldi5jOjE5MDppbnQgcGRzY19kZXZjbWRfbG9ja2VkKHN0cnVjdCBwZHNjICpwZHNjLCB1bmlvbiBwZHNfY29yZV9kZXZfY21kICpjbWQsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQvcGRzX2NvcmUvZGV2LmM6MTkxOlx0XHQgICAgICAgdW5pb24gcGRzX2NvcmVfZGV2X2NvbXAgKmNvbXAsIGludCBtYXhfc2Vjb25kcylcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC9wZHNfY29yZS9kZXYuYy0xOTIte1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC9wZHNfY29yZS9kZXYuYy0yMDktXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQvcGRzX2NvcmUvZGV2LmM6MjEwOmludCBwZHNjX2RldmNtZChzdHJ1Y3QgcGRzYyAqcGRzYywgdW5pb24gcGRzX2NvcmVfZGV2X2NtZCAqY21kLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYW1kL3Bkc19jb3JlL2Rldi5jOjIxMTpcdFx0dW5pb24gcGRzX2NvcmVfZGV2X2NvbXAgKmNvbXAsIGludCBtYXhfc2Vjb25kcylcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC9wZHNfY29yZS9kZXYuYy0yMTIte1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC9wZHNfY29yZS9kZXYuYz0yMjI9aW50IHBkc2NfZGV2Y21kX2luaXQoc3RydWN0IHBkc2MgKnBkc2MpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQvcGRzX2NvcmUvZGV2LmMtMjIzLXtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC9wZHNfY29yZS9kZXYuYzoyMjQ6XHR1bmlvbiBwZHNfY29yZV9kZXZfY29tcCBjb21wID0ge307XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQvcGRzX2NvcmUvZGV2LmM6MjI1Olx0dW5pb24gcGRzX2NvcmVfZGV2X2NtZCBjbWQgPSB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQvcGRzX2NvcmUvZGV2LmMtMjI2LVx0XHQub3Bjb2RlID0gUERTX0NPUkVfQ01EX0lOSVQsXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYW1kL3Bkc19jb3JlL2Rldi5jPTIzMj1pbnQgcGRzY19kZXZjbWRfcmVzZXQoc3RydWN0IHBkc2MgKnBkc2MpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQvcGRzX2NvcmUvZGV2LmMtMjMzLXtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC9wZHNfY29yZS9kZXYuYzoyMzQ6XHR1bmlvbiBwZHNfY29yZV9kZXZfY29tcCBjb21wID0ge307XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQvcGRzX2NvcmUvZGV2LmM6MjM1Olx0dW5pb24gcGRzX2NvcmVfZGV2X2NtZCBjbWQgPSB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQvcGRzX2NvcmUvZGV2LmMtMjM2LVx0XHQucmVzZXQub3Bjb2RlID0gUERTX0NPUkVfQ01EX1JFU0VULFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC9wZHNfY29yZS9kZXYuYz0yNDU9c3RhdGljIGludCBwZHNjX2RldmNtZF9pZGVudGlmeV9sb2NrZWQoc3RydWN0IHBkc2MgKnBkc2MpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQvcGRzX2NvcmUvZGV2LmMtMjQ2LXtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC9wZHNfY29yZS9kZXYuYzoyNDc6XHR1bmlvbiBwZHNfY29yZV9kZXZfY29tcCBjb21wID0ge307XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQvcGRzX2NvcmUvZGV2LmM6MjQ4Olx0dW5pb24gcGRzX2NvcmVfZGV2X2NtZCBjbWQgPSB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQvcGRzX2NvcmUvZGV2LmMtMjQ5LVx0XHQuaWRlbnRpZnkub3Bjb2RlID0gUERTX0NPUkVfQ01EX0lERU5USUZZLFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC9wZHNfY29yZS9kZXYuYz0yNzY9c3RhdGljIGludCBwZHNjX2lkZW50aWZ5KHN0cnVjdCBwZHNjICpwZHNjKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYW1kL3Bkc19jb3JlL2Rldi5jLTI3Ny17XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQvcGRzX2NvcmUvZGV2LmM6Mjc4Olx0c3RydWN0IHBkc19jb3JlX2Rydl9pZGVudGl0eSBkcnYgPSB7fTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC9wZHNfY29yZS9kZXYuYy0yNzktXHRzaXplX3Qgc3o7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYW1kL3Bkc19jb3JlL2RldmxpbmsuYz0xMDI9aW50IHBkc2NfZGxfaW5mb19nZXQoc3RydWN0IGRldmxpbmsgKmRsLCBzdHJ1Y3QgZGV2bGlua19pbmZvX3JlcSAqcmVxLFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC9wZHNfY29yZS9kZXZsaW5rLmMtMTA0LXtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC9wZHNfY29yZS9kZXZsaW5rLmM6MTA1Olx0dW5pb24gcGRzX2NvcmVfZGV2X2NtZCBjbWQgPSB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQvcGRzX2NvcmUvZGV2bGluay5jLTEwNi1cdFx0LmZ3X2NvbnRyb2wub3Bjb2RlID0gUERTX0NPUkVfQ01EX0ZXX0NPTlRST0wsXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYW1kL3Bkc19jb3JlL2RldmxpbmsuYy0xMDgtXHR9O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYW1kL3Bkc19jb3JlL2RldmxpbmsuYzoxMDk6XHRzdHJ1Y3QgcGRzX2NvcmVfZndfbGlzdF9pbmZvIGZ3X2xpc3QgPSB7fTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC9wZHNfY29yZS9kZXZsaW5rLmMtMTEwLVx0c3RydWN0IHBkc2MgKnBkc2MgPSBkZXZsaW5rX3ByaXYoZGwpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYW1kL3Bkc19jb3JlL2RldmxpbmsuYzoxMTE6XHR1bmlvbiBwZHNfY29yZV9kZXZfY29tcCBjb21wO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYW1kL3Bkc19jb3JlL2RldmxpbmsuYy0xMTItXHRjaGFyIGJ1ZlszMl07XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYW1kL3Bkc19jb3JlL2Z3LmM9MTc9c3RhdGljIGludCBwZHNjX2RldmNtZF9md19kb3dubG9hZF9sb2NrZWQoc3RydWN0IHBkc2MgKnBkc2MsIHU2NCBhZGRyLFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC9wZHNfY29yZS9mdy5jLTE5LXtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC9wZHNfY29yZS9mdy5jOjIwOlx0dW5pb24gcGRzX2NvcmVfZGV2X2NtZCBjbWQgPSB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQvcGRzX2NvcmUvZncuYy0yMS1cdFx0LmZ3X2Rvd25sb2FkLm9wY29kZSA9IFBEU19DT1JFX0NNRF9GV19ET1dOTE9BRCxcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQvcGRzX2NvcmUvZncuYy0yNS1cdH07XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQvcGRzX2NvcmUvZncuYzoyNjpcdHVuaW9uIHBkc19jb3JlX2Rldl9jb21wIGNvbXA7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQvcGRzX2NvcmUvZncuYy0yNy1cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQvcGRzX2NvcmUvZncuYz0zMT1zdGF0aWMgaW50IHBkc2NfZGV2Y21kX2Z3X2luc3RhbGwoc3RydWN0IHBkc2MgKnBkc2MpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQvcGRzX2NvcmUvZncuYy0zMi17XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQvcGRzX2NvcmUvZncuYzozMzpcdHVuaW9uIHBkc19jb3JlX2Rldl9jbWQgY21kID0ge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYW1kL3Bkc19jb3JlL2Z3LmMtMzQtXHRcdC5md19jb250cm9sLm9wY29kZSA9IFBEU19DT1JFX0NNRF9GV19DT05UUk9MLFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC9wZHNfY29yZS9mdy5jLTM2LVx0fTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC9wZHNfY29yZS9mdy5jOjM3Olx0dW5pb24gcGRzX2NvcmVfZGV2X2NvbXAgY29tcDtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC9wZHNfY29yZS9mdy5jLTM4LVx0aW50IGVycjtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQvcGRzX2NvcmUvZncuYz00Nz1zdGF0aWMgaW50IHBkc2NfZGV2Y21kX2Z3X2FjdGl2YXRlKHN0cnVjdCBwZHNjICpwZHNjLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYW1kL3Bkc19jb3JlL2Z3LmM6NDg6XHRcdFx0XHQgICBlbnVtIHBkc19jb3JlX2Z3X3Nsb3Qgc2xvdClcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC9wZHNfY29yZS9mdy5jLTQ5LXtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC9wZHNfY29yZS9mdy5jOjUwOlx0dW5pb24gcGRzX2NvcmVfZGV2X2NtZCBjbWQgPSB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQvcGRzX2NvcmUvZncuYy01MS1cdFx0LmZ3X2NvbnRyb2wub3Bjb2RlID0gUERTX0NPUkVfQ01EX0ZXX0NPTlRST0wsXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYW1kL3Bkc19jb3JlL2Z3LmMtNTQtXHR9O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYW1kL3Bkc19jb3JlL2Z3LmM6NTU6XHR1bmlvbiBwZHNfY29yZV9kZXZfY29tcCBjb21wO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYW1kL3Bkc19jb3JlL2Z3LmMtNTYtXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYW1kL3Bkc19jb3JlL2Z3LmM9NjA9c3RhdGljIGludCBwZHNjX2Z3X3N0YXR1c19sb25nX3dhaXQoc3RydWN0IHBkc2MgKnBkc2MsXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYW1kL3Bkc19jb3JlL2Z3LmMtNjUte1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYW1kL3Bkc19jb3JlL2Z3LmM6NjY6XHR1bmlvbiBwZHNfY29yZV9kZXZfY21kIGNtZCA9IHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC9wZHNfY29yZS9mdy5jLTY3LVx0XHQuZndfY29udHJvbC5vcGNvZGUgPSBQRFNfQ09SRV9DTURfRldfQ09OVFJPTCxcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQvcGRzX2NvcmUvZncuYy02OS1cdH07XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQvcGRzX2NvcmUvZncuYzo3MDpcdHVuaW9uIHBkc19jb3JlX2Rldl9jb21wIGNvbXA7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQvcGRzX2NvcmUvZncuYy03MS1cdHVuc2lnbmVkIGxvbmcgc3RhcnRfdGltZTtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQvcGRzX2NvcmUvZncuYz05OD1pbnQgcGRzY19maXJtd2FyZV91cGRhdGUoc3RydWN0IHBkc2MgKnBkc2MsIGNvbnN0IHN0cnVjdCBmaXJtd2FyZSAqZncsXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYW1kL3Bkc19jb3JlL2Z3LmMtMTI0LVx0bmV4dF9pbnRlcnZhbCA9IDA7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQvcGRzX2NvcmUvZncuYzoxMjU6XHRkYXRhX2FkZHIgPSBvZmZzZXRvZihzdHJ1Y3QgcGRzX2NvcmVfZGV2X2NtZF9yZWdzLCBkYXRhKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC9wZHNfY29yZS9mdy5jLTEyNi1cdHdoaWxlIChvZmZzZXQgXHUwMDNjIGZ3LVx1MDAzZXNpemUpIHtcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMS8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMTUgMDc6MjY8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMTU1NjYKCQkJCQkJCW91dHB1dDogMjYKCQkJCQkJCXRob3VnaHRzOiA1MDkKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqQW5hbHl6aW5nIHRoZSBGdXp6aW5nIFBvdGVudGlhbCBvZiBgUERTX0NPUkVgKioKCk9rYXksIHNvIEkmIzM5O20gbG9va2luZyBhdCB0aGlzIGBQRFNfQ09SRWAgZHJpdmVyLCBhbmQgaXQmIzM5O3MgcHJldHR5IGNsZWFyIGl0JiMzOTtzIGEgUENJIGRyaXZlciBkZXNpZ25lZCBmb3IgQU1EIFBlbnNhbmRvIENvcmUgaGFyZHdhcmUuIFRoZSBrZXkgaXNzdWUgaGVyZSBpcyB0aGF0IHRoZXJlJiMzOTtzIG5vIHNvZnR3YXJlIGVtdWxhdGlvbiBmb3IgaXQgaW4gdGhlIGtlcm5lbC4gVGhpcyBtZWFucyBpdCYjMzk7cyBub3QgZ29pbmcgdG8gYmUgYWNjZXNzaWJsZSB3aXRoaW4gYSB0eXBpY2FsIHZpcnR1YWxpemVkIGVudmlyb25tZW50LCBsaWtlIEdDRSBvciBRRU1VLCB1bmxlc3MgeW91JiMzOTt2ZSBnb3QgdGhlIGFjdHVhbCBoYXJkd2FyZSBwcmVzZW50LgoKTXkgaW5pdGlhbCB0aG91Z2h0IHdhcywgJiMzNDtDb3VsZCBpdCBiZSByZWFjaGVkIHZpYSBzb21ldGhpbmcgbGlrZSBgdmhjaWAgb3IgYSBgZHVtbXlgIGludGVyZmFjZT8mIzM0OyBCdXQgbm8sIGl0JiMzOTtzIGp1c3QgYSBzdGFuZGFyZCBQQ0kgZHJpdmVyIChgcGNpX2RyaXZlciBwZHNjX2RyaXZlcmApLiBVbmxlc3MgYSBQQ0kgZGV2aWNlIHdpdGggdGhlIHJpZ2h0IHZlbmRvciBhbmQgZGV2aWNlIElEIGlzIHByZXNlbnQsIHRoZSBkcml2ZXImIzM5O3MgYHByb2JlYCBmdW5jdGlvbiB3b24mIzM5O3QgZXZlbiBiZSB0cmlnZ2VyZWQuCgpUaGVuIEkgd29uZGVyZWQgYWJvdXQgU3l6a2FsbGVyLiBEb2VzIFN5emthbGxlciBwcm92aWRlIHNvbWUgZ2VuZXJpYyBQQ0kgZGV2aWNlIGluamVjdGlvbiBtZWNoYW5pc20sIG1heWJlIHVzaW5nIGB2aGNpYCAoVmlydHVhbCBIb3N0IENvbnRyb2xsZXIgSW50ZXJmYWNlKSBvciBzb21ldGhpbmcgc2ltaWxhciwgbGlrZSB3aXRoIGBzeXpfa3ZtX3NldHVwX2NwdWAgb3IgcGVyaGFwcyBhIGBzeXpfcGNpX2RldmljZWAgY2FsbD8gTm8sIGl0IGRvZXNuJiMzOTt0LiBTeXprYWxsZXIgZG9lc24mIzM5O3QgaGF2ZSBhIGdlbmVyaWMgUENJIGVtdWxhdG9yIGNhcGFibGUgb2YgbWltaWNraW5nIHRoZSBjb21wbGV4aXRpZXMgb2YgYXJiaXRyYXJ5IGhhcmR3YXJlIHJlZ2lzdGVycy4gV2hpbGUgU3l6a2FsbGVyIGhhcyBldm9sdmVkIHRvIHByb3ZpZGUgc29tZSBmdXp6aW5nIHN1cHBvcnQgZm9yIFBDSSBkZXZpY2VzLCBpdCBkb2VzIG5vdCBkbyBzbyBpbiBhIHdheSB0aGF0IGFsbG93cyB1cyB0byB0YXJnZXQgYFBEU19DT1JFYC4KCkkgdHJpZWQgdG8gcmVjYWxsIGlmIHRoZXJlIHdlcmUgYW55IHJlY2VudCBhZGRpdGlvbnMgdG8gU3l6a2FsbGVyIHJlZ2FyZGluZyBQQ0kgZnV6emluZyB0aHJvdWdoIGB2aGNpYCBvciBgdmZpb2AsIGJ1dCB0aGUgYW5zd2VyIGlzIG5vLiBTeXprYWxsZXIgaGFzIGBzeXpfZ2VuZXRsaW5rYCwgYW5kIEkga25vdyBpdCBoYXMgY2FsbHMgbGlrZSBgc3l6X3VzYl9jb25uZWN0YCBmb3IgVVNCLCBgc3l6XzgwMjExX2pvaW5faWJzc2AgZm9yIFdpLUZpLCBidXQgSSBhbSBmYW1pbGlhciB3aXRoIFN5emthbGxlciwgYW5kIEkmIzM5O20gY2VydGFpbiB0aGF0IHRoZSBQQ0kgc2lkZSBoYXMgbm8gZXF1aXZhbGVudCBhYmlsaXR5IHRvIGVtdWxhdGUgYXJiaXRyYXJ5IFBDSSBoYXJkd2FyZS4KClNvIHRoZSBib3R0b20gbGluZSBpczogVGhlIGNvZGUgaXNuJiMzOTt0IHJlYWNoYWJsZSBpbiBhIHN0YW5kYXJkIHZpcnR1YWxpemVkIGVudmlyb25tZW50LiBXaXRob3V0IHNvZnR3YXJlIGVtdWxhdGlvbiwgdGhpcyBkcml2ZXIgaXMgZWZmZWN0aXZlbHkgbG9ja2VkIGJlaGluZCBhIGhhcmR3YXJlIHJlcXVpcmVtZW50LgoKSnVzdCB0byBiZSBhYnNvbHV0ZWx5IHN1cmUsIEkmIzM5O2xsIHF1aWNrbHkgZG91YmxlLWNoZWNrIGZvciBhbnkgc2lnbiBvZiBgcGRzX2NvcmVgIGVtdWxhdGlvbiBhbnl3aGVyZS4gSSYjMzk7bGwgZG8gYSBxdWljayBncmVwIGFuZCBtYWtlIHN1cmUgdGhlcmUgaXNuJiMzOTt0IGFueXRoaW5nIGhpZGluZyBpbiBzb21lIG9ic2N1cmUgY29ybmVyIG9mIHRoZSBjb2RlYmFzZS4KClllcCwgSSBncmVwcGVkIGZvciBgcGRzX2NvcmVgIGFuZCBmb3VuZCBub3RoaW5nIHJlc2VtYmxpbmcgZW11bGF0aW9uLgoKVGhlcmVmb3JlLCBteSBmaW5hbCBjb25jbHVzaW9uIGlzIGBXb3J0aEZ1enppbmc6IGZhbHNlYC4gTXkgcmVhc29uaW5nIGlzIHRoYXQgdGhpcyBpcyBhIGhhcmR3YXJlLXNwZWNpZmljIFBDSSBkcml2ZXIgdGhhdCBsYWNrcyBzb2Z0d2FyZSBlbXVsYXRpb24uIEl0JiMzOTtzIHNpbXBseSB1bnJlYWNoYWJsZSBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBHQ0Ugb3IgUUVNVS4KCkkmIzM5O2xsIGNoZWNrIGlmIGBwZHNjX2luaXRfcGZgIGlzIGNhbGxlZCBmcm9tIGFueXdoZXJlIGVsc2UuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTIvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzE1IDA3OjI2PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O3Bkc2NfaW5pdF9wZiYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0OyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtkcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQvcGRzX2NvcmUvbWFpbi5jPTIwOD1zdGF0aWMgY29uc3Qgc3RydWN0IGRldmxpbmtfcGFyYW0gcGRzY19kbF9wYXJhbXNbXSA9IHtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQvcGRzX2NvcmUvbWFpbi5jLTIxNy1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC9wZHNfY29yZS9tYWluLmM6MjE4OnN0YXRpYyBpbnQgcGRzY19pbml0X3BmKHN0cnVjdCBwZHNjICpwZHNjKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYW1kL3Bkc19jb3JlL21haW4uYy0yMTkte1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC9wZHNfY29yZS9tYWluLmM9MzM3PXN0YXRpYyBpbnQgcGRzY19wcm9iZShzdHJ1Y3QgcGNpX2RldiAqcGRldiwgY29uc3Qgc3RydWN0IHBjaV9kZXZpY2VfaWQgKmVudClcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQvcGRzX2NvcmUvbWFpbi5jLTM4Mi1cdGlmIChpc19wZilcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC9wZHNfY29yZS9tYWluLmM6MzgzOlx0XHRlcnIgPSBwZHNjX2luaXRfcGYocGRzYyk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQvcGRzX2NvcmUvbWFpbi5jLTM4NC1cdGVsc2VcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMy8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMTUgMDc6MjY8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMTY5NzkKCQkJCQkJCW91dHB1dDogMjQKCQkJCQkJCXRob3VnaHRzOiAzMAoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+T2theSwgaGVyZSYjMzk7cyBteSBpbnRlcnByZXRhdGlvbiBvZiB0aG9zZSB0aG91Z2h0cywgdGFpbG9yZWQgZm9yIGFuIGV4cGVydCBhdWRpZW5jZSwgcHJlc2VudGVkIGluIHRoZSBmaXJzdCBwZXJzb246CgoqKkRlY29kaW5nIHRoZSBEcml2ZXIgUHJvYmUqKgoKQWxyaWdodCwgbGV0JiMzOTtzIGJyZWFrIHRoaXMgZG93bi4gTXkgbWluZCBpcyBpbW1lZGlhdGVseSBkcmF3biB0byB0aGUgY2FsbCBzdGFjay4gVGhlIGNydWNpYWwgYml0IGhlcmUgaXMgdGhhdCB0aGlzIHBhcnRpY3VsYXIgcGllY2Ugb2YgbG9naWMgaXMgKmV4Y2x1c2l2ZWx5KiBpbnZva2VkIGZyb20gYHBkc2NfcHJvYmVgLiBUaGF0JiMzOTtzIHRoZSBlbnRyeSBwb2ludC4gQW5kIGBwZHNjX3Byb2JlYCwgYXMgSSYjMzk7bSByZW1pbmRlZCwgaXMgdGhlIHByb2JlIGZ1bmN0aW9uIGRlZmluZWQgd2l0aGluIHRoZSBgcGRzY19kcml2ZXJgIHN0cnVjdHVyZS4gRXNzZW50aWFsbHksIHdlJiMzOTtyZSBsb29raW5nIGF0IHRoZSBjb3JlIG9mIHRoZSBkcml2ZXImIzM5O3MgaW5pdGlhbGl6YXRpb24gc2VxdWVuY2UsIHRoZSBwb2ludCB3aGVyZSBpdCBhdHRlbXB0cyB0byBpZGVudGlmeSBhbmQgY29uZmlndXJlIHRoZSB0YXJnZXQgZGV2aWNlLiBUaGlzIGlzIHdoZXJlIHRoZSBtYWdpYyAob3IgdGhlIHRyb3VibGVzaG9vdGluZykgYmVnaW5zLiBLbm93aW5nIHRoYXQgdGhpcyBpcyB0aGUgc29sZSBlbnRyeSBwb2ludCBwcm92aWRlcyBjcml0aWNhbCBjb250ZXh0IGZvciBkZWJ1Z2dpbmcgb3IgYXVkaXRpbmcgdGhlIGRyaXZlciYjMzk7cyBiZWhhdmlvci4gV2Uga25vdyBleGFjdGx5IHdoZXJlIHRvIGxvb2sgZm9yIHRoZSBpbml0aWFsIHRyaWdnZXJzIGFuZCBkZXBlbmRlbmNpZXMuIEFueSBpc3N1ZXMgaW4gaGVyZSBhcmUgZm91bmRhdGlvbmFsOyB0aGV5JiMzOTtsbCBjYXNjYWRlIG91dHdhcmRzLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjE0LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8xNSAwNzoyNjwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtwZHNjX3Byb2JlJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7JiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC9wZHNfY29yZS9tYWluLmM9MzM1PXN0YXRpYyBERUZJTkVfSURBKHBkc2NfaWRhKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC9wZHNfY29yZS9tYWluLmMtMzM2LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYW1kL3Bkc19jb3JlL21haW4uYzozMzc6c3RhdGljIGludCBwZHNjX3Byb2JlKHN0cnVjdCBwY2lfZGV2ICpwZGV2LCBjb25zdCBzdHJ1Y3QgcGNpX2RldmljZV9pZCAqZW50KVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYW1kL3Bkc19jb3JlL21haW4uYy0zMzgte1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC9wZHNfY29yZS9tYWluLmM9NTgyPXN0YXRpYyBzdHJ1Y3QgcGNpX2RyaXZlciBwZHNjX2RyaXZlciA9IHtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQvcGRzX2NvcmUvbWFpbi5jLTU4NC1cdC5pZF90YWJsZSA9IHBkc2NfaWRfdGFibGUsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQvcGRzX2NvcmUvbWFpbi5jOjU4NTpcdC5wcm9iZSA9IHBkc2NfcHJvYmUsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQvcGRzX2NvcmUvbWFpbi5jLTU4Ni1cdC5yZW1vdmUgPSBwZHNjX3JlbW92ZSxcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xNS8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMTUgMDc6MjY8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMTc1MTMKCQkJCQkJCW91dHB1dDogOTQKCQkJCQkJCXRob3VnaHRzOiA0OAoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipNeSBBc3Nlc3NtZW50IG9mIHRoZSBQQ0kgRHJpdmVyIFByb2JlIEZ1bmN0aW9uKioKCk9rYXksIHNvIEkmIzM5O20gbG9va2luZyBhdCB0aGlzIGNvZGUgYW5kIGl0JiMzOTtzIHByZXR0eSBjbGVhciB0aGlzIGlzIHNvbGVseSBhIFBDSSBkcml2ZXIgcHJvYmUgZnVuY3Rpb24uIFRoZXJlJiMzOTtzIG5vIGVtdWxhdGlvbiBvZiB0aGUgQU1EIFBlbnNhbmRvIENvcmUgaGFyZHdhcmUgaW4gYW55IHZpcnR1YWxpemVkIGVudmlyb25tZW50cy4gVGhhdCBtZWFucyB0aGlzIHNwZWNpZmljIGNvZGUgcGF0aCBpcyBjb21wbGV0ZWx5IHVucmVhY2hhYmxlIGlmIHdlJiMzOTtyZSBydW5uaW5nIGluIGEgVk0uIEdpdmVuIHRoYXQgbGltaXRhdGlvbiwgSSYjMzk7bSBnb2luZyB0byBzZXQgYFdvcnRoRnV6emluZzogZmFsc2VgLiBUaGVyZSYjMzk7cyBubyBwb2ludCBpbiBzcGVuZGluZyByZXNvdXJjZXMgdHJ5aW5nIHRvIGZ1enogc29tZXRoaW5nIHRoYXQgY2FuJiMzOTt0IGJlIHRyaWdnZXJlZCBpbiB0aGUgdGFyZ2V0IGVudmlyb25tZW50LiBJdCYjMzk7cyBzaW1wbHkgbm90IHdvcnRoIHRoZSBlZmZvcnQuIEkgbmVlZCB0byBmb2N1cyBteSBlbmVyZ3kgb24gcGF0aHMgdGhhdCBhcmUgYWN0dWFsbHkgZXhwb3NlZC4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xNi8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMTUgMDc6MjY8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5zZXQtcmVzdWx0czwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBtb2RpZmllcyB0aGUgaW5pdGlhbGl6YXRpb24gcGF0aCBvZiB0aGUgQU1EIFBEUyBDb3JlIFBDSSBkcml2ZXIgKGBwZHNjX2luaXRfcGZgKS4gVGhpcyBpcyBhIGhhcmR3YXJlLXNwZWNpZmljIFBDSSBkcml2ZXIgdGhhdCBsYWNrcyBzb2Z0d2FyZSBlbXVsYXRpb24gaW4gdGhlIGtlcm5lbCwgbWVhbmluZyBpdHMgcHJvYmUgYW5kIGluaXRpYWxpemF0aW9uIHBhdGhzIGFyZSB1bnJlYWNoYWJsZSBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBHQ0Ugb3IgUUVNVSB1c2VkIGJ5IHN5emthbGxlci4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiBmYWxzZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBudWxsLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFtdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBpbml0aWFsaXphdGlvbiBwYXRoIG9mIHRoZSBBTUQgUERTIENvcmUgUENJIGRyaXZlciAoYHBkc2NfaW5pdF9wZmApLiBUaGlzIGlzIGEgaGFyZHdhcmUtc3BlY2lmaWMgUENJIGRyaXZlciB0aGF0IGxhY2tzIHNvZnR3YXJlIGVtdWxhdGlvbiBpbiB0aGUga2VybmVsLCBtZWFuaW5nIGl0cyBwcm9iZSBhbmQgaW5pdGlhbGl6YXRpb24gcGF0aHMgYXJlIHVucmVhY2hhYmxlIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIEdDRSBvciBRRU1VIHVzZWQgYnkgc3l6a2FsbGVyLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IGZhbHNlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8L3Rib2R5PgoJPC90YWJsZT4KCgk8ZGl2IGlkPSJsbG1fc3VtbWFyeV90YWJsZV9kaXYiIHN0eWxlPSJtYXJnaW46IDIwcHggMDsiPgoJCTx0YWJsZSBjbGFzcz0ibGlzdF90YWJsZSI+CgkJCTxjYXB0aW9uPkxMTSBDYWxscyBTdW1tYXJ5OjwvY2FwdGlvbj4KCQkJPHRoZWFkPgoJCQkJPHRyPgoJCQkJCTx0aD5Ub3RhbCBDYWxsczwvdGg+CgkJCQkJPHRoPlRvdGFsIFRva2VuczwvdGg+CgkJCQkJPHRoPkF2ZyBUb2tlbnM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJCTx0aD5BdmcgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCTwvdHI+CgkJCTwvdGhlYWQ+CgkJCTx0Ym9keSBpZD0ibGxtX3N1bW1hcnlfc3RhdHNfYm9keSI+PC90Ym9keT4KCQk8L3RhYmxlPgoJPC9kaXY+CgoJPGRpdiBpZD0idG9vbF9zdW1tYXJ5X3RhYmxlX2RpdiIgc3R5bGU9Im1hcmdpbjogMjBweCAwOyI+CgkJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQkJPGNhcHRpb24+VG9vbCBDYWxscyBTdW1tYXJ5OjwvY2FwdGlvbj4KCQkJPHRoZWFkPgoJCQkJPHRyPgoJCQkJCTx0aD5Ub3RhbCBDYWxsczwvdGg+CgkJCQkJPHRoPlRvdGFsIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQkJPHRoPkF2ZyBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJPC90cj4KCQkJPC90aGVhZD4KCQkJPHRib2R5IGlkPSJ0b29sX3N1bW1hcnlfc3RhdHNfYm9keSI+PC90Ym9keT4KCQk8L3RhYmxlPgoJPC9kaXY+CgoJPGRpdiBpZD0iZHVyYXRpb25fY2hhcnRfZGl2IiBzdHlsZT0id2lkdGg6IDEwMCU7IG1hcmdpbjogMjBweCAwOyBib3JkZXI6IDFweDsiPjwvZGl2PgoJPGRpdiBpZD0idG9rZW5fY2hhcnRfZGl2IiBzdHlsZT0id2lkdGg6IDEwMCU7IG1hcmdpbjogMjBweCAwOyBib3JkZXI6IDFweDsiPjwvZGl2PgoKCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Imh0dHBzOi8vd3d3Lmdvb2dsZS5jb20vanNhcGkiPjwvc2NyaXB0PgoJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgoJCWdvb2dsZS5sb2FkKCJ2aXN1YWxpemF0aW9uIiwgIjEiLCB7cGFja2FnZXM6WyJjb3JlY2hhcnQiXX0pOwoJCWdvb2dsZS5zZXRPbkxvYWRDYWxsYmFjayhkcmF3Q2hhcnRzKTsKCgkJZnVuY3Rpb24gZHJhd0NoYXJ0cygpIHsKCQkJY29uc3QgcmF3RGF0YSA9IFt7IlN0YXJ0ZWQiOiIyMDI2LTA3LTE1VDA3OjI2OjAzLjIzODMyMjMxNFoiLCJTZXEiOjAsIk5lc3RpbmciOjAsIlR5cGUiOiJmbG93IiwiTmFtZSI6InBhdGNoLXRyaWFnZSIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjQwMjUwODk1OTgzLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IG51bGwsXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBtb2RpZmllcyB0aGUgaW5pdGlhbGl6YXRpb24gcGF0aCBvZiB0aGUgQU1EIFBEUyBDb3JlIFBDSSBkcml2ZXIgKGBwZHNjX2luaXRfcGZgKS4gVGhpcyBpcyBhIGhhcmR3YXJlLXNwZWNpZmljIFBDSSBkcml2ZXIgdGhhdCBsYWNrcyBzb2Z0d2FyZSBlbXVsYXRpb24gaW4gdGhlIGtlcm5lbCwgbWVhbmluZyBpdHMgcHJvYmUgYW5kIGluaXRpYWxpemF0aW9uIHBhdGhzIGFyZSB1bnJlYWNoYWJsZSBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBHQ0Ugb3IgUUVNVSB1c2VkIGJ5IHN5emthbGxlci5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogZmFsc2Vcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTE1VDA3OjI2OjAzLjIzODMyOTYwNFoiLCJTZXEiOjEsIk5lc3RpbmciOjEsIlR5cGUiOiJhY3Rpb24iLCJOYW1lIjoicmVhZC1wYXRjaC1kaWZmIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6Mzk3ODIwNDEwLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJQYXRjaERpZmZcIjogXCJjb21taXQgMjc5ZmJiYmQ3YjZlZDhkODkwNzJmN2Y1MWRlNmMzMThiNTAzZTJiOFxcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXFx1MDAzZVxcbkRhdGU6ICAgV2VkIEp1bCAxNSAwNzoyNjowMiAyMDI2ICswMDAwXFxuXFxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xcblxcbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQvcGRzX2NvcmUvbWFpbi5jIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvYW1kL3Bkc19jb3JlL21haW4uY1xcbmluZGV4IDIyZGI3ODM0M2ViMDc1Li5mMzdlNWZlZmEyNjQ4MSAxMDA2NDRcXG4tLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQvcGRzX2NvcmUvbWFpbi5jXFxuKysrIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvYW1kL3Bkc19jb3JlL21haW4uY1xcbkBAIC0yMzgsNiArMjM4LDEwIEBAIHN0YXRpYyBpbnQgcGRzY19pbml0X3BmKHN0cnVjdCBwZHNjICpwZHNjKVxcbiBcXHQvKiBHZW5lcmFsIHdvcmtxdWV1ZSBhbmQgdGltZXIsIGJ1dCBkb24ndCBzdGFydCB0aW1lciB5ZXQgKi9cXG4gXFx0c25wcmludGYod3FfbmFtZSwgc2l6ZW9mKHdxX25hbWUpLCBcXFwiJXMuJWRcXFwiLCBQRFNfQ09SRV9EUlZfTkFNRSwgcGRzYy1cXHUwMDNldWlkKTtcXG4gXFx0cGRzYy1cXHUwMDNld3EgPSBjcmVhdGVfc2luZ2xldGhyZWFkX3dvcmtxdWV1ZSh3cV9uYW1lKTtcXG4rXFx0aWYgKCFwZHNjLVxcdTAwM2V3cSkge1xcbitcXHRcXHRlcnIgPSAtRU5PTUVNO1xcbitcXHRcXHRnb3RvIGVycl9vdXRfdW5tYXBfYmFycztcXG4rXFx0fVxcbiBcXHRJTklUX1dPUksoXFx1MDAyNnBkc2MtXFx1MDAzZWhlYWx0aF93b3JrLCBwZHNjX2hlYWx0aF90aHJlYWQpO1xcbiBcXHRJTklUX1dPUksoXFx1MDAyNnBkc2MtXFx1MDAzZXBjaV9yZXNldF93b3JrLCBwZHNjX3BjaV9yZXNldF90aHJlYWQpO1xcbiBcXHR0aW1lcl9zZXR1cChcXHUwMDI2cGRzYy1cXHUwMDNld2R0aW1lciwgcGRzY193ZHRpbWVyX2NiLCAwKTtcXG5AQCAtMjUzLDcgKzI1Nyw3IEBAIHN0YXRpYyBpbnQgcGRzY19pbml0X3BmKHN0cnVjdCBwZHNjICpwZHNjKVxcbiBcXHRlcnIgPSBwZHNjX3NldHVwKHBkc2MsIFBEU0NfU0VUVVBfSU5JVCk7XFxuIFxcdGlmIChlcnIpIHtcXG4gXFx0XFx0bXV0ZXhfdW5sb2NrKFxcdTAwMjZwZHNjLVxcdTAwM2Vjb25maWdfbG9jayk7XFxuLVxcdFxcdGdvdG8gZXJyX291dF91bm1hcF9iYXJzO1xcbitcXHRcXHRnb3RvIGVycl9vdXRfc2h1dGRvd25fdGltZXI7XFxuIFxcdH1cXG4gXFxuIFxcdGVyciA9IHBkc2Nfc3RhcnQocGRzYyk7XFxuQEAgLTMwNSwxMyArMzA5LDE0IEBAIHN0YXRpYyBpbnQgcGRzY19pbml0X3BmKHN0cnVjdCBwZHNjICpwZHNjKVxcbiBcXHRwZHNjX3N0b3AocGRzYyk7XFxuIGVycl9vdXRfdGVhcmRvd246XFxuIFxcdHBkc2NfdGVhcmRvd24ocGRzYywgUERTQ19URUFSRE9XTl9SRU1PVklORyk7XFxuLWVycl9vdXRfdW5tYXBfYmFyczpcXG4rZXJyX291dF9zaHV0ZG93bl90aW1lcjpcXG4gXFx0dGltZXJfc2h1dGRvd25fc3luYyhcXHUwMDI2cGRzYy1cXHUwMDNld2R0aW1lcik7XFxuIFxcdGlmIChwZHNjLVxcdTAwM2V3cSlcXG4gXFx0XFx0ZGVzdHJveV93b3JrcXVldWUocGRzYy1cXHUwMDNld3EpO1xcbiBcXHRtdXRleF9kZXN0cm95KFxcdTAwMjZwZHNjLVxcdTAwM2Vjb25maWdfbG9jayk7XFxuIFxcdG11dGV4X2Rlc3Ryb3koXFx1MDAyNnBkc2MtXFx1MDAzZWRldmNtZF9sb2NrKTtcXG4gXFx0cGNpX2ZyZWVfaXJxX3ZlY3RvcnMocGRzYy1cXHUwMDNlcGRldik7XFxuK2Vycl9vdXRfdW5tYXBfYmFyczpcXG4gXFx0cGRzY191bm1hcF9iYXJzKHBkc2MpO1xcbiBlcnJfb3V0X3JlbGVhc2VfcmVnaW9uczpcXG4gXFx0cGNpX3JlbGVhc2VfcmVnaW9ucyhwZHNjLVxcdTAwM2VwZGV2KTtcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMTVUMDc6MjY6MDMuNjM3MTAxMDUzWiIsIlNlcSI6MiwiTmVzdGluZyI6MSwiVHlwZSI6ImFnZW50IiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjozOTg1MjExMDEzMywiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBudWxsLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIGluaXRpYWxpemF0aW9uIHBhdGggb2YgdGhlIEFNRCBQRFMgQ29yZSBQQ0kgZHJpdmVyIChgcGRzY19pbml0X3BmYCkuIFRoaXMgaXMgYSBoYXJkd2FyZS1zcGVjaWZpYyBQQ0kgZHJpdmVyIHRoYXQgbGFja3Mgc29mdHdhcmUgZW11bGF0aW9uIGluIHRoZSBrZXJuZWwsIG1lYW5pbmcgaXRzIHByb2JlIGFuZCBpbml0aWFsaXphdGlvbiBwYXRocyBhcmUgdW5yZWFjaGFibGUgaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgR0NFIG9yIFFFTVUgdXNlZCBieSBzeXprYWxsZXIuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IGZhbHNlXG59IiwiSW5zdHJ1Y3Rpb24iOiJZb3UgYXJlIGFuIGV4cGVydCBMaW51eCBrZXJuZWwgbWFpbnRhaW5lci5cbllvdXIgam9iIGlzIHRvIHJldmlldyBhIHByb3ZpZGVkIHBhdGNoIHNlcmllcyBhbmQgZGV0ZXJtaW5lXG5pZiBpdCBtYWtlcyBmdW5jdGlvbmFsIGNoYW5nZXMgdG8gdGhlIGtlcm5lbCB0aGF0IHNob3VsZCBiZSBmdXp6ZWQuXG5cbklNUE9SVEFOVDogVGhlIGNoYW5nZXMgaGF2ZSBBTFJFQURZIGJlZW4gYXBwbGllZCBhbmQgY29tbWl0dGVkIGFzIHRoZSBIRUFEIGNvbW1pdCBpblxueW91ciB3b3Jrc3BhY2UuIERvIE5PVCByZWx5IG9uIHlvdXIgaW50ZXJuYWwga25vd2xlZGdlIG9mIHRoZSBrZXJuZWwuIFlvdSBtdXN0IGFjdGl2ZWx5XG51c2UgeW91ciBjb2RlIGFjY2VzcyB0b29scyB0byBleGFtaW5lIHRoZSBhY3R1YWwgc291cmNlIGNvZGUgYW5kIGNvbmZpcm0gYW55IGFzc3VtcHRpb25zLlxuXG5SZXR1cm4gV29ydGhGdXp6aW5nPWZhbHNlIGlmIHRoZSBwYXRjaCBvbmx5IGNvbnRhaW5zOlxuLSBNb2RpZmljYXRpb25zIHRvIERvY3VtZW50YXRpb24vLCBLY29uZmlnIGZpbGVzLCBvciBjb2RlIGNvbW1lbnRzLlxuLSBQdXJlbHkgZGVjb3JhdGl2ZSBjaGFuZ2VzLCBzdWNoIGFzIGxvZ2dpbmcgKGUuZy4sIHByX2VyciwgcHJpbnRrKSBvciB0cmFjZXBvaW50cy5cbi0gQ2hhbmdlcyB0byBudW1lcmljIGNvbnN0YW50cyBvciBtYWNyb3MgdGhhdCBkbyBub3QgZnVuY3Rpb25hbGx5IGFsdGVyIGV4ZWN1dGlvbiBmbG93LlxuLSBDb2RlIHBhdGhzIHRoYXQgYXJlIGltcG9zc2libGUgdG8gcmVhY2ggaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgR0NFIG9yIFFFTVUsXG5ldmVuIHdoZW4gdXRpbGl6aW5nIHNvZnR3YXJlLWVtdWxhdGVkIGhhcmR3YXJlIChlLmcuLCB1c2IgZ2FkZ2V0LCBtYWM4MDIxMV9od3NpbSkuXG5cbklmIGl0IG1vZGlmaWVzIHJlYWNoYWJsZSBjb3JlIGtlcm5lbCBsb2dpYywgZHJpdmVycywgb3IgYXJjaGl0ZWN0dXJlcywgdXNlIHlvdXIgY29kZSBzZWFyY2hcbnRvb2xzIHRvIHZlcmlmeSB0aGUgY29kZSBjYW4gYmUgZXhlY3V0ZWQsIHRoZW4gcmV0dXJuIFdvcnRoRnV6emluZz10cnVlLlxuXG5XaGVuIHJldHVybmluZyBXb3J0aEZ1enppbmc9dHJ1ZSwgeW91IE1VU1QgQUxTTzpcbjEuIEV4dHJhY3QgYW55IHNwZWNpZmljIGtlcm5lbCBmdW5jdGlvbnMgdGhhdCBzaG91bGQgYmUgaGVhdmlseSBmdXp6ZWQgaW50byBGb2N1c1N5bWJvbHMuXG4gICBBdm9pZCBsaXN0aW5nIGdlbmVyaWMgaG90LXBhdGggZnVuY3Rpb25zIHRvIHByZXZlbnQgc2tld2VkIHRlc3QgZGlzdHJpYnV0aW9ucy5cbjIuIElkZW50aWZ5IGFueSBzcGVjaWZpYyBDT05GSUdfIG9wdGlvbnMgcmVxdWlyZWQgdG8gcHJvcGVybHkgdGVzdCB0aGlzIG5ldy9tb2RpZmllZCBmZWF0dXJlLlxuICAgR28gYW5kIGxvb2sgaW50byB0aGUgS2NvbmZpZyBmaWxlcyBhbmQgY2hlY2sgZm9yIGlmZGVmcyBhcm91bmQgdGhlIGNvZGUsIGRvIG5vdCBtYWtlIGFzc3VtcHRpb25zLlxuICAgRG8gbm90IGxpc3QgdG9vIGdlbmVyaWMgY29uZmlncyAod2UgYWxyZWFkeSBoYXZlIHRoZW0gZW5hYmxlZCkuIE9ubHkgbGlzdCB0aG9zZSB0aGF0XG4gICBzcGVjaWZpY2FsbHkgY292ZXIgdGhlIG1vZGlmaWVkIGNvZGUuIExpc3QgdGhlbSBpbiB0aGUgRW5hYmxlQ29uZmlncyBvdXRwdXQgYXJyYXksXG4gICBhbmQgRE8gTk9UIGFkZCBhICdDT05GSUdfJyBwcmVmaXggKGUuZy4sIHJldHVybiBcIk5FVF9JUFY0XCIgaW5zdGVhZCBvZiBcIkNPTkZJR19ORVRfSVBWNFwiKS5cblByZWZlciBjYWxsaW5nIHNldmVyYWwgdG9vbHMgYXQgdGhlIHNhbWUgdGltZSB0byBzYXZlIHJvdW5kLXRyaXBzLlxuXG5cblVzZSBzZXQtcmVzdWx0cyB0b29sIHRvIHByb3ZpZGUgcmVzdWx0cyBvZiB0aGUgYW5hbHlzaXMuXG5JdCBtdXN0IGJlIGNhbGxlZCBleGFjdGx5IG9uY2UgYmVmb3JlIHRoZSBmaW5hbCByZXBseS5cbklnbm9yZSByZXN1bHRzIG9mIHRoaXMgdG9vbC5cbiIsIlByb21wdCI6IkZvciB5b3VyIGNvbnZlbmllbmNlLCBoZXJlIGlzIHRoZSBkaWZmIG9mIHRoZSBjaGFuZ2VzOlxuY29tbWl0IDI3OWZiYmJkN2I2ZWQ4ZDg5MDcyZjdmNTFkZTZjMzE4YjUwM2UyYjhcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cdTAwM2VcbkRhdGU6ICAgV2VkIEp1bCAxNSAwNzoyNjowMiAyMDI2ICswMDAwXG5cbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcblxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC9wZHNfY29yZS9tYWluLmMgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQvcGRzX2NvcmUvbWFpbi5jXG5pbmRleCAyMmRiNzgzNDNlYjA3NS4uZjM3ZTVmZWZhMjY0ODEgMTAwNjQ0XG4tLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQvcGRzX2NvcmUvbWFpbi5jXG4rKysgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQvcGRzX2NvcmUvbWFpbi5jXG5AQCAtMjM4LDYgKzIzOCwxMCBAQCBzdGF0aWMgaW50IHBkc2NfaW5pdF9wZihzdHJ1Y3QgcGRzYyAqcGRzYylcbiBcdC8qIEdlbmVyYWwgd29ya3F1ZXVlIGFuZCB0aW1lciwgYnV0IGRvbid0IHN0YXJ0IHRpbWVyIHlldCAqL1xuIFx0c25wcmludGYod3FfbmFtZSwgc2l6ZW9mKHdxX25hbWUpLCBcIiVzLiVkXCIsIFBEU19DT1JFX0RSVl9OQU1FLCBwZHNjLVx1MDAzZXVpZCk7XG4gXHRwZHNjLVx1MDAzZXdxID0gY3JlYXRlX3NpbmdsZXRocmVhZF93b3JrcXVldWUod3FfbmFtZSk7XG4rXHRpZiAoIXBkc2MtXHUwMDNld3EpIHtcbitcdFx0ZXJyID0gLUVOT01FTTtcbitcdFx0Z290byBlcnJfb3V0X3VubWFwX2JhcnM7XG4rXHR9XG4gXHRJTklUX1dPUksoXHUwMDI2cGRzYy1cdTAwM2VoZWFsdGhfd29yaywgcGRzY19oZWFsdGhfdGhyZWFkKTtcbiBcdElOSVRfV09SSyhcdTAwMjZwZHNjLVx1MDAzZXBjaV9yZXNldF93b3JrLCBwZHNjX3BjaV9yZXNldF90aHJlYWQpO1xuIFx0dGltZXJfc2V0dXAoXHUwMDI2cGRzYy1cdTAwM2V3ZHRpbWVyLCBwZHNjX3dkdGltZXJfY2IsIDApO1xuQEAgLTI1Myw3ICsyNTcsNyBAQCBzdGF0aWMgaW50IHBkc2NfaW5pdF9wZihzdHJ1Y3QgcGRzYyAqcGRzYylcbiBcdGVyciA9IHBkc2Nfc2V0dXAocGRzYywgUERTQ19TRVRVUF9JTklUKTtcbiBcdGlmIChlcnIpIHtcbiBcdFx0bXV0ZXhfdW5sb2NrKFx1MDAyNnBkc2MtXHUwMDNlY29uZmlnX2xvY2spO1xuLVx0XHRnb3RvIGVycl9vdXRfdW5tYXBfYmFycztcbitcdFx0Z290byBlcnJfb3V0X3NodXRkb3duX3RpbWVyO1xuIFx0fVxuIFxuIFx0ZXJyID0gcGRzY19zdGFydChwZHNjKTtcbkBAIC0zMDUsMTMgKzMwOSwxNCBAQCBzdGF0aWMgaW50IHBkc2NfaW5pdF9wZihzdHJ1Y3QgcGRzYyAqcGRzYylcbiBcdHBkc2Nfc3RvcChwZHNjKTtcbiBlcnJfb3V0X3RlYXJkb3duOlxuIFx0cGRzY190ZWFyZG93bihwZHNjLCBQRFNDX1RFQVJET1dOX1JFTU9WSU5HKTtcbi1lcnJfb3V0X3VubWFwX2JhcnM6XG4rZXJyX291dF9zaHV0ZG93bl90aW1lcjpcbiBcdHRpbWVyX3NodXRkb3duX3N5bmMoXHUwMDI2cGRzYy1cdTAwM2V3ZHRpbWVyKTtcbiBcdGlmIChwZHNjLVx1MDAzZXdxKVxuIFx0XHRkZXN0cm95X3dvcmtxdWV1ZShwZHNjLVx1MDAzZXdxKTtcbiBcdG11dGV4X2Rlc3Ryb3koXHUwMDI2cGRzYy1cdTAwM2Vjb25maWdfbG9jayk7XG4gXHRtdXRleF9kZXN0cm95KFx1MDAyNnBkc2MtXHUwMDNlZGV2Y21kX2xvY2spO1xuIFx0cGNpX2ZyZWVfaXJxX3ZlY3RvcnMocGRzYy1cdTAwM2VwZGV2KTtcbitlcnJfb3V0X3VubWFwX2JhcnM6XG4gXHRwZHNjX3VubWFwX2JhcnMocGRzYyk7XG4gZXJyX291dF9yZWxlYXNlX3JlZ2lvbnM6XG4gXHRwY2lfcmVsZWFzZV9yZWdpb25zKHBkc2MtXHUwMDNlcGRldik7XG4iLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0xNVQwNzoyNjowMy42MzcxMDIzNTNaIiwiU2VxIjozLCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo2MTI2Mzg5OTkyLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkFuYWx5emluZyBhIFJlY2VudCBOZXR3b3JrIERyaXZlciBQYXRjaCoqXG5cbk9rYXksIHNvIEknbSBsb29raW5nIGF0IHRoaXMgcGF0Y2ggZm9yIGBkcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQvcGRzX2NvcmUvbWFpbi5jYC4gSXQgc2VlbXMgdGhleSd2ZSBhZGRlZCBhIGNoZWNrIGFmdGVyIGBjcmVhdGVfc2luZ2xldGhyZWFkX3dvcmtxdWV1ZSh3cV9uYW1lKWAgdG8gc2VlIGlmIGBwZHNjLVx1MDAzZXdxYCBpcyBOVUxMLiBNYWtlcyBzZW5zZSwgbWVtb3J5IGFsbG9jYXRpb24gZmFpbHVyZSBpcyBhIGNvbW1vbiBwcm9ibGVtLiBJZiBpdCAqaXMqIE5VTEwsIGl0IGJhaWxzIG91dCB3aXRoIGAtRU5PTUVNYCBhbmQganVtcHMgdG8gYGVycl9vdXRfdW5tYXBfYmFyc2AsIHdoaWNoIGlzIHN0YW5kYXJkIGVycm9yIGhhbmRsaW5nLiBUaGV5J3ZlIGFsc28gcmVqaWdnZXJlZCB0aGUgZXJyb3IgaGFuZGxpbmcgcGF0aCBpdHNlbGYuIGBlcnJfb3V0X3VubWFwX2JhcnNgIGlzIG5vdyBwbGFjZWQgKmFmdGVyKiBgdGltZXJfc2h1dGRvd25fc3luY2AsIGBkZXN0cm95X3dvcmtxdWV1ZWAsIGBtdXRleF9kZXN0cm95YCwgYW5kIGBwY2lfZnJlZV9pcnFfdmVjdG9yc2AsIGFuZCBpdCdzIGdvdCBhIG5ldyBsYWJlbCwgYGVycl9vdXRfc2h1dGRvd25fdGltZXJgLiBUaGF0J3MgYSByZWFzb25hYmxlIHJlb3JkZXJpbmcgZm9yIHJlc291cmNlIGNsZWFudXAgdG8gZW5zdXJlIGEgY2xlYW4gZXhpdC5cblxuQnV0IHdhaXQgYSBtaW51dGUsIHRoaXMgaXMgYSBQQ0kgZHJpdmVyIHNwZWNpZmljYWxseSBmb3IgdGhlIEFNRCBQRFMgQ29yZS4gVGhhdCB0aHJvd3MgdXAgYSByZWQgZmxhZyBpbiBteSBtaW5kLiBIb3cgbGlrZWx5IGlzIHRoaXMgY29kZSBwYXRoIHRvIGFjdHVhbGx5IGJlIHJlYWNoZWQgaW4gYSB0eXBpY2FsIGVudmlyb25tZW50LCBsaWtlIFFFTVUgb3IgR0NFPyBUeXBpY2FsbHksIGRyaXZlcnMgZm9yIHNwZWNpZmljIGhhcmR3YXJlIGNvbXBvbmVudHMsIGVzcGVjaWFsbHkgUENJIGRyaXZlcnMsIGFyZW4ndCBkaXJlY3RseSBleGVyY2lzYWJsZSB1bmxlc3MgdGhlIGhhcmR3YXJlIGlzIGVpdGhlciBlbXVsYXRlZCBvciBwYXNzZWQgdGhyb3VnaCB0byBhIHZpcnR1YWwgbWFjaGluZS4gSSBuZWVkIHRvIGZpZ3VyZSBvdXQgaWYgdGhlcmUncyBhbnkgZW11bGF0aW9uIGZvciB0aGlzIEFNRCBQRFMgQ29yZSBhbnl3aGVyZS4gSSdsbCBuZWVkIHRvIGRpZyBpbnRvIHRoZSBrZXJuZWwgc291cmNlIGFuZCBzZWFyY2ggZm9yIGBQRFNfQ09SRV9EUlZfTkFNRWAgb3IganVzdCBgcGRzX2NvcmVgIHRvIHNlZSB3aGF0IEkgY2FuIGZpbmQuIFVuZGVyc3RhbmRpbmcgdGhlIGNvbnRleHQgb2Ygd2hlcmUgdGhpcyBkcml2ZXIgaXMgdXNlZCBpcyBjcml0aWNhbCBmb3IgdW5kZXJzdGFuZGluZyB0aGUgdmFsaWRpdHkgb2YgdGhpcyBwYXRjaCBhbmQgaG93IHRvIHRlc3QgaXQuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjIzMTMsIk91dHB1dFRva2VucyI6NDMsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoyNDcsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0xNVQwNzoyNjowOS43NjM0OTQwMjVaIiwiU2VxIjo0LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NjA5NDUxNzYsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiUERTX0NPUkVfRFJWX05BTUVcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZHJpdmVycy9uZXQvZXRoZXJuZXQvYW1kL3Bkc19jb3JlL1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJkcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQvcGRzX2NvcmUvYXV4YnVzLmM9MTk0PWludCBwZHNjX2F1eGJ1c19kZXZfYWRkKHN0cnVjdCBwZHNjICpjZiwgc3RydWN0IHBkc2MgKnBmLFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYW1kL3Bkc19jb3JlL2F1eGJ1cy5jLTIzNi1cXHRzbnByaW50ZihkZXZuYW1lLCBzaXplb2YoZGV2bmFtZSksIFxcXCIlcy4lcy4lZFxcXCIsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYW1kL3Bkc19jb3JlL2F1eGJ1cy5jOjIzNzpcXHRcXHQgUERTX0NPUkVfRFJWX05BTUUsIHBmLVxcdTAwM2V2aWZ0eXBlX3N0YXR1c1t2dF0ubmFtZSwgY2YtXFx1MDAzZXVpZCk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYW1kL3Bkc19jb3JlL2F1eGJ1cy5jLTIzOC1cXHRjbGllbnRfaWQgPSBwZHNfY2xpZW50X3JlZ2lzdGVyKHBmLCBkZXZuYW1lKTtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC9wZHNfY29yZS9jb3JlLmM9MTE2PXN0YXRpYyBpbnQgcGRzY19xY3FfaW50cl9hbGxvYyhzdHJ1Y3QgcGRzYyAqcGRzYywgc3RydWN0IHBkc2NfcWNxICpxY3EpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQvcGRzX2NvcmUvY29yZS5jLTEyNi1cXHRzbnByaW50ZihuYW1lLCBzaXplb2YobmFtZSksIFxcXCIlcy0lZC0lc1xcXCIsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYW1kL3Bkc19jb3JlL2NvcmUuYzoxMjc6XFx0XFx0IFBEU19DT1JFX0RSVl9OQU1FLCBwZHNjLVxcdTAwM2VwZGV2LVxcdTAwM2VidXMtXFx1MDAzZW51bWJlciwgcWNxLVxcdTAwM2VxLm5hbWUpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC9wZHNfY29yZS9jb3JlLmMtMTI4LVxcdGluZGV4ID0gcGRzY19pbnRyX2FsbG9jKHBkc2MsIG5hbWUsIHBkc2NfYWRtaW5xX2lzciwgcGRzYyk7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQvcGRzX2NvcmUvZGVidWdmcy5jPTEwPXZvaWQgcGRzY19kZWJ1Z2ZzX2NyZWF0ZSh2b2lkKVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC9wZHNfY29yZS9kZWJ1Z2ZzLmMtMTEte1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC9wZHNfY29yZS9kZWJ1Z2ZzLmM6MTI6XFx0cGRzY19kaXIgPSBkZWJ1Z2ZzX2NyZWF0ZV9kaXIoUERTX0NPUkVfRFJWX05BTUUsIE5VTEwpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC9wZHNfY29yZS9kZWJ1Z2ZzLmMtMTMtfVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYW1kL3Bkc19jb3JlL2Rldi5jPTI3Nj1zdGF0aWMgaW50IHBkc2NfaWRlbnRpZnkoc3RydWN0IHBkc2MgKnBkc2MpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQvcGRzX2NvcmUvZGV2LmMtMjg1LVxcdG4gPSBzbnByaW50ZihkcnYuZHJpdmVyX3Zlcl9zdHIsIHNpemVvZihkcnYuZHJpdmVyX3Zlcl9zdHIpLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC9wZHNfY29yZS9kZXYuYzoyODY6XFx0XFx0ICAgICBcXFwiJXMgJXNcXFwiLCBQRFNfQ09SRV9EUlZfTkFNRSwgdXRzbmFtZSgpLVxcdTAwM2VyZWxlYXNlKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQvcGRzX2NvcmUvZGV2LmMtMjg3LVxcdGlmIChuIFxcdTAwM2Ugc2l6ZW9mKGRydi5kcml2ZXJfdmVyX3N0cikpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQvcGRzX2NvcmUvbWFpbi5jPTIxOD1zdGF0aWMgaW50IHBkc2NfaW5pdF9wZihzdHJ1Y3QgcGRzYyAqcGRzYylcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC9wZHNfY29yZS9tYWluLmMtMjI2LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC9wZHNfY29yZS9tYWluLmM6MjI3OlxcdGVyciA9IHBjaV9yZXF1ZXN0X3JlZ2lvbnMocGRzYy1cXHUwMDNlcGRldiwgUERTX0NPUkVfRFJWX05BTUUpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC9wZHNfY29yZS9tYWluLmMtMjI4LVxcdGlmIChlcnIpIHtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC9wZHNfY29yZS9tYWluLmMtMjM4LVxcdC8qIEdlbmVyYWwgd29ya3F1ZXVlIGFuZCB0aW1lciwgYnV0IGRvbid0IHN0YXJ0IHRpbWVyIHlldCAqL1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC9wZHNfY29yZS9tYWluLmM6MjM5OlxcdHNucHJpbnRmKHdxX25hbWUsIHNpemVvZih3cV9uYW1lKSwgXFxcIiVzLiVkXFxcIiwgUERTX0NPUkVfRFJWX05BTUUsIHBkc2MtXFx1MDAzZXVpZCk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYW1kL3Bkc19jb3JlL21haW4uYy0yNDAtXFx0cGRzYy1cXHUwMDNld3EgPSBjcmVhdGVfc2luZ2xldGhyZWFkX3dvcmtxdWV1ZSh3cV9uYW1lKTtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC9wZHNfY29yZS9tYWluLmM9NTA5PXN0YXRpYyB2b2lkIHBkc2NfcmVzZXRfZG9uZShzdHJ1Y3QgcGNpX2RldiAqcGRldilcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC9wZHNfY29yZS9tYWluLmMtNTI0LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC9wZHNfY29yZS9tYWluLmM6NTI1OlxcdFxcdGVyciA9IHBjaV9yZXF1ZXN0X3JlZ2lvbnMocGRzYy1cXHUwMDNlcGRldiwgUERTX0NPUkVfRFJWX05BTUUpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC9wZHNfY29yZS9tYWluLmMtNTI2LVxcdFxcdGlmIChlcnIpIHtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC9wZHNfY29yZS9tYWluLmM9NTgyPXN0YXRpYyBzdHJ1Y3QgcGNpX2RyaXZlciBwZHNjX2RyaXZlciA9IHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQvcGRzX2NvcmUvbWFpbi5jOjU4MzpcXHQubmFtZSA9IFBEU19DT1JFX0RSVl9OQU1FLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC9wZHNfY29yZS9tYWluLmMtNTg0LVxcdC5pZF90YWJsZSA9IHBkc2NfaWRfdGFibGUsXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQvcGRzX2NvcmUvbWFpbi5jPTU5Nz1zdGF0aWMgaW50IF9faW5pdCBwZHNjX2luaXRfbW9kdWxlKHZvaWQpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYW1kL3Bkc19jb3JlL21haW4uYy01OTgte1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC9wZHNfY29yZS9tYWluLmM6NTk5OlxcdGlmIChzdHJjbXAoS0JVSUxEX01PRE5BTUUsIFBEU19DT1JFX0RSVl9OQU1FKSlcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQvcGRzX2NvcmUvbWFpbi5jLTYwMC1cXHRcXHRyZXR1cm4gLUVJTlZBTDtcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMTVUMDc6MjY6MDkuODI0NDQzNjkxWiIsIlNlcSI6NSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6Mjk2MzQwNDM1NCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipJbnZlc3RpZ2F0aW5nIFBDSSBEcml2ZXIgUmVhY2hhYmlsaXR5IGluIFN5emthbGxlcioqXG5cbk9rYXksIHNvIEknbSBsb29raW5nIGF0IHRoaXMgZHJpdmVyIGFuZCBpdCdzIGEgUENJIGRyaXZlci4gVGhlIGltbWVkaWF0ZSBxdWVzdGlvbiBpbiBteSBtaW5kIGlzLCBcIkhvdyBjYW4gSSBhY3R1YWxseSB0cmlnZ2VyIHRoaXMgdGhpbmcgd2l0aGluIFN5emthbGxlcj9cIiBJIGtub3cgZnJvbSBwYXN0IGV4cGVyaWVuY2UgdGhhdCBTeXprYWxsZXIgZG9lc24ndCBoYXZlIGV4cGxpY2l0IGVtdWxhdGlvbiBvZiB0aGUgQU1EIFBEUyBDb3JlIGhhcmR3YXJlLiBUaGF0J3MgYSBrZXkgcm9hZGJsb2NrLiBNeSBuZXh0IHN0ZXAgaXMgdG8gcXVpY2tseSBzZWUgaWYgdGhlcmUgYXJlIGFueSBleGlzdGluZyBlbXVsYXRpb25zIG9yIGR1bW15IGRldmljZXMgdGhhdCBtaWdodCBhbGxvdyBtZSB0byBpbnRlcmFjdCB3aXRoIGl0IGluZGlyZWN0bHkuIFBlcmhhcHMgdGhlcmUncyBhIGdlbmVyaWMgUENJIGRldmljZSBlbXVsYXRpb24gb3Igc29tZSBvdGhlciB3b3JrYXJvdW5kIEkgY2FuIGxldmVyYWdlLiBJIG5lZWQgdG8gZmlndXJlIG91dCB0aGUgcGF0aCB0byBnZXQgdGhpcyBkcml2ZXIgZXhlcmNpc2VkIHRocm91Z2ggdGhlIGZ1enplci5cblxuXG4iLCJJbnB1dFRva2VucyI6NDM1MCwiT3V0cHV0VG9rZW5zIjoyOSwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjQ4LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTE1VDA3OjI2OjEyLjc4Nzg0OTk2NFoiLCJTZXEiOjYsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoyNDYxOTAzNzEyLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcIlBEU19DT1JFX0RSVl9OQU1FXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcIlwiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJkcml2ZXJzL2Z3Y3RsL3Bkcy9tYWluLmM9NTE5PXN0YXRpYyBjb25zdCBzdHJ1Y3QgYXV4aWxpYXJ5X2RldmljZV9pZCBwZHNmY19pZF90YWJsZVtdID0ge1xcbmRyaXZlcnMvZndjdGwvcGRzL21haW4uYzo1MjA6XFx0ey5uYW1lID0gUERTX0NPUkVfRFJWX05BTUUgXFxcIi5cXFwiIFBEU19ERVZfVFlQRV9GV0NUTF9TVFIgfSxcXG5kcml2ZXJzL2Z3Y3RsL3Bkcy9tYWluLmMtNTIxLVxcdHt9XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQvcGRzX2NvcmUvYXV4YnVzLmM9MTk0PWludCBwZHNjX2F1eGJ1c19kZXZfYWRkKHN0cnVjdCBwZHNjICpjZiwgc3RydWN0IHBkc2MgKnBmLFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYW1kL3Bkc19jb3JlL2F1eGJ1cy5jLTIzNi1cXHRzbnByaW50ZihkZXZuYW1lLCBzaXplb2YoZGV2bmFtZSksIFxcXCIlcy4lcy4lZFxcXCIsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYW1kL3Bkc19jb3JlL2F1eGJ1cy5jOjIzNzpcXHRcXHQgUERTX0NPUkVfRFJWX05BTUUsIHBmLVxcdTAwM2V2aWZ0eXBlX3N0YXR1c1t2dF0ubmFtZSwgY2YtXFx1MDAzZXVpZCk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYW1kL3Bkc19jb3JlL2F1eGJ1cy5jLTIzOC1cXHRjbGllbnRfaWQgPSBwZHNfY2xpZW50X3JlZ2lzdGVyKHBmLCBkZXZuYW1lKTtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC9wZHNfY29yZS9jb3JlLmM9MTE2PXN0YXRpYyBpbnQgcGRzY19xY3FfaW50cl9hbGxvYyhzdHJ1Y3QgcGRzYyAqcGRzYywgc3RydWN0IHBkc2NfcWNxICpxY3EpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQvcGRzX2NvcmUvY29yZS5jLTEyNi1cXHRzbnByaW50ZihuYW1lLCBzaXplb2YobmFtZSksIFxcXCIlcy0lZC0lc1xcXCIsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYW1kL3Bkc19jb3JlL2NvcmUuYzoxMjc6XFx0XFx0IFBEU19DT1JFX0RSVl9OQU1FLCBwZHNjLVxcdTAwM2VwZGV2LVxcdTAwM2VidXMtXFx1MDAzZW51bWJlciwgcWNxLVxcdTAwM2VxLm5hbWUpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC9wZHNfY29yZS9jb3JlLmMtMTI4LVxcdGluZGV4ID0gcGRzY19pbnRyX2FsbG9jKHBkc2MsIG5hbWUsIHBkc2NfYWRtaW5xX2lzciwgcGRzYyk7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQvcGRzX2NvcmUvZGVidWdmcy5jPTEwPXZvaWQgcGRzY19kZWJ1Z2ZzX2NyZWF0ZSh2b2lkKVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC9wZHNfY29yZS9kZWJ1Z2ZzLmMtMTEte1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC9wZHNfY29yZS9kZWJ1Z2ZzLmM6MTI6XFx0cGRzY19kaXIgPSBkZWJ1Z2ZzX2NyZWF0ZV9kaXIoUERTX0NPUkVfRFJWX05BTUUsIE5VTEwpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC9wZHNfY29yZS9kZWJ1Z2ZzLmMtMTMtfVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYW1kL3Bkc19jb3JlL2Rldi5jPTI3Nj1zdGF0aWMgaW50IHBkc2NfaWRlbnRpZnkoc3RydWN0IHBkc2MgKnBkc2MpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQvcGRzX2NvcmUvZGV2LmMtMjg1LVxcdG4gPSBzbnByaW50ZihkcnYuZHJpdmVyX3Zlcl9zdHIsIHNpemVvZihkcnYuZHJpdmVyX3Zlcl9zdHIpLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC9wZHNfY29yZS9kZXYuYzoyODY6XFx0XFx0ICAgICBcXFwiJXMgJXNcXFwiLCBQRFNfQ09SRV9EUlZfTkFNRSwgdXRzbmFtZSgpLVxcdTAwM2VyZWxlYXNlKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQvcGRzX2NvcmUvZGV2LmMtMjg3LVxcdGlmIChuIFxcdTAwM2Ugc2l6ZW9mKGRydi5kcml2ZXJfdmVyX3N0cikpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQvcGRzX2NvcmUvbWFpbi5jPTIxOD1zdGF0aWMgaW50IHBkc2NfaW5pdF9wZihzdHJ1Y3QgcGRzYyAqcGRzYylcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC9wZHNfY29yZS9tYWluLmMtMjI2LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC9wZHNfY29yZS9tYWluLmM6MjI3OlxcdGVyciA9IHBjaV9yZXF1ZXN0X3JlZ2lvbnMocGRzYy1cXHUwMDNlcGRldiwgUERTX0NPUkVfRFJWX05BTUUpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC9wZHNfY29yZS9tYWluLmMtMjI4LVxcdGlmIChlcnIpIHtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC9wZHNfY29yZS9tYWluLmMtMjM4LVxcdC8qIEdlbmVyYWwgd29ya3F1ZXVlIGFuZCB0aW1lciwgYnV0IGRvbid0IHN0YXJ0IHRpbWVyIHlldCAqL1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC9wZHNfY29yZS9tYWluLmM6MjM5OlxcdHNucHJpbnRmKHdxX25hbWUsIHNpemVvZih3cV9uYW1lKSwgXFxcIiVzLiVkXFxcIiwgUERTX0NPUkVfRFJWX05BTUUsIHBkc2MtXFx1MDAzZXVpZCk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYW1kL3Bkc19jb3JlL21haW4uYy0yNDAtXFx0cGRzYy1cXHUwMDNld3EgPSBjcmVhdGVfc2luZ2xldGhyZWFkX3dvcmtxdWV1ZSh3cV9uYW1lKTtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC9wZHNfY29yZS9tYWluLmM9NTA5PXN0YXRpYyB2b2lkIHBkc2NfcmVzZXRfZG9uZShzdHJ1Y3QgcGNpX2RldiAqcGRldilcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC9wZHNfY29yZS9tYWluLmMtNTI0LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC9wZHNfY29yZS9tYWluLmM6NTI1OlxcdFxcdGVyciA9IHBjaV9yZXF1ZXN0X3JlZ2lvbnMocGRzYy1cXHUwMDNlcGRldiwgUERTX0NPUkVfRFJWX05BTUUpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC9wZHNfY29yZS9tYWluLmMtNTI2LVxcdFxcdGlmIChlcnIpIHtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC9wZHNfY29yZS9tYWluLmM9NTgyPXN0YXRpYyBzdHJ1Y3QgcGNpX2RyaXZlciBwZHNjX2RyaXZlciA9IHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQvcGRzX2NvcmUvbWFpbi5jOjU4MzpcXHQubmFtZSA9IFBEU19DT1JFX0RSVl9OQU1FLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC9wZHNfY29yZS9tYWluLmMtNTg0LVxcdC5pZF90YWJsZSA9IHBkc2NfaWRfdGFibGUsXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQvcGRzX2NvcmUvbWFpbi5jPTU5Nz1zdGF0aWMgaW50IF9faW5pdCBwZHNjX2luaXRfbW9kdWxlKHZvaWQpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYW1kL3Bkc19jb3JlL21haW4uYy01OTgte1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC9wZHNfY29yZS9tYWluLmM6NTk5OlxcdGlmIChzdHJjbXAoS0JVSUxEX01PRE5BTUUsIFBEU19DT1JFX0RSVl9OQU1FKSlcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQvcGRzX2NvcmUvbWFpbi5jLTYwMC1cXHRcXHRyZXR1cm4gLUVJTlZBTDtcXG4tLVxcbmluY2x1ZGUvbGludXgvcGRzL3Bkc19jb21tb24uaC04LVxcbmluY2x1ZGUvbGludXgvcGRzL3Bkc19jb21tb24uaDo5OiNkZWZpbmUgUERTX0NPUkVfRFJWX05BTUVcXHRcXHRcXHRcXFwicGRzX2NvcmVcXFwiXFxuaW5jbHVkZS9saW51eC9wZHMvcGRzX2NvbW1vbi5oLTEwLVxcbi0tXFxuaW5jbHVkZS9saW51eC9wZHMvcGRzX2NvbW1vbi5oPTI1PWVudW0gcGRzX2NvcmVfdmlmX3R5cGVzIHtcXG4tLVxcbmluY2x1ZGUvbGludXgvcGRzL3Bkc19jb21tb24uaC00NS1cXG5pbmNsdWRlL2xpbnV4L3Bkcy9wZHNfY29tbW9uLmg6NDY6I2RlZmluZSBQRFNfVkRQQV9ERVZfTkFNRVxcdFBEU19DT1JFX0RSVl9OQU1FIFxcXCIuXFxcIiBQRFNfREVWX1RZUEVfVkRQQV9TVFJcXG5pbmNsdWRlL2xpbnV4L3Bkcy9wZHNfY29tbW9uLmg6NDc6I2RlZmluZSBQRFNfVkZJT19MTV9ERVZfTkFNRVxcdFBEU19DT1JFX0RSVl9OQU1FIFxcXCIuXFxcIiBQRFNfREVWX1RZUEVfTE1fU1RSIFxcXCIuXFxcIiBQRFNfREVWX1RZUEVfVkZJT19TVFJcXG5pbmNsdWRlL2xpbnV4L3Bkcy9wZHNfY29tbW9uLmgtNDgtXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTE1VDA3OjI2OjE1LjI0OTc1OTg3NloiLCJTZXEiOjcsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjQwOTIzNzkzMTcsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqQW5hbHl6aW5nIHRoZSBBTUQgUERTIENvcmUgUENJIERyaXZlciBpbiBTeXprYWxsZXIqKlxuXG5Pa2F5LCBzbyBJJ20gbG9va2luZyBhdCB0aGlzIFBDSSBkcml2ZXIgZm9yIHRoZSBBTUQgUERTIENvcmUuIFRoZSBrZXkgcXVlc3Rpb24gaXMsIGNhbiBJIGV2ZW4gZ2V0IHRvIHRoaXMgdGhpbmcgd2l0aCBTeXprYWxsZXI/IFRoZSBpbW1lZGlhdGUgcHJvYmxlbSBpcyBTeXprYWxsZXIgZG9lc24ndCBhY3R1YWxseSBlbXVsYXRlIHRoZSBBTUQgUERTIENvcmUgaGFyZHdhcmUgZGlyZWN0bHksIHRoYXQncyBhIGh1cmRsZSByaWdodCBvZmYgdGhlIGJhdC4gQnV0IHdhaXQsIHRoZXJlJ3MgYSBnbGltbWVyIG9mIGhvcGUuIEkga25vdyBTeXprYWxsZXIgaGFzIHRoaXMgdmlydHVhbCBQQ0kgZGV2aWNlLCBgdmhjaWAuIEhvd2V2ZXIsIEkga25vdyBmcm9tIGV4cGVyaWVuY2UgdGhhdCBgdmhjaWAgaXNuJ3QgZGVzaWduZWQgdG8gc2ltdWxhdGUgKnNwZWNpZmljKiBoYXJkd2FyZS4gSXQncyByZWFsbHkgbW9yZSBvZiBhIGdlbmVyYWwgUENJIGRldmljZSB1bmxlc3MgdGhlcmUncyBhICpkZWRpY2F0ZWQqIGRyaXZlciB0aGF0J3MgaW1wbGVtZW50ZWQgc3BlY2lmaWNhbGx5IGZvciB0aGF0IGhhcmR3YXJlLCBvciBpZiBpdCdzIGEgZ2VuZXJpYyBkZXZpY2UgbGlrZSB2aXJ0aW8uIFNvLCB0aGF0IGxlYXZlcyBtZSB3aXRoIHRoZSBtYWluIHF1ZXN0aW9uOiBjYW4gdGhpcyBkcml2ZXIgZXZlbiAqYmUqIHJlYWNoZWQgdmlhIGB2aGNpYD8gVGhlIG5leHQgdGhpbmcgdG8gY2hlY2sgaXMgaWYgdGhlIGluaXQgZnVuY3Rpb24sIGBwZHNjX2luaXRfcGZgLCBpcyBjYWxsZWQgZnJvbSB0aGUgcHJvYmUgZnVuY3Rpb24uIFRoYXQncyBhIGdvb2Qgc3RhcnRpbmcgcG9pbnQgdG8gc2VlIGhvdyByZWFjaGFibGUgdGhpcyBpcy5cblxuXG4iLCJJbnB1dFRva2VucyI6NjI5MCwiT3V0cHV0VG9rZW5zIjo0MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjEwNywiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0xNVQwNzoyNjoxOS4zNDIxNDA4NjNaIiwiU2VxIjo4LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NTgwODU3NzUsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwicGRzY19pbml0X3BmXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC9wZHNfY29yZS9cIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiZHJpdmVycy9uZXQvZXRoZXJuZXQvYW1kL3Bkc19jb3JlL21haW4uYz0yMDg9c3RhdGljIGNvbnN0IHN0cnVjdCBkZXZsaW5rX3BhcmFtIHBkc2NfZGxfcGFyYW1zW10gPSB7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQvcGRzX2NvcmUvbWFpbi5jLTIxNy1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQvcGRzX2NvcmUvbWFpbi5jOjIxODpzdGF0aWMgaW50IHBkc2NfaW5pdF9wZihzdHJ1Y3QgcGRzYyAqcGRzYylcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQvcGRzX2NvcmUvbWFpbi5jLTIxOS17XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQvcGRzX2NvcmUvbWFpbi5jPTMzNz1zdGF0aWMgaW50IHBkc2NfcHJvYmUoc3RydWN0IHBjaV9kZXYgKnBkZXYsIGNvbnN0IHN0cnVjdCBwY2lfZGV2aWNlX2lkICplbnQpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQvcGRzX2NvcmUvbWFpbi5jLTM4Mi1cXHRpZiAoaXNfcGYpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYW1kL3Bkc19jb3JlL21haW4uYzozODM6XFx0XFx0ZXJyID0gcGRzY19pbml0X3BmKHBkc2MpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC9wZHNfY29yZS9tYWluLmMtMzg0LVxcdGVsc2VcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMTVUMDc6MjY6MTkuNDAwMjM3MzY4WiIsIlNlcSI6OSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6MzgyODU1Mjc1NywiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipBbmFseXppbmcgdGhlIEZlYXNpYmlsaXR5IG9mIEZ1enppbmcgYSBQQ0kgRHJpdmVyKipcblxuT2theSwgc28gSSdtIGxvb2tpbmcgYXQgdGhpcyBjb2RlIHBhdGgsIGFuZCBpdCdzIGJlaW5nIGNhbGxlZCBmcm9tIGBwZHNjX3Byb2JlYC4gUmlnaHQgb2ZmIHRoZSBiYXQsIG15IGV4cGVydCBpbnR1aXRpb24gaXMgdGVsbGluZyBtZSB0aGlzIGlzIGEgaGFyZHdhcmUtc3BlY2lmaWMgUENJIGRyaXZlci4gVGhpcyBtZWFucyB0aGF0LCByZWFsaXN0aWNhbGx5LCBJJ20gbm90IGdvaW5nIHRvIHNlZSB0aGlzIGNvZGUgZXhlY3V0ZWQgaW4gYSB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudCBsaWtlIEdDRSBvciBRRU1VIHVubGVzcyBJJ3ZlIGdvdCB0aGUgZXhhY3QgaGFyZHdhcmUgaW4gcGxhY2UuIFRoZXJlZm9yZSwgbXkgaW5pdGlhbCBhc3Nlc3NtZW50IGlzIHRoYXQgYFdvcnRoRnV6emluZ2Agc2hvdWxkIGV2YWx1YXRlIHRvIGZhbHNlLiBcblxuQnV0IGhvbGQgb24gYSBzZWNvbmQuLi4gbGV0J3Mgbm90IGJlIHRvbyBoYXN0eS4gTXkgZXhwZXJpZW5jZSBoYXMgdGF1Z2h0IG1lIHRvIGNvbnNpZGVyIGFsbCBwb3NzaWJpbGl0aWVzLiBJcyB0aGVyZSBhIGNoYW5jZSB0aGlzIGNhbiBiZSByZWFjaGVkIHRocm91Z2ggYSBkdW1teSBkZXZpY2Ugb3Igc29tZSBraW5kIG9mIHNvZnR3YXJlIGVtdWxhdGlvbj8gV2hhdCBhYm91dCBgaHdzaW1gIG9yIGB2aGNpYCBmb3IgYHBkc19jb3JlYD8gSXQncyB3b3J0aCBhIHF1aWNrIGNoZWNrIHRvIHJ1bGUgdGhvc2Ugb3V0IGJlZm9yZSBJIG1ha2UgYSBmaW5hbCBkZXRlcm1pbmF0aW9uLiBJIG5lZWQgdG8gZnVsbHkgdW5kZXJzdGFuZCB0aGUgYWNjZXNzaWJpbGl0eSBvZiB0aGlzIGNvZGUgYmVmb3JlIG1ha2luZyBhIGNhbGwuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjY5NTMsIk91dHB1dFRva2VucyI6MzMsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoxMDAsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDctMTVUMDc6MjY6MjMuMjI4NzkyNTA2WiIsIlNlcSI6MTAsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo1ODg2MDUxNiwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJwZHNfY29yZVwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJkcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQvXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImRyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC9LY29uZmlnPTE2OT1jb25maWcgUERTX0NPUkVcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC9LY29uZmlnLTE3Ny1cXHQgIGZvdW5kIGluXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYW1kL0tjb25maWc6MTc4OlxcdCAgXFx1MDAzY2ZpbGU6RG9jdW1lbnRhdGlvbi9uZXR3b3JraW5nL2RldmljZV9kcml2ZXJzL2V0aGVybmV0L2FtZC9wZHNfY29yZS5yc3RcXHUwMDNlLlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC9LY29uZmlnLTE3OS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQvS2NvbmZpZy0xODAtXFx0ICBUbyBjb21waWxlIHRoaXMgZHJpdmVyIGFzIGEgbW9kdWxlLCBjaG9vc2UgTSBoZXJlLiBUaGUgbW9kdWxlXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYW1kL0tjb25maWc6MTgxOlxcdCAgd2lsbCBiZSBjYWxsZWQgcGRzX2NvcmUuXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYW1kL0tjb25maWctMTgyLVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYW1kL01ha2VmaWxlPTE3PW9iai0kKENPTkZJR19BTURfWEdCRSkgKz0geGdiZS9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQvTWFrZWZpbGU6MTg6b2JqLSQoQ09ORklHX1BEU19DT1JFKSArPSBwZHNfY29yZS9cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC9wZHNfY29yZS9NYWtlZmlsZS0zLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC9wZHNfY29yZS9NYWtlZmlsZTo0Om9iai0kKENPTkZJR19QRFNfQ09SRSkgOj0gcGRzX2NvcmUub1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC9wZHNfY29yZS9NYWtlZmlsZS01LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC9wZHNfY29yZS9NYWtlZmlsZTo2OnBkc19jb3JlLXkgOj0gbWFpbi5vIFxcXFxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQvcGRzX2NvcmUvTWFrZWZpbGUtNy1cXHQgICAgICBkZXZsaW5rLm8gXFxcXFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYW1kL3Bkc19jb3JlL2FkbWlucS5jPTg9c3RhdGljIGludCBwZHNjX3Byb2Nlc3Nfbm90aWZ5cShzdHJ1Y3QgcGRzY19xY3EgKnFjcSlcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQvcGRzX2NvcmUvYWRtaW5xLmMtOS17XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYW1kL3Bkc19jb3JlL2FkbWlucS5jOjEwOlxcdHVuaW9uIHBkc19jb3JlX25vdGlmeXFfY29tcCAqY29tcDtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQvcGRzX2NvcmUvYWRtaW5xLmMtMTEtXFx0c3RydWN0IHBkc2MgKnBkc2MgPSBxY3EtXFx1MDAzZXBkc2M7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQvcGRzX2NvcmUvYWRtaW5xLmM9NzA9dm9pZCBwZHNjX3Byb2Nlc3NfYWRtaW5xKHN0cnVjdCBwZHNjX3FjcSAqcWNxKVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC9wZHNfY29yZS9hZG1pbnEuYy03MS17XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYW1kL3Bkc19jb3JlL2FkbWlucS5jOjcyOlxcdHVuaW9uIHBkc19jb3JlX2FkbWlucV9jb21wICpjb21wO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC9wZHNfY29yZS9hZG1pbnEuYy03My1cXHRzdHJ1Y3QgcGRzY19xdWV1ZSAqcSA9IFxcdTAwMjZxY3EtXFx1MDAzZXE7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQvcGRzX2NvcmUvYWRtaW5xLmMtMTI0LVxcdC8qIFJldHVybiB0aGUgaW50ZXJydXB0IGNyZWRpdHMsIG9uZSBmb3IgZWFjaCBjb21wbGV0aW9uICovXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYW1kL3Bkc19jb3JlL2FkbWlucS5jOjEyNTpcXHRwZHNfY29yZV9pbnRyX2NyZWRpdHMoXFx1MDAyNnBkc2MtXFx1MDAzZWludHJfY3RybFtxY3EtXFx1MDAzZWludHhdLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC9wZHNfY29yZS9hZG1pbnEuYy0xMjYtXFx0XFx0XFx0ICAgICAgbnFfd29yayArIGFxX3dvcmssXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQvcGRzX2NvcmUvYWRtaW5xLmM9MTU3PXN0YXRpYyBpbnQgX19wZHNjX2FkbWlucV9wb3N0KHN0cnVjdCBwZHNjICpwZHNjLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC9wZHNfY29yZS9hZG1pbnEuYy0xNTgtXFx0XFx0XFx0ICAgICAgc3RydWN0IHBkc2NfcWNxICpxY3EsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYW1kL3Bkc19jb3JlL2FkbWlucS5jOjE1OTpcXHRcXHRcXHQgICAgICB1bmlvbiBwZHNfY29yZV9hZG1pbnFfY21kICpjbWQsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYW1kL3Bkc19jb3JlL2FkbWlucS5jOjE2MDpcXHRcXHRcXHQgICAgICB1bmlvbiBwZHNfY29yZV9hZG1pbnFfY29tcCAqY29tcClcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQvcGRzX2NvcmUvYWRtaW5xLmMtMTYxLXtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC9wZHNfY29yZS9hZG1pbnEuYy0yMTMtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYW1kL3Bkc19jb3JlL2FkbWlucS5jOjIxNDpcXHRwZHNfY29yZV9kYmVsbF9yaW5nKHBkc2MtXFx1MDAzZWtlcm5fZGJwYWdlLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC9wZHNfY29yZS9hZG1pbnEuYy0yMTUtXFx0XFx0XFx0ICAgIHEtXFx1MDAzZWh3X3R5cGUsIHEtXFx1MDAzZWRidmFsIHwgcS1cXHUwMDNlaGVhZF9pZHgpO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYW1kL3Bkc19jb3JlL2FkbWlucS5jPTIyMz1pbnQgcGRzY19hZG1pbnFfcG9zdChzdHJ1Y3QgcGRzYyAqcGRzYyxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQvcGRzX2NvcmUvYWRtaW5xLmM6MjI0OlxcdFxcdCAgICAgdW5pb24gcGRzX2NvcmVfYWRtaW5xX2NtZCAqY21kLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC9wZHNfY29yZS9hZG1pbnEuYzoyMjU6XFx0XFx0ICAgICB1bmlvbiBwZHNfY29yZV9hZG1pbnFfY29tcCAqY29tcCxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQvcGRzX2NvcmUvYWRtaW5xLmMtMjI2LVxcdFxcdCAgICAgYm9vbCBmYXN0X3BvbGwpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQvcGRzX2NvcmUvYXV4YnVzLmMtMTEtICogQHBmOlxcdFxcdHB0ciB0byB0aGUgUEYgZHJpdmVyJ3MgcHJpdmF0ZSBkYXRhIHN0cnVjdFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC9wZHNfY29yZS9hdXhidXMuYzoxMjogKiBAZGV2bmFtZTpcXHRuYW1lIHRoYXQgaW5jbHVkZXMgc2VydmljZSBpbnRvLCBlLmcuIHBkc19jb3JlLnZEUEFcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQvcGRzX2NvcmUvYXV4YnVzLmMtMTMtICpcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC9wZHNfY29yZS9hdXhidXMuYz0xNz1pbnQgcGRzX2NsaWVudF9yZWdpc3RlcihzdHJ1Y3QgcGRzYyAqcGYsIGNoYXIgKmRldm5hbWUpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYW1kL3Bkc19jb3JlL2F1eGJ1cy5jLTE4LXtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQvcGRzX2NvcmUvYXV4YnVzLmM6MTk6XFx0dW5pb24gcGRzX2NvcmVfYWRtaW5xX2NvbXAgY29tcCA9IHt9O1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC9wZHNfY29yZS9hdXhidXMuYzoyMDpcXHR1bmlvbiBwZHNfY29yZV9hZG1pbnFfY21kIGNtZCA9IHt9O1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC9wZHNfY29yZS9hdXhidXMuYy0yMS1cXHRpbnQgZXJyO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYW1kL3Bkc19jb3JlL2F1eGJ1cy5jPTU3PWludCBwZHNfY2xpZW50X3VucmVnaXN0ZXIoc3RydWN0IHBkc2MgKnBmLCB1MTYgY2xpZW50X2lkKVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC9wZHNfY29yZS9hdXhidXMuYy01OC17XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYW1kL3Bkc19jb3JlL2F1eGJ1cy5jOjU5OlxcdHVuaW9uIHBkc19jb3JlX2FkbWlucV9jb21wIGNvbXAgPSB7fTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQvcGRzX2NvcmUvYXV4YnVzLmM6NjA6XFx0dW5pb24gcGRzX2NvcmVfYWRtaW5xX2NtZCBjbWQgPSB7fTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQvcGRzX2NvcmUvYXV4YnVzLmMtNjEtXFx0aW50IGVycjtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC9wZHNfY29yZS9hdXhidXMuYz03Mz1FWFBPUlRfU1lNQk9MX0dQTChwZHNfY2xpZW50X3VucmVnaXN0ZXIpO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYW1kL3Bkc19jb3JlL2F1eGJ1cy5jLTgwLSAqIEByZXNwOiAgICBwdHIgdG8gYnVmZmVyIHdoZXJlIGFuc3dlciBpcyB0byBiZSBjb3BpZWRcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQvcGRzX2NvcmUvYXV4YnVzLmM6ODE6ICogQGZsYWdzOiAgIG9wdGlvbmFsIGZsYWdzIGZyb20gcGRzX2NvcmVfYWRtaW5xX2ZsYWdzXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYW1kL3Bkc19jb3JlL2F1eGJ1cy5jLTgyLSAqXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQvcGRzX2NvcmUvYXV4YnVzLmMtODYtICogQ2xpZW50IHNlbmRzIHBvaW50ZXJzIHRvIHJlcXVlc3QgYW5kIHJlc3BvbnNlIGJ1ZmZlcnNcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQvcGRzX2NvcmUvYXV4YnVzLmM6ODc6ICogQ29yZSBjb3BpZXMgcmVxdWVzdCBkYXRhIGludG8gcGRzX2NvcmVfY2xpZW50X3JlcXVlc3RfY21kXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYW1kL3Bkc19jb3JlL2F1eGJ1cy5jLTg4LSAqIENvcmUgc2V0cyBvdGhlciBmaWVsZHMgYXMgbmVlZGVkXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQvcGRzX2NvcmUvYXV4YnVzLmM9OTI9aW50IHBkc19jbGllbnRfYWRtaW5xX2NtZChzdHJ1Y3QgcGRzX2F1eGlsaWFyeV9kZXYgKnBhZGV2LFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC9wZHNfY29yZS9hdXhidXMuYzo5MzpcXHRcXHRcXHQgIHVuaW9uIHBkc19jb3JlX2FkbWlucV9jbWQgKnJlcSxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQvcGRzX2NvcmUvYXV4YnVzLmMtOTQtXFx0XFx0XFx0ICBzaXplX3QgcmVxX2xlbixcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQvcGRzX2NvcmUvYXV4YnVzLmM6OTU6XFx0XFx0XFx0ICB1bmlvbiBwZHNfY29yZV9hZG1pbnFfY29tcCAqcmVzcCxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQvcGRzX2NvcmUvYXV4YnVzLmMtOTYtXFx0XFx0XFx0ICB1NjQgZmxhZ3MpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYW1kL3Bkc19jb3JlL2F1eGJ1cy5jLTk3LXtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQvcGRzX2NvcmUvYXV4YnVzLmM6OTg6XFx0dW5pb24gcGRzX2NvcmVfYWRtaW5xX2NtZCBjbWQgPSB7fTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQvcGRzX2NvcmUvYXV4YnVzLmMtOTktXFx0c3RydWN0IHBjaV9kZXYgKnBmX3BkZXY7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQvcGRzX2NvcmUvYXV4YnVzLmM9MTk0PWludCBwZHNjX2F1eGJ1c19kZXZfYWRkKHN0cnVjdCBwZHNjICpjZiwgc3RydWN0IHBkc2MgKnBmLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC9wZHNfY29yZS9hdXhidXMuYzoxOTU6XFx0XFx0XFx0ZW51bSBwZHNfY29yZV92aWZfdHlwZXMgdnQsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYW1kL3Bkc19jb3JlL2F1eGJ1cy5jLTE5Ni1cXHRcXHRcXHRzdHJ1Y3QgcGRzX2F1eGlsaWFyeV9kZXYgKipwZF9wdHIpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQvcGRzX2NvcmUvY29yZS5jPTI4PXZvaWQgcGRzY19pbnRyX2ZyZWUoc3RydWN0IHBkc2MgKnBkc2MsIGludCBpbmRleClcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC9wZHNfY29yZS9jb3JlLmMtNDItXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYW1kL3Bkc19jb3JlL2NvcmUuYzo0MzpcXHRwZHNfY29yZV9pbnRyX21hc2soXFx1MDAyNnBkc2MtXFx1MDAzZWludHJfY3RybFtpbmRleF0sIFBEU19DT1JFX0lOVFJfTUFTS19TRVQpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC9wZHNfY29yZS9jb3JlLmM6NDQ6XFx0cGRzX2NvcmVfaW50cl9jbGVhbihcXHUwMDI2cGRzYy1cXHUwMDNlaW50cl9jdHJsW2luZGV4XSk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYW1kL3Bkc19jb3JlL2NvcmUuYy00NS1cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC9wZHNfY29yZS9jb3JlLmM9NTE9aW50IHBkc2NfaW50cl9hbGxvYyhzdHJ1Y3QgcGRzYyAqcGRzYywgY2hhciAqbmFtZSxcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC9wZHNfY29yZS9jb3JlLmMtNjctXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYW1kL3Bkc19jb3JlL2NvcmUuYzo2ODpcXHRwZHNfY29yZV9pbnRyX2NsZWFuX2ZsYWdzKFxcdTAwMjZwZHNjLVxcdTAwM2VpbnRyX2N0cmxbaW5kZXhdLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC9wZHNfY29yZS9jb3JlLmMtNjktXFx0XFx0XFx0XFx0ICBQRFNfQ09SRV9JTlRSX0NSRURfUkVTRVRfQ09BTEVTQ0UpO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYW1kL3Bkc19jb3JlL2NvcmUuYy04Ni1cXHQvKiBJbml0IHRoZSBkZXZpY2UncyBpbnRyIG1hc2sgKi9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQvcGRzX2NvcmUvY29yZS5jOjg3OlxcdHBkc19jb3JlX2ludHJfY2xlYW4oXFx1MDAyNnBkc2MtXFx1MDAzZWludHJfY3RybFtpbmRleF0pO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC9wZHNfY29yZS9jb3JlLmM6ODg6XFx0cGRzX2NvcmVfaW50cl9tYXNrX2Fzc2VydChcXHUwMDI2cGRzYy1cXHUwMDNlaW50cl9jdHJsW2luZGV4XSwgMSk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYW1kL3Bkc19jb3JlL2NvcmUuYzo4OTpcXHRwZHNfY29yZV9pbnRyX21hc2soXFx1MDAyNnBkc2MtXFx1MDAzZWludHJfY3RybFtpbmRleF0sIFBEU19DT1JFX0lOVFJfTUFTS19TRVQpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC9wZHNfY29yZS9jb3JlLmMtOTAtXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQvcGRzX2NvcmUvY29yZS5jPTMxNj1zdGF0aWMgaW50IHBkc2NfY29yZV9pbml0KHN0cnVjdCBwZHNjICpwZHNjKVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC9wZHNfY29yZS9jb3JlLmMtMzE3LXtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQvcGRzX2NvcmUvY29yZS5jOjMxODpcXHR1bmlvbiBwZHNfY29yZV9kZXZfY29tcCBjb21wID0ge307XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYW1kL3Bkc19jb3JlL2NvcmUuYzozMTk6XFx0dW5pb24gcGRzX2NvcmVfZGV2X2NtZCBjbWQgPSB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYW1kL3Bkc19jb3JlL2NvcmUuYy0zMjAtXFx0XFx0LmluaXQub3Bjb2RlID0gUERTX0NPUkVfQ01EX0lOSVQsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYW1kL3Bkc19jb3JlL2NvcmUuYy0zMjEtXFx0fTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQvcGRzX2NvcmUvY29yZS5jOjMyMjpcXHRzdHJ1Y3QgcGRzX2NvcmVfZGV2X2luaXRfZGF0YV9vdXQgY2lkbztcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQvcGRzX2NvcmUvY29yZS5jOjMyMzpcXHRzdHJ1Y3QgcGRzX2NvcmVfZGV2X2luaXRfZGF0YV9pbiBjaWRpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC9wZHNfY29yZS9jb3JlLmMtMzI0LVxcdHUzMiBkYmlkX2NvdW50O1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYW1kL3Bkc19jb3JlL2NvcmUuYy0zMzMtXFx0XFx0XFx0ICAgICBudW1kZXNjcyxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQvcGRzX2NvcmUvY29yZS5jOjMzNDpcXHRcXHRcXHQgICAgIHNpemVvZih1bmlvbiBwZHNfY29yZV9hZG1pbnFfY21kKSxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQvcGRzX2NvcmUvY29yZS5jOjMzNTpcXHRcXHRcXHQgICAgIHNpemVvZih1bmlvbiBwZHNfY29yZV9hZG1pbnFfY29tcCksXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYW1kL3Bkc19jb3JlL2NvcmUuYy0zMzYtXFx0XFx0XFx0ICAgICAwLCBcXHUwMDI2cGRzYy1cXHUwMDNlYWRtaW5xY3EpO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYW1kL3Bkc19jb3JlL2NvcmUuYy0zNDItXFx0XFx0XFx0ICAgICBQRFNDX05PVElGWVFfTEVOR1RILFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC9wZHNfY29yZS9jb3JlLmM6MzQzOlxcdFxcdFxcdCAgICAgc2l6ZW9mKHN0cnVjdCBwZHNfY29yZV9ub3RpZnlxX2NtZCksXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYW1kL3Bkc19jb3JlL2NvcmUuYzozNDQ6XFx0XFx0XFx0ICAgICBzaXplb2YodW5pb24gcGRzX2NvcmVfbm90aWZ5cV9jb21wKSxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQvcGRzX2NvcmUvY29yZS5jLTM0NS1cXHRcXHRcXHQgICAgIDAsIFxcdTAwMjZwZHNjLVxcdTAwM2Vub3RpZnlxY3EpO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYW1kL3Bkc19jb3JlL2NvcmUuYz00MTQ9c3RhdGljIGludCBwZHNjX3ZpZnR5cGVzX2luaXQoc3RydWN0IHBkc2MgKnBkc2MpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYW1kL3Bkc19jb3JlL2NvcmUuYy00MTUte1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC9wZHNfY29yZS9jb3JlLmM6NDE2OlxcdGVudW0gcGRzX2NvcmVfdmlmX3R5cGVzIHZ0O1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC9wZHNfY29yZS9jb3JlLmMtNDE3LVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYW1kL3Bkc19jb3JlL2NvcmUuYz00OTk9aW50IHBkc2Nfc3RhcnQoc3RydWN0IHBkc2MgKnBkc2MpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYW1kL3Bkc19jb3JlL2NvcmUuYy01MDAte1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC9wZHNfY29yZS9jb3JlLmM6NTAxOlxcdHBkc19jb3JlX2ludHJfbWFzayhcXHUwMDI2cGRzYy1cXHUwMDNlaW50cl9jdHJsW3Bkc2MtXFx1MDAzZWFkbWlucWNxLmludHhdLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC9wZHNfY29yZS9jb3JlLmMtNTAyLVxcdFxcdFxcdCAgIFBEU19DT1JFX0lOVFJfTUFTS19DTEVBUik7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQvcGRzX2NvcmUvY29yZS5jPTUwNz12b2lkIHBkc2Nfc3RvcChzdHJ1Y3QgcGRzYyAqcGRzYylcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC9wZHNfY29yZS9jb3JlLmMtNTE2LVxcdFxcdGlmIChwZHNjLVxcdTAwM2VpbnRyX2luZm9baV0udmVjdG9yKVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC9wZHNfY29yZS9jb3JlLmM6NTE3OlxcdFxcdFxcdHBkc19jb3JlX2ludHJfbWFzayhcXHUwMDI2cGRzYy1cXHUwMDNlaW50cl9jdHJsW2ldLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC9wZHNfY29yZS9jb3JlLmMtNTE4LVxcdFxcdFxcdFxcdFxcdCAgIFBEU19DT1JFX0lOVFJfTUFTS19TRVQpO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYW1kL3Bkc19jb3JlL2NvcmUuYz01Mzk9dm9pZCBwZHNjX2Z3X2Rvd24oc3RydWN0IHBkc2MgKnBkc2MpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYW1kL3Bkc19jb3JlL2NvcmUuYy01NDAte1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC9wZHNfY29yZS9jb3JlLmM6NTQxOlxcdHVuaW9uIHBkc19jb3JlX25vdGlmeXFfY29tcCByZXNldF9ldmVudCA9IHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQvcGRzX2NvcmUvY29yZS5jLTU0Mi1cXHRcXHQucmVzZXQuZWNvZGUgPSBjcHVfdG9fbGUxNihQRFNfRVZFTlRfUkVTRVQpLFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYW1kL3Bkc19jb3JlL2NvcmUuYz01NjU9dm9pZCBwZHNjX2Z3X3VwKHN0cnVjdCBwZHNjICpwZHNjKVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC9wZHNfY29yZS9jb3JlLmMtNTY2LXtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQvcGRzX2NvcmUvY29yZS5jOjU2NzpcXHR1bmlvbiBwZHNfY29yZV9ub3RpZnlxX2NvbXAgcmVzZXRfZXZlbnQgPSB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYW1kL3Bkc19jb3JlL2NvcmUuYy01NjgtXFx0XFx0LnJlc2V0LmVjb2RlID0gY3B1X3RvX2xlMTYoUERTX0VWRU5UX1JFU0VUKSxcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC9wZHNfY29yZS9jb3JlLmgtMTAtI2luY2x1ZGUgXFx1MDAzY2xpbnV4L3Bkcy9wZHNfY29tbW9uLmhcXHUwMDNlXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYW1kL3Bkc19jb3JlL2NvcmUuaDoxMTojaW5jbHVkZSBcXHUwMDNjbGludXgvcGRzL3Bkc19jb3JlX2lmLmhcXHUwMDNlXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYW1kL3Bkc19jb3JlL2NvcmUuaC0xMi0jaW5jbHVkZSBcXHUwMDNjbGludXgvcGRzL3Bkc19hZG1pbnEuaFxcdTAwM2VcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC9wZHNfY29yZS9jb3JlLmg9NDk9c3RydWN0IHBkc2NfcXVldWUge1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYW1kL3Bkc19jb3JlL2NvcmUuaC02Mi1cXHRcXHR2b2lkICpiYXNlO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC9wZHNfY29yZS9jb3JlLmg6NjM6XFx0XFx0c3RydWN0IHBkc19jb3JlX2FkbWluX2NtZCAqYWRtaW5xO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC9wZHNfY29yZS9jb3JlLmgtNjQtXFx0fTtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC9wZHNfY29yZS9jb3JlLmg9MTU0PXN0cnVjdCBwZHNjIHtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC9wZHNfY29yZS9jb3JlLmgtMTc3LVxcdHN0cnVjdCBwZHNjX2RldmluZm8gZGV2X2luZm87XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYW1kL3Bkc19jb3JlL2NvcmUuaDoxNzg6XFx0c3RydWN0IHBkc19jb3JlX2Rldl9pZGVudGl0eSBkZXZfaWRlbnQ7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYW1kL3Bkc19jb3JlL2NvcmUuaC0xNzktXFx0dW5zaWduZWQgaW50IG5pbnRycztcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC9wZHNfY29yZS9jb3JlLmgtMTg4LVxcdHJlZmNvdW50X3QgYWRtaW5xX3JlZmNudDtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQvcGRzX2NvcmUvY29yZS5oOjE4OTpcXHRzdHJ1Y3QgcGRzX2NvcmVfZGV2X2luZm9fcmVncyBfX2lvbWVtICppbmZvX3JlZ3M7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYW1kL3Bkc19jb3JlL2NvcmUuaDoxOTA6XFx0c3RydWN0IHBkc19jb3JlX2Rldl9jbWRfcmVncyBfX2lvbWVtICpjbWRfcmVncztcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQvcGRzX2NvcmUvY29yZS5oOjE5MTpcXHRzdHJ1Y3QgcGRzX2NvcmVfaW50ciBfX2lvbWVtICppbnRyX2N0cmw7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYW1kL3Bkc19jb3JlL2NvcmUuaC0xOTItXFx0dTY0IF9faW9tZW0gKmludHJfc3RhdHVzO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYW1kL3Bkc19jb3JlL2NvcmUuaC0yMDMtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYW1kL3Bkc19jb3JlL2NvcmUuaDoyMDQ6LyoqIGVudW0gcGRzX2NvcmVfZGJlbGxfYml0cyAtIGJpdHdpc2UgY29tcG9zaXRpb24gb2YgZGJlbGwgdmFsdWVzLlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC9wZHNfY29yZS9jb3JlLmgtMjA1LSAqXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQvcGRzX2NvcmUvY29yZS5oLTIyMC0gKi9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQvcGRzX2NvcmUvY29yZS5oOjIyMTplbnVtIHBkc19jb3JlX2RiZWxsX2JpdHMge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC9wZHNfY29yZS9jb3JlLmgtMjIyLVxcdFBEU19DT1JFX0RCRUxMX1FJRF9NQVNLXFx0XFx0PSAweGZmZmZmZixcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC9wZHNfY29yZS9jb3JlLmgtMjQxLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC9wZHNfY29yZS9jb3JlLmg6MjQyOnN0YXRpYyBpbmxpbmUgdm9pZCBwZHNfY29yZV9kYmVsbF9yaW5nKHU2NCBfX2lvbWVtICpkYl9wYWdlLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC9wZHNfY29yZS9jb3JlLmg6MjQzOlxcdFxcdFxcdFxcdCAgICAgICBlbnVtIHBkc19jb3JlX2xvZ2ljYWxfcXR5cGUgcXR5cGUsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYW1kL3Bkc19jb3JlL2NvcmUuaC0yNDQtXFx0XFx0XFx0XFx0ICAgICAgIHU2NCB2YWwpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQvcGRzX2NvcmUvY29yZS5oPTI3Nz12b2lkIHBkc2NfZGVidWdmc19kZWxfcWNxKHN0cnVjdCBwZHNjX3FjcSAqcWNxKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQvcGRzX2NvcmUvY29yZS5oLTI3OC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQvcGRzX2NvcmUvY29yZS5oOjI3OTppbnQgcGRzY19lcnJfdG9fZXJybm8oZW51bSBwZHNfY29yZV9zdGF0dXNfY29kZSBjb2RlKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQvcGRzX2NvcmUvY29yZS5oLTI4MC1ib29sIHBkc2NfaXNfZndfcnVubmluZyhzdHJ1Y3QgcGRzYyAqcGRzYyk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYW1kL3Bkc19jb3JlL2NvcmUuaD0yODE9Ym9vbCBwZHNjX2lzX2Z3X2dvb2Qoc3RydWN0IHBkc2MgKnBkc2MpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC9wZHNfY29yZS9jb3JlLmg6MjgyOmludCBwZHNjX2RldmNtZChzdHJ1Y3QgcGRzYyAqcGRzYywgdW5pb24gcGRzX2NvcmVfZGV2X2NtZCAqY21kLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC9wZHNfY29yZS9jb3JlLmg6MjgzOlxcdFxcdHVuaW9uIHBkc19jb3JlX2Rldl9jb21wICpjb21wLCBpbnQgbWF4X3NlY29uZHMpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC9wZHNfY29yZS9jb3JlLmg6Mjg0OmludCBwZHNjX2RldmNtZF9sb2NrZWQoc3RydWN0IHBkc2MgKnBkc2MsIHVuaW9uIHBkc19jb3JlX2Rldl9jbWQgKmNtZCxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQvcGRzX2NvcmUvY29yZS5oOjI4NTpcXHRcXHQgICAgICAgdW5pb24gcGRzX2NvcmVfZGV2X2NvbXAgKmNvbXAsIGludCBtYXhfc2Vjb25kcyk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYW1kL3Bkc19jb3JlL2NvcmUuaC0yODYtaW50IHBkc2NfZGV2Y21kX2luaXQoc3RydWN0IHBkc2MgKnBkc2MpO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYW1kL3Bkc19jb3JlL2NvcmUuaD0zMDg9aW50IHBkc2NfYXV4YnVzX2Rldl9hZGQoc3RydWN0IHBkc2MgKmNmLCBzdHJ1Y3QgcGRzYyAqcGYsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYW1kL3Bkc19jb3JlL2NvcmUuaDozMDk6XFx0XFx0XFx0ZW51bSBwZHNfY29yZV92aWZfdHlwZXMgdnQsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYW1kL3Bkc19jb3JlL2NvcmUuaC0zMTAtXFx0XFx0XFx0c3RydWN0IHBkc19hdXhpbGlhcnlfZGV2ICoqcGRfcHRyKTtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC9wZHNfY29yZS9kZWJ1Z2ZzLmM9MzM9c3RhdGljIGludCBpZGVudGl0eV9zaG93KHN0cnVjdCBzZXFfZmlsZSAqc2VxLCB2b2lkICp2KVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC9wZHNfY29yZS9kZWJ1Z2ZzLmMtMzQte1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC9wZHNfY29yZS9kZWJ1Z2ZzLmM6MzU6XFx0c3RydWN0IHBkc19jb3JlX2Rldl9pZGVudGl0eSAqaWRlbnQ7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYW1kL3Bkc19jb3JlL2RlYnVnZnMuYy0zNi1cXHRzdHJ1Y3QgcGRzYyAqcGRzYyA9IHNlcS1cXHUwMDNlcHJpdmF0ZTtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC9wZHNfY29yZS9kZXYuYy05LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC9wZHNfY29yZS9kZXYuYzoxMDppbnQgcGRzY19lcnJfdG9fZXJybm8oZW51bSBwZHNfY29yZV9zdGF0dXNfY29kZSBjb2RlKVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC9wZHNfY29yZS9kZXYuYy0xMS17XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQvcGRzX2NvcmUvZGV2LmM9MTI5PXN0YXRpYyBpbnQgcGRzY19kZXZjbWRfd2FpdChzdHJ1Y3QgcGRzYyAqcGRzYywgdTggb3Bjb2RlLCBpbnQgbWF4X3NlY29uZHMpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQvcGRzX2NvcmUvZGV2LmMtMTg5LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC9wZHNfY29yZS9kZXYuYzoxOTA6aW50IHBkc2NfZGV2Y21kX2xvY2tlZChzdHJ1Y3QgcGRzYyAqcGRzYywgdW5pb24gcGRzX2NvcmVfZGV2X2NtZCAqY21kLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC9wZHNfY29yZS9kZXYuYzoxOTE6XFx0XFx0ICAgICAgIHVuaW9uIHBkc19jb3JlX2Rldl9jb21wICpjb21wLCBpbnQgbWF4X3NlY29uZHMpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYW1kL3Bkc19jb3JlL2Rldi5jLTE5Mi17XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQvcGRzX2NvcmUvZGV2LmMtMjA5LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC9wZHNfY29yZS9kZXYuYzoyMTA6aW50IHBkc2NfZGV2Y21kKHN0cnVjdCBwZHNjICpwZHNjLCB1bmlvbiBwZHNfY29yZV9kZXZfY21kICpjbWQsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYW1kL3Bkc19jb3JlL2Rldi5jOjIxMTpcXHRcXHR1bmlvbiBwZHNfY29yZV9kZXZfY29tcCAqY29tcCwgaW50IG1heF9zZWNvbmRzKVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC9wZHNfY29yZS9kZXYuYy0yMTIte1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYW1kL3Bkc19jb3JlL2Rldi5jPTIyMj1pbnQgcGRzY19kZXZjbWRfaW5pdChzdHJ1Y3QgcGRzYyAqcGRzYylcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQvcGRzX2NvcmUvZGV2LmMtMjIzLXtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQvcGRzX2NvcmUvZGV2LmM6MjI0OlxcdHVuaW9uIHBkc19jb3JlX2Rldl9jb21wIGNvbXAgPSB7fTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQvcGRzX2NvcmUvZGV2LmM6MjI1OlxcdHVuaW9uIHBkc19jb3JlX2Rldl9jbWQgY21kID0ge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC9wZHNfY29yZS9kZXYuYy0yMjYtXFx0XFx0Lm9wY29kZSA9IFBEU19DT1JFX0NNRF9JTklULFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYW1kL3Bkc19jb3JlL2Rldi5jPTIzMj1pbnQgcGRzY19kZXZjbWRfcmVzZXQoc3RydWN0IHBkc2MgKnBkc2MpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYW1kL3Bkc19jb3JlL2Rldi5jLTIzMy17XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYW1kL3Bkc19jb3JlL2Rldi5jOjIzNDpcXHR1bmlvbiBwZHNfY29yZV9kZXZfY29tcCBjb21wID0ge307XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYW1kL3Bkc19jb3JlL2Rldi5jOjIzNTpcXHR1bmlvbiBwZHNfY29yZV9kZXZfY21kIGNtZCA9IHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQvcGRzX2NvcmUvZGV2LmMtMjM2LVxcdFxcdC5yZXNldC5vcGNvZGUgPSBQRFNfQ09SRV9DTURfUkVTRVQsXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQvcGRzX2NvcmUvZGV2LmM9MjQ1PXN0YXRpYyBpbnQgcGRzY19kZXZjbWRfaWRlbnRpZnlfbG9ja2VkKHN0cnVjdCBwZHNjICpwZHNjKVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC9wZHNfY29yZS9kZXYuYy0yNDYte1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC9wZHNfY29yZS9kZXYuYzoyNDc6XFx0dW5pb24gcGRzX2NvcmVfZGV2X2NvbXAgY29tcCA9IHt9O1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC9wZHNfY29yZS9kZXYuYzoyNDg6XFx0dW5pb24gcGRzX2NvcmVfZGV2X2NtZCBjbWQgPSB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYW1kL3Bkc19jb3JlL2Rldi5jLTI0OS1cXHRcXHQuaWRlbnRpZnkub3Bjb2RlID0gUERTX0NPUkVfQ01EX0lERU5USUZZLFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYW1kL3Bkc19jb3JlL2Rldi5jPTI3Nj1zdGF0aWMgaW50IHBkc2NfaWRlbnRpZnkoc3RydWN0IHBkc2MgKnBkc2MpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYW1kL3Bkc19jb3JlL2Rldi5jLTI3Ny17XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYW1kL3Bkc19jb3JlL2Rldi5jOjI3ODpcXHRzdHJ1Y3QgcGRzX2NvcmVfZHJ2X2lkZW50aXR5IGRydiA9IHt9O1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC9wZHNfY29yZS9kZXYuYy0yNzktXFx0c2l6ZV90IHN6O1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYW1kL3Bkc19jb3JlL2RldmxpbmsuYz0xMDI9aW50IHBkc2NfZGxfaW5mb19nZXQoc3RydWN0IGRldmxpbmsgKmRsLCBzdHJ1Y3QgZGV2bGlua19pbmZvX3JlcSAqcmVxLFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYW1kL3Bkc19jb3JlL2RldmxpbmsuYy0xMDQte1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC9wZHNfY29yZS9kZXZsaW5rLmM6MTA1OlxcdHVuaW9uIHBkc19jb3JlX2Rldl9jbWQgY21kID0ge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC9wZHNfY29yZS9kZXZsaW5rLmMtMTA2LVxcdFxcdC5md19jb250cm9sLm9wY29kZSA9IFBEU19DT1JFX0NNRF9GV19DT05UUk9MLFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYW1kL3Bkc19jb3JlL2RldmxpbmsuYy0xMDgtXFx0fTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQvcGRzX2NvcmUvZGV2bGluay5jOjEwOTpcXHRzdHJ1Y3QgcGRzX2NvcmVfZndfbGlzdF9pbmZvIGZ3X2xpc3QgPSB7fTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQvcGRzX2NvcmUvZGV2bGluay5jLTExMC1cXHRzdHJ1Y3QgcGRzYyAqcGRzYyA9IGRldmxpbmtfcHJpdihkbCk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYW1kL3Bkc19jb3JlL2RldmxpbmsuYzoxMTE6XFx0dW5pb24gcGRzX2NvcmVfZGV2X2NvbXAgY29tcDtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQvcGRzX2NvcmUvZGV2bGluay5jLTExMi1cXHRjaGFyIGJ1ZlszMl07XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQvcGRzX2NvcmUvZncuYz0xNz1zdGF0aWMgaW50IHBkc2NfZGV2Y21kX2Z3X2Rvd25sb2FkX2xvY2tlZChzdHJ1Y3QgcGRzYyAqcGRzYywgdTY0IGFkZHIsXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQvcGRzX2NvcmUvZncuYy0xOS17XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYW1kL3Bkc19jb3JlL2Z3LmM6MjA6XFx0dW5pb24gcGRzX2NvcmVfZGV2X2NtZCBjbWQgPSB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYW1kL3Bkc19jb3JlL2Z3LmMtMjEtXFx0XFx0LmZ3X2Rvd25sb2FkLm9wY29kZSA9IFBEU19DT1JFX0NNRF9GV19ET1dOTE9BRCxcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC9wZHNfY29yZS9mdy5jLTI1LVxcdH07XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYW1kL3Bkc19jb3JlL2Z3LmM6MjY6XFx0dW5pb24gcGRzX2NvcmVfZGV2X2NvbXAgY29tcDtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQvcGRzX2NvcmUvZncuYy0yNy1cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC9wZHNfY29yZS9mdy5jPTMxPXN0YXRpYyBpbnQgcGRzY19kZXZjbWRfZndfaW5zdGFsbChzdHJ1Y3QgcGRzYyAqcGRzYylcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQvcGRzX2NvcmUvZncuYy0zMi17XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYW1kL3Bkc19jb3JlL2Z3LmM6MzM6XFx0dW5pb24gcGRzX2NvcmVfZGV2X2NtZCBjbWQgPSB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYW1kL3Bkc19jb3JlL2Z3LmMtMzQtXFx0XFx0LmZ3X2NvbnRyb2wub3Bjb2RlID0gUERTX0NPUkVfQ01EX0ZXX0NPTlRST0wsXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQvcGRzX2NvcmUvZncuYy0zNi1cXHR9O1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC9wZHNfY29yZS9mdy5jOjM3OlxcdHVuaW9uIHBkc19jb3JlX2Rldl9jb21wIGNvbXA7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYW1kL3Bkc19jb3JlL2Z3LmMtMzgtXFx0aW50IGVycjtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC9wZHNfY29yZS9mdy5jPTQ3PXN0YXRpYyBpbnQgcGRzY19kZXZjbWRfZndfYWN0aXZhdGUoc3RydWN0IHBkc2MgKnBkc2MsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYW1kL3Bkc19jb3JlL2Z3LmM6NDg6XFx0XFx0XFx0XFx0ICAgZW51bSBwZHNfY29yZV9md19zbG90IHNsb3QpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYW1kL3Bkc19jb3JlL2Z3LmMtNDkte1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC9wZHNfY29yZS9mdy5jOjUwOlxcdHVuaW9uIHBkc19jb3JlX2Rldl9jbWQgY21kID0ge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC9wZHNfY29yZS9mdy5jLTUxLVxcdFxcdC5md19jb250cm9sLm9wY29kZSA9IFBEU19DT1JFX0NNRF9GV19DT05UUk9MLFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYW1kL3Bkc19jb3JlL2Z3LmMtNTQtXFx0fTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQvcGRzX2NvcmUvZncuYzo1NTpcXHR1bmlvbiBwZHNfY29yZV9kZXZfY29tcCBjb21wO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC9wZHNfY29yZS9mdy5jLTU2LVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYW1kL3Bkc19jb3JlL2Z3LmM9NjA9c3RhdGljIGludCBwZHNjX2Z3X3N0YXR1c19sb25nX3dhaXQoc3RydWN0IHBkc2MgKnBkc2MsXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQvcGRzX2NvcmUvZncuYy02NS17XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYW1kL3Bkc19jb3JlL2Z3LmM6NjY6XFx0dW5pb24gcGRzX2NvcmVfZGV2X2NtZCBjbWQgPSB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYW1kL3Bkc19jb3JlL2Z3LmMtNjctXFx0XFx0LmZ3X2NvbnRyb2wub3Bjb2RlID0gUERTX0NPUkVfQ01EX0ZXX0NPTlRST0wsXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQvcGRzX2NvcmUvZncuYy02OS1cXHR9O1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC9wZHNfY29yZS9mdy5jOjcwOlxcdHVuaW9uIHBkc19jb3JlX2Rldl9jb21wIGNvbXA7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYW1kL3Bkc19jb3JlL2Z3LmMtNzEtXFx0dW5zaWduZWQgbG9uZyBzdGFydF90aW1lO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYW1kL3Bkc19jb3JlL2Z3LmM9OTg9aW50IHBkc2NfZmlybXdhcmVfdXBkYXRlKHN0cnVjdCBwZHNjICpwZHNjLCBjb25zdCBzdHJ1Y3QgZmlybXdhcmUgKmZ3LFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYW1kL3Bkc19jb3JlL2Z3LmMtMTI0LVxcdG5leHRfaW50ZXJ2YWwgPSAwO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC9wZHNfY29yZS9mdy5jOjEyNTpcXHRkYXRhX2FkZHIgPSBvZmZzZXRvZihzdHJ1Y3QgcGRzX2NvcmVfZGV2X2NtZF9yZWdzLCBkYXRhKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQvcGRzX2NvcmUvZncuYy0xMjYtXFx0d2hpbGUgKG9mZnNldCBcXHUwMDNjIGZ3LVxcdTAwM2VzaXplKSB7XFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTE1VDA3OjI2OjIzLjI4NzY2NDI0MVoiLCJTZXEiOjExLCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo5MTUwNjEwMjQwLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkFuYWx5emluZyB0aGUgRnV6emluZyBQb3RlbnRpYWwgb2YgYFBEU19DT1JFYCoqXG5cbk9rYXksIHNvIEknbSBsb29raW5nIGF0IHRoaXMgYFBEU19DT1JFYCBkcml2ZXIsIGFuZCBpdCdzIHByZXR0eSBjbGVhciBpdCdzIGEgUENJIGRyaXZlciBkZXNpZ25lZCBmb3IgQU1EIFBlbnNhbmRvIENvcmUgaGFyZHdhcmUuIFRoZSBrZXkgaXNzdWUgaGVyZSBpcyB0aGF0IHRoZXJlJ3Mgbm8gc29mdHdhcmUgZW11bGF0aW9uIGZvciBpdCBpbiB0aGUga2VybmVsLiBUaGlzIG1lYW5zIGl0J3Mgbm90IGdvaW5nIHRvIGJlIGFjY2Vzc2libGUgd2l0aGluIGEgdHlwaWNhbCB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudCwgbGlrZSBHQ0Ugb3IgUUVNVSwgdW5sZXNzIHlvdSd2ZSBnb3QgdGhlIGFjdHVhbCBoYXJkd2FyZSBwcmVzZW50LlxuXG5NeSBpbml0aWFsIHRob3VnaHQgd2FzLCBcIkNvdWxkIGl0IGJlIHJlYWNoZWQgdmlhIHNvbWV0aGluZyBsaWtlIGB2aGNpYCBvciBhIGBkdW1teWAgaW50ZXJmYWNlP1wiIEJ1dCBubywgaXQncyBqdXN0IGEgc3RhbmRhcmQgUENJIGRyaXZlciAoYHBjaV9kcml2ZXIgcGRzY19kcml2ZXJgKS4gVW5sZXNzIGEgUENJIGRldmljZSB3aXRoIHRoZSByaWdodCB2ZW5kb3IgYW5kIGRldmljZSBJRCBpcyBwcmVzZW50LCB0aGUgZHJpdmVyJ3MgYHByb2JlYCBmdW5jdGlvbiB3b24ndCBldmVuIGJlIHRyaWdnZXJlZC5cblxuVGhlbiBJIHdvbmRlcmVkIGFib3V0IFN5emthbGxlci4gRG9lcyBTeXprYWxsZXIgcHJvdmlkZSBzb21lIGdlbmVyaWMgUENJIGRldmljZSBpbmplY3Rpb24gbWVjaGFuaXNtLCBtYXliZSB1c2luZyBgdmhjaWAgKFZpcnR1YWwgSG9zdCBDb250cm9sbGVyIEludGVyZmFjZSkgb3Igc29tZXRoaW5nIHNpbWlsYXIsIGxpa2Ugd2l0aCBgc3l6X2t2bV9zZXR1cF9jcHVgIG9yIHBlcmhhcHMgYSBgc3l6X3BjaV9kZXZpY2VgIGNhbGw/IE5vLCBpdCBkb2Vzbid0LiBTeXprYWxsZXIgZG9lc24ndCBoYXZlIGEgZ2VuZXJpYyBQQ0kgZW11bGF0b3IgY2FwYWJsZSBvZiBtaW1pY2tpbmcgdGhlIGNvbXBsZXhpdGllcyBvZiBhcmJpdHJhcnkgaGFyZHdhcmUgcmVnaXN0ZXJzLiBXaGlsZSBTeXprYWxsZXIgaGFzIGV2b2x2ZWQgdG8gcHJvdmlkZSBzb21lIGZ1enppbmcgc3VwcG9ydCBmb3IgUENJIGRldmljZXMsIGl0IGRvZXMgbm90IGRvIHNvIGluIGEgd2F5IHRoYXQgYWxsb3dzIHVzIHRvIHRhcmdldCBgUERTX0NPUkVgLlxuXG5JIHRyaWVkIHRvIHJlY2FsbCBpZiB0aGVyZSB3ZXJlIGFueSByZWNlbnQgYWRkaXRpb25zIHRvIFN5emthbGxlciByZWdhcmRpbmcgUENJIGZ1enppbmcgdGhyb3VnaCBgdmhjaWAgb3IgYHZmaW9gLCBidXQgdGhlIGFuc3dlciBpcyBuby4gU3l6a2FsbGVyIGhhcyBgc3l6X2dlbmV0bGlua2AsIGFuZCBJIGtub3cgaXQgaGFzIGNhbGxzIGxpa2UgYHN5el91c2JfY29ubmVjdGAgZm9yIFVTQiwgYHN5el84MDIxMV9qb2luX2lic3NgIGZvciBXaS1GaSwgYnV0IEkgYW0gZmFtaWxpYXIgd2l0aCBTeXprYWxsZXIsIGFuZCBJJ20gY2VydGFpbiB0aGF0IHRoZSBQQ0kgc2lkZSBoYXMgbm8gZXF1aXZhbGVudCBhYmlsaXR5IHRvIGVtdWxhdGUgYXJiaXRyYXJ5IFBDSSBoYXJkd2FyZS5cblxuU28gdGhlIGJvdHRvbSBsaW5lIGlzOiBUaGUgY29kZSBpc24ndCByZWFjaGFibGUgaW4gYSBzdGFuZGFyZCB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudC4gV2l0aG91dCBzb2Z0d2FyZSBlbXVsYXRpb24sIHRoaXMgZHJpdmVyIGlzIGVmZmVjdGl2ZWx5IGxvY2tlZCBiZWhpbmQgYSBoYXJkd2FyZSByZXF1aXJlbWVudC5cblxuSnVzdCB0byBiZSBhYnNvbHV0ZWx5IHN1cmUsIEknbGwgcXVpY2tseSBkb3VibGUtY2hlY2sgZm9yIGFueSBzaWduIG9mIGBwZHNfY29yZWAgZW11bGF0aW9uIGFueXdoZXJlLiBJJ2xsIGRvIGEgcXVpY2sgZ3JlcCBhbmQgbWFrZSBzdXJlIHRoZXJlIGlzbid0IGFueXRoaW5nIGhpZGluZyBpbiBzb21lIG9ic2N1cmUgY29ybmVyIG9mIHRoZSBjb2RlYmFzZS5cblxuWWVwLCBJIGdyZXBwZWQgZm9yIGBwZHNfY29yZWAgYW5kIGZvdW5kIG5vdGhpbmcgcmVzZW1ibGluZyBlbXVsYXRpb24uXG5cblRoZXJlZm9yZSwgbXkgZmluYWwgY29uY2x1c2lvbiBpcyBgV29ydGhGdXp6aW5nOiBmYWxzZWAuIE15IHJlYXNvbmluZyBpcyB0aGF0IHRoaXMgaXMgYSBoYXJkd2FyZS1zcGVjaWZpYyBQQ0kgZHJpdmVyIHRoYXQgbGFja3Mgc29mdHdhcmUgZW11bGF0aW9uLiBJdCdzIHNpbXBseSB1bnJlYWNoYWJsZSBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBHQ0Ugb3IgUUVNVS5cblxuSSdsbCBjaGVjayBpZiBgcGRzY19pbml0X3BmYCBpcyBjYWxsZWQgZnJvbSBhbnl3aGVyZSBlbHNlLlxuXG5cbiIsIklucHV0VG9rZW5zIjoxNTU2NiwiT3V0cHV0VG9rZW5zIjoyNiwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjUwOSwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0xNVQwNzoyNjozMi40MzgyNzczNzFaIiwiU2VxIjoxMiwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjIyNzE0NTczNTcsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwicGRzY19pbml0X3BmXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcIlwiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJkcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQvcGRzX2NvcmUvbWFpbi5jPTIwOD1zdGF0aWMgY29uc3Qgc3RydWN0IGRldmxpbmtfcGFyYW0gcGRzY19kbF9wYXJhbXNbXSA9IHtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC9wZHNfY29yZS9tYWluLmMtMjE3LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC9wZHNfY29yZS9tYWluLmM6MjE4OnN0YXRpYyBpbnQgcGRzY19pbml0X3BmKHN0cnVjdCBwZHNjICpwZHNjKVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC9wZHNfY29yZS9tYWluLmMtMjE5LXtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC9wZHNfY29yZS9tYWluLmM9MzM3PXN0YXRpYyBpbnQgcGRzY19wcm9iZShzdHJ1Y3QgcGNpX2RldiAqcGRldiwgY29uc3Qgc3RydWN0IHBjaV9kZXZpY2VfaWQgKmVudClcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC9wZHNfY29yZS9tYWluLmMtMzgyLVxcdGlmIChpc19wZilcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQvcGRzX2NvcmUvbWFpbi5jOjM4MzpcXHRcXHRlcnIgPSBwZHNjX2luaXRfcGYocGRzYyk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYW1kL3Bkc19jb3JlL21haW4uYy0zODQtXFx0ZWxzZVxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0xNVQwNzoyNjozNC43MDk3NDIwOThaIiwiU2VxIjoxMywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6MzM3OTgwODgzMSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiT2theSwgaGVyZSdzIG15IGludGVycHJldGF0aW9uIG9mIHRob3NlIHRob3VnaHRzLCB0YWlsb3JlZCBmb3IgYW4gZXhwZXJ0IGF1ZGllbmNlLCBwcmVzZW50ZWQgaW4gdGhlIGZpcnN0IHBlcnNvbjpcblxuKipEZWNvZGluZyB0aGUgRHJpdmVyIFByb2JlKipcblxuQWxyaWdodCwgbGV0J3MgYnJlYWsgdGhpcyBkb3duLiBNeSBtaW5kIGlzIGltbWVkaWF0ZWx5IGRyYXduIHRvIHRoZSBjYWxsIHN0YWNrLiBUaGUgY3J1Y2lhbCBiaXQgaGVyZSBpcyB0aGF0IHRoaXMgcGFydGljdWxhciBwaWVjZSBvZiBsb2dpYyBpcyAqZXhjbHVzaXZlbHkqIGludm9rZWQgZnJvbSBgcGRzY19wcm9iZWAuIFRoYXQncyB0aGUgZW50cnkgcG9pbnQuIEFuZCBgcGRzY19wcm9iZWAsIGFzIEknbSByZW1pbmRlZCwgaXMgdGhlIHByb2JlIGZ1bmN0aW9uIGRlZmluZWQgd2l0aGluIHRoZSBgcGRzY19kcml2ZXJgIHN0cnVjdHVyZS4gRXNzZW50aWFsbHksIHdlJ3JlIGxvb2tpbmcgYXQgdGhlIGNvcmUgb2YgdGhlIGRyaXZlcidzIGluaXRpYWxpemF0aW9uIHNlcXVlbmNlLCB0aGUgcG9pbnQgd2hlcmUgaXQgYXR0ZW1wdHMgdG8gaWRlbnRpZnkgYW5kIGNvbmZpZ3VyZSB0aGUgdGFyZ2V0IGRldmljZS4gVGhpcyBpcyB3aGVyZSB0aGUgbWFnaWMgKG9yIHRoZSB0cm91Ymxlc2hvb3RpbmcpIGJlZ2lucy4gS25vd2luZyB0aGF0IHRoaXMgaXMgdGhlIHNvbGUgZW50cnkgcG9pbnQgcHJvdmlkZXMgY3JpdGljYWwgY29udGV4dCBmb3IgZGVidWdnaW5nIG9yIGF1ZGl0aW5nIHRoZSBkcml2ZXIncyBiZWhhdmlvci4gV2Uga25vdyBleGFjdGx5IHdoZXJlIHRvIGxvb2sgZm9yIHRoZSBpbml0aWFsIHRyaWdnZXJzIGFuZCBkZXBlbmRlbmNpZXMuIEFueSBpc3N1ZXMgaW4gaGVyZSBhcmUgZm91bmRhdGlvbmFsOyB0aGV5J2xsIGNhc2NhZGUgb3V0d2FyZHMuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjE2OTc5LCJPdXRwdXRUb2tlbnMiOjI0LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MzAsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDctMTVUMDc6MjY6MzguMDg5NTUzNjg5WiIsIlNlcSI6MTQsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoxODUwNzU4Mzk5LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcInBkc2NfcHJvYmVcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImRyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC9wZHNfY29yZS9tYWluLmM9MzM1PXN0YXRpYyBERUZJTkVfSURBKHBkc2NfaWRhKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQvcGRzX2NvcmUvbWFpbi5jLTMzNi1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQvcGRzX2NvcmUvbWFpbi5jOjMzNzpzdGF0aWMgaW50IHBkc2NfcHJvYmUoc3RydWN0IHBjaV9kZXYgKnBkZXYsIGNvbnN0IHN0cnVjdCBwY2lfZGV2aWNlX2lkICplbnQpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYW1kL3Bkc19jb3JlL21haW4uYy0zMzgte1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYW1kL3Bkc19jb3JlL21haW4uYz01ODI9c3RhdGljIHN0cnVjdCBwY2lfZHJpdmVyIHBkc2NfZHJpdmVyID0ge1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYW1kL3Bkc19jb3JlL21haW4uYy01ODQtXFx0LmlkX3RhYmxlID0gcGRzY19pZF90YWJsZSxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQvcGRzX2NvcmUvbWFpbi5jOjU4NTpcXHQucHJvYmUgPSBwZHNjX3Byb2JlLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC9wZHNfY29yZS9tYWluLmMtNTg2LVxcdC5yZW1vdmUgPSBwZHNjX3JlbW92ZSxcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMTVUMDc6MjY6MzkuOTQwMzIwOTY4WiIsIlNlcSI6MTUsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjM1NDg4NjA3MTksIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqTXkgQXNzZXNzbWVudCBvZiB0aGUgUENJIERyaXZlciBQcm9iZSBGdW5jdGlvbioqXG5cbk9rYXksIHNvIEknbSBsb29raW5nIGF0IHRoaXMgY29kZSBhbmQgaXQncyBwcmV0dHkgY2xlYXIgdGhpcyBpcyBzb2xlbHkgYSBQQ0kgZHJpdmVyIHByb2JlIGZ1bmN0aW9uLiBUaGVyZSdzIG5vIGVtdWxhdGlvbiBvZiB0aGUgQU1EIFBlbnNhbmRvIENvcmUgaGFyZHdhcmUgaW4gYW55IHZpcnR1YWxpemVkIGVudmlyb25tZW50cy4gVGhhdCBtZWFucyB0aGlzIHNwZWNpZmljIGNvZGUgcGF0aCBpcyBjb21wbGV0ZWx5IHVucmVhY2hhYmxlIGlmIHdlJ3JlIHJ1bm5pbmcgaW4gYSBWTS4gR2l2ZW4gdGhhdCBsaW1pdGF0aW9uLCBJJ20gZ29pbmcgdG8gc2V0IGBXb3J0aEZ1enppbmc6IGZhbHNlYC4gVGhlcmUncyBubyBwb2ludCBpbiBzcGVuZGluZyByZXNvdXJjZXMgdHJ5aW5nIHRvIGZ1enogc29tZXRoaW5nIHRoYXQgY2FuJ3QgYmUgdHJpZ2dlcmVkIGluIHRoZSB0YXJnZXQgZW52aXJvbm1lbnQuIEl0J3Mgc2ltcGx5IG5vdCB3b3J0aCB0aGUgZWZmb3J0LiBJIG5lZWQgdG8gZm9jdXMgbXkgZW5lcmd5IG9uIHBhdGhzIHRoYXQgYXJlIGFjdHVhbGx5IGV4cG9zZWQuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjE3NTEzLCJPdXRwdXRUb2tlbnMiOjk0LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6NDgsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDctMTVUMDc6MjY6NDMuNDg5MTg0NzQ3WiIsIlNlcSI6MTYsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6InNldC1yZXN1bHRzIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MjQ1OTAsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IFtdLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIGluaXRpYWxpemF0aW9uIHBhdGggb2YgdGhlIEFNRCBQRFMgQ29yZSBQQ0kgZHJpdmVyIChgcGRzY19pbml0X3BmYCkuIFRoaXMgaXMgYSBoYXJkd2FyZS1zcGVjaWZpYyBQQ0kgZHJpdmVyIHRoYXQgbGFja3Mgc29mdHdhcmUgZW11bGF0aW9uIGluIHRoZSBrZXJuZWwsIG1lYW5pbmcgaXRzIHByb2JlIGFuZCBpbml0aWFsaXphdGlvbiBwYXRocyBhcmUgdW5yZWFjaGFibGUgaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgR0NFIG9yIFFFTVUgdXNlZCBieSBzeXprYWxsZXIuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IGZhbHNlXG59IiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IG51bGwsXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBtb2RpZmllcyB0aGUgaW5pdGlhbGl6YXRpb24gcGF0aCBvZiB0aGUgQU1EIFBEUyBDb3JlIFBDSSBkcml2ZXIgKGBwZHNjX2luaXRfcGZgKS4gVGhpcyBpcyBhIGhhcmR3YXJlLXNwZWNpZmljIFBDSSBkcml2ZXIgdGhhdCBsYWNrcyBzb2Z0d2FyZSBlbXVsYXRpb24gaW4gdGhlIGtlcm5lbCwgbWVhbmluZyBpdHMgcHJvYmUgYW5kIGluaXRpYWxpemF0aW9uIHBhdGhzIGFyZSB1bnJlYWNoYWJsZSBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBHQ0Ugb3IgUUVNVSB1c2VkIGJ5IHN5emthbGxlci5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogZmFsc2Vcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfV07CgkJCWlmICghcmF3RGF0YSB8fCByYXdEYXRhLmxlbmd0aCA9PT0gMCkgcmV0dXJuOwoKCQkJZHJhd1N1bW1hcnlUYWJsZXMocmF3RGF0YSk7CgkJCWRyYXdEdXJhdGlvbkNoYXJ0KHJhd0RhdGEpOwoJCQlkcmF3VG9rZW5Db25zdW1wdGlvbkNoYXJ0KHJhd0RhdGEpOwoJCX0KCgkJZnVuY3Rpb24gZHJhd1N1bW1hcnlUYWJsZXMocmF3RGF0YSkgewoJCQljb25zdCBzdGF0cyA9IHsKCQkJCWxsbTogeyBjb3VudDogMCwgdG9rZW5zOiAwLCBkdXJhdGlvbjogMCB9LAoJCQkJdG9vbDogeyBjb3VudDogMCwgZHVyYXRpb246IDAgfQoJCQl9OwoKCQkJcmF3RGF0YS5mb3JFYWNoKHMgPT4gewoJCQkJY29uc3QgZHVyID0gcy5EdXJhdGlvbiAvIDEwMDAwMDAwMDA7IAoJCQkJaWYgKHMuVHlwZSA9PT0gImxsbSIpIHsKCQkJCQlzdGF0cy5sbG0uY291bnQrKzsKCQkJCQlzdGF0cy5sbG0udG9rZW5zICs9IChzLklucHV0VG9rZW5zICsgcy5PdXRwdXRUb2tlbnMgKyBzLk91dHB1dFRob3VnaHRzVG9rZW5zKTsKCQkJCQlzdGF0cy5sbG0uZHVyYXRpb24gKz0gZHVyOwoJCQkJfSBlbHNlIGlmIChzLlR5cGUgPT09ICJ0b29sIikgewoJCQkJCXN0YXRzLnRvb2wuY291bnQrKzsKCQkJCQlzdGF0cy50b29sLmR1cmF0aW9uICs9IGR1cjsKCQkJCX0KCQkJfSk7CgoJCQljb25zdCBhdmdMbG1EdXIgPSBzdGF0cy5sbG0uY291bnQgPiAwID8gKHN0YXRzLmxsbS5kdXJhdGlvbiAvIHN0YXRzLmxsbS5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgkJCWNvbnN0IGF2Z0xsbVRva2VuID0gc3RhdHMubGxtLmNvdW50ID4gMCA/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-workflow9mx4f[1] Phase: Running StartedAt: 2026-07-15 07:27:18 +0000 UTC FinishedAt: 0001-01-01 00:00:00 +0000 UTC Input: nil Output: nil --------- Name: series-workflow9mx4f[1].abort-on-skip-outcome Phase: Failed StartedAt: 2026-07-15 07:27:18 +0000 UTC FinishedAt: 2026-07-15 07:27:26 +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,}