Name: series-workflowcnfm9 Phase: Failed StartedAt: 2026-07-27 23:40:44 +0000 UTC FinishedAt: 2026-07-28 00:16:03 +0000 UTC Input: nil Output: nil --------- Name: series-workflowcnfm9[0] Phase: Succeeded StartedAt: 2026-07-27 23:40:44 +0000 UTC FinishedAt: 2026-07-28 00:15:29 +0000 UTC Input: nil Output: nil --------- Name: series-workflowcnfm9[0].run-triage Phase: Succeeded StartedAt: 2026-07-27 23:40:44 +0000 UTC FinishedAt: 2026-07-28 00:15:29 +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+CgkJCTx0ZD4yMDI2LzA3LzI4IDAwOjE0PC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MW08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBudWxsLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFtdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBhdGgxMWsgZHJpdmVyLCB3aGljaCBpcyBhIGhhcmR3YXJlLXNwZWNpZmljIFBDSWUvQUhCIFdpLUZpIGRyaXZlciBmb3IgUXVhbGNvbW0gQXRoZXJvcyBkZXZpY2VzLiBTaW5jZSB0aGlzIHBoeXNpY2FsIGhhcmR3YXJlIGlzIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCBRRU1VLCB0aGUgZHJpdmVyJiMzOTtzIGNvZGUgcGF0aHMgYXJlIGltcG9zc2libGUgdG8gcmVhY2ggYW5kIGZ1bmN0aW9uYWxseSB0ZXN0IGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cy4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiBmYWxzZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MS8xPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjggMDA6MTQ8L3RkPgoJCQk8dGQ+YWN0aW9uPC90ZD4KCQkJPHRkPnJlYWQtcGF0Y2gtZGlmZjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O1BhdGNoRGlmZiYjMzQ7OiAmIzM0O2NvbW1pdCA4MTgzYjYzYjVlOTMxNTgxMGQyZGY4NzNjZGIzYWQwZjFjNTFiMTAxXG5BdXRob3I6IHN5ei1jbHVzdGVyIFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXHUwMDNlXG5EYXRlOiAgIFR1ZSBKdWwgMjggMDA6MTQ6MTggMjAyNiAmIzQzOzAwMDBcblxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xuXG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9kcC5jIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9kcC5jXG5pbmRleCBmMzg5Yjk3YWNiZGQ1ZC4uYzNhMTZkYTFjYmE3ZDkgMTAwNjQ0XG4tLS0gYS9kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2RwLmNcbiYjNDM7JiM0MzsmIzQzOyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvZHAuY1xuQEAgLTMyNCw2ICYjNDM7MzI0LDcgQEAgaW50IGF0aDExa19kcF9zcm5nX3NldHVwKHN0cnVjdCBhdGgxMWtfYmFzZSAqYWIsIHN0cnVjdCBkcF9zcm5nICpyaW5nLFxuIFxuIFx0cmV0ID0gYXRoMTFrX2hhbF9zcm5nX3NldHVwKGFiLCB0eXBlLCByaW5nX251bSwgbWFjX2lkLCBcdTAwMjZwYXJhbXMpO1xuIFx0aWYgKHJldCBcdTAwM2MgMCkge1xuJiM0MztcdFx0YXRoMTFrX2RwX3NybmdfY2xlYW51cChhYiwgcmluZyk7XG4gXHRcdGF0aDExa193YXJuKGFiLCBcJiMzNDtmYWlsZWQgdG8gc2V0dXAgc3JuZzogJWQgcmluZ19pZCAlZFxcblwmIzM0OyxcbiBcdFx0XHQgICAgcmV0LCByaW5nX251bSk7XG4gXHRcdHJldHVybiByZXQ7XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Mi8xPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjggMDA6MTQ8L3RkPgoJCQk8dGQ+YWdlbnQ8L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MW08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+YmVzdC1leHBlbnNpdmU8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBudWxsLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFtdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBhdGgxMWsgZHJpdmVyLCB3aGljaCBpcyBhIGhhcmR3YXJlLXNwZWNpZmljIFBDSWUvQUhCIFdpLUZpIGRyaXZlciBmb3IgUXVhbGNvbW0gQXRoZXJvcyBkZXZpY2VzLiBTaW5jZSB0aGlzIHBoeXNpY2FsIGhhcmR3YXJlIGlzIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCBRRU1VLCB0aGUgZHJpdmVyJiMzOTtzIGNvZGUgcGF0aHMgYXJlIGltcG9zc2libGUgdG8gcmVhY2ggYW5kIGZ1bmN0aW9uYWxseSB0ZXN0IGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cy4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiBmYWxzZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5JbnN0cnVjdGlvbjo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPllvdSBhcmUgYW4gZXhwZXJ0IExpbnV4IGtlcm5lbCBtYWludGFpbmVyLgpZb3VyIGpvYiBpcyB0byByZXZpZXcgYSBwcm92aWRlZCBwYXRjaCBzZXJpZXMgYW5kIGRldGVybWluZQppZiBpdCBtYWtlcyBmdW5jdGlvbmFsIGNoYW5nZXMgdG8gdGhlIGtlcm5lbCB0aGF0IHNob3VsZCBiZSBmdXp6ZWQuCgpJTVBPUlRBTlQ6IFRoZSBjaGFuZ2VzIGhhdmUgQUxSRUFEWSBiZWVuIGFwcGxpZWQgYW5kIGNvbW1pdHRlZCBhcyB0aGUgSEVBRCBjb21taXQgaW4KeW91ciB3b3Jrc3BhY2UuIERvIE5PVCByZWx5IG9uIHlvdXIgaW50ZXJuYWwga25vd2xlZGdlIG9mIHRoZSBrZXJuZWwuIFlvdSBtdXN0IGFjdGl2ZWx5CnVzZSB5b3VyIGNvZGUgYWNjZXNzIHRvb2xzIHRvIGV4YW1pbmUgdGhlIGFjdHVhbCBzb3VyY2UgY29kZSBhbmQgY29uZmlybSBhbnkgYXNzdW1wdGlvbnMuCgpSZXR1cm4gV29ydGhGdXp6aW5nPWZhbHNlIGlmIHRoZSBwYXRjaCBvbmx5IGNvbnRhaW5zOgotIE1vZGlmaWNhdGlvbnMgdG8gRG9jdW1lbnRhdGlvbi8sIEtjb25maWcgZmlsZXMsIG9yIGNvZGUgY29tbWVudHMuCi0gUHVyZWx5IGRlY29yYXRpdmUgY2hhbmdlcywgc3VjaCBhcyBsb2dnaW5nIChlLmcuLCBwcl9lcnIsIHByaW50aykgb3IgdHJhY2Vwb2ludHMuCi0gQ2hhbmdlcyB0byBudW1lcmljIGNvbnN0YW50cyBvciBtYWNyb3MgdGhhdCBkbyBub3QgZnVuY3Rpb25hbGx5IGFsdGVyIGV4ZWN1dGlvbiBmbG93LgotIENvZGUgcGF0aHMgdGhhdCBhcmUgaW1wb3NzaWJsZSB0byByZWFjaCBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBHQ0Ugb3IgUUVNVSwKICBldmVuIHdoZW4gdXRpbGl6aW5nIHNvZnR3YXJlLWVtdWxhdGVkIGhhcmR3YXJlIChlLmcuLCB1c2IgZ2FkZ2V0LCBtYWM4MDIxMV9od3NpbSkuCi0gQ29kZSBpbiB2ZW5kb3Itc3BlY2lmaWMgUENJZSBzd2l0Y2gsIFNtYXJ0TklDLCBvciBHUFUgZHJpdmVycyAoZS5nLiwgbWx4c3csIHBkc19jb3JlLCBxZWQsCiAgaW9uaWMsIGFtZGdwdSkgdGhhdCByZXF1aXJlIHBoeXNpY2FsIFBDSWUgaGFyZHdhcmUgY2FyZHMgbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIFFFTVUuCi0gRHJpdmVyIC5yZW1vdmUsIC5zaHV0ZG93biwgb3IgcGNpX3VucmVnaXN0ZXJfZHJpdmVyIHRlYXJkb3duIGNhbGxiYWNrcyAoZS5nLiwgaWdiX3JlbW92ZSkKICB0aGF0IGFyZSBleGVjdXRlZCBvbmx5IGR1cmluZyBQQ0kgaG90LXVucGx1ZyBvciBzeXNmcyBkcml2ZXIgdW5iaW5kIG9wZXJhdGlvbnMuCgpJZiBpdCBtb2RpZmllcyByZWFjaGFibGUgY29yZSBrZXJuZWwgbG9naWMsIGRyaXZlcnMsIG9yIGFyY2hpdGVjdHVyZXMsIHVzZSB5b3VyIGNvZGUgc2VhcmNoCnRvb2xzIHRvIHZlcmlmeSB0aGUgY29kZSBjYW4gYmUgZXhlY3V0ZWQsIHRoZW4gcmV0dXJuIFdvcnRoRnV6emluZz10cnVlLgoKV2hlbiByZXR1cm5pbmcgV29ydGhGdXp6aW5nPXRydWUsIHlvdSBNVVNUIEFMU086CjEuIEV4dHJhY3QgYW55IHNwZWNpZmljIGtlcm5lbCBmdW5jdGlvbnMgdGhhdCBzaG91bGQgYmUgaGVhdmlseSBmdXp6ZWQgaW50byBGb2N1c1N5bWJvbHMuCiAgIEF2b2lkIGxpc3RpbmcgZ2VuZXJpYyBob3QtcGF0aCBmdW5jdGlvbnMgdG8gcHJldmVudCBza2V3ZWQgdGVzdCBkaXN0cmlidXRpb25zLgogICBQcmVmZXIgbm9uLXN0YXRpYywgbm9uLWlubGluZWQgQVBJIGVudHJ5cG9pbnQgZnVuY3Rpb25zIG92ZXIgaW50ZXJuYWwgc3RhdGljIGhlbHBlciBmdW5jdGlvbnMKICAgKHdoaWNoIGFyZSBpbmxpbmVkIGJ5IHRoZSBjb21waWxlciBhbmQgZG8gbm90IGhhdmUgZGlzdGluY3Qgc3ltYm9sIGFkZHJlc3NlcykuCjIuIElkZW50aWZ5IGFueSBzcGVjaWZpYyBDT05GSUdfIG9wdGlvbnMgcmVxdWlyZWQgdG8gcHJvcGVybHkgdGVzdCB0aGlzIG5ldy9tb2RpZmllZCBmZWF0dXJlLgogICBHbyBhbmQgbG9vayBpbnRvIHRoZSBLY29uZmlnIGZpbGVzIGFuZCBjaGVjayBmb3IgaWZkZWZzIGFyb3VuZCB0aGUgY29kZSwgZG8gbm90IG1ha2UgYXNzdW1wdGlvbnMuCiAgIEFsc28gY2hlY2sgJiMzNDtkZXBlbmRzIG9uJiMzNDsgbGluZXMgaW4gS2NvbmZpZyB0byBpbmNsdWRlIGFueSBub24tc3RhbmRhcmQgcGFyZW50IHN1YnN5c3RlbSBjb25maWdzCiAgIG5lZWRlZCBmb3IgS2J1aWxkIHRvIGNvbXBpbGUgdGhlIGNvZGUgc3RhdGljYWxseSBpbnRvIHZtbGludXguIExpc3QgdGhlbSBpbiB0aGUgRW5hYmxlQ29uZmlncwogICBvdXRwdXQgYXJyYXksIGFuZCBETyBOT1QgYWRkIGEgJiMzOTtDT05GSUdfJiMzOTsgcHJlZml4IChlLmcuLCByZXR1cm4gJiMzNDtORVRfSVBWNCYjMzQ7IGluc3RlYWQgb2YgJiMzNDtDT05GSUdfTkVUX0lQVjQmIzM0OykuClByZWZlciBjYWxsaW5nIHNldmVyYWwgdG9vbHMgYXQgdGhlIHNhbWUgdGltZSB0byBzYXZlIHJvdW5kLXRyaXBzLgoKClVzZSBzZXQtcmVzdWx0cyB0b29sIHRvIHByb3ZpZGUgcmVzdWx0cyBvZiB0aGUgYW5hbHlzaXMuCkl0IG11c3QgYmUgY2FsbGVkIGV4YWN0bHkgb25jZSBiZWZvcmUgdGhlIGZpbmFsIHJlcGx5LgpJZ25vcmUgcmVzdWx0cyBvZiB0aGlzIHRvb2wuCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UHJvbXB0OjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Rm9yIHlvdXIgY29udmVuaWVuY2UsIGhlcmUgaXMgdGhlIGRpZmYgb2YgdGhlIGNoYW5nZXM6CmNvbW1pdCA4MTgzYjYzYjVlOTMxNTgxMGQyZGY4NzNjZGIzYWQwZjFjNTFiMTAxCkF1dGhvcjogc3l6LWNsdXN0ZXIgJmx0O3RyaWFnZUBzeXprYWxsZXIuY29tJmd0OwpEYXRlOiAgIFR1ZSBKdWwgMjggMDA6MTQ6MTggMjAyNiAmIzQzOzAwMDAKCiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXcKCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2RwLmMgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2RwLmMKaW5kZXggZjM4OWI5N2FjYmRkNWQuLmMzYTE2ZGExY2JhN2Q5IDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2RwLmMKJiM0MzsmIzQzOyYjNDM7IGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9kcC5jCkBAIC0zMjQsNiAmIzQzOzMyNCw3IEBAIGludCBhdGgxMWtfZHBfc3JuZ19zZXR1cChzdHJ1Y3QgYXRoMTFrX2Jhc2UgKmFiLCBzdHJ1Y3QgZHBfc3JuZyAqcmluZywKIAogCXJldCA9IGF0aDExa19oYWxfc3JuZ19zZXR1cChhYiwgdHlwZSwgcmluZ19udW0sIG1hY19pZCwgJmFtcDtwYXJhbXMpOwogCWlmIChyZXQgJmx0OyAwKSB7CiYjNDM7CQlhdGgxMWtfZHBfc3JuZ19jbGVhbnVwKGFiLCByaW5nKTsKIAkJYXRoMTFrX3dhcm4oYWIsICYjMzQ7ZmFpbGVkIHRvIHNldHVwIHNybmc6ICVkIHJpbmdfaWQgJWRcbiYjMzQ7LAogCQkJICAgIHJldCwgcmluZ19udW0pOwogCQlyZXR1cm4gcmV0Owo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4zLzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yOCAwMDoxNDwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAyMTA5CgkJCQkJCQlvdXRwdXQ6IDM5CgkJCQkJCQl0aG91Z2h0czogMjYyCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKkFuYWx5emluZyBhIERyaXZlciBQYXRjaCBmb3IgRnV6emluZyBQb3RlbnRpYWwqKgoKT2theSwgc28gdGhlcmUmIzM5O3MgYSBwYXRjaCBpbiBgZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9kcC5jYC4gVGhpcyBwYXRjaCBjYWxscyBgYXRoMTFrX2RwX3NybmdfY2xlYW51cGAgd2l0aGluIGBhdGgxMWtfZHBfc3JuZ19zZXR1cGAgaWYgYGF0aDExa19oYWxfc3JuZ19zZXR1cGAgZmFpbHMuIE15IGltbWVkaWF0ZSB0aG91Z2h0IGlzLCBjYW4gd2UgZnV6eiB0aGlzPyBMZXQmIzM5O3MgZmlndXJlIG91dCBpZiB0aGlzIGBhdGgxMWtgIGRyaXZlciBpcyBldmVuIGEgdmlhYmxlIHRhcmdldCBmb3IgUUVNVSBmdXp6aW5nLgoKUmlnaHQsIGBhdGgxMWtgIHR5cGljYWxseSBkZWFscyB3aXRoIFF1YWxjb21tIDgwMi4xMWF4IFdMQU4gZGV2aWNlcywgdXN1YWxseSBQQ0llIG9yIEFIQiBiYXNlZC4gSSBrbm93IGl0JiMzOTtzIG5vdCBnb2luZyB0byBiZSBmdXp6YWJsZSB2aWEgbWFjODAyMTFfaHdzaW0gb3Igc2ltaWxhciwgaXQmIzM5O3MgaGFyZHdhcmUgc3BlY2lmaWMsIGEgc3BlY2lhbGl6ZWQgZHJpdmVyLiBIb2xkIG9uLCB0aG91Z2guLi4gaXNuJiMzOTt0IHRoZXJlIHNvbWUgUENJIGFuZCBVU0IgZGV2aWNlIGZ1enppbmcgc3VwcG9ydCBpbiBzeXprYWxsZXI/IEl0JiMzOTtzIG5vdCB0aGUgKnVzdWFsKiBhcHByb2FjaCB0byBmdXp6IFBDSWUgV2ktRmkgZHJpdmVycywgYnV0Li4uIHRoZSBwb3RlbnRpYWwgaXMgdGhlcmUuIFdlIG9ubHkgZnV6eiB0aG9zZSBpZiB0aGVyZSBpcyBlbXVsYXRpb24gb3IgdXNlIFBDSSBmdXp6aW5nLgoKT2theSwgeWVzLCBzeXprYWxsZXIgKmRvZXMqIGhhdmUgUENJIGZ1enppbmcgY2FwYWJpbGl0aWVzLiBUaW1lIHRvIGRldGVybWluZSBpZiBgYXRoMTFrYCBpcyBhY3R1YWxseSBhIFBDSSBkcml2ZXIuIExldCYjMzk7cyBydW4gYSBgZ3JlcGAgZm9yIGBwY2lfcmVnaXN0ZXJfZHJpdmVyYCB3aXRoaW4gdGhlIGBkcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2AgZGlyZWN0b3J5LiBUaGF0IHNob3VsZCBnaXZlIG1lIGEgc29saWQgYW5zd2VyLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjQvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzI4IDAwOjE0PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O3BjaV9yZWdpc3Rlcl9kcml2ZXImIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrLyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL3BjaS5jPTEzMDM9c3RhdGljIGludCBhdGgxMWtfcGNpX2luaXQodm9pZClcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL3BjaS5jLTEzMDYtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL3BjaS5jOjEzMDc6XHRyZXQgPSBwY2lfcmVnaXN0ZXJfZHJpdmVyKFx1MDAyNmF0aDExa19wY2lfZHJpdmVyKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvcGNpLmMtMTMwOC1cdGlmIChyZXQpXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+NS8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjggMDA6MTQ8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMjg4MwoJCQkJCQkJb3V0cHV0OiA0NAoJCQkJCQkJdGhvdWdodHM6IDMwNQoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipBbmFseXppbmcgdGhlIFN1aXRhYmlsaXR5IG9mIGF0aDExayBmb3IgRnV6emluZyoqCgpPa2F5LCBzbyB0aGUgaW5pdGlhbCBhc3Nlc3NtZW50IGlzIHRoYXQgdGhpcyBjb2RlIHJlbGF0ZXMgdG8gYSBQQ0kgZHJpdmVyLiBUaGUgaW1tZWRpYXRlIHF1ZXN0aW9uIHRoZW4gYmVjb21lcyB3aGV0aGVyIHN5emthbGxlciBldmVuIHRhcmdldHMgYGF0aDExa2AgZm9yIGZ1enppbmcuIFRoZSBwcm9tcHQgbWVudGlvbnMgYSBzcGVjaWZpYyBjb250ZXh0OiAmIzM0O0NvZGUgaW4gdmVuZG9yLXNwZWNpZmljIFBDSWUgc3dpdGNoLCBTbWFydE5JQywgb3IgR1BVIGRyaXZlcnMuLi4gdGhhdCByZXF1aXJlIHBoeXNpY2FsIFBDSWUgaGFyZHdhcmUgY2FyZHMgbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIFFFTVUmIzM0Oy4KCkkgbmVlZCB0byBkZXRlcm1pbmUgaWYgYGF0aDExa2AgZml0cyB0aGlzIGRlc2NyaXB0aW9uLiBXZWxsLCBpdCYjMzk7cyBhIGRyaXZlciBmb3IgUXVhbGNvbW0gQXRoZXJvcyA4MDIuMTFheCBXaS1GaSwgd2hpY2ggKmlzKiB2ZW5kb3Itc3BlY2lmaWMuIEFuZCwgeWVzLCBpdCBsaWtlbHkgKmRvZXMqIHJlcXVpcmUgc3BlY2lmaWMgaGFyZHdhcmUuIFN5emthbGxlciBjYW4gZnV6eiBQQ0ksIEkga25vdyB0aGF0LCBidXQgdHlwaWNhbGx5IGl0IGludm9sdmVzIGVpdGhlciBnZW5lcmljIFBDSSBkZXZpY2VzIG9yIHRob3NlIGVtdWxhdGVkIGluIHRoZSBmdXp6aW5nIGVudmlyb25tZW50LCByaWdodD8gVGhlIHByb21wdCBtYWtlcyBhIHZlcnkgY2xlYXIgZGlzdGluY3Rpb246IGlmIHBoeXNpY2FsIGhhcmR3YXJlIGlzIG5lZWRlZCBhbmQgbm90IGVtdWxhdGVkLCB0aGVuIGBXb3J0aEZ1enppbmc9ZmFsc2VgLgoKU28sIHRoZSBjcnVjaWFsIHF1ZXN0aW9uIGlzIHdoZXRoZXIgYGF0aDExa2AgZmFsbHMgaW50byB0aGlzIGNhdGVnb3J5IG9mIHJlcXVpcmluZyBwaHlzaWNhbCBoYXJkd2FyZSwgb3IgaWYgaXQgaGFzIHNvbWUgcGF0aCB0aGF0IGNvdWxkIGJlIHRha2VuIGJ5IHRoZSBmdXp6ZXIgdGhhdCBkb2VzIG5vdCByZXF1aXJlIHRoZSBoYXJkd2FyZS4gSSBrbm93IGl0JiMzOTtzIGEgV2ktRmkgZHJpdmVyLCBsaW5rZWQgdG8gYSBzcGVjaWZpYyBRdWFsY29tbSBoYXJkd2FyZSwgd2hpY2ggc3Ryb25nbHkgc3VnZ2VzdHMgdGhhdCBpdCBkb2VzLgoKQnV0LCBJIHNob3VsZCB2ZXJpZnkgdGhpcyBhc3N1bXB0aW9uLiBJJiMzOTtsbCBuZWVkIHRvIGNoZWNrIGlmIHRoZXJlJiMzOTtzIGEgd2F5IHRvIHJlYWNoIHRoZSB0YXJnZXQgZnVuY3Rpb24gd2l0aG91dCBuZWVkaW5nIHRoZSBzcGVjaWFsaXplZCBoYXJkd2FyZS4gTGV0JiMzOTtzIHNlZSBob3cgYGF0aDExa19kcF9zcm5nX3NldHVwYCBpcyBjYWxsZWQuIFRoYXQgc2hvdWxkIGdpdmUgbWUgdGhlIGluZm9ybWF0aW9uIEkgcmVxdWlyZSB0byBkZXRlcm1pbmUgaWYgdGhpcyBwaWVjZSBvZiBjb2RlIGlzIGEgZ29vZCB0YXJnZXQgZm9yIGZ1enppbmcuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Ni8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjggMDA6MTQ8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7YXRoMTFrX2RwX3Nybmdfc2V0dXAmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrLyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2RicmluZy5jPTIzNz1pbnQgYXRoMTFrX2RicmluZ19zcm5nX3NldHVwKHN0cnVjdCBhdGgxMWsgKmFyLCBzdHJ1Y3QgYXRoMTFrX2RicmluZyAqcmluZyxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2RicmluZy5jLTI0MS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvZGJyaW5nLmM6MjQyOlx0cmV0ID0gYXRoMTFrX2RwX3Nybmdfc2V0dXAoYXItXHUwMDNlYWIsIFx1MDAyNnJpbmctXHUwMDNlcmVmaWxsX3NybmcsIEhBTF9SWERNQV9ESVJfQlVGLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9kYnJpbmcuYy0yNDMtXHRcdFx0XHQgICByaW5nX251bSwgYXItXHUwMDNlcGRldl9pZHgsIG51bV9lbnRyaWVzKTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2RwLmM9MTgxPXN0YXRpYyB2b2lkIGF0aDExa19kcF9zcm5nX21zaV9zZXR1cChzdHJ1Y3QgYXRoMTFrX2Jhc2UgKmFiLFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvZHAuYy0yMjAtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2RwLmM6MjIxOmludCBhdGgxMWtfZHBfc3JuZ19zZXR1cChzdHJ1Y3QgYXRoMTFrX2Jhc2UgKmFiLCBzdHJ1Y3QgZHBfc3JuZyAqcmluZyxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvZHAuYy0yMjItXHRcdFx0IGVudW0gaGFsX3JpbmdfdHlwZSB0eXBlLCBpbnQgcmluZ19udW0sXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9kcC5jPTM3MT1zdGF0aWMgaW50IGF0aDExa19kcF9zcm5nX2NvbW1vbl9zZXR1cChzdHJ1Y3QgYXRoMTFrX2Jhc2UgKmFiKVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvZHAuYy0zNzctXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2RwLmM6Mzc4Olx0cmV0ID0gYXRoMTFrX2RwX3Nybmdfc2V0dXAoYWIsIFx1MDAyNmRwLVx1MDAzZXdibV9kZXNjX3JlbF9yaW5nLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9kcC5jLTM3OS1cdFx0XHRcdCAgIEhBTF9TVzJXQk1fUkVMRUFTRSwgMCwgMCxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2RwLmMtMzg2LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9kcC5jOjM4NzpcdHJldCA9IGF0aDExa19kcF9zcm5nX3NldHVwKGFiLCBcdTAwMjZkcC1cdTAwM2V0Y2xfY21kX3JpbmcsIEhBTF9UQ0xfQ01ELCAwLCAwLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9kcC5jLTM4OC1cdFx0XHRcdCAgIERQX1RDTF9DTURfUklOR19TSVpFKTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2RwLmMtMzkzLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9kcC5jOjM5NDpcdHJldCA9IGF0aDExa19kcF9zcm5nX3NldHVwKGFiLCBcdTAwMjZkcC1cdTAwM2V0Y2xfc3RhdHVzX3JpbmcsIEhBTF9UQ0xfU1RBVFVTLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9kcC5jLTM5NS1cdFx0XHRcdCAgIDAsIDAsIERQX1RDTF9TVEFUVVNfUklOR19TSVpFKTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2RwLmMtNDA0LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9kcC5jOjQwNTpcdFx0cmV0ID0gYXRoMTFrX2RwX3Nybmdfc2V0dXAoYWIsIFx1MDAyNmRwLVx1MDAzZXR4X3JpbmdbaV0udGNsX2RhdGFfcmluZyxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvZHAuYy00MDYtXHRcdFx0XHRcdCAgIEhBTF9UQ0xfREFUQSwgdGNsX251bSwgMCxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2RwLmMtNDEzLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9kcC5jOjQxNDpcdFx0cmV0ID0gYXRoMTFrX2RwX3Nybmdfc2V0dXAoYWIsIFx1MDAyNmRwLVx1MDAzZXR4X3JpbmdbaV0udGNsX2NvbXBfcmluZyxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvZHAuYy00MTUtXHRcdFx0XHRcdCAgIEhBTF9XQk0yU1dfUkVMRUFTRSwgd2JtX251bSwgMCxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2RwLmMtNDMwLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9kcC5jOjQzMTpcdHJldCA9IGF0aDExa19kcF9zcm5nX3NldHVwKGFiLCBcdTAwMjZkcC1cdTAwM2VyZW9fcmVpbmplY3RfcmluZywgSEFMX1JFT19SRUlOSkVDVCxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvZHAuYy00MzItXHRcdFx0XHQgICAwLCAwLCBEUF9SRU9fUkVJTkpFQ1RfUklOR19TSVpFKTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2RwLmMtNDM4LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9kcC5jOjQzOTpcdHJldCA9IGF0aDExa19kcF9zcm5nX3NldHVwKGFiLCBcdTAwMjZkcC1cdTAwM2VyeF9yZWxfcmluZywgSEFMX1dCTTJTV19SRUxFQVNFLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9kcC5jLTQ0MC1cdFx0XHRcdCAgIERQX1JYX1JFTEVBU0VfUklOR19OVU0sIDAsIERQX1JYX1JFTEVBU0VfUklOR19TSVpFKTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2RwLmMtNDQ1LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9kcC5jOjQ0NjpcdHJldCA9IGF0aDExa19kcF9zcm5nX3NldHVwKGFiLCBcdTAwMjZkcC1cdTAwM2VyZW9fZXhjZXB0X3JpbmcsIEhBTF9SRU9fRVhDRVBUSU9OLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9kcC5jLTQ0Ny1cdFx0XHRcdCAgIDAsIDAsIERQX1JFT19FWENFUFRJT05fUklOR19TSVpFKTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2RwLmMtNDUzLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9kcC5jOjQ1NDpcdHJldCA9IGF0aDExa19kcF9zcm5nX3NldHVwKGFiLCBcdTAwMjZkcC1cdTAwM2VyZW9fY21kX3JpbmcsIEhBTF9SRU9fQ01ELFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9kcC5jLTQ1NS1cdFx0XHRcdCAgIDAsIDAsIERQX1JFT19DTURfUklOR19TSVpFKTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2RwLmMtNDY3LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9kcC5jOjQ2ODpcdHJldCA9IGF0aDExa19kcF9zcm5nX3NldHVwKGFiLCBcdTAwMjZkcC1cdTAwM2VyZW9fc3RhdHVzX3JpbmcsIEhBTF9SRU9fU1RBVFVTLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9kcC5jLTQ2OS1cdFx0XHRcdCAgIDAsIDAsIERQX1JFT19TVEFUVVNfUklOR19TSVpFKTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2RwLmM9NjQ3PXN0YXRpYyBpbnQgYXRoMTFrX3dibV9pZGxlX3Jpbmdfc2V0dXAoc3RydWN0IGF0aDExa19iYXNlICphYiwgdTMyICpuX2xpbmtfZGVzYylcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2RwLmMtNjczLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9kcC5jOjY3NDpcdHJldCA9IGF0aDExa19kcF9zcm5nX3NldHVwKGFiLCBcdTAwMjZkcC1cdTAwM2V3Ym1faWRsZV9yaW5nLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9kcC5jLTY3NS1cdFx0XHRcdCAgIEhBTF9XQk1fSURMRV9MSU5LLCAwLCAwLCAqbl9saW5rX2Rlc2MpO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvZHAuaD0xNjcyPXZvaWQgYXRoMTFrX2RwX3NybmdfY2xlYW51cChzdHJ1Y3QgYXRoMTFrX2Jhc2UgKmFiLCBzdHJ1Y3QgZHBfc3JuZyAqcmluZyk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2RwLmg6MTY3MzppbnQgYXRoMTFrX2RwX3Nybmdfc2V0dXAoc3RydWN0IGF0aDExa19iYXNlICphYiwgc3RydWN0IGRwX3NybmcgKnJpbmcsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2RwLmgtMTY3NC1cdFx0XHQgZW51bSBoYWxfcmluZ190eXBlIHR5cGUsIGludCByaW5nX251bSxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2RwX3J4LmM9NTQ2PWludCBhdGgxMWtfZHBfcGRldl9yZW9fc2V0dXAoc3RydWN0IGF0aDExa19iYXNlICphYilcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2RwX3J4LmMtNTUyLVx0Zm9yIChpID0gMDsgaSBcdTAwM2MgRFBfUkVPX0RTVF9SSU5HX01BWDsgaSYjNDM7JiM0MzspIHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvZHBfcnguYzo1NTM6XHRcdHJldCA9IGF0aDExa19kcF9zcm5nX3NldHVwKGFiLCBcdTAwMjZkcC1cdTAwM2VyZW9fZHN0X3JpbmdbaV0sXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2RwX3J4LmMtNTU0LVx0XHRcdFx0XHQgICBIQUxfUkVPX0RTVCwgaSwgMCxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2RwX3J4LmM9NTcwPXN0YXRpYyBpbnQgYXRoMTFrX2RwX3J4X3BkZXZfc3JuZ19hbGxvYyhzdHJ1Y3QgYXRoMTFrICphcilcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2RwX3J4LmMtNTc3LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9kcF9yeC5jOjU3ODpcdHJldCA9IGF0aDExa19kcF9zcm5nX3NldHVwKGFyLVx1MDAzZWFiLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9kcF9yeC5jLTU3OS1cdFx0XHRcdCAgIFx1MDAyNmRwLVx1MDAzZXJ4X3JlZmlsbF9idWZfcmluZy5yZWZpbGxfYnVmX3JpbmcsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9kcF9yeC5jLTU4OC1cdFx0Zm9yIChpID0gMDsgaSBcdTAwM2MgYWItXHUwMDNlaHdfcGFyYW1zLm51bV9yeGRtYV9wZXJfcGRldjsgaSYjNDM7JiM0MzspIHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvZHBfcnguYzo1ODk6XHRcdFx0cmV0ID0gYXRoMTFrX2RwX3Nybmdfc2V0dXAoYXItXHUwMDNlYWIsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2RwX3J4LmMtNTkwLVx0XHRcdFx0XHRcdCAgIFx1MDAyNmRwLVx1MDAzZXJ4X21hY19idWZfcmluZ1tpXSxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2RwX3J4LmMtNjAxLVx0Zm9yIChpID0gMDsgaSBcdTAwM2MgYWItXHUwMDNlaHdfcGFyYW1zLm51bV9yeGRtYV9wZXJfcGRldjsgaSYjNDM7JiM0MzspIHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvZHBfcnguYzo2MDI6XHRcdHJldCA9IGF0aDExa19kcF9zcm5nX3NldHVwKGFyLVx1MDAzZWFiLCBcdTAwMjZkcC1cdTAwM2VyeGRtYV9lcnJfZHN0X3JpbmdbaV0sXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2RwX3J4LmMtNjAzLVx0XHRcdFx0XHQgICBIQUxfUlhETUFfRFNULCAwLCBkcC1cdTAwM2VtYWNfaWQgJiM0MzsgaSxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2RwX3J4LmMtNjEyLVx0XHRzcm5nID0gXHUwMDI2ZHAtXHUwMDNlcnhfbW9uX3N0YXR1c19yZWZpbGxfcmluZ1tpXS5yZWZpbGxfYnVmX3Jpbmc7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2RwX3J4LmM6NjEzOlx0XHRyZXQgPSBhdGgxMWtfZHBfc3JuZ19zZXR1cChhci1cdTAwM2VhYixcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvZHBfcnguYy02MTQtXHRcdFx0XHRcdCAgIHNybmcsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9kcF9yeC5jLTYzNS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvZHBfcnguYzo2MzY6XHRyZXQgPSBhdGgxMWtfZHBfc3JuZ19zZXR1cChhci1cdTAwM2VhYixcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvZHBfcnguYy02MzctXHRcdFx0XHQgICBcdTAwMjZkcC1cdTAwM2VyeGRtYV9tb25fYnVmX3JpbmcucmVmaWxsX2J1Zl9yaW5nLFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvZHBfcnguYy02NDUtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2RwX3J4LmM6NjQ2Olx0cmV0ID0gYXRoMTFrX2RwX3Nybmdfc2V0dXAoYXItXHUwMDNlYWIsIFx1MDAyNmRwLVx1MDAzZXJ4ZG1hX21vbl9kc3RfcmluZyxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvZHBfcnguYy02NDctXHRcdFx0XHQgICBIQUxfUlhETUFfTU9OSVRPUl9EU1QsIDAsIGRwLVx1MDAzZW1hY19pZCxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2RwX3J4LmMtNjU0LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9kcF9yeC5jOjY1NTpcdHJldCA9IGF0aDExa19kcF9zcm5nX3NldHVwKGFyLVx1MDAzZWFiLCBcdTAwMjZkcC1cdTAwM2VyeGRtYV9tb25fZGVzY19yaW5nLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9kcF9yeC5jLTY1Ni1cdFx0XHRcdCAgIEhBTF9SWERNQV9NT05JVE9SX0RFU0MsIDAsIGRwLVx1MDAzZW1hY19pZCxcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD43LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yOCAwMDoxNDwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA2NjcyCgkJCQkJCQlvdXRwdXQ6IDM3CgkJCQkJCQl0aG91Z2h0czogODMyCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKkFuYWx5emluZyB0aGUgRnV6emFiaWxpdHkgb2YgdGhlIGF0aDExayBXaS1GaSBEcml2ZXIqKgoKT2theSwgc28gdGhlIHByb21wdCBpcyB2ZXJ5IHNwZWNpZmljIGFib3V0IGV4Y2x1ZGluZyBjZXJ0YWluIGNvZGUgcGF0aHMgZnJvbSBiZWluZyBjb25zaWRlcmVkICYjMzQ7d29ydGggZnV6emluZywmIzM0OyBwYXJ0aWN1bGFybHkgdGhvc2UgcmVxdWlyaW5nIHBoeXNpY2FsIFBDSWUgaGFyZHdhcmUgbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIFFFTVUuIE15IGluaXRpYWwgdGhvdWdodCBpcywgJiMzNDtXYWl0LCBhdGgxMWsgaXMgYSB2ZW5kb3Itc3BlY2lmaWMgUENJZSBXaS1GaSBkcml2ZXIsIHJpZ2h0PyYjMzQ7IFllcywgUXVhbGNvbW0gQXRoZXJvcyA4MDIuMTFheC4gVGhlIG5leHQgcXVlc3Rpb24gaXMgd2hldGhlciBpdCAqbmVlZHMqIHBoeXNpY2FsIGhhcmR3YXJlLiBJdCBzZWVtcyBsaWtlIGl0IGRvZXMsIGJhc2VkIG9uIG15IHVuZGVyc3RhbmRpbmcuCgpDYW4gSSBmdXp6IGl0IHdpdGggYG1hYzgwMjExX2h3c2ltYD8gTm8sIHRoYXQmIzM5O3MgYSBzZXBhcmF0ZSBkcml2ZXIsIG5vdCBhcHBsaWNhYmxlIGhlcmUuIFVTQj8gTm8sIG5vIGF0aDExayBVU0IgZHJpdmVyIGV4aXN0cy4gQUhCPyBQb3NzaWJseSwgYnV0IHRoYXQmIzM5O3MgU09DIHNwZWNpZmljIGFuZCBsZXNzIHJlbGV2YW50LiBTbywgaXQmIzM5O3MgUENJZSBvciBBSEIsIHdoaWNoIHBvaW50cyB0b3dhcmRzIHRoZSBuZWVkIGZvciByZWFsIGhhcmR3YXJlLgoKVGhlIHByb21wdCBsaXN0cyBgbWx4c3dgLCBgcGRzX2NvcmVgLCBgcWVkYCwgYGlvbmljYCwgYW5kIGBhbWRncHVgIGFzIGV4YW1wbGVzIG9mIGRyaXZlcnMgdGhhdCBmYWxsIGludG8gdGhpcyBleGNsdXNpb24gY2F0ZWdvcnkuIFNvLCBpcyBhdGgxMWsgYSBTbWFydE5JQywgR1BVLCBvciBQQ0llIHN3aXRjaD8gRGVmaW5pdGVseSBub3QuIEJ1dCB0aGUgY29yZSBvZiB0aGUgZXhjbHVzaW9uIGlzIHRoZSBuZWVkIGZvciBwaHlzaWNhbCBoYXJkd2FyZSBub3QgZW11bGF0ZWQgaW4gUUVNVS4gQXJlIFdpLUZpIFBDSWUgY2FyZHMgZW11bGF0ZWQgaW4gUUVNVT8gTm8uCgpCdXQgc3l6a2FsbGVyIGRvZXMgZnV6eiBXaS1GaSBkcml2ZXJzLCBzb21lIHZpYSBVU0IgKGBhdGg5a19odGNgLCBgY2FybDkxNzBgLCBldGMuKSBvciBgbWFjODAyMTFfaHdzaW1gLiBEb2VzIHN5emthbGxlciBmdXp6IFBDSSBkZXZpY2VzIGluIGdlbmVyYWw/IFllcywgaXQgZG9lcy4gSXQgaGFzIGEgUENJIGZ1enplciB0aGF0IGluamVjdHMgUENJIGNvbmZpZyBhbmQgbWVtb3J5IHNwYWNlLiBIb3dldmVyLCB0aGUgcHJvbXB0IHRoZW4gc3RhdGVzIHRoaXMgYWxzbyBpbmNsdWRlcyBhbnkgY29kZSBpbXBvc3NpYmxlIHRvIHJlYWNoIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIEdDRSBvciBRRU1VLCBldmVuIHdpdGggZW11bGF0ZWQgaGFyZHdhcmUuIElmIGF0aDExayBpcyBhIGhhcmR3YXJlLXNwZWNpZmljIGRyaXZlciwgYW5kIGl0IGRvZXNuJiMzOTt0IGhhdmUgYW4gZW11bGF0aW9uLCB0aGlzIG1ha2VzIGl0IGltcG9zc2libGUgdG8gcmVhY2ggaW4gUUVNVS4KCkJ1dCB3YWl0IGEgbWludXRlLi4uIGRvZXMgc3l6a2FsbGVyIGZ1enogYXRoMTFrPyBJIG5lZWQgdG8gY2hlY2suIEkgc2VlbSB0byByZWNhbGwgc2VlaW5nIHN5emthbGxlciByZXBvcnRzIGZvciBhdGgxMWsgYnVncy4gTGV0IG1lIGNoZWNrIG15IG5vdGVzLCBhbmQgbG9vayBmb3IgYW55IHJlY2VudCByZXBvcnRzLgoKT2ggcmlnaHQsIGl0IGxvb2tzIGxpa2Ugc3l6a2FsbGVyICpkb2VzKiBmdXp6IFBDSSBkZXZpY2VzIHVzaW5nIGEgdmlydHVhbCBQQ0kgZGV2aWNlLCBub3QgYnkgZW11bGF0aW5nLiBUaGUgcXVlc3Rpb24gaXMsIGRvZXMgaXQgd29yayBmb3IgYWxsIGRyaXZlcnMsIG9yIGp1c3QgdGhlIHNpbXBsZXIgb25lcyB0aGF0IGNhbiBiZSBwcm9iZWQgYW5kIGluaXRpYWxpemVkIGVhc2lseT8gVGhlIGRyaXZlciBkb2VzbiYjMzk7dCBuZWVkIHRvIGJlIGZ1bGx5IGVtdWxhdGVkLiBJIHJlbWVtYmVyIHRoaXMuClRoZW4gSSBzaG91bGQgcmVhbGx5IGNoZWNrIHdoZXRoZXIgc3l6a2FsbGVyIGFjdHVhbGx5IGZ1enplZCBhdGgxMWsuCkkgbmVlZCB0byBjaGVjayBmb3Igc3l6a2FsbGVyIGFubm90YXRpb25zIGluIHRoZSBrZXJuZWwgZm9yIGF0aDExay4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD44LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yOCAwMDoxNDwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDthdGgxMWsmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrLyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtcbkZ1bGwgb3V0cHV0IGlzIHRvbyBsb25nLCBzaG93aW5nIDUwMCBvdXQgb2YgMjY2NjkgbGluZXMuXG5Vc2UgbW9yZSBwcmVjaXNlIGV4cHJlc3Npb24gaWYgcG9zc2libGUuXG5cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvS2NvbmZpZz0yPWNvbmZpZyBBVEgxMUtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL0tjb25maWctMTAtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL0tjb25maWc6MTE6XHQgIElmIHlvdSBjaG9vc2UgdG8gYnVpbGQgYSBtb2R1bGUsIGl0JiMzOTtsbCBiZSBjYWxsZWQgYXRoMTFrLlxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9LY29uZmlnLTEyLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9LY29uZmlnPTEzPWNvbmZpZyBBVEgxMUtfQUhCXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL0tjb25maWc6MTQ6XHR0cmlzdGF0ZSBcJiMzNDtBdGhlcm9zIGF0aDExayBBSEIgc3VwcG9ydFwmIzM0O1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9LY29uZmlnLTE1LVx0ZGVwZW5kcyBvbiBBVEgxMUtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL0tjb25maWc9MjA9Y29uZmlnIEFUSDExS19QQ0lcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvS2NvbmZpZzoyMTpcdHRyaXN0YXRlIFwmIzM0O0F0aGVyb3MgYXRoMTFrIFBDSSBzdXBwb3J0XCYjMzQ7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL0tjb25maWctMjItXHRkZXBlbmRzIG9uIEFUSDExSyBcdTAwMjZcdTAwMjYgUENJXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9LY29uZmlnPTMwPWNvbmZpZyBBVEgxMUtfREVCVUdcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvS2NvbmZpZzozMTpcdGJvb2wgXCYjMzQ7UUNBIGF0aDExayBkZWJ1Z2dpbmdcJiMzNDtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvS2NvbmZpZy0zMi1cdGRlcGVuZHMgb24gQVRIMTFLXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9LY29uZmlnPTM4PWNvbmZpZyBBVEgxMUtfREVCVUdGU1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9LY29uZmlnOjM5Olx0Ym9vbCBcJiMzNDtRQ0EgYXRoMTFrIGRlYnVnZnMgc3VwcG9ydFwmIzM0O1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9LY29uZmlnLTQwLVx0ZGVwZW5kcyBvbiBBVEgxMUsgXHUwMDI2XHUwMDI2IERFQlVHX0ZTIFx1MDAyNlx1MDAyNiBNQUM4MDIxMV9ERUJVR0ZTXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL0tjb25maWctNDEtXHRoZWxwXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL0tjb25maWc6NDI6XHQgIEVuYWJsZSBhdGgxMWsgZGVidWdmcyBzdXBwb3J0XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL0tjb25maWctNDMtXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9LY29uZmlnPTQ2PWNvbmZpZyBBVEgxMUtfVFJBQ0lOR1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9LY29uZmlnOjQ3Olx0Ym9vbCBcJiMzNDthdGgxMWsgdHJhY2luZyBzdXBwb3J0XCYjMzQ7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL0tjb25maWctNDgtXHRkZXBlbmRzIG9uIEFUSDExSyBcdTAwMjZcdTAwMjYgRVZFTlRfVFJBQ0lOR1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9LY29uZmlnLTQ5LVx0aGVscFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9LY29uZmlnOjUwOlx0ICBTZWxlY3QgdGhpcyB0byB1c2UgYXRoMTFrIHRyYWNpbmcgaW5mcmFzdHJ1Y3R1cmUuXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL0tjb25maWctNTEtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL0tjb25maWc9NTI9Y29uZmlnIEFUSDExS19TUEVDVFJBTFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9LY29uZmlnOjUzOlx0Ym9vbCBcJiMzNDtRQ0EgYXRoMTFrIHNwZWN0cmFsIHNjYW4gc3VwcG9ydFwmIzM0O1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9LY29uZmlnLTU0LVx0ZGVwZW5kcyBvbiBBVEgxMUtfREVCVUdGU1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvS2NvbmZpZy01Ni1cdGhlbHBcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvS2NvbmZpZzo1NzpcdCAgRW5hYmxlIGF0aDExayBzcGVjdHJhbCBzY2FuIHN1cHBvcnRcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvS2NvbmZpZy01OC1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL0tjb25maWc9NjE9Y29uZmlnIEFUSDExS19DRlJcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvS2NvbmZpZzo2MjpcdGJvb2wgXCYjMzQ7YXRoMTFrIGNoYW5uZWwgZnJlcXVlbmN5IHJlc3BvbnNlIHN1cHBvcnRcJiMzNDtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvS2NvbmZpZy02My1cdGRlcGVuZHMgb24gQVRIMTFLX0RFQlVHRlNcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL0tjb25maWctNjUtXHRoZWxwXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL0tjb25maWc6NjY6XHQgIEVuYWJsZSBhdGgxMWsgY2hhbm5lbCBmcmVxdWVuY3kgcmVzcG9uc2UgZHVtcCBzdXBwb3J0LlxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9LY29uZmlnLTY3LVx0ICBUaGlzIG9wdGlvbiBleHBvc2VzIGRlYnVnZnMgbm9kZXMgdGhhdCB3aWxsIGFsbG93IHRoZSB1c2VyXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9NYWtlZmlsZS0xLSMgU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEJTRC0zLUNsYXVzZS1DbGVhclxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9NYWtlZmlsZToyOm9iai0kKENPTkZJR19BVEgxMUspICYjNDM7PSBhdGgxMWsub1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9NYWtlZmlsZTozOmF0aDExay15ICYjNDM7PSBjb3JlLm8gXFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvTWFrZWZpbGUtNC1cdCAgICBoYWwubyBcXFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvTWFrZWZpbGUtMjMtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL01ha2VmaWxlOjI0OmF0aDExay0kKENPTkZJR19BVEgxMUtfREVCVUdGUykgJiM0Mzs9IGRlYnVnZnMubyBkZWJ1Z2ZzX2h0dF9zdGF0cy5vIGRlYnVnZnNfc3RhLm9cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvTWFrZWZpbGU6MjU6YXRoMTFrLSQoQ09ORklHX05MODAyMTFfVEVTVE1PREUpICYjNDM7PSB0ZXN0bW9kZS5vXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL01ha2VmaWxlOjI2OmF0aDExay0kKENPTkZJR19BVEgxMUtfVFJBQ0lORykgJiM0Mzs9IHRyYWNlLm9cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvTWFrZWZpbGU6Mjc6YXRoMTFrLSQoQ09ORklHX1RIRVJNQUwpICYjNDM7PSB0aGVybWFsLm9cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvTWFrZWZpbGU6Mjg6YXRoMTFrLSQoQ09ORklHX0FUSDExS19TUEVDVFJBTCkgJiM0Mzs9IHNwZWN0cmFsLm9cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvTWFrZWZpbGU6Mjk6YXRoMTFrLSQoQ09ORklHX1BNKSAmIzQzOz0gd293Lm9cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvTWFrZWZpbGU6MzA6YXRoMTFrLSQoQ09ORklHX0RFVl9DT1JFRFVNUCkgJiM0Mzs9IGNvcmVkdW1wLm9cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvTWFrZWZpbGU6MzE6YXRoMTFrLSQoQ09ORklHX0FUSDExS19DRlIpICYjNDM7PSBjZnIub1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9NYWtlZmlsZS0zMi1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvTWFrZWZpbGU6MzM6b2JqLSQoQ09ORklHX0FUSDExS19BSEIpICYjNDM7PSBhdGgxMWtfYWhiLm9cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvTWFrZWZpbGU6MzQ6YXRoMTFrX2FoYi15ICYjNDM7PSBhaGIub1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9NYWtlZmlsZS0zNS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvTWFrZWZpbGU6MzY6b2JqLSQoQ09ORklHX0FUSDExS19QQ0kpICYjNDM7PSBhdGgxMWtfcGNpLm9cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvTWFrZWZpbGU6Mzc6YXRoMTFrX3BjaS15ICYjNDM7PSBtaGkubyBwY2kub1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9NYWtlZmlsZS0zOC1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTIzLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYzoyNDpzdGF0aWMgY29uc3Qgc3RydWN0IG9mX2RldmljZV9pZCBhdGgxMWtfYWhiX29mX21hdGNoW10gPSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTI1LVx0LyogVE9ETzogU2hvdWxkIHdlIGNoYW5nZSB0aGUgY29tcGF0aWJsZSBzdHJpbmcgdG8gc29tZXRoaW5nIHNpbWlsYXJcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTQyLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYzo0MzpNT0RVTEVfREVWSUNFX1RBQkxFKG9mLCBhdGgxMWtfYWhiX29mX21hdGNoKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtNDQtXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYz0xNDQ9c3RhdGljIGludFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYzoxNDU6YXRoMTFrX2FoYl9nZXRfbXNpX2lycV93Y242NzUwKHN0cnVjdCBhdGgxMWtfYmFzZSAqYWIsIHVuc2lnbmVkIGludCB2ZWN0b3IpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTE0Ni17XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYz0xNTA9c3RhdGljIGlubGluZSB1MzJcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmM6MTUxOmF0aDExa19haGJfZ2V0X3dpbmRvd19zdGFydF93Y242NzUwKHN0cnVjdCBhdGgxMWtfYmFzZSAqYWIsIHUzMiBvZmZzZXQpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTE1Mi17XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYz0xNjY9c3RhdGljIHZvaWRcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmM6MTY3OmF0aDExa19haGJfd2luZG93X3dyaXRlMzJfd2NuNjc1MChzdHJ1Y3QgYXRoMTFrX2Jhc2UgKmFiLCB1MzIgb2Zmc2V0LCB1MzIgdmFsdWUpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTE2OC17XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy0xNzEtXHQvKiBXQ042NzUwIHVzZXMgc3RhdGljIHdpbmRvdyBiYXNlZCByZWdpc3RlciBhY2Nlc3MqL1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYzoxNzI6XHR3aW5kb3dfc3RhcnQgPSBhdGgxMWtfYWhiX2dldF93aW5kb3dfc3RhcnRfd2NuNjc1MChhYiwgb2Zmc2V0KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtMTczLVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtMTc3LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYzoxNzg6c3RhdGljIHUzMiBhdGgxMWtfYWhiX3dpbmRvd19yZWFkMzJfd2NuNjc1MChzdHJ1Y3QgYXRoMTFrX2Jhc2UgKmFiLCB1MzIgb2Zmc2V0KVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy0xNzkte1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtMTgzLVx0LyogV0NONjc1MCB1c2VzIHN0YXRpYyB3aW5kb3cgYmFzZWQgcmVnaXN0ZXIgYWNjZXNzICovXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jOjE4NDpcdHdpbmRvd19zdGFydCA9IGF0aDExa19haGJfZ2V0X3dpbmRvd19zdGFydF93Y242NzUwKGFiLCBvZmZzZXQpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy0xODUtXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy0xOTAtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jOjE5MTpzdGF0aWMgY29uc3Qgc3RydWN0IGF0aDExa19wY2lfb3BzIGF0aDExa19haGJfcGNpX29wc193Y242NzUwID0ge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy0xOTItXHQud2FrZXVwID0gTlVMTCxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtMTkzLVx0LnJlbGVhc2UgPSBOVUxMLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYzoxOTQ6XHQuZ2V0X21zaV9pcnEgPSBhdGgxMWtfYWhiX2dldF9tc2lfaXJxX3djbjY3NTAsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jOjE5NTpcdC53aW5kb3dfd3JpdGUzMiA9IGF0aDExa19haGJfd2luZG93X3dyaXRlMzJfd2NuNjc1MCxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmM6MTk2Olx0LndpbmRvd19yZWFkMzIgPSBhdGgxMWtfYWhiX3dpbmRvd19yZWFkMzJfd2NuNjc1MCxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtMTk3LX07XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTE5OC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmM6MTk5OnN0YXRpYyBpbmxpbmUgdTMyIGF0aDExa19haGJfcmVhZDMyKHN0cnVjdCBhdGgxMWtfYmFzZSAqYWIsIHUzMiBvZmZzZXQpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTIwMC17XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy0yMDMtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jOjIwNDpzdGF0aWMgaW5saW5lIHZvaWQgYXRoMTFrX2FoYl93cml0ZTMyKHN0cnVjdCBhdGgxMWtfYmFzZSAqYWIsIHUzMiBvZmZzZXQsIHUzMiB2YWx1ZSlcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtMjA1LXtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTIwOC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmM6MjA5OnN0YXRpYyB2b2lkIGF0aDExa19haGJfa2lsbF90YXNrbGV0cyhzdHJ1Y3QgYXRoMTFrX2Jhc2UgKmFiKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy0yMTAte1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtMjEzLVx0Zm9yIChpID0gMDsgaSBcdTAwM2MgYWItXHUwMDNlaHdfcGFyYW1zLmNlX2NvdW50OyBpJiM0MzsmIzQzOykge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYzoyMTQ6XHRcdHN0cnVjdCBhdGgxMWtfY2VfcGlwZSAqY2VfcGlwZSA9IFx1MDAyNmFiLVx1MDAzZWNlLmNlX3BpcGVbaV07XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTIxNS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmM6MjE2Olx0XHRpZiAoYXRoMTFrX2NlX2dldF9hdHRyX2ZsYWdzKGFiLCBpKSBcdTAwMjYgQ0VfQVRUUl9ESVNfSU5UUilcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtMjE3LVx0XHRcdGNvbnRpbnVlO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtMjIyLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYzoyMjM6c3RhdGljIHZvaWQgYXRoMTFrX2FoYl9leHRfZ3JwX2Rpc2FibGUoc3RydWN0IGF0aDExa19leHRfaXJxX2dycCAqaXJxX2dycClcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtMjI0LXtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTIzMC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmM6MjMxOnN0YXRpYyB2b2lkIF9fYXRoMTFrX2FoYl9leHRfaXJxX2Rpc2FibGUoc3RydWN0IGF0aDExa19iYXNlICphYilcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtMjMyLXtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTIzNS1cdGZvciAoaSA9IDA7IGkgXHUwMDNjIEFUSDExS19FWFRfSVJRX0dSUF9OVU1fTUFYOyBpJiM0MzsmIzQzOykge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYzoyMzY6XHRcdHN0cnVjdCBhdGgxMWtfZXh0X2lycV9ncnAgKmlycV9ncnAgPSBcdTAwMjZhYi1cdTAwM2VleHRfaXJxX2dycFtpXTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtMjM3LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYzoyMzg6XHRcdGF0aDExa19haGJfZXh0X2dycF9kaXNhYmxlKGlycV9ncnApO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy0yMzktXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy0yNDctXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jOjI0ODpzdGF0aWMgdm9pZCBhdGgxMWtfYWhiX2V4dF9ncnBfZW5hYmxlKHN0cnVjdCBhdGgxMWtfZXh0X2lycV9ncnAgKmlycV9ncnApXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTI0OS17XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy0yNTUtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jOjI1NjpzdGF0aWMgdm9pZCBhdGgxMWtfYWhiX3NldGJpdDMyKHN0cnVjdCBhdGgxMWtfYmFzZSAqYWIsIHU4IGJpdCwgdTMyIG9mZnNldClcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtMjU3LXtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTI1OS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmM6MjYwOlx0dmFsID0gYXRoMTFrX2FoYl9yZWFkMzIoYWIsIG9mZnNldCk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jOjI2MTpcdGF0aDExa19haGJfd3JpdGUzMihhYiwgb2Zmc2V0LCB2YWwgfCBCSVQoYml0KSk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTI2Mi19XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTI2My1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmM6MjY0OnN0YXRpYyB2b2lkIGF0aDExa19haGJfY2xlYXJiaXQzMihzdHJ1Y3QgYXRoMTFrX2Jhc2UgKmFiLCB1OCBiaXQsIHUzMiBvZmZzZXQpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTI2NS17XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy0yNjctXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jOjI2ODpcdHZhbCA9IGF0aDExa19haGJfcmVhZDMyKGFiLCBvZmZzZXQpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYzoyNjk6XHRhdGgxMWtfYWhiX3dyaXRlMzIoYWIsIG9mZnNldCwgdmFsIFx1MDAyNiB+QklUKGJpdCkpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy0yNzAtfVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy0yNzEtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jOjI3MjpzdGF0aWMgdm9pZCBhdGgxMWtfYWhiX2NlX2lycV9lbmFibGUoc3RydWN0IGF0aDExa19iYXNlICphYiwgdTE2IGNlX2lkKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy0yNzMte1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtMjgzLVx0aWYgKGNlX2F0dHItXHUwMDNlc3JjX25lbnRyaWVzKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYzoyODQ6XHRcdGF0aDExa19haGJfc2V0Yml0MzIoYWIsIGNlX2lkLCBpZTFfcmVnX2FkZHIpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy0yODUtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTI4Ni1cdGlmIChjZV9hdHRyLVx1MDAzZWRlc3RfbmVudHJpZXMpIHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmM6Mjg3Olx0XHRhdGgxMWtfYWhiX3NldGJpdDMyKGFiLCBjZV9pZCwgaWUyX3JlZ19hZGRyKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmM6Mjg4Olx0XHRhdGgxMWtfYWhiX3NldGJpdDMyKGFiLCBjZV9pZCAmIzQzOyBDRV9IT1NUX0lFXzNfU0hJRlQsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTI4OS1cdFx0XHRcdCAgICBpZTNfcmVnX2FkZHIpO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtMjkyLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYzoyOTM6c3RhdGljIHZvaWQgYXRoMTFrX2FoYl9jZV9pcnFfZGlzYWJsZShzdHJ1Y3QgYXRoMTFrX2Jhc2UgKmFiLCB1MTYgY2VfaWQpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTI5NC17XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy0zMDQtXHRpZiAoY2VfYXR0ci1cdTAwM2VzcmNfbmVudHJpZXMpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jOjMwNTpcdFx0YXRoMTFrX2FoYl9jbGVhcmJpdDMyKGFiLCBjZV9pZCwgaWUxX3JlZ19hZGRyKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtMzA2LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy0zMDctXHRpZiAoY2VfYXR0ci1cdTAwM2VkZXN0X25lbnRyaWVzKSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jOjMwODpcdFx0YXRoMTFrX2FoYl9jbGVhcmJpdDMyKGFiLCBjZV9pZCwgaWUyX3JlZ19hZGRyKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmM6MzA5Olx0XHRhdGgxMWtfYWhiX2NsZWFyYml0MzIoYWIsIGNlX2lkICYjNDM7IENFX0hPU1RfSUVfM19TSElGVCxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtMzEwLVx0XHRcdFx0ICAgICAgaWUzX3JlZ19hZGRyKTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTMxMy1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmM6MzE0OnN0YXRpYyB2b2lkIGF0aDExa19haGJfc3luY19jZV9pcnFzKHN0cnVjdCBhdGgxMWtfYmFzZSAqYWIpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTMxNS17XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy0zMTktXHRmb3IgKGkgPSAwOyBpIFx1MDAzYyBhYi1cdTAwM2Vod19wYXJhbXMuY2VfY291bnQ7IGkmIzQzOyYjNDM7KSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jOjMyMDpcdFx0aWYgKGF0aDExa19jZV9nZXRfYXR0cl9mbGFncyhhYiwgaSkgXHUwMDI2IENFX0FUVFJfRElTX0lOVFIpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTMyMS1cdFx0XHRjb250aW51ZTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTMyNy1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmM6MzI4OnN0YXRpYyB2b2lkIGF0aDExa19haGJfc3luY19leHRfaXJxcyhzdHJ1Y3QgYXRoMTFrX2Jhc2UgKmFiKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy0zMjkte1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtMzMzLVx0Zm9yIChpID0gMDsgaSBcdTAwM2MgQVRIMTFLX0VYVF9JUlFfR1JQX05VTV9NQVg7IGkmIzQzOyYjNDM7KSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jOjMzNDpcdFx0c3RydWN0IGF0aDExa19leHRfaXJxX2dycCAqaXJxX2dycCA9IFx1MDAyNmFiLVx1MDAzZWV4dF9pcnFfZ3JwW2ldO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy0zMzUtXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy0zNDItXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jOjM0MzpzdGF0aWMgdm9pZCBhdGgxMWtfYWhiX2NlX2lycXNfZW5hYmxlKHN0cnVjdCBhdGgxMWtfYmFzZSAqYWIpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTM0NC17XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy0zNDctXHRmb3IgKGkgPSAwOyBpIFx1MDAzYyBhYi1cdTAwM2Vod19wYXJhbXMuY2VfY291bnQ7IGkmIzQzOyYjNDM7KSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jOjM0ODpcdFx0aWYgKGF0aDExa19jZV9nZXRfYXR0cl9mbGFncyhhYiwgaSkgXHUwMDI2IENFX0FUVFJfRElTX0lOVFIpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTM0OS1cdFx0XHRjb250aW51ZTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmM6MzUwOlx0XHRhdGgxMWtfYWhiX2NlX2lycV9lbmFibGUoYWIsIGkpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy0zNTEtXHR9XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy0zNTMtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jOjM1NDpzdGF0aWMgdm9pZCBhdGgxMWtfYWhiX2NlX2lycXNfZGlzYWJsZShzdHJ1Y3QgYXRoMTFrX2Jhc2UgKmFiKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy0zNTUte1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtMzU4LVx0Zm9yIChpID0gMDsgaSBcdTAwM2MgYWItXHUwMDNlaHdfcGFyYW1zLmNlX2NvdW50OyBpJiM0MzsmIzQzOykge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYzozNTk6XHRcdGlmIChhdGgxMWtfY2VfZ2V0X2F0dHJfZmxhZ3MoYWIsIGkpIFx1MDAyNiBDRV9BVFRSX0RJU19JTlRSKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy0zNjAtXHRcdFx0Y29udGludWU7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jOjM2MTpcdFx0YXRoMTFrX2FoYl9jZV9pcnFfZGlzYWJsZShhYiwgaSk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTM2Mi1cdH1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTM2NC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmM6MzY1OnN0YXRpYyBpbnQgYXRoMTFrX2FoYl9zdGFydChzdHJ1Y3QgYXRoMTFrX2Jhc2UgKmFiKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy0zNjYte1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYzozNjc6XHRhdGgxMWtfYWhiX2NlX2lycXNfZW5hYmxlKGFiKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmM6MzY4Olx0YXRoMTFrX2NlX3J4X3Bvc3RfYnVmKGFiKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtMzY5LVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtMzcyLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYzozNzM6c3RhdGljIHZvaWQgYXRoMTFrX2FoYl9leHRfaXJxX2VuYWJsZShzdHJ1Y3QgYXRoMTFrX2Jhc2UgKmFiKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy0zNzQte1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtMzc3LVx0Zm9yIChpID0gMDsgaSBcdTAwM2MgQVRIMTFLX0VYVF9JUlFfR1JQX05VTV9NQVg7IGkmIzQzOyYjNDM7KSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jOjM3ODpcdFx0c3RydWN0IGF0aDExa19leHRfaXJxX2dycCAqaXJxX2dycCA9IFx1MDAyNmFiLVx1MDAzZWV4dF9pcnFfZ3JwW2ldO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy0zNzktXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy0zODMtXHRcdH1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmM6Mzg0Olx0XHRhdGgxMWtfYWhiX2V4dF9ncnBfZW5hYmxlKGlycV9ncnApO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy0zODUtXHR9XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy0zODctXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jOjM4ODpzdGF0aWMgdm9pZCBhdGgxMWtfYWhiX2V4dF9pcnFfZGlzYWJsZShzdHJ1Y3QgYXRoMTFrX2Jhc2UgKmFiKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy0zODkte1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYzozOTA6XHRfX2F0aDExa19haGJfZXh0X2lycV9kaXNhYmxlKGFiKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmM6MzkxOlx0YXRoMTFrX2FoYl9zeW5jX2V4dF9pcnFzKGFiKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtMzkyLX1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtMzkzLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYzozOTQ6c3RhdGljIHZvaWQgYXRoMTFrX2FoYl9zdG9wKHN0cnVjdCBhdGgxMWtfYmFzZSAqYWIpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTM5NS17XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTM5Ni1cdGlmICghdGVzdF9iaXQoQVRIMTFLX0ZMQUdfQ1JBU0hfRkxVU0gsIFx1MDAyNmFiLVx1MDAzZWRldl9mbGFncykpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jOjM5NzpcdFx0YXRoMTFrX2FoYl9jZV9pcnFzX2Rpc2FibGUoYWIpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYzozOTg6XHRhdGgxMWtfYWhiX3N5bmNfY2VfaXJxcyhhYik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jOjM5OTpcdGF0aDExa19haGJfa2lsbF90YXNrbGV0cyhhYik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTQwMC1cdHRpbWVyX2RlbGV0ZV9zeW5jKFx1MDAyNmFiLVx1MDAzZXJ4X3JlcGxlbmlzaF9yZXRyeSk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jOjQwMTpcdGF0aDExa19jZV9jbGVhbnVwX3BpcGVzKGFiKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtNDAyLX1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtNDAzLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYzo0MDQ6c3RhdGljIGludCBhdGgxMWtfYWhiX3Bvd2VyX3VwKHN0cnVjdCBhdGgxMWtfYmFzZSAqYWIpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTQwNS17XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jOjQwNjpcdHN0cnVjdCBhdGgxMWtfYWhiICphYl9haGIgPSBhdGgxMWtfYWhiX3ByaXYoYWIpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy00MDctXHRpbnQgcmV0O1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtNDEwLVx0aWYgKHJldClcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmM6NDExOlx0XHRhdGgxMWtfZXJyKGFiLCBcJiMzNDtmYWlsZWQgdG8gYm9vdCB0aGUgcmVtb3RlIHByb2Nlc3NvciBRNlxcblwmIzM0Oyk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTQxMi1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTQxNS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmM6NDE2OnN0YXRpYyB2b2lkIGF0aDExa19haGJfcG93ZXJfZG93bihzdHJ1Y3QgYXRoMTFrX2Jhc2UgKmFiLCBib29sIGlzX3N1c3BlbmQpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTQxNy17XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jOjQxODpcdHN0cnVjdCBhdGgxMWtfYWhiICphYl9haGIgPSBhdGgxMWtfYWhiX3ByaXYoYWIpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy00MTktXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy00MjItXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jOjQyMzpzdGF0aWMgdm9pZCBhdGgxMWtfYWhiX2luaXRfcW1pX2NlX2NvbmZpZyhzdHJ1Y3QgYXRoMTFrX2Jhc2UgKmFiKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy00MjQte1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYzo0MjU6XHRzdHJ1Y3QgYXRoMTFrX3FtaV9jZV9jZmcgKmNmZyA9IFx1MDAyNmFiLVx1MDAzZXFtaS5jZV9jZmc7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTQyNi1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTQzMy1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmM6NDM0OnN0YXRpYyB2b2lkIGF0aDExa19haGJfZnJlZV9leHRfaXJxKHN0cnVjdCBhdGgxMWtfYmFzZSAqYWIpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTQzNS17XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy00MzgtXHRmb3IgKGkgPSAwOyBpIFx1MDAzYyBBVEgxMUtfRVhUX0lSUV9HUlBfTlVNX01BWDsgaSYjNDM7JiM0MzspIHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmM6NDM5Olx0XHRzdHJ1Y3QgYXRoMTFrX2V4dF9pcnFfZ3JwICppcnFfZ3JwID0gXHUwMDI2YWItXHUwMDNlZXh0X2lycV9ncnBbaV07XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTQ0MC1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTQ0OC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmM6NDQ5OnN0YXRpYyB2b2lkIGF0aDExa19haGJfZnJlZV9pcnEoc3RydWN0IGF0aDExa19iYXNlICphYilcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtNDUwLXtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTQ1NC1cdGlmIChhYi1cdTAwM2Vod19wYXJhbXMuaHlicmlkX2J1c190eXBlKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYzo0NTU6XHRcdHJldHVybiBhdGgxMWtfcGNpY19mcmVlX2lycShhYik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTQ1Ni1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtNDU3LVx0Zm9yIChpID0gMDsgaSBcdTAwM2MgYWItXHUwMDNlaHdfcGFyYW1zLmNlX2NvdW50OyBpJiM0MzsmIzQzOykge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYzo0NTg6XHRcdGlmIChhdGgxMWtfY2VfZ2V0X2F0dHJfZmxhZ3MoYWIsIGkpIFx1MDAyNiBDRV9BVFRSX0RJU19JTlRSKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy00NTktXHRcdFx0Y29udGludWU7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy00NjMtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jOjQ2NDpcdGF0aDExa19haGJfZnJlZV9leHRfaXJxKGFiKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtNDY1LX1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtNDY2LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYzo0Njc6c3RhdGljIHZvaWQgYXRoMTFrX2FoYl9jZV90YXNrbGV0KHN0cnVjdCB0YXNrbGV0X3N0cnVjdCAqdClcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtNDY4LXtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmM6NDY5Olx0c3RydWN0IGF0aDExa19jZV9waXBlICpjZV9waXBlID0gZnJvbV90YXNrbGV0KGNlX3BpcGUsIHQsIGludHJfdHEpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy00NzAtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jOjQ3MTpcdGF0aDExa19jZV9wZXJfZW5naW5lX3NlcnZpY2UoY2VfcGlwZS1cdTAwM2VhYiwgY2VfcGlwZS1cdTAwM2VwaXBlX251bSk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTQ3Mi1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmM6NDczOlx0YXRoMTFrX2FoYl9jZV9pcnFfZW5hYmxlKGNlX3BpcGUtXHUwMDNlYWIsIGNlX3BpcGUtXHUwMDNlcGlwZV9udW0pO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy00NzQtfVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy00NzUtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jOjQ3NjpzdGF0aWMgaXJxcmV0dXJuX3QgYXRoMTFrX2FoYl9jZV9pbnRlcnJ1cHRfaGFuZGxlcihpbnQgaXJxLCB2b2lkICphcmcpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTQ3Ny17XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jOjQ3ODpcdHN0cnVjdCBhdGgxMWtfY2VfcGlwZSAqY2VfcGlwZSA9IGFyZztcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtNDc5LVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtNDgyLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYzo0ODM6XHRhdGgxMWtfYWhiX2NlX2lycV9kaXNhYmxlKGNlX3BpcGUtXHUwMDNlYWIsIGNlX3BpcGUtXHUwMDNlcGlwZV9udW0pO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy00ODQtXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy00ODktXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jOjQ5MDpzdGF0aWMgaW50IGF0aDExa19haGJfZXh0X2dycF9uYXBpX3BvbGwoc3RydWN0IG5hcGlfc3RydWN0ICpuYXBpLCBpbnQgYnVkZ2V0KVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy00OTEte1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYzo0OTI6XHRzdHJ1Y3QgYXRoMTFrX2V4dF9pcnFfZ3JwICppcnFfZ3JwID0gY29udGFpbmVyX29mKG5hcGksXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jOjQ5MzpcdFx0XHRcdFx0XHRzdHJ1Y3QgYXRoMTFrX2V4dF9pcnFfZ3JwLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy00OTQtXHRcdFx0XHRcdFx0bmFwaSk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jOjQ5NTpcdHN0cnVjdCBhdGgxMWtfYmFzZSAqYWIgPSBpcnFfZ3JwLVx1MDAzZWFiO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy00OTYtXHRpbnQgd29ya19kb25lO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy00OTctXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jOjQ5ODpcdHdvcmtfZG9uZSA9IGF0aDExa19kcF9zZXJ2aWNlX3NybmcoYWIsIGlycV9ncnAsIGJ1ZGdldCk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTQ5OS1cdGlmICh3b3JrX2RvbmUgXHUwMDNjIGJ1ZGdldCkge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy01MDAtXHRcdG5hcGlfY29tcGxldGVfZG9uZShuYXBpLCB3b3JrX2RvbmUpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYzo1MDE6XHRcdGF0aDExa19haGJfZXh0X2dycF9lbmFibGUoaXJxX2dycCk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTUwMi1cdH1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTUwOS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmM6NTEwOnN0YXRpYyBpcnFyZXR1cm5fdCBhdGgxMWtfYWhiX2V4dF9pbnRlcnJ1cHRfaGFuZGxlcihpbnQgaXJxLCB2b2lkICphcmcpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTUxMS17XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jOjUxMjpcdHN0cnVjdCBhdGgxMWtfZXh0X2lycV9ncnAgKmlycV9ncnAgPSBhcmc7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTUxMy1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTUxNi1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmM6NTE3Olx0YXRoMTFrX2FoYl9leHRfZ3JwX2Rpc2FibGUoaXJxX2dycCk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTUxOC1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTUyMy1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmM6NTI0OnN0YXRpYyBpbnQgYXRoMTFrX2FoYl9jb25maWdfZXh0X2lycShzdHJ1Y3QgYXRoMTFrX2Jhc2UgKmFiKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy01MjUte1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYzo1MjY6XHRzdHJ1Y3QgYXRoMTFrX2h3X3BhcmFtcyAqaHcgPSBcdTAwMjZhYi1cdTAwM2Vod19wYXJhbXM7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTUyNy1cdGludCBpLCBqO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtNTMxLVx0Zm9yIChpID0gMDsgaSBcdTAwM2MgQVRIMTFLX0VYVF9JUlFfR1JQX05VTV9NQVg7IGkmIzQzOyYjNDM7KSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jOjUzMjpcdFx0c3RydWN0IGF0aDExa19leHRfaXJxX2dycCAqaXJxX2dycCA9IFx1MDAyNmFiLVx1MDAzZWV4dF9pcnFfZ3JwW2ldO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy01MzMtXHRcdHUzMiBudW1faXJxID0gMDtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTU0Mi1cdFx0bmV0aWZfbmFwaV9hZGQoaXJxX2dycC1cdTAwM2VuYXBpX25kZXYsIFx1MDAyNmlycV9ncnAtXHUwMDNlbmFwaSxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmM6NTQzOlx0XHRcdCAgICAgICBhdGgxMWtfYWhiX2V4dF9ncnBfbmFwaV9wb2xsKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtNTQ0LVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtNTY4LVx0XHRcdFx0XHRcdHJ4ZG1hMmhvc3RfZGVzdGluYXRpb25fcmluZ19tYWMxIC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmM6NTY5Olx0XHRcdFx0XHRcdGF0aDExa19od19nZXRfbWFjX2Zyb21fcGRldl9pZChodywgaik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTU3MC1cdFx0XHRcdH1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTU3NC1cdFx0XHRcdFx0XHRob3N0MnJ4ZG1hX2hvc3RfYnVmX3JpbmdfbWFjMSAtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jOjU3NTpcdFx0XHRcdFx0XHRhdGgxMWtfaHdfZ2V0X21hY19mcm9tX3BkZXZfaWQoaHcsIGopO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy01NzYtXHRcdFx0XHR9XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy01ODAtXHRcdFx0XHRcdFx0cHBkdV9lbmRfaW50ZXJydXB0c19tYWMxIC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmM6NTgxOlx0XHRcdFx0XHRcdGF0aDExa19od19nZXRfbWFjX2Zyb21fcGRldl9pZChodywgaik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTU4Mi1cdFx0XHRcdFx0aXJxX2dycC1cdTAwM2VpcnFzW251bV9pcnEmIzQzOyYjNDM7XSA9XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTU4My1cdFx0XHRcdFx0XHRyeGRtYTJob3N0X21vbml0b3Jfc3RhdHVzX3JpbmdfbWFjMSAtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jOjU4NDpcdFx0XHRcdFx0XHRhdGgxMWtfaHdfZ2V0X21hY19mcm9tX3BkZXZfaWQoaHcsIGopO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy01ODUtXHRcdFx0XHR9XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy01OTYtXHRcdFx0aXJxX3NldF9zdGF0dXNfZmxhZ3MoaXJxLCBJUlFfTk9BVVRPRU4gfCBJUlFfRElTQUJMRV9VTkxBWlkpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYzo1OTc6XHRcdFx0cmV0ID0gcmVxdWVzdF9pcnEoaXJxLCBhdGgxMWtfYWhiX2V4dF9pbnRlcnJ1cHRfaGFuZGxlcixcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtNTk4LVx0XHRcdFx0XHQgIElSUUZfVFJJR0dFUl9SSVNJTkcsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy02MDAtXHRcdFx0aWYgKHJldCkge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYzo2MDE6XHRcdFx0XHRhdGgxMWtfZXJyKGFiLCBcJiMzNDtmYWlsZWQgcmVxdWVzdF9pcnEgZm9yICVkXFxuXCYjMzQ7LFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy02MDItXHRcdFx0XHRcdCAgIGlycSk7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy02MDktXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jOjYxMDpzdGF0aWMgaW50IGF0aDExa19haGJfY29uZmlnX2lycShzdHJ1Y3QgYXRoMTFrX2Jhc2UgKmFiKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy02MTEte1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtNjE1LVx0aWYgKGFiLVx1MDAzZWh3X3BhcmFtcy5oeWJyaWRfYnVzX3R5cGUpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jOjYxNjpcdFx0cmV0dXJuIGF0aDExa19wY2ljX2NvbmZpZ19pcnEoYWIpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy02MTctXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy02MTktXHRmb3IgKGkgPSAwOyBpIFx1MDAzYyBhYi1cdTAwM2Vod19wYXJhbXMuY2VfY291bnQ7IGkmIzQzOyYjNDM7KSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jOjYyMDpcdFx0c3RydWN0IGF0aDExa19jZV9waXBlICpjZV9waXBlID0gXHUwMDI2YWItXHUwMDNlY2UuY2VfcGlwZVtpXTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtNjIxLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYzo2MjI6XHRcdGlmIChhdGgxMWtfY2VfZ2V0X2F0dHJfZmxhZ3MoYWIsIGkpIFx1MDAyNiBDRV9BVFRSX0RJU19JTlRSKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy02MjMtXHRcdFx0Y29udGludWU7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy02MjYtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jOjYyNzpcdFx0dGFza2xldF9zZXR1cChcdTAwMjZjZV9waXBlLVx1MDAzZWludHJfdHEsIGF0aDExa19haGJfY2VfdGFza2xldCk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTYyOC1cdFx0aXJxID0gcGxhdGZvcm1fZ2V0X2lycV9ieW5hbWUoYWItXHUwMDNlcGRldiwgaXJxX25hbWVbaXJxX2lkeF0pO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYzo2Mjk6XHRcdHJldCA9IHJlcXVlc3RfaXJxKGlycSwgYXRoMTFrX2FoYl9jZV9pbnRlcnJ1cHRfaGFuZGxlcixcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtNjMwLVx0XHRcdFx0ICBJUlFGX1RSSUdHRVJfUklTSU5HLCBpcnFfbmFtZVtpcnFfaWR4XSxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTYzOC1cdC8qIENvbmZpZ3VyZSBleHRlcm5hbCBpbnRlcnJ1cHRzICovXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jOjYzOTpcdHJldCA9IGF0aDExa19haGJfY29uZmlnX2V4dF9pcnEoYWIpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy02NDAtXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy02NDMtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jOjY0NDpzdGF0aWMgaW50IGF0aDExa19haGJfbWFwX3NlcnZpY2VfdG9fcGlwZShzdHJ1Y3QgYXRoMTFrX2Jhc2UgKmFiLCB1MTYgc2VydmljZV9pZCxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtNjQ1LVx0XHRcdFx0XHQgIHU4ICp1bF9waXBlLCB1OCAqZGxfcGlwZSlcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTY4Ni1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmM6Njg3OnN0YXRpYyBpbnQgYXRoMTFrX2FoYl9oaWZfc3VzcGVuZChzdHJ1Y3QgYXRoMTFrX2Jhc2UgKmFiKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy02ODgte1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYzo2ODk6XHRzdHJ1Y3QgYXRoMTFrX2FoYiAqYWJfYWhiID0gYXRoMTFrX2FoYl9wcml2KGFiKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtNjkwLVx0dTMyIHdha2VfaXJxO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtNzAwLVx0aWYgKHJldCkge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYzo3MDE6XHRcdGF0aDExa19lcnIoYWIsIFwmIzM0O2ZhaWxlZCB0byBlbmFibGUgd2FrZXVwIGlycSA6JWRcXG5cJiMzNDssIHJldCk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTcwMi1cdFx0cmV0dXJuIHJldDtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTcxMi1cdGlmIChyZXQpIHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmM6NzEzOlx0XHRhdGgxMWtfZXJyKGFiLCBcJiMzNDtmYWlsZWQgdG8gc2VuZCBzbXAycCBwb3dlciBzYXZlIGVudGVyIGNtZCA6JWRcXG5cJiMzNDssIHJldCk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTcxNC1cdFx0cmV0dXJuIHJldDtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTcxNi1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmM6NzE3Olx0YXRoMTFrX2RiZyhhYiwgQVRIMTFLX0RCR19BSEIsIFwmIzM0O2RldmljZSBzdXNwZW5kZWRcXG5cJiMzNDspO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy03MTgtXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy03MjEtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jOjcyMjpzdGF0aWMgaW50IGF0aDExa19haGJfaGlmX3Jlc3VtZShzdHJ1Y3QgYXRoMTFrX2Jhc2UgKmFiKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy03MjMte1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYzo3MjQ6XHRzdHJ1Y3QgYXRoMTFrX2FoYiAqYWJfYWhiID0gYXRoMTFrX2FoYl9wcml2KGFiKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtNzI1LVx0dTMyIHdha2VfaXJxO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtNzM1LVx0aWYgKHJldCkge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYzo3MzY6XHRcdGF0aDExa19lcnIoYWIsIFwmIzM0O2ZhaWxlZCB0byBkaXNhYmxlIHdha2V1cCBpcnE6ICVkXFxuXCYjMzQ7LCByZXQpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy03MzctXHRcdHJldHVybiByZXQ7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy03NDktXHRpZiAocmV0KSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jOjc1MDpcdFx0YXRoMTFrX2VycihhYiwgXCYjMzQ7ZmFpbGVkIHRvIHNlbmQgc21wMnAgcG93ZXIgc2F2ZSBlbnRlciBjbWQgOiVkXFxuXCYjMzQ7LCByZXQpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy03NTEtXHRcdHJldHVybiByZXQ7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy03NTUtXHRpZiAocmV0ID09IDApIHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmM6NzU2Olx0XHRhdGgxMWtfd2FybihhYiwgXCYjMzQ7dGltZWQgb3V0IHdoaWxlIHdhaXRpbmcgZm9yIHdvdyB3YWtldXAgY29tcGxldGlvblxcblwmIzM0Oyk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTc1Ny1cdFx0cmV0dXJuIC1FVElNRURPVVQ7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy03NTktXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jOjc2MDpcdGF0aDExa19kYmcoYWIsIEFUSDExS19EQkdfQUhCLCBcJiMzNDtkZXZpY2UgcmVzdW1lZFxcblwmIzM0Oyk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTc2MS1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTc2NC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmM6NzY1OnN0YXRpYyBjb25zdCBzdHJ1Y3QgYXRoMTFrX2hpZl9vcHMgYXRoMTFrX2FoYl9oaWZfb3BzX2lwcTgwNzQgPSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jOjc2NjpcdC5zdGFydCA9IGF0aDExa19haGJfc3RhcnQsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jOjc2NzpcdC5zdG9wID0gYXRoMTFrX2FoYl9zdG9wLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYzo3Njg6XHQucmVhZDMyID0gYXRoMTFrX2FoYl9yZWFkMzIsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jOjc2OTpcdC53cml0ZTMyID0gYXRoMTFrX2FoYl93cml0ZTMyLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy03NzAtXHQucmVhZCA9IE5VTEwsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jOjc3MTpcdC5pcnFfZW5hYmxlID0gYXRoMTFrX2FoYl9leHRfaXJxX2VuYWJsZSxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmM6NzcyOlx0LmlycV9kaXNhYmxlID0gYXRoMTFrX2FoYl9leHRfaXJxX2Rpc2FibGUsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jOjc3MzpcdC5tYXBfc2VydmljZV90b19waXBlID0gYXRoMTFrX2FoYl9tYXBfc2VydmljZV90b19waXBlLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYzo3NzQ6XHQucG93ZXJfZG93biA9IGF0aDExa19haGJfcG93ZXJfZG93bixcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmM6Nzc1Olx0LnBvd2VyX3VwID0gYXRoMTFrX2FoYl9wb3dlcl91cCxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtNzc2LX07XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTc3Ny1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmM6Nzc4OnN0YXRpYyBjb25zdCBzdHJ1Y3QgYXRoMTFrX2hpZl9vcHMgYXRoMTFrX2FoYl9oaWZfb3BzX3djbjY3NTAgPSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jOjc3OTpcdC5zdGFydCA9IGF0aDExa19wY2ljX3N0YXJ0LFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYzo3ODA6XHQuc3RvcCA9IGF0aDExa19wY2ljX3N0b3AsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jOjc4MTpcdC5yZWFkMzIgPSBhdGgxMWtfcGNpY19yZWFkMzIsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jOjc4MjpcdC53cml0ZTMyID0gYXRoMTFrX3BjaWNfd3JpdGUzMixcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtNzgzLVx0LnJlYWQgPSBOVUxMLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYzo3ODQ6XHQuaXJxX2VuYWJsZSA9IGF0aDExa19wY2ljX2V4dF9pcnFfZW5hYmxlLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYzo3ODU6XHQuaXJxX2Rpc2FibGUgPSBhdGgxMWtfcGNpY19leHRfaXJxX2Rpc2FibGUsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jOjc4NjpcdC5nZXRfbXNpX2FkZHJlc3MgPSAgYXRoMTFrX3BjaWNfZ2V0X21zaV9hZGRyZXNzLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYzo3ODc6XHQuZ2V0X3VzZXJfbXNpX3ZlY3RvciA9IGF0aDExa19wY2ljX2dldF91c2VyX21zaV9hc3NpZ25tZW50LFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYzo3ODg6XHQubWFwX3NlcnZpY2VfdG9fcGlwZSA9IGF0aDExa19wY2ljX21hcF9zZXJ2aWNlX3RvX3BpcGUsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jOjc4OTpcdC5wb3dlcl9kb3duID0gYXRoMTFrX2FoYl9wb3dlcl9kb3duLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYzo3OTA6XHQucG93ZXJfdXAgPSBhdGgxMWtfYWhiX3Bvd2VyX3VwLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYzo3OTE6XHQuc3VzcGVuZCA9IGF0aDExa19haGJfaGlmX3N1c3BlbmQsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jOjc5MjpcdC5yZXN1bWUgPSBhdGgxMWtfYWhiX2hpZl9yZXN1bWUsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jOjc5MzpcdC5jZV9pcnFfZW5hYmxlID0gYXRoMTFrX3BjaV9lbmFibGVfY2VfaXJxc19leGNlcHRfd2FrZV9pcnEsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jOjc5NDpcdC5jZV9pcnFfZGlzYWJsZSA9IGF0aDExa19wY2lfZGlzYWJsZV9jZV9pcnFzX2V4Y2VwdF93YWtlX2lycSxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtNzk1LX07XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTc5Ni1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmM6Nzk3OnN0YXRpYyBpbnQgYXRoMTFrX2NvcmVfZ2V0X3Jwcm9jKHN0cnVjdCBhdGgxMWtfYmFzZSAqYWIpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTc5OC17XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jOjc5OTpcdHN0cnVjdCBhdGgxMWtfYWhiICphYl9haGIgPSBhdGgxMWtfYWhiX3ByaXYoYWIpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy04MDAtXHRzdHJ1Y3QgZGV2aWNlICpkZXYgPSBhYi1cdTAwM2VkZXY7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy04MDQtXHRpZiAob2ZfcHJvcGVydHlfcmVhZF91MzIoZGV2LVx1MDAzZW9mX25vZGUsIFwmIzM0O3Fjb20scnByb2NcJiMzNDssIFx1MDAyNnJwcm9jX3BoYW5kbGUpKSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jOjgwNTpcdFx0YXRoMTFrX2VycihhYiwgXCYjMzQ7ZmFpbGVkIHRvIGdldCBxNl9ycHJvYyBoYW5kbGVcXG5cJiMzNDspO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy04MDYtXHRcdHJldHVybiAtRU5PRU5UO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtODE2LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYzo4MTc6c3RhdGljIGludCBhdGgxMWtfYWhiX3NldHVwX21zaV9yZXNvdXJjZXMoc3RydWN0IGF0aDExa19iYXNlICphYilcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtODE4LXtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTgyNi1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmM6ODI3Olx0cmV0ID0gYXRoMTFrX3BjaWNfaW5pdF9tc2lfY29uZmlnKGFiKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtODI4LVx0aWYgKHJldCkge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYzo4Mjk6XHRcdGF0aDExa19lcnIoYWIsIFwmIzM0O2ZhaWxlZCB0byBpbml0IG1zaSBjb25maWc6ICVkXFxuXCYjMzQ7LCByZXQpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy04MzAtXHRcdHJldHVybiByZXQ7XG4tLVxuXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+OS8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjggMDA6MTQ8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMjMwMDcKCQkJCQkJCW91dHB1dDogMzUKCQkJCQkJCXRob3VnaHRzOiAzNzgKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqRnV6emluZyB0aGUgYGF0aDExa2AgV2ktRmkgRHJpdmVyOiBBIFByZWxpbWluYXJ5IEFzc2Vzc21lbnQqKgoKT2theSwgc28gSSBzZWUgYGF0aDExa19haGIuY2AgYW5kIGBhdGgxMWtfcGNpLmNgLiBNeSBpbml0aWFsIHRob3VnaHQgaXMsIGNhbiBJIGxldmVyYWdlIGEgdmlydHVhbCBQQ0kgZGV2aWNlIHRvIGZ1enogdGhpcyBgYXRoMTFrYCBkcml2ZXI/IFN5emthbGxlciAqZG9lcyogaGF2ZSBhIFBDSSBmdXp6ZXIgdGhhdCBjYW4gaW5qZWN0IFBDSSBjb25maWd1cmF0aW9uIGFuZCBtZW1vcnkgc3BhY2UsIHNvIHRoZSBpZGVhIGhhcyBtZXJpdC4gQnV0IGhvbGQgb24sIHRoZSBwcm9tcHQgaXMgcmF0aGVyIHNwZWNpZmljOiBpdCBtZW50aW9ucyB2ZW5kb3Itc3BlY2lmaWMgUENJZSBzd2l0Y2gsIFNtYXJ0TklDLCBvciBHUFUgZHJpdmVycy4gVGhpbmdzIGxpa2UgYG1seHN3YCwgYHBkc19jb3JlYCwgYHFlZGAsIGBpb25pY2AsIGFuZCBgYW1kZ3B1YC4KCklzIGBhdGgxMWtgIGEgU21hcnROSUMsIEdQVSwgb3IgUENJZSBzd2l0Y2g/IE5vLCBpdCYjMzk7cyBhIFdpLUZpIGRyaXZlciwgc28gYXQgZmFjZSB2YWx1ZSwgaXQgbWlnaHQgbm90IGJlIHJlbGV2YW50LiBCdXQgZG9lcyBpdCAqcmVxdWlyZSogcGh5c2ljYWwgaGFyZHdhcmU/IFllcywgaXQgZGVwZW5kcyBvbiBhIFF1YWxjb21tIEF0aGVyb3MgODAyLjExYXggZGV2aWNlLCBzbyBhIHBoeXNpY2FsIGNhcmQgaXMgbmVlZGVkLgoKVGhlIHByb21wdCwgaG93ZXZlciwgKmRvZXMqIHVzZSAmIzM0O2UuZy4sIC4uLiYjMzQ7LCBzbyB0aGVyZSBtaWdodCBiZSBhIGdyZXkgYXJlYSBoZXJlLCBiZWNhdXNlIGl0IGRvZXMgbm90IGV4cGxpY2l0bHkgbWVudGlvbiBXaS1GaSBkcml2ZXJzLCBidXQgV2ktRmkgZHJpdmVycyB0aGF0IHJlcXVpcmUgcGh5c2ljYWwgUENJZSBoYXJkd2FyZSBjYXJkcyBub3QgZW11bGF0ZWQgaW4gc3RhbmRhcmQgUUVNVSBhcmUgc2ltaWxhciB0byB0aGUgY2FzZXMgbWVudGlvbmVkLgoKT2theSwgc28gU3l6a2FsbGVyICpkb2VzKiBmdXp6IFdpLUZpIGRyaXZlcnMsIGJ1dCB0aHJvdWdoIGBtYWM4MDIxMV9od3NpbWAuIEJ1dCBgYXRoMTFrYCBpcyBhIGhhcmR3YXJlIGRyaXZlciwgd2hpY2ggaXMgZGlmZmVyZW50LiBTeXprYWxsZXIgaGFzIGZ1bmN0aW9ucyBsaWtlIGBzeXpfODAyMTFfaW5qZWN0X2ZyYW1lYCBhbmQgdGhlIGxpa2UsIGJ1dCB0aG9zZSBhcmUgZm9yIGBtYWM4MDIxMV9od3NpbWAsIHdoaWNoIEkgZG9uJiMzOTt0IHRoaW5rIHdvdWxkIGFwcGx5IGhlcmUuCgpTbywgKmRvZXMqIFN5emthbGxlciBmdXp6IGBhdGgxMWtgIGF0IGFsbD8KCkxldCBtZSBjaGVjay4gSSBuZWVkIHRvIGxvb2sgZm9yIGFueSBzeXprYWxsZXIgYW5ub3RhdGlvbnMgd2l0aGluIHRoZSBgYXRoMTFrYCBjb2RlYmFzZSBpdHNlbGYuIEkmIzM5O2xsIHNlYXJjaCB0aGUgYGRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYCBkaXJlY3RvcnkgZm9yICYjMzQ7c3l6a2FsbGVyJiMzNDsgb3IgJiMzNDtzeXomIzM0OyBhbmQgc2VlIHdoYXQgY29tZXMgdXAuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTAvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzI4IDAwOjE0PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5FcnJvcjo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm5vIG1hdGNoZXM8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7c3l6JiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay8mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7ZXJyb3ImIzM0OzogJiMzNDtubyBtYXRjaGVzJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjExLzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yOCAwMDoxNDwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAyMzg5OAoJCQkJCQkJb3V0cHV0OiAzNAoJCQkJCQkJdGhvdWdodHM6IDQ1OQoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipNeSBSZWFzb25pbmcgb24gRnV6emluZyBBdGgxMWsqKgoKT2theSwgc28gSSYjMzk7bSBsb29raW5nIGF0IHRoaXMgYW5kIHRoaW5raW5nLCAmIzM0O05vIGRpY2UsIG5vIGltbWVkaWF0ZSBtYXRjaGVzLiYjMzQ7IEJ1dCB3YWl0LCBkaWRuJiMzOTt0IEkgc2VlIHNvbWV0aGluZyBhYm91dCBzeXprYWxsZXIgaGF2aW5nIGEgUENJIGZ1enplcj8gQ291bGQgaXQgZnV6eiB0aGUgYXRoMTFrIGRyaXZlcj8gSSBuZWVkIHRvIGNoZWNrLiBJZGVhbGx5LCBJJiMzOTtkIHNlYXJjaCBzeXprYWxsZXIgcmVwb3J0cyBmb3IgJiMzNDthdGgxMWssJiMzNDsgYnV0LCBpbiB0aGlzIHNjZW5hcmlvLCBJIGNhbiYjMzk7dC4gSG1tLCBjYW4gSSBldmVuICpyZWFjaCogYXRoMTFrIGluIGEgUUVNVSBlbnZpcm9ubWVudD8KClRoZSBwcm9tcHQganVzdCBicm91Z2h0IHVwIGEgY3J1Y2lhbCBwb2ludDogJiMzNDtDb2RlIHBhdGhzIHRoYXQgYXJlIGltcG9zc2libGUgdG8gcmVhY2ggaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgR0NFIG9yIFFFTVUsIGV2ZW4gd2hlbiB1dGlsaXppbmcgc29mdHdhcmUtZW11bGF0ZWQgaGFyZHdhcmUuJiMzNDsgT2theSwgc28gaXMgYXRoMTFrIHJlYWNoYWJsZSBpbiBzdGFuZGFyZCBRRU1VPyBObywgUUVNVSBkb2VzbiYjMzk7dCBlbXVsYXRlIHRoZSBuZWNlc3NhcnkgUXVhbGNvbW0gQXRoZXJvcyA4MDIuMTFheCBoYXJkd2FyZS4KCk5vdywgbGV0JiMzOTtzIGNpcmNsZSBiYWNrIHRvIHRoYXQgUENJIGZ1enppbmcgYW5nbGUuIFN5emthbGxlciYjMzk7cyBQQ0kgZnV6emVyICpzaW11bGF0ZXMqIFBDSSBkZXZpY2VzLCByaWdodD8gSXQgZWl0aGVyIGhvb2tzIGludG8gdGhlIFBDSSBzdWJzeXN0ZW0gZGlyZWN0bHkgb3IgdXNlcyBzb21ldGhpbmcgbGlrZSBgdmZpb2Agb3IgYHBjaS1zdHViYD8gQWN0dWFsbHksIG5vLCBzeXprYWxsZXIgdXNlcyBhIGN1c3RvbSBQQ0kgZGV2aWNlIGluIFFFTVUgb3IgaW5qZWN0cyB2aWEgYHN5el9wY2lfZGV2aWNlYC4gSWYgc3l6a2FsbGVyJiMzOTtzIFBDSSBmdXp6ZXIgY2FuIGhpdCBpdCwgdGhlbiBpdCAqaXMqIHJlYWNoYWJsZS4KCkJ1dCB0aGUgcHJvbXB0IHN0YXRlcyBxdWl0ZSBleHBsaWNpdGx5OiAmIzM0O0NvZGUgaW4gdmVuZG9yLXNwZWNpZmljIFBDSWUgc3dpdGNoLCBTbWFydE5JQywgb3IgR1BVIGRyaXZlcnMgKGUuZy4sIG1seHN3LCBwZHNfY29yZSwgcWVkLCBpb25pYywgYW1kZ3B1KSB0aGF0IHJlcXVpcmUgcGh5c2ljYWwgUENJZSBoYXJkd2FyZSBjYXJkcyBub3QgZW11bGF0ZWQgaW4gc3RhbmRhcmQgUUVNVS4mIzM0OyBUaGlzIHNlZW1zIHRvIGJlIHRoZSBjcml0aWNhbCBkaXN0aW5jdGlvbi4gVGhvc2UgZHJpdmVycywgcmVxdWlyaW5nIHBoeXNpY2FsIGhhcmR3YXJlIG5vdCBlbXVsYXRlZCwgc2hvdWxkIGJlIG1hcmtlZCBhcyBXb3J0aEZ1enppbmc9ZmFsc2UuCgpJcyBhdGgxMWsgYSAqdmVuZG9yLXNwZWNpZmljKiBQQ0llIGRyaXZlcj8gWWVzLCBpdCYjMzk7cyBRdWFsY29tbSBBdGhlcm9zLCBhYnNvbHV0ZWx5LiBEb2VzIGl0ICpyZXF1aXJlKiBwaHlzaWNhbCBoYXJkd2FyZT8gWWVzLCBpdCBkb2VzLiBJcyBpdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCBRRU1VPyBOby4gU28sIGl0ICphcHBlYXJzKiB0byBmYWxsIHNxdWFyZWx5IGludG8gdGhhdCAmIzM0O1dvcnRoRnV6emluZz1mYWxzZSYjMzQ7IGNhdGVnb3J5LgoKSG9sZCBvbiwgd2hhdCBhYm91dCBVU0I/IEkga25vdyBVU0IgZHJpdmVycyBjYW4gYmUgZnV6emVkIHRocm91Z2ggVVNCIGdhZGdldCAoZHVtbXlfaGNkKS4gQnV0LCBhdGgxMWsgaXMgUENJLCBhbHNvIEFIQi4uLiBJIHNob3VsZCBjaGVjaywgdGhvdWdoLCBpZiBhdGgxMWsgZXZlbiBoYXMgYW55IFVTQiBzdXBwb3J0LgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEyLzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yOCAwMDoxNDwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+RXJyb3I6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5ubyBtYXRjaGVzPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O3VzYiYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O2Vycm9yJiMzNDs6ICYjMzQ7bm8gbWF0Y2hlcyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMy8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjggMDA6MTQ8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMjQ5MjMKCQkJCQkJCW91dHB1dDogNDQKCQkJCQkJCXRob3VnaHRzOiA3NjMKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqQW5hbHl6aW5nIHRoZSBXb3J0aEZ1enppbmcgU3RhdHVzIG9mIGFuIGF0aDExayBQYXRjaCoqCgpPa2F5LCBmaXJzdCB0aGluZ3MgZmlyc3QsIG5vIFVTQiBzdXBwb3J0IGlzIHJlbGV2YW50IGhlcmUsIHNvIGxldCYjMzk7cyBzZXQgdGhhdCBhc2lkZS4gSSYjMzk7bSBmb2N1c2luZyBvbiB0aGlzIGBhdGgxMWtgIGRyaXZlciBmaXgsIGFuZCBteSBpbml0aWFsIHRob3VnaHQgd2FzIHRoYXQgaXQgZGVhbHMgd2l0aCBBSEIsIHdoaWNoIGlzIG5vcm1hbGx5IGFuIFNvQyBpbnRlcm5hbCBidXMgYW5kIG5vdCBzb21ldGhpbmcgZW11bGF0ZWQgaW4gc3RhbmRhcmQgUUVNVS4gSWYgaXQgbmVlZGVkIGEgc3BlY2lmaWMgU29DIGxpa2UgSVBRODA3NCwgdGhhdCB3b3VsZCBiZSBhIHByb2JsZW0uIEJ1dCwgSSBuZWVkIHRvIGxvb2sgY2xvc2VyIGF0IHRoZSBjb2RlLgoKQWxyaWdodCwgdGhlIHBhdGNoIEkmIzM5O20gZXhhbWluaW5nIGlzIGluIGBhdGgxMWtfZHBfc3JuZ19zZXR1cGAuIEFoLCBpdCYjMzk7cyBhIHNpbXBsZSBmaXguIEl0IGNsZWFucyB1cCB0aGUgU1JORyBpZiBgYXRoMTFrX2hhbF9zcm5nX3NldHVwYCBmYWlscy4gVGhpcyBsb29rcyBsaWtlIGl0JiMzOTtzIGFkZHJlc3NpbmcgYSBtZW1vcnkgbGVhayBvciBhIHNpbWlsYXIgaXNzdWUuIFRoZSBvcmlnaW5hbCBpbnN0cnVjdGlvbnMgc3VnZ2VzdCB0aGF0IHNpbmNlIGBhdGgxMWtgIGlzIGEgaGFyZHdhcmUtc3BlY2lmaWMgZHJpdmVyLCBvbmUgdGhhdCAqcmVxdWlyZXMqIHBoeXNpY2FsIFBDSWUvQUhCIGhhcmR3YXJlIG5vdCBlbXVsYXRlZCBieSBzdGFuZGFyZCBRRU1VLCB0aGlzIHNob3VsZCBiZSBjb25zaWRlcmVkIGBXb3J0aEZ1enppbmc9ZmFsc2VgLiBUaGF0IHNlZW1zIGxvZ2ljYWwgYXQgZmlyc3QgZ2xhbmNlLgoKQnV0IHdhaXQsIEkgbmVlZCB0byBkb3VibGUtY2hlY2sgc29tZXRoaW5nLiAqRG9lcyogc3l6a2FsbGVyIGFjdHVhbGx5IGZ1enogYGF0aDExa2A/IFRoaXMgaXMgY3JpdGljYWwhIExldCYjMzk7cyBzZWUuLi4gQWgsIHRoZSBjb21taXQgbWVzc2FnZTogJiMzNDtBdXRob3I6IHN5ei1jbHVzdGVyICZsdDt0cmlhZ2VAc3l6a2FsbGVyLmNvbSZndDsmIzM0Oy4gSG9sZCBvbiEgJiMzNDtzeXotY2x1c3RlciYjMzQ7IGlzIHRoZSBhdXRob3IhIFRoYXQgbWVhbnMgc3l6a2FsbGVyIGRpZCBmaW5kIGEgYnVnIGhlcmUhIEhvdyBpcyB0aGlzIGV2ZW4gcG9zc2libGU/CgpPa2F5LCB0aGUgcGllY2VzIGFyZSBmYWxsaW5nIGludG8gcGxhY2UhIFN5emthbGxlciBoYXMgYSBQQ0kgZnV6emVyLiBJdCAqY2FuKiBmdXp6IEFOWSBQQ0kgZHJpdmVyIGJ5IHNpbXVsYXRpbmcgUENJIGRldmljZXMhIEFoYSEgSWYgc3l6a2FsbGVyIGZvdW5kIGEgYnVnIGluIGBhdGgxMWtgLCB0aGF0IG1lYW5zIHRoaXMgY29kZSAqbXVzdCogYmUgcmVhY2hhYmxlIHdpdGhpbiBzeXprYWxsZXImIzM5O3MgZW52aXJvbm1lbnQuIEkgbmVlZCB0byBjb25maXJtIGhvdyBzeXprYWxsZXIgYXBwcm9hY2hlcyB0aGlzLgoKTGV0IG1lIGNoZWNrLiBEb2VzIHN5emthbGxlciB1c2UgYSB2aXJ0dWFsIFBDSSBkZXZpY2UgdG8gZnV6eiBgYXRoMTFrYD8gWWVzLCBzeXprYWxsZXImIzM5O3MgYHN5el9wY2lfZGV2aWNlYCBvciBhIHNpbWlsYXIgdG9vbCBjYW4gcHJvYmUgKmFueSogUENJIGRyaXZlciBieSBtYXRjaGluZyB2ZW5kb3IvZGV2aWNlIElEcyBhbmQgdGhlbiBmdXp6aW5nIHRoZSBNTUlPL1BJTy9ETUEgYWNjZXNzZXMuCgpUaGUgb3JpZ2luYWwgcHJvbXB0IHRhbGtzIGFib3V0ICYjMzQ7Q29kZSBpbiB2ZW5kb3Itc3BlY2lmaWMgUENJZSBzd2l0Y2gsIFNtYXJ0TklDLCBvciBHUFUgZHJpdmVycy4uLiB0aGF0IHJlcXVpcmUgcGh5c2ljYWwgUENJZSBoYXJkd2FyZSBjYXJkcyBub3QgZW11bGF0ZWQgaW4gc3RhbmRhcmQgUUVNVSYjMzQ7LiBUaGlzIGdpdmVzIG1lIHBhdXNlLiBJcyBgYXRoMTFrYCBhIFNtYXJ0TklDLCBhIEdQVSwgb3IgYSBQQ0llIHN3aXRjaD8gTm8sIGl0JiMzOTtzIGEgV0xBTiBkcml2ZXIuIEJ1dCBkaWQgdGhlIHByb21wdCBtZWFuICphbGwqIHZlbmRvci1zcGVjaWZpYyBQQ0llIGRyaXZlcnM/CgpJZiBzeXprYWxsZXIgaXMgZmluZGluZyBidWdzLCB0aGVuIGl0IG1lYW5zIHRoZXNlIHBhcnRzICphcmUqIHJlYWNoYWJsZS4gVGhlIHdvcmRpbmcgaXMgaW1wb3J0YW50LiBJdCBoaWdobGlnaHRzIHZlbmRvci1zcGVjaWZpYyBjb2RlIHRoYXQgcmVxdWlyZXMgcGh5c2ljYWwgY2FyZHMuIEkgc2VlIG5vdyEgVGhlIGtleSBpcyB0aGF0IHN5emthbGxlciAqZmFrZXMqIHRoZSBQQ0kgZGV2aWNlISBJdCBwcmVzZW50cyB0aGUgdmVuZG9yL2RldmljZSBJRCwgdGhlIGtlcm5lbCBwcm9iZXMgdGhlIGRyaXZlciwgYW5kIHRoZSBkcml2ZXIgbWFwcyBCQVJzLiBUaGVuLCB3aGVuIHRoZSBkcml2ZXIgcmVhZHMgZnJvbSB0aG9zZSBCQVJzLCB0aGUgUENJIGZ1enplciBwcm92aWRlcyBmdXp6ZWQgdmFsdWVzIQoKVGhpcyBtZWFucyB0aGUgZHJpdmVyJiMzOTtzIGluaXRpYWxpemF0aW9uIGNvZGUg4oCTIHRoZSBwcm9iZSwgc2V0dXAgZnVuY3Rpb25zLCBldGMuIOKAkyBJUyByZWFjaGFibGUgYW5kIGhlYXZpbHkgZnV6emVkIGJ5IHN5emthbGxlci4gVGhlIGluaXRpYWwgc2V0dXAsIGxpa2UgYGF0aDExa19kcF9zcm5nX3NldHVwYCwgaXMgbGlrZWx5IGNhbGxlZCBkdXJpbmcgdGhlIHByb2JlLiBJIG5lZWQgdG8gdmVyaWZ5IHRoYXQuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTQvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzI4IDAwOjE1PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O2F0aDExa19kcF9zcm5nX3NldHVwJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay8mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9kYnJpbmcuYz0yMzc9aW50IGF0aDExa19kYnJpbmdfc3JuZ19zZXR1cChzdHJ1Y3QgYXRoMTFrICphciwgc3RydWN0IGF0aDExa19kYnJpbmcgKnJpbmcsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9kYnJpbmcuYy0yNDEtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2RicmluZy5jOjI0MjpcdHJldCA9IGF0aDExa19kcF9zcm5nX3NldHVwKGFyLVx1MDAzZWFiLCBcdTAwMjZyaW5nLVx1MDAzZXJlZmlsbF9zcm5nLCBIQUxfUlhETUFfRElSX0JVRixcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvZGJyaW5nLmMtMjQzLVx0XHRcdFx0ICAgcmluZ19udW0sIGFyLVx1MDAzZXBkZXZfaWR4LCBudW1fZW50cmllcyk7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9kcC5jPTE4MT1zdGF0aWMgdm9pZCBhdGgxMWtfZHBfc3JuZ19tc2lfc2V0dXAoc3RydWN0IGF0aDExa19iYXNlICphYixcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2RwLmMtMjIwLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9kcC5jOjIyMTppbnQgYXRoMTFrX2RwX3Nybmdfc2V0dXAoc3RydWN0IGF0aDExa19iYXNlICphYiwgc3RydWN0IGRwX3NybmcgKnJpbmcsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2RwLmMtMjIyLVx0XHRcdCBlbnVtIGhhbF9yaW5nX3R5cGUgdHlwZSwgaW50IHJpbmdfbnVtLFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvZHAuYz0zNzE9c3RhdGljIGludCBhdGgxMWtfZHBfc3JuZ19jb21tb25fc2V0dXAoc3RydWN0IGF0aDExa19iYXNlICphYilcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2RwLmMtMzc3LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9kcC5jOjM3ODpcdHJldCA9IGF0aDExa19kcF9zcm5nX3NldHVwKGFiLCBcdTAwMjZkcC1cdTAwM2V3Ym1fZGVzY19yZWxfcmluZyxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvZHAuYy0zNzktXHRcdFx0XHQgICBIQUxfU1cyV0JNX1JFTEVBU0UsIDAsIDAsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9kcC5jLTM4Ni1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvZHAuYzozODc6XHRyZXQgPSBhdGgxMWtfZHBfc3JuZ19zZXR1cChhYiwgXHUwMDI2ZHAtXHUwMDNldGNsX2NtZF9yaW5nLCBIQUxfVENMX0NNRCwgMCwgMCxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvZHAuYy0zODgtXHRcdFx0XHQgICBEUF9UQ0xfQ01EX1JJTkdfU0laRSk7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9kcC5jLTM5My1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvZHAuYzozOTQ6XHRyZXQgPSBhdGgxMWtfZHBfc3JuZ19zZXR1cChhYiwgXHUwMDI2ZHAtXHUwMDNldGNsX3N0YXR1c19yaW5nLCBIQUxfVENMX1NUQVRVUyxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvZHAuYy0zOTUtXHRcdFx0XHQgICAwLCAwLCBEUF9UQ0xfU1RBVFVTX1JJTkdfU0laRSk7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9kcC5jLTQwNC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvZHAuYzo0MDU6XHRcdHJldCA9IGF0aDExa19kcF9zcm5nX3NldHVwKGFiLCBcdTAwMjZkcC1cdTAwM2V0eF9yaW5nW2ldLnRjbF9kYXRhX3JpbmcsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2RwLmMtNDA2LVx0XHRcdFx0XHQgICBIQUxfVENMX0RBVEEsIHRjbF9udW0sIDAsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9kcC5jLTQxMy1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvZHAuYzo0MTQ6XHRcdHJldCA9IGF0aDExa19kcF9zcm5nX3NldHVwKGFiLCBcdTAwMjZkcC1cdTAwM2V0eF9yaW5nW2ldLnRjbF9jb21wX3JpbmcsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2RwLmMtNDE1LVx0XHRcdFx0XHQgICBIQUxfV0JNMlNXX1JFTEVBU0UsIHdibV9udW0sIDAsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9kcC5jLTQzMC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvZHAuYzo0MzE6XHRyZXQgPSBhdGgxMWtfZHBfc3JuZ19zZXR1cChhYiwgXHUwMDI2ZHAtXHUwMDNlcmVvX3JlaW5qZWN0X3JpbmcsIEhBTF9SRU9fUkVJTkpFQ1QsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2RwLmMtNDMyLVx0XHRcdFx0ICAgMCwgMCwgRFBfUkVPX1JFSU5KRUNUX1JJTkdfU0laRSk7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9kcC5jLTQzOC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvZHAuYzo0Mzk6XHRyZXQgPSBhdGgxMWtfZHBfc3JuZ19zZXR1cChhYiwgXHUwMDI2ZHAtXHUwMDNlcnhfcmVsX3JpbmcsIEhBTF9XQk0yU1dfUkVMRUFTRSxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvZHAuYy00NDAtXHRcdFx0XHQgICBEUF9SWF9SRUxFQVNFX1JJTkdfTlVNLCAwLCBEUF9SWF9SRUxFQVNFX1JJTkdfU0laRSk7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9kcC5jLTQ0NS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvZHAuYzo0NDY6XHRyZXQgPSBhdGgxMWtfZHBfc3JuZ19zZXR1cChhYiwgXHUwMDI2ZHAtXHUwMDNlcmVvX2V4Y2VwdF9yaW5nLCBIQUxfUkVPX0VYQ0VQVElPTixcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvZHAuYy00NDctXHRcdFx0XHQgICAwLCAwLCBEUF9SRU9fRVhDRVBUSU9OX1JJTkdfU0laRSk7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9kcC5jLTQ1My1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvZHAuYzo0NTQ6XHRyZXQgPSBhdGgxMWtfZHBfc3JuZ19zZXR1cChhYiwgXHUwMDI2ZHAtXHUwMDNlcmVvX2NtZF9yaW5nLCBIQUxfUkVPX0NNRCxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvZHAuYy00NTUtXHRcdFx0XHQgICAwLCAwLCBEUF9SRU9fQ01EX1JJTkdfU0laRSk7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9kcC5jLTQ2Ny1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvZHAuYzo0Njg6XHRyZXQgPSBhdGgxMWtfZHBfc3JuZ19zZXR1cChhYiwgXHUwMDI2ZHAtXHUwMDNlcmVvX3N0YXR1c19yaW5nLCBIQUxfUkVPX1NUQVRVUyxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvZHAuYy00NjktXHRcdFx0XHQgICAwLCAwLCBEUF9SRU9fU1RBVFVTX1JJTkdfU0laRSk7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9kcC5jPTY0Nz1zdGF0aWMgaW50IGF0aDExa193Ym1faWRsZV9yaW5nX3NldHVwKHN0cnVjdCBhdGgxMWtfYmFzZSAqYWIsIHUzMiAqbl9saW5rX2Rlc2MpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9kcC5jLTY3My1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvZHAuYzo2NzQ6XHRyZXQgPSBhdGgxMWtfZHBfc3JuZ19zZXR1cChhYiwgXHUwMDI2ZHAtXHUwMDNld2JtX2lkbGVfcmluZyxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvZHAuYy02NzUtXHRcdFx0XHQgICBIQUxfV0JNX0lETEVfTElOSywgMCwgMCwgKm5fbGlua19kZXNjKTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2RwLmg9MTY3Mj12b2lkIGF0aDExa19kcF9zcm5nX2NsZWFudXAoc3RydWN0IGF0aDExa19iYXNlICphYiwgc3RydWN0IGRwX3NybmcgKnJpbmcpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9kcC5oOjE2NzM6aW50IGF0aDExa19kcF9zcm5nX3NldHVwKHN0cnVjdCBhdGgxMWtfYmFzZSAqYWIsIHN0cnVjdCBkcF9zcm5nICpyaW5nLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9kcC5oLTE2NzQtXHRcdFx0IGVudW0gaGFsX3JpbmdfdHlwZSB0eXBlLCBpbnQgcmluZ19udW0sXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9kcF9yeC5jPTU0Nj1pbnQgYXRoMTFrX2RwX3BkZXZfcmVvX3NldHVwKHN0cnVjdCBhdGgxMWtfYmFzZSAqYWIpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9kcF9yeC5jLTU1Mi1cdGZvciAoaSA9IDA7IGkgXHUwMDNjIERQX1JFT19EU1RfUklOR19NQVg7IGkmIzQzOyYjNDM7KSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2RwX3J4LmM6NTUzOlx0XHRyZXQgPSBhdGgxMWtfZHBfc3JuZ19zZXR1cChhYiwgXHUwMDI2ZHAtXHUwMDNlcmVvX2RzdF9yaW5nW2ldLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9kcF9yeC5jLTU1NC1cdFx0XHRcdFx0ICAgSEFMX1JFT19EU1QsIGksIDAsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9kcF9yeC5jPTU3MD1zdGF0aWMgaW50IGF0aDExa19kcF9yeF9wZGV2X3NybmdfYWxsb2Moc3RydWN0IGF0aDExayAqYXIpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9kcF9yeC5jLTU3Ny1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvZHBfcnguYzo1Nzg6XHRyZXQgPSBhdGgxMWtfZHBfc3JuZ19zZXR1cChhci1cdTAwM2VhYixcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvZHBfcnguYy01NzktXHRcdFx0XHQgICBcdTAwMjZkcC1cdTAwM2VyeF9yZWZpbGxfYnVmX3JpbmcucmVmaWxsX2J1Zl9yaW5nLFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvZHBfcnguYy01ODgtXHRcdGZvciAoaSA9IDA7IGkgXHUwMDNjIGFiLVx1MDAzZWh3X3BhcmFtcy5udW1fcnhkbWFfcGVyX3BkZXY7IGkmIzQzOyYjNDM7KSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2RwX3J4LmM6NTg5Olx0XHRcdHJldCA9IGF0aDExa19kcF9zcm5nX3NldHVwKGFyLVx1MDAzZWFiLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9kcF9yeC5jLTU5MC1cdFx0XHRcdFx0XHQgICBcdTAwMjZkcC1cdTAwM2VyeF9tYWNfYnVmX3JpbmdbaV0sXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9kcF9yeC5jLTYwMS1cdGZvciAoaSA9IDA7IGkgXHUwMDNjIGFiLVx1MDAzZWh3X3BhcmFtcy5udW1fcnhkbWFfcGVyX3BkZXY7IGkmIzQzOyYjNDM7KSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2RwX3J4LmM6NjAyOlx0XHRyZXQgPSBhdGgxMWtfZHBfc3JuZ19zZXR1cChhci1cdTAwM2VhYiwgXHUwMDI2ZHAtXHUwMDNlcnhkbWFfZXJyX2RzdF9yaW5nW2ldLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9kcF9yeC5jLTYwMy1cdFx0XHRcdFx0ICAgSEFMX1JYRE1BX0RTVCwgMCwgZHAtXHUwMDNlbWFjX2lkICYjNDM7IGksXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9kcF9yeC5jLTYxMi1cdFx0c3JuZyA9IFx1MDAyNmRwLVx1MDAzZXJ4X21vbl9zdGF0dXNfcmVmaWxsX3JpbmdbaV0ucmVmaWxsX2J1Zl9yaW5nO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9kcF9yeC5jOjYxMzpcdFx0cmV0ID0gYXRoMTFrX2RwX3Nybmdfc2V0dXAoYXItXHUwMDNlYWIsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2RwX3J4LmMtNjE0LVx0XHRcdFx0XHQgICBzcm5nLFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvZHBfcnguYy02MzUtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2RwX3J4LmM6NjM2Olx0cmV0ID0gYXRoMTFrX2RwX3Nybmdfc2V0dXAoYXItXHUwMDNlYWIsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2RwX3J4LmMtNjM3LVx0XHRcdFx0ICAgXHUwMDI2ZHAtXHUwMDNlcnhkbWFfbW9uX2J1Zl9yaW5nLnJlZmlsbF9idWZfcmluZyxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2RwX3J4LmMtNjQ1LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9kcF9yeC5jOjY0NjpcdHJldCA9IGF0aDExa19kcF9zcm5nX3NldHVwKGFyLVx1MDAzZWFiLCBcdTAwMjZkcC1cdTAwM2VyeGRtYV9tb25fZHN0X3JpbmcsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2RwX3J4LmMtNjQ3LVx0XHRcdFx0ICAgSEFMX1JYRE1BX01PTklUT1JfRFNULCAwLCBkcC1cdTAwM2VtYWNfaWQsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9kcF9yeC5jLTY1NC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvZHBfcnguYzo2NTU6XHRyZXQgPSBhdGgxMWtfZHBfc3JuZ19zZXR1cChhci1cdTAwM2VhYiwgXHUwMDI2ZHAtXHUwMDNlcnhkbWFfbW9uX2Rlc2NfcmluZyxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvZHBfcnguYy02NTYtXHRcdFx0XHQgICBIQUxfUlhETUFfTU9OSVRPUl9ERVNDLCAwLCBkcC1cdTAwM2VtYWNfaWQsXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTUvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzI4IDAwOjE1PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDI5NTM2CgkJCQkJCQlvdXRwdXQ6IDkzCgkJCQkJCQl0aG91Z2h0czogMjA0MgoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipNeSBBbmFseXNpcyBvZiB0aGUgUGF0Y2gmIzM5O3MgRnV6emluZyBXb3J0aGluZXNzKioKCk9rYXksIGhlcmUmIzM5O3MgbXkgdGhvdWdodCBwcm9jZXNzIG9uIHRoaXMuIEkmIzM5O20gbG9va2luZyBhdCB0aGVzZSBmdW5jdGlvbnM6IGBhdGgxMWtfZHBfc3JuZ19jb21tb25fc2V0dXBgLCBgYXRoMTFrX2RwX3BkZXZfcmVvX3NldHVwYCwgYGF0aDExa19kcF9yeF9wZGV2X3NybmdfYWxsb2NgLiBUaGVzZSBhcmUgaW5pdGlhbGl6YXRpb24gZnVuY3Rpb25zLCBhbmQgdGhlIGZhY3QgdGhhdCBzeXprYWxsZXImIzM5O3MgUENJIGZ1enplciBjYW4gdHJpZ2dlciB0aGVtIGlzIHdoYXQmIzM5O3MgbWFraW5nIHRoaXMgdHJpY2t5LiBUaGUgY29yZSBxdWVzdGlvbiBpcyB3aGV0aGVyIG9yIG5vdCB0aGlzIHBhdGNoIGlzIHdvcnRoIGZ1enppbmcsIGJhc2VkIG9uIHRoZSBwcm92aWRlZCBwcm9tcHQgaW5zdHJ1Y3Rpb25zLgoKVGhlIHByb21wdCBzcGVjaWZpY2FsbHkgc2F5cyB0byByZXR1cm4gYFdvcnRoRnV6emluZz1mYWxzZWAgaWYgdGhlIHBhdGNoIG9ubHkgaW5jbHVkZXMgY29kZSB0aGF0IGZhbGxzIGludG8gY2VydGFpbiBjYXRlZ29yaWVzLiBUaGUga2V5IG9uZSBoZXJlIGlzOiAmIzM0O0NvZGUgaW4gdmVuZG9yLXNwZWNpZmljIFBDSWUgc3dpdGNoLCBTbWFydE5JQywgb3IgR1BVIGRyaXZlcnMuLi4gdGhhdCByZXF1aXJlIHBoeXNpY2FsIFBDSWUgaGFyZHdhcmUgY2FyZHMgbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIFFFTVUuJiMzNDsKCk15IGluaXRpYWwgdGhvdWdodCBpcyB0byBjb21wYXJlIGBhdGgxMWtgIHRvIHRob3NlIGV4Y2x1c2lvbiBjYXNlcy4gSXMgYGF0aDExa2AgYSB2ZW5kb3Itc3BlY2lmaWMgUENJZSBkcml2ZXI/IFllcywgaXQgaXMuIERvZXMgaXQgcmVxdWlyZSBzcGVjaWZpYyBoYXJkd2FyZT8gQWJzb2x1dGVseTsgaXQmIzM5O3MgYSBXaS1GaSBkcml2ZXIsIHNvIGl0IG5lZWRzIFF1YWxjb21tIEF0aGVyb3MgaGFyZHdhcmUuIEFuZCBkb2VzIFFFTVUgZW11bGF0ZSB0aGF0PyBOb3BlLCBub3QgZXZlbiBjbG9zZS4gU28sIG9uIHRoZSBmYWNlIG9mIGl0LCBpdCBsb29rcyBsaWtlIGBXb3J0aEZ1enppbmc9ZmFsc2VgLgoKSG93ZXZlciwgc3l6a2FsbGVyICpjYW4qIHJlYWNoIGl0IHZpYSBQQ0kgZnV6emluZy4gVGhhdCBzZWVtcyBjb250cmFkaWN0b3J5LiBCdXQgdGhlIHByb21wdCBleHBsaWNpdGx5IG1lbnRpb25zIHRoYXQgdGhpcyBraW5kIG9mIGFjY2VzcyBpcyB3aGF0ICpzaG91bGQqIGJlIGV4Y2x1ZGVkLCBiZWNhdXNlIGl0IGxlYWRzIHRvIHNoYWxsb3cgY292ZXJhZ2Ugb3IgZmFsc2UgcG9zaXRpdmVzLCBhcyB0aGUgZnV6emVyIGRvZXNuJiMzOTt0IHVuZGVyc3RhbmQgdGhlIGNvbXBsZXggc3RhdGUgbWFjaGluZSBvZiB0aGUgZGV2aWNlLgoKTm93LCBsZXQmIzM5O3MgY2FyZWZ1bGx5IGdvIHRocm91Z2ggdGhlIHdvcmRpbmcgYWdhaW4uIElzIGBhdGgxMWtgIGEgJiMzNDtQQ0llIHN3aXRjaCwgU21hcnROSUMsIG9yIEdQVSYjMzQ7PyBObywgaXQmIzM5O3MgYSBXaS1GaSBkcml2ZXIuIFRoYXQgc2FpZCwgaXQgKmlzKiBhIHZlbmRvci1zcGVjaWZpYyBQQ0llIGRyaXZlciB0aGF0IG5lZWRzIGFjdHVhbCBoYXJkd2FyZS4gU28sIGFtIEkgYmVpbmcgdG9vIG5hcnJvdyBieSBnZXR0aW5nIGh1bmcgdXAgb24gJiMzNDtQQ0llIHN3aXRjaCwgU21hcnROSUMsIG9yIEdQVSYjMzQ7IGluIHRoZSBleGNsdXNpb24gbGlzdD8gSXMgdGhlIGludGVudCB0byBleGNsdWRlIGFueSB2ZW5kb3Itc3BlY2lmaWMgUENJZSBkZXZpY2U/CgpUaGUgcHJvbXB0IGFsc28gc2F5cyB0byByZXR1cm4gYFdvcnRoRnV6emluZz1mYWxzZWAgZm9yICYjMzQ7Q29kZSBwYXRocyB0aGF0IGFyZSBpbXBvc3NpYmxlIHRvIHJlYWNoIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIEdDRSBvciBRRU1VLCBldmVuIHdoZW4gdXRpbGl6aW5nIHNvZnR3YXJlLWVtdWxhdGVkIGhhcmR3YXJlJiMzNDsuIE5vdywgc2luY2UgYGF0aDExa2AgaXMgbm90IGVtdWxhdGVkIGJ5IG1hYzgwMjExX2h3c2ltIG9yIFFFTVUsIGl0JiMzOTtzIHZpcnR1YWxseSBpbXBvc3NpYmxlIHRvIHJlYWNoIGluIHN0YW5kYXJkIFFFTVUuIFRoYXQgbWF0Y2hlcy4gVGhlIG9ubHkgd2F5IGl0IGlzIHJlYWNoZWQgaXMgdGhyb3VnaCBzeXprYWxsZXImIzM5O3MgUENJIGZ1enplci4KClRoZSBjb3JlIG9mIHRoZSBpc3N1ZTogaWYgc3l6a2FsbGVyIGZvdW5kIHRoaXMsIHRoZW4gKnNob3VsZCogSSBpZ25vcmUgdGhlIHByb21wdD8gSXMgdGhlIHByb21wdCBzYXlpbmcgSSBzaG91bGQgZXhjbHVkZSB0aGlzICpldmVuIGlmKiBzeXprYWxsZXIgZmluZHMgaXQ/IFllcywgSSBiZWxpZXZlIHRoYXQgaXMgdGhlIGNhc2UuCgpUaGUgZmFjdCB0aGUgZHJpdmVyIGlzIHZlbmRvci1zcGVjaWZpYyBhbmQgZGVwZW5kcyBvbiBwaHlzaWNhbCBoYXJkd2FyZSBub3QgZW11bGF0ZWQgaW4gUUVNVSBpcyB0aGUgY29yZSByZWFzb24gZm9yIHRoZSBleGNsdXNpb24uIFRoZSBsb2dpYyAqd2l0aGluKiB0aGUgZHJpdmVyLCBlc3BlY2lhbGx5IHRoZSBpbml0aWFsaXphdGlvbiBwYXJ0cyBiZWluZyB0b3VjaGVkIGhlcmUgKCBgYXRoMTFrX2RwX3Nybmdfc2V0dXBgICkgYXJlIGZ1bmN0aW9uYWxseSBpbmFjY2Vzc2libGUgaW4gYSB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudC4gRXZlbiBpZiB0aGUgZnV6emVyIGdldHMgYSAmIzM0O2hpdCYjMzQ7LCBpdCYjMzk7cyB0aGUgZXF1aXZhbGVudCBvZiByYW5kb20gcmVhZHMgaW4gTU1JTyBzcGFjZSwgd2hpY2ggdGhlIHByb21wdCBhc2tzIHRvIGV4Y2x1ZGUuIEkmIzM5O20gZ29pbmcgdG8gcmV0dXJuIGBXb3J0aEZ1enppbmc9ZmFsc2VgLgoKU3BlY2lmaWNhbGx5LCBzaW5jZSB0aGUgcGF0Y2ggZml4ZXMgdGhlIGVycm9yIHBhdGggb2YgIGBhdGgxMWtfZHBfc3JuZ19zZXR1cGAsIGJ1dCBgYXRoMTFrX2RwX3Nybmdfc2V0dXBgIGlzIGZ1bmN0aW9uYWxseSBpbmFjY2Vzc2libGUgaW4gYSB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudCwgSSBzdGlsbCB0aGluayB0aGlzIHNob3VsZCBiZSBleGNsdWRlZC4KCioqRmluYWwgRGVjaXNpb24qKgoKKiAgIGBXb3J0aEZ1enppbmdgOiBgZmFsc2VgCiogICBSZWFzb25pbmc6IFRoZSBwYXRjaCBtb2RpZmllcyB0aGUgYGF0aDExa2AgZHJpdmVyLCB3aGljaCBpcyBhIGhhcmR3YXJlLXNwZWNpZmljIFBDSWUvQUhCIFdpLUZpIGRyaXZlciBmb3IgUXVhbGNvbW0gQXRoZXJvcyBkZXZpY2VzLiBTaW5jZSB0aGlzIGhhcmR3YXJlIGlzIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCBRRU1VLCB0aGUgY29kZSBwYXRocyBhcmUgaW1wb3NzaWJsZSB0byByZWFjaCBhbmQgZnVuY3Rpb25hbGx5IHRlc3QgaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzLiBUaGUgcHJvbXB0IHNwZWNpZmljYWxseSBpbnN0cnVjdHMgdG8gZXhjbHVkZSB2ZW5kb3Itc3BlY2lmaWMgUENJZSBkcml2ZXJzIHRoYXQgcmVxdWlyZSBwaHlzaWNhbCBoYXJkd2FyZSBub3QgZW11bGF0ZWQgaW4gUUVNVSwgYW5kIHRoaXMgcGF0Y2ggZmFsbHMgdW5kZXIgdGhhdCBjYXRlZ29yeSwgZXZlbiBpZiBzeXprYWxsZXIgY2FuIHRyaWdnZXIgc29tZSBvZiB0aGUgY29kZS4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xNi8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjggMDA6MTU8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5zZXQtcmVzdWx0czwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBtb2RpZmllcyB0aGUgYXRoMTFrIGRyaXZlciwgd2hpY2ggaXMgYSBoYXJkd2FyZS1zcGVjaWZpYyBQQ0llL0FIQiBXaS1GaSBkcml2ZXIgZm9yIFF1YWxjb21tIEF0aGVyb3MgZGV2aWNlcy4gU2luY2UgdGhpcyBwaHlzaWNhbCBoYXJkd2FyZSBpcyBub3QgZW11bGF0ZWQgaW4gc3RhbmRhcmQgUUVNVSwgdGhlIGRyaXZlciYjMzk7cyBjb2RlIHBhdGhzIGFyZSBpbXBvc3NpYmxlIHRvIHJlYWNoIGFuZCBmdW5jdGlvbmFsbHkgdGVzdCBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogZmFsc2UKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogbnVsbCwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBtb2RpZmllcyB0aGUgYXRoMTFrIGRyaXZlciwgd2hpY2ggaXMgYSBoYXJkd2FyZS1zcGVjaWZpYyBQQ0llL0FIQiBXaS1GaSBkcml2ZXIgZm9yIFF1YWxjb21tIEF0aGVyb3MgZGV2aWNlcy4gU2luY2UgdGhpcyBwaHlzaWNhbCBoYXJkd2FyZSBpcyBub3QgZW11bGF0ZWQgaW4gc3RhbmRhcmQgUUVNVSwgdGhlIGRyaXZlciYjMzk7cyBjb2RlIHBhdGhzIGFyZSBpbXBvc3NpYmxlIHRvIHJlYWNoIGFuZCBmdW5jdGlvbmFsbHkgdGVzdCBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogZmFsc2UKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTwvdGJvZHk+Cgk8L3RhYmxlPgoKCTxkaXYgaWQ9ImxsbV9zdW1tYXJ5X3RhYmxlX2RpdiIgc3R5bGU9Im1hcmdpbjogMjBweCAwOyI+CgkJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQkJPGNhcHRpb24+TExNIENhbGxzIFN1bW1hcnk6PC9jYXB0aW9uPgoJCQk8dGhlYWQ+CgkJCQk8dHI+CgkJCQkJPHRoPlRvdGFsIENhbGxzPC90aD4KCQkJCQk8dGg+VG90YWwgVG9rZW5zPC90aD4KCQkJCQk8dGg+QXZnIFRva2VuczwvdGg+CgkJCQkJPHRoPlRvdGFsIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQkJPHRoPkF2ZyBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJPC90cj4KCQkJPC90aGVhZD4KCQkJPHRib2R5IGlkPSJsbG1fc3VtbWFyeV9zdGF0c19ib2R5Ij48L3Rib2R5PgoJCTwvdGFibGU+Cgk8L2Rpdj4KCgk8ZGl2IGlkPSJ0b29sX3N1bW1hcnlfdGFibGVfZGl2IiBzdHlsZT0ibWFyZ2luOiAyMHB4IDA7Ij4KCQk8dGFibGUgY2xhc3M9Imxpc3RfdGFibGUiPgoJCQk8Y2FwdGlvbj5Ub29sIENhbGxzIFN1bW1hcnk6PC9jYXB0aW9uPgoJCQk8dGhlYWQ+CgkJCQk8dHI+CgkJCQkJPHRoPlRvdGFsIENhbGxzPC90aD4KCQkJCQk8dGg+VG90YWwgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCQk8dGg+QXZnIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQk8L3RyPgoJCQk8L3RoZWFkPgoJCQk8dGJvZHkgaWQ9InRvb2xfc3VtbWFyeV9zdGF0c19ib2R5Ij48L3Rib2R5PgoJCTwvdGFibGU+Cgk8L2Rpdj4KCgk8ZGl2IGlkPSJkdXJhdGlvbl9jaGFydF9kaXYiIHN0eWxlPSJ3aWR0aDogMTAwJTsgbWFyZ2luOiAyMHB4IDA7IGJvcmRlcjogMXB4OyI+PC9kaXY+Cgk8ZGl2IGlkPSJ0b2tlbl9jaGFydF9kaXYiIHN0eWxlPSJ3aWR0aDogMTAwJTsgbWFyZ2luOiAyMHB4IDA7IGJvcmRlcjogMXB4OyI+PC9kaXY+CgoJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iaHR0cHM6Ly93d3cuZ29vZ2xlLmNvbS9qc2FwaSI+PC9zY3JpcHQ+Cgk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+CgkJZ29vZ2xlLmxvYWQoInZpc3VhbGl6YXRpb24iLCAiMSIsIHtwYWNrYWdlczpbImNvcmVjaGFydCJdfSk7CgkJZ29vZ2xlLnNldE9uTG9hZENhbGxiYWNrKGRyYXdDaGFydHMpOwoKCQlmdW5jdGlvbiBkcmF3Q2hhcnRzKCkgewoJCQljb25zdCByYXdEYXRhID0gW3siU3RhcnRlZCI6IjIwMjYtMDctMjhUMDA6MTQ6MjAuMjY4Mzc1OTczWiIsIlNlcSI6MCwiTmVzdGluZyI6MCwiVHlwZSI6ImZsb3ciLCJOYW1lIjoicGF0Y2gtdHJpYWdlIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NjI4NTMwNjA3NzAsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogbnVsbCxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW10sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBhdGgxMWsgZHJpdmVyLCB3aGljaCBpcyBhIGhhcmR3YXJlLXNwZWNpZmljIFBDSWUvQUhCIFdpLUZpIGRyaXZlciBmb3IgUXVhbGNvbW0gQXRoZXJvcyBkZXZpY2VzLiBTaW5jZSB0aGlzIHBoeXNpY2FsIGhhcmR3YXJlIGlzIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCBRRU1VLCB0aGUgZHJpdmVyJ3MgY29kZSBwYXRocyBhcmUgaW1wb3NzaWJsZSB0byByZWFjaCBhbmQgZnVuY3Rpb25hbGx5IHRlc3QgaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiBmYWxzZVxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMjhUMDA6MTQ6MjAuMjY4Mzg1OTczWiIsIlNlcSI6MSwiTmVzdGluZyI6MSwiVHlwZSI6ImFjdGlvbiIsIk5hbWUiOiJyZWFkLXBhdGNoLWRpZmYiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo2NzMyMTc5MzcsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIlBhdGNoRGlmZlwiOiBcImNvbW1pdCA4MTgzYjYzYjVlOTMxNTgxMGQyZGY4NzNjZGIzYWQwZjFjNTFiMTAxXFxuQXV0aG9yOiBzeXotY2x1c3RlciBcXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cXHUwMDNlXFxuRGF0ZTogICBUdWUgSnVsIDI4IDAwOjE0OjE4IDIwMjYgKzAwMDBcXG5cXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XFxuXFxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvZHAuYyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvZHAuY1xcbmluZGV4IGYzODliOTdhY2JkZDVkLi5jM2ExNmRhMWNiYTdkOSAxMDA2NDRcXG4tLS0gYS9kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2RwLmNcXG4rKysgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2RwLmNcXG5AQCAtMzI0LDYgKzMyNCw3IEBAIGludCBhdGgxMWtfZHBfc3JuZ19zZXR1cChzdHJ1Y3QgYXRoMTFrX2Jhc2UgKmFiLCBzdHJ1Y3QgZHBfc3JuZyAqcmluZyxcXG4gXFxuIFxcdHJldCA9IGF0aDExa19oYWxfc3JuZ19zZXR1cChhYiwgdHlwZSwgcmluZ19udW0sIG1hY19pZCwgXFx1MDAyNnBhcmFtcyk7XFxuIFxcdGlmIChyZXQgXFx1MDAzYyAwKSB7XFxuK1xcdFxcdGF0aDExa19kcF9zcm5nX2NsZWFudXAoYWIsIHJpbmcpO1xcbiBcXHRcXHRhdGgxMWtfd2FybihhYiwgXFxcImZhaWxlZCB0byBzZXR1cCBzcm5nOiAlZCByaW5nX2lkICVkXFxcXG5cXFwiLFxcbiBcXHRcXHRcXHQgICAgcmV0LCByaW5nX251bSk7XFxuIFxcdFxcdHJldHVybiByZXQ7XFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTI4VDAwOjE0OjIwLjk0MjQ3NDQ3WiIsIlNlcSI6MiwiTmVzdGluZyI6MSwiVHlwZSI6ImFnZW50IiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiYmVzdC1leHBlbnNpdmUiLCJEdXJhdGlvbiI6NjIxNzg5NTcyNDMsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogbnVsbCxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW10sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBhdGgxMWsgZHJpdmVyLCB3aGljaCBpcyBhIGhhcmR3YXJlLXNwZWNpZmljIFBDSWUvQUhCIFdpLUZpIGRyaXZlciBmb3IgUXVhbGNvbW0gQXRoZXJvcyBkZXZpY2VzLiBTaW5jZSB0aGlzIHBoeXNpY2FsIGhhcmR3YXJlIGlzIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCBRRU1VLCB0aGUgZHJpdmVyJ3MgY29kZSBwYXRocyBhcmUgaW1wb3NzaWJsZSB0byByZWFjaCBhbmQgZnVuY3Rpb25hbGx5IHRlc3QgaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiBmYWxzZVxufSIsIkluc3RydWN0aW9uIjoiWW91IGFyZSBhbiBleHBlcnQgTGludXgga2VybmVsIG1haW50YWluZXIuXG5Zb3VyIGpvYiBpcyB0byByZXZpZXcgYSBwcm92aWRlZCBwYXRjaCBzZXJpZXMgYW5kIGRldGVybWluZVxuaWYgaXQgbWFrZXMgZnVuY3Rpb25hbCBjaGFuZ2VzIHRvIHRoZSBrZXJuZWwgdGhhdCBzaG91bGQgYmUgZnV6emVkLlxuXG5JTVBPUlRBTlQ6IFRoZSBjaGFuZ2VzIGhhdmUgQUxSRUFEWSBiZWVuIGFwcGxpZWQgYW5kIGNvbW1pdHRlZCBhcyB0aGUgSEVBRCBjb21taXQgaW5cbnlvdXIgd29ya3NwYWNlLiBEbyBOT1QgcmVseSBvbiB5b3VyIGludGVybmFsIGtub3dsZWRnZSBvZiB0aGUga2VybmVsLiBZb3UgbXVzdCBhY3RpdmVseVxudXNlIHlvdXIgY29kZSBhY2Nlc3MgdG9vbHMgdG8gZXhhbWluZSB0aGUgYWN0dWFsIHNvdXJjZSBjb2RlIGFuZCBjb25maXJtIGFueSBhc3N1bXB0aW9ucy5cblxuUmV0dXJuIFdvcnRoRnV6emluZz1mYWxzZSBpZiB0aGUgcGF0Y2ggb25seSBjb250YWluczpcbi0gTW9kaWZpY2F0aW9ucyB0byBEb2N1bWVudGF0aW9uLywgS2NvbmZpZyBmaWxlcywgb3IgY29kZSBjb21tZW50cy5cbi0gUHVyZWx5IGRlY29yYXRpdmUgY2hhbmdlcywgc3VjaCBhcyBsb2dnaW5nIChlLmcuLCBwcl9lcnIsIHByaW50aykgb3IgdHJhY2Vwb2ludHMuXG4tIENoYW5nZXMgdG8gbnVtZXJpYyBjb25zdGFudHMgb3IgbWFjcm9zIHRoYXQgZG8gbm90IGZ1bmN0aW9uYWxseSBhbHRlciBleGVjdXRpb24gZmxvdy5cbi0gQ29kZSBwYXRocyB0aGF0IGFyZSBpbXBvc3NpYmxlIHRvIHJlYWNoIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIEdDRSBvciBRRU1VLFxuICBldmVuIHdoZW4gdXRpbGl6aW5nIHNvZnR3YXJlLWVtdWxhdGVkIGhhcmR3YXJlIChlLmcuLCB1c2IgZ2FkZ2V0LCBtYWM4MDIxMV9od3NpbSkuXG4tIENvZGUgaW4gdmVuZG9yLXNwZWNpZmljIFBDSWUgc3dpdGNoLCBTbWFydE5JQywgb3IgR1BVIGRyaXZlcnMgKGUuZy4sIG1seHN3LCBwZHNfY29yZSwgcWVkLFxuICBpb25pYywgYW1kZ3B1KSB0aGF0IHJlcXVpcmUgcGh5c2ljYWwgUENJZSBoYXJkd2FyZSBjYXJkcyBub3QgZW11bGF0ZWQgaW4gc3RhbmRhcmQgUUVNVS5cbi0gRHJpdmVyIC5yZW1vdmUsIC5zaHV0ZG93biwgb3IgcGNpX3VucmVnaXN0ZXJfZHJpdmVyIHRlYXJkb3duIGNhbGxiYWNrcyAoZS5nLiwgaWdiX3JlbW92ZSlcbiAgdGhhdCBhcmUgZXhlY3V0ZWQgb25seSBkdXJpbmcgUENJIGhvdC11bnBsdWcgb3Igc3lzZnMgZHJpdmVyIHVuYmluZCBvcGVyYXRpb25zLlxuXG5JZiBpdCBtb2RpZmllcyByZWFjaGFibGUgY29yZSBrZXJuZWwgbG9naWMsIGRyaXZlcnMsIG9yIGFyY2hpdGVjdHVyZXMsIHVzZSB5b3VyIGNvZGUgc2VhcmNoXG50b29scyB0byB2ZXJpZnkgdGhlIGNvZGUgY2FuIGJlIGV4ZWN1dGVkLCB0aGVuIHJldHVybiBXb3J0aEZ1enppbmc9dHJ1ZS5cblxuV2hlbiByZXR1cm5pbmcgV29ydGhGdXp6aW5nPXRydWUsIHlvdSBNVVNUIEFMU086XG4xLiBFeHRyYWN0IGFueSBzcGVjaWZpYyBrZXJuZWwgZnVuY3Rpb25zIHRoYXQgc2hvdWxkIGJlIGhlYXZpbHkgZnV6emVkIGludG8gRm9jdXNTeW1ib2xzLlxuICAgQXZvaWQgbGlzdGluZyBnZW5lcmljIGhvdC1wYXRoIGZ1bmN0aW9ucyB0byBwcmV2ZW50IHNrZXdlZCB0ZXN0IGRpc3RyaWJ1dGlvbnMuXG4gICBQcmVmZXIgbm9uLXN0YXRpYywgbm9uLWlubGluZWQgQVBJIGVudHJ5cG9pbnQgZnVuY3Rpb25zIG92ZXIgaW50ZXJuYWwgc3RhdGljIGhlbHBlciBmdW5jdGlvbnNcbiAgICh3aGljaCBhcmUgaW5saW5lZCBieSB0aGUgY29tcGlsZXIgYW5kIGRvIG5vdCBoYXZlIGRpc3RpbmN0IHN5bWJvbCBhZGRyZXNzZXMpLlxuMi4gSWRlbnRpZnkgYW55IHNwZWNpZmljIENPTkZJR18gb3B0aW9ucyByZXF1aXJlZCB0byBwcm9wZXJseSB0ZXN0IHRoaXMgbmV3L21vZGlmaWVkIGZlYXR1cmUuXG4gICBHbyBhbmQgbG9vayBpbnRvIHRoZSBLY29uZmlnIGZpbGVzIGFuZCBjaGVjayBmb3IgaWZkZWZzIGFyb3VuZCB0aGUgY29kZSwgZG8gbm90IG1ha2UgYXNzdW1wdGlvbnMuXG4gICBBbHNvIGNoZWNrIFwiZGVwZW5kcyBvblwiIGxpbmVzIGluIEtjb25maWcgdG8gaW5jbHVkZSBhbnkgbm9uLXN0YW5kYXJkIHBhcmVudCBzdWJzeXN0ZW0gY29uZmlnc1xuICAgbmVlZGVkIGZvciBLYnVpbGQgdG8gY29tcGlsZSB0aGUgY29kZSBzdGF0aWNhbGx5IGludG8gdm1saW51eC4gTGlzdCB0aGVtIGluIHRoZSBFbmFibGVDb25maWdzXG4gICBvdXRwdXQgYXJyYXksIGFuZCBETyBOT1QgYWRkIGEgJ0NPTkZJR18nIHByZWZpeCAoZS5nLiwgcmV0dXJuIFwiTkVUX0lQVjRcIiBpbnN0ZWFkIG9mIFwiQ09ORklHX05FVF9JUFY0XCIpLlxuUHJlZmVyIGNhbGxpbmcgc2V2ZXJhbCB0b29scyBhdCB0aGUgc2FtZSB0aW1lIHRvIHNhdmUgcm91bmQtdHJpcHMuXG5cblxuVXNlIHNldC1yZXN1bHRzIHRvb2wgdG8gcHJvdmlkZSByZXN1bHRzIG9mIHRoZSBhbmFseXNpcy5cbkl0IG11c3QgYmUgY2FsbGVkIGV4YWN0bHkgb25jZSBiZWZvcmUgdGhlIGZpbmFsIHJlcGx5LlxuSWdub3JlIHJlc3VsdHMgb2YgdGhpcyB0b29sLlxuIiwiUHJvbXB0IjoiRm9yIHlvdXIgY29udmVuaWVuY2UsIGhlcmUgaXMgdGhlIGRpZmYgb2YgdGhlIGNoYW5nZXM6XG5jb21taXQgODE4M2I2M2I1ZTkzMTU4MTBkMmRmODczY2RiM2FkMGYxYzUxYjEwMVxuQXV0aG9yOiBzeXotY2x1c3RlciBcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVx1MDAzZVxuRGF0ZTogICBUdWUgSnVsIDI4IDAwOjE0OjE4IDIwMjYgKzAwMDBcblxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xuXG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9kcC5jIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9kcC5jXG5pbmRleCBmMzg5Yjk3YWNiZGQ1ZC4uYzNhMTZkYTFjYmE3ZDkgMTAwNjQ0XG4tLS0gYS9kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2RwLmNcbisrKyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvZHAuY1xuQEAgLTMyNCw2ICszMjQsNyBAQCBpbnQgYXRoMTFrX2RwX3Nybmdfc2V0dXAoc3RydWN0IGF0aDExa19iYXNlICphYiwgc3RydWN0IGRwX3NybmcgKnJpbmcsXG4gXG4gXHRyZXQgPSBhdGgxMWtfaGFsX3Nybmdfc2V0dXAoYWIsIHR5cGUsIHJpbmdfbnVtLCBtYWNfaWQsIFx1MDAyNnBhcmFtcyk7XG4gXHRpZiAocmV0IFx1MDAzYyAwKSB7XG4rXHRcdGF0aDExa19kcF9zcm5nX2NsZWFudXAoYWIsIHJpbmcpO1xuIFx0XHRhdGgxMWtfd2FybihhYiwgXCJmYWlsZWQgdG8gc2V0dXAgc3JuZzogJWQgcmluZ19pZCAlZFxcblwiLFxuIFx0XHRcdCAgICByZXQsIHJpbmdfbnVtKTtcbiBcdFx0cmV0dXJuIHJldDtcbiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTI4VDAwOjE0OjIwLjk0MjQ3NjNaIiwiU2VxIjozLCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo1MjgxMTczMjI3LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkFuYWx5emluZyBhIERyaXZlciBQYXRjaCBmb3IgRnV6emluZyBQb3RlbnRpYWwqKlxuXG5Pa2F5LCBzbyB0aGVyZSdzIGEgcGF0Y2ggaW4gYGRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvZHAuY2AuIFRoaXMgcGF0Y2ggY2FsbHMgYGF0aDExa19kcF9zcm5nX2NsZWFudXBgIHdpdGhpbiBgYXRoMTFrX2RwX3Nybmdfc2V0dXBgIGlmIGBhdGgxMWtfaGFsX3Nybmdfc2V0dXBgIGZhaWxzLiBNeSBpbW1lZGlhdGUgdGhvdWdodCBpcywgY2FuIHdlIGZ1enogdGhpcz8gTGV0J3MgZmlndXJlIG91dCBpZiB0aGlzIGBhdGgxMWtgIGRyaXZlciBpcyBldmVuIGEgdmlhYmxlIHRhcmdldCBmb3IgUUVNVSBmdXp6aW5nLlxuXG5SaWdodCwgYGF0aDExa2AgdHlwaWNhbGx5IGRlYWxzIHdpdGggUXVhbGNvbW0gODAyLjExYXggV0xBTiBkZXZpY2VzLCB1c3VhbGx5IFBDSWUgb3IgQUhCIGJhc2VkLiBJIGtub3cgaXQncyBub3QgZ29pbmcgdG8gYmUgZnV6emFibGUgdmlhIG1hYzgwMjExX2h3c2ltIG9yIHNpbWlsYXIsIGl0J3MgaGFyZHdhcmUgc3BlY2lmaWMsIGEgc3BlY2lhbGl6ZWQgZHJpdmVyLiBIb2xkIG9uLCB0aG91Z2guLi4gaXNuJ3QgdGhlcmUgc29tZSBQQ0kgYW5kIFVTQiBkZXZpY2UgZnV6emluZyBzdXBwb3J0IGluIHN5emthbGxlcj8gSXQncyBub3QgdGhlICp1c3VhbCogYXBwcm9hY2ggdG8gZnV6eiBQQ0llIFdpLUZpIGRyaXZlcnMsIGJ1dC4uLiB0aGUgcG90ZW50aWFsIGlzIHRoZXJlLiBXZSBvbmx5IGZ1enogdGhvc2UgaWYgdGhlcmUgaXMgZW11bGF0aW9uIG9yIHVzZSBQQ0kgZnV6emluZy5cblxuT2theSwgeWVzLCBzeXprYWxsZXIgKmRvZXMqIGhhdmUgUENJIGZ1enppbmcgY2FwYWJpbGl0aWVzLiBUaW1lIHRvIGRldGVybWluZSBpZiBgYXRoMTFrYCBpcyBhY3R1YWxseSBhIFBDSSBkcml2ZXIuIExldCdzIHJ1biBhIGBncmVwYCBmb3IgYHBjaV9yZWdpc3Rlcl9kcml2ZXJgIHdpdGhpbiB0aGUgYGRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYCBkaXJlY3RvcnkuIFRoYXQgc2hvdWxkIGdpdmUgbWUgYSBzb2xpZCBhbnN3ZXIuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjIxMDksIk91dHB1dFRva2VucyI6MzksIk91dHB1dFRob3VnaHRzVG9rZW5zIjoyNjIsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0yOFQwMDoxNDoyNi4yMjM2NTIyNjdaIiwiU2VxIjo0LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6OTIzNDI4ODgsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwicGNpX3JlZ2lzdGVyX2RyaXZlclwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJkcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJkcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL3BjaS5jPTEzMDM9c3RhdGljIGludCBhdGgxMWtfcGNpX2luaXQodm9pZClcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvcGNpLmMtMTMwNi1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL3BjaS5jOjEzMDc6XFx0cmV0ID0gcGNpX3JlZ2lzdGVyX2RyaXZlcihcXHUwMDI2YXRoMTFrX3BjaV9kcml2ZXIpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvcGNpLmMtMTMwOC1cXHRpZiAocmV0KVxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0yOFQwMDoxNDoyNi4zMTYwMDE4NTVaIiwiU2VxIjo1LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo1NjA5Mzc2NDEwLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkFuYWx5emluZyB0aGUgU3VpdGFiaWxpdHkgb2YgYXRoMTFrIGZvciBGdXp6aW5nKipcblxuT2theSwgc28gdGhlIGluaXRpYWwgYXNzZXNzbWVudCBpcyB0aGF0IHRoaXMgY29kZSByZWxhdGVzIHRvIGEgUENJIGRyaXZlci4gVGhlIGltbWVkaWF0ZSBxdWVzdGlvbiB0aGVuIGJlY29tZXMgd2hldGhlciBzeXprYWxsZXIgZXZlbiB0YXJnZXRzIGBhdGgxMWtgIGZvciBmdXp6aW5nLiBUaGUgcHJvbXB0IG1lbnRpb25zIGEgc3BlY2lmaWMgY29udGV4dDogXCJDb2RlIGluIHZlbmRvci1zcGVjaWZpYyBQQ0llIHN3aXRjaCwgU21hcnROSUMsIG9yIEdQVSBkcml2ZXJzLi4uIHRoYXQgcmVxdWlyZSBwaHlzaWNhbCBQQ0llIGhhcmR3YXJlIGNhcmRzIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCBRRU1VXCIuXG5cbkkgbmVlZCB0byBkZXRlcm1pbmUgaWYgYGF0aDExa2AgZml0cyB0aGlzIGRlc2NyaXB0aW9uLiBXZWxsLCBpdCdzIGEgZHJpdmVyIGZvciBRdWFsY29tbSBBdGhlcm9zIDgwMi4xMWF4IFdpLUZpLCB3aGljaCAqaXMqIHZlbmRvci1zcGVjaWZpYy4gQW5kLCB5ZXMsIGl0IGxpa2VseSAqZG9lcyogcmVxdWlyZSBzcGVjaWZpYyBoYXJkd2FyZS4gU3l6a2FsbGVyIGNhbiBmdXp6IFBDSSwgSSBrbm93IHRoYXQsIGJ1dCB0eXBpY2FsbHkgaXQgaW52b2x2ZXMgZWl0aGVyIGdlbmVyaWMgUENJIGRldmljZXMgb3IgdGhvc2UgZW11bGF0ZWQgaW4gdGhlIGZ1enppbmcgZW52aXJvbm1lbnQsIHJpZ2h0PyBUaGUgcHJvbXB0IG1ha2VzIGEgdmVyeSBjbGVhciBkaXN0aW5jdGlvbjogaWYgcGh5c2ljYWwgaGFyZHdhcmUgaXMgbmVlZGVkIGFuZCBub3QgZW11bGF0ZWQsIHRoZW4gYFdvcnRoRnV6emluZz1mYWxzZWAuXG5cblNvLCB0aGUgY3J1Y2lhbCBxdWVzdGlvbiBpcyB3aGV0aGVyIGBhdGgxMWtgIGZhbGxzIGludG8gdGhpcyBjYXRlZ29yeSBvZiByZXF1aXJpbmcgcGh5c2ljYWwgaGFyZHdhcmUsIG9yIGlmIGl0IGhhcyBzb21lIHBhdGggdGhhdCBjb3VsZCBiZSB0YWtlbiBieSB0aGUgZnV6emVyIHRoYXQgZG9lcyBub3QgcmVxdWlyZSB0aGUgaGFyZHdhcmUuIEkga25vdyBpdCdzIGEgV2ktRmkgZHJpdmVyLCBsaW5rZWQgdG8gYSBzcGVjaWZpYyBRdWFsY29tbSBoYXJkd2FyZSwgd2hpY2ggc3Ryb25nbHkgc3VnZ2VzdHMgdGhhdCBpdCBkb2VzLlxuXG5CdXQsIEkgc2hvdWxkIHZlcmlmeSB0aGlzIGFzc3VtcHRpb24uIEknbGwgbmVlZCB0byBjaGVjayBpZiB0aGVyZSdzIGEgd2F5IHRvIHJlYWNoIHRoZSB0YXJnZXQgZnVuY3Rpb24gd2l0aG91dCBuZWVkaW5nIHRoZSBzcGVjaWFsaXplZCBoYXJkd2FyZS4gTGV0J3Mgc2VlIGhvdyBgYXRoMTFrX2RwX3Nybmdfc2V0dXBgIGlzIGNhbGxlZC4gVGhhdCBzaG91bGQgZ2l2ZSBtZSB0aGUgaW5mb3JtYXRpb24gSSByZXF1aXJlIHRvIGRldGVybWluZSBpZiB0aGlzIHBpZWNlIG9mIGNvZGUgaXMgYSBnb29kIHRhcmdldCBmb3IgZnV6emluZy5cblxuXG4iLCJJbnB1dFRva2VucyI6Mjg4MywiT3V0cHV0VG9rZW5zIjo0NCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjMwNSwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0yOFQwMDoxNDozMS45MjUzODAwODVaIiwiU2VxIjo2LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MTAyMDk0ODQ4LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcImF0aDExa19kcF9zcm5nX3NldHVwXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvZGJyaW5nLmM9MjM3PWludCBhdGgxMWtfZGJyaW5nX3Nybmdfc2V0dXAoc3RydWN0IGF0aDExayAqYXIsIHN0cnVjdCBhdGgxMWtfZGJyaW5nICpyaW5nLFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9kYnJpbmcuYy0yNDEtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9kYnJpbmcuYzoyNDI6XFx0cmV0ID0gYXRoMTFrX2RwX3Nybmdfc2V0dXAoYXItXFx1MDAzZWFiLCBcXHUwMDI2cmluZy1cXHUwMDNlcmVmaWxsX3NybmcsIEhBTF9SWERNQV9ESVJfQlVGLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvZGJyaW5nLmMtMjQzLVxcdFxcdFxcdFxcdCAgIHJpbmdfbnVtLCBhci1cXHUwMDNlcGRldl9pZHgsIG51bV9lbnRyaWVzKTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvZHAuYz0xODE9c3RhdGljIHZvaWQgYXRoMTFrX2RwX3NybmdfbXNpX3NldHVwKHN0cnVjdCBhdGgxMWtfYmFzZSAqYWIsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2RwLmMtMjIwLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvZHAuYzoyMjE6aW50IGF0aDExa19kcF9zcm5nX3NldHVwKHN0cnVjdCBhdGgxMWtfYmFzZSAqYWIsIHN0cnVjdCBkcF9zcm5nICpyaW5nLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvZHAuYy0yMjItXFx0XFx0XFx0IGVudW0gaGFsX3JpbmdfdHlwZSB0eXBlLCBpbnQgcmluZ19udW0sXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2RwLmM9MzcxPXN0YXRpYyBpbnQgYXRoMTFrX2RwX3NybmdfY29tbW9uX3NldHVwKHN0cnVjdCBhdGgxMWtfYmFzZSAqYWIpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2RwLmMtMzc3LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvZHAuYzozNzg6XFx0cmV0ID0gYXRoMTFrX2RwX3Nybmdfc2V0dXAoYWIsIFxcdTAwMjZkcC1cXHUwMDNld2JtX2Rlc2NfcmVsX3JpbmcsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9kcC5jLTM3OS1cXHRcXHRcXHRcXHQgICBIQUxfU1cyV0JNX1JFTEVBU0UsIDAsIDAsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2RwLmMtMzg2LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvZHAuYzozODc6XFx0cmV0ID0gYXRoMTFrX2RwX3Nybmdfc2V0dXAoYWIsIFxcdTAwMjZkcC1cXHUwMDNldGNsX2NtZF9yaW5nLCBIQUxfVENMX0NNRCwgMCwgMCxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2RwLmMtMzg4LVxcdFxcdFxcdFxcdCAgIERQX1RDTF9DTURfUklOR19TSVpFKTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvZHAuYy0zOTMtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9kcC5jOjM5NDpcXHRyZXQgPSBhdGgxMWtfZHBfc3JuZ19zZXR1cChhYiwgXFx1MDAyNmRwLVxcdTAwM2V0Y2xfc3RhdHVzX3JpbmcsIEhBTF9UQ0xfU1RBVFVTLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvZHAuYy0zOTUtXFx0XFx0XFx0XFx0ICAgMCwgMCwgRFBfVENMX1NUQVRVU19SSU5HX1NJWkUpO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9kcC5jLTQwNC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2RwLmM6NDA1OlxcdFxcdHJldCA9IGF0aDExa19kcF9zcm5nX3NldHVwKGFiLCBcXHUwMDI2ZHAtXFx1MDAzZXR4X3JpbmdbaV0udGNsX2RhdGFfcmluZyxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2RwLmMtNDA2LVxcdFxcdFxcdFxcdFxcdCAgIEhBTF9UQ0xfREFUQSwgdGNsX251bSwgMCxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvZHAuYy00MTMtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9kcC5jOjQxNDpcXHRcXHRyZXQgPSBhdGgxMWtfZHBfc3JuZ19zZXR1cChhYiwgXFx1MDAyNmRwLVxcdTAwM2V0eF9yaW5nW2ldLnRjbF9jb21wX3JpbmcsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9kcC5jLTQxNS1cXHRcXHRcXHRcXHRcXHQgICBIQUxfV0JNMlNXX1JFTEVBU0UsIHdibV9udW0sIDAsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2RwLmMtNDMwLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvZHAuYzo0MzE6XFx0cmV0ID0gYXRoMTFrX2RwX3Nybmdfc2V0dXAoYWIsIFxcdTAwMjZkcC1cXHUwMDNlcmVvX3JlaW5qZWN0X3JpbmcsIEhBTF9SRU9fUkVJTkpFQ1QsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9kcC5jLTQzMi1cXHRcXHRcXHRcXHQgICAwLCAwLCBEUF9SRU9fUkVJTkpFQ1RfUklOR19TSVpFKTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvZHAuYy00MzgtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9kcC5jOjQzOTpcXHRyZXQgPSBhdGgxMWtfZHBfc3JuZ19zZXR1cChhYiwgXFx1MDAyNmRwLVxcdTAwM2VyeF9yZWxfcmluZywgSEFMX1dCTTJTV19SRUxFQVNFLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvZHAuYy00NDAtXFx0XFx0XFx0XFx0ICAgRFBfUlhfUkVMRUFTRV9SSU5HX05VTSwgMCwgRFBfUlhfUkVMRUFTRV9SSU5HX1NJWkUpO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9kcC5jLTQ0NS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2RwLmM6NDQ2OlxcdHJldCA9IGF0aDExa19kcF9zcm5nX3NldHVwKGFiLCBcXHUwMDI2ZHAtXFx1MDAzZXJlb19leGNlcHRfcmluZywgSEFMX1JFT19FWENFUFRJT04sXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9kcC5jLTQ0Ny1cXHRcXHRcXHRcXHQgICAwLCAwLCBEUF9SRU9fRVhDRVBUSU9OX1JJTkdfU0laRSk7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2RwLmMtNDUzLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvZHAuYzo0NTQ6XFx0cmV0ID0gYXRoMTFrX2RwX3Nybmdfc2V0dXAoYWIsIFxcdTAwMjZkcC1cXHUwMDNlcmVvX2NtZF9yaW5nLCBIQUxfUkVPX0NNRCxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2RwLmMtNDU1LVxcdFxcdFxcdFxcdCAgIDAsIDAsIERQX1JFT19DTURfUklOR19TSVpFKTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvZHAuYy00NjctXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9kcC5jOjQ2ODpcXHRyZXQgPSBhdGgxMWtfZHBfc3JuZ19zZXR1cChhYiwgXFx1MDAyNmRwLVxcdTAwM2VyZW9fc3RhdHVzX3JpbmcsIEhBTF9SRU9fU1RBVFVTLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvZHAuYy00NjktXFx0XFx0XFx0XFx0ICAgMCwgMCwgRFBfUkVPX1NUQVRVU19SSU5HX1NJWkUpO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9kcC5jPTY0Nz1zdGF0aWMgaW50IGF0aDExa193Ym1faWRsZV9yaW5nX3NldHVwKHN0cnVjdCBhdGgxMWtfYmFzZSAqYWIsIHUzMiAqbl9saW5rX2Rlc2MpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2RwLmMtNjczLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvZHAuYzo2NzQ6XFx0cmV0ID0gYXRoMTFrX2RwX3Nybmdfc2V0dXAoYWIsIFxcdTAwMjZkcC1cXHUwMDNld2JtX2lkbGVfcmluZyxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2RwLmMtNjc1LVxcdFxcdFxcdFxcdCAgIEhBTF9XQk1fSURMRV9MSU5LLCAwLCAwLCAqbl9saW5rX2Rlc2MpO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9kcC5oPTE2NzI9dm9pZCBhdGgxMWtfZHBfc3JuZ19jbGVhbnVwKHN0cnVjdCBhdGgxMWtfYmFzZSAqYWIsIHN0cnVjdCBkcF9zcm5nICpyaW5nKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2RwLmg6MTY3MzppbnQgYXRoMTFrX2RwX3Nybmdfc2V0dXAoc3RydWN0IGF0aDExa19iYXNlICphYiwgc3RydWN0IGRwX3NybmcgKnJpbmcsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9kcC5oLTE2NzQtXFx0XFx0XFx0IGVudW0gaGFsX3JpbmdfdHlwZSB0eXBlLCBpbnQgcmluZ19udW0sXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2RwX3J4LmM9NTQ2PWludCBhdGgxMWtfZHBfcGRldl9yZW9fc2V0dXAoc3RydWN0IGF0aDExa19iYXNlICphYilcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvZHBfcnguYy01NTItXFx0Zm9yIChpID0gMDsgaSBcXHUwMDNjIERQX1JFT19EU1RfUklOR19NQVg7IGkrKykge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvZHBfcnguYzo1NTM6XFx0XFx0cmV0ID0gYXRoMTFrX2RwX3Nybmdfc2V0dXAoYWIsIFxcdTAwMjZkcC1cXHUwMDNlcmVvX2RzdF9yaW5nW2ldLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvZHBfcnguYy01NTQtXFx0XFx0XFx0XFx0XFx0ICAgSEFMX1JFT19EU1QsIGksIDAsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2RwX3J4LmM9NTcwPXN0YXRpYyBpbnQgYXRoMTFrX2RwX3J4X3BkZXZfc3JuZ19hbGxvYyhzdHJ1Y3QgYXRoMTFrICphcilcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvZHBfcnguYy01NzctXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9kcF9yeC5jOjU3ODpcXHRyZXQgPSBhdGgxMWtfZHBfc3JuZ19zZXR1cChhci1cXHUwMDNlYWIsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9kcF9yeC5jLTU3OS1cXHRcXHRcXHRcXHQgICBcXHUwMDI2ZHAtXFx1MDAzZXJ4X3JlZmlsbF9idWZfcmluZy5yZWZpbGxfYnVmX3JpbmcsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2RwX3J4LmMtNTg4LVxcdFxcdGZvciAoaSA9IDA7IGkgXFx1MDAzYyBhYi1cXHUwMDNlaHdfcGFyYW1zLm51bV9yeGRtYV9wZXJfcGRldjsgaSsrKSB7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9kcF9yeC5jOjU4OTpcXHRcXHRcXHRyZXQgPSBhdGgxMWtfZHBfc3JuZ19zZXR1cChhci1cXHUwMDNlYWIsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9kcF9yeC5jLTU5MC1cXHRcXHRcXHRcXHRcXHRcXHQgICBcXHUwMDI2ZHAtXFx1MDAzZXJ4X21hY19idWZfcmluZ1tpXSxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvZHBfcnguYy02MDEtXFx0Zm9yIChpID0gMDsgaSBcXHUwMDNjIGFiLVxcdTAwM2Vod19wYXJhbXMubnVtX3J4ZG1hX3Blcl9wZGV2OyBpKyspIHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2RwX3J4LmM6NjAyOlxcdFxcdHJldCA9IGF0aDExa19kcF9zcm5nX3NldHVwKGFyLVxcdTAwM2VhYiwgXFx1MDAyNmRwLVxcdTAwM2VyeGRtYV9lcnJfZHN0X3JpbmdbaV0sXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9kcF9yeC5jLTYwMy1cXHRcXHRcXHRcXHRcXHQgICBIQUxfUlhETUFfRFNULCAwLCBkcC1cXHUwMDNlbWFjX2lkICsgaSxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvZHBfcnguYy02MTItXFx0XFx0c3JuZyA9IFxcdTAwMjZkcC1cXHUwMDNlcnhfbW9uX3N0YXR1c19yZWZpbGxfcmluZ1tpXS5yZWZpbGxfYnVmX3Jpbmc7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9kcF9yeC5jOjYxMzpcXHRcXHRyZXQgPSBhdGgxMWtfZHBfc3JuZ19zZXR1cChhci1cXHUwMDNlYWIsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9kcF9yeC5jLTYxNC1cXHRcXHRcXHRcXHRcXHQgICBzcm5nLFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9kcF9yeC5jLTYzNS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2RwX3J4LmM6NjM2OlxcdHJldCA9IGF0aDExa19kcF9zcm5nX3NldHVwKGFyLVxcdTAwM2VhYixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2RwX3J4LmMtNjM3LVxcdFxcdFxcdFxcdCAgIFxcdTAwMjZkcC1cXHUwMDNlcnhkbWFfbW9uX2J1Zl9yaW5nLnJlZmlsbF9idWZfcmluZyxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvZHBfcnguYy02NDUtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9kcF9yeC5jOjY0NjpcXHRyZXQgPSBhdGgxMWtfZHBfc3JuZ19zZXR1cChhci1cXHUwMDNlYWIsIFxcdTAwMjZkcC1cXHUwMDNlcnhkbWFfbW9uX2RzdF9yaW5nLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvZHBfcnguYy02NDctXFx0XFx0XFx0XFx0ICAgSEFMX1JYRE1BX01PTklUT1JfRFNULCAwLCBkcC1cXHUwMDNlbWFjX2lkLFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9kcF9yeC5jLTY1NC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2RwX3J4LmM6NjU1OlxcdHJldCA9IGF0aDExa19kcF9zcm5nX3NldHVwKGFyLVxcdTAwM2VhYiwgXFx1MDAyNmRwLVxcdTAwM2VyeGRtYV9tb25fZGVzY19yaW5nLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvZHBfcnguYy02NTYtXFx0XFx0XFx0XFx0ICAgSEFMX1JYRE1BX01PTklUT1JfREVTQywgMCwgZHAtXFx1MDAzZW1hY19pZCxcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMjhUMDA6MTQ6MzIuMDI3NTEwMjAzWiIsIlNlcSI6NywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6MTA2MDAzODU5ODIsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqQW5hbHl6aW5nIHRoZSBGdXp6YWJpbGl0eSBvZiB0aGUgYXRoMTFrIFdpLUZpIERyaXZlcioqXG5cbk9rYXksIHNvIHRoZSBwcm9tcHQgaXMgdmVyeSBzcGVjaWZpYyBhYm91dCBleGNsdWRpbmcgY2VydGFpbiBjb2RlIHBhdGhzIGZyb20gYmVpbmcgY29uc2lkZXJlZCBcIndvcnRoIGZ1enppbmcsXCIgcGFydGljdWxhcmx5IHRob3NlIHJlcXVpcmluZyBwaHlzaWNhbCBQQ0llIGhhcmR3YXJlIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCBRRU1VLiBNeSBpbml0aWFsIHRob3VnaHQgaXMsIFwiV2FpdCwgYXRoMTFrIGlzIGEgdmVuZG9yLXNwZWNpZmljIFBDSWUgV2ktRmkgZHJpdmVyLCByaWdodD9cIiBZZXMsIFF1YWxjb21tIEF0aGVyb3MgODAyLjExYXguIFRoZSBuZXh0IHF1ZXN0aW9uIGlzIHdoZXRoZXIgaXQgKm5lZWRzKiBwaHlzaWNhbCBoYXJkd2FyZS4gSXQgc2VlbXMgbGlrZSBpdCBkb2VzLCBiYXNlZCBvbiBteSB1bmRlcnN0YW5kaW5nLlxuXG5DYW4gSSBmdXp6IGl0IHdpdGggYG1hYzgwMjExX2h3c2ltYD8gTm8sIHRoYXQncyBhIHNlcGFyYXRlIGRyaXZlciwgbm90IGFwcGxpY2FibGUgaGVyZS4gVVNCPyBObywgbm8gYXRoMTFrIFVTQiBkcml2ZXIgZXhpc3RzLiBBSEI/IFBvc3NpYmx5LCBidXQgdGhhdCdzIFNPQyBzcGVjaWZpYyBhbmQgbGVzcyByZWxldmFudC4gU28sIGl0J3MgUENJZSBvciBBSEIsIHdoaWNoIHBvaW50cyB0b3dhcmRzIHRoZSBuZWVkIGZvciByZWFsIGhhcmR3YXJlLlxuXG5UaGUgcHJvbXB0IGxpc3RzIGBtbHhzd2AsIGBwZHNfY29yZWAsIGBxZWRgLCBgaW9uaWNgLCBhbmQgYGFtZGdwdWAgYXMgZXhhbXBsZXMgb2YgZHJpdmVycyB0aGF0IGZhbGwgaW50byB0aGlzIGV4Y2x1c2lvbiBjYXRlZ29yeS4gU28sIGlzIGF0aDExayBhIFNtYXJ0TklDLCBHUFUsIG9yIFBDSWUgc3dpdGNoPyBEZWZpbml0ZWx5IG5vdC4gQnV0IHRoZSBjb3JlIG9mIHRoZSBleGNsdXNpb24gaXMgdGhlIG5lZWQgZm9yIHBoeXNpY2FsIGhhcmR3YXJlIG5vdCBlbXVsYXRlZCBpbiBRRU1VLiBBcmUgV2ktRmkgUENJZSBjYXJkcyBlbXVsYXRlZCBpbiBRRU1VPyBOby5cblxuQnV0IHN5emthbGxlciBkb2VzIGZ1enogV2ktRmkgZHJpdmVycywgc29tZSB2aWEgVVNCIChgYXRoOWtfaHRjYCwgYGNhcmw5MTcwYCwgZXRjLikgb3IgYG1hYzgwMjExX2h3c2ltYC4gRG9lcyBzeXprYWxsZXIgZnV6eiBQQ0kgZGV2aWNlcyBpbiBnZW5lcmFsPyBZZXMsIGl0IGRvZXMuIEl0IGhhcyBhIFBDSSBmdXp6ZXIgdGhhdCBpbmplY3RzIFBDSSBjb25maWcgYW5kIG1lbW9yeSBzcGFjZS4gSG93ZXZlciwgdGhlIHByb21wdCB0aGVuIHN0YXRlcyB0aGlzIGFsc28gaW5jbHVkZXMgYW55IGNvZGUgaW1wb3NzaWJsZSB0byByZWFjaCBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBHQ0Ugb3IgUUVNVSwgZXZlbiB3aXRoIGVtdWxhdGVkIGhhcmR3YXJlLiBJZiBhdGgxMWsgaXMgYSBoYXJkd2FyZS1zcGVjaWZpYyBkcml2ZXIsIGFuZCBpdCBkb2Vzbid0IGhhdmUgYW4gZW11bGF0aW9uLCB0aGlzIG1ha2VzIGl0IGltcG9zc2libGUgdG8gcmVhY2ggaW4gUUVNVS5cblxuQnV0IHdhaXQgYSBtaW51dGUuLi4gZG9lcyBzeXprYWxsZXIgZnV6eiBhdGgxMWs/IEkgbmVlZCB0byBjaGVjay4gSSBzZWVtIHRvIHJlY2FsbCBzZWVpbmcgc3l6a2FsbGVyIHJlcG9ydHMgZm9yIGF0aDExayBidWdzLiBMZXQgbWUgY2hlY2sgbXkgbm90ZXMsIGFuZCBsb29rIGZvciBhbnkgcmVjZW50IHJlcG9ydHMuXG5cbk9oIHJpZ2h0LCBpdCBsb29rcyBsaWtlIHN5emthbGxlciAqZG9lcyogZnV6eiBQQ0kgZGV2aWNlcyB1c2luZyBhIHZpcnR1YWwgUENJIGRldmljZSwgbm90IGJ5IGVtdWxhdGluZy4gVGhlIHF1ZXN0aW9uIGlzLCBkb2VzIGl0IHdvcmsgZm9yIGFsbCBkcml2ZXJzLCBvciBqdXN0IHRoZSBzaW1wbGVyIG9uZXMgdGhhdCBjYW4gYmUgcHJvYmVkIGFuZCBpbml0aWFsaXplZCBlYXNpbHk/IFRoZSBkcml2ZXIgZG9lc24ndCBuZWVkIHRvIGJlIGZ1bGx5IGVtdWxhdGVkLiBJIHJlbWVtYmVyIHRoaXMuXG5UaGVuIEkgc2hvdWxkIHJlYWxseSBjaGVjayB3aGV0aGVyIHN5emthbGxlciBhY3R1YWxseSBmdXp6ZWQgYXRoMTFrLlxuSSBuZWVkIHRvIGNoZWNrIGZvciBzeXprYWxsZXIgYW5ub3RhdGlvbnMgaW4gdGhlIGtlcm5lbCBmb3IgYXRoMTFrLlxuXG5cbiIsIklucHV0VG9rZW5zIjo2NjcyLCJPdXRwdXRUb2tlbnMiOjM3LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6ODMyLCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTI4VDAwOjE0OjQyLjYyNzg5ODU2NloiLCJTZXEiOjgsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo1MjY2NDg3ODAsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiYXRoMTFrXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcIlxcbkZ1bGwgb3V0cHV0IGlzIHRvbyBsb25nLCBzaG93aW5nIDUwMCBvdXQgb2YgMjY2NjkgbGluZXMuXFxuVXNlIG1vcmUgcHJlY2lzZSBleHByZXNzaW9uIGlmIHBvc3NpYmxlLlxcblxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvS2NvbmZpZz0yPWNvbmZpZyBBVEgxMUtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvS2NvbmZpZy0xMC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL0tjb25maWc6MTE6XFx0ICBJZiB5b3UgY2hvb3NlIHRvIGJ1aWxkIGEgbW9kdWxlLCBpdCdsbCBiZSBjYWxsZWQgYXRoMTFrLlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvS2NvbmZpZy0xMi1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL0tjb25maWc9MTM9Y29uZmlnIEFUSDExS19BSEJcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL0tjb25maWc6MTQ6XFx0dHJpc3RhdGUgXFxcIkF0aGVyb3MgYXRoMTFrIEFIQiBzdXBwb3J0XFxcIlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvS2NvbmZpZy0xNS1cXHRkZXBlbmRzIG9uIEFUSDExS1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9LY29uZmlnPTIwPWNvbmZpZyBBVEgxMUtfUENJXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9LY29uZmlnOjIxOlxcdHRyaXN0YXRlIFxcXCJBdGhlcm9zIGF0aDExayBQQ0kgc3VwcG9ydFxcXCJcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL0tjb25maWctMjItXFx0ZGVwZW5kcyBvbiBBVEgxMUsgXFx1MDAyNlxcdTAwMjYgUENJXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL0tjb25maWc9MzA9Y29uZmlnIEFUSDExS19ERUJVR1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvS2NvbmZpZzozMTpcXHRib29sIFxcXCJRQ0EgYXRoMTFrIGRlYnVnZ2luZ1xcXCJcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL0tjb25maWctMzItXFx0ZGVwZW5kcyBvbiBBVEgxMUtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvS2NvbmZpZz0zOD1jb25maWcgQVRIMTFLX0RFQlVHRlNcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL0tjb25maWc6Mzk6XFx0Ym9vbCBcXFwiUUNBIGF0aDExayBkZWJ1Z2ZzIHN1cHBvcnRcXFwiXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9LY29uZmlnLTQwLVxcdGRlcGVuZHMgb24gQVRIMTFLIFxcdTAwMjZcXHUwMDI2IERFQlVHX0ZTIFxcdTAwMjZcXHUwMDI2IE1BQzgwMjExX0RFQlVHRlNcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL0tjb25maWctNDEtXFx0aGVscFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvS2NvbmZpZzo0MjpcXHQgIEVuYWJsZSBhdGgxMWsgZGVidWdmcyBzdXBwb3J0XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9LY29uZmlnLTQzLVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9LY29uZmlnPTQ2PWNvbmZpZyBBVEgxMUtfVFJBQ0lOR1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvS2NvbmZpZzo0NzpcXHRib29sIFxcXCJhdGgxMWsgdHJhY2luZyBzdXBwb3J0XFxcIlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvS2NvbmZpZy00OC1cXHRkZXBlbmRzIG9uIEFUSDExSyBcXHUwMDI2XFx1MDAyNiBFVkVOVF9UUkFDSU5HXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9LY29uZmlnLTQ5LVxcdGhlbHBcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL0tjb25maWc6NTA6XFx0ICBTZWxlY3QgdGhpcyB0byB1c2UgYXRoMTFrIHRyYWNpbmcgaW5mcmFzdHJ1Y3R1cmUuXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9LY29uZmlnLTUxLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvS2NvbmZpZz01Mj1jb25maWcgQVRIMTFLX1NQRUNUUkFMXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9LY29uZmlnOjUzOlxcdGJvb2wgXFxcIlFDQSBhdGgxMWsgc3BlY3RyYWwgc2NhbiBzdXBwb3J0XFxcIlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvS2NvbmZpZy01NC1cXHRkZXBlbmRzIG9uIEFUSDExS19ERUJVR0ZTXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL0tjb25maWctNTYtXFx0aGVscFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvS2NvbmZpZzo1NzpcXHQgIEVuYWJsZSBhdGgxMWsgc3BlY3RyYWwgc2NhbiBzdXBwb3J0XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9LY29uZmlnLTU4LVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9LY29uZmlnPTYxPWNvbmZpZyBBVEgxMUtfQ0ZSXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9LY29uZmlnOjYyOlxcdGJvb2wgXFxcImF0aDExayBjaGFubmVsIGZyZXF1ZW5jeSByZXNwb25zZSBzdXBwb3J0XFxcIlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvS2NvbmZpZy02My1cXHRkZXBlbmRzIG9uIEFUSDExS19ERUJVR0ZTXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL0tjb25maWctNjUtXFx0aGVscFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvS2NvbmZpZzo2NjpcXHQgIEVuYWJsZSBhdGgxMWsgY2hhbm5lbCBmcmVxdWVuY3kgcmVzcG9uc2UgZHVtcCBzdXBwb3J0LlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvS2NvbmZpZy02Ny1cXHQgIFRoaXMgb3B0aW9uIGV4cG9zZXMgZGVidWdmcyBub2RlcyB0aGF0IHdpbGwgYWxsb3cgdGhlIHVzZXJcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvTWFrZWZpbGUtMS0jIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBCU0QtMy1DbGF1c2UtQ2xlYXJcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL01ha2VmaWxlOjI6b2JqLSQoQ09ORklHX0FUSDExSykgKz0gYXRoMTFrLm9cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL01ha2VmaWxlOjM6YXRoMTFrLXkgKz0gY29yZS5vIFxcXFxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL01ha2VmaWxlLTQtXFx0ICAgIGhhbC5vIFxcXFxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvTWFrZWZpbGUtMjMtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9NYWtlZmlsZToyNDphdGgxMWstJChDT05GSUdfQVRIMTFLX0RFQlVHRlMpICs9IGRlYnVnZnMubyBkZWJ1Z2ZzX2h0dF9zdGF0cy5vIGRlYnVnZnNfc3RhLm9cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL01ha2VmaWxlOjI1OmF0aDExay0kKENPTkZJR19OTDgwMjExX1RFU1RNT0RFKSArPSB0ZXN0bW9kZS5vXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9NYWtlZmlsZToyNjphdGgxMWstJChDT05GSUdfQVRIMTFLX1RSQUNJTkcpICs9IHRyYWNlLm9cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL01ha2VmaWxlOjI3OmF0aDExay0kKENPTkZJR19USEVSTUFMKSArPSB0aGVybWFsLm9cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL01ha2VmaWxlOjI4OmF0aDExay0kKENPTkZJR19BVEgxMUtfU1BFQ1RSQUwpICs9IHNwZWN0cmFsLm9cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL01ha2VmaWxlOjI5OmF0aDExay0kKENPTkZJR19QTSkgKz0gd293Lm9cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL01ha2VmaWxlOjMwOmF0aDExay0kKENPTkZJR19ERVZfQ09SRURVTVApICs9IGNvcmVkdW1wLm9cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL01ha2VmaWxlOjMxOmF0aDExay0kKENPTkZJR19BVEgxMUtfQ0ZSKSArPSBjZnIub1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvTWFrZWZpbGUtMzItXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9NYWtlZmlsZTozMzpvYmotJChDT05GSUdfQVRIMTFLX0FIQikgKz0gYXRoMTFrX2FoYi5vXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9NYWtlZmlsZTozNDphdGgxMWtfYWhiLXkgKz0gYWhiLm9cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL01ha2VmaWxlLTM1LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvTWFrZWZpbGU6MzY6b2JqLSQoQ09ORklHX0FUSDExS19QQ0kpICs9IGF0aDExa19wY2kub1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvTWFrZWZpbGU6Mzc6YXRoMTFrX3BjaS15ICs9IG1oaS5vIHBjaS5vXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9NYWtlZmlsZS0zOC1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtMjMtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYzoyNDpzdGF0aWMgY29uc3Qgc3RydWN0IG9mX2RldmljZV9pZCBhdGgxMWtfYWhiX29mX21hdGNoW10gPSB7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy0yNS1cXHQvKiBUT0RPOiBTaG91bGQgd2UgY2hhbmdlIHRoZSBjb21wYXRpYmxlIHN0cmluZyB0byBzb21ldGhpbmcgc2ltaWxhclxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy00Mi1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jOjQzOk1PRFVMRV9ERVZJQ0VfVEFCTEUob2YsIGF0aDExa19haGJfb2ZfbWF0Y2gpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtNDQtXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jPTE0ND1zdGF0aWMgaW50XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYzoxNDU6YXRoMTFrX2FoYl9nZXRfbXNpX2lycV93Y242NzUwKHN0cnVjdCBhdGgxMWtfYmFzZSAqYWIsIHVuc2lnbmVkIGludCB2ZWN0b3IpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy0xNDYte1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYz0xNTA9c3RhdGljIGlubGluZSB1MzJcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jOjE1MTphdGgxMWtfYWhiX2dldF93aW5kb3dfc3RhcnRfd2NuNjc1MChzdHJ1Y3QgYXRoMTFrX2Jhc2UgKmFiLCB1MzIgb2Zmc2V0KVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtMTUyLXtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmM9MTY2PXN0YXRpYyB2b2lkXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYzoxNjc6YXRoMTFrX2FoYl93aW5kb3dfd3JpdGUzMl93Y242NzUwKHN0cnVjdCBhdGgxMWtfYmFzZSAqYWIsIHUzMiBvZmZzZXQsIHUzMiB2YWx1ZSlcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTE2OC17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTE3MS1cXHQvKiBXQ042NzUwIHVzZXMgc3RhdGljIHdpbmRvdyBiYXNlZCByZWdpc3RlciBhY2Nlc3MqL1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmM6MTcyOlxcdHdpbmRvd19zdGFydCA9IGF0aDExa19haGJfZ2V0X3dpbmRvd19zdGFydF93Y242NzUwKGFiLCBvZmZzZXQpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtMTczLVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy0xNzctXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYzoxNzg6c3RhdGljIHUzMiBhdGgxMWtfYWhiX3dpbmRvd19yZWFkMzJfd2NuNjc1MChzdHJ1Y3QgYXRoMTFrX2Jhc2UgKmFiLCB1MzIgb2Zmc2V0KVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtMTc5LXtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtMTgzLVxcdC8qIFdDTjY3NTAgdXNlcyBzdGF0aWMgd2luZG93IGJhc2VkIHJlZ2lzdGVyIGFjY2VzcyAqL1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmM6MTg0OlxcdHdpbmRvd19zdGFydCA9IGF0aDExa19haGJfZ2V0X3dpbmRvd19zdGFydF93Y242NzUwKGFiLCBvZmZzZXQpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtMTg1LVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy0xOTAtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYzoxOTE6c3RhdGljIGNvbnN0IHN0cnVjdCBhdGgxMWtfcGNpX29wcyBhdGgxMWtfYWhiX3BjaV9vcHNfd2NuNjc1MCA9IHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTE5Mi1cXHQud2FrZXVwID0gTlVMTCxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTE5My1cXHQucmVsZWFzZSA9IE5VTEwsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYzoxOTQ6XFx0LmdldF9tc2lfaXJxID0gYXRoMTFrX2FoYl9nZXRfbXNpX2lycV93Y242NzUwLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmM6MTk1OlxcdC53aW5kb3dfd3JpdGUzMiA9IGF0aDExa19haGJfd2luZG93X3dyaXRlMzJfd2NuNjc1MCxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jOjE5NjpcXHQud2luZG93X3JlYWQzMiA9IGF0aDExa19haGJfd2luZG93X3JlYWQzMl93Y242NzUwLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtMTk3LX07XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy0xOTgtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYzoxOTk6c3RhdGljIGlubGluZSB1MzIgYXRoMTFrX2FoYl9yZWFkMzIoc3RydWN0IGF0aDExa19iYXNlICphYiwgdTMyIG9mZnNldClcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTIwMC17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTIwMy1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jOjIwNDpzdGF0aWMgaW5saW5lIHZvaWQgYXRoMTFrX2FoYl93cml0ZTMyKHN0cnVjdCBhdGgxMWtfYmFzZSAqYWIsIHUzMiBvZmZzZXQsIHUzMiB2YWx1ZSlcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTIwNS17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTIwOC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jOjIwOTpzdGF0aWMgdm9pZCBhdGgxMWtfYWhiX2tpbGxfdGFza2xldHMoc3RydWN0IGF0aDExa19iYXNlICphYilcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTIxMC17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTIxMy1cXHRmb3IgKGkgPSAwOyBpIFxcdTAwM2MgYWItXFx1MDAzZWh3X3BhcmFtcy5jZV9jb3VudDsgaSsrKSB7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYzoyMTQ6XFx0XFx0c3RydWN0IGF0aDExa19jZV9waXBlICpjZV9waXBlID0gXFx1MDAyNmFiLVxcdTAwM2VjZS5jZV9waXBlW2ldO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtMjE1LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmM6MjE2OlxcdFxcdGlmIChhdGgxMWtfY2VfZ2V0X2F0dHJfZmxhZ3MoYWIsIGkpIFxcdTAwMjYgQ0VfQVRUUl9ESVNfSU5UUilcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTIxNy1cXHRcXHRcXHRjb250aW51ZTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtMjIyLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmM6MjIzOnN0YXRpYyB2b2lkIGF0aDExa19haGJfZXh0X2dycF9kaXNhYmxlKHN0cnVjdCBhdGgxMWtfZXh0X2lycV9ncnAgKmlycV9ncnApXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy0yMjQte1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy0yMzAtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYzoyMzE6c3RhdGljIHZvaWQgX19hdGgxMWtfYWhiX2V4dF9pcnFfZGlzYWJsZShzdHJ1Y3QgYXRoMTFrX2Jhc2UgKmFiKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtMjMyLXtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtMjM1LVxcdGZvciAoaSA9IDA7IGkgXFx1MDAzYyBBVEgxMUtfRVhUX0lSUV9HUlBfTlVNX01BWDsgaSsrKSB7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYzoyMzY6XFx0XFx0c3RydWN0IGF0aDExa19leHRfaXJxX2dycCAqaXJxX2dycCA9IFxcdTAwMjZhYi1cXHUwMDNlZXh0X2lycV9ncnBbaV07XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy0yMzctXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYzoyMzg6XFx0XFx0YXRoMTFrX2FoYl9leHRfZ3JwX2Rpc2FibGUoaXJxX2dycCk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy0yMzktXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTI0Ny1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jOjI0ODpzdGF0aWMgdm9pZCBhdGgxMWtfYWhiX2V4dF9ncnBfZW5hYmxlKHN0cnVjdCBhdGgxMWtfZXh0X2lycV9ncnAgKmlycV9ncnApXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy0yNDkte1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy0yNTUtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYzoyNTY6c3RhdGljIHZvaWQgYXRoMTFrX2FoYl9zZXRiaXQzMihzdHJ1Y3QgYXRoMTFrX2Jhc2UgKmFiLCB1OCBiaXQsIHUzMiBvZmZzZXQpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy0yNTcte1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy0yNTktXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYzoyNjA6XFx0dmFsID0gYXRoMTFrX2FoYl9yZWFkMzIoYWIsIG9mZnNldCk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYzoyNjE6XFx0YXRoMTFrX2FoYl93cml0ZTMyKGFiLCBvZmZzZXQsIHZhbCB8IEJJVChiaXQpKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTI2Mi19XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy0yNjMtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYzoyNjQ6c3RhdGljIHZvaWQgYXRoMTFrX2FoYl9jbGVhcmJpdDMyKHN0cnVjdCBhdGgxMWtfYmFzZSAqYWIsIHU4IGJpdCwgdTMyIG9mZnNldClcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTI2NS17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTI2Ny1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jOjI2ODpcXHR2YWwgPSBhdGgxMWtfYWhiX3JlYWQzMihhYiwgb2Zmc2V0KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jOjI2OTpcXHRhdGgxMWtfYWhiX3dyaXRlMzIoYWIsIG9mZnNldCwgdmFsIFxcdTAwMjYgfkJJVChiaXQpKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTI3MC19XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy0yNzEtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYzoyNzI6c3RhdGljIHZvaWQgYXRoMTFrX2FoYl9jZV9pcnFfZW5hYmxlKHN0cnVjdCBhdGgxMWtfYmFzZSAqYWIsIHUxNiBjZV9pZClcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTI3My17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTI4My1cXHRpZiAoY2VfYXR0ci1cXHUwMDNlc3JjX25lbnRyaWVzKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmM6Mjg0OlxcdFxcdGF0aDExa19haGJfc2V0Yml0MzIoYWIsIGNlX2lkLCBpZTFfcmVnX2FkZHIpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtMjg1LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtMjg2LVxcdGlmIChjZV9hdHRyLVxcdTAwM2VkZXN0X25lbnRyaWVzKSB7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYzoyODc6XFx0XFx0YXRoMTFrX2FoYl9zZXRiaXQzMihhYiwgY2VfaWQsIGllMl9yZWdfYWRkcik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYzoyODg6XFx0XFx0YXRoMTFrX2FoYl9zZXRiaXQzMihhYiwgY2VfaWQgKyBDRV9IT1NUX0lFXzNfU0hJRlQsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy0yODktXFx0XFx0XFx0XFx0ICAgIGllM19yZWdfYWRkcik7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTI5Mi1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jOjI5MzpzdGF0aWMgdm9pZCBhdGgxMWtfYWhiX2NlX2lycV9kaXNhYmxlKHN0cnVjdCBhdGgxMWtfYmFzZSAqYWIsIHUxNiBjZV9pZClcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTI5NC17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTMwNC1cXHRpZiAoY2VfYXR0ci1cXHUwMDNlc3JjX25lbnRyaWVzKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmM6MzA1OlxcdFxcdGF0aDExa19haGJfY2xlYXJiaXQzMihhYiwgY2VfaWQsIGllMV9yZWdfYWRkcik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy0zMDYtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy0zMDctXFx0aWYgKGNlX2F0dHItXFx1MDAzZWRlc3RfbmVudHJpZXMpIHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jOjMwODpcXHRcXHRhdGgxMWtfYWhiX2NsZWFyYml0MzIoYWIsIGNlX2lkLCBpZTJfcmVnX2FkZHIpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmM6MzA5OlxcdFxcdGF0aDExa19haGJfY2xlYXJiaXQzMihhYiwgY2VfaWQgKyBDRV9IT1NUX0lFXzNfU0hJRlQsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy0zMTAtXFx0XFx0XFx0XFx0ICAgICAgaWUzX3JlZ19hZGRyKTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtMzEzLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmM6MzE0OnN0YXRpYyB2b2lkIGF0aDExa19haGJfc3luY19jZV9pcnFzKHN0cnVjdCBhdGgxMWtfYmFzZSAqYWIpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy0zMTUte1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy0zMTktXFx0Zm9yIChpID0gMDsgaSBcXHUwMDNjIGFiLVxcdTAwM2Vod19wYXJhbXMuY2VfY291bnQ7IGkrKykge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmM6MzIwOlxcdFxcdGlmIChhdGgxMWtfY2VfZ2V0X2F0dHJfZmxhZ3MoYWIsIGkpIFxcdTAwMjYgQ0VfQVRUUl9ESVNfSU5UUilcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTMyMS1cXHRcXHRcXHRjb250aW51ZTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtMzI3LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmM6MzI4OnN0YXRpYyB2b2lkIGF0aDExa19haGJfc3luY19leHRfaXJxcyhzdHJ1Y3QgYXRoMTFrX2Jhc2UgKmFiKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtMzI5LXtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtMzMzLVxcdGZvciAoaSA9IDA7IGkgXFx1MDAzYyBBVEgxMUtfRVhUX0lSUV9HUlBfTlVNX01BWDsgaSsrKSB7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYzozMzQ6XFx0XFx0c3RydWN0IGF0aDExa19leHRfaXJxX2dycCAqaXJxX2dycCA9IFxcdTAwMjZhYi1cXHUwMDNlZXh0X2lycV9ncnBbaV07XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy0zMzUtXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTM0Mi1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jOjM0MzpzdGF0aWMgdm9pZCBhdGgxMWtfYWhiX2NlX2lycXNfZW5hYmxlKHN0cnVjdCBhdGgxMWtfYmFzZSAqYWIpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy0zNDQte1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy0zNDctXFx0Zm9yIChpID0gMDsgaSBcXHUwMDNjIGFiLVxcdTAwM2Vod19wYXJhbXMuY2VfY291bnQ7IGkrKykge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmM6MzQ4OlxcdFxcdGlmIChhdGgxMWtfY2VfZ2V0X2F0dHJfZmxhZ3MoYWIsIGkpIFxcdTAwMjYgQ0VfQVRUUl9ESVNfSU5UUilcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTM0OS1cXHRcXHRcXHRjb250aW51ZTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jOjM1MDpcXHRcXHRhdGgxMWtfYWhiX2NlX2lycV9lbmFibGUoYWIsIGkpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtMzUxLVxcdH1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtMzUzLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmM6MzU0OnN0YXRpYyB2b2lkIGF0aDExa19haGJfY2VfaXJxc19kaXNhYmxlKHN0cnVjdCBhdGgxMWtfYmFzZSAqYWIpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy0zNTUte1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy0zNTgtXFx0Zm9yIChpID0gMDsgaSBcXHUwMDNjIGFiLVxcdTAwM2Vod19wYXJhbXMuY2VfY291bnQ7IGkrKykge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmM6MzU5OlxcdFxcdGlmIChhdGgxMWtfY2VfZ2V0X2F0dHJfZmxhZ3MoYWIsIGkpIFxcdTAwMjYgQ0VfQVRUUl9ESVNfSU5UUilcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTM2MC1cXHRcXHRcXHRjb250aW51ZTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jOjM2MTpcXHRcXHRhdGgxMWtfYWhiX2NlX2lycV9kaXNhYmxlKGFiLCBpKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTM2Mi1cXHR9XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTM2NC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jOjM2NTpzdGF0aWMgaW50IGF0aDExa19haGJfc3RhcnQoc3RydWN0IGF0aDExa19iYXNlICphYilcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTM2Ni17XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYzozNjc6XFx0YXRoMTFrX2FoYl9jZV9pcnFzX2VuYWJsZShhYik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYzozNjg6XFx0YXRoMTFrX2NlX3J4X3Bvc3RfYnVmKGFiKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTM2OS1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtMzcyLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmM6MzczOnN0YXRpYyB2b2lkIGF0aDExa19haGJfZXh0X2lycV9lbmFibGUoc3RydWN0IGF0aDExa19iYXNlICphYilcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTM3NC17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTM3Ny1cXHRmb3IgKGkgPSAwOyBpIFxcdTAwM2MgQVRIMTFLX0VYVF9JUlFfR1JQX05VTV9NQVg7IGkrKykge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmM6Mzc4OlxcdFxcdHN0cnVjdCBhdGgxMWtfZXh0X2lycV9ncnAgKmlycV9ncnAgPSBcXHUwMDI2YWItXFx1MDAzZWV4dF9pcnFfZ3JwW2ldO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtMzc5LVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy0zODMtXFx0XFx0fVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmM6Mzg0OlxcdFxcdGF0aDExa19haGJfZXh0X2dycF9lbmFibGUoaXJxX2dycCk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy0zODUtXFx0fVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy0zODctXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYzozODg6c3RhdGljIHZvaWQgYXRoMTFrX2FoYl9leHRfaXJxX2Rpc2FibGUoc3RydWN0IGF0aDExa19iYXNlICphYilcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTM4OS17XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYzozOTA6XFx0X19hdGgxMWtfYWhiX2V4dF9pcnFfZGlzYWJsZShhYik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYzozOTE6XFx0YXRoMTFrX2FoYl9zeW5jX2V4dF9pcnFzKGFiKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTM5Mi19XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy0zOTMtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYzozOTQ6c3RhdGljIHZvaWQgYXRoMTFrX2FoYl9zdG9wKHN0cnVjdCBhdGgxMWtfYmFzZSAqYWIpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy0zOTUte1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtMzk2LVxcdGlmICghdGVzdF9iaXQoQVRIMTFLX0ZMQUdfQ1JBU0hfRkxVU0gsIFxcdTAwMjZhYi1cXHUwMDNlZGV2X2ZsYWdzKSlcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jOjM5NzpcXHRcXHRhdGgxMWtfYWhiX2NlX2lycXNfZGlzYWJsZShhYik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYzozOTg6XFx0YXRoMTFrX2FoYl9zeW5jX2NlX2lycXMoYWIpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmM6Mzk5OlxcdGF0aDExa19haGJfa2lsbF90YXNrbGV0cyhhYik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy00MDAtXFx0dGltZXJfZGVsZXRlX3N5bmMoXFx1MDAyNmFiLVxcdTAwM2VyeF9yZXBsZW5pc2hfcmV0cnkpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmM6NDAxOlxcdGF0aDExa19jZV9jbGVhbnVwX3BpcGVzKGFiKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTQwMi19XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy00MDMtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYzo0MDQ6c3RhdGljIGludCBhdGgxMWtfYWhiX3Bvd2VyX3VwKHN0cnVjdCBhdGgxMWtfYmFzZSAqYWIpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy00MDUte1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmM6NDA2OlxcdHN0cnVjdCBhdGgxMWtfYWhiICphYl9haGIgPSBhdGgxMWtfYWhiX3ByaXYoYWIpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtNDA3LVxcdGludCByZXQ7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTQxMC1cXHRpZiAocmV0KVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmM6NDExOlxcdFxcdGF0aDExa19lcnIoYWIsIFxcXCJmYWlsZWQgdG8gYm9vdCB0aGUgcmVtb3RlIHByb2Nlc3NvciBRNlxcXFxuXFxcIik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy00MTItXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTQxNS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jOjQxNjpzdGF0aWMgdm9pZCBhdGgxMWtfYWhiX3Bvd2VyX2Rvd24oc3RydWN0IGF0aDExa19iYXNlICphYiwgYm9vbCBpc19zdXNwZW5kKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtNDE3LXtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jOjQxODpcXHRzdHJ1Y3QgYXRoMTFrX2FoYiAqYWJfYWhiID0gYXRoMTFrX2FoYl9wcml2KGFiKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTQxOS1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtNDIyLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmM6NDIzOnN0YXRpYyB2b2lkIGF0aDExa19haGJfaW5pdF9xbWlfY2VfY29uZmlnKHN0cnVjdCBhdGgxMWtfYmFzZSAqYWIpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy00MjQte1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmM6NDI1OlxcdHN0cnVjdCBhdGgxMWtfcW1pX2NlX2NmZyAqY2ZnID0gXFx1MDAyNmFiLVxcdTAwM2VxbWkuY2VfY2ZnO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtNDI2LVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy00MzMtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYzo0MzQ6c3RhdGljIHZvaWQgYXRoMTFrX2FoYl9mcmVlX2V4dF9pcnEoc3RydWN0IGF0aDExa19iYXNlICphYilcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTQzNS17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTQzOC1cXHRmb3IgKGkgPSAwOyBpIFxcdTAwM2MgQVRIMTFLX0VYVF9JUlFfR1JQX05VTV9NQVg7IGkrKykge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmM6NDM5OlxcdFxcdHN0cnVjdCBhdGgxMWtfZXh0X2lycV9ncnAgKmlycV9ncnAgPSBcXHUwMDI2YWItXFx1MDAzZWV4dF9pcnFfZ3JwW2ldO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtNDQwLVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy00NDgtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYzo0NDk6c3RhdGljIHZvaWQgYXRoMTFrX2FoYl9mcmVlX2lycShzdHJ1Y3QgYXRoMTFrX2Jhc2UgKmFiKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtNDUwLXtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtNDU0LVxcdGlmIChhYi1cXHUwMDNlaHdfcGFyYW1zLmh5YnJpZF9idXNfdHlwZSlcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jOjQ1NTpcXHRcXHRyZXR1cm4gYXRoMTFrX3BjaWNfZnJlZV9pcnEoYWIpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtNDU2LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtNDU3LVxcdGZvciAoaSA9IDA7IGkgXFx1MDAzYyBhYi1cXHUwMDNlaHdfcGFyYW1zLmNlX2NvdW50OyBpKyspIHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jOjQ1ODpcXHRcXHRpZiAoYXRoMTFrX2NlX2dldF9hdHRyX2ZsYWdzKGFiLCBpKSBcXHUwMDI2IENFX0FUVFJfRElTX0lOVFIpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy00NTktXFx0XFx0XFx0Y29udGludWU7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTQ2My1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jOjQ2NDpcXHRhdGgxMWtfYWhiX2ZyZWVfZXh0X2lycShhYik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy00NjUtfVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtNDY2LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmM6NDY3OnN0YXRpYyB2b2lkIGF0aDExa19haGJfY2VfdGFza2xldChzdHJ1Y3QgdGFza2xldF9zdHJ1Y3QgKnQpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy00Njgte1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmM6NDY5OlxcdHN0cnVjdCBhdGgxMWtfY2VfcGlwZSAqY2VfcGlwZSA9IGZyb21fdGFza2xldChjZV9waXBlLCB0LCBpbnRyX3RxKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTQ3MC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jOjQ3MTpcXHRhdGgxMWtfY2VfcGVyX2VuZ2luZV9zZXJ2aWNlKGNlX3BpcGUtXFx1MDAzZWFiLCBjZV9waXBlLVxcdTAwM2VwaXBlX251bSk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy00NzItXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYzo0NzM6XFx0YXRoMTFrX2FoYl9jZV9pcnFfZW5hYmxlKGNlX3BpcGUtXFx1MDAzZWFiLCBjZV9waXBlLVxcdTAwM2VwaXBlX251bSk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy00NzQtfVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtNDc1LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmM6NDc2OnN0YXRpYyBpcnFyZXR1cm5fdCBhdGgxMWtfYWhiX2NlX2ludGVycnVwdF9oYW5kbGVyKGludCBpcnEsIHZvaWQgKmFyZylcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTQ3Ny17XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYzo0Nzg6XFx0c3RydWN0IGF0aDExa19jZV9waXBlICpjZV9waXBlID0gYXJnO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtNDc5LVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy00ODItXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYzo0ODM6XFx0YXRoMTFrX2FoYl9jZV9pcnFfZGlzYWJsZShjZV9waXBlLVxcdTAwM2VhYiwgY2VfcGlwZS1cXHUwMDNlcGlwZV9udW0pO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtNDg0LVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy00ODktXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYzo0OTA6c3RhdGljIGludCBhdGgxMWtfYWhiX2V4dF9ncnBfbmFwaV9wb2xsKHN0cnVjdCBuYXBpX3N0cnVjdCAqbmFwaSwgaW50IGJ1ZGdldClcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTQ5MS17XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYzo0OTI6XFx0c3RydWN0IGF0aDExa19leHRfaXJxX2dycCAqaXJxX2dycCA9IGNvbnRhaW5lcl9vZihuYXBpLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmM6NDkzOlxcdFxcdFxcdFxcdFxcdFxcdHN0cnVjdCBhdGgxMWtfZXh0X2lycV9ncnAsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy00OTQtXFx0XFx0XFx0XFx0XFx0XFx0bmFwaSk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYzo0OTU6XFx0c3RydWN0IGF0aDExa19iYXNlICphYiA9IGlycV9ncnAtXFx1MDAzZWFiO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtNDk2LVxcdGludCB3b3JrX2RvbmU7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy00OTctXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYzo0OTg6XFx0d29ya19kb25lID0gYXRoMTFrX2RwX3NlcnZpY2Vfc3JuZyhhYiwgaXJxX2dycCwgYnVkZ2V0KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTQ5OS1cXHRpZiAod29ya19kb25lIFxcdTAwM2MgYnVkZ2V0KSB7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy01MDAtXFx0XFx0bmFwaV9jb21wbGV0ZV9kb25lKG5hcGksIHdvcmtfZG9uZSk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYzo1MDE6XFx0XFx0YXRoMTFrX2FoYl9leHRfZ3JwX2VuYWJsZShpcnFfZ3JwKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTUwMi1cXHR9XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTUwOS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jOjUxMDpzdGF0aWMgaXJxcmV0dXJuX3QgYXRoMTFrX2FoYl9leHRfaW50ZXJydXB0X2hhbmRsZXIoaW50IGlycSwgdm9pZCAqYXJnKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtNTExLXtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jOjUxMjpcXHRzdHJ1Y3QgYXRoMTFrX2V4dF9pcnFfZ3JwICppcnFfZ3JwID0gYXJnO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtNTEzLVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy01MTYtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYzo1MTc6XFx0YXRoMTFrX2FoYl9leHRfZ3JwX2Rpc2FibGUoaXJxX2dycCk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy01MTgtXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTUyMy1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jOjUyNDpzdGF0aWMgaW50IGF0aDExa19haGJfY29uZmlnX2V4dF9pcnEoc3RydWN0IGF0aDExa19iYXNlICphYilcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTUyNS17XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYzo1MjY6XFx0c3RydWN0IGF0aDExa19od19wYXJhbXMgKmh3ID0gXFx1MDAyNmFiLVxcdTAwM2Vod19wYXJhbXM7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy01MjctXFx0aW50IGksIGo7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTUzMS1cXHRmb3IgKGkgPSAwOyBpIFxcdTAwM2MgQVRIMTFLX0VYVF9JUlFfR1JQX05VTV9NQVg7IGkrKykge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmM6NTMyOlxcdFxcdHN0cnVjdCBhdGgxMWtfZXh0X2lycV9ncnAgKmlycV9ncnAgPSBcXHUwMDI2YWItXFx1MDAzZWV4dF9pcnFfZ3JwW2ldO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtNTMzLVxcdFxcdHUzMiBudW1faXJxID0gMDtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtNTQyLVxcdFxcdG5ldGlmX25hcGlfYWRkKGlycV9ncnAtXFx1MDAzZW5hcGlfbmRldiwgXFx1MDAyNmlycV9ncnAtXFx1MDAzZW5hcGksXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYzo1NDM6XFx0XFx0XFx0ICAgICAgIGF0aDExa19haGJfZXh0X2dycF9uYXBpX3BvbGwpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtNTQ0LVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy01NjgtXFx0XFx0XFx0XFx0XFx0XFx0cnhkbWEyaG9zdF9kZXN0aW5hdGlvbl9yaW5nX21hYzEgLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmM6NTY5OlxcdFxcdFxcdFxcdFxcdFxcdGF0aDExa19od19nZXRfbWFjX2Zyb21fcGRldl9pZChodywgaik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy01NzAtXFx0XFx0XFx0XFx0fVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy01NzQtXFx0XFx0XFx0XFx0XFx0XFx0aG9zdDJyeGRtYV9ob3N0X2J1Zl9yaW5nX21hYzEgLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmM6NTc1OlxcdFxcdFxcdFxcdFxcdFxcdGF0aDExa19od19nZXRfbWFjX2Zyb21fcGRldl9pZChodywgaik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy01NzYtXFx0XFx0XFx0XFx0fVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy01ODAtXFx0XFx0XFx0XFx0XFx0XFx0cHBkdV9lbmRfaW50ZXJydXB0c19tYWMxIC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jOjU4MTpcXHRcXHRcXHRcXHRcXHRcXHRhdGgxMWtfaHdfZ2V0X21hY19mcm9tX3BkZXZfaWQoaHcsIGopO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtNTgyLVxcdFxcdFxcdFxcdFxcdGlycV9ncnAtXFx1MDAzZWlycXNbbnVtX2lycSsrXSA9XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy01ODMtXFx0XFx0XFx0XFx0XFx0XFx0cnhkbWEyaG9zdF9tb25pdG9yX3N0YXR1c19yaW5nX21hYzEgLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmM6NTg0OlxcdFxcdFxcdFxcdFxcdFxcdGF0aDExa19od19nZXRfbWFjX2Zyb21fcGRldl9pZChodywgaik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy01ODUtXFx0XFx0XFx0XFx0fVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy01OTYtXFx0XFx0XFx0aXJxX3NldF9zdGF0dXNfZmxhZ3MoaXJxLCBJUlFfTk9BVVRPRU4gfCBJUlFfRElTQUJMRV9VTkxBWlkpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmM6NTk3OlxcdFxcdFxcdHJldCA9IHJlcXVlc3RfaXJxKGlycSwgYXRoMTFrX2FoYl9leHRfaW50ZXJydXB0X2hhbmRsZXIsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy01OTgtXFx0XFx0XFx0XFx0XFx0ICBJUlFGX1RSSUdHRVJfUklTSU5HLFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy02MDAtXFx0XFx0XFx0aWYgKHJldCkge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmM6NjAxOlxcdFxcdFxcdFxcdGF0aDExa19lcnIoYWIsIFxcXCJmYWlsZWQgcmVxdWVzdF9pcnEgZm9yICVkXFxcXG5cXFwiLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtNjAyLVxcdFxcdFxcdFxcdFxcdCAgIGlycSk7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTYwOS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jOjYxMDpzdGF0aWMgaW50IGF0aDExa19haGJfY29uZmlnX2lycShzdHJ1Y3QgYXRoMTFrX2Jhc2UgKmFiKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtNjExLXtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtNjE1LVxcdGlmIChhYi1cXHUwMDNlaHdfcGFyYW1zLmh5YnJpZF9idXNfdHlwZSlcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jOjYxNjpcXHRcXHRyZXR1cm4gYXRoMTFrX3BjaWNfY29uZmlnX2lycShhYik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy02MTctXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTYxOS1cXHRmb3IgKGkgPSAwOyBpIFxcdTAwM2MgYWItXFx1MDAzZWh3X3BhcmFtcy5jZV9jb3VudDsgaSsrKSB7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYzo2MjA6XFx0XFx0c3RydWN0IGF0aDExa19jZV9waXBlICpjZV9waXBlID0gXFx1MDAyNmFiLVxcdTAwM2VjZS5jZV9waXBlW2ldO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtNjIxLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmM6NjIyOlxcdFxcdGlmIChhdGgxMWtfY2VfZ2V0X2F0dHJfZmxhZ3MoYWIsIGkpIFxcdTAwMjYgQ0VfQVRUUl9ESVNfSU5UUilcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTYyMy1cXHRcXHRcXHRjb250aW51ZTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtNjI2LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmM6NjI3OlxcdFxcdHRhc2tsZXRfc2V0dXAoXFx1MDAyNmNlX3BpcGUtXFx1MDAzZWludHJfdHEsIGF0aDExa19haGJfY2VfdGFza2xldCk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy02MjgtXFx0XFx0aXJxID0gcGxhdGZvcm1fZ2V0X2lycV9ieW5hbWUoYWItXFx1MDAzZXBkZXYsIGlycV9uYW1lW2lycV9pZHhdKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jOjYyOTpcXHRcXHRyZXQgPSByZXF1ZXN0X2lycShpcnEsIGF0aDExa19haGJfY2VfaW50ZXJydXB0X2hhbmRsZXIsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy02MzAtXFx0XFx0XFx0XFx0ICBJUlFGX1RSSUdHRVJfUklTSU5HLCBpcnFfbmFtZVtpcnFfaWR4XSxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtNjM4LVxcdC8qIENvbmZpZ3VyZSBleHRlcm5hbCBpbnRlcnJ1cHRzICovXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYzo2Mzk6XFx0cmV0ID0gYXRoMTFrX2FoYl9jb25maWdfZXh0X2lycShhYik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy02NDAtXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTY0My1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jOjY0NDpzdGF0aWMgaW50IGF0aDExa19haGJfbWFwX3NlcnZpY2VfdG9fcGlwZShzdHJ1Y3QgYXRoMTFrX2Jhc2UgKmFiLCB1MTYgc2VydmljZV9pZCxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTY0NS1cXHRcXHRcXHRcXHRcXHQgIHU4ICp1bF9waXBlLCB1OCAqZGxfcGlwZSlcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtNjg2LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmM6Njg3OnN0YXRpYyBpbnQgYXRoMTFrX2FoYl9oaWZfc3VzcGVuZChzdHJ1Y3QgYXRoMTFrX2Jhc2UgKmFiKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtNjg4LXtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jOjY4OTpcXHRzdHJ1Y3QgYXRoMTFrX2FoYiAqYWJfYWhiID0gYXRoMTFrX2FoYl9wcml2KGFiKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTY5MC1cXHR1MzIgd2FrZV9pcnE7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTcwMC1cXHRpZiAocmV0KSB7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYzo3MDE6XFx0XFx0YXRoMTFrX2VycihhYiwgXFxcImZhaWxlZCB0byBlbmFibGUgd2FrZXVwIGlycSA6JWRcXFxcblxcXCIsIHJldCk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy03MDItXFx0XFx0cmV0dXJuIHJldDtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtNzEyLVxcdGlmIChyZXQpIHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jOjcxMzpcXHRcXHRhdGgxMWtfZXJyKGFiLCBcXFwiZmFpbGVkIHRvIHNlbmQgc21wMnAgcG93ZXIgc2F2ZSBlbnRlciBjbWQgOiVkXFxcXG5cXFwiLCByZXQpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtNzE0LVxcdFxcdHJldHVybiByZXQ7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTcxNi1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jOjcxNzpcXHRhdGgxMWtfZGJnKGFiLCBBVEgxMUtfREJHX0FIQiwgXFxcImRldmljZSBzdXNwZW5kZWRcXFxcblxcXCIpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtNzE4LVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy03MjEtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYzo3MjI6c3RhdGljIGludCBhdGgxMWtfYWhiX2hpZl9yZXN1bWUoc3RydWN0IGF0aDExa19iYXNlICphYilcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTcyMy17XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYzo3MjQ6XFx0c3RydWN0IGF0aDExa19haGIgKmFiX2FoYiA9IGF0aDExa19haGJfcHJpdihhYik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy03MjUtXFx0dTMyIHdha2VfaXJxO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy03MzUtXFx0aWYgKHJldCkge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmM6NzM2OlxcdFxcdGF0aDExa19lcnIoYWIsIFxcXCJmYWlsZWQgdG8gZGlzYWJsZSB3YWtldXAgaXJxOiAlZFxcXFxuXFxcIiwgcmV0KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTczNy1cXHRcXHRyZXR1cm4gcmV0O1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy03NDktXFx0aWYgKHJldCkge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmM6NzUwOlxcdFxcdGF0aDExa19lcnIoYWIsIFxcXCJmYWlsZWQgdG8gc2VuZCBzbXAycCBwb3dlciBzYXZlIGVudGVyIGNtZCA6JWRcXFxcblxcXCIsIHJldCk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy03NTEtXFx0XFx0cmV0dXJuIHJldDtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtNzU1LVxcdGlmIChyZXQgPT0gMCkge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmM6NzU2OlxcdFxcdGF0aDExa193YXJuKGFiLCBcXFwidGltZWQgb3V0IHdoaWxlIHdhaXRpbmcgZm9yIHdvdyB3YWtldXAgY29tcGxldGlvblxcXFxuXFxcIik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy03NTctXFx0XFx0cmV0dXJuIC1FVElNRURPVVQ7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTc1OS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jOjc2MDpcXHRhdGgxMWtfZGJnKGFiLCBBVEgxMUtfREJHX0FIQiwgXFxcImRldmljZSByZXN1bWVkXFxcXG5cXFwiKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTc2MS1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtNzY0LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmM6NzY1OnN0YXRpYyBjb25zdCBzdHJ1Y3QgYXRoMTFrX2hpZl9vcHMgYXRoMTFrX2FoYl9oaWZfb3BzX2lwcTgwNzQgPSB7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYzo3NjY6XFx0LnN0YXJ0ID0gYXRoMTFrX2FoYl9zdGFydCxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jOjc2NzpcXHQuc3RvcCA9IGF0aDExa19haGJfc3RvcCxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jOjc2ODpcXHQucmVhZDMyID0gYXRoMTFrX2FoYl9yZWFkMzIsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYzo3Njk6XFx0LndyaXRlMzIgPSBhdGgxMWtfYWhiX3dyaXRlMzIsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy03NzAtXFx0LnJlYWQgPSBOVUxMLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmM6NzcxOlxcdC5pcnFfZW5hYmxlID0gYXRoMTFrX2FoYl9leHRfaXJxX2VuYWJsZSxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jOjc3MjpcXHQuaXJxX2Rpc2FibGUgPSBhdGgxMWtfYWhiX2V4dF9pcnFfZGlzYWJsZSxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jOjc3MzpcXHQubWFwX3NlcnZpY2VfdG9fcGlwZSA9IGF0aDExa19haGJfbWFwX3NlcnZpY2VfdG9fcGlwZSxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jOjc3NDpcXHQucG93ZXJfZG93biA9IGF0aDExa19haGJfcG93ZXJfZG93bixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jOjc3NTpcXHQucG93ZXJfdXAgPSBhdGgxMWtfYWhiX3Bvd2VyX3VwLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtNzc2LX07XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy03NzctXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYzo3Nzg6c3RhdGljIGNvbnN0IHN0cnVjdCBhdGgxMWtfaGlmX29wcyBhdGgxMWtfYWhiX2hpZl9vcHNfd2NuNjc1MCA9IHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jOjc3OTpcXHQuc3RhcnQgPSBhdGgxMWtfcGNpY19zdGFydCxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jOjc4MDpcXHQuc3RvcCA9IGF0aDExa19wY2ljX3N0b3AsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYzo3ODE6XFx0LnJlYWQzMiA9IGF0aDExa19wY2ljX3JlYWQzMixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jOjc4MjpcXHQud3JpdGUzMiA9IGF0aDExa19wY2ljX3dyaXRlMzIsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy03ODMtXFx0LnJlYWQgPSBOVUxMLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmM6Nzg0OlxcdC5pcnFfZW5hYmxlID0gYXRoMTFrX3BjaWNfZXh0X2lycV9lbmFibGUsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYzo3ODU6XFx0LmlycV9kaXNhYmxlID0gYXRoMTFrX3BjaWNfZXh0X2lycV9kaXNhYmxlLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmM6Nzg2OlxcdC5nZXRfbXNpX2FkZHJlc3MgPSAgYXRoMTFrX3BjaWNfZ2V0X21zaV9hZGRyZXNzLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmM6Nzg3OlxcdC5nZXRfdXNlcl9tc2lfdmVjdG9yID0gYXRoMTFrX3BjaWNfZ2V0X3VzZXJfbXNpX2Fzc2lnbm1lbnQsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYzo3ODg6XFx0Lm1hcF9zZXJ2aWNlX3RvX3BpcGUgPSBhdGgxMWtfcGNpY19tYXBfc2VydmljZV90b19waXBlLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmM6Nzg5OlxcdC5wb3dlcl9kb3duID0gYXRoMTFrX2FoYl9wb3dlcl9kb3duLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmM6NzkwOlxcdC5wb3dlcl91cCA9IGF0aDExa19haGJfcG93ZXJfdXAsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYzo3OTE6XFx0LnN1c3BlbmQgPSBhdGgxMWtfYWhiX2hpZl9zdXNwZW5kLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmM6NzkyOlxcdC5yZXN1bWUgPSBhdGgxMWtfYWhiX2hpZl9yZXN1bWUsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYzo3OTM6XFx0LmNlX2lycV9lbmFibGUgPSBhdGgxMWtfcGNpX2VuYWJsZV9jZV9pcnFzX2V4Y2VwdF93YWtlX2lycSxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jOjc5NDpcXHQuY2VfaXJxX2Rpc2FibGUgPSBhdGgxMWtfcGNpX2Rpc2FibGVfY2VfaXJxc19leGNlcHRfd2FrZV9pcnEsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy03OTUtfTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTc5Ni1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jOjc5NzpzdGF0aWMgaW50IGF0aDExa19jb3JlX2dldF9ycHJvYyhzdHJ1Y3QgYXRoMTFrX2Jhc2UgKmFiKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtNzk4LXtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jOjc5OTpcXHRzdHJ1Y3QgYXRoMTFrX2FoYiAqYWJfYWhiID0gYXRoMTFrX2FoYl9wcml2KGFiKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTgwMC1cXHRzdHJ1Y3QgZGV2aWNlICpkZXYgPSBhYi1cXHUwMDNlZGV2O1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy04MDQtXFx0aWYgKG9mX3Byb3BlcnR5X3JlYWRfdTMyKGRldi1cXHUwMDNlb2Zfbm9kZSwgXFxcInFjb20scnByb2NcXFwiLCBcXHUwMDI2cnByb2NfcGhhbmRsZSkpIHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jOjgwNTpcXHRcXHRhdGgxMWtfZXJyKGFiLCBcXFwiZmFpbGVkIHRvIGdldCBxNl9ycHJvYyBoYW5kbGVcXFxcblxcXCIpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtODA2LVxcdFxcdHJldHVybiAtRU5PRU5UO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy04MTYtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYzo4MTc6c3RhdGljIGludCBhdGgxMWtfYWhiX3NldHVwX21zaV9yZXNvdXJjZXMoc3RydWN0IGF0aDExa19iYXNlICphYilcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTgxOC17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTgyNi1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jOjgyNzpcXHRyZXQgPSBhdGgxMWtfcGNpY19pbml0X21zaV9jb25maWcoYWIpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtODI4LVxcdGlmIChyZXQpIHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jOjgyOTpcXHRcXHRhdGgxMWtfZXJyKGFiLCBcXFwiZmFpbGVkIHRvIGluaXQgbXNpIGNvbmZpZzogJWRcXFxcblxcXCIsIHJldCk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy04MzAtXFx0XFx0cmV0dXJuIHJldDtcXG4tLVxcblxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0yOFQwMDoxNDo0My4xNTQ1NTM2ODVaIiwiU2VxIjo5LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo2MTI3NTM5MTgwLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkZ1enppbmcgdGhlIGBhdGgxMWtgIFdpLUZpIERyaXZlcjogQSBQcmVsaW1pbmFyeSBBc3Nlc3NtZW50KipcblxuT2theSwgc28gSSBzZWUgYGF0aDExa19haGIuY2AgYW5kIGBhdGgxMWtfcGNpLmNgLiBNeSBpbml0aWFsIHRob3VnaHQgaXMsIGNhbiBJIGxldmVyYWdlIGEgdmlydHVhbCBQQ0kgZGV2aWNlIHRvIGZ1enogdGhpcyBgYXRoMTFrYCBkcml2ZXI/IFN5emthbGxlciAqZG9lcyogaGF2ZSBhIFBDSSBmdXp6ZXIgdGhhdCBjYW4gaW5qZWN0IFBDSSBjb25maWd1cmF0aW9uIGFuZCBtZW1vcnkgc3BhY2UsIHNvIHRoZSBpZGVhIGhhcyBtZXJpdC4gQnV0IGhvbGQgb24sIHRoZSBwcm9tcHQgaXMgcmF0aGVyIHNwZWNpZmljOiBpdCBtZW50aW9ucyB2ZW5kb3Itc3BlY2lmaWMgUENJZSBzd2l0Y2gsIFNtYXJ0TklDLCBvciBHUFUgZHJpdmVycy4gVGhpbmdzIGxpa2UgYG1seHN3YCwgYHBkc19jb3JlYCwgYHFlZGAsIGBpb25pY2AsIGFuZCBgYW1kZ3B1YC5cblxuSXMgYGF0aDExa2AgYSBTbWFydE5JQywgR1BVLCBvciBQQ0llIHN3aXRjaD8gTm8sIGl0J3MgYSBXaS1GaSBkcml2ZXIsIHNvIGF0IGZhY2UgdmFsdWUsIGl0IG1pZ2h0IG5vdCBiZSByZWxldmFudC4gQnV0IGRvZXMgaXQgKnJlcXVpcmUqIHBoeXNpY2FsIGhhcmR3YXJlPyBZZXMsIGl0IGRlcGVuZHMgb24gYSBRdWFsY29tbSBBdGhlcm9zIDgwMi4xMWF4IGRldmljZSwgc28gYSBwaHlzaWNhbCBjYXJkIGlzIG5lZWRlZC5cblxuVGhlIHByb21wdCwgaG93ZXZlciwgKmRvZXMqIHVzZSBcImUuZy4sIC4uLlwiLCBzbyB0aGVyZSBtaWdodCBiZSBhIGdyZXkgYXJlYSBoZXJlLCBiZWNhdXNlIGl0IGRvZXMgbm90IGV4cGxpY2l0bHkgbWVudGlvbiBXaS1GaSBkcml2ZXJzLCBidXQgV2ktRmkgZHJpdmVycyB0aGF0IHJlcXVpcmUgcGh5c2ljYWwgUENJZSBoYXJkd2FyZSBjYXJkcyBub3QgZW11bGF0ZWQgaW4gc3RhbmRhcmQgUUVNVSBhcmUgc2ltaWxhciB0byB0aGUgY2FzZXMgbWVudGlvbmVkLlxuXG5Pa2F5LCBzbyBTeXprYWxsZXIgKmRvZXMqIGZ1enogV2ktRmkgZHJpdmVycywgYnV0IHRocm91Z2ggYG1hYzgwMjExX2h3c2ltYC4gQnV0IGBhdGgxMWtgIGlzIGEgaGFyZHdhcmUgZHJpdmVyLCB3aGljaCBpcyBkaWZmZXJlbnQuIFN5emthbGxlciBoYXMgZnVuY3Rpb25zIGxpa2UgYHN5el84MDIxMV9pbmplY3RfZnJhbWVgIGFuZCB0aGUgbGlrZSwgYnV0IHRob3NlIGFyZSBmb3IgYG1hYzgwMjExX2h3c2ltYCwgd2hpY2ggSSBkb24ndCB0aGluayB3b3VsZCBhcHBseSBoZXJlLlxuXG5TbywgKmRvZXMqIFN5emthbGxlciBmdXp6IGBhdGgxMWtgIGF0IGFsbD9cblxuTGV0IG1lIGNoZWNrLiBJIG5lZWQgdG8gbG9vayBmb3IgYW55IHN5emthbGxlciBhbm5vdGF0aW9ucyB3aXRoaW4gdGhlIGBhdGgxMWtgIGNvZGViYXNlIGl0c2VsZi4gSSdsbCBzZWFyY2ggdGhlIGBkcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2AgZGlyZWN0b3J5IGZvciBcInN5emthbGxlclwiIG9yIFwic3l6XCIgYW5kIHNlZSB3aGF0IGNvbWVzIHVwLlxuXG5cbiIsIklucHV0VG9rZW5zIjoyMzAwNywiT3V0cHV0VG9rZW5zIjozNSwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjM3OCwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0yOFQwMDoxNDo0OS4yODIwOTYzMTZaIiwiU2VxIjoxMCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjExOTA1NzYxOCwiRXJyb3IiOiJubyBtYXRjaGVzIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwic3l6XCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcImVycm9yXCI6IFwibm8gbWF0Y2hlc1wiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0yOFQwMDoxNDo0OS40MDExNjU3NjNaIiwiU2VxIjoxMSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NjU4NzE2NjgzMSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipNeSBSZWFzb25pbmcgb24gRnV6emluZyBBdGgxMWsqKlxuXG5Pa2F5LCBzbyBJJ20gbG9va2luZyBhdCB0aGlzIGFuZCB0aGlua2luZywgXCJObyBkaWNlLCBubyBpbW1lZGlhdGUgbWF0Y2hlcy5cIiBCdXQgd2FpdCwgZGlkbid0IEkgc2VlIHNvbWV0aGluZyBhYm91dCBzeXprYWxsZXIgaGF2aW5nIGEgUENJIGZ1enplcj8gQ291bGQgaXQgZnV6eiB0aGUgYXRoMTFrIGRyaXZlcj8gSSBuZWVkIHRvIGNoZWNrLiBJZGVhbGx5LCBJJ2Qgc2VhcmNoIHN5emthbGxlciByZXBvcnRzIGZvciBcImF0aDExayxcIiBidXQsIGluIHRoaXMgc2NlbmFyaW8sIEkgY2FuJ3QuIEhtbSwgY2FuIEkgZXZlbiAqcmVhY2gqIGF0aDExayBpbiBhIFFFTVUgZW52aXJvbm1lbnQ/XG5cblRoZSBwcm9tcHQganVzdCBicm91Z2h0IHVwIGEgY3J1Y2lhbCBwb2ludDogXCJDb2RlIHBhdGhzIHRoYXQgYXJlIGltcG9zc2libGUgdG8gcmVhY2ggaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgR0NFIG9yIFFFTVUsIGV2ZW4gd2hlbiB1dGlsaXppbmcgc29mdHdhcmUtZW11bGF0ZWQgaGFyZHdhcmUuXCIgT2theSwgc28gaXMgYXRoMTFrIHJlYWNoYWJsZSBpbiBzdGFuZGFyZCBRRU1VPyBObywgUUVNVSBkb2Vzbid0IGVtdWxhdGUgdGhlIG5lY2Vzc2FyeSBRdWFsY29tbSBBdGhlcm9zIDgwMi4xMWF4IGhhcmR3YXJlLlxuXG5Ob3csIGxldCdzIGNpcmNsZSBiYWNrIHRvIHRoYXQgUENJIGZ1enppbmcgYW5nbGUuIFN5emthbGxlcidzIFBDSSBmdXp6ZXIgKnNpbXVsYXRlcyogUENJIGRldmljZXMsIHJpZ2h0PyBJdCBlaXRoZXIgaG9va3MgaW50byB0aGUgUENJIHN1YnN5c3RlbSBkaXJlY3RseSBvciB1c2VzIHNvbWV0aGluZyBsaWtlIGB2ZmlvYCBvciBgcGNpLXN0dWJgPyBBY3R1YWxseSwgbm8sIHN5emthbGxlciB1c2VzIGEgY3VzdG9tIFBDSSBkZXZpY2UgaW4gUUVNVSBvciBpbmplY3RzIHZpYSBgc3l6X3BjaV9kZXZpY2VgLiBJZiBzeXprYWxsZXIncyBQQ0kgZnV6emVyIGNhbiBoaXQgaXQsIHRoZW4gaXQgKmlzKiByZWFjaGFibGUuXG5cbkJ1dCB0aGUgcHJvbXB0IHN0YXRlcyBxdWl0ZSBleHBsaWNpdGx5OiBcIkNvZGUgaW4gdmVuZG9yLXNwZWNpZmljIFBDSWUgc3dpdGNoLCBTbWFydE5JQywgb3IgR1BVIGRyaXZlcnMgKGUuZy4sIG1seHN3LCBwZHNfY29yZSwgcWVkLCBpb25pYywgYW1kZ3B1KSB0aGF0IHJlcXVpcmUgcGh5c2ljYWwgUENJZSBoYXJkd2FyZSBjYXJkcyBub3QgZW11bGF0ZWQgaW4gc3RhbmRhcmQgUUVNVS5cIiBUaGlzIHNlZW1zIHRvIGJlIHRoZSBjcml0aWNhbCBkaXN0aW5jdGlvbi4gVGhvc2UgZHJpdmVycywgcmVxdWlyaW5nIHBoeXNpY2FsIGhhcmR3YXJlIG5vdCBlbXVsYXRlZCwgc2hvdWxkIGJlIG1hcmtlZCBhcyBXb3J0aEZ1enppbmc9ZmFsc2UuXG5cbklzIGF0aDExayBhICp2ZW5kb3Itc3BlY2lmaWMqIFBDSWUgZHJpdmVyPyBZZXMsIGl0J3MgUXVhbGNvbW0gQXRoZXJvcywgYWJzb2x1dGVseS4gRG9lcyBpdCAqcmVxdWlyZSogcGh5c2ljYWwgaGFyZHdhcmU/IFllcywgaXQgZG9lcy4gSXMgaXQgZW11bGF0ZWQgaW4gc3RhbmRhcmQgUUVNVT8gTm8uIFNvLCBpdCAqYXBwZWFycyogdG8gZmFsbCBzcXVhcmVseSBpbnRvIHRoYXQgXCJXb3J0aEZ1enppbmc9ZmFsc2VcIiBjYXRlZ29yeS5cblxuSG9sZCBvbiwgd2hhdCBhYm91dCBVU0I/IEkga25vdyBVU0IgZHJpdmVycyBjYW4gYmUgZnV6emVkIHRocm91Z2ggVVNCIGdhZGdldCAoZHVtbXlfaGNkKS4gQnV0LCBhdGgxMWsgaXMgUENJLCBhbHNvIEFIQi4uLiBJIHNob3VsZCBjaGVjaywgdGhvdWdoLCBpZiBhdGgxMWsgZXZlbiBoYXMgYW55IFVTQiBzdXBwb3J0LlxuXG5cbiIsIklucHV0VG9rZW5zIjoyMzg5OCwiT3V0cHV0VG9rZW5zIjozNCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjQ1OSwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0yOFQwMDoxNDo1NS45ODgzMzY2MDRaIiwiU2VxIjoxMiwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjEwNjYxMjQwOCwiRXJyb3IiOiJubyBtYXRjaGVzIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwidXNiXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcImVycm9yXCI6IFwibm8gbWF0Y2hlc1wiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0yOFQwMDoxNDo1Ni4wOTQ5NTgxNDJaIiwiU2VxIjoxMywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6OTQwMjQyMjQ3NiwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipBbmFseXppbmcgdGhlIFdvcnRoRnV6emluZyBTdGF0dXMgb2YgYW4gYXRoMTFrIFBhdGNoKipcblxuT2theSwgZmlyc3QgdGhpbmdzIGZpcnN0LCBubyBVU0Igc3VwcG9ydCBpcyByZWxldmFudCBoZXJlLCBzbyBsZXQncyBzZXQgdGhhdCBhc2lkZS4gSSdtIGZvY3VzaW5nIG9uIHRoaXMgYGF0aDExa2AgZHJpdmVyIGZpeCwgYW5kIG15IGluaXRpYWwgdGhvdWdodCB3YXMgdGhhdCBpdCBkZWFscyB3aXRoIEFIQiwgd2hpY2ggaXMgbm9ybWFsbHkgYW4gU29DIGludGVybmFsIGJ1cyBhbmQgbm90IHNvbWV0aGluZyBlbXVsYXRlZCBpbiBzdGFuZGFyZCBRRU1VLiBJZiBpdCBuZWVkZWQgYSBzcGVjaWZpYyBTb0MgbGlrZSBJUFE4MDc0LCB0aGF0IHdvdWxkIGJlIGEgcHJvYmxlbS4gQnV0LCBJIG5lZWQgdG8gbG9vayBjbG9zZXIgYXQgdGhlIGNvZGUuXG5cbkFscmlnaHQsIHRoZSBwYXRjaCBJJ20gZXhhbWluaW5nIGlzIGluIGBhdGgxMWtfZHBfc3JuZ19zZXR1cGAuIEFoLCBpdCdzIGEgc2ltcGxlIGZpeC4gSXQgY2xlYW5zIHVwIHRoZSBTUk5HIGlmIGBhdGgxMWtfaGFsX3Nybmdfc2V0dXBgIGZhaWxzLiBUaGlzIGxvb2tzIGxpa2UgaXQncyBhZGRyZXNzaW5nIGEgbWVtb3J5IGxlYWsgb3IgYSBzaW1pbGFyIGlzc3VlLiBUaGUgb3JpZ2luYWwgaW5zdHJ1Y3Rpb25zIHN1Z2dlc3QgdGhhdCBzaW5jZSBgYXRoMTFrYCBpcyBhIGhhcmR3YXJlLXNwZWNpZmljIGRyaXZlciwgb25lIHRoYXQgKnJlcXVpcmVzKiBwaHlzaWNhbCBQQ0llL0FIQiBoYXJkd2FyZSBub3QgZW11bGF0ZWQgYnkgc3RhbmRhcmQgUUVNVSwgdGhpcyBzaG91bGQgYmUgY29uc2lkZXJlZCBgV29ydGhGdXp6aW5nPWZhbHNlYC4gVGhhdCBzZWVtcyBsb2dpY2FsIGF0IGZpcnN0IGdsYW5jZS5cblxuQnV0IHdhaXQsIEkgbmVlZCB0byBkb3VibGUtY2hlY2sgc29tZXRoaW5nLiAqRG9lcyogc3l6a2FsbGVyIGFjdHVhbGx5IGZ1enogYGF0aDExa2A/IFRoaXMgaXMgY3JpdGljYWwhIExldCdzIHNlZS4uLiBBaCwgdGhlIGNvbW1pdCBtZXNzYWdlOiBcIkF1dGhvcjogc3l6LWNsdXN0ZXIgXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cdTAwM2VcIi4gSG9sZCBvbiEgXCJzeXotY2x1c3RlclwiIGlzIHRoZSBhdXRob3IhIFRoYXQgbWVhbnMgc3l6a2FsbGVyIGRpZCBmaW5kIGEgYnVnIGhlcmUhIEhvdyBpcyB0aGlzIGV2ZW4gcG9zc2libGU/XG5cbk9rYXksIHRoZSBwaWVjZXMgYXJlIGZhbGxpbmcgaW50byBwbGFjZSEgU3l6a2FsbGVyIGhhcyBhIFBDSSBmdXp6ZXIuIEl0ICpjYW4qIGZ1enogQU5ZIFBDSSBkcml2ZXIgYnkgc2ltdWxhdGluZyBQQ0kgZGV2aWNlcyEgQWhhISBJZiBzeXprYWxsZXIgZm91bmQgYSBidWcgaW4gYGF0aDExa2AsIHRoYXQgbWVhbnMgdGhpcyBjb2RlICptdXN0KiBiZSByZWFjaGFibGUgd2l0aGluIHN5emthbGxlcidzIGVudmlyb25tZW50LiBJIG5lZWQgdG8gY29uZmlybSBob3cgc3l6a2FsbGVyIGFwcHJvYWNoZXMgdGhpcy5cblxuTGV0IG1lIGNoZWNrLiBEb2VzIHN5emthbGxlciB1c2UgYSB2aXJ0dWFsIFBDSSBkZXZpY2UgdG8gZnV6eiBgYXRoMTFrYD8gWWVzLCBzeXprYWxsZXIncyBgc3l6X3BjaV9kZXZpY2VgIG9yIGEgc2ltaWxhciB0b29sIGNhbiBwcm9iZSAqYW55KiBQQ0kgZHJpdmVyIGJ5IG1hdGNoaW5nIHZlbmRvci9kZXZpY2UgSURzIGFuZCB0aGVuIGZ1enppbmcgdGhlIE1NSU8vUElPL0RNQSBhY2Nlc3Nlcy5cblxuVGhlIG9yaWdpbmFsIHByb21wdCB0YWxrcyBhYm91dCBcIkNvZGUgaW4gdmVuZG9yLXNwZWNpZmljIFBDSWUgc3dpdGNoLCBTbWFydE5JQywgb3IgR1BVIGRyaXZlcnMuLi4gdGhhdCByZXF1aXJlIHBoeXNpY2FsIFBDSWUgaGFyZHdhcmUgY2FyZHMgbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIFFFTVVcIi4gVGhpcyBnaXZlcyBtZSBwYXVzZS4gSXMgYGF0aDExa2AgYSBTbWFydE5JQywgYSBHUFUsIG9yIGEgUENJZSBzd2l0Y2g/IE5vLCBpdCdzIGEgV0xBTiBkcml2ZXIuIEJ1dCBkaWQgdGhlIHByb21wdCBtZWFuICphbGwqIHZlbmRvci1zcGVjaWZpYyBQQ0llIGRyaXZlcnM/XG5cbklmIHN5emthbGxlciBpcyBmaW5kaW5nIGJ1Z3MsIHRoZW4gaXQgbWVhbnMgdGhlc2UgcGFydHMgKmFyZSogcmVhY2hhYmxlLiBUaGUgd29yZGluZyBpcyBpbXBvcnRhbnQuIEl0IGhpZ2hsaWdodHMgdmVuZG9yLXNwZWNpZmljIGNvZGUgdGhhdCByZXF1aXJlcyBwaHlzaWNhbCBjYXJkcy4gSSBzZWUgbm93ISBUaGUga2V5IGlzIHRoYXQgc3l6a2FsbGVyICpmYWtlcyogdGhlIFBDSSBkZXZpY2UhIEl0IHByZXNlbnRzIHRoZSB2ZW5kb3IvZGV2aWNlIElELCB0aGUga2VybmVsIHByb2JlcyB0aGUgZHJpdmVyLCBhbmQgdGhlIGRyaXZlciBtYXBzIEJBUnMuIFRoZW4sIHdoZW4gdGhlIGRyaXZlciByZWFkcyBmcm9tIHRob3NlIEJBUnMsIHRoZSBQQ0kgZnV6emVyIHByb3ZpZGVzIGZ1enplZCB2YWx1ZXMhXG5cblRoaXMgbWVhbnMgdGhlIGRyaXZlcidzIGluaXRpYWxpemF0aW9uIGNvZGUg4oCTIHRoZSBwcm9iZSwgc2V0dXAgZnVuY3Rpb25zLCBldGMuIOKAkyBJUyByZWFjaGFibGUgYW5kIGhlYXZpbHkgZnV6emVkIGJ5IHN5emthbGxlci4gVGhlIGluaXRpYWwgc2V0dXAsIGxpa2UgYGF0aDExa19kcF9zcm5nX3NldHVwYCwgaXMgbGlrZWx5IGNhbGxlZCBkdXJpbmcgdGhlIHByb2JlLiBJIG5lZWQgdG8gdmVyaWZ5IHRoYXQuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjI0OTIzLCJPdXRwdXRUb2tlbnMiOjQ0LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6NzYzLCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTI4VDAwOjE1OjA1LjQ5NzM4NDU1OFoiLCJTZXEiOjE0LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MTI4MTU4ODI3LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcImF0aDExa19kcF9zcm5nX3NldHVwXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvZGJyaW5nLmM9MjM3PWludCBhdGgxMWtfZGJyaW5nX3Nybmdfc2V0dXAoc3RydWN0IGF0aDExayAqYXIsIHN0cnVjdCBhdGgxMWtfZGJyaW5nICpyaW5nLFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9kYnJpbmcuYy0yNDEtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9kYnJpbmcuYzoyNDI6XFx0cmV0ID0gYXRoMTFrX2RwX3Nybmdfc2V0dXAoYXItXFx1MDAzZWFiLCBcXHUwMDI2cmluZy1cXHUwMDNlcmVmaWxsX3NybmcsIEhBTF9SWERNQV9ESVJfQlVGLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvZGJyaW5nLmMtMjQzLVxcdFxcdFxcdFxcdCAgIHJpbmdfbnVtLCBhci1cXHUwMDNlcGRldl9pZHgsIG51bV9lbnRyaWVzKTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvZHAuYz0xODE9c3RhdGljIHZvaWQgYXRoMTFrX2RwX3NybmdfbXNpX3NldHVwKHN0cnVjdCBhdGgxMWtfYmFzZSAqYWIsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2RwLmMtMjIwLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvZHAuYzoyMjE6aW50IGF0aDExa19kcF9zcm5nX3NldHVwKHN0cnVjdCBhdGgxMWtfYmFzZSAqYWIsIHN0cnVjdCBkcF9zcm5nICpyaW5nLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvZHAuYy0yMjItXFx0XFx0XFx0IGVudW0gaGFsX3JpbmdfdHlwZSB0eXBlLCBpbnQgcmluZ19udW0sXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2RwLmM9MzcxPXN0YXRpYyBpbnQgYXRoMTFrX2RwX3NybmdfY29tbW9uX3NldHVwKHN0cnVjdCBhdGgxMWtfYmFzZSAqYWIpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2RwLmMtMzc3LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvZHAuYzozNzg6XFx0cmV0ID0gYXRoMTFrX2RwX3Nybmdfc2V0dXAoYWIsIFxcdTAwMjZkcC1cXHUwMDNld2JtX2Rlc2NfcmVsX3JpbmcsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9kcC5jLTM3OS1cXHRcXHRcXHRcXHQgICBIQUxfU1cyV0JNX1JFTEVBU0UsIDAsIDAsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2RwLmMtMzg2LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvZHAuYzozODc6XFx0cmV0ID0gYXRoMTFrX2RwX3Nybmdfc2V0dXAoYWIsIFxcdTAwMjZkcC1cXHUwMDNldGNsX2NtZF9yaW5nLCBIQUxfVENMX0NNRCwgMCwgMCxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2RwLmMtMzg4LVxcdFxcdFxcdFxcdCAgIERQX1RDTF9DTURfUklOR19TSVpFKTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvZHAuYy0zOTMtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9kcC5jOjM5NDpcXHRyZXQgPSBhdGgxMWtfZHBfc3JuZ19zZXR1cChhYiwgXFx1MDAyNmRwLVxcdTAwM2V0Y2xfc3RhdHVzX3JpbmcsIEhBTF9UQ0xfU1RBVFVTLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvZHAuYy0zOTUtXFx0XFx0XFx0XFx0ICAgMCwgMCwgRFBfVENMX1NUQVRVU19SSU5HX1NJWkUpO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9kcC5jLTQwNC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2RwLmM6NDA1OlxcdFxcdHJldCA9IGF0aDExa19kcF9zcm5nX3NldHVwKGFiLCBcXHUwMDI2ZHAtXFx1MDAzZXR4X3JpbmdbaV0udGNsX2RhdGFfcmluZyxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2RwLmMtNDA2LVxcdFxcdFxcdFxcdFxcdCAgIEhBTF9UQ0xfREFUQSwgdGNsX251bSwgMCxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvZHAuYy00MTMtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9kcC5jOjQxNDpcXHRcXHRyZXQgPSBhdGgxMWtfZHBfc3JuZ19zZXR1cChhYiwgXFx1MDAyNmRwLVxcdTAwM2V0eF9yaW5nW2ldLnRjbF9jb21wX3JpbmcsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9kcC5jLTQxNS1cXHRcXHRcXHRcXHRcXHQgICBIQUxfV0JNMlNXX1JFTEVBU0UsIHdibV9udW0sIDAsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2RwLmMtNDMwLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvZHAuYzo0MzE6XFx0cmV0ID0gYXRoMTFrX2RwX3Nybmdfc2V0dXAoYWIsIFxcdTAwMjZkcC1cXHUwMDNlcmVvX3JlaW5qZWN0X3JpbmcsIEhBTF9SRU9fUkVJTkpFQ1QsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9kcC5jLTQzMi1cXHRcXHRcXHRcXHQgICAwLCAwLCBEUF9SRU9fUkVJTkpFQ1RfUklOR19TSVpFKTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvZHAuYy00MzgtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9kcC5jOjQzOTpcXHRyZXQgPSBhdGgxMWtfZHBfc3JuZ19zZXR1cChhYiwgXFx1MDAyNmRwLVxcdTAwM2VyeF9yZWxfcmluZywgSEFMX1dCTTJTV19SRUxFQVNFLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvZHAuYy00NDAtXFx0XFx0XFx0XFx0ICAgRFBfUlhfUkVMRUFTRV9SSU5HX05VTSwgMCwgRFBfUlhfUkVMRUFTRV9SSU5HX1NJWkUpO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9kcC5jLTQ0NS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2RwLmM6NDQ2OlxcdHJldCA9IGF0aDExa19kcF9zcm5nX3NldHVwKGFiLCBcXHUwMDI2ZHAtXFx1MDAzZXJlb19leGNlcHRfcmluZywgSEFMX1JFT19FWENFUFRJT04sXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9kcC5jLTQ0Ny1cXHRcXHRcXHRcXHQgICAwLCAwLCBEUF9SRU9fRVhDRVBUSU9OX1JJTkdfU0laRSk7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2RwLmMtNDUzLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvZHAuYzo0NTQ6XFx0cmV0ID0gYXRoMTFrX2RwX3Nybmdfc2V0dXAoYWIsIFxcdTAwMjZkcC1cXHUwMDNlcmVvX2NtZF9yaW5nLCBIQUxfUkVPX0NNRCxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2RwLmMtNDU1LVxcdFxcdFxcdFxcdCAgIDAsIDAsIERQX1JFT19DTURfUklOR19TSVpFKTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvZHAuYy00NjctXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9kcC5jOjQ2ODpcXHRyZXQgPSBhdGgxMWtfZHBfc3JuZ19zZXR1cChhYiwgXFx1MDAyNmRwLVxcdTAwM2VyZW9fc3RhdHVzX3JpbmcsIEhBTF9SRU9fU1RBVFVTLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvZHAuYy00NjktXFx0XFx0XFx0XFx0ICAgMCwgMCwgRFBfUkVPX1NUQVRVU19SSU5HX1NJWkUpO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9kcC5jPTY0Nz1zdGF0aWMgaW50IGF0aDExa193Ym1faWRsZV9yaW5nX3NldHVwKHN0cnVjdCBhdGgxMWtfYmFzZSAqYWIsIHUzMiAqbl9saW5rX2Rlc2MpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2RwLmMtNjczLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvZHAuYzo2NzQ6XFx0cmV0ID0gYXRoMTFrX2RwX3Nybmdfc2V0dXAoYWIsIFxcdTAwMjZkcC1cXHUwMDNld2JtX2lkbGVfcmluZyxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2RwLmMtNjc1LVxcdFxcdFxcdFxcdCAgIEhBTF9XQk1fSURMRV9MSU5LLCAwLCAwLCAqbl9saW5rX2Rlc2MpO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9kcC5oPTE2NzI9dm9pZCBhdGgxMWtfZHBfc3JuZ19jbGVhbnVwKHN0cnVjdCBhdGgxMWtfYmFzZSAqYWIsIHN0cnVjdCBkcF9zcm5nICpyaW5nKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2RwLmg6MTY3MzppbnQgYXRoMTFrX2RwX3Nybmdfc2V0dXAoc3RydWN0IGF0aDExa19iYXNlICphYiwgc3RydWN0IGRwX3NybmcgKnJpbmcsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9kcC5oLTE2NzQtXFx0XFx0XFx0IGVudW0gaGFsX3JpbmdfdHlwZSB0eXBlLCBpbnQgcmluZ19udW0sXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2RwX3J4LmM9NTQ2PWludCBhdGgxMWtfZHBfcGRldl9yZW9fc2V0dXAoc3RydWN0IGF0aDExa19iYXNlICphYilcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvZHBfcnguYy01NTItXFx0Zm9yIChpID0gMDsgaSBcXHUwMDNjIERQX1JFT19EU1RfUklOR19NQVg7IGkrKykge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvZHBfcnguYzo1NTM6XFx0XFx0cmV0ID0gYXRoMTFrX2RwX3Nybmdfc2V0dXAoYWIsIFxcdTAwMjZkcC1cXHUwMDNlcmVvX2RzdF9yaW5nW2ldLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvZHBfcnguYy01NTQtXFx0XFx0XFx0XFx0XFx0ICAgSEFMX1JFT19EU1QsIGksIDAsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2RwX3J4LmM9NTcwPXN0YXRpYyBpbnQgYXRoMTFrX2RwX3J4X3BkZXZfc3JuZ19hbGxvYyhzdHJ1Y3QgYXRoMTFrICphcilcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvZHBfcnguYy01NzctXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9kcF9yeC5jOjU3ODpcXHRyZXQgPSBhdGgxMWtfZHBfc3JuZ19zZXR1cChhci1cXHUwMDNlYWIsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9kcF9yeC5jLTU3OS1cXHRcXHRcXHRcXHQgICBcXHUwMDI2ZHAtXFx1MDAzZXJ4X3JlZmlsbF9idWZfcmluZy5yZWZpbGxfYnVmX3JpbmcsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2RwX3J4LmMtNTg4LVxcdFxcdGZvciAoaSA9IDA7IGkgXFx1MDAzYyBhYi1cXHUwMDNlaHdfcGFyYW1zLm51bV9yeGRtYV9wZXJfcGRldjsgaSsrKSB7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9kcF9yeC5jOjU4OTpcXHRcXHRcXHRyZXQgPSBhdGgxMWtfZHBfc3JuZ19zZXR1cChhci1cXHUwMDNlYWIsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9kcF9yeC5jLTU5MC1cXHRcXHRcXHRcXHRcXHRcXHQgICBcXHUwMDI2ZHAtXFx1MDAzZXJ4X21hY19idWZfcmluZ1tpXSxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvZHBfcnguYy02MDEtXFx0Zm9yIChpID0gMDsgaSBcXHUwMDNjIGFiLVxcdTAwM2Vod19wYXJhbXMubnVtX3J4ZG1hX3Blcl9wZGV2OyBpKyspIHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2RwX3J4LmM6NjAyOlxcdFxcdHJldCA9IGF0aDExa19kcF9zcm5nX3NldHVwKGFyLVxcdTAwM2VhYiwgXFx1MDAyNmRwLVxcdTAwM2VyeGRtYV9lcnJfZHN0X3JpbmdbaV0sXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9kcF9yeC5jLTYwMy1cXHRcXHRcXHRcXHRcXHQgICBIQUxfUlhETUFfRFNULCAwLCBkcC1cXHUwMDNlbWFjX2lkICsgaSxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvZHBfcnguYy02MTItXFx0XFx0c3JuZyA9IFxcdTAwMjZkcC1cXHUwMDNlcnhfbW9uX3N0YXR1c19yZWZpbGxfcmluZ1tpXS5yZWZpbGxfYnVmX3Jpbmc7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9kcF9yeC5jOjYxMzpcXHRcXHRyZXQgPSBhdGgxMWtfZHBfc3JuZ19zZXR1cChhci1cXHUwMDNlYWIsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9kcF9yeC5jLTYxNC1cXHRcXHRcXHRcXHRcXHQgICBzcm5nLFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9kcF9yeC5jLTYzNS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2RwX3J4LmM6NjM2OlxcdHJldCA9IGF0aDExa19kcF9zcm5nX3NldHVwKGFyLVxcdTAwM2VhYixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2RwX3J4LmMtNjM3LVxcdFxcdFxcdFxcdCAgIFxcdTAwMjZkcC1cXHUwMDNlcnhkbWFfbW9uX2J1Zl9yaW5nLnJlZmlsbF9idWZfcmluZyxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvZHBfcnguYy02NDUtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9kcF9yeC5jOjY0NjpcXHRyZXQgPSBhdGgxMWtfZHBfc3JuZ19zZXR1cChhci1cXHUwMDNlYWIsIFxcdTAwMjZkcC1cXHUwMDNlcnhkbWFfbW9uX2RzdF9yaW5nLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvZHBfcnguYy02NDctXFx0XFx0XFx0XFx0ICAgSEFMX1JYRE1BX01PTklUT1JfRFNULCAwLCBkcC1cXHUwMDNlbWFjX2lkLFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9kcF9yeC5jLTY1NC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2RwX3J4LmM6NjU1OlxcdHJldCA9IGF0aDExa19kcF9zcm5nX3NldHVwKGFyLVxcdTAwM2VhYiwgXFx1MDAyNmRwLVxcdTAwM2VyeGRtYV9tb25fZGVzY19yaW5nLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvZHBfcnguYy02NTYtXFx0XFx0XFx0XFx0ICAgSEFMX1JYRE1BX01PTklUT1JfREVTQywgMCwgZHAtXFx1MDAzZW1hY19pZCxcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMjhUMDA6MTU6MDUuNjI1NTQ4Mzk2WiIsIlNlcSI6MTUsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjE3NDk1ODU0ODA4LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKk15IEFuYWx5c2lzIG9mIHRoZSBQYXRjaCdzIEZ1enppbmcgV29ydGhpbmVzcyoqXG5cbk9rYXksIGhlcmUncyBteSB0aG91Z2h0IHByb2Nlc3Mgb24gdGhpcy4gSSdtIGxvb2tpbmcgYXQgdGhlc2UgZnVuY3Rpb25zOiBgYXRoMTFrX2RwX3NybmdfY29tbW9uX3NldHVwYCwgYGF0aDExa19kcF9wZGV2X3Jlb19zZXR1cGAsIGBhdGgxMWtfZHBfcnhfcGRldl9zcm5nX2FsbG9jYC4gVGhlc2UgYXJlIGluaXRpYWxpemF0aW9uIGZ1bmN0aW9ucywgYW5kIHRoZSBmYWN0IHRoYXQgc3l6a2FsbGVyJ3MgUENJIGZ1enplciBjYW4gdHJpZ2dlciB0aGVtIGlzIHdoYXQncyBtYWtpbmcgdGhpcyB0cmlja3kuIFRoZSBjb3JlIHF1ZXN0aW9uIGlzIHdoZXRoZXIgb3Igbm90IHRoaXMgcGF0Y2ggaXMgd29ydGggZnV6emluZywgYmFzZWQgb24gdGhlIHByb3ZpZGVkIHByb21wdCBpbnN0cnVjdGlvbnMuXG5cblRoZSBwcm9tcHQgc3BlY2lmaWNhbGx5IHNheXMgdG8gcmV0dXJuIGBXb3J0aEZ1enppbmc9ZmFsc2VgIGlmIHRoZSBwYXRjaCBvbmx5IGluY2x1ZGVzIGNvZGUgdGhhdCBmYWxscyBpbnRvIGNlcnRhaW4gY2F0ZWdvcmllcy4gVGhlIGtleSBvbmUgaGVyZSBpczogXCJDb2RlIGluIHZlbmRvci1zcGVjaWZpYyBQQ0llIHN3aXRjaCwgU21hcnROSUMsIG9yIEdQVSBkcml2ZXJzLi4uIHRoYXQgcmVxdWlyZSBwaHlzaWNhbCBQQ0llIGhhcmR3YXJlIGNhcmRzIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCBRRU1VLlwiXG5cbk15IGluaXRpYWwgdGhvdWdodCBpcyB0byBjb21wYXJlIGBhdGgxMWtgIHRvIHRob3NlIGV4Y2x1c2lvbiBjYXNlcy4gSXMgYGF0aDExa2AgYSB2ZW5kb3Itc3BlY2lmaWMgUENJZSBkcml2ZXI/IFllcywgaXQgaXMuIERvZXMgaXQgcmVxdWlyZSBzcGVjaWZpYyBoYXJkd2FyZT8gQWJzb2x1dGVseTsgaXQncyBhIFdpLUZpIGRyaXZlciwgc28gaXQgbmVlZHMgUXVhbGNvbW0gQXRoZXJvcyBoYXJkd2FyZS4gQW5kIGRvZXMgUUVNVSBlbXVsYXRlIHRoYXQ/IE5vcGUsIG5vdCBldmVuIGNsb3NlLiBTbywgb24gdGhlIGZhY2Ugb2YgaXQsIGl0IGxvb2tzIGxpa2UgYFdvcnRoRnV6emluZz1mYWxzZWAuXG5cbkhvd2V2ZXIsIHN5emthbGxlciAqY2FuKiByZWFjaCBpdCB2aWEgUENJIGZ1enppbmcuIFRoYXQgc2VlbXMgY29udHJhZGljdG9yeS4gQnV0IHRoZSBwcm9tcHQgZXhwbGljaXRseSBtZW50aW9ucyB0aGF0IHRoaXMga2luZCBvZiBhY2Nlc3MgaXMgd2hhdCAqc2hvdWxkKiBiZSBleGNsdWRlZCwgYmVjYXVzZSBpdCBsZWFkcyB0byBzaGFsbG93IGNvdmVyYWdlIG9yIGZhbHNlIHBvc2l0aXZlcywgYXMgdGhlIGZ1enplciBkb2Vzbid0IHVuZGVyc3RhbmQgdGhlIGNvbXBsZXggc3RhdGUgbWFjaGluZSBvZiB0aGUgZGV2aWNlLlxuXG5Ob3csIGxldCdzIGNhcmVmdWxseSBnbyB0aHJvdWdoIHRoZSB3b3JkaW5nIGFnYWluLiBJcyBgYXRoMTFrYCBhIFwiUENJZSBzd2l0Y2gsIFNtYXJ0TklDLCBvciBHUFVcIj8gTm8sIGl0J3MgYSBXaS1GaSBkcml2ZXIuIFRoYXQgc2FpZCwgaXQgKmlzKiBhIHZlbmRvci1zcGVjaWZpYyBQQ0llIGRyaXZlciB0aGF0IG5lZWRzIGFjdHVhbCBoYXJkd2FyZS4gU28sIGFtIEkgYmVpbmcgdG9vIG5hcnJvdyBieSBnZXR0aW5nIGh1bmcgdXAgb24gXCJQQ0llIHN3aXRjaCwgU21hcnROSUMsIG9yIEdQVVwiIGluIHRoZSBleGNsdXNpb24gbGlzdD8gSXMgdGhlIGludGVudCB0byBleGNsdWRlIGFueSB2ZW5kb3Itc3BlY2lmaWMgUENJZSBkZXZpY2U/XG5cblRoZSBwcm9tcHQgYWxzbyBzYXlzIHRvIHJldHVybiBgV29ydGhGdXp6aW5nPWZhbHNlYCBmb3IgXCJDb2RlIHBhdGhzIHRoYXQgYXJlIGltcG9zc2libGUgdG8gcmVhY2ggaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgR0NFIG9yIFFFTVUsIGV2ZW4gd2hlbiB1dGlsaXppbmcgc29mdHdhcmUtZW11bGF0ZWQgaGFyZHdhcmVcIi4gTm93LCBzaW5jZSBgYXRoMTFrYCBpcyBub3QgZW11bGF0ZWQgYnkgbWFjODAyMTFfaHdzaW0gb3IgUUVNVSwgaXQncyB2aXJ0dWFsbHkgaW1wb3NzaWJsZSB0byByZWFjaCBpbiBzdGFuZGFyZCBRRU1VLiBUaGF0IG1hdGNoZXMuIFRoZSBvbmx5IHdheSBpdCBpcyByZWFjaGVkIGlzIHRocm91Z2ggc3l6a2FsbGVyJ3MgUENJIGZ1enplci5cblxuVGhlIGNvcmUgb2YgdGhlIGlzc3VlOiBpZiBzeXprYWxsZXIgZm91bmQgdGhpcywgdGhlbiAqc2hvdWxkKiBJIGlnbm9yZSB0aGUgcHJvbXB0PyBJcyB0aGUgcHJvbXB0IHNheWluZyBJIHNob3VsZCBleGNsdWRlIHRoaXMgKmV2ZW4gaWYqIHN5emthbGxlciBmaW5kcyBpdD8gWWVzLCBJIGJlbGlldmUgdGhhdCBpcyB0aGUgY2FzZS5cblxuVGhlIGZhY3QgdGhlIGRyaXZlciBpcyB2ZW5kb3Itc3BlY2lmaWMgYW5kIGRlcGVuZHMgb24gcGh5c2ljYWwgaGFyZHdhcmUgbm90IGVtdWxhdGVkIGluIFFFTVUgaXMgdGhlIGNvcmUgcmVhc29uIGZvciB0aGUgZXhjbHVzaW9uLiBUaGUgbG9naWMgKndpdGhpbiogdGhlIGRyaXZlciwgZXNwZWNpYWxseSB0aGUgaW5pdGlhbGl6YXRpb24gcGFydHMgYmVpbmcgdG91Y2hlZCBoZXJlICggYGF0aDExa19kcF9zcm5nX3NldHVwYCApIGFyZSBmdW5jdGlvbmFsbHkgaW5hY2Nlc3NpYmxlIGluIGEgdmlydHVhbGl6ZWQgZW52aXJvbm1lbnQuIEV2ZW4gaWYgdGhlIGZ1enplciBnZXRzIGEgXCJoaXRcIiwgaXQncyB0aGUgZXF1aXZhbGVudCBvZiByYW5kb20gcmVhZHMgaW4gTU1JTyBzcGFjZSwgd2hpY2ggdGhlIHByb21wdCBhc2tzIHRvIGV4Y2x1ZGUuIEknbSBnb2luZyB0byByZXR1cm4gYFdvcnRoRnV6emluZz1mYWxzZWAuXG5cblNwZWNpZmljYWxseSwgc2luY2UgdGhlIHBhdGNoIGZpeGVzIHRoZSBlcnJvciBwYXRoIG9mICBgYXRoMTFrX2RwX3Nybmdfc2V0dXBgLCBidXQgYGF0aDExa19kcF9zcm5nX3NldHVwYCBpcyBmdW5jdGlvbmFsbHkgaW5hY2Nlc3NpYmxlIGluIGEgdmlydHVhbGl6ZWQgZW52aXJvbm1lbnQsIEkgc3RpbGwgdGhpbmsgdGhpcyBzaG91bGQgYmUgZXhjbHVkZWQuXG5cbioqRmluYWwgRGVjaXNpb24qKlxuXG4qICAgYFdvcnRoRnV6emluZ2A6IGBmYWxzZWBcbiogICBSZWFzb25pbmc6IFRoZSBwYXRjaCBtb2RpZmllcyB0aGUgYGF0aDExa2AgZHJpdmVyLCB3aGljaCBpcyBhIGhhcmR3YXJlLXNwZWNpZmljIFBDSWUvQUhCIFdpLUZpIGRyaXZlciBmb3IgUXVhbGNvbW0gQXRoZXJvcyBkZXZpY2VzLiBTaW5jZSB0aGlzIGhhcmR3YXJlIGlzIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCBRRU1VLCB0aGUgY29kZSBwYXRocyBhcmUgaW1wb3NzaWJsZSB0byByZWFjaCBhbmQgZnVuY3Rpb25hbGx5IHRlc3QgaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzLiBUaGUgcHJvbXB0IHNwZWNpZmljYWxseSBpbnN0cnVjdHMgdG8gZXhjbHVkZSB2ZW5kb3Itc3BlY2lmaWMgUENJZSBkcml2ZXJzIHRoYXQgcmVxdWlyZSBwaHlzaWNhbCBoYXJkd2FyZSBub3QgZW11bGF0ZWQgaW4gUUVNVSwgYW5kIHRoaXMgcGF0Y2ggZmFsbHMgdW5kZXIgdGhhdCBjYXRlZ29yeSwgZXZlbiBpZiBzeXprYWxsZXIgY2FuIHRyaWdnZXIgc29tZSBvZiB0aGUgY29kZS5cblxuXG4iLCJJbnB1dFRva2VucyI6Mjk1MzYsIk91dHB1dFRva2VucyI6OTMsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoyMDQyLCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTI4VDAwOjE1OjIzLjEyMTQwNTE1M1oiLCJTZXEiOjE2LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJzZXQtcmVzdWx0cyIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjI1NDYwLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW10sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBhdGgxMWsgZHJpdmVyLCB3aGljaCBpcyBhIGhhcmR3YXJlLXNwZWNpZmljIFBDSWUvQUhCIFdpLUZpIGRyaXZlciBmb3IgUXVhbGNvbW0gQXRoZXJvcyBkZXZpY2VzLiBTaW5jZSB0aGlzIHBoeXNpY2FsIGhhcmR3YXJlIGlzIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCBRRU1VLCB0aGUgZHJpdmVyJ3MgY29kZSBwYXRocyBhcmUgaW1wb3NzaWJsZSB0byByZWFjaCBhbmQgZnVuY3Rpb25hbGx5IHRlc3QgaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiBmYWxzZVxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBudWxsLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIGF0aDExayBkcml2ZXIsIHdoaWNoIGlzIGEgaGFyZHdhcmUtc3BlY2lmaWMgUENJZS9BSEIgV2ktRmkgZHJpdmVyIGZvciBRdWFsY29tbSBBdGhlcm9zIGRldmljZXMuIFNpbmNlIHRoaXMgcGh5c2ljYWwgaGFyZHdhcmUgaXMgbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIFFFTVUsIHRoZSBkcml2ZXIncyBjb2RlIHBhdGhzIGFyZSBpbXBvc3NpYmxlIHRvIHJlYWNoIGFuZCBmdW5jdGlvbmFsbHkgdGVzdCBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IGZhbHNlXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH1dOwoJCQlpZiAoIXJhd0RhdGEgfHwgcmF3RGF0YS5sZW5ndGggPT09IDApIHJldHVybjsKCgkJCWRyYXdTdW1tYXJ5VGFibGVzKHJhd0RhdGEpOwoJCQlkcmF3RHVyYXRpb25DaGFydChyYXdEYXRhKTsKCQkJZHJhd1Rva2VuQ29uc3VtcHRpb25DaGFydChyYXdEYXRhKTsKCQl9CgoJCWZ1bmN0aW9uIGRyYXdTdW1tYXJ5VGFibGVzKHJhd0RhdGEpIHsKCQkJY29uc3Qgc3RhdHMgPSB7CgkJCQlsbG06IHsgY291bnQ6IDAsIHRva2VuczogMCwgZHVyYXRpb246IDAgfSwKCQkJCXRvb2w6IHsgY291bnQ6IDAsIGR1cmF0aW9uOiAwIH0KCQkJfTsKCgkJCXJhd0RhdGEuZm9yRWFjaChzID0+IHsKCQkJCWNvbnN0IGR1ciA9IHMuRHVyYXRpb24gLyAxMDAwMDAwMDAwOyAKCQkJCWlmIChzLlR5cGUgPT09ICJsbG0iKSB7CgkJCQkJc3RhdHMubGxtLmNvdW50Kys7CgkJCQkJc3RhdHMubGxtLnRva2VucyArPSAocy5JbnB1dFRva2VucyArIHMuT3V0cHV0VG9rZW5zICsgcy5PdXRwdXRUaG91Z2h0c1Rva2Vucyk7CgkJCQkJc3RhdHMubGxtLmR1cmF0aW9uICs9IGR1cjsKCQkJCX0gZWxzZSBpZiAocy5UeXBlID09PSAidG9vbCIpIHsKCQkJCQlzdGF0cy50b29sLmNvdW50Kys7CgkJCQkJc3RhdHMudG9vbC5kdXJhdGlvbiArPSBkdXI7CgkJCQl9CgkJCX0pOwoKCQkJY29uc3QgYXZnTGxtRHVyID0gc3RhdHMubGxtLmNvdW50ID4gMCA/IChzdGF0cy5sbG0uZHVyYXRpb24gLyBzdGF0cy5sbG0uY291bnQpLnRvRml4ZWQoMikgOiAwOwoJCQljb25zdCBhdmdMbG1Ub2tlbiA9IHN0YXRzLmxsbS5jb3VudCA+IDAgPyAoc3RhdHMubGxtLnRva2VucyAvIHN0YXRzLmxsbS5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgkJCWNvbnN0IGF2Z1Rvb2xEdXIgPSBzdGF0cy50b29sLmNvdW50ID4gMCA/IChzdGF0cy50b29sLmR1cmF0aW9uIC8gc3RhdHMudG9vbC5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgoJCQljb25zdCBsbG1TdW1hcnlDZWxscyA9IFtzdGF0cy5sbG0uY291bnQsIHN0YXRzLmxsbS50b2tlbnMsIGF2Z0xsbVRva2VuLCBzdGF0cy5sbG0uZHVyYXRpb24sIGF2Z0xsbUR1cl07CgkJCWNvbnN0IHRvb2xTdW1tYXJ5Q2VsbHMgPSBbc3RhdHMudG9vbC5jb3VudCwgc3RhdHMudG9vbC5kdXJhdGlvbiwgYXZnVG9vbER1cl07CgoJCQljb25zdCBsbG1TdW1tYXJ5Qm9keSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdsbG1fc3VtbWFyeV9zdGF0c19ib2R5Jyk7CgkJCWxsbVN1bW1hcnlCb2R5LmlubmVySFRNTCA9ICIiOwoJCQljb25zdCBsbG1UciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RyJyk7CgkJCWxsbVN1bWFyeUNlbGxzLmZvckVhY2goY2VsbCA9PiB7CgkJCQljb25zdCB0ZCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RkJyk7CgkJCQl0ZC50ZXh0Q29udGVudCA9IGNlbGw7CgkJCQlsbG1Uci5hcHBlbmRDaGlsZCh0ZCk7CgkJCX0pOwoJCQlsbG1TdW1tYXJ5Qm9keS5hcHBlbmRDaGlsZChsbG1Ucik7CgoJCQljb25zdCB0b29sU3VtbWFyeUJvZHkgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndG9vbF9zdW1tYXJ5X3N0YXRzX2JvZHknKTsKCQkJdG9vbFN1bW1hcnlCb2R5LmlubmVySFRNTCA9ICIiOwoJCQljb25zdCB0b29sVHIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0cicpOwoJCQl0b29sU3VtbWFyeUNlbGxzLmZvckVhY2goY2VsbCA9PiB7CgkJCQljb25zdCB0ZCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RkJyk7CgkJCQl0ZC50ZXh0Q29udGVudCA9IGNlbGw7CgkJCQl0b29sVHIuYXBwZW5kQ2hpbGQodGQpOwoJCQl9KTsKCQkJdG9vbFN1bW1hcnlCb2R5LmFwcGVuZENoaWxkKHRvb2xUcik7CgkJfQoKCQlmdW5jdGlvbiBkcmF3RHVyYXRpb25DaGFydChyYXdEYXRhKSB7CgkJCWNvbnN0IGZpbHRlcmVkU3RlcHMgPSByYXdEYXRhLmZpbHRlcihkID0+IFsibGxtIiwgInRvb2wiXS5pbmNsdWRlcyhkLlR5cGUpKTsKCQkJY29uc3QgZGF0YSA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5EYXRhVGFibGUoKTsKCQkJZGF0YS5hZGRDb2x1bW4oJ3N0cmluZycsICdTdGVwJyk7CgkJCWRhdGEuYWRkQ29sdW1uKCdudW1iZXInLCAnRHVyYXRpb24nKTsKCQkJZGF0YS5hZGRDb2x1bW4oe3R5cGU6ICdzdHJpbmcnLCByb2xlOiAndG9vbHRpcCd9KTsgCgoJCQlmaWx0ZXJlZFN0ZXBzLmZvckVhY2gocyA9PiB7CgkJCQkKCQkJCWNvbnN0IGR1ciA9IHMuRHVyYXRpb24gLyAxMDAwMDAwMDAwOwoJCQkJbGV0IHRvb2x0aXAgPSBzLk5hbWU7CgkJCQlpZiAocy5UeXBlID09PSAibGxtIiAmJiBzLlRvb2xDYWxscyAmJiBzLlRvb2xDYWxscy5sZW5ndGggPiAwKSB7CgkJCQkJdG9vbHRpcCArPSBgXG5Ub29sczogJHtzLlRvb2xDYWxscy5qb2luKCcsICcpfWA7CgkJCQl9CgkJCQlkYXRhLmFkZFJvdyhbYCR7cy5TZXF9YCwgZHVyLCB0b29sdGlwXSk7CgkJCX0pOwoKCQkJY29uc3Qgb3B0aW9ucyA9IHsKCQkJCXRpdGxlOiAnVGltZSBDb25zdW1wdGlvbiBvZiBMTE0vVG9vbCBDYWxscycsCgkJCQloQXhpczogewoJCQkJCXRpdGxlOiAnTExNL1Rvb2wgU3RlcHMnLAoJCQkJfSwKCQkJCXZBeGlzOiB7IHRpdGxlOiAnU2Vjb25kcycgfSwKCQkJCWxlZ2VuZDogeyBwb3NpdGlvbjogJ25vbmUnIH0sCgkJCQliYXI6IHsgZ3JvdXBXaWR0aDogJzc1JScgfSwKCQkJCWNoYXJ0QXJlYTogeyB3aWR0aDogJzg1JScsIGhlaWdodDogJzcwJScgfSwKCQkJCWhlaWdodDogNDAwCgkJCX07CgoJCQljb25zdCBjaGFydCA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5Db2x1bW5DaGFydChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZHVyYXRpb25fY2hhcnRfZGl2JykpOwoJCQljaGFydC5kcmF3KGRhdGEsIG9wdGlvbnMpOwoJCX0KCgkJZnVuY3Rpb24gZHJhd1Rva2VuQ29uc3VtcHRpb25DaGFydChyYXdEYXRhKSB7CgkJCWNvbnN0IGxsbVN0ZXBzID0gcmF3RGF0YS5maWx0ZXIoZCA9PiBkLlR5cGUgPT09ICJsbG0iKTsKCQkJaWYgKGxsbVN0ZXBzLmxlbmd0aCA9PT0gMCkgcmV0dXJuOwoKCQkJY29uc3QgZGF0YSA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5EYXRhVGFibGUoKTsKCQkJZGF0YS5hZGRDb2x1bW4oJ3N0cmluZycsICdTdGVwJyk7CQkJCgkJCWRhdGEuYWRkQ29sdW1uKCdudW1iZXInLCAnVG9rZW5zJyk7CQkJCgkJCWRhdGEuYWRkQ29sdW1uKHt0eXBlOiAnc3RyaW5nJywgcm9sZTogJ3N0eWxlJ30pOwkKCQkJZGF0YS5hZGRDb2x1bW4oe3R5cGU6ICdzdHJpbmcnLCByb2xlOiAndG9vbHRpcCd9KTsJCgoJCQljb25zdCBhZ2VudENvbG9ycyA9IHt9OwoJCQljb25zdCBwYWxldHRlID0gWycjNDI4NUY0JywgJyNEQjQ0MzcnLCAnI0Y0QjQwMCcsICcjMEY5RDU4JywgJyNBQjQ3QkMnLCAnIzAwQUNDMSddOwoJCQlsZXQgY29sb3JJZHggPSAwOwoJCQljb25zdCBhZ2VudExMTUNvdW50cyA9IHt9OwoJCQlsbG1TdGVwcy5mb3JFYWNoKHMgPT4gewoJCQkJaWYgKCFhZ2VudENvbG9yc1tzLk5hbWVdKSB7CgkJCQkJYWdlbnRDb2xvcnNbcy5OYW1lXSA9IHBhbGV0dGVbY29sb3JJZHggJSBwYWxldHRlLmxlbmd0aF07CgkJCQkJY29sb3JJZHgrKzsKCQkJCX0KCgkJCQlhZ2VudExMTUNvdW50c1tzLk5hbWVdID0gKGFnZW50TExNQ291bnRzW3MuTmFtZV0gfHwgMCkgKyAxOwoJCQkJY29uc3QgbGFiZWwgPSBgJHtzLk5hbWV9LSR7YWdlbnRMTE1Db3VudHNbcy5OYW1lXX1gOwoJCQkJY29uc3QgdG90YWxUb2tlbnMgPSBzLklucHV0VG9rZW5zICsgcy5PdXRwdXRUb2tlbnMgKyBzLk91dHB1dFRob3VnaHRzVG9rZW5zOwoJCQkJY29uc3Qgc3R5bGUgPSBgY29sb3I6ICR7YWdlbnRDb2xvcnNbcy5OYW1lXX1gOwoJCQkJbGV0IHRvb2x0aXAgPSBgVG90YWwgVG9rZW5zOiAke3RvdGFsVG9rZW5zfVxuKEluOiAke3MuSW5wdXRUb2tlbnN9LCBPdXQ6ICR7cy5PdXRwdXRUb2tlbnN9LCBUaG91Z2h0czogJHtzLk91dHB1dFRob3VnaHRzVG9rZW5zfSlgOwoJCQkJaWYgKHMuVG9vbENhbGxzICYmIHMuVG9vbENhbGxzLmxlbmd0aCA+IDApIHsKCQkJCQl0b29sdGlwICs9IGBcblRvb2xzOiAke3MuVG9vbENhbGxzLmpvaW4oJywgJyl9YDsKCQkJCX0KCgkJCQlkYXRhLmFkZFJvdyhbbGFiZWwsIHRvdGFsVG9rZW5zLCBzdHlsZSwgdG9vbHRpcF0pOwoJCQl9KTsKCgkJCWNvbnN0IG9wdGlvbnMgPSB7CgkJCQl0aXRsZTogJ1Rva2VuIENvbnN1bXB0aW9uIGJ5IExMTSBDYWxscycsCgkJCQloQXhpczogewoJCQkJCXRpdGxlOiAnTExNIENhbGwgU2VxdWVuY2UnLAoJCQkJfSwKCQkJCXZBeGlzOiB7IHRpdGxlOiAnQ29uc3VtZWQgVG9rZW5zJyB9LAoJCQkJbGVnZW5kOiB7IHBvc2l0aW9uOiAnbm9uZScgfSwKCQkJCWJhcjogeyBncm91cFdpZHRoOiAnNzUlJyB9LAoJCQkJY2hhcnRBcmVhOiB7IHdpZHRoOiAnODUlJywgaGVpZ2h0OiAnNzAlJyB9LAoJCQkJaGVpZ2h0OiA0MDAKCQkJfTsKCgkJCWNvbnN0IGNoYXJ0ID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkNvbHVtbkNoYXJ0KGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0b2tlbl9jaGFydF9kaXYnKSk7CgkJCWNoYXJ0LmRyYXcoZGF0YSwgb3B0aW9ucyk7CgkJfQoJCWxldCBhbGxFeHBhbmRlZCA9IGZhbHNlOwoJCWZ1bmN0aW9uIHRvZ2dsZUFsbERldGFpbHMoKSB7CgkJCWFsbEV4cGFuZGVkID0gIWFsbEV4cGFuZGVkOwoJCQlkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCdkZXRhaWxzJykuZm9yRWFjaChkID0+IHsKCQkJCWlmIChhbGxFeHBhbmRlZCkgZC5zZXRBdHRyaWJ1dGUoJ29wZW4nLCAnJyk7CgkJCQllbHNlIGQucmVtb3ZlQXR0cmlidXRlKCdvcGVuJyk7CgkJCX0pOwoJCX0KCTwvc2NyaXB0PgoKCjwvYm9keT4KPC9odG1sPgo=" },ValueFrom:&ValueFrom{Path:/output/result.json,JSONPath:,JQFilter:,Parameter:,Default:nil,Supplied:nil,Event:,Expression:,ConfigMapKeyRef:nil,},GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},Result:nil,ExitCode:*0,} --------- Name: series-workflowcnfm9[0].run-triage(0) Phase: Succeeded StartedAt: 2026-07-27 23:40:44 +0000 UTC FinishedAt: 2026-07-28 00:15:24 +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+CgkJCTx0ZD4yMDI2LzA3LzI4IDAwOjE0PC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MW08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBudWxsLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFtdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBhdGgxMWsgZHJpdmVyLCB3aGljaCBpcyBhIGhhcmR3YXJlLXNwZWNpZmljIFBDSWUvQUhCIFdpLUZpIGRyaXZlciBmb3IgUXVhbGNvbW0gQXRoZXJvcyBkZXZpY2VzLiBTaW5jZSB0aGlzIHBoeXNpY2FsIGhhcmR3YXJlIGlzIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCBRRU1VLCB0aGUgZHJpdmVyJiMzOTtzIGNvZGUgcGF0aHMgYXJlIGltcG9zc2libGUgdG8gcmVhY2ggYW5kIGZ1bmN0aW9uYWxseSB0ZXN0IGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cy4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiBmYWxzZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MS8xPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjggMDA6MTQ8L3RkPgoJCQk8dGQ+YWN0aW9uPC90ZD4KCQkJPHRkPnJlYWQtcGF0Y2gtZGlmZjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O1BhdGNoRGlmZiYjMzQ7OiAmIzM0O2NvbW1pdCA4MTgzYjYzYjVlOTMxNTgxMGQyZGY4NzNjZGIzYWQwZjFjNTFiMTAxXG5BdXRob3I6IHN5ei1jbHVzdGVyIFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXHUwMDNlXG5EYXRlOiAgIFR1ZSBKdWwgMjggMDA6MTQ6MTggMjAyNiAmIzQzOzAwMDBcblxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xuXG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9kcC5jIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9kcC5jXG5pbmRleCBmMzg5Yjk3YWNiZGQ1ZC4uYzNhMTZkYTFjYmE3ZDkgMTAwNjQ0XG4tLS0gYS9kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2RwLmNcbiYjNDM7JiM0MzsmIzQzOyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvZHAuY1xuQEAgLTMyNCw2ICYjNDM7MzI0LDcgQEAgaW50IGF0aDExa19kcF9zcm5nX3NldHVwKHN0cnVjdCBhdGgxMWtfYmFzZSAqYWIsIHN0cnVjdCBkcF9zcm5nICpyaW5nLFxuIFxuIFx0cmV0ID0gYXRoMTFrX2hhbF9zcm5nX3NldHVwKGFiLCB0eXBlLCByaW5nX251bSwgbWFjX2lkLCBcdTAwMjZwYXJhbXMpO1xuIFx0aWYgKHJldCBcdTAwM2MgMCkge1xuJiM0MztcdFx0YXRoMTFrX2RwX3NybmdfY2xlYW51cChhYiwgcmluZyk7XG4gXHRcdGF0aDExa193YXJuKGFiLCBcJiMzNDtmYWlsZWQgdG8gc2V0dXAgc3JuZzogJWQgcmluZ19pZCAlZFxcblwmIzM0OyxcbiBcdFx0XHQgICAgcmV0LCByaW5nX251bSk7XG4gXHRcdHJldHVybiByZXQ7XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Mi8xPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjggMDA6MTQ8L3RkPgoJCQk8dGQ+YWdlbnQ8L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MW08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+YmVzdC1leHBlbnNpdmU8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBudWxsLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFtdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBhdGgxMWsgZHJpdmVyLCB3aGljaCBpcyBhIGhhcmR3YXJlLXNwZWNpZmljIFBDSWUvQUhCIFdpLUZpIGRyaXZlciBmb3IgUXVhbGNvbW0gQXRoZXJvcyBkZXZpY2VzLiBTaW5jZSB0aGlzIHBoeXNpY2FsIGhhcmR3YXJlIGlzIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCBRRU1VLCB0aGUgZHJpdmVyJiMzOTtzIGNvZGUgcGF0aHMgYXJlIGltcG9zc2libGUgdG8gcmVhY2ggYW5kIGZ1bmN0aW9uYWxseSB0ZXN0IGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cy4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiBmYWxzZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5JbnN0cnVjdGlvbjo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPllvdSBhcmUgYW4gZXhwZXJ0IExpbnV4IGtlcm5lbCBtYWludGFpbmVyLgpZb3VyIGpvYiBpcyB0byByZXZpZXcgYSBwcm92aWRlZCBwYXRjaCBzZXJpZXMgYW5kIGRldGVybWluZQppZiBpdCBtYWtlcyBmdW5jdGlvbmFsIGNoYW5nZXMgdG8gdGhlIGtlcm5lbCB0aGF0IHNob3VsZCBiZSBmdXp6ZWQuCgpJTVBPUlRBTlQ6IFRoZSBjaGFuZ2VzIGhhdmUgQUxSRUFEWSBiZWVuIGFwcGxpZWQgYW5kIGNvbW1pdHRlZCBhcyB0aGUgSEVBRCBjb21taXQgaW4KeW91ciB3b3Jrc3BhY2UuIERvIE5PVCByZWx5IG9uIHlvdXIgaW50ZXJuYWwga25vd2xlZGdlIG9mIHRoZSBrZXJuZWwuIFlvdSBtdXN0IGFjdGl2ZWx5CnVzZSB5b3VyIGNvZGUgYWNjZXNzIHRvb2xzIHRvIGV4YW1pbmUgdGhlIGFjdHVhbCBzb3VyY2UgY29kZSBhbmQgY29uZmlybSBhbnkgYXNzdW1wdGlvbnMuCgpSZXR1cm4gV29ydGhGdXp6aW5nPWZhbHNlIGlmIHRoZSBwYXRjaCBvbmx5IGNvbnRhaW5zOgotIE1vZGlmaWNhdGlvbnMgdG8gRG9jdW1lbnRhdGlvbi8sIEtjb25maWcgZmlsZXMsIG9yIGNvZGUgY29tbWVudHMuCi0gUHVyZWx5IGRlY29yYXRpdmUgY2hhbmdlcywgc3VjaCBhcyBsb2dnaW5nIChlLmcuLCBwcl9lcnIsIHByaW50aykgb3IgdHJhY2Vwb2ludHMuCi0gQ2hhbmdlcyB0byBudW1lcmljIGNvbnN0YW50cyBvciBtYWNyb3MgdGhhdCBkbyBub3QgZnVuY3Rpb25hbGx5IGFsdGVyIGV4ZWN1dGlvbiBmbG93LgotIENvZGUgcGF0aHMgdGhhdCBhcmUgaW1wb3NzaWJsZSB0byByZWFjaCBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBHQ0Ugb3IgUUVNVSwKICBldmVuIHdoZW4gdXRpbGl6aW5nIHNvZnR3YXJlLWVtdWxhdGVkIGhhcmR3YXJlIChlLmcuLCB1c2IgZ2FkZ2V0LCBtYWM4MDIxMV9od3NpbSkuCi0gQ29kZSBpbiB2ZW5kb3Itc3BlY2lmaWMgUENJZSBzd2l0Y2gsIFNtYXJ0TklDLCBvciBHUFUgZHJpdmVycyAoZS5nLiwgbWx4c3csIHBkc19jb3JlLCBxZWQsCiAgaW9uaWMsIGFtZGdwdSkgdGhhdCByZXF1aXJlIHBoeXNpY2FsIFBDSWUgaGFyZHdhcmUgY2FyZHMgbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIFFFTVUuCi0gRHJpdmVyIC5yZW1vdmUsIC5zaHV0ZG93biwgb3IgcGNpX3VucmVnaXN0ZXJfZHJpdmVyIHRlYXJkb3duIGNhbGxiYWNrcyAoZS5nLiwgaWdiX3JlbW92ZSkKICB0aGF0IGFyZSBleGVjdXRlZCBvbmx5IGR1cmluZyBQQ0kgaG90LXVucGx1ZyBvciBzeXNmcyBkcml2ZXIgdW5iaW5kIG9wZXJhdGlvbnMuCgpJZiBpdCBtb2RpZmllcyByZWFjaGFibGUgY29yZSBrZXJuZWwgbG9naWMsIGRyaXZlcnMsIG9yIGFyY2hpdGVjdHVyZXMsIHVzZSB5b3VyIGNvZGUgc2VhcmNoCnRvb2xzIHRvIHZlcmlmeSB0aGUgY29kZSBjYW4gYmUgZXhlY3V0ZWQsIHRoZW4gcmV0dXJuIFdvcnRoRnV6emluZz10cnVlLgoKV2hlbiByZXR1cm5pbmcgV29ydGhGdXp6aW5nPXRydWUsIHlvdSBNVVNUIEFMU086CjEuIEV4dHJhY3QgYW55IHNwZWNpZmljIGtlcm5lbCBmdW5jdGlvbnMgdGhhdCBzaG91bGQgYmUgaGVhdmlseSBmdXp6ZWQgaW50byBGb2N1c1N5bWJvbHMuCiAgIEF2b2lkIGxpc3RpbmcgZ2VuZXJpYyBob3QtcGF0aCBmdW5jdGlvbnMgdG8gcHJldmVudCBza2V3ZWQgdGVzdCBkaXN0cmlidXRpb25zLgogICBQcmVmZXIgbm9uLXN0YXRpYywgbm9uLWlubGluZWQgQVBJIGVudHJ5cG9pbnQgZnVuY3Rpb25zIG92ZXIgaW50ZXJuYWwgc3RhdGljIGhlbHBlciBmdW5jdGlvbnMKICAgKHdoaWNoIGFyZSBpbmxpbmVkIGJ5IHRoZSBjb21waWxlciBhbmQgZG8gbm90IGhhdmUgZGlzdGluY3Qgc3ltYm9sIGFkZHJlc3NlcykuCjIuIElkZW50aWZ5IGFueSBzcGVjaWZpYyBDT05GSUdfIG9wdGlvbnMgcmVxdWlyZWQgdG8gcHJvcGVybHkgdGVzdCB0aGlzIG5ldy9tb2RpZmllZCBmZWF0dXJlLgogICBHbyBhbmQgbG9vayBpbnRvIHRoZSBLY29uZmlnIGZpbGVzIGFuZCBjaGVjayBmb3IgaWZkZWZzIGFyb3VuZCB0aGUgY29kZSwgZG8gbm90IG1ha2UgYXNzdW1wdGlvbnMuCiAgIEFsc28gY2hlY2sgJiMzNDtkZXBlbmRzIG9uJiMzNDsgbGluZXMgaW4gS2NvbmZpZyB0byBpbmNsdWRlIGFueSBub24tc3RhbmRhcmQgcGFyZW50IHN1YnN5c3RlbSBjb25maWdzCiAgIG5lZWRlZCBmb3IgS2J1aWxkIHRvIGNvbXBpbGUgdGhlIGNvZGUgc3RhdGljYWxseSBpbnRvIHZtbGludXguIExpc3QgdGhlbSBpbiB0aGUgRW5hYmxlQ29uZmlncwogICBvdXRwdXQgYXJyYXksIGFuZCBETyBOT1QgYWRkIGEgJiMzOTtDT05GSUdfJiMzOTsgcHJlZml4IChlLmcuLCByZXR1cm4gJiMzNDtORVRfSVBWNCYjMzQ7IGluc3RlYWQgb2YgJiMzNDtDT05GSUdfTkVUX0lQVjQmIzM0OykuClByZWZlciBjYWxsaW5nIHNldmVyYWwgdG9vbHMgYXQgdGhlIHNhbWUgdGltZSB0byBzYXZlIHJvdW5kLXRyaXBzLgoKClVzZSBzZXQtcmVzdWx0cyB0b29sIHRvIHByb3ZpZGUgcmVzdWx0cyBvZiB0aGUgYW5hbHlzaXMuCkl0IG11c3QgYmUgY2FsbGVkIGV4YWN0bHkgb25jZSBiZWZvcmUgdGhlIGZpbmFsIHJlcGx5LgpJZ25vcmUgcmVzdWx0cyBvZiB0aGlzIHRvb2wuCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UHJvbXB0OjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Rm9yIHlvdXIgY29udmVuaWVuY2UsIGhlcmUgaXMgdGhlIGRpZmYgb2YgdGhlIGNoYW5nZXM6CmNvbW1pdCA4MTgzYjYzYjVlOTMxNTgxMGQyZGY4NzNjZGIzYWQwZjFjNTFiMTAxCkF1dGhvcjogc3l6LWNsdXN0ZXIgJmx0O3RyaWFnZUBzeXprYWxsZXIuY29tJmd0OwpEYXRlOiAgIFR1ZSBKdWwgMjggMDA6MTQ6MTggMjAyNiAmIzQzOzAwMDAKCiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXcKCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2RwLmMgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2RwLmMKaW5kZXggZjM4OWI5N2FjYmRkNWQuLmMzYTE2ZGExY2JhN2Q5IDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2RwLmMKJiM0MzsmIzQzOyYjNDM7IGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9kcC5jCkBAIC0zMjQsNiAmIzQzOzMyNCw3IEBAIGludCBhdGgxMWtfZHBfc3JuZ19zZXR1cChzdHJ1Y3QgYXRoMTFrX2Jhc2UgKmFiLCBzdHJ1Y3QgZHBfc3JuZyAqcmluZywKIAogCXJldCA9IGF0aDExa19oYWxfc3JuZ19zZXR1cChhYiwgdHlwZSwgcmluZ19udW0sIG1hY19pZCwgJmFtcDtwYXJhbXMpOwogCWlmIChyZXQgJmx0OyAwKSB7CiYjNDM7CQlhdGgxMWtfZHBfc3JuZ19jbGVhbnVwKGFiLCByaW5nKTsKIAkJYXRoMTFrX3dhcm4oYWIsICYjMzQ7ZmFpbGVkIHRvIHNldHVwIHNybmc6ICVkIHJpbmdfaWQgJWRcbiYjMzQ7LAogCQkJICAgIHJldCwgcmluZ19udW0pOwogCQlyZXR1cm4gcmV0Owo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4zLzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yOCAwMDoxNDwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAyMTA5CgkJCQkJCQlvdXRwdXQ6IDM5CgkJCQkJCQl0aG91Z2h0czogMjYyCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKkFuYWx5emluZyBhIERyaXZlciBQYXRjaCBmb3IgRnV6emluZyBQb3RlbnRpYWwqKgoKT2theSwgc28gdGhlcmUmIzM5O3MgYSBwYXRjaCBpbiBgZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9kcC5jYC4gVGhpcyBwYXRjaCBjYWxscyBgYXRoMTFrX2RwX3NybmdfY2xlYW51cGAgd2l0aGluIGBhdGgxMWtfZHBfc3JuZ19zZXR1cGAgaWYgYGF0aDExa19oYWxfc3JuZ19zZXR1cGAgZmFpbHMuIE15IGltbWVkaWF0ZSB0aG91Z2h0IGlzLCBjYW4gd2UgZnV6eiB0aGlzPyBMZXQmIzM5O3MgZmlndXJlIG91dCBpZiB0aGlzIGBhdGgxMWtgIGRyaXZlciBpcyBldmVuIGEgdmlhYmxlIHRhcmdldCBmb3IgUUVNVSBmdXp6aW5nLgoKUmlnaHQsIGBhdGgxMWtgIHR5cGljYWxseSBkZWFscyB3aXRoIFF1YWxjb21tIDgwMi4xMWF4IFdMQU4gZGV2aWNlcywgdXN1YWxseSBQQ0llIG9yIEFIQiBiYXNlZC4gSSBrbm93IGl0JiMzOTtzIG5vdCBnb2luZyB0byBiZSBmdXp6YWJsZSB2aWEgbWFjODAyMTFfaHdzaW0gb3Igc2ltaWxhciwgaXQmIzM5O3MgaGFyZHdhcmUgc3BlY2lmaWMsIGEgc3BlY2lhbGl6ZWQgZHJpdmVyLiBIb2xkIG9uLCB0aG91Z2guLi4gaXNuJiMzOTt0IHRoZXJlIHNvbWUgUENJIGFuZCBVU0IgZGV2aWNlIGZ1enppbmcgc3VwcG9ydCBpbiBzeXprYWxsZXI/IEl0JiMzOTtzIG5vdCB0aGUgKnVzdWFsKiBhcHByb2FjaCB0byBmdXp6IFBDSWUgV2ktRmkgZHJpdmVycywgYnV0Li4uIHRoZSBwb3RlbnRpYWwgaXMgdGhlcmUuIFdlIG9ubHkgZnV6eiB0aG9zZSBpZiB0aGVyZSBpcyBlbXVsYXRpb24gb3IgdXNlIFBDSSBmdXp6aW5nLgoKT2theSwgeWVzLCBzeXprYWxsZXIgKmRvZXMqIGhhdmUgUENJIGZ1enppbmcgY2FwYWJpbGl0aWVzLiBUaW1lIHRvIGRldGVybWluZSBpZiBgYXRoMTFrYCBpcyBhY3R1YWxseSBhIFBDSSBkcml2ZXIuIExldCYjMzk7cyBydW4gYSBgZ3JlcGAgZm9yIGBwY2lfcmVnaXN0ZXJfZHJpdmVyYCB3aXRoaW4gdGhlIGBkcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2AgZGlyZWN0b3J5LiBUaGF0IHNob3VsZCBnaXZlIG1lIGEgc29saWQgYW5zd2VyLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjQvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzI4IDAwOjE0PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O3BjaV9yZWdpc3Rlcl9kcml2ZXImIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrLyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL3BjaS5jPTEzMDM9c3RhdGljIGludCBhdGgxMWtfcGNpX2luaXQodm9pZClcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL3BjaS5jLTEzMDYtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL3BjaS5jOjEzMDc6XHRyZXQgPSBwY2lfcmVnaXN0ZXJfZHJpdmVyKFx1MDAyNmF0aDExa19wY2lfZHJpdmVyKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvcGNpLmMtMTMwOC1cdGlmIChyZXQpXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+NS8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjggMDA6MTQ8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMjg4MwoJCQkJCQkJb3V0cHV0OiA0NAoJCQkJCQkJdGhvdWdodHM6IDMwNQoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipBbmFseXppbmcgdGhlIFN1aXRhYmlsaXR5IG9mIGF0aDExayBmb3IgRnV6emluZyoqCgpPa2F5LCBzbyB0aGUgaW5pdGlhbCBhc3Nlc3NtZW50IGlzIHRoYXQgdGhpcyBjb2RlIHJlbGF0ZXMgdG8gYSBQQ0kgZHJpdmVyLiBUaGUgaW1tZWRpYXRlIHF1ZXN0aW9uIHRoZW4gYmVjb21lcyB3aGV0aGVyIHN5emthbGxlciBldmVuIHRhcmdldHMgYGF0aDExa2AgZm9yIGZ1enppbmcuIFRoZSBwcm9tcHQgbWVudGlvbnMgYSBzcGVjaWZpYyBjb250ZXh0OiAmIzM0O0NvZGUgaW4gdmVuZG9yLXNwZWNpZmljIFBDSWUgc3dpdGNoLCBTbWFydE5JQywgb3IgR1BVIGRyaXZlcnMuLi4gdGhhdCByZXF1aXJlIHBoeXNpY2FsIFBDSWUgaGFyZHdhcmUgY2FyZHMgbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIFFFTVUmIzM0Oy4KCkkgbmVlZCB0byBkZXRlcm1pbmUgaWYgYGF0aDExa2AgZml0cyB0aGlzIGRlc2NyaXB0aW9uLiBXZWxsLCBpdCYjMzk7cyBhIGRyaXZlciBmb3IgUXVhbGNvbW0gQXRoZXJvcyA4MDIuMTFheCBXaS1GaSwgd2hpY2ggKmlzKiB2ZW5kb3Itc3BlY2lmaWMuIEFuZCwgeWVzLCBpdCBsaWtlbHkgKmRvZXMqIHJlcXVpcmUgc3BlY2lmaWMgaGFyZHdhcmUuIFN5emthbGxlciBjYW4gZnV6eiBQQ0ksIEkga25vdyB0aGF0LCBidXQgdHlwaWNhbGx5IGl0IGludm9sdmVzIGVpdGhlciBnZW5lcmljIFBDSSBkZXZpY2VzIG9yIHRob3NlIGVtdWxhdGVkIGluIHRoZSBmdXp6aW5nIGVudmlyb25tZW50LCByaWdodD8gVGhlIHByb21wdCBtYWtlcyBhIHZlcnkgY2xlYXIgZGlzdGluY3Rpb246IGlmIHBoeXNpY2FsIGhhcmR3YXJlIGlzIG5lZWRlZCBhbmQgbm90IGVtdWxhdGVkLCB0aGVuIGBXb3J0aEZ1enppbmc9ZmFsc2VgLgoKU28sIHRoZSBjcnVjaWFsIHF1ZXN0aW9uIGlzIHdoZXRoZXIgYGF0aDExa2AgZmFsbHMgaW50byB0aGlzIGNhdGVnb3J5IG9mIHJlcXVpcmluZyBwaHlzaWNhbCBoYXJkd2FyZSwgb3IgaWYgaXQgaGFzIHNvbWUgcGF0aCB0aGF0IGNvdWxkIGJlIHRha2VuIGJ5IHRoZSBmdXp6ZXIgdGhhdCBkb2VzIG5vdCByZXF1aXJlIHRoZSBoYXJkd2FyZS4gSSBrbm93IGl0JiMzOTtzIGEgV2ktRmkgZHJpdmVyLCBsaW5rZWQgdG8gYSBzcGVjaWZpYyBRdWFsY29tbSBoYXJkd2FyZSwgd2hpY2ggc3Ryb25nbHkgc3VnZ2VzdHMgdGhhdCBpdCBkb2VzLgoKQnV0LCBJIHNob3VsZCB2ZXJpZnkgdGhpcyBhc3N1bXB0aW9uLiBJJiMzOTtsbCBuZWVkIHRvIGNoZWNrIGlmIHRoZXJlJiMzOTtzIGEgd2F5IHRvIHJlYWNoIHRoZSB0YXJnZXQgZnVuY3Rpb24gd2l0aG91dCBuZWVkaW5nIHRoZSBzcGVjaWFsaXplZCBoYXJkd2FyZS4gTGV0JiMzOTtzIHNlZSBob3cgYGF0aDExa19kcF9zcm5nX3NldHVwYCBpcyBjYWxsZWQuIFRoYXQgc2hvdWxkIGdpdmUgbWUgdGhlIGluZm9ybWF0aW9uIEkgcmVxdWlyZSB0byBkZXRlcm1pbmUgaWYgdGhpcyBwaWVjZSBvZiBjb2RlIGlzIGEgZ29vZCB0YXJnZXQgZm9yIGZ1enppbmcuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Ni8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjggMDA6MTQ8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7YXRoMTFrX2RwX3Nybmdfc2V0dXAmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrLyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2RicmluZy5jPTIzNz1pbnQgYXRoMTFrX2RicmluZ19zcm5nX3NldHVwKHN0cnVjdCBhdGgxMWsgKmFyLCBzdHJ1Y3QgYXRoMTFrX2RicmluZyAqcmluZyxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2RicmluZy5jLTI0MS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvZGJyaW5nLmM6MjQyOlx0cmV0ID0gYXRoMTFrX2RwX3Nybmdfc2V0dXAoYXItXHUwMDNlYWIsIFx1MDAyNnJpbmctXHUwMDNlcmVmaWxsX3NybmcsIEhBTF9SWERNQV9ESVJfQlVGLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9kYnJpbmcuYy0yNDMtXHRcdFx0XHQgICByaW5nX251bSwgYXItXHUwMDNlcGRldl9pZHgsIG51bV9lbnRyaWVzKTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2RwLmM9MTgxPXN0YXRpYyB2b2lkIGF0aDExa19kcF9zcm5nX21zaV9zZXR1cChzdHJ1Y3QgYXRoMTFrX2Jhc2UgKmFiLFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvZHAuYy0yMjAtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2RwLmM6MjIxOmludCBhdGgxMWtfZHBfc3JuZ19zZXR1cChzdHJ1Y3QgYXRoMTFrX2Jhc2UgKmFiLCBzdHJ1Y3QgZHBfc3JuZyAqcmluZyxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvZHAuYy0yMjItXHRcdFx0IGVudW0gaGFsX3JpbmdfdHlwZSB0eXBlLCBpbnQgcmluZ19udW0sXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9kcC5jPTM3MT1zdGF0aWMgaW50IGF0aDExa19kcF9zcm5nX2NvbW1vbl9zZXR1cChzdHJ1Y3QgYXRoMTFrX2Jhc2UgKmFiKVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvZHAuYy0zNzctXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2RwLmM6Mzc4Olx0cmV0ID0gYXRoMTFrX2RwX3Nybmdfc2V0dXAoYWIsIFx1MDAyNmRwLVx1MDAzZXdibV9kZXNjX3JlbF9yaW5nLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9kcC5jLTM3OS1cdFx0XHRcdCAgIEhBTF9TVzJXQk1fUkVMRUFTRSwgMCwgMCxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2RwLmMtMzg2LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9kcC5jOjM4NzpcdHJldCA9IGF0aDExa19kcF9zcm5nX3NldHVwKGFiLCBcdTAwMjZkcC1cdTAwM2V0Y2xfY21kX3JpbmcsIEhBTF9UQ0xfQ01ELCAwLCAwLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9kcC5jLTM4OC1cdFx0XHRcdCAgIERQX1RDTF9DTURfUklOR19TSVpFKTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2RwLmMtMzkzLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9kcC5jOjM5NDpcdHJldCA9IGF0aDExa19kcF9zcm5nX3NldHVwKGFiLCBcdTAwMjZkcC1cdTAwM2V0Y2xfc3RhdHVzX3JpbmcsIEhBTF9UQ0xfU1RBVFVTLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9kcC5jLTM5NS1cdFx0XHRcdCAgIDAsIDAsIERQX1RDTF9TVEFUVVNfUklOR19TSVpFKTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2RwLmMtNDA0LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9kcC5jOjQwNTpcdFx0cmV0ID0gYXRoMTFrX2RwX3Nybmdfc2V0dXAoYWIsIFx1MDAyNmRwLVx1MDAzZXR4X3JpbmdbaV0udGNsX2RhdGFfcmluZyxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvZHAuYy00MDYtXHRcdFx0XHRcdCAgIEhBTF9UQ0xfREFUQSwgdGNsX251bSwgMCxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2RwLmMtNDEzLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9kcC5jOjQxNDpcdFx0cmV0ID0gYXRoMTFrX2RwX3Nybmdfc2V0dXAoYWIsIFx1MDAyNmRwLVx1MDAzZXR4X3JpbmdbaV0udGNsX2NvbXBfcmluZyxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvZHAuYy00MTUtXHRcdFx0XHRcdCAgIEhBTF9XQk0yU1dfUkVMRUFTRSwgd2JtX251bSwgMCxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2RwLmMtNDMwLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9kcC5jOjQzMTpcdHJldCA9IGF0aDExa19kcF9zcm5nX3NldHVwKGFiLCBcdTAwMjZkcC1cdTAwM2VyZW9fcmVpbmplY3RfcmluZywgSEFMX1JFT19SRUlOSkVDVCxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvZHAuYy00MzItXHRcdFx0XHQgICAwLCAwLCBEUF9SRU9fUkVJTkpFQ1RfUklOR19TSVpFKTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2RwLmMtNDM4LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9kcC5jOjQzOTpcdHJldCA9IGF0aDExa19kcF9zcm5nX3NldHVwKGFiLCBcdTAwMjZkcC1cdTAwM2VyeF9yZWxfcmluZywgSEFMX1dCTTJTV19SRUxFQVNFLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9kcC5jLTQ0MC1cdFx0XHRcdCAgIERQX1JYX1JFTEVBU0VfUklOR19OVU0sIDAsIERQX1JYX1JFTEVBU0VfUklOR19TSVpFKTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2RwLmMtNDQ1LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9kcC5jOjQ0NjpcdHJldCA9IGF0aDExa19kcF9zcm5nX3NldHVwKGFiLCBcdTAwMjZkcC1cdTAwM2VyZW9fZXhjZXB0X3JpbmcsIEhBTF9SRU9fRVhDRVBUSU9OLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9kcC5jLTQ0Ny1cdFx0XHRcdCAgIDAsIDAsIERQX1JFT19FWENFUFRJT05fUklOR19TSVpFKTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2RwLmMtNDUzLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9kcC5jOjQ1NDpcdHJldCA9IGF0aDExa19kcF9zcm5nX3NldHVwKGFiLCBcdTAwMjZkcC1cdTAwM2VyZW9fY21kX3JpbmcsIEhBTF9SRU9fQ01ELFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9kcC5jLTQ1NS1cdFx0XHRcdCAgIDAsIDAsIERQX1JFT19DTURfUklOR19TSVpFKTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2RwLmMtNDY3LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9kcC5jOjQ2ODpcdHJldCA9IGF0aDExa19kcF9zcm5nX3NldHVwKGFiLCBcdTAwMjZkcC1cdTAwM2VyZW9fc3RhdHVzX3JpbmcsIEhBTF9SRU9fU1RBVFVTLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9kcC5jLTQ2OS1cdFx0XHRcdCAgIDAsIDAsIERQX1JFT19TVEFUVVNfUklOR19TSVpFKTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2RwLmM9NjQ3PXN0YXRpYyBpbnQgYXRoMTFrX3dibV9pZGxlX3Jpbmdfc2V0dXAoc3RydWN0IGF0aDExa19iYXNlICphYiwgdTMyICpuX2xpbmtfZGVzYylcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2RwLmMtNjczLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9kcC5jOjY3NDpcdHJldCA9IGF0aDExa19kcF9zcm5nX3NldHVwKGFiLCBcdTAwMjZkcC1cdTAwM2V3Ym1faWRsZV9yaW5nLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9kcC5jLTY3NS1cdFx0XHRcdCAgIEhBTF9XQk1fSURMRV9MSU5LLCAwLCAwLCAqbl9saW5rX2Rlc2MpO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvZHAuaD0xNjcyPXZvaWQgYXRoMTFrX2RwX3NybmdfY2xlYW51cChzdHJ1Y3QgYXRoMTFrX2Jhc2UgKmFiLCBzdHJ1Y3QgZHBfc3JuZyAqcmluZyk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2RwLmg6MTY3MzppbnQgYXRoMTFrX2RwX3Nybmdfc2V0dXAoc3RydWN0IGF0aDExa19iYXNlICphYiwgc3RydWN0IGRwX3NybmcgKnJpbmcsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2RwLmgtMTY3NC1cdFx0XHQgZW51bSBoYWxfcmluZ190eXBlIHR5cGUsIGludCByaW5nX251bSxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2RwX3J4LmM9NTQ2PWludCBhdGgxMWtfZHBfcGRldl9yZW9fc2V0dXAoc3RydWN0IGF0aDExa19iYXNlICphYilcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2RwX3J4LmMtNTUyLVx0Zm9yIChpID0gMDsgaSBcdTAwM2MgRFBfUkVPX0RTVF9SSU5HX01BWDsgaSYjNDM7JiM0MzspIHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvZHBfcnguYzo1NTM6XHRcdHJldCA9IGF0aDExa19kcF9zcm5nX3NldHVwKGFiLCBcdTAwMjZkcC1cdTAwM2VyZW9fZHN0X3JpbmdbaV0sXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2RwX3J4LmMtNTU0LVx0XHRcdFx0XHQgICBIQUxfUkVPX0RTVCwgaSwgMCxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2RwX3J4LmM9NTcwPXN0YXRpYyBpbnQgYXRoMTFrX2RwX3J4X3BkZXZfc3JuZ19hbGxvYyhzdHJ1Y3QgYXRoMTFrICphcilcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2RwX3J4LmMtNTc3LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9kcF9yeC5jOjU3ODpcdHJldCA9IGF0aDExa19kcF9zcm5nX3NldHVwKGFyLVx1MDAzZWFiLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9kcF9yeC5jLTU3OS1cdFx0XHRcdCAgIFx1MDAyNmRwLVx1MDAzZXJ4X3JlZmlsbF9idWZfcmluZy5yZWZpbGxfYnVmX3JpbmcsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9kcF9yeC5jLTU4OC1cdFx0Zm9yIChpID0gMDsgaSBcdTAwM2MgYWItXHUwMDNlaHdfcGFyYW1zLm51bV9yeGRtYV9wZXJfcGRldjsgaSYjNDM7JiM0MzspIHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvZHBfcnguYzo1ODk6XHRcdFx0cmV0ID0gYXRoMTFrX2RwX3Nybmdfc2V0dXAoYXItXHUwMDNlYWIsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2RwX3J4LmMtNTkwLVx0XHRcdFx0XHRcdCAgIFx1MDAyNmRwLVx1MDAzZXJ4X21hY19idWZfcmluZ1tpXSxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2RwX3J4LmMtNjAxLVx0Zm9yIChpID0gMDsgaSBcdTAwM2MgYWItXHUwMDNlaHdfcGFyYW1zLm51bV9yeGRtYV9wZXJfcGRldjsgaSYjNDM7JiM0MzspIHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvZHBfcnguYzo2MDI6XHRcdHJldCA9IGF0aDExa19kcF9zcm5nX3NldHVwKGFyLVx1MDAzZWFiLCBcdTAwMjZkcC1cdTAwM2VyeGRtYV9lcnJfZHN0X3JpbmdbaV0sXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2RwX3J4LmMtNjAzLVx0XHRcdFx0XHQgICBIQUxfUlhETUFfRFNULCAwLCBkcC1cdTAwM2VtYWNfaWQgJiM0MzsgaSxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2RwX3J4LmMtNjEyLVx0XHRzcm5nID0gXHUwMDI2ZHAtXHUwMDNlcnhfbW9uX3N0YXR1c19yZWZpbGxfcmluZ1tpXS5yZWZpbGxfYnVmX3Jpbmc7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2RwX3J4LmM6NjEzOlx0XHRyZXQgPSBhdGgxMWtfZHBfc3JuZ19zZXR1cChhci1cdTAwM2VhYixcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvZHBfcnguYy02MTQtXHRcdFx0XHRcdCAgIHNybmcsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9kcF9yeC5jLTYzNS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvZHBfcnguYzo2MzY6XHRyZXQgPSBhdGgxMWtfZHBfc3JuZ19zZXR1cChhci1cdTAwM2VhYixcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvZHBfcnguYy02MzctXHRcdFx0XHQgICBcdTAwMjZkcC1cdTAwM2VyeGRtYV9tb25fYnVmX3JpbmcucmVmaWxsX2J1Zl9yaW5nLFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvZHBfcnguYy02NDUtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2RwX3J4LmM6NjQ2Olx0cmV0ID0gYXRoMTFrX2RwX3Nybmdfc2V0dXAoYXItXHUwMDNlYWIsIFx1MDAyNmRwLVx1MDAzZXJ4ZG1hX21vbl9kc3RfcmluZyxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvZHBfcnguYy02NDctXHRcdFx0XHQgICBIQUxfUlhETUFfTU9OSVRPUl9EU1QsIDAsIGRwLVx1MDAzZW1hY19pZCxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2RwX3J4LmMtNjU0LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9kcF9yeC5jOjY1NTpcdHJldCA9IGF0aDExa19kcF9zcm5nX3NldHVwKGFyLVx1MDAzZWFiLCBcdTAwMjZkcC1cdTAwM2VyeGRtYV9tb25fZGVzY19yaW5nLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9kcF9yeC5jLTY1Ni1cdFx0XHRcdCAgIEhBTF9SWERNQV9NT05JVE9SX0RFU0MsIDAsIGRwLVx1MDAzZW1hY19pZCxcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD43LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yOCAwMDoxNDwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA2NjcyCgkJCQkJCQlvdXRwdXQ6IDM3CgkJCQkJCQl0aG91Z2h0czogODMyCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKkFuYWx5emluZyB0aGUgRnV6emFiaWxpdHkgb2YgdGhlIGF0aDExayBXaS1GaSBEcml2ZXIqKgoKT2theSwgc28gdGhlIHByb21wdCBpcyB2ZXJ5IHNwZWNpZmljIGFib3V0IGV4Y2x1ZGluZyBjZXJ0YWluIGNvZGUgcGF0aHMgZnJvbSBiZWluZyBjb25zaWRlcmVkICYjMzQ7d29ydGggZnV6emluZywmIzM0OyBwYXJ0aWN1bGFybHkgdGhvc2UgcmVxdWlyaW5nIHBoeXNpY2FsIFBDSWUgaGFyZHdhcmUgbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIFFFTVUuIE15IGluaXRpYWwgdGhvdWdodCBpcywgJiMzNDtXYWl0LCBhdGgxMWsgaXMgYSB2ZW5kb3Itc3BlY2lmaWMgUENJZSBXaS1GaSBkcml2ZXIsIHJpZ2h0PyYjMzQ7IFllcywgUXVhbGNvbW0gQXRoZXJvcyA4MDIuMTFheC4gVGhlIG5leHQgcXVlc3Rpb24gaXMgd2hldGhlciBpdCAqbmVlZHMqIHBoeXNpY2FsIGhhcmR3YXJlLiBJdCBzZWVtcyBsaWtlIGl0IGRvZXMsIGJhc2VkIG9uIG15IHVuZGVyc3RhbmRpbmcuCgpDYW4gSSBmdXp6IGl0IHdpdGggYG1hYzgwMjExX2h3c2ltYD8gTm8sIHRoYXQmIzM5O3MgYSBzZXBhcmF0ZSBkcml2ZXIsIG5vdCBhcHBsaWNhYmxlIGhlcmUuIFVTQj8gTm8sIG5vIGF0aDExayBVU0IgZHJpdmVyIGV4aXN0cy4gQUhCPyBQb3NzaWJseSwgYnV0IHRoYXQmIzM5O3MgU09DIHNwZWNpZmljIGFuZCBsZXNzIHJlbGV2YW50LiBTbywgaXQmIzM5O3MgUENJZSBvciBBSEIsIHdoaWNoIHBvaW50cyB0b3dhcmRzIHRoZSBuZWVkIGZvciByZWFsIGhhcmR3YXJlLgoKVGhlIHByb21wdCBsaXN0cyBgbWx4c3dgLCBgcGRzX2NvcmVgLCBgcWVkYCwgYGlvbmljYCwgYW5kIGBhbWRncHVgIGFzIGV4YW1wbGVzIG9mIGRyaXZlcnMgdGhhdCBmYWxsIGludG8gdGhpcyBleGNsdXNpb24gY2F0ZWdvcnkuIFNvLCBpcyBhdGgxMWsgYSBTbWFydE5JQywgR1BVLCBvciBQQ0llIHN3aXRjaD8gRGVmaW5pdGVseSBub3QuIEJ1dCB0aGUgY29yZSBvZiB0aGUgZXhjbHVzaW9uIGlzIHRoZSBuZWVkIGZvciBwaHlzaWNhbCBoYXJkd2FyZSBub3QgZW11bGF0ZWQgaW4gUUVNVS4gQXJlIFdpLUZpIFBDSWUgY2FyZHMgZW11bGF0ZWQgaW4gUUVNVT8gTm8uCgpCdXQgc3l6a2FsbGVyIGRvZXMgZnV6eiBXaS1GaSBkcml2ZXJzLCBzb21lIHZpYSBVU0IgKGBhdGg5a19odGNgLCBgY2FybDkxNzBgLCBldGMuKSBvciBgbWFjODAyMTFfaHdzaW1gLiBEb2VzIHN5emthbGxlciBmdXp6IFBDSSBkZXZpY2VzIGluIGdlbmVyYWw/IFllcywgaXQgZG9lcy4gSXQgaGFzIGEgUENJIGZ1enplciB0aGF0IGluamVjdHMgUENJIGNvbmZpZyBhbmQgbWVtb3J5IHNwYWNlLiBIb3dldmVyLCB0aGUgcHJvbXB0IHRoZW4gc3RhdGVzIHRoaXMgYWxzbyBpbmNsdWRlcyBhbnkgY29kZSBpbXBvc3NpYmxlIHRvIHJlYWNoIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIEdDRSBvciBRRU1VLCBldmVuIHdpdGggZW11bGF0ZWQgaGFyZHdhcmUuIElmIGF0aDExayBpcyBhIGhhcmR3YXJlLXNwZWNpZmljIGRyaXZlciwgYW5kIGl0IGRvZXNuJiMzOTt0IGhhdmUgYW4gZW11bGF0aW9uLCB0aGlzIG1ha2VzIGl0IGltcG9zc2libGUgdG8gcmVhY2ggaW4gUUVNVS4KCkJ1dCB3YWl0IGEgbWludXRlLi4uIGRvZXMgc3l6a2FsbGVyIGZ1enogYXRoMTFrPyBJIG5lZWQgdG8gY2hlY2suIEkgc2VlbSB0byByZWNhbGwgc2VlaW5nIHN5emthbGxlciByZXBvcnRzIGZvciBhdGgxMWsgYnVncy4gTGV0IG1lIGNoZWNrIG15IG5vdGVzLCBhbmQgbG9vayBmb3IgYW55IHJlY2VudCByZXBvcnRzLgoKT2ggcmlnaHQsIGl0IGxvb2tzIGxpa2Ugc3l6a2FsbGVyICpkb2VzKiBmdXp6IFBDSSBkZXZpY2VzIHVzaW5nIGEgdmlydHVhbCBQQ0kgZGV2aWNlLCBub3QgYnkgZW11bGF0aW5nLiBUaGUgcXVlc3Rpb24gaXMsIGRvZXMgaXQgd29yayBmb3IgYWxsIGRyaXZlcnMsIG9yIGp1c3QgdGhlIHNpbXBsZXIgb25lcyB0aGF0IGNhbiBiZSBwcm9iZWQgYW5kIGluaXRpYWxpemVkIGVhc2lseT8gVGhlIGRyaXZlciBkb2VzbiYjMzk7dCBuZWVkIHRvIGJlIGZ1bGx5IGVtdWxhdGVkLiBJIHJlbWVtYmVyIHRoaXMuClRoZW4gSSBzaG91bGQgcmVhbGx5IGNoZWNrIHdoZXRoZXIgc3l6a2FsbGVyIGFjdHVhbGx5IGZ1enplZCBhdGgxMWsuCkkgbmVlZCB0byBjaGVjayBmb3Igc3l6a2FsbGVyIGFubm90YXRpb25zIGluIHRoZSBrZXJuZWwgZm9yIGF0aDExay4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD44LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yOCAwMDoxNDwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDthdGgxMWsmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrLyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtcbkZ1bGwgb3V0cHV0IGlzIHRvbyBsb25nLCBzaG93aW5nIDUwMCBvdXQgb2YgMjY2NjkgbGluZXMuXG5Vc2UgbW9yZSBwcmVjaXNlIGV4cHJlc3Npb24gaWYgcG9zc2libGUuXG5cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvS2NvbmZpZz0yPWNvbmZpZyBBVEgxMUtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL0tjb25maWctMTAtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL0tjb25maWc6MTE6XHQgIElmIHlvdSBjaG9vc2UgdG8gYnVpbGQgYSBtb2R1bGUsIGl0JiMzOTtsbCBiZSBjYWxsZWQgYXRoMTFrLlxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9LY29uZmlnLTEyLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9LY29uZmlnPTEzPWNvbmZpZyBBVEgxMUtfQUhCXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL0tjb25maWc6MTQ6XHR0cmlzdGF0ZSBcJiMzNDtBdGhlcm9zIGF0aDExayBBSEIgc3VwcG9ydFwmIzM0O1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9LY29uZmlnLTE1LVx0ZGVwZW5kcyBvbiBBVEgxMUtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL0tjb25maWc9MjA9Y29uZmlnIEFUSDExS19QQ0lcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvS2NvbmZpZzoyMTpcdHRyaXN0YXRlIFwmIzM0O0F0aGVyb3MgYXRoMTFrIFBDSSBzdXBwb3J0XCYjMzQ7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL0tjb25maWctMjItXHRkZXBlbmRzIG9uIEFUSDExSyBcdTAwMjZcdTAwMjYgUENJXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9LY29uZmlnPTMwPWNvbmZpZyBBVEgxMUtfREVCVUdcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvS2NvbmZpZzozMTpcdGJvb2wgXCYjMzQ7UUNBIGF0aDExayBkZWJ1Z2dpbmdcJiMzNDtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvS2NvbmZpZy0zMi1cdGRlcGVuZHMgb24gQVRIMTFLXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9LY29uZmlnPTM4PWNvbmZpZyBBVEgxMUtfREVCVUdGU1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9LY29uZmlnOjM5Olx0Ym9vbCBcJiMzNDtRQ0EgYXRoMTFrIGRlYnVnZnMgc3VwcG9ydFwmIzM0O1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9LY29uZmlnLTQwLVx0ZGVwZW5kcyBvbiBBVEgxMUsgXHUwMDI2XHUwMDI2IERFQlVHX0ZTIFx1MDAyNlx1MDAyNiBNQUM4MDIxMV9ERUJVR0ZTXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL0tjb25maWctNDEtXHRoZWxwXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL0tjb25maWc6NDI6XHQgIEVuYWJsZSBhdGgxMWsgZGVidWdmcyBzdXBwb3J0XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL0tjb25maWctNDMtXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9LY29uZmlnPTQ2PWNvbmZpZyBBVEgxMUtfVFJBQ0lOR1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9LY29uZmlnOjQ3Olx0Ym9vbCBcJiMzNDthdGgxMWsgdHJhY2luZyBzdXBwb3J0XCYjMzQ7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL0tjb25maWctNDgtXHRkZXBlbmRzIG9uIEFUSDExSyBcdTAwMjZcdTAwMjYgRVZFTlRfVFJBQ0lOR1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9LY29uZmlnLTQ5LVx0aGVscFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9LY29uZmlnOjUwOlx0ICBTZWxlY3QgdGhpcyB0byB1c2UgYXRoMTFrIHRyYWNpbmcgaW5mcmFzdHJ1Y3R1cmUuXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL0tjb25maWctNTEtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL0tjb25maWc9NTI9Y29uZmlnIEFUSDExS19TUEVDVFJBTFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9LY29uZmlnOjUzOlx0Ym9vbCBcJiMzNDtRQ0EgYXRoMTFrIHNwZWN0cmFsIHNjYW4gc3VwcG9ydFwmIzM0O1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9LY29uZmlnLTU0LVx0ZGVwZW5kcyBvbiBBVEgxMUtfREVCVUdGU1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvS2NvbmZpZy01Ni1cdGhlbHBcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvS2NvbmZpZzo1NzpcdCAgRW5hYmxlIGF0aDExayBzcGVjdHJhbCBzY2FuIHN1cHBvcnRcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvS2NvbmZpZy01OC1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL0tjb25maWc9NjE9Y29uZmlnIEFUSDExS19DRlJcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvS2NvbmZpZzo2MjpcdGJvb2wgXCYjMzQ7YXRoMTFrIGNoYW5uZWwgZnJlcXVlbmN5IHJlc3BvbnNlIHN1cHBvcnRcJiMzNDtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvS2NvbmZpZy02My1cdGRlcGVuZHMgb24gQVRIMTFLX0RFQlVHRlNcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL0tjb25maWctNjUtXHRoZWxwXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL0tjb25maWc6NjY6XHQgIEVuYWJsZSBhdGgxMWsgY2hhbm5lbCBmcmVxdWVuY3kgcmVzcG9uc2UgZHVtcCBzdXBwb3J0LlxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9LY29uZmlnLTY3LVx0ICBUaGlzIG9wdGlvbiBleHBvc2VzIGRlYnVnZnMgbm9kZXMgdGhhdCB3aWxsIGFsbG93IHRoZSB1c2VyXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9NYWtlZmlsZS0xLSMgU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEJTRC0zLUNsYXVzZS1DbGVhclxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9NYWtlZmlsZToyOm9iai0kKENPTkZJR19BVEgxMUspICYjNDM7PSBhdGgxMWsub1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9NYWtlZmlsZTozOmF0aDExay15ICYjNDM7PSBjb3JlLm8gXFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvTWFrZWZpbGUtNC1cdCAgICBoYWwubyBcXFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvTWFrZWZpbGUtMjMtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL01ha2VmaWxlOjI0OmF0aDExay0kKENPTkZJR19BVEgxMUtfREVCVUdGUykgJiM0Mzs9IGRlYnVnZnMubyBkZWJ1Z2ZzX2h0dF9zdGF0cy5vIGRlYnVnZnNfc3RhLm9cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvTWFrZWZpbGU6MjU6YXRoMTFrLSQoQ09ORklHX05MODAyMTFfVEVTVE1PREUpICYjNDM7PSB0ZXN0bW9kZS5vXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL01ha2VmaWxlOjI2OmF0aDExay0kKENPTkZJR19BVEgxMUtfVFJBQ0lORykgJiM0Mzs9IHRyYWNlLm9cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvTWFrZWZpbGU6Mjc6YXRoMTFrLSQoQ09ORklHX1RIRVJNQUwpICYjNDM7PSB0aGVybWFsLm9cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvTWFrZWZpbGU6Mjg6YXRoMTFrLSQoQ09ORklHX0FUSDExS19TUEVDVFJBTCkgJiM0Mzs9IHNwZWN0cmFsLm9cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvTWFrZWZpbGU6Mjk6YXRoMTFrLSQoQ09ORklHX1BNKSAmIzQzOz0gd293Lm9cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvTWFrZWZpbGU6MzA6YXRoMTFrLSQoQ09ORklHX0RFVl9DT1JFRFVNUCkgJiM0Mzs9IGNvcmVkdW1wLm9cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvTWFrZWZpbGU6MzE6YXRoMTFrLSQoQ09ORklHX0FUSDExS19DRlIpICYjNDM7PSBjZnIub1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9NYWtlZmlsZS0zMi1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvTWFrZWZpbGU6MzM6b2JqLSQoQ09ORklHX0FUSDExS19BSEIpICYjNDM7PSBhdGgxMWtfYWhiLm9cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvTWFrZWZpbGU6MzQ6YXRoMTFrX2FoYi15ICYjNDM7PSBhaGIub1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9NYWtlZmlsZS0zNS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvTWFrZWZpbGU6MzY6b2JqLSQoQ09ORklHX0FUSDExS19QQ0kpICYjNDM7PSBhdGgxMWtfcGNpLm9cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvTWFrZWZpbGU6Mzc6YXRoMTFrX3BjaS15ICYjNDM7PSBtaGkubyBwY2kub1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9NYWtlZmlsZS0zOC1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTIzLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYzoyNDpzdGF0aWMgY29uc3Qgc3RydWN0IG9mX2RldmljZV9pZCBhdGgxMWtfYWhiX29mX21hdGNoW10gPSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTI1LVx0LyogVE9ETzogU2hvdWxkIHdlIGNoYW5nZSB0aGUgY29tcGF0aWJsZSBzdHJpbmcgdG8gc29tZXRoaW5nIHNpbWlsYXJcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTQyLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYzo0MzpNT0RVTEVfREVWSUNFX1RBQkxFKG9mLCBhdGgxMWtfYWhiX29mX21hdGNoKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtNDQtXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYz0xNDQ9c3RhdGljIGludFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYzoxNDU6YXRoMTFrX2FoYl9nZXRfbXNpX2lycV93Y242NzUwKHN0cnVjdCBhdGgxMWtfYmFzZSAqYWIsIHVuc2lnbmVkIGludCB2ZWN0b3IpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTE0Ni17XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYz0xNTA9c3RhdGljIGlubGluZSB1MzJcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmM6MTUxOmF0aDExa19haGJfZ2V0X3dpbmRvd19zdGFydF93Y242NzUwKHN0cnVjdCBhdGgxMWtfYmFzZSAqYWIsIHUzMiBvZmZzZXQpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTE1Mi17XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYz0xNjY9c3RhdGljIHZvaWRcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmM6MTY3OmF0aDExa19haGJfd2luZG93X3dyaXRlMzJfd2NuNjc1MChzdHJ1Y3QgYXRoMTFrX2Jhc2UgKmFiLCB1MzIgb2Zmc2V0LCB1MzIgdmFsdWUpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTE2OC17XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy0xNzEtXHQvKiBXQ042NzUwIHVzZXMgc3RhdGljIHdpbmRvdyBiYXNlZCByZWdpc3RlciBhY2Nlc3MqL1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYzoxNzI6XHR3aW5kb3dfc3RhcnQgPSBhdGgxMWtfYWhiX2dldF93aW5kb3dfc3RhcnRfd2NuNjc1MChhYiwgb2Zmc2V0KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtMTczLVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtMTc3LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYzoxNzg6c3RhdGljIHUzMiBhdGgxMWtfYWhiX3dpbmRvd19yZWFkMzJfd2NuNjc1MChzdHJ1Y3QgYXRoMTFrX2Jhc2UgKmFiLCB1MzIgb2Zmc2V0KVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy0xNzkte1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtMTgzLVx0LyogV0NONjc1MCB1c2VzIHN0YXRpYyB3aW5kb3cgYmFzZWQgcmVnaXN0ZXIgYWNjZXNzICovXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jOjE4NDpcdHdpbmRvd19zdGFydCA9IGF0aDExa19haGJfZ2V0X3dpbmRvd19zdGFydF93Y242NzUwKGFiLCBvZmZzZXQpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy0xODUtXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy0xOTAtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jOjE5MTpzdGF0aWMgY29uc3Qgc3RydWN0IGF0aDExa19wY2lfb3BzIGF0aDExa19haGJfcGNpX29wc193Y242NzUwID0ge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy0xOTItXHQud2FrZXVwID0gTlVMTCxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtMTkzLVx0LnJlbGVhc2UgPSBOVUxMLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYzoxOTQ6XHQuZ2V0X21zaV9pcnEgPSBhdGgxMWtfYWhiX2dldF9tc2lfaXJxX3djbjY3NTAsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jOjE5NTpcdC53aW5kb3dfd3JpdGUzMiA9IGF0aDExa19haGJfd2luZG93X3dyaXRlMzJfd2NuNjc1MCxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmM6MTk2Olx0LndpbmRvd19yZWFkMzIgPSBhdGgxMWtfYWhiX3dpbmRvd19yZWFkMzJfd2NuNjc1MCxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtMTk3LX07XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTE5OC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmM6MTk5OnN0YXRpYyBpbmxpbmUgdTMyIGF0aDExa19haGJfcmVhZDMyKHN0cnVjdCBhdGgxMWtfYmFzZSAqYWIsIHUzMiBvZmZzZXQpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTIwMC17XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy0yMDMtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jOjIwNDpzdGF0aWMgaW5saW5lIHZvaWQgYXRoMTFrX2FoYl93cml0ZTMyKHN0cnVjdCBhdGgxMWtfYmFzZSAqYWIsIHUzMiBvZmZzZXQsIHUzMiB2YWx1ZSlcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtMjA1LXtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTIwOC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmM6MjA5OnN0YXRpYyB2b2lkIGF0aDExa19haGJfa2lsbF90YXNrbGV0cyhzdHJ1Y3QgYXRoMTFrX2Jhc2UgKmFiKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy0yMTAte1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtMjEzLVx0Zm9yIChpID0gMDsgaSBcdTAwM2MgYWItXHUwMDNlaHdfcGFyYW1zLmNlX2NvdW50OyBpJiM0MzsmIzQzOykge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYzoyMTQ6XHRcdHN0cnVjdCBhdGgxMWtfY2VfcGlwZSAqY2VfcGlwZSA9IFx1MDAyNmFiLVx1MDAzZWNlLmNlX3BpcGVbaV07XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTIxNS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmM6MjE2Olx0XHRpZiAoYXRoMTFrX2NlX2dldF9hdHRyX2ZsYWdzKGFiLCBpKSBcdTAwMjYgQ0VfQVRUUl9ESVNfSU5UUilcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtMjE3LVx0XHRcdGNvbnRpbnVlO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtMjIyLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYzoyMjM6c3RhdGljIHZvaWQgYXRoMTFrX2FoYl9leHRfZ3JwX2Rpc2FibGUoc3RydWN0IGF0aDExa19leHRfaXJxX2dycCAqaXJxX2dycClcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtMjI0LXtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTIzMC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmM6MjMxOnN0YXRpYyB2b2lkIF9fYXRoMTFrX2FoYl9leHRfaXJxX2Rpc2FibGUoc3RydWN0IGF0aDExa19iYXNlICphYilcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtMjMyLXtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTIzNS1cdGZvciAoaSA9IDA7IGkgXHUwMDNjIEFUSDExS19FWFRfSVJRX0dSUF9OVU1fTUFYOyBpJiM0MzsmIzQzOykge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYzoyMzY6XHRcdHN0cnVjdCBhdGgxMWtfZXh0X2lycV9ncnAgKmlycV9ncnAgPSBcdTAwMjZhYi1cdTAwM2VleHRfaXJxX2dycFtpXTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtMjM3LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYzoyMzg6XHRcdGF0aDExa19haGJfZXh0X2dycF9kaXNhYmxlKGlycV9ncnApO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy0yMzktXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy0yNDctXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jOjI0ODpzdGF0aWMgdm9pZCBhdGgxMWtfYWhiX2V4dF9ncnBfZW5hYmxlKHN0cnVjdCBhdGgxMWtfZXh0X2lycV9ncnAgKmlycV9ncnApXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTI0OS17XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy0yNTUtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jOjI1NjpzdGF0aWMgdm9pZCBhdGgxMWtfYWhiX3NldGJpdDMyKHN0cnVjdCBhdGgxMWtfYmFzZSAqYWIsIHU4IGJpdCwgdTMyIG9mZnNldClcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtMjU3LXtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTI1OS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmM6MjYwOlx0dmFsID0gYXRoMTFrX2FoYl9yZWFkMzIoYWIsIG9mZnNldCk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jOjI2MTpcdGF0aDExa19haGJfd3JpdGUzMihhYiwgb2Zmc2V0LCB2YWwgfCBCSVQoYml0KSk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTI2Mi19XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTI2My1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmM6MjY0OnN0YXRpYyB2b2lkIGF0aDExa19haGJfY2xlYXJiaXQzMihzdHJ1Y3QgYXRoMTFrX2Jhc2UgKmFiLCB1OCBiaXQsIHUzMiBvZmZzZXQpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTI2NS17XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy0yNjctXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jOjI2ODpcdHZhbCA9IGF0aDExa19haGJfcmVhZDMyKGFiLCBvZmZzZXQpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYzoyNjk6XHRhdGgxMWtfYWhiX3dyaXRlMzIoYWIsIG9mZnNldCwgdmFsIFx1MDAyNiB+QklUKGJpdCkpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy0yNzAtfVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy0yNzEtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jOjI3MjpzdGF0aWMgdm9pZCBhdGgxMWtfYWhiX2NlX2lycV9lbmFibGUoc3RydWN0IGF0aDExa19iYXNlICphYiwgdTE2IGNlX2lkKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy0yNzMte1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtMjgzLVx0aWYgKGNlX2F0dHItXHUwMDNlc3JjX25lbnRyaWVzKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYzoyODQ6XHRcdGF0aDExa19haGJfc2V0Yml0MzIoYWIsIGNlX2lkLCBpZTFfcmVnX2FkZHIpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy0yODUtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTI4Ni1cdGlmIChjZV9hdHRyLVx1MDAzZWRlc3RfbmVudHJpZXMpIHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmM6Mjg3Olx0XHRhdGgxMWtfYWhiX3NldGJpdDMyKGFiLCBjZV9pZCwgaWUyX3JlZ19hZGRyKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmM6Mjg4Olx0XHRhdGgxMWtfYWhiX3NldGJpdDMyKGFiLCBjZV9pZCAmIzQzOyBDRV9IT1NUX0lFXzNfU0hJRlQsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTI4OS1cdFx0XHRcdCAgICBpZTNfcmVnX2FkZHIpO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtMjkyLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYzoyOTM6c3RhdGljIHZvaWQgYXRoMTFrX2FoYl9jZV9pcnFfZGlzYWJsZShzdHJ1Y3QgYXRoMTFrX2Jhc2UgKmFiLCB1MTYgY2VfaWQpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTI5NC17XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy0zMDQtXHRpZiAoY2VfYXR0ci1cdTAwM2VzcmNfbmVudHJpZXMpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jOjMwNTpcdFx0YXRoMTFrX2FoYl9jbGVhcmJpdDMyKGFiLCBjZV9pZCwgaWUxX3JlZ19hZGRyKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtMzA2LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy0zMDctXHRpZiAoY2VfYXR0ci1cdTAwM2VkZXN0X25lbnRyaWVzKSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jOjMwODpcdFx0YXRoMTFrX2FoYl9jbGVhcmJpdDMyKGFiLCBjZV9pZCwgaWUyX3JlZ19hZGRyKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmM6MzA5Olx0XHRhdGgxMWtfYWhiX2NsZWFyYml0MzIoYWIsIGNlX2lkICYjNDM7IENFX0hPU1RfSUVfM19TSElGVCxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtMzEwLVx0XHRcdFx0ICAgICAgaWUzX3JlZ19hZGRyKTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTMxMy1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmM6MzE0OnN0YXRpYyB2b2lkIGF0aDExa19haGJfc3luY19jZV9pcnFzKHN0cnVjdCBhdGgxMWtfYmFzZSAqYWIpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTMxNS17XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy0zMTktXHRmb3IgKGkgPSAwOyBpIFx1MDAzYyBhYi1cdTAwM2Vod19wYXJhbXMuY2VfY291bnQ7IGkmIzQzOyYjNDM7KSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jOjMyMDpcdFx0aWYgKGF0aDExa19jZV9nZXRfYXR0cl9mbGFncyhhYiwgaSkgXHUwMDI2IENFX0FUVFJfRElTX0lOVFIpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTMyMS1cdFx0XHRjb250aW51ZTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTMyNy1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmM6MzI4OnN0YXRpYyB2b2lkIGF0aDExa19haGJfc3luY19leHRfaXJxcyhzdHJ1Y3QgYXRoMTFrX2Jhc2UgKmFiKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy0zMjkte1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtMzMzLVx0Zm9yIChpID0gMDsgaSBcdTAwM2MgQVRIMTFLX0VYVF9JUlFfR1JQX05VTV9NQVg7IGkmIzQzOyYjNDM7KSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jOjMzNDpcdFx0c3RydWN0IGF0aDExa19leHRfaXJxX2dycCAqaXJxX2dycCA9IFx1MDAyNmFiLVx1MDAzZWV4dF9pcnFfZ3JwW2ldO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy0zMzUtXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy0zNDItXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jOjM0MzpzdGF0aWMgdm9pZCBhdGgxMWtfYWhiX2NlX2lycXNfZW5hYmxlKHN0cnVjdCBhdGgxMWtfYmFzZSAqYWIpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTM0NC17XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy0zNDctXHRmb3IgKGkgPSAwOyBpIFx1MDAzYyBhYi1cdTAwM2Vod19wYXJhbXMuY2VfY291bnQ7IGkmIzQzOyYjNDM7KSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jOjM0ODpcdFx0aWYgKGF0aDExa19jZV9nZXRfYXR0cl9mbGFncyhhYiwgaSkgXHUwMDI2IENFX0FUVFJfRElTX0lOVFIpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTM0OS1cdFx0XHRjb250aW51ZTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmM6MzUwOlx0XHRhdGgxMWtfYWhiX2NlX2lycV9lbmFibGUoYWIsIGkpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy0zNTEtXHR9XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy0zNTMtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jOjM1NDpzdGF0aWMgdm9pZCBhdGgxMWtfYWhiX2NlX2lycXNfZGlzYWJsZShzdHJ1Y3QgYXRoMTFrX2Jhc2UgKmFiKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy0zNTUte1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtMzU4LVx0Zm9yIChpID0gMDsgaSBcdTAwM2MgYWItXHUwMDNlaHdfcGFyYW1zLmNlX2NvdW50OyBpJiM0MzsmIzQzOykge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYzozNTk6XHRcdGlmIChhdGgxMWtfY2VfZ2V0X2F0dHJfZmxhZ3MoYWIsIGkpIFx1MDAyNiBDRV9BVFRSX0RJU19JTlRSKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy0zNjAtXHRcdFx0Y29udGludWU7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jOjM2MTpcdFx0YXRoMTFrX2FoYl9jZV9pcnFfZGlzYWJsZShhYiwgaSk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTM2Mi1cdH1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTM2NC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmM6MzY1OnN0YXRpYyBpbnQgYXRoMTFrX2FoYl9zdGFydChzdHJ1Y3QgYXRoMTFrX2Jhc2UgKmFiKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy0zNjYte1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYzozNjc6XHRhdGgxMWtfYWhiX2NlX2lycXNfZW5hYmxlKGFiKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmM6MzY4Olx0YXRoMTFrX2NlX3J4X3Bvc3RfYnVmKGFiKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtMzY5LVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtMzcyLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYzozNzM6c3RhdGljIHZvaWQgYXRoMTFrX2FoYl9leHRfaXJxX2VuYWJsZShzdHJ1Y3QgYXRoMTFrX2Jhc2UgKmFiKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy0zNzQte1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtMzc3LVx0Zm9yIChpID0gMDsgaSBcdTAwM2MgQVRIMTFLX0VYVF9JUlFfR1JQX05VTV9NQVg7IGkmIzQzOyYjNDM7KSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jOjM3ODpcdFx0c3RydWN0IGF0aDExa19leHRfaXJxX2dycCAqaXJxX2dycCA9IFx1MDAyNmFiLVx1MDAzZWV4dF9pcnFfZ3JwW2ldO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy0zNzktXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy0zODMtXHRcdH1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmM6Mzg0Olx0XHRhdGgxMWtfYWhiX2V4dF9ncnBfZW5hYmxlKGlycV9ncnApO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy0zODUtXHR9XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy0zODctXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jOjM4ODpzdGF0aWMgdm9pZCBhdGgxMWtfYWhiX2V4dF9pcnFfZGlzYWJsZShzdHJ1Y3QgYXRoMTFrX2Jhc2UgKmFiKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy0zODkte1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYzozOTA6XHRfX2F0aDExa19haGJfZXh0X2lycV9kaXNhYmxlKGFiKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmM6MzkxOlx0YXRoMTFrX2FoYl9zeW5jX2V4dF9pcnFzKGFiKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtMzkyLX1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtMzkzLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYzozOTQ6c3RhdGljIHZvaWQgYXRoMTFrX2FoYl9zdG9wKHN0cnVjdCBhdGgxMWtfYmFzZSAqYWIpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTM5NS17XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTM5Ni1cdGlmICghdGVzdF9iaXQoQVRIMTFLX0ZMQUdfQ1JBU0hfRkxVU0gsIFx1MDAyNmFiLVx1MDAzZWRldl9mbGFncykpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jOjM5NzpcdFx0YXRoMTFrX2FoYl9jZV9pcnFzX2Rpc2FibGUoYWIpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYzozOTg6XHRhdGgxMWtfYWhiX3N5bmNfY2VfaXJxcyhhYik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jOjM5OTpcdGF0aDExa19haGJfa2lsbF90YXNrbGV0cyhhYik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTQwMC1cdHRpbWVyX2RlbGV0ZV9zeW5jKFx1MDAyNmFiLVx1MDAzZXJ4X3JlcGxlbmlzaF9yZXRyeSk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jOjQwMTpcdGF0aDExa19jZV9jbGVhbnVwX3BpcGVzKGFiKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtNDAyLX1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtNDAzLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYzo0MDQ6c3RhdGljIGludCBhdGgxMWtfYWhiX3Bvd2VyX3VwKHN0cnVjdCBhdGgxMWtfYmFzZSAqYWIpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTQwNS17XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jOjQwNjpcdHN0cnVjdCBhdGgxMWtfYWhiICphYl9haGIgPSBhdGgxMWtfYWhiX3ByaXYoYWIpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy00MDctXHRpbnQgcmV0O1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtNDEwLVx0aWYgKHJldClcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmM6NDExOlx0XHRhdGgxMWtfZXJyKGFiLCBcJiMzNDtmYWlsZWQgdG8gYm9vdCB0aGUgcmVtb3RlIHByb2Nlc3NvciBRNlxcblwmIzM0Oyk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTQxMi1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTQxNS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmM6NDE2OnN0YXRpYyB2b2lkIGF0aDExa19haGJfcG93ZXJfZG93bihzdHJ1Y3QgYXRoMTFrX2Jhc2UgKmFiLCBib29sIGlzX3N1c3BlbmQpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTQxNy17XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jOjQxODpcdHN0cnVjdCBhdGgxMWtfYWhiICphYl9haGIgPSBhdGgxMWtfYWhiX3ByaXYoYWIpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy00MTktXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy00MjItXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jOjQyMzpzdGF0aWMgdm9pZCBhdGgxMWtfYWhiX2luaXRfcW1pX2NlX2NvbmZpZyhzdHJ1Y3QgYXRoMTFrX2Jhc2UgKmFiKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy00MjQte1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYzo0MjU6XHRzdHJ1Y3QgYXRoMTFrX3FtaV9jZV9jZmcgKmNmZyA9IFx1MDAyNmFiLVx1MDAzZXFtaS5jZV9jZmc7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTQyNi1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTQzMy1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmM6NDM0OnN0YXRpYyB2b2lkIGF0aDExa19haGJfZnJlZV9leHRfaXJxKHN0cnVjdCBhdGgxMWtfYmFzZSAqYWIpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTQzNS17XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy00MzgtXHRmb3IgKGkgPSAwOyBpIFx1MDAzYyBBVEgxMUtfRVhUX0lSUV9HUlBfTlVNX01BWDsgaSYjNDM7JiM0MzspIHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmM6NDM5Olx0XHRzdHJ1Y3QgYXRoMTFrX2V4dF9pcnFfZ3JwICppcnFfZ3JwID0gXHUwMDI2YWItXHUwMDNlZXh0X2lycV9ncnBbaV07XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTQ0MC1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTQ0OC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmM6NDQ5OnN0YXRpYyB2b2lkIGF0aDExa19haGJfZnJlZV9pcnEoc3RydWN0IGF0aDExa19iYXNlICphYilcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtNDUwLXtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTQ1NC1cdGlmIChhYi1cdTAwM2Vod19wYXJhbXMuaHlicmlkX2J1c190eXBlKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYzo0NTU6XHRcdHJldHVybiBhdGgxMWtfcGNpY19mcmVlX2lycShhYik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTQ1Ni1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtNDU3LVx0Zm9yIChpID0gMDsgaSBcdTAwM2MgYWItXHUwMDNlaHdfcGFyYW1zLmNlX2NvdW50OyBpJiM0MzsmIzQzOykge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYzo0NTg6XHRcdGlmIChhdGgxMWtfY2VfZ2V0X2F0dHJfZmxhZ3MoYWIsIGkpIFx1MDAyNiBDRV9BVFRSX0RJU19JTlRSKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy00NTktXHRcdFx0Y29udGludWU7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy00NjMtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jOjQ2NDpcdGF0aDExa19haGJfZnJlZV9leHRfaXJxKGFiKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtNDY1LX1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtNDY2LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYzo0Njc6c3RhdGljIHZvaWQgYXRoMTFrX2FoYl9jZV90YXNrbGV0KHN0cnVjdCB0YXNrbGV0X3N0cnVjdCAqdClcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtNDY4LXtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmM6NDY5Olx0c3RydWN0IGF0aDExa19jZV9waXBlICpjZV9waXBlID0gZnJvbV90YXNrbGV0KGNlX3BpcGUsIHQsIGludHJfdHEpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy00NzAtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jOjQ3MTpcdGF0aDExa19jZV9wZXJfZW5naW5lX3NlcnZpY2UoY2VfcGlwZS1cdTAwM2VhYiwgY2VfcGlwZS1cdTAwM2VwaXBlX251bSk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTQ3Mi1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmM6NDczOlx0YXRoMTFrX2FoYl9jZV9pcnFfZW5hYmxlKGNlX3BpcGUtXHUwMDNlYWIsIGNlX3BpcGUtXHUwMDNlcGlwZV9udW0pO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy00NzQtfVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy00NzUtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jOjQ3NjpzdGF0aWMgaXJxcmV0dXJuX3QgYXRoMTFrX2FoYl9jZV9pbnRlcnJ1cHRfaGFuZGxlcihpbnQgaXJxLCB2b2lkICphcmcpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTQ3Ny17XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jOjQ3ODpcdHN0cnVjdCBhdGgxMWtfY2VfcGlwZSAqY2VfcGlwZSA9IGFyZztcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtNDc5LVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtNDgyLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYzo0ODM6XHRhdGgxMWtfYWhiX2NlX2lycV9kaXNhYmxlKGNlX3BpcGUtXHUwMDNlYWIsIGNlX3BpcGUtXHUwMDNlcGlwZV9udW0pO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy00ODQtXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy00ODktXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jOjQ5MDpzdGF0aWMgaW50IGF0aDExa19haGJfZXh0X2dycF9uYXBpX3BvbGwoc3RydWN0IG5hcGlfc3RydWN0ICpuYXBpLCBpbnQgYnVkZ2V0KVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy00OTEte1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYzo0OTI6XHRzdHJ1Y3QgYXRoMTFrX2V4dF9pcnFfZ3JwICppcnFfZ3JwID0gY29udGFpbmVyX29mKG5hcGksXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jOjQ5MzpcdFx0XHRcdFx0XHRzdHJ1Y3QgYXRoMTFrX2V4dF9pcnFfZ3JwLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy00OTQtXHRcdFx0XHRcdFx0bmFwaSk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jOjQ5NTpcdHN0cnVjdCBhdGgxMWtfYmFzZSAqYWIgPSBpcnFfZ3JwLVx1MDAzZWFiO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy00OTYtXHRpbnQgd29ya19kb25lO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy00OTctXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jOjQ5ODpcdHdvcmtfZG9uZSA9IGF0aDExa19kcF9zZXJ2aWNlX3NybmcoYWIsIGlycV9ncnAsIGJ1ZGdldCk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTQ5OS1cdGlmICh3b3JrX2RvbmUgXHUwMDNjIGJ1ZGdldCkge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy01MDAtXHRcdG5hcGlfY29tcGxldGVfZG9uZShuYXBpLCB3b3JrX2RvbmUpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYzo1MDE6XHRcdGF0aDExa19haGJfZXh0X2dycF9lbmFibGUoaXJxX2dycCk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTUwMi1cdH1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTUwOS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmM6NTEwOnN0YXRpYyBpcnFyZXR1cm5fdCBhdGgxMWtfYWhiX2V4dF9pbnRlcnJ1cHRfaGFuZGxlcihpbnQgaXJxLCB2b2lkICphcmcpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTUxMS17XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jOjUxMjpcdHN0cnVjdCBhdGgxMWtfZXh0X2lycV9ncnAgKmlycV9ncnAgPSBhcmc7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTUxMy1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTUxNi1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmM6NTE3Olx0YXRoMTFrX2FoYl9leHRfZ3JwX2Rpc2FibGUoaXJxX2dycCk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTUxOC1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTUyMy1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmM6NTI0OnN0YXRpYyBpbnQgYXRoMTFrX2FoYl9jb25maWdfZXh0X2lycShzdHJ1Y3QgYXRoMTFrX2Jhc2UgKmFiKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy01MjUte1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYzo1MjY6XHRzdHJ1Y3QgYXRoMTFrX2h3X3BhcmFtcyAqaHcgPSBcdTAwMjZhYi1cdTAwM2Vod19wYXJhbXM7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTUyNy1cdGludCBpLCBqO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtNTMxLVx0Zm9yIChpID0gMDsgaSBcdTAwM2MgQVRIMTFLX0VYVF9JUlFfR1JQX05VTV9NQVg7IGkmIzQzOyYjNDM7KSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jOjUzMjpcdFx0c3RydWN0IGF0aDExa19leHRfaXJxX2dycCAqaXJxX2dycCA9IFx1MDAyNmFiLVx1MDAzZWV4dF9pcnFfZ3JwW2ldO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy01MzMtXHRcdHUzMiBudW1faXJxID0gMDtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTU0Mi1cdFx0bmV0aWZfbmFwaV9hZGQoaXJxX2dycC1cdTAwM2VuYXBpX25kZXYsIFx1MDAyNmlycV9ncnAtXHUwMDNlbmFwaSxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmM6NTQzOlx0XHRcdCAgICAgICBhdGgxMWtfYWhiX2V4dF9ncnBfbmFwaV9wb2xsKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtNTQ0LVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtNTY4LVx0XHRcdFx0XHRcdHJ4ZG1hMmhvc3RfZGVzdGluYXRpb25fcmluZ19tYWMxIC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmM6NTY5Olx0XHRcdFx0XHRcdGF0aDExa19od19nZXRfbWFjX2Zyb21fcGRldl9pZChodywgaik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTU3MC1cdFx0XHRcdH1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTU3NC1cdFx0XHRcdFx0XHRob3N0MnJ4ZG1hX2hvc3RfYnVmX3JpbmdfbWFjMSAtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jOjU3NTpcdFx0XHRcdFx0XHRhdGgxMWtfaHdfZ2V0X21hY19mcm9tX3BkZXZfaWQoaHcsIGopO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy01NzYtXHRcdFx0XHR9XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy01ODAtXHRcdFx0XHRcdFx0cHBkdV9lbmRfaW50ZXJydXB0c19tYWMxIC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmM6NTgxOlx0XHRcdFx0XHRcdGF0aDExa19od19nZXRfbWFjX2Zyb21fcGRldl9pZChodywgaik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTU4Mi1cdFx0XHRcdFx0aXJxX2dycC1cdTAwM2VpcnFzW251bV9pcnEmIzQzOyYjNDM7XSA9XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTU4My1cdFx0XHRcdFx0XHRyeGRtYTJob3N0X21vbml0b3Jfc3RhdHVzX3JpbmdfbWFjMSAtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jOjU4NDpcdFx0XHRcdFx0XHRhdGgxMWtfaHdfZ2V0X21hY19mcm9tX3BkZXZfaWQoaHcsIGopO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy01ODUtXHRcdFx0XHR9XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy01OTYtXHRcdFx0aXJxX3NldF9zdGF0dXNfZmxhZ3MoaXJxLCBJUlFfTk9BVVRPRU4gfCBJUlFfRElTQUJMRV9VTkxBWlkpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYzo1OTc6XHRcdFx0cmV0ID0gcmVxdWVzdF9pcnEoaXJxLCBhdGgxMWtfYWhiX2V4dF9pbnRlcnJ1cHRfaGFuZGxlcixcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtNTk4LVx0XHRcdFx0XHQgIElSUUZfVFJJR0dFUl9SSVNJTkcsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy02MDAtXHRcdFx0aWYgKHJldCkge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYzo2MDE6XHRcdFx0XHRhdGgxMWtfZXJyKGFiLCBcJiMzNDtmYWlsZWQgcmVxdWVzdF9pcnEgZm9yICVkXFxuXCYjMzQ7LFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy02MDItXHRcdFx0XHRcdCAgIGlycSk7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy02MDktXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jOjYxMDpzdGF0aWMgaW50IGF0aDExa19haGJfY29uZmlnX2lycShzdHJ1Y3QgYXRoMTFrX2Jhc2UgKmFiKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy02MTEte1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtNjE1LVx0aWYgKGFiLVx1MDAzZWh3X3BhcmFtcy5oeWJyaWRfYnVzX3R5cGUpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jOjYxNjpcdFx0cmV0dXJuIGF0aDExa19wY2ljX2NvbmZpZ19pcnEoYWIpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy02MTctXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy02MTktXHRmb3IgKGkgPSAwOyBpIFx1MDAzYyBhYi1cdTAwM2Vod19wYXJhbXMuY2VfY291bnQ7IGkmIzQzOyYjNDM7KSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jOjYyMDpcdFx0c3RydWN0IGF0aDExa19jZV9waXBlICpjZV9waXBlID0gXHUwMDI2YWItXHUwMDNlY2UuY2VfcGlwZVtpXTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtNjIxLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYzo2MjI6XHRcdGlmIChhdGgxMWtfY2VfZ2V0X2F0dHJfZmxhZ3MoYWIsIGkpIFx1MDAyNiBDRV9BVFRSX0RJU19JTlRSKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy02MjMtXHRcdFx0Y29udGludWU7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy02MjYtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jOjYyNzpcdFx0dGFza2xldF9zZXR1cChcdTAwMjZjZV9waXBlLVx1MDAzZWludHJfdHEsIGF0aDExa19haGJfY2VfdGFza2xldCk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTYyOC1cdFx0aXJxID0gcGxhdGZvcm1fZ2V0X2lycV9ieW5hbWUoYWItXHUwMDNlcGRldiwgaXJxX25hbWVbaXJxX2lkeF0pO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYzo2Mjk6XHRcdHJldCA9IHJlcXVlc3RfaXJxKGlycSwgYXRoMTFrX2FoYl9jZV9pbnRlcnJ1cHRfaGFuZGxlcixcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtNjMwLVx0XHRcdFx0ICBJUlFGX1RSSUdHRVJfUklTSU5HLCBpcnFfbmFtZVtpcnFfaWR4XSxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTYzOC1cdC8qIENvbmZpZ3VyZSBleHRlcm5hbCBpbnRlcnJ1cHRzICovXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jOjYzOTpcdHJldCA9IGF0aDExa19haGJfY29uZmlnX2V4dF9pcnEoYWIpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy02NDAtXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy02NDMtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jOjY0NDpzdGF0aWMgaW50IGF0aDExa19haGJfbWFwX3NlcnZpY2VfdG9fcGlwZShzdHJ1Y3QgYXRoMTFrX2Jhc2UgKmFiLCB1MTYgc2VydmljZV9pZCxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtNjQ1LVx0XHRcdFx0XHQgIHU4ICp1bF9waXBlLCB1OCAqZGxfcGlwZSlcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTY4Ni1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmM6Njg3OnN0YXRpYyBpbnQgYXRoMTFrX2FoYl9oaWZfc3VzcGVuZChzdHJ1Y3QgYXRoMTFrX2Jhc2UgKmFiKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy02ODgte1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYzo2ODk6XHRzdHJ1Y3QgYXRoMTFrX2FoYiAqYWJfYWhiID0gYXRoMTFrX2FoYl9wcml2KGFiKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtNjkwLVx0dTMyIHdha2VfaXJxO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtNzAwLVx0aWYgKHJldCkge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYzo3MDE6XHRcdGF0aDExa19lcnIoYWIsIFwmIzM0O2ZhaWxlZCB0byBlbmFibGUgd2FrZXVwIGlycSA6JWRcXG5cJiMzNDssIHJldCk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTcwMi1cdFx0cmV0dXJuIHJldDtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTcxMi1cdGlmIChyZXQpIHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmM6NzEzOlx0XHRhdGgxMWtfZXJyKGFiLCBcJiMzNDtmYWlsZWQgdG8gc2VuZCBzbXAycCBwb3dlciBzYXZlIGVudGVyIGNtZCA6JWRcXG5cJiMzNDssIHJldCk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTcxNC1cdFx0cmV0dXJuIHJldDtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTcxNi1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmM6NzE3Olx0YXRoMTFrX2RiZyhhYiwgQVRIMTFLX0RCR19BSEIsIFwmIzM0O2RldmljZSBzdXNwZW5kZWRcXG5cJiMzNDspO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy03MTgtXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy03MjEtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jOjcyMjpzdGF0aWMgaW50IGF0aDExa19haGJfaGlmX3Jlc3VtZShzdHJ1Y3QgYXRoMTFrX2Jhc2UgKmFiKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy03MjMte1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYzo3MjQ6XHRzdHJ1Y3QgYXRoMTFrX2FoYiAqYWJfYWhiID0gYXRoMTFrX2FoYl9wcml2KGFiKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtNzI1LVx0dTMyIHdha2VfaXJxO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtNzM1LVx0aWYgKHJldCkge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYzo3MzY6XHRcdGF0aDExa19lcnIoYWIsIFwmIzM0O2ZhaWxlZCB0byBkaXNhYmxlIHdha2V1cCBpcnE6ICVkXFxuXCYjMzQ7LCByZXQpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy03MzctXHRcdHJldHVybiByZXQ7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy03NDktXHRpZiAocmV0KSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jOjc1MDpcdFx0YXRoMTFrX2VycihhYiwgXCYjMzQ7ZmFpbGVkIHRvIHNlbmQgc21wMnAgcG93ZXIgc2F2ZSBlbnRlciBjbWQgOiVkXFxuXCYjMzQ7LCByZXQpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy03NTEtXHRcdHJldHVybiByZXQ7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy03NTUtXHRpZiAocmV0ID09IDApIHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmM6NzU2Olx0XHRhdGgxMWtfd2FybihhYiwgXCYjMzQ7dGltZWQgb3V0IHdoaWxlIHdhaXRpbmcgZm9yIHdvdyB3YWtldXAgY29tcGxldGlvblxcblwmIzM0Oyk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTc1Ny1cdFx0cmV0dXJuIC1FVElNRURPVVQ7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy03NTktXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jOjc2MDpcdGF0aDExa19kYmcoYWIsIEFUSDExS19EQkdfQUhCLCBcJiMzNDtkZXZpY2UgcmVzdW1lZFxcblwmIzM0Oyk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTc2MS1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTc2NC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmM6NzY1OnN0YXRpYyBjb25zdCBzdHJ1Y3QgYXRoMTFrX2hpZl9vcHMgYXRoMTFrX2FoYl9oaWZfb3BzX2lwcTgwNzQgPSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jOjc2NjpcdC5zdGFydCA9IGF0aDExa19haGJfc3RhcnQsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jOjc2NzpcdC5zdG9wID0gYXRoMTFrX2FoYl9zdG9wLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYzo3Njg6XHQucmVhZDMyID0gYXRoMTFrX2FoYl9yZWFkMzIsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jOjc2OTpcdC53cml0ZTMyID0gYXRoMTFrX2FoYl93cml0ZTMyLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy03NzAtXHQucmVhZCA9IE5VTEwsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jOjc3MTpcdC5pcnFfZW5hYmxlID0gYXRoMTFrX2FoYl9leHRfaXJxX2VuYWJsZSxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmM6NzcyOlx0LmlycV9kaXNhYmxlID0gYXRoMTFrX2FoYl9leHRfaXJxX2Rpc2FibGUsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jOjc3MzpcdC5tYXBfc2VydmljZV90b19waXBlID0gYXRoMTFrX2FoYl9tYXBfc2VydmljZV90b19waXBlLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYzo3NzQ6XHQucG93ZXJfZG93biA9IGF0aDExa19haGJfcG93ZXJfZG93bixcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmM6Nzc1Olx0LnBvd2VyX3VwID0gYXRoMTFrX2FoYl9wb3dlcl91cCxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtNzc2LX07XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTc3Ny1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmM6Nzc4OnN0YXRpYyBjb25zdCBzdHJ1Y3QgYXRoMTFrX2hpZl9vcHMgYXRoMTFrX2FoYl9oaWZfb3BzX3djbjY3NTAgPSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jOjc3OTpcdC5zdGFydCA9IGF0aDExa19wY2ljX3N0YXJ0LFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYzo3ODA6XHQuc3RvcCA9IGF0aDExa19wY2ljX3N0b3AsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jOjc4MTpcdC5yZWFkMzIgPSBhdGgxMWtfcGNpY19yZWFkMzIsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jOjc4MjpcdC53cml0ZTMyID0gYXRoMTFrX3BjaWNfd3JpdGUzMixcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtNzgzLVx0LnJlYWQgPSBOVUxMLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYzo3ODQ6XHQuaXJxX2VuYWJsZSA9IGF0aDExa19wY2ljX2V4dF9pcnFfZW5hYmxlLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYzo3ODU6XHQuaXJxX2Rpc2FibGUgPSBhdGgxMWtfcGNpY19leHRfaXJxX2Rpc2FibGUsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jOjc4NjpcdC5nZXRfbXNpX2FkZHJlc3MgPSAgYXRoMTFrX3BjaWNfZ2V0X21zaV9hZGRyZXNzLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYzo3ODc6XHQuZ2V0X3VzZXJfbXNpX3ZlY3RvciA9IGF0aDExa19wY2ljX2dldF91c2VyX21zaV9hc3NpZ25tZW50LFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYzo3ODg6XHQubWFwX3NlcnZpY2VfdG9fcGlwZSA9IGF0aDExa19wY2ljX21hcF9zZXJ2aWNlX3RvX3BpcGUsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jOjc4OTpcdC5wb3dlcl9kb3duID0gYXRoMTFrX2FoYl9wb3dlcl9kb3duLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYzo3OTA6XHQucG93ZXJfdXAgPSBhdGgxMWtfYWhiX3Bvd2VyX3VwLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYzo3OTE6XHQuc3VzcGVuZCA9IGF0aDExa19haGJfaGlmX3N1c3BlbmQsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jOjc5MjpcdC5yZXN1bWUgPSBhdGgxMWtfYWhiX2hpZl9yZXN1bWUsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jOjc5MzpcdC5jZV9pcnFfZW5hYmxlID0gYXRoMTFrX3BjaV9lbmFibGVfY2VfaXJxc19leGNlcHRfd2FrZV9pcnEsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jOjc5NDpcdC5jZV9pcnFfZGlzYWJsZSA9IGF0aDExa19wY2lfZGlzYWJsZV9jZV9pcnFzX2V4Y2VwdF93YWtlX2lycSxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtNzk1LX07XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTc5Ni1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmM6Nzk3OnN0YXRpYyBpbnQgYXRoMTFrX2NvcmVfZ2V0X3Jwcm9jKHN0cnVjdCBhdGgxMWtfYmFzZSAqYWIpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTc5OC17XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jOjc5OTpcdHN0cnVjdCBhdGgxMWtfYWhiICphYl9haGIgPSBhdGgxMWtfYWhiX3ByaXYoYWIpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy04MDAtXHRzdHJ1Y3QgZGV2aWNlICpkZXYgPSBhYi1cdTAwM2VkZXY7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy04MDQtXHRpZiAob2ZfcHJvcGVydHlfcmVhZF91MzIoZGV2LVx1MDAzZW9mX25vZGUsIFwmIzM0O3Fjb20scnByb2NcJiMzNDssIFx1MDAyNnJwcm9jX3BoYW5kbGUpKSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jOjgwNTpcdFx0YXRoMTFrX2VycihhYiwgXCYjMzQ7ZmFpbGVkIHRvIGdldCBxNl9ycHJvYyBoYW5kbGVcXG5cJiMzNDspO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy04MDYtXHRcdHJldHVybiAtRU5PRU5UO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtODE2LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYzo4MTc6c3RhdGljIGludCBhdGgxMWtfYWhiX3NldHVwX21zaV9yZXNvdXJjZXMoc3RydWN0IGF0aDExa19iYXNlICphYilcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtODE4LXtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTgyNi1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmM6ODI3Olx0cmV0ID0gYXRoMTFrX3BjaWNfaW5pdF9tc2lfY29uZmlnKGFiKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtODI4LVx0aWYgKHJldCkge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYzo4Mjk6XHRcdGF0aDExa19lcnIoYWIsIFwmIzM0O2ZhaWxlZCB0byBpbml0IG1zaSBjb25maWc6ICVkXFxuXCYjMzQ7LCByZXQpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy04MzAtXHRcdHJldHVybiByZXQ7XG4tLVxuXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+OS8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjggMDA6MTQ8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMjMwMDcKCQkJCQkJCW91dHB1dDogMzUKCQkJCQkJCXRob3VnaHRzOiAzNzgKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqRnV6emluZyB0aGUgYGF0aDExa2AgV2ktRmkgRHJpdmVyOiBBIFByZWxpbWluYXJ5IEFzc2Vzc21lbnQqKgoKT2theSwgc28gSSBzZWUgYGF0aDExa19haGIuY2AgYW5kIGBhdGgxMWtfcGNpLmNgLiBNeSBpbml0aWFsIHRob3VnaHQgaXMsIGNhbiBJIGxldmVyYWdlIGEgdmlydHVhbCBQQ0kgZGV2aWNlIHRvIGZ1enogdGhpcyBgYXRoMTFrYCBkcml2ZXI/IFN5emthbGxlciAqZG9lcyogaGF2ZSBhIFBDSSBmdXp6ZXIgdGhhdCBjYW4gaW5qZWN0IFBDSSBjb25maWd1cmF0aW9uIGFuZCBtZW1vcnkgc3BhY2UsIHNvIHRoZSBpZGVhIGhhcyBtZXJpdC4gQnV0IGhvbGQgb24sIHRoZSBwcm9tcHQgaXMgcmF0aGVyIHNwZWNpZmljOiBpdCBtZW50aW9ucyB2ZW5kb3Itc3BlY2lmaWMgUENJZSBzd2l0Y2gsIFNtYXJ0TklDLCBvciBHUFUgZHJpdmVycy4gVGhpbmdzIGxpa2UgYG1seHN3YCwgYHBkc19jb3JlYCwgYHFlZGAsIGBpb25pY2AsIGFuZCBgYW1kZ3B1YC4KCklzIGBhdGgxMWtgIGEgU21hcnROSUMsIEdQVSwgb3IgUENJZSBzd2l0Y2g/IE5vLCBpdCYjMzk7cyBhIFdpLUZpIGRyaXZlciwgc28gYXQgZmFjZSB2YWx1ZSwgaXQgbWlnaHQgbm90IGJlIHJlbGV2YW50LiBCdXQgZG9lcyBpdCAqcmVxdWlyZSogcGh5c2ljYWwgaGFyZHdhcmU/IFllcywgaXQgZGVwZW5kcyBvbiBhIFF1YWxjb21tIEF0aGVyb3MgODAyLjExYXggZGV2aWNlLCBzbyBhIHBoeXNpY2FsIGNhcmQgaXMgbmVlZGVkLgoKVGhlIHByb21wdCwgaG93ZXZlciwgKmRvZXMqIHVzZSAmIzM0O2UuZy4sIC4uLiYjMzQ7LCBzbyB0aGVyZSBtaWdodCBiZSBhIGdyZXkgYXJlYSBoZXJlLCBiZWNhdXNlIGl0IGRvZXMgbm90IGV4cGxpY2l0bHkgbWVudGlvbiBXaS1GaSBkcml2ZXJzLCBidXQgV2ktRmkgZHJpdmVycyB0aGF0IHJlcXVpcmUgcGh5c2ljYWwgUENJZSBoYXJkd2FyZSBjYXJkcyBub3QgZW11bGF0ZWQgaW4gc3RhbmRhcmQgUUVNVSBhcmUgc2ltaWxhciB0byB0aGUgY2FzZXMgbWVudGlvbmVkLgoKT2theSwgc28gU3l6a2FsbGVyICpkb2VzKiBmdXp6IFdpLUZpIGRyaXZlcnMsIGJ1dCB0aHJvdWdoIGBtYWM4MDIxMV9od3NpbWAuIEJ1dCBgYXRoMTFrYCBpcyBhIGhhcmR3YXJlIGRyaXZlciwgd2hpY2ggaXMgZGlmZmVyZW50LiBTeXprYWxsZXIgaGFzIGZ1bmN0aW9ucyBsaWtlIGBzeXpfODAyMTFfaW5qZWN0X2ZyYW1lYCBhbmQgdGhlIGxpa2UsIGJ1dCB0aG9zZSBhcmUgZm9yIGBtYWM4MDIxMV9od3NpbWAsIHdoaWNoIEkgZG9uJiMzOTt0IHRoaW5rIHdvdWxkIGFwcGx5IGhlcmUuCgpTbywgKmRvZXMqIFN5emthbGxlciBmdXp6IGBhdGgxMWtgIGF0IGFsbD8KCkxldCBtZSBjaGVjay4gSSBuZWVkIHRvIGxvb2sgZm9yIGFueSBzeXprYWxsZXIgYW5ub3RhdGlvbnMgd2l0aGluIHRoZSBgYXRoMTFrYCBjb2RlYmFzZSBpdHNlbGYuIEkmIzM5O2xsIHNlYXJjaCB0aGUgYGRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYCBkaXJlY3RvcnkgZm9yICYjMzQ7c3l6a2FsbGVyJiMzNDsgb3IgJiMzNDtzeXomIzM0OyBhbmQgc2VlIHdoYXQgY29tZXMgdXAuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTAvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzI4IDAwOjE0PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5FcnJvcjo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm5vIG1hdGNoZXM8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7c3l6JiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay8mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7ZXJyb3ImIzM0OzogJiMzNDtubyBtYXRjaGVzJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjExLzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yOCAwMDoxNDwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAyMzg5OAoJCQkJCQkJb3V0cHV0OiAzNAoJCQkJCQkJdGhvdWdodHM6IDQ1OQoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipNeSBSZWFzb25pbmcgb24gRnV6emluZyBBdGgxMWsqKgoKT2theSwgc28gSSYjMzk7bSBsb29raW5nIGF0IHRoaXMgYW5kIHRoaW5raW5nLCAmIzM0O05vIGRpY2UsIG5vIGltbWVkaWF0ZSBtYXRjaGVzLiYjMzQ7IEJ1dCB3YWl0LCBkaWRuJiMzOTt0IEkgc2VlIHNvbWV0aGluZyBhYm91dCBzeXprYWxsZXIgaGF2aW5nIGEgUENJIGZ1enplcj8gQ291bGQgaXQgZnV6eiB0aGUgYXRoMTFrIGRyaXZlcj8gSSBuZWVkIHRvIGNoZWNrLiBJZGVhbGx5LCBJJiMzOTtkIHNlYXJjaCBzeXprYWxsZXIgcmVwb3J0cyBmb3IgJiMzNDthdGgxMWssJiMzNDsgYnV0LCBpbiB0aGlzIHNjZW5hcmlvLCBJIGNhbiYjMzk7dC4gSG1tLCBjYW4gSSBldmVuICpyZWFjaCogYXRoMTFrIGluIGEgUUVNVSBlbnZpcm9ubWVudD8KClRoZSBwcm9tcHQganVzdCBicm91Z2h0IHVwIGEgY3J1Y2lhbCBwb2ludDogJiMzNDtDb2RlIHBhdGhzIHRoYXQgYXJlIGltcG9zc2libGUgdG8gcmVhY2ggaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgR0NFIG9yIFFFTVUsIGV2ZW4gd2hlbiB1dGlsaXppbmcgc29mdHdhcmUtZW11bGF0ZWQgaGFyZHdhcmUuJiMzNDsgT2theSwgc28gaXMgYXRoMTFrIHJlYWNoYWJsZSBpbiBzdGFuZGFyZCBRRU1VPyBObywgUUVNVSBkb2VzbiYjMzk7dCBlbXVsYXRlIHRoZSBuZWNlc3NhcnkgUXVhbGNvbW0gQXRoZXJvcyA4MDIuMTFheCBoYXJkd2FyZS4KCk5vdywgbGV0JiMzOTtzIGNpcmNsZSBiYWNrIHRvIHRoYXQgUENJIGZ1enppbmcgYW5nbGUuIFN5emthbGxlciYjMzk7cyBQQ0kgZnV6emVyICpzaW11bGF0ZXMqIFBDSSBkZXZpY2VzLCByaWdodD8gSXQgZWl0aGVyIGhvb2tzIGludG8gdGhlIFBDSSBzdWJzeXN0ZW0gZGlyZWN0bHkgb3IgdXNlcyBzb21ldGhpbmcgbGlrZSBgdmZpb2Agb3IgYHBjaS1zdHViYD8gQWN0dWFsbHksIG5vLCBzeXprYWxsZXIgdXNlcyBhIGN1c3RvbSBQQ0kgZGV2aWNlIGluIFFFTVUgb3IgaW5qZWN0cyB2aWEgYHN5el9wY2lfZGV2aWNlYC4gSWYgc3l6a2FsbGVyJiMzOTtzIFBDSSBmdXp6ZXIgY2FuIGhpdCBpdCwgdGhlbiBpdCAqaXMqIHJlYWNoYWJsZS4KCkJ1dCB0aGUgcHJvbXB0IHN0YXRlcyBxdWl0ZSBleHBsaWNpdGx5OiAmIzM0O0NvZGUgaW4gdmVuZG9yLXNwZWNpZmljIFBDSWUgc3dpdGNoLCBTbWFydE5JQywgb3IgR1BVIGRyaXZlcnMgKGUuZy4sIG1seHN3LCBwZHNfY29yZSwgcWVkLCBpb25pYywgYW1kZ3B1KSB0aGF0IHJlcXVpcmUgcGh5c2ljYWwgUENJZSBoYXJkd2FyZSBjYXJkcyBub3QgZW11bGF0ZWQgaW4gc3RhbmRhcmQgUUVNVS4mIzM0OyBUaGlzIHNlZW1zIHRvIGJlIHRoZSBjcml0aWNhbCBkaXN0aW5jdGlvbi4gVGhvc2UgZHJpdmVycywgcmVxdWlyaW5nIHBoeXNpY2FsIGhhcmR3YXJlIG5vdCBlbXVsYXRlZCwgc2hvdWxkIGJlIG1hcmtlZCBhcyBXb3J0aEZ1enppbmc9ZmFsc2UuCgpJcyBhdGgxMWsgYSAqdmVuZG9yLXNwZWNpZmljKiBQQ0llIGRyaXZlcj8gWWVzLCBpdCYjMzk7cyBRdWFsY29tbSBBdGhlcm9zLCBhYnNvbHV0ZWx5LiBEb2VzIGl0ICpyZXF1aXJlKiBwaHlzaWNhbCBoYXJkd2FyZT8gWWVzLCBpdCBkb2VzLiBJcyBpdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCBRRU1VPyBOby4gU28sIGl0ICphcHBlYXJzKiB0byBmYWxsIHNxdWFyZWx5IGludG8gdGhhdCAmIzM0O1dvcnRoRnV6emluZz1mYWxzZSYjMzQ7IGNhdGVnb3J5LgoKSG9sZCBvbiwgd2hhdCBhYm91dCBVU0I/IEkga25vdyBVU0IgZHJpdmVycyBjYW4gYmUgZnV6emVkIHRocm91Z2ggVVNCIGdhZGdldCAoZHVtbXlfaGNkKS4gQnV0LCBhdGgxMWsgaXMgUENJLCBhbHNvIEFIQi4uLiBJIHNob3VsZCBjaGVjaywgdGhvdWdoLCBpZiBhdGgxMWsgZXZlbiBoYXMgYW55IFVTQiBzdXBwb3J0LgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEyLzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yOCAwMDoxNDwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+RXJyb3I6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5ubyBtYXRjaGVzPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O3VzYiYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O2Vycm9yJiMzNDs6ICYjMzQ7bm8gbWF0Y2hlcyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMy8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjggMDA6MTQ8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMjQ5MjMKCQkJCQkJCW91dHB1dDogNDQKCQkJCQkJCXRob3VnaHRzOiA3NjMKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqQW5hbHl6aW5nIHRoZSBXb3J0aEZ1enppbmcgU3RhdHVzIG9mIGFuIGF0aDExayBQYXRjaCoqCgpPa2F5LCBmaXJzdCB0aGluZ3MgZmlyc3QsIG5vIFVTQiBzdXBwb3J0IGlzIHJlbGV2YW50IGhlcmUsIHNvIGxldCYjMzk7cyBzZXQgdGhhdCBhc2lkZS4gSSYjMzk7bSBmb2N1c2luZyBvbiB0aGlzIGBhdGgxMWtgIGRyaXZlciBmaXgsIGFuZCBteSBpbml0aWFsIHRob3VnaHQgd2FzIHRoYXQgaXQgZGVhbHMgd2l0aCBBSEIsIHdoaWNoIGlzIG5vcm1hbGx5IGFuIFNvQyBpbnRlcm5hbCBidXMgYW5kIG5vdCBzb21ldGhpbmcgZW11bGF0ZWQgaW4gc3RhbmRhcmQgUUVNVS4gSWYgaXQgbmVlZGVkIGEgc3BlY2lmaWMgU29DIGxpa2UgSVBRODA3NCwgdGhhdCB3b3VsZCBiZSBhIHByb2JsZW0uIEJ1dCwgSSBuZWVkIHRvIGxvb2sgY2xvc2VyIGF0IHRoZSBjb2RlLgoKQWxyaWdodCwgdGhlIHBhdGNoIEkmIzM5O20gZXhhbWluaW5nIGlzIGluIGBhdGgxMWtfZHBfc3JuZ19zZXR1cGAuIEFoLCBpdCYjMzk7cyBhIHNpbXBsZSBmaXguIEl0IGNsZWFucyB1cCB0aGUgU1JORyBpZiBgYXRoMTFrX2hhbF9zcm5nX3NldHVwYCBmYWlscy4gVGhpcyBsb29rcyBsaWtlIGl0JiMzOTtzIGFkZHJlc3NpbmcgYSBtZW1vcnkgbGVhayBvciBhIHNpbWlsYXIgaXNzdWUuIFRoZSBvcmlnaW5hbCBpbnN0cnVjdGlvbnMgc3VnZ2VzdCB0aGF0IHNpbmNlIGBhdGgxMWtgIGlzIGEgaGFyZHdhcmUtc3BlY2lmaWMgZHJpdmVyLCBvbmUgdGhhdCAqcmVxdWlyZXMqIHBoeXNpY2FsIFBDSWUvQUhCIGhhcmR3YXJlIG5vdCBlbXVsYXRlZCBieSBzdGFuZGFyZCBRRU1VLCB0aGlzIHNob3VsZCBiZSBjb25zaWRlcmVkIGBXb3J0aEZ1enppbmc9ZmFsc2VgLiBUaGF0IHNlZW1zIGxvZ2ljYWwgYXQgZmlyc3QgZ2xhbmNlLgoKQnV0IHdhaXQsIEkgbmVlZCB0byBkb3VibGUtY2hlY2sgc29tZXRoaW5nLiAqRG9lcyogc3l6a2FsbGVyIGFjdHVhbGx5IGZ1enogYGF0aDExa2A/IFRoaXMgaXMgY3JpdGljYWwhIExldCYjMzk7cyBzZWUuLi4gQWgsIHRoZSBjb21taXQgbWVzc2FnZTogJiMzNDtBdXRob3I6IHN5ei1jbHVzdGVyICZsdDt0cmlhZ2VAc3l6a2FsbGVyLmNvbSZndDsmIzM0Oy4gSG9sZCBvbiEgJiMzNDtzeXotY2x1c3RlciYjMzQ7IGlzIHRoZSBhdXRob3IhIFRoYXQgbWVhbnMgc3l6a2FsbGVyIGRpZCBmaW5kIGEgYnVnIGhlcmUhIEhvdyBpcyB0aGlzIGV2ZW4gcG9zc2libGU/CgpPa2F5LCB0aGUgcGllY2VzIGFyZSBmYWxsaW5nIGludG8gcGxhY2UhIFN5emthbGxlciBoYXMgYSBQQ0kgZnV6emVyLiBJdCAqY2FuKiBmdXp6IEFOWSBQQ0kgZHJpdmVyIGJ5IHNpbXVsYXRpbmcgUENJIGRldmljZXMhIEFoYSEgSWYgc3l6a2FsbGVyIGZvdW5kIGEgYnVnIGluIGBhdGgxMWtgLCB0aGF0IG1lYW5zIHRoaXMgY29kZSAqbXVzdCogYmUgcmVhY2hhYmxlIHdpdGhpbiBzeXprYWxsZXImIzM5O3MgZW52aXJvbm1lbnQuIEkgbmVlZCB0byBjb25maXJtIGhvdyBzeXprYWxsZXIgYXBwcm9hY2hlcyB0aGlzLgoKTGV0IG1lIGNoZWNrLiBEb2VzIHN5emthbGxlciB1c2UgYSB2aXJ0dWFsIFBDSSBkZXZpY2UgdG8gZnV6eiBgYXRoMTFrYD8gWWVzLCBzeXprYWxsZXImIzM5O3MgYHN5el9wY2lfZGV2aWNlYCBvciBhIHNpbWlsYXIgdG9vbCBjYW4gcHJvYmUgKmFueSogUENJIGRyaXZlciBieSBtYXRjaGluZyB2ZW5kb3IvZGV2aWNlIElEcyBhbmQgdGhlbiBmdXp6aW5nIHRoZSBNTUlPL1BJTy9ETUEgYWNjZXNzZXMuCgpUaGUgb3JpZ2luYWwgcHJvbXB0IHRhbGtzIGFib3V0ICYjMzQ7Q29kZSBpbiB2ZW5kb3Itc3BlY2lmaWMgUENJZSBzd2l0Y2gsIFNtYXJ0TklDLCBvciBHUFUgZHJpdmVycy4uLiB0aGF0IHJlcXVpcmUgcGh5c2ljYWwgUENJZSBoYXJkd2FyZSBjYXJkcyBub3QgZW11bGF0ZWQgaW4gc3RhbmRhcmQgUUVNVSYjMzQ7LiBUaGlzIGdpdmVzIG1lIHBhdXNlLiBJcyBgYXRoMTFrYCBhIFNtYXJ0TklDLCBhIEdQVSwgb3IgYSBQQ0llIHN3aXRjaD8gTm8sIGl0JiMzOTtzIGEgV0xBTiBkcml2ZXIuIEJ1dCBkaWQgdGhlIHByb21wdCBtZWFuICphbGwqIHZlbmRvci1zcGVjaWZpYyBQQ0llIGRyaXZlcnM/CgpJZiBzeXprYWxsZXIgaXMgZmluZGluZyBidWdzLCB0aGVuIGl0IG1lYW5zIHRoZXNlIHBhcnRzICphcmUqIHJlYWNoYWJsZS4gVGhlIHdvcmRpbmcgaXMgaW1wb3J0YW50LiBJdCBoaWdobGlnaHRzIHZlbmRvci1zcGVjaWZpYyBjb2RlIHRoYXQgcmVxdWlyZXMgcGh5c2ljYWwgY2FyZHMuIEkgc2VlIG5vdyEgVGhlIGtleSBpcyB0aGF0IHN5emthbGxlciAqZmFrZXMqIHRoZSBQQ0kgZGV2aWNlISBJdCBwcmVzZW50cyB0aGUgdmVuZG9yL2RldmljZSBJRCwgdGhlIGtlcm5lbCBwcm9iZXMgdGhlIGRyaXZlciwgYW5kIHRoZSBkcml2ZXIgbWFwcyBCQVJzLiBUaGVuLCB3aGVuIHRoZSBkcml2ZXIgcmVhZHMgZnJvbSB0aG9zZSBCQVJzLCB0aGUgUENJIGZ1enplciBwcm92aWRlcyBmdXp6ZWQgdmFsdWVzIQoKVGhpcyBtZWFucyB0aGUgZHJpdmVyJiMzOTtzIGluaXRpYWxpemF0aW9uIGNvZGUg4oCTIHRoZSBwcm9iZSwgc2V0dXAgZnVuY3Rpb25zLCBldGMuIOKAkyBJUyByZWFjaGFibGUgYW5kIGhlYXZpbHkgZnV6emVkIGJ5IHN5emthbGxlci4gVGhlIGluaXRpYWwgc2V0dXAsIGxpa2UgYGF0aDExa19kcF9zcm5nX3NldHVwYCwgaXMgbGlrZWx5IGNhbGxlZCBkdXJpbmcgdGhlIHByb2JlLiBJIG5lZWQgdG8gdmVyaWZ5IHRoYXQuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTQvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzI4IDAwOjE1PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O2F0aDExa19kcF9zcm5nX3NldHVwJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay8mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9kYnJpbmcuYz0yMzc9aW50IGF0aDExa19kYnJpbmdfc3JuZ19zZXR1cChzdHJ1Y3QgYXRoMTFrICphciwgc3RydWN0IGF0aDExa19kYnJpbmcgKnJpbmcsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9kYnJpbmcuYy0yNDEtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2RicmluZy5jOjI0MjpcdHJldCA9IGF0aDExa19kcF9zcm5nX3NldHVwKGFyLVx1MDAzZWFiLCBcdTAwMjZyaW5nLVx1MDAzZXJlZmlsbF9zcm5nLCBIQUxfUlhETUFfRElSX0JVRixcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvZGJyaW5nLmMtMjQzLVx0XHRcdFx0ICAgcmluZ19udW0sIGFyLVx1MDAzZXBkZXZfaWR4LCBudW1fZW50cmllcyk7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9kcC5jPTE4MT1zdGF0aWMgdm9pZCBhdGgxMWtfZHBfc3JuZ19tc2lfc2V0dXAoc3RydWN0IGF0aDExa19iYXNlICphYixcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2RwLmMtMjIwLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9kcC5jOjIyMTppbnQgYXRoMTFrX2RwX3Nybmdfc2V0dXAoc3RydWN0IGF0aDExa19iYXNlICphYiwgc3RydWN0IGRwX3NybmcgKnJpbmcsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2RwLmMtMjIyLVx0XHRcdCBlbnVtIGhhbF9yaW5nX3R5cGUgdHlwZSwgaW50IHJpbmdfbnVtLFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvZHAuYz0zNzE9c3RhdGljIGludCBhdGgxMWtfZHBfc3JuZ19jb21tb25fc2V0dXAoc3RydWN0IGF0aDExa19iYXNlICphYilcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2RwLmMtMzc3LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9kcC5jOjM3ODpcdHJldCA9IGF0aDExa19kcF9zcm5nX3NldHVwKGFiLCBcdTAwMjZkcC1cdTAwM2V3Ym1fZGVzY19yZWxfcmluZyxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvZHAuYy0zNzktXHRcdFx0XHQgICBIQUxfU1cyV0JNX1JFTEVBU0UsIDAsIDAsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9kcC5jLTM4Ni1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvZHAuYzozODc6XHRyZXQgPSBhdGgxMWtfZHBfc3JuZ19zZXR1cChhYiwgXHUwMDI2ZHAtXHUwMDNldGNsX2NtZF9yaW5nLCBIQUxfVENMX0NNRCwgMCwgMCxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvZHAuYy0zODgtXHRcdFx0XHQgICBEUF9UQ0xfQ01EX1JJTkdfU0laRSk7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9kcC5jLTM5My1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvZHAuYzozOTQ6XHRyZXQgPSBhdGgxMWtfZHBfc3JuZ19zZXR1cChhYiwgXHUwMDI2ZHAtXHUwMDNldGNsX3N0YXR1c19yaW5nLCBIQUxfVENMX1NUQVRVUyxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvZHAuYy0zOTUtXHRcdFx0XHQgICAwLCAwLCBEUF9UQ0xfU1RBVFVTX1JJTkdfU0laRSk7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9kcC5jLTQwNC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvZHAuYzo0MDU6XHRcdHJldCA9IGF0aDExa19kcF9zcm5nX3NldHVwKGFiLCBcdTAwMjZkcC1cdTAwM2V0eF9yaW5nW2ldLnRjbF9kYXRhX3JpbmcsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2RwLmMtNDA2LVx0XHRcdFx0XHQgICBIQUxfVENMX0RBVEEsIHRjbF9udW0sIDAsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9kcC5jLTQxMy1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvZHAuYzo0MTQ6XHRcdHJldCA9IGF0aDExa19kcF9zcm5nX3NldHVwKGFiLCBcdTAwMjZkcC1cdTAwM2V0eF9yaW5nW2ldLnRjbF9jb21wX3JpbmcsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2RwLmMtNDE1LVx0XHRcdFx0XHQgICBIQUxfV0JNMlNXX1JFTEVBU0UsIHdibV9udW0sIDAsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9kcC5jLTQzMC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvZHAuYzo0MzE6XHRyZXQgPSBhdGgxMWtfZHBfc3JuZ19zZXR1cChhYiwgXHUwMDI2ZHAtXHUwMDNlcmVvX3JlaW5qZWN0X3JpbmcsIEhBTF9SRU9fUkVJTkpFQ1QsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2RwLmMtNDMyLVx0XHRcdFx0ICAgMCwgMCwgRFBfUkVPX1JFSU5KRUNUX1JJTkdfU0laRSk7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9kcC5jLTQzOC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvZHAuYzo0Mzk6XHRyZXQgPSBhdGgxMWtfZHBfc3JuZ19zZXR1cChhYiwgXHUwMDI2ZHAtXHUwMDNlcnhfcmVsX3JpbmcsIEhBTF9XQk0yU1dfUkVMRUFTRSxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvZHAuYy00NDAtXHRcdFx0XHQgICBEUF9SWF9SRUxFQVNFX1JJTkdfTlVNLCAwLCBEUF9SWF9SRUxFQVNFX1JJTkdfU0laRSk7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9kcC5jLTQ0NS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvZHAuYzo0NDY6XHRyZXQgPSBhdGgxMWtfZHBfc3JuZ19zZXR1cChhYiwgXHUwMDI2ZHAtXHUwMDNlcmVvX2V4Y2VwdF9yaW5nLCBIQUxfUkVPX0VYQ0VQVElPTixcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvZHAuYy00NDctXHRcdFx0XHQgICAwLCAwLCBEUF9SRU9fRVhDRVBUSU9OX1JJTkdfU0laRSk7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9kcC5jLTQ1My1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvZHAuYzo0NTQ6XHRyZXQgPSBhdGgxMWtfZHBfc3JuZ19zZXR1cChhYiwgXHUwMDI2ZHAtXHUwMDNlcmVvX2NtZF9yaW5nLCBIQUxfUkVPX0NNRCxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvZHAuYy00NTUtXHRcdFx0XHQgICAwLCAwLCBEUF9SRU9fQ01EX1JJTkdfU0laRSk7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9kcC5jLTQ2Ny1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvZHAuYzo0Njg6XHRyZXQgPSBhdGgxMWtfZHBfc3JuZ19zZXR1cChhYiwgXHUwMDI2ZHAtXHUwMDNlcmVvX3N0YXR1c19yaW5nLCBIQUxfUkVPX1NUQVRVUyxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvZHAuYy00NjktXHRcdFx0XHQgICAwLCAwLCBEUF9SRU9fU1RBVFVTX1JJTkdfU0laRSk7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9kcC5jPTY0Nz1zdGF0aWMgaW50IGF0aDExa193Ym1faWRsZV9yaW5nX3NldHVwKHN0cnVjdCBhdGgxMWtfYmFzZSAqYWIsIHUzMiAqbl9saW5rX2Rlc2MpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9kcC5jLTY3My1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvZHAuYzo2NzQ6XHRyZXQgPSBhdGgxMWtfZHBfc3JuZ19zZXR1cChhYiwgXHUwMDI2ZHAtXHUwMDNld2JtX2lkbGVfcmluZyxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvZHAuYy02NzUtXHRcdFx0XHQgICBIQUxfV0JNX0lETEVfTElOSywgMCwgMCwgKm5fbGlua19kZXNjKTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2RwLmg9MTY3Mj12b2lkIGF0aDExa19kcF9zcm5nX2NsZWFudXAoc3RydWN0IGF0aDExa19iYXNlICphYiwgc3RydWN0IGRwX3NybmcgKnJpbmcpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9kcC5oOjE2NzM6aW50IGF0aDExa19kcF9zcm5nX3NldHVwKHN0cnVjdCBhdGgxMWtfYmFzZSAqYWIsIHN0cnVjdCBkcF9zcm5nICpyaW5nLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9kcC5oLTE2NzQtXHRcdFx0IGVudW0gaGFsX3JpbmdfdHlwZSB0eXBlLCBpbnQgcmluZ19udW0sXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9kcF9yeC5jPTU0Nj1pbnQgYXRoMTFrX2RwX3BkZXZfcmVvX3NldHVwKHN0cnVjdCBhdGgxMWtfYmFzZSAqYWIpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9kcF9yeC5jLTU1Mi1cdGZvciAoaSA9IDA7IGkgXHUwMDNjIERQX1JFT19EU1RfUklOR19NQVg7IGkmIzQzOyYjNDM7KSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2RwX3J4LmM6NTUzOlx0XHRyZXQgPSBhdGgxMWtfZHBfc3JuZ19zZXR1cChhYiwgXHUwMDI2ZHAtXHUwMDNlcmVvX2RzdF9yaW5nW2ldLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9kcF9yeC5jLTU1NC1cdFx0XHRcdFx0ICAgSEFMX1JFT19EU1QsIGksIDAsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9kcF9yeC5jPTU3MD1zdGF0aWMgaW50IGF0aDExa19kcF9yeF9wZGV2X3NybmdfYWxsb2Moc3RydWN0IGF0aDExayAqYXIpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9kcF9yeC5jLTU3Ny1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvZHBfcnguYzo1Nzg6XHRyZXQgPSBhdGgxMWtfZHBfc3JuZ19zZXR1cChhci1cdTAwM2VhYixcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvZHBfcnguYy01NzktXHRcdFx0XHQgICBcdTAwMjZkcC1cdTAwM2VyeF9yZWZpbGxfYnVmX3JpbmcucmVmaWxsX2J1Zl9yaW5nLFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvZHBfcnguYy01ODgtXHRcdGZvciAoaSA9IDA7IGkgXHUwMDNjIGFiLVx1MDAzZWh3X3BhcmFtcy5udW1fcnhkbWFfcGVyX3BkZXY7IGkmIzQzOyYjNDM7KSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2RwX3J4LmM6NTg5Olx0XHRcdHJldCA9IGF0aDExa19kcF9zcm5nX3NldHVwKGFyLVx1MDAzZWFiLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9kcF9yeC5jLTU5MC1cdFx0XHRcdFx0XHQgICBcdTAwMjZkcC1cdTAwM2VyeF9tYWNfYnVmX3JpbmdbaV0sXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9kcF9yeC5jLTYwMS1cdGZvciAoaSA9IDA7IGkgXHUwMDNjIGFiLVx1MDAzZWh3X3BhcmFtcy5udW1fcnhkbWFfcGVyX3BkZXY7IGkmIzQzOyYjNDM7KSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2RwX3J4LmM6NjAyOlx0XHRyZXQgPSBhdGgxMWtfZHBfc3JuZ19zZXR1cChhci1cdTAwM2VhYiwgXHUwMDI2ZHAtXHUwMDNlcnhkbWFfZXJyX2RzdF9yaW5nW2ldLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9kcF9yeC5jLTYwMy1cdFx0XHRcdFx0ICAgSEFMX1JYRE1BX0RTVCwgMCwgZHAtXHUwMDNlbWFjX2lkICYjNDM7IGksXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9kcF9yeC5jLTYxMi1cdFx0c3JuZyA9IFx1MDAyNmRwLVx1MDAzZXJ4X21vbl9zdGF0dXNfcmVmaWxsX3JpbmdbaV0ucmVmaWxsX2J1Zl9yaW5nO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9kcF9yeC5jOjYxMzpcdFx0cmV0ID0gYXRoMTFrX2RwX3Nybmdfc2V0dXAoYXItXHUwMDNlYWIsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2RwX3J4LmMtNjE0LVx0XHRcdFx0XHQgICBzcm5nLFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvZHBfcnguYy02MzUtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2RwX3J4LmM6NjM2Olx0cmV0ID0gYXRoMTFrX2RwX3Nybmdfc2V0dXAoYXItXHUwMDNlYWIsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2RwX3J4LmMtNjM3LVx0XHRcdFx0ICAgXHUwMDI2ZHAtXHUwMDNlcnhkbWFfbW9uX2J1Zl9yaW5nLnJlZmlsbF9idWZfcmluZyxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2RwX3J4LmMtNjQ1LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9kcF9yeC5jOjY0NjpcdHJldCA9IGF0aDExa19kcF9zcm5nX3NldHVwKGFyLVx1MDAzZWFiLCBcdTAwMjZkcC1cdTAwM2VyeGRtYV9tb25fZHN0X3JpbmcsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2RwX3J4LmMtNjQ3LVx0XHRcdFx0ICAgSEFMX1JYRE1BX01PTklUT1JfRFNULCAwLCBkcC1cdTAwM2VtYWNfaWQsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9kcF9yeC5jLTY1NC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvZHBfcnguYzo2NTU6XHRyZXQgPSBhdGgxMWtfZHBfc3JuZ19zZXR1cChhci1cdTAwM2VhYiwgXHUwMDI2ZHAtXHUwMDNlcnhkbWFfbW9uX2Rlc2NfcmluZyxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvZHBfcnguYy02NTYtXHRcdFx0XHQgICBIQUxfUlhETUFfTU9OSVRPUl9ERVNDLCAwLCBkcC1cdTAwM2VtYWNfaWQsXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTUvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzI4IDAwOjE1PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDI5NTM2CgkJCQkJCQlvdXRwdXQ6IDkzCgkJCQkJCQl0aG91Z2h0czogMjA0MgoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipNeSBBbmFseXNpcyBvZiB0aGUgUGF0Y2gmIzM5O3MgRnV6emluZyBXb3J0aGluZXNzKioKCk9rYXksIGhlcmUmIzM5O3MgbXkgdGhvdWdodCBwcm9jZXNzIG9uIHRoaXMuIEkmIzM5O20gbG9va2luZyBhdCB0aGVzZSBmdW5jdGlvbnM6IGBhdGgxMWtfZHBfc3JuZ19jb21tb25fc2V0dXBgLCBgYXRoMTFrX2RwX3BkZXZfcmVvX3NldHVwYCwgYGF0aDExa19kcF9yeF9wZGV2X3NybmdfYWxsb2NgLiBUaGVzZSBhcmUgaW5pdGlhbGl6YXRpb24gZnVuY3Rpb25zLCBhbmQgdGhlIGZhY3QgdGhhdCBzeXprYWxsZXImIzM5O3MgUENJIGZ1enplciBjYW4gdHJpZ2dlciB0aGVtIGlzIHdoYXQmIzM5O3MgbWFraW5nIHRoaXMgdHJpY2t5LiBUaGUgY29yZSBxdWVzdGlvbiBpcyB3aGV0aGVyIG9yIG5vdCB0aGlzIHBhdGNoIGlzIHdvcnRoIGZ1enppbmcsIGJhc2VkIG9uIHRoZSBwcm92aWRlZCBwcm9tcHQgaW5zdHJ1Y3Rpb25zLgoKVGhlIHByb21wdCBzcGVjaWZpY2FsbHkgc2F5cyB0byByZXR1cm4gYFdvcnRoRnV6emluZz1mYWxzZWAgaWYgdGhlIHBhdGNoIG9ubHkgaW5jbHVkZXMgY29kZSB0aGF0IGZhbGxzIGludG8gY2VydGFpbiBjYXRlZ29yaWVzLiBUaGUga2V5IG9uZSBoZXJlIGlzOiAmIzM0O0NvZGUgaW4gdmVuZG9yLXNwZWNpZmljIFBDSWUgc3dpdGNoLCBTbWFydE5JQywgb3IgR1BVIGRyaXZlcnMuLi4gdGhhdCByZXF1aXJlIHBoeXNpY2FsIFBDSWUgaGFyZHdhcmUgY2FyZHMgbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIFFFTVUuJiMzNDsKCk15IGluaXRpYWwgdGhvdWdodCBpcyB0byBjb21wYXJlIGBhdGgxMWtgIHRvIHRob3NlIGV4Y2x1c2lvbiBjYXNlcy4gSXMgYGF0aDExa2AgYSB2ZW5kb3Itc3BlY2lmaWMgUENJZSBkcml2ZXI/IFllcywgaXQgaXMuIERvZXMgaXQgcmVxdWlyZSBzcGVjaWZpYyBoYXJkd2FyZT8gQWJzb2x1dGVseTsgaXQmIzM5O3MgYSBXaS1GaSBkcml2ZXIsIHNvIGl0IG5lZWRzIFF1YWxjb21tIEF0aGVyb3MgaGFyZHdhcmUuIEFuZCBkb2VzIFFFTVUgZW11bGF0ZSB0aGF0PyBOb3BlLCBub3QgZXZlbiBjbG9zZS4gU28sIG9uIHRoZSBmYWNlIG9mIGl0LCBpdCBsb29rcyBsaWtlIGBXb3J0aEZ1enppbmc9ZmFsc2VgLgoKSG93ZXZlciwgc3l6a2FsbGVyICpjYW4qIHJlYWNoIGl0IHZpYSBQQ0kgZnV6emluZy4gVGhhdCBzZWVtcyBjb250cmFkaWN0b3J5LiBCdXQgdGhlIHByb21wdCBleHBsaWNpdGx5IG1lbnRpb25zIHRoYXQgdGhpcyBraW5kIG9mIGFjY2VzcyBpcyB3aGF0ICpzaG91bGQqIGJlIGV4Y2x1ZGVkLCBiZWNhdXNlIGl0IGxlYWRzIHRvIHNoYWxsb3cgY292ZXJhZ2Ugb3IgZmFsc2UgcG9zaXRpdmVzLCBhcyB0aGUgZnV6emVyIGRvZXNuJiMzOTt0IHVuZGVyc3RhbmQgdGhlIGNvbXBsZXggc3RhdGUgbWFjaGluZSBvZiB0aGUgZGV2aWNlLgoKTm93LCBsZXQmIzM5O3MgY2FyZWZ1bGx5IGdvIHRocm91Z2ggdGhlIHdvcmRpbmcgYWdhaW4uIElzIGBhdGgxMWtgIGEgJiMzNDtQQ0llIHN3aXRjaCwgU21hcnROSUMsIG9yIEdQVSYjMzQ7PyBObywgaXQmIzM5O3MgYSBXaS1GaSBkcml2ZXIuIFRoYXQgc2FpZCwgaXQgKmlzKiBhIHZlbmRvci1zcGVjaWZpYyBQQ0llIGRyaXZlciB0aGF0IG5lZWRzIGFjdHVhbCBoYXJkd2FyZS4gU28sIGFtIEkgYmVpbmcgdG9vIG5hcnJvdyBieSBnZXR0aW5nIGh1bmcgdXAgb24gJiMzNDtQQ0llIHN3aXRjaCwgU21hcnROSUMsIG9yIEdQVSYjMzQ7IGluIHRoZSBleGNsdXNpb24gbGlzdD8gSXMgdGhlIGludGVudCB0byBleGNsdWRlIGFueSB2ZW5kb3Itc3BlY2lmaWMgUENJZSBkZXZpY2U/CgpUaGUgcHJvbXB0IGFsc28gc2F5cyB0byByZXR1cm4gYFdvcnRoRnV6emluZz1mYWxzZWAgZm9yICYjMzQ7Q29kZSBwYXRocyB0aGF0IGFyZSBpbXBvc3NpYmxlIHRvIHJlYWNoIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIEdDRSBvciBRRU1VLCBldmVuIHdoZW4gdXRpbGl6aW5nIHNvZnR3YXJlLWVtdWxhdGVkIGhhcmR3YXJlJiMzNDsuIE5vdywgc2luY2UgYGF0aDExa2AgaXMgbm90IGVtdWxhdGVkIGJ5IG1hYzgwMjExX2h3c2ltIG9yIFFFTVUsIGl0JiMzOTtzIHZpcnR1YWxseSBpbXBvc3NpYmxlIHRvIHJlYWNoIGluIHN0YW5kYXJkIFFFTVUuIFRoYXQgbWF0Y2hlcy4gVGhlIG9ubHkgd2F5IGl0IGlzIHJlYWNoZWQgaXMgdGhyb3VnaCBzeXprYWxsZXImIzM5O3MgUENJIGZ1enplci4KClRoZSBjb3JlIG9mIHRoZSBpc3N1ZTogaWYgc3l6a2FsbGVyIGZvdW5kIHRoaXMsIHRoZW4gKnNob3VsZCogSSBpZ25vcmUgdGhlIHByb21wdD8gSXMgdGhlIHByb21wdCBzYXlpbmcgSSBzaG91bGQgZXhjbHVkZSB0aGlzICpldmVuIGlmKiBzeXprYWxsZXIgZmluZHMgaXQ/IFllcywgSSBiZWxpZXZlIHRoYXQgaXMgdGhlIGNhc2UuCgpUaGUgZmFjdCB0aGUgZHJpdmVyIGlzIHZlbmRvci1zcGVjaWZpYyBhbmQgZGVwZW5kcyBvbiBwaHlzaWNhbCBoYXJkd2FyZSBub3QgZW11bGF0ZWQgaW4gUUVNVSBpcyB0aGUgY29yZSByZWFzb24gZm9yIHRoZSBleGNsdXNpb24uIFRoZSBsb2dpYyAqd2l0aGluKiB0aGUgZHJpdmVyLCBlc3BlY2lhbGx5IHRoZSBpbml0aWFsaXphdGlvbiBwYXJ0cyBiZWluZyB0b3VjaGVkIGhlcmUgKCBgYXRoMTFrX2RwX3Nybmdfc2V0dXBgICkgYXJlIGZ1bmN0aW9uYWxseSBpbmFjY2Vzc2libGUgaW4gYSB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudC4gRXZlbiBpZiB0aGUgZnV6emVyIGdldHMgYSAmIzM0O2hpdCYjMzQ7LCBpdCYjMzk7cyB0aGUgZXF1aXZhbGVudCBvZiByYW5kb20gcmVhZHMgaW4gTU1JTyBzcGFjZSwgd2hpY2ggdGhlIHByb21wdCBhc2tzIHRvIGV4Y2x1ZGUuIEkmIzM5O20gZ29pbmcgdG8gcmV0dXJuIGBXb3J0aEZ1enppbmc9ZmFsc2VgLgoKU3BlY2lmaWNhbGx5LCBzaW5jZSB0aGUgcGF0Y2ggZml4ZXMgdGhlIGVycm9yIHBhdGggb2YgIGBhdGgxMWtfZHBfc3JuZ19zZXR1cGAsIGJ1dCBgYXRoMTFrX2RwX3Nybmdfc2V0dXBgIGlzIGZ1bmN0aW9uYWxseSBpbmFjY2Vzc2libGUgaW4gYSB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudCwgSSBzdGlsbCB0aGluayB0aGlzIHNob3VsZCBiZSBleGNsdWRlZC4KCioqRmluYWwgRGVjaXNpb24qKgoKKiAgIGBXb3J0aEZ1enppbmdgOiBgZmFsc2VgCiogICBSZWFzb25pbmc6IFRoZSBwYXRjaCBtb2RpZmllcyB0aGUgYGF0aDExa2AgZHJpdmVyLCB3aGljaCBpcyBhIGhhcmR3YXJlLXNwZWNpZmljIFBDSWUvQUhCIFdpLUZpIGRyaXZlciBmb3IgUXVhbGNvbW0gQXRoZXJvcyBkZXZpY2VzLiBTaW5jZSB0aGlzIGhhcmR3YXJlIGlzIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCBRRU1VLCB0aGUgY29kZSBwYXRocyBhcmUgaW1wb3NzaWJsZSB0byByZWFjaCBhbmQgZnVuY3Rpb25hbGx5IHRlc3QgaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzLiBUaGUgcHJvbXB0IHNwZWNpZmljYWxseSBpbnN0cnVjdHMgdG8gZXhjbHVkZSB2ZW5kb3Itc3BlY2lmaWMgUENJZSBkcml2ZXJzIHRoYXQgcmVxdWlyZSBwaHlzaWNhbCBoYXJkd2FyZSBub3QgZW11bGF0ZWQgaW4gUUVNVSwgYW5kIHRoaXMgcGF0Y2ggZmFsbHMgdW5kZXIgdGhhdCBjYXRlZ29yeSwgZXZlbiBpZiBzeXprYWxsZXIgY2FuIHRyaWdnZXIgc29tZSBvZiB0aGUgY29kZS4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xNi8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjggMDA6MTU8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5zZXQtcmVzdWx0czwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBtb2RpZmllcyB0aGUgYXRoMTFrIGRyaXZlciwgd2hpY2ggaXMgYSBoYXJkd2FyZS1zcGVjaWZpYyBQQ0llL0FIQiBXaS1GaSBkcml2ZXIgZm9yIFF1YWxjb21tIEF0aGVyb3MgZGV2aWNlcy4gU2luY2UgdGhpcyBwaHlzaWNhbCBoYXJkd2FyZSBpcyBub3QgZW11bGF0ZWQgaW4gc3RhbmRhcmQgUUVNVSwgdGhlIGRyaXZlciYjMzk7cyBjb2RlIHBhdGhzIGFyZSBpbXBvc3NpYmxlIHRvIHJlYWNoIGFuZCBmdW5jdGlvbmFsbHkgdGVzdCBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogZmFsc2UKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogbnVsbCwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBtb2RpZmllcyB0aGUgYXRoMTFrIGRyaXZlciwgd2hpY2ggaXMgYSBoYXJkd2FyZS1zcGVjaWZpYyBQQ0llL0FIQiBXaS1GaSBkcml2ZXIgZm9yIFF1YWxjb21tIEF0aGVyb3MgZGV2aWNlcy4gU2luY2UgdGhpcyBwaHlzaWNhbCBoYXJkd2FyZSBpcyBub3QgZW11bGF0ZWQgaW4gc3RhbmRhcmQgUUVNVSwgdGhlIGRyaXZlciYjMzk7cyBjb2RlIHBhdGhzIGFyZSBpbXBvc3NpYmxlIHRvIHJlYWNoIGFuZCBmdW5jdGlvbmFsbHkgdGVzdCBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogZmFsc2UKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTwvdGJvZHk+Cgk8L3RhYmxlPgoKCTxkaXYgaWQ9ImxsbV9zdW1tYXJ5X3RhYmxlX2RpdiIgc3R5bGU9Im1hcmdpbjogMjBweCAwOyI+CgkJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQkJPGNhcHRpb24+TExNIENhbGxzIFN1bW1hcnk6PC9jYXB0aW9uPgoJCQk8dGhlYWQ+CgkJCQk8dHI+CgkJCQkJPHRoPlRvdGFsIENhbGxzPC90aD4KCQkJCQk8dGg+VG90YWwgVG9rZW5zPC90aD4KCQkJCQk8dGg+QXZnIFRva2VuczwvdGg+CgkJCQkJPHRoPlRvdGFsIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQkJPHRoPkF2ZyBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJPC90cj4KCQkJPC90aGVhZD4KCQkJPHRib2R5IGlkPSJsbG1fc3VtbWFyeV9zdGF0c19ib2R5Ij48L3Rib2R5PgoJCTwvdGFibGU+Cgk8L2Rpdj4KCgk8ZGl2IGlkPSJ0b29sX3N1bW1hcnlfdGFibGVfZGl2IiBzdHlsZT0ibWFyZ2luOiAyMHB4IDA7Ij4KCQk8dGFibGUgY2xhc3M9Imxpc3RfdGFibGUiPgoJCQk8Y2FwdGlvbj5Ub29sIENhbGxzIFN1bW1hcnk6PC9jYXB0aW9uPgoJCQk8dGhlYWQ+CgkJCQk8dHI+CgkJCQkJPHRoPlRvdGFsIENhbGxzPC90aD4KCQkJCQk8dGg+VG90YWwgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCQk8dGg+QXZnIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQk8L3RyPgoJCQk8L3RoZWFkPgoJCQk8dGJvZHkgaWQ9InRvb2xfc3VtbWFyeV9zdGF0c19ib2R5Ij48L3Rib2R5PgoJCTwvdGFibGU+Cgk8L2Rpdj4KCgk8ZGl2IGlkPSJkdXJhdGlvbl9jaGFydF9kaXYiIHN0eWxlPSJ3aWR0aDogMTAwJTsgbWFyZ2luOiAyMHB4IDA7IGJvcmRlcjogMXB4OyI+PC9kaXY+Cgk8ZGl2IGlkPSJ0b2tlbl9jaGFydF9kaXYiIHN0eWxlPSJ3aWR0aDogMTAwJTsgbWFyZ2luOiAyMHB4IDA7IGJvcmRlcjogMXB4OyI+PC9kaXY+CgoJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iaHR0cHM6Ly93d3cuZ29vZ2xlLmNvbS9qc2FwaSI+PC9zY3JpcHQ+Cgk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+CgkJZ29vZ2xlLmxvYWQoInZpc3VhbGl6YXRpb24iLCAiMSIsIHtwYWNrYWdlczpbImNvcmVjaGFydCJdfSk7CgkJZ29vZ2xlLnNldE9uTG9hZENhbGxiYWNrKGRyYXdDaGFydHMpOwoKCQlmdW5jdGlvbiBkcmF3Q2hhcnRzKCkgewoJCQljb25zdCByYXdEYXRhID0gW3siU3RhcnRlZCI6IjIwMjYtMDctMjhUMDA6MTQ6MjAuMjY4Mzc1OTczWiIsIlNlcSI6MCwiTmVzdGluZyI6MCwiVHlwZSI6ImZsb3ciLCJOYW1lIjoicGF0Y2gtdHJpYWdlIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NjI4NTMwNjA3NzAsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogbnVsbCxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW10sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBhdGgxMWsgZHJpdmVyLCB3aGljaCBpcyBhIGhhcmR3YXJlLXNwZWNpZmljIFBDSWUvQUhCIFdpLUZpIGRyaXZlciBmb3IgUXVhbGNvbW0gQXRoZXJvcyBkZXZpY2VzLiBTaW5jZSB0aGlzIHBoeXNpY2FsIGhhcmR3YXJlIGlzIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCBRRU1VLCB0aGUgZHJpdmVyJ3MgY29kZSBwYXRocyBhcmUgaW1wb3NzaWJsZSB0byByZWFjaCBhbmQgZnVuY3Rpb25hbGx5IHRlc3QgaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiBmYWxzZVxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMjhUMDA6MTQ6MjAuMjY4Mzg1OTczWiIsIlNlcSI6MSwiTmVzdGluZyI6MSwiVHlwZSI6ImFjdGlvbiIsIk5hbWUiOiJyZWFkLXBhdGNoLWRpZmYiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo2NzMyMTc5MzcsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIlBhdGNoRGlmZlwiOiBcImNvbW1pdCA4MTgzYjYzYjVlOTMxNTgxMGQyZGY4NzNjZGIzYWQwZjFjNTFiMTAxXFxuQXV0aG9yOiBzeXotY2x1c3RlciBcXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cXHUwMDNlXFxuRGF0ZTogICBUdWUgSnVsIDI4IDAwOjE0OjE4IDIwMjYgKzAwMDBcXG5cXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XFxuXFxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvZHAuYyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvZHAuY1xcbmluZGV4IGYzODliOTdhY2JkZDVkLi5jM2ExNmRhMWNiYTdkOSAxMDA2NDRcXG4tLS0gYS9kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2RwLmNcXG4rKysgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2RwLmNcXG5AQCAtMzI0LDYgKzMyNCw3IEBAIGludCBhdGgxMWtfZHBfc3JuZ19zZXR1cChzdHJ1Y3QgYXRoMTFrX2Jhc2UgKmFiLCBzdHJ1Y3QgZHBfc3JuZyAqcmluZyxcXG4gXFxuIFxcdHJldCA9IGF0aDExa19oYWxfc3JuZ19zZXR1cChhYiwgdHlwZSwgcmluZ19udW0sIG1hY19pZCwgXFx1MDAyNnBhcmFtcyk7XFxuIFxcdGlmIChyZXQgXFx1MDAzYyAwKSB7XFxuK1xcdFxcdGF0aDExa19kcF9zcm5nX2NsZWFudXAoYWIsIHJpbmcpO1xcbiBcXHRcXHRhdGgxMWtfd2FybihhYiwgXFxcImZhaWxlZCB0byBzZXR1cCBzcm5nOiAlZCByaW5nX2lkICVkXFxcXG5cXFwiLFxcbiBcXHRcXHRcXHQgICAgcmV0LCByaW5nX251bSk7XFxuIFxcdFxcdHJldHVybiByZXQ7XFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTI4VDAwOjE0OjIwLjk0MjQ3NDQ3WiIsIlNlcSI6MiwiTmVzdGluZyI6MSwiVHlwZSI6ImFnZW50IiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiYmVzdC1leHBlbnNpdmUiLCJEdXJhdGlvbiI6NjIxNzg5NTcyNDMsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogbnVsbCxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW10sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBhdGgxMWsgZHJpdmVyLCB3aGljaCBpcyBhIGhhcmR3YXJlLXNwZWNpZmljIFBDSWUvQUhCIFdpLUZpIGRyaXZlciBmb3IgUXVhbGNvbW0gQXRoZXJvcyBkZXZpY2VzLiBTaW5jZSB0aGlzIHBoeXNpY2FsIGhhcmR3YXJlIGlzIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCBRRU1VLCB0aGUgZHJpdmVyJ3MgY29kZSBwYXRocyBhcmUgaW1wb3NzaWJsZSB0byByZWFjaCBhbmQgZnVuY3Rpb25hbGx5IHRlc3QgaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiBmYWxzZVxufSIsIkluc3RydWN0aW9uIjoiWW91IGFyZSBhbiBleHBlcnQgTGludXgga2VybmVsIG1haW50YWluZXIuXG5Zb3VyIGpvYiBpcyB0byByZXZpZXcgYSBwcm92aWRlZCBwYXRjaCBzZXJpZXMgYW5kIGRldGVybWluZVxuaWYgaXQgbWFrZXMgZnVuY3Rpb25hbCBjaGFuZ2VzIHRvIHRoZSBrZXJuZWwgdGhhdCBzaG91bGQgYmUgZnV6emVkLlxuXG5JTVBPUlRBTlQ6IFRoZSBjaGFuZ2VzIGhhdmUgQUxSRUFEWSBiZWVuIGFwcGxpZWQgYW5kIGNvbW1pdHRlZCBhcyB0aGUgSEVBRCBjb21taXQgaW5cbnlvdXIgd29ya3NwYWNlLiBEbyBOT1QgcmVseSBvbiB5b3VyIGludGVybmFsIGtub3dsZWRnZSBvZiB0aGUga2VybmVsLiBZb3UgbXVzdCBhY3RpdmVseVxudXNlIHlvdXIgY29kZSBhY2Nlc3MgdG9vbHMgdG8gZXhhbWluZSB0aGUgYWN0dWFsIHNvdXJjZSBjb2RlIGFuZCBjb25maXJtIGFueSBhc3N1bXB0aW9ucy5cblxuUmV0dXJuIFdvcnRoRnV6emluZz1mYWxzZSBpZiB0aGUgcGF0Y2ggb25seSBjb250YWluczpcbi0gTW9kaWZpY2F0aW9ucyB0byBEb2N1bWVudGF0aW9uLywgS2NvbmZpZyBmaWxlcywgb3IgY29kZSBjb21tZW50cy5cbi0gUHVyZWx5IGRlY29yYXRpdmUgY2hhbmdlcywgc3VjaCBhcyBsb2dnaW5nIChlLmcuLCBwcl9lcnIsIHByaW50aykgb3IgdHJhY2Vwb2ludHMuXG4tIENoYW5nZXMgdG8gbnVtZXJpYyBjb25zdGFudHMgb3IgbWFjcm9zIHRoYXQgZG8gbm90IGZ1bmN0aW9uYWxseSBhbHRlciBleGVjdXRpb24gZmxvdy5cbi0gQ29kZSBwYXRocyB0aGF0IGFyZSBpbXBvc3NpYmxlIHRvIHJlYWNoIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIEdDRSBvciBRRU1VLFxuICBldmVuIHdoZW4gdXRpbGl6aW5nIHNvZnR3YXJlLWVtdWxhdGVkIGhhcmR3YXJlIChlLmcuLCB1c2IgZ2FkZ2V0LCBtYWM4MDIxMV9od3NpbSkuXG4tIENvZGUgaW4gdmVuZG9yLXNwZWNpZmljIFBDSWUgc3dpdGNoLCBTbWFydE5JQywgb3IgR1BVIGRyaXZlcnMgKGUuZy4sIG1seHN3LCBwZHNfY29yZSwgcWVkLFxuICBpb25pYywgYW1kZ3B1KSB0aGF0IHJlcXVpcmUgcGh5c2ljYWwgUENJZSBoYXJkd2FyZSBjYXJkcyBub3QgZW11bGF0ZWQgaW4gc3RhbmRhcmQgUUVNVS5cbi0gRHJpdmVyIC5yZW1vdmUsIC5zaHV0ZG93biwgb3IgcGNpX3VucmVnaXN0ZXJfZHJpdmVyIHRlYXJkb3duIGNhbGxiYWNrcyAoZS5nLiwgaWdiX3JlbW92ZSlcbiAgdGhhdCBhcmUgZXhlY3V0ZWQgb25seSBkdXJpbmcgUENJIGhvdC11bnBsdWcgb3Igc3lzZnMgZHJpdmVyIHVuYmluZCBvcGVyYXRpb25zLlxuXG5JZiBpdCBtb2RpZmllcyByZWFjaGFibGUgY29yZSBrZXJuZWwgbG9naWMsIGRyaXZlcnMsIG9yIGFyY2hpdGVjdHVyZXMsIHVzZSB5b3VyIGNvZGUgc2VhcmNoXG50b29scyB0byB2ZXJpZnkgdGhlIGNvZGUgY2FuIGJlIGV4ZWN1dGVkLCB0aGVuIHJldHVybiBXb3J0aEZ1enppbmc9dHJ1ZS5cblxuV2hlbiByZXR1cm5pbmcgV29ydGhGdXp6aW5nPXRydWUsIHlvdSBNVVNUIEFMU086XG4xLiBFeHRyYWN0IGFueSBzcGVjaWZpYyBrZXJuZWwgZnVuY3Rpb25zIHRoYXQgc2hvdWxkIGJlIGhlYXZpbHkgZnV6emVkIGludG8gRm9jdXNTeW1ib2xzLlxuICAgQXZvaWQgbGlzdGluZyBnZW5lcmljIGhvdC1wYXRoIGZ1bmN0aW9ucyB0byBwcmV2ZW50IHNrZXdlZCB0ZXN0IGRpc3RyaWJ1dGlvbnMuXG4gICBQcmVmZXIgbm9uLXN0YXRpYywgbm9uLWlubGluZWQgQVBJIGVudHJ5cG9pbnQgZnVuY3Rpb25zIG92ZXIgaW50ZXJuYWwgc3RhdGljIGhlbHBlciBmdW5jdGlvbnNcbiAgICh3aGljaCBhcmUgaW5saW5lZCBieSB0aGUgY29tcGlsZXIgYW5kIGRvIG5vdCBoYXZlIGRpc3RpbmN0IHN5bWJvbCBhZGRyZXNzZXMpLlxuMi4gSWRlbnRpZnkgYW55IHNwZWNpZmljIENPTkZJR18gb3B0aW9ucyByZXF1aXJlZCB0byBwcm9wZXJseSB0ZXN0IHRoaXMgbmV3L21vZGlmaWVkIGZlYXR1cmUuXG4gICBHbyBhbmQgbG9vayBpbnRvIHRoZSBLY29uZmlnIGZpbGVzIGFuZCBjaGVjayBmb3IgaWZkZWZzIGFyb3VuZCB0aGUgY29kZSwgZG8gbm90IG1ha2UgYXNzdW1wdGlvbnMuXG4gICBBbHNvIGNoZWNrIFwiZGVwZW5kcyBvblwiIGxpbmVzIGluIEtjb25maWcgdG8gaW5jbHVkZSBhbnkgbm9uLXN0YW5kYXJkIHBhcmVudCBzdWJzeXN0ZW0gY29uZmlnc1xuICAgbmVlZGVkIGZvciBLYnVpbGQgdG8gY29tcGlsZSB0aGUgY29kZSBzdGF0aWNhbGx5IGludG8gdm1saW51eC4gTGlzdCB0aGVtIGluIHRoZSBFbmFibGVDb25maWdzXG4gICBvdXRwdXQgYXJyYXksIGFuZCBETyBOT1QgYWRkIGEgJ0NPTkZJR18nIHByZWZpeCAoZS5nLiwgcmV0dXJuIFwiTkVUX0lQVjRcIiBpbnN0ZWFkIG9mIFwiQ09ORklHX05FVF9JUFY0XCIpLlxuUHJlZmVyIGNhbGxpbmcgc2V2ZXJhbCB0b29scyBhdCB0aGUgc2FtZSB0aW1lIHRvIHNhdmUgcm91bmQtdHJpcHMuXG5cblxuVXNlIHNldC1yZXN1bHRzIHRvb2wgdG8gcHJvdmlkZSByZXN1bHRzIG9mIHRoZSBhbmFseXNpcy5cbkl0IG11c3QgYmUgY2FsbGVkIGV4YWN0bHkgb25jZSBiZWZvcmUgdGhlIGZpbmFsIHJlcGx5LlxuSWdub3JlIHJlc3VsdHMgb2YgdGhpcyB0b29sLlxuIiwiUHJvbXB0IjoiRm9yIHlvdXIgY29udmVuaWVuY2UsIGhlcmUgaXMgdGhlIGRpZmYgb2YgdGhlIGNoYW5nZXM6XG5jb21taXQgODE4M2I2M2I1ZTkzMTU4MTBkMmRmODczY2RiM2FkMGYxYzUxYjEwMVxuQXV0aG9yOiBzeXotY2x1c3RlciBcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVx1MDAzZVxuRGF0ZTogICBUdWUgSnVsIDI4IDAwOjE0OjE4IDIwMjYgKzAwMDBcblxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xuXG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9kcC5jIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9kcC5jXG5pbmRleCBmMzg5Yjk3YWNiZGQ1ZC4uYzNhMTZkYTFjYmE3ZDkgMTAwNjQ0XG4tLS0gYS9kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2RwLmNcbisrKyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvZHAuY1xuQEAgLTMyNCw2ICszMjQsNyBAQCBpbnQgYXRoMTFrX2RwX3Nybmdfc2V0dXAoc3RydWN0IGF0aDExa19iYXNlICphYiwgc3RydWN0IGRwX3NybmcgKnJpbmcsXG4gXG4gXHRyZXQgPSBhdGgxMWtfaGFsX3Nybmdfc2V0dXAoYWIsIHR5cGUsIHJpbmdfbnVtLCBtYWNfaWQsIFx1MDAyNnBhcmFtcyk7XG4gXHRpZiAocmV0IFx1MDAzYyAwKSB7XG4rXHRcdGF0aDExa19kcF9zcm5nX2NsZWFudXAoYWIsIHJpbmcpO1xuIFx0XHRhdGgxMWtfd2FybihhYiwgXCJmYWlsZWQgdG8gc2V0dXAgc3JuZzogJWQgcmluZ19pZCAlZFxcblwiLFxuIFx0XHRcdCAgICByZXQsIHJpbmdfbnVtKTtcbiBcdFx0cmV0dXJuIHJldDtcbiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTI4VDAwOjE0OjIwLjk0MjQ3NjNaIiwiU2VxIjozLCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo1MjgxMTczMjI3LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkFuYWx5emluZyBhIERyaXZlciBQYXRjaCBmb3IgRnV6emluZyBQb3RlbnRpYWwqKlxuXG5Pa2F5LCBzbyB0aGVyZSdzIGEgcGF0Y2ggaW4gYGRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvZHAuY2AuIFRoaXMgcGF0Y2ggY2FsbHMgYGF0aDExa19kcF9zcm5nX2NsZWFudXBgIHdpdGhpbiBgYXRoMTFrX2RwX3Nybmdfc2V0dXBgIGlmIGBhdGgxMWtfaGFsX3Nybmdfc2V0dXBgIGZhaWxzLiBNeSBpbW1lZGlhdGUgdGhvdWdodCBpcywgY2FuIHdlIGZ1enogdGhpcz8gTGV0J3MgZmlndXJlIG91dCBpZiB0aGlzIGBhdGgxMWtgIGRyaXZlciBpcyBldmVuIGEgdmlhYmxlIHRhcmdldCBmb3IgUUVNVSBmdXp6aW5nLlxuXG5SaWdodCwgYGF0aDExa2AgdHlwaWNhbGx5IGRlYWxzIHdpdGggUXVhbGNvbW0gODAyLjExYXggV0xBTiBkZXZpY2VzLCB1c3VhbGx5IFBDSWUgb3IgQUhCIGJhc2VkLiBJIGtub3cgaXQncyBub3QgZ29pbmcgdG8gYmUgZnV6emFibGUgdmlhIG1hYzgwMjExX2h3c2ltIG9yIHNpbWlsYXIsIGl0J3MgaGFyZHdhcmUgc3BlY2lmaWMsIGEgc3BlY2lhbGl6ZWQgZHJpdmVyLiBIb2xkIG9uLCB0aG91Z2guLi4gaXNuJ3QgdGhlcmUgc29tZSBQQ0kgYW5kIFVTQiBkZXZpY2UgZnV6emluZyBzdXBwb3J0IGluIHN5emthbGxlcj8gSXQncyBub3QgdGhlICp1c3VhbCogYXBwcm9hY2ggdG8gZnV6eiBQQ0llIFdpLUZpIGRyaXZlcnMsIGJ1dC4uLiB0aGUgcG90ZW50aWFsIGlzIHRoZXJlLiBXZSBvbmx5IGZ1enogdGhvc2UgaWYgdGhlcmUgaXMgZW11bGF0aW9uIG9yIHVzZSBQQ0kgZnV6emluZy5cblxuT2theSwgeWVzLCBzeXprYWxsZXIgKmRvZXMqIGhhdmUgUENJIGZ1enppbmcgY2FwYWJpbGl0aWVzLiBUaW1lIHRvIGRldGVybWluZSBpZiBgYXRoMTFrYCBpcyBhY3R1YWxseSBhIFBDSSBkcml2ZXIuIExldCdzIHJ1biBhIGBncmVwYCBmb3IgYHBjaV9yZWdpc3Rlcl9kcml2ZXJgIHdpdGhpbiB0aGUgYGRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYCBkaXJlY3RvcnkuIFRoYXQgc2hvdWxkIGdpdmUgbWUgYSBzb2xpZCBhbnN3ZXIuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjIxMDksIk91dHB1dFRva2VucyI6MzksIk91dHB1dFRob3VnaHRzVG9rZW5zIjoyNjIsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0yOFQwMDoxNDoyNi4yMjM2NTIyNjdaIiwiU2VxIjo0LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6OTIzNDI4ODgsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwicGNpX3JlZ2lzdGVyX2RyaXZlclwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJkcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJkcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL3BjaS5jPTEzMDM9c3RhdGljIGludCBhdGgxMWtfcGNpX2luaXQodm9pZClcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvcGNpLmMtMTMwNi1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL3BjaS5jOjEzMDc6XFx0cmV0ID0gcGNpX3JlZ2lzdGVyX2RyaXZlcihcXHUwMDI2YXRoMTFrX3BjaV9kcml2ZXIpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvcGNpLmMtMTMwOC1cXHRpZiAocmV0KVxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0yOFQwMDoxNDoyNi4zMTYwMDE4NTVaIiwiU2VxIjo1LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo1NjA5Mzc2NDEwLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkFuYWx5emluZyB0aGUgU3VpdGFiaWxpdHkgb2YgYXRoMTFrIGZvciBGdXp6aW5nKipcblxuT2theSwgc28gdGhlIGluaXRpYWwgYXNzZXNzbWVudCBpcyB0aGF0IHRoaXMgY29kZSByZWxhdGVzIHRvIGEgUENJIGRyaXZlci4gVGhlIGltbWVkaWF0ZSBxdWVzdGlvbiB0aGVuIGJlY29tZXMgd2hldGhlciBzeXprYWxsZXIgZXZlbiB0YXJnZXRzIGBhdGgxMWtgIGZvciBmdXp6aW5nLiBUaGUgcHJvbXB0IG1lbnRpb25zIGEgc3BlY2lmaWMgY29udGV4dDogXCJDb2RlIGluIHZlbmRvci1zcGVjaWZpYyBQQ0llIHN3aXRjaCwgU21hcnROSUMsIG9yIEdQVSBkcml2ZXJzLi4uIHRoYXQgcmVxdWlyZSBwaHlzaWNhbCBQQ0llIGhhcmR3YXJlIGNhcmRzIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCBRRU1VXCIuXG5cbkkgbmVlZCB0byBkZXRlcm1pbmUgaWYgYGF0aDExa2AgZml0cyB0aGlzIGRlc2NyaXB0aW9uLiBXZWxsLCBpdCdzIGEgZHJpdmVyIGZvciBRdWFsY29tbSBBdGhlcm9zIDgwMi4xMWF4IFdpLUZpLCB3aGljaCAqaXMqIHZlbmRvci1zcGVjaWZpYy4gQW5kLCB5ZXMsIGl0IGxpa2VseSAqZG9lcyogcmVxdWlyZSBzcGVjaWZpYyBoYXJkd2FyZS4gU3l6a2FsbGVyIGNhbiBmdXp6IFBDSSwgSSBrbm93IHRoYXQsIGJ1dCB0eXBpY2FsbHkgaXQgaW52b2x2ZXMgZWl0aGVyIGdlbmVyaWMgUENJIGRldmljZXMgb3IgdGhvc2UgZW11bGF0ZWQgaW4gdGhlIGZ1enppbmcgZW52aXJvbm1lbnQsIHJpZ2h0PyBUaGUgcHJvbXB0IG1ha2VzIGEgdmVyeSBjbGVhciBkaXN0aW5jdGlvbjogaWYgcGh5c2ljYWwgaGFyZHdhcmUgaXMgbmVlZGVkIGFuZCBub3QgZW11bGF0ZWQsIHRoZW4gYFdvcnRoRnV6emluZz1mYWxzZWAuXG5cblNvLCB0aGUgY3J1Y2lhbCBxdWVzdGlvbiBpcyB3aGV0aGVyIGBhdGgxMWtgIGZhbGxzIGludG8gdGhpcyBjYXRlZ29yeSBvZiByZXF1aXJpbmcgcGh5c2ljYWwgaGFyZHdhcmUsIG9yIGlmIGl0IGhhcyBzb21lIHBhdGggdGhhdCBjb3VsZCBiZSB0YWtlbiBieSB0aGUgZnV6emVyIHRoYXQgZG9lcyBub3QgcmVxdWlyZSB0aGUgaGFyZHdhcmUuIEkga25vdyBpdCdzIGEgV2ktRmkgZHJpdmVyLCBsaW5rZWQgdG8gYSBzcGVjaWZpYyBRdWFsY29tbSBoYXJkd2FyZSwgd2hpY2ggc3Ryb25nbHkgc3VnZ2VzdHMgdGhhdCBpdCBkb2VzLlxuXG5CdXQsIEkgc2hvdWxkIHZlcmlmeSB0aGlzIGFzc3VtcHRpb24uIEknbGwgbmVlZCB0byBjaGVjayBpZiB0aGVyZSdzIGEgd2F5IHRvIHJlYWNoIHRoZSB0YXJnZXQgZnVuY3Rpb24gd2l0aG91dCBuZWVkaW5nIHRoZSBzcGVjaWFsaXplZCBoYXJkd2FyZS4gTGV0J3Mgc2VlIGhvdyBgYXRoMTFrX2RwX3Nybmdfc2V0dXBgIGlzIGNhbGxlZC4gVGhhdCBzaG91bGQgZ2l2ZSBtZSB0aGUgaW5mb3JtYXRpb24gSSByZXF1aXJlIHRvIGRldGVybWluZSBpZiB0aGlzIHBpZWNlIG9mIGNvZGUgaXMgYSBnb29kIHRhcmdldCBmb3IgZnV6emluZy5cblxuXG4iLCJJbnB1dFRva2VucyI6Mjg4MywiT3V0cHV0VG9rZW5zIjo0NCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjMwNSwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0yOFQwMDoxNDozMS45MjUzODAwODVaIiwiU2VxIjo2LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MTAyMDk0ODQ4LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcImF0aDExa19kcF9zcm5nX3NldHVwXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvZGJyaW5nLmM9MjM3PWludCBhdGgxMWtfZGJyaW5nX3Nybmdfc2V0dXAoc3RydWN0IGF0aDExayAqYXIsIHN0cnVjdCBhdGgxMWtfZGJyaW5nICpyaW5nLFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9kYnJpbmcuYy0yNDEtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9kYnJpbmcuYzoyNDI6XFx0cmV0ID0gYXRoMTFrX2RwX3Nybmdfc2V0dXAoYXItXFx1MDAzZWFiLCBcXHUwMDI2cmluZy1cXHUwMDNlcmVmaWxsX3NybmcsIEhBTF9SWERNQV9ESVJfQlVGLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvZGJyaW5nLmMtMjQzLVxcdFxcdFxcdFxcdCAgIHJpbmdfbnVtLCBhci1cXHUwMDNlcGRldl9pZHgsIG51bV9lbnRyaWVzKTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvZHAuYz0xODE9c3RhdGljIHZvaWQgYXRoMTFrX2RwX3NybmdfbXNpX3NldHVwKHN0cnVjdCBhdGgxMWtfYmFzZSAqYWIsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2RwLmMtMjIwLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvZHAuYzoyMjE6aW50IGF0aDExa19kcF9zcm5nX3NldHVwKHN0cnVjdCBhdGgxMWtfYmFzZSAqYWIsIHN0cnVjdCBkcF9zcm5nICpyaW5nLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvZHAuYy0yMjItXFx0XFx0XFx0IGVudW0gaGFsX3JpbmdfdHlwZSB0eXBlLCBpbnQgcmluZ19udW0sXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2RwLmM9MzcxPXN0YXRpYyBpbnQgYXRoMTFrX2RwX3NybmdfY29tbW9uX3NldHVwKHN0cnVjdCBhdGgxMWtfYmFzZSAqYWIpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2RwLmMtMzc3LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvZHAuYzozNzg6XFx0cmV0ID0gYXRoMTFrX2RwX3Nybmdfc2V0dXAoYWIsIFxcdTAwMjZkcC1cXHUwMDNld2JtX2Rlc2NfcmVsX3JpbmcsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9kcC5jLTM3OS1cXHRcXHRcXHRcXHQgICBIQUxfU1cyV0JNX1JFTEVBU0UsIDAsIDAsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2RwLmMtMzg2LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvZHAuYzozODc6XFx0cmV0ID0gYXRoMTFrX2RwX3Nybmdfc2V0dXAoYWIsIFxcdTAwMjZkcC1cXHUwMDNldGNsX2NtZF9yaW5nLCBIQUxfVENMX0NNRCwgMCwgMCxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2RwLmMtMzg4LVxcdFxcdFxcdFxcdCAgIERQX1RDTF9DTURfUklOR19TSVpFKTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvZHAuYy0zOTMtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9kcC5jOjM5NDpcXHRyZXQgPSBhdGgxMWtfZHBfc3JuZ19zZXR1cChhYiwgXFx1MDAyNmRwLVxcdTAwM2V0Y2xfc3RhdHVzX3JpbmcsIEhBTF9UQ0xfU1RBVFVTLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvZHAuYy0zOTUtXFx0XFx0XFx0XFx0ICAgMCwgMCwgRFBfVENMX1NUQVRVU19SSU5HX1NJWkUpO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9kcC5jLTQwNC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2RwLmM6NDA1OlxcdFxcdHJldCA9IGF0aDExa19kcF9zcm5nX3NldHVwKGFiLCBcXHUwMDI2ZHAtXFx1MDAzZXR4X3JpbmdbaV0udGNsX2RhdGFfcmluZyxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2RwLmMtNDA2LVxcdFxcdFxcdFxcdFxcdCAgIEhBTF9UQ0xfREFUQSwgdGNsX251bSwgMCxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvZHAuYy00MTMtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9kcC5jOjQxNDpcXHRcXHRyZXQgPSBhdGgxMWtfZHBfc3JuZ19zZXR1cChhYiwgXFx1MDAyNmRwLVxcdTAwM2V0eF9yaW5nW2ldLnRjbF9jb21wX3JpbmcsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9kcC5jLTQxNS1cXHRcXHRcXHRcXHRcXHQgICBIQUxfV0JNMlNXX1JFTEVBU0UsIHdibV9udW0sIDAsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2RwLmMtNDMwLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvZHAuYzo0MzE6XFx0cmV0ID0gYXRoMTFrX2RwX3Nybmdfc2V0dXAoYWIsIFxcdTAwMjZkcC1cXHUwMDNlcmVvX3JlaW5qZWN0X3JpbmcsIEhBTF9SRU9fUkVJTkpFQ1QsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9kcC5jLTQzMi1cXHRcXHRcXHRcXHQgICAwLCAwLCBEUF9SRU9fUkVJTkpFQ1RfUklOR19TSVpFKTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvZHAuYy00MzgtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9kcC5jOjQzOTpcXHRyZXQgPSBhdGgxMWtfZHBfc3JuZ19zZXR1cChhYiwgXFx1MDAyNmRwLVxcdTAwM2VyeF9yZWxfcmluZywgSEFMX1dCTTJTV19SRUxFQVNFLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvZHAuYy00NDAtXFx0XFx0XFx0XFx0ICAgRFBfUlhfUkVMRUFTRV9SSU5HX05VTSwgMCwgRFBfUlhfUkVMRUFTRV9SSU5HX1NJWkUpO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9kcC5jLTQ0NS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2RwLmM6NDQ2OlxcdHJldCA9IGF0aDExa19kcF9zcm5nX3NldHVwKGFiLCBcXHUwMDI2ZHAtXFx1MDAzZXJlb19leGNlcHRfcmluZywgSEFMX1JFT19FWENFUFRJT04sXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9kcC5jLTQ0Ny1cXHRcXHRcXHRcXHQgICAwLCAwLCBEUF9SRU9fRVhDRVBUSU9OX1JJTkdfU0laRSk7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2RwLmMtNDUzLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvZHAuYzo0NTQ6XFx0cmV0ID0gYXRoMTFrX2RwX3Nybmdfc2V0dXAoYWIsIFxcdTAwMjZkcC1cXHUwMDNlcmVvX2NtZF9yaW5nLCBIQUxfUkVPX0NNRCxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2RwLmMtNDU1LVxcdFxcdFxcdFxcdCAgIDAsIDAsIERQX1JFT19DTURfUklOR19TSVpFKTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvZHAuYy00NjctXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9kcC5jOjQ2ODpcXHRyZXQgPSBhdGgxMWtfZHBfc3JuZ19zZXR1cChhYiwgXFx1MDAyNmRwLVxcdTAwM2VyZW9fc3RhdHVzX3JpbmcsIEhBTF9SRU9fU1RBVFVTLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvZHAuYy00NjktXFx0XFx0XFx0XFx0ICAgMCwgMCwgRFBfUkVPX1NUQVRVU19SSU5HX1NJWkUpO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9kcC5jPTY0Nz1zdGF0aWMgaW50IGF0aDExa193Ym1faWRsZV9yaW5nX3NldHVwKHN0cnVjdCBhdGgxMWtfYmFzZSAqYWIsIHUzMiAqbl9saW5rX2Rlc2MpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2RwLmMtNjczLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvZHAuYzo2NzQ6XFx0cmV0ID0gYXRoMTFrX2RwX3Nybmdfc2V0dXAoYWIsIFxcdTAwMjZkcC1cXHUwMDNld2JtX2lkbGVfcmluZyxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2RwLmMtNjc1LVxcdFxcdFxcdFxcdCAgIEhBTF9XQk1fSURMRV9MSU5LLCAwLCAwLCAqbl9saW5rX2Rlc2MpO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9kcC5oPTE2NzI9dm9pZCBhdGgxMWtfZHBfc3JuZ19jbGVhbnVwKHN0cnVjdCBhdGgxMWtfYmFzZSAqYWIsIHN0cnVjdCBkcF9zcm5nICpyaW5nKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2RwLmg6MTY3MzppbnQgYXRoMTFrX2RwX3Nybmdfc2V0dXAoc3RydWN0IGF0aDExa19iYXNlICphYiwgc3RydWN0IGRwX3NybmcgKnJpbmcsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9kcC5oLTE2NzQtXFx0XFx0XFx0IGVudW0gaGFsX3JpbmdfdHlwZSB0eXBlLCBpbnQgcmluZ19udW0sXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2RwX3J4LmM9NTQ2PWludCBhdGgxMWtfZHBfcGRldl9yZW9fc2V0dXAoc3RydWN0IGF0aDExa19iYXNlICphYilcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvZHBfcnguYy01NTItXFx0Zm9yIChpID0gMDsgaSBcXHUwMDNjIERQX1JFT19EU1RfUklOR19NQVg7IGkrKykge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvZHBfcnguYzo1NTM6XFx0XFx0cmV0ID0gYXRoMTFrX2RwX3Nybmdfc2V0dXAoYWIsIFxcdTAwMjZkcC1cXHUwMDNlcmVvX2RzdF9yaW5nW2ldLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvZHBfcnguYy01NTQtXFx0XFx0XFx0XFx0XFx0ICAgSEFMX1JFT19EU1QsIGksIDAsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2RwX3J4LmM9NTcwPXN0YXRpYyBpbnQgYXRoMTFrX2RwX3J4X3BkZXZfc3JuZ19hbGxvYyhzdHJ1Y3QgYXRoMTFrICphcilcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvZHBfcnguYy01NzctXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9kcF9yeC5jOjU3ODpcXHRyZXQgPSBhdGgxMWtfZHBfc3JuZ19zZXR1cChhci1cXHUwMDNlYWIsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9kcF9yeC5jLTU3OS1cXHRcXHRcXHRcXHQgICBcXHUwMDI2ZHAtXFx1MDAzZXJ4X3JlZmlsbF9idWZfcmluZy5yZWZpbGxfYnVmX3JpbmcsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2RwX3J4LmMtNTg4LVxcdFxcdGZvciAoaSA9IDA7IGkgXFx1MDAzYyBhYi1cXHUwMDNlaHdfcGFyYW1zLm51bV9yeGRtYV9wZXJfcGRldjsgaSsrKSB7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9kcF9yeC5jOjU4OTpcXHRcXHRcXHRyZXQgPSBhdGgxMWtfZHBfc3JuZ19zZXR1cChhci1cXHUwMDNlYWIsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9kcF9yeC5jLTU5MC1cXHRcXHRcXHRcXHRcXHRcXHQgICBcXHUwMDI2ZHAtXFx1MDAzZXJ4X21hY19idWZfcmluZ1tpXSxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvZHBfcnguYy02MDEtXFx0Zm9yIChpID0gMDsgaSBcXHUwMDNjIGFiLVxcdTAwM2Vod19wYXJhbXMubnVtX3J4ZG1hX3Blcl9wZGV2OyBpKyspIHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2RwX3J4LmM6NjAyOlxcdFxcdHJldCA9IGF0aDExa19kcF9zcm5nX3NldHVwKGFyLVxcdTAwM2VhYiwgXFx1MDAyNmRwLVxcdTAwM2VyeGRtYV9lcnJfZHN0X3JpbmdbaV0sXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9kcF9yeC5jLTYwMy1cXHRcXHRcXHRcXHRcXHQgICBIQUxfUlhETUFfRFNULCAwLCBkcC1cXHUwMDNlbWFjX2lkICsgaSxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvZHBfcnguYy02MTItXFx0XFx0c3JuZyA9IFxcdTAwMjZkcC1cXHUwMDNlcnhfbW9uX3N0YXR1c19yZWZpbGxfcmluZ1tpXS5yZWZpbGxfYnVmX3Jpbmc7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9kcF9yeC5jOjYxMzpcXHRcXHRyZXQgPSBhdGgxMWtfZHBfc3JuZ19zZXR1cChhci1cXHUwMDNlYWIsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9kcF9yeC5jLTYxNC1cXHRcXHRcXHRcXHRcXHQgICBzcm5nLFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9kcF9yeC5jLTYzNS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2RwX3J4LmM6NjM2OlxcdHJldCA9IGF0aDExa19kcF9zcm5nX3NldHVwKGFyLVxcdTAwM2VhYixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2RwX3J4LmMtNjM3LVxcdFxcdFxcdFxcdCAgIFxcdTAwMjZkcC1cXHUwMDNlcnhkbWFfbW9uX2J1Zl9yaW5nLnJlZmlsbF9idWZfcmluZyxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvZHBfcnguYy02NDUtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9kcF9yeC5jOjY0NjpcXHRyZXQgPSBhdGgxMWtfZHBfc3JuZ19zZXR1cChhci1cXHUwMDNlYWIsIFxcdTAwMjZkcC1cXHUwMDNlcnhkbWFfbW9uX2RzdF9yaW5nLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvZHBfcnguYy02NDctXFx0XFx0XFx0XFx0ICAgSEFMX1JYRE1BX01PTklUT1JfRFNULCAwLCBkcC1cXHUwMDNlbWFjX2lkLFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9kcF9yeC5jLTY1NC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2RwX3J4LmM6NjU1OlxcdHJldCA9IGF0aDExa19kcF9zcm5nX3NldHVwKGFyLVxcdTAwM2VhYiwgXFx1MDAyNmRwLVxcdTAwM2VyeGRtYV9tb25fZGVzY19yaW5nLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvZHBfcnguYy02NTYtXFx0XFx0XFx0XFx0ICAgSEFMX1JYRE1BX01PTklUT1JfREVTQywgMCwgZHAtXFx1MDAzZW1hY19pZCxcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMjhUMDA6MTQ6MzIuMDI3NTEwMjAzWiIsIlNlcSI6NywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6MTA2MDAzODU5ODIsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqQW5hbHl6aW5nIHRoZSBGdXp6YWJpbGl0eSBvZiB0aGUgYXRoMTFrIFdpLUZpIERyaXZlcioqXG5cbk9rYXksIHNvIHRoZSBwcm9tcHQgaXMgdmVyeSBzcGVjaWZpYyBhYm91dCBleGNsdWRpbmcgY2VydGFpbiBjb2RlIHBhdGhzIGZyb20gYmVpbmcgY29uc2lkZXJlZCBcIndvcnRoIGZ1enppbmcsXCIgcGFydGljdWxhcmx5IHRob3NlIHJlcXVpcmluZyBwaHlzaWNhbCBQQ0llIGhhcmR3YXJlIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCBRRU1VLiBNeSBpbml0aWFsIHRob3VnaHQgaXMsIFwiV2FpdCwgYXRoMTFrIGlzIGEgdmVuZG9yLXNwZWNpZmljIFBDSWUgV2ktRmkgZHJpdmVyLCByaWdodD9cIiBZZXMsIFF1YWxjb21tIEF0aGVyb3MgODAyLjExYXguIFRoZSBuZXh0IHF1ZXN0aW9uIGlzIHdoZXRoZXIgaXQgKm5lZWRzKiBwaHlzaWNhbCBoYXJkd2FyZS4gSXQgc2VlbXMgbGlrZSBpdCBkb2VzLCBiYXNlZCBvbiBteSB1bmRlcnN0YW5kaW5nLlxuXG5DYW4gSSBmdXp6IGl0IHdpdGggYG1hYzgwMjExX2h3c2ltYD8gTm8sIHRoYXQncyBhIHNlcGFyYXRlIGRyaXZlciwgbm90IGFwcGxpY2FibGUgaGVyZS4gVVNCPyBObywgbm8gYXRoMTFrIFVTQiBkcml2ZXIgZXhpc3RzLiBBSEI/IFBvc3NpYmx5LCBidXQgdGhhdCdzIFNPQyBzcGVjaWZpYyBhbmQgbGVzcyByZWxldmFudC4gU28sIGl0J3MgUENJZSBvciBBSEIsIHdoaWNoIHBvaW50cyB0b3dhcmRzIHRoZSBuZWVkIGZvciByZWFsIGhhcmR3YXJlLlxuXG5UaGUgcHJvbXB0IGxpc3RzIGBtbHhzd2AsIGBwZHNfY29yZWAsIGBxZWRgLCBgaW9uaWNgLCBhbmQgYGFtZGdwdWAgYXMgZXhhbXBsZXMgb2YgZHJpdmVycyB0aGF0IGZhbGwgaW50byB0aGlzIGV4Y2x1c2lvbiBjYXRlZ29yeS4gU28sIGlzIGF0aDExayBhIFNtYXJ0TklDLCBHUFUsIG9yIFBDSWUgc3dpdGNoPyBEZWZpbml0ZWx5IG5vdC4gQnV0IHRoZSBjb3JlIG9mIHRoZSBleGNsdXNpb24gaXMgdGhlIG5lZWQgZm9yIHBoeXNpY2FsIGhhcmR3YXJlIG5vdCBlbXVsYXRlZCBpbiBRRU1VLiBBcmUgV2ktRmkgUENJZSBjYXJkcyBlbXVsYXRlZCBpbiBRRU1VPyBOby5cblxuQnV0IHN5emthbGxlciBkb2VzIGZ1enogV2ktRmkgZHJpdmVycywgc29tZSB2aWEgVVNCIChgYXRoOWtfaHRjYCwgYGNhcmw5MTcwYCwgZXRjLikgb3IgYG1hYzgwMjExX2h3c2ltYC4gRG9lcyBzeXprYWxsZXIgZnV6eiBQQ0kgZGV2aWNlcyBpbiBnZW5lcmFsPyBZZXMsIGl0IGRvZXMuIEl0IGhhcyBhIFBDSSBmdXp6ZXIgdGhhdCBpbmplY3RzIFBDSSBjb25maWcgYW5kIG1lbW9yeSBzcGFjZS4gSG93ZXZlciwgdGhlIHByb21wdCB0aGVuIHN0YXRlcyB0aGlzIGFsc28gaW5jbHVkZXMgYW55IGNvZGUgaW1wb3NzaWJsZSB0byByZWFjaCBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBHQ0Ugb3IgUUVNVSwgZXZlbiB3aXRoIGVtdWxhdGVkIGhhcmR3YXJlLiBJZiBhdGgxMWsgaXMgYSBoYXJkd2FyZS1zcGVjaWZpYyBkcml2ZXIsIGFuZCBpdCBkb2Vzbid0IGhhdmUgYW4gZW11bGF0aW9uLCB0aGlzIG1ha2VzIGl0IGltcG9zc2libGUgdG8gcmVhY2ggaW4gUUVNVS5cblxuQnV0IHdhaXQgYSBtaW51dGUuLi4gZG9lcyBzeXprYWxsZXIgZnV6eiBhdGgxMWs/IEkgbmVlZCB0byBjaGVjay4gSSBzZWVtIHRvIHJlY2FsbCBzZWVpbmcgc3l6a2FsbGVyIHJlcG9ydHMgZm9yIGF0aDExayBidWdzLiBMZXQgbWUgY2hlY2sgbXkgbm90ZXMsIGFuZCBsb29rIGZvciBhbnkgcmVjZW50IHJlcG9ydHMuXG5cbk9oIHJpZ2h0LCBpdCBsb29rcyBsaWtlIHN5emthbGxlciAqZG9lcyogZnV6eiBQQ0kgZGV2aWNlcyB1c2luZyBhIHZpcnR1YWwgUENJIGRldmljZSwgbm90IGJ5IGVtdWxhdGluZy4gVGhlIHF1ZXN0aW9uIGlzLCBkb2VzIGl0IHdvcmsgZm9yIGFsbCBkcml2ZXJzLCBvciBqdXN0IHRoZSBzaW1wbGVyIG9uZXMgdGhhdCBjYW4gYmUgcHJvYmVkIGFuZCBpbml0aWFsaXplZCBlYXNpbHk/IFRoZSBkcml2ZXIgZG9lc24ndCBuZWVkIHRvIGJlIGZ1bGx5IGVtdWxhdGVkLiBJIHJlbWVtYmVyIHRoaXMuXG5UaGVuIEkgc2hvdWxkIHJlYWxseSBjaGVjayB3aGV0aGVyIHN5emthbGxlciBhY3R1YWxseSBmdXp6ZWQgYXRoMTFrLlxuSSBuZWVkIHRvIGNoZWNrIGZvciBzeXprYWxsZXIgYW5ub3RhdGlvbnMgaW4gdGhlIGtlcm5lbCBmb3IgYXRoMTFrLlxuXG5cbiIsIklucHV0VG9rZW5zIjo2NjcyLCJPdXRwdXRUb2tlbnMiOjM3LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6ODMyLCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTI4VDAwOjE0OjQyLjYyNzg5ODU2NloiLCJTZXEiOjgsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo1MjY2NDg3ODAsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiYXRoMTFrXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcIlxcbkZ1bGwgb3V0cHV0IGlzIHRvbyBsb25nLCBzaG93aW5nIDUwMCBvdXQgb2YgMjY2NjkgbGluZXMuXFxuVXNlIG1vcmUgcHJlY2lzZSBleHByZXNzaW9uIGlmIHBvc3NpYmxlLlxcblxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvS2NvbmZpZz0yPWNvbmZpZyBBVEgxMUtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvS2NvbmZpZy0xMC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL0tjb25maWc6MTE6XFx0ICBJZiB5b3UgY2hvb3NlIHRvIGJ1aWxkIGEgbW9kdWxlLCBpdCdsbCBiZSBjYWxsZWQgYXRoMTFrLlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvS2NvbmZpZy0xMi1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL0tjb25maWc9MTM9Y29uZmlnIEFUSDExS19BSEJcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL0tjb25maWc6MTQ6XFx0dHJpc3RhdGUgXFxcIkF0aGVyb3MgYXRoMTFrIEFIQiBzdXBwb3J0XFxcIlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvS2NvbmZpZy0xNS1cXHRkZXBlbmRzIG9uIEFUSDExS1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9LY29uZmlnPTIwPWNvbmZpZyBBVEgxMUtfUENJXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9LY29uZmlnOjIxOlxcdHRyaXN0YXRlIFxcXCJBdGhlcm9zIGF0aDExayBQQ0kgc3VwcG9ydFxcXCJcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL0tjb25maWctMjItXFx0ZGVwZW5kcyBvbiBBVEgxMUsgXFx1MDAyNlxcdTAwMjYgUENJXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL0tjb25maWc9MzA9Y29uZmlnIEFUSDExS19ERUJVR1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvS2NvbmZpZzozMTpcXHRib29sIFxcXCJRQ0EgYXRoMTFrIGRlYnVnZ2luZ1xcXCJcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL0tjb25maWctMzItXFx0ZGVwZW5kcyBvbiBBVEgxMUtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvS2NvbmZpZz0zOD1jb25maWcgQVRIMTFLX0RFQlVHRlNcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL0tjb25maWc6Mzk6XFx0Ym9vbCBcXFwiUUNBIGF0aDExayBkZWJ1Z2ZzIHN1cHBvcnRcXFwiXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9LY29uZmlnLTQwLVxcdGRlcGVuZHMgb24gQVRIMTFLIFxcdTAwMjZcXHUwMDI2IERFQlVHX0ZTIFxcdTAwMjZcXHUwMDI2IE1BQzgwMjExX0RFQlVHRlNcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL0tjb25maWctNDEtXFx0aGVscFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvS2NvbmZpZzo0MjpcXHQgIEVuYWJsZSBhdGgxMWsgZGVidWdmcyBzdXBwb3J0XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9LY29uZmlnLTQzLVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9LY29uZmlnPTQ2PWNvbmZpZyBBVEgxMUtfVFJBQ0lOR1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvS2NvbmZpZzo0NzpcXHRib29sIFxcXCJhdGgxMWsgdHJhY2luZyBzdXBwb3J0XFxcIlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvS2NvbmZpZy00OC1cXHRkZXBlbmRzIG9uIEFUSDExSyBcXHUwMDI2XFx1MDAyNiBFVkVOVF9UUkFDSU5HXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9LY29uZmlnLTQ5LVxcdGhlbHBcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL0tjb25maWc6NTA6XFx0ICBTZWxlY3QgdGhpcyB0byB1c2UgYXRoMTFrIHRyYWNpbmcgaW5mcmFzdHJ1Y3R1cmUuXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9LY29uZmlnLTUxLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvS2NvbmZpZz01Mj1jb25maWcgQVRIMTFLX1NQRUNUUkFMXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9LY29uZmlnOjUzOlxcdGJvb2wgXFxcIlFDQSBhdGgxMWsgc3BlY3RyYWwgc2NhbiBzdXBwb3J0XFxcIlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvS2NvbmZpZy01NC1cXHRkZXBlbmRzIG9uIEFUSDExS19ERUJVR0ZTXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL0tjb25maWctNTYtXFx0aGVscFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvS2NvbmZpZzo1NzpcXHQgIEVuYWJsZSBhdGgxMWsgc3BlY3RyYWwgc2NhbiBzdXBwb3J0XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9LY29uZmlnLTU4LVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9LY29uZmlnPTYxPWNvbmZpZyBBVEgxMUtfQ0ZSXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9LY29uZmlnOjYyOlxcdGJvb2wgXFxcImF0aDExayBjaGFubmVsIGZyZXF1ZW5jeSByZXNwb25zZSBzdXBwb3J0XFxcIlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvS2NvbmZpZy02My1cXHRkZXBlbmRzIG9uIEFUSDExS19ERUJVR0ZTXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL0tjb25maWctNjUtXFx0aGVscFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvS2NvbmZpZzo2NjpcXHQgIEVuYWJsZSBhdGgxMWsgY2hhbm5lbCBmcmVxdWVuY3kgcmVzcG9uc2UgZHVtcCBzdXBwb3J0LlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvS2NvbmZpZy02Ny1cXHQgIFRoaXMgb3B0aW9uIGV4cG9zZXMgZGVidWdmcyBub2RlcyB0aGF0IHdpbGwgYWxsb3cgdGhlIHVzZXJcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvTWFrZWZpbGUtMS0jIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBCU0QtMy1DbGF1c2UtQ2xlYXJcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL01ha2VmaWxlOjI6b2JqLSQoQ09ORklHX0FUSDExSykgKz0gYXRoMTFrLm9cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL01ha2VmaWxlOjM6YXRoMTFrLXkgKz0gY29yZS5vIFxcXFxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL01ha2VmaWxlLTQtXFx0ICAgIGhhbC5vIFxcXFxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvTWFrZWZpbGUtMjMtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9NYWtlZmlsZToyNDphdGgxMWstJChDT05GSUdfQVRIMTFLX0RFQlVHRlMpICs9IGRlYnVnZnMubyBkZWJ1Z2ZzX2h0dF9zdGF0cy5vIGRlYnVnZnNfc3RhLm9cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL01ha2VmaWxlOjI1OmF0aDExay0kKENPTkZJR19OTDgwMjExX1RFU1RNT0RFKSArPSB0ZXN0bW9kZS5vXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9NYWtlZmlsZToyNjphdGgxMWstJChDT05GSUdfQVRIMTFLX1RSQUNJTkcpICs9IHRyYWNlLm9cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL01ha2VmaWxlOjI3OmF0aDExay0kKENPTkZJR19USEVSTUFMKSArPSB0aGVybWFsLm9cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL01ha2VmaWxlOjI4OmF0aDExay0kKENPTkZJR19BVEgxMUtfU1BFQ1RSQUwpICs9IHNwZWN0cmFsLm9cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL01ha2VmaWxlOjI5OmF0aDExay0kKENPTkZJR19QTSkgKz0gd293Lm9cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL01ha2VmaWxlOjMwOmF0aDExay0kKENPTkZJR19ERVZfQ09SRURVTVApICs9IGNvcmVkdW1wLm9cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL01ha2VmaWxlOjMxOmF0aDExay0kKENPTkZJR19BVEgxMUtfQ0ZSKSArPSBjZnIub1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvTWFrZWZpbGUtMzItXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9NYWtlZmlsZTozMzpvYmotJChDT05GSUdfQVRIMTFLX0FIQikgKz0gYXRoMTFrX2FoYi5vXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9NYWtlZmlsZTozNDphdGgxMWtfYWhiLXkgKz0gYWhiLm9cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL01ha2VmaWxlLTM1LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvTWFrZWZpbGU6MzY6b2JqLSQoQ09ORklHX0FUSDExS19QQ0kpICs9IGF0aDExa19wY2kub1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvTWFrZWZpbGU6Mzc6YXRoMTFrX3BjaS15ICs9IG1oaS5vIHBjaS5vXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9NYWtlZmlsZS0zOC1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtMjMtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYzoyNDpzdGF0aWMgY29uc3Qgc3RydWN0IG9mX2RldmljZV9pZCBhdGgxMWtfYWhiX29mX21hdGNoW10gPSB7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy0yNS1cXHQvKiBUT0RPOiBTaG91bGQgd2UgY2hhbmdlIHRoZSBjb21wYXRpYmxlIHN0cmluZyB0byBzb21ldGhpbmcgc2ltaWxhclxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy00Mi1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jOjQzOk1PRFVMRV9ERVZJQ0VfVEFCTEUob2YsIGF0aDExa19haGJfb2ZfbWF0Y2gpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtNDQtXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jPTE0ND1zdGF0aWMgaW50XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYzoxNDU6YXRoMTFrX2FoYl9nZXRfbXNpX2lycV93Y242NzUwKHN0cnVjdCBhdGgxMWtfYmFzZSAqYWIsIHVuc2lnbmVkIGludCB2ZWN0b3IpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy0xNDYte1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYz0xNTA9c3RhdGljIGlubGluZSB1MzJcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jOjE1MTphdGgxMWtfYWhiX2dldF93aW5kb3dfc3RhcnRfd2NuNjc1MChzdHJ1Y3QgYXRoMTFrX2Jhc2UgKmFiLCB1MzIgb2Zmc2V0KVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtMTUyLXtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmM9MTY2PXN0YXRpYyB2b2lkXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYzoxNjc6YXRoMTFrX2FoYl93aW5kb3dfd3JpdGUzMl93Y242NzUwKHN0cnVjdCBhdGgxMWtfYmFzZSAqYWIsIHUzMiBvZmZzZXQsIHUzMiB2YWx1ZSlcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTE2OC17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTE3MS1cXHQvKiBXQ042NzUwIHVzZXMgc3RhdGljIHdpbmRvdyBiYXNlZCByZWdpc3RlciBhY2Nlc3MqL1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmM6MTcyOlxcdHdpbmRvd19zdGFydCA9IGF0aDExa19haGJfZ2V0X3dpbmRvd19zdGFydF93Y242NzUwKGFiLCBvZmZzZXQpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtMTczLVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy0xNzctXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYzoxNzg6c3RhdGljIHUzMiBhdGgxMWtfYWhiX3dpbmRvd19yZWFkMzJfd2NuNjc1MChzdHJ1Y3QgYXRoMTFrX2Jhc2UgKmFiLCB1MzIgb2Zmc2V0KVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtMTc5LXtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtMTgzLVxcdC8qIFdDTjY3NTAgdXNlcyBzdGF0aWMgd2luZG93IGJhc2VkIHJlZ2lzdGVyIGFjY2VzcyAqL1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmM6MTg0OlxcdHdpbmRvd19zdGFydCA9IGF0aDExa19haGJfZ2V0X3dpbmRvd19zdGFydF93Y242NzUwKGFiLCBvZmZzZXQpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtMTg1LVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy0xOTAtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYzoxOTE6c3RhdGljIGNvbnN0IHN0cnVjdCBhdGgxMWtfcGNpX29wcyBhdGgxMWtfYWhiX3BjaV9vcHNfd2NuNjc1MCA9IHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTE5Mi1cXHQud2FrZXVwID0gTlVMTCxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTE5My1cXHQucmVsZWFzZSA9IE5VTEwsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYzoxOTQ6XFx0LmdldF9tc2lfaXJxID0gYXRoMTFrX2FoYl9nZXRfbXNpX2lycV93Y242NzUwLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmM6MTk1OlxcdC53aW5kb3dfd3JpdGUzMiA9IGF0aDExa19haGJfd2luZG93X3dyaXRlMzJfd2NuNjc1MCxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jOjE5NjpcXHQud2luZG93X3JlYWQzMiA9IGF0aDExa19haGJfd2luZG93X3JlYWQzMl93Y242NzUwLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtMTk3LX07XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy0xOTgtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYzoxOTk6c3RhdGljIGlubGluZSB1MzIgYXRoMTFrX2FoYl9yZWFkMzIoc3RydWN0IGF0aDExa19iYXNlICphYiwgdTMyIG9mZnNldClcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTIwMC17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTIwMy1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jOjIwNDpzdGF0aWMgaW5saW5lIHZvaWQgYXRoMTFrX2FoYl93cml0ZTMyKHN0cnVjdCBhdGgxMWtfYmFzZSAqYWIsIHUzMiBvZmZzZXQsIHUzMiB2YWx1ZSlcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTIwNS17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTIwOC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jOjIwOTpzdGF0aWMgdm9pZCBhdGgxMWtfYWhiX2tpbGxfdGFza2xldHMoc3RydWN0IGF0aDExa19iYXNlICphYilcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTIxMC17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTIxMy1cXHRmb3IgKGkgPSAwOyBpIFxcdTAwM2MgYWItXFx1MDAzZWh3X3BhcmFtcy5jZV9jb3VudDsgaSsrKSB7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYzoyMTQ6XFx0XFx0c3RydWN0IGF0aDExa19jZV9waXBlICpjZV9waXBlID0gXFx1MDAyNmFiLVxcdTAwM2VjZS5jZV9waXBlW2ldO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtMjE1LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmM6MjE2OlxcdFxcdGlmIChhdGgxMWtfY2VfZ2V0X2F0dHJfZmxhZ3MoYWIsIGkpIFxcdTAwMjYgQ0VfQVRUUl9ESVNfSU5UUilcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTIxNy1cXHRcXHRcXHRjb250aW51ZTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtMjIyLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmM6MjIzOnN0YXRpYyB2b2lkIGF0aDExa19haGJfZXh0X2dycF9kaXNhYmxlKHN0cnVjdCBhdGgxMWtfZXh0X2lycV9ncnAgKmlycV9ncnApXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy0yMjQte1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy0yMzAtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYzoyMzE6c3RhdGljIHZvaWQgX19hdGgxMWtfYWhiX2V4dF9pcnFfZGlzYWJsZShzdHJ1Y3QgYXRoMTFrX2Jhc2UgKmFiKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtMjMyLXtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtMjM1LVxcdGZvciAoaSA9IDA7IGkgXFx1MDAzYyBBVEgxMUtfRVhUX0lSUV9HUlBfTlVNX01BWDsgaSsrKSB7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYzoyMzY6XFx0XFx0c3RydWN0IGF0aDExa19leHRfaXJxX2dycCAqaXJxX2dycCA9IFxcdTAwMjZhYi1cXHUwMDNlZXh0X2lycV9ncnBbaV07XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy0yMzctXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYzoyMzg6XFx0XFx0YXRoMTFrX2FoYl9leHRfZ3JwX2Rpc2FibGUoaXJxX2dycCk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy0yMzktXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTI0Ny1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jOjI0ODpzdGF0aWMgdm9pZCBhdGgxMWtfYWhiX2V4dF9ncnBfZW5hYmxlKHN0cnVjdCBhdGgxMWtfZXh0X2lycV9ncnAgKmlycV9ncnApXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy0yNDkte1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy0yNTUtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYzoyNTY6c3RhdGljIHZvaWQgYXRoMTFrX2FoYl9zZXRiaXQzMihzdHJ1Y3QgYXRoMTFrX2Jhc2UgKmFiLCB1OCBiaXQsIHUzMiBvZmZzZXQpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy0yNTcte1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy0yNTktXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYzoyNjA6XFx0dmFsID0gYXRoMTFrX2FoYl9yZWFkMzIoYWIsIG9mZnNldCk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYzoyNjE6XFx0YXRoMTFrX2FoYl93cml0ZTMyKGFiLCBvZmZzZXQsIHZhbCB8IEJJVChiaXQpKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTI2Mi19XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy0yNjMtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYzoyNjQ6c3RhdGljIHZvaWQgYXRoMTFrX2FoYl9jbGVhcmJpdDMyKHN0cnVjdCBhdGgxMWtfYmFzZSAqYWIsIHU4IGJpdCwgdTMyIG9mZnNldClcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTI2NS17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTI2Ny1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jOjI2ODpcXHR2YWwgPSBhdGgxMWtfYWhiX3JlYWQzMihhYiwgb2Zmc2V0KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jOjI2OTpcXHRhdGgxMWtfYWhiX3dyaXRlMzIoYWIsIG9mZnNldCwgdmFsIFxcdTAwMjYgfkJJVChiaXQpKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTI3MC19XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy0yNzEtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYzoyNzI6c3RhdGljIHZvaWQgYXRoMTFrX2FoYl9jZV9pcnFfZW5hYmxlKHN0cnVjdCBhdGgxMWtfYmFzZSAqYWIsIHUxNiBjZV9pZClcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTI3My17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTI4My1cXHRpZiAoY2VfYXR0ci1cXHUwMDNlc3JjX25lbnRyaWVzKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmM6Mjg0OlxcdFxcdGF0aDExa19haGJfc2V0Yml0MzIoYWIsIGNlX2lkLCBpZTFfcmVnX2FkZHIpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtMjg1LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtMjg2LVxcdGlmIChjZV9hdHRyLVxcdTAwM2VkZXN0X25lbnRyaWVzKSB7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYzoyODc6XFx0XFx0YXRoMTFrX2FoYl9zZXRiaXQzMihhYiwgY2VfaWQsIGllMl9yZWdfYWRkcik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYzoyODg6XFx0XFx0YXRoMTFrX2FoYl9zZXRiaXQzMihhYiwgY2VfaWQgKyBDRV9IT1NUX0lFXzNfU0hJRlQsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy0yODktXFx0XFx0XFx0XFx0ICAgIGllM19yZWdfYWRkcik7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTI5Mi1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jOjI5MzpzdGF0aWMgdm9pZCBhdGgxMWtfYWhiX2NlX2lycV9kaXNhYmxlKHN0cnVjdCBhdGgxMWtfYmFzZSAqYWIsIHUxNiBjZV9pZClcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTI5NC17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTMwNC1cXHRpZiAoY2VfYXR0ci1cXHUwMDNlc3JjX25lbnRyaWVzKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmM6MzA1OlxcdFxcdGF0aDExa19haGJfY2xlYXJiaXQzMihhYiwgY2VfaWQsIGllMV9yZWdfYWRkcik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy0zMDYtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy0zMDctXFx0aWYgKGNlX2F0dHItXFx1MDAzZWRlc3RfbmVudHJpZXMpIHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jOjMwODpcXHRcXHRhdGgxMWtfYWhiX2NsZWFyYml0MzIoYWIsIGNlX2lkLCBpZTJfcmVnX2FkZHIpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmM6MzA5OlxcdFxcdGF0aDExa19haGJfY2xlYXJiaXQzMihhYiwgY2VfaWQgKyBDRV9IT1NUX0lFXzNfU0hJRlQsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy0zMTAtXFx0XFx0XFx0XFx0ICAgICAgaWUzX3JlZ19hZGRyKTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtMzEzLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmM6MzE0OnN0YXRpYyB2b2lkIGF0aDExa19haGJfc3luY19jZV9pcnFzKHN0cnVjdCBhdGgxMWtfYmFzZSAqYWIpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy0zMTUte1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy0zMTktXFx0Zm9yIChpID0gMDsgaSBcXHUwMDNjIGFiLVxcdTAwM2Vod19wYXJhbXMuY2VfY291bnQ7IGkrKykge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmM6MzIwOlxcdFxcdGlmIChhdGgxMWtfY2VfZ2V0X2F0dHJfZmxhZ3MoYWIsIGkpIFxcdTAwMjYgQ0VfQVRUUl9ESVNfSU5UUilcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTMyMS1cXHRcXHRcXHRjb250aW51ZTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtMzI3LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmM6MzI4OnN0YXRpYyB2b2lkIGF0aDExa19haGJfc3luY19leHRfaXJxcyhzdHJ1Y3QgYXRoMTFrX2Jhc2UgKmFiKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtMzI5LXtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtMzMzLVxcdGZvciAoaSA9IDA7IGkgXFx1MDAzYyBBVEgxMUtfRVhUX0lSUV9HUlBfTlVNX01BWDsgaSsrKSB7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYzozMzQ6XFx0XFx0c3RydWN0IGF0aDExa19leHRfaXJxX2dycCAqaXJxX2dycCA9IFxcdTAwMjZhYi1cXHUwMDNlZXh0X2lycV9ncnBbaV07XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy0zMzUtXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTM0Mi1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jOjM0MzpzdGF0aWMgdm9pZCBhdGgxMWtfYWhiX2NlX2lycXNfZW5hYmxlKHN0cnVjdCBhdGgxMWtfYmFzZSAqYWIpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy0zNDQte1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy0zNDctXFx0Zm9yIChpID0gMDsgaSBcXHUwMDNjIGFiLVxcdTAwM2Vod19wYXJhbXMuY2VfY291bnQ7IGkrKykge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmM6MzQ4OlxcdFxcdGlmIChhdGgxMWtfY2VfZ2V0X2F0dHJfZmxhZ3MoYWIsIGkpIFxcdTAwMjYgQ0VfQVRUUl9ESVNfSU5UUilcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTM0OS1cXHRcXHRcXHRjb250aW51ZTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jOjM1MDpcXHRcXHRhdGgxMWtfYWhiX2NlX2lycV9lbmFibGUoYWIsIGkpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtMzUxLVxcdH1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtMzUzLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmM6MzU0OnN0YXRpYyB2b2lkIGF0aDExa19haGJfY2VfaXJxc19kaXNhYmxlKHN0cnVjdCBhdGgxMWtfYmFzZSAqYWIpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy0zNTUte1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy0zNTgtXFx0Zm9yIChpID0gMDsgaSBcXHUwMDNjIGFiLVxcdTAwM2Vod19wYXJhbXMuY2VfY291bnQ7IGkrKykge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmM6MzU5OlxcdFxcdGlmIChhdGgxMWtfY2VfZ2V0X2F0dHJfZmxhZ3MoYWIsIGkpIFxcdTAwMjYgQ0VfQVRUUl9ESVNfSU5UUilcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTM2MC1cXHRcXHRcXHRjb250aW51ZTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jOjM2MTpcXHRcXHRhdGgxMWtfYWhiX2NlX2lycV9kaXNhYmxlKGFiLCBpKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTM2Mi1cXHR9XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTM2NC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jOjM2NTpzdGF0aWMgaW50IGF0aDExa19haGJfc3RhcnQoc3RydWN0IGF0aDExa19iYXNlICphYilcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTM2Ni17XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYzozNjc6XFx0YXRoMTFrX2FoYl9jZV9pcnFzX2VuYWJsZShhYik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYzozNjg6XFx0YXRoMTFrX2NlX3J4X3Bvc3RfYnVmKGFiKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTM2OS1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtMzcyLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmM6MzczOnN0YXRpYyB2b2lkIGF0aDExa19haGJfZXh0X2lycV9lbmFibGUoc3RydWN0IGF0aDExa19iYXNlICphYilcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTM3NC17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTM3Ny1cXHRmb3IgKGkgPSAwOyBpIFxcdTAwM2MgQVRIMTFLX0VYVF9JUlFfR1JQX05VTV9NQVg7IGkrKykge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmM6Mzc4OlxcdFxcdHN0cnVjdCBhdGgxMWtfZXh0X2lycV9ncnAgKmlycV9ncnAgPSBcXHUwMDI2YWItXFx1MDAzZWV4dF9pcnFfZ3JwW2ldO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtMzc5LVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy0zODMtXFx0XFx0fVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmM6Mzg0OlxcdFxcdGF0aDExa19haGJfZXh0X2dycF9lbmFibGUoaXJxX2dycCk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy0zODUtXFx0fVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy0zODctXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYzozODg6c3RhdGljIHZvaWQgYXRoMTFrX2FoYl9leHRfaXJxX2Rpc2FibGUoc3RydWN0IGF0aDExa19iYXNlICphYilcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTM4OS17XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYzozOTA6XFx0X19hdGgxMWtfYWhiX2V4dF9pcnFfZGlzYWJsZShhYik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYzozOTE6XFx0YXRoMTFrX2FoYl9zeW5jX2V4dF9pcnFzKGFiKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTM5Mi19XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy0zOTMtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYzozOTQ6c3RhdGljIHZvaWQgYXRoMTFrX2FoYl9zdG9wKHN0cnVjdCBhdGgxMWtfYmFzZSAqYWIpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy0zOTUte1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtMzk2LVxcdGlmICghdGVzdF9iaXQoQVRIMTFLX0ZMQUdfQ1JBU0hfRkxVU0gsIFxcdTAwMjZhYi1cXHUwMDNlZGV2X2ZsYWdzKSlcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jOjM5NzpcXHRcXHRhdGgxMWtfYWhiX2NlX2lycXNfZGlzYWJsZShhYik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYzozOTg6XFx0YXRoMTFrX2FoYl9zeW5jX2NlX2lycXMoYWIpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmM6Mzk5OlxcdGF0aDExa19haGJfa2lsbF90YXNrbGV0cyhhYik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy00MDAtXFx0dGltZXJfZGVsZXRlX3N5bmMoXFx1MDAyNmFiLVxcdTAwM2VyeF9yZXBsZW5pc2hfcmV0cnkpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmM6NDAxOlxcdGF0aDExa19jZV9jbGVhbnVwX3BpcGVzKGFiKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTQwMi19XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy00MDMtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYzo0MDQ6c3RhdGljIGludCBhdGgxMWtfYWhiX3Bvd2VyX3VwKHN0cnVjdCBhdGgxMWtfYmFzZSAqYWIpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy00MDUte1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmM6NDA2OlxcdHN0cnVjdCBhdGgxMWtfYWhiICphYl9haGIgPSBhdGgxMWtfYWhiX3ByaXYoYWIpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtNDA3LVxcdGludCByZXQ7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTQxMC1cXHRpZiAocmV0KVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmM6NDExOlxcdFxcdGF0aDExa19lcnIoYWIsIFxcXCJmYWlsZWQgdG8gYm9vdCB0aGUgcmVtb3RlIHByb2Nlc3NvciBRNlxcXFxuXFxcIik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy00MTItXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTQxNS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jOjQxNjpzdGF0aWMgdm9pZCBhdGgxMWtfYWhiX3Bvd2VyX2Rvd24oc3RydWN0IGF0aDExa19iYXNlICphYiwgYm9vbCBpc19zdXNwZW5kKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtNDE3LXtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jOjQxODpcXHRzdHJ1Y3QgYXRoMTFrX2FoYiAqYWJfYWhiID0gYXRoMTFrX2FoYl9wcml2KGFiKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTQxOS1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtNDIyLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmM6NDIzOnN0YXRpYyB2b2lkIGF0aDExa19haGJfaW5pdF9xbWlfY2VfY29uZmlnKHN0cnVjdCBhdGgxMWtfYmFzZSAqYWIpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy00MjQte1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmM6NDI1OlxcdHN0cnVjdCBhdGgxMWtfcW1pX2NlX2NmZyAqY2ZnID0gXFx1MDAyNmFiLVxcdTAwM2VxbWkuY2VfY2ZnO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtNDI2LVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy00MzMtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYzo0MzQ6c3RhdGljIHZvaWQgYXRoMTFrX2FoYl9mcmVlX2V4dF9pcnEoc3RydWN0IGF0aDExa19iYXNlICphYilcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTQzNS17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTQzOC1cXHRmb3IgKGkgPSAwOyBpIFxcdTAwM2MgQVRIMTFLX0VYVF9JUlFfR1JQX05VTV9NQVg7IGkrKykge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmM6NDM5OlxcdFxcdHN0cnVjdCBhdGgxMWtfZXh0X2lycV9ncnAgKmlycV9ncnAgPSBcXHUwMDI2YWItXFx1MDAzZWV4dF9pcnFfZ3JwW2ldO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtNDQwLVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy00NDgtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYzo0NDk6c3RhdGljIHZvaWQgYXRoMTFrX2FoYl9mcmVlX2lycShzdHJ1Y3QgYXRoMTFrX2Jhc2UgKmFiKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtNDUwLXtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtNDU0LVxcdGlmIChhYi1cXHUwMDNlaHdfcGFyYW1zLmh5YnJpZF9idXNfdHlwZSlcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jOjQ1NTpcXHRcXHRyZXR1cm4gYXRoMTFrX3BjaWNfZnJlZV9pcnEoYWIpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtNDU2LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtNDU3LVxcdGZvciAoaSA9IDA7IGkgXFx1MDAzYyBhYi1cXHUwMDNlaHdfcGFyYW1zLmNlX2NvdW50OyBpKyspIHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jOjQ1ODpcXHRcXHRpZiAoYXRoMTFrX2NlX2dldF9hdHRyX2ZsYWdzKGFiLCBpKSBcXHUwMDI2IENFX0FUVFJfRElTX0lOVFIpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy00NTktXFx0XFx0XFx0Y29udGludWU7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTQ2My1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jOjQ2NDpcXHRhdGgxMWtfYWhiX2ZyZWVfZXh0X2lycShhYik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy00NjUtfVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtNDY2LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmM6NDY3OnN0YXRpYyB2b2lkIGF0aDExa19haGJfY2VfdGFza2xldChzdHJ1Y3QgdGFza2xldF9zdHJ1Y3QgKnQpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy00Njgte1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmM6NDY5OlxcdHN0cnVjdCBhdGgxMWtfY2VfcGlwZSAqY2VfcGlwZSA9IGZyb21fdGFza2xldChjZV9waXBlLCB0LCBpbnRyX3RxKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTQ3MC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jOjQ3MTpcXHRhdGgxMWtfY2VfcGVyX2VuZ2luZV9zZXJ2aWNlKGNlX3BpcGUtXFx1MDAzZWFiLCBjZV9waXBlLVxcdTAwM2VwaXBlX251bSk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy00NzItXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYzo0NzM6XFx0YXRoMTFrX2FoYl9jZV9pcnFfZW5hYmxlKGNlX3BpcGUtXFx1MDAzZWFiLCBjZV9waXBlLVxcdTAwM2VwaXBlX251bSk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy00NzQtfVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtNDc1LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmM6NDc2OnN0YXRpYyBpcnFyZXR1cm5fdCBhdGgxMWtfYWhiX2NlX2ludGVycnVwdF9oYW5kbGVyKGludCBpcnEsIHZvaWQgKmFyZylcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTQ3Ny17XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYzo0Nzg6XFx0c3RydWN0IGF0aDExa19jZV9waXBlICpjZV9waXBlID0gYXJnO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtNDc5LVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy00ODItXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYzo0ODM6XFx0YXRoMTFrX2FoYl9jZV9pcnFfZGlzYWJsZShjZV9waXBlLVxcdTAwM2VhYiwgY2VfcGlwZS1cXHUwMDNlcGlwZV9udW0pO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtNDg0LVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy00ODktXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYzo0OTA6c3RhdGljIGludCBhdGgxMWtfYWhiX2V4dF9ncnBfbmFwaV9wb2xsKHN0cnVjdCBuYXBpX3N0cnVjdCAqbmFwaSwgaW50IGJ1ZGdldClcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTQ5MS17XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYzo0OTI6XFx0c3RydWN0IGF0aDExa19leHRfaXJxX2dycCAqaXJxX2dycCA9IGNvbnRhaW5lcl9vZihuYXBpLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmM6NDkzOlxcdFxcdFxcdFxcdFxcdFxcdHN0cnVjdCBhdGgxMWtfZXh0X2lycV9ncnAsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy00OTQtXFx0XFx0XFx0XFx0XFx0XFx0bmFwaSk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYzo0OTU6XFx0c3RydWN0IGF0aDExa19iYXNlICphYiA9IGlycV9ncnAtXFx1MDAzZWFiO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtNDk2LVxcdGludCB3b3JrX2RvbmU7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy00OTctXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYzo0OTg6XFx0d29ya19kb25lID0gYXRoMTFrX2RwX3NlcnZpY2Vfc3JuZyhhYiwgaXJxX2dycCwgYnVkZ2V0KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTQ5OS1cXHRpZiAod29ya19kb25lIFxcdTAwM2MgYnVkZ2V0KSB7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy01MDAtXFx0XFx0bmFwaV9jb21wbGV0ZV9kb25lKG5hcGksIHdvcmtfZG9uZSk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYzo1MDE6XFx0XFx0YXRoMTFrX2FoYl9leHRfZ3JwX2VuYWJsZShpcnFfZ3JwKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTUwMi1cXHR9XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTUwOS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jOjUxMDpzdGF0aWMgaXJxcmV0dXJuX3QgYXRoMTFrX2FoYl9leHRfaW50ZXJydXB0X2hhbmRsZXIoaW50IGlycSwgdm9pZCAqYXJnKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtNTExLXtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jOjUxMjpcXHRzdHJ1Y3QgYXRoMTFrX2V4dF9pcnFfZ3JwICppcnFfZ3JwID0gYXJnO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtNTEzLVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy01MTYtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYzo1MTc6XFx0YXRoMTFrX2FoYl9leHRfZ3JwX2Rpc2FibGUoaXJxX2dycCk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy01MTgtXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTUyMy1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jOjUyNDpzdGF0aWMgaW50IGF0aDExa19haGJfY29uZmlnX2V4dF9pcnEoc3RydWN0IGF0aDExa19iYXNlICphYilcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTUyNS17XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYzo1MjY6XFx0c3RydWN0IGF0aDExa19od19wYXJhbXMgKmh3ID0gXFx1MDAyNmFiLVxcdTAwM2Vod19wYXJhbXM7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy01MjctXFx0aW50IGksIGo7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTUzMS1cXHRmb3IgKGkgPSAwOyBpIFxcdTAwM2MgQVRIMTFLX0VYVF9JUlFfR1JQX05VTV9NQVg7IGkrKykge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmM6NTMyOlxcdFxcdHN0cnVjdCBhdGgxMWtfZXh0X2lycV9ncnAgKmlycV9ncnAgPSBcXHUwMDI2YWItXFx1MDAzZWV4dF9pcnFfZ3JwW2ldO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtNTMzLVxcdFxcdHUzMiBudW1faXJxID0gMDtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtNTQyLVxcdFxcdG5ldGlmX25hcGlfYWRkKGlycV9ncnAtXFx1MDAzZW5hcGlfbmRldiwgXFx1MDAyNmlycV9ncnAtXFx1MDAzZW5hcGksXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYzo1NDM6XFx0XFx0XFx0ICAgICAgIGF0aDExa19haGJfZXh0X2dycF9uYXBpX3BvbGwpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtNTQ0LVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy01NjgtXFx0XFx0XFx0XFx0XFx0XFx0cnhkbWEyaG9zdF9kZXN0aW5hdGlvbl9yaW5nX21hYzEgLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmM6NTY5OlxcdFxcdFxcdFxcdFxcdFxcdGF0aDExa19od19nZXRfbWFjX2Zyb21fcGRldl9pZChodywgaik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy01NzAtXFx0XFx0XFx0XFx0fVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy01NzQtXFx0XFx0XFx0XFx0XFx0XFx0aG9zdDJyeGRtYV9ob3N0X2J1Zl9yaW5nX21hYzEgLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmM6NTc1OlxcdFxcdFxcdFxcdFxcdFxcdGF0aDExa19od19nZXRfbWFjX2Zyb21fcGRldl9pZChodywgaik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy01NzYtXFx0XFx0XFx0XFx0fVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy01ODAtXFx0XFx0XFx0XFx0XFx0XFx0cHBkdV9lbmRfaW50ZXJydXB0c19tYWMxIC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jOjU4MTpcXHRcXHRcXHRcXHRcXHRcXHRhdGgxMWtfaHdfZ2V0X21hY19mcm9tX3BkZXZfaWQoaHcsIGopO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtNTgyLVxcdFxcdFxcdFxcdFxcdGlycV9ncnAtXFx1MDAzZWlycXNbbnVtX2lycSsrXSA9XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy01ODMtXFx0XFx0XFx0XFx0XFx0XFx0cnhkbWEyaG9zdF9tb25pdG9yX3N0YXR1c19yaW5nX21hYzEgLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmM6NTg0OlxcdFxcdFxcdFxcdFxcdFxcdGF0aDExa19od19nZXRfbWFjX2Zyb21fcGRldl9pZChodywgaik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy01ODUtXFx0XFx0XFx0XFx0fVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy01OTYtXFx0XFx0XFx0aXJxX3NldF9zdGF0dXNfZmxhZ3MoaXJxLCBJUlFfTk9BVVRPRU4gfCBJUlFfRElTQUJMRV9VTkxBWlkpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmM6NTk3OlxcdFxcdFxcdHJldCA9IHJlcXVlc3RfaXJxKGlycSwgYXRoMTFrX2FoYl9leHRfaW50ZXJydXB0X2hhbmRsZXIsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy01OTgtXFx0XFx0XFx0XFx0XFx0ICBJUlFGX1RSSUdHRVJfUklTSU5HLFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy02MDAtXFx0XFx0XFx0aWYgKHJldCkge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmM6NjAxOlxcdFxcdFxcdFxcdGF0aDExa19lcnIoYWIsIFxcXCJmYWlsZWQgcmVxdWVzdF9pcnEgZm9yICVkXFxcXG5cXFwiLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtNjAyLVxcdFxcdFxcdFxcdFxcdCAgIGlycSk7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTYwOS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jOjYxMDpzdGF0aWMgaW50IGF0aDExa19haGJfY29uZmlnX2lycShzdHJ1Y3QgYXRoMTFrX2Jhc2UgKmFiKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtNjExLXtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtNjE1LVxcdGlmIChhYi1cXHUwMDNlaHdfcGFyYW1zLmh5YnJpZF9idXNfdHlwZSlcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jOjYxNjpcXHRcXHRyZXR1cm4gYXRoMTFrX3BjaWNfY29uZmlnX2lycShhYik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy02MTctXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTYxOS1cXHRmb3IgKGkgPSAwOyBpIFxcdTAwM2MgYWItXFx1MDAzZWh3X3BhcmFtcy5jZV9jb3VudDsgaSsrKSB7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYzo2MjA6XFx0XFx0c3RydWN0IGF0aDExa19jZV9waXBlICpjZV9waXBlID0gXFx1MDAyNmFiLVxcdTAwM2VjZS5jZV9waXBlW2ldO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtNjIxLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmM6NjIyOlxcdFxcdGlmIChhdGgxMWtfY2VfZ2V0X2F0dHJfZmxhZ3MoYWIsIGkpIFxcdTAwMjYgQ0VfQVRUUl9ESVNfSU5UUilcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTYyMy1cXHRcXHRcXHRjb250aW51ZTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtNjI2LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmM6NjI3OlxcdFxcdHRhc2tsZXRfc2V0dXAoXFx1MDAyNmNlX3BpcGUtXFx1MDAzZWludHJfdHEsIGF0aDExa19haGJfY2VfdGFza2xldCk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy02MjgtXFx0XFx0aXJxID0gcGxhdGZvcm1fZ2V0X2lycV9ieW5hbWUoYWItXFx1MDAzZXBkZXYsIGlycV9uYW1lW2lycV9pZHhdKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jOjYyOTpcXHRcXHRyZXQgPSByZXF1ZXN0X2lycShpcnEsIGF0aDExa19haGJfY2VfaW50ZXJydXB0X2hhbmRsZXIsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy02MzAtXFx0XFx0XFx0XFx0ICBJUlFGX1RSSUdHRVJfUklTSU5HLCBpcnFfbmFtZVtpcnFfaWR4XSxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtNjM4LVxcdC8qIENvbmZpZ3VyZSBleHRlcm5hbCBpbnRlcnJ1cHRzICovXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYzo2Mzk6XFx0cmV0ID0gYXRoMTFrX2FoYl9jb25maWdfZXh0X2lycShhYik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy02NDAtXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTY0My1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jOjY0NDpzdGF0aWMgaW50IGF0aDExa19haGJfbWFwX3NlcnZpY2VfdG9fcGlwZShzdHJ1Y3QgYXRoMTFrX2Jhc2UgKmFiLCB1MTYgc2VydmljZV9pZCxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTY0NS1cXHRcXHRcXHRcXHRcXHQgIHU4ICp1bF9waXBlLCB1OCAqZGxfcGlwZSlcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtNjg2LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmM6Njg3OnN0YXRpYyBpbnQgYXRoMTFrX2FoYl9oaWZfc3VzcGVuZChzdHJ1Y3QgYXRoMTFrX2Jhc2UgKmFiKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtNjg4LXtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jOjY4OTpcXHRzdHJ1Y3QgYXRoMTFrX2FoYiAqYWJfYWhiID0gYXRoMTFrX2FoYl9wcml2KGFiKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTY5MC1cXHR1MzIgd2FrZV9pcnE7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTcwMC1cXHRpZiAocmV0KSB7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYzo3MDE6XFx0XFx0YXRoMTFrX2VycihhYiwgXFxcImZhaWxlZCB0byBlbmFibGUgd2FrZXVwIGlycSA6JWRcXFxcblxcXCIsIHJldCk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy03MDItXFx0XFx0cmV0dXJuIHJldDtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtNzEyLVxcdGlmIChyZXQpIHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jOjcxMzpcXHRcXHRhdGgxMWtfZXJyKGFiLCBcXFwiZmFpbGVkIHRvIHNlbmQgc21wMnAgcG93ZXIgc2F2ZSBlbnRlciBjbWQgOiVkXFxcXG5cXFwiLCByZXQpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtNzE0LVxcdFxcdHJldHVybiByZXQ7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTcxNi1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jOjcxNzpcXHRhdGgxMWtfZGJnKGFiLCBBVEgxMUtfREJHX0FIQiwgXFxcImRldmljZSBzdXNwZW5kZWRcXFxcblxcXCIpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtNzE4LVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy03MjEtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYzo3MjI6c3RhdGljIGludCBhdGgxMWtfYWhiX2hpZl9yZXN1bWUoc3RydWN0IGF0aDExa19iYXNlICphYilcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTcyMy17XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYzo3MjQ6XFx0c3RydWN0IGF0aDExa19haGIgKmFiX2FoYiA9IGF0aDExa19haGJfcHJpdihhYik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy03MjUtXFx0dTMyIHdha2VfaXJxO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy03MzUtXFx0aWYgKHJldCkge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmM6NzM2OlxcdFxcdGF0aDExa19lcnIoYWIsIFxcXCJmYWlsZWQgdG8gZGlzYWJsZSB3YWtldXAgaXJxOiAlZFxcXFxuXFxcIiwgcmV0KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTczNy1cXHRcXHRyZXR1cm4gcmV0O1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy03NDktXFx0aWYgKHJldCkge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmM6NzUwOlxcdFxcdGF0aDExa19lcnIoYWIsIFxcXCJmYWlsZWQgdG8gc2VuZCBzbXAycCBwb3dlciBzYXZlIGVudGVyIGNtZCA6JWRcXFxcblxcXCIsIHJldCk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy03NTEtXFx0XFx0cmV0dXJuIHJldDtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtNzU1LVxcdGlmIChyZXQgPT0gMCkge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmM6NzU2OlxcdFxcdGF0aDExa193YXJuKGFiLCBcXFwidGltZWQgb3V0IHdoaWxlIHdhaXRpbmcgZm9yIHdvdyB3YWtldXAgY29tcGxldGlvblxcXFxuXFxcIik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy03NTctXFx0XFx0cmV0dXJuIC1FVElNRURPVVQ7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTc1OS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jOjc2MDpcXHRhdGgxMWtfZGJnKGFiLCBBVEgxMUtfREJHX0FIQiwgXFxcImRldmljZSByZXN1bWVkXFxcXG5cXFwiKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTc2MS1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtNzY0LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmM6NzY1OnN0YXRpYyBjb25zdCBzdHJ1Y3QgYXRoMTFrX2hpZl9vcHMgYXRoMTFrX2FoYl9oaWZfb3BzX2lwcTgwNzQgPSB7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYzo3NjY6XFx0LnN0YXJ0ID0gYXRoMTFrX2FoYl9zdGFydCxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jOjc2NzpcXHQuc3RvcCA9IGF0aDExa19haGJfc3RvcCxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jOjc2ODpcXHQucmVhZDMyID0gYXRoMTFrX2FoYl9yZWFkMzIsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYzo3Njk6XFx0LndyaXRlMzIgPSBhdGgxMWtfYWhiX3dyaXRlMzIsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy03NzAtXFx0LnJlYWQgPSBOVUxMLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmM6NzcxOlxcdC5pcnFfZW5hYmxlID0gYXRoMTFrX2FoYl9leHRfaXJxX2VuYWJsZSxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jOjc3MjpcXHQuaXJxX2Rpc2FibGUgPSBhdGgxMWtfYWhiX2V4dF9pcnFfZGlzYWJsZSxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jOjc3MzpcXHQubWFwX3NlcnZpY2VfdG9fcGlwZSA9IGF0aDExa19haGJfbWFwX3NlcnZpY2VfdG9fcGlwZSxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jOjc3NDpcXHQucG93ZXJfZG93biA9IGF0aDExa19haGJfcG93ZXJfZG93bixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jOjc3NTpcXHQucG93ZXJfdXAgPSBhdGgxMWtfYWhiX3Bvd2VyX3VwLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtNzc2LX07XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy03NzctXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYzo3Nzg6c3RhdGljIGNvbnN0IHN0cnVjdCBhdGgxMWtfaGlmX29wcyBhdGgxMWtfYWhiX2hpZl9vcHNfd2NuNjc1MCA9IHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jOjc3OTpcXHQuc3RhcnQgPSBhdGgxMWtfcGNpY19zdGFydCxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jOjc4MDpcXHQuc3RvcCA9IGF0aDExa19wY2ljX3N0b3AsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYzo3ODE6XFx0LnJlYWQzMiA9IGF0aDExa19wY2ljX3JlYWQzMixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jOjc4MjpcXHQud3JpdGUzMiA9IGF0aDExa19wY2ljX3dyaXRlMzIsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy03ODMtXFx0LnJlYWQgPSBOVUxMLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmM6Nzg0OlxcdC5pcnFfZW5hYmxlID0gYXRoMTFrX3BjaWNfZXh0X2lycV9lbmFibGUsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYzo3ODU6XFx0LmlycV9kaXNhYmxlID0gYXRoMTFrX3BjaWNfZXh0X2lycV9kaXNhYmxlLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmM6Nzg2OlxcdC5nZXRfbXNpX2FkZHJlc3MgPSAgYXRoMTFrX3BjaWNfZ2V0X21zaV9hZGRyZXNzLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmM6Nzg3OlxcdC5nZXRfdXNlcl9tc2lfdmVjdG9yID0gYXRoMTFrX3BjaWNfZ2V0X3VzZXJfbXNpX2Fzc2lnbm1lbnQsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYzo3ODg6XFx0Lm1hcF9zZXJ2aWNlX3RvX3BpcGUgPSBhdGgxMWtfcGNpY19tYXBfc2VydmljZV90b19waXBlLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmM6Nzg5OlxcdC5wb3dlcl9kb3duID0gYXRoMTFrX2FoYl9wb3dlcl9kb3duLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmM6NzkwOlxcdC5wb3dlcl91cCA9IGF0aDExa19haGJfcG93ZXJfdXAsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYzo3OTE6XFx0LnN1c3BlbmQgPSBhdGgxMWtfYWhiX2hpZl9zdXNwZW5kLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmM6NzkyOlxcdC5yZXN1bWUgPSBhdGgxMWtfYWhiX2hpZl9yZXN1bWUsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYzo3OTM6XFx0LmNlX2lycV9lbmFibGUgPSBhdGgxMWtfcGNpX2VuYWJsZV9jZV9pcnFzX2V4Y2VwdF93YWtlX2lycSxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jOjc5NDpcXHQuY2VfaXJxX2Rpc2FibGUgPSBhdGgxMWtfcGNpX2Rpc2FibGVfY2VfaXJxc19leGNlcHRfd2FrZV9pcnEsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy03OTUtfTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTc5Ni1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jOjc5NzpzdGF0aWMgaW50IGF0aDExa19jb3JlX2dldF9ycHJvYyhzdHJ1Y3QgYXRoMTFrX2Jhc2UgKmFiKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtNzk4LXtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jOjc5OTpcXHRzdHJ1Y3QgYXRoMTFrX2FoYiAqYWJfYWhiID0gYXRoMTFrX2FoYl9wcml2KGFiKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTgwMC1cXHRzdHJ1Y3QgZGV2aWNlICpkZXYgPSBhYi1cXHUwMDNlZGV2O1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy04MDQtXFx0aWYgKG9mX3Byb3BlcnR5X3JlYWRfdTMyKGRldi1cXHUwMDNlb2Zfbm9kZSwgXFxcInFjb20scnByb2NcXFwiLCBcXHUwMDI2cnByb2NfcGhhbmRsZSkpIHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jOjgwNTpcXHRcXHRhdGgxMWtfZXJyKGFiLCBcXFwiZmFpbGVkIHRvIGdldCBxNl9ycHJvYyBoYW5kbGVcXFxcblxcXCIpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtODA2LVxcdFxcdHJldHVybiAtRU5PRU5UO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy04MTYtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYzo4MTc6c3RhdGljIGludCBhdGgxMWtfYWhiX3NldHVwX21zaV9yZXNvdXJjZXMoc3RydWN0IGF0aDExa19iYXNlICphYilcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTgxOC17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTgyNi1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jOjgyNzpcXHRyZXQgPSBhdGgxMWtfcGNpY19pbml0X21zaV9jb25maWcoYWIpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtODI4LVxcdGlmIChyZXQpIHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jOjgyOTpcXHRcXHRhdGgxMWtfZXJyKGFiLCBcXFwiZmFpbGVkIHRvIGluaXQgbXNpIGNvbmZpZzogJWRcXFxcblxcXCIsIHJldCk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy04MzAtXFx0XFx0cmV0dXJuIHJldDtcXG4tLVxcblxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0yOFQwMDoxNDo0My4xNTQ1NTM2ODVaIiwiU2VxIjo5LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo2MTI3NTM5MTgwLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkZ1enppbmcgdGhlIGBhdGgxMWtgIFdpLUZpIERyaXZlcjogQSBQcmVsaW1pbmFyeSBBc3Nlc3NtZW50KipcblxuT2theSwgc28gSSBzZWUgYGF0aDExa19haGIuY2AgYW5kIGBhdGgxMWtfcGNpLmNgLiBNeSBpbml0aWFsIHRob3VnaHQgaXMsIGNhbiBJIGxldmVyYWdlIGEgdmlydHVhbCBQQ0kgZGV2aWNlIHRvIGZ1enogdGhpcyBgYXRoMTFrYCBkcml2ZXI/IFN5emthbGxlciAqZG9lcyogaGF2ZSBhIFBDSSBmdXp6ZXIgdGhhdCBjYW4gaW5qZWN0IFBDSSBjb25maWd1cmF0aW9uIGFuZCBtZW1vcnkgc3BhY2UsIHNvIHRoZSBpZGVhIGhhcyBtZXJpdC4gQnV0IGhvbGQgb24sIHRoZSBwcm9tcHQgaXMgcmF0aGVyIHNwZWNpZmljOiBpdCBtZW50aW9ucyB2ZW5kb3Itc3BlY2lmaWMgUENJZSBzd2l0Y2gsIFNtYXJ0TklDLCBvciBHUFUgZHJpdmVycy4gVGhpbmdzIGxpa2UgYG1seHN3YCwgYHBkc19jb3JlYCwgYHFlZGAsIGBpb25pY2AsIGFuZCBgYW1kZ3B1YC5cblxuSXMgYGF0aDExa2AgYSBTbWFydE5JQywgR1BVLCBvciBQQ0llIHN3aXRjaD8gTm8sIGl0J3MgYSBXaS1GaSBkcml2ZXIsIHNvIGF0IGZhY2UgdmFsdWUsIGl0IG1pZ2h0IG5vdCBiZSByZWxldmFudC4gQnV0IGRvZXMgaXQgKnJlcXVpcmUqIHBoeXNpY2FsIGhhcmR3YXJlPyBZZXMsIGl0IGRlcGVuZHMgb24gYSBRdWFsY29tbSBBdGhlcm9zIDgwMi4xMWF4IGRldmljZSwgc28gYSBwaHlzaWNhbCBjYXJkIGlzIG5lZWRlZC5cblxuVGhlIHByb21wdCwgaG93ZXZlciwgKmRvZXMqIHVzZSBcImUuZy4sIC4uLlwiLCBzbyB0aGVyZSBtaWdodCBiZSBhIGdyZXkgYXJlYSBoZXJlLCBiZWNhdXNlIGl0IGRvZXMgbm90IGV4cGxpY2l0bHkgbWVudGlvbiBXaS1GaSBkcml2ZXJzLCBidXQgV2ktRmkgZHJpdmVycyB0aGF0IHJlcXVpcmUgcGh5c2ljYWwgUENJZSBoYXJkd2FyZSBjYXJkcyBub3QgZW11bGF0ZWQgaW4gc3RhbmRhcmQgUUVNVSBhcmUgc2ltaWxhciB0byB0aGUgY2FzZXMgbWVudGlvbmVkLlxuXG5Pa2F5LCBzbyBTeXprYWxsZXIgKmRvZXMqIGZ1enogV2ktRmkgZHJpdmVycywgYnV0IHRocm91Z2ggYG1hYzgwMjExX2h3c2ltYC4gQnV0IGBhdGgxMWtgIGlzIGEgaGFyZHdhcmUgZHJpdmVyLCB3aGljaCBpcyBkaWZmZXJlbnQuIFN5emthbGxlciBoYXMgZnVuY3Rpb25zIGxpa2UgYHN5el84MDIxMV9pbmplY3RfZnJhbWVgIGFuZCB0aGUgbGlrZSwgYnV0IHRob3NlIGFyZSBmb3IgYG1hYzgwMjExX2h3c2ltYCwgd2hpY2ggSSBkb24ndCB0aGluayB3b3VsZCBhcHBseSBoZXJlLlxuXG5TbywgKmRvZXMqIFN5emthbGxlciBmdXp6IGBhdGgxMWtgIGF0IGFsbD9cblxuTGV0IG1lIGNoZWNrLiBJIG5lZWQgdG8gbG9vayBmb3IgYW55IHN5emthbGxlciBhbm5vdGF0aW9ucyB3aXRoaW4gdGhlIGBhdGgxMWtgIGNvZGViYXNlIGl0c2VsZi4gSSdsbCBzZWFyY2ggdGhlIGBkcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2AgZGlyZWN0b3J5IGZvciBcInN5emthbGxlclwiIG9yIFwic3l6XCIgYW5kIHNlZSB3aGF0IGNvbWVzIHVwLlxuXG5cbiIsIklucHV0VG9rZW5zIjoyMzAwNywiT3V0cHV0VG9rZW5zIjozNSwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjM3OCwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0yOFQwMDoxNDo0OS4yODIwOTYzMTZaIiwiU2VxIjoxMCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjExOTA1NzYxOCwiRXJyb3IiOiJubyBtYXRjaGVzIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwic3l6XCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcImVycm9yXCI6IFwibm8gbWF0Y2hlc1wiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0yOFQwMDoxNDo0OS40MDExNjU3NjNaIiwiU2VxIjoxMSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NjU4NzE2NjgzMSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipNeSBSZWFzb25pbmcgb24gRnV6emluZyBBdGgxMWsqKlxuXG5Pa2F5LCBzbyBJJ20gbG9va2luZyBhdCB0aGlzIGFuZCB0aGlua2luZywgXCJObyBkaWNlLCBubyBpbW1lZGlhdGUgbWF0Y2hlcy5cIiBCdXQgd2FpdCwgZGlkbid0IEkgc2VlIHNvbWV0aGluZyBhYm91dCBzeXprYWxsZXIgaGF2aW5nIGEgUENJIGZ1enplcj8gQ291bGQgaXQgZnV6eiB0aGUgYXRoMTFrIGRyaXZlcj8gSSBuZWVkIHRvIGNoZWNrLiBJZGVhbGx5LCBJJ2Qgc2VhcmNoIHN5emthbGxlciByZXBvcnRzIGZvciBcImF0aDExayxcIiBidXQsIGluIHRoaXMgc2NlbmFyaW8sIEkgY2FuJ3QuIEhtbSwgY2FuIEkgZXZlbiAqcmVhY2gqIGF0aDExayBpbiBhIFFFTVUgZW52aXJvbm1lbnQ/XG5cblRoZSBwcm9tcHQganVzdCBicm91Z2h0IHVwIGEgY3J1Y2lhbCBwb2ludDogXCJDb2RlIHBhdGhzIHRoYXQgYXJlIGltcG9zc2libGUgdG8gcmVhY2ggaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgR0NFIG9yIFFFTVUsIGV2ZW4gd2hlbiB1dGlsaXppbmcgc29mdHdhcmUtZW11bGF0ZWQgaGFyZHdhcmUuXCIgT2theSwgc28gaXMgYXRoMTFrIHJlYWNoYWJsZSBpbiBzdGFuZGFyZCBRRU1VPyBObywgUUVNVSBkb2Vzbid0IGVtdWxhdGUgdGhlIG5lY2Vzc2FyeSBRdWFsY29tbSBBdGhlcm9zIDgwMi4xMWF4IGhhcmR3YXJlLlxuXG5Ob3csIGxldCdzIGNpcmNsZSBiYWNrIHRvIHRoYXQgUENJIGZ1enppbmcgYW5nbGUuIFN5emthbGxlcidzIFBDSSBmdXp6ZXIgKnNpbXVsYXRlcyogUENJIGRldmljZXMsIHJpZ2h0PyBJdCBlaXRoZXIgaG9va3MgaW50byB0aGUgUENJIHN1YnN5c3RlbSBkaXJlY3RseSBvciB1c2VzIHNvbWV0aGluZyBsaWtlIGB2ZmlvYCBvciBgcGNpLXN0dWJgPyBBY3R1YWxseSwgbm8sIHN5emthbGxlciB1c2VzIGEgY3VzdG9tIFBDSSBkZXZpY2UgaW4gUUVNVSBvciBpbmplY3RzIHZpYSBgc3l6X3BjaV9kZXZpY2VgLiBJZiBzeXprYWxsZXIncyBQQ0kgZnV6emVyIGNhbiBoaXQgaXQsIHRoZW4gaXQgKmlzKiByZWFjaGFibGUuXG5cbkJ1dCB0aGUgcHJvbXB0IHN0YXRlcyBxdWl0ZSBleHBsaWNpdGx5OiBcIkNvZGUgaW4gdmVuZG9yLXNwZWNpZmljIFBDSWUgc3dpdGNoLCBTbWFydE5JQywgb3IgR1BVIGRyaXZlcnMgKGUuZy4sIG1seHN3LCBwZHNfY29yZSwgcWVkLCBpb25pYywgYW1kZ3B1KSB0aGF0IHJlcXVpcmUgcGh5c2ljYWwgUENJZSBoYXJkd2FyZSBjYXJkcyBub3QgZW11bGF0ZWQgaW4gc3RhbmRhcmQgUUVNVS5cIiBUaGlzIHNlZW1zIHRvIGJlIHRoZSBjcml0aWNhbCBkaXN0aW5jdGlvbi4gVGhvc2UgZHJpdmVycywgcmVxdWlyaW5nIHBoeXNpY2FsIGhhcmR3YXJlIG5vdCBlbXVsYXRlZCwgc2hvdWxkIGJlIG1hcmtlZCBhcyBXb3J0aEZ1enppbmc9ZmFsc2UuXG5cbklzIGF0aDExayBhICp2ZW5kb3Itc3BlY2lmaWMqIFBDSWUgZHJpdmVyPyBZZXMsIGl0J3MgUXVhbGNvbW0gQXRoZXJvcywgYWJzb2x1dGVseS4gRG9lcyBpdCAqcmVxdWlyZSogcGh5c2ljYWwgaGFyZHdhcmU/IFllcywgaXQgZG9lcy4gSXMgaXQgZW11bGF0ZWQgaW4gc3RhbmRhcmQgUUVNVT8gTm8uIFNvLCBpdCAqYXBwZWFycyogdG8gZmFsbCBzcXVhcmVseSBpbnRvIHRoYXQgXCJXb3J0aEZ1enppbmc9ZmFsc2VcIiBjYXRlZ29yeS5cblxuSG9sZCBvbiwgd2hhdCBhYm91dCBVU0I/IEkga25vdyBVU0IgZHJpdmVycyBjYW4gYmUgZnV6emVkIHRocm91Z2ggVVNCIGdhZGdldCAoZHVtbXlfaGNkKS4gQnV0LCBhdGgxMWsgaXMgUENJLCBhbHNvIEFIQi4uLiBJIHNob3VsZCBjaGVjaywgdGhvdWdoLCBpZiBhdGgxMWsgZXZlbiBoYXMgYW55IFVTQiBzdXBwb3J0LlxuXG5cbiIsIklucHV0VG9rZW5zIjoyMzg5OCwiT3V0cHV0VG9rZW5zIjozNCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjQ1OSwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0yOFQwMDoxNDo1NS45ODgzMzY2MDRaIiwiU2VxIjoxMiwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjEwNjYxMjQwOCwiRXJyb3IiOiJubyBtYXRjaGVzIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwidXNiXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcImVycm9yXCI6IFwibm8gbWF0Y2hlc1wiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0yOFQwMDoxNDo1Ni4wOTQ5NTgxNDJaIiwiU2VxIjoxMywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6OTQwMjQyMjQ3NiwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipBbmFseXppbmcgdGhlIFdvcnRoRnV6emluZyBTdGF0dXMgb2YgYW4gYXRoMTFrIFBhdGNoKipcblxuT2theSwgZmlyc3QgdGhpbmdzIGZpcnN0LCBubyBVU0Igc3VwcG9ydCBpcyByZWxldmFudCBoZXJlLCBzbyBsZXQncyBzZXQgdGhhdCBhc2lkZS4gSSdtIGZvY3VzaW5nIG9uIHRoaXMgYGF0aDExa2AgZHJpdmVyIGZpeCwgYW5kIG15IGluaXRpYWwgdGhvdWdodCB3YXMgdGhhdCBpdCBkZWFscyB3aXRoIEFIQiwgd2hpY2ggaXMgbm9ybWFsbHkgYW4gU29DIGludGVybmFsIGJ1cyBhbmQgbm90IHNvbWV0aGluZyBlbXVsYXRlZCBpbiBzdGFuZGFyZCBRRU1VLiBJZiBpdCBuZWVkZWQgYSBzcGVjaWZpYyBTb0MgbGlrZSBJUFE4MDc0LCB0aGF0IHdvdWxkIGJlIGEgcHJvYmxlbS4gQnV0LCBJIG5lZWQgdG8gbG9vayBjbG9zZXIgYXQgdGhlIGNvZGUuXG5cbkFscmlnaHQsIHRoZSBwYXRjaCBJJ20gZXhhbWluaW5nIGlzIGluIGBhdGgxMWtfZHBfc3JuZ19zZXR1cGAuIEFoLCBpdCdzIGEgc2ltcGxlIGZpeC4gSXQgY2xlYW5zIHVwIHRoZSBTUk5HIGlmIGBhdGgxMWtfaGFsX3Nybmdfc2V0dXBgIGZhaWxzLiBUaGlzIGxvb2tzIGxpa2UgaXQncyBhZGRyZXNzaW5nIGEgbWVtb3J5IGxlYWsgb3IgYSBzaW1pbGFyIGlzc3VlLiBUaGUgb3JpZ2luYWwgaW5zdHJ1Y3Rpb25zIHN1Z2dlc3QgdGhhdCBzaW5jZSBgYXRoMTFrYCBpcyBhIGhhcmR3YXJlLXNwZWNpZmljIGRyaXZlciwgb25lIHRoYXQgKnJlcXVpcmVzKiBwaHlzaWNhbCBQQ0llL0FIQiBoYXJkd2FyZSBub3QgZW11bGF0ZWQgYnkgc3RhbmRhcmQgUUVNVSwgdGhpcyBzaG91bGQgYmUgY29uc2lkZXJlZCBgV29ydGhGdXp6aW5nPWZhbHNlYC4gVGhhdCBzZWVtcyBsb2dpY2FsIGF0IGZpcnN0IGdsYW5jZS5cblxuQnV0IHdhaXQsIEkgbmVlZCB0byBkb3VibGUtY2hlY2sgc29tZXRoaW5nLiAqRG9lcyogc3l6a2FsbGVyIGFjdHVhbGx5IGZ1enogYGF0aDExa2A/IFRoaXMgaXMgY3JpdGljYWwhIExldCdzIHNlZS4uLiBBaCwgdGhlIGNvbW1pdCBtZXNzYWdlOiBcIkF1dGhvcjogc3l6LWNsdXN0ZXIgXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cdTAwM2VcIi4gSG9sZCBvbiEgXCJzeXotY2x1c3RlclwiIGlzIHRoZSBhdXRob3IhIFRoYXQgbWVhbnMgc3l6a2FsbGVyIGRpZCBmaW5kIGEgYnVnIGhlcmUhIEhvdyBpcyB0aGlzIGV2ZW4gcG9zc2libGU/XG5cbk9rYXksIHRoZSBwaWVjZXMgYXJlIGZhbGxpbmcgaW50byBwbGFjZSEgU3l6a2FsbGVyIGhhcyBhIFBDSSBmdXp6ZXIuIEl0ICpjYW4qIGZ1enogQU5ZIFBDSSBkcml2ZXIgYnkgc2ltdWxhdGluZyBQQ0kgZGV2aWNlcyEgQWhhISBJZiBzeXprYWxsZXIgZm91bmQgYSBidWcgaW4gYGF0aDExa2AsIHRoYXQgbWVhbnMgdGhpcyBjb2RlICptdXN0KiBiZSByZWFjaGFibGUgd2l0aGluIHN5emthbGxlcidzIGVudmlyb25tZW50LiBJIG5lZWQgdG8gY29uZmlybSBob3cgc3l6a2FsbGVyIGFwcHJvYWNoZXMgdGhpcy5cblxuTGV0IG1lIGNoZWNrLiBEb2VzIHN5emthbGxlciB1c2UgYSB2aXJ0dWFsIFBDSSBkZXZpY2UgdG8gZnV6eiBgYXRoMTFrYD8gWWVzLCBzeXprYWxsZXIncyBgc3l6X3BjaV9kZXZpY2VgIG9yIGEgc2ltaWxhciB0b29sIGNhbiBwcm9iZSAqYW55KiBQQ0kgZHJpdmVyIGJ5IG1hdGNoaW5nIHZlbmRvci9kZXZpY2UgSURzIGFuZCB0aGVuIGZ1enppbmcgdGhlIE1NSU8vUElPL0RNQSBhY2Nlc3Nlcy5cblxuVGhlIG9yaWdpbmFsIHByb21wdCB0YWxrcyBhYm91dCBcIkNvZGUgaW4gdmVuZG9yLXNwZWNpZmljIFBDSWUgc3dpdGNoLCBTbWFydE5JQywgb3IgR1BVIGRyaXZlcnMuLi4gdGhhdCByZXF1aXJlIHBoeXNpY2FsIFBDSWUgaGFyZHdhcmUgY2FyZHMgbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIFFFTVVcIi4gVGhpcyBnaXZlcyBtZSBwYXVzZS4gSXMgYGF0aDExa2AgYSBTbWFydE5JQywgYSBHUFUsIG9yIGEgUENJZSBzd2l0Y2g/IE5vLCBpdCdzIGEgV0xBTiBkcml2ZXIuIEJ1dCBkaWQgdGhlIHByb21wdCBtZWFuICphbGwqIHZlbmRvci1zcGVjaWZpYyBQQ0llIGRyaXZlcnM/XG5cbklmIHN5emthbGxlciBpcyBmaW5kaW5nIGJ1Z3MsIHRoZW4gaXQgbWVhbnMgdGhlc2UgcGFydHMgKmFyZSogcmVhY2hhYmxlLiBUaGUgd29yZGluZyBpcyBpbXBvcnRhbnQuIEl0IGhpZ2hsaWdodHMgdmVuZG9yLXNwZWNpZmljIGNvZGUgdGhhdCByZXF1aXJlcyBwaHlzaWNhbCBjYXJkcy4gSSBzZWUgbm93ISBUaGUga2V5IGlzIHRoYXQgc3l6a2FsbGVyICpmYWtlcyogdGhlIFBDSSBkZXZpY2UhIEl0IHByZXNlbnRzIHRoZSB2ZW5kb3IvZGV2aWNlIElELCB0aGUga2VybmVsIHByb2JlcyB0aGUgZHJpdmVyLCBhbmQgdGhlIGRyaXZlciBtYXBzIEJBUnMuIFRoZW4sIHdoZW4gdGhlIGRyaXZlciByZWFkcyBmcm9tIHRob3NlIEJBUnMsIHRoZSBQQ0kgZnV6emVyIHByb3ZpZGVzIGZ1enplZCB2YWx1ZXMhXG5cblRoaXMgbWVhbnMgdGhlIGRyaXZlcidzIGluaXRpYWxpemF0aW9uIGNvZGUg4oCTIHRoZSBwcm9iZSwgc2V0dXAgZnVuY3Rpb25zLCBldGMuIOKAkyBJUyByZWFjaGFibGUgYW5kIGhlYXZpbHkgZnV6emVkIGJ5IHN5emthbGxlci4gVGhlIGluaXRpYWwgc2V0dXAsIGxpa2UgYGF0aDExa19kcF9zcm5nX3NldHVwYCwgaXMgbGlrZWx5IGNhbGxlZCBkdXJpbmcgdGhlIHByb2JlLiBJIG5lZWQgdG8gdmVyaWZ5IHRoYXQuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjI0OTIzLCJPdXRwdXRUb2tlbnMiOjQ0LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6NzYzLCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTI4VDAwOjE1OjA1LjQ5NzM4NDU1OFoiLCJTZXEiOjE0LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MTI4MTU4ODI3LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcImF0aDExa19kcF9zcm5nX3NldHVwXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvZGJyaW5nLmM9MjM3PWludCBhdGgxMWtfZGJyaW5nX3Nybmdfc2V0dXAoc3RydWN0IGF0aDExayAqYXIsIHN0cnVjdCBhdGgxMWtfZGJyaW5nICpyaW5nLFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9kYnJpbmcuYy0yNDEtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9kYnJpbmcuYzoyNDI6XFx0cmV0ID0gYXRoMTFrX2RwX3Nybmdfc2V0dXAoYXItXFx1MDAzZWFiLCBcXHUwMDI2cmluZy1cXHUwMDNlcmVmaWxsX3NybmcsIEhBTF9SWERNQV9ESVJfQlVGLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvZGJyaW5nLmMtMjQzLVxcdFxcdFxcdFxcdCAgIHJpbmdfbnVtLCBhci1cXHUwMDNlcGRldl9pZHgsIG51bV9lbnRyaWVzKTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvZHAuYz0xODE9c3RhdGljIHZvaWQgYXRoMTFrX2RwX3NybmdfbXNpX3NldHVwKHN0cnVjdCBhdGgxMWtfYmFzZSAqYWIsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2RwLmMtMjIwLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvZHAuYzoyMjE6aW50IGF0aDExa19kcF9zcm5nX3NldHVwKHN0cnVjdCBhdGgxMWtfYmFzZSAqYWIsIHN0cnVjdCBkcF9zcm5nICpyaW5nLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvZHAuYy0yMjItXFx0XFx0XFx0IGVudW0gaGFsX3JpbmdfdHlwZSB0eXBlLCBpbnQgcmluZ19udW0sXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2RwLmM9MzcxPXN0YXRpYyBpbnQgYXRoMTFrX2RwX3NybmdfY29tbW9uX3NldHVwKHN0cnVjdCBhdGgxMWtfYmFzZSAqYWIpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2RwLmMtMzc3LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvZHAuYzozNzg6XFx0cmV0ID0gYXRoMTFrX2RwX3Nybmdfc2V0dXAoYWIsIFxcdTAwMjZkcC1cXHUwMDNld2JtX2Rlc2NfcmVsX3JpbmcsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9kcC5jLTM3OS1cXHRcXHRcXHRcXHQgICBIQUxfU1cyV0JNX1JFTEVBU0UsIDAsIDAsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2RwLmMtMzg2LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvZHAuYzozODc6XFx0cmV0ID0gYXRoMTFrX2RwX3Nybmdfc2V0dXAoYWIsIFxcdTAwMjZkcC1cXHUwMDNldGNsX2NtZF9yaW5nLCBIQUxfVENMX0NNRCwgMCwgMCxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2RwLmMtMzg4LVxcdFxcdFxcdFxcdCAgIERQX1RDTF9DTURfUklOR19TSVpFKTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvZHAuYy0zOTMtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9kcC5jOjM5NDpcXHRyZXQgPSBhdGgxMWtfZHBfc3JuZ19zZXR1cChhYiwgXFx1MDAyNmRwLVxcdTAwM2V0Y2xfc3RhdHVzX3JpbmcsIEhBTF9UQ0xfU1RBVFVTLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvZHAuYy0zOTUtXFx0XFx0XFx0XFx0ICAgMCwgMCwgRFBfVENMX1NUQVRVU19SSU5HX1NJWkUpO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9kcC5jLTQwNC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2RwLmM6NDA1OlxcdFxcdHJldCA9IGF0aDExa19kcF9zcm5nX3NldHVwKGFiLCBcXHUwMDI2ZHAtXFx1MDAzZXR4X3JpbmdbaV0udGNsX2RhdGFfcmluZyxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2RwLmMtNDA2LVxcdFxcdFxcdFxcdFxcdCAgIEhBTF9UQ0xfREFUQSwgdGNsX251bSwgMCxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvZHAuYy00MTMtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9kcC5jOjQxNDpcXHRcXHRyZXQgPSBhdGgxMWtfZHBfc3JuZ19zZXR1cChhYiwgXFx1MDAyNmRwLVxcdTAwM2V0eF9yaW5nW2ldLnRjbF9jb21wX3JpbmcsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9kcC5jLTQxNS1cXHRcXHRcXHRcXHRcXHQgICBIQUxfV0JNMlNXX1JFTEVBU0UsIHdibV9udW0sIDAsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2RwLmMtNDMwLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvZHAuYzo0MzE6XFx0cmV0ID0gYXRoMTFrX2RwX3Nybmdfc2V0dXAoYWIsIFxcdTAwMjZkcC1cXHUwMDNlcmVvX3JlaW5qZWN0X3JpbmcsIEhBTF9SRU9fUkVJTkpFQ1QsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9kcC5jLTQzMi1cXHRcXHRcXHRcXHQgICAwLCAwLCBEUF9SRU9fUkVJTkpFQ1RfUklOR19TSVpFKTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvZHAuYy00MzgtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9kcC5jOjQzOTpcXHRyZXQgPSBhdGgxMWtfZHBfc3JuZ19zZXR1cChhYiwgXFx1MDAyNmRwLVxcdTAwM2VyeF9yZWxfcmluZywgSEFMX1dCTTJTV19SRUxFQVNFLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvZHAuYy00NDAtXFx0XFx0XFx0XFx0ICAgRFBfUlhfUkVMRUFTRV9SSU5HX05VTSwgMCwgRFBfUlhfUkVMRUFTRV9SSU5HX1NJWkUpO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9kcC5jLTQ0NS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2RwLmM6NDQ2OlxcdHJldCA9IGF0aDExa19kcF9zcm5nX3NldHVwKGFiLCBcXHUwMDI2ZHAtXFx1MDAzZXJlb19leGNlcHRfcmluZywgSEFMX1JFT19FWENFUFRJT04sXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9kcC5jLTQ0Ny1cXHRcXHRcXHRcXHQgICAwLCAwLCBEUF9SRU9fRVhDRVBUSU9OX1JJTkdfU0laRSk7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2RwLmMtNDUzLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvZHAuYzo0NTQ6XFx0cmV0ID0gYXRoMTFrX2RwX3Nybmdfc2V0dXAoYWIsIFxcdTAwMjZkcC1cXHUwMDNlcmVvX2NtZF9yaW5nLCBIQUxfUkVPX0NNRCxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2RwLmMtNDU1LVxcdFxcdFxcdFxcdCAgIDAsIDAsIERQX1JFT19DTURfUklOR19TSVpFKTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvZHAuYy00NjctXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9kcC5jOjQ2ODpcXHRyZXQgPSBhdGgxMWtfZHBfc3JuZ19zZXR1cChhYiwgXFx1MDAyNmRwLVxcdTAwM2VyZW9fc3RhdHVzX3JpbmcsIEhBTF9SRU9fU1RBVFVTLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvZHAuYy00NjktXFx0XFx0XFx0XFx0ICAgMCwgMCwgRFBfUkVPX1NUQVRVU19SSU5HX1NJWkUpO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9kcC5jPTY0Nz1zdGF0aWMgaW50IGF0aDExa193Ym1faWRsZV9yaW5nX3NldHVwKHN0cnVjdCBhdGgxMWtfYmFzZSAqYWIsIHUzMiAqbl9saW5rX2Rlc2MpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2RwLmMtNjczLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvZHAuYzo2NzQ6XFx0cmV0ID0gYXRoMTFrX2RwX3Nybmdfc2V0dXAoYWIsIFxcdTAwMjZkcC1cXHUwMDNld2JtX2lkbGVfcmluZyxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2RwLmMtNjc1LVxcdFxcdFxcdFxcdCAgIEhBTF9XQk1fSURMRV9MSU5LLCAwLCAwLCAqbl9saW5rX2Rlc2MpO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9kcC5oPTE2NzI9dm9pZCBhdGgxMWtfZHBfc3JuZ19jbGVhbnVwKHN0cnVjdCBhdGgxMWtfYmFzZSAqYWIsIHN0cnVjdCBkcF9zcm5nICpyaW5nKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2RwLmg6MTY3MzppbnQgYXRoMTFrX2RwX3Nybmdfc2V0dXAoc3RydWN0IGF0aDExa19iYXNlICphYiwgc3RydWN0IGRwX3NybmcgKnJpbmcsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9kcC5oLTE2NzQtXFx0XFx0XFx0IGVudW0gaGFsX3JpbmdfdHlwZSB0eXBlLCBpbnQgcmluZ19udW0sXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2RwX3J4LmM9NTQ2PWludCBhdGgxMWtfZHBfcGRldl9yZW9fc2V0dXAoc3RydWN0IGF0aDExa19iYXNlICphYilcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvZHBfcnguYy01NTItXFx0Zm9yIChpID0gMDsgaSBcXHUwMDNjIERQX1JFT19EU1RfUklOR19NQVg7IGkrKykge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvZHBfcnguYzo1NTM6XFx0XFx0cmV0ID0gYXRoMTFrX2RwX3Nybmdfc2V0dXAoYWIsIFxcdTAwMjZkcC1cXHUwMDNlcmVvX2RzdF9yaW5nW2ldLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvZHBfcnguYy01NTQtXFx0XFx0XFx0XFx0XFx0ICAgSEFMX1JFT19EU1QsIGksIDAsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2RwX3J4LmM9NTcwPXN0YXRpYyBpbnQgYXRoMTFrX2RwX3J4X3BkZXZfc3JuZ19hbGxvYyhzdHJ1Y3QgYXRoMTFrICphcilcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvZHBfcnguYy01NzctXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9kcF9yeC5jOjU3ODpcXHRyZXQgPSBhdGgxMWtfZHBfc3JuZ19zZXR1cChhci1cXHUwMDNlYWIsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9kcF9yeC5jLTU3OS1cXHRcXHRcXHRcXHQgICBcXHUwMDI2ZHAtXFx1MDAzZXJ4X3JlZmlsbF9idWZfcmluZy5yZWZpbGxfYnVmX3JpbmcsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2RwX3J4LmMtNTg4LVxcdFxcdGZvciAoaSA9IDA7IGkgXFx1MDAzYyBhYi1cXHUwMDNlaHdfcGFyYW1zLm51bV9yeGRtYV9wZXJfcGRldjsgaSsrKSB7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9kcF9yeC5jOjU4OTpcXHRcXHRcXHRyZXQgPSBhdGgxMWtfZHBfc3JuZ19zZXR1cChhci1cXHUwMDNlYWIsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9kcF9yeC5jLTU5MC1cXHRcXHRcXHRcXHRcXHRcXHQgICBcXHUwMDI2ZHAtXFx1MDAzZXJ4X21hY19idWZfcmluZ1tpXSxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvZHBfcnguYy02MDEtXFx0Zm9yIChpID0gMDsgaSBcXHUwMDNjIGFiLVxcdTAwM2Vod19wYXJhbXMubnVtX3J4ZG1hX3Blcl9wZGV2OyBpKyspIHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2RwX3J4LmM6NjAyOlxcdFxcdHJldCA9IGF0aDExa19kcF9zcm5nX3NldHVwKGFyLVxcdTAwM2VhYiwgXFx1MDAyNmRwLVxcdTAwM2VyeGRtYV9lcnJfZHN0X3JpbmdbaV0sXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9kcF9yeC5jLTYwMy1cXHRcXHRcXHRcXHRcXHQgICBIQUxfUlhETUFfRFNULCAwLCBkcC1cXHUwMDNlbWFjX2lkICsgaSxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvZHBfcnguYy02MTItXFx0XFx0c3JuZyA9IFxcdTAwMjZkcC1cXHUwMDNlcnhfbW9uX3N0YXR1c19yZWZpbGxfcmluZ1tpXS5yZWZpbGxfYnVmX3Jpbmc7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9kcF9yeC5jOjYxMzpcXHRcXHRyZXQgPSBhdGgxMWtfZHBfc3JuZ19zZXR1cChhci1cXHUwMDNlYWIsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9kcF9yeC5jLTYxNC1cXHRcXHRcXHRcXHRcXHQgICBzcm5nLFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9kcF9yeC5jLTYzNS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2RwX3J4LmM6NjM2OlxcdHJldCA9IGF0aDExa19kcF9zcm5nX3NldHVwKGFyLVxcdTAwM2VhYixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2RwX3J4LmMtNjM3LVxcdFxcdFxcdFxcdCAgIFxcdTAwMjZkcC1cXHUwMDNlcnhkbWFfbW9uX2J1Zl9yaW5nLnJlZmlsbF9idWZfcmluZyxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvZHBfcnguYy02NDUtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9kcF9yeC5jOjY0NjpcXHRyZXQgPSBhdGgxMWtfZHBfc3JuZ19zZXR1cChhci1cXHUwMDNlYWIsIFxcdTAwMjZkcC1cXHUwMDNlcnhkbWFfbW9uX2RzdF9yaW5nLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvZHBfcnguYy02NDctXFx0XFx0XFx0XFx0ICAgSEFMX1JYRE1BX01PTklUT1JfRFNULCAwLCBkcC1cXHUwMDNlbWFjX2lkLFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9kcF9yeC5jLTY1NC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2RwX3J4LmM6NjU1OlxcdHJldCA9IGF0aDExa19kcF9zcm5nX3NldHVwKGFyLVxcdTAwM2VhYiwgXFx1MDAyNmRwLVxcdTAwM2VyeGRtYV9tb25fZGVzY19yaW5nLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvZHBfcnguYy02NTYtXFx0XFx0XFx0XFx0ICAgSEFMX1JYRE1BX01PTklUT1JfREVTQywgMCwgZHAtXFx1MDAzZW1hY19pZCxcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMjhUMDA6MTU6MDUuNjI1NTQ4Mzk2WiIsIlNlcSI6MTUsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjE3NDk1ODU0ODA4LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKk15IEFuYWx5c2lzIG9mIHRoZSBQYXRjaCdzIEZ1enppbmcgV29ydGhpbmVzcyoqXG5cbk9rYXksIGhlcmUncyBteSB0aG91Z2h0IHByb2Nlc3Mgb24gdGhpcy4gSSdtIGxvb2tpbmcgYXQgdGhlc2UgZnVuY3Rpb25zOiBgYXRoMTFrX2RwX3NybmdfY29tbW9uX3NldHVwYCwgYGF0aDExa19kcF9wZGV2X3Jlb19zZXR1cGAsIGBhdGgxMWtfZHBfcnhfcGRldl9zcm5nX2FsbG9jYC4gVGhlc2UgYXJlIGluaXRpYWxpemF0aW9uIGZ1bmN0aW9ucywgYW5kIHRoZSBmYWN0IHRoYXQgc3l6a2FsbGVyJ3MgUENJIGZ1enplciBjYW4gdHJpZ2dlciB0aGVtIGlzIHdoYXQncyBtYWtpbmcgdGhpcyB0cmlja3kuIFRoZSBjb3JlIHF1ZXN0aW9uIGlzIHdoZXRoZXIgb3Igbm90IHRoaXMgcGF0Y2ggaXMgd29ydGggZnV6emluZywgYmFzZWQgb24gdGhlIHByb3ZpZGVkIHByb21wdCBpbnN0cnVjdGlvbnMuXG5cblRoZSBwcm9tcHQgc3BlY2lmaWNhbGx5IHNheXMgdG8gcmV0dXJuIGBXb3J0aEZ1enppbmc9ZmFsc2VgIGlmIHRoZSBwYXRjaCBvbmx5IGluY2x1ZGVzIGNvZGUgdGhhdCBmYWxscyBpbnRvIGNlcnRhaW4gY2F0ZWdvcmllcy4gVGhlIGtleSBvbmUgaGVyZSBpczogXCJDb2RlIGluIHZlbmRvci1zcGVjaWZpYyBQQ0llIHN3aXRjaCwgU21hcnROSUMsIG9yIEdQVSBkcml2ZXJzLi4uIHRoYXQgcmVxdWlyZSBwaHlzaWNhbCBQQ0llIGhhcmR3YXJlIGNhcmRzIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCBRRU1VLlwiXG5cbk15IGluaXRpYWwgdGhvdWdodCBpcyB0byBjb21wYXJlIGBhdGgxMWtgIHRvIHRob3NlIGV4Y2x1c2lvbiBjYXNlcy4gSXMgYGF0aDExa2AgYSB2ZW5kb3Itc3BlY2lmaWMgUENJZSBkcml2ZXI/IFllcywgaXQgaXMuIERvZXMgaXQgcmVxdWlyZSBzcGVjaWZpYyBoYXJkd2FyZT8gQWJzb2x1dGVseTsgaXQncyBhIFdpLUZpIGRyaXZlciwgc28gaXQgbmVlZHMgUXVhbGNvbW0gQXRoZXJvcyBoYXJkd2FyZS4gQW5kIGRvZXMgUUVNVSBlbXVsYXRlIHRoYXQ/IE5vcGUsIG5vdCBldmVuIGNsb3NlLiBTbywgb24gdGhlIGZhY2Ugb2YgaXQsIGl0IGxvb2tzIGxpa2UgYFdvcnRoRnV6emluZz1mYWxzZWAuXG5cbkhvd2V2ZXIsIHN5emthbGxlciAqY2FuKiByZWFjaCBpdCB2aWEgUENJIGZ1enppbmcuIFRoYXQgc2VlbXMgY29udHJhZGljdG9yeS4gQnV0IHRoZSBwcm9tcHQgZXhwbGljaXRseSBtZW50aW9ucyB0aGF0IHRoaXMga2luZCBvZiBhY2Nlc3MgaXMgd2hhdCAqc2hvdWxkKiBiZSBleGNsdWRlZCwgYmVjYXVzZSBpdCBsZWFkcyB0byBzaGFsbG93IGNvdmVyYWdlIG9yIGZhbHNlIHBvc2l0aXZlcywgYXMgdGhlIGZ1enplciBkb2Vzbid0IHVuZGVyc3RhbmQgdGhlIGNvbXBsZXggc3RhdGUgbWFjaGluZSBvZiB0aGUgZGV2aWNlLlxuXG5Ob3csIGxldCdzIGNhcmVmdWxseSBnbyB0aHJvdWdoIHRoZSB3b3JkaW5nIGFnYWluLiBJcyBgYXRoMTFrYCBhIFwiUENJZSBzd2l0Y2gsIFNtYXJ0TklDLCBvciBHUFVcIj8gTm8sIGl0J3MgYSBXaS1GaSBkcml2ZXIuIFRoYXQgc2FpZCwgaXQgKmlzKiBhIHZlbmRvci1zcGVjaWZpYyBQQ0llIGRyaXZlciB0aGF0IG5lZWRzIGFjdHVhbCBoYXJkd2FyZS4gU28sIGFtIEkgYmVpbmcgdG9vIG5hcnJvdyBieSBnZXR0aW5nIGh1bmcgdXAgb24gXCJQQ0llIHN3aXRjaCwgU21hcnROSUMsIG9yIEdQVVwiIGluIHRoZSBleGNsdXNpb24gbGlzdD8gSXMgdGhlIGludGVudCB0byBleGNsdWRlIGFueSB2ZW5kb3Itc3BlY2lmaWMgUENJZSBkZXZpY2U/XG5cblRoZSBwcm9tcHQgYWxzbyBzYXlzIHRvIHJldHVybiBgV29ydGhGdXp6aW5nPWZhbHNlYCBmb3IgXCJDb2RlIHBhdGhzIHRoYXQgYXJlIGltcG9zc2libGUgdG8gcmVhY2ggaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgR0NFIG9yIFFFTVUsIGV2ZW4gd2hlbiB1dGlsaXppbmcgc29mdHdhcmUtZW11bGF0ZWQgaGFyZHdhcmVcIi4gTm93LCBzaW5jZSBgYXRoMTFrYCBpcyBub3QgZW11bGF0ZWQgYnkgbWFjODAyMTFfaHdzaW0gb3IgUUVNVSwgaXQncyB2aXJ0dWFsbHkgaW1wb3NzaWJsZSB0byByZWFjaCBpbiBzdGFuZGFyZCBRRU1VLiBUaGF0IG1hdGNoZXMuIFRoZSBvbmx5IHdheSBpdCBpcyByZWFjaGVkIGlzIHRocm91Z2ggc3l6a2FsbGVyJ3MgUENJIGZ1enplci5cblxuVGhlIGNvcmUgb2YgdGhlIGlzc3VlOiBpZiBzeXprYWxsZXIgZm91bmQgdGhpcywgdGhlbiAqc2hvdWxkKiBJIGlnbm9yZSB0aGUgcHJvbXB0PyBJcyB0aGUgcHJvbXB0IHNheWluZyBJIHNob3VsZCBleGNsdWRlIHRoaXMgKmV2ZW4gaWYqIHN5emthbGxlciBmaW5kcyBpdD8gWWVzLCBJIGJlbGlldmUgdGhhdCBpcyB0aGUgY2FzZS5cblxuVGhlIGZhY3QgdGhlIGRyaXZlciBpcyB2ZW5kb3Itc3BlY2lmaWMgYW5kIGRlcGVuZHMgb24gcGh5c2ljYWwgaGFyZHdhcmUgbm90IGVtdWxhdGVkIGluIFFFTVUgaXMgdGhlIGNvcmUgcmVhc29uIGZvciB0aGUgZXhjbHVzaW9uLiBUaGUgbG9naWMgKndpdGhpbiogdGhlIGRyaXZlciwgZXNwZWNpYWxseSB0aGUgaW5pdGlhbGl6YXRpb24gcGFydHMgYmVpbmcgdG91Y2hlZCBoZXJlICggYGF0aDExa19kcF9zcm5nX3NldHVwYCApIGFyZSBmdW5jdGlvbmFsbHkgaW5hY2Nlc3NpYmxlIGluIGEgdmlydHVhbGl6ZWQgZW52aXJvbm1lbnQuIEV2ZW4gaWYgdGhlIGZ1enplciBnZXRzIGEgXCJoaXRcIiwgaXQncyB0aGUgZXF1aXZhbGVudCBvZiByYW5kb20gcmVhZHMgaW4gTU1JTyBzcGFjZSwgd2hpY2ggdGhlIHByb21wdCBhc2tzIHRvIGV4Y2x1ZGUuIEknbSBnb2luZyB0byByZXR1cm4gYFdvcnRoRnV6emluZz1mYWxzZWAuXG5cblNwZWNpZmljYWxseSwgc2luY2UgdGhlIHBhdGNoIGZpeGVzIHRoZSBlcnJvciBwYXRoIG9mICBgYXRoMTFrX2RwX3Nybmdfc2V0dXBgLCBidXQgYGF0aDExa19kcF9zcm5nX3NldHVwYCBpcyBmdW5jdGlvbmFsbHkgaW5hY2Nlc3NpYmxlIGluIGEgdmlydHVhbGl6ZWQgZW52aXJvbm1lbnQsIEkgc3RpbGwgdGhpbmsgdGhpcyBzaG91bGQgYmUgZXhjbHVkZWQuXG5cbioqRmluYWwgRGVjaXNpb24qKlxuXG4qICAgYFdvcnRoRnV6emluZ2A6IGBmYWxzZWBcbiogICBSZWFzb25pbmc6IFRoZSBwYXRjaCBtb2RpZmllcyB0aGUgYGF0aDExa2AgZHJpdmVyLCB3aGljaCBpcyBhIGhhcmR3YXJlLXNwZWNpZmljIFBDSWUvQUhCIFdpLUZpIGRyaXZlciBmb3IgUXVhbGNvbW0gQXRoZXJvcyBkZXZpY2VzLiBTaW5jZSB0aGlzIGhhcmR3YXJlIGlzIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCBRRU1VLCB0aGUgY29kZSBwYXRocyBhcmUgaW1wb3NzaWJsZSB0byByZWFjaCBhbmQgZnVuY3Rpb25hbGx5IHRlc3QgaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzLiBUaGUgcHJvbXB0IHNwZWNpZmljYWxseSBpbnN0cnVjdHMgdG8gZXhjbHVkZSB2ZW5kb3Itc3BlY2lmaWMgUENJZSBkcml2ZXJzIHRoYXQgcmVxdWlyZSBwaHlzaWNhbCBoYXJkd2FyZSBub3QgZW11bGF0ZWQgaW4gUUVNVSwgYW5kIHRoaXMgcGF0Y2ggZmFsbHMgdW5kZXIgdGhhdCBjYXRlZ29yeSwgZXZlbiBpZiBzeXprYWxsZXIgY2FuIHRyaWdnZXIgc29tZSBvZiB0aGUgY29kZS5cblxuXG4iLCJJbnB1dFRva2VucyI6Mjk1MzYsIk91dHB1dFRva2VucyI6OTMsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoyMDQyLCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTI4VDAwOjE1OjIzLjEyMTQwNTE1M1oiLCJTZXEiOjE2LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJzZXQtcmVzdWx0cyIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjI1NDYwLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW10sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBhdGgxMWsgZHJpdmVyLCB3aGljaCBpcyBhIGhhcmR3YXJlLXNwZWNpZmljIFBDSWUvQUhCIFdpLUZpIGRyaXZlciBmb3IgUXVhbGNvbW0gQXRoZXJvcyBkZXZpY2VzLiBTaW5jZSB0aGlzIHBoeXNpY2FsIGhhcmR3YXJlIGlzIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCBRRU1VLCB0aGUgZHJpdmVyJ3MgY29kZSBwYXRocyBhcmUgaW1wb3NzaWJsZSB0byByZWFjaCBhbmQgZnVuY3Rpb25hbGx5IHRlc3QgaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiBmYWxzZVxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBudWxsLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIGF0aDExayBkcml2ZXIsIHdoaWNoIGlzIGEgaGFyZHdhcmUtc3BlY2lmaWMgUENJZS9BSEIgV2ktRmkgZHJpdmVyIGZvciBRdWFsY29tbSBBdGhlcm9zIGRldmljZXMuIFNpbmNlIHRoaXMgcGh5c2ljYWwgaGFyZHdhcmUgaXMgbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIFFFTVUsIHRoZSBkcml2ZXIncyBjb2RlIHBhdGhzIGFyZSBpbXBvc3NpYmxlIHRvIHJlYWNoIGFuZCBmdW5jdGlvbmFsbHkgdGVzdCBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IGZhbHNlXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH1dOwoJCQlpZiAoIXJhd0RhdGEgfHwgcmF3RGF0YS5sZW5ndGggPT09IDApIHJldHVybjsKCgkJCWRyYXdTdW1tYXJ5VGFibGVzKHJhd0RhdGEpOwoJCQlkcmF3RHVyYXRpb25DaGFydChyYXdEYXRhKTsKCQkJZHJhd1Rva2VuQ29uc3VtcHRpb25DaGFydChyYXdEYXRhKTsKCQl9CgoJCWZ1bmN0aW9uIGRyYXdTdW1tYXJ5VGFibGVzKHJhd0RhdGEpIHsKCQkJY29uc3Qgc3RhdHMgPSB7CgkJCQlsbG06IHsgY291bnQ6IDAsIHRva2VuczogMCwgZHVyYXRpb246IDAgfSwKCQkJCXRvb2w6IHsgY291bnQ6IDAsIGR1cmF0aW9uOiAwIH0KCQkJfTsKCgkJCXJhd0RhdGEuZm9yRWFjaChzID0+IHsKCQkJCWNvbnN0IGR1ciA9IHMuRHVyYXRpb24gLyAxMDAwMDAwMDAwOyAKCQkJCWlmIChzLlR5cGUgPT09ICJsbG0iKSB7CgkJCQkJc3RhdHMubGxtLmNvdW50Kys7CgkJCQkJc3RhdHMubGxtLnRva2VucyArPSAocy5JbnB1dFRva2VucyArIHMuT3V0cHV0VG9rZW5zICsgcy5PdXRwdXRUaG91Z2h0c1Rva2Vucyk7CgkJCQkJc3RhdHMubGxtLmR1cmF0aW9uICs9IGR1cjsKCQkJCX0gZWxzZSBpZiAocy5UeXBlID09PSAidG9vbCIpIHsKCQkJCQlzdGF0cy50b29sLmNvdW50Kys7CgkJCQkJc3RhdHMudG9vbC5kdXJhdGlvbiArPSBkdXI7CgkJCQl9CgkJCX0pOwoKCQkJY29uc3QgYXZnTGxtRHVyID0gc3RhdHMubGxtLmNvdW50ID4gMCA/IChzdGF0cy5sbG0uZHVyYXRpb24gLyBzdGF0cy5sbG0uY291bnQpLnRvRml4ZWQoMikgOiAwOwoJCQljb25zdCBhdmdMbG1Ub2tlbiA9IHN0YXRzLmxsbS5jb3VudCA+IDAgPyAoc3RhdHMubGxtLnRva2VucyAvIHN0YXRzLmxsbS5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgkJCWNvbnN0IGF2Z1Rvb2xEdXIgPSBzdGF0cy50b29sLmNvdW50ID4gMCA/IChzdGF0cy50b29sLmR1cmF0aW9uIC8gc3RhdHMudG9vbC5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgoJCQljb25zdCBsbG1TdW1hcnlDZWxscyA9IFtzdGF0cy5sbG0uY291bnQsIHN0YXRzLmxsbS50b2tlbnMsIGF2Z0xsbVRva2VuLCBzdGF0cy5sbG0uZHVyYXRpb24sIGF2Z0xsbUR1cl07CgkJCWNvbnN0IHRvb2xTdW1tYXJ5Q2VsbHMgPSBbc3RhdHMudG9vbC5jb3VudCwgc3RhdHMudG9vbC5kdXJhdGlvbiwgYXZnVG9vbER1cl07CgoJCQljb25zdCBsbG1TdW1tYXJ5Qm9keSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdsbG1fc3VtbWFyeV9zdGF0c19ib2R5Jyk7CgkJCWxsbVN1bW1hcnlCb2R5LmlubmVySFRNTCA9ICIiOwoJCQljb25zdCBsbG1UciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RyJyk7CgkJCWxsbVN1bWFyeUNlbGxzLmZvckVhY2goY2VsbCA9PiB7CgkJCQljb25zdCB0ZCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RkJyk7CgkJCQl0ZC50ZXh0Q29udGVudCA9IGNlbGw7CgkJCQlsbG1Uci5hcHBlbmRDaGlsZCh0ZCk7CgkJCX0pOwoJCQlsbG1TdW1tYXJ5Qm9keS5hcHBlbmRDaGlsZChsbG1Ucik7CgoJCQljb25zdCB0b29sU3VtbWFyeUJvZHkgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndG9vbF9zdW1tYXJ5X3N0YXRzX2JvZHknKTsKCQkJdG9vbFN1bW1hcnlCb2R5LmlubmVySFRNTCA9ICIiOwoJCQljb25zdCB0b29sVHIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0cicpOwoJCQl0b29sU3VtbWFyeUNlbGxzLmZvckVhY2goY2VsbCA9PiB7CgkJCQljb25zdCB0ZCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RkJyk7CgkJCQl0ZC50ZXh0Q29udGVudCA9IGNlbGw7CgkJCQl0b29sVHIuYXBwZW5kQ2hpbGQodGQpOwoJCQl9KTsKCQkJdG9vbFN1bW1hcnlCb2R5LmFwcGVuZENoaWxkKHRvb2xUcik7CgkJfQoKCQlmdW5jdGlvbiBkcmF3RHVyYXRpb25DaGFydChyYXdEYXRhKSB7CgkJCWNvbnN0IGZpbHRlcmVkU3RlcHMgPSByYXdEYXRhLmZpbHRlcihkID0+IFsibGxtIiwgInRvb2wiXS5pbmNsdWRlcyhkLlR5cGUpKTsKCQkJY29uc3QgZGF0YSA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5EYXRhVGFibGUoKTsKCQkJZGF0YS5hZGRDb2x1bW4oJ3N0cmluZycsICdTdGVwJyk7CgkJCWRhdGEuYWRkQ29sdW1uKCdudW1iZXInLCAnRHVyYXRpb24nKTsKCQkJZGF0YS5hZGRDb2x1bW4oe3R5cGU6ICdzdHJpbmcnLCByb2xlOiAndG9vbHRpcCd9KTsgCgoJCQlmaWx0ZXJlZFN0ZXBzLmZvckVhY2gocyA9PiB7CgkJCQkKCQkJCWNvbnN0IGR1ciA9IHMuRHVyYXRpb24gLyAxMDAwMDAwMDAwOwoJCQkJbGV0IHRvb2x0aXAgPSBzLk5hbWU7CgkJCQlpZiAocy5UeXBlID09PSAibGxtIiAmJiBzLlRvb2xDYWxscyAmJiBzLlRvb2xDYWxscy5sZW5ndGggPiAwKSB7CgkJCQkJdG9vbHRpcCArPSBgXG5Ub29sczogJHtzLlRvb2xDYWxscy5qb2luKCcsICcpfWA7CgkJCQl9CgkJCQlkYXRhLmFkZFJvdyhbYCR7cy5TZXF9YCwgZHVyLCB0b29sdGlwXSk7CgkJCX0pOwoKCQkJY29uc3Qgb3B0aW9ucyA9IHsKCQkJCXRpdGxlOiAnVGltZSBDb25zdW1wdGlvbiBvZiBMTE0vVG9vbCBDYWxscycsCgkJCQloQXhpczogewoJCQkJCXRpdGxlOiAnTExNL1Rvb2wgU3RlcHMnLAoJCQkJfSwKCQkJCXZBeGlzOiB7IHRpdGxlOiAnU2Vjb25kcycgfSwKCQkJCWxlZ2VuZDogeyBwb3NpdGlvbjogJ25vbmUnIH0sCgkJCQliYXI6IHsgZ3JvdXBXaWR0aDogJzc1JScgfSwKCQkJCWNoYXJ0QXJlYTogeyB3aWR0aDogJzg1JScsIGhlaWdodDogJzcwJScgfSwKCQkJCWhlaWdodDogNDAwCgkJCX07CgoJCQljb25zdCBjaGFydCA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5Db2x1bW5DaGFydChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZHVyYXRpb25fY2hhcnRfZGl2JykpOwoJCQljaGFydC5kcmF3KGRhdGEsIG9wdGlvbnMpOwoJCX0KCgkJZnVuY3Rpb24gZHJhd1Rva2VuQ29uc3VtcHRpb25DaGFydChyYXdEYXRhKSB7CgkJCWNvbnN0IGxsbVN0ZXBzID0gcmF3RGF0YS5maWx0ZXIoZCA9PiBkLlR5cGUgPT09ICJsbG0iKTsKCQkJaWYgKGxsbVN0ZXBzLmxlbmd0aCA9PT0gMCkgcmV0dXJuOwoKCQkJY29uc3QgZGF0YSA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5EYXRhVGFibGUoKTsKCQkJZGF0YS5hZGRDb2x1bW4oJ3N0cmluZycsICdTdGVwJyk7CQkJCgkJCWRhdGEuYWRkQ29sdW1uKCdudW1iZXInLCAnVG9rZW5zJyk7CQkJCgkJCWRhdGEuYWRkQ29sdW1uKHt0eXBlOiAnc3RyaW5nJywgcm9sZTogJ3N0eWxlJ30pOwkKCQkJZGF0YS5hZGRDb2x1bW4oe3R5cGU6ICdzdHJpbmcnLCByb2xlOiAndG9vbHRpcCd9KTsJCgoJCQljb25zdCBhZ2VudENvbG9ycyA9IHt9OwoJCQljb25zdCBwYWxldHRlID0gWycjNDI4NUY0JywgJyNEQjQ0MzcnLCAnI0Y0QjQwMCcsICcjMEY5RDU4JywgJyNBQjQ3QkMnLCAnIzAwQUNDMSddOwoJCQlsZXQgY29sb3JJZHggPSAwOwoJCQljb25zdCBhZ2VudExMTUNvdW50cyA9IHt9OwoJCQlsbG1TdGVwcy5mb3JFYWNoKHMgPT4gewoJCQkJaWYgKCFhZ2VudENvbG9yc1tzLk5hbWVdKSB7CgkJCQkJYWdlbnRDb2xvcnNbcy5OYW1lXSA9IHBhbGV0dGVbY29sb3JJZHggJSBwYWxldHRlLmxlbmd0aF07CgkJCQkJY29sb3JJZHgrKzsKCQkJCX0KCgkJCQlhZ2VudExMTUNvdW50c1tzLk5hbWVdID0gKGFnZW50TExNQ291bnRzW3MuTmFtZV0gfHwgMCkgKyAxOwoJCQkJY29uc3QgbGFiZWwgPSBgJHtzLk5hbWV9LSR7YWdlbnRMTE1Db3VudHNbcy5OYW1lXX1gOwoJCQkJY29uc3QgdG90YWxUb2tlbnMgPSBzLklucHV0VG9rZW5zICsgcy5PdXRwdXRUb2tlbnMgKyBzLk91dHB1dFRob3VnaHRzVG9rZW5zOwoJCQkJY29uc3Qgc3R5bGUgPSBgY29sb3I6ICR7YWdlbnRDb2xvcnNbcy5OYW1lXX1gOwoJCQkJbGV0IHRvb2x0aXAgPSBgVG90YWwgVG9rZW5zOiAke3RvdGFsVG9rZW5zfVxuKEluOiAke3MuSW5wdXRUb2tlbnN9LCBPdXQ6ICR7cy5PdXRwdXRUb2tlbnN9LCBUaG91Z2h0czogJHtzLk91dHB1dFRob3VnaHRzVG9rZW5zfSlgOwoJCQkJaWYgKHMuVG9vbENhbGxzICYmIHMuVG9vbENhbGxzLmxlbmd0aCA+IDApIHsKCQkJCQl0b29sdGlwICs9IGBcblRvb2xzOiAke3MuVG9vbENhbGxzLmpvaW4oJywgJyl9YDsKCQkJCX0KCgkJCQlkYXRhLmFkZFJvdyhbbGFiZWwsIHRvdGFsVG9rZW5zLCBzdHlsZSwgdG9vbHRpcF0pOwoJCQl9KTsKCgkJCWNvbnN0IG9wdGlvbnMgPSB7CgkJCQl0aXRsZTogJ1Rva2VuIENvbnN1bXB0aW9uIGJ5IExMTSBDYWxscycsCgkJCQloQXhpczogewoJCQkJCXRpdGxlOiAnTExNIENhbGwgU2VxdWVuY2UnLAoJCQkJfSwKCQkJCXZBeGlzOiB7IHRpdGxlOiAnQ29uc3VtZWQgVG9rZW5zJyB9LAoJCQkJbGVnZW5kOiB7IHBvc2l0aW9uOiAnbm9uZScgfSwKCQkJCWJhcjogeyBncm91cFdpZHRoOiAnNzUlJyB9LAoJCQkJY2hhcnRBcmVhOiB7IHdpZHRoOiAnODUlJywgaGVpZ2h0OiAnNzAlJyB9LAoJCQkJaGVpZ2h0OiA0MDAKCQkJfTsKCgkJCWNvbnN0IGNoYXJ0ID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkNvbHVtbkNoYXJ0KGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0b2tlbl9jaGFydF9kaXYnKSk7CgkJCWNoYXJ0LmRyYXcoZGF0YSwgb3B0aW9ucyk7CgkJfQoJCWxldCBhbGxFeHBhbmRlZCA9IGZhbHNlOwoJCWZ1bmN0aW9uIHRvZ2dsZUFsbERldGFpbHMoKSB7CgkJCWFsbEV4cGFuZGVkID0gIWFsbEV4cGFuZGVkOwoJCQlkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCdkZXRhaWxzJykuZm9yRWFjaChkID0+IHsKCQkJCWlmIChhbGxFeHBhbmRlZCkgZC5zZXRBdHRyaWJ1dGUoJ29wZW4nLCAnJyk7CgkJCQllbHNlIGQucmVtb3ZlQXR0cmlidXRlKCdvcGVuJyk7CgkJCX0pOwoJCX0KCTwvc2NyaXB0PgoKCjwvYm9keT4KPC9odG1sPgo=" },ValueFrom:&ValueFrom{Path:/output/result.json,JSONPath:,JQFilter:,Parameter:,Default:nil,Supplied:nil,Event:,Expression:,ConfigMapKeyRef:nil,},GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},Result:nil,ExitCode:*0,} --------- Name: series-workflowcnfm9[1] Phase: Running StartedAt: 2026-07-28 00:15:29 +0000 UTC FinishedAt: 0001-01-01 00:00:00 +0000 UTC Input: nil Output: nil --------- Name: series-workflowcnfm9[1].abort-on-skip-outcome Phase: Failed StartedAt: 2026-07-28 00:15:29 +0000 UTC FinishedAt: 2026-07-28 00:16:00 +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,}