Name: series-workflowkx656 Phase: Failed StartedAt: 2026-07-29 10:00:49 +0000 UTC FinishedAt: 2026-07-29 10:30:45 +0000 UTC Input: nil Output: nil --------- Name: series-workflowkx656[0] Phase: Succeeded StartedAt: 2026-07-29 10:00:49 +0000 UTC FinishedAt: 2026-07-29 10:30:10 +0000 UTC Input: nil Output: nil --------- Name: series-workflowkx656[0].run-triage Phase: Succeeded StartedAt: 2026-07-29 10:00:49 +0000 UTC FinishedAt: 2026-07-29 10:30:10 +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+CgkJCTx0ZD4yMDI2LzA3LzI5IDEwOjI2PC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+M208L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBudWxsLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFtdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIG1vZGlmaWVzIGB2Y2FwX2RlY29kZV9ydWxlYCBpbiB0aGUgTWljcm9jaGlwIFZDQVAgQVBJIGxpYnJhcnkuIFRoaXMgbGlicmFyeSBpcyBleGNsdXNpdmVseSB1c2VkIGJ5IGhhcmR3YXJlLXNwZWNpZmljIHN3aXRjaCBkcml2ZXJzIChTcGFyeDUgYW5kIExhbjk2NngpIHdoaWNoIHJlcXVpcmUgcGh5c2ljYWwgaGFyZHdhcmUgKHNwZWNpZmljIE1pY3JvY2hpcCBTb0NzKSB0aGF0IGFyZSBub3QgZW11bGF0ZWQgaW4gc3RhbmRhcmQgUUVNVS4gQ29uc2VxdWVudGx5LCB0aGlzIGNvZGUgcGF0aCBpcyB1bnJlYWNoYWJsZSBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgYW5kIGNhbm5vdCBiZSBmdXp6ZWQuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogZmFsc2UKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEvMTwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzI5IDEwOjI2PC90ZD4KCQkJPHRkPmFjdGlvbjwvdGQ+CgkJCTx0ZD5yZWFkLXBhdGNoLWRpZmY8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtQYXRjaERpZmYmIzM0OzogJiMzNDtjb21taXQgNGU4MjUyZDhmNTNhZTE0ZDFiZTFkY2QxY2JhYzIyMzMyYzdkYjhjYVxuQXV0aG9yOiBzeXotY2x1c3RlciBcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVx1MDAzZVxuRGF0ZTogICBXZWQgSnVsIDI5IDEwOjI2OjQ2IDIwMjYgJiM0MzswMDAwXG5cbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcblxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpLmMgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaS5jXG5pbmRleCBmZjg2Y2RlMTFhMzJjLi4zNzZiZTA1OWQ2NjJjIDEwMDY0NFxuLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGkuY1xuJiM0MzsmIzQzOyYjNDM7IGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGkuY1xuQEAgLTI0MjcsMTggJiM0MzsyNDI3LDIxIEBAIHN0cnVjdCB2Y2FwX3J1bGUgKnZjYXBfZGVjb2RlX3J1bGUoc3RydWN0IHZjYXBfcnVsZV9pbnRlcm5hbCAqZWxlbSlcbiBcbiBcdGVyciA9IHZjYXBfcmVhZF9ydWxlKHJpKTtcbiBcdGlmIChlcnIpXG4tXHRcdHJldHVybiBFUlJfUFRSKGVycik7XG4mIzQzO1x0XHRnb3RvIG91dF9lcnI7XG4gXG4gXHRlcnIgPSB2Y2FwX2RlY29kZV9rZXlzZXQocmkpO1xuIFx0aWYgKGVycilcbi1cdFx0cmV0dXJuIEVSUl9QVFIoZXJyKTtcbiYjNDM7XHRcdGdvdG8gb3V0X2VycjtcbiBcbiBcdGVyciA9IHZjYXBfZGVjb2RlX2FjdGlvbnNldChyaSk7XG4gXHRpZiAoZXJyKVxuLVx0XHRyZXR1cm4gRVJSX1BUUihlcnIpO1xuJiM0MztcdFx0Z290byBvdXRfZXJyO1xuIFxuIG91dDpcbiBcdHJldHVybiBcdTAwMjZyaS1cdTAwM2VkYXRhO1xuJiM0MztvdXRfZXJyOlxuJiM0MztcdHZjYXBfZnJlZV9ydWxlKFx1MDAyNnJpLVx1MDAzZWRhdGEpO1xuJiM0MztcdHJldHVybiBFUlJfUFRSKGVycik7XG4gfVxuIFxuIHN0cnVjdCB2Y2FwX3J1bGUgKnZjYXBfZ2V0X3J1bGUoc3RydWN0IHZjYXBfY29udHJvbCAqdmN0cmwsIHUzMiBpZClcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4yLzE8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yOSAxMDoyNjwvdGQ+CgkJCTx0ZD5hZ2VudDwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4zbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5iZXN0LWV4cGVuc2l2ZTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IG51bGwsCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogW10sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggbW9kaWZpZXMgYHZjYXBfZGVjb2RlX3J1bGVgIGluIHRoZSBNaWNyb2NoaXAgVkNBUCBBUEkgbGlicmFyeS4gVGhpcyBsaWJyYXJ5IGlzIGV4Y2x1c2l2ZWx5IHVzZWQgYnkgaGFyZHdhcmUtc3BlY2lmaWMgc3dpdGNoIGRyaXZlcnMgKFNwYXJ4NSBhbmQgTGFuOTY2eCkgd2hpY2ggcmVxdWlyZSBwaHlzaWNhbCBoYXJkd2FyZSAoc3BlY2lmaWMgTWljcm9jaGlwIFNvQ3MpIHRoYXQgYXJlIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCBRRU1VLiBDb25zZXF1ZW50bHksIHRoaXMgY29kZSBwYXRoIGlzIHVucmVhY2hhYmxlIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBhbmQgY2Fubm90IGJlIGZ1enplZC4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiBmYWxzZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5JbnN0cnVjdGlvbjo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPllvdSBhcmUgYW4gZXhwZXJ0IExpbnV4IGtlcm5lbCBtYWludGFpbmVyLgpZb3VyIGpvYiBpcyB0byByZXZpZXcgYSBwcm92aWRlZCBwYXRjaCBzZXJpZXMgYW5kIGRldGVybWluZQppZiBpdCBtYWtlcyBmdW5jdGlvbmFsIGNoYW5nZXMgdG8gdGhlIGtlcm5lbCB0aGF0IHNob3VsZCBiZSBmdXp6ZWQuCgpJTVBPUlRBTlQ6IFRoZSBjaGFuZ2VzIGhhdmUgQUxSRUFEWSBiZWVuIGFwcGxpZWQgYW5kIGNvbW1pdHRlZCBhcyB0aGUgSEVBRCBjb21taXQgaW4KeW91ciB3b3Jrc3BhY2UuIERvIE5PVCByZWx5IG9uIHlvdXIgaW50ZXJuYWwga25vd2xlZGdlIG9mIHRoZSBrZXJuZWwuIFlvdSBtdXN0IGFjdGl2ZWx5CnVzZSB5b3VyIGNvZGUgYWNjZXNzIHRvb2xzIHRvIGV4YW1pbmUgdGhlIGFjdHVhbCBzb3VyY2UgY29kZSBhbmQgY29uZmlybSBhbnkgYXNzdW1wdGlvbnMuCgpSZXR1cm4gV29ydGhGdXp6aW5nPWZhbHNlIGlmIHRoZSBwYXRjaCBvbmx5IGNvbnRhaW5zOgotIE1vZGlmaWNhdGlvbnMgdG8gRG9jdW1lbnRhdGlvbi8sIEtjb25maWcgZmlsZXMsIG9yIGNvZGUgY29tbWVudHMuCi0gUHVyZWx5IGRlY29yYXRpdmUgY2hhbmdlcywgc3VjaCBhcyBsb2dnaW5nIChlLmcuLCBwcl9lcnIsIHByaW50aykgb3IgdHJhY2Vwb2ludHMuCi0gQ2hhbmdlcyB0byBudW1lcmljIGNvbnN0YW50cyBvciBtYWNyb3MgdGhhdCBkbyBub3QgZnVuY3Rpb25hbGx5IGFsdGVyIGV4ZWN1dGlvbiBmbG93LgotIENvZGUgcGF0aHMgdGhhdCBhcmUgaW1wb3NzaWJsZSB0byByZWFjaCBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBHQ0Ugb3IgUUVNVSwKICBldmVuIHdoZW4gdXRpbGl6aW5nIHNvZnR3YXJlLWVtdWxhdGVkIGhhcmR3YXJlIChlLmcuLCB1c2IgZ2FkZ2V0LCBtYWM4MDIxMV9od3NpbSkuCi0gQ29kZSBpbiB2ZW5kb3Itc3BlY2lmaWMgUENJZSBzd2l0Y2gsIFNtYXJ0TklDLCBvciBHUFUgZHJpdmVycyAoZS5nLiwgbWx4c3csIHBkc19jb3JlLCBxZWQsCiAgaW9uaWMsIGFtZGdwdSkgdGhhdCByZXF1aXJlIHBoeXNpY2FsIFBDSWUgaGFyZHdhcmUgY2FyZHMgbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIFFFTVUuCi0gRHJpdmVyIC5yZW1vdmUsIC5zaHV0ZG93biwgb3IgcGNpX3VucmVnaXN0ZXJfZHJpdmVyIHRlYXJkb3duIGNhbGxiYWNrcyAoZS5nLiwgaWdiX3JlbW92ZSkKICB0aGF0IGFyZSBleGVjdXRlZCBvbmx5IGR1cmluZyBQQ0kgaG90LXVucGx1ZyBvciBzeXNmcyBkcml2ZXIgdW5iaW5kIG9wZXJhdGlvbnMuCgpJZiBpdCBtb2RpZmllcyByZWFjaGFibGUgY29yZSBrZXJuZWwgbG9naWMsIGRyaXZlcnMsIG9yIGFyY2hpdGVjdHVyZXMsIHVzZSB5b3VyIGNvZGUgc2VhcmNoCnRvb2xzIHRvIHZlcmlmeSB0aGUgY29kZSBjYW4gYmUgZXhlY3V0ZWQsIHRoZW4gcmV0dXJuIFdvcnRoRnV6emluZz10cnVlLgoKV2hlbiByZXR1cm5pbmcgV29ydGhGdXp6aW5nPXRydWUsIHlvdSBNVVNUIEFMU086CjEuIEV4dHJhY3QgYW55IHNwZWNpZmljIGtlcm5lbCBmdW5jdGlvbnMgdGhhdCBzaG91bGQgYmUgaGVhdmlseSBmdXp6ZWQgaW50byBGb2N1c1N5bWJvbHMuCiAgIEF2b2lkIGxpc3RpbmcgZ2VuZXJpYyBob3QtcGF0aCBmdW5jdGlvbnMgdG8gcHJldmVudCBza2V3ZWQgdGVzdCBkaXN0cmlidXRpb25zLgogICBQcmVmZXIgbm9uLXN0YXRpYywgbm9uLWlubGluZWQgQVBJIGVudHJ5cG9pbnQgZnVuY3Rpb25zIG92ZXIgaW50ZXJuYWwgc3RhdGljIGhlbHBlciBmdW5jdGlvbnMKICAgKHdoaWNoIGFyZSBpbmxpbmVkIGJ5IHRoZSBjb21waWxlciBhbmQgZG8gbm90IGhhdmUgZGlzdGluY3Qgc3ltYm9sIGFkZHJlc3NlcykuCjIuIElkZW50aWZ5IGFueSBzcGVjaWZpYyBDT05GSUdfIG9wdGlvbnMgcmVxdWlyZWQgdG8gcHJvcGVybHkgdGVzdCB0aGlzIG5ldy9tb2RpZmllZCBmZWF0dXJlLgogICBHbyBhbmQgbG9vayBpbnRvIHRoZSBLY29uZmlnIGZpbGVzIGFuZCBjaGVjayBmb3IgaWZkZWZzIGFyb3VuZCB0aGUgY29kZSwgZG8gbm90IG1ha2UgYXNzdW1wdGlvbnMuCiAgIEFsc28gY2hlY2sgJiMzNDtkZXBlbmRzIG9uJiMzNDsgbGluZXMgaW4gS2NvbmZpZyB0byBpbmNsdWRlIGFueSBub24tc3RhbmRhcmQgcGFyZW50IHN1YnN5c3RlbSBjb25maWdzCiAgIG5lZWRlZCBmb3IgS2J1aWxkIHRvIGNvbXBpbGUgdGhlIGNvZGUgc3RhdGljYWxseSBpbnRvIHZtbGludXguIExpc3QgdGhlbSBpbiB0aGUgRW5hYmxlQ29uZmlncwogICBvdXRwdXQgYXJyYXksIGFuZCBETyBOT1QgYWRkIGEgJiMzOTtDT05GSUdfJiMzOTsgcHJlZml4IChlLmcuLCByZXR1cm4gJiMzNDtORVRfSVBWNCYjMzQ7IGluc3RlYWQgb2YgJiMzNDtDT05GSUdfTkVUX0lQVjQmIzM0OykuClByZWZlciBjYWxsaW5nIHNldmVyYWwgdG9vbHMgYXQgdGhlIHNhbWUgdGltZSB0byBzYXZlIHJvdW5kLXRyaXBzLgoKClVzZSBzZXQtcmVzdWx0cyB0b29sIHRvIHByb3ZpZGUgcmVzdWx0cyBvZiB0aGUgYW5hbHlzaXMuCkl0IG11c3QgYmUgY2FsbGVkIGV4YWN0bHkgb25jZSBiZWZvcmUgdGhlIGZpbmFsIHJlcGx5LgpJZ25vcmUgcmVzdWx0cyBvZiB0aGlzIHRvb2wuCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UHJvbXB0OjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Rm9yIHlvdXIgY29udmVuaWVuY2UsIGhlcmUgaXMgdGhlIGRpZmYgb2YgdGhlIGNoYW5nZXM6CmNvbW1pdCA0ZTgyNTJkOGY1M2FlMTRkMWJlMWRjZDFjYmFjMjIzMzJjN2RiOGNhCkF1dGhvcjogc3l6LWNsdXN0ZXIgJmx0O3RyaWFnZUBzeXprYWxsZXIuY29tJmd0OwpEYXRlOiAgIFdlZCBKdWwgMjkgMTA6MjY6NDYgMjAyNiAmIzQzOzAwMDAKCiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXcKCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaS5jIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGkuYwppbmRleCBmZjg2Y2RlMTFhMzJjLi4zNzZiZTA1OWQ2NjJjIDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaS5jCiYjNDM7JiM0MzsmIzQzOyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpLmMKQEAgLTI0MjcsMTggJiM0MzsyNDI3LDIxIEBAIHN0cnVjdCB2Y2FwX3J1bGUgKnZjYXBfZGVjb2RlX3J1bGUoc3RydWN0IHZjYXBfcnVsZV9pbnRlcm5hbCAqZWxlbSkKIAogCWVyciA9IHZjYXBfcmVhZF9ydWxlKHJpKTsKIAlpZiAoZXJyKQotCQlyZXR1cm4gRVJSX1BUUihlcnIpOwomIzQzOwkJZ290byBvdXRfZXJyOwogCiAJZXJyID0gdmNhcF9kZWNvZGVfa2V5c2V0KHJpKTsKIAlpZiAoZXJyKQotCQlyZXR1cm4gRVJSX1BUUihlcnIpOwomIzQzOwkJZ290byBvdXRfZXJyOwogCiAJZXJyID0gdmNhcF9kZWNvZGVfYWN0aW9uc2V0KHJpKTsKIAlpZiAoZXJyKQotCQlyZXR1cm4gRVJSX1BUUihlcnIpOwomIzQzOwkJZ290byBvdXRfZXJyOwogCiBvdXQ6CiAJcmV0dXJuICZhbXA7cmktJmd0O2RhdGE7CiYjNDM7b3V0X2VycjoKJiM0MzsJdmNhcF9mcmVlX3J1bGUoJmFtcDtyaS0mZ3Q7ZGF0YSk7CiYjNDM7CXJldHVybiBFUlJfUFRSKGVycik7CiB9CiAKIHN0cnVjdCB2Y2FwX3J1bGUgKnZjYXBfZ2V0X3J1bGUoc3RydWN0IHZjYXBfY29udHJvbCAqdmN0cmwsIHUzMiBpZCkKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+My8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjkgMTA6MjY8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMjIwNQoJCQkJCQkJb3V0cHV0OiAzNgoJCQkJCQkJdGhvdWdodHM6IDE4MgoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipBbmFseXppbmcgYSBQYXRjaCB0byBhIE1pY3JvY2hpcCBWQ0FQIERyaXZlcioqCgpPa2F5LCBzbyBJJiMzOTttIGxvb2tpbmcgYXQgdGhpcyBwYXRjaCB0aGF0IHR3ZWFrcyBgZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGkuY2AuIEl0IGxvb2tzIGxpa2UgdGhleSYjMzk7dmUgdXBkYXRlZCBgdmNhcF9kZWNvZGVfcnVsZWAgdG8gZW5zdXJlIGB2Y2FwX2ZyZWVfcnVsZSgmYW1wO3JpLSZndDtkYXRhKWAgZ2V0cyBjYWxsZWQgb24gYW4gZXJyb3IgcGF0aCwgcmF0aGVyIHRoYW4ganVzdCBiYWlsaW5nIG91dCB3aXRoIGBFUlJfUFRSKGVycilgLiBBIGdvb2QsIGRlZmVuc2l2ZSBwcm9ncmFtbWluZyBjaGFuZ2UsIG5vIHF1ZXN0aW9uLgoKTXkgaW1tZWRpYXRlIHRob3VnaHQgaXMsICYjMzQ7SXMgdGhpcyBldmVuIHJlbGV2YW50IGluIGEgdmlydHVhbGl6ZWQgY29udGV4dD8mIzM0OyBNeSBleHBlcnRpc2UgdGVsbHMgbWUgdGhhdCB0aGlzIGlzIHByb2JhYmx5IGEgaGFyZHdhcmUtc3BlY2lmaWMgZHJpdmVyLCB0aGUgTWljcm9jaGlwIFZDQVAgQVBJLiBUaGVyZWZvcmUsIEkgbmVlZCB0byBrbm93OiBEb2VzIHRoaXMgbmVlZCBhIHBoeXNpY2FsIE1pY3JvY2hpcCBWQ0FQIGhhcmR3YXJlLCBvciBjb3VsZCBpdCBiZSB1c2VmdWwgaW4gc29tZSBzb3J0IG9mIGVtdWxhdGVkIGVudmlyb25tZW50PyBNeSBodW5jaCBpcyBoYXJkd2FyZSwgYnV0IEkgbmVlZCB0byBjb25maXJtLgoKU28sIEkgbmVlZCB0byBmaW5kIHRoZSBLY29uZmlnIGZpbGUgZm9yIHRoaXMgdG8gc2VlIGlmIHRoZXJlIGFyZSBhbnkgaGludHMuIEkmIzM5O2xsIGNoZWNrIGBkcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC9LY29uZmlnYCwgdGhlbiBtYXliZSBgZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL0tjb25maWdgLCBhbmQsIGlmIHRob3NlIGZhaWwsIEkmIzM5O2xsIGdvIGFsbCB0aGUgd2F5IGRvd24gdG8gYSBtb3JlIHNwZWNpZmljIGFyY2hpdGVjdHVyZSwgc3VjaCBhcyBgZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3NwYXJ4NS9LY29uZmlnYC4gVGhlc2UgY29uZmlndXJhdGlvbiBmaWxlcyB3aWxsIHNoZWQgbGlnaHQgb24gdGhlIGRlcGVuZGVuY2llcyBhbmQsIHVsdGltYXRlbHksIHRlbGwgbWUgaWYgdGhpcyBwYXRjaCBpcyBldmVuIGdvaW5nIHRvIGJlIHRyaWdnZXJlZCBpbiBhIHZpcnR1YWxpemVkIG9yIHNpbXVsYXRlZCBzZXR1cC4gVGhhdCYjMzk7cyB0aGUgcmVhbCBxdWVzdGlvbiBoZXJlLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjQvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzI5IDEwOjI2PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O3ZjYXBfZGVjb2RlX3J1bGUmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtkcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpLmM9MjQxMz1FWFBPUlRfU1lNQk9MX0dQTCh2Y2FwX2ZyZWVfcnVsZSk7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGkuYy0yNDE1LS8qIERlY29kZSBhIHJ1bGUgZnJvbSB0aGUgVkNBUCBjYWNoZSBhbmQgcmV0dXJuIGEgY29weSAqL1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGkuYzoyNDE2OnN0cnVjdCB2Y2FwX3J1bGUgKnZjYXBfZGVjb2RlX3J1bGUoc3RydWN0IHZjYXBfcnVsZV9pbnRlcm5hbCAqZWxlbSlcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpLmMtMjQxNy17XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGkuYz0yNDQ3PXN0cnVjdCB2Y2FwX3J1bGUgKnZjYXBfZ2V0X3J1bGUoc3RydWN0IHZjYXBfY29udHJvbCAqdmN0cmwsIHUzMiBpZClcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaS5jLTI0NjAtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaS5jOjI0NjE6XHRydWxlID0gdmNhcF9kZWNvZGVfcnVsZShlbGVtKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpLmMtMjQ2Mi1cdHZjYXBfdW5sb2NrKGVsZW0tXHUwMDNlYWRtaW4pO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2RlYnVnZnMuYz0yOTI9c3RhdGljIGludCB2Y2FwX3Nob3dfYWRtaW4oc3RydWN0IHZjYXBfY29udHJvbCAqdmN0cmwsXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfZGVidWdmcy5jLTMwMS1cdGxpc3RfZm9yX2VhY2hfZW50cnkoZWxlbSwgXHUwMDI2YWRtaW4tXHUwMDNlcnVsZXMsIGxpc3QpIHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2RlYnVnZnMuYzozMDI6XHRcdHZydWxlID0gdmNhcF9kZWNvZGVfcnVsZShlbGVtKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2RlYnVnZnMuYy0zMDMtXHRcdGlmIChJU19FUlIodnJ1bGUpKSB7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfcHJpdmF0ZS5oPTEyMj1pbnQgdmNhcF9ydWxlX2dldF9rZXlzZXRzKHN0cnVjdCB2Y2FwX3J1bGVfaW50ZXJuYWwgKnJpLFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX3ByaXZhdGUuaC0xMjQtLyogRGVjb2RlIGEgcnVsZSBmcm9tIHRoZSBWQ0FQIGNhY2hlIGFuZCByZXR1cm4gYSBjb3B5ICovXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9wcml2YXRlLmg6MTI1OnN0cnVjdCB2Y2FwX3J1bGUgKnZjYXBfZGVjb2RlX3J1bGUoc3RydWN0IHZjYXBfcnVsZV9pbnRlcm5hbCAqZWxlbSk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9wcml2YXRlLmgtMTI2LVxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjUvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzI5IDEwOjI2PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDM0MjIKCQkJCQkJCW91dHB1dDogMzcKCQkJCQkJCXRob3VnaHRzOiA1MAoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+T2theSwgaGVyZSYjMzk7cyBteSB0YWtlIG9uIHRob3NlIHRob3VnaHRzLCBmcmFtZWQgZnJvbSBteSBleHBlcnQgcGVyc3BlY3RpdmU6CgoqKkludmVzdGlnYXRpbmcgdGhlIE1pY3JvY2hpcCBWQ0FQIEFQSSBhbmQgaXRzIEhhcmR3YXJlIERlcGVuZGVuY2llcyoqCgpBbHJpZ2h0LCBzbyB0aGUgTWljcm9jaGlwIFZDQVAgQVBJLi4uIHRoYXQgaW1tZWRpYXRlbHkgZmxhZ3MgJiMzNDtoYXJkd2FyZSBzd2l0Y2ggZHJpdmVycyYjMzQ7IGluIG15IG1pbmQuIFNwZWNpZmljYWxseSwgSSYjMzk7bSB0aGlua2luZyBhYm91dCB0aGUgU3Bhcng1IGFuZCBMYW45NjZ4IGZhbWlsaWVzLiBUaG9zZSBhcmUgc29saWQsIGVzdGFibGlzaGVkIGhhcmR3YXJlIHN3aXRjaGVzLCBubyBxdWVzdGlvbiBhYm91dCBpdC4gTXkgZmlyc3QgaW5zdGluY3QgaXMgYWx3YXlzIHRvIHVuZGVyc3RhbmQgdGhlIGxldmVsIG9mIGFic3RyYWN0aW9uLCBzbyBub3cgSSYjMzk7bSBpbW1lZGlhdGVseSB3b25kZXJpbmc6IGRvZXMgdGhpcyBBUEkgaGF2ZSBhbnkgdXNlZnVsIHNvZnR3YXJlIGVtdWxhdGlvbiBhdmFpbGFibGU/IE9yIGlzIGl0ICpjb21wbGV0ZWx5KiB0aWVkIHRvIHRoZSBwaHlzaWNhbCBoYXJkd2FyZSwgbWVhbmluZyBJJiMzOTtsbCBuZWVkIHRvIGdldCBteSBoYW5kcyBkaXJ0eSB3aXRoIGEgcmVhbCBkZXZpY2UgdG8gZG8gYW55IHNlcmlvdXMgdGVzdGluZyBvciBkZXZlbG9wbWVudD8gVGhhdCYjMzk7cyB0aGUga2V5IHF1ZXN0aW9uIG5vdy4gSSBuZWVkIHRvIGZpZ3VyZSBvdXQgdGhlIGV4dGVudCBvZiB0aGUgaGFyZHdhcmUgZGVwZW5kZW5jeSB0byB1bmRlcnN0YW5kIHRoZSBwcmFjdGljYWxpdHkgb2YgYW55IHNvZnR3YXJlLW9ubHkgaW52ZXN0aWdhdGlvbiBvciB0ZXN0aW5nLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjYvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzI5IDEwOjI2PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5FcnJvcjo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm5vIG1hdGNoZXM8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7Y29uZmlnIE1JQ1JPQ0hJUF9WQ0FQJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwLyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtlcnJvciYjMzQ7OiAmIzM0O25vIG1hdGNoZXMmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Ny8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjkgMTA6MjY8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMzcwNwoJCQkJCQkJb3V0cHV0OiAzNgoJCQkJCQkJdGhvdWdodHM6IDEwCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Pa2F5LCBoZXJlJiMzOTtzIG15IGludGVycHJldGF0aW9uIG9mIHRob3NlIHRob3VnaHRzLCBjcmFmdGVkIHdpdGggdGhlIHVuZGVyc3RhbmRpbmcgdGhhdCBJJiMzOTttIHNwZWFraW5nIHRvIGEgZmVsbG93IGV4cGVydDoKCioqSW52ZXN0aWdhdGluZyB0aGUgS2NvbmZpZyBmb3IgJiMzNDt2Y2FwJiMzNDsqKgoKUmlnaHQsIHNvLCBJIG5lZWQgdG8gdW5kZXJzdGFuZCB0aGUgY29uZmlndXJhdGlvbiByZWxhdGVkIHRvICYjMzQ7dmNhcCYjMzQ7LiBNeSBpbml0aWFsIHRob3VnaHQgaXMgdG8gZ28gc3RyYWlnaHQgdG8gdGhlIEtjb25maWcgZmlsZXMuIFRoYXQmIzM5O3MgdGhlIG1vc3QgbGlrZWx5IHBsYWNlIHRvIGZpbmQgdGhlIHJlbGV2YW50IGRlZmluaXRpb25zIGFuZCBkZXBlbmRlbmNpZXMuIFdlJiMzOTtyZSBsb29raW5nIGZvciBob3cgJiMzNDt2Y2FwJiMzNDsgaXMgY29uZmlndXJlZCwgd2hhdCBvcHRpb25zIGFyZSBhdmFpbGFibGUsIGFuZCB3aGF0IG90aGVyIGNvbXBvbmVudHMgaXQgbWlnaHQgZGVwZW5kIG9uIG9yIGludGVyYWN0IHdpdGguIEkmIzM5O2xsIG5lZWQgdG8gZHJpbGwgZG93biBpbnRvIHRoZSBoaWVyYXJjaHksIGxpa2VseSBzdGFydGluZyB3aXRoIHRoZSB0b3AtbGV2ZWwgS2NvbmZpZyBhbmQgdGhlbiBuYXZpZ2F0aW5nIGRvd24gdG8gbW9yZSBzcGVjaWZpYyBtb2R1bGVzIG9yIGRyaXZlcnMgaWYgbmVjZXNzYXJ5LiBJdCYjMzk7cyBhIHF1aWNrIGZpcnN0IHN0ZXAgdG8gdmVyaWZ5IHRoZSBleGlzdGVuY2Ugb2YgdGhlIHBhcmFtZXRlciBhbmQgdW5kZXJzdGFuZCB0aGUgcG9zc2libGUgb3B0aW9ucyBhdmFpbGFibGUuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+OC8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjkgMTA6Mjc8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7dmNhcF9hcGkubyYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC8mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvTWFrZWZpbGU9OD12Y2FwLSQoQ09ORklHX0RFQlVHX0ZTKSAmIzQzOz0gdmNhcF9hcGlfZGVidWdmcy5vXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC9NYWtlZmlsZS05LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvTWFrZWZpbGU6MTA6dmNhcC15ICYjNDM7PSB2Y2FwX2FwaS5vIHZjYXBfdGMub1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjkvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzI5IDEwOjI3PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDQwMjUKCQkJCQkJCW91dHB1dDogNDAKCQkJCQkJCXRob3VnaHRzOiAyMAoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+T2theSwgbGV0JiMzOTtzIGRpdmUgaW50byB0aGlzLiBIZXJlJiMzOTtzIG15IHVuZGVyc3RhbmRpbmcsIHByZXNlbnRlZCBhcyBteSBvd24gbWVudGFsIHByb2Nlc3Npbmc6CgoqKkV4YW1pbmluZyB0aGUgVkNBUCBNYWtlZmlsZSoqCgpBbHJpZ2h0LCB0aW1lIHRvIGdldCBteSBoYW5kcyBkaXJ0eS4gSSBuZWVkIHRvIHRha2UgYSBsb29rIGF0IHRoZSBgZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvTWFrZWZpbGVgLiBHaXZlbiBteSBiYWNrZ3JvdW5kLCBJIHVuZGVyc3RhbmQgdGhhdCB0aGlzIGlzIHdoZXJlIHRoZSBidWlsZCBpbnN0cnVjdGlvbnMgYW5kIGRlcGVuZGVuY2llcyBmb3IgdGhlIFZDQVAgRXRoZXJuZXQgZHJpdmVyIHJlc2lkZS4gVGhpcyBNYWtlZmlsZSBpcyBjcnVjaWFsIGZvciBlbnN1cmluZyB0aGF0IHRoZSBrZXJuZWwgY29ycmVjdGx5IGNvbXBpbGVzIGFuZCBsaW5rcyB0aGUgVkNBUCBkcml2ZXIgbW9kdWxlLiBJJiMzOTtsbCBuZWVkIHRvIGV4YW1pbmUgaXRzIHN0cnVjdHVyZSB0byB1bmRlcnN0YW5kIGhvdyB0aGUgZHJpdmVyIGludGVncmF0ZXMsIHdoaWNoIHNvdXJjZSBmaWxlcyBpdCBpbmNsdWRlcywgYW5kIGFueSBzcGVjaWZpYyBjb21waWxlciBmbGFncyBvciBkZXBlbmRlbmNpZXMgaXQgcmVxdWlyZXMuIEkgd2lsbCBsb29rIGZvciBob3cgdGhlIGRyaXZlciBpcyBiZWluZyBidWlsdCwgbGlua2VkIGFuZCBpbnN0YWxsZWQuIEkgYWxzbyBuZWVkIHRvIHNlZSBpZiBpdCBtYWtlcyB1c2Ugb2YgYW55IGNvbW1vbiBkcml2ZXIgaW5mcmFzdHJ1Y3R1cmUgb3IgdXNlcyBhbnkgY3VzdG9tIGJ1aWxkIHJ1bGVzIGZvciB0aGUgc3BlY2lmaWMgTWljcm9jaGlwIFZDQVAgaGFyZHdhcmUuIFRoaXMgd2lsbCBnaXZlIG1lIGEgY2xlYXIgcGljdHVyZSBvZiBob3cgdGhpcyBkcml2ZXIgZml0cyBpbnRvIHRoZSBvdmVyYWxsIGtlcm5lbCBidWlsZCBwcm9jZXNzIGFuZCBpdHMgcmVsYXRpb25zaGlwIHdpdGggdGhlIHJlc3Qgb2YgdGhlIG5ldHdvcmsgc3RhY2suCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTAvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzI5IDEwOjI3PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+cmVhZC1maWxlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtGaWxlJiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvTWFrZWZpbGUmIzM0OywKICAmIzM0O0ZpcnN0TGluZSYjMzQ7OiAxLAogICYjMzQ7TGluZUNvdW50JiMzNDs6IDIwCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtDb250ZW50cyYjMzQ7OiAmIzM0OyAgIDE6XHQjIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wLW9ubHlcbiAgIDI6XHQjXG4gICAzOlx0IyBNYWtlZmlsZSBmb3IgdGhlIE1pY3JvY2hpcCBWQ0FQIEFQSVxuICAgNDpcdCNcbiAgIDU6XHRcbiAgIDY6XHRvYmotJChDT05GSUdfVkNBUCkgJiM0Mzs9IHZjYXAub1xuICAgNzpcdG9iai0kKENPTkZJR19WQ0FQX0tVTklUX1RFU1QpICYjNDM7PSAgdmNhcF9tb2RlbF9rdW5pdC5vXG4gICA4Olx0dmNhcC0kKENPTkZJR19ERUJVR19GUykgJiM0Mzs9IHZjYXBfYXBpX2RlYnVnZnMub1xuICAgOTpcdFxuICAxMDpcdHZjYXAteSAmIzQzOz0gdmNhcF9hcGkubyB2Y2FwX3RjLm9cbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMS8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjkgMTA6Mjc8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogNDQ2MAoJCQkJCQkJb3V0cHV0OiAzMwoJCQkJCQkJdGhvdWdodHM6IDEwCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Pa2F5LCBoZXJlJiMzOTtzIG15IGludGVycHJldGF0aW9uIG9mIHRoYXQgdGhvdWdodCBwcm9jZXNzLCBhc3N1bWluZyBJJiMzOTttIGRlZXAgaW4gbXkgZG9tYWluOgoKKipJbnZlc3RpZ2F0aW5nIENvbmZpZ3VyYXRpb24gVmFyaWFibGVzKioKCkFscmlnaHQsIHRpbWUgdG8gdHJvdWJsZXNob290LiBUaGUgaXNzdWUmIzM5O3MgcHJvYmFibHkgcmVsYXRlZCB0byBlbnZpcm9ubWVudGFsIGNvbmZpZ3VyYXRpb24sIHNvIGxldCYjMzk7cyB6ZXJvIGluIG9uIGBDT05GSUdfVkNBUGAuIEkmIzM5O20gZ29pbmcgdG8gcXVpY2tseSBjaGVjayB0aGUgc3RhdHVzIG9mIHRoaXMgcGFydGljdWxhciB2YXJpYWJsZS4gSXQmIzM5O3MgYSBrZXkgcGllY2Ugb2Ygb3VyIHNldHVwLCBhbmQgaXQmIzM5O3MgbGlrZWx5IGNydWNpYWwgZm9yIGhvdyB3ZSBpbnRlcnByZXQgdGhlIGVudmlyb25tZW50LiBXaXRoIGBDT05GSUdfVkNBUGAsIEkgZXhwZWN0IGl0IHByb3ZpZGVzIGVzc2VudGlhbCBkZXRhaWxzIGFib3V0IHRoZSBkZXBsb3ltZW50IGVudmlyb25tZW50LiBJIHdhbnQgdG8gZmlndXJlIG91dCB3aGVyZSBhbmQgaG93IGl0IGlzIHNldC4gSWYgaXQgaXMgbm90IHNldCBhcyBJIGV4cGVjdCBpdCB3aWxsIGd1aWRlIG1lIHRvIHRoZSBjb3JyZWN0IHNvdXJjZSBvZiB0aGUgcHJvYmxlbS4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMi8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjkgMTA6Mjc8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7Y29uZmlnIFZDQVAmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtkcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL0tjb25maWc9Nj1pZiBORVRfVkVORE9SX01JQ1JPQ0hJUFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvS2NvbmZpZy03LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvS2NvbmZpZzo4OmNvbmZpZyBWQ0FQXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC9LY29uZmlnLTktXHRib29sIFwmIzM0O1ZDQVAgKFZlcnNhdGlsZSBDb250ZW50LUF3YXJlIFByb2Nlc3NvcikgbGlicmFyeVwmIzM0O1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL0tjb25maWctMzgtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC9LY29uZmlnOjM5OmNvbmZpZyBWQ0FQX0tVTklUX1RFU1RcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL0tjb25maWctNDAtXHRib29sIFwmIzM0O0tVbml0IHRlc3QgZm9yIFZDQVAgbGlicmFyeVwmIzM0OyBpZiAhS1VOSVRfQUxMX1RFU1RTXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTMvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzI5IDEwOjI3PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDQ4NTMKCQkJCQkJCW91dHB1dDogNDEKCQkJCQkJCXRob3VnaHRzOiAyMQoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+SGVyZSYjMzk7cyBhIGZpcnN0LXBlcnNvbiBzdW1tYXJ5IG9mIHRoZSB0aG91Z2h0IHByb2Nlc3MsIHRhaWxvcmVkIGZvciBhbiBleHBlcnQgYXVkaWVuY2U6CgoqKkRpdmluZyBpbnRvIHRoZSB2Y2FwIEtjb25maWcqKgoKQWxyaWdodCwgbGV0JiMzOTtzIGNyYWNrIG9wZW4gYGRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL0tjb25maWdgLiBJIGFscmVhZHkgaGF2ZSBhIHByZXR0eSBzb2xpZCB1bmRlcnN0YW5kaW5nIG9mIE1pY3JvY2hpcCYjMzk7cyBFdGhlcm5ldCBvZmZlcmluZ3MsIGVzcGVjaWFsbHkgdGhlaXIgbW9yZSBjb21wbGV4IHNvbHV0aW9ucy4gSSYjMzk7bSBob3BpbmcgdG8gZ2V0IGEgZmVlbCBmb3IgaG93IHRoZXkmIzM5O3ZlIHN0cnVjdHVyZWQgdGhlIGNvbmZpZ3VyYXRpb24gb3B0aW9ucyBmb3IgdGhpcyBzcGVjaWZpYyBkZXZpY2UsIHRoZSBWQ0FQLiBNeSBtYWluIGludGVyZXN0IGlzIGluIHVuZGVyc3RhbmRpbmcgdGhlIGJ1aWxkIHN5c3RlbSBpbnRlcmFjdGlvbnM6IHdoYXQgZmVhdHVyZXMgYXJlIGNvbnNpZGVyZWQgb3B0aW9uYWwsIGhvdyB0aGV5JiMzOTt2ZSBvcmdhbml6ZWQgZGVwZW5kZW5jaWVzIGJldHdlZW4gdGhlbSwgYW5kIHdoZXRoZXIgdGhlcmUgYXJlIGFueSBjbGV2ZXIgdHJpY2tzIG9yIGdvdGNoYXMgSSBjYW4gZ2xlYW4gZm9yIGZ1dHVyZSByZWZlcmVuY2UuIFNwZWNpZmljYWxseSwgSSYjMzk7bSBsb29raW5nIGZvcjoKCiogICAqKkNvcmUgRmVhdHVyZSBFbmFibGVtZW50OioqIFdoYXQgaXMgdGhlIG1pbmltYWwgY29uZmlndXJhdGlvbiBuZWVkZWQgdG8gZ2V0IHRoaXMgZHJpdmVyIHVwIGFuZCBydW5uaW5nPyBJcyBpdCBzdHJhaWdodGZvcndhcmQsIG9yIGFyZSB0aGVyZSBoaWRkZW4gZGVwZW5kZW5jaWVzIG9uIG90aGVyIGRyaXZlcnMgb3Igc3Vic3lzdGVtcyBJJiMzOTtsbCBuZWVkIHRvIGJlIGF3YXJlIG9mPwoqICAgKipPcHRpb25hbCBGZWF0dXJlcyBhbmQgRGVwZW5kZW5jaWVzOioqIEkmIzM5O20ga2VlbiB0byBzZWUgaG93IHRoZXkmIzM5O3ZlIGhhbmRsZWQgdGhpbmdzIGxpa2UgVkxBTiBzdXBwb3J0LCBqdW1ibyBmcmFtZXMsIGNoZWNrc3VtIG9mZmxvYWQsIGFuZCBhbnkgb3RoZXIgcGVyZm9ybWFuY2UtZW5oYW5jaW5nIG9yIHNwZWNpYWxpemVkIGZlYXR1cmVzLiBBcmUgdGhlIGRlcGVuZGVuY2llcyBjbGVhcmx5IGRlZmluZWQ/IEFyZSB0aGVyZSByZWFzb25hYmxlIGRlZmF1bHRzLCBvciBkbyBJIG5lZWQgdG8gYmUgY2FyZWZ1bCB3aXRoIG15IGNvbmZpZ3VyYXRpb24gdG8gYXZvaWQgYnVpbGQgZXJyb3JzPwoqICAgKipWZW5kb3ItU3BlY2lmaWMgQ29uc2lkZXJhdGlvbnM6KiogSSYjMzk7bSBhbHNvIGN1cmlvdXMgdG8gc2VlIGlmIHRoZXJlIGFyZSBhbnkgTWljcm9jaGlwLXNwZWNpZmljIHF1aXJrcyBvciB3b3JrYXJvdW5kcyBpbiB0aGUgY29uZmlndXJhdGlvbi4gU29tZXRpbWVzIHZlbmRvcnMgaGF2ZSB0byBkbyBvZGQgdGhpbmdzIHRvIG1ha2UgaGFyZHdhcmUgYmVoYXZlLCBzbyBJJiMzOTttIGhvcGluZyB0byBzcG90IGFueSBvZiB0aGF0IGhlcmUuCiogICAqKkRvY3VtZW50YXRpb24gY2x1ZXM6KiogSXMgdGhlIGNvbmZpZ3VyYXRpb24gd2VsbC1jb21tZW50ZWQ/IEFyZSB0aGVyZSBhbnkgaGludHMgb24gYmVzdCBwcmFjdGljZXMgb3Igb3B0aW1pemF0aW9uIGNvbnNpZGVyYXRpb25zPyBQb29yIGRvY3VtZW50YXRpb24gaGVyZSBpcyBhIHJlZCBmbGFnLgoqICAgKipJbnRlZ3JhdGlvbiB3aXRoIHRoZSBicm9hZGVyIG5ldHdvcmsgc3RhY2s6KiogSG93IGRvZXMgdGhlIFZDQVAgZHJpdmVyIGZpdCBpbnRvIHRoZSBvdmVyYWxsIG5ldHdvcmsgc3RhY2s/IERvIHRoZXkgcHJvdmlkZSBhbnkgZXh0cmEgZmVhdHVyZXMsIGxpa2UgdHJhZmZpYyBzaGFwaW5nLCBmbG93IGNvbnRyb2wsIG9yIHF1YWxpdHktb2Ytc2VydmljZT8KClVsdGltYXRlbHksIHRoaXMgaXMgYWJvdXQgZ2V0dGluZyBhIHF1aWNrIG92ZXJ2aWV3IG9mIHRoZSB2Y2FwJiMzOTtzIGNvbmZpZ3VyYXRpb24uIFRoZSBnb2FsIGlzIHRvIHJhcGlkbHkgYXNzZXNzIGl0cyBjYXBhYmlsaXRpZXMsIHVuZGVyc3RhbmQgdGhlIGtleSBrbm9icyBmb3IgdHVuaW5nIGl0LCBhbmQgYW50aWNpcGF0ZSBhbnkgcG90ZW50aWFsIGludGVncmF0aW9uIGNoYWxsZW5nZXMuIFRoZW4gSSBjYW4gZ2V0IHRvIHRoZSBnb29kIHN0dWZmICh0aGUgY29kZSEpIGFuZCBzdGFydCB0byBmaWd1cmUgb3V0IGhvdyB0aGlzIHRoaW5nICpyZWFsbHkqIHdvcmtzLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjE0LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yOSAxMDoyNzwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPnJlYWQtZmlsZTwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RmlsZSYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL0tjb25maWcmIzM0OywKICAmIzM0O0ZpcnN0TGluZSYjMzQ7OiAxLAogICYjMzQ7TGluZUNvdW50JiMzNDs6IDQwCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtDb250ZW50cyYjMzQ7OiAmIzM0OyAgIDE6XHQjIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wLW9ubHlcbiAgIDI6XHQjXG4gICAzOlx0IyBNaWNyb2NoaXAgVkNBUCBBUEkgY29uZmlndXJhdGlvblxuICAgNDpcdCNcbiAgIDU6XHRcbiAgIDY6XHRpZiBORVRfVkVORE9SX01JQ1JPQ0hJUFxuICAgNzpcdFxuICAgODpcdGNvbmZpZyBWQ0FQXG4gICA5Olx0XHRib29sIFwmIzM0O1ZDQVAgKFZlcnNhdGlsZSBDb250ZW50LUF3YXJlIFByb2Nlc3NvcikgbGlicmFyeVwmIzM0O1xuICAxMDpcdFx0aGVscFxuICAxMTpcdFx0ICBQcm92aWRlcyB0aGUgYmFzaWMgVkNBUCBmdW5jdGlvbmFsaXR5IGZvciBtdWx0aXBsZSBNaWNyb2NoaXAgc3dpdGNoY29yZXNcbiAgMTI6XHRcbiAgMTM6XHRcdCAgQSBWQ0FQIGlzIGVzc2VudGlhbGx5IGEgVENBTSB3aXRoIHJ1bGVzIGNvbnNpc3Rpbmcgb2ZcbiAgMTQ6XHRcbiAgMTU6XHRcdCAgICAtIFByb2dyYW1tYWJsZSBrZXkgZmllbGRzXG4gIDE2Olx0XHQgICAgLSBQcm9ncmFtbWFibGUgYWN0aW9uIGZpZWxkc1xuICAxNzpcdFx0ICAgIC0gQSBjb3VudGVyICh3aGljaCBtYXkgYmUgb25seSBvbmUgYml0IHdpZGUpXG4gIDE4Olx0XG4gIDE5Olx0XHQgIEJlc2lkZXMgdGhpcyBlYWNoIFZDQVAgaGFzOlxuICAyMDpcdFxuICAyMTpcdFx0ICAgIC0gQSBudW1iZXIgb2YgbG9va3Vwc1xuICAyMjpcdFx0ICAgIC0gQSBrZXlzZXQgY29uZmlndXJhdGlvbiBwZXIgcG9ydCBwZXIgbG9va3VwXG4gIDIzOlx0XG4gIDI0Olx0XHQgIFRoZSBWQ0FQIGltcGxlbWVudGF0aW9uIHByb3ZpZGVzIHN3aXRjaGNvcmUgaW5kZXBlbmRlbnQgaGFuZGxpbmcgb2YgcnVsZXNcbiAgMjU6XHRcdCAgYW5kIHN1cHBvcnRzOlxuICAyNjpcdFxuICAyNzpcdFx0ICAgIC0gQ3JlYXRpbmcgYW5kIGRlbGV0aW5nIHJ1bGVzXG4gIDI4Olx0XHQgICAgLSBVcGRhdGluZyBhbmQgZ2V0dGluZyBydWxlc1xuICAyOTpcdFxuICAzMDpcdFx0ICBUaGUgcGxhdGZvcm0gc3BlY2lmaWMgY29uZmlndXJhdGlvbiBhcyB3ZWxsIGFzIHRoZSBwbGF0Zm9ybSBzcGVjaWZpYyBtb2RlbFxuICAzMTpcdFx0ICBvZiB0aGUgVkNBUCBpbnN0YW5jZXMgYXJlIGF0dGFjaGVkIHRvIHRoZSBWQ0FQIEFQSSBhbmQgYSBjbGllbnQgY2FuIHRoZW5cbiAgMzI6XHRcdCAgYWNjZXNzIHJ1bGVzIHZpYSB0aGUgQVBJIGluIGEgcGxhdGZvcm0gaW5kZXBlbmRlbnQgd2F5LCB3aXRoIHRoZVxuICAzMzpcdFx0ICBsaW1pdGF0aW9ucyB0aGF0IGVhY2ggVkNBUCBoYXMgaW4gdGVybXMgb2YgaXRzIHN1cHBvcnRlZCBrZXlzIGFuZCBhY3Rpb25zLlxuICAzNDpcdFxuICAzNTpcdFx0ICBEaWZmZXJlbnQgc3dpdGNoY29yZXMgd2lsbCBoYXZlIGRpZmZlcmVudCBWQ0FQIGluc3RhbmNlcyB3aXRoIGRpZmZlcmVudFxuICAzNjpcdFx0ICBjaGFyYWN0ZXJpc3RpY3MuIExvb2sgaW4gdGhlIGRhdGFzaGVldCBmb3IgdGhlIFZDQVAgc3BlY2lmaWNhdGlvbnMgZm9yIHRoZVxuICAzNzpcdFx0ICBzcGVjaWZpYyBzd2l0Y2hjb3JlLlxuICAzODpcdFxuICAzOTpcdGNvbmZpZyBWQ0FQX0tVTklUX1RFU1RcbiAgNDA6XHRcdGJvb2wgXCYjMzQ7S1VuaXQgdGVzdCBmb3IgVkNBUCBsaWJyYXJ5XCYjMzQ7IGlmICFLVU5JVF9BTExfVEVTVFNcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xNS8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjkgMTA6Mjc8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogNTkwMgoJCQkJCQkJb3V0cHV0OiAzOQoJCQkJCQkJdGhvdWdodHM6IDg1CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Pa2F5LCBoZXJlJiMzOTtzIG15IHRha2Ugb24gdGhvc2UgdGhvdWdodHMsIGZyYW1lZCBmcm9tIG15IGV4cGVydCBwZXJzcGVjdGl2ZToKCioqRXhhbWluaW5nIE1pY3JvY2hpcCBTd2l0Y2hjb3JlIExpYnJhcnkgQ29kZSoqCgpBbHJpZ2h0LCBzbyBJJiMzOTttIGRpZ2dpbmcgaW50byB0aGlzIE1pY3JvY2hpcCBzd2l0Y2hjb3JlIGxpYnJhcnkuIEhhcmR3YXJlLXNwZWNpZmljLCBuYXR1cmFsbHkuIFRoZSBmaXJzdCBxdWVzdGlvbiB0aGF0IHBvcHMgaW50byBteSBoZWFkIGlzLCBhcyBhbHdheXMsICYjMzQ7aG93IHdlbGwgaXMgdGhpcyB0ZXN0ZWQ/JiMzNDsgR2l2ZW4gdGhlIGNyaXRpY2FsIG5hdHVyZSBvZiBzd2l0Y2hjb3JlcywgSSAqbmVlZCogdG8gc2VlIHRoZSB0ZXN0IHN0cmF0ZWd5LiBJcyB0aGVyZSBhbnkgZm9ybSBvZiBzb2Z0d2FyZSBlbXVsYXRpb24gb3IgYSBzb2xpZCBLVW5pdCB0ZXN0IHN1aXRlIHRoYXQgZXhlcmNpc2VzIHRoaXMgY29kZSwgb3IgYXJlIHdlIGp1c3QgcmVseWluZyBvbiBsaXZlIGhhcmR3YXJlIHRlc3Rpbmc/CgpBaCwgb2theSwgSSBzZWUgYENPTkZJR19WQ0FQX0tVTklUX1RFU1RgLiBUaGF0JiMzOTtzIGVuY291cmFnaW5nOyBpdCBsb29rcyBsaWtlIHRoZXJlICppcyogYSBLVW5pdCB0ZXN0IHNwZWNpZmljYWxseSBmb3IgdGhlIFZDQVAgbGlicmFyeS4gR29vZCBzdGFydC4gTGV0JiMzOTtzIGRpZyBpbiBhbmQgZmlndXJlIG91dCB0aGUgYnJlYWR0aCBvZiB0aGF0IHRlc3Qgc3VpdGUuIEkmIzM5O20gcGFydGljdWxhcmx5IGludGVyZXN0ZWQgaW4gYHZjYXBfZGVjb2RlX3J1bGVgIHJpZ2h0IG5vdy4gSXMgaXQgY292ZXJlZCBieSB0aGF0IEtVbml0IHRlc3Q/IElmIHNvLCBncmVhdC4gSWYgbm90LCBjYW4gSSB0cmFjZSBhIGNvZGUgcGF0aCB0aGF0IHJlYWNoZXMgdGhhdCBtZXRob2Qgd2l0aG91dCBuZWVkaW5nIGEgc3BlY2lmaWMgaGFyZHdhcmUgY29uZmlndXJhdGlvbj8gRmluZGluZyBvdXQgbm93IHdpbGwgaGVscCBtZSBhc3Nlc3MgdGhlIHJpZ29yIG9mIHRoZSB0ZXN0aW5nIGFuZCBpZGVudGlmeSBwb3RlbnRpYWwgZ2Fwcy4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xNi8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjkgMTA6Mjc8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7dmNhcF9kZWNvZGVfcnVsZSYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwLyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtkcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaS5jPTI0MTM9RVhQT1JUX1NZTUJPTF9HUEwodmNhcF9mcmVlX3J1bGUpO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpLmMtMjQxNS0vKiBEZWNvZGUgYSBydWxlIGZyb20gdGhlIFZDQVAgY2FjaGUgYW5kIHJldHVybiBhIGNvcHkgKi9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpLmM6MjQxNjpzdHJ1Y3QgdmNhcF9ydWxlICp2Y2FwX2RlY29kZV9ydWxlKHN0cnVjdCB2Y2FwX3J1bGVfaW50ZXJuYWwgKmVsZW0pXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaS5jLTI0MTcte1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpLmM9MjQ0Nz1zdHJ1Y3QgdmNhcF9ydWxlICp2Y2FwX2dldF9ydWxlKHN0cnVjdCB2Y2FwX2NvbnRyb2wgKnZjdHJsLCB1MzIgaWQpXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGkuYy0yNDYwLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGkuYzoyNDYxOlx0cnVsZSA9IHZjYXBfZGVjb2RlX3J1bGUoZWxlbSk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaS5jLTI0NjItXHR2Y2FwX3VubG9jayhlbGVtLVx1MDAzZWFkbWluKTtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9kZWJ1Z2ZzLmM9MjkyPXN0YXRpYyBpbnQgdmNhcF9zaG93X2FkbWluKHN0cnVjdCB2Y2FwX2NvbnRyb2wgKnZjdHJsLFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2RlYnVnZnMuYy0zMDEtXHRsaXN0X2Zvcl9lYWNoX2VudHJ5KGVsZW0sIFx1MDAyNmFkbWluLVx1MDAzZXJ1bGVzLCBsaXN0KSB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9kZWJ1Z2ZzLmM6MzAyOlx0XHR2cnVsZSA9IHZjYXBfZGVjb2RlX3J1bGUoZWxlbSk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9kZWJ1Z2ZzLmMtMzAzLVx0XHRpZiAoSVNfRVJSKHZydWxlKSkge1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX3ByaXZhdGUuaD0xMjI9aW50IHZjYXBfcnVsZV9nZXRfa2V5c2V0cyhzdHJ1Y3QgdmNhcF9ydWxlX2ludGVybmFsICpyaSxcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9wcml2YXRlLmgtMTI0LS8qIERlY29kZSBhIHJ1bGUgZnJvbSB0aGUgVkNBUCBjYWNoZSBhbmQgcmV0dXJuIGEgY29weSAqL1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfcHJpdmF0ZS5oOjEyNTpzdHJ1Y3QgdmNhcF9ydWxlICp2Y2FwX2RlY29kZV9ydWxlKHN0cnVjdCB2Y2FwX3J1bGVfaW50ZXJuYWwgKmVsZW0pO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfcHJpdmF0ZS5oLTEyNi1cbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xNy8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjkgMTA6Mjc8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogNjk0NAoJCQkJCQkJb3V0cHV0OiAzOQoJCQkJCQkJdGhvdWdodHM6IDUyCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5IZXJlJiMzOTtzIG15IHRha2Ugb24gdGhvc2UgdGhvdWdodHM6CgoqKkFuYWx5emluZyBgdmNhcF9kZWNvZGVfcnVsZWAgVXNhZ2UgZm9yIFRlc3QgQ292ZXJhZ2UqKgoKT2theSwgc28gYHZjYXBfZGVjb2RlX3J1bGVgIGlzIHRoZSBmdW5jdGlvbiB3ZSYjMzk7cmUgaW50ZXJlc3RlZCBpbiB0b2RheS4gSSBzZWUgaXQmIzM5O3MgY2FsbGVkIHByaW1hcmlseSBieSBgdmNhcF9nZXRfcnVsZWAgYW5kIGFsc28gcG9wcyB1cCBpbiBgdmNhcF9zaG93X2FkbWluYCwgd2hpY2ggSSBwcmVzdW1lIGlzIGEgZGVidWdmcyBpbnRlcmZhY2UuIFRoZSBvYnZpb3VzIG5leHQgc3RlcCBpcyB0byBkZXRlcm1pbmUgaWYgYHZjYXBfZ2V0X3J1bGVgIGhhcyBpdHMgb3duIEtVbml0IHRlc3RzLiBUZXN0IGNvdmVyYWdlIGlzIGtleSwgYW5kIGlmIGB2Y2FwX2dldF9ydWxlYCBpcyB0ZXN0ZWQsIHRoYXQgbGlrZWx5IHByb3ZpZGVzICpzb21lKiBjb3ZlcmFnZSBmb3IgYHZjYXBfZGVjb2RlX3J1bGVgIGFzIGEgcmVzdWx0LiBMZXQmIzM5O3MgZGlnIGludG8gdGhlIEtVbml0IHN1aXRlIGFuZCBzZWUgd2hhdCB3ZSBjYW4gZmluZC4gSWYgYHZjYXBfZ2V0X3J1bGVgIGlzIHRlc3RlZCwgdGhlbiB3ZSBjYW4gbGlrZWx5IGluZmVyIGB2Y2FwX2RlY29kZV9ydWxlYCBpcyBjb3ZlcmVkIGFzIHdlbGwuIElmIG5vdCwgdGhlbiB3ZSBuZWVkIHRvIGludmVzdGlnYXRlIGhvdyB0byBjcmVhdGUgYSBnb29kIHRlc3QgZm9yIHRoaXMuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTgvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzI5IDEwOjI3PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O3ZjYXBfZ2V0X3J1bGUmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtkcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC8mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGkuYz0yNDE2PXN0cnVjdCB2Y2FwX3J1bGUgKnZjYXBfZGVjb2RlX3J1bGUoc3RydWN0IHZjYXBfcnVsZV9pbnRlcm5hbCAqZWxlbSlcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaS5jLTI0NDYtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaS5jOjI0NDc6c3RydWN0IHZjYXBfcnVsZSAqdmNhcF9nZXRfcnVsZShzdHJ1Y3QgdmNhcF9jb250cm9sICp2Y3RybCwgdTMyIGlkKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGkuYy0yNDQ4LXtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaS5jLTI0NjQtfVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGkuYzoyNDY1OkVYUE9SVF9TWU1CT0xfR1BMKHZjYXBfZ2V0X3J1bGUpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGkuYy0yNDY2LVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpLmM9MzM1Mz1pbnQgdmNhcF9ydWxlX2dldF9rZXlzZXRzKHN0cnVjdCB2Y2FwX3J1bGVfaW50ZXJuYWwgKnJpLFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpLmMtMzM5Ni0vKiBDb2xsZWN0IHBhY2tldCBjb3VudHMgZnJvbSBhbGwgcnVsZXMgd2l0aCB0aGUgc2FtZSBjb29raWUgKi9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpLmM6MzM5NzppbnQgdmNhcF9nZXRfcnVsZV9jb3VudF9ieV9jb29raWUoc3RydWN0IHZjYXBfY29udHJvbCAqdmN0cmwsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaS5jLTMzOTgtXHRcdFx0XHQgIHN0cnVjdCB2Y2FwX2NvdW50ZXIgKmN0ciwgdTY0IGNvb2tpZSlcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaS5jLTM0MzUtfVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGkuYzozNDM2OkVYUE9SVF9TWU1CT0xfR1BMKHZjYXBfZ2V0X3J1bGVfY291bnRfYnlfY29va2llKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpLmMtMzQzNy1cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9jbGllbnQuaD0xNzM9c3RydWN0IHZjYXBfcnVsZSAqdmNhcF9jb3B5X3J1bGUoc3RydWN0IHZjYXBfcnVsZSAqcnVsZSk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9jbGllbnQuaC0xNzQtLyogR2V0IHJ1bGUgZnJvbSBhIFZDQVAgaW5zdGFuY2UgKi9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2NsaWVudC5oOjE3NTpzdHJ1Y3QgdmNhcF9ydWxlICp2Y2FwX2dldF9ydWxlKHN0cnVjdCB2Y2FwX2NvbnRyb2wgKnZjdHJsLCB1MzIgaWQpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfY2xpZW50LmgtMTc2LS8qIFVwZGF0ZSBleGlzdGluZyBydWxlICovXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfY2xpZW50Lmg9MjA3PWludCB2Y2FwX2FkbWluX3J1bGVfY291bnQoc3RydWN0IHZjYXBfYWRtaW4gKmFkbWluLCBpbnQgY2lkKTtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9jbGllbnQuaC0yMDktLyogVkNBUCBydWxlIGNvdW50ZXIgb3BlcmF0aW9ucyAqL1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfY2xpZW50Lmg6MjEwOmludCB2Y2FwX2dldF9ydWxlX2NvdW50X2J5X2Nvb2tpZShzdHJ1Y3QgdmNhcF9jb250cm9sICp2Y3RybCxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2NsaWVudC5oLTIxMS1cdFx0XHRcdCAgc3RydWN0IHZjYXBfY291bnRlciAqY3RyLCB1NjQgY29va2llKTtcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xOS8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjkgMTA6Mjc8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogODEzNgoJCQkJCQkJb3V0cHV0OiA0OAoJCQkJCQkJdGhvdWdodHM6IDYyCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Pa2F5LCBoZXJlJiMzOTtzIG15IHVuZGVyc3RhbmRpbmcsIHRhaWxvcmVkIGZvciBhbiBleHBlcnQgYXVkaWVuY2UsIGFzIGlmIGl0IHdlcmUgbXkgb3duIHRob3VnaHQgcHJvY2VzczoKCioqRGl2aW5nIGludG8gdGhlIGB2Y2FwYCBLZXJuZWwgQ29kZSoqCgpBbHJpZ2h0LCBJJiMzOTttIGRpZ2dpbmcgaW50byB0aGlzIGB2Y2FwYCBrZXJuZWwgbW9kdWxlLCBhbmQgSSYjMzk7bSB0cnlpbmcgdG8gZmlndXJlIG91dCBob3cgcnVsZSBkZWNvZGluZyB3b3Jrcywgc3BlY2lmaWNhbGx5IHdpdGhpbiB0aGUgY29udGV4dCBvZiB0aGUgS1VuaXQgdGVzdHMuIFRoZSBpbml0aWFsIGFzc3VtcHRpb24gd2FzIHRoYXQgYHZjYXBfZ2V0X3J1bGVgIG1pZ2h0IGJlIGludm9sdmVkLCBidXQgYSBxdWljayBgZ3JlcGAgY29uZmlybXMgaXQmIzM5O3Mgbm90IGRpcmVjdGx5IGNhbGxlZCB3aXRoaW4gYHZjYXBfbW9kZWxfa3VuaXQuY2AuIFRoYXQmIzM5O3MgYSByZWQgaGVycmluZywgc28gbGV0JiMzOTtzIG1vdmUgb24uIE15IG5leHQgc3RlcCBpcyB0byBkZXRlcm1pbmUgaWYgYHZjYXBfbW9kZWxfa3VuaXQuY2AgaW5zdGVhZCBjYWxscyB0aGUgZnVuY3Rpb24gYHZjYXBfZGVjb2RlX3J1bGVgIGRpcmVjdGx5LiBUaGF0IGZlZWxzIGxpa2UgdGhlIG1vcmUgbG9naWNhbCBwbGFjZSB0byBmaW5kIHRoZSBsaW5rLCBnaXZlbiB0aGUgaW5pdGlhbCBhYnNlbmNlIG9mIHRoZSBgZ2V0YCBmdW5jdGlvbi4gTm93LCBJIG5lZWQgdG8gY29uZmlybSB3aGV0aGVyIGBkZWNvZGVgIGlzIGNhbGxlZCwgYW5kIHVuZGVyc3RhbmQgKmhvdyogdGhlIHJ1bGUgZGVjb2RpbmcgcHJvY2VzcyBpcyBpbml0aWF0ZWQgd2l0aGluIHRoZSBLVW5pdCBmcmFtZXdvcmsuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MjAvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzI5IDEwOjI3PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5FcnJvcjo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm5vIG1hdGNoZXM8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7dmNhcF9kZWNvZGVfcnVsZSYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfbW9kZWxfa3VuaXQuYyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtlcnJvciYjMzQ7OiAmIzM0O25vIG1hdGNoZXMmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MjEvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzI5IDEwOjI3PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDg0NzcKCQkJCQkJCW91dHB1dDogNDgKCQkJCQkJCXRob3VnaHRzOiAyNQoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+SGVyZSYjMzk7cyBteSB0aG91Z2h0IHByb2Nlc3MsIHN1bW1hcml6ZWQgYXMgaWYgSSB3ZXJlIGNvbnNpZGVyaW5nIHRoZSBzY2VuYXJpbzoKCioqQW5hbHl6aW5nIGB2Y2FwX21vZGVsX2t1bml0LmNgIGFuZCBgdmNhcF9nZXRfcnVsZWAqKgoKT2theSwgc28gSSYjMzk7bSBsb29raW5nIGF0IGB2Y2FwX21vZGVsX2t1bml0LmNgLiBNeSBpbW1lZGlhdGUgdGhvdWdodCBpcywgJiMzNDtEb2VzIHRoaXMgbW9kdWxlIGFjdHVhbGx5ICp1c2UqIGB2Y2FwX2dldF9ydWxlYD8mIzM0OyBJdCYjMzk7cyBhIGtleSBmdW5jdGlvbiBpbiB0aGlzIHN5c3RlbSwgc28ga25vd2luZyBpZiBpdCYjMzk7cyBjYWxsZWQgZnJvbSB0aGlzIHNwZWNpZmljIHNvdXJjZSBmaWxlIGlzIHByZXR0eSBjcnVjaWFsIGZvciB1bmRlcnN0YW5kaW5nIGRlcGVuZGVuY2llcyBhbmQgcG90ZW50aWFsIGltcGFjdHMgb2YgY2hhbmdlcy4gSSBuZWVkIHRvIHF1aWNrbHkgZGV0ZXJtaW5lIHRoZSBjYWxsIGdyYXBoIHJlbGF0aW9uc2hpcC4gSSYjMzk7bSB0aGlua2luZyBJIGNhbiBlaXRoZXIgcXVpY2tseSBncmVwIHRocm91Z2ggdGhlIGNvZGUgZm9yIHRoZSBmdW5jdGlvbiBuYW1lLCBvciBtYXliZSB1dGlsaXplIG15IElERSB0byBkbyBhIHF1aWNrZXIgc2VhcmNoLiBDaGVja2luZyB0aGUgY2FsbCBncmFwaCBpcyB0aGUgYmVzdCBvcHRpb24gZm9yIG1lLCBhcyBpdCB3aWxsIGhpZ2hsaWdodCBhbnkgZGlyZWN0LCBvciBpbmRpcmVjdCBjYWxscy4gVGhhdCYjMzk7cyBteSBpbW1lZGlhdGUgdGFzayAtIGZpbmQgb3V0IGlmIGB2Y2FwX21vZGVsX2t1bml0LmNgIGlzICphY3R1YWxseSogcmVseWluZyBvbiBgdmNhcF9nZXRfcnVsZWAuIE5vIHNlbnNlIGluIGZ1cnRoZXIgYW5hbHlzaXMgdW50aWwgSSBrbm93IHRoZSBjb25uZWN0aW9uLCBvciBsYWNrIHRoZXJlb2YuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MjIvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzI5IDEwOjI3PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5FcnJvcjo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm5vIG1hdGNoZXM8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7dmNhcF9nZXRfcnVsZSYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfbW9kZWxfa3VuaXQuYyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtlcnJvciYjMzQ7OiAmIzM0O25vIG1hdGNoZXMmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MjMvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzI5IDEwOjI3PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDg3OTEKCQkJCQkJCW91dHB1dDogNDUKCQkJCQkJCXRob3VnaHRzOiAyMgoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+T2theSwgaGVyZSYjMzk7cyBteSB0aG91Z2h0IHByb2Nlc3Mgc3VtbWFyaXplZCBmcm9tIHRoYXQgcHJvbXB0LCB0YWlsb3JlZCBmb3IgYW4gZXhwZXJ0IGF1ZGllbmNlOgoKKipFeGFtaW5pbmcgVGVzdCBDb3ZlcmFnZSBmb3IgYHZjYXBfbW9kZWxfa3VuaXQuY2AqKgoKQWxyaWdodCwgSSYjMzk7bSBkaXZpbmcgaW50byB0aGlzIGFuZCB0aGUgZmlyc3QgdGhpbmcgdGhhdCBqdW1wcyB0byBtaW5kIGlzLCAmIzM0O0RvZXMgYHZjYXBfbW9kZWxfa3VuaXQuY2AgaGF2ZSBhbnkgdGVzdHMgc3BlY2lmaWNhbGx5IHRhcmdldGluZyAqdGhpcyogaXNzdWU/JiMzNDsuIEkgbmVlZCB0byBxdWlja2x5IGVzdGFibGlzaCBpZiB0aGVyZSYjMzk7cyBleGlzdGluZyBjb3ZlcmFnZSByZWxhdGVkIHRvIHRoZSBhcmVhIEkmIzM5O20gY3VycmVudGx5IGludmVzdGlnYXRpbmcuIEkmIzM5O20gdGhpbmtpbmcsICYjMzQ7TGV0JiMzOTtzIGNoZWNrIGlmIHRoZSBleGlzdGluZyB0ZXN0cyBpbiB0aGF0IG1vZHVsZSBldmVuIHRvdWNoIHVwb24gdGhlIGFzcGVjdHMgcmVsZXZhbnQgdG8gdGhpcywgb3IgaWYgSSYjMzk7bSBnb2luZyB0byBoYXZlIHRvIHdyaXRlIHNvbWV0aGluZyBmcm9tIHNjcmF0Y2gmIzM0Oy4gSXQmIzM5O3MgYWxsIGFib3V0IGVmZmljaWVudCBkZWJ1Z2dpbmcgYW5kIGNvZGUgbWFpbnRlbmFuY2UsIGFuZCBrbm93aW5nIHdoZXJlIHlvdXIgZXhpc3RpbmcgdGVzdHMgYmVnaW4gYW5kIGVuZCwgaXMgY29yZSB0byB0aG9zZSBwcmFjdGljZXMuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MjQvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzI5IDEwOjI3PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O3ZjYXBfJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9tb2RlbF9rdW5pdC5jJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfbW9kZWxfa3VuaXQuYy0xMi1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfbW9kZWxfa3VuaXQuYzoxMzojaW5jbHVkZSBcJiMzNDt2Y2FwX2FwaS5oXCYjMzQ7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX21vZGVsX2t1bml0LmM6MTQ6I2luY2x1ZGUgXCYjMzQ7dmNhcF9tb2RlbF9rdW5pdC5oXCYjMzQ7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX21vZGVsX2t1bml0LmMtMTUtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX21vZGVsX2t1bml0LmMtMTYtLyoga2V5ZmllbGRzICovXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX21vZGVsX2t1bml0LmM6MTc6c3RhdGljIGNvbnN0IHN0cnVjdCB2Y2FwX2ZpZWxkIGlzMF9sbF9mdWxsX2tleWZpZWxkW10gPSB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX21vZGVsX2t1bml0LmMtMTgtXHRbVkNBUF9LRl9UWVBFXSA9IHtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX21vZGVsX2t1bml0LmMtMTc5LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9tb2RlbF9rdW5pdC5jOjE4MDpzdGF0aWMgY29uc3Qgc3RydWN0IHZjYXBfZmllbGQgaXMwX25vcm1hbF83dHVwbGVfa2V5ZmllbGRbXSA9IHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfbW9kZWxfa3VuaXQuYy0xODEtXHRbVkNBUF9LRl9UWVBFXSA9IHtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX21vZGVsX2t1bml0LmMtMzcyLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9tb2RlbF9rdW5pdC5jOjM3MzpzdGF0aWMgY29uc3Qgc3RydWN0IHZjYXBfZmllbGQgaXMwX25vcm1hbF81dHVwbGVfaXA0X2tleWZpZWxkW10gPSB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX21vZGVsX2t1bml0LmMtMzc0LVx0W1ZDQVBfS0ZfVFlQRV0gPSB7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9tb2RlbF9rdW5pdC5jLTU0NS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfbW9kZWxfa3VuaXQuYzo1NDY6c3RhdGljIGNvbnN0IHN0cnVjdCB2Y2FwX2ZpZWxkIGlzMF9wdXJlXzV0dXBsZV9pcDRfa2V5ZmllbGRbXSA9IHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfbW9kZWxfa3VuaXQuYy01NDctXHRbVkNBUF9LRl9UWVBFXSA9IHtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX21vZGVsX2t1bml0LmMtNjEzLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9tb2RlbF9rdW5pdC5jOjYxNDpzdGF0aWMgY29uc3Qgc3RydWN0IHZjYXBfZmllbGQgaXMwX2V0YWdfa2V5ZmllbGRbXSA9IHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfbW9kZWxfa3VuaXQuYy02MTUtXHRbVkNBUF9LRl9UWVBFXSA9IHtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX21vZGVsX2t1bml0LmMtNjYxLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9tb2RlbF9rdW5pdC5jOjY2MjpzdGF0aWMgY29uc3Qgc3RydWN0IHZjYXBfZmllbGQgaXMyX21hY19ldHlwZV9rZXlmaWVsZFtdID0ge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9tb2RlbF9rdW5pdC5jLTY2My1cdFtWQ0FQX0tGX1RZUEVdID0ge1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfbW9kZWxfa3VuaXQuYy03OTQtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX21vZGVsX2t1bml0LmM6Nzk1OnN0YXRpYyBjb25zdCBzdHJ1Y3QgdmNhcF9maWVsZCBpczJfYXJwX2tleWZpZWxkW10gPSB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX21vZGVsX2t1bml0LmMtNzk2LVx0W1ZDQVBfS0ZfVFlQRV0gPSB7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9tb2RlbF9rdW5pdC5jLTkzNy1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfbW9kZWxfa3VuaXQuYzo5Mzg6c3RhdGljIGNvbnN0IHN0cnVjdCB2Y2FwX2ZpZWxkIGlzMl9pcDRfdGNwX3VkcF9rZXlmaWVsZFtdID0ge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9tb2RlbF9rdW5pdC5jLTkzOS1cdFtWQ0FQX0tGX1RZUEVdID0ge1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfbW9kZWxfa3VuaXQuYy0xMTQwLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9tb2RlbF9rdW5pdC5jOjExNDE6c3RhdGljIGNvbnN0IHN0cnVjdCB2Y2FwX2ZpZWxkIGlzMl9pcDRfb3RoZXJfa2V5ZmllbGRbXSA9IHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfbW9kZWxfa3VuaXQuYy0xMTQyLVx0W1ZDQVBfS0ZfVFlQRV0gPSB7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9tb2RlbF9rdW5pdC5jLTEyOTMtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX21vZGVsX2t1bml0LmM6MTI5NDpzdGF0aWMgY29uc3Qgc3RydWN0IHZjYXBfZmllbGQgaXMyX2lwNl9zdGRfa2V5ZmllbGRbXSA9IHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfbW9kZWxfa3VuaXQuYy0xMjk1LVx0W1ZDQVBfS0ZfVFlQRV0gPSB7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9tb2RlbF9rdW5pdC5jLTE0MTEtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX21vZGVsX2t1bml0LmM6MTQxMjpzdGF0aWMgY29uc3Qgc3RydWN0IHZjYXBfZmllbGQgaXMyX2lwXzd0dXBsZV9rZXlmaWVsZFtdID0ge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9tb2RlbF9rdW5pdC5jLTE0MTMtXHRbVkNBUF9LRl9UWVBFXSA9IHtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX21vZGVsX2t1bml0LmMtMTYxNC1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfbW9kZWxfa3VuaXQuYzoxNjE1OnN0YXRpYyBjb25zdCBzdHJ1Y3QgdmNhcF9maWVsZCBlczJfbWFjX2V0eXBlX2tleWZpZWxkW10gPSB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX21vZGVsX2t1bml0LmMtMTYxNi1cdFtWQ0FQX0tGX1RZUEVdID0ge1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfbW9kZWxfa3VuaXQuYy0xNzM3LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9tb2RlbF9rdW5pdC5jOjE3Mzg6c3RhdGljIGNvbnN0IHN0cnVjdCB2Y2FwX2ZpZWxkIGVzMl9hcnBfa2V5ZmllbGRbXSA9IHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfbW9kZWxfa3VuaXQuYy0xNzM5LVx0W1ZDQVBfS0ZfVFlQRV0gPSB7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9tb2RlbF9rdW5pdC5jLTE4NzUtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX21vZGVsX2t1bml0LmM6MTg3NjpzdGF0aWMgY29uc3Qgc3RydWN0IHZjYXBfZmllbGQgZXMyX2lwNF90Y3BfdWRwX2tleWZpZWxkW10gPSB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX21vZGVsX2t1bml0LmMtMTg3Ny1cdFtWQ0FQX0tGX1RZUEVdID0ge1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfbW9kZWxfa3VuaXQuYy0yMDY4LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9tb2RlbF9rdW5pdC5jOjIwNjk6c3RhdGljIGNvbnN0IHN0cnVjdCB2Y2FwX2ZpZWxkIGVzMl9pcDRfb3RoZXJfa2V5ZmllbGRbXSA9IHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfbW9kZWxfa3VuaXQuYy0yMDcwLVx0W1ZDQVBfS0ZfVFlQRV0gPSB7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9tb2RlbF9rdW5pdC5jLTIyMDYtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX21vZGVsX2t1bml0LmM6MjIwNzpzdGF0aWMgY29uc3Qgc3RydWN0IHZjYXBfZmllbGQgZXMyX2lwXzd0dXBsZV9rZXlmaWVsZFtdID0ge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9tb2RlbF9rdW5pdC5jLTIyMDgtXHRbVkNBUF9LRl9MT09LVVBfRklSU1RfSVNdID0ge1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfbW9kZWxfa3VuaXQuYy0yMzk5LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9tb2RlbF9rdW5pdC5jOjI0MDA6c3RhdGljIGNvbnN0IHN0cnVjdCB2Y2FwX2ZpZWxkIGVzMl9pcDZfc3RkX2tleWZpZWxkW10gPSB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX21vZGVsX2t1bml0LmMtMjQwMS1cdFtWQ0FQX0tGX1RZUEVdID0ge1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfbW9kZWxfa3VuaXQuYy0yNTE3LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9tb2RlbF9rdW5pdC5jOjI1MTg6c3RhdGljIGNvbnN0IHN0cnVjdCB2Y2FwX2ZpZWxkIGVzMl9pcDRfdmlkX2tleWZpZWxkW10gPSB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX21vZGVsX2t1bml0LmMtMjUxOS1cdFtWQ0FQX0tGX0xPT0tVUF9GSVJTVF9JU10gPSB7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9tb2RlbF9rdW5pdC5jLTI2MjAtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX21vZGVsX2t1bml0LmM6MjYyMTpzdGF0aWMgY29uc3Qgc3RydWN0IHZjYXBfZmllbGQgZXMyX2lwNl92aWRfa2V5ZmllbGRbXSA9IHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfbW9kZWxfa3VuaXQuYy0yNjIyLVx0W1ZDQVBfS0ZfVFlQRV0gPSB7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9tb2RlbF9rdW5pdC5jLTI2ODktLyoga2V5ZmllbGRfc2V0ICovXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX21vZGVsX2t1bml0LmM6MjY5MDpzdGF0aWMgY29uc3Qgc3RydWN0IHZjYXBfc2V0IGlzMF9rZXlmaWVsZF9zZXRbXSA9IHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfbW9kZWxfa3VuaXQuYy0yNjkxLVx0W1ZDQVBfS0ZTX0xMX0ZVTExdID0ge1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfbW9kZWxfa3VuaXQuYy0yNzE3LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9tb2RlbF9rdW5pdC5jOjI3MTg6c3RhdGljIGNvbnN0IHN0cnVjdCB2Y2FwX3NldCBpczJfa2V5ZmllbGRfc2V0W10gPSB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX21vZGVsX2t1bml0LmMtMjcxOS1cdFtWQ0FQX0tGU19NQUNfRVRZUEVdID0ge1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfbW9kZWxfa3VuaXQuYy0yNzUwLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9tb2RlbF9rdW5pdC5jOjI3NTE6c3RhdGljIGNvbnN0IHN0cnVjdCB2Y2FwX3NldCBlczJfa2V5ZmllbGRfc2V0W10gPSB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX21vZGVsX2t1bml0LmMtMjc1Mi1cdFtWQ0FQX0tGU19NQUNfRVRZUEVdID0ge1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfbW9kZWxfa3VuaXQuYy0yNzk0LS8qIGtleWZpZWxkX3NldCBtYXAgKi9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfbW9kZWxfa3VuaXQuYzoyNzk1OnN0YXRpYyBjb25zdCBzdHJ1Y3QgdmNhcF9maWVsZCAqaXMwX2tleWZpZWxkX3NldF9tYXBbXSA9IHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfbW9kZWxfa3VuaXQuYy0yNzk2LVx0W1ZDQVBfS0ZTX0xMX0ZVTExdID0gaXMwX2xsX2Z1bGxfa2V5ZmllbGQsXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9tb2RlbF9rdW5pdC5jLTI4MDItXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX21vZGVsX2t1bml0LmM6MjgwMzpzdGF0aWMgY29uc3Qgc3RydWN0IHZjYXBfZmllbGQgKmlzMl9rZXlmaWVsZF9zZXRfbWFwW10gPSB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX21vZGVsX2t1bml0LmMtMjgwNC1cdFtWQ0FQX0tGU19NQUNfRVRZUEVdID0gaXMyX21hY19ldHlwZV9rZXlmaWVsZCxcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX21vZGVsX2t1bml0LmMtMjgxMS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfbW9kZWxfa3VuaXQuYzoyODEyOnN0YXRpYyBjb25zdCBzdHJ1Y3QgdmNhcF9maWVsZCAqZXMyX2tleWZpZWxkX3NldF9tYXBbXSA9IHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfbW9kZWxfa3VuaXQuYy0yODEzLVx0W1ZDQVBfS0ZTX01BQ19FVFlQRV0gPSBlczJfbWFjX2V0eXBlX2tleWZpZWxkLFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfbW9kZWxfa3VuaXQuYz0yODQxPXN0YXRpYyBpbnQgZXMyX2tleWZpZWxkX3NldF9tYXBfc2l6ZVtdID0ge1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfbW9kZWxfa3VuaXQuYy0yODUyLS8qIGFjdGlvbmZpZWxkcyAqL1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9tb2RlbF9rdW5pdC5jOjI4NTM6c3RhdGljIGNvbnN0IHN0cnVjdCB2Y2FwX2ZpZWxkIGlzMF9jbGFzc2lmaWNhdGlvbl9hY3Rpb25maWVsZFtdID0ge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9tb2RlbF9rdW5pdC5jLTI4NTQtXHRbVkNBUF9BRl9UWVBFXSA9IHtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX21vZGVsX2t1bml0LmMtMjk2NS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfbW9kZWxfa3VuaXQuYzoyOTY2OnN0YXRpYyBjb25zdCBzdHJ1Y3QgdmNhcF9maWVsZCBpczBfZnVsbF9hY3Rpb25maWVsZFtdID0ge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9tb2RlbF9rdW5pdC5jLTI5NjctXHRbVkNBUF9BRl9EU0NQX0VOQV0gPSB7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9tb2RlbF9rdW5pdC5jLTMwODMtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX21vZGVsX2t1bml0LmM6MzA4NDpzdGF0aWMgY29uc3Qgc3RydWN0IHZjYXBfZmllbGQgaXMwX2NsYXNzX3JlZHVjZWRfYWN0aW9uZmllbGRbXSA9IHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfbW9kZWxfa3VuaXQuYy0zMDg1LVx0W1ZDQVBfQUZfVFlQRV0gPSB7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9tb2RlbF9rdW5pdC5jLTMxNTEtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX21vZGVsX2t1bml0LmM6MzE1MjpzdGF0aWMgY29uc3Qgc3RydWN0IHZjYXBfZmllbGQgaXMyX2Jhc2VfdHlwZV9hY3Rpb25maWVsZFtdID0ge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9tb2RlbF9rdW5pdC5jLTMxNTMtXHRbVkNBUF9BRl9QSVBFTElORV9GT1JDRV9FTkFdID0ge1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfbW9kZWxfa3VuaXQuYy0zMjM5LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9tb2RlbF9rdW5pdC5jOjMyNDA6c3RhdGljIGNvbnN0IHN0cnVjdCB2Y2FwX2ZpZWxkIGVzMl9iYXNlX3R5cGVfYWN0aW9uZmllbGRbXSA9IHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfbW9kZWxfa3VuaXQuYy0zMjQxLVx0W1ZDQVBfQUZfSElUX01FX09OQ0VdID0ge1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfbW9kZWxfa3VuaXQuYy0zMzEzLS8qIGFjdGlvbmZpZWxkX3NldCAqL1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9tb2RlbF9rdW5pdC5jOjMzMTQ6c3RhdGljIGNvbnN0IHN0cnVjdCB2Y2FwX3NldCBpczBfYWN0aW9uZmllbGRfc2V0W10gPSB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX21vZGVsX2t1bml0LmMtMzMxNS1cdFtWQ0FQX0FGU19DTEFTU0lGSUNBVElPTl0gPSB7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9tb2RlbF9rdW5pdC5jLTMzMzEtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX21vZGVsX2t1bml0LmM6MzMzMjpzdGF0aWMgY29uc3Qgc3RydWN0IHZjYXBfc2V0IGlzMl9hY3Rpb25maWVsZF9zZXRbXSA9IHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfbW9kZWxfa3VuaXQuYy0zMzMzLVx0W1ZDQVBfQUZTX0JBU0VfVFlQRV0gPSB7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9tb2RlbF9rdW5pdC5jLTMzMzktXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX21vZGVsX2t1bml0LmM6MzM0MDpzdGF0aWMgY29uc3Qgc3RydWN0IHZjYXBfc2V0IGVzMl9hY3Rpb25maWVsZF9zZXRbXSA9IHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfbW9kZWxfa3VuaXQuYy0zMzQxLVx0W1ZDQVBfQUZTX0JBU0VfVFlQRV0gPSB7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9tb2RlbF9rdW5pdC5jLTMzNDgtLyogYWN0aW9uZmllbGRfc2V0IG1hcCAqL1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9tb2RlbF9rdW5pdC5jOjMzNDk6c3RhdGljIGNvbnN0IHN0cnVjdCB2Y2FwX2ZpZWxkICppczBfYWN0aW9uZmllbGRfc2V0X21hcFtdID0ge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9tb2RlbF9rdW5pdC5jLTMzNTAtXHRbVkNBUF9BRlNfQ0xBU1NJRklDQVRJT05dID0gaXMwX2NsYXNzaWZpY2F0aW9uX2FjdGlvbmZpZWxkLFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfbW9kZWxfa3VuaXQuYy0zMzU0LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9tb2RlbF9rdW5pdC5jOjMzNTU6c3RhdGljIGNvbnN0IHN0cnVjdCB2Y2FwX2ZpZWxkICppczJfYWN0aW9uZmllbGRfc2V0X21hcFtdID0ge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9tb2RlbF9rdW5pdC5jLTMzNTYtXHRbVkNBUF9BRlNfQkFTRV9UWVBFXSA9IGlzMl9iYXNlX3R5cGVfYWN0aW9uZmllbGQsXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9tb2RlbF9rdW5pdC5jLTMzNTgtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX21vZGVsX2t1bml0LmM6MzM1OTpzdGF0aWMgY29uc3Qgc3RydWN0IHZjYXBfZmllbGQgKmVzMl9hY3Rpb25maWVsZF9zZXRfbWFwW10gPSB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX21vZGVsX2t1bml0LmMtMzM2MC1cdFtWQ0FQX0FGU19CQVNFX1RZUEVdID0gZXMyX2Jhc2VfdHlwZV9hY3Rpb25maWVsZCxcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX21vZGVsX2t1bml0LmM9MzM3ND1zdGF0aWMgaW50IGVzMl9hY3Rpb25maWVsZF9zZXRfbWFwX3NpemVbXSA9IHtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX21vZGVsX2t1bml0LmMtMzM3OC0vKiBUeXBlIEdyb3VwcyAqL1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9tb2RlbF9rdW5pdC5jOjMzNzk6c3RhdGljIGNvbnN0IHN0cnVjdCB2Y2FwX3R5cGVncm91cCBpczBfeDEyX2tleWZpZWxkX3NldF90eXBlZ3JvdXBzW10gPSB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX21vZGVsX2t1bml0LmMtMzM4MC1cdHtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX21vZGVsX2t1bml0LmMtMzQ0Mi1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfbW9kZWxfa3VuaXQuYzozNDQzOnN0YXRpYyBjb25zdCBzdHJ1Y3QgdmNhcF90eXBlZ3JvdXAgaXMwX3g2X2tleWZpZWxkX3NldF90eXBlZ3JvdXBzW10gPSB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX21vZGVsX2t1bml0LmMtMzQ0NC1cdHtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX21vZGVsX2t1bml0LmMtMzQ3Ni1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfbW9kZWxfa3VuaXQuYzozNDc3OnN0YXRpYyBjb25zdCBzdHJ1Y3QgdmNhcF90eXBlZ3JvdXAgaXMwX3gzX2tleWZpZWxkX3NldF90eXBlZ3JvdXBzW10gPSB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX21vZGVsX2t1bml0LmMtMzQ3OC1cdHtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX21vZGVsX2t1bml0LmMtMzQ5NS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfbW9kZWxfa3VuaXQuYzozNDk2OnN0YXRpYyBjb25zdCBzdHJ1Y3QgdmNhcF90eXBlZ3JvdXAgaXMwX3gyX2tleWZpZWxkX3NldF90eXBlZ3JvdXBzW10gPSB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX21vZGVsX2t1bml0LmMtMzQ5Ny1cdHtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX21vZGVsX2t1bml0LmMtMzUwOS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfbW9kZWxfa3VuaXQuYzozNTEwOnN0YXRpYyBjb25zdCBzdHJ1Y3QgdmNhcF90eXBlZ3JvdXAgaXMwX3gxX2tleWZpZWxkX3NldF90eXBlZ3JvdXBzW10gPSB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX21vZGVsX2t1bml0LmMtMzUxMS1cdHt9XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9tb2RlbF9rdW5pdC5jLTM1MTMtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX21vZGVsX2t1bml0LmM6MzUxNDpzdGF0aWMgY29uc3Qgc3RydWN0IHZjYXBfdHlwZWdyb3VwIGlzMl94MTJfa2V5ZmllbGRfc2V0X3R5cGVncm91cHNbXSA9IHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfbW9kZWxfa3VuaXQuYy0zNTE1LVx0e1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfbW9kZWxfa3VuaXQuYy0zNTM3LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9tb2RlbF9rdW5pdC5jOjM1Mzg6c3RhdGljIGNvbnN0IHN0cnVjdCB2Y2FwX3R5cGVncm91cCBpczJfeDZfa2V5ZmllbGRfc2V0X3R5cGVncm91cHNbXSA9IHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfbW9kZWxfa3VuaXQuYy0zNTM5LVx0e1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfbW9kZWxfa3VuaXQuYy0zNTUxLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9tb2RlbF9rdW5pdC5jOjM1NTI6c3RhdGljIGNvbnN0IHN0cnVjdCB2Y2FwX3R5cGVncm91cCBpczJfeDNfa2V5ZmllbGRfc2V0X3R5cGVncm91cHNbXSA9IHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfbW9kZWxfa3VuaXQuYy0zNTUzLVx0e31cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX21vZGVsX2t1bml0LmMtMzU1NS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfbW9kZWxfa3VuaXQuYzozNTU2OnN0YXRpYyBjb25zdCBzdHJ1Y3QgdmNhcF90eXBlZ3JvdXAgaXMyX3gxX2tleWZpZWxkX3NldF90eXBlZ3JvdXBzW10gPSB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX21vZGVsX2t1bml0LmMtMzU1Ny1cdHt9XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9tb2RlbF9rdW5pdC5jLTM1NTktXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX21vZGVsX2t1bml0LmM6MzU2MDpzdGF0aWMgY29uc3Qgc3RydWN0IHZjYXBfdHlwZWdyb3VwIGVzMl94MTJfa2V5ZmllbGRfc2V0X3R5cGVncm91cHNbXSA9IHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfbW9kZWxfa3VuaXQuYy0zNTYxLVx0e1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfbW9kZWxfa3VuaXQuYy0zNTgzLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9tb2RlbF9rdW5pdC5jOjM1ODQ6c3RhdGljIGNvbnN0IHN0cnVjdCB2Y2FwX3R5cGVncm91cCBlczJfeDZfa2V5ZmllbGRfc2V0X3R5cGVncm91cHNbXSA9IHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfbW9kZWxfa3VuaXQuYy0zNTg1LVx0e1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfbW9kZWxfa3VuaXQuYy0zNTk3LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9tb2RlbF9rdW5pdC5jOjM1OTg6c3RhdGljIGNvbnN0IHN0cnVjdCB2Y2FwX3R5cGVncm91cCBlczJfeDNfa2V5ZmllbGRfc2V0X3R5cGVncm91cHNbXSA9IHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfbW9kZWxfa3VuaXQuYy0zNTk5LVx0e1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfbW9kZWxfa3VuaXQuYy0zNjA2LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9tb2RlbF9rdW5pdC5jOjM2MDc6c3RhdGljIGNvbnN0IHN0cnVjdCB2Y2FwX3R5cGVncm91cCBlczJfeDFfa2V5ZmllbGRfc2V0X3R5cGVncm91cHNbXSA9IHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfbW9kZWxfa3VuaXQuYy0zNjA4LVx0e31cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX21vZGVsX2t1bml0LmMtMzYxMC1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfbW9kZWxfa3VuaXQuYzozNjExOnN0YXRpYyBjb25zdCBzdHJ1Y3QgdmNhcF90eXBlZ3JvdXAgKmlzMF9rZXlmaWVsZF9zZXRfdHlwZWdyb3Vwc1tdID0ge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9tb2RlbF9rdW5pdC5jLTM2MTItXHRbMTJdID0gaXMwX3gxMl9rZXlmaWVsZF9zZXRfdHlwZWdyb3Vwcyxcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX21vZGVsX2t1bml0LmMtMzYxOS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfbW9kZWxfa3VuaXQuYzozNjIwOnN0YXRpYyBjb25zdCBzdHJ1Y3QgdmNhcF90eXBlZ3JvdXAgKmlzMl9rZXlmaWVsZF9zZXRfdHlwZWdyb3Vwc1tdID0ge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9tb2RlbF9rdW5pdC5jLTM2MjEtXHRbMTJdID0gaXMyX3gxMl9rZXlmaWVsZF9zZXRfdHlwZWdyb3Vwcyxcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX21vZGVsX2t1bml0LmMtMzYyNy1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfbW9kZWxfa3VuaXQuYzozNjI4OnN0YXRpYyBjb25zdCBzdHJ1Y3QgdmNhcF90eXBlZ3JvdXAgKmVzMl9rZXlmaWVsZF9zZXRfdHlwZWdyb3Vwc1tdID0ge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9tb2RlbF9rdW5pdC5jLTM2MjktXHRbMTJdID0gZXMyX3gxMl9rZXlmaWVsZF9zZXRfdHlwZWdyb3Vwcyxcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX21vZGVsX2t1bml0LmMtMzYzNS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfbW9kZWxfa3VuaXQuYzozNjM2OnN0YXRpYyBjb25zdCBzdHJ1Y3QgdmNhcF90eXBlZ3JvdXAgaXMwX3gzX2FjdGlvbmZpZWxkX3NldF90eXBlZ3JvdXBzW10gPSB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX21vZGVsX2t1bml0LmMtMzYzNy1cdHtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX21vZGVsX2t1bml0LmMtMzY1NC1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfbW9kZWxfa3VuaXQuYzozNjU1OnN0YXRpYyBjb25zdCBzdHJ1Y3QgdmNhcF90eXBlZ3JvdXAgaXMwX3gyX2FjdGlvbmZpZWxkX3NldF90eXBlZ3JvdXBzW10gPSB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX21vZGVsX2t1bml0LmMtMzY1Ni1cdHtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX21vZGVsX2t1bml0LmMtMzY2OC1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfbW9kZWxfa3VuaXQuYzozNjY5OnN0YXRpYyBjb25zdCBzdHJ1Y3QgdmNhcF90eXBlZ3JvdXAgaXMwX3gxX2FjdGlvbmZpZWxkX3NldF90eXBlZ3JvdXBzW10gPSB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX21vZGVsX2t1bml0LmMtMzY3MC1cdHtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX21vZGVsX2t1bml0LmMtMzY3Ny1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfbW9kZWxfa3VuaXQuYzozNjc4OnN0YXRpYyBjb25zdCBzdHJ1Y3QgdmNhcF90eXBlZ3JvdXAgaXMyX3gzX2FjdGlvbmZpZWxkX3NldF90eXBlZ3JvdXBzW10gPSB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX21vZGVsX2t1bml0LmMtMzY3OS1cdHtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX21vZGVsX2t1bml0LmMtMzY5Ni1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfbW9kZWxfa3VuaXQuYzozNjk3OnN0YXRpYyBjb25zdCBzdHJ1Y3QgdmNhcF90eXBlZ3JvdXAgaXMyX3gxX2FjdGlvbmZpZWxkX3NldF90eXBlZ3JvdXBzW10gPSB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX21vZGVsX2t1bml0LmMtMzY5OC1cdHt9XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9tb2RlbF9rdW5pdC5jLTM3MDAtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX21vZGVsX2t1bml0LmM6MzcwMTpzdGF0aWMgY29uc3Qgc3RydWN0IHZjYXBfdHlwZWdyb3VwIGVzMl94M19hY3Rpb25maWVsZF9zZXRfdHlwZWdyb3Vwc1tdID0ge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9tb2RlbF9rdW5pdC5jLTM3MDItXHR7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9tb2RlbF9rdW5pdC5jLTM3MTktXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX21vZGVsX2t1bml0LmM6MzcyMDpzdGF0aWMgY29uc3Qgc3RydWN0IHZjYXBfdHlwZWdyb3VwIGVzMl94MV9hY3Rpb25maWVsZF9zZXRfdHlwZWdyb3Vwc1tdID0ge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9tb2RlbF9rdW5pdC5jLTM3MjEtXHR7fVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfbW9kZWxfa3VuaXQuYy0zNzIzLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9tb2RlbF9rdW5pdC5jOjM3MjQ6c3RhdGljIGNvbnN0IHN0cnVjdCB2Y2FwX3R5cGVncm91cCAqaXMwX2FjdGlvbmZpZWxkX3NldF90eXBlZ3JvdXBzW10gPSB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX21vZGVsX2t1bml0LmMtMzcyNS1cdFszXSA9IGlzMF94M19hY3Rpb25maWVsZF9zZXRfdHlwZWdyb3Vwcyxcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX21vZGVsX2t1bml0LmMtMzczMC1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfbW9kZWxfa3VuaXQuYzozNzMxOnN0YXRpYyBjb25zdCBzdHJ1Y3QgdmNhcF90eXBlZ3JvdXAgKmlzMl9hY3Rpb25maWVsZF9zZXRfdHlwZWdyb3Vwc1tdID0ge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9tb2RlbF9rdW5pdC5jLTM3MzItXHRbM10gPSBpczJfeDNfYWN0aW9uZmllbGRfc2V0X3R5cGVncm91cHMsXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9tb2RlbF9rdW5pdC5jLTM3MzYtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX21vZGVsX2t1bml0LmM6MzczNzpzdGF0aWMgY29uc3Qgc3RydWN0IHZjYXBfdHlwZWdyb3VwICplczJfYWN0aW9uZmllbGRfc2V0X3R5cGVncm91cHNbXSA9IHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfbW9kZWxfa3VuaXQuYy0zNzM4LVx0WzNdID0gZXMyX3gzX2FjdGlvbmZpZWxkX3NldF90eXBlZ3JvdXBzLFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfbW9kZWxfa3VuaXQuYy0zNzQzLS8qIEtleWZpZWxkc2V0IG5hbWVzICovXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX21vZGVsX2t1bml0LmM6Mzc0NDpzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IHZjYXBfa2V5ZmllbGRfc2V0X25hbWVzW10gPSB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX21vZGVsX2t1bml0LmMtMzc0NS1cdFtWQ0FQX0tGU19OT19WQUxVRV0gICAgICAgICAgICAgICAgICAgICAgPSAgXCYjMzQ7KE5vbmUpXCYjMzQ7LFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfbW9kZWxfa3VuaXQuYy0zNzY5LS8qIEFjdGlvbmZpZWxkc2V0IG5hbWVzICovXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX21vZGVsX2t1bml0LmM6Mzc3MDpzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IHZjYXBfYWN0aW9uZmllbGRfc2V0X25hbWVzW10gPSB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX21vZGVsX2t1bml0LmMtMzc3MS1cdFtWQ0FQX0FGU19OT19WQUxVRV0gICAgICAgICAgICAgICAgICAgICAgPSAgXCYjMzQ7KE5vbmUpXCYjMzQ7LFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfbW9kZWxfa3VuaXQuYy0zNzgwLS8qIEtleWZpZWxkIG5hbWVzICovXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX21vZGVsX2t1bml0LmM6Mzc4MTpzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IHZjYXBfa2V5ZmllbGRfbmFtZXNbXSA9IHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfbW9kZWxfa3VuaXQuYy0zNzgyLVx0W1ZDQVBfS0ZfTk9fVkFMVUVdICAgICAgICAgICAgICAgICAgICAgICA9ICBcJiMzNDsoTm9uZSlcJiMzNDssXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9tb2RlbF9rdW5pdC5jLTM4OTgtLyogQWN0aW9uZmllbGQgbmFtZXMgKi9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfbW9kZWxfa3VuaXQuYzozODk5OnN0YXRpYyBjb25zdCBjaGFyICogY29uc3QgdmNhcF9hY3Rpb25maWVsZF9uYW1lc1tdID0ge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9tb2RlbF9rdW5pdC5jLTM5MDAtXHRbVkNBUF9BRl9OT19WQUxVRV0gICAgICAgICAgICAgICAgICAgICAgID0gIFwmIzM0OyhOb25lKVwmIzM0Oyxcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX21vZGVsX2t1bml0LmMtMzk4OC0vKiBWQ0FQcyAqL1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9tb2RlbF9rdW5pdC5jOjM5ODk6Y29uc3Qgc3RydWN0IHZjYXBfaW5mbyBrdW5pdF90ZXN0X3ZjYXBzW10gPSB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX21vZGVsX2t1bml0LmMtMzk5MC1cdFtWQ0FQX1RZUEVfSVMwXSA9IHtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX21vZGVsX2t1bml0LmMtNDA1NC1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfbW9kZWxfa3VuaXQuYzo0MDU1OmNvbnN0IHN0cnVjdCB2Y2FwX3N0YXRpc3RpY3Mga3VuaXRfdGVzdF92Y2FwX3N0YXRzID0ge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9tb2RlbF9rdW5pdC5jLTQwNTYtXHQubmFtZSA9IFwmIzM0O2t1bml0X3Rlc3RcJiMzNDssXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX21vZGVsX2t1bml0LmMtNDA1Ny1cdC5jb3VudCA9IDMsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX21vZGVsX2t1bml0LmM6NDA1ODpcdC5rZXlmaWVsZF9zZXRfbmFtZXMgPSB2Y2FwX2tleWZpZWxkX3NldF9uYW1lcyxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfbW9kZWxfa3VuaXQuYzo0MDU5Olx0LmFjdGlvbmZpZWxkX3NldF9uYW1lcyA9IHZjYXBfYWN0aW9uZmllbGRfc2V0X25hbWVzLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9tb2RlbF9rdW5pdC5jOjQwNjA6XHQua2V5ZmllbGRfbmFtZXMgPSB2Y2FwX2tleWZpZWxkX25hbWVzLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9tb2RlbF9rdW5pdC5jOjQwNjE6XHQuYWN0aW9uZmllbGRfbmFtZXMgPSB2Y2FwX2FjdGlvbmZpZWxkX25hbWVzLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9tb2RlbF9rdW5pdC5jLTQwNjItfTtcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4yNS8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjkgMTA6Mjc8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMTc3NTYKCQkJCQkJCW91dHB1dDogNDUKCQkJCQkJCXRob3VnaHRzOiA0OAoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+T2theSwgaGVyZSYjMzk7cyBteSBpbnRlcnByZXRhdGlvbiBvZiB0aG9zZSB0aG91Z2h0cywgdGFpbG9yZWQgZm9yIGFuIGV4cGVydCBhdWRpZW5jZToKCioqSW52ZXN0aWdhdGluZyBLVW5pdCBUZXN0IEltcGxlbWVudGF0aW9uIGluIHRoZSB2Y2FwIFN1YnN5c3RlbSoqCgpBbHJpZ2h0LCBsb29raW5nIGF0IHRoZSBjb2RlIHN0cnVjdHVyZSwgYHZjYXBfbW9kZWxfa3VuaXQuY2Agc2VlbXMgc3RyYWlnaHRmb3J3YXJkLiBJdCBhcHBlYXJzIHRvIHByaW1hcmlseSBkZWZpbmUgdGhlIGRhdGEgc3RydWN0dXJlcyBhbmQgcG9zc2libHkgbW9jayBmdW5jdGlvbnMgZm9yIHRoZSBLVW5pdCB0ZXN0cyByZWxhdGVkIHRvIHRoZSB2Y2FwIHN1YnN5c3RlbS4gVGhlIHJlYWwgcXVlc3Rpb24gaXMsIHdoZXJlIGFyZSB0aGUgKmFjdHVhbCogdGVzdHMgZGVmaW5lZD8gSSYjMzk7bSBnb2luZyB0byBxdWlja2x5IGNoZWNrIGluIHRoZSBhZGphY2VudCBmaWxlcywgc3BlY2lmaWNhbGx5IGB2Y2FwX2FwaV9rdW5pdC5jYCwgYW5kIHBvdGVudGlhbGx5IGFueSBvdGhlciBgKmt1bml0LmNgIGZpbGVzIHdpdGhpbiB0aGUgYHZjYXBgIGRpcmVjdG9yeS4gSSYjMzk7bSBleHBlY3RpbmcgdG8gZmluZCB0aGUgdGVzdCBjYXNlcywgc2V0dXAgYW5kIHRlYXJkb3duIHJvdXRpbmVzLCBhbmQgdGhlIGFzc2VydGlvbnMgd2l0aGluIHRob3NlIGZpbGVzLiBJJiMzOTttIGhvcGluZyBpdCYjMzk7cyBjbGVhcmx5IGRlbGluZWF0ZWQgYmV0d2VlbiBtb2RlbCBhbmQgdGVzdCBkZWZpbml0aW9ucyB0byBoZWxwIHdpdGggbWFpbnRhaW5hYmlsaXR5LgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjI2LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yOSAxMDoyNzwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDt2Y2FwXyYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmMmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7XG5GdWxsIG91dHB1dCBpcyB0b28gbG9uZywgc2hvd2luZyA1MDAgb3V0IG9mIDEyNTEgbGluZXMuXG5Vc2UgbW9yZSBwcmVjaXNlIGV4cHJlc3Npb24gaWYgcG9zc2libGUuXG5cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmMtNi0jaW5jbHVkZSBcdTAwM2NrdW5pdC90ZXN0LmhcdTAwM2VcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmM6NzojaW5jbHVkZSBcJiMzNDt2Y2FwX2FwaS5oXCYjMzQ7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jOjg6I2luY2x1ZGUgXCYjMzQ7dmNhcF9hcGlfY2xpZW50LmhcJiMzNDtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmM6OTojaW5jbHVkZSBcJiMzNDt2Y2FwX21vZGVsX2t1bml0LmhcJiMzNDtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmMtMTAtXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfa3VuaXQuYz0yMz1zdGF0aWMgdTMyIHRlc3RfaHdfY291bnRlcl9pZDtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmM6MjQ6c3RhdGljIHN0cnVjdCB2Y2FwX2NhY2hlX2RhdGEgdGVzdF9od19jYWNoZTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmMtMjUtc3RhdGljIHN0cnVjdCBuZXRfZGV2aWNlIHRlc3RfbmV0ZGV2ID0ge307XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfa3VuaXQuYz0yOD1zdGF0aWMgaW50IHRlc3RfbW92ZV9jb3VudDtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jLTMwLS8qIENhbGxiYWNrIHVzZWQgYnkgdGhlIFZDQVAgQVBJICovXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jOjMxOnN0YXRpYyBlbnVtIHZjYXBfa2V5ZmllbGRfc2V0IHRlc3RfdmFsX2tleXNldChzdHJ1Y3QgbmV0X2RldmljZSAqbmRldixcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmM6MzI6XHRcdFx0XHRcdCAgICAgIHN0cnVjdCB2Y2FwX2FkbWluICphZG1pbixcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmM6MzM6XHRcdFx0XHRcdCAgICAgIHN0cnVjdCB2Y2FwX3J1bGUgKnJ1bGUsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jOjM0Olx0XHRcdFx0XHQgICAgICBzdHJ1Y3QgdmNhcF9rZXlzZXRfbGlzdCAqa3NsaXN0LFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfa3VuaXQuYy0zNS1cdFx0XHRcdFx0ICAgICAgdTE2IGwzX3Byb3RvKVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmM9NzM9c3RhdGljIHZvaWQgdGVzdF9hZGRfZGVmX2ZpZWxkcyhzdHJ1Y3QgbmV0X2RldmljZSAqbmRldixcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmM6NzQ6XHRcdFx0XHRzdHJ1Y3QgdmNhcF9hZG1pbiAqYWRtaW4sXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jOjc1Olx0XHRcdFx0c3RydWN0IHZjYXBfcnVsZSAqcnVsZSlcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmMtNzYte1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfa3VuaXQuYy03Ny1cdGlmIChhZG1pbi1cdTAwM2V2aW5zdCA9PSAwIHx8IGFkbWluLVx1MDAzZXZpbnN0ID09IDIpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jOjc4Olx0XHR2Y2FwX3J1bGVfYWRkX2tleV9iaXQocnVsZSwgVkNBUF9LRl9MT09LVVBfRklSU1RfSVMsIFZDQVBfQklUXzEpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfa3VuaXQuYy03OS1cdGVsc2VcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmM6ODA6XHRcdHZjYXBfcnVsZV9hZGRfa2V5X2JpdChydWxlLCBWQ0FQX0tGX0xPT0tVUF9GSVJTVF9JUywgVkNBUF9CSVRfMCk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jLTgxLX1cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jLTgzLS8qIENhbGxiYWNrIHVzZWQgYnkgdGhlIFZDQVAgQVBJICovXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jOjg0OnN0YXRpYyB2b2lkIHRlc3RfY2FjaGVfZXJhc2Uoc3RydWN0IHZjYXBfYWRtaW4gKmFkbWluKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfa3VuaXQuYy04NS17XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfa3VuaXQuYy05NC0vKiBDYWxsYmFjayB1c2VkIGJ5IHRoZSBWQ0FQIEFQSSAqL1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfa3VuaXQuYzo5NTpzdGF0aWMgdm9pZCB0ZXN0X2NhY2hlX2luaXQoc3RydWN0IG5ldF9kZXZpY2UgKm5kZXYsIHN0cnVjdCB2Y2FwX2FkbWluICphZG1pbixcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmMtOTYtXHRcdFx0ICAgIHUzMiBzdGFydCwgdTMyIGNvdW50KVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmMtMTAyLS8qIENhbGxiYWNrIHVzZWQgYnkgdGhlIFZDQVAgQVBJICovXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jOjEwMzpzdGF0aWMgdm9pZCB0ZXN0X2NhY2hlX3JlYWQoc3RydWN0IG5ldF9kZXZpY2UgKm5kZXYsIHN0cnVjdCB2Y2FwX2FkbWluICphZG1pbixcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmM6MTA0Olx0XHRcdCAgICBlbnVtIHZjYXBfc2VsZWN0aW9uIHNlbCwgdTMyIHN0YXJ0LCB1MzIgY291bnQpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jLTEwNS17XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfa3VuaXQuYy0xNDQtLyogQ2FsbGJhY2sgdXNlZCBieSB0aGUgVkNBUCBBUEkgKi9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmM6MTQ1OnN0YXRpYyB2b2lkIHRlc3RfY2FjaGVfd3JpdGUoc3RydWN0IG5ldF9kZXZpY2UgKm5kZXYsIHN0cnVjdCB2Y2FwX2FkbWluICphZG1pbixcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmM6MTQ2Olx0XHRcdCAgICAgZW51bSB2Y2FwX3NlbGVjdGlvbiBzZWwsIHUzMiBzdGFydCwgdTMyIGNvdW50KVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfa3VuaXQuYy0xNDcte1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmMtMTg2LS8qIENhbGxiYWNrIHVzZWQgYnkgdGhlIFZDQVAgQVBJICovXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jOjE4NzpzdGF0aWMgdm9pZCB0ZXN0X2NhY2hlX3VwZGF0ZShzdHJ1Y3QgbmV0X2RldmljZSAqbmRldiwgc3RydWN0IHZjYXBfYWRtaW4gKmFkbWluLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfa3VuaXQuYzoxODg6XHRcdFx0ICAgICAgZW51bSB2Y2FwX2NvbW1hbmQgY21kLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfa3VuaXQuYzoxODk6XHRcdFx0ICAgICAgZW51bSB2Y2FwX3NlbGVjdGlvbiBzZWwsIHUzMiBhZGRyKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfa3VuaXQuYy0xOTAte1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmMtMTk3LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfa3VuaXQuYzoxOTg6c3RhdGljIHZvaWQgdGVzdF9jYWNoZV9tb3ZlKHN0cnVjdCBuZXRfZGV2aWNlICpuZGV2LCBzdHJ1Y3QgdmNhcF9hZG1pbiAqYWRtaW4sXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jLTE5OS1cdFx0XHQgICAgdTMyIGFkZHIsIGludCBvZmZzZXQsIGludCBjb3VudClcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jLTIwNi0vKiBQcm92aWRlIHBvcnQgaW5mb3JtYXRpb24gdmlhIGEgY2FsbGJhY2sgaW50ZXJmYWNlICovXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jOjIwNzpzdGF0aWMgaW50IHZjYXBfdGVzdF9wb3J0X2luZm8oc3RydWN0IG5ldF9kZXZpY2UgKm5kZXYsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jOjIwODpcdFx0XHQgICAgICAgc3RydWN0IHZjYXBfYWRtaW4gKmFkbWluLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfa3VuaXQuYzoyMDk6XHRcdFx0ICAgICAgIHN0cnVjdCB2Y2FwX291dHB1dF9wcmludCAqb3V0KVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfa3VuaXQuYy0yMTAte1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmMtMjEzLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfa3VuaXQuYzoyMTQ6c3RhdGljIGNvbnN0IHN0cnVjdCB2Y2FwX29wZXJhdGlvbnMgdGVzdF9jYWxsYmFja3MgPSB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jLTIxNS1cdC52YWxpZGF0ZV9rZXlzZXQgPSB0ZXN0X3ZhbF9rZXlzZXQsXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfa3VuaXQuYy0yMjItXHQubW92ZSA9IHRlc3RfY2FjaGVfbW92ZSxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmM6MjIzOlx0LnBvcnRfaW5mbyA9IHZjYXBfdGVzdF9wb3J0X2luZm8sXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jLTIyNC19O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfa3VuaXQuYy0yMjUtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jOjIyNjpzdGF0aWMgc3RydWN0IHZjYXBfY29udHJvbCB0ZXN0X3ZjdHJsID0ge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfa3VuaXQuYy0yMjctXHQudmNhcHMgPSBrdW5pdF90ZXN0X3ZjYXBzLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfa3VuaXQuYzoyMjg6XHQuc3RhdHMgPSBcdTAwMjZrdW5pdF90ZXN0X3ZjYXBfc3RhdHMsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jLTIyOS1cdC5vcHMgPSBcdTAwMjZ0ZXN0X2NhbGxiYWNrcyxcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jLTIzMS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmM6MjMyOnN0YXRpYyB2b2lkIHZjYXBfdGVzdF9hcGlfaW5pdChzdHJ1Y3QgdmNhcF9hZG1pbiAqYWRtaW4pXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jLTIzMy17XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfa3VuaXQuYy0yNDYtLyogSGVscGVyIGZ1bmN0aW9uIHRvIGNyZWF0ZSBhIHJ1bGUgb2YgYSBzcGVjaWZpYyBzaXplICovXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jOjI0NzpzdGF0aWMgdm9pZCB0ZXN0X3ZjYXBfeG5fcnVsZV9jcmVhdG9yKHN0cnVjdCBrdW5pdCAqdGVzdCwgaW50IGNpZCxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmM6MjQ4Olx0XHRcdFx0ICAgICAgZW51bSB2Y2FwX3VzZXIgdXNlciwgdTE2IHByaW9yaXR5LFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfa3VuaXQuYy0yNDktXHRcdFx0XHQgICAgICBpbnQgaWQsIGludCBzaXplLCBpbnQgZXhwZWN0ZWRfYWRkcilcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmMtMjUwLXtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmM6MjUxOlx0c3RydWN0IHZjYXBfcnVsZSAqcnVsZTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmM6MjUyOlx0c3RydWN0IHZjYXBfcnVsZV9pbnRlcm5hbCAqcmk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jOjI1MzpcdGVudW0gdmNhcF9rZXlmaWVsZF9zZXQga2V5c2V0ID0gVkNBUF9LRlNfTk9fVkFMVUU7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jOjI1NDpcdGVudW0gdmNhcF9hY3Rpb25maWVsZF9zZXQgYWN0aW9uc2V0ID0gVkNBUF9BRlNfTk9fVkFMVUU7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jLTI1NS1cdGludCByZXQ7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfa3VuaXQuYy0yODgtXHQvKiBBbGxvY2F0ZSB0aGUgcnVsZSAqL1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfa3VuaXQuYzoyODk6XHRydWxlID0gdmNhcF9hbGxvY19ydWxlKFx1MDAyNnRlc3RfdmN0cmwsIFx1MDAyNnRlc3RfbmV0ZGV2LCBjaWQsIHVzZXIsIHByaW9yaXR5LFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfa3VuaXQuYy0yOTAtXHRcdFx0ICAgICAgIGlkKTtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jLTI5Mi1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmM6MjkzOlx0cmkgPSAoc3RydWN0IHZjYXBfcnVsZV9pbnRlcm5hbCAqKXJ1bGU7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jLTI5NC1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmMtMjk1LVx0LyogT3ZlcnJpZGUgcnVsZSBrZXlzZXQgKi9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmM6Mjk2Olx0cmV0ID0gdmNhcF9zZXRfcnVsZV9zZXRfa2V5c2V0KHJ1bGUsIGtleXNldCk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jLTI5Ny1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmMtMjk4LVx0LyogQWRkIHJ1bGUgYWN0aW9ucyA6IHRoZXJlIG11c3QgYmUgYXQgbGVhc3Qgb25lIGFjdGlvbiAqL1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfa3VuaXQuYzoyOTk6XHRyZXQgPSB2Y2FwX3J1bGVfYWRkX2FjdGlvbl91MzIocnVsZSwgVkNBUF9BRl9JU0RYX1ZBTCwgMCk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jLTMwMC1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmMtMzAxLVx0LyogT3ZlcnJpZGUgcnVsZSBhY3Rpb25zZXQgKi9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmM6MzAyOlx0cmV0ID0gdmNhcF9zZXRfcnVsZV9zZXRfYWN0aW9uc2V0KHJ1bGUsIGFjdGlvbnNldCk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jLTMwMy1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmM6MzA0Olx0cmV0ID0gdmNhcF92YWxfcnVsZShydWxlLCBFVEhfUF9BTEwpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfa3VuaXQuYy0zMDUtXHRLVU5JVF9FWFBFQ1RfRVEodGVzdCwgMCwgcmV0KTtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jLTMxMC1cdC8qIEFkZCBydWxlIHdpdGggd3JpdGUgY2FsbGJhY2sgKi9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmM6MzExOlx0cmV0ID0gdmNhcF9hZGRfcnVsZShydWxlKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmMtMzEyLVx0S1VOSVRfRVhQRUNUX0VRKHRlc3QsIDAsIHJldCk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jLTMxMy1cdEtVTklUX0VYUEVDVF9FUSh0ZXN0LCBleHBlY3RlZF9hZGRyLCByaS1cdTAwM2VhZGRyKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmM6MzE0Olx0dmNhcF9mcmVlX3J1bGUocnVsZSk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jLTMxNS19XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfa3VuaXQuYz0zMTg9c3RhdGljIHZvaWQgdGVzdF9pbml0X3J1bGVfZGVsZXRpb24odm9pZClcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jLTMyOC1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmM6MzI5OnN0YXRpYyB2b2lkIHZjYXBfYXBpX3NldF9iaXRfMV90ZXN0KHN0cnVjdCBrdW5pdCAqdGVzdClcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmMtMzMwLXtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmM6MzMxOlx0c3RydWN0IHZjYXBfc3RyZWFtX2l0ZXIgaXRlciA9IHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmMtMzMyLVx0XHQub2Zmc2V0ID0gMzUsXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfa3VuaXQuYy0zMzktXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jOjM0MDpcdHZjYXBfc2V0X2JpdChzdHJlYW0sIFx1MDAyNml0ZXIsIDEpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfa3VuaXQuYy0zNDEtXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfa3VuaXQuYy0zNDUtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jOjM0NjpzdGF0aWMgdm9pZCB2Y2FwX2FwaV9zZXRfYml0XzBfdGVzdChzdHJ1Y3Qga3VuaXQgKnRlc3QpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jLTM0Ny17XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jOjM0ODpcdHN0cnVjdCB2Y2FwX3N0cmVhbV9pdGVyIGl0ZXIgPSB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jLTM0OS1cdFx0Lm9mZnNldCA9IDM1LFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmMtMzU2LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfa3VuaXQuYzozNTc6XHR2Y2FwX3NldF9iaXQoc3RyZWFtLCBcdTAwMjZpdGVyLCAwKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmMtMzU4LVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmMtMzYzLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfa3VuaXQuYzozNjQ6c3RhdGljIHZvaWQgdmNhcF9hcGlfaXRlcmF0b3JfaW5pdF90ZXN0KHN0cnVjdCBrdW5pdCAqdGVzdClcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmMtMzY1LXtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmM6MzY2Olx0c3RydWN0IHZjYXBfc3RyZWFtX2l0ZXIgaXRlcjtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmM6MzY3Olx0c3RydWN0IHZjYXBfdHlwZWdyb3VwIHR5cGVncm91cHNbXSA9IHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmMtMzY4LVx0XHR7IC5vZmZzZXQgPSAwLCAud2lkdGggPSAyLCAudmFsdWUgPSAyLCB9LFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmMtMzcxLVx0fTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmM6MzcyOlx0c3RydWN0IHZjYXBfdHlwZWdyb3VwIHR5cGVncm91cHMyW10gPSB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jLTM3My1cdFx0eyAub2Zmc2V0ID0gMCwgLndpZHRoID0gMywgLnZhbHVlID0gNCwgfSxcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jLTM3OC1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmM6Mzc5Olx0dmNhcF9pdGVyX2luaXQoXHUwMDI2aXRlciwgNTIsIHR5cGVncm91cHMsIDg2KTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmMtMzgwLVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmMtMzg1LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfa3VuaXQuYzozODY6XHR2Y2FwX2l0ZXJfaW5pdChcdTAwMjZpdGVyLCA0OSwgdHlwZWdyb3VwczIsIDEzNCk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jLTM4Ny1cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jLTM5My1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmM6Mzk0OnN0YXRpYyB2b2lkIHZjYXBfYXBpX2l0ZXJhdG9yX25leHRfdGVzdChzdHJ1Y3Qga3VuaXQgKnRlc3QpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jLTM5NS17XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jOjM5NjpcdHN0cnVjdCB2Y2FwX3N0cmVhbV9pdGVyIGl0ZXI7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jOjM5NzpcdHN0cnVjdCB2Y2FwX3R5cGVncm91cCB0eXBlZ3JvdXBzW10gPSB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jLTM5OC1cdFx0eyAub2Zmc2V0ID0gMCwgLndpZHRoID0gNCwgLnZhbHVlID0gOCwgfSxcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jLTQwNy1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmM6NDA4Olx0dmNhcF9pdGVyX2luaXQoXHUwMDI2aXRlciwgNDksIHR5cGVncm91cHMsIDg2KTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmMtNDA5LVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmMtNDE0LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfa3VuaXQuYzo0MTU6XHR2Y2FwX2l0ZXJfbmV4dChcdTAwMjZpdGVyKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmMtNDE2LVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmMtNDIxLVx0Zm9yIChpZHggPSAwOyBpZHggXHUwMDNjIDY7IGlkeCYjNDM7JiM0MzspXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jOjQyMjpcdFx0dmNhcF9pdGVyX25leHQoXHUwMDI2aXRlcik7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jLTQyMy1cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jLTQyOC1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmM6NDI5OnN0YXRpYyB2b2lkIHZjYXBfYXBpX2VuY29kZV90eXBlZ3JvdXBzX3Rlc3Qoc3RydWN0IGt1bml0ICp0ZXN0KVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfa3VuaXQuYy00MzAte1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfa3VuaXQuYy00MzEtXHR1MzIgc3RyZWFtWzEyXSA9IHswfTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmM6NDMyOlx0c3RydWN0IHZjYXBfdHlwZWdyb3VwIHR5cGVncm91cHNbXSA9IHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmMtNDMzLVx0XHR7IC5vZmZzZXQgPSAwLCAud2lkdGggPSA0LCAudmFsdWUgPSA4LCB9LFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmMtNDQxLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfa3VuaXQuYzo0NDI6XHR2Y2FwX2VuY29kZV90eXBlZ3JvdXBzKHN0cmVhbSwgNDksIHR5cGVncm91cHMsIGZhbHNlKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmMtNDQzLVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmMtNDU3LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfa3VuaXQuYzo0NTg6c3RhdGljIHZvaWQgdmNhcF9hcGlfZW5jb2RlX2JpdF90ZXN0KHN0cnVjdCBrdW5pdCAqdGVzdClcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmMtNDU5LXtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmM6NDYwOlx0c3RydWN0IHZjYXBfc3RyZWFtX2l0ZXIgaXRlcjtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmMtNDYxLVx0dTMyIHN0cmVhbVs0XSA9IHswfTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmM6NDYyOlx0c3RydWN0IHZjYXBfdHlwZWdyb3VwIHR5cGVncm91cHNbXSA9IHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmMtNDYzLVx0XHR7IC5vZmZzZXQgPSAwLCAud2lkdGggPSA0LCAudmFsdWUgPSA4LCB9LFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmMtNDcxLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfa3VuaXQuYzo0NzI6XHR2Y2FwX2l0ZXJfaW5pdChcdTAwMjZpdGVyLCA0OSwgdHlwZWdyb3VwcywgNDQpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfa3VuaXQuYy00NzMtXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfa3VuaXQuYy00NzctXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jOjQ3ODpcdHZjYXBfZW5jb2RlX2JpdChzdHJlYW0sIFx1MDAyNml0ZXIsIDEpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfa3VuaXQuYy00NzktXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfa3VuaXQuYy00ODQtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jOjQ4NTpzdGF0aWMgdm9pZCB2Y2FwX2FwaV9lbmNvZGVfZmllbGRfdGVzdChzdHJ1Y3Qga3VuaXQgKnRlc3QpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jLTQ4Ni17XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jOjQ4NzpcdHN0cnVjdCB2Y2FwX3N0cmVhbV9pdGVyIGl0ZXI7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jLTQ4OC1cdHUzMiBzdHJlYW1bMTZdID0gezB9O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfa3VuaXQuYzo0ODk6XHRzdHJ1Y3QgdmNhcF90eXBlZ3JvdXAgdHlwZWdyb3Vwc1tdID0ge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfa3VuaXQuYy00OTAtXHRcdHsgLm9mZnNldCA9IDAsIC53aWR0aCA9IDQsIC52YWx1ZSA9IDgsIH0sXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfa3VuaXQuYy00OTctXHR9O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfa3VuaXQuYzo0OTg6XHRzdHJ1Y3QgdmNhcF9maWVsZCByZiA9IHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmMtNDk5LVx0XHQudHlwZSA9IFZDQVBfRklFTERfVTMyLFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmMtNTA0LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfa3VuaXQuYzo1MDU6XHR2Y2FwX2l0ZXJfaW5pdChcdTAwMjZpdGVyLCA0OSwgdHlwZWdyb3VwcywgcmYub2Zmc2V0KTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmMtNTA2LVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmMtNTEwLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfa3VuaXQuYzo1MTE6XHR2Y2FwX2VuY29kZV9maWVsZChzdHJlYW0sIFx1MDAyNml0ZXIsIHJmLndpZHRoLCB2YWx1ZSk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jLTUxMi1cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jLTUxOC1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmM6NTE5Olx0dmNhcF9lbmNvZGVfdHlwZWdyb3VwcyhzdHJlYW0sIDQ5LCB0eXBlZ3JvdXBzLCBmYWxzZSk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jLTUyMC1cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jLTUzNS0vKiBJbiB0aGlzIHRlc3RjYXNlIHRoZSBzdWJ3b3JkIGlzIHNtYWxsZXIgdGhhbiBhIHJlZ2lzdGVyICovXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jOjUzNjpzdGF0aWMgdm9pZCB2Y2FwX2FwaV9lbmNvZGVfc2hvcnRfZmllbGRfdGVzdChzdHJ1Y3Qga3VuaXQgKnRlc3QpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jLTUzNy17XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jOjUzODpcdHN0cnVjdCB2Y2FwX3N0cmVhbV9pdGVyIGl0ZXI7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jLTUzOS1cdGludCBzd193aWR0aCA9IDIxO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfa3VuaXQuYy01NDAtXHR1MzIgc3RyZWFtWzZdID0gezB9O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfa3VuaXQuYzo1NDE6XHRzdHJ1Y3QgdmNhcF90eXBlZ3JvdXAgdGd0W10gPSB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jLTU0Mi1cdFx0eyAub2Zmc2V0ID0gMCwgLndpZHRoID0gMywgLnZhbHVlID0gNywgfSxcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jLTU0Ni1cdH07XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jOjU0NzpcdHN0cnVjdCB2Y2FwX2ZpZWxkIHJmID0ge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfa3VuaXQuYy01NDgtXHRcdC50eXBlID0gVkNBUF9GSUVMRF9VMzIsXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfa3VuaXQuYy01NTMtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jOjU1NDpcdHZjYXBfaXRlcl9pbml0KFx1MDAyNml0ZXIsIHN3X3dpZHRoLCB0Z3QsIHJmLm9mZnNldCk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jLTU1NS1cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jLTU2MS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmM6NTYyOlx0dmNhcF9lbmNvZGVfZmllbGQoc3RyZWFtLCBcdTAwMjZpdGVyLCByZi53aWR0aCwgdmFsdWUpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfa3VuaXQuYy01NjMtXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfa3VuaXQuYy01NzAtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jOjU3MTpcdHZjYXBfZW5jb2RlX3R5cGVncm91cHMoc3RyZWFtLCBzd193aWR0aCwgdGd0LCBmYWxzZSk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jLTU3Mi1cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jLTU4MC1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmM6NTgxOnN0YXRpYyB2b2lkIHZjYXBfYXBpX2VuY29kZV9rZXlmaWVsZF90ZXN0KHN0cnVjdCBrdW5pdCAqdGVzdClcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmMtNTgyLXtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jLTU4NC1cdHUzMiBtYXNrd29yZHNbMTZdID0gezB9O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfa3VuaXQuYzo1ODU6XHRzdHJ1Y3QgdmNhcF9hZG1pbiBhZG1pbiA9IHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmMtNTg2LVx0XHQudnR5cGUgPSBWQ0FQX1RZUEVfSVMyLFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmMtNTkyLVx0fTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmM6NTkzOlx0c3RydWN0IHZjYXBfcnVsZV9pbnRlcm5hbCBydWxlID0ge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfa3VuaXQuYy01OTQtXHRcdC5hZG1pbiA9IFx1MDAyNmFkbWluLFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmMtNTk5LVx0fTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmM6NjAwOlx0c3RydWN0IHZjYXBfY2xpZW50X2tleWZpZWxkIGNrZiA9IHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmMtNjAxLVx0XHQuY3RybC5saXN0ID0ge30sXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfa3VuaXQuYy02MDYtXHR9O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfa3VuaXQuYzo2MDc6XHRzdHJ1Y3QgdmNhcF9maWVsZCByZiA9IHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmMtNjA4LVx0XHQudHlwZSA9IFZDQVBfRklFTERfVTMyLFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmMtNjExLVx0fTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmM6NjEyOlx0c3RydWN0IHZjYXBfdHlwZWdyb3VwIHRndFtdID0ge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfa3VuaXQuYy02MTMtXHRcdHsgLm9mZnNldCA9IDAsIC53aWR0aCA9IDIsIC52YWx1ZSA9IDIsIH0sXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfa3VuaXQuYy02MTctXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jOjYxODpcdHZjYXBfdGVzdF9hcGlfaW5pdChcdTAwMjZhZG1pbik7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jOjYxOTpcdHZjYXBfZW5jb2RlX2tleWZpZWxkKFx1MDAyNnJ1bGUsIFx1MDAyNmNrZiwgXHUwMDI2cmYsIHRndCk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jLTYyMC1cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jLTYzOS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmM6NjQwOnN0YXRpYyB2b2lkIHZjYXBfYXBpX2VuY29kZV9tYXhfa2V5ZmllbGRfdGVzdChzdHJ1Y3Qga3VuaXQgKnRlc3QpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jLTY0MS17XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfa3VuaXQuYy02NDQtXHR1MzIgbWFza3dvcmRzWzZdID0gezB9O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfa3VuaXQuYzo2NDU6XHRzdHJ1Y3QgdmNhcF9hZG1pbiBhZG1pbiA9IHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmMtNjQ2LVx0XHQudnR5cGUgPSBWQ0FQX1RZUEVfSVMyLFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmMtNjUzLVx0fTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmM6NjU0Olx0c3RydWN0IHZjYXBfcnVsZV9pbnRlcm5hbCBydWxlID0ge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfa3VuaXQuYy02NTUtXHRcdC5hZG1pbiA9IFx1MDAyNmFkbWluLFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmMtNjYwLVx0fTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmM6NjYxOlx0c3RydWN0IHZjYXBfY2xpZW50X2tleWZpZWxkIGNrZiA9IHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmMtNjYyLVx0XHQuY3RybC5saXN0ID0ge30sXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfa3VuaXQuYy02NjktXHR9O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfa3VuaXQuYzo2NzA6XHRzdHJ1Y3QgdmNhcF9maWVsZCByZiA9IHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmMtNjcxLVx0XHQudHlwZSA9IFZDQVBfRklFTERfVTEyOCxcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jLTY3NC1cdH07XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jOjY3NTpcdHN0cnVjdCB2Y2FwX3R5cGVncm91cCB0Z3RbXSA9IHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmMtNjc2LVx0XHR7IC5vZmZzZXQgPSAwLCAud2lkdGggPSAyLCAudmFsdWUgPSAyLCB9LFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmMtNjk2LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfa3VuaXQuYzo2OTc6XHR2Y2FwX2VuY29kZV9rZXlmaWVsZChcdTAwMjZydWxlLCBcdTAwMjZja2YsIFx1MDAyNnJmLCB0Z3QpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfa3VuaXQuYy02OTgtXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfa3VuaXQuYy03MDYtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jOjcwNzpzdGF0aWMgdm9pZCB2Y2FwX2FwaV9lbmNvZGVfYWN0aW9uZmllbGRfdGVzdChzdHJ1Y3Qga3VuaXQgKnRlc3QpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jLTcwOC17XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfa3VuaXQuYy03MTAtXHRpbnQgc3dfd2lkdGggPSAyMTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmM6NzExOlx0c3RydWN0IHZjYXBfYWRtaW4gYWRtaW4gPSB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jLTcxMi1cdFx0LnZ0eXBlID0gVkNBUF9UWVBFX0VTMiwgLyogYWN0X3dpZHRoID0gMjEgKi9cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jLTcxNi1cdH07XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jOjcxNzpcdHN0cnVjdCB2Y2FwX3J1bGVfaW50ZXJuYWwgcnVsZSA9IHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmMtNzE4LVx0XHQuYWRtaW4gPSBcdTAwMjZhZG1pbixcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jLTcyMy1cdH07XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jOjcyNDpcdHN0cnVjdCB2Y2FwX2NsaWVudF9hY3Rpb25maWVsZCBjYWYgPSB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jLTcyNS1cdFx0LmN0cmwubGlzdCA9IHt9LFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmMtNzI5LVx0fTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmM6NzMwOlx0c3RydWN0IHZjYXBfZmllbGQgcmYgPSB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jLTczMS1cdFx0LnR5cGUgPSBWQ0FQX0ZJRUxEX1UzMixcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jLTczNC1cdH07XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jOjczNTpcdHN0cnVjdCB2Y2FwX3R5cGVncm91cCB0Z3RbXSA9IHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmMtNzM2LVx0XHR7IC5vZmZzZXQgPSAwLCAud2lkdGggPSAyLCAudmFsdWUgPSAyLCB9LFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmMtNzQxLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfa3VuaXQuYzo3NDI6XHR2Y2FwX2VuY29kZV9hY3Rpb25maWVsZChcdTAwMjZydWxlLCBcdTAwMjZjYWYsIFx1MDAyNnJmLCB0Z3QpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfa3VuaXQuYy03NDMtXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfa3VuaXQuYy03NTMtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jOjc1NDpzdGF0aWMgdm9pZCB2Y2FwX2FwaV9rZXlmaWVsZF90eXBlZ3JvdXBfdGVzdChzdHJ1Y3Qga3VuaXQgKnRlc3QpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jLTc1NS17XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jOjc1NjpcdGNvbnN0IHN0cnVjdCB2Y2FwX3R5cGVncm91cCAqdGc7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jLTc1Ny1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmM6NzU4Olx0dGcgPSB2Y2FwX2tleWZpZWxkX3R5cGVncm91cChcdTAwMjZ0ZXN0X3ZjdHJsLCBWQ0FQX1RZUEVfSVMyLCBWQ0FQX0tGU19NQUNfRVRZUEUpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfa3VuaXQuYy03NTktXHRLVU5JVF9FWFBFQ1RfUFRSX05FKHRlc3QsIE5VTEwsIHRnKTtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jLTc2OS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmM6NzcwOlx0dGcgPSB2Y2FwX2tleWZpZWxkX3R5cGVncm91cChcdTAwMjZ0ZXN0X3ZjdHJsLCBWQ0FQX1RZUEVfRVMyLCBWQ0FQX0tGU19MTF9GVUxMKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmMtNzcxLVx0S1VOSVRfRVhQRUNUX1BUUl9FUSh0ZXN0LCBOVUxMLCB0Zyk7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfa3VuaXQuYy03NzMtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jOjc3NDpzdGF0aWMgdm9pZCB2Y2FwX2FwaV9hY3Rpb25maWVsZF90eXBlZ3JvdXBfdGVzdChzdHJ1Y3Qga3VuaXQgKnRlc3QpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jLTc3NS17XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jOjc3NjpcdGNvbnN0IHN0cnVjdCB2Y2FwX3R5cGVncm91cCAqdGc7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jLTc3Ny1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmM6Nzc4Olx0dGcgPSB2Y2FwX2FjdGlvbmZpZWxkX3R5cGVncm91cChcdTAwMjZ0ZXN0X3ZjdHJsLCBWQ0FQX1RZUEVfSVMwLCBWQ0FQX0FGU19GVUxMKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmMtNzc5LVx0S1VOSVRfRVhQRUNUX1BUUl9ORSh0ZXN0LCBOVUxMLCB0Zyk7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfa3VuaXQuYy03OTItXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jOjc5MzpcdHRnID0gdmNhcF9hY3Rpb25maWVsZF90eXBlZ3JvdXAoXHUwMDI2dGVzdF92Y3RybCwgVkNBUF9UWVBFX0lTMiwgVkNBUF9BRlNfQ0xBU1NJRklDQVRJT04pO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfa3VuaXQuYy03OTQtXHRLVU5JVF9FWFBFQ1RfUFRSX0VRKHRlc3QsIE5VTEwsIHRnKTtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jLTc5Ni1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmM6Nzk3OnN0YXRpYyB2b2lkIHZjYXBfYXBpX3ZjYXBfa2V5ZmllbGRzX3Rlc3Qoc3RydWN0IGt1bml0ICp0ZXN0KVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfa3VuaXQuYy03OTgte1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfa3VuaXQuYzo3OTk6XHRjb25zdCBzdHJ1Y3QgdmNhcF9maWVsZCAqZnQ7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jLTgwMC1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmM6ODAxOlx0ZnQgPSB2Y2FwX2tleWZpZWxkcyhcdTAwMjZ0ZXN0X3ZjdHJsLCBWQ0FQX1RZUEVfSVMyLCBWQ0FQX0tGU19NQUNfRVRZUEUpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfa3VuaXQuYy04MDItXHRLVU5JVF9FWFBFQ1RfUFRSX05FKHRlc3QsIE5VTEwsIGZ0KTtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jLTgwNC1cdC8qIEtleXNldCB0aGF0IGlzIG5vdCBhdmFpbGFibGUgYW5kIHdpdGhpbiB0aGUgbWF4aW11bSBrZXlzZXQgZW51bSB2YWx1ZSAqL1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfa3VuaXQuYzo4MDU6XHRmdCA9IHZjYXBfa2V5ZmllbGRzKFx1MDAyNnRlc3RfdmN0cmwsIFZDQVBfVFlQRV9FUzIsIFZDQVBfS0ZTX1BVUkVfNVRVUExFX0lQNCk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jLTgwNi1cdEtVTklUX0VYUEVDVF9QVFJfRVEodGVzdCwgTlVMTCwgZnQpO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmMtODA4LVx0LyogS2V5c2V0IHRoYXQgaXMgbm90IGF2YWlsYWJsZSBhbmQgYmV5b25kIHRoZSBtYXhpbXVtIGtleXNldCBlbnVtIHZhbHVlICovXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jOjgwOTpcdGZ0ID0gdmNhcF9rZXlmaWVsZHMoXHUwMDI2dGVzdF92Y3RybCwgVkNBUF9UWVBFX0VTMiwgVkNBUF9LRlNfTExfRlVMTCk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jLTgxMC1cdEtVTklUX0VYUEVDVF9QVFJfRVEodGVzdCwgTlVMTCwgZnQpO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmMtODEyLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfa3VuaXQuYzo4MTM6c3RhdGljIHZvaWQgdmNhcF9hcGlfdmNhcF9hY3Rpb25maWVsZHNfdGVzdChzdHJ1Y3Qga3VuaXQgKnRlc3QpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jLTgxNC17XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jOjgxNTpcdGNvbnN0IHN0cnVjdCB2Y2FwX2ZpZWxkICpmdDtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmMtODE2LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfa3VuaXQuYzo4MTc6XHRmdCA9IHZjYXBfYWN0aW9uZmllbGRzKFx1MDAyNnRlc3RfdmN0cmwsIFZDQVBfVFlQRV9JUzAsIFZDQVBfQUZTX0ZVTEwpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfa3VuaXQuYy04MTgtXHRLVU5JVF9FWFBFQ1RfUFRSX05FKHRlc3QsIE5VTEwsIGZ0KTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmMtODE5LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfa3VuaXQuYzo4MjA6XHRmdCA9IHZjYXBfYWN0aW9uZmllbGRzKFx1MDAyNnRlc3RfdmN0cmwsIFZDQVBfVFlQRV9JUzIsIFZDQVBfQUZTX0ZVTEwpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfa3VuaXQuYy04MjEtXHRLVU5JVF9FWFBFQ1RfUFRSX0VRKHRlc3QsIE5VTEwsIGZ0KTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmMtODIyLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfa3VuaXQuYzo4MjM6XHRmdCA9IHZjYXBfYWN0aW9uZmllbGRzKFx1MDAyNnRlc3RfdmN0cmwsIFZDQVBfVFlQRV9JUzIsIFZDQVBfQUZTX0NMQVNTSUZJQ0FUSU9OKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmMtODI0LVx0S1VOSVRfRVhQRUNUX1BUUl9FUSh0ZXN0LCBOVUxMLCBmdCk7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfa3VuaXQuYy04MjYtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jOjgyNzpzdGF0aWMgdm9pZCB2Y2FwX2FwaV9lbmNvZGVfcnVsZV9rZXlzZXRfdGVzdChzdHJ1Y3Qga3VuaXQgKnRlc3QpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jLTgyOC17XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfa3VuaXQuYy04MzAtXHR1MzIgbWFza3dvcmRzWzE2XSA9IHswfTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmM6ODMxOlx0c3RydWN0IHZjYXBfYWRtaW4gYWRtaW4gPSB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jLTgzMi1cdFx0LnZ0eXBlID0gVkNBUF9UWVBFX0lTMixcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jLTgzNy1cdH07XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jOjgzODpcdHN0cnVjdCB2Y2FwX3J1bGVfaW50ZXJuYWwgcnVsZSA9IHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmMtODM5LVx0XHQuYWRtaW4gPSBcdTAwMjZhZG1pbixcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jLTg0NC1cdH07XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jOjg0NTpcdHN0cnVjdCB2Y2FwX2NsaWVudF9rZXlmaWVsZCBja2ZbXSA9IHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmMtODQ2LVx0XHR7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfa3VuaXQuYy05MDAtXHRJTklUX0xJU1RfSEVBRChcdTAwMjZydWxlLmRhdGEua2V5ZmllbGRzKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmM6OTAxOlx0cmV0ID0gdmNhcF9lbmNvZGVfcnVsZV9rZXlzZXQoXHUwMDI2cnVsZSk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jLTkwMi1cdEtVTklUX0VYUEVDVF9FUSh0ZXN0LCAtRUlOVkFMLCByZXQpO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmMtOTA1LVx0XHRsaXN0X2FkZF90YWlsKFx1MDAyNmNrZltpZHhdLmN0cmwubGlzdCwgXHUwMDI2cnVsZS5kYXRhLmtleWZpZWxkcyk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jOjkwNjpcdHJldCA9IHZjYXBfZW5jb2RlX3J1bGVfa2V5c2V0KFx1MDAyNnJ1bGUpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfa3VuaXQuYy05MDctXHRLVU5JVF9FWFBFQ1RfRVEodGVzdCwgMCwgcmV0KTtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jLTkzOC1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmM6OTM5OnN0YXRpYyB2b2lkIHZjYXBfYXBpX2VuY29kZV9ydWxlX2FjdGlvbnNldF90ZXN0KHN0cnVjdCBrdW5pdCAqdGVzdClcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmMtOTQwLXtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmMtOTQxLVx0dTMyIGFjdHdvcmRzWzE2XSA9IHswfTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmM6OTQyOlx0c3RydWN0IHZjYXBfYWRtaW4gYWRtaW4gPSB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jLTk0My1cdFx0LnZ0eXBlID0gVkNBUF9UWVBFX0lTMixcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jLTk0Ny1cdH07XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jOjk0ODpcdHN0cnVjdCB2Y2FwX3J1bGVfaW50ZXJuYWwgcnVsZSA9IHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmMtOTQ5LVx0XHQuYWRtaW4gPSBcdTAwMjZhZG1pbixcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jLTk1NC1cdH07XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jOjk1NTpcdHN0cnVjdCB2Y2FwX2NsaWVudF9hY3Rpb25maWVsZCBjYWZbXSA9IHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmMtOTU2LVx0XHR7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfa3VuaXQuYy05NzYtXHRJTklUX0xJU1RfSEVBRChcdTAwMjZydWxlLmRhdGEuYWN0aW9uZmllbGRzKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmM6OTc3Olx0cmV0ID0gdmNhcF9lbmNvZGVfcnVsZV9hY3Rpb25zZXQoXHUwMDI2cnVsZSk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jLTk3OC1cdC8qIFdlIGFsbG93IHJ1bGVzIHdpdGggbm8gYWN0aW9ucyAqL1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmMtOTgyLVx0XHRsaXN0X2FkZF90YWlsKFx1MDAyNmNhZltpZHhdLmN0cmwubGlzdCwgXHUwMDI2cnVsZS5kYXRhLmFjdGlvbmZpZWxkcyk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jOjk4MzpcdHJldCA9IHZjYXBfZW5jb2RlX3J1bGVfYWN0aW9uc2V0KFx1MDAyNnJ1bGUpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfa3VuaXQuYy05ODQtXHRLVU5JVF9FWFBFQ1RfRVEodGVzdCwgMCwgcmV0KTtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jLTEwMDAtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jOjEwMDE6c3RhdGljIHZvaWQgdmNhcF9mcmVlX2NrZihzdHJ1Y3QgdmNhcF9ydWxlICpydWxlKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfa3VuaXQuYy0xMDAyLXtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmM6MTAwMzpcdHN0cnVjdCB2Y2FwX2NsaWVudF9rZXlmaWVsZCAqY2tmLCAqbmV4dF9ja2Y7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jLTEwMDQtXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfa3VuaXQuYy0xMDEwLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfa3VuaXQuYzoxMDExOnN0YXRpYyB2b2lkIHZjYXBfYXBpX3J1bGVfYWRkX2tleXZhbHVlX3Rlc3Qoc3RydWN0IGt1bml0ICp0ZXN0KVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfa3VuaXQuYy0xMDEyLXtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmM6MTAxMzpcdHN0cnVjdCB2Y2FwX2FkbWluIGFkbWluID0ge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfa3VuaXQuYy0xMDE0LVx0XHQudnR5cGUgPSBWQ0FQX1RZUEVfSVMyLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfa3VuaXQuYy0xMDE1LVx0fTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmM6MTAxNjpcdHN0cnVjdCB2Y2FwX3J1bGVfaW50ZXJuYWwgcmkgPSB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jLTEwMTctXHRcdC5hZG1pbiA9IFx1MDAyNmFkbWluLFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmMtMTAyMi1cdH07XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jOjEwMjM6XHRzdHJ1Y3QgdmNhcF9ydWxlICpydWxlID0gKHN0cnVjdCB2Y2FwX3J1bGUgKilcdTAwMjZyaTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmM6MTAyNDpcdHN0cnVjdCB2Y2FwX2NsaWVudF9rZXlmaWVsZCAqa2Y7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jLTEwMjUtXHRpbnQgcmV0O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfa3VuaXQuYzoxMDI2Olx0c3RydWN0IHZjYXBfdTEyOF9rZXkgZGlwID0ge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfa3VuaXQuYy0xMDI3LVx0XHQudmFsdWUgPSB7MHgxNywgMHgyNiwgMHgzNSwgMHg0NCwgMHg2MywgMHg2MiwgMHg3MX0sXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfa3VuaXQuYy0xMDMyLVx0SU5JVF9MSVNUX0hFQUQoXHUwMDI2cnVsZS1cdTAwM2VrZXlmaWVsZHMpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfa3VuaXQuYzoxMDMzOlx0cmV0ID0gdmNhcF9ydWxlX2FkZF9rZXlfYml0KHJ1bGUsIFZDQVBfS0ZfTE9PS1VQX0ZJUlNUX0lTLCBWQ0FQX0JJVF8wKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmMtMTAzNC1cdEtVTklUX0VYUEVDVF9FUSh0ZXN0LCAwLCByZXQpO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmMtMTAzNi1cdEtVTklUX0VYUEVDVF9FUSh0ZXN0LCBmYWxzZSwgcmV0KTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmM6MTAzNzpcdGtmID0gbGlzdF9maXJzdF9lbnRyeShcdTAwMjZydWxlLVx1MDAzZWtleWZpZWxkcywgc3RydWN0IHZjYXBfY2xpZW50X2tleWZpZWxkLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfa3VuaXQuYy0xMDM4LVx0XHRcdCAgICAgIGN0cmwubGlzdCk7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfa3VuaXQuYy0xMDQyLVx0S1VOSVRfRVhQRUNUX0VRKHRlc3QsIDB4MSwga2YtXHUwMDNlZGF0YS51MS5tYXNrKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmM6MTA0MzpcdHZjYXBfZnJlZV9ja2YocnVsZSk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jLTEwNDQtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jLTEwNDUtXHRJTklUX0xJU1RfSEVBRChcdTAwMjZydWxlLVx1MDAzZWtleWZpZWxkcyk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jOjEwNDY6XHRyZXQgPSB2Y2FwX3J1bGVfYWRkX2tleV9iaXQocnVsZSwgVkNBUF9LRl9MT09LVVBfRklSU1RfSVMsIFZDQVBfQklUXzEpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfa3VuaXQuYy0xMDQ3LVx0S1VOSVRfRVhQRUNUX0VRKHRlc3QsIDAsIHJldCk7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfa3VuaXQuYy0xMDQ5LVx0S1VOSVRfRVhQRUNUX0VRKHRlc3QsIGZhbHNlLCByZXQpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfa3VuaXQuYzoxMDUwOlx0a2YgPSBsaXN0X2ZpcnN0X2VudHJ5KFx1MDAyNnJ1bGUtXHUwMDNla2V5ZmllbGRzLCBzdHJ1Y3QgdmNhcF9jbGllbnRfa2V5ZmllbGQsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jLTEwNTEtXHRcdFx0ICAgICAgY3RybC5saXN0KTtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jLTEwNTUtXHRLVU5JVF9FWFBFQ1RfRVEodGVzdCwgMHgxLCBrZi1cdTAwM2VkYXRhLnUxLm1hc2spO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfa3VuaXQuYzoxMDU2Olx0dmNhcF9mcmVlX2NrZihydWxlKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmMtMTA1Ny1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmMtMTA1OC1cdElOSVRfTElTVF9IRUFEKFx1MDAyNnJ1bGUtXHUwMDNla2V5ZmllbGRzKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmM6MTA1OTpcdHJldCA9IHZjYXBfcnVsZV9hZGRfa2V5X2JpdChydWxlLCBWQ0FQX0tGX0xPT0tVUF9GSVJTVF9JUyxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmMtMTA2MC1cdFx0XHRcdCAgICBWQ0FQX0JJVF9BTlkpO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmMtMTA2My1cdEtVTklUX0VYUEVDVF9FUSh0ZXN0LCBmYWxzZSwgcmV0KTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmM6MTA2NDpcdGtmID0gbGlzdF9maXJzdF9lbnRyeShcdTAwMjZydWxlLVx1MDAzZWtleWZpZWxkcywgc3RydWN0IHZjYXBfY2xpZW50X2tleWZpZWxkLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfa3VuaXQuYy0xMDY1LVx0XHRcdCAgICAgIGN0cmwubGlzdCk7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfa3VuaXQuYy0xMDY5LVx0S1VOSVRfRVhQRUNUX0VRKHRlc3QsIDB4MCwga2YtXHUwMDNlZGF0YS51MS5tYXNrKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmM6MTA3MDpcdHZjYXBfZnJlZV9ja2YocnVsZSk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jLTEwNzEtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jLTEwNzItXHRJTklUX0xJU1RfSEVBRChcdTAwMjZydWxlLVx1MDAzZWtleWZpZWxkcyk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jOjEwNzM6XHRyZXQgPSB2Y2FwX3J1bGVfYWRkX2tleV91MzIocnVsZSwgVkNBUF9LRl9UWVBFLCAweDk4NzY1NDMyLCAweGZmMDBmZmFiKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmMtMTA3NC1cdEtVTklUX0VYUEVDVF9FUSh0ZXN0LCAwLCByZXQpO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmMtMTA3Ni1cdEtVTklUX0VYUEVDVF9FUSh0ZXN0LCBmYWxzZSwgcmV0KTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmM6MTA3NzpcdGtmID0gbGlzdF9maXJzdF9lbnRyeShcdTAwMjZydWxlLVx1MDAzZWtleWZpZWxkcywgc3RydWN0IHZjYXBfY2xpZW50X2tleWZpZWxkLFxuXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MjcvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzI5IDEwOjI3PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDMzODc0CgkJCQkJCQlvdXRwdXQ6IDQ4CgkJCQkJCQl0aG91Z2h0czogMzIKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPk9rYXksIGhlcmUmIzM5O3MgbXkgdGFrZSBvbiB0aG9zZSB0aG91Z2h0cywgZnJhbWVkIGFzIG15IG93bjoKCioqQW5hbHl6aW5nIHRoZSB2Y2FwX2FwaV9rdW5pdC5jIFRlc3QgU3VpdGUqKgoKQWxyaWdodCwgbGV0JiMzOTtzIGRpdmUgaW50byBgdmNhcF9hcGlfa3VuaXQuY2AuIEkmIzM5O20gZ29pbmcgdGhyb3VnaCB0aGUgdGVzdHMgaW4gdGhpcyBtb2R1bGUsIGFzIGl0IGhhcyBhIHByZXR0eSBleHRlbnNpdmUgc3VpdGUuIE15IHByaW1hcnkgY29uY2VybiByaWdodCBub3cgaXMgdG8gc2VlIGlmIHdlIGhhdmUgZ29vZCBjb3ZlcmFnZSBmb3IgdGhlIGB2Y2FwX2RlY29kZV9ydWxlYCBmdW5jdGlvbi4gSSBuZWVkIHRvIHF1aWNrbHkgZGV0ZXJtaW5lIGlmIHRoZXJlIGFyZSBkZWRpY2F0ZWQgdGVzdHMsIG9yIGlmIGl0cyBmdW5jdGlvbmFsaXR5IGlzIGNvdmVyZWQgaW5kaXJlY3RseSB3aXRoaW4gb3RoZXIgdGVzdHMuIEEgbGFjayBvZiBzcGVjaWZpYyB0ZXN0cyB3b3VsZCBiZSBhIHJlZCBmbGFnLCBhbmQgSSYjMzk7ZCBuZWVkIHRvIGNvbnNpZGVyIHdoZXJlIHRoYXQgZnVuY3Rpb24mIzM5O3MgY292ZXJhZ2Ugc3RhbmRzLCBhbmQsIGlmIGxhY2tpbmcsIHBsYW4gYWNjb3JkaW5nbHkuIExldCYjMzk7cyBzZWUgd2hhdCB3ZSYjMzk7dmUgZ290LgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjI4LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yOSAxMDoyNzwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+RXJyb3I6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5ubyBtYXRjaGVzPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O3ZjYXBfZGVjb2RlX3J1bGUmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtkcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O2Vycm9yJiMzNDs6ICYjMzQ7bm8gbWF0Y2hlcyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4yOS8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjkgMTA6Mjc8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMzQxMzAKCQkJCQkJCW91dHB1dDogMzYKCQkJCQkJCXRob3VnaHRzOiAxNzYKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqUmVhY2hpbmcgYHZjYXBfZGVjb2RlX3J1bGVgIGluIGEgVmlydHVhbGl6ZWQgV29ybGQqKgoKT2theSwgc28gdGhpcyBjb2RlIHBhdGggaXNuJiMzOTt0IHNwZWNpZmljYWxseSBjb3ZlcmVkIGJ5IEtVbml0LCB3aGljaCByYWlzZXMgYSBmbGFnLiBUaGUgcmVhbCBxdWVzdGlvbiBpczogY2FuIGB2Y2FwX2RlY29kZV9ydWxlYCBldmVuICpiZSogcmVhY2hlZCB3aGVuIHJ1bm5pbmcgaW4gYSB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudD8gSXQmIzM5O3MgY2FsbGVkIGJ5IGB2Y2FwX2dldF9ydWxlYCBhbmQsIG9mIGNvdXJzZSwgdGhlIGB2Y2FwX3Nob3dfYWRtaW5gIGRlYnVnZ2luZyB0b29sLiBgdmNhcF9nZXRfcnVsZWAgaXMgZXhwb3J0ZWQsIG1ha2luZyBpdCBhY2Nlc3NpYmxlIHRvIGV4dGVybmFsIGNsaWVudHMsIHdoaWNoIGltbWVkaWF0ZWx5IHBpcXVlcyBteSBpbnRlcmVzdC4KClRoZSBrZXkgaGVyZSBpcyB3aGV0aGVyIGFueSBvZiB0aG9zZSBjbGllbnQgZHJpdmVycyBjYW4gYmUgbG9hZGVkIGFuZCBleGVyY2lzZWQgdW5kZXIgUUVNVS4gVGhpbmtpbmcgdGhyb3VnaCB0aGlzLCB3ZSYjMzk7cmUgdGFsa2luZyBhYm91dCBkcml2ZXJzIGxpa2UgYHNwYXJ4NWAgYW5kIGBsYW45NjZ4YC4gVGhlc2UgYXJlIGhhcmR3YXJlIHN3aXRjaCBkcml2ZXJzLCBzbyB0aGF0IGltbWVkaWF0ZWx5IGJyaW5ncyB1cCBjb25jZXJucyBhYm91dCBkZXBlbmRlbmN5LiBNeSBpbml0aWFsIGh1bmNoIGlzIHRoYXQgdGhlc2Ugd2lsbCByZXF1aXJlIHNvbWUgZm9ybSBvZiBQQ0llIG9yIHBsYXRmb3JtIGRldmljZSB0aGF0IGlzIGdlbmVyYWxseSBub3QgZnVsbHkgZW11bGF0ZWQgaW4gYSB0eXBpY2FsIFFFTVUgc2V0dXAuIFRoZXkgYWxtb3N0IGNlcnRhaW5seSBuZWVkIG1vcmUgdGhhbiBzdGFuZGFyZCBlbXVsYXRpb24uCgpUaGVyZWZvcmUsIGxldCBtZSBub3cgZ28gYW5kIGNoZWNrIHdoZXRoZXIgdGhlcmUgaXMgYW55IGVzdGFibGlzaGVkIG9yIGtub3duIHNvZnR3YXJlIGVtdWxhdGlvbiBmb3IgZWl0aGVyIG9mIHRob3NlIHN3aXRjaGVzLiBUaGF0IGlzIHdoZXJlIEkgd2lsbCBzdGFydCwgZm9yIG5vdy4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4zMC8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjkgMTA6Mjg8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7Y29uZmlnIFNQQVJYNV9TV0lUQ0gmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtkcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC9zcGFyeDUvS2NvbmZpZzoxOmNvbmZpZyBTUEFSWDVfU1dJVENIXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvc3Bhcng1L0tjb25maWctMi1cdHRyaXN0YXRlIFwmIzM0O1NwYXJ4NSBzd2l0Y2ggZHJpdmVyXCYjMzQ7XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MzEvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzI5IDEwOjI4PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDM0NjY1CgkJCQkJCQlvdXRwdXQ6IDQyCgkJCQkJCQl0aG91Z2h0czogMjIKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPkhlcmUmIzM5O3MgYSBzdW1tYXJ5IG9mIG15IHRob3VnaHQgcHJvY2VzcywgYXMgcmVxdWVzdGVkOgoKKipOYXZpZ2F0aW5nIHRoZSBLZXJuZWwmIzM5O3MgTmV0d29yayBEcml2ZXIgQ29uZmlndXJhdGlvbioqCgpPa2F5LCBzbyBJIG5lZWQgdG8gdW5kZXJzdGFuZCB0aGUgY29uZmlndXJhdGlvbiBvcHRpb25zIGZvciB0aGUgTWljcm9jaGlwIFNwYXJ4NSBFdGhlcm5ldCBkcml2ZXIgd2l0aGluIHRoZSBMaW51eCBrZXJuZWwuIFdoZXJlIHdvdWxkIEkgZXhwZWN0IHRvIGZpbmQgdGhlc2Ugc2V0dGluZ3M/IE15IGluaXRpYWwgaW50dWl0aW9uIHRlbGxzIG1lIHRvIHN0YXJ0IGRpZ2dpbmcgaW50byB0aGUgYGRyaXZlcnMvbmV0YCBzdWJ0cmVlLCBhcyB0aGF0JiMzOTtzIHdoZXJlIHRoZSBuZXR3b3JrLXJlbGF0ZWQgY29kZSByZXNpZGVzLiBNb3JlIHNwZWNpZmljYWxseSwgZ2l2ZW4gdGhlIG5hbWUsICYjMzQ7U3Bhcng1LCYjMzQ7IGl0IHNvdW5kcyBsaWtlIGl0IG1pZ2h0IGJlIGEgc3BlY2lmaWMgdHlwZSBvZiBkZXZpY2UsIHdoaWNoIGxlYWRzIG1lIHRvIGhvbmUgaW4gb24gdGhlIGBldGhlcm5ldGAgc3ViZGlyZWN0b3J5LgoKTm93LCB3aXRoaW4gYGRyaXZlcnMvbmV0L2V0aGVybmV0L2AsIEkmIzM5O20gbG9va2luZyBmb3IgYW55dGhpbmcgcmVsYXRlZCB0byBjb25maWd1cmF0aW9uLiBUeXBpY2FsbHksIGtlcm5lbCBjb25maWd1cmF0aW9uIG9wdGlvbnMgYXJlIGRlZmluZWQgaW4gYEtjb25maWdgIGZpbGVzLiBUaGF0JiMzOTtzIHRoZSBzdGFuZGFyZC4gU28sIHRoZSBtb3N0IGxpa2VseSBwYXRoIHRvIGZpbmQgdGhlc2Ugc3BlY2lmaWMgU3Bhcng1IGNvbmZpZ3VyYXRpb24gb3B0aW9ucyBpcyBgZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3NwYXJ4NS9LY29uZmlnYC4gTGV0JiMzOTtzIGNvbmZpcm0gdGhhdCB0aGF0IGlzIHRoZSBjb3JyZWN0IHBhdGggYW5kIGRlbHZlIGludG8gdGhlIGNvbnRlbnRzIG9mIHRoYXQgYEtjb25maWdgIGZpbGUuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MzIvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzI5IDEwOjI4PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+cmVhZC1maWxlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtGaWxlJiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3NwYXJ4NS9LY29uZmlnJiMzNDssCiAgJiMzNDtGaXJzdExpbmUmIzM0OzogMSwKICAmIzM0O0xpbmVDb3VudCYjMzQ7OiAyMAp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7Q29udGVudHMmIzM0OzogJiMzNDsgICAxOlx0Y29uZmlnIFNQQVJYNV9TV0lUQ0hcbiAgIDI6XHRcdHRyaXN0YXRlIFwmIzM0O1NwYXJ4NSBzd2l0Y2ggZHJpdmVyXCYjMzQ7XG4gICAzOlx0XHRkZXBlbmRzIG9uIE5FVF9TV0lUQ0hERVZcbiAgIDQ6XHRcdGRlcGVuZHMgb24gSEFTX0lPTUVNXG4gICA1Olx0XHRkZXBlbmRzIG9uIE9GXG4gICA2Olx0XHRkZXBlbmRzIG9uIEFSQ0hfU1BBUlg1IHx8IEFSQ0hfTEFOOTY5WCB8fCBDT01QSUxFX1RFU1RcbiAgIDc6XHRcdGRlcGVuZHMgb24gUFRQXzE1ODhfQ0xPQ0tfT1BUSU9OQUxcbiAgIDg6XHRcdGRlcGVuZHMgb24gQlJJREdFIHx8IEJSSURHRT1uXG4gICA5Olx0XHRzZWxlY3QgUEhZTElOS1xuICAxMDpcdFx0c2VsZWN0IFBIWV9TUEFSWDVfU0VSREVTXG4gIDExOlx0XHRzZWxlY3QgUkVTRVRfQ09OVFJPTExFUlxuICAxMjpcdFx0c2VsZWN0IFZDQVBcbiAgMTM6XHRcdHNlbGVjdCBGRE1BXG4gIDE0Olx0XHRoZWxwXG4gIDE1Olx0XHQgIFRoaXMgZHJpdmVyIHN1cHBvcnRzIHRoZSBTcGFyeDUgbmV0d29yayBzd2l0Y2ggZGV2aWNlLlxuICAxNjpcdFxuICAxNzpcdGNvbmZpZyBTUEFSWDVfRENCXG4gIDE4Olx0XHRib29sIFwmIzM0O0RhdGEgQ2VudGVyIEJyaWRnaW5nIChEQ0IpIHN1cHBvcnRcJiMzNDtcbiAgMTk6XHRcdGRlcGVuZHMgb24gU1BBUlg1X1NXSVRDSCBcdTAwMjZcdTAwMjYgRENCXG4gIDIwOlx0XHRkZWZhdWx0IHlcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4zMy8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjkgMTA6Mjg8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMzUyMjMKCQkJCQkJCW91dHB1dDogMzkKCQkJCQkJCXRob3VnaHRzOiAxNDcKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqQW5hbHl6aW5nIHRoZSBDb21waWxhdGlvbiBMb2dpYyoqCgpPa2F5LCBzbyB0aGlzIGNvZGUmIzM5O3MgY29tcGlsYXRpb24gcGF0aCBkZWZpbml0ZWx5IGhpbmdlcyBvbiB0aGUgdGFyZ2V0IGFyY2hpdGVjdHVyZS4gSXQmIzM5O3MgZWl0aGVyIHRoZSBNaWNyb2NoaXAgU3Bhcng1LCB0aGUgTEFOOTY5eCwgb3IgYSBjb21waWxlIHRlc3Qgc2V0dXAuIFRoYXQgc3Ryb25nbHkgc3VnZ2VzdHMgdGhpcyBpcyBhIGRyaXZlciBzcGVjaWZpYyB0byB0aG9zZSBjaGlwcywgcmlnaHQ/IEFuZCwgaWYgaXQmIzM5O3MgdGllZCB0byBzcGVjaWZpYyBoYXJkd2FyZSwgdGhhdCBwcm9iYWJseSBtZWFucyBpdCB3b24mIzM5O3QgcnVuIG5hdGl2ZWx5IGluIHN0YW5kYXJkIFFFTVUuCgpCdXQgbm93LCBJJiMzOTttIHRoaW5raW5nIGFib3V0IGB2Y2FwX2RlY29kZV9ydWxlYC4gVGhhdCBmdW5jdGlvbiBpcyBidXJpZWQgaW4gYHZjYXBfYXBpLmNgLCB3aGljaCBtYWtlcyBtZSB0aGluayBpdCBpcyBvbmx5IGluY2x1ZGVkIGlmIGBDT05GSUdfVkNBUGAgaXMgc2V0LiBBbHNvLCBgQ09ORklHX1ZDQVBfS1VOSVRfVEVTVGAgc2VlbXMgdG8gdGVzdCB0aGUgVkNBUCBBUEkuCgpXYWl0IGEgc2Vjb25k4oCmIGB2Y2FwX2RlY29kZV9ydWxlYCBpc24mIzM5O3QgdGVzdGVkIGluIGB2Y2FwX2FwaV9rdW5pdC5jYC4gVGhhdCYjMzk7cyBhIHJlZCBmbGFnLiBJcyB0aGVyZSAqYW55KiBvdGhlciBLVW5pdCB0ZXN0IGNvdmVyYWdlIGZvciB0aGlzIHNwZWNpZmljIGZ1bmN0aW9uIGFueXdoZXJlIGluIHRoZSBwcm9qZWN0PyBJIG5lZWQgdG8gZGlnIGRlZXBlci4gVGhpcyBzZWVtcyBvZGQgYW5kIHdvcnRoIGEgc2Vjb25kIGxvb2suCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MzQvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzI5IDEwOjI4PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O3ZjYXBfZGVjb2RlX3J1bGUmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtkcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC8mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGkuYz0yNDEzPUVYUE9SVF9TWU1CT0xfR1BMKHZjYXBfZnJlZV9ydWxlKTtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaS5jLTI0MTUtLyogRGVjb2RlIGEgcnVsZSBmcm9tIHRoZSBWQ0FQIGNhY2hlIGFuZCByZXR1cm4gYSBjb3B5ICovXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaS5jOjI0MTY6c3RydWN0IHZjYXBfcnVsZSAqdmNhcF9kZWNvZGVfcnVsZShzdHJ1Y3QgdmNhcF9ydWxlX2ludGVybmFsICplbGVtKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGkuYy0yNDE3LXtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaS5jPTI0NDc9c3RydWN0IHZjYXBfcnVsZSAqdmNhcF9nZXRfcnVsZShzdHJ1Y3QgdmNhcF9jb250cm9sICp2Y3RybCwgdTMyIGlkKVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpLmMtMjQ2MC1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpLmM6MjQ2MTpcdHJ1bGUgPSB2Y2FwX2RlY29kZV9ydWxlKGVsZW0pO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGkuYy0yNDYyLVx0dmNhcF91bmxvY2soZWxlbS1cdTAwM2VhZG1pbik7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfZGVidWdmcy5jPTI5Mj1zdGF0aWMgaW50IHZjYXBfc2hvd19hZG1pbihzdHJ1Y3QgdmNhcF9jb250cm9sICp2Y3RybCxcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9kZWJ1Z2ZzLmMtMzAxLVx0bGlzdF9mb3JfZWFjaF9lbnRyeShlbGVtLCBcdTAwMjZhZG1pbi1cdTAwM2VydWxlcywgbGlzdCkge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfZGVidWdmcy5jOjMwMjpcdFx0dnJ1bGUgPSB2Y2FwX2RlY29kZV9ydWxlKGVsZW0pO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfZGVidWdmcy5jLTMwMy1cdFx0aWYgKElTX0VSUih2cnVsZSkpIHtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9wcml2YXRlLmg9MTIyPWludCB2Y2FwX3J1bGVfZ2V0X2tleXNldHMoc3RydWN0IHZjYXBfcnVsZV9pbnRlcm5hbCAqcmksXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfcHJpdmF0ZS5oLTEyNC0vKiBEZWNvZGUgYSBydWxlIGZyb20gdGhlIFZDQVAgY2FjaGUgYW5kIHJldHVybiBhIGNvcHkgKi9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX3ByaXZhdGUuaDoxMjU6c3RydWN0IHZjYXBfcnVsZSAqdmNhcF9kZWNvZGVfcnVsZShzdHJ1Y3QgdmNhcF9ydWxlX2ludGVybmFsICplbGVtKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX3ByaXZhdGUuaC0xMjYtXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MzUvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzI5IDEwOjI4PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDM2MzA5CgkJCQkJCQlvdXRwdXQ6IDM2CgkJCQkJCQl0aG91Z2h0czogMTY1CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKkludmVzdGlnYXRpbmcgVkNBUCBBY2Nlc3NpYmlsaXR5KioKCk9rYXksIHNvIEkmIzM5O20gdHJ5aW5nIHRvIGZpZ3VyZSBvdXQgaWYgSSBjYW4gaW50ZXJhY3Qgd2l0aCBgdmNhcF9zaG93X2FkbWluYCB3aXRob3V0IGhhdmluZyBhY3R1YWwgaGFyZHdhcmUuIEl0JiMzOTtzIHBhcnQgb2YgYGRlYnVnZnNgLCB3aGljaCBpcyBhIGdvb2Qgc3RhcnRpbmcgcG9pbnQuIFJpZ2h0LCBgdmNhcF9hcGlfZGVidWdmcy5jYCBpcyByZXNwb25zaWJsZSBmb3IgY3JlYXRpbmcgdGhvc2UgYGRlYnVnZnNgIGVudHJpZXMgcmVsYXRlZCB0byBWQ0FQLiBCdXQgaGVyZSYjMzk7cyB0aGUgY2F0Y2g6IHRob3NlIGVudHJpZXMgYXJlIG9ubHkgY3JlYXRlZCBpZiBhIFZDQVAgY29udHJvbCBzdHJ1Y3R1cmUgaXMgaW5pdGlhbGl6ZWQgYnkgYSBjbGllbnQgZHJpdmVyLiBUaGlua2luZyBhYm91dCBpdCwgZHJpdmVycyBsaWtlIFNwYXJ4NSBjb21lIHRvIG1pbmQuIE5vdywgdGhlIHByb2JsZW0gaXMgdGhhdCBTcGFyeDUgYW5kIExhbjk2NngsIGZyb20gd2hhdCBJIGtub3csIG5lZWQgcGh5c2ljYWwgaGFyZHdhcmUgb3IgdmVyeSBzcGVjaWZpYyBTb0NzLiBTbywgcnVubmluZyB0aGVtIGluIHN0YW5kYXJkIFFFTVUgc2VlbXMgaW1wb3NzaWJsZS4KCldhaXQuLi4gaXMgdGhlcmUgKmFueSogdmlydHVhbCBkcml2ZXIgb3Igc29mdHdhcmUgZW11bGF0aW9uIHRoYXQgdXNlcyBWQ0FQPyBJIG5lZWQgdG8gY2hlY2suIFRvIGJlIGFic29sdXRlbHkgc3VyZSwgSSYjMzk7bSBnb2luZyB0byBzY2FuIHRoZSBjb2RlIGZvciBhbnkgdXNlcyBvZiBgdmNhcF9nZXRfcnVsZWAsIGB2Y2FwX3Nob3dfYWRtaW5gLCBvciBhbnl0aGluZyByZWxhdGVkIHRvIGB2Y2FwX2FwaS5jYC4gVGhhdCBzaG91bGQgZ2l2ZSBtZSB0aGUgYW5zd2VyLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjM2LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yOSAxMDoyODwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDt2Y2FwX2dldF9ydWxlJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwLyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtkcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvbGFuOTY2eC9sYW45NjZ4X3B0cC5jPTU0PXN0YXRpYyBpbnQgbGFuOTY2eF9wdHBfYWRkX3RyYXAoc3RydWN0IGxhbjk2NnhfcG9ydCAqcG9ydCxcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvbGFuOTY2eC9sYW45NjZ4X3B0cC5jLTYzLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL2xhbjk2NngvbGFuOTY2eF9wdHAuYzo2NDpcdHZydWxlID0gdmNhcF9nZXRfcnVsZShsYW45NjZ4LVx1MDAzZXZjYXBfY3RybCwgcnVsZV9pZCk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvbGFuOTY2eC9sYW45NjZ4X3B0cC5jLTY1LVx0aWYgKCFJU19FUlIodnJ1bGUpKSB7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL2xhbjk2NngvbGFuOTY2eF9wdHAuYz0xMDM9c3RhdGljIGludCBsYW45NjZ4X3B0cF9kZWxfdHJhcChzdHJ1Y3QgbGFuOTY2eF9wb3J0ICpwb3J0LFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC9sYW45NjZ4L2xhbjk2NnhfcHRwLmMtMTEwLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL2xhbjk2NngvbGFuOTY2eF9wdHAuYzoxMTE6XHR2cnVsZSA9IHZjYXBfZ2V0X3J1bGUobGFuOTY2eC1cdTAwM2V2Y2FwX2N0cmwsIHJ1bGVfaWQpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL2xhbjk2NngvbGFuOTY2eF9wdHAuYy0xMTItXHRpZiAoSVNfRVJSKHZydWxlKSlcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvbGFuOTY2eC9sYW45NjZ4X3RjX2Zsb3dlci5jPTU4Mz1zdGF0aWMgaW50IGxhbjk2NnhfdGNfZmxvd2VyX3N0YXRzKHN0cnVjdCBsYW45NjZ4X3BvcnQgKnBvcnQsXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL2xhbjk2NngvbGFuOTY2eF90Y19mbG93ZXIuYy01ODktXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvbGFuOTY2eC9sYW45NjZ4X3RjX2Zsb3dlci5jOjU5MDpcdGVyciA9IHZjYXBfZ2V0X3J1bGVfY291bnRfYnlfY29va2llKHBvcnQtXHUwMDNlbGFuOTY2eC1cdTAwM2V2Y2FwX2N0cmwsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvbGFuOTY2eC9sYW45NjZ4X3RjX2Zsb3dlci5jLTU5MS1cdFx0XHRcdFx0ICAgIFx1MDAyNmNvdW50LCBmLVx1MDAzZWNvb2tpZSk7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3NwYXJ4NS9zcGFyeDVfdGNfZmxvd2VyLmM9MTM3NT1zdGF0aWMgaW50IHNwYXJ4NV90Y19mcmVlX3J1bGVfcmVzb3VyY2VzKHN0cnVjdCBuZXRfZGV2aWNlICpuZGV2LFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC9zcGFyeDUvc3Bhcng1X3RjX2Zsb3dlci5jLTEzODMtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvc3Bhcng1L3NwYXJ4NV90Y19mbG93ZXIuYzoxMzg0Olx0dnJ1bGUgPSB2Y2FwX2dldF9ydWxlKHZjdHJsLCBydWxlX2lkKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC9zcGFyeDUvc3Bhcng1X3RjX2Zsb3dlci5jLTEzODUtXHRpZiAoSVNfRVJSKHZydWxlKSlcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvc3Bhcng1L3NwYXJ4NV90Y19mbG93ZXIuYz0xNDI4PXN0YXRpYyBpbnQgc3Bhcng1X3RjX2Zsb3dlcl9zdGF0cyhzdHJ1Y3QgbmV0X2RldmljZSAqbmRldixcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvc3Bhcng1L3NwYXJ4NV90Y19mbG93ZXIuYy0xNDM4LVx0dmN0cmwgPSBwb3J0LVx1MDAzZXNwYXJ4NS1cdTAwM2V2Y2FwX2N0cmw7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvc3Bhcng1L3NwYXJ4NV90Y19mbG93ZXIuYzoxNDM5Olx0ZXJyID0gdmNhcF9nZXRfcnVsZV9jb3VudF9ieV9jb29raWUodmN0cmwsIFx1MDAyNmN0ciwgZmNvLVx1MDAzZWNvb2tpZSk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvc3Bhcng1L3NwYXJ4NV90Y19mbG93ZXIuYy0xNDQwLVx0aWYgKGVycilcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaS5jPTI0MTY9c3RydWN0IHZjYXBfcnVsZSAqdmNhcF9kZWNvZGVfcnVsZShzdHJ1Y3QgdmNhcF9ydWxlX2ludGVybmFsICplbGVtKVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpLmMtMjQ0Ni1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpLmM6MjQ0NzpzdHJ1Y3QgdmNhcF9ydWxlICp2Y2FwX2dldF9ydWxlKHN0cnVjdCB2Y2FwX2NvbnRyb2wgKnZjdHJsLCB1MzIgaWQpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaS5jLTI0NDgte1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpLmMtMjQ2NC19XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaS5jOjI0NjU6RVhQT1JUX1NZTUJPTF9HUEwodmNhcF9nZXRfcnVsZSk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaS5jLTI0NjYtXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGkuYz0zMzUzPWludCB2Y2FwX3J1bGVfZ2V0X2tleXNldHMoc3RydWN0IHZjYXBfcnVsZV9pbnRlcm5hbCAqcmksXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGkuYy0zMzk2LS8qIENvbGxlY3QgcGFja2V0IGNvdW50cyBmcm9tIGFsbCBydWxlcyB3aXRoIHRoZSBzYW1lIGNvb2tpZSAqL1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGkuYzozMzk3OmludCB2Y2FwX2dldF9ydWxlX2NvdW50X2J5X2Nvb2tpZShzdHJ1Y3QgdmNhcF9jb250cm9sICp2Y3RybCxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpLmMtMzM5OC1cdFx0XHRcdCAgc3RydWN0IHZjYXBfY291bnRlciAqY3RyLCB1NjQgY29va2llKVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpLmMtMzQzNS19XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaS5jOjM0MzY6RVhQT1JUX1NZTUJPTF9HUEwodmNhcF9nZXRfcnVsZV9jb3VudF9ieV9jb29raWUpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGkuYy0zNDM3LVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2NsaWVudC5oPTE3Mz1zdHJ1Y3QgdmNhcF9ydWxlICp2Y2FwX2NvcHlfcnVsZShzdHJ1Y3QgdmNhcF9ydWxlICpydWxlKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2NsaWVudC5oLTE3NC0vKiBHZXQgcnVsZSBmcm9tIGEgVkNBUCBpbnN0YW5jZSAqL1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfY2xpZW50Lmg6MTc1OnN0cnVjdCB2Y2FwX3J1bGUgKnZjYXBfZ2V0X3J1bGUoc3RydWN0IHZjYXBfY29udHJvbCAqdmN0cmwsIHUzMiBpZCk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9jbGllbnQuaC0xNzYtLyogVXBkYXRlIGV4aXN0aW5nIHJ1bGUgKi9cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9jbGllbnQuaD0yMDc9aW50IHZjYXBfYWRtaW5fcnVsZV9jb3VudChzdHJ1Y3QgdmNhcF9hZG1pbiAqYWRtaW4sIGludCBjaWQpO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2NsaWVudC5oLTIwOS0vKiBWQ0FQIHJ1bGUgY291bnRlciBvcGVyYXRpb25zICovXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9jbGllbnQuaDoyMTA6aW50IHZjYXBfZ2V0X3J1bGVfY291bnRfYnlfY29va2llKHN0cnVjdCB2Y2FwX2NvbnRyb2wgKnZjdHJsLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfY2xpZW50LmgtMjExLVx0XHRcdFx0ICBzdHJ1Y3QgdmNhcF9jb3VudGVyICpjdHIsIHU2NCBjb29raWUpO1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjM3LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yOSAxMDoyODwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAzODU4NgoJCQkJCQkJb3V0cHV0OiA0MAoJCQkJCQkJdGhvdWdodHM6IDQ5CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Pa2F5LCBoZXJlJiMzOTtzIG15IHRha2Ugb24gdGhvc2UgdGhvdWdodHMsIGZyYW1lZCBhcyBteSBvd246CgoqKkFuYWx5emluZyBgdmNhcF9nZXRfcnVsZWAgVXNhZ2UqKgoKQWxyaWdodCwgbGV0JiMzOTtzIHNlZSwgdGhlIGNvZGUmIzM5O3MgdGVsbGluZyBtZSB0aGF0IGB2Y2FwX2dldF9ydWxlYCBpcyBvbmx5IGJlaW5nIHVzZWQgYnkgYGxhbjk2NnhgIGFuZCBgc3Bhcng1YC4gTXkgaW5pdGlhbCBodW5jaCBpcyBjb25maXJtZWQ7IGJvdGggb2YgdGhlc2UgYXJlIGhhcmR3YXJlLXNwZWNpZmljIGRyaXZlcnMsIHdoaWNoIG1ha2VzIHBlcmZlY3Qgc2Vuc2UuIEkgcmVtZW1iZXIgd29ya2luZyB3aXRoIGJvdGggb2YgdGhvc2UgcGxhdGZvcm1zLCBhbmQgdGhlIGNvbnRleHQgb2YgcnVsZSByZXRyaWV2YWwgYWxpZ25zIHdpdGggdGhlIGtpbmQgb2YgaGFyZHdhcmUgYWNjZWxlcmF0aW9uIHRoZXkgdHlwaWNhbGx5IHJlcXVpcmUuIE5vdywgbGV0JiMzOTtzIGRpZyBhIGJpdCBkZWVwZXIgYW5kIHNlZSB3aGF0IHRoZSBgbGFuOTY2eGAgS2NvbmZpZyBoYXMgdG8gc2F5IGFib3V0IGl0LiBJIGhhdmUgYSBmZWVsaW5nIHRoZSBjb25maWd1cmF0aW9uIG9wdGlvbnMgdGhlcmUgd2lsbCBnaXZlIHVzIHNvbWUgbW9yZSBpbnNpZ2h0IGludG8gaG93IHRoaXMgcnVsZSByZXRyaWV2YWwgaXMgYmVpbmcgaGFuZGxlZC4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4zOC8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjkgMTA6Mjg8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPkVycm9yOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bm8gbWF0Y2hlczwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtjb25maWcgTUlDUk9DSElQX0xBTjk2NlgmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtkcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O2Vycm9yJiMzNDs6ICYjMzQ7bm8gbWF0Y2hlcyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4zOS8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjkgMTA6Mjg8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMzg4NTcKCQkJCQkJCW91dHB1dDogNDQKCQkJCQkJCXRob3VnaHRzOiAyNAoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+SGVyZSYjMzk7cyBteSB0aG91Z2h0IHByb2Nlc3MsIHN1bW1hcml6ZWQgYXMgeW91IHJlcXVlc3RlZDoKCioqS2NvbmZpZyBDaGVjayoqCgpPa2F5LCB0aW1lIHRvIGdldCBkb3duIHRvIGJyYXNzIHRhY2tzLiBJIG5lZWQgdG8gdW5kZXJzdGFuZCB0aGUgY29uZmlndXJhdGlvbiBvcHRpb25zIGZvciB0aGlzIExBTjk2NnggZHJpdmVyIHdpdGhpbiB0aGUga2VybmVsLiBNeSBmaXJzdCBwb3J0IG9mIGNhbGwgaXMgdW5kb3VidGVkbHkgdGhlIGBLY29uZmlnYCBmaWxlIGluIHRoZSBkcml2ZXImIzM5O3MgZGlyZWN0b3J5LiBTcGVjaWZpY2FsbHksIEkmIzM5O20gaGVhZGluZyBzdHJhaWdodCB0byBgZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL2xhbjk2NngvS2NvbmZpZ2AuIFRoYXQgZmlsZSAqZGVmaW5lcyogdGhlIGNvbmZpZ3VyYXRpb24gb3B0aW9ucyB0aGlzIGRyaXZlciBleHBvc2VzIHRvIHRoZSB1c2VyLiBJIG5lZWQgdG8gc2VlIHdoYXQga25vYnMgYXJlIGF2YWlsYWJsZSBmb3IgdGhpbmdzIGxpa2UgUEhZIHNldHRpbmdzLCBpbnRlcnJ1cHQgY29uZmlndXJhdGlvbiwgZmxvdyBjb250cm9sLCBhbmQgYW55IG90aGVyIG1pY3JvY2hpcC1zcGVjaWZpYyBmZWF0dXJlcy4gSSYjMzk7bSBsb29raW5nIGZvciB0aGUgZGVwZW5kZW5jaWVzLCBoZWxwIHRleHRzLCBhbmQgZGVmYXVsdCB2YWx1ZXMg4oCTIGFsbCB0aGUgY29udGV4dCB0aGF0IGBLY29uZmlnYCBwcm92aWRlcyB0byB1bmRlcnN0YW5kIGhvdyB1c2VycyBjYW4gdGFpbG9yIHRoaXMgZHJpdmVyIHRvIHRoZWlyIHNwZWNpZmljIGhhcmR3YXJlIGFuZCBuZXR3b3JrIHJlcXVpcmVtZW50cy4gVGhpcyBLY29uZmlnIGZpbGUgaXMgdGhlICpibHVlcHJpbnQqIGZvciBob3cgdXNlcnMgaW50ZXJhY3Qgd2l0aCBhbmQgY3VzdG9taXplIHRoZSBMQU45NjZ4IGRyaXZlcjsgSSBuZWVkIHRvIHVuZGVyc3RhbmQgdGhpcyB0byBoYXZlIGFueSBjaGFuY2Ugb2YgbWFraW5nIGVmZmVjdGl2ZSBjaGFuZ2VzIG9yIHVuZGVyc3RhbmRpbmcgY3VycmVudCBmdW5jdGlvbmFsaXR5LiBUaGlzIGlzIHRoZSBwbGFjZSB0byBzdGFydC4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD40MC8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjkgMTA6Mjg8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5yZWFkLWZpbGU8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0ZpbGUmIzM0OzogJiMzNDtkcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvbGFuOTY2eC9LY29uZmlnJiMzNDssCiAgJiMzNDtGaXJzdExpbmUmIzM0OzogMSwKICAmIzM0O0xpbmVDb3VudCYjMzQ7OiAyMAp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7Q29udGVudHMmIzM0OzogJiMzNDsgICAxOlx0Y29uZmlnIExBTjk2NlhfU1dJVENIXG4gICAyOlx0XHR0cmlzdGF0ZSBcJiMzNDtMYW45NjZ4IHN3aXRjaCBkcml2ZXJcJiMzNDtcbiAgIDM6XHRcdGRlcGVuZHMgb24gUFRQXzE1ODhfQ0xPQ0tfT1BUSU9OQUxcbiAgIDQ6XHRcdGRlcGVuZHMgb24gSEFTX0lPTUVNXG4gICA1Olx0XHRkZXBlbmRzIG9uIE9GXG4gICA2Olx0XHRkZXBlbmRzIG9uIE5FVF9TV0lUQ0hERVZcbiAgIDc6XHRcdGRlcGVuZHMgb24gQlJJREdFIHx8IEJSSURHRT1uXG4gICA4Olx0XHRzZWxlY3QgUEhZTElOS1xuICAgOTpcdFx0c2VsZWN0IFBBR0VfUE9PTFxuICAxMDpcdFx0c2VsZWN0IFZDQVBcbiAgMTE6XHRcdHNlbGVjdCBGRE1BXG4gIDEyOlx0XHRoZWxwXG4gIDEzOlx0XHQgIFRoaXMgZHJpdmVyIHN1cHBvcnRzIHRoZSBMYW45NjZ4IG5ldHdvcmsgc3dpdGNoIGRldmljZS5cbiAgMTQ6XHRcbiAgMTU6XHRjb25maWcgTEFOOTY2WF9EQ0JcbiAgMTY6XHRcdGJvb2wgXCYjMzQ7RGF0YSBDZW50ZXIgQnJpZGdpbmcgKERDQikgc3VwcG9ydFwmIzM0O1xuICAxNzpcdFx0ZGVwZW5kcyBvbiBMQU45NjZYX1NXSVRDSCBcdTAwMjZcdTAwMjYgRENCXG4gIDE4Olx0XHRkZWZhdWx0IHlcbiAgMTk6XHRcdGhlbHBcbiAgMjA6XHRcdCAgU2F5IFkgaGVyZSBpZiB5b3Ugd2FudCB0byB1c2UgRGF0YSBDZW50ZXIgQnJpZGdpbmcgKERDQikgaW4gdGhlXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+NDEvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzI5IDEwOjI4PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDM5NDIxCgkJCQkJCQlvdXRwdXQ6IDM5CgkJCQkJCQl0aG91Z2h0czogMTk4CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKkFuYWx5emluZyB0aGUgTEFOOTY2WF9TV0lUQ0ggRHJpdmVyIGFuZCBLVW5pdCBUZXN0aW5nKioKCk9rYXksIHNvIEkmIzM5O20gbG9va2luZyBhdCBgTEFOOTY2WF9TV0lUQ0hgLCBhbmQgaXQmIzM5O3MgcHJldHR5IGNsZWFyIHRoYXQgaXQgaGFzIHNvbWUga2V5IGRlcGVuZGVuY2llcy4gRmlyc3QsIGl0IHJlbGllcyBvbiBgSEFTX0lPTUVNYCBhbmQsIGNydWNpYWxseSwgYE9GYCDigJMgdGhlIE9wZW4gRmlybXdhcmUgb3IgRGV2aWNlIFRyZWUuIEdvb2QgdG8ga25vdy4gSXQmIzM5O3Mgbm90IHRpZWQgdG8gYENPTVBJTEVfVEVTVGAgb3IgYW55IHNwZWNpZmljIGFyY2hpdGVjdHVyZSAoYEFSQ0hfLi4uYCksIHdoaWNoIGlzIGludGVyZXN0aW5nLCBidXQgdGhhdCBgT0ZgIGRlcGVuZGVuY3kgaXMgZ29pbmcgdG8gYmUgaW1wb3J0YW50IGluIHRoZSBiaWcgcGljdHVyZS4KClJpZ2h0LCBzbyBhcyBhIHBsYXRmb3JtIGRyaXZlciwgSSBjYW4gYWxyZWFkeSBzZWUgYSBwb3RlbnRpYWwgcHJvYmxlbSBmb3IgZW11bGF0aW9uLCBlc3BlY2lhbGx5IGluIHNvbWV0aGluZyBsaWtlIFFFTVUuIFVubGVzcyBzb21lb25lJiMzOTtzIGdvbmUgdG8gdGhlIHRyb3VibGUgb2YgZGVmaW5pbmcgYSBzcGVjaWZpYyBtYWNoaW5lIG1vZGVsIGZvciB0aGUgTGFuOTY2eCBvciBTcGFyeDUsIHRoZXJlIHdvbiYjMzk7dCBiZSBhIGRldmljZSB0cmVlIG5vZGUgZm9yIGl0LCB3aGljaCBtZWFucyB0aGUgZHJpdmVyIHdvbiYjMzk7dCBldmVuICpwcm9iZSouIFRoYXQmIzM5O3MgYSBjbGFzc2ljIGdvdGNoYS4KCkhvbGQgb24sIEkgd2FzIGp1c3QgdGhpbmtpbmcgYWJvdXQgdGVzdGluZywgSSB3b25kZXIgaWYgdGhlcmXigJlzIGEgS1VuaXQgdGVzdCBwYXRoIHRvIGB2Y2FwX2RlY29kZV9ydWxlYD8gSSBuZWVkIHRvIGZpZ3VyZSBvdXQgaWYgaXQgY2FuIGJlIHJlYWNoZWQgdmlhIEtVbml0LiBJ4oCZdmUgY2hlY2tlZCBgdmNhcF9hcGlfa3VuaXQuY2AgYW5kIGB2Y2FwX21vZGVsX2t1bml0LmNgIGFuZCBJIGRpZG7igJl0IGZpbmQgYSBkaXJlY3QgY2FsbCB0byB0aGUgZnVuY3Rpb24gdmlhIGdyZXAsIHdoaWNoIGlzIGEgc3RhcnQsIGJ1dCBJIG5lZWQgdG8gbWFrZSBzdXJlIEkgaGF2ZW7igJl0IG1pc3NlZCBhbnl0aGluZy4gR290dGEgZG91YmxlLWNoZWNrIGFuZCBzZWUgaWYgaXQmIzM5O3MgcG90ZW50aWFsbHkgY2FsbGVkIGZyb20gYSBkaWZmZXJlbnQgdGVzdCBmaWxlLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjQyLzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yOSAxMDoyODwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDt2Y2FwX2RlY29kZV9ydWxlJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpLmM9MjQxMz1FWFBPUlRfU1lNQk9MX0dQTCh2Y2FwX2ZyZWVfcnVsZSk7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGkuYy0yNDE1LS8qIERlY29kZSBhIHJ1bGUgZnJvbSB0aGUgVkNBUCBjYWNoZSBhbmQgcmV0dXJuIGEgY29weSAqL1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGkuYzoyNDE2OnN0cnVjdCB2Y2FwX3J1bGUgKnZjYXBfZGVjb2RlX3J1bGUoc3RydWN0IHZjYXBfcnVsZV9pbnRlcm5hbCAqZWxlbSlcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpLmMtMjQxNy17XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGkuYz0yNDQ3PXN0cnVjdCB2Y2FwX3J1bGUgKnZjYXBfZ2V0X3J1bGUoc3RydWN0IHZjYXBfY29udHJvbCAqdmN0cmwsIHUzMiBpZClcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaS5jLTI0NjAtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaS5jOjI0NjE6XHRydWxlID0gdmNhcF9kZWNvZGVfcnVsZShlbGVtKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpLmMtMjQ2Mi1cdHZjYXBfdW5sb2NrKGVsZW0tXHUwMDNlYWRtaW4pO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2RlYnVnZnMuYz0yOTI9c3RhdGljIGludCB2Y2FwX3Nob3dfYWRtaW4oc3RydWN0IHZjYXBfY29udHJvbCAqdmN0cmwsXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfZGVidWdmcy5jLTMwMS1cdGxpc3RfZm9yX2VhY2hfZW50cnkoZWxlbSwgXHUwMDI2YWRtaW4tXHUwMDNlcnVsZXMsIGxpc3QpIHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2RlYnVnZnMuYzozMDI6XHRcdHZydWxlID0gdmNhcF9kZWNvZGVfcnVsZShlbGVtKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2RlYnVnZnMuYy0zMDMtXHRcdGlmIChJU19FUlIodnJ1bGUpKSB7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfcHJpdmF0ZS5oPTEyMj1pbnQgdmNhcF9ydWxlX2dldF9rZXlzZXRzKHN0cnVjdCB2Y2FwX3J1bGVfaW50ZXJuYWwgKnJpLFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX3ByaXZhdGUuaC0xMjQtLyogRGVjb2RlIGEgcnVsZSBmcm9tIHRoZSBWQ0FQIGNhY2hlIGFuZCByZXR1cm4gYSBjb3B5ICovXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9wcml2YXRlLmg6MTI1OnN0cnVjdCB2Y2FwX3J1bGUgKnZjYXBfZGVjb2RlX3J1bGUoc3RydWN0IHZjYXBfcnVsZV9pbnRlcm5hbCAqZWxlbSk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9wcml2YXRlLmgtMTI2LVxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjQzLzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yOSAxMDoyODwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA0MDY1OAoJCQkJCQkJb3V0cHV0OiAzOQoJCQkJCQkJdGhvdWdodHM6IDI5CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Pa2F5LCBoZXJlJiMzOTtzIG15IGludGVycHJldGF0aW9uIG9mIHRob3NlIHRob3VnaHRzLCBjcmFmdGVkIHdpdGggdGhlIHVuZGVyc3RhbmRpbmcgdGhhdCBJJiMzOTttIHNwZWFraW5nIHRvIGEgZmVsbG93IGV4cGVydDoKCioqQ29uY2VybmluZyBDYWxsZXJzIGFuZCBLVW5pdCBJbnRlZ3JhdGlvbioqCgpBbHJpZ2h0LCBzbyB0aGUgb25seSBjYWxsZXJzIEkmIzM5O20gc2VlaW5nIGFyZSBgdmNhcF9nZXRfcnVsZWAgYW5kIGB2Y2FwX3Nob3dfYWRtaW5gLiBUaGF0JiMzOTtzIGEgbGltaXRlZCBzZXQsIHdoaWNoIHNwYXJrcyBhbiBpbW1lZGlhdGUgcXVlc3Rpb246IGFyZSB0aGVzZSBmdW5jdGlvbnMgYmVpbmcgaW52b2tlZCBieSBLVW5pdD8gVGhhdCYjMzk7cyB0aGUgbW9zdCBsaWtlbHkgc2NlbmFyaW8sIGF0IGxlYXN0IGluaXRpYWxseS4gSSBuZWVkIHRvIGZpZ3VyZSBvdXQgdGhlIHRlc3RpbmcgY29udGV4dC4gSSYjMzk7bSB3b25kZXJpbmcgaWYgdGhpcyBzbWFsbCBzZXQgb2YgY2FsbGVycyBpcyBhIHNpZ24gb2YgYSBmb2N1c2VkIEtVbml0IHRlc3Qgc3VpdGUsIG9yIGlmIHRoZXJlJiMzOTtzIHNvbWV0aGluZyBlbHNlIGF0IHBsYXkgaGVyZS4gVW5kZXJzdGFuZGluZyB0aGUgY29ubmVjdGlvbiB0byBLVW5pdCBpcyBrZXkgdG8gaW50ZXJwcmV0aW5nIHRoZSBzaWduaWZpY2FuY2Ugb2YgdGhlc2UgY2FsbHMuIE15IG5leHQgc3RlcCB3aWxsIGJlIHRvIGV4cGxvcmUgdGhlIGNvZGUgc3Vycm91bmRpbmcgdGhlc2UgZnVuY3Rpb25zLCBsb29raW5nIGZvciBLVW5pdC1zcGVjaWZpYyBkaXJlY3RpdmVzIG9yIGFueSBjbHVlcyB0aGF0IHBvaW50IHRvIGl0IGJlaW5nIHRoZSBkcml2aW5nIGZvcmNlIGJlaGluZCB0aGVzZSBjYWxscy4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD40NC8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjkgMTA6Mjg8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7dmNhcF9nZXRfcnVsZSYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwLyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtkcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaS5jPTI0MTY9c3RydWN0IHZjYXBfcnVsZSAqdmNhcF9kZWNvZGVfcnVsZShzdHJ1Y3QgdmNhcF9ydWxlX2ludGVybmFsICplbGVtKVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpLmMtMjQ0Ni1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpLmM6MjQ0NzpzdHJ1Y3QgdmNhcF9ydWxlICp2Y2FwX2dldF9ydWxlKHN0cnVjdCB2Y2FwX2NvbnRyb2wgKnZjdHJsLCB1MzIgaWQpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaS5jLTI0NDgte1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpLmMtMjQ2NC19XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaS5jOjI0NjU6RVhQT1JUX1NZTUJPTF9HUEwodmNhcF9nZXRfcnVsZSk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaS5jLTI0NjYtXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGkuYz0zMzUzPWludCB2Y2FwX3J1bGVfZ2V0X2tleXNldHMoc3RydWN0IHZjYXBfcnVsZV9pbnRlcm5hbCAqcmksXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGkuYy0zMzk2LS8qIENvbGxlY3QgcGFja2V0IGNvdW50cyBmcm9tIGFsbCBydWxlcyB3aXRoIHRoZSBzYW1lIGNvb2tpZSAqL1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGkuYzozMzk3OmludCB2Y2FwX2dldF9ydWxlX2NvdW50X2J5X2Nvb2tpZShzdHJ1Y3QgdmNhcF9jb250cm9sICp2Y3RybCxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpLmMtMzM5OC1cdFx0XHRcdCAgc3RydWN0IHZjYXBfY291bnRlciAqY3RyLCB1NjQgY29va2llKVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpLmMtMzQzNS19XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaS5jOjM0MzY6RVhQT1JUX1NZTUJPTF9HUEwodmNhcF9nZXRfcnVsZV9jb3VudF9ieV9jb29raWUpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGkuYy0zNDM3LVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2NsaWVudC5oPTE3Mz1zdHJ1Y3QgdmNhcF9ydWxlICp2Y2FwX2NvcHlfcnVsZShzdHJ1Y3QgdmNhcF9ydWxlICpydWxlKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2NsaWVudC5oLTE3NC0vKiBHZXQgcnVsZSBmcm9tIGEgVkNBUCBpbnN0YW5jZSAqL1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfY2xpZW50Lmg6MTc1OnN0cnVjdCB2Y2FwX3J1bGUgKnZjYXBfZ2V0X3J1bGUoc3RydWN0IHZjYXBfY29udHJvbCAqdmN0cmwsIHUzMiBpZCk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9jbGllbnQuaC0xNzYtLyogVXBkYXRlIGV4aXN0aW5nIHJ1bGUgKi9cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9jbGllbnQuaD0yMDc9aW50IHZjYXBfYWRtaW5fcnVsZV9jb3VudChzdHJ1Y3QgdmNhcF9hZG1pbiAqYWRtaW4sIGludCBjaWQpO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2NsaWVudC5oLTIwOS0vKiBWQ0FQIHJ1bGUgY291bnRlciBvcGVyYXRpb25zICovXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9jbGllbnQuaDoyMTA6aW50IHZjYXBfZ2V0X3J1bGVfY291bnRfYnlfY29va2llKHN0cnVjdCB2Y2FwX2NvbnRyb2wgKnZjdHJsLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfY2xpZW50LmgtMjExLVx0XHRcdFx0ICBzdHJ1Y3QgdmNhcF9jb3VudGVyICpjdHIsIHU2NCBjb29raWUpO1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjQ1LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yOSAxMDoyODwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA0MTgwOAoJCQkJCQkJb3V0cHV0OiAzOQoJCQkJCQkJdGhvdWdodHM6IDI3CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Pa2F5LCBoZXJlJiMzOTtzIG15IHRha2Ugb24gdGhvc2UgdGhvdWdodHMsIGZyYW1lZCBhcyBhbiBleHBlcnQmIzM5O3MgaW50ZXJuYWwgbW9ub2xvZ3VlOgoKKipJbnZlc3RpZ2F0aW5nIEtVbml0JiMzOTtzIEludGVyYWN0aW9uIHdpdGggVkNBUCBDb21wb25lbnRzKioKClJpZ2h0LCBzbyBJJiMzOTttIGxvb2tpbmcgaW50byB0aGUgcmVsYXRpb25zaGlwIGJldHdlZW4gS1VuaXQgYW5kIHRoZXNlIFZDQVAgZnVuY3Rpb25zLiBNeSBpbml0aWFsIGV4cGVjdGF0aW9uIHdhcyB0aGF0IEkmIzM5O2Qgc2VlIGNhbGxzIHRvIGB2Y2FwX2dldF9ydWxlYCB3aXRoaW4gdGhlIEtVbml0IGZyYW1ld29yay4gVGhhdCB3b3VsZCBtYWtlIHNlbnNlLCBnaXZlbiBpdHMgcm9sZS4gQnV0IGl0IGFwcGVhcnMgdGhhdCYjMzk7cyBub3QgdGhlIGNhc2Ug4oCTICp0aGF0JiMzOTtzIGludGVyZXN0aW5nKi4gVGhlIGxhY2sgb2YgZGlyZWN0IGludGVyYWN0aW9uIHJhaXNlcyBxdWVzdGlvbnMgYWJvdXQgaG93IEtVbml0IGlzIHRlc3RpbmcgdGhlIGxvZ2ljIG9yIGZlYXR1cmVzIHRoYXQgd291bGQgbm9ybWFsbHkgdXNlIHRoYXQgZnVuY3Rpb24uCgpPa2F5LCBsZXQmIzM5O3MgcGl2b3QuIFdoYXQgYWJvdXQgYHZjYXBfc2hvd19hZG1pbmA/IERvZXMgS1VuaXQgaW50ZXJhY3Qgd2l0aCAqdGhhdCogZnVuY3Rpb24/IERvZXMgdGhhdCBpbnRlcmFjdGlvbiBvZmZlciBhIHBhdGh3YXkgdG8gdGVzdGluZyBWQ0FQIGZ1bmN0aW9uYWxpdHk/IFBlcmhhcHMgdGVzdGluZyBhZG1pbiBmdW5jdGlvbnMgaXMgYSBwYXRoIHRvIHRoZSBmdW5jdGlvbnMgSSYjMzk7bSBpbnRlcmVzdGVkIGluLiBJIG5lZWQgdG8gaW52ZXN0aWdhdGUgZnVydGhlciBhbmQgZmlndXJlIG91dCB3aGVyZSB0aGUgY29ubmVjdGlvbiBwb2ludHMgYXJlLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjQ2LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yOSAxMDoyOTwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDt2Y2FwX3Nob3dfYWRtaW4mIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtkcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC8mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfZGVidWdmcy5jPTIxMj1zdGF0aWMgaW50IHZjYXBfZGVidWdmc19zaG93X3J1bGVfYWN0aW9uc2V0KHN0cnVjdCB2Y2FwX3J1bGVfaW50ZXJuYWwgKnJpLFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2RlYnVnZnMuYy0yMzUtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9kZWJ1Z2ZzLmM6MjM2OnN0YXRpYyB2b2lkIHZjYXBfc2hvd19hZG1pbl9ydWxlKHN0cnVjdCB2Y2FwX2NvbnRyb2wgKnZjdHJsLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfZGVidWdmcy5jLTIzNy1cdFx0XHRcdCBzdHJ1Y3QgdmNhcF9hZG1pbiAqYWRtaW4sXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfZGVidWdmcy5jLTI2NS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2RlYnVnZnMuYzoyNjY6c3RhdGljIHZvaWQgdmNhcF9zaG93X2FkbWluX2luZm8oc3RydWN0IHZjYXBfY29udHJvbCAqdmN0cmwsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9kZWJ1Z2ZzLmMtMjY3LVx0XHRcdFx0IHN0cnVjdCB2Y2FwX2FkbWluICphZG1pbixcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9kZWJ1Z2ZzLmMtMjkxLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfZGVidWdmcy5jOjI5MjpzdGF0aWMgaW50IHZjYXBfc2hvd19hZG1pbihzdHJ1Y3QgdmNhcF9jb250cm9sICp2Y3RybCxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2RlYnVnZnMuYy0yOTMtXHRcdFx0ICAgc3RydWN0IHZjYXBfYWRtaW4gKmFkbWluLFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2RlYnVnZnMuYy0yOTktXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9kZWJ1Z2ZzLmM6MzAwOlx0dmNhcF9zaG93X2FkbWluX2luZm8odmN0cmwsIGFkbWluLCBvdXQpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfZGVidWdmcy5jLTMwMS1cdGxpc3RfZm9yX2VhY2hfZW50cnkoZWxlbSwgXHUwMDI2YWRtaW4tXHUwMDNlcnVsZXMsIGxpc3QpIHtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9kZWJ1Z2ZzLmMtMzA4LVx0XHRvdXQtXHUwMDNlcHJmKG91dC1cdTAwM2Vkc3QsIFwmIzM0O1xcblwmIzM0Oyk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9kZWJ1Z2ZzLmM6MzA5Olx0XHR2Y2FwX3Nob3dfYWRtaW5fcnVsZSh2Y3RybCwgYWRtaW4sIG91dCwgdG9faW50cnVsZSh2cnVsZSkpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfZGVidWdmcy5jLTMxMC1cdFx0dmNhcF9mcmVlX3J1bGUodnJ1bGUpO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2RlYnVnZnMuYy0zMTQtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9kZWJ1Z2ZzLmM6MzE1OnN0YXRpYyBpbnQgdmNhcF9zaG93X2FkbWluX3JhdyhzdHJ1Y3QgdmNhcF9jb250cm9sICp2Y3RybCxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2RlYnVnZnMuYy0zMTYtXHRcdFx0ICAgICAgIHN0cnVjdCB2Y2FwX2FkbWluICphZG1pbixcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9kZWJ1Z2ZzLmM9NDA0PXN0YXRpYyBpbnQgdmNhcF9kZWJ1Z2ZzX3Nob3coc3RydWN0IHNlcV9maWxlICptLCB2b2lkICp1bnVzZWQpXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfZGVidWdmcy5jLTQxMy1cdHZjYXBfbG9jayhpbmZvLVx1MDAzZWFkbWluKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2RlYnVnZnMuYzo0MTQ6XHRyZXQgPSB2Y2FwX3Nob3dfYWRtaW4oaW5mby1cdTAwM2V2Y3RybCwgaW5mby1cdTAwM2VhZG1pbiwgXHUwMDI2b3V0KTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2RlYnVnZnMuYy00MTUtXHR2Y2FwX3VubG9jayhpbmZvLVx1MDAzZWFkbWluKTtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9kZWJ1Z2ZzLmM9NDIxPXN0YXRpYyBpbnQgdmNhcF9yYXdfZGVidWdmc19zaG93KHN0cnVjdCBzZXFfZmlsZSAqbSwgdm9pZCAqdW51c2VkKVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2RlYnVnZnMuYy00MzAtXHR2Y2FwX2xvY2soaW5mby1cdTAwM2VhZG1pbik7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9kZWJ1Z2ZzLmM6NDMxOlx0cmV0ID0gdmNhcF9zaG93X2FkbWluX3JhdyhpbmZvLVx1MDAzZXZjdHJsLCBpbmZvLVx1MDAzZWFkbWluLCBcdTAwMjZvdXQpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfZGVidWdmcy5jLTQzMi1cdHZjYXBfdW5sb2NrKGluZm8tXHUwMDNlYWRtaW4pO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2RlYnVnZnNfa3VuaXQuYz0zNDQ9c3RhdGljIHZvaWQgdmNhcF9hcGlfc2hvd19hZG1pbl9yYXdfdGVzdChzdHJ1Y3Qga3VuaXQgKnRlc3QpXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfZGVidWdmc19rdW5pdC5jLTM3NS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2RlYnVnZnNfa3VuaXQuYzozNzY6XHRyZXQgPSB2Y2FwX3Nob3dfYWRtaW5fcmF3KFx1MDAyNnRlc3RfdmN0cmwsIFx1MDAyNmFkbWluLCBcdTAwMjZvdXQpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfZGVidWdmc19rdW5pdC5jLTM3Ny1cdEtVTklUX0VYUEVDVF9FUSh0ZXN0LCAwLCByZXQpO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2RlYnVnZnNfa3VuaXQuYz00MDI9c3RhdGljIHZvaWQgdmNhcF9hcGlfc2hvd19hZG1pbl90ZXN0KHN0cnVjdCBrdW5pdCAqdGVzdClcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9kZWJ1Z2ZzX2t1bml0LmMtNDIwLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfZGVidWdmc19rdW5pdC5jOjQyMTpcdHZjYXBfc2hvd19hZG1pbl9pbmZvKFx1MDAyNnRlc3RfdmN0cmwsIFx1MDAyNmFkbWluLCBcdTAwMjZvdXQpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfZGVidWdmc19rdW5pdC5jLTQyMi1cdGZvciAoaWR4ID0gMDsgaWR4IFx1MDAzYyB0ZXN0X3ByX2J1ZmZlcmlkeDsgJiM0MzsmIzQzO2lkeCkge1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2RlYnVnZnNfa3VuaXQuYz00NzU9c3RhdGljIHZvaWQgdmNhcF9hcGlfc2hvd19hZG1pbl9ydWxlX3Rlc3Qoc3RydWN0IGt1bml0ICp0ZXN0KVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2RlYnVnZnNfa3VuaXQuYy01MzItXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9kZWJ1Z2ZzX2t1bml0LmM6NTMzOlx0cmV0ID0gdmNhcF9zaG93X2FkbWluKFx1MDAyNnRlc3RfdmN0cmwsIFx1MDAyNmFkbWluLCBcdTAwMjZvdXQpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfZGVidWdmc19rdW5pdC5jLTUzNC1cdEtVTklUX0VYUEVDVF9FUSh0ZXN0LCAwLCByZXQpO1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjQ3LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yOSAxMDoyOTwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA0Mzc3OAoJCQkJCQkJb3V0cHV0OiA1MwoJCQkJCQkJdGhvdWdodHM6IDY4CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Pa2F5LCBsZXQgbWUgYnJlYWsgdGhpcyBkb3duLgoKKipUcmFjaW5nIHRoZSBBZG1pbiBSdWxlIEZsb3cqKgoKUmlnaHQsIHNvIEkgc2VlIHRoYXQgYHZjYXBfc2hvd19hZG1pbmAgaXMgYmVpbmcgaW52b2tlZCBieSBgdmNhcF9hcGlfc2hvd19hZG1pbl9ydWxlX3Rlc3RgIHdpdGhpbiB0aGUgYHZjYXBfYXBpX2RlYnVnZnNfa3VuaXQuY2AgZmlsZS4gSW50ZXJlc3RpbmcuIE15IG1lbnRhbCBtYXAgaW1tZWRpYXRlbHkgdGVsbHMgbWUgdGhhdCYjMzk7cyBhIGtleSBsaW5rYWdlIGZvciBhZG1pbmlzdHJhdGl2ZSBydWxlIHZpZXdpbmcgZnVuY3Rpb25hbGl0eS4gQW5kIEkga25vdyBJIG5lZWQgdG8gdW5kZXJzdGFuZCB0aGF0IGFkbWluaXN0cmF0aXZlIHJ1bGUgdmlld2luZyBmdW5jdGlvbmFsaXR5LgoKRnVydGhlcm1vcmUsIEkgbm90ZSB0aGF0IGB2Y2FwX3Nob3dfYWRtaW5gLCBpbiB0dXJuLCBpcyBjYWxsaW5nIGB2Y2FwX2RlY29kZV9ydWxlYC4gVGhhdCYjMzk7cyBpbXBvcnRhbnQuIGB2Y2FwX2RlY29kZV9ydWxlYCBpcyBhbG1vc3QgY2VydGFpbmx5IHdoZXJlIHRoZSBhY3R1YWwgcGFyc2luZyBhbmQgaW50ZXJwcmV0YXRpb24gb2YgdGhlIHJ1bGVzIGlzIGhhcHBlbmluZy4gSSBuZWVkIHRvIGNvbmZpcm0gdGhpcyBxdWlja2x5LCBidXQgdGhhdCBjb25uZWN0aW9uIGlzIGNyaXRpY2FsIGZvciBob3cgdGhpcyBlbnRpcmUgc3RydWN0dXJlIG9wZXJhdGVzLiBJIG5lZWQgdG8gbWFrZSBzdXJlIG15IHVuZGVyc3RhbmRpbmcgaXMgY29ycmVjdCBhbmQgdGhhdCBJIGhhdmUgdGhlIGNvcnJlY3QgY29ubmVjdGlvbnMuIFRpbWUgdG8gc3RhcnQgdGhlIHZlcmlmaWNhdGlvbiBwcm9jZXNzLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjQ4LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yOSAxMDoyOTwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPnJlYWQtZmlsZTwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RmlsZSYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2RlYnVnZnNfa3VuaXQuYyYjMzQ7LAogICYjMzQ7Rmlyc3RMaW5lJiMzNDs6IDUyMCwKICAmIzM0O0xpbmVDb3VudCYjMzQ7OiAyMAp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7Q29udGVudHMmIzM0OzogJiMzNDsgNTIwOlx0XHRcdC5hY3Rpb25zZXRfc3cgPSAzLFxuIDUyMTpcdFx0XHQuYWN0aW9uc2V0X3N3X3JlZ3MgPSA0LFxuIDUyMjpcdFx0XHQuYWRkciA9IDc5NCxcbiA1MjM6XHRcdFx0LnZjdHJsID0gXHUwMDI2dGVzdF92Y3RybCxcbiA1MjQ6XHRcdH07XG4gNTI1Olx0XHRzdHJ1Y3QgdmNhcF9vdXRwdXRfcHJpbnQgb3V0ID0ge1xuIDUyNjpcdFx0XHQucHJmID0gKHZvaWQgKil0ZXN0X3ByZixcbiA1Mjc6XHRcdH07XG4gNTI4Olx0XHRpbnQgcmV0LCBpZHg7XG4gNTI5Olx0XG4gNTMwOlx0XHR2Y2FwX3Rlc3RfYXBpX2luaXQoXHUwMDI2YWRtaW4pO1xuIDUzMTpcdFx0bGlzdF9hZGRfdGFpbChcdTAwMjZyaS5saXN0LCBcdTAwMjZhZG1pbi5ydWxlcyk7XG4gNTMyOlx0XG4gNTMzOlx0XHRyZXQgPSB2Y2FwX3Nob3dfYWRtaW4oXHUwMDI2dGVzdF92Y3RybCwgXHUwMDI2YWRtaW4sIFx1MDAyNm91dCk7XG4gNTM0Olx0XHRLVU5JVF9FWFBFQ1RfRVEodGVzdCwgMCwgcmV0KTtcbiA1MzU6XHRcdGZvciAoaWR4ID0gMDsgaWR4IFx1MDAzYyB0ZXN0X3ByX2J1ZmZlcmlkeDsgJiM0MzsmIzQzO2lkeCkge1xuIDUzNjpcdFx0XHQvKiBwcl9pbmZvKFwmIzM0O2xvZ1slMDJkXTogJXNcJiMzNDssIGlkeCwgdGVzdF9wcl9idWZmZXJbaWR4XSk7ICovXG4gNTM3Olx0XHRcdEtVTklUX0VYUEVDVF9TVFJFUSh0ZXN0LCB0ZXN0X2FkbWluX2V4cGVjdFtpZHhdLFxuIDUzODpcdFx0XHRcdFx0ICAgdGVzdF9wcl9idWZmZXJbaWR4XSk7XG4gNTM5Olx0XHR9XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+NDkvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzI5IDEwOjI5PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDQ0NDQ5CgkJCQkJCQlvdXRwdXQ6IDUwCgkJCQkJCQl0aG91Z2h0czogNjAKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPk9rYXksIGhlcmUmIzM5O3MgdGhlIHN1bW1hcnksIGZyYW1lZCBhcyBteSB0aG91Z2h0IHByb2Nlc3M6CgoqKlRyYWNpbmcgdGhlIFJ1bGUgRGVjb2RpbmcgTG9naWMqKgoKWWVzISBJJiMzOTt2ZSBjb25maXJtZWQgdGhhdCB0aGUgYHZjYXBfYXBpX3Nob3dfYWRtaW5fcnVsZV90ZXN0YCBmdW5jdGlvbiwgYXMgZXhwZWN0ZWQsIHVsdGltYXRlbHkgY2FsbHMgYHZjYXBfc2hvd19hZG1pbmAuIEFuZCBgdmNhcF9zaG93X2FkbWluYCB0aGVuIGxldmVyYWdlcyBgdmNhcF9kZWNvZGVfcnVsZWAuIFRoYXQmIzM5O3MgdGhlIGZsb3cgSSBuZWVkIHRvIHVuZGVyc3RhbmQuIE5vdyBJIHNob3VsZCBmb2N1cyBvbiBgdmNhcF9zaG93X2FkbWluYCwgc3BlY2lmaWNhbGx5IGluIGB2Y2FwX2FwaV9kZWJ1Z2ZzLmNgLiBMZXQmIzM5O3MgZ2V0IGludG8gdGhlIGRldGFpbHMgdGhlcmUgYW5kIHNlZSBob3cgdGhhdCBkZWNvZGluZyBwcm9jZXNzIGFjdHVhbGx5IHVuZm9sZHMuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+NTAvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzI5IDEwOjI5PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+cmVhZC1maWxlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtGaWxlJiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfZGVidWdmcy5jJiMzNDssCiAgJiMzNDtGaXJzdExpbmUmIzM0OzogMjkwLAogICYjMzQ7TGluZUNvdW50JiMzNDs6IDI1Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtDb250ZW50cyYjMzQ7OiAmIzM0OyAyOTA6XHR9XG4gMjkxOlx0XG4gMjkyOlx0c3RhdGljIGludCB2Y2FwX3Nob3dfYWRtaW4oc3RydWN0IHZjYXBfY29udHJvbCAqdmN0cmwsXG4gMjkzOlx0XHRcdFx0ICAgc3RydWN0IHZjYXBfYWRtaW4gKmFkbWluLFxuIDI5NDpcdFx0XHRcdCAgIHN0cnVjdCB2Y2FwX291dHB1dF9wcmludCAqb3V0KVxuIDI5NTpcdHtcbiAyOTY6XHRcdHN0cnVjdCB2Y2FwX3J1bGVfaW50ZXJuYWwgKmVsZW07XG4gMjk3Olx0XHRzdHJ1Y3QgdmNhcF9ydWxlICp2cnVsZTtcbiAyOTg6XHRcdGludCByZXQgPSAwO1xuIDI5OTpcdFxuIDMwMDpcdFx0dmNhcF9zaG93X2FkbWluX2luZm8odmN0cmwsIGFkbWluLCBvdXQpO1xuIDMwMTpcdFx0bGlzdF9mb3JfZWFjaF9lbnRyeShlbGVtLCBcdTAwMjZhZG1pbi1cdTAwM2VydWxlcywgbGlzdCkge1xuIDMwMjpcdFx0XHR2cnVsZSA9IHZjYXBfZGVjb2RlX3J1bGUoZWxlbSk7XG4gMzAzOlx0XHRcdGlmIChJU19FUlIodnJ1bGUpKSB7XG4gMzA0Olx0XHRcdFx0cmV0ID0gUFRSX0VSUih2cnVsZSk7XG4gMzA1Olx0XHRcdFx0YnJlYWs7XG4gMzA2Olx0XHRcdH1cbiAzMDc6XHRcbiAzMDg6XHRcdFx0b3V0LVx1MDAzZXByZihvdXQtXHUwMDNlZHN0LCBcJiMzNDtcXG5cJiMzNDspO1xuIDMwOTpcdFx0XHR2Y2FwX3Nob3dfYWRtaW5fcnVsZSh2Y3RybCwgYWRtaW4sIG91dCwgdG9faW50cnVsZSh2cnVsZSkpO1xuIDMxMDpcdFx0XHR2Y2FwX2ZyZWVfcnVsZSh2cnVsZSk7XG4gMzExOlx0XHR9XG4gMzEyOlx0XHRyZXR1cm4gcmV0O1xuIDMxMzpcdH1cbiAzMTQ6XHRcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD41MS8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjkgMTA6Mjk8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogNDUwNjMKCQkJCQkJCW91dHB1dDogNDgKCQkJCQkJCXRob3VnaHRzOiAxMTUKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqQW5hbHl6aW5nIHRoZSBgdmNhcF9kZWNvZGVfcnVsZWAgRml4KioKCk9rYXksIHNvIHRoZSBLVW5pdCB0ZXN0cyBjb25maXJtIHRoYXQgYHZjYXBfZGVjb2RlX3J1bGVgIGlzIGluZGVlZCBhY2Nlc3NpYmxlIGFuZCwgdGhlcmVmb3JlLCB0ZXN0YWJsZS4gVGhlIHBhdGNoIGluIHF1ZXN0aW9uIGFkZHMgYSBjYWxsIHRvIGB2Y2FwX2ZyZWVfcnVsZSgmYW1wO3JpLSZndDtkYXRhKWAgb24gZXJyb3Igd2l0aGluIGB2Y2FwX2RlY29kZV9ydWxlYC4gVGhhdCYjMzk7cyBnb29kLiBNeSBpbW1lZGlhdGUgdGhvdWdodCBpcywgaXMgdGhpcyBhIHdvcnRod2hpbGUgZnV6emluZyB0YXJnZXQgbm93IHRoYXQgaXQmIzM5O3MgZml4ZWQ/IEJlZm9yZSBJIGp1bXAgdG8gY29uY2x1c2lvbnMsIGxldCYjMzk7cyBicmVhayB0aGlzIGRvd24gZnVydGhlci4gVGhlIHBhdGNoIGFkZHJlc3NlcyBhIG1lbW9yeSBsZWFrIHdpdGhpbiBgdmNhcF9kZWNvZGVfcnVsZWAgb24gdGhlc2UgZXJyb3IgcGF0aHMuIEdvb2QgY2F0Y2guIE5vdywgYHZjYXBfZGVjb2RlX3J1bGVgIChvciByYXRoZXIsIEkgbmVlZCB0byBjb25maXJtIGB2Y2FwX2FsbG9jX3J1bGVgIGlzIGNhbGxlZCBpbnNpZGUgaXQpIGlzIGFsbG9jYXRpbmcgbWVtb3J5LiBJIG5lZWQgdG8gbWFrZSBzdXJlIEkgYW0gdHJhY2luZyBiYWNrIHRvIHRoZSBhbGxvY2F0aW9uIG9mIHRoZSBtZW1vcnkgd2l0aCB0aGUgY2FsbC4gTGV0JiMzOTtzIHRyYWNlIHRocm91Z2ggdGhlIGltcGxlbWVudGF0aW9uIG9mIGB2Y2FwX2RlY29kZV9ydWxlYCB0byBjb25maXJtIHdoZXJlIG1lbW9yeSBpcyBhY3R1YWxseSBiZWluZyBhbGxvY2F0ZWQgYW5kIGhvdyB0aGUgZnJlZSBpcyBjb25uZWN0ZWQuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+NTIvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzI5IDEwOjI5PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+cmVhZC1maWxlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtGaWxlJiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGkuYyYjMzQ7LAogICYjMzQ7Rmlyc3RMaW5lJiMzNDs6IDI0MTYsCiAgJiMzNDtMaW5lQ291bnQmIzM0OzogMzUKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0NvbnRlbnRzJiMzNDs6ICYjMzQ7MjQxNjpcdHN0cnVjdCB2Y2FwX3J1bGUgKnZjYXBfZGVjb2RlX3J1bGUoc3RydWN0IHZjYXBfcnVsZV9pbnRlcm5hbCAqZWxlbSlcbjI0MTc6XHR7XG4yNDE4Olx0XHRzdHJ1Y3QgdmNhcF9ydWxlX2ludGVybmFsICpyaTtcbjI0MTk6XHRcdGludCBlcnI7XG4yNDIwOlx0XG4yNDIxOlx0XHRyaSA9IHZjYXBfZHVwX3J1bGUoZWxlbSwgZWxlbS1cdTAwM2VzdGF0ZSA9PSBWQ0FQX1JTX0RJU0FCTEVEKTtcbjI0MjI6XHRcdGlmIChJU19FUlIocmkpKVxuMjQyMzpcdFx0XHRyZXR1cm4gRVJSX0NBU1QocmkpO1xuMjQyNDpcdFxuMjQyNTpcdFx0aWYgKHJpLVx1MDAzZXN0YXRlID09IFZDQVBfUlNfRElTQUJMRUQpXG4yNDI2Olx0XHRcdGdvdG8gb3V0O1xuMjQyNzpcdFxuMjQyODpcdFx0ZXJyID0gdmNhcF9yZWFkX3J1bGUocmkpO1xuMjQyOTpcdFx0aWYgKGVycilcbjI0MzA6XHRcdFx0Z290byBvdXRfZXJyO1xuMjQzMTpcdFxuMjQzMjpcdFx0ZXJyID0gdmNhcF9kZWNvZGVfa2V5c2V0KHJpKTtcbjI0MzM6XHRcdGlmIChlcnIpXG4yNDM0Olx0XHRcdGdvdG8gb3V0X2VycjtcbjI0MzU6XHRcbjI0MzY6XHRcdGVyciA9IHZjYXBfZGVjb2RlX2FjdGlvbnNldChyaSk7XG4yNDM3Olx0XHRpZiAoZXJyKVxuMjQzODpcdFx0XHRnb3RvIG91dF9lcnI7XG4yNDM5Olx0XG4yNDQwOlx0b3V0OlxuMjQ0MTpcdFx0cmV0dXJuIFx1MDAyNnJpLVx1MDAzZWRhdGE7XG4yNDQyOlx0b3V0X2VycjpcbjI0NDM6XHRcdHZjYXBfZnJlZV9ydWxlKFx1MDAyNnJpLVx1MDAzZWRhdGEpO1xuMjQ0NDpcdFx0cmV0dXJuIEVSUl9QVFIoZXJyKTtcbjI0NDU6XHR9XG4yNDQ2Olx0XG4yNDQ3Olx0c3RydWN0IHZjYXBfcnVsZSAqdmNhcF9nZXRfcnVsZShzdHJ1Y3QgdmNhcF9jb250cm9sICp2Y3RybCwgdTMyIGlkKVxuMjQ0ODpcdHtcbjI0NDk6XHRcdHN0cnVjdCB2Y2FwX3J1bGVfaW50ZXJuYWwgKmVsZW07XG4yNDUwOlx0XHRzdHJ1Y3QgdmNhcF9ydWxlICpydWxlO1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjUzLzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yOSAxMDoyOTwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA0NTkzMgoJCQkJCQkJb3V0cHV0OiAzNwoJCQkJCQkJdGhvdWdodHM6IDM2MgoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipBbmFseXppbmcgYSBNZW1vcnkgTGVhayBGaXgqKgoKT2theSwgc28gYHZjYXBfZHVwX3J1bGVgIGFsbG9jYXRlcyBtZW1vcnkgZm9yIGByaWAsIHRoYXQmIzM5O3MgY2xlYXIuIFRoZSBjcml0aWNhbCBwb2ludCBpcyB0aGF0IHByZXZpb3VzbHksIGlmIGB2Y2FwX3JlYWRfcnVsZWAsIGB2Y2FwX2RlY29kZV9rZXlzZXRgLCBvciBgdmNhcF9kZWNvZGVfYWN0aW9uc2V0YCBmYWlsZWQsIGl0IHJldHVybmVkIGFuIGVycm9yICp3aXRob3V0KiBmcmVlaW5nIGByaWAuICBBIGNsYXNzaWMgbWVtb3J5IGxlYWsgc2l0dWF0aW9uLiBUaGUgY2hhbmdlIGlzIHRoYXQgbm93IGl0IGNvcnJlY3RseSBjYWxscyBgdmNhcF9mcmVlX3J1bGUoJmFtcDtyaS0mZ3Q7ZGF0YSlgIGJlZm9yZSByZXR1cm5pbmcsIHdoaWNoIGZpeGVzIHRoZSBtZW1vcnkgbGVhayDigJMgYSBnb29kLCBuZWNlc3NhcnkgZnVuY3Rpb25hbCBjaGFuZ2UuCgpUaGUgbmV4dCBxdWVzdGlvbiBpcyBhbHdheXMsICYjMzQ7aXMgdGhpcyBmaXggYWN0dWFsbHkgcmVsZXZhbnQgaW4gdGhlIGVudmlyb25tZW50cyB3ZSBjYXJlIGFib3V0PyYjMzQ7IFNvLCBob3cgaXMgdGhpcyBjb2RlcGF0aCByZWFjaGVkIGluLCBmb3IgZXhhbXBsZSwgYSB2aXJ0dWFsaXplZCBzZXR1cD8gQWgsIHllcywgdGhlIEtVbml0IHRlc3RzLiBUaGUgS1VuaXQgZnJhbWV3b3JrIGNhbiB0cmlnZ2VyIHRob3NlLiAgSSBzZWUgdGhhdCBgdmNhcF9hcGlfc2hvd19hZG1pbl9ydWxlX3Rlc3RgIHNwZWNpZmljYWxseSBjYWxscyB0aGlzIGNvZGUuIEJ1dCwgaG93ICpkb2VzKiB0aGUgS1VuaXQgZ2V0IHRyaWdnZXJlZD8gU3l6a2FsbGVyLCByaWdodD8gIFN5emthbGxlciBjYW4gdHJpZ2dlciB0aGVtIGlmIHRoZXkgYXJlIG1vZHVsZXMsIG9yIGJ1aWx0LWluLCBidXQgdXN1YWxseSBkb2VzbiYjMzk7dCBmdXp6IHRoZW0gZGlyZWN0bHkgdW5sZXNzIHRoZXkgaGF2ZSBleHBvc2VkIGludGVyZmFjZXMgbGlrZSBkZWJ1Z2ZzLgoKV2FpdCBhIHNlY29uZOKApiBgdmNhcF9zaG93X2FkbWluYCAqaXMqIHJlYWNoYWJsZSB2aWEgZGVidWdmcyEgIFRoYXQmIzM5O3MgYSBwb3RlbnRpYWwgYXR0YWNrIHZlY3Rvci4gIExldCYjMzk7cyBzZWXigKYgIGB2Y2FwX2FwaV9kZWJ1Z2ZzLmNgIGNyZWF0ZXMgdGhlIGRlYnVnZnMgZW50cmllcywgc28gdGhhdCYjMzk7cyB0aGUgc3RhcnRpbmcgcG9pbnQuICBCdXQsIGFzIEkgcmVjYWxsLCB0aGUgZGVidWdmcyBlbnRyaWVzIGFyZSBvbmx5ICphY3R1YWxseSogY3JlYXRlZCBpZiBhIGNsaWVudCBkcml2ZXIsIGxpa2UgU3Bhcng1IG9yIExhbjk2NngsIGluaXRpYWxpemVzIHRoZSBWQ0FQIGNvbnRyb2wgc3RydWN0dXJlIGFuZCB0aGVuIGNhbGxzIGB2Y2FwX2RlYnVnZnNfaW5pdGAuIFRob3NlIGRyaXZlcnMgYXJlIGZvciBzcGVjaWZpYyBwaHlzaWNhbCBoYXJkd2FyZSwgdGhvdWdoLCBsaWtlIFNwYXJ4NSBhbmQgTGFuOTY2eC4gVGhleSB3b24mIzM5O3QgcHJvYmUgaW4gUUVNVSwgc28gYHZjYXBfZGVidWdmc19pbml0YCBpcyBuZXZlciBjYWxsZWQsIGFuZCB0aGUgZGVidWdmcyBlbnRyaWVzIHdvbiYjMzk7dCBleGlzdC4KClNvLCB0aGUgbmV4dCBzdGVwIGlzIHRvIG1ha2Ugc3VyZSBub3RoaW5nIGVsc2UgY2FsbHMgYHZjYXBfZGVidWdmc19pbml0YCwgb3IgdXNlcyBWQ0FQIGF0IGFsbC4gSSBuZWVkIHRvIHZlcmlmeSB0aGF0LgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjU0LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yOSAxMDoyOTwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+RXJyb3I6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5ubyBtYXRjaGVzPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O3ZjYXBfZGVidWdmc19pbml0JiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwLyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtlcnJvciYjMzQ7OiAmIzM0O25vIG1hdGNoZXMmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+NTUvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzI5IDEwOjI5PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDQ2ODAxCgkJCQkJCQlvdXRwdXQ6IDM1CgkJCQkJCQl0aG91Z2h0czogMTAKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPk9rYXksIGhlcmUmIzM5O3MgdGhlIHN1bW1hcnksIGFzc3VtaW5nIEkmIzM5O20gdGhlIG9uZSBoYXZpbmcgdGhlc2UgdGhvdWdodHMgYW5kIEkgYW0gYW4gZXhwZXJ0IGluIG15IGZpZWxkOgoKKipTZWNvbmQtR3Vlc3NpbmcgTm9tZW5jbGF0dXJlKioKCkhtbSwgSSYjMzk7bSBqdXN0IHJldmlld2luZyB0aGlzIGFnYWluLCBhbmQgaXTigJlzIG5hZ2dpbmcgYXQgbWUuIElzIHRoaXMgc3BlY2lmaWMgdGVybSDigJMgdGhlIG9uZSBJJiMzOTttIHVzaW5nLCB0aGUgb25lIEkgKnRoaW5rKiBpcyBzdGFuZGFyZCDigJMgaXMgaXQgcmVhbGx5IHRoZSBtb3N0IGFwcHJvcHJpYXRlPyBJJiMzOTttIHN0YXJ0aW5nIHRvIGdldCB0aGlzIGZlZWxpbmcgdGhhdCBpdCBtaWdodCBiZSBjYWxsZWQgc29tZXRoaW5nIGRpZmZlcmVudCBpbiB0aGlzIHBhcnRpY3VsYXIgY29udGV4dCwgb3IgcGVyaGFwcyB0aGVyZSYjMzk7cyBhIG1vcmUgY3VycmVudCBvciBwcmVjaXNlIGxhYmVsIEkmIzM5O20gb3Zlcmxvb2tpbmcuIEkga25vdyB0aGUgYmFzaWNzLCB0aGUgY29yZSBjb25jZXB0cywgYnV0IEkmIzM5O20gcXVlc3Rpb25pbmcgd2hldGhlciBJJiMzOTt2ZSBtaXNzZWQgYSBudWFuY2UgaW4gdGhlIHRlcm1pbm9sb2d5LiBJIGRvbiYjMzk7dCB3YW50IHRvIHNvdW5kIG91dGRhdGVkIG9yLCB3b3JzZSwgbWlzdW5kZXJzdGFuZCBzb21ldGhpbmcgY3JpdGljYWwsIGp1c3QgYmVjYXVzZSBvZiBteSBhc3N1bXB0aW9ucyBhYm91dCB0aGUgdGVybWlub2xvZ3kuIFRpbWUgdG8gZG91YmxlLWNoZWNrIG15IHNvdXJjZXMgYW5kIG1ha2Ugc3VyZSBJJiMzOTttIHVzaW5nIHRoZSBtb3N0IGFjY3VyYXRlIGFuZCBhY2NlcHRlZCBkZXNpZ25hdGlvbi4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD41Ni8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjkgMTA6Mjk8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7ZGVidWdmcyYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwLyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtkcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC9NYWtlZmlsZT03PW9iai0kKENPTkZJR19WQ0FQX0tVTklUX1RFU1QpICYjNDM7PSAgdmNhcF9tb2RlbF9rdW5pdC5vXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC9NYWtlZmlsZTo4OnZjYXAtJChDT05GSUdfREVCVUdfRlMpICYjNDM7PSB2Y2FwX2FwaV9kZWJ1Z2ZzLm9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL01ha2VmaWxlLTktXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfZGVidWdmcy5jLTgtI2luY2x1ZGUgXCYjMzQ7dmNhcF9hcGlfcHJpdmF0ZS5oXCYjMzQ7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9kZWJ1Z2ZzLmM6OTojaW5jbHVkZSBcJiMzNDt2Y2FwX2FwaV9kZWJ1Z2ZzLmhcJiMzNDtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2RlYnVnZnMuYy0xMC1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2RlYnVnZnMuYzoxMTpzdHJ1Y3QgdmNhcF9hZG1pbl9kZWJ1Z2ZzX2luZm8ge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfZGVidWdmcy5jLTEyLVx0c3RydWN0IHZjYXBfY29udHJvbCAqdmN0cmw7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfZGVidWdmcy5jLTE1LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfZGVidWdmcy5jOjE2OnN0cnVjdCB2Y2FwX3BvcnRfZGVidWdmc19pbmZvIHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2RlYnVnZnMuYy0xNy1cdHN0cnVjdCB2Y2FwX2NvbnRyb2wgKnZjdHJsO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2RlYnVnZnMuYy0yMS0vKiBEdW1wIHRoZSBrZXlmaWVsZHMgdmFsdWUgYW5kIG1hc2sgdmFsdWVzICovXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9kZWJ1Z2ZzLmM6MjI6c3RhdGljIHZvaWQgdmNhcF9kZWJ1Z2ZzX3Nob3dfcnVsZV9rZXlmaWVsZChzdHJ1Y3QgdmNhcF9jb250cm9sICp2Y3RybCxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2RlYnVnZnMuYy0yMy1cdFx0XHRcdFx0ICAgIHN0cnVjdCB2Y2FwX291dHB1dF9wcmludCAqb3V0LFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2RlYnVnZnMuYz0xMTY9c3RhdGljIHZvaWRcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2RlYnVnZnMuYzoxMTc6dmNhcF9kZWJ1Z2ZzX3Nob3dfcnVsZV9hY3Rpb25maWVsZChzdHJ1Y3QgdmNhcF9jb250cm9sICp2Y3RybCxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2RlYnVnZnMuYy0xMTgtXHRcdFx0XHQgICBzdHJ1Y3QgdmNhcF9vdXRwdXRfcHJpbnQgKm91dCxcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9kZWJ1Z2ZzLmMtMTU3LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfZGVidWdmcy5jOjE1ODpzdGF0aWMgaW50IHZjYXBfZGVidWdmc19zaG93X2tleXNldHMoc3RydWN0IHZjYXBfcnVsZV9pbnRlcm5hbCAqcmksXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9kZWJ1Z2ZzLmMtMTU5LVx0XHRcdFx0ICAgICBzdHJ1Y3QgdmNhcF9vdXRwdXRfcHJpbnQgKm91dClcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9kZWJ1Z2ZzLmMtMTkwLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfZGVidWdmcy5jOjE5MTpzdGF0aWMgaW50IHZjYXBfZGVidWdmc19zaG93X3J1bGVfa2V5c2V0KHN0cnVjdCB2Y2FwX3J1bGVfaW50ZXJuYWwgKnJpLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfZGVidWdmcy5jLTE5Mi1cdFx0XHRcdFx0IHN0cnVjdCB2Y2FwX291dHB1dF9wcmludCAqb3V0KVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2RlYnVnZnMuYy0xOTgtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9kZWJ1Z2ZzLmM6MTk5Olx0dmNhcF9kZWJ1Z2ZzX3Nob3dfa2V5c2V0cyhyaSwgb3V0KTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2RlYnVnZnMuYy0yMDAtXHRvdXQtXHUwMDNlcHJmKG91dC1cdTAwM2Vkc3QsIFwmIzM0OyAga2V5c2V0X3N3OiAlZFxcblwmIzM0OywgcmktXHUwMDNla2V5c2V0X3N3KTtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9kZWJ1Z2ZzLmMtMjA0LVx0XHRrZXlmaWVsZCA9IHZjYXBfa2V5ZmllbGRzKHZjdHJsLCBhZG1pbi1cdTAwM2V2dHlwZSwgcmktXHUwMDNlZGF0YS5rZXlzZXQpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfZGVidWdmcy5jOjIwNTpcdFx0dmNhcF9kZWJ1Z2ZzX3Nob3dfcnVsZV9rZXlmaWVsZCh2Y3RybCwgb3V0LCBja2YtXHUwMDNlY3RybC5rZXksXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9kZWJ1Z2ZzLmMtMjA2LVx0XHRcdFx0XHRcdGtleWZpZWxkLCBcdTAwMjZja2YtXHUwMDNlZGF0YSk7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfZGVidWdmcy5jLTIxMS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2RlYnVnZnMuYzoyMTI6c3RhdGljIGludCB2Y2FwX2RlYnVnZnNfc2hvd19ydWxlX2FjdGlvbnNldChzdHJ1Y3QgdmNhcF9ydWxlX2ludGVybmFsICpyaSxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2RlYnVnZnMuYy0yMTMtXHRcdFx0XHRcdCAgICBzdHJ1Y3QgdmNhcF9vdXRwdXRfcHJpbnQgKm91dClcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9kZWJ1Z2ZzLmMtMjI3LVx0XHRcdFx0XHRcdHJpLVx1MDAzZWRhdGEuYWN0aW9uc2V0KTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2RlYnVnZnMuYzoyMjg6XHRcdHZjYXBfZGVidWdmc19zaG93X3J1bGVfYWN0aW9uZmllbGQodmN0cmwsIG91dCwgY2FmLVx1MDAzZWN0cmwuYWN0aW9uLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfZGVidWdmcy5jLTIyOS1cdFx0XHRcdFx0XHQgICBhY3Rpb25maWVsZCxcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9kZWJ1Z2ZzLmM9MjM2PXN0YXRpYyB2b2lkIHZjYXBfc2hvd19hZG1pbl9ydWxlKHN0cnVjdCB2Y2FwX2NvbnRyb2wgKnZjdHJsLFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2RlYnVnZnMuYy0yNjEtXHR9XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9kZWJ1Z2ZzLmM6MjYyOlx0dmNhcF9kZWJ1Z2ZzX3Nob3dfcnVsZV9rZXlzZXQocmksIG91dCk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9kZWJ1Z2ZzLmM6MjYzOlx0dmNhcF9kZWJ1Z2ZzX3Nob3dfcnVsZV9hY3Rpb25zZXQocmksIG91dCk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9kZWJ1Z2ZzLmMtMjY0LX1cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9kZWJ1Z2ZzLmM9MzE1PXN0YXRpYyBpbnQgdmNhcF9zaG93X2FkbWluX3JhdyhzdHJ1Y3QgdmNhcF9jb250cm9sICp2Y3RybCxcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9kZWJ1Z2ZzLmMtMzY3LS8qIFNob3cgdGhlIHBvcnQgY29uZmlndXJhdGlvbiBhbmQgc3RhdHVzICovXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9kZWJ1Z2ZzLmM6MzY4OnN0YXRpYyBpbnQgdmNhcF9wb3J0X2RlYnVnZnNfc2hvdyhzdHJ1Y3Qgc2VxX2ZpbGUgKm0sIHZvaWQgKnVudXNlZClcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2RlYnVnZnMuYy0zNjkte1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfZGVidWdmcy5jOjM3MDpcdHN0cnVjdCB2Y2FwX3BvcnRfZGVidWdmc19pbmZvICppbmZvID0gbS1cdTAwM2Vwcml2YXRlO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfZGVidWdmcy5jLTM3MS1cdHN0cnVjdCB2Y2FwX2FkbWluICphZG1pbjtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9kZWJ1Z2ZzLmMtMzgzLX1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2RlYnVnZnMuYzozODQ6REVGSU5FX1NIT1dfQVRUUklCVVRFKHZjYXBfcG9ydF9kZWJ1Z2ZzKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2RlYnVnZnMuYy0zODUtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9kZWJ1Z2ZzLmM6Mzg2OnZvaWQgdmNhcF9wb3J0X2RlYnVnZnMoc3RydWN0IGRldmljZSAqZGV2LCBzdHJ1Y3QgZGVudHJ5ICpwYXJlbnQsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9kZWJ1Z2ZzLmMtMzg3LVx0XHQgICAgICAgc3RydWN0IHZjYXBfY29udHJvbCAqdmN0cmwsXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfZGVidWdmcy5jLTM4OS17XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9kZWJ1Z2ZzLmM6MzkwOlx0c3RydWN0IHZjYXBfcG9ydF9kZWJ1Z2ZzX2luZm8gKmluZm87XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9kZWJ1Z2ZzLmMtMzkxLVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2RlYnVnZnMuYy0zOTctXHRpbmZvLVx1MDAzZW5kZXYgPSBuZGV2O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfZGVidWdmcy5jOjM5ODpcdGRlYnVnZnNfY3JlYXRlX2ZpbGUobmV0ZGV2X25hbWUobmRldiksIDA0NDQsIHBhcmVudCwgaW5mbyxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2RlYnVnZnMuYzozOTk6XHRcdFx0ICAgIFx1MDAyNnZjYXBfcG9ydF9kZWJ1Z2ZzX2ZvcHMpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfZGVidWdmcy5jLTQwMC19XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9kZWJ1Z2ZzLmM6NDAxOkVYUE9SVF9TWU1CT0xfR1BMKHZjYXBfcG9ydF9kZWJ1Z2ZzKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2RlYnVnZnMuYy00MDItXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9kZWJ1Z2ZzLmMtNDAzLS8qIFNob3cgdGhlIGZ1bGwgVkNBUCBpbnN0YW5jZSBkYXRhIChydWxlcyB3aXRoIGFsbCBmaWVsZHMpICovXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9kZWJ1Z2ZzLmM6NDA0OnN0YXRpYyBpbnQgdmNhcF9kZWJ1Z2ZzX3Nob3coc3RydWN0IHNlcV9maWxlICptLCB2b2lkICp1bnVzZWQpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9kZWJ1Z2ZzLmMtNDA1LXtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2RlYnVnZnMuYzo0MDY6XHRzdHJ1Y3QgdmNhcF9hZG1pbl9kZWJ1Z2ZzX2luZm8gKmluZm8gPSBtLVx1MDAzZXByaXZhdGU7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9kZWJ1Z2ZzLmMtNDA3LVx0c3RydWN0IHZjYXBfb3V0cHV0X3ByaW50IG91dCA9IHtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9kZWJ1Z2ZzLmMtNDE3LX1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2RlYnVnZnMuYzo0MTg6REVGSU5FX1NIT1dfQVRUUklCVVRFKHZjYXBfZGVidWdmcyk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9kZWJ1Z2ZzLmMtNDE5LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfZGVidWdmcy5jLTQyMC0vKiBTaG93IHRoZSByYXcgVkNBUCBpbnN0YW5jZSBkYXRhIChydWxlcyB3aXRoIGFkZHJlc3MgaW5mbykgKi9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2RlYnVnZnMuYzo0MjE6c3RhdGljIGludCB2Y2FwX3Jhd19kZWJ1Z2ZzX3Nob3coc3RydWN0IHNlcV9maWxlICptLCB2b2lkICp1bnVzZWQpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9kZWJ1Z2ZzLmMtNDIyLXtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2RlYnVnZnMuYzo0MjM6XHRzdHJ1Y3QgdmNhcF9hZG1pbl9kZWJ1Z2ZzX2luZm8gKmluZm8gPSBtLVx1MDAzZXByaXZhdGU7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9kZWJ1Z2ZzLmMtNDI0LVx0c3RydWN0IHZjYXBfb3V0cHV0X3ByaW50IG91dCA9IHtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9kZWJ1Z2ZzLmMtNDM0LX1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2RlYnVnZnMuYzo0MzU6REVGSU5FX1NIT1dfQVRUUklCVVRFKHZjYXBfcmF3X2RlYnVnZnMpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfZGVidWdmcy5jLTQzNi1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2RlYnVnZnMuYzo0Mzc6c3RydWN0IGRlbnRyeSAqdmNhcF9kZWJ1Z2ZzKHN0cnVjdCBkZXZpY2UgKmRldiwgc3RydWN0IGRlbnRyeSAqcGFyZW50LFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfZGVidWdmcy5jLTQzOC1cdFx0XHQgICAgc3RydWN0IHZjYXBfY29udHJvbCAqdmN0cmwpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9kZWJ1Z2ZzLmMtNDM5LXtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2RlYnVnZnMuYzo0NDA6XHRzdHJ1Y3QgdmNhcF9hZG1pbl9kZWJ1Z2ZzX2luZm8gKmluZm87XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9kZWJ1Z2ZzLmMtNDQxLVx0c3RydWN0IHZjYXBfYWRtaW4gKmFkbWluO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2RlYnVnZnMuYy00NDQtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9kZWJ1Z2ZzLmM6NDQ1Olx0ZGlyID0gZGVidWdmc19jcmVhdGVfZGlyKFwmIzM0O3ZjYXBzXCYjMzQ7LCBwYXJlbnQpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfZGVidWdmcy5jLTQ0Ni1cdGlmIChQVFJfRVJSX09SX1pFUk8oZGlyKSlcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9kZWJ1Z2ZzLmMtNDU1LVx0XHRpbmZvLVx1MDAzZWFkbWluID0gYWRtaW47XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9kZWJ1Z2ZzLmM6NDU2Olx0XHRkZWJ1Z2ZzX2NyZWF0ZV9maWxlKG5hbWUsIDA0NDQsIGRpciwgaW5mbyxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2RlYnVnZnMuYzo0NTc6XHRcdFx0XHQgICAgXHUwMDI2dmNhcF9yYXdfZGVidWdmc19mb3BzKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2RlYnVnZnMuYy00NTgtXHRcdHNwcmludGYobmFtZSwgXCYjMzQ7JXNfJWRcJiMzNDssIHZjdHJsLVx1MDAzZXZjYXBzW2FkbWluLVx1MDAzZXZ0eXBlXS5uYW1lLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfZGVidWdmcy5jLTQ1OS1cdFx0XHRhZG1pbi1cdTAwM2V2aW5zdCk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9kZWJ1Z2ZzLmM6NDYwOlx0XHRkZWJ1Z2ZzX2NyZWF0ZV9maWxlKG5hbWUsIDA0NDQsIGRpciwgaW5mbywgXHUwMDI2dmNhcF9kZWJ1Z2ZzX2ZvcHMpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfZGVidWdmcy5jLTQ2MS1cdH1cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9kZWJ1Z2ZzLmMtNDYzLX1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2RlYnVnZnMuYzo0NjQ6RVhQT1JUX1NZTUJPTF9HUEwodmNhcF9kZWJ1Z2ZzKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2RlYnVnZnMuYy00NjUtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9kZWJ1Z2ZzLmMtNDY2LSNpZmRlZiBDT05GSUdfVkNBUF9LVU5JVF9URVNUXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9kZWJ1Z2ZzLmM6NDY3OiNpbmNsdWRlIFwmIzM0O3ZjYXBfYXBpX2RlYnVnZnNfa3VuaXQuY1wmIzM0O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfZGVidWdmcy5jLTQ2OC0jZW5kaWZcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9kZWJ1Z2ZzLmgtOS0jaW5jbHVkZSBcdTAwM2NsaW51eC90eXBlcy5oXHUwMDNlXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9kZWJ1Z2ZzLmg6MTA6I2luY2x1ZGUgXHUwMDNjbGludXgvZGVidWdmcy5oXHUwMDNlXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9kZWJ1Z2ZzLmgtMTEtI2luY2x1ZGUgXHUwMDNjbGludXgvbmV0ZGV2aWNlLmhcdTAwM2Vcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9kZWJ1Z2ZzLmgtMTYtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9kZWJ1Z2ZzLmg6MTc6dm9pZCB2Y2FwX3BvcnRfZGVidWdmcyhzdHJ1Y3QgZGV2aWNlICpkZXYsIHN0cnVjdCBkZW50cnkgKnBhcmVudCxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2RlYnVnZnMuaC0xOC1cdFx0ICAgICAgIHN0cnVjdCB2Y2FwX2NvbnRyb2wgKnZjdHJsLFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2RlYnVnZnMuaC0yMS0vKiBDcmVhdGUgYSBkZWJ1Z0ZTIGVudHJ5IGZvciBhIHZjYXAgaW5zdGFuY2UgKi9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2RlYnVnZnMuaDoyMjpzdHJ1Y3QgZGVudHJ5ICp2Y2FwX2RlYnVnZnMoc3RydWN0IGRldmljZSAqZGV2LCBzdHJ1Y3QgZGVudHJ5ICpwYXJlbnQsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9kZWJ1Z2ZzLmgtMjMtXHRcdFx0ICAgIHN0cnVjdCB2Y2FwX2NvbnRyb2wgKnZjdHJsKTtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9kZWJ1Z2ZzLmgtMjYtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9kZWJ1Z2ZzLmg6Mjc6c3RhdGljIGlubGluZSB2b2lkIHZjYXBfcG9ydF9kZWJ1Z2ZzKHN0cnVjdCBkZXZpY2UgKmRldiwgc3RydWN0IGRlbnRyeSAqcGFyZW50LFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfZGVidWdmcy5oLTI4LVx0XHRcdFx0ICAgICBzdHJ1Y3QgdmNhcF9jb250cm9sICp2Y3RybCxcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9kZWJ1Z2ZzLmgtMzItXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9kZWJ1Z2ZzLmg6MzM6c3RhdGljIGlubGluZSBzdHJ1Y3QgZGVudHJ5ICp2Y2FwX2RlYnVnZnMoc3RydWN0IGRldmljZSAqZGV2LFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfZGVidWdmcy5oLTM0LVx0XHRcdFx0XHQgIHN0cnVjdCBkZW50cnkgKnBhcmVudCxcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9kZWJ1Z2ZzX2t1bml0LmMtOC0jaW5jbHVkZSBcJiMzNDt2Y2FwX2FwaV9jbGllbnQuaFwmIzM0O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfZGVidWdmc19rdW5pdC5jOjk6I2luY2x1ZGUgXCYjMzQ7dmNhcF9hcGlfZGVidWdmcy5oXCYjMzQ7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9kZWJ1Z2ZzX2t1bml0LmMtMTAtI2luY2x1ZGUgXCYjMzQ7dmNhcF9tb2RlbF9rdW5pdC5oXCYjMzQ7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfZGVidWdmc19rdW5pdC5jPTQ3NT1zdGF0aWMgdm9pZCB2Y2FwX2FwaV9zaG93X2FkbWluX3J1bGVfdGVzdChzdHJ1Y3Qga3VuaXQgKnRlc3QpXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfZGVidWdmc19rdW5pdC5jLTU0MS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2RlYnVnZnNfa3VuaXQuYzo1NDI6c3RhdGljIHN0cnVjdCBrdW5pdF9jYXNlIHZjYXBfYXBpX2RlYnVnZnNfdGVzdF9jYXNlc1tdID0ge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfZGVidWdmc19rdW5pdC5jLTU0My1cdEtVTklUX0NBU0UodmNhcF9hcGlfYWRkcl9rZXlzZXRfdGVzdCksXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfZGVidWdmc19rdW5pdC5jLTU0OS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2RlYnVnZnNfa3VuaXQuYzo1NTA6c3RhdGljIHN0cnVjdCBrdW5pdF9zdWl0ZSB2Y2FwX2FwaV9kZWJ1Z2ZzX3Rlc3Rfc3VpdGUgPSB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9kZWJ1Z2ZzX2t1bml0LmMtNTUxLVx0Lm5hbWUgPSBcJiMzNDtWQ0FQX0FQSV9EZWJ1Z0ZTX1Rlc3RzdWl0ZVwmIzM0OyxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2RlYnVnZnNfa3VuaXQuYzo1NTI6XHQudGVzdF9jYXNlcyA9IHZjYXBfYXBpX2RlYnVnZnNfdGVzdF9jYXNlcyxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2RlYnVnZnNfa3VuaXQuYy01NTMtfTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2RlYnVnZnNfa3VuaXQuYy01NTQtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9kZWJ1Z2ZzX2t1bml0LmM6NTU1Omt1bml0X3Rlc3Rfc3VpdGUodmNhcF9hcGlfZGVidWdmc190ZXN0X3N1aXRlKTtcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD41Ny8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjkgMTA6Mjk8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogNTIwMjQKCQkJCQkJCW91dHB1dDogMzUKCQkJCQkJCXRob3VnaHRzOiAyOQoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+T2theSwgaGVyZSYjMzk7cyBteSB0YWtlIG9uIHRob3NlIHRob3VnaHRzLCB0YWlsb3JlZCBmb3IgYW4gZXhwZXJ0IGF1ZGllbmNlLCBwcmVzZW50ZWQgaW4gdGhlIGZpcnN0IHBlcnNvbjoKCioqSW52ZXN0aWdhdGluZyBgdmNhcF9kZWJ1Z2ZzYCBDbGllbnQgRGVwZW5kZW5jaWVzKioKCkFscmlnaHQsIHNvIGB2Y2FwX2RlYnVnZnNgIGlzIGNsZWFybHkgZXhwb3J0ZWQgYW5kIGFjY2Vzc2libGUgdG8gY2xpZW50cy4gVGhhdCBpbW1lZGlhdGVseSByYWlzZXMgdGhlIHF1ZXN0aW9uOiB3aG8mIzM5O3MgKmFjdHVhbGx5KiBsZXZlcmFnaW5nIHRoaXMgZnVuY3Rpb25hbGl0eT8gSXQmIzM5O3MgZXNzZW50aWFsIHRvIHVuZGVyc3RhbmQgdGhlIHVzYWdlIHBhdHRlcm5zIGFuZCBwb3RlbnRpYWwgZGVwZW5kZW5jaWVzIHRvIGFzc2VzcyBpdHMgY3JpdGljYWxpdHksIHBvdGVudGlhbCBpbXBhY3Qgb2YgY2hhbmdlcywgYW5kIGFyZWFzIGZvciBvcHRpbWl6YXRpb24gb3Igc2VjdXJpdHkgaGFyZGVuaW5nLiBNeSBuZXh0IHN0ZXAgaXMgdW5kZW5pYWJseSB0byBpZGVudGlmeSBhbGwgdGhlIGNhbGxlcnMgb2YgYHZjYXBfZGVidWdmc2AuIEkgbmVlZCBhIHByZWNpc2UgY2FsbCBncmFwaCBvciwgYXQgdGhlIHZlcnkgbGVhc3QsIGEgY29tcHJlaGVuc2l2ZSBsaXN0IG9mIG1vZHVsZXMsIHByb2Nlc3Nlcywgb3IgZXZlbiBzcGVjaWZpYyBjb2RlIGxvY2F0aW9ucyB0aGF0IGFyZSBtYWtpbmcgY2FsbHMgdG8gdGhhdCBmdW5jdGlvbi4gRnJvbSB0aGVyZSwgSSBjYW4gYmVnaW4gdG8gYXNzZXNzIHJpc2ssIHVuZGVyc3RhbmQgdGhlIG92ZXJhbGwgc3lzdGVtIGRlcGVuZGVuY2llcywgYW5kIHN0YXJ0IGRldGVybWluaW5nIHRoZSBpbXBhY3QgdGhhdCBhbnkgY2hhbmdlcyB0byB0aGlzIGZ1bmN0aW9uIHdvdWxkIGhhdmUuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+NTgvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzI5IDEwOjI5PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O3ZjYXBfZGVidWdmcyYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC8mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL2xhbjk2NngvTWFrZWZpbGU9MTg9bGFuOTY2eC1zd2l0Y2gtJChDT05GSUdfTEFOOTY2WF9EQ0IpICYjNDM7PSBsYW45NjZ4X2RjYi5vXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvbGFuOTY2eC9NYWtlZmlsZToxOTpsYW45NjZ4LXN3aXRjaC0kKENPTkZJR19ERUJVR19GUykgJiM0Mzs9IGxhbjk2NnhfdmNhcF9kZWJ1Z2ZzLm9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC9sYW45NjZ4L01ha2VmaWxlLTIwLVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC9sYW45NjZ4L2xhbjk2NnhfdmNhcF9pbXBsLmM9NzA3PWludCBsYW45NjZ4X3ZjYXBfaW5pdChzdHJ1Y3QgbGFuOTY2eCAqbGFuOTY2eClcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvbGFuOTY2eC9sYW45NjZ4X3ZjYXBfaW1wbC5jLTczNi1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC9sYW45NjZ4L2xhbjk2NnhfdmNhcF9pbXBsLmM6NzM3Olx0ZGlyID0gdmNhcF9kZWJ1Z2ZzKGxhbjk2NngtXHUwMDNlZGV2LCBsYW45NjZ4LVx1MDAzZWRlYnVnZnNfcm9vdCwgY3RybCk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvbGFuOTY2eC9sYW45NjZ4X3ZjYXBfaW1wbC5jLTczOC1cdGZvciAoaW50IHAgPSAwOyBwIFx1MDAzYyBsYW45NjZ4LVx1MDAzZW51bV9waHlzX3BvcnRzOyAmIzQzOyYjNDM7cCkge1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC9zcGFyeDUvTWFrZWZpbGU9MTY9c3Bhcng1LXN3aXRjaC0kKENPTkZJR19TUEFSWDVfRENCKSAmIzQzOz0gc3Bhcng1X2RjYi5vXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvc3Bhcng1L01ha2VmaWxlOjE3OnNwYXJ4NS1zd2l0Y2gtJChDT05GSUdfREVCVUdfRlMpICYjNDM7PSBzcGFyeDVfdmNhcF9kZWJ1Z2ZzLm9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC9zcGFyeDUvTWFrZWZpbGUtMTgtXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3NwYXJ4NS9zcGFyeDVfdmNhcF9kZWJ1Z2ZzLmMtOS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC9zcGFyeDUvc3Bhcng1X3ZjYXBfZGVidWdmcy5jOjEwOiNpbmNsdWRlIFwmIzM0O3NwYXJ4NV92Y2FwX2RlYnVnZnMuaFwmIzM0O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3NwYXJ4NS9zcGFyeDVfdmNhcF9kZWJ1Z2ZzLmMtMTEtI2luY2x1ZGUgXCYjMzQ7c3Bhcng1X21haW5fcmVncy5oXCYjMzQ7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3NwYXJ4NS9zcGFyeDVfdmNhcF9pbXBsLmMtMTQtI2luY2x1ZGUgXCYjMzQ7c3Bhcng1X3ZjYXBfYWdfYXBpLmhcJiMzNDtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC9zcGFyeDUvc3Bhcng1X3ZjYXBfaW1wbC5jOjE1OiNpbmNsdWRlIFwmIzM0O3NwYXJ4NV92Y2FwX2RlYnVnZnMuaFwmIzM0O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3NwYXJ4NS9zcGFyeDVfdmNhcF9pbXBsLmMtMTYtXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3NwYXJ4NS9zcGFyeDVfdmNhcF9pbXBsLmM9MjAzMT1pbnQgc3Bhcng1X3ZjYXBfaW5pdChzdHJ1Y3Qgc3Bhcng1ICpzcGFyeDUpXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3NwYXJ4NS9zcGFyeDVfdmNhcF9pbXBsLmMtMjA3Ni1cdH1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC9zcGFyeDUvc3Bhcng1X3ZjYXBfaW1wbC5jOjIwNzc6XHRkaXIgPSB2Y2FwX2RlYnVnZnMoc3Bhcng1LVx1MDAzZWRldiwgc3Bhcng1LVx1MDAzZWRlYnVnZnNfcm9vdCwgY3RybCk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvc3Bhcng1L3NwYXJ4NV92Y2FwX2ltcGwuYy0yMDc4LVx0Zm9yIChpZHggPSAwOyBpZHggXHUwMDNjIGNvbnN0cy1cdTAwM2VuX3BvcnRzOyAmIzQzOyYjNDM7aWR4KVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2RlYnVnZnMuYz0xNj1zdHJ1Y3QgdmNhcF9wb3J0X2RlYnVnZnNfaW5mbyB7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfZGVidWdmcy5jLTIxLS8qIER1bXAgdGhlIGtleWZpZWxkcyB2YWx1ZSBhbmQgbWFzayB2YWx1ZXMgKi9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2RlYnVnZnMuYzoyMjpzdGF0aWMgdm9pZCB2Y2FwX2RlYnVnZnNfc2hvd19ydWxlX2tleWZpZWxkKHN0cnVjdCB2Y2FwX2NvbnRyb2wgKnZjdHJsLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfZGVidWdmcy5jLTIzLVx0XHRcdFx0XHQgICAgc3RydWN0IHZjYXBfb3V0cHV0X3ByaW50ICpvdXQsXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfZGVidWdmcy5jPTExNj1zdGF0aWMgdm9pZFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfZGVidWdmcy5jOjExNzp2Y2FwX2RlYnVnZnNfc2hvd19ydWxlX2FjdGlvbmZpZWxkKHN0cnVjdCB2Y2FwX2NvbnRyb2wgKnZjdHJsLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfZGVidWdmcy5jLTExOC1cdFx0XHRcdCAgIHN0cnVjdCB2Y2FwX291dHB1dF9wcmludCAqb3V0LFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2RlYnVnZnMuYy0xNTctXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9kZWJ1Z2ZzLmM6MTU4OnN0YXRpYyBpbnQgdmNhcF9kZWJ1Z2ZzX3Nob3dfa2V5c2V0cyhzdHJ1Y3QgdmNhcF9ydWxlX2ludGVybmFsICpyaSxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2RlYnVnZnMuYy0xNTktXHRcdFx0XHQgICAgIHN0cnVjdCB2Y2FwX291dHB1dF9wcmludCAqb3V0KVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2RlYnVnZnMuYy0xOTAtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9kZWJ1Z2ZzLmM6MTkxOnN0YXRpYyBpbnQgdmNhcF9kZWJ1Z2ZzX3Nob3dfcnVsZV9rZXlzZXQoc3RydWN0IHZjYXBfcnVsZV9pbnRlcm5hbCAqcmksXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9kZWJ1Z2ZzLmMtMTkyLVx0XHRcdFx0XHQgc3RydWN0IHZjYXBfb3V0cHV0X3ByaW50ICpvdXQpXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfZGVidWdmcy5jLTE5OC1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2RlYnVnZnMuYzoxOTk6XHR2Y2FwX2RlYnVnZnNfc2hvd19rZXlzZXRzKHJpLCBvdXQpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfZGVidWdmcy5jLTIwMC1cdG91dC1cdTAwM2VwcmYob3V0LVx1MDAzZWRzdCwgXCYjMzQ7ICBrZXlzZXRfc3c6ICVkXFxuXCYjMzQ7LCByaS1cdTAwM2VrZXlzZXRfc3cpO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2RlYnVnZnMuYy0yMDQtXHRcdGtleWZpZWxkID0gdmNhcF9rZXlmaWVsZHModmN0cmwsIGFkbWluLVx1MDAzZXZ0eXBlLCByaS1cdTAwM2VkYXRhLmtleXNldCk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9kZWJ1Z2ZzLmM6MjA1Olx0XHR2Y2FwX2RlYnVnZnNfc2hvd19ydWxlX2tleWZpZWxkKHZjdHJsLCBvdXQsIGNrZi1cdTAwM2VjdHJsLmtleSxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2RlYnVnZnMuYy0yMDYtXHRcdFx0XHRcdFx0a2V5ZmllbGQsIFx1MDAyNmNrZi1cdTAwM2VkYXRhKTtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9kZWJ1Z2ZzLmMtMjExLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfZGVidWdmcy5jOjIxMjpzdGF0aWMgaW50IHZjYXBfZGVidWdmc19zaG93X3J1bGVfYWN0aW9uc2V0KHN0cnVjdCB2Y2FwX3J1bGVfaW50ZXJuYWwgKnJpLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfZGVidWdmcy5jLTIxMy1cdFx0XHRcdFx0ICAgIHN0cnVjdCB2Y2FwX291dHB1dF9wcmludCAqb3V0KVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2RlYnVnZnMuYy0yMjctXHRcdFx0XHRcdFx0cmktXHUwMDNlZGF0YS5hY3Rpb25zZXQpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfZGVidWdmcy5jOjIyODpcdFx0dmNhcF9kZWJ1Z2ZzX3Nob3dfcnVsZV9hY3Rpb25maWVsZCh2Y3RybCwgb3V0LCBjYWYtXHUwMDNlY3RybC5hY3Rpb24sXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9kZWJ1Z2ZzLmMtMjI5LVx0XHRcdFx0XHRcdCAgIGFjdGlvbmZpZWxkLFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2RlYnVnZnMuYz0yMzY9c3RhdGljIHZvaWQgdmNhcF9zaG93X2FkbWluX3J1bGUoc3RydWN0IHZjYXBfY29udHJvbCAqdmN0cmwsXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfZGVidWdmcy5jLTI2MS1cdH1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2RlYnVnZnMuYzoyNjI6XHR2Y2FwX2RlYnVnZnNfc2hvd19ydWxlX2tleXNldChyaSwgb3V0KTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2RlYnVnZnMuYzoyNjM6XHR2Y2FwX2RlYnVnZnNfc2hvd19ydWxlX2FjdGlvbnNldChyaSwgb3V0KTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2RlYnVnZnMuYy0yNjQtfVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2RlYnVnZnMuYz00MDE9RVhQT1JUX1NZTUJPTF9HUEwodmNhcF9wb3J0X2RlYnVnZnMpO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2RlYnVnZnMuYy00MDMtLyogU2hvdyB0aGUgZnVsbCBWQ0FQIGluc3RhbmNlIGRhdGEgKHJ1bGVzIHdpdGggYWxsIGZpZWxkcykgKi9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2RlYnVnZnMuYzo0MDQ6c3RhdGljIGludCB2Y2FwX2RlYnVnZnNfc2hvdyhzdHJ1Y3Qgc2VxX2ZpbGUgKm0sIHZvaWQgKnVudXNlZClcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2RlYnVnZnMuYy00MDUte1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2RlYnVnZnMuYy00MTctfVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfZGVidWdmcy5jOjQxODpERUZJTkVfU0hPV19BVFRSSUJVVEUodmNhcF9kZWJ1Z2ZzKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2RlYnVnZnMuYy00MTktXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfZGVidWdmcy5jPTQzNT1ERUZJTkVfU0hPV19BVFRSSUJVVEUodmNhcF9yYXdfZGVidWdmcyk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9kZWJ1Z2ZzLmMtNDM2LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfZGVidWdmcy5jOjQzNzpzdHJ1Y3QgZGVudHJ5ICp2Y2FwX2RlYnVnZnMoc3RydWN0IGRldmljZSAqZGV2LCBzdHJ1Y3QgZGVudHJ5ICpwYXJlbnQsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9kZWJ1Z2ZzLmMtNDM4LVx0XHRcdCAgICBzdHJ1Y3QgdmNhcF9jb250cm9sICp2Y3RybClcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9kZWJ1Z2ZzLmMtNDU5LVx0XHRcdGFkbWluLVx1MDAzZXZpbnN0KTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2RlYnVnZnMuYzo0NjA6XHRcdGRlYnVnZnNfY3JlYXRlX2ZpbGUobmFtZSwgMDQ0NCwgZGlyLCBpbmZvLCBcdTAwMjZ2Y2FwX2RlYnVnZnNfZm9wcyk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9kZWJ1Z2ZzLmMtNDYxLVx0fVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2RlYnVnZnMuYy00NjMtfVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfZGVidWdmcy5jOjQ2NDpFWFBPUlRfU1lNQk9MX0dQTCh2Y2FwX2RlYnVnZnMpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfZGVidWdmcy5jLTQ2NS1cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9kZWJ1Z2ZzLmg9MTc9dm9pZCB2Y2FwX3BvcnRfZGVidWdmcyhzdHJ1Y3QgZGV2aWNlICpkZXYsIHN0cnVjdCBkZW50cnkgKnBhcmVudCxcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9kZWJ1Z2ZzLmgtMjEtLyogQ3JlYXRlIGEgZGVidWdGUyBlbnRyeSBmb3IgYSB2Y2FwIGluc3RhbmNlICovXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9kZWJ1Z2ZzLmg6MjI6c3RydWN0IGRlbnRyeSAqdmNhcF9kZWJ1Z2ZzKHN0cnVjdCBkZXZpY2UgKmRldiwgc3RydWN0IGRlbnRyeSAqcGFyZW50LFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfZGVidWdmcy5oLTIzLVx0XHRcdCAgICBzdHJ1Y3QgdmNhcF9jb250cm9sICp2Y3RybCk7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfZGVidWdmcy5oPTI3PXN0YXRpYyBpbmxpbmUgdm9pZCB2Y2FwX3BvcnRfZGVidWdmcyhzdHJ1Y3QgZGV2aWNlICpkZXYsIHN0cnVjdCBkZW50cnkgKnBhcmVudCxcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9kZWJ1Z2ZzLmgtMzItXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9kZWJ1Z2ZzLmg6MzM6c3RhdGljIGlubGluZSBzdHJ1Y3QgZGVudHJ5ICp2Y2FwX2RlYnVnZnMoc3RydWN0IGRldmljZSAqZGV2LFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfZGVidWdmcy5oLTM0LVx0XHRcdFx0XHQgIHN0cnVjdCBkZW50cnkgKnBhcmVudCxcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD41OS8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjkgMTA6Mjk8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogNTU0MTkKCQkJCQkJCW91dHB1dDogMTEzCgkJCQkJCQl0aG91Z2h0czogODAyCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKldvcnRoRnV6emluZz1mYWxzZTogVW5yZWFjaGFibGUgQ29kZSBpbiBWaXJ0dWFsaXplZCBFbnZpcm9ubWVudHMqKgoKT2theSwgc28gSSYjMzk7dmUgbG9va2VkIGF0IHRoaXMgcGF0Y2ggYW5kIGhlcmUmIzM5O3MgbXkgYnJlYWtkb3duLiBUaGUgb25seSBmdW5jdGlvbnMgdGhhdCBjYWxsIHRoZSBjb2RlIEkmIzM5O20gYW5hbHl6aW5nLCBgdmNhcF9kZWNvZGVfcnVsZWAgaW5kaXJlY3RseSB0aHJvdWdoIGB2Y2FwX2dldF9ydWxlYCwgYXJlIGBsYW45NjZ4X3ZjYXBfaW5pdGAgYW5kIGBzcGFyeDVfdmNhcF9pbml0YC4gQm90aCBvZiB0aGVzZSBpbml0aWFsaXphdGlvbiByb3V0aW5lcywgSSBrbm93LCBuZWVkIGFjdHVhbCBwaHlzaWNhbCBoYXJkd2FyZSB0byBwcm9iZSDigJMgc3BlY2lmaWNhbGx5LCBoYXJkd2FyZSBmcm9tIE1pY3JvY2hpcC4gVGhhdCBpbW1lZGlhdGVseSB0ZWxscyBtZSwgaW4gYSB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudCBsaWtlIFFFTVUsIHRoaXMgY29kZSBwYXRoIHdpbGwgKm5ldmVyKiBiZSBoaXQuIFRoZSBgdmNhcF9kZWJ1Z2ZzYCBlbnRyaWVzLCB3aGljaCBhcmUgYWxzbyBpbmRpcmVjdGx5IGludm9sdmVkIHRocm91Z2ggYHZjYXBfc2hvd19hZG1pbmAsIHdvbiYjMzk7dCBldmVuIGJlIGNyZWF0ZWQuCgpJIHF1aWNrbHkgY29uc2lkZXJlZCB0aGUgZXhpc3RlbmNlIG9mIGB2Y2FwX2FwaV9kZWJ1Z2ZzX2t1bml0LmNgIOKAkyBhIEtVbml0IHRlc3QuIE5vdywgaWYgS1VuaXQgdGVzdHMgYXJlIGJ1aWx0IGFzIG1vZHVsZXMsIEkgY2FuIGxvYWQgYW5kIHJ1biB0aGVtLiBCdXQsIHRoYXQmIzM5O3Mgbm90IHRoZSBwb2ludC4gVGhlIGNydXggaXMgd2hldGhlciBTeXprYWxsZXIgZnV6emVzIHRoZW0uIEFuZCBubywgaXQgZG9lc24mIzM5O3QuIFN5emthbGxlciBkb2VzbiYjMzk7dCBmdXp6IEtVbml0IHRlc3RzIGJlY2F1c2UgdGhleSYjMzk7cmUgc2VsZi1jb250YWluZWQgdW5pdCB0ZXN0cyB0aGF0IHJ1biBhdXRvbWF0aWNhbGx5LCBub3QgdGhyb3VnaCB1c2Vyc3BhY2UgaW50ZXJmYWNlcyB0aGF0IFN5emthbGxlciBjYW4gaW50ZXJhY3Qgd2l0aC4gU28gdGhlIEtVbml0IHRlc3RzIGFyZSBpcnJlbGV2YW50IGhlcmUuCgpUaGVuIEkgcmVmb2N1c2VkIG9uIHRoZSBwcm9tcHQmIzM5O3MgY3JpdGVyaWEuIEl0IHNheXMgdG8gcmV0dXJuIGBXb3J0aEZ1enppbmc9ZmFsc2VgIGlmIHRoZSBjaGFuZ2VzIGludm9sdmUgY29kZSBwYXRocyB0aGF0IGFyZSAqaW1wb3NzaWJsZSogdG8gcmVhY2ggaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzLCBldmVuIHdpdGggc29mdHdhcmUtZW11bGF0ZWQgaGFyZHdhcmUuIFRoaXMgY29kZSBpcyBwYXJ0IG9mIHRoZSBNaWNyb2NoaXAgVkNBUCBBUEksIHdoaWNoIGlzIGEgbGlicmFyeSB1c2VkIGJ5IE1pY3JvY2hpcCBzd2l0Y2ggZHJpdmVycyDigJMgc3BlY2lmaWNhbGx5LCBTcGFyeDUgYW5kIExhbjk2NnguIFRoZXNlIHN3aXRjaCBkcml2ZXJzIGFyZSBwbGF0Zm9ybSBkcml2ZXJzLCBzcGVjaWZpY2FsbHkgZm9yIE1pY3JvY2hpcCBTb0NzIG9yIFBDSWUgZGV2aWNlcywgcmVxdWlyaW5nIHBoeXNpY2FsIGhhcmR3YXJlLiBTbyB0aGVzZSBjb2RlIHBhdGhzICphcmUqIHVucmVhY2hhYmxlIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBiZWNhdXNlIHRoZSBjbGllbnQgZHJpdmVycyB3b24mIzM5O3QgcHJvYmUsIGFuZCB0aGUgVkNBUCBBUEkgd2lsbCBuZXZlciBiZSBpbml0aWFsaXplZC4gQWdhaW4sIHRoZSBLVW5pdCB0ZXN0cyBhcmUgbm90IHJlbGV2YW50IHRvIFN5emthbGxlciBmdXp6aW5nLgoKSSYjMzk7bSBjb25maWRlbnQgaW4gc2F5aW5nIHRoYXQgdGhlIGNoYW5nZXMgbW9kaWZ5IGNvZGUgdW5yZWFjaGFibGUgaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzLiBUbyBjb25maXJtLCBJIGRpZCBhIHF1aWNrIGdyZXAgZm9yIGB2Y2FwX2dldF9ydWxlYCBhbmQgYHZjYXBfZGVidWdmc2AuIFRoZSBvbmx5IHVzZXJzIGFyZSBgbGFuOTY2eGAgYW5kIGBzcGFyeDVgLCBib3RoIHJlcXVpcmluZyBoYXJkd2FyZS4KClRvIGJlIGFic29sdXRlbHkgc3VyZSwgSSBjaGVja2VkIHRoYXQgYGxhbjk2NnhgIGlzIGEgcGxhdGZvcm0gZHJpdmVyIGZvciBNaWNyb2NoaXAmIzM5O3MgTEFOOTY2eCBTb0MgYW5kIGBzcGFyeDVgIGlzIGZvciBNaWNyb2NoaXAmIzM5O3MgU3Bhcng1IFNvQy4gTm8gdXBzdHJlYW0gUUVNVSBlbXVsYXRpb25zIGV4aXN0IGZvciBlaXRoZXIuIFNvLCB0aGUgY29kZSBwYXRoIGlzIHVucmVhY2hhYmxlLiBJIGFtIGFic29sdXRlbHkgZ29pbmcgdG8gcmV0dXJuIGBXb3J0aEZ1enppbmc9ZmFsc2VgLgoKSSBjaGVja2VkIHRoZSBjYWxsZXJzIG9mIGB2Y2FwX2RlY29kZV9ydWxlYDogYHZjYXBfZ2V0X3J1bGVgIGFuZCBgdmNhcF9zaG93X2FkbWluYC4gQm90aCBhcmUgdXNlZCBieSBvbmx5IGBsYW45NjZ4YCBhbmQgYHNwYXJ4NWAuIFNvLCB0aGVyZSBhcmUgbm8gb3RoZXIgdXNlcnMgdG8gY29uc2lkZXIuCgpJJiMzOTttIGRlZmluaXRlbHkgcmV0dXJuaW5nIGBXb3J0aEZ1enppbmc9ZmFsc2VgLiBUaGUgcGF0Y2ggbW9kaWZpZXMgdW5yZWFjaGFibGUgY29kZS4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD42MC8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjkgMTA6Mjk8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5zZXQtcmVzdWx0czwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBtb2RpZmllcyBgdmNhcF9kZWNvZGVfcnVsZWAgaW4gdGhlIE1pY3JvY2hpcCBWQ0FQIEFQSSBsaWJyYXJ5LiBUaGlzIGxpYnJhcnkgaXMgZXhjbHVzaXZlbHkgdXNlZCBieSBoYXJkd2FyZS1zcGVjaWZpYyBzd2l0Y2ggZHJpdmVycyAoU3Bhcng1IGFuZCBMYW45NjZ4KSB3aGljaCByZXF1aXJlIHBoeXNpY2FsIGhhcmR3YXJlIChzcGVjaWZpYyBNaWNyb2NoaXAgU29DcykgdGhhdCBhcmUgbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIFFFTVUuIENvbnNlcXVlbnRseSwgdGhpcyBjb2RlIHBhdGggaXMgdW5yZWFjaGFibGUgaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGFuZCBjYW5ub3QgYmUgZnV6emVkLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IGZhbHNlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IG51bGwsCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogW10sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggbW9kaWZpZXMgYHZjYXBfZGVjb2RlX3J1bGVgIGluIHRoZSBNaWNyb2NoaXAgVkNBUCBBUEkgbGlicmFyeS4gVGhpcyBsaWJyYXJ5IGlzIGV4Y2x1c2l2ZWx5IHVzZWQgYnkgaGFyZHdhcmUtc3BlY2lmaWMgc3dpdGNoIGRyaXZlcnMgKFNwYXJ4NSBhbmQgTGFuOTY2eCkgd2hpY2ggcmVxdWlyZSBwaHlzaWNhbCBoYXJkd2FyZSAoc3BlY2lmaWMgTWljcm9jaGlwIFNvQ3MpIHRoYXQgYXJlIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCBRRU1VLiBDb25zZXF1ZW50bHksIHRoaXMgY29kZSBwYXRoIGlzIHVucmVhY2hhYmxlIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBhbmQgY2Fubm90IGJlIGZ1enplZC4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiBmYWxzZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPC90Ym9keT4KCTwvdGFibGU+CgoJPGRpdiBpZD0ibGxtX3N1bW1hcnlfdGFibGVfZGl2IiBzdHlsZT0ibWFyZ2luOiAyMHB4IDA7Ij4KCQk8dGFibGUgY2xhc3M9Imxpc3RfdGFibGUiPgoJCQk8Y2FwdGlvbj5MTE0gQ2FsbHMgU3VtbWFyeTo8L2NhcHRpb24+CgkJCTx0aGVhZD4KCQkJCTx0cj4KCQkJCQk8dGg+VG90YWwgQ2FsbHM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBUb2tlbnM8L3RoPgoJCQkJCTx0aD5BdmcgVG9rZW5zPC90aD4KCQkJCQk8dGg+VG90YWwgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCQk8dGg+QXZnIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQk8L3RyPgoJCQk8L3RoZWFkPgoJCQk8dGJvZHkgaWQ9ImxsbV9zdW1tYXJ5X3N0YXRzX2JvZHkiPjwvdGJvZHk+CgkJPC90YWJsZT4KCTwvZGl2PgoKCTxkaXYgaWQ9InRvb2xfc3VtbWFyeV90YWJsZV9kaXYiIHN0eWxlPSJtYXJnaW46IDIwcHggMDsiPgoJCTx0YWJsZSBjbGFzcz0ibGlzdF90YWJsZSI+CgkJCTxjYXB0aW9uPlRvb2wgQ2FsbHMgU3VtbWFyeTo8L2NhcHRpb24+CgkJCTx0aGVhZD4KCQkJCTx0cj4KCQkJCQk8dGg+VG90YWwgQ2FsbHM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJCTx0aD5BdmcgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCTwvdHI+CgkJCTwvdGhlYWQ+CgkJCTx0Ym9keSBpZD0idG9vbF9zdW1tYXJ5X3N0YXRzX2JvZHkiPjwvdGJvZHk+CgkJPC90YWJsZT4KCTwvZGl2PgoKCTxkaXYgaWQ9ImR1cmF0aW9uX2NoYXJ0X2RpdiIgc3R5bGU9IndpZHRoOiAxMDAlOyBtYXJnaW46IDIwcHggMDsgYm9yZGVyOiAxcHg7Ij48L2Rpdj4KCTxkaXYgaWQ9InRva2VuX2NoYXJ0X2RpdiIgc3R5bGU9IndpZHRoOiAxMDAlOyBtYXJnaW46IDIwcHggMDsgYm9yZGVyOiAxcHg7Ij48L2Rpdj4KCgk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJodHRwczovL3d3dy5nb29nbGUuY29tL2pzYXBpIj48L3NjcmlwdD4KCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KCQlnb29nbGUubG9hZCgidmlzdWFsaXphdGlvbiIsICIxIiwge3BhY2thZ2VzOlsiY29yZWNoYXJ0Il19KTsKCQlnb29nbGUuc2V0T25Mb2FkQ2FsbGJhY2soZHJhd0NoYXJ0cyk7CgoJCWZ1bmN0aW9uIGRyYXdDaGFydHMoKSB7CgkJCWNvbnN0IHJhd0RhdGEgPSBbeyJTdGFydGVkIjoiMjAyNi0wNy0yOVQxMDoyNjo0Ny4yNDA3ODQ0NzZaIiwiU2VxIjowLCJOZXN0aW5nIjowLCJUeXBlIjoiZmxvdyIsIk5hbWUiOiJwYXRjaC10cmlhZ2UiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoxODk4MjAyOTE1MjUsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogbnVsbCxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW10sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIG1vZGlmaWVzIGB2Y2FwX2RlY29kZV9ydWxlYCBpbiB0aGUgTWljcm9jaGlwIFZDQVAgQVBJIGxpYnJhcnkuIFRoaXMgbGlicmFyeSBpcyBleGNsdXNpdmVseSB1c2VkIGJ5IGhhcmR3YXJlLXNwZWNpZmljIHN3aXRjaCBkcml2ZXJzIChTcGFyeDUgYW5kIExhbjk2NngpIHdoaWNoIHJlcXVpcmUgcGh5c2ljYWwgaGFyZHdhcmUgKHNwZWNpZmljIE1pY3JvY2hpcCBTb0NzKSB0aGF0IGFyZSBub3QgZW11bGF0ZWQgaW4gc3RhbmRhcmQgUUVNVS4gQ29uc2VxdWVudGx5LCB0aGlzIGNvZGUgcGF0aCBpcyB1bnJlYWNoYWJsZSBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgYW5kIGNhbm5vdCBiZSBmdXp6ZWQuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IGZhbHNlXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0yOVQxMDoyNjo0Ny4yNDA3OTIxNTZaIiwiU2VxIjoxLCJOZXN0aW5nIjoxLCJUeXBlIjoiYWN0aW9uIiwiTmFtZSI6InJlYWQtcGF0Y2gtZGlmZiIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjU5OTEwNDgyNSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiUGF0Y2hEaWZmXCI6IFwiY29tbWl0IDRlODI1MmQ4ZjUzYWUxNGQxYmUxZGNkMWNiYWMyMjMzMmM3ZGI4Y2FcXG5BdXRob3I6IHN5ei1jbHVzdGVyIFxcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVxcdTAwM2VcXG5EYXRlOiAgIFdlZCBKdWwgMjkgMTA6MjY6NDYgMjAyNiArMDAwMFxcblxcbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcXG5cXG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGkuYyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpLmNcXG5pbmRleCBmZjg2Y2RlMTFhMzJjLi4zNzZiZTA1OWQ2NjJjIDEwMDY0NFxcbi0tLSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpLmNcXG4rKysgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaS5jXFxuQEAgLTI0MjcsMTggKzI0MjcsMjEgQEAgc3RydWN0IHZjYXBfcnVsZSAqdmNhcF9kZWNvZGVfcnVsZShzdHJ1Y3QgdmNhcF9ydWxlX2ludGVybmFsICplbGVtKVxcbiBcXG4gXFx0ZXJyID0gdmNhcF9yZWFkX3J1bGUocmkpO1xcbiBcXHRpZiAoZXJyKVxcbi1cXHRcXHRyZXR1cm4gRVJSX1BUUihlcnIpO1xcbitcXHRcXHRnb3RvIG91dF9lcnI7XFxuIFxcbiBcXHRlcnIgPSB2Y2FwX2RlY29kZV9rZXlzZXQocmkpO1xcbiBcXHRpZiAoZXJyKVxcbi1cXHRcXHRyZXR1cm4gRVJSX1BUUihlcnIpO1xcbitcXHRcXHRnb3RvIG91dF9lcnI7XFxuIFxcbiBcXHRlcnIgPSB2Y2FwX2RlY29kZV9hY3Rpb25zZXQocmkpO1xcbiBcXHRpZiAoZXJyKVxcbi1cXHRcXHRyZXR1cm4gRVJSX1BUUihlcnIpO1xcbitcXHRcXHRnb3RvIG91dF9lcnI7XFxuIFxcbiBvdXQ6XFxuIFxcdHJldHVybiBcXHUwMDI2cmktXFx1MDAzZWRhdGE7XFxuK291dF9lcnI6XFxuK1xcdHZjYXBfZnJlZV9ydWxlKFxcdTAwMjZyaS1cXHUwMDNlZGF0YSk7XFxuK1xcdHJldHVybiBFUlJfUFRSKGVycik7XFxuIH1cXG4gXFxuIHN0cnVjdCB2Y2FwX3J1bGUgKnZjYXBfZ2V0X3J1bGUoc3RydWN0IHZjYXBfY29udHJvbCAqdmN0cmwsIHUzMiBpZClcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMjlUMTA6MjY6NDcuODQ4Mjk5NDkxWiIsIlNlcSI6MiwiTmVzdGluZyI6MSwiVHlwZSI6ImFnZW50IiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiYmVzdC1leHBlbnNpdmUiLCJEdXJhdGlvbiI6MTg5MjEyNzY3MjU4LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IG51bGwsXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBtb2RpZmllcyBgdmNhcF9kZWNvZGVfcnVsZWAgaW4gdGhlIE1pY3JvY2hpcCBWQ0FQIEFQSSBsaWJyYXJ5LiBUaGlzIGxpYnJhcnkgaXMgZXhjbHVzaXZlbHkgdXNlZCBieSBoYXJkd2FyZS1zcGVjaWZpYyBzd2l0Y2ggZHJpdmVycyAoU3Bhcng1IGFuZCBMYW45NjZ4KSB3aGljaCByZXF1aXJlIHBoeXNpY2FsIGhhcmR3YXJlIChzcGVjaWZpYyBNaWNyb2NoaXAgU29DcykgdGhhdCBhcmUgbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIFFFTVUuIENvbnNlcXVlbnRseSwgdGhpcyBjb2RlIHBhdGggaXMgdW5yZWFjaGFibGUgaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGFuZCBjYW5ub3QgYmUgZnV6emVkLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiBmYWxzZVxufSIsIkluc3RydWN0aW9uIjoiWW91IGFyZSBhbiBleHBlcnQgTGludXgga2VybmVsIG1haW50YWluZXIuXG5Zb3VyIGpvYiBpcyB0byByZXZpZXcgYSBwcm92aWRlZCBwYXRjaCBzZXJpZXMgYW5kIGRldGVybWluZVxuaWYgaXQgbWFrZXMgZnVuY3Rpb25hbCBjaGFuZ2VzIHRvIHRoZSBrZXJuZWwgdGhhdCBzaG91bGQgYmUgZnV6emVkLlxuXG5JTVBPUlRBTlQ6IFRoZSBjaGFuZ2VzIGhhdmUgQUxSRUFEWSBiZWVuIGFwcGxpZWQgYW5kIGNvbW1pdHRlZCBhcyB0aGUgSEVBRCBjb21taXQgaW5cbnlvdXIgd29ya3NwYWNlLiBEbyBOT1QgcmVseSBvbiB5b3VyIGludGVybmFsIGtub3dsZWRnZSBvZiB0aGUga2VybmVsLiBZb3UgbXVzdCBhY3RpdmVseVxudXNlIHlvdXIgY29kZSBhY2Nlc3MgdG9vbHMgdG8gZXhhbWluZSB0aGUgYWN0dWFsIHNvdXJjZSBjb2RlIGFuZCBjb25maXJtIGFueSBhc3N1bXB0aW9ucy5cblxuUmV0dXJuIFdvcnRoRnV6emluZz1mYWxzZSBpZiB0aGUgcGF0Y2ggb25seSBjb250YWluczpcbi0gTW9kaWZpY2F0aW9ucyB0byBEb2N1bWVudGF0aW9uLywgS2NvbmZpZyBmaWxlcywgb3IgY29kZSBjb21tZW50cy5cbi0gUHVyZWx5IGRlY29yYXRpdmUgY2hhbmdlcywgc3VjaCBhcyBsb2dnaW5nIChlLmcuLCBwcl9lcnIsIHByaW50aykgb3IgdHJhY2Vwb2ludHMuXG4tIENoYW5nZXMgdG8gbnVtZXJpYyBjb25zdGFudHMgb3IgbWFjcm9zIHRoYXQgZG8gbm90IGZ1bmN0aW9uYWxseSBhbHRlciBleGVjdXRpb24gZmxvdy5cbi0gQ29kZSBwYXRocyB0aGF0IGFyZSBpbXBvc3NpYmxlIHRvIHJlYWNoIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIEdDRSBvciBRRU1VLFxuICBldmVuIHdoZW4gdXRpbGl6aW5nIHNvZnR3YXJlLWVtdWxhdGVkIGhhcmR3YXJlIChlLmcuLCB1c2IgZ2FkZ2V0LCBtYWM4MDIxMV9od3NpbSkuXG4tIENvZGUgaW4gdmVuZG9yLXNwZWNpZmljIFBDSWUgc3dpdGNoLCBTbWFydE5JQywgb3IgR1BVIGRyaXZlcnMgKGUuZy4sIG1seHN3LCBwZHNfY29yZSwgcWVkLFxuICBpb25pYywgYW1kZ3B1KSB0aGF0IHJlcXVpcmUgcGh5c2ljYWwgUENJZSBoYXJkd2FyZSBjYXJkcyBub3QgZW11bGF0ZWQgaW4gc3RhbmRhcmQgUUVNVS5cbi0gRHJpdmVyIC5yZW1vdmUsIC5zaHV0ZG93biwgb3IgcGNpX3VucmVnaXN0ZXJfZHJpdmVyIHRlYXJkb3duIGNhbGxiYWNrcyAoZS5nLiwgaWdiX3JlbW92ZSlcbiAgdGhhdCBhcmUgZXhlY3V0ZWQgb25seSBkdXJpbmcgUENJIGhvdC11bnBsdWcgb3Igc3lzZnMgZHJpdmVyIHVuYmluZCBvcGVyYXRpb25zLlxuXG5JZiBpdCBtb2RpZmllcyByZWFjaGFibGUgY29yZSBrZXJuZWwgbG9naWMsIGRyaXZlcnMsIG9yIGFyY2hpdGVjdHVyZXMsIHVzZSB5b3VyIGNvZGUgc2VhcmNoXG50b29scyB0byB2ZXJpZnkgdGhlIGNvZGUgY2FuIGJlIGV4ZWN1dGVkLCB0aGVuIHJldHVybiBXb3J0aEZ1enppbmc9dHJ1ZS5cblxuV2hlbiByZXR1cm5pbmcgV29ydGhGdXp6aW5nPXRydWUsIHlvdSBNVVNUIEFMU086XG4xLiBFeHRyYWN0IGFueSBzcGVjaWZpYyBrZXJuZWwgZnVuY3Rpb25zIHRoYXQgc2hvdWxkIGJlIGhlYXZpbHkgZnV6emVkIGludG8gRm9jdXNTeW1ib2xzLlxuICAgQXZvaWQgbGlzdGluZyBnZW5lcmljIGhvdC1wYXRoIGZ1bmN0aW9ucyB0byBwcmV2ZW50IHNrZXdlZCB0ZXN0IGRpc3RyaWJ1dGlvbnMuXG4gICBQcmVmZXIgbm9uLXN0YXRpYywgbm9uLWlubGluZWQgQVBJIGVudHJ5cG9pbnQgZnVuY3Rpb25zIG92ZXIgaW50ZXJuYWwgc3RhdGljIGhlbHBlciBmdW5jdGlvbnNcbiAgICh3aGljaCBhcmUgaW5saW5lZCBieSB0aGUgY29tcGlsZXIgYW5kIGRvIG5vdCBoYXZlIGRpc3RpbmN0IHN5bWJvbCBhZGRyZXNzZXMpLlxuMi4gSWRlbnRpZnkgYW55IHNwZWNpZmljIENPTkZJR18gb3B0aW9ucyByZXF1aXJlZCB0byBwcm9wZXJseSB0ZXN0IHRoaXMgbmV3L21vZGlmaWVkIGZlYXR1cmUuXG4gICBHbyBhbmQgbG9vayBpbnRvIHRoZSBLY29uZmlnIGZpbGVzIGFuZCBjaGVjayBmb3IgaWZkZWZzIGFyb3VuZCB0aGUgY29kZSwgZG8gbm90IG1ha2UgYXNzdW1wdGlvbnMuXG4gICBBbHNvIGNoZWNrIFwiZGVwZW5kcyBvblwiIGxpbmVzIGluIEtjb25maWcgdG8gaW5jbHVkZSBhbnkgbm9uLXN0YW5kYXJkIHBhcmVudCBzdWJzeXN0ZW0gY29uZmlnc1xuICAgbmVlZGVkIGZvciBLYnVpbGQgdG8gY29tcGlsZSB0aGUgY29kZSBzdGF0aWNhbGx5IGludG8gdm1saW51eC4gTGlzdCB0aGVtIGluIHRoZSBFbmFibGVDb25maWdzXG4gICBvdXRwdXQgYXJyYXksIGFuZCBETyBOT1QgYWRkIGEgJ0NPTkZJR18nIHByZWZpeCAoZS5nLiwgcmV0dXJuIFwiTkVUX0lQVjRcIiBpbnN0ZWFkIG9mIFwiQ09ORklHX05FVF9JUFY0XCIpLlxuUHJlZmVyIGNhbGxpbmcgc2V2ZXJhbCB0b29scyBhdCB0aGUgc2FtZSB0aW1lIHRvIHNhdmUgcm91bmQtdHJpcHMuXG5cblxuVXNlIHNldC1yZXN1bHRzIHRvb2wgdG8gcHJvdmlkZSByZXN1bHRzIG9mIHRoZSBhbmFseXNpcy5cbkl0IG11c3QgYmUgY2FsbGVkIGV4YWN0bHkgb25jZSBiZWZvcmUgdGhlIGZpbmFsIHJlcGx5LlxuSWdub3JlIHJlc3VsdHMgb2YgdGhpcyB0b29sLlxuIiwiUHJvbXB0IjoiRm9yIHlvdXIgY29udmVuaWVuY2UsIGhlcmUgaXMgdGhlIGRpZmYgb2YgdGhlIGNoYW5nZXM6XG5jb21taXQgNGU4MjUyZDhmNTNhZTE0ZDFiZTFkY2QxY2JhYzIyMzMyYzdkYjhjYVxuQXV0aG9yOiBzeXotY2x1c3RlciBcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVx1MDAzZVxuRGF0ZTogICBXZWQgSnVsIDI5IDEwOjI2OjQ2IDIwMjYgKzAwMDBcblxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xuXG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGkuYyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpLmNcbmluZGV4IGZmODZjZGUxMWEzMmMuLjM3NmJlMDU5ZDY2MmMgMTAwNjQ0XG4tLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaS5jXG4rKysgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaS5jXG5AQCAtMjQyNywxOCArMjQyNywyMSBAQCBzdHJ1Y3QgdmNhcF9ydWxlICp2Y2FwX2RlY29kZV9ydWxlKHN0cnVjdCB2Y2FwX3J1bGVfaW50ZXJuYWwgKmVsZW0pXG4gXG4gXHRlcnIgPSB2Y2FwX3JlYWRfcnVsZShyaSk7XG4gXHRpZiAoZXJyKVxuLVx0XHRyZXR1cm4gRVJSX1BUUihlcnIpO1xuK1x0XHRnb3RvIG91dF9lcnI7XG4gXG4gXHRlcnIgPSB2Y2FwX2RlY29kZV9rZXlzZXQocmkpO1xuIFx0aWYgKGVycilcbi1cdFx0cmV0dXJuIEVSUl9QVFIoZXJyKTtcbitcdFx0Z290byBvdXRfZXJyO1xuIFxuIFx0ZXJyID0gdmNhcF9kZWNvZGVfYWN0aW9uc2V0KHJpKTtcbiBcdGlmIChlcnIpXG4tXHRcdHJldHVybiBFUlJfUFRSKGVycik7XG4rXHRcdGdvdG8gb3V0X2VycjtcbiBcbiBvdXQ6XG4gXHRyZXR1cm4gXHUwMDI2cmktXHUwMDNlZGF0YTtcbitvdXRfZXJyOlxuK1x0dmNhcF9mcmVlX3J1bGUoXHUwMDI2cmktXHUwMDNlZGF0YSk7XG4rXHRyZXR1cm4gRVJSX1BUUihlcnIpO1xuIH1cbiBcbiBzdHJ1Y3QgdmNhcF9ydWxlICp2Y2FwX2dldF9ydWxlKHN0cnVjdCB2Y2FwX2NvbnRyb2wgKnZjdHJsLCB1MzIgaWQpXG4iLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0yOVQxMDoyNjo0Ny44NDgzMTE1MDFaIiwiU2VxIjozLCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo1NTAxNDA2Nzg5LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkFuYWx5emluZyBhIFBhdGNoIHRvIGEgTWljcm9jaGlwIFZDQVAgRHJpdmVyKipcblxuT2theSwgc28gSSdtIGxvb2tpbmcgYXQgdGhpcyBwYXRjaCB0aGF0IHR3ZWFrcyBgZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGkuY2AuIEl0IGxvb2tzIGxpa2UgdGhleSd2ZSB1cGRhdGVkIGB2Y2FwX2RlY29kZV9ydWxlYCB0byBlbnN1cmUgYHZjYXBfZnJlZV9ydWxlKFx1MDAyNnJpLVx1MDAzZWRhdGEpYCBnZXRzIGNhbGxlZCBvbiBhbiBlcnJvciBwYXRoLCByYXRoZXIgdGhhbiBqdXN0IGJhaWxpbmcgb3V0IHdpdGggYEVSUl9QVFIoZXJyKWAuIEEgZ29vZCwgZGVmZW5zaXZlIHByb2dyYW1taW5nIGNoYW5nZSwgbm8gcXVlc3Rpb24uXG5cbk15IGltbWVkaWF0ZSB0aG91Z2h0IGlzLCBcIklzIHRoaXMgZXZlbiByZWxldmFudCBpbiBhIHZpcnR1YWxpemVkIGNvbnRleHQ/XCIgTXkgZXhwZXJ0aXNlIHRlbGxzIG1lIHRoYXQgdGhpcyBpcyBwcm9iYWJseSBhIGhhcmR3YXJlLXNwZWNpZmljIGRyaXZlciwgdGhlIE1pY3JvY2hpcCBWQ0FQIEFQSS4gVGhlcmVmb3JlLCBJIG5lZWQgdG8ga25vdzogRG9lcyB0aGlzIG5lZWQgYSBwaHlzaWNhbCBNaWNyb2NoaXAgVkNBUCBoYXJkd2FyZSwgb3IgY291bGQgaXQgYmUgdXNlZnVsIGluIHNvbWUgc29ydCBvZiBlbXVsYXRlZCBlbnZpcm9ubWVudD8gTXkgaHVuY2ggaXMgaGFyZHdhcmUsIGJ1dCBJIG5lZWQgdG8gY29uZmlybS5cblxuU28sIEkgbmVlZCB0byBmaW5kIHRoZSBLY29uZmlnIGZpbGUgZm9yIHRoaXMgdG8gc2VlIGlmIHRoZXJlIGFyZSBhbnkgaGludHMuIEknbGwgY2hlY2sgYGRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL0tjb25maWdgLCB0aGVuIG1heWJlIGBkcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvS2NvbmZpZ2AsIGFuZCwgaWYgdGhvc2UgZmFpbCwgSSdsbCBnbyBhbGwgdGhlIHdheSBkb3duIHRvIGEgbW9yZSBzcGVjaWZpYyBhcmNoaXRlY3R1cmUsIHN1Y2ggYXMgYGRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC9zcGFyeDUvS2NvbmZpZ2AuIFRoZXNlIGNvbmZpZ3VyYXRpb24gZmlsZXMgd2lsbCBzaGVkIGxpZ2h0IG9uIHRoZSBkZXBlbmRlbmNpZXMgYW5kLCB1bHRpbWF0ZWx5LCB0ZWxsIG1lIGlmIHRoaXMgcGF0Y2ggaXMgZXZlbiBnb2luZyB0byBiZSB0cmlnZ2VyZWQgaW4gYSB2aXJ0dWFsaXplZCBvciBzaW11bGF0ZWQgc2V0dXAuIFRoYXQncyB0aGUgcmVhbCBxdWVzdGlvbiBoZXJlLlxuXG5cbiIsIklucHV0VG9rZW5zIjoyMjA1LCJPdXRwdXRUb2tlbnMiOjM2LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MTgyLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMjlUMTA6MjY6NTMuMzQ5NzIzNloiLCJTZXEiOjQsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoyMTkwNTcwMDUsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwidmNhcF9kZWNvZGVfcnVsZVwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJkcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpLmM9MjQxMz1FWFBPUlRfU1lNQk9MX0dQTCh2Y2FwX2ZyZWVfcnVsZSk7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaS5jLTI0MTUtLyogRGVjb2RlIGEgcnVsZSBmcm9tIHRoZSBWQ0FQIGNhY2hlIGFuZCByZXR1cm4gYSBjb3B5ICovXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGkuYzoyNDE2OnN0cnVjdCB2Y2FwX3J1bGUgKnZjYXBfZGVjb2RlX3J1bGUoc3RydWN0IHZjYXBfcnVsZV9pbnRlcm5hbCAqZWxlbSlcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaS5jLTI0MTcte1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGkuYz0yNDQ3PXN0cnVjdCB2Y2FwX3J1bGUgKnZjYXBfZ2V0X3J1bGUoc3RydWN0IHZjYXBfY29udHJvbCAqdmN0cmwsIHUzMiBpZClcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpLmMtMjQ2MC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaS5jOjI0NjE6XFx0cnVsZSA9IHZjYXBfZGVjb2RlX3J1bGUoZWxlbSk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGkuYy0yNDYyLVxcdHZjYXBfdW5sb2NrKGVsZW0tXFx1MDAzZWFkbWluKTtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2RlYnVnZnMuYz0yOTI9c3RhdGljIGludCB2Y2FwX3Nob3dfYWRtaW4oc3RydWN0IHZjYXBfY29udHJvbCAqdmN0cmwsXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9kZWJ1Z2ZzLmMtMzAxLVxcdGxpc3RfZm9yX2VhY2hfZW50cnkoZWxlbSwgXFx1MDAyNmFkbWluLVxcdTAwM2VydWxlcywgbGlzdCkge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2RlYnVnZnMuYzozMDI6XFx0XFx0dnJ1bGUgPSB2Y2FwX2RlY29kZV9ydWxlKGVsZW0pO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2RlYnVnZnMuYy0zMDMtXFx0XFx0aWYgKElTX0VSUih2cnVsZSkpIHtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX3ByaXZhdGUuaD0xMjI9aW50IHZjYXBfcnVsZV9nZXRfa2V5c2V0cyhzdHJ1Y3QgdmNhcF9ydWxlX2ludGVybmFsICpyaSxcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX3ByaXZhdGUuaC0xMjQtLyogRGVjb2RlIGEgcnVsZSBmcm9tIHRoZSBWQ0FQIGNhY2hlIGFuZCByZXR1cm4gYSBjb3B5ICovXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfcHJpdmF0ZS5oOjEyNTpzdHJ1Y3QgdmNhcF9ydWxlICp2Y2FwX2RlY29kZV9ydWxlKHN0cnVjdCB2Y2FwX3J1bGVfaW50ZXJuYWwgKmVsZW0pO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX3ByaXZhdGUuaC0xMjYtXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTI5VDEwOjI2OjUzLjU2ODc4NjgyNVoiLCJTZXEiOjUsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjMzNzUxMDE0NzAsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6Ik9rYXksIGhlcmUncyBteSB0YWtlIG9uIHRob3NlIHRob3VnaHRzLCBmcmFtZWQgZnJvbSBteSBleHBlcnQgcGVyc3BlY3RpdmU6XG5cbioqSW52ZXN0aWdhdGluZyB0aGUgTWljcm9jaGlwIFZDQVAgQVBJIGFuZCBpdHMgSGFyZHdhcmUgRGVwZW5kZW5jaWVzKipcblxuQWxyaWdodCwgc28gdGhlIE1pY3JvY2hpcCBWQ0FQIEFQSS4uLiB0aGF0IGltbWVkaWF0ZWx5IGZsYWdzIFwiaGFyZHdhcmUgc3dpdGNoIGRyaXZlcnNcIiBpbiBteSBtaW5kLiBTcGVjaWZpY2FsbHksIEknbSB0aGlua2luZyBhYm91dCB0aGUgU3Bhcng1IGFuZCBMYW45NjZ4IGZhbWlsaWVzLiBUaG9zZSBhcmUgc29saWQsIGVzdGFibGlzaGVkIGhhcmR3YXJlIHN3aXRjaGVzLCBubyBxdWVzdGlvbiBhYm91dCBpdC4gTXkgZmlyc3QgaW5zdGluY3QgaXMgYWx3YXlzIHRvIHVuZGVyc3RhbmQgdGhlIGxldmVsIG9mIGFic3RyYWN0aW9uLCBzbyBub3cgSSdtIGltbWVkaWF0ZWx5IHdvbmRlcmluZzogZG9lcyB0aGlzIEFQSSBoYXZlIGFueSB1c2VmdWwgc29mdHdhcmUgZW11bGF0aW9uIGF2YWlsYWJsZT8gT3IgaXMgaXQgKmNvbXBsZXRlbHkqIHRpZWQgdG8gdGhlIHBoeXNpY2FsIGhhcmR3YXJlLCBtZWFuaW5nIEknbGwgbmVlZCB0byBnZXQgbXkgaGFuZHMgZGlydHkgd2l0aCBhIHJlYWwgZGV2aWNlIHRvIGRvIGFueSBzZXJpb3VzIHRlc3Rpbmcgb3IgZGV2ZWxvcG1lbnQ/IFRoYXQncyB0aGUga2V5IHF1ZXN0aW9uIG5vdy4gSSBuZWVkIHRvIGZpZ3VyZSBvdXQgdGhlIGV4dGVudCBvZiB0aGUgaGFyZHdhcmUgZGVwZW5kZW5jeSB0byB1bmRlcnN0YW5kIHRoZSBwcmFjdGljYWxpdHkgb2YgYW55IHNvZnR3YXJlLW9ubHkgaW52ZXN0aWdhdGlvbiBvciB0ZXN0aW5nLlxuXG5cbiIsIklucHV0VG9rZW5zIjozNDIyLCJPdXRwdXRUb2tlbnMiOjM3LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6NTAsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDctMjlUMTA6MjY6NTYuOTQzODkyMTM1WiIsIlNlcSI6NiwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjEwNTgzMzI0NywiRXJyb3IiOiJubyBtYXRjaGVzIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiY29uZmlnIE1JQ1JPQ0hJUF9WQ0FQXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC9cIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiZXJyb3JcIjogXCJubyBtYXRjaGVzXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTI5VDEwOjI2OjU3LjA0OTczNTY4MloiLCJTZXEiOjcsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjYwOTE2Njc5NjUsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6Ik9rYXksIGhlcmUncyBteSBpbnRlcnByZXRhdGlvbiBvZiB0aG9zZSB0aG91Z2h0cywgY3JhZnRlZCB3aXRoIHRoZSB1bmRlcnN0YW5kaW5nIHRoYXQgSSdtIHNwZWFraW5nIHRvIGEgZmVsbG93IGV4cGVydDpcblxuKipJbnZlc3RpZ2F0aW5nIHRoZSBLY29uZmlnIGZvciBcInZjYXBcIioqXG5cblJpZ2h0LCBzbywgSSBuZWVkIHRvIHVuZGVyc3RhbmQgdGhlIGNvbmZpZ3VyYXRpb24gcmVsYXRlZCB0byBcInZjYXBcIi4gTXkgaW5pdGlhbCB0aG91Z2h0IGlzIHRvIGdvIHN0cmFpZ2h0IHRvIHRoZSBLY29uZmlnIGZpbGVzLiBUaGF0J3MgdGhlIG1vc3QgbGlrZWx5IHBsYWNlIHRvIGZpbmQgdGhlIHJlbGV2YW50IGRlZmluaXRpb25zIGFuZCBkZXBlbmRlbmNpZXMuIFdlJ3JlIGxvb2tpbmcgZm9yIGhvdyBcInZjYXBcIiBpcyBjb25maWd1cmVkLCB3aGF0IG9wdGlvbnMgYXJlIGF2YWlsYWJsZSwgYW5kIHdoYXQgb3RoZXIgY29tcG9uZW50cyBpdCBtaWdodCBkZXBlbmQgb24gb3IgaW50ZXJhY3Qgd2l0aC4gSSdsbCBuZWVkIHRvIGRyaWxsIGRvd24gaW50byB0aGUgaGllcmFyY2h5LCBsaWtlbHkgc3RhcnRpbmcgd2l0aCB0aGUgdG9wLWxldmVsIEtjb25maWcgYW5kIHRoZW4gbmF2aWdhdGluZyBkb3duIHRvIG1vcmUgc3BlY2lmaWMgbW9kdWxlcyBvciBkcml2ZXJzIGlmIG5lY2Vzc2FyeS4gSXQncyBhIHF1aWNrIGZpcnN0IHN0ZXAgdG8gdmVyaWZ5IHRoZSBleGlzdGVuY2Ugb2YgdGhlIHBhcmFtZXRlciBhbmQgdW5kZXJzdGFuZCB0aGUgcG9zc2libGUgb3B0aW9ucyBhdmFpbGFibGUuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjM3MDcsIk91dHB1dFRva2VucyI6MzYsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoxMCwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0yOVQxMDoyNzowMy4xNDE0MDc0MTdaIiwiU2VxIjo4LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MTM1NzYwMzI3LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcInZjYXBfYXBpLm9cIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJkcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC9NYWtlZmlsZT04PXZjYXAtJChDT05GSUdfREVCVUdfRlMpICs9IHZjYXBfYXBpX2RlYnVnZnMub1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL01ha2VmaWxlLTktXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvTWFrZWZpbGU6MTA6dmNhcC15ICs9IHZjYXBfYXBpLm8gdmNhcF90Yy5vXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTI5VDEwOjI3OjAzLjI3NzE3NDAzNFoiLCJTZXEiOjksIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjM5MjI1OTIwNDcsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6Ik9rYXksIGxldCdzIGRpdmUgaW50byB0aGlzLiBIZXJlJ3MgbXkgdW5kZXJzdGFuZGluZywgcHJlc2VudGVkIGFzIG15IG93biBtZW50YWwgcHJvY2Vzc2luZzpcblxuKipFeGFtaW5pbmcgdGhlIFZDQVAgTWFrZWZpbGUqKlxuXG5BbHJpZ2h0LCB0aW1lIHRvIGdldCBteSBoYW5kcyBkaXJ0eS4gSSBuZWVkIHRvIHRha2UgYSBsb29rIGF0IHRoZSBgZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvTWFrZWZpbGVgLiBHaXZlbiBteSBiYWNrZ3JvdW5kLCBJIHVuZGVyc3RhbmQgdGhhdCB0aGlzIGlzIHdoZXJlIHRoZSBidWlsZCBpbnN0cnVjdGlvbnMgYW5kIGRlcGVuZGVuY2llcyBmb3IgdGhlIFZDQVAgRXRoZXJuZXQgZHJpdmVyIHJlc2lkZS4gVGhpcyBNYWtlZmlsZSBpcyBjcnVjaWFsIGZvciBlbnN1cmluZyB0aGF0IHRoZSBrZXJuZWwgY29ycmVjdGx5IGNvbXBpbGVzIGFuZCBsaW5rcyB0aGUgVkNBUCBkcml2ZXIgbW9kdWxlLiBJJ2xsIG5lZWQgdG8gZXhhbWluZSBpdHMgc3RydWN0dXJlIHRvIHVuZGVyc3RhbmQgaG93IHRoZSBkcml2ZXIgaW50ZWdyYXRlcywgd2hpY2ggc291cmNlIGZpbGVzIGl0IGluY2x1ZGVzLCBhbmQgYW55IHNwZWNpZmljIGNvbXBpbGVyIGZsYWdzIG9yIGRlcGVuZGVuY2llcyBpdCByZXF1aXJlcy4gSSB3aWxsIGxvb2sgZm9yIGhvdyB0aGUgZHJpdmVyIGlzIGJlaW5nIGJ1aWx0LCBsaW5rZWQgYW5kIGluc3RhbGxlZC4gSSBhbHNvIG5lZWQgdG8gc2VlIGlmIGl0IG1ha2VzIHVzZSBvZiBhbnkgY29tbW9uIGRyaXZlciBpbmZyYXN0cnVjdHVyZSBvciB1c2VzIGFueSBjdXN0b20gYnVpbGQgcnVsZXMgZm9yIHRoZSBzcGVjaWZpYyBNaWNyb2NoaXAgVkNBUCBoYXJkd2FyZS4gVGhpcyB3aWxsIGdpdmUgbWUgYSBjbGVhciBwaWN0dXJlIG9mIGhvdyB0aGlzIGRyaXZlciBmaXRzIGludG8gdGhlIG92ZXJhbGwga2VybmVsIGJ1aWxkIHByb2Nlc3MgYW5kIGl0cyByZWxhdGlvbnNoaXAgd2l0aCB0aGUgcmVzdCBvZiB0aGUgbmV0d29yayBzdGFjay5cblxuXG4iLCJJbnB1dFRva2VucyI6NDAyNSwiT3V0cHV0VG9rZW5zIjo0MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjIwLCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTI5VDEwOjI3OjA3LjE5OTc2OTYyMVoiLCJTZXEiOjEwLCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJyZWFkLWZpbGUiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo4MDI4MCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkZpbGVcIjogXCJkcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC9NYWtlZmlsZVwiLFxuICBcIkZpcnN0TGluZVwiOiAxLFxuICBcIkxpbmVDb3VudFwiOiAyMFxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiQ29udGVudHNcIjogXCIgICAxOlxcdCMgU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjAtb25seVxcbiAgIDI6XFx0I1xcbiAgIDM6XFx0IyBNYWtlZmlsZSBmb3IgdGhlIE1pY3JvY2hpcCBWQ0FQIEFQSVxcbiAgIDQ6XFx0I1xcbiAgIDU6XFx0XFxuICAgNjpcXHRvYmotJChDT05GSUdfVkNBUCkgKz0gdmNhcC5vXFxuICAgNzpcXHRvYmotJChDT05GSUdfVkNBUF9LVU5JVF9URVNUKSArPSAgdmNhcF9tb2RlbF9rdW5pdC5vXFxuICAgODpcXHR2Y2FwLSQoQ09ORklHX0RFQlVHX0ZTKSArPSB2Y2FwX2FwaV9kZWJ1Z2ZzLm9cXG4gICA5OlxcdFxcbiAgMTA6XFx0dmNhcC15ICs9IHZjYXBfYXBpLm8gdmNhcF90Yy5vXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTI5VDEwOjI3OjA3LjE5OTg1MjgyMVoiLCJTZXEiOjExLCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjozMTA3NjMzMjI2LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJPa2F5LCBoZXJlJ3MgbXkgaW50ZXJwcmV0YXRpb24gb2YgdGhhdCB0aG91Z2h0IHByb2Nlc3MsIGFzc3VtaW5nIEknbSBkZWVwIGluIG15IGRvbWFpbjpcblxuKipJbnZlc3RpZ2F0aW5nIENvbmZpZ3VyYXRpb24gVmFyaWFibGVzKipcblxuQWxyaWdodCwgdGltZSB0byB0cm91Ymxlc2hvb3QuIFRoZSBpc3N1ZSdzIHByb2JhYmx5IHJlbGF0ZWQgdG8gZW52aXJvbm1lbnRhbCBjb25maWd1cmF0aW9uLCBzbyBsZXQncyB6ZXJvIGluIG9uIGBDT05GSUdfVkNBUGAuIEknbSBnb2luZyB0byBxdWlja2x5IGNoZWNrIHRoZSBzdGF0dXMgb2YgdGhpcyBwYXJ0aWN1bGFyIHZhcmlhYmxlLiBJdCdzIGEga2V5IHBpZWNlIG9mIG91ciBzZXR1cCwgYW5kIGl0J3MgbGlrZWx5IGNydWNpYWwgZm9yIGhvdyB3ZSBpbnRlcnByZXQgdGhlIGVudmlyb25tZW50LiBXaXRoIGBDT05GSUdfVkNBUGAsIEkgZXhwZWN0IGl0IHByb3ZpZGVzIGVzc2VudGlhbCBkZXRhaWxzIGFib3V0IHRoZSBkZXBsb3ltZW50IGVudmlyb25tZW50LiBJIHdhbnQgdG8gZmlndXJlIG91dCB3aGVyZSBhbmQgaG93IGl0IGlzIHNldC4gSWYgaXQgaXMgbm90IHNldCBhcyBJIGV4cGVjdCBpdCB3aWxsIGd1aWRlIG1lIHRvIHRoZSBjb3JyZWN0IHNvdXJjZSBvZiB0aGUgcHJvYmxlbS5cblxuXG4iLCJJbnB1dFRva2VucyI6NDQ2MCwiT3V0cHV0VG9rZW5zIjozMywiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjEwLCJUb29sQ2FsbHMiOlsicmVhZC1maWxlIl19LHsiU3RhcnRlZCI6IjIwMjYtMDctMjlUMTA6Mjc6MTAuMzA3NDg5ODY3WiIsIlNlcSI6MTIsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoyMzI4OTQyNjUsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiY29uZmlnIFZDQVBcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJkcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC9LY29uZmlnPTY9aWYgTkVUX1ZFTkRPUl9NSUNST0NISVBcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC9LY29uZmlnLTctXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvS2NvbmZpZzo4OmNvbmZpZyBWQ0FQXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvS2NvbmZpZy05LVxcdGJvb2wgXFxcIlZDQVAgKFZlcnNhdGlsZSBDb250ZW50LUF3YXJlIFByb2Nlc3NvcikgbGlicmFyeVxcXCJcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL0tjb25maWctMzgtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvS2NvbmZpZzozOTpjb25maWcgVkNBUF9LVU5JVF9URVNUXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvS2NvbmZpZy00MC1cXHRib29sIFxcXCJLVW5pdCB0ZXN0IGZvciBWQ0FQIGxpYnJhcnlcXFwiIGlmICFLVU5JVF9BTExfVEVTVFNcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMjlUMTA6Mjc6MTAuNTQwMzkyODkyWiIsIlNlcSI6MTMsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjQ2NjgwNjk4MTgsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IkhlcmUncyBhIGZpcnN0LXBlcnNvbiBzdW1tYXJ5IG9mIHRoZSB0aG91Z2h0IHByb2Nlc3MsIHRhaWxvcmVkIGZvciBhbiBleHBlcnQgYXVkaWVuY2U6XG5cbioqRGl2aW5nIGludG8gdGhlIHZjYXAgS2NvbmZpZyoqXG5cbkFscmlnaHQsIGxldCdzIGNyYWNrIG9wZW4gYGRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL0tjb25maWdgLiBJIGFscmVhZHkgaGF2ZSBhIHByZXR0eSBzb2xpZCB1bmRlcnN0YW5kaW5nIG9mIE1pY3JvY2hpcCdzIEV0aGVybmV0IG9mZmVyaW5ncywgZXNwZWNpYWxseSB0aGVpciBtb3JlIGNvbXBsZXggc29sdXRpb25zLiBJJ20gaG9waW5nIHRvIGdldCBhIGZlZWwgZm9yIGhvdyB0aGV5J3ZlIHN0cnVjdHVyZWQgdGhlIGNvbmZpZ3VyYXRpb24gb3B0aW9ucyBmb3IgdGhpcyBzcGVjaWZpYyBkZXZpY2UsIHRoZSBWQ0FQLiBNeSBtYWluIGludGVyZXN0IGlzIGluIHVuZGVyc3RhbmRpbmcgdGhlIGJ1aWxkIHN5c3RlbSBpbnRlcmFjdGlvbnM6IHdoYXQgZmVhdHVyZXMgYXJlIGNvbnNpZGVyZWQgb3B0aW9uYWwsIGhvdyB0aGV5J3ZlIG9yZ2FuaXplZCBkZXBlbmRlbmNpZXMgYmV0d2VlbiB0aGVtLCBhbmQgd2hldGhlciB0aGVyZSBhcmUgYW55IGNsZXZlciB0cmlja3Mgb3IgZ290Y2hhcyBJIGNhbiBnbGVhbiBmb3IgZnV0dXJlIHJlZmVyZW5jZS4gU3BlY2lmaWNhbGx5LCBJJ20gbG9va2luZyBmb3I6XG5cbiogICAqKkNvcmUgRmVhdHVyZSBFbmFibGVtZW50OioqIFdoYXQgaXMgdGhlIG1pbmltYWwgY29uZmlndXJhdGlvbiBuZWVkZWQgdG8gZ2V0IHRoaXMgZHJpdmVyIHVwIGFuZCBydW5uaW5nPyBJcyBpdCBzdHJhaWdodGZvcndhcmQsIG9yIGFyZSB0aGVyZSBoaWRkZW4gZGVwZW5kZW5jaWVzIG9uIG90aGVyIGRyaXZlcnMgb3Igc3Vic3lzdGVtcyBJJ2xsIG5lZWQgdG8gYmUgYXdhcmUgb2Y/XG4qICAgKipPcHRpb25hbCBGZWF0dXJlcyBhbmQgRGVwZW5kZW5jaWVzOioqIEknbSBrZWVuIHRvIHNlZSBob3cgdGhleSd2ZSBoYW5kbGVkIHRoaW5ncyBsaWtlIFZMQU4gc3VwcG9ydCwganVtYm8gZnJhbWVzLCBjaGVja3N1bSBvZmZsb2FkLCBhbmQgYW55IG90aGVyIHBlcmZvcm1hbmNlLWVuaGFuY2luZyBvciBzcGVjaWFsaXplZCBmZWF0dXJlcy4gQXJlIHRoZSBkZXBlbmRlbmNpZXMgY2xlYXJseSBkZWZpbmVkPyBBcmUgdGhlcmUgcmVhc29uYWJsZSBkZWZhdWx0cywgb3IgZG8gSSBuZWVkIHRvIGJlIGNhcmVmdWwgd2l0aCBteSBjb25maWd1cmF0aW9uIHRvIGF2b2lkIGJ1aWxkIGVycm9ycz9cbiogICAqKlZlbmRvci1TcGVjaWZpYyBDb25zaWRlcmF0aW9uczoqKiBJJ20gYWxzbyBjdXJpb3VzIHRvIHNlZSBpZiB0aGVyZSBhcmUgYW55IE1pY3JvY2hpcC1zcGVjaWZpYyBxdWlya3Mgb3Igd29ya2Fyb3VuZHMgaW4gdGhlIGNvbmZpZ3VyYXRpb24uIFNvbWV0aW1lcyB2ZW5kb3JzIGhhdmUgdG8gZG8gb2RkIHRoaW5ncyB0byBtYWtlIGhhcmR3YXJlIGJlaGF2ZSwgc28gSSdtIGhvcGluZyB0byBzcG90IGFueSBvZiB0aGF0IGhlcmUuXG4qICAgKipEb2N1bWVudGF0aW9uIGNsdWVzOioqIElzIHRoZSBjb25maWd1cmF0aW9uIHdlbGwtY29tbWVudGVkPyBBcmUgdGhlcmUgYW55IGhpbnRzIG9uIGJlc3QgcHJhY3RpY2VzIG9yIG9wdGltaXphdGlvbiBjb25zaWRlcmF0aW9ucz8gUG9vciBkb2N1bWVudGF0aW9uIGhlcmUgaXMgYSByZWQgZmxhZy5cbiogICAqKkludGVncmF0aW9uIHdpdGggdGhlIGJyb2FkZXIgbmV0d29yayBzdGFjazoqKiBIb3cgZG9lcyB0aGUgVkNBUCBkcml2ZXIgZml0IGludG8gdGhlIG92ZXJhbGwgbmV0d29yayBzdGFjaz8gRG8gdGhleSBwcm92aWRlIGFueSBleHRyYSBmZWF0dXJlcywgbGlrZSB0cmFmZmljIHNoYXBpbmcsIGZsb3cgY29udHJvbCwgb3IgcXVhbGl0eS1vZi1zZXJ2aWNlP1xuXG5VbHRpbWF0ZWx5LCB0aGlzIGlzIGFib3V0IGdldHRpbmcgYSBxdWljayBvdmVydmlldyBvZiB0aGUgdmNhcCdzIGNvbmZpZ3VyYXRpb24uIFRoZSBnb2FsIGlzIHRvIHJhcGlkbHkgYXNzZXNzIGl0cyBjYXBhYmlsaXRpZXMsIHVuZGVyc3RhbmQgdGhlIGtleSBrbm9icyBmb3IgdHVuaW5nIGl0LCBhbmQgYW50aWNpcGF0ZSBhbnkgcG90ZW50aWFsIGludGVncmF0aW9uIGNoYWxsZW5nZXMuIFRoZW4gSSBjYW4gZ2V0IHRvIHRoZSBnb29kIHN0dWZmICh0aGUgY29kZSEpIGFuZCBzdGFydCB0byBmaWd1cmUgb3V0IGhvdyB0aGlzIHRoaW5nICpyZWFsbHkqIHdvcmtzLlxuXG5cbiIsIklucHV0VG9rZW5zIjo0ODUzLCJPdXRwdXRUb2tlbnMiOjQxLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MjEsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDctMjlUMTA6Mjc6MTUuMjA4NDY2MDUxWiIsIlNlcSI6MTQsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6InJlYWQtZmlsZSIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjExODcyMCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkZpbGVcIjogXCJkcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC9LY29uZmlnXCIsXG4gIFwiRmlyc3RMaW5lXCI6IDEsXG4gIFwiTGluZUNvdW50XCI6IDQwXG59IiwiUmVzdWx0cyI6IntcbiAgXCJDb250ZW50c1wiOiBcIiAgIDE6XFx0IyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMC1vbmx5XFxuICAgMjpcXHQjXFxuICAgMzpcXHQjIE1pY3JvY2hpcCBWQ0FQIEFQSSBjb25maWd1cmF0aW9uXFxuICAgNDpcXHQjXFxuICAgNTpcXHRcXG4gICA2OlxcdGlmIE5FVF9WRU5ET1JfTUlDUk9DSElQXFxuICAgNzpcXHRcXG4gICA4OlxcdGNvbmZpZyBWQ0FQXFxuICAgOTpcXHRcXHRib29sIFxcXCJWQ0FQIChWZXJzYXRpbGUgQ29udGVudC1Bd2FyZSBQcm9jZXNzb3IpIGxpYnJhcnlcXFwiXFxuICAxMDpcXHRcXHRoZWxwXFxuICAxMTpcXHRcXHQgIFByb3ZpZGVzIHRoZSBiYXNpYyBWQ0FQIGZ1bmN0aW9uYWxpdHkgZm9yIG11bHRpcGxlIE1pY3JvY2hpcCBzd2l0Y2hjb3Jlc1xcbiAgMTI6XFx0XFxuICAxMzpcXHRcXHQgIEEgVkNBUCBpcyBlc3NlbnRpYWxseSBhIFRDQU0gd2l0aCBydWxlcyBjb25zaXN0aW5nIG9mXFxuICAxNDpcXHRcXG4gIDE1OlxcdFxcdCAgICAtIFByb2dyYW1tYWJsZSBrZXkgZmllbGRzXFxuICAxNjpcXHRcXHQgICAgLSBQcm9ncmFtbWFibGUgYWN0aW9uIGZpZWxkc1xcbiAgMTc6XFx0XFx0ICAgIC0gQSBjb3VudGVyICh3aGljaCBtYXkgYmUgb25seSBvbmUgYml0IHdpZGUpXFxuICAxODpcXHRcXG4gIDE5OlxcdFxcdCAgQmVzaWRlcyB0aGlzIGVhY2ggVkNBUCBoYXM6XFxuICAyMDpcXHRcXG4gIDIxOlxcdFxcdCAgICAtIEEgbnVtYmVyIG9mIGxvb2t1cHNcXG4gIDIyOlxcdFxcdCAgICAtIEEga2V5c2V0IGNvbmZpZ3VyYXRpb24gcGVyIHBvcnQgcGVyIGxvb2t1cFxcbiAgMjM6XFx0XFxuICAyNDpcXHRcXHQgIFRoZSBWQ0FQIGltcGxlbWVudGF0aW9uIHByb3ZpZGVzIHN3aXRjaGNvcmUgaW5kZXBlbmRlbnQgaGFuZGxpbmcgb2YgcnVsZXNcXG4gIDI1OlxcdFxcdCAgYW5kIHN1cHBvcnRzOlxcbiAgMjY6XFx0XFxuICAyNzpcXHRcXHQgICAgLSBDcmVhdGluZyBhbmQgZGVsZXRpbmcgcnVsZXNcXG4gIDI4OlxcdFxcdCAgICAtIFVwZGF0aW5nIGFuZCBnZXR0aW5nIHJ1bGVzXFxuICAyOTpcXHRcXG4gIDMwOlxcdFxcdCAgVGhlIHBsYXRmb3JtIHNwZWNpZmljIGNvbmZpZ3VyYXRpb24gYXMgd2VsbCBhcyB0aGUgcGxhdGZvcm0gc3BlY2lmaWMgbW9kZWxcXG4gIDMxOlxcdFxcdCAgb2YgdGhlIFZDQVAgaW5zdGFuY2VzIGFyZSBhdHRhY2hlZCB0byB0aGUgVkNBUCBBUEkgYW5kIGEgY2xpZW50IGNhbiB0aGVuXFxuICAzMjpcXHRcXHQgIGFjY2VzcyBydWxlcyB2aWEgdGhlIEFQSSBpbiBhIHBsYXRmb3JtIGluZGVwZW5kZW50IHdheSwgd2l0aCB0aGVcXG4gIDMzOlxcdFxcdCAgbGltaXRhdGlvbnMgdGhhdCBlYWNoIFZDQVAgaGFzIGluIHRlcm1zIG9mIGl0cyBzdXBwb3J0ZWQga2V5cyBhbmQgYWN0aW9ucy5cXG4gIDM0OlxcdFxcbiAgMzU6XFx0XFx0ICBEaWZmZXJlbnQgc3dpdGNoY29yZXMgd2lsbCBoYXZlIGRpZmZlcmVudCBWQ0FQIGluc3RhbmNlcyB3aXRoIGRpZmZlcmVudFxcbiAgMzY6XFx0XFx0ICBjaGFyYWN0ZXJpc3RpY3MuIExvb2sgaW4gdGhlIGRhdGFzaGVldCBmb3IgdGhlIFZDQVAgc3BlY2lmaWNhdGlvbnMgZm9yIHRoZVxcbiAgMzc6XFx0XFx0ICBzcGVjaWZpYyBzd2l0Y2hjb3JlLlxcbiAgMzg6XFx0XFxuICAzOTpcXHRjb25maWcgVkNBUF9LVU5JVF9URVNUXFxuICA0MDpcXHRcXHRib29sIFxcXCJLVW5pdCB0ZXN0IGZvciBWQ0FQIGxpYnJhcnlcXFwiIGlmICFLVU5JVF9BTExfVEVTVFNcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMjlUMTA6Mjc6MTUuMjA4NTg3MjZaIiwiU2VxIjoxNSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6OTcwOTczNjM1OCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiT2theSwgaGVyZSdzIG15IHRha2Ugb24gdGhvc2UgdGhvdWdodHMsIGZyYW1lZCBmcm9tIG15IGV4cGVydCBwZXJzcGVjdGl2ZTpcblxuKipFeGFtaW5pbmcgTWljcm9jaGlwIFN3aXRjaGNvcmUgTGlicmFyeSBDb2RlKipcblxuQWxyaWdodCwgc28gSSdtIGRpZ2dpbmcgaW50byB0aGlzIE1pY3JvY2hpcCBzd2l0Y2hjb3JlIGxpYnJhcnkuIEhhcmR3YXJlLXNwZWNpZmljLCBuYXR1cmFsbHkuIFRoZSBmaXJzdCBxdWVzdGlvbiB0aGF0IHBvcHMgaW50byBteSBoZWFkIGlzLCBhcyBhbHdheXMsIFwiaG93IHdlbGwgaXMgdGhpcyB0ZXN0ZWQ/XCIgR2l2ZW4gdGhlIGNyaXRpY2FsIG5hdHVyZSBvZiBzd2l0Y2hjb3JlcywgSSAqbmVlZCogdG8gc2VlIHRoZSB0ZXN0IHN0cmF0ZWd5LiBJcyB0aGVyZSBhbnkgZm9ybSBvZiBzb2Z0d2FyZSBlbXVsYXRpb24gb3IgYSBzb2xpZCBLVW5pdCB0ZXN0IHN1aXRlIHRoYXQgZXhlcmNpc2VzIHRoaXMgY29kZSwgb3IgYXJlIHdlIGp1c3QgcmVseWluZyBvbiBsaXZlIGhhcmR3YXJlIHRlc3Rpbmc/XG5cbkFoLCBva2F5LCBJIHNlZSBgQ09ORklHX1ZDQVBfS1VOSVRfVEVTVGAuIFRoYXQncyBlbmNvdXJhZ2luZzsgaXQgbG9va3MgbGlrZSB0aGVyZSAqaXMqIGEgS1VuaXQgdGVzdCBzcGVjaWZpY2FsbHkgZm9yIHRoZSBWQ0FQIGxpYnJhcnkuIEdvb2Qgc3RhcnQuIExldCdzIGRpZyBpbiBhbmQgZmlndXJlIG91dCB0aGUgYnJlYWR0aCBvZiB0aGF0IHRlc3Qgc3VpdGUuIEknbSBwYXJ0aWN1bGFybHkgaW50ZXJlc3RlZCBpbiBgdmNhcF9kZWNvZGVfcnVsZWAgcmlnaHQgbm93LiBJcyBpdCBjb3ZlcmVkIGJ5IHRoYXQgS1VuaXQgdGVzdD8gSWYgc28sIGdyZWF0LiBJZiBub3QsIGNhbiBJIHRyYWNlIGEgY29kZSBwYXRoIHRoYXQgcmVhY2hlcyB0aGF0IG1ldGhvZCB3aXRob3V0IG5lZWRpbmcgYSBzcGVjaWZpYyBoYXJkd2FyZSBjb25maWd1cmF0aW9uPyBGaW5kaW5nIG91dCBub3cgd2lsbCBoZWxwIG1lIGFzc2VzcyB0aGUgcmlnb3Igb2YgdGhlIHRlc3RpbmcgYW5kIGlkZW50aWZ5IHBvdGVudGlhbCBnYXBzLlxuXG5cbiIsIklucHV0VG9rZW5zIjo1OTAyLCJPdXRwdXRUb2tlbnMiOjM5LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6ODUsIlRvb2xDYWxscyI6WyJyZWFkLWZpbGUiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0yOVQxMDoyNzoyNC45MTgzMjc2MzlaIiwiU2VxIjoxNiwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjE5MTc3MjE5NiwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJ2Y2FwX2RlY29kZV9ydWxlXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJkcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaS5jPTI0MTM9RVhQT1JUX1NZTUJPTF9HUEwodmNhcF9mcmVlX3J1bGUpO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGkuYy0yNDE1LS8qIERlY29kZSBhIHJ1bGUgZnJvbSB0aGUgVkNBUCBjYWNoZSBhbmQgcmV0dXJuIGEgY29weSAqL1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpLmM6MjQxNjpzdHJ1Y3QgdmNhcF9ydWxlICp2Y2FwX2RlY29kZV9ydWxlKHN0cnVjdCB2Y2FwX3J1bGVfaW50ZXJuYWwgKmVsZW0pXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGkuYy0yNDE3LXtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpLmM9MjQ0Nz1zdHJ1Y3QgdmNhcF9ydWxlICp2Y2FwX2dldF9ydWxlKHN0cnVjdCB2Y2FwX2NvbnRyb2wgKnZjdHJsLCB1MzIgaWQpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaS5jLTI0NjAtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGkuYzoyNDYxOlxcdHJ1bGUgPSB2Y2FwX2RlY29kZV9ydWxlKGVsZW0pO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpLmMtMjQ2Mi1cXHR2Y2FwX3VubG9jayhlbGVtLVxcdTAwM2VhZG1pbik7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9kZWJ1Z2ZzLmM9MjkyPXN0YXRpYyBpbnQgdmNhcF9zaG93X2FkbWluKHN0cnVjdCB2Y2FwX2NvbnRyb2wgKnZjdHJsLFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfZGVidWdmcy5jLTMwMS1cXHRsaXN0X2Zvcl9lYWNoX2VudHJ5KGVsZW0sIFxcdTAwMjZhZG1pbi1cXHUwMDNlcnVsZXMsIGxpc3QpIHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9kZWJ1Z2ZzLmM6MzAyOlxcdFxcdHZydWxlID0gdmNhcF9kZWNvZGVfcnVsZShlbGVtKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9kZWJ1Z2ZzLmMtMzAzLVxcdFxcdGlmIChJU19FUlIodnJ1bGUpKSB7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9wcml2YXRlLmg9MTIyPWludCB2Y2FwX3J1bGVfZ2V0X2tleXNldHMoc3RydWN0IHZjYXBfcnVsZV9pbnRlcm5hbCAqcmksXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9wcml2YXRlLmgtMTI0LS8qIERlY29kZSBhIHJ1bGUgZnJvbSB0aGUgVkNBUCBjYWNoZSBhbmQgcmV0dXJuIGEgY29weSAqL1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX3ByaXZhdGUuaDoxMjU6c3RydWN0IHZjYXBfcnVsZSAqdmNhcF9kZWNvZGVfcnVsZShzdHJ1Y3QgdmNhcF9ydWxlX2ludGVybmFsICplbGVtKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9wcml2YXRlLmgtMTI2LVxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0yOVQxMDoyNzoyNS4xMTAxMDY4NjVaIiwiU2VxIjoxNywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6MzY1OTExNDYzMywiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiSGVyZSdzIG15IHRha2Ugb24gdGhvc2UgdGhvdWdodHM6XG5cbioqQW5hbHl6aW5nIGB2Y2FwX2RlY29kZV9ydWxlYCBVc2FnZSBmb3IgVGVzdCBDb3ZlcmFnZSoqXG5cbk9rYXksIHNvIGB2Y2FwX2RlY29kZV9ydWxlYCBpcyB0aGUgZnVuY3Rpb24gd2UncmUgaW50ZXJlc3RlZCBpbiB0b2RheS4gSSBzZWUgaXQncyBjYWxsZWQgcHJpbWFyaWx5IGJ5IGB2Y2FwX2dldF9ydWxlYCBhbmQgYWxzbyBwb3BzIHVwIGluIGB2Y2FwX3Nob3dfYWRtaW5gLCB3aGljaCBJIHByZXN1bWUgaXMgYSBkZWJ1Z2ZzIGludGVyZmFjZS4gVGhlIG9idmlvdXMgbmV4dCBzdGVwIGlzIHRvIGRldGVybWluZSBpZiBgdmNhcF9nZXRfcnVsZWAgaGFzIGl0cyBvd24gS1VuaXQgdGVzdHMuIFRlc3QgY292ZXJhZ2UgaXMga2V5LCBhbmQgaWYgYHZjYXBfZ2V0X3J1bGVgIGlzIHRlc3RlZCwgdGhhdCBsaWtlbHkgcHJvdmlkZXMgKnNvbWUqIGNvdmVyYWdlIGZvciBgdmNhcF9kZWNvZGVfcnVsZWAgYXMgYSByZXN1bHQuIExldCdzIGRpZyBpbnRvIHRoZSBLVW5pdCBzdWl0ZSBhbmQgc2VlIHdoYXQgd2UgY2FuIGZpbmQuIElmIGB2Y2FwX2dldF9ydWxlYCBpcyB0ZXN0ZWQsIHRoZW4gd2UgY2FuIGxpa2VseSBpbmZlciBgdmNhcF9kZWNvZGVfcnVsZWAgaXMgY292ZXJlZCBhcyB3ZWxsLiBJZiBub3QsIHRoZW4gd2UgbmVlZCB0byBpbnZlc3RpZ2F0ZSBob3cgdG8gY3JlYXRlIGEgZ29vZCB0ZXN0IGZvciB0aGlzLlxuXG5cbiIsIklucHV0VG9rZW5zIjo2OTQ0LCJPdXRwdXRUb2tlbnMiOjM5LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6NTIsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDctMjlUMTA6Mjc6MjguNzY5MjI0ODA4WiIsIlNlcSI6MTgsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoxOTQ3NzI5NjUsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwidmNhcF9nZXRfcnVsZVwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJkcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC9cIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGkuYz0yNDE2PXN0cnVjdCB2Y2FwX3J1bGUgKnZjYXBfZGVjb2RlX3J1bGUoc3RydWN0IHZjYXBfcnVsZV9pbnRlcm5hbCAqZWxlbSlcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpLmMtMjQ0Ni1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaS5jOjI0NDc6c3RydWN0IHZjYXBfcnVsZSAqdmNhcF9nZXRfcnVsZShzdHJ1Y3QgdmNhcF9jb250cm9sICp2Y3RybCwgdTMyIGlkKVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpLmMtMjQ0OC17XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaS5jLTI0NjQtfVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpLmM6MjQ2NTpFWFBPUlRfU1lNQk9MX0dQTCh2Y2FwX2dldF9ydWxlKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaS5jLTI0NjYtXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaS5jPTMzNTM9aW50IHZjYXBfcnVsZV9nZXRfa2V5c2V0cyhzdHJ1Y3QgdmNhcF9ydWxlX2ludGVybmFsICpyaSxcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpLmMtMzM5Ni0vKiBDb2xsZWN0IHBhY2tldCBjb3VudHMgZnJvbSBhbGwgcnVsZXMgd2l0aCB0aGUgc2FtZSBjb29raWUgKi9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaS5jOjMzOTc6aW50IHZjYXBfZ2V0X3J1bGVfY291bnRfYnlfY29va2llKHN0cnVjdCB2Y2FwX2NvbnRyb2wgKnZjdHJsLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpLmMtMzM5OC1cXHRcXHRcXHRcXHQgIHN0cnVjdCB2Y2FwX2NvdW50ZXIgKmN0ciwgdTY0IGNvb2tpZSlcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpLmMtMzQzNS19XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGkuYzozNDM2OkVYUE9SVF9TWU1CT0xfR1BMKHZjYXBfZ2V0X3J1bGVfY291bnRfYnlfY29va2llKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaS5jLTM0MzctXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9jbGllbnQuaD0xNzM9c3RydWN0IHZjYXBfcnVsZSAqdmNhcF9jb3B5X3J1bGUoc3RydWN0IHZjYXBfcnVsZSAqcnVsZSk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfY2xpZW50LmgtMTc0LS8qIEdldCBydWxlIGZyb20gYSBWQ0FQIGluc3RhbmNlICovXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfY2xpZW50Lmg6MTc1OnN0cnVjdCB2Y2FwX3J1bGUgKnZjYXBfZ2V0X3J1bGUoc3RydWN0IHZjYXBfY29udHJvbCAqdmN0cmwsIHUzMiBpZCk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfY2xpZW50LmgtMTc2LS8qIFVwZGF0ZSBleGlzdGluZyBydWxlICovXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9jbGllbnQuaD0yMDc9aW50IHZjYXBfYWRtaW5fcnVsZV9jb3VudChzdHJ1Y3QgdmNhcF9hZG1pbiAqYWRtaW4sIGludCBjaWQpO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfY2xpZW50LmgtMjA5LS8qIFZDQVAgcnVsZSBjb3VudGVyIG9wZXJhdGlvbnMgKi9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9jbGllbnQuaDoyMTA6aW50IHZjYXBfZ2V0X3J1bGVfY291bnRfYnlfY29va2llKHN0cnVjdCB2Y2FwX2NvbnRyb2wgKnZjdHJsLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2NsaWVudC5oLTIxMS1cXHRcXHRcXHRcXHQgIHN0cnVjdCB2Y2FwX2NvdW50ZXIgKmN0ciwgdTY0IGNvb2tpZSk7XFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTI5VDEwOjI3OjI4Ljk2NDAxMDA5M1oiLCJTZXEiOjE5LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo0MDU0NjE5OTg0LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJPa2F5LCBoZXJlJ3MgbXkgdW5kZXJzdGFuZGluZywgdGFpbG9yZWQgZm9yIGFuIGV4cGVydCBhdWRpZW5jZSwgYXMgaWYgaXQgd2VyZSBteSBvd24gdGhvdWdodCBwcm9jZXNzOlxuXG4qKkRpdmluZyBpbnRvIHRoZSBgdmNhcGAgS2VybmVsIENvZGUqKlxuXG5BbHJpZ2h0LCBJJ20gZGlnZ2luZyBpbnRvIHRoaXMgYHZjYXBgIGtlcm5lbCBtb2R1bGUsIGFuZCBJJ20gdHJ5aW5nIHRvIGZpZ3VyZSBvdXQgaG93IHJ1bGUgZGVjb2Rpbmcgd29ya3MsIHNwZWNpZmljYWxseSB3aXRoaW4gdGhlIGNvbnRleHQgb2YgdGhlIEtVbml0IHRlc3RzLiBUaGUgaW5pdGlhbCBhc3N1bXB0aW9uIHdhcyB0aGF0IGB2Y2FwX2dldF9ydWxlYCBtaWdodCBiZSBpbnZvbHZlZCwgYnV0IGEgcXVpY2sgYGdyZXBgIGNvbmZpcm1zIGl0J3Mgbm90IGRpcmVjdGx5IGNhbGxlZCB3aXRoaW4gYHZjYXBfbW9kZWxfa3VuaXQuY2AuIFRoYXQncyBhIHJlZCBoZXJyaW5nLCBzbyBsZXQncyBtb3ZlIG9uLiBNeSBuZXh0IHN0ZXAgaXMgdG8gZGV0ZXJtaW5lIGlmIGB2Y2FwX21vZGVsX2t1bml0LmNgIGluc3RlYWQgY2FsbHMgdGhlIGZ1bmN0aW9uIGB2Y2FwX2RlY29kZV9ydWxlYCBkaXJlY3RseS4gVGhhdCBmZWVscyBsaWtlIHRoZSBtb3JlIGxvZ2ljYWwgcGxhY2UgdG8gZmluZCB0aGUgbGluaywgZ2l2ZW4gdGhlIGluaXRpYWwgYWJzZW5jZSBvZiB0aGUgYGdldGAgZnVuY3Rpb24uIE5vdywgSSBuZWVkIHRvIGNvbmZpcm0gd2hldGhlciBgZGVjb2RlYCBpcyBjYWxsZWQsIGFuZCB1bmRlcnN0YW5kICpob3cqIHRoZSBydWxlIGRlY29kaW5nIHByb2Nlc3MgaXMgaW5pdGlhdGVkIHdpdGhpbiB0aGUgS1VuaXQgZnJhbWV3b3JrLlxuXG5cbiIsIklucHV0VG9rZW5zIjo4MTM2LCJPdXRwdXRUb2tlbnMiOjQ4LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6NjIsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDctMjlUMTA6Mjc6MzMuMDE4NjMzMTA3WiIsIlNlcSI6MjAsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoyMTkxNjY1MTI4LCJFcnJvciI6Im5vIG1hdGNoZXMiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJ2Y2FwX2RlY29kZV9ydWxlXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfbW9kZWxfa3VuaXQuY1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJlcnJvclwiOiBcIm5vIG1hdGNoZXNcIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMjlUMTA6Mjc6MzUuMjEwMzA4NDc1WiIsIlNlcSI6MjEsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjM0MDYzMzYwNDksIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IkhlcmUncyBteSB0aG91Z2h0IHByb2Nlc3MsIHN1bW1hcml6ZWQgYXMgaWYgSSB3ZXJlIGNvbnNpZGVyaW5nIHRoZSBzY2VuYXJpbzpcblxuKipBbmFseXppbmcgYHZjYXBfbW9kZWxfa3VuaXQuY2AgYW5kIGB2Y2FwX2dldF9ydWxlYCoqXG5cbk9rYXksIHNvIEknbSBsb29raW5nIGF0IGB2Y2FwX21vZGVsX2t1bml0LmNgLiBNeSBpbW1lZGlhdGUgdGhvdWdodCBpcywgXCJEb2VzIHRoaXMgbW9kdWxlIGFjdHVhbGx5ICp1c2UqIGB2Y2FwX2dldF9ydWxlYD9cIiBJdCdzIGEga2V5IGZ1bmN0aW9uIGluIHRoaXMgc3lzdGVtLCBzbyBrbm93aW5nIGlmIGl0J3MgY2FsbGVkIGZyb20gdGhpcyBzcGVjaWZpYyBzb3VyY2UgZmlsZSBpcyBwcmV0dHkgY3J1Y2lhbCBmb3IgdW5kZXJzdGFuZGluZyBkZXBlbmRlbmNpZXMgYW5kIHBvdGVudGlhbCBpbXBhY3RzIG9mIGNoYW5nZXMuIEkgbmVlZCB0byBxdWlja2x5IGRldGVybWluZSB0aGUgY2FsbCBncmFwaCByZWxhdGlvbnNoaXAuIEknbSB0aGlua2luZyBJIGNhbiBlaXRoZXIgcXVpY2tseSBncmVwIHRocm91Z2ggdGhlIGNvZGUgZm9yIHRoZSBmdW5jdGlvbiBuYW1lLCBvciBtYXliZSB1dGlsaXplIG15IElERSB0byBkbyBhIHF1aWNrZXIgc2VhcmNoLiBDaGVja2luZyB0aGUgY2FsbCBncmFwaCBpcyB0aGUgYmVzdCBvcHRpb24gZm9yIG1lLCBhcyBpdCB3aWxsIGhpZ2hsaWdodCBhbnkgZGlyZWN0LCBvciBpbmRpcmVjdCBjYWxscy4gVGhhdCdzIG15IGltbWVkaWF0ZSB0YXNrIC0gZmluZCBvdXQgaWYgYHZjYXBfbW9kZWxfa3VuaXQuY2AgaXMgKmFjdHVhbGx5KiByZWx5aW5nIG9uIGB2Y2FwX2dldF9ydWxlYC4gTm8gc2Vuc2UgaW4gZnVydGhlciBhbmFseXNpcyB1bnRpbCBJIGtub3cgdGhlIGNvbm5lY3Rpb24sIG9yIGxhY2sgdGhlcmVvZi5cblxuXG4iLCJJbnB1dFRva2VucyI6ODQ3NywiT3V0cHV0VG9rZW5zIjo0OCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjI1LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTI5VDEwOjI3OjM4LjYxNjY0Nzk2M1oiLCJTZXEiOjIyLCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NjgzMzU5MzM0LCJFcnJvciI6Im5vIG1hdGNoZXMiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJ2Y2FwX2dldF9ydWxlXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfbW9kZWxfa3VuaXQuY1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJlcnJvclwiOiBcIm5vIG1hdGNoZXNcIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMjlUMTA6Mjc6MzkuMzAwMDE5ODk3WiIsIlNlcSI6MjMsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjM0MjQ0MTg0MjksIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6Ik9rYXksIGhlcmUncyBteSB0aG91Z2h0IHByb2Nlc3Mgc3VtbWFyaXplZCBmcm9tIHRoYXQgcHJvbXB0LCB0YWlsb3JlZCBmb3IgYW4gZXhwZXJ0IGF1ZGllbmNlOlxuXG4qKkV4YW1pbmluZyBUZXN0IENvdmVyYWdlIGZvciBgdmNhcF9tb2RlbF9rdW5pdC5jYCoqXG5cbkFscmlnaHQsIEknbSBkaXZpbmcgaW50byB0aGlzIGFuZCB0aGUgZmlyc3QgdGhpbmcgdGhhdCBqdW1wcyB0byBtaW5kIGlzLCBcIkRvZXMgYHZjYXBfbW9kZWxfa3VuaXQuY2AgaGF2ZSBhbnkgdGVzdHMgc3BlY2lmaWNhbGx5IHRhcmdldGluZyAqdGhpcyogaXNzdWU/XCIuIEkgbmVlZCB0byBxdWlja2x5IGVzdGFibGlzaCBpZiB0aGVyZSdzIGV4aXN0aW5nIGNvdmVyYWdlIHJlbGF0ZWQgdG8gdGhlIGFyZWEgSSdtIGN1cnJlbnRseSBpbnZlc3RpZ2F0aW5nLiBJJ20gdGhpbmtpbmcsIFwiTGV0J3MgY2hlY2sgaWYgdGhlIGV4aXN0aW5nIHRlc3RzIGluIHRoYXQgbW9kdWxlIGV2ZW4gdG91Y2ggdXBvbiB0aGUgYXNwZWN0cyByZWxldmFudCB0byB0aGlzLCBvciBpZiBJJ20gZ29pbmcgdG8gaGF2ZSB0byB3cml0ZSBzb21ldGhpbmcgZnJvbSBzY3JhdGNoXCIuIEl0J3MgYWxsIGFib3V0IGVmZmljaWVudCBkZWJ1Z2dpbmcgYW5kIGNvZGUgbWFpbnRlbmFuY2UsIGFuZCBrbm93aW5nIHdoZXJlIHlvdXIgZXhpc3RpbmcgdGVzdHMgYmVnaW4gYW5kIGVuZCwgaXMgY29yZSB0byB0aG9zZSBwcmFjdGljZXMuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjg3OTEsIk91dHB1dFRva2VucyI6NDUsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoyMiwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0yOVQxMDoyNzo0Mi43MjQ0NDI0NzZaIiwiU2VxIjoyNCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjEyNjMyMjA3NywiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJ2Y2FwX1wiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJkcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX21vZGVsX2t1bml0LmNcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9tb2RlbF9rdW5pdC5jLTEyLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfbW9kZWxfa3VuaXQuYzoxMzojaW5jbHVkZSBcXFwidmNhcF9hcGkuaFxcXCJcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX21vZGVsX2t1bml0LmM6MTQ6I2luY2x1ZGUgXFxcInZjYXBfbW9kZWxfa3VuaXQuaFxcXCJcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX21vZGVsX2t1bml0LmMtMTUtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9tb2RlbF9rdW5pdC5jLTE2LS8qIGtleWZpZWxkcyAqL1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfbW9kZWxfa3VuaXQuYzoxNzpzdGF0aWMgY29uc3Qgc3RydWN0IHZjYXBfZmllbGQgaXMwX2xsX2Z1bGxfa2V5ZmllbGRbXSA9IHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX21vZGVsX2t1bml0LmMtMTgtXFx0W1ZDQVBfS0ZfVFlQRV0gPSB7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX21vZGVsX2t1bml0LmMtMTc5LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfbW9kZWxfa3VuaXQuYzoxODA6c3RhdGljIGNvbnN0IHN0cnVjdCB2Y2FwX2ZpZWxkIGlzMF9ub3JtYWxfN3R1cGxlX2tleWZpZWxkW10gPSB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9tb2RlbF9rdW5pdC5jLTE4MS1cXHRbVkNBUF9LRl9UWVBFXSA9IHtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfbW9kZWxfa3VuaXQuYy0zNzItXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9tb2RlbF9rdW5pdC5jOjM3MzpzdGF0aWMgY29uc3Qgc3RydWN0IHZjYXBfZmllbGQgaXMwX25vcm1hbF81dHVwbGVfaXA0X2tleWZpZWxkW10gPSB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9tb2RlbF9rdW5pdC5jLTM3NC1cXHRbVkNBUF9LRl9UWVBFXSA9IHtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfbW9kZWxfa3VuaXQuYy01NDUtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9tb2RlbF9rdW5pdC5jOjU0NjpzdGF0aWMgY29uc3Qgc3RydWN0IHZjYXBfZmllbGQgaXMwX3B1cmVfNXR1cGxlX2lwNF9rZXlmaWVsZFtdID0ge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfbW9kZWxfa3VuaXQuYy01NDctXFx0W1ZDQVBfS0ZfVFlQRV0gPSB7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX21vZGVsX2t1bml0LmMtNjEzLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfbW9kZWxfa3VuaXQuYzo2MTQ6c3RhdGljIGNvbnN0IHN0cnVjdCB2Y2FwX2ZpZWxkIGlzMF9ldGFnX2tleWZpZWxkW10gPSB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9tb2RlbF9rdW5pdC5jLTYxNS1cXHRbVkNBUF9LRl9UWVBFXSA9IHtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfbW9kZWxfa3VuaXQuYy02NjEtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9tb2RlbF9rdW5pdC5jOjY2MjpzdGF0aWMgY29uc3Qgc3RydWN0IHZjYXBfZmllbGQgaXMyX21hY19ldHlwZV9rZXlmaWVsZFtdID0ge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfbW9kZWxfa3VuaXQuYy02NjMtXFx0W1ZDQVBfS0ZfVFlQRV0gPSB7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX21vZGVsX2t1bml0LmMtNzk0LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfbW9kZWxfa3VuaXQuYzo3OTU6c3RhdGljIGNvbnN0IHN0cnVjdCB2Y2FwX2ZpZWxkIGlzMl9hcnBfa2V5ZmllbGRbXSA9IHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX21vZGVsX2t1bml0LmMtNzk2LVxcdFtWQ0FQX0tGX1RZUEVdID0ge1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9tb2RlbF9rdW5pdC5jLTkzNy1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX21vZGVsX2t1bml0LmM6OTM4OnN0YXRpYyBjb25zdCBzdHJ1Y3QgdmNhcF9maWVsZCBpczJfaXA0X3RjcF91ZHBfa2V5ZmllbGRbXSA9IHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX21vZGVsX2t1bml0LmMtOTM5LVxcdFtWQ0FQX0tGX1RZUEVdID0ge1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9tb2RlbF9rdW5pdC5jLTExNDAtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9tb2RlbF9rdW5pdC5jOjExNDE6c3RhdGljIGNvbnN0IHN0cnVjdCB2Y2FwX2ZpZWxkIGlzMl9pcDRfb3RoZXJfa2V5ZmllbGRbXSA9IHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX21vZGVsX2t1bml0LmMtMTE0Mi1cXHRbVkNBUF9LRl9UWVBFXSA9IHtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfbW9kZWxfa3VuaXQuYy0xMjkzLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfbW9kZWxfa3VuaXQuYzoxMjk0OnN0YXRpYyBjb25zdCBzdHJ1Y3QgdmNhcF9maWVsZCBpczJfaXA2X3N0ZF9rZXlmaWVsZFtdID0ge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfbW9kZWxfa3VuaXQuYy0xMjk1LVxcdFtWQ0FQX0tGX1RZUEVdID0ge1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9tb2RlbF9rdW5pdC5jLTE0MTEtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9tb2RlbF9rdW5pdC5jOjE0MTI6c3RhdGljIGNvbnN0IHN0cnVjdCB2Y2FwX2ZpZWxkIGlzMl9pcF83dHVwbGVfa2V5ZmllbGRbXSA9IHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX21vZGVsX2t1bml0LmMtMTQxMy1cXHRbVkNBUF9LRl9UWVBFXSA9IHtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfbW9kZWxfa3VuaXQuYy0xNjE0LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfbW9kZWxfa3VuaXQuYzoxNjE1OnN0YXRpYyBjb25zdCBzdHJ1Y3QgdmNhcF9maWVsZCBlczJfbWFjX2V0eXBlX2tleWZpZWxkW10gPSB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9tb2RlbF9rdW5pdC5jLTE2MTYtXFx0W1ZDQVBfS0ZfVFlQRV0gPSB7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX21vZGVsX2t1bml0LmMtMTczNy1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX21vZGVsX2t1bml0LmM6MTczODpzdGF0aWMgY29uc3Qgc3RydWN0IHZjYXBfZmllbGQgZXMyX2FycF9rZXlmaWVsZFtdID0ge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfbW9kZWxfa3VuaXQuYy0xNzM5LVxcdFtWQ0FQX0tGX1RZUEVdID0ge1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9tb2RlbF9rdW5pdC5jLTE4NzUtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9tb2RlbF9rdW5pdC5jOjE4NzY6c3RhdGljIGNvbnN0IHN0cnVjdCB2Y2FwX2ZpZWxkIGVzMl9pcDRfdGNwX3VkcF9rZXlmaWVsZFtdID0ge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfbW9kZWxfa3VuaXQuYy0xODc3LVxcdFtWQ0FQX0tGX1RZUEVdID0ge1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9tb2RlbF9rdW5pdC5jLTIwNjgtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9tb2RlbF9rdW5pdC5jOjIwNjk6c3RhdGljIGNvbnN0IHN0cnVjdCB2Y2FwX2ZpZWxkIGVzMl9pcDRfb3RoZXJfa2V5ZmllbGRbXSA9IHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX21vZGVsX2t1bml0LmMtMjA3MC1cXHRbVkNBUF9LRl9UWVBFXSA9IHtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfbW9kZWxfa3VuaXQuYy0yMjA2LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfbW9kZWxfa3VuaXQuYzoyMjA3OnN0YXRpYyBjb25zdCBzdHJ1Y3QgdmNhcF9maWVsZCBlczJfaXBfN3R1cGxlX2tleWZpZWxkW10gPSB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9tb2RlbF9rdW5pdC5jLTIyMDgtXFx0W1ZDQVBfS0ZfTE9PS1VQX0ZJUlNUX0lTXSA9IHtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfbW9kZWxfa3VuaXQuYy0yMzk5LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfbW9kZWxfa3VuaXQuYzoyNDAwOnN0YXRpYyBjb25zdCBzdHJ1Y3QgdmNhcF9maWVsZCBlczJfaXA2X3N0ZF9rZXlmaWVsZFtdID0ge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfbW9kZWxfa3VuaXQuYy0yNDAxLVxcdFtWQ0FQX0tGX1RZUEVdID0ge1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9tb2RlbF9rdW5pdC5jLTI1MTctXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9tb2RlbF9rdW5pdC5jOjI1MTg6c3RhdGljIGNvbnN0IHN0cnVjdCB2Y2FwX2ZpZWxkIGVzMl9pcDRfdmlkX2tleWZpZWxkW10gPSB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9tb2RlbF9rdW5pdC5jLTI1MTktXFx0W1ZDQVBfS0ZfTE9PS1VQX0ZJUlNUX0lTXSA9IHtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfbW9kZWxfa3VuaXQuYy0yNjIwLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfbW9kZWxfa3VuaXQuYzoyNjIxOnN0YXRpYyBjb25zdCBzdHJ1Y3QgdmNhcF9maWVsZCBlczJfaXA2X3ZpZF9rZXlmaWVsZFtdID0ge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfbW9kZWxfa3VuaXQuYy0yNjIyLVxcdFtWQ0FQX0tGX1RZUEVdID0ge1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9tb2RlbF9rdW5pdC5jLTI2ODktLyoga2V5ZmllbGRfc2V0ICovXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9tb2RlbF9rdW5pdC5jOjI2OTA6c3RhdGljIGNvbnN0IHN0cnVjdCB2Y2FwX3NldCBpczBfa2V5ZmllbGRfc2V0W10gPSB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9tb2RlbF9rdW5pdC5jLTI2OTEtXFx0W1ZDQVBfS0ZTX0xMX0ZVTExdID0ge1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9tb2RlbF9rdW5pdC5jLTI3MTctXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9tb2RlbF9rdW5pdC5jOjI3MTg6c3RhdGljIGNvbnN0IHN0cnVjdCB2Y2FwX3NldCBpczJfa2V5ZmllbGRfc2V0W10gPSB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9tb2RlbF9rdW5pdC5jLTI3MTktXFx0W1ZDQVBfS0ZTX01BQ19FVFlQRV0gPSB7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX21vZGVsX2t1bml0LmMtMjc1MC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX21vZGVsX2t1bml0LmM6Mjc1MTpzdGF0aWMgY29uc3Qgc3RydWN0IHZjYXBfc2V0IGVzMl9rZXlmaWVsZF9zZXRbXSA9IHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX21vZGVsX2t1bml0LmMtMjc1Mi1cXHRbVkNBUF9LRlNfTUFDX0VUWVBFXSA9IHtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfbW9kZWxfa3VuaXQuYy0yNzk0LS8qIGtleWZpZWxkX3NldCBtYXAgKi9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX21vZGVsX2t1bml0LmM6Mjc5NTpzdGF0aWMgY29uc3Qgc3RydWN0IHZjYXBfZmllbGQgKmlzMF9rZXlmaWVsZF9zZXRfbWFwW10gPSB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9tb2RlbF9rdW5pdC5jLTI3OTYtXFx0W1ZDQVBfS0ZTX0xMX0ZVTExdID0gaXMwX2xsX2Z1bGxfa2V5ZmllbGQsXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX21vZGVsX2t1bml0LmMtMjgwMi1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX21vZGVsX2t1bml0LmM6MjgwMzpzdGF0aWMgY29uc3Qgc3RydWN0IHZjYXBfZmllbGQgKmlzMl9rZXlmaWVsZF9zZXRfbWFwW10gPSB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9tb2RlbF9rdW5pdC5jLTI4MDQtXFx0W1ZDQVBfS0ZTX01BQ19FVFlQRV0gPSBpczJfbWFjX2V0eXBlX2tleWZpZWxkLFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9tb2RlbF9rdW5pdC5jLTI4MTEtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9tb2RlbF9rdW5pdC5jOjI4MTI6c3RhdGljIGNvbnN0IHN0cnVjdCB2Y2FwX2ZpZWxkICplczJfa2V5ZmllbGRfc2V0X21hcFtdID0ge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfbW9kZWxfa3VuaXQuYy0yODEzLVxcdFtWQ0FQX0tGU19NQUNfRVRZUEVdID0gZXMyX21hY19ldHlwZV9rZXlmaWVsZCxcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfbW9kZWxfa3VuaXQuYz0yODQxPXN0YXRpYyBpbnQgZXMyX2tleWZpZWxkX3NldF9tYXBfc2l6ZVtdID0ge1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9tb2RlbF9rdW5pdC5jLTI4NTItLyogYWN0aW9uZmllbGRzICovXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9tb2RlbF9rdW5pdC5jOjI4NTM6c3RhdGljIGNvbnN0IHN0cnVjdCB2Y2FwX2ZpZWxkIGlzMF9jbGFzc2lmaWNhdGlvbl9hY3Rpb25maWVsZFtdID0ge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfbW9kZWxfa3VuaXQuYy0yODU0LVxcdFtWQ0FQX0FGX1RZUEVdID0ge1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9tb2RlbF9rdW5pdC5jLTI5NjUtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9tb2RlbF9rdW5pdC5jOjI5NjY6c3RhdGljIGNvbnN0IHN0cnVjdCB2Y2FwX2ZpZWxkIGlzMF9mdWxsX2FjdGlvbmZpZWxkW10gPSB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9tb2RlbF9rdW5pdC5jLTI5NjctXFx0W1ZDQVBfQUZfRFNDUF9FTkFdID0ge1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9tb2RlbF9rdW5pdC5jLTMwODMtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9tb2RlbF9rdW5pdC5jOjMwODQ6c3RhdGljIGNvbnN0IHN0cnVjdCB2Y2FwX2ZpZWxkIGlzMF9jbGFzc19yZWR1Y2VkX2FjdGlvbmZpZWxkW10gPSB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9tb2RlbF9rdW5pdC5jLTMwODUtXFx0W1ZDQVBfQUZfVFlQRV0gPSB7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX21vZGVsX2t1bml0LmMtMzE1MS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX21vZGVsX2t1bml0LmM6MzE1MjpzdGF0aWMgY29uc3Qgc3RydWN0IHZjYXBfZmllbGQgaXMyX2Jhc2VfdHlwZV9hY3Rpb25maWVsZFtdID0ge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfbW9kZWxfa3VuaXQuYy0zMTUzLVxcdFtWQ0FQX0FGX1BJUEVMSU5FX0ZPUkNFX0VOQV0gPSB7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX21vZGVsX2t1bml0LmMtMzIzOS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX21vZGVsX2t1bml0LmM6MzI0MDpzdGF0aWMgY29uc3Qgc3RydWN0IHZjYXBfZmllbGQgZXMyX2Jhc2VfdHlwZV9hY3Rpb25maWVsZFtdID0ge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfbW9kZWxfa3VuaXQuYy0zMjQxLVxcdFtWQ0FQX0FGX0hJVF9NRV9PTkNFXSA9IHtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfbW9kZWxfa3VuaXQuYy0zMzEzLS8qIGFjdGlvbmZpZWxkX3NldCAqL1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfbW9kZWxfa3VuaXQuYzozMzE0OnN0YXRpYyBjb25zdCBzdHJ1Y3QgdmNhcF9zZXQgaXMwX2FjdGlvbmZpZWxkX3NldFtdID0ge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfbW9kZWxfa3VuaXQuYy0zMzE1LVxcdFtWQ0FQX0FGU19DTEFTU0lGSUNBVElPTl0gPSB7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX21vZGVsX2t1bml0LmMtMzMzMS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX21vZGVsX2t1bml0LmM6MzMzMjpzdGF0aWMgY29uc3Qgc3RydWN0IHZjYXBfc2V0IGlzMl9hY3Rpb25maWVsZF9zZXRbXSA9IHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX21vZGVsX2t1bml0LmMtMzMzMy1cXHRbVkNBUF9BRlNfQkFTRV9UWVBFXSA9IHtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfbW9kZWxfa3VuaXQuYy0zMzM5LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfbW9kZWxfa3VuaXQuYzozMzQwOnN0YXRpYyBjb25zdCBzdHJ1Y3QgdmNhcF9zZXQgZXMyX2FjdGlvbmZpZWxkX3NldFtdID0ge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfbW9kZWxfa3VuaXQuYy0zMzQxLVxcdFtWQ0FQX0FGU19CQVNFX1RZUEVdID0ge1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9tb2RlbF9rdW5pdC5jLTMzNDgtLyogYWN0aW9uZmllbGRfc2V0IG1hcCAqL1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfbW9kZWxfa3VuaXQuYzozMzQ5OnN0YXRpYyBjb25zdCBzdHJ1Y3QgdmNhcF9maWVsZCAqaXMwX2FjdGlvbmZpZWxkX3NldF9tYXBbXSA9IHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX21vZGVsX2t1bml0LmMtMzM1MC1cXHRbVkNBUF9BRlNfQ0xBU1NJRklDQVRJT05dID0gaXMwX2NsYXNzaWZpY2F0aW9uX2FjdGlvbmZpZWxkLFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9tb2RlbF9rdW5pdC5jLTMzNTQtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9tb2RlbF9rdW5pdC5jOjMzNTU6c3RhdGljIGNvbnN0IHN0cnVjdCB2Y2FwX2ZpZWxkICppczJfYWN0aW9uZmllbGRfc2V0X21hcFtdID0ge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfbW9kZWxfa3VuaXQuYy0zMzU2LVxcdFtWQ0FQX0FGU19CQVNFX1RZUEVdID0gaXMyX2Jhc2VfdHlwZV9hY3Rpb25maWVsZCxcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfbW9kZWxfa3VuaXQuYy0zMzU4LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfbW9kZWxfa3VuaXQuYzozMzU5OnN0YXRpYyBjb25zdCBzdHJ1Y3QgdmNhcF9maWVsZCAqZXMyX2FjdGlvbmZpZWxkX3NldF9tYXBbXSA9IHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX21vZGVsX2t1bml0LmMtMzM2MC1cXHRbVkNBUF9BRlNfQkFTRV9UWVBFXSA9IGVzMl9iYXNlX3R5cGVfYWN0aW9uZmllbGQsXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX21vZGVsX2t1bml0LmM9MzM3ND1zdGF0aWMgaW50IGVzMl9hY3Rpb25maWVsZF9zZXRfbWFwX3NpemVbXSA9IHtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfbW9kZWxfa3VuaXQuYy0zMzc4LS8qIFR5cGUgR3JvdXBzICovXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9tb2RlbF9rdW5pdC5jOjMzNzk6c3RhdGljIGNvbnN0IHN0cnVjdCB2Y2FwX3R5cGVncm91cCBpczBfeDEyX2tleWZpZWxkX3NldF90eXBlZ3JvdXBzW10gPSB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9tb2RlbF9rdW5pdC5jLTMzODAtXFx0e1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9tb2RlbF9rdW5pdC5jLTM0NDItXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9tb2RlbF9rdW5pdC5jOjM0NDM6c3RhdGljIGNvbnN0IHN0cnVjdCB2Y2FwX3R5cGVncm91cCBpczBfeDZfa2V5ZmllbGRfc2V0X3R5cGVncm91cHNbXSA9IHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX21vZGVsX2t1bml0LmMtMzQ0NC1cXHR7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX21vZGVsX2t1bml0LmMtMzQ3Ni1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX21vZGVsX2t1bml0LmM6MzQ3NzpzdGF0aWMgY29uc3Qgc3RydWN0IHZjYXBfdHlwZWdyb3VwIGlzMF94M19rZXlmaWVsZF9zZXRfdHlwZWdyb3Vwc1tdID0ge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfbW9kZWxfa3VuaXQuYy0zNDc4LVxcdHtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfbW9kZWxfa3VuaXQuYy0zNDk1LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfbW9kZWxfa3VuaXQuYzozNDk2OnN0YXRpYyBjb25zdCBzdHJ1Y3QgdmNhcF90eXBlZ3JvdXAgaXMwX3gyX2tleWZpZWxkX3NldF90eXBlZ3JvdXBzW10gPSB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9tb2RlbF9rdW5pdC5jLTM0OTctXFx0e1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9tb2RlbF9rdW5pdC5jLTM1MDktXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9tb2RlbF9rdW5pdC5jOjM1MTA6c3RhdGljIGNvbnN0IHN0cnVjdCB2Y2FwX3R5cGVncm91cCBpczBfeDFfa2V5ZmllbGRfc2V0X3R5cGVncm91cHNbXSA9IHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX21vZGVsX2t1bml0LmMtMzUxMS1cXHR7fVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9tb2RlbF9rdW5pdC5jLTM1MTMtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9tb2RlbF9rdW5pdC5jOjM1MTQ6c3RhdGljIGNvbnN0IHN0cnVjdCB2Y2FwX3R5cGVncm91cCBpczJfeDEyX2tleWZpZWxkX3NldF90eXBlZ3JvdXBzW10gPSB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9tb2RlbF9rdW5pdC5jLTM1MTUtXFx0e1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9tb2RlbF9rdW5pdC5jLTM1MzctXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9tb2RlbF9rdW5pdC5jOjM1Mzg6c3RhdGljIGNvbnN0IHN0cnVjdCB2Y2FwX3R5cGVncm91cCBpczJfeDZfa2V5ZmllbGRfc2V0X3R5cGVncm91cHNbXSA9IHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX21vZGVsX2t1bml0LmMtMzUzOS1cXHR7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX21vZGVsX2t1bml0LmMtMzU1MS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX21vZGVsX2t1bml0LmM6MzU1MjpzdGF0aWMgY29uc3Qgc3RydWN0IHZjYXBfdHlwZWdyb3VwIGlzMl94M19rZXlmaWVsZF9zZXRfdHlwZWdyb3Vwc1tdID0ge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfbW9kZWxfa3VuaXQuYy0zNTUzLVxcdHt9XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX21vZGVsX2t1bml0LmMtMzU1NS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX21vZGVsX2t1bml0LmM6MzU1NjpzdGF0aWMgY29uc3Qgc3RydWN0IHZjYXBfdHlwZWdyb3VwIGlzMl94MV9rZXlmaWVsZF9zZXRfdHlwZWdyb3Vwc1tdID0ge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfbW9kZWxfa3VuaXQuYy0zNTU3LVxcdHt9XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX21vZGVsX2t1bml0LmMtMzU1OS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX21vZGVsX2t1bml0LmM6MzU2MDpzdGF0aWMgY29uc3Qgc3RydWN0IHZjYXBfdHlwZWdyb3VwIGVzMl94MTJfa2V5ZmllbGRfc2V0X3R5cGVncm91cHNbXSA9IHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX21vZGVsX2t1bml0LmMtMzU2MS1cXHR7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX21vZGVsX2t1bml0LmMtMzU4My1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX21vZGVsX2t1bml0LmM6MzU4NDpzdGF0aWMgY29uc3Qgc3RydWN0IHZjYXBfdHlwZWdyb3VwIGVzMl94Nl9rZXlmaWVsZF9zZXRfdHlwZWdyb3Vwc1tdID0ge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfbW9kZWxfa3VuaXQuYy0zNTg1LVxcdHtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfbW9kZWxfa3VuaXQuYy0zNTk3LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfbW9kZWxfa3VuaXQuYzozNTk4OnN0YXRpYyBjb25zdCBzdHJ1Y3QgdmNhcF90eXBlZ3JvdXAgZXMyX3gzX2tleWZpZWxkX3NldF90eXBlZ3JvdXBzW10gPSB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9tb2RlbF9rdW5pdC5jLTM1OTktXFx0e1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9tb2RlbF9rdW5pdC5jLTM2MDYtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9tb2RlbF9rdW5pdC5jOjM2MDc6c3RhdGljIGNvbnN0IHN0cnVjdCB2Y2FwX3R5cGVncm91cCBlczJfeDFfa2V5ZmllbGRfc2V0X3R5cGVncm91cHNbXSA9IHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX21vZGVsX2t1bml0LmMtMzYwOC1cXHR7fVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9tb2RlbF9rdW5pdC5jLTM2MTAtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9tb2RlbF9rdW5pdC5jOjM2MTE6c3RhdGljIGNvbnN0IHN0cnVjdCB2Y2FwX3R5cGVncm91cCAqaXMwX2tleWZpZWxkX3NldF90eXBlZ3JvdXBzW10gPSB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9tb2RlbF9rdW5pdC5jLTM2MTItXFx0WzEyXSA9IGlzMF94MTJfa2V5ZmllbGRfc2V0X3R5cGVncm91cHMsXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX21vZGVsX2t1bml0LmMtMzYxOS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX21vZGVsX2t1bml0LmM6MzYyMDpzdGF0aWMgY29uc3Qgc3RydWN0IHZjYXBfdHlwZWdyb3VwICppczJfa2V5ZmllbGRfc2V0X3R5cGVncm91cHNbXSA9IHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX21vZGVsX2t1bml0LmMtMzYyMS1cXHRbMTJdID0gaXMyX3gxMl9rZXlmaWVsZF9zZXRfdHlwZWdyb3VwcyxcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfbW9kZWxfa3VuaXQuYy0zNjI3LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfbW9kZWxfa3VuaXQuYzozNjI4OnN0YXRpYyBjb25zdCBzdHJ1Y3QgdmNhcF90eXBlZ3JvdXAgKmVzMl9rZXlmaWVsZF9zZXRfdHlwZWdyb3Vwc1tdID0ge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfbW9kZWxfa3VuaXQuYy0zNjI5LVxcdFsxMl0gPSBlczJfeDEyX2tleWZpZWxkX3NldF90eXBlZ3JvdXBzLFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9tb2RlbF9rdW5pdC5jLTM2MzUtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9tb2RlbF9rdW5pdC5jOjM2MzY6c3RhdGljIGNvbnN0IHN0cnVjdCB2Y2FwX3R5cGVncm91cCBpczBfeDNfYWN0aW9uZmllbGRfc2V0X3R5cGVncm91cHNbXSA9IHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX21vZGVsX2t1bml0LmMtMzYzNy1cXHR7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX21vZGVsX2t1bml0LmMtMzY1NC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX21vZGVsX2t1bml0LmM6MzY1NTpzdGF0aWMgY29uc3Qgc3RydWN0IHZjYXBfdHlwZWdyb3VwIGlzMF94Ml9hY3Rpb25maWVsZF9zZXRfdHlwZWdyb3Vwc1tdID0ge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfbW9kZWxfa3VuaXQuYy0zNjU2LVxcdHtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfbW9kZWxfa3VuaXQuYy0zNjY4LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfbW9kZWxfa3VuaXQuYzozNjY5OnN0YXRpYyBjb25zdCBzdHJ1Y3QgdmNhcF90eXBlZ3JvdXAgaXMwX3gxX2FjdGlvbmZpZWxkX3NldF90eXBlZ3JvdXBzW10gPSB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9tb2RlbF9rdW5pdC5jLTM2NzAtXFx0e1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9tb2RlbF9rdW5pdC5jLTM2NzctXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9tb2RlbF9rdW5pdC5jOjM2Nzg6c3RhdGljIGNvbnN0IHN0cnVjdCB2Y2FwX3R5cGVncm91cCBpczJfeDNfYWN0aW9uZmllbGRfc2V0X3R5cGVncm91cHNbXSA9IHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX21vZGVsX2t1bml0LmMtMzY3OS1cXHR7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX21vZGVsX2t1bml0LmMtMzY5Ni1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX21vZGVsX2t1bml0LmM6MzY5NzpzdGF0aWMgY29uc3Qgc3RydWN0IHZjYXBfdHlwZWdyb3VwIGlzMl94MV9hY3Rpb25maWVsZF9zZXRfdHlwZWdyb3Vwc1tdID0ge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfbW9kZWxfa3VuaXQuYy0zNjk4LVxcdHt9XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX21vZGVsX2t1bml0LmMtMzcwMC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX21vZGVsX2t1bml0LmM6MzcwMTpzdGF0aWMgY29uc3Qgc3RydWN0IHZjYXBfdHlwZWdyb3VwIGVzMl94M19hY3Rpb25maWVsZF9zZXRfdHlwZWdyb3Vwc1tdID0ge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfbW9kZWxfa3VuaXQuYy0zNzAyLVxcdHtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfbW9kZWxfa3VuaXQuYy0zNzE5LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfbW9kZWxfa3VuaXQuYzozNzIwOnN0YXRpYyBjb25zdCBzdHJ1Y3QgdmNhcF90eXBlZ3JvdXAgZXMyX3gxX2FjdGlvbmZpZWxkX3NldF90eXBlZ3JvdXBzW10gPSB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9tb2RlbF9rdW5pdC5jLTM3MjEtXFx0e31cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfbW9kZWxfa3VuaXQuYy0zNzIzLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfbW9kZWxfa3VuaXQuYzozNzI0OnN0YXRpYyBjb25zdCBzdHJ1Y3QgdmNhcF90eXBlZ3JvdXAgKmlzMF9hY3Rpb25maWVsZF9zZXRfdHlwZWdyb3Vwc1tdID0ge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfbW9kZWxfa3VuaXQuYy0zNzI1LVxcdFszXSA9IGlzMF94M19hY3Rpb25maWVsZF9zZXRfdHlwZWdyb3VwcyxcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfbW9kZWxfa3VuaXQuYy0zNzMwLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfbW9kZWxfa3VuaXQuYzozNzMxOnN0YXRpYyBjb25zdCBzdHJ1Y3QgdmNhcF90eXBlZ3JvdXAgKmlzMl9hY3Rpb25maWVsZF9zZXRfdHlwZWdyb3Vwc1tdID0ge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfbW9kZWxfa3VuaXQuYy0zNzMyLVxcdFszXSA9IGlzMl94M19hY3Rpb25maWVsZF9zZXRfdHlwZWdyb3VwcyxcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfbW9kZWxfa3VuaXQuYy0zNzM2LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfbW9kZWxfa3VuaXQuYzozNzM3OnN0YXRpYyBjb25zdCBzdHJ1Y3QgdmNhcF90eXBlZ3JvdXAgKmVzMl9hY3Rpb25maWVsZF9zZXRfdHlwZWdyb3Vwc1tdID0ge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfbW9kZWxfa3VuaXQuYy0zNzM4LVxcdFszXSA9IGVzMl94M19hY3Rpb25maWVsZF9zZXRfdHlwZWdyb3VwcyxcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfbW9kZWxfa3VuaXQuYy0zNzQzLS8qIEtleWZpZWxkc2V0IG5hbWVzICovXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9tb2RlbF9rdW5pdC5jOjM3NDQ6c3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCB2Y2FwX2tleWZpZWxkX3NldF9uYW1lc1tdID0ge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfbW9kZWxfa3VuaXQuYy0zNzQ1LVxcdFtWQ0FQX0tGU19OT19WQUxVRV0gICAgICAgICAgICAgICAgICAgICAgPSAgXFxcIihOb25lKVxcXCIsXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX21vZGVsX2t1bml0LmMtMzc2OS0vKiBBY3Rpb25maWVsZHNldCBuYW1lcyAqL1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfbW9kZWxfa3VuaXQuYzozNzcwOnN0YXRpYyBjb25zdCBjaGFyICogY29uc3QgdmNhcF9hY3Rpb25maWVsZF9zZXRfbmFtZXNbXSA9IHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX21vZGVsX2t1bml0LmMtMzc3MS1cXHRbVkNBUF9BRlNfTk9fVkFMVUVdICAgICAgICAgICAgICAgICAgICAgID0gIFxcXCIoTm9uZSlcXFwiLFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9tb2RlbF9rdW5pdC5jLTM3ODAtLyogS2V5ZmllbGQgbmFtZXMgKi9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX21vZGVsX2t1bml0LmM6Mzc4MTpzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IHZjYXBfa2V5ZmllbGRfbmFtZXNbXSA9IHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX21vZGVsX2t1bml0LmMtMzc4Mi1cXHRbVkNBUF9LRl9OT19WQUxVRV0gICAgICAgICAgICAgICAgICAgICAgID0gIFxcXCIoTm9uZSlcXFwiLFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9tb2RlbF9rdW5pdC5jLTM4OTgtLyogQWN0aW9uZmllbGQgbmFtZXMgKi9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX21vZGVsX2t1bml0LmM6Mzg5OTpzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IHZjYXBfYWN0aW9uZmllbGRfbmFtZXNbXSA9IHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX21vZGVsX2t1bml0LmMtMzkwMC1cXHRbVkNBUF9BRl9OT19WQUxVRV0gICAgICAgICAgICAgICAgICAgICAgID0gIFxcXCIoTm9uZSlcXFwiLFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9tb2RlbF9rdW5pdC5jLTM5ODgtLyogVkNBUHMgKi9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX21vZGVsX2t1bml0LmM6Mzk4OTpjb25zdCBzdHJ1Y3QgdmNhcF9pbmZvIGt1bml0X3Rlc3RfdmNhcHNbXSA9IHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX21vZGVsX2t1bml0LmMtMzk5MC1cXHRbVkNBUF9UWVBFX0lTMF0gPSB7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX21vZGVsX2t1bml0LmMtNDA1NC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX21vZGVsX2t1bml0LmM6NDA1NTpjb25zdCBzdHJ1Y3QgdmNhcF9zdGF0aXN0aWNzIGt1bml0X3Rlc3RfdmNhcF9zdGF0cyA9IHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX21vZGVsX2t1bml0LmMtNDA1Ni1cXHQubmFtZSA9IFxcXCJrdW5pdF90ZXN0XFxcIixcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX21vZGVsX2t1bml0LmMtNDA1Ny1cXHQuY291bnQgPSAzLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfbW9kZWxfa3VuaXQuYzo0MDU4OlxcdC5rZXlmaWVsZF9zZXRfbmFtZXMgPSB2Y2FwX2tleWZpZWxkX3NldF9uYW1lcyxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX21vZGVsX2t1bml0LmM6NDA1OTpcXHQuYWN0aW9uZmllbGRfc2V0X25hbWVzID0gdmNhcF9hY3Rpb25maWVsZF9zZXRfbmFtZXMsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9tb2RlbF9rdW5pdC5jOjQwNjA6XFx0LmtleWZpZWxkX25hbWVzID0gdmNhcF9rZXlmaWVsZF9uYW1lcyxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX21vZGVsX2t1bml0LmM6NDA2MTpcXHQuYWN0aW9uZmllbGRfbmFtZXMgPSB2Y2FwX2FjdGlvbmZpZWxkX25hbWVzLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfbW9kZWxfa3VuaXQuYy00MDYyLX07XFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTI5VDEwOjI3OjQyLjg1MDc3Mjc2M1oiLCJTZXEiOjI1LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo0NzEzNDg3MDU4LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJPa2F5LCBoZXJlJ3MgbXkgaW50ZXJwcmV0YXRpb24gb2YgdGhvc2UgdGhvdWdodHMsIHRhaWxvcmVkIGZvciBhbiBleHBlcnQgYXVkaWVuY2U6XG5cbioqSW52ZXN0aWdhdGluZyBLVW5pdCBUZXN0IEltcGxlbWVudGF0aW9uIGluIHRoZSB2Y2FwIFN1YnN5c3RlbSoqXG5cbkFscmlnaHQsIGxvb2tpbmcgYXQgdGhlIGNvZGUgc3RydWN0dXJlLCBgdmNhcF9tb2RlbF9rdW5pdC5jYCBzZWVtcyBzdHJhaWdodGZvcndhcmQuIEl0IGFwcGVhcnMgdG8gcHJpbWFyaWx5IGRlZmluZSB0aGUgZGF0YSBzdHJ1Y3R1cmVzIGFuZCBwb3NzaWJseSBtb2NrIGZ1bmN0aW9ucyBmb3IgdGhlIEtVbml0IHRlc3RzIHJlbGF0ZWQgdG8gdGhlIHZjYXAgc3Vic3lzdGVtLiBUaGUgcmVhbCBxdWVzdGlvbiBpcywgd2hlcmUgYXJlIHRoZSAqYWN0dWFsKiB0ZXN0cyBkZWZpbmVkPyBJJ20gZ29pbmcgdG8gcXVpY2tseSBjaGVjayBpbiB0aGUgYWRqYWNlbnQgZmlsZXMsIHNwZWNpZmljYWxseSBgdmNhcF9hcGlfa3VuaXQuY2AsIGFuZCBwb3RlbnRpYWxseSBhbnkgb3RoZXIgYCprdW5pdC5jYCBmaWxlcyB3aXRoaW4gdGhlIGB2Y2FwYCBkaXJlY3RvcnkuIEknbSBleHBlY3RpbmcgdG8gZmluZCB0aGUgdGVzdCBjYXNlcywgc2V0dXAgYW5kIHRlYXJkb3duIHJvdXRpbmVzLCBhbmQgdGhlIGFzc2VydGlvbnMgd2l0aGluIHRob3NlIGZpbGVzLiBJJ20gaG9waW5nIGl0J3MgY2xlYXJseSBkZWxpbmVhdGVkIGJldHdlZW4gbW9kZWwgYW5kIHRlc3QgZGVmaW5pdGlvbnMgdG8gaGVscCB3aXRoIG1haW50YWluYWJpbGl0eS5cblxuXG4iLCJJbnB1dFRva2VucyI6MTc3NTYsIk91dHB1dFRva2VucyI6NDUsIk91dHB1dFRob3VnaHRzVG9rZW5zIjo0OCwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0yOVQxMDoyNzo0Ny41NjQyNjMzODFaIiwiU2VxIjoyNiwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjcwNzgwMTE3MywiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJ2Y2FwX1wiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJkcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcIlxcbkZ1bGwgb3V0cHV0IGlzIHRvbyBsb25nLCBzaG93aW5nIDUwMCBvdXQgb2YgMTI1MSBsaW5lcy5cXG5Vc2UgbW9yZSBwcmVjaXNlIGV4cHJlc3Npb24gaWYgcG9zc2libGUuXFxuXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfa3VuaXQuYy02LSNpbmNsdWRlIFxcdTAwM2NrdW5pdC90ZXN0LmhcXHUwMDNlXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfa3VuaXQuYzo3OiNpbmNsdWRlIFxcXCJ2Y2FwX2FwaS5oXFxcIlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmM6ODojaW5jbHVkZSBcXFwidmNhcF9hcGlfY2xpZW50LmhcXFwiXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfa3VuaXQuYzo5OiNpbmNsdWRlIFxcXCJ2Y2FwX21vZGVsX2t1bml0LmhcXFwiXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfa3VuaXQuYy0xMC1cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmM9MjM9c3RhdGljIHUzMiB0ZXN0X2h3X2NvdW50ZXJfaWQ7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfa3VuaXQuYzoyNDpzdGF0aWMgc3RydWN0IHZjYXBfY2FjaGVfZGF0YSB0ZXN0X2h3X2NhY2hlO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmMtMjUtc3RhdGljIHN0cnVjdCBuZXRfZGV2aWNlIHRlc3RfbmV0ZGV2ID0ge307XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jPTI4PXN0YXRpYyBpbnQgdGVzdF9tb3ZlX2NvdW50O1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfa3VuaXQuYy0zMC0vKiBDYWxsYmFjayB1c2VkIGJ5IHRoZSBWQ0FQIEFQSSAqL1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmM6MzE6c3RhdGljIGVudW0gdmNhcF9rZXlmaWVsZF9zZXQgdGVzdF92YWxfa2V5c2V0KHN0cnVjdCBuZXRfZGV2aWNlICpuZGV2LFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmM6MzI6XFx0XFx0XFx0XFx0XFx0ICAgICAgc3RydWN0IHZjYXBfYWRtaW4gKmFkbWluLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmM6MzM6XFx0XFx0XFx0XFx0XFx0ICAgICAgc3RydWN0IHZjYXBfcnVsZSAqcnVsZSxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jOjM0OlxcdFxcdFxcdFxcdFxcdCAgICAgIHN0cnVjdCB2Y2FwX2tleXNldF9saXN0ICprc2xpc3QsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfa3VuaXQuYy0zNS1cXHRcXHRcXHRcXHRcXHQgICAgICB1MTYgbDNfcHJvdG8pXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jPTczPXN0YXRpYyB2b2lkIHRlc3RfYWRkX2RlZl9maWVsZHMoc3RydWN0IG5ldF9kZXZpY2UgKm5kZXYsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfa3VuaXQuYzo3NDpcXHRcXHRcXHRcXHRzdHJ1Y3QgdmNhcF9hZG1pbiAqYWRtaW4sXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfa3VuaXQuYzo3NTpcXHRcXHRcXHRcXHRzdHJ1Y3QgdmNhcF9ydWxlICpydWxlKVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmMtNzYte1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmMtNzctXFx0aWYgKGFkbWluLVxcdTAwM2V2aW5zdCA9PSAwIHx8IGFkbWluLVxcdTAwM2V2aW5zdCA9PSAyKVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmM6Nzg6XFx0XFx0dmNhcF9ydWxlX2FkZF9rZXlfYml0KHJ1bGUsIFZDQVBfS0ZfTE9PS1VQX0ZJUlNUX0lTLCBWQ0FQX0JJVF8xKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jLTc5LVxcdGVsc2VcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jOjgwOlxcdFxcdHZjYXBfcnVsZV9hZGRfa2V5X2JpdChydWxlLCBWQ0FQX0tGX0xPT0tVUF9GSVJTVF9JUywgVkNBUF9CSVRfMCk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfa3VuaXQuYy04MS19XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jLTgzLS8qIENhbGxiYWNrIHVzZWQgYnkgdGhlIFZDQVAgQVBJICovXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfa3VuaXQuYzo4NDpzdGF0aWMgdm9pZCB0ZXN0X2NhY2hlX2VyYXNlKHN0cnVjdCB2Y2FwX2FkbWluICphZG1pbilcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jLTg1LXtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmMtOTQtLyogQ2FsbGJhY2sgdXNlZCBieSB0aGUgVkNBUCBBUEkgKi9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jOjk1OnN0YXRpYyB2b2lkIHRlc3RfY2FjaGVfaW5pdChzdHJ1Y3QgbmV0X2RldmljZSAqbmRldiwgc3RydWN0IHZjYXBfYWRtaW4gKmFkbWluLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmMtOTYtXFx0XFx0XFx0ICAgIHUzMiBzdGFydCwgdTMyIGNvdW50KVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfa3VuaXQuYy0xMDItLyogQ2FsbGJhY2sgdXNlZCBieSB0aGUgVkNBUCBBUEkgKi9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jOjEwMzpzdGF0aWMgdm9pZCB0ZXN0X2NhY2hlX3JlYWQoc3RydWN0IG5ldF9kZXZpY2UgKm5kZXYsIHN0cnVjdCB2Y2FwX2FkbWluICphZG1pbixcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jOjEwNDpcXHRcXHRcXHQgICAgZW51bSB2Y2FwX3NlbGVjdGlvbiBzZWwsIHUzMiBzdGFydCwgdTMyIGNvdW50KVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmMtMTA1LXtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmMtMTQ0LS8qIENhbGxiYWNrIHVzZWQgYnkgdGhlIFZDQVAgQVBJICovXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfa3VuaXQuYzoxNDU6c3RhdGljIHZvaWQgdGVzdF9jYWNoZV93cml0ZShzdHJ1Y3QgbmV0X2RldmljZSAqbmRldiwgc3RydWN0IHZjYXBfYWRtaW4gKmFkbWluLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmM6MTQ2OlxcdFxcdFxcdCAgICAgZW51bSB2Y2FwX3NlbGVjdGlvbiBzZWwsIHUzMiBzdGFydCwgdTMyIGNvdW50KVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmMtMTQ3LXtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmMtMTg2LS8qIENhbGxiYWNrIHVzZWQgYnkgdGhlIFZDQVAgQVBJICovXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfa3VuaXQuYzoxODc6c3RhdGljIHZvaWQgdGVzdF9jYWNoZV91cGRhdGUoc3RydWN0IG5ldF9kZXZpY2UgKm5kZXYsIHN0cnVjdCB2Y2FwX2FkbWluICphZG1pbixcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jOjE4ODpcXHRcXHRcXHQgICAgICBlbnVtIHZjYXBfY29tbWFuZCBjbWQsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfa3VuaXQuYzoxODk6XFx0XFx0XFx0ICAgICAgZW51bSB2Y2FwX3NlbGVjdGlvbiBzZWwsIHUzMiBhZGRyKVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmMtMTkwLXtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmMtMTk3LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmM6MTk4OnN0YXRpYyB2b2lkIHRlc3RfY2FjaGVfbW92ZShzdHJ1Y3QgbmV0X2RldmljZSAqbmRldiwgc3RydWN0IHZjYXBfYWRtaW4gKmFkbWluLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmMtMTk5LVxcdFxcdFxcdCAgICB1MzIgYWRkciwgaW50IG9mZnNldCwgaW50IGNvdW50KVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfa3VuaXQuYy0yMDYtLyogUHJvdmlkZSBwb3J0IGluZm9ybWF0aW9uIHZpYSBhIGNhbGxiYWNrIGludGVyZmFjZSAqL1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmM6MjA3OnN0YXRpYyBpbnQgdmNhcF90ZXN0X3BvcnRfaW5mbyhzdHJ1Y3QgbmV0X2RldmljZSAqbmRldixcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jOjIwODpcXHRcXHRcXHQgICAgICAgc3RydWN0IHZjYXBfYWRtaW4gKmFkbWluLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmM6MjA5OlxcdFxcdFxcdCAgICAgICBzdHJ1Y3QgdmNhcF9vdXRwdXRfcHJpbnQgKm91dClcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jLTIxMC17XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jLTIxMy1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jOjIxNDpzdGF0aWMgY29uc3Qgc3RydWN0IHZjYXBfb3BlcmF0aW9ucyB0ZXN0X2NhbGxiYWNrcyA9IHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jLTIxNS1cXHQudmFsaWRhdGVfa2V5c2V0ID0gdGVzdF92YWxfa2V5c2V0LFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfa3VuaXQuYy0yMjItXFx0Lm1vdmUgPSB0ZXN0X2NhY2hlX21vdmUsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfa3VuaXQuYzoyMjM6XFx0LnBvcnRfaW5mbyA9IHZjYXBfdGVzdF9wb3J0X2luZm8sXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfa3VuaXQuYy0yMjQtfTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jLTIyNS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jOjIyNjpzdGF0aWMgc3RydWN0IHZjYXBfY29udHJvbCB0ZXN0X3ZjdHJsID0ge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmMtMjI3LVxcdC52Y2FwcyA9IGt1bml0X3Rlc3RfdmNhcHMsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfa3VuaXQuYzoyMjg6XFx0LnN0YXRzID0gXFx1MDAyNmt1bml0X3Rlc3RfdmNhcF9zdGF0cyxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jLTIyOS1cXHQub3BzID0gXFx1MDAyNnRlc3RfY2FsbGJhY2tzLFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfa3VuaXQuYy0yMzEtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfa3VuaXQuYzoyMzI6c3RhdGljIHZvaWQgdmNhcF90ZXN0X2FwaV9pbml0KHN0cnVjdCB2Y2FwX2FkbWluICphZG1pbilcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jLTIzMy17XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jLTI0Ni0vKiBIZWxwZXIgZnVuY3Rpb24gdG8gY3JlYXRlIGEgcnVsZSBvZiBhIHNwZWNpZmljIHNpemUgKi9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jOjI0NzpzdGF0aWMgdm9pZCB0ZXN0X3ZjYXBfeG5fcnVsZV9jcmVhdG9yKHN0cnVjdCBrdW5pdCAqdGVzdCwgaW50IGNpZCxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jOjI0ODpcXHRcXHRcXHRcXHQgICAgICBlbnVtIHZjYXBfdXNlciB1c2VyLCB1MTYgcHJpb3JpdHksXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfa3VuaXQuYy0yNDktXFx0XFx0XFx0XFx0ICAgICAgaW50IGlkLCBpbnQgc2l6ZSwgaW50IGV4cGVjdGVkX2FkZHIpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfa3VuaXQuYy0yNTAte1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmM6MjUxOlxcdHN0cnVjdCB2Y2FwX3J1bGUgKnJ1bGU7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfa3VuaXQuYzoyNTI6XFx0c3RydWN0IHZjYXBfcnVsZV9pbnRlcm5hbCAqcmk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfa3VuaXQuYzoyNTM6XFx0ZW51bSB2Y2FwX2tleWZpZWxkX3NldCBrZXlzZXQgPSBWQ0FQX0tGU19OT19WQUxVRTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jOjI1NDpcXHRlbnVtIHZjYXBfYWN0aW9uZmllbGRfc2V0IGFjdGlvbnNldCA9IFZDQVBfQUZTX05PX1ZBTFVFO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmMtMjU1LVxcdGludCByZXQ7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jLTI4OC1cXHQvKiBBbGxvY2F0ZSB0aGUgcnVsZSAqL1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmM6Mjg5OlxcdHJ1bGUgPSB2Y2FwX2FsbG9jX3J1bGUoXFx1MDAyNnRlc3RfdmN0cmwsIFxcdTAwMjZ0ZXN0X25ldGRldiwgY2lkLCB1c2VyLCBwcmlvcml0eSxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jLTI5MC1cXHRcXHRcXHQgICAgICAgaWQpO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfa3VuaXQuYy0yOTItXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfa3VuaXQuYzoyOTM6XFx0cmkgPSAoc3RydWN0IHZjYXBfcnVsZV9pbnRlcm5hbCAqKXJ1bGU7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfa3VuaXQuYy0yOTQtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfa3VuaXQuYy0yOTUtXFx0LyogT3ZlcnJpZGUgcnVsZSBrZXlzZXQgKi9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jOjI5NjpcXHRyZXQgPSB2Y2FwX3NldF9ydWxlX3NldF9rZXlzZXQocnVsZSwga2V5c2V0KTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jLTI5Ny1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jLTI5OC1cXHQvKiBBZGQgcnVsZSBhY3Rpb25zIDogdGhlcmUgbXVzdCBiZSBhdCBsZWFzdCBvbmUgYWN0aW9uICovXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfa3VuaXQuYzoyOTk6XFx0cmV0ID0gdmNhcF9ydWxlX2FkZF9hY3Rpb25fdTMyKHJ1bGUsIFZDQVBfQUZfSVNEWF9WQUwsIDApO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmMtMzAwLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmMtMzAxLVxcdC8qIE92ZXJyaWRlIHJ1bGUgYWN0aW9uc2V0ICovXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfa3VuaXQuYzozMDI6XFx0cmV0ID0gdmNhcF9zZXRfcnVsZV9zZXRfYWN0aW9uc2V0KHJ1bGUsIGFjdGlvbnNldCk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfa3VuaXQuYy0zMDMtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfa3VuaXQuYzozMDQ6XFx0cmV0ID0gdmNhcF92YWxfcnVsZShydWxlLCBFVEhfUF9BTEwpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmMtMzA1LVxcdEtVTklUX0VYUEVDVF9FUSh0ZXN0LCAwLCByZXQpO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfa3VuaXQuYy0zMTAtXFx0LyogQWRkIHJ1bGUgd2l0aCB3cml0ZSBjYWxsYmFjayAqL1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmM6MzExOlxcdHJldCA9IHZjYXBfYWRkX3J1bGUocnVsZSk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfa3VuaXQuYy0zMTItXFx0S1VOSVRfRVhQRUNUX0VRKHRlc3QsIDAsIHJldCk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfa3VuaXQuYy0zMTMtXFx0S1VOSVRfRVhQRUNUX0VRKHRlc3QsIGV4cGVjdGVkX2FkZHIsIHJpLVxcdTAwM2VhZGRyKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jOjMxNDpcXHR2Y2FwX2ZyZWVfcnVsZShydWxlKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jLTMxNS19XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jPTMxOD1zdGF0aWMgdm9pZCB0ZXN0X2luaXRfcnVsZV9kZWxldGlvbih2b2lkKVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfa3VuaXQuYy0zMjgtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfa3VuaXQuYzozMjk6c3RhdGljIHZvaWQgdmNhcF9hcGlfc2V0X2JpdF8xX3Rlc3Qoc3RydWN0IGt1bml0ICp0ZXN0KVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmMtMzMwLXtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jOjMzMTpcXHRzdHJ1Y3QgdmNhcF9zdHJlYW1faXRlciBpdGVyID0ge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmMtMzMyLVxcdFxcdC5vZmZzZXQgPSAzNSxcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmMtMzM5LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmM6MzQwOlxcdHZjYXBfc2V0X2JpdChzdHJlYW0sIFxcdTAwMjZpdGVyLCAxKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jLTM0MS1cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmMtMzQ1LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmM6MzQ2OnN0YXRpYyB2b2lkIHZjYXBfYXBpX3NldF9iaXRfMF90ZXN0KHN0cnVjdCBrdW5pdCAqdGVzdClcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jLTM0Ny17XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfa3VuaXQuYzozNDg6XFx0c3RydWN0IHZjYXBfc3RyZWFtX2l0ZXIgaXRlciA9IHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jLTM0OS1cXHRcXHQub2Zmc2V0ID0gMzUsXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jLTM1Ni1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jOjM1NzpcXHR2Y2FwX3NldF9iaXQoc3RyZWFtLCBcXHUwMDI2aXRlciwgMCk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfa3VuaXQuYy0zNTgtXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jLTM2My1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jOjM2NDpzdGF0aWMgdm9pZCB2Y2FwX2FwaV9pdGVyYXRvcl9pbml0X3Rlc3Qoc3RydWN0IGt1bml0ICp0ZXN0KVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmMtMzY1LXtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jOjM2NjpcXHRzdHJ1Y3QgdmNhcF9zdHJlYW1faXRlciBpdGVyO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmM6MzY3OlxcdHN0cnVjdCB2Y2FwX3R5cGVncm91cCB0eXBlZ3JvdXBzW10gPSB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfa3VuaXQuYy0zNjgtXFx0XFx0eyAub2Zmc2V0ID0gMCwgLndpZHRoID0gMiwgLnZhbHVlID0gMiwgfSxcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmMtMzcxLVxcdH07XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfa3VuaXQuYzozNzI6XFx0c3RydWN0IHZjYXBfdHlwZWdyb3VwIHR5cGVncm91cHMyW10gPSB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfa3VuaXQuYy0zNzMtXFx0XFx0eyAub2Zmc2V0ID0gMCwgLndpZHRoID0gMywgLnZhbHVlID0gNCwgfSxcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmMtMzc4LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmM6Mzc5OlxcdHZjYXBfaXRlcl9pbml0KFxcdTAwMjZpdGVyLCA1MiwgdHlwZWdyb3VwcywgODYpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmMtMzgwLVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfa3VuaXQuYy0zODUtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfa3VuaXQuYzozODY6XFx0dmNhcF9pdGVyX2luaXQoXFx1MDAyNml0ZXIsIDQ5LCB0eXBlZ3JvdXBzMiwgMTM0KTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jLTM4Ny1cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmMtMzkzLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmM6Mzk0OnN0YXRpYyB2b2lkIHZjYXBfYXBpX2l0ZXJhdG9yX25leHRfdGVzdChzdHJ1Y3Qga3VuaXQgKnRlc3QpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfa3VuaXQuYy0zOTUte1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmM6Mzk2OlxcdHN0cnVjdCB2Y2FwX3N0cmVhbV9pdGVyIGl0ZXI7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfa3VuaXQuYzozOTc6XFx0c3RydWN0IHZjYXBfdHlwZWdyb3VwIHR5cGVncm91cHNbXSA9IHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jLTM5OC1cXHRcXHR7IC5vZmZzZXQgPSAwLCAud2lkdGggPSA0LCAudmFsdWUgPSA4LCB9LFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfa3VuaXQuYy00MDctXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfa3VuaXQuYzo0MDg6XFx0dmNhcF9pdGVyX2luaXQoXFx1MDAyNml0ZXIsIDQ5LCB0eXBlZ3JvdXBzLCA4Nik7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfa3VuaXQuYy00MDktXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jLTQxNC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jOjQxNTpcXHR2Y2FwX2l0ZXJfbmV4dChcXHUwMDI2aXRlcik7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfa3VuaXQuYy00MTYtXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jLTQyMS1cXHRmb3IgKGlkeCA9IDA7IGlkeCBcXHUwMDNjIDY7IGlkeCsrKVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmM6NDIyOlxcdFxcdHZjYXBfaXRlcl9uZXh0KFxcdTAwMjZpdGVyKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jLTQyMy1cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmMtNDI4LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmM6NDI5OnN0YXRpYyB2b2lkIHZjYXBfYXBpX2VuY29kZV90eXBlZ3JvdXBzX3Rlc3Qoc3RydWN0IGt1bml0ICp0ZXN0KVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmMtNDMwLXtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jLTQzMS1cXHR1MzIgc3RyZWFtWzEyXSA9IHswfTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jOjQzMjpcXHRzdHJ1Y3QgdmNhcF90eXBlZ3JvdXAgdHlwZWdyb3Vwc1tdID0ge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmMtNDMzLVxcdFxcdHsgLm9mZnNldCA9IDAsIC53aWR0aCA9IDQsIC52YWx1ZSA9IDgsIH0sXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jLTQ0MS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jOjQ0MjpcXHR2Y2FwX2VuY29kZV90eXBlZ3JvdXBzKHN0cmVhbSwgNDksIHR5cGVncm91cHMsIGZhbHNlKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jLTQ0My1cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmMtNDU3LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmM6NDU4OnN0YXRpYyB2b2lkIHZjYXBfYXBpX2VuY29kZV9iaXRfdGVzdChzdHJ1Y3Qga3VuaXQgKnRlc3QpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfa3VuaXQuYy00NTkte1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmM6NDYwOlxcdHN0cnVjdCB2Y2FwX3N0cmVhbV9pdGVyIGl0ZXI7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfa3VuaXQuYy00NjEtXFx0dTMyIHN0cmVhbVs0XSA9IHswfTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jOjQ2MjpcXHRzdHJ1Y3QgdmNhcF90eXBlZ3JvdXAgdHlwZWdyb3Vwc1tdID0ge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmMtNDYzLVxcdFxcdHsgLm9mZnNldCA9IDAsIC53aWR0aCA9IDQsIC52YWx1ZSA9IDgsIH0sXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jLTQ3MS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jOjQ3MjpcXHR2Y2FwX2l0ZXJfaW5pdChcXHUwMDI2aXRlciwgNDksIHR5cGVncm91cHMsIDQ0KTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jLTQ3My1cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmMtNDc3LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmM6NDc4OlxcdHZjYXBfZW5jb2RlX2JpdChzdHJlYW0sIFxcdTAwMjZpdGVyLCAxKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jLTQ3OS1cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmMtNDg0LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmM6NDg1OnN0YXRpYyB2b2lkIHZjYXBfYXBpX2VuY29kZV9maWVsZF90ZXN0KHN0cnVjdCBrdW5pdCAqdGVzdClcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jLTQ4Ni17XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfa3VuaXQuYzo0ODc6XFx0c3RydWN0IHZjYXBfc3RyZWFtX2l0ZXIgaXRlcjtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jLTQ4OC1cXHR1MzIgc3RyZWFtWzE2XSA9IHswfTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jOjQ4OTpcXHRzdHJ1Y3QgdmNhcF90eXBlZ3JvdXAgdHlwZWdyb3Vwc1tdID0ge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmMtNDkwLVxcdFxcdHsgLm9mZnNldCA9IDAsIC53aWR0aCA9IDQsIC52YWx1ZSA9IDgsIH0sXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jLTQ5Ny1cXHR9O1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmM6NDk4OlxcdHN0cnVjdCB2Y2FwX2ZpZWxkIHJmID0ge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmMtNDk5LVxcdFxcdC50eXBlID0gVkNBUF9GSUVMRF9VMzIsXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jLTUwNC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jOjUwNTpcXHR2Y2FwX2l0ZXJfaW5pdChcXHUwMDI2aXRlciwgNDksIHR5cGVncm91cHMsIHJmLm9mZnNldCk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfa3VuaXQuYy01MDYtXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jLTUxMC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jOjUxMTpcXHR2Y2FwX2VuY29kZV9maWVsZChzdHJlYW0sIFxcdTAwMjZpdGVyLCByZi53aWR0aCwgdmFsdWUpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmMtNTEyLVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfa3VuaXQuYy01MTgtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfa3VuaXQuYzo1MTk6XFx0dmNhcF9lbmNvZGVfdHlwZWdyb3VwcyhzdHJlYW0sIDQ5LCB0eXBlZ3JvdXBzLCBmYWxzZSk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfa3VuaXQuYy01MjAtXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jLTUzNS0vKiBJbiB0aGlzIHRlc3RjYXNlIHRoZSBzdWJ3b3JkIGlzIHNtYWxsZXIgdGhhbiBhIHJlZ2lzdGVyICovXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfa3VuaXQuYzo1MzY6c3RhdGljIHZvaWQgdmNhcF9hcGlfZW5jb2RlX3Nob3J0X2ZpZWxkX3Rlc3Qoc3RydWN0IGt1bml0ICp0ZXN0KVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmMtNTM3LXtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jOjUzODpcXHRzdHJ1Y3QgdmNhcF9zdHJlYW1faXRlciBpdGVyO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmMtNTM5LVxcdGludCBzd193aWR0aCA9IDIxO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmMtNTQwLVxcdHUzMiBzdHJlYW1bNl0gPSB7MH07XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfa3VuaXQuYzo1NDE6XFx0c3RydWN0IHZjYXBfdHlwZWdyb3VwIHRndFtdID0ge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmMtNTQyLVxcdFxcdHsgLm9mZnNldCA9IDAsIC53aWR0aCA9IDMsIC52YWx1ZSA9IDcsIH0sXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jLTU0Ni1cXHR9O1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmM6NTQ3OlxcdHN0cnVjdCB2Y2FwX2ZpZWxkIHJmID0ge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmMtNTQ4LVxcdFxcdC50eXBlID0gVkNBUF9GSUVMRF9VMzIsXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jLTU1My1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jOjU1NDpcXHR2Y2FwX2l0ZXJfaW5pdChcXHUwMDI2aXRlciwgc3dfd2lkdGgsIHRndCwgcmYub2Zmc2V0KTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jLTU1NS1cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmMtNTYxLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmM6NTYyOlxcdHZjYXBfZW5jb2RlX2ZpZWxkKHN0cmVhbSwgXFx1MDAyNml0ZXIsIHJmLndpZHRoLCB2YWx1ZSk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfa3VuaXQuYy01NjMtXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jLTU3MC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jOjU3MTpcXHR2Y2FwX2VuY29kZV90eXBlZ3JvdXBzKHN0cmVhbSwgc3dfd2lkdGgsIHRndCwgZmFsc2UpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmMtNTcyLVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfa3VuaXQuYy01ODAtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfa3VuaXQuYzo1ODE6c3RhdGljIHZvaWQgdmNhcF9hcGlfZW5jb2RlX2tleWZpZWxkX3Rlc3Qoc3RydWN0IGt1bml0ICp0ZXN0KVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmMtNTgyLXtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmMtNTg0LVxcdHUzMiBtYXNrd29yZHNbMTZdID0gezB9O1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmM6NTg1OlxcdHN0cnVjdCB2Y2FwX2FkbWluIGFkbWluID0ge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmMtNTg2LVxcdFxcdC52dHlwZSA9IFZDQVBfVFlQRV9JUzIsXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jLTU5Mi1cXHR9O1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmM6NTkzOlxcdHN0cnVjdCB2Y2FwX3J1bGVfaW50ZXJuYWwgcnVsZSA9IHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jLTU5NC1cXHRcXHQuYWRtaW4gPSBcXHUwMDI2YWRtaW4sXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jLTU5OS1cXHR9O1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmM6NjAwOlxcdHN0cnVjdCB2Y2FwX2NsaWVudF9rZXlmaWVsZCBja2YgPSB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfa3VuaXQuYy02MDEtXFx0XFx0LmN0cmwubGlzdCA9IHt9LFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfa3VuaXQuYy02MDYtXFx0fTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jOjYwNzpcXHRzdHJ1Y3QgdmNhcF9maWVsZCByZiA9IHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jLTYwOC1cXHRcXHQudHlwZSA9IFZDQVBfRklFTERfVTMyLFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfa3VuaXQuYy02MTEtXFx0fTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jOjYxMjpcXHRzdHJ1Y3QgdmNhcF90eXBlZ3JvdXAgdGd0W10gPSB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfa3VuaXQuYy02MTMtXFx0XFx0eyAub2Zmc2V0ID0gMCwgLndpZHRoID0gMiwgLnZhbHVlID0gMiwgfSxcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmMtNjE3LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmM6NjE4OlxcdHZjYXBfdGVzdF9hcGlfaW5pdChcXHUwMDI2YWRtaW4pO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmM6NjE5OlxcdHZjYXBfZW5jb2RlX2tleWZpZWxkKFxcdTAwMjZydWxlLCBcXHUwMDI2Y2tmLCBcXHUwMDI2cmYsIHRndCk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfa3VuaXQuYy02MjAtXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jLTYzOS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jOjY0MDpzdGF0aWMgdm9pZCB2Y2FwX2FwaV9lbmNvZGVfbWF4X2tleWZpZWxkX3Rlc3Qoc3RydWN0IGt1bml0ICp0ZXN0KVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmMtNjQxLXtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmMtNjQ0LVxcdHUzMiBtYXNrd29yZHNbNl0gPSB7MH07XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfa3VuaXQuYzo2NDU6XFx0c3RydWN0IHZjYXBfYWRtaW4gYWRtaW4gPSB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfa3VuaXQuYy02NDYtXFx0XFx0LnZ0eXBlID0gVkNBUF9UWVBFX0lTMixcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmMtNjUzLVxcdH07XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfa3VuaXQuYzo2NTQ6XFx0c3RydWN0IHZjYXBfcnVsZV9pbnRlcm5hbCBydWxlID0ge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmMtNjU1LVxcdFxcdC5hZG1pbiA9IFxcdTAwMjZhZG1pbixcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmMtNjYwLVxcdH07XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfa3VuaXQuYzo2NjE6XFx0c3RydWN0IHZjYXBfY2xpZW50X2tleWZpZWxkIGNrZiA9IHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jLTY2Mi1cXHRcXHQuY3RybC5saXN0ID0ge30sXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jLTY2OS1cXHR9O1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmM6NjcwOlxcdHN0cnVjdCB2Y2FwX2ZpZWxkIHJmID0ge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmMtNjcxLVxcdFxcdC50eXBlID0gVkNBUF9GSUVMRF9VMTI4LFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfa3VuaXQuYy02NzQtXFx0fTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jOjY3NTpcXHRzdHJ1Y3QgdmNhcF90eXBlZ3JvdXAgdGd0W10gPSB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfa3VuaXQuYy02NzYtXFx0XFx0eyAub2Zmc2V0ID0gMCwgLndpZHRoID0gMiwgLnZhbHVlID0gMiwgfSxcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmMtNjk2LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmM6Njk3OlxcdHZjYXBfZW5jb2RlX2tleWZpZWxkKFxcdTAwMjZydWxlLCBcXHUwMDI2Y2tmLCBcXHUwMDI2cmYsIHRndCk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfa3VuaXQuYy02OTgtXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jLTcwNi1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jOjcwNzpzdGF0aWMgdm9pZCB2Y2FwX2FwaV9lbmNvZGVfYWN0aW9uZmllbGRfdGVzdChzdHJ1Y3Qga3VuaXQgKnRlc3QpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfa3VuaXQuYy03MDgte1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfa3VuaXQuYy03MTAtXFx0aW50IHN3X3dpZHRoID0gMjE7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfa3VuaXQuYzo3MTE6XFx0c3RydWN0IHZjYXBfYWRtaW4gYWRtaW4gPSB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfa3VuaXQuYy03MTItXFx0XFx0LnZ0eXBlID0gVkNBUF9UWVBFX0VTMiwgLyogYWN0X3dpZHRoID0gMjEgKi9cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmMtNzE2LVxcdH07XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfa3VuaXQuYzo3MTc6XFx0c3RydWN0IHZjYXBfcnVsZV9pbnRlcm5hbCBydWxlID0ge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmMtNzE4LVxcdFxcdC5hZG1pbiA9IFxcdTAwMjZhZG1pbixcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmMtNzIzLVxcdH07XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfa3VuaXQuYzo3MjQ6XFx0c3RydWN0IHZjYXBfY2xpZW50X2FjdGlvbmZpZWxkIGNhZiA9IHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jLTcyNS1cXHRcXHQuY3RybC5saXN0ID0ge30sXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jLTcyOS1cXHR9O1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmM6NzMwOlxcdHN0cnVjdCB2Y2FwX2ZpZWxkIHJmID0ge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmMtNzMxLVxcdFxcdC50eXBlID0gVkNBUF9GSUVMRF9VMzIsXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jLTczNC1cXHR9O1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmM6NzM1OlxcdHN0cnVjdCB2Y2FwX3R5cGVncm91cCB0Z3RbXSA9IHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jLTczNi1cXHRcXHR7IC5vZmZzZXQgPSAwLCAud2lkdGggPSAyLCAudmFsdWUgPSAyLCB9LFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfa3VuaXQuYy03NDEtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfa3VuaXQuYzo3NDI6XFx0dmNhcF9lbmNvZGVfYWN0aW9uZmllbGQoXFx1MDAyNnJ1bGUsIFxcdTAwMjZjYWYsIFxcdTAwMjZyZiwgdGd0KTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jLTc0My1cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmMtNzUzLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmM6NzU0OnN0YXRpYyB2b2lkIHZjYXBfYXBpX2tleWZpZWxkX3R5cGVncm91cF90ZXN0KHN0cnVjdCBrdW5pdCAqdGVzdClcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jLTc1NS17XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfa3VuaXQuYzo3NTY6XFx0Y29uc3Qgc3RydWN0IHZjYXBfdHlwZWdyb3VwICp0ZztcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jLTc1Ny1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jOjc1ODpcXHR0ZyA9IHZjYXBfa2V5ZmllbGRfdHlwZWdyb3VwKFxcdTAwMjZ0ZXN0X3ZjdHJsLCBWQ0FQX1RZUEVfSVMyLCBWQ0FQX0tGU19NQUNfRVRZUEUpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmMtNzU5LVxcdEtVTklUX0VYUEVDVF9QVFJfTkUodGVzdCwgTlVMTCwgdGcpO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfa3VuaXQuYy03NjktXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfa3VuaXQuYzo3NzA6XFx0dGcgPSB2Y2FwX2tleWZpZWxkX3R5cGVncm91cChcXHUwMDI2dGVzdF92Y3RybCwgVkNBUF9UWVBFX0VTMiwgVkNBUF9LRlNfTExfRlVMTCk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfa3VuaXQuYy03NzEtXFx0S1VOSVRfRVhQRUNUX1BUUl9FUSh0ZXN0LCBOVUxMLCB0Zyk7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jLTc3My1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jOjc3NDpzdGF0aWMgdm9pZCB2Y2FwX2FwaV9hY3Rpb25maWVsZF90eXBlZ3JvdXBfdGVzdChzdHJ1Y3Qga3VuaXQgKnRlc3QpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfa3VuaXQuYy03NzUte1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmM6Nzc2OlxcdGNvbnN0IHN0cnVjdCB2Y2FwX3R5cGVncm91cCAqdGc7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfa3VuaXQuYy03NzctXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfa3VuaXQuYzo3Nzg6XFx0dGcgPSB2Y2FwX2FjdGlvbmZpZWxkX3R5cGVncm91cChcXHUwMDI2dGVzdF92Y3RybCwgVkNBUF9UWVBFX0lTMCwgVkNBUF9BRlNfRlVMTCk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfa3VuaXQuYy03NzktXFx0S1VOSVRfRVhQRUNUX1BUUl9ORSh0ZXN0LCBOVUxMLCB0Zyk7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jLTc5Mi1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jOjc5MzpcXHR0ZyA9IHZjYXBfYWN0aW9uZmllbGRfdHlwZWdyb3VwKFxcdTAwMjZ0ZXN0X3ZjdHJsLCBWQ0FQX1RZUEVfSVMyLCBWQ0FQX0FGU19DTEFTU0lGSUNBVElPTik7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfa3VuaXQuYy03OTQtXFx0S1VOSVRfRVhQRUNUX1BUUl9FUSh0ZXN0LCBOVUxMLCB0Zyk7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jLTc5Ni1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jOjc5NzpzdGF0aWMgdm9pZCB2Y2FwX2FwaV92Y2FwX2tleWZpZWxkc190ZXN0KHN0cnVjdCBrdW5pdCAqdGVzdClcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jLTc5OC17XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfa3VuaXQuYzo3OTk6XFx0Y29uc3Qgc3RydWN0IHZjYXBfZmllbGQgKmZ0O1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmMtODAwLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmM6ODAxOlxcdGZ0ID0gdmNhcF9rZXlmaWVsZHMoXFx1MDAyNnRlc3RfdmN0cmwsIFZDQVBfVFlQRV9JUzIsIFZDQVBfS0ZTX01BQ19FVFlQRSk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfa3VuaXQuYy04MDItXFx0S1VOSVRfRVhQRUNUX1BUUl9ORSh0ZXN0LCBOVUxMLCBmdCk7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jLTgwNC1cXHQvKiBLZXlzZXQgdGhhdCBpcyBub3QgYXZhaWxhYmxlIGFuZCB3aXRoaW4gdGhlIG1heGltdW0ga2V5c2V0IGVudW0gdmFsdWUgKi9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jOjgwNTpcXHRmdCA9IHZjYXBfa2V5ZmllbGRzKFxcdTAwMjZ0ZXN0X3ZjdHJsLCBWQ0FQX1RZUEVfRVMyLCBWQ0FQX0tGU19QVVJFXzVUVVBMRV9JUDQpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmMtODA2LVxcdEtVTklUX0VYUEVDVF9QVFJfRVEodGVzdCwgTlVMTCwgZnQpO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfa3VuaXQuYy04MDgtXFx0LyogS2V5c2V0IHRoYXQgaXMgbm90IGF2YWlsYWJsZSBhbmQgYmV5b25kIHRoZSBtYXhpbXVtIGtleXNldCBlbnVtIHZhbHVlICovXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfa3VuaXQuYzo4MDk6XFx0ZnQgPSB2Y2FwX2tleWZpZWxkcyhcXHUwMDI2dGVzdF92Y3RybCwgVkNBUF9UWVBFX0VTMiwgVkNBUF9LRlNfTExfRlVMTCk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfa3VuaXQuYy04MTAtXFx0S1VOSVRfRVhQRUNUX1BUUl9FUSh0ZXN0LCBOVUxMLCBmdCk7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jLTgxMi1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jOjgxMzpzdGF0aWMgdm9pZCB2Y2FwX2FwaV92Y2FwX2FjdGlvbmZpZWxkc190ZXN0KHN0cnVjdCBrdW5pdCAqdGVzdClcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jLTgxNC17XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfa3VuaXQuYzo4MTU6XFx0Y29uc3Qgc3RydWN0IHZjYXBfZmllbGQgKmZ0O1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmMtODE2LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmM6ODE3OlxcdGZ0ID0gdmNhcF9hY3Rpb25maWVsZHMoXFx1MDAyNnRlc3RfdmN0cmwsIFZDQVBfVFlQRV9JUzAsIFZDQVBfQUZTX0ZVTEwpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmMtODE4LVxcdEtVTklUX0VYUEVDVF9QVFJfTkUodGVzdCwgTlVMTCwgZnQpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmMtODE5LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmM6ODIwOlxcdGZ0ID0gdmNhcF9hY3Rpb25maWVsZHMoXFx1MDAyNnRlc3RfdmN0cmwsIFZDQVBfVFlQRV9JUzIsIFZDQVBfQUZTX0ZVTEwpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmMtODIxLVxcdEtVTklUX0VYUEVDVF9QVFJfRVEodGVzdCwgTlVMTCwgZnQpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmMtODIyLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmM6ODIzOlxcdGZ0ID0gdmNhcF9hY3Rpb25maWVsZHMoXFx1MDAyNnRlc3RfdmN0cmwsIFZDQVBfVFlQRV9JUzIsIFZDQVBfQUZTX0NMQVNTSUZJQ0FUSU9OKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jLTgyNC1cXHRLVU5JVF9FWFBFQ1RfUFRSX0VRKHRlc3QsIE5VTEwsIGZ0KTtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmMtODI2LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmM6ODI3OnN0YXRpYyB2b2lkIHZjYXBfYXBpX2VuY29kZV9ydWxlX2tleXNldF90ZXN0KHN0cnVjdCBrdW5pdCAqdGVzdClcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jLTgyOC17XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jLTgzMC1cXHR1MzIgbWFza3dvcmRzWzE2XSA9IHswfTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jOjgzMTpcXHRzdHJ1Y3QgdmNhcF9hZG1pbiBhZG1pbiA9IHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jLTgzMi1cXHRcXHQudnR5cGUgPSBWQ0FQX1RZUEVfSVMyLFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfa3VuaXQuYy04MzctXFx0fTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jOjgzODpcXHRzdHJ1Y3QgdmNhcF9ydWxlX2ludGVybmFsIHJ1bGUgPSB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfa3VuaXQuYy04MzktXFx0XFx0LmFkbWluID0gXFx1MDAyNmFkbWluLFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfa3VuaXQuYy04NDQtXFx0fTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jOjg0NTpcXHRzdHJ1Y3QgdmNhcF9jbGllbnRfa2V5ZmllbGQgY2tmW10gPSB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfa3VuaXQuYy04NDYtXFx0XFx0e1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfa3VuaXQuYy05MDAtXFx0SU5JVF9MSVNUX0hFQUQoXFx1MDAyNnJ1bGUuZGF0YS5rZXlmaWVsZHMpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmM6OTAxOlxcdHJldCA9IHZjYXBfZW5jb2RlX3J1bGVfa2V5c2V0KFxcdTAwMjZydWxlKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jLTkwMi1cXHRLVU5JVF9FWFBFQ1RfRVEodGVzdCwgLUVJTlZBTCwgcmV0KTtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmMtOTA1LVxcdFxcdGxpc3RfYWRkX3RhaWwoXFx1MDAyNmNrZltpZHhdLmN0cmwubGlzdCwgXFx1MDAyNnJ1bGUuZGF0YS5rZXlmaWVsZHMpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmM6OTA2OlxcdHJldCA9IHZjYXBfZW5jb2RlX3J1bGVfa2V5c2V0KFxcdTAwMjZydWxlKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jLTkwNy1cXHRLVU5JVF9FWFBFQ1RfRVEodGVzdCwgMCwgcmV0KTtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmMtOTM4LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmM6OTM5OnN0YXRpYyB2b2lkIHZjYXBfYXBpX2VuY29kZV9ydWxlX2FjdGlvbnNldF90ZXN0KHN0cnVjdCBrdW5pdCAqdGVzdClcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jLTk0MC17XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfa3VuaXQuYy05NDEtXFx0dTMyIGFjdHdvcmRzWzE2XSA9IHswfTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jOjk0MjpcXHRzdHJ1Y3QgdmNhcF9hZG1pbiBhZG1pbiA9IHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jLTk0My1cXHRcXHQudnR5cGUgPSBWQ0FQX1RZUEVfSVMyLFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfa3VuaXQuYy05NDctXFx0fTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jOjk0ODpcXHRzdHJ1Y3QgdmNhcF9ydWxlX2ludGVybmFsIHJ1bGUgPSB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfa3VuaXQuYy05NDktXFx0XFx0LmFkbWluID0gXFx1MDAyNmFkbWluLFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfa3VuaXQuYy05NTQtXFx0fTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jOjk1NTpcXHRzdHJ1Y3QgdmNhcF9jbGllbnRfYWN0aW9uZmllbGQgY2FmW10gPSB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfa3VuaXQuYy05NTYtXFx0XFx0e1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfa3VuaXQuYy05NzYtXFx0SU5JVF9MSVNUX0hFQUQoXFx1MDAyNnJ1bGUuZGF0YS5hY3Rpb25maWVsZHMpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmM6OTc3OlxcdHJldCA9IHZjYXBfZW5jb2RlX3J1bGVfYWN0aW9uc2V0KFxcdTAwMjZydWxlKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jLTk3OC1cXHQvKiBXZSBhbGxvdyBydWxlcyB3aXRoIG5vIGFjdGlvbnMgKi9cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmMtOTgyLVxcdFxcdGxpc3RfYWRkX3RhaWwoXFx1MDAyNmNhZltpZHhdLmN0cmwubGlzdCwgXFx1MDAyNnJ1bGUuZGF0YS5hY3Rpb25maWVsZHMpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmM6OTgzOlxcdHJldCA9IHZjYXBfZW5jb2RlX3J1bGVfYWN0aW9uc2V0KFxcdTAwMjZydWxlKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jLTk4NC1cXHRLVU5JVF9FWFBFQ1RfRVEodGVzdCwgMCwgcmV0KTtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmMtMTAwMC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jOjEwMDE6c3RhdGljIHZvaWQgdmNhcF9mcmVlX2NrZihzdHJ1Y3QgdmNhcF9ydWxlICpydWxlKVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmMtMTAwMi17XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfa3VuaXQuYzoxMDAzOlxcdHN0cnVjdCB2Y2FwX2NsaWVudF9rZXlmaWVsZCAqY2tmLCAqbmV4dF9ja2Y7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfa3VuaXQuYy0xMDA0LVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfa3VuaXQuYy0xMDEwLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmM6MTAxMTpzdGF0aWMgdm9pZCB2Y2FwX2FwaV9ydWxlX2FkZF9rZXl2YWx1ZV90ZXN0KHN0cnVjdCBrdW5pdCAqdGVzdClcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jLTEwMTIte1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmM6MTAxMzpcXHRzdHJ1Y3QgdmNhcF9hZG1pbiBhZG1pbiA9IHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jLTEwMTQtXFx0XFx0LnZ0eXBlID0gVkNBUF9UWVBFX0lTMixcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jLTEwMTUtXFx0fTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jOjEwMTY6XFx0c3RydWN0IHZjYXBfcnVsZV9pbnRlcm5hbCByaSA9IHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jLTEwMTctXFx0XFx0LmFkbWluID0gXFx1MDAyNmFkbWluLFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfa3VuaXQuYy0xMDIyLVxcdH07XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfa3VuaXQuYzoxMDIzOlxcdHN0cnVjdCB2Y2FwX3J1bGUgKnJ1bGUgPSAoc3RydWN0IHZjYXBfcnVsZSAqKVxcdTAwMjZyaTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jOjEwMjQ6XFx0c3RydWN0IHZjYXBfY2xpZW50X2tleWZpZWxkICprZjtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jLTEwMjUtXFx0aW50IHJldDtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jOjEwMjY6XFx0c3RydWN0IHZjYXBfdTEyOF9rZXkgZGlwID0ge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmMtMTAyNy1cXHRcXHQudmFsdWUgPSB7MHgxNywgMHgyNiwgMHgzNSwgMHg0NCwgMHg2MywgMHg2MiwgMHg3MX0sXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jLTEwMzItXFx0SU5JVF9MSVNUX0hFQUQoXFx1MDAyNnJ1bGUtXFx1MDAzZWtleWZpZWxkcyk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfa3VuaXQuYzoxMDMzOlxcdHJldCA9IHZjYXBfcnVsZV9hZGRfa2V5X2JpdChydWxlLCBWQ0FQX0tGX0xPT0tVUF9GSVJTVF9JUywgVkNBUF9CSVRfMCk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfa3VuaXQuYy0xMDM0LVxcdEtVTklUX0VYUEVDVF9FUSh0ZXN0LCAwLCByZXQpO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfa3VuaXQuYy0xMDM2LVxcdEtVTklUX0VYUEVDVF9FUSh0ZXN0LCBmYWxzZSwgcmV0KTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jOjEwMzc6XFx0a2YgPSBsaXN0X2ZpcnN0X2VudHJ5KFxcdTAwMjZydWxlLVxcdTAwM2VrZXlmaWVsZHMsIHN0cnVjdCB2Y2FwX2NsaWVudF9rZXlmaWVsZCxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jLTEwMzgtXFx0XFx0XFx0ICAgICAgY3RybC5saXN0KTtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmMtMTA0Mi1cXHRLVU5JVF9FWFBFQ1RfRVEodGVzdCwgMHgxLCBrZi1cXHUwMDNlZGF0YS51MS5tYXNrKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jOjEwNDM6XFx0dmNhcF9mcmVlX2NrZihydWxlKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jLTEwNDQtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfa3VuaXQuYy0xMDQ1LVxcdElOSVRfTElTVF9IRUFEKFxcdTAwMjZydWxlLVxcdTAwM2VrZXlmaWVsZHMpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmM6MTA0NjpcXHRyZXQgPSB2Y2FwX3J1bGVfYWRkX2tleV9iaXQocnVsZSwgVkNBUF9LRl9MT09LVVBfRklSU1RfSVMsIFZDQVBfQklUXzEpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmMtMTA0Ny1cXHRLVU5JVF9FWFBFQ1RfRVEodGVzdCwgMCwgcmV0KTtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmMtMTA0OS1cXHRLVU5JVF9FWFBFQ1RfRVEodGVzdCwgZmFsc2UsIHJldCk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfa3VuaXQuYzoxMDUwOlxcdGtmID0gbGlzdF9maXJzdF9lbnRyeShcXHUwMDI2cnVsZS1cXHUwMDNla2V5ZmllbGRzLCBzdHJ1Y3QgdmNhcF9jbGllbnRfa2V5ZmllbGQsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfa3VuaXQuYy0xMDUxLVxcdFxcdFxcdCAgICAgIGN0cmwubGlzdCk7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jLTEwNTUtXFx0S1VOSVRfRVhQRUNUX0VRKHRlc3QsIDB4MSwga2YtXFx1MDAzZWRhdGEudTEubWFzayk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfa3VuaXQuYzoxMDU2OlxcdHZjYXBfZnJlZV9ja2YocnVsZSk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfa3VuaXQuYy0xMDU3LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmMtMTA1OC1cXHRJTklUX0xJU1RfSEVBRChcXHUwMDI2cnVsZS1cXHUwMDNla2V5ZmllbGRzKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jOjEwNTk6XFx0cmV0ID0gdmNhcF9ydWxlX2FkZF9rZXlfYml0KHJ1bGUsIFZDQVBfS0ZfTE9PS1VQX0ZJUlNUX0lTLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmMtMTA2MC1cXHRcXHRcXHRcXHQgICAgVkNBUF9CSVRfQU5ZKTtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmMtMTA2My1cXHRLVU5JVF9FWFBFQ1RfRVEodGVzdCwgZmFsc2UsIHJldCk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfa3VuaXQuYzoxMDY0OlxcdGtmID0gbGlzdF9maXJzdF9lbnRyeShcXHUwMDI2cnVsZS1cXHUwMDNla2V5ZmllbGRzLCBzdHJ1Y3QgdmNhcF9jbGllbnRfa2V5ZmllbGQsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfa3VuaXQuYy0xMDY1LVxcdFxcdFxcdCAgICAgIGN0cmwubGlzdCk7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jLTEwNjktXFx0S1VOSVRfRVhQRUNUX0VRKHRlc3QsIDB4MCwga2YtXFx1MDAzZWRhdGEudTEubWFzayk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfa3VuaXQuYzoxMDcwOlxcdHZjYXBfZnJlZV9ja2YocnVsZSk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfa3VuaXQuYy0xMDcxLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmMtMTA3Mi1cXHRJTklUX0xJU1RfSEVBRChcXHUwMDI2cnVsZS1cXHUwMDNla2V5ZmllbGRzKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jOjEwNzM6XFx0cmV0ID0gdmNhcF9ydWxlX2FkZF9rZXlfdTMyKHJ1bGUsIFZDQVBfS0ZfVFlQRSwgMHg5ODc2NTQzMiwgMHhmZjAwZmZhYik7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfa3VuaXQuYy0xMDc0LVxcdEtVTklUX0VYUEVDVF9FUSh0ZXN0LCAwLCByZXQpO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfa3VuaXQuYy0xMDc2LVxcdEtVTklUX0VYUEVDVF9FUSh0ZXN0LCBmYWxzZSwgcmV0KTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jOjEwNzc6XFx0a2YgPSBsaXN0X2ZpcnN0X2VudHJ5KFxcdTAwMjZydWxlLVxcdTAwM2VrZXlmaWVsZHMsIHN0cnVjdCB2Y2FwX2NsaWVudF9rZXlmaWVsZCxcXG5cXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMjlUMTA6Mjc6NDguMjcyMDcyNDQ0WiIsIlNlcSI6MjcsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjk5MzkyMzUzNDQsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6Ik9rYXksIGhlcmUncyBteSB0YWtlIG9uIHRob3NlIHRob3VnaHRzLCBmcmFtZWQgYXMgbXkgb3duOlxuXG4qKkFuYWx5emluZyB0aGUgdmNhcF9hcGlfa3VuaXQuYyBUZXN0IFN1aXRlKipcblxuQWxyaWdodCwgbGV0J3MgZGl2ZSBpbnRvIGB2Y2FwX2FwaV9rdW5pdC5jYC4gSSdtIGdvaW5nIHRocm91Z2ggdGhlIHRlc3RzIGluIHRoaXMgbW9kdWxlLCBhcyBpdCBoYXMgYSBwcmV0dHkgZXh0ZW5zaXZlIHN1aXRlLiBNeSBwcmltYXJ5IGNvbmNlcm4gcmlnaHQgbm93IGlzIHRvIHNlZSBpZiB3ZSBoYXZlIGdvb2QgY292ZXJhZ2UgZm9yIHRoZSBgdmNhcF9kZWNvZGVfcnVsZWAgZnVuY3Rpb24uIEkgbmVlZCB0byBxdWlja2x5IGRldGVybWluZSBpZiB0aGVyZSBhcmUgZGVkaWNhdGVkIHRlc3RzLCBvciBpZiBpdHMgZnVuY3Rpb25hbGl0eSBpcyBjb3ZlcmVkIGluZGlyZWN0bHkgd2l0aGluIG90aGVyIHRlc3RzLiBBIGxhY2sgb2Ygc3BlY2lmaWMgdGVzdHMgd291bGQgYmUgYSByZWQgZmxhZywgYW5kIEknZCBuZWVkIHRvIGNvbnNpZGVyIHdoZXJlIHRoYXQgZnVuY3Rpb24ncyBjb3ZlcmFnZSBzdGFuZHMsIGFuZCwgaWYgbGFja2luZywgcGxhbiBhY2NvcmRpbmdseS4gTGV0J3Mgc2VlIHdoYXQgd2UndmUgZ290LlxuXG5cbiIsIklucHV0VG9rZW5zIjozMzg3NCwiT3V0cHV0VG9rZW5zIjo0OCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjMyLCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTI5VDEwOjI3OjU4LjIxMTMxNTg2OFoiLCJTZXEiOjI4LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MTI5ODQ2MDg3LCJFcnJvciI6Im5vIG1hdGNoZXMiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJ2Y2FwX2RlY29kZV9ydWxlXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmNcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiZXJyb3JcIjogXCJubyBtYXRjaGVzXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTI5VDEwOjI3OjU4LjM0MTE3NDAwNVoiLCJTZXEiOjI5LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo3MjcyMDYzNDk3LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKlJlYWNoaW5nIGB2Y2FwX2RlY29kZV9ydWxlYCBpbiBhIFZpcnR1YWxpemVkIFdvcmxkKipcblxuT2theSwgc28gdGhpcyBjb2RlIHBhdGggaXNuJ3Qgc3BlY2lmaWNhbGx5IGNvdmVyZWQgYnkgS1VuaXQsIHdoaWNoIHJhaXNlcyBhIGZsYWcuIFRoZSByZWFsIHF1ZXN0aW9uIGlzOiBjYW4gYHZjYXBfZGVjb2RlX3J1bGVgIGV2ZW4gKmJlKiByZWFjaGVkIHdoZW4gcnVubmluZyBpbiBhIHZpcnR1YWxpemVkIGVudmlyb25tZW50PyBJdCdzIGNhbGxlZCBieSBgdmNhcF9nZXRfcnVsZWAgYW5kLCBvZiBjb3Vyc2UsIHRoZSBgdmNhcF9zaG93X2FkbWluYCBkZWJ1Z2dpbmcgdG9vbC4gYHZjYXBfZ2V0X3J1bGVgIGlzIGV4cG9ydGVkLCBtYWtpbmcgaXQgYWNjZXNzaWJsZSB0byBleHRlcm5hbCBjbGllbnRzLCB3aGljaCBpbW1lZGlhdGVseSBwaXF1ZXMgbXkgaW50ZXJlc3QuXG5cblRoZSBrZXkgaGVyZSBpcyB3aGV0aGVyIGFueSBvZiB0aG9zZSBjbGllbnQgZHJpdmVycyBjYW4gYmUgbG9hZGVkIGFuZCBleGVyY2lzZWQgdW5kZXIgUUVNVS4gVGhpbmtpbmcgdGhyb3VnaCB0aGlzLCB3ZSdyZSB0YWxraW5nIGFib3V0IGRyaXZlcnMgbGlrZSBgc3Bhcng1YCBhbmQgYGxhbjk2NnhgLiBUaGVzZSBhcmUgaGFyZHdhcmUgc3dpdGNoIGRyaXZlcnMsIHNvIHRoYXQgaW1tZWRpYXRlbHkgYnJpbmdzIHVwIGNvbmNlcm5zIGFib3V0IGRlcGVuZGVuY3kuIE15IGluaXRpYWwgaHVuY2ggaXMgdGhhdCB0aGVzZSB3aWxsIHJlcXVpcmUgc29tZSBmb3JtIG9mIFBDSWUgb3IgcGxhdGZvcm0gZGV2aWNlIHRoYXQgaXMgZ2VuZXJhbGx5IG5vdCBmdWxseSBlbXVsYXRlZCBpbiBhIHR5cGljYWwgUUVNVSBzZXR1cC4gVGhleSBhbG1vc3QgY2VydGFpbmx5IG5lZWQgbW9yZSB0aGFuIHN0YW5kYXJkIGVtdWxhdGlvbi5cblxuVGhlcmVmb3JlLCBsZXQgbWUgbm93IGdvIGFuZCBjaGVjayB3aGV0aGVyIHRoZXJlIGlzIGFueSBlc3RhYmxpc2hlZCBvciBrbm93biBzb2Z0d2FyZSBlbXVsYXRpb24gZm9yIGVpdGhlciBvZiB0aG9zZSBzd2l0Y2hlcy4gVGhhdCBpcyB3aGVyZSBJIHdpbGwgc3RhcnQsIGZvciBub3cuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjM0MTMwLCJPdXRwdXRUb2tlbnMiOjM2LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MTc2LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTI5VDEwOjI4OjA1LjYxMzI0MjI1MloiLCJTZXEiOjMwLCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NzAwNzYwNjk0LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcImNvbmZpZyBTUEFSWDVfU1dJVENIXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC9cIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3NwYXJ4NS9LY29uZmlnOjE6Y29uZmlnIFNQQVJYNV9TV0lUQ0hcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvc3Bhcng1L0tjb25maWctMi1cXHR0cmlzdGF0ZSBcXFwiU3Bhcng1IHN3aXRjaCBkcml2ZXJcXFwiXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTI5VDEwOjI4OjA2LjMxNDAxNTYxNVoiLCJTZXEiOjMxLCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo2MTk2MjUxNzAzLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJIZXJlJ3MgYSBzdW1tYXJ5IG9mIG15IHRob3VnaHQgcHJvY2VzcywgYXMgcmVxdWVzdGVkOlxuXG4qKk5hdmlnYXRpbmcgdGhlIEtlcm5lbCdzIE5ldHdvcmsgRHJpdmVyIENvbmZpZ3VyYXRpb24qKlxuXG5Pa2F5LCBzbyBJIG5lZWQgdG8gdW5kZXJzdGFuZCB0aGUgY29uZmlndXJhdGlvbiBvcHRpb25zIGZvciB0aGUgTWljcm9jaGlwIFNwYXJ4NSBFdGhlcm5ldCBkcml2ZXIgd2l0aGluIHRoZSBMaW51eCBrZXJuZWwuIFdoZXJlIHdvdWxkIEkgZXhwZWN0IHRvIGZpbmQgdGhlc2Ugc2V0dGluZ3M/IE15IGluaXRpYWwgaW50dWl0aW9uIHRlbGxzIG1lIHRvIHN0YXJ0IGRpZ2dpbmcgaW50byB0aGUgYGRyaXZlcnMvbmV0YCBzdWJ0cmVlLCBhcyB0aGF0J3Mgd2hlcmUgdGhlIG5ldHdvcmstcmVsYXRlZCBjb2RlIHJlc2lkZXMuIE1vcmUgc3BlY2lmaWNhbGx5LCBnaXZlbiB0aGUgbmFtZSwgXCJTcGFyeDUsXCIgaXQgc291bmRzIGxpa2UgaXQgbWlnaHQgYmUgYSBzcGVjaWZpYyB0eXBlIG9mIGRldmljZSwgd2hpY2ggbGVhZHMgbWUgdG8gaG9uZSBpbiBvbiB0aGUgYGV0aGVybmV0YCBzdWJkaXJlY3RvcnkuXG5cbk5vdywgd2l0aGluIGBkcml2ZXJzL25ldC9ldGhlcm5ldC9gLCBJJ20gbG9va2luZyBmb3IgYW55dGhpbmcgcmVsYXRlZCB0byBjb25maWd1cmF0aW9uLiBUeXBpY2FsbHksIGtlcm5lbCBjb25maWd1cmF0aW9uIG9wdGlvbnMgYXJlIGRlZmluZWQgaW4gYEtjb25maWdgIGZpbGVzLiBUaGF0J3MgdGhlIHN0YW5kYXJkLiBTbywgdGhlIG1vc3QgbGlrZWx5IHBhdGggdG8gZmluZCB0aGVzZSBzcGVjaWZpYyBTcGFyeDUgY29uZmlndXJhdGlvbiBvcHRpb25zIGlzIGBkcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvc3Bhcng1L0tjb25maWdgLiBMZXQncyBjb25maXJtIHRoYXQgdGhhdCBpcyB0aGUgY29ycmVjdCBwYXRoIGFuZCBkZWx2ZSBpbnRvIHRoZSBjb250ZW50cyBvZiB0aGF0IGBLY29uZmlnYCBmaWxlLlxuXG5cbiIsIklucHV0VG9rZW5zIjozNDY2NSwiT3V0cHV0VG9rZW5zIjo0MiwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjIyLCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTI5VDEwOjI4OjEyLjUxMDI3NDE5OFoiLCJTZXEiOjMyLCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJyZWFkLWZpbGUiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoxNTQ3NTAsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJGaWxlXCI6IFwiZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3NwYXJ4NS9LY29uZmlnXCIsXG4gIFwiRmlyc3RMaW5lXCI6IDEsXG4gIFwiTGluZUNvdW50XCI6IDIwXG59IiwiUmVzdWx0cyI6IntcbiAgXCJDb250ZW50c1wiOiBcIiAgIDE6XFx0Y29uZmlnIFNQQVJYNV9TV0lUQ0hcXG4gICAyOlxcdFxcdHRyaXN0YXRlIFxcXCJTcGFyeDUgc3dpdGNoIGRyaXZlclxcXCJcXG4gICAzOlxcdFxcdGRlcGVuZHMgb24gTkVUX1NXSVRDSERFVlxcbiAgIDQ6XFx0XFx0ZGVwZW5kcyBvbiBIQVNfSU9NRU1cXG4gICA1OlxcdFxcdGRlcGVuZHMgb24gT0ZcXG4gICA2OlxcdFxcdGRlcGVuZHMgb24gQVJDSF9TUEFSWDUgfHwgQVJDSF9MQU45NjlYIHx8IENPTVBJTEVfVEVTVFxcbiAgIDc6XFx0XFx0ZGVwZW5kcyBvbiBQVFBfMTU4OF9DTE9DS19PUFRJT05BTFxcbiAgIDg6XFx0XFx0ZGVwZW5kcyBvbiBCUklER0UgfHwgQlJJREdFPW5cXG4gICA5OlxcdFxcdHNlbGVjdCBQSFlMSU5LXFxuICAxMDpcXHRcXHRzZWxlY3QgUEhZX1NQQVJYNV9TRVJERVNcXG4gIDExOlxcdFxcdHNlbGVjdCBSRVNFVF9DT05UUk9MTEVSXFxuICAxMjpcXHRcXHRzZWxlY3QgVkNBUFxcbiAgMTM6XFx0XFx0c2VsZWN0IEZETUFcXG4gIDE0OlxcdFxcdGhlbHBcXG4gIDE1OlxcdFxcdCAgVGhpcyBkcml2ZXIgc3VwcG9ydHMgdGhlIFNwYXJ4NSBuZXR3b3JrIHN3aXRjaCBkZXZpY2UuXFxuICAxNjpcXHRcXG4gIDE3OlxcdGNvbmZpZyBTUEFSWDVfRENCXFxuICAxODpcXHRcXHRib29sIFxcXCJEYXRhIENlbnRlciBCcmlkZ2luZyAoRENCKSBzdXBwb3J0XFxcIlxcbiAgMTk6XFx0XFx0ZGVwZW5kcyBvbiBTUEFSWDVfU1dJVENIIFxcdTAwMjZcXHUwMDI2IERDQlxcbiAgMjA6XFx0XFx0ZGVmYXVsdCB5XFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTI5VDEwOjI4OjEyLjUxMDQzMTYwOFoiLCJTZXEiOjMzLCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo1OTk2NDI5NTA4LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkFuYWx5emluZyB0aGUgQ29tcGlsYXRpb24gTG9naWMqKlxuXG5Pa2F5LCBzbyB0aGlzIGNvZGUncyBjb21waWxhdGlvbiBwYXRoIGRlZmluaXRlbHkgaGluZ2VzIG9uIHRoZSB0YXJnZXQgYXJjaGl0ZWN0dXJlLiBJdCdzIGVpdGhlciB0aGUgTWljcm9jaGlwIFNwYXJ4NSwgdGhlIExBTjk2OXgsIG9yIGEgY29tcGlsZSB0ZXN0IHNldHVwLiBUaGF0IHN0cm9uZ2x5IHN1Z2dlc3RzIHRoaXMgaXMgYSBkcml2ZXIgc3BlY2lmaWMgdG8gdGhvc2UgY2hpcHMsIHJpZ2h0PyBBbmQsIGlmIGl0J3MgdGllZCB0byBzcGVjaWZpYyBoYXJkd2FyZSwgdGhhdCBwcm9iYWJseSBtZWFucyBpdCB3b24ndCBydW4gbmF0aXZlbHkgaW4gc3RhbmRhcmQgUUVNVS5cblxuQnV0IG5vdywgSSdtIHRoaW5raW5nIGFib3V0IGB2Y2FwX2RlY29kZV9ydWxlYC4gVGhhdCBmdW5jdGlvbiBpcyBidXJpZWQgaW4gYHZjYXBfYXBpLmNgLCB3aGljaCBtYWtlcyBtZSB0aGluayBpdCBpcyBvbmx5IGluY2x1ZGVkIGlmIGBDT05GSUdfVkNBUGAgaXMgc2V0LiBBbHNvLCBgQ09ORklHX1ZDQVBfS1VOSVRfVEVTVGAgc2VlbXMgdG8gdGVzdCB0aGUgVkNBUCBBUEkuXG5cbldhaXQgYSBzZWNvbmTigKYgYHZjYXBfZGVjb2RlX3J1bGVgIGlzbid0IHRlc3RlZCBpbiBgdmNhcF9hcGlfa3VuaXQuY2AuIFRoYXQncyBhIHJlZCBmbGFnLiBJcyB0aGVyZSAqYW55KiBvdGhlciBLVW5pdCB0ZXN0IGNvdmVyYWdlIGZvciB0aGlzIHNwZWNpZmljIGZ1bmN0aW9uIGFueXdoZXJlIGluIHRoZSBwcm9qZWN0PyBJIG5lZWQgdG8gZGlnIGRlZXBlci4gVGhpcyBzZWVtcyBvZGQgYW5kIHdvcnRoIGEgc2Vjb25kIGxvb2suXG5cblxuIiwiSW5wdXRUb2tlbnMiOjM1MjIzLCJPdXRwdXRUb2tlbnMiOjM5LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MTQ3LCJUb29sQ2FsbHMiOlsicmVhZC1maWxlIl19LHsiU3RhcnRlZCI6IjIwMjYtMDctMjlUMTA6Mjg6MTguNTA2ODY3ODU1WiIsIlNlcSI6MzQsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoxNDgyOTM3NjcsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwidmNhcF9kZWNvZGVfcnVsZVwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJkcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC9cIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGkuYz0yNDEzPUVYUE9SVF9TWU1CT0xfR1BMKHZjYXBfZnJlZV9ydWxlKTtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpLmMtMjQxNS0vKiBEZWNvZGUgYSBydWxlIGZyb20gdGhlIFZDQVAgY2FjaGUgYW5kIHJldHVybiBhIGNvcHkgKi9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaS5jOjI0MTY6c3RydWN0IHZjYXBfcnVsZSAqdmNhcF9kZWNvZGVfcnVsZShzdHJ1Y3QgdmNhcF9ydWxlX2ludGVybmFsICplbGVtKVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpLmMtMjQxNy17XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaS5jPTI0NDc9c3RydWN0IHZjYXBfcnVsZSAqdmNhcF9nZXRfcnVsZShzdHJ1Y3QgdmNhcF9jb250cm9sICp2Y3RybCwgdTMyIGlkKVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGkuYy0yNDYwLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpLmM6MjQ2MTpcXHRydWxlID0gdmNhcF9kZWNvZGVfcnVsZShlbGVtKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaS5jLTI0NjItXFx0dmNhcF91bmxvY2soZWxlbS1cXHUwMDNlYWRtaW4pO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfZGVidWdmcy5jPTI5Mj1zdGF0aWMgaW50IHZjYXBfc2hvd19hZG1pbihzdHJ1Y3QgdmNhcF9jb250cm9sICp2Y3RybCxcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2RlYnVnZnMuYy0zMDEtXFx0bGlzdF9mb3JfZWFjaF9lbnRyeShlbGVtLCBcXHUwMDI2YWRtaW4tXFx1MDAzZXJ1bGVzLCBsaXN0KSB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfZGVidWdmcy5jOjMwMjpcXHRcXHR2cnVsZSA9IHZjYXBfZGVjb2RlX3J1bGUoZWxlbSk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfZGVidWdmcy5jLTMwMy1cXHRcXHRpZiAoSVNfRVJSKHZydWxlKSkge1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfcHJpdmF0ZS5oPTEyMj1pbnQgdmNhcF9ydWxlX2dldF9rZXlzZXRzKHN0cnVjdCB2Y2FwX3J1bGVfaW50ZXJuYWwgKnJpLFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfcHJpdmF0ZS5oLTEyNC0vKiBEZWNvZGUgYSBydWxlIGZyb20gdGhlIFZDQVAgY2FjaGUgYW5kIHJldHVybiBhIGNvcHkgKi9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9wcml2YXRlLmg6MTI1OnN0cnVjdCB2Y2FwX3J1bGUgKnZjYXBfZGVjb2RlX3J1bGUoc3RydWN0IHZjYXBfcnVsZV9pbnRlcm5hbCAqZWxlbSk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfcHJpdmF0ZS5oLTEyNi1cXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMjlUMTA6Mjg6MTguNjU1MTc1MjYyWiIsIlNlcSI6MzUsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjEwNDMyMTkyMjMyLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkludmVzdGlnYXRpbmcgVkNBUCBBY2Nlc3NpYmlsaXR5KipcblxuT2theSwgc28gSSdtIHRyeWluZyB0byBmaWd1cmUgb3V0IGlmIEkgY2FuIGludGVyYWN0IHdpdGggYHZjYXBfc2hvd19hZG1pbmAgd2l0aG91dCBoYXZpbmcgYWN0dWFsIGhhcmR3YXJlLiBJdCdzIHBhcnQgb2YgYGRlYnVnZnNgLCB3aGljaCBpcyBhIGdvb2Qgc3RhcnRpbmcgcG9pbnQuIFJpZ2h0LCBgdmNhcF9hcGlfZGVidWdmcy5jYCBpcyByZXNwb25zaWJsZSBmb3IgY3JlYXRpbmcgdGhvc2UgYGRlYnVnZnNgIGVudHJpZXMgcmVsYXRlZCB0byBWQ0FQLiBCdXQgaGVyZSdzIHRoZSBjYXRjaDogdGhvc2UgZW50cmllcyBhcmUgb25seSBjcmVhdGVkIGlmIGEgVkNBUCBjb250cm9sIHN0cnVjdHVyZSBpcyBpbml0aWFsaXplZCBieSBhIGNsaWVudCBkcml2ZXIuIFRoaW5raW5nIGFib3V0IGl0LCBkcml2ZXJzIGxpa2UgU3Bhcng1IGNvbWUgdG8gbWluZC4gTm93LCB0aGUgcHJvYmxlbSBpcyB0aGF0IFNwYXJ4NSBhbmQgTGFuOTY2eCwgZnJvbSB3aGF0IEkga25vdywgbmVlZCBwaHlzaWNhbCBoYXJkd2FyZSBvciB2ZXJ5IHNwZWNpZmljIFNvQ3MuIFNvLCBydW5uaW5nIHRoZW0gaW4gc3RhbmRhcmQgUUVNVSBzZWVtcyBpbXBvc3NpYmxlLlxuXG5XYWl0Li4uIGlzIHRoZXJlICphbnkqIHZpcnR1YWwgZHJpdmVyIG9yIHNvZnR3YXJlIGVtdWxhdGlvbiB0aGF0IHVzZXMgVkNBUD8gSSBuZWVkIHRvIGNoZWNrLiBUbyBiZSBhYnNvbHV0ZWx5IHN1cmUsIEknbSBnb2luZyB0byBzY2FuIHRoZSBjb2RlIGZvciBhbnkgdXNlcyBvZiBgdmNhcF9nZXRfcnVsZWAsIGB2Y2FwX3Nob3dfYWRtaW5gLCBvciBhbnl0aGluZyByZWxhdGVkIHRvIGB2Y2FwX2FwaS5jYC4gVGhhdCBzaG91bGQgZ2l2ZSBtZSB0aGUgYW5zd2VyLlxuXG5cbiIsIklucHV0VG9rZW5zIjozNjMwOSwiT3V0cHV0VG9rZW5zIjozNiwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjE2NSwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0yOVQxMDoyODoyOS4wODczNzE1NTRaIiwiU2VxIjozNiwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjIxMzE2OTMxNSwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJ2Y2FwX2dldF9ydWxlXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC9cIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL2xhbjk2NngvbGFuOTY2eF9wdHAuYz01ND1zdGF0aWMgaW50IGxhbjk2NnhfcHRwX2FkZF90cmFwKHN0cnVjdCBsYW45NjZ4X3BvcnQgKnBvcnQsXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvbGFuOTY2eC9sYW45NjZ4X3B0cC5jLTYzLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC9sYW45NjZ4L2xhbjk2NnhfcHRwLmM6NjQ6XFx0dnJ1bGUgPSB2Y2FwX2dldF9ydWxlKGxhbjk2NngtXFx1MDAzZXZjYXBfY3RybCwgcnVsZV9pZCk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL2xhbjk2NngvbGFuOTY2eF9wdHAuYy02NS1cXHRpZiAoIUlTX0VSUih2cnVsZSkpIHtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC9sYW45NjZ4L2xhbjk2NnhfcHRwLmM9MTAzPXN0YXRpYyBpbnQgbGFuOTY2eF9wdHBfZGVsX3RyYXAoc3RydWN0IGxhbjk2NnhfcG9ydCAqcG9ydCxcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC9sYW45NjZ4L2xhbjk2NnhfcHRwLmMtMTEwLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC9sYW45NjZ4L2xhbjk2NnhfcHRwLmM6MTExOlxcdHZydWxlID0gdmNhcF9nZXRfcnVsZShsYW45NjZ4LVxcdTAwM2V2Y2FwX2N0cmwsIHJ1bGVfaWQpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC9sYW45NjZ4L2xhbjk2NnhfcHRwLmMtMTEyLVxcdGlmIChJU19FUlIodnJ1bGUpKVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL2xhbjk2NngvbGFuOTY2eF90Y19mbG93ZXIuYz01ODM9c3RhdGljIGludCBsYW45NjZ4X3RjX2Zsb3dlcl9zdGF0cyhzdHJ1Y3QgbGFuOTY2eF9wb3J0ICpwb3J0LFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL2xhbjk2NngvbGFuOTY2eF90Y19mbG93ZXIuYy01ODktXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL2xhbjk2NngvbGFuOTY2eF90Y19mbG93ZXIuYzo1OTA6XFx0ZXJyID0gdmNhcF9nZXRfcnVsZV9jb3VudF9ieV9jb29raWUocG9ydC1cXHUwMDNlbGFuOTY2eC1cXHUwMDNldmNhcF9jdHJsLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC9sYW45NjZ4L2xhbjk2NnhfdGNfZmxvd2VyLmMtNTkxLVxcdFxcdFxcdFxcdFxcdCAgICBcXHUwMDI2Y291bnQsIGYtXFx1MDAzZWNvb2tpZSk7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvc3Bhcng1L3NwYXJ4NV90Y19mbG93ZXIuYz0xMzc1PXN0YXRpYyBpbnQgc3Bhcng1X3RjX2ZyZWVfcnVsZV9yZXNvdXJjZXMoc3RydWN0IG5ldF9kZXZpY2UgKm5kZXYsXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvc3Bhcng1L3NwYXJ4NV90Y19mbG93ZXIuYy0xMzgzLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC9zcGFyeDUvc3Bhcng1X3RjX2Zsb3dlci5jOjEzODQ6XFx0dnJ1bGUgPSB2Y2FwX2dldF9ydWxlKHZjdHJsLCBydWxlX2lkKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvc3Bhcng1L3NwYXJ4NV90Y19mbG93ZXIuYy0xMzg1LVxcdGlmIChJU19FUlIodnJ1bGUpKVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3NwYXJ4NS9zcGFyeDVfdGNfZmxvd2VyLmM9MTQyOD1zdGF0aWMgaW50IHNwYXJ4NV90Y19mbG93ZXJfc3RhdHMoc3RydWN0IG5ldF9kZXZpY2UgKm5kZXYsXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvc3Bhcng1L3NwYXJ4NV90Y19mbG93ZXIuYy0xNDM4LVxcdHZjdHJsID0gcG9ydC1cXHUwMDNlc3Bhcng1LVxcdTAwM2V2Y2FwX2N0cmw7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3NwYXJ4NS9zcGFyeDVfdGNfZmxvd2VyLmM6MTQzOTpcXHRlcnIgPSB2Y2FwX2dldF9ydWxlX2NvdW50X2J5X2Nvb2tpZSh2Y3RybCwgXFx1MDAyNmN0ciwgZmNvLVxcdTAwM2Vjb29raWUpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC9zcGFyeDUvc3Bhcng1X3RjX2Zsb3dlci5jLTE0NDAtXFx0aWYgKGVycilcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpLmM9MjQxNj1zdHJ1Y3QgdmNhcF9ydWxlICp2Y2FwX2RlY29kZV9ydWxlKHN0cnVjdCB2Y2FwX3J1bGVfaW50ZXJuYWwgKmVsZW0pXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaS5jLTI0NDYtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGkuYzoyNDQ3OnN0cnVjdCB2Y2FwX3J1bGUgKnZjYXBfZ2V0X3J1bGUoc3RydWN0IHZjYXBfY29udHJvbCAqdmN0cmwsIHUzMiBpZClcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaS5jLTI0NDgte1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGkuYy0yNDY0LX1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaS5jOjI0NjU6RVhQT1JUX1NZTUJPTF9HUEwodmNhcF9nZXRfcnVsZSk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGkuYy0yNDY2LVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGkuYz0zMzUzPWludCB2Y2FwX3J1bGVfZ2V0X2tleXNldHMoc3RydWN0IHZjYXBfcnVsZV9pbnRlcm5hbCAqcmksXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaS5jLTMzOTYtLyogQ29sbGVjdCBwYWNrZXQgY291bnRzIGZyb20gYWxsIHJ1bGVzIHdpdGggdGhlIHNhbWUgY29va2llICovXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGkuYzozMzk3OmludCB2Y2FwX2dldF9ydWxlX2NvdW50X2J5X2Nvb2tpZShzdHJ1Y3QgdmNhcF9jb250cm9sICp2Y3RybCxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaS5jLTMzOTgtXFx0XFx0XFx0XFx0ICBzdHJ1Y3QgdmNhcF9jb3VudGVyICpjdHIsIHU2NCBjb29raWUpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaS5jLTM0MzUtfVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpLmM6MzQzNjpFWFBPUlRfU1lNQk9MX0dQTCh2Y2FwX2dldF9ydWxlX2NvdW50X2J5X2Nvb2tpZSk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGkuYy0zNDM3LVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfY2xpZW50Lmg9MTczPXN0cnVjdCB2Y2FwX3J1bGUgKnZjYXBfY29weV9ydWxlKHN0cnVjdCB2Y2FwX3J1bGUgKnJ1bGUpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2NsaWVudC5oLTE3NC0vKiBHZXQgcnVsZSBmcm9tIGEgVkNBUCBpbnN0YW5jZSAqL1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2NsaWVudC5oOjE3NTpzdHJ1Y3QgdmNhcF9ydWxlICp2Y2FwX2dldF9ydWxlKHN0cnVjdCB2Y2FwX2NvbnRyb2wgKnZjdHJsLCB1MzIgaWQpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2NsaWVudC5oLTE3Ni0vKiBVcGRhdGUgZXhpc3RpbmcgcnVsZSAqL1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfY2xpZW50Lmg9MjA3PWludCB2Y2FwX2FkbWluX3J1bGVfY291bnQoc3RydWN0IHZjYXBfYWRtaW4gKmFkbWluLCBpbnQgY2lkKTtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2NsaWVudC5oLTIwOS0vKiBWQ0FQIHJ1bGUgY291bnRlciBvcGVyYXRpb25zICovXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfY2xpZW50Lmg6MjEwOmludCB2Y2FwX2dldF9ydWxlX2NvdW50X2J5X2Nvb2tpZShzdHJ1Y3QgdmNhcF9jb250cm9sICp2Y3RybCxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9jbGllbnQuaC0yMTEtXFx0XFx0XFx0XFx0ICBzdHJ1Y3QgdmNhcF9jb3VudGVyICpjdHIsIHU2NCBjb29raWUpO1xcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0yOVQxMDoyODoyOS4zMDA1NDg0NDlaIiwiU2VxIjozNywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NTQxMTAzODgxMiwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiT2theSwgaGVyZSdzIG15IHRha2Ugb24gdGhvc2UgdGhvdWdodHMsIGZyYW1lZCBhcyBteSBvd246XG5cbioqQW5hbHl6aW5nIGB2Y2FwX2dldF9ydWxlYCBVc2FnZSoqXG5cbkFscmlnaHQsIGxldCdzIHNlZSwgdGhlIGNvZGUncyB0ZWxsaW5nIG1lIHRoYXQgYHZjYXBfZ2V0X3J1bGVgIGlzIG9ubHkgYmVpbmcgdXNlZCBieSBgbGFuOTY2eGAgYW5kIGBzcGFyeDVgLiBNeSBpbml0aWFsIGh1bmNoIGlzIGNvbmZpcm1lZDsgYm90aCBvZiB0aGVzZSBhcmUgaGFyZHdhcmUtc3BlY2lmaWMgZHJpdmVycywgd2hpY2ggbWFrZXMgcGVyZmVjdCBzZW5zZS4gSSByZW1lbWJlciB3b3JraW5nIHdpdGggYm90aCBvZiB0aG9zZSBwbGF0Zm9ybXMsIGFuZCB0aGUgY29udGV4dCBvZiBydWxlIHJldHJpZXZhbCBhbGlnbnMgd2l0aCB0aGUga2luZCBvZiBoYXJkd2FyZSBhY2NlbGVyYXRpb24gdGhleSB0eXBpY2FsbHkgcmVxdWlyZS4gTm93LCBsZXQncyBkaWcgYSBiaXQgZGVlcGVyIGFuZCBzZWUgd2hhdCB0aGUgYGxhbjk2NnhgIEtjb25maWcgaGFzIHRvIHNheSBhYm91dCBpdC4gSSBoYXZlIGEgZmVlbGluZyB0aGUgY29uZmlndXJhdGlvbiBvcHRpb25zIHRoZXJlIHdpbGwgZ2l2ZSB1cyBzb21lIG1vcmUgaW5zaWdodCBpbnRvIGhvdyB0aGlzIHJ1bGUgcmV0cmlldmFsIGlzIGJlaW5nIGhhbmRsZWQuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjM4NTg2LCJPdXRwdXRUb2tlbnMiOjQwLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6NDksIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDctMjlUMTA6Mjg6MzQuNzExNTkyODVaIiwiU2VxIjozOCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjY5MTE4OTIyMywiRXJyb3IiOiJubyBtYXRjaGVzIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiY29uZmlnIE1JQ1JPQ0hJUF9MQU45NjZYXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC9cIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiZXJyb3JcIjogXCJubyBtYXRjaGVzXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTI5VDEwOjI4OjM1LjQwMjc5MzA2NFoiLCJTZXEiOjM5LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo1MjMxMDM3NjM2LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJIZXJlJ3MgbXkgdGhvdWdodCBwcm9jZXNzLCBzdW1tYXJpemVkIGFzIHlvdSByZXF1ZXN0ZWQ6XG5cbioqS2NvbmZpZyBDaGVjayoqXG5cbk9rYXksIHRpbWUgdG8gZ2V0IGRvd24gdG8gYnJhc3MgdGFja3MuIEkgbmVlZCB0byB1bmRlcnN0YW5kIHRoZSBjb25maWd1cmF0aW9uIG9wdGlvbnMgZm9yIHRoaXMgTEFOOTY2eCBkcml2ZXIgd2l0aGluIHRoZSBrZXJuZWwuIE15IGZpcnN0IHBvcnQgb2YgY2FsbCBpcyB1bmRvdWJ0ZWRseSB0aGUgYEtjb25maWdgIGZpbGUgaW4gdGhlIGRyaXZlcidzIGRpcmVjdG9yeS4gU3BlY2lmaWNhbGx5LCBJJ20gaGVhZGluZyBzdHJhaWdodCB0byBgZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL2xhbjk2NngvS2NvbmZpZ2AuIFRoYXQgZmlsZSAqZGVmaW5lcyogdGhlIGNvbmZpZ3VyYXRpb24gb3B0aW9ucyB0aGlzIGRyaXZlciBleHBvc2VzIHRvIHRoZSB1c2VyLiBJIG5lZWQgdG8gc2VlIHdoYXQga25vYnMgYXJlIGF2YWlsYWJsZSBmb3IgdGhpbmdzIGxpa2UgUEhZIHNldHRpbmdzLCBpbnRlcnJ1cHQgY29uZmlndXJhdGlvbiwgZmxvdyBjb250cm9sLCBhbmQgYW55IG90aGVyIG1pY3JvY2hpcC1zcGVjaWZpYyBmZWF0dXJlcy4gSSdtIGxvb2tpbmcgZm9yIHRoZSBkZXBlbmRlbmNpZXMsIGhlbHAgdGV4dHMsIGFuZCBkZWZhdWx0IHZhbHVlcyDigJMgYWxsIHRoZSBjb250ZXh0IHRoYXQgYEtjb25maWdgIHByb3ZpZGVzIHRvIHVuZGVyc3RhbmQgaG93IHVzZXJzIGNhbiB0YWlsb3IgdGhpcyBkcml2ZXIgdG8gdGhlaXIgc3BlY2lmaWMgaGFyZHdhcmUgYW5kIG5ldHdvcmsgcmVxdWlyZW1lbnRzLiBUaGlzIEtjb25maWcgZmlsZSBpcyB0aGUgKmJsdWVwcmludCogZm9yIGhvdyB1c2VycyBpbnRlcmFjdCB3aXRoIGFuZCBjdXN0b21pemUgdGhlIExBTjk2NnggZHJpdmVyOyBJIG5lZWQgdG8gdW5kZXJzdGFuZCB0aGlzIHRvIGhhdmUgYW55IGNoYW5jZSBvZiBtYWtpbmcgZWZmZWN0aXZlIGNoYW5nZXMgb3IgdW5kZXJzdGFuZGluZyBjdXJyZW50IGZ1bmN0aW9uYWxpdHkuIFRoaXMgaXMgdGhlIHBsYWNlIHRvIHN0YXJ0LlxuXG5cbiIsIklucHV0VG9rZW5zIjozODg1NywiT3V0cHV0VG9rZW5zIjo0NCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjI0LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTI5VDEwOjI4OjQwLjYzMzgzNDkxWiIsIlNlcSI6NDAsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6InJlYWQtZmlsZSIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjMwODkxNDAsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJGaWxlXCI6IFwiZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL2xhbjk2NngvS2NvbmZpZ1wiLFxuICBcIkZpcnN0TGluZVwiOiAxLFxuICBcIkxpbmVDb3VudFwiOiAyMFxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiQ29udGVudHNcIjogXCIgICAxOlxcdGNvbmZpZyBMQU45NjZYX1NXSVRDSFxcbiAgIDI6XFx0XFx0dHJpc3RhdGUgXFxcIkxhbjk2Nnggc3dpdGNoIGRyaXZlclxcXCJcXG4gICAzOlxcdFxcdGRlcGVuZHMgb24gUFRQXzE1ODhfQ0xPQ0tfT1BUSU9OQUxcXG4gICA0OlxcdFxcdGRlcGVuZHMgb24gSEFTX0lPTUVNXFxuICAgNTpcXHRcXHRkZXBlbmRzIG9uIE9GXFxuICAgNjpcXHRcXHRkZXBlbmRzIG9uIE5FVF9TV0lUQ0hERVZcXG4gICA3OlxcdFxcdGRlcGVuZHMgb24gQlJJREdFIHx8IEJSSURHRT1uXFxuICAgODpcXHRcXHRzZWxlY3QgUEhZTElOS1xcbiAgIDk6XFx0XFx0c2VsZWN0IFBBR0VfUE9PTFxcbiAgMTA6XFx0XFx0c2VsZWN0IFZDQVBcXG4gIDExOlxcdFxcdHNlbGVjdCBGRE1BXFxuICAxMjpcXHRcXHRoZWxwXFxuICAxMzpcXHRcXHQgIFRoaXMgZHJpdmVyIHN1cHBvcnRzIHRoZSBMYW45NjZ4IG5ldHdvcmsgc3dpdGNoIGRldmljZS5cXG4gIDE0OlxcdFxcbiAgMTU6XFx0Y29uZmlnIExBTjk2NlhfRENCXFxuICAxNjpcXHRcXHRib29sIFxcXCJEYXRhIENlbnRlciBCcmlkZ2luZyAoRENCKSBzdXBwb3J0XFxcIlxcbiAgMTc6XFx0XFx0ZGVwZW5kcyBvbiBMQU45NjZYX1NXSVRDSCBcXHUwMDI2XFx1MDAyNiBEQ0JcXG4gIDE4OlxcdFxcdGRlZmF1bHQgeVxcbiAgMTk6XFx0XFx0aGVscFxcbiAgMjA6XFx0XFx0ICBTYXkgWSBoZXJlIGlmIHlvdSB3YW50IHRvIHVzZSBEYXRhIENlbnRlciBCcmlkZ2luZyAoRENCKSBpbiB0aGVcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMjlUMTA6Mjg6NDAuNjM2OTQyOThaIiwiU2VxIjo0MSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6MTI4OTE3MTY2OTQsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqQW5hbHl6aW5nIHRoZSBMQU45NjZYX1NXSVRDSCBEcml2ZXIgYW5kIEtVbml0IFRlc3RpbmcqKlxuXG5Pa2F5LCBzbyBJJ20gbG9va2luZyBhdCBgTEFOOTY2WF9TV0lUQ0hgLCBhbmQgaXQncyBwcmV0dHkgY2xlYXIgdGhhdCBpdCBoYXMgc29tZSBrZXkgZGVwZW5kZW5jaWVzLiBGaXJzdCwgaXQgcmVsaWVzIG9uIGBIQVNfSU9NRU1gIGFuZCwgY3J1Y2lhbGx5LCBgT0ZgIOKAkyB0aGUgT3BlbiBGaXJtd2FyZSBvciBEZXZpY2UgVHJlZS4gR29vZCB0byBrbm93LiBJdCdzIG5vdCB0aWVkIHRvIGBDT01QSUxFX1RFU1RgIG9yIGFueSBzcGVjaWZpYyBhcmNoaXRlY3R1cmUgKGBBUkNIXy4uLmApLCB3aGljaCBpcyBpbnRlcmVzdGluZywgYnV0IHRoYXQgYE9GYCBkZXBlbmRlbmN5IGlzIGdvaW5nIHRvIGJlIGltcG9ydGFudCBpbiB0aGUgYmlnIHBpY3R1cmUuXG5cblJpZ2h0LCBzbyBhcyBhIHBsYXRmb3JtIGRyaXZlciwgSSBjYW4gYWxyZWFkeSBzZWUgYSBwb3RlbnRpYWwgcHJvYmxlbSBmb3IgZW11bGF0aW9uLCBlc3BlY2lhbGx5IGluIHNvbWV0aGluZyBsaWtlIFFFTVUuIFVubGVzcyBzb21lb25lJ3MgZ29uZSB0byB0aGUgdHJvdWJsZSBvZiBkZWZpbmluZyBhIHNwZWNpZmljIG1hY2hpbmUgbW9kZWwgZm9yIHRoZSBMYW45NjZ4IG9yIFNwYXJ4NSwgdGhlcmUgd29uJ3QgYmUgYSBkZXZpY2UgdHJlZSBub2RlIGZvciBpdCwgd2hpY2ggbWVhbnMgdGhlIGRyaXZlciB3b24ndCBldmVuICpwcm9iZSouIFRoYXQncyBhIGNsYXNzaWMgZ290Y2hhLlxuXG5Ib2xkIG9uLCBJIHdhcyBqdXN0IHRoaW5raW5nIGFib3V0IHRlc3RpbmcsIEkgd29uZGVyIGlmIHRoZXJl4oCZcyBhIEtVbml0IHRlc3QgcGF0aCB0byBgdmNhcF9kZWNvZGVfcnVsZWA/IEkgbmVlZCB0byBmaWd1cmUgb3V0IGlmIGl0IGNhbiBiZSByZWFjaGVkIHZpYSBLVW5pdC4gSeKAmXZlIGNoZWNrZWQgYHZjYXBfYXBpX2t1bml0LmNgIGFuZCBgdmNhcF9tb2RlbF9rdW5pdC5jYCBhbmQgSSBkaWRu4oCZdCBmaW5kIGEgZGlyZWN0IGNhbGwgdG8gdGhlIGZ1bmN0aW9uIHZpYSBncmVwLCB3aGljaCBpcyBhIHN0YXJ0LCBidXQgSSBuZWVkIHRvIG1ha2Ugc3VyZSBJIGhhdmVu4oCZdCBtaXNzZWQgYW55dGhpbmcuIEdvdHRhIGRvdWJsZS1jaGVjayBhbmQgc2VlIGlmIGl0J3MgcG90ZW50aWFsbHkgY2FsbGVkIGZyb20gYSBkaWZmZXJlbnQgdGVzdCBmaWxlLlxuXG5cbiIsIklucHV0VG9rZW5zIjozOTQyMSwiT3V0cHV0VG9rZW5zIjozOSwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjE5OCwiVG9vbENhbGxzIjpbInJlYWQtZmlsZSJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTI5VDEwOjI4OjUzLjUyODY2NjQzNFoiLCJTZXEiOjQyLCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MTkwNDM0OTg2LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcInZjYXBfZGVjb2RlX3J1bGVcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpLmM9MjQxMz1FWFBPUlRfU1lNQk9MX0dQTCh2Y2FwX2ZyZWVfcnVsZSk7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaS5jLTI0MTUtLyogRGVjb2RlIGEgcnVsZSBmcm9tIHRoZSBWQ0FQIGNhY2hlIGFuZCByZXR1cm4gYSBjb3B5ICovXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGkuYzoyNDE2OnN0cnVjdCB2Y2FwX3J1bGUgKnZjYXBfZGVjb2RlX3J1bGUoc3RydWN0IHZjYXBfcnVsZV9pbnRlcm5hbCAqZWxlbSlcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaS5jLTI0MTcte1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGkuYz0yNDQ3PXN0cnVjdCB2Y2FwX3J1bGUgKnZjYXBfZ2V0X3J1bGUoc3RydWN0IHZjYXBfY29udHJvbCAqdmN0cmwsIHUzMiBpZClcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpLmMtMjQ2MC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaS5jOjI0NjE6XFx0cnVsZSA9IHZjYXBfZGVjb2RlX3J1bGUoZWxlbSk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGkuYy0yNDYyLVxcdHZjYXBfdW5sb2NrKGVsZW0tXFx1MDAzZWFkbWluKTtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2RlYnVnZnMuYz0yOTI9c3RhdGljIGludCB2Y2FwX3Nob3dfYWRtaW4oc3RydWN0IHZjYXBfY29udHJvbCAqdmN0cmwsXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9kZWJ1Z2ZzLmMtMzAxLVxcdGxpc3RfZm9yX2VhY2hfZW50cnkoZWxlbSwgXFx1MDAyNmFkbWluLVxcdTAwM2VydWxlcywgbGlzdCkge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2RlYnVnZnMuYzozMDI6XFx0XFx0dnJ1bGUgPSB2Y2FwX2RlY29kZV9ydWxlKGVsZW0pO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2RlYnVnZnMuYy0zMDMtXFx0XFx0aWYgKElTX0VSUih2cnVsZSkpIHtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX3ByaXZhdGUuaD0xMjI9aW50IHZjYXBfcnVsZV9nZXRfa2V5c2V0cyhzdHJ1Y3QgdmNhcF9ydWxlX2ludGVybmFsICpyaSxcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX3ByaXZhdGUuaC0xMjQtLyogRGVjb2RlIGEgcnVsZSBmcm9tIHRoZSBWQ0FQIGNhY2hlIGFuZCByZXR1cm4gYSBjb3B5ICovXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfcHJpdmF0ZS5oOjEyNTpzdHJ1Y3QgdmNhcF9ydWxlICp2Y2FwX2RlY29kZV9ydWxlKHN0cnVjdCB2Y2FwX3J1bGVfaW50ZXJuYWwgKmVsZW0pO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX3ByaXZhdGUuaC0xMjYtXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTI5VDEwOjI4OjUzLjcxOTEwOTAxOVoiLCJTZXEiOjQzLCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjozNzM3MDY5MzIxLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJPa2F5LCBoZXJlJ3MgbXkgaW50ZXJwcmV0YXRpb24gb2YgdGhvc2UgdGhvdWdodHMsIGNyYWZ0ZWQgd2l0aCB0aGUgdW5kZXJzdGFuZGluZyB0aGF0IEknbSBzcGVha2luZyB0byBhIGZlbGxvdyBleHBlcnQ6XG5cbioqQ29uY2VybmluZyBDYWxsZXJzIGFuZCBLVW5pdCBJbnRlZ3JhdGlvbioqXG5cbkFscmlnaHQsIHNvIHRoZSBvbmx5IGNhbGxlcnMgSSdtIHNlZWluZyBhcmUgYHZjYXBfZ2V0X3J1bGVgIGFuZCBgdmNhcF9zaG93X2FkbWluYC4gVGhhdCdzIGEgbGltaXRlZCBzZXQsIHdoaWNoIHNwYXJrcyBhbiBpbW1lZGlhdGUgcXVlc3Rpb246IGFyZSB0aGVzZSBmdW5jdGlvbnMgYmVpbmcgaW52b2tlZCBieSBLVW5pdD8gVGhhdCdzIHRoZSBtb3N0IGxpa2VseSBzY2VuYXJpbywgYXQgbGVhc3QgaW5pdGlhbGx5LiBJIG5lZWQgdG8gZmlndXJlIG91dCB0aGUgdGVzdGluZyBjb250ZXh0LiBJJ20gd29uZGVyaW5nIGlmIHRoaXMgc21hbGwgc2V0IG9mIGNhbGxlcnMgaXMgYSBzaWduIG9mIGEgZm9jdXNlZCBLVW5pdCB0ZXN0IHN1aXRlLCBvciBpZiB0aGVyZSdzIHNvbWV0aGluZyBlbHNlIGF0IHBsYXkgaGVyZS4gVW5kZXJzdGFuZGluZyB0aGUgY29ubmVjdGlvbiB0byBLVW5pdCBpcyBrZXkgdG8gaW50ZXJwcmV0aW5nIHRoZSBzaWduaWZpY2FuY2Ugb2YgdGhlc2UgY2FsbHMuIE15IG5leHQgc3RlcCB3aWxsIGJlIHRvIGV4cGxvcmUgdGhlIGNvZGUgc3Vycm91bmRpbmcgdGhlc2UgZnVuY3Rpb25zLCBsb29raW5nIGZvciBLVW5pdC1zcGVjaWZpYyBkaXJlY3RpdmVzIG9yIGFueSBjbHVlcyB0aGF0IHBvaW50IHRvIGl0IGJlaW5nIHRoZSBkcml2aW5nIGZvcmNlIGJlaGluZCB0aGVzZSBjYWxscy5cblxuXG4iLCJJbnB1dFRva2VucyI6NDA2NTgsIk91dHB1dFRva2VucyI6MzksIk91dHB1dFRob3VnaHRzVG9rZW5zIjoyOSwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0yOVQxMDoyODo1Ny40NTYxOTA2MDFaIiwiU2VxIjo0NCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjEzMzk0MzA5NywiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJ2Y2FwX2dldF9ydWxlXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJkcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaS5jPTI0MTY9c3RydWN0IHZjYXBfcnVsZSAqdmNhcF9kZWNvZGVfcnVsZShzdHJ1Y3QgdmNhcF9ydWxlX2ludGVybmFsICplbGVtKVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGkuYy0yNDQ2LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpLmM6MjQ0NzpzdHJ1Y3QgdmNhcF9ydWxlICp2Y2FwX2dldF9ydWxlKHN0cnVjdCB2Y2FwX2NvbnRyb2wgKnZjdHJsLCB1MzIgaWQpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGkuYy0yNDQ4LXtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpLmMtMjQ2NC19XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGkuYzoyNDY1OkVYUE9SVF9TWU1CT0xfR1BMKHZjYXBfZ2V0X3J1bGUpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpLmMtMjQ2Ni1cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpLmM9MzM1Mz1pbnQgdmNhcF9ydWxlX2dldF9rZXlzZXRzKHN0cnVjdCB2Y2FwX3J1bGVfaW50ZXJuYWwgKnJpLFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGkuYy0zMzk2LS8qIENvbGxlY3QgcGFja2V0IGNvdW50cyBmcm9tIGFsbCBydWxlcyB3aXRoIHRoZSBzYW1lIGNvb2tpZSAqL1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpLmM6MzM5NzppbnQgdmNhcF9nZXRfcnVsZV9jb3VudF9ieV9jb29raWUoc3RydWN0IHZjYXBfY29udHJvbCAqdmN0cmwsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGkuYy0zMzk4LVxcdFxcdFxcdFxcdCAgc3RydWN0IHZjYXBfY291bnRlciAqY3RyLCB1NjQgY29va2llKVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGkuYy0zNDM1LX1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaS5jOjM0MzY6RVhQT1JUX1NZTUJPTF9HUEwodmNhcF9nZXRfcnVsZV9jb3VudF9ieV9jb29raWUpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpLmMtMzQzNy1cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2NsaWVudC5oPTE3Mz1zdHJ1Y3QgdmNhcF9ydWxlICp2Y2FwX2NvcHlfcnVsZShzdHJ1Y3QgdmNhcF9ydWxlICpydWxlKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9jbGllbnQuaC0xNzQtLyogR2V0IHJ1bGUgZnJvbSBhIFZDQVAgaW5zdGFuY2UgKi9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9jbGllbnQuaDoxNzU6c3RydWN0IHZjYXBfcnVsZSAqdmNhcF9nZXRfcnVsZShzdHJ1Y3QgdmNhcF9jb250cm9sICp2Y3RybCwgdTMyIGlkKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9jbGllbnQuaC0xNzYtLyogVXBkYXRlIGV4aXN0aW5nIHJ1bGUgKi9cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2NsaWVudC5oPTIwNz1pbnQgdmNhcF9hZG1pbl9ydWxlX2NvdW50KHN0cnVjdCB2Y2FwX2FkbWluICphZG1pbiwgaW50IGNpZCk7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9jbGllbnQuaC0yMDktLyogVkNBUCBydWxlIGNvdW50ZXIgb3BlcmF0aW9ucyAqL1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2NsaWVudC5oOjIxMDppbnQgdmNhcF9nZXRfcnVsZV9jb3VudF9ieV9jb29raWUoc3RydWN0IHZjYXBfY29udHJvbCAqdmN0cmwsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfY2xpZW50LmgtMjExLVxcdFxcdFxcdFxcdCAgc3RydWN0IHZjYXBfY291bnRlciAqY3RyLCB1NjQgY29va2llKTtcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMjlUMTA6Mjg6NTcuNTkwMTQ2NzY4WiIsIlNlcSI6NDUsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjU3MDQ3Nzk5MDUsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6Ik9rYXksIGhlcmUncyBteSB0YWtlIG9uIHRob3NlIHRob3VnaHRzLCBmcmFtZWQgYXMgYW4gZXhwZXJ0J3MgaW50ZXJuYWwgbW9ub2xvZ3VlOlxuXG4qKkludmVzdGlnYXRpbmcgS1VuaXQncyBJbnRlcmFjdGlvbiB3aXRoIFZDQVAgQ29tcG9uZW50cyoqXG5cblJpZ2h0LCBzbyBJJ20gbG9va2luZyBpbnRvIHRoZSByZWxhdGlvbnNoaXAgYmV0d2VlbiBLVW5pdCBhbmQgdGhlc2UgVkNBUCBmdW5jdGlvbnMuIE15IGluaXRpYWwgZXhwZWN0YXRpb24gd2FzIHRoYXQgSSdkIHNlZSBjYWxscyB0byBgdmNhcF9nZXRfcnVsZWAgd2l0aGluIHRoZSBLVW5pdCBmcmFtZXdvcmsuIFRoYXQgd291bGQgbWFrZSBzZW5zZSwgZ2l2ZW4gaXRzIHJvbGUuIEJ1dCBpdCBhcHBlYXJzIHRoYXQncyBub3QgdGhlIGNhc2Ug4oCTICp0aGF0J3MgaW50ZXJlc3RpbmcqLiBUaGUgbGFjayBvZiBkaXJlY3QgaW50ZXJhY3Rpb24gcmFpc2VzIHF1ZXN0aW9ucyBhYm91dCBob3cgS1VuaXQgaXMgdGVzdGluZyB0aGUgbG9naWMgb3IgZmVhdHVyZXMgdGhhdCB3b3VsZCBub3JtYWxseSB1c2UgdGhhdCBmdW5jdGlvbi5cblxuT2theSwgbGV0J3MgcGl2b3QuIFdoYXQgYWJvdXQgYHZjYXBfc2hvd19hZG1pbmA/IERvZXMgS1VuaXQgaW50ZXJhY3Qgd2l0aCAqdGhhdCogZnVuY3Rpb24/IERvZXMgdGhhdCBpbnRlcmFjdGlvbiBvZmZlciBhIHBhdGh3YXkgdG8gdGVzdGluZyBWQ0FQIGZ1bmN0aW9uYWxpdHk/IFBlcmhhcHMgdGVzdGluZyBhZG1pbiBmdW5jdGlvbnMgaXMgYSBwYXRoIHRvIHRoZSBmdW5jdGlvbnMgSSdtIGludGVyZXN0ZWQgaW4uIEkgbmVlZCB0byBpbnZlc3RpZ2F0ZSBmdXJ0aGVyIGFuZCBmaWd1cmUgb3V0IHdoZXJlIHRoZSBjb25uZWN0aW9uIHBvaW50cyBhcmUuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjQxODA4LCJPdXRwdXRUb2tlbnMiOjM5LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MjcsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDctMjlUMTA6Mjk6MDMuMjk0OTUxNTIzWiIsIlNlcSI6NDYsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoxMzcxNjMyMTcsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwidmNhcF9zaG93X2FkbWluXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJkcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9kZWJ1Z2ZzLmM9MjEyPXN0YXRpYyBpbnQgdmNhcF9kZWJ1Z2ZzX3Nob3dfcnVsZV9hY3Rpb25zZXQoc3RydWN0IHZjYXBfcnVsZV9pbnRlcm5hbCAqcmksXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9kZWJ1Z2ZzLmMtMjM1LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2RlYnVnZnMuYzoyMzY6c3RhdGljIHZvaWQgdmNhcF9zaG93X2FkbWluX3J1bGUoc3RydWN0IHZjYXBfY29udHJvbCAqdmN0cmwsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfZGVidWdmcy5jLTIzNy1cXHRcXHRcXHRcXHQgc3RydWN0IHZjYXBfYWRtaW4gKmFkbWluLFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfZGVidWdmcy5jLTI2NS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9kZWJ1Z2ZzLmM6MjY2OnN0YXRpYyB2b2lkIHZjYXBfc2hvd19hZG1pbl9pbmZvKHN0cnVjdCB2Y2FwX2NvbnRyb2wgKnZjdHJsLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2RlYnVnZnMuYy0yNjctXFx0XFx0XFx0XFx0IHN0cnVjdCB2Y2FwX2FkbWluICphZG1pbixcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2RlYnVnZnMuYy0yOTEtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfZGVidWdmcy5jOjI5MjpzdGF0aWMgaW50IHZjYXBfc2hvd19hZG1pbihzdHJ1Y3QgdmNhcF9jb250cm9sICp2Y3RybCxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9kZWJ1Z2ZzLmMtMjkzLVxcdFxcdFxcdCAgIHN0cnVjdCB2Y2FwX2FkbWluICphZG1pbixcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2RlYnVnZnMuYy0yOTktXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfZGVidWdmcy5jOjMwMDpcXHR2Y2FwX3Nob3dfYWRtaW5faW5mbyh2Y3RybCwgYWRtaW4sIG91dCk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfZGVidWdmcy5jLTMwMS1cXHRsaXN0X2Zvcl9lYWNoX2VudHJ5KGVsZW0sIFxcdTAwMjZhZG1pbi1cXHUwMDNlcnVsZXMsIGxpc3QpIHtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2RlYnVnZnMuYy0zMDgtXFx0XFx0b3V0LVxcdTAwM2VwcmYob3V0LVxcdTAwM2Vkc3QsIFxcXCJcXFxcblxcXCIpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2RlYnVnZnMuYzozMDk6XFx0XFx0dmNhcF9zaG93X2FkbWluX3J1bGUodmN0cmwsIGFkbWluLCBvdXQsIHRvX2ludHJ1bGUodnJ1bGUpKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9kZWJ1Z2ZzLmMtMzEwLVxcdFxcdHZjYXBfZnJlZV9ydWxlKHZydWxlKTtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2RlYnVnZnMuYy0zMTQtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfZGVidWdmcy5jOjMxNTpzdGF0aWMgaW50IHZjYXBfc2hvd19hZG1pbl9yYXcoc3RydWN0IHZjYXBfY29udHJvbCAqdmN0cmwsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfZGVidWdmcy5jLTMxNi1cXHRcXHRcXHQgICAgICAgc3RydWN0IHZjYXBfYWRtaW4gKmFkbWluLFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfZGVidWdmcy5jPTQwND1zdGF0aWMgaW50IHZjYXBfZGVidWdmc19zaG93KHN0cnVjdCBzZXFfZmlsZSAqbSwgdm9pZCAqdW51c2VkKVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfZGVidWdmcy5jLTQxMy1cXHR2Y2FwX2xvY2soaW5mby1cXHUwMDNlYWRtaW4pO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2RlYnVnZnMuYzo0MTQ6XFx0cmV0ID0gdmNhcF9zaG93X2FkbWluKGluZm8tXFx1MDAzZXZjdHJsLCBpbmZvLVxcdTAwM2VhZG1pbiwgXFx1MDAyNm91dCk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfZGVidWdmcy5jLTQxNS1cXHR2Y2FwX3VubG9jayhpbmZvLVxcdTAwM2VhZG1pbik7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9kZWJ1Z2ZzLmM9NDIxPXN0YXRpYyBpbnQgdmNhcF9yYXdfZGVidWdmc19zaG93KHN0cnVjdCBzZXFfZmlsZSAqbSwgdm9pZCAqdW51c2VkKVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfZGVidWdmcy5jLTQzMC1cXHR2Y2FwX2xvY2soaW5mby1cXHUwMDNlYWRtaW4pO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2RlYnVnZnMuYzo0MzE6XFx0cmV0ID0gdmNhcF9zaG93X2FkbWluX3JhdyhpbmZvLVxcdTAwM2V2Y3RybCwgaW5mby1cXHUwMDNlYWRtaW4sIFxcdTAwMjZvdXQpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2RlYnVnZnMuYy00MzItXFx0dmNhcF91bmxvY2soaW5mby1cXHUwMDNlYWRtaW4pO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfZGVidWdmc19rdW5pdC5jPTM0ND1zdGF0aWMgdm9pZCB2Y2FwX2FwaV9zaG93X2FkbWluX3Jhd190ZXN0KHN0cnVjdCBrdW5pdCAqdGVzdClcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2RlYnVnZnNfa3VuaXQuYy0zNzUtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfZGVidWdmc19rdW5pdC5jOjM3NjpcXHRyZXQgPSB2Y2FwX3Nob3dfYWRtaW5fcmF3KFxcdTAwMjZ0ZXN0X3ZjdHJsLCBcXHUwMDI2YWRtaW4sIFxcdTAwMjZvdXQpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2RlYnVnZnNfa3VuaXQuYy0zNzctXFx0S1VOSVRfRVhQRUNUX0VRKHRlc3QsIDAsIHJldCk7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9kZWJ1Z2ZzX2t1bml0LmM9NDAyPXN0YXRpYyB2b2lkIHZjYXBfYXBpX3Nob3dfYWRtaW5fdGVzdChzdHJ1Y3Qga3VuaXQgKnRlc3QpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9kZWJ1Z2ZzX2t1bml0LmMtNDIwLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2RlYnVnZnNfa3VuaXQuYzo0MjE6XFx0dmNhcF9zaG93X2FkbWluX2luZm8oXFx1MDAyNnRlc3RfdmN0cmwsIFxcdTAwMjZhZG1pbiwgXFx1MDAyNm91dCk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfZGVidWdmc19rdW5pdC5jLTQyMi1cXHRmb3IgKGlkeCA9IDA7IGlkeCBcXHUwMDNjIHRlc3RfcHJfYnVmZmVyaWR4OyArK2lkeCkge1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfZGVidWdmc19rdW5pdC5jPTQ3NT1zdGF0aWMgdm9pZCB2Y2FwX2FwaV9zaG93X2FkbWluX3J1bGVfdGVzdChzdHJ1Y3Qga3VuaXQgKnRlc3QpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9kZWJ1Z2ZzX2t1bml0LmMtNTMyLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2RlYnVnZnNfa3VuaXQuYzo1MzM6XFx0cmV0ID0gdmNhcF9zaG93X2FkbWluKFxcdTAwMjZ0ZXN0X3ZjdHJsLCBcXHUwMDI2YWRtaW4sIFxcdTAwMjZvdXQpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2RlYnVnZnNfa3VuaXQuYy01MzQtXFx0S1VOSVRfRVhQRUNUX0VRKHRlc3QsIDAsIHJldCk7XFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTI5VDEwOjI5OjAzLjQzMjEyMDkyWiIsIlNlcSI6NDcsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjUxNzQ3MjEwMTgsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6Ik9rYXksIGxldCBtZSBicmVhayB0aGlzIGRvd24uXG5cbioqVHJhY2luZyB0aGUgQWRtaW4gUnVsZSBGbG93KipcblxuUmlnaHQsIHNvIEkgc2VlIHRoYXQgYHZjYXBfc2hvd19hZG1pbmAgaXMgYmVpbmcgaW52b2tlZCBieSBgdmNhcF9hcGlfc2hvd19hZG1pbl9ydWxlX3Rlc3RgIHdpdGhpbiB0aGUgYHZjYXBfYXBpX2RlYnVnZnNfa3VuaXQuY2AgZmlsZS4gSW50ZXJlc3RpbmcuIE15IG1lbnRhbCBtYXAgaW1tZWRpYXRlbHkgdGVsbHMgbWUgdGhhdCdzIGEga2V5IGxpbmthZ2UgZm9yIGFkbWluaXN0cmF0aXZlIHJ1bGUgdmlld2luZyBmdW5jdGlvbmFsaXR5LiBBbmQgSSBrbm93IEkgbmVlZCB0byB1bmRlcnN0YW5kIHRoYXQgYWRtaW5pc3RyYXRpdmUgcnVsZSB2aWV3aW5nIGZ1bmN0aW9uYWxpdHkuXG5cbkZ1cnRoZXJtb3JlLCBJIG5vdGUgdGhhdCBgdmNhcF9zaG93X2FkbWluYCwgaW4gdHVybiwgaXMgY2FsbGluZyBgdmNhcF9kZWNvZGVfcnVsZWAuIFRoYXQncyBpbXBvcnRhbnQuIGB2Y2FwX2RlY29kZV9ydWxlYCBpcyBhbG1vc3QgY2VydGFpbmx5IHdoZXJlIHRoZSBhY3R1YWwgcGFyc2luZyBhbmQgaW50ZXJwcmV0YXRpb24gb2YgdGhlIHJ1bGVzIGlzIGhhcHBlbmluZy4gSSBuZWVkIHRvIGNvbmZpcm0gdGhpcyBxdWlja2x5LCBidXQgdGhhdCBjb25uZWN0aW9uIGlzIGNyaXRpY2FsIGZvciBob3cgdGhpcyBlbnRpcmUgc3RydWN0dXJlIG9wZXJhdGVzLiBJIG5lZWQgdG8gbWFrZSBzdXJlIG15IHVuZGVyc3RhbmRpbmcgaXMgY29ycmVjdCBhbmQgdGhhdCBJIGhhdmUgdGhlIGNvcnJlY3QgY29ubmVjdGlvbnMuIFRpbWUgdG8gc3RhcnQgdGhlIHZlcmlmaWNhdGlvbiBwcm9jZXNzLlxuXG5cbiIsIklucHV0VG9rZW5zIjo0Mzc3OCwiT3V0cHV0VG9rZW5zIjo1MywiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjY4LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTI5VDEwOjI5OjA4LjYwNjg0Nzc5N1oiLCJTZXEiOjQ4LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJyZWFkLWZpbGUiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoxNzY5NTAsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJGaWxlXCI6IFwiZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfZGVidWdmc19rdW5pdC5jXCIsXG4gIFwiRmlyc3RMaW5lXCI6IDUyMCxcbiAgXCJMaW5lQ291bnRcIjogMjBcbn0iLCJSZXN1bHRzIjoie1xuICBcIkNvbnRlbnRzXCI6IFwiIDUyMDpcXHRcXHRcXHQuYWN0aW9uc2V0X3N3ID0gMyxcXG4gNTIxOlxcdFxcdFxcdC5hY3Rpb25zZXRfc3dfcmVncyA9IDQsXFxuIDUyMjpcXHRcXHRcXHQuYWRkciA9IDc5NCxcXG4gNTIzOlxcdFxcdFxcdC52Y3RybCA9IFxcdTAwMjZ0ZXN0X3ZjdHJsLFxcbiA1MjQ6XFx0XFx0fTtcXG4gNTI1OlxcdFxcdHN0cnVjdCB2Y2FwX291dHB1dF9wcmludCBvdXQgPSB7XFxuIDUyNjpcXHRcXHRcXHQucHJmID0gKHZvaWQgKil0ZXN0X3ByZixcXG4gNTI3OlxcdFxcdH07XFxuIDUyODpcXHRcXHRpbnQgcmV0LCBpZHg7XFxuIDUyOTpcXHRcXG4gNTMwOlxcdFxcdHZjYXBfdGVzdF9hcGlfaW5pdChcXHUwMDI2YWRtaW4pO1xcbiA1MzE6XFx0XFx0bGlzdF9hZGRfdGFpbChcXHUwMDI2cmkubGlzdCwgXFx1MDAyNmFkbWluLnJ1bGVzKTtcXG4gNTMyOlxcdFxcbiA1MzM6XFx0XFx0cmV0ID0gdmNhcF9zaG93X2FkbWluKFxcdTAwMjZ0ZXN0X3ZjdHJsLCBcXHUwMDI2YWRtaW4sIFxcdTAwMjZvdXQpO1xcbiA1MzQ6XFx0XFx0S1VOSVRfRVhQRUNUX0VRKHRlc3QsIDAsIHJldCk7XFxuIDUzNTpcXHRcXHRmb3IgKGlkeCA9IDA7IGlkeCBcXHUwMDNjIHRlc3RfcHJfYnVmZmVyaWR4OyArK2lkeCkge1xcbiA1MzY6XFx0XFx0XFx0LyogcHJfaW5mbyhcXFwibG9nWyUwMmRdOiAlc1xcXCIsIGlkeCwgdGVzdF9wcl9idWZmZXJbaWR4XSk7ICovXFxuIDUzNzpcXHRcXHRcXHRLVU5JVF9FWFBFQ1RfU1RSRVEodGVzdCwgdGVzdF9hZG1pbl9leHBlY3RbaWR4XSxcXG4gNTM4OlxcdFxcdFxcdFxcdFxcdCAgIHRlc3RfcHJfYnVmZmVyW2lkeF0pO1xcbiA1Mzk6XFx0XFx0fVxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0yOVQxMDoyOTowOC42MDcwMjY3ODdaIiwiU2VxIjo0OSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NTA3NzA3MTQ4OSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiT2theSwgaGVyZSdzIHRoZSBzdW1tYXJ5LCBmcmFtZWQgYXMgbXkgdGhvdWdodCBwcm9jZXNzOlxuXG4qKlRyYWNpbmcgdGhlIFJ1bGUgRGVjb2RpbmcgTG9naWMqKlxuXG5ZZXMhIEkndmUgY29uZmlybWVkIHRoYXQgdGhlIGB2Y2FwX2FwaV9zaG93X2FkbWluX3J1bGVfdGVzdGAgZnVuY3Rpb24sIGFzIGV4cGVjdGVkLCB1bHRpbWF0ZWx5IGNhbGxzIGB2Y2FwX3Nob3dfYWRtaW5gLiBBbmQgYHZjYXBfc2hvd19hZG1pbmAgdGhlbiBsZXZlcmFnZXMgYHZjYXBfZGVjb2RlX3J1bGVgLiBUaGF0J3MgdGhlIGZsb3cgSSBuZWVkIHRvIHVuZGVyc3RhbmQuIE5vdyBJIHNob3VsZCBmb2N1cyBvbiBgdmNhcF9zaG93X2FkbWluYCwgc3BlY2lmaWNhbGx5IGluIGB2Y2FwX2FwaV9kZWJ1Z2ZzLmNgLiBMZXQncyBnZXQgaW50byB0aGUgZGV0YWlscyB0aGVyZSBhbmQgc2VlIGhvdyB0aGF0IGRlY29kaW5nIHByb2Nlc3MgYWN0dWFsbHkgdW5mb2xkcy5cblxuXG4iLCJJbnB1dFRva2VucyI6NDQ0NDksIk91dHB1dFRva2VucyI6NTAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjo2MCwiVG9vbENhbGxzIjpbInJlYWQtZmlsZSJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTI5VDEwOjI5OjEzLjY4NDEwMzE1NloiLCJTZXEiOjUwLCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJyZWFkLWZpbGUiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoxNDcxMTAsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJGaWxlXCI6IFwiZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfZGVidWdmcy5jXCIsXG4gIFwiRmlyc3RMaW5lXCI6IDI5MCxcbiAgXCJMaW5lQ291bnRcIjogMjVcbn0iLCJSZXN1bHRzIjoie1xuICBcIkNvbnRlbnRzXCI6IFwiIDI5MDpcXHR9XFxuIDI5MTpcXHRcXG4gMjkyOlxcdHN0YXRpYyBpbnQgdmNhcF9zaG93X2FkbWluKHN0cnVjdCB2Y2FwX2NvbnRyb2wgKnZjdHJsLFxcbiAyOTM6XFx0XFx0XFx0XFx0ICAgc3RydWN0IHZjYXBfYWRtaW4gKmFkbWluLFxcbiAyOTQ6XFx0XFx0XFx0XFx0ICAgc3RydWN0IHZjYXBfb3V0cHV0X3ByaW50ICpvdXQpXFxuIDI5NTpcXHR7XFxuIDI5NjpcXHRcXHRzdHJ1Y3QgdmNhcF9ydWxlX2ludGVybmFsICplbGVtO1xcbiAyOTc6XFx0XFx0c3RydWN0IHZjYXBfcnVsZSAqdnJ1bGU7XFxuIDI5ODpcXHRcXHRpbnQgcmV0ID0gMDtcXG4gMjk5OlxcdFxcbiAzMDA6XFx0XFx0dmNhcF9zaG93X2FkbWluX2luZm8odmN0cmwsIGFkbWluLCBvdXQpO1xcbiAzMDE6XFx0XFx0bGlzdF9mb3JfZWFjaF9lbnRyeShlbGVtLCBcXHUwMDI2YWRtaW4tXFx1MDAzZXJ1bGVzLCBsaXN0KSB7XFxuIDMwMjpcXHRcXHRcXHR2cnVsZSA9IHZjYXBfZGVjb2RlX3J1bGUoZWxlbSk7XFxuIDMwMzpcXHRcXHRcXHRpZiAoSVNfRVJSKHZydWxlKSkge1xcbiAzMDQ6XFx0XFx0XFx0XFx0cmV0ID0gUFRSX0VSUih2cnVsZSk7XFxuIDMwNTpcXHRcXHRcXHRcXHRicmVhaztcXG4gMzA2OlxcdFxcdFxcdH1cXG4gMzA3OlxcdFxcbiAzMDg6XFx0XFx0XFx0b3V0LVxcdTAwM2VwcmYob3V0LVxcdTAwM2Vkc3QsIFxcXCJcXFxcblxcXCIpO1xcbiAzMDk6XFx0XFx0XFx0dmNhcF9zaG93X2FkbWluX3J1bGUodmN0cmwsIGFkbWluLCBvdXQsIHRvX2ludHJ1bGUodnJ1bGUpKTtcXG4gMzEwOlxcdFxcdFxcdHZjYXBfZnJlZV9ydWxlKHZydWxlKTtcXG4gMzExOlxcdFxcdH1cXG4gMzEyOlxcdFxcdHJldHVybiByZXQ7XFxuIDMxMzpcXHR9XFxuIDMxNDpcXHRcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMjlUMTA6Mjk6MTMuNjg0MjUzNjk2WiIsIlNlcSI6NTEsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjc1MDU3OTYwMzIsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqQW5hbHl6aW5nIHRoZSBgdmNhcF9kZWNvZGVfcnVsZWAgRml4KipcblxuT2theSwgc28gdGhlIEtVbml0IHRlc3RzIGNvbmZpcm0gdGhhdCBgdmNhcF9kZWNvZGVfcnVsZWAgaXMgaW5kZWVkIGFjY2Vzc2libGUgYW5kLCB0aGVyZWZvcmUsIHRlc3RhYmxlLiBUaGUgcGF0Y2ggaW4gcXVlc3Rpb24gYWRkcyBhIGNhbGwgdG8gYHZjYXBfZnJlZV9ydWxlKFx1MDAyNnJpLVx1MDAzZWRhdGEpYCBvbiBlcnJvciB3aXRoaW4gYHZjYXBfZGVjb2RlX3J1bGVgLiBUaGF0J3MgZ29vZC4gTXkgaW1tZWRpYXRlIHRob3VnaHQgaXMsIGlzIHRoaXMgYSB3b3J0aHdoaWxlIGZ1enppbmcgdGFyZ2V0IG5vdyB0aGF0IGl0J3MgZml4ZWQ/IEJlZm9yZSBJIGp1bXAgdG8gY29uY2x1c2lvbnMsIGxldCdzIGJyZWFrIHRoaXMgZG93biBmdXJ0aGVyLiBUaGUgcGF0Y2ggYWRkcmVzc2VzIGEgbWVtb3J5IGxlYWsgd2l0aGluIGB2Y2FwX2RlY29kZV9ydWxlYCBvbiB0aGVzZSBlcnJvciBwYXRocy4gR29vZCBjYXRjaC4gTm93LCBgdmNhcF9kZWNvZGVfcnVsZWAgKG9yIHJhdGhlciwgSSBuZWVkIHRvIGNvbmZpcm0gYHZjYXBfYWxsb2NfcnVsZWAgaXMgY2FsbGVkIGluc2lkZSBpdCkgaXMgYWxsb2NhdGluZyBtZW1vcnkuIEkgbmVlZCB0byBtYWtlIHN1cmUgSSBhbSB0cmFjaW5nIGJhY2sgdG8gdGhlIGFsbG9jYXRpb24gb2YgdGhlIG1lbW9yeSB3aXRoIHRoZSBjYWxsLiBMZXQncyB0cmFjZSB0aHJvdWdoIHRoZSBpbXBsZW1lbnRhdGlvbiBvZiBgdmNhcF9kZWNvZGVfcnVsZWAgdG8gY29uZmlybSB3aGVyZSBtZW1vcnkgaXMgYWN0dWFsbHkgYmVpbmcgYWxsb2NhdGVkIGFuZCBob3cgdGhlIGZyZWUgaXMgY29ubmVjdGVkLlxuXG5cbiIsIklucHV0VG9rZW5zIjo0NTA2MywiT3V0cHV0VG9rZW5zIjo0OCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjExNSwiVG9vbENhbGxzIjpbInJlYWQtZmlsZSJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTI5VDEwOjI5OjIxLjE5MDA1NTg1OFoiLCJTZXEiOjUyLCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJyZWFkLWZpbGUiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjozNTAxODAsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJGaWxlXCI6IFwiZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGkuY1wiLFxuICBcIkZpcnN0TGluZVwiOiAyNDE2LFxuICBcIkxpbmVDb3VudFwiOiAzNVxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiQ29udGVudHNcIjogXCIyNDE2OlxcdHN0cnVjdCB2Y2FwX3J1bGUgKnZjYXBfZGVjb2RlX3J1bGUoc3RydWN0IHZjYXBfcnVsZV9pbnRlcm5hbCAqZWxlbSlcXG4yNDE3OlxcdHtcXG4yNDE4OlxcdFxcdHN0cnVjdCB2Y2FwX3J1bGVfaW50ZXJuYWwgKnJpO1xcbjI0MTk6XFx0XFx0aW50IGVycjtcXG4yNDIwOlxcdFxcbjI0MjE6XFx0XFx0cmkgPSB2Y2FwX2R1cF9ydWxlKGVsZW0sIGVsZW0tXFx1MDAzZXN0YXRlID09IFZDQVBfUlNfRElTQUJMRUQpO1xcbjI0MjI6XFx0XFx0aWYgKElTX0VSUihyaSkpXFxuMjQyMzpcXHRcXHRcXHRyZXR1cm4gRVJSX0NBU1QocmkpO1xcbjI0MjQ6XFx0XFxuMjQyNTpcXHRcXHRpZiAocmktXFx1MDAzZXN0YXRlID09IFZDQVBfUlNfRElTQUJMRUQpXFxuMjQyNjpcXHRcXHRcXHRnb3RvIG91dDtcXG4yNDI3OlxcdFxcbjI0Mjg6XFx0XFx0ZXJyID0gdmNhcF9yZWFkX3J1bGUocmkpO1xcbjI0Mjk6XFx0XFx0aWYgKGVycilcXG4yNDMwOlxcdFxcdFxcdGdvdG8gb3V0X2VycjtcXG4yNDMxOlxcdFxcbjI0MzI6XFx0XFx0ZXJyID0gdmNhcF9kZWNvZGVfa2V5c2V0KHJpKTtcXG4yNDMzOlxcdFxcdGlmIChlcnIpXFxuMjQzNDpcXHRcXHRcXHRnb3RvIG91dF9lcnI7XFxuMjQzNTpcXHRcXG4yNDM2OlxcdFxcdGVyciA9IHZjYXBfZGVjb2RlX2FjdGlvbnNldChyaSk7XFxuMjQzNzpcXHRcXHRpZiAoZXJyKVxcbjI0Mzg6XFx0XFx0XFx0Z290byBvdXRfZXJyO1xcbjI0Mzk6XFx0XFxuMjQ0MDpcXHRvdXQ6XFxuMjQ0MTpcXHRcXHRyZXR1cm4gXFx1MDAyNnJpLVxcdTAwM2VkYXRhO1xcbjI0NDI6XFx0b3V0X2VycjpcXG4yNDQzOlxcdFxcdHZjYXBfZnJlZV9ydWxlKFxcdTAwMjZyaS1cXHUwMDNlZGF0YSk7XFxuMjQ0NDpcXHRcXHRyZXR1cm4gRVJSX1BUUihlcnIpO1xcbjI0NDU6XFx0fVxcbjI0NDY6XFx0XFxuMjQ0NzpcXHRzdHJ1Y3QgdmNhcF9ydWxlICp2Y2FwX2dldF9ydWxlKHN0cnVjdCB2Y2FwX2NvbnRyb2wgKnZjdHJsLCB1MzIgaWQpXFxuMjQ0ODpcXHR7XFxuMjQ0OTpcXHRcXHRzdHJ1Y3QgdmNhcF9ydWxlX2ludGVybmFsICplbGVtO1xcbjI0NTA6XFx0XFx0c3RydWN0IHZjYXBfcnVsZSAqcnVsZTtcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMjlUMTA6Mjk6MjEuMTkwNDEwNDc4WiIsIlNlcSI6NTMsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjkwMDE5NDQzMTgsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqQW5hbHl6aW5nIGEgTWVtb3J5IExlYWsgRml4KipcblxuT2theSwgc28gYHZjYXBfZHVwX3J1bGVgIGFsbG9jYXRlcyBtZW1vcnkgZm9yIGByaWAsIHRoYXQncyBjbGVhci4gVGhlIGNyaXRpY2FsIHBvaW50IGlzIHRoYXQgcHJldmlvdXNseSwgaWYgYHZjYXBfcmVhZF9ydWxlYCwgYHZjYXBfZGVjb2RlX2tleXNldGAsIG9yIGB2Y2FwX2RlY29kZV9hY3Rpb25zZXRgIGZhaWxlZCwgaXQgcmV0dXJuZWQgYW4gZXJyb3IgKndpdGhvdXQqIGZyZWVpbmcgYHJpYC4gIEEgY2xhc3NpYyBtZW1vcnkgbGVhayBzaXR1YXRpb24uIFRoZSBjaGFuZ2UgaXMgdGhhdCBub3cgaXQgY29ycmVjdGx5IGNhbGxzIGB2Y2FwX2ZyZWVfcnVsZShcdTAwMjZyaS1cdTAwM2VkYXRhKWAgYmVmb3JlIHJldHVybmluZywgd2hpY2ggZml4ZXMgdGhlIG1lbW9yeSBsZWFrIOKAkyBhIGdvb2QsIG5lY2Vzc2FyeSBmdW5jdGlvbmFsIGNoYW5nZS5cblxuVGhlIG5leHQgcXVlc3Rpb24gaXMgYWx3YXlzLCBcImlzIHRoaXMgZml4IGFjdHVhbGx5IHJlbGV2YW50IGluIHRoZSBlbnZpcm9ubWVudHMgd2UgY2FyZSBhYm91dD9cIiBTbywgaG93IGlzIHRoaXMgY29kZXBhdGggcmVhY2hlZCBpbiwgZm9yIGV4YW1wbGUsIGEgdmlydHVhbGl6ZWQgc2V0dXA/IEFoLCB5ZXMsIHRoZSBLVW5pdCB0ZXN0cy4gVGhlIEtVbml0IGZyYW1ld29yayBjYW4gdHJpZ2dlciB0aG9zZS4gIEkgc2VlIHRoYXQgYHZjYXBfYXBpX3Nob3dfYWRtaW5fcnVsZV90ZXN0YCBzcGVjaWZpY2FsbHkgY2FsbHMgdGhpcyBjb2RlLiBCdXQsIGhvdyAqZG9lcyogdGhlIEtVbml0IGdldCB0cmlnZ2VyZWQ/IFN5emthbGxlciwgcmlnaHQ/ICBTeXprYWxsZXIgY2FuIHRyaWdnZXIgdGhlbSBpZiB0aGV5IGFyZSBtb2R1bGVzLCBvciBidWlsdC1pbiwgYnV0IHVzdWFsbHkgZG9lc24ndCBmdXp6IHRoZW0gZGlyZWN0bHkgdW5sZXNzIHRoZXkgaGF2ZSBleHBvc2VkIGludGVyZmFjZXMgbGlrZSBkZWJ1Z2ZzLlxuXG5XYWl0IGEgc2Vjb25k4oCmIGB2Y2FwX3Nob3dfYWRtaW5gICppcyogcmVhY2hhYmxlIHZpYSBkZWJ1Z2ZzISAgVGhhdCdzIGEgcG90ZW50aWFsIGF0dGFjayB2ZWN0b3IuICBMZXQncyBzZWXigKYgIGB2Y2FwX2FwaV9kZWJ1Z2ZzLmNgIGNyZWF0ZXMgdGhlIGRlYnVnZnMgZW50cmllcywgc28gdGhhdCdzIHRoZSBzdGFydGluZyBwb2ludC4gIEJ1dCwgYXMgSSByZWNhbGwsIHRoZSBkZWJ1Z2ZzIGVudHJpZXMgYXJlIG9ubHkgKmFjdHVhbGx5KiBjcmVhdGVkIGlmIGEgY2xpZW50IGRyaXZlciwgbGlrZSBTcGFyeDUgb3IgTGFuOTY2eCwgaW5pdGlhbGl6ZXMgdGhlIFZDQVAgY29udHJvbCBzdHJ1Y3R1cmUgYW5kIHRoZW4gY2FsbHMgYHZjYXBfZGVidWdmc19pbml0YC4gVGhvc2UgZHJpdmVycyBhcmUgZm9yIHNwZWNpZmljIHBoeXNpY2FsIGhhcmR3YXJlLCB0aG91Z2gsIGxpa2UgU3Bhcng1IGFuZCBMYW45NjZ4LiBUaGV5IHdvbid0IHByb2JlIGluIFFFTVUsIHNvIGB2Y2FwX2RlYnVnZnNfaW5pdGAgaXMgbmV2ZXIgY2FsbGVkLCBhbmQgdGhlIGRlYnVnZnMgZW50cmllcyB3b24ndCBleGlzdC5cblxuU28sIHRoZSBuZXh0IHN0ZXAgaXMgdG8gbWFrZSBzdXJlIG5vdGhpbmcgZWxzZSBjYWxscyBgdmNhcF9kZWJ1Z2ZzX2luaXRgLCBvciB1c2VzIFZDQVAgYXQgYWxsLiBJIG5lZWQgdG8gdmVyaWZ5IHRoYXQuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjQ1OTMyLCJPdXRwdXRUb2tlbnMiOjM3LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MzYyLCJUb29sQ2FsbHMiOlsicmVhZC1maWxlIl19LHsiU3RhcnRlZCI6IjIwMjYtMDctMjlUMTA6Mjk6MzAuMTkyMzU5MzQ2WiIsIlNlcSI6NTQsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo3MzI5NDA3ODMsIkVycm9yIjoibm8gbWF0Y2hlcyIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcInZjYXBfZGVidWdmc19pbml0XCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC9cIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiZXJyb3JcIjogXCJubyBtYXRjaGVzXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTI5VDEwOjI5OjMwLjkyNTMxMDQ1OFoiLCJTZXEiOjU1LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo0OTM4OTUxODgzLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJPa2F5LCBoZXJlJ3MgdGhlIHN1bW1hcnksIGFzc3VtaW5nIEknbSB0aGUgb25lIGhhdmluZyB0aGVzZSB0aG91Z2h0cyBhbmQgSSBhbSBhbiBleHBlcnQgaW4gbXkgZmllbGQ6XG5cbioqU2Vjb25kLUd1ZXNzaW5nIE5vbWVuY2xhdHVyZSoqXG5cbkhtbSwgSSdtIGp1c3QgcmV2aWV3aW5nIHRoaXMgYWdhaW4sIGFuZCBpdOKAmXMgbmFnZ2luZyBhdCBtZS4gSXMgdGhpcyBzcGVjaWZpYyB0ZXJtIOKAkyB0aGUgb25lIEknbSB1c2luZywgdGhlIG9uZSBJICp0aGluayogaXMgc3RhbmRhcmQg4oCTIGlzIGl0IHJlYWxseSB0aGUgbW9zdCBhcHByb3ByaWF0ZT8gSSdtIHN0YXJ0aW5nIHRvIGdldCB0aGlzIGZlZWxpbmcgdGhhdCBpdCBtaWdodCBiZSBjYWxsZWQgc29tZXRoaW5nIGRpZmZlcmVudCBpbiB0aGlzIHBhcnRpY3VsYXIgY29udGV4dCwgb3IgcGVyaGFwcyB0aGVyZSdzIGEgbW9yZSBjdXJyZW50IG9yIHByZWNpc2UgbGFiZWwgSSdtIG92ZXJsb29raW5nLiBJIGtub3cgdGhlIGJhc2ljcywgdGhlIGNvcmUgY29uY2VwdHMsIGJ1dCBJJ20gcXVlc3Rpb25pbmcgd2hldGhlciBJJ3ZlIG1pc3NlZCBhIG51YW5jZSBpbiB0aGUgdGVybWlub2xvZ3kuIEkgZG9uJ3Qgd2FudCB0byBzb3VuZCBvdXRkYXRlZCBvciwgd29yc2UsIG1pc3VuZGVyc3RhbmQgc29tZXRoaW5nIGNyaXRpY2FsLCBqdXN0IGJlY2F1c2Ugb2YgbXkgYXNzdW1wdGlvbnMgYWJvdXQgdGhlIHRlcm1pbm9sb2d5LiBUaW1lIHRvIGRvdWJsZS1jaGVjayBteSBzb3VyY2VzIGFuZCBtYWtlIHN1cmUgSSdtIHVzaW5nIHRoZSBtb3N0IGFjY3VyYXRlIGFuZCBhY2NlcHRlZCBkZXNpZ25hdGlvbi5cblxuXG4iLCJJbnB1dFRva2VucyI6NDY4MDEsIk91dHB1dFRva2VucyI6MzUsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoxMCwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0yOVQxMDoyOTozNS44NjQyNjY1MTFaIiwiU2VxIjo1NiwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjE3NTg3NjY3NiwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJkZWJ1Z2ZzXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJkcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC9NYWtlZmlsZT03PW9iai0kKENPTkZJR19WQ0FQX0tVTklUX1RFU1QpICs9ICB2Y2FwX21vZGVsX2t1bml0Lm9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC9NYWtlZmlsZTo4OnZjYXAtJChDT05GSUdfREVCVUdfRlMpICs9IHZjYXBfYXBpX2RlYnVnZnMub1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL01ha2VmaWxlLTktXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9kZWJ1Z2ZzLmMtOC0jaW5jbHVkZSBcXFwidmNhcF9hcGlfcHJpdmF0ZS5oXFxcIlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2RlYnVnZnMuYzo5OiNpbmNsdWRlIFxcXCJ2Y2FwX2FwaV9kZWJ1Z2ZzLmhcXFwiXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfZGVidWdmcy5jLTEwLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2RlYnVnZnMuYzoxMTpzdHJ1Y3QgdmNhcF9hZG1pbl9kZWJ1Z2ZzX2luZm8ge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2RlYnVnZnMuYy0xMi1cXHRzdHJ1Y3QgdmNhcF9jb250cm9sICp2Y3RybDtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2RlYnVnZnMuYy0xNS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9kZWJ1Z2ZzLmM6MTY6c3RydWN0IHZjYXBfcG9ydF9kZWJ1Z2ZzX2luZm8ge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2RlYnVnZnMuYy0xNy1cXHRzdHJ1Y3QgdmNhcF9jb250cm9sICp2Y3RybDtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2RlYnVnZnMuYy0yMS0vKiBEdW1wIHRoZSBrZXlmaWVsZHMgdmFsdWUgYW5kIG1hc2sgdmFsdWVzICovXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfZGVidWdmcy5jOjIyOnN0YXRpYyB2b2lkIHZjYXBfZGVidWdmc19zaG93X3J1bGVfa2V5ZmllbGQoc3RydWN0IHZjYXBfY29udHJvbCAqdmN0cmwsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfZGVidWdmcy5jLTIzLVxcdFxcdFxcdFxcdFxcdCAgICBzdHJ1Y3QgdmNhcF9vdXRwdXRfcHJpbnQgKm91dCxcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2RlYnVnZnMuYz0xMTY9c3RhdGljIHZvaWRcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9kZWJ1Z2ZzLmM6MTE3OnZjYXBfZGVidWdmc19zaG93X3J1bGVfYWN0aW9uZmllbGQoc3RydWN0IHZjYXBfY29udHJvbCAqdmN0cmwsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfZGVidWdmcy5jLTExOC1cXHRcXHRcXHRcXHQgICBzdHJ1Y3QgdmNhcF9vdXRwdXRfcHJpbnQgKm91dCxcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2RlYnVnZnMuYy0xNTctXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfZGVidWdmcy5jOjE1ODpzdGF0aWMgaW50IHZjYXBfZGVidWdmc19zaG93X2tleXNldHMoc3RydWN0IHZjYXBfcnVsZV9pbnRlcm5hbCAqcmksXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfZGVidWdmcy5jLTE1OS1cXHRcXHRcXHRcXHQgICAgIHN0cnVjdCB2Y2FwX291dHB1dF9wcmludCAqb3V0KVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfZGVidWdmcy5jLTE5MC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9kZWJ1Z2ZzLmM6MTkxOnN0YXRpYyBpbnQgdmNhcF9kZWJ1Z2ZzX3Nob3dfcnVsZV9rZXlzZXQoc3RydWN0IHZjYXBfcnVsZV9pbnRlcm5hbCAqcmksXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfZGVidWdmcy5jLTE5Mi1cXHRcXHRcXHRcXHRcXHQgc3RydWN0IHZjYXBfb3V0cHV0X3ByaW50ICpvdXQpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9kZWJ1Z2ZzLmMtMTk4LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2RlYnVnZnMuYzoxOTk6XFx0dmNhcF9kZWJ1Z2ZzX3Nob3dfa2V5c2V0cyhyaSwgb3V0KTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9kZWJ1Z2ZzLmMtMjAwLVxcdG91dC1cXHUwMDNlcHJmKG91dC1cXHUwMDNlZHN0LCBcXFwiICBrZXlzZXRfc3c6ICVkXFxcXG5cXFwiLCByaS1cXHUwMDNla2V5c2V0X3N3KTtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2RlYnVnZnMuYy0yMDQtXFx0XFx0a2V5ZmllbGQgPSB2Y2FwX2tleWZpZWxkcyh2Y3RybCwgYWRtaW4tXFx1MDAzZXZ0eXBlLCByaS1cXHUwMDNlZGF0YS5rZXlzZXQpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2RlYnVnZnMuYzoyMDU6XFx0XFx0dmNhcF9kZWJ1Z2ZzX3Nob3dfcnVsZV9rZXlmaWVsZCh2Y3RybCwgb3V0LCBja2YtXFx1MDAzZWN0cmwua2V5LFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2RlYnVnZnMuYy0yMDYtXFx0XFx0XFx0XFx0XFx0XFx0a2V5ZmllbGQsIFxcdTAwMjZja2YtXFx1MDAzZWRhdGEpO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfZGVidWdmcy5jLTIxMS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9kZWJ1Z2ZzLmM6MjEyOnN0YXRpYyBpbnQgdmNhcF9kZWJ1Z2ZzX3Nob3dfcnVsZV9hY3Rpb25zZXQoc3RydWN0IHZjYXBfcnVsZV9pbnRlcm5hbCAqcmksXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfZGVidWdmcy5jLTIxMy1cXHRcXHRcXHRcXHRcXHQgICAgc3RydWN0IHZjYXBfb3V0cHV0X3ByaW50ICpvdXQpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9kZWJ1Z2ZzLmMtMjI3LVxcdFxcdFxcdFxcdFxcdFxcdHJpLVxcdTAwM2VkYXRhLmFjdGlvbnNldCk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfZGVidWdmcy5jOjIyODpcXHRcXHR2Y2FwX2RlYnVnZnNfc2hvd19ydWxlX2FjdGlvbmZpZWxkKHZjdHJsLCBvdXQsIGNhZi1cXHUwMDNlY3RybC5hY3Rpb24sXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfZGVidWdmcy5jLTIyOS1cXHRcXHRcXHRcXHRcXHRcXHQgICBhY3Rpb25maWVsZCxcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2RlYnVnZnMuYz0yMzY9c3RhdGljIHZvaWQgdmNhcF9zaG93X2FkbWluX3J1bGUoc3RydWN0IHZjYXBfY29udHJvbCAqdmN0cmwsXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9kZWJ1Z2ZzLmMtMjYxLVxcdH1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9kZWJ1Z2ZzLmM6MjYyOlxcdHZjYXBfZGVidWdmc19zaG93X3J1bGVfa2V5c2V0KHJpLCBvdXQpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2RlYnVnZnMuYzoyNjM6XFx0dmNhcF9kZWJ1Z2ZzX3Nob3dfcnVsZV9hY3Rpb25zZXQocmksIG91dCk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfZGVidWdmcy5jLTI2NC19XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9kZWJ1Z2ZzLmM9MzE1PXN0YXRpYyBpbnQgdmNhcF9zaG93X2FkbWluX3JhdyhzdHJ1Y3QgdmNhcF9jb250cm9sICp2Y3RybCxcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2RlYnVnZnMuYy0zNjctLyogU2hvdyB0aGUgcG9ydCBjb25maWd1cmF0aW9uIGFuZCBzdGF0dXMgKi9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9kZWJ1Z2ZzLmM6MzY4OnN0YXRpYyBpbnQgdmNhcF9wb3J0X2RlYnVnZnNfc2hvdyhzdHJ1Y3Qgc2VxX2ZpbGUgKm0sIHZvaWQgKnVudXNlZClcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9kZWJ1Z2ZzLmMtMzY5LXtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9kZWJ1Z2ZzLmM6MzcwOlxcdHN0cnVjdCB2Y2FwX3BvcnRfZGVidWdmc19pbmZvICppbmZvID0gbS1cXHUwMDNlcHJpdmF0ZTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9kZWJ1Z2ZzLmMtMzcxLVxcdHN0cnVjdCB2Y2FwX2FkbWluICphZG1pbjtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2RlYnVnZnMuYy0zODMtfVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2RlYnVnZnMuYzozODQ6REVGSU5FX1NIT1dfQVRUUklCVVRFKHZjYXBfcG9ydF9kZWJ1Z2ZzKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9kZWJ1Z2ZzLmMtMzg1LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2RlYnVnZnMuYzozODY6dm9pZCB2Y2FwX3BvcnRfZGVidWdmcyhzdHJ1Y3QgZGV2aWNlICpkZXYsIHN0cnVjdCBkZW50cnkgKnBhcmVudCxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9kZWJ1Z2ZzLmMtMzg3LVxcdFxcdCAgICAgICBzdHJ1Y3QgdmNhcF9jb250cm9sICp2Y3RybCxcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2RlYnVnZnMuYy0zODkte1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2RlYnVnZnMuYzozOTA6XFx0c3RydWN0IHZjYXBfcG9ydF9kZWJ1Z2ZzX2luZm8gKmluZm87XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfZGVidWdmcy5jLTM5MS1cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2RlYnVnZnMuYy0zOTctXFx0aW5mby1cXHUwMDNlbmRldiA9IG5kZXY7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfZGVidWdmcy5jOjM5ODpcXHRkZWJ1Z2ZzX2NyZWF0ZV9maWxlKG5ldGRldl9uYW1lKG5kZXYpLCAwNDQ0LCBwYXJlbnQsIGluZm8sXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfZGVidWdmcy5jOjM5OTpcXHRcXHRcXHQgICAgXFx1MDAyNnZjYXBfcG9ydF9kZWJ1Z2ZzX2ZvcHMpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2RlYnVnZnMuYy00MDAtfVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2RlYnVnZnMuYzo0MDE6RVhQT1JUX1NZTUJPTF9HUEwodmNhcF9wb3J0X2RlYnVnZnMpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2RlYnVnZnMuYy00MDItXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfZGVidWdmcy5jLTQwMy0vKiBTaG93IHRoZSBmdWxsIFZDQVAgaW5zdGFuY2UgZGF0YSAocnVsZXMgd2l0aCBhbGwgZmllbGRzKSAqL1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2RlYnVnZnMuYzo0MDQ6c3RhdGljIGludCB2Y2FwX2RlYnVnZnNfc2hvdyhzdHJ1Y3Qgc2VxX2ZpbGUgKm0sIHZvaWQgKnVudXNlZClcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9kZWJ1Z2ZzLmMtNDA1LXtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9kZWJ1Z2ZzLmM6NDA2OlxcdHN0cnVjdCB2Y2FwX2FkbWluX2RlYnVnZnNfaW5mbyAqaW5mbyA9IG0tXFx1MDAzZXByaXZhdGU7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfZGVidWdmcy5jLTQwNy1cXHRzdHJ1Y3QgdmNhcF9vdXRwdXRfcHJpbnQgb3V0ID0ge1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfZGVidWdmcy5jLTQxNy19XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfZGVidWdmcy5jOjQxODpERUZJTkVfU0hPV19BVFRSSUJVVEUodmNhcF9kZWJ1Z2ZzKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9kZWJ1Z2ZzLmMtNDE5LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2RlYnVnZnMuYy00MjAtLyogU2hvdyB0aGUgcmF3IFZDQVAgaW5zdGFuY2UgZGF0YSAocnVsZXMgd2l0aCBhZGRyZXNzIGluZm8pICovXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfZGVidWdmcy5jOjQyMTpzdGF0aWMgaW50IHZjYXBfcmF3X2RlYnVnZnNfc2hvdyhzdHJ1Y3Qgc2VxX2ZpbGUgKm0sIHZvaWQgKnVudXNlZClcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9kZWJ1Z2ZzLmMtNDIyLXtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9kZWJ1Z2ZzLmM6NDIzOlxcdHN0cnVjdCB2Y2FwX2FkbWluX2RlYnVnZnNfaW5mbyAqaW5mbyA9IG0tXFx1MDAzZXByaXZhdGU7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfZGVidWdmcy5jLTQyNC1cXHRzdHJ1Y3QgdmNhcF9vdXRwdXRfcHJpbnQgb3V0ID0ge1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfZGVidWdmcy5jLTQzNC19XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfZGVidWdmcy5jOjQzNTpERUZJTkVfU0hPV19BVFRSSUJVVEUodmNhcF9yYXdfZGVidWdmcyk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfZGVidWdmcy5jLTQzNi1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9kZWJ1Z2ZzLmM6NDM3OnN0cnVjdCBkZW50cnkgKnZjYXBfZGVidWdmcyhzdHJ1Y3QgZGV2aWNlICpkZXYsIHN0cnVjdCBkZW50cnkgKnBhcmVudCxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9kZWJ1Z2ZzLmMtNDM4LVxcdFxcdFxcdCAgICBzdHJ1Y3QgdmNhcF9jb250cm9sICp2Y3RybClcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9kZWJ1Z2ZzLmMtNDM5LXtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9kZWJ1Z2ZzLmM6NDQwOlxcdHN0cnVjdCB2Y2FwX2FkbWluX2RlYnVnZnNfaW5mbyAqaW5mbztcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9kZWJ1Z2ZzLmMtNDQxLVxcdHN0cnVjdCB2Y2FwX2FkbWluICphZG1pbjtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2RlYnVnZnMuYy00NDQtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfZGVidWdmcy5jOjQ0NTpcXHRkaXIgPSBkZWJ1Z2ZzX2NyZWF0ZV9kaXIoXFxcInZjYXBzXFxcIiwgcGFyZW50KTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9kZWJ1Z2ZzLmMtNDQ2LVxcdGlmIChQVFJfRVJSX09SX1pFUk8oZGlyKSlcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2RlYnVnZnMuYy00NTUtXFx0XFx0aW5mby1cXHUwMDNlYWRtaW4gPSBhZG1pbjtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9kZWJ1Z2ZzLmM6NDU2OlxcdFxcdGRlYnVnZnNfY3JlYXRlX2ZpbGUobmFtZSwgMDQ0NCwgZGlyLCBpbmZvLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2RlYnVnZnMuYzo0NTc6XFx0XFx0XFx0XFx0ICAgIFxcdTAwMjZ2Y2FwX3Jhd19kZWJ1Z2ZzX2ZvcHMpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2RlYnVnZnMuYy00NTgtXFx0XFx0c3ByaW50ZihuYW1lLCBcXFwiJXNfJWRcXFwiLCB2Y3RybC1cXHUwMDNldmNhcHNbYWRtaW4tXFx1MDAzZXZ0eXBlXS5uYW1lLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2RlYnVnZnMuYy00NTktXFx0XFx0XFx0YWRtaW4tXFx1MDAzZXZpbnN0KTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9kZWJ1Z2ZzLmM6NDYwOlxcdFxcdGRlYnVnZnNfY3JlYXRlX2ZpbGUobmFtZSwgMDQ0NCwgZGlyLCBpbmZvLCBcXHUwMDI2dmNhcF9kZWJ1Z2ZzX2ZvcHMpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2RlYnVnZnMuYy00NjEtXFx0fVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfZGVidWdmcy5jLTQ2My19XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfZGVidWdmcy5jOjQ2NDpFWFBPUlRfU1lNQk9MX0dQTCh2Y2FwX2RlYnVnZnMpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2RlYnVnZnMuYy00NjUtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfZGVidWdmcy5jLTQ2Ni0jaWZkZWYgQ09ORklHX1ZDQVBfS1VOSVRfVEVTVFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2RlYnVnZnMuYzo0Njc6I2luY2x1ZGUgXFxcInZjYXBfYXBpX2RlYnVnZnNfa3VuaXQuY1xcXCJcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9kZWJ1Z2ZzLmMtNDY4LSNlbmRpZlxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfZGVidWdmcy5oLTktI2luY2x1ZGUgXFx1MDAzY2xpbnV4L3R5cGVzLmhcXHUwMDNlXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfZGVidWdmcy5oOjEwOiNpbmNsdWRlIFxcdTAwM2NsaW51eC9kZWJ1Z2ZzLmhcXHUwMDNlXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfZGVidWdmcy5oLTExLSNpbmNsdWRlIFxcdTAwM2NsaW51eC9uZXRkZXZpY2UuaFxcdTAwM2VcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2RlYnVnZnMuaC0xNi1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9kZWJ1Z2ZzLmg6MTc6dm9pZCB2Y2FwX3BvcnRfZGVidWdmcyhzdHJ1Y3QgZGV2aWNlICpkZXYsIHN0cnVjdCBkZW50cnkgKnBhcmVudCxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9kZWJ1Z2ZzLmgtMTgtXFx0XFx0ICAgICAgIHN0cnVjdCB2Y2FwX2NvbnRyb2wgKnZjdHJsLFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfZGVidWdmcy5oLTIxLS8qIENyZWF0ZSBhIGRlYnVnRlMgZW50cnkgZm9yIGEgdmNhcCBpbnN0YW5jZSAqL1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2RlYnVnZnMuaDoyMjpzdHJ1Y3QgZGVudHJ5ICp2Y2FwX2RlYnVnZnMoc3RydWN0IGRldmljZSAqZGV2LCBzdHJ1Y3QgZGVudHJ5ICpwYXJlbnQsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfZGVidWdmcy5oLTIzLVxcdFxcdFxcdCAgICBzdHJ1Y3QgdmNhcF9jb250cm9sICp2Y3RybCk7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9kZWJ1Z2ZzLmgtMjYtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfZGVidWdmcy5oOjI3OnN0YXRpYyBpbmxpbmUgdm9pZCB2Y2FwX3BvcnRfZGVidWdmcyhzdHJ1Y3QgZGV2aWNlICpkZXYsIHN0cnVjdCBkZW50cnkgKnBhcmVudCxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9kZWJ1Z2ZzLmgtMjgtXFx0XFx0XFx0XFx0ICAgICBzdHJ1Y3QgdmNhcF9jb250cm9sICp2Y3RybCxcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2RlYnVnZnMuaC0zMi1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9kZWJ1Z2ZzLmg6MzM6c3RhdGljIGlubGluZSBzdHJ1Y3QgZGVudHJ5ICp2Y2FwX2RlYnVnZnMoc3RydWN0IGRldmljZSAqZGV2LFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2RlYnVnZnMuaC0zNC1cXHRcXHRcXHRcXHRcXHQgIHN0cnVjdCBkZW50cnkgKnBhcmVudCxcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2RlYnVnZnNfa3VuaXQuYy04LSNpbmNsdWRlIFxcXCJ2Y2FwX2FwaV9jbGllbnQuaFxcXCJcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9kZWJ1Z2ZzX2t1bml0LmM6OTojaW5jbHVkZSBcXFwidmNhcF9hcGlfZGVidWdmcy5oXFxcIlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2RlYnVnZnNfa3VuaXQuYy0xMC0jaW5jbHVkZSBcXFwidmNhcF9tb2RlbF9rdW5pdC5oXFxcIlxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfZGVidWdmc19rdW5pdC5jPTQ3NT1zdGF0aWMgdm9pZCB2Y2FwX2FwaV9zaG93X2FkbWluX3J1bGVfdGVzdChzdHJ1Y3Qga3VuaXQgKnRlc3QpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9kZWJ1Z2ZzX2t1bml0LmMtNTQxLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2RlYnVnZnNfa3VuaXQuYzo1NDI6c3RhdGljIHN0cnVjdCBrdW5pdF9jYXNlIHZjYXBfYXBpX2RlYnVnZnNfdGVzdF9jYXNlc1tdID0ge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2RlYnVnZnNfa3VuaXQuYy01NDMtXFx0S1VOSVRfQ0FTRSh2Y2FwX2FwaV9hZGRyX2tleXNldF90ZXN0KSxcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2RlYnVnZnNfa3VuaXQuYy01NDktXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfZGVidWdmc19rdW5pdC5jOjU1MDpzdGF0aWMgc3RydWN0IGt1bml0X3N1aXRlIHZjYXBfYXBpX2RlYnVnZnNfdGVzdF9zdWl0ZSA9IHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9kZWJ1Z2ZzX2t1bml0LmMtNTUxLVxcdC5uYW1lID0gXFxcIlZDQVBfQVBJX0RlYnVnRlNfVGVzdHN1aXRlXFxcIixcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9kZWJ1Z2ZzX2t1bml0LmM6NTUyOlxcdC50ZXN0X2Nhc2VzID0gdmNhcF9hcGlfZGVidWdmc190ZXN0X2Nhc2VzLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2RlYnVnZnNfa3VuaXQuYy01NTMtfTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9kZWJ1Z2ZzX2t1bml0LmMtNTU0LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2RlYnVnZnNfa3VuaXQuYzo1NTU6a3VuaXRfdGVzdF9zdWl0ZSh2Y2FwX2FwaV9kZWJ1Z2ZzX3Rlc3Rfc3VpdGUpO1xcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0yOVQxMDoyOTozNi4wNDAxNTA0NDdaIiwiU2VxIjo1NywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NTE1NzE0MDIyNywiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiT2theSwgaGVyZSdzIG15IHRha2Ugb24gdGhvc2UgdGhvdWdodHMsIHRhaWxvcmVkIGZvciBhbiBleHBlcnQgYXVkaWVuY2UsIHByZXNlbnRlZCBpbiB0aGUgZmlyc3QgcGVyc29uOlxuXG4qKkludmVzdGlnYXRpbmcgYHZjYXBfZGVidWdmc2AgQ2xpZW50IERlcGVuZGVuY2llcyoqXG5cbkFscmlnaHQsIHNvIGB2Y2FwX2RlYnVnZnNgIGlzIGNsZWFybHkgZXhwb3J0ZWQgYW5kIGFjY2Vzc2libGUgdG8gY2xpZW50cy4gVGhhdCBpbW1lZGlhdGVseSByYWlzZXMgdGhlIHF1ZXN0aW9uOiB3aG8ncyAqYWN0dWFsbHkqIGxldmVyYWdpbmcgdGhpcyBmdW5jdGlvbmFsaXR5PyBJdCdzIGVzc2VudGlhbCB0byB1bmRlcnN0YW5kIHRoZSB1c2FnZSBwYXR0ZXJucyBhbmQgcG90ZW50aWFsIGRlcGVuZGVuY2llcyB0byBhc3Nlc3MgaXRzIGNyaXRpY2FsaXR5LCBwb3RlbnRpYWwgaW1wYWN0IG9mIGNoYW5nZXMsIGFuZCBhcmVhcyBmb3Igb3B0aW1pemF0aW9uIG9yIHNlY3VyaXR5IGhhcmRlbmluZy4gTXkgbmV4dCBzdGVwIGlzIHVuZGVuaWFibHkgdG8gaWRlbnRpZnkgYWxsIHRoZSBjYWxsZXJzIG9mIGB2Y2FwX2RlYnVnZnNgLiBJIG5lZWQgYSBwcmVjaXNlIGNhbGwgZ3JhcGggb3IsIGF0IHRoZSB2ZXJ5IGxlYXN0LCBhIGNvbXByZWhlbnNpdmUgbGlzdCBvZiBtb2R1bGVzLCBwcm9jZXNzZXMsIG9yIGV2ZW4gc3BlY2lmaWMgY29kZSBsb2NhdGlvbnMgdGhhdCBhcmUgbWFraW5nIGNhbGxzIHRvIHRoYXQgZnVuY3Rpb24uIEZyb20gdGhlcmUsIEkgY2FuIGJlZ2luIHRvIGFzc2VzcyByaXNrLCB1bmRlcnN0YW5kIHRoZSBvdmVyYWxsIHN5c3RlbSBkZXBlbmRlbmNpZXMsIGFuZCBzdGFydCBkZXRlcm1pbmluZyB0aGUgaW1wYWN0IHRoYXQgYW55IGNoYW5nZXMgdG8gdGhpcyBmdW5jdGlvbiB3b3VsZCBoYXZlLlxuXG5cbiIsIklucHV0VG9rZW5zIjo1MjAyNCwiT3V0cHV0VG9rZW5zIjozNSwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjI5LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTI5VDEwOjI5OjQxLjE5NzI5NTQ0NVoiLCJTZXEiOjU4LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MTc1NzkyODE2LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcInZjYXBfZGVidWdmc1wiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJkcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC9sYW45NjZ4L01ha2VmaWxlPTE4PWxhbjk2Nngtc3dpdGNoLSQoQ09ORklHX0xBTjk2NlhfRENCKSArPSBsYW45NjZ4X2RjYi5vXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL2xhbjk2NngvTWFrZWZpbGU6MTk6bGFuOTY2eC1zd2l0Y2gtJChDT05GSUdfREVCVUdfRlMpICs9IGxhbjk2NnhfdmNhcF9kZWJ1Z2ZzLm9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvbGFuOTY2eC9NYWtlZmlsZS0yMC1cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC9sYW45NjZ4L2xhbjk2NnhfdmNhcF9pbXBsLmM9NzA3PWludCBsYW45NjZ4X3ZjYXBfaW5pdChzdHJ1Y3QgbGFuOTY2eCAqbGFuOTY2eClcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC9sYW45NjZ4L2xhbjk2NnhfdmNhcF9pbXBsLmMtNzM2LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC9sYW45NjZ4L2xhbjk2NnhfdmNhcF9pbXBsLmM6NzM3OlxcdGRpciA9IHZjYXBfZGVidWdmcyhsYW45NjZ4LVxcdTAwM2VkZXYsIGxhbjk2NngtXFx1MDAzZWRlYnVnZnNfcm9vdCwgY3RybCk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL2xhbjk2NngvbGFuOTY2eF92Y2FwX2ltcGwuYy03MzgtXFx0Zm9yIChpbnQgcCA9IDA7IHAgXFx1MDAzYyBsYW45NjZ4LVxcdTAwM2VudW1fcGh5c19wb3J0czsgKytwKSB7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvc3Bhcng1L01ha2VmaWxlPTE2PXNwYXJ4NS1zd2l0Y2gtJChDT05GSUdfU1BBUlg1X0RDQikgKz0gc3Bhcng1X2RjYi5vXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3NwYXJ4NS9NYWtlZmlsZToxNzpzcGFyeDUtc3dpdGNoLSQoQ09ORklHX0RFQlVHX0ZTKSArPSBzcGFyeDVfdmNhcF9kZWJ1Z2ZzLm9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvc3Bhcng1L01ha2VmaWxlLTE4LVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3NwYXJ4NS9zcGFyeDVfdmNhcF9kZWJ1Z2ZzLmMtOS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvc3Bhcng1L3NwYXJ4NV92Y2FwX2RlYnVnZnMuYzoxMDojaW5jbHVkZSBcXFwic3Bhcng1X3ZjYXBfZGVidWdmcy5oXFxcIlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC9zcGFyeDUvc3Bhcng1X3ZjYXBfZGVidWdmcy5jLTExLSNpbmNsdWRlIFxcXCJzcGFyeDVfbWFpbl9yZWdzLmhcXFwiXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvc3Bhcng1L3NwYXJ4NV92Y2FwX2ltcGwuYy0xNC0jaW5jbHVkZSBcXFwic3Bhcng1X3ZjYXBfYWdfYXBpLmhcXFwiXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3NwYXJ4NS9zcGFyeDVfdmNhcF9pbXBsLmM6MTU6I2luY2x1ZGUgXFxcInNwYXJ4NV92Y2FwX2RlYnVnZnMuaFxcXCJcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvc3Bhcng1L3NwYXJ4NV92Y2FwX2ltcGwuYy0xNi1cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC9zcGFyeDUvc3Bhcng1X3ZjYXBfaW1wbC5jPTIwMzE9aW50IHNwYXJ4NV92Y2FwX2luaXQoc3RydWN0IHNwYXJ4NSAqc3Bhcng1KVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3NwYXJ4NS9zcGFyeDVfdmNhcF9pbXBsLmMtMjA3Ni1cXHR9XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3NwYXJ4NS9zcGFyeDVfdmNhcF9pbXBsLmM6MjA3NzpcXHRkaXIgPSB2Y2FwX2RlYnVnZnMoc3Bhcng1LVxcdTAwM2VkZXYsIHNwYXJ4NS1cXHUwMDNlZGVidWdmc19yb290LCBjdHJsKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvc3Bhcng1L3NwYXJ4NV92Y2FwX2ltcGwuYy0yMDc4LVxcdGZvciAoaWR4ID0gMDsgaWR4IFxcdTAwM2MgY29uc3RzLVxcdTAwM2VuX3BvcnRzOyArK2lkeClcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2RlYnVnZnMuYz0xNj1zdHJ1Y3QgdmNhcF9wb3J0X2RlYnVnZnNfaW5mbyB7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9kZWJ1Z2ZzLmMtMjEtLyogRHVtcCB0aGUga2V5ZmllbGRzIHZhbHVlIGFuZCBtYXNrIHZhbHVlcyAqL1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2RlYnVnZnMuYzoyMjpzdGF0aWMgdm9pZCB2Y2FwX2RlYnVnZnNfc2hvd19ydWxlX2tleWZpZWxkKHN0cnVjdCB2Y2FwX2NvbnRyb2wgKnZjdHJsLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2RlYnVnZnMuYy0yMy1cXHRcXHRcXHRcXHRcXHQgICAgc3RydWN0IHZjYXBfb3V0cHV0X3ByaW50ICpvdXQsXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9kZWJ1Z2ZzLmM9MTE2PXN0YXRpYyB2b2lkXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfZGVidWdmcy5jOjExNzp2Y2FwX2RlYnVnZnNfc2hvd19ydWxlX2FjdGlvbmZpZWxkKHN0cnVjdCB2Y2FwX2NvbnRyb2wgKnZjdHJsLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2RlYnVnZnMuYy0xMTgtXFx0XFx0XFx0XFx0ICAgc3RydWN0IHZjYXBfb3V0cHV0X3ByaW50ICpvdXQsXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9kZWJ1Z2ZzLmMtMTU3LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2RlYnVnZnMuYzoxNTg6c3RhdGljIGludCB2Y2FwX2RlYnVnZnNfc2hvd19rZXlzZXRzKHN0cnVjdCB2Y2FwX3J1bGVfaW50ZXJuYWwgKnJpLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2RlYnVnZnMuYy0xNTktXFx0XFx0XFx0XFx0ICAgICBzdHJ1Y3QgdmNhcF9vdXRwdXRfcHJpbnQgKm91dClcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2RlYnVnZnMuYy0xOTAtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfZGVidWdmcy5jOjE5MTpzdGF0aWMgaW50IHZjYXBfZGVidWdmc19zaG93X3J1bGVfa2V5c2V0KHN0cnVjdCB2Y2FwX3J1bGVfaW50ZXJuYWwgKnJpLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2RlYnVnZnMuYy0xOTItXFx0XFx0XFx0XFx0XFx0IHN0cnVjdCB2Y2FwX291dHB1dF9wcmludCAqb3V0KVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfZGVidWdmcy5jLTE5OC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9kZWJ1Z2ZzLmM6MTk5OlxcdHZjYXBfZGVidWdmc19zaG93X2tleXNldHMocmksIG91dCk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfZGVidWdmcy5jLTIwMC1cXHRvdXQtXFx1MDAzZXByZihvdXQtXFx1MDAzZWRzdCwgXFxcIiAga2V5c2V0X3N3OiAlZFxcXFxuXFxcIiwgcmktXFx1MDAzZWtleXNldF9zdyk7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9kZWJ1Z2ZzLmMtMjA0LVxcdFxcdGtleWZpZWxkID0gdmNhcF9rZXlmaWVsZHModmN0cmwsIGFkbWluLVxcdTAwM2V2dHlwZSwgcmktXFx1MDAzZWRhdGEua2V5c2V0KTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9kZWJ1Z2ZzLmM6MjA1OlxcdFxcdHZjYXBfZGVidWdmc19zaG93X3J1bGVfa2V5ZmllbGQodmN0cmwsIG91dCwgY2tmLVxcdTAwM2VjdHJsLmtleSxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9kZWJ1Z2ZzLmMtMjA2LVxcdFxcdFxcdFxcdFxcdFxcdGtleWZpZWxkLCBcXHUwMDI2Y2tmLVxcdTAwM2VkYXRhKTtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2RlYnVnZnMuYy0yMTEtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfZGVidWdmcy5jOjIxMjpzdGF0aWMgaW50IHZjYXBfZGVidWdmc19zaG93X3J1bGVfYWN0aW9uc2V0KHN0cnVjdCB2Y2FwX3J1bGVfaW50ZXJuYWwgKnJpLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2RlYnVnZnMuYy0yMTMtXFx0XFx0XFx0XFx0XFx0ICAgIHN0cnVjdCB2Y2FwX291dHB1dF9wcmludCAqb3V0KVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfZGVidWdmcy5jLTIyNy1cXHRcXHRcXHRcXHRcXHRcXHRyaS1cXHUwMDNlZGF0YS5hY3Rpb25zZXQpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2RlYnVnZnMuYzoyMjg6XFx0XFx0dmNhcF9kZWJ1Z2ZzX3Nob3dfcnVsZV9hY3Rpb25maWVsZCh2Y3RybCwgb3V0LCBjYWYtXFx1MDAzZWN0cmwuYWN0aW9uLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2RlYnVnZnMuYy0yMjktXFx0XFx0XFx0XFx0XFx0XFx0ICAgYWN0aW9uZmllbGQsXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9kZWJ1Z2ZzLmM9MjM2PXN0YXRpYyB2b2lkIHZjYXBfc2hvd19hZG1pbl9ydWxlKHN0cnVjdCB2Y2FwX2NvbnRyb2wgKnZjdHJsLFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfZGVidWdmcy5jLTI2MS1cXHR9XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfZGVidWdmcy5jOjI2MjpcXHR2Y2FwX2RlYnVnZnNfc2hvd19ydWxlX2tleXNldChyaSwgb3V0KTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9kZWJ1Z2ZzLmM6MjYzOlxcdHZjYXBfZGVidWdmc19zaG93X3J1bGVfYWN0aW9uc2V0KHJpLCBvdXQpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2RlYnVnZnMuYy0yNjQtfVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfZGVidWdmcy5jPTQwMT1FWFBPUlRfU1lNQk9MX0dQTCh2Y2FwX3BvcnRfZGVidWdmcyk7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9kZWJ1Z2ZzLmMtNDAzLS8qIFNob3cgdGhlIGZ1bGwgVkNBUCBpbnN0YW5jZSBkYXRhIChydWxlcyB3aXRoIGFsbCBmaWVsZHMpICovXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfZGVidWdmcy5jOjQwNDpzdGF0aWMgaW50IHZjYXBfZGVidWdmc19zaG93KHN0cnVjdCBzZXFfZmlsZSAqbSwgdm9pZCAqdW51c2VkKVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2RlYnVnZnMuYy00MDUte1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfZGVidWdmcy5jLTQxNy19XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfZGVidWdmcy5jOjQxODpERUZJTkVfU0hPV19BVFRSSUJVVEUodmNhcF9kZWJ1Z2ZzKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9kZWJ1Z2ZzLmMtNDE5LVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfZGVidWdmcy5jPTQzNT1ERUZJTkVfU0hPV19BVFRSSUJVVEUodmNhcF9yYXdfZGVidWdmcyk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfZGVidWdmcy5jLTQzNi1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9kZWJ1Z2ZzLmM6NDM3OnN0cnVjdCBkZW50cnkgKnZjYXBfZGVidWdmcyhzdHJ1Y3QgZGV2aWNlICpkZXYsIHN0cnVjdCBkZW50cnkgKnBhcmVudCxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9kZWJ1Z2ZzLmMtNDM4LVxcdFxcdFxcdCAgICBzdHJ1Y3QgdmNhcF9jb250cm9sICp2Y3RybClcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2RlYnVnZnMuYy00NTktXFx0XFx0XFx0YWRtaW4tXFx1MDAzZXZpbnN0KTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9kZWJ1Z2ZzLmM6NDYwOlxcdFxcdGRlYnVnZnNfY3JlYXRlX2ZpbGUobmFtZSwgMDQ0NCwgZGlyLCBpbmZvLCBcXHUwMDI2dmNhcF9kZWJ1Z2ZzX2ZvcHMpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2RlYnVnZnMuYy00NjEtXFx0fVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfZGVidWdmcy5jLTQ2My19XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfZGVidWdmcy5jOjQ2NDpFWFBPUlRfU1lNQk9MX0dQTCh2Y2FwX2RlYnVnZnMpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2RlYnVnZnMuYy00NjUtXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9kZWJ1Z2ZzLmg9MTc9dm9pZCB2Y2FwX3BvcnRfZGVidWdmcyhzdHJ1Y3QgZGV2aWNlICpkZXYsIHN0cnVjdCBkZW50cnkgKnBhcmVudCxcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2RlYnVnZnMuaC0yMS0vKiBDcmVhdGUgYSBkZWJ1Z0ZTIGVudHJ5IGZvciBhIHZjYXAgaW5zdGFuY2UgKi9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9kZWJ1Z2ZzLmg6MjI6c3RydWN0IGRlbnRyeSAqdmNhcF9kZWJ1Z2ZzKHN0cnVjdCBkZXZpY2UgKmRldiwgc3RydWN0IGRlbnRyeSAqcGFyZW50LFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2RlYnVnZnMuaC0yMy1cXHRcXHRcXHQgICAgc3RydWN0IHZjYXBfY29udHJvbCAqdmN0cmwpO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfZGVidWdmcy5oPTI3PXN0YXRpYyBpbmxpbmUgdm9pZCB2Y2FwX3BvcnRfZGVidWdmcyhzdHJ1Y3QgZGV2aWNlICpkZXYsIHN0cnVjdCBkZW50cnkgKnBhcmVudCxcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2RlYnVnZnMuaC0zMi1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9kZWJ1Z2ZzLmg6MzM6c3RhdGljIGlubGluZSBzdHJ1Y3QgZGVudHJ5ICp2Y2FwX2RlYnVnZnMoc3RydWN0IGRldmljZSAqZGV2LFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2RlYnVnZnMuaC0zNC1cXHRcXHRcXHRcXHRcXHQgIHN0cnVjdCBkZW50cnkgKnBhcmVudCxcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMjlUMTA6Mjk6NDEuMzczMDk2MTQxWiIsIlNlcSI6NTksIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjE1Njg3OTIxNjIwLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKldvcnRoRnV6emluZz1mYWxzZTogVW5yZWFjaGFibGUgQ29kZSBpbiBWaXJ0dWFsaXplZCBFbnZpcm9ubWVudHMqKlxuXG5Pa2F5LCBzbyBJJ3ZlIGxvb2tlZCBhdCB0aGlzIHBhdGNoIGFuZCBoZXJlJ3MgbXkgYnJlYWtkb3duLiBUaGUgb25seSBmdW5jdGlvbnMgdGhhdCBjYWxsIHRoZSBjb2RlIEknbSBhbmFseXppbmcsIGB2Y2FwX2RlY29kZV9ydWxlYCBpbmRpcmVjdGx5IHRocm91Z2ggYHZjYXBfZ2V0X3J1bGVgLCBhcmUgYGxhbjk2NnhfdmNhcF9pbml0YCBhbmQgYHNwYXJ4NV92Y2FwX2luaXRgLiBCb3RoIG9mIHRoZXNlIGluaXRpYWxpemF0aW9uIHJvdXRpbmVzLCBJIGtub3csIG5lZWQgYWN0dWFsIHBoeXNpY2FsIGhhcmR3YXJlIHRvIHByb2JlIOKAkyBzcGVjaWZpY2FsbHksIGhhcmR3YXJlIGZyb20gTWljcm9jaGlwLiBUaGF0IGltbWVkaWF0ZWx5IHRlbGxzIG1lLCBpbiBhIHZpcnR1YWxpemVkIGVudmlyb25tZW50IGxpa2UgUUVNVSwgdGhpcyBjb2RlIHBhdGggd2lsbCAqbmV2ZXIqIGJlIGhpdC4gVGhlIGB2Y2FwX2RlYnVnZnNgIGVudHJpZXMsIHdoaWNoIGFyZSBhbHNvIGluZGlyZWN0bHkgaW52b2x2ZWQgdGhyb3VnaCBgdmNhcF9zaG93X2FkbWluYCwgd29uJ3QgZXZlbiBiZSBjcmVhdGVkLlxuXG5JIHF1aWNrbHkgY29uc2lkZXJlZCB0aGUgZXhpc3RlbmNlIG9mIGB2Y2FwX2FwaV9kZWJ1Z2ZzX2t1bml0LmNgIOKAkyBhIEtVbml0IHRlc3QuIE5vdywgaWYgS1VuaXQgdGVzdHMgYXJlIGJ1aWx0IGFzIG1vZHVsZXMsIEkgY2FuIGxvYWQgYW5kIHJ1biB0aGVtLiBCdXQsIHRoYXQncyBub3QgdGhlIHBvaW50LiBUaGUgY3J1eCBpcyB3aGV0aGVyIFN5emthbGxlciBmdXp6ZXMgdGhlbS4gQW5kIG5vLCBpdCBkb2Vzbid0LiBTeXprYWxsZXIgZG9lc24ndCBmdXp6IEtVbml0IHRlc3RzIGJlY2F1c2UgdGhleSdyZSBzZWxmLWNvbnRhaW5lZCB1bml0IHRlc3RzIHRoYXQgcnVuIGF1dG9tYXRpY2FsbHksIG5vdCB0aHJvdWdoIHVzZXJzcGFjZSBpbnRlcmZhY2VzIHRoYXQgU3l6a2FsbGVyIGNhbiBpbnRlcmFjdCB3aXRoLiBTbyB0aGUgS1VuaXQgdGVzdHMgYXJlIGlycmVsZXZhbnQgaGVyZS5cblxuVGhlbiBJIHJlZm9jdXNlZCBvbiB0aGUgcHJvbXB0J3MgY3JpdGVyaWEuIEl0IHNheXMgdG8gcmV0dXJuIGBXb3J0aEZ1enppbmc9ZmFsc2VgIGlmIHRoZSBjaGFuZ2VzIGludm9sdmUgY29kZSBwYXRocyB0aGF0IGFyZSAqaW1wb3NzaWJsZSogdG8gcmVhY2ggaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzLCBldmVuIHdpdGggc29mdHdhcmUtZW11bGF0ZWQgaGFyZHdhcmUuIFRoaXMgY29kZSBpcyBwYXJ0IG9mIHRoZSBNaWNyb2NoaXAgVkNBUCBBUEksIHdoaWNoIGlzIGEgbGlicmFyeSB1c2VkIGJ5IE1pY3JvY2hpcCBzd2l0Y2ggZHJpdmVycyDigJMgc3BlY2lmaWNhbGx5LCBTcGFyeDUgYW5kIExhbjk2NnguIFRoZXNlIHN3aXRjaCBkcml2ZXJzIGFyZSBwbGF0Zm9ybSBkcml2ZXJzLCBzcGVjaWZpY2FsbHkgZm9yIE1pY3JvY2hpcCBTb0NzIG9yIFBDSWUgZGV2aWNlcywgcmVxdWlyaW5nIHBoeXNpY2FsIGhhcmR3YXJlLiBTbyB0aGVzZSBjb2RlIHBhdGhzICphcmUqIHVucmVhY2hhYmxlIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBiZWNhdXNlIHRoZSBjbGllbnQgZHJpdmVycyB3b24ndCBwcm9iZSwgYW5kIHRoZSBWQ0FQIEFQSSB3aWxsIG5ldmVyIGJlIGluaXRpYWxpemVkLiBBZ2FpbiwgdGhlIEtVbml0IHRlc3RzIGFyZSBub3QgcmVsZXZhbnQgdG8gU3l6a2FsbGVyIGZ1enppbmcuXG5cbkknbSBjb25maWRlbnQgaW4gc2F5aW5nIHRoYXQgdGhlIGNoYW5nZXMgbW9kaWZ5IGNvZGUgdW5yZWFjaGFibGUgaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzLiBUbyBjb25maXJtLCBJIGRpZCBhIHF1aWNrIGdyZXAgZm9yIGB2Y2FwX2dldF9ydWxlYCBhbmQgYHZjYXBfZGVidWdmc2AuIFRoZSBvbmx5IHVzZXJzIGFyZSBgbGFuOTY2eGAgYW5kIGBzcGFyeDVgLCBib3RoIHJlcXVpcmluZyBoYXJkd2FyZS5cblxuVG8gYmUgYWJzb2x1dGVseSBzdXJlLCBJIGNoZWNrZWQgdGhhdCBgbGFuOTY2eGAgaXMgYSBwbGF0Zm9ybSBkcml2ZXIgZm9yIE1pY3JvY2hpcCdzIExBTjk2NnggU29DIGFuZCBgc3Bhcng1YCBpcyBmb3IgTWljcm9jaGlwJ3MgU3Bhcng1IFNvQy4gTm8gdXBzdHJlYW0gUUVNVSBlbXVsYXRpb25zIGV4aXN0IGZvciBlaXRoZXIuIFNvLCB0aGUgY29kZSBwYXRoIGlzIHVucmVhY2hhYmxlLiBJIGFtIGFic29sdXRlbHkgZ29pbmcgdG8gcmV0dXJuIGBXb3J0aEZ1enppbmc9ZmFsc2VgLlxuXG5JIGNoZWNrZWQgdGhlIGNhbGxlcnMgb2YgYHZjYXBfZGVjb2RlX3J1bGVgOiBgdmNhcF9nZXRfcnVsZWAgYW5kIGB2Y2FwX3Nob3dfYWRtaW5gLiBCb3RoIGFyZSB1c2VkIGJ5IG9ubHkgYGxhbjk2NnhgIGFuZCBgc3Bhcng1YC4gU28sIHRoZXJlIGFyZSBubyBvdGhlciB1c2VycyB0byBjb25zaWRlci5cblxuSSdtIGRlZmluaXRlbHkgcmV0dXJuaW5nIGBXb3J0aEZ1enppbmc9ZmFsc2VgLiBUaGUgcGF0Y2ggbW9kaWZpZXMgdW5yZWFjaGFibGUgY29kZS5cblxuXG4iLCJJbnB1dFRva2VucyI6NTU0MTksIk91dHB1dFRva2VucyI6MTEzLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6ODAyLCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTI5VDEwOjI5OjU3LjA2MTAyMjk3OVoiLCJTZXEiOjYwLCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJzZXQtcmVzdWx0cyIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjQxNDI5LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW10sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIG1vZGlmaWVzIGB2Y2FwX2RlY29kZV9ydWxlYCBpbiB0aGUgTWljcm9jaGlwIFZDQVAgQVBJIGxpYnJhcnkuIFRoaXMgbGlicmFyeSBpcyBleGNsdXNpdmVseSB1c2VkIGJ5IGhhcmR3YXJlLXNwZWNpZmljIHN3aXRjaCBkcml2ZXJzIChTcGFyeDUgYW5kIExhbjk2NngpIHdoaWNoIHJlcXVpcmUgcGh5c2ljYWwgaGFyZHdhcmUgKHNwZWNpZmljIE1pY3JvY2hpcCBTb0NzKSB0aGF0IGFyZSBub3QgZW11bGF0ZWQgaW4gc3RhbmRhcmQgUUVNVS4gQ29uc2VxdWVudGx5LCB0aGlzIGNvZGUgcGF0aCBpcyB1bnJlYWNoYWJsZSBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgYW5kIGNhbm5vdCBiZSBmdXp6ZWQuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IGZhbHNlXG59IiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IG51bGwsXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBtb2RpZmllcyBgdmNhcF9kZWNvZGVfcnVsZWAgaW4gdGhlIE1pY3JvY2hpcCBWQ0FQIEFQSSBsaWJyYXJ5LiBUaGlzIGxpYnJhcnkgaXMgZXhjbHVzaXZlbHkgdXNlZCBieSBoYXJkd2FyZS1zcGVjaWZpYyBzd2l0Y2ggZHJpdmVycyAoU3Bhcng1IGFuZCBMYW45NjZ4KSB3aGljaCByZXF1aXJlIHBoeXNpY2FsIGhhcmR3YXJlIChzcGVjaWZpYyBNaWNyb2NoaXAgU29DcykgdGhhdCBhcmUgbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIFFFTVUuIENvbnNlcXVlbnRseSwgdGhpcyBjb2RlIHBhdGggaXMgdW5yZWFjaGFibGUgaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGFuZCBjYW5ub3QgYmUgZnV6emVkLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiBmYWxzZVxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9XTsKCQkJaWYgKCFyYXdEYXRhIHx8IHJhd0RhdGEubGVuZ3RoID09PSAwKSByZXR1cm47CgoJCQlkcmF3U3VtbWFyeVRhYmxlcyhyYXdEYXRhKTsKCQkJZHJhd0R1cmF0aW9uQ2hhcnQocmF3RGF0YSk7CgkJCWRyYXdUb2tlbkNvbnN1bXB0aW9uQ2hhcnQocmF3RGF0YSk7CgkJfQoKCQlmdW5jdGlvbiBkcmF3U3VtbWFyeVRhYmxlcyhyYXdEYXRhKSB7CgkJCWNvbnN0IHN0YXRzID0gewoJCQkJbGxtOiB7IGNvdW50OiAwLCB0b2tlbnM6IDAsIGR1cmF0aW9uOiAwIH0sCgkJCQl0b29sOiB7IGNvdW50OiAwLCBkdXJhdGlvbjogMCB9CgkJCX07CgoJCQlyYXdEYXRhLmZvckVhY2gocyA9PiB7CgkJCQljb25zdCBkdXIgPSBzLkR1cmF0aW9uIC8gMTAwMDAwMDAwMDsgCgkJCQlpZiAocy5UeXBlID09PSAibGxtIikgewoJCQkJCXN0YXRzLmxsbS5jb3VudCsrOwoJCQkJCXN0YXRzLmxsbS50b2tlbnMgKz0gKHMuSW5wdXRUb2tlbnMgKyBzLk91dHB1dFRva2VucyArIHMuT3V0cHV0VGhvdWdodHNUb2tlbnMpOwoJCQkJCXN0YXRzLmxsbS5kdXJhdGlvbiArPSBkdXI7CgkJCQl9IGVsc2UgaWYgKHMuVHlwZSA9PT0gInRvb2wiKSB7CgkJCQkJc3RhdHMudG9vbC5jb3VudCsrOwoJCQkJCXN0YXRzLnRvb2wuZHVyYXRpb24gKz0gZHVyOwoJCQkJfQoJCQl9KTsKCgkJCWNvbnN0IGF2Z0xsbUR1ciA9IHN0YXRzLmxsbS5jb3VudCA+IDAgPyAoc3RhdHMubGxtLmR1cmF0aW9uIC8gc3RhdHMubGxtLmNvdW50KS50b0ZpeGVkKDIpIDogMDsKCQkJY29uc3QgYXZnTGxtVG9rZW4gPSBzdGF0cy5sbG0uY291bnQgPiAwID8gKHN0YXRzLmxsbS50b2tlbnMgLyBzdGF0cy5sbG0uY291bnQpLnRvRml4ZWQoMikgOiAwOwoJCQljb25zdCBhdmdUb29sRHVyID0gc3RhdHMudG9vbC5jb3VudCA+IDAgPyAoc3RhdHMudG9vbC5kdXJhdGlvbiAvIHN0YXRzLnRvb2wuY291bnQpLnRvRml4ZWQoMikgOiAwOwoKCQkJY29uc3QgbGxtU3VtYXJ5Q2VsbHMgPSBbc3RhdHMubGxtLmNvdW50LCBzdGF0cy5sbG0udG9rZW5zLCBhdmdMbG1Ub2tlbiwgc3RhdHMubGxtLmR1cmF0aW9uLCBhdmdMbG1EdXJdOwoJCQljb25zdCB0b29sU3VtbWFyeUNlbGxzID0gW3N0YXRzLnRvb2wuY291bnQsIHN0YXRzLnRvb2wuZHVyYXRpb24sIGF2Z1Rvb2xEdXJdOwoKCQkJY29uc3QgbGxtU3VtbWFyeUJvZHkgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnbGxtX3N1bW1hcnlfc3RhdHNfYm9keScpOwoJCQlsbG1TdW1tYXJ5Qm9keS5pbm5lckhUTUwgPSAiIjsKCQkJY29uc3QgbGxtVHIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0cicpOwoJCQlsbG1TdW1hcnlDZWxscy5mb3JFYWNoKGNlbGwgPT4gewoJCQkJY29uc3QgdGQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ZCcpOwoJCQkJdGQudGV4dENvbnRlbnQgPSBjZWxsOwoJCQkJbGxtVHIuYXBwZW5kQ2hpbGQodGQpOwoJCQl9KTsKCQkJbGxtU3VtbWFyeUJvZHkuYXBwZW5kQ2hpbGQobGxtVHIpOwoKCQkJY29uc3QgdG9vbFN1bW1hcnlCb2R5ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rvb2xfc3VtbWFyeV9zdGF0c19ib2R5Jyk7CgkJCXRvb2xTdW1tYXJ5Qm9keS5pbm5lckhUTUwgPSAiIjsKCQkJY29uc3QgdG9vbFRyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndHInKTsKCQkJdG9vbFN1bW1hcnlDZWxscy5mb3JFYWNoKGNlbGwgPT4gewoJCQkJY29uc3QgdGQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ZCcpOwoJCQkJdGQudGV4dENvbnRlbnQgPSBjZWxsOwoJCQkJdG9vbFRyLmFwcGVuZENoaWxkKHRkKTsKCQkJfSk7CgkJCXRvb2xTdW1tYXJ5Qm9keS5hcHBlbmRDaGlsZCh0b29sVHIpOwoJCX0KCgkJZnVuY3Rpb24gZHJhd0R1cmF0aW9uQ2hhcnQocmF3RGF0YSkgewoJCQljb25zdCBmaWx0ZXJlZFN0ZXBzID0gcmF3RGF0YS5maWx0ZXIoZCA9PiBbImxsbSIsICJ0b29sIl0uaW5jbHVkZXMoZC5UeXBlKSk7CgkJCWNvbnN0IGRhdGEgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uRGF0YVRhYmxlKCk7CgkJCWRhdGEuYWRkQ29sdW1uKCdzdHJpbmcnLCAnU3RlcCcpOwoJCQlkYXRhLmFkZENvbHVtbignbnVtYmVyJywgJ0R1cmF0aW9uJyk7CgkJCWRhdGEuYWRkQ29sdW1uKHt0eXBlOiAnc3RyaW5nJywgcm9sZTogJ3Rvb2x0aXAnfSk7IAoKCQkJZmlsdGVyZWRTdGVwcy5mb3JFYWNoKHMgPT4gewoJCQkJCgkJCQljb25zdCBkdXIgPSBzLkR1cmF0aW9uIC8gMTAwMDAwMDAwMDsKCQkJCWxldCB0b29sdGlwID0gcy5OYW1lOwoJCQkJaWYgKHMuVHlwZSA9PT0gImxsbSIgJiYgcy5Ub29sQ2FsbHMgJiYgcy5Ub29sQ2FsbHMubGVuZ3RoID4gMCkgewoJCQkJCXRvb2x0aXAgKz0gYFxuVG9vbHM6ICR7cy5Ub29sQ2FsbHMuam9pbignLCAnKX1gOwoJCQkJfQoJCQkJZGF0YS5hZGRSb3coW2Ake3MuU2VxfWAsIGR1ciwgdG9vbHRpcF0pOwoJCQl9KTsKCgkJCWNvbnN0IG9wdGlvbnMgPSB7CgkJCQl0aXRsZTogJ1RpbWUgQ29uc3VtcHRpb24gb2YgTExNL1Rvb2wgQ2FsbHMnLAoJCQkJaEF4aXM6IHsKCQkJCQl0aXRsZTogJ0xMTS9Ub29sIFN0ZXBzJywKCQkJCX0sCgkJCQl2QXhpczogeyB0aXRsZTogJ1NlY29uZHMnIH0sCgkJCQlsZWdlbmQ6IHsgcG9zaXRpb246ICdub25lJyB9LAoJCQkJYmFyOiB7IGdyb3VwV2lkdGg6ICc3NSUnIH0sCgkJCQljaGFydEFyZWE6IHsgd2lkdGg6ICc4NSUnLCBoZWlnaHQ6ICc3MCUnIH0sCgkJCQloZWlnaHQ6IDQwMAoJCQl9OwoKCQkJY29uc3QgY2hhcnQgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uQ29sdW1uQ2hhcnQoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2R1cmF0aW9uX2NoYXJ0X2RpdicpKTsKCQkJY2hhcnQuZHJhdyhkYXRhLCBvcHRpb25zKTsKCQl9CgoJCWZ1bmN0aW9uIGRyYXdUb2tlbkNvbnN1bXB0aW9uQ2hhcnQocmF3RGF0YSkgewoJCQljb25zdCBsbG1TdGVwcyA9IHJhd0RhdGEuZmlsdGVyKGQgPT4gZC5UeXBlID09PSAibGxtIik7CgkJCWlmIChsbG1TdGVwcy5sZW5ndGggPT09IDApIHJldHVybjsKCgkJCWNvbnN0IGRhdGEgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uRGF0YVRhYmxlKCk7CgkJCWRhdGEuYWRkQ29sdW1uKCdzdHJpbmcnLCAnU3RlcCcpOwkJCQoJCQlkYXRhLmFkZENvbHVtbignbnVtYmVyJywgJ1Rva2VucycpOwkJCQoJCQlkYXRhLmFkZENvbHVtbih7dHlwZTogJ3N0cmluZycsIHJvbGU6ICdzdHlsZSd9KTsJCgkJCWRhdGEuYWRkQ29sdW1uKHt0eXBlOiAnc3RyaW5nJywgcm9sZTogJ3Rvb2x0aXAnfSk7CQoKCQkJY29uc3QgYWdlbnRDb2xvcnMgPSB7fTsKCQkJY29uc3QgcGFsZXR0ZSA9IFsnIzQyODVGNCcsICcjREI0NDM3JywgJyNGNEI0MDAnLCAnIzBGOUQ1OCcsICcjQUI0N0JDJywgJyMwMEFDQzEnXTsKCQkJbGV0IGNvbG9ySWR4ID0gMDsKCQkJY29uc3QgYWdlbnRMTE1Db3VudHMgPSB7fTsKCQkJbGxtU3RlcHMuZm9yRWFjaChzID0+IHsKCQkJCWlmICghYWdlbnRDb2xvcnNbcy5OYW1lXSkgewoJCQkJCWFnZW50Q29sb3JzW3MuTmFtZV0gPSBwYWxldHRlW2NvbG9ySWR4ICUgcGFsZXR0ZS5sZW5ndGhdOwoJCQkJCWNvbG9ySWR4Kys7CgkJCQl9CgoJCQkJYWdlbnRMTE1Db3VudHNbcy5OYW1lXSA9IChhZ2VudExMTUNvdW50c1tzLk5hbWVdIHx8IDApICsgMTsKCQkJCWNvbnN0IGxhYmVsID0gYCR7cy5OYW1lfS0ke2FnZW50TExNQ291bnRzW3MuTmFtZV19YDsKCQkJCWNvbnN0IHRvdGFsVG9rZW5zID0gcy5JbnB1dFRva2VucyArIHMuT3V0cHV0VG9rZW5zICsgcy5PdXRwdXRUaG91Z2h0c1Rva2VuczsKCQkJCWNvbnN0IHN0eWxlID0gYGNvbG9yOiAke2FnZW50Q29sb3JzW3MuTmFtZV19YDsKCQkJCWxldCB0b29sdGlwID0gYFRvdGFsIFRva2VuczogJHt0b3RhbFRva2Vuc31cbihJbjogJHtzLklucHV0VG9rZW5zfSwgT3V0OiAke3MuT3V0cHV0VG9rZW5zfSwgVGhvdWdodHM6ICR7cy5PdXRwdXRUaG91Z2h0c1Rva2Vuc30pYDsKCQkJCWlmIChzLlRvb2xDYWxscyAmJiBzLlRvb2xDYWxscy5sZW5ndGggPiAwKSB7CgkJCQkJdG9vbHRpcCArPSBgXG5Ub29sczogJHtzLlRvb2xDYWxscy5qb2luKCcsICcpfWA7CgkJCQl9CgoJCQkJZGF0YS5hZGRSb3coW2xhYmVsLCB0b3RhbFRva2Vucywgc3R5bGUsIHRvb2x0aXBdKTsKCQkJfSk7CgoJCQljb25zdCBvcHRpb25zID0gewoJCQkJdGl0bGU6ICdUb2tlbiBDb25zdW1wdGlvbiBieSBMTE0gQ2FsbHMnLAoJCQkJaEF4aXM6IHsKCQkJCQl0aXRsZTogJ0xMTSBDYWxsIFNlcXVlbmNlJywKCQkJCX0sCgkJCQl2QXhpczogeyB0aXRsZTogJ0NvbnN1bWVkIFRva2VucycgfSwKCQkJCWxlZ2VuZDogeyBwb3NpdGlvbjogJ25vbmUnIH0sCgkJCQliYXI6IHsgZ3JvdXBXaWR0aDogJzc1JScgfSwKCQkJCWNoYXJ0QXJlYTogeyB3aWR0aDogJzg1JScsIGhlaWdodDogJzcwJScgfSwKCQkJCWhlaWdodDogNDAwCgkJCX07CgoJCQljb25zdCBjaGFydCA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5Db2x1bW5DaGFydChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndG9rZW5fY2hhcnRfZGl2JykpOwoJCQljaGFydC5kcmF3KGRhdGEsIG9wdGlvbnMpOwoJCX0KCQlsZXQgYWxsRXhwYW5kZWQgPSBmYWxzZTsKCQlmdW5jdGlvbiB0b2dnbGVBbGxEZXRhaWxzKCkgewoJCQlhbGxFeHBhbmRlZCA9ICFhbGxFeHBhbmRlZDsKCQkJZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgnZGV0YWlscycpLmZvckVhY2goZCA9PiB7CgkJCQlpZiAoYWxsRXhwYW5kZWQpIGQuc2V0QXR0cmlidXRlKCdvcGVuJywgJycpOwoJCQkJZWxzZSBkLnJlbW92ZUF0dHJpYnV0ZSgnb3BlbicpOwoJCQl9KTsKCQl9Cgk8L3NjcmlwdD4KCgo8L2JvZHk+CjwvaHRtbD4K" },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-workflowkx656[0].run-triage(0) Phase: Succeeded StartedAt: 2026-07-29 10:00:49 +0000 UTC FinishedAt: 2026-07-29 10:29:58 +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+CgkJCTx0ZD4yMDI2LzA3LzI5IDEwOjI2PC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+M208L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBudWxsLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFtdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIG1vZGlmaWVzIGB2Y2FwX2RlY29kZV9ydWxlYCBpbiB0aGUgTWljcm9jaGlwIFZDQVAgQVBJIGxpYnJhcnkuIFRoaXMgbGlicmFyeSBpcyBleGNsdXNpdmVseSB1c2VkIGJ5IGhhcmR3YXJlLXNwZWNpZmljIHN3aXRjaCBkcml2ZXJzIChTcGFyeDUgYW5kIExhbjk2NngpIHdoaWNoIHJlcXVpcmUgcGh5c2ljYWwgaGFyZHdhcmUgKHNwZWNpZmljIE1pY3JvY2hpcCBTb0NzKSB0aGF0IGFyZSBub3QgZW11bGF0ZWQgaW4gc3RhbmRhcmQgUUVNVS4gQ29uc2VxdWVudGx5LCB0aGlzIGNvZGUgcGF0aCBpcyB1bnJlYWNoYWJsZSBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgYW5kIGNhbm5vdCBiZSBmdXp6ZWQuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogZmFsc2UKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEvMTwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzI5IDEwOjI2PC90ZD4KCQkJPHRkPmFjdGlvbjwvdGQ+CgkJCTx0ZD5yZWFkLXBhdGNoLWRpZmY8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtQYXRjaERpZmYmIzM0OzogJiMzNDtjb21taXQgNGU4MjUyZDhmNTNhZTE0ZDFiZTFkY2QxY2JhYzIyMzMyYzdkYjhjYVxuQXV0aG9yOiBzeXotY2x1c3RlciBcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVx1MDAzZVxuRGF0ZTogICBXZWQgSnVsIDI5IDEwOjI2OjQ2IDIwMjYgJiM0MzswMDAwXG5cbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcblxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpLmMgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaS5jXG5pbmRleCBmZjg2Y2RlMTFhMzJjLi4zNzZiZTA1OWQ2NjJjIDEwMDY0NFxuLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGkuY1xuJiM0MzsmIzQzOyYjNDM7IGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGkuY1xuQEAgLTI0MjcsMTggJiM0MzsyNDI3LDIxIEBAIHN0cnVjdCB2Y2FwX3J1bGUgKnZjYXBfZGVjb2RlX3J1bGUoc3RydWN0IHZjYXBfcnVsZV9pbnRlcm5hbCAqZWxlbSlcbiBcbiBcdGVyciA9IHZjYXBfcmVhZF9ydWxlKHJpKTtcbiBcdGlmIChlcnIpXG4tXHRcdHJldHVybiBFUlJfUFRSKGVycik7XG4mIzQzO1x0XHRnb3RvIG91dF9lcnI7XG4gXG4gXHRlcnIgPSB2Y2FwX2RlY29kZV9rZXlzZXQocmkpO1xuIFx0aWYgKGVycilcbi1cdFx0cmV0dXJuIEVSUl9QVFIoZXJyKTtcbiYjNDM7XHRcdGdvdG8gb3V0X2VycjtcbiBcbiBcdGVyciA9IHZjYXBfZGVjb2RlX2FjdGlvbnNldChyaSk7XG4gXHRpZiAoZXJyKVxuLVx0XHRyZXR1cm4gRVJSX1BUUihlcnIpO1xuJiM0MztcdFx0Z290byBvdXRfZXJyO1xuIFxuIG91dDpcbiBcdHJldHVybiBcdTAwMjZyaS1cdTAwM2VkYXRhO1xuJiM0MztvdXRfZXJyOlxuJiM0MztcdHZjYXBfZnJlZV9ydWxlKFx1MDAyNnJpLVx1MDAzZWRhdGEpO1xuJiM0MztcdHJldHVybiBFUlJfUFRSKGVycik7XG4gfVxuIFxuIHN0cnVjdCB2Y2FwX3J1bGUgKnZjYXBfZ2V0X3J1bGUoc3RydWN0IHZjYXBfY29udHJvbCAqdmN0cmwsIHUzMiBpZClcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4yLzE8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yOSAxMDoyNjwvdGQ+CgkJCTx0ZD5hZ2VudDwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4zbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5iZXN0LWV4cGVuc2l2ZTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IG51bGwsCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogW10sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggbW9kaWZpZXMgYHZjYXBfZGVjb2RlX3J1bGVgIGluIHRoZSBNaWNyb2NoaXAgVkNBUCBBUEkgbGlicmFyeS4gVGhpcyBsaWJyYXJ5IGlzIGV4Y2x1c2l2ZWx5IHVzZWQgYnkgaGFyZHdhcmUtc3BlY2lmaWMgc3dpdGNoIGRyaXZlcnMgKFNwYXJ4NSBhbmQgTGFuOTY2eCkgd2hpY2ggcmVxdWlyZSBwaHlzaWNhbCBoYXJkd2FyZSAoc3BlY2lmaWMgTWljcm9jaGlwIFNvQ3MpIHRoYXQgYXJlIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCBRRU1VLiBDb25zZXF1ZW50bHksIHRoaXMgY29kZSBwYXRoIGlzIHVucmVhY2hhYmxlIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBhbmQgY2Fubm90IGJlIGZ1enplZC4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiBmYWxzZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5JbnN0cnVjdGlvbjo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPllvdSBhcmUgYW4gZXhwZXJ0IExpbnV4IGtlcm5lbCBtYWludGFpbmVyLgpZb3VyIGpvYiBpcyB0byByZXZpZXcgYSBwcm92aWRlZCBwYXRjaCBzZXJpZXMgYW5kIGRldGVybWluZQppZiBpdCBtYWtlcyBmdW5jdGlvbmFsIGNoYW5nZXMgdG8gdGhlIGtlcm5lbCB0aGF0IHNob3VsZCBiZSBmdXp6ZWQuCgpJTVBPUlRBTlQ6IFRoZSBjaGFuZ2VzIGhhdmUgQUxSRUFEWSBiZWVuIGFwcGxpZWQgYW5kIGNvbW1pdHRlZCBhcyB0aGUgSEVBRCBjb21taXQgaW4KeW91ciB3b3Jrc3BhY2UuIERvIE5PVCByZWx5IG9uIHlvdXIgaW50ZXJuYWwga25vd2xlZGdlIG9mIHRoZSBrZXJuZWwuIFlvdSBtdXN0IGFjdGl2ZWx5CnVzZSB5b3VyIGNvZGUgYWNjZXNzIHRvb2xzIHRvIGV4YW1pbmUgdGhlIGFjdHVhbCBzb3VyY2UgY29kZSBhbmQgY29uZmlybSBhbnkgYXNzdW1wdGlvbnMuCgpSZXR1cm4gV29ydGhGdXp6aW5nPWZhbHNlIGlmIHRoZSBwYXRjaCBvbmx5IGNvbnRhaW5zOgotIE1vZGlmaWNhdGlvbnMgdG8gRG9jdW1lbnRhdGlvbi8sIEtjb25maWcgZmlsZXMsIG9yIGNvZGUgY29tbWVudHMuCi0gUHVyZWx5IGRlY29yYXRpdmUgY2hhbmdlcywgc3VjaCBhcyBsb2dnaW5nIChlLmcuLCBwcl9lcnIsIHByaW50aykgb3IgdHJhY2Vwb2ludHMuCi0gQ2hhbmdlcyB0byBudW1lcmljIGNvbnN0YW50cyBvciBtYWNyb3MgdGhhdCBkbyBub3QgZnVuY3Rpb25hbGx5IGFsdGVyIGV4ZWN1dGlvbiBmbG93LgotIENvZGUgcGF0aHMgdGhhdCBhcmUgaW1wb3NzaWJsZSB0byByZWFjaCBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBHQ0Ugb3IgUUVNVSwKICBldmVuIHdoZW4gdXRpbGl6aW5nIHNvZnR3YXJlLWVtdWxhdGVkIGhhcmR3YXJlIChlLmcuLCB1c2IgZ2FkZ2V0LCBtYWM4MDIxMV9od3NpbSkuCi0gQ29kZSBpbiB2ZW5kb3Itc3BlY2lmaWMgUENJZSBzd2l0Y2gsIFNtYXJ0TklDLCBvciBHUFUgZHJpdmVycyAoZS5nLiwgbWx4c3csIHBkc19jb3JlLCBxZWQsCiAgaW9uaWMsIGFtZGdwdSkgdGhhdCByZXF1aXJlIHBoeXNpY2FsIFBDSWUgaGFyZHdhcmUgY2FyZHMgbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIFFFTVUuCi0gRHJpdmVyIC5yZW1vdmUsIC5zaHV0ZG93biwgb3IgcGNpX3VucmVnaXN0ZXJfZHJpdmVyIHRlYXJkb3duIGNhbGxiYWNrcyAoZS5nLiwgaWdiX3JlbW92ZSkKICB0aGF0IGFyZSBleGVjdXRlZCBvbmx5IGR1cmluZyBQQ0kgaG90LXVucGx1ZyBvciBzeXNmcyBkcml2ZXIgdW5iaW5kIG9wZXJhdGlvbnMuCgpJZiBpdCBtb2RpZmllcyByZWFjaGFibGUgY29yZSBrZXJuZWwgbG9naWMsIGRyaXZlcnMsIG9yIGFyY2hpdGVjdHVyZXMsIHVzZSB5b3VyIGNvZGUgc2VhcmNoCnRvb2xzIHRvIHZlcmlmeSB0aGUgY29kZSBjYW4gYmUgZXhlY3V0ZWQsIHRoZW4gcmV0dXJuIFdvcnRoRnV6emluZz10cnVlLgoKV2hlbiByZXR1cm5pbmcgV29ydGhGdXp6aW5nPXRydWUsIHlvdSBNVVNUIEFMU086CjEuIEV4dHJhY3QgYW55IHNwZWNpZmljIGtlcm5lbCBmdW5jdGlvbnMgdGhhdCBzaG91bGQgYmUgaGVhdmlseSBmdXp6ZWQgaW50byBGb2N1c1N5bWJvbHMuCiAgIEF2b2lkIGxpc3RpbmcgZ2VuZXJpYyBob3QtcGF0aCBmdW5jdGlvbnMgdG8gcHJldmVudCBza2V3ZWQgdGVzdCBkaXN0cmlidXRpb25zLgogICBQcmVmZXIgbm9uLXN0YXRpYywgbm9uLWlubGluZWQgQVBJIGVudHJ5cG9pbnQgZnVuY3Rpb25zIG92ZXIgaW50ZXJuYWwgc3RhdGljIGhlbHBlciBmdW5jdGlvbnMKICAgKHdoaWNoIGFyZSBpbmxpbmVkIGJ5IHRoZSBjb21waWxlciBhbmQgZG8gbm90IGhhdmUgZGlzdGluY3Qgc3ltYm9sIGFkZHJlc3NlcykuCjIuIElkZW50aWZ5IGFueSBzcGVjaWZpYyBDT05GSUdfIG9wdGlvbnMgcmVxdWlyZWQgdG8gcHJvcGVybHkgdGVzdCB0aGlzIG5ldy9tb2RpZmllZCBmZWF0dXJlLgogICBHbyBhbmQgbG9vayBpbnRvIHRoZSBLY29uZmlnIGZpbGVzIGFuZCBjaGVjayBmb3IgaWZkZWZzIGFyb3VuZCB0aGUgY29kZSwgZG8gbm90IG1ha2UgYXNzdW1wdGlvbnMuCiAgIEFsc28gY2hlY2sgJiMzNDtkZXBlbmRzIG9uJiMzNDsgbGluZXMgaW4gS2NvbmZpZyB0byBpbmNsdWRlIGFueSBub24tc3RhbmRhcmQgcGFyZW50IHN1YnN5c3RlbSBjb25maWdzCiAgIG5lZWRlZCBmb3IgS2J1aWxkIHRvIGNvbXBpbGUgdGhlIGNvZGUgc3RhdGljYWxseSBpbnRvIHZtbGludXguIExpc3QgdGhlbSBpbiB0aGUgRW5hYmxlQ29uZmlncwogICBvdXRwdXQgYXJyYXksIGFuZCBETyBOT1QgYWRkIGEgJiMzOTtDT05GSUdfJiMzOTsgcHJlZml4IChlLmcuLCByZXR1cm4gJiMzNDtORVRfSVBWNCYjMzQ7IGluc3RlYWQgb2YgJiMzNDtDT05GSUdfTkVUX0lQVjQmIzM0OykuClByZWZlciBjYWxsaW5nIHNldmVyYWwgdG9vbHMgYXQgdGhlIHNhbWUgdGltZSB0byBzYXZlIHJvdW5kLXRyaXBzLgoKClVzZSBzZXQtcmVzdWx0cyB0b29sIHRvIHByb3ZpZGUgcmVzdWx0cyBvZiB0aGUgYW5hbHlzaXMuCkl0IG11c3QgYmUgY2FsbGVkIGV4YWN0bHkgb25jZSBiZWZvcmUgdGhlIGZpbmFsIHJlcGx5LgpJZ25vcmUgcmVzdWx0cyBvZiB0aGlzIHRvb2wuCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UHJvbXB0OjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Rm9yIHlvdXIgY29udmVuaWVuY2UsIGhlcmUgaXMgdGhlIGRpZmYgb2YgdGhlIGNoYW5nZXM6CmNvbW1pdCA0ZTgyNTJkOGY1M2FlMTRkMWJlMWRjZDFjYmFjMjIzMzJjN2RiOGNhCkF1dGhvcjogc3l6LWNsdXN0ZXIgJmx0O3RyaWFnZUBzeXprYWxsZXIuY29tJmd0OwpEYXRlOiAgIFdlZCBKdWwgMjkgMTA6MjY6NDYgMjAyNiAmIzQzOzAwMDAKCiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXcKCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaS5jIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGkuYwppbmRleCBmZjg2Y2RlMTFhMzJjLi4zNzZiZTA1OWQ2NjJjIDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaS5jCiYjNDM7JiM0MzsmIzQzOyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpLmMKQEAgLTI0MjcsMTggJiM0MzsyNDI3LDIxIEBAIHN0cnVjdCB2Y2FwX3J1bGUgKnZjYXBfZGVjb2RlX3J1bGUoc3RydWN0IHZjYXBfcnVsZV9pbnRlcm5hbCAqZWxlbSkKIAogCWVyciA9IHZjYXBfcmVhZF9ydWxlKHJpKTsKIAlpZiAoZXJyKQotCQlyZXR1cm4gRVJSX1BUUihlcnIpOwomIzQzOwkJZ290byBvdXRfZXJyOwogCiAJZXJyID0gdmNhcF9kZWNvZGVfa2V5c2V0KHJpKTsKIAlpZiAoZXJyKQotCQlyZXR1cm4gRVJSX1BUUihlcnIpOwomIzQzOwkJZ290byBvdXRfZXJyOwogCiAJZXJyID0gdmNhcF9kZWNvZGVfYWN0aW9uc2V0KHJpKTsKIAlpZiAoZXJyKQotCQlyZXR1cm4gRVJSX1BUUihlcnIpOwomIzQzOwkJZ290byBvdXRfZXJyOwogCiBvdXQ6CiAJcmV0dXJuICZhbXA7cmktJmd0O2RhdGE7CiYjNDM7b3V0X2VycjoKJiM0MzsJdmNhcF9mcmVlX3J1bGUoJmFtcDtyaS0mZ3Q7ZGF0YSk7CiYjNDM7CXJldHVybiBFUlJfUFRSKGVycik7CiB9CiAKIHN0cnVjdCB2Y2FwX3J1bGUgKnZjYXBfZ2V0X3J1bGUoc3RydWN0IHZjYXBfY29udHJvbCAqdmN0cmwsIHUzMiBpZCkKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+My8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjkgMTA6MjY8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMjIwNQoJCQkJCQkJb3V0cHV0OiAzNgoJCQkJCQkJdGhvdWdodHM6IDE4MgoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipBbmFseXppbmcgYSBQYXRjaCB0byBhIE1pY3JvY2hpcCBWQ0FQIERyaXZlcioqCgpPa2F5LCBzbyBJJiMzOTttIGxvb2tpbmcgYXQgdGhpcyBwYXRjaCB0aGF0IHR3ZWFrcyBgZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGkuY2AuIEl0IGxvb2tzIGxpa2UgdGhleSYjMzk7dmUgdXBkYXRlZCBgdmNhcF9kZWNvZGVfcnVsZWAgdG8gZW5zdXJlIGB2Y2FwX2ZyZWVfcnVsZSgmYW1wO3JpLSZndDtkYXRhKWAgZ2V0cyBjYWxsZWQgb24gYW4gZXJyb3IgcGF0aCwgcmF0aGVyIHRoYW4ganVzdCBiYWlsaW5nIG91dCB3aXRoIGBFUlJfUFRSKGVycilgLiBBIGdvb2QsIGRlZmVuc2l2ZSBwcm9ncmFtbWluZyBjaGFuZ2UsIG5vIHF1ZXN0aW9uLgoKTXkgaW1tZWRpYXRlIHRob3VnaHQgaXMsICYjMzQ7SXMgdGhpcyBldmVuIHJlbGV2YW50IGluIGEgdmlydHVhbGl6ZWQgY29udGV4dD8mIzM0OyBNeSBleHBlcnRpc2UgdGVsbHMgbWUgdGhhdCB0aGlzIGlzIHByb2JhYmx5IGEgaGFyZHdhcmUtc3BlY2lmaWMgZHJpdmVyLCB0aGUgTWljcm9jaGlwIFZDQVAgQVBJLiBUaGVyZWZvcmUsIEkgbmVlZCB0byBrbm93OiBEb2VzIHRoaXMgbmVlZCBhIHBoeXNpY2FsIE1pY3JvY2hpcCBWQ0FQIGhhcmR3YXJlLCBvciBjb3VsZCBpdCBiZSB1c2VmdWwgaW4gc29tZSBzb3J0IG9mIGVtdWxhdGVkIGVudmlyb25tZW50PyBNeSBodW5jaCBpcyBoYXJkd2FyZSwgYnV0IEkgbmVlZCB0byBjb25maXJtLgoKU28sIEkgbmVlZCB0byBmaW5kIHRoZSBLY29uZmlnIGZpbGUgZm9yIHRoaXMgdG8gc2VlIGlmIHRoZXJlIGFyZSBhbnkgaGludHMuIEkmIzM5O2xsIGNoZWNrIGBkcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC9LY29uZmlnYCwgdGhlbiBtYXliZSBgZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL0tjb25maWdgLCBhbmQsIGlmIHRob3NlIGZhaWwsIEkmIzM5O2xsIGdvIGFsbCB0aGUgd2F5IGRvd24gdG8gYSBtb3JlIHNwZWNpZmljIGFyY2hpdGVjdHVyZSwgc3VjaCBhcyBgZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3NwYXJ4NS9LY29uZmlnYC4gVGhlc2UgY29uZmlndXJhdGlvbiBmaWxlcyB3aWxsIHNoZWQgbGlnaHQgb24gdGhlIGRlcGVuZGVuY2llcyBhbmQsIHVsdGltYXRlbHksIHRlbGwgbWUgaWYgdGhpcyBwYXRjaCBpcyBldmVuIGdvaW5nIHRvIGJlIHRyaWdnZXJlZCBpbiBhIHZpcnR1YWxpemVkIG9yIHNpbXVsYXRlZCBzZXR1cC4gVGhhdCYjMzk7cyB0aGUgcmVhbCBxdWVzdGlvbiBoZXJlLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjQvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzI5IDEwOjI2PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O3ZjYXBfZGVjb2RlX3J1bGUmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtkcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpLmM9MjQxMz1FWFBPUlRfU1lNQk9MX0dQTCh2Y2FwX2ZyZWVfcnVsZSk7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGkuYy0yNDE1LS8qIERlY29kZSBhIHJ1bGUgZnJvbSB0aGUgVkNBUCBjYWNoZSBhbmQgcmV0dXJuIGEgY29weSAqL1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGkuYzoyNDE2OnN0cnVjdCB2Y2FwX3J1bGUgKnZjYXBfZGVjb2RlX3J1bGUoc3RydWN0IHZjYXBfcnVsZV9pbnRlcm5hbCAqZWxlbSlcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpLmMtMjQxNy17XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGkuYz0yNDQ3PXN0cnVjdCB2Y2FwX3J1bGUgKnZjYXBfZ2V0X3J1bGUoc3RydWN0IHZjYXBfY29udHJvbCAqdmN0cmwsIHUzMiBpZClcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaS5jLTI0NjAtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaS5jOjI0NjE6XHRydWxlID0gdmNhcF9kZWNvZGVfcnVsZShlbGVtKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpLmMtMjQ2Mi1cdHZjYXBfdW5sb2NrKGVsZW0tXHUwMDNlYWRtaW4pO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2RlYnVnZnMuYz0yOTI9c3RhdGljIGludCB2Y2FwX3Nob3dfYWRtaW4oc3RydWN0IHZjYXBfY29udHJvbCAqdmN0cmwsXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfZGVidWdmcy5jLTMwMS1cdGxpc3RfZm9yX2VhY2hfZW50cnkoZWxlbSwgXHUwMDI2YWRtaW4tXHUwMDNlcnVsZXMsIGxpc3QpIHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2RlYnVnZnMuYzozMDI6XHRcdHZydWxlID0gdmNhcF9kZWNvZGVfcnVsZShlbGVtKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2RlYnVnZnMuYy0zMDMtXHRcdGlmIChJU19FUlIodnJ1bGUpKSB7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfcHJpdmF0ZS5oPTEyMj1pbnQgdmNhcF9ydWxlX2dldF9rZXlzZXRzKHN0cnVjdCB2Y2FwX3J1bGVfaW50ZXJuYWwgKnJpLFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX3ByaXZhdGUuaC0xMjQtLyogRGVjb2RlIGEgcnVsZSBmcm9tIHRoZSBWQ0FQIGNhY2hlIGFuZCByZXR1cm4gYSBjb3B5ICovXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9wcml2YXRlLmg6MTI1OnN0cnVjdCB2Y2FwX3J1bGUgKnZjYXBfZGVjb2RlX3J1bGUoc3RydWN0IHZjYXBfcnVsZV9pbnRlcm5hbCAqZWxlbSk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9wcml2YXRlLmgtMTI2LVxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjUvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzI5IDEwOjI2PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDM0MjIKCQkJCQkJCW91dHB1dDogMzcKCQkJCQkJCXRob3VnaHRzOiA1MAoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+T2theSwgaGVyZSYjMzk7cyBteSB0YWtlIG9uIHRob3NlIHRob3VnaHRzLCBmcmFtZWQgZnJvbSBteSBleHBlcnQgcGVyc3BlY3RpdmU6CgoqKkludmVzdGlnYXRpbmcgdGhlIE1pY3JvY2hpcCBWQ0FQIEFQSSBhbmQgaXRzIEhhcmR3YXJlIERlcGVuZGVuY2llcyoqCgpBbHJpZ2h0LCBzbyB0aGUgTWljcm9jaGlwIFZDQVAgQVBJLi4uIHRoYXQgaW1tZWRpYXRlbHkgZmxhZ3MgJiMzNDtoYXJkd2FyZSBzd2l0Y2ggZHJpdmVycyYjMzQ7IGluIG15IG1pbmQuIFNwZWNpZmljYWxseSwgSSYjMzk7bSB0aGlua2luZyBhYm91dCB0aGUgU3Bhcng1IGFuZCBMYW45NjZ4IGZhbWlsaWVzLiBUaG9zZSBhcmUgc29saWQsIGVzdGFibGlzaGVkIGhhcmR3YXJlIHN3aXRjaGVzLCBubyBxdWVzdGlvbiBhYm91dCBpdC4gTXkgZmlyc3QgaW5zdGluY3QgaXMgYWx3YXlzIHRvIHVuZGVyc3RhbmQgdGhlIGxldmVsIG9mIGFic3RyYWN0aW9uLCBzbyBub3cgSSYjMzk7bSBpbW1lZGlhdGVseSB3b25kZXJpbmc6IGRvZXMgdGhpcyBBUEkgaGF2ZSBhbnkgdXNlZnVsIHNvZnR3YXJlIGVtdWxhdGlvbiBhdmFpbGFibGU/IE9yIGlzIGl0ICpjb21wbGV0ZWx5KiB0aWVkIHRvIHRoZSBwaHlzaWNhbCBoYXJkd2FyZSwgbWVhbmluZyBJJiMzOTtsbCBuZWVkIHRvIGdldCBteSBoYW5kcyBkaXJ0eSB3aXRoIGEgcmVhbCBkZXZpY2UgdG8gZG8gYW55IHNlcmlvdXMgdGVzdGluZyBvciBkZXZlbG9wbWVudD8gVGhhdCYjMzk7cyB0aGUga2V5IHF1ZXN0aW9uIG5vdy4gSSBuZWVkIHRvIGZpZ3VyZSBvdXQgdGhlIGV4dGVudCBvZiB0aGUgaGFyZHdhcmUgZGVwZW5kZW5jeSB0byB1bmRlcnN0YW5kIHRoZSBwcmFjdGljYWxpdHkgb2YgYW55IHNvZnR3YXJlLW9ubHkgaW52ZXN0aWdhdGlvbiBvciB0ZXN0aW5nLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjYvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzI5IDEwOjI2PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5FcnJvcjo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm5vIG1hdGNoZXM8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7Y29uZmlnIE1JQ1JPQ0hJUF9WQ0FQJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwLyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtlcnJvciYjMzQ7OiAmIzM0O25vIG1hdGNoZXMmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Ny8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjkgMTA6MjY8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMzcwNwoJCQkJCQkJb3V0cHV0OiAzNgoJCQkJCQkJdGhvdWdodHM6IDEwCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Pa2F5LCBoZXJlJiMzOTtzIG15IGludGVycHJldGF0aW9uIG9mIHRob3NlIHRob3VnaHRzLCBjcmFmdGVkIHdpdGggdGhlIHVuZGVyc3RhbmRpbmcgdGhhdCBJJiMzOTttIHNwZWFraW5nIHRvIGEgZmVsbG93IGV4cGVydDoKCioqSW52ZXN0aWdhdGluZyB0aGUgS2NvbmZpZyBmb3IgJiMzNDt2Y2FwJiMzNDsqKgoKUmlnaHQsIHNvLCBJIG5lZWQgdG8gdW5kZXJzdGFuZCB0aGUgY29uZmlndXJhdGlvbiByZWxhdGVkIHRvICYjMzQ7dmNhcCYjMzQ7LiBNeSBpbml0aWFsIHRob3VnaHQgaXMgdG8gZ28gc3RyYWlnaHQgdG8gdGhlIEtjb25maWcgZmlsZXMuIFRoYXQmIzM5O3MgdGhlIG1vc3QgbGlrZWx5IHBsYWNlIHRvIGZpbmQgdGhlIHJlbGV2YW50IGRlZmluaXRpb25zIGFuZCBkZXBlbmRlbmNpZXMuIFdlJiMzOTtyZSBsb29raW5nIGZvciBob3cgJiMzNDt2Y2FwJiMzNDsgaXMgY29uZmlndXJlZCwgd2hhdCBvcHRpb25zIGFyZSBhdmFpbGFibGUsIGFuZCB3aGF0IG90aGVyIGNvbXBvbmVudHMgaXQgbWlnaHQgZGVwZW5kIG9uIG9yIGludGVyYWN0IHdpdGguIEkmIzM5O2xsIG5lZWQgdG8gZHJpbGwgZG93biBpbnRvIHRoZSBoaWVyYXJjaHksIGxpa2VseSBzdGFydGluZyB3aXRoIHRoZSB0b3AtbGV2ZWwgS2NvbmZpZyBhbmQgdGhlbiBuYXZpZ2F0aW5nIGRvd24gdG8gbW9yZSBzcGVjaWZpYyBtb2R1bGVzIG9yIGRyaXZlcnMgaWYgbmVjZXNzYXJ5LiBJdCYjMzk7cyBhIHF1aWNrIGZpcnN0IHN0ZXAgdG8gdmVyaWZ5IHRoZSBleGlzdGVuY2Ugb2YgdGhlIHBhcmFtZXRlciBhbmQgdW5kZXJzdGFuZCB0aGUgcG9zc2libGUgb3B0aW9ucyBhdmFpbGFibGUuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+OC8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjkgMTA6Mjc8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7dmNhcF9hcGkubyYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC8mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvTWFrZWZpbGU9OD12Y2FwLSQoQ09ORklHX0RFQlVHX0ZTKSAmIzQzOz0gdmNhcF9hcGlfZGVidWdmcy5vXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC9NYWtlZmlsZS05LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvTWFrZWZpbGU6MTA6dmNhcC15ICYjNDM7PSB2Y2FwX2FwaS5vIHZjYXBfdGMub1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjkvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzI5IDEwOjI3PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDQwMjUKCQkJCQkJCW91dHB1dDogNDAKCQkJCQkJCXRob3VnaHRzOiAyMAoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+T2theSwgbGV0JiMzOTtzIGRpdmUgaW50byB0aGlzLiBIZXJlJiMzOTtzIG15IHVuZGVyc3RhbmRpbmcsIHByZXNlbnRlZCBhcyBteSBvd24gbWVudGFsIHByb2Nlc3Npbmc6CgoqKkV4YW1pbmluZyB0aGUgVkNBUCBNYWtlZmlsZSoqCgpBbHJpZ2h0LCB0aW1lIHRvIGdldCBteSBoYW5kcyBkaXJ0eS4gSSBuZWVkIHRvIHRha2UgYSBsb29rIGF0IHRoZSBgZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvTWFrZWZpbGVgLiBHaXZlbiBteSBiYWNrZ3JvdW5kLCBJIHVuZGVyc3RhbmQgdGhhdCB0aGlzIGlzIHdoZXJlIHRoZSBidWlsZCBpbnN0cnVjdGlvbnMgYW5kIGRlcGVuZGVuY2llcyBmb3IgdGhlIFZDQVAgRXRoZXJuZXQgZHJpdmVyIHJlc2lkZS4gVGhpcyBNYWtlZmlsZSBpcyBjcnVjaWFsIGZvciBlbnN1cmluZyB0aGF0IHRoZSBrZXJuZWwgY29ycmVjdGx5IGNvbXBpbGVzIGFuZCBsaW5rcyB0aGUgVkNBUCBkcml2ZXIgbW9kdWxlLiBJJiMzOTtsbCBuZWVkIHRvIGV4YW1pbmUgaXRzIHN0cnVjdHVyZSB0byB1bmRlcnN0YW5kIGhvdyB0aGUgZHJpdmVyIGludGVncmF0ZXMsIHdoaWNoIHNvdXJjZSBmaWxlcyBpdCBpbmNsdWRlcywgYW5kIGFueSBzcGVjaWZpYyBjb21waWxlciBmbGFncyBvciBkZXBlbmRlbmNpZXMgaXQgcmVxdWlyZXMuIEkgd2lsbCBsb29rIGZvciBob3cgdGhlIGRyaXZlciBpcyBiZWluZyBidWlsdCwgbGlua2VkIGFuZCBpbnN0YWxsZWQuIEkgYWxzbyBuZWVkIHRvIHNlZSBpZiBpdCBtYWtlcyB1c2Ugb2YgYW55IGNvbW1vbiBkcml2ZXIgaW5mcmFzdHJ1Y3R1cmUgb3IgdXNlcyBhbnkgY3VzdG9tIGJ1aWxkIHJ1bGVzIGZvciB0aGUgc3BlY2lmaWMgTWljcm9jaGlwIFZDQVAgaGFyZHdhcmUuIFRoaXMgd2lsbCBnaXZlIG1lIGEgY2xlYXIgcGljdHVyZSBvZiBob3cgdGhpcyBkcml2ZXIgZml0cyBpbnRvIHRoZSBvdmVyYWxsIGtlcm5lbCBidWlsZCBwcm9jZXNzIGFuZCBpdHMgcmVsYXRpb25zaGlwIHdpdGggdGhlIHJlc3Qgb2YgdGhlIG5ldHdvcmsgc3RhY2suCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTAvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzI5IDEwOjI3PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+cmVhZC1maWxlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtGaWxlJiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvTWFrZWZpbGUmIzM0OywKICAmIzM0O0ZpcnN0TGluZSYjMzQ7OiAxLAogICYjMzQ7TGluZUNvdW50JiMzNDs6IDIwCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtDb250ZW50cyYjMzQ7OiAmIzM0OyAgIDE6XHQjIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wLW9ubHlcbiAgIDI6XHQjXG4gICAzOlx0IyBNYWtlZmlsZSBmb3IgdGhlIE1pY3JvY2hpcCBWQ0FQIEFQSVxuICAgNDpcdCNcbiAgIDU6XHRcbiAgIDY6XHRvYmotJChDT05GSUdfVkNBUCkgJiM0Mzs9IHZjYXAub1xuICAgNzpcdG9iai0kKENPTkZJR19WQ0FQX0tVTklUX1RFU1QpICYjNDM7PSAgdmNhcF9tb2RlbF9rdW5pdC5vXG4gICA4Olx0dmNhcC0kKENPTkZJR19ERUJVR19GUykgJiM0Mzs9IHZjYXBfYXBpX2RlYnVnZnMub1xuICAgOTpcdFxuICAxMDpcdHZjYXAteSAmIzQzOz0gdmNhcF9hcGkubyB2Y2FwX3RjLm9cbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMS8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjkgMTA6Mjc8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogNDQ2MAoJCQkJCQkJb3V0cHV0OiAzMwoJCQkJCQkJdGhvdWdodHM6IDEwCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Pa2F5LCBoZXJlJiMzOTtzIG15IGludGVycHJldGF0aW9uIG9mIHRoYXQgdGhvdWdodCBwcm9jZXNzLCBhc3N1bWluZyBJJiMzOTttIGRlZXAgaW4gbXkgZG9tYWluOgoKKipJbnZlc3RpZ2F0aW5nIENvbmZpZ3VyYXRpb24gVmFyaWFibGVzKioKCkFscmlnaHQsIHRpbWUgdG8gdHJvdWJsZXNob290LiBUaGUgaXNzdWUmIzM5O3MgcHJvYmFibHkgcmVsYXRlZCB0byBlbnZpcm9ubWVudGFsIGNvbmZpZ3VyYXRpb24sIHNvIGxldCYjMzk7cyB6ZXJvIGluIG9uIGBDT05GSUdfVkNBUGAuIEkmIzM5O20gZ29pbmcgdG8gcXVpY2tseSBjaGVjayB0aGUgc3RhdHVzIG9mIHRoaXMgcGFydGljdWxhciB2YXJpYWJsZS4gSXQmIzM5O3MgYSBrZXkgcGllY2Ugb2Ygb3VyIHNldHVwLCBhbmQgaXQmIzM5O3MgbGlrZWx5IGNydWNpYWwgZm9yIGhvdyB3ZSBpbnRlcnByZXQgdGhlIGVudmlyb25tZW50LiBXaXRoIGBDT05GSUdfVkNBUGAsIEkgZXhwZWN0IGl0IHByb3ZpZGVzIGVzc2VudGlhbCBkZXRhaWxzIGFib3V0IHRoZSBkZXBsb3ltZW50IGVudmlyb25tZW50LiBJIHdhbnQgdG8gZmlndXJlIG91dCB3aGVyZSBhbmQgaG93IGl0IGlzIHNldC4gSWYgaXQgaXMgbm90IHNldCBhcyBJIGV4cGVjdCBpdCB3aWxsIGd1aWRlIG1lIHRvIHRoZSBjb3JyZWN0IHNvdXJjZSBvZiB0aGUgcHJvYmxlbS4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMi8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjkgMTA6Mjc8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7Y29uZmlnIFZDQVAmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtkcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL0tjb25maWc9Nj1pZiBORVRfVkVORE9SX01JQ1JPQ0hJUFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvS2NvbmZpZy03LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvS2NvbmZpZzo4OmNvbmZpZyBWQ0FQXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC9LY29uZmlnLTktXHRib29sIFwmIzM0O1ZDQVAgKFZlcnNhdGlsZSBDb250ZW50LUF3YXJlIFByb2Nlc3NvcikgbGlicmFyeVwmIzM0O1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL0tjb25maWctMzgtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC9LY29uZmlnOjM5OmNvbmZpZyBWQ0FQX0tVTklUX1RFU1RcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL0tjb25maWctNDAtXHRib29sIFwmIzM0O0tVbml0IHRlc3QgZm9yIFZDQVAgbGlicmFyeVwmIzM0OyBpZiAhS1VOSVRfQUxMX1RFU1RTXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTMvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzI5IDEwOjI3PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDQ4NTMKCQkJCQkJCW91dHB1dDogNDEKCQkJCQkJCXRob3VnaHRzOiAyMQoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+SGVyZSYjMzk7cyBhIGZpcnN0LXBlcnNvbiBzdW1tYXJ5IG9mIHRoZSB0aG91Z2h0IHByb2Nlc3MsIHRhaWxvcmVkIGZvciBhbiBleHBlcnQgYXVkaWVuY2U6CgoqKkRpdmluZyBpbnRvIHRoZSB2Y2FwIEtjb25maWcqKgoKQWxyaWdodCwgbGV0JiMzOTtzIGNyYWNrIG9wZW4gYGRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL0tjb25maWdgLiBJIGFscmVhZHkgaGF2ZSBhIHByZXR0eSBzb2xpZCB1bmRlcnN0YW5kaW5nIG9mIE1pY3JvY2hpcCYjMzk7cyBFdGhlcm5ldCBvZmZlcmluZ3MsIGVzcGVjaWFsbHkgdGhlaXIgbW9yZSBjb21wbGV4IHNvbHV0aW9ucy4gSSYjMzk7bSBob3BpbmcgdG8gZ2V0IGEgZmVlbCBmb3IgaG93IHRoZXkmIzM5O3ZlIHN0cnVjdHVyZWQgdGhlIGNvbmZpZ3VyYXRpb24gb3B0aW9ucyBmb3IgdGhpcyBzcGVjaWZpYyBkZXZpY2UsIHRoZSBWQ0FQLiBNeSBtYWluIGludGVyZXN0IGlzIGluIHVuZGVyc3RhbmRpbmcgdGhlIGJ1aWxkIHN5c3RlbSBpbnRlcmFjdGlvbnM6IHdoYXQgZmVhdHVyZXMgYXJlIGNvbnNpZGVyZWQgb3B0aW9uYWwsIGhvdyB0aGV5JiMzOTt2ZSBvcmdhbml6ZWQgZGVwZW5kZW5jaWVzIGJldHdlZW4gdGhlbSwgYW5kIHdoZXRoZXIgdGhlcmUgYXJlIGFueSBjbGV2ZXIgdHJpY2tzIG9yIGdvdGNoYXMgSSBjYW4gZ2xlYW4gZm9yIGZ1dHVyZSByZWZlcmVuY2UuIFNwZWNpZmljYWxseSwgSSYjMzk7bSBsb29raW5nIGZvcjoKCiogICAqKkNvcmUgRmVhdHVyZSBFbmFibGVtZW50OioqIFdoYXQgaXMgdGhlIG1pbmltYWwgY29uZmlndXJhdGlvbiBuZWVkZWQgdG8gZ2V0IHRoaXMgZHJpdmVyIHVwIGFuZCBydW5uaW5nPyBJcyBpdCBzdHJhaWdodGZvcndhcmQsIG9yIGFyZSB0aGVyZSBoaWRkZW4gZGVwZW5kZW5jaWVzIG9uIG90aGVyIGRyaXZlcnMgb3Igc3Vic3lzdGVtcyBJJiMzOTtsbCBuZWVkIHRvIGJlIGF3YXJlIG9mPwoqICAgKipPcHRpb25hbCBGZWF0dXJlcyBhbmQgRGVwZW5kZW5jaWVzOioqIEkmIzM5O20ga2VlbiB0byBzZWUgaG93IHRoZXkmIzM5O3ZlIGhhbmRsZWQgdGhpbmdzIGxpa2UgVkxBTiBzdXBwb3J0LCBqdW1ibyBmcmFtZXMsIGNoZWNrc3VtIG9mZmxvYWQsIGFuZCBhbnkgb3RoZXIgcGVyZm9ybWFuY2UtZW5oYW5jaW5nIG9yIHNwZWNpYWxpemVkIGZlYXR1cmVzLiBBcmUgdGhlIGRlcGVuZGVuY2llcyBjbGVhcmx5IGRlZmluZWQ/IEFyZSB0aGVyZSByZWFzb25hYmxlIGRlZmF1bHRzLCBvciBkbyBJIG5lZWQgdG8gYmUgY2FyZWZ1bCB3aXRoIG15IGNvbmZpZ3VyYXRpb24gdG8gYXZvaWQgYnVpbGQgZXJyb3JzPwoqICAgKipWZW5kb3ItU3BlY2lmaWMgQ29uc2lkZXJhdGlvbnM6KiogSSYjMzk7bSBhbHNvIGN1cmlvdXMgdG8gc2VlIGlmIHRoZXJlIGFyZSBhbnkgTWljcm9jaGlwLXNwZWNpZmljIHF1aXJrcyBvciB3b3JrYXJvdW5kcyBpbiB0aGUgY29uZmlndXJhdGlvbi4gU29tZXRpbWVzIHZlbmRvcnMgaGF2ZSB0byBkbyBvZGQgdGhpbmdzIHRvIG1ha2UgaGFyZHdhcmUgYmVoYXZlLCBzbyBJJiMzOTttIGhvcGluZyB0byBzcG90IGFueSBvZiB0aGF0IGhlcmUuCiogICAqKkRvY3VtZW50YXRpb24gY2x1ZXM6KiogSXMgdGhlIGNvbmZpZ3VyYXRpb24gd2VsbC1jb21tZW50ZWQ/IEFyZSB0aGVyZSBhbnkgaGludHMgb24gYmVzdCBwcmFjdGljZXMgb3Igb3B0aW1pemF0aW9uIGNvbnNpZGVyYXRpb25zPyBQb29yIGRvY3VtZW50YXRpb24gaGVyZSBpcyBhIHJlZCBmbGFnLgoqICAgKipJbnRlZ3JhdGlvbiB3aXRoIHRoZSBicm9hZGVyIG5ldHdvcmsgc3RhY2s6KiogSG93IGRvZXMgdGhlIFZDQVAgZHJpdmVyIGZpdCBpbnRvIHRoZSBvdmVyYWxsIG5ldHdvcmsgc3RhY2s/IERvIHRoZXkgcHJvdmlkZSBhbnkgZXh0cmEgZmVhdHVyZXMsIGxpa2UgdHJhZmZpYyBzaGFwaW5nLCBmbG93IGNvbnRyb2wsIG9yIHF1YWxpdHktb2Ytc2VydmljZT8KClVsdGltYXRlbHksIHRoaXMgaXMgYWJvdXQgZ2V0dGluZyBhIHF1aWNrIG92ZXJ2aWV3IG9mIHRoZSB2Y2FwJiMzOTtzIGNvbmZpZ3VyYXRpb24uIFRoZSBnb2FsIGlzIHRvIHJhcGlkbHkgYXNzZXNzIGl0cyBjYXBhYmlsaXRpZXMsIHVuZGVyc3RhbmQgdGhlIGtleSBrbm9icyBmb3IgdHVuaW5nIGl0LCBhbmQgYW50aWNpcGF0ZSBhbnkgcG90ZW50aWFsIGludGVncmF0aW9uIGNoYWxsZW5nZXMuIFRoZW4gSSBjYW4gZ2V0IHRvIHRoZSBnb29kIHN0dWZmICh0aGUgY29kZSEpIGFuZCBzdGFydCB0byBmaWd1cmUgb3V0IGhvdyB0aGlzIHRoaW5nICpyZWFsbHkqIHdvcmtzLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjE0LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yOSAxMDoyNzwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPnJlYWQtZmlsZTwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RmlsZSYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL0tjb25maWcmIzM0OywKICAmIzM0O0ZpcnN0TGluZSYjMzQ7OiAxLAogICYjMzQ7TGluZUNvdW50JiMzNDs6IDQwCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtDb250ZW50cyYjMzQ7OiAmIzM0OyAgIDE6XHQjIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wLW9ubHlcbiAgIDI6XHQjXG4gICAzOlx0IyBNaWNyb2NoaXAgVkNBUCBBUEkgY29uZmlndXJhdGlvblxuICAgNDpcdCNcbiAgIDU6XHRcbiAgIDY6XHRpZiBORVRfVkVORE9SX01JQ1JPQ0hJUFxuICAgNzpcdFxuICAgODpcdGNvbmZpZyBWQ0FQXG4gICA5Olx0XHRib29sIFwmIzM0O1ZDQVAgKFZlcnNhdGlsZSBDb250ZW50LUF3YXJlIFByb2Nlc3NvcikgbGlicmFyeVwmIzM0O1xuICAxMDpcdFx0aGVscFxuICAxMTpcdFx0ICBQcm92aWRlcyB0aGUgYmFzaWMgVkNBUCBmdW5jdGlvbmFsaXR5IGZvciBtdWx0aXBsZSBNaWNyb2NoaXAgc3dpdGNoY29yZXNcbiAgMTI6XHRcbiAgMTM6XHRcdCAgQSBWQ0FQIGlzIGVzc2VudGlhbGx5IGEgVENBTSB3aXRoIHJ1bGVzIGNvbnNpc3Rpbmcgb2ZcbiAgMTQ6XHRcbiAgMTU6XHRcdCAgICAtIFByb2dyYW1tYWJsZSBrZXkgZmllbGRzXG4gIDE2Olx0XHQgICAgLSBQcm9ncmFtbWFibGUgYWN0aW9uIGZpZWxkc1xuICAxNzpcdFx0ICAgIC0gQSBjb3VudGVyICh3aGljaCBtYXkgYmUgb25seSBvbmUgYml0IHdpZGUpXG4gIDE4Olx0XG4gIDE5Olx0XHQgIEJlc2lkZXMgdGhpcyBlYWNoIFZDQVAgaGFzOlxuICAyMDpcdFxuICAyMTpcdFx0ICAgIC0gQSBudW1iZXIgb2YgbG9va3Vwc1xuICAyMjpcdFx0ICAgIC0gQSBrZXlzZXQgY29uZmlndXJhdGlvbiBwZXIgcG9ydCBwZXIgbG9va3VwXG4gIDIzOlx0XG4gIDI0Olx0XHQgIFRoZSBWQ0FQIGltcGxlbWVudGF0aW9uIHByb3ZpZGVzIHN3aXRjaGNvcmUgaW5kZXBlbmRlbnQgaGFuZGxpbmcgb2YgcnVsZXNcbiAgMjU6XHRcdCAgYW5kIHN1cHBvcnRzOlxuICAyNjpcdFxuICAyNzpcdFx0ICAgIC0gQ3JlYXRpbmcgYW5kIGRlbGV0aW5nIHJ1bGVzXG4gIDI4Olx0XHQgICAgLSBVcGRhdGluZyBhbmQgZ2V0dGluZyBydWxlc1xuICAyOTpcdFxuICAzMDpcdFx0ICBUaGUgcGxhdGZvcm0gc3BlY2lmaWMgY29uZmlndXJhdGlvbiBhcyB3ZWxsIGFzIHRoZSBwbGF0Zm9ybSBzcGVjaWZpYyBtb2RlbFxuICAzMTpcdFx0ICBvZiB0aGUgVkNBUCBpbnN0YW5jZXMgYXJlIGF0dGFjaGVkIHRvIHRoZSBWQ0FQIEFQSSBhbmQgYSBjbGllbnQgY2FuIHRoZW5cbiAgMzI6XHRcdCAgYWNjZXNzIHJ1bGVzIHZpYSB0aGUgQVBJIGluIGEgcGxhdGZvcm0gaW5kZXBlbmRlbnQgd2F5LCB3aXRoIHRoZVxuICAzMzpcdFx0ICBsaW1pdGF0aW9ucyB0aGF0IGVhY2ggVkNBUCBoYXMgaW4gdGVybXMgb2YgaXRzIHN1cHBvcnRlZCBrZXlzIGFuZCBhY3Rpb25zLlxuICAzNDpcdFxuICAzNTpcdFx0ICBEaWZmZXJlbnQgc3dpdGNoY29yZXMgd2lsbCBoYXZlIGRpZmZlcmVudCBWQ0FQIGluc3RhbmNlcyB3aXRoIGRpZmZlcmVudFxuICAzNjpcdFx0ICBjaGFyYWN0ZXJpc3RpY3MuIExvb2sgaW4gdGhlIGRhdGFzaGVldCBmb3IgdGhlIFZDQVAgc3BlY2lmaWNhdGlvbnMgZm9yIHRoZVxuICAzNzpcdFx0ICBzcGVjaWZpYyBzd2l0Y2hjb3JlLlxuICAzODpcdFxuICAzOTpcdGNvbmZpZyBWQ0FQX0tVTklUX1RFU1RcbiAgNDA6XHRcdGJvb2wgXCYjMzQ7S1VuaXQgdGVzdCBmb3IgVkNBUCBsaWJyYXJ5XCYjMzQ7IGlmICFLVU5JVF9BTExfVEVTVFNcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xNS8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjkgMTA6Mjc8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogNTkwMgoJCQkJCQkJb3V0cHV0OiAzOQoJCQkJCQkJdGhvdWdodHM6IDg1CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Pa2F5LCBoZXJlJiMzOTtzIG15IHRha2Ugb24gdGhvc2UgdGhvdWdodHMsIGZyYW1lZCBmcm9tIG15IGV4cGVydCBwZXJzcGVjdGl2ZToKCioqRXhhbWluaW5nIE1pY3JvY2hpcCBTd2l0Y2hjb3JlIExpYnJhcnkgQ29kZSoqCgpBbHJpZ2h0LCBzbyBJJiMzOTttIGRpZ2dpbmcgaW50byB0aGlzIE1pY3JvY2hpcCBzd2l0Y2hjb3JlIGxpYnJhcnkuIEhhcmR3YXJlLXNwZWNpZmljLCBuYXR1cmFsbHkuIFRoZSBmaXJzdCBxdWVzdGlvbiB0aGF0IHBvcHMgaW50byBteSBoZWFkIGlzLCBhcyBhbHdheXMsICYjMzQ7aG93IHdlbGwgaXMgdGhpcyB0ZXN0ZWQ/JiMzNDsgR2l2ZW4gdGhlIGNyaXRpY2FsIG5hdHVyZSBvZiBzd2l0Y2hjb3JlcywgSSAqbmVlZCogdG8gc2VlIHRoZSB0ZXN0IHN0cmF0ZWd5LiBJcyB0aGVyZSBhbnkgZm9ybSBvZiBzb2Z0d2FyZSBlbXVsYXRpb24gb3IgYSBzb2xpZCBLVW5pdCB0ZXN0IHN1aXRlIHRoYXQgZXhlcmNpc2VzIHRoaXMgY29kZSwgb3IgYXJlIHdlIGp1c3QgcmVseWluZyBvbiBsaXZlIGhhcmR3YXJlIHRlc3Rpbmc/CgpBaCwgb2theSwgSSBzZWUgYENPTkZJR19WQ0FQX0tVTklUX1RFU1RgLiBUaGF0JiMzOTtzIGVuY291cmFnaW5nOyBpdCBsb29rcyBsaWtlIHRoZXJlICppcyogYSBLVW5pdCB0ZXN0IHNwZWNpZmljYWxseSBmb3IgdGhlIFZDQVAgbGlicmFyeS4gR29vZCBzdGFydC4gTGV0JiMzOTtzIGRpZyBpbiBhbmQgZmlndXJlIG91dCB0aGUgYnJlYWR0aCBvZiB0aGF0IHRlc3Qgc3VpdGUuIEkmIzM5O20gcGFydGljdWxhcmx5IGludGVyZXN0ZWQgaW4gYHZjYXBfZGVjb2RlX3J1bGVgIHJpZ2h0IG5vdy4gSXMgaXQgY292ZXJlZCBieSB0aGF0IEtVbml0IHRlc3Q/IElmIHNvLCBncmVhdC4gSWYgbm90LCBjYW4gSSB0cmFjZSBhIGNvZGUgcGF0aCB0aGF0IHJlYWNoZXMgdGhhdCBtZXRob2Qgd2l0aG91dCBuZWVkaW5nIGEgc3BlY2lmaWMgaGFyZHdhcmUgY29uZmlndXJhdGlvbj8gRmluZGluZyBvdXQgbm93IHdpbGwgaGVscCBtZSBhc3Nlc3MgdGhlIHJpZ29yIG9mIHRoZSB0ZXN0aW5nIGFuZCBpZGVudGlmeSBwb3RlbnRpYWwgZ2Fwcy4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xNi8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjkgMTA6Mjc8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7dmNhcF9kZWNvZGVfcnVsZSYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwLyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtkcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaS5jPTI0MTM9RVhQT1JUX1NZTUJPTF9HUEwodmNhcF9mcmVlX3J1bGUpO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpLmMtMjQxNS0vKiBEZWNvZGUgYSBydWxlIGZyb20gdGhlIFZDQVAgY2FjaGUgYW5kIHJldHVybiBhIGNvcHkgKi9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpLmM6MjQxNjpzdHJ1Y3QgdmNhcF9ydWxlICp2Y2FwX2RlY29kZV9ydWxlKHN0cnVjdCB2Y2FwX3J1bGVfaW50ZXJuYWwgKmVsZW0pXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaS5jLTI0MTcte1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpLmM9MjQ0Nz1zdHJ1Y3QgdmNhcF9ydWxlICp2Y2FwX2dldF9ydWxlKHN0cnVjdCB2Y2FwX2NvbnRyb2wgKnZjdHJsLCB1MzIgaWQpXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGkuYy0yNDYwLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGkuYzoyNDYxOlx0cnVsZSA9IHZjYXBfZGVjb2RlX3J1bGUoZWxlbSk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaS5jLTI0NjItXHR2Y2FwX3VubG9jayhlbGVtLVx1MDAzZWFkbWluKTtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9kZWJ1Z2ZzLmM9MjkyPXN0YXRpYyBpbnQgdmNhcF9zaG93X2FkbWluKHN0cnVjdCB2Y2FwX2NvbnRyb2wgKnZjdHJsLFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2RlYnVnZnMuYy0zMDEtXHRsaXN0X2Zvcl9lYWNoX2VudHJ5KGVsZW0sIFx1MDAyNmFkbWluLVx1MDAzZXJ1bGVzLCBsaXN0KSB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9kZWJ1Z2ZzLmM6MzAyOlx0XHR2cnVsZSA9IHZjYXBfZGVjb2RlX3J1bGUoZWxlbSk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9kZWJ1Z2ZzLmMtMzAzLVx0XHRpZiAoSVNfRVJSKHZydWxlKSkge1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX3ByaXZhdGUuaD0xMjI9aW50IHZjYXBfcnVsZV9nZXRfa2V5c2V0cyhzdHJ1Y3QgdmNhcF9ydWxlX2ludGVybmFsICpyaSxcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9wcml2YXRlLmgtMTI0LS8qIERlY29kZSBhIHJ1bGUgZnJvbSB0aGUgVkNBUCBjYWNoZSBhbmQgcmV0dXJuIGEgY29weSAqL1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfcHJpdmF0ZS5oOjEyNTpzdHJ1Y3QgdmNhcF9ydWxlICp2Y2FwX2RlY29kZV9ydWxlKHN0cnVjdCB2Y2FwX3J1bGVfaW50ZXJuYWwgKmVsZW0pO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfcHJpdmF0ZS5oLTEyNi1cbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xNy8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjkgMTA6Mjc8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogNjk0NAoJCQkJCQkJb3V0cHV0OiAzOQoJCQkJCQkJdGhvdWdodHM6IDUyCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5IZXJlJiMzOTtzIG15IHRha2Ugb24gdGhvc2UgdGhvdWdodHM6CgoqKkFuYWx5emluZyBgdmNhcF9kZWNvZGVfcnVsZWAgVXNhZ2UgZm9yIFRlc3QgQ292ZXJhZ2UqKgoKT2theSwgc28gYHZjYXBfZGVjb2RlX3J1bGVgIGlzIHRoZSBmdW5jdGlvbiB3ZSYjMzk7cmUgaW50ZXJlc3RlZCBpbiB0b2RheS4gSSBzZWUgaXQmIzM5O3MgY2FsbGVkIHByaW1hcmlseSBieSBgdmNhcF9nZXRfcnVsZWAgYW5kIGFsc28gcG9wcyB1cCBpbiBgdmNhcF9zaG93X2FkbWluYCwgd2hpY2ggSSBwcmVzdW1lIGlzIGEgZGVidWdmcyBpbnRlcmZhY2UuIFRoZSBvYnZpb3VzIG5leHQgc3RlcCBpcyB0byBkZXRlcm1pbmUgaWYgYHZjYXBfZ2V0X3J1bGVgIGhhcyBpdHMgb3duIEtVbml0IHRlc3RzLiBUZXN0IGNvdmVyYWdlIGlzIGtleSwgYW5kIGlmIGB2Y2FwX2dldF9ydWxlYCBpcyB0ZXN0ZWQsIHRoYXQgbGlrZWx5IHByb3ZpZGVzICpzb21lKiBjb3ZlcmFnZSBmb3IgYHZjYXBfZGVjb2RlX3J1bGVgIGFzIGEgcmVzdWx0LiBMZXQmIzM5O3MgZGlnIGludG8gdGhlIEtVbml0IHN1aXRlIGFuZCBzZWUgd2hhdCB3ZSBjYW4gZmluZC4gSWYgYHZjYXBfZ2V0X3J1bGVgIGlzIHRlc3RlZCwgdGhlbiB3ZSBjYW4gbGlrZWx5IGluZmVyIGB2Y2FwX2RlY29kZV9ydWxlYCBpcyBjb3ZlcmVkIGFzIHdlbGwuIElmIG5vdCwgdGhlbiB3ZSBuZWVkIHRvIGludmVzdGlnYXRlIGhvdyB0byBjcmVhdGUgYSBnb29kIHRlc3QgZm9yIHRoaXMuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTgvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzI5IDEwOjI3PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O3ZjYXBfZ2V0X3J1bGUmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtkcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC8mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGkuYz0yNDE2PXN0cnVjdCB2Y2FwX3J1bGUgKnZjYXBfZGVjb2RlX3J1bGUoc3RydWN0IHZjYXBfcnVsZV9pbnRlcm5hbCAqZWxlbSlcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaS5jLTI0NDYtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaS5jOjI0NDc6c3RydWN0IHZjYXBfcnVsZSAqdmNhcF9nZXRfcnVsZShzdHJ1Y3QgdmNhcF9jb250cm9sICp2Y3RybCwgdTMyIGlkKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGkuYy0yNDQ4LXtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaS5jLTI0NjQtfVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGkuYzoyNDY1OkVYUE9SVF9TWU1CT0xfR1BMKHZjYXBfZ2V0X3J1bGUpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGkuYy0yNDY2LVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpLmM9MzM1Mz1pbnQgdmNhcF9ydWxlX2dldF9rZXlzZXRzKHN0cnVjdCB2Y2FwX3J1bGVfaW50ZXJuYWwgKnJpLFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpLmMtMzM5Ni0vKiBDb2xsZWN0IHBhY2tldCBjb3VudHMgZnJvbSBhbGwgcnVsZXMgd2l0aCB0aGUgc2FtZSBjb29raWUgKi9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpLmM6MzM5NzppbnQgdmNhcF9nZXRfcnVsZV9jb3VudF9ieV9jb29raWUoc3RydWN0IHZjYXBfY29udHJvbCAqdmN0cmwsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaS5jLTMzOTgtXHRcdFx0XHQgIHN0cnVjdCB2Y2FwX2NvdW50ZXIgKmN0ciwgdTY0IGNvb2tpZSlcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaS5jLTM0MzUtfVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGkuYzozNDM2OkVYUE9SVF9TWU1CT0xfR1BMKHZjYXBfZ2V0X3J1bGVfY291bnRfYnlfY29va2llKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpLmMtMzQzNy1cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9jbGllbnQuaD0xNzM9c3RydWN0IHZjYXBfcnVsZSAqdmNhcF9jb3B5X3J1bGUoc3RydWN0IHZjYXBfcnVsZSAqcnVsZSk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9jbGllbnQuaC0xNzQtLyogR2V0IHJ1bGUgZnJvbSBhIFZDQVAgaW5zdGFuY2UgKi9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2NsaWVudC5oOjE3NTpzdHJ1Y3QgdmNhcF9ydWxlICp2Y2FwX2dldF9ydWxlKHN0cnVjdCB2Y2FwX2NvbnRyb2wgKnZjdHJsLCB1MzIgaWQpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfY2xpZW50LmgtMTc2LS8qIFVwZGF0ZSBleGlzdGluZyBydWxlICovXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfY2xpZW50Lmg9MjA3PWludCB2Y2FwX2FkbWluX3J1bGVfY291bnQoc3RydWN0IHZjYXBfYWRtaW4gKmFkbWluLCBpbnQgY2lkKTtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9jbGllbnQuaC0yMDktLyogVkNBUCBydWxlIGNvdW50ZXIgb3BlcmF0aW9ucyAqL1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfY2xpZW50Lmg6MjEwOmludCB2Y2FwX2dldF9ydWxlX2NvdW50X2J5X2Nvb2tpZShzdHJ1Y3QgdmNhcF9jb250cm9sICp2Y3RybCxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2NsaWVudC5oLTIxMS1cdFx0XHRcdCAgc3RydWN0IHZjYXBfY291bnRlciAqY3RyLCB1NjQgY29va2llKTtcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xOS8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjkgMTA6Mjc8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogODEzNgoJCQkJCQkJb3V0cHV0OiA0OAoJCQkJCQkJdGhvdWdodHM6IDYyCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Pa2F5LCBoZXJlJiMzOTtzIG15IHVuZGVyc3RhbmRpbmcsIHRhaWxvcmVkIGZvciBhbiBleHBlcnQgYXVkaWVuY2UsIGFzIGlmIGl0IHdlcmUgbXkgb3duIHRob3VnaHQgcHJvY2VzczoKCioqRGl2aW5nIGludG8gdGhlIGB2Y2FwYCBLZXJuZWwgQ29kZSoqCgpBbHJpZ2h0LCBJJiMzOTttIGRpZ2dpbmcgaW50byB0aGlzIGB2Y2FwYCBrZXJuZWwgbW9kdWxlLCBhbmQgSSYjMzk7bSB0cnlpbmcgdG8gZmlndXJlIG91dCBob3cgcnVsZSBkZWNvZGluZyB3b3Jrcywgc3BlY2lmaWNhbGx5IHdpdGhpbiB0aGUgY29udGV4dCBvZiB0aGUgS1VuaXQgdGVzdHMuIFRoZSBpbml0aWFsIGFzc3VtcHRpb24gd2FzIHRoYXQgYHZjYXBfZ2V0X3J1bGVgIG1pZ2h0IGJlIGludm9sdmVkLCBidXQgYSBxdWljayBgZ3JlcGAgY29uZmlybXMgaXQmIzM5O3Mgbm90IGRpcmVjdGx5IGNhbGxlZCB3aXRoaW4gYHZjYXBfbW9kZWxfa3VuaXQuY2AuIFRoYXQmIzM5O3MgYSByZWQgaGVycmluZywgc28gbGV0JiMzOTtzIG1vdmUgb24uIE15IG5leHQgc3RlcCBpcyB0byBkZXRlcm1pbmUgaWYgYHZjYXBfbW9kZWxfa3VuaXQuY2AgaW5zdGVhZCBjYWxscyB0aGUgZnVuY3Rpb24gYHZjYXBfZGVjb2RlX3J1bGVgIGRpcmVjdGx5LiBUaGF0IGZlZWxzIGxpa2UgdGhlIG1vcmUgbG9naWNhbCBwbGFjZSB0byBmaW5kIHRoZSBsaW5rLCBnaXZlbiB0aGUgaW5pdGlhbCBhYnNlbmNlIG9mIHRoZSBgZ2V0YCBmdW5jdGlvbi4gTm93LCBJIG5lZWQgdG8gY29uZmlybSB3aGV0aGVyIGBkZWNvZGVgIGlzIGNhbGxlZCwgYW5kIHVuZGVyc3RhbmQgKmhvdyogdGhlIHJ1bGUgZGVjb2RpbmcgcHJvY2VzcyBpcyBpbml0aWF0ZWQgd2l0aGluIHRoZSBLVW5pdCBmcmFtZXdvcmsuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MjAvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzI5IDEwOjI3PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5FcnJvcjo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm5vIG1hdGNoZXM8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7dmNhcF9kZWNvZGVfcnVsZSYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfbW9kZWxfa3VuaXQuYyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtlcnJvciYjMzQ7OiAmIzM0O25vIG1hdGNoZXMmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MjEvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzI5IDEwOjI3PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDg0NzcKCQkJCQkJCW91dHB1dDogNDgKCQkJCQkJCXRob3VnaHRzOiAyNQoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+SGVyZSYjMzk7cyBteSB0aG91Z2h0IHByb2Nlc3MsIHN1bW1hcml6ZWQgYXMgaWYgSSB3ZXJlIGNvbnNpZGVyaW5nIHRoZSBzY2VuYXJpbzoKCioqQW5hbHl6aW5nIGB2Y2FwX21vZGVsX2t1bml0LmNgIGFuZCBgdmNhcF9nZXRfcnVsZWAqKgoKT2theSwgc28gSSYjMzk7bSBsb29raW5nIGF0IGB2Y2FwX21vZGVsX2t1bml0LmNgLiBNeSBpbW1lZGlhdGUgdGhvdWdodCBpcywgJiMzNDtEb2VzIHRoaXMgbW9kdWxlIGFjdHVhbGx5ICp1c2UqIGB2Y2FwX2dldF9ydWxlYD8mIzM0OyBJdCYjMzk7cyBhIGtleSBmdW5jdGlvbiBpbiB0aGlzIHN5c3RlbSwgc28ga25vd2luZyBpZiBpdCYjMzk7cyBjYWxsZWQgZnJvbSB0aGlzIHNwZWNpZmljIHNvdXJjZSBmaWxlIGlzIHByZXR0eSBjcnVjaWFsIGZvciB1bmRlcnN0YW5kaW5nIGRlcGVuZGVuY2llcyBhbmQgcG90ZW50aWFsIGltcGFjdHMgb2YgY2hhbmdlcy4gSSBuZWVkIHRvIHF1aWNrbHkgZGV0ZXJtaW5lIHRoZSBjYWxsIGdyYXBoIHJlbGF0aW9uc2hpcC4gSSYjMzk7bSB0aGlua2luZyBJIGNhbiBlaXRoZXIgcXVpY2tseSBncmVwIHRocm91Z2ggdGhlIGNvZGUgZm9yIHRoZSBmdW5jdGlvbiBuYW1lLCBvciBtYXliZSB1dGlsaXplIG15IElERSB0byBkbyBhIHF1aWNrZXIgc2VhcmNoLiBDaGVja2luZyB0aGUgY2FsbCBncmFwaCBpcyB0aGUgYmVzdCBvcHRpb24gZm9yIG1lLCBhcyBpdCB3aWxsIGhpZ2hsaWdodCBhbnkgZGlyZWN0LCBvciBpbmRpcmVjdCBjYWxscy4gVGhhdCYjMzk7cyBteSBpbW1lZGlhdGUgdGFzayAtIGZpbmQgb3V0IGlmIGB2Y2FwX21vZGVsX2t1bml0LmNgIGlzICphY3R1YWxseSogcmVseWluZyBvbiBgdmNhcF9nZXRfcnVsZWAuIE5vIHNlbnNlIGluIGZ1cnRoZXIgYW5hbHlzaXMgdW50aWwgSSBrbm93IHRoZSBjb25uZWN0aW9uLCBvciBsYWNrIHRoZXJlb2YuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MjIvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzI5IDEwOjI3PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5FcnJvcjo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm5vIG1hdGNoZXM8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7dmNhcF9nZXRfcnVsZSYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfbW9kZWxfa3VuaXQuYyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtlcnJvciYjMzQ7OiAmIzM0O25vIG1hdGNoZXMmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MjMvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzI5IDEwOjI3PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDg3OTEKCQkJCQkJCW91dHB1dDogNDUKCQkJCQkJCXRob3VnaHRzOiAyMgoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+T2theSwgaGVyZSYjMzk7cyBteSB0aG91Z2h0IHByb2Nlc3Mgc3VtbWFyaXplZCBmcm9tIHRoYXQgcHJvbXB0LCB0YWlsb3JlZCBmb3IgYW4gZXhwZXJ0IGF1ZGllbmNlOgoKKipFeGFtaW5pbmcgVGVzdCBDb3ZlcmFnZSBmb3IgYHZjYXBfbW9kZWxfa3VuaXQuY2AqKgoKQWxyaWdodCwgSSYjMzk7bSBkaXZpbmcgaW50byB0aGlzIGFuZCB0aGUgZmlyc3QgdGhpbmcgdGhhdCBqdW1wcyB0byBtaW5kIGlzLCAmIzM0O0RvZXMgYHZjYXBfbW9kZWxfa3VuaXQuY2AgaGF2ZSBhbnkgdGVzdHMgc3BlY2lmaWNhbGx5IHRhcmdldGluZyAqdGhpcyogaXNzdWU/JiMzNDsuIEkgbmVlZCB0byBxdWlja2x5IGVzdGFibGlzaCBpZiB0aGVyZSYjMzk7cyBleGlzdGluZyBjb3ZlcmFnZSByZWxhdGVkIHRvIHRoZSBhcmVhIEkmIzM5O20gY3VycmVudGx5IGludmVzdGlnYXRpbmcuIEkmIzM5O20gdGhpbmtpbmcsICYjMzQ7TGV0JiMzOTtzIGNoZWNrIGlmIHRoZSBleGlzdGluZyB0ZXN0cyBpbiB0aGF0IG1vZHVsZSBldmVuIHRvdWNoIHVwb24gdGhlIGFzcGVjdHMgcmVsZXZhbnQgdG8gdGhpcywgb3IgaWYgSSYjMzk7bSBnb2luZyB0byBoYXZlIHRvIHdyaXRlIHNvbWV0aGluZyBmcm9tIHNjcmF0Y2gmIzM0Oy4gSXQmIzM5O3MgYWxsIGFib3V0IGVmZmljaWVudCBkZWJ1Z2dpbmcgYW5kIGNvZGUgbWFpbnRlbmFuY2UsIGFuZCBrbm93aW5nIHdoZXJlIHlvdXIgZXhpc3RpbmcgdGVzdHMgYmVnaW4gYW5kIGVuZCwgaXMgY29yZSB0byB0aG9zZSBwcmFjdGljZXMuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MjQvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzI5IDEwOjI3PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O3ZjYXBfJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9tb2RlbF9rdW5pdC5jJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfbW9kZWxfa3VuaXQuYy0xMi1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfbW9kZWxfa3VuaXQuYzoxMzojaW5jbHVkZSBcJiMzNDt2Y2FwX2FwaS5oXCYjMzQ7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX21vZGVsX2t1bml0LmM6MTQ6I2luY2x1ZGUgXCYjMzQ7dmNhcF9tb2RlbF9rdW5pdC5oXCYjMzQ7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX21vZGVsX2t1bml0LmMtMTUtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX21vZGVsX2t1bml0LmMtMTYtLyoga2V5ZmllbGRzICovXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX21vZGVsX2t1bml0LmM6MTc6c3RhdGljIGNvbnN0IHN0cnVjdCB2Y2FwX2ZpZWxkIGlzMF9sbF9mdWxsX2tleWZpZWxkW10gPSB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX21vZGVsX2t1bml0LmMtMTgtXHRbVkNBUF9LRl9UWVBFXSA9IHtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX21vZGVsX2t1bml0LmMtMTc5LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9tb2RlbF9rdW5pdC5jOjE4MDpzdGF0aWMgY29uc3Qgc3RydWN0IHZjYXBfZmllbGQgaXMwX25vcm1hbF83dHVwbGVfa2V5ZmllbGRbXSA9IHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfbW9kZWxfa3VuaXQuYy0xODEtXHRbVkNBUF9LRl9UWVBFXSA9IHtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX21vZGVsX2t1bml0LmMtMzcyLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9tb2RlbF9rdW5pdC5jOjM3MzpzdGF0aWMgY29uc3Qgc3RydWN0IHZjYXBfZmllbGQgaXMwX25vcm1hbF81dHVwbGVfaXA0X2tleWZpZWxkW10gPSB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX21vZGVsX2t1bml0LmMtMzc0LVx0W1ZDQVBfS0ZfVFlQRV0gPSB7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9tb2RlbF9rdW5pdC5jLTU0NS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfbW9kZWxfa3VuaXQuYzo1NDY6c3RhdGljIGNvbnN0IHN0cnVjdCB2Y2FwX2ZpZWxkIGlzMF9wdXJlXzV0dXBsZV9pcDRfa2V5ZmllbGRbXSA9IHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfbW9kZWxfa3VuaXQuYy01NDctXHRbVkNBUF9LRl9UWVBFXSA9IHtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX21vZGVsX2t1bml0LmMtNjEzLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9tb2RlbF9rdW5pdC5jOjYxNDpzdGF0aWMgY29uc3Qgc3RydWN0IHZjYXBfZmllbGQgaXMwX2V0YWdfa2V5ZmllbGRbXSA9IHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfbW9kZWxfa3VuaXQuYy02MTUtXHRbVkNBUF9LRl9UWVBFXSA9IHtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX21vZGVsX2t1bml0LmMtNjYxLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9tb2RlbF9rdW5pdC5jOjY2MjpzdGF0aWMgY29uc3Qgc3RydWN0IHZjYXBfZmllbGQgaXMyX21hY19ldHlwZV9rZXlmaWVsZFtdID0ge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9tb2RlbF9rdW5pdC5jLTY2My1cdFtWQ0FQX0tGX1RZUEVdID0ge1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfbW9kZWxfa3VuaXQuYy03OTQtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX21vZGVsX2t1bml0LmM6Nzk1OnN0YXRpYyBjb25zdCBzdHJ1Y3QgdmNhcF9maWVsZCBpczJfYXJwX2tleWZpZWxkW10gPSB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX21vZGVsX2t1bml0LmMtNzk2LVx0W1ZDQVBfS0ZfVFlQRV0gPSB7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9tb2RlbF9rdW5pdC5jLTkzNy1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfbW9kZWxfa3VuaXQuYzo5Mzg6c3RhdGljIGNvbnN0IHN0cnVjdCB2Y2FwX2ZpZWxkIGlzMl9pcDRfdGNwX3VkcF9rZXlmaWVsZFtdID0ge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9tb2RlbF9rdW5pdC5jLTkzOS1cdFtWQ0FQX0tGX1RZUEVdID0ge1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfbW9kZWxfa3VuaXQuYy0xMTQwLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9tb2RlbF9rdW5pdC5jOjExNDE6c3RhdGljIGNvbnN0IHN0cnVjdCB2Y2FwX2ZpZWxkIGlzMl9pcDRfb3RoZXJfa2V5ZmllbGRbXSA9IHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfbW9kZWxfa3VuaXQuYy0xMTQyLVx0W1ZDQVBfS0ZfVFlQRV0gPSB7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9tb2RlbF9rdW5pdC5jLTEyOTMtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX21vZGVsX2t1bml0LmM6MTI5NDpzdGF0aWMgY29uc3Qgc3RydWN0IHZjYXBfZmllbGQgaXMyX2lwNl9zdGRfa2V5ZmllbGRbXSA9IHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfbW9kZWxfa3VuaXQuYy0xMjk1LVx0W1ZDQVBfS0ZfVFlQRV0gPSB7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9tb2RlbF9rdW5pdC5jLTE0MTEtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX21vZGVsX2t1bml0LmM6MTQxMjpzdGF0aWMgY29uc3Qgc3RydWN0IHZjYXBfZmllbGQgaXMyX2lwXzd0dXBsZV9rZXlmaWVsZFtdID0ge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9tb2RlbF9rdW5pdC5jLTE0MTMtXHRbVkNBUF9LRl9UWVBFXSA9IHtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX21vZGVsX2t1bml0LmMtMTYxNC1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfbW9kZWxfa3VuaXQuYzoxNjE1OnN0YXRpYyBjb25zdCBzdHJ1Y3QgdmNhcF9maWVsZCBlczJfbWFjX2V0eXBlX2tleWZpZWxkW10gPSB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX21vZGVsX2t1bml0LmMtMTYxNi1cdFtWQ0FQX0tGX1RZUEVdID0ge1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfbW9kZWxfa3VuaXQuYy0xNzM3LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9tb2RlbF9rdW5pdC5jOjE3Mzg6c3RhdGljIGNvbnN0IHN0cnVjdCB2Y2FwX2ZpZWxkIGVzMl9hcnBfa2V5ZmllbGRbXSA9IHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfbW9kZWxfa3VuaXQuYy0xNzM5LVx0W1ZDQVBfS0ZfVFlQRV0gPSB7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9tb2RlbF9rdW5pdC5jLTE4NzUtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX21vZGVsX2t1bml0LmM6MTg3NjpzdGF0aWMgY29uc3Qgc3RydWN0IHZjYXBfZmllbGQgZXMyX2lwNF90Y3BfdWRwX2tleWZpZWxkW10gPSB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX21vZGVsX2t1bml0LmMtMTg3Ny1cdFtWQ0FQX0tGX1RZUEVdID0ge1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfbW9kZWxfa3VuaXQuYy0yMDY4LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9tb2RlbF9rdW5pdC5jOjIwNjk6c3RhdGljIGNvbnN0IHN0cnVjdCB2Y2FwX2ZpZWxkIGVzMl9pcDRfb3RoZXJfa2V5ZmllbGRbXSA9IHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfbW9kZWxfa3VuaXQuYy0yMDcwLVx0W1ZDQVBfS0ZfVFlQRV0gPSB7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9tb2RlbF9rdW5pdC5jLTIyMDYtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX21vZGVsX2t1bml0LmM6MjIwNzpzdGF0aWMgY29uc3Qgc3RydWN0IHZjYXBfZmllbGQgZXMyX2lwXzd0dXBsZV9rZXlmaWVsZFtdID0ge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9tb2RlbF9rdW5pdC5jLTIyMDgtXHRbVkNBUF9LRl9MT09LVVBfRklSU1RfSVNdID0ge1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfbW9kZWxfa3VuaXQuYy0yMzk5LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9tb2RlbF9rdW5pdC5jOjI0MDA6c3RhdGljIGNvbnN0IHN0cnVjdCB2Y2FwX2ZpZWxkIGVzMl9pcDZfc3RkX2tleWZpZWxkW10gPSB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX21vZGVsX2t1bml0LmMtMjQwMS1cdFtWQ0FQX0tGX1RZUEVdID0ge1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfbW9kZWxfa3VuaXQuYy0yNTE3LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9tb2RlbF9rdW5pdC5jOjI1MTg6c3RhdGljIGNvbnN0IHN0cnVjdCB2Y2FwX2ZpZWxkIGVzMl9pcDRfdmlkX2tleWZpZWxkW10gPSB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX21vZGVsX2t1bml0LmMtMjUxOS1cdFtWQ0FQX0tGX0xPT0tVUF9GSVJTVF9JU10gPSB7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9tb2RlbF9rdW5pdC5jLTI2MjAtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX21vZGVsX2t1bml0LmM6MjYyMTpzdGF0aWMgY29uc3Qgc3RydWN0IHZjYXBfZmllbGQgZXMyX2lwNl92aWRfa2V5ZmllbGRbXSA9IHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfbW9kZWxfa3VuaXQuYy0yNjIyLVx0W1ZDQVBfS0ZfVFlQRV0gPSB7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9tb2RlbF9rdW5pdC5jLTI2ODktLyoga2V5ZmllbGRfc2V0ICovXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX21vZGVsX2t1bml0LmM6MjY5MDpzdGF0aWMgY29uc3Qgc3RydWN0IHZjYXBfc2V0IGlzMF9rZXlmaWVsZF9zZXRbXSA9IHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfbW9kZWxfa3VuaXQuYy0yNjkxLVx0W1ZDQVBfS0ZTX0xMX0ZVTExdID0ge1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfbW9kZWxfa3VuaXQuYy0yNzE3LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9tb2RlbF9rdW5pdC5jOjI3MTg6c3RhdGljIGNvbnN0IHN0cnVjdCB2Y2FwX3NldCBpczJfa2V5ZmllbGRfc2V0W10gPSB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX21vZGVsX2t1bml0LmMtMjcxOS1cdFtWQ0FQX0tGU19NQUNfRVRZUEVdID0ge1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfbW9kZWxfa3VuaXQuYy0yNzUwLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9tb2RlbF9rdW5pdC5jOjI3NTE6c3RhdGljIGNvbnN0IHN0cnVjdCB2Y2FwX3NldCBlczJfa2V5ZmllbGRfc2V0W10gPSB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX21vZGVsX2t1bml0LmMtMjc1Mi1cdFtWQ0FQX0tGU19NQUNfRVRZUEVdID0ge1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfbW9kZWxfa3VuaXQuYy0yNzk0LS8qIGtleWZpZWxkX3NldCBtYXAgKi9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfbW9kZWxfa3VuaXQuYzoyNzk1OnN0YXRpYyBjb25zdCBzdHJ1Y3QgdmNhcF9maWVsZCAqaXMwX2tleWZpZWxkX3NldF9tYXBbXSA9IHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfbW9kZWxfa3VuaXQuYy0yNzk2LVx0W1ZDQVBfS0ZTX0xMX0ZVTExdID0gaXMwX2xsX2Z1bGxfa2V5ZmllbGQsXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9tb2RlbF9rdW5pdC5jLTI4MDItXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX21vZGVsX2t1bml0LmM6MjgwMzpzdGF0aWMgY29uc3Qgc3RydWN0IHZjYXBfZmllbGQgKmlzMl9rZXlmaWVsZF9zZXRfbWFwW10gPSB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX21vZGVsX2t1bml0LmMtMjgwNC1cdFtWQ0FQX0tGU19NQUNfRVRZUEVdID0gaXMyX21hY19ldHlwZV9rZXlmaWVsZCxcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX21vZGVsX2t1bml0LmMtMjgxMS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfbW9kZWxfa3VuaXQuYzoyODEyOnN0YXRpYyBjb25zdCBzdHJ1Y3QgdmNhcF9maWVsZCAqZXMyX2tleWZpZWxkX3NldF9tYXBbXSA9IHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfbW9kZWxfa3VuaXQuYy0yODEzLVx0W1ZDQVBfS0ZTX01BQ19FVFlQRV0gPSBlczJfbWFjX2V0eXBlX2tleWZpZWxkLFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfbW9kZWxfa3VuaXQuYz0yODQxPXN0YXRpYyBpbnQgZXMyX2tleWZpZWxkX3NldF9tYXBfc2l6ZVtdID0ge1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfbW9kZWxfa3VuaXQuYy0yODUyLS8qIGFjdGlvbmZpZWxkcyAqL1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9tb2RlbF9rdW5pdC5jOjI4NTM6c3RhdGljIGNvbnN0IHN0cnVjdCB2Y2FwX2ZpZWxkIGlzMF9jbGFzc2lmaWNhdGlvbl9hY3Rpb25maWVsZFtdID0ge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9tb2RlbF9rdW5pdC5jLTI4NTQtXHRbVkNBUF9BRl9UWVBFXSA9IHtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX21vZGVsX2t1bml0LmMtMjk2NS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfbW9kZWxfa3VuaXQuYzoyOTY2OnN0YXRpYyBjb25zdCBzdHJ1Y3QgdmNhcF9maWVsZCBpczBfZnVsbF9hY3Rpb25maWVsZFtdID0ge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9tb2RlbF9rdW5pdC5jLTI5NjctXHRbVkNBUF9BRl9EU0NQX0VOQV0gPSB7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9tb2RlbF9rdW5pdC5jLTMwODMtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX21vZGVsX2t1bml0LmM6MzA4NDpzdGF0aWMgY29uc3Qgc3RydWN0IHZjYXBfZmllbGQgaXMwX2NsYXNzX3JlZHVjZWRfYWN0aW9uZmllbGRbXSA9IHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfbW9kZWxfa3VuaXQuYy0zMDg1LVx0W1ZDQVBfQUZfVFlQRV0gPSB7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9tb2RlbF9rdW5pdC5jLTMxNTEtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX21vZGVsX2t1bml0LmM6MzE1MjpzdGF0aWMgY29uc3Qgc3RydWN0IHZjYXBfZmllbGQgaXMyX2Jhc2VfdHlwZV9hY3Rpb25maWVsZFtdID0ge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9tb2RlbF9rdW5pdC5jLTMxNTMtXHRbVkNBUF9BRl9QSVBFTElORV9GT1JDRV9FTkFdID0ge1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfbW9kZWxfa3VuaXQuYy0zMjM5LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9tb2RlbF9rdW5pdC5jOjMyNDA6c3RhdGljIGNvbnN0IHN0cnVjdCB2Y2FwX2ZpZWxkIGVzMl9iYXNlX3R5cGVfYWN0aW9uZmllbGRbXSA9IHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfbW9kZWxfa3VuaXQuYy0zMjQxLVx0W1ZDQVBfQUZfSElUX01FX09OQ0VdID0ge1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfbW9kZWxfa3VuaXQuYy0zMzEzLS8qIGFjdGlvbmZpZWxkX3NldCAqL1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9tb2RlbF9rdW5pdC5jOjMzMTQ6c3RhdGljIGNvbnN0IHN0cnVjdCB2Y2FwX3NldCBpczBfYWN0aW9uZmllbGRfc2V0W10gPSB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX21vZGVsX2t1bml0LmMtMzMxNS1cdFtWQ0FQX0FGU19DTEFTU0lGSUNBVElPTl0gPSB7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9tb2RlbF9rdW5pdC5jLTMzMzEtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX21vZGVsX2t1bml0LmM6MzMzMjpzdGF0aWMgY29uc3Qgc3RydWN0IHZjYXBfc2V0IGlzMl9hY3Rpb25maWVsZF9zZXRbXSA9IHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfbW9kZWxfa3VuaXQuYy0zMzMzLVx0W1ZDQVBfQUZTX0JBU0VfVFlQRV0gPSB7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9tb2RlbF9rdW5pdC5jLTMzMzktXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX21vZGVsX2t1bml0LmM6MzM0MDpzdGF0aWMgY29uc3Qgc3RydWN0IHZjYXBfc2V0IGVzMl9hY3Rpb25maWVsZF9zZXRbXSA9IHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfbW9kZWxfa3VuaXQuYy0zMzQxLVx0W1ZDQVBfQUZTX0JBU0VfVFlQRV0gPSB7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9tb2RlbF9rdW5pdC5jLTMzNDgtLyogYWN0aW9uZmllbGRfc2V0IG1hcCAqL1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9tb2RlbF9rdW5pdC5jOjMzNDk6c3RhdGljIGNvbnN0IHN0cnVjdCB2Y2FwX2ZpZWxkICppczBfYWN0aW9uZmllbGRfc2V0X21hcFtdID0ge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9tb2RlbF9rdW5pdC5jLTMzNTAtXHRbVkNBUF9BRlNfQ0xBU1NJRklDQVRJT05dID0gaXMwX2NsYXNzaWZpY2F0aW9uX2FjdGlvbmZpZWxkLFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfbW9kZWxfa3VuaXQuYy0zMzU0LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9tb2RlbF9rdW5pdC5jOjMzNTU6c3RhdGljIGNvbnN0IHN0cnVjdCB2Y2FwX2ZpZWxkICppczJfYWN0aW9uZmllbGRfc2V0X21hcFtdID0ge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9tb2RlbF9rdW5pdC5jLTMzNTYtXHRbVkNBUF9BRlNfQkFTRV9UWVBFXSA9IGlzMl9iYXNlX3R5cGVfYWN0aW9uZmllbGQsXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9tb2RlbF9rdW5pdC5jLTMzNTgtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX21vZGVsX2t1bml0LmM6MzM1OTpzdGF0aWMgY29uc3Qgc3RydWN0IHZjYXBfZmllbGQgKmVzMl9hY3Rpb25maWVsZF9zZXRfbWFwW10gPSB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX21vZGVsX2t1bml0LmMtMzM2MC1cdFtWQ0FQX0FGU19CQVNFX1RZUEVdID0gZXMyX2Jhc2VfdHlwZV9hY3Rpb25maWVsZCxcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX21vZGVsX2t1bml0LmM9MzM3ND1zdGF0aWMgaW50IGVzMl9hY3Rpb25maWVsZF9zZXRfbWFwX3NpemVbXSA9IHtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX21vZGVsX2t1bml0LmMtMzM3OC0vKiBUeXBlIEdyb3VwcyAqL1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9tb2RlbF9rdW5pdC5jOjMzNzk6c3RhdGljIGNvbnN0IHN0cnVjdCB2Y2FwX3R5cGVncm91cCBpczBfeDEyX2tleWZpZWxkX3NldF90eXBlZ3JvdXBzW10gPSB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX21vZGVsX2t1bml0LmMtMzM4MC1cdHtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX21vZGVsX2t1bml0LmMtMzQ0Mi1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfbW9kZWxfa3VuaXQuYzozNDQzOnN0YXRpYyBjb25zdCBzdHJ1Y3QgdmNhcF90eXBlZ3JvdXAgaXMwX3g2X2tleWZpZWxkX3NldF90eXBlZ3JvdXBzW10gPSB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX21vZGVsX2t1bml0LmMtMzQ0NC1cdHtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX21vZGVsX2t1bml0LmMtMzQ3Ni1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfbW9kZWxfa3VuaXQuYzozNDc3OnN0YXRpYyBjb25zdCBzdHJ1Y3QgdmNhcF90eXBlZ3JvdXAgaXMwX3gzX2tleWZpZWxkX3NldF90eXBlZ3JvdXBzW10gPSB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX21vZGVsX2t1bml0LmMtMzQ3OC1cdHtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX21vZGVsX2t1bml0LmMtMzQ5NS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfbW9kZWxfa3VuaXQuYzozNDk2OnN0YXRpYyBjb25zdCBzdHJ1Y3QgdmNhcF90eXBlZ3JvdXAgaXMwX3gyX2tleWZpZWxkX3NldF90eXBlZ3JvdXBzW10gPSB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX21vZGVsX2t1bml0LmMtMzQ5Ny1cdHtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX21vZGVsX2t1bml0LmMtMzUwOS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfbW9kZWxfa3VuaXQuYzozNTEwOnN0YXRpYyBjb25zdCBzdHJ1Y3QgdmNhcF90eXBlZ3JvdXAgaXMwX3gxX2tleWZpZWxkX3NldF90eXBlZ3JvdXBzW10gPSB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX21vZGVsX2t1bml0LmMtMzUxMS1cdHt9XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9tb2RlbF9rdW5pdC5jLTM1MTMtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX21vZGVsX2t1bml0LmM6MzUxNDpzdGF0aWMgY29uc3Qgc3RydWN0IHZjYXBfdHlwZWdyb3VwIGlzMl94MTJfa2V5ZmllbGRfc2V0X3R5cGVncm91cHNbXSA9IHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfbW9kZWxfa3VuaXQuYy0zNTE1LVx0e1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfbW9kZWxfa3VuaXQuYy0zNTM3LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9tb2RlbF9rdW5pdC5jOjM1Mzg6c3RhdGljIGNvbnN0IHN0cnVjdCB2Y2FwX3R5cGVncm91cCBpczJfeDZfa2V5ZmllbGRfc2V0X3R5cGVncm91cHNbXSA9IHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfbW9kZWxfa3VuaXQuYy0zNTM5LVx0e1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfbW9kZWxfa3VuaXQuYy0zNTUxLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9tb2RlbF9rdW5pdC5jOjM1NTI6c3RhdGljIGNvbnN0IHN0cnVjdCB2Y2FwX3R5cGVncm91cCBpczJfeDNfa2V5ZmllbGRfc2V0X3R5cGVncm91cHNbXSA9IHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfbW9kZWxfa3VuaXQuYy0zNTUzLVx0e31cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX21vZGVsX2t1bml0LmMtMzU1NS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfbW9kZWxfa3VuaXQuYzozNTU2OnN0YXRpYyBjb25zdCBzdHJ1Y3QgdmNhcF90eXBlZ3JvdXAgaXMyX3gxX2tleWZpZWxkX3NldF90eXBlZ3JvdXBzW10gPSB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX21vZGVsX2t1bml0LmMtMzU1Ny1cdHt9XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9tb2RlbF9rdW5pdC5jLTM1NTktXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX21vZGVsX2t1bml0LmM6MzU2MDpzdGF0aWMgY29uc3Qgc3RydWN0IHZjYXBfdHlwZWdyb3VwIGVzMl94MTJfa2V5ZmllbGRfc2V0X3R5cGVncm91cHNbXSA9IHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfbW9kZWxfa3VuaXQuYy0zNTYxLVx0e1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfbW9kZWxfa3VuaXQuYy0zNTgzLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9tb2RlbF9rdW5pdC5jOjM1ODQ6c3RhdGljIGNvbnN0IHN0cnVjdCB2Y2FwX3R5cGVncm91cCBlczJfeDZfa2V5ZmllbGRfc2V0X3R5cGVncm91cHNbXSA9IHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfbW9kZWxfa3VuaXQuYy0zNTg1LVx0e1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfbW9kZWxfa3VuaXQuYy0zNTk3LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9tb2RlbF9rdW5pdC5jOjM1OTg6c3RhdGljIGNvbnN0IHN0cnVjdCB2Y2FwX3R5cGVncm91cCBlczJfeDNfa2V5ZmllbGRfc2V0X3R5cGVncm91cHNbXSA9IHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfbW9kZWxfa3VuaXQuYy0zNTk5LVx0e1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfbW9kZWxfa3VuaXQuYy0zNjA2LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9tb2RlbF9rdW5pdC5jOjM2MDc6c3RhdGljIGNvbnN0IHN0cnVjdCB2Y2FwX3R5cGVncm91cCBlczJfeDFfa2V5ZmllbGRfc2V0X3R5cGVncm91cHNbXSA9IHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfbW9kZWxfa3VuaXQuYy0zNjA4LVx0e31cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX21vZGVsX2t1bml0LmMtMzYxMC1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfbW9kZWxfa3VuaXQuYzozNjExOnN0YXRpYyBjb25zdCBzdHJ1Y3QgdmNhcF90eXBlZ3JvdXAgKmlzMF9rZXlmaWVsZF9zZXRfdHlwZWdyb3Vwc1tdID0ge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9tb2RlbF9rdW5pdC5jLTM2MTItXHRbMTJdID0gaXMwX3gxMl9rZXlmaWVsZF9zZXRfdHlwZWdyb3Vwcyxcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX21vZGVsX2t1bml0LmMtMzYxOS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfbW9kZWxfa3VuaXQuYzozNjIwOnN0YXRpYyBjb25zdCBzdHJ1Y3QgdmNhcF90eXBlZ3JvdXAgKmlzMl9rZXlmaWVsZF9zZXRfdHlwZWdyb3Vwc1tdID0ge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9tb2RlbF9rdW5pdC5jLTM2MjEtXHRbMTJdID0gaXMyX3gxMl9rZXlmaWVsZF9zZXRfdHlwZWdyb3Vwcyxcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX21vZGVsX2t1bml0LmMtMzYyNy1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfbW9kZWxfa3VuaXQuYzozNjI4OnN0YXRpYyBjb25zdCBzdHJ1Y3QgdmNhcF90eXBlZ3JvdXAgKmVzMl9rZXlmaWVsZF9zZXRfdHlwZWdyb3Vwc1tdID0ge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9tb2RlbF9rdW5pdC5jLTM2MjktXHRbMTJdID0gZXMyX3gxMl9rZXlmaWVsZF9zZXRfdHlwZWdyb3Vwcyxcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX21vZGVsX2t1bml0LmMtMzYzNS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfbW9kZWxfa3VuaXQuYzozNjM2OnN0YXRpYyBjb25zdCBzdHJ1Y3QgdmNhcF90eXBlZ3JvdXAgaXMwX3gzX2FjdGlvbmZpZWxkX3NldF90eXBlZ3JvdXBzW10gPSB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX21vZGVsX2t1bml0LmMtMzYzNy1cdHtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX21vZGVsX2t1bml0LmMtMzY1NC1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfbW9kZWxfa3VuaXQuYzozNjU1OnN0YXRpYyBjb25zdCBzdHJ1Y3QgdmNhcF90eXBlZ3JvdXAgaXMwX3gyX2FjdGlvbmZpZWxkX3NldF90eXBlZ3JvdXBzW10gPSB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX21vZGVsX2t1bml0LmMtMzY1Ni1cdHtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX21vZGVsX2t1bml0LmMtMzY2OC1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfbW9kZWxfa3VuaXQuYzozNjY5OnN0YXRpYyBjb25zdCBzdHJ1Y3QgdmNhcF90eXBlZ3JvdXAgaXMwX3gxX2FjdGlvbmZpZWxkX3NldF90eXBlZ3JvdXBzW10gPSB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX21vZGVsX2t1bml0LmMtMzY3MC1cdHtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX21vZGVsX2t1bml0LmMtMzY3Ny1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfbW9kZWxfa3VuaXQuYzozNjc4OnN0YXRpYyBjb25zdCBzdHJ1Y3QgdmNhcF90eXBlZ3JvdXAgaXMyX3gzX2FjdGlvbmZpZWxkX3NldF90eXBlZ3JvdXBzW10gPSB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX21vZGVsX2t1bml0LmMtMzY3OS1cdHtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX21vZGVsX2t1bml0LmMtMzY5Ni1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfbW9kZWxfa3VuaXQuYzozNjk3OnN0YXRpYyBjb25zdCBzdHJ1Y3QgdmNhcF90eXBlZ3JvdXAgaXMyX3gxX2FjdGlvbmZpZWxkX3NldF90eXBlZ3JvdXBzW10gPSB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX21vZGVsX2t1bml0LmMtMzY5OC1cdHt9XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9tb2RlbF9rdW5pdC5jLTM3MDAtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX21vZGVsX2t1bml0LmM6MzcwMTpzdGF0aWMgY29uc3Qgc3RydWN0IHZjYXBfdHlwZWdyb3VwIGVzMl94M19hY3Rpb25maWVsZF9zZXRfdHlwZWdyb3Vwc1tdID0ge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9tb2RlbF9rdW5pdC5jLTM3MDItXHR7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9tb2RlbF9rdW5pdC5jLTM3MTktXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX21vZGVsX2t1bml0LmM6MzcyMDpzdGF0aWMgY29uc3Qgc3RydWN0IHZjYXBfdHlwZWdyb3VwIGVzMl94MV9hY3Rpb25maWVsZF9zZXRfdHlwZWdyb3Vwc1tdID0ge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9tb2RlbF9rdW5pdC5jLTM3MjEtXHR7fVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfbW9kZWxfa3VuaXQuYy0zNzIzLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9tb2RlbF9rdW5pdC5jOjM3MjQ6c3RhdGljIGNvbnN0IHN0cnVjdCB2Y2FwX3R5cGVncm91cCAqaXMwX2FjdGlvbmZpZWxkX3NldF90eXBlZ3JvdXBzW10gPSB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX21vZGVsX2t1bml0LmMtMzcyNS1cdFszXSA9IGlzMF94M19hY3Rpb25maWVsZF9zZXRfdHlwZWdyb3Vwcyxcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX21vZGVsX2t1bml0LmMtMzczMC1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfbW9kZWxfa3VuaXQuYzozNzMxOnN0YXRpYyBjb25zdCBzdHJ1Y3QgdmNhcF90eXBlZ3JvdXAgKmlzMl9hY3Rpb25maWVsZF9zZXRfdHlwZWdyb3Vwc1tdID0ge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9tb2RlbF9rdW5pdC5jLTM3MzItXHRbM10gPSBpczJfeDNfYWN0aW9uZmllbGRfc2V0X3R5cGVncm91cHMsXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9tb2RlbF9rdW5pdC5jLTM3MzYtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX21vZGVsX2t1bml0LmM6MzczNzpzdGF0aWMgY29uc3Qgc3RydWN0IHZjYXBfdHlwZWdyb3VwICplczJfYWN0aW9uZmllbGRfc2V0X3R5cGVncm91cHNbXSA9IHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfbW9kZWxfa3VuaXQuYy0zNzM4LVx0WzNdID0gZXMyX3gzX2FjdGlvbmZpZWxkX3NldF90eXBlZ3JvdXBzLFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfbW9kZWxfa3VuaXQuYy0zNzQzLS8qIEtleWZpZWxkc2V0IG5hbWVzICovXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX21vZGVsX2t1bml0LmM6Mzc0NDpzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IHZjYXBfa2V5ZmllbGRfc2V0X25hbWVzW10gPSB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX21vZGVsX2t1bml0LmMtMzc0NS1cdFtWQ0FQX0tGU19OT19WQUxVRV0gICAgICAgICAgICAgICAgICAgICAgPSAgXCYjMzQ7KE5vbmUpXCYjMzQ7LFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfbW9kZWxfa3VuaXQuYy0zNzY5LS8qIEFjdGlvbmZpZWxkc2V0IG5hbWVzICovXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX21vZGVsX2t1bml0LmM6Mzc3MDpzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IHZjYXBfYWN0aW9uZmllbGRfc2V0X25hbWVzW10gPSB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX21vZGVsX2t1bml0LmMtMzc3MS1cdFtWQ0FQX0FGU19OT19WQUxVRV0gICAgICAgICAgICAgICAgICAgICAgPSAgXCYjMzQ7KE5vbmUpXCYjMzQ7LFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfbW9kZWxfa3VuaXQuYy0zNzgwLS8qIEtleWZpZWxkIG5hbWVzICovXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX21vZGVsX2t1bml0LmM6Mzc4MTpzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IHZjYXBfa2V5ZmllbGRfbmFtZXNbXSA9IHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfbW9kZWxfa3VuaXQuYy0zNzgyLVx0W1ZDQVBfS0ZfTk9fVkFMVUVdICAgICAgICAgICAgICAgICAgICAgICA9ICBcJiMzNDsoTm9uZSlcJiMzNDssXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9tb2RlbF9rdW5pdC5jLTM4OTgtLyogQWN0aW9uZmllbGQgbmFtZXMgKi9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfbW9kZWxfa3VuaXQuYzozODk5OnN0YXRpYyBjb25zdCBjaGFyICogY29uc3QgdmNhcF9hY3Rpb25maWVsZF9uYW1lc1tdID0ge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9tb2RlbF9rdW5pdC5jLTM5MDAtXHRbVkNBUF9BRl9OT19WQUxVRV0gICAgICAgICAgICAgICAgICAgICAgID0gIFwmIzM0OyhOb25lKVwmIzM0Oyxcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX21vZGVsX2t1bml0LmMtMzk4OC0vKiBWQ0FQcyAqL1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9tb2RlbF9rdW5pdC5jOjM5ODk6Y29uc3Qgc3RydWN0IHZjYXBfaW5mbyBrdW5pdF90ZXN0X3ZjYXBzW10gPSB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX21vZGVsX2t1bml0LmMtMzk5MC1cdFtWQ0FQX1RZUEVfSVMwXSA9IHtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX21vZGVsX2t1bml0LmMtNDA1NC1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfbW9kZWxfa3VuaXQuYzo0MDU1OmNvbnN0IHN0cnVjdCB2Y2FwX3N0YXRpc3RpY3Mga3VuaXRfdGVzdF92Y2FwX3N0YXRzID0ge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9tb2RlbF9rdW5pdC5jLTQwNTYtXHQubmFtZSA9IFwmIzM0O2t1bml0X3Rlc3RcJiMzNDssXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX21vZGVsX2t1bml0LmMtNDA1Ny1cdC5jb3VudCA9IDMsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX21vZGVsX2t1bml0LmM6NDA1ODpcdC5rZXlmaWVsZF9zZXRfbmFtZXMgPSB2Y2FwX2tleWZpZWxkX3NldF9uYW1lcyxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfbW9kZWxfa3VuaXQuYzo0MDU5Olx0LmFjdGlvbmZpZWxkX3NldF9uYW1lcyA9IHZjYXBfYWN0aW9uZmllbGRfc2V0X25hbWVzLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9tb2RlbF9rdW5pdC5jOjQwNjA6XHQua2V5ZmllbGRfbmFtZXMgPSB2Y2FwX2tleWZpZWxkX25hbWVzLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9tb2RlbF9rdW5pdC5jOjQwNjE6XHQuYWN0aW9uZmllbGRfbmFtZXMgPSB2Y2FwX2FjdGlvbmZpZWxkX25hbWVzLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9tb2RlbF9rdW5pdC5jLTQwNjItfTtcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4yNS8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjkgMTA6Mjc8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMTc3NTYKCQkJCQkJCW91dHB1dDogNDUKCQkJCQkJCXRob3VnaHRzOiA0OAoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+T2theSwgaGVyZSYjMzk7cyBteSBpbnRlcnByZXRhdGlvbiBvZiB0aG9zZSB0aG91Z2h0cywgdGFpbG9yZWQgZm9yIGFuIGV4cGVydCBhdWRpZW5jZToKCioqSW52ZXN0aWdhdGluZyBLVW5pdCBUZXN0IEltcGxlbWVudGF0aW9uIGluIHRoZSB2Y2FwIFN1YnN5c3RlbSoqCgpBbHJpZ2h0LCBsb29raW5nIGF0IHRoZSBjb2RlIHN0cnVjdHVyZSwgYHZjYXBfbW9kZWxfa3VuaXQuY2Agc2VlbXMgc3RyYWlnaHRmb3J3YXJkLiBJdCBhcHBlYXJzIHRvIHByaW1hcmlseSBkZWZpbmUgdGhlIGRhdGEgc3RydWN0dXJlcyBhbmQgcG9zc2libHkgbW9jayBmdW5jdGlvbnMgZm9yIHRoZSBLVW5pdCB0ZXN0cyByZWxhdGVkIHRvIHRoZSB2Y2FwIHN1YnN5c3RlbS4gVGhlIHJlYWwgcXVlc3Rpb24gaXMsIHdoZXJlIGFyZSB0aGUgKmFjdHVhbCogdGVzdHMgZGVmaW5lZD8gSSYjMzk7bSBnb2luZyB0byBxdWlja2x5IGNoZWNrIGluIHRoZSBhZGphY2VudCBmaWxlcywgc3BlY2lmaWNhbGx5IGB2Y2FwX2FwaV9rdW5pdC5jYCwgYW5kIHBvdGVudGlhbGx5IGFueSBvdGhlciBgKmt1bml0LmNgIGZpbGVzIHdpdGhpbiB0aGUgYHZjYXBgIGRpcmVjdG9yeS4gSSYjMzk7bSBleHBlY3RpbmcgdG8gZmluZCB0aGUgdGVzdCBjYXNlcywgc2V0dXAgYW5kIHRlYXJkb3duIHJvdXRpbmVzLCBhbmQgdGhlIGFzc2VydGlvbnMgd2l0aGluIHRob3NlIGZpbGVzLiBJJiMzOTttIGhvcGluZyBpdCYjMzk7cyBjbGVhcmx5IGRlbGluZWF0ZWQgYmV0d2VlbiBtb2RlbCBhbmQgdGVzdCBkZWZpbml0aW9ucyB0byBoZWxwIHdpdGggbWFpbnRhaW5hYmlsaXR5LgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjI2LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yOSAxMDoyNzwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDt2Y2FwXyYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmMmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7XG5GdWxsIG91dHB1dCBpcyB0b28gbG9uZywgc2hvd2luZyA1MDAgb3V0IG9mIDEyNTEgbGluZXMuXG5Vc2UgbW9yZSBwcmVjaXNlIGV4cHJlc3Npb24gaWYgcG9zc2libGUuXG5cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmMtNi0jaW5jbHVkZSBcdTAwM2NrdW5pdC90ZXN0LmhcdTAwM2VcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmM6NzojaW5jbHVkZSBcJiMzNDt2Y2FwX2FwaS5oXCYjMzQ7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jOjg6I2luY2x1ZGUgXCYjMzQ7dmNhcF9hcGlfY2xpZW50LmhcJiMzNDtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmM6OTojaW5jbHVkZSBcJiMzNDt2Y2FwX21vZGVsX2t1bml0LmhcJiMzNDtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmMtMTAtXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfa3VuaXQuYz0yMz1zdGF0aWMgdTMyIHRlc3RfaHdfY291bnRlcl9pZDtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmM6MjQ6c3RhdGljIHN0cnVjdCB2Y2FwX2NhY2hlX2RhdGEgdGVzdF9od19jYWNoZTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmMtMjUtc3RhdGljIHN0cnVjdCBuZXRfZGV2aWNlIHRlc3RfbmV0ZGV2ID0ge307XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfa3VuaXQuYz0yOD1zdGF0aWMgaW50IHRlc3RfbW92ZV9jb3VudDtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jLTMwLS8qIENhbGxiYWNrIHVzZWQgYnkgdGhlIFZDQVAgQVBJICovXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jOjMxOnN0YXRpYyBlbnVtIHZjYXBfa2V5ZmllbGRfc2V0IHRlc3RfdmFsX2tleXNldChzdHJ1Y3QgbmV0X2RldmljZSAqbmRldixcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmM6MzI6XHRcdFx0XHRcdCAgICAgIHN0cnVjdCB2Y2FwX2FkbWluICphZG1pbixcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmM6MzM6XHRcdFx0XHRcdCAgICAgIHN0cnVjdCB2Y2FwX3J1bGUgKnJ1bGUsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jOjM0Olx0XHRcdFx0XHQgICAgICBzdHJ1Y3QgdmNhcF9rZXlzZXRfbGlzdCAqa3NsaXN0LFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfa3VuaXQuYy0zNS1cdFx0XHRcdFx0ICAgICAgdTE2IGwzX3Byb3RvKVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmM9NzM9c3RhdGljIHZvaWQgdGVzdF9hZGRfZGVmX2ZpZWxkcyhzdHJ1Y3QgbmV0X2RldmljZSAqbmRldixcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmM6NzQ6XHRcdFx0XHRzdHJ1Y3QgdmNhcF9hZG1pbiAqYWRtaW4sXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jOjc1Olx0XHRcdFx0c3RydWN0IHZjYXBfcnVsZSAqcnVsZSlcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmMtNzYte1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfa3VuaXQuYy03Ny1cdGlmIChhZG1pbi1cdTAwM2V2aW5zdCA9PSAwIHx8IGFkbWluLVx1MDAzZXZpbnN0ID09IDIpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jOjc4Olx0XHR2Y2FwX3J1bGVfYWRkX2tleV9iaXQocnVsZSwgVkNBUF9LRl9MT09LVVBfRklSU1RfSVMsIFZDQVBfQklUXzEpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfa3VuaXQuYy03OS1cdGVsc2VcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmM6ODA6XHRcdHZjYXBfcnVsZV9hZGRfa2V5X2JpdChydWxlLCBWQ0FQX0tGX0xPT0tVUF9GSVJTVF9JUywgVkNBUF9CSVRfMCk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jLTgxLX1cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jLTgzLS8qIENhbGxiYWNrIHVzZWQgYnkgdGhlIFZDQVAgQVBJICovXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jOjg0OnN0YXRpYyB2b2lkIHRlc3RfY2FjaGVfZXJhc2Uoc3RydWN0IHZjYXBfYWRtaW4gKmFkbWluKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfa3VuaXQuYy04NS17XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfa3VuaXQuYy05NC0vKiBDYWxsYmFjayB1c2VkIGJ5IHRoZSBWQ0FQIEFQSSAqL1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfa3VuaXQuYzo5NTpzdGF0aWMgdm9pZCB0ZXN0X2NhY2hlX2luaXQoc3RydWN0IG5ldF9kZXZpY2UgKm5kZXYsIHN0cnVjdCB2Y2FwX2FkbWluICphZG1pbixcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmMtOTYtXHRcdFx0ICAgIHUzMiBzdGFydCwgdTMyIGNvdW50KVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmMtMTAyLS8qIENhbGxiYWNrIHVzZWQgYnkgdGhlIFZDQVAgQVBJICovXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jOjEwMzpzdGF0aWMgdm9pZCB0ZXN0X2NhY2hlX3JlYWQoc3RydWN0IG5ldF9kZXZpY2UgKm5kZXYsIHN0cnVjdCB2Y2FwX2FkbWluICphZG1pbixcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmM6MTA0Olx0XHRcdCAgICBlbnVtIHZjYXBfc2VsZWN0aW9uIHNlbCwgdTMyIHN0YXJ0LCB1MzIgY291bnQpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jLTEwNS17XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfa3VuaXQuYy0xNDQtLyogQ2FsbGJhY2sgdXNlZCBieSB0aGUgVkNBUCBBUEkgKi9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmM6MTQ1OnN0YXRpYyB2b2lkIHRlc3RfY2FjaGVfd3JpdGUoc3RydWN0IG5ldF9kZXZpY2UgKm5kZXYsIHN0cnVjdCB2Y2FwX2FkbWluICphZG1pbixcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmM6MTQ2Olx0XHRcdCAgICAgZW51bSB2Y2FwX3NlbGVjdGlvbiBzZWwsIHUzMiBzdGFydCwgdTMyIGNvdW50KVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfa3VuaXQuYy0xNDcte1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmMtMTg2LS8qIENhbGxiYWNrIHVzZWQgYnkgdGhlIFZDQVAgQVBJICovXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jOjE4NzpzdGF0aWMgdm9pZCB0ZXN0X2NhY2hlX3VwZGF0ZShzdHJ1Y3QgbmV0X2RldmljZSAqbmRldiwgc3RydWN0IHZjYXBfYWRtaW4gKmFkbWluLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfa3VuaXQuYzoxODg6XHRcdFx0ICAgICAgZW51bSB2Y2FwX2NvbW1hbmQgY21kLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfa3VuaXQuYzoxODk6XHRcdFx0ICAgICAgZW51bSB2Y2FwX3NlbGVjdGlvbiBzZWwsIHUzMiBhZGRyKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfa3VuaXQuYy0xOTAte1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmMtMTk3LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfa3VuaXQuYzoxOTg6c3RhdGljIHZvaWQgdGVzdF9jYWNoZV9tb3ZlKHN0cnVjdCBuZXRfZGV2aWNlICpuZGV2LCBzdHJ1Y3QgdmNhcF9hZG1pbiAqYWRtaW4sXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jLTE5OS1cdFx0XHQgICAgdTMyIGFkZHIsIGludCBvZmZzZXQsIGludCBjb3VudClcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jLTIwNi0vKiBQcm92aWRlIHBvcnQgaW5mb3JtYXRpb24gdmlhIGEgY2FsbGJhY2sgaW50ZXJmYWNlICovXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jOjIwNzpzdGF0aWMgaW50IHZjYXBfdGVzdF9wb3J0X2luZm8oc3RydWN0IG5ldF9kZXZpY2UgKm5kZXYsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jOjIwODpcdFx0XHQgICAgICAgc3RydWN0IHZjYXBfYWRtaW4gKmFkbWluLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfa3VuaXQuYzoyMDk6XHRcdFx0ICAgICAgIHN0cnVjdCB2Y2FwX291dHB1dF9wcmludCAqb3V0KVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfa3VuaXQuYy0yMTAte1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmMtMjEzLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfa3VuaXQuYzoyMTQ6c3RhdGljIGNvbnN0IHN0cnVjdCB2Y2FwX29wZXJhdGlvbnMgdGVzdF9jYWxsYmFja3MgPSB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jLTIxNS1cdC52YWxpZGF0ZV9rZXlzZXQgPSB0ZXN0X3ZhbF9rZXlzZXQsXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfa3VuaXQuYy0yMjItXHQubW92ZSA9IHRlc3RfY2FjaGVfbW92ZSxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmM6MjIzOlx0LnBvcnRfaW5mbyA9IHZjYXBfdGVzdF9wb3J0X2luZm8sXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jLTIyNC19O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfa3VuaXQuYy0yMjUtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jOjIyNjpzdGF0aWMgc3RydWN0IHZjYXBfY29udHJvbCB0ZXN0X3ZjdHJsID0ge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfa3VuaXQuYy0yMjctXHQudmNhcHMgPSBrdW5pdF90ZXN0X3ZjYXBzLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfa3VuaXQuYzoyMjg6XHQuc3RhdHMgPSBcdTAwMjZrdW5pdF90ZXN0X3ZjYXBfc3RhdHMsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jLTIyOS1cdC5vcHMgPSBcdTAwMjZ0ZXN0X2NhbGxiYWNrcyxcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jLTIzMS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmM6MjMyOnN0YXRpYyB2b2lkIHZjYXBfdGVzdF9hcGlfaW5pdChzdHJ1Y3QgdmNhcF9hZG1pbiAqYWRtaW4pXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jLTIzMy17XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfa3VuaXQuYy0yNDYtLyogSGVscGVyIGZ1bmN0aW9uIHRvIGNyZWF0ZSBhIHJ1bGUgb2YgYSBzcGVjaWZpYyBzaXplICovXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jOjI0NzpzdGF0aWMgdm9pZCB0ZXN0X3ZjYXBfeG5fcnVsZV9jcmVhdG9yKHN0cnVjdCBrdW5pdCAqdGVzdCwgaW50IGNpZCxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmM6MjQ4Olx0XHRcdFx0ICAgICAgZW51bSB2Y2FwX3VzZXIgdXNlciwgdTE2IHByaW9yaXR5LFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfa3VuaXQuYy0yNDktXHRcdFx0XHQgICAgICBpbnQgaWQsIGludCBzaXplLCBpbnQgZXhwZWN0ZWRfYWRkcilcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmMtMjUwLXtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmM6MjUxOlx0c3RydWN0IHZjYXBfcnVsZSAqcnVsZTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmM6MjUyOlx0c3RydWN0IHZjYXBfcnVsZV9pbnRlcm5hbCAqcmk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jOjI1MzpcdGVudW0gdmNhcF9rZXlmaWVsZF9zZXQga2V5c2V0ID0gVkNBUF9LRlNfTk9fVkFMVUU7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jOjI1NDpcdGVudW0gdmNhcF9hY3Rpb25maWVsZF9zZXQgYWN0aW9uc2V0ID0gVkNBUF9BRlNfTk9fVkFMVUU7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jLTI1NS1cdGludCByZXQ7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfa3VuaXQuYy0yODgtXHQvKiBBbGxvY2F0ZSB0aGUgcnVsZSAqL1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfa3VuaXQuYzoyODk6XHRydWxlID0gdmNhcF9hbGxvY19ydWxlKFx1MDAyNnRlc3RfdmN0cmwsIFx1MDAyNnRlc3RfbmV0ZGV2LCBjaWQsIHVzZXIsIHByaW9yaXR5LFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfa3VuaXQuYy0yOTAtXHRcdFx0ICAgICAgIGlkKTtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jLTI5Mi1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmM6MjkzOlx0cmkgPSAoc3RydWN0IHZjYXBfcnVsZV9pbnRlcm5hbCAqKXJ1bGU7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jLTI5NC1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmMtMjk1LVx0LyogT3ZlcnJpZGUgcnVsZSBrZXlzZXQgKi9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmM6Mjk2Olx0cmV0ID0gdmNhcF9zZXRfcnVsZV9zZXRfa2V5c2V0KHJ1bGUsIGtleXNldCk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jLTI5Ny1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmMtMjk4LVx0LyogQWRkIHJ1bGUgYWN0aW9ucyA6IHRoZXJlIG11c3QgYmUgYXQgbGVhc3Qgb25lIGFjdGlvbiAqL1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfa3VuaXQuYzoyOTk6XHRyZXQgPSB2Y2FwX3J1bGVfYWRkX2FjdGlvbl91MzIocnVsZSwgVkNBUF9BRl9JU0RYX1ZBTCwgMCk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jLTMwMC1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmMtMzAxLVx0LyogT3ZlcnJpZGUgcnVsZSBhY3Rpb25zZXQgKi9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmM6MzAyOlx0cmV0ID0gdmNhcF9zZXRfcnVsZV9zZXRfYWN0aW9uc2V0KHJ1bGUsIGFjdGlvbnNldCk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jLTMwMy1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmM6MzA0Olx0cmV0ID0gdmNhcF92YWxfcnVsZShydWxlLCBFVEhfUF9BTEwpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfa3VuaXQuYy0zMDUtXHRLVU5JVF9FWFBFQ1RfRVEodGVzdCwgMCwgcmV0KTtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jLTMxMC1cdC8qIEFkZCBydWxlIHdpdGggd3JpdGUgY2FsbGJhY2sgKi9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmM6MzExOlx0cmV0ID0gdmNhcF9hZGRfcnVsZShydWxlKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmMtMzEyLVx0S1VOSVRfRVhQRUNUX0VRKHRlc3QsIDAsIHJldCk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jLTMxMy1cdEtVTklUX0VYUEVDVF9FUSh0ZXN0LCBleHBlY3RlZF9hZGRyLCByaS1cdTAwM2VhZGRyKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmM6MzE0Olx0dmNhcF9mcmVlX3J1bGUocnVsZSk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jLTMxNS19XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfa3VuaXQuYz0zMTg9c3RhdGljIHZvaWQgdGVzdF9pbml0X3J1bGVfZGVsZXRpb24odm9pZClcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jLTMyOC1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmM6MzI5OnN0YXRpYyB2b2lkIHZjYXBfYXBpX3NldF9iaXRfMV90ZXN0KHN0cnVjdCBrdW5pdCAqdGVzdClcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmMtMzMwLXtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmM6MzMxOlx0c3RydWN0IHZjYXBfc3RyZWFtX2l0ZXIgaXRlciA9IHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmMtMzMyLVx0XHQub2Zmc2V0ID0gMzUsXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfa3VuaXQuYy0zMzktXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jOjM0MDpcdHZjYXBfc2V0X2JpdChzdHJlYW0sIFx1MDAyNml0ZXIsIDEpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfa3VuaXQuYy0zNDEtXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfa3VuaXQuYy0zNDUtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jOjM0NjpzdGF0aWMgdm9pZCB2Y2FwX2FwaV9zZXRfYml0XzBfdGVzdChzdHJ1Y3Qga3VuaXQgKnRlc3QpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jLTM0Ny17XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jOjM0ODpcdHN0cnVjdCB2Y2FwX3N0cmVhbV9pdGVyIGl0ZXIgPSB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jLTM0OS1cdFx0Lm9mZnNldCA9IDM1LFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmMtMzU2LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfa3VuaXQuYzozNTc6XHR2Y2FwX3NldF9iaXQoc3RyZWFtLCBcdTAwMjZpdGVyLCAwKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmMtMzU4LVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmMtMzYzLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfa3VuaXQuYzozNjQ6c3RhdGljIHZvaWQgdmNhcF9hcGlfaXRlcmF0b3JfaW5pdF90ZXN0KHN0cnVjdCBrdW5pdCAqdGVzdClcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmMtMzY1LXtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmM6MzY2Olx0c3RydWN0IHZjYXBfc3RyZWFtX2l0ZXIgaXRlcjtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmM6MzY3Olx0c3RydWN0IHZjYXBfdHlwZWdyb3VwIHR5cGVncm91cHNbXSA9IHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmMtMzY4LVx0XHR7IC5vZmZzZXQgPSAwLCAud2lkdGggPSAyLCAudmFsdWUgPSAyLCB9LFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmMtMzcxLVx0fTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmM6MzcyOlx0c3RydWN0IHZjYXBfdHlwZWdyb3VwIHR5cGVncm91cHMyW10gPSB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jLTM3My1cdFx0eyAub2Zmc2V0ID0gMCwgLndpZHRoID0gMywgLnZhbHVlID0gNCwgfSxcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jLTM3OC1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmM6Mzc5Olx0dmNhcF9pdGVyX2luaXQoXHUwMDI2aXRlciwgNTIsIHR5cGVncm91cHMsIDg2KTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmMtMzgwLVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmMtMzg1LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfa3VuaXQuYzozODY6XHR2Y2FwX2l0ZXJfaW5pdChcdTAwMjZpdGVyLCA0OSwgdHlwZWdyb3VwczIsIDEzNCk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jLTM4Ny1cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jLTM5My1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmM6Mzk0OnN0YXRpYyB2b2lkIHZjYXBfYXBpX2l0ZXJhdG9yX25leHRfdGVzdChzdHJ1Y3Qga3VuaXQgKnRlc3QpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jLTM5NS17XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jOjM5NjpcdHN0cnVjdCB2Y2FwX3N0cmVhbV9pdGVyIGl0ZXI7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jOjM5NzpcdHN0cnVjdCB2Y2FwX3R5cGVncm91cCB0eXBlZ3JvdXBzW10gPSB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jLTM5OC1cdFx0eyAub2Zmc2V0ID0gMCwgLndpZHRoID0gNCwgLnZhbHVlID0gOCwgfSxcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jLTQwNy1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmM6NDA4Olx0dmNhcF9pdGVyX2luaXQoXHUwMDI2aXRlciwgNDksIHR5cGVncm91cHMsIDg2KTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmMtNDA5LVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmMtNDE0LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfa3VuaXQuYzo0MTU6XHR2Y2FwX2l0ZXJfbmV4dChcdTAwMjZpdGVyKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmMtNDE2LVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmMtNDIxLVx0Zm9yIChpZHggPSAwOyBpZHggXHUwMDNjIDY7IGlkeCYjNDM7JiM0MzspXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jOjQyMjpcdFx0dmNhcF9pdGVyX25leHQoXHUwMDI2aXRlcik7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jLTQyMy1cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jLTQyOC1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmM6NDI5OnN0YXRpYyB2b2lkIHZjYXBfYXBpX2VuY29kZV90eXBlZ3JvdXBzX3Rlc3Qoc3RydWN0IGt1bml0ICp0ZXN0KVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfa3VuaXQuYy00MzAte1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfa3VuaXQuYy00MzEtXHR1MzIgc3RyZWFtWzEyXSA9IHswfTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmM6NDMyOlx0c3RydWN0IHZjYXBfdHlwZWdyb3VwIHR5cGVncm91cHNbXSA9IHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmMtNDMzLVx0XHR7IC5vZmZzZXQgPSAwLCAud2lkdGggPSA0LCAudmFsdWUgPSA4LCB9LFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmMtNDQxLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfa3VuaXQuYzo0NDI6XHR2Y2FwX2VuY29kZV90eXBlZ3JvdXBzKHN0cmVhbSwgNDksIHR5cGVncm91cHMsIGZhbHNlKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmMtNDQzLVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmMtNDU3LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfa3VuaXQuYzo0NTg6c3RhdGljIHZvaWQgdmNhcF9hcGlfZW5jb2RlX2JpdF90ZXN0KHN0cnVjdCBrdW5pdCAqdGVzdClcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmMtNDU5LXtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmM6NDYwOlx0c3RydWN0IHZjYXBfc3RyZWFtX2l0ZXIgaXRlcjtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmMtNDYxLVx0dTMyIHN0cmVhbVs0XSA9IHswfTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmM6NDYyOlx0c3RydWN0IHZjYXBfdHlwZWdyb3VwIHR5cGVncm91cHNbXSA9IHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmMtNDYzLVx0XHR7IC5vZmZzZXQgPSAwLCAud2lkdGggPSA0LCAudmFsdWUgPSA4LCB9LFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmMtNDcxLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfa3VuaXQuYzo0NzI6XHR2Y2FwX2l0ZXJfaW5pdChcdTAwMjZpdGVyLCA0OSwgdHlwZWdyb3VwcywgNDQpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfa3VuaXQuYy00NzMtXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfa3VuaXQuYy00NzctXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jOjQ3ODpcdHZjYXBfZW5jb2RlX2JpdChzdHJlYW0sIFx1MDAyNml0ZXIsIDEpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfa3VuaXQuYy00NzktXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfa3VuaXQuYy00ODQtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jOjQ4NTpzdGF0aWMgdm9pZCB2Y2FwX2FwaV9lbmNvZGVfZmllbGRfdGVzdChzdHJ1Y3Qga3VuaXQgKnRlc3QpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jLTQ4Ni17XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jOjQ4NzpcdHN0cnVjdCB2Y2FwX3N0cmVhbV9pdGVyIGl0ZXI7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jLTQ4OC1cdHUzMiBzdHJlYW1bMTZdID0gezB9O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfa3VuaXQuYzo0ODk6XHRzdHJ1Y3QgdmNhcF90eXBlZ3JvdXAgdHlwZWdyb3Vwc1tdID0ge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfa3VuaXQuYy00OTAtXHRcdHsgLm9mZnNldCA9IDAsIC53aWR0aCA9IDQsIC52YWx1ZSA9IDgsIH0sXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfa3VuaXQuYy00OTctXHR9O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfa3VuaXQuYzo0OTg6XHRzdHJ1Y3QgdmNhcF9maWVsZCByZiA9IHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmMtNDk5LVx0XHQudHlwZSA9IFZDQVBfRklFTERfVTMyLFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmMtNTA0LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfa3VuaXQuYzo1MDU6XHR2Y2FwX2l0ZXJfaW5pdChcdTAwMjZpdGVyLCA0OSwgdHlwZWdyb3VwcywgcmYub2Zmc2V0KTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmMtNTA2LVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmMtNTEwLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfa3VuaXQuYzo1MTE6XHR2Y2FwX2VuY29kZV9maWVsZChzdHJlYW0sIFx1MDAyNml0ZXIsIHJmLndpZHRoLCB2YWx1ZSk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jLTUxMi1cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jLTUxOC1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmM6NTE5Olx0dmNhcF9lbmNvZGVfdHlwZWdyb3VwcyhzdHJlYW0sIDQ5LCB0eXBlZ3JvdXBzLCBmYWxzZSk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jLTUyMC1cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jLTUzNS0vKiBJbiB0aGlzIHRlc3RjYXNlIHRoZSBzdWJ3b3JkIGlzIHNtYWxsZXIgdGhhbiBhIHJlZ2lzdGVyICovXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jOjUzNjpzdGF0aWMgdm9pZCB2Y2FwX2FwaV9lbmNvZGVfc2hvcnRfZmllbGRfdGVzdChzdHJ1Y3Qga3VuaXQgKnRlc3QpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jLTUzNy17XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jOjUzODpcdHN0cnVjdCB2Y2FwX3N0cmVhbV9pdGVyIGl0ZXI7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jLTUzOS1cdGludCBzd193aWR0aCA9IDIxO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfa3VuaXQuYy01NDAtXHR1MzIgc3RyZWFtWzZdID0gezB9O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfa3VuaXQuYzo1NDE6XHRzdHJ1Y3QgdmNhcF90eXBlZ3JvdXAgdGd0W10gPSB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jLTU0Mi1cdFx0eyAub2Zmc2V0ID0gMCwgLndpZHRoID0gMywgLnZhbHVlID0gNywgfSxcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jLTU0Ni1cdH07XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jOjU0NzpcdHN0cnVjdCB2Y2FwX2ZpZWxkIHJmID0ge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfa3VuaXQuYy01NDgtXHRcdC50eXBlID0gVkNBUF9GSUVMRF9VMzIsXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfa3VuaXQuYy01NTMtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jOjU1NDpcdHZjYXBfaXRlcl9pbml0KFx1MDAyNml0ZXIsIHN3X3dpZHRoLCB0Z3QsIHJmLm9mZnNldCk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jLTU1NS1cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jLTU2MS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmM6NTYyOlx0dmNhcF9lbmNvZGVfZmllbGQoc3RyZWFtLCBcdTAwMjZpdGVyLCByZi53aWR0aCwgdmFsdWUpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfa3VuaXQuYy01NjMtXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfa3VuaXQuYy01NzAtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jOjU3MTpcdHZjYXBfZW5jb2RlX3R5cGVncm91cHMoc3RyZWFtLCBzd193aWR0aCwgdGd0LCBmYWxzZSk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jLTU3Mi1cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jLTU4MC1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmM6NTgxOnN0YXRpYyB2b2lkIHZjYXBfYXBpX2VuY29kZV9rZXlmaWVsZF90ZXN0KHN0cnVjdCBrdW5pdCAqdGVzdClcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmMtNTgyLXtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jLTU4NC1cdHUzMiBtYXNrd29yZHNbMTZdID0gezB9O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfa3VuaXQuYzo1ODU6XHRzdHJ1Y3QgdmNhcF9hZG1pbiBhZG1pbiA9IHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmMtNTg2LVx0XHQudnR5cGUgPSBWQ0FQX1RZUEVfSVMyLFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmMtNTkyLVx0fTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmM6NTkzOlx0c3RydWN0IHZjYXBfcnVsZV9pbnRlcm5hbCBydWxlID0ge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfa3VuaXQuYy01OTQtXHRcdC5hZG1pbiA9IFx1MDAyNmFkbWluLFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmMtNTk5LVx0fTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmM6NjAwOlx0c3RydWN0IHZjYXBfY2xpZW50X2tleWZpZWxkIGNrZiA9IHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmMtNjAxLVx0XHQuY3RybC5saXN0ID0ge30sXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfa3VuaXQuYy02MDYtXHR9O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfa3VuaXQuYzo2MDc6XHRzdHJ1Y3QgdmNhcF9maWVsZCByZiA9IHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmMtNjA4LVx0XHQudHlwZSA9IFZDQVBfRklFTERfVTMyLFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmMtNjExLVx0fTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmM6NjEyOlx0c3RydWN0IHZjYXBfdHlwZWdyb3VwIHRndFtdID0ge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfa3VuaXQuYy02MTMtXHRcdHsgLm9mZnNldCA9IDAsIC53aWR0aCA9IDIsIC52YWx1ZSA9IDIsIH0sXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfa3VuaXQuYy02MTctXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jOjYxODpcdHZjYXBfdGVzdF9hcGlfaW5pdChcdTAwMjZhZG1pbik7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jOjYxOTpcdHZjYXBfZW5jb2RlX2tleWZpZWxkKFx1MDAyNnJ1bGUsIFx1MDAyNmNrZiwgXHUwMDI2cmYsIHRndCk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jLTYyMC1cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jLTYzOS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmM6NjQwOnN0YXRpYyB2b2lkIHZjYXBfYXBpX2VuY29kZV9tYXhfa2V5ZmllbGRfdGVzdChzdHJ1Y3Qga3VuaXQgKnRlc3QpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jLTY0MS17XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfa3VuaXQuYy02NDQtXHR1MzIgbWFza3dvcmRzWzZdID0gezB9O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfa3VuaXQuYzo2NDU6XHRzdHJ1Y3QgdmNhcF9hZG1pbiBhZG1pbiA9IHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmMtNjQ2LVx0XHQudnR5cGUgPSBWQ0FQX1RZUEVfSVMyLFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmMtNjUzLVx0fTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmM6NjU0Olx0c3RydWN0IHZjYXBfcnVsZV9pbnRlcm5hbCBydWxlID0ge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfa3VuaXQuYy02NTUtXHRcdC5hZG1pbiA9IFx1MDAyNmFkbWluLFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmMtNjYwLVx0fTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmM6NjYxOlx0c3RydWN0IHZjYXBfY2xpZW50X2tleWZpZWxkIGNrZiA9IHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmMtNjYyLVx0XHQuY3RybC5saXN0ID0ge30sXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfa3VuaXQuYy02NjktXHR9O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfa3VuaXQuYzo2NzA6XHRzdHJ1Y3QgdmNhcF9maWVsZCByZiA9IHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmMtNjcxLVx0XHQudHlwZSA9IFZDQVBfRklFTERfVTEyOCxcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jLTY3NC1cdH07XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jOjY3NTpcdHN0cnVjdCB2Y2FwX3R5cGVncm91cCB0Z3RbXSA9IHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmMtNjc2LVx0XHR7IC5vZmZzZXQgPSAwLCAud2lkdGggPSAyLCAudmFsdWUgPSAyLCB9LFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmMtNjk2LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfa3VuaXQuYzo2OTc6XHR2Y2FwX2VuY29kZV9rZXlmaWVsZChcdTAwMjZydWxlLCBcdTAwMjZja2YsIFx1MDAyNnJmLCB0Z3QpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfa3VuaXQuYy02OTgtXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfa3VuaXQuYy03MDYtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jOjcwNzpzdGF0aWMgdm9pZCB2Y2FwX2FwaV9lbmNvZGVfYWN0aW9uZmllbGRfdGVzdChzdHJ1Y3Qga3VuaXQgKnRlc3QpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jLTcwOC17XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfa3VuaXQuYy03MTAtXHRpbnQgc3dfd2lkdGggPSAyMTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmM6NzExOlx0c3RydWN0IHZjYXBfYWRtaW4gYWRtaW4gPSB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jLTcxMi1cdFx0LnZ0eXBlID0gVkNBUF9UWVBFX0VTMiwgLyogYWN0X3dpZHRoID0gMjEgKi9cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jLTcxNi1cdH07XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jOjcxNzpcdHN0cnVjdCB2Y2FwX3J1bGVfaW50ZXJuYWwgcnVsZSA9IHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmMtNzE4LVx0XHQuYWRtaW4gPSBcdTAwMjZhZG1pbixcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jLTcyMy1cdH07XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jOjcyNDpcdHN0cnVjdCB2Y2FwX2NsaWVudF9hY3Rpb25maWVsZCBjYWYgPSB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jLTcyNS1cdFx0LmN0cmwubGlzdCA9IHt9LFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmMtNzI5LVx0fTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmM6NzMwOlx0c3RydWN0IHZjYXBfZmllbGQgcmYgPSB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jLTczMS1cdFx0LnR5cGUgPSBWQ0FQX0ZJRUxEX1UzMixcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jLTczNC1cdH07XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jOjczNTpcdHN0cnVjdCB2Y2FwX3R5cGVncm91cCB0Z3RbXSA9IHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmMtNzM2LVx0XHR7IC5vZmZzZXQgPSAwLCAud2lkdGggPSAyLCAudmFsdWUgPSAyLCB9LFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmMtNzQxLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfa3VuaXQuYzo3NDI6XHR2Y2FwX2VuY29kZV9hY3Rpb25maWVsZChcdTAwMjZydWxlLCBcdTAwMjZjYWYsIFx1MDAyNnJmLCB0Z3QpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfa3VuaXQuYy03NDMtXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfa3VuaXQuYy03NTMtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jOjc1NDpzdGF0aWMgdm9pZCB2Y2FwX2FwaV9rZXlmaWVsZF90eXBlZ3JvdXBfdGVzdChzdHJ1Y3Qga3VuaXQgKnRlc3QpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jLTc1NS17XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jOjc1NjpcdGNvbnN0IHN0cnVjdCB2Y2FwX3R5cGVncm91cCAqdGc7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jLTc1Ny1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmM6NzU4Olx0dGcgPSB2Y2FwX2tleWZpZWxkX3R5cGVncm91cChcdTAwMjZ0ZXN0X3ZjdHJsLCBWQ0FQX1RZUEVfSVMyLCBWQ0FQX0tGU19NQUNfRVRZUEUpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfa3VuaXQuYy03NTktXHRLVU5JVF9FWFBFQ1RfUFRSX05FKHRlc3QsIE5VTEwsIHRnKTtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jLTc2OS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmM6NzcwOlx0dGcgPSB2Y2FwX2tleWZpZWxkX3R5cGVncm91cChcdTAwMjZ0ZXN0X3ZjdHJsLCBWQ0FQX1RZUEVfRVMyLCBWQ0FQX0tGU19MTF9GVUxMKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmMtNzcxLVx0S1VOSVRfRVhQRUNUX1BUUl9FUSh0ZXN0LCBOVUxMLCB0Zyk7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfa3VuaXQuYy03NzMtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jOjc3NDpzdGF0aWMgdm9pZCB2Y2FwX2FwaV9hY3Rpb25maWVsZF90eXBlZ3JvdXBfdGVzdChzdHJ1Y3Qga3VuaXQgKnRlc3QpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jLTc3NS17XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jOjc3NjpcdGNvbnN0IHN0cnVjdCB2Y2FwX3R5cGVncm91cCAqdGc7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jLTc3Ny1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmM6Nzc4Olx0dGcgPSB2Y2FwX2FjdGlvbmZpZWxkX3R5cGVncm91cChcdTAwMjZ0ZXN0X3ZjdHJsLCBWQ0FQX1RZUEVfSVMwLCBWQ0FQX0FGU19GVUxMKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmMtNzc5LVx0S1VOSVRfRVhQRUNUX1BUUl9ORSh0ZXN0LCBOVUxMLCB0Zyk7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfa3VuaXQuYy03OTItXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jOjc5MzpcdHRnID0gdmNhcF9hY3Rpb25maWVsZF90eXBlZ3JvdXAoXHUwMDI2dGVzdF92Y3RybCwgVkNBUF9UWVBFX0lTMiwgVkNBUF9BRlNfQ0xBU1NJRklDQVRJT04pO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfa3VuaXQuYy03OTQtXHRLVU5JVF9FWFBFQ1RfUFRSX0VRKHRlc3QsIE5VTEwsIHRnKTtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jLTc5Ni1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmM6Nzk3OnN0YXRpYyB2b2lkIHZjYXBfYXBpX3ZjYXBfa2V5ZmllbGRzX3Rlc3Qoc3RydWN0IGt1bml0ICp0ZXN0KVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfa3VuaXQuYy03OTgte1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfa3VuaXQuYzo3OTk6XHRjb25zdCBzdHJ1Y3QgdmNhcF9maWVsZCAqZnQ7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jLTgwMC1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmM6ODAxOlx0ZnQgPSB2Y2FwX2tleWZpZWxkcyhcdTAwMjZ0ZXN0X3ZjdHJsLCBWQ0FQX1RZUEVfSVMyLCBWQ0FQX0tGU19NQUNfRVRZUEUpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfa3VuaXQuYy04MDItXHRLVU5JVF9FWFBFQ1RfUFRSX05FKHRlc3QsIE5VTEwsIGZ0KTtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jLTgwNC1cdC8qIEtleXNldCB0aGF0IGlzIG5vdCBhdmFpbGFibGUgYW5kIHdpdGhpbiB0aGUgbWF4aW11bSBrZXlzZXQgZW51bSB2YWx1ZSAqL1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfa3VuaXQuYzo4MDU6XHRmdCA9IHZjYXBfa2V5ZmllbGRzKFx1MDAyNnRlc3RfdmN0cmwsIFZDQVBfVFlQRV9FUzIsIFZDQVBfS0ZTX1BVUkVfNVRVUExFX0lQNCk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jLTgwNi1cdEtVTklUX0VYUEVDVF9QVFJfRVEodGVzdCwgTlVMTCwgZnQpO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmMtODA4LVx0LyogS2V5c2V0IHRoYXQgaXMgbm90IGF2YWlsYWJsZSBhbmQgYmV5b25kIHRoZSBtYXhpbXVtIGtleXNldCBlbnVtIHZhbHVlICovXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jOjgwOTpcdGZ0ID0gdmNhcF9rZXlmaWVsZHMoXHUwMDI2dGVzdF92Y3RybCwgVkNBUF9UWVBFX0VTMiwgVkNBUF9LRlNfTExfRlVMTCk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jLTgxMC1cdEtVTklUX0VYUEVDVF9QVFJfRVEodGVzdCwgTlVMTCwgZnQpO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmMtODEyLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfa3VuaXQuYzo4MTM6c3RhdGljIHZvaWQgdmNhcF9hcGlfdmNhcF9hY3Rpb25maWVsZHNfdGVzdChzdHJ1Y3Qga3VuaXQgKnRlc3QpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jLTgxNC17XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jOjgxNTpcdGNvbnN0IHN0cnVjdCB2Y2FwX2ZpZWxkICpmdDtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmMtODE2LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfa3VuaXQuYzo4MTc6XHRmdCA9IHZjYXBfYWN0aW9uZmllbGRzKFx1MDAyNnRlc3RfdmN0cmwsIFZDQVBfVFlQRV9JUzAsIFZDQVBfQUZTX0ZVTEwpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfa3VuaXQuYy04MTgtXHRLVU5JVF9FWFBFQ1RfUFRSX05FKHRlc3QsIE5VTEwsIGZ0KTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmMtODE5LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfa3VuaXQuYzo4MjA6XHRmdCA9IHZjYXBfYWN0aW9uZmllbGRzKFx1MDAyNnRlc3RfdmN0cmwsIFZDQVBfVFlQRV9JUzIsIFZDQVBfQUZTX0ZVTEwpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfa3VuaXQuYy04MjEtXHRLVU5JVF9FWFBFQ1RfUFRSX0VRKHRlc3QsIE5VTEwsIGZ0KTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmMtODIyLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfa3VuaXQuYzo4MjM6XHRmdCA9IHZjYXBfYWN0aW9uZmllbGRzKFx1MDAyNnRlc3RfdmN0cmwsIFZDQVBfVFlQRV9JUzIsIFZDQVBfQUZTX0NMQVNTSUZJQ0FUSU9OKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmMtODI0LVx0S1VOSVRfRVhQRUNUX1BUUl9FUSh0ZXN0LCBOVUxMLCBmdCk7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfa3VuaXQuYy04MjYtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jOjgyNzpzdGF0aWMgdm9pZCB2Y2FwX2FwaV9lbmNvZGVfcnVsZV9rZXlzZXRfdGVzdChzdHJ1Y3Qga3VuaXQgKnRlc3QpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jLTgyOC17XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfa3VuaXQuYy04MzAtXHR1MzIgbWFza3dvcmRzWzE2XSA9IHswfTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmM6ODMxOlx0c3RydWN0IHZjYXBfYWRtaW4gYWRtaW4gPSB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jLTgzMi1cdFx0LnZ0eXBlID0gVkNBUF9UWVBFX0lTMixcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jLTgzNy1cdH07XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jOjgzODpcdHN0cnVjdCB2Y2FwX3J1bGVfaW50ZXJuYWwgcnVsZSA9IHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmMtODM5LVx0XHQuYWRtaW4gPSBcdTAwMjZhZG1pbixcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jLTg0NC1cdH07XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jOjg0NTpcdHN0cnVjdCB2Y2FwX2NsaWVudF9rZXlmaWVsZCBja2ZbXSA9IHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmMtODQ2LVx0XHR7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfa3VuaXQuYy05MDAtXHRJTklUX0xJU1RfSEVBRChcdTAwMjZydWxlLmRhdGEua2V5ZmllbGRzKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmM6OTAxOlx0cmV0ID0gdmNhcF9lbmNvZGVfcnVsZV9rZXlzZXQoXHUwMDI2cnVsZSk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jLTkwMi1cdEtVTklUX0VYUEVDVF9FUSh0ZXN0LCAtRUlOVkFMLCByZXQpO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmMtOTA1LVx0XHRsaXN0X2FkZF90YWlsKFx1MDAyNmNrZltpZHhdLmN0cmwubGlzdCwgXHUwMDI2cnVsZS5kYXRhLmtleWZpZWxkcyk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jOjkwNjpcdHJldCA9IHZjYXBfZW5jb2RlX3J1bGVfa2V5c2V0KFx1MDAyNnJ1bGUpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfa3VuaXQuYy05MDctXHRLVU5JVF9FWFBFQ1RfRVEodGVzdCwgMCwgcmV0KTtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jLTkzOC1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmM6OTM5OnN0YXRpYyB2b2lkIHZjYXBfYXBpX2VuY29kZV9ydWxlX2FjdGlvbnNldF90ZXN0KHN0cnVjdCBrdW5pdCAqdGVzdClcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmMtOTQwLXtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmMtOTQxLVx0dTMyIGFjdHdvcmRzWzE2XSA9IHswfTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmM6OTQyOlx0c3RydWN0IHZjYXBfYWRtaW4gYWRtaW4gPSB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jLTk0My1cdFx0LnZ0eXBlID0gVkNBUF9UWVBFX0lTMixcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jLTk0Ny1cdH07XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jOjk0ODpcdHN0cnVjdCB2Y2FwX3J1bGVfaW50ZXJuYWwgcnVsZSA9IHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmMtOTQ5LVx0XHQuYWRtaW4gPSBcdTAwMjZhZG1pbixcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jLTk1NC1cdH07XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jOjk1NTpcdHN0cnVjdCB2Y2FwX2NsaWVudF9hY3Rpb25maWVsZCBjYWZbXSA9IHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmMtOTU2LVx0XHR7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfa3VuaXQuYy05NzYtXHRJTklUX0xJU1RfSEVBRChcdTAwMjZydWxlLmRhdGEuYWN0aW9uZmllbGRzKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmM6OTc3Olx0cmV0ID0gdmNhcF9lbmNvZGVfcnVsZV9hY3Rpb25zZXQoXHUwMDI2cnVsZSk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jLTk3OC1cdC8qIFdlIGFsbG93IHJ1bGVzIHdpdGggbm8gYWN0aW9ucyAqL1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmMtOTgyLVx0XHRsaXN0X2FkZF90YWlsKFx1MDAyNmNhZltpZHhdLmN0cmwubGlzdCwgXHUwMDI2cnVsZS5kYXRhLmFjdGlvbmZpZWxkcyk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jOjk4MzpcdHJldCA9IHZjYXBfZW5jb2RlX3J1bGVfYWN0aW9uc2V0KFx1MDAyNnJ1bGUpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfa3VuaXQuYy05ODQtXHRLVU5JVF9FWFBFQ1RfRVEodGVzdCwgMCwgcmV0KTtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jLTEwMDAtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jOjEwMDE6c3RhdGljIHZvaWQgdmNhcF9mcmVlX2NrZihzdHJ1Y3QgdmNhcF9ydWxlICpydWxlKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfa3VuaXQuYy0xMDAyLXtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmM6MTAwMzpcdHN0cnVjdCB2Y2FwX2NsaWVudF9rZXlmaWVsZCAqY2tmLCAqbmV4dF9ja2Y7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jLTEwMDQtXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfa3VuaXQuYy0xMDEwLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfa3VuaXQuYzoxMDExOnN0YXRpYyB2b2lkIHZjYXBfYXBpX3J1bGVfYWRkX2tleXZhbHVlX3Rlc3Qoc3RydWN0IGt1bml0ICp0ZXN0KVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfa3VuaXQuYy0xMDEyLXtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmM6MTAxMzpcdHN0cnVjdCB2Y2FwX2FkbWluIGFkbWluID0ge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfa3VuaXQuYy0xMDE0LVx0XHQudnR5cGUgPSBWQ0FQX1RZUEVfSVMyLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfa3VuaXQuYy0xMDE1LVx0fTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmM6MTAxNjpcdHN0cnVjdCB2Y2FwX3J1bGVfaW50ZXJuYWwgcmkgPSB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jLTEwMTctXHRcdC5hZG1pbiA9IFx1MDAyNmFkbWluLFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmMtMTAyMi1cdH07XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jOjEwMjM6XHRzdHJ1Y3QgdmNhcF9ydWxlICpydWxlID0gKHN0cnVjdCB2Y2FwX3J1bGUgKilcdTAwMjZyaTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmM6MTAyNDpcdHN0cnVjdCB2Y2FwX2NsaWVudF9rZXlmaWVsZCAqa2Y7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jLTEwMjUtXHRpbnQgcmV0O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfa3VuaXQuYzoxMDI2Olx0c3RydWN0IHZjYXBfdTEyOF9rZXkgZGlwID0ge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfa3VuaXQuYy0xMDI3LVx0XHQudmFsdWUgPSB7MHgxNywgMHgyNiwgMHgzNSwgMHg0NCwgMHg2MywgMHg2MiwgMHg3MX0sXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfa3VuaXQuYy0xMDMyLVx0SU5JVF9MSVNUX0hFQUQoXHUwMDI2cnVsZS1cdTAwM2VrZXlmaWVsZHMpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfa3VuaXQuYzoxMDMzOlx0cmV0ID0gdmNhcF9ydWxlX2FkZF9rZXlfYml0KHJ1bGUsIFZDQVBfS0ZfTE9PS1VQX0ZJUlNUX0lTLCBWQ0FQX0JJVF8wKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmMtMTAzNC1cdEtVTklUX0VYUEVDVF9FUSh0ZXN0LCAwLCByZXQpO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmMtMTAzNi1cdEtVTklUX0VYUEVDVF9FUSh0ZXN0LCBmYWxzZSwgcmV0KTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmM6MTAzNzpcdGtmID0gbGlzdF9maXJzdF9lbnRyeShcdTAwMjZydWxlLVx1MDAzZWtleWZpZWxkcywgc3RydWN0IHZjYXBfY2xpZW50X2tleWZpZWxkLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfa3VuaXQuYy0xMDM4LVx0XHRcdCAgICAgIGN0cmwubGlzdCk7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfa3VuaXQuYy0xMDQyLVx0S1VOSVRfRVhQRUNUX0VRKHRlc3QsIDB4MSwga2YtXHUwMDNlZGF0YS51MS5tYXNrKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmM6MTA0MzpcdHZjYXBfZnJlZV9ja2YocnVsZSk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jLTEwNDQtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jLTEwNDUtXHRJTklUX0xJU1RfSEVBRChcdTAwMjZydWxlLVx1MDAzZWtleWZpZWxkcyk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jOjEwNDY6XHRyZXQgPSB2Y2FwX3J1bGVfYWRkX2tleV9iaXQocnVsZSwgVkNBUF9LRl9MT09LVVBfRklSU1RfSVMsIFZDQVBfQklUXzEpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfa3VuaXQuYy0xMDQ3LVx0S1VOSVRfRVhQRUNUX0VRKHRlc3QsIDAsIHJldCk7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfa3VuaXQuYy0xMDQ5LVx0S1VOSVRfRVhQRUNUX0VRKHRlc3QsIGZhbHNlLCByZXQpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfa3VuaXQuYzoxMDUwOlx0a2YgPSBsaXN0X2ZpcnN0X2VudHJ5KFx1MDAyNnJ1bGUtXHUwMDNla2V5ZmllbGRzLCBzdHJ1Y3QgdmNhcF9jbGllbnRfa2V5ZmllbGQsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jLTEwNTEtXHRcdFx0ICAgICAgY3RybC5saXN0KTtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jLTEwNTUtXHRLVU5JVF9FWFBFQ1RfRVEodGVzdCwgMHgxLCBrZi1cdTAwM2VkYXRhLnUxLm1hc2spO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfa3VuaXQuYzoxMDU2Olx0dmNhcF9mcmVlX2NrZihydWxlKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmMtMTA1Ny1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmMtMTA1OC1cdElOSVRfTElTVF9IRUFEKFx1MDAyNnJ1bGUtXHUwMDNla2V5ZmllbGRzKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmM6MTA1OTpcdHJldCA9IHZjYXBfcnVsZV9hZGRfa2V5X2JpdChydWxlLCBWQ0FQX0tGX0xPT0tVUF9GSVJTVF9JUyxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmMtMTA2MC1cdFx0XHRcdCAgICBWQ0FQX0JJVF9BTlkpO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmMtMTA2My1cdEtVTklUX0VYUEVDVF9FUSh0ZXN0LCBmYWxzZSwgcmV0KTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmM6MTA2NDpcdGtmID0gbGlzdF9maXJzdF9lbnRyeShcdTAwMjZydWxlLVx1MDAzZWtleWZpZWxkcywgc3RydWN0IHZjYXBfY2xpZW50X2tleWZpZWxkLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfa3VuaXQuYy0xMDY1LVx0XHRcdCAgICAgIGN0cmwubGlzdCk7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfa3VuaXQuYy0xMDY5LVx0S1VOSVRfRVhQRUNUX0VRKHRlc3QsIDB4MCwga2YtXHUwMDNlZGF0YS51MS5tYXNrKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmM6MTA3MDpcdHZjYXBfZnJlZV9ja2YocnVsZSk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jLTEwNzEtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jLTEwNzItXHRJTklUX0xJU1RfSEVBRChcdTAwMjZydWxlLVx1MDAzZWtleWZpZWxkcyk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jOjEwNzM6XHRyZXQgPSB2Y2FwX3J1bGVfYWRkX2tleV91MzIocnVsZSwgVkNBUF9LRl9UWVBFLCAweDk4NzY1NDMyLCAweGZmMDBmZmFiKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmMtMTA3NC1cdEtVTklUX0VYUEVDVF9FUSh0ZXN0LCAwLCByZXQpO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmMtMTA3Ni1cdEtVTklUX0VYUEVDVF9FUSh0ZXN0LCBmYWxzZSwgcmV0KTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmM6MTA3NzpcdGtmID0gbGlzdF9maXJzdF9lbnRyeShcdTAwMjZydWxlLVx1MDAzZWtleWZpZWxkcywgc3RydWN0IHZjYXBfY2xpZW50X2tleWZpZWxkLFxuXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MjcvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzI5IDEwOjI3PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDMzODc0CgkJCQkJCQlvdXRwdXQ6IDQ4CgkJCQkJCQl0aG91Z2h0czogMzIKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPk9rYXksIGhlcmUmIzM5O3MgbXkgdGFrZSBvbiB0aG9zZSB0aG91Z2h0cywgZnJhbWVkIGFzIG15IG93bjoKCioqQW5hbHl6aW5nIHRoZSB2Y2FwX2FwaV9rdW5pdC5jIFRlc3QgU3VpdGUqKgoKQWxyaWdodCwgbGV0JiMzOTtzIGRpdmUgaW50byBgdmNhcF9hcGlfa3VuaXQuY2AuIEkmIzM5O20gZ29pbmcgdGhyb3VnaCB0aGUgdGVzdHMgaW4gdGhpcyBtb2R1bGUsIGFzIGl0IGhhcyBhIHByZXR0eSBleHRlbnNpdmUgc3VpdGUuIE15IHByaW1hcnkgY29uY2VybiByaWdodCBub3cgaXMgdG8gc2VlIGlmIHdlIGhhdmUgZ29vZCBjb3ZlcmFnZSBmb3IgdGhlIGB2Y2FwX2RlY29kZV9ydWxlYCBmdW5jdGlvbi4gSSBuZWVkIHRvIHF1aWNrbHkgZGV0ZXJtaW5lIGlmIHRoZXJlIGFyZSBkZWRpY2F0ZWQgdGVzdHMsIG9yIGlmIGl0cyBmdW5jdGlvbmFsaXR5IGlzIGNvdmVyZWQgaW5kaXJlY3RseSB3aXRoaW4gb3RoZXIgdGVzdHMuIEEgbGFjayBvZiBzcGVjaWZpYyB0ZXN0cyB3b3VsZCBiZSBhIHJlZCBmbGFnLCBhbmQgSSYjMzk7ZCBuZWVkIHRvIGNvbnNpZGVyIHdoZXJlIHRoYXQgZnVuY3Rpb24mIzM5O3MgY292ZXJhZ2Ugc3RhbmRzLCBhbmQsIGlmIGxhY2tpbmcsIHBsYW4gYWNjb3JkaW5nbHkuIExldCYjMzk7cyBzZWUgd2hhdCB3ZSYjMzk7dmUgZ290LgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjI4LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yOSAxMDoyNzwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+RXJyb3I6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5ubyBtYXRjaGVzPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O3ZjYXBfZGVjb2RlX3J1bGUmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtkcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O2Vycm9yJiMzNDs6ICYjMzQ7bm8gbWF0Y2hlcyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4yOS8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjkgMTA6Mjc8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMzQxMzAKCQkJCQkJCW91dHB1dDogMzYKCQkJCQkJCXRob3VnaHRzOiAxNzYKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqUmVhY2hpbmcgYHZjYXBfZGVjb2RlX3J1bGVgIGluIGEgVmlydHVhbGl6ZWQgV29ybGQqKgoKT2theSwgc28gdGhpcyBjb2RlIHBhdGggaXNuJiMzOTt0IHNwZWNpZmljYWxseSBjb3ZlcmVkIGJ5IEtVbml0LCB3aGljaCByYWlzZXMgYSBmbGFnLiBUaGUgcmVhbCBxdWVzdGlvbiBpczogY2FuIGB2Y2FwX2RlY29kZV9ydWxlYCBldmVuICpiZSogcmVhY2hlZCB3aGVuIHJ1bm5pbmcgaW4gYSB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudD8gSXQmIzM5O3MgY2FsbGVkIGJ5IGB2Y2FwX2dldF9ydWxlYCBhbmQsIG9mIGNvdXJzZSwgdGhlIGB2Y2FwX3Nob3dfYWRtaW5gIGRlYnVnZ2luZyB0b29sLiBgdmNhcF9nZXRfcnVsZWAgaXMgZXhwb3J0ZWQsIG1ha2luZyBpdCBhY2Nlc3NpYmxlIHRvIGV4dGVybmFsIGNsaWVudHMsIHdoaWNoIGltbWVkaWF0ZWx5IHBpcXVlcyBteSBpbnRlcmVzdC4KClRoZSBrZXkgaGVyZSBpcyB3aGV0aGVyIGFueSBvZiB0aG9zZSBjbGllbnQgZHJpdmVycyBjYW4gYmUgbG9hZGVkIGFuZCBleGVyY2lzZWQgdW5kZXIgUUVNVS4gVGhpbmtpbmcgdGhyb3VnaCB0aGlzLCB3ZSYjMzk7cmUgdGFsa2luZyBhYm91dCBkcml2ZXJzIGxpa2UgYHNwYXJ4NWAgYW5kIGBsYW45NjZ4YC4gVGhlc2UgYXJlIGhhcmR3YXJlIHN3aXRjaCBkcml2ZXJzLCBzbyB0aGF0IGltbWVkaWF0ZWx5IGJyaW5ncyB1cCBjb25jZXJucyBhYm91dCBkZXBlbmRlbmN5LiBNeSBpbml0aWFsIGh1bmNoIGlzIHRoYXQgdGhlc2Ugd2lsbCByZXF1aXJlIHNvbWUgZm9ybSBvZiBQQ0llIG9yIHBsYXRmb3JtIGRldmljZSB0aGF0IGlzIGdlbmVyYWxseSBub3QgZnVsbHkgZW11bGF0ZWQgaW4gYSB0eXBpY2FsIFFFTVUgc2V0dXAuIFRoZXkgYWxtb3N0IGNlcnRhaW5seSBuZWVkIG1vcmUgdGhhbiBzdGFuZGFyZCBlbXVsYXRpb24uCgpUaGVyZWZvcmUsIGxldCBtZSBub3cgZ28gYW5kIGNoZWNrIHdoZXRoZXIgdGhlcmUgaXMgYW55IGVzdGFibGlzaGVkIG9yIGtub3duIHNvZnR3YXJlIGVtdWxhdGlvbiBmb3IgZWl0aGVyIG9mIHRob3NlIHN3aXRjaGVzLiBUaGF0IGlzIHdoZXJlIEkgd2lsbCBzdGFydCwgZm9yIG5vdy4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4zMC8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjkgMTA6Mjg8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7Y29uZmlnIFNQQVJYNV9TV0lUQ0gmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtkcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC9zcGFyeDUvS2NvbmZpZzoxOmNvbmZpZyBTUEFSWDVfU1dJVENIXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvc3Bhcng1L0tjb25maWctMi1cdHRyaXN0YXRlIFwmIzM0O1NwYXJ4NSBzd2l0Y2ggZHJpdmVyXCYjMzQ7XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MzEvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzI5IDEwOjI4PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDM0NjY1CgkJCQkJCQlvdXRwdXQ6IDQyCgkJCQkJCQl0aG91Z2h0czogMjIKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPkhlcmUmIzM5O3MgYSBzdW1tYXJ5IG9mIG15IHRob3VnaHQgcHJvY2VzcywgYXMgcmVxdWVzdGVkOgoKKipOYXZpZ2F0aW5nIHRoZSBLZXJuZWwmIzM5O3MgTmV0d29yayBEcml2ZXIgQ29uZmlndXJhdGlvbioqCgpPa2F5LCBzbyBJIG5lZWQgdG8gdW5kZXJzdGFuZCB0aGUgY29uZmlndXJhdGlvbiBvcHRpb25zIGZvciB0aGUgTWljcm9jaGlwIFNwYXJ4NSBFdGhlcm5ldCBkcml2ZXIgd2l0aGluIHRoZSBMaW51eCBrZXJuZWwuIFdoZXJlIHdvdWxkIEkgZXhwZWN0IHRvIGZpbmQgdGhlc2Ugc2V0dGluZ3M/IE15IGluaXRpYWwgaW50dWl0aW9uIHRlbGxzIG1lIHRvIHN0YXJ0IGRpZ2dpbmcgaW50byB0aGUgYGRyaXZlcnMvbmV0YCBzdWJ0cmVlLCBhcyB0aGF0JiMzOTtzIHdoZXJlIHRoZSBuZXR3b3JrLXJlbGF0ZWQgY29kZSByZXNpZGVzLiBNb3JlIHNwZWNpZmljYWxseSwgZ2l2ZW4gdGhlIG5hbWUsICYjMzQ7U3Bhcng1LCYjMzQ7IGl0IHNvdW5kcyBsaWtlIGl0IG1pZ2h0IGJlIGEgc3BlY2lmaWMgdHlwZSBvZiBkZXZpY2UsIHdoaWNoIGxlYWRzIG1lIHRvIGhvbmUgaW4gb24gdGhlIGBldGhlcm5ldGAgc3ViZGlyZWN0b3J5LgoKTm93LCB3aXRoaW4gYGRyaXZlcnMvbmV0L2V0aGVybmV0L2AsIEkmIzM5O20gbG9va2luZyBmb3IgYW55dGhpbmcgcmVsYXRlZCB0byBjb25maWd1cmF0aW9uLiBUeXBpY2FsbHksIGtlcm5lbCBjb25maWd1cmF0aW9uIG9wdGlvbnMgYXJlIGRlZmluZWQgaW4gYEtjb25maWdgIGZpbGVzLiBUaGF0JiMzOTtzIHRoZSBzdGFuZGFyZC4gU28sIHRoZSBtb3N0IGxpa2VseSBwYXRoIHRvIGZpbmQgdGhlc2Ugc3BlY2lmaWMgU3Bhcng1IGNvbmZpZ3VyYXRpb24gb3B0aW9ucyBpcyBgZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3NwYXJ4NS9LY29uZmlnYC4gTGV0JiMzOTtzIGNvbmZpcm0gdGhhdCB0aGF0IGlzIHRoZSBjb3JyZWN0IHBhdGggYW5kIGRlbHZlIGludG8gdGhlIGNvbnRlbnRzIG9mIHRoYXQgYEtjb25maWdgIGZpbGUuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MzIvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzI5IDEwOjI4PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+cmVhZC1maWxlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtGaWxlJiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3NwYXJ4NS9LY29uZmlnJiMzNDssCiAgJiMzNDtGaXJzdExpbmUmIzM0OzogMSwKICAmIzM0O0xpbmVDb3VudCYjMzQ7OiAyMAp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7Q29udGVudHMmIzM0OzogJiMzNDsgICAxOlx0Y29uZmlnIFNQQVJYNV9TV0lUQ0hcbiAgIDI6XHRcdHRyaXN0YXRlIFwmIzM0O1NwYXJ4NSBzd2l0Y2ggZHJpdmVyXCYjMzQ7XG4gICAzOlx0XHRkZXBlbmRzIG9uIE5FVF9TV0lUQ0hERVZcbiAgIDQ6XHRcdGRlcGVuZHMgb24gSEFTX0lPTUVNXG4gICA1Olx0XHRkZXBlbmRzIG9uIE9GXG4gICA2Olx0XHRkZXBlbmRzIG9uIEFSQ0hfU1BBUlg1IHx8IEFSQ0hfTEFOOTY5WCB8fCBDT01QSUxFX1RFU1RcbiAgIDc6XHRcdGRlcGVuZHMgb24gUFRQXzE1ODhfQ0xPQ0tfT1BUSU9OQUxcbiAgIDg6XHRcdGRlcGVuZHMgb24gQlJJREdFIHx8IEJSSURHRT1uXG4gICA5Olx0XHRzZWxlY3QgUEhZTElOS1xuICAxMDpcdFx0c2VsZWN0IFBIWV9TUEFSWDVfU0VSREVTXG4gIDExOlx0XHRzZWxlY3QgUkVTRVRfQ09OVFJPTExFUlxuICAxMjpcdFx0c2VsZWN0IFZDQVBcbiAgMTM6XHRcdHNlbGVjdCBGRE1BXG4gIDE0Olx0XHRoZWxwXG4gIDE1Olx0XHQgIFRoaXMgZHJpdmVyIHN1cHBvcnRzIHRoZSBTcGFyeDUgbmV0d29yayBzd2l0Y2ggZGV2aWNlLlxuICAxNjpcdFxuICAxNzpcdGNvbmZpZyBTUEFSWDVfRENCXG4gIDE4Olx0XHRib29sIFwmIzM0O0RhdGEgQ2VudGVyIEJyaWRnaW5nIChEQ0IpIHN1cHBvcnRcJiMzNDtcbiAgMTk6XHRcdGRlcGVuZHMgb24gU1BBUlg1X1NXSVRDSCBcdTAwMjZcdTAwMjYgRENCXG4gIDIwOlx0XHRkZWZhdWx0IHlcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4zMy8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjkgMTA6Mjg8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMzUyMjMKCQkJCQkJCW91dHB1dDogMzkKCQkJCQkJCXRob3VnaHRzOiAxNDcKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqQW5hbHl6aW5nIHRoZSBDb21waWxhdGlvbiBMb2dpYyoqCgpPa2F5LCBzbyB0aGlzIGNvZGUmIzM5O3MgY29tcGlsYXRpb24gcGF0aCBkZWZpbml0ZWx5IGhpbmdlcyBvbiB0aGUgdGFyZ2V0IGFyY2hpdGVjdHVyZS4gSXQmIzM5O3MgZWl0aGVyIHRoZSBNaWNyb2NoaXAgU3Bhcng1LCB0aGUgTEFOOTY5eCwgb3IgYSBjb21waWxlIHRlc3Qgc2V0dXAuIFRoYXQgc3Ryb25nbHkgc3VnZ2VzdHMgdGhpcyBpcyBhIGRyaXZlciBzcGVjaWZpYyB0byB0aG9zZSBjaGlwcywgcmlnaHQ/IEFuZCwgaWYgaXQmIzM5O3MgdGllZCB0byBzcGVjaWZpYyBoYXJkd2FyZSwgdGhhdCBwcm9iYWJseSBtZWFucyBpdCB3b24mIzM5O3QgcnVuIG5hdGl2ZWx5IGluIHN0YW5kYXJkIFFFTVUuCgpCdXQgbm93LCBJJiMzOTttIHRoaW5raW5nIGFib3V0IGB2Y2FwX2RlY29kZV9ydWxlYC4gVGhhdCBmdW5jdGlvbiBpcyBidXJpZWQgaW4gYHZjYXBfYXBpLmNgLCB3aGljaCBtYWtlcyBtZSB0aGluayBpdCBpcyBvbmx5IGluY2x1ZGVkIGlmIGBDT05GSUdfVkNBUGAgaXMgc2V0LiBBbHNvLCBgQ09ORklHX1ZDQVBfS1VOSVRfVEVTVGAgc2VlbXMgdG8gdGVzdCB0aGUgVkNBUCBBUEkuCgpXYWl0IGEgc2Vjb25k4oCmIGB2Y2FwX2RlY29kZV9ydWxlYCBpc24mIzM5O3QgdGVzdGVkIGluIGB2Y2FwX2FwaV9rdW5pdC5jYC4gVGhhdCYjMzk7cyBhIHJlZCBmbGFnLiBJcyB0aGVyZSAqYW55KiBvdGhlciBLVW5pdCB0ZXN0IGNvdmVyYWdlIGZvciB0aGlzIHNwZWNpZmljIGZ1bmN0aW9uIGFueXdoZXJlIGluIHRoZSBwcm9qZWN0PyBJIG5lZWQgdG8gZGlnIGRlZXBlci4gVGhpcyBzZWVtcyBvZGQgYW5kIHdvcnRoIGEgc2Vjb25kIGxvb2suCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MzQvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzI5IDEwOjI4PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O3ZjYXBfZGVjb2RlX3J1bGUmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtkcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC8mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGkuYz0yNDEzPUVYUE9SVF9TWU1CT0xfR1BMKHZjYXBfZnJlZV9ydWxlKTtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaS5jLTI0MTUtLyogRGVjb2RlIGEgcnVsZSBmcm9tIHRoZSBWQ0FQIGNhY2hlIGFuZCByZXR1cm4gYSBjb3B5ICovXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaS5jOjI0MTY6c3RydWN0IHZjYXBfcnVsZSAqdmNhcF9kZWNvZGVfcnVsZShzdHJ1Y3QgdmNhcF9ydWxlX2ludGVybmFsICplbGVtKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGkuYy0yNDE3LXtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaS5jPTI0NDc9c3RydWN0IHZjYXBfcnVsZSAqdmNhcF9nZXRfcnVsZShzdHJ1Y3QgdmNhcF9jb250cm9sICp2Y3RybCwgdTMyIGlkKVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpLmMtMjQ2MC1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpLmM6MjQ2MTpcdHJ1bGUgPSB2Y2FwX2RlY29kZV9ydWxlKGVsZW0pO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGkuYy0yNDYyLVx0dmNhcF91bmxvY2soZWxlbS1cdTAwM2VhZG1pbik7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfZGVidWdmcy5jPTI5Mj1zdGF0aWMgaW50IHZjYXBfc2hvd19hZG1pbihzdHJ1Y3QgdmNhcF9jb250cm9sICp2Y3RybCxcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9kZWJ1Z2ZzLmMtMzAxLVx0bGlzdF9mb3JfZWFjaF9lbnRyeShlbGVtLCBcdTAwMjZhZG1pbi1cdTAwM2VydWxlcywgbGlzdCkge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfZGVidWdmcy5jOjMwMjpcdFx0dnJ1bGUgPSB2Y2FwX2RlY29kZV9ydWxlKGVsZW0pO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfZGVidWdmcy5jLTMwMy1cdFx0aWYgKElTX0VSUih2cnVsZSkpIHtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9wcml2YXRlLmg9MTIyPWludCB2Y2FwX3J1bGVfZ2V0X2tleXNldHMoc3RydWN0IHZjYXBfcnVsZV9pbnRlcm5hbCAqcmksXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfcHJpdmF0ZS5oLTEyNC0vKiBEZWNvZGUgYSBydWxlIGZyb20gdGhlIFZDQVAgY2FjaGUgYW5kIHJldHVybiBhIGNvcHkgKi9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX3ByaXZhdGUuaDoxMjU6c3RydWN0IHZjYXBfcnVsZSAqdmNhcF9kZWNvZGVfcnVsZShzdHJ1Y3QgdmNhcF9ydWxlX2ludGVybmFsICplbGVtKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX3ByaXZhdGUuaC0xMjYtXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MzUvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzI5IDEwOjI4PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDM2MzA5CgkJCQkJCQlvdXRwdXQ6IDM2CgkJCQkJCQl0aG91Z2h0czogMTY1CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKkludmVzdGlnYXRpbmcgVkNBUCBBY2Nlc3NpYmlsaXR5KioKCk9rYXksIHNvIEkmIzM5O20gdHJ5aW5nIHRvIGZpZ3VyZSBvdXQgaWYgSSBjYW4gaW50ZXJhY3Qgd2l0aCBgdmNhcF9zaG93X2FkbWluYCB3aXRob3V0IGhhdmluZyBhY3R1YWwgaGFyZHdhcmUuIEl0JiMzOTtzIHBhcnQgb2YgYGRlYnVnZnNgLCB3aGljaCBpcyBhIGdvb2Qgc3RhcnRpbmcgcG9pbnQuIFJpZ2h0LCBgdmNhcF9hcGlfZGVidWdmcy5jYCBpcyByZXNwb25zaWJsZSBmb3IgY3JlYXRpbmcgdGhvc2UgYGRlYnVnZnNgIGVudHJpZXMgcmVsYXRlZCB0byBWQ0FQLiBCdXQgaGVyZSYjMzk7cyB0aGUgY2F0Y2g6IHRob3NlIGVudHJpZXMgYXJlIG9ubHkgY3JlYXRlZCBpZiBhIFZDQVAgY29udHJvbCBzdHJ1Y3R1cmUgaXMgaW5pdGlhbGl6ZWQgYnkgYSBjbGllbnQgZHJpdmVyLiBUaGlua2luZyBhYm91dCBpdCwgZHJpdmVycyBsaWtlIFNwYXJ4NSBjb21lIHRvIG1pbmQuIE5vdywgdGhlIHByb2JsZW0gaXMgdGhhdCBTcGFyeDUgYW5kIExhbjk2NngsIGZyb20gd2hhdCBJIGtub3csIG5lZWQgcGh5c2ljYWwgaGFyZHdhcmUgb3IgdmVyeSBzcGVjaWZpYyBTb0NzLiBTbywgcnVubmluZyB0aGVtIGluIHN0YW5kYXJkIFFFTVUgc2VlbXMgaW1wb3NzaWJsZS4KCldhaXQuLi4gaXMgdGhlcmUgKmFueSogdmlydHVhbCBkcml2ZXIgb3Igc29mdHdhcmUgZW11bGF0aW9uIHRoYXQgdXNlcyBWQ0FQPyBJIG5lZWQgdG8gY2hlY2suIFRvIGJlIGFic29sdXRlbHkgc3VyZSwgSSYjMzk7bSBnb2luZyB0byBzY2FuIHRoZSBjb2RlIGZvciBhbnkgdXNlcyBvZiBgdmNhcF9nZXRfcnVsZWAsIGB2Y2FwX3Nob3dfYWRtaW5gLCBvciBhbnl0aGluZyByZWxhdGVkIHRvIGB2Y2FwX2FwaS5jYC4gVGhhdCBzaG91bGQgZ2l2ZSBtZSB0aGUgYW5zd2VyLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjM2LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yOSAxMDoyODwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDt2Y2FwX2dldF9ydWxlJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwLyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtkcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvbGFuOTY2eC9sYW45NjZ4X3B0cC5jPTU0PXN0YXRpYyBpbnQgbGFuOTY2eF9wdHBfYWRkX3RyYXAoc3RydWN0IGxhbjk2NnhfcG9ydCAqcG9ydCxcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvbGFuOTY2eC9sYW45NjZ4X3B0cC5jLTYzLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL2xhbjk2NngvbGFuOTY2eF9wdHAuYzo2NDpcdHZydWxlID0gdmNhcF9nZXRfcnVsZShsYW45NjZ4LVx1MDAzZXZjYXBfY3RybCwgcnVsZV9pZCk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvbGFuOTY2eC9sYW45NjZ4X3B0cC5jLTY1LVx0aWYgKCFJU19FUlIodnJ1bGUpKSB7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL2xhbjk2NngvbGFuOTY2eF9wdHAuYz0xMDM9c3RhdGljIGludCBsYW45NjZ4X3B0cF9kZWxfdHJhcChzdHJ1Y3QgbGFuOTY2eF9wb3J0ICpwb3J0LFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC9sYW45NjZ4L2xhbjk2NnhfcHRwLmMtMTEwLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL2xhbjk2NngvbGFuOTY2eF9wdHAuYzoxMTE6XHR2cnVsZSA9IHZjYXBfZ2V0X3J1bGUobGFuOTY2eC1cdTAwM2V2Y2FwX2N0cmwsIHJ1bGVfaWQpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL2xhbjk2NngvbGFuOTY2eF9wdHAuYy0xMTItXHRpZiAoSVNfRVJSKHZydWxlKSlcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvbGFuOTY2eC9sYW45NjZ4X3RjX2Zsb3dlci5jPTU4Mz1zdGF0aWMgaW50IGxhbjk2NnhfdGNfZmxvd2VyX3N0YXRzKHN0cnVjdCBsYW45NjZ4X3BvcnQgKnBvcnQsXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL2xhbjk2NngvbGFuOTY2eF90Y19mbG93ZXIuYy01ODktXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvbGFuOTY2eC9sYW45NjZ4X3RjX2Zsb3dlci5jOjU5MDpcdGVyciA9IHZjYXBfZ2V0X3J1bGVfY291bnRfYnlfY29va2llKHBvcnQtXHUwMDNlbGFuOTY2eC1cdTAwM2V2Y2FwX2N0cmwsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvbGFuOTY2eC9sYW45NjZ4X3RjX2Zsb3dlci5jLTU5MS1cdFx0XHRcdFx0ICAgIFx1MDAyNmNvdW50LCBmLVx1MDAzZWNvb2tpZSk7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3NwYXJ4NS9zcGFyeDVfdGNfZmxvd2VyLmM9MTM3NT1zdGF0aWMgaW50IHNwYXJ4NV90Y19mcmVlX3J1bGVfcmVzb3VyY2VzKHN0cnVjdCBuZXRfZGV2aWNlICpuZGV2LFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC9zcGFyeDUvc3Bhcng1X3RjX2Zsb3dlci5jLTEzODMtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvc3Bhcng1L3NwYXJ4NV90Y19mbG93ZXIuYzoxMzg0Olx0dnJ1bGUgPSB2Y2FwX2dldF9ydWxlKHZjdHJsLCBydWxlX2lkKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC9zcGFyeDUvc3Bhcng1X3RjX2Zsb3dlci5jLTEzODUtXHRpZiAoSVNfRVJSKHZydWxlKSlcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvc3Bhcng1L3NwYXJ4NV90Y19mbG93ZXIuYz0xNDI4PXN0YXRpYyBpbnQgc3Bhcng1X3RjX2Zsb3dlcl9zdGF0cyhzdHJ1Y3QgbmV0X2RldmljZSAqbmRldixcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvc3Bhcng1L3NwYXJ4NV90Y19mbG93ZXIuYy0xNDM4LVx0dmN0cmwgPSBwb3J0LVx1MDAzZXNwYXJ4NS1cdTAwM2V2Y2FwX2N0cmw7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvc3Bhcng1L3NwYXJ4NV90Y19mbG93ZXIuYzoxNDM5Olx0ZXJyID0gdmNhcF9nZXRfcnVsZV9jb3VudF9ieV9jb29raWUodmN0cmwsIFx1MDAyNmN0ciwgZmNvLVx1MDAzZWNvb2tpZSk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvc3Bhcng1L3NwYXJ4NV90Y19mbG93ZXIuYy0xNDQwLVx0aWYgKGVycilcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaS5jPTI0MTY9c3RydWN0IHZjYXBfcnVsZSAqdmNhcF9kZWNvZGVfcnVsZShzdHJ1Y3QgdmNhcF9ydWxlX2ludGVybmFsICplbGVtKVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpLmMtMjQ0Ni1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpLmM6MjQ0NzpzdHJ1Y3QgdmNhcF9ydWxlICp2Y2FwX2dldF9ydWxlKHN0cnVjdCB2Y2FwX2NvbnRyb2wgKnZjdHJsLCB1MzIgaWQpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaS5jLTI0NDgte1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpLmMtMjQ2NC19XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaS5jOjI0NjU6RVhQT1JUX1NZTUJPTF9HUEwodmNhcF9nZXRfcnVsZSk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaS5jLTI0NjYtXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGkuYz0zMzUzPWludCB2Y2FwX3J1bGVfZ2V0X2tleXNldHMoc3RydWN0IHZjYXBfcnVsZV9pbnRlcm5hbCAqcmksXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGkuYy0zMzk2LS8qIENvbGxlY3QgcGFja2V0IGNvdW50cyBmcm9tIGFsbCBydWxlcyB3aXRoIHRoZSBzYW1lIGNvb2tpZSAqL1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGkuYzozMzk3OmludCB2Y2FwX2dldF9ydWxlX2NvdW50X2J5X2Nvb2tpZShzdHJ1Y3QgdmNhcF9jb250cm9sICp2Y3RybCxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpLmMtMzM5OC1cdFx0XHRcdCAgc3RydWN0IHZjYXBfY291bnRlciAqY3RyLCB1NjQgY29va2llKVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpLmMtMzQzNS19XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaS5jOjM0MzY6RVhQT1JUX1NZTUJPTF9HUEwodmNhcF9nZXRfcnVsZV9jb3VudF9ieV9jb29raWUpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGkuYy0zNDM3LVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2NsaWVudC5oPTE3Mz1zdHJ1Y3QgdmNhcF9ydWxlICp2Y2FwX2NvcHlfcnVsZShzdHJ1Y3QgdmNhcF9ydWxlICpydWxlKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2NsaWVudC5oLTE3NC0vKiBHZXQgcnVsZSBmcm9tIGEgVkNBUCBpbnN0YW5jZSAqL1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfY2xpZW50Lmg6MTc1OnN0cnVjdCB2Y2FwX3J1bGUgKnZjYXBfZ2V0X3J1bGUoc3RydWN0IHZjYXBfY29udHJvbCAqdmN0cmwsIHUzMiBpZCk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9jbGllbnQuaC0xNzYtLyogVXBkYXRlIGV4aXN0aW5nIHJ1bGUgKi9cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9jbGllbnQuaD0yMDc9aW50IHZjYXBfYWRtaW5fcnVsZV9jb3VudChzdHJ1Y3QgdmNhcF9hZG1pbiAqYWRtaW4sIGludCBjaWQpO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2NsaWVudC5oLTIwOS0vKiBWQ0FQIHJ1bGUgY291bnRlciBvcGVyYXRpb25zICovXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9jbGllbnQuaDoyMTA6aW50IHZjYXBfZ2V0X3J1bGVfY291bnRfYnlfY29va2llKHN0cnVjdCB2Y2FwX2NvbnRyb2wgKnZjdHJsLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfY2xpZW50LmgtMjExLVx0XHRcdFx0ICBzdHJ1Y3QgdmNhcF9jb3VudGVyICpjdHIsIHU2NCBjb29raWUpO1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjM3LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yOSAxMDoyODwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAzODU4NgoJCQkJCQkJb3V0cHV0OiA0MAoJCQkJCQkJdGhvdWdodHM6IDQ5CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Pa2F5LCBoZXJlJiMzOTtzIG15IHRha2Ugb24gdGhvc2UgdGhvdWdodHMsIGZyYW1lZCBhcyBteSBvd246CgoqKkFuYWx5emluZyBgdmNhcF9nZXRfcnVsZWAgVXNhZ2UqKgoKQWxyaWdodCwgbGV0JiMzOTtzIHNlZSwgdGhlIGNvZGUmIzM5O3MgdGVsbGluZyBtZSB0aGF0IGB2Y2FwX2dldF9ydWxlYCBpcyBvbmx5IGJlaW5nIHVzZWQgYnkgYGxhbjk2NnhgIGFuZCBgc3Bhcng1YC4gTXkgaW5pdGlhbCBodW5jaCBpcyBjb25maXJtZWQ7IGJvdGggb2YgdGhlc2UgYXJlIGhhcmR3YXJlLXNwZWNpZmljIGRyaXZlcnMsIHdoaWNoIG1ha2VzIHBlcmZlY3Qgc2Vuc2UuIEkgcmVtZW1iZXIgd29ya2luZyB3aXRoIGJvdGggb2YgdGhvc2UgcGxhdGZvcm1zLCBhbmQgdGhlIGNvbnRleHQgb2YgcnVsZSByZXRyaWV2YWwgYWxpZ25zIHdpdGggdGhlIGtpbmQgb2YgaGFyZHdhcmUgYWNjZWxlcmF0aW9uIHRoZXkgdHlwaWNhbGx5IHJlcXVpcmUuIE5vdywgbGV0JiMzOTtzIGRpZyBhIGJpdCBkZWVwZXIgYW5kIHNlZSB3aGF0IHRoZSBgbGFuOTY2eGAgS2NvbmZpZyBoYXMgdG8gc2F5IGFib3V0IGl0LiBJIGhhdmUgYSBmZWVsaW5nIHRoZSBjb25maWd1cmF0aW9uIG9wdGlvbnMgdGhlcmUgd2lsbCBnaXZlIHVzIHNvbWUgbW9yZSBpbnNpZ2h0IGludG8gaG93IHRoaXMgcnVsZSByZXRyaWV2YWwgaXMgYmVpbmcgaGFuZGxlZC4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4zOC8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjkgMTA6Mjg8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPkVycm9yOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bm8gbWF0Y2hlczwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtjb25maWcgTUlDUk9DSElQX0xBTjk2NlgmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtkcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O2Vycm9yJiMzNDs6ICYjMzQ7bm8gbWF0Y2hlcyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4zOS8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjkgMTA6Mjg8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMzg4NTcKCQkJCQkJCW91dHB1dDogNDQKCQkJCQkJCXRob3VnaHRzOiAyNAoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+SGVyZSYjMzk7cyBteSB0aG91Z2h0IHByb2Nlc3MsIHN1bW1hcml6ZWQgYXMgeW91IHJlcXVlc3RlZDoKCioqS2NvbmZpZyBDaGVjayoqCgpPa2F5LCB0aW1lIHRvIGdldCBkb3duIHRvIGJyYXNzIHRhY2tzLiBJIG5lZWQgdG8gdW5kZXJzdGFuZCB0aGUgY29uZmlndXJhdGlvbiBvcHRpb25zIGZvciB0aGlzIExBTjk2NnggZHJpdmVyIHdpdGhpbiB0aGUga2VybmVsLiBNeSBmaXJzdCBwb3J0IG9mIGNhbGwgaXMgdW5kb3VidGVkbHkgdGhlIGBLY29uZmlnYCBmaWxlIGluIHRoZSBkcml2ZXImIzM5O3MgZGlyZWN0b3J5LiBTcGVjaWZpY2FsbHksIEkmIzM5O20gaGVhZGluZyBzdHJhaWdodCB0byBgZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL2xhbjk2NngvS2NvbmZpZ2AuIFRoYXQgZmlsZSAqZGVmaW5lcyogdGhlIGNvbmZpZ3VyYXRpb24gb3B0aW9ucyB0aGlzIGRyaXZlciBleHBvc2VzIHRvIHRoZSB1c2VyLiBJIG5lZWQgdG8gc2VlIHdoYXQga25vYnMgYXJlIGF2YWlsYWJsZSBmb3IgdGhpbmdzIGxpa2UgUEhZIHNldHRpbmdzLCBpbnRlcnJ1cHQgY29uZmlndXJhdGlvbiwgZmxvdyBjb250cm9sLCBhbmQgYW55IG90aGVyIG1pY3JvY2hpcC1zcGVjaWZpYyBmZWF0dXJlcy4gSSYjMzk7bSBsb29raW5nIGZvciB0aGUgZGVwZW5kZW5jaWVzLCBoZWxwIHRleHRzLCBhbmQgZGVmYXVsdCB2YWx1ZXMg4oCTIGFsbCB0aGUgY29udGV4dCB0aGF0IGBLY29uZmlnYCBwcm92aWRlcyB0byB1bmRlcnN0YW5kIGhvdyB1c2VycyBjYW4gdGFpbG9yIHRoaXMgZHJpdmVyIHRvIHRoZWlyIHNwZWNpZmljIGhhcmR3YXJlIGFuZCBuZXR3b3JrIHJlcXVpcmVtZW50cy4gVGhpcyBLY29uZmlnIGZpbGUgaXMgdGhlICpibHVlcHJpbnQqIGZvciBob3cgdXNlcnMgaW50ZXJhY3Qgd2l0aCBhbmQgY3VzdG9taXplIHRoZSBMQU45NjZ4IGRyaXZlcjsgSSBuZWVkIHRvIHVuZGVyc3RhbmQgdGhpcyB0byBoYXZlIGFueSBjaGFuY2Ugb2YgbWFraW5nIGVmZmVjdGl2ZSBjaGFuZ2VzIG9yIHVuZGVyc3RhbmRpbmcgY3VycmVudCBmdW5jdGlvbmFsaXR5LiBUaGlzIGlzIHRoZSBwbGFjZSB0byBzdGFydC4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD40MC8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjkgMTA6Mjg8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5yZWFkLWZpbGU8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0ZpbGUmIzM0OzogJiMzNDtkcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvbGFuOTY2eC9LY29uZmlnJiMzNDssCiAgJiMzNDtGaXJzdExpbmUmIzM0OzogMSwKICAmIzM0O0xpbmVDb3VudCYjMzQ7OiAyMAp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7Q29udGVudHMmIzM0OzogJiMzNDsgICAxOlx0Y29uZmlnIExBTjk2NlhfU1dJVENIXG4gICAyOlx0XHR0cmlzdGF0ZSBcJiMzNDtMYW45NjZ4IHN3aXRjaCBkcml2ZXJcJiMzNDtcbiAgIDM6XHRcdGRlcGVuZHMgb24gUFRQXzE1ODhfQ0xPQ0tfT1BUSU9OQUxcbiAgIDQ6XHRcdGRlcGVuZHMgb24gSEFTX0lPTUVNXG4gICA1Olx0XHRkZXBlbmRzIG9uIE9GXG4gICA2Olx0XHRkZXBlbmRzIG9uIE5FVF9TV0lUQ0hERVZcbiAgIDc6XHRcdGRlcGVuZHMgb24gQlJJREdFIHx8IEJSSURHRT1uXG4gICA4Olx0XHRzZWxlY3QgUEhZTElOS1xuICAgOTpcdFx0c2VsZWN0IFBBR0VfUE9PTFxuICAxMDpcdFx0c2VsZWN0IFZDQVBcbiAgMTE6XHRcdHNlbGVjdCBGRE1BXG4gIDEyOlx0XHRoZWxwXG4gIDEzOlx0XHQgIFRoaXMgZHJpdmVyIHN1cHBvcnRzIHRoZSBMYW45NjZ4IG5ldHdvcmsgc3dpdGNoIGRldmljZS5cbiAgMTQ6XHRcbiAgMTU6XHRjb25maWcgTEFOOTY2WF9EQ0JcbiAgMTY6XHRcdGJvb2wgXCYjMzQ7RGF0YSBDZW50ZXIgQnJpZGdpbmcgKERDQikgc3VwcG9ydFwmIzM0O1xuICAxNzpcdFx0ZGVwZW5kcyBvbiBMQU45NjZYX1NXSVRDSCBcdTAwMjZcdTAwMjYgRENCXG4gIDE4Olx0XHRkZWZhdWx0IHlcbiAgMTk6XHRcdGhlbHBcbiAgMjA6XHRcdCAgU2F5IFkgaGVyZSBpZiB5b3Ugd2FudCB0byB1c2UgRGF0YSBDZW50ZXIgQnJpZGdpbmcgKERDQikgaW4gdGhlXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+NDEvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzI5IDEwOjI4PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDM5NDIxCgkJCQkJCQlvdXRwdXQ6IDM5CgkJCQkJCQl0aG91Z2h0czogMTk4CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKkFuYWx5emluZyB0aGUgTEFOOTY2WF9TV0lUQ0ggRHJpdmVyIGFuZCBLVW5pdCBUZXN0aW5nKioKCk9rYXksIHNvIEkmIzM5O20gbG9va2luZyBhdCBgTEFOOTY2WF9TV0lUQ0hgLCBhbmQgaXQmIzM5O3MgcHJldHR5IGNsZWFyIHRoYXQgaXQgaGFzIHNvbWUga2V5IGRlcGVuZGVuY2llcy4gRmlyc3QsIGl0IHJlbGllcyBvbiBgSEFTX0lPTUVNYCBhbmQsIGNydWNpYWxseSwgYE9GYCDigJMgdGhlIE9wZW4gRmlybXdhcmUgb3IgRGV2aWNlIFRyZWUuIEdvb2QgdG8ga25vdy4gSXQmIzM5O3Mgbm90IHRpZWQgdG8gYENPTVBJTEVfVEVTVGAgb3IgYW55IHNwZWNpZmljIGFyY2hpdGVjdHVyZSAoYEFSQ0hfLi4uYCksIHdoaWNoIGlzIGludGVyZXN0aW5nLCBidXQgdGhhdCBgT0ZgIGRlcGVuZGVuY3kgaXMgZ29pbmcgdG8gYmUgaW1wb3J0YW50IGluIHRoZSBiaWcgcGljdHVyZS4KClJpZ2h0LCBzbyBhcyBhIHBsYXRmb3JtIGRyaXZlciwgSSBjYW4gYWxyZWFkeSBzZWUgYSBwb3RlbnRpYWwgcHJvYmxlbSBmb3IgZW11bGF0aW9uLCBlc3BlY2lhbGx5IGluIHNvbWV0aGluZyBsaWtlIFFFTVUuIFVubGVzcyBzb21lb25lJiMzOTtzIGdvbmUgdG8gdGhlIHRyb3VibGUgb2YgZGVmaW5pbmcgYSBzcGVjaWZpYyBtYWNoaW5lIG1vZGVsIGZvciB0aGUgTGFuOTY2eCBvciBTcGFyeDUsIHRoZXJlIHdvbiYjMzk7dCBiZSBhIGRldmljZSB0cmVlIG5vZGUgZm9yIGl0LCB3aGljaCBtZWFucyB0aGUgZHJpdmVyIHdvbiYjMzk7dCBldmVuICpwcm9iZSouIFRoYXQmIzM5O3MgYSBjbGFzc2ljIGdvdGNoYS4KCkhvbGQgb24sIEkgd2FzIGp1c3QgdGhpbmtpbmcgYWJvdXQgdGVzdGluZywgSSB3b25kZXIgaWYgdGhlcmXigJlzIGEgS1VuaXQgdGVzdCBwYXRoIHRvIGB2Y2FwX2RlY29kZV9ydWxlYD8gSSBuZWVkIHRvIGZpZ3VyZSBvdXQgaWYgaXQgY2FuIGJlIHJlYWNoZWQgdmlhIEtVbml0LiBJ4oCZdmUgY2hlY2tlZCBgdmNhcF9hcGlfa3VuaXQuY2AgYW5kIGB2Y2FwX21vZGVsX2t1bml0LmNgIGFuZCBJIGRpZG7igJl0IGZpbmQgYSBkaXJlY3QgY2FsbCB0byB0aGUgZnVuY3Rpb24gdmlhIGdyZXAsIHdoaWNoIGlzIGEgc3RhcnQsIGJ1dCBJIG5lZWQgdG8gbWFrZSBzdXJlIEkgaGF2ZW7igJl0IG1pc3NlZCBhbnl0aGluZy4gR290dGEgZG91YmxlLWNoZWNrIGFuZCBzZWUgaWYgaXQmIzM5O3MgcG90ZW50aWFsbHkgY2FsbGVkIGZyb20gYSBkaWZmZXJlbnQgdGVzdCBmaWxlLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjQyLzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yOSAxMDoyODwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDt2Y2FwX2RlY29kZV9ydWxlJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpLmM9MjQxMz1FWFBPUlRfU1lNQk9MX0dQTCh2Y2FwX2ZyZWVfcnVsZSk7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGkuYy0yNDE1LS8qIERlY29kZSBhIHJ1bGUgZnJvbSB0aGUgVkNBUCBjYWNoZSBhbmQgcmV0dXJuIGEgY29weSAqL1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGkuYzoyNDE2OnN0cnVjdCB2Y2FwX3J1bGUgKnZjYXBfZGVjb2RlX3J1bGUoc3RydWN0IHZjYXBfcnVsZV9pbnRlcm5hbCAqZWxlbSlcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpLmMtMjQxNy17XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGkuYz0yNDQ3PXN0cnVjdCB2Y2FwX3J1bGUgKnZjYXBfZ2V0X3J1bGUoc3RydWN0IHZjYXBfY29udHJvbCAqdmN0cmwsIHUzMiBpZClcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaS5jLTI0NjAtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaS5jOjI0NjE6XHRydWxlID0gdmNhcF9kZWNvZGVfcnVsZShlbGVtKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpLmMtMjQ2Mi1cdHZjYXBfdW5sb2NrKGVsZW0tXHUwMDNlYWRtaW4pO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2RlYnVnZnMuYz0yOTI9c3RhdGljIGludCB2Y2FwX3Nob3dfYWRtaW4oc3RydWN0IHZjYXBfY29udHJvbCAqdmN0cmwsXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfZGVidWdmcy5jLTMwMS1cdGxpc3RfZm9yX2VhY2hfZW50cnkoZWxlbSwgXHUwMDI2YWRtaW4tXHUwMDNlcnVsZXMsIGxpc3QpIHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2RlYnVnZnMuYzozMDI6XHRcdHZydWxlID0gdmNhcF9kZWNvZGVfcnVsZShlbGVtKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2RlYnVnZnMuYy0zMDMtXHRcdGlmIChJU19FUlIodnJ1bGUpKSB7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfcHJpdmF0ZS5oPTEyMj1pbnQgdmNhcF9ydWxlX2dldF9rZXlzZXRzKHN0cnVjdCB2Y2FwX3J1bGVfaW50ZXJuYWwgKnJpLFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX3ByaXZhdGUuaC0xMjQtLyogRGVjb2RlIGEgcnVsZSBmcm9tIHRoZSBWQ0FQIGNhY2hlIGFuZCByZXR1cm4gYSBjb3B5ICovXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9wcml2YXRlLmg6MTI1OnN0cnVjdCB2Y2FwX3J1bGUgKnZjYXBfZGVjb2RlX3J1bGUoc3RydWN0IHZjYXBfcnVsZV9pbnRlcm5hbCAqZWxlbSk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9wcml2YXRlLmgtMTI2LVxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjQzLzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yOSAxMDoyODwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA0MDY1OAoJCQkJCQkJb3V0cHV0OiAzOQoJCQkJCQkJdGhvdWdodHM6IDI5CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Pa2F5LCBoZXJlJiMzOTtzIG15IGludGVycHJldGF0aW9uIG9mIHRob3NlIHRob3VnaHRzLCBjcmFmdGVkIHdpdGggdGhlIHVuZGVyc3RhbmRpbmcgdGhhdCBJJiMzOTttIHNwZWFraW5nIHRvIGEgZmVsbG93IGV4cGVydDoKCioqQ29uY2VybmluZyBDYWxsZXJzIGFuZCBLVW5pdCBJbnRlZ3JhdGlvbioqCgpBbHJpZ2h0LCBzbyB0aGUgb25seSBjYWxsZXJzIEkmIzM5O20gc2VlaW5nIGFyZSBgdmNhcF9nZXRfcnVsZWAgYW5kIGB2Y2FwX3Nob3dfYWRtaW5gLiBUaGF0JiMzOTtzIGEgbGltaXRlZCBzZXQsIHdoaWNoIHNwYXJrcyBhbiBpbW1lZGlhdGUgcXVlc3Rpb246IGFyZSB0aGVzZSBmdW5jdGlvbnMgYmVpbmcgaW52b2tlZCBieSBLVW5pdD8gVGhhdCYjMzk7cyB0aGUgbW9zdCBsaWtlbHkgc2NlbmFyaW8sIGF0IGxlYXN0IGluaXRpYWxseS4gSSBuZWVkIHRvIGZpZ3VyZSBvdXQgdGhlIHRlc3RpbmcgY29udGV4dC4gSSYjMzk7bSB3b25kZXJpbmcgaWYgdGhpcyBzbWFsbCBzZXQgb2YgY2FsbGVycyBpcyBhIHNpZ24gb2YgYSBmb2N1c2VkIEtVbml0IHRlc3Qgc3VpdGUsIG9yIGlmIHRoZXJlJiMzOTtzIHNvbWV0aGluZyBlbHNlIGF0IHBsYXkgaGVyZS4gVW5kZXJzdGFuZGluZyB0aGUgY29ubmVjdGlvbiB0byBLVW5pdCBpcyBrZXkgdG8gaW50ZXJwcmV0aW5nIHRoZSBzaWduaWZpY2FuY2Ugb2YgdGhlc2UgY2FsbHMuIE15IG5leHQgc3RlcCB3aWxsIGJlIHRvIGV4cGxvcmUgdGhlIGNvZGUgc3Vycm91bmRpbmcgdGhlc2UgZnVuY3Rpb25zLCBsb29raW5nIGZvciBLVW5pdC1zcGVjaWZpYyBkaXJlY3RpdmVzIG9yIGFueSBjbHVlcyB0aGF0IHBvaW50IHRvIGl0IGJlaW5nIHRoZSBkcml2aW5nIGZvcmNlIGJlaGluZCB0aGVzZSBjYWxscy4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD40NC8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjkgMTA6Mjg8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7dmNhcF9nZXRfcnVsZSYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwLyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtkcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaS5jPTI0MTY9c3RydWN0IHZjYXBfcnVsZSAqdmNhcF9kZWNvZGVfcnVsZShzdHJ1Y3QgdmNhcF9ydWxlX2ludGVybmFsICplbGVtKVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpLmMtMjQ0Ni1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpLmM6MjQ0NzpzdHJ1Y3QgdmNhcF9ydWxlICp2Y2FwX2dldF9ydWxlKHN0cnVjdCB2Y2FwX2NvbnRyb2wgKnZjdHJsLCB1MzIgaWQpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaS5jLTI0NDgte1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpLmMtMjQ2NC19XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaS5jOjI0NjU6RVhQT1JUX1NZTUJPTF9HUEwodmNhcF9nZXRfcnVsZSk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaS5jLTI0NjYtXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGkuYz0zMzUzPWludCB2Y2FwX3J1bGVfZ2V0X2tleXNldHMoc3RydWN0IHZjYXBfcnVsZV9pbnRlcm5hbCAqcmksXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGkuYy0zMzk2LS8qIENvbGxlY3QgcGFja2V0IGNvdW50cyBmcm9tIGFsbCBydWxlcyB3aXRoIHRoZSBzYW1lIGNvb2tpZSAqL1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGkuYzozMzk3OmludCB2Y2FwX2dldF9ydWxlX2NvdW50X2J5X2Nvb2tpZShzdHJ1Y3QgdmNhcF9jb250cm9sICp2Y3RybCxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpLmMtMzM5OC1cdFx0XHRcdCAgc3RydWN0IHZjYXBfY291bnRlciAqY3RyLCB1NjQgY29va2llKVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpLmMtMzQzNS19XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaS5jOjM0MzY6RVhQT1JUX1NZTUJPTF9HUEwodmNhcF9nZXRfcnVsZV9jb3VudF9ieV9jb29raWUpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGkuYy0zNDM3LVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2NsaWVudC5oPTE3Mz1zdHJ1Y3QgdmNhcF9ydWxlICp2Y2FwX2NvcHlfcnVsZShzdHJ1Y3QgdmNhcF9ydWxlICpydWxlKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2NsaWVudC5oLTE3NC0vKiBHZXQgcnVsZSBmcm9tIGEgVkNBUCBpbnN0YW5jZSAqL1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfY2xpZW50Lmg6MTc1OnN0cnVjdCB2Y2FwX3J1bGUgKnZjYXBfZ2V0X3J1bGUoc3RydWN0IHZjYXBfY29udHJvbCAqdmN0cmwsIHUzMiBpZCk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9jbGllbnQuaC0xNzYtLyogVXBkYXRlIGV4aXN0aW5nIHJ1bGUgKi9cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9jbGllbnQuaD0yMDc9aW50IHZjYXBfYWRtaW5fcnVsZV9jb3VudChzdHJ1Y3QgdmNhcF9hZG1pbiAqYWRtaW4sIGludCBjaWQpO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2NsaWVudC5oLTIwOS0vKiBWQ0FQIHJ1bGUgY291bnRlciBvcGVyYXRpb25zICovXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9jbGllbnQuaDoyMTA6aW50IHZjYXBfZ2V0X3J1bGVfY291bnRfYnlfY29va2llKHN0cnVjdCB2Y2FwX2NvbnRyb2wgKnZjdHJsLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfY2xpZW50LmgtMjExLVx0XHRcdFx0ICBzdHJ1Y3QgdmNhcF9jb3VudGVyICpjdHIsIHU2NCBjb29raWUpO1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjQ1LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yOSAxMDoyODwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA0MTgwOAoJCQkJCQkJb3V0cHV0OiAzOQoJCQkJCQkJdGhvdWdodHM6IDI3CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Pa2F5LCBoZXJlJiMzOTtzIG15IHRha2Ugb24gdGhvc2UgdGhvdWdodHMsIGZyYW1lZCBhcyBhbiBleHBlcnQmIzM5O3MgaW50ZXJuYWwgbW9ub2xvZ3VlOgoKKipJbnZlc3RpZ2F0aW5nIEtVbml0JiMzOTtzIEludGVyYWN0aW9uIHdpdGggVkNBUCBDb21wb25lbnRzKioKClJpZ2h0LCBzbyBJJiMzOTttIGxvb2tpbmcgaW50byB0aGUgcmVsYXRpb25zaGlwIGJldHdlZW4gS1VuaXQgYW5kIHRoZXNlIFZDQVAgZnVuY3Rpb25zLiBNeSBpbml0aWFsIGV4cGVjdGF0aW9uIHdhcyB0aGF0IEkmIzM5O2Qgc2VlIGNhbGxzIHRvIGB2Y2FwX2dldF9ydWxlYCB3aXRoaW4gdGhlIEtVbml0IGZyYW1ld29yay4gVGhhdCB3b3VsZCBtYWtlIHNlbnNlLCBnaXZlbiBpdHMgcm9sZS4gQnV0IGl0IGFwcGVhcnMgdGhhdCYjMzk7cyBub3QgdGhlIGNhc2Ug4oCTICp0aGF0JiMzOTtzIGludGVyZXN0aW5nKi4gVGhlIGxhY2sgb2YgZGlyZWN0IGludGVyYWN0aW9uIHJhaXNlcyBxdWVzdGlvbnMgYWJvdXQgaG93IEtVbml0IGlzIHRlc3RpbmcgdGhlIGxvZ2ljIG9yIGZlYXR1cmVzIHRoYXQgd291bGQgbm9ybWFsbHkgdXNlIHRoYXQgZnVuY3Rpb24uCgpPa2F5LCBsZXQmIzM5O3MgcGl2b3QuIFdoYXQgYWJvdXQgYHZjYXBfc2hvd19hZG1pbmA/IERvZXMgS1VuaXQgaW50ZXJhY3Qgd2l0aCAqdGhhdCogZnVuY3Rpb24/IERvZXMgdGhhdCBpbnRlcmFjdGlvbiBvZmZlciBhIHBhdGh3YXkgdG8gdGVzdGluZyBWQ0FQIGZ1bmN0aW9uYWxpdHk/IFBlcmhhcHMgdGVzdGluZyBhZG1pbiBmdW5jdGlvbnMgaXMgYSBwYXRoIHRvIHRoZSBmdW5jdGlvbnMgSSYjMzk7bSBpbnRlcmVzdGVkIGluLiBJIG5lZWQgdG8gaW52ZXN0aWdhdGUgZnVydGhlciBhbmQgZmlndXJlIG91dCB3aGVyZSB0aGUgY29ubmVjdGlvbiBwb2ludHMgYXJlLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjQ2LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yOSAxMDoyOTwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDt2Y2FwX3Nob3dfYWRtaW4mIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtkcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC8mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfZGVidWdmcy5jPTIxMj1zdGF0aWMgaW50IHZjYXBfZGVidWdmc19zaG93X3J1bGVfYWN0aW9uc2V0KHN0cnVjdCB2Y2FwX3J1bGVfaW50ZXJuYWwgKnJpLFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2RlYnVnZnMuYy0yMzUtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9kZWJ1Z2ZzLmM6MjM2OnN0YXRpYyB2b2lkIHZjYXBfc2hvd19hZG1pbl9ydWxlKHN0cnVjdCB2Y2FwX2NvbnRyb2wgKnZjdHJsLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfZGVidWdmcy5jLTIzNy1cdFx0XHRcdCBzdHJ1Y3QgdmNhcF9hZG1pbiAqYWRtaW4sXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfZGVidWdmcy5jLTI2NS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2RlYnVnZnMuYzoyNjY6c3RhdGljIHZvaWQgdmNhcF9zaG93X2FkbWluX2luZm8oc3RydWN0IHZjYXBfY29udHJvbCAqdmN0cmwsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9kZWJ1Z2ZzLmMtMjY3LVx0XHRcdFx0IHN0cnVjdCB2Y2FwX2FkbWluICphZG1pbixcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9kZWJ1Z2ZzLmMtMjkxLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfZGVidWdmcy5jOjI5MjpzdGF0aWMgaW50IHZjYXBfc2hvd19hZG1pbihzdHJ1Y3QgdmNhcF9jb250cm9sICp2Y3RybCxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2RlYnVnZnMuYy0yOTMtXHRcdFx0ICAgc3RydWN0IHZjYXBfYWRtaW4gKmFkbWluLFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2RlYnVnZnMuYy0yOTktXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9kZWJ1Z2ZzLmM6MzAwOlx0dmNhcF9zaG93X2FkbWluX2luZm8odmN0cmwsIGFkbWluLCBvdXQpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfZGVidWdmcy5jLTMwMS1cdGxpc3RfZm9yX2VhY2hfZW50cnkoZWxlbSwgXHUwMDI2YWRtaW4tXHUwMDNlcnVsZXMsIGxpc3QpIHtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9kZWJ1Z2ZzLmMtMzA4LVx0XHRvdXQtXHUwMDNlcHJmKG91dC1cdTAwM2Vkc3QsIFwmIzM0O1xcblwmIzM0Oyk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9kZWJ1Z2ZzLmM6MzA5Olx0XHR2Y2FwX3Nob3dfYWRtaW5fcnVsZSh2Y3RybCwgYWRtaW4sIG91dCwgdG9faW50cnVsZSh2cnVsZSkpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfZGVidWdmcy5jLTMxMC1cdFx0dmNhcF9mcmVlX3J1bGUodnJ1bGUpO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2RlYnVnZnMuYy0zMTQtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9kZWJ1Z2ZzLmM6MzE1OnN0YXRpYyBpbnQgdmNhcF9zaG93X2FkbWluX3JhdyhzdHJ1Y3QgdmNhcF9jb250cm9sICp2Y3RybCxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2RlYnVnZnMuYy0zMTYtXHRcdFx0ICAgICAgIHN0cnVjdCB2Y2FwX2FkbWluICphZG1pbixcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9kZWJ1Z2ZzLmM9NDA0PXN0YXRpYyBpbnQgdmNhcF9kZWJ1Z2ZzX3Nob3coc3RydWN0IHNlcV9maWxlICptLCB2b2lkICp1bnVzZWQpXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfZGVidWdmcy5jLTQxMy1cdHZjYXBfbG9jayhpbmZvLVx1MDAzZWFkbWluKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2RlYnVnZnMuYzo0MTQ6XHRyZXQgPSB2Y2FwX3Nob3dfYWRtaW4oaW5mby1cdTAwM2V2Y3RybCwgaW5mby1cdTAwM2VhZG1pbiwgXHUwMDI2b3V0KTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2RlYnVnZnMuYy00MTUtXHR2Y2FwX3VubG9jayhpbmZvLVx1MDAzZWFkbWluKTtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9kZWJ1Z2ZzLmM9NDIxPXN0YXRpYyBpbnQgdmNhcF9yYXdfZGVidWdmc19zaG93KHN0cnVjdCBzZXFfZmlsZSAqbSwgdm9pZCAqdW51c2VkKVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2RlYnVnZnMuYy00MzAtXHR2Y2FwX2xvY2soaW5mby1cdTAwM2VhZG1pbik7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9kZWJ1Z2ZzLmM6NDMxOlx0cmV0ID0gdmNhcF9zaG93X2FkbWluX3JhdyhpbmZvLVx1MDAzZXZjdHJsLCBpbmZvLVx1MDAzZWFkbWluLCBcdTAwMjZvdXQpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfZGVidWdmcy5jLTQzMi1cdHZjYXBfdW5sb2NrKGluZm8tXHUwMDNlYWRtaW4pO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2RlYnVnZnNfa3VuaXQuYz0zNDQ9c3RhdGljIHZvaWQgdmNhcF9hcGlfc2hvd19hZG1pbl9yYXdfdGVzdChzdHJ1Y3Qga3VuaXQgKnRlc3QpXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfZGVidWdmc19rdW5pdC5jLTM3NS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2RlYnVnZnNfa3VuaXQuYzozNzY6XHRyZXQgPSB2Y2FwX3Nob3dfYWRtaW5fcmF3KFx1MDAyNnRlc3RfdmN0cmwsIFx1MDAyNmFkbWluLCBcdTAwMjZvdXQpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfZGVidWdmc19rdW5pdC5jLTM3Ny1cdEtVTklUX0VYUEVDVF9FUSh0ZXN0LCAwLCByZXQpO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2RlYnVnZnNfa3VuaXQuYz00MDI9c3RhdGljIHZvaWQgdmNhcF9hcGlfc2hvd19hZG1pbl90ZXN0KHN0cnVjdCBrdW5pdCAqdGVzdClcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9kZWJ1Z2ZzX2t1bml0LmMtNDIwLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfZGVidWdmc19rdW5pdC5jOjQyMTpcdHZjYXBfc2hvd19hZG1pbl9pbmZvKFx1MDAyNnRlc3RfdmN0cmwsIFx1MDAyNmFkbWluLCBcdTAwMjZvdXQpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfZGVidWdmc19rdW5pdC5jLTQyMi1cdGZvciAoaWR4ID0gMDsgaWR4IFx1MDAzYyB0ZXN0X3ByX2J1ZmZlcmlkeDsgJiM0MzsmIzQzO2lkeCkge1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2RlYnVnZnNfa3VuaXQuYz00NzU9c3RhdGljIHZvaWQgdmNhcF9hcGlfc2hvd19hZG1pbl9ydWxlX3Rlc3Qoc3RydWN0IGt1bml0ICp0ZXN0KVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2RlYnVnZnNfa3VuaXQuYy01MzItXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9kZWJ1Z2ZzX2t1bml0LmM6NTMzOlx0cmV0ID0gdmNhcF9zaG93X2FkbWluKFx1MDAyNnRlc3RfdmN0cmwsIFx1MDAyNmFkbWluLCBcdTAwMjZvdXQpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfZGVidWdmc19rdW5pdC5jLTUzNC1cdEtVTklUX0VYUEVDVF9FUSh0ZXN0LCAwLCByZXQpO1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjQ3LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yOSAxMDoyOTwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA0Mzc3OAoJCQkJCQkJb3V0cHV0OiA1MwoJCQkJCQkJdGhvdWdodHM6IDY4CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Pa2F5LCBsZXQgbWUgYnJlYWsgdGhpcyBkb3duLgoKKipUcmFjaW5nIHRoZSBBZG1pbiBSdWxlIEZsb3cqKgoKUmlnaHQsIHNvIEkgc2VlIHRoYXQgYHZjYXBfc2hvd19hZG1pbmAgaXMgYmVpbmcgaW52b2tlZCBieSBgdmNhcF9hcGlfc2hvd19hZG1pbl9ydWxlX3Rlc3RgIHdpdGhpbiB0aGUgYHZjYXBfYXBpX2RlYnVnZnNfa3VuaXQuY2AgZmlsZS4gSW50ZXJlc3RpbmcuIE15IG1lbnRhbCBtYXAgaW1tZWRpYXRlbHkgdGVsbHMgbWUgdGhhdCYjMzk7cyBhIGtleSBsaW5rYWdlIGZvciBhZG1pbmlzdHJhdGl2ZSBydWxlIHZpZXdpbmcgZnVuY3Rpb25hbGl0eS4gQW5kIEkga25vdyBJIG5lZWQgdG8gdW5kZXJzdGFuZCB0aGF0IGFkbWluaXN0cmF0aXZlIHJ1bGUgdmlld2luZyBmdW5jdGlvbmFsaXR5LgoKRnVydGhlcm1vcmUsIEkgbm90ZSB0aGF0IGB2Y2FwX3Nob3dfYWRtaW5gLCBpbiB0dXJuLCBpcyBjYWxsaW5nIGB2Y2FwX2RlY29kZV9ydWxlYC4gVGhhdCYjMzk7cyBpbXBvcnRhbnQuIGB2Y2FwX2RlY29kZV9ydWxlYCBpcyBhbG1vc3QgY2VydGFpbmx5IHdoZXJlIHRoZSBhY3R1YWwgcGFyc2luZyBhbmQgaW50ZXJwcmV0YXRpb24gb2YgdGhlIHJ1bGVzIGlzIGhhcHBlbmluZy4gSSBuZWVkIHRvIGNvbmZpcm0gdGhpcyBxdWlja2x5LCBidXQgdGhhdCBjb25uZWN0aW9uIGlzIGNyaXRpY2FsIGZvciBob3cgdGhpcyBlbnRpcmUgc3RydWN0dXJlIG9wZXJhdGVzLiBJIG5lZWQgdG8gbWFrZSBzdXJlIG15IHVuZGVyc3RhbmRpbmcgaXMgY29ycmVjdCBhbmQgdGhhdCBJIGhhdmUgdGhlIGNvcnJlY3QgY29ubmVjdGlvbnMuIFRpbWUgdG8gc3RhcnQgdGhlIHZlcmlmaWNhdGlvbiBwcm9jZXNzLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjQ4LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yOSAxMDoyOTwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPnJlYWQtZmlsZTwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RmlsZSYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2RlYnVnZnNfa3VuaXQuYyYjMzQ7LAogICYjMzQ7Rmlyc3RMaW5lJiMzNDs6IDUyMCwKICAmIzM0O0xpbmVDb3VudCYjMzQ7OiAyMAp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7Q29udGVudHMmIzM0OzogJiMzNDsgNTIwOlx0XHRcdC5hY3Rpb25zZXRfc3cgPSAzLFxuIDUyMTpcdFx0XHQuYWN0aW9uc2V0X3N3X3JlZ3MgPSA0LFxuIDUyMjpcdFx0XHQuYWRkciA9IDc5NCxcbiA1MjM6XHRcdFx0LnZjdHJsID0gXHUwMDI2dGVzdF92Y3RybCxcbiA1MjQ6XHRcdH07XG4gNTI1Olx0XHRzdHJ1Y3QgdmNhcF9vdXRwdXRfcHJpbnQgb3V0ID0ge1xuIDUyNjpcdFx0XHQucHJmID0gKHZvaWQgKil0ZXN0X3ByZixcbiA1Mjc6XHRcdH07XG4gNTI4Olx0XHRpbnQgcmV0LCBpZHg7XG4gNTI5Olx0XG4gNTMwOlx0XHR2Y2FwX3Rlc3RfYXBpX2luaXQoXHUwMDI2YWRtaW4pO1xuIDUzMTpcdFx0bGlzdF9hZGRfdGFpbChcdTAwMjZyaS5saXN0LCBcdTAwMjZhZG1pbi5ydWxlcyk7XG4gNTMyOlx0XG4gNTMzOlx0XHRyZXQgPSB2Y2FwX3Nob3dfYWRtaW4oXHUwMDI2dGVzdF92Y3RybCwgXHUwMDI2YWRtaW4sIFx1MDAyNm91dCk7XG4gNTM0Olx0XHRLVU5JVF9FWFBFQ1RfRVEodGVzdCwgMCwgcmV0KTtcbiA1MzU6XHRcdGZvciAoaWR4ID0gMDsgaWR4IFx1MDAzYyB0ZXN0X3ByX2J1ZmZlcmlkeDsgJiM0MzsmIzQzO2lkeCkge1xuIDUzNjpcdFx0XHQvKiBwcl9pbmZvKFwmIzM0O2xvZ1slMDJkXTogJXNcJiMzNDssIGlkeCwgdGVzdF9wcl9idWZmZXJbaWR4XSk7ICovXG4gNTM3Olx0XHRcdEtVTklUX0VYUEVDVF9TVFJFUSh0ZXN0LCB0ZXN0X2FkbWluX2V4cGVjdFtpZHhdLFxuIDUzODpcdFx0XHRcdFx0ICAgdGVzdF9wcl9idWZmZXJbaWR4XSk7XG4gNTM5Olx0XHR9XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+NDkvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzI5IDEwOjI5PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDQ0NDQ5CgkJCQkJCQlvdXRwdXQ6IDUwCgkJCQkJCQl0aG91Z2h0czogNjAKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPk9rYXksIGhlcmUmIzM5O3MgdGhlIHN1bW1hcnksIGZyYW1lZCBhcyBteSB0aG91Z2h0IHByb2Nlc3M6CgoqKlRyYWNpbmcgdGhlIFJ1bGUgRGVjb2RpbmcgTG9naWMqKgoKWWVzISBJJiMzOTt2ZSBjb25maXJtZWQgdGhhdCB0aGUgYHZjYXBfYXBpX3Nob3dfYWRtaW5fcnVsZV90ZXN0YCBmdW5jdGlvbiwgYXMgZXhwZWN0ZWQsIHVsdGltYXRlbHkgY2FsbHMgYHZjYXBfc2hvd19hZG1pbmAuIEFuZCBgdmNhcF9zaG93X2FkbWluYCB0aGVuIGxldmVyYWdlcyBgdmNhcF9kZWNvZGVfcnVsZWAuIFRoYXQmIzM5O3MgdGhlIGZsb3cgSSBuZWVkIHRvIHVuZGVyc3RhbmQuIE5vdyBJIHNob3VsZCBmb2N1cyBvbiBgdmNhcF9zaG93X2FkbWluYCwgc3BlY2lmaWNhbGx5IGluIGB2Y2FwX2FwaV9kZWJ1Z2ZzLmNgLiBMZXQmIzM5O3MgZ2V0IGludG8gdGhlIGRldGFpbHMgdGhlcmUgYW5kIHNlZSBob3cgdGhhdCBkZWNvZGluZyBwcm9jZXNzIGFjdHVhbGx5IHVuZm9sZHMuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+NTAvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzI5IDEwOjI5PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+cmVhZC1maWxlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtGaWxlJiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfZGVidWdmcy5jJiMzNDssCiAgJiMzNDtGaXJzdExpbmUmIzM0OzogMjkwLAogICYjMzQ7TGluZUNvdW50JiMzNDs6IDI1Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtDb250ZW50cyYjMzQ7OiAmIzM0OyAyOTA6XHR9XG4gMjkxOlx0XG4gMjkyOlx0c3RhdGljIGludCB2Y2FwX3Nob3dfYWRtaW4oc3RydWN0IHZjYXBfY29udHJvbCAqdmN0cmwsXG4gMjkzOlx0XHRcdFx0ICAgc3RydWN0IHZjYXBfYWRtaW4gKmFkbWluLFxuIDI5NDpcdFx0XHRcdCAgIHN0cnVjdCB2Y2FwX291dHB1dF9wcmludCAqb3V0KVxuIDI5NTpcdHtcbiAyOTY6XHRcdHN0cnVjdCB2Y2FwX3J1bGVfaW50ZXJuYWwgKmVsZW07XG4gMjk3Olx0XHRzdHJ1Y3QgdmNhcF9ydWxlICp2cnVsZTtcbiAyOTg6XHRcdGludCByZXQgPSAwO1xuIDI5OTpcdFxuIDMwMDpcdFx0dmNhcF9zaG93X2FkbWluX2luZm8odmN0cmwsIGFkbWluLCBvdXQpO1xuIDMwMTpcdFx0bGlzdF9mb3JfZWFjaF9lbnRyeShlbGVtLCBcdTAwMjZhZG1pbi1cdTAwM2VydWxlcywgbGlzdCkge1xuIDMwMjpcdFx0XHR2cnVsZSA9IHZjYXBfZGVjb2RlX3J1bGUoZWxlbSk7XG4gMzAzOlx0XHRcdGlmIChJU19FUlIodnJ1bGUpKSB7XG4gMzA0Olx0XHRcdFx0cmV0ID0gUFRSX0VSUih2cnVsZSk7XG4gMzA1Olx0XHRcdFx0YnJlYWs7XG4gMzA2Olx0XHRcdH1cbiAzMDc6XHRcbiAzMDg6XHRcdFx0b3V0LVx1MDAzZXByZihvdXQtXHUwMDNlZHN0LCBcJiMzNDtcXG5cJiMzNDspO1xuIDMwOTpcdFx0XHR2Y2FwX3Nob3dfYWRtaW5fcnVsZSh2Y3RybCwgYWRtaW4sIG91dCwgdG9faW50cnVsZSh2cnVsZSkpO1xuIDMxMDpcdFx0XHR2Y2FwX2ZyZWVfcnVsZSh2cnVsZSk7XG4gMzExOlx0XHR9XG4gMzEyOlx0XHRyZXR1cm4gcmV0O1xuIDMxMzpcdH1cbiAzMTQ6XHRcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD41MS8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjkgMTA6Mjk8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogNDUwNjMKCQkJCQkJCW91dHB1dDogNDgKCQkJCQkJCXRob3VnaHRzOiAxMTUKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqQW5hbHl6aW5nIHRoZSBgdmNhcF9kZWNvZGVfcnVsZWAgRml4KioKCk9rYXksIHNvIHRoZSBLVW5pdCB0ZXN0cyBjb25maXJtIHRoYXQgYHZjYXBfZGVjb2RlX3J1bGVgIGlzIGluZGVlZCBhY2Nlc3NpYmxlIGFuZCwgdGhlcmVmb3JlLCB0ZXN0YWJsZS4gVGhlIHBhdGNoIGluIHF1ZXN0aW9uIGFkZHMgYSBjYWxsIHRvIGB2Y2FwX2ZyZWVfcnVsZSgmYW1wO3JpLSZndDtkYXRhKWAgb24gZXJyb3Igd2l0aGluIGB2Y2FwX2RlY29kZV9ydWxlYC4gVGhhdCYjMzk7cyBnb29kLiBNeSBpbW1lZGlhdGUgdGhvdWdodCBpcywgaXMgdGhpcyBhIHdvcnRod2hpbGUgZnV6emluZyB0YXJnZXQgbm93IHRoYXQgaXQmIzM5O3MgZml4ZWQ/IEJlZm9yZSBJIGp1bXAgdG8gY29uY2x1c2lvbnMsIGxldCYjMzk7cyBicmVhayB0aGlzIGRvd24gZnVydGhlci4gVGhlIHBhdGNoIGFkZHJlc3NlcyBhIG1lbW9yeSBsZWFrIHdpdGhpbiBgdmNhcF9kZWNvZGVfcnVsZWAgb24gdGhlc2UgZXJyb3IgcGF0aHMuIEdvb2QgY2F0Y2guIE5vdywgYHZjYXBfZGVjb2RlX3J1bGVgIChvciByYXRoZXIsIEkgbmVlZCB0byBjb25maXJtIGB2Y2FwX2FsbG9jX3J1bGVgIGlzIGNhbGxlZCBpbnNpZGUgaXQpIGlzIGFsbG9jYXRpbmcgbWVtb3J5LiBJIG5lZWQgdG8gbWFrZSBzdXJlIEkgYW0gdHJhY2luZyBiYWNrIHRvIHRoZSBhbGxvY2F0aW9uIG9mIHRoZSBtZW1vcnkgd2l0aCB0aGUgY2FsbC4gTGV0JiMzOTtzIHRyYWNlIHRocm91Z2ggdGhlIGltcGxlbWVudGF0aW9uIG9mIGB2Y2FwX2RlY29kZV9ydWxlYCB0byBjb25maXJtIHdoZXJlIG1lbW9yeSBpcyBhY3R1YWxseSBiZWluZyBhbGxvY2F0ZWQgYW5kIGhvdyB0aGUgZnJlZSBpcyBjb25uZWN0ZWQuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+NTIvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzI5IDEwOjI5PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+cmVhZC1maWxlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtGaWxlJiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGkuYyYjMzQ7LAogICYjMzQ7Rmlyc3RMaW5lJiMzNDs6IDI0MTYsCiAgJiMzNDtMaW5lQ291bnQmIzM0OzogMzUKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0NvbnRlbnRzJiMzNDs6ICYjMzQ7MjQxNjpcdHN0cnVjdCB2Y2FwX3J1bGUgKnZjYXBfZGVjb2RlX3J1bGUoc3RydWN0IHZjYXBfcnVsZV9pbnRlcm5hbCAqZWxlbSlcbjI0MTc6XHR7XG4yNDE4Olx0XHRzdHJ1Y3QgdmNhcF9ydWxlX2ludGVybmFsICpyaTtcbjI0MTk6XHRcdGludCBlcnI7XG4yNDIwOlx0XG4yNDIxOlx0XHRyaSA9IHZjYXBfZHVwX3J1bGUoZWxlbSwgZWxlbS1cdTAwM2VzdGF0ZSA9PSBWQ0FQX1JTX0RJU0FCTEVEKTtcbjI0MjI6XHRcdGlmIChJU19FUlIocmkpKVxuMjQyMzpcdFx0XHRyZXR1cm4gRVJSX0NBU1QocmkpO1xuMjQyNDpcdFxuMjQyNTpcdFx0aWYgKHJpLVx1MDAzZXN0YXRlID09IFZDQVBfUlNfRElTQUJMRUQpXG4yNDI2Olx0XHRcdGdvdG8gb3V0O1xuMjQyNzpcdFxuMjQyODpcdFx0ZXJyID0gdmNhcF9yZWFkX3J1bGUocmkpO1xuMjQyOTpcdFx0aWYgKGVycilcbjI0MzA6XHRcdFx0Z290byBvdXRfZXJyO1xuMjQzMTpcdFxuMjQzMjpcdFx0ZXJyID0gdmNhcF9kZWNvZGVfa2V5c2V0KHJpKTtcbjI0MzM6XHRcdGlmIChlcnIpXG4yNDM0Olx0XHRcdGdvdG8gb3V0X2VycjtcbjI0MzU6XHRcbjI0MzY6XHRcdGVyciA9IHZjYXBfZGVjb2RlX2FjdGlvbnNldChyaSk7XG4yNDM3Olx0XHRpZiAoZXJyKVxuMjQzODpcdFx0XHRnb3RvIG91dF9lcnI7XG4yNDM5Olx0XG4yNDQwOlx0b3V0OlxuMjQ0MTpcdFx0cmV0dXJuIFx1MDAyNnJpLVx1MDAzZWRhdGE7XG4yNDQyOlx0b3V0X2VycjpcbjI0NDM6XHRcdHZjYXBfZnJlZV9ydWxlKFx1MDAyNnJpLVx1MDAzZWRhdGEpO1xuMjQ0NDpcdFx0cmV0dXJuIEVSUl9QVFIoZXJyKTtcbjI0NDU6XHR9XG4yNDQ2Olx0XG4yNDQ3Olx0c3RydWN0IHZjYXBfcnVsZSAqdmNhcF9nZXRfcnVsZShzdHJ1Y3QgdmNhcF9jb250cm9sICp2Y3RybCwgdTMyIGlkKVxuMjQ0ODpcdHtcbjI0NDk6XHRcdHN0cnVjdCB2Y2FwX3J1bGVfaW50ZXJuYWwgKmVsZW07XG4yNDUwOlx0XHRzdHJ1Y3QgdmNhcF9ydWxlICpydWxlO1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjUzLzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yOSAxMDoyOTwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA0NTkzMgoJCQkJCQkJb3V0cHV0OiAzNwoJCQkJCQkJdGhvdWdodHM6IDM2MgoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipBbmFseXppbmcgYSBNZW1vcnkgTGVhayBGaXgqKgoKT2theSwgc28gYHZjYXBfZHVwX3J1bGVgIGFsbG9jYXRlcyBtZW1vcnkgZm9yIGByaWAsIHRoYXQmIzM5O3MgY2xlYXIuIFRoZSBjcml0aWNhbCBwb2ludCBpcyB0aGF0IHByZXZpb3VzbHksIGlmIGB2Y2FwX3JlYWRfcnVsZWAsIGB2Y2FwX2RlY29kZV9rZXlzZXRgLCBvciBgdmNhcF9kZWNvZGVfYWN0aW9uc2V0YCBmYWlsZWQsIGl0IHJldHVybmVkIGFuIGVycm9yICp3aXRob3V0KiBmcmVlaW5nIGByaWAuICBBIGNsYXNzaWMgbWVtb3J5IGxlYWsgc2l0dWF0aW9uLiBUaGUgY2hhbmdlIGlzIHRoYXQgbm93IGl0IGNvcnJlY3RseSBjYWxscyBgdmNhcF9mcmVlX3J1bGUoJmFtcDtyaS0mZ3Q7ZGF0YSlgIGJlZm9yZSByZXR1cm5pbmcsIHdoaWNoIGZpeGVzIHRoZSBtZW1vcnkgbGVhayDigJMgYSBnb29kLCBuZWNlc3NhcnkgZnVuY3Rpb25hbCBjaGFuZ2UuCgpUaGUgbmV4dCBxdWVzdGlvbiBpcyBhbHdheXMsICYjMzQ7aXMgdGhpcyBmaXggYWN0dWFsbHkgcmVsZXZhbnQgaW4gdGhlIGVudmlyb25tZW50cyB3ZSBjYXJlIGFib3V0PyYjMzQ7IFNvLCBob3cgaXMgdGhpcyBjb2RlcGF0aCByZWFjaGVkIGluLCBmb3IgZXhhbXBsZSwgYSB2aXJ0dWFsaXplZCBzZXR1cD8gQWgsIHllcywgdGhlIEtVbml0IHRlc3RzLiBUaGUgS1VuaXQgZnJhbWV3b3JrIGNhbiB0cmlnZ2VyIHRob3NlLiAgSSBzZWUgdGhhdCBgdmNhcF9hcGlfc2hvd19hZG1pbl9ydWxlX3Rlc3RgIHNwZWNpZmljYWxseSBjYWxscyB0aGlzIGNvZGUuIEJ1dCwgaG93ICpkb2VzKiB0aGUgS1VuaXQgZ2V0IHRyaWdnZXJlZD8gU3l6a2FsbGVyLCByaWdodD8gIFN5emthbGxlciBjYW4gdHJpZ2dlciB0aGVtIGlmIHRoZXkgYXJlIG1vZHVsZXMsIG9yIGJ1aWx0LWluLCBidXQgdXN1YWxseSBkb2VzbiYjMzk7dCBmdXp6IHRoZW0gZGlyZWN0bHkgdW5sZXNzIHRoZXkgaGF2ZSBleHBvc2VkIGludGVyZmFjZXMgbGlrZSBkZWJ1Z2ZzLgoKV2FpdCBhIHNlY29uZOKApiBgdmNhcF9zaG93X2FkbWluYCAqaXMqIHJlYWNoYWJsZSB2aWEgZGVidWdmcyEgIFRoYXQmIzM5O3MgYSBwb3RlbnRpYWwgYXR0YWNrIHZlY3Rvci4gIExldCYjMzk7cyBzZWXigKYgIGB2Y2FwX2FwaV9kZWJ1Z2ZzLmNgIGNyZWF0ZXMgdGhlIGRlYnVnZnMgZW50cmllcywgc28gdGhhdCYjMzk7cyB0aGUgc3RhcnRpbmcgcG9pbnQuICBCdXQsIGFzIEkgcmVjYWxsLCB0aGUgZGVidWdmcyBlbnRyaWVzIGFyZSBvbmx5ICphY3R1YWxseSogY3JlYXRlZCBpZiBhIGNsaWVudCBkcml2ZXIsIGxpa2UgU3Bhcng1IG9yIExhbjk2NngsIGluaXRpYWxpemVzIHRoZSBWQ0FQIGNvbnRyb2wgc3RydWN0dXJlIGFuZCB0aGVuIGNhbGxzIGB2Y2FwX2RlYnVnZnNfaW5pdGAuIFRob3NlIGRyaXZlcnMgYXJlIGZvciBzcGVjaWZpYyBwaHlzaWNhbCBoYXJkd2FyZSwgdGhvdWdoLCBsaWtlIFNwYXJ4NSBhbmQgTGFuOTY2eC4gVGhleSB3b24mIzM5O3QgcHJvYmUgaW4gUUVNVSwgc28gYHZjYXBfZGVidWdmc19pbml0YCBpcyBuZXZlciBjYWxsZWQsIGFuZCB0aGUgZGVidWdmcyBlbnRyaWVzIHdvbiYjMzk7dCBleGlzdC4KClNvLCB0aGUgbmV4dCBzdGVwIGlzIHRvIG1ha2Ugc3VyZSBub3RoaW5nIGVsc2UgY2FsbHMgYHZjYXBfZGVidWdmc19pbml0YCwgb3IgdXNlcyBWQ0FQIGF0IGFsbC4gSSBuZWVkIHRvIHZlcmlmeSB0aGF0LgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjU0LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yOSAxMDoyOTwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+RXJyb3I6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5ubyBtYXRjaGVzPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O3ZjYXBfZGVidWdmc19pbml0JiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwLyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtlcnJvciYjMzQ7OiAmIzM0O25vIG1hdGNoZXMmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+NTUvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzI5IDEwOjI5PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDQ2ODAxCgkJCQkJCQlvdXRwdXQ6IDM1CgkJCQkJCQl0aG91Z2h0czogMTAKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPk9rYXksIGhlcmUmIzM5O3MgdGhlIHN1bW1hcnksIGFzc3VtaW5nIEkmIzM5O20gdGhlIG9uZSBoYXZpbmcgdGhlc2UgdGhvdWdodHMgYW5kIEkgYW0gYW4gZXhwZXJ0IGluIG15IGZpZWxkOgoKKipTZWNvbmQtR3Vlc3NpbmcgTm9tZW5jbGF0dXJlKioKCkhtbSwgSSYjMzk7bSBqdXN0IHJldmlld2luZyB0aGlzIGFnYWluLCBhbmQgaXTigJlzIG5hZ2dpbmcgYXQgbWUuIElzIHRoaXMgc3BlY2lmaWMgdGVybSDigJMgdGhlIG9uZSBJJiMzOTttIHVzaW5nLCB0aGUgb25lIEkgKnRoaW5rKiBpcyBzdGFuZGFyZCDigJMgaXMgaXQgcmVhbGx5IHRoZSBtb3N0IGFwcHJvcHJpYXRlPyBJJiMzOTttIHN0YXJ0aW5nIHRvIGdldCB0aGlzIGZlZWxpbmcgdGhhdCBpdCBtaWdodCBiZSBjYWxsZWQgc29tZXRoaW5nIGRpZmZlcmVudCBpbiB0aGlzIHBhcnRpY3VsYXIgY29udGV4dCwgb3IgcGVyaGFwcyB0aGVyZSYjMzk7cyBhIG1vcmUgY3VycmVudCBvciBwcmVjaXNlIGxhYmVsIEkmIzM5O20gb3Zlcmxvb2tpbmcuIEkga25vdyB0aGUgYmFzaWNzLCB0aGUgY29yZSBjb25jZXB0cywgYnV0IEkmIzM5O20gcXVlc3Rpb25pbmcgd2hldGhlciBJJiMzOTt2ZSBtaXNzZWQgYSBudWFuY2UgaW4gdGhlIHRlcm1pbm9sb2d5LiBJIGRvbiYjMzk7dCB3YW50IHRvIHNvdW5kIG91dGRhdGVkIG9yLCB3b3JzZSwgbWlzdW5kZXJzdGFuZCBzb21ldGhpbmcgY3JpdGljYWwsIGp1c3QgYmVjYXVzZSBvZiBteSBhc3N1bXB0aW9ucyBhYm91dCB0aGUgdGVybWlub2xvZ3kuIFRpbWUgdG8gZG91YmxlLWNoZWNrIG15IHNvdXJjZXMgYW5kIG1ha2Ugc3VyZSBJJiMzOTttIHVzaW5nIHRoZSBtb3N0IGFjY3VyYXRlIGFuZCBhY2NlcHRlZCBkZXNpZ25hdGlvbi4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD41Ni8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjkgMTA6Mjk8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7ZGVidWdmcyYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwLyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtkcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC9NYWtlZmlsZT03PW9iai0kKENPTkZJR19WQ0FQX0tVTklUX1RFU1QpICYjNDM7PSAgdmNhcF9tb2RlbF9rdW5pdC5vXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC9NYWtlZmlsZTo4OnZjYXAtJChDT05GSUdfREVCVUdfRlMpICYjNDM7PSB2Y2FwX2FwaV9kZWJ1Z2ZzLm9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL01ha2VmaWxlLTktXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfZGVidWdmcy5jLTgtI2luY2x1ZGUgXCYjMzQ7dmNhcF9hcGlfcHJpdmF0ZS5oXCYjMzQ7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9kZWJ1Z2ZzLmM6OTojaW5jbHVkZSBcJiMzNDt2Y2FwX2FwaV9kZWJ1Z2ZzLmhcJiMzNDtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2RlYnVnZnMuYy0xMC1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2RlYnVnZnMuYzoxMTpzdHJ1Y3QgdmNhcF9hZG1pbl9kZWJ1Z2ZzX2luZm8ge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfZGVidWdmcy5jLTEyLVx0c3RydWN0IHZjYXBfY29udHJvbCAqdmN0cmw7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfZGVidWdmcy5jLTE1LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfZGVidWdmcy5jOjE2OnN0cnVjdCB2Y2FwX3BvcnRfZGVidWdmc19pbmZvIHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2RlYnVnZnMuYy0xNy1cdHN0cnVjdCB2Y2FwX2NvbnRyb2wgKnZjdHJsO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2RlYnVnZnMuYy0yMS0vKiBEdW1wIHRoZSBrZXlmaWVsZHMgdmFsdWUgYW5kIG1hc2sgdmFsdWVzICovXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9kZWJ1Z2ZzLmM6MjI6c3RhdGljIHZvaWQgdmNhcF9kZWJ1Z2ZzX3Nob3dfcnVsZV9rZXlmaWVsZChzdHJ1Y3QgdmNhcF9jb250cm9sICp2Y3RybCxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2RlYnVnZnMuYy0yMy1cdFx0XHRcdFx0ICAgIHN0cnVjdCB2Y2FwX291dHB1dF9wcmludCAqb3V0LFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2RlYnVnZnMuYz0xMTY9c3RhdGljIHZvaWRcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2RlYnVnZnMuYzoxMTc6dmNhcF9kZWJ1Z2ZzX3Nob3dfcnVsZV9hY3Rpb25maWVsZChzdHJ1Y3QgdmNhcF9jb250cm9sICp2Y3RybCxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2RlYnVnZnMuYy0xMTgtXHRcdFx0XHQgICBzdHJ1Y3QgdmNhcF9vdXRwdXRfcHJpbnQgKm91dCxcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9kZWJ1Z2ZzLmMtMTU3LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfZGVidWdmcy5jOjE1ODpzdGF0aWMgaW50IHZjYXBfZGVidWdmc19zaG93X2tleXNldHMoc3RydWN0IHZjYXBfcnVsZV9pbnRlcm5hbCAqcmksXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9kZWJ1Z2ZzLmMtMTU5LVx0XHRcdFx0ICAgICBzdHJ1Y3QgdmNhcF9vdXRwdXRfcHJpbnQgKm91dClcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9kZWJ1Z2ZzLmMtMTkwLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfZGVidWdmcy5jOjE5MTpzdGF0aWMgaW50IHZjYXBfZGVidWdmc19zaG93X3J1bGVfa2V5c2V0KHN0cnVjdCB2Y2FwX3J1bGVfaW50ZXJuYWwgKnJpLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfZGVidWdmcy5jLTE5Mi1cdFx0XHRcdFx0IHN0cnVjdCB2Y2FwX291dHB1dF9wcmludCAqb3V0KVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2RlYnVnZnMuYy0xOTgtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9kZWJ1Z2ZzLmM6MTk5Olx0dmNhcF9kZWJ1Z2ZzX3Nob3dfa2V5c2V0cyhyaSwgb3V0KTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2RlYnVnZnMuYy0yMDAtXHRvdXQtXHUwMDNlcHJmKG91dC1cdTAwM2Vkc3QsIFwmIzM0OyAga2V5c2V0X3N3OiAlZFxcblwmIzM0OywgcmktXHUwMDNla2V5c2V0X3N3KTtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9kZWJ1Z2ZzLmMtMjA0LVx0XHRrZXlmaWVsZCA9IHZjYXBfa2V5ZmllbGRzKHZjdHJsLCBhZG1pbi1cdTAwM2V2dHlwZSwgcmktXHUwMDNlZGF0YS5rZXlzZXQpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfZGVidWdmcy5jOjIwNTpcdFx0dmNhcF9kZWJ1Z2ZzX3Nob3dfcnVsZV9rZXlmaWVsZCh2Y3RybCwgb3V0LCBja2YtXHUwMDNlY3RybC5rZXksXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9kZWJ1Z2ZzLmMtMjA2LVx0XHRcdFx0XHRcdGtleWZpZWxkLCBcdTAwMjZja2YtXHUwMDNlZGF0YSk7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfZGVidWdmcy5jLTIxMS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2RlYnVnZnMuYzoyMTI6c3RhdGljIGludCB2Y2FwX2RlYnVnZnNfc2hvd19ydWxlX2FjdGlvbnNldChzdHJ1Y3QgdmNhcF9ydWxlX2ludGVybmFsICpyaSxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2RlYnVnZnMuYy0yMTMtXHRcdFx0XHRcdCAgICBzdHJ1Y3QgdmNhcF9vdXRwdXRfcHJpbnQgKm91dClcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9kZWJ1Z2ZzLmMtMjI3LVx0XHRcdFx0XHRcdHJpLVx1MDAzZWRhdGEuYWN0aW9uc2V0KTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2RlYnVnZnMuYzoyMjg6XHRcdHZjYXBfZGVidWdmc19zaG93X3J1bGVfYWN0aW9uZmllbGQodmN0cmwsIG91dCwgY2FmLVx1MDAzZWN0cmwuYWN0aW9uLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfZGVidWdmcy5jLTIyOS1cdFx0XHRcdFx0XHQgICBhY3Rpb25maWVsZCxcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9kZWJ1Z2ZzLmM9MjM2PXN0YXRpYyB2b2lkIHZjYXBfc2hvd19hZG1pbl9ydWxlKHN0cnVjdCB2Y2FwX2NvbnRyb2wgKnZjdHJsLFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2RlYnVnZnMuYy0yNjEtXHR9XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9kZWJ1Z2ZzLmM6MjYyOlx0dmNhcF9kZWJ1Z2ZzX3Nob3dfcnVsZV9rZXlzZXQocmksIG91dCk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9kZWJ1Z2ZzLmM6MjYzOlx0dmNhcF9kZWJ1Z2ZzX3Nob3dfcnVsZV9hY3Rpb25zZXQocmksIG91dCk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9kZWJ1Z2ZzLmMtMjY0LX1cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9kZWJ1Z2ZzLmM9MzE1PXN0YXRpYyBpbnQgdmNhcF9zaG93X2FkbWluX3JhdyhzdHJ1Y3QgdmNhcF9jb250cm9sICp2Y3RybCxcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9kZWJ1Z2ZzLmMtMzY3LS8qIFNob3cgdGhlIHBvcnQgY29uZmlndXJhdGlvbiBhbmQgc3RhdHVzICovXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9kZWJ1Z2ZzLmM6MzY4OnN0YXRpYyBpbnQgdmNhcF9wb3J0X2RlYnVnZnNfc2hvdyhzdHJ1Y3Qgc2VxX2ZpbGUgKm0sIHZvaWQgKnVudXNlZClcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2RlYnVnZnMuYy0zNjkte1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfZGVidWdmcy5jOjM3MDpcdHN0cnVjdCB2Y2FwX3BvcnRfZGVidWdmc19pbmZvICppbmZvID0gbS1cdTAwM2Vwcml2YXRlO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfZGVidWdmcy5jLTM3MS1cdHN0cnVjdCB2Y2FwX2FkbWluICphZG1pbjtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9kZWJ1Z2ZzLmMtMzgzLX1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2RlYnVnZnMuYzozODQ6REVGSU5FX1NIT1dfQVRUUklCVVRFKHZjYXBfcG9ydF9kZWJ1Z2ZzKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2RlYnVnZnMuYy0zODUtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9kZWJ1Z2ZzLmM6Mzg2OnZvaWQgdmNhcF9wb3J0X2RlYnVnZnMoc3RydWN0IGRldmljZSAqZGV2LCBzdHJ1Y3QgZGVudHJ5ICpwYXJlbnQsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9kZWJ1Z2ZzLmMtMzg3LVx0XHQgICAgICAgc3RydWN0IHZjYXBfY29udHJvbCAqdmN0cmwsXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfZGVidWdmcy5jLTM4OS17XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9kZWJ1Z2ZzLmM6MzkwOlx0c3RydWN0IHZjYXBfcG9ydF9kZWJ1Z2ZzX2luZm8gKmluZm87XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9kZWJ1Z2ZzLmMtMzkxLVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2RlYnVnZnMuYy0zOTctXHRpbmZvLVx1MDAzZW5kZXYgPSBuZGV2O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfZGVidWdmcy5jOjM5ODpcdGRlYnVnZnNfY3JlYXRlX2ZpbGUobmV0ZGV2X25hbWUobmRldiksIDA0NDQsIHBhcmVudCwgaW5mbyxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2RlYnVnZnMuYzozOTk6XHRcdFx0ICAgIFx1MDAyNnZjYXBfcG9ydF9kZWJ1Z2ZzX2ZvcHMpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfZGVidWdmcy5jLTQwMC19XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9kZWJ1Z2ZzLmM6NDAxOkVYUE9SVF9TWU1CT0xfR1BMKHZjYXBfcG9ydF9kZWJ1Z2ZzKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2RlYnVnZnMuYy00MDItXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9kZWJ1Z2ZzLmMtNDAzLS8qIFNob3cgdGhlIGZ1bGwgVkNBUCBpbnN0YW5jZSBkYXRhIChydWxlcyB3aXRoIGFsbCBmaWVsZHMpICovXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9kZWJ1Z2ZzLmM6NDA0OnN0YXRpYyBpbnQgdmNhcF9kZWJ1Z2ZzX3Nob3coc3RydWN0IHNlcV9maWxlICptLCB2b2lkICp1bnVzZWQpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9kZWJ1Z2ZzLmMtNDA1LXtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2RlYnVnZnMuYzo0MDY6XHRzdHJ1Y3QgdmNhcF9hZG1pbl9kZWJ1Z2ZzX2luZm8gKmluZm8gPSBtLVx1MDAzZXByaXZhdGU7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9kZWJ1Z2ZzLmMtNDA3LVx0c3RydWN0IHZjYXBfb3V0cHV0X3ByaW50IG91dCA9IHtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9kZWJ1Z2ZzLmMtNDE3LX1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2RlYnVnZnMuYzo0MTg6REVGSU5FX1NIT1dfQVRUUklCVVRFKHZjYXBfZGVidWdmcyk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9kZWJ1Z2ZzLmMtNDE5LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfZGVidWdmcy5jLTQyMC0vKiBTaG93IHRoZSByYXcgVkNBUCBpbnN0YW5jZSBkYXRhIChydWxlcyB3aXRoIGFkZHJlc3MgaW5mbykgKi9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2RlYnVnZnMuYzo0MjE6c3RhdGljIGludCB2Y2FwX3Jhd19kZWJ1Z2ZzX3Nob3coc3RydWN0IHNlcV9maWxlICptLCB2b2lkICp1bnVzZWQpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9kZWJ1Z2ZzLmMtNDIyLXtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2RlYnVnZnMuYzo0MjM6XHRzdHJ1Y3QgdmNhcF9hZG1pbl9kZWJ1Z2ZzX2luZm8gKmluZm8gPSBtLVx1MDAzZXByaXZhdGU7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9kZWJ1Z2ZzLmMtNDI0LVx0c3RydWN0IHZjYXBfb3V0cHV0X3ByaW50IG91dCA9IHtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9kZWJ1Z2ZzLmMtNDM0LX1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2RlYnVnZnMuYzo0MzU6REVGSU5FX1NIT1dfQVRUUklCVVRFKHZjYXBfcmF3X2RlYnVnZnMpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfZGVidWdmcy5jLTQzNi1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2RlYnVnZnMuYzo0Mzc6c3RydWN0IGRlbnRyeSAqdmNhcF9kZWJ1Z2ZzKHN0cnVjdCBkZXZpY2UgKmRldiwgc3RydWN0IGRlbnRyeSAqcGFyZW50LFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfZGVidWdmcy5jLTQzOC1cdFx0XHQgICAgc3RydWN0IHZjYXBfY29udHJvbCAqdmN0cmwpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9kZWJ1Z2ZzLmMtNDM5LXtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2RlYnVnZnMuYzo0NDA6XHRzdHJ1Y3QgdmNhcF9hZG1pbl9kZWJ1Z2ZzX2luZm8gKmluZm87XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9kZWJ1Z2ZzLmMtNDQxLVx0c3RydWN0IHZjYXBfYWRtaW4gKmFkbWluO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2RlYnVnZnMuYy00NDQtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9kZWJ1Z2ZzLmM6NDQ1Olx0ZGlyID0gZGVidWdmc19jcmVhdGVfZGlyKFwmIzM0O3ZjYXBzXCYjMzQ7LCBwYXJlbnQpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfZGVidWdmcy5jLTQ0Ni1cdGlmIChQVFJfRVJSX09SX1pFUk8oZGlyKSlcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9kZWJ1Z2ZzLmMtNDU1LVx0XHRpbmZvLVx1MDAzZWFkbWluID0gYWRtaW47XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9kZWJ1Z2ZzLmM6NDU2Olx0XHRkZWJ1Z2ZzX2NyZWF0ZV9maWxlKG5hbWUsIDA0NDQsIGRpciwgaW5mbyxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2RlYnVnZnMuYzo0NTc6XHRcdFx0XHQgICAgXHUwMDI2dmNhcF9yYXdfZGVidWdmc19mb3BzKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2RlYnVnZnMuYy00NTgtXHRcdHNwcmludGYobmFtZSwgXCYjMzQ7JXNfJWRcJiMzNDssIHZjdHJsLVx1MDAzZXZjYXBzW2FkbWluLVx1MDAzZXZ0eXBlXS5uYW1lLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfZGVidWdmcy5jLTQ1OS1cdFx0XHRhZG1pbi1cdTAwM2V2aW5zdCk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9kZWJ1Z2ZzLmM6NDYwOlx0XHRkZWJ1Z2ZzX2NyZWF0ZV9maWxlKG5hbWUsIDA0NDQsIGRpciwgaW5mbywgXHUwMDI2dmNhcF9kZWJ1Z2ZzX2ZvcHMpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfZGVidWdmcy5jLTQ2MS1cdH1cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9kZWJ1Z2ZzLmMtNDYzLX1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2RlYnVnZnMuYzo0NjQ6RVhQT1JUX1NZTUJPTF9HUEwodmNhcF9kZWJ1Z2ZzKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2RlYnVnZnMuYy00NjUtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9kZWJ1Z2ZzLmMtNDY2LSNpZmRlZiBDT05GSUdfVkNBUF9LVU5JVF9URVNUXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9kZWJ1Z2ZzLmM6NDY3OiNpbmNsdWRlIFwmIzM0O3ZjYXBfYXBpX2RlYnVnZnNfa3VuaXQuY1wmIzM0O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfZGVidWdmcy5jLTQ2OC0jZW5kaWZcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9kZWJ1Z2ZzLmgtOS0jaW5jbHVkZSBcdTAwM2NsaW51eC90eXBlcy5oXHUwMDNlXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9kZWJ1Z2ZzLmg6MTA6I2luY2x1ZGUgXHUwMDNjbGludXgvZGVidWdmcy5oXHUwMDNlXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9kZWJ1Z2ZzLmgtMTEtI2luY2x1ZGUgXHUwMDNjbGludXgvbmV0ZGV2aWNlLmhcdTAwM2Vcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9kZWJ1Z2ZzLmgtMTYtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9kZWJ1Z2ZzLmg6MTc6dm9pZCB2Y2FwX3BvcnRfZGVidWdmcyhzdHJ1Y3QgZGV2aWNlICpkZXYsIHN0cnVjdCBkZW50cnkgKnBhcmVudCxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2RlYnVnZnMuaC0xOC1cdFx0ICAgICAgIHN0cnVjdCB2Y2FwX2NvbnRyb2wgKnZjdHJsLFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2RlYnVnZnMuaC0yMS0vKiBDcmVhdGUgYSBkZWJ1Z0ZTIGVudHJ5IGZvciBhIHZjYXAgaW5zdGFuY2UgKi9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2RlYnVnZnMuaDoyMjpzdHJ1Y3QgZGVudHJ5ICp2Y2FwX2RlYnVnZnMoc3RydWN0IGRldmljZSAqZGV2LCBzdHJ1Y3QgZGVudHJ5ICpwYXJlbnQsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9kZWJ1Z2ZzLmgtMjMtXHRcdFx0ICAgIHN0cnVjdCB2Y2FwX2NvbnRyb2wgKnZjdHJsKTtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9kZWJ1Z2ZzLmgtMjYtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9kZWJ1Z2ZzLmg6Mjc6c3RhdGljIGlubGluZSB2b2lkIHZjYXBfcG9ydF9kZWJ1Z2ZzKHN0cnVjdCBkZXZpY2UgKmRldiwgc3RydWN0IGRlbnRyeSAqcGFyZW50LFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfZGVidWdmcy5oLTI4LVx0XHRcdFx0ICAgICBzdHJ1Y3QgdmNhcF9jb250cm9sICp2Y3RybCxcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9kZWJ1Z2ZzLmgtMzItXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9kZWJ1Z2ZzLmg6MzM6c3RhdGljIGlubGluZSBzdHJ1Y3QgZGVudHJ5ICp2Y2FwX2RlYnVnZnMoc3RydWN0IGRldmljZSAqZGV2LFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfZGVidWdmcy5oLTM0LVx0XHRcdFx0XHQgIHN0cnVjdCBkZW50cnkgKnBhcmVudCxcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9kZWJ1Z2ZzX2t1bml0LmMtOC0jaW5jbHVkZSBcJiMzNDt2Y2FwX2FwaV9jbGllbnQuaFwmIzM0O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfZGVidWdmc19rdW5pdC5jOjk6I2luY2x1ZGUgXCYjMzQ7dmNhcF9hcGlfZGVidWdmcy5oXCYjMzQ7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9kZWJ1Z2ZzX2t1bml0LmMtMTAtI2luY2x1ZGUgXCYjMzQ7dmNhcF9tb2RlbF9rdW5pdC5oXCYjMzQ7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfZGVidWdmc19rdW5pdC5jPTQ3NT1zdGF0aWMgdm9pZCB2Y2FwX2FwaV9zaG93X2FkbWluX3J1bGVfdGVzdChzdHJ1Y3Qga3VuaXQgKnRlc3QpXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfZGVidWdmc19rdW5pdC5jLTU0MS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2RlYnVnZnNfa3VuaXQuYzo1NDI6c3RhdGljIHN0cnVjdCBrdW5pdF9jYXNlIHZjYXBfYXBpX2RlYnVnZnNfdGVzdF9jYXNlc1tdID0ge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfZGVidWdmc19rdW5pdC5jLTU0My1cdEtVTklUX0NBU0UodmNhcF9hcGlfYWRkcl9rZXlzZXRfdGVzdCksXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfZGVidWdmc19rdW5pdC5jLTU0OS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2RlYnVnZnNfa3VuaXQuYzo1NTA6c3RhdGljIHN0cnVjdCBrdW5pdF9zdWl0ZSB2Y2FwX2FwaV9kZWJ1Z2ZzX3Rlc3Rfc3VpdGUgPSB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9kZWJ1Z2ZzX2t1bml0LmMtNTUxLVx0Lm5hbWUgPSBcJiMzNDtWQ0FQX0FQSV9EZWJ1Z0ZTX1Rlc3RzdWl0ZVwmIzM0OyxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2RlYnVnZnNfa3VuaXQuYzo1NTI6XHQudGVzdF9jYXNlcyA9IHZjYXBfYXBpX2RlYnVnZnNfdGVzdF9jYXNlcyxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2RlYnVnZnNfa3VuaXQuYy01NTMtfTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2RlYnVnZnNfa3VuaXQuYy01NTQtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9kZWJ1Z2ZzX2t1bml0LmM6NTU1Omt1bml0X3Rlc3Rfc3VpdGUodmNhcF9hcGlfZGVidWdmc190ZXN0X3N1aXRlKTtcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD41Ny8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjkgMTA6Mjk8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogNTIwMjQKCQkJCQkJCW91dHB1dDogMzUKCQkJCQkJCXRob3VnaHRzOiAyOQoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+T2theSwgaGVyZSYjMzk7cyBteSB0YWtlIG9uIHRob3NlIHRob3VnaHRzLCB0YWlsb3JlZCBmb3IgYW4gZXhwZXJ0IGF1ZGllbmNlLCBwcmVzZW50ZWQgaW4gdGhlIGZpcnN0IHBlcnNvbjoKCioqSW52ZXN0aWdhdGluZyBgdmNhcF9kZWJ1Z2ZzYCBDbGllbnQgRGVwZW5kZW5jaWVzKioKCkFscmlnaHQsIHNvIGB2Y2FwX2RlYnVnZnNgIGlzIGNsZWFybHkgZXhwb3J0ZWQgYW5kIGFjY2Vzc2libGUgdG8gY2xpZW50cy4gVGhhdCBpbW1lZGlhdGVseSByYWlzZXMgdGhlIHF1ZXN0aW9uOiB3aG8mIzM5O3MgKmFjdHVhbGx5KiBsZXZlcmFnaW5nIHRoaXMgZnVuY3Rpb25hbGl0eT8gSXQmIzM5O3MgZXNzZW50aWFsIHRvIHVuZGVyc3RhbmQgdGhlIHVzYWdlIHBhdHRlcm5zIGFuZCBwb3RlbnRpYWwgZGVwZW5kZW5jaWVzIHRvIGFzc2VzcyBpdHMgY3JpdGljYWxpdHksIHBvdGVudGlhbCBpbXBhY3Qgb2YgY2hhbmdlcywgYW5kIGFyZWFzIGZvciBvcHRpbWl6YXRpb24gb3Igc2VjdXJpdHkgaGFyZGVuaW5nLiBNeSBuZXh0IHN0ZXAgaXMgdW5kZW5pYWJseSB0byBpZGVudGlmeSBhbGwgdGhlIGNhbGxlcnMgb2YgYHZjYXBfZGVidWdmc2AuIEkgbmVlZCBhIHByZWNpc2UgY2FsbCBncmFwaCBvciwgYXQgdGhlIHZlcnkgbGVhc3QsIGEgY29tcHJlaGVuc2l2ZSBsaXN0IG9mIG1vZHVsZXMsIHByb2Nlc3Nlcywgb3IgZXZlbiBzcGVjaWZpYyBjb2RlIGxvY2F0aW9ucyB0aGF0IGFyZSBtYWtpbmcgY2FsbHMgdG8gdGhhdCBmdW5jdGlvbi4gRnJvbSB0aGVyZSwgSSBjYW4gYmVnaW4gdG8gYXNzZXNzIHJpc2ssIHVuZGVyc3RhbmQgdGhlIG92ZXJhbGwgc3lzdGVtIGRlcGVuZGVuY2llcywgYW5kIHN0YXJ0IGRldGVybWluaW5nIHRoZSBpbXBhY3QgdGhhdCBhbnkgY2hhbmdlcyB0byB0aGlzIGZ1bmN0aW9uIHdvdWxkIGhhdmUuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+NTgvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzI5IDEwOjI5PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O3ZjYXBfZGVidWdmcyYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC8mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL2xhbjk2NngvTWFrZWZpbGU9MTg9bGFuOTY2eC1zd2l0Y2gtJChDT05GSUdfTEFOOTY2WF9EQ0IpICYjNDM7PSBsYW45NjZ4X2RjYi5vXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvbGFuOTY2eC9NYWtlZmlsZToxOTpsYW45NjZ4LXN3aXRjaC0kKENPTkZJR19ERUJVR19GUykgJiM0Mzs9IGxhbjk2NnhfdmNhcF9kZWJ1Z2ZzLm9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC9sYW45NjZ4L01ha2VmaWxlLTIwLVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC9sYW45NjZ4L2xhbjk2NnhfdmNhcF9pbXBsLmM9NzA3PWludCBsYW45NjZ4X3ZjYXBfaW5pdChzdHJ1Y3QgbGFuOTY2eCAqbGFuOTY2eClcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvbGFuOTY2eC9sYW45NjZ4X3ZjYXBfaW1wbC5jLTczNi1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC9sYW45NjZ4L2xhbjk2NnhfdmNhcF9pbXBsLmM6NzM3Olx0ZGlyID0gdmNhcF9kZWJ1Z2ZzKGxhbjk2NngtXHUwMDNlZGV2LCBsYW45NjZ4LVx1MDAzZWRlYnVnZnNfcm9vdCwgY3RybCk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvbGFuOTY2eC9sYW45NjZ4X3ZjYXBfaW1wbC5jLTczOC1cdGZvciAoaW50IHAgPSAwOyBwIFx1MDAzYyBsYW45NjZ4LVx1MDAzZW51bV9waHlzX3BvcnRzOyAmIzQzOyYjNDM7cCkge1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC9zcGFyeDUvTWFrZWZpbGU9MTY9c3Bhcng1LXN3aXRjaC0kKENPTkZJR19TUEFSWDVfRENCKSAmIzQzOz0gc3Bhcng1X2RjYi5vXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvc3Bhcng1L01ha2VmaWxlOjE3OnNwYXJ4NS1zd2l0Y2gtJChDT05GSUdfREVCVUdfRlMpICYjNDM7PSBzcGFyeDVfdmNhcF9kZWJ1Z2ZzLm9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC9zcGFyeDUvTWFrZWZpbGUtMTgtXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3NwYXJ4NS9zcGFyeDVfdmNhcF9kZWJ1Z2ZzLmMtOS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC9zcGFyeDUvc3Bhcng1X3ZjYXBfZGVidWdmcy5jOjEwOiNpbmNsdWRlIFwmIzM0O3NwYXJ4NV92Y2FwX2RlYnVnZnMuaFwmIzM0O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3NwYXJ4NS9zcGFyeDVfdmNhcF9kZWJ1Z2ZzLmMtMTEtI2luY2x1ZGUgXCYjMzQ7c3Bhcng1X21haW5fcmVncy5oXCYjMzQ7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3NwYXJ4NS9zcGFyeDVfdmNhcF9pbXBsLmMtMTQtI2luY2x1ZGUgXCYjMzQ7c3Bhcng1X3ZjYXBfYWdfYXBpLmhcJiMzNDtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC9zcGFyeDUvc3Bhcng1X3ZjYXBfaW1wbC5jOjE1OiNpbmNsdWRlIFwmIzM0O3NwYXJ4NV92Y2FwX2RlYnVnZnMuaFwmIzM0O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3NwYXJ4NS9zcGFyeDVfdmNhcF9pbXBsLmMtMTYtXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3NwYXJ4NS9zcGFyeDVfdmNhcF9pbXBsLmM9MjAzMT1pbnQgc3Bhcng1X3ZjYXBfaW5pdChzdHJ1Y3Qgc3Bhcng1ICpzcGFyeDUpXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3NwYXJ4NS9zcGFyeDVfdmNhcF9pbXBsLmMtMjA3Ni1cdH1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC9zcGFyeDUvc3Bhcng1X3ZjYXBfaW1wbC5jOjIwNzc6XHRkaXIgPSB2Y2FwX2RlYnVnZnMoc3Bhcng1LVx1MDAzZWRldiwgc3Bhcng1LVx1MDAzZWRlYnVnZnNfcm9vdCwgY3RybCk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvc3Bhcng1L3NwYXJ4NV92Y2FwX2ltcGwuYy0yMDc4LVx0Zm9yIChpZHggPSAwOyBpZHggXHUwMDNjIGNvbnN0cy1cdTAwM2VuX3BvcnRzOyAmIzQzOyYjNDM7aWR4KVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2RlYnVnZnMuYz0xNj1zdHJ1Y3QgdmNhcF9wb3J0X2RlYnVnZnNfaW5mbyB7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfZGVidWdmcy5jLTIxLS8qIER1bXAgdGhlIGtleWZpZWxkcyB2YWx1ZSBhbmQgbWFzayB2YWx1ZXMgKi9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2RlYnVnZnMuYzoyMjpzdGF0aWMgdm9pZCB2Y2FwX2RlYnVnZnNfc2hvd19ydWxlX2tleWZpZWxkKHN0cnVjdCB2Y2FwX2NvbnRyb2wgKnZjdHJsLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfZGVidWdmcy5jLTIzLVx0XHRcdFx0XHQgICAgc3RydWN0IHZjYXBfb3V0cHV0X3ByaW50ICpvdXQsXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfZGVidWdmcy5jPTExNj1zdGF0aWMgdm9pZFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfZGVidWdmcy5jOjExNzp2Y2FwX2RlYnVnZnNfc2hvd19ydWxlX2FjdGlvbmZpZWxkKHN0cnVjdCB2Y2FwX2NvbnRyb2wgKnZjdHJsLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfZGVidWdmcy5jLTExOC1cdFx0XHRcdCAgIHN0cnVjdCB2Y2FwX291dHB1dF9wcmludCAqb3V0LFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2RlYnVnZnMuYy0xNTctXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9kZWJ1Z2ZzLmM6MTU4OnN0YXRpYyBpbnQgdmNhcF9kZWJ1Z2ZzX3Nob3dfa2V5c2V0cyhzdHJ1Y3QgdmNhcF9ydWxlX2ludGVybmFsICpyaSxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2RlYnVnZnMuYy0xNTktXHRcdFx0XHQgICAgIHN0cnVjdCB2Y2FwX291dHB1dF9wcmludCAqb3V0KVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2RlYnVnZnMuYy0xOTAtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9kZWJ1Z2ZzLmM6MTkxOnN0YXRpYyBpbnQgdmNhcF9kZWJ1Z2ZzX3Nob3dfcnVsZV9rZXlzZXQoc3RydWN0IHZjYXBfcnVsZV9pbnRlcm5hbCAqcmksXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9kZWJ1Z2ZzLmMtMTkyLVx0XHRcdFx0XHQgc3RydWN0IHZjYXBfb3V0cHV0X3ByaW50ICpvdXQpXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfZGVidWdmcy5jLTE5OC1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2RlYnVnZnMuYzoxOTk6XHR2Y2FwX2RlYnVnZnNfc2hvd19rZXlzZXRzKHJpLCBvdXQpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfZGVidWdmcy5jLTIwMC1cdG91dC1cdTAwM2VwcmYob3V0LVx1MDAzZWRzdCwgXCYjMzQ7ICBrZXlzZXRfc3c6ICVkXFxuXCYjMzQ7LCByaS1cdTAwM2VrZXlzZXRfc3cpO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2RlYnVnZnMuYy0yMDQtXHRcdGtleWZpZWxkID0gdmNhcF9rZXlmaWVsZHModmN0cmwsIGFkbWluLVx1MDAzZXZ0eXBlLCByaS1cdTAwM2VkYXRhLmtleXNldCk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9kZWJ1Z2ZzLmM6MjA1Olx0XHR2Y2FwX2RlYnVnZnNfc2hvd19ydWxlX2tleWZpZWxkKHZjdHJsLCBvdXQsIGNrZi1cdTAwM2VjdHJsLmtleSxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2RlYnVnZnMuYy0yMDYtXHRcdFx0XHRcdFx0a2V5ZmllbGQsIFx1MDAyNmNrZi1cdTAwM2VkYXRhKTtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9kZWJ1Z2ZzLmMtMjExLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfZGVidWdmcy5jOjIxMjpzdGF0aWMgaW50IHZjYXBfZGVidWdmc19zaG93X3J1bGVfYWN0aW9uc2V0KHN0cnVjdCB2Y2FwX3J1bGVfaW50ZXJuYWwgKnJpLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfZGVidWdmcy5jLTIxMy1cdFx0XHRcdFx0ICAgIHN0cnVjdCB2Y2FwX291dHB1dF9wcmludCAqb3V0KVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2RlYnVnZnMuYy0yMjctXHRcdFx0XHRcdFx0cmktXHUwMDNlZGF0YS5hY3Rpb25zZXQpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfZGVidWdmcy5jOjIyODpcdFx0dmNhcF9kZWJ1Z2ZzX3Nob3dfcnVsZV9hY3Rpb25maWVsZCh2Y3RybCwgb3V0LCBjYWYtXHUwMDNlY3RybC5hY3Rpb24sXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9kZWJ1Z2ZzLmMtMjI5LVx0XHRcdFx0XHRcdCAgIGFjdGlvbmZpZWxkLFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2RlYnVnZnMuYz0yMzY9c3RhdGljIHZvaWQgdmNhcF9zaG93X2FkbWluX3J1bGUoc3RydWN0IHZjYXBfY29udHJvbCAqdmN0cmwsXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfZGVidWdmcy5jLTI2MS1cdH1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2RlYnVnZnMuYzoyNjI6XHR2Y2FwX2RlYnVnZnNfc2hvd19ydWxlX2tleXNldChyaSwgb3V0KTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2RlYnVnZnMuYzoyNjM6XHR2Y2FwX2RlYnVnZnNfc2hvd19ydWxlX2FjdGlvbnNldChyaSwgb3V0KTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2RlYnVnZnMuYy0yNjQtfVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2RlYnVnZnMuYz00MDE9RVhQT1JUX1NZTUJPTF9HUEwodmNhcF9wb3J0X2RlYnVnZnMpO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2RlYnVnZnMuYy00MDMtLyogU2hvdyB0aGUgZnVsbCBWQ0FQIGluc3RhbmNlIGRhdGEgKHJ1bGVzIHdpdGggYWxsIGZpZWxkcykgKi9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2RlYnVnZnMuYzo0MDQ6c3RhdGljIGludCB2Y2FwX2RlYnVnZnNfc2hvdyhzdHJ1Y3Qgc2VxX2ZpbGUgKm0sIHZvaWQgKnVudXNlZClcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2RlYnVnZnMuYy00MDUte1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2RlYnVnZnMuYy00MTctfVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfZGVidWdmcy5jOjQxODpERUZJTkVfU0hPV19BVFRSSUJVVEUodmNhcF9kZWJ1Z2ZzKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2RlYnVnZnMuYy00MTktXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfZGVidWdmcy5jPTQzNT1ERUZJTkVfU0hPV19BVFRSSUJVVEUodmNhcF9yYXdfZGVidWdmcyk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9kZWJ1Z2ZzLmMtNDM2LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfZGVidWdmcy5jOjQzNzpzdHJ1Y3QgZGVudHJ5ICp2Y2FwX2RlYnVnZnMoc3RydWN0IGRldmljZSAqZGV2LCBzdHJ1Y3QgZGVudHJ5ICpwYXJlbnQsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9kZWJ1Z2ZzLmMtNDM4LVx0XHRcdCAgICBzdHJ1Y3QgdmNhcF9jb250cm9sICp2Y3RybClcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9kZWJ1Z2ZzLmMtNDU5LVx0XHRcdGFkbWluLVx1MDAzZXZpbnN0KTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2RlYnVnZnMuYzo0NjA6XHRcdGRlYnVnZnNfY3JlYXRlX2ZpbGUobmFtZSwgMDQ0NCwgZGlyLCBpbmZvLCBcdTAwMjZ2Y2FwX2RlYnVnZnNfZm9wcyk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9kZWJ1Z2ZzLmMtNDYxLVx0fVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2RlYnVnZnMuYy00NjMtfVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfZGVidWdmcy5jOjQ2NDpFWFBPUlRfU1lNQk9MX0dQTCh2Y2FwX2RlYnVnZnMpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfZGVidWdmcy5jLTQ2NS1cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9kZWJ1Z2ZzLmg9MTc9dm9pZCB2Y2FwX3BvcnRfZGVidWdmcyhzdHJ1Y3QgZGV2aWNlICpkZXYsIHN0cnVjdCBkZW50cnkgKnBhcmVudCxcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9kZWJ1Z2ZzLmgtMjEtLyogQ3JlYXRlIGEgZGVidWdGUyBlbnRyeSBmb3IgYSB2Y2FwIGluc3RhbmNlICovXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9kZWJ1Z2ZzLmg6MjI6c3RydWN0IGRlbnRyeSAqdmNhcF9kZWJ1Z2ZzKHN0cnVjdCBkZXZpY2UgKmRldiwgc3RydWN0IGRlbnRyeSAqcGFyZW50LFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfZGVidWdmcy5oLTIzLVx0XHRcdCAgICBzdHJ1Y3QgdmNhcF9jb250cm9sICp2Y3RybCk7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfZGVidWdmcy5oPTI3PXN0YXRpYyBpbmxpbmUgdm9pZCB2Y2FwX3BvcnRfZGVidWdmcyhzdHJ1Y3QgZGV2aWNlICpkZXYsIHN0cnVjdCBkZW50cnkgKnBhcmVudCxcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9kZWJ1Z2ZzLmgtMzItXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9kZWJ1Z2ZzLmg6MzM6c3RhdGljIGlubGluZSBzdHJ1Y3QgZGVudHJ5ICp2Y2FwX2RlYnVnZnMoc3RydWN0IGRldmljZSAqZGV2LFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfZGVidWdmcy5oLTM0LVx0XHRcdFx0XHQgIHN0cnVjdCBkZW50cnkgKnBhcmVudCxcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD41OS8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjkgMTA6Mjk8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogNTU0MTkKCQkJCQkJCW91dHB1dDogMTEzCgkJCQkJCQl0aG91Z2h0czogODAyCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKldvcnRoRnV6emluZz1mYWxzZTogVW5yZWFjaGFibGUgQ29kZSBpbiBWaXJ0dWFsaXplZCBFbnZpcm9ubWVudHMqKgoKT2theSwgc28gSSYjMzk7dmUgbG9va2VkIGF0IHRoaXMgcGF0Y2ggYW5kIGhlcmUmIzM5O3MgbXkgYnJlYWtkb3duLiBUaGUgb25seSBmdW5jdGlvbnMgdGhhdCBjYWxsIHRoZSBjb2RlIEkmIzM5O20gYW5hbHl6aW5nLCBgdmNhcF9kZWNvZGVfcnVsZWAgaW5kaXJlY3RseSB0aHJvdWdoIGB2Y2FwX2dldF9ydWxlYCwgYXJlIGBsYW45NjZ4X3ZjYXBfaW5pdGAgYW5kIGBzcGFyeDVfdmNhcF9pbml0YC4gQm90aCBvZiB0aGVzZSBpbml0aWFsaXphdGlvbiByb3V0aW5lcywgSSBrbm93LCBuZWVkIGFjdHVhbCBwaHlzaWNhbCBoYXJkd2FyZSB0byBwcm9iZSDigJMgc3BlY2lmaWNhbGx5LCBoYXJkd2FyZSBmcm9tIE1pY3JvY2hpcC4gVGhhdCBpbW1lZGlhdGVseSB0ZWxscyBtZSwgaW4gYSB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudCBsaWtlIFFFTVUsIHRoaXMgY29kZSBwYXRoIHdpbGwgKm5ldmVyKiBiZSBoaXQuIFRoZSBgdmNhcF9kZWJ1Z2ZzYCBlbnRyaWVzLCB3aGljaCBhcmUgYWxzbyBpbmRpcmVjdGx5IGludm9sdmVkIHRocm91Z2ggYHZjYXBfc2hvd19hZG1pbmAsIHdvbiYjMzk7dCBldmVuIGJlIGNyZWF0ZWQuCgpJIHF1aWNrbHkgY29uc2lkZXJlZCB0aGUgZXhpc3RlbmNlIG9mIGB2Y2FwX2FwaV9kZWJ1Z2ZzX2t1bml0LmNgIOKAkyBhIEtVbml0IHRlc3QuIE5vdywgaWYgS1VuaXQgdGVzdHMgYXJlIGJ1aWx0IGFzIG1vZHVsZXMsIEkgY2FuIGxvYWQgYW5kIHJ1biB0aGVtLiBCdXQsIHRoYXQmIzM5O3Mgbm90IHRoZSBwb2ludC4gVGhlIGNydXggaXMgd2hldGhlciBTeXprYWxsZXIgZnV6emVzIHRoZW0uIEFuZCBubywgaXQgZG9lc24mIzM5O3QuIFN5emthbGxlciBkb2VzbiYjMzk7dCBmdXp6IEtVbml0IHRlc3RzIGJlY2F1c2UgdGhleSYjMzk7cmUgc2VsZi1jb250YWluZWQgdW5pdCB0ZXN0cyB0aGF0IHJ1biBhdXRvbWF0aWNhbGx5LCBub3QgdGhyb3VnaCB1c2Vyc3BhY2UgaW50ZXJmYWNlcyB0aGF0IFN5emthbGxlciBjYW4gaW50ZXJhY3Qgd2l0aC4gU28gdGhlIEtVbml0IHRlc3RzIGFyZSBpcnJlbGV2YW50IGhlcmUuCgpUaGVuIEkgcmVmb2N1c2VkIG9uIHRoZSBwcm9tcHQmIzM5O3MgY3JpdGVyaWEuIEl0IHNheXMgdG8gcmV0dXJuIGBXb3J0aEZ1enppbmc9ZmFsc2VgIGlmIHRoZSBjaGFuZ2VzIGludm9sdmUgY29kZSBwYXRocyB0aGF0IGFyZSAqaW1wb3NzaWJsZSogdG8gcmVhY2ggaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzLCBldmVuIHdpdGggc29mdHdhcmUtZW11bGF0ZWQgaGFyZHdhcmUuIFRoaXMgY29kZSBpcyBwYXJ0IG9mIHRoZSBNaWNyb2NoaXAgVkNBUCBBUEksIHdoaWNoIGlzIGEgbGlicmFyeSB1c2VkIGJ5IE1pY3JvY2hpcCBzd2l0Y2ggZHJpdmVycyDigJMgc3BlY2lmaWNhbGx5LCBTcGFyeDUgYW5kIExhbjk2NnguIFRoZXNlIHN3aXRjaCBkcml2ZXJzIGFyZSBwbGF0Zm9ybSBkcml2ZXJzLCBzcGVjaWZpY2FsbHkgZm9yIE1pY3JvY2hpcCBTb0NzIG9yIFBDSWUgZGV2aWNlcywgcmVxdWlyaW5nIHBoeXNpY2FsIGhhcmR3YXJlLiBTbyB0aGVzZSBjb2RlIHBhdGhzICphcmUqIHVucmVhY2hhYmxlIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBiZWNhdXNlIHRoZSBjbGllbnQgZHJpdmVycyB3b24mIzM5O3QgcHJvYmUsIGFuZCB0aGUgVkNBUCBBUEkgd2lsbCBuZXZlciBiZSBpbml0aWFsaXplZC4gQWdhaW4sIHRoZSBLVW5pdCB0ZXN0cyBhcmUgbm90IHJlbGV2YW50IHRvIFN5emthbGxlciBmdXp6aW5nLgoKSSYjMzk7bSBjb25maWRlbnQgaW4gc2F5aW5nIHRoYXQgdGhlIGNoYW5nZXMgbW9kaWZ5IGNvZGUgdW5yZWFjaGFibGUgaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzLiBUbyBjb25maXJtLCBJIGRpZCBhIHF1aWNrIGdyZXAgZm9yIGB2Y2FwX2dldF9ydWxlYCBhbmQgYHZjYXBfZGVidWdmc2AuIFRoZSBvbmx5IHVzZXJzIGFyZSBgbGFuOTY2eGAgYW5kIGBzcGFyeDVgLCBib3RoIHJlcXVpcmluZyBoYXJkd2FyZS4KClRvIGJlIGFic29sdXRlbHkgc3VyZSwgSSBjaGVja2VkIHRoYXQgYGxhbjk2NnhgIGlzIGEgcGxhdGZvcm0gZHJpdmVyIGZvciBNaWNyb2NoaXAmIzM5O3MgTEFOOTY2eCBTb0MgYW5kIGBzcGFyeDVgIGlzIGZvciBNaWNyb2NoaXAmIzM5O3MgU3Bhcng1IFNvQy4gTm8gdXBzdHJlYW0gUUVNVSBlbXVsYXRpb25zIGV4aXN0IGZvciBlaXRoZXIuIFNvLCB0aGUgY29kZSBwYXRoIGlzIHVucmVhY2hhYmxlLiBJIGFtIGFic29sdXRlbHkgZ29pbmcgdG8gcmV0dXJuIGBXb3J0aEZ1enppbmc9ZmFsc2VgLgoKSSBjaGVja2VkIHRoZSBjYWxsZXJzIG9mIGB2Y2FwX2RlY29kZV9ydWxlYDogYHZjYXBfZ2V0X3J1bGVgIGFuZCBgdmNhcF9zaG93X2FkbWluYC4gQm90aCBhcmUgdXNlZCBieSBvbmx5IGBsYW45NjZ4YCBhbmQgYHNwYXJ4NWAuIFNvLCB0aGVyZSBhcmUgbm8gb3RoZXIgdXNlcnMgdG8gY29uc2lkZXIuCgpJJiMzOTttIGRlZmluaXRlbHkgcmV0dXJuaW5nIGBXb3J0aEZ1enppbmc9ZmFsc2VgLiBUaGUgcGF0Y2ggbW9kaWZpZXMgdW5yZWFjaGFibGUgY29kZS4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD42MC8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjkgMTA6Mjk8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5zZXQtcmVzdWx0czwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBtb2RpZmllcyBgdmNhcF9kZWNvZGVfcnVsZWAgaW4gdGhlIE1pY3JvY2hpcCBWQ0FQIEFQSSBsaWJyYXJ5LiBUaGlzIGxpYnJhcnkgaXMgZXhjbHVzaXZlbHkgdXNlZCBieSBoYXJkd2FyZS1zcGVjaWZpYyBzd2l0Y2ggZHJpdmVycyAoU3Bhcng1IGFuZCBMYW45NjZ4KSB3aGljaCByZXF1aXJlIHBoeXNpY2FsIGhhcmR3YXJlIChzcGVjaWZpYyBNaWNyb2NoaXAgU29DcykgdGhhdCBhcmUgbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIFFFTVUuIENvbnNlcXVlbnRseSwgdGhpcyBjb2RlIHBhdGggaXMgdW5yZWFjaGFibGUgaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGFuZCBjYW5ub3QgYmUgZnV6emVkLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IGZhbHNlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IG51bGwsCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogW10sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggbW9kaWZpZXMgYHZjYXBfZGVjb2RlX3J1bGVgIGluIHRoZSBNaWNyb2NoaXAgVkNBUCBBUEkgbGlicmFyeS4gVGhpcyBsaWJyYXJ5IGlzIGV4Y2x1c2l2ZWx5IHVzZWQgYnkgaGFyZHdhcmUtc3BlY2lmaWMgc3dpdGNoIGRyaXZlcnMgKFNwYXJ4NSBhbmQgTGFuOTY2eCkgd2hpY2ggcmVxdWlyZSBwaHlzaWNhbCBoYXJkd2FyZSAoc3BlY2lmaWMgTWljcm9jaGlwIFNvQ3MpIHRoYXQgYXJlIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCBRRU1VLiBDb25zZXF1ZW50bHksIHRoaXMgY29kZSBwYXRoIGlzIHVucmVhY2hhYmxlIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBhbmQgY2Fubm90IGJlIGZ1enplZC4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiBmYWxzZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPC90Ym9keT4KCTwvdGFibGU+CgoJPGRpdiBpZD0ibGxtX3N1bW1hcnlfdGFibGVfZGl2IiBzdHlsZT0ibWFyZ2luOiAyMHB4IDA7Ij4KCQk8dGFibGUgY2xhc3M9Imxpc3RfdGFibGUiPgoJCQk8Y2FwdGlvbj5MTE0gQ2FsbHMgU3VtbWFyeTo8L2NhcHRpb24+CgkJCTx0aGVhZD4KCQkJCTx0cj4KCQkJCQk8dGg+VG90YWwgQ2FsbHM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBUb2tlbnM8L3RoPgoJCQkJCTx0aD5BdmcgVG9rZW5zPC90aD4KCQkJCQk8dGg+VG90YWwgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCQk8dGg+QXZnIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQk8L3RyPgoJCQk8L3RoZWFkPgoJCQk8dGJvZHkgaWQ9ImxsbV9zdW1tYXJ5X3N0YXRzX2JvZHkiPjwvdGJvZHk+CgkJPC90YWJsZT4KCTwvZGl2PgoKCTxkaXYgaWQ9InRvb2xfc3VtbWFyeV90YWJsZV9kaXYiIHN0eWxlPSJtYXJnaW46IDIwcHggMDsiPgoJCTx0YWJsZSBjbGFzcz0ibGlzdF90YWJsZSI+CgkJCTxjYXB0aW9uPlRvb2wgQ2FsbHMgU3VtbWFyeTo8L2NhcHRpb24+CgkJCTx0aGVhZD4KCQkJCTx0cj4KCQkJCQk8dGg+VG90YWwgQ2FsbHM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJCTx0aD5BdmcgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCTwvdHI+CgkJCTwvdGhlYWQ+CgkJCTx0Ym9keSBpZD0idG9vbF9zdW1tYXJ5X3N0YXRzX2JvZHkiPjwvdGJvZHk+CgkJPC90YWJsZT4KCTwvZGl2PgoKCTxkaXYgaWQ9ImR1cmF0aW9uX2NoYXJ0X2RpdiIgc3R5bGU9IndpZHRoOiAxMDAlOyBtYXJnaW46IDIwcHggMDsgYm9yZGVyOiAxcHg7Ij48L2Rpdj4KCTxkaXYgaWQ9InRva2VuX2NoYXJ0X2RpdiIgc3R5bGU9IndpZHRoOiAxMDAlOyBtYXJnaW46IDIwcHggMDsgYm9yZGVyOiAxcHg7Ij48L2Rpdj4KCgk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJodHRwczovL3d3dy5nb29nbGUuY29tL2pzYXBpIj48L3NjcmlwdD4KCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KCQlnb29nbGUubG9hZCgidmlzdWFsaXphdGlvbiIsICIxIiwge3BhY2thZ2VzOlsiY29yZWNoYXJ0Il19KTsKCQlnb29nbGUuc2V0T25Mb2FkQ2FsbGJhY2soZHJhd0NoYXJ0cyk7CgoJCWZ1bmN0aW9uIGRyYXdDaGFydHMoKSB7CgkJCWNvbnN0IHJhd0RhdGEgPSBbeyJTdGFydGVkIjoiMjAyNi0wNy0yOVQxMDoyNjo0Ny4yNDA3ODQ0NzZaIiwiU2VxIjowLCJOZXN0aW5nIjowLCJUeXBlIjoiZmxvdyIsIk5hbWUiOiJwYXRjaC10cmlhZ2UiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoxODk4MjAyOTE1MjUsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogbnVsbCxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW10sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIG1vZGlmaWVzIGB2Y2FwX2RlY29kZV9ydWxlYCBpbiB0aGUgTWljcm9jaGlwIFZDQVAgQVBJIGxpYnJhcnkuIFRoaXMgbGlicmFyeSBpcyBleGNsdXNpdmVseSB1c2VkIGJ5IGhhcmR3YXJlLXNwZWNpZmljIHN3aXRjaCBkcml2ZXJzIChTcGFyeDUgYW5kIExhbjk2NngpIHdoaWNoIHJlcXVpcmUgcGh5c2ljYWwgaGFyZHdhcmUgKHNwZWNpZmljIE1pY3JvY2hpcCBTb0NzKSB0aGF0IGFyZSBub3QgZW11bGF0ZWQgaW4gc3RhbmRhcmQgUUVNVS4gQ29uc2VxdWVudGx5LCB0aGlzIGNvZGUgcGF0aCBpcyB1bnJlYWNoYWJsZSBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgYW5kIGNhbm5vdCBiZSBmdXp6ZWQuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IGZhbHNlXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0yOVQxMDoyNjo0Ny4yNDA3OTIxNTZaIiwiU2VxIjoxLCJOZXN0aW5nIjoxLCJUeXBlIjoiYWN0aW9uIiwiTmFtZSI6InJlYWQtcGF0Y2gtZGlmZiIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjU5OTEwNDgyNSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiUGF0Y2hEaWZmXCI6IFwiY29tbWl0IDRlODI1MmQ4ZjUzYWUxNGQxYmUxZGNkMWNiYWMyMjMzMmM3ZGI4Y2FcXG5BdXRob3I6IHN5ei1jbHVzdGVyIFxcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVxcdTAwM2VcXG5EYXRlOiAgIFdlZCBKdWwgMjkgMTA6MjY6NDYgMjAyNiArMDAwMFxcblxcbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcXG5cXG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGkuYyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpLmNcXG5pbmRleCBmZjg2Y2RlMTFhMzJjLi4zNzZiZTA1OWQ2NjJjIDEwMDY0NFxcbi0tLSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpLmNcXG4rKysgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaS5jXFxuQEAgLTI0MjcsMTggKzI0MjcsMjEgQEAgc3RydWN0IHZjYXBfcnVsZSAqdmNhcF9kZWNvZGVfcnVsZShzdHJ1Y3QgdmNhcF9ydWxlX2ludGVybmFsICplbGVtKVxcbiBcXG4gXFx0ZXJyID0gdmNhcF9yZWFkX3J1bGUocmkpO1xcbiBcXHRpZiAoZXJyKVxcbi1cXHRcXHRyZXR1cm4gRVJSX1BUUihlcnIpO1xcbitcXHRcXHRnb3RvIG91dF9lcnI7XFxuIFxcbiBcXHRlcnIgPSB2Y2FwX2RlY29kZV9rZXlzZXQocmkpO1xcbiBcXHRpZiAoZXJyKVxcbi1cXHRcXHRyZXR1cm4gRVJSX1BUUihlcnIpO1xcbitcXHRcXHRnb3RvIG91dF9lcnI7XFxuIFxcbiBcXHRlcnIgPSB2Y2FwX2RlY29kZV9hY3Rpb25zZXQocmkpO1xcbiBcXHRpZiAoZXJyKVxcbi1cXHRcXHRyZXR1cm4gRVJSX1BUUihlcnIpO1xcbitcXHRcXHRnb3RvIG91dF9lcnI7XFxuIFxcbiBvdXQ6XFxuIFxcdHJldHVybiBcXHUwMDI2cmktXFx1MDAzZWRhdGE7XFxuK291dF9lcnI6XFxuK1xcdHZjYXBfZnJlZV9ydWxlKFxcdTAwMjZyaS1cXHUwMDNlZGF0YSk7XFxuK1xcdHJldHVybiBFUlJfUFRSKGVycik7XFxuIH1cXG4gXFxuIHN0cnVjdCB2Y2FwX3J1bGUgKnZjYXBfZ2V0X3J1bGUoc3RydWN0IHZjYXBfY29udHJvbCAqdmN0cmwsIHUzMiBpZClcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMjlUMTA6MjY6NDcuODQ4Mjk5NDkxWiIsIlNlcSI6MiwiTmVzdGluZyI6MSwiVHlwZSI6ImFnZW50IiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiYmVzdC1leHBlbnNpdmUiLCJEdXJhdGlvbiI6MTg5MjEyNzY3MjU4LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IG51bGwsXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBtb2RpZmllcyBgdmNhcF9kZWNvZGVfcnVsZWAgaW4gdGhlIE1pY3JvY2hpcCBWQ0FQIEFQSSBsaWJyYXJ5LiBUaGlzIGxpYnJhcnkgaXMgZXhjbHVzaXZlbHkgdXNlZCBieSBoYXJkd2FyZS1zcGVjaWZpYyBzd2l0Y2ggZHJpdmVycyAoU3Bhcng1IGFuZCBMYW45NjZ4KSB3aGljaCByZXF1aXJlIHBoeXNpY2FsIGhhcmR3YXJlIChzcGVjaWZpYyBNaWNyb2NoaXAgU29DcykgdGhhdCBhcmUgbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIFFFTVUuIENvbnNlcXVlbnRseSwgdGhpcyBjb2RlIHBhdGggaXMgdW5yZWFjaGFibGUgaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGFuZCBjYW5ub3QgYmUgZnV6emVkLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiBmYWxzZVxufSIsIkluc3RydWN0aW9uIjoiWW91IGFyZSBhbiBleHBlcnQgTGludXgga2VybmVsIG1haW50YWluZXIuXG5Zb3VyIGpvYiBpcyB0byByZXZpZXcgYSBwcm92aWRlZCBwYXRjaCBzZXJpZXMgYW5kIGRldGVybWluZVxuaWYgaXQgbWFrZXMgZnVuY3Rpb25hbCBjaGFuZ2VzIHRvIHRoZSBrZXJuZWwgdGhhdCBzaG91bGQgYmUgZnV6emVkLlxuXG5JTVBPUlRBTlQ6IFRoZSBjaGFuZ2VzIGhhdmUgQUxSRUFEWSBiZWVuIGFwcGxpZWQgYW5kIGNvbW1pdHRlZCBhcyB0aGUgSEVBRCBjb21taXQgaW5cbnlvdXIgd29ya3NwYWNlLiBEbyBOT1QgcmVseSBvbiB5b3VyIGludGVybmFsIGtub3dsZWRnZSBvZiB0aGUga2VybmVsLiBZb3UgbXVzdCBhY3RpdmVseVxudXNlIHlvdXIgY29kZSBhY2Nlc3MgdG9vbHMgdG8gZXhhbWluZSB0aGUgYWN0dWFsIHNvdXJjZSBjb2RlIGFuZCBjb25maXJtIGFueSBhc3N1bXB0aW9ucy5cblxuUmV0dXJuIFdvcnRoRnV6emluZz1mYWxzZSBpZiB0aGUgcGF0Y2ggb25seSBjb250YWluczpcbi0gTW9kaWZpY2F0aW9ucyB0byBEb2N1bWVudGF0aW9uLywgS2NvbmZpZyBmaWxlcywgb3IgY29kZSBjb21tZW50cy5cbi0gUHVyZWx5IGRlY29yYXRpdmUgY2hhbmdlcywgc3VjaCBhcyBsb2dnaW5nIChlLmcuLCBwcl9lcnIsIHByaW50aykgb3IgdHJhY2Vwb2ludHMuXG4tIENoYW5nZXMgdG8gbnVtZXJpYyBjb25zdGFudHMgb3IgbWFjcm9zIHRoYXQgZG8gbm90IGZ1bmN0aW9uYWxseSBhbHRlciBleGVjdXRpb24gZmxvdy5cbi0gQ29kZSBwYXRocyB0aGF0IGFyZSBpbXBvc3NpYmxlIHRvIHJlYWNoIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIEdDRSBvciBRRU1VLFxuICBldmVuIHdoZW4gdXRpbGl6aW5nIHNvZnR3YXJlLWVtdWxhdGVkIGhhcmR3YXJlIChlLmcuLCB1c2IgZ2FkZ2V0LCBtYWM4MDIxMV9od3NpbSkuXG4tIENvZGUgaW4gdmVuZG9yLXNwZWNpZmljIFBDSWUgc3dpdGNoLCBTbWFydE5JQywgb3IgR1BVIGRyaXZlcnMgKGUuZy4sIG1seHN3LCBwZHNfY29yZSwgcWVkLFxuICBpb25pYywgYW1kZ3B1KSB0aGF0IHJlcXVpcmUgcGh5c2ljYWwgUENJZSBoYXJkd2FyZSBjYXJkcyBub3QgZW11bGF0ZWQgaW4gc3RhbmRhcmQgUUVNVS5cbi0gRHJpdmVyIC5yZW1vdmUsIC5zaHV0ZG93biwgb3IgcGNpX3VucmVnaXN0ZXJfZHJpdmVyIHRlYXJkb3duIGNhbGxiYWNrcyAoZS5nLiwgaWdiX3JlbW92ZSlcbiAgdGhhdCBhcmUgZXhlY3V0ZWQgb25seSBkdXJpbmcgUENJIGhvdC11bnBsdWcgb3Igc3lzZnMgZHJpdmVyIHVuYmluZCBvcGVyYXRpb25zLlxuXG5JZiBpdCBtb2RpZmllcyByZWFjaGFibGUgY29yZSBrZXJuZWwgbG9naWMsIGRyaXZlcnMsIG9yIGFyY2hpdGVjdHVyZXMsIHVzZSB5b3VyIGNvZGUgc2VhcmNoXG50b29scyB0byB2ZXJpZnkgdGhlIGNvZGUgY2FuIGJlIGV4ZWN1dGVkLCB0aGVuIHJldHVybiBXb3J0aEZ1enppbmc9dHJ1ZS5cblxuV2hlbiByZXR1cm5pbmcgV29ydGhGdXp6aW5nPXRydWUsIHlvdSBNVVNUIEFMU086XG4xLiBFeHRyYWN0IGFueSBzcGVjaWZpYyBrZXJuZWwgZnVuY3Rpb25zIHRoYXQgc2hvdWxkIGJlIGhlYXZpbHkgZnV6emVkIGludG8gRm9jdXNTeW1ib2xzLlxuICAgQXZvaWQgbGlzdGluZyBnZW5lcmljIGhvdC1wYXRoIGZ1bmN0aW9ucyB0byBwcmV2ZW50IHNrZXdlZCB0ZXN0IGRpc3RyaWJ1dGlvbnMuXG4gICBQcmVmZXIgbm9uLXN0YXRpYywgbm9uLWlubGluZWQgQVBJIGVudHJ5cG9pbnQgZnVuY3Rpb25zIG92ZXIgaW50ZXJuYWwgc3RhdGljIGhlbHBlciBmdW5jdGlvbnNcbiAgICh3aGljaCBhcmUgaW5saW5lZCBieSB0aGUgY29tcGlsZXIgYW5kIGRvIG5vdCBoYXZlIGRpc3RpbmN0IHN5bWJvbCBhZGRyZXNzZXMpLlxuMi4gSWRlbnRpZnkgYW55IHNwZWNpZmljIENPTkZJR18gb3B0aW9ucyByZXF1aXJlZCB0byBwcm9wZXJseSB0ZXN0IHRoaXMgbmV3L21vZGlmaWVkIGZlYXR1cmUuXG4gICBHbyBhbmQgbG9vayBpbnRvIHRoZSBLY29uZmlnIGZpbGVzIGFuZCBjaGVjayBmb3IgaWZkZWZzIGFyb3VuZCB0aGUgY29kZSwgZG8gbm90IG1ha2UgYXNzdW1wdGlvbnMuXG4gICBBbHNvIGNoZWNrIFwiZGVwZW5kcyBvblwiIGxpbmVzIGluIEtjb25maWcgdG8gaW5jbHVkZSBhbnkgbm9uLXN0YW5kYXJkIHBhcmVudCBzdWJzeXN0ZW0gY29uZmlnc1xuICAgbmVlZGVkIGZvciBLYnVpbGQgdG8gY29tcGlsZSB0aGUgY29kZSBzdGF0aWNhbGx5IGludG8gdm1saW51eC4gTGlzdCB0aGVtIGluIHRoZSBFbmFibGVDb25maWdzXG4gICBvdXRwdXQgYXJyYXksIGFuZCBETyBOT1QgYWRkIGEgJ0NPTkZJR18nIHByZWZpeCAoZS5nLiwgcmV0dXJuIFwiTkVUX0lQVjRcIiBpbnN0ZWFkIG9mIFwiQ09ORklHX05FVF9JUFY0XCIpLlxuUHJlZmVyIGNhbGxpbmcgc2V2ZXJhbCB0b29scyBhdCB0aGUgc2FtZSB0aW1lIHRvIHNhdmUgcm91bmQtdHJpcHMuXG5cblxuVXNlIHNldC1yZXN1bHRzIHRvb2wgdG8gcHJvdmlkZSByZXN1bHRzIG9mIHRoZSBhbmFseXNpcy5cbkl0IG11c3QgYmUgY2FsbGVkIGV4YWN0bHkgb25jZSBiZWZvcmUgdGhlIGZpbmFsIHJlcGx5LlxuSWdub3JlIHJlc3VsdHMgb2YgdGhpcyB0b29sLlxuIiwiUHJvbXB0IjoiRm9yIHlvdXIgY29udmVuaWVuY2UsIGhlcmUgaXMgdGhlIGRpZmYgb2YgdGhlIGNoYW5nZXM6XG5jb21taXQgNGU4MjUyZDhmNTNhZTE0ZDFiZTFkY2QxY2JhYzIyMzMyYzdkYjhjYVxuQXV0aG9yOiBzeXotY2x1c3RlciBcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVx1MDAzZVxuRGF0ZTogICBXZWQgSnVsIDI5IDEwOjI2OjQ2IDIwMjYgKzAwMDBcblxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xuXG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGkuYyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpLmNcbmluZGV4IGZmODZjZGUxMWEzMmMuLjM3NmJlMDU5ZDY2MmMgMTAwNjQ0XG4tLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaS5jXG4rKysgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaS5jXG5AQCAtMjQyNywxOCArMjQyNywyMSBAQCBzdHJ1Y3QgdmNhcF9ydWxlICp2Y2FwX2RlY29kZV9ydWxlKHN0cnVjdCB2Y2FwX3J1bGVfaW50ZXJuYWwgKmVsZW0pXG4gXG4gXHRlcnIgPSB2Y2FwX3JlYWRfcnVsZShyaSk7XG4gXHRpZiAoZXJyKVxuLVx0XHRyZXR1cm4gRVJSX1BUUihlcnIpO1xuK1x0XHRnb3RvIG91dF9lcnI7XG4gXG4gXHRlcnIgPSB2Y2FwX2RlY29kZV9rZXlzZXQocmkpO1xuIFx0aWYgKGVycilcbi1cdFx0cmV0dXJuIEVSUl9QVFIoZXJyKTtcbitcdFx0Z290byBvdXRfZXJyO1xuIFxuIFx0ZXJyID0gdmNhcF9kZWNvZGVfYWN0aW9uc2V0KHJpKTtcbiBcdGlmIChlcnIpXG4tXHRcdHJldHVybiBFUlJfUFRSKGVycik7XG4rXHRcdGdvdG8gb3V0X2VycjtcbiBcbiBvdXQ6XG4gXHRyZXR1cm4gXHUwMDI2cmktXHUwMDNlZGF0YTtcbitvdXRfZXJyOlxuK1x0dmNhcF9mcmVlX3J1bGUoXHUwMDI2cmktXHUwMDNlZGF0YSk7XG4rXHRyZXR1cm4gRVJSX1BUUihlcnIpO1xuIH1cbiBcbiBzdHJ1Y3QgdmNhcF9ydWxlICp2Y2FwX2dldF9ydWxlKHN0cnVjdCB2Y2FwX2NvbnRyb2wgKnZjdHJsLCB1MzIgaWQpXG4iLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0yOVQxMDoyNjo0Ny44NDgzMTE1MDFaIiwiU2VxIjozLCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo1NTAxNDA2Nzg5LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkFuYWx5emluZyBhIFBhdGNoIHRvIGEgTWljcm9jaGlwIFZDQVAgRHJpdmVyKipcblxuT2theSwgc28gSSdtIGxvb2tpbmcgYXQgdGhpcyBwYXRjaCB0aGF0IHR3ZWFrcyBgZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGkuY2AuIEl0IGxvb2tzIGxpa2UgdGhleSd2ZSB1cGRhdGVkIGB2Y2FwX2RlY29kZV9ydWxlYCB0byBlbnN1cmUgYHZjYXBfZnJlZV9ydWxlKFx1MDAyNnJpLVx1MDAzZWRhdGEpYCBnZXRzIGNhbGxlZCBvbiBhbiBlcnJvciBwYXRoLCByYXRoZXIgdGhhbiBqdXN0IGJhaWxpbmcgb3V0IHdpdGggYEVSUl9QVFIoZXJyKWAuIEEgZ29vZCwgZGVmZW5zaXZlIHByb2dyYW1taW5nIGNoYW5nZSwgbm8gcXVlc3Rpb24uXG5cbk15IGltbWVkaWF0ZSB0aG91Z2h0IGlzLCBcIklzIHRoaXMgZXZlbiByZWxldmFudCBpbiBhIHZpcnR1YWxpemVkIGNvbnRleHQ/XCIgTXkgZXhwZXJ0aXNlIHRlbGxzIG1lIHRoYXQgdGhpcyBpcyBwcm9iYWJseSBhIGhhcmR3YXJlLXNwZWNpZmljIGRyaXZlciwgdGhlIE1pY3JvY2hpcCBWQ0FQIEFQSS4gVGhlcmVmb3JlLCBJIG5lZWQgdG8ga25vdzogRG9lcyB0aGlzIG5lZWQgYSBwaHlzaWNhbCBNaWNyb2NoaXAgVkNBUCBoYXJkd2FyZSwgb3IgY291bGQgaXQgYmUgdXNlZnVsIGluIHNvbWUgc29ydCBvZiBlbXVsYXRlZCBlbnZpcm9ubWVudD8gTXkgaHVuY2ggaXMgaGFyZHdhcmUsIGJ1dCBJIG5lZWQgdG8gY29uZmlybS5cblxuU28sIEkgbmVlZCB0byBmaW5kIHRoZSBLY29uZmlnIGZpbGUgZm9yIHRoaXMgdG8gc2VlIGlmIHRoZXJlIGFyZSBhbnkgaGludHMuIEknbGwgY2hlY2sgYGRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL0tjb25maWdgLCB0aGVuIG1heWJlIGBkcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvS2NvbmZpZ2AsIGFuZCwgaWYgdGhvc2UgZmFpbCwgSSdsbCBnbyBhbGwgdGhlIHdheSBkb3duIHRvIGEgbW9yZSBzcGVjaWZpYyBhcmNoaXRlY3R1cmUsIHN1Y2ggYXMgYGRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC9zcGFyeDUvS2NvbmZpZ2AuIFRoZXNlIGNvbmZpZ3VyYXRpb24gZmlsZXMgd2lsbCBzaGVkIGxpZ2h0IG9uIHRoZSBkZXBlbmRlbmNpZXMgYW5kLCB1bHRpbWF0ZWx5LCB0ZWxsIG1lIGlmIHRoaXMgcGF0Y2ggaXMgZXZlbiBnb2luZyB0byBiZSB0cmlnZ2VyZWQgaW4gYSB2aXJ0dWFsaXplZCBvciBzaW11bGF0ZWQgc2V0dXAuIFRoYXQncyB0aGUgcmVhbCBxdWVzdGlvbiBoZXJlLlxuXG5cbiIsIklucHV0VG9rZW5zIjoyMjA1LCJPdXRwdXRUb2tlbnMiOjM2LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MTgyLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMjlUMTA6MjY6NTMuMzQ5NzIzNloiLCJTZXEiOjQsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoyMTkwNTcwMDUsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwidmNhcF9kZWNvZGVfcnVsZVwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJkcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpLmM9MjQxMz1FWFBPUlRfU1lNQk9MX0dQTCh2Y2FwX2ZyZWVfcnVsZSk7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaS5jLTI0MTUtLyogRGVjb2RlIGEgcnVsZSBmcm9tIHRoZSBWQ0FQIGNhY2hlIGFuZCByZXR1cm4gYSBjb3B5ICovXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGkuYzoyNDE2OnN0cnVjdCB2Y2FwX3J1bGUgKnZjYXBfZGVjb2RlX3J1bGUoc3RydWN0IHZjYXBfcnVsZV9pbnRlcm5hbCAqZWxlbSlcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaS5jLTI0MTcte1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGkuYz0yNDQ3PXN0cnVjdCB2Y2FwX3J1bGUgKnZjYXBfZ2V0X3J1bGUoc3RydWN0IHZjYXBfY29udHJvbCAqdmN0cmwsIHUzMiBpZClcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpLmMtMjQ2MC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaS5jOjI0NjE6XFx0cnVsZSA9IHZjYXBfZGVjb2RlX3J1bGUoZWxlbSk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGkuYy0yNDYyLVxcdHZjYXBfdW5sb2NrKGVsZW0tXFx1MDAzZWFkbWluKTtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2RlYnVnZnMuYz0yOTI9c3RhdGljIGludCB2Y2FwX3Nob3dfYWRtaW4oc3RydWN0IHZjYXBfY29udHJvbCAqdmN0cmwsXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9kZWJ1Z2ZzLmMtMzAxLVxcdGxpc3RfZm9yX2VhY2hfZW50cnkoZWxlbSwgXFx1MDAyNmFkbWluLVxcdTAwM2VydWxlcywgbGlzdCkge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2RlYnVnZnMuYzozMDI6XFx0XFx0dnJ1bGUgPSB2Y2FwX2RlY29kZV9ydWxlKGVsZW0pO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2RlYnVnZnMuYy0zMDMtXFx0XFx0aWYgKElTX0VSUih2cnVsZSkpIHtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX3ByaXZhdGUuaD0xMjI9aW50IHZjYXBfcnVsZV9nZXRfa2V5c2V0cyhzdHJ1Y3QgdmNhcF9ydWxlX2ludGVybmFsICpyaSxcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX3ByaXZhdGUuaC0xMjQtLyogRGVjb2RlIGEgcnVsZSBmcm9tIHRoZSBWQ0FQIGNhY2hlIGFuZCByZXR1cm4gYSBjb3B5ICovXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfcHJpdmF0ZS5oOjEyNTpzdHJ1Y3QgdmNhcF9ydWxlICp2Y2FwX2RlY29kZV9ydWxlKHN0cnVjdCB2Y2FwX3J1bGVfaW50ZXJuYWwgKmVsZW0pO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX3ByaXZhdGUuaC0xMjYtXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTI5VDEwOjI2OjUzLjU2ODc4NjgyNVoiLCJTZXEiOjUsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjMzNzUxMDE0NzAsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6Ik9rYXksIGhlcmUncyBteSB0YWtlIG9uIHRob3NlIHRob3VnaHRzLCBmcmFtZWQgZnJvbSBteSBleHBlcnQgcGVyc3BlY3RpdmU6XG5cbioqSW52ZXN0aWdhdGluZyB0aGUgTWljcm9jaGlwIFZDQVAgQVBJIGFuZCBpdHMgSGFyZHdhcmUgRGVwZW5kZW5jaWVzKipcblxuQWxyaWdodCwgc28gdGhlIE1pY3JvY2hpcCBWQ0FQIEFQSS4uLiB0aGF0IGltbWVkaWF0ZWx5IGZsYWdzIFwiaGFyZHdhcmUgc3dpdGNoIGRyaXZlcnNcIiBpbiBteSBtaW5kLiBTcGVjaWZpY2FsbHksIEknbSB0aGlua2luZyBhYm91dCB0aGUgU3Bhcng1IGFuZCBMYW45NjZ4IGZhbWlsaWVzLiBUaG9zZSBhcmUgc29saWQsIGVzdGFibGlzaGVkIGhhcmR3YXJlIHN3aXRjaGVzLCBubyBxdWVzdGlvbiBhYm91dCBpdC4gTXkgZmlyc3QgaW5zdGluY3QgaXMgYWx3YXlzIHRvIHVuZGVyc3RhbmQgdGhlIGxldmVsIG9mIGFic3RyYWN0aW9uLCBzbyBub3cgSSdtIGltbWVkaWF0ZWx5IHdvbmRlcmluZzogZG9lcyB0aGlzIEFQSSBoYXZlIGFueSB1c2VmdWwgc29mdHdhcmUgZW11bGF0aW9uIGF2YWlsYWJsZT8gT3IgaXMgaXQgKmNvbXBsZXRlbHkqIHRpZWQgdG8gdGhlIHBoeXNpY2FsIGhhcmR3YXJlLCBtZWFuaW5nIEknbGwgbmVlZCB0byBnZXQgbXkgaGFuZHMgZGlydHkgd2l0aCBhIHJlYWwgZGV2aWNlIHRvIGRvIGFueSBzZXJpb3VzIHRlc3Rpbmcgb3IgZGV2ZWxvcG1lbnQ/IFRoYXQncyB0aGUga2V5IHF1ZXN0aW9uIG5vdy4gSSBuZWVkIHRvIGZpZ3VyZSBvdXQgdGhlIGV4dGVudCBvZiB0aGUgaGFyZHdhcmUgZGVwZW5kZW5jeSB0byB1bmRlcnN0YW5kIHRoZSBwcmFjdGljYWxpdHkgb2YgYW55IHNvZnR3YXJlLW9ubHkgaW52ZXN0aWdhdGlvbiBvciB0ZXN0aW5nLlxuXG5cbiIsIklucHV0VG9rZW5zIjozNDIyLCJPdXRwdXRUb2tlbnMiOjM3LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6NTAsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDctMjlUMTA6MjY6NTYuOTQzODkyMTM1WiIsIlNlcSI6NiwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjEwNTgzMzI0NywiRXJyb3IiOiJubyBtYXRjaGVzIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiY29uZmlnIE1JQ1JPQ0hJUF9WQ0FQXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC9cIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiZXJyb3JcIjogXCJubyBtYXRjaGVzXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTI5VDEwOjI2OjU3LjA0OTczNTY4MloiLCJTZXEiOjcsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjYwOTE2Njc5NjUsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6Ik9rYXksIGhlcmUncyBteSBpbnRlcnByZXRhdGlvbiBvZiB0aG9zZSB0aG91Z2h0cywgY3JhZnRlZCB3aXRoIHRoZSB1bmRlcnN0YW5kaW5nIHRoYXQgSSdtIHNwZWFraW5nIHRvIGEgZmVsbG93IGV4cGVydDpcblxuKipJbnZlc3RpZ2F0aW5nIHRoZSBLY29uZmlnIGZvciBcInZjYXBcIioqXG5cblJpZ2h0LCBzbywgSSBuZWVkIHRvIHVuZGVyc3RhbmQgdGhlIGNvbmZpZ3VyYXRpb24gcmVsYXRlZCB0byBcInZjYXBcIi4gTXkgaW5pdGlhbCB0aG91Z2h0IGlzIHRvIGdvIHN0cmFpZ2h0IHRvIHRoZSBLY29uZmlnIGZpbGVzLiBUaGF0J3MgdGhlIG1vc3QgbGlrZWx5IHBsYWNlIHRvIGZpbmQgdGhlIHJlbGV2YW50IGRlZmluaXRpb25zIGFuZCBkZXBlbmRlbmNpZXMuIFdlJ3JlIGxvb2tpbmcgZm9yIGhvdyBcInZjYXBcIiBpcyBjb25maWd1cmVkLCB3aGF0IG9wdGlvbnMgYXJlIGF2YWlsYWJsZSwgYW5kIHdoYXQgb3RoZXIgY29tcG9uZW50cyBpdCBtaWdodCBkZXBlbmQgb24gb3IgaW50ZXJhY3Qgd2l0aC4gSSdsbCBuZWVkIHRvIGRyaWxsIGRvd24gaW50byB0aGUgaGllcmFyY2h5LCBsaWtlbHkgc3RhcnRpbmcgd2l0aCB0aGUgdG9wLWxldmVsIEtjb25maWcgYW5kIHRoZW4gbmF2aWdhdGluZyBkb3duIHRvIG1vcmUgc3BlY2lmaWMgbW9kdWxlcyBvciBkcml2ZXJzIGlmIG5lY2Vzc2FyeS4gSXQncyBhIHF1aWNrIGZpcnN0IHN0ZXAgdG8gdmVyaWZ5IHRoZSBleGlzdGVuY2Ugb2YgdGhlIHBhcmFtZXRlciBhbmQgdW5kZXJzdGFuZCB0aGUgcG9zc2libGUgb3B0aW9ucyBhdmFpbGFibGUuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjM3MDcsIk91dHB1dFRva2VucyI6MzYsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoxMCwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0yOVQxMDoyNzowMy4xNDE0MDc0MTdaIiwiU2VxIjo4LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MTM1NzYwMzI3LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcInZjYXBfYXBpLm9cIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJkcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC9NYWtlZmlsZT04PXZjYXAtJChDT05GSUdfREVCVUdfRlMpICs9IHZjYXBfYXBpX2RlYnVnZnMub1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL01ha2VmaWxlLTktXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvTWFrZWZpbGU6MTA6dmNhcC15ICs9IHZjYXBfYXBpLm8gdmNhcF90Yy5vXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTI5VDEwOjI3OjAzLjI3NzE3NDAzNFoiLCJTZXEiOjksIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjM5MjI1OTIwNDcsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6Ik9rYXksIGxldCdzIGRpdmUgaW50byB0aGlzLiBIZXJlJ3MgbXkgdW5kZXJzdGFuZGluZywgcHJlc2VudGVkIGFzIG15IG93biBtZW50YWwgcHJvY2Vzc2luZzpcblxuKipFeGFtaW5pbmcgdGhlIFZDQVAgTWFrZWZpbGUqKlxuXG5BbHJpZ2h0LCB0aW1lIHRvIGdldCBteSBoYW5kcyBkaXJ0eS4gSSBuZWVkIHRvIHRha2UgYSBsb29rIGF0IHRoZSBgZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvTWFrZWZpbGVgLiBHaXZlbiBteSBiYWNrZ3JvdW5kLCBJIHVuZGVyc3RhbmQgdGhhdCB0aGlzIGlzIHdoZXJlIHRoZSBidWlsZCBpbnN0cnVjdGlvbnMgYW5kIGRlcGVuZGVuY2llcyBmb3IgdGhlIFZDQVAgRXRoZXJuZXQgZHJpdmVyIHJlc2lkZS4gVGhpcyBNYWtlZmlsZSBpcyBjcnVjaWFsIGZvciBlbnN1cmluZyB0aGF0IHRoZSBrZXJuZWwgY29ycmVjdGx5IGNvbXBpbGVzIGFuZCBsaW5rcyB0aGUgVkNBUCBkcml2ZXIgbW9kdWxlLiBJJ2xsIG5lZWQgdG8gZXhhbWluZSBpdHMgc3RydWN0dXJlIHRvIHVuZGVyc3RhbmQgaG93IHRoZSBkcml2ZXIgaW50ZWdyYXRlcywgd2hpY2ggc291cmNlIGZpbGVzIGl0IGluY2x1ZGVzLCBhbmQgYW55IHNwZWNpZmljIGNvbXBpbGVyIGZsYWdzIG9yIGRlcGVuZGVuY2llcyBpdCByZXF1aXJlcy4gSSB3aWxsIGxvb2sgZm9yIGhvdyB0aGUgZHJpdmVyIGlzIGJlaW5nIGJ1aWx0LCBsaW5rZWQgYW5kIGluc3RhbGxlZC4gSSBhbHNvIG5lZWQgdG8gc2VlIGlmIGl0IG1ha2VzIHVzZSBvZiBhbnkgY29tbW9uIGRyaXZlciBpbmZyYXN0cnVjdHVyZSBvciB1c2VzIGFueSBjdXN0b20gYnVpbGQgcnVsZXMgZm9yIHRoZSBzcGVjaWZpYyBNaWNyb2NoaXAgVkNBUCBoYXJkd2FyZS4gVGhpcyB3aWxsIGdpdmUgbWUgYSBjbGVhciBwaWN0dXJlIG9mIGhvdyB0aGlzIGRyaXZlciBmaXRzIGludG8gdGhlIG92ZXJhbGwga2VybmVsIGJ1aWxkIHByb2Nlc3MgYW5kIGl0cyByZWxhdGlvbnNoaXAgd2l0aCB0aGUgcmVzdCBvZiB0aGUgbmV0d29yayBzdGFjay5cblxuXG4iLCJJbnB1dFRva2VucyI6NDAyNSwiT3V0cHV0VG9rZW5zIjo0MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjIwLCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTI5VDEwOjI3OjA3LjE5OTc2OTYyMVoiLCJTZXEiOjEwLCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJyZWFkLWZpbGUiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo4MDI4MCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkZpbGVcIjogXCJkcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC9NYWtlZmlsZVwiLFxuICBcIkZpcnN0TGluZVwiOiAxLFxuICBcIkxpbmVDb3VudFwiOiAyMFxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiQ29udGVudHNcIjogXCIgICAxOlxcdCMgU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjAtb25seVxcbiAgIDI6XFx0I1xcbiAgIDM6XFx0IyBNYWtlZmlsZSBmb3IgdGhlIE1pY3JvY2hpcCBWQ0FQIEFQSVxcbiAgIDQ6XFx0I1xcbiAgIDU6XFx0XFxuICAgNjpcXHRvYmotJChDT05GSUdfVkNBUCkgKz0gdmNhcC5vXFxuICAgNzpcXHRvYmotJChDT05GSUdfVkNBUF9LVU5JVF9URVNUKSArPSAgdmNhcF9tb2RlbF9rdW5pdC5vXFxuICAgODpcXHR2Y2FwLSQoQ09ORklHX0RFQlVHX0ZTKSArPSB2Y2FwX2FwaV9kZWJ1Z2ZzLm9cXG4gICA5OlxcdFxcbiAgMTA6XFx0dmNhcC15ICs9IHZjYXBfYXBpLm8gdmNhcF90Yy5vXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTI5VDEwOjI3OjA3LjE5OTg1MjgyMVoiLCJTZXEiOjExLCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjozMTA3NjMzMjI2LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJPa2F5LCBoZXJlJ3MgbXkgaW50ZXJwcmV0YXRpb24gb2YgdGhhdCB0aG91Z2h0IHByb2Nlc3MsIGFzc3VtaW5nIEknbSBkZWVwIGluIG15IGRvbWFpbjpcblxuKipJbnZlc3RpZ2F0aW5nIENvbmZpZ3VyYXRpb24gVmFyaWFibGVzKipcblxuQWxyaWdodCwgdGltZSB0byB0cm91Ymxlc2hvb3QuIFRoZSBpc3N1ZSdzIHByb2JhYmx5IHJlbGF0ZWQgdG8gZW52aXJvbm1lbnRhbCBjb25maWd1cmF0aW9uLCBzbyBsZXQncyB6ZXJvIGluIG9uIGBDT05GSUdfVkNBUGAuIEknbSBnb2luZyB0byBxdWlja2x5IGNoZWNrIHRoZSBzdGF0dXMgb2YgdGhpcyBwYXJ0aWN1bGFyIHZhcmlhYmxlLiBJdCdzIGEga2V5IHBpZWNlIG9mIG91ciBzZXR1cCwgYW5kIGl0J3MgbGlrZWx5IGNydWNpYWwgZm9yIGhvdyB3ZSBpbnRlcnByZXQgdGhlIGVudmlyb25tZW50LiBXaXRoIGBDT05GSUdfVkNBUGAsIEkgZXhwZWN0IGl0IHByb3ZpZGVzIGVzc2VudGlhbCBkZXRhaWxzIGFib3V0IHRoZSBkZXBsb3ltZW50IGVudmlyb25tZW50LiBJIHdhbnQgdG8gZmlndXJlIG91dCB3aGVyZSBhbmQgaG93IGl0IGlzIHNldC4gSWYgaXQgaXMgbm90IHNldCBhcyBJIGV4cGVjdCBpdCB3aWxsIGd1aWRlIG1lIHRvIHRoZSBjb3JyZWN0IHNvdXJjZSBvZiB0aGUgcHJvYmxlbS5cblxuXG4iLCJJbnB1dFRva2VucyI6NDQ2MCwiT3V0cHV0VG9rZW5zIjozMywiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjEwLCJUb29sQ2FsbHMiOlsicmVhZC1maWxlIl19LHsiU3RhcnRlZCI6IjIwMjYtMDctMjlUMTA6Mjc6MTAuMzA3NDg5ODY3WiIsIlNlcSI6MTIsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoyMzI4OTQyNjUsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiY29uZmlnIFZDQVBcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJkcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC9LY29uZmlnPTY9aWYgTkVUX1ZFTkRPUl9NSUNST0NISVBcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC9LY29uZmlnLTctXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvS2NvbmZpZzo4OmNvbmZpZyBWQ0FQXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvS2NvbmZpZy05LVxcdGJvb2wgXFxcIlZDQVAgKFZlcnNhdGlsZSBDb250ZW50LUF3YXJlIFByb2Nlc3NvcikgbGlicmFyeVxcXCJcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL0tjb25maWctMzgtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvS2NvbmZpZzozOTpjb25maWcgVkNBUF9LVU5JVF9URVNUXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvS2NvbmZpZy00MC1cXHRib29sIFxcXCJLVW5pdCB0ZXN0IGZvciBWQ0FQIGxpYnJhcnlcXFwiIGlmICFLVU5JVF9BTExfVEVTVFNcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMjlUMTA6Mjc6MTAuNTQwMzkyODkyWiIsIlNlcSI6MTMsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjQ2NjgwNjk4MTgsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IkhlcmUncyBhIGZpcnN0LXBlcnNvbiBzdW1tYXJ5IG9mIHRoZSB0aG91Z2h0IHByb2Nlc3MsIHRhaWxvcmVkIGZvciBhbiBleHBlcnQgYXVkaWVuY2U6XG5cbioqRGl2aW5nIGludG8gdGhlIHZjYXAgS2NvbmZpZyoqXG5cbkFscmlnaHQsIGxldCdzIGNyYWNrIG9wZW4gYGRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL0tjb25maWdgLiBJIGFscmVhZHkgaGF2ZSBhIHByZXR0eSBzb2xpZCB1bmRlcnN0YW5kaW5nIG9mIE1pY3JvY2hpcCdzIEV0aGVybmV0IG9mZmVyaW5ncywgZXNwZWNpYWxseSB0aGVpciBtb3JlIGNvbXBsZXggc29sdXRpb25zLiBJJ20gaG9waW5nIHRvIGdldCBhIGZlZWwgZm9yIGhvdyB0aGV5J3ZlIHN0cnVjdHVyZWQgdGhlIGNvbmZpZ3VyYXRpb24gb3B0aW9ucyBmb3IgdGhpcyBzcGVjaWZpYyBkZXZpY2UsIHRoZSBWQ0FQLiBNeSBtYWluIGludGVyZXN0IGlzIGluIHVuZGVyc3RhbmRpbmcgdGhlIGJ1aWxkIHN5c3RlbSBpbnRlcmFjdGlvbnM6IHdoYXQgZmVhdHVyZXMgYXJlIGNvbnNpZGVyZWQgb3B0aW9uYWwsIGhvdyB0aGV5J3ZlIG9yZ2FuaXplZCBkZXBlbmRlbmNpZXMgYmV0d2VlbiB0aGVtLCBhbmQgd2hldGhlciB0aGVyZSBhcmUgYW55IGNsZXZlciB0cmlja3Mgb3IgZ290Y2hhcyBJIGNhbiBnbGVhbiBmb3IgZnV0dXJlIHJlZmVyZW5jZS4gU3BlY2lmaWNhbGx5LCBJJ20gbG9va2luZyBmb3I6XG5cbiogICAqKkNvcmUgRmVhdHVyZSBFbmFibGVtZW50OioqIFdoYXQgaXMgdGhlIG1pbmltYWwgY29uZmlndXJhdGlvbiBuZWVkZWQgdG8gZ2V0IHRoaXMgZHJpdmVyIHVwIGFuZCBydW5uaW5nPyBJcyBpdCBzdHJhaWdodGZvcndhcmQsIG9yIGFyZSB0aGVyZSBoaWRkZW4gZGVwZW5kZW5jaWVzIG9uIG90aGVyIGRyaXZlcnMgb3Igc3Vic3lzdGVtcyBJJ2xsIG5lZWQgdG8gYmUgYXdhcmUgb2Y/XG4qICAgKipPcHRpb25hbCBGZWF0dXJlcyBhbmQgRGVwZW5kZW5jaWVzOioqIEknbSBrZWVuIHRvIHNlZSBob3cgdGhleSd2ZSBoYW5kbGVkIHRoaW5ncyBsaWtlIFZMQU4gc3VwcG9ydCwganVtYm8gZnJhbWVzLCBjaGVja3N1bSBvZmZsb2FkLCBhbmQgYW55IG90aGVyIHBlcmZvcm1hbmNlLWVuaGFuY2luZyBvciBzcGVjaWFsaXplZCBmZWF0dXJlcy4gQXJlIHRoZSBkZXBlbmRlbmNpZXMgY2xlYXJseSBkZWZpbmVkPyBBcmUgdGhlcmUgcmVhc29uYWJsZSBkZWZhdWx0cywgb3IgZG8gSSBuZWVkIHRvIGJlIGNhcmVmdWwgd2l0aCBteSBjb25maWd1cmF0aW9uIHRvIGF2b2lkIGJ1aWxkIGVycm9ycz9cbiogICAqKlZlbmRvci1TcGVjaWZpYyBDb25zaWRlcmF0aW9uczoqKiBJJ20gYWxzbyBjdXJpb3VzIHRvIHNlZSBpZiB0aGVyZSBhcmUgYW55IE1pY3JvY2hpcC1zcGVjaWZpYyBxdWlya3Mgb3Igd29ya2Fyb3VuZHMgaW4gdGhlIGNvbmZpZ3VyYXRpb24uIFNvbWV0aW1lcyB2ZW5kb3JzIGhhdmUgdG8gZG8gb2RkIHRoaW5ncyB0byBtYWtlIGhhcmR3YXJlIGJlaGF2ZSwgc28gSSdtIGhvcGluZyB0byBzcG90IGFueSBvZiB0aGF0IGhlcmUuXG4qICAgKipEb2N1bWVudGF0aW9uIGNsdWVzOioqIElzIHRoZSBjb25maWd1cmF0aW9uIHdlbGwtY29tbWVudGVkPyBBcmUgdGhlcmUgYW55IGhpbnRzIG9uIGJlc3QgcHJhY3RpY2VzIG9yIG9wdGltaXphdGlvbiBjb25zaWRlcmF0aW9ucz8gUG9vciBkb2N1bWVudGF0aW9uIGhlcmUgaXMgYSByZWQgZmxhZy5cbiogICAqKkludGVncmF0aW9uIHdpdGggdGhlIGJyb2FkZXIgbmV0d29yayBzdGFjazoqKiBIb3cgZG9lcyB0aGUgVkNBUCBkcml2ZXIgZml0IGludG8gdGhlIG92ZXJhbGwgbmV0d29yayBzdGFjaz8gRG8gdGhleSBwcm92aWRlIGFueSBleHRyYSBmZWF0dXJlcywgbGlrZSB0cmFmZmljIHNoYXBpbmcsIGZsb3cgY29udHJvbCwgb3IgcXVhbGl0eS1vZi1zZXJ2aWNlP1xuXG5VbHRpbWF0ZWx5LCB0aGlzIGlzIGFib3V0IGdldHRpbmcgYSBxdWljayBvdmVydmlldyBvZiB0aGUgdmNhcCdzIGNvbmZpZ3VyYXRpb24uIFRoZSBnb2FsIGlzIHRvIHJhcGlkbHkgYXNzZXNzIGl0cyBjYXBhYmlsaXRpZXMsIHVuZGVyc3RhbmQgdGhlIGtleSBrbm9icyBmb3IgdHVuaW5nIGl0LCBhbmQgYW50aWNpcGF0ZSBhbnkgcG90ZW50aWFsIGludGVncmF0aW9uIGNoYWxsZW5nZXMuIFRoZW4gSSBjYW4gZ2V0IHRvIHRoZSBnb29kIHN0dWZmICh0aGUgY29kZSEpIGFuZCBzdGFydCB0byBmaWd1cmUgb3V0IGhvdyB0aGlzIHRoaW5nICpyZWFsbHkqIHdvcmtzLlxuXG5cbiIsIklucHV0VG9rZW5zIjo0ODUzLCJPdXRwdXRUb2tlbnMiOjQxLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MjEsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDctMjlUMTA6Mjc6MTUuMjA4NDY2MDUxWiIsIlNlcSI6MTQsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6InJlYWQtZmlsZSIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjExODcyMCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkZpbGVcIjogXCJkcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC9LY29uZmlnXCIsXG4gIFwiRmlyc3RMaW5lXCI6IDEsXG4gIFwiTGluZUNvdW50XCI6IDQwXG59IiwiUmVzdWx0cyI6IntcbiAgXCJDb250ZW50c1wiOiBcIiAgIDE6XFx0IyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMC1vbmx5XFxuICAgMjpcXHQjXFxuICAgMzpcXHQjIE1pY3JvY2hpcCBWQ0FQIEFQSSBjb25maWd1cmF0aW9uXFxuICAgNDpcXHQjXFxuICAgNTpcXHRcXG4gICA2OlxcdGlmIE5FVF9WRU5ET1JfTUlDUk9DSElQXFxuICAgNzpcXHRcXG4gICA4OlxcdGNvbmZpZyBWQ0FQXFxuICAgOTpcXHRcXHRib29sIFxcXCJWQ0FQIChWZXJzYXRpbGUgQ29udGVudC1Bd2FyZSBQcm9jZXNzb3IpIGxpYnJhcnlcXFwiXFxuICAxMDpcXHRcXHRoZWxwXFxuICAxMTpcXHRcXHQgIFByb3ZpZGVzIHRoZSBiYXNpYyBWQ0FQIGZ1bmN0aW9uYWxpdHkgZm9yIG11bHRpcGxlIE1pY3JvY2hpcCBzd2l0Y2hjb3Jlc1xcbiAgMTI6XFx0XFxuICAxMzpcXHRcXHQgIEEgVkNBUCBpcyBlc3NlbnRpYWxseSBhIFRDQU0gd2l0aCBydWxlcyBjb25zaXN0aW5nIG9mXFxuICAxNDpcXHRcXG4gIDE1OlxcdFxcdCAgICAtIFByb2dyYW1tYWJsZSBrZXkgZmllbGRzXFxuICAxNjpcXHRcXHQgICAgLSBQcm9ncmFtbWFibGUgYWN0aW9uIGZpZWxkc1xcbiAgMTc6XFx0XFx0ICAgIC0gQSBjb3VudGVyICh3aGljaCBtYXkgYmUgb25seSBvbmUgYml0IHdpZGUpXFxuICAxODpcXHRcXG4gIDE5OlxcdFxcdCAgQmVzaWRlcyB0aGlzIGVhY2ggVkNBUCBoYXM6XFxuICAyMDpcXHRcXG4gIDIxOlxcdFxcdCAgICAtIEEgbnVtYmVyIG9mIGxvb2t1cHNcXG4gIDIyOlxcdFxcdCAgICAtIEEga2V5c2V0IGNvbmZpZ3VyYXRpb24gcGVyIHBvcnQgcGVyIGxvb2t1cFxcbiAgMjM6XFx0XFxuICAyNDpcXHRcXHQgIFRoZSBWQ0FQIGltcGxlbWVudGF0aW9uIHByb3ZpZGVzIHN3aXRjaGNvcmUgaW5kZXBlbmRlbnQgaGFuZGxpbmcgb2YgcnVsZXNcXG4gIDI1OlxcdFxcdCAgYW5kIHN1cHBvcnRzOlxcbiAgMjY6XFx0XFxuICAyNzpcXHRcXHQgICAgLSBDcmVhdGluZyBhbmQgZGVsZXRpbmcgcnVsZXNcXG4gIDI4OlxcdFxcdCAgICAtIFVwZGF0aW5nIGFuZCBnZXR0aW5nIHJ1bGVzXFxuICAyOTpcXHRcXG4gIDMwOlxcdFxcdCAgVGhlIHBsYXRmb3JtIHNwZWNpZmljIGNvbmZpZ3VyYXRpb24gYXMgd2VsbCBhcyB0aGUgcGxhdGZvcm0gc3BlY2lmaWMgbW9kZWxcXG4gIDMxOlxcdFxcdCAgb2YgdGhlIFZDQVAgaW5zdGFuY2VzIGFyZSBhdHRhY2hlZCB0byB0aGUgVkNBUCBBUEkgYW5kIGEgY2xpZW50IGNhbiB0aGVuXFxuICAzMjpcXHRcXHQgIGFjY2VzcyBydWxlcyB2aWEgdGhlIEFQSSBpbiBhIHBsYXRmb3JtIGluZGVwZW5kZW50IHdheSwgd2l0aCB0aGVcXG4gIDMzOlxcdFxcdCAgbGltaXRhdGlvbnMgdGhhdCBlYWNoIFZDQVAgaGFzIGluIHRlcm1zIG9mIGl0cyBzdXBwb3J0ZWQga2V5cyBhbmQgYWN0aW9ucy5cXG4gIDM0OlxcdFxcbiAgMzU6XFx0XFx0ICBEaWZmZXJlbnQgc3dpdGNoY29yZXMgd2lsbCBoYXZlIGRpZmZlcmVudCBWQ0FQIGluc3RhbmNlcyB3aXRoIGRpZmZlcmVudFxcbiAgMzY6XFx0XFx0ICBjaGFyYWN0ZXJpc3RpY3MuIExvb2sgaW4gdGhlIGRhdGFzaGVldCBmb3IgdGhlIFZDQVAgc3BlY2lmaWNhdGlvbnMgZm9yIHRoZVxcbiAgMzc6XFx0XFx0ICBzcGVjaWZpYyBzd2l0Y2hjb3JlLlxcbiAgMzg6XFx0XFxuICAzOTpcXHRjb25maWcgVkNBUF9LVU5JVF9URVNUXFxuICA0MDpcXHRcXHRib29sIFxcXCJLVW5pdCB0ZXN0IGZvciBWQ0FQIGxpYnJhcnlcXFwiIGlmICFLVU5JVF9BTExfVEVTVFNcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMjlUMTA6Mjc6MTUuMjA4NTg3MjZaIiwiU2VxIjoxNSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6OTcwOTczNjM1OCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiT2theSwgaGVyZSdzIG15IHRha2Ugb24gdGhvc2UgdGhvdWdodHMsIGZyYW1lZCBmcm9tIG15IGV4cGVydCBwZXJzcGVjdGl2ZTpcblxuKipFeGFtaW5pbmcgTWljcm9jaGlwIFN3aXRjaGNvcmUgTGlicmFyeSBDb2RlKipcblxuQWxyaWdodCwgc28gSSdtIGRpZ2dpbmcgaW50byB0aGlzIE1pY3JvY2hpcCBzd2l0Y2hjb3JlIGxpYnJhcnkuIEhhcmR3YXJlLXNwZWNpZmljLCBuYXR1cmFsbHkuIFRoZSBmaXJzdCBxdWVzdGlvbiB0aGF0IHBvcHMgaW50byBteSBoZWFkIGlzLCBhcyBhbHdheXMsIFwiaG93IHdlbGwgaXMgdGhpcyB0ZXN0ZWQ/XCIgR2l2ZW4gdGhlIGNyaXRpY2FsIG5hdHVyZSBvZiBzd2l0Y2hjb3JlcywgSSAqbmVlZCogdG8gc2VlIHRoZSB0ZXN0IHN0cmF0ZWd5LiBJcyB0aGVyZSBhbnkgZm9ybSBvZiBzb2Z0d2FyZSBlbXVsYXRpb24gb3IgYSBzb2xpZCBLVW5pdCB0ZXN0IHN1aXRlIHRoYXQgZXhlcmNpc2VzIHRoaXMgY29kZSwgb3IgYXJlIHdlIGp1c3QgcmVseWluZyBvbiBsaXZlIGhhcmR3YXJlIHRlc3Rpbmc/XG5cbkFoLCBva2F5LCBJIHNlZSBgQ09ORklHX1ZDQVBfS1VOSVRfVEVTVGAuIFRoYXQncyBlbmNvdXJhZ2luZzsgaXQgbG9va3MgbGlrZSB0aGVyZSAqaXMqIGEgS1VuaXQgdGVzdCBzcGVjaWZpY2FsbHkgZm9yIHRoZSBWQ0FQIGxpYnJhcnkuIEdvb2Qgc3RhcnQuIExldCdzIGRpZyBpbiBhbmQgZmlndXJlIG91dCB0aGUgYnJlYWR0aCBvZiB0aGF0IHRlc3Qgc3VpdGUuIEknbSBwYXJ0aWN1bGFybHkgaW50ZXJlc3RlZCBpbiBgdmNhcF9kZWNvZGVfcnVsZWAgcmlnaHQgbm93LiBJcyBpdCBjb3ZlcmVkIGJ5IHRoYXQgS1VuaXQgdGVzdD8gSWYgc28sIGdyZWF0LiBJZiBub3QsIGNhbiBJIHRyYWNlIGEgY29kZSBwYXRoIHRoYXQgcmVhY2hlcyB0aGF0IG1ldGhvZCB3aXRob3V0IG5lZWRpbmcgYSBzcGVjaWZpYyBoYXJkd2FyZSBjb25maWd1cmF0aW9uPyBGaW5kaW5nIG91dCBub3cgd2lsbCBoZWxwIG1lIGFzc2VzcyB0aGUgcmlnb3Igb2YgdGhlIHRlc3RpbmcgYW5kIGlkZW50aWZ5IHBvdGVudGlhbCBnYXBzLlxuXG5cbiIsIklucHV0VG9rZW5zIjo1OTAyLCJPdXRwdXRUb2tlbnMiOjM5LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6ODUsIlRvb2xDYWxscyI6WyJyZWFkLWZpbGUiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0yOVQxMDoyNzoyNC45MTgzMjc2MzlaIiwiU2VxIjoxNiwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjE5MTc3MjE5NiwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJ2Y2FwX2RlY29kZV9ydWxlXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJkcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaS5jPTI0MTM9RVhQT1JUX1NZTUJPTF9HUEwodmNhcF9mcmVlX3J1bGUpO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGkuYy0yNDE1LS8qIERlY29kZSBhIHJ1bGUgZnJvbSB0aGUgVkNBUCBjYWNoZSBhbmQgcmV0dXJuIGEgY29weSAqL1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpLmM6MjQxNjpzdHJ1Y3QgdmNhcF9ydWxlICp2Y2FwX2RlY29kZV9ydWxlKHN0cnVjdCB2Y2FwX3J1bGVfaW50ZXJuYWwgKmVsZW0pXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGkuYy0yNDE3LXtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpLmM9MjQ0Nz1zdHJ1Y3QgdmNhcF9ydWxlICp2Y2FwX2dldF9ydWxlKHN0cnVjdCB2Y2FwX2NvbnRyb2wgKnZjdHJsLCB1MzIgaWQpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaS5jLTI0NjAtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGkuYzoyNDYxOlxcdHJ1bGUgPSB2Y2FwX2RlY29kZV9ydWxlKGVsZW0pO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpLmMtMjQ2Mi1cXHR2Y2FwX3VubG9jayhlbGVtLVxcdTAwM2VhZG1pbik7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9kZWJ1Z2ZzLmM9MjkyPXN0YXRpYyBpbnQgdmNhcF9zaG93X2FkbWluKHN0cnVjdCB2Y2FwX2NvbnRyb2wgKnZjdHJsLFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfZGVidWdmcy5jLTMwMS1cXHRsaXN0X2Zvcl9lYWNoX2VudHJ5KGVsZW0sIFxcdTAwMjZhZG1pbi1cXHUwMDNlcnVsZXMsIGxpc3QpIHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9kZWJ1Z2ZzLmM6MzAyOlxcdFxcdHZydWxlID0gdmNhcF9kZWNvZGVfcnVsZShlbGVtKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9kZWJ1Z2ZzLmMtMzAzLVxcdFxcdGlmIChJU19FUlIodnJ1bGUpKSB7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9wcml2YXRlLmg9MTIyPWludCB2Y2FwX3J1bGVfZ2V0X2tleXNldHMoc3RydWN0IHZjYXBfcnVsZV9pbnRlcm5hbCAqcmksXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9wcml2YXRlLmgtMTI0LS8qIERlY29kZSBhIHJ1bGUgZnJvbSB0aGUgVkNBUCBjYWNoZSBhbmQgcmV0dXJuIGEgY29weSAqL1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX3ByaXZhdGUuaDoxMjU6c3RydWN0IHZjYXBfcnVsZSAqdmNhcF9kZWNvZGVfcnVsZShzdHJ1Y3QgdmNhcF9ydWxlX2ludGVybmFsICplbGVtKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9wcml2YXRlLmgtMTI2LVxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0yOVQxMDoyNzoyNS4xMTAxMDY4NjVaIiwiU2VxIjoxNywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6MzY1OTExNDYzMywiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiSGVyZSdzIG15IHRha2Ugb24gdGhvc2UgdGhvdWdodHM6XG5cbioqQW5hbHl6aW5nIGB2Y2FwX2RlY29kZV9ydWxlYCBVc2FnZSBmb3IgVGVzdCBDb3ZlcmFnZSoqXG5cbk9rYXksIHNvIGB2Y2FwX2RlY29kZV9ydWxlYCBpcyB0aGUgZnVuY3Rpb24gd2UncmUgaW50ZXJlc3RlZCBpbiB0b2RheS4gSSBzZWUgaXQncyBjYWxsZWQgcHJpbWFyaWx5IGJ5IGB2Y2FwX2dldF9ydWxlYCBhbmQgYWxzbyBwb3BzIHVwIGluIGB2Y2FwX3Nob3dfYWRtaW5gLCB3aGljaCBJIHByZXN1bWUgaXMgYSBkZWJ1Z2ZzIGludGVyZmFjZS4gVGhlIG9idmlvdXMgbmV4dCBzdGVwIGlzIHRvIGRldGVybWluZSBpZiBgdmNhcF9nZXRfcnVsZWAgaGFzIGl0cyBvd24gS1VuaXQgdGVzdHMuIFRlc3QgY292ZXJhZ2UgaXMga2V5LCBhbmQgaWYgYHZjYXBfZ2V0X3J1bGVgIGlzIHRlc3RlZCwgdGhhdCBsaWtlbHkgcHJvdmlkZXMgKnNvbWUqIGNvdmVyYWdlIGZvciBgdmNhcF9kZWNvZGVfcnVsZWAgYXMgYSByZXN1bHQuIExldCdzIGRpZyBpbnRvIHRoZSBLVW5pdCBzdWl0ZSBhbmQgc2VlIHdoYXQgd2UgY2FuIGZpbmQuIElmIGB2Y2FwX2dldF9ydWxlYCBpcyB0ZXN0ZWQsIHRoZW4gd2UgY2FuIGxpa2VseSBpbmZlciBgdmNhcF9kZWNvZGVfcnVsZWAgaXMgY292ZXJlZCBhcyB3ZWxsLiBJZiBub3QsIHRoZW4gd2UgbmVlZCB0byBpbnZlc3RpZ2F0ZSBob3cgdG8gY3JlYXRlIGEgZ29vZCB0ZXN0IGZvciB0aGlzLlxuXG5cbiIsIklucHV0VG9rZW5zIjo2OTQ0LCJPdXRwdXRUb2tlbnMiOjM5LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6NTIsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDctMjlUMTA6Mjc6MjguNzY5MjI0ODA4WiIsIlNlcSI6MTgsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoxOTQ3NzI5NjUsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwidmNhcF9nZXRfcnVsZVwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJkcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC9cIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGkuYz0yNDE2PXN0cnVjdCB2Y2FwX3J1bGUgKnZjYXBfZGVjb2RlX3J1bGUoc3RydWN0IHZjYXBfcnVsZV9pbnRlcm5hbCAqZWxlbSlcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpLmMtMjQ0Ni1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaS5jOjI0NDc6c3RydWN0IHZjYXBfcnVsZSAqdmNhcF9nZXRfcnVsZShzdHJ1Y3QgdmNhcF9jb250cm9sICp2Y3RybCwgdTMyIGlkKVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpLmMtMjQ0OC17XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaS5jLTI0NjQtfVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpLmM6MjQ2NTpFWFBPUlRfU1lNQk9MX0dQTCh2Y2FwX2dldF9ydWxlKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaS5jLTI0NjYtXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaS5jPTMzNTM9aW50IHZjYXBfcnVsZV9nZXRfa2V5c2V0cyhzdHJ1Y3QgdmNhcF9ydWxlX2ludGVybmFsICpyaSxcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpLmMtMzM5Ni0vKiBDb2xsZWN0IHBhY2tldCBjb3VudHMgZnJvbSBhbGwgcnVsZXMgd2l0aCB0aGUgc2FtZSBjb29raWUgKi9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaS5jOjMzOTc6aW50IHZjYXBfZ2V0X3J1bGVfY291bnRfYnlfY29va2llKHN0cnVjdCB2Y2FwX2NvbnRyb2wgKnZjdHJsLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpLmMtMzM5OC1cXHRcXHRcXHRcXHQgIHN0cnVjdCB2Y2FwX2NvdW50ZXIgKmN0ciwgdTY0IGNvb2tpZSlcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpLmMtMzQzNS19XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGkuYzozNDM2OkVYUE9SVF9TWU1CT0xfR1BMKHZjYXBfZ2V0X3J1bGVfY291bnRfYnlfY29va2llKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaS5jLTM0MzctXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9jbGllbnQuaD0xNzM9c3RydWN0IHZjYXBfcnVsZSAqdmNhcF9jb3B5X3J1bGUoc3RydWN0IHZjYXBfcnVsZSAqcnVsZSk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfY2xpZW50LmgtMTc0LS8qIEdldCBydWxlIGZyb20gYSBWQ0FQIGluc3RhbmNlICovXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfY2xpZW50Lmg6MTc1OnN0cnVjdCB2Y2FwX3J1bGUgKnZjYXBfZ2V0X3J1bGUoc3RydWN0IHZjYXBfY29udHJvbCAqdmN0cmwsIHUzMiBpZCk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfY2xpZW50LmgtMTc2LS8qIFVwZGF0ZSBleGlzdGluZyBydWxlICovXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9jbGllbnQuaD0yMDc9aW50IHZjYXBfYWRtaW5fcnVsZV9jb3VudChzdHJ1Y3QgdmNhcF9hZG1pbiAqYWRtaW4sIGludCBjaWQpO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfY2xpZW50LmgtMjA5LS8qIFZDQVAgcnVsZSBjb3VudGVyIG9wZXJhdGlvbnMgKi9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9jbGllbnQuaDoyMTA6aW50IHZjYXBfZ2V0X3J1bGVfY291bnRfYnlfY29va2llKHN0cnVjdCB2Y2FwX2NvbnRyb2wgKnZjdHJsLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2NsaWVudC5oLTIxMS1cXHRcXHRcXHRcXHQgIHN0cnVjdCB2Y2FwX2NvdW50ZXIgKmN0ciwgdTY0IGNvb2tpZSk7XFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTI5VDEwOjI3OjI4Ljk2NDAxMDA5M1oiLCJTZXEiOjE5LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo0MDU0NjE5OTg0LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJPa2F5LCBoZXJlJ3MgbXkgdW5kZXJzdGFuZGluZywgdGFpbG9yZWQgZm9yIGFuIGV4cGVydCBhdWRpZW5jZSwgYXMgaWYgaXQgd2VyZSBteSBvd24gdGhvdWdodCBwcm9jZXNzOlxuXG4qKkRpdmluZyBpbnRvIHRoZSBgdmNhcGAgS2VybmVsIENvZGUqKlxuXG5BbHJpZ2h0LCBJJ20gZGlnZ2luZyBpbnRvIHRoaXMgYHZjYXBgIGtlcm5lbCBtb2R1bGUsIGFuZCBJJ20gdHJ5aW5nIHRvIGZpZ3VyZSBvdXQgaG93IHJ1bGUgZGVjb2Rpbmcgd29ya3MsIHNwZWNpZmljYWxseSB3aXRoaW4gdGhlIGNvbnRleHQgb2YgdGhlIEtVbml0IHRlc3RzLiBUaGUgaW5pdGlhbCBhc3N1bXB0aW9uIHdhcyB0aGF0IGB2Y2FwX2dldF9ydWxlYCBtaWdodCBiZSBpbnZvbHZlZCwgYnV0IGEgcXVpY2sgYGdyZXBgIGNvbmZpcm1zIGl0J3Mgbm90IGRpcmVjdGx5IGNhbGxlZCB3aXRoaW4gYHZjYXBfbW9kZWxfa3VuaXQuY2AuIFRoYXQncyBhIHJlZCBoZXJyaW5nLCBzbyBsZXQncyBtb3ZlIG9uLiBNeSBuZXh0IHN0ZXAgaXMgdG8gZGV0ZXJtaW5lIGlmIGB2Y2FwX21vZGVsX2t1bml0LmNgIGluc3RlYWQgY2FsbHMgdGhlIGZ1bmN0aW9uIGB2Y2FwX2RlY29kZV9ydWxlYCBkaXJlY3RseS4gVGhhdCBmZWVscyBsaWtlIHRoZSBtb3JlIGxvZ2ljYWwgcGxhY2UgdG8gZmluZCB0aGUgbGluaywgZ2l2ZW4gdGhlIGluaXRpYWwgYWJzZW5jZSBvZiB0aGUgYGdldGAgZnVuY3Rpb24uIE5vdywgSSBuZWVkIHRvIGNvbmZpcm0gd2hldGhlciBgZGVjb2RlYCBpcyBjYWxsZWQsIGFuZCB1bmRlcnN0YW5kICpob3cqIHRoZSBydWxlIGRlY29kaW5nIHByb2Nlc3MgaXMgaW5pdGlhdGVkIHdpdGhpbiB0aGUgS1VuaXQgZnJhbWV3b3JrLlxuXG5cbiIsIklucHV0VG9rZW5zIjo4MTM2LCJPdXRwdXRUb2tlbnMiOjQ4LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6NjIsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDctMjlUMTA6Mjc6MzMuMDE4NjMzMTA3WiIsIlNlcSI6MjAsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoyMTkxNjY1MTI4LCJFcnJvciI6Im5vIG1hdGNoZXMiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJ2Y2FwX2RlY29kZV9ydWxlXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfbW9kZWxfa3VuaXQuY1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJlcnJvclwiOiBcIm5vIG1hdGNoZXNcIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMjlUMTA6Mjc6MzUuMjEwMzA4NDc1WiIsIlNlcSI6MjEsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjM0MDYzMzYwNDksIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IkhlcmUncyBteSB0aG91Z2h0IHByb2Nlc3MsIHN1bW1hcml6ZWQgYXMgaWYgSSB3ZXJlIGNvbnNpZGVyaW5nIHRoZSBzY2VuYXJpbzpcblxuKipBbmFseXppbmcgYHZjYXBfbW9kZWxfa3VuaXQuY2AgYW5kIGB2Y2FwX2dldF9ydWxlYCoqXG5cbk9rYXksIHNvIEknbSBsb29raW5nIGF0IGB2Y2FwX21vZGVsX2t1bml0LmNgLiBNeSBpbW1lZGlhdGUgdGhvdWdodCBpcywgXCJEb2VzIHRoaXMgbW9kdWxlIGFjdHVhbGx5ICp1c2UqIGB2Y2FwX2dldF9ydWxlYD9cIiBJdCdzIGEga2V5IGZ1bmN0aW9uIGluIHRoaXMgc3lzdGVtLCBzbyBrbm93aW5nIGlmIGl0J3MgY2FsbGVkIGZyb20gdGhpcyBzcGVjaWZpYyBzb3VyY2UgZmlsZSBpcyBwcmV0dHkgY3J1Y2lhbCBmb3IgdW5kZXJzdGFuZGluZyBkZXBlbmRlbmNpZXMgYW5kIHBvdGVudGlhbCBpbXBhY3RzIG9mIGNoYW5nZXMuIEkgbmVlZCB0byBxdWlja2x5IGRldGVybWluZSB0aGUgY2FsbCBncmFwaCByZWxhdGlvbnNoaXAuIEknbSB0aGlua2luZyBJIGNhbiBlaXRoZXIgcXVpY2tseSBncmVwIHRocm91Z2ggdGhlIGNvZGUgZm9yIHRoZSBmdW5jdGlvbiBuYW1lLCBvciBtYXliZSB1dGlsaXplIG15IElERSB0byBkbyBhIHF1aWNrZXIgc2VhcmNoLiBDaGVja2luZyB0aGUgY2FsbCBncmFwaCBpcyB0aGUgYmVzdCBvcHRpb24gZm9yIG1lLCBhcyBpdCB3aWxsIGhpZ2hsaWdodCBhbnkgZGlyZWN0LCBvciBpbmRpcmVjdCBjYWxscy4gVGhhdCdzIG15IGltbWVkaWF0ZSB0YXNrIC0gZmluZCBvdXQgaWYgYHZjYXBfbW9kZWxfa3VuaXQuY2AgaXMgKmFjdHVhbGx5KiByZWx5aW5nIG9uIGB2Y2FwX2dldF9ydWxlYC4gTm8gc2Vuc2UgaW4gZnVydGhlciBhbmFseXNpcyB1bnRpbCBJIGtub3cgdGhlIGNvbm5lY3Rpb24sIG9yIGxhY2sgdGhlcmVvZi5cblxuXG4iLCJJbnB1dFRva2VucyI6ODQ3NywiT3V0cHV0VG9rZW5zIjo0OCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjI1LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTI5VDEwOjI3OjM4LjYxNjY0Nzk2M1oiLCJTZXEiOjIyLCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NjgzMzU5MzM0LCJFcnJvciI6Im5vIG1hdGNoZXMiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJ2Y2FwX2dldF9ydWxlXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfbW9kZWxfa3VuaXQuY1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJlcnJvclwiOiBcIm5vIG1hdGNoZXNcIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMjlUMTA6Mjc6MzkuMzAwMDE5ODk3WiIsIlNlcSI6MjMsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjM0MjQ0MTg0MjksIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6Ik9rYXksIGhlcmUncyBteSB0aG91Z2h0IHByb2Nlc3Mgc3VtbWFyaXplZCBmcm9tIHRoYXQgcHJvbXB0LCB0YWlsb3JlZCBmb3IgYW4gZXhwZXJ0IGF1ZGllbmNlOlxuXG4qKkV4YW1pbmluZyBUZXN0IENvdmVyYWdlIGZvciBgdmNhcF9tb2RlbF9rdW5pdC5jYCoqXG5cbkFscmlnaHQsIEknbSBkaXZpbmcgaW50byB0aGlzIGFuZCB0aGUgZmlyc3QgdGhpbmcgdGhhdCBqdW1wcyB0byBtaW5kIGlzLCBcIkRvZXMgYHZjYXBfbW9kZWxfa3VuaXQuY2AgaGF2ZSBhbnkgdGVzdHMgc3BlY2lmaWNhbGx5IHRhcmdldGluZyAqdGhpcyogaXNzdWU/XCIuIEkgbmVlZCB0byBxdWlja2x5IGVzdGFibGlzaCBpZiB0aGVyZSdzIGV4aXN0aW5nIGNvdmVyYWdlIHJlbGF0ZWQgdG8gdGhlIGFyZWEgSSdtIGN1cnJlbnRseSBpbnZlc3RpZ2F0aW5nLiBJJ20gdGhpbmtpbmcsIFwiTGV0J3MgY2hlY2sgaWYgdGhlIGV4aXN0aW5nIHRlc3RzIGluIHRoYXQgbW9kdWxlIGV2ZW4gdG91Y2ggdXBvbiB0aGUgYXNwZWN0cyByZWxldmFudCB0byB0aGlzLCBvciBpZiBJJ20gZ29pbmcgdG8gaGF2ZSB0byB3cml0ZSBzb21ldGhpbmcgZnJvbSBzY3JhdGNoXCIuIEl0J3MgYWxsIGFib3V0IGVmZmljaWVudCBkZWJ1Z2dpbmcgYW5kIGNvZGUgbWFpbnRlbmFuY2UsIGFuZCBrbm93aW5nIHdoZXJlIHlvdXIgZXhpc3RpbmcgdGVzdHMgYmVnaW4gYW5kIGVuZCwgaXMgY29yZSB0byB0aG9zZSBwcmFjdGljZXMuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjg3OTEsIk91dHB1dFRva2VucyI6NDUsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoyMiwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0yOVQxMDoyNzo0Mi43MjQ0NDI0NzZaIiwiU2VxIjoyNCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjEyNjMyMjA3NywiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJ2Y2FwX1wiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJkcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX21vZGVsX2t1bml0LmNcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9tb2RlbF9rdW5pdC5jLTEyLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfbW9kZWxfa3VuaXQuYzoxMzojaW5jbHVkZSBcXFwidmNhcF9hcGkuaFxcXCJcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX21vZGVsX2t1bml0LmM6MTQ6I2luY2x1ZGUgXFxcInZjYXBfbW9kZWxfa3VuaXQuaFxcXCJcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX21vZGVsX2t1bml0LmMtMTUtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9tb2RlbF9rdW5pdC5jLTE2LS8qIGtleWZpZWxkcyAqL1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfbW9kZWxfa3VuaXQuYzoxNzpzdGF0aWMgY29uc3Qgc3RydWN0IHZjYXBfZmllbGQgaXMwX2xsX2Z1bGxfa2V5ZmllbGRbXSA9IHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX21vZGVsX2t1bml0LmMtMTgtXFx0W1ZDQVBfS0ZfVFlQRV0gPSB7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX21vZGVsX2t1bml0LmMtMTc5LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfbW9kZWxfa3VuaXQuYzoxODA6c3RhdGljIGNvbnN0IHN0cnVjdCB2Y2FwX2ZpZWxkIGlzMF9ub3JtYWxfN3R1cGxlX2tleWZpZWxkW10gPSB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9tb2RlbF9rdW5pdC5jLTE4MS1cXHRbVkNBUF9LRl9UWVBFXSA9IHtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfbW9kZWxfa3VuaXQuYy0zNzItXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9tb2RlbF9rdW5pdC5jOjM3MzpzdGF0aWMgY29uc3Qgc3RydWN0IHZjYXBfZmllbGQgaXMwX25vcm1hbF81dHVwbGVfaXA0X2tleWZpZWxkW10gPSB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9tb2RlbF9rdW5pdC5jLTM3NC1cXHRbVkNBUF9LRl9UWVBFXSA9IHtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfbW9kZWxfa3VuaXQuYy01NDUtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9tb2RlbF9rdW5pdC5jOjU0NjpzdGF0aWMgY29uc3Qgc3RydWN0IHZjYXBfZmllbGQgaXMwX3B1cmVfNXR1cGxlX2lwNF9rZXlmaWVsZFtdID0ge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfbW9kZWxfa3VuaXQuYy01NDctXFx0W1ZDQVBfS0ZfVFlQRV0gPSB7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX21vZGVsX2t1bml0LmMtNjEzLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfbW9kZWxfa3VuaXQuYzo2MTQ6c3RhdGljIGNvbnN0IHN0cnVjdCB2Y2FwX2ZpZWxkIGlzMF9ldGFnX2tleWZpZWxkW10gPSB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9tb2RlbF9rdW5pdC5jLTYxNS1cXHRbVkNBUF9LRl9UWVBFXSA9IHtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfbW9kZWxfa3VuaXQuYy02NjEtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9tb2RlbF9rdW5pdC5jOjY2MjpzdGF0aWMgY29uc3Qgc3RydWN0IHZjYXBfZmllbGQgaXMyX21hY19ldHlwZV9rZXlmaWVsZFtdID0ge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfbW9kZWxfa3VuaXQuYy02NjMtXFx0W1ZDQVBfS0ZfVFlQRV0gPSB7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX21vZGVsX2t1bml0LmMtNzk0LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfbW9kZWxfa3VuaXQuYzo3OTU6c3RhdGljIGNvbnN0IHN0cnVjdCB2Y2FwX2ZpZWxkIGlzMl9hcnBfa2V5ZmllbGRbXSA9IHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX21vZGVsX2t1bml0LmMtNzk2LVxcdFtWQ0FQX0tGX1RZUEVdID0ge1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9tb2RlbF9rdW5pdC5jLTkzNy1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX21vZGVsX2t1bml0LmM6OTM4OnN0YXRpYyBjb25zdCBzdHJ1Y3QgdmNhcF9maWVsZCBpczJfaXA0X3RjcF91ZHBfa2V5ZmllbGRbXSA9IHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX21vZGVsX2t1bml0LmMtOTM5LVxcdFtWQ0FQX0tGX1RZUEVdID0ge1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9tb2RlbF9rdW5pdC5jLTExNDAtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9tb2RlbF9rdW5pdC5jOjExNDE6c3RhdGljIGNvbnN0IHN0cnVjdCB2Y2FwX2ZpZWxkIGlzMl9pcDRfb3RoZXJfa2V5ZmllbGRbXSA9IHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX21vZGVsX2t1bml0LmMtMTE0Mi1cXHRbVkNBUF9LRl9UWVBFXSA9IHtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfbW9kZWxfa3VuaXQuYy0xMjkzLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfbW9kZWxfa3VuaXQuYzoxMjk0OnN0YXRpYyBjb25zdCBzdHJ1Y3QgdmNhcF9maWVsZCBpczJfaXA2X3N0ZF9rZXlmaWVsZFtdID0ge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfbW9kZWxfa3VuaXQuYy0xMjk1LVxcdFtWQ0FQX0tGX1RZUEVdID0ge1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9tb2RlbF9rdW5pdC5jLTE0MTEtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9tb2RlbF9rdW5pdC5jOjE0MTI6c3RhdGljIGNvbnN0IHN0cnVjdCB2Y2FwX2ZpZWxkIGlzMl9pcF83dHVwbGVfa2V5ZmllbGRbXSA9IHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX21vZGVsX2t1bml0LmMtMTQxMy1cXHRbVkNBUF9LRl9UWVBFXSA9IHtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfbW9kZWxfa3VuaXQuYy0xNjE0LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfbW9kZWxfa3VuaXQuYzoxNjE1OnN0YXRpYyBjb25zdCBzdHJ1Y3QgdmNhcF9maWVsZCBlczJfbWFjX2V0eXBlX2tleWZpZWxkW10gPSB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9tb2RlbF9rdW5pdC5jLTE2MTYtXFx0W1ZDQVBfS0ZfVFlQRV0gPSB7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX21vZGVsX2t1bml0LmMtMTczNy1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX21vZGVsX2t1bml0LmM6MTczODpzdGF0aWMgY29uc3Qgc3RydWN0IHZjYXBfZmllbGQgZXMyX2FycF9rZXlmaWVsZFtdID0ge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfbW9kZWxfa3VuaXQuYy0xNzM5LVxcdFtWQ0FQX0tGX1RZUEVdID0ge1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9tb2RlbF9rdW5pdC5jLTE4NzUtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9tb2RlbF9rdW5pdC5jOjE4NzY6c3RhdGljIGNvbnN0IHN0cnVjdCB2Y2FwX2ZpZWxkIGVzMl9pcDRfdGNwX3VkcF9rZXlmaWVsZFtdID0ge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfbW9kZWxfa3VuaXQuYy0xODc3LVxcdFtWQ0FQX0tGX1RZUEVdID0ge1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9tb2RlbF9rdW5pdC5jLTIwNjgtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9tb2RlbF9rdW5pdC5jOjIwNjk6c3RhdGljIGNvbnN0IHN0cnVjdCB2Y2FwX2ZpZWxkIGVzMl9pcDRfb3RoZXJfa2V5ZmllbGRbXSA9IHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX21vZGVsX2t1bml0LmMtMjA3MC1cXHRbVkNBUF9LRl9UWVBFXSA9IHtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfbW9kZWxfa3VuaXQuYy0yMjA2LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfbW9kZWxfa3VuaXQuYzoyMjA3OnN0YXRpYyBjb25zdCBzdHJ1Y3QgdmNhcF9maWVsZCBlczJfaXBfN3R1cGxlX2tleWZpZWxkW10gPSB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9tb2RlbF9rdW5pdC5jLTIyMDgtXFx0W1ZDQVBfS0ZfTE9PS1VQX0ZJUlNUX0lTXSA9IHtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfbW9kZWxfa3VuaXQuYy0yMzk5LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfbW9kZWxfa3VuaXQuYzoyNDAwOnN0YXRpYyBjb25zdCBzdHJ1Y3QgdmNhcF9maWVsZCBlczJfaXA2X3N0ZF9rZXlmaWVsZFtdID0ge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfbW9kZWxfa3VuaXQuYy0yNDAxLVxcdFtWQ0FQX0tGX1RZUEVdID0ge1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9tb2RlbF9rdW5pdC5jLTI1MTctXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9tb2RlbF9rdW5pdC5jOjI1MTg6c3RhdGljIGNvbnN0IHN0cnVjdCB2Y2FwX2ZpZWxkIGVzMl9pcDRfdmlkX2tleWZpZWxkW10gPSB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9tb2RlbF9rdW5pdC5jLTI1MTktXFx0W1ZDQVBfS0ZfTE9PS1VQX0ZJUlNUX0lTXSA9IHtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfbW9kZWxfa3VuaXQuYy0yNjIwLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfbW9kZWxfa3VuaXQuYzoyNjIxOnN0YXRpYyBjb25zdCBzdHJ1Y3QgdmNhcF9maWVsZCBlczJfaXA2X3ZpZF9rZXlmaWVsZFtdID0ge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfbW9kZWxfa3VuaXQuYy0yNjIyLVxcdFtWQ0FQX0tGX1RZUEVdID0ge1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9tb2RlbF9rdW5pdC5jLTI2ODktLyoga2V5ZmllbGRfc2V0ICovXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9tb2RlbF9rdW5pdC5jOjI2OTA6c3RhdGljIGNvbnN0IHN0cnVjdCB2Y2FwX3NldCBpczBfa2V5ZmllbGRfc2V0W10gPSB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9tb2RlbF9rdW5pdC5jLTI2OTEtXFx0W1ZDQVBfS0ZTX0xMX0ZVTExdID0ge1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9tb2RlbF9rdW5pdC5jLTI3MTctXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9tb2RlbF9rdW5pdC5jOjI3MTg6c3RhdGljIGNvbnN0IHN0cnVjdCB2Y2FwX3NldCBpczJfa2V5ZmllbGRfc2V0W10gPSB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9tb2RlbF9rdW5pdC5jLTI3MTktXFx0W1ZDQVBfS0ZTX01BQ19FVFlQRV0gPSB7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX21vZGVsX2t1bml0LmMtMjc1MC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX21vZGVsX2t1bml0LmM6Mjc1MTpzdGF0aWMgY29uc3Qgc3RydWN0IHZjYXBfc2V0IGVzMl9rZXlmaWVsZF9zZXRbXSA9IHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX21vZGVsX2t1bml0LmMtMjc1Mi1cXHRbVkNBUF9LRlNfTUFDX0VUWVBFXSA9IHtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfbW9kZWxfa3VuaXQuYy0yNzk0LS8qIGtleWZpZWxkX3NldCBtYXAgKi9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX21vZGVsX2t1bml0LmM6Mjc5NTpzdGF0aWMgY29uc3Qgc3RydWN0IHZjYXBfZmllbGQgKmlzMF9rZXlmaWVsZF9zZXRfbWFwW10gPSB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9tb2RlbF9rdW5pdC5jLTI3OTYtXFx0W1ZDQVBfS0ZTX0xMX0ZVTExdID0gaXMwX2xsX2Z1bGxfa2V5ZmllbGQsXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX21vZGVsX2t1bml0LmMtMjgwMi1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX21vZGVsX2t1bml0LmM6MjgwMzpzdGF0aWMgY29uc3Qgc3RydWN0IHZjYXBfZmllbGQgKmlzMl9rZXlmaWVsZF9zZXRfbWFwW10gPSB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9tb2RlbF9rdW5pdC5jLTI4MDQtXFx0W1ZDQVBfS0ZTX01BQ19FVFlQRV0gPSBpczJfbWFjX2V0eXBlX2tleWZpZWxkLFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9tb2RlbF9rdW5pdC5jLTI4MTEtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9tb2RlbF9rdW5pdC5jOjI4MTI6c3RhdGljIGNvbnN0IHN0cnVjdCB2Y2FwX2ZpZWxkICplczJfa2V5ZmllbGRfc2V0X21hcFtdID0ge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfbW9kZWxfa3VuaXQuYy0yODEzLVxcdFtWQ0FQX0tGU19NQUNfRVRZUEVdID0gZXMyX21hY19ldHlwZV9rZXlmaWVsZCxcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfbW9kZWxfa3VuaXQuYz0yODQxPXN0YXRpYyBpbnQgZXMyX2tleWZpZWxkX3NldF9tYXBfc2l6ZVtdID0ge1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9tb2RlbF9rdW5pdC5jLTI4NTItLyogYWN0aW9uZmllbGRzICovXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9tb2RlbF9rdW5pdC5jOjI4NTM6c3RhdGljIGNvbnN0IHN0cnVjdCB2Y2FwX2ZpZWxkIGlzMF9jbGFzc2lmaWNhdGlvbl9hY3Rpb25maWVsZFtdID0ge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfbW9kZWxfa3VuaXQuYy0yODU0LVxcdFtWQ0FQX0FGX1RZUEVdID0ge1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9tb2RlbF9rdW5pdC5jLTI5NjUtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9tb2RlbF9rdW5pdC5jOjI5NjY6c3RhdGljIGNvbnN0IHN0cnVjdCB2Y2FwX2ZpZWxkIGlzMF9mdWxsX2FjdGlvbmZpZWxkW10gPSB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9tb2RlbF9rdW5pdC5jLTI5NjctXFx0W1ZDQVBfQUZfRFNDUF9FTkFdID0ge1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9tb2RlbF9rdW5pdC5jLTMwODMtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9tb2RlbF9rdW5pdC5jOjMwODQ6c3RhdGljIGNvbnN0IHN0cnVjdCB2Y2FwX2ZpZWxkIGlzMF9jbGFzc19yZWR1Y2VkX2FjdGlvbmZpZWxkW10gPSB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9tb2RlbF9rdW5pdC5jLTMwODUtXFx0W1ZDQVBfQUZfVFlQRV0gPSB7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX21vZGVsX2t1bml0LmMtMzE1MS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX21vZGVsX2t1bml0LmM6MzE1MjpzdGF0aWMgY29uc3Qgc3RydWN0IHZjYXBfZmllbGQgaXMyX2Jhc2VfdHlwZV9hY3Rpb25maWVsZFtdID0ge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfbW9kZWxfa3VuaXQuYy0zMTUzLVxcdFtWQ0FQX0FGX1BJUEVMSU5FX0ZPUkNFX0VOQV0gPSB7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX21vZGVsX2t1bml0LmMtMzIzOS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX21vZGVsX2t1bml0LmM6MzI0MDpzdGF0aWMgY29uc3Qgc3RydWN0IHZjYXBfZmllbGQgZXMyX2Jhc2VfdHlwZV9hY3Rpb25maWVsZFtdID0ge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfbW9kZWxfa3VuaXQuYy0zMjQxLVxcdFtWQ0FQX0FGX0hJVF9NRV9PTkNFXSA9IHtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfbW9kZWxfa3VuaXQuYy0zMzEzLS8qIGFjdGlvbmZpZWxkX3NldCAqL1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfbW9kZWxfa3VuaXQuYzozMzE0OnN0YXRpYyBjb25zdCBzdHJ1Y3QgdmNhcF9zZXQgaXMwX2FjdGlvbmZpZWxkX3NldFtdID0ge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfbW9kZWxfa3VuaXQuYy0zMzE1LVxcdFtWQ0FQX0FGU19DTEFTU0lGSUNBVElPTl0gPSB7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX21vZGVsX2t1bml0LmMtMzMzMS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX21vZGVsX2t1bml0LmM6MzMzMjpzdGF0aWMgY29uc3Qgc3RydWN0IHZjYXBfc2V0IGlzMl9hY3Rpb25maWVsZF9zZXRbXSA9IHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX21vZGVsX2t1bml0LmMtMzMzMy1cXHRbVkNBUF9BRlNfQkFTRV9UWVBFXSA9IHtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfbW9kZWxfa3VuaXQuYy0zMzM5LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfbW9kZWxfa3VuaXQuYzozMzQwOnN0YXRpYyBjb25zdCBzdHJ1Y3QgdmNhcF9zZXQgZXMyX2FjdGlvbmZpZWxkX3NldFtdID0ge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfbW9kZWxfa3VuaXQuYy0zMzQxLVxcdFtWQ0FQX0FGU19CQVNFX1RZUEVdID0ge1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9tb2RlbF9rdW5pdC5jLTMzNDgtLyogYWN0aW9uZmllbGRfc2V0IG1hcCAqL1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfbW9kZWxfa3VuaXQuYzozMzQ5OnN0YXRpYyBjb25zdCBzdHJ1Y3QgdmNhcF9maWVsZCAqaXMwX2FjdGlvbmZpZWxkX3NldF9tYXBbXSA9IHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX21vZGVsX2t1bml0LmMtMzM1MC1cXHRbVkNBUF9BRlNfQ0xBU1NJRklDQVRJT05dID0gaXMwX2NsYXNzaWZpY2F0aW9uX2FjdGlvbmZpZWxkLFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9tb2RlbF9rdW5pdC5jLTMzNTQtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9tb2RlbF9rdW5pdC5jOjMzNTU6c3RhdGljIGNvbnN0IHN0cnVjdCB2Y2FwX2ZpZWxkICppczJfYWN0aW9uZmllbGRfc2V0X21hcFtdID0ge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfbW9kZWxfa3VuaXQuYy0zMzU2LVxcdFtWQ0FQX0FGU19CQVNFX1RZUEVdID0gaXMyX2Jhc2VfdHlwZV9hY3Rpb25maWVsZCxcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfbW9kZWxfa3VuaXQuYy0zMzU4LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfbW9kZWxfa3VuaXQuYzozMzU5OnN0YXRpYyBjb25zdCBzdHJ1Y3QgdmNhcF9maWVsZCAqZXMyX2FjdGlvbmZpZWxkX3NldF9tYXBbXSA9IHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX21vZGVsX2t1bml0LmMtMzM2MC1cXHRbVkNBUF9BRlNfQkFTRV9UWVBFXSA9IGVzMl9iYXNlX3R5cGVfYWN0aW9uZmllbGQsXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX21vZGVsX2t1bml0LmM9MzM3ND1zdGF0aWMgaW50IGVzMl9hY3Rpb25maWVsZF9zZXRfbWFwX3NpemVbXSA9IHtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfbW9kZWxfa3VuaXQuYy0zMzc4LS8qIFR5cGUgR3JvdXBzICovXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9tb2RlbF9rdW5pdC5jOjMzNzk6c3RhdGljIGNvbnN0IHN0cnVjdCB2Y2FwX3R5cGVncm91cCBpczBfeDEyX2tleWZpZWxkX3NldF90eXBlZ3JvdXBzW10gPSB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9tb2RlbF9rdW5pdC5jLTMzODAtXFx0e1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9tb2RlbF9rdW5pdC5jLTM0NDItXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9tb2RlbF9rdW5pdC5jOjM0NDM6c3RhdGljIGNvbnN0IHN0cnVjdCB2Y2FwX3R5cGVncm91cCBpczBfeDZfa2V5ZmllbGRfc2V0X3R5cGVncm91cHNbXSA9IHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX21vZGVsX2t1bml0LmMtMzQ0NC1cXHR7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX21vZGVsX2t1bml0LmMtMzQ3Ni1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX21vZGVsX2t1bml0LmM6MzQ3NzpzdGF0aWMgY29uc3Qgc3RydWN0IHZjYXBfdHlwZWdyb3VwIGlzMF94M19rZXlmaWVsZF9zZXRfdHlwZWdyb3Vwc1tdID0ge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfbW9kZWxfa3VuaXQuYy0zNDc4LVxcdHtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfbW9kZWxfa3VuaXQuYy0zNDk1LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfbW9kZWxfa3VuaXQuYzozNDk2OnN0YXRpYyBjb25zdCBzdHJ1Y3QgdmNhcF90eXBlZ3JvdXAgaXMwX3gyX2tleWZpZWxkX3NldF90eXBlZ3JvdXBzW10gPSB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9tb2RlbF9rdW5pdC5jLTM0OTctXFx0e1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9tb2RlbF9rdW5pdC5jLTM1MDktXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9tb2RlbF9rdW5pdC5jOjM1MTA6c3RhdGljIGNvbnN0IHN0cnVjdCB2Y2FwX3R5cGVncm91cCBpczBfeDFfa2V5ZmllbGRfc2V0X3R5cGVncm91cHNbXSA9IHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX21vZGVsX2t1bml0LmMtMzUxMS1cXHR7fVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9tb2RlbF9rdW5pdC5jLTM1MTMtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9tb2RlbF9rdW5pdC5jOjM1MTQ6c3RhdGljIGNvbnN0IHN0cnVjdCB2Y2FwX3R5cGVncm91cCBpczJfeDEyX2tleWZpZWxkX3NldF90eXBlZ3JvdXBzW10gPSB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9tb2RlbF9rdW5pdC5jLTM1MTUtXFx0e1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9tb2RlbF9rdW5pdC5jLTM1MzctXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9tb2RlbF9rdW5pdC5jOjM1Mzg6c3RhdGljIGNvbnN0IHN0cnVjdCB2Y2FwX3R5cGVncm91cCBpczJfeDZfa2V5ZmllbGRfc2V0X3R5cGVncm91cHNbXSA9IHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX21vZGVsX2t1bml0LmMtMzUzOS1cXHR7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX21vZGVsX2t1bml0LmMtMzU1MS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX21vZGVsX2t1bml0LmM6MzU1MjpzdGF0aWMgY29uc3Qgc3RydWN0IHZjYXBfdHlwZWdyb3VwIGlzMl94M19rZXlmaWVsZF9zZXRfdHlwZWdyb3Vwc1tdID0ge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfbW9kZWxfa3VuaXQuYy0zNTUzLVxcdHt9XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX21vZGVsX2t1bml0LmMtMzU1NS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX21vZGVsX2t1bml0LmM6MzU1NjpzdGF0aWMgY29uc3Qgc3RydWN0IHZjYXBfdHlwZWdyb3VwIGlzMl94MV9rZXlmaWVsZF9zZXRfdHlwZWdyb3Vwc1tdID0ge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfbW9kZWxfa3VuaXQuYy0zNTU3LVxcdHt9XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX21vZGVsX2t1bml0LmMtMzU1OS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX21vZGVsX2t1bml0LmM6MzU2MDpzdGF0aWMgY29uc3Qgc3RydWN0IHZjYXBfdHlwZWdyb3VwIGVzMl94MTJfa2V5ZmllbGRfc2V0X3R5cGVncm91cHNbXSA9IHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX21vZGVsX2t1bml0LmMtMzU2MS1cXHR7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX21vZGVsX2t1bml0LmMtMzU4My1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX21vZGVsX2t1bml0LmM6MzU4NDpzdGF0aWMgY29uc3Qgc3RydWN0IHZjYXBfdHlwZWdyb3VwIGVzMl94Nl9rZXlmaWVsZF9zZXRfdHlwZWdyb3Vwc1tdID0ge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfbW9kZWxfa3VuaXQuYy0zNTg1LVxcdHtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfbW9kZWxfa3VuaXQuYy0zNTk3LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfbW9kZWxfa3VuaXQuYzozNTk4OnN0YXRpYyBjb25zdCBzdHJ1Y3QgdmNhcF90eXBlZ3JvdXAgZXMyX3gzX2tleWZpZWxkX3NldF90eXBlZ3JvdXBzW10gPSB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9tb2RlbF9rdW5pdC5jLTM1OTktXFx0e1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9tb2RlbF9rdW5pdC5jLTM2MDYtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9tb2RlbF9rdW5pdC5jOjM2MDc6c3RhdGljIGNvbnN0IHN0cnVjdCB2Y2FwX3R5cGVncm91cCBlczJfeDFfa2V5ZmllbGRfc2V0X3R5cGVncm91cHNbXSA9IHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX21vZGVsX2t1bml0LmMtMzYwOC1cXHR7fVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9tb2RlbF9rdW5pdC5jLTM2MTAtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9tb2RlbF9rdW5pdC5jOjM2MTE6c3RhdGljIGNvbnN0IHN0cnVjdCB2Y2FwX3R5cGVncm91cCAqaXMwX2tleWZpZWxkX3NldF90eXBlZ3JvdXBzW10gPSB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9tb2RlbF9rdW5pdC5jLTM2MTItXFx0WzEyXSA9IGlzMF94MTJfa2V5ZmllbGRfc2V0X3R5cGVncm91cHMsXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX21vZGVsX2t1bml0LmMtMzYxOS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX21vZGVsX2t1bml0LmM6MzYyMDpzdGF0aWMgY29uc3Qgc3RydWN0IHZjYXBfdHlwZWdyb3VwICppczJfa2V5ZmllbGRfc2V0X3R5cGVncm91cHNbXSA9IHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX21vZGVsX2t1bml0LmMtMzYyMS1cXHRbMTJdID0gaXMyX3gxMl9rZXlmaWVsZF9zZXRfdHlwZWdyb3VwcyxcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfbW9kZWxfa3VuaXQuYy0zNjI3LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfbW9kZWxfa3VuaXQuYzozNjI4OnN0YXRpYyBjb25zdCBzdHJ1Y3QgdmNhcF90eXBlZ3JvdXAgKmVzMl9rZXlmaWVsZF9zZXRfdHlwZWdyb3Vwc1tdID0ge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfbW9kZWxfa3VuaXQuYy0zNjI5LVxcdFsxMl0gPSBlczJfeDEyX2tleWZpZWxkX3NldF90eXBlZ3JvdXBzLFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9tb2RlbF9rdW5pdC5jLTM2MzUtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9tb2RlbF9rdW5pdC5jOjM2MzY6c3RhdGljIGNvbnN0IHN0cnVjdCB2Y2FwX3R5cGVncm91cCBpczBfeDNfYWN0aW9uZmllbGRfc2V0X3R5cGVncm91cHNbXSA9IHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX21vZGVsX2t1bml0LmMtMzYzNy1cXHR7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX21vZGVsX2t1bml0LmMtMzY1NC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX21vZGVsX2t1bml0LmM6MzY1NTpzdGF0aWMgY29uc3Qgc3RydWN0IHZjYXBfdHlwZWdyb3VwIGlzMF94Ml9hY3Rpb25maWVsZF9zZXRfdHlwZWdyb3Vwc1tdID0ge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfbW9kZWxfa3VuaXQuYy0zNjU2LVxcdHtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfbW9kZWxfa3VuaXQuYy0zNjY4LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfbW9kZWxfa3VuaXQuYzozNjY5OnN0YXRpYyBjb25zdCBzdHJ1Y3QgdmNhcF90eXBlZ3JvdXAgaXMwX3gxX2FjdGlvbmZpZWxkX3NldF90eXBlZ3JvdXBzW10gPSB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9tb2RlbF9rdW5pdC5jLTM2NzAtXFx0e1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9tb2RlbF9rdW5pdC5jLTM2NzctXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9tb2RlbF9rdW5pdC5jOjM2Nzg6c3RhdGljIGNvbnN0IHN0cnVjdCB2Y2FwX3R5cGVncm91cCBpczJfeDNfYWN0aW9uZmllbGRfc2V0X3R5cGVncm91cHNbXSA9IHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX21vZGVsX2t1bml0LmMtMzY3OS1cXHR7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX21vZGVsX2t1bml0LmMtMzY5Ni1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX21vZGVsX2t1bml0LmM6MzY5NzpzdGF0aWMgY29uc3Qgc3RydWN0IHZjYXBfdHlwZWdyb3VwIGlzMl94MV9hY3Rpb25maWVsZF9zZXRfdHlwZWdyb3Vwc1tdID0ge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfbW9kZWxfa3VuaXQuYy0zNjk4LVxcdHt9XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX21vZGVsX2t1bml0LmMtMzcwMC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX21vZGVsX2t1bml0LmM6MzcwMTpzdGF0aWMgY29uc3Qgc3RydWN0IHZjYXBfdHlwZWdyb3VwIGVzMl94M19hY3Rpb25maWVsZF9zZXRfdHlwZWdyb3Vwc1tdID0ge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfbW9kZWxfa3VuaXQuYy0zNzAyLVxcdHtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfbW9kZWxfa3VuaXQuYy0zNzE5LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfbW9kZWxfa3VuaXQuYzozNzIwOnN0YXRpYyBjb25zdCBzdHJ1Y3QgdmNhcF90eXBlZ3JvdXAgZXMyX3gxX2FjdGlvbmZpZWxkX3NldF90eXBlZ3JvdXBzW10gPSB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9tb2RlbF9rdW5pdC5jLTM3MjEtXFx0e31cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfbW9kZWxfa3VuaXQuYy0zNzIzLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfbW9kZWxfa3VuaXQuYzozNzI0OnN0YXRpYyBjb25zdCBzdHJ1Y3QgdmNhcF90eXBlZ3JvdXAgKmlzMF9hY3Rpb25maWVsZF9zZXRfdHlwZWdyb3Vwc1tdID0ge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfbW9kZWxfa3VuaXQuYy0zNzI1LVxcdFszXSA9IGlzMF94M19hY3Rpb25maWVsZF9zZXRfdHlwZWdyb3VwcyxcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfbW9kZWxfa3VuaXQuYy0zNzMwLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfbW9kZWxfa3VuaXQuYzozNzMxOnN0YXRpYyBjb25zdCBzdHJ1Y3QgdmNhcF90eXBlZ3JvdXAgKmlzMl9hY3Rpb25maWVsZF9zZXRfdHlwZWdyb3Vwc1tdID0ge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfbW9kZWxfa3VuaXQuYy0zNzMyLVxcdFszXSA9IGlzMl94M19hY3Rpb25maWVsZF9zZXRfdHlwZWdyb3VwcyxcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfbW9kZWxfa3VuaXQuYy0zNzM2LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfbW9kZWxfa3VuaXQuYzozNzM3OnN0YXRpYyBjb25zdCBzdHJ1Y3QgdmNhcF90eXBlZ3JvdXAgKmVzMl9hY3Rpb25maWVsZF9zZXRfdHlwZWdyb3Vwc1tdID0ge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfbW9kZWxfa3VuaXQuYy0zNzM4LVxcdFszXSA9IGVzMl94M19hY3Rpb25maWVsZF9zZXRfdHlwZWdyb3VwcyxcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfbW9kZWxfa3VuaXQuYy0zNzQzLS8qIEtleWZpZWxkc2V0IG5hbWVzICovXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9tb2RlbF9rdW5pdC5jOjM3NDQ6c3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCB2Y2FwX2tleWZpZWxkX3NldF9uYW1lc1tdID0ge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfbW9kZWxfa3VuaXQuYy0zNzQ1LVxcdFtWQ0FQX0tGU19OT19WQUxVRV0gICAgICAgICAgICAgICAgICAgICAgPSAgXFxcIihOb25lKVxcXCIsXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX21vZGVsX2t1bml0LmMtMzc2OS0vKiBBY3Rpb25maWVsZHNldCBuYW1lcyAqL1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfbW9kZWxfa3VuaXQuYzozNzcwOnN0YXRpYyBjb25zdCBjaGFyICogY29uc3QgdmNhcF9hY3Rpb25maWVsZF9zZXRfbmFtZXNbXSA9IHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX21vZGVsX2t1bml0LmMtMzc3MS1cXHRbVkNBUF9BRlNfTk9fVkFMVUVdICAgICAgICAgICAgICAgICAgICAgID0gIFxcXCIoTm9uZSlcXFwiLFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9tb2RlbF9rdW5pdC5jLTM3ODAtLyogS2V5ZmllbGQgbmFtZXMgKi9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX21vZGVsX2t1bml0LmM6Mzc4MTpzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IHZjYXBfa2V5ZmllbGRfbmFtZXNbXSA9IHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX21vZGVsX2t1bml0LmMtMzc4Mi1cXHRbVkNBUF9LRl9OT19WQUxVRV0gICAgICAgICAgICAgICAgICAgICAgID0gIFxcXCIoTm9uZSlcXFwiLFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9tb2RlbF9rdW5pdC5jLTM4OTgtLyogQWN0aW9uZmllbGQgbmFtZXMgKi9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX21vZGVsX2t1bml0LmM6Mzg5OTpzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IHZjYXBfYWN0aW9uZmllbGRfbmFtZXNbXSA9IHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX21vZGVsX2t1bml0LmMtMzkwMC1cXHRbVkNBUF9BRl9OT19WQUxVRV0gICAgICAgICAgICAgICAgICAgICAgID0gIFxcXCIoTm9uZSlcXFwiLFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9tb2RlbF9rdW5pdC5jLTM5ODgtLyogVkNBUHMgKi9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX21vZGVsX2t1bml0LmM6Mzk4OTpjb25zdCBzdHJ1Y3QgdmNhcF9pbmZvIGt1bml0X3Rlc3RfdmNhcHNbXSA9IHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX21vZGVsX2t1bml0LmMtMzk5MC1cXHRbVkNBUF9UWVBFX0lTMF0gPSB7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX21vZGVsX2t1bml0LmMtNDA1NC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX21vZGVsX2t1bml0LmM6NDA1NTpjb25zdCBzdHJ1Y3QgdmNhcF9zdGF0aXN0aWNzIGt1bml0X3Rlc3RfdmNhcF9zdGF0cyA9IHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX21vZGVsX2t1bml0LmMtNDA1Ni1cXHQubmFtZSA9IFxcXCJrdW5pdF90ZXN0XFxcIixcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX21vZGVsX2t1bml0LmMtNDA1Ny1cXHQuY291bnQgPSAzLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfbW9kZWxfa3VuaXQuYzo0MDU4OlxcdC5rZXlmaWVsZF9zZXRfbmFtZXMgPSB2Y2FwX2tleWZpZWxkX3NldF9uYW1lcyxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX21vZGVsX2t1bml0LmM6NDA1OTpcXHQuYWN0aW9uZmllbGRfc2V0X25hbWVzID0gdmNhcF9hY3Rpb25maWVsZF9zZXRfbmFtZXMsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9tb2RlbF9rdW5pdC5jOjQwNjA6XFx0LmtleWZpZWxkX25hbWVzID0gdmNhcF9rZXlmaWVsZF9uYW1lcyxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX21vZGVsX2t1bml0LmM6NDA2MTpcXHQuYWN0aW9uZmllbGRfbmFtZXMgPSB2Y2FwX2FjdGlvbmZpZWxkX25hbWVzLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfbW9kZWxfa3VuaXQuYy00MDYyLX07XFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTI5VDEwOjI3OjQyLjg1MDc3Mjc2M1oiLCJTZXEiOjI1LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo0NzEzNDg3MDU4LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJPa2F5LCBoZXJlJ3MgbXkgaW50ZXJwcmV0YXRpb24gb2YgdGhvc2UgdGhvdWdodHMsIHRhaWxvcmVkIGZvciBhbiBleHBlcnQgYXVkaWVuY2U6XG5cbioqSW52ZXN0aWdhdGluZyBLVW5pdCBUZXN0IEltcGxlbWVudGF0aW9uIGluIHRoZSB2Y2FwIFN1YnN5c3RlbSoqXG5cbkFscmlnaHQsIGxvb2tpbmcgYXQgdGhlIGNvZGUgc3RydWN0dXJlLCBgdmNhcF9tb2RlbF9rdW5pdC5jYCBzZWVtcyBzdHJhaWdodGZvcndhcmQuIEl0IGFwcGVhcnMgdG8gcHJpbWFyaWx5IGRlZmluZSB0aGUgZGF0YSBzdHJ1Y3R1cmVzIGFuZCBwb3NzaWJseSBtb2NrIGZ1bmN0aW9ucyBmb3IgdGhlIEtVbml0IHRlc3RzIHJlbGF0ZWQgdG8gdGhlIHZjYXAgc3Vic3lzdGVtLiBUaGUgcmVhbCBxdWVzdGlvbiBpcywgd2hlcmUgYXJlIHRoZSAqYWN0dWFsKiB0ZXN0cyBkZWZpbmVkPyBJJ20gZ29pbmcgdG8gcXVpY2tseSBjaGVjayBpbiB0aGUgYWRqYWNlbnQgZmlsZXMsIHNwZWNpZmljYWxseSBgdmNhcF9hcGlfa3VuaXQuY2AsIGFuZCBwb3RlbnRpYWxseSBhbnkgb3RoZXIgYCprdW5pdC5jYCBmaWxlcyB3aXRoaW4gdGhlIGB2Y2FwYCBkaXJlY3RvcnkuIEknbSBleHBlY3RpbmcgdG8gZmluZCB0aGUgdGVzdCBjYXNlcywgc2V0dXAgYW5kIHRlYXJkb3duIHJvdXRpbmVzLCBhbmQgdGhlIGFzc2VydGlvbnMgd2l0aGluIHRob3NlIGZpbGVzLiBJJ20gaG9waW5nIGl0J3MgY2xlYXJseSBkZWxpbmVhdGVkIGJldHdlZW4gbW9kZWwgYW5kIHRlc3QgZGVmaW5pdGlvbnMgdG8gaGVscCB3aXRoIG1haW50YWluYWJpbGl0eS5cblxuXG4iLCJJbnB1dFRva2VucyI6MTc3NTYsIk91dHB1dFRva2VucyI6NDUsIk91dHB1dFRob3VnaHRzVG9rZW5zIjo0OCwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0yOVQxMDoyNzo0Ny41NjQyNjMzODFaIiwiU2VxIjoyNiwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjcwNzgwMTE3MywiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJ2Y2FwX1wiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJkcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcIlxcbkZ1bGwgb3V0cHV0IGlzIHRvbyBsb25nLCBzaG93aW5nIDUwMCBvdXQgb2YgMTI1MSBsaW5lcy5cXG5Vc2UgbW9yZSBwcmVjaXNlIGV4cHJlc3Npb24gaWYgcG9zc2libGUuXFxuXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfa3VuaXQuYy02LSNpbmNsdWRlIFxcdTAwM2NrdW5pdC90ZXN0LmhcXHUwMDNlXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfa3VuaXQuYzo3OiNpbmNsdWRlIFxcXCJ2Y2FwX2FwaS5oXFxcIlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmM6ODojaW5jbHVkZSBcXFwidmNhcF9hcGlfY2xpZW50LmhcXFwiXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfa3VuaXQuYzo5OiNpbmNsdWRlIFxcXCJ2Y2FwX21vZGVsX2t1bml0LmhcXFwiXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfa3VuaXQuYy0xMC1cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmM9MjM9c3RhdGljIHUzMiB0ZXN0X2h3X2NvdW50ZXJfaWQ7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfa3VuaXQuYzoyNDpzdGF0aWMgc3RydWN0IHZjYXBfY2FjaGVfZGF0YSB0ZXN0X2h3X2NhY2hlO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmMtMjUtc3RhdGljIHN0cnVjdCBuZXRfZGV2aWNlIHRlc3RfbmV0ZGV2ID0ge307XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jPTI4PXN0YXRpYyBpbnQgdGVzdF9tb3ZlX2NvdW50O1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfa3VuaXQuYy0zMC0vKiBDYWxsYmFjayB1c2VkIGJ5IHRoZSBWQ0FQIEFQSSAqL1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmM6MzE6c3RhdGljIGVudW0gdmNhcF9rZXlmaWVsZF9zZXQgdGVzdF92YWxfa2V5c2V0KHN0cnVjdCBuZXRfZGV2aWNlICpuZGV2LFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmM6MzI6XFx0XFx0XFx0XFx0XFx0ICAgICAgc3RydWN0IHZjYXBfYWRtaW4gKmFkbWluLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmM6MzM6XFx0XFx0XFx0XFx0XFx0ICAgICAgc3RydWN0IHZjYXBfcnVsZSAqcnVsZSxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jOjM0OlxcdFxcdFxcdFxcdFxcdCAgICAgIHN0cnVjdCB2Y2FwX2tleXNldF9saXN0ICprc2xpc3QsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfa3VuaXQuYy0zNS1cXHRcXHRcXHRcXHRcXHQgICAgICB1MTYgbDNfcHJvdG8pXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jPTczPXN0YXRpYyB2b2lkIHRlc3RfYWRkX2RlZl9maWVsZHMoc3RydWN0IG5ldF9kZXZpY2UgKm5kZXYsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfa3VuaXQuYzo3NDpcXHRcXHRcXHRcXHRzdHJ1Y3QgdmNhcF9hZG1pbiAqYWRtaW4sXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfa3VuaXQuYzo3NTpcXHRcXHRcXHRcXHRzdHJ1Y3QgdmNhcF9ydWxlICpydWxlKVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmMtNzYte1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmMtNzctXFx0aWYgKGFkbWluLVxcdTAwM2V2aW5zdCA9PSAwIHx8IGFkbWluLVxcdTAwM2V2aW5zdCA9PSAyKVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmM6Nzg6XFx0XFx0dmNhcF9ydWxlX2FkZF9rZXlfYml0KHJ1bGUsIFZDQVBfS0ZfTE9PS1VQX0ZJUlNUX0lTLCBWQ0FQX0JJVF8xKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jLTc5LVxcdGVsc2VcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jOjgwOlxcdFxcdHZjYXBfcnVsZV9hZGRfa2V5X2JpdChydWxlLCBWQ0FQX0tGX0xPT0tVUF9GSVJTVF9JUywgVkNBUF9CSVRfMCk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfa3VuaXQuYy04MS19XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jLTgzLS8qIENhbGxiYWNrIHVzZWQgYnkgdGhlIFZDQVAgQVBJICovXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfa3VuaXQuYzo4NDpzdGF0aWMgdm9pZCB0ZXN0X2NhY2hlX2VyYXNlKHN0cnVjdCB2Y2FwX2FkbWluICphZG1pbilcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jLTg1LXtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmMtOTQtLyogQ2FsbGJhY2sgdXNlZCBieSB0aGUgVkNBUCBBUEkgKi9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jOjk1OnN0YXRpYyB2b2lkIHRlc3RfY2FjaGVfaW5pdChzdHJ1Y3QgbmV0X2RldmljZSAqbmRldiwgc3RydWN0IHZjYXBfYWRtaW4gKmFkbWluLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmMtOTYtXFx0XFx0XFx0ICAgIHUzMiBzdGFydCwgdTMyIGNvdW50KVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfa3VuaXQuYy0xMDItLyogQ2FsbGJhY2sgdXNlZCBieSB0aGUgVkNBUCBBUEkgKi9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jOjEwMzpzdGF0aWMgdm9pZCB0ZXN0X2NhY2hlX3JlYWQoc3RydWN0IG5ldF9kZXZpY2UgKm5kZXYsIHN0cnVjdCB2Y2FwX2FkbWluICphZG1pbixcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jOjEwNDpcXHRcXHRcXHQgICAgZW51bSB2Y2FwX3NlbGVjdGlvbiBzZWwsIHUzMiBzdGFydCwgdTMyIGNvdW50KVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmMtMTA1LXtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmMtMTQ0LS8qIENhbGxiYWNrIHVzZWQgYnkgdGhlIFZDQVAgQVBJICovXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfa3VuaXQuYzoxNDU6c3RhdGljIHZvaWQgdGVzdF9jYWNoZV93cml0ZShzdHJ1Y3QgbmV0X2RldmljZSAqbmRldiwgc3RydWN0IHZjYXBfYWRtaW4gKmFkbWluLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmM6MTQ2OlxcdFxcdFxcdCAgICAgZW51bSB2Y2FwX3NlbGVjdGlvbiBzZWwsIHUzMiBzdGFydCwgdTMyIGNvdW50KVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmMtMTQ3LXtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmMtMTg2LS8qIENhbGxiYWNrIHVzZWQgYnkgdGhlIFZDQVAgQVBJICovXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfa3VuaXQuYzoxODc6c3RhdGljIHZvaWQgdGVzdF9jYWNoZV91cGRhdGUoc3RydWN0IG5ldF9kZXZpY2UgKm5kZXYsIHN0cnVjdCB2Y2FwX2FkbWluICphZG1pbixcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jOjE4ODpcXHRcXHRcXHQgICAgICBlbnVtIHZjYXBfY29tbWFuZCBjbWQsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfa3VuaXQuYzoxODk6XFx0XFx0XFx0ICAgICAgZW51bSB2Y2FwX3NlbGVjdGlvbiBzZWwsIHUzMiBhZGRyKVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmMtMTkwLXtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmMtMTk3LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmM6MTk4OnN0YXRpYyB2b2lkIHRlc3RfY2FjaGVfbW92ZShzdHJ1Y3QgbmV0X2RldmljZSAqbmRldiwgc3RydWN0IHZjYXBfYWRtaW4gKmFkbWluLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmMtMTk5LVxcdFxcdFxcdCAgICB1MzIgYWRkciwgaW50IG9mZnNldCwgaW50IGNvdW50KVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfa3VuaXQuYy0yMDYtLyogUHJvdmlkZSBwb3J0IGluZm9ybWF0aW9uIHZpYSBhIGNhbGxiYWNrIGludGVyZmFjZSAqL1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmM6MjA3OnN0YXRpYyBpbnQgdmNhcF90ZXN0X3BvcnRfaW5mbyhzdHJ1Y3QgbmV0X2RldmljZSAqbmRldixcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jOjIwODpcXHRcXHRcXHQgICAgICAgc3RydWN0IHZjYXBfYWRtaW4gKmFkbWluLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmM6MjA5OlxcdFxcdFxcdCAgICAgICBzdHJ1Y3QgdmNhcF9vdXRwdXRfcHJpbnQgKm91dClcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jLTIxMC17XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jLTIxMy1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jOjIxNDpzdGF0aWMgY29uc3Qgc3RydWN0IHZjYXBfb3BlcmF0aW9ucyB0ZXN0X2NhbGxiYWNrcyA9IHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jLTIxNS1cXHQudmFsaWRhdGVfa2V5c2V0ID0gdGVzdF92YWxfa2V5c2V0LFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfa3VuaXQuYy0yMjItXFx0Lm1vdmUgPSB0ZXN0X2NhY2hlX21vdmUsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfa3VuaXQuYzoyMjM6XFx0LnBvcnRfaW5mbyA9IHZjYXBfdGVzdF9wb3J0X2luZm8sXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfa3VuaXQuYy0yMjQtfTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jLTIyNS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jOjIyNjpzdGF0aWMgc3RydWN0IHZjYXBfY29udHJvbCB0ZXN0X3ZjdHJsID0ge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmMtMjI3LVxcdC52Y2FwcyA9IGt1bml0X3Rlc3RfdmNhcHMsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfa3VuaXQuYzoyMjg6XFx0LnN0YXRzID0gXFx1MDAyNmt1bml0X3Rlc3RfdmNhcF9zdGF0cyxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jLTIyOS1cXHQub3BzID0gXFx1MDAyNnRlc3RfY2FsbGJhY2tzLFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfa3VuaXQuYy0yMzEtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfa3VuaXQuYzoyMzI6c3RhdGljIHZvaWQgdmNhcF90ZXN0X2FwaV9pbml0KHN0cnVjdCB2Y2FwX2FkbWluICphZG1pbilcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jLTIzMy17XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jLTI0Ni0vKiBIZWxwZXIgZnVuY3Rpb24gdG8gY3JlYXRlIGEgcnVsZSBvZiBhIHNwZWNpZmljIHNpemUgKi9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jOjI0NzpzdGF0aWMgdm9pZCB0ZXN0X3ZjYXBfeG5fcnVsZV9jcmVhdG9yKHN0cnVjdCBrdW5pdCAqdGVzdCwgaW50IGNpZCxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jOjI0ODpcXHRcXHRcXHRcXHQgICAgICBlbnVtIHZjYXBfdXNlciB1c2VyLCB1MTYgcHJpb3JpdHksXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfa3VuaXQuYy0yNDktXFx0XFx0XFx0XFx0ICAgICAgaW50IGlkLCBpbnQgc2l6ZSwgaW50IGV4cGVjdGVkX2FkZHIpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfa3VuaXQuYy0yNTAte1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmM6MjUxOlxcdHN0cnVjdCB2Y2FwX3J1bGUgKnJ1bGU7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfa3VuaXQuYzoyNTI6XFx0c3RydWN0IHZjYXBfcnVsZV9pbnRlcm5hbCAqcmk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfa3VuaXQuYzoyNTM6XFx0ZW51bSB2Y2FwX2tleWZpZWxkX3NldCBrZXlzZXQgPSBWQ0FQX0tGU19OT19WQUxVRTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jOjI1NDpcXHRlbnVtIHZjYXBfYWN0aW9uZmllbGRfc2V0IGFjdGlvbnNldCA9IFZDQVBfQUZTX05PX1ZBTFVFO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmMtMjU1LVxcdGludCByZXQ7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jLTI4OC1cXHQvKiBBbGxvY2F0ZSB0aGUgcnVsZSAqL1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmM6Mjg5OlxcdHJ1bGUgPSB2Y2FwX2FsbG9jX3J1bGUoXFx1MDAyNnRlc3RfdmN0cmwsIFxcdTAwMjZ0ZXN0X25ldGRldiwgY2lkLCB1c2VyLCBwcmlvcml0eSxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jLTI5MC1cXHRcXHRcXHQgICAgICAgaWQpO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfa3VuaXQuYy0yOTItXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfa3VuaXQuYzoyOTM6XFx0cmkgPSAoc3RydWN0IHZjYXBfcnVsZV9pbnRlcm5hbCAqKXJ1bGU7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfa3VuaXQuYy0yOTQtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfa3VuaXQuYy0yOTUtXFx0LyogT3ZlcnJpZGUgcnVsZSBrZXlzZXQgKi9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jOjI5NjpcXHRyZXQgPSB2Y2FwX3NldF9ydWxlX3NldF9rZXlzZXQocnVsZSwga2V5c2V0KTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jLTI5Ny1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jLTI5OC1cXHQvKiBBZGQgcnVsZSBhY3Rpb25zIDogdGhlcmUgbXVzdCBiZSBhdCBsZWFzdCBvbmUgYWN0aW9uICovXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfa3VuaXQuYzoyOTk6XFx0cmV0ID0gdmNhcF9ydWxlX2FkZF9hY3Rpb25fdTMyKHJ1bGUsIFZDQVBfQUZfSVNEWF9WQUwsIDApO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmMtMzAwLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmMtMzAxLVxcdC8qIE92ZXJyaWRlIHJ1bGUgYWN0aW9uc2V0ICovXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfa3VuaXQuYzozMDI6XFx0cmV0ID0gdmNhcF9zZXRfcnVsZV9zZXRfYWN0aW9uc2V0KHJ1bGUsIGFjdGlvbnNldCk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfa3VuaXQuYy0zMDMtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfa3VuaXQuYzozMDQ6XFx0cmV0ID0gdmNhcF92YWxfcnVsZShydWxlLCBFVEhfUF9BTEwpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmMtMzA1LVxcdEtVTklUX0VYUEVDVF9FUSh0ZXN0LCAwLCByZXQpO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfa3VuaXQuYy0zMTAtXFx0LyogQWRkIHJ1bGUgd2l0aCB3cml0ZSBjYWxsYmFjayAqL1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmM6MzExOlxcdHJldCA9IHZjYXBfYWRkX3J1bGUocnVsZSk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfa3VuaXQuYy0zMTItXFx0S1VOSVRfRVhQRUNUX0VRKHRlc3QsIDAsIHJldCk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfa3VuaXQuYy0zMTMtXFx0S1VOSVRfRVhQRUNUX0VRKHRlc3QsIGV4cGVjdGVkX2FkZHIsIHJpLVxcdTAwM2VhZGRyKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jOjMxNDpcXHR2Y2FwX2ZyZWVfcnVsZShydWxlKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jLTMxNS19XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jPTMxOD1zdGF0aWMgdm9pZCB0ZXN0X2luaXRfcnVsZV9kZWxldGlvbih2b2lkKVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfa3VuaXQuYy0zMjgtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfa3VuaXQuYzozMjk6c3RhdGljIHZvaWQgdmNhcF9hcGlfc2V0X2JpdF8xX3Rlc3Qoc3RydWN0IGt1bml0ICp0ZXN0KVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmMtMzMwLXtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jOjMzMTpcXHRzdHJ1Y3QgdmNhcF9zdHJlYW1faXRlciBpdGVyID0ge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmMtMzMyLVxcdFxcdC5vZmZzZXQgPSAzNSxcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmMtMzM5LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmM6MzQwOlxcdHZjYXBfc2V0X2JpdChzdHJlYW0sIFxcdTAwMjZpdGVyLCAxKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jLTM0MS1cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmMtMzQ1LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmM6MzQ2OnN0YXRpYyB2b2lkIHZjYXBfYXBpX3NldF9iaXRfMF90ZXN0KHN0cnVjdCBrdW5pdCAqdGVzdClcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jLTM0Ny17XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfa3VuaXQuYzozNDg6XFx0c3RydWN0IHZjYXBfc3RyZWFtX2l0ZXIgaXRlciA9IHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jLTM0OS1cXHRcXHQub2Zmc2V0ID0gMzUsXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jLTM1Ni1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jOjM1NzpcXHR2Y2FwX3NldF9iaXQoc3RyZWFtLCBcXHUwMDI2aXRlciwgMCk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfa3VuaXQuYy0zNTgtXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jLTM2My1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jOjM2NDpzdGF0aWMgdm9pZCB2Y2FwX2FwaV9pdGVyYXRvcl9pbml0X3Rlc3Qoc3RydWN0IGt1bml0ICp0ZXN0KVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmMtMzY1LXtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jOjM2NjpcXHRzdHJ1Y3QgdmNhcF9zdHJlYW1faXRlciBpdGVyO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmM6MzY3OlxcdHN0cnVjdCB2Y2FwX3R5cGVncm91cCB0eXBlZ3JvdXBzW10gPSB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfa3VuaXQuYy0zNjgtXFx0XFx0eyAub2Zmc2V0ID0gMCwgLndpZHRoID0gMiwgLnZhbHVlID0gMiwgfSxcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmMtMzcxLVxcdH07XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfa3VuaXQuYzozNzI6XFx0c3RydWN0IHZjYXBfdHlwZWdyb3VwIHR5cGVncm91cHMyW10gPSB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfa3VuaXQuYy0zNzMtXFx0XFx0eyAub2Zmc2V0ID0gMCwgLndpZHRoID0gMywgLnZhbHVlID0gNCwgfSxcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmMtMzc4LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmM6Mzc5OlxcdHZjYXBfaXRlcl9pbml0KFxcdTAwMjZpdGVyLCA1MiwgdHlwZWdyb3VwcywgODYpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmMtMzgwLVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfa3VuaXQuYy0zODUtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfa3VuaXQuYzozODY6XFx0dmNhcF9pdGVyX2luaXQoXFx1MDAyNml0ZXIsIDQ5LCB0eXBlZ3JvdXBzMiwgMTM0KTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jLTM4Ny1cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmMtMzkzLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmM6Mzk0OnN0YXRpYyB2b2lkIHZjYXBfYXBpX2l0ZXJhdG9yX25leHRfdGVzdChzdHJ1Y3Qga3VuaXQgKnRlc3QpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfa3VuaXQuYy0zOTUte1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmM6Mzk2OlxcdHN0cnVjdCB2Y2FwX3N0cmVhbV9pdGVyIGl0ZXI7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfa3VuaXQuYzozOTc6XFx0c3RydWN0IHZjYXBfdHlwZWdyb3VwIHR5cGVncm91cHNbXSA9IHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jLTM5OC1cXHRcXHR7IC5vZmZzZXQgPSAwLCAud2lkdGggPSA0LCAudmFsdWUgPSA4LCB9LFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfa3VuaXQuYy00MDctXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfa3VuaXQuYzo0MDg6XFx0dmNhcF9pdGVyX2luaXQoXFx1MDAyNml0ZXIsIDQ5LCB0eXBlZ3JvdXBzLCA4Nik7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfa3VuaXQuYy00MDktXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jLTQxNC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jOjQxNTpcXHR2Y2FwX2l0ZXJfbmV4dChcXHUwMDI2aXRlcik7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfa3VuaXQuYy00MTYtXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jLTQyMS1cXHRmb3IgKGlkeCA9IDA7IGlkeCBcXHUwMDNjIDY7IGlkeCsrKVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmM6NDIyOlxcdFxcdHZjYXBfaXRlcl9uZXh0KFxcdTAwMjZpdGVyKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jLTQyMy1cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmMtNDI4LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmM6NDI5OnN0YXRpYyB2b2lkIHZjYXBfYXBpX2VuY29kZV90eXBlZ3JvdXBzX3Rlc3Qoc3RydWN0IGt1bml0ICp0ZXN0KVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmMtNDMwLXtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jLTQzMS1cXHR1MzIgc3RyZWFtWzEyXSA9IHswfTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jOjQzMjpcXHRzdHJ1Y3QgdmNhcF90eXBlZ3JvdXAgdHlwZWdyb3Vwc1tdID0ge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmMtNDMzLVxcdFxcdHsgLm9mZnNldCA9IDAsIC53aWR0aCA9IDQsIC52YWx1ZSA9IDgsIH0sXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jLTQ0MS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jOjQ0MjpcXHR2Y2FwX2VuY29kZV90eXBlZ3JvdXBzKHN0cmVhbSwgNDksIHR5cGVncm91cHMsIGZhbHNlKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jLTQ0My1cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmMtNDU3LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmM6NDU4OnN0YXRpYyB2b2lkIHZjYXBfYXBpX2VuY29kZV9iaXRfdGVzdChzdHJ1Y3Qga3VuaXQgKnRlc3QpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfa3VuaXQuYy00NTkte1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmM6NDYwOlxcdHN0cnVjdCB2Y2FwX3N0cmVhbV9pdGVyIGl0ZXI7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfa3VuaXQuYy00NjEtXFx0dTMyIHN0cmVhbVs0XSA9IHswfTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jOjQ2MjpcXHRzdHJ1Y3QgdmNhcF90eXBlZ3JvdXAgdHlwZWdyb3Vwc1tdID0ge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmMtNDYzLVxcdFxcdHsgLm9mZnNldCA9IDAsIC53aWR0aCA9IDQsIC52YWx1ZSA9IDgsIH0sXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jLTQ3MS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jOjQ3MjpcXHR2Y2FwX2l0ZXJfaW5pdChcXHUwMDI2aXRlciwgNDksIHR5cGVncm91cHMsIDQ0KTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jLTQ3My1cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmMtNDc3LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmM6NDc4OlxcdHZjYXBfZW5jb2RlX2JpdChzdHJlYW0sIFxcdTAwMjZpdGVyLCAxKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jLTQ3OS1cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmMtNDg0LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmM6NDg1OnN0YXRpYyB2b2lkIHZjYXBfYXBpX2VuY29kZV9maWVsZF90ZXN0KHN0cnVjdCBrdW5pdCAqdGVzdClcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jLTQ4Ni17XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfa3VuaXQuYzo0ODc6XFx0c3RydWN0IHZjYXBfc3RyZWFtX2l0ZXIgaXRlcjtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jLTQ4OC1cXHR1MzIgc3RyZWFtWzE2XSA9IHswfTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jOjQ4OTpcXHRzdHJ1Y3QgdmNhcF90eXBlZ3JvdXAgdHlwZWdyb3Vwc1tdID0ge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmMtNDkwLVxcdFxcdHsgLm9mZnNldCA9IDAsIC53aWR0aCA9IDQsIC52YWx1ZSA9IDgsIH0sXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jLTQ5Ny1cXHR9O1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmM6NDk4OlxcdHN0cnVjdCB2Y2FwX2ZpZWxkIHJmID0ge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmMtNDk5LVxcdFxcdC50eXBlID0gVkNBUF9GSUVMRF9VMzIsXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jLTUwNC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jOjUwNTpcXHR2Y2FwX2l0ZXJfaW5pdChcXHUwMDI2aXRlciwgNDksIHR5cGVncm91cHMsIHJmLm9mZnNldCk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfa3VuaXQuYy01MDYtXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jLTUxMC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jOjUxMTpcXHR2Y2FwX2VuY29kZV9maWVsZChzdHJlYW0sIFxcdTAwMjZpdGVyLCByZi53aWR0aCwgdmFsdWUpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmMtNTEyLVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfa3VuaXQuYy01MTgtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfa3VuaXQuYzo1MTk6XFx0dmNhcF9lbmNvZGVfdHlwZWdyb3VwcyhzdHJlYW0sIDQ5LCB0eXBlZ3JvdXBzLCBmYWxzZSk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfa3VuaXQuYy01MjAtXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jLTUzNS0vKiBJbiB0aGlzIHRlc3RjYXNlIHRoZSBzdWJ3b3JkIGlzIHNtYWxsZXIgdGhhbiBhIHJlZ2lzdGVyICovXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfa3VuaXQuYzo1MzY6c3RhdGljIHZvaWQgdmNhcF9hcGlfZW5jb2RlX3Nob3J0X2ZpZWxkX3Rlc3Qoc3RydWN0IGt1bml0ICp0ZXN0KVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmMtNTM3LXtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jOjUzODpcXHRzdHJ1Y3QgdmNhcF9zdHJlYW1faXRlciBpdGVyO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmMtNTM5LVxcdGludCBzd193aWR0aCA9IDIxO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmMtNTQwLVxcdHUzMiBzdHJlYW1bNl0gPSB7MH07XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfa3VuaXQuYzo1NDE6XFx0c3RydWN0IHZjYXBfdHlwZWdyb3VwIHRndFtdID0ge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmMtNTQyLVxcdFxcdHsgLm9mZnNldCA9IDAsIC53aWR0aCA9IDMsIC52YWx1ZSA9IDcsIH0sXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jLTU0Ni1cXHR9O1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmM6NTQ3OlxcdHN0cnVjdCB2Y2FwX2ZpZWxkIHJmID0ge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmMtNTQ4LVxcdFxcdC50eXBlID0gVkNBUF9GSUVMRF9VMzIsXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jLTU1My1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jOjU1NDpcXHR2Y2FwX2l0ZXJfaW5pdChcXHUwMDI2aXRlciwgc3dfd2lkdGgsIHRndCwgcmYub2Zmc2V0KTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jLTU1NS1cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmMtNTYxLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmM6NTYyOlxcdHZjYXBfZW5jb2RlX2ZpZWxkKHN0cmVhbSwgXFx1MDAyNml0ZXIsIHJmLndpZHRoLCB2YWx1ZSk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfa3VuaXQuYy01NjMtXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jLTU3MC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jOjU3MTpcXHR2Y2FwX2VuY29kZV90eXBlZ3JvdXBzKHN0cmVhbSwgc3dfd2lkdGgsIHRndCwgZmFsc2UpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmMtNTcyLVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfa3VuaXQuYy01ODAtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfa3VuaXQuYzo1ODE6c3RhdGljIHZvaWQgdmNhcF9hcGlfZW5jb2RlX2tleWZpZWxkX3Rlc3Qoc3RydWN0IGt1bml0ICp0ZXN0KVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmMtNTgyLXtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmMtNTg0LVxcdHUzMiBtYXNrd29yZHNbMTZdID0gezB9O1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmM6NTg1OlxcdHN0cnVjdCB2Y2FwX2FkbWluIGFkbWluID0ge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmMtNTg2LVxcdFxcdC52dHlwZSA9IFZDQVBfVFlQRV9JUzIsXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jLTU5Mi1cXHR9O1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmM6NTkzOlxcdHN0cnVjdCB2Y2FwX3J1bGVfaW50ZXJuYWwgcnVsZSA9IHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jLTU5NC1cXHRcXHQuYWRtaW4gPSBcXHUwMDI2YWRtaW4sXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jLTU5OS1cXHR9O1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmM6NjAwOlxcdHN0cnVjdCB2Y2FwX2NsaWVudF9rZXlmaWVsZCBja2YgPSB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfa3VuaXQuYy02MDEtXFx0XFx0LmN0cmwubGlzdCA9IHt9LFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfa3VuaXQuYy02MDYtXFx0fTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jOjYwNzpcXHRzdHJ1Y3QgdmNhcF9maWVsZCByZiA9IHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jLTYwOC1cXHRcXHQudHlwZSA9IFZDQVBfRklFTERfVTMyLFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfa3VuaXQuYy02MTEtXFx0fTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jOjYxMjpcXHRzdHJ1Y3QgdmNhcF90eXBlZ3JvdXAgdGd0W10gPSB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfa3VuaXQuYy02MTMtXFx0XFx0eyAub2Zmc2V0ID0gMCwgLndpZHRoID0gMiwgLnZhbHVlID0gMiwgfSxcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmMtNjE3LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmM6NjE4OlxcdHZjYXBfdGVzdF9hcGlfaW5pdChcXHUwMDI2YWRtaW4pO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmM6NjE5OlxcdHZjYXBfZW5jb2RlX2tleWZpZWxkKFxcdTAwMjZydWxlLCBcXHUwMDI2Y2tmLCBcXHUwMDI2cmYsIHRndCk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfa3VuaXQuYy02MjAtXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jLTYzOS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jOjY0MDpzdGF0aWMgdm9pZCB2Y2FwX2FwaV9lbmNvZGVfbWF4X2tleWZpZWxkX3Rlc3Qoc3RydWN0IGt1bml0ICp0ZXN0KVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmMtNjQxLXtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmMtNjQ0LVxcdHUzMiBtYXNrd29yZHNbNl0gPSB7MH07XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfa3VuaXQuYzo2NDU6XFx0c3RydWN0IHZjYXBfYWRtaW4gYWRtaW4gPSB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfa3VuaXQuYy02NDYtXFx0XFx0LnZ0eXBlID0gVkNBUF9UWVBFX0lTMixcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmMtNjUzLVxcdH07XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfa3VuaXQuYzo2NTQ6XFx0c3RydWN0IHZjYXBfcnVsZV9pbnRlcm5hbCBydWxlID0ge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmMtNjU1LVxcdFxcdC5hZG1pbiA9IFxcdTAwMjZhZG1pbixcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmMtNjYwLVxcdH07XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfa3VuaXQuYzo2NjE6XFx0c3RydWN0IHZjYXBfY2xpZW50X2tleWZpZWxkIGNrZiA9IHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jLTY2Mi1cXHRcXHQuY3RybC5saXN0ID0ge30sXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jLTY2OS1cXHR9O1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmM6NjcwOlxcdHN0cnVjdCB2Y2FwX2ZpZWxkIHJmID0ge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmMtNjcxLVxcdFxcdC50eXBlID0gVkNBUF9GSUVMRF9VMTI4LFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfa3VuaXQuYy02NzQtXFx0fTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jOjY3NTpcXHRzdHJ1Y3QgdmNhcF90eXBlZ3JvdXAgdGd0W10gPSB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfa3VuaXQuYy02NzYtXFx0XFx0eyAub2Zmc2V0ID0gMCwgLndpZHRoID0gMiwgLnZhbHVlID0gMiwgfSxcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmMtNjk2LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmM6Njk3OlxcdHZjYXBfZW5jb2RlX2tleWZpZWxkKFxcdTAwMjZydWxlLCBcXHUwMDI2Y2tmLCBcXHUwMDI2cmYsIHRndCk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfa3VuaXQuYy02OTgtXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jLTcwNi1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jOjcwNzpzdGF0aWMgdm9pZCB2Y2FwX2FwaV9lbmNvZGVfYWN0aW9uZmllbGRfdGVzdChzdHJ1Y3Qga3VuaXQgKnRlc3QpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfa3VuaXQuYy03MDgte1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfa3VuaXQuYy03MTAtXFx0aW50IHN3X3dpZHRoID0gMjE7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfa3VuaXQuYzo3MTE6XFx0c3RydWN0IHZjYXBfYWRtaW4gYWRtaW4gPSB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfa3VuaXQuYy03MTItXFx0XFx0LnZ0eXBlID0gVkNBUF9UWVBFX0VTMiwgLyogYWN0X3dpZHRoID0gMjEgKi9cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmMtNzE2LVxcdH07XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfa3VuaXQuYzo3MTc6XFx0c3RydWN0IHZjYXBfcnVsZV9pbnRlcm5hbCBydWxlID0ge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmMtNzE4LVxcdFxcdC5hZG1pbiA9IFxcdTAwMjZhZG1pbixcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmMtNzIzLVxcdH07XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfa3VuaXQuYzo3MjQ6XFx0c3RydWN0IHZjYXBfY2xpZW50X2FjdGlvbmZpZWxkIGNhZiA9IHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jLTcyNS1cXHRcXHQuY3RybC5saXN0ID0ge30sXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jLTcyOS1cXHR9O1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmM6NzMwOlxcdHN0cnVjdCB2Y2FwX2ZpZWxkIHJmID0ge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmMtNzMxLVxcdFxcdC50eXBlID0gVkNBUF9GSUVMRF9VMzIsXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jLTczNC1cXHR9O1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmM6NzM1OlxcdHN0cnVjdCB2Y2FwX3R5cGVncm91cCB0Z3RbXSA9IHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jLTczNi1cXHRcXHR7IC5vZmZzZXQgPSAwLCAud2lkdGggPSAyLCAudmFsdWUgPSAyLCB9LFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfa3VuaXQuYy03NDEtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfa3VuaXQuYzo3NDI6XFx0dmNhcF9lbmNvZGVfYWN0aW9uZmllbGQoXFx1MDAyNnJ1bGUsIFxcdTAwMjZjYWYsIFxcdTAwMjZyZiwgdGd0KTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jLTc0My1cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmMtNzUzLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmM6NzU0OnN0YXRpYyB2b2lkIHZjYXBfYXBpX2tleWZpZWxkX3R5cGVncm91cF90ZXN0KHN0cnVjdCBrdW5pdCAqdGVzdClcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jLTc1NS17XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfa3VuaXQuYzo3NTY6XFx0Y29uc3Qgc3RydWN0IHZjYXBfdHlwZWdyb3VwICp0ZztcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jLTc1Ny1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jOjc1ODpcXHR0ZyA9IHZjYXBfa2V5ZmllbGRfdHlwZWdyb3VwKFxcdTAwMjZ0ZXN0X3ZjdHJsLCBWQ0FQX1RZUEVfSVMyLCBWQ0FQX0tGU19NQUNfRVRZUEUpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmMtNzU5LVxcdEtVTklUX0VYUEVDVF9QVFJfTkUodGVzdCwgTlVMTCwgdGcpO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfa3VuaXQuYy03NjktXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfa3VuaXQuYzo3NzA6XFx0dGcgPSB2Y2FwX2tleWZpZWxkX3R5cGVncm91cChcXHUwMDI2dGVzdF92Y3RybCwgVkNBUF9UWVBFX0VTMiwgVkNBUF9LRlNfTExfRlVMTCk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfa3VuaXQuYy03NzEtXFx0S1VOSVRfRVhQRUNUX1BUUl9FUSh0ZXN0LCBOVUxMLCB0Zyk7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jLTc3My1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jOjc3NDpzdGF0aWMgdm9pZCB2Y2FwX2FwaV9hY3Rpb25maWVsZF90eXBlZ3JvdXBfdGVzdChzdHJ1Y3Qga3VuaXQgKnRlc3QpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfa3VuaXQuYy03NzUte1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmM6Nzc2OlxcdGNvbnN0IHN0cnVjdCB2Y2FwX3R5cGVncm91cCAqdGc7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfa3VuaXQuYy03NzctXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfa3VuaXQuYzo3Nzg6XFx0dGcgPSB2Y2FwX2FjdGlvbmZpZWxkX3R5cGVncm91cChcXHUwMDI2dGVzdF92Y3RybCwgVkNBUF9UWVBFX0lTMCwgVkNBUF9BRlNfRlVMTCk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfa3VuaXQuYy03NzktXFx0S1VOSVRfRVhQRUNUX1BUUl9ORSh0ZXN0LCBOVUxMLCB0Zyk7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jLTc5Mi1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jOjc5MzpcXHR0ZyA9IHZjYXBfYWN0aW9uZmllbGRfdHlwZWdyb3VwKFxcdTAwMjZ0ZXN0X3ZjdHJsLCBWQ0FQX1RZUEVfSVMyLCBWQ0FQX0FGU19DTEFTU0lGSUNBVElPTik7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfa3VuaXQuYy03OTQtXFx0S1VOSVRfRVhQRUNUX1BUUl9FUSh0ZXN0LCBOVUxMLCB0Zyk7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jLTc5Ni1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jOjc5NzpzdGF0aWMgdm9pZCB2Y2FwX2FwaV92Y2FwX2tleWZpZWxkc190ZXN0KHN0cnVjdCBrdW5pdCAqdGVzdClcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jLTc5OC17XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfa3VuaXQuYzo3OTk6XFx0Y29uc3Qgc3RydWN0IHZjYXBfZmllbGQgKmZ0O1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmMtODAwLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmM6ODAxOlxcdGZ0ID0gdmNhcF9rZXlmaWVsZHMoXFx1MDAyNnRlc3RfdmN0cmwsIFZDQVBfVFlQRV9JUzIsIFZDQVBfS0ZTX01BQ19FVFlQRSk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfa3VuaXQuYy04MDItXFx0S1VOSVRfRVhQRUNUX1BUUl9ORSh0ZXN0LCBOVUxMLCBmdCk7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jLTgwNC1cXHQvKiBLZXlzZXQgdGhhdCBpcyBub3QgYXZhaWxhYmxlIGFuZCB3aXRoaW4gdGhlIG1heGltdW0ga2V5c2V0IGVudW0gdmFsdWUgKi9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jOjgwNTpcXHRmdCA9IHZjYXBfa2V5ZmllbGRzKFxcdTAwMjZ0ZXN0X3ZjdHJsLCBWQ0FQX1RZUEVfRVMyLCBWQ0FQX0tGU19QVVJFXzVUVVBMRV9JUDQpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmMtODA2LVxcdEtVTklUX0VYUEVDVF9QVFJfRVEodGVzdCwgTlVMTCwgZnQpO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfa3VuaXQuYy04MDgtXFx0LyogS2V5c2V0IHRoYXQgaXMgbm90IGF2YWlsYWJsZSBhbmQgYmV5b25kIHRoZSBtYXhpbXVtIGtleXNldCBlbnVtIHZhbHVlICovXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfa3VuaXQuYzo4MDk6XFx0ZnQgPSB2Y2FwX2tleWZpZWxkcyhcXHUwMDI2dGVzdF92Y3RybCwgVkNBUF9UWVBFX0VTMiwgVkNBUF9LRlNfTExfRlVMTCk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfa3VuaXQuYy04MTAtXFx0S1VOSVRfRVhQRUNUX1BUUl9FUSh0ZXN0LCBOVUxMLCBmdCk7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jLTgxMi1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jOjgxMzpzdGF0aWMgdm9pZCB2Y2FwX2FwaV92Y2FwX2FjdGlvbmZpZWxkc190ZXN0KHN0cnVjdCBrdW5pdCAqdGVzdClcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jLTgxNC17XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfa3VuaXQuYzo4MTU6XFx0Y29uc3Qgc3RydWN0IHZjYXBfZmllbGQgKmZ0O1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmMtODE2LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmM6ODE3OlxcdGZ0ID0gdmNhcF9hY3Rpb25maWVsZHMoXFx1MDAyNnRlc3RfdmN0cmwsIFZDQVBfVFlQRV9JUzAsIFZDQVBfQUZTX0ZVTEwpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmMtODE4LVxcdEtVTklUX0VYUEVDVF9QVFJfTkUodGVzdCwgTlVMTCwgZnQpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmMtODE5LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmM6ODIwOlxcdGZ0ID0gdmNhcF9hY3Rpb25maWVsZHMoXFx1MDAyNnRlc3RfdmN0cmwsIFZDQVBfVFlQRV9JUzIsIFZDQVBfQUZTX0ZVTEwpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmMtODIxLVxcdEtVTklUX0VYUEVDVF9QVFJfRVEodGVzdCwgTlVMTCwgZnQpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmMtODIyLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmM6ODIzOlxcdGZ0ID0gdmNhcF9hY3Rpb25maWVsZHMoXFx1MDAyNnRlc3RfdmN0cmwsIFZDQVBfVFlQRV9JUzIsIFZDQVBfQUZTX0NMQVNTSUZJQ0FUSU9OKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jLTgyNC1cXHRLVU5JVF9FWFBFQ1RfUFRSX0VRKHRlc3QsIE5VTEwsIGZ0KTtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmMtODI2LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmM6ODI3OnN0YXRpYyB2b2lkIHZjYXBfYXBpX2VuY29kZV9ydWxlX2tleXNldF90ZXN0KHN0cnVjdCBrdW5pdCAqdGVzdClcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jLTgyOC17XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jLTgzMC1cXHR1MzIgbWFza3dvcmRzWzE2XSA9IHswfTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jOjgzMTpcXHRzdHJ1Y3QgdmNhcF9hZG1pbiBhZG1pbiA9IHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jLTgzMi1cXHRcXHQudnR5cGUgPSBWQ0FQX1RZUEVfSVMyLFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfa3VuaXQuYy04MzctXFx0fTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jOjgzODpcXHRzdHJ1Y3QgdmNhcF9ydWxlX2ludGVybmFsIHJ1bGUgPSB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfa3VuaXQuYy04MzktXFx0XFx0LmFkbWluID0gXFx1MDAyNmFkbWluLFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfa3VuaXQuYy04NDQtXFx0fTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jOjg0NTpcXHRzdHJ1Y3QgdmNhcF9jbGllbnRfa2V5ZmllbGQgY2tmW10gPSB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfa3VuaXQuYy04NDYtXFx0XFx0e1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfa3VuaXQuYy05MDAtXFx0SU5JVF9MSVNUX0hFQUQoXFx1MDAyNnJ1bGUuZGF0YS5rZXlmaWVsZHMpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmM6OTAxOlxcdHJldCA9IHZjYXBfZW5jb2RlX3J1bGVfa2V5c2V0KFxcdTAwMjZydWxlKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jLTkwMi1cXHRLVU5JVF9FWFBFQ1RfRVEodGVzdCwgLUVJTlZBTCwgcmV0KTtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmMtOTA1LVxcdFxcdGxpc3RfYWRkX3RhaWwoXFx1MDAyNmNrZltpZHhdLmN0cmwubGlzdCwgXFx1MDAyNnJ1bGUuZGF0YS5rZXlmaWVsZHMpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmM6OTA2OlxcdHJldCA9IHZjYXBfZW5jb2RlX3J1bGVfa2V5c2V0KFxcdTAwMjZydWxlKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jLTkwNy1cXHRLVU5JVF9FWFBFQ1RfRVEodGVzdCwgMCwgcmV0KTtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmMtOTM4LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmM6OTM5OnN0YXRpYyB2b2lkIHZjYXBfYXBpX2VuY29kZV9ydWxlX2FjdGlvbnNldF90ZXN0KHN0cnVjdCBrdW5pdCAqdGVzdClcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jLTk0MC17XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfa3VuaXQuYy05NDEtXFx0dTMyIGFjdHdvcmRzWzE2XSA9IHswfTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jOjk0MjpcXHRzdHJ1Y3QgdmNhcF9hZG1pbiBhZG1pbiA9IHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jLTk0My1cXHRcXHQudnR5cGUgPSBWQ0FQX1RZUEVfSVMyLFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfa3VuaXQuYy05NDctXFx0fTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jOjk0ODpcXHRzdHJ1Y3QgdmNhcF9ydWxlX2ludGVybmFsIHJ1bGUgPSB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfa3VuaXQuYy05NDktXFx0XFx0LmFkbWluID0gXFx1MDAyNmFkbWluLFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfa3VuaXQuYy05NTQtXFx0fTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jOjk1NTpcXHRzdHJ1Y3QgdmNhcF9jbGllbnRfYWN0aW9uZmllbGQgY2FmW10gPSB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfa3VuaXQuYy05NTYtXFx0XFx0e1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfa3VuaXQuYy05NzYtXFx0SU5JVF9MSVNUX0hFQUQoXFx1MDAyNnJ1bGUuZGF0YS5hY3Rpb25maWVsZHMpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmM6OTc3OlxcdHJldCA9IHZjYXBfZW5jb2RlX3J1bGVfYWN0aW9uc2V0KFxcdTAwMjZydWxlKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jLTk3OC1cXHQvKiBXZSBhbGxvdyBydWxlcyB3aXRoIG5vIGFjdGlvbnMgKi9cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmMtOTgyLVxcdFxcdGxpc3RfYWRkX3RhaWwoXFx1MDAyNmNhZltpZHhdLmN0cmwubGlzdCwgXFx1MDAyNnJ1bGUuZGF0YS5hY3Rpb25maWVsZHMpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmM6OTgzOlxcdHJldCA9IHZjYXBfZW5jb2RlX3J1bGVfYWN0aW9uc2V0KFxcdTAwMjZydWxlKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jLTk4NC1cXHRLVU5JVF9FWFBFQ1RfRVEodGVzdCwgMCwgcmV0KTtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmMtMTAwMC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jOjEwMDE6c3RhdGljIHZvaWQgdmNhcF9mcmVlX2NrZihzdHJ1Y3QgdmNhcF9ydWxlICpydWxlKVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmMtMTAwMi17XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfa3VuaXQuYzoxMDAzOlxcdHN0cnVjdCB2Y2FwX2NsaWVudF9rZXlmaWVsZCAqY2tmLCAqbmV4dF9ja2Y7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfa3VuaXQuYy0xMDA0LVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfa3VuaXQuYy0xMDEwLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmM6MTAxMTpzdGF0aWMgdm9pZCB2Y2FwX2FwaV9ydWxlX2FkZF9rZXl2YWx1ZV90ZXN0KHN0cnVjdCBrdW5pdCAqdGVzdClcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jLTEwMTIte1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmM6MTAxMzpcXHRzdHJ1Y3QgdmNhcF9hZG1pbiBhZG1pbiA9IHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jLTEwMTQtXFx0XFx0LnZ0eXBlID0gVkNBUF9UWVBFX0lTMixcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jLTEwMTUtXFx0fTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jOjEwMTY6XFx0c3RydWN0IHZjYXBfcnVsZV9pbnRlcm5hbCByaSA9IHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jLTEwMTctXFx0XFx0LmFkbWluID0gXFx1MDAyNmFkbWluLFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfa3VuaXQuYy0xMDIyLVxcdH07XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfa3VuaXQuYzoxMDIzOlxcdHN0cnVjdCB2Y2FwX3J1bGUgKnJ1bGUgPSAoc3RydWN0IHZjYXBfcnVsZSAqKVxcdTAwMjZyaTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jOjEwMjQ6XFx0c3RydWN0IHZjYXBfY2xpZW50X2tleWZpZWxkICprZjtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jLTEwMjUtXFx0aW50IHJldDtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jOjEwMjY6XFx0c3RydWN0IHZjYXBfdTEyOF9rZXkgZGlwID0ge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmMtMTAyNy1cXHRcXHQudmFsdWUgPSB7MHgxNywgMHgyNiwgMHgzNSwgMHg0NCwgMHg2MywgMHg2MiwgMHg3MX0sXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jLTEwMzItXFx0SU5JVF9MSVNUX0hFQUQoXFx1MDAyNnJ1bGUtXFx1MDAzZWtleWZpZWxkcyk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfa3VuaXQuYzoxMDMzOlxcdHJldCA9IHZjYXBfcnVsZV9hZGRfa2V5X2JpdChydWxlLCBWQ0FQX0tGX0xPT0tVUF9GSVJTVF9JUywgVkNBUF9CSVRfMCk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfa3VuaXQuYy0xMDM0LVxcdEtVTklUX0VYUEVDVF9FUSh0ZXN0LCAwLCByZXQpO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfa3VuaXQuYy0xMDM2LVxcdEtVTklUX0VYUEVDVF9FUSh0ZXN0LCBmYWxzZSwgcmV0KTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jOjEwMzc6XFx0a2YgPSBsaXN0X2ZpcnN0X2VudHJ5KFxcdTAwMjZydWxlLVxcdTAwM2VrZXlmaWVsZHMsIHN0cnVjdCB2Y2FwX2NsaWVudF9rZXlmaWVsZCxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jLTEwMzgtXFx0XFx0XFx0ICAgICAgY3RybC5saXN0KTtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmMtMTA0Mi1cXHRLVU5JVF9FWFBFQ1RfRVEodGVzdCwgMHgxLCBrZi1cXHUwMDNlZGF0YS51MS5tYXNrKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jOjEwNDM6XFx0dmNhcF9mcmVlX2NrZihydWxlKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jLTEwNDQtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfa3VuaXQuYy0xMDQ1LVxcdElOSVRfTElTVF9IRUFEKFxcdTAwMjZydWxlLVxcdTAwM2VrZXlmaWVsZHMpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmM6MTA0NjpcXHRyZXQgPSB2Y2FwX3J1bGVfYWRkX2tleV9iaXQocnVsZSwgVkNBUF9LRl9MT09LVVBfRklSU1RfSVMsIFZDQVBfQklUXzEpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmMtMTA0Ny1cXHRLVU5JVF9FWFBFQ1RfRVEodGVzdCwgMCwgcmV0KTtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmMtMTA0OS1cXHRLVU5JVF9FWFBFQ1RfRVEodGVzdCwgZmFsc2UsIHJldCk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfa3VuaXQuYzoxMDUwOlxcdGtmID0gbGlzdF9maXJzdF9lbnRyeShcXHUwMDI2cnVsZS1cXHUwMDNla2V5ZmllbGRzLCBzdHJ1Y3QgdmNhcF9jbGllbnRfa2V5ZmllbGQsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfa3VuaXQuYy0xMDUxLVxcdFxcdFxcdCAgICAgIGN0cmwubGlzdCk7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jLTEwNTUtXFx0S1VOSVRfRVhQRUNUX0VRKHRlc3QsIDB4MSwga2YtXFx1MDAzZWRhdGEudTEubWFzayk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfa3VuaXQuYzoxMDU2OlxcdHZjYXBfZnJlZV9ja2YocnVsZSk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfa3VuaXQuYy0xMDU3LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmMtMTA1OC1cXHRJTklUX0xJU1RfSEVBRChcXHUwMDI2cnVsZS1cXHUwMDNla2V5ZmllbGRzKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jOjEwNTk6XFx0cmV0ID0gdmNhcF9ydWxlX2FkZF9rZXlfYml0KHJ1bGUsIFZDQVBfS0ZfTE9PS1VQX0ZJUlNUX0lTLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmMtMTA2MC1cXHRcXHRcXHRcXHQgICAgVkNBUF9CSVRfQU5ZKTtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmMtMTA2My1cXHRLVU5JVF9FWFBFQ1RfRVEodGVzdCwgZmFsc2UsIHJldCk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfa3VuaXQuYzoxMDY0OlxcdGtmID0gbGlzdF9maXJzdF9lbnRyeShcXHUwMDI2cnVsZS1cXHUwMDNla2V5ZmllbGRzLCBzdHJ1Y3QgdmNhcF9jbGllbnRfa2V5ZmllbGQsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfa3VuaXQuYy0xMDY1LVxcdFxcdFxcdCAgICAgIGN0cmwubGlzdCk7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jLTEwNjktXFx0S1VOSVRfRVhQRUNUX0VRKHRlc3QsIDB4MCwga2YtXFx1MDAzZWRhdGEudTEubWFzayk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfa3VuaXQuYzoxMDcwOlxcdHZjYXBfZnJlZV9ja2YocnVsZSk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfa3VuaXQuYy0xMDcxLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmMtMTA3Mi1cXHRJTklUX0xJU1RfSEVBRChcXHUwMDI2cnVsZS1cXHUwMDNla2V5ZmllbGRzKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jOjEwNzM6XFx0cmV0ID0gdmNhcF9ydWxlX2FkZF9rZXlfdTMyKHJ1bGUsIFZDQVBfS0ZfVFlQRSwgMHg5ODc2NTQzMiwgMHhmZjAwZmZhYik7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfa3VuaXQuYy0xMDc0LVxcdEtVTklUX0VYUEVDVF9FUSh0ZXN0LCAwLCByZXQpO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfa3VuaXQuYy0xMDc2LVxcdEtVTklUX0VYUEVDVF9FUSh0ZXN0LCBmYWxzZSwgcmV0KTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9rdW5pdC5jOjEwNzc6XFx0a2YgPSBsaXN0X2ZpcnN0X2VudHJ5KFxcdTAwMjZydWxlLVxcdTAwM2VrZXlmaWVsZHMsIHN0cnVjdCB2Y2FwX2NsaWVudF9rZXlmaWVsZCxcXG5cXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMjlUMTA6Mjc6NDguMjcyMDcyNDQ0WiIsIlNlcSI6MjcsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjk5MzkyMzUzNDQsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6Ik9rYXksIGhlcmUncyBteSB0YWtlIG9uIHRob3NlIHRob3VnaHRzLCBmcmFtZWQgYXMgbXkgb3duOlxuXG4qKkFuYWx5emluZyB0aGUgdmNhcF9hcGlfa3VuaXQuYyBUZXN0IFN1aXRlKipcblxuQWxyaWdodCwgbGV0J3MgZGl2ZSBpbnRvIGB2Y2FwX2FwaV9rdW5pdC5jYC4gSSdtIGdvaW5nIHRocm91Z2ggdGhlIHRlc3RzIGluIHRoaXMgbW9kdWxlLCBhcyBpdCBoYXMgYSBwcmV0dHkgZXh0ZW5zaXZlIHN1aXRlLiBNeSBwcmltYXJ5IGNvbmNlcm4gcmlnaHQgbm93IGlzIHRvIHNlZSBpZiB3ZSBoYXZlIGdvb2QgY292ZXJhZ2UgZm9yIHRoZSBgdmNhcF9kZWNvZGVfcnVsZWAgZnVuY3Rpb24uIEkgbmVlZCB0byBxdWlja2x5IGRldGVybWluZSBpZiB0aGVyZSBhcmUgZGVkaWNhdGVkIHRlc3RzLCBvciBpZiBpdHMgZnVuY3Rpb25hbGl0eSBpcyBjb3ZlcmVkIGluZGlyZWN0bHkgd2l0aGluIG90aGVyIHRlc3RzLiBBIGxhY2sgb2Ygc3BlY2lmaWMgdGVzdHMgd291bGQgYmUgYSByZWQgZmxhZywgYW5kIEknZCBuZWVkIHRvIGNvbnNpZGVyIHdoZXJlIHRoYXQgZnVuY3Rpb24ncyBjb3ZlcmFnZSBzdGFuZHMsIGFuZCwgaWYgbGFja2luZywgcGxhbiBhY2NvcmRpbmdseS4gTGV0J3Mgc2VlIHdoYXQgd2UndmUgZ290LlxuXG5cbiIsIklucHV0VG9rZW5zIjozMzg3NCwiT3V0cHV0VG9rZW5zIjo0OCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjMyLCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTI5VDEwOjI3OjU4LjIxMTMxNTg2OFoiLCJTZXEiOjI4LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MTI5ODQ2MDg3LCJFcnJvciI6Im5vIG1hdGNoZXMiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJ2Y2FwX2RlY29kZV9ydWxlXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2t1bml0LmNcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiZXJyb3JcIjogXCJubyBtYXRjaGVzXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTI5VDEwOjI3OjU4LjM0MTE3NDAwNVoiLCJTZXEiOjI5LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo3MjcyMDYzNDk3LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKlJlYWNoaW5nIGB2Y2FwX2RlY29kZV9ydWxlYCBpbiBhIFZpcnR1YWxpemVkIFdvcmxkKipcblxuT2theSwgc28gdGhpcyBjb2RlIHBhdGggaXNuJ3Qgc3BlY2lmaWNhbGx5IGNvdmVyZWQgYnkgS1VuaXQsIHdoaWNoIHJhaXNlcyBhIGZsYWcuIFRoZSByZWFsIHF1ZXN0aW9uIGlzOiBjYW4gYHZjYXBfZGVjb2RlX3J1bGVgIGV2ZW4gKmJlKiByZWFjaGVkIHdoZW4gcnVubmluZyBpbiBhIHZpcnR1YWxpemVkIGVudmlyb25tZW50PyBJdCdzIGNhbGxlZCBieSBgdmNhcF9nZXRfcnVsZWAgYW5kLCBvZiBjb3Vyc2UsIHRoZSBgdmNhcF9zaG93X2FkbWluYCBkZWJ1Z2dpbmcgdG9vbC4gYHZjYXBfZ2V0X3J1bGVgIGlzIGV4cG9ydGVkLCBtYWtpbmcgaXQgYWNjZXNzaWJsZSB0byBleHRlcm5hbCBjbGllbnRzLCB3aGljaCBpbW1lZGlhdGVseSBwaXF1ZXMgbXkgaW50ZXJlc3QuXG5cblRoZSBrZXkgaGVyZSBpcyB3aGV0aGVyIGFueSBvZiB0aG9zZSBjbGllbnQgZHJpdmVycyBjYW4gYmUgbG9hZGVkIGFuZCBleGVyY2lzZWQgdW5kZXIgUUVNVS4gVGhpbmtpbmcgdGhyb3VnaCB0aGlzLCB3ZSdyZSB0YWxraW5nIGFib3V0IGRyaXZlcnMgbGlrZSBgc3Bhcng1YCBhbmQgYGxhbjk2NnhgLiBUaGVzZSBhcmUgaGFyZHdhcmUgc3dpdGNoIGRyaXZlcnMsIHNvIHRoYXQgaW1tZWRpYXRlbHkgYnJpbmdzIHVwIGNvbmNlcm5zIGFib3V0IGRlcGVuZGVuY3kuIE15IGluaXRpYWwgaHVuY2ggaXMgdGhhdCB0aGVzZSB3aWxsIHJlcXVpcmUgc29tZSBmb3JtIG9mIFBDSWUgb3IgcGxhdGZvcm0gZGV2aWNlIHRoYXQgaXMgZ2VuZXJhbGx5IG5vdCBmdWxseSBlbXVsYXRlZCBpbiBhIHR5cGljYWwgUUVNVSBzZXR1cC4gVGhleSBhbG1vc3QgY2VydGFpbmx5IG5lZWQgbW9yZSB0aGFuIHN0YW5kYXJkIGVtdWxhdGlvbi5cblxuVGhlcmVmb3JlLCBsZXQgbWUgbm93IGdvIGFuZCBjaGVjayB3aGV0aGVyIHRoZXJlIGlzIGFueSBlc3RhYmxpc2hlZCBvciBrbm93biBzb2Z0d2FyZSBlbXVsYXRpb24gZm9yIGVpdGhlciBvZiB0aG9zZSBzd2l0Y2hlcy4gVGhhdCBpcyB3aGVyZSBJIHdpbGwgc3RhcnQsIGZvciBub3cuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjM0MTMwLCJPdXRwdXRUb2tlbnMiOjM2LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MTc2LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTI5VDEwOjI4OjA1LjYxMzI0MjI1MloiLCJTZXEiOjMwLCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NzAwNzYwNjk0LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcImNvbmZpZyBTUEFSWDVfU1dJVENIXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC9cIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3NwYXJ4NS9LY29uZmlnOjE6Y29uZmlnIFNQQVJYNV9TV0lUQ0hcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvc3Bhcng1L0tjb25maWctMi1cXHR0cmlzdGF0ZSBcXFwiU3Bhcng1IHN3aXRjaCBkcml2ZXJcXFwiXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTI5VDEwOjI4OjA2LjMxNDAxNTYxNVoiLCJTZXEiOjMxLCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo2MTk2MjUxNzAzLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJIZXJlJ3MgYSBzdW1tYXJ5IG9mIG15IHRob3VnaHQgcHJvY2VzcywgYXMgcmVxdWVzdGVkOlxuXG4qKk5hdmlnYXRpbmcgdGhlIEtlcm5lbCdzIE5ldHdvcmsgRHJpdmVyIENvbmZpZ3VyYXRpb24qKlxuXG5Pa2F5LCBzbyBJIG5lZWQgdG8gdW5kZXJzdGFuZCB0aGUgY29uZmlndXJhdGlvbiBvcHRpb25zIGZvciB0aGUgTWljcm9jaGlwIFNwYXJ4NSBFdGhlcm5ldCBkcml2ZXIgd2l0aGluIHRoZSBMaW51eCBrZXJuZWwuIFdoZXJlIHdvdWxkIEkgZXhwZWN0IHRvIGZpbmQgdGhlc2Ugc2V0dGluZ3M/IE15IGluaXRpYWwgaW50dWl0aW9uIHRlbGxzIG1lIHRvIHN0YXJ0IGRpZ2dpbmcgaW50byB0aGUgYGRyaXZlcnMvbmV0YCBzdWJ0cmVlLCBhcyB0aGF0J3Mgd2hlcmUgdGhlIG5ldHdvcmstcmVsYXRlZCBjb2RlIHJlc2lkZXMuIE1vcmUgc3BlY2lmaWNhbGx5LCBnaXZlbiB0aGUgbmFtZSwgXCJTcGFyeDUsXCIgaXQgc291bmRzIGxpa2UgaXQgbWlnaHQgYmUgYSBzcGVjaWZpYyB0eXBlIG9mIGRldmljZSwgd2hpY2ggbGVhZHMgbWUgdG8gaG9uZSBpbiBvbiB0aGUgYGV0aGVybmV0YCBzdWJkaXJlY3RvcnkuXG5cbk5vdywgd2l0aGluIGBkcml2ZXJzL25ldC9ldGhlcm5ldC9gLCBJJ20gbG9va2luZyBmb3IgYW55dGhpbmcgcmVsYXRlZCB0byBjb25maWd1cmF0aW9uLiBUeXBpY2FsbHksIGtlcm5lbCBjb25maWd1cmF0aW9uIG9wdGlvbnMgYXJlIGRlZmluZWQgaW4gYEtjb25maWdgIGZpbGVzLiBUaGF0J3MgdGhlIHN0YW5kYXJkLiBTbywgdGhlIG1vc3QgbGlrZWx5IHBhdGggdG8gZmluZCB0aGVzZSBzcGVjaWZpYyBTcGFyeDUgY29uZmlndXJhdGlvbiBvcHRpb25zIGlzIGBkcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvc3Bhcng1L0tjb25maWdgLiBMZXQncyBjb25maXJtIHRoYXQgdGhhdCBpcyB0aGUgY29ycmVjdCBwYXRoIGFuZCBkZWx2ZSBpbnRvIHRoZSBjb250ZW50cyBvZiB0aGF0IGBLY29uZmlnYCBmaWxlLlxuXG5cbiIsIklucHV0VG9rZW5zIjozNDY2NSwiT3V0cHV0VG9rZW5zIjo0MiwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjIyLCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTI5VDEwOjI4OjEyLjUxMDI3NDE5OFoiLCJTZXEiOjMyLCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJyZWFkLWZpbGUiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoxNTQ3NTAsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJGaWxlXCI6IFwiZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3NwYXJ4NS9LY29uZmlnXCIsXG4gIFwiRmlyc3RMaW5lXCI6IDEsXG4gIFwiTGluZUNvdW50XCI6IDIwXG59IiwiUmVzdWx0cyI6IntcbiAgXCJDb250ZW50c1wiOiBcIiAgIDE6XFx0Y29uZmlnIFNQQVJYNV9TV0lUQ0hcXG4gICAyOlxcdFxcdHRyaXN0YXRlIFxcXCJTcGFyeDUgc3dpdGNoIGRyaXZlclxcXCJcXG4gICAzOlxcdFxcdGRlcGVuZHMgb24gTkVUX1NXSVRDSERFVlxcbiAgIDQ6XFx0XFx0ZGVwZW5kcyBvbiBIQVNfSU9NRU1cXG4gICA1OlxcdFxcdGRlcGVuZHMgb24gT0ZcXG4gICA2OlxcdFxcdGRlcGVuZHMgb24gQVJDSF9TUEFSWDUgfHwgQVJDSF9MQU45NjlYIHx8IENPTVBJTEVfVEVTVFxcbiAgIDc6XFx0XFx0ZGVwZW5kcyBvbiBQVFBfMTU4OF9DTE9DS19PUFRJT05BTFxcbiAgIDg6XFx0XFx0ZGVwZW5kcyBvbiBCUklER0UgfHwgQlJJREdFPW5cXG4gICA5OlxcdFxcdHNlbGVjdCBQSFlMSU5LXFxuICAxMDpcXHRcXHRzZWxlY3QgUEhZX1NQQVJYNV9TRVJERVNcXG4gIDExOlxcdFxcdHNlbGVjdCBSRVNFVF9DT05UUk9MTEVSXFxuICAxMjpcXHRcXHRzZWxlY3QgVkNBUFxcbiAgMTM6XFx0XFx0c2VsZWN0IEZETUFcXG4gIDE0OlxcdFxcdGhlbHBcXG4gIDE1OlxcdFxcdCAgVGhpcyBkcml2ZXIgc3VwcG9ydHMgdGhlIFNwYXJ4NSBuZXR3b3JrIHN3aXRjaCBkZXZpY2UuXFxuICAxNjpcXHRcXG4gIDE3OlxcdGNvbmZpZyBTUEFSWDVfRENCXFxuICAxODpcXHRcXHRib29sIFxcXCJEYXRhIENlbnRlciBCcmlkZ2luZyAoRENCKSBzdXBwb3J0XFxcIlxcbiAgMTk6XFx0XFx0ZGVwZW5kcyBvbiBTUEFSWDVfU1dJVENIIFxcdTAwMjZcXHUwMDI2IERDQlxcbiAgMjA6XFx0XFx0ZGVmYXVsdCB5XFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTI5VDEwOjI4OjEyLjUxMDQzMTYwOFoiLCJTZXEiOjMzLCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo1OTk2NDI5NTA4LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkFuYWx5emluZyB0aGUgQ29tcGlsYXRpb24gTG9naWMqKlxuXG5Pa2F5LCBzbyB0aGlzIGNvZGUncyBjb21waWxhdGlvbiBwYXRoIGRlZmluaXRlbHkgaGluZ2VzIG9uIHRoZSB0YXJnZXQgYXJjaGl0ZWN0dXJlLiBJdCdzIGVpdGhlciB0aGUgTWljcm9jaGlwIFNwYXJ4NSwgdGhlIExBTjk2OXgsIG9yIGEgY29tcGlsZSB0ZXN0IHNldHVwLiBUaGF0IHN0cm9uZ2x5IHN1Z2dlc3RzIHRoaXMgaXMgYSBkcml2ZXIgc3BlY2lmaWMgdG8gdGhvc2UgY2hpcHMsIHJpZ2h0PyBBbmQsIGlmIGl0J3MgdGllZCB0byBzcGVjaWZpYyBoYXJkd2FyZSwgdGhhdCBwcm9iYWJseSBtZWFucyBpdCB3b24ndCBydW4gbmF0aXZlbHkgaW4gc3RhbmRhcmQgUUVNVS5cblxuQnV0IG5vdywgSSdtIHRoaW5raW5nIGFib3V0IGB2Y2FwX2RlY29kZV9ydWxlYC4gVGhhdCBmdW5jdGlvbiBpcyBidXJpZWQgaW4gYHZjYXBfYXBpLmNgLCB3aGljaCBtYWtlcyBtZSB0aGluayBpdCBpcyBvbmx5IGluY2x1ZGVkIGlmIGBDT05GSUdfVkNBUGAgaXMgc2V0LiBBbHNvLCBgQ09ORklHX1ZDQVBfS1VOSVRfVEVTVGAgc2VlbXMgdG8gdGVzdCB0aGUgVkNBUCBBUEkuXG5cbldhaXQgYSBzZWNvbmTigKYgYHZjYXBfZGVjb2RlX3J1bGVgIGlzbid0IHRlc3RlZCBpbiBgdmNhcF9hcGlfa3VuaXQuY2AuIFRoYXQncyBhIHJlZCBmbGFnLiBJcyB0aGVyZSAqYW55KiBvdGhlciBLVW5pdCB0ZXN0IGNvdmVyYWdlIGZvciB0aGlzIHNwZWNpZmljIGZ1bmN0aW9uIGFueXdoZXJlIGluIHRoZSBwcm9qZWN0PyBJIG5lZWQgdG8gZGlnIGRlZXBlci4gVGhpcyBzZWVtcyBvZGQgYW5kIHdvcnRoIGEgc2Vjb25kIGxvb2suXG5cblxuIiwiSW5wdXRUb2tlbnMiOjM1MjIzLCJPdXRwdXRUb2tlbnMiOjM5LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MTQ3LCJUb29sQ2FsbHMiOlsicmVhZC1maWxlIl19LHsiU3RhcnRlZCI6IjIwMjYtMDctMjlUMTA6Mjg6MTguNTA2ODY3ODU1WiIsIlNlcSI6MzQsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoxNDgyOTM3NjcsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwidmNhcF9kZWNvZGVfcnVsZVwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJkcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC9cIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGkuYz0yNDEzPUVYUE9SVF9TWU1CT0xfR1BMKHZjYXBfZnJlZV9ydWxlKTtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpLmMtMjQxNS0vKiBEZWNvZGUgYSBydWxlIGZyb20gdGhlIFZDQVAgY2FjaGUgYW5kIHJldHVybiBhIGNvcHkgKi9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaS5jOjI0MTY6c3RydWN0IHZjYXBfcnVsZSAqdmNhcF9kZWNvZGVfcnVsZShzdHJ1Y3QgdmNhcF9ydWxlX2ludGVybmFsICplbGVtKVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpLmMtMjQxNy17XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaS5jPTI0NDc9c3RydWN0IHZjYXBfcnVsZSAqdmNhcF9nZXRfcnVsZShzdHJ1Y3QgdmNhcF9jb250cm9sICp2Y3RybCwgdTMyIGlkKVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGkuYy0yNDYwLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpLmM6MjQ2MTpcXHRydWxlID0gdmNhcF9kZWNvZGVfcnVsZShlbGVtKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaS5jLTI0NjItXFx0dmNhcF91bmxvY2soZWxlbS1cXHUwMDNlYWRtaW4pO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfZGVidWdmcy5jPTI5Mj1zdGF0aWMgaW50IHZjYXBfc2hvd19hZG1pbihzdHJ1Y3QgdmNhcF9jb250cm9sICp2Y3RybCxcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2RlYnVnZnMuYy0zMDEtXFx0bGlzdF9mb3JfZWFjaF9lbnRyeShlbGVtLCBcXHUwMDI2YWRtaW4tXFx1MDAzZXJ1bGVzLCBsaXN0KSB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfZGVidWdmcy5jOjMwMjpcXHRcXHR2cnVsZSA9IHZjYXBfZGVjb2RlX3J1bGUoZWxlbSk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfZGVidWdmcy5jLTMwMy1cXHRcXHRpZiAoSVNfRVJSKHZydWxlKSkge1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfcHJpdmF0ZS5oPTEyMj1pbnQgdmNhcF9ydWxlX2dldF9rZXlzZXRzKHN0cnVjdCB2Y2FwX3J1bGVfaW50ZXJuYWwgKnJpLFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfcHJpdmF0ZS5oLTEyNC0vKiBEZWNvZGUgYSBydWxlIGZyb20gdGhlIFZDQVAgY2FjaGUgYW5kIHJldHVybiBhIGNvcHkgKi9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9wcml2YXRlLmg6MTI1OnN0cnVjdCB2Y2FwX3J1bGUgKnZjYXBfZGVjb2RlX3J1bGUoc3RydWN0IHZjYXBfcnVsZV9pbnRlcm5hbCAqZWxlbSk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfcHJpdmF0ZS5oLTEyNi1cXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMjlUMTA6Mjg6MTguNjU1MTc1MjYyWiIsIlNlcSI6MzUsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjEwNDMyMTkyMjMyLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkludmVzdGlnYXRpbmcgVkNBUCBBY2Nlc3NpYmlsaXR5KipcblxuT2theSwgc28gSSdtIHRyeWluZyB0byBmaWd1cmUgb3V0IGlmIEkgY2FuIGludGVyYWN0IHdpdGggYHZjYXBfc2hvd19hZG1pbmAgd2l0aG91dCBoYXZpbmcgYWN0dWFsIGhhcmR3YXJlLiBJdCdzIHBhcnQgb2YgYGRlYnVnZnNgLCB3aGljaCBpcyBhIGdvb2Qgc3RhcnRpbmcgcG9pbnQuIFJpZ2h0LCBgdmNhcF9hcGlfZGVidWdmcy5jYCBpcyByZXNwb25zaWJsZSBmb3IgY3JlYXRpbmcgdGhvc2UgYGRlYnVnZnNgIGVudHJpZXMgcmVsYXRlZCB0byBWQ0FQLiBCdXQgaGVyZSdzIHRoZSBjYXRjaDogdGhvc2UgZW50cmllcyBhcmUgb25seSBjcmVhdGVkIGlmIGEgVkNBUCBjb250cm9sIHN0cnVjdHVyZSBpcyBpbml0aWFsaXplZCBieSBhIGNsaWVudCBkcml2ZXIuIFRoaW5raW5nIGFib3V0IGl0LCBkcml2ZXJzIGxpa2UgU3Bhcng1IGNvbWUgdG8gbWluZC4gTm93LCB0aGUgcHJvYmxlbSBpcyB0aGF0IFNwYXJ4NSBhbmQgTGFuOTY2eCwgZnJvbSB3aGF0IEkga25vdywgbmVlZCBwaHlzaWNhbCBoYXJkd2FyZSBvciB2ZXJ5IHNwZWNpZmljIFNvQ3MuIFNvLCBydW5uaW5nIHRoZW0gaW4gc3RhbmRhcmQgUUVNVSBzZWVtcyBpbXBvc3NpYmxlLlxuXG5XYWl0Li4uIGlzIHRoZXJlICphbnkqIHZpcnR1YWwgZHJpdmVyIG9yIHNvZnR3YXJlIGVtdWxhdGlvbiB0aGF0IHVzZXMgVkNBUD8gSSBuZWVkIHRvIGNoZWNrLiBUbyBiZSBhYnNvbHV0ZWx5IHN1cmUsIEknbSBnb2luZyB0byBzY2FuIHRoZSBjb2RlIGZvciBhbnkgdXNlcyBvZiBgdmNhcF9nZXRfcnVsZWAsIGB2Y2FwX3Nob3dfYWRtaW5gLCBvciBhbnl0aGluZyByZWxhdGVkIHRvIGB2Y2FwX2FwaS5jYC4gVGhhdCBzaG91bGQgZ2l2ZSBtZSB0aGUgYW5zd2VyLlxuXG5cbiIsIklucHV0VG9rZW5zIjozNjMwOSwiT3V0cHV0VG9rZW5zIjozNiwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjE2NSwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0yOVQxMDoyODoyOS4wODczNzE1NTRaIiwiU2VxIjozNiwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjIxMzE2OTMxNSwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJ2Y2FwX2dldF9ydWxlXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC9cIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL2xhbjk2NngvbGFuOTY2eF9wdHAuYz01ND1zdGF0aWMgaW50IGxhbjk2NnhfcHRwX2FkZF90cmFwKHN0cnVjdCBsYW45NjZ4X3BvcnQgKnBvcnQsXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvbGFuOTY2eC9sYW45NjZ4X3B0cC5jLTYzLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC9sYW45NjZ4L2xhbjk2NnhfcHRwLmM6NjQ6XFx0dnJ1bGUgPSB2Y2FwX2dldF9ydWxlKGxhbjk2NngtXFx1MDAzZXZjYXBfY3RybCwgcnVsZV9pZCk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL2xhbjk2NngvbGFuOTY2eF9wdHAuYy02NS1cXHRpZiAoIUlTX0VSUih2cnVsZSkpIHtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC9sYW45NjZ4L2xhbjk2NnhfcHRwLmM9MTAzPXN0YXRpYyBpbnQgbGFuOTY2eF9wdHBfZGVsX3RyYXAoc3RydWN0IGxhbjk2NnhfcG9ydCAqcG9ydCxcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC9sYW45NjZ4L2xhbjk2NnhfcHRwLmMtMTEwLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC9sYW45NjZ4L2xhbjk2NnhfcHRwLmM6MTExOlxcdHZydWxlID0gdmNhcF9nZXRfcnVsZShsYW45NjZ4LVxcdTAwM2V2Y2FwX2N0cmwsIHJ1bGVfaWQpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC9sYW45NjZ4L2xhbjk2NnhfcHRwLmMtMTEyLVxcdGlmIChJU19FUlIodnJ1bGUpKVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL2xhbjk2NngvbGFuOTY2eF90Y19mbG93ZXIuYz01ODM9c3RhdGljIGludCBsYW45NjZ4X3RjX2Zsb3dlcl9zdGF0cyhzdHJ1Y3QgbGFuOTY2eF9wb3J0ICpwb3J0LFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL2xhbjk2NngvbGFuOTY2eF90Y19mbG93ZXIuYy01ODktXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL2xhbjk2NngvbGFuOTY2eF90Y19mbG93ZXIuYzo1OTA6XFx0ZXJyID0gdmNhcF9nZXRfcnVsZV9jb3VudF9ieV9jb29raWUocG9ydC1cXHUwMDNlbGFuOTY2eC1cXHUwMDNldmNhcF9jdHJsLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC9sYW45NjZ4L2xhbjk2NnhfdGNfZmxvd2VyLmMtNTkxLVxcdFxcdFxcdFxcdFxcdCAgICBcXHUwMDI2Y291bnQsIGYtXFx1MDAzZWNvb2tpZSk7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvc3Bhcng1L3NwYXJ4NV90Y19mbG93ZXIuYz0xMzc1PXN0YXRpYyBpbnQgc3Bhcng1X3RjX2ZyZWVfcnVsZV9yZXNvdXJjZXMoc3RydWN0IG5ldF9kZXZpY2UgKm5kZXYsXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvc3Bhcng1L3NwYXJ4NV90Y19mbG93ZXIuYy0xMzgzLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC9zcGFyeDUvc3Bhcng1X3RjX2Zsb3dlci5jOjEzODQ6XFx0dnJ1bGUgPSB2Y2FwX2dldF9ydWxlKHZjdHJsLCBydWxlX2lkKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvc3Bhcng1L3NwYXJ4NV90Y19mbG93ZXIuYy0xMzg1LVxcdGlmIChJU19FUlIodnJ1bGUpKVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3NwYXJ4NS9zcGFyeDVfdGNfZmxvd2VyLmM9MTQyOD1zdGF0aWMgaW50IHNwYXJ4NV90Y19mbG93ZXJfc3RhdHMoc3RydWN0IG5ldF9kZXZpY2UgKm5kZXYsXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvc3Bhcng1L3NwYXJ4NV90Y19mbG93ZXIuYy0xNDM4LVxcdHZjdHJsID0gcG9ydC1cXHUwMDNlc3Bhcng1LVxcdTAwM2V2Y2FwX2N0cmw7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3NwYXJ4NS9zcGFyeDVfdGNfZmxvd2VyLmM6MTQzOTpcXHRlcnIgPSB2Y2FwX2dldF9ydWxlX2NvdW50X2J5X2Nvb2tpZSh2Y3RybCwgXFx1MDAyNmN0ciwgZmNvLVxcdTAwM2Vjb29raWUpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC9zcGFyeDUvc3Bhcng1X3RjX2Zsb3dlci5jLTE0NDAtXFx0aWYgKGVycilcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpLmM9MjQxNj1zdHJ1Y3QgdmNhcF9ydWxlICp2Y2FwX2RlY29kZV9ydWxlKHN0cnVjdCB2Y2FwX3J1bGVfaW50ZXJuYWwgKmVsZW0pXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaS5jLTI0NDYtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGkuYzoyNDQ3OnN0cnVjdCB2Y2FwX3J1bGUgKnZjYXBfZ2V0X3J1bGUoc3RydWN0IHZjYXBfY29udHJvbCAqdmN0cmwsIHUzMiBpZClcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaS5jLTI0NDgte1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGkuYy0yNDY0LX1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaS5jOjI0NjU6RVhQT1JUX1NZTUJPTF9HUEwodmNhcF9nZXRfcnVsZSk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGkuYy0yNDY2LVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGkuYz0zMzUzPWludCB2Y2FwX3J1bGVfZ2V0X2tleXNldHMoc3RydWN0IHZjYXBfcnVsZV9pbnRlcm5hbCAqcmksXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaS5jLTMzOTYtLyogQ29sbGVjdCBwYWNrZXQgY291bnRzIGZyb20gYWxsIHJ1bGVzIHdpdGggdGhlIHNhbWUgY29va2llICovXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGkuYzozMzk3OmludCB2Y2FwX2dldF9ydWxlX2NvdW50X2J5X2Nvb2tpZShzdHJ1Y3QgdmNhcF9jb250cm9sICp2Y3RybCxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaS5jLTMzOTgtXFx0XFx0XFx0XFx0ICBzdHJ1Y3QgdmNhcF9jb3VudGVyICpjdHIsIHU2NCBjb29raWUpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaS5jLTM0MzUtfVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpLmM6MzQzNjpFWFBPUlRfU1lNQk9MX0dQTCh2Y2FwX2dldF9ydWxlX2NvdW50X2J5X2Nvb2tpZSk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGkuYy0zNDM3LVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfY2xpZW50Lmg9MTczPXN0cnVjdCB2Y2FwX3J1bGUgKnZjYXBfY29weV9ydWxlKHN0cnVjdCB2Y2FwX3J1bGUgKnJ1bGUpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2NsaWVudC5oLTE3NC0vKiBHZXQgcnVsZSBmcm9tIGEgVkNBUCBpbnN0YW5jZSAqL1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2NsaWVudC5oOjE3NTpzdHJ1Y3QgdmNhcF9ydWxlICp2Y2FwX2dldF9ydWxlKHN0cnVjdCB2Y2FwX2NvbnRyb2wgKnZjdHJsLCB1MzIgaWQpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2NsaWVudC5oLTE3Ni0vKiBVcGRhdGUgZXhpc3RpbmcgcnVsZSAqL1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfY2xpZW50Lmg9MjA3PWludCB2Y2FwX2FkbWluX3J1bGVfY291bnQoc3RydWN0IHZjYXBfYWRtaW4gKmFkbWluLCBpbnQgY2lkKTtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2NsaWVudC5oLTIwOS0vKiBWQ0FQIHJ1bGUgY291bnRlciBvcGVyYXRpb25zICovXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfY2xpZW50Lmg6MjEwOmludCB2Y2FwX2dldF9ydWxlX2NvdW50X2J5X2Nvb2tpZShzdHJ1Y3QgdmNhcF9jb250cm9sICp2Y3RybCxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9jbGllbnQuaC0yMTEtXFx0XFx0XFx0XFx0ICBzdHJ1Y3QgdmNhcF9jb3VudGVyICpjdHIsIHU2NCBjb29raWUpO1xcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0yOVQxMDoyODoyOS4zMDA1NDg0NDlaIiwiU2VxIjozNywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NTQxMTAzODgxMiwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiT2theSwgaGVyZSdzIG15IHRha2Ugb24gdGhvc2UgdGhvdWdodHMsIGZyYW1lZCBhcyBteSBvd246XG5cbioqQW5hbHl6aW5nIGB2Y2FwX2dldF9ydWxlYCBVc2FnZSoqXG5cbkFscmlnaHQsIGxldCdzIHNlZSwgdGhlIGNvZGUncyB0ZWxsaW5nIG1lIHRoYXQgYHZjYXBfZ2V0X3J1bGVgIGlzIG9ubHkgYmVpbmcgdXNlZCBieSBgbGFuOTY2eGAgYW5kIGBzcGFyeDVgLiBNeSBpbml0aWFsIGh1bmNoIGlzIGNvbmZpcm1lZDsgYm90aCBvZiB0aGVzZSBhcmUgaGFyZHdhcmUtc3BlY2lmaWMgZHJpdmVycywgd2hpY2ggbWFrZXMgcGVyZmVjdCBzZW5zZS4gSSByZW1lbWJlciB3b3JraW5nIHdpdGggYm90aCBvZiB0aG9zZSBwbGF0Zm9ybXMsIGFuZCB0aGUgY29udGV4dCBvZiBydWxlIHJldHJpZXZhbCBhbGlnbnMgd2l0aCB0aGUga2luZCBvZiBoYXJkd2FyZSBhY2NlbGVyYXRpb24gdGhleSB0eXBpY2FsbHkgcmVxdWlyZS4gTm93LCBsZXQncyBkaWcgYSBiaXQgZGVlcGVyIGFuZCBzZWUgd2hhdCB0aGUgYGxhbjk2NnhgIEtjb25maWcgaGFzIHRvIHNheSBhYm91dCBpdC4gSSBoYXZlIGEgZmVlbGluZyB0aGUgY29uZmlndXJhdGlvbiBvcHRpb25zIHRoZXJlIHdpbGwgZ2l2ZSB1cyBzb21lIG1vcmUgaW5zaWdodCBpbnRvIGhvdyB0aGlzIHJ1bGUgcmV0cmlldmFsIGlzIGJlaW5nIGhhbmRsZWQuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjM4NTg2LCJPdXRwdXRUb2tlbnMiOjQwLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6NDksIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDctMjlUMTA6Mjg6MzQuNzExNTkyODVaIiwiU2VxIjozOCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjY5MTE4OTIyMywiRXJyb3IiOiJubyBtYXRjaGVzIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiY29uZmlnIE1JQ1JPQ0hJUF9MQU45NjZYXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC9cIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiZXJyb3JcIjogXCJubyBtYXRjaGVzXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTI5VDEwOjI4OjM1LjQwMjc5MzA2NFoiLCJTZXEiOjM5LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo1MjMxMDM3NjM2LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJIZXJlJ3MgbXkgdGhvdWdodCBwcm9jZXNzLCBzdW1tYXJpemVkIGFzIHlvdSByZXF1ZXN0ZWQ6XG5cbioqS2NvbmZpZyBDaGVjayoqXG5cbk9rYXksIHRpbWUgdG8gZ2V0IGRvd24gdG8gYnJhc3MgdGFja3MuIEkgbmVlZCB0byB1bmRlcnN0YW5kIHRoZSBjb25maWd1cmF0aW9uIG9wdGlvbnMgZm9yIHRoaXMgTEFOOTY2eCBkcml2ZXIgd2l0aGluIHRoZSBrZXJuZWwuIE15IGZpcnN0IHBvcnQgb2YgY2FsbCBpcyB1bmRvdWJ0ZWRseSB0aGUgYEtjb25maWdgIGZpbGUgaW4gdGhlIGRyaXZlcidzIGRpcmVjdG9yeS4gU3BlY2lmaWNhbGx5LCBJJ20gaGVhZGluZyBzdHJhaWdodCB0byBgZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL2xhbjk2NngvS2NvbmZpZ2AuIFRoYXQgZmlsZSAqZGVmaW5lcyogdGhlIGNvbmZpZ3VyYXRpb24gb3B0aW9ucyB0aGlzIGRyaXZlciBleHBvc2VzIHRvIHRoZSB1c2VyLiBJIG5lZWQgdG8gc2VlIHdoYXQga25vYnMgYXJlIGF2YWlsYWJsZSBmb3IgdGhpbmdzIGxpa2UgUEhZIHNldHRpbmdzLCBpbnRlcnJ1cHQgY29uZmlndXJhdGlvbiwgZmxvdyBjb250cm9sLCBhbmQgYW55IG90aGVyIG1pY3JvY2hpcC1zcGVjaWZpYyBmZWF0dXJlcy4gSSdtIGxvb2tpbmcgZm9yIHRoZSBkZXBlbmRlbmNpZXMsIGhlbHAgdGV4dHMsIGFuZCBkZWZhdWx0IHZhbHVlcyDigJMgYWxsIHRoZSBjb250ZXh0IHRoYXQgYEtjb25maWdgIHByb3ZpZGVzIHRvIHVuZGVyc3RhbmQgaG93IHVzZXJzIGNhbiB0YWlsb3IgdGhpcyBkcml2ZXIgdG8gdGhlaXIgc3BlY2lmaWMgaGFyZHdhcmUgYW5kIG5ldHdvcmsgcmVxdWlyZW1lbnRzLiBUaGlzIEtjb25maWcgZmlsZSBpcyB0aGUgKmJsdWVwcmludCogZm9yIGhvdyB1c2VycyBpbnRlcmFjdCB3aXRoIGFuZCBjdXN0b21pemUgdGhlIExBTjk2NnggZHJpdmVyOyBJIG5lZWQgdG8gdW5kZXJzdGFuZCB0aGlzIHRvIGhhdmUgYW55IGNoYW5jZSBvZiBtYWtpbmcgZWZmZWN0aXZlIGNoYW5nZXMgb3IgdW5kZXJzdGFuZGluZyBjdXJyZW50IGZ1bmN0aW9uYWxpdHkuIFRoaXMgaXMgdGhlIHBsYWNlIHRvIHN0YXJ0LlxuXG5cbiIsIklucHV0VG9rZW5zIjozODg1NywiT3V0cHV0VG9rZW5zIjo0NCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjI0LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTI5VDEwOjI4OjQwLjYzMzgzNDkxWiIsIlNlcSI6NDAsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6InJlYWQtZmlsZSIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjMwODkxNDAsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJGaWxlXCI6IFwiZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL2xhbjk2NngvS2NvbmZpZ1wiLFxuICBcIkZpcnN0TGluZVwiOiAxLFxuICBcIkxpbmVDb3VudFwiOiAyMFxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiQ29udGVudHNcIjogXCIgICAxOlxcdGNvbmZpZyBMQU45NjZYX1NXSVRDSFxcbiAgIDI6XFx0XFx0dHJpc3RhdGUgXFxcIkxhbjk2Nnggc3dpdGNoIGRyaXZlclxcXCJcXG4gICAzOlxcdFxcdGRlcGVuZHMgb24gUFRQXzE1ODhfQ0xPQ0tfT1BUSU9OQUxcXG4gICA0OlxcdFxcdGRlcGVuZHMgb24gSEFTX0lPTUVNXFxuICAgNTpcXHRcXHRkZXBlbmRzIG9uIE9GXFxuICAgNjpcXHRcXHRkZXBlbmRzIG9uIE5FVF9TV0lUQ0hERVZcXG4gICA3OlxcdFxcdGRlcGVuZHMgb24gQlJJREdFIHx8IEJSSURHRT1uXFxuICAgODpcXHRcXHRzZWxlY3QgUEhZTElOS1xcbiAgIDk6XFx0XFx0c2VsZWN0IFBBR0VfUE9PTFxcbiAgMTA6XFx0XFx0c2VsZWN0IFZDQVBcXG4gIDExOlxcdFxcdHNlbGVjdCBGRE1BXFxuICAxMjpcXHRcXHRoZWxwXFxuICAxMzpcXHRcXHQgIFRoaXMgZHJpdmVyIHN1cHBvcnRzIHRoZSBMYW45NjZ4IG5ldHdvcmsgc3dpdGNoIGRldmljZS5cXG4gIDE0OlxcdFxcbiAgMTU6XFx0Y29uZmlnIExBTjk2NlhfRENCXFxuICAxNjpcXHRcXHRib29sIFxcXCJEYXRhIENlbnRlciBCcmlkZ2luZyAoRENCKSBzdXBwb3J0XFxcIlxcbiAgMTc6XFx0XFx0ZGVwZW5kcyBvbiBMQU45NjZYX1NXSVRDSCBcXHUwMDI2XFx1MDAyNiBEQ0JcXG4gIDE4OlxcdFxcdGRlZmF1bHQgeVxcbiAgMTk6XFx0XFx0aGVscFxcbiAgMjA6XFx0XFx0ICBTYXkgWSBoZXJlIGlmIHlvdSB3YW50IHRvIHVzZSBEYXRhIENlbnRlciBCcmlkZ2luZyAoRENCKSBpbiB0aGVcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMjlUMTA6Mjg6NDAuNjM2OTQyOThaIiwiU2VxIjo0MSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6MTI4OTE3MTY2OTQsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqQW5hbHl6aW5nIHRoZSBMQU45NjZYX1NXSVRDSCBEcml2ZXIgYW5kIEtVbml0IFRlc3RpbmcqKlxuXG5Pa2F5LCBzbyBJJ20gbG9va2luZyBhdCBgTEFOOTY2WF9TV0lUQ0hgLCBhbmQgaXQncyBwcmV0dHkgY2xlYXIgdGhhdCBpdCBoYXMgc29tZSBrZXkgZGVwZW5kZW5jaWVzLiBGaXJzdCwgaXQgcmVsaWVzIG9uIGBIQVNfSU9NRU1gIGFuZCwgY3J1Y2lhbGx5LCBgT0ZgIOKAkyB0aGUgT3BlbiBGaXJtd2FyZSBvciBEZXZpY2UgVHJlZS4gR29vZCB0byBrbm93LiBJdCdzIG5vdCB0aWVkIHRvIGBDT01QSUxFX1RFU1RgIG9yIGFueSBzcGVjaWZpYyBhcmNoaXRlY3R1cmUgKGBBUkNIXy4uLmApLCB3aGljaCBpcyBpbnRlcmVzdGluZywgYnV0IHRoYXQgYE9GYCBkZXBlbmRlbmN5IGlzIGdvaW5nIHRvIGJlIGltcG9ydGFudCBpbiB0aGUgYmlnIHBpY3R1cmUuXG5cblJpZ2h0LCBzbyBhcyBhIHBsYXRmb3JtIGRyaXZlciwgSSBjYW4gYWxyZWFkeSBzZWUgYSBwb3RlbnRpYWwgcHJvYmxlbSBmb3IgZW11bGF0aW9uLCBlc3BlY2lhbGx5IGluIHNvbWV0aGluZyBsaWtlIFFFTVUuIFVubGVzcyBzb21lb25lJ3MgZ29uZSB0byB0aGUgdHJvdWJsZSBvZiBkZWZpbmluZyBhIHNwZWNpZmljIG1hY2hpbmUgbW9kZWwgZm9yIHRoZSBMYW45NjZ4IG9yIFNwYXJ4NSwgdGhlcmUgd29uJ3QgYmUgYSBkZXZpY2UgdHJlZSBub2RlIGZvciBpdCwgd2hpY2ggbWVhbnMgdGhlIGRyaXZlciB3b24ndCBldmVuICpwcm9iZSouIFRoYXQncyBhIGNsYXNzaWMgZ290Y2hhLlxuXG5Ib2xkIG9uLCBJIHdhcyBqdXN0IHRoaW5raW5nIGFib3V0IHRlc3RpbmcsIEkgd29uZGVyIGlmIHRoZXJl4oCZcyBhIEtVbml0IHRlc3QgcGF0aCB0byBgdmNhcF9kZWNvZGVfcnVsZWA/IEkgbmVlZCB0byBmaWd1cmUgb3V0IGlmIGl0IGNhbiBiZSByZWFjaGVkIHZpYSBLVW5pdC4gSeKAmXZlIGNoZWNrZWQgYHZjYXBfYXBpX2t1bml0LmNgIGFuZCBgdmNhcF9tb2RlbF9rdW5pdC5jYCBhbmQgSSBkaWRu4oCZdCBmaW5kIGEgZGlyZWN0IGNhbGwgdG8gdGhlIGZ1bmN0aW9uIHZpYSBncmVwLCB3aGljaCBpcyBhIHN0YXJ0LCBidXQgSSBuZWVkIHRvIG1ha2Ugc3VyZSBJIGhhdmVu4oCZdCBtaXNzZWQgYW55dGhpbmcuIEdvdHRhIGRvdWJsZS1jaGVjayBhbmQgc2VlIGlmIGl0J3MgcG90ZW50aWFsbHkgY2FsbGVkIGZyb20gYSBkaWZmZXJlbnQgdGVzdCBmaWxlLlxuXG5cbiIsIklucHV0VG9rZW5zIjozOTQyMSwiT3V0cHV0VG9rZW5zIjozOSwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjE5OCwiVG9vbENhbGxzIjpbInJlYWQtZmlsZSJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTI5VDEwOjI4OjUzLjUyODY2NjQzNFoiLCJTZXEiOjQyLCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MTkwNDM0OTg2LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcInZjYXBfZGVjb2RlX3J1bGVcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpLmM9MjQxMz1FWFBPUlRfU1lNQk9MX0dQTCh2Y2FwX2ZyZWVfcnVsZSk7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaS5jLTI0MTUtLyogRGVjb2RlIGEgcnVsZSBmcm9tIHRoZSBWQ0FQIGNhY2hlIGFuZCByZXR1cm4gYSBjb3B5ICovXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGkuYzoyNDE2OnN0cnVjdCB2Y2FwX3J1bGUgKnZjYXBfZGVjb2RlX3J1bGUoc3RydWN0IHZjYXBfcnVsZV9pbnRlcm5hbCAqZWxlbSlcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaS5jLTI0MTcte1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGkuYz0yNDQ3PXN0cnVjdCB2Y2FwX3J1bGUgKnZjYXBfZ2V0X3J1bGUoc3RydWN0IHZjYXBfY29udHJvbCAqdmN0cmwsIHUzMiBpZClcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpLmMtMjQ2MC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaS5jOjI0NjE6XFx0cnVsZSA9IHZjYXBfZGVjb2RlX3J1bGUoZWxlbSk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGkuYy0yNDYyLVxcdHZjYXBfdW5sb2NrKGVsZW0tXFx1MDAzZWFkbWluKTtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2RlYnVnZnMuYz0yOTI9c3RhdGljIGludCB2Y2FwX3Nob3dfYWRtaW4oc3RydWN0IHZjYXBfY29udHJvbCAqdmN0cmwsXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9kZWJ1Z2ZzLmMtMzAxLVxcdGxpc3RfZm9yX2VhY2hfZW50cnkoZWxlbSwgXFx1MDAyNmFkbWluLVxcdTAwM2VydWxlcywgbGlzdCkge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2RlYnVnZnMuYzozMDI6XFx0XFx0dnJ1bGUgPSB2Y2FwX2RlY29kZV9ydWxlKGVsZW0pO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2RlYnVnZnMuYy0zMDMtXFx0XFx0aWYgKElTX0VSUih2cnVsZSkpIHtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX3ByaXZhdGUuaD0xMjI9aW50IHZjYXBfcnVsZV9nZXRfa2V5c2V0cyhzdHJ1Y3QgdmNhcF9ydWxlX2ludGVybmFsICpyaSxcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX3ByaXZhdGUuaC0xMjQtLyogRGVjb2RlIGEgcnVsZSBmcm9tIHRoZSBWQ0FQIGNhY2hlIGFuZCByZXR1cm4gYSBjb3B5ICovXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfcHJpdmF0ZS5oOjEyNTpzdHJ1Y3QgdmNhcF9ydWxlICp2Y2FwX2RlY29kZV9ydWxlKHN0cnVjdCB2Y2FwX3J1bGVfaW50ZXJuYWwgKmVsZW0pO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX3ByaXZhdGUuaC0xMjYtXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTI5VDEwOjI4OjUzLjcxOTEwOTAxOVoiLCJTZXEiOjQzLCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjozNzM3MDY5MzIxLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJPa2F5LCBoZXJlJ3MgbXkgaW50ZXJwcmV0YXRpb24gb2YgdGhvc2UgdGhvdWdodHMsIGNyYWZ0ZWQgd2l0aCB0aGUgdW5kZXJzdGFuZGluZyB0aGF0IEknbSBzcGVha2luZyB0byBhIGZlbGxvdyBleHBlcnQ6XG5cbioqQ29uY2VybmluZyBDYWxsZXJzIGFuZCBLVW5pdCBJbnRlZ3JhdGlvbioqXG5cbkFscmlnaHQsIHNvIHRoZSBvbmx5IGNhbGxlcnMgSSdtIHNlZWluZyBhcmUgYHZjYXBfZ2V0X3J1bGVgIGFuZCBgdmNhcF9zaG93X2FkbWluYC4gVGhhdCdzIGEgbGltaXRlZCBzZXQsIHdoaWNoIHNwYXJrcyBhbiBpbW1lZGlhdGUgcXVlc3Rpb246IGFyZSB0aGVzZSBmdW5jdGlvbnMgYmVpbmcgaW52b2tlZCBieSBLVW5pdD8gVGhhdCdzIHRoZSBtb3N0IGxpa2VseSBzY2VuYXJpbywgYXQgbGVhc3QgaW5pdGlhbGx5LiBJIG5lZWQgdG8gZmlndXJlIG91dCB0aGUgdGVzdGluZyBjb250ZXh0LiBJJ20gd29uZGVyaW5nIGlmIHRoaXMgc21hbGwgc2V0IG9mIGNhbGxlcnMgaXMgYSBzaWduIG9mIGEgZm9jdXNlZCBLVW5pdCB0ZXN0IHN1aXRlLCBvciBpZiB0aGVyZSdzIHNvbWV0aGluZyBlbHNlIGF0IHBsYXkgaGVyZS4gVW5kZXJzdGFuZGluZyB0aGUgY29ubmVjdGlvbiB0byBLVW5pdCBpcyBrZXkgdG8gaW50ZXJwcmV0aW5nIHRoZSBzaWduaWZpY2FuY2Ugb2YgdGhlc2UgY2FsbHMuIE15IG5leHQgc3RlcCB3aWxsIGJlIHRvIGV4cGxvcmUgdGhlIGNvZGUgc3Vycm91bmRpbmcgdGhlc2UgZnVuY3Rpb25zLCBsb29raW5nIGZvciBLVW5pdC1zcGVjaWZpYyBkaXJlY3RpdmVzIG9yIGFueSBjbHVlcyB0aGF0IHBvaW50IHRvIGl0IGJlaW5nIHRoZSBkcml2aW5nIGZvcmNlIGJlaGluZCB0aGVzZSBjYWxscy5cblxuXG4iLCJJbnB1dFRva2VucyI6NDA2NTgsIk91dHB1dFRva2VucyI6MzksIk91dHB1dFRob3VnaHRzVG9rZW5zIjoyOSwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0yOVQxMDoyODo1Ny40NTYxOTA2MDFaIiwiU2VxIjo0NCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjEzMzk0MzA5NywiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJ2Y2FwX2dldF9ydWxlXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJkcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaS5jPTI0MTY9c3RydWN0IHZjYXBfcnVsZSAqdmNhcF9kZWNvZGVfcnVsZShzdHJ1Y3QgdmNhcF9ydWxlX2ludGVybmFsICplbGVtKVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGkuYy0yNDQ2LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpLmM6MjQ0NzpzdHJ1Y3QgdmNhcF9ydWxlICp2Y2FwX2dldF9ydWxlKHN0cnVjdCB2Y2FwX2NvbnRyb2wgKnZjdHJsLCB1MzIgaWQpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGkuYy0yNDQ4LXtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpLmMtMjQ2NC19XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGkuYzoyNDY1OkVYUE9SVF9TWU1CT0xfR1BMKHZjYXBfZ2V0X3J1bGUpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpLmMtMjQ2Ni1cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpLmM9MzM1Mz1pbnQgdmNhcF9ydWxlX2dldF9rZXlzZXRzKHN0cnVjdCB2Y2FwX3J1bGVfaW50ZXJuYWwgKnJpLFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGkuYy0zMzk2LS8qIENvbGxlY3QgcGFja2V0IGNvdW50cyBmcm9tIGFsbCBydWxlcyB3aXRoIHRoZSBzYW1lIGNvb2tpZSAqL1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpLmM6MzM5NzppbnQgdmNhcF9nZXRfcnVsZV9jb3VudF9ieV9jb29raWUoc3RydWN0IHZjYXBfY29udHJvbCAqdmN0cmwsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGkuYy0zMzk4LVxcdFxcdFxcdFxcdCAgc3RydWN0IHZjYXBfY291bnRlciAqY3RyLCB1NjQgY29va2llKVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGkuYy0zNDM1LX1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaS5jOjM0MzY6RVhQT1JUX1NZTUJPTF9HUEwodmNhcF9nZXRfcnVsZV9jb3VudF9ieV9jb29raWUpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpLmMtMzQzNy1cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2NsaWVudC5oPTE3Mz1zdHJ1Y3QgdmNhcF9ydWxlICp2Y2FwX2NvcHlfcnVsZShzdHJ1Y3QgdmNhcF9ydWxlICpydWxlKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9jbGllbnQuaC0xNzQtLyogR2V0IHJ1bGUgZnJvbSBhIFZDQVAgaW5zdGFuY2UgKi9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9jbGllbnQuaDoxNzU6c3RydWN0IHZjYXBfcnVsZSAqdmNhcF9nZXRfcnVsZShzdHJ1Y3QgdmNhcF9jb250cm9sICp2Y3RybCwgdTMyIGlkKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9jbGllbnQuaC0xNzYtLyogVXBkYXRlIGV4aXN0aW5nIHJ1bGUgKi9cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2NsaWVudC5oPTIwNz1pbnQgdmNhcF9hZG1pbl9ydWxlX2NvdW50KHN0cnVjdCB2Y2FwX2FkbWluICphZG1pbiwgaW50IGNpZCk7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9jbGllbnQuaC0yMDktLyogVkNBUCBydWxlIGNvdW50ZXIgb3BlcmF0aW9ucyAqL1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2NsaWVudC5oOjIxMDppbnQgdmNhcF9nZXRfcnVsZV9jb3VudF9ieV9jb29raWUoc3RydWN0IHZjYXBfY29udHJvbCAqdmN0cmwsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfY2xpZW50LmgtMjExLVxcdFxcdFxcdFxcdCAgc3RydWN0IHZjYXBfY291bnRlciAqY3RyLCB1NjQgY29va2llKTtcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMjlUMTA6Mjg6NTcuNTkwMTQ2NzY4WiIsIlNlcSI6NDUsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjU3MDQ3Nzk5MDUsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6Ik9rYXksIGhlcmUncyBteSB0YWtlIG9uIHRob3NlIHRob3VnaHRzLCBmcmFtZWQgYXMgYW4gZXhwZXJ0J3MgaW50ZXJuYWwgbW9ub2xvZ3VlOlxuXG4qKkludmVzdGlnYXRpbmcgS1VuaXQncyBJbnRlcmFjdGlvbiB3aXRoIFZDQVAgQ29tcG9uZW50cyoqXG5cblJpZ2h0LCBzbyBJJ20gbG9va2luZyBpbnRvIHRoZSByZWxhdGlvbnNoaXAgYmV0d2VlbiBLVW5pdCBhbmQgdGhlc2UgVkNBUCBmdW5jdGlvbnMuIE15IGluaXRpYWwgZXhwZWN0YXRpb24gd2FzIHRoYXQgSSdkIHNlZSBjYWxscyB0byBgdmNhcF9nZXRfcnVsZWAgd2l0aGluIHRoZSBLVW5pdCBmcmFtZXdvcmsuIFRoYXQgd291bGQgbWFrZSBzZW5zZSwgZ2l2ZW4gaXRzIHJvbGUuIEJ1dCBpdCBhcHBlYXJzIHRoYXQncyBub3QgdGhlIGNhc2Ug4oCTICp0aGF0J3MgaW50ZXJlc3RpbmcqLiBUaGUgbGFjayBvZiBkaXJlY3QgaW50ZXJhY3Rpb24gcmFpc2VzIHF1ZXN0aW9ucyBhYm91dCBob3cgS1VuaXQgaXMgdGVzdGluZyB0aGUgbG9naWMgb3IgZmVhdHVyZXMgdGhhdCB3b3VsZCBub3JtYWxseSB1c2UgdGhhdCBmdW5jdGlvbi5cblxuT2theSwgbGV0J3MgcGl2b3QuIFdoYXQgYWJvdXQgYHZjYXBfc2hvd19hZG1pbmA/IERvZXMgS1VuaXQgaW50ZXJhY3Qgd2l0aCAqdGhhdCogZnVuY3Rpb24/IERvZXMgdGhhdCBpbnRlcmFjdGlvbiBvZmZlciBhIHBhdGh3YXkgdG8gdGVzdGluZyBWQ0FQIGZ1bmN0aW9uYWxpdHk/IFBlcmhhcHMgdGVzdGluZyBhZG1pbiBmdW5jdGlvbnMgaXMgYSBwYXRoIHRvIHRoZSBmdW5jdGlvbnMgSSdtIGludGVyZXN0ZWQgaW4uIEkgbmVlZCB0byBpbnZlc3RpZ2F0ZSBmdXJ0aGVyIGFuZCBmaWd1cmUgb3V0IHdoZXJlIHRoZSBjb25uZWN0aW9uIHBvaW50cyBhcmUuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjQxODA4LCJPdXRwdXRUb2tlbnMiOjM5LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MjcsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDctMjlUMTA6Mjk6MDMuMjk0OTUxNTIzWiIsIlNlcSI6NDYsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoxMzcxNjMyMTcsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwidmNhcF9zaG93X2FkbWluXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJkcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9kZWJ1Z2ZzLmM9MjEyPXN0YXRpYyBpbnQgdmNhcF9kZWJ1Z2ZzX3Nob3dfcnVsZV9hY3Rpb25zZXQoc3RydWN0IHZjYXBfcnVsZV9pbnRlcm5hbCAqcmksXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9kZWJ1Z2ZzLmMtMjM1LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2RlYnVnZnMuYzoyMzY6c3RhdGljIHZvaWQgdmNhcF9zaG93X2FkbWluX3J1bGUoc3RydWN0IHZjYXBfY29udHJvbCAqdmN0cmwsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfZGVidWdmcy5jLTIzNy1cXHRcXHRcXHRcXHQgc3RydWN0IHZjYXBfYWRtaW4gKmFkbWluLFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfZGVidWdmcy5jLTI2NS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9kZWJ1Z2ZzLmM6MjY2OnN0YXRpYyB2b2lkIHZjYXBfc2hvd19hZG1pbl9pbmZvKHN0cnVjdCB2Y2FwX2NvbnRyb2wgKnZjdHJsLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2RlYnVnZnMuYy0yNjctXFx0XFx0XFx0XFx0IHN0cnVjdCB2Y2FwX2FkbWluICphZG1pbixcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2RlYnVnZnMuYy0yOTEtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfZGVidWdmcy5jOjI5MjpzdGF0aWMgaW50IHZjYXBfc2hvd19hZG1pbihzdHJ1Y3QgdmNhcF9jb250cm9sICp2Y3RybCxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9kZWJ1Z2ZzLmMtMjkzLVxcdFxcdFxcdCAgIHN0cnVjdCB2Y2FwX2FkbWluICphZG1pbixcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2RlYnVnZnMuYy0yOTktXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfZGVidWdmcy5jOjMwMDpcXHR2Y2FwX3Nob3dfYWRtaW5faW5mbyh2Y3RybCwgYWRtaW4sIG91dCk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfZGVidWdmcy5jLTMwMS1cXHRsaXN0X2Zvcl9lYWNoX2VudHJ5KGVsZW0sIFxcdTAwMjZhZG1pbi1cXHUwMDNlcnVsZXMsIGxpc3QpIHtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2RlYnVnZnMuYy0zMDgtXFx0XFx0b3V0LVxcdTAwM2VwcmYob3V0LVxcdTAwM2Vkc3QsIFxcXCJcXFxcblxcXCIpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2RlYnVnZnMuYzozMDk6XFx0XFx0dmNhcF9zaG93X2FkbWluX3J1bGUodmN0cmwsIGFkbWluLCBvdXQsIHRvX2ludHJ1bGUodnJ1bGUpKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9kZWJ1Z2ZzLmMtMzEwLVxcdFxcdHZjYXBfZnJlZV9ydWxlKHZydWxlKTtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2RlYnVnZnMuYy0zMTQtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfZGVidWdmcy5jOjMxNTpzdGF0aWMgaW50IHZjYXBfc2hvd19hZG1pbl9yYXcoc3RydWN0IHZjYXBfY29udHJvbCAqdmN0cmwsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfZGVidWdmcy5jLTMxNi1cXHRcXHRcXHQgICAgICAgc3RydWN0IHZjYXBfYWRtaW4gKmFkbWluLFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfZGVidWdmcy5jPTQwND1zdGF0aWMgaW50IHZjYXBfZGVidWdmc19zaG93KHN0cnVjdCBzZXFfZmlsZSAqbSwgdm9pZCAqdW51c2VkKVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfZGVidWdmcy5jLTQxMy1cXHR2Y2FwX2xvY2soaW5mby1cXHUwMDNlYWRtaW4pO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2RlYnVnZnMuYzo0MTQ6XFx0cmV0ID0gdmNhcF9zaG93X2FkbWluKGluZm8tXFx1MDAzZXZjdHJsLCBpbmZvLVxcdTAwM2VhZG1pbiwgXFx1MDAyNm91dCk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfZGVidWdmcy5jLTQxNS1cXHR2Y2FwX3VubG9jayhpbmZvLVxcdTAwM2VhZG1pbik7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9kZWJ1Z2ZzLmM9NDIxPXN0YXRpYyBpbnQgdmNhcF9yYXdfZGVidWdmc19zaG93KHN0cnVjdCBzZXFfZmlsZSAqbSwgdm9pZCAqdW51c2VkKVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfZGVidWdmcy5jLTQzMC1cXHR2Y2FwX2xvY2soaW5mby1cXHUwMDNlYWRtaW4pO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2RlYnVnZnMuYzo0MzE6XFx0cmV0ID0gdmNhcF9zaG93X2FkbWluX3JhdyhpbmZvLVxcdTAwM2V2Y3RybCwgaW5mby1cXHUwMDNlYWRtaW4sIFxcdTAwMjZvdXQpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2RlYnVnZnMuYy00MzItXFx0dmNhcF91bmxvY2soaW5mby1cXHUwMDNlYWRtaW4pO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfZGVidWdmc19rdW5pdC5jPTM0ND1zdGF0aWMgdm9pZCB2Y2FwX2FwaV9zaG93X2FkbWluX3Jhd190ZXN0KHN0cnVjdCBrdW5pdCAqdGVzdClcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2RlYnVnZnNfa3VuaXQuYy0zNzUtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfZGVidWdmc19rdW5pdC5jOjM3NjpcXHRyZXQgPSB2Y2FwX3Nob3dfYWRtaW5fcmF3KFxcdTAwMjZ0ZXN0X3ZjdHJsLCBcXHUwMDI2YWRtaW4sIFxcdTAwMjZvdXQpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2RlYnVnZnNfa3VuaXQuYy0zNzctXFx0S1VOSVRfRVhQRUNUX0VRKHRlc3QsIDAsIHJldCk7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9kZWJ1Z2ZzX2t1bml0LmM9NDAyPXN0YXRpYyB2b2lkIHZjYXBfYXBpX3Nob3dfYWRtaW5fdGVzdChzdHJ1Y3Qga3VuaXQgKnRlc3QpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9kZWJ1Z2ZzX2t1bml0LmMtNDIwLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2RlYnVnZnNfa3VuaXQuYzo0MjE6XFx0dmNhcF9zaG93X2FkbWluX2luZm8oXFx1MDAyNnRlc3RfdmN0cmwsIFxcdTAwMjZhZG1pbiwgXFx1MDAyNm91dCk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfZGVidWdmc19rdW5pdC5jLTQyMi1cXHRmb3IgKGlkeCA9IDA7IGlkeCBcXHUwMDNjIHRlc3RfcHJfYnVmZmVyaWR4OyArK2lkeCkge1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfZGVidWdmc19rdW5pdC5jPTQ3NT1zdGF0aWMgdm9pZCB2Y2FwX2FwaV9zaG93X2FkbWluX3J1bGVfdGVzdChzdHJ1Y3Qga3VuaXQgKnRlc3QpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9kZWJ1Z2ZzX2t1bml0LmMtNTMyLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2RlYnVnZnNfa3VuaXQuYzo1MzM6XFx0cmV0ID0gdmNhcF9zaG93X2FkbWluKFxcdTAwMjZ0ZXN0X3ZjdHJsLCBcXHUwMDI2YWRtaW4sIFxcdTAwMjZvdXQpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2RlYnVnZnNfa3VuaXQuYy01MzQtXFx0S1VOSVRfRVhQRUNUX0VRKHRlc3QsIDAsIHJldCk7XFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTI5VDEwOjI5OjAzLjQzMjEyMDkyWiIsIlNlcSI6NDcsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjUxNzQ3MjEwMTgsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6Ik9rYXksIGxldCBtZSBicmVhayB0aGlzIGRvd24uXG5cbioqVHJhY2luZyB0aGUgQWRtaW4gUnVsZSBGbG93KipcblxuUmlnaHQsIHNvIEkgc2VlIHRoYXQgYHZjYXBfc2hvd19hZG1pbmAgaXMgYmVpbmcgaW52b2tlZCBieSBgdmNhcF9hcGlfc2hvd19hZG1pbl9ydWxlX3Rlc3RgIHdpdGhpbiB0aGUgYHZjYXBfYXBpX2RlYnVnZnNfa3VuaXQuY2AgZmlsZS4gSW50ZXJlc3RpbmcuIE15IG1lbnRhbCBtYXAgaW1tZWRpYXRlbHkgdGVsbHMgbWUgdGhhdCdzIGEga2V5IGxpbmthZ2UgZm9yIGFkbWluaXN0cmF0aXZlIHJ1bGUgdmlld2luZyBmdW5jdGlvbmFsaXR5LiBBbmQgSSBrbm93IEkgbmVlZCB0byB1bmRlcnN0YW5kIHRoYXQgYWRtaW5pc3RyYXRpdmUgcnVsZSB2aWV3aW5nIGZ1bmN0aW9uYWxpdHkuXG5cbkZ1cnRoZXJtb3JlLCBJIG5vdGUgdGhhdCBgdmNhcF9zaG93X2FkbWluYCwgaW4gdHVybiwgaXMgY2FsbGluZyBgdmNhcF9kZWNvZGVfcnVsZWAuIFRoYXQncyBpbXBvcnRhbnQuIGB2Y2FwX2RlY29kZV9ydWxlYCBpcyBhbG1vc3QgY2VydGFpbmx5IHdoZXJlIHRoZSBhY3R1YWwgcGFyc2luZyBhbmQgaW50ZXJwcmV0YXRpb24gb2YgdGhlIHJ1bGVzIGlzIGhhcHBlbmluZy4gSSBuZWVkIHRvIGNvbmZpcm0gdGhpcyBxdWlja2x5LCBidXQgdGhhdCBjb25uZWN0aW9uIGlzIGNyaXRpY2FsIGZvciBob3cgdGhpcyBlbnRpcmUgc3RydWN0dXJlIG9wZXJhdGVzLiBJIG5lZWQgdG8gbWFrZSBzdXJlIG15IHVuZGVyc3RhbmRpbmcgaXMgY29ycmVjdCBhbmQgdGhhdCBJIGhhdmUgdGhlIGNvcnJlY3QgY29ubmVjdGlvbnMuIFRpbWUgdG8gc3RhcnQgdGhlIHZlcmlmaWNhdGlvbiBwcm9jZXNzLlxuXG5cbiIsIklucHV0VG9rZW5zIjo0Mzc3OCwiT3V0cHV0VG9rZW5zIjo1MywiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjY4LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTI5VDEwOjI5OjA4LjYwNjg0Nzc5N1oiLCJTZXEiOjQ4LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJyZWFkLWZpbGUiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoxNzY5NTAsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJGaWxlXCI6IFwiZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfZGVidWdmc19rdW5pdC5jXCIsXG4gIFwiRmlyc3RMaW5lXCI6IDUyMCxcbiAgXCJMaW5lQ291bnRcIjogMjBcbn0iLCJSZXN1bHRzIjoie1xuICBcIkNvbnRlbnRzXCI6IFwiIDUyMDpcXHRcXHRcXHQuYWN0aW9uc2V0X3N3ID0gMyxcXG4gNTIxOlxcdFxcdFxcdC5hY3Rpb25zZXRfc3dfcmVncyA9IDQsXFxuIDUyMjpcXHRcXHRcXHQuYWRkciA9IDc5NCxcXG4gNTIzOlxcdFxcdFxcdC52Y3RybCA9IFxcdTAwMjZ0ZXN0X3ZjdHJsLFxcbiA1MjQ6XFx0XFx0fTtcXG4gNTI1OlxcdFxcdHN0cnVjdCB2Y2FwX291dHB1dF9wcmludCBvdXQgPSB7XFxuIDUyNjpcXHRcXHRcXHQucHJmID0gKHZvaWQgKil0ZXN0X3ByZixcXG4gNTI3OlxcdFxcdH07XFxuIDUyODpcXHRcXHRpbnQgcmV0LCBpZHg7XFxuIDUyOTpcXHRcXG4gNTMwOlxcdFxcdHZjYXBfdGVzdF9hcGlfaW5pdChcXHUwMDI2YWRtaW4pO1xcbiA1MzE6XFx0XFx0bGlzdF9hZGRfdGFpbChcXHUwMDI2cmkubGlzdCwgXFx1MDAyNmFkbWluLnJ1bGVzKTtcXG4gNTMyOlxcdFxcbiA1MzM6XFx0XFx0cmV0ID0gdmNhcF9zaG93X2FkbWluKFxcdTAwMjZ0ZXN0X3ZjdHJsLCBcXHUwMDI2YWRtaW4sIFxcdTAwMjZvdXQpO1xcbiA1MzQ6XFx0XFx0S1VOSVRfRVhQRUNUX0VRKHRlc3QsIDAsIHJldCk7XFxuIDUzNTpcXHRcXHRmb3IgKGlkeCA9IDA7IGlkeCBcXHUwMDNjIHRlc3RfcHJfYnVmZmVyaWR4OyArK2lkeCkge1xcbiA1MzY6XFx0XFx0XFx0LyogcHJfaW5mbyhcXFwibG9nWyUwMmRdOiAlc1xcXCIsIGlkeCwgdGVzdF9wcl9idWZmZXJbaWR4XSk7ICovXFxuIDUzNzpcXHRcXHRcXHRLVU5JVF9FWFBFQ1RfU1RSRVEodGVzdCwgdGVzdF9hZG1pbl9leHBlY3RbaWR4XSxcXG4gNTM4OlxcdFxcdFxcdFxcdFxcdCAgIHRlc3RfcHJfYnVmZmVyW2lkeF0pO1xcbiA1Mzk6XFx0XFx0fVxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0yOVQxMDoyOTowOC42MDcwMjY3ODdaIiwiU2VxIjo0OSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NTA3NzA3MTQ4OSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiT2theSwgaGVyZSdzIHRoZSBzdW1tYXJ5LCBmcmFtZWQgYXMgbXkgdGhvdWdodCBwcm9jZXNzOlxuXG4qKlRyYWNpbmcgdGhlIFJ1bGUgRGVjb2RpbmcgTG9naWMqKlxuXG5ZZXMhIEkndmUgY29uZmlybWVkIHRoYXQgdGhlIGB2Y2FwX2FwaV9zaG93X2FkbWluX3J1bGVfdGVzdGAgZnVuY3Rpb24sIGFzIGV4cGVjdGVkLCB1bHRpbWF0ZWx5IGNhbGxzIGB2Y2FwX3Nob3dfYWRtaW5gLiBBbmQgYHZjYXBfc2hvd19hZG1pbmAgdGhlbiBsZXZlcmFnZXMgYHZjYXBfZGVjb2RlX3J1bGVgLiBUaGF0J3MgdGhlIGZsb3cgSSBuZWVkIHRvIHVuZGVyc3RhbmQuIE5vdyBJIHNob3VsZCBmb2N1cyBvbiBgdmNhcF9zaG93X2FkbWluYCwgc3BlY2lmaWNhbGx5IGluIGB2Y2FwX2FwaV9kZWJ1Z2ZzLmNgLiBMZXQncyBnZXQgaW50byB0aGUgZGV0YWlscyB0aGVyZSBhbmQgc2VlIGhvdyB0aGF0IGRlY29kaW5nIHByb2Nlc3MgYWN0dWFsbHkgdW5mb2xkcy5cblxuXG4iLCJJbnB1dFRva2VucyI6NDQ0NDksIk91dHB1dFRva2VucyI6NTAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjo2MCwiVG9vbENhbGxzIjpbInJlYWQtZmlsZSJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTI5VDEwOjI5OjEzLjY4NDEwMzE1NloiLCJTZXEiOjUwLCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJyZWFkLWZpbGUiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoxNDcxMTAsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJGaWxlXCI6IFwiZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfZGVidWdmcy5jXCIsXG4gIFwiRmlyc3RMaW5lXCI6IDI5MCxcbiAgXCJMaW5lQ291bnRcIjogMjVcbn0iLCJSZXN1bHRzIjoie1xuICBcIkNvbnRlbnRzXCI6IFwiIDI5MDpcXHR9XFxuIDI5MTpcXHRcXG4gMjkyOlxcdHN0YXRpYyBpbnQgdmNhcF9zaG93X2FkbWluKHN0cnVjdCB2Y2FwX2NvbnRyb2wgKnZjdHJsLFxcbiAyOTM6XFx0XFx0XFx0XFx0ICAgc3RydWN0IHZjYXBfYWRtaW4gKmFkbWluLFxcbiAyOTQ6XFx0XFx0XFx0XFx0ICAgc3RydWN0IHZjYXBfb3V0cHV0X3ByaW50ICpvdXQpXFxuIDI5NTpcXHR7XFxuIDI5NjpcXHRcXHRzdHJ1Y3QgdmNhcF9ydWxlX2ludGVybmFsICplbGVtO1xcbiAyOTc6XFx0XFx0c3RydWN0IHZjYXBfcnVsZSAqdnJ1bGU7XFxuIDI5ODpcXHRcXHRpbnQgcmV0ID0gMDtcXG4gMjk5OlxcdFxcbiAzMDA6XFx0XFx0dmNhcF9zaG93X2FkbWluX2luZm8odmN0cmwsIGFkbWluLCBvdXQpO1xcbiAzMDE6XFx0XFx0bGlzdF9mb3JfZWFjaF9lbnRyeShlbGVtLCBcXHUwMDI2YWRtaW4tXFx1MDAzZXJ1bGVzLCBsaXN0KSB7XFxuIDMwMjpcXHRcXHRcXHR2cnVsZSA9IHZjYXBfZGVjb2RlX3J1bGUoZWxlbSk7XFxuIDMwMzpcXHRcXHRcXHRpZiAoSVNfRVJSKHZydWxlKSkge1xcbiAzMDQ6XFx0XFx0XFx0XFx0cmV0ID0gUFRSX0VSUih2cnVsZSk7XFxuIDMwNTpcXHRcXHRcXHRcXHRicmVhaztcXG4gMzA2OlxcdFxcdFxcdH1cXG4gMzA3OlxcdFxcbiAzMDg6XFx0XFx0XFx0b3V0LVxcdTAwM2VwcmYob3V0LVxcdTAwM2Vkc3QsIFxcXCJcXFxcblxcXCIpO1xcbiAzMDk6XFx0XFx0XFx0dmNhcF9zaG93X2FkbWluX3J1bGUodmN0cmwsIGFkbWluLCBvdXQsIHRvX2ludHJ1bGUodnJ1bGUpKTtcXG4gMzEwOlxcdFxcdFxcdHZjYXBfZnJlZV9ydWxlKHZydWxlKTtcXG4gMzExOlxcdFxcdH1cXG4gMzEyOlxcdFxcdHJldHVybiByZXQ7XFxuIDMxMzpcXHR9XFxuIDMxNDpcXHRcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMjlUMTA6Mjk6MTMuNjg0MjUzNjk2WiIsIlNlcSI6NTEsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjc1MDU3OTYwMzIsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqQW5hbHl6aW5nIHRoZSBgdmNhcF9kZWNvZGVfcnVsZWAgRml4KipcblxuT2theSwgc28gdGhlIEtVbml0IHRlc3RzIGNvbmZpcm0gdGhhdCBgdmNhcF9kZWNvZGVfcnVsZWAgaXMgaW5kZWVkIGFjY2Vzc2libGUgYW5kLCB0aGVyZWZvcmUsIHRlc3RhYmxlLiBUaGUgcGF0Y2ggaW4gcXVlc3Rpb24gYWRkcyBhIGNhbGwgdG8gYHZjYXBfZnJlZV9ydWxlKFx1MDAyNnJpLVx1MDAzZWRhdGEpYCBvbiBlcnJvciB3aXRoaW4gYHZjYXBfZGVjb2RlX3J1bGVgLiBUaGF0J3MgZ29vZC4gTXkgaW1tZWRpYXRlIHRob3VnaHQgaXMsIGlzIHRoaXMgYSB3b3J0aHdoaWxlIGZ1enppbmcgdGFyZ2V0IG5vdyB0aGF0IGl0J3MgZml4ZWQ/IEJlZm9yZSBJIGp1bXAgdG8gY29uY2x1c2lvbnMsIGxldCdzIGJyZWFrIHRoaXMgZG93biBmdXJ0aGVyLiBUaGUgcGF0Y2ggYWRkcmVzc2VzIGEgbWVtb3J5IGxlYWsgd2l0aGluIGB2Y2FwX2RlY29kZV9ydWxlYCBvbiB0aGVzZSBlcnJvciBwYXRocy4gR29vZCBjYXRjaC4gTm93LCBgdmNhcF9kZWNvZGVfcnVsZWAgKG9yIHJhdGhlciwgSSBuZWVkIHRvIGNvbmZpcm0gYHZjYXBfYWxsb2NfcnVsZWAgaXMgY2FsbGVkIGluc2lkZSBpdCkgaXMgYWxsb2NhdGluZyBtZW1vcnkuIEkgbmVlZCB0byBtYWtlIHN1cmUgSSBhbSB0cmFjaW5nIGJhY2sgdG8gdGhlIGFsbG9jYXRpb24gb2YgdGhlIG1lbW9yeSB3aXRoIHRoZSBjYWxsLiBMZXQncyB0cmFjZSB0aHJvdWdoIHRoZSBpbXBsZW1lbnRhdGlvbiBvZiBgdmNhcF9kZWNvZGVfcnVsZWAgdG8gY29uZmlybSB3aGVyZSBtZW1vcnkgaXMgYWN0dWFsbHkgYmVpbmcgYWxsb2NhdGVkIGFuZCBob3cgdGhlIGZyZWUgaXMgY29ubmVjdGVkLlxuXG5cbiIsIklucHV0VG9rZW5zIjo0NTA2MywiT3V0cHV0VG9rZW5zIjo0OCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjExNSwiVG9vbENhbGxzIjpbInJlYWQtZmlsZSJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTI5VDEwOjI5OjIxLjE5MDA1NTg1OFoiLCJTZXEiOjUyLCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJyZWFkLWZpbGUiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjozNTAxODAsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJGaWxlXCI6IFwiZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGkuY1wiLFxuICBcIkZpcnN0TGluZVwiOiAyNDE2LFxuICBcIkxpbmVDb3VudFwiOiAzNVxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiQ29udGVudHNcIjogXCIyNDE2OlxcdHN0cnVjdCB2Y2FwX3J1bGUgKnZjYXBfZGVjb2RlX3J1bGUoc3RydWN0IHZjYXBfcnVsZV9pbnRlcm5hbCAqZWxlbSlcXG4yNDE3OlxcdHtcXG4yNDE4OlxcdFxcdHN0cnVjdCB2Y2FwX3J1bGVfaW50ZXJuYWwgKnJpO1xcbjI0MTk6XFx0XFx0aW50IGVycjtcXG4yNDIwOlxcdFxcbjI0MjE6XFx0XFx0cmkgPSB2Y2FwX2R1cF9ydWxlKGVsZW0sIGVsZW0tXFx1MDAzZXN0YXRlID09IFZDQVBfUlNfRElTQUJMRUQpO1xcbjI0MjI6XFx0XFx0aWYgKElTX0VSUihyaSkpXFxuMjQyMzpcXHRcXHRcXHRyZXR1cm4gRVJSX0NBU1QocmkpO1xcbjI0MjQ6XFx0XFxuMjQyNTpcXHRcXHRpZiAocmktXFx1MDAzZXN0YXRlID09IFZDQVBfUlNfRElTQUJMRUQpXFxuMjQyNjpcXHRcXHRcXHRnb3RvIG91dDtcXG4yNDI3OlxcdFxcbjI0Mjg6XFx0XFx0ZXJyID0gdmNhcF9yZWFkX3J1bGUocmkpO1xcbjI0Mjk6XFx0XFx0aWYgKGVycilcXG4yNDMwOlxcdFxcdFxcdGdvdG8gb3V0X2VycjtcXG4yNDMxOlxcdFxcbjI0MzI6XFx0XFx0ZXJyID0gdmNhcF9kZWNvZGVfa2V5c2V0KHJpKTtcXG4yNDMzOlxcdFxcdGlmIChlcnIpXFxuMjQzNDpcXHRcXHRcXHRnb3RvIG91dF9lcnI7XFxuMjQzNTpcXHRcXG4yNDM2OlxcdFxcdGVyciA9IHZjYXBfZGVjb2RlX2FjdGlvbnNldChyaSk7XFxuMjQzNzpcXHRcXHRpZiAoZXJyKVxcbjI0Mzg6XFx0XFx0XFx0Z290byBvdXRfZXJyO1xcbjI0Mzk6XFx0XFxuMjQ0MDpcXHRvdXQ6XFxuMjQ0MTpcXHRcXHRyZXR1cm4gXFx1MDAyNnJpLVxcdTAwM2VkYXRhO1xcbjI0NDI6XFx0b3V0X2VycjpcXG4yNDQzOlxcdFxcdHZjYXBfZnJlZV9ydWxlKFxcdTAwMjZyaS1cXHUwMDNlZGF0YSk7XFxuMjQ0NDpcXHRcXHRyZXR1cm4gRVJSX1BUUihlcnIpO1xcbjI0NDU6XFx0fVxcbjI0NDY6XFx0XFxuMjQ0NzpcXHRzdHJ1Y3QgdmNhcF9ydWxlICp2Y2FwX2dldF9ydWxlKHN0cnVjdCB2Y2FwX2NvbnRyb2wgKnZjdHJsLCB1MzIgaWQpXFxuMjQ0ODpcXHR7XFxuMjQ0OTpcXHRcXHRzdHJ1Y3QgdmNhcF9ydWxlX2ludGVybmFsICplbGVtO1xcbjI0NTA6XFx0XFx0c3RydWN0IHZjYXBfcnVsZSAqcnVsZTtcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMjlUMTA6Mjk6MjEuMTkwNDEwNDc4WiIsIlNlcSI6NTMsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjkwMDE5NDQzMTgsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqQW5hbHl6aW5nIGEgTWVtb3J5IExlYWsgRml4KipcblxuT2theSwgc28gYHZjYXBfZHVwX3J1bGVgIGFsbG9jYXRlcyBtZW1vcnkgZm9yIGByaWAsIHRoYXQncyBjbGVhci4gVGhlIGNyaXRpY2FsIHBvaW50IGlzIHRoYXQgcHJldmlvdXNseSwgaWYgYHZjYXBfcmVhZF9ydWxlYCwgYHZjYXBfZGVjb2RlX2tleXNldGAsIG9yIGB2Y2FwX2RlY29kZV9hY3Rpb25zZXRgIGZhaWxlZCwgaXQgcmV0dXJuZWQgYW4gZXJyb3IgKndpdGhvdXQqIGZyZWVpbmcgYHJpYC4gIEEgY2xhc3NpYyBtZW1vcnkgbGVhayBzaXR1YXRpb24uIFRoZSBjaGFuZ2UgaXMgdGhhdCBub3cgaXQgY29ycmVjdGx5IGNhbGxzIGB2Y2FwX2ZyZWVfcnVsZShcdTAwMjZyaS1cdTAwM2VkYXRhKWAgYmVmb3JlIHJldHVybmluZywgd2hpY2ggZml4ZXMgdGhlIG1lbW9yeSBsZWFrIOKAkyBhIGdvb2QsIG5lY2Vzc2FyeSBmdW5jdGlvbmFsIGNoYW5nZS5cblxuVGhlIG5leHQgcXVlc3Rpb24gaXMgYWx3YXlzLCBcImlzIHRoaXMgZml4IGFjdHVhbGx5IHJlbGV2YW50IGluIHRoZSBlbnZpcm9ubWVudHMgd2UgY2FyZSBhYm91dD9cIiBTbywgaG93IGlzIHRoaXMgY29kZXBhdGggcmVhY2hlZCBpbiwgZm9yIGV4YW1wbGUsIGEgdmlydHVhbGl6ZWQgc2V0dXA/IEFoLCB5ZXMsIHRoZSBLVW5pdCB0ZXN0cy4gVGhlIEtVbml0IGZyYW1ld29yayBjYW4gdHJpZ2dlciB0aG9zZS4gIEkgc2VlIHRoYXQgYHZjYXBfYXBpX3Nob3dfYWRtaW5fcnVsZV90ZXN0YCBzcGVjaWZpY2FsbHkgY2FsbHMgdGhpcyBjb2RlLiBCdXQsIGhvdyAqZG9lcyogdGhlIEtVbml0IGdldCB0cmlnZ2VyZWQ/IFN5emthbGxlciwgcmlnaHQ/ICBTeXprYWxsZXIgY2FuIHRyaWdnZXIgdGhlbSBpZiB0aGV5IGFyZSBtb2R1bGVzLCBvciBidWlsdC1pbiwgYnV0IHVzdWFsbHkgZG9lc24ndCBmdXp6IHRoZW0gZGlyZWN0bHkgdW5sZXNzIHRoZXkgaGF2ZSBleHBvc2VkIGludGVyZmFjZXMgbGlrZSBkZWJ1Z2ZzLlxuXG5XYWl0IGEgc2Vjb25k4oCmIGB2Y2FwX3Nob3dfYWRtaW5gICppcyogcmVhY2hhYmxlIHZpYSBkZWJ1Z2ZzISAgVGhhdCdzIGEgcG90ZW50aWFsIGF0dGFjayB2ZWN0b3IuICBMZXQncyBzZWXigKYgIGB2Y2FwX2FwaV9kZWJ1Z2ZzLmNgIGNyZWF0ZXMgdGhlIGRlYnVnZnMgZW50cmllcywgc28gdGhhdCdzIHRoZSBzdGFydGluZyBwb2ludC4gIEJ1dCwgYXMgSSByZWNhbGwsIHRoZSBkZWJ1Z2ZzIGVudHJpZXMgYXJlIG9ubHkgKmFjdHVhbGx5KiBjcmVhdGVkIGlmIGEgY2xpZW50IGRyaXZlciwgbGlrZSBTcGFyeDUgb3IgTGFuOTY2eCwgaW5pdGlhbGl6ZXMgdGhlIFZDQVAgY29udHJvbCBzdHJ1Y3R1cmUgYW5kIHRoZW4gY2FsbHMgYHZjYXBfZGVidWdmc19pbml0YC4gVGhvc2UgZHJpdmVycyBhcmUgZm9yIHNwZWNpZmljIHBoeXNpY2FsIGhhcmR3YXJlLCB0aG91Z2gsIGxpa2UgU3Bhcng1IGFuZCBMYW45NjZ4LiBUaGV5IHdvbid0IHByb2JlIGluIFFFTVUsIHNvIGB2Y2FwX2RlYnVnZnNfaW5pdGAgaXMgbmV2ZXIgY2FsbGVkLCBhbmQgdGhlIGRlYnVnZnMgZW50cmllcyB3b24ndCBleGlzdC5cblxuU28sIHRoZSBuZXh0IHN0ZXAgaXMgdG8gbWFrZSBzdXJlIG5vdGhpbmcgZWxzZSBjYWxscyBgdmNhcF9kZWJ1Z2ZzX2luaXRgLCBvciB1c2VzIFZDQVAgYXQgYWxsLiBJIG5lZWQgdG8gdmVyaWZ5IHRoYXQuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjQ1OTMyLCJPdXRwdXRUb2tlbnMiOjM3LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MzYyLCJUb29sQ2FsbHMiOlsicmVhZC1maWxlIl19LHsiU3RhcnRlZCI6IjIwMjYtMDctMjlUMTA6Mjk6MzAuMTkyMzU5MzQ2WiIsIlNlcSI6NTQsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo3MzI5NDA3ODMsIkVycm9yIjoibm8gbWF0Y2hlcyIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcInZjYXBfZGVidWdmc19pbml0XCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC9cIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiZXJyb3JcIjogXCJubyBtYXRjaGVzXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTI5VDEwOjI5OjMwLjkyNTMxMDQ1OFoiLCJTZXEiOjU1LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo0OTM4OTUxODgzLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJPa2F5LCBoZXJlJ3MgdGhlIHN1bW1hcnksIGFzc3VtaW5nIEknbSB0aGUgb25lIGhhdmluZyB0aGVzZSB0aG91Z2h0cyBhbmQgSSBhbSBhbiBleHBlcnQgaW4gbXkgZmllbGQ6XG5cbioqU2Vjb25kLUd1ZXNzaW5nIE5vbWVuY2xhdHVyZSoqXG5cbkhtbSwgSSdtIGp1c3QgcmV2aWV3aW5nIHRoaXMgYWdhaW4sIGFuZCBpdOKAmXMgbmFnZ2luZyBhdCBtZS4gSXMgdGhpcyBzcGVjaWZpYyB0ZXJtIOKAkyB0aGUgb25lIEknbSB1c2luZywgdGhlIG9uZSBJICp0aGluayogaXMgc3RhbmRhcmQg4oCTIGlzIGl0IHJlYWxseSB0aGUgbW9zdCBhcHByb3ByaWF0ZT8gSSdtIHN0YXJ0aW5nIHRvIGdldCB0aGlzIGZlZWxpbmcgdGhhdCBpdCBtaWdodCBiZSBjYWxsZWQgc29tZXRoaW5nIGRpZmZlcmVudCBpbiB0aGlzIHBhcnRpY3VsYXIgY29udGV4dCwgb3IgcGVyaGFwcyB0aGVyZSdzIGEgbW9yZSBjdXJyZW50IG9yIHByZWNpc2UgbGFiZWwgSSdtIG92ZXJsb29raW5nLiBJIGtub3cgdGhlIGJhc2ljcywgdGhlIGNvcmUgY29uY2VwdHMsIGJ1dCBJJ20gcXVlc3Rpb25pbmcgd2hldGhlciBJJ3ZlIG1pc3NlZCBhIG51YW5jZSBpbiB0aGUgdGVybWlub2xvZ3kuIEkgZG9uJ3Qgd2FudCB0byBzb3VuZCBvdXRkYXRlZCBvciwgd29yc2UsIG1pc3VuZGVyc3RhbmQgc29tZXRoaW5nIGNyaXRpY2FsLCBqdXN0IGJlY2F1c2Ugb2YgbXkgYXNzdW1wdGlvbnMgYWJvdXQgdGhlIHRlcm1pbm9sb2d5LiBUaW1lIHRvIGRvdWJsZS1jaGVjayBteSBzb3VyY2VzIGFuZCBtYWtlIHN1cmUgSSdtIHVzaW5nIHRoZSBtb3N0IGFjY3VyYXRlIGFuZCBhY2NlcHRlZCBkZXNpZ25hdGlvbi5cblxuXG4iLCJJbnB1dFRva2VucyI6NDY4MDEsIk91dHB1dFRva2VucyI6MzUsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoxMCwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0yOVQxMDoyOTozNS44NjQyNjY1MTFaIiwiU2VxIjo1NiwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjE3NTg3NjY3NiwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJkZWJ1Z2ZzXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJkcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC9NYWtlZmlsZT03PW9iai0kKENPTkZJR19WQ0FQX0tVTklUX1RFU1QpICs9ICB2Y2FwX21vZGVsX2t1bml0Lm9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC9NYWtlZmlsZTo4OnZjYXAtJChDT05GSUdfREVCVUdfRlMpICs9IHZjYXBfYXBpX2RlYnVnZnMub1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL01ha2VmaWxlLTktXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9kZWJ1Z2ZzLmMtOC0jaW5jbHVkZSBcXFwidmNhcF9hcGlfcHJpdmF0ZS5oXFxcIlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2RlYnVnZnMuYzo5OiNpbmNsdWRlIFxcXCJ2Y2FwX2FwaV9kZWJ1Z2ZzLmhcXFwiXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfZGVidWdmcy5jLTEwLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2RlYnVnZnMuYzoxMTpzdHJ1Y3QgdmNhcF9hZG1pbl9kZWJ1Z2ZzX2luZm8ge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2RlYnVnZnMuYy0xMi1cXHRzdHJ1Y3QgdmNhcF9jb250cm9sICp2Y3RybDtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2RlYnVnZnMuYy0xNS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9kZWJ1Z2ZzLmM6MTY6c3RydWN0IHZjYXBfcG9ydF9kZWJ1Z2ZzX2luZm8ge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2RlYnVnZnMuYy0xNy1cXHRzdHJ1Y3QgdmNhcF9jb250cm9sICp2Y3RybDtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2RlYnVnZnMuYy0yMS0vKiBEdW1wIHRoZSBrZXlmaWVsZHMgdmFsdWUgYW5kIG1hc2sgdmFsdWVzICovXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfZGVidWdmcy5jOjIyOnN0YXRpYyB2b2lkIHZjYXBfZGVidWdmc19zaG93X3J1bGVfa2V5ZmllbGQoc3RydWN0IHZjYXBfY29udHJvbCAqdmN0cmwsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfZGVidWdmcy5jLTIzLVxcdFxcdFxcdFxcdFxcdCAgICBzdHJ1Y3QgdmNhcF9vdXRwdXRfcHJpbnQgKm91dCxcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2RlYnVnZnMuYz0xMTY9c3RhdGljIHZvaWRcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9kZWJ1Z2ZzLmM6MTE3OnZjYXBfZGVidWdmc19zaG93X3J1bGVfYWN0aW9uZmllbGQoc3RydWN0IHZjYXBfY29udHJvbCAqdmN0cmwsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfZGVidWdmcy5jLTExOC1cXHRcXHRcXHRcXHQgICBzdHJ1Y3QgdmNhcF9vdXRwdXRfcHJpbnQgKm91dCxcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2RlYnVnZnMuYy0xNTctXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfZGVidWdmcy5jOjE1ODpzdGF0aWMgaW50IHZjYXBfZGVidWdmc19zaG93X2tleXNldHMoc3RydWN0IHZjYXBfcnVsZV9pbnRlcm5hbCAqcmksXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfZGVidWdmcy5jLTE1OS1cXHRcXHRcXHRcXHQgICAgIHN0cnVjdCB2Y2FwX291dHB1dF9wcmludCAqb3V0KVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfZGVidWdmcy5jLTE5MC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9kZWJ1Z2ZzLmM6MTkxOnN0YXRpYyBpbnQgdmNhcF9kZWJ1Z2ZzX3Nob3dfcnVsZV9rZXlzZXQoc3RydWN0IHZjYXBfcnVsZV9pbnRlcm5hbCAqcmksXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfZGVidWdmcy5jLTE5Mi1cXHRcXHRcXHRcXHRcXHQgc3RydWN0IHZjYXBfb3V0cHV0X3ByaW50ICpvdXQpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9kZWJ1Z2ZzLmMtMTk4LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2RlYnVnZnMuYzoxOTk6XFx0dmNhcF9kZWJ1Z2ZzX3Nob3dfa2V5c2V0cyhyaSwgb3V0KTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9kZWJ1Z2ZzLmMtMjAwLVxcdG91dC1cXHUwMDNlcHJmKG91dC1cXHUwMDNlZHN0LCBcXFwiICBrZXlzZXRfc3c6ICVkXFxcXG5cXFwiLCByaS1cXHUwMDNla2V5c2V0X3N3KTtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2RlYnVnZnMuYy0yMDQtXFx0XFx0a2V5ZmllbGQgPSB2Y2FwX2tleWZpZWxkcyh2Y3RybCwgYWRtaW4tXFx1MDAzZXZ0eXBlLCByaS1cXHUwMDNlZGF0YS5rZXlzZXQpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2RlYnVnZnMuYzoyMDU6XFx0XFx0dmNhcF9kZWJ1Z2ZzX3Nob3dfcnVsZV9rZXlmaWVsZCh2Y3RybCwgb3V0LCBja2YtXFx1MDAzZWN0cmwua2V5LFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2RlYnVnZnMuYy0yMDYtXFx0XFx0XFx0XFx0XFx0XFx0a2V5ZmllbGQsIFxcdTAwMjZja2YtXFx1MDAzZWRhdGEpO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfZGVidWdmcy5jLTIxMS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9kZWJ1Z2ZzLmM6MjEyOnN0YXRpYyBpbnQgdmNhcF9kZWJ1Z2ZzX3Nob3dfcnVsZV9hY3Rpb25zZXQoc3RydWN0IHZjYXBfcnVsZV9pbnRlcm5hbCAqcmksXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfZGVidWdmcy5jLTIxMy1cXHRcXHRcXHRcXHRcXHQgICAgc3RydWN0IHZjYXBfb3V0cHV0X3ByaW50ICpvdXQpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9kZWJ1Z2ZzLmMtMjI3LVxcdFxcdFxcdFxcdFxcdFxcdHJpLVxcdTAwM2VkYXRhLmFjdGlvbnNldCk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfZGVidWdmcy5jOjIyODpcXHRcXHR2Y2FwX2RlYnVnZnNfc2hvd19ydWxlX2FjdGlvbmZpZWxkKHZjdHJsLCBvdXQsIGNhZi1cXHUwMDNlY3RybC5hY3Rpb24sXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfZGVidWdmcy5jLTIyOS1cXHRcXHRcXHRcXHRcXHRcXHQgICBhY3Rpb25maWVsZCxcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2RlYnVnZnMuYz0yMzY9c3RhdGljIHZvaWQgdmNhcF9zaG93X2FkbWluX3J1bGUoc3RydWN0IHZjYXBfY29udHJvbCAqdmN0cmwsXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9kZWJ1Z2ZzLmMtMjYxLVxcdH1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9kZWJ1Z2ZzLmM6MjYyOlxcdHZjYXBfZGVidWdmc19zaG93X3J1bGVfa2V5c2V0KHJpLCBvdXQpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2RlYnVnZnMuYzoyNjM6XFx0dmNhcF9kZWJ1Z2ZzX3Nob3dfcnVsZV9hY3Rpb25zZXQocmksIG91dCk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfZGVidWdmcy5jLTI2NC19XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9kZWJ1Z2ZzLmM9MzE1PXN0YXRpYyBpbnQgdmNhcF9zaG93X2FkbWluX3JhdyhzdHJ1Y3QgdmNhcF9jb250cm9sICp2Y3RybCxcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2RlYnVnZnMuYy0zNjctLyogU2hvdyB0aGUgcG9ydCBjb25maWd1cmF0aW9uIGFuZCBzdGF0dXMgKi9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9kZWJ1Z2ZzLmM6MzY4OnN0YXRpYyBpbnQgdmNhcF9wb3J0X2RlYnVnZnNfc2hvdyhzdHJ1Y3Qgc2VxX2ZpbGUgKm0sIHZvaWQgKnVudXNlZClcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9kZWJ1Z2ZzLmMtMzY5LXtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9kZWJ1Z2ZzLmM6MzcwOlxcdHN0cnVjdCB2Y2FwX3BvcnRfZGVidWdmc19pbmZvICppbmZvID0gbS1cXHUwMDNlcHJpdmF0ZTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9kZWJ1Z2ZzLmMtMzcxLVxcdHN0cnVjdCB2Y2FwX2FkbWluICphZG1pbjtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2RlYnVnZnMuYy0zODMtfVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2RlYnVnZnMuYzozODQ6REVGSU5FX1NIT1dfQVRUUklCVVRFKHZjYXBfcG9ydF9kZWJ1Z2ZzKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9kZWJ1Z2ZzLmMtMzg1LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2RlYnVnZnMuYzozODY6dm9pZCB2Y2FwX3BvcnRfZGVidWdmcyhzdHJ1Y3QgZGV2aWNlICpkZXYsIHN0cnVjdCBkZW50cnkgKnBhcmVudCxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9kZWJ1Z2ZzLmMtMzg3LVxcdFxcdCAgICAgICBzdHJ1Y3QgdmNhcF9jb250cm9sICp2Y3RybCxcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2RlYnVnZnMuYy0zODkte1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2RlYnVnZnMuYzozOTA6XFx0c3RydWN0IHZjYXBfcG9ydF9kZWJ1Z2ZzX2luZm8gKmluZm87XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfZGVidWdmcy5jLTM5MS1cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2RlYnVnZnMuYy0zOTctXFx0aW5mby1cXHUwMDNlbmRldiA9IG5kZXY7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfZGVidWdmcy5jOjM5ODpcXHRkZWJ1Z2ZzX2NyZWF0ZV9maWxlKG5ldGRldl9uYW1lKG5kZXYpLCAwNDQ0LCBwYXJlbnQsIGluZm8sXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfZGVidWdmcy5jOjM5OTpcXHRcXHRcXHQgICAgXFx1MDAyNnZjYXBfcG9ydF9kZWJ1Z2ZzX2ZvcHMpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2RlYnVnZnMuYy00MDAtfVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2RlYnVnZnMuYzo0MDE6RVhQT1JUX1NZTUJPTF9HUEwodmNhcF9wb3J0X2RlYnVnZnMpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2RlYnVnZnMuYy00MDItXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfZGVidWdmcy5jLTQwMy0vKiBTaG93IHRoZSBmdWxsIFZDQVAgaW5zdGFuY2UgZGF0YSAocnVsZXMgd2l0aCBhbGwgZmllbGRzKSAqL1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2RlYnVnZnMuYzo0MDQ6c3RhdGljIGludCB2Y2FwX2RlYnVnZnNfc2hvdyhzdHJ1Y3Qgc2VxX2ZpbGUgKm0sIHZvaWQgKnVudXNlZClcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9kZWJ1Z2ZzLmMtNDA1LXtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9kZWJ1Z2ZzLmM6NDA2OlxcdHN0cnVjdCB2Y2FwX2FkbWluX2RlYnVnZnNfaW5mbyAqaW5mbyA9IG0tXFx1MDAzZXByaXZhdGU7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfZGVidWdmcy5jLTQwNy1cXHRzdHJ1Y3QgdmNhcF9vdXRwdXRfcHJpbnQgb3V0ID0ge1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfZGVidWdmcy5jLTQxNy19XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfZGVidWdmcy5jOjQxODpERUZJTkVfU0hPV19BVFRSSUJVVEUodmNhcF9kZWJ1Z2ZzKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9kZWJ1Z2ZzLmMtNDE5LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2RlYnVnZnMuYy00MjAtLyogU2hvdyB0aGUgcmF3IFZDQVAgaW5zdGFuY2UgZGF0YSAocnVsZXMgd2l0aCBhZGRyZXNzIGluZm8pICovXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfZGVidWdmcy5jOjQyMTpzdGF0aWMgaW50IHZjYXBfcmF3X2RlYnVnZnNfc2hvdyhzdHJ1Y3Qgc2VxX2ZpbGUgKm0sIHZvaWQgKnVudXNlZClcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9kZWJ1Z2ZzLmMtNDIyLXtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9kZWJ1Z2ZzLmM6NDIzOlxcdHN0cnVjdCB2Y2FwX2FkbWluX2RlYnVnZnNfaW5mbyAqaW5mbyA9IG0tXFx1MDAzZXByaXZhdGU7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfZGVidWdmcy5jLTQyNC1cXHRzdHJ1Y3QgdmNhcF9vdXRwdXRfcHJpbnQgb3V0ID0ge1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfZGVidWdmcy5jLTQzNC19XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfZGVidWdmcy5jOjQzNTpERUZJTkVfU0hPV19BVFRSSUJVVEUodmNhcF9yYXdfZGVidWdmcyk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfZGVidWdmcy5jLTQzNi1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9kZWJ1Z2ZzLmM6NDM3OnN0cnVjdCBkZW50cnkgKnZjYXBfZGVidWdmcyhzdHJ1Y3QgZGV2aWNlICpkZXYsIHN0cnVjdCBkZW50cnkgKnBhcmVudCxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9kZWJ1Z2ZzLmMtNDM4LVxcdFxcdFxcdCAgICBzdHJ1Y3QgdmNhcF9jb250cm9sICp2Y3RybClcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9kZWJ1Z2ZzLmMtNDM5LXtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9kZWJ1Z2ZzLmM6NDQwOlxcdHN0cnVjdCB2Y2FwX2FkbWluX2RlYnVnZnNfaW5mbyAqaW5mbztcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9kZWJ1Z2ZzLmMtNDQxLVxcdHN0cnVjdCB2Y2FwX2FkbWluICphZG1pbjtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2RlYnVnZnMuYy00NDQtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfZGVidWdmcy5jOjQ0NTpcXHRkaXIgPSBkZWJ1Z2ZzX2NyZWF0ZV9kaXIoXFxcInZjYXBzXFxcIiwgcGFyZW50KTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9kZWJ1Z2ZzLmMtNDQ2LVxcdGlmIChQVFJfRVJSX09SX1pFUk8oZGlyKSlcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2RlYnVnZnMuYy00NTUtXFx0XFx0aW5mby1cXHUwMDNlYWRtaW4gPSBhZG1pbjtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9kZWJ1Z2ZzLmM6NDU2OlxcdFxcdGRlYnVnZnNfY3JlYXRlX2ZpbGUobmFtZSwgMDQ0NCwgZGlyLCBpbmZvLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2RlYnVnZnMuYzo0NTc6XFx0XFx0XFx0XFx0ICAgIFxcdTAwMjZ2Y2FwX3Jhd19kZWJ1Z2ZzX2ZvcHMpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2RlYnVnZnMuYy00NTgtXFx0XFx0c3ByaW50ZihuYW1lLCBcXFwiJXNfJWRcXFwiLCB2Y3RybC1cXHUwMDNldmNhcHNbYWRtaW4tXFx1MDAzZXZ0eXBlXS5uYW1lLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2RlYnVnZnMuYy00NTktXFx0XFx0XFx0YWRtaW4tXFx1MDAzZXZpbnN0KTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9kZWJ1Z2ZzLmM6NDYwOlxcdFxcdGRlYnVnZnNfY3JlYXRlX2ZpbGUobmFtZSwgMDQ0NCwgZGlyLCBpbmZvLCBcXHUwMDI2dmNhcF9kZWJ1Z2ZzX2ZvcHMpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2RlYnVnZnMuYy00NjEtXFx0fVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfZGVidWdmcy5jLTQ2My19XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfZGVidWdmcy5jOjQ2NDpFWFBPUlRfU1lNQk9MX0dQTCh2Y2FwX2RlYnVnZnMpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2RlYnVnZnMuYy00NjUtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfZGVidWdmcy5jLTQ2Ni0jaWZkZWYgQ09ORklHX1ZDQVBfS1VOSVRfVEVTVFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2RlYnVnZnMuYzo0Njc6I2luY2x1ZGUgXFxcInZjYXBfYXBpX2RlYnVnZnNfa3VuaXQuY1xcXCJcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9kZWJ1Z2ZzLmMtNDY4LSNlbmRpZlxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfZGVidWdmcy5oLTktI2luY2x1ZGUgXFx1MDAzY2xpbnV4L3R5cGVzLmhcXHUwMDNlXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfZGVidWdmcy5oOjEwOiNpbmNsdWRlIFxcdTAwM2NsaW51eC9kZWJ1Z2ZzLmhcXHUwMDNlXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfZGVidWdmcy5oLTExLSNpbmNsdWRlIFxcdTAwM2NsaW51eC9uZXRkZXZpY2UuaFxcdTAwM2VcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2RlYnVnZnMuaC0xNi1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9kZWJ1Z2ZzLmg6MTc6dm9pZCB2Y2FwX3BvcnRfZGVidWdmcyhzdHJ1Y3QgZGV2aWNlICpkZXYsIHN0cnVjdCBkZW50cnkgKnBhcmVudCxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9kZWJ1Z2ZzLmgtMTgtXFx0XFx0ICAgICAgIHN0cnVjdCB2Y2FwX2NvbnRyb2wgKnZjdHJsLFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfZGVidWdmcy5oLTIxLS8qIENyZWF0ZSBhIGRlYnVnRlMgZW50cnkgZm9yIGEgdmNhcCBpbnN0YW5jZSAqL1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2RlYnVnZnMuaDoyMjpzdHJ1Y3QgZGVudHJ5ICp2Y2FwX2RlYnVnZnMoc3RydWN0IGRldmljZSAqZGV2LCBzdHJ1Y3QgZGVudHJ5ICpwYXJlbnQsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfZGVidWdmcy5oLTIzLVxcdFxcdFxcdCAgICBzdHJ1Y3QgdmNhcF9jb250cm9sICp2Y3RybCk7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9kZWJ1Z2ZzLmgtMjYtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfZGVidWdmcy5oOjI3OnN0YXRpYyBpbmxpbmUgdm9pZCB2Y2FwX3BvcnRfZGVidWdmcyhzdHJ1Y3QgZGV2aWNlICpkZXYsIHN0cnVjdCBkZW50cnkgKnBhcmVudCxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9kZWJ1Z2ZzLmgtMjgtXFx0XFx0XFx0XFx0ICAgICBzdHJ1Y3QgdmNhcF9jb250cm9sICp2Y3RybCxcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2RlYnVnZnMuaC0zMi1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9kZWJ1Z2ZzLmg6MzM6c3RhdGljIGlubGluZSBzdHJ1Y3QgZGVudHJ5ICp2Y2FwX2RlYnVnZnMoc3RydWN0IGRldmljZSAqZGV2LFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2RlYnVnZnMuaC0zNC1cXHRcXHRcXHRcXHRcXHQgIHN0cnVjdCBkZW50cnkgKnBhcmVudCxcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2RlYnVnZnNfa3VuaXQuYy04LSNpbmNsdWRlIFxcXCJ2Y2FwX2FwaV9jbGllbnQuaFxcXCJcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9kZWJ1Z2ZzX2t1bml0LmM6OTojaW5jbHVkZSBcXFwidmNhcF9hcGlfZGVidWdmcy5oXFxcIlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2RlYnVnZnNfa3VuaXQuYy0xMC0jaW5jbHVkZSBcXFwidmNhcF9tb2RlbF9rdW5pdC5oXFxcIlxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfZGVidWdmc19rdW5pdC5jPTQ3NT1zdGF0aWMgdm9pZCB2Y2FwX2FwaV9zaG93X2FkbWluX3J1bGVfdGVzdChzdHJ1Y3Qga3VuaXQgKnRlc3QpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9kZWJ1Z2ZzX2t1bml0LmMtNTQxLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2RlYnVnZnNfa3VuaXQuYzo1NDI6c3RhdGljIHN0cnVjdCBrdW5pdF9jYXNlIHZjYXBfYXBpX2RlYnVnZnNfdGVzdF9jYXNlc1tdID0ge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2RlYnVnZnNfa3VuaXQuYy01NDMtXFx0S1VOSVRfQ0FTRSh2Y2FwX2FwaV9hZGRyX2tleXNldF90ZXN0KSxcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2RlYnVnZnNfa3VuaXQuYy01NDktXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfZGVidWdmc19rdW5pdC5jOjU1MDpzdGF0aWMgc3RydWN0IGt1bml0X3N1aXRlIHZjYXBfYXBpX2RlYnVnZnNfdGVzdF9zdWl0ZSA9IHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9kZWJ1Z2ZzX2t1bml0LmMtNTUxLVxcdC5uYW1lID0gXFxcIlZDQVBfQVBJX0RlYnVnRlNfVGVzdHN1aXRlXFxcIixcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9kZWJ1Z2ZzX2t1bml0LmM6NTUyOlxcdC50ZXN0X2Nhc2VzID0gdmNhcF9hcGlfZGVidWdmc190ZXN0X2Nhc2VzLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2RlYnVnZnNfa3VuaXQuYy01NTMtfTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9kZWJ1Z2ZzX2t1bml0LmMtNTU0LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2RlYnVnZnNfa3VuaXQuYzo1NTU6a3VuaXRfdGVzdF9zdWl0ZSh2Y2FwX2FwaV9kZWJ1Z2ZzX3Rlc3Rfc3VpdGUpO1xcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0yOVQxMDoyOTozNi4wNDAxNTA0NDdaIiwiU2VxIjo1NywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NTE1NzE0MDIyNywiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiT2theSwgaGVyZSdzIG15IHRha2Ugb24gdGhvc2UgdGhvdWdodHMsIHRhaWxvcmVkIGZvciBhbiBleHBlcnQgYXVkaWVuY2UsIHByZXNlbnRlZCBpbiB0aGUgZmlyc3QgcGVyc29uOlxuXG4qKkludmVzdGlnYXRpbmcgYHZjYXBfZGVidWdmc2AgQ2xpZW50IERlcGVuZGVuY2llcyoqXG5cbkFscmlnaHQsIHNvIGB2Y2FwX2RlYnVnZnNgIGlzIGNsZWFybHkgZXhwb3J0ZWQgYW5kIGFjY2Vzc2libGUgdG8gY2xpZW50cy4gVGhhdCBpbW1lZGlhdGVseSByYWlzZXMgdGhlIHF1ZXN0aW9uOiB3aG8ncyAqYWN0dWFsbHkqIGxldmVyYWdpbmcgdGhpcyBmdW5jdGlvbmFsaXR5PyBJdCdzIGVzc2VudGlhbCB0byB1bmRlcnN0YW5kIHRoZSB1c2FnZSBwYXR0ZXJucyBhbmQgcG90ZW50aWFsIGRlcGVuZGVuY2llcyB0byBhc3Nlc3MgaXRzIGNyaXRpY2FsaXR5LCBwb3RlbnRpYWwgaW1wYWN0IG9mIGNoYW5nZXMsIGFuZCBhcmVhcyBmb3Igb3B0aW1pemF0aW9uIG9yIHNlY3VyaXR5IGhhcmRlbmluZy4gTXkgbmV4dCBzdGVwIGlzIHVuZGVuaWFibHkgdG8gaWRlbnRpZnkgYWxsIHRoZSBjYWxsZXJzIG9mIGB2Y2FwX2RlYnVnZnNgLiBJIG5lZWQgYSBwcmVjaXNlIGNhbGwgZ3JhcGggb3IsIGF0IHRoZSB2ZXJ5IGxlYXN0LCBhIGNvbXByZWhlbnNpdmUgbGlzdCBvZiBtb2R1bGVzLCBwcm9jZXNzZXMsIG9yIGV2ZW4gc3BlY2lmaWMgY29kZSBsb2NhdGlvbnMgdGhhdCBhcmUgbWFraW5nIGNhbGxzIHRvIHRoYXQgZnVuY3Rpb24uIEZyb20gdGhlcmUsIEkgY2FuIGJlZ2luIHRvIGFzc2VzcyByaXNrLCB1bmRlcnN0YW5kIHRoZSBvdmVyYWxsIHN5c3RlbSBkZXBlbmRlbmNpZXMsIGFuZCBzdGFydCBkZXRlcm1pbmluZyB0aGUgaW1wYWN0IHRoYXQgYW55IGNoYW5nZXMgdG8gdGhpcyBmdW5jdGlvbiB3b3VsZCBoYXZlLlxuXG5cbiIsIklucHV0VG9rZW5zIjo1MjAyNCwiT3V0cHV0VG9rZW5zIjozNSwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjI5LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTI5VDEwOjI5OjQxLjE5NzI5NTQ0NVoiLCJTZXEiOjU4LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MTc1NzkyODE2LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcInZjYXBfZGVidWdmc1wiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJkcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC9sYW45NjZ4L01ha2VmaWxlPTE4PWxhbjk2Nngtc3dpdGNoLSQoQ09ORklHX0xBTjk2NlhfRENCKSArPSBsYW45NjZ4X2RjYi5vXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL2xhbjk2NngvTWFrZWZpbGU6MTk6bGFuOTY2eC1zd2l0Y2gtJChDT05GSUdfREVCVUdfRlMpICs9IGxhbjk2NnhfdmNhcF9kZWJ1Z2ZzLm9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvbGFuOTY2eC9NYWtlZmlsZS0yMC1cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC9sYW45NjZ4L2xhbjk2NnhfdmNhcF9pbXBsLmM9NzA3PWludCBsYW45NjZ4X3ZjYXBfaW5pdChzdHJ1Y3QgbGFuOTY2eCAqbGFuOTY2eClcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC9sYW45NjZ4L2xhbjk2NnhfdmNhcF9pbXBsLmMtNzM2LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC9sYW45NjZ4L2xhbjk2NnhfdmNhcF9pbXBsLmM6NzM3OlxcdGRpciA9IHZjYXBfZGVidWdmcyhsYW45NjZ4LVxcdTAwM2VkZXYsIGxhbjk2NngtXFx1MDAzZWRlYnVnZnNfcm9vdCwgY3RybCk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL2xhbjk2NngvbGFuOTY2eF92Y2FwX2ltcGwuYy03MzgtXFx0Zm9yIChpbnQgcCA9IDA7IHAgXFx1MDAzYyBsYW45NjZ4LVxcdTAwM2VudW1fcGh5c19wb3J0czsgKytwKSB7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvc3Bhcng1L01ha2VmaWxlPTE2PXNwYXJ4NS1zd2l0Y2gtJChDT05GSUdfU1BBUlg1X0RDQikgKz0gc3Bhcng1X2RjYi5vXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3NwYXJ4NS9NYWtlZmlsZToxNzpzcGFyeDUtc3dpdGNoLSQoQ09ORklHX0RFQlVHX0ZTKSArPSBzcGFyeDVfdmNhcF9kZWJ1Z2ZzLm9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvc3Bhcng1L01ha2VmaWxlLTE4LVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3NwYXJ4NS9zcGFyeDVfdmNhcF9kZWJ1Z2ZzLmMtOS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvc3Bhcng1L3NwYXJ4NV92Y2FwX2RlYnVnZnMuYzoxMDojaW5jbHVkZSBcXFwic3Bhcng1X3ZjYXBfZGVidWdmcy5oXFxcIlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC9zcGFyeDUvc3Bhcng1X3ZjYXBfZGVidWdmcy5jLTExLSNpbmNsdWRlIFxcXCJzcGFyeDVfbWFpbl9yZWdzLmhcXFwiXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvc3Bhcng1L3NwYXJ4NV92Y2FwX2ltcGwuYy0xNC0jaW5jbHVkZSBcXFwic3Bhcng1X3ZjYXBfYWdfYXBpLmhcXFwiXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3NwYXJ4NS9zcGFyeDVfdmNhcF9pbXBsLmM6MTU6I2luY2x1ZGUgXFxcInNwYXJ4NV92Y2FwX2RlYnVnZnMuaFxcXCJcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvc3Bhcng1L3NwYXJ4NV92Y2FwX2ltcGwuYy0xNi1cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC9zcGFyeDUvc3Bhcng1X3ZjYXBfaW1wbC5jPTIwMzE9aW50IHNwYXJ4NV92Y2FwX2luaXQoc3RydWN0IHNwYXJ4NSAqc3Bhcng1KVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3NwYXJ4NS9zcGFyeDVfdmNhcF9pbXBsLmMtMjA3Ni1cXHR9XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3NwYXJ4NS9zcGFyeDVfdmNhcF9pbXBsLmM6MjA3NzpcXHRkaXIgPSB2Y2FwX2RlYnVnZnMoc3Bhcng1LVxcdTAwM2VkZXYsIHNwYXJ4NS1cXHUwMDNlZGVidWdmc19yb290LCBjdHJsKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvc3Bhcng1L3NwYXJ4NV92Y2FwX2ltcGwuYy0yMDc4LVxcdGZvciAoaWR4ID0gMDsgaWR4IFxcdTAwM2MgY29uc3RzLVxcdTAwM2VuX3BvcnRzOyArK2lkeClcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2RlYnVnZnMuYz0xNj1zdHJ1Y3QgdmNhcF9wb3J0X2RlYnVnZnNfaW5mbyB7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9kZWJ1Z2ZzLmMtMjEtLyogRHVtcCB0aGUga2V5ZmllbGRzIHZhbHVlIGFuZCBtYXNrIHZhbHVlcyAqL1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2RlYnVnZnMuYzoyMjpzdGF0aWMgdm9pZCB2Y2FwX2RlYnVnZnNfc2hvd19ydWxlX2tleWZpZWxkKHN0cnVjdCB2Y2FwX2NvbnRyb2wgKnZjdHJsLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2RlYnVnZnMuYy0yMy1cXHRcXHRcXHRcXHRcXHQgICAgc3RydWN0IHZjYXBfb3V0cHV0X3ByaW50ICpvdXQsXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9kZWJ1Z2ZzLmM9MTE2PXN0YXRpYyB2b2lkXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfZGVidWdmcy5jOjExNzp2Y2FwX2RlYnVnZnNfc2hvd19ydWxlX2FjdGlvbmZpZWxkKHN0cnVjdCB2Y2FwX2NvbnRyb2wgKnZjdHJsLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2RlYnVnZnMuYy0xMTgtXFx0XFx0XFx0XFx0ICAgc3RydWN0IHZjYXBfb3V0cHV0X3ByaW50ICpvdXQsXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9kZWJ1Z2ZzLmMtMTU3LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2RlYnVnZnMuYzoxNTg6c3RhdGljIGludCB2Y2FwX2RlYnVnZnNfc2hvd19rZXlzZXRzKHN0cnVjdCB2Y2FwX3J1bGVfaW50ZXJuYWwgKnJpLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2RlYnVnZnMuYy0xNTktXFx0XFx0XFx0XFx0ICAgICBzdHJ1Y3QgdmNhcF9vdXRwdXRfcHJpbnQgKm91dClcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2RlYnVnZnMuYy0xOTAtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfZGVidWdmcy5jOjE5MTpzdGF0aWMgaW50IHZjYXBfZGVidWdmc19zaG93X3J1bGVfa2V5c2V0KHN0cnVjdCB2Y2FwX3J1bGVfaW50ZXJuYWwgKnJpLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2RlYnVnZnMuYy0xOTItXFx0XFx0XFx0XFx0XFx0IHN0cnVjdCB2Y2FwX291dHB1dF9wcmludCAqb3V0KVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfZGVidWdmcy5jLTE5OC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9kZWJ1Z2ZzLmM6MTk5OlxcdHZjYXBfZGVidWdmc19zaG93X2tleXNldHMocmksIG91dCk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfZGVidWdmcy5jLTIwMC1cXHRvdXQtXFx1MDAzZXByZihvdXQtXFx1MDAzZWRzdCwgXFxcIiAga2V5c2V0X3N3OiAlZFxcXFxuXFxcIiwgcmktXFx1MDAzZWtleXNldF9zdyk7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9kZWJ1Z2ZzLmMtMjA0LVxcdFxcdGtleWZpZWxkID0gdmNhcF9rZXlmaWVsZHModmN0cmwsIGFkbWluLVxcdTAwM2V2dHlwZSwgcmktXFx1MDAzZWRhdGEua2V5c2V0KTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9kZWJ1Z2ZzLmM6MjA1OlxcdFxcdHZjYXBfZGVidWdmc19zaG93X3J1bGVfa2V5ZmllbGQodmN0cmwsIG91dCwgY2tmLVxcdTAwM2VjdHJsLmtleSxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9kZWJ1Z2ZzLmMtMjA2LVxcdFxcdFxcdFxcdFxcdFxcdGtleWZpZWxkLCBcXHUwMDI2Y2tmLVxcdTAwM2VkYXRhKTtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2RlYnVnZnMuYy0yMTEtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfZGVidWdmcy5jOjIxMjpzdGF0aWMgaW50IHZjYXBfZGVidWdmc19zaG93X3J1bGVfYWN0aW9uc2V0KHN0cnVjdCB2Y2FwX3J1bGVfaW50ZXJuYWwgKnJpLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2RlYnVnZnMuYy0yMTMtXFx0XFx0XFx0XFx0XFx0ICAgIHN0cnVjdCB2Y2FwX291dHB1dF9wcmludCAqb3V0KVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfZGVidWdmcy5jLTIyNy1cXHRcXHRcXHRcXHRcXHRcXHRyaS1cXHUwMDNlZGF0YS5hY3Rpb25zZXQpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2RlYnVnZnMuYzoyMjg6XFx0XFx0dmNhcF9kZWJ1Z2ZzX3Nob3dfcnVsZV9hY3Rpb25maWVsZCh2Y3RybCwgb3V0LCBjYWYtXFx1MDAzZWN0cmwuYWN0aW9uLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2RlYnVnZnMuYy0yMjktXFx0XFx0XFx0XFx0XFx0XFx0ICAgYWN0aW9uZmllbGQsXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9kZWJ1Z2ZzLmM9MjM2PXN0YXRpYyB2b2lkIHZjYXBfc2hvd19hZG1pbl9ydWxlKHN0cnVjdCB2Y2FwX2NvbnRyb2wgKnZjdHJsLFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfZGVidWdmcy5jLTI2MS1cXHR9XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfZGVidWdmcy5jOjI2MjpcXHR2Y2FwX2RlYnVnZnNfc2hvd19ydWxlX2tleXNldChyaSwgb3V0KTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9kZWJ1Z2ZzLmM6MjYzOlxcdHZjYXBfZGVidWdmc19zaG93X3J1bGVfYWN0aW9uc2V0KHJpLCBvdXQpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2RlYnVnZnMuYy0yNjQtfVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfZGVidWdmcy5jPTQwMT1FWFBPUlRfU1lNQk9MX0dQTCh2Y2FwX3BvcnRfZGVidWdmcyk7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9kZWJ1Z2ZzLmMtNDAzLS8qIFNob3cgdGhlIGZ1bGwgVkNBUCBpbnN0YW5jZSBkYXRhIChydWxlcyB3aXRoIGFsbCBmaWVsZHMpICovXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfZGVidWdmcy5jOjQwNDpzdGF0aWMgaW50IHZjYXBfZGVidWdmc19zaG93KHN0cnVjdCBzZXFfZmlsZSAqbSwgdm9pZCAqdW51c2VkKVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2RlYnVnZnMuYy00MDUte1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfZGVidWdmcy5jLTQxNy19XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfZGVidWdmcy5jOjQxODpERUZJTkVfU0hPV19BVFRSSUJVVEUodmNhcF9kZWJ1Z2ZzKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9kZWJ1Z2ZzLmMtNDE5LVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfZGVidWdmcy5jPTQzNT1ERUZJTkVfU0hPV19BVFRSSUJVVEUodmNhcF9yYXdfZGVidWdmcyk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfZGVidWdmcy5jLTQzNi1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9kZWJ1Z2ZzLmM6NDM3OnN0cnVjdCBkZW50cnkgKnZjYXBfZGVidWdmcyhzdHJ1Y3QgZGV2aWNlICpkZXYsIHN0cnVjdCBkZW50cnkgKnBhcmVudCxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9kZWJ1Z2ZzLmMtNDM4LVxcdFxcdFxcdCAgICBzdHJ1Y3QgdmNhcF9jb250cm9sICp2Y3RybClcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2RlYnVnZnMuYy00NTktXFx0XFx0XFx0YWRtaW4tXFx1MDAzZXZpbnN0KTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9kZWJ1Z2ZzLmM6NDYwOlxcdFxcdGRlYnVnZnNfY3JlYXRlX2ZpbGUobmFtZSwgMDQ0NCwgZGlyLCBpbmZvLCBcXHUwMDI2dmNhcF9kZWJ1Z2ZzX2ZvcHMpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2RlYnVnZnMuYy00NjEtXFx0fVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfZGVidWdmcy5jLTQ2My19XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfZGVidWdmcy5jOjQ2NDpFWFBPUlRfU1lNQk9MX0dQTCh2Y2FwX2RlYnVnZnMpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2RlYnVnZnMuYy00NjUtXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9kZWJ1Z2ZzLmg9MTc9dm9pZCB2Y2FwX3BvcnRfZGVidWdmcyhzdHJ1Y3QgZGV2aWNlICpkZXYsIHN0cnVjdCBkZW50cnkgKnBhcmVudCxcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2RlYnVnZnMuaC0yMS0vKiBDcmVhdGUgYSBkZWJ1Z0ZTIGVudHJ5IGZvciBhIHZjYXAgaW5zdGFuY2UgKi9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9kZWJ1Z2ZzLmg6MjI6c3RydWN0IGRlbnRyeSAqdmNhcF9kZWJ1Z2ZzKHN0cnVjdCBkZXZpY2UgKmRldiwgc3RydWN0IGRlbnRyeSAqcGFyZW50LFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2RlYnVnZnMuaC0yMy1cXHRcXHRcXHQgICAgc3RydWN0IHZjYXBfY29udHJvbCAqdmN0cmwpO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfZGVidWdmcy5oPTI3PXN0YXRpYyBpbmxpbmUgdm9pZCB2Y2FwX3BvcnRfZGVidWdmcyhzdHJ1Y3QgZGV2aWNlICpkZXYsIHN0cnVjdCBkZW50cnkgKnBhcmVudCxcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2RlYnVnZnMuaC0zMi1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9kZWJ1Z2ZzLmg6MzM6c3RhdGljIGlubGluZSBzdHJ1Y3QgZGVudHJ5ICp2Y2FwX2RlYnVnZnMoc3RydWN0IGRldmljZSAqZGV2LFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2RlYnVnZnMuaC0zNC1cXHRcXHRcXHRcXHRcXHQgIHN0cnVjdCBkZW50cnkgKnBhcmVudCxcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMjlUMTA6Mjk6NDEuMzczMDk2MTQxWiIsIlNlcSI6NTksIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjE1Njg3OTIxNjIwLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKldvcnRoRnV6emluZz1mYWxzZTogVW5yZWFjaGFibGUgQ29kZSBpbiBWaXJ0dWFsaXplZCBFbnZpcm9ubWVudHMqKlxuXG5Pa2F5LCBzbyBJJ3ZlIGxvb2tlZCBhdCB0aGlzIHBhdGNoIGFuZCBoZXJlJ3MgbXkgYnJlYWtkb3duLiBUaGUgb25seSBmdW5jdGlvbnMgdGhhdCBjYWxsIHRoZSBjb2RlIEknbSBhbmFseXppbmcsIGB2Y2FwX2RlY29kZV9ydWxlYCBpbmRpcmVjdGx5IHRocm91Z2ggYHZjYXBfZ2V0X3J1bGVgLCBhcmUgYGxhbjk2NnhfdmNhcF9pbml0YCBhbmQgYHNwYXJ4NV92Y2FwX2luaXRgLiBCb3RoIG9mIHRoZXNlIGluaXRpYWxpemF0aW9uIHJvdXRpbmVzLCBJIGtub3csIG5lZWQgYWN0dWFsIHBoeXNpY2FsIGhhcmR3YXJlIHRvIHByb2JlIOKAkyBzcGVjaWZpY2FsbHksIGhhcmR3YXJlIGZyb20gTWljcm9jaGlwLiBUaGF0IGltbWVkaWF0ZWx5IHRlbGxzIG1lLCBpbiBhIHZpcnR1YWxpemVkIGVudmlyb25tZW50IGxpa2UgUUVNVSwgdGhpcyBjb2RlIHBhdGggd2lsbCAqbmV2ZXIqIGJlIGhpdC4gVGhlIGB2Y2FwX2RlYnVnZnNgIGVudHJpZXMsIHdoaWNoIGFyZSBhbHNvIGluZGlyZWN0bHkgaW52b2x2ZWQgdGhyb3VnaCBgdmNhcF9zaG93X2FkbWluYCwgd29uJ3QgZXZlbiBiZSBjcmVhdGVkLlxuXG5JIHF1aWNrbHkgY29uc2lkZXJlZCB0aGUgZXhpc3RlbmNlIG9mIGB2Y2FwX2FwaV9kZWJ1Z2ZzX2t1bml0LmNgIOKAkyBhIEtVbml0IHRlc3QuIE5vdywgaWYgS1VuaXQgdGVzdHMgYXJlIGJ1aWx0IGFzIG1vZHVsZXMsIEkgY2FuIGxvYWQgYW5kIHJ1biB0aGVtLiBCdXQsIHRoYXQncyBub3QgdGhlIHBvaW50LiBUaGUgY3J1eCBpcyB3aGV0aGVyIFN5emthbGxlciBmdXp6ZXMgdGhlbS4gQW5kIG5vLCBpdCBkb2Vzbid0LiBTeXprYWxsZXIgZG9lc24ndCBmdXp6IEtVbml0IHRlc3RzIGJlY2F1c2UgdGhleSdyZSBzZWxmLWNvbnRhaW5lZCB1bml0IHRlc3RzIHRoYXQgcnVuIGF1dG9tYXRpY2FsbHksIG5vdCB0aHJvdWdoIHVzZXJzcGFjZSBpbnRlcmZhY2VzIHRoYXQgU3l6a2FsbGVyIGNhbiBpbnRlcmFjdCB3aXRoLiBTbyB0aGUgS1VuaXQgdGVzdHMgYXJlIGlycmVsZXZhbnQgaGVyZS5cblxuVGhlbiBJIHJlZm9jdXNlZCBvbiB0aGUgcHJvbXB0J3MgY3JpdGVyaWEuIEl0IHNheXMgdG8gcmV0dXJuIGBXb3J0aEZ1enppbmc9ZmFsc2VgIGlmIHRoZSBjaGFuZ2VzIGludm9sdmUgY29kZSBwYXRocyB0aGF0IGFyZSAqaW1wb3NzaWJsZSogdG8gcmVhY2ggaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzLCBldmVuIHdpdGggc29mdHdhcmUtZW11bGF0ZWQgaGFyZHdhcmUuIFRoaXMgY29kZSBpcyBwYXJ0IG9mIHRoZSBNaWNyb2NoaXAgVkNBUCBBUEksIHdoaWNoIGlzIGEgbGlicmFyeSB1c2VkIGJ5IE1pY3JvY2hpcCBzd2l0Y2ggZHJpdmVycyDigJMgc3BlY2lmaWNhbGx5LCBTcGFyeDUgYW5kIExhbjk2NnguIFRoZXNlIHN3aXRjaCBkcml2ZXJzIGFyZSBwbGF0Zm9ybSBkcml2ZXJzLCBzcGVjaWZpY2FsbHkgZm9yIE1pY3JvY2hpcCBTb0NzIG9yIFBDSWUgZGV2aWNlcywgcmVxdWlyaW5nIHBoeXNpY2FsIGhhcmR3YXJlLiBTbyB0aGVzZSBjb2RlIHBhdGhzICphcmUqIHVucmVhY2hhYmxlIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBiZWNhdXNlIHRoZSBjbGllbnQgZHJpdmVycyB3b24ndCBwcm9iZSwgYW5kIHRoZSBWQ0FQIEFQSSB3aWxsIG5ldmVyIGJlIGluaXRpYWxpemVkLiBBZ2FpbiwgdGhlIEtVbml0IHRlc3RzIGFyZSBub3QgcmVsZXZhbnQgdG8gU3l6a2FsbGVyIGZ1enppbmcuXG5cbkknbSBjb25maWRlbnQgaW4gc2F5aW5nIHRoYXQgdGhlIGNoYW5nZXMgbW9kaWZ5IGNvZGUgdW5yZWFjaGFibGUgaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzLiBUbyBjb25maXJtLCBJIGRpZCBhIHF1aWNrIGdyZXAgZm9yIGB2Y2FwX2dldF9ydWxlYCBhbmQgYHZjYXBfZGVidWdmc2AuIFRoZSBvbmx5IHVzZXJzIGFyZSBgbGFuOTY2eGAgYW5kIGBzcGFyeDVgLCBib3RoIHJlcXVpcmluZyBoYXJkd2FyZS5cblxuVG8gYmUgYWJzb2x1dGVseSBzdXJlLCBJIGNoZWNrZWQgdGhhdCBgbGFuOTY2eGAgaXMgYSBwbGF0Zm9ybSBkcml2ZXIgZm9yIE1pY3JvY2hpcCdzIExBTjk2NnggU29DIGFuZCBgc3Bhcng1YCBpcyBmb3IgTWljcm9jaGlwJ3MgU3Bhcng1IFNvQy4gTm8gdXBzdHJlYW0gUUVNVSBlbXVsYXRpb25zIGV4aXN0IGZvciBlaXRoZXIuIFNvLCB0aGUgY29kZSBwYXRoIGlzIHVucmVhY2hhYmxlLiBJIGFtIGFic29sdXRlbHkgZ29pbmcgdG8gcmV0dXJuIGBXb3J0aEZ1enppbmc9ZmFsc2VgLlxuXG5JIGNoZWNrZWQgdGhlIGNhbGxlcnMgb2YgYHZjYXBfZGVjb2RlX3J1bGVgOiBgdmNhcF9nZXRfcnVsZWAgYW5kIGB2Y2FwX3Nob3dfYWRtaW5gLiBCb3RoIGFyZSB1c2VkIGJ5IG9ubHkgYGxhbjk2NnhgIGFuZCBgc3Bhcng1YC4gU28sIHRoZXJlIGFyZSBubyBvdGhlciB1c2VycyB0byBjb25zaWRlci5cblxuSSdtIGRlZmluaXRlbHkgcmV0dXJuaW5nIGBXb3J0aEZ1enppbmc9ZmFsc2VgLiBUaGUgcGF0Y2ggbW9kaWZpZXMgdW5yZWFjaGFibGUgY29kZS5cblxuXG4iLCJJbnB1dFRva2VucyI6NTU0MTksIk91dHB1dFRva2VucyI6MTEzLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6ODAyLCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTI5VDEwOjI5OjU3LjA2MTAyMjk3OVoiLCJTZXEiOjYwLCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJzZXQtcmVzdWx0cyIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjQxNDI5LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW10sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIG1vZGlmaWVzIGB2Y2FwX2RlY29kZV9ydWxlYCBpbiB0aGUgTWljcm9jaGlwIFZDQVAgQVBJIGxpYnJhcnkuIFRoaXMgbGlicmFyeSBpcyBleGNsdXNpdmVseSB1c2VkIGJ5IGhhcmR3YXJlLXNwZWNpZmljIHN3aXRjaCBkcml2ZXJzIChTcGFyeDUgYW5kIExhbjk2NngpIHdoaWNoIHJlcXVpcmUgcGh5c2ljYWwgaGFyZHdhcmUgKHNwZWNpZmljIE1pY3JvY2hpcCBTb0NzKSB0aGF0IGFyZSBub3QgZW11bGF0ZWQgaW4gc3RhbmRhcmQgUUVNVS4gQ29uc2VxdWVudGx5LCB0aGlzIGNvZGUgcGF0aCBpcyB1bnJlYWNoYWJsZSBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgYW5kIGNhbm5vdCBiZSBmdXp6ZWQuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IGZhbHNlXG59IiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IG51bGwsXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBtb2RpZmllcyBgdmNhcF9kZWNvZGVfcnVsZWAgaW4gdGhlIE1pY3JvY2hpcCBWQ0FQIEFQSSBsaWJyYXJ5LiBUaGlzIGxpYnJhcnkgaXMgZXhjbHVzaXZlbHkgdXNlZCBieSBoYXJkd2FyZS1zcGVjaWZpYyBzd2l0Y2ggZHJpdmVycyAoU3Bhcng1IGFuZCBMYW45NjZ4KSB3aGljaCByZXF1aXJlIHBoeXNpY2FsIGhhcmR3YXJlIChzcGVjaWZpYyBNaWNyb2NoaXAgU29DcykgdGhhdCBhcmUgbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIFFFTVUuIENvbnNlcXVlbnRseSwgdGhpcyBjb2RlIHBhdGggaXMgdW5yZWFjaGFibGUgaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGFuZCBjYW5ub3QgYmUgZnV6emVkLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiBmYWxzZVxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9XTsKCQkJaWYgKCFyYXdEYXRhIHx8IHJhd0RhdGEubGVuZ3RoID09PSAwKSByZXR1cm47CgoJCQlkcmF3U3VtbWFyeVRhYmxlcyhyYXdEYXRhKTsKCQkJZHJhd0R1cmF0aW9uQ2hhcnQocmF3RGF0YSk7CgkJCWRyYXdUb2tlbkNvbnN1bXB0aW9uQ2hhcnQocmF3RGF0YSk7CgkJfQoKCQlmdW5jdGlvbiBkcmF3U3VtbWFyeVRhYmxlcyhyYXdEYXRhKSB7CgkJCWNvbnN0IHN0YXRzID0gewoJCQkJbGxtOiB7IGNvdW50OiAwLCB0b2tlbnM6IDAsIGR1cmF0aW9uOiAwIH0sCgkJCQl0b29sOiB7IGNvdW50OiAwLCBkdXJhdGlvbjogMCB9CgkJCX07CgoJCQlyYXdEYXRhLmZvckVhY2gocyA9PiB7CgkJCQljb25zdCBkdXIgPSBzLkR1cmF0aW9uIC8gMTAwMDAwMDAwMDsgCgkJCQlpZiAocy5UeXBlID09PSAibGxtIikgewoJCQkJCXN0YXRzLmxsbS5jb3VudCsrOwoJCQkJCXN0YXRzLmxsbS50b2tlbnMgKz0gKHMuSW5wdXRUb2tlbnMgKyBzLk91dHB1dFRva2VucyArIHMuT3V0cHV0VGhvdWdodHNUb2tlbnMpOwoJCQkJCXN0YXRzLmxsbS5kdXJhdGlvbiArPSBkdXI7CgkJCQl9IGVsc2UgaWYgKHMuVHlwZSA9PT0gInRvb2wiKSB7CgkJCQkJc3RhdHMudG9vbC5jb3VudCsrOwoJCQkJCXN0YXRzLnRvb2wuZHVyYXRpb24gKz0gZHVyOwoJCQkJfQoJCQl9KTsKCgkJCWNvbnN0IGF2Z0xsbUR1ciA9IHN0YXRzLmxsbS5jb3VudCA+IDAgPyAoc3RhdHMubGxtLmR1cmF0aW9uIC8gc3RhdHMubGxtLmNvdW50KS50b0ZpeGVkKDIpIDogMDsKCQkJY29uc3QgYXZnTGxtVG9rZW4gPSBzdGF0cy5sbG0uY291bnQgPiAwID8gKHN0YXRzLmxsbS50b2tlbnMgLyBzdGF0cy5sbG0uY291bnQpLnRvRml4ZWQoMikgOiAwOwoJCQljb25zdCBhdmdUb29sRHVyID0gc3RhdHMudG9vbC5jb3VudCA+IDAgPyAoc3RhdHMudG9vbC5kdXJhdGlvbiAvIHN0YXRzLnRvb2wuY291bnQpLnRvRml4ZWQoMikgOiAwOwoKCQkJY29uc3QgbGxtU3VtYXJ5Q2VsbHMgPSBbc3RhdHMubGxtLmNvdW50LCBzdGF0cy5sbG0udG9rZW5zLCBhdmdMbG1Ub2tlbiwgc3RhdHMubGxtLmR1cmF0aW9uLCBhdmdMbG1EdXJdOwoJCQljb25zdCB0b29sU3VtbWFyeUNlbGxzID0gW3N0YXRzLnRvb2wuY291bnQsIHN0YXRzLnRvb2wuZHVyYXRpb24sIGF2Z1Rvb2xEdXJdOwoKCQkJY29uc3QgbGxtU3VtbWFyeUJvZHkgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnbGxtX3N1bW1hcnlfc3RhdHNfYm9keScpOwoJCQlsbG1TdW1tYXJ5Qm9keS5pbm5lckhUTUwgPSAiIjsKCQkJY29uc3QgbGxtVHIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0cicpOwoJCQlsbG1TdW1hcnlDZWxscy5mb3JFYWNoKGNlbGwgPT4gewoJCQkJY29uc3QgdGQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ZCcpOwoJCQkJdGQudGV4dENvbnRlbnQgPSBjZWxsOwoJCQkJbGxtVHIuYXBwZW5kQ2hpbGQodGQpOwoJCQl9KTsKCQkJbGxtU3VtbWFyeUJvZHkuYXBwZW5kQ2hpbGQobGxtVHIpOwoKCQkJY29uc3QgdG9vbFN1bW1hcnlCb2R5ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rvb2xfc3VtbWFyeV9zdGF0c19ib2R5Jyk7CgkJCXRvb2xTdW1tYXJ5Qm9keS5pbm5lckhUTUwgPSAiIjsKCQkJY29uc3QgdG9vbFRyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndHInKTsKCQkJdG9vbFN1bW1hcnlDZWxscy5mb3JFYWNoKGNlbGwgPT4gewoJCQkJY29uc3QgdGQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ZCcpOwoJCQkJdGQudGV4dENvbnRlbnQgPSBjZWxsOwoJCQkJdG9vbFRyLmFwcGVuZENoaWxkKHRkKTsKCQkJfSk7CgkJCXRvb2xTdW1tYXJ5Qm9keS5hcHBlbmRDaGlsZCh0b29sVHIpOwoJCX0KCgkJZnVuY3Rpb24gZHJhd0R1cmF0aW9uQ2hhcnQocmF3RGF0YSkgewoJCQljb25zdCBmaWx0ZXJlZFN0ZXBzID0gcmF3RGF0YS5maWx0ZXIoZCA9PiBbImxsbSIsICJ0b29sIl0uaW5jbHVkZXMoZC5UeXBlKSk7CgkJCWNvbnN0IGRhdGEgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uRGF0YVRhYmxlKCk7CgkJCWRhdGEuYWRkQ29sdW1uKCdzdHJpbmcnLCAnU3RlcCcpOwoJCQlkYXRhLmFkZENvbHVtbignbnVtYmVyJywgJ0R1cmF0aW9uJyk7CgkJCWRhdGEuYWRkQ29sdW1uKHt0eXBlOiAnc3RyaW5nJywgcm9sZTogJ3Rvb2x0aXAnfSk7IAoKCQkJZmlsdGVyZWRTdGVwcy5mb3JFYWNoKHMgPT4gewoJCQkJCgkJCQljb25zdCBkdXIgPSBzLkR1cmF0aW9uIC8gMTAwMDAwMDAwMDsKCQkJCWxldCB0b29sdGlwID0gcy5OYW1lOwoJCQkJaWYgKHMuVHlwZSA9PT0gImxsbSIgJiYgcy5Ub29sQ2FsbHMgJiYgcy5Ub29sQ2FsbHMubGVuZ3RoID4gMCkgewoJCQkJCXRvb2x0aXAgKz0gYFxuVG9vbHM6ICR7cy5Ub29sQ2FsbHMuam9pbignLCAnKX1gOwoJCQkJfQoJCQkJZGF0YS5hZGRSb3coW2Ake3MuU2VxfWAsIGR1ciwgdG9vbHRpcF0pOwoJCQl9KTsKCgkJCWNvbnN0IG9wdGlvbnMgPSB7CgkJCQl0aXRsZTogJ1RpbWUgQ29uc3VtcHRpb24gb2YgTExNL1Rvb2wgQ2FsbHMnLAoJCQkJaEF4aXM6IHsKCQkJCQl0aXRsZTogJ0xMTS9Ub29sIFN0ZXBzJywKCQkJCX0sCgkJCQl2QXhpczogeyB0aXRsZTogJ1NlY29uZHMnIH0sCgkJCQlsZWdlbmQ6IHsgcG9zaXRpb246ICdub25lJyB9LAoJCQkJYmFyOiB7IGdyb3VwV2lkdGg6ICc3NSUnIH0sCgkJCQljaGFydEFyZWE6IHsgd2lkdGg6ICc4NSUnLCBoZWlnaHQ6ICc3MCUnIH0sCgkJCQloZWlnaHQ6IDQwMAoJCQl9OwoKCQkJY29uc3QgY2hhcnQgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uQ29sdW1uQ2hhcnQoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2R1cmF0aW9uX2NoYXJ0X2RpdicpKTsKCQkJY2hhcnQuZHJhdyhkYXRhLCBvcHRpb25zKTsKCQl9CgoJCWZ1bmN0aW9uIGRyYXdUb2tlbkNvbnN1bXB0aW9uQ2hhcnQocmF3RGF0YSkgewoJCQljb25zdCBsbG1TdGVwcyA9IHJhd0RhdGEuZmlsdGVyKGQgPT4gZC5UeXBlID09PSAibGxtIik7CgkJCWlmIChsbG1TdGVwcy5sZW5ndGggPT09IDApIHJldHVybjsKCgkJCWNvbnN0IGRhdGEgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uRGF0YVRhYmxlKCk7CgkJCWRhdGEuYWRkQ29sdW1uKCdzdHJpbmcnLCAnU3RlcCcpOwkJCQoJCQlkYXRhLmFkZENvbHVtbignbnVtYmVyJywgJ1Rva2VucycpOwkJCQoJCQlkYXRhLmFkZENvbHVtbih7dHlwZTogJ3N0cmluZycsIHJvbGU6ICdzdHlsZSd9KTsJCgkJCWRhdGEuYWRkQ29sdW1uKHt0eXBlOiAnc3RyaW5nJywgcm9sZTogJ3Rvb2x0aXAnfSk7CQoKCQkJY29uc3QgYWdlbnRDb2xvcnMgPSB7fTsKCQkJY29uc3QgcGFsZXR0ZSA9IFsnIzQyODVGNCcsICcjREI0NDM3JywgJyNGNEI0MDAnLCAnIzBGOUQ1OCcsICcjQUI0N0JDJywgJyMwMEFDQzEnXTsKCQkJbGV0IGNvbG9ySWR4ID0gMDsKCQkJY29uc3QgYWdlbnRMTE1Db3VudHMgPSB7fTsKCQkJbGxtU3RlcHMuZm9yRWFjaChzID0+IHsKCQkJCWlmICghYWdlbnRDb2xvcnNbcy5OYW1lXSkgewoJCQkJCWFnZW50Q29sb3JzW3MuTmFtZV0gPSBwYWxldHRlW2NvbG9ySWR4ICUgcGFsZXR0ZS5sZW5ndGhdOwoJCQkJCWNvbG9ySWR4Kys7CgkJCQl9CgoJCQkJYWdlbnRMTE1Db3VudHNbcy5OYW1lXSA9IChhZ2VudExMTUNvdW50c1tzLk5hbWVdIHx8IDApICsgMTsKCQkJCWNvbnN0IGxhYmVsID0gYCR7cy5OYW1lfS0ke2FnZW50TExNQ291bnRzW3MuTmFtZV19YDsKCQkJCWNvbnN0IHRvdGFsVG9rZW5zID0gcy5JbnB1dFRva2VucyArIHMuT3V0cHV0VG9rZW5zICsgcy5PdXRwdXRUaG91Z2h0c1Rva2VuczsKCQkJCWNvbnN0IHN0eWxlID0gYGNvbG9yOiAke2FnZW50Q29sb3JzW3MuTmFtZV19YDsKCQkJCWxldCB0b29sdGlwID0gYFRvdGFsIFRva2VuczogJHt0b3RhbFRva2Vuc31cbihJbjogJHtzLklucHV0VG9rZW5zfSwgT3V0OiAke3MuT3V0cHV0VG9rZW5zfSwgVGhvdWdodHM6ICR7cy5PdXRwdXRUaG91Z2h0c1Rva2Vuc30pYDsKCQkJCWlmIChzLlRvb2xDYWxscyAmJiBzLlRvb2xDYWxscy5sZW5ndGggPiAwKSB7CgkJCQkJdG9vbHRpcCArPSBgXG5Ub29sczogJHtzLlRvb2xDYWxscy5qb2luKCcsICcpfWA7CgkJCQl9CgoJCQkJZGF0YS5hZGRSb3coW2xhYmVsLCB0b3RhbFRva2Vucywgc3R5bGUsIHRvb2x0aXBdKTsKCQkJfSk7CgoJCQljb25zdCBvcHRpb25zID0gewoJCQkJdGl0bGU6ICdUb2tlbiBDb25zdW1wdGlvbiBieSBMTE0gQ2FsbHMnLAoJCQkJaEF4aXM6IHsKCQkJCQl0aXRsZTogJ0xMTSBDYWxsIFNlcXVlbmNlJywKCQkJCX0sCgkJCQl2QXhpczogeyB0aXRsZTogJ0NvbnN1bWVkIFRva2VucycgfSwKCQkJCWxlZ2VuZDogeyBwb3NpdGlvbjogJ25vbmUnIH0sCgkJCQliYXI6IHsgZ3JvdXBXaWR0aDogJzc1JScgfSwKCQkJCWNoYXJ0QXJlYTogeyB3aWR0aDogJzg1JScsIGhlaWdodDogJzcwJScgfSwKCQkJCWhlaWdodDogNDAwCgkJCX07CgoJCQljb25zdCBjaGFydCA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5Db2x1bW5DaGFydChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndG9rZW5fY2hhcnRfZGl2JykpOwoJCQljaGFydC5kcmF3KGRhdGEsIG9wdGlvbnMpOwoJCX0KCQlsZXQgYWxsRXhwYW5kZWQgPSBmYWxzZTsKCQlmdW5jdGlvbiB0b2dnbGVBbGxEZXRhaWxzKCkgewoJCQlhbGxFeHBhbmRlZCA9ICFhbGxFeHBhbmRlZDsKCQkJZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgnZGV0YWlscycpLmZvckVhY2goZCA9PiB7CgkJCQlpZiAoYWxsRXhwYW5kZWQpIGQuc2V0QXR0cmlidXRlKCdvcGVuJywgJycpOwoJCQkJZWxzZSBkLnJlbW92ZUF0dHJpYnV0ZSgnb3BlbicpOwoJCQl9KTsKCQl9Cgk8L3NjcmlwdD4KCgo8L2JvZHk+CjwvaHRtbD4K" },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-workflowkx656[1] Phase: Running StartedAt: 2026-07-29 10:30:10 +0000 UTC FinishedAt: 0001-01-01 00:00:00 +0000 UTC Input: nil Output: nil --------- Name: series-workflowkx656[1].abort-on-skip-outcome Phase: Failed StartedAt: 2026-07-29 10:30:10 +0000 UTC FinishedAt: 2026-07-29 10:30:34 +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,}