Name: series-workflowg67jc Phase: Failed StartedAt: 2026-08-25 23:27:55 +0000 UTC FinishedAt: 2026-08-25 23:43:44 +0000 UTC Input: nil Output: nil --------- Name: series-workflowg67jc[0] Phase: Succeeded StartedAt: 2026-08-25 23:27:55 +0000 UTC FinishedAt: 2026-08-25 23:43:34 +0000 UTC Input: nil Output: nil --------- Name: series-workflowg67jc[0].run-triage Phase: Succeeded StartedAt: 2026-08-25 23:27:55 +0000 UTC FinishedAt: 2026-08-25 23:43:34 +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+CgkJCTx0ZD4yMDI2LzA4LzI1IDIzOjQyPC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBudWxsLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFtdLAogICYjMzQ7S01TQU5SZWFzb25pbmcmIzM0OzogJiMzNDsmIzM0OywKICAmIzM0O05lZWRzS01TQU4mIzM0OzogZmFsc2UsCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIG54cHdpZmkgZHJpdmVyLCB3aGljaCBpcyBhIHZlbmRvci1zcGVjaWZpYyBTRElPIHdpcmVsZXNzIGRyaXZlciBmb3IgTlhQIGNoaXBzLiBTRElPIGhhcmR3YXJlIGlzIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCBRRU1VIG9yIEdDRSBlbnZpcm9ubWVudHMgdXNlZCBmb3IgZnV6emluZywgc28gdGhpcyBjb2RlIGlzIHVucmVhY2hhYmxlLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IGZhbHNlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xLzE8L3RkPgoJCQk8dGQ+MjAyNi8wOC8yNSAyMzo0MjwvdGQ+CgkJCTx0ZD5hY3Rpb248L3RkPgoJCQk8dGQ+cmVhZC1wYXRjaC1kaWZmPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7UGF0Y2hEaWZmJiMzNDs6ICYjMzQ7Y29tbWl0IDQ0NjkxNWE2YmMzYWFiOGY4M2YxNGE4YjNlMDc3Yzg5MTg4ZWNiMzVcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cdTAwM2VcbkRhdGU6ICAgVHVlIEF1ZyAyNSAyMzo0MjoyMyAyMDI2ICYjNDM7MDAwMFxuXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XG5cbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMW4uYyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExbi5jXG5pbmRleCBjMmE1NGQ3ODFiNDJhLi4yNWIyZTQzMGYzZjkzIDEwMDY0NFxuLS0tIGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFuLmNcbiYjNDM7JiM0MzsmIzQzOyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExbi5jXG5AQCAtNDUxLDcgJiM0Mzs0NTEsNyBAQCB2b2lkXG4gbnhwd2lmaV8xMW5fZGVsZXRlX3R4X2JhX3N0cmVhbV90YmxfZW50cnkoc3RydWN0IG54cHdpZmlfcHJpdmF0ZSAqcHJpdixcbiBcdFx0XHRcdFx0ICBzdHJ1Y3Qgbnhwd2lmaV90eF9iYV9zdHJlYW1fdGJsICp0YmwpXG4ge1xuLVx0aWYgKCF0YmwgfHwgbnhwd2lmaV9pc190eF9iYV9zdHJlYW1fcHRyX3ZhbGlkKHByaXYsIHRibCkpXG4mIzQzO1x0aWYgKCF0YmwgfHwgIW54cHdpZmlfaXNfdHhfYmFfc3RyZWFtX3B0cl92YWxpZChwcml2LCB0YmwpKVxuIFx0XHRyZXR1cm47XG4gXG4gXHRueHB3aWZpX2RiZyhwcml2LVx1MDAzZWFkYXB0ZXIsIElORk8sXG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFuX3J4cmVvcmRlci5jIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFuX3J4cmVvcmRlci5jXG5pbmRleCA2NWI2Mjg0MTE1NDNiLi44N2NmMmVjODU5OTE0IDEwMDY0NFxuLS0tIGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFuX3J4cmVvcmRlci5jXG4mIzQzOyYjNDM7JiM0MzsgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMW5fcnhyZW9yZGVyLmNcbkBAIC0yMDUsMTEgJiM0MzsyMDUsMTIgQEAgdm9pZCBueHB3aWZpXzExbl9kZWxfcnhfcmVvcmRlcl90YmxfYnlfdGEoc3RydWN0IG54cHdpZmlfcHJpdmF0ZSAqcHJpdiwgdTggKnRhKVxuIFx0XHRyZXR1cm47XG4gXG4gXHRmb3IgKGkgPSAwOyBpIFx1MDAzYyBNQVhfTlVNX1RJRDsgaSYjNDM7JiM0MzspIHtcbi1cdFx0Z3VhcmQocmN1KSgpO1xuLVx0XHRsaXN0X2Zvcl9lYWNoX2VudHJ5X3JjdSh0YmwsIFx1MDAyNnByaXYtXHUwMDNlcnhfcmVvcmRlcl90YmxfcHRyW2ldLCBsaXN0KSB7XG4tXHRcdFx0aWYgKCFtZW1jbXAodGJsLVx1MDAzZXRhLCB0YSwgRVRIX0FMRU4pKSB7XG4tXHRcdFx0XHRJTklUX0xJU1RfSEVBRChcdTAwMjZ0YmwtXHUwMDNldG1wX2xpc3QpO1xuLVx0XHRcdFx0bGlzdF9hZGRfdGFpbChcdTAwMjZ0YmwtXHUwMDNldG1wX2xpc3QsIFx1MDAyNnRvX2RlbGV0ZSk7XG4mIzQzO1x0XHRzY29wZWRfZ3VhcmQocmN1KSB7XG4mIzQzO1x0XHRcdGxpc3RfZm9yX2VhY2hfZW50cnlfcmN1KHRibCwgXHUwMDI2cHJpdi1cdTAwM2VyeF9yZW9yZGVyX3RibF9wdHJbaV0sIGxpc3QpIHtcbiYjNDM7XHRcdFx0XHRpZiAoIW1lbWNtcCh0YmwtXHUwMDNldGEsIHRhLCBFVEhfQUxFTikpIHtcbiYjNDM7XHRcdFx0XHRcdElOSVRfTElTVF9IRUFEKFx1MDAyNnRibC1cdTAwM2V0bXBfbGlzdCk7XG4mIzQzO1x0XHRcdFx0XHRsaXN0X2FkZF90YWlsKFx1MDAyNnRibC1cdTAwM2V0bXBfbGlzdCwgXHUwMDI2dG9fZGVsZXRlKTtcbiYjNDM7XHRcdFx0XHR9XG4gXHRcdFx0fVxuIFx0XHR9XG4gXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Mi8xPC90ZD4KCQkJPHRkPjIwMjYvMDgvMjUgMjM6NDI8L3RkPgoJCQk8dGQ+YWdlbnQ8L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+YmVzdC1leHBlbnNpdmU8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBudWxsLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFtdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBueHB3aWZpIGRyaXZlciwgd2hpY2ggaXMgYSB2ZW5kb3Itc3BlY2lmaWMgU0RJTyB3aXJlbGVzcyBkcml2ZXIgZm9yIE5YUCBjaGlwcy4gU0RJTyBoYXJkd2FyZSBpcyBub3QgZW11bGF0ZWQgaW4gc3RhbmRhcmQgUUVNVSBvciBHQ0UgZW52aXJvbm1lbnRzIHVzZWQgZm9yIGZ1enppbmcsIHNvIHRoaXMgY29kZSBpcyB1bnJlYWNoYWJsZS4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiBmYWxzZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5JbnN0cnVjdGlvbjo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPllvdSBhcmUgYW4gZXhwZXJ0IExpbnV4IGtlcm5lbCBtYWludGFpbmVyLgpZb3VyIGpvYiBpcyB0byByZXZpZXcgYSBwcm92aWRlZCBwYXRjaCBzZXJpZXMgYW5kIGRldGVybWluZQppZiBpdCBtYWtlcyBmdW5jdGlvbmFsIGNoYW5nZXMgdG8gdGhlIGtlcm5lbCB0aGF0IHNob3VsZCBiZSBmdXp6ZWQuCgpJTVBPUlRBTlQ6IFRoZSBjaGFuZ2VzIGhhdmUgQUxSRUFEWSBiZWVuIGFwcGxpZWQgYW5kIGNvbW1pdHRlZCBhcyB0aGUgSEVBRCBjb21taXQgaW4KeW91ciB3b3Jrc3BhY2UuIERvIE5PVCByZWx5IG9uIHlvdXIgaW50ZXJuYWwga25vd2xlZGdlIG9mIHRoZSBrZXJuZWwuIFlvdSBtdXN0IGFjdGl2ZWx5CnVzZSB5b3VyIGNvZGUgYWNjZXNzIHRvb2xzIHRvIGV4YW1pbmUgdGhlIGFjdHVhbCBzb3VyY2UgY29kZSBhbmQgY29uZmlybSBhbnkgYXNzdW1wdGlvbnMuCgpSZXR1cm4gV29ydGhGdXp6aW5nPWZhbHNlIGlmIHRoZSBwYXRjaCBvbmx5IGNvbnRhaW5zOgotIE1vZGlmaWNhdGlvbnMgdG8gRG9jdW1lbnRhdGlvbi8sIEtjb25maWcgZmlsZXMsIG9yIGNvZGUgY29tbWVudHMuCi0gUHVyZWx5IGRlY29yYXRpdmUgY2hhbmdlcywgc3VjaCBhcyBsb2dnaW5nIChlLmcuLCBwcl9lcnIsIHByaW50aykgb3IgdHJhY2Vwb2ludHMuCi0gQ2hhbmdlcyB0byBudW1lcmljIGNvbnN0YW50cyBvciBtYWNyb3MgdGhhdCBkbyBub3QgZnVuY3Rpb25hbGx5IGFsdGVyIGV4ZWN1dGlvbiBmbG93LgotIENvZGUgcGF0aHMgdGhhdCBhcmUgaW1wb3NzaWJsZSB0byByZWFjaCBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBHQ0Ugb3IgUUVNVSwKICBldmVuIHdoZW4gdXRpbGl6aW5nIHNvZnR3YXJlLWVtdWxhdGVkIGhhcmR3YXJlIChlLmcuLCB1c2IgZ2FkZ2V0LCBtYWM4MDIxMV9od3NpbSkuCi0gQ29kZSBpbiB2ZW5kb3Itc3BlY2lmaWMgUENJZSBzd2l0Y2gsIFNtYXJ0TklDLCBvciBHUFUgZHJpdmVycyAoZS5nLiwgbWx4c3csIHBkc19jb3JlLCBxZWQsCiAgaW9uaWMsIGFtZGdwdSkgdGhhdCByZXF1aXJlIHBoeXNpY2FsIFBDSWUgaGFyZHdhcmUgY2FyZHMgbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIFFFTVUuCi0gRHJpdmVyIC5yZW1vdmUsIC5zaHV0ZG93biwgb3IgcGNpX3VucmVnaXN0ZXJfZHJpdmVyIHRlYXJkb3duIGNhbGxiYWNrcyAoZS5nLiwgaWdiX3JlbW92ZSkKICB0aGF0IGFyZSBleGVjdXRlZCBvbmx5IGR1cmluZyBQQ0kgaG90LXVucGx1ZyBvciBzeXNmcyBkcml2ZXIgdW5iaW5kIG9wZXJhdGlvbnMuCgpJZiBpdCBtb2RpZmllcyByZWFjaGFibGUgY29yZSBrZXJuZWwgbG9naWMsIGRyaXZlcnMsIG9yIGFyY2hpdGVjdHVyZXMsIHVzZSB5b3VyIGNvZGUgc2VhcmNoCnRvb2xzIHRvIHZlcmlmeSB0aGUgY29kZSBjYW4gYmUgZXhlY3V0ZWQsIHRoZW4gcmV0dXJuIFdvcnRoRnV6emluZz10cnVlLgoKV2hlbiByZXR1cm5pbmcgV29ydGhGdXp6aW5nPXRydWUsIHlvdSBNVVNUIEFMU086CjEuIEV4dHJhY3QgYW55IHNwZWNpZmljIGtlcm5lbCBmdW5jdGlvbnMgdGhhdCBzaG91bGQgYmUgaGVhdmlseSBmdXp6ZWQgaW50byBGb2N1c1N5bWJvbHMuCiAgIEF2b2lkIGxpc3RpbmcgZ2VuZXJpYyBob3QtcGF0aCBmdW5jdGlvbnMgdG8gcHJldmVudCBza2V3ZWQgdGVzdCBkaXN0cmlidXRpb25zLgogICBQcmVmZXIgbm9uLXN0YXRpYywgbm9uLWlubGluZWQgQVBJIGVudHJ5cG9pbnQgZnVuY3Rpb25zIG92ZXIgaW50ZXJuYWwgc3RhdGljIGhlbHBlciBmdW5jdGlvbnMKICAgKHdoaWNoIGFyZSBpbmxpbmVkIGJ5IHRoZSBjb21waWxlciBhbmQgZG8gbm90IGhhdmUgZGlzdGluY3Qgc3ltYm9sIGFkZHJlc3NlcykuCjIuIElkZW50aWZ5IGFueSBzcGVjaWZpYyBDT05GSUdfIG9wdGlvbnMgcmVxdWlyZWQgdG8gcHJvcGVybHkgdGVzdCB0aGlzIG5ldy9tb2RpZmllZCBmZWF0dXJlLgogICBHbyBhbmQgbG9vayBpbnRvIHRoZSBLY29uZmlnIGZpbGVzIGFuZCBjaGVjayBmb3IgaWZkZWZzIGFyb3VuZCB0aGUgY29kZSwgZG8gbm90IG1ha2UgYXNzdW1wdGlvbnMuCiAgIEFsc28gY2hlY2sgJiMzNDtkZXBlbmRzIG9uJiMzNDsgbGluZXMgaW4gS2NvbmZpZyB0byBpbmNsdWRlIGFueSBub24tc3RhbmRhcmQgcGFyZW50IHN1YnN5c3RlbSBjb25maWdzCiAgIG5lZWRlZCBmb3IgS2J1aWxkIHRvIGNvbXBpbGUgdGhlIGNvZGUgc3RhdGljYWxseSBpbnRvIHZtbGludXguIExpc3QgdGhlbSBpbiB0aGUgRW5hYmxlQ29uZmlncwogICBvdXRwdXQgYXJyYXksIGFuZCBETyBOT1QgYWRkIGEgJiMzOTtDT05GSUdfJiMzOTsgcHJlZml4IChlLmcuLCByZXR1cm4gJiMzNDtORVRfSVBWNCYjMzQ7IGluc3RlYWQgb2YgJiMzNDtDT05GSUdfTkVUX0lQVjQmIzM0OykuClByZWZlciBjYWxsaW5nIHNldmVyYWwgdG9vbHMgYXQgdGhlIHNhbWUgdGltZSB0byBzYXZlIHJvdW5kLXRyaXBzLgoKClVzZSBzZXQtcmVzdWx0cyB0b29sIHRvIHByb3ZpZGUgcmVzdWx0cyBvZiB0aGUgYW5hbHlzaXMuCkl0IG11c3QgYmUgY2FsbGVkIGV4YWN0bHkgb25jZSBiZWZvcmUgdGhlIGZpbmFsIHJlcGx5LgpJZ25vcmUgcmVzdWx0cyBvZiB0aGlzIHRvb2wuCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UHJvbXB0OjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Rm9yIHlvdXIgY29udmVuaWVuY2UsIGhlcmUgaXMgdGhlIGRpZmYgb2YgdGhlIGNoYW5nZXM6CmNvbW1pdCA0NDY5MTVhNmJjM2FhYjhmODNmMTRhOGIzZTA3N2M4OTE4OGVjYjM1CkF1dGhvcjogc3l6LWNsdXN0ZXIgJmx0O3RyaWFnZUBzeXprYWxsZXIuY29tJmd0OwpEYXRlOiAgIFR1ZSBBdWcgMjUgMjM6NDI6MjMgMjAyNiAmIzQzOzAwMDAKCiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXcKCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMW4uYyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExbi5jCmluZGV4IGMyYTU0ZDc4MWI0MmEuLjI1YjJlNDMwZjNmOTMgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExbi5jCiYjNDM7JiM0MzsmIzQzOyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExbi5jCkBAIC00NTEsNyAmIzQzOzQ1MSw3IEBAIHZvaWQKIG54cHdpZmlfMTFuX2RlbGV0ZV90eF9iYV9zdHJlYW1fdGJsX2VudHJ5KHN0cnVjdCBueHB3aWZpX3ByaXZhdGUgKnByaXYsCiAJCQkJCSAgc3RydWN0IG54cHdpZmlfdHhfYmFfc3RyZWFtX3RibCAqdGJsKQogewotCWlmICghdGJsIHx8IG54cHdpZmlfaXNfdHhfYmFfc3RyZWFtX3B0cl92YWxpZChwcml2LCB0YmwpKQomIzQzOwlpZiAoIXRibCB8fCAhbnhwd2lmaV9pc190eF9iYV9zdHJlYW1fcHRyX3ZhbGlkKHByaXYsIHRibCkpCiAJCXJldHVybjsKIAogCW54cHdpZmlfZGJnKHByaXYtJmd0O2FkYXB0ZXIsIElORk8sCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMW5fcnhyZW9yZGVyLmMgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMW5fcnhyZW9yZGVyLmMKaW5kZXggNjViNjI4NDExNTQzYi4uODdjZjJlYzg1OTkxNCAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFuX3J4cmVvcmRlci5jCiYjNDM7JiM0MzsmIzQzOyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExbl9yeHJlb3JkZXIuYwpAQCAtMjA1LDExICYjNDM7MjA1LDEyIEBAIHZvaWQgbnhwd2lmaV8xMW5fZGVsX3J4X3Jlb3JkZXJfdGJsX2J5X3RhKHN0cnVjdCBueHB3aWZpX3ByaXZhdGUgKnByaXYsIHU4ICp0YSkKIAkJcmV0dXJuOwogCiAJZm9yIChpID0gMDsgaSAmbHQ7IE1BWF9OVU1fVElEOyBpJiM0MzsmIzQzOykgewotCQlndWFyZChyY3UpKCk7Ci0JCWxpc3RfZm9yX2VhY2hfZW50cnlfcmN1KHRibCwgJmFtcDtwcml2LSZndDtyeF9yZW9yZGVyX3RibF9wdHJbaV0sIGxpc3QpIHsKLQkJCWlmICghbWVtY21wKHRibC0mZ3Q7dGEsIHRhLCBFVEhfQUxFTikpIHsKLQkJCQlJTklUX0xJU1RfSEVBRCgmYW1wO3RibC0mZ3Q7dG1wX2xpc3QpOwotCQkJCWxpc3RfYWRkX3RhaWwoJmFtcDt0YmwtJmd0O3RtcF9saXN0LCAmYW1wO3RvX2RlbGV0ZSk7CiYjNDM7CQlzY29wZWRfZ3VhcmQocmN1KSB7CiYjNDM7CQkJbGlzdF9mb3JfZWFjaF9lbnRyeV9yY3UodGJsLCAmYW1wO3ByaXYtJmd0O3J4X3Jlb3JkZXJfdGJsX3B0cltpXSwgbGlzdCkgewomIzQzOwkJCQlpZiAoIW1lbWNtcCh0YmwtJmd0O3RhLCB0YSwgRVRIX0FMRU4pKSB7CiYjNDM7CQkJCQlJTklUX0xJU1RfSEVBRCgmYW1wO3RibC0mZ3Q7dG1wX2xpc3QpOwomIzQzOwkJCQkJbGlzdF9hZGRfdGFpbCgmYW1wO3RibC0mZ3Q7dG1wX2xpc3QsICZhbXA7dG9fZGVsZXRlKTsKJiM0MzsJCQkJfQogCQkJfQogCQl9CiAKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+My8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMjUgMjM6NDI8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMjQ4MAoJCQkJCQkJb3V0cHV0OiAzMgoJCQkJCQkJdGhvdWdodHM6IDI4OQoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipBbmFseXppbmcgYSBXaXJlbGVzcyBEcml2ZXIgUGF0Y2gqKgoKT2theSwgc28gSSYjMzk7bSBsb29raW5nIGF0IHRoaXMgcGF0Y2ggYW5kIGl0IHNlZW1zIGxpa2UgaXQmIzM5O3MgYWRkcmVzc2luZyB0d28gaXNzdWVzIGluIHRoZSBgbnhwd2lmaWAgZHJpdmVyLiBPbmUmIzM5O3MgYSBzaW1wbGUgZml4IOKAkyBhIG1pc3NpbmcgYCFgIGluIGEgY2hlY2sgd2l0aGluIHRoZSBgbnhwd2lmaV8xMW5fZGVsZXRlX3R4X2JhX3N0cmVhbV90YmxfZW50cnlgIGZ1bmN0aW9uLCB3aGljaCBpcyBlYXN5IGVub3VnaCB0byB1bmRlcnN0YW5kLiBUaGUgb3RoZXIsIGhvd2V2ZXIsIGlzIGEgbGl0dGxlIG1vcmUgaW50ZXJlc3Rpbmc7IHRoZSBwYXRjaCBpcyByZXBsYWNpbmcgYSBwb3RlbnRpYWxseSBwcm9ibGVtYXRpYyB1c2Ugb2YgYGd1YXJkKHJjdSkoKWAgd2l0aGluIGEgbG9vcCBpbiBgbnhwd2lmaV8xMW5fZGVsX3J4X3Jlb3JkZXJfdGJsX2J5X3RhYCB3aXRoIGBzY29wZWRfZ3VhcmQocmN1KSB7IC4uLiB9YC4gTXkgaW5pdGlhbCB0aG91Z2h0IGlzIHRoZSBjb2RlIGlzIHJlZmFjdG9yaW5nIGEgUkNVIGd1YXJkLCB3aGljaCBpcyBhIGdvb2QgdGhpbmcgYXMgaXQgbWlnaHQgZml4IHNjb3Bpbmcgb3IgY29udGVudGlvbiBpc3N1ZXMuCgpUaGUgcXVlc3Rpb24gdGhlbiBiZWNvbWVzLCBjYW4gd2UgbGV2ZXJhZ2UgdGhpcyBwYXRjaCBmb3IgYW55dGhpbmcgaW50ZXJlc3RpbmcgZnJvbSBhIHRlc3RpbmcgcGVyc3BlY3RpdmU/IElzIGBueHB3aWZpYCBhIGRyaXZlciB3ZSBjYW4gcmVhbGlzdGljYWxseSBmdXp6PyBJdCYjMzk7cyBhIHdpcmVsZXNzIGRyaXZlciwgd2hpY2ggdXN1YWxseSBwb2ludHMgdG8gaGFyZHdhcmUgZGVwZW5kZW5jeSDigJMgU0RJTywgUENJZSwgVVNCLCB0aGF0IHNvcnQgb2YgdGhpbmcuIEJ1dCwgbWF5YmUgd2UgY2FuIHNpbXVsYXRlIGl0IHdpdGggc29tZXRoaW5nIGxpa2UgYG1hYzgwMjExX2h3c2ltYD8gTGV0JiMzOTtzIGNoZWNrLgoKSSBuZWVkIHRvIHNlZSBpZiB0aGlzIGRyaXZlciBpcyBwdXJlbHkgaGFyZHdhcmUtc3BlY2lmaWMgb3IgaWYgdGhlcmUmIzM5O3MgYSBwb3NzaWJpbGl0eSBmb3IgZW11bGF0aW9uLiBNeSBuZXh0IHN0ZXAgaXMgdG8gZGl2ZSBpbnRvIHRoZSBgS2NvbmZpZ2AgZmlsZSBpbiB0aGUgZHJpdmVyJiMzOTtzIGRpcmVjdG9yeSDigJMgYGRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpL0tjb25maWdgIOKAkyBvciBtYXliZSBhbm90aGVyIHJlbGV2YW50IGZpbGUgdG8gdW5kZXJzdGFuZCB0aGUgYXJjaGl0ZWN0dXJlIGFuZCBwb3NzaWJpbGl0aWVzIGZvciBzaW11bGF0aW9uLiBUaGF0IHNob3VsZCB0ZWxsIG1lIGlmIHdlIGNhbiBnZW5lcmF0ZSB1c2VmdWwgdGVzdCBjYXNlcyBmcm9tIGl0LgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjQvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzI1IDIzOjQyPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O254cHdpZmkmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O1xuRnVsbCBvdXRwdXQgaXMgdG9vIGxvbmcsIHNob3dpbmcgNTAwIG91dCBvZiAxNTE3MiBsaW5lcy5cblVzZSBtb3JlIHByZWNpc2UgZXhwcmVzc2lvbiBpZiBwb3NzaWJsZS5cblxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL0tjb25maWc9MTM9aWYgV0xBTl9WRU5ET1JfTlhQXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvS2NvbmZpZy0xNC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9LY29uZmlnOjE1OnNvdXJjZSBcJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS9LY29uZmlnXCYjMzQ7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvS2NvbmZpZy0xNi1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvTWFrZWZpbGUtMi1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9NYWtlZmlsZTozOm9iai0kKENPTkZJR19OWFBXSUZJKVx0JiM0Mzs9IG54cHdpZmkvXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFhYy5jLTItLypcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYWMuYzozOiAqIG54cHdpZmkgODAyLjExYWMgaGVscGVyc1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFhYy5jLTQtICogQ29weXJpZ2h0IDIwMTEtMjAyNCBOWFBcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWFjLmM9MzY9c3RhdGljIHUxNlxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFhYy5jOjM3Om54cHdpZmlfY29udmVydF9tY3NtYXBfdG9fbWF4cmF0ZShzdHJ1Y3Qgbnhwd2lmaV9wcml2YXRlICpwcml2LFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFhYy5jLTM4LVx0XHRcdFx0ICB1MTYgYmFuZHMsIHUxNiBtY3NfbWFwKVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYWMuYy00Mi1cdHUzMiB1c3Jfdmh0X2NhcF9pbmZvID0gMDtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYWMuYzo0MzpcdHN0cnVjdCBueHB3aWZpX2FkYXB0ZXIgKmFkYXB0ZXIgPSBwcml2LVx1MDAzZWFkYXB0ZXI7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWFjLmMtNDQtXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFhYy5jPTc5PXN0YXRpYyB2b2lkXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWFjLmM6ODA6bnhwd2lmaV9maWxsX3ZodF9jYXBfaW5mbyhzdHJ1Y3Qgbnhwd2lmaV9wcml2YXRlICpwcml2LFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFhYy5jLTgxLVx0XHRcdCAgc3RydWN0IGllZWU4MDIxMV92aHRfY2FwICp2aHRfY2FwLCB1MTYgYmFuZHMpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWFjLmMtODIte1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFhYy5jOjgzOlx0c3RydWN0IG54cHdpZmlfYWRhcHRlciAqYWRhcHRlciA9IHByaXYtXHUwMDNlYWRhcHRlcjtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYWMuYy04NC1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWFjLmM9OTM9dm9pZFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFhYy5jOjk0Om54cHdpZmlfZmlsbF92aHRfY2FwX3RsdihzdHJ1Y3Qgbnhwd2lmaV9wcml2YXRlICpwcml2LFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFhYy5jLTk1LVx0XHRcdCBzdHJ1Y3QgaWVlZTgwMjExX3ZodF9jYXAgKnZodF9jYXAsIHUxNiBiYW5kcylcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYWMuYy05Ni17XG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWFjLmM6OTc6XHRzdHJ1Y3Qgbnhwd2lmaV9hZGFwdGVyICphZGFwdGVyID0gcHJpdi1cdTAwM2VhZGFwdGVyO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFhYy5jLTk4LVx0dTE2IG1jc19tYXBfdXNlciwgbWNzX21hcF9yZXNwLCBtY3NfbWFwX3Jlc3VsdDtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWFjLmMtMTAxLVx0LyogRmlsbCBWSFQgY2FwYWJpbGl0eSBpbmZvLiAqL1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFhYy5jOjEwMjpcdG54cHdpZmlfZmlsbF92aHRfY2FwX2luZm8ocHJpdiwgdmh0X2NhcCwgYmFuZHMpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFhYy5jLTEwMy1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWFjLmMtMTIzLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFhYy5jOjEyNDpcdHRtcCA9IG54cHdpZmlfY29udmVydF9tY3NtYXBfdG9fbWF4cmF0ZShwcml2LCBiYW5kcywgbWNzX21hcF9yZXN1bHQpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFhYy5jLTEyNS1cdHZodF9jYXAtXHUwMDNlc3VwcF9tY3MucnhfaGlnaGVzdCA9IGNwdV90b19sZTE2KHRtcCk7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFhYy5jLTE0NS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYWMuYzoxNDY6XHR0bXAgPSBueHB3aWZpX2NvbnZlcnRfbWNzbWFwX3RvX21heHJhdGUocHJpdiwgYmFuZHMsIG1jc19tYXBfcmVzdWx0KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYWMuYy0xNDctXHR2aHRfY2FwLVx1MDAzZXN1cHBfbWNzLnR4X2hpZ2hlc3QgPSBjcHVfdG9fbGUxNih0bXApO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYWMuYy0xNDktXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWFjLmM6MTUwOmludCBueHB3aWZpX2NtZF9hcHBlbmRfMTFhY190bHYoc3RydWN0IG54cHdpZmlfcHJpdmF0ZSAqcHJpdixcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYWMuYzoxNTE6XHRcdFx0XHRzdHJ1Y3Qgbnhwd2lmaV9ic3NkZXNjcmlwdG9yICpic3NfZGVzYyxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYWMuYy0xNTItXHRcdFx0XHR1OCAqKmJ1ZmZlcilcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYWMuYy0xNTMte1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFhYy5jOjE1NDpcdHN0cnVjdCBueHB3aWZpX2llX3R5cGVzX3ZodGNhcCAqdmh0X2NhcDtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYWMuYzoxNTU6XHRzdHJ1Y3Qgbnhwd2lmaV9pZV90eXBlc19vcGVyX21vZGVfbnRmICpvcGVyX250ZjtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYWMuYy0xNTYtXHRzdHJ1Y3QgaWVlZV90eXBlc19vcGVyX21vZGVfbnRmICppZWVlX29wZXJfbnRmO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFhYy5jOjE1NzpcdHN0cnVjdCBueHB3aWZpX2llX3R5cGVzX3ZodF9vcGVyICp2aHRfb3A7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWFjLmM6MTU4Olx0c3RydWN0IG54cHdpZmlfYWRhcHRlciAqYWRhcHRlciA9IHByaXYtXHUwMDNlYWRhcHRlcjtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYWMuYy0xNTktXHR1OCBzdXBwX2Nod2Rfc2V0O1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYWMuYy0xNjktXHRpZiAoYnNzX2Rlc2MtXHUwMDNlYmNuX3ZodF9jYXApIHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYWMuYzoxNzA6XHRcdHZodF9jYXAgPSAoc3RydWN0IG54cHdpZmlfaWVfdHlwZXNfdmh0Y2FwICopKmJ1ZmZlcjtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYWMuYy0xNzEtXHRcdG1lbXNldCh2aHRfY2FwLCAwLCBzaXplb2YoKnZodF9jYXApKTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWFjLmMtMTc0LVx0XHRcdGNwdV90b19sZTE2KHNpemVvZihzdHJ1Y3QgaWVlZTgwMjExX3ZodF9jYXApKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYWMuYzoxNzU6XHRcdG1lbWNweSgodTggKil2aHRfY2FwICYjNDM7IHNpemVvZihzdHJ1Y3Qgbnhwd2lmaV9pZV90eXBlc19oZWFkZXIpLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFhYy5jLTE3Ni1cdFx0ICAgICAgICh1OCAqKWJzc19kZXNjLVx1MDAzZWJjbl92aHRfY2FwLFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYWMuYy0xNzgtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWFjLmM6MTc5Olx0XHRueHB3aWZpX2ZpbGxfdmh0X2NhcF90bHYocHJpdiwgXHUwMDI2dmh0X2NhcC1cdTAwM2V2aHRfY2FwLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFhYy5jLTE4MC1cdFx0XHRcdFx0IGJzc19kZXNjLVx1MDAzZWJzc19iYW5kKTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWFjLmMtMTg3LVx0XHRpZiAocHJpdi1cdTAwM2Vic3NfbW9kZSA9PSBOTDgwMjExX0lGVFlQRV9TVEFUSU9OKSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWFjLmM6MTg4Olx0XHRcdHZodF9vcCA9IChzdHJ1Y3Qgbnhwd2lmaV9pZV90eXBlc192aHRfb3BlciAqKSpidWZmZXI7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWFjLmMtMTg5LVx0XHRcdG1lbXNldCh2aHRfb3AsIDAsIHNpemVvZigqdmh0X29wKSk7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFhYy5jLTE5Mi1cdFx0XHR2aHRfb3AtXHUwMDNlaGVhZGVyLmxlbiAgPSBjcHVfdG9fbGUxNihzaXplb2YoKnZodF9vcCkgLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFhYy5jOjE5MzpcdFx0XHRcdHNpemVvZihzdHJ1Y3Qgbnhwd2lmaV9pZV90eXBlc19oZWFkZXIpKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYWMuYy0xOTQtXHRcdFx0bWVtY3B5KCh1OCAqKXZodF9vcCAmIzQzO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFhYy5jOjE5NTpcdFx0XHRcdHNpemVvZihzdHJ1Y3Qgbnhwd2lmaV9pZV90eXBlc19oZWFkZXIpLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFhYy5jLTE5Ni1cdFx0XHQgICAgICAgKHU4ICopYnNzX2Rlc2MtXHUwMDNlYmNuX3ZodF9vcGVyLFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYWMuYy0yNDQtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWFjLmM6MjQ1OmludCBueHB3aWZpX2NtZF8xMWFjX2NmZyhzdHJ1Y3Qgbnhwd2lmaV9wcml2YXRlICpwcml2LFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFhYy5jLTI0Ni1cdFx0XHQgc3RydWN0IGhvc3RfY21kX2RzX2NvbW1hbmQgKmNtZCwgdTE2IGNtZF9hY3Rpb24sXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWFjLmM6MjQ3Olx0XHRcdCBzdHJ1Y3Qgbnhwd2lmaV8xMWFjX3ZodF9jZmcgKmNmZylcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYWMuYy0yNDgte1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYWMuYy0yNjQtLyogSW5pdGlhbGl6ZSBCbG9ja0FjayBwYXJhbWV0ZXJzIGZvciAxMWFjLiAqL1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFhYy5jOjI2NTp2b2lkIG54cHdpZmlfc2V0XzExYWNfYmFfcGFyYW1zKHN0cnVjdCBueHB3aWZpX3ByaXZhdGUgKnByaXYpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWFjLmMtMjY2LXtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWFjLmgtMi0vKlxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFhYy5oOjM6ICogbnhwd2lmaTogODAyLjExYWMgKFZIVCkgZGVmaW5pdGlvbnNcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYWMuaC00LSAqXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFhYy5oPTE0PWVudW0gdmh0X2NmZ19taXNjX2NvbmZpZyB7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFhYy5oLTI0LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFhYy5oOjI1OmludCBueHB3aWZpX2NtZF9hcHBlbmRfMTFhY190bHYoc3RydWN0IG54cHdpZmlfcHJpdmF0ZSAqcHJpdixcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYWMuaDoyNjpcdFx0XHRcdHN0cnVjdCBueHB3aWZpX2Jzc2Rlc2NyaXB0b3IgKmJzc19kZXNjLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFhYy5oLTI3LVx0XHRcdFx0dTggKipidWZmZXIpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFhYy5oOjI4OmludCBueHB3aWZpX2NtZF8xMWFjX2NmZyhzdHJ1Y3Qgbnhwd2lmaV9wcml2YXRlICpwcml2LFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFhYy5oLTI5LVx0XHRcdCBzdHJ1Y3QgaG9zdF9jbWRfZHNfY29tbWFuZCAqY21kLCB1MTYgY21kX2FjdGlvbixcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYWMuaDozMDpcdFx0XHQgc3RydWN0IG54cHdpZmlfMTFhY192aHRfY2ZnICpjZmcpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFhYy5oOjMxOnZvaWQgbnhwd2lmaV9maWxsX3ZodF9jYXBfdGx2KHN0cnVjdCBueHB3aWZpX3ByaXZhdGUgKnByaXYsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWFjLmgtMzItXHRcdFx0ICAgICAgc3RydWN0IGllZWU4MDIxMV92aHRfY2FwICp2aHRfY2FwLCB1MTYgYmFuZHMpO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYy0xLS8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wLW9ubHlcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYzoyOi8qIG54cHdpZmk6IDgwMi4xMWF4IChIRSkgc3VwcG9ydFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jLTMtICogQ29weXJpZ2h0IChDKSAyMDExLTIwMjQgTlhQXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jLTEwLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jOjExOnZvaWQgbnhwd2lmaV91cGRhdGVfMTFheF9jYXAoc3RydWN0IG54cHdpZmlfYWRhcHRlciAqYWRhcHRlcixcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYy0xMi1cdFx0XHQgICAgIHN0cnVjdCBod19zcGVjX2V4dGVuc2lvbiAqaHdfaGVfY2FwKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jLTEzLXtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYzoxNDpcdHN0cnVjdCBueHB3aWZpX3ByaXZhdGUgKnByaXY7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmM6MTU6XHRzdHJ1Y3Qgbnhwd2lmaV9pZV90eXBlc19oZV9jYXAgKmhlX2NhcCA9IE5VTEw7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmM6MTY6XHRzdHJ1Y3Qgbnhwd2lmaV9pZV90eXBlc19oZV9jYXAgKnVzZXJfaGVfY2FwID0gTlVMTDtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYzoxNzpcdHU4IGhlYWRlcl9sZW4gPSBzaXplb2Yoc3RydWN0IG54cHdpZmlfaWVfdHlwZXNfaGVhZGVyKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYy0xOC1cdHUxNiBkYXRhX2xlbiA9IGxlMTZfdG9fY3B1KGh3X2hlX2NhcC1cdTAwM2VoZWFkZXIubGVuKTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmMtMjItXHRpZiAoKGRhdGFfbGVuICYjNDM7IGhlYWRlcl9sZW4pIFx1MDAzZSBzaXplb2YoYWRhcHRlci1cdTAwM2Vod19oZV9jYXApKSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmM6MjM6XHRcdG54cHdpZmlfZGJnKGFkYXB0ZXIsIEVSUk9SLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jLTI0LVx0XHRcdCAgICBcJiMzNDtod19oZV9jYXAgdG9vIGJpZywgbGVuPSVkXFxuXCYjMzQ7LFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYy0yOC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYzoyOTpcdGhlX2NhcCA9IChzdHJ1Y3Qgbnhwd2lmaV9pZV90eXBlc19oZV9jYXAgKilod19oZV9jYXA7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmMtMzAtXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jLTM3LVx0XHRoZV9jYXBfMmcgPSB0cnVlO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jOjM4Olx0XHRueHB3aWZpX2RiZ19kdW1wKGFkYXB0ZXIsIENNRF9ELCBcJiMzNDsyLjRHIEhFIGNhcGFiaWxpdHkgZWxlbWVudCBcJiMzNDssXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmMtMzktXHRcdFx0XHQgYWRhcHRlci1cdTAwM2Vod18yZ19oZV9jYXAsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jLTQ1LVx0XHRhZGFwdGVyLVx1MDAzZWZ3X2JhbmRzIHw9IEJBTkRfQUFYO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jOjQ2Olx0XHRueHB3aWZpX2RiZ19kdW1wKGFkYXB0ZXIsIENNRF9ELCBcJiMzNDs1RyBIRSBjYXBhYmlsaXR5IGVsZW1lbnQgXCYjMzQ7LFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jLTQ3LVx0XHRcdFx0IGFkYXB0ZXItXHUwMDNlaHdfaGVfY2FwLFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYy01Ny1cdFx0XHQgICAgICAgc2l6ZW9mKGFkYXB0ZXItXHUwMDNlaHdfMmdfaGVfY2FwKSk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmM6NTg6XHRcdFx0dXNlcl9oZV9jYXAgPSAoc3RydWN0IG54cHdpZmlfaWVfdHlwZXNfaGVfY2FwICopXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmMtNTktXHRcdFx0XHRwcml2LVx1MDAzZXVzZXJfMmdfaGVfY2FwO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYy02My1cdFx0XHQgICAgICAgc2l6ZW9mKGFkYXB0ZXItXHUwMDNlaHdfaGVfY2FwKSk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmM6NjQ6XHRcdFx0dXNlcl9oZV9jYXAgPSAoc3RydWN0IG54cHdpZmlfaWVfdHlwZXNfaGVfY2FwICopXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmMtNjUtXHRcdFx0XHRwcml2LVx1MDAzZXVzZXJfaGVfY2FwO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYy03OC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYzo3OTpib29sIG54cHdpZmlfMTFheF9iYW5kY29uZmlnX2FsbG93ZWQoc3RydWN0IG54cHdpZmlfcHJpdmF0ZSAqcHJpdixcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYzo4MDpcdFx0XHRcdCAgICAgc3RydWN0IG54cHdpZmlfYnNzZGVzY3JpcHRvciAqYnNzX2Rlc2MpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmMtODEte1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYy05NC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYzo5NTppbnQgbnhwd2lmaV9maWxsX2hlX2NhcF90bHYoc3RydWN0IG54cHdpZmlfcHJpdmF0ZSAqcHJpdixcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYzo5NjpcdFx0XHQgICAgc3RydWN0IG54cHdpZmlfaWVfdHlwZXNfaGVfY2FwICpoZV9jYXAsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmMtOTctXHRcdFx0ICAgIHUxNiBiYW5kcylcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYy05OC17XG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmM6OTk6XHRzdHJ1Y3Qgbnhwd2lmaV9hZGFwdGVyICphZGFwdGVyID0gcHJpdi1cdTAwM2VhZGFwdGVyO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jOjEwMDpcdHN0cnVjdCBueHB3aWZpX2llX3R5cGVzX2hlX2NhcCAqaHdfaGVfY2FwID0gTlVMTDtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYy0xMDEtXHR1MTYgcnhfbnNzLCB0eF9uc3M7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jLTEwOC1cdFx0bWVtY3B5KGhlX2NhcCwgcHJpdi1cdTAwM2V1c2VyX2hlX2NhcCwgcHJpdi1cdTAwM2V1c2VyX2hlX2NhcF9sZW4pO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jOjEwOTpcdFx0aHdfaGVfY2FwID0gKHN0cnVjdCBueHB3aWZpX2llX3R5cGVzX2hlX2NhcCAqKWFkYXB0ZXItXHUwMDNlaHdfaGVfY2FwO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jLTExMC1cdFx0cmV0X2xlbiA9IHByaXYtXHUwMDNldXNlcl9oZV9jYXBfbGVuO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYy0xMTItXHRcdG1lbWNweShoZV9jYXAsIHByaXYtXHUwMDNldXNlcl8yZ19oZV9jYXAsIHByaXYtXHUwMDNldXNlcl8yZ19oZV9jYXBfbGVuKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYzoxMTM6XHRcdGh3X2hlX2NhcCA9IChzdHJ1Y3Qgbnhwd2lmaV9pZV90eXBlc19oZV9jYXAgKilhZGFwdGVyLVx1MDAzZWh3XzJnX2hlX2NhcDtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYy0xMTQtXHRcdHJldF9sZW4gPSBwcml2LVx1MDAzZXVzZXJfMmdfaGVfY2FwX2xlbjtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmMtMTI1LVx0Zm9yIChuc3MgPSAxOyBuc3MgXHUwMDNjPSA4OyBuc3MmIzQzOyYjNDM7KSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmM6MTI2Olx0XHRjZmdfdmFsdWUgPSBueHB3aWZpX2dldF9oZV9uc3NfbWNzKGhlX2NhcC1cdTAwM2VyeF9tY3NfODAsIG5zcyk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmM6MTI3Olx0XHRod192YWx1ZSA9IG54cHdpZmlfZ2V0X2hlX25zc19tY3MoaHdfaGVfY2FwLVx1MDAzZXJ4X21jc184MCwgbnNzKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYy0xMjgtXHRcdGlmIChyeF9uc3MgIT0gMCBcdTAwMjZcdTAwMjYgbnNzIFx1MDAzZSByeF9uc3MpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jLTEzMC1cdFx0aWYgKGh3X3ZhbHVlID09IE5PX05TU19TVVBQT1JUIHx8IGNmZ192YWx1ZSA9PSBOT19OU1NfU1VQUE9SVClcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYzoxMzE6XHRcdFx0bnhwd2lmaV9zZXRfaGVfbnNzX21jcyhcdTAwMjZoZV9jYXAtXHUwMDNlcnhfbWNzXzgwLCBuc3MsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmMtMTMyLVx0XHRcdFx0XHQgICAgICAgTk9fTlNTX1NVUFBPUlQpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jLTEzMy1cdFx0ZWxzZVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jOjEzNDpcdFx0XHRueHB3aWZpX3NldF9oZV9uc3NfbWNzKFx1MDAyNmhlX2NhcC1cdTAwM2VyeF9tY3NfODAsIG5zcyxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYy0xMzUtXHRcdFx0XHRcdCAgICAgICBtaW4oY2ZnX3ZhbHVlLCBod192YWx1ZSkpO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYy0xMzgtXHRmb3IgKG5zcyA9IDE7IG5zcyBcdTAwM2M9IDg7IG5zcyYjNDM7JiM0MzspIHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYzoxMzk6XHRcdGNmZ192YWx1ZSA9IG54cHdpZmlfZ2V0X2hlX25zc19tY3MoaGVfY2FwLVx1MDAzZXR4X21jc184MCwgbnNzKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYzoxNDA6XHRcdGh3X3ZhbHVlID0gbnhwd2lmaV9nZXRfaGVfbnNzX21jcyhod19oZV9jYXAtXHUwMDNldHhfbWNzXzgwLCBuc3MpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jLTE0MS1cdFx0aWYgKHR4X25zcyAhPSAwIFx1MDAyNlx1MDAyNiBuc3MgXHUwMDNlIHR4X25zcylcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmMtMTQzLVx0XHRpZiAoaHdfdmFsdWUgPT0gTk9fTlNTX1NVUFBPUlQgfHwgY2ZnX3ZhbHVlID09IE5PX05TU19TVVBQT1JUKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jOjE0NDpcdFx0XHRueHB3aWZpX3NldF9oZV9uc3NfbWNzKFx1MDAyNmhlX2NhcC1cdTAwM2V0eF9tY3NfODAsIG5zcyxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYy0xNDUtXHRcdFx0XHRcdCAgICAgICBOT19OU1NfU1VQUE9SVCk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmMtMTQ2LVx0XHRlbHNlXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmM6MTQ3Olx0XHRcdG54cHdpZmlfc2V0X2hlX25zc19tY3MoXHUwMDI2aGVfY2FwLVx1MDAzZXR4X21jc184MCwgbnNzLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jLTE0OC1cdFx0XHRcdFx0ICAgICAgIG1pbihjZmdfdmFsdWUsIGh3X3ZhbHVlKSk7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jLTE1My1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYzoxNTQ6aW50IG54cHdpZmlfY21kX2FwcGVuZF8xMWF4X3RsdihzdHJ1Y3Qgbnhwd2lmaV9wcml2YXRlICpwcml2LFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jOjE1NTpcdFx0XHRcdHN0cnVjdCBueHB3aWZpX2Jzc2Rlc2NyaXB0b3IgKmJzc19kZXNjLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jLTE1Ni1cdFx0XHRcdHU4ICoqYnVmZmVyKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jLTE1Ny17XG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmM6MTU4Olx0c3RydWN0IG54cHdpZmlfaWVfdHlwZXNfaGVfY2FwICpoZV9jYXAgPSBOVUxMO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jLTE1OS1cdGludCByZXRfbGVuO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYy0xNjMtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmM6MTY0Olx0aGVfY2FwID0gKHN0cnVjdCBueHB3aWZpX2llX3R5cGVzX2hlX2NhcCAqKSpidWZmZXI7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmM6MTY1Olx0cmV0X2xlbiA9IG54cHdpZmlfZmlsbF9oZV9jYXBfdGx2KHByaXYsIGhlX2NhcCwgYnNzX2Rlc2MtXHUwMDNlYnNzX2JhbmQpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jLTE2Ni1cdCpidWZmZXIgJiM0Mzs9IHJldF9sZW47XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jLTE3MC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYzoxNzE6aW50IG54cHdpZmlfY21kXzExYXhfY2ZnKHN0cnVjdCBueHB3aWZpX3ByaXZhdGUgKnByaXYsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmMtMTcyLVx0XHRcdCBzdHJ1Y3QgaG9zdF9jbWRfZHNfY29tbWFuZCAqY21kLCB1MTYgY21kX2FjdGlvbixcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYzoxNzM6XHRcdFx0IHN0cnVjdCBueHB3aWZpXzExYXhfaGVfY2ZnICpheF9jZmcpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmMtMTc0LXtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmMtMTc2LVx0dTE2IGNtZF9zaXplO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jOjE3NzpcdHN0cnVjdCBueHB3aWZpX2llX3R5cGVzX2hlYWRlciAqaGVhZGVyO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jLTE3OC1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmMtMTg2LVx0ICAgIGF4X2NmZy1cdTAwM2VoZV9jYXBfY2ZnLmV4dF9pZCA9PSBXTEFOX0VJRF9FWFRfSEVfQ0FQQUJJTElUWSkge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jOjE4NzpcdFx0aGVhZGVyID0gKHN0cnVjdCBueHB3aWZpX2llX3R5cGVzX2hlYWRlciAqKWhlX2NmZy1cdTAwM2V0bHY7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmMtMTg4LVx0XHRoZWFkZXItXHUwMDNldHlwZSA9IGNwdV90b19sZTE2KGF4X2NmZy1cdTAwM2VoZV9jYXBfY2ZnLmlkKTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmMtMjAwLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jOjIwMTppbnQgbnhwd2lmaV9yZXRfMTFheF9jZmcoc3RydWN0IG54cHdpZmlfcHJpdmF0ZSAqcHJpdixcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYy0yMDItXHRcdFx0IHN0cnVjdCBob3N0X2NtZF9kc19jb21tYW5kICpyZXNwLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jOjIwMzpcdFx0XHQgc3RydWN0IG54cHdpZmlfMTFheF9oZV9jZmcgKmF4X2NmZylcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYy0yMDQte1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jLTIwNS1cdHN0cnVjdCBob3N0X2NtZF8xMWF4X2NmZyAqaGVfY2ZnID0gXHUwMDI2cmVzcC1cdTAwM2VwYXJhbXMuYXhfY2ZnO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jOjIwNjpcdHN0cnVjdCBueHB3aWZpX2llX3R5cGVzX2hlYWRlciAqaGVhZGVyO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jLTIwNy1cdHUxNiBsZWZ0X2xlbiwgdGx2X3R5cGUsIHRsdl9sZW47XG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmMtMjA4LVx0dTggZXh0X2lkO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jOjIwOTpcdHN0cnVjdCBueHB3aWZpXzExYXhfaGVfY2FwX2NmZyAqaGVfY2FwID0gXHUwMDI2YXhfY2ZnLVx1MDAzZWhlX2NhcF9jZmc7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmMtMjEwLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jLTIxMS1cdGxlZnRfbGVuID0gbGUxNl90b19jcHUocmVzcC1cdTAwM2VzaXplKSAtIHNpemVvZigqaGVfY2ZnKSAtIFNfRFNfR0VOO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jOjIxMjpcdGhlYWRlciA9IChzdHJ1Y3Qgbnhwd2lmaV9pZV90eXBlc19oZWFkZXIgKiloZV9jZmctXHUwMDNldGx2O1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jLTIxMy1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmMtMjQyLVx0XHRsZWZ0X2xlbiAtPSAoc2l6ZW9mKCpoZWFkZXIpICYjNDM7IHRsdl9sZW4pO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jOjI0MzpcdFx0aGVhZGVyID0gKHN0cnVjdCBueHB3aWZpX2llX3R5cGVzX2hlYWRlciAqKSgodTggKiloZWFkZXIgJiM0MztcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYy0yNDQtXHRcdFx0XHRcdFx0XHQgICAgc2l6ZW9mKCpoZWFkZXIpICYjNDM7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jLTI1MC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYzoyNTE6aW50IG54cHdpZmlfY21kXzExYXhfY21kKHN0cnVjdCBueHB3aWZpX3ByaXZhdGUgKnByaXYsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmMtMjUyLVx0XHRcdCBzdHJ1Y3QgaG9zdF9jbWRfZHNfY29tbWFuZCAqY21kLCB1MTYgY21kX2FjdGlvbixcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYzoyNTM6XHRcdFx0IHN0cnVjdCBueHB3aWZpXzExYXhfY21kX2NmZyAqYXhfY21kKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jLTI1NC17XG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmM6MjU1Olx0c3RydWN0IG54cHdpZmlfYWRhcHRlciAqYWRhcHRlciA9IHByaXYtXHUwMDNlYWRhcHRlcjtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYy0yNTYtXHRzdHJ1Y3QgaG9zdF9jbWRfMTFheF9jbWQgKmhlX2NtZCA9IFx1MDAyNmNtZC1cdTAwM2VwYXJhbXMuYXhfY21kO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jLTI1Ny1cdHUxNiBjbWRfc2l6ZTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYzoyNTg6XHRzdHJ1Y3Qgbnhwd2lmaV8xMWF4X3NyX2NtZCAqc3JfY21kO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jOjI1OTpcdHN0cnVjdCBueHB3aWZpX2llX3R5cGVzX2RhdGEgKnRsdjtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYzoyNjA6XHRzdHJ1Y3Qgbnhwd2lmaV8xMWF4X2JlYW1fY21kICpiZWFtX2NtZDtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYzoyNjE6XHRzdHJ1Y3Qgbnhwd2lmaV8xMWF4X2h0Y19jbWQgKmh0Y19jbWQ7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmM6MjYyOlx0c3RydWN0IG54cHdpZmlfMTFheF90eG9taV9jbWQgKnR4bW9pX2NtZDtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYzoyNjM6XHRzdHJ1Y3Qgbnhwd2lmaV8xMWF4X3RvbHRpbWVfY21kICp0b2x0aW1lX2NtZDtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYzoyNjQ6XHRzdHJ1Y3Qgbnhwd2lmaV8xMWF4X3R4b3BfY21kICp0eG9wX2NtZDtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYzoyNjU6XHRzdHJ1Y3Qgbnhwd2lmaV8xMWF4X3NldF9ic3JwX2NtZCAqc2V0X2JzcnBfY21kO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jOjI2NjpcdHN0cnVjdCBueHB3aWZpXzExYXhfbGxkZV9jbWQgKmxsZGVfY21kO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jLTI2Ny1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmMtMjc1LVx0Y2FzZSBOWFBXSUZJXzExQVhDTURfU1JfU1VCSUQ6XG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmM6Mjc2Olx0XHRzcl9jbWQgPSAoc3RydWN0IG54cHdpZmlfMTFheF9zcl9jbWQgKilcdTAwMjZheF9jbWQtXHUwMDNlcGFyYW07XG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmMtMjc3LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jOjI3ODpcdFx0dGx2ID0gKHN0cnVjdCBueHB3aWZpX2llX3R5cGVzX2RhdGEgKiloZV9jbWQtXHUwMDNldmFsO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jLTI3OS1cdFx0dGx2LVx1MDAzZWhlYWRlci50eXBlID0gY3B1X3RvX2xlMTYoc3JfY21kLVx1MDAzZXR5cGUpO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYy0yODUtXHRjYXNlIE5YUFdJRklfMTFBWENNRF9CRUFNX1NVQklEOlxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jOjI4NjpcdFx0YmVhbV9jbWQgPSAoc3RydWN0IG54cHdpZmlfMTFheF9iZWFtX2NtZCAqKVx1MDAyNmF4X2NtZC1cdTAwM2VwYXJhbTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYy0yODctXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jLTI5MS1cdGNhc2UgTlhQV0lGSV8xMUFYQ01EX0hUQ19TVUJJRDpcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYzoyOTI6XHRcdGh0Y19jbWQgPSAoc3RydWN0IG54cHdpZmlfMTFheF9odGNfY21kICopXHUwMDI2YXhfY21kLVx1MDAzZXBhcmFtO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jLTI5My1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmMtMjk3LVx0Y2FzZSBOWFBXSUZJXzExQVhDTURfVFhPTUlfU1VCSUQ6XG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmM6Mjk4Olx0XHR0eG1vaV9jbWQgPVx0KHN0cnVjdCBueHB3aWZpXzExYXhfdHhvbWlfY21kICopXHUwMDI2YXhfY21kLVx1MDAzZXBhcmFtO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jLTI5OS1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmMtMzAzLVx0Y2FzZSBOWFBXSUZJXzExQVhDTURfT0JTU19UT0xUSU1FX1NVQklEOlxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jOjMwNDpcdFx0dG9sdGltZV9jbWQgPSAoc3RydWN0IG54cHdpZmlfMTFheF90b2x0aW1lX2NtZCAqKVx1MDAyNmF4X2NtZC1cdTAwM2VwYXJhbTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYy0zMDUtXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jLTMxMC1cdGNhc2UgTlhQV0lGSV8xMUFYQ01EX1RYT1BSVFNfU1VCSUQ6XG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmM6MzExOlx0XHR0eG9wX2NtZCA9IChzdHJ1Y3Qgbnhwd2lmaV8xMWF4X3R4b3BfY21kICopXHUwMDI2YXhfY21kLVx1MDAzZXBhcmFtO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jLTMxMi1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmMtMzE3LVx0Y2FzZSBOWFBXSUZJXzExQVhDTURfU0VUX0JTUlBfU1VCSUQ6XG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmM6MzE4Olx0XHRzZXRfYnNycF9jbWQgPSAoc3RydWN0IG54cHdpZmlfMTFheF9zZXRfYnNycF9jbWQgKilcdTAwMjZheF9jbWQtXHUwMDNlcGFyYW07XG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmMtMzE5LVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYy0zMjMtXHRjYXNlIE5YUFdJRklfMTFBWENNRF9MTERFX1NVQklEOlxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jOjMyNDpcdFx0bGxkZV9jbWQgPSAoc3RydWN0IG54cHdpZmlfMTFheF9sbGRlX2NtZCAqKVx1MDAyNmF4X2NtZC1cdTAwM2VwYXJhbTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYy0zMjUtXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jLTMyOS1cdGRlZmF1bHQ6XG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmM6MzMwOlx0XHRueHB3aWZpX2RiZyhhZGFwdGVyLCBFUlJPUixcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYy0zMzEtXHRcdFx0ICAgIFwmIzM0OyVzOiBVbmtub3duIHN1YiBjb21tYW5kOiAlZFxcblwmIzM0Oyxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmMtMzQwLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jOjM0MTppbnQgbnhwd2lmaV9yZXRfMTFheF9jbWQoc3RydWN0IG54cHdpZmlfcHJpdmF0ZSAqcHJpdixcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYy0zNDItXHRcdFx0IHN0cnVjdCBob3N0X2NtZF9kc19jb21tYW5kICpyZXNwLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jOjM0MzpcdFx0XHQgc3RydWN0IG54cHdpZmlfMTFheF9jbWRfY2ZnICpheF9jbWQpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmMtMzQ0LXtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYzozNDU6XHRzdHJ1Y3Qgbnhwd2lmaV9hZGFwdGVyICphZGFwdGVyID0gcHJpdi1cdTAwM2VhZGFwdGVyO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jLTM0Ni1cdHN0cnVjdCBob3N0X2NtZF8xMWF4X2NtZCAqaGVfY21kID0gXHUwMDI2cmVzcC1cdTAwM2VwYXJhbXMuYXhfY21kO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jOjM0NzpcdHN0cnVjdCBueHB3aWZpX2llX3R5cGVzX2RhdGEgKnRsdjtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYy0zNDgtXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jLTM1Mi1cdGNhc2UgTlhQV0lGSV8xMUFYQ01EX1NSX1NVQklEOlxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jOjM1MzpcdFx0dGx2ID0gKHN0cnVjdCBueHB3aWZpX2llX3R5cGVzX2RhdGEgKiloZV9jbWQtXHUwMDNldmFsO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jLTM1NC1cdFx0bWVtY3B5KGF4X2NtZC1cdTAwM2VwYXJhbS5zcl9jZmcucGFyYW0ub2Jzc19wZF9vZmZzZXQub2Zmc2V0LFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYy0zODMtXHRkZWZhdWx0OlxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jOjM4NDpcdFx0bnhwd2lmaV9kYmcoYWRhcHRlciwgRVJST1IsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmMtMzg1LVx0XHRcdCAgICBcJiMzNDslczogVW5rbm93biBzdWIgY29tbWFuZDogJWRcXG5cJiMzNDssXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jLTM5Mi1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYzozOTM6c3RhdGljIHU4IG54cHdpZmlfaXNfYXBfMTFheF90d3Rfc3VwcG9ydGVkKHN0cnVjdCBueHB3aWZpX2Jzc2Rlc2NyaXB0b3IgKmJzc19kZXNjKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jLTM5NC17XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jLTQwOS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYzo0MTA6Ym9vbCBueHB3aWZpX2lzXzExYXhfdHd0X3N1cHBvcnRlZChzdHJ1Y3Qgbnhwd2lmaV9wcml2YXRlICpwcml2LFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jOjQxMTpcdFx0XHRcdCAgIHN0cnVjdCBueHB3aWZpX2Jzc2Rlc2NyaXB0b3IgKmJzc19kZXNjKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jLTQxMi17XG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmM6NDEzOlx0c3RydWN0IG54cHdpZmlfaWVfdHlwZXNfaGVfY2FwICp1c2VyX2hlX2NhcDtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYzo0MTQ6XHRzdHJ1Y3Qgbnhwd2lmaV9pZV90eXBlc19oZV9jYXAgKmh3X2hlX2NhcDtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYy00MTUtXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jLTQxOC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYzo0MTk6XHRpZiAoIW54cHdpZmlfaXNfYXBfMTFheF90d3Rfc3VwcG9ydGVkKGJzc19kZXNjKSkge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jOjQyMDpcdFx0bnhwd2lmaV9kYmcocHJpdi1cdTAwM2VhZGFwdGVyLCBNU0csXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmMtNDIxLVx0XHRcdCAgICBcJiMzNDtBUCBkb24mIzM5O3Qgc3VwcG9ydCB0d3QgZmVhdHVyZVxcblwmIzM0Oyk7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jLTQyNS1cdGlmIChic3NfZGVzYy1cdTAwM2Vic3NfYmFuZCBcdTAwMjYgQkFORF9BKSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmM6NDI2Olx0XHRod19oZV9jYXAgPSAoc3RydWN0IG54cHdpZmlfaWVfdHlwZXNfaGVfY2FwICopXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmMtNDI3LVx0XHRcdHByaXYtXHUwMDNlYWRhcHRlci1cdTAwM2Vod19oZV9jYXA7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmM6NDI4Olx0XHR1c2VyX2hlX2NhcCA9IChzdHJ1Y3Qgbnhwd2lmaV9pZV90eXBlc19oZV9jYXAgKilcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYy00MjktXHRcdFx0cHJpdi1cdTAwM2V1c2VyX2hlX2NhcDtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYy00MzAtXHR9IGVsc2Uge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jOjQzMTpcdFx0aHdfaGVfY2FwID0gKHN0cnVjdCBueHB3aWZpX2llX3R5cGVzX2hlX2NhcCAqKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jLTQzMi1cdFx0XHRwcml2LVx1MDAzZWFkYXB0ZXItXHUwMDNlaHdfMmdfaGVfY2FwO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jOjQzMzpcdFx0dXNlcl9oZV9jYXAgPSAoc3RydWN0IG54cHdpZmlfaWVfdHlwZXNfaGVfY2FwICopXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmMtNDM0LVx0XHRcdHByaXYtXHUwMDNldXNlcl8yZ19oZV9jYXA7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jLTQzNy1cdGlmICghKGh3X2hlX2NhcC1cdTAwM2VoZV9tYWNfY2FwWzBdIFx1MDAyNiBIRV9NQUNfQ0FQX1RXVF9SRVFfU1VQUE9SVCkpIHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYzo0Mzg6XHRcdG54cHdpZmlfZGJnKHByaXYtXHUwMDNlYWRhcHRlciwgTVNHLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jLTQzOS1cdFx0XHQgICAgXCYjMzQ7RlcgZG9uJiMzOTt0IHN1cHBvcnQgVFdUXFxuXCYjMzQ7KTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmMtNDQzLVx0aWYgKCEodXNlcl9oZV9jYXAtXHUwMDNlaGVfbWFjX2NhcFswXSBcdTAwMjYgSEVfTUFDX0NBUF9UV1RfUkVRX1NVUFBPUlQpKSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmM6NDQ0Olx0XHRueHB3aWZpX2RiZyhwcml2LVx1MDAzZWFkYXB0ZXIsIE1TRyxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYy00NDUtXHRcdFx0ICAgIFwmIzM0O1VTRVIgSEVfTUFDX0NBUCBkb24mIzM5O3Qgc3VwcG9ydCBUV1RcXG5cJiMzNDspO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYy00NTEtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmM6NDUyOnU4IG54cHdpZmlfaXNfc3RhXzExYXhfdHd0X3JlcV9zdXBwb3J0ZWQoc3RydWN0IG54cHdpZmlfcHJpdmF0ZSAqcHJpdilcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYy00NTMte1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jOjQ1NDpcdHN0cnVjdCBueHB3aWZpX2llX3R5cGVzX2hlX2NhcCAqdXNlcl9oZV9jYXA7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmMtNDU1LVx0dTggcmV0ID0gMDtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmMtNDU5LVx0XHRpZiAocHJpdi1cdTAwM2Vjb25maWdfYmFuZHMgXHUwMDI2IEJBTkRfQUFYKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jOjQ2MDpcdFx0XHR1c2VyX2hlX2NhcCA9IChzdHJ1Y3Qgbnhwd2lmaV9pZV90eXBlc19oZV9jYXAgKilwcml2LVx1MDAzZXVzZXJfaGVfY2FwO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jLTQ2MS1cdFx0ZWxzZVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jOjQ2MjpcdFx0XHR1c2VyX2hlX2NhcCA9IChzdHJ1Y3Qgbnhwd2lmaV9pZV90eXBlc19oZV9jYXAgKilwcml2LVx1MDAzZXVzZXJfMmdfaGVfY2FwO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jLTQ2My1cdFx0cmV0ID0gdXNlcl9oZV9jYXAtXHUwMDNlaGVfbWFjX2NhcFswXSBcdTAwMjYgSEVfTUFDX0NBUF9UV1RfUkVRX1NVUFBPUlQ7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jLTQ2OC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYzo0Njk6aW50IG54cHdpZmlfY21kX3R3dF9jZmcoc3RydWN0IG54cHdpZmlfcHJpdmF0ZSAqcHJpdixcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYy00NzAtXHRcdFx0c3RydWN0IGhvc3RfY21kX2RzX2NvbW1hbmQgKmNtZCwgdTE2IGNtZF9hY3Rpb24sXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmM6NDcxOlx0XHRcdHN0cnVjdCBueHB3aWZpX3R3dF9jZmcgKnR3dF9jZmcpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmMtNDcyLXtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYzo0NzM6XHRzdHJ1Y3Qgbnhwd2lmaV9hZGFwdGVyICphZGFwdGVyID0gcHJpdi1cdTAwM2VhZGFwdGVyO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jLTQ3NC1cdHN0cnVjdCBob3N0X2NtZF90d3RfY2ZnICp0d3RfY2ZnX2NtZCA9IFx1MDAyNmNtZC1cdTAwM2VwYXJhbXMudHd0X2NmZztcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYzo0NzU6XHRzdHJ1Y3Qgbnhwd2lmaV90d3Rfc2V0dXAgKnR3dF9zZXR1cDtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYzo0NzY6XHRzdHJ1Y3Qgbnhwd2lmaV90d3RfdGVhcmRvd24gKnR3dF90ZWFyZG93bjtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYzo0Nzc6XHRzdHJ1Y3Qgbnhwd2lmaV90d3RfcmVwb3J0ICp0d3RfcmVwb3J0O1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jOjQ3ODpcdHN0cnVjdCBueHB3aWZpX3R3dF9pbmZvcm1hdGlvbiAqdHd0X2luZm9ybWF0aW9uO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jOjQ3OTpcdHN0cnVjdCBueHB3aWZpX2J0d3RfYXBfY29uZmlnICpidHd0X2FwX2NvbmZpZztcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYy00ODAtXHR1OCBpO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYy00OTAtXHRjYXNlIE5YUFdJRklfMTFBWF9UV1RfU0VUVVBfU1VCSUQ6XG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmM6NDkxOlx0XHR0d3Rfc2V0dXAgPSAoc3RydWN0IG54cHdpZmlfdHd0X3NldHVwICopXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmMtNDkyLVx0XHRcdHR3dF9jZmdfY21kLVx1MDAzZXZhbDtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYy00OTMtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmM6NDk0Olx0XHRtZW1zZXQodHd0X3NldHVwLCAweDAwLCBzaXplb2Yoc3RydWN0IG54cHdpZmlfdHd0X3NldHVwKSk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmMtNDk1LVx0XHR0d3Rfc2V0dXAtXHUwMDNlaW1wbGljaXQgPSB0d3RfY2ZnLVx1MDAzZXBhcmFtLnR3dF9zZXR1cC5pbXBsaWNpdDtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmMtNTA3LVx0XHR0d3Rfc2V0dXAtXHUwMDNlYmNuX21pc3NfdGhyZXNob2xkID0gdHd0X2NmZy1cdTAwM2VwYXJhbS50d3Rfc2V0dXAuYmNuX21pc3NfdGhyZXNob2xkO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jOjUwODpcdFx0Y21kX3NpemUgJiM0Mzs9IHNpemVvZihzdHJ1Y3Qgbnhwd2lmaV90d3Rfc2V0dXApO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jLTUwOS1cdFx0YnJlYWs7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmMtNTEwLVx0Y2FzZSBOWFBXSUZJXzExQVhfVFdUX1RFQVJET1dOX1NVQklEOlxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jOjUxMTpcdFx0dHd0X3RlYXJkb3duID0gKHN0cnVjdCBueHB3aWZpX3R3dF90ZWFyZG93biAqKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jLTUxMi1cdFx0XHR0d3RfY2ZnX2NtZC1cdTAwM2V2YWw7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmMtNTEzLVx0XHRtZW1zZXQodHd0X3RlYXJkb3duLCAweDAwLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jOjUxNDpcdFx0ICAgICAgIHNpemVvZihzdHJ1Y3Qgbnhwd2lmaV90d3RfdGVhcmRvd24pKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYy01MTUtXHRcdHR3dF90ZWFyZG93bi1cdTAwM2VmbG93X2lkZW50aWZpZXIgPVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYy01MjAtXHRcdFx0dHd0X2NmZy1cdTAwM2VwYXJhbS50d3RfdGVhcmRvd24udGVhcmRvd25fYWxsX3R3dDtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYzo1MjE6XHRcdGNtZF9zaXplICYjNDM7PSBzaXplb2Yoc3RydWN0IG54cHdpZmlfdHd0X3RlYXJkb3duKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYy01MjItXHRcdGJyZWFrO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jLTUyMy1cdGNhc2UgTlhQV0lGSV8xMUFYX1RXVF9SRVBPUlRfU1VCSUQ6XG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmM6NTI0Olx0XHR0d3RfcmVwb3J0ID0gKHN0cnVjdCBueHB3aWZpX3R3dF9yZXBvcnQgKilcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYy01MjUtXHRcdFx0dHd0X2NmZ19jbWQtXHUwMDNldmFsO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jOjUyNjpcdFx0bWVtc2V0KHR3dF9yZXBvcnQsIDB4MDAsIHNpemVvZihzdHJ1Y3Qgbnhwd2lmaV90d3RfcmVwb3J0KSk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmMtNTI3LVx0XHR0d3RfcmVwb3J0LVx1MDAzZXR5cGUgPSB0d3RfY2ZnLVx1MDAzZXBhcmFtLnR3dF9yZXBvcnQudHlwZTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYzo1Mjg6XHRcdGNtZF9zaXplICYjNDM7PSBzaXplb2Yoc3RydWN0IG54cHdpZmlfdHd0X3JlcG9ydCk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmMtNTI5LVx0XHRicmVhaztcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYy01MzAtXHRjYXNlIE5YUFdJRklfMTFBWF9UV1RfSU5GT1JNQVRJT05fU1VCSUQ6XG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmM6NTMxOlx0XHR0d3RfaW5mb3JtYXRpb24gPSAoc3RydWN0IG54cHdpZmlfdHd0X2luZm9ybWF0aW9uICopXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmMtNTMyLVx0XHRcdHR3dF9jZmdfY21kLVx1MDAzZXZhbDtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYy01MzMtXHRcdG1lbXNldCh0d3RfaW5mb3JtYXRpb24sIDB4MDAsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmM6NTM0Olx0XHQgICAgICAgc2l6ZW9mKHN0cnVjdCBueHB3aWZpX3R3dF9pbmZvcm1hdGlvbikpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jLTUzNS1cdFx0dHd0X2luZm9ybWF0aW9uLVx1MDAzZWZsb3dfaWRlbnRpZmllciA9XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jLTUzOC1cdFx0XHR0d3RfY2ZnLVx1MDAzZXBhcmFtLnR3dF9pbmZvcm1hdGlvbi5zdXNwZW5kX2R1cmF0aW9uO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jOjUzOTpcdFx0Y21kX3NpemUgJiM0Mzs9IHNpemVvZihzdHJ1Y3Qgbnhwd2lmaV90d3RfaW5mb3JtYXRpb24pO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jLTU0MC1cdFx0YnJlYWs7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmMtNTQxLVx0Y2FzZSBOWFBXSUZJXzExQVhfQlRXVF9BUF9DT05GSUdfU1VCSUQ6XG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmM6NTQyOlx0XHRidHd0X2FwX2NvbmZpZyA9IChzdHJ1Y3Qgbnhwd2lmaV9idHd0X2FwX2NvbmZpZyAqKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jLTU0My1cdFx0XHRcdCB0d3RfY2ZnX2NtZC1cdTAwM2V2YWw7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmMtNTQ0LVx0XHRtZW1zZXQoYnR3dF9hcF9jb25maWcsIDB4MDAsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmM6NTQ1Olx0XHQgICAgICAgc2l6ZW9mKHN0cnVjdCBueHB3aWZpX2J0d3RfYXBfY29uZmlnKSk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmMtNTQ2LVx0XHRidHd0X2FwX2NvbmZpZy1cdTAwM2VhcF9iY2FzdF9iZXRfc3RhX3dhaXQgPVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYy01NjQtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmM6NTY1Olx0XHRjbWRfc2l6ZSAmIzQzOz0gc2l6ZW9mKHN0cnVjdCBueHB3aWZpX2J0d3RfYXBfY29uZmlnKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYy01NjYtXHRcdGJyZWFrO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jLTU2Ny1cdGRlZmF1bHQ6XG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmM6NTY4Olx0XHRueHB3aWZpX2RiZyhhZGFwdGVyLCBFUlJPUixcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYy01NjktXHRcdFx0ICAgIFwmIzM0O1Vua25vd24gc3ViIGlkOiAlZFxcblwmIzM0OywgdHd0X2NmZy1cdTAwM2VzdWJfaWQpO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYy01NzctXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmM6NTc4OmludCBueHB3aWZpX3JldF90d3RfY2ZnKHN0cnVjdCBueHB3aWZpX3ByaXZhdGUgKnByaXYsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmMtNTc5LVx0XHRcdHN0cnVjdCBob3N0X2NtZF9kc19jb21tYW5kICpyZXNwLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jOjU4MDpcdFx0XHRzdHJ1Y3Qgbnhwd2lmaV90d3RfY2ZnICp0d3RfY2ZnKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jLTU4MS17XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jLTU4OS1cdCAgICB0d3RfY2ZnLVx1MDAzZXN1Yl9pZCA9PSBOWFBXSUZJXzExQVhfVFdUX1JFUE9SVF9TVUJJRCkge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jOjU5MDpcdFx0c3RydWN0IG54cHdpZmlfdHd0X3JlcG9ydCAqdHd0X3JlcG9ydCA9XG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmM6NTkxOlx0XHRcdChzdHJ1Y3Qgbnhwd2lmaV90d3RfcmVwb3J0ICopdHd0X2NmZ19jbWQtXHUwMDNldmFsO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jLTU5Mi1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYzo1OTM6XHRcdG1lbWNweShcdTAwMjZ0d3RfY2ZnLVx1MDAzZXBhcmFtLnR3dF9yZXBvcnQsIHR3dF9yZXBvcnQsIHNpemVvZihzdHJ1Y3Qgbnhwd2lmaV90d3RfcmVwb3J0KSk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmMtNTk0LVx0fVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguaC0yLS8qXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4Lmg6MzogKiBueHB3aWZpOiA4MDIuMTFheCBzdXBwb3J0XG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmgtNC0gKlxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguaD0xNz1zdGF0aWMgaW5saW5lIHUxNlxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5oOjE4Om54cHdpZmlfZ2V0X2hlX25zc19tY3MoX19sZTE2IG1jc19tYXBfc2V0LCBpbnQgbnNzKSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmgtMTktXHRyZXR1cm4gKChsZTE2X3RvX2NwdShtY3NfbWFwX3NldCkgXHUwMDNlXHUwMDNlICgyICogKG5zcyAtIDEpKSkgXHUwMDI2IDB4Myk7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5oPTIyPXN0YXRpYyBpbmxpbmUgdm9pZFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5oOjIzOm54cHdpZmlfc2V0X2hlX25zc19tY3MoX19sZTE2ICptY3NfbWFwX3NldCwgaW50IG5zcywgaW50IHZhbHVlKSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmgtMjQtXHR1MTYgdGVtcDtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmgtMzAtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4Lmg6MzE6Ym9vbCBueHB3aWZpX2lzXzExYXhfdHd0X3N1cHBvcnRlZChzdHJ1Y3Qgbnhwd2lmaV9wcml2YXRlICpwcml2LFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5oOjMyOlx0XHRcdFx0ICAgc3RydWN0ICBueHB3aWZpX2Jzc2Rlc2NyaXB0b3IgKmJzc19kZXNjKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguaC0zMy1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguaDozNDp2b2lkIG54cHdpZmlfdXBkYXRlXzExYXhfY2FwKHN0cnVjdCBueHB3aWZpX2FkYXB0ZXIgKmFkYXB0ZXIsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmgtMzUtXHRcdFx0ICAgICBzdHJ1Y3QgaHdfc3BlY19leHRlbnNpb24gKmh3X2hlX2NhcCk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmgtMzYtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4Lmg6Mzc6Ym9vbCBueHB3aWZpXzExYXhfYmFuZGNvbmZpZ19hbGxvd2VkKHN0cnVjdCBueHB3aWZpX3ByaXZhdGUgKnByaXYsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4Lmg6Mzg6XHRcdFx0XHQgICAgIHN0cnVjdCBueHB3aWZpX2Jzc2Rlc2NyaXB0b3IgKmJzc19kZXNjKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguaC0zOS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguaDo0MDppbnQgbnhwd2lmaV9jbWRfYXBwZW5kXzExYXhfdGx2KHN0cnVjdCBueHB3aWZpX3ByaXZhdGUgKnByaXYsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4Lmg6NDE6XHRcdFx0XHRzdHJ1Y3Qgbnhwd2lmaV9ic3NkZXNjcmlwdG9yICpic3NfZGVzYyxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguaC00Mi1cdFx0XHRcdHU4ICoqYnVmZmVyKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguaC00My1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguaDo0NDppbnQgbnhwd2lmaV9maWxsX2hlX2NhcF90bHYoc3RydWN0IG54cHdpZmlfcHJpdmF0ZSAqcHJpdixcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguaDo0NTpcdFx0XHQgICAgc3RydWN0IG54cHdpZmlfaWVfdHlwZXNfaGVfY2FwICpoZV9jYXAsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmgtNDYtXHRcdFx0ICAgIHUxNiBiYW5kcyk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4Lmg6NDc6aW50IG54cHdpZmlfY21kXzExYXhfY2ZnKHN0cnVjdCBueHB3aWZpX3ByaXZhdGUgKnByaXYsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmgtNDgtXHRcdFx0IHN0cnVjdCBob3N0X2NtZF9kc19jb21tYW5kICpjbWQsIHUxNiBjbWRfYWN0aW9uLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5oOjQ5Olx0XHRcdCBzdHJ1Y3Qgbnhwd2lmaV8xMWF4X2hlX2NmZyAqYXhfY2ZnKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguaC01MC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguaDo1MTppbnQgbnhwd2lmaV9yZXRfMTFheF9jZmcoc3RydWN0IG54cHdpZmlfcHJpdmF0ZSAqcHJpdixcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguaC01Mi1cdFx0XHQgc3RydWN0IGhvc3RfY21kX2RzX2NvbW1hbmQgKnJlc3AsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4Lmg6NTM6XHRcdFx0IHN0cnVjdCBueHB3aWZpXzExYXhfaGVfY2ZnICpheF9jZmcpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5oLTU0LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5oOjU1OmludCBueHB3aWZpX2NtZF8xMWF4X2NtZChzdHJ1Y3Qgbnhwd2lmaV9wcml2YXRlICpwcml2LFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5oLTU2LVx0XHRcdCBzdHJ1Y3QgaG9zdF9jbWRfZHNfY29tbWFuZCAqY21kLCB1MTYgY21kX2FjdGlvbixcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguaDo1NzpcdFx0XHQgc3RydWN0IG54cHdpZmlfMTFheF9jbWRfY2ZnICpheF9jbWQpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5oLTU4LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5oOjU5OmludCBueHB3aWZpX3JldF8xMWF4X2NtZChzdHJ1Y3Qgbnhwd2lmaV9wcml2YXRlICpwcml2LFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5oLTYwLVx0XHRcdCBzdHJ1Y3QgaG9zdF9jbWRfZHNfY29tbWFuZCAqcmVzcCxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguaDo2MTpcdFx0XHQgc3RydWN0IG54cHdpZmlfMTFheF9jbWRfY2ZnICpheF9jbWQpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5oLTYyLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5oOjYzOmludCBueHB3aWZpX2NtZF90d3RfY2ZnKHN0cnVjdCBueHB3aWZpX3ByaXZhdGUgKnByaXYsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmgtNjQtXHRcdFx0c3RydWN0IGhvc3RfY21kX2RzX2NvbW1hbmQgKmNtZCwgdTE2IGNtZF9hY3Rpb24sXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4Lmg6NjU6XHRcdFx0c3RydWN0IG54cHdpZmlfdHd0X2NmZyAqdHd0X2NmZyk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmgtNjYtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4Lmg6Njc6aW50IG54cHdpZmlfcmV0X3R3dF9jZmcoc3RydWN0IG54cHdpZmlfcHJpdmF0ZSAqcHJpdixcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguaC02OC1cdFx0XHRzdHJ1Y3QgaG9zdF9jbWRfZHNfY29tbWFuZCAqcmVzcCxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguaDo2OTpcdFx0XHRzdHJ1Y3Qgbnhwd2lmaV90d3RfY2ZnICp0d3RfY2ZnKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguaC03MC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguaDo3MTp1OCBueHB3aWZpX2lzX3N0YV8xMWF4X3R3dF9yZXFfc3VwcG9ydGVkKHN0cnVjdCBueHB3aWZpX3ByaXZhdGUgKnByaXYpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5oLTcyLVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExaC5jLTItLypcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExaC5jOjM6ICogbnhwd2lmaTogODAyLjExaCBoZWxwZXJzXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWguYy00LSAqXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFoLmMtMTItXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWguYzoxMzp2b2lkIG54cHdpZmlfaW5pdF8xMWhfcGFyYW1zKHN0cnVjdCBueHB3aWZpX3ByaXZhdGUgKnByaXYpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWguYy0xNC17XG5cbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD41LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8yNSAyMzo0MjwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAxOTM3MQoJCQkJCQkJb3V0cHV0OiAzNwoJCQkJCQkJdGhvdWdodHM6IDM0CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5IZXJlJiMzOTtzIG15IHRha2Ugb24gdGhlIHRob3VnaHQgcHJvY2VzczoKCioqRGl2aW5nIGludG8gdGhlIG54cHdpZmkgRHJpdmVyKioKCk9rYXksIHNvIHdlJiMzOTtyZSBkZWFsaW5nIHdpdGggdGhlIGBueHB3aWZpYCBkcml2ZXIuIE15IGZpcnN0IGluc3RpbmN0LCBhcyBhbHdheXMsIGlzIHRvIHVuZGVyc3RhbmQgaXRzIGRlcGVuZGVuY2llcy4gVGltZSB0byBkaWcgaW50byB0aGUgaGVhcnQgb2YgdGhlIG1hdHRlciDigJMgdGhlIGBLY29uZmlnYCBmaWxlLiBTcGVjaWZpY2FsbHksIEkmIzM5O2xsIGJlIGhlYWRpbmcgc3RyYWlnaHQgdG8gYGRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpL0tjb25maWdgLiBUaGlzIGlzIHdoZXJlIHRoZSBjb25maWd1cmF0aW9uIGxvZ2ljIGxpdmVzLCBhbmQgd2hlcmUgSSBjYW4gcXVpY2tseSBkZWNpcGhlciB3aGF0IG90aGVyIGNvbXBvbmVudHMgb3IgZmVhdHVyZXMgdGhpcyBkcml2ZXIgcmVsaWVzIHVwb24uIFVuZGVyc3RhbmRpbmcgaXRzIGRlcGVuZGVuY2llcyBpcyBjcnVjaWFsIGZvciBhbnkgbW9kaWZpY2F0aW9ucyBvciBkZWVwZXIgYW5hbHlzaXMuIFRoaXMgZmlsZSB3aWxsIHRlbGwgbWUgZXZlcnl0aGluZyBJIG5lZWQgdG8ga25vdyBhYm91dCB0aGUgcHJlcmVxdWlzaXRlcyBmb3IgYnVpbGRpbmcgYW5kIHJ1bm5pbmcgdGhpcyBkcml2ZXIuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Ni8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMjUgMjM6NDI8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7ZGVwZW5kcyBvbiYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpL0tjb25maWcmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvS2NvbmZpZz0yPWNvbmZpZyBOWFBXSUZJXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS9LY29uZmlnLTMtXHR0cmlzdGF0ZSBcJiMzNDtOWFAgV2lGaSBEcml2ZXJcJiMzNDsgaWYgQ09NUElMRV9URVNUXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS9LY29uZmlnOjQ6XHRkZXBlbmRzIG9uIENGRzgwMjExXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS9LY29uZmlnLTUtXHRoZWxwXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvS2NvbmZpZz0xMj1jb25maWcgTlhQV0lGSV9TRElPXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS9LY29uZmlnLTEzLVx0dHJpc3RhdGUgXCYjMzQ7TlhQIFdpRmkgRHJpdmVyIGZvciBJVzYxeFwmIzM0O1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvS2NvbmZpZzoxNDpcdGRlcGVuZHMgb24gQ0ZHODAyMTEgXHUwMDI2XHUwMDI2IE1NQ1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvS2NvbmZpZy0xNS1cdHNlbGVjdCBOWFBXSUZJXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Ny8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMjUgMjM6NDI8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMTk4MzMKCQkJCQkJCW91dHB1dDogNDIKCQkJCQkJCXRob3VnaHRzOiA1NwoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+SGVyZSYjMzk7cyBteSBzdW1tYXJ5LCBhcyB0aGUgZXhwZXJ0OgoKKipJbnZlc3RpZ2F0aW5nIHRoZSBOWFAgV2lGaSBEcml2ZXIgQ29uZmlndXJhdGlvbioqCgpPa2F5LCBzbyBJIHNlZSB0aGlzIGBOWFBXSUZJX1NESU9gIG9wdGlvbiwgYW5kIGl0JiMzOTtzIGZsYWdnZWQgYXMgZGVwZW5kZW50IG9uIGBDRkc4MDIxMWAgYW5kIHRoZSBgTU1DYCBkcml2ZXIuIFRoYXQgbWFrZXMgc2Vuc2UsIGFzc3VtaW5nIHRoaXMgaXMgYW4gU0RJTy1iYXNlZCBpbXBsZW1lbnRhdGlvbi4gTXkgaW1tZWRpYXRlIHF1ZXN0aW9uIGlzLCAmIzM0O0FyZSB0aGVyZSBQQ0llIG9yIFVTQiB2YXJpYW50cyBvZiB0aGlzIGRyaXZlcj8mIzM0OyBXZSBuZWVkIHRvIGZpZ3VyZSB0aGF0IG91dCBiZWNhdXNlIHRob3NlIGludGVyZmFjZXMgYXJlIG9mdGVuIG1vcmUgcGVyZm9ybWFudCBhbmQgZmxleGlibGUuIEkmIzM5O2xsIG5lZWQgdG8gZGlnIGRlZXBlciBpbnRvIHRoaXMgYEtjb25maWdgIGZpbGUgKGBkcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS9LY29uZmlnYCkgYW5kIHNlZSBpZiB0aGVyZSBhcmUgb3RoZXIgZGV2aWNlIG9wdGlvbnMgZGVmaW5lZC4gVGhpcyBjb25maWd1cmF0aW9uIGlzIHRoZSBrZXkgdG8gdW5kZXJzdGFuZGluZyBhbGwgc3VwcG9ydGVkIGhhcmR3YXJlLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjgvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzI1IDIzOjQyPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+cmVhZC1maWxlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtGaWxlJiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvS2NvbmZpZyYjMzQ7LAogICYjMzQ7Rmlyc3RMaW5lJiMzNDs6IDEsCiAgJiMzNDtMaW5lQ291bnQmIzM0OzogMTAwCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtDb250ZW50cyYjMzQ7OiAmIzM0OyAgIDE6XHQjIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wLW9ubHlcbiAgIDI6XHRjb25maWcgTlhQV0lGSVxuICAgMzpcdFx0dHJpc3RhdGUgXCYjMzQ7TlhQIFdpRmkgRHJpdmVyXCYjMzQ7IGlmIENPTVBJTEVfVEVTVFxuICAgNDpcdFx0ZGVwZW5kcyBvbiBDRkc4MDIxMVxuICAgNTpcdFx0aGVscFxuICAgNjpcdFx0ICBUaGlzIGFkZHMgc3VwcG9ydCBmb3Igd2lyZWxlc3MgYWRhcHRlcnMgYmFzZWQgb24gTlhQXG4gICA3Olx0XHQgIDgwMi4xMW4vYWMgY2hpcHNldHMuXG4gICA4Olx0XG4gICA5Olx0XHQgIElmIHlvdSBjaG9vc2UgdG8gYnVpbGQgaXQgYXMgYSBtb2R1bGUsIGl0IHdpbGwgYmUgY2FsbGVkXG4gIDEwOlx0XHQgIG54cHdpZmkuXG4gIDExOlx0XG4gIDEyOlx0Y29uZmlnIE5YUFdJRklfU0RJT1xuICAxMzpcdFx0dHJpc3RhdGUgXCYjMzQ7TlhQIFdpRmkgRHJpdmVyIGZvciBJVzYxeFwmIzM0O1xuICAxNDpcdFx0ZGVwZW5kcyBvbiBDRkc4MDIxMSBcdTAwMjZcdTAwMjYgTU1DXG4gIDE1Olx0XHRzZWxlY3QgTlhQV0lGSVxuICAxNjpcdFx0c2VsZWN0IEZXX0xPQURFUlxuICAxNzpcdFx0c2VsZWN0IFdBTlRfREVWX0NPUkVEVU1QXG4gIDE4Olx0XHRoZWxwXG4gIDE5Olx0XHQgIFRoaXMgYWRkcyBzdXBwb3J0IGZvciB3aXJlbGVzcyBhZGFwdGVycyBiYXNlZCBvbiBOWFBcbiAgMjA6XHRcdCAgSVc2MXggaW50ZXJmYWNlLlxuICAyMTpcdFxuICAyMjpcdFx0ICBJZiB5b3UgY2hvb3NlIHRvIGJ1aWxkIGl0IGFzIGEgbW9kdWxlLCBpdCB3aWxsIGJlIGNhbGxlZFxuICAyMzpcdFx0ICBueHB3aWZpX3NkaW8uXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+OS8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMjUgMjM6NDI8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMjA0MTMKCQkJCQkJCW91dHB1dDogMzEKCQkJCQkJCXRob3VnaHRzOiA0NgoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipJbml0aWFsIEFzc2Vzc21lbnQgJmFtcDsgSW1tZWRpYXRlIEFjdGlvbioqCgpPa2F5LCBzbyBJJiMzOTttIGxvb2tpbmcgYXQgdGhpcyBhbmQgaXQmIzM5O3MgZmxhZ2dlZCBhcyBvbmx5IGhhdmluZyBgTlhQV0lGSV9TRElPYC4gUmlnaHQgYXdheSwgbXkgYWxhcm0gYmVsbHMgYXJlIHJpbmdpbmcgYSBsaXR0bGUuIFNESU8gZGV2aWNlcyBhcmVuJiMzOTt0IHVzdWFsbHkgYSBnb29kIHRhcmdldCBmb3IgZnV6emluZyBpbiBhIHN0YW5kYXJkIFFFTVUgb3IgR0NFIGVudmlyb25tZW50LiBUaGV5JiMzOTtyZSBvZnRlbiB0cmlja3kgdG8gZW11bGF0ZSByZWxpYWJseSBhbmQgSSBuZWVkIHRvIGNvbnNpZGVyIHRoYXQuIEJlZm9yZSBJIGdldCB0b28gZmFyIGRvd24gdGhpcyByb2FkLCBJJiMzOTttIGdvaW5nIHRvIHF1aWNrbHkgc2NhbiBmb3IgYW55IG90aGVyIHBvdGVudGlhbCBpbnRlcmZhY2VzIG9yIGVudHJ5IHBvaW50cyB0aGF0IG1pZ2h0IGJlIHByZXNlbnQuIEkgbmVlZCB0byBtYWtlIHN1cmUgSSYjMzk7bSBub3QgbWlzc2luZyBzb21ldGhpbmcgb2J2aW91cyBiZWZvcmUgSSBoYXZlIHRvIGFkanVzdCBteSBmdXp6aW5nIGFwcHJvYWNoLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEwLzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8yNSAyMzo0MjwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmNvZGVzZWFyY2gtZGlyLWluZGV4PC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtEaXImIzM0OzogJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RmlsZXMmIzM0OzogWwogICAgJiMzNDsxMWFjLmMmIzM0OywKICAgICYjMzQ7MTFhYy5oJiMzNDssCiAgICAmIzM0OzExYXguYyYjMzQ7LAogICAgJiMzNDsxMWF4LmgmIzM0OywKICAgICYjMzQ7MTFoLmMmIzM0OywKICAgICYjMzQ7MTFuLmMmIzM0OywKICAgICYjMzQ7MTFuLmgmIzM0OywKICAgICYjMzQ7MTFuX2FnZ3IuYyYjMzQ7LAogICAgJiMzNDsxMW5fYWdnci5oJiMzNDssCiAgICAmIzM0OzExbl9yeHJlb3JkZXIuYyYjMzQ7LAogICAgJiMzNDsxMW5fcnhyZW9yZGVyLmgmIzM0OywKICAgICYjMzQ7Y2ZnLmgmIzM0OywKICAgICYjMzQ7Y2ZnODAyMTEuYyYjMzQ7LAogICAgJiMzNDtjZmc4MDIxMS5oJiMzNDssCiAgICAmIzM0O2NmcC5jJiMzNDssCiAgICAmIzM0O2NtZGV2dC5jJiMzNDssCiAgICAmIzM0O2NtZGV2dC5oJiMzNDssCiAgICAmIzM0O2RlYnVnZnMuYyYjMzQ7LAogICAgJiMzNDtldGh0b29sLmMmIzM0OywKICAgICYjMzQ7ZncuaCYjMzQ7LAogICAgJiMzNDtpZS5jJiMzNDssCiAgICAmIzM0O2luaXQuYyYjMzQ7LAogICAgJiMzNDtqb2luLmMmIzM0OywKICAgICYjMzQ7bWFpbi5jJiMzNDssCiAgICAmIzM0O21haW4uaCYjMzQ7LAogICAgJiMzNDtzY2FuLmMmIzM0OywKICAgICYjMzQ7c2Rpby5jJiMzNDssCiAgICAmIzM0O3NkaW8uaCYjMzQ7LAogICAgJiMzNDtzdGFfY2ZnLmMmIzM0OywKICAgICYjMzQ7c3RhX2NtZC5jJiMzNDssCiAgICAmIzM0O3N0YV9ldmVudC5jJiMzNDssCiAgICAmIzM0O3N0YV9yeC5jJiMzNDssCiAgICAmIzM0O3N0YV90eC5jJiMzNDssCiAgICAmIzM0O3R4cnguYyYjMzQ7LAogICAgJiMzNDt1YXBfY21kLmMmIzM0OywKICAgICYjMzQ7dWFwX2V2ZW50LmMmIzM0OywKICAgICYjMzQ7dWFwX3R4cnguYyYjMzQ7LAogICAgJiMzNDt1dGlsLmMmIzM0OywKICAgICYjMzQ7dXRpbC5oJiMzNDssCiAgICAmIzM0O3dtbS5jJiMzNDssCiAgICAmIzM0O3dtbS5oJiMzNDsKICBdLAogICYjMzQ7U3ViZGlycyYjMzQ7OiBudWxsCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMS8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMjUgMjM6NDI8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMjA5NjIKCQkJCQkJCW91dHB1dDogNDMKCQkJCQkJCXRob3VnaHRzOiAyMTcKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqU0RJTyBEcml2ZXIgQW5hbHlzaXMgZm9yIEZ1enppbmcgUG90ZW50aWFsKioKCk9rYXksIHNvIEkmIzM5O20gbG9va2luZyBhdCB0aGlzIGNvZGUgYW5kIGltbWVkaWF0ZWx5IHNlZSBgc2Rpby5jYCBhbmQgYHNkaW8uaGAg4oCTIHRoYXQmIzM5O3MgYSBrZXkgaW5kaWNhdG9yLiBObyBgdXNiLmNgIG9yIGBwY2llLmNgIGluIHNpZ2h0LCB3aGljaCBjbGFyaWZpZXMgdGhlIHRhcmdldC4gVGhpcyBwb2ludHMgZGlyZWN0bHkgdG8gYW4gU0RJTyBpbXBsZW1lbnRhdGlvbiwgbmVlZGluZyBhIHJlYWwgU0RJTyBob3N0IGNvbnRyb2xsZXIgYW5kIGEgcGh5c2ljYWwgU0RJTyBjYXJkIHRvIGZ1bmN0aW9uLgoKTXkgaW5pdGlhbCB0aG91Z2h0IHdhcywgJiMzNDtDYW4gSSBsZXZlcmFnZSBgbWFjODAyMTFfaHdzaW1gIGZvciBmdXp6aW5nIHRoaXM/JiMzNDsgTm8sIHRoYXQmIzM5O3MgYSBkZWFkIGVuZC4gYG1hYzgwMjExX2h3c2ltYCBpcyBhbGwgYWJvdXQgc2ltdWxhdGluZyBtYWM4MDIxMSBkZXZpY2VzLCB3aGljaCBpc24mIzM5O3QgdGhlIHNhbWUuIEFuZCBsb29raW5nIGF0IHRoaXMgYG54cHdpZmlgIGRyaXZlciwgaXQgdXNlcyBgY2ZnODAyMTFgIGRpcmVjdGx5IOKAkyBpdCYjMzk7cyBhIEZ1bGxNQUMsIG5vdCBhIG1hYzgwMjExIGRyaXZlci4KClRoZSBtaWxsaW9uLWRvbGxhciBxdWVzdGlvbiBub3cgaXMsIGNhbiBJIGdldCBTRElPIGRldmljZXMgZW11bGF0ZWQgdW5kZXIgUUVNVT8gVGhhdCYjMzk7cyB0aGUgcmVhbCBjaGFsbGVuZ2UuIEkga25vdyBTRElPIGRldmljZXMgYXJlbiYjMzk7dCB0eXBpY2FsbHkgZnV6emVkIGJlY2F1c2UgdGhlcmUmIzM5O3Mgbm8gc29saWQgZ2VuZXJpYyBTRElPIGVtdWxhdGlvbiBmcmFtZXdvcmsgaW4gc3l6a2FsbGVyLiBUaGF0JiMzOTtzIGEgaHVnZSBibG9ja2VyLgoKQWxyaWdodCwgbGV0JiMzOTtzIHRha2UgYSBzdGVwIGJhY2sgYW5kIG1ha2Ugc3VyZSBJJiMzOTttIG5vdCBtaXNzaW5nIGFueXRoaW5nLiBJIG5lZWQgdG8gZmlndXJlIG91dCAqaG93KiB0aGlzIGNvZGUgaXMgYWN0dWFsbHkgcmVhY2hlZC4gVGhlIGRyaXZlciByZWdpc3RlcnMgaXRzZWxmIHdpdGggYHNkaW9fcmVnaXN0ZXJfZHJpdmVyKCZhbXA7bnhwd2lmaV9zZGlvKWAuIFJpZ2h0LCB0aGF0JiMzOTtzIHRoZSBlbnRyeSBwb2ludC4gVGltZSB0byBkaXZlIGludG8gYHNkaW8uY2AgYW5kIHRyYWNlIHRoZSBleGVjdXRpb24gcGF0aC4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMi8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMjUgMjM6NDI8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPkVycm9yOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bm8gbWF0Y2hlczwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtzZGlvX3JlZ2lzdGVyX2RyaXZlciYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpL3NkaW8uYyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtlcnJvciYjMzQ7OiAmIzM0O25vIG1hdGNoZXMmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTMvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzI1IDIzOjQyPC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDIxNTc4CgkJCQkJCQlvdXRwdXQ6IDM2CgkJCQkJCQl0aG91Z2h0czogOAoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+T2theSwgSSYjMzk7bSByZWFkeSB0byBzdW1tYXJpemUgbXkgJiMzNDt0aG91Z2h0cyYjMzQ7IGluIHRoZSBmaXJzdCBwZXJzb24sIGFzc3VtaW5nIGEgaGlnaCBsZXZlbCBvZiBleHBlcnRpc2UuIEhlcmUgd2UgZ286CgoqKkFzc2Vzc2luZyB0aGUgU3lzdGVtJiMzOTtzIFJlc3BvbnNlKioKCkFscmlnaHQsIEkmIzM5O20gYXQgYSBjcml0aWNhbCBqdW5jdHVyZS4gTXkgaW5pdGlhbCBhc3Nlc3NtZW50IGlzIGNvbXBsZXRlLCBhbmQgbm93IGl0JiMzOTtzIHRpbWUgdG8gdmVyaWZ5IGhvdyB0aGUgc3lzdGVtIGlzIHJlZ2lzdGVyaW5nIHRoZSBpbnB1dC4gSSBuZWVkIHRvIG9ic2VydmUgaXRzIGltbWVkaWF0ZSByZXNwb25zZSB0byBjb25maXJtIGl0cyB1bmRlcnN0YW5kaW5nIG9mIHRoZSBjb250ZXh0LCB0aGUgY29yZSBjb25jZXB0cywgYW5kIHRoZSBudWFuY2VzIG9mIHRoZSBpbnN0cnVjdGlvbnMuIElzIGl0IGludGVycHJldGluZyB0aGUgZGF0YSBhcyBleHBlY3RlZD8gQXJlIHRoZSBmbGFncyBhbmQgcGFyYW1ldGVycyBmdW5jdGlvbmluZyBjb3JyZWN0bHk/IFRoaXMgaXNuJiMzOTt0IGp1c3QgYSBtYXR0ZXIgb2YgYmFzaWMgZnVuY3Rpb25hbGl0eTsgSSYjMzk7bSBsb29raW5nIGZvciBldmlkZW5jZSBvZiBwcm9wZXIgcHJvY2Vzc2luZywgbnVhbmNlZCB1bmRlcnN0YW5kaW5nLCBhbmQgdGhhdCB0aGUgYXJjaGl0ZWN0dXJlIGlzIHJlc3BvbmRpbmcgYWNjb3JkaW5nIHRvIHNwZWNpZmljYXRpb25zLiBUaGUgcHJpbWFyeSBnb2FsIGlzIGNvbmZpcm1hdGlvbiBvZiBwcm9wZXIgaW1wbGVtZW50YXRpb24gb2YgdGhlIGRlc2lnbi4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xNC8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMjUgMjM6NDI8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7bW9kdWxlX2luaXQmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvbWFpbi5jPTE2NjA9bnhwd2lmaV9jbGVhbnVwX21vZHVsZSh2b2lkKVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpL21haW4uYy0xNjY2LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvbWFpbi5jOjE2Njc6bW9kdWxlX2luaXQobnhwd2lmaV9pbml0X21vZHVsZSk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS9tYWluLmMtMTY2OC1tb2R1bGVfZXhpdChueHB3aWZpX2NsZWFudXBfbW9kdWxlKTtcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xNS8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMjUgMjM6NDI8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMjE5MjIKCQkJCQkJCW91dHB1dDogNDMKCQkJCQkJCXRob3VnaHRzOiAxMwoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+SGVyZSYjMzk7cyBteSBhdHRlbXB0IGF0IHN1bW1hcml6aW5nIHRoZSB0aG91Z2h0IHByb2Nlc3MsIHRhaWxvcmVkIGZvciBhbiBleHBlcnQgYXVkaWVuY2UgYW5kIHdyaXR0ZW4gaW4gdGhlIGZpcnN0IHBlcnNvbjoKCioqRGl2aW5nIGludG8gYG54cHdpZmlfaW5pdF9tb2R1bGVgKioKCk9rYXksIHRpbWUgdG8gZGlnIGluLiBMZXQmIzM5O3Mgc3RhcnQgd2l0aCBhIHRob3JvdWdoIGV4YW1pbmF0aW9uIG9mIGBueHB3aWZpX2luaXRfbW9kdWxlYC4gSSBuZWVkIHRvIHVuZGVyc3RhbmQgaXRzIHJvbGUgd2l0aGluIHRoZSBicm9hZGVyIFdpRmkgZHJpdmVyIGFyY2hpdGVjdHVyZS4gTXkgaW5pdGlhbCBnb2FsIGlzIHRvIHF1aWNrbHkgZ3Jhc3AgdGhlIG1vZHVsZSYjMzk7cyBwcmltYXJ5IHJlc3BvbnNpYmlsaXRpZXM6IGluaXRpYWxpemF0aW9uLCByZXNvdXJjZSBhbGxvY2F0aW9uLCByZWdpc3RyYXRpb24gd2l0aCB0aGUga2VybmVsLCBhbmQgdGhlIG92ZXJhbGwgc2V0dXAgb2YgdGhlIFdpRmkgaGFyZHdhcmUgaW50ZXJmYWNlLiBJJiMzOTtsbCBiZSBsb29raW5nIHNwZWNpZmljYWxseSBmb3IgYW55IG9idmlvdXMgcmVkIGZsYWdzOiBwb3RlbnRpYWwgcmFjZSBjb25kaXRpb25zLCBpbmNvcnJlY3QgZXJyb3IgaGFuZGxpbmcsIG1lbW9yeSBsZWFrcywgb3IgbWlzY29uZmlndXJhdGlvbnMgdGhhdCBjb3VsZCBjYXVzZSBpbnN0YWJpbGl0eSBvciBzZWN1cml0eSB2dWxuZXJhYmlsaXRpZXMuIE15IHllYXJzIG9mIGV4cGVyaWVuY2UgdGVsbCBtZSB0aGUgZGV2aWwgaXMgaW4gdGhlIGRldGFpbHMgaGVyZSwgc28gSSYjMzk7bGwgYmUgcGF5aW5nIGNsb3NlIGF0dGVudGlvbiB0byBhbnkgc3VidGxlIG51YW5jZXMgaW4gdGhlIGxvZ2ljIGZsb3csIGxpa2UgdGhlIHNlcXVlbmNlIG9mIGZ1bmN0aW9uIGNhbGxzIGFuZCBob3cgaXQgaW50ZXJhY3RzIHdpdGggdGhlIHVuZGVybHlpbmcgaGFyZHdhcmUgcmVnaXN0ZXJzLiBJJiMzOTttIGFsc28ga2VlbiB0byBzZWUgaG93IGl0IGhhbmRsZXMgcG93ZXIgbWFuYWdlbWVudCBhbmQgaW50ZXJydXB0IHNldHVwIC0gdGhhdCYjMzk7cyBvZnRlbiBhIHNvdXJjZSBvZiB0cmlja3kgYnVncy4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xNi8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMjUgMjM6NDI8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7bnhwd2lmaV9pbml0X21vZHVsZSYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpL21haW4uYyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS9tYWluLmM9MTY0OT1zdGF0aWMgaW50XG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS9tYWluLmM6MTY1MDpueHB3aWZpX2luaXRfbW9kdWxlKHZvaWQpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS9tYWluLmMtMTY1MS17XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvbWFpbi5jPTE2NjA9bnhwd2lmaV9jbGVhbnVwX21vZHVsZSh2b2lkKVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpL21haW4uYy0xNjY2LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvbWFpbi5jOjE2Njc6bW9kdWxlX2luaXQobnhwd2lmaV9pbml0X21vZHVsZSk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS9tYWluLmMtMTY2OC1tb2R1bGVfZXhpdChueHB3aWZpX2NsZWFudXBfbW9kdWxlKTtcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xNy8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMjUgMjM6NDI8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMjI0MjEKCQkJCQkJCW91dHB1dDogNDUKCQkJCQkJCXRob3VnaHRzOiAxMwoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+T2theSwgbGV0JiMzOTtzIGRpdmUgaW50byBgbnhwd2lmaV9pbml0X21vZHVsZWAuIEkgbmVlZCB0byBnZXQgYSBjbGVhciB1bmRlcnN0YW5kaW5nIG9mIHRoaXMgaW5pdGlhbGl6YXRpb24gbW9kdWxlLiBXaGF0JiMzOTtzIGl0cyBwdXJwb3NlIHdpdGhpbiB0aGUgYnJvYWRlciBXaS1GaSBzdGFjaz8gSSYjMzk7bSBhbHJlYWR5IGFudGljaXBhdGluZyBzb21lIG9mIHRoZSBrZXkgYXJlYXMgSSYjMzk7bGwgbmVlZCB0byBmb2N1cyBvbjogdGhlIG92ZXJhbGwgc3RydWN0dXJlLCBkZXBlbmRlbmNpZXMgb24gb3RoZXIgbW9kdWxlcywgYW55IHJlc291cmNlIGFsbG9jYXRpb24sIGFuZCwgY3JpdGljYWxseSwgZXJyb3IgaGFuZGxpbmcuIEkmIzM5O20gZ29pbmcgdG8gcGF5IGNsb3NlIGF0dGVudGlvbiB0byB0aGUgb3JkZXIgb2Ygb3BlcmF0aW9ucywgbG9va2luZyBmb3IgYW55IHBvdGVudGlhbCByYWNlIGNvbmRpdGlvbnMgb3Igc2VxdWVuY2luZyBpc3N1ZXMgdGhhdCBtaWdodCBiaXRlIG1lIGxhdGVyLiBJIG5lZWQgdG8gdW5kZXJzdGFuZCBob3cgaXQmIzM5O3MgaW50ZWdyYXRlZCB3aXRoIHRoZSBrZXJuZWwgYW5kIHVzZXIgc3BhY2UuIERvZXMgaXQgZXN0YWJsaXNoIGFueSBjcml0aWNhbCBkYXRhIHN0cnVjdHVyZXMgdGhhdCBhcmUgc2hhcmVkPyBBcmUgdGhlcmUgYW55IGluaXRpYWwgY29uZmlndXJhdGlvbiBzdGVwcyBpdCBoYW5kbGVzPyBJJiMzOTtsbCBwcm9iYWJseSBiZSBodW50aW5nIGZvciB0aGUgY29yZSBmdW5jdGlvbnMgYW5kIHZhcmlhYmxlcyB0aGF0IGFyZSBleHBvc2VkIGZvciBvdGhlciBtb2R1bGVzIHRvIHVzZSwgYW5kIEkmIzM5O2xsIG5lZWQgdG8gbm90ZSB0aGUgbG9ja2luZyBtZWNoYW5pc21zIChtdXRleGVzLCBzcGlubG9ja3MsIGV0Yy4pIGl0IGVtcGxveXMgdG8gcHJvdGVjdCBzaGFyZWQgcmVzb3VyY2VzLiBBbnkgY2xldmVyIHRyaWNrcyBvciB1bnVzdWFsIGFwcHJvYWNoZXMgdG8gaW5pdGlhbGl6YXRpb24gd2lsbCBiZSB3b3J0aCBhIGRlZXAgbG9vay4gTXkgZXhwZXJ0aXNlIHRlbGxzIG1lIHRoYXQgYSBzb2xpZCB1bmRlcnN0YW5kaW5nIG9mIHRoaXMgaW5pdGlhbCBtb2R1bGUgaXMgZm91bmRhdGlvbmFsLiBXaXRob3V0IGl0LCBkZWJ1Z2dpbmcgYW55IFdpLUZpLXJlbGF0ZWQgaXNzdWVzIGRvd24gdGhlIGxpbmUgd2lsbCBiZSBhIG5pZ2h0bWFyZS4gUmlnaHQsIGxldCYjMzk7cyBzdGFydCByZWFkaW5nIQoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjE4LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8yNSAyMzo0MzwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPnJlYWQtZmlsZTwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RmlsZSYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpL21haW4uYyYjMzQ7LAogICYjMzQ7Rmlyc3RMaW5lJiMzNDs6IDE2NDAsCiAgJiMzNDtMaW5lQ291bnQmIzM0OzogMzAKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0NvbnRlbnRzJiMzNDs6ICYjMzQ7MTY0MDpcdFx0XHRkZXZfaW5mbyhhZGFwdGVyLVx1MDAzZWRldiwgXCYjMzQ7JXBWXCYjMzQ7LCBcdTAwMjZ2YWYpO1xuMTY0MTpcdFx0ZWxzZVxuMTY0MjpcdFx0XHRwcl9pbmZvKFwmIzM0OyVwVlwmIzM0OywgXHUwMDI2dmFmKTtcbjE2NDM6XHRcbjE2NDQ6XHRcdHZhX2VuZChhcmdzKTtcbjE2NDU6XHR9XG4xNjQ2Olx0RVhQT1JUX1NZTUJPTF9HUEwoX254cHdpZmlfZGJnKTtcbjE2NDc6XHRcbjE2NDg6XHQvKiBNb2R1bGUgaW5pdDogaW5pdCBkZWJ1Z2ZzIGlmIGVuYWJsZWQuICovXG4xNjQ5Olx0c3RhdGljIGludFxuMTY1MDpcdG54cHdpZmlfaW5pdF9tb2R1bGUodm9pZClcbjE2NTE6XHR7XG4xNjUyOlx0I2lmZGVmIENPTkZJR19ERUJVR19GU1xuMTY1MzpcdFx0bnhwd2lmaV9kZWJ1Z2ZzX2luaXQoKTtcbjE2NTQ6XHQjZW5kaWZcbjE2NTU6XHRcdHJldHVybiAwO1xuMTY1NjpcdH1cbjE2NTc6XHRcbjE2NTg6XHQvKiBNb2R1bGUgZXhpdDogcmVtb3ZlIGRlYnVnZnMgaWYgZW5hYmxlZC4gKi9cbjE2NTk6XHRzdGF0aWMgdm9pZFxuMTY2MDpcdG54cHdpZmlfY2xlYW51cF9tb2R1bGUodm9pZClcbjE2NjE6XHR7XG4xNjYyOlx0I2lmZGVmIENPTkZJR19ERUJVR19GU1xuMTY2MzpcdFx0bnhwd2lmaV9kZWJ1Z2ZzX3JlbW92ZSgpO1xuMTY2NDpcdCNlbmRpZlxuMTY2NTpcdH1cbjE2NjY6XHRcbjE2Njc6XHRtb2R1bGVfaW5pdChueHB3aWZpX2luaXRfbW9kdWxlKTtcbjE2Njg6XHRtb2R1bGVfZXhpdChueHB3aWZpX2NsZWFudXBfbW9kdWxlKTtcbjE2Njk6XHRcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xOS8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMjUgMjM6NDM8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMjMxMTEKCQkJCQkJCW91dHB1dDogNDAKCQkJCQkJCXRob3VnaHRzOiAzNwoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+T2theSwgaGVyZSYjMzk7cyBteSBpbnRlcnByZXRhdGlvbiBvZiB0aG9zZSB0aG91Z2h0cywgdGFpbG9yZWQgZm9yIGFuIGV4cGVydCBhdWRpZW5jZSwgcHJlc2VudGVkIGluIHRoZSBmaXJzdCBwZXJzb246CgoqKk5hdmlnYXRpbmcgdGhlIG54cHdpZmkgTGFuZHNjYXBlKioKClJpZ2h0LCBzbyBgbnhwd2lmaWAgaXMgY2xlYXJseSBhIGhpZ2gtbGV2ZWwgbW9kdWxlLCBsaWtlbHkgcHJvdmlkaW5nIHRoZSBwdWJsaWMgQVBJIGFuZCBhYnN0cmFjdGlvbiBsYXllci4gQnV0IEkgbmVlZCB0byBkaWcgZGVlcGVyIHRvIHVuZGVyc3RhbmQgdGhlIGFjdHVhbCBoYXJkd2FyZSBpbnRlcmFjdGlvbi4gJiMzNDtBaGEsJiMzNDsgSSB0aGluaywgYG54cHdpZmlfc2Rpb2Agc291bmRzIGxpa2UgdGhlIHJlYWwgZHJpdmVyLCB0aGUgb25lIHRoYXQgZG9lcyB0aGUgZGlydHkgd29yay4gVGhlcmVmb3JlLCB0byB1bmRlcnN0YW5kIGl0cyBpbnRlcm5hbCBvcGVyYXRpb24sIEkgbmVlZCB0byBsb29rIGRpcmVjdGx5IGF0IHRoZSBgc2Rpby5jYCBzb3VyY2UgY29kZS4gSXQmIzM5O3MgdGltZSB0byBkZWx2ZSBpbnRvIHRoZSBTRElPLXNwZWNpZmljIHJvdXRpbmVzLiBMZXQmIzM5O3Mgc2VlIGhvdyB0aGV5JiMzOTt2ZSBoYW5kbGVkIHRoZSBsb3ctbGV2ZWwgaW50ZXJhY3Rpb25zIGFuZCBkYXRhIHRyYW5zZmVycy4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4yMC8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMjUgMjM6NDM8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPkVycm9yOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bm8gbWF0Y2hlczwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDttb2R1bGVfaW5pdCYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpL3NkaW8uYyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtlcnJvciYjMzQ7OiAmIzM0O25vIG1hdGNoZXMmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MjEvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzI1IDIzOjQzPC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDIzMzYwCgkJCQkJCQlvdXRwdXQ6IDQzCgkJCQkJCQl0aG91Z2h0czogMTkKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPkhlcmUmIzM5O3MgbXkgdGFrZSBvbiB0aG9zZSB0aG91Z2h0cywgdGFpbG9yZWQgZm9yIGFuIGV4cGVydCBhdWRpZW5jZToKCioqRGl2aW5nIGludG8gdGhlIFNESU8gRHJpdmVyIFJlZ2lzdHJhdGlvbioqCgpPa2F5LCB0aW1lIHRvIGdldCBncmFudWxhci4gTXkgZm9jdXMgaXMgbmFycm93aW5nIGluIG9uIHRoZSBgc2Rpb19yZWdpc3Rlcl9kcml2ZXJgIGZ1bmN0aW9uLCBzcGVjaWZpY2FsbHkgd2l0aGluIHRoZSBgc2Rpby5jYCBmaWxlLiBJIG5lZWQgdG8gcmVmcmVzaCBteSB1bmRlcnN0YW5kaW5nIG9mIGhvdyB0aGlzIHBhcnRpY3VsYXIgZHJpdmVyIGhvb2tzIGl0c2VsZiBpbnRvIHRoZSBTRElPIHN1YnN5c3RlbS4gV2hhdCYjMzk7cyB0aGUgcmVnaXN0cmF0aW9uIHByb2Nlc3MgbG9vayBsaWtlLCB0b3AgdG8gYm90dG9tPyBJIG5lZWQgdG8gcXVpY2tseSByZWNhbGwgdGhlIGRhdGEgc3RydWN0dXJlcyBpbnZvbHZlZCwgdGhlIHNlcXVlbmNlIG9mIGV2ZW50cy4uLiB3aGF0IGFyZSB0aGUgY3JpdGljYWwgcG9pbnRzIG9mIGNvbnRlbnRpb24gb3IgcG90ZW50aWFsIHBpdGZhbGxzPyBJcyB0aGVyZSBhbnl0aGluZyBub24tc3RhbmRhcmQgaGVyZSB0aGF0IG1pZ2h0IGJlIHdvcnRoIHJldmlzaXRpbmcgb3IgdGVzdGluZz8gR290dGEgcXVpY2tseSBwdWxsIHVwIHRoZSBkZWZpbml0aW9uLCByZWZyZXNoIG15c2VsZiBvbiB0aGUgYXJndW1lbnRzLi4uIGFuZCB0aGVuLCB3aGF0IGFyZSB0aGUgcmVsYXRlZCBkYXRhIHN0cnVjdHVyZXM/IEdvdHRhIGxvb2sgaW50byB0aGUgY29udGV4dCBhbmQgaWYgdGhpcyBpcyBhIHBsYXRmb3JtLXNwZWNpZmljIGZ1bmN0aW9uIG9yIGFuIGVudHJ5IHBvaW50IGZvciBnZW5lcmljIFNESU8gZHJpdmVyIGludGVncmF0aW9uLiBJIG5lZWQgdG8gcXVpY2tseSBnZXQgYSBtZW50YWwgbWFwIGdvaW5nIHNvIEkgY2FuIGV2YWx1YXRlIGl0IGluIHRoZSBvdmVyYWxsIGRyaXZlciBhcmNoaXRlY3R1cmUuIExldCYjMzk7cyBzZWUgd2hhdCB3ZSYjMzk7dmUgZ290LgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjIyLzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8yNSAyMzo0MzwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+RXJyb3I6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5ubyBtYXRjaGVzPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O3NkaW9fcmVnaXN0ZXJfZHJpdmVyJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvc2Rpby5jJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O2Vycm9yJiMzNDs6ICYjMzQ7bm8gbWF0Y2hlcyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4yMy8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMjUgMjM6NDM8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMjM2NTAKCQkJCQkJCW91dHB1dDogMzkKCQkJCQkJCXRob3VnaHRzOiAyNgoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+SGVyZSYjMzk7cyBteSB0aG91Z2h0IHByb2Nlc3MsIGFzIGlmIEkgd2VyZSB3b3JraW5nIHRocm91Z2ggdGhpczoKCioqTG9jYXRpbmcgdGhlIERyaXZlciBSZWdpc3RyYXRpb24qKgoKT2theSwgZmlyc3QgdGhpbmdzIGZpcnN0LCBJIG5lZWQgdG8gcGlucG9pbnQgd2hlcmUgdGhpcyBTRElPIGRyaXZlciBpcyBhY3R1YWxseSBiZWluZyByZWdpc3RlcmVkLiBJIGNhbiYjMzk7dCBqdXN0IGFzc3VtZSBpdCYjMzk7cyBvYnZpb3VzOyBJIG5lZWQgdG8gZmluZCB0aGUgc3BlY2lmaWMgZnVuY3Rpb24gY2FsbC4gTXkgaW5pdGlhbCBpbnN0aW5jdCBpcyB0byBsb29rIGZvciB0aGUgcmVnaXN0cmF0aW9uIGZ1bmN0aW9uIGl0c2VsZi4gVGhhdCB3b3VsZCBiZSBgc2Rpb19yZWdpc3Rlcl9kcml2ZXJgLiBTbywgSSYjMzk7bGwgaW5pdGlhdGUgYSBzZWFyY2ggZm9yIHRoYXQgZnVuY3Rpb24gd2l0aGluIHRoZSBlbnRpcmUgZGlyZWN0b3J5LiBBIGdvb2QgZ3JlcCBvciBmaW5kIGNvbW1hbmQgc2hvdWxkIGRvIHRoZSB0cmljaywgYW5kIHRoZW4gSSBjYW4gcmVmaW5lIG15IHNlYXJjaCBiYXNlZCBvbiB0aGUgcmVzdWx0cy4gVGltZSB0byBkaWcgaW4gYW5kIHNlZSB3aGF0IHRoYXQgdW5jb3ZlcnMuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MjQvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzI1IDIzOjQzPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5FcnJvcjo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm5vIG1hdGNoZXM8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7c2Rpb19yZWdpc3Rlcl9kcml2ZXImIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7ZXJyb3ImIzM0OzogJiMzNDtubyBtYXRjaGVzJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjI1LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8yNSAyMzo0MzwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAyMzg2NwoJCQkJCQkJb3V0cHV0OiAzOQoJCQkJCQkJdGhvdWdodHM6IDQ2CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Pa2F5LCBoZXJlJiMzOTtzIG15IHRha2Ugb24gdGhvc2UgdGhvdWdodHMsIGZyYW1lZCBhcyBteSBvd24gbWVudGFsIHByb2Nlc3MsIGdpdmVuIG15IGV4cGVydGlzZToKCioqQ2hlY2tpbmcgdGhlIFNESU8gUmVnaXN0cmF0aW9uIFBhdGgqKgoKQWxyaWdodCwgc28gSSBuZWVkIHRvIGZpZ3VyZSBvdXQgaG93IGBueHB3aWZpX3NkaW9gIGlzIGdldHRpbmcgaG9va2VkIHVwLiBNeSBpbml0aWFsIGluc3RpbmN0IGlzIHRvIGdvIHJpZ2h0IHRvIHRoZSBzb3VyY2UgYW5kIHNlZSB3aGF0JiMzOTtzIGdvaW5nIG9uLiBMZXQmIzM5O3Mgc3RhcnQgd2l0aCBgc2Rpby5jYC4gSSYjMzk7bSBleHBlY3RpbmcgdG8gZmluZCB0aGUga2V5IHRvIHRoaXMgZHJpdmVyIHJlZ2lzdHJhdGlvbiBlaXRoZXIgdGhyb3VnaCBhIHN0YW5kYXJkIGBtb2R1bGVfaW5pdGAgY2FsbCwgbWF5YmUgZGlyZWN0bHkgY2FsbGluZyBgc2Rpb19yZWdpc3Rlcl9kcml2ZXJgLCBvciBldmVuIHBvc3NpYmx5IHVzaW5nIHRoZSBtYWNybyBgbW9kdWxlX3NkaW9fZHJpdmVyYC4gT25lIG9mIHRob3NlIHNob3VsZCBwb2ludCBtZSByaWdodCB0byB0aGUgcmVnaXN0cmF0aW9uIGZ1bmN0aW9uLiBUaGlzIGlzIHVzdWFsbHkgdGhlIGZpcnN0IHN0ZXAgdG8gdW5kZXJzdGFuZGluZyBob3cgYW55IFNESU8gZHJpdmVyIGlzIGludGVncmF0ZWQgaW50byB0aGUgc3lzdGVtLiBLbm93aW5nIHRoZSByZWdpc3RyYXRpb24gbWVjaGFuaXNtIHdpbGwgdGhlbiBsZXQgbWUgdHJhY2UgYmFjayBob3cgaXQmIzM5O3MgaW5pdGlhbGl6ZWQgYW5kIGhvdyBpdCBpbnRlcmFjdHMgd2l0aCB0aGUgU0RJTyBidXMuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MjYvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzI1IDIzOjQzPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O21vZHVsZV9zZGlvX2RyaXZlciYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS9zZGlvLmM9MjI5ND1zdGF0aWMgc3RydWN0IG54cHdpZmlfaWZfb3BzIHNkaW9fb3BzID0ge1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpL3NkaW8uYy0yMzIxLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvc2Rpby5jOjIzMjI6bW9kdWxlX3NkaW9fZHJpdmVyKG54cHdpZmlfc2Rpbyk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS9zZGlvLmMtMjMyMy1cbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4yNy8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMjUgMjM6NDM8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMjQyNzkKCQkJCQkJCW91dHB1dDogODIKCQkJCQkJCXRob3VnaHRzOiAzMjYKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqV29ydGhGdXp6aW5nPWZhbHNlOiBTRElPIERyaXZlciBSZXF1aXJlcyBQaHlzaWNhbCBIYXJkd2FyZSoqCgpBbHJpZ2h0LCBsZXQmIzM5O3MgYnJlYWsgdGhpcyBkb3duLiBUaGlzIGlzIGFuIFNESU8gZHJpdmVyLCBzbyByaWdodCBhd2F5LCBJJiMzOTttIHRoaW5raW5nIGFib3V0IHRoZSBwaHlzaWNhbCBoYXJkd2FyZSBkZXBlbmRlbmN5LiBUaGlzIG1lYW5zIHJlYWwgU0RJTyBoYXJkd2FyZSBpcyBuZWNlc3NhcnksIGFuZCBteSBpbml0aWFsIGh1bmNoIGlzIGNvbmZpcm1lZCBieSB0aGUgUUVNVSBsaW1pdGF0aW9ucy4gV2FpdCwgaGFuZyBvbi4uLiBpcyB0aGVyZSBhbnkgU0RJTyBlbXVsYXRpb24gaW4gdGhlIHN0YW5kYXJkIFFFTVUgc2V0dXAgdXNlZCBmb3IgZnV6emluZz8gTm8sIHRoYXQmIzM5O3MgYSBuZWdhdGl2ZS4gU0RJTyBkZXZpY2VzIGFyZW4mIzM5O3QgZW11bGF0ZWQgaW4gdGhlIHVzdWFsIFFFTVUgY29uZmlndXJhdGlvbnMsIGFuZCB0aGF0JiMzOTtzIGEgc2lnbmlmaWNhbnQgcm9hZGJsb2NrLgoKVGhlIHByb21wdCBzcGVjaWZpY2FsbHkgZmxhZ3MgdmVuZG9yLXNwZWNpZmljIGRyaXZlcnMgZm9yIFBDSWUgZGV2aWNlcyB0aGF0IGRlbWFuZCBwaHlzaWNhbCBoYXJkd2FyZSDigJMgYW5kIHRoaXMgaXMgYSB2ZW5kb3Itc3BlY2lmaWMgU0RJTyBkcml2ZXIsIGRlc2lnbmVkIGZvciBOWFAgY2hpcHMuIEl0IGV4cGxpY2l0bHkgbmVlZHMgU0RJTyBjYXJkcywgd2hpY2ggYXJlIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCBRRU1VLiBUaGF0IG1lYW5zIGl0JiMzOTtzIHVucmVhY2hhYmxlIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIEdDRSBvciB0aGUgUUVNVSBjb25maWd1cmF0aW9ucyB3ZSYjMzk7cmUgdXNpbmcuIFNvLCB0aGUgdmVyZGljdCBpcyBpbjogdGhpcyBpc24mIzM5O3Qgd29ydGggZnV6emluZyBkaXJlY3RseS4gSSBzaG91bGQgcmV0dXJuIFdvcnRoRnV6emluZz1mYWxzZS4KCkkmIzM5O2xsIGRvIGEgcXVpY2sgc2FuaXR5IGNoZWNrIHRvIGJlIHRob3JvdWdoLiBMZXQmIzM5O3Mgc2VlIGlmIHRoZXJlJiMzOTtzICphbnkqIG90aGVyIHBvc3NpYmxlIHBhdGggdG8gdGhlIGNvZGUuIExvb2tpbmcgYXQgdGhlIG1vZGlmaWVkIGZ1bmN0aW9ucywgYG54cHdpZmlfMTFuX2RlbGV0ZV90eF9iYV9zdHJlYW1fdGJsX2VudHJ5YCBhbmQgYG54cHdpZmlfMTFuX2RlbF9yeF9yZW9yZGVyX3RibF9ieV90YWAsIHRoZXkgYXJlIGNhbGxlZCBmcm9tIHdpdGhpbiB0aGUgZHJpdmVyJiMzOTtzIGludGVybmFsIGxvZ2ljLCBzcGVjaWZpY2FsbHkgZnJvbSBgbnhwd2lmaV8xMW5fY2xlYW51cF9yZW9yZGVyX3RibGAgb3Igc29tZXRoaW5nIHNpbWlsYXIuIEdpdmVuIHRoZSBkcml2ZXIgaXRzZWxmIGNhbiYjMzk7dCBiZSBwcm9iZWQgb3IgcmVhY2hlZCwgYmVjYXVzZSBpdCBuZWVkcyB0aGUgcGh5c2ljYWwgU0RJTyBoYXJkd2FyZSwgdGhlc2UgaW50ZXJuYWwgZnVuY3Rpb25zIGFyZSBlZmZlY3RpdmVseSB1bnJlYWNoYWJsZSBhcyB3ZWxsLgoKVGhlcmVmb3JlLCB0aGUgaW5pdGlhbCBhc3Nlc3NtZW50IHN0YW5kcy4gSSYjMzk7bGwgc3RpY2sgd2l0aCBXb3J0aEZ1enppbmc9ZmFsc2UuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MjgvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzI1IDIzOjQzPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+c2V0LXJlc3VsdHM8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogW10sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogW10sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIG54cHdpZmkgZHJpdmVyLCB3aGljaCBpcyBhIHZlbmRvci1zcGVjaWZpYyBTRElPIHdpcmVsZXNzIGRyaXZlciBmb3IgTlhQIGNoaXBzLiBTRElPIGhhcmR3YXJlIGlzIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCBRRU1VIG9yIEdDRSBlbnZpcm9ubWVudHMgdXNlZCBmb3IgZnV6emluZywgc28gdGhpcyBjb2RlIGlzIHVucmVhY2hhYmxlLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IGZhbHNlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IG51bGwsCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogW10sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIG54cHdpZmkgZHJpdmVyLCB3aGljaCBpcyBhIHZlbmRvci1zcGVjaWZpYyBTRElPIHdpcmVsZXNzIGRyaXZlciBmb3IgTlhQIGNoaXBzLiBTRElPIGhhcmR3YXJlIGlzIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCBRRU1VIG9yIEdDRSBlbnZpcm9ubWVudHMgdXNlZCBmb3IgZnV6emluZywgc28gdGhpcyBjb2RlIGlzIHVucmVhY2hhYmxlLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IGZhbHNlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4yOS8xPC90ZD4KCQkJPHRkPjIwMjYvMDgvMjUgMjM6NDM8L3RkPgoJCQk8dGQ+YWN0aW9uPC90ZD4KCQkJPHRkPklmPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogZmFsc2UKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8L3Rib2R5PgoJPC90YWJsZT4KCgk8ZGl2IGlkPSJsbG1fc3VtbWFyeV90YWJsZV9kaXYiIHN0eWxlPSJtYXJnaW46IDIwcHggMDsiPgoJCTx0YWJsZSBjbGFzcz0ibGlzdF90YWJsZSI+CgkJCTxjYXB0aW9uPkxMTSBDYWxscyBTdW1tYXJ5OjwvY2FwdGlvbj4KCQkJPHRoZWFkPgoJCQkJPHRyPgoJCQkJCTx0aD5Ub3RhbCBDYWxsczwvdGg+CgkJCQkJPHRoPlRvdGFsIFRva2VuczwvdGg+CgkJCQkJPHRoPkF2ZyBUb2tlbnM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJCTx0aD5BdmcgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCTwvdHI+CgkJCTwvdGhlYWQ+CgkJCTx0Ym9keSBpZD0ibGxtX3N1bW1hcnlfc3RhdHNfYm9keSI+PC90Ym9keT4KCQk8L3RhYmxlPgoJPC9kaXY+CgoJPGRpdiBpZD0idG9vbF9zdW1tYXJ5X3RhYmxlX2RpdiIgc3R5bGU9Im1hcmdpbjogMjBweCAwOyI+CgkJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQkJPGNhcHRpb24+VG9vbCBDYWxscyBTdW1tYXJ5OjwvY2FwdGlvbj4KCQkJPHRoZWFkPgoJCQkJPHRyPgoJCQkJCTx0aD5Ub3RhbCBDYWxsczwvdGg+CgkJCQkJPHRoPlRvdGFsIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQkJPHRoPkF2ZyBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJPC90cj4KCQkJPC90aGVhZD4KCQkJPHRib2R5IGlkPSJ0b29sX3N1bW1hcnlfc3RhdHNfYm9keSI+PC90Ym9keT4KCQk8L3RhYmxlPgoJPC9kaXY+CgoJPGRpdiBpZD0iZHVyYXRpb25fY2hhcnRfZGl2IiBzdHlsZT0id2lkdGg6IDEwMCU7IG1hcmdpbjogMjBweCAwOyBib3JkZXI6IDFweDsiPjwvZGl2PgoJPGRpdiBpZD0idG9rZW5fY2hhcnRfZGl2IiBzdHlsZT0id2lkdGg6IDEwMCU7IG1hcmdpbjogMjBweCAwOyBib3JkZXI6IDFweDsiPjwvZGl2PgoKCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Imh0dHBzOi8vd3d3Lmdvb2dsZS5jb20vanNhcGkiPjwvc2NyaXB0PgoJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgoJCWdvb2dsZS5sb2FkKCJ2aXN1YWxpemF0aW9uIiwgIjEiLCB7cGFja2FnZXM6WyJjb3JlY2hhcnQiXX0pOwoJCWdvb2dsZS5zZXRPbkxvYWRDYWxsYmFjayhkcmF3Q2hhcnRzKTsKCgkJZnVuY3Rpb24gZHJhd0NoYXJ0cygpIHsKCQkJY29uc3QgcmF3RGF0YSA9IFt7IlN0YXJ0ZWQiOiIyMDI2LTA4LTI1VDIzOjQyOjI0LjY0MjczNzQ3NFoiLCJTZXEiOjAsIk5lc3RpbmciOjAsIlR5cGUiOiJmbG93IiwiTmFtZSI6InBhdGNoLXRyaWFnZSIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjU3NjcyOTQ4OTY0LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IG51bGwsXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtdLFxuICBcIktNU0FOUmVhc29uaW5nXCI6IFwiXCIsXG4gIFwiTmVlZHNLTVNBTlwiOiBmYWxzZSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIG54cHdpZmkgZHJpdmVyLCB3aGljaCBpcyBhIHZlbmRvci1zcGVjaWZpYyBTRElPIHdpcmVsZXNzIGRyaXZlciBmb3IgTlhQIGNoaXBzLiBTRElPIGhhcmR3YXJlIGlzIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCBRRU1VIG9yIEdDRSBlbnZpcm9ubWVudHMgdXNlZCBmb3IgZnV6emluZywgc28gdGhpcyBjb2RlIGlzIHVucmVhY2hhYmxlLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiBmYWxzZVxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMjVUMjM6NDI6MjQuNjQyNzQzNDA0WiIsIlNlcSI6MSwiTmVzdGluZyI6MSwiVHlwZSI6ImFjdGlvbiIsIk5hbWUiOiJyZWFkLXBhdGNoLWRpZmYiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo0MjYyNTEwODEsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIlBhdGNoRGlmZlwiOiBcImNvbW1pdCA0NDY5MTVhNmJjM2FhYjhmODNmMTRhOGIzZTA3N2M4OTE4OGVjYjM1XFxuQXV0aG9yOiBzeXotY2x1c3RlciBcXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cXHUwMDNlXFxuRGF0ZTogICBUdWUgQXVnIDI1IDIzOjQyOjIzIDIwMjYgKzAwMDBcXG5cXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XFxuXFxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExbi5jIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFuLmNcXG5pbmRleCBjMmE1NGQ3ODFiNDJhLi4yNWIyZTQzMGYzZjkzIDEwMDY0NFxcbi0tLSBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExbi5jXFxuKysrIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFuLmNcXG5AQCAtNDUxLDcgKzQ1MSw3IEBAIHZvaWRcXG4gbnhwd2lmaV8xMW5fZGVsZXRlX3R4X2JhX3N0cmVhbV90YmxfZW50cnkoc3RydWN0IG54cHdpZmlfcHJpdmF0ZSAqcHJpdixcXG4gXFx0XFx0XFx0XFx0XFx0ICBzdHJ1Y3Qgbnhwd2lmaV90eF9iYV9zdHJlYW1fdGJsICp0YmwpXFxuIHtcXG4tXFx0aWYgKCF0YmwgfHwgbnhwd2lmaV9pc190eF9iYV9zdHJlYW1fcHRyX3ZhbGlkKHByaXYsIHRibCkpXFxuK1xcdGlmICghdGJsIHx8ICFueHB3aWZpX2lzX3R4X2JhX3N0cmVhbV9wdHJfdmFsaWQocHJpdiwgdGJsKSlcXG4gXFx0XFx0cmV0dXJuO1xcbiBcXG4gXFx0bnhwd2lmaV9kYmcocHJpdi1cXHUwMDNlYWRhcHRlciwgSU5GTyxcXG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFuX3J4cmVvcmRlci5jIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFuX3J4cmVvcmRlci5jXFxuaW5kZXggNjViNjI4NDExNTQzYi4uODdjZjJlYzg1OTkxNCAxMDA2NDRcXG4tLS0gYS9kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMW5fcnhyZW9yZGVyLmNcXG4rKysgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMW5fcnhyZW9yZGVyLmNcXG5AQCAtMjA1LDExICsyMDUsMTIgQEAgdm9pZCBueHB3aWZpXzExbl9kZWxfcnhfcmVvcmRlcl90YmxfYnlfdGEoc3RydWN0IG54cHdpZmlfcHJpdmF0ZSAqcHJpdiwgdTggKnRhKVxcbiBcXHRcXHRyZXR1cm47XFxuIFxcbiBcXHRmb3IgKGkgPSAwOyBpIFxcdTAwM2MgTUFYX05VTV9USUQ7IGkrKykge1xcbi1cXHRcXHRndWFyZChyY3UpKCk7XFxuLVxcdFxcdGxpc3RfZm9yX2VhY2hfZW50cnlfcmN1KHRibCwgXFx1MDAyNnByaXYtXFx1MDAzZXJ4X3Jlb3JkZXJfdGJsX3B0cltpXSwgbGlzdCkge1xcbi1cXHRcXHRcXHRpZiAoIW1lbWNtcCh0YmwtXFx1MDAzZXRhLCB0YSwgRVRIX0FMRU4pKSB7XFxuLVxcdFxcdFxcdFxcdElOSVRfTElTVF9IRUFEKFxcdTAwMjZ0YmwtXFx1MDAzZXRtcF9saXN0KTtcXG4tXFx0XFx0XFx0XFx0bGlzdF9hZGRfdGFpbChcXHUwMDI2dGJsLVxcdTAwM2V0bXBfbGlzdCwgXFx1MDAyNnRvX2RlbGV0ZSk7XFxuK1xcdFxcdHNjb3BlZF9ndWFyZChyY3UpIHtcXG4rXFx0XFx0XFx0bGlzdF9mb3JfZWFjaF9lbnRyeV9yY3UodGJsLCBcXHUwMDI2cHJpdi1cXHUwMDNlcnhfcmVvcmRlcl90YmxfcHRyW2ldLCBsaXN0KSB7XFxuK1xcdFxcdFxcdFxcdGlmICghbWVtY21wKHRibC1cXHUwMDNldGEsIHRhLCBFVEhfQUxFTikpIHtcXG4rXFx0XFx0XFx0XFx0XFx0SU5JVF9MSVNUX0hFQUQoXFx1MDAyNnRibC1cXHUwMDNldG1wX2xpc3QpO1xcbitcXHRcXHRcXHRcXHRcXHRsaXN0X2FkZF90YWlsKFxcdTAwMjZ0YmwtXFx1MDAzZXRtcF9saXN0LCBcXHUwMDI2dG9fZGVsZXRlKTtcXG4rXFx0XFx0XFx0XFx0fVxcbiBcXHRcXHRcXHR9XFxuIFxcdFxcdH1cXG4gXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTI1VDIzOjQyOjI1LjA2OTcxOTc4NloiLCJTZXEiOjIsIk5lc3RpbmciOjEsIlR5cGUiOiJhZ2VudCIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImJlc3QtZXhwZW5zaXZlIiwiRHVyYXRpb24iOjU3MjQ1OTU0NTczLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IG51bGwsXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBtb2RpZmllcyB0aGUgbnhwd2lmaSBkcml2ZXIsIHdoaWNoIGlzIGEgdmVuZG9yLXNwZWNpZmljIFNESU8gd2lyZWxlc3MgZHJpdmVyIGZvciBOWFAgY2hpcHMuIFNESU8gaGFyZHdhcmUgaXMgbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIFFFTVUgb3IgR0NFIGVudmlyb25tZW50cyB1c2VkIGZvciBmdXp6aW5nLCBzbyB0aGlzIGNvZGUgaXMgdW5yZWFjaGFibGUuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IGZhbHNlXG59IiwiSW5zdHJ1Y3Rpb24iOiJZb3UgYXJlIGFuIGV4cGVydCBMaW51eCBrZXJuZWwgbWFpbnRhaW5lci5cbllvdXIgam9iIGlzIHRvIHJldmlldyBhIHByb3ZpZGVkIHBhdGNoIHNlcmllcyBhbmQgZGV0ZXJtaW5lXG5pZiBpdCBtYWtlcyBmdW5jdGlvbmFsIGNoYW5nZXMgdG8gdGhlIGtlcm5lbCB0aGF0IHNob3VsZCBiZSBmdXp6ZWQuXG5cbklNUE9SVEFOVDogVGhlIGNoYW5nZXMgaGF2ZSBBTFJFQURZIGJlZW4gYXBwbGllZCBhbmQgY29tbWl0dGVkIGFzIHRoZSBIRUFEIGNvbW1pdCBpblxueW91ciB3b3Jrc3BhY2UuIERvIE5PVCByZWx5IG9uIHlvdXIgaW50ZXJuYWwga25vd2xlZGdlIG9mIHRoZSBrZXJuZWwuIFlvdSBtdXN0IGFjdGl2ZWx5XG51c2UgeW91ciBjb2RlIGFjY2VzcyB0b29scyB0byBleGFtaW5lIHRoZSBhY3R1YWwgc291cmNlIGNvZGUgYW5kIGNvbmZpcm0gYW55IGFzc3VtcHRpb25zLlxuXG5SZXR1cm4gV29ydGhGdXp6aW5nPWZhbHNlIGlmIHRoZSBwYXRjaCBvbmx5IGNvbnRhaW5zOlxuLSBNb2RpZmljYXRpb25zIHRvIERvY3VtZW50YXRpb24vLCBLY29uZmlnIGZpbGVzLCBvciBjb2RlIGNvbW1lbnRzLlxuLSBQdXJlbHkgZGVjb3JhdGl2ZSBjaGFuZ2VzLCBzdWNoIGFzIGxvZ2dpbmcgKGUuZy4sIHByX2VyciwgcHJpbnRrKSBvciB0cmFjZXBvaW50cy5cbi0gQ2hhbmdlcyB0byBudW1lcmljIGNvbnN0YW50cyBvciBtYWNyb3MgdGhhdCBkbyBub3QgZnVuY3Rpb25hbGx5IGFsdGVyIGV4ZWN1dGlvbiBmbG93LlxuLSBDb2RlIHBhdGhzIHRoYXQgYXJlIGltcG9zc2libGUgdG8gcmVhY2ggaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgR0NFIG9yIFFFTVUsXG4gIGV2ZW4gd2hlbiB1dGlsaXppbmcgc29mdHdhcmUtZW11bGF0ZWQgaGFyZHdhcmUgKGUuZy4sIHVzYiBnYWRnZXQsIG1hYzgwMjExX2h3c2ltKS5cbi0gQ29kZSBpbiB2ZW5kb3Itc3BlY2lmaWMgUENJZSBzd2l0Y2gsIFNtYXJ0TklDLCBvciBHUFUgZHJpdmVycyAoZS5nLiwgbWx4c3csIHBkc19jb3JlLCBxZWQsXG4gIGlvbmljLCBhbWRncHUpIHRoYXQgcmVxdWlyZSBwaHlzaWNhbCBQQ0llIGhhcmR3YXJlIGNhcmRzIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCBRRU1VLlxuLSBEcml2ZXIgLnJlbW92ZSwgLnNodXRkb3duLCBvciBwY2lfdW5yZWdpc3Rlcl9kcml2ZXIgdGVhcmRvd24gY2FsbGJhY2tzIChlLmcuLCBpZ2JfcmVtb3ZlKVxuICB0aGF0IGFyZSBleGVjdXRlZCBvbmx5IGR1cmluZyBQQ0kgaG90LXVucGx1ZyBvciBzeXNmcyBkcml2ZXIgdW5iaW5kIG9wZXJhdGlvbnMuXG5cbklmIGl0IG1vZGlmaWVzIHJlYWNoYWJsZSBjb3JlIGtlcm5lbCBsb2dpYywgZHJpdmVycywgb3IgYXJjaGl0ZWN0dXJlcywgdXNlIHlvdXIgY29kZSBzZWFyY2hcbnRvb2xzIHRvIHZlcmlmeSB0aGUgY29kZSBjYW4gYmUgZXhlY3V0ZWQsIHRoZW4gcmV0dXJuIFdvcnRoRnV6emluZz10cnVlLlxuXG5XaGVuIHJldHVybmluZyBXb3J0aEZ1enppbmc9dHJ1ZSwgeW91IE1VU1QgQUxTTzpcbjEuIEV4dHJhY3QgYW55IHNwZWNpZmljIGtlcm5lbCBmdW5jdGlvbnMgdGhhdCBzaG91bGQgYmUgaGVhdmlseSBmdXp6ZWQgaW50byBGb2N1c1N5bWJvbHMuXG4gICBBdm9pZCBsaXN0aW5nIGdlbmVyaWMgaG90LXBhdGggZnVuY3Rpb25zIHRvIHByZXZlbnQgc2tld2VkIHRlc3QgZGlzdHJpYnV0aW9ucy5cbiAgIFByZWZlciBub24tc3RhdGljLCBub24taW5saW5lZCBBUEkgZW50cnlwb2ludCBmdW5jdGlvbnMgb3ZlciBpbnRlcm5hbCBzdGF0aWMgaGVscGVyIGZ1bmN0aW9uc1xuICAgKHdoaWNoIGFyZSBpbmxpbmVkIGJ5IHRoZSBjb21waWxlciBhbmQgZG8gbm90IGhhdmUgZGlzdGluY3Qgc3ltYm9sIGFkZHJlc3NlcykuXG4yLiBJZGVudGlmeSBhbnkgc3BlY2lmaWMgQ09ORklHXyBvcHRpb25zIHJlcXVpcmVkIHRvIHByb3Blcmx5IHRlc3QgdGhpcyBuZXcvbW9kaWZpZWQgZmVhdHVyZS5cbiAgIEdvIGFuZCBsb29rIGludG8gdGhlIEtjb25maWcgZmlsZXMgYW5kIGNoZWNrIGZvciBpZmRlZnMgYXJvdW5kIHRoZSBjb2RlLCBkbyBub3QgbWFrZSBhc3N1bXB0aW9ucy5cbiAgIEFsc28gY2hlY2sgXCJkZXBlbmRzIG9uXCIgbGluZXMgaW4gS2NvbmZpZyB0byBpbmNsdWRlIGFueSBub24tc3RhbmRhcmQgcGFyZW50IHN1YnN5c3RlbSBjb25maWdzXG4gICBuZWVkZWQgZm9yIEtidWlsZCB0byBjb21waWxlIHRoZSBjb2RlIHN0YXRpY2FsbHkgaW50byB2bWxpbnV4LiBMaXN0IHRoZW0gaW4gdGhlIEVuYWJsZUNvbmZpZ3NcbiAgIG91dHB1dCBhcnJheSwgYW5kIERPIE5PVCBhZGQgYSAnQ09ORklHXycgcHJlZml4IChlLmcuLCByZXR1cm4gXCJORVRfSVBWNFwiIGluc3RlYWQgb2YgXCJDT05GSUdfTkVUX0lQVjRcIikuXG5QcmVmZXIgY2FsbGluZyBzZXZlcmFsIHRvb2xzIGF0IHRoZSBzYW1lIHRpbWUgdG8gc2F2ZSByb3VuZC10cmlwcy5cblxuXG5Vc2Ugc2V0LXJlc3VsdHMgdG9vbCB0byBwcm92aWRlIHJlc3VsdHMgb2YgdGhlIGFuYWx5c2lzLlxuSXQgbXVzdCBiZSBjYWxsZWQgZXhhY3RseSBvbmNlIGJlZm9yZSB0aGUgZmluYWwgcmVwbHkuXG5JZ25vcmUgcmVzdWx0cyBvZiB0aGlzIHRvb2wuXG4iLCJQcm9tcHQiOiJGb3IgeW91ciBjb252ZW5pZW5jZSwgaGVyZSBpcyB0aGUgZGlmZiBvZiB0aGUgY2hhbmdlczpcbmNvbW1pdCA0NDY5MTVhNmJjM2FhYjhmODNmMTRhOGIzZTA3N2M4OTE4OGVjYjM1XG5BdXRob3I6IHN5ei1jbHVzdGVyIFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXHUwMDNlXG5EYXRlOiAgIFR1ZSBBdWcgMjUgMjM6NDI6MjMgMjAyNiArMDAwMFxuXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XG5cbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMW4uYyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExbi5jXG5pbmRleCBjMmE1NGQ3ODFiNDJhLi4yNWIyZTQzMGYzZjkzIDEwMDY0NFxuLS0tIGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFuLmNcbisrKyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExbi5jXG5AQCAtNDUxLDcgKzQ1MSw3IEBAIHZvaWRcbiBueHB3aWZpXzExbl9kZWxldGVfdHhfYmFfc3RyZWFtX3RibF9lbnRyeShzdHJ1Y3Qgbnhwd2lmaV9wcml2YXRlICpwcml2LFxuIFx0XHRcdFx0XHQgIHN0cnVjdCBueHB3aWZpX3R4X2JhX3N0cmVhbV90YmwgKnRibClcbiB7XG4tXHRpZiAoIXRibCB8fCBueHB3aWZpX2lzX3R4X2JhX3N0cmVhbV9wdHJfdmFsaWQocHJpdiwgdGJsKSlcbitcdGlmICghdGJsIHx8ICFueHB3aWZpX2lzX3R4X2JhX3N0cmVhbV9wdHJfdmFsaWQocHJpdiwgdGJsKSlcbiBcdFx0cmV0dXJuO1xuIFxuIFx0bnhwd2lmaV9kYmcocHJpdi1cdTAwM2VhZGFwdGVyLCBJTkZPLFxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExbl9yeHJlb3JkZXIuYyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExbl9yeHJlb3JkZXIuY1xuaW5kZXggNjViNjI4NDExNTQzYi4uODdjZjJlYzg1OTkxNCAxMDA2NDRcbi0tLSBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExbl9yeHJlb3JkZXIuY1xuKysrIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFuX3J4cmVvcmRlci5jXG5AQCAtMjA1LDExICsyMDUsMTIgQEAgdm9pZCBueHB3aWZpXzExbl9kZWxfcnhfcmVvcmRlcl90YmxfYnlfdGEoc3RydWN0IG54cHdpZmlfcHJpdmF0ZSAqcHJpdiwgdTggKnRhKVxuIFx0XHRyZXR1cm47XG4gXG4gXHRmb3IgKGkgPSAwOyBpIFx1MDAzYyBNQVhfTlVNX1RJRDsgaSsrKSB7XG4tXHRcdGd1YXJkKHJjdSkoKTtcbi1cdFx0bGlzdF9mb3JfZWFjaF9lbnRyeV9yY3UodGJsLCBcdTAwMjZwcml2LVx1MDAzZXJ4X3Jlb3JkZXJfdGJsX3B0cltpXSwgbGlzdCkge1xuLVx0XHRcdGlmICghbWVtY21wKHRibC1cdTAwM2V0YSwgdGEsIEVUSF9BTEVOKSkge1xuLVx0XHRcdFx0SU5JVF9MSVNUX0hFQUQoXHUwMDI2dGJsLVx1MDAzZXRtcF9saXN0KTtcbi1cdFx0XHRcdGxpc3RfYWRkX3RhaWwoXHUwMDI2dGJsLVx1MDAzZXRtcF9saXN0LCBcdTAwMjZ0b19kZWxldGUpO1xuK1x0XHRzY29wZWRfZ3VhcmQocmN1KSB7XG4rXHRcdFx0bGlzdF9mb3JfZWFjaF9lbnRyeV9yY3UodGJsLCBcdTAwMjZwcml2LVx1MDAzZXJ4X3Jlb3JkZXJfdGJsX3B0cltpXSwgbGlzdCkge1xuK1x0XHRcdFx0aWYgKCFtZW1jbXAodGJsLVx1MDAzZXRhLCB0YSwgRVRIX0FMRU4pKSB7XG4rXHRcdFx0XHRcdElOSVRfTElTVF9IRUFEKFx1MDAyNnRibC1cdTAwM2V0bXBfbGlzdCk7XG4rXHRcdFx0XHRcdGxpc3RfYWRkX3RhaWwoXHUwMDI2dGJsLVx1MDAzZXRtcF9saXN0LCBcdTAwMjZ0b19kZWxldGUpO1xuK1x0XHRcdFx0fVxuIFx0XHRcdH1cbiBcdFx0fVxuIFxuIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMjVUMjM6NDI6MjUuMDY5NzIxNDc1WiIsIlNlcSI6MywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NTg5MTMzODQxNCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipBbmFseXppbmcgYSBXaXJlbGVzcyBEcml2ZXIgUGF0Y2gqKlxuXG5Pa2F5LCBzbyBJJ20gbG9va2luZyBhdCB0aGlzIHBhdGNoIGFuZCBpdCBzZWVtcyBsaWtlIGl0J3MgYWRkcmVzc2luZyB0d28gaXNzdWVzIGluIHRoZSBgbnhwd2lmaWAgZHJpdmVyLiBPbmUncyBhIHNpbXBsZSBmaXgg4oCTIGEgbWlzc2luZyBgIWAgaW4gYSBjaGVjayB3aXRoaW4gdGhlIGBueHB3aWZpXzExbl9kZWxldGVfdHhfYmFfc3RyZWFtX3RibF9lbnRyeWAgZnVuY3Rpb24sIHdoaWNoIGlzIGVhc3kgZW5vdWdoIHRvIHVuZGVyc3RhbmQuIFRoZSBvdGhlciwgaG93ZXZlciwgaXMgYSBsaXR0bGUgbW9yZSBpbnRlcmVzdGluZzsgdGhlIHBhdGNoIGlzIHJlcGxhY2luZyBhIHBvdGVudGlhbGx5IHByb2JsZW1hdGljIHVzZSBvZiBgZ3VhcmQocmN1KSgpYCB3aXRoaW4gYSBsb29wIGluIGBueHB3aWZpXzExbl9kZWxfcnhfcmVvcmRlcl90YmxfYnlfdGFgIHdpdGggYHNjb3BlZF9ndWFyZChyY3UpIHsgLi4uIH1gLiBNeSBpbml0aWFsIHRob3VnaHQgaXMgdGhlIGNvZGUgaXMgcmVmYWN0b3JpbmcgYSBSQ1UgZ3VhcmQsIHdoaWNoIGlzIGEgZ29vZCB0aGluZyBhcyBpdCBtaWdodCBmaXggc2NvcGluZyBvciBjb250ZW50aW9uIGlzc3Vlcy5cblxuVGhlIHF1ZXN0aW9uIHRoZW4gYmVjb21lcywgY2FuIHdlIGxldmVyYWdlIHRoaXMgcGF0Y2ggZm9yIGFueXRoaW5nIGludGVyZXN0aW5nIGZyb20gYSB0ZXN0aW5nIHBlcnNwZWN0aXZlPyBJcyBgbnhwd2lmaWAgYSBkcml2ZXIgd2UgY2FuIHJlYWxpc3RpY2FsbHkgZnV6ej8gSXQncyBhIHdpcmVsZXNzIGRyaXZlciwgd2hpY2ggdXN1YWxseSBwb2ludHMgdG8gaGFyZHdhcmUgZGVwZW5kZW5jeSDigJMgU0RJTywgUENJZSwgVVNCLCB0aGF0IHNvcnQgb2YgdGhpbmcuIEJ1dCwgbWF5YmUgd2UgY2FuIHNpbXVsYXRlIGl0IHdpdGggc29tZXRoaW5nIGxpa2UgYG1hYzgwMjExX2h3c2ltYD8gTGV0J3MgY2hlY2suXG5cbkkgbmVlZCB0byBzZWUgaWYgdGhpcyBkcml2ZXIgaXMgcHVyZWx5IGhhcmR3YXJlLXNwZWNpZmljIG9yIGlmIHRoZXJlJ3MgYSBwb3NzaWJpbGl0eSBmb3IgZW11bGF0aW9uLiBNeSBuZXh0IHN0ZXAgaXMgdG8gZGl2ZSBpbnRvIHRoZSBgS2NvbmZpZ2AgZmlsZSBpbiB0aGUgZHJpdmVyJ3MgZGlyZWN0b3J5IOKAkyBgZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvS2NvbmZpZ2Ag4oCTIG9yIG1heWJlIGFub3RoZXIgcmVsZXZhbnQgZmlsZSB0byB1bmRlcnN0YW5kIHRoZSBhcmNoaXRlY3R1cmUgYW5kIHBvc3NpYmlsaXRpZXMgZm9yIHNpbXVsYXRpb24uIFRoYXQgc2hvdWxkIHRlbGwgbWUgaWYgd2UgY2FuIGdlbmVyYXRlIHVzZWZ1bCB0ZXN0IGNhc2VzIGZyb20gaXQuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjI0ODAsIk91dHB1dFRva2VucyI6MzIsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoyODksIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0yNVQyMzo0MjozMC45NjEwNjE5OVoiLCJTZXEiOjQsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo1NjExNzI3NywiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJueHB3aWZpXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9cIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiXFxuRnVsbCBvdXRwdXQgaXMgdG9vIGxvbmcsIHNob3dpbmcgNTAwIG91dCBvZiAxNTE3MiBsaW5lcy5cXG5Vc2UgbW9yZSBwcmVjaXNlIGV4cHJlc3Npb24gaWYgcG9zc2libGUuXFxuXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL0tjb25maWc9MTM9aWYgV0xBTl9WRU5ET1JfTlhQXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL0tjb25maWctMTQtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL0tjb25maWc6MTU6c291cmNlIFxcXCJkcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS9LY29uZmlnXFxcIlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9LY29uZmlnLTE2LVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL01ha2VmaWxlLTItXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL01ha2VmaWxlOjM6b2JqLSQoQ09ORklHX05YUFdJRkkpXFx0Kz0gbnhwd2lmaS9cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYWMuYy0yLS8qXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFhYy5jOjM6ICogbnhwd2lmaSA4MDIuMTFhYyBoZWxwZXJzXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFhYy5jLTQtICogQ29weXJpZ2h0IDIwMTEtMjAyNCBOWFBcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYWMuYz0zNj1zdGF0aWMgdTE2XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFhYy5jOjM3Om54cHdpZmlfY29udmVydF9tY3NtYXBfdG9fbWF4cmF0ZShzdHJ1Y3Qgbnhwd2lmaV9wcml2YXRlICpwcml2LFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYWMuYy0zOC1cXHRcXHRcXHRcXHQgIHUxNiBiYW5kcywgdTE2IG1jc19tYXApXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWFjLmMtNDItXFx0dTMyIHVzcl92aHRfY2FwX2luZm8gPSAwO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYWMuYzo0MzpcXHRzdHJ1Y3Qgbnhwd2lmaV9hZGFwdGVyICphZGFwdGVyID0gcHJpdi1cXHUwMDNlYWRhcHRlcjtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWFjLmMtNDQtXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWFjLmM9Nzk9c3RhdGljIHZvaWRcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWFjLmM6ODA6bnhwd2lmaV9maWxsX3ZodF9jYXBfaW5mbyhzdHJ1Y3Qgbnhwd2lmaV9wcml2YXRlICpwcml2LFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYWMuYy04MS1cXHRcXHRcXHQgIHN0cnVjdCBpZWVlODAyMTFfdmh0X2NhcCAqdmh0X2NhcCwgdTE2IGJhbmRzKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYWMuYy04Mi17XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFhYy5jOjgzOlxcdHN0cnVjdCBueHB3aWZpX2FkYXB0ZXIgKmFkYXB0ZXIgPSBwcml2LVxcdTAwM2VhZGFwdGVyO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYWMuYy04NC1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYWMuYz05Mz12b2lkXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFhYy5jOjk0Om54cHdpZmlfZmlsbF92aHRfY2FwX3RsdihzdHJ1Y3Qgbnhwd2lmaV9wcml2YXRlICpwcml2LFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYWMuYy05NS1cXHRcXHRcXHQgc3RydWN0IGllZWU4MDIxMV92aHRfY2FwICp2aHRfY2FwLCB1MTYgYmFuZHMpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFhYy5jLTk2LXtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWFjLmM6OTc6XFx0c3RydWN0IG54cHdpZmlfYWRhcHRlciAqYWRhcHRlciA9IHByaXYtXFx1MDAzZWFkYXB0ZXI7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFhYy5jLTk4LVxcdHUxNiBtY3NfbWFwX3VzZXIsIG1jc19tYXBfcmVzcCwgbWNzX21hcF9yZXN1bHQ7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWFjLmMtMTAxLVxcdC8qIEZpbGwgVkhUIGNhcGFiaWxpdHkgaW5mby4gKi9cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWFjLmM6MTAyOlxcdG54cHdpZmlfZmlsbF92aHRfY2FwX2luZm8ocHJpdiwgdmh0X2NhcCwgYmFuZHMpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYWMuYy0xMDMtXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWFjLmMtMTIzLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYWMuYzoxMjQ6XFx0dG1wID0gbnhwd2lmaV9jb252ZXJ0X21jc21hcF90b19tYXhyYXRlKHByaXYsIGJhbmRzLCBtY3NfbWFwX3Jlc3VsdCk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFhYy5jLTEyNS1cXHR2aHRfY2FwLVxcdTAwM2VzdXBwX21jcy5yeF9oaWdoZXN0ID0gY3B1X3RvX2xlMTYodG1wKTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYWMuYy0xNDUtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFhYy5jOjE0NjpcXHR0bXAgPSBueHB3aWZpX2NvbnZlcnRfbWNzbWFwX3RvX21heHJhdGUocHJpdiwgYmFuZHMsIG1jc19tYXBfcmVzdWx0KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWFjLmMtMTQ3LVxcdHZodF9jYXAtXFx1MDAzZXN1cHBfbWNzLnR4X2hpZ2hlc3QgPSBjcHVfdG9fbGUxNih0bXApO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFhYy5jLTE0OS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWFjLmM6MTUwOmludCBueHB3aWZpX2NtZF9hcHBlbmRfMTFhY190bHYoc3RydWN0IG54cHdpZmlfcHJpdmF0ZSAqcHJpdixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWFjLmM6MTUxOlxcdFxcdFxcdFxcdHN0cnVjdCBueHB3aWZpX2Jzc2Rlc2NyaXB0b3IgKmJzc19kZXNjLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYWMuYy0xNTItXFx0XFx0XFx0XFx0dTggKipidWZmZXIpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFhYy5jLTE1My17XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFhYy5jOjE1NDpcXHRzdHJ1Y3Qgbnhwd2lmaV9pZV90eXBlc192aHRjYXAgKnZodF9jYXA7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFhYy5jOjE1NTpcXHRzdHJ1Y3Qgbnhwd2lmaV9pZV90eXBlc19vcGVyX21vZGVfbnRmICpvcGVyX250ZjtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWFjLmMtMTU2LVxcdHN0cnVjdCBpZWVlX3R5cGVzX29wZXJfbW9kZV9udGYgKmllZWVfb3Blcl9udGY7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFhYy5jOjE1NzpcXHRzdHJ1Y3Qgbnhwd2lmaV9pZV90eXBlc192aHRfb3BlciAqdmh0X29wO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYWMuYzoxNTg6XFx0c3RydWN0IG54cHdpZmlfYWRhcHRlciAqYWRhcHRlciA9IHByaXYtXFx1MDAzZWFkYXB0ZXI7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFhYy5jLTE1OS1cXHR1OCBzdXBwX2Nod2Rfc2V0O1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFhYy5jLTE2OS1cXHRpZiAoYnNzX2Rlc2MtXFx1MDAzZWJjbl92aHRfY2FwKSB7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFhYy5jOjE3MDpcXHRcXHR2aHRfY2FwID0gKHN0cnVjdCBueHB3aWZpX2llX3R5cGVzX3ZodGNhcCAqKSpidWZmZXI7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFhYy5jLTE3MS1cXHRcXHRtZW1zZXQodmh0X2NhcCwgMCwgc2l6ZW9mKCp2aHRfY2FwKSk7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWFjLmMtMTc0LVxcdFxcdFxcdGNwdV90b19sZTE2KHNpemVvZihzdHJ1Y3QgaWVlZTgwMjExX3ZodF9jYXApKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWFjLmM6MTc1OlxcdFxcdG1lbWNweSgodTggKil2aHRfY2FwICsgc2l6ZW9mKHN0cnVjdCBueHB3aWZpX2llX3R5cGVzX2hlYWRlciksXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFhYy5jLTE3Ni1cXHRcXHQgICAgICAgKHU4ICopYnNzX2Rlc2MtXFx1MDAzZWJjbl92aHRfY2FwLFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFhYy5jLTE3OC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWFjLmM6MTc5OlxcdFxcdG54cHdpZmlfZmlsbF92aHRfY2FwX3Rsdihwcml2LCBcXHUwMDI2dmh0X2NhcC1cXHUwMDNldmh0X2NhcCxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWFjLmMtMTgwLVxcdFxcdFxcdFxcdFxcdCBic3NfZGVzYy1cXHUwMDNlYnNzX2JhbmQpO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFhYy5jLTE4Ny1cXHRcXHRpZiAocHJpdi1cXHUwMDNlYnNzX21vZGUgPT0gTkw4MDIxMV9JRlRZUEVfU1RBVElPTikge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYWMuYzoxODg6XFx0XFx0XFx0dmh0X29wID0gKHN0cnVjdCBueHB3aWZpX2llX3R5cGVzX3ZodF9vcGVyICopKmJ1ZmZlcjtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWFjLmMtMTg5LVxcdFxcdFxcdG1lbXNldCh2aHRfb3AsIDAsIHNpemVvZigqdmh0X29wKSk7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWFjLmMtMTkyLVxcdFxcdFxcdHZodF9vcC1cXHUwMDNlaGVhZGVyLmxlbiAgPSBjcHVfdG9fbGUxNihzaXplb2YoKnZodF9vcCkgLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYWMuYzoxOTM6XFx0XFx0XFx0XFx0c2l6ZW9mKHN0cnVjdCBueHB3aWZpX2llX3R5cGVzX2hlYWRlcikpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYWMuYy0xOTQtXFx0XFx0XFx0bWVtY3B5KCh1OCAqKXZodF9vcCArXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFhYy5jOjE5NTpcXHRcXHRcXHRcXHRzaXplb2Yoc3RydWN0IG54cHdpZmlfaWVfdHlwZXNfaGVhZGVyKSxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWFjLmMtMTk2LVxcdFxcdFxcdCAgICAgICAodTggKilic3NfZGVzYy1cXHUwMDNlYmNuX3ZodF9vcGVyLFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFhYy5jLTI0NC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWFjLmM6MjQ1OmludCBueHB3aWZpX2NtZF8xMWFjX2NmZyhzdHJ1Y3Qgbnhwd2lmaV9wcml2YXRlICpwcml2LFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYWMuYy0yNDYtXFx0XFx0XFx0IHN0cnVjdCBob3N0X2NtZF9kc19jb21tYW5kICpjbWQsIHUxNiBjbWRfYWN0aW9uLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYWMuYzoyNDc6XFx0XFx0XFx0IHN0cnVjdCBueHB3aWZpXzExYWNfdmh0X2NmZyAqY2ZnKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYWMuYy0yNDgte1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFhYy5jLTI2NC0vKiBJbml0aWFsaXplIEJsb2NrQWNrIHBhcmFtZXRlcnMgZm9yIDExYWMuICovXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFhYy5jOjI2NTp2b2lkIG54cHdpZmlfc2V0XzExYWNfYmFfcGFyYW1zKHN0cnVjdCBueHB3aWZpX3ByaXZhdGUgKnByaXYpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFhYy5jLTI2Ni17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWFjLmgtMi0vKlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYWMuaDozOiAqIG54cHdpZmk6IDgwMi4xMWFjIChWSFQpIGRlZmluaXRpb25zXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFhYy5oLTQtICpcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYWMuaD0xND1lbnVtIHZodF9jZmdfbWlzY19jb25maWcge1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFhYy5oLTI0LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYWMuaDoyNTppbnQgbnhwd2lmaV9jbWRfYXBwZW5kXzExYWNfdGx2KHN0cnVjdCBueHB3aWZpX3ByaXZhdGUgKnByaXYsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFhYy5oOjI2OlxcdFxcdFxcdFxcdHN0cnVjdCBueHB3aWZpX2Jzc2Rlc2NyaXB0b3IgKmJzc19kZXNjLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYWMuaC0yNy1cXHRcXHRcXHRcXHR1OCAqKmJ1ZmZlcik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFhYy5oOjI4OmludCBueHB3aWZpX2NtZF8xMWFjX2NmZyhzdHJ1Y3Qgbnhwd2lmaV9wcml2YXRlICpwcml2LFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYWMuaC0yOS1cXHRcXHRcXHQgc3RydWN0IGhvc3RfY21kX2RzX2NvbW1hbmQgKmNtZCwgdTE2IGNtZF9hY3Rpb24sXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFhYy5oOjMwOlxcdFxcdFxcdCBzdHJ1Y3Qgbnhwd2lmaV8xMWFjX3ZodF9jZmcgKmNmZyk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFhYy5oOjMxOnZvaWQgbnhwd2lmaV9maWxsX3ZodF9jYXBfdGx2KHN0cnVjdCBueHB3aWZpX3ByaXZhdGUgKnByaXYsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFhYy5oLTMyLVxcdFxcdFxcdCAgICAgIHN0cnVjdCBpZWVlODAyMTFfdmh0X2NhcCAqdmh0X2NhcCwgdTE2IGJhbmRzKTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYy0xLS8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wLW9ubHlcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmM6MjovKiBueHB3aWZpOiA4MDIuMTFheCAoSEUpIHN1cHBvcnRcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmMtMy0gKiBDb3B5cmlnaHQgKEMpIDIwMTEtMjAyNCBOWFBcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYy0xMC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmM6MTE6dm9pZCBueHB3aWZpX3VwZGF0ZV8xMWF4X2NhcChzdHJ1Y3Qgbnhwd2lmaV9hZGFwdGVyICphZGFwdGVyLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYy0xMi1cXHRcXHRcXHQgICAgIHN0cnVjdCBod19zcGVjX2V4dGVuc2lvbiAqaHdfaGVfY2FwKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYy0xMy17XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jOjE0OlxcdHN0cnVjdCBueHB3aWZpX3ByaXZhdGUgKnByaXY7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jOjE1OlxcdHN0cnVjdCBueHB3aWZpX2llX3R5cGVzX2hlX2NhcCAqaGVfY2FwID0gTlVMTDtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmM6MTY6XFx0c3RydWN0IG54cHdpZmlfaWVfdHlwZXNfaGVfY2FwICp1c2VyX2hlX2NhcCA9IE5VTEw7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jOjE3OlxcdHU4IGhlYWRlcl9sZW4gPSBzaXplb2Yoc3RydWN0IG54cHdpZmlfaWVfdHlwZXNfaGVhZGVyKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmMtMTgtXFx0dTE2IGRhdGFfbGVuID0gbGUxNl90b19jcHUoaHdfaGVfY2FwLVxcdTAwM2VoZWFkZXIubGVuKTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYy0yMi1cXHRpZiAoKGRhdGFfbGVuICsgaGVhZGVyX2xlbikgXFx1MDAzZSBzaXplb2YoYWRhcHRlci1cXHUwMDNlaHdfaGVfY2FwKSkge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYzoyMzpcXHRcXHRueHB3aWZpX2RiZyhhZGFwdGVyLCBFUlJPUixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmMtMjQtXFx0XFx0XFx0ICAgIFxcXCJod19oZV9jYXAgdG9vIGJpZywgbGVuPSVkXFxcXG5cXFwiLFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jLTI4LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYzoyOTpcXHRoZV9jYXAgPSAoc3RydWN0IG54cHdpZmlfaWVfdHlwZXNfaGVfY2FwICopaHdfaGVfY2FwO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYy0zMC1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYy0zNy1cXHRcXHRoZV9jYXBfMmcgPSB0cnVlO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYzozODpcXHRcXHRueHB3aWZpX2RiZ19kdW1wKGFkYXB0ZXIsIENNRF9ELCBcXFwiMi40RyBIRSBjYXBhYmlsaXR5IGVsZW1lbnQgXFxcIixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmMtMzktXFx0XFx0XFx0XFx0IGFkYXB0ZXItXFx1MDAzZWh3XzJnX2hlX2NhcCxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYy00NS1cXHRcXHRhZGFwdGVyLVxcdTAwM2Vmd19iYW5kcyB8PSBCQU5EX0FBWDtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmM6NDY6XFx0XFx0bnhwd2lmaV9kYmdfZHVtcChhZGFwdGVyLCBDTURfRCwgXFxcIjVHIEhFIGNhcGFiaWxpdHkgZWxlbWVudCBcXFwiLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYy00Ny1cXHRcXHRcXHRcXHQgYWRhcHRlci1cXHUwMDNlaHdfaGVfY2FwLFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jLTU3LVxcdFxcdFxcdCAgICAgICBzaXplb2YoYWRhcHRlci1cXHUwMDNlaHdfMmdfaGVfY2FwKSk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jOjU4OlxcdFxcdFxcdHVzZXJfaGVfY2FwID0gKHN0cnVjdCBueHB3aWZpX2llX3R5cGVzX2hlX2NhcCAqKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYy01OS1cXHRcXHRcXHRcXHRwcml2LVxcdTAwM2V1c2VyXzJnX2hlX2NhcDtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYy02My1cXHRcXHRcXHQgICAgICAgc2l6ZW9mKGFkYXB0ZXItXFx1MDAzZWh3X2hlX2NhcCkpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYzo2NDpcXHRcXHRcXHR1c2VyX2hlX2NhcCA9IChzdHJ1Y3Qgbnhwd2lmaV9pZV90eXBlc19oZV9jYXAgKilcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmMtNjUtXFx0XFx0XFx0XFx0cHJpdi1cXHUwMDNldXNlcl9oZV9jYXA7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmMtNzgtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jOjc5OmJvb2wgbnhwd2lmaV8xMWF4X2JhbmRjb25maWdfYWxsb3dlZChzdHJ1Y3Qgbnhwd2lmaV9wcml2YXRlICpwcml2LFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYzo4MDpcXHRcXHRcXHRcXHQgICAgIHN0cnVjdCBueHB3aWZpX2Jzc2Rlc2NyaXB0b3IgKmJzc19kZXNjKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYy04MS17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmMtOTQtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jOjk1OmludCBueHB3aWZpX2ZpbGxfaGVfY2FwX3RsdihzdHJ1Y3Qgbnhwd2lmaV9wcml2YXRlICpwcml2LFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYzo5NjpcXHRcXHRcXHQgICAgc3RydWN0IG54cHdpZmlfaWVfdHlwZXNfaGVfY2FwICpoZV9jYXAsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jLTk3LVxcdFxcdFxcdCAgICB1MTYgYmFuZHMpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jLTk4LXtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmM6OTk6XFx0c3RydWN0IG54cHdpZmlfYWRhcHRlciAqYWRhcHRlciA9IHByaXYtXFx1MDAzZWFkYXB0ZXI7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jOjEwMDpcXHRzdHJ1Y3Qgbnhwd2lmaV9pZV90eXBlc19oZV9jYXAgKmh3X2hlX2NhcCA9IE5VTEw7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jLTEwMS1cXHR1MTYgcnhfbnNzLCB0eF9uc3M7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmMtMTA4LVxcdFxcdG1lbWNweShoZV9jYXAsIHByaXYtXFx1MDAzZXVzZXJfaGVfY2FwLCBwcml2LVxcdTAwM2V1c2VyX2hlX2NhcF9sZW4pO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYzoxMDk6XFx0XFx0aHdfaGVfY2FwID0gKHN0cnVjdCBueHB3aWZpX2llX3R5cGVzX2hlX2NhcCAqKWFkYXB0ZXItXFx1MDAzZWh3X2hlX2NhcDtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmMtMTEwLVxcdFxcdHJldF9sZW4gPSBwcml2LVxcdTAwM2V1c2VyX2hlX2NhcF9sZW47XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmMtMTEyLVxcdFxcdG1lbWNweShoZV9jYXAsIHByaXYtXFx1MDAzZXVzZXJfMmdfaGVfY2FwLCBwcml2LVxcdTAwM2V1c2VyXzJnX2hlX2NhcF9sZW4pO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYzoxMTM6XFx0XFx0aHdfaGVfY2FwID0gKHN0cnVjdCBueHB3aWZpX2llX3R5cGVzX2hlX2NhcCAqKWFkYXB0ZXItXFx1MDAzZWh3XzJnX2hlX2NhcDtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmMtMTE0LVxcdFxcdHJldF9sZW4gPSBwcml2LVxcdTAwM2V1c2VyXzJnX2hlX2NhcF9sZW47XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmMtMTI1LVxcdGZvciAobnNzID0gMTsgbnNzIFxcdTAwM2M9IDg7IG5zcysrKSB7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jOjEyNjpcXHRcXHRjZmdfdmFsdWUgPSBueHB3aWZpX2dldF9oZV9uc3NfbWNzKGhlX2NhcC1cXHUwMDNlcnhfbWNzXzgwLCBuc3MpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYzoxMjc6XFx0XFx0aHdfdmFsdWUgPSBueHB3aWZpX2dldF9oZV9uc3NfbWNzKGh3X2hlX2NhcC1cXHUwMDNlcnhfbWNzXzgwLCBuc3MpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYy0xMjgtXFx0XFx0aWYgKHJ4X25zcyAhPSAwIFxcdTAwMjZcXHUwMDI2IG5zcyBcXHUwMDNlIHJ4X25zcylcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYy0xMzAtXFx0XFx0aWYgKGh3X3ZhbHVlID09IE5PX05TU19TVVBQT1JUIHx8IGNmZ192YWx1ZSA9PSBOT19OU1NfU1VQUE9SVClcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmM6MTMxOlxcdFxcdFxcdG54cHdpZmlfc2V0X2hlX25zc19tY3MoXFx1MDAyNmhlX2NhcC1cXHUwMDNlcnhfbWNzXzgwLCBuc3MsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jLTEzMi1cXHRcXHRcXHRcXHRcXHQgICAgICAgTk9fTlNTX1NVUFBPUlQpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYy0xMzMtXFx0XFx0ZWxzZVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYzoxMzQ6XFx0XFx0XFx0bnhwd2lmaV9zZXRfaGVfbnNzX21jcyhcXHUwMDI2aGVfY2FwLVxcdTAwM2VyeF9tY3NfODAsIG5zcyxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmMtMTM1LVxcdFxcdFxcdFxcdFxcdCAgICAgICBtaW4oY2ZnX3ZhbHVlLCBod192YWx1ZSkpO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jLTEzOC1cXHRmb3IgKG5zcyA9IDE7IG5zcyBcXHUwMDNjPSA4OyBuc3MrKykge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYzoxMzk6XFx0XFx0Y2ZnX3ZhbHVlID0gbnhwd2lmaV9nZXRfaGVfbnNzX21jcyhoZV9jYXAtXFx1MDAzZXR4X21jc184MCwgbnNzKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmM6MTQwOlxcdFxcdGh3X3ZhbHVlID0gbnhwd2lmaV9nZXRfaGVfbnNzX21jcyhod19oZV9jYXAtXFx1MDAzZXR4X21jc184MCwgbnNzKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmMtMTQxLVxcdFxcdGlmICh0eF9uc3MgIT0gMCBcXHUwMDI2XFx1MDAyNiBuc3MgXFx1MDAzZSB0eF9uc3MpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmMtMTQzLVxcdFxcdGlmIChod192YWx1ZSA9PSBOT19OU1NfU1VQUE9SVCB8fCBjZmdfdmFsdWUgPT0gTk9fTlNTX1NVUFBPUlQpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jOjE0NDpcXHRcXHRcXHRueHB3aWZpX3NldF9oZV9uc3NfbWNzKFxcdTAwMjZoZV9jYXAtXFx1MDAzZXR4X21jc184MCwgbnNzLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYy0xNDUtXFx0XFx0XFx0XFx0XFx0ICAgICAgIE5PX05TU19TVVBQT1JUKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmMtMTQ2LVxcdFxcdGVsc2VcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmM6MTQ3OlxcdFxcdFxcdG54cHdpZmlfc2V0X2hlX25zc19tY3MoXFx1MDAyNmhlX2NhcC1cXHUwMDNldHhfbWNzXzgwLCBuc3MsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jLTE0OC1cXHRcXHRcXHRcXHRcXHQgICAgICAgbWluKGNmZ192YWx1ZSwgaHdfdmFsdWUpKTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYy0xNTMtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jOjE1NDppbnQgbnhwd2lmaV9jbWRfYXBwZW5kXzExYXhfdGx2KHN0cnVjdCBueHB3aWZpX3ByaXZhdGUgKnByaXYsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jOjE1NTpcXHRcXHRcXHRcXHRzdHJ1Y3Qgbnhwd2lmaV9ic3NkZXNjcmlwdG9yICpic3NfZGVzYyxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmMtMTU2LVxcdFxcdFxcdFxcdHU4ICoqYnVmZmVyKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYy0xNTcte1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYzoxNTg6XFx0c3RydWN0IG54cHdpZmlfaWVfdHlwZXNfaGVfY2FwICpoZV9jYXAgPSBOVUxMO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYy0xNTktXFx0aW50IHJldF9sZW47XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmMtMTYzLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYzoxNjQ6XFx0aGVfY2FwID0gKHN0cnVjdCBueHB3aWZpX2llX3R5cGVzX2hlX2NhcCAqKSpidWZmZXI7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jOjE2NTpcXHRyZXRfbGVuID0gbnhwd2lmaV9maWxsX2hlX2NhcF90bHYocHJpdiwgaGVfY2FwLCBic3NfZGVzYy1cXHUwMDNlYnNzX2JhbmQpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYy0xNjYtXFx0KmJ1ZmZlciArPSByZXRfbGVuO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jLTE3MC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmM6MTcxOmludCBueHB3aWZpX2NtZF8xMWF4X2NmZyhzdHJ1Y3Qgbnhwd2lmaV9wcml2YXRlICpwcml2LFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYy0xNzItXFx0XFx0XFx0IHN0cnVjdCBob3N0X2NtZF9kc19jb21tYW5kICpjbWQsIHUxNiBjbWRfYWN0aW9uLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYzoxNzM6XFx0XFx0XFx0IHN0cnVjdCBueHB3aWZpXzExYXhfaGVfY2ZnICpheF9jZmcpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jLTE3NC17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmMtMTc2LVxcdHUxNiBjbWRfc2l6ZTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmM6MTc3OlxcdHN0cnVjdCBueHB3aWZpX2llX3R5cGVzX2hlYWRlciAqaGVhZGVyO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYy0xNzgtXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmMtMTg2LVxcdCAgICBheF9jZmctXFx1MDAzZWhlX2NhcF9jZmcuZXh0X2lkID09IFdMQU5fRUlEX0VYVF9IRV9DQVBBQklMSVRZKSB7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jOjE4NzpcXHRcXHRoZWFkZXIgPSAoc3RydWN0IG54cHdpZmlfaWVfdHlwZXNfaGVhZGVyICopaGVfY2ZnLVxcdTAwM2V0bHY7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jLTE4OC1cXHRcXHRoZWFkZXItXFx1MDAzZXR5cGUgPSBjcHVfdG9fbGUxNihheF9jZmctXFx1MDAzZWhlX2NhcF9jZmcuaWQpO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jLTIwMC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmM6MjAxOmludCBueHB3aWZpX3JldF8xMWF4X2NmZyhzdHJ1Y3Qgbnhwd2lmaV9wcml2YXRlICpwcml2LFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYy0yMDItXFx0XFx0XFx0IHN0cnVjdCBob3N0X2NtZF9kc19jb21tYW5kICpyZXNwLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYzoyMDM6XFx0XFx0XFx0IHN0cnVjdCBueHB3aWZpXzExYXhfaGVfY2ZnICpheF9jZmcpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jLTIwNC17XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jLTIwNS1cXHRzdHJ1Y3QgaG9zdF9jbWRfMTFheF9jZmcgKmhlX2NmZyA9IFxcdTAwMjZyZXNwLVxcdTAwM2VwYXJhbXMuYXhfY2ZnO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYzoyMDY6XFx0c3RydWN0IG54cHdpZmlfaWVfdHlwZXNfaGVhZGVyICpoZWFkZXI7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jLTIwNy1cXHR1MTYgbGVmdF9sZW4sIHRsdl90eXBlLCB0bHZfbGVuO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYy0yMDgtXFx0dTggZXh0X2lkO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYzoyMDk6XFx0c3RydWN0IG54cHdpZmlfMTFheF9oZV9jYXBfY2ZnICpoZV9jYXAgPSBcXHUwMDI2YXhfY2ZnLVxcdTAwM2VoZV9jYXBfY2ZnO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYy0yMTAtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jLTIxMS1cXHRsZWZ0X2xlbiA9IGxlMTZfdG9fY3B1KHJlc3AtXFx1MDAzZXNpemUpIC0gc2l6ZW9mKCpoZV9jZmcpIC0gU19EU19HRU47XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jOjIxMjpcXHRoZWFkZXIgPSAoc3RydWN0IG54cHdpZmlfaWVfdHlwZXNfaGVhZGVyICopaGVfY2ZnLVxcdTAwM2V0bHY7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jLTIxMy1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYy0yNDItXFx0XFx0bGVmdF9sZW4gLT0gKHNpemVvZigqaGVhZGVyKSArIHRsdl9sZW4pO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYzoyNDM6XFx0XFx0aGVhZGVyID0gKHN0cnVjdCBueHB3aWZpX2llX3R5cGVzX2hlYWRlciAqKSgodTggKiloZWFkZXIgK1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYy0yNDQtXFx0XFx0XFx0XFx0XFx0XFx0XFx0ICAgIHNpemVvZigqaGVhZGVyKSArXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmMtMjUwLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYzoyNTE6aW50IG54cHdpZmlfY21kXzExYXhfY21kKHN0cnVjdCBueHB3aWZpX3ByaXZhdGUgKnByaXYsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jLTI1Mi1cXHRcXHRcXHQgc3RydWN0IGhvc3RfY21kX2RzX2NvbW1hbmQgKmNtZCwgdTE2IGNtZF9hY3Rpb24sXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jOjI1MzpcXHRcXHRcXHQgc3RydWN0IG54cHdpZmlfMTFheF9jbWRfY2ZnICpheF9jbWQpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jLTI1NC17XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jOjI1NTpcXHRzdHJ1Y3Qgbnhwd2lmaV9hZGFwdGVyICphZGFwdGVyID0gcHJpdi1cXHUwMDNlYWRhcHRlcjtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmMtMjU2LVxcdHN0cnVjdCBob3N0X2NtZF8xMWF4X2NtZCAqaGVfY21kID0gXFx1MDAyNmNtZC1cXHUwMDNlcGFyYW1zLmF4X2NtZDtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmMtMjU3LVxcdHUxNiBjbWRfc2l6ZTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmM6MjU4OlxcdHN0cnVjdCBueHB3aWZpXzExYXhfc3JfY21kICpzcl9jbWQ7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jOjI1OTpcXHRzdHJ1Y3Qgbnhwd2lmaV9pZV90eXBlc19kYXRhICp0bHY7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jOjI2MDpcXHRzdHJ1Y3Qgbnhwd2lmaV8xMWF4X2JlYW1fY21kICpiZWFtX2NtZDtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmM6MjYxOlxcdHN0cnVjdCBueHB3aWZpXzExYXhfaHRjX2NtZCAqaHRjX2NtZDtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmM6MjYyOlxcdHN0cnVjdCBueHB3aWZpXzExYXhfdHhvbWlfY21kICp0eG1vaV9jbWQ7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jOjI2MzpcXHRzdHJ1Y3Qgbnhwd2lmaV8xMWF4X3RvbHRpbWVfY21kICp0b2x0aW1lX2NtZDtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmM6MjY0OlxcdHN0cnVjdCBueHB3aWZpXzExYXhfdHhvcF9jbWQgKnR4b3BfY21kO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYzoyNjU6XFx0c3RydWN0IG54cHdpZmlfMTFheF9zZXRfYnNycF9jbWQgKnNldF9ic3JwX2NtZDtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmM6MjY2OlxcdHN0cnVjdCBueHB3aWZpXzExYXhfbGxkZV9jbWQgKmxsZGVfY21kO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYy0yNjctXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmMtMjc1LVxcdGNhc2UgTlhQV0lGSV8xMUFYQ01EX1NSX1NVQklEOlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYzoyNzY6XFx0XFx0c3JfY21kID0gKHN0cnVjdCBueHB3aWZpXzExYXhfc3JfY21kICopXFx1MDAyNmF4X2NtZC1cXHUwMDNlcGFyYW07XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jLTI3Ny1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmM6Mjc4OlxcdFxcdHRsdiA9IChzdHJ1Y3Qgbnhwd2lmaV9pZV90eXBlc19kYXRhICopaGVfY21kLVxcdTAwM2V2YWw7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jLTI3OS1cXHRcXHR0bHYtXFx1MDAzZWhlYWRlci50eXBlID0gY3B1X3RvX2xlMTYoc3JfY21kLVxcdTAwM2V0eXBlKTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYy0yODUtXFx0Y2FzZSBOWFBXSUZJXzExQVhDTURfQkVBTV9TVUJJRDpcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmM6Mjg2OlxcdFxcdGJlYW1fY21kID0gKHN0cnVjdCBueHB3aWZpXzExYXhfYmVhbV9jbWQgKilcXHUwMDI2YXhfY21kLVxcdTAwM2VwYXJhbTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmMtMjg3LVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jLTI5MS1cXHRjYXNlIE5YUFdJRklfMTFBWENNRF9IVENfU1VCSUQ6XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jOjI5MjpcXHRcXHRodGNfY21kID0gKHN0cnVjdCBueHB3aWZpXzExYXhfaHRjX2NtZCAqKVxcdTAwMjZheF9jbWQtXFx1MDAzZXBhcmFtO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYy0yOTMtXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmMtMjk3LVxcdGNhc2UgTlhQV0lGSV8xMUFYQ01EX1RYT01JX1NVQklEOlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYzoyOTg6XFx0XFx0dHhtb2lfY21kID1cXHQoc3RydWN0IG54cHdpZmlfMTFheF90eG9taV9jbWQgKilcXHUwMDI2YXhfY21kLVxcdTAwM2VwYXJhbTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmMtMjk5LVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jLTMwMy1cXHRjYXNlIE5YUFdJRklfMTFBWENNRF9PQlNTX1RPTFRJTUVfU1VCSUQ6XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jOjMwNDpcXHRcXHR0b2x0aW1lX2NtZCA9IChzdHJ1Y3Qgbnhwd2lmaV8xMWF4X3RvbHRpbWVfY21kICopXFx1MDAyNmF4X2NtZC1cXHUwMDNlcGFyYW07XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jLTMwNS1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYy0zMTAtXFx0Y2FzZSBOWFBXSUZJXzExQVhDTURfVFhPUFJUU19TVUJJRDpcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmM6MzExOlxcdFxcdHR4b3BfY21kID0gKHN0cnVjdCBueHB3aWZpXzExYXhfdHhvcF9jbWQgKilcXHUwMDI2YXhfY21kLVxcdTAwM2VwYXJhbTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmMtMzEyLVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jLTMxNy1cXHRjYXNlIE5YUFdJRklfMTFBWENNRF9TRVRfQlNSUF9TVUJJRDpcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmM6MzE4OlxcdFxcdHNldF9ic3JwX2NtZCA9IChzdHJ1Y3Qgbnhwd2lmaV8xMWF4X3NldF9ic3JwX2NtZCAqKVxcdTAwMjZheF9jbWQtXFx1MDAzZXBhcmFtO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYy0zMTktXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmMtMzIzLVxcdGNhc2UgTlhQV0lGSV8xMUFYQ01EX0xMREVfU1VCSUQ6XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jOjMyNDpcXHRcXHRsbGRlX2NtZCA9IChzdHJ1Y3Qgbnhwd2lmaV8xMWF4X2xsZGVfY21kICopXFx1MDAyNmF4X2NtZC1cXHUwMDNlcGFyYW07XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jLTMyNS1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYy0zMjktXFx0ZGVmYXVsdDpcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmM6MzMwOlxcdFxcdG54cHdpZmlfZGJnKGFkYXB0ZXIsIEVSUk9SLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYy0zMzEtXFx0XFx0XFx0ICAgIFxcXCIlczogVW5rbm93biBzdWIgY29tbWFuZDogJWRcXFxcblxcXCIsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmMtMzQwLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYzozNDE6aW50IG54cHdpZmlfcmV0XzExYXhfY21kKHN0cnVjdCBueHB3aWZpX3ByaXZhdGUgKnByaXYsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jLTM0Mi1cXHRcXHRcXHQgc3RydWN0IGhvc3RfY21kX2RzX2NvbW1hbmQgKnJlc3AsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jOjM0MzpcXHRcXHRcXHQgc3RydWN0IG54cHdpZmlfMTFheF9jbWRfY2ZnICpheF9jbWQpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jLTM0NC17XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jOjM0NTpcXHRzdHJ1Y3Qgbnhwd2lmaV9hZGFwdGVyICphZGFwdGVyID0gcHJpdi1cXHUwMDNlYWRhcHRlcjtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmMtMzQ2LVxcdHN0cnVjdCBob3N0X2NtZF8xMWF4X2NtZCAqaGVfY21kID0gXFx1MDAyNnJlc3AtXFx1MDAzZXBhcmFtcy5heF9jbWQ7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jOjM0NzpcXHRzdHJ1Y3Qgbnhwd2lmaV9pZV90eXBlc19kYXRhICp0bHY7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jLTM0OC1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYy0zNTItXFx0Y2FzZSBOWFBXSUZJXzExQVhDTURfU1JfU1VCSUQ6XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jOjM1MzpcXHRcXHR0bHYgPSAoc3RydWN0IG54cHdpZmlfaWVfdHlwZXNfZGF0YSAqKWhlX2NtZC1cXHUwMDNldmFsO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYy0zNTQtXFx0XFx0bWVtY3B5KGF4X2NtZC1cXHUwMDNlcGFyYW0uc3JfY2ZnLnBhcmFtLm9ic3NfcGRfb2Zmc2V0Lm9mZnNldCxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYy0zODMtXFx0ZGVmYXVsdDpcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmM6Mzg0OlxcdFxcdG54cHdpZmlfZGJnKGFkYXB0ZXIsIEVSUk9SLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYy0zODUtXFx0XFx0XFx0ICAgIFxcXCIlczogVW5rbm93biBzdWIgY29tbWFuZDogJWRcXFxcblxcXCIsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmMtMzkyLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYzozOTM6c3RhdGljIHU4IG54cHdpZmlfaXNfYXBfMTFheF90d3Rfc3VwcG9ydGVkKHN0cnVjdCBueHB3aWZpX2Jzc2Rlc2NyaXB0b3IgKmJzc19kZXNjKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYy0zOTQte1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jLTQwOS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmM6NDEwOmJvb2wgbnhwd2lmaV9pc18xMWF4X3R3dF9zdXBwb3J0ZWQoc3RydWN0IG54cHdpZmlfcHJpdmF0ZSAqcHJpdixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmM6NDExOlxcdFxcdFxcdFxcdCAgIHN0cnVjdCBueHB3aWZpX2Jzc2Rlc2NyaXB0b3IgKmJzc19kZXNjKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYy00MTIte1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYzo0MTM6XFx0c3RydWN0IG54cHdpZmlfaWVfdHlwZXNfaGVfY2FwICp1c2VyX2hlX2NhcDtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmM6NDE0OlxcdHN0cnVjdCBueHB3aWZpX2llX3R5cGVzX2hlX2NhcCAqaHdfaGVfY2FwO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYy00MTUtXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmMtNDE4LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYzo0MTk6XFx0aWYgKCFueHB3aWZpX2lzX2FwXzExYXhfdHd0X3N1cHBvcnRlZChic3NfZGVzYykpIHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmM6NDIwOlxcdFxcdG54cHdpZmlfZGJnKHByaXYtXFx1MDAzZWFkYXB0ZXIsIE1TRyxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmMtNDIxLVxcdFxcdFxcdCAgICBcXFwiQVAgZG9uJ3Qgc3VwcG9ydCB0d3QgZmVhdHVyZVxcXFxuXFxcIik7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmMtNDI1LVxcdGlmIChic3NfZGVzYy1cXHUwMDNlYnNzX2JhbmQgXFx1MDAyNiBCQU5EX0EpIHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmM6NDI2OlxcdFxcdGh3X2hlX2NhcCA9IChzdHJ1Y3Qgbnhwd2lmaV9pZV90eXBlc19oZV9jYXAgKilcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmMtNDI3LVxcdFxcdFxcdHByaXYtXFx1MDAzZWFkYXB0ZXItXFx1MDAzZWh3X2hlX2NhcDtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmM6NDI4OlxcdFxcdHVzZXJfaGVfY2FwID0gKHN0cnVjdCBueHB3aWZpX2llX3R5cGVzX2hlX2NhcCAqKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYy00MjktXFx0XFx0XFx0cHJpdi1cXHUwMDNldXNlcl9oZV9jYXA7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jLTQzMC1cXHR9IGVsc2Uge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYzo0MzE6XFx0XFx0aHdfaGVfY2FwID0gKHN0cnVjdCBueHB3aWZpX2llX3R5cGVzX2hlX2NhcCAqKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYy00MzItXFx0XFx0XFx0cHJpdi1cXHUwMDNlYWRhcHRlci1cXHUwMDNlaHdfMmdfaGVfY2FwO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYzo0MzM6XFx0XFx0dXNlcl9oZV9jYXAgPSAoc3RydWN0IG54cHdpZmlfaWVfdHlwZXNfaGVfY2FwICopXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jLTQzNC1cXHRcXHRcXHRwcml2LVxcdTAwM2V1c2VyXzJnX2hlX2NhcDtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYy00MzctXFx0aWYgKCEoaHdfaGVfY2FwLVxcdTAwM2VoZV9tYWNfY2FwWzBdIFxcdTAwMjYgSEVfTUFDX0NBUF9UV1RfUkVRX1NVUFBPUlQpKSB7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jOjQzODpcXHRcXHRueHB3aWZpX2RiZyhwcml2LVxcdTAwM2VhZGFwdGVyLCBNU0csXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jLTQzOS1cXHRcXHRcXHQgICAgXFxcIkZXIGRvbid0IHN1cHBvcnQgVFdUXFxcXG5cXFwiKTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYy00NDMtXFx0aWYgKCEodXNlcl9oZV9jYXAtXFx1MDAzZWhlX21hY19jYXBbMF0gXFx1MDAyNiBIRV9NQUNfQ0FQX1RXVF9SRVFfU1VQUE9SVCkpIHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmM6NDQ0OlxcdFxcdG54cHdpZmlfZGJnKHByaXYtXFx1MDAzZWFkYXB0ZXIsIE1TRyxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmMtNDQ1LVxcdFxcdFxcdCAgICBcXFwiVVNFUiBIRV9NQUNfQ0FQIGRvbid0IHN1cHBvcnQgVFdUXFxcXG5cXFwiKTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYy00NTEtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jOjQ1Mjp1OCBueHB3aWZpX2lzX3N0YV8xMWF4X3R3dF9yZXFfc3VwcG9ydGVkKHN0cnVjdCBueHB3aWZpX3ByaXZhdGUgKnByaXYpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jLTQ1My17XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jOjQ1NDpcXHRzdHJ1Y3Qgbnhwd2lmaV9pZV90eXBlc19oZV9jYXAgKnVzZXJfaGVfY2FwO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYy00NTUtXFx0dTggcmV0ID0gMDtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYy00NTktXFx0XFx0aWYgKHByaXYtXFx1MDAzZWNvbmZpZ19iYW5kcyBcXHUwMDI2IEJBTkRfQUFYKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYzo0NjA6XFx0XFx0XFx0dXNlcl9oZV9jYXAgPSAoc3RydWN0IG54cHdpZmlfaWVfdHlwZXNfaGVfY2FwICopcHJpdi1cXHUwMDNldXNlcl9oZV9jYXA7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jLTQ2MS1cXHRcXHRlbHNlXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jOjQ2MjpcXHRcXHRcXHR1c2VyX2hlX2NhcCA9IChzdHJ1Y3Qgbnhwd2lmaV9pZV90eXBlc19oZV9jYXAgKilwcml2LVxcdTAwM2V1c2VyXzJnX2hlX2NhcDtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmMtNDYzLVxcdFxcdHJldCA9IHVzZXJfaGVfY2FwLVxcdTAwM2VoZV9tYWNfY2FwWzBdIFxcdTAwMjYgSEVfTUFDX0NBUF9UV1RfUkVRX1NVUFBPUlQ7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmMtNDY4LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYzo0Njk6aW50IG54cHdpZmlfY21kX3R3dF9jZmcoc3RydWN0IG54cHdpZmlfcHJpdmF0ZSAqcHJpdixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmMtNDcwLVxcdFxcdFxcdHN0cnVjdCBob3N0X2NtZF9kc19jb21tYW5kICpjbWQsIHUxNiBjbWRfYWN0aW9uLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYzo0NzE6XFx0XFx0XFx0c3RydWN0IG54cHdpZmlfdHd0X2NmZyAqdHd0X2NmZylcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmMtNDcyLXtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmM6NDczOlxcdHN0cnVjdCBueHB3aWZpX2FkYXB0ZXIgKmFkYXB0ZXIgPSBwcml2LVxcdTAwM2VhZGFwdGVyO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYy00NzQtXFx0c3RydWN0IGhvc3RfY21kX3R3dF9jZmcgKnR3dF9jZmdfY21kID0gXFx1MDAyNmNtZC1cXHUwMDNlcGFyYW1zLnR3dF9jZmc7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jOjQ3NTpcXHRzdHJ1Y3Qgbnhwd2lmaV90d3Rfc2V0dXAgKnR3dF9zZXR1cDtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmM6NDc2OlxcdHN0cnVjdCBueHB3aWZpX3R3dF90ZWFyZG93biAqdHd0X3RlYXJkb3duO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYzo0Nzc6XFx0c3RydWN0IG54cHdpZmlfdHd0X3JlcG9ydCAqdHd0X3JlcG9ydDtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmM6NDc4OlxcdHN0cnVjdCBueHB3aWZpX3R3dF9pbmZvcm1hdGlvbiAqdHd0X2luZm9ybWF0aW9uO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYzo0Nzk6XFx0c3RydWN0IG54cHdpZmlfYnR3dF9hcF9jb25maWcgKmJ0d3RfYXBfY29uZmlnO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYy00ODAtXFx0dTggaTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYy00OTAtXFx0Y2FzZSBOWFBXSUZJXzExQVhfVFdUX1NFVFVQX1NVQklEOlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYzo0OTE6XFx0XFx0dHd0X3NldHVwID0gKHN0cnVjdCBueHB3aWZpX3R3dF9zZXR1cCAqKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYy00OTItXFx0XFx0XFx0dHd0X2NmZ19jbWQtXFx1MDAzZXZhbDtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmMtNDkzLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYzo0OTQ6XFx0XFx0bWVtc2V0KHR3dF9zZXR1cCwgMHgwMCwgc2l6ZW9mKHN0cnVjdCBueHB3aWZpX3R3dF9zZXR1cCkpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYy00OTUtXFx0XFx0dHd0X3NldHVwLVxcdTAwM2VpbXBsaWNpdCA9IHR3dF9jZmctXFx1MDAzZXBhcmFtLnR3dF9zZXR1cC5pbXBsaWNpdDtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYy01MDctXFx0XFx0dHd0X3NldHVwLVxcdTAwM2ViY25fbWlzc190aHJlc2hvbGQgPSB0d3RfY2ZnLVxcdTAwM2VwYXJhbS50d3Rfc2V0dXAuYmNuX21pc3NfdGhyZXNob2xkO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYzo1MDg6XFx0XFx0Y21kX3NpemUgKz0gc2l6ZW9mKHN0cnVjdCBueHB3aWZpX3R3dF9zZXR1cCk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jLTUwOS1cXHRcXHRicmVhaztcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmMtNTEwLVxcdGNhc2UgTlhQV0lGSV8xMUFYX1RXVF9URUFSRE9XTl9TVUJJRDpcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmM6NTExOlxcdFxcdHR3dF90ZWFyZG93biA9IChzdHJ1Y3Qgbnhwd2lmaV90d3RfdGVhcmRvd24gKilcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmMtNTEyLVxcdFxcdFxcdHR3dF9jZmdfY21kLVxcdTAwM2V2YWw7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jLTUxMy1cXHRcXHRtZW1zZXQodHd0X3RlYXJkb3duLCAweDAwLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYzo1MTQ6XFx0XFx0ICAgICAgIHNpemVvZihzdHJ1Y3Qgbnhwd2lmaV90d3RfdGVhcmRvd24pKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmMtNTE1LVxcdFxcdHR3dF90ZWFyZG93bi1cXHUwMDNlZmxvd19pZGVudGlmaWVyID1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYy01MjAtXFx0XFx0XFx0dHd0X2NmZy1cXHUwMDNlcGFyYW0udHd0X3RlYXJkb3duLnRlYXJkb3duX2FsbF90d3Q7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jOjUyMTpcXHRcXHRjbWRfc2l6ZSArPSBzaXplb2Yoc3RydWN0IG54cHdpZmlfdHd0X3RlYXJkb3duKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmMtNTIyLVxcdFxcdGJyZWFrO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYy01MjMtXFx0Y2FzZSBOWFBXSUZJXzExQVhfVFdUX1JFUE9SVF9TVUJJRDpcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmM6NTI0OlxcdFxcdHR3dF9yZXBvcnQgPSAoc3RydWN0IG54cHdpZmlfdHd0X3JlcG9ydCAqKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYy01MjUtXFx0XFx0XFx0dHd0X2NmZ19jbWQtXFx1MDAzZXZhbDtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmM6NTI2OlxcdFxcdG1lbXNldCh0d3RfcmVwb3J0LCAweDAwLCBzaXplb2Yoc3RydWN0IG54cHdpZmlfdHd0X3JlcG9ydCkpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYy01MjctXFx0XFx0dHd0X3JlcG9ydC1cXHUwMDNldHlwZSA9IHR3dF9jZmctXFx1MDAzZXBhcmFtLnR3dF9yZXBvcnQudHlwZTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmM6NTI4OlxcdFxcdGNtZF9zaXplICs9IHNpemVvZihzdHJ1Y3Qgbnhwd2lmaV90d3RfcmVwb3J0KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmMtNTI5LVxcdFxcdGJyZWFrO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYy01MzAtXFx0Y2FzZSBOWFBXSUZJXzExQVhfVFdUX0lORk9STUFUSU9OX1NVQklEOlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYzo1MzE6XFx0XFx0dHd0X2luZm9ybWF0aW9uID0gKHN0cnVjdCBueHB3aWZpX3R3dF9pbmZvcm1hdGlvbiAqKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYy01MzItXFx0XFx0XFx0dHd0X2NmZ19jbWQtXFx1MDAzZXZhbDtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmMtNTMzLVxcdFxcdG1lbXNldCh0d3RfaW5mb3JtYXRpb24sIDB4MDAsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jOjUzNDpcXHRcXHQgICAgICAgc2l6ZW9mKHN0cnVjdCBueHB3aWZpX3R3dF9pbmZvcm1hdGlvbikpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYy01MzUtXFx0XFx0dHd0X2luZm9ybWF0aW9uLVxcdTAwM2VmbG93X2lkZW50aWZpZXIgPVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jLTUzOC1cXHRcXHRcXHR0d3RfY2ZnLVxcdTAwM2VwYXJhbS50d3RfaW5mb3JtYXRpb24uc3VzcGVuZF9kdXJhdGlvbjtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmM6NTM5OlxcdFxcdGNtZF9zaXplICs9IHNpemVvZihzdHJ1Y3Qgbnhwd2lmaV90d3RfaW5mb3JtYXRpb24pO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYy01NDAtXFx0XFx0YnJlYWs7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jLTU0MS1cXHRjYXNlIE5YUFdJRklfMTFBWF9CVFdUX0FQX0NPTkZJR19TVUJJRDpcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmM6NTQyOlxcdFxcdGJ0d3RfYXBfY29uZmlnID0gKHN0cnVjdCBueHB3aWZpX2J0d3RfYXBfY29uZmlnICopXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jLTU0My1cXHRcXHRcXHRcXHQgdHd0X2NmZ19jbWQtXFx1MDAzZXZhbDtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmMtNTQ0LVxcdFxcdG1lbXNldChidHd0X2FwX2NvbmZpZywgMHgwMCxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmM6NTQ1OlxcdFxcdCAgICAgICBzaXplb2Yoc3RydWN0IG54cHdpZmlfYnR3dF9hcF9jb25maWcpKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmMtNTQ2LVxcdFxcdGJ0d3RfYXBfY29uZmlnLVxcdTAwM2VhcF9iY2FzdF9iZXRfc3RhX3dhaXQgPVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jLTU2NC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmM6NTY1OlxcdFxcdGNtZF9zaXplICs9IHNpemVvZihzdHJ1Y3Qgbnhwd2lmaV9idHd0X2FwX2NvbmZpZyk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jLTU2Ni1cXHRcXHRicmVhaztcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmMtNTY3LVxcdGRlZmF1bHQ6XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jOjU2ODpcXHRcXHRueHB3aWZpX2RiZyhhZGFwdGVyLCBFUlJPUixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmMtNTY5LVxcdFxcdFxcdCAgICBcXFwiVW5rbm93biBzdWIgaWQ6ICVkXFxcXG5cXFwiLCB0d3RfY2ZnLVxcdTAwM2VzdWJfaWQpO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jLTU3Ny1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmM6NTc4OmludCBueHB3aWZpX3JldF90d3RfY2ZnKHN0cnVjdCBueHB3aWZpX3ByaXZhdGUgKnByaXYsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jLTU3OS1cXHRcXHRcXHRzdHJ1Y3QgaG9zdF9jbWRfZHNfY29tbWFuZCAqcmVzcCxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmM6NTgwOlxcdFxcdFxcdHN0cnVjdCBueHB3aWZpX3R3dF9jZmcgKnR3dF9jZmcpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jLTU4MS17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmMtNTg5LVxcdCAgICB0d3RfY2ZnLVxcdTAwM2VzdWJfaWQgPT0gTlhQV0lGSV8xMUFYX1RXVF9SRVBPUlRfU1VCSUQpIHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmM6NTkwOlxcdFxcdHN0cnVjdCBueHB3aWZpX3R3dF9yZXBvcnQgKnR3dF9yZXBvcnQgPVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYzo1OTE6XFx0XFx0XFx0KHN0cnVjdCBueHB3aWZpX3R3dF9yZXBvcnQgKil0d3RfY2ZnX2NtZC1cXHUwMDNldmFsO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYy01OTItXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jOjU5MzpcXHRcXHRtZW1jcHkoXFx1MDAyNnR3dF9jZmctXFx1MDAzZXBhcmFtLnR3dF9yZXBvcnQsIHR3dF9yZXBvcnQsIHNpemVvZihzdHJ1Y3Qgbnhwd2lmaV90d3RfcmVwb3J0KSk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jLTU5NC1cXHR9XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmgtMi0vKlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguaDozOiAqIG54cHdpZmk6IDgwMi4xMWF4IHN1cHBvcnRcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmgtNC0gKlxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5oPTE3PXN0YXRpYyBpbmxpbmUgdTE2XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5oOjE4Om54cHdpZmlfZ2V0X2hlX25zc19tY3MoX19sZTE2IG1jc19tYXBfc2V0LCBpbnQgbnNzKSB7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5oLTE5LVxcdHJldHVybiAoKGxlMTZfdG9fY3B1KG1jc19tYXBfc2V0KSBcXHUwMDNlXFx1MDAzZSAoMiAqIChuc3MgLSAxKSkpIFxcdTAwMjYgMHgzKTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguaD0yMj1zdGF0aWMgaW5saW5lIHZvaWRcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4Lmg6MjM6bnhwd2lmaV9zZXRfaGVfbnNzX21jcyhfX2xlMTYgKm1jc19tYXBfc2V0LCBpbnQgbnNzLCBpbnQgdmFsdWUpIHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmgtMjQtXFx0dTE2IHRlbXA7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmgtMzAtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5oOjMxOmJvb2wgbnhwd2lmaV9pc18xMWF4X3R3dF9zdXBwb3J0ZWQoc3RydWN0IG54cHdpZmlfcHJpdmF0ZSAqcHJpdixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4Lmg6MzI6XFx0XFx0XFx0XFx0ICAgc3RydWN0ICBueHB3aWZpX2Jzc2Rlc2NyaXB0b3IgKmJzc19kZXNjKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmgtMzMtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5oOjM0OnZvaWQgbnhwd2lmaV91cGRhdGVfMTFheF9jYXAoc3RydWN0IG54cHdpZmlfYWRhcHRlciAqYWRhcHRlcixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmgtMzUtXFx0XFx0XFx0ICAgICBzdHJ1Y3QgaHdfc3BlY19leHRlbnNpb24gKmh3X2hlX2NhcCk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5oLTM2LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguaDozNzpib29sIG54cHdpZmlfMTFheF9iYW5kY29uZmlnX2FsbG93ZWQoc3RydWN0IG54cHdpZmlfcHJpdmF0ZSAqcHJpdixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4Lmg6Mzg6XFx0XFx0XFx0XFx0ICAgICBzdHJ1Y3Qgbnhwd2lmaV9ic3NkZXNjcmlwdG9yICpic3NfZGVzYyk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5oLTM5LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguaDo0MDppbnQgbnhwd2lmaV9jbWRfYXBwZW5kXzExYXhfdGx2KHN0cnVjdCBueHB3aWZpX3ByaXZhdGUgKnByaXYsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5oOjQxOlxcdFxcdFxcdFxcdHN0cnVjdCBueHB3aWZpX2Jzc2Rlc2NyaXB0b3IgKmJzc19kZXNjLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguaC00Mi1cXHRcXHRcXHRcXHR1OCAqKmJ1ZmZlcik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5oLTQzLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguaDo0NDppbnQgbnhwd2lmaV9maWxsX2hlX2NhcF90bHYoc3RydWN0IG54cHdpZmlfcHJpdmF0ZSAqcHJpdixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4Lmg6NDU6XFx0XFx0XFx0ICAgIHN0cnVjdCBueHB3aWZpX2llX3R5cGVzX2hlX2NhcCAqaGVfY2FwLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguaC00Ni1cXHRcXHRcXHQgICAgdTE2IGJhbmRzKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4Lmg6NDc6aW50IG54cHdpZmlfY21kXzExYXhfY2ZnKHN0cnVjdCBueHB3aWZpX3ByaXZhdGUgKnByaXYsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5oLTQ4LVxcdFxcdFxcdCBzdHJ1Y3QgaG9zdF9jbWRfZHNfY29tbWFuZCAqY21kLCB1MTYgY21kX2FjdGlvbixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4Lmg6NDk6XFx0XFx0XFx0IHN0cnVjdCBueHB3aWZpXzExYXhfaGVfY2ZnICpheF9jZmcpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguaC01MC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4Lmg6NTE6aW50IG54cHdpZmlfcmV0XzExYXhfY2ZnKHN0cnVjdCBueHB3aWZpX3ByaXZhdGUgKnByaXYsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5oLTUyLVxcdFxcdFxcdCBzdHJ1Y3QgaG9zdF9jbWRfZHNfY29tbWFuZCAqcmVzcCxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4Lmg6NTM6XFx0XFx0XFx0IHN0cnVjdCBueHB3aWZpXzExYXhfaGVfY2ZnICpheF9jZmcpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguaC01NC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4Lmg6NTU6aW50IG54cHdpZmlfY21kXzExYXhfY21kKHN0cnVjdCBueHB3aWZpX3ByaXZhdGUgKnByaXYsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5oLTU2LVxcdFxcdFxcdCBzdHJ1Y3QgaG9zdF9jbWRfZHNfY29tbWFuZCAqY21kLCB1MTYgY21kX2FjdGlvbixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4Lmg6NTc6XFx0XFx0XFx0IHN0cnVjdCBueHB3aWZpXzExYXhfY21kX2NmZyAqYXhfY21kKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmgtNTgtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5oOjU5OmludCBueHB3aWZpX3JldF8xMWF4X2NtZChzdHJ1Y3Qgbnhwd2lmaV9wcml2YXRlICpwcml2LFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguaC02MC1cXHRcXHRcXHQgc3RydWN0IGhvc3RfY21kX2RzX2NvbW1hbmQgKnJlc3AsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5oOjYxOlxcdFxcdFxcdCBzdHJ1Y3Qgbnhwd2lmaV8xMWF4X2NtZF9jZmcgKmF4X2NtZCk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5oLTYyLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguaDo2MzppbnQgbnhwd2lmaV9jbWRfdHd0X2NmZyhzdHJ1Y3Qgbnhwd2lmaV9wcml2YXRlICpwcml2LFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguaC02NC1cXHRcXHRcXHRzdHJ1Y3QgaG9zdF9jbWRfZHNfY29tbWFuZCAqY21kLCB1MTYgY21kX2FjdGlvbixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4Lmg6NjU6XFx0XFx0XFx0c3RydWN0IG54cHdpZmlfdHd0X2NmZyAqdHd0X2NmZyk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5oLTY2LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguaDo2NzppbnQgbnhwd2lmaV9yZXRfdHd0X2NmZyhzdHJ1Y3Qgbnhwd2lmaV9wcml2YXRlICpwcml2LFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguaC02OC1cXHRcXHRcXHRzdHJ1Y3QgaG9zdF9jbWRfZHNfY29tbWFuZCAqcmVzcCxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4Lmg6Njk6XFx0XFx0XFx0c3RydWN0IG54cHdpZmlfdHd0X2NmZyAqdHd0X2NmZyk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5oLTcwLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguaDo3MTp1OCBueHB3aWZpX2lzX3N0YV8xMWF4X3R3dF9yZXFfc3VwcG9ydGVkKHN0cnVjdCBueHB3aWZpX3ByaXZhdGUgKnByaXYpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguaC03Mi1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExaC5jLTItLypcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWguYzozOiAqIG54cHdpZmk6IDgwMi4xMWggaGVscGVyc1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExaC5jLTQtICpcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExaC5jLTEyLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExaC5jOjEzOnZvaWQgbnhwd2lmaV9pbml0XzExaF9wYXJhbXMoc3RydWN0IG54cHdpZmlfcHJpdmF0ZSAqcHJpdilcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWguYy0xNC17XFxuXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTI1VDIzOjQyOjMxLjAxNzE4NDEzN1oiLCJTZXEiOjUsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjMzODAyNDkwMjMsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IkhlcmUncyBteSB0YWtlIG9uIHRoZSB0aG91Z2h0IHByb2Nlc3M6XG5cbioqRGl2aW5nIGludG8gdGhlIG54cHdpZmkgRHJpdmVyKipcblxuT2theSwgc28gd2UncmUgZGVhbGluZyB3aXRoIHRoZSBgbnhwd2lmaWAgZHJpdmVyLiBNeSBmaXJzdCBpbnN0aW5jdCwgYXMgYWx3YXlzLCBpcyB0byB1bmRlcnN0YW5kIGl0cyBkZXBlbmRlbmNpZXMuIFRpbWUgdG8gZGlnIGludG8gdGhlIGhlYXJ0IG9mIHRoZSBtYXR0ZXIg4oCTIHRoZSBgS2NvbmZpZ2AgZmlsZS4gU3BlY2lmaWNhbGx5LCBJJ2xsIGJlIGhlYWRpbmcgc3RyYWlnaHQgdG8gYGRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpL0tjb25maWdgLiBUaGlzIGlzIHdoZXJlIHRoZSBjb25maWd1cmF0aW9uIGxvZ2ljIGxpdmVzLCBhbmQgd2hlcmUgSSBjYW4gcXVpY2tseSBkZWNpcGhlciB3aGF0IG90aGVyIGNvbXBvbmVudHMgb3IgZmVhdHVyZXMgdGhpcyBkcml2ZXIgcmVsaWVzIHVwb24uIFVuZGVyc3RhbmRpbmcgaXRzIGRlcGVuZGVuY2llcyBpcyBjcnVjaWFsIGZvciBhbnkgbW9kaWZpY2F0aW9ucyBvciBkZWVwZXIgYW5hbHlzaXMuIFRoaXMgZmlsZSB3aWxsIHRlbGwgbWUgZXZlcnl0aGluZyBJIG5lZWQgdG8ga25vdyBhYm91dCB0aGUgcHJlcmVxdWlzaXRlcyBmb3IgYnVpbGRpbmcgYW5kIHJ1bm5pbmcgdGhpcyBkcml2ZXIuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjE5MzcxLCJPdXRwdXRUb2tlbnMiOjM3LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MzQsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDgtMjVUMjM6NDI6MzQuMzk3NDM2OTMxWiIsIlNlcSI6NiwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjQ4MjEyNjY3LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcImRlcGVuZHMgb25cIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvS2NvbmZpZ1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJkcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS9LY29uZmlnPTI9Y29uZmlnIE5YUFdJRklcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS9LY29uZmlnLTMtXFx0dHJpc3RhdGUgXFxcIk5YUCBXaUZpIERyaXZlclxcXCIgaWYgQ09NUElMRV9URVNUXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvS2NvbmZpZzo0OlxcdGRlcGVuZHMgb24gQ0ZHODAyMTFcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS9LY29uZmlnLTUtXFx0aGVscFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvS2NvbmZpZz0xMj1jb25maWcgTlhQV0lGSV9TRElPXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvS2NvbmZpZy0xMy1cXHR0cmlzdGF0ZSBcXFwiTlhQIFdpRmkgRHJpdmVyIGZvciBJVzYxeFxcXCJcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS9LY29uZmlnOjE0OlxcdGRlcGVuZHMgb24gQ0ZHODAyMTEgXFx1MDAyNlxcdTAwMjYgTU1DXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvS2NvbmZpZy0xNS1cXHRzZWxlY3QgTlhQV0lGSVxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0yNVQyMzo0MjozNC40NDU2NzQ3MzlaIiwiU2VxIjo3LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo0MzE5MDM4NzYzLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJIZXJlJ3MgbXkgc3VtbWFyeSwgYXMgdGhlIGV4cGVydDpcblxuKipJbnZlc3RpZ2F0aW5nIHRoZSBOWFAgV2lGaSBEcml2ZXIgQ29uZmlndXJhdGlvbioqXG5cbk9rYXksIHNvIEkgc2VlIHRoaXMgYE5YUFdJRklfU0RJT2Agb3B0aW9uLCBhbmQgaXQncyBmbGFnZ2VkIGFzIGRlcGVuZGVudCBvbiBgQ0ZHODAyMTFgIGFuZCB0aGUgYE1NQ2AgZHJpdmVyLiBUaGF0IG1ha2VzIHNlbnNlLCBhc3N1bWluZyB0aGlzIGlzIGFuIFNESU8tYmFzZWQgaW1wbGVtZW50YXRpb24uIE15IGltbWVkaWF0ZSBxdWVzdGlvbiBpcywgXCJBcmUgdGhlcmUgUENJZSBvciBVU0IgdmFyaWFudHMgb2YgdGhpcyBkcml2ZXI/XCIgV2UgbmVlZCB0byBmaWd1cmUgdGhhdCBvdXQgYmVjYXVzZSB0aG9zZSBpbnRlcmZhY2VzIGFyZSBvZnRlbiBtb3JlIHBlcmZvcm1hbnQgYW5kIGZsZXhpYmxlLiBJJ2xsIG5lZWQgdG8gZGlnIGRlZXBlciBpbnRvIHRoaXMgYEtjb25maWdgIGZpbGUgKGBkcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS9LY29uZmlnYCkgYW5kIHNlZSBpZiB0aGVyZSBhcmUgb3RoZXIgZGV2aWNlIG9wdGlvbnMgZGVmaW5lZC4gVGhpcyBjb25maWd1cmF0aW9uIGlzIHRoZSBrZXkgdG8gdW5kZXJzdGFuZGluZyBhbGwgc3VwcG9ydGVkIGhhcmR3YXJlLlxuXG5cbiIsIklucHV0VG9rZW5zIjoxOTgzMywiT3V0cHV0VG9rZW5zIjo0MiwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjU3LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTI1VDIzOjQyOjM4Ljc2NDcxNjI1MloiLCJTZXEiOjgsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6InJlYWQtZmlsZSIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjc4MzYwLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRmlsZVwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpL0tjb25maWdcIixcbiAgXCJGaXJzdExpbmVcIjogMSxcbiAgXCJMaW5lQ291bnRcIjogMTAwXG59IiwiUmVzdWx0cyI6IntcbiAgXCJDb250ZW50c1wiOiBcIiAgIDE6XFx0IyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMC1vbmx5XFxuICAgMjpcXHRjb25maWcgTlhQV0lGSVxcbiAgIDM6XFx0XFx0dHJpc3RhdGUgXFxcIk5YUCBXaUZpIERyaXZlclxcXCIgaWYgQ09NUElMRV9URVNUXFxuICAgNDpcXHRcXHRkZXBlbmRzIG9uIENGRzgwMjExXFxuICAgNTpcXHRcXHRoZWxwXFxuICAgNjpcXHRcXHQgIFRoaXMgYWRkcyBzdXBwb3J0IGZvciB3aXJlbGVzcyBhZGFwdGVycyBiYXNlZCBvbiBOWFBcXG4gICA3OlxcdFxcdCAgODAyLjExbi9hYyBjaGlwc2V0cy5cXG4gICA4OlxcdFxcbiAgIDk6XFx0XFx0ICBJZiB5b3UgY2hvb3NlIHRvIGJ1aWxkIGl0IGFzIGEgbW9kdWxlLCBpdCB3aWxsIGJlIGNhbGxlZFxcbiAgMTA6XFx0XFx0ICBueHB3aWZpLlxcbiAgMTE6XFx0XFxuICAxMjpcXHRjb25maWcgTlhQV0lGSV9TRElPXFxuICAxMzpcXHRcXHR0cmlzdGF0ZSBcXFwiTlhQIFdpRmkgRHJpdmVyIGZvciBJVzYxeFxcXCJcXG4gIDE0OlxcdFxcdGRlcGVuZHMgb24gQ0ZHODAyMTEgXFx1MDAyNlxcdTAwMjYgTU1DXFxuICAxNTpcXHRcXHRzZWxlY3QgTlhQV0lGSVxcbiAgMTY6XFx0XFx0c2VsZWN0IEZXX0xPQURFUlxcbiAgMTc6XFx0XFx0c2VsZWN0IFdBTlRfREVWX0NPUkVEVU1QXFxuICAxODpcXHRcXHRoZWxwXFxuICAxOTpcXHRcXHQgIFRoaXMgYWRkcyBzdXBwb3J0IGZvciB3aXJlbGVzcyBhZGFwdGVycyBiYXNlZCBvbiBOWFBcXG4gIDIwOlxcdFxcdCAgSVc2MXggaW50ZXJmYWNlLlxcbiAgMjE6XFx0XFxuICAyMjpcXHRcXHQgIElmIHlvdSBjaG9vc2UgdG8gYnVpbGQgaXQgYXMgYSBtb2R1bGUsIGl0IHdpbGwgYmUgY2FsbGVkXFxuICAyMzpcXHRcXHQgIG54cHdpZmlfc2Rpby5cXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMjVUMjM6NDI6MzguNzY0Nzk2MTcyWiIsIlNlcSI6OSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6MzQ3NzYwNTA4OCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipJbml0aWFsIEFzc2Vzc21lbnQgXHUwMDI2IEltbWVkaWF0ZSBBY3Rpb24qKlxuXG5Pa2F5LCBzbyBJJ20gbG9va2luZyBhdCB0aGlzIGFuZCBpdCdzIGZsYWdnZWQgYXMgb25seSBoYXZpbmcgYE5YUFdJRklfU0RJT2AuIFJpZ2h0IGF3YXksIG15IGFsYXJtIGJlbGxzIGFyZSByaW5naW5nIGEgbGl0dGxlLiBTRElPIGRldmljZXMgYXJlbid0IHVzdWFsbHkgYSBnb29kIHRhcmdldCBmb3IgZnV6emluZyBpbiBhIHN0YW5kYXJkIFFFTVUgb3IgR0NFIGVudmlyb25tZW50LiBUaGV5J3JlIG9mdGVuIHRyaWNreSB0byBlbXVsYXRlIHJlbGlhYmx5IGFuZCBJIG5lZWQgdG8gY29uc2lkZXIgdGhhdC4gQmVmb3JlIEkgZ2V0IHRvbyBmYXIgZG93biB0aGlzIHJvYWQsIEknbSBnb2luZyB0byBxdWlja2x5IHNjYW4gZm9yIGFueSBvdGhlciBwb3RlbnRpYWwgaW50ZXJmYWNlcyBvciBlbnRyeSBwb2ludHMgdGhhdCBtaWdodCBiZSBwcmVzZW50LiBJIG5lZWQgdG8gbWFrZSBzdXJlIEknbSBub3QgbWlzc2luZyBzb21ldGhpbmcgb2J2aW91cyBiZWZvcmUgSSBoYXZlIHRvIGFkanVzdCBteSBmdXp6aW5nIGFwcHJvYWNoLlxuXG5cbiIsIklucHV0VG9rZW5zIjoyMDQxMywiT3V0cHV0VG9rZW5zIjozMSwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjQ2LCJUb29sQ2FsbHMiOlsicmVhZC1maWxlIl19LHsiU3RhcnRlZCI6IjIwMjYtMDgtMjVUMjM6NDI6NDIuMjQyNDA0NTVaIiwiU2VxIjoxMCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiY29kZXNlYXJjaC1kaXItaW5kZXgiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo4NjQwOSwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkRpclwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpL1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJGaWxlc1wiOiBbXG4gICAgXCIxMWFjLmNcIixcbiAgICBcIjExYWMuaFwiLFxuICAgIFwiMTFheC5jXCIsXG4gICAgXCIxMWF4LmhcIixcbiAgICBcIjExaC5jXCIsXG4gICAgXCIxMW4uY1wiLFxuICAgIFwiMTFuLmhcIixcbiAgICBcIjExbl9hZ2dyLmNcIixcbiAgICBcIjExbl9hZ2dyLmhcIixcbiAgICBcIjExbl9yeHJlb3JkZXIuY1wiLFxuICAgIFwiMTFuX3J4cmVvcmRlci5oXCIsXG4gICAgXCJjZmcuaFwiLFxuICAgIFwiY2ZnODAyMTEuY1wiLFxuICAgIFwiY2ZnODAyMTEuaFwiLFxuICAgIFwiY2ZwLmNcIixcbiAgICBcImNtZGV2dC5jXCIsXG4gICAgXCJjbWRldnQuaFwiLFxuICAgIFwiZGVidWdmcy5jXCIsXG4gICAgXCJldGh0b29sLmNcIixcbiAgICBcImZ3LmhcIixcbiAgICBcImllLmNcIixcbiAgICBcImluaXQuY1wiLFxuICAgIFwiam9pbi5jXCIsXG4gICAgXCJtYWluLmNcIixcbiAgICBcIm1haW4uaFwiLFxuICAgIFwic2Nhbi5jXCIsXG4gICAgXCJzZGlvLmNcIixcbiAgICBcInNkaW8uaFwiLFxuICAgIFwic3RhX2NmZy5jXCIsXG4gICAgXCJzdGFfY21kLmNcIixcbiAgICBcInN0YV9ldmVudC5jXCIsXG4gICAgXCJzdGFfcnguY1wiLFxuICAgIFwic3RhX3R4LmNcIixcbiAgICBcInR4cnguY1wiLFxuICAgIFwidWFwX2NtZC5jXCIsXG4gICAgXCJ1YXBfZXZlbnQuY1wiLFxuICAgIFwidWFwX3R4cnguY1wiLFxuICAgIFwidXRpbC5jXCIsXG4gICAgXCJ1dGlsLmhcIixcbiAgICBcIndtbS5jXCIsXG4gICAgXCJ3bW0uaFwiXG4gIF0sXG4gIFwiU3ViZGlyc1wiOiBudWxsXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0yNVQyMzo0Mjo0Mi4yNDI0OTM0ODFaIiwiU2VxIjoxMSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NjMxNTgzODU1NiwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipTRElPIERyaXZlciBBbmFseXNpcyBmb3IgRnV6emluZyBQb3RlbnRpYWwqKlxuXG5Pa2F5LCBzbyBJJ20gbG9va2luZyBhdCB0aGlzIGNvZGUgYW5kIGltbWVkaWF0ZWx5IHNlZSBgc2Rpby5jYCBhbmQgYHNkaW8uaGAg4oCTIHRoYXQncyBhIGtleSBpbmRpY2F0b3IuIE5vIGB1c2IuY2Agb3IgYHBjaWUuY2AgaW4gc2lnaHQsIHdoaWNoIGNsYXJpZmllcyB0aGUgdGFyZ2V0LiBUaGlzIHBvaW50cyBkaXJlY3RseSB0byBhbiBTRElPIGltcGxlbWVudGF0aW9uLCBuZWVkaW5nIGEgcmVhbCBTRElPIGhvc3QgY29udHJvbGxlciBhbmQgYSBwaHlzaWNhbCBTRElPIGNhcmQgdG8gZnVuY3Rpb24uXG5cbk15IGluaXRpYWwgdGhvdWdodCB3YXMsIFwiQ2FuIEkgbGV2ZXJhZ2UgYG1hYzgwMjExX2h3c2ltYCBmb3IgZnV6emluZyB0aGlzP1wiIE5vLCB0aGF0J3MgYSBkZWFkIGVuZC4gYG1hYzgwMjExX2h3c2ltYCBpcyBhbGwgYWJvdXQgc2ltdWxhdGluZyBtYWM4MDIxMSBkZXZpY2VzLCB3aGljaCBpc24ndCB0aGUgc2FtZS4gQW5kIGxvb2tpbmcgYXQgdGhpcyBgbnhwd2lmaWAgZHJpdmVyLCBpdCB1c2VzIGBjZmc4MDIxMWAgZGlyZWN0bHkg4oCTIGl0J3MgYSBGdWxsTUFDLCBub3QgYSBtYWM4MDIxMSBkcml2ZXIuXG5cblRoZSBtaWxsaW9uLWRvbGxhciBxdWVzdGlvbiBub3cgaXMsIGNhbiBJIGdldCBTRElPIGRldmljZXMgZW11bGF0ZWQgdW5kZXIgUUVNVT8gVGhhdCdzIHRoZSByZWFsIGNoYWxsZW5nZS4gSSBrbm93IFNESU8gZGV2aWNlcyBhcmVuJ3QgdHlwaWNhbGx5IGZ1enplZCBiZWNhdXNlIHRoZXJlJ3Mgbm8gc29saWQgZ2VuZXJpYyBTRElPIGVtdWxhdGlvbiBmcmFtZXdvcmsgaW4gc3l6a2FsbGVyLiBUaGF0J3MgYSBodWdlIGJsb2NrZXIuXG5cbkFscmlnaHQsIGxldCdzIHRha2UgYSBzdGVwIGJhY2sgYW5kIG1ha2Ugc3VyZSBJJ20gbm90IG1pc3NpbmcgYW55dGhpbmcuIEkgbmVlZCB0byBmaWd1cmUgb3V0ICpob3cqIHRoaXMgY29kZSBpcyBhY3R1YWxseSByZWFjaGVkLiBUaGUgZHJpdmVyIHJlZ2lzdGVycyBpdHNlbGYgd2l0aCBgc2Rpb19yZWdpc3Rlcl9kcml2ZXIoXHUwMDI2bnhwd2lmaV9zZGlvKWAuIFJpZ2h0LCB0aGF0J3MgdGhlIGVudHJ5IHBvaW50LiBUaW1lIHRvIGRpdmUgaW50byBgc2Rpby5jYCBhbmQgdHJhY2UgdGhlIGV4ZWN1dGlvbiBwYXRoLlxuXG5cbiIsIklucHV0VG9rZW5zIjoyMDk2MiwiT3V0cHV0VG9rZW5zIjo0MywiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjIxNywiVG9vbENhbGxzIjpbImNvZGVzZWFyY2gtZGlyLWluZGV4Il19LHsiU3RhcnRlZCI6IjIwMjYtMDgtMjVUMjM6NDI6NDguNTU4MzM0Njg2WiIsIlNlcSI6MTIsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo1MzU4MTIwOCwiRXJyb3IiOiJubyBtYXRjaGVzIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwic2Rpb19yZWdpc3Rlcl9kcml2ZXJcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvc2Rpby5jXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcImVycm9yXCI6IFwibm8gbWF0Y2hlc1wiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0yNVQyMzo0Mjo0OC42MTE5MjIzMDRaIiwiU2VxIjoxMywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NDY0MjYyNjMwOCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiT2theSwgSSdtIHJlYWR5IHRvIHN1bW1hcml6ZSBteSBcInRob3VnaHRzXCIgaW4gdGhlIGZpcnN0IHBlcnNvbiwgYXNzdW1pbmcgYSBoaWdoIGxldmVsIG9mIGV4cGVydGlzZS4gSGVyZSB3ZSBnbzpcblxuKipBc3Nlc3NpbmcgdGhlIFN5c3RlbSdzIFJlc3BvbnNlKipcblxuQWxyaWdodCwgSSdtIGF0IGEgY3JpdGljYWwganVuY3R1cmUuIE15IGluaXRpYWwgYXNzZXNzbWVudCBpcyBjb21wbGV0ZSwgYW5kIG5vdyBpdCdzIHRpbWUgdG8gdmVyaWZ5IGhvdyB0aGUgc3lzdGVtIGlzIHJlZ2lzdGVyaW5nIHRoZSBpbnB1dC4gSSBuZWVkIHRvIG9ic2VydmUgaXRzIGltbWVkaWF0ZSByZXNwb25zZSB0byBjb25maXJtIGl0cyB1bmRlcnN0YW5kaW5nIG9mIHRoZSBjb250ZXh0LCB0aGUgY29yZSBjb25jZXB0cywgYW5kIHRoZSBudWFuY2VzIG9mIHRoZSBpbnN0cnVjdGlvbnMuIElzIGl0IGludGVycHJldGluZyB0aGUgZGF0YSBhcyBleHBlY3RlZD8gQXJlIHRoZSBmbGFncyBhbmQgcGFyYW1ldGVycyBmdW5jdGlvbmluZyBjb3JyZWN0bHk/IFRoaXMgaXNuJ3QganVzdCBhIG1hdHRlciBvZiBiYXNpYyBmdW5jdGlvbmFsaXR5OyBJJ20gbG9va2luZyBmb3IgZXZpZGVuY2Ugb2YgcHJvcGVyIHByb2Nlc3NpbmcsIG51YW5jZWQgdW5kZXJzdGFuZGluZywgYW5kIHRoYXQgdGhlIGFyY2hpdGVjdHVyZSBpcyByZXNwb25kaW5nIGFjY29yZGluZyB0byBzcGVjaWZpY2F0aW9ucy4gVGhlIHByaW1hcnkgZ29hbCBpcyBjb25maXJtYXRpb24gb2YgcHJvcGVyIGltcGxlbWVudGF0aW9uIG9mIHRoZSBkZXNpZ24uXG5cblxuIiwiSW5wdXRUb2tlbnMiOjIxNTc4LCJPdXRwdXRUb2tlbnMiOjM2LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6OCwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wOC0yNVQyMzo0Mjo1My4yNTQ1NTIxNTJaIiwiU2VxIjoxNCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjQ3OTM3NjU4LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcIm1vZHVsZV9pbml0XCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpL1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJkcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS9tYWluLmM9MTY2MD1ueHB3aWZpX2NsZWFudXBfbW9kdWxlKHZvaWQpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS9tYWluLmMtMTY2Ni1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS9tYWluLmM6MTY2Nzptb2R1bGVfaW5pdChueHB3aWZpX2luaXRfbW9kdWxlKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS9tYWluLmMtMTY2OC1tb2R1bGVfZXhpdChueHB3aWZpX2NsZWFudXBfbW9kdWxlKTtcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMjVUMjM6NDI6NTMuMzAyNDk1NDVaIiwiU2VxIjoxNSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6Mzg4Njk0OTU1MSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiSGVyZSdzIG15IGF0dGVtcHQgYXQgc3VtbWFyaXppbmcgdGhlIHRob3VnaHQgcHJvY2VzcywgdGFpbG9yZWQgZm9yIGFuIGV4cGVydCBhdWRpZW5jZSBhbmQgd3JpdHRlbiBpbiB0aGUgZmlyc3QgcGVyc29uOlxuXG4qKkRpdmluZyBpbnRvIGBueHB3aWZpX2luaXRfbW9kdWxlYCoqXG5cbk9rYXksIHRpbWUgdG8gZGlnIGluLiBMZXQncyBzdGFydCB3aXRoIGEgdGhvcm91Z2ggZXhhbWluYXRpb24gb2YgYG54cHdpZmlfaW5pdF9tb2R1bGVgLiBJIG5lZWQgdG8gdW5kZXJzdGFuZCBpdHMgcm9sZSB3aXRoaW4gdGhlIGJyb2FkZXIgV2lGaSBkcml2ZXIgYXJjaGl0ZWN0dXJlLiBNeSBpbml0aWFsIGdvYWwgaXMgdG8gcXVpY2tseSBncmFzcCB0aGUgbW9kdWxlJ3MgcHJpbWFyeSByZXNwb25zaWJpbGl0aWVzOiBpbml0aWFsaXphdGlvbiwgcmVzb3VyY2UgYWxsb2NhdGlvbiwgcmVnaXN0cmF0aW9uIHdpdGggdGhlIGtlcm5lbCwgYW5kIHRoZSBvdmVyYWxsIHNldHVwIG9mIHRoZSBXaUZpIGhhcmR3YXJlIGludGVyZmFjZS4gSSdsbCBiZSBsb29raW5nIHNwZWNpZmljYWxseSBmb3IgYW55IG9idmlvdXMgcmVkIGZsYWdzOiBwb3RlbnRpYWwgcmFjZSBjb25kaXRpb25zLCBpbmNvcnJlY3QgZXJyb3IgaGFuZGxpbmcsIG1lbW9yeSBsZWFrcywgb3IgbWlzY29uZmlndXJhdGlvbnMgdGhhdCBjb3VsZCBjYXVzZSBpbnN0YWJpbGl0eSBvciBzZWN1cml0eSB2dWxuZXJhYmlsaXRpZXMuIE15IHllYXJzIG9mIGV4cGVyaWVuY2UgdGVsbCBtZSB0aGUgZGV2aWwgaXMgaW4gdGhlIGRldGFpbHMgaGVyZSwgc28gSSdsbCBiZSBwYXlpbmcgY2xvc2UgYXR0ZW50aW9uIHRvIGFueSBzdWJ0bGUgbnVhbmNlcyBpbiB0aGUgbG9naWMgZmxvdywgbGlrZSB0aGUgc2VxdWVuY2Ugb2YgZnVuY3Rpb24gY2FsbHMgYW5kIGhvdyBpdCBpbnRlcmFjdHMgd2l0aCB0aGUgdW5kZXJseWluZyBoYXJkd2FyZSByZWdpc3RlcnMuIEknbSBhbHNvIGtlZW4gdG8gc2VlIGhvdyBpdCBoYW5kbGVzIHBvd2VyIG1hbmFnZW1lbnQgYW5kIGludGVycnVwdCBzZXR1cCAtIHRoYXQncyBvZnRlbiBhIHNvdXJjZSBvZiB0cmlja3kgYnVncy5cblxuXG4iLCJJbnB1dFRva2VucyI6MjE5MjIsIk91dHB1dFRva2VucyI6NDMsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoxMywiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wOC0yNVQyMzo0Mjo1Ny4xODk0NDgxMDFaIiwiU2VxIjoxNiwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjQ2MTE3NzU4LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcIm54cHdpZmlfaW5pdF9tb2R1bGVcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvbWFpbi5jXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpL21haW4uYz0xNjQ5PXN0YXRpYyBpbnRcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS9tYWluLmM6MTY1MDpueHB3aWZpX2luaXRfbW9kdWxlKHZvaWQpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvbWFpbi5jLTE2NTEte1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvbWFpbi5jPTE2NjA9bnhwd2lmaV9jbGVhbnVwX21vZHVsZSh2b2lkKVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvbWFpbi5jLTE2NjYtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvbWFpbi5jOjE2Njc6bW9kdWxlX2luaXQobnhwd2lmaV9pbml0X21vZHVsZSk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvbWFpbi5jLTE2NjgtbW9kdWxlX2V4aXQobnhwd2lmaV9jbGVhbnVwX21vZHVsZSk7XFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTI1VDIzOjQyOjU3LjIzNTU3MDc1OVoiLCJTZXEiOjE3LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjozNzMyMDI1MTA4LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJPa2F5LCBsZXQncyBkaXZlIGludG8gYG54cHdpZmlfaW5pdF9tb2R1bGVgLiBJIG5lZWQgdG8gZ2V0IGEgY2xlYXIgdW5kZXJzdGFuZGluZyBvZiB0aGlzIGluaXRpYWxpemF0aW9uIG1vZHVsZS4gV2hhdCdzIGl0cyBwdXJwb3NlIHdpdGhpbiB0aGUgYnJvYWRlciBXaS1GaSBzdGFjaz8gSSdtIGFscmVhZHkgYW50aWNpcGF0aW5nIHNvbWUgb2YgdGhlIGtleSBhcmVhcyBJJ2xsIG5lZWQgdG8gZm9jdXMgb246IHRoZSBvdmVyYWxsIHN0cnVjdHVyZSwgZGVwZW5kZW5jaWVzIG9uIG90aGVyIG1vZHVsZXMsIGFueSByZXNvdXJjZSBhbGxvY2F0aW9uLCBhbmQsIGNyaXRpY2FsbHksIGVycm9yIGhhbmRsaW5nLiBJJ20gZ29pbmcgdG8gcGF5IGNsb3NlIGF0dGVudGlvbiB0byB0aGUgb3JkZXIgb2Ygb3BlcmF0aW9ucywgbG9va2luZyBmb3IgYW55IHBvdGVudGlhbCByYWNlIGNvbmRpdGlvbnMgb3Igc2VxdWVuY2luZyBpc3N1ZXMgdGhhdCBtaWdodCBiaXRlIG1lIGxhdGVyLiBJIG5lZWQgdG8gdW5kZXJzdGFuZCBob3cgaXQncyBpbnRlZ3JhdGVkIHdpdGggdGhlIGtlcm5lbCBhbmQgdXNlciBzcGFjZS4gRG9lcyBpdCBlc3RhYmxpc2ggYW55IGNyaXRpY2FsIGRhdGEgc3RydWN0dXJlcyB0aGF0IGFyZSBzaGFyZWQ/IEFyZSB0aGVyZSBhbnkgaW5pdGlhbCBjb25maWd1cmF0aW9uIHN0ZXBzIGl0IGhhbmRsZXM/IEknbGwgcHJvYmFibHkgYmUgaHVudGluZyBmb3IgdGhlIGNvcmUgZnVuY3Rpb25zIGFuZCB2YXJpYWJsZXMgdGhhdCBhcmUgZXhwb3NlZCBmb3Igb3RoZXIgbW9kdWxlcyB0byB1c2UsIGFuZCBJJ2xsIG5lZWQgdG8gbm90ZSB0aGUgbG9ja2luZyBtZWNoYW5pc21zIChtdXRleGVzLCBzcGlubG9ja3MsIGV0Yy4pIGl0IGVtcGxveXMgdG8gcHJvdGVjdCBzaGFyZWQgcmVzb3VyY2VzLiBBbnkgY2xldmVyIHRyaWNrcyBvciB1bnVzdWFsIGFwcHJvYWNoZXMgdG8gaW5pdGlhbGl6YXRpb24gd2lsbCBiZSB3b3J0aCBhIGRlZXAgbG9vay4gTXkgZXhwZXJ0aXNlIHRlbGxzIG1lIHRoYXQgYSBzb2xpZCB1bmRlcnN0YW5kaW5nIG9mIHRoaXMgaW5pdGlhbCBtb2R1bGUgaXMgZm91bmRhdGlvbmFsLiBXaXRob3V0IGl0LCBkZWJ1Z2dpbmcgYW55IFdpLUZpLXJlbGF0ZWQgaXNzdWVzIGRvd24gdGhlIGxpbmUgd2lsbCBiZSBhIG5pZ2h0bWFyZS4gUmlnaHQsIGxldCdzIHN0YXJ0IHJlYWRpbmchXG5cblxuIiwiSW5wdXRUb2tlbnMiOjIyNDIxLCJPdXRwdXRUb2tlbnMiOjQ1LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MTMsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDgtMjVUMjM6NDM6MDAuOTY3NTk4NTc3WiIsIlNlcSI6MTgsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6InJlYWQtZmlsZSIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjE4NjU4MCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkZpbGVcIjogXCJkcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS9tYWluLmNcIixcbiAgXCJGaXJzdExpbmVcIjogMTY0MCxcbiAgXCJMaW5lQ291bnRcIjogMzBcbn0iLCJSZXN1bHRzIjoie1xuICBcIkNvbnRlbnRzXCI6IFwiMTY0MDpcXHRcXHRcXHRkZXZfaW5mbyhhZGFwdGVyLVxcdTAwM2VkZXYsIFxcXCIlcFZcXFwiLCBcXHUwMDI2dmFmKTtcXG4xNjQxOlxcdFxcdGVsc2VcXG4xNjQyOlxcdFxcdFxcdHByX2luZm8oXFxcIiVwVlxcXCIsIFxcdTAwMjZ2YWYpO1xcbjE2NDM6XFx0XFxuMTY0NDpcXHRcXHR2YV9lbmQoYXJncyk7XFxuMTY0NTpcXHR9XFxuMTY0NjpcXHRFWFBPUlRfU1lNQk9MX0dQTChfbnhwd2lmaV9kYmcpO1xcbjE2NDc6XFx0XFxuMTY0ODpcXHQvKiBNb2R1bGUgaW5pdDogaW5pdCBkZWJ1Z2ZzIGlmIGVuYWJsZWQuICovXFxuMTY0OTpcXHRzdGF0aWMgaW50XFxuMTY1MDpcXHRueHB3aWZpX2luaXRfbW9kdWxlKHZvaWQpXFxuMTY1MTpcXHR7XFxuMTY1MjpcXHQjaWZkZWYgQ09ORklHX0RFQlVHX0ZTXFxuMTY1MzpcXHRcXHRueHB3aWZpX2RlYnVnZnNfaW5pdCgpO1xcbjE2NTQ6XFx0I2VuZGlmXFxuMTY1NTpcXHRcXHRyZXR1cm4gMDtcXG4xNjU2OlxcdH1cXG4xNjU3OlxcdFxcbjE2NTg6XFx0LyogTW9kdWxlIGV4aXQ6IHJlbW92ZSBkZWJ1Z2ZzIGlmIGVuYWJsZWQuICovXFxuMTY1OTpcXHRzdGF0aWMgdm9pZFxcbjE2NjA6XFx0bnhwd2lmaV9jbGVhbnVwX21vZHVsZSh2b2lkKVxcbjE2NjE6XFx0e1xcbjE2NjI6XFx0I2lmZGVmIENPTkZJR19ERUJVR19GU1xcbjE2NjM6XFx0XFx0bnhwd2lmaV9kZWJ1Z2ZzX3JlbW92ZSgpO1xcbjE2NjQ6XFx0I2VuZGlmXFxuMTY2NTpcXHR9XFxuMTY2NjpcXHRcXG4xNjY3OlxcdG1vZHVsZV9pbml0KG54cHdpZmlfaW5pdF9tb2R1bGUpO1xcbjE2Njg6XFx0bW9kdWxlX2V4aXQobnhwd2lmaV9jbGVhbnVwX21vZHVsZSk7XFxuMTY2OTpcXHRcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMjVUMjM6NDM6MDAuOTY3Nzg4MzM3WiIsIlNlcSI6MTksIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjQ3MTc1NzQ1NTUsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6Ik9rYXksIGhlcmUncyBteSBpbnRlcnByZXRhdGlvbiBvZiB0aG9zZSB0aG91Z2h0cywgdGFpbG9yZWQgZm9yIGFuIGV4cGVydCBhdWRpZW5jZSwgcHJlc2VudGVkIGluIHRoZSBmaXJzdCBwZXJzb246XG5cbioqTmF2aWdhdGluZyB0aGUgbnhwd2lmaSBMYW5kc2NhcGUqKlxuXG5SaWdodCwgc28gYG54cHdpZmlgIGlzIGNsZWFybHkgYSBoaWdoLWxldmVsIG1vZHVsZSwgbGlrZWx5IHByb3ZpZGluZyB0aGUgcHVibGljIEFQSSBhbmQgYWJzdHJhY3Rpb24gbGF5ZXIuIEJ1dCBJIG5lZWQgdG8gZGlnIGRlZXBlciB0byB1bmRlcnN0YW5kIHRoZSBhY3R1YWwgaGFyZHdhcmUgaW50ZXJhY3Rpb24uIFwiQWhhLFwiIEkgdGhpbmssIGBueHB3aWZpX3NkaW9gIHNvdW5kcyBsaWtlIHRoZSByZWFsIGRyaXZlciwgdGhlIG9uZSB0aGF0IGRvZXMgdGhlIGRpcnR5IHdvcmsuIFRoZXJlZm9yZSwgdG8gdW5kZXJzdGFuZCBpdHMgaW50ZXJuYWwgb3BlcmF0aW9uLCBJIG5lZWQgdG8gbG9vayBkaXJlY3RseSBhdCB0aGUgYHNkaW8uY2Agc291cmNlIGNvZGUuIEl0J3MgdGltZSB0byBkZWx2ZSBpbnRvIHRoZSBTRElPLXNwZWNpZmljIHJvdXRpbmVzLiBMZXQncyBzZWUgaG93IHRoZXkndmUgaGFuZGxlZCB0aGUgbG93LWxldmVsIGludGVyYWN0aW9ucyBhbmQgZGF0YSB0cmFuc2ZlcnMuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjIzMTExLCJPdXRwdXRUb2tlbnMiOjQwLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MzcsIlRvb2xDYWxscyI6WyJyZWFkLWZpbGUiXX0seyJTdGFydGVkIjoiMjAyNi0wOC0yNVQyMzo0MzowNS42ODUzNjYxMTFaIiwiU2VxIjoyMCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjUwMzEwNzk3LCJFcnJvciI6Im5vIG1hdGNoZXMiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJtb2R1bGVfaW5pdFwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJkcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS9zZGlvLmNcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiZXJyb3JcIjogXCJubyBtYXRjaGVzXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTI1VDIzOjQzOjA1LjczNTY4NTQ2OVoiLCJTZXEiOjIxLCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjozNDY2MzUzODY5LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJIZXJlJ3MgbXkgdGFrZSBvbiB0aG9zZSB0aG91Z2h0cywgdGFpbG9yZWQgZm9yIGFuIGV4cGVydCBhdWRpZW5jZTpcblxuKipEaXZpbmcgaW50byB0aGUgU0RJTyBEcml2ZXIgUmVnaXN0cmF0aW9uKipcblxuT2theSwgdGltZSB0byBnZXQgZ3JhbnVsYXIuIE15IGZvY3VzIGlzIG5hcnJvd2luZyBpbiBvbiB0aGUgYHNkaW9fcmVnaXN0ZXJfZHJpdmVyYCBmdW5jdGlvbiwgc3BlY2lmaWNhbGx5IHdpdGhpbiB0aGUgYHNkaW8uY2AgZmlsZS4gSSBuZWVkIHRvIHJlZnJlc2ggbXkgdW5kZXJzdGFuZGluZyBvZiBob3cgdGhpcyBwYXJ0aWN1bGFyIGRyaXZlciBob29rcyBpdHNlbGYgaW50byB0aGUgU0RJTyBzdWJzeXN0ZW0uIFdoYXQncyB0aGUgcmVnaXN0cmF0aW9uIHByb2Nlc3MgbG9vayBsaWtlLCB0b3AgdG8gYm90dG9tPyBJIG5lZWQgdG8gcXVpY2tseSByZWNhbGwgdGhlIGRhdGEgc3RydWN0dXJlcyBpbnZvbHZlZCwgdGhlIHNlcXVlbmNlIG9mIGV2ZW50cy4uLiB3aGF0IGFyZSB0aGUgY3JpdGljYWwgcG9pbnRzIG9mIGNvbnRlbnRpb24gb3IgcG90ZW50aWFsIHBpdGZhbGxzPyBJcyB0aGVyZSBhbnl0aGluZyBub24tc3RhbmRhcmQgaGVyZSB0aGF0IG1pZ2h0IGJlIHdvcnRoIHJldmlzaXRpbmcgb3IgdGVzdGluZz8gR290dGEgcXVpY2tseSBwdWxsIHVwIHRoZSBkZWZpbml0aW9uLCByZWZyZXNoIG15c2VsZiBvbiB0aGUgYXJndW1lbnRzLi4uIGFuZCB0aGVuLCB3aGF0IGFyZSB0aGUgcmVsYXRlZCBkYXRhIHN0cnVjdHVyZXM/IEdvdHRhIGxvb2sgaW50byB0aGUgY29udGV4dCBhbmQgaWYgdGhpcyBpcyBhIHBsYXRmb3JtLXNwZWNpZmljIGZ1bmN0aW9uIG9yIGFuIGVudHJ5IHBvaW50IGZvciBnZW5lcmljIFNESU8gZHJpdmVyIGludGVncmF0aW9uLiBJIG5lZWQgdG8gcXVpY2tseSBnZXQgYSBtZW50YWwgbWFwIGdvaW5nIHNvIEkgY2FuIGV2YWx1YXRlIGl0IGluIHRoZSBvdmVyYWxsIGRyaXZlciBhcmNoaXRlY3R1cmUuIExldCdzIHNlZSB3aGF0IHdlJ3ZlIGdvdC5cblxuXG4iLCJJbnB1dFRva2VucyI6MjMzNjAsIk91dHB1dFRva2VucyI6NDMsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoxOSwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wOC0yNVQyMzo0MzowOS4yMDIwNDE2MjhaIiwiU2VxIjoyMiwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjQ2MjU1MzQ4LCJFcnJvciI6Im5vIG1hdGNoZXMiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJzZGlvX3JlZ2lzdGVyX2RyaXZlclwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJkcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS9zZGlvLmNcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiZXJyb3JcIjogXCJubyBtYXRjaGVzXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTI1VDIzOjQzOjA5LjI0ODMwNjg3NloiLCJTZXEiOjIzLCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjozMTE4NDIyNTk1LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJIZXJlJ3MgbXkgdGhvdWdodCBwcm9jZXNzLCBhcyBpZiBJIHdlcmUgd29ya2luZyB0aHJvdWdoIHRoaXM6XG5cbioqTG9jYXRpbmcgdGhlIERyaXZlciBSZWdpc3RyYXRpb24qKlxuXG5Pa2F5LCBmaXJzdCB0aGluZ3MgZmlyc3QsIEkgbmVlZCB0byBwaW5wb2ludCB3aGVyZSB0aGlzIFNESU8gZHJpdmVyIGlzIGFjdHVhbGx5IGJlaW5nIHJlZ2lzdGVyZWQuIEkgY2FuJ3QganVzdCBhc3N1bWUgaXQncyBvYnZpb3VzOyBJIG5lZWQgdG8gZmluZCB0aGUgc3BlY2lmaWMgZnVuY3Rpb24gY2FsbC4gTXkgaW5pdGlhbCBpbnN0aW5jdCBpcyB0byBsb29rIGZvciB0aGUgcmVnaXN0cmF0aW9uIGZ1bmN0aW9uIGl0c2VsZi4gVGhhdCB3b3VsZCBiZSBgc2Rpb19yZWdpc3Rlcl9kcml2ZXJgLiBTbywgSSdsbCBpbml0aWF0ZSBhIHNlYXJjaCBmb3IgdGhhdCBmdW5jdGlvbiB3aXRoaW4gdGhlIGVudGlyZSBkaXJlY3RvcnkuIEEgZ29vZCBncmVwIG9yIGZpbmQgY29tbWFuZCBzaG91bGQgZG8gdGhlIHRyaWNrLCBhbmQgdGhlbiBJIGNhbiByZWZpbmUgbXkgc2VhcmNoIGJhc2VkIG9uIHRoZSByZXN1bHRzLiBUaW1lIHRvIGRpZyBpbiBhbmQgc2VlIHdoYXQgdGhhdCB1bmNvdmVycy5cblxuXG4iLCJJbnB1dFRva2VucyI6MjM2NTAsIk91dHB1dFRva2VucyI6MzksIk91dHB1dFRob3VnaHRzVG9rZW5zIjoyNiwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wOC0yNVQyMzo0MzoxMi4zNjY3MzE1OFoiLCJTZXEiOjI0LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NDczMzY0NzgsIkVycm9yIjoibm8gbWF0Y2hlcyIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcInNkaW9fcmVnaXN0ZXJfZHJpdmVyXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpL1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJlcnJvclwiOiBcIm5vIG1hdGNoZXNcIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMjVUMjM6NDM6MTIuNDE0MDc2MjA5WiIsIlNlcSI6MjUsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjMxNjgyMjU0OTMsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6Ik9rYXksIGhlcmUncyBteSB0YWtlIG9uIHRob3NlIHRob3VnaHRzLCBmcmFtZWQgYXMgbXkgb3duIG1lbnRhbCBwcm9jZXNzLCBnaXZlbiBteSBleHBlcnRpc2U6XG5cbioqQ2hlY2tpbmcgdGhlIFNESU8gUmVnaXN0cmF0aW9uIFBhdGgqKlxuXG5BbHJpZ2h0LCBzbyBJIG5lZWQgdG8gZmlndXJlIG91dCBob3cgYG54cHdpZmlfc2Rpb2AgaXMgZ2V0dGluZyBob29rZWQgdXAuIE15IGluaXRpYWwgaW5zdGluY3QgaXMgdG8gZ28gcmlnaHQgdG8gdGhlIHNvdXJjZSBhbmQgc2VlIHdoYXQncyBnb2luZyBvbi4gTGV0J3Mgc3RhcnQgd2l0aCBgc2Rpby5jYC4gSSdtIGV4cGVjdGluZyB0byBmaW5kIHRoZSBrZXkgdG8gdGhpcyBkcml2ZXIgcmVnaXN0cmF0aW9uIGVpdGhlciB0aHJvdWdoIGEgc3RhbmRhcmQgYG1vZHVsZV9pbml0YCBjYWxsLCBtYXliZSBkaXJlY3RseSBjYWxsaW5nIGBzZGlvX3JlZ2lzdGVyX2RyaXZlcmAsIG9yIGV2ZW4gcG9zc2libHkgdXNpbmcgdGhlIG1hY3JvIGBtb2R1bGVfc2Rpb19kcml2ZXJgLiBPbmUgb2YgdGhvc2Ugc2hvdWxkIHBvaW50IG1lIHJpZ2h0IHRvIHRoZSByZWdpc3RyYXRpb24gZnVuY3Rpb24uIFRoaXMgaXMgdXN1YWxseSB0aGUgZmlyc3Qgc3RlcCB0byB1bmRlcnN0YW5kaW5nIGhvdyBhbnkgU0RJTyBkcml2ZXIgaXMgaW50ZWdyYXRlZCBpbnRvIHRoZSBzeXN0ZW0uIEtub3dpbmcgdGhlIHJlZ2lzdHJhdGlvbiBtZWNoYW5pc20gd2lsbCB0aGVuIGxldCBtZSB0cmFjZSBiYWNrIGhvdyBpdCdzIGluaXRpYWxpemVkIGFuZCBob3cgaXQgaW50ZXJhY3RzIHdpdGggdGhlIFNESU8gYnVzLlxuXG5cbiIsIklucHV0VG9rZW5zIjoyMzg2NywiT3V0cHV0VG9rZW5zIjozOSwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjQ2LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTI1VDIzOjQzOjE1LjU4MjMwNDM0MVoiLCJTZXEiOjI2LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NDkxMzYwNTgsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwibW9kdWxlX3NkaW9fZHJpdmVyXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpL1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJkcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS9zZGlvLmM9MjI5ND1zdGF0aWMgc3RydWN0IG54cHdpZmlfaWZfb3BzIHNkaW9fb3BzID0ge1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvc2Rpby5jLTIzMjEtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvc2Rpby5jOjIzMjI6bW9kdWxlX3NkaW9fZHJpdmVyKG54cHdpZmlfc2Rpbyk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvc2Rpby5jLTIzMjMtXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTI1VDIzOjQzOjE1LjYzMTQ0NDczOVoiLCJTZXEiOjI3LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo2Njg0MTkwMzY5LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKldvcnRoRnV6emluZz1mYWxzZTogU0RJTyBEcml2ZXIgUmVxdWlyZXMgUGh5c2ljYWwgSGFyZHdhcmUqKlxuXG5BbHJpZ2h0LCBsZXQncyBicmVhayB0aGlzIGRvd24uIFRoaXMgaXMgYW4gU0RJTyBkcml2ZXIsIHNvIHJpZ2h0IGF3YXksIEknbSB0aGlua2luZyBhYm91dCB0aGUgcGh5c2ljYWwgaGFyZHdhcmUgZGVwZW5kZW5jeS4gVGhpcyBtZWFucyByZWFsIFNESU8gaGFyZHdhcmUgaXMgbmVjZXNzYXJ5LCBhbmQgbXkgaW5pdGlhbCBodW5jaCBpcyBjb25maXJtZWQgYnkgdGhlIFFFTVUgbGltaXRhdGlvbnMuIFdhaXQsIGhhbmcgb24uLi4gaXMgdGhlcmUgYW55IFNESU8gZW11bGF0aW9uIGluIHRoZSBzdGFuZGFyZCBRRU1VIHNldHVwIHVzZWQgZm9yIGZ1enppbmc/IE5vLCB0aGF0J3MgYSBuZWdhdGl2ZS4gU0RJTyBkZXZpY2VzIGFyZW4ndCBlbXVsYXRlZCBpbiB0aGUgdXN1YWwgUUVNVSBjb25maWd1cmF0aW9ucywgYW5kIHRoYXQncyBhIHNpZ25pZmljYW50IHJvYWRibG9jay5cblxuVGhlIHByb21wdCBzcGVjaWZpY2FsbHkgZmxhZ3MgdmVuZG9yLXNwZWNpZmljIGRyaXZlcnMgZm9yIFBDSWUgZGV2aWNlcyB0aGF0IGRlbWFuZCBwaHlzaWNhbCBoYXJkd2FyZSDigJMgYW5kIHRoaXMgaXMgYSB2ZW5kb3Itc3BlY2lmaWMgU0RJTyBkcml2ZXIsIGRlc2lnbmVkIGZvciBOWFAgY2hpcHMuIEl0IGV4cGxpY2l0bHkgbmVlZHMgU0RJTyBjYXJkcywgd2hpY2ggYXJlIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCBRRU1VLiBUaGF0IG1lYW5zIGl0J3MgdW5yZWFjaGFibGUgaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgR0NFIG9yIHRoZSBRRU1VIGNvbmZpZ3VyYXRpb25zIHdlJ3JlIHVzaW5nLiBTbywgdGhlIHZlcmRpY3QgaXMgaW46IHRoaXMgaXNuJ3Qgd29ydGggZnV6emluZyBkaXJlY3RseS4gSSBzaG91bGQgcmV0dXJuIFdvcnRoRnV6emluZz1mYWxzZS5cblxuSSdsbCBkbyBhIHF1aWNrIHNhbml0eSBjaGVjayB0byBiZSB0aG9yb3VnaC4gTGV0J3Mgc2VlIGlmIHRoZXJlJ3MgKmFueSogb3RoZXIgcG9zc2libGUgcGF0aCB0byB0aGUgY29kZS4gTG9va2luZyBhdCB0aGUgbW9kaWZpZWQgZnVuY3Rpb25zLCBgbnhwd2lmaV8xMW5fZGVsZXRlX3R4X2JhX3N0cmVhbV90YmxfZW50cnlgIGFuZCBgbnhwd2lmaV8xMW5fZGVsX3J4X3Jlb3JkZXJfdGJsX2J5X3RhYCwgdGhleSBhcmUgY2FsbGVkIGZyb20gd2l0aGluIHRoZSBkcml2ZXIncyBpbnRlcm5hbCBsb2dpYywgc3BlY2lmaWNhbGx5IGZyb20gYG54cHdpZmlfMTFuX2NsZWFudXBfcmVvcmRlcl90YmxgIG9yIHNvbWV0aGluZyBzaW1pbGFyLiBHaXZlbiB0aGUgZHJpdmVyIGl0c2VsZiBjYW4ndCBiZSBwcm9iZWQgb3IgcmVhY2hlZCwgYmVjYXVzZSBpdCBuZWVkcyB0aGUgcGh5c2ljYWwgU0RJTyBoYXJkd2FyZSwgdGhlc2UgaW50ZXJuYWwgZnVuY3Rpb25zIGFyZSBlZmZlY3RpdmVseSB1bnJlYWNoYWJsZSBhcyB3ZWxsLlxuXG5UaGVyZWZvcmUsIHRoZSBpbml0aWFsIGFzc2Vzc21lbnQgc3RhbmRzLiBJJ2xsIHN0aWNrIHdpdGggV29ydGhGdXp6aW5nPWZhbHNlLlxuXG5cbiIsIklucHV0VG9rZW5zIjoyNDI3OSwiT3V0cHV0VG9rZW5zIjo4MiwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjMyNiwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wOC0yNVQyMzo0MzoyMi4zMTU2Mzc0NThaIiwiU2VxIjoyOCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoic2V0LXJlc3VsdHMiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjozNTM1MCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogW10sXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBtb2RpZmllcyB0aGUgbnhwd2lmaSBkcml2ZXIsIHdoaWNoIGlzIGEgdmVuZG9yLXNwZWNpZmljIFNESU8gd2lyZWxlc3MgZHJpdmVyIGZvciBOWFAgY2hpcHMuIFNESU8gaGFyZHdhcmUgaXMgbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIFFFTVUgb3IgR0NFIGVudmlyb25tZW50cyB1c2VkIGZvciBmdXp6aW5nLCBzbyB0aGlzIGNvZGUgaXMgdW5yZWFjaGFibGUuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IGZhbHNlXG59IiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IG51bGwsXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBtb2RpZmllcyB0aGUgbnhwd2lmaSBkcml2ZXIsIHdoaWNoIGlzIGEgdmVuZG9yLXNwZWNpZmljIFNESU8gd2lyZWxlc3MgZHJpdmVyIGZvciBOWFAgY2hpcHMuIFNESU8gaGFyZHdhcmUgaXMgbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIFFFTVUgb3IgR0NFIGVudmlyb25tZW50cyB1c2VkIGZvciBmdXp6aW5nLCBzbyB0aGlzIGNvZGUgaXMgdW5yZWFjaGFibGUuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IGZhbHNlXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0yNVQyMzo0MzoyMi4zMTU2NzU5MThaIiwiU2VxIjoyOSwiTmVzdGluZyI6MSwiVHlwZSI6ImFjdGlvbiIsIk5hbWUiOiJJZiIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjE1NTAsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJXb3J0aEZ1enppbmdcIjogZmFsc2Vcbn0iLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9XTsKCQkJaWYgKCFyYXdEYXRhIHx8IHJhd0RhdGEubGVuZ3RoID09PSAwKSByZXR1cm47CgoJCQlkcmF3U3VtbWFyeVRhYmxlcyhyYXdEYXRhKTsKCQkJZHJhd0R1cmF0aW9uQ2hhcnQocmF3RGF0YSk7CgkJCWRyYXdUb2tlbkNvbnN1bXB0aW9uQ2hhcnQocmF3RGF0YSk7CgkJfQoKCQlmdW5jdGlvbiBkcmF3U3VtbWFyeVRhYmxlcyhyYXdEYXRhKSB7CgkJCWNvbnN0IHN0YXRzID0gewoJCQkJbGxtOiB7IGNvdW50OiAwLCB0b2tlbnM6IDAsIGR1cmF0aW9uOiAwIH0sCgkJCQl0b29sOiB7IGNvdW50OiAwLCBkdXJhdGlvbjogMCB9CgkJCX07CgoJCQlyYXdEYXRhLmZvckVhY2gocyA9PiB7CgkJCQljb25zdCBkdXIgPSBzLkR1cmF0aW9uIC8gMTAwMDAwMDAwMDsgCgkJCQlpZiAocy5UeXBlID09PSAibGxtIikgewoJCQkJCXN0YXRzLmxsbS5jb3VudCsrOwoJCQkJCXN0YXRzLmxsbS50b2tlbnMgKz0gKHMuSW5wdXRUb2tlbnMgKyBzLk91dHB1dFRva2VucyArIHMuT3V0cHV0VGhvdWdodHNUb2tlbnMpOwoJCQkJCXN0YXRzLmxsbS5kdXJhdGlvbiArPSBkdXI7CgkJCQl9IGVsc2UgaWYgKHMuVHlwZSA9PT0gInRvb2wiKSB7CgkJCQkJc3RhdHMudG9vbC5jb3VudCsrOwoJCQkJCXN0YXRzLnRvb2wuZHVyYXRpb24gKz0gZHVyOwoJCQkJfQoJCQl9KTsKCgkJCWNvbnN0IGF2Z0xsbUR1ciA9IHN0YXRzLmxsbS5jb3VudCA+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-workflowg67jc[0].run-triage(0) Phase: Succeeded StartedAt: 2026-08-25 23:27:55 +0000 UTC FinishedAt: 2026-08-25 23:43:24 +0000 UTC Input: nil Output: &Outputs{Parameters:[]Parameter{Parameter{Name:result,Default:nil,Value:*{ "skip_reason": "AI determined the patch has no functional impact", "targets": null, "trajectory": "CjwhZG9jdHlwZSBodG1sPgo8aHRtbD4KPGhlYWQ+Cgk8dGl0bGU+QUkgVHJhamVjdG9yeTwvdGl0bGU+Cgk8c3R5bGU+CgkJdGFibGUgewoJCQlib3JkZXI6IDFweCBzb2xpZCAjY2NjOwoJCQltYXJnaW46IDIwcHggNXB4OwoJCQlib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlOwoJCQl3aGl0ZS1zcGFjZTogbm93cmFwOwoJCQl0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsKCQkJb3ZlcmZsb3c6IGhpZGRlbjsKCQl9CgoJCXRhYmxlIGNhcHRpb24gewoJCQlmb250LXdlaWdodDogYm9sZDsKCQl9CgoJCXRhYmxlIHRkLCB0YWJsZSB0aCB7CgkJCXZlcnRpY2FsLWFsaWduOiB0b3A7CgkJCXBhZGRpbmc6IDJweCA4cHg7CgkJCXRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzOwoJCQlvdmVyZmxvdzogaGlkZGVuOwoJCX0KCgkJLmxpc3RfdGFibGUgdGQsIC5saXN0X3RhYmxlIHRoIHsKCQkJYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCAjY2NjOwoJCX0KCgkJLmxpc3RfdGFibGUgdGggewoJCQliYWNrZ3JvdW5kOiAjRjRGNEY0OwoJCX0KCgkJLmxpc3RfdGFibGUgdHI6bnRoLWNoaWxkKDJuKSB7CgkJCWJhY2tncm91bmQ6ICNGNEY0RjQ7CgkJfQoKCQkubGlzdF90YWJsZSB0cjpob3ZlciB7CgkJCWJhY2tncm91bmQ6ICNmZmZmOTk7CgkJfQoKCQkjYWlfZGV0YWlsc19kaXYgcHJlIHsKCQkJbWFyZ2luOiAxcHg7CgkJCW1heC13aWR0aDogMTIwY2g7CgkJCXdoaXRlLXNwYWNlOiBwcmUtd3JhcDsKCQkJb3ZlcmZsb3ctd3JhcDogYnJlYWstd29yZDsKCQl9Cgk8L3N0eWxlPgo8L2hlYWQ+Cjxib2R5PgoJPGgxPkFJIFRyYWplY3Rvcnk8L2gxPgoJPGJyPgoKCQoJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQk8Y2FwdGlvbj5UcmFqZWN0b3J5OiAoPGEgaHJlZj0iIyIgb25jbGljaz0idG9nZ2xlQWxsRGV0YWlscygpOyByZXR1cm4gZmFsc2U7Ij5FeHBhbmQvQ29sbGFwc2UgQWxsPC9hPik8L2NhcHRpb24+CgkJPHRoZWFkPjx0cj4KCQkJPHRoPlNlcTwvdGg+CgkJCTx0aD5UaW1lc3RhbXA8L3RoPgoJCQk8dGg+VHlwZTwvdGg+CgkJCTx0aD5OYW1lPC90aD4KCQkJPHRoPkR1cmF0aW9uPC90aD4KCQk8L3RyPjwvdGhlYWQ+CgkJPHRib2R5PgoJCQoJCTx0cj4KCQkJPHRkPjAvMDwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzI1IDIzOjQyPC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBudWxsLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFtdLAogICYjMzQ7S01TQU5SZWFzb25pbmcmIzM0OzogJiMzNDsmIzM0OywKICAmIzM0O05lZWRzS01TQU4mIzM0OzogZmFsc2UsCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIG54cHdpZmkgZHJpdmVyLCB3aGljaCBpcyBhIHZlbmRvci1zcGVjaWZpYyBTRElPIHdpcmVsZXNzIGRyaXZlciBmb3IgTlhQIGNoaXBzLiBTRElPIGhhcmR3YXJlIGlzIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCBRRU1VIG9yIEdDRSBlbnZpcm9ubWVudHMgdXNlZCBmb3IgZnV6emluZywgc28gdGhpcyBjb2RlIGlzIHVucmVhY2hhYmxlLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IGZhbHNlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xLzE8L3RkPgoJCQk8dGQ+MjAyNi8wOC8yNSAyMzo0MjwvdGQ+CgkJCTx0ZD5hY3Rpb248L3RkPgoJCQk8dGQ+cmVhZC1wYXRjaC1kaWZmPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7UGF0Y2hEaWZmJiMzNDs6ICYjMzQ7Y29tbWl0IDQ0NjkxNWE2YmMzYWFiOGY4M2YxNGE4YjNlMDc3Yzg5MTg4ZWNiMzVcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cdTAwM2VcbkRhdGU6ICAgVHVlIEF1ZyAyNSAyMzo0MjoyMyAyMDI2ICYjNDM7MDAwMFxuXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XG5cbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMW4uYyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExbi5jXG5pbmRleCBjMmE1NGQ3ODFiNDJhLi4yNWIyZTQzMGYzZjkzIDEwMDY0NFxuLS0tIGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFuLmNcbiYjNDM7JiM0MzsmIzQzOyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExbi5jXG5AQCAtNDUxLDcgJiM0Mzs0NTEsNyBAQCB2b2lkXG4gbnhwd2lmaV8xMW5fZGVsZXRlX3R4X2JhX3N0cmVhbV90YmxfZW50cnkoc3RydWN0IG54cHdpZmlfcHJpdmF0ZSAqcHJpdixcbiBcdFx0XHRcdFx0ICBzdHJ1Y3Qgbnhwd2lmaV90eF9iYV9zdHJlYW1fdGJsICp0YmwpXG4ge1xuLVx0aWYgKCF0YmwgfHwgbnhwd2lmaV9pc190eF9iYV9zdHJlYW1fcHRyX3ZhbGlkKHByaXYsIHRibCkpXG4mIzQzO1x0aWYgKCF0YmwgfHwgIW54cHdpZmlfaXNfdHhfYmFfc3RyZWFtX3B0cl92YWxpZChwcml2LCB0YmwpKVxuIFx0XHRyZXR1cm47XG4gXG4gXHRueHB3aWZpX2RiZyhwcml2LVx1MDAzZWFkYXB0ZXIsIElORk8sXG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFuX3J4cmVvcmRlci5jIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFuX3J4cmVvcmRlci5jXG5pbmRleCA2NWI2Mjg0MTE1NDNiLi44N2NmMmVjODU5OTE0IDEwMDY0NFxuLS0tIGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFuX3J4cmVvcmRlci5jXG4mIzQzOyYjNDM7JiM0MzsgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMW5fcnhyZW9yZGVyLmNcbkBAIC0yMDUsMTEgJiM0MzsyMDUsMTIgQEAgdm9pZCBueHB3aWZpXzExbl9kZWxfcnhfcmVvcmRlcl90YmxfYnlfdGEoc3RydWN0IG54cHdpZmlfcHJpdmF0ZSAqcHJpdiwgdTggKnRhKVxuIFx0XHRyZXR1cm47XG4gXG4gXHRmb3IgKGkgPSAwOyBpIFx1MDAzYyBNQVhfTlVNX1RJRDsgaSYjNDM7JiM0MzspIHtcbi1cdFx0Z3VhcmQocmN1KSgpO1xuLVx0XHRsaXN0X2Zvcl9lYWNoX2VudHJ5X3JjdSh0YmwsIFx1MDAyNnByaXYtXHUwMDNlcnhfcmVvcmRlcl90YmxfcHRyW2ldLCBsaXN0KSB7XG4tXHRcdFx0aWYgKCFtZW1jbXAodGJsLVx1MDAzZXRhLCB0YSwgRVRIX0FMRU4pKSB7XG4tXHRcdFx0XHRJTklUX0xJU1RfSEVBRChcdTAwMjZ0YmwtXHUwMDNldG1wX2xpc3QpO1xuLVx0XHRcdFx0bGlzdF9hZGRfdGFpbChcdTAwMjZ0YmwtXHUwMDNldG1wX2xpc3QsIFx1MDAyNnRvX2RlbGV0ZSk7XG4mIzQzO1x0XHRzY29wZWRfZ3VhcmQocmN1KSB7XG4mIzQzO1x0XHRcdGxpc3RfZm9yX2VhY2hfZW50cnlfcmN1KHRibCwgXHUwMDI2cHJpdi1cdTAwM2VyeF9yZW9yZGVyX3RibF9wdHJbaV0sIGxpc3QpIHtcbiYjNDM7XHRcdFx0XHRpZiAoIW1lbWNtcCh0YmwtXHUwMDNldGEsIHRhLCBFVEhfQUxFTikpIHtcbiYjNDM7XHRcdFx0XHRcdElOSVRfTElTVF9IRUFEKFx1MDAyNnRibC1cdTAwM2V0bXBfbGlzdCk7XG4mIzQzO1x0XHRcdFx0XHRsaXN0X2FkZF90YWlsKFx1MDAyNnRibC1cdTAwM2V0bXBfbGlzdCwgXHUwMDI2dG9fZGVsZXRlKTtcbiYjNDM7XHRcdFx0XHR9XG4gXHRcdFx0fVxuIFx0XHR9XG4gXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Mi8xPC90ZD4KCQkJPHRkPjIwMjYvMDgvMjUgMjM6NDI8L3RkPgoJCQk8dGQ+YWdlbnQ8L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+YmVzdC1leHBlbnNpdmU8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBudWxsLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFtdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBueHB3aWZpIGRyaXZlciwgd2hpY2ggaXMgYSB2ZW5kb3Itc3BlY2lmaWMgU0RJTyB3aXJlbGVzcyBkcml2ZXIgZm9yIE5YUCBjaGlwcy4gU0RJTyBoYXJkd2FyZSBpcyBub3QgZW11bGF0ZWQgaW4gc3RhbmRhcmQgUUVNVSBvciBHQ0UgZW52aXJvbm1lbnRzIHVzZWQgZm9yIGZ1enppbmcsIHNvIHRoaXMgY29kZSBpcyB1bnJlYWNoYWJsZS4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiBmYWxzZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5JbnN0cnVjdGlvbjo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPllvdSBhcmUgYW4gZXhwZXJ0IExpbnV4IGtlcm5lbCBtYWludGFpbmVyLgpZb3VyIGpvYiBpcyB0byByZXZpZXcgYSBwcm92aWRlZCBwYXRjaCBzZXJpZXMgYW5kIGRldGVybWluZQppZiBpdCBtYWtlcyBmdW5jdGlvbmFsIGNoYW5nZXMgdG8gdGhlIGtlcm5lbCB0aGF0IHNob3VsZCBiZSBmdXp6ZWQuCgpJTVBPUlRBTlQ6IFRoZSBjaGFuZ2VzIGhhdmUgQUxSRUFEWSBiZWVuIGFwcGxpZWQgYW5kIGNvbW1pdHRlZCBhcyB0aGUgSEVBRCBjb21taXQgaW4KeW91ciB3b3Jrc3BhY2UuIERvIE5PVCByZWx5IG9uIHlvdXIgaW50ZXJuYWwga25vd2xlZGdlIG9mIHRoZSBrZXJuZWwuIFlvdSBtdXN0IGFjdGl2ZWx5CnVzZSB5b3VyIGNvZGUgYWNjZXNzIHRvb2xzIHRvIGV4YW1pbmUgdGhlIGFjdHVhbCBzb3VyY2UgY29kZSBhbmQgY29uZmlybSBhbnkgYXNzdW1wdGlvbnMuCgpSZXR1cm4gV29ydGhGdXp6aW5nPWZhbHNlIGlmIHRoZSBwYXRjaCBvbmx5IGNvbnRhaW5zOgotIE1vZGlmaWNhdGlvbnMgdG8gRG9jdW1lbnRhdGlvbi8sIEtjb25maWcgZmlsZXMsIG9yIGNvZGUgY29tbWVudHMuCi0gUHVyZWx5IGRlY29yYXRpdmUgY2hhbmdlcywgc3VjaCBhcyBsb2dnaW5nIChlLmcuLCBwcl9lcnIsIHByaW50aykgb3IgdHJhY2Vwb2ludHMuCi0gQ2hhbmdlcyB0byBudW1lcmljIGNvbnN0YW50cyBvciBtYWNyb3MgdGhhdCBkbyBub3QgZnVuY3Rpb25hbGx5IGFsdGVyIGV4ZWN1dGlvbiBmbG93LgotIENvZGUgcGF0aHMgdGhhdCBhcmUgaW1wb3NzaWJsZSB0byByZWFjaCBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBHQ0Ugb3IgUUVNVSwKICBldmVuIHdoZW4gdXRpbGl6aW5nIHNvZnR3YXJlLWVtdWxhdGVkIGhhcmR3YXJlIChlLmcuLCB1c2IgZ2FkZ2V0LCBtYWM4MDIxMV9od3NpbSkuCi0gQ29kZSBpbiB2ZW5kb3Itc3BlY2lmaWMgUENJZSBzd2l0Y2gsIFNtYXJ0TklDLCBvciBHUFUgZHJpdmVycyAoZS5nLiwgbWx4c3csIHBkc19jb3JlLCBxZWQsCiAgaW9uaWMsIGFtZGdwdSkgdGhhdCByZXF1aXJlIHBoeXNpY2FsIFBDSWUgaGFyZHdhcmUgY2FyZHMgbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIFFFTVUuCi0gRHJpdmVyIC5yZW1vdmUsIC5zaHV0ZG93biwgb3IgcGNpX3VucmVnaXN0ZXJfZHJpdmVyIHRlYXJkb3duIGNhbGxiYWNrcyAoZS5nLiwgaWdiX3JlbW92ZSkKICB0aGF0IGFyZSBleGVjdXRlZCBvbmx5IGR1cmluZyBQQ0kgaG90LXVucGx1ZyBvciBzeXNmcyBkcml2ZXIgdW5iaW5kIG9wZXJhdGlvbnMuCgpJZiBpdCBtb2RpZmllcyByZWFjaGFibGUgY29yZSBrZXJuZWwgbG9naWMsIGRyaXZlcnMsIG9yIGFyY2hpdGVjdHVyZXMsIHVzZSB5b3VyIGNvZGUgc2VhcmNoCnRvb2xzIHRvIHZlcmlmeSB0aGUgY29kZSBjYW4gYmUgZXhlY3V0ZWQsIHRoZW4gcmV0dXJuIFdvcnRoRnV6emluZz10cnVlLgoKV2hlbiByZXR1cm5pbmcgV29ydGhGdXp6aW5nPXRydWUsIHlvdSBNVVNUIEFMU086CjEuIEV4dHJhY3QgYW55IHNwZWNpZmljIGtlcm5lbCBmdW5jdGlvbnMgdGhhdCBzaG91bGQgYmUgaGVhdmlseSBmdXp6ZWQgaW50byBGb2N1c1N5bWJvbHMuCiAgIEF2b2lkIGxpc3RpbmcgZ2VuZXJpYyBob3QtcGF0aCBmdW5jdGlvbnMgdG8gcHJldmVudCBza2V3ZWQgdGVzdCBkaXN0cmlidXRpb25zLgogICBQcmVmZXIgbm9uLXN0YXRpYywgbm9uLWlubGluZWQgQVBJIGVudHJ5cG9pbnQgZnVuY3Rpb25zIG92ZXIgaW50ZXJuYWwgc3RhdGljIGhlbHBlciBmdW5jdGlvbnMKICAgKHdoaWNoIGFyZSBpbmxpbmVkIGJ5IHRoZSBjb21waWxlciBhbmQgZG8gbm90IGhhdmUgZGlzdGluY3Qgc3ltYm9sIGFkZHJlc3NlcykuCjIuIElkZW50aWZ5IGFueSBzcGVjaWZpYyBDT05GSUdfIG9wdGlvbnMgcmVxdWlyZWQgdG8gcHJvcGVybHkgdGVzdCB0aGlzIG5ldy9tb2RpZmllZCBmZWF0dXJlLgogICBHbyBhbmQgbG9vayBpbnRvIHRoZSBLY29uZmlnIGZpbGVzIGFuZCBjaGVjayBmb3IgaWZkZWZzIGFyb3VuZCB0aGUgY29kZSwgZG8gbm90IG1ha2UgYXNzdW1wdGlvbnMuCiAgIEFsc28gY2hlY2sgJiMzNDtkZXBlbmRzIG9uJiMzNDsgbGluZXMgaW4gS2NvbmZpZyB0byBpbmNsdWRlIGFueSBub24tc3RhbmRhcmQgcGFyZW50IHN1YnN5c3RlbSBjb25maWdzCiAgIG5lZWRlZCBmb3IgS2J1aWxkIHRvIGNvbXBpbGUgdGhlIGNvZGUgc3RhdGljYWxseSBpbnRvIHZtbGludXguIExpc3QgdGhlbSBpbiB0aGUgRW5hYmxlQ29uZmlncwogICBvdXRwdXQgYXJyYXksIGFuZCBETyBOT1QgYWRkIGEgJiMzOTtDT05GSUdfJiMzOTsgcHJlZml4IChlLmcuLCByZXR1cm4gJiMzNDtORVRfSVBWNCYjMzQ7IGluc3RlYWQgb2YgJiMzNDtDT05GSUdfTkVUX0lQVjQmIzM0OykuClByZWZlciBjYWxsaW5nIHNldmVyYWwgdG9vbHMgYXQgdGhlIHNhbWUgdGltZSB0byBzYXZlIHJvdW5kLXRyaXBzLgoKClVzZSBzZXQtcmVzdWx0cyB0b29sIHRvIHByb3ZpZGUgcmVzdWx0cyBvZiB0aGUgYW5hbHlzaXMuCkl0IG11c3QgYmUgY2FsbGVkIGV4YWN0bHkgb25jZSBiZWZvcmUgdGhlIGZpbmFsIHJlcGx5LgpJZ25vcmUgcmVzdWx0cyBvZiB0aGlzIHRvb2wuCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UHJvbXB0OjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Rm9yIHlvdXIgY29udmVuaWVuY2UsIGhlcmUgaXMgdGhlIGRpZmYgb2YgdGhlIGNoYW5nZXM6CmNvbW1pdCA0NDY5MTVhNmJjM2FhYjhmODNmMTRhOGIzZTA3N2M4OTE4OGVjYjM1CkF1dGhvcjogc3l6LWNsdXN0ZXIgJmx0O3RyaWFnZUBzeXprYWxsZXIuY29tJmd0OwpEYXRlOiAgIFR1ZSBBdWcgMjUgMjM6NDI6MjMgMjAyNiAmIzQzOzAwMDAKCiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXcKCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMW4uYyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExbi5jCmluZGV4IGMyYTU0ZDc4MWI0MmEuLjI1YjJlNDMwZjNmOTMgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExbi5jCiYjNDM7JiM0MzsmIzQzOyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExbi5jCkBAIC00NTEsNyAmIzQzOzQ1MSw3IEBAIHZvaWQKIG54cHdpZmlfMTFuX2RlbGV0ZV90eF9iYV9zdHJlYW1fdGJsX2VudHJ5KHN0cnVjdCBueHB3aWZpX3ByaXZhdGUgKnByaXYsCiAJCQkJCSAgc3RydWN0IG54cHdpZmlfdHhfYmFfc3RyZWFtX3RibCAqdGJsKQogewotCWlmICghdGJsIHx8IG54cHdpZmlfaXNfdHhfYmFfc3RyZWFtX3B0cl92YWxpZChwcml2LCB0YmwpKQomIzQzOwlpZiAoIXRibCB8fCAhbnhwd2lmaV9pc190eF9iYV9zdHJlYW1fcHRyX3ZhbGlkKHByaXYsIHRibCkpCiAJCXJldHVybjsKIAogCW54cHdpZmlfZGJnKHByaXYtJmd0O2FkYXB0ZXIsIElORk8sCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMW5fcnhyZW9yZGVyLmMgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMW5fcnhyZW9yZGVyLmMKaW5kZXggNjViNjI4NDExNTQzYi4uODdjZjJlYzg1OTkxNCAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFuX3J4cmVvcmRlci5jCiYjNDM7JiM0MzsmIzQzOyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExbl9yeHJlb3JkZXIuYwpAQCAtMjA1LDExICYjNDM7MjA1LDEyIEBAIHZvaWQgbnhwd2lmaV8xMW5fZGVsX3J4X3Jlb3JkZXJfdGJsX2J5X3RhKHN0cnVjdCBueHB3aWZpX3ByaXZhdGUgKnByaXYsIHU4ICp0YSkKIAkJcmV0dXJuOwogCiAJZm9yIChpID0gMDsgaSAmbHQ7IE1BWF9OVU1fVElEOyBpJiM0MzsmIzQzOykgewotCQlndWFyZChyY3UpKCk7Ci0JCWxpc3RfZm9yX2VhY2hfZW50cnlfcmN1KHRibCwgJmFtcDtwcml2LSZndDtyeF9yZW9yZGVyX3RibF9wdHJbaV0sIGxpc3QpIHsKLQkJCWlmICghbWVtY21wKHRibC0mZ3Q7dGEsIHRhLCBFVEhfQUxFTikpIHsKLQkJCQlJTklUX0xJU1RfSEVBRCgmYW1wO3RibC0mZ3Q7dG1wX2xpc3QpOwotCQkJCWxpc3RfYWRkX3RhaWwoJmFtcDt0YmwtJmd0O3RtcF9saXN0LCAmYW1wO3RvX2RlbGV0ZSk7CiYjNDM7CQlzY29wZWRfZ3VhcmQocmN1KSB7CiYjNDM7CQkJbGlzdF9mb3JfZWFjaF9lbnRyeV9yY3UodGJsLCAmYW1wO3ByaXYtJmd0O3J4X3Jlb3JkZXJfdGJsX3B0cltpXSwgbGlzdCkgewomIzQzOwkJCQlpZiAoIW1lbWNtcCh0YmwtJmd0O3RhLCB0YSwgRVRIX0FMRU4pKSB7CiYjNDM7CQkJCQlJTklUX0xJU1RfSEVBRCgmYW1wO3RibC0mZ3Q7dG1wX2xpc3QpOwomIzQzOwkJCQkJbGlzdF9hZGRfdGFpbCgmYW1wO3RibC0mZ3Q7dG1wX2xpc3QsICZhbXA7dG9fZGVsZXRlKTsKJiM0MzsJCQkJfQogCQkJfQogCQl9CiAKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+My8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMjUgMjM6NDI8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMjQ4MAoJCQkJCQkJb3V0cHV0OiAzMgoJCQkJCQkJdGhvdWdodHM6IDI4OQoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipBbmFseXppbmcgYSBXaXJlbGVzcyBEcml2ZXIgUGF0Y2gqKgoKT2theSwgc28gSSYjMzk7bSBsb29raW5nIGF0IHRoaXMgcGF0Y2ggYW5kIGl0IHNlZW1zIGxpa2UgaXQmIzM5O3MgYWRkcmVzc2luZyB0d28gaXNzdWVzIGluIHRoZSBgbnhwd2lmaWAgZHJpdmVyLiBPbmUmIzM5O3MgYSBzaW1wbGUgZml4IOKAkyBhIG1pc3NpbmcgYCFgIGluIGEgY2hlY2sgd2l0aGluIHRoZSBgbnhwd2lmaV8xMW5fZGVsZXRlX3R4X2JhX3N0cmVhbV90YmxfZW50cnlgIGZ1bmN0aW9uLCB3aGljaCBpcyBlYXN5IGVub3VnaCB0byB1bmRlcnN0YW5kLiBUaGUgb3RoZXIsIGhvd2V2ZXIsIGlzIGEgbGl0dGxlIG1vcmUgaW50ZXJlc3Rpbmc7IHRoZSBwYXRjaCBpcyByZXBsYWNpbmcgYSBwb3RlbnRpYWxseSBwcm9ibGVtYXRpYyB1c2Ugb2YgYGd1YXJkKHJjdSkoKWAgd2l0aGluIGEgbG9vcCBpbiBgbnhwd2lmaV8xMW5fZGVsX3J4X3Jlb3JkZXJfdGJsX2J5X3RhYCB3aXRoIGBzY29wZWRfZ3VhcmQocmN1KSB7IC4uLiB9YC4gTXkgaW5pdGlhbCB0aG91Z2h0IGlzIHRoZSBjb2RlIGlzIHJlZmFjdG9yaW5nIGEgUkNVIGd1YXJkLCB3aGljaCBpcyBhIGdvb2QgdGhpbmcgYXMgaXQgbWlnaHQgZml4IHNjb3Bpbmcgb3IgY29udGVudGlvbiBpc3N1ZXMuCgpUaGUgcXVlc3Rpb24gdGhlbiBiZWNvbWVzLCBjYW4gd2UgbGV2ZXJhZ2UgdGhpcyBwYXRjaCBmb3IgYW55dGhpbmcgaW50ZXJlc3RpbmcgZnJvbSBhIHRlc3RpbmcgcGVyc3BlY3RpdmU/IElzIGBueHB3aWZpYCBhIGRyaXZlciB3ZSBjYW4gcmVhbGlzdGljYWxseSBmdXp6PyBJdCYjMzk7cyBhIHdpcmVsZXNzIGRyaXZlciwgd2hpY2ggdXN1YWxseSBwb2ludHMgdG8gaGFyZHdhcmUgZGVwZW5kZW5jeSDigJMgU0RJTywgUENJZSwgVVNCLCB0aGF0IHNvcnQgb2YgdGhpbmcuIEJ1dCwgbWF5YmUgd2UgY2FuIHNpbXVsYXRlIGl0IHdpdGggc29tZXRoaW5nIGxpa2UgYG1hYzgwMjExX2h3c2ltYD8gTGV0JiMzOTtzIGNoZWNrLgoKSSBuZWVkIHRvIHNlZSBpZiB0aGlzIGRyaXZlciBpcyBwdXJlbHkgaGFyZHdhcmUtc3BlY2lmaWMgb3IgaWYgdGhlcmUmIzM5O3MgYSBwb3NzaWJpbGl0eSBmb3IgZW11bGF0aW9uLiBNeSBuZXh0IHN0ZXAgaXMgdG8gZGl2ZSBpbnRvIHRoZSBgS2NvbmZpZ2AgZmlsZSBpbiB0aGUgZHJpdmVyJiMzOTtzIGRpcmVjdG9yeSDigJMgYGRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpL0tjb25maWdgIOKAkyBvciBtYXliZSBhbm90aGVyIHJlbGV2YW50IGZpbGUgdG8gdW5kZXJzdGFuZCB0aGUgYXJjaGl0ZWN0dXJlIGFuZCBwb3NzaWJpbGl0aWVzIGZvciBzaW11bGF0aW9uLiBUaGF0IHNob3VsZCB0ZWxsIG1lIGlmIHdlIGNhbiBnZW5lcmF0ZSB1c2VmdWwgdGVzdCBjYXNlcyBmcm9tIGl0LgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjQvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzI1IDIzOjQyPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O254cHdpZmkmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O1xuRnVsbCBvdXRwdXQgaXMgdG9vIGxvbmcsIHNob3dpbmcgNTAwIG91dCBvZiAxNTE3MiBsaW5lcy5cblVzZSBtb3JlIHByZWNpc2UgZXhwcmVzc2lvbiBpZiBwb3NzaWJsZS5cblxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL0tjb25maWc9MTM9aWYgV0xBTl9WRU5ET1JfTlhQXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvS2NvbmZpZy0xNC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9LY29uZmlnOjE1OnNvdXJjZSBcJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS9LY29uZmlnXCYjMzQ7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvS2NvbmZpZy0xNi1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvTWFrZWZpbGUtMi1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9NYWtlZmlsZTozOm9iai0kKENPTkZJR19OWFBXSUZJKVx0JiM0Mzs9IG54cHdpZmkvXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFhYy5jLTItLypcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYWMuYzozOiAqIG54cHdpZmkgODAyLjExYWMgaGVscGVyc1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFhYy5jLTQtICogQ29weXJpZ2h0IDIwMTEtMjAyNCBOWFBcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWFjLmM9MzY9c3RhdGljIHUxNlxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFhYy5jOjM3Om54cHdpZmlfY29udmVydF9tY3NtYXBfdG9fbWF4cmF0ZShzdHJ1Y3Qgbnhwd2lmaV9wcml2YXRlICpwcml2LFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFhYy5jLTM4LVx0XHRcdFx0ICB1MTYgYmFuZHMsIHUxNiBtY3NfbWFwKVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYWMuYy00Mi1cdHUzMiB1c3Jfdmh0X2NhcF9pbmZvID0gMDtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYWMuYzo0MzpcdHN0cnVjdCBueHB3aWZpX2FkYXB0ZXIgKmFkYXB0ZXIgPSBwcml2LVx1MDAzZWFkYXB0ZXI7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWFjLmMtNDQtXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFhYy5jPTc5PXN0YXRpYyB2b2lkXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWFjLmM6ODA6bnhwd2lmaV9maWxsX3ZodF9jYXBfaW5mbyhzdHJ1Y3Qgbnhwd2lmaV9wcml2YXRlICpwcml2LFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFhYy5jLTgxLVx0XHRcdCAgc3RydWN0IGllZWU4MDIxMV92aHRfY2FwICp2aHRfY2FwLCB1MTYgYmFuZHMpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWFjLmMtODIte1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFhYy5jOjgzOlx0c3RydWN0IG54cHdpZmlfYWRhcHRlciAqYWRhcHRlciA9IHByaXYtXHUwMDNlYWRhcHRlcjtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYWMuYy04NC1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWFjLmM9OTM9dm9pZFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFhYy5jOjk0Om54cHdpZmlfZmlsbF92aHRfY2FwX3RsdihzdHJ1Y3Qgbnhwd2lmaV9wcml2YXRlICpwcml2LFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFhYy5jLTk1LVx0XHRcdCBzdHJ1Y3QgaWVlZTgwMjExX3ZodF9jYXAgKnZodF9jYXAsIHUxNiBiYW5kcylcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYWMuYy05Ni17XG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWFjLmM6OTc6XHRzdHJ1Y3Qgbnhwd2lmaV9hZGFwdGVyICphZGFwdGVyID0gcHJpdi1cdTAwM2VhZGFwdGVyO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFhYy5jLTk4LVx0dTE2IG1jc19tYXBfdXNlciwgbWNzX21hcF9yZXNwLCBtY3NfbWFwX3Jlc3VsdDtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWFjLmMtMTAxLVx0LyogRmlsbCBWSFQgY2FwYWJpbGl0eSBpbmZvLiAqL1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFhYy5jOjEwMjpcdG54cHdpZmlfZmlsbF92aHRfY2FwX2luZm8ocHJpdiwgdmh0X2NhcCwgYmFuZHMpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFhYy5jLTEwMy1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWFjLmMtMTIzLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFhYy5jOjEyNDpcdHRtcCA9IG54cHdpZmlfY29udmVydF9tY3NtYXBfdG9fbWF4cmF0ZShwcml2LCBiYW5kcywgbWNzX21hcF9yZXN1bHQpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFhYy5jLTEyNS1cdHZodF9jYXAtXHUwMDNlc3VwcF9tY3MucnhfaGlnaGVzdCA9IGNwdV90b19sZTE2KHRtcCk7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFhYy5jLTE0NS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYWMuYzoxNDY6XHR0bXAgPSBueHB3aWZpX2NvbnZlcnRfbWNzbWFwX3RvX21heHJhdGUocHJpdiwgYmFuZHMsIG1jc19tYXBfcmVzdWx0KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYWMuYy0xNDctXHR2aHRfY2FwLVx1MDAzZXN1cHBfbWNzLnR4X2hpZ2hlc3QgPSBjcHVfdG9fbGUxNih0bXApO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYWMuYy0xNDktXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWFjLmM6MTUwOmludCBueHB3aWZpX2NtZF9hcHBlbmRfMTFhY190bHYoc3RydWN0IG54cHdpZmlfcHJpdmF0ZSAqcHJpdixcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYWMuYzoxNTE6XHRcdFx0XHRzdHJ1Y3Qgbnhwd2lmaV9ic3NkZXNjcmlwdG9yICpic3NfZGVzYyxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYWMuYy0xNTItXHRcdFx0XHR1OCAqKmJ1ZmZlcilcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYWMuYy0xNTMte1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFhYy5jOjE1NDpcdHN0cnVjdCBueHB3aWZpX2llX3R5cGVzX3ZodGNhcCAqdmh0X2NhcDtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYWMuYzoxNTU6XHRzdHJ1Y3Qgbnhwd2lmaV9pZV90eXBlc19vcGVyX21vZGVfbnRmICpvcGVyX250ZjtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYWMuYy0xNTYtXHRzdHJ1Y3QgaWVlZV90eXBlc19vcGVyX21vZGVfbnRmICppZWVlX29wZXJfbnRmO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFhYy5jOjE1NzpcdHN0cnVjdCBueHB3aWZpX2llX3R5cGVzX3ZodF9vcGVyICp2aHRfb3A7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWFjLmM6MTU4Olx0c3RydWN0IG54cHdpZmlfYWRhcHRlciAqYWRhcHRlciA9IHByaXYtXHUwMDNlYWRhcHRlcjtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYWMuYy0xNTktXHR1OCBzdXBwX2Nod2Rfc2V0O1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYWMuYy0xNjktXHRpZiAoYnNzX2Rlc2MtXHUwMDNlYmNuX3ZodF9jYXApIHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYWMuYzoxNzA6XHRcdHZodF9jYXAgPSAoc3RydWN0IG54cHdpZmlfaWVfdHlwZXNfdmh0Y2FwICopKmJ1ZmZlcjtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYWMuYy0xNzEtXHRcdG1lbXNldCh2aHRfY2FwLCAwLCBzaXplb2YoKnZodF9jYXApKTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWFjLmMtMTc0LVx0XHRcdGNwdV90b19sZTE2KHNpemVvZihzdHJ1Y3QgaWVlZTgwMjExX3ZodF9jYXApKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYWMuYzoxNzU6XHRcdG1lbWNweSgodTggKil2aHRfY2FwICYjNDM7IHNpemVvZihzdHJ1Y3Qgbnhwd2lmaV9pZV90eXBlc19oZWFkZXIpLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFhYy5jLTE3Ni1cdFx0ICAgICAgICh1OCAqKWJzc19kZXNjLVx1MDAzZWJjbl92aHRfY2FwLFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYWMuYy0xNzgtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWFjLmM6MTc5Olx0XHRueHB3aWZpX2ZpbGxfdmh0X2NhcF90bHYocHJpdiwgXHUwMDI2dmh0X2NhcC1cdTAwM2V2aHRfY2FwLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFhYy5jLTE4MC1cdFx0XHRcdFx0IGJzc19kZXNjLVx1MDAzZWJzc19iYW5kKTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWFjLmMtMTg3LVx0XHRpZiAocHJpdi1cdTAwM2Vic3NfbW9kZSA9PSBOTDgwMjExX0lGVFlQRV9TVEFUSU9OKSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWFjLmM6MTg4Olx0XHRcdHZodF9vcCA9IChzdHJ1Y3Qgbnhwd2lmaV9pZV90eXBlc192aHRfb3BlciAqKSpidWZmZXI7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWFjLmMtMTg5LVx0XHRcdG1lbXNldCh2aHRfb3AsIDAsIHNpemVvZigqdmh0X29wKSk7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFhYy5jLTE5Mi1cdFx0XHR2aHRfb3AtXHUwMDNlaGVhZGVyLmxlbiAgPSBjcHVfdG9fbGUxNihzaXplb2YoKnZodF9vcCkgLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFhYy5jOjE5MzpcdFx0XHRcdHNpemVvZihzdHJ1Y3Qgbnhwd2lmaV9pZV90eXBlc19oZWFkZXIpKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYWMuYy0xOTQtXHRcdFx0bWVtY3B5KCh1OCAqKXZodF9vcCAmIzQzO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFhYy5jOjE5NTpcdFx0XHRcdHNpemVvZihzdHJ1Y3Qgbnhwd2lmaV9pZV90eXBlc19oZWFkZXIpLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFhYy5jLTE5Ni1cdFx0XHQgICAgICAgKHU4ICopYnNzX2Rlc2MtXHUwMDNlYmNuX3ZodF9vcGVyLFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYWMuYy0yNDQtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWFjLmM6MjQ1OmludCBueHB3aWZpX2NtZF8xMWFjX2NmZyhzdHJ1Y3Qgbnhwd2lmaV9wcml2YXRlICpwcml2LFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFhYy5jLTI0Ni1cdFx0XHQgc3RydWN0IGhvc3RfY21kX2RzX2NvbW1hbmQgKmNtZCwgdTE2IGNtZF9hY3Rpb24sXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWFjLmM6MjQ3Olx0XHRcdCBzdHJ1Y3Qgbnhwd2lmaV8xMWFjX3ZodF9jZmcgKmNmZylcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYWMuYy0yNDgte1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYWMuYy0yNjQtLyogSW5pdGlhbGl6ZSBCbG9ja0FjayBwYXJhbWV0ZXJzIGZvciAxMWFjLiAqL1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFhYy5jOjI2NTp2b2lkIG54cHdpZmlfc2V0XzExYWNfYmFfcGFyYW1zKHN0cnVjdCBueHB3aWZpX3ByaXZhdGUgKnByaXYpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWFjLmMtMjY2LXtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWFjLmgtMi0vKlxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFhYy5oOjM6ICogbnhwd2lmaTogODAyLjExYWMgKFZIVCkgZGVmaW5pdGlvbnNcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYWMuaC00LSAqXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFhYy5oPTE0PWVudW0gdmh0X2NmZ19taXNjX2NvbmZpZyB7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFhYy5oLTI0LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFhYy5oOjI1OmludCBueHB3aWZpX2NtZF9hcHBlbmRfMTFhY190bHYoc3RydWN0IG54cHdpZmlfcHJpdmF0ZSAqcHJpdixcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYWMuaDoyNjpcdFx0XHRcdHN0cnVjdCBueHB3aWZpX2Jzc2Rlc2NyaXB0b3IgKmJzc19kZXNjLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFhYy5oLTI3LVx0XHRcdFx0dTggKipidWZmZXIpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFhYy5oOjI4OmludCBueHB3aWZpX2NtZF8xMWFjX2NmZyhzdHJ1Y3Qgbnhwd2lmaV9wcml2YXRlICpwcml2LFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFhYy5oLTI5LVx0XHRcdCBzdHJ1Y3QgaG9zdF9jbWRfZHNfY29tbWFuZCAqY21kLCB1MTYgY21kX2FjdGlvbixcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYWMuaDozMDpcdFx0XHQgc3RydWN0IG54cHdpZmlfMTFhY192aHRfY2ZnICpjZmcpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFhYy5oOjMxOnZvaWQgbnhwd2lmaV9maWxsX3ZodF9jYXBfdGx2KHN0cnVjdCBueHB3aWZpX3ByaXZhdGUgKnByaXYsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWFjLmgtMzItXHRcdFx0ICAgICAgc3RydWN0IGllZWU4MDIxMV92aHRfY2FwICp2aHRfY2FwLCB1MTYgYmFuZHMpO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYy0xLS8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wLW9ubHlcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYzoyOi8qIG54cHdpZmk6IDgwMi4xMWF4IChIRSkgc3VwcG9ydFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jLTMtICogQ29weXJpZ2h0IChDKSAyMDExLTIwMjQgTlhQXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jLTEwLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jOjExOnZvaWQgbnhwd2lmaV91cGRhdGVfMTFheF9jYXAoc3RydWN0IG54cHdpZmlfYWRhcHRlciAqYWRhcHRlcixcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYy0xMi1cdFx0XHQgICAgIHN0cnVjdCBod19zcGVjX2V4dGVuc2lvbiAqaHdfaGVfY2FwKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jLTEzLXtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYzoxNDpcdHN0cnVjdCBueHB3aWZpX3ByaXZhdGUgKnByaXY7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmM6MTU6XHRzdHJ1Y3Qgbnhwd2lmaV9pZV90eXBlc19oZV9jYXAgKmhlX2NhcCA9IE5VTEw7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmM6MTY6XHRzdHJ1Y3Qgbnhwd2lmaV9pZV90eXBlc19oZV9jYXAgKnVzZXJfaGVfY2FwID0gTlVMTDtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYzoxNzpcdHU4IGhlYWRlcl9sZW4gPSBzaXplb2Yoc3RydWN0IG54cHdpZmlfaWVfdHlwZXNfaGVhZGVyKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYy0xOC1cdHUxNiBkYXRhX2xlbiA9IGxlMTZfdG9fY3B1KGh3X2hlX2NhcC1cdTAwM2VoZWFkZXIubGVuKTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmMtMjItXHRpZiAoKGRhdGFfbGVuICYjNDM7IGhlYWRlcl9sZW4pIFx1MDAzZSBzaXplb2YoYWRhcHRlci1cdTAwM2Vod19oZV9jYXApKSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmM6MjM6XHRcdG54cHdpZmlfZGJnKGFkYXB0ZXIsIEVSUk9SLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jLTI0LVx0XHRcdCAgICBcJiMzNDtod19oZV9jYXAgdG9vIGJpZywgbGVuPSVkXFxuXCYjMzQ7LFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYy0yOC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYzoyOTpcdGhlX2NhcCA9IChzdHJ1Y3Qgbnhwd2lmaV9pZV90eXBlc19oZV9jYXAgKilod19oZV9jYXA7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmMtMzAtXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jLTM3LVx0XHRoZV9jYXBfMmcgPSB0cnVlO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jOjM4Olx0XHRueHB3aWZpX2RiZ19kdW1wKGFkYXB0ZXIsIENNRF9ELCBcJiMzNDsyLjRHIEhFIGNhcGFiaWxpdHkgZWxlbWVudCBcJiMzNDssXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmMtMzktXHRcdFx0XHQgYWRhcHRlci1cdTAwM2Vod18yZ19oZV9jYXAsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jLTQ1LVx0XHRhZGFwdGVyLVx1MDAzZWZ3X2JhbmRzIHw9IEJBTkRfQUFYO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jOjQ2Olx0XHRueHB3aWZpX2RiZ19kdW1wKGFkYXB0ZXIsIENNRF9ELCBcJiMzNDs1RyBIRSBjYXBhYmlsaXR5IGVsZW1lbnQgXCYjMzQ7LFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jLTQ3LVx0XHRcdFx0IGFkYXB0ZXItXHUwMDNlaHdfaGVfY2FwLFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYy01Ny1cdFx0XHQgICAgICAgc2l6ZW9mKGFkYXB0ZXItXHUwMDNlaHdfMmdfaGVfY2FwKSk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmM6NTg6XHRcdFx0dXNlcl9oZV9jYXAgPSAoc3RydWN0IG54cHdpZmlfaWVfdHlwZXNfaGVfY2FwICopXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmMtNTktXHRcdFx0XHRwcml2LVx1MDAzZXVzZXJfMmdfaGVfY2FwO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYy02My1cdFx0XHQgICAgICAgc2l6ZW9mKGFkYXB0ZXItXHUwMDNlaHdfaGVfY2FwKSk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmM6NjQ6XHRcdFx0dXNlcl9oZV9jYXAgPSAoc3RydWN0IG54cHdpZmlfaWVfdHlwZXNfaGVfY2FwICopXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmMtNjUtXHRcdFx0XHRwcml2LVx1MDAzZXVzZXJfaGVfY2FwO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYy03OC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYzo3OTpib29sIG54cHdpZmlfMTFheF9iYW5kY29uZmlnX2FsbG93ZWQoc3RydWN0IG54cHdpZmlfcHJpdmF0ZSAqcHJpdixcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYzo4MDpcdFx0XHRcdCAgICAgc3RydWN0IG54cHdpZmlfYnNzZGVzY3JpcHRvciAqYnNzX2Rlc2MpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmMtODEte1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYy05NC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYzo5NTppbnQgbnhwd2lmaV9maWxsX2hlX2NhcF90bHYoc3RydWN0IG54cHdpZmlfcHJpdmF0ZSAqcHJpdixcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYzo5NjpcdFx0XHQgICAgc3RydWN0IG54cHdpZmlfaWVfdHlwZXNfaGVfY2FwICpoZV9jYXAsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmMtOTctXHRcdFx0ICAgIHUxNiBiYW5kcylcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYy05OC17XG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmM6OTk6XHRzdHJ1Y3Qgbnhwd2lmaV9hZGFwdGVyICphZGFwdGVyID0gcHJpdi1cdTAwM2VhZGFwdGVyO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jOjEwMDpcdHN0cnVjdCBueHB3aWZpX2llX3R5cGVzX2hlX2NhcCAqaHdfaGVfY2FwID0gTlVMTDtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYy0xMDEtXHR1MTYgcnhfbnNzLCB0eF9uc3M7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jLTEwOC1cdFx0bWVtY3B5KGhlX2NhcCwgcHJpdi1cdTAwM2V1c2VyX2hlX2NhcCwgcHJpdi1cdTAwM2V1c2VyX2hlX2NhcF9sZW4pO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jOjEwOTpcdFx0aHdfaGVfY2FwID0gKHN0cnVjdCBueHB3aWZpX2llX3R5cGVzX2hlX2NhcCAqKWFkYXB0ZXItXHUwMDNlaHdfaGVfY2FwO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jLTExMC1cdFx0cmV0X2xlbiA9IHByaXYtXHUwMDNldXNlcl9oZV9jYXBfbGVuO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYy0xMTItXHRcdG1lbWNweShoZV9jYXAsIHByaXYtXHUwMDNldXNlcl8yZ19oZV9jYXAsIHByaXYtXHUwMDNldXNlcl8yZ19oZV9jYXBfbGVuKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYzoxMTM6XHRcdGh3X2hlX2NhcCA9IChzdHJ1Y3Qgbnhwd2lmaV9pZV90eXBlc19oZV9jYXAgKilhZGFwdGVyLVx1MDAzZWh3XzJnX2hlX2NhcDtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYy0xMTQtXHRcdHJldF9sZW4gPSBwcml2LVx1MDAzZXVzZXJfMmdfaGVfY2FwX2xlbjtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmMtMTI1LVx0Zm9yIChuc3MgPSAxOyBuc3MgXHUwMDNjPSA4OyBuc3MmIzQzOyYjNDM7KSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmM6MTI2Olx0XHRjZmdfdmFsdWUgPSBueHB3aWZpX2dldF9oZV9uc3NfbWNzKGhlX2NhcC1cdTAwM2VyeF9tY3NfODAsIG5zcyk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmM6MTI3Olx0XHRod192YWx1ZSA9IG54cHdpZmlfZ2V0X2hlX25zc19tY3MoaHdfaGVfY2FwLVx1MDAzZXJ4X21jc184MCwgbnNzKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYy0xMjgtXHRcdGlmIChyeF9uc3MgIT0gMCBcdTAwMjZcdTAwMjYgbnNzIFx1MDAzZSByeF9uc3MpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jLTEzMC1cdFx0aWYgKGh3X3ZhbHVlID09IE5PX05TU19TVVBQT1JUIHx8IGNmZ192YWx1ZSA9PSBOT19OU1NfU1VQUE9SVClcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYzoxMzE6XHRcdFx0bnhwd2lmaV9zZXRfaGVfbnNzX21jcyhcdTAwMjZoZV9jYXAtXHUwMDNlcnhfbWNzXzgwLCBuc3MsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmMtMTMyLVx0XHRcdFx0XHQgICAgICAgTk9fTlNTX1NVUFBPUlQpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jLTEzMy1cdFx0ZWxzZVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jOjEzNDpcdFx0XHRueHB3aWZpX3NldF9oZV9uc3NfbWNzKFx1MDAyNmhlX2NhcC1cdTAwM2VyeF9tY3NfODAsIG5zcyxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYy0xMzUtXHRcdFx0XHRcdCAgICAgICBtaW4oY2ZnX3ZhbHVlLCBod192YWx1ZSkpO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYy0xMzgtXHRmb3IgKG5zcyA9IDE7IG5zcyBcdTAwM2M9IDg7IG5zcyYjNDM7JiM0MzspIHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYzoxMzk6XHRcdGNmZ192YWx1ZSA9IG54cHdpZmlfZ2V0X2hlX25zc19tY3MoaGVfY2FwLVx1MDAzZXR4X21jc184MCwgbnNzKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYzoxNDA6XHRcdGh3X3ZhbHVlID0gbnhwd2lmaV9nZXRfaGVfbnNzX21jcyhod19oZV9jYXAtXHUwMDNldHhfbWNzXzgwLCBuc3MpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jLTE0MS1cdFx0aWYgKHR4X25zcyAhPSAwIFx1MDAyNlx1MDAyNiBuc3MgXHUwMDNlIHR4X25zcylcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmMtMTQzLVx0XHRpZiAoaHdfdmFsdWUgPT0gTk9fTlNTX1NVUFBPUlQgfHwgY2ZnX3ZhbHVlID09IE5PX05TU19TVVBQT1JUKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jOjE0NDpcdFx0XHRueHB3aWZpX3NldF9oZV9uc3NfbWNzKFx1MDAyNmhlX2NhcC1cdTAwM2V0eF9tY3NfODAsIG5zcyxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYy0xNDUtXHRcdFx0XHRcdCAgICAgICBOT19OU1NfU1VQUE9SVCk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmMtMTQ2LVx0XHRlbHNlXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmM6MTQ3Olx0XHRcdG54cHdpZmlfc2V0X2hlX25zc19tY3MoXHUwMDI2aGVfY2FwLVx1MDAzZXR4X21jc184MCwgbnNzLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jLTE0OC1cdFx0XHRcdFx0ICAgICAgIG1pbihjZmdfdmFsdWUsIGh3X3ZhbHVlKSk7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jLTE1My1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYzoxNTQ6aW50IG54cHdpZmlfY21kX2FwcGVuZF8xMWF4X3RsdihzdHJ1Y3Qgbnhwd2lmaV9wcml2YXRlICpwcml2LFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jOjE1NTpcdFx0XHRcdHN0cnVjdCBueHB3aWZpX2Jzc2Rlc2NyaXB0b3IgKmJzc19kZXNjLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jLTE1Ni1cdFx0XHRcdHU4ICoqYnVmZmVyKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jLTE1Ny17XG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmM6MTU4Olx0c3RydWN0IG54cHdpZmlfaWVfdHlwZXNfaGVfY2FwICpoZV9jYXAgPSBOVUxMO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jLTE1OS1cdGludCByZXRfbGVuO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYy0xNjMtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmM6MTY0Olx0aGVfY2FwID0gKHN0cnVjdCBueHB3aWZpX2llX3R5cGVzX2hlX2NhcCAqKSpidWZmZXI7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmM6MTY1Olx0cmV0X2xlbiA9IG54cHdpZmlfZmlsbF9oZV9jYXBfdGx2KHByaXYsIGhlX2NhcCwgYnNzX2Rlc2MtXHUwMDNlYnNzX2JhbmQpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jLTE2Ni1cdCpidWZmZXIgJiM0Mzs9IHJldF9sZW47XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jLTE3MC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYzoxNzE6aW50IG54cHdpZmlfY21kXzExYXhfY2ZnKHN0cnVjdCBueHB3aWZpX3ByaXZhdGUgKnByaXYsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmMtMTcyLVx0XHRcdCBzdHJ1Y3QgaG9zdF9jbWRfZHNfY29tbWFuZCAqY21kLCB1MTYgY21kX2FjdGlvbixcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYzoxNzM6XHRcdFx0IHN0cnVjdCBueHB3aWZpXzExYXhfaGVfY2ZnICpheF9jZmcpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmMtMTc0LXtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmMtMTc2LVx0dTE2IGNtZF9zaXplO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jOjE3NzpcdHN0cnVjdCBueHB3aWZpX2llX3R5cGVzX2hlYWRlciAqaGVhZGVyO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jLTE3OC1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmMtMTg2LVx0ICAgIGF4X2NmZy1cdTAwM2VoZV9jYXBfY2ZnLmV4dF9pZCA9PSBXTEFOX0VJRF9FWFRfSEVfQ0FQQUJJTElUWSkge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jOjE4NzpcdFx0aGVhZGVyID0gKHN0cnVjdCBueHB3aWZpX2llX3R5cGVzX2hlYWRlciAqKWhlX2NmZy1cdTAwM2V0bHY7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmMtMTg4LVx0XHRoZWFkZXItXHUwMDNldHlwZSA9IGNwdV90b19sZTE2KGF4X2NmZy1cdTAwM2VoZV9jYXBfY2ZnLmlkKTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmMtMjAwLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jOjIwMTppbnQgbnhwd2lmaV9yZXRfMTFheF9jZmcoc3RydWN0IG54cHdpZmlfcHJpdmF0ZSAqcHJpdixcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYy0yMDItXHRcdFx0IHN0cnVjdCBob3N0X2NtZF9kc19jb21tYW5kICpyZXNwLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jOjIwMzpcdFx0XHQgc3RydWN0IG54cHdpZmlfMTFheF9oZV9jZmcgKmF4X2NmZylcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYy0yMDQte1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jLTIwNS1cdHN0cnVjdCBob3N0X2NtZF8xMWF4X2NmZyAqaGVfY2ZnID0gXHUwMDI2cmVzcC1cdTAwM2VwYXJhbXMuYXhfY2ZnO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jOjIwNjpcdHN0cnVjdCBueHB3aWZpX2llX3R5cGVzX2hlYWRlciAqaGVhZGVyO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jLTIwNy1cdHUxNiBsZWZ0X2xlbiwgdGx2X3R5cGUsIHRsdl9sZW47XG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmMtMjA4LVx0dTggZXh0X2lkO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jOjIwOTpcdHN0cnVjdCBueHB3aWZpXzExYXhfaGVfY2FwX2NmZyAqaGVfY2FwID0gXHUwMDI2YXhfY2ZnLVx1MDAzZWhlX2NhcF9jZmc7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmMtMjEwLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jLTIxMS1cdGxlZnRfbGVuID0gbGUxNl90b19jcHUocmVzcC1cdTAwM2VzaXplKSAtIHNpemVvZigqaGVfY2ZnKSAtIFNfRFNfR0VOO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jOjIxMjpcdGhlYWRlciA9IChzdHJ1Y3Qgbnhwd2lmaV9pZV90eXBlc19oZWFkZXIgKiloZV9jZmctXHUwMDNldGx2O1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jLTIxMy1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmMtMjQyLVx0XHRsZWZ0X2xlbiAtPSAoc2l6ZW9mKCpoZWFkZXIpICYjNDM7IHRsdl9sZW4pO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jOjI0MzpcdFx0aGVhZGVyID0gKHN0cnVjdCBueHB3aWZpX2llX3R5cGVzX2hlYWRlciAqKSgodTggKiloZWFkZXIgJiM0MztcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYy0yNDQtXHRcdFx0XHRcdFx0XHQgICAgc2l6ZW9mKCpoZWFkZXIpICYjNDM7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jLTI1MC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYzoyNTE6aW50IG54cHdpZmlfY21kXzExYXhfY21kKHN0cnVjdCBueHB3aWZpX3ByaXZhdGUgKnByaXYsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmMtMjUyLVx0XHRcdCBzdHJ1Y3QgaG9zdF9jbWRfZHNfY29tbWFuZCAqY21kLCB1MTYgY21kX2FjdGlvbixcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYzoyNTM6XHRcdFx0IHN0cnVjdCBueHB3aWZpXzExYXhfY21kX2NmZyAqYXhfY21kKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jLTI1NC17XG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmM6MjU1Olx0c3RydWN0IG54cHdpZmlfYWRhcHRlciAqYWRhcHRlciA9IHByaXYtXHUwMDNlYWRhcHRlcjtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYy0yNTYtXHRzdHJ1Y3QgaG9zdF9jbWRfMTFheF9jbWQgKmhlX2NtZCA9IFx1MDAyNmNtZC1cdTAwM2VwYXJhbXMuYXhfY21kO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jLTI1Ny1cdHUxNiBjbWRfc2l6ZTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYzoyNTg6XHRzdHJ1Y3Qgbnhwd2lmaV8xMWF4X3NyX2NtZCAqc3JfY21kO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jOjI1OTpcdHN0cnVjdCBueHB3aWZpX2llX3R5cGVzX2RhdGEgKnRsdjtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYzoyNjA6XHRzdHJ1Y3Qgbnhwd2lmaV8xMWF4X2JlYW1fY21kICpiZWFtX2NtZDtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYzoyNjE6XHRzdHJ1Y3Qgbnhwd2lmaV8xMWF4X2h0Y19jbWQgKmh0Y19jbWQ7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmM6MjYyOlx0c3RydWN0IG54cHdpZmlfMTFheF90eG9taV9jbWQgKnR4bW9pX2NtZDtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYzoyNjM6XHRzdHJ1Y3Qgbnhwd2lmaV8xMWF4X3RvbHRpbWVfY21kICp0b2x0aW1lX2NtZDtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYzoyNjQ6XHRzdHJ1Y3Qgbnhwd2lmaV8xMWF4X3R4b3BfY21kICp0eG9wX2NtZDtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYzoyNjU6XHRzdHJ1Y3Qgbnhwd2lmaV8xMWF4X3NldF9ic3JwX2NtZCAqc2V0X2JzcnBfY21kO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jOjI2NjpcdHN0cnVjdCBueHB3aWZpXzExYXhfbGxkZV9jbWQgKmxsZGVfY21kO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jLTI2Ny1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmMtMjc1LVx0Y2FzZSBOWFBXSUZJXzExQVhDTURfU1JfU1VCSUQ6XG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmM6Mjc2Olx0XHRzcl9jbWQgPSAoc3RydWN0IG54cHdpZmlfMTFheF9zcl9jbWQgKilcdTAwMjZheF9jbWQtXHUwMDNlcGFyYW07XG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmMtMjc3LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jOjI3ODpcdFx0dGx2ID0gKHN0cnVjdCBueHB3aWZpX2llX3R5cGVzX2RhdGEgKiloZV9jbWQtXHUwMDNldmFsO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jLTI3OS1cdFx0dGx2LVx1MDAzZWhlYWRlci50eXBlID0gY3B1X3RvX2xlMTYoc3JfY21kLVx1MDAzZXR5cGUpO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYy0yODUtXHRjYXNlIE5YUFdJRklfMTFBWENNRF9CRUFNX1NVQklEOlxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jOjI4NjpcdFx0YmVhbV9jbWQgPSAoc3RydWN0IG54cHdpZmlfMTFheF9iZWFtX2NtZCAqKVx1MDAyNmF4X2NtZC1cdTAwM2VwYXJhbTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYy0yODctXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jLTI5MS1cdGNhc2UgTlhQV0lGSV8xMUFYQ01EX0hUQ19TVUJJRDpcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYzoyOTI6XHRcdGh0Y19jbWQgPSAoc3RydWN0IG54cHdpZmlfMTFheF9odGNfY21kICopXHUwMDI2YXhfY21kLVx1MDAzZXBhcmFtO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jLTI5My1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmMtMjk3LVx0Y2FzZSBOWFBXSUZJXzExQVhDTURfVFhPTUlfU1VCSUQ6XG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmM6Mjk4Olx0XHR0eG1vaV9jbWQgPVx0KHN0cnVjdCBueHB3aWZpXzExYXhfdHhvbWlfY21kICopXHUwMDI2YXhfY21kLVx1MDAzZXBhcmFtO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jLTI5OS1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmMtMzAzLVx0Y2FzZSBOWFBXSUZJXzExQVhDTURfT0JTU19UT0xUSU1FX1NVQklEOlxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jOjMwNDpcdFx0dG9sdGltZV9jbWQgPSAoc3RydWN0IG54cHdpZmlfMTFheF90b2x0aW1lX2NtZCAqKVx1MDAyNmF4X2NtZC1cdTAwM2VwYXJhbTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYy0zMDUtXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jLTMxMC1cdGNhc2UgTlhQV0lGSV8xMUFYQ01EX1RYT1BSVFNfU1VCSUQ6XG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmM6MzExOlx0XHR0eG9wX2NtZCA9IChzdHJ1Y3Qgbnhwd2lmaV8xMWF4X3R4b3BfY21kICopXHUwMDI2YXhfY21kLVx1MDAzZXBhcmFtO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jLTMxMi1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmMtMzE3LVx0Y2FzZSBOWFBXSUZJXzExQVhDTURfU0VUX0JTUlBfU1VCSUQ6XG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmM6MzE4Olx0XHRzZXRfYnNycF9jbWQgPSAoc3RydWN0IG54cHdpZmlfMTFheF9zZXRfYnNycF9jbWQgKilcdTAwMjZheF9jbWQtXHUwMDNlcGFyYW07XG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmMtMzE5LVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYy0zMjMtXHRjYXNlIE5YUFdJRklfMTFBWENNRF9MTERFX1NVQklEOlxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jOjMyNDpcdFx0bGxkZV9jbWQgPSAoc3RydWN0IG54cHdpZmlfMTFheF9sbGRlX2NtZCAqKVx1MDAyNmF4X2NtZC1cdTAwM2VwYXJhbTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYy0zMjUtXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jLTMyOS1cdGRlZmF1bHQ6XG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmM6MzMwOlx0XHRueHB3aWZpX2RiZyhhZGFwdGVyLCBFUlJPUixcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYy0zMzEtXHRcdFx0ICAgIFwmIzM0OyVzOiBVbmtub3duIHN1YiBjb21tYW5kOiAlZFxcblwmIzM0Oyxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmMtMzQwLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jOjM0MTppbnQgbnhwd2lmaV9yZXRfMTFheF9jbWQoc3RydWN0IG54cHdpZmlfcHJpdmF0ZSAqcHJpdixcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYy0zNDItXHRcdFx0IHN0cnVjdCBob3N0X2NtZF9kc19jb21tYW5kICpyZXNwLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jOjM0MzpcdFx0XHQgc3RydWN0IG54cHdpZmlfMTFheF9jbWRfY2ZnICpheF9jbWQpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmMtMzQ0LXtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYzozNDU6XHRzdHJ1Y3Qgbnhwd2lmaV9hZGFwdGVyICphZGFwdGVyID0gcHJpdi1cdTAwM2VhZGFwdGVyO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jLTM0Ni1cdHN0cnVjdCBob3N0X2NtZF8xMWF4X2NtZCAqaGVfY21kID0gXHUwMDI2cmVzcC1cdTAwM2VwYXJhbXMuYXhfY21kO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jOjM0NzpcdHN0cnVjdCBueHB3aWZpX2llX3R5cGVzX2RhdGEgKnRsdjtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYy0zNDgtXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jLTM1Mi1cdGNhc2UgTlhQV0lGSV8xMUFYQ01EX1NSX1NVQklEOlxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jOjM1MzpcdFx0dGx2ID0gKHN0cnVjdCBueHB3aWZpX2llX3R5cGVzX2RhdGEgKiloZV9jbWQtXHUwMDNldmFsO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jLTM1NC1cdFx0bWVtY3B5KGF4X2NtZC1cdTAwM2VwYXJhbS5zcl9jZmcucGFyYW0ub2Jzc19wZF9vZmZzZXQub2Zmc2V0LFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYy0zODMtXHRkZWZhdWx0OlxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jOjM4NDpcdFx0bnhwd2lmaV9kYmcoYWRhcHRlciwgRVJST1IsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmMtMzg1LVx0XHRcdCAgICBcJiMzNDslczogVW5rbm93biBzdWIgY29tbWFuZDogJWRcXG5cJiMzNDssXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jLTM5Mi1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYzozOTM6c3RhdGljIHU4IG54cHdpZmlfaXNfYXBfMTFheF90d3Rfc3VwcG9ydGVkKHN0cnVjdCBueHB3aWZpX2Jzc2Rlc2NyaXB0b3IgKmJzc19kZXNjKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jLTM5NC17XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jLTQwOS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYzo0MTA6Ym9vbCBueHB3aWZpX2lzXzExYXhfdHd0X3N1cHBvcnRlZChzdHJ1Y3Qgbnhwd2lmaV9wcml2YXRlICpwcml2LFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jOjQxMTpcdFx0XHRcdCAgIHN0cnVjdCBueHB3aWZpX2Jzc2Rlc2NyaXB0b3IgKmJzc19kZXNjKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jLTQxMi17XG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmM6NDEzOlx0c3RydWN0IG54cHdpZmlfaWVfdHlwZXNfaGVfY2FwICp1c2VyX2hlX2NhcDtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYzo0MTQ6XHRzdHJ1Y3Qgbnhwd2lmaV9pZV90eXBlc19oZV9jYXAgKmh3X2hlX2NhcDtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYy00MTUtXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jLTQxOC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYzo0MTk6XHRpZiAoIW54cHdpZmlfaXNfYXBfMTFheF90d3Rfc3VwcG9ydGVkKGJzc19kZXNjKSkge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jOjQyMDpcdFx0bnhwd2lmaV9kYmcocHJpdi1cdTAwM2VhZGFwdGVyLCBNU0csXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmMtNDIxLVx0XHRcdCAgICBcJiMzNDtBUCBkb24mIzM5O3Qgc3VwcG9ydCB0d3QgZmVhdHVyZVxcblwmIzM0Oyk7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jLTQyNS1cdGlmIChic3NfZGVzYy1cdTAwM2Vic3NfYmFuZCBcdTAwMjYgQkFORF9BKSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmM6NDI2Olx0XHRod19oZV9jYXAgPSAoc3RydWN0IG54cHdpZmlfaWVfdHlwZXNfaGVfY2FwICopXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmMtNDI3LVx0XHRcdHByaXYtXHUwMDNlYWRhcHRlci1cdTAwM2Vod19oZV9jYXA7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmM6NDI4Olx0XHR1c2VyX2hlX2NhcCA9IChzdHJ1Y3Qgbnhwd2lmaV9pZV90eXBlc19oZV9jYXAgKilcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYy00MjktXHRcdFx0cHJpdi1cdTAwM2V1c2VyX2hlX2NhcDtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYy00MzAtXHR9IGVsc2Uge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jOjQzMTpcdFx0aHdfaGVfY2FwID0gKHN0cnVjdCBueHB3aWZpX2llX3R5cGVzX2hlX2NhcCAqKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jLTQzMi1cdFx0XHRwcml2LVx1MDAzZWFkYXB0ZXItXHUwMDNlaHdfMmdfaGVfY2FwO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jOjQzMzpcdFx0dXNlcl9oZV9jYXAgPSAoc3RydWN0IG54cHdpZmlfaWVfdHlwZXNfaGVfY2FwICopXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmMtNDM0LVx0XHRcdHByaXYtXHUwMDNldXNlcl8yZ19oZV9jYXA7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jLTQzNy1cdGlmICghKGh3X2hlX2NhcC1cdTAwM2VoZV9tYWNfY2FwWzBdIFx1MDAyNiBIRV9NQUNfQ0FQX1RXVF9SRVFfU1VQUE9SVCkpIHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYzo0Mzg6XHRcdG54cHdpZmlfZGJnKHByaXYtXHUwMDNlYWRhcHRlciwgTVNHLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jLTQzOS1cdFx0XHQgICAgXCYjMzQ7RlcgZG9uJiMzOTt0IHN1cHBvcnQgVFdUXFxuXCYjMzQ7KTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmMtNDQzLVx0aWYgKCEodXNlcl9oZV9jYXAtXHUwMDNlaGVfbWFjX2NhcFswXSBcdTAwMjYgSEVfTUFDX0NBUF9UV1RfUkVRX1NVUFBPUlQpKSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmM6NDQ0Olx0XHRueHB3aWZpX2RiZyhwcml2LVx1MDAzZWFkYXB0ZXIsIE1TRyxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYy00NDUtXHRcdFx0ICAgIFwmIzM0O1VTRVIgSEVfTUFDX0NBUCBkb24mIzM5O3Qgc3VwcG9ydCBUV1RcXG5cJiMzNDspO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYy00NTEtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmM6NDUyOnU4IG54cHdpZmlfaXNfc3RhXzExYXhfdHd0X3JlcV9zdXBwb3J0ZWQoc3RydWN0IG54cHdpZmlfcHJpdmF0ZSAqcHJpdilcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYy00NTMte1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jOjQ1NDpcdHN0cnVjdCBueHB3aWZpX2llX3R5cGVzX2hlX2NhcCAqdXNlcl9oZV9jYXA7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmMtNDU1LVx0dTggcmV0ID0gMDtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmMtNDU5LVx0XHRpZiAocHJpdi1cdTAwM2Vjb25maWdfYmFuZHMgXHUwMDI2IEJBTkRfQUFYKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jOjQ2MDpcdFx0XHR1c2VyX2hlX2NhcCA9IChzdHJ1Y3Qgbnhwd2lmaV9pZV90eXBlc19oZV9jYXAgKilwcml2LVx1MDAzZXVzZXJfaGVfY2FwO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jLTQ2MS1cdFx0ZWxzZVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jOjQ2MjpcdFx0XHR1c2VyX2hlX2NhcCA9IChzdHJ1Y3Qgbnhwd2lmaV9pZV90eXBlc19oZV9jYXAgKilwcml2LVx1MDAzZXVzZXJfMmdfaGVfY2FwO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jLTQ2My1cdFx0cmV0ID0gdXNlcl9oZV9jYXAtXHUwMDNlaGVfbWFjX2NhcFswXSBcdTAwMjYgSEVfTUFDX0NBUF9UV1RfUkVRX1NVUFBPUlQ7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jLTQ2OC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYzo0Njk6aW50IG54cHdpZmlfY21kX3R3dF9jZmcoc3RydWN0IG54cHdpZmlfcHJpdmF0ZSAqcHJpdixcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYy00NzAtXHRcdFx0c3RydWN0IGhvc3RfY21kX2RzX2NvbW1hbmQgKmNtZCwgdTE2IGNtZF9hY3Rpb24sXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmM6NDcxOlx0XHRcdHN0cnVjdCBueHB3aWZpX3R3dF9jZmcgKnR3dF9jZmcpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmMtNDcyLXtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYzo0NzM6XHRzdHJ1Y3Qgbnhwd2lmaV9hZGFwdGVyICphZGFwdGVyID0gcHJpdi1cdTAwM2VhZGFwdGVyO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jLTQ3NC1cdHN0cnVjdCBob3N0X2NtZF90d3RfY2ZnICp0d3RfY2ZnX2NtZCA9IFx1MDAyNmNtZC1cdTAwM2VwYXJhbXMudHd0X2NmZztcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYzo0NzU6XHRzdHJ1Y3Qgbnhwd2lmaV90d3Rfc2V0dXAgKnR3dF9zZXR1cDtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYzo0NzY6XHRzdHJ1Y3Qgbnhwd2lmaV90d3RfdGVhcmRvd24gKnR3dF90ZWFyZG93bjtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYzo0Nzc6XHRzdHJ1Y3Qgbnhwd2lmaV90d3RfcmVwb3J0ICp0d3RfcmVwb3J0O1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jOjQ3ODpcdHN0cnVjdCBueHB3aWZpX3R3dF9pbmZvcm1hdGlvbiAqdHd0X2luZm9ybWF0aW9uO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jOjQ3OTpcdHN0cnVjdCBueHB3aWZpX2J0d3RfYXBfY29uZmlnICpidHd0X2FwX2NvbmZpZztcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYy00ODAtXHR1OCBpO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYy00OTAtXHRjYXNlIE5YUFdJRklfMTFBWF9UV1RfU0VUVVBfU1VCSUQ6XG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmM6NDkxOlx0XHR0d3Rfc2V0dXAgPSAoc3RydWN0IG54cHdpZmlfdHd0X3NldHVwICopXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmMtNDkyLVx0XHRcdHR3dF9jZmdfY21kLVx1MDAzZXZhbDtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYy00OTMtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmM6NDk0Olx0XHRtZW1zZXQodHd0X3NldHVwLCAweDAwLCBzaXplb2Yoc3RydWN0IG54cHdpZmlfdHd0X3NldHVwKSk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmMtNDk1LVx0XHR0d3Rfc2V0dXAtXHUwMDNlaW1wbGljaXQgPSB0d3RfY2ZnLVx1MDAzZXBhcmFtLnR3dF9zZXR1cC5pbXBsaWNpdDtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmMtNTA3LVx0XHR0d3Rfc2V0dXAtXHUwMDNlYmNuX21pc3NfdGhyZXNob2xkID0gdHd0X2NmZy1cdTAwM2VwYXJhbS50d3Rfc2V0dXAuYmNuX21pc3NfdGhyZXNob2xkO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jOjUwODpcdFx0Y21kX3NpemUgJiM0Mzs9IHNpemVvZihzdHJ1Y3Qgbnhwd2lmaV90d3Rfc2V0dXApO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jLTUwOS1cdFx0YnJlYWs7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmMtNTEwLVx0Y2FzZSBOWFBXSUZJXzExQVhfVFdUX1RFQVJET1dOX1NVQklEOlxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jOjUxMTpcdFx0dHd0X3RlYXJkb3duID0gKHN0cnVjdCBueHB3aWZpX3R3dF90ZWFyZG93biAqKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jLTUxMi1cdFx0XHR0d3RfY2ZnX2NtZC1cdTAwM2V2YWw7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmMtNTEzLVx0XHRtZW1zZXQodHd0X3RlYXJkb3duLCAweDAwLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jOjUxNDpcdFx0ICAgICAgIHNpemVvZihzdHJ1Y3Qgbnhwd2lmaV90d3RfdGVhcmRvd24pKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYy01MTUtXHRcdHR3dF90ZWFyZG93bi1cdTAwM2VmbG93X2lkZW50aWZpZXIgPVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYy01MjAtXHRcdFx0dHd0X2NmZy1cdTAwM2VwYXJhbS50d3RfdGVhcmRvd24udGVhcmRvd25fYWxsX3R3dDtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYzo1MjE6XHRcdGNtZF9zaXplICYjNDM7PSBzaXplb2Yoc3RydWN0IG54cHdpZmlfdHd0X3RlYXJkb3duKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYy01MjItXHRcdGJyZWFrO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jLTUyMy1cdGNhc2UgTlhQV0lGSV8xMUFYX1RXVF9SRVBPUlRfU1VCSUQ6XG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmM6NTI0Olx0XHR0d3RfcmVwb3J0ID0gKHN0cnVjdCBueHB3aWZpX3R3dF9yZXBvcnQgKilcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYy01MjUtXHRcdFx0dHd0X2NmZ19jbWQtXHUwMDNldmFsO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jOjUyNjpcdFx0bWVtc2V0KHR3dF9yZXBvcnQsIDB4MDAsIHNpemVvZihzdHJ1Y3Qgbnhwd2lmaV90d3RfcmVwb3J0KSk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmMtNTI3LVx0XHR0d3RfcmVwb3J0LVx1MDAzZXR5cGUgPSB0d3RfY2ZnLVx1MDAzZXBhcmFtLnR3dF9yZXBvcnQudHlwZTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYzo1Mjg6XHRcdGNtZF9zaXplICYjNDM7PSBzaXplb2Yoc3RydWN0IG54cHdpZmlfdHd0X3JlcG9ydCk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmMtNTI5LVx0XHRicmVhaztcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYy01MzAtXHRjYXNlIE5YUFdJRklfMTFBWF9UV1RfSU5GT1JNQVRJT05fU1VCSUQ6XG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmM6NTMxOlx0XHR0d3RfaW5mb3JtYXRpb24gPSAoc3RydWN0IG54cHdpZmlfdHd0X2luZm9ybWF0aW9uICopXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmMtNTMyLVx0XHRcdHR3dF9jZmdfY21kLVx1MDAzZXZhbDtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYy01MzMtXHRcdG1lbXNldCh0d3RfaW5mb3JtYXRpb24sIDB4MDAsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmM6NTM0Olx0XHQgICAgICAgc2l6ZW9mKHN0cnVjdCBueHB3aWZpX3R3dF9pbmZvcm1hdGlvbikpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jLTUzNS1cdFx0dHd0X2luZm9ybWF0aW9uLVx1MDAzZWZsb3dfaWRlbnRpZmllciA9XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jLTUzOC1cdFx0XHR0d3RfY2ZnLVx1MDAzZXBhcmFtLnR3dF9pbmZvcm1hdGlvbi5zdXNwZW5kX2R1cmF0aW9uO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jOjUzOTpcdFx0Y21kX3NpemUgJiM0Mzs9IHNpemVvZihzdHJ1Y3Qgbnhwd2lmaV90d3RfaW5mb3JtYXRpb24pO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jLTU0MC1cdFx0YnJlYWs7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmMtNTQxLVx0Y2FzZSBOWFBXSUZJXzExQVhfQlRXVF9BUF9DT05GSUdfU1VCSUQ6XG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmM6NTQyOlx0XHRidHd0X2FwX2NvbmZpZyA9IChzdHJ1Y3Qgbnhwd2lmaV9idHd0X2FwX2NvbmZpZyAqKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jLTU0My1cdFx0XHRcdCB0d3RfY2ZnX2NtZC1cdTAwM2V2YWw7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmMtNTQ0LVx0XHRtZW1zZXQoYnR3dF9hcF9jb25maWcsIDB4MDAsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmM6NTQ1Olx0XHQgICAgICAgc2l6ZW9mKHN0cnVjdCBueHB3aWZpX2J0d3RfYXBfY29uZmlnKSk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmMtNTQ2LVx0XHRidHd0X2FwX2NvbmZpZy1cdTAwM2VhcF9iY2FzdF9iZXRfc3RhX3dhaXQgPVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYy01NjQtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmM6NTY1Olx0XHRjbWRfc2l6ZSAmIzQzOz0gc2l6ZW9mKHN0cnVjdCBueHB3aWZpX2J0d3RfYXBfY29uZmlnKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYy01NjYtXHRcdGJyZWFrO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jLTU2Ny1cdGRlZmF1bHQ6XG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmM6NTY4Olx0XHRueHB3aWZpX2RiZyhhZGFwdGVyLCBFUlJPUixcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYy01NjktXHRcdFx0ICAgIFwmIzM0O1Vua25vd24gc3ViIGlkOiAlZFxcblwmIzM0OywgdHd0X2NmZy1cdTAwM2VzdWJfaWQpO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYy01NzctXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmM6NTc4OmludCBueHB3aWZpX3JldF90d3RfY2ZnKHN0cnVjdCBueHB3aWZpX3ByaXZhdGUgKnByaXYsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmMtNTc5LVx0XHRcdHN0cnVjdCBob3N0X2NtZF9kc19jb21tYW5kICpyZXNwLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jOjU4MDpcdFx0XHRzdHJ1Y3Qgbnhwd2lmaV90d3RfY2ZnICp0d3RfY2ZnKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jLTU4MS17XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jLTU4OS1cdCAgICB0d3RfY2ZnLVx1MDAzZXN1Yl9pZCA9PSBOWFBXSUZJXzExQVhfVFdUX1JFUE9SVF9TVUJJRCkge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jOjU5MDpcdFx0c3RydWN0IG54cHdpZmlfdHd0X3JlcG9ydCAqdHd0X3JlcG9ydCA9XG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmM6NTkxOlx0XHRcdChzdHJ1Y3Qgbnhwd2lmaV90d3RfcmVwb3J0ICopdHd0X2NmZ19jbWQtXHUwMDNldmFsO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jLTU5Mi1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYzo1OTM6XHRcdG1lbWNweShcdTAwMjZ0d3RfY2ZnLVx1MDAzZXBhcmFtLnR3dF9yZXBvcnQsIHR3dF9yZXBvcnQsIHNpemVvZihzdHJ1Y3Qgbnhwd2lmaV90d3RfcmVwb3J0KSk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmMtNTk0LVx0fVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguaC0yLS8qXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4Lmg6MzogKiBueHB3aWZpOiA4MDIuMTFheCBzdXBwb3J0XG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmgtNC0gKlxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguaD0xNz1zdGF0aWMgaW5saW5lIHUxNlxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5oOjE4Om54cHdpZmlfZ2V0X2hlX25zc19tY3MoX19sZTE2IG1jc19tYXBfc2V0LCBpbnQgbnNzKSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmgtMTktXHRyZXR1cm4gKChsZTE2X3RvX2NwdShtY3NfbWFwX3NldCkgXHUwMDNlXHUwMDNlICgyICogKG5zcyAtIDEpKSkgXHUwMDI2IDB4Myk7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5oPTIyPXN0YXRpYyBpbmxpbmUgdm9pZFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5oOjIzOm54cHdpZmlfc2V0X2hlX25zc19tY3MoX19sZTE2ICptY3NfbWFwX3NldCwgaW50IG5zcywgaW50IHZhbHVlKSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmgtMjQtXHR1MTYgdGVtcDtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmgtMzAtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4Lmg6MzE6Ym9vbCBueHB3aWZpX2lzXzExYXhfdHd0X3N1cHBvcnRlZChzdHJ1Y3Qgbnhwd2lmaV9wcml2YXRlICpwcml2LFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5oOjMyOlx0XHRcdFx0ICAgc3RydWN0ICBueHB3aWZpX2Jzc2Rlc2NyaXB0b3IgKmJzc19kZXNjKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguaC0zMy1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguaDozNDp2b2lkIG54cHdpZmlfdXBkYXRlXzExYXhfY2FwKHN0cnVjdCBueHB3aWZpX2FkYXB0ZXIgKmFkYXB0ZXIsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmgtMzUtXHRcdFx0ICAgICBzdHJ1Y3QgaHdfc3BlY19leHRlbnNpb24gKmh3X2hlX2NhcCk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmgtMzYtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4Lmg6Mzc6Ym9vbCBueHB3aWZpXzExYXhfYmFuZGNvbmZpZ19hbGxvd2VkKHN0cnVjdCBueHB3aWZpX3ByaXZhdGUgKnByaXYsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4Lmg6Mzg6XHRcdFx0XHQgICAgIHN0cnVjdCBueHB3aWZpX2Jzc2Rlc2NyaXB0b3IgKmJzc19kZXNjKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguaC0zOS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguaDo0MDppbnQgbnhwd2lmaV9jbWRfYXBwZW5kXzExYXhfdGx2KHN0cnVjdCBueHB3aWZpX3ByaXZhdGUgKnByaXYsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4Lmg6NDE6XHRcdFx0XHRzdHJ1Y3Qgbnhwd2lmaV9ic3NkZXNjcmlwdG9yICpic3NfZGVzYyxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguaC00Mi1cdFx0XHRcdHU4ICoqYnVmZmVyKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguaC00My1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguaDo0NDppbnQgbnhwd2lmaV9maWxsX2hlX2NhcF90bHYoc3RydWN0IG54cHdpZmlfcHJpdmF0ZSAqcHJpdixcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguaDo0NTpcdFx0XHQgICAgc3RydWN0IG54cHdpZmlfaWVfdHlwZXNfaGVfY2FwICpoZV9jYXAsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmgtNDYtXHRcdFx0ICAgIHUxNiBiYW5kcyk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4Lmg6NDc6aW50IG54cHdpZmlfY21kXzExYXhfY2ZnKHN0cnVjdCBueHB3aWZpX3ByaXZhdGUgKnByaXYsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmgtNDgtXHRcdFx0IHN0cnVjdCBob3N0X2NtZF9kc19jb21tYW5kICpjbWQsIHUxNiBjbWRfYWN0aW9uLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5oOjQ5Olx0XHRcdCBzdHJ1Y3Qgbnhwd2lmaV8xMWF4X2hlX2NmZyAqYXhfY2ZnKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguaC01MC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguaDo1MTppbnQgbnhwd2lmaV9yZXRfMTFheF9jZmcoc3RydWN0IG54cHdpZmlfcHJpdmF0ZSAqcHJpdixcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguaC01Mi1cdFx0XHQgc3RydWN0IGhvc3RfY21kX2RzX2NvbW1hbmQgKnJlc3AsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4Lmg6NTM6XHRcdFx0IHN0cnVjdCBueHB3aWZpXzExYXhfaGVfY2ZnICpheF9jZmcpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5oLTU0LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5oOjU1OmludCBueHB3aWZpX2NtZF8xMWF4X2NtZChzdHJ1Y3Qgbnhwd2lmaV9wcml2YXRlICpwcml2LFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5oLTU2LVx0XHRcdCBzdHJ1Y3QgaG9zdF9jbWRfZHNfY29tbWFuZCAqY21kLCB1MTYgY21kX2FjdGlvbixcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguaDo1NzpcdFx0XHQgc3RydWN0IG54cHdpZmlfMTFheF9jbWRfY2ZnICpheF9jbWQpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5oLTU4LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5oOjU5OmludCBueHB3aWZpX3JldF8xMWF4X2NtZChzdHJ1Y3Qgbnhwd2lmaV9wcml2YXRlICpwcml2LFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5oLTYwLVx0XHRcdCBzdHJ1Y3QgaG9zdF9jbWRfZHNfY29tbWFuZCAqcmVzcCxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguaDo2MTpcdFx0XHQgc3RydWN0IG54cHdpZmlfMTFheF9jbWRfY2ZnICpheF9jbWQpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5oLTYyLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5oOjYzOmludCBueHB3aWZpX2NtZF90d3RfY2ZnKHN0cnVjdCBueHB3aWZpX3ByaXZhdGUgKnByaXYsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmgtNjQtXHRcdFx0c3RydWN0IGhvc3RfY21kX2RzX2NvbW1hbmQgKmNtZCwgdTE2IGNtZF9hY3Rpb24sXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4Lmg6NjU6XHRcdFx0c3RydWN0IG54cHdpZmlfdHd0X2NmZyAqdHd0X2NmZyk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmgtNjYtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4Lmg6Njc6aW50IG54cHdpZmlfcmV0X3R3dF9jZmcoc3RydWN0IG54cHdpZmlfcHJpdmF0ZSAqcHJpdixcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguaC02OC1cdFx0XHRzdHJ1Y3QgaG9zdF9jbWRfZHNfY29tbWFuZCAqcmVzcCxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguaDo2OTpcdFx0XHRzdHJ1Y3Qgbnhwd2lmaV90d3RfY2ZnICp0d3RfY2ZnKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguaC03MC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguaDo3MTp1OCBueHB3aWZpX2lzX3N0YV8xMWF4X3R3dF9yZXFfc3VwcG9ydGVkKHN0cnVjdCBueHB3aWZpX3ByaXZhdGUgKnByaXYpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5oLTcyLVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExaC5jLTItLypcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExaC5jOjM6ICogbnhwd2lmaTogODAyLjExaCBoZWxwZXJzXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWguYy00LSAqXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFoLmMtMTItXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWguYzoxMzp2b2lkIG54cHdpZmlfaW5pdF8xMWhfcGFyYW1zKHN0cnVjdCBueHB3aWZpX3ByaXZhdGUgKnByaXYpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWguYy0xNC17XG5cbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD41LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8yNSAyMzo0MjwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAxOTM3MQoJCQkJCQkJb3V0cHV0OiAzNwoJCQkJCQkJdGhvdWdodHM6IDM0CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5IZXJlJiMzOTtzIG15IHRha2Ugb24gdGhlIHRob3VnaHQgcHJvY2VzczoKCioqRGl2aW5nIGludG8gdGhlIG54cHdpZmkgRHJpdmVyKioKCk9rYXksIHNvIHdlJiMzOTtyZSBkZWFsaW5nIHdpdGggdGhlIGBueHB3aWZpYCBkcml2ZXIuIE15IGZpcnN0IGluc3RpbmN0LCBhcyBhbHdheXMsIGlzIHRvIHVuZGVyc3RhbmQgaXRzIGRlcGVuZGVuY2llcy4gVGltZSB0byBkaWcgaW50byB0aGUgaGVhcnQgb2YgdGhlIG1hdHRlciDigJMgdGhlIGBLY29uZmlnYCBmaWxlLiBTcGVjaWZpY2FsbHksIEkmIzM5O2xsIGJlIGhlYWRpbmcgc3RyYWlnaHQgdG8gYGRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpL0tjb25maWdgLiBUaGlzIGlzIHdoZXJlIHRoZSBjb25maWd1cmF0aW9uIGxvZ2ljIGxpdmVzLCBhbmQgd2hlcmUgSSBjYW4gcXVpY2tseSBkZWNpcGhlciB3aGF0IG90aGVyIGNvbXBvbmVudHMgb3IgZmVhdHVyZXMgdGhpcyBkcml2ZXIgcmVsaWVzIHVwb24uIFVuZGVyc3RhbmRpbmcgaXRzIGRlcGVuZGVuY2llcyBpcyBjcnVjaWFsIGZvciBhbnkgbW9kaWZpY2F0aW9ucyBvciBkZWVwZXIgYW5hbHlzaXMuIFRoaXMgZmlsZSB3aWxsIHRlbGwgbWUgZXZlcnl0aGluZyBJIG5lZWQgdG8ga25vdyBhYm91dCB0aGUgcHJlcmVxdWlzaXRlcyBmb3IgYnVpbGRpbmcgYW5kIHJ1bm5pbmcgdGhpcyBkcml2ZXIuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Ni8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMjUgMjM6NDI8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7ZGVwZW5kcyBvbiYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpL0tjb25maWcmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvS2NvbmZpZz0yPWNvbmZpZyBOWFBXSUZJXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS9LY29uZmlnLTMtXHR0cmlzdGF0ZSBcJiMzNDtOWFAgV2lGaSBEcml2ZXJcJiMzNDsgaWYgQ09NUElMRV9URVNUXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS9LY29uZmlnOjQ6XHRkZXBlbmRzIG9uIENGRzgwMjExXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS9LY29uZmlnLTUtXHRoZWxwXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvS2NvbmZpZz0xMj1jb25maWcgTlhQV0lGSV9TRElPXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS9LY29uZmlnLTEzLVx0dHJpc3RhdGUgXCYjMzQ7TlhQIFdpRmkgRHJpdmVyIGZvciBJVzYxeFwmIzM0O1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvS2NvbmZpZzoxNDpcdGRlcGVuZHMgb24gQ0ZHODAyMTEgXHUwMDI2XHUwMDI2IE1NQ1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvS2NvbmZpZy0xNS1cdHNlbGVjdCBOWFBXSUZJXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Ny8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMjUgMjM6NDI8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMTk4MzMKCQkJCQkJCW91dHB1dDogNDIKCQkJCQkJCXRob3VnaHRzOiA1NwoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+SGVyZSYjMzk7cyBteSBzdW1tYXJ5LCBhcyB0aGUgZXhwZXJ0OgoKKipJbnZlc3RpZ2F0aW5nIHRoZSBOWFAgV2lGaSBEcml2ZXIgQ29uZmlndXJhdGlvbioqCgpPa2F5LCBzbyBJIHNlZSB0aGlzIGBOWFBXSUZJX1NESU9gIG9wdGlvbiwgYW5kIGl0JiMzOTtzIGZsYWdnZWQgYXMgZGVwZW5kZW50IG9uIGBDRkc4MDIxMWAgYW5kIHRoZSBgTU1DYCBkcml2ZXIuIFRoYXQgbWFrZXMgc2Vuc2UsIGFzc3VtaW5nIHRoaXMgaXMgYW4gU0RJTy1iYXNlZCBpbXBsZW1lbnRhdGlvbi4gTXkgaW1tZWRpYXRlIHF1ZXN0aW9uIGlzLCAmIzM0O0FyZSB0aGVyZSBQQ0llIG9yIFVTQiB2YXJpYW50cyBvZiB0aGlzIGRyaXZlcj8mIzM0OyBXZSBuZWVkIHRvIGZpZ3VyZSB0aGF0IG91dCBiZWNhdXNlIHRob3NlIGludGVyZmFjZXMgYXJlIG9mdGVuIG1vcmUgcGVyZm9ybWFudCBhbmQgZmxleGlibGUuIEkmIzM5O2xsIG5lZWQgdG8gZGlnIGRlZXBlciBpbnRvIHRoaXMgYEtjb25maWdgIGZpbGUgKGBkcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS9LY29uZmlnYCkgYW5kIHNlZSBpZiB0aGVyZSBhcmUgb3RoZXIgZGV2aWNlIG9wdGlvbnMgZGVmaW5lZC4gVGhpcyBjb25maWd1cmF0aW9uIGlzIHRoZSBrZXkgdG8gdW5kZXJzdGFuZGluZyBhbGwgc3VwcG9ydGVkIGhhcmR3YXJlLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjgvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzI1IDIzOjQyPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+cmVhZC1maWxlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtGaWxlJiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvS2NvbmZpZyYjMzQ7LAogICYjMzQ7Rmlyc3RMaW5lJiMzNDs6IDEsCiAgJiMzNDtMaW5lQ291bnQmIzM0OzogMTAwCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtDb250ZW50cyYjMzQ7OiAmIzM0OyAgIDE6XHQjIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wLW9ubHlcbiAgIDI6XHRjb25maWcgTlhQV0lGSVxuICAgMzpcdFx0dHJpc3RhdGUgXCYjMzQ7TlhQIFdpRmkgRHJpdmVyXCYjMzQ7IGlmIENPTVBJTEVfVEVTVFxuICAgNDpcdFx0ZGVwZW5kcyBvbiBDRkc4MDIxMVxuICAgNTpcdFx0aGVscFxuICAgNjpcdFx0ICBUaGlzIGFkZHMgc3VwcG9ydCBmb3Igd2lyZWxlc3MgYWRhcHRlcnMgYmFzZWQgb24gTlhQXG4gICA3Olx0XHQgIDgwMi4xMW4vYWMgY2hpcHNldHMuXG4gICA4Olx0XG4gICA5Olx0XHQgIElmIHlvdSBjaG9vc2UgdG8gYnVpbGQgaXQgYXMgYSBtb2R1bGUsIGl0IHdpbGwgYmUgY2FsbGVkXG4gIDEwOlx0XHQgIG54cHdpZmkuXG4gIDExOlx0XG4gIDEyOlx0Y29uZmlnIE5YUFdJRklfU0RJT1xuICAxMzpcdFx0dHJpc3RhdGUgXCYjMzQ7TlhQIFdpRmkgRHJpdmVyIGZvciBJVzYxeFwmIzM0O1xuICAxNDpcdFx0ZGVwZW5kcyBvbiBDRkc4MDIxMSBcdTAwMjZcdTAwMjYgTU1DXG4gIDE1Olx0XHRzZWxlY3QgTlhQV0lGSVxuICAxNjpcdFx0c2VsZWN0IEZXX0xPQURFUlxuICAxNzpcdFx0c2VsZWN0IFdBTlRfREVWX0NPUkVEVU1QXG4gIDE4Olx0XHRoZWxwXG4gIDE5Olx0XHQgIFRoaXMgYWRkcyBzdXBwb3J0IGZvciB3aXJlbGVzcyBhZGFwdGVycyBiYXNlZCBvbiBOWFBcbiAgMjA6XHRcdCAgSVc2MXggaW50ZXJmYWNlLlxuICAyMTpcdFxuICAyMjpcdFx0ICBJZiB5b3UgY2hvb3NlIHRvIGJ1aWxkIGl0IGFzIGEgbW9kdWxlLCBpdCB3aWxsIGJlIGNhbGxlZFxuICAyMzpcdFx0ICBueHB3aWZpX3NkaW8uXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+OS8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMjUgMjM6NDI8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMjA0MTMKCQkJCQkJCW91dHB1dDogMzEKCQkJCQkJCXRob3VnaHRzOiA0NgoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipJbml0aWFsIEFzc2Vzc21lbnQgJmFtcDsgSW1tZWRpYXRlIEFjdGlvbioqCgpPa2F5LCBzbyBJJiMzOTttIGxvb2tpbmcgYXQgdGhpcyBhbmQgaXQmIzM5O3MgZmxhZ2dlZCBhcyBvbmx5IGhhdmluZyBgTlhQV0lGSV9TRElPYC4gUmlnaHQgYXdheSwgbXkgYWxhcm0gYmVsbHMgYXJlIHJpbmdpbmcgYSBsaXR0bGUuIFNESU8gZGV2aWNlcyBhcmVuJiMzOTt0IHVzdWFsbHkgYSBnb29kIHRhcmdldCBmb3IgZnV6emluZyBpbiBhIHN0YW5kYXJkIFFFTVUgb3IgR0NFIGVudmlyb25tZW50LiBUaGV5JiMzOTtyZSBvZnRlbiB0cmlja3kgdG8gZW11bGF0ZSByZWxpYWJseSBhbmQgSSBuZWVkIHRvIGNvbnNpZGVyIHRoYXQuIEJlZm9yZSBJIGdldCB0b28gZmFyIGRvd24gdGhpcyByb2FkLCBJJiMzOTttIGdvaW5nIHRvIHF1aWNrbHkgc2NhbiBmb3IgYW55IG90aGVyIHBvdGVudGlhbCBpbnRlcmZhY2VzIG9yIGVudHJ5IHBvaW50cyB0aGF0IG1pZ2h0IGJlIHByZXNlbnQuIEkgbmVlZCB0byBtYWtlIHN1cmUgSSYjMzk7bSBub3QgbWlzc2luZyBzb21ldGhpbmcgb2J2aW91cyBiZWZvcmUgSSBoYXZlIHRvIGFkanVzdCBteSBmdXp6aW5nIGFwcHJvYWNoLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEwLzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8yNSAyMzo0MjwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmNvZGVzZWFyY2gtZGlyLWluZGV4PC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtEaXImIzM0OzogJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RmlsZXMmIzM0OzogWwogICAgJiMzNDsxMWFjLmMmIzM0OywKICAgICYjMzQ7MTFhYy5oJiMzNDssCiAgICAmIzM0OzExYXguYyYjMzQ7LAogICAgJiMzNDsxMWF4LmgmIzM0OywKICAgICYjMzQ7MTFoLmMmIzM0OywKICAgICYjMzQ7MTFuLmMmIzM0OywKICAgICYjMzQ7MTFuLmgmIzM0OywKICAgICYjMzQ7MTFuX2FnZ3IuYyYjMzQ7LAogICAgJiMzNDsxMW5fYWdnci5oJiMzNDssCiAgICAmIzM0OzExbl9yeHJlb3JkZXIuYyYjMzQ7LAogICAgJiMzNDsxMW5fcnhyZW9yZGVyLmgmIzM0OywKICAgICYjMzQ7Y2ZnLmgmIzM0OywKICAgICYjMzQ7Y2ZnODAyMTEuYyYjMzQ7LAogICAgJiMzNDtjZmc4MDIxMS5oJiMzNDssCiAgICAmIzM0O2NmcC5jJiMzNDssCiAgICAmIzM0O2NtZGV2dC5jJiMzNDssCiAgICAmIzM0O2NtZGV2dC5oJiMzNDssCiAgICAmIzM0O2RlYnVnZnMuYyYjMzQ7LAogICAgJiMzNDtldGh0b29sLmMmIzM0OywKICAgICYjMzQ7ZncuaCYjMzQ7LAogICAgJiMzNDtpZS5jJiMzNDssCiAgICAmIzM0O2luaXQuYyYjMzQ7LAogICAgJiMzNDtqb2luLmMmIzM0OywKICAgICYjMzQ7bWFpbi5jJiMzNDssCiAgICAmIzM0O21haW4uaCYjMzQ7LAogICAgJiMzNDtzY2FuLmMmIzM0OywKICAgICYjMzQ7c2Rpby5jJiMzNDssCiAgICAmIzM0O3NkaW8uaCYjMzQ7LAogICAgJiMzNDtzdGFfY2ZnLmMmIzM0OywKICAgICYjMzQ7c3RhX2NtZC5jJiMzNDssCiAgICAmIzM0O3N0YV9ldmVudC5jJiMzNDssCiAgICAmIzM0O3N0YV9yeC5jJiMzNDssCiAgICAmIzM0O3N0YV90eC5jJiMzNDssCiAgICAmIzM0O3R4cnguYyYjMzQ7LAogICAgJiMzNDt1YXBfY21kLmMmIzM0OywKICAgICYjMzQ7dWFwX2V2ZW50LmMmIzM0OywKICAgICYjMzQ7dWFwX3R4cnguYyYjMzQ7LAogICAgJiMzNDt1dGlsLmMmIzM0OywKICAgICYjMzQ7dXRpbC5oJiMzNDssCiAgICAmIzM0O3dtbS5jJiMzNDssCiAgICAmIzM0O3dtbS5oJiMzNDsKICBdLAogICYjMzQ7U3ViZGlycyYjMzQ7OiBudWxsCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMS8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMjUgMjM6NDI8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMjA5NjIKCQkJCQkJCW91dHB1dDogNDMKCQkJCQkJCXRob3VnaHRzOiAyMTcKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqU0RJTyBEcml2ZXIgQW5hbHlzaXMgZm9yIEZ1enppbmcgUG90ZW50aWFsKioKCk9rYXksIHNvIEkmIzM5O20gbG9va2luZyBhdCB0aGlzIGNvZGUgYW5kIGltbWVkaWF0ZWx5IHNlZSBgc2Rpby5jYCBhbmQgYHNkaW8uaGAg4oCTIHRoYXQmIzM5O3MgYSBrZXkgaW5kaWNhdG9yLiBObyBgdXNiLmNgIG9yIGBwY2llLmNgIGluIHNpZ2h0LCB3aGljaCBjbGFyaWZpZXMgdGhlIHRhcmdldC4gVGhpcyBwb2ludHMgZGlyZWN0bHkgdG8gYW4gU0RJTyBpbXBsZW1lbnRhdGlvbiwgbmVlZGluZyBhIHJlYWwgU0RJTyBob3N0IGNvbnRyb2xsZXIgYW5kIGEgcGh5c2ljYWwgU0RJTyBjYXJkIHRvIGZ1bmN0aW9uLgoKTXkgaW5pdGlhbCB0aG91Z2h0IHdhcywgJiMzNDtDYW4gSSBsZXZlcmFnZSBgbWFjODAyMTFfaHdzaW1gIGZvciBmdXp6aW5nIHRoaXM/JiMzNDsgTm8sIHRoYXQmIzM5O3MgYSBkZWFkIGVuZC4gYG1hYzgwMjExX2h3c2ltYCBpcyBhbGwgYWJvdXQgc2ltdWxhdGluZyBtYWM4MDIxMSBkZXZpY2VzLCB3aGljaCBpc24mIzM5O3QgdGhlIHNhbWUuIEFuZCBsb29raW5nIGF0IHRoaXMgYG54cHdpZmlgIGRyaXZlciwgaXQgdXNlcyBgY2ZnODAyMTFgIGRpcmVjdGx5IOKAkyBpdCYjMzk7cyBhIEZ1bGxNQUMsIG5vdCBhIG1hYzgwMjExIGRyaXZlci4KClRoZSBtaWxsaW9uLWRvbGxhciBxdWVzdGlvbiBub3cgaXMsIGNhbiBJIGdldCBTRElPIGRldmljZXMgZW11bGF0ZWQgdW5kZXIgUUVNVT8gVGhhdCYjMzk7cyB0aGUgcmVhbCBjaGFsbGVuZ2UuIEkga25vdyBTRElPIGRldmljZXMgYXJlbiYjMzk7dCB0eXBpY2FsbHkgZnV6emVkIGJlY2F1c2UgdGhlcmUmIzM5O3Mgbm8gc29saWQgZ2VuZXJpYyBTRElPIGVtdWxhdGlvbiBmcmFtZXdvcmsgaW4gc3l6a2FsbGVyLiBUaGF0JiMzOTtzIGEgaHVnZSBibG9ja2VyLgoKQWxyaWdodCwgbGV0JiMzOTtzIHRha2UgYSBzdGVwIGJhY2sgYW5kIG1ha2Ugc3VyZSBJJiMzOTttIG5vdCBtaXNzaW5nIGFueXRoaW5nLiBJIG5lZWQgdG8gZmlndXJlIG91dCAqaG93KiB0aGlzIGNvZGUgaXMgYWN0dWFsbHkgcmVhY2hlZC4gVGhlIGRyaXZlciByZWdpc3RlcnMgaXRzZWxmIHdpdGggYHNkaW9fcmVnaXN0ZXJfZHJpdmVyKCZhbXA7bnhwd2lmaV9zZGlvKWAuIFJpZ2h0LCB0aGF0JiMzOTtzIHRoZSBlbnRyeSBwb2ludC4gVGltZSB0byBkaXZlIGludG8gYHNkaW8uY2AgYW5kIHRyYWNlIHRoZSBleGVjdXRpb24gcGF0aC4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMi8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMjUgMjM6NDI8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPkVycm9yOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bm8gbWF0Y2hlczwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtzZGlvX3JlZ2lzdGVyX2RyaXZlciYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpL3NkaW8uYyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtlcnJvciYjMzQ7OiAmIzM0O25vIG1hdGNoZXMmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTMvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzI1IDIzOjQyPC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDIxNTc4CgkJCQkJCQlvdXRwdXQ6IDM2CgkJCQkJCQl0aG91Z2h0czogOAoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+T2theSwgSSYjMzk7bSByZWFkeSB0byBzdW1tYXJpemUgbXkgJiMzNDt0aG91Z2h0cyYjMzQ7IGluIHRoZSBmaXJzdCBwZXJzb24sIGFzc3VtaW5nIGEgaGlnaCBsZXZlbCBvZiBleHBlcnRpc2UuIEhlcmUgd2UgZ286CgoqKkFzc2Vzc2luZyB0aGUgU3lzdGVtJiMzOTtzIFJlc3BvbnNlKioKCkFscmlnaHQsIEkmIzM5O20gYXQgYSBjcml0aWNhbCBqdW5jdHVyZS4gTXkgaW5pdGlhbCBhc3Nlc3NtZW50IGlzIGNvbXBsZXRlLCBhbmQgbm93IGl0JiMzOTtzIHRpbWUgdG8gdmVyaWZ5IGhvdyB0aGUgc3lzdGVtIGlzIHJlZ2lzdGVyaW5nIHRoZSBpbnB1dC4gSSBuZWVkIHRvIG9ic2VydmUgaXRzIGltbWVkaWF0ZSByZXNwb25zZSB0byBjb25maXJtIGl0cyB1bmRlcnN0YW5kaW5nIG9mIHRoZSBjb250ZXh0LCB0aGUgY29yZSBjb25jZXB0cywgYW5kIHRoZSBudWFuY2VzIG9mIHRoZSBpbnN0cnVjdGlvbnMuIElzIGl0IGludGVycHJldGluZyB0aGUgZGF0YSBhcyBleHBlY3RlZD8gQXJlIHRoZSBmbGFncyBhbmQgcGFyYW1ldGVycyBmdW5jdGlvbmluZyBjb3JyZWN0bHk/IFRoaXMgaXNuJiMzOTt0IGp1c3QgYSBtYXR0ZXIgb2YgYmFzaWMgZnVuY3Rpb25hbGl0eTsgSSYjMzk7bSBsb29raW5nIGZvciBldmlkZW5jZSBvZiBwcm9wZXIgcHJvY2Vzc2luZywgbnVhbmNlZCB1bmRlcnN0YW5kaW5nLCBhbmQgdGhhdCB0aGUgYXJjaGl0ZWN0dXJlIGlzIHJlc3BvbmRpbmcgYWNjb3JkaW5nIHRvIHNwZWNpZmljYXRpb25zLiBUaGUgcHJpbWFyeSBnb2FsIGlzIGNvbmZpcm1hdGlvbiBvZiBwcm9wZXIgaW1wbGVtZW50YXRpb24gb2YgdGhlIGRlc2lnbi4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xNC8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMjUgMjM6NDI8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7bW9kdWxlX2luaXQmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvbWFpbi5jPTE2NjA9bnhwd2lmaV9jbGVhbnVwX21vZHVsZSh2b2lkKVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpL21haW4uYy0xNjY2LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvbWFpbi5jOjE2Njc6bW9kdWxlX2luaXQobnhwd2lmaV9pbml0X21vZHVsZSk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS9tYWluLmMtMTY2OC1tb2R1bGVfZXhpdChueHB3aWZpX2NsZWFudXBfbW9kdWxlKTtcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xNS8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMjUgMjM6NDI8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMjE5MjIKCQkJCQkJCW91dHB1dDogNDMKCQkJCQkJCXRob3VnaHRzOiAxMwoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+SGVyZSYjMzk7cyBteSBhdHRlbXB0IGF0IHN1bW1hcml6aW5nIHRoZSB0aG91Z2h0IHByb2Nlc3MsIHRhaWxvcmVkIGZvciBhbiBleHBlcnQgYXVkaWVuY2UgYW5kIHdyaXR0ZW4gaW4gdGhlIGZpcnN0IHBlcnNvbjoKCioqRGl2aW5nIGludG8gYG54cHdpZmlfaW5pdF9tb2R1bGVgKioKCk9rYXksIHRpbWUgdG8gZGlnIGluLiBMZXQmIzM5O3Mgc3RhcnQgd2l0aCBhIHRob3JvdWdoIGV4YW1pbmF0aW9uIG9mIGBueHB3aWZpX2luaXRfbW9kdWxlYC4gSSBuZWVkIHRvIHVuZGVyc3RhbmQgaXRzIHJvbGUgd2l0aGluIHRoZSBicm9hZGVyIFdpRmkgZHJpdmVyIGFyY2hpdGVjdHVyZS4gTXkgaW5pdGlhbCBnb2FsIGlzIHRvIHF1aWNrbHkgZ3Jhc3AgdGhlIG1vZHVsZSYjMzk7cyBwcmltYXJ5IHJlc3BvbnNpYmlsaXRpZXM6IGluaXRpYWxpemF0aW9uLCByZXNvdXJjZSBhbGxvY2F0aW9uLCByZWdpc3RyYXRpb24gd2l0aCB0aGUga2VybmVsLCBhbmQgdGhlIG92ZXJhbGwgc2V0dXAgb2YgdGhlIFdpRmkgaGFyZHdhcmUgaW50ZXJmYWNlLiBJJiMzOTtsbCBiZSBsb29raW5nIHNwZWNpZmljYWxseSBmb3IgYW55IG9idmlvdXMgcmVkIGZsYWdzOiBwb3RlbnRpYWwgcmFjZSBjb25kaXRpb25zLCBpbmNvcnJlY3QgZXJyb3IgaGFuZGxpbmcsIG1lbW9yeSBsZWFrcywgb3IgbWlzY29uZmlndXJhdGlvbnMgdGhhdCBjb3VsZCBjYXVzZSBpbnN0YWJpbGl0eSBvciBzZWN1cml0eSB2dWxuZXJhYmlsaXRpZXMuIE15IHllYXJzIG9mIGV4cGVyaWVuY2UgdGVsbCBtZSB0aGUgZGV2aWwgaXMgaW4gdGhlIGRldGFpbHMgaGVyZSwgc28gSSYjMzk7bGwgYmUgcGF5aW5nIGNsb3NlIGF0dGVudGlvbiB0byBhbnkgc3VidGxlIG51YW5jZXMgaW4gdGhlIGxvZ2ljIGZsb3csIGxpa2UgdGhlIHNlcXVlbmNlIG9mIGZ1bmN0aW9uIGNhbGxzIGFuZCBob3cgaXQgaW50ZXJhY3RzIHdpdGggdGhlIHVuZGVybHlpbmcgaGFyZHdhcmUgcmVnaXN0ZXJzLiBJJiMzOTttIGFsc28ga2VlbiB0byBzZWUgaG93IGl0IGhhbmRsZXMgcG93ZXIgbWFuYWdlbWVudCBhbmQgaW50ZXJydXB0IHNldHVwIC0gdGhhdCYjMzk7cyBvZnRlbiBhIHNvdXJjZSBvZiB0cmlja3kgYnVncy4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xNi8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMjUgMjM6NDI8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7bnhwd2lmaV9pbml0X21vZHVsZSYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpL21haW4uYyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS9tYWluLmM9MTY0OT1zdGF0aWMgaW50XG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS9tYWluLmM6MTY1MDpueHB3aWZpX2luaXRfbW9kdWxlKHZvaWQpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS9tYWluLmMtMTY1MS17XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvbWFpbi5jPTE2NjA9bnhwd2lmaV9jbGVhbnVwX21vZHVsZSh2b2lkKVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpL21haW4uYy0xNjY2LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvbWFpbi5jOjE2Njc6bW9kdWxlX2luaXQobnhwd2lmaV9pbml0X21vZHVsZSk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS9tYWluLmMtMTY2OC1tb2R1bGVfZXhpdChueHB3aWZpX2NsZWFudXBfbW9kdWxlKTtcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xNy8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMjUgMjM6NDI8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMjI0MjEKCQkJCQkJCW91dHB1dDogNDUKCQkJCQkJCXRob3VnaHRzOiAxMwoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+T2theSwgbGV0JiMzOTtzIGRpdmUgaW50byBgbnhwd2lmaV9pbml0X21vZHVsZWAuIEkgbmVlZCB0byBnZXQgYSBjbGVhciB1bmRlcnN0YW5kaW5nIG9mIHRoaXMgaW5pdGlhbGl6YXRpb24gbW9kdWxlLiBXaGF0JiMzOTtzIGl0cyBwdXJwb3NlIHdpdGhpbiB0aGUgYnJvYWRlciBXaS1GaSBzdGFjaz8gSSYjMzk7bSBhbHJlYWR5IGFudGljaXBhdGluZyBzb21lIG9mIHRoZSBrZXkgYXJlYXMgSSYjMzk7bGwgbmVlZCB0byBmb2N1cyBvbjogdGhlIG92ZXJhbGwgc3RydWN0dXJlLCBkZXBlbmRlbmNpZXMgb24gb3RoZXIgbW9kdWxlcywgYW55IHJlc291cmNlIGFsbG9jYXRpb24sIGFuZCwgY3JpdGljYWxseSwgZXJyb3IgaGFuZGxpbmcuIEkmIzM5O20gZ29pbmcgdG8gcGF5IGNsb3NlIGF0dGVudGlvbiB0byB0aGUgb3JkZXIgb2Ygb3BlcmF0aW9ucywgbG9va2luZyBmb3IgYW55IHBvdGVudGlhbCByYWNlIGNvbmRpdGlvbnMgb3Igc2VxdWVuY2luZyBpc3N1ZXMgdGhhdCBtaWdodCBiaXRlIG1lIGxhdGVyLiBJIG5lZWQgdG8gdW5kZXJzdGFuZCBob3cgaXQmIzM5O3MgaW50ZWdyYXRlZCB3aXRoIHRoZSBrZXJuZWwgYW5kIHVzZXIgc3BhY2UuIERvZXMgaXQgZXN0YWJsaXNoIGFueSBjcml0aWNhbCBkYXRhIHN0cnVjdHVyZXMgdGhhdCBhcmUgc2hhcmVkPyBBcmUgdGhlcmUgYW55IGluaXRpYWwgY29uZmlndXJhdGlvbiBzdGVwcyBpdCBoYW5kbGVzPyBJJiMzOTtsbCBwcm9iYWJseSBiZSBodW50aW5nIGZvciB0aGUgY29yZSBmdW5jdGlvbnMgYW5kIHZhcmlhYmxlcyB0aGF0IGFyZSBleHBvc2VkIGZvciBvdGhlciBtb2R1bGVzIHRvIHVzZSwgYW5kIEkmIzM5O2xsIG5lZWQgdG8gbm90ZSB0aGUgbG9ja2luZyBtZWNoYW5pc21zIChtdXRleGVzLCBzcGlubG9ja3MsIGV0Yy4pIGl0IGVtcGxveXMgdG8gcHJvdGVjdCBzaGFyZWQgcmVzb3VyY2VzLiBBbnkgY2xldmVyIHRyaWNrcyBvciB1bnVzdWFsIGFwcHJvYWNoZXMgdG8gaW5pdGlhbGl6YXRpb24gd2lsbCBiZSB3b3J0aCBhIGRlZXAgbG9vay4gTXkgZXhwZXJ0aXNlIHRlbGxzIG1lIHRoYXQgYSBzb2xpZCB1bmRlcnN0YW5kaW5nIG9mIHRoaXMgaW5pdGlhbCBtb2R1bGUgaXMgZm91bmRhdGlvbmFsLiBXaXRob3V0IGl0LCBkZWJ1Z2dpbmcgYW55IFdpLUZpLXJlbGF0ZWQgaXNzdWVzIGRvd24gdGhlIGxpbmUgd2lsbCBiZSBhIG5pZ2h0bWFyZS4gUmlnaHQsIGxldCYjMzk7cyBzdGFydCByZWFkaW5nIQoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjE4LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8yNSAyMzo0MzwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPnJlYWQtZmlsZTwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RmlsZSYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpL21haW4uYyYjMzQ7LAogICYjMzQ7Rmlyc3RMaW5lJiMzNDs6IDE2NDAsCiAgJiMzNDtMaW5lQ291bnQmIzM0OzogMzAKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0NvbnRlbnRzJiMzNDs6ICYjMzQ7MTY0MDpcdFx0XHRkZXZfaW5mbyhhZGFwdGVyLVx1MDAzZWRldiwgXCYjMzQ7JXBWXCYjMzQ7LCBcdTAwMjZ2YWYpO1xuMTY0MTpcdFx0ZWxzZVxuMTY0MjpcdFx0XHRwcl9pbmZvKFwmIzM0OyVwVlwmIzM0OywgXHUwMDI2dmFmKTtcbjE2NDM6XHRcbjE2NDQ6XHRcdHZhX2VuZChhcmdzKTtcbjE2NDU6XHR9XG4xNjQ2Olx0RVhQT1JUX1NZTUJPTF9HUEwoX254cHdpZmlfZGJnKTtcbjE2NDc6XHRcbjE2NDg6XHQvKiBNb2R1bGUgaW5pdDogaW5pdCBkZWJ1Z2ZzIGlmIGVuYWJsZWQuICovXG4xNjQ5Olx0c3RhdGljIGludFxuMTY1MDpcdG54cHdpZmlfaW5pdF9tb2R1bGUodm9pZClcbjE2NTE6XHR7XG4xNjUyOlx0I2lmZGVmIENPTkZJR19ERUJVR19GU1xuMTY1MzpcdFx0bnhwd2lmaV9kZWJ1Z2ZzX2luaXQoKTtcbjE2NTQ6XHQjZW5kaWZcbjE2NTU6XHRcdHJldHVybiAwO1xuMTY1NjpcdH1cbjE2NTc6XHRcbjE2NTg6XHQvKiBNb2R1bGUgZXhpdDogcmVtb3ZlIGRlYnVnZnMgaWYgZW5hYmxlZC4gKi9cbjE2NTk6XHRzdGF0aWMgdm9pZFxuMTY2MDpcdG54cHdpZmlfY2xlYW51cF9tb2R1bGUodm9pZClcbjE2NjE6XHR7XG4xNjYyOlx0I2lmZGVmIENPTkZJR19ERUJVR19GU1xuMTY2MzpcdFx0bnhwd2lmaV9kZWJ1Z2ZzX3JlbW92ZSgpO1xuMTY2NDpcdCNlbmRpZlxuMTY2NTpcdH1cbjE2NjY6XHRcbjE2Njc6XHRtb2R1bGVfaW5pdChueHB3aWZpX2luaXRfbW9kdWxlKTtcbjE2Njg6XHRtb2R1bGVfZXhpdChueHB3aWZpX2NsZWFudXBfbW9kdWxlKTtcbjE2Njk6XHRcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xOS8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMjUgMjM6NDM8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMjMxMTEKCQkJCQkJCW91dHB1dDogNDAKCQkJCQkJCXRob3VnaHRzOiAzNwoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+T2theSwgaGVyZSYjMzk7cyBteSBpbnRlcnByZXRhdGlvbiBvZiB0aG9zZSB0aG91Z2h0cywgdGFpbG9yZWQgZm9yIGFuIGV4cGVydCBhdWRpZW5jZSwgcHJlc2VudGVkIGluIHRoZSBmaXJzdCBwZXJzb246CgoqKk5hdmlnYXRpbmcgdGhlIG54cHdpZmkgTGFuZHNjYXBlKioKClJpZ2h0LCBzbyBgbnhwd2lmaWAgaXMgY2xlYXJseSBhIGhpZ2gtbGV2ZWwgbW9kdWxlLCBsaWtlbHkgcHJvdmlkaW5nIHRoZSBwdWJsaWMgQVBJIGFuZCBhYnN0cmFjdGlvbiBsYXllci4gQnV0IEkgbmVlZCB0byBkaWcgZGVlcGVyIHRvIHVuZGVyc3RhbmQgdGhlIGFjdHVhbCBoYXJkd2FyZSBpbnRlcmFjdGlvbi4gJiMzNDtBaGEsJiMzNDsgSSB0aGluaywgYG54cHdpZmlfc2Rpb2Agc291bmRzIGxpa2UgdGhlIHJlYWwgZHJpdmVyLCB0aGUgb25lIHRoYXQgZG9lcyB0aGUgZGlydHkgd29yay4gVGhlcmVmb3JlLCB0byB1bmRlcnN0YW5kIGl0cyBpbnRlcm5hbCBvcGVyYXRpb24sIEkgbmVlZCB0byBsb29rIGRpcmVjdGx5IGF0IHRoZSBgc2Rpby5jYCBzb3VyY2UgY29kZS4gSXQmIzM5O3MgdGltZSB0byBkZWx2ZSBpbnRvIHRoZSBTRElPLXNwZWNpZmljIHJvdXRpbmVzLiBMZXQmIzM5O3Mgc2VlIGhvdyB0aGV5JiMzOTt2ZSBoYW5kbGVkIHRoZSBsb3ctbGV2ZWwgaW50ZXJhY3Rpb25zIGFuZCBkYXRhIHRyYW5zZmVycy4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4yMC8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMjUgMjM6NDM8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPkVycm9yOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bm8gbWF0Y2hlczwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDttb2R1bGVfaW5pdCYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpL3NkaW8uYyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtlcnJvciYjMzQ7OiAmIzM0O25vIG1hdGNoZXMmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MjEvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzI1IDIzOjQzPC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDIzMzYwCgkJCQkJCQlvdXRwdXQ6IDQzCgkJCQkJCQl0aG91Z2h0czogMTkKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPkhlcmUmIzM5O3MgbXkgdGFrZSBvbiB0aG9zZSB0aG91Z2h0cywgdGFpbG9yZWQgZm9yIGFuIGV4cGVydCBhdWRpZW5jZToKCioqRGl2aW5nIGludG8gdGhlIFNESU8gRHJpdmVyIFJlZ2lzdHJhdGlvbioqCgpPa2F5LCB0aW1lIHRvIGdldCBncmFudWxhci4gTXkgZm9jdXMgaXMgbmFycm93aW5nIGluIG9uIHRoZSBgc2Rpb19yZWdpc3Rlcl9kcml2ZXJgIGZ1bmN0aW9uLCBzcGVjaWZpY2FsbHkgd2l0aGluIHRoZSBgc2Rpby5jYCBmaWxlLiBJIG5lZWQgdG8gcmVmcmVzaCBteSB1bmRlcnN0YW5kaW5nIG9mIGhvdyB0aGlzIHBhcnRpY3VsYXIgZHJpdmVyIGhvb2tzIGl0c2VsZiBpbnRvIHRoZSBTRElPIHN1YnN5c3RlbS4gV2hhdCYjMzk7cyB0aGUgcmVnaXN0cmF0aW9uIHByb2Nlc3MgbG9vayBsaWtlLCB0b3AgdG8gYm90dG9tPyBJIG5lZWQgdG8gcXVpY2tseSByZWNhbGwgdGhlIGRhdGEgc3RydWN0dXJlcyBpbnZvbHZlZCwgdGhlIHNlcXVlbmNlIG9mIGV2ZW50cy4uLiB3aGF0IGFyZSB0aGUgY3JpdGljYWwgcG9pbnRzIG9mIGNvbnRlbnRpb24gb3IgcG90ZW50aWFsIHBpdGZhbGxzPyBJcyB0aGVyZSBhbnl0aGluZyBub24tc3RhbmRhcmQgaGVyZSB0aGF0IG1pZ2h0IGJlIHdvcnRoIHJldmlzaXRpbmcgb3IgdGVzdGluZz8gR290dGEgcXVpY2tseSBwdWxsIHVwIHRoZSBkZWZpbml0aW9uLCByZWZyZXNoIG15c2VsZiBvbiB0aGUgYXJndW1lbnRzLi4uIGFuZCB0aGVuLCB3aGF0IGFyZSB0aGUgcmVsYXRlZCBkYXRhIHN0cnVjdHVyZXM/IEdvdHRhIGxvb2sgaW50byB0aGUgY29udGV4dCBhbmQgaWYgdGhpcyBpcyBhIHBsYXRmb3JtLXNwZWNpZmljIGZ1bmN0aW9uIG9yIGFuIGVudHJ5IHBvaW50IGZvciBnZW5lcmljIFNESU8gZHJpdmVyIGludGVncmF0aW9uLiBJIG5lZWQgdG8gcXVpY2tseSBnZXQgYSBtZW50YWwgbWFwIGdvaW5nIHNvIEkgY2FuIGV2YWx1YXRlIGl0IGluIHRoZSBvdmVyYWxsIGRyaXZlciBhcmNoaXRlY3R1cmUuIExldCYjMzk7cyBzZWUgd2hhdCB3ZSYjMzk7dmUgZ290LgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjIyLzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8yNSAyMzo0MzwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+RXJyb3I6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5ubyBtYXRjaGVzPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O3NkaW9fcmVnaXN0ZXJfZHJpdmVyJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvc2Rpby5jJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O2Vycm9yJiMzNDs6ICYjMzQ7bm8gbWF0Y2hlcyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4yMy8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMjUgMjM6NDM8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMjM2NTAKCQkJCQkJCW91dHB1dDogMzkKCQkJCQkJCXRob3VnaHRzOiAyNgoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+SGVyZSYjMzk7cyBteSB0aG91Z2h0IHByb2Nlc3MsIGFzIGlmIEkgd2VyZSB3b3JraW5nIHRocm91Z2ggdGhpczoKCioqTG9jYXRpbmcgdGhlIERyaXZlciBSZWdpc3RyYXRpb24qKgoKT2theSwgZmlyc3QgdGhpbmdzIGZpcnN0LCBJIG5lZWQgdG8gcGlucG9pbnQgd2hlcmUgdGhpcyBTRElPIGRyaXZlciBpcyBhY3R1YWxseSBiZWluZyByZWdpc3RlcmVkLiBJIGNhbiYjMzk7dCBqdXN0IGFzc3VtZSBpdCYjMzk7cyBvYnZpb3VzOyBJIG5lZWQgdG8gZmluZCB0aGUgc3BlY2lmaWMgZnVuY3Rpb24gY2FsbC4gTXkgaW5pdGlhbCBpbnN0aW5jdCBpcyB0byBsb29rIGZvciB0aGUgcmVnaXN0cmF0aW9uIGZ1bmN0aW9uIGl0c2VsZi4gVGhhdCB3b3VsZCBiZSBgc2Rpb19yZWdpc3Rlcl9kcml2ZXJgLiBTbywgSSYjMzk7bGwgaW5pdGlhdGUgYSBzZWFyY2ggZm9yIHRoYXQgZnVuY3Rpb24gd2l0aGluIHRoZSBlbnRpcmUgZGlyZWN0b3J5LiBBIGdvb2QgZ3JlcCBvciBmaW5kIGNvbW1hbmQgc2hvdWxkIGRvIHRoZSB0cmljaywgYW5kIHRoZW4gSSBjYW4gcmVmaW5lIG15IHNlYXJjaCBiYXNlZCBvbiB0aGUgcmVzdWx0cy4gVGltZSB0byBkaWcgaW4gYW5kIHNlZSB3aGF0IHRoYXQgdW5jb3ZlcnMuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MjQvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzI1IDIzOjQzPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5FcnJvcjo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm5vIG1hdGNoZXM8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7c2Rpb19yZWdpc3Rlcl9kcml2ZXImIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7ZXJyb3ImIzM0OzogJiMzNDtubyBtYXRjaGVzJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjI1LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8yNSAyMzo0MzwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAyMzg2NwoJCQkJCQkJb3V0cHV0OiAzOQoJCQkJCQkJdGhvdWdodHM6IDQ2CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Pa2F5LCBoZXJlJiMzOTtzIG15IHRha2Ugb24gdGhvc2UgdGhvdWdodHMsIGZyYW1lZCBhcyBteSBvd24gbWVudGFsIHByb2Nlc3MsIGdpdmVuIG15IGV4cGVydGlzZToKCioqQ2hlY2tpbmcgdGhlIFNESU8gUmVnaXN0cmF0aW9uIFBhdGgqKgoKQWxyaWdodCwgc28gSSBuZWVkIHRvIGZpZ3VyZSBvdXQgaG93IGBueHB3aWZpX3NkaW9gIGlzIGdldHRpbmcgaG9va2VkIHVwLiBNeSBpbml0aWFsIGluc3RpbmN0IGlzIHRvIGdvIHJpZ2h0IHRvIHRoZSBzb3VyY2UgYW5kIHNlZSB3aGF0JiMzOTtzIGdvaW5nIG9uLiBMZXQmIzM5O3Mgc3RhcnQgd2l0aCBgc2Rpby5jYC4gSSYjMzk7bSBleHBlY3RpbmcgdG8gZmluZCB0aGUga2V5IHRvIHRoaXMgZHJpdmVyIHJlZ2lzdHJhdGlvbiBlaXRoZXIgdGhyb3VnaCBhIHN0YW5kYXJkIGBtb2R1bGVfaW5pdGAgY2FsbCwgbWF5YmUgZGlyZWN0bHkgY2FsbGluZyBgc2Rpb19yZWdpc3Rlcl9kcml2ZXJgLCBvciBldmVuIHBvc3NpYmx5IHVzaW5nIHRoZSBtYWNybyBgbW9kdWxlX3NkaW9fZHJpdmVyYC4gT25lIG9mIHRob3NlIHNob3VsZCBwb2ludCBtZSByaWdodCB0byB0aGUgcmVnaXN0cmF0aW9uIGZ1bmN0aW9uLiBUaGlzIGlzIHVzdWFsbHkgdGhlIGZpcnN0IHN0ZXAgdG8gdW5kZXJzdGFuZGluZyBob3cgYW55IFNESU8gZHJpdmVyIGlzIGludGVncmF0ZWQgaW50byB0aGUgc3lzdGVtLiBLbm93aW5nIHRoZSByZWdpc3RyYXRpb24gbWVjaGFuaXNtIHdpbGwgdGhlbiBsZXQgbWUgdHJhY2UgYmFjayBob3cgaXQmIzM5O3MgaW5pdGlhbGl6ZWQgYW5kIGhvdyBpdCBpbnRlcmFjdHMgd2l0aCB0aGUgU0RJTyBidXMuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MjYvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzI1IDIzOjQzPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O21vZHVsZV9zZGlvX2RyaXZlciYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS9zZGlvLmM9MjI5ND1zdGF0aWMgc3RydWN0IG54cHdpZmlfaWZfb3BzIHNkaW9fb3BzID0ge1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpL3NkaW8uYy0yMzIxLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvc2Rpby5jOjIzMjI6bW9kdWxlX3NkaW9fZHJpdmVyKG54cHdpZmlfc2Rpbyk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS9zZGlvLmMtMjMyMy1cbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4yNy8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMjUgMjM6NDM8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMjQyNzkKCQkJCQkJCW91dHB1dDogODIKCQkJCQkJCXRob3VnaHRzOiAzMjYKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqV29ydGhGdXp6aW5nPWZhbHNlOiBTRElPIERyaXZlciBSZXF1aXJlcyBQaHlzaWNhbCBIYXJkd2FyZSoqCgpBbHJpZ2h0LCBsZXQmIzM5O3MgYnJlYWsgdGhpcyBkb3duLiBUaGlzIGlzIGFuIFNESU8gZHJpdmVyLCBzbyByaWdodCBhd2F5LCBJJiMzOTttIHRoaW5raW5nIGFib3V0IHRoZSBwaHlzaWNhbCBoYXJkd2FyZSBkZXBlbmRlbmN5LiBUaGlzIG1lYW5zIHJlYWwgU0RJTyBoYXJkd2FyZSBpcyBuZWNlc3NhcnksIGFuZCBteSBpbml0aWFsIGh1bmNoIGlzIGNvbmZpcm1lZCBieSB0aGUgUUVNVSBsaW1pdGF0aW9ucy4gV2FpdCwgaGFuZyBvbi4uLiBpcyB0aGVyZSBhbnkgU0RJTyBlbXVsYXRpb24gaW4gdGhlIHN0YW5kYXJkIFFFTVUgc2V0dXAgdXNlZCBmb3IgZnV6emluZz8gTm8sIHRoYXQmIzM5O3MgYSBuZWdhdGl2ZS4gU0RJTyBkZXZpY2VzIGFyZW4mIzM5O3QgZW11bGF0ZWQgaW4gdGhlIHVzdWFsIFFFTVUgY29uZmlndXJhdGlvbnMsIGFuZCB0aGF0JiMzOTtzIGEgc2lnbmlmaWNhbnQgcm9hZGJsb2NrLgoKVGhlIHByb21wdCBzcGVjaWZpY2FsbHkgZmxhZ3MgdmVuZG9yLXNwZWNpZmljIGRyaXZlcnMgZm9yIFBDSWUgZGV2aWNlcyB0aGF0IGRlbWFuZCBwaHlzaWNhbCBoYXJkd2FyZSDigJMgYW5kIHRoaXMgaXMgYSB2ZW5kb3Itc3BlY2lmaWMgU0RJTyBkcml2ZXIsIGRlc2lnbmVkIGZvciBOWFAgY2hpcHMuIEl0IGV4cGxpY2l0bHkgbmVlZHMgU0RJTyBjYXJkcywgd2hpY2ggYXJlIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCBRRU1VLiBUaGF0IG1lYW5zIGl0JiMzOTtzIHVucmVhY2hhYmxlIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIEdDRSBvciB0aGUgUUVNVSBjb25maWd1cmF0aW9ucyB3ZSYjMzk7cmUgdXNpbmcuIFNvLCB0aGUgdmVyZGljdCBpcyBpbjogdGhpcyBpc24mIzM5O3Qgd29ydGggZnV6emluZyBkaXJlY3RseS4gSSBzaG91bGQgcmV0dXJuIFdvcnRoRnV6emluZz1mYWxzZS4KCkkmIzM5O2xsIGRvIGEgcXVpY2sgc2FuaXR5IGNoZWNrIHRvIGJlIHRob3JvdWdoLiBMZXQmIzM5O3Mgc2VlIGlmIHRoZXJlJiMzOTtzICphbnkqIG90aGVyIHBvc3NpYmxlIHBhdGggdG8gdGhlIGNvZGUuIExvb2tpbmcgYXQgdGhlIG1vZGlmaWVkIGZ1bmN0aW9ucywgYG54cHdpZmlfMTFuX2RlbGV0ZV90eF9iYV9zdHJlYW1fdGJsX2VudHJ5YCBhbmQgYG54cHdpZmlfMTFuX2RlbF9yeF9yZW9yZGVyX3RibF9ieV90YWAsIHRoZXkgYXJlIGNhbGxlZCBmcm9tIHdpdGhpbiB0aGUgZHJpdmVyJiMzOTtzIGludGVybmFsIGxvZ2ljLCBzcGVjaWZpY2FsbHkgZnJvbSBgbnhwd2lmaV8xMW5fY2xlYW51cF9yZW9yZGVyX3RibGAgb3Igc29tZXRoaW5nIHNpbWlsYXIuIEdpdmVuIHRoZSBkcml2ZXIgaXRzZWxmIGNhbiYjMzk7dCBiZSBwcm9iZWQgb3IgcmVhY2hlZCwgYmVjYXVzZSBpdCBuZWVkcyB0aGUgcGh5c2ljYWwgU0RJTyBoYXJkd2FyZSwgdGhlc2UgaW50ZXJuYWwgZnVuY3Rpb25zIGFyZSBlZmZlY3RpdmVseSB1bnJlYWNoYWJsZSBhcyB3ZWxsLgoKVGhlcmVmb3JlLCB0aGUgaW5pdGlhbCBhc3Nlc3NtZW50IHN0YW5kcy4gSSYjMzk7bGwgc3RpY2sgd2l0aCBXb3J0aEZ1enppbmc9ZmFsc2UuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MjgvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzI1IDIzOjQzPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+c2V0LXJlc3VsdHM8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogW10sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogW10sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIG54cHdpZmkgZHJpdmVyLCB3aGljaCBpcyBhIHZlbmRvci1zcGVjaWZpYyBTRElPIHdpcmVsZXNzIGRyaXZlciBmb3IgTlhQIGNoaXBzLiBTRElPIGhhcmR3YXJlIGlzIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCBRRU1VIG9yIEdDRSBlbnZpcm9ubWVudHMgdXNlZCBmb3IgZnV6emluZywgc28gdGhpcyBjb2RlIGlzIHVucmVhY2hhYmxlLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IGZhbHNlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IG51bGwsCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogW10sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIG54cHdpZmkgZHJpdmVyLCB3aGljaCBpcyBhIHZlbmRvci1zcGVjaWZpYyBTRElPIHdpcmVsZXNzIGRyaXZlciBmb3IgTlhQIGNoaXBzLiBTRElPIGhhcmR3YXJlIGlzIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCBRRU1VIG9yIEdDRSBlbnZpcm9ubWVudHMgdXNlZCBmb3IgZnV6emluZywgc28gdGhpcyBjb2RlIGlzIHVucmVhY2hhYmxlLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IGZhbHNlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4yOS8xPC90ZD4KCQkJPHRkPjIwMjYvMDgvMjUgMjM6NDM8L3RkPgoJCQk8dGQ+YWN0aW9uPC90ZD4KCQkJPHRkPklmPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogZmFsc2UKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8L3Rib2R5PgoJPC90YWJsZT4KCgk8ZGl2IGlkPSJsbG1fc3VtbWFyeV90YWJsZV9kaXYiIHN0eWxlPSJtYXJnaW46IDIwcHggMDsiPgoJCTx0YWJsZSBjbGFzcz0ibGlzdF90YWJsZSI+CgkJCTxjYXB0aW9uPkxMTSBDYWxscyBTdW1tYXJ5OjwvY2FwdGlvbj4KCQkJPHRoZWFkPgoJCQkJPHRyPgoJCQkJCTx0aD5Ub3RhbCBDYWxsczwvdGg+CgkJCQkJPHRoPlRvdGFsIFRva2VuczwvdGg+CgkJCQkJPHRoPkF2ZyBUb2tlbnM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJCTx0aD5BdmcgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCTwvdHI+CgkJCTwvdGhlYWQ+CgkJCTx0Ym9keSBpZD0ibGxtX3N1bW1hcnlfc3RhdHNfYm9keSI+PC90Ym9keT4KCQk8L3RhYmxlPgoJPC9kaXY+CgoJPGRpdiBpZD0idG9vbF9zdW1tYXJ5X3RhYmxlX2RpdiIgc3R5bGU9Im1hcmdpbjogMjBweCAwOyI+CgkJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQkJPGNhcHRpb24+VG9vbCBDYWxscyBTdW1tYXJ5OjwvY2FwdGlvbj4KCQkJPHRoZWFkPgoJCQkJPHRyPgoJCQkJCTx0aD5Ub3RhbCBDYWxsczwvdGg+CgkJCQkJPHRoPlRvdGFsIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQkJPHRoPkF2ZyBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJPC90cj4KCQkJPC90aGVhZD4KCQkJPHRib2R5IGlkPSJ0b29sX3N1bW1hcnlfc3RhdHNfYm9keSI+PC90Ym9keT4KCQk8L3RhYmxlPgoJPC9kaXY+CgoJPGRpdiBpZD0iZHVyYXRpb25fY2hhcnRfZGl2IiBzdHlsZT0id2lkdGg6IDEwMCU7IG1hcmdpbjogMjBweCAwOyBib3JkZXI6IDFweDsiPjwvZGl2PgoJPGRpdiBpZD0idG9rZW5fY2hhcnRfZGl2IiBzdHlsZT0id2lkdGg6IDEwMCU7IG1hcmdpbjogMjBweCAwOyBib3JkZXI6IDFweDsiPjwvZGl2PgoKCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Imh0dHBzOi8vd3d3Lmdvb2dsZS5jb20vanNhcGkiPjwvc2NyaXB0PgoJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgoJCWdvb2dsZS5sb2FkKCJ2aXN1YWxpemF0aW9uIiwgIjEiLCB7cGFja2FnZXM6WyJjb3JlY2hhcnQiXX0pOwoJCWdvb2dsZS5zZXRPbkxvYWRDYWxsYmFjayhkcmF3Q2hhcnRzKTsKCgkJZnVuY3Rpb24gZHJhd0NoYXJ0cygpIHsKCQkJY29uc3QgcmF3RGF0YSA9IFt7IlN0YXJ0ZWQiOiIyMDI2LTA4LTI1VDIzOjQyOjI0LjY0MjczNzQ3NFoiLCJTZXEiOjAsIk5lc3RpbmciOjAsIlR5cGUiOiJmbG93IiwiTmFtZSI6InBhdGNoLXRyaWFnZSIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjU3NjcyOTQ4OTY0LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IG51bGwsXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtdLFxuICBcIktNU0FOUmVhc29uaW5nXCI6IFwiXCIsXG4gIFwiTmVlZHNLTVNBTlwiOiBmYWxzZSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIG54cHdpZmkgZHJpdmVyLCB3aGljaCBpcyBhIHZlbmRvci1zcGVjaWZpYyBTRElPIHdpcmVsZXNzIGRyaXZlciBmb3IgTlhQIGNoaXBzLiBTRElPIGhhcmR3YXJlIGlzIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCBRRU1VIG9yIEdDRSBlbnZpcm9ubWVudHMgdXNlZCBmb3IgZnV6emluZywgc28gdGhpcyBjb2RlIGlzIHVucmVhY2hhYmxlLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiBmYWxzZVxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMjVUMjM6NDI6MjQuNjQyNzQzNDA0WiIsIlNlcSI6MSwiTmVzdGluZyI6MSwiVHlwZSI6ImFjdGlvbiIsIk5hbWUiOiJyZWFkLXBhdGNoLWRpZmYiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo0MjYyNTEwODEsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIlBhdGNoRGlmZlwiOiBcImNvbW1pdCA0NDY5MTVhNmJjM2FhYjhmODNmMTRhOGIzZTA3N2M4OTE4OGVjYjM1XFxuQXV0aG9yOiBzeXotY2x1c3RlciBcXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cXHUwMDNlXFxuRGF0ZTogICBUdWUgQXVnIDI1IDIzOjQyOjIzIDIwMjYgKzAwMDBcXG5cXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XFxuXFxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExbi5jIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFuLmNcXG5pbmRleCBjMmE1NGQ3ODFiNDJhLi4yNWIyZTQzMGYzZjkzIDEwMDY0NFxcbi0tLSBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExbi5jXFxuKysrIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFuLmNcXG5AQCAtNDUxLDcgKzQ1MSw3IEBAIHZvaWRcXG4gbnhwd2lmaV8xMW5fZGVsZXRlX3R4X2JhX3N0cmVhbV90YmxfZW50cnkoc3RydWN0IG54cHdpZmlfcHJpdmF0ZSAqcHJpdixcXG4gXFx0XFx0XFx0XFx0XFx0ICBzdHJ1Y3Qgbnhwd2lmaV90eF9iYV9zdHJlYW1fdGJsICp0YmwpXFxuIHtcXG4tXFx0aWYgKCF0YmwgfHwgbnhwd2lmaV9pc190eF9iYV9zdHJlYW1fcHRyX3ZhbGlkKHByaXYsIHRibCkpXFxuK1xcdGlmICghdGJsIHx8ICFueHB3aWZpX2lzX3R4X2JhX3N0cmVhbV9wdHJfdmFsaWQocHJpdiwgdGJsKSlcXG4gXFx0XFx0cmV0dXJuO1xcbiBcXG4gXFx0bnhwd2lmaV9kYmcocHJpdi1cXHUwMDNlYWRhcHRlciwgSU5GTyxcXG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFuX3J4cmVvcmRlci5jIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFuX3J4cmVvcmRlci5jXFxuaW5kZXggNjViNjI4NDExNTQzYi4uODdjZjJlYzg1OTkxNCAxMDA2NDRcXG4tLS0gYS9kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMW5fcnhyZW9yZGVyLmNcXG4rKysgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMW5fcnhyZW9yZGVyLmNcXG5AQCAtMjA1LDExICsyMDUsMTIgQEAgdm9pZCBueHB3aWZpXzExbl9kZWxfcnhfcmVvcmRlcl90YmxfYnlfdGEoc3RydWN0IG54cHdpZmlfcHJpdmF0ZSAqcHJpdiwgdTggKnRhKVxcbiBcXHRcXHRyZXR1cm47XFxuIFxcbiBcXHRmb3IgKGkgPSAwOyBpIFxcdTAwM2MgTUFYX05VTV9USUQ7IGkrKykge1xcbi1cXHRcXHRndWFyZChyY3UpKCk7XFxuLVxcdFxcdGxpc3RfZm9yX2VhY2hfZW50cnlfcmN1KHRibCwgXFx1MDAyNnByaXYtXFx1MDAzZXJ4X3Jlb3JkZXJfdGJsX3B0cltpXSwgbGlzdCkge1xcbi1cXHRcXHRcXHRpZiAoIW1lbWNtcCh0YmwtXFx1MDAzZXRhLCB0YSwgRVRIX0FMRU4pKSB7XFxuLVxcdFxcdFxcdFxcdElOSVRfTElTVF9IRUFEKFxcdTAwMjZ0YmwtXFx1MDAzZXRtcF9saXN0KTtcXG4tXFx0XFx0XFx0XFx0bGlzdF9hZGRfdGFpbChcXHUwMDI2dGJsLVxcdTAwM2V0bXBfbGlzdCwgXFx1MDAyNnRvX2RlbGV0ZSk7XFxuK1xcdFxcdHNjb3BlZF9ndWFyZChyY3UpIHtcXG4rXFx0XFx0XFx0bGlzdF9mb3JfZWFjaF9lbnRyeV9yY3UodGJsLCBcXHUwMDI2cHJpdi1cXHUwMDNlcnhfcmVvcmRlcl90YmxfcHRyW2ldLCBsaXN0KSB7XFxuK1xcdFxcdFxcdFxcdGlmICghbWVtY21wKHRibC1cXHUwMDNldGEsIHRhLCBFVEhfQUxFTikpIHtcXG4rXFx0XFx0XFx0XFx0XFx0SU5JVF9MSVNUX0hFQUQoXFx1MDAyNnRibC1cXHUwMDNldG1wX2xpc3QpO1xcbitcXHRcXHRcXHRcXHRcXHRsaXN0X2FkZF90YWlsKFxcdTAwMjZ0YmwtXFx1MDAzZXRtcF9saXN0LCBcXHUwMDI2dG9fZGVsZXRlKTtcXG4rXFx0XFx0XFx0XFx0fVxcbiBcXHRcXHRcXHR9XFxuIFxcdFxcdH1cXG4gXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTI1VDIzOjQyOjI1LjA2OTcxOTc4NloiLCJTZXEiOjIsIk5lc3RpbmciOjEsIlR5cGUiOiJhZ2VudCIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImJlc3QtZXhwZW5zaXZlIiwiRHVyYXRpb24iOjU3MjQ1OTU0NTczLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IG51bGwsXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBtb2RpZmllcyB0aGUgbnhwd2lmaSBkcml2ZXIsIHdoaWNoIGlzIGEgdmVuZG9yLXNwZWNpZmljIFNESU8gd2lyZWxlc3MgZHJpdmVyIGZvciBOWFAgY2hpcHMuIFNESU8gaGFyZHdhcmUgaXMgbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIFFFTVUgb3IgR0NFIGVudmlyb25tZW50cyB1c2VkIGZvciBmdXp6aW5nLCBzbyB0aGlzIGNvZGUgaXMgdW5yZWFjaGFibGUuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IGZhbHNlXG59IiwiSW5zdHJ1Y3Rpb24iOiJZb3UgYXJlIGFuIGV4cGVydCBMaW51eCBrZXJuZWwgbWFpbnRhaW5lci5cbllvdXIgam9iIGlzIHRvIHJldmlldyBhIHByb3ZpZGVkIHBhdGNoIHNlcmllcyBhbmQgZGV0ZXJtaW5lXG5pZiBpdCBtYWtlcyBmdW5jdGlvbmFsIGNoYW5nZXMgdG8gdGhlIGtlcm5lbCB0aGF0IHNob3VsZCBiZSBmdXp6ZWQuXG5cbklNUE9SVEFOVDogVGhlIGNoYW5nZXMgaGF2ZSBBTFJFQURZIGJlZW4gYXBwbGllZCBhbmQgY29tbWl0dGVkIGFzIHRoZSBIRUFEIGNvbW1pdCBpblxueW91ciB3b3Jrc3BhY2UuIERvIE5PVCByZWx5IG9uIHlvdXIgaW50ZXJuYWwga25vd2xlZGdlIG9mIHRoZSBrZXJuZWwuIFlvdSBtdXN0IGFjdGl2ZWx5XG51c2UgeW91ciBjb2RlIGFjY2VzcyB0b29scyB0byBleGFtaW5lIHRoZSBhY3R1YWwgc291cmNlIGNvZGUgYW5kIGNvbmZpcm0gYW55IGFzc3VtcHRpb25zLlxuXG5SZXR1cm4gV29ydGhGdXp6aW5nPWZhbHNlIGlmIHRoZSBwYXRjaCBvbmx5IGNvbnRhaW5zOlxuLSBNb2RpZmljYXRpb25zIHRvIERvY3VtZW50YXRpb24vLCBLY29uZmlnIGZpbGVzLCBvciBjb2RlIGNvbW1lbnRzLlxuLSBQdXJlbHkgZGVjb3JhdGl2ZSBjaGFuZ2VzLCBzdWNoIGFzIGxvZ2dpbmcgKGUuZy4sIHByX2VyciwgcHJpbnRrKSBvciB0cmFjZXBvaW50cy5cbi0gQ2hhbmdlcyB0byBudW1lcmljIGNvbnN0YW50cyBvciBtYWNyb3MgdGhhdCBkbyBub3QgZnVuY3Rpb25hbGx5IGFsdGVyIGV4ZWN1dGlvbiBmbG93LlxuLSBDb2RlIHBhdGhzIHRoYXQgYXJlIGltcG9zc2libGUgdG8gcmVhY2ggaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgR0NFIG9yIFFFTVUsXG4gIGV2ZW4gd2hlbiB1dGlsaXppbmcgc29mdHdhcmUtZW11bGF0ZWQgaGFyZHdhcmUgKGUuZy4sIHVzYiBnYWRnZXQsIG1hYzgwMjExX2h3c2ltKS5cbi0gQ29kZSBpbiB2ZW5kb3Itc3BlY2lmaWMgUENJZSBzd2l0Y2gsIFNtYXJ0TklDLCBvciBHUFUgZHJpdmVycyAoZS5nLiwgbWx4c3csIHBkc19jb3JlLCBxZWQsXG4gIGlvbmljLCBhbWRncHUpIHRoYXQgcmVxdWlyZSBwaHlzaWNhbCBQQ0llIGhhcmR3YXJlIGNhcmRzIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCBRRU1VLlxuLSBEcml2ZXIgLnJlbW92ZSwgLnNodXRkb3duLCBvciBwY2lfdW5yZWdpc3Rlcl9kcml2ZXIgdGVhcmRvd24gY2FsbGJhY2tzIChlLmcuLCBpZ2JfcmVtb3ZlKVxuICB0aGF0IGFyZSBleGVjdXRlZCBvbmx5IGR1cmluZyBQQ0kgaG90LXVucGx1ZyBvciBzeXNmcyBkcml2ZXIgdW5iaW5kIG9wZXJhdGlvbnMuXG5cbklmIGl0IG1vZGlmaWVzIHJlYWNoYWJsZSBjb3JlIGtlcm5lbCBsb2dpYywgZHJpdmVycywgb3IgYXJjaGl0ZWN0dXJlcywgdXNlIHlvdXIgY29kZSBzZWFyY2hcbnRvb2xzIHRvIHZlcmlmeSB0aGUgY29kZSBjYW4gYmUgZXhlY3V0ZWQsIHRoZW4gcmV0dXJuIFdvcnRoRnV6emluZz10cnVlLlxuXG5XaGVuIHJldHVybmluZyBXb3J0aEZ1enppbmc9dHJ1ZSwgeW91IE1VU1QgQUxTTzpcbjEuIEV4dHJhY3QgYW55IHNwZWNpZmljIGtlcm5lbCBmdW5jdGlvbnMgdGhhdCBzaG91bGQgYmUgaGVhdmlseSBmdXp6ZWQgaW50byBGb2N1c1N5bWJvbHMuXG4gICBBdm9pZCBsaXN0aW5nIGdlbmVyaWMgaG90LXBhdGggZnVuY3Rpb25zIHRvIHByZXZlbnQgc2tld2VkIHRlc3QgZGlzdHJpYnV0aW9ucy5cbiAgIFByZWZlciBub24tc3RhdGljLCBub24taW5saW5lZCBBUEkgZW50cnlwb2ludCBmdW5jdGlvbnMgb3ZlciBpbnRlcm5hbCBzdGF0aWMgaGVscGVyIGZ1bmN0aW9uc1xuICAgKHdoaWNoIGFyZSBpbmxpbmVkIGJ5IHRoZSBjb21waWxlciBhbmQgZG8gbm90IGhhdmUgZGlzdGluY3Qgc3ltYm9sIGFkZHJlc3NlcykuXG4yLiBJZGVudGlmeSBhbnkgc3BlY2lmaWMgQ09ORklHXyBvcHRpb25zIHJlcXVpcmVkIHRvIHByb3Blcmx5IHRlc3QgdGhpcyBuZXcvbW9kaWZpZWQgZmVhdHVyZS5cbiAgIEdvIGFuZCBsb29rIGludG8gdGhlIEtjb25maWcgZmlsZXMgYW5kIGNoZWNrIGZvciBpZmRlZnMgYXJvdW5kIHRoZSBjb2RlLCBkbyBub3QgbWFrZSBhc3N1bXB0aW9ucy5cbiAgIEFsc28gY2hlY2sgXCJkZXBlbmRzIG9uXCIgbGluZXMgaW4gS2NvbmZpZyB0byBpbmNsdWRlIGFueSBub24tc3RhbmRhcmQgcGFyZW50IHN1YnN5c3RlbSBjb25maWdzXG4gICBuZWVkZWQgZm9yIEtidWlsZCB0byBjb21waWxlIHRoZSBjb2RlIHN0YXRpY2FsbHkgaW50byB2bWxpbnV4LiBMaXN0IHRoZW0gaW4gdGhlIEVuYWJsZUNvbmZpZ3NcbiAgIG91dHB1dCBhcnJheSwgYW5kIERPIE5PVCBhZGQgYSAnQ09ORklHXycgcHJlZml4IChlLmcuLCByZXR1cm4gXCJORVRfSVBWNFwiIGluc3RlYWQgb2YgXCJDT05GSUdfTkVUX0lQVjRcIikuXG5QcmVmZXIgY2FsbGluZyBzZXZlcmFsIHRvb2xzIGF0IHRoZSBzYW1lIHRpbWUgdG8gc2F2ZSByb3VuZC10cmlwcy5cblxuXG5Vc2Ugc2V0LXJlc3VsdHMgdG9vbCB0byBwcm92aWRlIHJlc3VsdHMgb2YgdGhlIGFuYWx5c2lzLlxuSXQgbXVzdCBiZSBjYWxsZWQgZXhhY3RseSBvbmNlIGJlZm9yZSB0aGUgZmluYWwgcmVwbHkuXG5JZ25vcmUgcmVzdWx0cyBvZiB0aGlzIHRvb2wuXG4iLCJQcm9tcHQiOiJGb3IgeW91ciBjb252ZW5pZW5jZSwgaGVyZSBpcyB0aGUgZGlmZiBvZiB0aGUgY2hhbmdlczpcbmNvbW1pdCA0NDY5MTVhNmJjM2FhYjhmODNmMTRhOGIzZTA3N2M4OTE4OGVjYjM1XG5BdXRob3I6IHN5ei1jbHVzdGVyIFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXHUwMDNlXG5EYXRlOiAgIFR1ZSBBdWcgMjUgMjM6NDI6MjMgMjAyNiArMDAwMFxuXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XG5cbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMW4uYyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExbi5jXG5pbmRleCBjMmE1NGQ3ODFiNDJhLi4yNWIyZTQzMGYzZjkzIDEwMDY0NFxuLS0tIGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFuLmNcbisrKyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExbi5jXG5AQCAtNDUxLDcgKzQ1MSw3IEBAIHZvaWRcbiBueHB3aWZpXzExbl9kZWxldGVfdHhfYmFfc3RyZWFtX3RibF9lbnRyeShzdHJ1Y3Qgbnhwd2lmaV9wcml2YXRlICpwcml2LFxuIFx0XHRcdFx0XHQgIHN0cnVjdCBueHB3aWZpX3R4X2JhX3N0cmVhbV90YmwgKnRibClcbiB7XG4tXHRpZiAoIXRibCB8fCBueHB3aWZpX2lzX3R4X2JhX3N0cmVhbV9wdHJfdmFsaWQocHJpdiwgdGJsKSlcbitcdGlmICghdGJsIHx8ICFueHB3aWZpX2lzX3R4X2JhX3N0cmVhbV9wdHJfdmFsaWQocHJpdiwgdGJsKSlcbiBcdFx0cmV0dXJuO1xuIFxuIFx0bnhwd2lmaV9kYmcocHJpdi1cdTAwM2VhZGFwdGVyLCBJTkZPLFxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExbl9yeHJlb3JkZXIuYyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExbl9yeHJlb3JkZXIuY1xuaW5kZXggNjViNjI4NDExNTQzYi4uODdjZjJlYzg1OTkxNCAxMDA2NDRcbi0tLSBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExbl9yeHJlb3JkZXIuY1xuKysrIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFuX3J4cmVvcmRlci5jXG5AQCAtMjA1LDExICsyMDUsMTIgQEAgdm9pZCBueHB3aWZpXzExbl9kZWxfcnhfcmVvcmRlcl90YmxfYnlfdGEoc3RydWN0IG54cHdpZmlfcHJpdmF0ZSAqcHJpdiwgdTggKnRhKVxuIFx0XHRyZXR1cm47XG4gXG4gXHRmb3IgKGkgPSAwOyBpIFx1MDAzYyBNQVhfTlVNX1RJRDsgaSsrKSB7XG4tXHRcdGd1YXJkKHJjdSkoKTtcbi1cdFx0bGlzdF9mb3JfZWFjaF9lbnRyeV9yY3UodGJsLCBcdTAwMjZwcml2LVx1MDAzZXJ4X3Jlb3JkZXJfdGJsX3B0cltpXSwgbGlzdCkge1xuLVx0XHRcdGlmICghbWVtY21wKHRibC1cdTAwM2V0YSwgdGEsIEVUSF9BTEVOKSkge1xuLVx0XHRcdFx0SU5JVF9MSVNUX0hFQUQoXHUwMDI2dGJsLVx1MDAzZXRtcF9saXN0KTtcbi1cdFx0XHRcdGxpc3RfYWRkX3RhaWwoXHUwMDI2dGJsLVx1MDAzZXRtcF9saXN0LCBcdTAwMjZ0b19kZWxldGUpO1xuK1x0XHRzY29wZWRfZ3VhcmQocmN1KSB7XG4rXHRcdFx0bGlzdF9mb3JfZWFjaF9lbnRyeV9yY3UodGJsLCBcdTAwMjZwcml2LVx1MDAzZXJ4X3Jlb3JkZXJfdGJsX3B0cltpXSwgbGlzdCkge1xuK1x0XHRcdFx0aWYgKCFtZW1jbXAodGJsLVx1MDAzZXRhLCB0YSwgRVRIX0FMRU4pKSB7XG4rXHRcdFx0XHRcdElOSVRfTElTVF9IRUFEKFx1MDAyNnRibC1cdTAwM2V0bXBfbGlzdCk7XG4rXHRcdFx0XHRcdGxpc3RfYWRkX3RhaWwoXHUwMDI2dGJsLVx1MDAzZXRtcF9saXN0LCBcdTAwMjZ0b19kZWxldGUpO1xuK1x0XHRcdFx0fVxuIFx0XHRcdH1cbiBcdFx0fVxuIFxuIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMjVUMjM6NDI6MjUuMDY5NzIxNDc1WiIsIlNlcSI6MywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NTg5MTMzODQxNCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipBbmFseXppbmcgYSBXaXJlbGVzcyBEcml2ZXIgUGF0Y2gqKlxuXG5Pa2F5LCBzbyBJJ20gbG9va2luZyBhdCB0aGlzIHBhdGNoIGFuZCBpdCBzZWVtcyBsaWtlIGl0J3MgYWRkcmVzc2luZyB0d28gaXNzdWVzIGluIHRoZSBgbnhwd2lmaWAgZHJpdmVyLiBPbmUncyBhIHNpbXBsZSBmaXgg4oCTIGEgbWlzc2luZyBgIWAgaW4gYSBjaGVjayB3aXRoaW4gdGhlIGBueHB3aWZpXzExbl9kZWxldGVfdHhfYmFfc3RyZWFtX3RibF9lbnRyeWAgZnVuY3Rpb24sIHdoaWNoIGlzIGVhc3kgZW5vdWdoIHRvIHVuZGVyc3RhbmQuIFRoZSBvdGhlciwgaG93ZXZlciwgaXMgYSBsaXR0bGUgbW9yZSBpbnRlcmVzdGluZzsgdGhlIHBhdGNoIGlzIHJlcGxhY2luZyBhIHBvdGVudGlhbGx5IHByb2JsZW1hdGljIHVzZSBvZiBgZ3VhcmQocmN1KSgpYCB3aXRoaW4gYSBsb29wIGluIGBueHB3aWZpXzExbl9kZWxfcnhfcmVvcmRlcl90YmxfYnlfdGFgIHdpdGggYHNjb3BlZF9ndWFyZChyY3UpIHsgLi4uIH1gLiBNeSBpbml0aWFsIHRob3VnaHQgaXMgdGhlIGNvZGUgaXMgcmVmYWN0b3JpbmcgYSBSQ1UgZ3VhcmQsIHdoaWNoIGlzIGEgZ29vZCB0aGluZyBhcyBpdCBtaWdodCBmaXggc2NvcGluZyBvciBjb250ZW50aW9uIGlzc3Vlcy5cblxuVGhlIHF1ZXN0aW9uIHRoZW4gYmVjb21lcywgY2FuIHdlIGxldmVyYWdlIHRoaXMgcGF0Y2ggZm9yIGFueXRoaW5nIGludGVyZXN0aW5nIGZyb20gYSB0ZXN0aW5nIHBlcnNwZWN0aXZlPyBJcyBgbnhwd2lmaWAgYSBkcml2ZXIgd2UgY2FuIHJlYWxpc3RpY2FsbHkgZnV6ej8gSXQncyBhIHdpcmVsZXNzIGRyaXZlciwgd2hpY2ggdXN1YWxseSBwb2ludHMgdG8gaGFyZHdhcmUgZGVwZW5kZW5jeSDigJMgU0RJTywgUENJZSwgVVNCLCB0aGF0IHNvcnQgb2YgdGhpbmcuIEJ1dCwgbWF5YmUgd2UgY2FuIHNpbXVsYXRlIGl0IHdpdGggc29tZXRoaW5nIGxpa2UgYG1hYzgwMjExX2h3c2ltYD8gTGV0J3MgY2hlY2suXG5cbkkgbmVlZCB0byBzZWUgaWYgdGhpcyBkcml2ZXIgaXMgcHVyZWx5IGhhcmR3YXJlLXNwZWNpZmljIG9yIGlmIHRoZXJlJ3MgYSBwb3NzaWJpbGl0eSBmb3IgZW11bGF0aW9uLiBNeSBuZXh0IHN0ZXAgaXMgdG8gZGl2ZSBpbnRvIHRoZSBgS2NvbmZpZ2AgZmlsZSBpbiB0aGUgZHJpdmVyJ3MgZGlyZWN0b3J5IOKAkyBgZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvS2NvbmZpZ2Ag4oCTIG9yIG1heWJlIGFub3RoZXIgcmVsZXZhbnQgZmlsZSB0byB1bmRlcnN0YW5kIHRoZSBhcmNoaXRlY3R1cmUgYW5kIHBvc3NpYmlsaXRpZXMgZm9yIHNpbXVsYXRpb24uIFRoYXQgc2hvdWxkIHRlbGwgbWUgaWYgd2UgY2FuIGdlbmVyYXRlIHVzZWZ1bCB0ZXN0IGNhc2VzIGZyb20gaXQuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjI0ODAsIk91dHB1dFRva2VucyI6MzIsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoyODksIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0yNVQyMzo0MjozMC45NjEwNjE5OVoiLCJTZXEiOjQsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo1NjExNzI3NywiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJueHB3aWZpXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9cIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiXFxuRnVsbCBvdXRwdXQgaXMgdG9vIGxvbmcsIHNob3dpbmcgNTAwIG91dCBvZiAxNTE3MiBsaW5lcy5cXG5Vc2UgbW9yZSBwcmVjaXNlIGV4cHJlc3Npb24gaWYgcG9zc2libGUuXFxuXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL0tjb25maWc9MTM9aWYgV0xBTl9WRU5ET1JfTlhQXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL0tjb25maWctMTQtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL0tjb25maWc6MTU6c291cmNlIFxcXCJkcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS9LY29uZmlnXFxcIlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9LY29uZmlnLTE2LVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL01ha2VmaWxlLTItXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL01ha2VmaWxlOjM6b2JqLSQoQ09ORklHX05YUFdJRkkpXFx0Kz0gbnhwd2lmaS9cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYWMuYy0yLS8qXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFhYy5jOjM6ICogbnhwd2lmaSA4MDIuMTFhYyBoZWxwZXJzXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFhYy5jLTQtICogQ29weXJpZ2h0IDIwMTEtMjAyNCBOWFBcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYWMuYz0zNj1zdGF0aWMgdTE2XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFhYy5jOjM3Om54cHdpZmlfY29udmVydF9tY3NtYXBfdG9fbWF4cmF0ZShzdHJ1Y3Qgbnhwd2lmaV9wcml2YXRlICpwcml2LFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYWMuYy0zOC1cXHRcXHRcXHRcXHQgIHUxNiBiYW5kcywgdTE2IG1jc19tYXApXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWFjLmMtNDItXFx0dTMyIHVzcl92aHRfY2FwX2luZm8gPSAwO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYWMuYzo0MzpcXHRzdHJ1Y3Qgbnhwd2lmaV9hZGFwdGVyICphZGFwdGVyID0gcHJpdi1cXHUwMDNlYWRhcHRlcjtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWFjLmMtNDQtXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWFjLmM9Nzk9c3RhdGljIHZvaWRcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWFjLmM6ODA6bnhwd2lmaV9maWxsX3ZodF9jYXBfaW5mbyhzdHJ1Y3Qgbnhwd2lmaV9wcml2YXRlICpwcml2LFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYWMuYy04MS1cXHRcXHRcXHQgIHN0cnVjdCBpZWVlODAyMTFfdmh0X2NhcCAqdmh0X2NhcCwgdTE2IGJhbmRzKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYWMuYy04Mi17XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFhYy5jOjgzOlxcdHN0cnVjdCBueHB3aWZpX2FkYXB0ZXIgKmFkYXB0ZXIgPSBwcml2LVxcdTAwM2VhZGFwdGVyO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYWMuYy04NC1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYWMuYz05Mz12b2lkXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFhYy5jOjk0Om54cHdpZmlfZmlsbF92aHRfY2FwX3RsdihzdHJ1Y3Qgbnhwd2lmaV9wcml2YXRlICpwcml2LFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYWMuYy05NS1cXHRcXHRcXHQgc3RydWN0IGllZWU4MDIxMV92aHRfY2FwICp2aHRfY2FwLCB1MTYgYmFuZHMpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFhYy5jLTk2LXtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWFjLmM6OTc6XFx0c3RydWN0IG54cHdpZmlfYWRhcHRlciAqYWRhcHRlciA9IHByaXYtXFx1MDAzZWFkYXB0ZXI7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFhYy5jLTk4LVxcdHUxNiBtY3NfbWFwX3VzZXIsIG1jc19tYXBfcmVzcCwgbWNzX21hcF9yZXN1bHQ7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWFjLmMtMTAxLVxcdC8qIEZpbGwgVkhUIGNhcGFiaWxpdHkgaW5mby4gKi9cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWFjLmM6MTAyOlxcdG54cHdpZmlfZmlsbF92aHRfY2FwX2luZm8ocHJpdiwgdmh0X2NhcCwgYmFuZHMpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYWMuYy0xMDMtXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWFjLmMtMTIzLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYWMuYzoxMjQ6XFx0dG1wID0gbnhwd2lmaV9jb252ZXJ0X21jc21hcF90b19tYXhyYXRlKHByaXYsIGJhbmRzLCBtY3NfbWFwX3Jlc3VsdCk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFhYy5jLTEyNS1cXHR2aHRfY2FwLVxcdTAwM2VzdXBwX21jcy5yeF9oaWdoZXN0ID0gY3B1X3RvX2xlMTYodG1wKTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYWMuYy0xNDUtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFhYy5jOjE0NjpcXHR0bXAgPSBueHB3aWZpX2NvbnZlcnRfbWNzbWFwX3RvX21heHJhdGUocHJpdiwgYmFuZHMsIG1jc19tYXBfcmVzdWx0KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWFjLmMtMTQ3LVxcdHZodF9jYXAtXFx1MDAzZXN1cHBfbWNzLnR4X2hpZ2hlc3QgPSBjcHVfdG9fbGUxNih0bXApO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFhYy5jLTE0OS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWFjLmM6MTUwOmludCBueHB3aWZpX2NtZF9hcHBlbmRfMTFhY190bHYoc3RydWN0IG54cHdpZmlfcHJpdmF0ZSAqcHJpdixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWFjLmM6MTUxOlxcdFxcdFxcdFxcdHN0cnVjdCBueHB3aWZpX2Jzc2Rlc2NyaXB0b3IgKmJzc19kZXNjLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYWMuYy0xNTItXFx0XFx0XFx0XFx0dTggKipidWZmZXIpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFhYy5jLTE1My17XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFhYy5jOjE1NDpcXHRzdHJ1Y3Qgbnhwd2lmaV9pZV90eXBlc192aHRjYXAgKnZodF9jYXA7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFhYy5jOjE1NTpcXHRzdHJ1Y3Qgbnhwd2lmaV9pZV90eXBlc19vcGVyX21vZGVfbnRmICpvcGVyX250ZjtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWFjLmMtMTU2LVxcdHN0cnVjdCBpZWVlX3R5cGVzX29wZXJfbW9kZV9udGYgKmllZWVfb3Blcl9udGY7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFhYy5jOjE1NzpcXHRzdHJ1Y3Qgbnhwd2lmaV9pZV90eXBlc192aHRfb3BlciAqdmh0X29wO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYWMuYzoxNTg6XFx0c3RydWN0IG54cHdpZmlfYWRhcHRlciAqYWRhcHRlciA9IHByaXYtXFx1MDAzZWFkYXB0ZXI7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFhYy5jLTE1OS1cXHR1OCBzdXBwX2Nod2Rfc2V0O1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFhYy5jLTE2OS1cXHRpZiAoYnNzX2Rlc2MtXFx1MDAzZWJjbl92aHRfY2FwKSB7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFhYy5jOjE3MDpcXHRcXHR2aHRfY2FwID0gKHN0cnVjdCBueHB3aWZpX2llX3R5cGVzX3ZodGNhcCAqKSpidWZmZXI7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFhYy5jLTE3MS1cXHRcXHRtZW1zZXQodmh0X2NhcCwgMCwgc2l6ZW9mKCp2aHRfY2FwKSk7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWFjLmMtMTc0LVxcdFxcdFxcdGNwdV90b19sZTE2KHNpemVvZihzdHJ1Y3QgaWVlZTgwMjExX3ZodF9jYXApKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWFjLmM6MTc1OlxcdFxcdG1lbWNweSgodTggKil2aHRfY2FwICsgc2l6ZW9mKHN0cnVjdCBueHB3aWZpX2llX3R5cGVzX2hlYWRlciksXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFhYy5jLTE3Ni1cXHRcXHQgICAgICAgKHU4ICopYnNzX2Rlc2MtXFx1MDAzZWJjbl92aHRfY2FwLFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFhYy5jLTE3OC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWFjLmM6MTc5OlxcdFxcdG54cHdpZmlfZmlsbF92aHRfY2FwX3Rsdihwcml2LCBcXHUwMDI2dmh0X2NhcC1cXHUwMDNldmh0X2NhcCxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWFjLmMtMTgwLVxcdFxcdFxcdFxcdFxcdCBic3NfZGVzYy1cXHUwMDNlYnNzX2JhbmQpO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFhYy5jLTE4Ny1cXHRcXHRpZiAocHJpdi1cXHUwMDNlYnNzX21vZGUgPT0gTkw4MDIxMV9JRlRZUEVfU1RBVElPTikge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYWMuYzoxODg6XFx0XFx0XFx0dmh0X29wID0gKHN0cnVjdCBueHB3aWZpX2llX3R5cGVzX3ZodF9vcGVyICopKmJ1ZmZlcjtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWFjLmMtMTg5LVxcdFxcdFxcdG1lbXNldCh2aHRfb3AsIDAsIHNpemVvZigqdmh0X29wKSk7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWFjLmMtMTkyLVxcdFxcdFxcdHZodF9vcC1cXHUwMDNlaGVhZGVyLmxlbiAgPSBjcHVfdG9fbGUxNihzaXplb2YoKnZodF9vcCkgLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYWMuYzoxOTM6XFx0XFx0XFx0XFx0c2l6ZW9mKHN0cnVjdCBueHB3aWZpX2llX3R5cGVzX2hlYWRlcikpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYWMuYy0xOTQtXFx0XFx0XFx0bWVtY3B5KCh1OCAqKXZodF9vcCArXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFhYy5jOjE5NTpcXHRcXHRcXHRcXHRzaXplb2Yoc3RydWN0IG54cHdpZmlfaWVfdHlwZXNfaGVhZGVyKSxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWFjLmMtMTk2LVxcdFxcdFxcdCAgICAgICAodTggKilic3NfZGVzYy1cXHUwMDNlYmNuX3ZodF9vcGVyLFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFhYy5jLTI0NC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWFjLmM6MjQ1OmludCBueHB3aWZpX2NtZF8xMWFjX2NmZyhzdHJ1Y3Qgbnhwd2lmaV9wcml2YXRlICpwcml2LFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYWMuYy0yNDYtXFx0XFx0XFx0IHN0cnVjdCBob3N0X2NtZF9kc19jb21tYW5kICpjbWQsIHUxNiBjbWRfYWN0aW9uLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYWMuYzoyNDc6XFx0XFx0XFx0IHN0cnVjdCBueHB3aWZpXzExYWNfdmh0X2NmZyAqY2ZnKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYWMuYy0yNDgte1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFhYy5jLTI2NC0vKiBJbml0aWFsaXplIEJsb2NrQWNrIHBhcmFtZXRlcnMgZm9yIDExYWMuICovXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFhYy5jOjI2NTp2b2lkIG54cHdpZmlfc2V0XzExYWNfYmFfcGFyYW1zKHN0cnVjdCBueHB3aWZpX3ByaXZhdGUgKnByaXYpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFhYy5jLTI2Ni17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWFjLmgtMi0vKlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYWMuaDozOiAqIG54cHdpZmk6IDgwMi4xMWFjIChWSFQpIGRlZmluaXRpb25zXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFhYy5oLTQtICpcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYWMuaD0xND1lbnVtIHZodF9jZmdfbWlzY19jb25maWcge1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFhYy5oLTI0LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYWMuaDoyNTppbnQgbnhwd2lmaV9jbWRfYXBwZW5kXzExYWNfdGx2KHN0cnVjdCBueHB3aWZpX3ByaXZhdGUgKnByaXYsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFhYy5oOjI2OlxcdFxcdFxcdFxcdHN0cnVjdCBueHB3aWZpX2Jzc2Rlc2NyaXB0b3IgKmJzc19kZXNjLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYWMuaC0yNy1cXHRcXHRcXHRcXHR1OCAqKmJ1ZmZlcik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFhYy5oOjI4OmludCBueHB3aWZpX2NtZF8xMWFjX2NmZyhzdHJ1Y3Qgbnhwd2lmaV9wcml2YXRlICpwcml2LFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYWMuaC0yOS1cXHRcXHRcXHQgc3RydWN0IGhvc3RfY21kX2RzX2NvbW1hbmQgKmNtZCwgdTE2IGNtZF9hY3Rpb24sXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFhYy5oOjMwOlxcdFxcdFxcdCBzdHJ1Y3Qgbnhwd2lmaV8xMWFjX3ZodF9jZmcgKmNmZyk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFhYy5oOjMxOnZvaWQgbnhwd2lmaV9maWxsX3ZodF9jYXBfdGx2KHN0cnVjdCBueHB3aWZpX3ByaXZhdGUgKnByaXYsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFhYy5oLTMyLVxcdFxcdFxcdCAgICAgIHN0cnVjdCBpZWVlODAyMTFfdmh0X2NhcCAqdmh0X2NhcCwgdTE2IGJhbmRzKTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYy0xLS8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wLW9ubHlcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmM6MjovKiBueHB3aWZpOiA4MDIuMTFheCAoSEUpIHN1cHBvcnRcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmMtMy0gKiBDb3B5cmlnaHQgKEMpIDIwMTEtMjAyNCBOWFBcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYy0xMC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmM6MTE6dm9pZCBueHB3aWZpX3VwZGF0ZV8xMWF4X2NhcChzdHJ1Y3Qgbnhwd2lmaV9hZGFwdGVyICphZGFwdGVyLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYy0xMi1cXHRcXHRcXHQgICAgIHN0cnVjdCBod19zcGVjX2V4dGVuc2lvbiAqaHdfaGVfY2FwKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYy0xMy17XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jOjE0OlxcdHN0cnVjdCBueHB3aWZpX3ByaXZhdGUgKnByaXY7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jOjE1OlxcdHN0cnVjdCBueHB3aWZpX2llX3R5cGVzX2hlX2NhcCAqaGVfY2FwID0gTlVMTDtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmM6MTY6XFx0c3RydWN0IG54cHdpZmlfaWVfdHlwZXNfaGVfY2FwICp1c2VyX2hlX2NhcCA9IE5VTEw7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jOjE3OlxcdHU4IGhlYWRlcl9sZW4gPSBzaXplb2Yoc3RydWN0IG54cHdpZmlfaWVfdHlwZXNfaGVhZGVyKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmMtMTgtXFx0dTE2IGRhdGFfbGVuID0gbGUxNl90b19jcHUoaHdfaGVfY2FwLVxcdTAwM2VoZWFkZXIubGVuKTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYy0yMi1cXHRpZiAoKGRhdGFfbGVuICsgaGVhZGVyX2xlbikgXFx1MDAzZSBzaXplb2YoYWRhcHRlci1cXHUwMDNlaHdfaGVfY2FwKSkge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYzoyMzpcXHRcXHRueHB3aWZpX2RiZyhhZGFwdGVyLCBFUlJPUixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmMtMjQtXFx0XFx0XFx0ICAgIFxcXCJod19oZV9jYXAgdG9vIGJpZywgbGVuPSVkXFxcXG5cXFwiLFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jLTI4LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYzoyOTpcXHRoZV9jYXAgPSAoc3RydWN0IG54cHdpZmlfaWVfdHlwZXNfaGVfY2FwICopaHdfaGVfY2FwO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYy0zMC1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYy0zNy1cXHRcXHRoZV9jYXBfMmcgPSB0cnVlO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYzozODpcXHRcXHRueHB3aWZpX2RiZ19kdW1wKGFkYXB0ZXIsIENNRF9ELCBcXFwiMi40RyBIRSBjYXBhYmlsaXR5IGVsZW1lbnQgXFxcIixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmMtMzktXFx0XFx0XFx0XFx0IGFkYXB0ZXItXFx1MDAzZWh3XzJnX2hlX2NhcCxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYy00NS1cXHRcXHRhZGFwdGVyLVxcdTAwM2Vmd19iYW5kcyB8PSBCQU5EX0FBWDtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmM6NDY6XFx0XFx0bnhwd2lmaV9kYmdfZHVtcChhZGFwdGVyLCBDTURfRCwgXFxcIjVHIEhFIGNhcGFiaWxpdHkgZWxlbWVudCBcXFwiLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYy00Ny1cXHRcXHRcXHRcXHQgYWRhcHRlci1cXHUwMDNlaHdfaGVfY2FwLFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jLTU3LVxcdFxcdFxcdCAgICAgICBzaXplb2YoYWRhcHRlci1cXHUwMDNlaHdfMmdfaGVfY2FwKSk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jOjU4OlxcdFxcdFxcdHVzZXJfaGVfY2FwID0gKHN0cnVjdCBueHB3aWZpX2llX3R5cGVzX2hlX2NhcCAqKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYy01OS1cXHRcXHRcXHRcXHRwcml2LVxcdTAwM2V1c2VyXzJnX2hlX2NhcDtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYy02My1cXHRcXHRcXHQgICAgICAgc2l6ZW9mKGFkYXB0ZXItXFx1MDAzZWh3X2hlX2NhcCkpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYzo2NDpcXHRcXHRcXHR1c2VyX2hlX2NhcCA9IChzdHJ1Y3Qgbnhwd2lmaV9pZV90eXBlc19oZV9jYXAgKilcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmMtNjUtXFx0XFx0XFx0XFx0cHJpdi1cXHUwMDNldXNlcl9oZV9jYXA7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmMtNzgtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jOjc5OmJvb2wgbnhwd2lmaV8xMWF4X2JhbmRjb25maWdfYWxsb3dlZChzdHJ1Y3Qgbnhwd2lmaV9wcml2YXRlICpwcml2LFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYzo4MDpcXHRcXHRcXHRcXHQgICAgIHN0cnVjdCBueHB3aWZpX2Jzc2Rlc2NyaXB0b3IgKmJzc19kZXNjKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYy04MS17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmMtOTQtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jOjk1OmludCBueHB3aWZpX2ZpbGxfaGVfY2FwX3RsdihzdHJ1Y3Qgbnhwd2lmaV9wcml2YXRlICpwcml2LFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYzo5NjpcXHRcXHRcXHQgICAgc3RydWN0IG54cHdpZmlfaWVfdHlwZXNfaGVfY2FwICpoZV9jYXAsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jLTk3LVxcdFxcdFxcdCAgICB1MTYgYmFuZHMpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jLTk4LXtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmM6OTk6XFx0c3RydWN0IG54cHdpZmlfYWRhcHRlciAqYWRhcHRlciA9IHByaXYtXFx1MDAzZWFkYXB0ZXI7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jOjEwMDpcXHRzdHJ1Y3Qgbnhwd2lmaV9pZV90eXBlc19oZV9jYXAgKmh3X2hlX2NhcCA9IE5VTEw7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jLTEwMS1cXHR1MTYgcnhfbnNzLCB0eF9uc3M7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmMtMTA4LVxcdFxcdG1lbWNweShoZV9jYXAsIHByaXYtXFx1MDAzZXVzZXJfaGVfY2FwLCBwcml2LVxcdTAwM2V1c2VyX2hlX2NhcF9sZW4pO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYzoxMDk6XFx0XFx0aHdfaGVfY2FwID0gKHN0cnVjdCBueHB3aWZpX2llX3R5cGVzX2hlX2NhcCAqKWFkYXB0ZXItXFx1MDAzZWh3X2hlX2NhcDtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmMtMTEwLVxcdFxcdHJldF9sZW4gPSBwcml2LVxcdTAwM2V1c2VyX2hlX2NhcF9sZW47XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmMtMTEyLVxcdFxcdG1lbWNweShoZV9jYXAsIHByaXYtXFx1MDAzZXVzZXJfMmdfaGVfY2FwLCBwcml2LVxcdTAwM2V1c2VyXzJnX2hlX2NhcF9sZW4pO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYzoxMTM6XFx0XFx0aHdfaGVfY2FwID0gKHN0cnVjdCBueHB3aWZpX2llX3R5cGVzX2hlX2NhcCAqKWFkYXB0ZXItXFx1MDAzZWh3XzJnX2hlX2NhcDtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmMtMTE0LVxcdFxcdHJldF9sZW4gPSBwcml2LVxcdTAwM2V1c2VyXzJnX2hlX2NhcF9sZW47XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmMtMTI1LVxcdGZvciAobnNzID0gMTsgbnNzIFxcdTAwM2M9IDg7IG5zcysrKSB7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jOjEyNjpcXHRcXHRjZmdfdmFsdWUgPSBueHB3aWZpX2dldF9oZV9uc3NfbWNzKGhlX2NhcC1cXHUwMDNlcnhfbWNzXzgwLCBuc3MpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYzoxMjc6XFx0XFx0aHdfdmFsdWUgPSBueHB3aWZpX2dldF9oZV9uc3NfbWNzKGh3X2hlX2NhcC1cXHUwMDNlcnhfbWNzXzgwLCBuc3MpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYy0xMjgtXFx0XFx0aWYgKHJ4X25zcyAhPSAwIFxcdTAwMjZcXHUwMDI2IG5zcyBcXHUwMDNlIHJ4X25zcylcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYy0xMzAtXFx0XFx0aWYgKGh3X3ZhbHVlID09IE5PX05TU19TVVBQT1JUIHx8IGNmZ192YWx1ZSA9PSBOT19OU1NfU1VQUE9SVClcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmM6MTMxOlxcdFxcdFxcdG54cHdpZmlfc2V0X2hlX25zc19tY3MoXFx1MDAyNmhlX2NhcC1cXHUwMDNlcnhfbWNzXzgwLCBuc3MsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jLTEzMi1cXHRcXHRcXHRcXHRcXHQgICAgICAgTk9fTlNTX1NVUFBPUlQpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYy0xMzMtXFx0XFx0ZWxzZVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYzoxMzQ6XFx0XFx0XFx0bnhwd2lmaV9zZXRfaGVfbnNzX21jcyhcXHUwMDI2aGVfY2FwLVxcdTAwM2VyeF9tY3NfODAsIG5zcyxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmMtMTM1LVxcdFxcdFxcdFxcdFxcdCAgICAgICBtaW4oY2ZnX3ZhbHVlLCBod192YWx1ZSkpO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jLTEzOC1cXHRmb3IgKG5zcyA9IDE7IG5zcyBcXHUwMDNjPSA4OyBuc3MrKykge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYzoxMzk6XFx0XFx0Y2ZnX3ZhbHVlID0gbnhwd2lmaV9nZXRfaGVfbnNzX21jcyhoZV9jYXAtXFx1MDAzZXR4X21jc184MCwgbnNzKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmM6MTQwOlxcdFxcdGh3X3ZhbHVlID0gbnhwd2lmaV9nZXRfaGVfbnNzX21jcyhod19oZV9jYXAtXFx1MDAzZXR4X21jc184MCwgbnNzKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmMtMTQxLVxcdFxcdGlmICh0eF9uc3MgIT0gMCBcXHUwMDI2XFx1MDAyNiBuc3MgXFx1MDAzZSB0eF9uc3MpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmMtMTQzLVxcdFxcdGlmIChod192YWx1ZSA9PSBOT19OU1NfU1VQUE9SVCB8fCBjZmdfdmFsdWUgPT0gTk9fTlNTX1NVUFBPUlQpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jOjE0NDpcXHRcXHRcXHRueHB3aWZpX3NldF9oZV9uc3NfbWNzKFxcdTAwMjZoZV9jYXAtXFx1MDAzZXR4X21jc184MCwgbnNzLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYy0xNDUtXFx0XFx0XFx0XFx0XFx0ICAgICAgIE5PX05TU19TVVBQT1JUKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmMtMTQ2LVxcdFxcdGVsc2VcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmM6MTQ3OlxcdFxcdFxcdG54cHdpZmlfc2V0X2hlX25zc19tY3MoXFx1MDAyNmhlX2NhcC1cXHUwMDNldHhfbWNzXzgwLCBuc3MsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jLTE0OC1cXHRcXHRcXHRcXHRcXHQgICAgICAgbWluKGNmZ192YWx1ZSwgaHdfdmFsdWUpKTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYy0xNTMtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jOjE1NDppbnQgbnhwd2lmaV9jbWRfYXBwZW5kXzExYXhfdGx2KHN0cnVjdCBueHB3aWZpX3ByaXZhdGUgKnByaXYsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jOjE1NTpcXHRcXHRcXHRcXHRzdHJ1Y3Qgbnhwd2lmaV9ic3NkZXNjcmlwdG9yICpic3NfZGVzYyxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmMtMTU2LVxcdFxcdFxcdFxcdHU4ICoqYnVmZmVyKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYy0xNTcte1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYzoxNTg6XFx0c3RydWN0IG54cHdpZmlfaWVfdHlwZXNfaGVfY2FwICpoZV9jYXAgPSBOVUxMO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYy0xNTktXFx0aW50IHJldF9sZW47XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmMtMTYzLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYzoxNjQ6XFx0aGVfY2FwID0gKHN0cnVjdCBueHB3aWZpX2llX3R5cGVzX2hlX2NhcCAqKSpidWZmZXI7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jOjE2NTpcXHRyZXRfbGVuID0gbnhwd2lmaV9maWxsX2hlX2NhcF90bHYocHJpdiwgaGVfY2FwLCBic3NfZGVzYy1cXHUwMDNlYnNzX2JhbmQpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYy0xNjYtXFx0KmJ1ZmZlciArPSByZXRfbGVuO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jLTE3MC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmM6MTcxOmludCBueHB3aWZpX2NtZF8xMWF4X2NmZyhzdHJ1Y3Qgbnhwd2lmaV9wcml2YXRlICpwcml2LFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYy0xNzItXFx0XFx0XFx0IHN0cnVjdCBob3N0X2NtZF9kc19jb21tYW5kICpjbWQsIHUxNiBjbWRfYWN0aW9uLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYzoxNzM6XFx0XFx0XFx0IHN0cnVjdCBueHB3aWZpXzExYXhfaGVfY2ZnICpheF9jZmcpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jLTE3NC17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmMtMTc2LVxcdHUxNiBjbWRfc2l6ZTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmM6MTc3OlxcdHN0cnVjdCBueHB3aWZpX2llX3R5cGVzX2hlYWRlciAqaGVhZGVyO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYy0xNzgtXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmMtMTg2LVxcdCAgICBheF9jZmctXFx1MDAzZWhlX2NhcF9jZmcuZXh0X2lkID09IFdMQU5fRUlEX0VYVF9IRV9DQVBBQklMSVRZKSB7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jOjE4NzpcXHRcXHRoZWFkZXIgPSAoc3RydWN0IG54cHdpZmlfaWVfdHlwZXNfaGVhZGVyICopaGVfY2ZnLVxcdTAwM2V0bHY7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jLTE4OC1cXHRcXHRoZWFkZXItXFx1MDAzZXR5cGUgPSBjcHVfdG9fbGUxNihheF9jZmctXFx1MDAzZWhlX2NhcF9jZmcuaWQpO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jLTIwMC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmM6MjAxOmludCBueHB3aWZpX3JldF8xMWF4X2NmZyhzdHJ1Y3Qgbnhwd2lmaV9wcml2YXRlICpwcml2LFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYy0yMDItXFx0XFx0XFx0IHN0cnVjdCBob3N0X2NtZF9kc19jb21tYW5kICpyZXNwLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYzoyMDM6XFx0XFx0XFx0IHN0cnVjdCBueHB3aWZpXzExYXhfaGVfY2ZnICpheF9jZmcpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jLTIwNC17XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jLTIwNS1cXHRzdHJ1Y3QgaG9zdF9jbWRfMTFheF9jZmcgKmhlX2NmZyA9IFxcdTAwMjZyZXNwLVxcdTAwM2VwYXJhbXMuYXhfY2ZnO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYzoyMDY6XFx0c3RydWN0IG54cHdpZmlfaWVfdHlwZXNfaGVhZGVyICpoZWFkZXI7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jLTIwNy1cXHR1MTYgbGVmdF9sZW4sIHRsdl90eXBlLCB0bHZfbGVuO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYy0yMDgtXFx0dTggZXh0X2lkO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYzoyMDk6XFx0c3RydWN0IG54cHdpZmlfMTFheF9oZV9jYXBfY2ZnICpoZV9jYXAgPSBcXHUwMDI2YXhfY2ZnLVxcdTAwM2VoZV9jYXBfY2ZnO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYy0yMTAtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jLTIxMS1cXHRsZWZ0X2xlbiA9IGxlMTZfdG9fY3B1KHJlc3AtXFx1MDAzZXNpemUpIC0gc2l6ZW9mKCpoZV9jZmcpIC0gU19EU19HRU47XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jOjIxMjpcXHRoZWFkZXIgPSAoc3RydWN0IG54cHdpZmlfaWVfdHlwZXNfaGVhZGVyICopaGVfY2ZnLVxcdTAwM2V0bHY7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jLTIxMy1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYy0yNDItXFx0XFx0bGVmdF9sZW4gLT0gKHNpemVvZigqaGVhZGVyKSArIHRsdl9sZW4pO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYzoyNDM6XFx0XFx0aGVhZGVyID0gKHN0cnVjdCBueHB3aWZpX2llX3R5cGVzX2hlYWRlciAqKSgodTggKiloZWFkZXIgK1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYy0yNDQtXFx0XFx0XFx0XFx0XFx0XFx0XFx0ICAgIHNpemVvZigqaGVhZGVyKSArXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmMtMjUwLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYzoyNTE6aW50IG54cHdpZmlfY21kXzExYXhfY21kKHN0cnVjdCBueHB3aWZpX3ByaXZhdGUgKnByaXYsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jLTI1Mi1cXHRcXHRcXHQgc3RydWN0IGhvc3RfY21kX2RzX2NvbW1hbmQgKmNtZCwgdTE2IGNtZF9hY3Rpb24sXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jOjI1MzpcXHRcXHRcXHQgc3RydWN0IG54cHdpZmlfMTFheF9jbWRfY2ZnICpheF9jbWQpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jLTI1NC17XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jOjI1NTpcXHRzdHJ1Y3Qgbnhwd2lmaV9hZGFwdGVyICphZGFwdGVyID0gcHJpdi1cXHUwMDNlYWRhcHRlcjtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmMtMjU2LVxcdHN0cnVjdCBob3N0X2NtZF8xMWF4X2NtZCAqaGVfY21kID0gXFx1MDAyNmNtZC1cXHUwMDNlcGFyYW1zLmF4X2NtZDtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmMtMjU3LVxcdHUxNiBjbWRfc2l6ZTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmM6MjU4OlxcdHN0cnVjdCBueHB3aWZpXzExYXhfc3JfY21kICpzcl9jbWQ7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jOjI1OTpcXHRzdHJ1Y3Qgbnhwd2lmaV9pZV90eXBlc19kYXRhICp0bHY7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jOjI2MDpcXHRzdHJ1Y3Qgbnhwd2lmaV8xMWF4X2JlYW1fY21kICpiZWFtX2NtZDtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmM6MjYxOlxcdHN0cnVjdCBueHB3aWZpXzExYXhfaHRjX2NtZCAqaHRjX2NtZDtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmM6MjYyOlxcdHN0cnVjdCBueHB3aWZpXzExYXhfdHhvbWlfY21kICp0eG1vaV9jbWQ7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jOjI2MzpcXHRzdHJ1Y3Qgbnhwd2lmaV8xMWF4X3RvbHRpbWVfY21kICp0b2x0aW1lX2NtZDtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmM6MjY0OlxcdHN0cnVjdCBueHB3aWZpXzExYXhfdHhvcF9jbWQgKnR4b3BfY21kO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYzoyNjU6XFx0c3RydWN0IG54cHdpZmlfMTFheF9zZXRfYnNycF9jbWQgKnNldF9ic3JwX2NtZDtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmM6MjY2OlxcdHN0cnVjdCBueHB3aWZpXzExYXhfbGxkZV9jbWQgKmxsZGVfY21kO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYy0yNjctXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmMtMjc1LVxcdGNhc2UgTlhQV0lGSV8xMUFYQ01EX1NSX1NVQklEOlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYzoyNzY6XFx0XFx0c3JfY21kID0gKHN0cnVjdCBueHB3aWZpXzExYXhfc3JfY21kICopXFx1MDAyNmF4X2NtZC1cXHUwMDNlcGFyYW07XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jLTI3Ny1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmM6Mjc4OlxcdFxcdHRsdiA9IChzdHJ1Y3Qgbnhwd2lmaV9pZV90eXBlc19kYXRhICopaGVfY21kLVxcdTAwM2V2YWw7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jLTI3OS1cXHRcXHR0bHYtXFx1MDAzZWhlYWRlci50eXBlID0gY3B1X3RvX2xlMTYoc3JfY21kLVxcdTAwM2V0eXBlKTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYy0yODUtXFx0Y2FzZSBOWFBXSUZJXzExQVhDTURfQkVBTV9TVUJJRDpcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmM6Mjg2OlxcdFxcdGJlYW1fY21kID0gKHN0cnVjdCBueHB3aWZpXzExYXhfYmVhbV9jbWQgKilcXHUwMDI2YXhfY21kLVxcdTAwM2VwYXJhbTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmMtMjg3LVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jLTI5MS1cXHRjYXNlIE5YUFdJRklfMTFBWENNRF9IVENfU1VCSUQ6XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jOjI5MjpcXHRcXHRodGNfY21kID0gKHN0cnVjdCBueHB3aWZpXzExYXhfaHRjX2NtZCAqKVxcdTAwMjZheF9jbWQtXFx1MDAzZXBhcmFtO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYy0yOTMtXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmMtMjk3LVxcdGNhc2UgTlhQV0lGSV8xMUFYQ01EX1RYT01JX1NVQklEOlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYzoyOTg6XFx0XFx0dHhtb2lfY21kID1cXHQoc3RydWN0IG54cHdpZmlfMTFheF90eG9taV9jbWQgKilcXHUwMDI2YXhfY21kLVxcdTAwM2VwYXJhbTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmMtMjk5LVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jLTMwMy1cXHRjYXNlIE5YUFdJRklfMTFBWENNRF9PQlNTX1RPTFRJTUVfU1VCSUQ6XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jOjMwNDpcXHRcXHR0b2x0aW1lX2NtZCA9IChzdHJ1Y3Qgbnhwd2lmaV8xMWF4X3RvbHRpbWVfY21kICopXFx1MDAyNmF4X2NtZC1cXHUwMDNlcGFyYW07XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jLTMwNS1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYy0zMTAtXFx0Y2FzZSBOWFBXSUZJXzExQVhDTURfVFhPUFJUU19TVUJJRDpcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmM6MzExOlxcdFxcdHR4b3BfY21kID0gKHN0cnVjdCBueHB3aWZpXzExYXhfdHhvcF9jbWQgKilcXHUwMDI2YXhfY21kLVxcdTAwM2VwYXJhbTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmMtMzEyLVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jLTMxNy1cXHRjYXNlIE5YUFdJRklfMTFBWENNRF9TRVRfQlNSUF9TVUJJRDpcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmM6MzE4OlxcdFxcdHNldF9ic3JwX2NtZCA9IChzdHJ1Y3Qgbnhwd2lmaV8xMWF4X3NldF9ic3JwX2NtZCAqKVxcdTAwMjZheF9jbWQtXFx1MDAzZXBhcmFtO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYy0zMTktXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmMtMzIzLVxcdGNhc2UgTlhQV0lGSV8xMUFYQ01EX0xMREVfU1VCSUQ6XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jOjMyNDpcXHRcXHRsbGRlX2NtZCA9IChzdHJ1Y3Qgbnhwd2lmaV8xMWF4X2xsZGVfY21kICopXFx1MDAyNmF4X2NtZC1cXHUwMDNlcGFyYW07XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jLTMyNS1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYy0zMjktXFx0ZGVmYXVsdDpcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmM6MzMwOlxcdFxcdG54cHdpZmlfZGJnKGFkYXB0ZXIsIEVSUk9SLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYy0zMzEtXFx0XFx0XFx0ICAgIFxcXCIlczogVW5rbm93biBzdWIgY29tbWFuZDogJWRcXFxcblxcXCIsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmMtMzQwLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYzozNDE6aW50IG54cHdpZmlfcmV0XzExYXhfY21kKHN0cnVjdCBueHB3aWZpX3ByaXZhdGUgKnByaXYsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jLTM0Mi1cXHRcXHRcXHQgc3RydWN0IGhvc3RfY21kX2RzX2NvbW1hbmQgKnJlc3AsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jOjM0MzpcXHRcXHRcXHQgc3RydWN0IG54cHdpZmlfMTFheF9jbWRfY2ZnICpheF9jbWQpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jLTM0NC17XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jOjM0NTpcXHRzdHJ1Y3Qgbnhwd2lmaV9hZGFwdGVyICphZGFwdGVyID0gcHJpdi1cXHUwMDNlYWRhcHRlcjtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmMtMzQ2LVxcdHN0cnVjdCBob3N0X2NtZF8xMWF4X2NtZCAqaGVfY21kID0gXFx1MDAyNnJlc3AtXFx1MDAzZXBhcmFtcy5heF9jbWQ7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jOjM0NzpcXHRzdHJ1Y3Qgbnhwd2lmaV9pZV90eXBlc19kYXRhICp0bHY7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jLTM0OC1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYy0zNTItXFx0Y2FzZSBOWFBXSUZJXzExQVhDTURfU1JfU1VCSUQ6XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jOjM1MzpcXHRcXHR0bHYgPSAoc3RydWN0IG54cHdpZmlfaWVfdHlwZXNfZGF0YSAqKWhlX2NtZC1cXHUwMDNldmFsO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYy0zNTQtXFx0XFx0bWVtY3B5KGF4X2NtZC1cXHUwMDNlcGFyYW0uc3JfY2ZnLnBhcmFtLm9ic3NfcGRfb2Zmc2V0Lm9mZnNldCxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYy0zODMtXFx0ZGVmYXVsdDpcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmM6Mzg0OlxcdFxcdG54cHdpZmlfZGJnKGFkYXB0ZXIsIEVSUk9SLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYy0zODUtXFx0XFx0XFx0ICAgIFxcXCIlczogVW5rbm93biBzdWIgY29tbWFuZDogJWRcXFxcblxcXCIsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmMtMzkyLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYzozOTM6c3RhdGljIHU4IG54cHdpZmlfaXNfYXBfMTFheF90d3Rfc3VwcG9ydGVkKHN0cnVjdCBueHB3aWZpX2Jzc2Rlc2NyaXB0b3IgKmJzc19kZXNjKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYy0zOTQte1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jLTQwOS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmM6NDEwOmJvb2wgbnhwd2lmaV9pc18xMWF4X3R3dF9zdXBwb3J0ZWQoc3RydWN0IG54cHdpZmlfcHJpdmF0ZSAqcHJpdixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmM6NDExOlxcdFxcdFxcdFxcdCAgIHN0cnVjdCBueHB3aWZpX2Jzc2Rlc2NyaXB0b3IgKmJzc19kZXNjKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYy00MTIte1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYzo0MTM6XFx0c3RydWN0IG54cHdpZmlfaWVfdHlwZXNfaGVfY2FwICp1c2VyX2hlX2NhcDtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmM6NDE0OlxcdHN0cnVjdCBueHB3aWZpX2llX3R5cGVzX2hlX2NhcCAqaHdfaGVfY2FwO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYy00MTUtXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmMtNDE4LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYzo0MTk6XFx0aWYgKCFueHB3aWZpX2lzX2FwXzExYXhfdHd0X3N1cHBvcnRlZChic3NfZGVzYykpIHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmM6NDIwOlxcdFxcdG54cHdpZmlfZGJnKHByaXYtXFx1MDAzZWFkYXB0ZXIsIE1TRyxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmMtNDIxLVxcdFxcdFxcdCAgICBcXFwiQVAgZG9uJ3Qgc3VwcG9ydCB0d3QgZmVhdHVyZVxcXFxuXFxcIik7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmMtNDI1LVxcdGlmIChic3NfZGVzYy1cXHUwMDNlYnNzX2JhbmQgXFx1MDAyNiBCQU5EX0EpIHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmM6NDI2OlxcdFxcdGh3X2hlX2NhcCA9IChzdHJ1Y3Qgbnhwd2lmaV9pZV90eXBlc19oZV9jYXAgKilcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmMtNDI3LVxcdFxcdFxcdHByaXYtXFx1MDAzZWFkYXB0ZXItXFx1MDAzZWh3X2hlX2NhcDtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmM6NDI4OlxcdFxcdHVzZXJfaGVfY2FwID0gKHN0cnVjdCBueHB3aWZpX2llX3R5cGVzX2hlX2NhcCAqKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYy00MjktXFx0XFx0XFx0cHJpdi1cXHUwMDNldXNlcl9oZV9jYXA7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jLTQzMC1cXHR9IGVsc2Uge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYzo0MzE6XFx0XFx0aHdfaGVfY2FwID0gKHN0cnVjdCBueHB3aWZpX2llX3R5cGVzX2hlX2NhcCAqKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYy00MzItXFx0XFx0XFx0cHJpdi1cXHUwMDNlYWRhcHRlci1cXHUwMDNlaHdfMmdfaGVfY2FwO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYzo0MzM6XFx0XFx0dXNlcl9oZV9jYXAgPSAoc3RydWN0IG54cHdpZmlfaWVfdHlwZXNfaGVfY2FwICopXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jLTQzNC1cXHRcXHRcXHRwcml2LVxcdTAwM2V1c2VyXzJnX2hlX2NhcDtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYy00MzctXFx0aWYgKCEoaHdfaGVfY2FwLVxcdTAwM2VoZV9tYWNfY2FwWzBdIFxcdTAwMjYgSEVfTUFDX0NBUF9UV1RfUkVRX1NVUFBPUlQpKSB7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jOjQzODpcXHRcXHRueHB3aWZpX2RiZyhwcml2LVxcdTAwM2VhZGFwdGVyLCBNU0csXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jLTQzOS1cXHRcXHRcXHQgICAgXFxcIkZXIGRvbid0IHN1cHBvcnQgVFdUXFxcXG5cXFwiKTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYy00NDMtXFx0aWYgKCEodXNlcl9oZV9jYXAtXFx1MDAzZWhlX21hY19jYXBbMF0gXFx1MDAyNiBIRV9NQUNfQ0FQX1RXVF9SRVFfU1VQUE9SVCkpIHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmM6NDQ0OlxcdFxcdG54cHdpZmlfZGJnKHByaXYtXFx1MDAzZWFkYXB0ZXIsIE1TRyxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmMtNDQ1LVxcdFxcdFxcdCAgICBcXFwiVVNFUiBIRV9NQUNfQ0FQIGRvbid0IHN1cHBvcnQgVFdUXFxcXG5cXFwiKTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYy00NTEtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jOjQ1Mjp1OCBueHB3aWZpX2lzX3N0YV8xMWF4X3R3dF9yZXFfc3VwcG9ydGVkKHN0cnVjdCBueHB3aWZpX3ByaXZhdGUgKnByaXYpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jLTQ1My17XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jOjQ1NDpcXHRzdHJ1Y3Qgbnhwd2lmaV9pZV90eXBlc19oZV9jYXAgKnVzZXJfaGVfY2FwO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYy00NTUtXFx0dTggcmV0ID0gMDtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYy00NTktXFx0XFx0aWYgKHByaXYtXFx1MDAzZWNvbmZpZ19iYW5kcyBcXHUwMDI2IEJBTkRfQUFYKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYzo0NjA6XFx0XFx0XFx0dXNlcl9oZV9jYXAgPSAoc3RydWN0IG54cHdpZmlfaWVfdHlwZXNfaGVfY2FwICopcHJpdi1cXHUwMDNldXNlcl9oZV9jYXA7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jLTQ2MS1cXHRcXHRlbHNlXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jOjQ2MjpcXHRcXHRcXHR1c2VyX2hlX2NhcCA9IChzdHJ1Y3Qgbnhwd2lmaV9pZV90eXBlc19oZV9jYXAgKilwcml2LVxcdTAwM2V1c2VyXzJnX2hlX2NhcDtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmMtNDYzLVxcdFxcdHJldCA9IHVzZXJfaGVfY2FwLVxcdTAwM2VoZV9tYWNfY2FwWzBdIFxcdTAwMjYgSEVfTUFDX0NBUF9UV1RfUkVRX1NVUFBPUlQ7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmMtNDY4LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYzo0Njk6aW50IG54cHdpZmlfY21kX3R3dF9jZmcoc3RydWN0IG54cHdpZmlfcHJpdmF0ZSAqcHJpdixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmMtNDcwLVxcdFxcdFxcdHN0cnVjdCBob3N0X2NtZF9kc19jb21tYW5kICpjbWQsIHUxNiBjbWRfYWN0aW9uLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYzo0NzE6XFx0XFx0XFx0c3RydWN0IG54cHdpZmlfdHd0X2NmZyAqdHd0X2NmZylcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmMtNDcyLXtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmM6NDczOlxcdHN0cnVjdCBueHB3aWZpX2FkYXB0ZXIgKmFkYXB0ZXIgPSBwcml2LVxcdTAwM2VhZGFwdGVyO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYy00NzQtXFx0c3RydWN0IGhvc3RfY21kX3R3dF9jZmcgKnR3dF9jZmdfY21kID0gXFx1MDAyNmNtZC1cXHUwMDNlcGFyYW1zLnR3dF9jZmc7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jOjQ3NTpcXHRzdHJ1Y3Qgbnhwd2lmaV90d3Rfc2V0dXAgKnR3dF9zZXR1cDtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmM6NDc2OlxcdHN0cnVjdCBueHB3aWZpX3R3dF90ZWFyZG93biAqdHd0X3RlYXJkb3duO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYzo0Nzc6XFx0c3RydWN0IG54cHdpZmlfdHd0X3JlcG9ydCAqdHd0X3JlcG9ydDtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmM6NDc4OlxcdHN0cnVjdCBueHB3aWZpX3R3dF9pbmZvcm1hdGlvbiAqdHd0X2luZm9ybWF0aW9uO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYzo0Nzk6XFx0c3RydWN0IG54cHdpZmlfYnR3dF9hcF9jb25maWcgKmJ0d3RfYXBfY29uZmlnO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYy00ODAtXFx0dTggaTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYy00OTAtXFx0Y2FzZSBOWFBXSUZJXzExQVhfVFdUX1NFVFVQX1NVQklEOlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYzo0OTE6XFx0XFx0dHd0X3NldHVwID0gKHN0cnVjdCBueHB3aWZpX3R3dF9zZXR1cCAqKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYy00OTItXFx0XFx0XFx0dHd0X2NmZ19jbWQtXFx1MDAzZXZhbDtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmMtNDkzLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYzo0OTQ6XFx0XFx0bWVtc2V0KHR3dF9zZXR1cCwgMHgwMCwgc2l6ZW9mKHN0cnVjdCBueHB3aWZpX3R3dF9zZXR1cCkpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYy00OTUtXFx0XFx0dHd0X3NldHVwLVxcdTAwM2VpbXBsaWNpdCA9IHR3dF9jZmctXFx1MDAzZXBhcmFtLnR3dF9zZXR1cC5pbXBsaWNpdDtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYy01MDctXFx0XFx0dHd0X3NldHVwLVxcdTAwM2ViY25fbWlzc190aHJlc2hvbGQgPSB0d3RfY2ZnLVxcdTAwM2VwYXJhbS50d3Rfc2V0dXAuYmNuX21pc3NfdGhyZXNob2xkO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYzo1MDg6XFx0XFx0Y21kX3NpemUgKz0gc2l6ZW9mKHN0cnVjdCBueHB3aWZpX3R3dF9zZXR1cCk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jLTUwOS1cXHRcXHRicmVhaztcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmMtNTEwLVxcdGNhc2UgTlhQV0lGSV8xMUFYX1RXVF9URUFSRE9XTl9TVUJJRDpcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmM6NTExOlxcdFxcdHR3dF90ZWFyZG93biA9IChzdHJ1Y3Qgbnhwd2lmaV90d3RfdGVhcmRvd24gKilcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmMtNTEyLVxcdFxcdFxcdHR3dF9jZmdfY21kLVxcdTAwM2V2YWw7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jLTUxMy1cXHRcXHRtZW1zZXQodHd0X3RlYXJkb3duLCAweDAwLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYzo1MTQ6XFx0XFx0ICAgICAgIHNpemVvZihzdHJ1Y3Qgbnhwd2lmaV90d3RfdGVhcmRvd24pKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmMtNTE1LVxcdFxcdHR3dF90ZWFyZG93bi1cXHUwMDNlZmxvd19pZGVudGlmaWVyID1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYy01MjAtXFx0XFx0XFx0dHd0X2NmZy1cXHUwMDNlcGFyYW0udHd0X3RlYXJkb3duLnRlYXJkb3duX2FsbF90d3Q7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jOjUyMTpcXHRcXHRjbWRfc2l6ZSArPSBzaXplb2Yoc3RydWN0IG54cHdpZmlfdHd0X3RlYXJkb3duKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmMtNTIyLVxcdFxcdGJyZWFrO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYy01MjMtXFx0Y2FzZSBOWFBXSUZJXzExQVhfVFdUX1JFUE9SVF9TVUJJRDpcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmM6NTI0OlxcdFxcdHR3dF9yZXBvcnQgPSAoc3RydWN0IG54cHdpZmlfdHd0X3JlcG9ydCAqKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYy01MjUtXFx0XFx0XFx0dHd0X2NmZ19jbWQtXFx1MDAzZXZhbDtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmM6NTI2OlxcdFxcdG1lbXNldCh0d3RfcmVwb3J0LCAweDAwLCBzaXplb2Yoc3RydWN0IG54cHdpZmlfdHd0X3JlcG9ydCkpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYy01MjctXFx0XFx0dHd0X3JlcG9ydC1cXHUwMDNldHlwZSA9IHR3dF9jZmctXFx1MDAzZXBhcmFtLnR3dF9yZXBvcnQudHlwZTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmM6NTI4OlxcdFxcdGNtZF9zaXplICs9IHNpemVvZihzdHJ1Y3Qgbnhwd2lmaV90d3RfcmVwb3J0KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmMtNTI5LVxcdFxcdGJyZWFrO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYy01MzAtXFx0Y2FzZSBOWFBXSUZJXzExQVhfVFdUX0lORk9STUFUSU9OX1NVQklEOlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYzo1MzE6XFx0XFx0dHd0X2luZm9ybWF0aW9uID0gKHN0cnVjdCBueHB3aWZpX3R3dF9pbmZvcm1hdGlvbiAqKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYy01MzItXFx0XFx0XFx0dHd0X2NmZ19jbWQtXFx1MDAzZXZhbDtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmMtNTMzLVxcdFxcdG1lbXNldCh0d3RfaW5mb3JtYXRpb24sIDB4MDAsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jOjUzNDpcXHRcXHQgICAgICAgc2l6ZW9mKHN0cnVjdCBueHB3aWZpX3R3dF9pbmZvcm1hdGlvbikpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYy01MzUtXFx0XFx0dHd0X2luZm9ybWF0aW9uLVxcdTAwM2VmbG93X2lkZW50aWZpZXIgPVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jLTUzOC1cXHRcXHRcXHR0d3RfY2ZnLVxcdTAwM2VwYXJhbS50d3RfaW5mb3JtYXRpb24uc3VzcGVuZF9kdXJhdGlvbjtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmM6NTM5OlxcdFxcdGNtZF9zaXplICs9IHNpemVvZihzdHJ1Y3Qgbnhwd2lmaV90d3RfaW5mb3JtYXRpb24pO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYy01NDAtXFx0XFx0YnJlYWs7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jLTU0MS1cXHRjYXNlIE5YUFdJRklfMTFBWF9CVFdUX0FQX0NPTkZJR19TVUJJRDpcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmM6NTQyOlxcdFxcdGJ0d3RfYXBfY29uZmlnID0gKHN0cnVjdCBueHB3aWZpX2J0d3RfYXBfY29uZmlnICopXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jLTU0My1cXHRcXHRcXHRcXHQgdHd0X2NmZ19jbWQtXFx1MDAzZXZhbDtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmMtNTQ0LVxcdFxcdG1lbXNldChidHd0X2FwX2NvbmZpZywgMHgwMCxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmM6NTQ1OlxcdFxcdCAgICAgICBzaXplb2Yoc3RydWN0IG54cHdpZmlfYnR3dF9hcF9jb25maWcpKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmMtNTQ2LVxcdFxcdGJ0d3RfYXBfY29uZmlnLVxcdTAwM2VhcF9iY2FzdF9iZXRfc3RhX3dhaXQgPVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jLTU2NC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmM6NTY1OlxcdFxcdGNtZF9zaXplICs9IHNpemVvZihzdHJ1Y3Qgbnhwd2lmaV9idHd0X2FwX2NvbmZpZyk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jLTU2Ni1cXHRcXHRicmVhaztcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmMtNTY3LVxcdGRlZmF1bHQ6XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jOjU2ODpcXHRcXHRueHB3aWZpX2RiZyhhZGFwdGVyLCBFUlJPUixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmMtNTY5LVxcdFxcdFxcdCAgICBcXFwiVW5rbm93biBzdWIgaWQ6ICVkXFxcXG5cXFwiLCB0d3RfY2ZnLVxcdTAwM2VzdWJfaWQpO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jLTU3Ny1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmM6NTc4OmludCBueHB3aWZpX3JldF90d3RfY2ZnKHN0cnVjdCBueHB3aWZpX3ByaXZhdGUgKnByaXYsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jLTU3OS1cXHRcXHRcXHRzdHJ1Y3QgaG9zdF9jbWRfZHNfY29tbWFuZCAqcmVzcCxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmM6NTgwOlxcdFxcdFxcdHN0cnVjdCBueHB3aWZpX3R3dF9jZmcgKnR3dF9jZmcpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jLTU4MS17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmMtNTg5LVxcdCAgICB0d3RfY2ZnLVxcdTAwM2VzdWJfaWQgPT0gTlhQV0lGSV8xMUFYX1RXVF9SRVBPUlRfU1VCSUQpIHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmM6NTkwOlxcdFxcdHN0cnVjdCBueHB3aWZpX3R3dF9yZXBvcnQgKnR3dF9yZXBvcnQgPVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYzo1OTE6XFx0XFx0XFx0KHN0cnVjdCBueHB3aWZpX3R3dF9yZXBvcnQgKil0d3RfY2ZnX2NtZC1cXHUwMDNldmFsO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYy01OTItXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jOjU5MzpcXHRcXHRtZW1jcHkoXFx1MDAyNnR3dF9jZmctXFx1MDAzZXBhcmFtLnR3dF9yZXBvcnQsIHR3dF9yZXBvcnQsIHNpemVvZihzdHJ1Y3Qgbnhwd2lmaV90d3RfcmVwb3J0KSk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jLTU5NC1cXHR9XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmgtMi0vKlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguaDozOiAqIG54cHdpZmk6IDgwMi4xMWF4IHN1cHBvcnRcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmgtNC0gKlxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5oPTE3PXN0YXRpYyBpbmxpbmUgdTE2XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5oOjE4Om54cHdpZmlfZ2V0X2hlX25zc19tY3MoX19sZTE2IG1jc19tYXBfc2V0LCBpbnQgbnNzKSB7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5oLTE5LVxcdHJldHVybiAoKGxlMTZfdG9fY3B1KG1jc19tYXBfc2V0KSBcXHUwMDNlXFx1MDAzZSAoMiAqIChuc3MgLSAxKSkpIFxcdTAwMjYgMHgzKTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguaD0yMj1zdGF0aWMgaW5saW5lIHZvaWRcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4Lmg6MjM6bnhwd2lmaV9zZXRfaGVfbnNzX21jcyhfX2xlMTYgKm1jc19tYXBfc2V0LCBpbnQgbnNzLCBpbnQgdmFsdWUpIHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmgtMjQtXFx0dTE2IHRlbXA7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmgtMzAtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5oOjMxOmJvb2wgbnhwd2lmaV9pc18xMWF4X3R3dF9zdXBwb3J0ZWQoc3RydWN0IG54cHdpZmlfcHJpdmF0ZSAqcHJpdixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4Lmg6MzI6XFx0XFx0XFx0XFx0ICAgc3RydWN0ICBueHB3aWZpX2Jzc2Rlc2NyaXB0b3IgKmJzc19kZXNjKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmgtMzMtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5oOjM0OnZvaWQgbnhwd2lmaV91cGRhdGVfMTFheF9jYXAoc3RydWN0IG54cHdpZmlfYWRhcHRlciAqYWRhcHRlcixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmgtMzUtXFx0XFx0XFx0ICAgICBzdHJ1Y3QgaHdfc3BlY19leHRlbnNpb24gKmh3X2hlX2NhcCk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5oLTM2LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguaDozNzpib29sIG54cHdpZmlfMTFheF9iYW5kY29uZmlnX2FsbG93ZWQoc3RydWN0IG54cHdpZmlfcHJpdmF0ZSAqcHJpdixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4Lmg6Mzg6XFx0XFx0XFx0XFx0ICAgICBzdHJ1Y3Qgbnhwd2lmaV9ic3NkZXNjcmlwdG9yICpic3NfZGVzYyk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5oLTM5LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguaDo0MDppbnQgbnhwd2lmaV9jbWRfYXBwZW5kXzExYXhfdGx2KHN0cnVjdCBueHB3aWZpX3ByaXZhdGUgKnByaXYsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5oOjQxOlxcdFxcdFxcdFxcdHN0cnVjdCBueHB3aWZpX2Jzc2Rlc2NyaXB0b3IgKmJzc19kZXNjLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguaC00Mi1cXHRcXHRcXHRcXHR1OCAqKmJ1ZmZlcik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5oLTQzLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguaDo0NDppbnQgbnhwd2lmaV9maWxsX2hlX2NhcF90bHYoc3RydWN0IG54cHdpZmlfcHJpdmF0ZSAqcHJpdixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4Lmg6NDU6XFx0XFx0XFx0ICAgIHN0cnVjdCBueHB3aWZpX2llX3R5cGVzX2hlX2NhcCAqaGVfY2FwLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguaC00Ni1cXHRcXHRcXHQgICAgdTE2IGJhbmRzKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4Lmg6NDc6aW50IG54cHdpZmlfY21kXzExYXhfY2ZnKHN0cnVjdCBueHB3aWZpX3ByaXZhdGUgKnByaXYsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5oLTQ4LVxcdFxcdFxcdCBzdHJ1Y3QgaG9zdF9jbWRfZHNfY29tbWFuZCAqY21kLCB1MTYgY21kX2FjdGlvbixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4Lmg6NDk6XFx0XFx0XFx0IHN0cnVjdCBueHB3aWZpXzExYXhfaGVfY2ZnICpheF9jZmcpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguaC01MC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4Lmg6NTE6aW50IG54cHdpZmlfcmV0XzExYXhfY2ZnKHN0cnVjdCBueHB3aWZpX3ByaXZhdGUgKnByaXYsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5oLTUyLVxcdFxcdFxcdCBzdHJ1Y3QgaG9zdF9jbWRfZHNfY29tbWFuZCAqcmVzcCxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4Lmg6NTM6XFx0XFx0XFx0IHN0cnVjdCBueHB3aWZpXzExYXhfaGVfY2ZnICpheF9jZmcpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguaC01NC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4Lmg6NTU6aW50IG54cHdpZmlfY21kXzExYXhfY21kKHN0cnVjdCBueHB3aWZpX3ByaXZhdGUgKnByaXYsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5oLTU2LVxcdFxcdFxcdCBzdHJ1Y3QgaG9zdF9jbWRfZHNfY29tbWFuZCAqY21kLCB1MTYgY21kX2FjdGlvbixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4Lmg6NTc6XFx0XFx0XFx0IHN0cnVjdCBueHB3aWZpXzExYXhfY21kX2NmZyAqYXhfY21kKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmgtNTgtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5oOjU5OmludCBueHB3aWZpX3JldF8xMWF4X2NtZChzdHJ1Y3Qgbnhwd2lmaV9wcml2YXRlICpwcml2LFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguaC02MC1cXHRcXHRcXHQgc3RydWN0IGhvc3RfY21kX2RzX2NvbW1hbmQgKnJlc3AsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5oOjYxOlxcdFxcdFxcdCBzdHJ1Y3Qgbnhwd2lmaV8xMWF4X2NtZF9jZmcgKmF4X2NtZCk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5oLTYyLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguaDo2MzppbnQgbnhwd2lmaV9jbWRfdHd0X2NmZyhzdHJ1Y3Qgbnhwd2lmaV9wcml2YXRlICpwcml2LFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguaC02NC1cXHRcXHRcXHRzdHJ1Y3QgaG9zdF9jbWRfZHNfY29tbWFuZCAqY21kLCB1MTYgY21kX2FjdGlvbixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4Lmg6NjU6XFx0XFx0XFx0c3RydWN0IG54cHdpZmlfdHd0X2NmZyAqdHd0X2NmZyk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5oLTY2LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguaDo2NzppbnQgbnhwd2lmaV9yZXRfdHd0X2NmZyhzdHJ1Y3Qgbnhwd2lmaV9wcml2YXRlICpwcml2LFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguaC02OC1cXHRcXHRcXHRzdHJ1Y3QgaG9zdF9jbWRfZHNfY29tbWFuZCAqcmVzcCxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4Lmg6Njk6XFx0XFx0XFx0c3RydWN0IG54cHdpZmlfdHd0X2NmZyAqdHd0X2NmZyk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5oLTcwLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguaDo3MTp1OCBueHB3aWZpX2lzX3N0YV8xMWF4X3R3dF9yZXFfc3VwcG9ydGVkKHN0cnVjdCBueHB3aWZpX3ByaXZhdGUgKnByaXYpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguaC03Mi1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExaC5jLTItLypcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWguYzozOiAqIG54cHdpZmk6IDgwMi4xMWggaGVscGVyc1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExaC5jLTQtICpcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExaC5jLTEyLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExaC5jOjEzOnZvaWQgbnhwd2lmaV9pbml0XzExaF9wYXJhbXMoc3RydWN0IG54cHdpZmlfcHJpdmF0ZSAqcHJpdilcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWguYy0xNC17XFxuXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTI1VDIzOjQyOjMxLjAxNzE4NDEzN1oiLCJTZXEiOjUsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjMzODAyNDkwMjMsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IkhlcmUncyBteSB0YWtlIG9uIHRoZSB0aG91Z2h0IHByb2Nlc3M6XG5cbioqRGl2aW5nIGludG8gdGhlIG54cHdpZmkgRHJpdmVyKipcblxuT2theSwgc28gd2UncmUgZGVhbGluZyB3aXRoIHRoZSBgbnhwd2lmaWAgZHJpdmVyLiBNeSBmaXJzdCBpbnN0aW5jdCwgYXMgYWx3YXlzLCBpcyB0byB1bmRlcnN0YW5kIGl0cyBkZXBlbmRlbmNpZXMuIFRpbWUgdG8gZGlnIGludG8gdGhlIGhlYXJ0IG9mIHRoZSBtYXR0ZXIg4oCTIHRoZSBgS2NvbmZpZ2AgZmlsZS4gU3BlY2lmaWNhbGx5LCBJJ2xsIGJlIGhlYWRpbmcgc3RyYWlnaHQgdG8gYGRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpL0tjb25maWdgLiBUaGlzIGlzIHdoZXJlIHRoZSBjb25maWd1cmF0aW9uIGxvZ2ljIGxpdmVzLCBhbmQgd2hlcmUgSSBjYW4gcXVpY2tseSBkZWNpcGhlciB3aGF0IG90aGVyIGNvbXBvbmVudHMgb3IgZmVhdHVyZXMgdGhpcyBkcml2ZXIgcmVsaWVzIHVwb24uIFVuZGVyc3RhbmRpbmcgaXRzIGRlcGVuZGVuY2llcyBpcyBjcnVjaWFsIGZvciBhbnkgbW9kaWZpY2F0aW9ucyBvciBkZWVwZXIgYW5hbHlzaXMuIFRoaXMgZmlsZSB3aWxsIHRlbGwgbWUgZXZlcnl0aGluZyBJIG5lZWQgdG8ga25vdyBhYm91dCB0aGUgcHJlcmVxdWlzaXRlcyBmb3IgYnVpbGRpbmcgYW5kIHJ1bm5pbmcgdGhpcyBkcml2ZXIuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjE5MzcxLCJPdXRwdXRUb2tlbnMiOjM3LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MzQsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDgtMjVUMjM6NDI6MzQuMzk3NDM2OTMxWiIsIlNlcSI6NiwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjQ4MjEyNjY3LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcImRlcGVuZHMgb25cIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvS2NvbmZpZ1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJkcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS9LY29uZmlnPTI9Y29uZmlnIE5YUFdJRklcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS9LY29uZmlnLTMtXFx0dHJpc3RhdGUgXFxcIk5YUCBXaUZpIERyaXZlclxcXCIgaWYgQ09NUElMRV9URVNUXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvS2NvbmZpZzo0OlxcdGRlcGVuZHMgb24gQ0ZHODAyMTFcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS9LY29uZmlnLTUtXFx0aGVscFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvS2NvbmZpZz0xMj1jb25maWcgTlhQV0lGSV9TRElPXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvS2NvbmZpZy0xMy1cXHR0cmlzdGF0ZSBcXFwiTlhQIFdpRmkgRHJpdmVyIGZvciBJVzYxeFxcXCJcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS9LY29uZmlnOjE0OlxcdGRlcGVuZHMgb24gQ0ZHODAyMTEgXFx1MDAyNlxcdTAwMjYgTU1DXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvS2NvbmZpZy0xNS1cXHRzZWxlY3QgTlhQV0lGSVxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0yNVQyMzo0MjozNC40NDU2NzQ3MzlaIiwiU2VxIjo3LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo0MzE5MDM4NzYzLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJIZXJlJ3MgbXkgc3VtbWFyeSwgYXMgdGhlIGV4cGVydDpcblxuKipJbnZlc3RpZ2F0aW5nIHRoZSBOWFAgV2lGaSBEcml2ZXIgQ29uZmlndXJhdGlvbioqXG5cbk9rYXksIHNvIEkgc2VlIHRoaXMgYE5YUFdJRklfU0RJT2Agb3B0aW9uLCBhbmQgaXQncyBmbGFnZ2VkIGFzIGRlcGVuZGVudCBvbiBgQ0ZHODAyMTFgIGFuZCB0aGUgYE1NQ2AgZHJpdmVyLiBUaGF0IG1ha2VzIHNlbnNlLCBhc3N1bWluZyB0aGlzIGlzIGFuIFNESU8tYmFzZWQgaW1wbGVtZW50YXRpb24uIE15IGltbWVkaWF0ZSBxdWVzdGlvbiBpcywgXCJBcmUgdGhlcmUgUENJZSBvciBVU0IgdmFyaWFudHMgb2YgdGhpcyBkcml2ZXI/XCIgV2UgbmVlZCB0byBmaWd1cmUgdGhhdCBvdXQgYmVjYXVzZSB0aG9zZSBpbnRlcmZhY2VzIGFyZSBvZnRlbiBtb3JlIHBlcmZvcm1hbnQgYW5kIGZsZXhpYmxlLiBJJ2xsIG5lZWQgdG8gZGlnIGRlZXBlciBpbnRvIHRoaXMgYEtjb25maWdgIGZpbGUgKGBkcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS9LY29uZmlnYCkgYW5kIHNlZSBpZiB0aGVyZSBhcmUgb3RoZXIgZGV2aWNlIG9wdGlvbnMgZGVmaW5lZC4gVGhpcyBjb25maWd1cmF0aW9uIGlzIHRoZSBrZXkgdG8gdW5kZXJzdGFuZGluZyBhbGwgc3VwcG9ydGVkIGhhcmR3YXJlLlxuXG5cbiIsIklucHV0VG9rZW5zIjoxOTgzMywiT3V0cHV0VG9rZW5zIjo0MiwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjU3LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTI1VDIzOjQyOjM4Ljc2NDcxNjI1MloiLCJTZXEiOjgsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6InJlYWQtZmlsZSIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjc4MzYwLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRmlsZVwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpL0tjb25maWdcIixcbiAgXCJGaXJzdExpbmVcIjogMSxcbiAgXCJMaW5lQ291bnRcIjogMTAwXG59IiwiUmVzdWx0cyI6IntcbiAgXCJDb250ZW50c1wiOiBcIiAgIDE6XFx0IyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMC1vbmx5XFxuICAgMjpcXHRjb25maWcgTlhQV0lGSVxcbiAgIDM6XFx0XFx0dHJpc3RhdGUgXFxcIk5YUCBXaUZpIERyaXZlclxcXCIgaWYgQ09NUElMRV9URVNUXFxuICAgNDpcXHRcXHRkZXBlbmRzIG9uIENGRzgwMjExXFxuICAgNTpcXHRcXHRoZWxwXFxuICAgNjpcXHRcXHQgIFRoaXMgYWRkcyBzdXBwb3J0IGZvciB3aXJlbGVzcyBhZGFwdGVycyBiYXNlZCBvbiBOWFBcXG4gICA3OlxcdFxcdCAgODAyLjExbi9hYyBjaGlwc2V0cy5cXG4gICA4OlxcdFxcbiAgIDk6XFx0XFx0ICBJZiB5b3UgY2hvb3NlIHRvIGJ1aWxkIGl0IGFzIGEgbW9kdWxlLCBpdCB3aWxsIGJlIGNhbGxlZFxcbiAgMTA6XFx0XFx0ICBueHB3aWZpLlxcbiAgMTE6XFx0XFxuICAxMjpcXHRjb25maWcgTlhQV0lGSV9TRElPXFxuICAxMzpcXHRcXHR0cmlzdGF0ZSBcXFwiTlhQIFdpRmkgRHJpdmVyIGZvciBJVzYxeFxcXCJcXG4gIDE0OlxcdFxcdGRlcGVuZHMgb24gQ0ZHODAyMTEgXFx1MDAyNlxcdTAwMjYgTU1DXFxuICAxNTpcXHRcXHRzZWxlY3QgTlhQV0lGSVxcbiAgMTY6XFx0XFx0c2VsZWN0IEZXX0xPQURFUlxcbiAgMTc6XFx0XFx0c2VsZWN0IFdBTlRfREVWX0NPUkVEVU1QXFxuICAxODpcXHRcXHRoZWxwXFxuICAxOTpcXHRcXHQgIFRoaXMgYWRkcyBzdXBwb3J0IGZvciB3aXJlbGVzcyBhZGFwdGVycyBiYXNlZCBvbiBOWFBcXG4gIDIwOlxcdFxcdCAgSVc2MXggaW50ZXJmYWNlLlxcbiAgMjE6XFx0XFxuICAyMjpcXHRcXHQgIElmIHlvdSBjaG9vc2UgdG8gYnVpbGQgaXQgYXMgYSBtb2R1bGUsIGl0IHdpbGwgYmUgY2FsbGVkXFxuICAyMzpcXHRcXHQgIG54cHdpZmlfc2Rpby5cXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMjVUMjM6NDI6MzguNzY0Nzk2MTcyWiIsIlNlcSI6OSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6MzQ3NzYwNTA4OCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipJbml0aWFsIEFzc2Vzc21lbnQgXHUwMDI2IEltbWVkaWF0ZSBBY3Rpb24qKlxuXG5Pa2F5LCBzbyBJJ20gbG9va2luZyBhdCB0aGlzIGFuZCBpdCdzIGZsYWdnZWQgYXMgb25seSBoYXZpbmcgYE5YUFdJRklfU0RJT2AuIFJpZ2h0IGF3YXksIG15IGFsYXJtIGJlbGxzIGFyZSByaW5naW5nIGEgbGl0dGxlLiBTRElPIGRldmljZXMgYXJlbid0IHVzdWFsbHkgYSBnb29kIHRhcmdldCBmb3IgZnV6emluZyBpbiBhIHN0YW5kYXJkIFFFTVUgb3IgR0NFIGVudmlyb25tZW50LiBUaGV5J3JlIG9mdGVuIHRyaWNreSB0byBlbXVsYXRlIHJlbGlhYmx5IGFuZCBJIG5lZWQgdG8gY29uc2lkZXIgdGhhdC4gQmVmb3JlIEkgZ2V0IHRvbyBmYXIgZG93biB0aGlzIHJvYWQsIEknbSBnb2luZyB0byBxdWlja2x5IHNjYW4gZm9yIGFueSBvdGhlciBwb3RlbnRpYWwgaW50ZXJmYWNlcyBvciBlbnRyeSBwb2ludHMgdGhhdCBtaWdodCBiZSBwcmVzZW50LiBJIG5lZWQgdG8gbWFrZSBzdXJlIEknbSBub3QgbWlzc2luZyBzb21ldGhpbmcgb2J2aW91cyBiZWZvcmUgSSBoYXZlIHRvIGFkanVzdCBteSBmdXp6aW5nIGFwcHJvYWNoLlxuXG5cbiIsIklucHV0VG9rZW5zIjoyMDQxMywiT3V0cHV0VG9rZW5zIjozMSwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjQ2LCJUb29sQ2FsbHMiOlsicmVhZC1maWxlIl19LHsiU3RhcnRlZCI6IjIwMjYtMDgtMjVUMjM6NDI6NDIuMjQyNDA0NTVaIiwiU2VxIjoxMCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiY29kZXNlYXJjaC1kaXItaW5kZXgiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo4NjQwOSwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkRpclwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpL1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJGaWxlc1wiOiBbXG4gICAgXCIxMWFjLmNcIixcbiAgICBcIjExYWMuaFwiLFxuICAgIFwiMTFheC5jXCIsXG4gICAgXCIxMWF4LmhcIixcbiAgICBcIjExaC5jXCIsXG4gICAgXCIxMW4uY1wiLFxuICAgIFwiMTFuLmhcIixcbiAgICBcIjExbl9hZ2dyLmNcIixcbiAgICBcIjExbl9hZ2dyLmhcIixcbiAgICBcIjExbl9yeHJlb3JkZXIuY1wiLFxuICAgIFwiMTFuX3J4cmVvcmRlci5oXCIsXG4gICAgXCJjZmcuaFwiLFxuICAgIFwiY2ZnODAyMTEuY1wiLFxuICAgIFwiY2ZnODAyMTEuaFwiLFxuICAgIFwiY2ZwLmNcIixcbiAgICBcImNtZGV2dC5jXCIsXG4gICAgXCJjbWRldnQuaFwiLFxuICAgIFwiZGVidWdmcy5jXCIsXG4gICAgXCJldGh0b29sLmNcIixcbiAgICBcImZ3LmhcIixcbiAgICBcImllLmNcIixcbiAgICBcImluaXQuY1wiLFxuICAgIFwiam9pbi5jXCIsXG4gICAgXCJtYWluLmNcIixcbiAgICBcIm1haW4uaFwiLFxuICAgIFwic2Nhbi5jXCIsXG4gICAgXCJzZGlvLmNcIixcbiAgICBcInNkaW8uaFwiLFxuICAgIFwic3RhX2NmZy5jXCIsXG4gICAgXCJzdGFfY21kLmNcIixcbiAgICBcInN0YV9ldmVudC5jXCIsXG4gICAgXCJzdGFfcnguY1wiLFxuICAgIFwic3RhX3R4LmNcIixcbiAgICBcInR4cnguY1wiLFxuICAgIFwidWFwX2NtZC5jXCIsXG4gICAgXCJ1YXBfZXZlbnQuY1wiLFxuICAgIFwidWFwX3R4cnguY1wiLFxuICAgIFwidXRpbC5jXCIsXG4gICAgXCJ1dGlsLmhcIixcbiAgICBcIndtbS5jXCIsXG4gICAgXCJ3bW0uaFwiXG4gIF0sXG4gIFwiU3ViZGlyc1wiOiBudWxsXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0yNVQyMzo0Mjo0Mi4yNDI0OTM0ODFaIiwiU2VxIjoxMSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NjMxNTgzODU1NiwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipTRElPIERyaXZlciBBbmFseXNpcyBmb3IgRnV6emluZyBQb3RlbnRpYWwqKlxuXG5Pa2F5LCBzbyBJJ20gbG9va2luZyBhdCB0aGlzIGNvZGUgYW5kIGltbWVkaWF0ZWx5IHNlZSBgc2Rpby5jYCBhbmQgYHNkaW8uaGAg4oCTIHRoYXQncyBhIGtleSBpbmRpY2F0b3IuIE5vIGB1c2IuY2Agb3IgYHBjaWUuY2AgaW4gc2lnaHQsIHdoaWNoIGNsYXJpZmllcyB0aGUgdGFyZ2V0LiBUaGlzIHBvaW50cyBkaXJlY3RseSB0byBhbiBTRElPIGltcGxlbWVudGF0aW9uLCBuZWVkaW5nIGEgcmVhbCBTRElPIGhvc3QgY29udHJvbGxlciBhbmQgYSBwaHlzaWNhbCBTRElPIGNhcmQgdG8gZnVuY3Rpb24uXG5cbk15IGluaXRpYWwgdGhvdWdodCB3YXMsIFwiQ2FuIEkgbGV2ZXJhZ2UgYG1hYzgwMjExX2h3c2ltYCBmb3IgZnV6emluZyB0aGlzP1wiIE5vLCB0aGF0J3MgYSBkZWFkIGVuZC4gYG1hYzgwMjExX2h3c2ltYCBpcyBhbGwgYWJvdXQgc2ltdWxhdGluZyBtYWM4MDIxMSBkZXZpY2VzLCB3aGljaCBpc24ndCB0aGUgc2FtZS4gQW5kIGxvb2tpbmcgYXQgdGhpcyBgbnhwd2lmaWAgZHJpdmVyLCBpdCB1c2VzIGBjZmc4MDIxMWAgZGlyZWN0bHkg4oCTIGl0J3MgYSBGdWxsTUFDLCBub3QgYSBtYWM4MDIxMSBkcml2ZXIuXG5cblRoZSBtaWxsaW9uLWRvbGxhciBxdWVzdGlvbiBub3cgaXMsIGNhbiBJIGdldCBTRElPIGRldmljZXMgZW11bGF0ZWQgdW5kZXIgUUVNVT8gVGhhdCdzIHRoZSByZWFsIGNoYWxsZW5nZS4gSSBrbm93IFNESU8gZGV2aWNlcyBhcmVuJ3QgdHlwaWNhbGx5IGZ1enplZCBiZWNhdXNlIHRoZXJlJ3Mgbm8gc29saWQgZ2VuZXJpYyBTRElPIGVtdWxhdGlvbiBmcmFtZXdvcmsgaW4gc3l6a2FsbGVyLiBUaGF0J3MgYSBodWdlIGJsb2NrZXIuXG5cbkFscmlnaHQsIGxldCdzIHRha2UgYSBzdGVwIGJhY2sgYW5kIG1ha2Ugc3VyZSBJJ20gbm90IG1pc3NpbmcgYW55dGhpbmcuIEkgbmVlZCB0byBmaWd1cmUgb3V0ICpob3cqIHRoaXMgY29kZSBpcyBhY3R1YWxseSByZWFjaGVkLiBUaGUgZHJpdmVyIHJlZ2lzdGVycyBpdHNlbGYgd2l0aCBgc2Rpb19yZWdpc3Rlcl9kcml2ZXIoXHUwMDI2bnhwd2lmaV9zZGlvKWAuIFJpZ2h0LCB0aGF0J3MgdGhlIGVudHJ5IHBvaW50LiBUaW1lIHRvIGRpdmUgaW50byBgc2Rpby5jYCBhbmQgdHJhY2UgdGhlIGV4ZWN1dGlvbiBwYXRoLlxuXG5cbiIsIklucHV0VG9rZW5zIjoyMDk2MiwiT3V0cHV0VG9rZW5zIjo0MywiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjIxNywiVG9vbENhbGxzIjpbImNvZGVzZWFyY2gtZGlyLWluZGV4Il19LHsiU3RhcnRlZCI6IjIwMjYtMDgtMjVUMjM6NDI6NDguNTU4MzM0Njg2WiIsIlNlcSI6MTIsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo1MzU4MTIwOCwiRXJyb3IiOiJubyBtYXRjaGVzIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwic2Rpb19yZWdpc3Rlcl9kcml2ZXJcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvc2Rpby5jXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcImVycm9yXCI6IFwibm8gbWF0Y2hlc1wiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0yNVQyMzo0Mjo0OC42MTE5MjIzMDRaIiwiU2VxIjoxMywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NDY0MjYyNjMwOCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiT2theSwgSSdtIHJlYWR5IHRvIHN1bW1hcml6ZSBteSBcInRob3VnaHRzXCIgaW4gdGhlIGZpcnN0IHBlcnNvbiwgYXNzdW1pbmcgYSBoaWdoIGxldmVsIG9mIGV4cGVydGlzZS4gSGVyZSB3ZSBnbzpcblxuKipBc3Nlc3NpbmcgdGhlIFN5c3RlbSdzIFJlc3BvbnNlKipcblxuQWxyaWdodCwgSSdtIGF0IGEgY3JpdGljYWwganVuY3R1cmUuIE15IGluaXRpYWwgYXNzZXNzbWVudCBpcyBjb21wbGV0ZSwgYW5kIG5vdyBpdCdzIHRpbWUgdG8gdmVyaWZ5IGhvdyB0aGUgc3lzdGVtIGlzIHJlZ2lzdGVyaW5nIHRoZSBpbnB1dC4gSSBuZWVkIHRvIG9ic2VydmUgaXRzIGltbWVkaWF0ZSByZXNwb25zZSB0byBjb25maXJtIGl0cyB1bmRlcnN0YW5kaW5nIG9mIHRoZSBjb250ZXh0LCB0aGUgY29yZSBjb25jZXB0cywgYW5kIHRoZSBudWFuY2VzIG9mIHRoZSBpbnN0cnVjdGlvbnMuIElzIGl0IGludGVycHJldGluZyB0aGUgZGF0YSBhcyBleHBlY3RlZD8gQXJlIHRoZSBmbGFncyBhbmQgcGFyYW1ldGVycyBmdW5jdGlvbmluZyBjb3JyZWN0bHk/IFRoaXMgaXNuJ3QganVzdCBhIG1hdHRlciBvZiBiYXNpYyBmdW5jdGlvbmFsaXR5OyBJJ20gbG9va2luZyBmb3IgZXZpZGVuY2Ugb2YgcHJvcGVyIHByb2Nlc3NpbmcsIG51YW5jZWQgdW5kZXJzdGFuZGluZywgYW5kIHRoYXQgdGhlIGFyY2hpdGVjdHVyZSBpcyByZXNwb25kaW5nIGFjY29yZGluZyB0byBzcGVjaWZpY2F0aW9ucy4gVGhlIHByaW1hcnkgZ29hbCBpcyBjb25maXJtYXRpb24gb2YgcHJvcGVyIGltcGxlbWVudGF0aW9uIG9mIHRoZSBkZXNpZ24uXG5cblxuIiwiSW5wdXRUb2tlbnMiOjIxNTc4LCJPdXRwdXRUb2tlbnMiOjM2LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6OCwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wOC0yNVQyMzo0Mjo1My4yNTQ1NTIxNTJaIiwiU2VxIjoxNCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjQ3OTM3NjU4LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcIm1vZHVsZV9pbml0XCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpL1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJkcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS9tYWluLmM9MTY2MD1ueHB3aWZpX2NsZWFudXBfbW9kdWxlKHZvaWQpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS9tYWluLmMtMTY2Ni1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS9tYWluLmM6MTY2Nzptb2R1bGVfaW5pdChueHB3aWZpX2luaXRfbW9kdWxlKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS9tYWluLmMtMTY2OC1tb2R1bGVfZXhpdChueHB3aWZpX2NsZWFudXBfbW9kdWxlKTtcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMjVUMjM6NDI6NTMuMzAyNDk1NDVaIiwiU2VxIjoxNSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6Mzg4Njk0OTU1MSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiSGVyZSdzIG15IGF0dGVtcHQgYXQgc3VtbWFyaXppbmcgdGhlIHRob3VnaHQgcHJvY2VzcywgdGFpbG9yZWQgZm9yIGFuIGV4cGVydCBhdWRpZW5jZSBhbmQgd3JpdHRlbiBpbiB0aGUgZmlyc3QgcGVyc29uOlxuXG4qKkRpdmluZyBpbnRvIGBueHB3aWZpX2luaXRfbW9kdWxlYCoqXG5cbk9rYXksIHRpbWUgdG8gZGlnIGluLiBMZXQncyBzdGFydCB3aXRoIGEgdGhvcm91Z2ggZXhhbWluYXRpb24gb2YgYG54cHdpZmlfaW5pdF9tb2R1bGVgLiBJIG5lZWQgdG8gdW5kZXJzdGFuZCBpdHMgcm9sZSB3aXRoaW4gdGhlIGJyb2FkZXIgV2lGaSBkcml2ZXIgYXJjaGl0ZWN0dXJlLiBNeSBpbml0aWFsIGdvYWwgaXMgdG8gcXVpY2tseSBncmFzcCB0aGUgbW9kdWxlJ3MgcHJpbWFyeSByZXNwb25zaWJpbGl0aWVzOiBpbml0aWFsaXphdGlvbiwgcmVzb3VyY2UgYWxsb2NhdGlvbiwgcmVnaXN0cmF0aW9uIHdpdGggdGhlIGtlcm5lbCwgYW5kIHRoZSBvdmVyYWxsIHNldHVwIG9mIHRoZSBXaUZpIGhhcmR3YXJlIGludGVyZmFjZS4gSSdsbCBiZSBsb29raW5nIHNwZWNpZmljYWxseSBmb3IgYW55IG9idmlvdXMgcmVkIGZsYWdzOiBwb3RlbnRpYWwgcmFjZSBjb25kaXRpb25zLCBpbmNvcnJlY3QgZXJyb3IgaGFuZGxpbmcsIG1lbW9yeSBsZWFrcywgb3IgbWlzY29uZmlndXJhdGlvbnMgdGhhdCBjb3VsZCBjYXVzZSBpbnN0YWJpbGl0eSBvciBzZWN1cml0eSB2dWxuZXJhYmlsaXRpZXMuIE15IHllYXJzIG9mIGV4cGVyaWVuY2UgdGVsbCBtZSB0aGUgZGV2aWwgaXMgaW4gdGhlIGRldGFpbHMgaGVyZSwgc28gSSdsbCBiZSBwYXlpbmcgY2xvc2UgYXR0ZW50aW9uIHRvIGFueSBzdWJ0bGUgbnVhbmNlcyBpbiB0aGUgbG9naWMgZmxvdywgbGlrZSB0aGUgc2VxdWVuY2Ugb2YgZnVuY3Rpb24gY2FsbHMgYW5kIGhvdyBpdCBpbnRlcmFjdHMgd2l0aCB0aGUgdW5kZXJseWluZyBoYXJkd2FyZSByZWdpc3RlcnMuIEknbSBhbHNvIGtlZW4gdG8gc2VlIGhvdyBpdCBoYW5kbGVzIHBvd2VyIG1hbmFnZW1lbnQgYW5kIGludGVycnVwdCBzZXR1cCAtIHRoYXQncyBvZnRlbiBhIHNvdXJjZSBvZiB0cmlja3kgYnVncy5cblxuXG4iLCJJbnB1dFRva2VucyI6MjE5MjIsIk91dHB1dFRva2VucyI6NDMsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoxMywiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wOC0yNVQyMzo0Mjo1Ny4xODk0NDgxMDFaIiwiU2VxIjoxNiwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjQ2MTE3NzU4LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcIm54cHdpZmlfaW5pdF9tb2R1bGVcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvbWFpbi5jXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpL21haW4uYz0xNjQ5PXN0YXRpYyBpbnRcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS9tYWluLmM6MTY1MDpueHB3aWZpX2luaXRfbW9kdWxlKHZvaWQpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvbWFpbi5jLTE2NTEte1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvbWFpbi5jPTE2NjA9bnhwd2lmaV9jbGVhbnVwX21vZHVsZSh2b2lkKVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvbWFpbi5jLTE2NjYtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvbWFpbi5jOjE2Njc6bW9kdWxlX2luaXQobnhwd2lmaV9pbml0X21vZHVsZSk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvbWFpbi5jLTE2NjgtbW9kdWxlX2V4aXQobnhwd2lmaV9jbGVhbnVwX21vZHVsZSk7XFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTI1VDIzOjQyOjU3LjIzNTU3MDc1OVoiLCJTZXEiOjE3LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjozNzMyMDI1MTA4LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJPa2F5LCBsZXQncyBkaXZlIGludG8gYG54cHdpZmlfaW5pdF9tb2R1bGVgLiBJIG5lZWQgdG8gZ2V0IGEgY2xlYXIgdW5kZXJzdGFuZGluZyBvZiB0aGlzIGluaXRpYWxpemF0aW9uIG1vZHVsZS4gV2hhdCdzIGl0cyBwdXJwb3NlIHdpdGhpbiB0aGUgYnJvYWRlciBXaS1GaSBzdGFjaz8gSSdtIGFscmVhZHkgYW50aWNpcGF0aW5nIHNvbWUgb2YgdGhlIGtleSBhcmVhcyBJJ2xsIG5lZWQgdG8gZm9jdXMgb246IHRoZSBvdmVyYWxsIHN0cnVjdHVyZSwgZGVwZW5kZW5jaWVzIG9uIG90aGVyIG1vZHVsZXMsIGFueSByZXNvdXJjZSBhbGxvY2F0aW9uLCBhbmQsIGNyaXRpY2FsbHksIGVycm9yIGhhbmRsaW5nLiBJJ20gZ29pbmcgdG8gcGF5IGNsb3NlIGF0dGVudGlvbiB0byB0aGUgb3JkZXIgb2Ygb3BlcmF0aW9ucywgbG9va2luZyBmb3IgYW55IHBvdGVudGlhbCByYWNlIGNvbmRpdGlvbnMgb3Igc2VxdWVuY2luZyBpc3N1ZXMgdGhhdCBtaWdodCBiaXRlIG1lIGxhdGVyLiBJIG5lZWQgdG8gdW5kZXJzdGFuZCBob3cgaXQncyBpbnRlZ3JhdGVkIHdpdGggdGhlIGtlcm5lbCBhbmQgdXNlciBzcGFjZS4gRG9lcyBpdCBlc3RhYmxpc2ggYW55IGNyaXRpY2FsIGRhdGEgc3RydWN0dXJlcyB0aGF0IGFyZSBzaGFyZWQ/IEFyZSB0aGVyZSBhbnkgaW5pdGlhbCBjb25maWd1cmF0aW9uIHN0ZXBzIGl0IGhhbmRsZXM/IEknbGwgcHJvYmFibHkgYmUgaHVudGluZyBmb3IgdGhlIGNvcmUgZnVuY3Rpb25zIGFuZCB2YXJpYWJsZXMgdGhhdCBhcmUgZXhwb3NlZCBmb3Igb3RoZXIgbW9kdWxlcyB0byB1c2UsIGFuZCBJJ2xsIG5lZWQgdG8gbm90ZSB0aGUgbG9ja2luZyBtZWNoYW5pc21zIChtdXRleGVzLCBzcGlubG9ja3MsIGV0Yy4pIGl0IGVtcGxveXMgdG8gcHJvdGVjdCBzaGFyZWQgcmVzb3VyY2VzLiBBbnkgY2xldmVyIHRyaWNrcyBvciB1bnVzdWFsIGFwcHJvYWNoZXMgdG8gaW5pdGlhbGl6YXRpb24gd2lsbCBiZSB3b3J0aCBhIGRlZXAgbG9vay4gTXkgZXhwZXJ0aXNlIHRlbGxzIG1lIHRoYXQgYSBzb2xpZCB1bmRlcnN0YW5kaW5nIG9mIHRoaXMgaW5pdGlhbCBtb2R1bGUgaXMgZm91bmRhdGlvbmFsLiBXaXRob3V0IGl0LCBkZWJ1Z2dpbmcgYW55IFdpLUZpLXJlbGF0ZWQgaXNzdWVzIGRvd24gdGhlIGxpbmUgd2lsbCBiZSBhIG5pZ2h0bWFyZS4gUmlnaHQsIGxldCdzIHN0YXJ0IHJlYWRpbmchXG5cblxuIiwiSW5wdXRUb2tlbnMiOjIyNDIxLCJPdXRwdXRUb2tlbnMiOjQ1LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MTMsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDgtMjVUMjM6NDM6MDAuOTY3NTk4NTc3WiIsIlNlcSI6MTgsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6InJlYWQtZmlsZSIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjE4NjU4MCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkZpbGVcIjogXCJkcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS9tYWluLmNcIixcbiAgXCJGaXJzdExpbmVcIjogMTY0MCxcbiAgXCJMaW5lQ291bnRcIjogMzBcbn0iLCJSZXN1bHRzIjoie1xuICBcIkNvbnRlbnRzXCI6IFwiMTY0MDpcXHRcXHRcXHRkZXZfaW5mbyhhZGFwdGVyLVxcdTAwM2VkZXYsIFxcXCIlcFZcXFwiLCBcXHUwMDI2dmFmKTtcXG4xNjQxOlxcdFxcdGVsc2VcXG4xNjQyOlxcdFxcdFxcdHByX2luZm8oXFxcIiVwVlxcXCIsIFxcdTAwMjZ2YWYpO1xcbjE2NDM6XFx0XFxuMTY0NDpcXHRcXHR2YV9lbmQoYXJncyk7XFxuMTY0NTpcXHR9XFxuMTY0NjpcXHRFWFBPUlRfU1lNQk9MX0dQTChfbnhwd2lmaV9kYmcpO1xcbjE2NDc6XFx0XFxuMTY0ODpcXHQvKiBNb2R1bGUgaW5pdDogaW5pdCBkZWJ1Z2ZzIGlmIGVuYWJsZWQuICovXFxuMTY0OTpcXHRzdGF0aWMgaW50XFxuMTY1MDpcXHRueHB3aWZpX2luaXRfbW9kdWxlKHZvaWQpXFxuMTY1MTpcXHR7XFxuMTY1MjpcXHQjaWZkZWYgQ09ORklHX0RFQlVHX0ZTXFxuMTY1MzpcXHRcXHRueHB3aWZpX2RlYnVnZnNfaW5pdCgpO1xcbjE2NTQ6XFx0I2VuZGlmXFxuMTY1NTpcXHRcXHRyZXR1cm4gMDtcXG4xNjU2OlxcdH1cXG4xNjU3OlxcdFxcbjE2NTg6XFx0LyogTW9kdWxlIGV4aXQ6IHJlbW92ZSBkZWJ1Z2ZzIGlmIGVuYWJsZWQuICovXFxuMTY1OTpcXHRzdGF0aWMgdm9pZFxcbjE2NjA6XFx0bnhwd2lmaV9jbGVhbnVwX21vZHVsZSh2b2lkKVxcbjE2NjE6XFx0e1xcbjE2NjI6XFx0I2lmZGVmIENPTkZJR19ERUJVR19GU1xcbjE2NjM6XFx0XFx0bnhwd2lmaV9kZWJ1Z2ZzX3JlbW92ZSgpO1xcbjE2NjQ6XFx0I2VuZGlmXFxuMTY2NTpcXHR9XFxuMTY2NjpcXHRcXG4xNjY3OlxcdG1vZHVsZV9pbml0KG54cHdpZmlfaW5pdF9tb2R1bGUpO1xcbjE2Njg6XFx0bW9kdWxlX2V4aXQobnhwd2lmaV9jbGVhbnVwX21vZHVsZSk7XFxuMTY2OTpcXHRcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMjVUMjM6NDM6MDAuOTY3Nzg4MzM3WiIsIlNlcSI6MTksIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjQ3MTc1NzQ1NTUsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6Ik9rYXksIGhlcmUncyBteSBpbnRlcnByZXRhdGlvbiBvZiB0aG9zZSB0aG91Z2h0cywgdGFpbG9yZWQgZm9yIGFuIGV4cGVydCBhdWRpZW5jZSwgcHJlc2VudGVkIGluIHRoZSBmaXJzdCBwZXJzb246XG5cbioqTmF2aWdhdGluZyB0aGUgbnhwd2lmaSBMYW5kc2NhcGUqKlxuXG5SaWdodCwgc28gYG54cHdpZmlgIGlzIGNsZWFybHkgYSBoaWdoLWxldmVsIG1vZHVsZSwgbGlrZWx5IHByb3ZpZGluZyB0aGUgcHVibGljIEFQSSBhbmQgYWJzdHJhY3Rpb24gbGF5ZXIuIEJ1dCBJIG5lZWQgdG8gZGlnIGRlZXBlciB0byB1bmRlcnN0YW5kIHRoZSBhY3R1YWwgaGFyZHdhcmUgaW50ZXJhY3Rpb24uIFwiQWhhLFwiIEkgdGhpbmssIGBueHB3aWZpX3NkaW9gIHNvdW5kcyBsaWtlIHRoZSByZWFsIGRyaXZlciwgdGhlIG9uZSB0aGF0IGRvZXMgdGhlIGRpcnR5IHdvcmsuIFRoZXJlZm9yZSwgdG8gdW5kZXJzdGFuZCBpdHMgaW50ZXJuYWwgb3BlcmF0aW9uLCBJIG5lZWQgdG8gbG9vayBkaXJlY3RseSBhdCB0aGUgYHNkaW8uY2Agc291cmNlIGNvZGUuIEl0J3MgdGltZSB0byBkZWx2ZSBpbnRvIHRoZSBTRElPLXNwZWNpZmljIHJvdXRpbmVzLiBMZXQncyBzZWUgaG93IHRoZXkndmUgaGFuZGxlZCB0aGUgbG93LWxldmVsIGludGVyYWN0aW9ucyBhbmQgZGF0YSB0cmFuc2ZlcnMuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjIzMTExLCJPdXRwdXRUb2tlbnMiOjQwLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MzcsIlRvb2xDYWxscyI6WyJyZWFkLWZpbGUiXX0seyJTdGFydGVkIjoiMjAyNi0wOC0yNVQyMzo0MzowNS42ODUzNjYxMTFaIiwiU2VxIjoyMCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjUwMzEwNzk3LCJFcnJvciI6Im5vIG1hdGNoZXMiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJtb2R1bGVfaW5pdFwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJkcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS9zZGlvLmNcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiZXJyb3JcIjogXCJubyBtYXRjaGVzXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTI1VDIzOjQzOjA1LjczNTY4NTQ2OVoiLCJTZXEiOjIxLCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjozNDY2MzUzODY5LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJIZXJlJ3MgbXkgdGFrZSBvbiB0aG9zZSB0aG91Z2h0cywgdGFpbG9yZWQgZm9yIGFuIGV4cGVydCBhdWRpZW5jZTpcblxuKipEaXZpbmcgaW50byB0aGUgU0RJTyBEcml2ZXIgUmVnaXN0cmF0aW9uKipcblxuT2theSwgdGltZSB0byBnZXQgZ3JhbnVsYXIuIE15IGZvY3VzIGlzIG5hcnJvd2luZyBpbiBvbiB0aGUgYHNkaW9fcmVnaXN0ZXJfZHJpdmVyYCBmdW5jdGlvbiwgc3BlY2lmaWNhbGx5IHdpdGhpbiB0aGUgYHNkaW8uY2AgZmlsZS4gSSBuZWVkIHRvIHJlZnJlc2ggbXkgdW5kZXJzdGFuZGluZyBvZiBob3cgdGhpcyBwYXJ0aWN1bGFyIGRyaXZlciBob29rcyBpdHNlbGYgaW50byB0aGUgU0RJTyBzdWJzeXN0ZW0uIFdoYXQncyB0aGUgcmVnaXN0cmF0aW9uIHByb2Nlc3MgbG9vayBsaWtlLCB0b3AgdG8gYm90dG9tPyBJIG5lZWQgdG8gcXVpY2tseSByZWNhbGwgdGhlIGRhdGEgc3RydWN0dXJlcyBpbnZvbHZlZCwgdGhlIHNlcXVlbmNlIG9mIGV2ZW50cy4uLiB3aGF0IGFyZSB0aGUgY3JpdGljYWwgcG9pbnRzIG9mIGNvbnRlbnRpb24gb3IgcG90ZW50aWFsIHBpdGZhbGxzPyBJcyB0aGVyZSBhbnl0aGluZyBub24tc3RhbmRhcmQgaGVyZSB0aGF0IG1pZ2h0IGJlIHdvcnRoIHJldmlzaXRpbmcgb3IgdGVzdGluZz8gR290dGEgcXVpY2tseSBwdWxsIHVwIHRoZSBkZWZpbml0aW9uLCByZWZyZXNoIG15c2VsZiBvbiB0aGUgYXJndW1lbnRzLi4uIGFuZCB0aGVuLCB3aGF0IGFyZSB0aGUgcmVsYXRlZCBkYXRhIHN0cnVjdHVyZXM/IEdvdHRhIGxvb2sgaW50byB0aGUgY29udGV4dCBhbmQgaWYgdGhpcyBpcyBhIHBsYXRmb3JtLXNwZWNpZmljIGZ1bmN0aW9uIG9yIGFuIGVudHJ5IHBvaW50IGZvciBnZW5lcmljIFNESU8gZHJpdmVyIGludGVncmF0aW9uLiBJIG5lZWQgdG8gcXVpY2tseSBnZXQgYSBtZW50YWwgbWFwIGdvaW5nIHNvIEkgY2FuIGV2YWx1YXRlIGl0IGluIHRoZSBvdmVyYWxsIGRyaXZlciBhcmNoaXRlY3R1cmUuIExldCdzIHNlZSB3aGF0IHdlJ3ZlIGdvdC5cblxuXG4iLCJJbnB1dFRva2VucyI6MjMzNjAsIk91dHB1dFRva2VucyI6NDMsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoxOSwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wOC0yNVQyMzo0MzowOS4yMDIwNDE2MjhaIiwiU2VxIjoyMiwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjQ2MjU1MzQ4LCJFcnJvciI6Im5vIG1hdGNoZXMiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJzZGlvX3JlZ2lzdGVyX2RyaXZlclwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJkcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS9zZGlvLmNcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiZXJyb3JcIjogXCJubyBtYXRjaGVzXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTI1VDIzOjQzOjA5LjI0ODMwNjg3NloiLCJTZXEiOjIzLCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjozMTE4NDIyNTk1LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJIZXJlJ3MgbXkgdGhvdWdodCBwcm9jZXNzLCBhcyBpZiBJIHdlcmUgd29ya2luZyB0aHJvdWdoIHRoaXM6XG5cbioqTG9jYXRpbmcgdGhlIERyaXZlciBSZWdpc3RyYXRpb24qKlxuXG5Pa2F5LCBmaXJzdCB0aGluZ3MgZmlyc3QsIEkgbmVlZCB0byBwaW5wb2ludCB3aGVyZSB0aGlzIFNESU8gZHJpdmVyIGlzIGFjdHVhbGx5IGJlaW5nIHJlZ2lzdGVyZWQuIEkgY2FuJ3QganVzdCBhc3N1bWUgaXQncyBvYnZpb3VzOyBJIG5lZWQgdG8gZmluZCB0aGUgc3BlY2lmaWMgZnVuY3Rpb24gY2FsbC4gTXkgaW5pdGlhbCBpbnN0aW5jdCBpcyB0byBsb29rIGZvciB0aGUgcmVnaXN0cmF0aW9uIGZ1bmN0aW9uIGl0c2VsZi4gVGhhdCB3b3VsZCBiZSBgc2Rpb19yZWdpc3Rlcl9kcml2ZXJgLiBTbywgSSdsbCBpbml0aWF0ZSBhIHNlYXJjaCBmb3IgdGhhdCBmdW5jdGlvbiB3aXRoaW4gdGhlIGVudGlyZSBkaXJlY3RvcnkuIEEgZ29vZCBncmVwIG9yIGZpbmQgY29tbWFuZCBzaG91bGQgZG8gdGhlIHRyaWNrLCBhbmQgdGhlbiBJIGNhbiByZWZpbmUgbXkgc2VhcmNoIGJhc2VkIG9uIHRoZSByZXN1bHRzLiBUaW1lIHRvIGRpZyBpbiBhbmQgc2VlIHdoYXQgdGhhdCB1bmNvdmVycy5cblxuXG4iLCJJbnB1dFRva2VucyI6MjM2NTAsIk91dHB1dFRva2VucyI6MzksIk91dHB1dFRob3VnaHRzVG9rZW5zIjoyNiwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wOC0yNVQyMzo0MzoxMi4zNjY3MzE1OFoiLCJTZXEiOjI0LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NDczMzY0NzgsIkVycm9yIjoibm8gbWF0Y2hlcyIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcInNkaW9fcmVnaXN0ZXJfZHJpdmVyXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpL1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJlcnJvclwiOiBcIm5vIG1hdGNoZXNcIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMjVUMjM6NDM6MTIuNDE0MDc2MjA5WiIsIlNlcSI6MjUsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjMxNjgyMjU0OTMsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6Ik9rYXksIGhlcmUncyBteSB0YWtlIG9uIHRob3NlIHRob3VnaHRzLCBmcmFtZWQgYXMgbXkgb3duIG1lbnRhbCBwcm9jZXNzLCBnaXZlbiBteSBleHBlcnRpc2U6XG5cbioqQ2hlY2tpbmcgdGhlIFNESU8gUmVnaXN0cmF0aW9uIFBhdGgqKlxuXG5BbHJpZ2h0LCBzbyBJIG5lZWQgdG8gZmlndXJlIG91dCBob3cgYG54cHdpZmlfc2Rpb2AgaXMgZ2V0dGluZyBob29rZWQgdXAuIE15IGluaXRpYWwgaW5zdGluY3QgaXMgdG8gZ28gcmlnaHQgdG8gdGhlIHNvdXJjZSBhbmQgc2VlIHdoYXQncyBnb2luZyBvbi4gTGV0J3Mgc3RhcnQgd2l0aCBgc2Rpby5jYC4gSSdtIGV4cGVjdGluZyB0byBmaW5kIHRoZSBrZXkgdG8gdGhpcyBkcml2ZXIgcmVnaXN0cmF0aW9uIGVpdGhlciB0aHJvdWdoIGEgc3RhbmRhcmQgYG1vZHVsZV9pbml0YCBjYWxsLCBtYXliZSBkaXJlY3RseSBjYWxsaW5nIGBzZGlvX3JlZ2lzdGVyX2RyaXZlcmAsIG9yIGV2ZW4gcG9zc2libHkgdXNpbmcgdGhlIG1hY3JvIGBtb2R1bGVfc2Rpb19kcml2ZXJgLiBPbmUgb2YgdGhvc2Ugc2hvdWxkIHBvaW50IG1lIHJpZ2h0IHRvIHRoZSByZWdpc3RyYXRpb24gZnVuY3Rpb24uIFRoaXMgaXMgdXN1YWxseSB0aGUgZmlyc3Qgc3RlcCB0byB1bmRlcnN0YW5kaW5nIGhvdyBhbnkgU0RJTyBkcml2ZXIgaXMgaW50ZWdyYXRlZCBpbnRvIHRoZSBzeXN0ZW0uIEtub3dpbmcgdGhlIHJlZ2lzdHJhdGlvbiBtZWNoYW5pc20gd2lsbCB0aGVuIGxldCBtZSB0cmFjZSBiYWNrIGhvdyBpdCdzIGluaXRpYWxpemVkIGFuZCBob3cgaXQgaW50ZXJhY3RzIHdpdGggdGhlIFNESU8gYnVzLlxuXG5cbiIsIklucHV0VG9rZW5zIjoyMzg2NywiT3V0cHV0VG9rZW5zIjozOSwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjQ2LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTI1VDIzOjQzOjE1LjU4MjMwNDM0MVoiLCJTZXEiOjI2LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NDkxMzYwNTgsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwibW9kdWxlX3NkaW9fZHJpdmVyXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpL1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJkcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS9zZGlvLmM9MjI5ND1zdGF0aWMgc3RydWN0IG54cHdpZmlfaWZfb3BzIHNkaW9fb3BzID0ge1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvc2Rpby5jLTIzMjEtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvc2Rpby5jOjIzMjI6bW9kdWxlX3NkaW9fZHJpdmVyKG54cHdpZmlfc2Rpbyk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvc2Rpby5jLTIzMjMtXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTI1VDIzOjQzOjE1LjYzMTQ0NDczOVoiLCJTZXEiOjI3LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo2Njg0MTkwMzY5LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKldvcnRoRnV6emluZz1mYWxzZTogU0RJTyBEcml2ZXIgUmVxdWlyZXMgUGh5c2ljYWwgSGFyZHdhcmUqKlxuXG5BbHJpZ2h0LCBsZXQncyBicmVhayB0aGlzIGRvd24uIFRoaXMgaXMgYW4gU0RJTyBkcml2ZXIsIHNvIHJpZ2h0IGF3YXksIEknbSB0aGlua2luZyBhYm91dCB0aGUgcGh5c2ljYWwgaGFyZHdhcmUgZGVwZW5kZW5jeS4gVGhpcyBtZWFucyByZWFsIFNESU8gaGFyZHdhcmUgaXMgbmVjZXNzYXJ5LCBhbmQgbXkgaW5pdGlhbCBodW5jaCBpcyBjb25maXJtZWQgYnkgdGhlIFFFTVUgbGltaXRhdGlvbnMuIFdhaXQsIGhhbmcgb24uLi4gaXMgdGhlcmUgYW55IFNESU8gZW11bGF0aW9uIGluIHRoZSBzdGFuZGFyZCBRRU1VIHNldHVwIHVzZWQgZm9yIGZ1enppbmc/IE5vLCB0aGF0J3MgYSBuZWdhdGl2ZS4gU0RJTyBkZXZpY2VzIGFyZW4ndCBlbXVsYXRlZCBpbiB0aGUgdXN1YWwgUUVNVSBjb25maWd1cmF0aW9ucywgYW5kIHRoYXQncyBhIHNpZ25pZmljYW50IHJvYWRibG9jay5cblxuVGhlIHByb21wdCBzcGVjaWZpY2FsbHkgZmxhZ3MgdmVuZG9yLXNwZWNpZmljIGRyaXZlcnMgZm9yIFBDSWUgZGV2aWNlcyB0aGF0IGRlbWFuZCBwaHlzaWNhbCBoYXJkd2FyZSDigJMgYW5kIHRoaXMgaXMgYSB2ZW5kb3Itc3BlY2lmaWMgU0RJTyBkcml2ZXIsIGRlc2lnbmVkIGZvciBOWFAgY2hpcHMuIEl0IGV4cGxpY2l0bHkgbmVlZHMgU0RJTyBjYXJkcywgd2hpY2ggYXJlIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCBRRU1VLiBUaGF0IG1lYW5zIGl0J3MgdW5yZWFjaGFibGUgaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgR0NFIG9yIHRoZSBRRU1VIGNvbmZpZ3VyYXRpb25zIHdlJ3JlIHVzaW5nLiBTbywgdGhlIHZlcmRpY3QgaXMgaW46IHRoaXMgaXNuJ3Qgd29ydGggZnV6emluZyBkaXJlY3RseS4gSSBzaG91bGQgcmV0dXJuIFdvcnRoRnV6emluZz1mYWxzZS5cblxuSSdsbCBkbyBhIHF1aWNrIHNhbml0eSBjaGVjayB0byBiZSB0aG9yb3VnaC4gTGV0J3Mgc2VlIGlmIHRoZXJlJ3MgKmFueSogb3RoZXIgcG9zc2libGUgcGF0aCB0byB0aGUgY29kZS4gTG9va2luZyBhdCB0aGUgbW9kaWZpZWQgZnVuY3Rpb25zLCBgbnhwd2lmaV8xMW5fZGVsZXRlX3R4X2JhX3N0cmVhbV90YmxfZW50cnlgIGFuZCBgbnhwd2lmaV8xMW5fZGVsX3J4X3Jlb3JkZXJfdGJsX2J5X3RhYCwgdGhleSBhcmUgY2FsbGVkIGZyb20gd2l0aGluIHRoZSBkcml2ZXIncyBpbnRlcm5hbCBsb2dpYywgc3BlY2lmaWNhbGx5IGZyb20gYG54cHdpZmlfMTFuX2NsZWFudXBfcmVvcmRlcl90YmxgIG9yIHNvbWV0aGluZyBzaW1pbGFyLiBHaXZlbiB0aGUgZHJpdmVyIGl0c2VsZiBjYW4ndCBiZSBwcm9iZWQgb3IgcmVhY2hlZCwgYmVjYXVzZSBpdCBuZWVkcyB0aGUgcGh5c2ljYWwgU0RJTyBoYXJkd2FyZSwgdGhlc2UgaW50ZXJuYWwgZnVuY3Rpb25zIGFyZSBlZmZlY3RpdmVseSB1bnJlYWNoYWJsZSBhcyB3ZWxsLlxuXG5UaGVyZWZvcmUsIHRoZSBpbml0aWFsIGFzc2Vzc21lbnQgc3RhbmRzLiBJJ2xsIHN0aWNrIHdpdGggV29ydGhGdXp6aW5nPWZhbHNlLlxuXG5cbiIsIklucHV0VG9rZW5zIjoyNDI3OSwiT3V0cHV0VG9rZW5zIjo4MiwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjMyNiwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wOC0yNVQyMzo0MzoyMi4zMTU2Mzc0NThaIiwiU2VxIjoyOCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoic2V0LXJlc3VsdHMiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjozNTM1MCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogW10sXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBtb2RpZmllcyB0aGUgbnhwd2lmaSBkcml2ZXIsIHdoaWNoIGlzIGEgdmVuZG9yLXNwZWNpZmljIFNESU8gd2lyZWxlc3MgZHJpdmVyIGZvciBOWFAgY2hpcHMuIFNESU8gaGFyZHdhcmUgaXMgbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIFFFTVUgb3IgR0NFIGVudmlyb25tZW50cyB1c2VkIGZvciBmdXp6aW5nLCBzbyB0aGlzIGNvZGUgaXMgdW5yZWFjaGFibGUuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IGZhbHNlXG59IiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IG51bGwsXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBtb2RpZmllcyB0aGUgbnhwd2lmaSBkcml2ZXIsIHdoaWNoIGlzIGEgdmVuZG9yLXNwZWNpZmljIFNESU8gd2lyZWxlc3MgZHJpdmVyIGZvciBOWFAgY2hpcHMuIFNESU8gaGFyZHdhcmUgaXMgbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIFFFTVUgb3IgR0NFIGVudmlyb25tZW50cyB1c2VkIGZvciBmdXp6aW5nLCBzbyB0aGlzIGNvZGUgaXMgdW5yZWFjaGFibGUuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IGZhbHNlXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0yNVQyMzo0MzoyMi4zMTU2NzU5MThaIiwiU2VxIjoyOSwiTmVzdGluZyI6MSwiVHlwZSI6ImFjdGlvbiIsIk5hbWUiOiJJZiIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjE1NTAsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJXb3J0aEZ1enppbmdcIjogZmFsc2Vcbn0iLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9XTsKCQkJaWYgKCFyYXdEYXRhIHx8IHJhd0RhdGEubGVuZ3RoID09PSAwKSByZXR1cm47CgoJCQlkcmF3U3VtbWFyeVRhYmxlcyhyYXdEYXRhKTsKCQkJZHJhd0R1cmF0aW9uQ2hhcnQocmF3RGF0YSk7CgkJCWRyYXdUb2tlbkNvbnN1bXB0aW9uQ2hhcnQocmF3RGF0YSk7CgkJfQoKCQlmdW5jdGlvbiBkcmF3U3VtbWFyeVRhYmxlcyhyYXdEYXRhKSB7CgkJCWNvbnN0IHN0YXRzID0gewoJCQkJbGxtOiB7IGNvdW50OiAwLCB0b2tlbnM6IDAsIGR1cmF0aW9uOiAwIH0sCgkJCQl0b29sOiB7IGNvdW50OiAwLCBkdXJhdGlvbjogMCB9CgkJCX07CgoJCQlyYXdEYXRhLmZvckVhY2gocyA9PiB7CgkJCQljb25zdCBkdXIgPSBzLkR1cmF0aW9uIC8gMTAwMDAwMDAwMDsgCgkJCQlpZiAocy5UeXBlID09PSAibGxtIikgewoJCQkJCXN0YXRzLmxsbS5jb3VudCsrOwoJCQkJCXN0YXRzLmxsbS50b2tlbnMgKz0gKHMuSW5wdXRUb2tlbnMgKyBzLk91dHB1dFRva2VucyArIHMuT3V0cHV0VGhvdWdodHNUb2tlbnMpOwoJCQkJCXN0YXRzLmxsbS5kdXJhdGlvbiArPSBkdXI7CgkJCQl9IGVsc2UgaWYgKHMuVHlwZSA9PT0gInRvb2wiKSB7CgkJCQkJc3RhdHMudG9vbC5jb3VudCsrOwoJCQkJCXN0YXRzLnRvb2wuZHVyYXRpb24gKz0gZHVyOwoJCQkJfQoJCQl9KTsKCgkJCWNvbnN0IGF2Z0xsbUR1ciA9IHN0YXRzLmxsbS5jb3VudCA+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-workflowg67jc[1] Phase: Running StartedAt: 2026-08-25 23:43:34 +0000 UTC FinishedAt: 0001-01-01 00:00:00 +0000 UTC Input: nil Output: nil --------- Name: series-workflowg67jc[1].abort-on-skip-outcome Phase: Failed StartedAt: 2026-08-25 23:43:34 +0000 UTC FinishedAt: 2026-08-25 23:43:38 +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,}