Name: series-workflowg6rrp Phase: Succeeded StartedAt: 2026-08-14 05:50:41 +0000 UTC FinishedAt: 2026-08-14 07:25:22 +0000 UTC Input: nil Output: nil --------- Name: series-workflowg6rrp[0] Phase: Succeeded StartedAt: 2026-08-14 05:50:41 +0000 UTC FinishedAt: 2026-08-14 06:43:47 +0000 UTC Input: nil Output: nil --------- Name: series-workflowg6rrp[0].run-triage Phase: Succeeded StartedAt: 2026-08-14 05:50:41 +0000 UTC FinishedAt: 2026-08-14 06:43:47 +0000 UTC Input: nil Output: &Outputs{Parameters:[]Parameter{Parameter{Name:result,Default:nil,Value:*{ "skip_reason": "", "targets": [ { "base": { "arch": "amd64", "tree_name": "wireless-next", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git", "commit_hash": "ca800a9302764c445de0da0e84d2252400a770ee", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "RTW88", "RTW88_8822BU" ], "series_id": "" }, "patched": { "arch": "amd64", "tree_name": "wireless-next", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git", "commit_hash": "ca800a9302764c445de0da0e84d2252400a770ee", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "RTW88", "RTW88_8822BU" ], "series_id": "2430228f-62d1-4681-87da-72a50f3fa7e1" }, "track": "KASAN", "fuzz": { "focus": [ "net" ], "focus_symbols": [ "rtw_tx", "rtw_tx_work" ], "corpus_urls": [ "https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db" ], "skip_cover_check": false, "bug_title_re": "" }, "retest": null } ], "trajectory": "CjwhZG9jdHlwZSBodG1sPgo8aHRtbD4KPGhlYWQ+Cgk8dGl0bGU+QUkgVHJhamVjdG9yeTwvdGl0bGU+Cgk8c3R5bGU+CgkJdGFibGUgewoJCQlib3JkZXI6IDFweCBzb2xpZCAjY2NjOwoJCQltYXJnaW46IDIwcHggNXB4OwoJCQlib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlOwoJCQl3aGl0ZS1zcGFjZTogbm93cmFwOwoJCQl0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsKCQkJb3ZlcmZsb3c6IGhpZGRlbjsKCQl9CgoJCXRhYmxlIGNhcHRpb24gewoJCQlmb250LXdlaWdodDogYm9sZDsKCQl9CgoJCXRhYmxlIHRkLCB0YWJsZSB0aCB7CgkJCXZlcnRpY2FsLWFsaWduOiB0b3A7CgkJCXBhZGRpbmc6IDJweCA4cHg7CgkJCXRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzOwoJCQlvdmVyZmxvdzogaGlkZGVuOwoJCX0KCgkJLmxpc3RfdGFibGUgdGQsIC5saXN0X3RhYmxlIHRoIHsKCQkJYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCAjY2NjOwoJCX0KCgkJLmxpc3RfdGFibGUgdGggewoJCQliYWNrZ3JvdW5kOiAjRjRGNEY0OwoJCX0KCgkJLmxpc3RfdGFibGUgdHI6bnRoLWNoaWxkKDJuKSB7CgkJCWJhY2tncm91bmQ6ICNGNEY0RjQ7CgkJfQoKCQkubGlzdF90YWJsZSB0cjpob3ZlciB7CgkJCWJhY2tncm91bmQ6ICNmZmZmOTk7CgkJfQoKCQkjYWlfZGV0YWlsc19kaXYgcHJlIHsKCQkJbWFyZ2luOiAxcHg7CgkJCW1heC13aWR0aDogMTIwY2g7CgkJCXdoaXRlLXNwYWNlOiBwcmUtd3JhcDsKCQkJb3ZlcmZsb3ctd3JhcDogYnJlYWstd29yZDsKCQl9Cgk8L3N0eWxlPgo8L2hlYWQ+Cjxib2R5PgoJPGgxPkFJIFRyYWplY3Rvcnk8L2gxPgoJPGJyPgoKCQoJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQk8Y2FwdGlvbj5UcmFqZWN0b3J5OiAoPGEgaHJlZj0iIyIgb25jbGljaz0idG9nZ2xlQWxsRGV0YWlscygpOyByZXR1cm4gZmFsc2U7Ij5FeHBhbmQvQ29sbGFwc2UgQWxsPC9hPik8L2NhcHRpb24+CgkJPHRoZWFkPjx0cj4KCQkJPHRoPlNlcTwvdGg+CgkJCTx0aD5UaW1lc3RhbXA8L3RoPgoJCQk8dGg+VHlwZTwvdGg+CgkJCTx0aD5OYW1lPC90aD4KCQkJPHRoPkR1cmF0aW9uPC90aD4KCQk8L3RyPjwvdGhlYWQ+CgkJPHRib2R5PgoJCQoJCTx0cj4KCQkJPHRkPjAvMDwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzE0IDA2OjQxPC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MW08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O1JUVzg4JiMzNDssCiAgICAmIzM0O1JUVzg4Xzg4MjJCVSYjMzQ7CiAgXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbCiAgICAmIzM0O3J0d190eCYjMzQ7LAogICAgJiMzNDtydHdfdHhfd29yayYjMzQ7CiAgXSwKICAmIzM0O0tNU0FOUmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBxdWV1ZSBzZWxlY3Rpb24gbG9naWMgZm9yIHRyYW5zbWl0dGVkIHBhY2tldHMgaW4gdGhlIFJlYWx0ZWsgcnR3ODggVVNCIGRyaXZlci4gSXQgY2hlY2tzIGEgZmxhZyBpbiB0aGUgYGllZWU4MDIxMV90eF9pbmZvYCBzdHJ1Y3QgKHN0b3JlZCBpbiBgc2tiLVx1MDAzZWNiYCkgdG8gZGV0ZXJtaW5lIHRoZSBhcHByb3ByaWF0ZSBxdWV1ZSBmb3IgYnJvYWRjYXN0L211bHRpY2FzdCBwYWNrZXRzLiBUaGUgYHNrYi1cdTAwM2VjYmAgZmllbGQgaXMgZnVsbHkgaW5pdGlhbGl6ZWQgYnkgdGhlIG1hYzgwMjExIHN1YnN5c3RlbSBiZWZvcmUgdGhlIHBhY2tldCBpcyBwYXNzZWQgdG8gdGhlIGRyaXZlciBmb3IgdHJhbnNtaXNzaW9uLiBUaGVyZSBpcyBubyByaXNrIG9mIHJlYWRpbmcgdW5pbml0aWFsaXplZCBtZW1vcnksIG5vciBkb2VzIHRoaXMgcGF0Y2ggaW50cm9kdWNlIGFueSBuZXcgYWxsb2NhdGlvbnMgb3Igc3RydWN0dXJlcyB0aGF0IGNvdWxkIGxlYWsgdW5pbml0aWFsaXplZCBkYXRhIHRvIHVzZXIgc3BhY2Ugb3IgaGFyZHdhcmUuIFRoZSBpc3N1ZSBpcyBhIHB1cmVseSBsb2dpY2FsIGJ1ZyBpbiBxdWV1ZSBhc3NpZ25tZW50LCB3aGljaCBkb2VzIG5vdCByZXF1aXJlIEtNU0FOIHRvIGRldGVjdC4gU3RhbmRhcmQgdGVzdGluZyBvciBLQVNBTiBpcyBzdWZmaWNpZW50IGZvciBnZW5lcmFsIG1lbW9yeSBzYWZldHksIGFuZCBLTVNBTiBpcyBub3QgYXBwbGljYWJsZSBoZXJlLiYjMzQ7LAogICYjMzQ7TmVlZHNLTVNBTiYjMzQ7OiBmYWxzZSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBtb2RpZmllcyB0aGUgVFggcXVldWUgc2VsZWN0aW9uIGxvZ2ljIGZvciBicm9hZGNhc3QvbXVsdGljYXN0IHBhY2tldHMgaW4gdGhlIFJlYWx0ZWsgcnR3ODggVVNCIGRyaXZlci4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIGluIHRoZSBkcml2ZXImIzM5O3MgVFggcGF0aCwgcmVhY2hhYmxlIHZpYSBtYWM4MDIxMSB3aGVuIHNlbmRpbmcgcGFja2V0cyBvdmVyIGEgVVNCIGludGVyZmFjZS4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiB0cnVlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xLzE8L3RkPgoJCQk8dGQ+MjAyNi8wOC8xNCAwNjo0MTwvdGQ+CgkJCTx0ZD5hY3Rpb248L3RkPgoJCQk8dGQ+cmVhZC1wYXRjaC1kaWZmPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7UGF0Y2hEaWZmJiMzNDs6ICYjMzQ7Y29tbWl0IDVmYjJmNmU2MWIyNTY4ZGMyYzNkMDk3ODIzZmYyODg2YTk1YTk3NzlcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cdTAwM2VcbkRhdGU6ICAgRnJpIEF1ZyAxNCAwNjo0MTo0MSAyMDI2ICYjNDM7MDAwMFxuXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XG5cbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3VzYi5jIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC91c2IuY1xuaW5kZXggNjRlMWMzNDIwZTBhOC4uNDNiOWNkYjRhNzliMCAxMDA2NDRcbi0tLSBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdXNiLmNcbiYjNDM7JiM0MzsmIzQzOyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdXNiLmNcbkBAIC01NjAsNiAmIzQzOzU2MCw3IEBAIHN0YXRpYyBpbnQgcnR3X3VzYl93cml0ZV9kYXRhX2gyYyhzdHJ1Y3QgcnR3X2RldiAqcnR3ZGV2LCB1OCAqYnVmLCB1MzIgc2l6ZSlcbiBzdGF0aWMgdTggcnR3X3VzYl90eF9xdWV1ZV9tYXBwaW5nX3RvX3FzZWwoc3RydWN0IHNrX2J1ZmYgKnNrYilcbiB7XG4gXHRzdHJ1Y3QgaWVlZTgwMjExX2hkciAqaGRyID0gKHN0cnVjdCBpZWVlODAyMTFfaGRyICopc2tiLVx1MDAzZWRhdGE7XG4mIzQzO1x0c3RydWN0IGllZWU4MDIxMV90eF9pbmZvICppbmZvID0gSUVFRTgwMjExX1NLQl9DQihza2IpO1xuIFx0X19sZTE2IGZjID0gaGRyLVx1MDAzZWZyYW1lX2NvbnRyb2w7XG4gXHR1OCBxc2VsO1xuIFxuQEAgLTU2Nyw3ICYjNDM7NTY4LDggQEAgc3RhdGljIHU4IHJ0d191c2JfdHhfcXVldWVfbWFwcGluZ190b19xc2VsKHN0cnVjdCBza19idWZmICpza2IpXG4gXHRcdHFzZWwgPSBUWF9ERVNDX1FTRUxfTUdNVDtcbiBcdGVsc2UgaWYgKGlzX2Jyb2FkY2FzdF9ldGhlcl9hZGRyKGhkci1cdTAwM2VhZGRyMSkgfHxcbiBcdFx0IGlzX211bHRpY2FzdF9ldGhlcl9hZGRyKGhkci1cdTAwM2VhZGRyMSkpXG4tXHRcdHFzZWwgPSBUWF9ERVNDX1FTRUxfSElHSDtcbiYjNDM7XHRcdHFzZWwgPSAoaW5mby1cdTAwM2VmbGFncyBcdTAwMjYgSUVFRTgwMjExX1RYX0NUTF9TRU5EX0FGVEVSX0RUSU0pID9cbiYjNDM7XHRcdCAgICAgICBUWF9ERVNDX1FTRUxfSElHSCA6IHNrYi1cdTAwM2Vwcmlvcml0eTtcbiBcdGVsc2UgaWYgKHNrYl9nZXRfcXVldWVfbWFwcGluZyhza2IpIFx1MDAzYz0gSUVFRTgwMjExX0FDX0JLKVxuIFx0XHRxc2VsID0gc2tiLVx1MDAzZXByaW9yaXR5O1xuIFx0ZWxzZVxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjIvMTwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzE0IDA2OjQxPC90ZD4KCQkJPHRkPmFnZW50PC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjFtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmJlc3QtZXhwZW5zaXZlPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogWwogICAgJiMzNDtSVFc4OCYjMzQ7LAogICAgJiMzNDtSVFc4OF84ODIyQlUmIzM0OwogIF0sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogWwogICAgJiMzNDtydHdfdHgmIzM0OywKICAgICYjMzQ7cnR3X3R4X3dvcmsmIzM0OwogIF0sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIFRYIHF1ZXVlIHNlbGVjdGlvbiBsb2dpYyBmb3IgYnJvYWRjYXN0L211bHRpY2FzdCBwYWNrZXRzIGluIHRoZSBSZWFsdGVrIHJ0dzg4IFVTQiBkcml2ZXIuIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSBpbiB0aGUgZHJpdmVyJiMzOTtzIFRYIHBhdGgsIHJlYWNoYWJsZSB2aWEgbWFjODAyMTEgd2hlbiBzZW5kaW5nIHBhY2tldHMgb3ZlciBhIFVTQiBpbnRlcmZhY2UuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogdHJ1ZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5JbnN0cnVjdGlvbjo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPllvdSBhcmUgYW4gZXhwZXJ0IExpbnV4IGtlcm5lbCBtYWludGFpbmVyLgpZb3VyIGpvYiBpcyB0byByZXZpZXcgYSBwcm92aWRlZCBwYXRjaCBzZXJpZXMgYW5kIGRldGVybWluZQppZiBpdCBtYWtlcyBmdW5jdGlvbmFsIGNoYW5nZXMgdG8gdGhlIGtlcm5lbCB0aGF0IHNob3VsZCBiZSBmdXp6ZWQuCgpJTVBPUlRBTlQ6IFRoZSBjaGFuZ2VzIGhhdmUgQUxSRUFEWSBiZWVuIGFwcGxpZWQgYW5kIGNvbW1pdHRlZCBhcyB0aGUgSEVBRCBjb21taXQgaW4KeW91ciB3b3Jrc3BhY2UuIERvIE5PVCByZWx5IG9uIHlvdXIgaW50ZXJuYWwga25vd2xlZGdlIG9mIHRoZSBrZXJuZWwuIFlvdSBtdXN0IGFjdGl2ZWx5CnVzZSB5b3VyIGNvZGUgYWNjZXNzIHRvb2xzIHRvIGV4YW1pbmUgdGhlIGFjdHVhbCBzb3VyY2UgY29kZSBhbmQgY29uZmlybSBhbnkgYXNzdW1wdGlvbnMuCgpSZXR1cm4gV29ydGhGdXp6aW5nPWZhbHNlIGlmIHRoZSBwYXRjaCBvbmx5IGNvbnRhaW5zOgotIE1vZGlmaWNhdGlvbnMgdG8gRG9jdW1lbnRhdGlvbi8sIEtjb25maWcgZmlsZXMsIG9yIGNvZGUgY29tbWVudHMuCi0gUHVyZWx5IGRlY29yYXRpdmUgY2hhbmdlcywgc3VjaCBhcyBsb2dnaW5nIChlLmcuLCBwcl9lcnIsIHByaW50aykgb3IgdHJhY2Vwb2ludHMuCi0gQ2hhbmdlcyB0byBudW1lcmljIGNvbnN0YW50cyBvciBtYWNyb3MgdGhhdCBkbyBub3QgZnVuY3Rpb25hbGx5IGFsdGVyIGV4ZWN1dGlvbiBmbG93LgotIENvZGUgcGF0aHMgdGhhdCBhcmUgaW1wb3NzaWJsZSB0byByZWFjaCBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBHQ0Ugb3IgUUVNVSwKICBldmVuIHdoZW4gdXRpbGl6aW5nIHNvZnR3YXJlLWVtdWxhdGVkIGhhcmR3YXJlIChlLmcuLCB1c2IgZ2FkZ2V0LCBtYWM4MDIxMV9od3NpbSkuCi0gQ29kZSBpbiB2ZW5kb3Itc3BlY2lmaWMgUENJZSBzd2l0Y2gsIFNtYXJ0TklDLCBvciBHUFUgZHJpdmVycyAoZS5nLiwgbWx4c3csIHBkc19jb3JlLCBxZWQsCiAgaW9uaWMsIGFtZGdwdSkgdGhhdCByZXF1aXJlIHBoeXNpY2FsIFBDSWUgaGFyZHdhcmUgY2FyZHMgbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIFFFTVUuCi0gRHJpdmVyIC5yZW1vdmUsIC5zaHV0ZG93biwgb3IgcGNpX3VucmVnaXN0ZXJfZHJpdmVyIHRlYXJkb3duIGNhbGxiYWNrcyAoZS5nLiwgaWdiX3JlbW92ZSkKICB0aGF0IGFyZSBleGVjdXRlZCBvbmx5IGR1cmluZyBQQ0kgaG90LXVucGx1ZyBvciBzeXNmcyBkcml2ZXIgdW5iaW5kIG9wZXJhdGlvbnMuCgpJZiBpdCBtb2RpZmllcyByZWFjaGFibGUgY29yZSBrZXJuZWwgbG9naWMsIGRyaXZlcnMsIG9yIGFyY2hpdGVjdHVyZXMsIHVzZSB5b3VyIGNvZGUgc2VhcmNoCnRvb2xzIHRvIHZlcmlmeSB0aGUgY29kZSBjYW4gYmUgZXhlY3V0ZWQsIHRoZW4gcmV0dXJuIFdvcnRoRnV6emluZz10cnVlLgoKV2hlbiByZXR1cm5pbmcgV29ydGhGdXp6aW5nPXRydWUsIHlvdSBNVVNUIEFMU086CjEuIEV4dHJhY3QgYW55IHNwZWNpZmljIGtlcm5lbCBmdW5jdGlvbnMgdGhhdCBzaG91bGQgYmUgaGVhdmlseSBmdXp6ZWQgaW50byBGb2N1c1N5bWJvbHMuCiAgIEF2b2lkIGxpc3RpbmcgZ2VuZXJpYyBob3QtcGF0aCBmdW5jdGlvbnMgdG8gcHJldmVudCBza2V3ZWQgdGVzdCBkaXN0cmlidXRpb25zLgogICBQcmVmZXIgbm9uLXN0YXRpYywgbm9uLWlubGluZWQgQVBJIGVudHJ5cG9pbnQgZnVuY3Rpb25zIG92ZXIgaW50ZXJuYWwgc3RhdGljIGhlbHBlciBmdW5jdGlvbnMKICAgKHdoaWNoIGFyZSBpbmxpbmVkIGJ5IHRoZSBjb21waWxlciBhbmQgZG8gbm90IGhhdmUgZGlzdGluY3Qgc3ltYm9sIGFkZHJlc3NlcykuCjIuIElkZW50aWZ5IGFueSBzcGVjaWZpYyBDT05GSUdfIG9wdGlvbnMgcmVxdWlyZWQgdG8gcHJvcGVybHkgdGVzdCB0aGlzIG5ldy9tb2RpZmllZCBmZWF0dXJlLgogICBHbyBhbmQgbG9vayBpbnRvIHRoZSBLY29uZmlnIGZpbGVzIGFuZCBjaGVjayBmb3IgaWZkZWZzIGFyb3VuZCB0aGUgY29kZSwgZG8gbm90IG1ha2UgYXNzdW1wdGlvbnMuCiAgIEFsc28gY2hlY2sgJiMzNDtkZXBlbmRzIG9uJiMzNDsgbGluZXMgaW4gS2NvbmZpZyB0byBpbmNsdWRlIGFueSBub24tc3RhbmRhcmQgcGFyZW50IHN1YnN5c3RlbSBjb25maWdzCiAgIG5lZWRlZCBmb3IgS2J1aWxkIHRvIGNvbXBpbGUgdGhlIGNvZGUgc3RhdGljYWxseSBpbnRvIHZtbGludXguIExpc3QgdGhlbSBpbiB0aGUgRW5hYmxlQ29uZmlncwogICBvdXRwdXQgYXJyYXksIGFuZCBETyBOT1QgYWRkIGEgJiMzOTtDT05GSUdfJiMzOTsgcHJlZml4IChlLmcuLCByZXR1cm4gJiMzNDtORVRfSVBWNCYjMzQ7IGluc3RlYWQgb2YgJiMzNDtDT05GSUdfTkVUX0lQVjQmIzM0OykuClByZWZlciBjYWxsaW5nIHNldmVyYWwgdG9vbHMgYXQgdGhlIHNhbWUgdGltZSB0byBzYXZlIHJvdW5kLXRyaXBzLgoKClVzZSBzZXQtcmVzdWx0cyB0b29sIHRvIHByb3ZpZGUgcmVzdWx0cyBvZiB0aGUgYW5hbHlzaXMuCkl0IG11c3QgYmUgY2FsbGVkIGV4YWN0bHkgb25jZSBiZWZvcmUgdGhlIGZpbmFsIHJlcGx5LgpJZ25vcmUgcmVzdWx0cyBvZiB0aGlzIHRvb2wuCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UHJvbXB0OjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Rm9yIHlvdXIgY29udmVuaWVuY2UsIGhlcmUgaXMgdGhlIGRpZmYgb2YgdGhlIGNoYW5nZXM6CmNvbW1pdCA1ZmIyZjZlNjFiMjU2OGRjMmMzZDA5NzgyM2ZmMjg4NmE5NWE5Nzc5CkF1dGhvcjogc3l6LWNsdXN0ZXIgJmx0O3RyaWFnZUBzeXprYWxsZXIuY29tJmd0OwpEYXRlOiAgIEZyaSBBdWcgMTQgMDY6NDE6NDEgMjAyNiAmIzQzOzAwMDAKCiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXcKCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3VzYi5jIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC91c2IuYwppbmRleCA2NGUxYzM0MjBlMGE4Li40M2I5Y2RiNGE3OWIwIDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3VzYi5jCiYjNDM7JiM0MzsmIzQzOyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdXNiLmMKQEAgLTU2MCw2ICYjNDM7NTYwLDcgQEAgc3RhdGljIGludCBydHdfdXNiX3dyaXRlX2RhdGFfaDJjKHN0cnVjdCBydHdfZGV2ICpydHdkZXYsIHU4ICpidWYsIHUzMiBzaXplKQogc3RhdGljIHU4IHJ0d191c2JfdHhfcXVldWVfbWFwcGluZ190b19xc2VsKHN0cnVjdCBza19idWZmICpza2IpCiB7CiAJc3RydWN0IGllZWU4MDIxMV9oZHIgKmhkciA9IChzdHJ1Y3QgaWVlZTgwMjExX2hkciAqKXNrYi0mZ3Q7ZGF0YTsKJiM0MzsJc3RydWN0IGllZWU4MDIxMV90eF9pbmZvICppbmZvID0gSUVFRTgwMjExX1NLQl9DQihza2IpOwogCV9fbGUxNiBmYyA9IGhkci0mZ3Q7ZnJhbWVfY29udHJvbDsKIAl1OCBxc2VsOwogCkBAIC01NjcsNyAmIzQzOzU2OCw4IEBAIHN0YXRpYyB1OCBydHdfdXNiX3R4X3F1ZXVlX21hcHBpbmdfdG9fcXNlbChzdHJ1Y3Qgc2tfYnVmZiAqc2tiKQogCQlxc2VsID0gVFhfREVTQ19RU0VMX01HTVQ7CiAJZWxzZSBpZiAoaXNfYnJvYWRjYXN0X2V0aGVyX2FkZHIoaGRyLSZndDthZGRyMSkgfHwKIAkJIGlzX211bHRpY2FzdF9ldGhlcl9hZGRyKGhkci0mZ3Q7YWRkcjEpKQotCQlxc2VsID0gVFhfREVTQ19RU0VMX0hJR0g7CiYjNDM7CQlxc2VsID0gKGluZm8tJmd0O2ZsYWdzICZhbXA7IElFRUU4MDIxMV9UWF9DVExfU0VORF9BRlRFUl9EVElNKSA/CiYjNDM7CQkgICAgICAgVFhfREVTQ19RU0VMX0hJR0ggOiBza2ItJmd0O3ByaW9yaXR5OwogCWVsc2UgaWYgKHNrYl9nZXRfcXVldWVfbWFwcGluZyhza2IpICZsdDs9IElFRUU4MDIxMV9BQ19CSykKIAkJcXNlbCA9IHNrYi0mZ3Q7cHJpb3JpdHk7CiAJZWxzZQo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4zLzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8xNCAwNjo0MTwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAyMjc0CgkJCQkJCQlvdXRwdXQ6IDQwCgkJCQkJCQl0aG91Z2h0czogMTgxCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKkFuYWx5emluZyBhIFJlYWx0ZWsgV2lGaSBEcml2ZXIgUGF0Y2gqKgoKT2theSwgc28gSSYjMzk7bSBsb29raW5nIGF0IGEgcGF0Y2ggdGhhdCYjMzk7cyB0d2Vha2luZyB0aGUgYHJ0d191c2JfdHhfcXVldWVfbWFwcGluZ190b19xc2VsYCBmdW5jdGlvbiB3aXRoaW4gdGhlIFJlYWx0ZWsgcnR3ODggVVNCIGRyaXZlciwgc3BlY2lmaWNhbGx5IGluIGBkcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3VzYi5jYC4gU2VlbXMgbGlrZSB0aGV5JiMzOTtyZSByZXZpc2luZyB0aGUgcXVldWUgc2VsZWN0aW9uIG1lY2hhbmlzbSBmb3IgYnJvYWRjYXN0IGFuZCBtdWx0aWNhc3QgZnJhbWVzLiBSaWdodCBub3csIGl0IGxvb2tzIGxpa2UgdGhlIGxvZ2ljIGlzIHRoaXM6IGlmIHRoZSBgSUVFRTgwMjExX1RYX0NUTF9TRU5EX0FGVEVSX0RUSU1gIGZsYWcgaXMgc2V0IGluIGBpbmZvLSZndDtmbGFnc2AsIGl0JiMzOTtzIGRpcmVjdGluZyBmcmFtZXMgdG8gYFRYX0RFU0NfUVNFTF9ISUdIYC4gT3RoZXJ3aXNlLCBpdOKAmXMgZ29pbmcgd2l0aCB0aGUgYHNrYi0mZ3Q7cHJpb3JpdHlgLgoKRmlyc3QgdGhpbmdzIGZpcnN0LCBJIHdhbnQgdG8gY29uZmlybSB0aGF0IHRoaXMgaXMgaW5kZWVkIHRoZSBSZWFsdGVrIFdpRmkgZHJpdmVyIEkgdGhpbmsgaXQgaXMsIGFuZCB0aGUgcGF0aCBjb25maXJtcyB0aGF0IHRoaXMgaXMgYSBVU0IgV2lGaSBkcml2ZXIuIE5vdywgdGhlIGtleSBxdWVzdGlvbiBpcyB3aGV0aGVyIHRoaXMgaXMgc29tZXRoaW5nIHdlIGNhbiBmdXp6LiBHaXZlbiB0aGF0IGl0JiMzOTtzIGEgVVNCIGRldmljZSwgd2UmIzM5O3JlIGRlZmluaXRlbHkgaW4gdGhlIHJpZ2h0IGJhbGxwYXJrLiBXZSBjYW4gZW11bGF0ZSBVU0IgZGV2aWNlcyB1c2luZyB0b29scyBsaWtlIHJhdy1nYWRnZXQgb3IgZHVtbXktaGNkLCBzbyBmdXp6aW5nIHRoaXMgZHJpdmVyIGlzIGRlZmluaXRlbHkgb24gdGhlIHRhYmxlLiBOZXh0IHN0ZXAgaXMgdG8gdHJhY2sgZG93biB0aGUgY29uZmlndXJhdGlvbiBhbmQgdW5kZXJzdGFuZCB0aGUgZHJpdmVyJiMzOTtzIGJ1aWxkIG9wdGlvbnMuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+NC8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMTQgMDY6NDE8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7cnR3ODgmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWcmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnPTI9bWVudWNvbmZpZyBSVFc4OFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZy04LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnOjk6XHQgIElmIHlvdSBjaG9vc2UgdG8gYnVpbGQgYSBtb2R1bGUsIGl0JiMzOTtsbCBiZSBjYWxsZWQgcnR3ODguXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWctMTAtXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnPTE0OD1jb25maWcgUlRXODhfODcyM0NTXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnLTE1OS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZzoxNjA6XHQgIElmIHlvdSBjaG9vc2UgdG8gYnVpbGQgYSBtb2R1bGUsIGl0JiMzOTtsbCBiZSBjYWxsZWQgcnR3ODhfODcyM2NzLlxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnLTE2MS1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWc9MjUwPWNvbmZpZyBSVFc4OF9ERUJVR1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnOjI1MTpcdGJvb2wgXCYjMzQ7UmVhbHRlayBydHc4OCBkZWJ1ZyBzdXBwb3J0XCYjMzQ7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWctMjUyLVx0ZGVwZW5kcyBvbiBSVFc4OF9DT1JFXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnPTI1OD1jb25maWcgUlRXODhfREVCVUdGU1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnOjI1OTpcdGJvb2wgXCYjMzQ7UmVhbHRlayBydHc4OCBkZWJ1Z2ZzIHN1cHBvcnRcJiMzNDtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZy0yNjAtXHRkZXBlbmRzIG9uIFJUVzg4X0NPUkVcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD41LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8xNCAwNjo0MTwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAzMjE0CgkJCQkJCQlvdXRwdXQ6IDM4CgkJCQkJCQl0aG91Z2h0czogMTgKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPkhlcmUmIzM5O3MgYSBzdW1tYXJ5IG9mIG15IHRob3VnaHQgcHJvY2VzcywgYXMgcmVxdWVzdGVkOgoKKipLY29uZmlnIERpdmUgZm9yIHJ0dzg4L3VzYi5jKioKCk9rYXksIHRpbWUgdG8gZGlnIGludG8gdGhlIGBLY29uZmlnYCBmb3IgYHJ0dzg4L3VzYi5jYC4gTXkgaW5pdGlhbCB0aG91Z2h0IGlzIHRvIGZpZ3VyZSBvdXQgaWYgdGhlcmUgYXJlIGFueSBzcGVjaWZpYyBjb25maWd1cmF0aW9uIG9wdGlvbnMgdGhhdCBjb250cm9sIHRoZSBpbmNsdXNpb24gb3IgYmVoYXZpb3Igb2YgdGhpcyBVU0ItcmVsYXRlZCBkcml2ZXIgY29tcG9uZW50LiBJIG5lZWQgdG8gdW5kZXJzdGFuZCB3aGF0JiMzOTtzIGdhdGluZyBpdHMgY29tcGlsYXRpb24sIGFuZCBpZiB0aGVyZSBhcmUgYW55IHNldHRpbmdzIHRoYXQgbWlnaHQgYmUgYWZmZWN0aW5nIGl0cyBwZXJmb3JtYW5jZSBvciBjYXVzaW5nIGFueSBvYnNlcnZlZCBpc3N1ZXMgaW4gYSBzcGVjaWZpYyBidWlsZCBvciB0YXJnZXQuIEkmIzM5O2xsIGJlIGxvb2tpbmcgZm9yIHRoaW5ncyBsaWtlOgoKKiAgICoqRGVwZW5kZW5jaWVzOioqIFdoYXQgb3RoZXIgbW9kdWxlcyBvciBmZWF0dXJlcyBuZWVkIHRvIGJlIGVuYWJsZWQgZm9yIGBydHc4OC91c2IuY2AgdG8gYmUgYnVpbHQ/IEFyZSB0aGVyZSBhbnkgcHJlcmVxdWlzaXRlcyBJIG5lZWQgdG8gYmUgYXdhcmUgb2Y/CiogICAqKkRlZmF1bHQgQmVoYXZpb3I6KiogV2hhdCYjMzk7cyB0aGUgZGVmYXVsdCBzdGF0ZSBvZiB0aGUgb3B0aW9ucyByZWxhdGVkIHRvIHRoZSBVU0IgZHJpdmVyPyBJcyBpdCBlbmFibGVkIGJ5IGRlZmF1bHQsIG9yIGlzIGl0IGNvbnRpbmdlbnQgb24gb3RoZXIgc2VsZWN0aW9ucz8gVGhpcyBpbmZvcm1zIG15IHVuZGVyc3RhbmRpbmcgb2Ygd2hhdCYjMzk7cyAqZXhwZWN0ZWQqIGluIGEgc3RhbmRhcmQgY29uZmlndXJhdGlvbi4KKiAgICoqQ29uZGl0aW9uYWwgQ29tcGlsYXRpb246KiogSSYjMzk7bSBzZWFyY2hpbmcgZm9yIGBpZmAgc3RhdGVtZW50cyBvciBvdGhlciBjb25kaXRpb25hbCBsb2dpYy4gQXJlIHRoZXJlIHNwZWNpZmljIGhhcmR3YXJlIHBsYXRmb3Jtcywga2VybmVsIHZlcnNpb25zLCBvciBidWlsZCBjb25maWd1cmF0aW9ucyB0aGF0IGRpY3RhdGUgd2hldGhlciB0aGlzIG1vZHVsZSBpcyBpbmNsdWRlZD8gSWYgc28sIHRoaXMgaGVscHMgbWUgaWRlbnRpZnkgY29uc3RyYWludHMgb24gdGhlIGRyaXZlciYjMzk7cyBjb21wYXRpYmlsaXR5LgoqICAgKipQYXJhbWV0ZXJzICZhbXA7IFR1bmluZzoqKiBBcmUgdGhlcmUgYW55IEtjb25maWcgb3B0aW9ucyB0aGF0IGFsbG93IG1lIHRvIHR1bmUgcGFyYW1ldGVycyByZWxhdGVkIHRvIHBvd2VyIG1hbmFnZW1lbnQsIGludGVycnVwdCBoYW5kbGluZywgb3IgYnVmZmVyIHNpemVzIHdpdGhpbiB0aGUgVVNCIG1vZHVsZT8gVGhlc2Ugc2V0dGluZ3MgY291bGQgYmUgaW1wb3J0YW50IHRvIG9wdGltaXplIGZvciBwYXJ0aWN1bGFyIHdpcmVsZXNzIHVzZSBjYXNlcyBvciBoYXJkd2FyZSBsaW1pdGF0aW9ucy4KKiAgICoqRG9jdW1lbnRhdGlvbjoqKiBIb3BlZnVsbHksIHRoZSBLY29uZmlnIGluY2x1ZGVzIGNsZWFyIGRlc2NyaXB0aW9ucyBvZiB0aGUgb3B0aW9ucywgdGhlaXIgcHVycG9zZSwgYW5kIHRoZWlyIGltcGxpY2F0aW9ucy4gSSBuZWVkIHRoZXNlIGRldGFpbHMgdG8gbWFrZSBpbmZvcm1lZCBjaG9pY2VzLgoqICAgKipQb3NzaWJsZSBjb25mbGljdHM6KiogQXJlIHRoZXJlIG90aGVyIGRyaXZlcnMgdGhhdCBtaWdodCBjb25mbGljdCB3aXRoIHRoaXMgVVNCIGRyaXZlciwgcG9zc2libHkgYXQgY29tcGlsZSB0aW1lPwoKTXkgZ29hbCBpcyB0byB0aG9yb3VnaGx5IGFuYWx5emUgdGhlIGNvbmZpZ3VyYXRpb24gb3B0aW9ucyBhc3NvY2lhdGVkIHdpdGggYHJ0dzg4L3VzYi5jYCBzbyBJIGNhbiB1bmRlcnN0YW5kIHRoZSBkcml2ZXImIzM5O3MgYmVoYXZpb3IgYW5kIGRlcGVuZGVuY2llcyB3aXRoaW4gdGhlIGtlcm5lbCBidWlsZCBzeXN0ZW0gYW5kLCB1bHRpbWF0ZWx5LCBlbnN1cmUgdGhhdCB0aGUgbW9kdWxlIGlzIGJlaGF2aW5nIG9wdGltYWxseSBmb3IgdGhlIHVzZXImIzM5O3Mgc2V0dXAuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Ni8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMTQgMDY6NDE8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7dXNiLm8mIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L01ha2VmaWxlJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvTWFrZWZpbGU9MTEwPXJ0dzg4X3NkaW8tb2Jqc1x0XHRcdDo9IHNkaW8ub1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9NYWtlZmlsZS0xMTEtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L01ha2VmaWxlOjExMjpvYmotJChDT05GSUdfUlRXODhfVVNCKVx0XHQmIzQzOz0gcnR3ODhfdXNiLm9cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvTWFrZWZpbGU6MTEzOnJ0dzg4X3VzYi1vYmpzXHRcdFx0Oj0gdXNiLm9cbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD43LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8xNCAwNjo0MTwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAzODU1CgkJCQkJCQlvdXRwdXQ6IDQzCgkJCQkJCQl0aG91Z2h0czogMjIKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPkhlcmUmIzM5O3MgbXkgdGFrZSBvbiB0aG9zZSB0aG91Z2h0cywgdGFpbG9yZWQgZm9yIGFuIGV4cGVydCBhdWRpZW5jZToKCioqS2VybmVsIENvbmZpZ3VyYXRpb24gRGVwZW5kZW5jaWVzIC0gUlRXODggVVNCKioKCkFscmlnaHQsIHNvIGBDT05GSUdfUlRXODhfVVNCYCBpcyB0aGUga2V5IGNvbmZpZ3VyYXRpb24gb3B0aW9uIHdlJiMzOTtyZSBsb29raW5nIGF0LiBMZXQmIzM5O3MgZGlnIGludG8gdGhpcy4gSSBuZWVkIHRvIHVuZGVyc3RhbmQgaXRzIGRlcGVuZGVuY2llcyBiZWZvcmUgbWFraW5nIGFueSBjaGFuZ2VzLiBObyBwb2ludCBpbiBlbmFibGluZyB0aGlzIHdpdGhvdXQga25vd2luZyB3aGF0IGVsc2UgSSYjMzk7bSBwdWxsaW5nIGluLiBXZSBuZWVkIHRvIGNoZWNrIGlmIHRoZXJlIGFyZSBhbnkgYmFzZSBvcHRpb25zLCBvdGhlciBkcml2ZXJzIG9yIG1vZHVsZXMgcmVxdWlyZWQuIEkmIzM5O20gdGhpbmtpbmcsIGFyZSB0aGVyZSBzcGVjaWZpYyBVU0IgY29udHJvbGxlciBkcml2ZXJzIG5lZWRlZD8gQW55IGdlbmVyaWMgd2lyZWxlc3Mgc3RhY2sgZWxlbWVudHM/IEFueSBjb25mbGljdCB3aXRoIGV4aXN0aW5nIGhhcmR3YXJlIGNvbmZpZ3VyYXRpb25zPyBUaW1lIHRvIGZpcmUgdXAgdGhlIGNvbmZpZ3VyYXRpb24gdG9vbHMgYW5kIHNlZSB0aGUgZGVwZW5kZW5jeSB0cmVlLiBLbm93aW5nIHRoZSBpbXBsaWNhdGlvbnMgd2lsbCBhdm9pZCBhbnkgbmFzdHkgc3VycHJpc2VzIGRvd24gdGhlIGxpbmUuIFdlIGNhbiYjMzk7dCBoYXZlIGJyZWFrYWdlIGJlY2F1c2Ugd2UgaGF2ZW4mIzM5O3QgdHJhY2VkIHRoZSBkZXBlbmRlbmNpZXMgcHJvcGVybHkuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+OC8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMTQgMDY6NDE8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7Y29uZmlnIFJUVzg4X1VTQiYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWc9MjA9Y29uZmlnIFJUVzg4X1NESU9cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWctMjItXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWc6MjM6Y29uZmlnIFJUVzg4X1VTQlxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnLTI0LVx0dHJpc3RhdGVcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD45LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8xNCAwNjo0MTwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA0MjA3CgkJCQkJCQlvdXRwdXQ6IDQyCgkJCQkJCQl0aG91Z2h0czogMTIKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPk9rYXksIGhlcmUmIzM5O3MgbXkgYXR0ZW1wdCBhdCBzdW1tYXJpemluZyB0aGUgdGhvdWdodCBwcm9jZXNzLCB0YWlsb3JlZCBmb3IgYW4gZXhwZXJ0IGF1ZGllbmNlLCBhbmQgd3JpdHRlbiBpbiB0aGUgZmlyc3QgcGVyc29uOgoKKipBbmFseXppbmcgRGVwZW5kZW5jaWVzKioKClJpZ2h0LCBzbyBJIG5lZWQgdG8gdW5kZXJzdGFuZCB3aGF0IHRoaXMgdGhpbmcgKmFmZmVjdHMqIG9yICpyZWxpZXMgdXBvbiouIFdoYXQgb3RoZXIgcHJvY2Vzc2VzLCBzeXN0ZW1zLCBvciBkYXRhIGVsZW1lbnRzIGFyZSBkaXJlY3RseSBsaW5rZWQgdG8gaXQ/IFdoYXQgYXJlIHRoZSBpbXBsaWNhdGlvbnMgb2YgY2hhbmdlcyB0byAqaXQqPyBJIG5lZWQgdG8gdGhpbmsgdGhyb3VnaCBldmVyeSBwb3NzaWJsZSBjb25uZWN0aW9uIOKAkyBkaXJlY3QgZGVwZW5kZW5jaWVzLCBpbmRpcmVjdCBlZmZlY3RzLCBjYXNjYWRpbmcgaW1wYWN0cy4gTGV0IG1lIG1hcCBvdXQgdGhlIHJlbGF0aW9uc2hpcHMg4oCTIGNhdXNlIGFuZCBlZmZlY3QsIHVwc3RyZWFtIGFuZCBkb3duc3RyZWFtLiBUaGlzIHJlcXVpcmVzIGEgdGhvcm91Z2ggdW5kZXJzdGFuZGluZyBvZiB0aGUgb3ZlcmFsbCBzeXN0ZW0gYXJjaGl0ZWN0dXJlLCBkYXRhIGZsb3csIGFuZCBwb3RlbnRpYWwgZmFpbHVyZSBwb2ludHMuIEkgbmVlZCB0byBiZSBtZXRob2RpY2FsLiBMZXQmIzM5O3Mgc3RhcnQgd2l0aCB0aGUgaW1tZWRpYXRlIHZpY2luaXR5IGFuZCB0aGVuIGV4dHJhcG9sYXRlIG91dHdhcmRzIHRvIGdldCBhIGNvbXByZWhlbnNpdmUgdmlldy4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMC8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMTQgMDY6NDI8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7UlRXODhfVVNCJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZz0yMD1jb25maWcgUlRXODhfU0RJT1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZy0yMi1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZzoyMzpjb25maWcgUlRXODhfVVNCXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWctMjQtXHR0cmlzdGF0ZVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZz04Mj1jb25maWcgUlRXODhfODgyMkJVXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnLTg1LVx0c2VsZWN0IFJUVzg4X0NPUkVcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZzo4NjpcdHNlbGVjdCBSVFc4OF9VU0JcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZy04Ny1cdHNlbGVjdCBSVFc4OF84ODIyQlxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZz0xMTU9Y29uZmlnIFJUVzg4Xzg4MjJDVVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZy0xMTgtXHRzZWxlY3QgUlRXODhfQ09SRVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnOjExOTpcdHNlbGVjdCBSVFc4OF9VU0JcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZy0xMjAtXHRzZWxlY3QgUlRXODhfODgyMkNcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWc9MTYyPWNvbmZpZyBSVFc4OF84NzIzRFVcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWctMTY1LVx0c2VsZWN0IFJUVzg4X0NPUkVcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZzoxNjY6XHRzZWxlY3QgUlRXODhfVVNCXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWctMTY3LVx0c2VsZWN0IFJUVzg4Xzg3MjNEXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnPTE5NT1jb25maWcgUlRXODhfODgyMUNVXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnLTE5OC1cdHNlbGVjdCBSVFc4OF9DT1JFXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWc6MTk5Olx0c2VsZWN0IFJUVzg4X1VTQlxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnLTIwMC1cdHNlbGVjdCBSVFc4OF84ODIxQ1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZz0yMDY9Y29uZmlnIFJUVzg4Xzg4MjFBVVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZy0yMDktXHRzZWxlY3QgUlRXODhfQ09SRVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnOjIxMDpcdHNlbGVjdCBSVFc4OF9VU0JcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZy0yMTEtXHRzZWxlY3QgUlRXODhfODgyMUFcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWc9MjE3PWNvbmZpZyBSVFc4OF84ODEyQVVcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWctMjIwLVx0c2VsZWN0IFJUVzg4X0NPUkVcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZzoyMjE6XHRzZWxlY3QgUlRXODhfVVNCXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWctMjIyLVx0c2VsZWN0IFJUVzg4Xzg4MTJBXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnPTIzOT1jb25maWcgUlRXODhfODgxNEFVXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnLTI0Mi1cdHNlbGVjdCBSVFc4OF9DT1JFXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWc6MjQzOlx0c2VsZWN0IFJUVzg4X1VTQlxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnLTI0NC1cdHNlbGVjdCBSVFc4OF84ODE0QVxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjExLzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8xNCAwNjo0MjwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA1NDQ2CgkJCQkJCQlvdXRwdXQ6IDQxCgkJCQkJCQl0aG91Z2h0czogNTYKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqTXkgSW5pdGlhbCBUaG91Z2h0cyBvbiBXaUZpIERyaXZlciBDb25maWd1cmF0aW9uKioKCk9rYXksIHNvIHdlJiMzOTtyZSBsb29raW5nIGF0IGVuYWJsaW5nIGEgUmVhbHRlayBXaUZpIGRyaXZlciBoZXJlLiBNeSBpbnN0aW5jdCBpcyB0byBzdGFydCBicm9hZC4gTGV0JiMzOTtzIGVuYWJsZSB0aGUgYmFzZSBgUlRXODhgIG1vZHVsZSBhbmQgdGhlbiBhbHNvIHRhcmdldCB0aGUgc3BlY2lmaWMgYFJUVzg4Xzg4MjJCVWAgc2luY2UgdGhhdCBzZWVtcyB0byBiZSBhIGNvbW1vbiB2YXJpYW50LiBJIGFsd2F5cyBmaW5kIGl0IGJlc3QgdG8gc3RhcnQgd2l0aCBhIG1vcmUgY29tcHJlaGVuc2l2ZSBhcHByb2FjaC4gTm93LCBiZWZvcmUgd2UgZ28gYW55IGZ1cnRoZXIsIGxldCYjMzk7cyBqdXN0IHF1aWNrbHkgY2hlY2sgb24gYFJUVzg4YCYjMzk7cyBkZXBlbmRlbmNpZXMuIEkgbmVlZCB0byBtYWtlIHN1cmUgd2UgYXJlbiYjMzk7dCBpbnRyb2R1Y2luZyBhbnkgY29uZmxpY3RzIG9yIHB1bGxpbmcgaW4gdW5uZWNlc3NhcnkgYmFnZ2FnZS4gVW5kZXJzdGFuZGluZyB0aGUgYnVpbGQgc3lzdGVtIGFuZCBkZXBlbmRlbmNpZXMgdGhvcm91Z2hseSBpcyBrZXkgaGVyZS4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMi8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMTQgMDY6NDI8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7Y29uZmlnIFJUVzg4JiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZy0xLSMgU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjAtb25seVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnOjI6bWVudWNvbmZpZyBSVFc4OFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnLTMtXHR0cmlzdGF0ZSBcJiMzNDtSZWFsdGVrIDgwMi4xMWFjIHdpcmVsZXNzIGNoaXBzIHN1cHBvcnRcJiMzNDtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWc9MTE9aWYgUlRXODhcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZy0xMi1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZzoxMzpjb25maWcgUlRXODhfQ09SRVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnLTE0LVx0dHJpc3RhdGVcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWctMTYtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWc6MTc6Y29uZmlnIFJUVzg4X1BDSVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnLTE4LVx0dHJpc3RhdGVcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZy0xOS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZzoyMDpjb25maWcgUlRXODhfU0RJT1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnLTIxLVx0dHJpc3RhdGVcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZy0yMi1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZzoyMzpjb25maWcgUlRXODhfVVNCXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWctMjQtXHR0cmlzdGF0ZVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnLTI1LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnOjI2OmNvbmZpZyBSVFc4OF84ODIyQlxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnLTI3LVx0dHJpc3RhdGVcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZy0yOC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZzoyOTpjb25maWcgUlRXODhfODgyMkNcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZy0zMC1cdHRyaXN0YXRlXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWctMzEtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWc6MzI6Y29uZmlnIFJUVzg4Xzg3MjNYXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWctMzMtXHR0cmlzdGF0ZVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnLTM0LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnOjM1OmNvbmZpZyBSVFc4OF84NzAzQlxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnLTM2LVx0dHJpc3RhdGVcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWctMzgtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWc6Mzk6Y29uZmlnIFJUVzg4Xzg3MjNEXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWctNDAtXHR0cmlzdGF0ZVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZy00Mi1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZzo0Mzpjb25maWcgUlRXODhfODgyMUNcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZy00NC1cdHRyaXN0YXRlXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWctNDUtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWc6NDY6Y29uZmlnIFJUVzg4Xzg4WFhBXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWctNDctXHR0cmlzdGF0ZVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnLTQ4LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnOjQ5OmNvbmZpZyBSVFc4OF84ODIxQVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnLTUwLVx0dHJpc3RhdGVcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWctNTItXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWc6NTM6Y29uZmlnIFJUVzg4Xzg4MTJBXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWctNTQtXHR0cmlzdGF0ZVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZy01Ni1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZzo1Nzpjb25maWcgUlRXODhfODgxNEFcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZy01OC1cdHRyaXN0YXRlXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWctNTktXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWc6NjA6Y29uZmlnIFJUVzg4Xzg4MjJCRVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnLTYxLVx0dHJpc3RhdGUgXCYjMzQ7UmVhbHRlayA4ODIyQkUgUENJIHdpcmVsZXNzIG5ldHdvcmsgYWRhcHRlclwmIzM0O1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZy03MC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZzo3MTpjb25maWcgUlRXODhfODgyMkJTXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWctNzItXHR0cmlzdGF0ZSBcJiMzNDtSZWFsdGVrIDg4MjJCUyBTRElPIHdpcmVsZXNzIG5ldHdvcmsgYWRhcHRlclwmIzM0O1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZy04MS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZzo4Mjpjb25maWcgUlRXODhfODgyMkJVXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWctODMtXHR0cmlzdGF0ZSBcJiMzNDtSZWFsdGVrIDg4MjJCVSBVU0Igd2lyZWxlc3MgbmV0d29yayBhZGFwdGVyXCYjMzQ7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnLTkyLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnOjkzOmNvbmZpZyBSVFc4OF84ODIyQ0VcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZy05NC1cdHRyaXN0YXRlIFwmIzM0O1JlYWx0ZWsgODgyMkNFIFBDSSB3aXJlbGVzcyBuZXR3b3JrIGFkYXB0ZXJcJiMzNDtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWctMTAzLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnOjEwNDpjb25maWcgUlRXODhfODgyMkNTXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWctMTA1LVx0dHJpc3RhdGUgXCYjMzQ7UmVhbHRlayA4ODIyQ1MgU0RJTyB3aXJlbGVzcyBuZXR3b3JrIGFkYXB0ZXJcJiMzNDtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWctMTE0LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnOjExNTpjb25maWcgUlRXODhfODgyMkNVXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWctMTE2LVx0dHJpc3RhdGUgXCYjMzQ7UmVhbHRlayA4ODIyQ1UgVVNCIHdpcmVsZXNzIG5ldHdvcmsgYWRhcHRlclwmIzM0O1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZy0xMjUtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWc6MTI2OmNvbmZpZyBSVFc4OF84NzIzREVcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZy0xMjctXHR0cmlzdGF0ZSBcJiMzNDtSZWFsdGVrIDg3MjNERSBQQ0kgd2lyZWxlc3MgbmV0d29yayBhZGFwdGVyXCYjMzQ7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnLTEzNi1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZzoxMzc6Y29uZmlnIFJUVzg4Xzg3MjNEU1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnLTEzOC1cdHRyaXN0YXRlIFwmIzM0O1JlYWx0ZWsgODcyM0RTIFNESU8gd2lyZWxlc3MgbmV0d29yayBhZGFwdGVyXCYjMzQ7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnLTE0Ny1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZzoxNDg6Y29uZmlnIFJUVzg4Xzg3MjNDU1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnLTE0OS1cdHRyaXN0YXRlIFwmIzM0O1JlYWx0ZWsgODcyM0NTIFNESU8gd2lyZWxlc3MgbmV0d29yayBhZGFwdGVyXCYjMzQ7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnLTE2MS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZzoxNjI6Y29uZmlnIFJUVzg4Xzg3MjNEVVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnLTE2My1cdHRyaXN0YXRlIFwmIzM0O1JlYWx0ZWsgODcyM0RVIFVTQiB3aXJlbGVzcyBuZXR3b3JrIGFkYXB0ZXJcJiMzNDtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWctMTcyLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnOjE3Mzpjb25maWcgUlRXODhfODgyMUNFXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWctMTc0LVx0dHJpc3RhdGUgXCYjMzQ7UmVhbHRlayA4ODIxQ0UgUENJIHdpcmVsZXNzIG5ldHdvcmsgYWRhcHRlclwmIzM0O1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZy0xODMtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWc6MTg0OmNvbmZpZyBSVFc4OF84ODIxQ1NcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZy0xODUtXHR0cmlzdGF0ZSBcJiMzNDtSZWFsdGVrIDg4MjFDUyBTRElPIHdpcmVsZXNzIG5ldHdvcmsgYWRhcHRlclwmIzM0O1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZy0xOTQtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWc6MTk1OmNvbmZpZyBSVFc4OF84ODIxQ1VcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZy0xOTYtXHR0cmlzdGF0ZSBcJiMzNDtSZWFsdGVrIDg4MjFDVSBVU0Igd2lyZWxlc3MgbmV0d29yayBhZGFwdGVyXCYjMzQ7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnLTIwNS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZzoyMDY6Y29uZmlnIFJUVzg4Xzg4MjFBVVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnLTIwNy1cdHRyaXN0YXRlIFwmIzM0O1JlYWx0ZWsgODgyMUFVLzg4MTFBVSBVU0Igd2lyZWxlc3MgbmV0d29yayBhZGFwdGVyXCYjMzQ7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnLTIxNi1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZzoyMTc6Y29uZmlnIFJUVzg4Xzg4MTJBVVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnLTIxOC1cdHRyaXN0YXRlIFwmIzM0O1JlYWx0ZWsgODgxMkFVIFVTQiB3aXJlbGVzcyBuZXR3b3JrIGFkYXB0ZXJcJiMzNDtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWctMjI3LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnOjIyODpjb25maWcgUlRXODhfODgxNEFFXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWctMjI5LVx0dHJpc3RhdGUgXCYjMzQ7UmVhbHRlayA4ODE0QUUgUENJIHdpcmVsZXNzIG5ldHdvcmsgYWRhcHRlclwmIzM0O1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZy0yMzgtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWc6MjM5OmNvbmZpZyBSVFc4OF84ODE0QVVcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZy0yNDAtXHR0cmlzdGF0ZSBcJiMzNDtSZWFsdGVrIDg4MTRBVSBVU0Igd2lyZWxlc3MgbmV0d29yayBhZGFwdGVyXCYjMzQ7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnLTI0OS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZzoyNTA6Y29uZmlnIFJUVzg4X0RFQlVHXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWctMjUxLVx0Ym9vbCBcJiMzNDtSZWFsdGVrIHJ0dzg4IGRlYnVnIHN1cHBvcnRcJiMzNDtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWctMjU3LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnOjI1ODpjb25maWcgUlRXODhfREVCVUdGU1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnLTI1OS1cdGJvb2wgXCYjMzQ7UmVhbHRlayBydHc4OCBkZWJ1Z2ZzIHN1cHBvcnRcJiMzNDtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWctMjY1LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnOjI2Njpjb25maWcgUlRXODhfTEVEU1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnLTI2Ny1cdGJvb2xcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMy8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMTQgMDY6NDI8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogODgwNwoJCQkJCQkJb3V0cHV0OiA1MgoJCQkJCQkJdGhvdWdodHM6IDcxCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5IZXJlJiMzOTtzIG15IHRha2Ugb24gdGhpcywgY29uc2lkZXJpbmcgSSYjMzk7bSBkZWVwIGluIHRoZXNlIGtpbmRzIG9mIGtlcm5lbCBtb2R1bGUgZGVwZW5kZW5jaWVzOgoKKipLZXJuZWwgTW9kdWxlIERlcGVuZGVuY3kgQ2hlY2sqKgoKT2theSwgc28gSSYjMzk7bSBsb29raW5nIGF0IHRoaXMgZHJpdmVyIHNpdHVhdGlvbi4gRmlyc3QsIEkgbmVlZCB0byBtYWtlIHN1cmUgSSBoYXZlIGFsbCB0aGUgbmVjZXNzYXJ5IG1vZHVsZXMgbG9hZGVkLCBnaXZlbiB0aGUgZGVwZW5kZW5jaWVzLiBJdCYjMzk7cyBwcmV0dHkgc3RyYWlnaHRmb3J3YXJkOiBgUlRXODhgIHJlbGllcyBvbiBgTUFDODAyMTFgLCB3aGljaCBtYWtlcyBzZW5zZSBhcyBpdCBwcm92aWRlcyB0aGUgY29yZSA4MDIuMTEgZnVuY3Rpb25hbGl0eS4gIFRoZXJlZm9yZSwgSSYjMzk7bGwgbmVlZCB0byBjb25maXJtIHRoYXQgYE1BQzgwMjExYCwgdGhlIGJhc2UgZHJpdmVyLCBpcyBwcmVzZW50LCBhbG9uZyB3aXRoIGJvdGggYFJUVzg4YCBhbmQgdGhlIHNwZWNpZmljIHZhcmlhbnQgYFJUVzg4Xzg4MjJCVWAuIEkmIzM5O2xsIGhhdmUgdG8gdmVyaWZ5IHRoZSBtb2R1bGUgbG9hZGluZyBvcmRlciwgdG9vLCBqdXN0IHRvIGJlIG9uIHRoZSBzYWZlIHNpZGUuCgpOb3csIEkmIzM5O20gZ29pbmcgdG8gZGlnIGEgYml0IGRlZXBlci4gVGltZSB0byBleGFtaW5lIHRoYXQgYHJ0d191c2JfdHhfcXVldWVfbWFwcGluZ190b19xc2VsYCBmdW5jdGlvbi4gSSB3YW50IHRvIHNlZSBob3cgdGhlIFVTQiB0cmFuc21pc3Npb24gcXVldWVzIGFyZSBiZWluZyBtYXBwZWQgdG8gdGhlIHF1ZXVlIHNlbGVjdC4gSSYjMzk7bSBob3BpbmcgSSBkb24mIzM5O3QgaGF2ZSB0byByZXdyaXRlIHRoZSBxdWV1ZSBoYW5kbGluZy4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xNC8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMTQgMDY6NDI8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7cnR3X3VzYl90eF9xdWV1ZV9tYXBwaW5nX3RvX3FzZWwmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3VzYi5jJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdXNiLmM9NTUwPXN0YXRpYyBpbnQgcnR3X3VzYl93cml0ZV9kYXRhX2gyYyhzdHJ1Y3QgcnR3X2RldiAqcnR3ZGV2LCB1OCAqYnVmLCB1MzIgc2l6ZSlcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3VzYi5jLTU1OS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdXNiLmM6NTYwOnN0YXRpYyB1OCBydHdfdXNiX3R4X3F1ZXVlX21hcHBpbmdfdG9fcXNlbChzdHJ1Y3Qgc2tfYnVmZiAqc2tiKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC91c2IuYy01NjEte1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdXNiLmM9NTgxPXN0YXRpYyBpbnQgcnR3X3VzYl90eF93cml0ZShzdHJ1Y3QgcnR3X2RldiAqcnR3ZGV2LFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdXNiLmMtNTkwLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC91c2IuYzo1OTE6XHRwa3RfaW5mby1cdTAwM2Vxc2VsID0gcnR3X3VzYl90eF9xdWV1ZV9tYXBwaW5nX3RvX3FzZWwoc2tiKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdXNiLmMtNTkyLVx0cGt0X2Rlc2MgPSBza2JfcHVzaChza2IsIGNoaXAtXHUwMDNldHhfcGt0X2Rlc2Nfc3opO1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjE1LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8xNCAwNjo0MjwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA5NTA0CgkJCQkJCQlvdXRwdXQ6IDQ1CgkJCQkJCQl0aG91Z2h0czogMTQKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPk9rYXksIGhlcmUmIzM5O3MgbXkgaW50ZXJwcmV0YXRpb24gb2YgdGhhdCB0aG91Z2h0IHByb2Nlc3MsIGFzc3VtaW5nIEkmIzM5O20gZGVlcCBpbiB0aGUgd2VlZHMgb2YgZW1iZWRkZWQgc3lzdGVtcyBhbmQgVVNCIGRyaXZlciBkZXZlbG9wbWVudDoKCioqVGhpbmtpbmcgVGhyb3VnaCBhIFVTQiBUcmFuc21pc3Npb24gRnVuY3Rpb24gQ2FsbCoqCgpBbHJpZ2h0LCBzbyBgcnR3X3VzYl90eF93cml0ZWAgaXMgdGhlIGNhbGxlci4gVGhhdCBpbW1lZGlhdGVseSB0ZWxscyBtZSB0aGlzIGZ1bmN0aW9uIGlzIHJlc3BvbnNpYmxlIGZvciBpbml0aWF0aW5nIGEgVVNCIHRyYW5zbWlzc2lvbiwgbGlrZWx5IGZvciBhIFJlYWx0ZWsgV2ktRmkgZGV2aWNlLiBJJiMzOTttIGFscmVhZHkgdGhpbmtpbmcgYWJvdXQgd2hhdCB0aGF0IGltcGxpZXMuIFRoaXMgcHJvYmFibHkgbWVhbnMgdGhlcmUmIzM5O3MgYSBoaWdoZXItbGV2ZWwgZnVuY3Rpb24sIHBlcmhhcHMgYHJ0d19uZXRpZl90cmFuc21pdGAsIHdoaWNoIGlzIHJlc3BvbnNpYmxlIGZvciB0YWtpbmcgbmV0d29yayBwYWNrZXRzIGFuZCB1bHRpbWF0ZWx5IGNhbGxpbmcgKnRoaXMqIGZ1bmN0aW9uIHRvIGFjdHVhbGx5IHNlbmQgdGhlIGRhdGEgb3ZlciB0aGUgVVNCIGJ1cy4KCk15IG1pbmQganVtcHMgdG8gdGhlIGRhdGEgc3RydWN0dXJlcyBpbnZvbHZlZDogSeKAmWxsIG5lZWQgdG8gdW5kZXJzdGFuZCB0aGUgYnVmZmVyIHdoZXJlIHRoZSBkYXRhIHRvIGJlIHRyYW5zbWl0dGVkIGxpdmVzLCBob3cgaXTigJlzIG1hcHBlZCB0byBVU0IgZW5kcG9pbnRzLCB3aGF0IGRlc2NyaXB0b3JzIGFyZSB1c2VkLCBhbmQgd2hldGhlciB0aGVyZSYjMzk7cyBzb21lIGtpbmQgb2YgRE1BIGludm9sdmVkIHRvIHJlZHVjZSBDUFUgbG9hZC4gSSBuZWVkIHRvIHJlZnJlc2ggbXkgbWVtb3J5IGFib3V0IHRoZSBSZWFsdGVrLXNwZWNpZmljIG51YW5jZXMgb2YgdGhlaXIgVVNCIGRyaXZlciBpbXBsZW1lbnRhdGlvbi4gSXMgaXQgcG9sbGluZywgaW50ZXJydXB0LWRyaXZlbiwgb3IgdXNpbmcgc29tZSBraW5kIG9mIHJpbmcgYnVmZmVyIG1lY2hhbmlzbT8KCknigJltIGFsc28gd29uZGVyaW5nIGFib3V0IHRoZSBjb250ZXh0LiBXaGF0IHJlc291cmNlcyBhcmUgYWxyZWFkeSBpbiB1c2U/IEFyZSB0aGVyZSBsb2NrcyBvciBtdXRleGVzIHRvIHdvcnJ5IGFib3V0PyBBcmUgd2UgZGVhbGluZyB3aXRoIGEgc2luZ2xlIHBhY2tldCBvciBhIGxhcmdlciB0cmFuc21pc3Npb24gc3BsaXQgaW50byBjaHVua3M/IEFueSBlcnJvciBoYW5kbGluZz8gVGhpcyBmdW5jdGlvbiBzaG91bGQgYmUgcm9idXN0IHRvIGhhbmRsZSBkaXNjb25uZWN0cywgZXJyb3JzIG9uIHRoZSBVU0IgYnVzLCBhbmQgcG90ZW50aWFsIGJ1ZmZlciBvdmVyZmxvd3MuIEkgaGF2ZSB0byBiZSByZWFkeSB0byBkZWJ1ZyB0aG9zZSBzY2VuYXJpb3MuIEtub3dpbmcgYHJ0d191c2JfdHhfd3JpdGVgIGlzIHRoZSBjYWxsZXIsIEkgaW1tZWRpYXRlbHkgc2VlIHRoZSBjcml0aWNhbCBwYXJ0IG9mIHRoZSBzeXN0ZW0gaXMgdGhlIFVTQiB0cmFuc2Zlci4gSSBuZWVkIHRvIGtlZXAgaW4gbWluZCB0aGUgZGV2aWNlLCBhbmQgdGhlIGhvc3QsIGFuZCB0aGUgZGF0YSB0cmFuc2ZlciBwcm90b2NvbCB0byBrZWVwIHRoZSBzeXN0ZW0gd29ya2luZy4KCkl0IGFsbCBib2lscyBkb3duIHRvIHRoZSBVU0IgcGFja2V0IHRyYW5zbWlzc2lvbi4gSSB3aWxsIGhhdmUgdG8gZW5zdXJlIHRoYXQgYWxsIGRhdGEgaXMgY29ycmVjdGx5IGNvcGllZCB0byB0aGUgcHJvcGVyIGhhcmR3YXJlIGJ1ZmZlcnMsIGFuZCB0aGUgVVNCIGNvbnRyb2xsZXIgaGFzIHRoZSByaWdodCBkYXRhIHRvIHN0YXJ0IHRyYW5zZmVycmluZy4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xNi8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMTQgMDY6NDI8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7cnR3X3VzYl90eF93cml0ZSYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdXNiLmMmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC91c2IuYz01NjA9c3RhdGljIHU4IHJ0d191c2JfdHhfcXVldWVfbWFwcGluZ190b19xc2VsKHN0cnVjdCBza19idWZmICpza2IpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC91c2IuYy01ODAtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3VzYi5jOjU4MTpzdGF0aWMgaW50IHJ0d191c2JfdHhfd3JpdGUoc3RydWN0IHJ0d19kZXYgKnJ0d2RldixcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdXNiLmMtNTgyLVx0XHRcdCAgICBzdHJ1Y3QgcnR3X3R4X3BrdF9pbmZvICpwa3RfaW5mbyxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3VzYi5jPTk1Mz1zdGF0aWMgY29uc3Qgc3RydWN0IHJ0d19oY2lfb3BzIHJ0d191c2Jfb3BzID0ge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC91c2IuYzo5NTQ6XHQudHhfd3JpdGUgPSBydHdfdXNiX3R4X3dyaXRlLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC91c2IuYy05NTUtXHQudHhfa2lja19vZmYgPSBydHdfdXNiX3R4X2tpY2tfb2ZmLFxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjE3LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8xNCAwNjo0MjwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAxMDI1MwoJCQkJCQkJb3V0cHV0OiA0MwoJCQkJCQkJdGhvdWdodHM6IDEzMQoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipBbmFseXppbmcgdGhlIHJ0d191c2JfdHggUGF0aCoqCgpPa2F5LCBzbyBJJiMzOTttIGxvb2tpbmcgaW50byB0aGUgYHJ0d191c2JfdHhfd3JpdGVgIGZ1bmN0aW9uOyBpdCYjMzk7cyBhIGNhbGxiYWNrIHdpdGhpbiB0aGUgYHJ0d19oY2lfb3BzYCBzdHJ1Y3R1cmUuIE15IGluaXRpYWwgaW5zdGluY3QgdGVsbHMgbWUgdGhpcyAqaGFzKiB0byBiZSBwYXJ0IG9mIHRoZSBtYWM4MDIxMSB0cmFuc21pdCBwYXRoLiBUaGF0IHNlZW1zIGxpa2UgYSBsb2dpY2FsIGNvbm5lY3Rpb24gdG8gbWFrZS4KCkFscmlnaHQsIHRpbWUgdG8gZGlnIGluLiBMZXQmIzM5O3MgbWFrZSBgcnR3X3VzYl90eF93cml0ZWAgYW5kIGBydHdfdXNiX3R4X2tpY2tfb2ZmYCBvdXIgZm9jYWwgcG9pbnRzIGZvciBub3cg4oCTIHRob3NlIHNlZW0gbGlrZSBrZXkgcGllY2VzIHRvIHVuZGVyc3RhbmQuCgpXYWl0IGEgc2Vjb25k4oCmIGBydHdfdXNiX3R4X3dyaXRlYCBpcyAqc3RhdGljKj8gSG1tLCB0aGF0JiMzOTtzIGEgYml0IG9mIGEgd3JpbmtsZS4gU3RhdGljIGZ1bmN0aW9ucyBjYW4gYmUgdHJpY2t5IHdoZW4gdHJhY2luZyBleGVjdXRpb24gcGF0aHMsIHNpbmNlIHRoZXkgY2FuIGJlIGEgYml0IG1vcmUgbGltaXRlZCBpbiBzY29wZS4gTWF5YmUgaXQmIzM5O3Mgbm90IHRoZSBiZXN0IHN5bWJvbCB0byBmb2N1cyBvbiBkaXJlY3RseS4gSSYjMzk7bGwgaGF2ZSB0byBrZWVwIHRoYXQgaW4gbWluZC4KCkxldCYjMzk7cyBzd2l0Y2ggZ2VhcnMgYSBiaXQuIFBlcmhhcHMgdW5kZXJzdGFuZGluZyBob3cgYHJ0d191c2Jfb3BzYCBpcyB1c2VkIHdpbGwgZ2l2ZSBtZSBhIGJldHRlciBvdmVydmlldyBvZiB0aGUgb3ZlcmFsbCBmbG93IGFuZCBob3cgYHJ0d191c2JfdHhfd3JpdGVgIGZpdHMgaW50byB0aGUgcGljdHVyZS4gVGhhdCB3aWxsIGJlIGEgbW9yZSBwcm9kdWN0aXZlIGxpbmUgb2YgaW5xdWlyeS4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xOC8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMTQgMDY6NDI8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7cnR3X3VzYl9vcHMmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3VzYi5jJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdXNiLmM9OTMxPXN0YXRpYyB2b2lkIHJ0d191c2JfZHluYW1pY19yeF9hZ2coc3RydWN0IHJ0d19kZXYgKnJ0d2RldiwgYm9vbCBlbmFibGUpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC91c2IuYy05NTItXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3VzYi5jOjk1MzpzdGF0aWMgY29uc3Qgc3RydWN0IHJ0d19oY2lfb3BzIHJ0d191c2Jfb3BzID0ge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC91c2IuYy05NTQtXHQudHhfd3JpdGUgPSBydHdfdXNiX3R4X3dyaXRlLFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdXNiLmM9MTI2NT1pbnQgcnR3X3VzYl9wcm9iZShzdHJ1Y3QgdXNiX2ludGVyZmFjZSAqaW50ZiwgY29uc3Qgc3RydWN0IHVzYl9kZXZpY2VfaWQgKmlkKVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdXNiLmMtMTI4MS1cdHJ0d2Rldi1cdTAwM2VjaGlwID0gKHN0cnVjdCBydHdfY2hpcF9pbmZvICopaWQtXHUwMDNlZHJpdmVyX2luZm87XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3VzYi5jOjEyODI6XHRydHdkZXYtXHUwMDNlaGNpLm9wcyA9IFx1MDAyNnJ0d191c2Jfb3BzO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC91c2IuYy0xMjgzLVx0cnR3ZGV2LVx1MDAzZWhjaS50eXBlID0gUlRXX0hDSV9UWVBFX1VTQjtcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xOS8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMTQgMDY6NDI8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMTEwNDEKCQkJCQkJCW91dHB1dDogMzcKCQkJCQkJCXRob3VnaHRzOiAzMgoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+T2theSwgaGVyZSYjMzk7cyBteSBpbnRlcnByZXRhdGlvbiBvZiB0aG9zZSB0aG91Z2h0cywgcHJlc2VudGVkIGFzIGEgcGVyc29uYWwgdGhvdWdodCBwcm9jZXNzLCBhcyByZXF1ZXN0ZWQ6CgoqKlRyYWNpbmcgdGhlIERhdGEgVHJhbnNtaXNzaW9uIFBhdGgqKgoKUmlnaHQsIHNvIHRoZSBjYWxsYmFjayBmb3IgdGhpcyBwcm9jZXNzIGlzIHRyaWdnZXJlZCBieSBgcnR3ZGV2LSZndDtoY2kub3BzLSZndDt0eF93cml0ZWAuIE9rYXksIGdvb2QuIE5vdyBJIG5lZWQgdG8gZmlndXJlIG91dCB0aGUgdXBzdHJlYW0gbG9naWMuIFRoZSBjcml0aWNhbCBxdWVzdGlvbiBoZXJlIGlzOiAqd2hlcmUqIGlzIGB0eF93cml0ZWAgYWN0dWFsbHkgYmVpbmcgY2FsbGVkPyBJIG5lZWQgdG8gdHJhY2UgYmFjayBmcm9tIHRoYXQgcG9pbnQgdG8gdW5kZXJzdGFuZCB0aGUgY29tcGxldGUgZGF0YSB0cmFuc21pc3Npb24gcGF0aC4gVGhpcyBpcyBrZXkgdG8gZGVidWdnaW5nLiBMZXQmIzM5O3MgZGlnIGludG8gdGhlIGNhbGwgc3RhY2tzIGFuZCBpZGVudGlmeSB3aGVyZSB0aGlzIGZ1bmN0aW9uIGlzIGludm9rZWQuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MjAvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzE0IDA2OjQyPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O3R4X3dyaXRlJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC8mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9oY2kuaD05PXN0cnVjdCBydHdfaGNpX29wcyB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L2hjaS5oOjEwOlx0aW50ICgqdHhfd3JpdGUpKHN0cnVjdCBydHdfZGV2ICpydHdkZXYsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L2hjaS5oLTExLVx0XHRcdHN0cnVjdCBydHdfdHhfcGt0X2luZm8gKnBrdF9pbmZvLFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvaGNpLmgtMzUtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L2hjaS5oOjM2OnN0YXRpYyBpbmxpbmUgaW50IHJ0d19oY2lfdHhfd3JpdGUoc3RydWN0IHJ0d19kZXYgKnJ0d2RldixcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvaGNpLmgtMzctXHRcdFx0XHQgICBzdHJ1Y3QgcnR3X3R4X3BrdF9pbmZvICpwa3RfaW5mbyxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L2hjaS5oLTM5LXtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvaGNpLmg6NDA6XHRyZXR1cm4gcnR3ZGV2LVx1MDAzZWhjaS5vcHMtXHUwMDNldHhfd3JpdGUocnR3ZGV2LCBwa3RfaW5mbywgc2tiKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvaGNpLmgtNDEtfVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcGNpLmM9NzkwPXN0YXRpYyB2b2lkIHJ0d19wY2lfdHhfa2lja19vZmYoc3RydWN0IHJ0d19kZXYgKnJ0d2Rldilcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3BjaS5jLTc5OS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcGNpLmM6ODAwOnN0YXRpYyBpbnQgcnR3X3BjaV90eF93cml0ZV9kYXRhKHN0cnVjdCBydHdfZGV2ICpydHdkZXYsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3BjaS5jLTgwMS1cdFx0XHRcdCBzdHJ1Y3QgcnR3X3R4X3BrdF9pbmZvICpwa3RfaW5mbyxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3BjaS5jPTg3MD1zdGF0aWMgaW50IHJ0d19wY2lfd3JpdGVfZGF0YV9yc3ZkX3BhZ2Uoc3RydWN0IHJ0d19kZXYgKnJ0d2RldiwgdTggKmJ1Zixcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3BjaS5jLTg3Ny1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcGNpLmM6ODc4Olx0c2tiID0gcnR3X3R4X3dyaXRlX2RhdGFfcnN2ZF9wYWdlX2dldChydHdkZXYsIFx1MDAyNnBrdF9pbmZvLCBidWYsIHNpemUpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9wY2kuYy04NzktXHRpZiAoIXNrYilcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3BjaS5jLTg4MS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcGNpLmM6ODgyOlx0cmV0ID0gcnR3X3BjaV90eF93cml0ZV9kYXRhKHJ0d2RldiwgXHUwMDI2cGt0X2luZm8sIHNrYiwgUlRXX1RYX1FVRVVFX0JDTik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3BjaS5jLTg4My1cdGlmIChyZXQpIHtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3BjaS5jPTg5Nj1zdGF0aWMgaW50IHJ0d19wY2lfd3JpdGVfZGF0YV9oMmMoc3RydWN0IHJ0d19kZXYgKnJ0d2RldiwgdTggKmJ1ZiwgdTMyIHNpemUpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9wY2kuYy05MDEtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3BjaS5jOjkwMjpcdHNrYiA9IHJ0d190eF93cml0ZV9kYXRhX2gyY19nZXQocnR3ZGV2LCBcdTAwMjZwa3RfaW5mbywgYnVmLCBzaXplKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcGNpLmMtOTAzLVx0aWYgKCFza2IpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9wY2kuYy05MDUtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3BjaS5jOjkwNjpcdHJldCA9IHJ0d19wY2lfdHhfd3JpdGVfZGF0YShydHdkZXYsIFx1MDAyNnBrdF9pbmZvLCBza2IsIFJUV19UWF9RVUVVRV9IMkMpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9wY2kuYy05MDctXHRpZiAocmV0KSB7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9wY2kuYy05MTYtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3BjaS5jOjkxNzpzdGF0aWMgaW50IHJ0d19wY2lfdHhfd3JpdGUoc3RydWN0IHJ0d19kZXYgKnJ0d2RldixcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcGNpLmMtOTE4LVx0XHRcdCAgICBzdHJ1Y3QgcnR3X3R4X3BrdF9pbmZvICpwa3RfaW5mbyxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3BjaS5jLTkyNS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcGNpLmM6OTI2Olx0cmV0ID0gcnR3X3BjaV90eF93cml0ZV9kYXRhKHJ0d2RldiwgcGt0X2luZm8sIHNrYiwgcXVldWUpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9wY2kuYy05MjctXHRpZiAocmV0KVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcGNpLmM9MTYwNT1zdGF0aWMgY29uc3Qgc3RydWN0IHJ0d19oY2lfb3BzIHJ0d19wY2lfb3BzID0ge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9wY2kuYzoxNjA2Olx0LnR4X3dyaXRlID0gcnR3X3BjaV90eF93cml0ZSxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcGNpLmMtMTYwNy1cdC50eF9raWNrX29mZiA9IHJ0d19wY2lfdHhfa2lja19vZmYsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9zZGlvLmM9OTAwPXN0YXRpYyBpbnQgcnR3X3NkaW9fd3JpdGVfZGF0YV9yc3ZkX3BhZ2Uoc3RydWN0IHJ0d19kZXYgKnJ0d2RldiwgdTggKmJ1Zixcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3NkaW8uYy05MDUtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3NkaW8uYzo5MDY6XHRza2IgPSBydHdfdHhfd3JpdGVfZGF0YV9yc3ZkX3BhZ2VfZ2V0KHJ0d2RldiwgXHUwMDI2cGt0X2luZm8sIGJ1Ziwgc2l6ZSk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3NkaW8uYy05MDctXHRpZiAoIXNrYilcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3NkaW8uYz05MTM9c3RhdGljIGludCBydHdfc2Rpb193cml0ZV9kYXRhX2gyYyhzdHJ1Y3QgcnR3X2RldiAqcnR3ZGV2LCB1OCAqYnVmLCB1MzIgc2l6ZSlcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3NkaW8uYy05MTctXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3NkaW8uYzo5MTg6XHRza2IgPSBydHdfdHhfd3JpdGVfZGF0YV9oMmNfZ2V0KHJ0d2RldiwgXHUwMDI2cGt0X2luZm8sIGJ1Ziwgc2l6ZSk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3NkaW8uYy05MTktXHRpZiAoIXNrYilcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3NkaW8uYy05MjQtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3NkaW8uYzo5MjU6c3RhdGljIGludCBydHdfc2Rpb190eF93cml0ZShzdHJ1Y3QgcnR3X2RldiAqcnR3ZGV2LFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9zZGlvLmMtOTI2LVx0XHRcdCAgICAgc3RydWN0IHJ0d190eF9wa3RfaW5mbyAqcGt0X2luZm8sXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9zZGlvLmM9MTE3MD1zdGF0aWMgY29uc3Qgc3RydWN0IHJ0d19oY2lfb3BzIHJ0d19zZGlvX29wcyA9IHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvc2Rpby5jOjExNzE6XHQudHhfd3JpdGUgPSBydHdfc2Rpb190eF93cml0ZSxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvc2Rpby5jLTExNzItXHQudHhfa2lja19vZmYgPSBydHdfc2Rpb190eF9raWNrX29mZixcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3R4LmM9NTAyPXN0cnVjdCBza19idWZmICpcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdHguYzo1MDM6cnR3X3R4X3dyaXRlX2RhdGFfcnN2ZF9wYWdlX2dldChzdHJ1Y3QgcnR3X2RldiAqcnR3ZGV2LFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC90eC5jLTUwNC1cdFx0XHRcdHN0cnVjdCBydHdfdHhfcGt0X2luZm8gKnBrdF9pbmZvLFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdHguYy01MjUtfVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC90eC5jOjUyNjpFWFBPUlRfU1lNQk9MKHJ0d190eF93cml0ZV9kYXRhX3JzdmRfcGFnZV9nZXQpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC90eC5jLTUyNy1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdHguYz01Mjg9c3RydWN0IHNrX2J1ZmYgKlxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC90eC5jOjUyOTpydHdfdHhfd3JpdGVfZGF0YV9oMmNfZ2V0KHN0cnVjdCBydHdfZGV2ICpydHdkZXYsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3R4LmMtNTMwLVx0XHRcdCAgc3RydWN0IHJ0d190eF9wa3RfaW5mbyAqcGt0X2luZm8sXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC90eC5jLTU1MS19XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3R4LmM6NTUyOkVYUE9SVF9TWU1CT0wocnR3X3R4X3dyaXRlX2RhdGFfaDJjX2dldCk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3R4LmMtNTUzLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC90eC5jPTU1ND12b2lkIHJ0d190eChzdHJ1Y3QgcnR3X2RldiAqcnR3ZGV2LFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdHguYy01NjEtXHRydHdfdHhfcGt0X2luZm9fdXBkYXRlKHJ0d2RldiwgXHUwMDI2cGt0X2luZm8sIGNvbnRyb2wtXHUwMDNlc3RhLCBza2IpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC90eC5jOjU2MjpcdHJldCA9IHJ0d19oY2lfdHhfd3JpdGUocnR3ZGV2LCBcdTAwMjZwa3RfaW5mbywgc2tiKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdHguYy01NjMtXHRpZiAocmV0KSB7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC90eC5jPTYwOD1zdGF0aWMgaW50IHJ0d190eHFfcHVzaF9za2Ioc3RydWN0IHJ0d19kZXYgKnJ0d2Rldixcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3R4LmMtNjE4LVx0cnR3X3R4X3BrdF9pbmZvX3VwZGF0ZShydHdkZXYsIFx1MDAyNnBrdF9pbmZvLCB0eHEtXHUwMDNlc3RhLCBza2IpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC90eC5jOjYxOTpcdHJldCA9IHJ0d19oY2lfdHhfd3JpdGUocnR3ZGV2LCBcdTAwMjZwa3RfaW5mbywgc2tiKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdHguYy02MjAtXHRpZiAocmV0KSB7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC90eC5oPTEwNj1zdHJ1Y3Qgc2tfYnVmZiAqXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3R4Lmg6MTA3OnJ0d190eF93cml0ZV9kYXRhX3JzdmRfcGFnZV9nZXQoc3RydWN0IHJ0d19kZXYgKnJ0d2RldixcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdHguaC0xMDgtXHRcdFx0XHRzdHJ1Y3QgcnR3X3R4X3BrdF9pbmZvICpwa3RfaW5mbyxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3R4Lmg9MTEwPXN0cnVjdCBza19idWZmICpcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdHguaDoxMTE6cnR3X3R4X3dyaXRlX2RhdGFfaDJjX2dldChzdHJ1Y3QgcnR3X2RldiAqcnR3ZGV2LFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC90eC5oLTExMi1cdFx0XHQgIHN0cnVjdCBydHdfdHhfcGt0X2luZm8gKnBrdF9pbmZvLFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdXNiLmM9NTYwPXN0YXRpYyB1OCBydHdfdXNiX3R4X3F1ZXVlX21hcHBpbmdfdG9fcXNlbChzdHJ1Y3Qgc2tfYnVmZiAqc2tiKVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdXNiLmMtNTgwLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC91c2IuYzo1ODE6c3RhdGljIGludCBydHdfdXNiX3R4X3dyaXRlKHN0cnVjdCBydHdfZGV2ICpydHdkZXYsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3VzYi5jLTU4Mi1cdFx0XHQgICAgc3RydWN0IHJ0d190eF9wa3RfaW5mbyAqcGt0X2luZm8sXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC91c2IuYz05NTM9c3RhdGljIGNvbnN0IHN0cnVjdCBydHdfaGNpX29wcyBydHdfdXNiX29wcyA9IHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdXNiLmM6OTU0Olx0LnR4X3dyaXRlID0gcnR3X3VzYl90eF93cml0ZSxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdXNiLmMtOTU1LVx0LnR4X2tpY2tfb2ZmID0gcnR3X3VzYl90eF9raWNrX29mZixcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4yMS8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMTQgMDY6NDI8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMTQ1MTUKCQkJCQkJCW91dHB1dDogMzgKCQkJCQkJCXRob3VnaHRzOiAyNAoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+SGVyZSYjMzk7cyBteSB0aG91Z2h0IHByb2Nlc3MsIGFzIHJlcXVlc3RlZDoKCioqQ2hlY2tpbmcgdGhlIE5hdHVyZSBvZiBgcnR3X3R4YCoqCgpPa2F5LCBsZXQmIzM5O3MgemVybyBpbiBvbiB0aGlzIGBydHdfdHhgIHN5bWJvbC4gVGhlIGtleSBxdWVzdGlvbiBpbiBteSBtaW5kIGlzOiBpcyB0aGlzIHRoaW5nIGEgcHVibGljbHkgYWNjZXNzaWJsZSBmdW5jdGlvbiwgbWVhbmluZyBpdCYjMzk7cyBiZWVuIGV4cG9ydGVkLCBvciBpcyBpdCBsdXJraW5nIHNvbWV3aGVyZSB3aXRoaW4gYSBsaW1pdGVkIHNjb3BlIGFzIGEgc3RhdGljIGludGVybmFsIGNvbXBvbmVudD8gSSYjMzk7bGwgbmVlZCB0byBmaWd1cmUgdGhpcyBvdXQgYmVmb3JlIEkgY2FuIHJlYXNvbiBmdXJ0aGVyIGFib3V0IHRoZSBjb2RlIHRoYXQgdG91Y2hlcyBpdC4gTGV0IG1lIGp1c3QgdGFrZSBhIGxvb2suLi4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4yMi8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMTQgMDY6NDI8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7cnR3X3R4JiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC8mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7XG5GdWxsIG91dHB1dCBpcyB0b28gbG9uZywgc2hvd2luZyA1MDAgb3V0IG9mIDg3MSBsaW5lcy5cblVzZSBtb3JlIHByZWNpc2UgZXhwcmVzc2lvbiBpZiBwb3NzaWJsZS5cblxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9mdy5jPTkzPXN0YXRpYyB2b2lkIHJ0d19md19jMmhfY21kX2hhbmRsZV9leHQoc3RydWN0IHJ0d19kZXYgKnJ0d2Rldixcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L2Z3LmMtMTAzLVx0Y2FzZSBDMkhfQ0NYX1JQVDpcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvZncuYzoxMDQ6XHRcdHJ0d190eF9yZXBvcnRfaGFuZGxlKHJ0d2Rldiwgc2tiLCBDMkhfQ0NYX1JQVCk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L2Z3LmMtMTA1LVx0XHRicmVhaztcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L2Z3LmM9MzAxPXZvaWQgcnR3X2Z3X2MyaF9jbWRfaGFuZGxlKHN0cnVjdCBydHdfZGV2ICpydHdkZXYsIHN0cnVjdCBza19idWZmICpza2IpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9mdy5jLTMxNy1cdGNhc2UgQzJIX0NDWF9UWF9SUFQ6XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L2Z3LmM6MzE4Olx0XHRydHdfdHhfcmVwb3J0X2hhbmRsZShydHdkZXYsIHNrYiwgQzJIX0NDWF9UWF9SUFQpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9mdy5jLTMxOS1cdFx0YnJlYWs7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9mdy5jPTEzMDA9c3RhdGljIHZvaWQgcnR3X2ZpbGxfcnN2ZF9wYWdlX2Rlc2Moc3RydWN0IHJ0d19kZXYgKnJ0d2Rldiwgc3RydWN0IHNrX2J1ZmYgKnNrYixcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L2Z3LmMtMTMwMi17XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L2Z3LmM6MTMwMzpcdHN0cnVjdCBydHdfdHhfcGt0X2luZm8gcGt0X2luZm8gPSB7MH07XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L2Z3LmMtMTMwNC1cdGNvbnN0IHN0cnVjdCBydHdfY2hpcF9pbmZvICpjaGlwID0gcnR3ZGV2LVx1MDAzZWNoaXA7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9mdy5jLTEzMDYtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L2Z3LmM6MTMwNzpcdHJ0d190eF9yc3ZkX3BhZ2VfcGt0X2luZm9fdXBkYXRlKHJ0d2RldiwgXHUwMDI2cGt0X2luZm8sIHNrYiwgdHlwZSk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L2Z3LmMtMTMwOC1cdHBrdF9kZXNjID0gc2tiX3B1c2goc2tiLCBjaGlwLVx1MDAzZXR4X3BrdF9kZXNjX3N6KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvZncuYy0xMzA5LVx0bWVtc2V0KHBrdF9kZXNjLCAwLCBjaGlwLVx1MDAzZXR4X3BrdF9kZXNjX3N6KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvZncuYzoxMzEwOlx0cnR3X3R4X2ZpbGxfdHhfZGVzYyhydHdkZXYsIFx1MDAyNnBrdF9pbmZvLCBza2IpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9mdy5jLTEzMTEtfVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvaGNpLmg9OT1zdHJ1Y3QgcnR3X2hjaV9vcHMge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9oY2kuaC0xMC1cdGludCAoKnR4X3dyaXRlKShzdHJ1Y3QgcnR3X2RldiAqcnR3ZGV2LFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9oY2kuaDoxMTpcdFx0XHRzdHJ1Y3QgcnR3X3R4X3BrdF9pbmZvICpwa3RfaW5mbyxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvaGNpLmgtMTItXHRcdFx0c3RydWN0IHNrX2J1ZmYgKnNrYik7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9oY2kuaD0zNj1zdGF0aWMgaW5saW5lIGludCBydHdfaGNpX3R4X3dyaXRlKHN0cnVjdCBydHdfZGV2ICpydHdkZXYsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L2hjaS5oOjM3Olx0XHRcdFx0ICAgc3RydWN0IHJ0d190eF9wa3RfaW5mbyAqcGt0X2luZm8sXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L2hjaS5oLTM4LVx0XHRcdFx0ICAgc3RydWN0IHNrX2J1ZmYgKnNrYilcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L21hYzgwMjExLmM9MTg9c3RhdGljIHZvaWQgcnR3X29wc190eChzdHJ1Y3QgaWVlZTgwMjExX2h3ICpodyxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L21hYzgwMjExLmMtMjgtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L21hYzgwMjExLmM6Mjk6XHRydHdfdHgocnR3ZGV2LCBjb250cm9sLCBza2IpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9tYWM4MDIxMS5jLTMwLX1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L21hYzgwMjExLmM9MzI9c3RhdGljIHZvaWQgcnR3X29wc193YWtlX3R4X3F1ZXVlKHN0cnVjdCBpZWVlODAyMTFfaHcgKmh3LFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvbWFjODAyMTEuYy0zNS1cdHN0cnVjdCBydHdfZGV2ICpydHdkZXYgPSBody1cdTAwM2Vwcml2O1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9tYWM4MDIxMS5jOjM2Olx0c3RydWN0IHJ0d190eHEgKnJ0d3R4cSA9IChzdHJ1Y3QgcnR3X3R4cSAqKXR4cS1cdTAwM2VkcnZfcHJpdjtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvbWFjODAyMTEuYy0zNy1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L21hYzgwMjExLmMtNDctXHRpZiAodHhxLVx1MDAzZWFjID09IElFRUU4MDIxMV9BQ19WTylcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvbWFjODAyMTEuYzo0ODpcdFx0X19ydHdfdHhfd29yayhydHdkZXYpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9tYWM4MDIxMS5jLTQ5LVx0ZWxzZVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvbWFjODAyMTEuYz0xNDY9c3RhdGljIGludCBydHdfb3BzX2FkZF9pbnRlcmZhY2Uoc3RydWN0IGllZWU4MDIxMV9odyAqaHcsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9tYWM4MDIxMS5jLTE2NC1cdG1lbXNldChcdTAwMjZydHd2aWYtXHUwMDNlYmZlZSwgMCwgc2l6ZW9mKHN0cnVjdCBydHdfYmZlZSkpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9tYWM4MDIxMS5jOjE2NTpcdHJ0d190eHFfaW5pdChydHdkZXYsIHZpZi1cdTAwM2V0eHEpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9tYWM4MDIxMS5jLTE2Ni1cdElOSVRfTElTVF9IRUFEKFx1MDAyNnJ0d3ZpZi1cdTAwM2Vyc3ZkX3BhZ2VfbGlzdCk7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9tYWM4MDIxMS5jPTIyOD1zdGF0aWMgdm9pZCBydHdfb3BzX3JlbW92ZV9pbnRlcmZhY2Uoc3RydWN0IGllZWU4MDIxMV9odyAqaHcsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9tYWM4MDIxMS5jLTI0MS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvbWFjODAyMTEuYzoyNDI6XHRydHdfdHhxX2NsZWFudXAocnR3ZGV2LCB2aWYtXHUwMDNldHhxKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvbWFjODAyMTEuYy0yNDMtXHRydHdfcmVtb3ZlX3JzdmRfcGFnZShydHdkZXYsIHJ0d3ZpZik7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9tYWM4MDIxMS5jPTYzNj1zdGF0aWMgaW50IHJ0d19vcHNfYW1wZHVfYWN0aW9uKHN0cnVjdCBpZWVlODAyMTFfaHcgKmh3LFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvbWFjODAyMTEuYy02NDItXHRzdHJ1Y3QgaWVlZTgwMjExX3R4cSAqdHhxID0gc3RhLVx1MDAzZXR4cVt0aWRdO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9tYWM4MDIxMS5jOjY0MzpcdHN0cnVjdCBydHdfdHhxICpydHd0eHEgPSAoc3RydWN0IHJ0d190eHEgKil0eHEtXHUwMDNlZHJ2X3ByaXY7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L21hYzgwMjExLmMtNjQ0LVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvbWFpbi5jPTM0NT1pbnQgcnR3X3N0YV9hZGQoc3RydWN0IHJ0d19kZXYgKnJ0d2Rldiwgc3RydWN0IGllZWU4MDIxMV9zdGEgKnN0YSxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L21haW4uYy0zNjUtXHRmb3IgKGkgPSAwOyBpIFx1MDAzYyBBUlJBWV9TSVpFKHN0YS1cdTAwM2V0eHEpOyBpJiM0MzsmIzQzOylcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvbWFpbi5jOjM2NjpcdFx0cnR3X3R4cV9pbml0KHJ0d2Rldiwgc3RhLVx1MDAzZXR4cVtpXSk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L21haW4uYy0zNjctXHRJTklUX1dPUksoXHUwMDI2c2ktXHUwMDNlcmNfd29yaywgcnR3X3N0YV9yY193b3JrKTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L21haW4uYz0zODA9dm9pZCBydHdfc3RhX3JlbW92ZShzdHJ1Y3QgcnR3X2RldiAqcnR3ZGV2LCBzdHJ1Y3QgaWVlZTgwMjExX3N0YSAqc3RhLFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvbWFpbi5jLTM5NC1cdGZvciAoaSA9IDA7IGkgXHUwMDNjIEFSUkFZX1NJWkUoc3RhLVx1MDAzZXR4cSk7IGkmIzQzOyYjNDM7KVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9tYWluLmM6Mzk1Olx0XHRydHdfdHhxX2NsZWFudXAocnR3ZGV2LCBzdGEtXHUwMDNldHhxW2ldKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvbWFpbi5jLTM5Ni1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L21haW4uYz02MjI9c3RhdGljIHZvaWQgcnR3X3Jlc2V0X3ZpZl9pdGVyKHZvaWQgKmRhdGEsIHU4ICptYWMsIHN0cnVjdCBpZWVlODAyMTFfdmlmICp2aWYpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9tYWluLmMtNjI4LVx0cnR3X3ZpZl9hc3NvY19jaGFuZ2VkKHJ0d3ZpZiwgTlVMTCk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L21haW4uYzo2Mjk6XHRydHdfdHhxX2NsZWFudXAocnR3ZGV2LCB2aWYtXHUwMDNldHhxKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvbWFpbi5jLTYzMC1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L21haW4uYz02NzQ9c3RhdGljIHZvaWQgcnR3X2Z3X3JlY292ZXJ5X3dvcmsoc3RydWN0IHdvcmtfc3RydWN0ICp3b3JrKVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvbWFpbi5jLTY4NS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvbWFpbi5jOjY4NjpzdHJ1Y3QgcnR3X3R4cV9iYV9pdGVyX2RhdGEge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9tYWluLmMtNjg3LX07XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L21haW4uYy02ODgtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L21haW4uYzo2ODk6c3RhdGljIHZvaWQgcnR3X3R4cV9iYV9pdGVyKHZvaWQgKmRhdGEsIHN0cnVjdCBpZWVlODAyMTFfc3RhICpzdGEpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L21haW4uYy02OTAte1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvbWFpbi5jLTcwMC1cdFx0XHRzdHJ1Y3QgaWVlZTgwMjExX3R4cSAqdHhxO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9tYWluLmM6NzAxOlx0XHRcdHN0cnVjdCBydHdfdHhxICpydHd0eHE7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L21haW4uYy03MDItXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L21haW4uYy03MDMtXHRcdFx0dHhxID0gc3RhLVx1MDAzZXR4cVt0aWRdO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9tYWluLmM6NzA0Olx0XHRcdHJ0d3R4cSA9IChzdHJ1Y3QgcnR3X3R4cSAqKXR4cS1cdTAwM2VkcnZfcHJpdjtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvbWFpbi5jLTcwNS1cdFx0XHRzZXRfYml0KFJUV19UWFFfQkxPQ0tfQkEsIFx1MDAyNnJ0d3R4cS1cdTAwM2VmbGFncyk7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9tYWluLmMtNzExLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9tYWluLmM6NzEyOnN0YXRpYyB2b2lkIHJ0d190eHFfYmFfd29yayhzdHJ1Y3Qgd29ya19zdHJ1Y3QgKndvcmspXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L21haW4uYy03MTMte1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9tYWluLmMtNzE0LVx0c3RydWN0IHJ0d19kZXYgKnJ0d2RldiA9IGNvbnRhaW5lcl9vZih3b3JrLCBzdHJ1Y3QgcnR3X2RldiwgYmFfd29yayk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L21haW4uYzo3MTU6XHRzdHJ1Y3QgcnR3X3R4cV9iYV9pdGVyX2RhdGEgZGF0YTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvbWFpbi5jLTcxNi1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvbWFpbi5jOjcxNzpcdHJ0d19pdGVyYXRlX3N0YXNfYXRvbWljKHJ0d2RldiwgcnR3X3R4cV9iYV9pdGVyLCBcdTAwMjZkYXRhKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvbWFpbi5jLTcxOC19XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9tYWluLmM9MjEzOD1pbnQgcnR3X2NvcmVfaW5pdChzdHJ1Y3QgcnR3X2RldiAqcnR3ZGV2KVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvbWFpbi5jLTIxNDctXHR0aW1lcl9zZXR1cChcdTAwMjZydHdkZXYtXHUwMDNldHhfcmVwb3J0LnB1cmdlX3RpbWVyLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9tYWluLmM6MjE0ODpcdFx0ICAgIHJ0d190eF9yZXBvcnRfcHVyZ2VfdGltZXIsIDApO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9tYWluLmM6MjE0OTpcdHJ0d2Rldi1cdTAwM2V0eF93cSA9IGFsbG9jX3dvcmtxdWV1ZShcJiMzNDtydHdfdHhfd3FcJiMzNDssIFdRX1VOQk9VTkQgfCBXUV9ISUdIUFJJLCAwKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvbWFpbi5jLTIxNTAtXHRpZiAoIXJ0d2Rldi1cdTAwM2V0eF93cSkge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9tYWluLmM6MjE1MTpcdFx0cnR3X3dhcm4ocnR3ZGV2LCBcJiMzNDthbGxvY193b3JrcXVldWUgcnR3X3R4X3dxIGZhaWxlZFxcblwmIzM0Oyk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L21haW4uYy0yMTUyLVx0XHRyZXR1cm4gLUVOT01FTTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L21haW4uYy0yMTY0LVx0SU5JVF9ERUxBWUVEX1dPUksoXHUwMDI2Y29leC1cdTAwM2V3bF9jY2tsb2NrX3dvcmssIHJ0d19jb2V4X3dsX2Nja2xvY2tfd29yayk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L21haW4uYzoyMTY1Olx0SU5JVF9XT1JLKFx1MDAyNnJ0d2Rldi1cdTAwM2V0eF93b3JrLCBydHdfdHhfd29yayk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L21haW4uYy0yMTY2LVx0SU5JVF9XT1JLKFx1MDAyNnJ0d2Rldi1cdTAwM2VjMmhfd29yaywgcnR3X2MyaF93b3JrKTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L21haW4uYy0yMTY5LVx0SU5JVF9XT1JLKFx1MDAyNnJ0d2Rldi1cdTAwM2V1cGRhdGVfYmVhY29uX3dvcmssIHJ0d19md191cGRhdGVfYmVhY29uX3dvcmspO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9tYWluLmM6MjE3MDpcdElOSVRfV09SSyhcdTAwMjZydHdkZXYtXHUwMDNlYmFfd29yaywgcnR3X3R4cV9iYV93b3JrKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvbWFpbi5jLTIxNzEtXHRza2JfcXVldWVfaGVhZF9pbml0KFx1MDAyNnJ0d2Rldi1cdTAwM2VjMmhfcXVldWUpO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvbWFpbi5jPTIyNTU9aW50IHJ0d19yZWdpc3Rlcl9odyhzdHJ1Y3QgcnR3X2RldiAqcnR3ZGV2LCBzdHJ1Y3QgaWVlZTgwMjExX2h3ICpodylcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L21haW4uYy0yMjY3LVx0aHctXHUwMDNlcXVldWVzID0gSUVFRTgwMjExX05VTV9BQ1M7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L21haW4uYzoyMjY4Olx0aHctXHUwMDNldHhxX2RhdGFfc2l6ZSA9IHNpemVvZihzdHJ1Y3QgcnR3X3R4cSk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L21haW4uYy0yMjY5LVx0aHctXHUwMDNlc3RhX2RhdGFfc2l6ZSA9IHNpemVvZihzdHJ1Y3QgcnR3X3N0YV9pbmZvKTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L21haW4uaD0xOTE9ZW51bSBydHdfY2hpcF90eXBlIHtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L21haW4uaC0yMDEtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L21haW4uaDoyMDI6ZW51bSBydHdfdHhfcXVldWVfdHlwZSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L21haW4uaC0yMDMtXHQvKiB0aGUgb3JkZXIgb2YgQUMgcXVldWVzIG1hdHRlcnMgKi9cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L21haW4uaD0zNDQ9ZW51bSBydHdfcmVndWxhdG9yeV9kb21haW5zIHtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L21haW4uaC0zNjEtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L21haW4uaDozNjI6ZW51bSBydHdfdHhxX2ZsYWdzIHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvbWFpbi5oLTM2My1cdFJUV19UWFFfQU1QRFUsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9tYWluLmg9NTIwPXN0cnVjdCBydHdfNWdfdHhwd3JfaWR4IHtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L21haW4uaC01MzItXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L21haW4uaDo1MzM6c3RydWN0IHJ0d190eHB3cl9pZHgge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9tYWluLmgtNTM0LVx0c3RydWN0IHJ0d18yZ190eHB3cl9pZHggcHdyX2lkeF8yZztcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L21haW4uaD01OTk9c3RydWN0IHJ0d192aWZfcG9ydCB7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9tYWluLmgtNjA2LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9tYWluLmg6NjA3OnN0cnVjdCBydHdfdHhfcGt0X2luZm8ge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9tYWluLmgtNjA4LVx0dTMyIHR4X3BrdF9zaXplO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvbWFpbi5oPTczNz1zdHJ1Y3QgcnR3X3NlY19kZXNjIHtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L21haW4uaC03NDUtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L21haW4uaDo3NDY6c3RydWN0IHJ0d190eF9yZXBvcnQge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9tYWluLmgtNzQ3LVx0LyogcHJvdGVjdCB0aGUgdHggcmVwb3J0IHF1ZXVlICovXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9tYWluLmg9NzU0PXN0cnVjdCBydHdfcmFfcmVwb3J0IHtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L21haW4uaC03NTktXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L21haW4uaDo3NjA6c3RydWN0IHJ0d190eHEge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9tYWluLmgtNzYxLVx0c3RydWN0IGxpc3RfaGVhZCBsaXN0O1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvbWFpbi5oPTg2Mj1zdHJ1Y3QgcnR3X2NoaXBfb3BzIHtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L21haW4uaC05MTItXHR2b2lkICgqZmlsbF90eGRlc2NfY2hlY2tzdW0pKHN0cnVjdCBydHdfZGV2ICpydHdkZXYsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L21haW4uaDo5MTM6XHRcdFx0XHQgICAgIHN0cnVjdCBydHdfdHhfcGt0X2luZm8gKnBrdF9pbmZvLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9tYWluLmgtOTE0LVx0XHRcdFx0ICAgICB1OCAqdHhkZXNjKTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L21haW4uaD0xNzkyPXN0cnVjdCBydHdfZWZ1c2Uge1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvbWFpbi5oLTE4NDEtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L21haW4uaDoxODQyOlx0c3RydWN0IHJ0d190eHB3cl9pZHggdHhwd3JfaWR4X3RhYmxlWzRdO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9tYWluLmgtMTg0My19O1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvbWFpbi5oPTIwNjA9c3RydWN0IHJ0d19kZXYge1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvbWFpbi5oLTIxMDItXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L21haW4uaDoyMTAzOlx0c3RydWN0IHJ0d190eF9yZXBvcnQgdHhfcmVwb3J0O1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9tYWluLmgtMjEwNC1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L21haW4uaD0yMTQ2PXN0YXRpYyBpbmxpbmUgYm9vbCBydHdfaXNfYXNzb2Moc3RydWN0IHJ0d19kZXYgKnJ0d2Rldilcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L21haW4uaC0yMTUwLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9tYWluLmg6MjE1MTpzdGF0aWMgaW5saW5lIHN0cnVjdCBpZWVlODAyMTFfdHhxICpydHd0eHFfdG9fdHhxKHN0cnVjdCBydHdfdHhxICpydHd0eHEpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L21haW4uaC0yMTUyLXtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L21haW4uaD0yMjQ3PXZvaWQgcnR3X3ZpZl9wb3J0X2NvbmZpZyhzdHJ1Y3QgcnR3X2RldiAqcnR3ZGV2LCBzdHJ1Y3QgcnR3X3ZpZiAqcnR3dmlmLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9tYWluLmgtMjI0OC1cdFx0XHQgdTMyIGNvbmZpZyk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L21haW4uaDoyMjQ5OnZvaWQgcnR3X3R4X3JlcG9ydF9wdXJnZV90aW1lcihzdHJ1Y3QgdGltZXJfbGlzdCAqdCk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L21haW4uaC0yMjUwLXZvaWQgcnR3X3VwZGF0ZV9zdGFfaW5mbyhzdHJ1Y3QgcnR3X2RldiAqcnR3ZGV2LCBzdHJ1Y3QgcnR3X3N0YV9pbmZvICpzaSxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3BjaS5jPTM1PXN0YXRpYyB1OCBydHdfcGNpX2dldF90eF9xc2VsKHN0cnVjdCBza19idWZmICpza2IsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3BjaS5jOjM2Olx0XHRcdCAgICAgIGVudW0gcnR3X3R4X3F1ZXVlX3R5cGUgcXVldWUpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3BjaS5jLTM3LXtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3BjaS5jPTUzOD1zdGF0aWMgdm9pZCBydHdfcGNpX2RtYV9yZWxlYXNlKHN0cnVjdCBydHdfZGV2ICpydHdkZXYsIHN0cnVjdCBydHdfcGNpICpydHdwY2kpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9wY2kuYy01NDAtXHRzdHJ1Y3QgcnR3X3BjaV90eF9yaW5nICp0eF9yaW5nO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9wY2kuYzo1NDE6XHRlbnVtIHJ0d190eF9xdWV1ZV90eXBlIHF1ZXVlO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9wY2kuYy01NDItXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9wY2kuYz02MDM9c3RhdGljIHZvaWQgcnR3X3BjaV9kZWVwX3BzX2VudGVyKHN0cnVjdCBydHdfZGV2ICpydHdkZXYpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9wY2kuYy02MDYtXHRzdHJ1Y3QgcnR3X3BjaV90eF9yaW5nICp0eF9yaW5nO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9wY2kuYzo2MDc6XHRlbnVtIHJ0d190eF9xdWV1ZV90eXBlIHF1ZXVlO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9wY2kuYy02MDgtXHRib29sIHR4X2VtcHR5ID0gdHJ1ZTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3BjaS5jPTc1ND1zdGF0aWMgdm9pZCBydHdfcGNpX2ZsdXNoX3F1ZXVlcyhzdHJ1Y3QgcnR3X2RldiAqcnR3ZGV2LCB1MzIgcXVldWVzLCBib29sIGRyb3ApXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9wY2kuYy03NjYtXHRcdFx0aWYgKHF1ZXVlcyBcdTAwMjYgQklUKGkpKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9wY2kuYzo3Njc6XHRcdFx0XHRwY2lfcXVldWVzIHw9IEJJVChydHdfdHhfYWNfdG9faHdxKGkpKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcGNpLmMtNzY4LVx0fVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcGNpLmM9NzczPXN0YXRpYyB2b2lkIHJ0d19wY2lfdHhfa2lja19vZmZfcXVldWUoc3RydWN0IHJ0d19kZXYgKnJ0d2RldixcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcGNpLmM6Nzc0Olx0XHRcdFx0ICAgICAgZW51bSBydHdfdHhfcXVldWVfdHlwZSBxdWV1ZSlcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcGNpLmMtNzc1LXtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3BjaS5jPTc5MD1zdGF0aWMgdm9pZCBydHdfcGNpX3R4X2tpY2tfb2ZmKHN0cnVjdCBydHdfZGV2ICpydHdkZXYpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9wY2kuYy03OTItXHRzdHJ1Y3QgcnR3X3BjaSAqcnR3cGNpID0gKHN0cnVjdCBydHdfcGNpICopcnR3ZGV2LVx1MDAzZXByaXY7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3BjaS5jOjc5MzpcdGVudW0gcnR3X3R4X3F1ZXVlX3R5cGUgcXVldWU7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3BjaS5jLTc5NC1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3BjaS5jPTgwMD1zdGF0aWMgaW50IHJ0d19wY2lfdHhfd3JpdGVfZGF0YShzdHJ1Y3QgcnR3X2RldiAqcnR3ZGV2LFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9wY2kuYzo4MDE6XHRcdFx0XHQgc3RydWN0IHJ0d190eF9wa3RfaW5mbyAqcGt0X2luZm8sXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3BjaS5jLTgwMi1cdFx0XHRcdCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9wY2kuYzo4MDM6XHRcdFx0XHQgZW51bSBydHdfdHhfcXVldWVfdHlwZSBxdWV1ZSlcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcGNpLmMtODA0LXtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3BjaS5jLTgyOC1cdHBrdF9pbmZvLVx1MDAzZXFzZWwgPSBydHdfcGNpX2dldF90eF9xc2VsKHNrYiwgcXVldWUpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9wY2kuYzo4Mjk6XHRydHdfdHhfZmlsbF90eF9kZXNjKHJ0d2RldiwgcGt0X2luZm8sIHNrYik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3BjaS5jLTgzMC1cdGRtYSA9IGRtYV9tYXBfc2luZ2xlKFx1MDAyNnJ0d3BjaS1cdTAwM2VwZGV2LVx1MDAzZWRldiwgc2tiLVx1MDAzZWRhdGEsIHNrYi1cdTAwM2VsZW4sXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9wY2kuYz04NzA9c3RhdGljIGludCBydHdfcGNpX3dyaXRlX2RhdGFfcnN2ZF9wYWdlKHN0cnVjdCBydHdfZGV2ICpydHdkZXYsIHU4ICpidWYsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9wY2kuYy04NzMtXHRzdHJ1Y3Qgc2tfYnVmZiAqc2tiO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9wY2kuYzo4NzQ6XHRzdHJ1Y3QgcnR3X3R4X3BrdF9pbmZvIHBrdF9pbmZvID0gezB9O1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9wY2kuYy04NzUtXHR1OCByZWdfYmNuX3dvcms7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9wY2kuYy04NzctXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3BjaS5jOjg3ODpcdHNrYiA9IHJ0d190eF93cml0ZV9kYXRhX3JzdmRfcGFnZV9nZXQocnR3ZGV2LCBcdTAwMjZwa3RfaW5mbywgYnVmLCBzaXplKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcGNpLmMtODc5LVx0aWYgKCFza2IpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9wY2kuYz04OTY9c3RhdGljIGludCBydHdfcGNpX3dyaXRlX2RhdGFfaDJjKHN0cnVjdCBydHdfZGV2ICpydHdkZXYsIHU4ICpidWYsIHUzMiBzaXplKVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcGNpLmMtODk4LVx0c3RydWN0IHNrX2J1ZmYgKnNrYjtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcGNpLmM6ODk5Olx0c3RydWN0IHJ0d190eF9wa3RfaW5mbyBwa3RfaW5mbyA9IHswfTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcGNpLmMtOTAwLVx0aW50IHJldDtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcGNpLmMtOTAxLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9wY2kuYzo5MDI6XHRza2IgPSBydHdfdHhfd3JpdGVfZGF0YV9oMmNfZ2V0KHJ0d2RldiwgXHUwMDI2cGt0X2luZm8sIGJ1Ziwgc2l6ZSk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3BjaS5jLTkwMy1cdGlmICghc2tiKVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcGNpLmM9OTE3PXN0YXRpYyBpbnQgcnR3X3BjaV90eF93cml0ZShzdHJ1Y3QgcnR3X2RldiAqcnR3ZGV2LFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9wY2kuYzo5MTg6XHRcdFx0ICAgIHN0cnVjdCBydHdfdHhfcGt0X2luZm8gKnBrdF9pbmZvLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9wY2kuYy05MTktXHRcdFx0ICAgIHN0cnVjdCBza19idWZmICpza2IpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3BjaS5jLTkyMC17XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3BjaS5jOjkyMTpcdGVudW0gcnR3X3R4X3F1ZXVlX3R5cGUgcXVldWUgPSBydHdfdHhfcXVldWVfbWFwcGluZyhza2IpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9wY2kuYy05MjItXHRzdHJ1Y3QgcnR3X3BjaSAqcnR3cGNpID0gKHN0cnVjdCBydHdfcGNpICopcnR3ZGV2LVx1MDAzZXByaXY7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9wY2kuYz05NDE9c3RhdGljIHZvaWQgcnR3X3BjaV90eF9pc3Ioc3RydWN0IHJ0d19kZXYgKnJ0d2Rldiwgc3RydWN0IHJ0d19wY2kgKnJ0d3BjaSxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3BjaS5jLTk5OC1cdFx0aWYgKGluZm8tXHUwMDNlZmxhZ3MgXHUwMDI2IElFRUU4MDIxMV9UWF9DVExfUkVRX1RYX1NUQVRVUykge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9wY2kuYzo5OTk6XHRcdFx0cnR3X3R4X3JlcG9ydF9lbnF1ZXVlKHJ0d2Rldiwgc2tiLCB0eF9kYXRhLVx1MDAzZXNuKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcGNpLmMtMTAwMC1cdFx0XHRjb250aW51ZTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3BoeS5jPTE3NjA9dm9pZCBydHdfcGFyc2VfdGJsX3R4cHdyX2xtdChzdHJ1Y3QgcnR3X2RldiAqcnR3ZGV2LFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcGh5LmMtMTc2Mi17XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3BoeS5jOjE3NjM6XHRjb25zdCBzdHJ1Y3QgcnR3X3R4cHdyX2xtdF9jZmdfcGFpciAqcCA9IHRibC1cdTAwM2VkYXRhO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9waHkuYzoxNzY0Olx0Y29uc3Qgc3RydWN0IHJ0d190eHB3cl9sbXRfY2ZnX3BhaXIgKmVuZCA9IHAgJiM0MzsgdGJsLVx1MDAzZXNpemU7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3BoeS5jLTE3NjUtXHR1MzIgcmVnZF9jZmdfZmxhZyA9IDA7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9waHkuYz0yMjM5PXZvaWQgcnR3X2dldF90eF9wb3dlcl9wYXJhbXMoc3RydWN0IHJ0d19kZXYgKnJ0d2RldiwgdTggcGF0aCwgdTggcmF0ZSwgdTggYncsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9waHkuYy0yMjQzLVx0c3RydWN0IHJ0d19kbV9pbmZvICpkbV9pbmZvID0gXHUwMDI2cnR3ZGV2LVx1MDAzZWRtX2luZm87XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3BoeS5jOjIyNDQ6XHRzdHJ1Y3QgcnR3X3R4cHdyX2lkeCAqcHdyX2lkeDtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcGh5LmMtMjI0NS1cdHU4IGdyb3VwLCBiYW5kO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcGh5Lmg9NzA9dm9pZCBydHdfcGh5X3R4X3BhdGhfZGl2ZXJzaXR5KHN0cnVjdCBydHdfZGV2ICpydHdkZXYpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9waHkuaC03MS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcGh5Lmg6NzI6c3RydWN0IHJ0d190eHB3cl9sbXRfY2ZnX3BhaXIge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9waHkuaC03My1cdHU4IHJlZ2Q7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4NzAzYl90YWJsZXMuYz0xNz1SVFdfREVDTF9UQUJMRV9CQl9QRyhydHc4NzAzYl9iYl9wZyk7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4NzAzYl90YWJsZXMuYy0yMy0gKi9cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODcwM2JfdGFibGVzLmM6MjQ6c3RhdGljIGNvbnN0IHN0cnVjdCBydHdfdHhwd3JfbG10X2NmZ19wYWlyIHJ0dzg3MDNiX3R4cHdyX2xtdFtdID0ge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4NzAzYl90YWJsZXMuYy0yNS1cdHswLCAwLCAwLCAwLCAxLCAzMH0sXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4NzIzZF90YWJsZS5jPTkzOT1SVFdfREVDTF9UQUJMRV9SRl9SQURJTyhydHc4NzIzZF9yZl9hLCBBKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODcyM2RfdGFibGUuYy05NDAtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg3MjNkX3RhYmxlLmM6OTQxOnN0YXRpYyBjb25zdCBzdHJ1Y3QgcnR3X3R4cHdyX2xtdF9jZmdfcGFpciBydHc4NzIzZF90eHB3cl9sbXRbXSA9IHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODcyM2RfdGFibGUuYy05NDItXHR7MCwgMCwgMCwgMCwgMSwgMzAsIH0sXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4NzIzeC5jPTEwMT1zdGF0aWMgdm9pZCBfX3J0dzg3MjN4X2RlYnVnX3R4cHdyX2xpbWl0KHN0cnVjdCBydHdfZGV2ICpydHdkZXYsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg3MjN4LmM6MTAyOlx0XHRcdFx0XHQgc3RydWN0IHJ0d190eHB3cl9pZHggKnRhYmxlLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4NzIzeC5jLTEwMy1cdFx0XHRcdFx0IGludCB0eF9wYXRoX2NvdW50KVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODcyM3guYz02ODI9dm9pZCBfX3J0dzg3MjN4X2ZpbGxfdHhkZXNjX2NoZWNrc3VtKHN0cnVjdCBydHdfZGV2ICpydHdkZXYsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg3MjN4LmM6NjgzOlx0XHRcdFx0ICAgICBzdHJ1Y3QgcnR3X3R4X3BrdF9pbmZvICpwa3RfaW5mbyxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODcyM3guYy02ODQtXHRcdFx0XHQgICAgIHU4ICp0eGRlc2MpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4NzIzeC5jLTY4OC1cdF9fbGUxNiAqZGF0YSA9IChfX2xlMTYgKikodHhkZXNjKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODcyM3guYzo2ODk6XHRzdHJ1Y3QgcnR3X3R4X2Rlc2MgKnR4X2Rlc2MgPSAoc3RydWN0IHJ0d190eF9kZXNjICopdHhkZXNjO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4NzIzeC5jLTY5MC1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg3MjN4Lmg9NjY9c3RydWN0IHJ0dzg3MjN4X2VmdXNlIHtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg3MjN4LmgtNzItXHQvKiBwb3dlciBpbmRleCBmb3IgZm91ciBSRiBwYXRocyAqL1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4NzIzeC5oOjczOlx0c3RydWN0IHJ0d190eHB3cl9pZHggdHhwd3JfaWR4X3RhYmxlWzRdO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4NzIzeC5oLTc0LVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODcyM3guaD0xMjI9c3RydWN0IHJ0dzg3MjN4X2NvbW1vbiB7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4NzIzeC5oLTE1NS1cdHZvaWQgKCpmaWxsX3R4ZGVzY19jaGVja3N1bSkoc3RydWN0IHJ0d19kZXYgKnJ0d2RldixcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODcyM3guaDoxNTY6XHRcdFx0XHQgICAgIHN0cnVjdCBydHdfdHhfcGt0X2luZm8gKnBrdF9pbmZvLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4NzIzeC5oLTE1Ny1cdFx0XHRcdCAgICAgdTggKnR4ZGVzYyk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg3MjN4LmgtMTU4LVx0dm9pZCAoKmRlYnVnX3R4cHdyX2xpbWl0KShzdHJ1Y3QgcnR3X2RldiAqcnR3ZGV2LFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4NzIzeC5oOjE1OTpcdFx0XHRcdCAgc3RydWN0IHJ0d190eHB3cl9pZHggKnRhYmxlLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4NzIzeC5oLTE2MC1cdFx0XHRcdCAgaW50IHR4X3BhdGhfY291bnQpO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODcyM3guaD0zNjU9dm9pZCBydHc4NzIzeF9kZWJ1Z190eHB3cl9saW1pdChzdHJ1Y3QgcnR3X2RldiAqcnR3ZGV2LFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4NzIzeC5oOjM2NjpcdFx0XHRcdHN0cnVjdCBydHdfdHhwd3JfaWR4ICp0YWJsZSxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODcyM3guaC0zNjctXHRcdFx0XHRpbnQgdHhfcGF0aF9jb3VudClcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg3MjN4Lmg9NDUxPXZvaWQgcnR3ODcyM3hfZmlsbF90eGRlc2NfY2hlY2tzdW0oc3RydWN0IHJ0d19kZXYgKnJ0d2RldixcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODcyM3guaDo0NTI6XHRcdFx0XHQgICBzdHJ1Y3QgcnR3X3R4X3BrdF9pbmZvICpwa3RfaW5mbyxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODcyM3guaC00NTMtXHRcdFx0XHQgICB1OCAqdHhkZXNjKVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgxMmEuYz04ODc9c3RhdGljIHZvaWQgcnR3ODgxMmFfZmlsbF90eGRlc2NfY2hlY2tzdW0oc3RydWN0IHJ0d19kZXYgKnJ0d2RldixcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgxMmEuYzo4ODg6XHRcdFx0XHRcdCAgc3RydWN0IHJ0d190eF9wa3RfaW5mbyAqcGt0X2luZm8sXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MTJhLmMtODg5LVx0XHRcdFx0XHQgIHU4ICp0eGRlc2MpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODEyYV90YWJsZS5jPTE2ODg9UlRXX0RFQ0xfVEFCTEVfUkZfUkFESU8ocnR3ODgxMmFfcmZfYiwgQik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MTJhX3RhYmxlLmMtMTY4OS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgxMmFfdGFibGUuYzoxNjkwOnN0YXRpYyBjb25zdCBzdHJ1Y3QgcnR3X3R4cHdyX2xtdF9jZmdfcGFpciBydHc4ODEyYV90eHB3cl9sbXRbXSA9IHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgxMmFfdGFibGUuYy0xNjkxLVx0eyAwLCAwLCAwLCAwLCAxLCAzNiwgfSxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MTRhLmM9MjA0Mj1zdGF0aWMgdm9pZCBydHc4ODE0YV9maWxsX3R4ZGVzY19jaGVja3N1bShzdHJ1Y3QgcnR3X2RldiAqcnR3ZGV2LFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODE0YS5jOjIwNDM6XHRcdFx0XHRcdCAgc3RydWN0IHJ0d190eF9wa3RfaW5mbyAqcGt0X2luZm8sXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MTRhLmMtMjA0NC1cdFx0XHRcdFx0ICB1OCAqdHhkZXNjKVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgxNGEuaD0yMz1zdHJ1Y3QgcnR3ODgxNGFfZWZ1c2Uge1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgxNGEuaC0yOS1cdC8qIHBvd2VyIGluZGV4IGZvciBmb3VyIFJGIHBhdGhzICovXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MTRhLmg6MzA6XHRzdHJ1Y3QgcnR3X3R4cHdyX2lkeCB0eHB3cl9pZHhfdGFibGVbNF07XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MTRhLmgtMzEtXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODE0YV90YWJsZS5jPTE0NTgzPVJUV19ERUNMX1RBQkxFX1JGX1JBRElPKHJ0dzg4MTRhX3JmX2QsIEQpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODE0YV90YWJsZS5jLTE0NTg0LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODE0YV90YWJsZS5jOjE0NTg1OnN0YXRpYyBjb25zdCBzdHJ1Y3QgcnR3X3R4cHdyX2xtdF9jZmdfcGFpciBydHc4ODE0YV90eHB3cl9sbXRbXSA9IHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgxNGFfdGFibGUuYy0xNDU4Ni1cdHsgMCwgMCwgMCwgMCwgMSwgMzYsIH0sXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODE0YV90YWJsZS5jPTE1NTYwPVJUV19ERUNMX1RBQkxFX1RYUFdSX0xNVChydHc4ODE0YV90eHB3cl9sbXQpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODE0YV90YWJsZS5jLTE1NTYxLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODE0YV90YWJsZS5jOjE1NTYyOnN0YXRpYyBjb25zdCBzdHJ1Y3QgcnR3X3R4cHdyX2xtdF9jZmdfcGFpciBydHc4ODE0YV90eHB3cl9sbXRfdHlwZTBbXSA9IHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgxNGFfdGFibGUuYy0xNTU2My1cdHsgMCwgMCwgMCwgMCwgMSwgMzIsIH0sXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODE0YV90YWJsZS5jPTE2NTM3PVJUV19ERUNMX1RBQkxFX1RYUFdSX0xNVChydHc4ODE0YV90eHB3cl9sbXRfdHlwZTApO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODE0YV90YWJsZS5jLTE2NTM4LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODE0YV90YWJsZS5jOjE2NTM5OnN0YXRpYyBjb25zdCBzdHJ1Y3QgcnR3X3R4cHdyX2xtdF9jZmdfcGFpciBydHc4ODE0YV90eHB3cl9sbXRfdHlwZTFbXSA9IHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgxNGFfdGFibGUuYy0xNjU0MC1cdFx0eyAwLCAwLCAwLCAwLCAxLCAzNCwgfSxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MTRhX3RhYmxlLmM9MTc1MTQ9UlRXX0RFQ0xfVEFCTEVfVFhQV1JfTE1UKHJ0dzg4MTRhX3R4cHdyX2xtdF90eXBlMSk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MTRhX3RhYmxlLmMtMTc1MTUtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MTRhX3RhYmxlLmM6MTc1MTY6c3RhdGljIGNvbnN0IHN0cnVjdCBydHdfdHhwd3JfbG10X2NmZ19wYWlyIHJ0dzg4MTRhX3R4cHdyX2xtdF90eXBlMltdID0ge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODE0YV90YWJsZS5jLTE3NTE3LVx0eyAwLCAwLCAwLCAwLCAxLCA0MiwgfSxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MTRhX3RhYmxlLmM9MTg0OTE9UlRXX0RFQ0xfVEFCTEVfVFhQV1JfTE1UKHJ0dzg4MTRhX3R4cHdyX2xtdF90eXBlMik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MTRhX3RhYmxlLmMtMTg0OTItXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MTRhX3RhYmxlLmM6MTg0OTM6c3RhdGljIGNvbnN0IHN0cnVjdCBydHdfdHhwd3JfbG10X2NmZ19wYWlyIHJ0dzg4MTRhX3R4cHdyX2xtdF90eXBlM1tdID0ge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODE0YV90YWJsZS5jLTE4NDk0LVx0eyAwLCAwLCAwLCAwLCAxLCA0NiwgfSxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MTRhX3RhYmxlLmM9MTk0Njg9UlRXX0RFQ0xfVEFCTEVfVFhQV1JfTE1UKHJ0dzg4MTRhX3R4cHdyX2xtdF90eXBlMyk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MTRhX3RhYmxlLmMtMTk0NjktXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MTRhX3RhYmxlLmM6MTk0NzA6c3RhdGljIGNvbnN0IHN0cnVjdCBydHdfdHhwd3JfbG10X2NmZ19wYWlyIHJ0dzg4MTRhX3R4cHdyX2xtdF90eXBlNVtdID0ge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODE0YV90YWJsZS5jLTE5NDcxLVx0eyAwLCAwLCAwLCAwLCAxLCA0NiwgfSxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MTRhX3RhYmxlLmM9MjA0NDU9UlRXX0RFQ0xfVEFCTEVfVFhQV1JfTE1UKHJ0dzg4MTRhX3R4cHdyX2xtdF90eXBlNSk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MTRhX3RhYmxlLmMtMjA0NDYtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MTRhX3RhYmxlLmM6MjA0NDc6c3RhdGljIGNvbnN0IHN0cnVjdCBydHdfdHhwd3JfbG10X2NmZ19wYWlyIHJ0dzg4MTRhX3R4cHdyX2xtdF90eXBlN1tdID0ge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODE0YV90YWJsZS5jLTIwNDQ4LVx0eyAwLCAwLCAwLCAwLCAxLCA0NCwgfSxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MTRhX3RhYmxlLmM9MjE0MjI9UlRXX0RFQ0xfVEFCTEVfVFhQV1JfTE1UKHJ0dzg4MTRhX3R4cHdyX2xtdF90eXBlNyk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MTRhX3RhYmxlLmMtMjE0MjMtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MTRhX3RhYmxlLmM6MjE0MjQ6c3RhdGljIGNvbnN0IHN0cnVjdCBydHdfdHhwd3JfbG10X2NmZ19wYWlyIHJ0dzg4MTRhX3R4cHdyX2xtdF90eXBlOFtdID0ge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODE0YV90YWJsZS5jLTIxNDI1LVx0eyAwLCAwLCAwLCAwLCAxLCA0NiwgfSxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjFhLmM9NzM0PXN0YXRpYyB2b2lkIHJ0dzg4MjFhX2ZpbGxfdHhkZXNjX2NoZWNrc3VtKHN0cnVjdCBydHdfZGV2ICpydHdkZXYsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjFhLmM6NzM1Olx0XHRcdFx0XHQgIHN0cnVjdCBydHdfdHhfcGt0X2luZm8gKnBrdF9pbmZvLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIxYS5jLTczNi1cdFx0XHRcdFx0ICB1OCAqdHhkZXNjKVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMWFfdGFibGUuYz0xMzM1PVJUV19ERUNMX1RBQkxFX1JGX1JBRElPKHJ0dzg4MjFhX3JmX2EsIEEpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIxYV90YWJsZS5jLTEzMzYtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjFhX3RhYmxlLmM6MTMzNzpzdGF0aWMgY29uc3Qgc3RydWN0IHJ0d190eHB3cl9sbXRfY2ZnX3BhaXIgcnR3ODgyMWFfdHhwd3JfbG10W10gPSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjFhX3RhYmxlLmMtMTMzOC1cdHsgMCwgMCwgMCwgMCwgMSwgMzIsIH0sXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIxYy5jPTEyMzE9c3RhdGljIHZvaWQgcnR3ODgyMWNfZmlsbF90eGRlc2NfY2hlY2tzdW0oc3RydWN0IHJ0d19kZXYgKnJ0d2RldixcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMWMuYzoxMjMyOlx0XHRcdFx0XHQgIHN0cnVjdCBydHdfdHhfcGt0X2luZm8gKnBrdF9pbmZvLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIxYy5jLTEyMzMtXHRcdFx0XHRcdCAgdTggKnR4ZGVzYylcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjFjLmg9NzQ9c3RydWN0IHJ0dzg4MjFjX2VmdXNlIHtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjFjLmgtNzgtXHQvKiBwb3dlciBpbmRleCBmb3IgZm91ciBSRiBwYXRocyAqL1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIxYy5oOjc5Olx0c3RydWN0IHJ0d190eHB3cl9pZHggdHhwd3JfaWR4X3RhYmxlWzRdO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIxYy5oLTgwLVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMWNfdGFibGUuYz02MDExPVJUV19ERUNMX1RBQkxFX1JGX1JBRElPKHJ0dzg4MjFjX3JmX2EsIEEpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIxY190YWJsZS5jLTYwMTItXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjFjX3RhYmxlLmM6NjAxMzpzdGF0aWMgY29uc3Qgc3RydWN0IHJ0d190eHB3cl9sbXRfY2ZnX3BhaXIgcnR3ODgyMWNfdHhwd3JfbG10X3R5cGUwW10gPSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjFjX3RhYmxlLmMtNjAxNC1cdHsgMCwgMCwgMCwgMCwgMSwgMzAsIH0sXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYi5jPTE1OTQ9c3RhdGljIHZvaWQgcnR3ODgyMmJfZmlsbF90eGRlc2NfY2hlY2tzdW0oc3RydWN0IHJ0d19kZXYgKnJ0d2RldixcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmIuYzoxNTk1Olx0XHRcdFx0XHQgIHN0cnVjdCBydHdfdHhfcGt0X2luZm8gKnBrdF9pbmZvLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYi5jLTE1OTYtXHRcdFx0XHRcdCAgdTggKnR4ZGVzYylcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJiLmg9NzQ9c3RydWN0IHJ0dzg4MjJiX2VmdXNlIHtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJiLmgtODAtXHQvKiBwb3dlciBpbmRleCBmb3IgZm91ciBSRiBwYXRocyAqL1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYi5oOjgxOlx0c3RydWN0IHJ0d190eHB3cl9pZHggdHhwd3JfaWR4X3RhYmxlWzRdO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYi5oLTgyLVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmJfdGFibGUuYz0yMDQzND1SVFdfREVDTF9UQUJMRV9SRl9SQURJTyhydHc4ODIyYl9yZl9iLCBCKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmJfdGFibGUuYy0yMDQzNS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmJfdGFibGUuYzoyMDQzNjpzdGF0aWMgY29uc3Qgc3RydWN0IHJ0d190eHB3cl9sbXRfY2ZnX3BhaXIgcnR3ODgyMmJfdHhwd3JfbG10X3R5cGUwW10gPSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJiX3RhYmxlLmMtMjA0MzctXHR7IDAsIDAsIDAsIDAsIDEsIDMyLCB9LFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmJfdGFibGUuYz0yMTAyND1SVFdfREVDTF9UQUJMRV9UWFBXUl9MTVQocnR3ODgyMmJfdHhwd3JfbG10X3R5cGUwKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmJfdGFibGUuYy0yMTAyNS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmJfdGFibGUuYzoyMTAyNjpzdGF0aWMgY29uc3Qgc3RydWN0IHJ0d190eHB3cl9sbXRfY2ZnX3BhaXIgcnR3ODgyMmJfdHhwd3JfbG10X3R5cGUyW10gPSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJiX3RhYmxlLmMtMjEwMjctXHR7IDAsIDAsIDAsIDAsIDEsIDMyLCB9LFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmJfdGFibGUuYz0yMTYxND1SVFdfREVDTF9UQUJMRV9UWFBXUl9MTVQocnR3ODgyMmJfdHhwd3JfbG10X3R5cGUyKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmJfdGFibGUuYy0yMTYxNS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmJfdGFibGUuYzoyMTYxNjpzdGF0aWMgY29uc3Qgc3RydWN0IHJ0d190eHB3cl9sbXRfY2ZnX3BhaXIgcnR3ODgyMmJfdHhwd3JfbG10X3R5cGU1W10gPSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJiX3RhYmxlLmMtMjE2MTctXHR7IDAsIDAsIDAsIDAsIDEsIDMyLCB9LFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYz00NTYzPXN0YXRpYyB2b2lkIHJ0dzg4MjJjX2ZpbGxfdHhkZXNjX2NoZWNrc3VtKHN0cnVjdCBydHdfZGV2ICpydHdkZXYsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmM6NDU2NDpcdFx0XHRcdFx0ICBzdHJ1Y3QgcnR3X3R4X3BrdF9pbmZvICpwa3RfaW5mbyxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYy00NTY1LVx0XHRcdFx0XHQgIHU4ICp0eGRlc2MpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5oPTYxPXN0cnVjdCBydHc4ODIyY19lZnVzZSB7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5oLTY3LVx0LyogcG93ZXIgaW5kZXggZm9yIGZvdXIgUkYgcGF0aHMgKi9cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuaDo2ODpcdHN0cnVjdCBydHdfdHhwd3JfaWR4IHR4cHdyX2lkeF90YWJsZVs0XTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuaC02OS1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjX3RhYmxlLmM9Mzk4MjI9UlRXX0RFQ0xfVEFCTEVfUkZfUkFESU8ocnR3ODgyMmNfcmZfYiwgQik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjX3RhYmxlLmMtMzk4MjMtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjX3RhYmxlLmM6Mzk4MjQ6c3RhdGljIGNvbnN0IHN0cnVjdCBydHdfdHhwd3JfbG10X2NmZ19wYWlyIHJ0dzg4MjJjX3R4cHdyX2xtdF90eXBlMFtdID0ge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyY190YWJsZS5jLTM5ODI1LVx0eyAwLCAwLCAwLCAwLCAxLCA3MiwgfSxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjX3RhYmxlLmM9NDIxNjc9UlRXX0RFQ0xfVEFCTEVfVFhQV1JfTE1UKHJ0dzg4MjJjX3R4cHdyX2xtdF90eXBlMCk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjX3RhYmxlLmMtNDIxNjgtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjX3RhYmxlLmM6NDIxNjk6c3RhdGljIGNvbnN0IHN0cnVjdCBydHdfdHhwd3JfbG10X2NmZ19wYWlyIHJ0dzg4MjJjX3R4cHdyX2xtdF90eXBlNVtdID0ge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyY190YWJsZS5jLTQyMTcwLVx0eyAwLCAwLCAwLCAwLCAxLCA3MiwgfSxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4eHhhLmg9Mjg9c3RydWN0IHJ0dzg4eHhhX2VmdXNlIHtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4eHhhLmgtMzQtXHQvKiBwb3dlciBpbmRleCBmb3IgZm91ciBSRiBwYXRocyAqL1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4OHh4YS5oOjM1Olx0c3RydWN0IHJ0d190eHB3cl9pZHggdHhwd3JfaWR4X3RhYmxlWzRdO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4OHh4YS5oLTM2LVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvc2Rpby5jPTQ3MD1zdGF0aWMgdTMyIHJ0d19zZGlvX2dldF90eF9hZGRyKHN0cnVjdCBydHdfZGV2ICpydHdkZXYsIHNpemVfdCBzaXplLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9zZGlvLmM6NDcxOlx0XHRcdFx0ZW51bSBydHdfdHhfcXVldWVfdHlwZSBxdWV1ZSlcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvc2Rpby5jLTQ3Mi17XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9zZGlvLmM9NjM1PXN0YXRpYyBpbnQgcnR3X3NkaW9fd3JpdGVfcG9ydChzdHJ1Y3QgcnR3X2RldiAqcnR3ZGV2LCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9zZGlvLmM6NjM2Olx0XHRcdCAgICAgICBlbnVtIHJ0d190eF9xdWV1ZV90eXBlIHF1ZXVlKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9zZGlvLmMtNjM3LXtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3NkaW8uYz04NDc9c3RhdGljIHZvaWQgcnR3X3NkaW9fdHhfc2tiX3ByZXBhcmUoc3RydWN0IHJ0d19kZXYgKnJ0d2RldixcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvc2Rpby5jOjg0ODpcdFx0XHRcdCAgICBzdHJ1Y3QgcnR3X3R4X3BrdF9pbmZvICpwa3RfaW5mbyxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvc2Rpby5jLTg0OS1cdFx0XHRcdCAgICBzdHJ1Y3Qgc2tfYnVmZiAqc2tiLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9zZGlvLmM6ODUwOlx0XHRcdFx0ICAgIGVudW0gcnR3X3R4X3F1ZXVlX3R5cGUgcXVldWUpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3NkaW8uYy04NTEte1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvc2Rpby5jLTg4MC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvc2Rpby5jOjg4MTpcdHJ0d190eF9maWxsX3R4X2Rlc2MocnR3ZGV2LCBwa3RfaW5mbywgc2tiKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvc2Rpby5jOjg4MjpcdHJ0d190eF9maWxsX3R4ZGVzY19jaGVja3N1bShydHdkZXYsIHBrdF9pbmZvLCBwa3RfZGVzYyk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3NkaW8uYy04ODMtfVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvc2Rpby5jPTg4NT1zdGF0aWMgaW50IHJ0d19zZGlvX3dyaXRlX2RhdGEoc3RydWN0IHJ0d19kZXYgKnJ0d2RldixcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvc2Rpby5jOjg4NjpcdFx0XHQgICAgICAgc3RydWN0IHJ0d190eF9wa3RfaW5mbyAqcGt0X2luZm8sXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3NkaW8uYy04ODctXHRcdFx0ICAgICAgIHN0cnVjdCBza19idWZmICpza2IsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3NkaW8uYzo4ODg6XHRcdFx0ICAgICAgIGVudW0gcnR3X3R4X3F1ZXVlX3R5cGUgcXVldWUpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3NkaW8uYy04ODkte1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvc2Rpby5jPTkwMD1zdGF0aWMgaW50IHJ0d19zZGlvX3dyaXRlX2RhdGFfcnN2ZF9wYWdlKHN0cnVjdCBydHdfZGV2ICpydHdkZXYsIHU4ICpidWYsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9zZGlvLmMtOTAyLXtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvc2Rpby5jOjkwMzpcdHN0cnVjdCBydHdfdHhfcGt0X2luZm8gcGt0X2luZm8gPSB7fTtcblxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjIzLzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8xNCAwNjo0MjwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAzMDU0NAoJCQkJCQkJb3V0cHV0OiA0MwoJCQkJCQkJdGhvdWdodHM6IDMwOQoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipBbmFseXppbmcgdGhlIFRhcmdldCBmb3IgRnV6emluZyoqCgpPa2F5LCBzbyBJJiMzOTttIGxvb2tpbmcgYXQgdGhpcyBjb2RlIGFuZCB0cnlpbmcgdG8gZmlndXJlIG91dCBpZiBpdCYjMzk7cyBhIGdvb2QgY2FuZGlkYXRlIGZvciBmdXp6aW5nLiBgcnR3X3R4YCBpcyBkZWZpbml0ZWx5IHJlYWNoYWJsZSBiZWNhdXNlIGl0JiMzOTtzIHRoZSBtYWM4MDIxMSBUWCBjYWxsYmFjaywgY2FsbGVkIHRocm91Z2ggYHJ0d19vcHNfdHhgLiBJIGNhbiBzZWUgdGhhdCBjbGVhcmx5LiBCdXQgbXkgaW50ZXJlc3QgaXMgcGlxdWVkIGJlY2F1c2UgdGhlIHBhdGNoIG1vZGlmaWVzIGBydHdfdXNiX3R4X3F1ZXVlX21hcHBpbmdfdG9fcXNlbGAgaW4gYHVzYi5jYC4gTm93LCB0aGF0JiMzOTtzIGNhbGxlZCBieSBgcnR3X3VzYl90eF93cml0ZWAsIHdoaWNoIGlzIHRoZSBgdHhfd3JpdGVgIGNhbGxiYWNrICpzcGVjaWZpY2FsbHkqIGZvciBVU0IgdHJhbnNtaXNzaW9ucy4gU28sIHRoYXQmIzM5O3MgZGVmaW5pdGVseSBhIHZpYWJsZSBwYXRoIGZvciBwYWNrZXRzIHNlbnQgb3ZlciBVU0IuCgpUaGUgbW9yZSBJIHRoaW5rIGFib3V0IGl0LCB5ZWFoLCB0aGlzIGlzIHdvcnRoIGludmVzdGlnYXRpbmcgZnVydGhlci4gQ2hhbmdlcyB0byBxdWV1ZSBzZWxlY3Rpb24gZm9yIGJyb2FkY2FzdCBhbmQgbXVsdGljYXN0IHBhY2tldHMgYXJlIGZ1bmN0aW9uYWxseSBzaWduaWZpY2FudC4gVGhlIGtleSBwYXJ0IGlzIHRoYXQgdGhlIGxvZ2ljIGludm9sdmVzIGNoZWNraW5nIGBpbmZvLSZndDtmbGFncyAmYW1wOyBJRUVFODAyMTFfVFhfQ1RMX1NFTkRfQUZURVJfRFRJTWAuIG1hYzgwMjExIHNldHMgdGhpcyBmbGFnIGZvciBtdWx0aWNhc3QgYW5kIGJyb2FkY2FzdCBmcmFtZXMsIG1lYW5pbmcgdGhlIGNoYW5nZXMgd2lsbCBkZWZpbml0ZWx5IGFmZmVjdCBob3cgdGhlc2Uga2luZHMgb2YgZnJhbWVzIGFyZSBoYW5kbGVkLiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgaW4gdGhlIGRyaXZlciYjMzk7cyBUWCBwYXRoLgoKTm93LCBsZXQmIzM5O3MgY29uc2lkZXIgdGhlIGZ1enppbmcgc3RyYXRlZ3kuIElzIGBydHdfdXNiX3R4X3dyaXRlYCBhIGdvb2Qgc3ltYm9sIHRvIGZvY3VzIG9uPyBIbW0sIGl0JiMzOTtzIHN0YXRpYywgd2hpY2ggaXMgYSBjb25jZXJuIOKAkyBpdCBjb3VsZCBiZSBpbmxpbmVkLCBvciBtaWdodCBub3QgZXZlbiBoYXZlIGEgZGlzdGluY3Qgc3ltYm9sIGluIHRoZSBmaW5hbCBiaW5hcnkuIFNvLCBsZXQmIzM5O3MgcGl2b3QuIENoZWNraW5nIGBydHdfdXNiX3R4X3F1ZXVlX21hcHBpbmdfdG9fcXNlbGAsIHRoYXQmIzM5O3Mgc3RhdGljIHRvby4gT2theSwgbGV0JiMzOTtzIGJyb2FkZW4gdGhlIHNlYXJjaCBhIGJpdC4gQXJlIHRoZXJlIGFueSAqbm9uKi1zdGF0aWMgZnVuY3Rpb25zIGluIHRoaXMgYXJlYT8gTG9va3MgbGlrZSBgcnR3X3VzYl9vcHNgIGlzIHN0YXRpYywgc28gdGhhdCYjMzk7cyBub3QgdXNlZnVsLiBCdXQgYHJ0d191c2JfcHJvYmVgIGlzIG5vbi1zdGF0aWMgb3IgcG9zc2libHkgZXhwb3J0ZWQsIGl0JiMzOTtzIHdvcnRoIGEgbG9vay4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4yNC8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMTQgMDY6NDI8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7cnR3X3VzYl9wcm9iZSYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdXNiLmMmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC91c2IuYz0xMjI3PXN0YXRpYyB2b2lkIHJ0d191c2JfcGh5X2NmZyhzdHJ1Y3QgcnR3X2RldiAqcnR3ZGV2LFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdXNiLmMtMTI2NC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdXNiLmM6MTI2NTppbnQgcnR3X3VzYl9wcm9iZShzdHJ1Y3QgdXNiX2ludGVyZmFjZSAqaW50ZiwgY29uc3Qgc3RydWN0IHVzYl9kZXZpY2VfaWQgKmlkKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC91c2IuYy0xMjY2LXtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3VzYi5jLTEzNjAtfVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC91c2IuYzoxMzYxOkVYUE9SVF9TWU1CT0wocnR3X3VzYl9wcm9iZSk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3VzYi5jLTEzNjItXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MjUvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzE0IDA2OjQyPC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDMxNTU3CgkJCQkJCQlvdXRwdXQ6IDQxCgkJCQkJCQl0aG91Z2h0czogNDAKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPk9rYXksIGhlcmUmIzM5O3MgbXkgdGFrZSBvbiB0aG9zZSB0aG91Z2h0cywgZnJhbWVkIGFzIGFuIGV4cGVydCYjMzk7cyBpbnRlcm5hbCBtb25vbG9ndWU6CgoqKkludmVzdGlnYXRpbmcgdGhlIHJ0d191c2IgRHJpdmVyKioKCkFscmlnaHQsIHNvIGBydHdfdXNiX3Byb2JlYCBpcyBleHBvc2VkLCB0aGF0JiMzOTtzIG5vdCBuZXdzLCBidXQgdGhlIGNvbW1pdCYjMzk7cyBmb2N1c2VkIG9uIHRoZSB0cmFuc21pdCBwYXRoLiBJbnRlcmVzdGluZy4gTXkgaW5pdGlhbCBndXQgZmVlbGluZyBpcyB0byBjaGVjayBpZiBgcnR3X3R4YCBoYWQgYW55IGNoYW5nZXMgd2l0aCB0aGlzIHBhdGNoLiBUaGF0IGZ1bmN0aW9uIGxpdmVzIGluIGB0eC5jYCwgc28gSSBzaG91bGQgcHJvYmFibHkganVtcCBzdHJhaWdodCB0aGVyZSBhbmQgc2VlIHdoYXQmIzM5O3MgY2hhbmdlZCBpbiByZWxhdGlvbiB0byB0aGUgcmVwb3J0ZWQgaXNzdWUuIEl0IHdvdWxkIG1ha2Ugc2Vuc2UgdG8gbG9vayBhdCBob3cgdGhlc2UgZnVuY3Rpb25zIGFyZSBiZWluZyBjYWxsZWQsIGFuZCBpZiB0aGUgY2hhbmdlcyBpbiBgcnR3X3VzYl9wcm9iZWAgYXJlIGFmZmVjdGluZyB0aGUgbG9naWMgaW4gYHJ0d190eGAuIExldCYjMzk7cyBzZWUgaWYgdGhpcyBsaW5lcyB1cCB3aXRoIHRoZSBwcm9ibGVtIHJlcG9ydC4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4yNi8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMTQgMDY6NDI8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7cnR3X3R4JiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC90eC5jJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdHguYz0xMT1zdGF0aWNcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdHguYzoxMjp2b2lkIHJ0d190eF9zdGF0cyhzdHJ1Y3QgcnR3X2RldiAqcnR3ZGV2LCBzdHJ1Y3QgaWVlZTgwMjExX3ZpZiAqdmlmLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC90eC5jLTEzLVx0XHQgIHN0cnVjdCBza19idWZmICpza2IpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC90eC5jLTM0LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC90eC5jOjM1OnZvaWQgcnR3X3R4X2ZpbGxfdHhfZGVzYyhzdHJ1Y3QgcnR3X2RldiAqcnR3ZGV2LFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC90eC5jOjM2Olx0XHRcdCBzdHJ1Y3QgcnR3X3R4X3BrdF9pbmZvICpwa3RfaW5mbywgc3RydWN0IHNrX2J1ZmYgKnNrYilcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdHguYy0zNy17XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3R4LmM6Mzg6XHRzdHJ1Y3QgcnR3X3R4X2Rlc2MgKnR4X2Rlc2MgPSAoc3RydWN0IHJ0d190eF9kZXNjICopc2tiLVx1MDAzZWRhdGE7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3R4LmMtMzktXHRib29sIG1vcmVfZGF0YSA9IGZhbHNlO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdHguYy05My19XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3R4LmM6OTQ6RVhQT1JUX1NZTUJPTChydHdfdHhfZmlsbF90eF9kZXNjKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdHguYy05NS1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3R4LmM9MTI1PXN0YXRpYyB1OCBnZXRfaGlnaGVzdF92aHRfdHhfcmF0ZShzdHJ1Y3QgcnR3X2RldiAqcnR3ZGV2LFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdHguYy0xNjUtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3R4LmM6MTY2OnN0YXRpYyB2b2lkIHJ0d190eF9yZXBvcnRfZW5hYmxlKHN0cnVjdCBydHdfZGV2ICpydHdkZXYsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3R4LmM6MTY3Olx0XHRcdFx0IHN0cnVjdCBydHdfdHhfcGt0X2luZm8gKnBrdF9pbmZvKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC90eC5jLTE2OC17XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3R4LmM6MTY5Olx0c3RydWN0IHJ0d190eF9yZXBvcnQgKnR4X3JlcG9ydCA9IFx1MDAyNnJ0d2Rldi1cdTAwM2V0eF9yZXBvcnQ7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3R4LmMtMTcwLVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdHguYy0xNzgtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3R4LmM6MTc5OnZvaWQgcnR3X3R4X3JlcG9ydF9wdXJnZV90aW1lcihzdHJ1Y3QgdGltZXJfbGlzdCAqdClcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdHguYy0xODAte1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdHguYy0xODItXHRcdFx0XHRcdFx0ICAgIHR4X3JlcG9ydC5wdXJnZV90aW1lcik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3R4LmM6MTgzOlx0c3RydWN0IHJ0d190eF9yZXBvcnQgKnR4X3JlcG9ydCA9IFx1MDAyNnJ0d2Rldi1cdTAwM2V0eF9yZXBvcnQ7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3R4LmMtMTg0LVx0dW5zaWduZWQgbG9uZyBmbGFncztcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3R4LmMtMTk1LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC90eC5jOjE5Njp2b2lkIHJ0d190eF9yZXBvcnRfZW5xdWV1ZShzdHJ1Y3QgcnR3X2RldiAqcnR3ZGV2LCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCB1OCBzbilcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdHguYy0xOTcte1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC90eC5jOjE5ODpcdHN0cnVjdCBydHdfdHhfcmVwb3J0ICp0eF9yZXBvcnQgPSBcdTAwMjZydHdkZXYtXHUwMDNldHhfcmVwb3J0O1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC90eC5jLTE5OS1cdHVuc2lnbmVkIGxvbmcgdGltZW91dCA9IFJUV19UWF9QUk9CRV9USU1FT1VUO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdHguYy0yMTYtfVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC90eC5jOjIxNzpFWFBPUlRfU1lNQk9MKHJ0d190eF9yZXBvcnRfZW5xdWV1ZSk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3R4LmMtMjE4LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC90eC5jOjIxOTpzdGF0aWMgdm9pZCBydHdfdHhfcmVwb3J0X3R4X3N0YXR1cyhzdHJ1Y3QgcnR3X2RldiAqcnR3ZGV2LFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC90eC5jLTIyMC1cdFx0XHRcdCAgICBzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBib29sIGFja2VkKVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdHguYy0yMzMtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3R4LmM6MjM0OnZvaWQgcnR3X3R4X3JlcG9ydF9oYW5kbGUoc3RydWN0IHJ0d19kZXYgKnJ0d2Rldiwgc3RydWN0IHNrX2J1ZmYgKnNrYiwgaW50IHNyYylcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdHguYy0yMzUte1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC90eC5jOjIzNjpcdHN0cnVjdCBydHdfdHhfcmVwb3J0ICp0eF9yZXBvcnQgPSBcdTAwMjZydHdkZXYtXHUwMDNldHhfcmVwb3J0O1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC90eC5jLTIzNy1cdHN0cnVjdCBydHdfYzJoX2NtZCAqYzJoO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdHguYy0yNTctXHRcdFx0X19za2JfdW5saW5rKGN1ciwgXHUwMDI2dHhfcmVwb3J0LVx1MDAzZXF1ZXVlKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdHguYzoyNTg6XHRcdFx0cnR3X3R4X3JlcG9ydF90eF9zdGF0dXMocnR3ZGV2LCBjdXIsIHN0ID09IDApO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC90eC5jLTI1OS1cdFx0XHRicmVhaztcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3R4LmM9MjY1PXN0YXRpYyB1OCBydHdfZ2V0X21nbXRfcmF0ZShzdHJ1Y3QgcnR3X2RldiAqcnR3ZGV2LCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiLFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdHguYy0yNzctXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3R4LmM6Mjc4OnN0YXRpYyB2b2lkIHJ0d190eF9wa3RfaW5mb191cGRhdGVfcmF0ZShzdHJ1Y3QgcnR3X2RldiAqcnR3ZGV2LFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC90eC5jOjI3OTpcdFx0XHRcdFx0c3RydWN0IHJ0d190eF9wa3RfaW5mbyAqcGt0X2luZm8sXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3R4LmMtMjgwLVx0XHRcdFx0XHRzdHJ1Y3Qgc2tfYnVmZiAqc2tiLFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdHguYy0yOTYtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3R4LmM6Mjk3OnN0YXRpYyB2b2lkIHJ0d190eF9wa3RfaW5mb191cGRhdGVfc2VjKHN0cnVjdCBydHdfZGV2ICpydHdkZXYsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3R4LmM6Mjk4Olx0XHRcdFx0ICAgICAgIHN0cnVjdCBydHdfdHhfcGt0X2luZm8gKnBrdF9pbmZvLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC90eC5jLTI5OS1cdFx0XHRcdCAgICAgICBzdHJ1Y3Qgc2tfYnVmZiAqc2tiKVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdHguYy0zMjMtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3R4LmM6MzI0OnN0YXRpYyB2b2lkIHJ0d190eF9tZ210X3BrdF9pbmZvX3VwZGF0ZShzdHJ1Y3QgcnR3X2RldiAqcnR3ZGV2LFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC90eC5jOjMyNTpcdFx0XHRcdFx0c3RydWN0IHJ0d190eF9wa3RfaW5mbyAqcGt0X2luZm8sXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3R4LmMtMzI2LVx0XHRcdFx0XHRzdHJ1Y3QgaWVlZTgwMjExX3N0YSAqc3RhLFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdHguYy0zMjgte1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC90eC5jOjMyOTpcdHJ0d190eF9wa3RfaW5mb191cGRhdGVfcmF0ZShydHdkZXYsIHBrdF9pbmZvLCBza2IsIGZhbHNlKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdHguYy0zMzAtXHRwa3RfaW5mby1cdTAwM2VkaXNfcXNlbHNlcSA9IHRydWU7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC90eC5jLTMzNS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdHguYzozMzY6c3RhdGljIHZvaWQgcnR3X3R4X2RhdGFfcGt0X2luZm9fdXBkYXRlKHN0cnVjdCBydHdfZGV2ICpydHdkZXYsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3R4LmM6MzM3Olx0XHRcdFx0XHRzdHJ1Y3QgcnR3X3R4X3BrdF9pbmZvICpwa3RfaW5mbyxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdHguYy0zMzgtXHRcdFx0XHRcdHN0cnVjdCBpZWVlODAyMTFfc3RhICpzdGEsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC90eC5jLTQwNi1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdHguYzo0MDc6dm9pZCBydHdfdHhfcGt0X2luZm9fdXBkYXRlKHN0cnVjdCBydHdfZGV2ICpydHdkZXYsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3R4LmM6NDA4Olx0XHRcdCAgICBzdHJ1Y3QgcnR3X3R4X3BrdF9pbmZvICpwa3RfaW5mbyxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdHguYy00MDktXHRcdFx0ICAgIHN0cnVjdCBpZWVlODAyMTFfc3RhICpzdGEsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC90eC5jLTQyOS1cdGlmIChpZWVlODAyMTFfaXNfbWdtdChmYykgfHwgaWVlZTgwMjExX2lzX2FueV9udWxsZnVuYyhmYykpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3R4LmM6NDMwOlx0XHRydHdfdHhfbWdtdF9wa3RfaW5mb191cGRhdGUocnR3ZGV2LCBwa3RfaW5mbywgc3RhLCBza2IpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC90eC5jLTQzMS1cdGVsc2UgaWYgKGllZWU4MDIxMV9pc19kYXRhKGZjKSlcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdHguYzo0MzI6XHRcdHJ0d190eF9kYXRhX3BrdF9pbmZvX3VwZGF0ZShydHdkZXYsIHBrdF9pbmZvLCBzdGEsIHNrYik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3R4LmMtNDMzLVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdHguYy00MzctXHRpZiAoaW5mby1cdTAwM2VmbGFncyBcdTAwMjYgSUVFRTgwMjExX1RYX0NUTF9SRVFfVFhfU1RBVFVTKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC90eC5jOjQzODpcdFx0cnR3X3R4X3JlcG9ydF9lbmFibGUocnR3ZGV2LCBwa3RfaW5mbyk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3R4LmMtNDM5LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC90eC5jLTQ0MC1cdHBrdF9pbmZvLVx1MDAzZWJtYyA9IGJtYztcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdHguYzo0NDE6XHRydHdfdHhfcGt0X2luZm9fdXBkYXRlX3NlYyhydHdkZXYsIHBrdF9pbmZvLCBza2IpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC90eC5jLTQ0Mi1cdHBrdF9pbmZvLVx1MDAzZXR4X3BrdF9zaXplID0gc2tiLVx1MDAzZWxlbjtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3R4LmMtNDQ3LVx0LyogbWF5YmUgbWVyZ2Ugd2l0aCB0eCBzdGF0dXMgPyAqL1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC90eC5jOjQ0ODpcdHJ0d190eF9zdGF0cyhydHdkZXYsIHZpZiwgc2tiKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdHguYy00NDktfVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC90eC5jLTQ1MC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdHguYzo0NTE6dm9pZCBydHdfdHhfcnN2ZF9wYWdlX3BrdF9pbmZvX3VwZGF0ZShzdHJ1Y3QgcnR3X2RldiAqcnR3ZGV2LFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC90eC5jOjQ1MjpcdFx0XHRcdCAgICAgIHN0cnVjdCBydHdfdHhfcGt0X2luZm8gKnBrdF9pbmZvLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC90eC5jLTQ1My1cdFx0XHRcdCAgICAgIHN0cnVjdCBza19idWZmICpza2IsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC90eC5jLTQ2NS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdHguYzo0NjY6XHRydHdfdHhfcGt0X2luZm9fdXBkYXRlX3JhdGUocnR3ZGV2LCBwa3RfaW5mbywgc2tiLCB0cnVlKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdHguYy00NjctXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC90eC5jLTQ5Ni1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdHguYzo0OTc6XHRydHdfdHhfcGt0X2luZm9fdXBkYXRlX3NlYyhydHdkZXYsIHBrdF9pbmZvLCBza2IpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC90eC5jLTQ5OC1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3R4LmM9NTAyPXN0cnVjdCBza19idWZmICpcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdHguYzo1MDM6cnR3X3R4X3dyaXRlX2RhdGFfcnN2ZF9wYWdlX2dldChzdHJ1Y3QgcnR3X2RldiAqcnR3ZGV2LFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC90eC5jOjUwNDpcdFx0XHRcdHN0cnVjdCBydHdfdHhfcGt0X2luZm8gKnBrdF9pbmZvLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC90eC5jLTUwNS1cdFx0XHRcdHU4ICpidWYsIHUzMiBzaXplKVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdHguYy01MjEtXHRza2JfcHV0X2RhdGEoc2tiLCBidWYsIHNpemUpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC90eC5jOjUyMjpcdHJ0d190eF9yc3ZkX3BhZ2VfcGt0X2luZm9fdXBkYXRlKHJ0d2RldiwgcGt0X2luZm8sIHNrYiwgUlNWRF9CRUFDT04pO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC90eC5jLTUyMy1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3R4LmMtNTI1LX1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdHguYzo1MjY6RVhQT1JUX1NZTUJPTChydHdfdHhfd3JpdGVfZGF0YV9yc3ZkX3BhZ2VfZ2V0KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdHguYy01MjctXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3R4LmM9NTI4PXN0cnVjdCBza19idWZmICpcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdHguYzo1Mjk6cnR3X3R4X3dyaXRlX2RhdGFfaDJjX2dldChzdHJ1Y3QgcnR3X2RldiAqcnR3ZGV2LFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC90eC5jOjUzMDpcdFx0XHQgIHN0cnVjdCBydHdfdHhfcGt0X2luZm8gKnBrdF9pbmZvLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC90eC5jLTUzMS1cdFx0XHQgIHU4ICpidWYsIHUzMiBzaXplKVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdHguYy01NTEtfVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC90eC5jOjU1MjpFWFBPUlRfU1lNQk9MKHJ0d190eF93cml0ZV9kYXRhX2gyY19nZXQpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC90eC5jLTU1My1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdHguYzo1NTQ6dm9pZCBydHdfdHgoc3RydWN0IHJ0d19kZXYgKnJ0d2RldixcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdHguYy01NTUtXHQgICAgc3RydWN0IGllZWU4MDIxMV90eF9jb250cm9sICpjb250cm9sLFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdHguYy01NTcte1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC90eC5jOjU1ODpcdHN0cnVjdCBydHdfdHhfcGt0X2luZm8gcGt0X2luZm8gPSB7MH07XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3R4LmMtNTU5LVx0aW50IHJldDtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdHguYy01NjAtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3R4LmM6NTYxOlx0cnR3X3R4X3BrdF9pbmZvX3VwZGF0ZShydHdkZXYsIFx1MDAyNnBrdF9pbmZvLCBjb250cm9sLVx1MDAzZXN0YSwgc2tiKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdHguYy01NjItXHRyZXQgPSBydHdfaGNpX3R4X3dyaXRlKHJ0d2RldiwgXHUwMDI2cGt0X2luZm8sIHNrYik7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC90eC5jLTU3NS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdHguYzo1NzY6c3RhdGljIHZvaWQgcnR3X3R4cV9jaGVja19hZ2coc3RydWN0IHJ0d19kZXYgKnJ0d2RldixcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdHguYzo1Nzc6XHRcdFx0ICAgICAgc3RydWN0IHJ0d190eHEgKnJ0d3R4cSxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdHguYy01NzgtXHRcdFx0ICAgICAgc3RydWN0IHNrX2J1ZmYgKnNrYilcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3R4LmMtNjA3LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC90eC5jOjYwODpzdGF0aWMgaW50IHJ0d190eHFfcHVzaF9za2Ioc3RydWN0IHJ0d19kZXYgKnJ0d2RldixcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdHguYzo2MDk6XHRcdFx0ICAgIHN0cnVjdCBydHdfdHhxICpydHd0eHEsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3R4LmMtNjEwLVx0XHRcdCAgICBzdHJ1Y3Qgc2tfYnVmZiAqc2tiKVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdHguYy02MTItXHRzdHJ1Y3QgaWVlZTgwMjExX3R4cSAqdHhxID0gcnR3dHhxX3RvX3R4cShydHd0eHEpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC90eC5jOjYxMzpcdHN0cnVjdCBydHdfdHhfcGt0X2luZm8gcGt0X2luZm8gPSB7MH07XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3R4LmMtNjE0LVx0aW50IHJldDtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdHguYy02MTUtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3R4LmM6NjE2Olx0cnR3X3R4cV9jaGVja19hZ2cocnR3ZGV2LCBydHd0eHEsIHNrYik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3R4LmMtNjE3LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC90eC5jOjYxODpcdHJ0d190eF9wa3RfaW5mb191cGRhdGUocnR3ZGV2LCBcdTAwMjZwa3RfaW5mbywgdHhxLVx1MDAzZXN0YSwgc2tiKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdHguYy02MTktXHRyZXQgPSBydHdfaGNpX3R4X3dyaXRlKHJ0d2RldiwgXHUwMDI2cGt0X2luZm8sIHNrYik7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC90eC5jLTYyNy1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdHguYzo2Mjg6c3RhdGljIHZvaWQgcnR3X3R4cV9wdXNoKHN0cnVjdCBydHdfZGV2ICpydHdkZXYsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3R4LmM6NjI5Olx0XHRcdCBzdHJ1Y3QgcnR3X3R4cSAqcnR3dHhxLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC90eC5jLTYzMC1cdFx0XHQgdW5zaWduZWQgbG9uZyBmcmFtZXMpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC90eC5jLTY0My1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdHguYzo2NDQ6XHRcdHJldCA9IHJ0d190eHFfcHVzaF9za2IocnR3ZGV2LCBydHd0eHEsIHNrYik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3R4LmMtNjQ1LVx0XHRpZiAocmV0KSB7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC90eC5jLTY1My1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdHguYzo2NTQ6dm9pZCBfX3J0d190eF93b3JrKHN0cnVjdCBydHdfZGV2ICpydHdkZXYpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3R4LmMtNjU1LXtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdHguYzo2NTY6XHRzdHJ1Y3QgcnR3X3R4cSAqcnR3dHhxLCAqdG1wO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC90eC5jLTY1Ny1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3R4LmMtNjY0LVx0XHRpZWVlODAyMTFfdHhxX2dldF9kZXB0aCh0eHEsIFx1MDAyNmZyYW1lX2NudCwgTlVMTCk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3R4LmM6NjY1Olx0XHRydHdfdHhxX3B1c2gocnR3ZGV2LCBydHd0eHEsIGZyYW1lX2NudCk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3R4LmMtNjY2LVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdHguYy02NzQtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3R4LmM6Njc1OnZvaWQgcnR3X3R4X3dvcmsoc3RydWN0IHdvcmtfc3RydWN0ICp3KVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC90eC5jLTY3Ni17XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC90eC5jLTY3OC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdHguYzo2Nzk6XHRfX3J0d190eF93b3JrKHJ0d2Rldik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3R4LmMtNjgwLX1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdHguYy02ODEtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3R4LmM6NjgyOnZvaWQgcnR3X3R4cV9pbml0KHN0cnVjdCBydHdfZGV2ICpydHdkZXYsIHN0cnVjdCBpZWVlODAyMTFfdHhxICp0eHEpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3R4LmMtNjgzLXtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdHguYzo2ODQ6XHRzdHJ1Y3QgcnR3X3R4cSAqcnR3dHhxO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC90eC5jLTY4NS1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3R4LmMtNjg4LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC90eC5jOjY4OTpcdHJ0d3R4cSA9IChzdHJ1Y3QgcnR3X3R4cSAqKXR4cS1cdTAwM2VkcnZfcHJpdjtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdHguYy02OTAtXHRJTklUX0xJU1RfSEVBRChcdTAwMjZydHd0eHEtXHUwMDNlbGlzdCk7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC90eC5jLTY5Mi1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdHguYzo2OTM6dm9pZCBydHdfdHhxX2NsZWFudXAoc3RydWN0IHJ0d19kZXYgKnJ0d2Rldiwgc3RydWN0IGllZWU4MDIxMV90eHEgKnR4cSlcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdHguYy02OTQte1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC90eC5jOjY5NTpcdHN0cnVjdCBydHdfdHhxICpydHd0eHE7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3R4LmMtNjk2LVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdHguYy02OTktXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3R4LmM6NzAwOlx0cnR3dHhxID0gKHN0cnVjdCBydHdfdHhxICopdHhxLVx1MDAzZWRydl9wcml2O1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC90eC5jLTcwMS1cdHNwaW5fbG9ja19iaChcdTAwMjZydHdkZXYtXHUwMDNldHhxX2xvY2spO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdHguYy03MDYtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3R4LmM6NzA3OnN0YXRpYyBjb25zdCBlbnVtIHJ0d190eF9xdWV1ZV90eXBlIGFjX3RvX2h3cVtdID0ge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC90eC5jLTcwOC1cdFtJRUVFODAyMTFfQUNfVk9dID0gUlRXX1RYX1FVRVVFX1ZPLFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdHguYz03MTQ9c3RhdGljX2Fzc2VydChBUlJBWV9TSVpFKGFjX3RvX2h3cSkgPT0gSUVFRTgwMjExX05VTV9BQ1MpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC90eC5jLTcxNS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdHguYzo3MTY6ZW51bSBydHdfdHhfcXVldWVfdHlwZSBydHdfdHhfYWNfdG9faHdxKGVudW0gaWVlZTgwMjExX2FjX251bWJlcnMgYWMpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3R4LmMtNzE3LXtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3R4LmMtNzIyLX1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdHguYzo3MjM6RVhQT1JUX1NZTUJPTChydHdfdHhfYWNfdG9faHdxKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdHguYy03MjQtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3R4LmM6NzI1OmVudW0gcnR3X3R4X3F1ZXVlX3R5cGUgcnR3X3R4X3F1ZXVlX21hcHBpbmcoc3RydWN0IHNrX2J1ZmYgKnNrYilcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdHguYy03MjYte1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdHguYy03MjktXHR1OCBxX21hcHBpbmcgPSBza2JfZ2V0X3F1ZXVlX21hcHBpbmcoc2tiKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdHguYzo3MzA6XHRlbnVtIHJ0d190eF9xdWV1ZV90eXBlIHF1ZXVlO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC90eC5jLTczMS1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3R4LmMtNzQ1LX1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdHguYzo3NDY6RVhQT1JUX1NZTUJPTChydHdfdHhfcXVldWVfbWFwcGluZyk7XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MjcvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzE0IDA2OjQyPC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDM4NDExCgkJCQkJCQlvdXRwdXQ6IDQyCgkJCQkJCQl0aG91Z2h0czogODMKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqSW52ZXN0aWdhdGluZyB0aGUgYHJ0d190eGAgRnVuY3Rpb24qKgoKT2theSwgc28gSSYjMzk7bSBkaWdnaW5nIGludG8gdGhpcyBjb2RlLCBhbmQgaXQgbG9va3MgbGlrZSBgcnR3X3R4YCBpc24mIzM5O3QgYSBkaXJlY3RseSBleHBvcnRlZCBmdW5jdGlvbi4gSSBzZWUgaXQgYmVpbmcgY2FsbGVkIGZyb20gYHJ0d19vcHNfdHhgIHdpdGhpbiBgbWFjODAyMTEuY2AsIHdoaWNoIGlzIGEgY29tbW9uIHBhdHRlcm4sIGJ1dCB0aGUgZnVuY3Rpb24mIzM5O3MgZGVmaW5pdGlvbiBpdHNlbGYuLi4gaXQmIzM5O3Mgbm90IGV4cG9ydGVkLiBIbW0uICpXYWl0Kiwgbm93IEkmIzM5O20gcmVtZW1iZXJpbmcg4oCTIHRoZXJlJiMzOTtzIGEgYHJ0d190eGAgZnVuY3Rpb24gb3ZlciBpbiBgdHguY2AsIGlzbiYjMzk7dCB0aGVyZT8gQnV0IHllYWgsIEkgY29uZmlybSwgaXQmIzM5O3Mgbm90IGV4cGxpY2l0bHkgZXhwb3J0ZWQsIGFuZCB0aGUgZGVjbGFyYXRpb24gaXMgYWN0dWFsbHkgcHJlc2VudCBpbiBgdHguaGAuIEkmIzM5O2xsIG5lZWQgdG8gZG91YmxlIGNoZWNrIGhvdyBpdCYjMzk7cyB1c2VkIHRoZXJlLCBhbmQgd2hhdCB0aGUgc3Vycm91bmRpbmcgY29udGV4dCB0ZWxscyBtZSBhYm91dCBob3cgaXQgaW50ZXJhY3RzIHdpdGggdGhlIHJlc3Qgb2YgdGhlIGRyaXZlci4gTGV0IG1lIGdvIHRha2UgYSBsb29rIGF0IHRoZSBkZWNsYXJhdGlvbiBpbiBgdHguaGAgdG8gbWFrZSBzdXJlIEkgdW5kZXJzdGFuZCBpdHMgc2lnbmF0dXJlIGFuZCBhbnkgaW5saW5lIGhpbnRzLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjI4LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8xNCAwNjo0MjwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDt2b2lkIHJ0d190eCYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdHguaCYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3R4Lmg9ODU9ZW51bSBydHdfcnN2ZF9wYWNrZXRfdHlwZTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdHguaC04Ni1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdHguaDo4Nzp2b2lkIHJ0d190eChzdHJ1Y3QgcnR3X2RldiAqcnR3ZGV2LFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC90eC5oLTg4LVx0ICAgIHN0cnVjdCBpZWVlODAyMTFfdHhfY29udHJvbCAqY29udHJvbCxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdHguaC04OS1cdCAgICBzdHJ1Y3Qgc2tfYnVmZiAqc2tiKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdHguaDo5MDp2b2lkIHJ0d190eHFfaW5pdChzdHJ1Y3QgcnR3X2RldiAqcnR3ZGV2LCBzdHJ1Y3QgaWVlZTgwMjExX3R4cSAqdHhxKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdHguaDo5MTp2b2lkIHJ0d190eHFfY2xlYW51cChzdHJ1Y3QgcnR3X2RldiAqcnR3ZGV2LCBzdHJ1Y3QgaWVlZTgwMjExX3R4cSAqdHhxKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdHguaDo5Mjp2b2lkIHJ0d190eF93b3JrKHN0cnVjdCB3b3JrX3N0cnVjdCAqdyk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3R4LmgtOTMtdm9pZCBfX3J0d190eF93b3JrKHN0cnVjdCBydHdfZGV2ICpydHdkZXYpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC90eC5oOjk0OnZvaWQgcnR3X3R4X3BrdF9pbmZvX3VwZGF0ZShzdHJ1Y3QgcnR3X2RldiAqcnR3ZGV2LFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC90eC5oLTk1LVx0XHRcdCAgICBzdHJ1Y3QgcnR3X3R4X3BrdF9pbmZvICpwa3RfaW5mbyxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3R4LmgtOTctXHRcdFx0ICAgIHN0cnVjdCBza19idWZmICpza2IpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC90eC5oOjk4OnZvaWQgcnR3X3R4X2ZpbGxfdHhfZGVzYyhzdHJ1Y3QgcnR3X2RldiAqcnR3ZGV2LFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC90eC5oLTk5LVx0XHRcdCBzdHJ1Y3QgcnR3X3R4X3BrdF9pbmZvICpwa3RfaW5mbywgc3RydWN0IHNrX2J1ZmYgKnNrYik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3R4Lmg6MTAwOnZvaWQgcnR3X3R4X3JlcG9ydF9lbnF1ZXVlKHN0cnVjdCBydHdfZGV2ICpydHdkZXYsIHN0cnVjdCBza19idWZmICpza2IsIHU4IHNuKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdHguaDoxMDE6dm9pZCBydHdfdHhfcmVwb3J0X2hhbmRsZShzdHJ1Y3QgcnR3X2RldiAqcnR3ZGV2LCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBpbnQgc3JjKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdHguaDoxMDI6dm9pZCBydHdfdHhfcnN2ZF9wYWdlX3BrdF9pbmZvX3VwZGF0ZShzdHJ1Y3QgcnR3X2RldiAqcnR3ZGV2LFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC90eC5oLTEwMy1cdFx0XHRcdCAgICAgIHN0cnVjdCBydHdfdHhfcGt0X2luZm8gKnBrdF9pbmZvLFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdHguaD0xMTk9dm9pZCBmaWxsX3R4ZGVzY19jaGVja3N1bV9jb21tb24odTggKnR4ZGVzYywgc2l6ZV90IHdvcmRzKVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdHguaC0xMzMtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3R4Lmg6MTM0OnN0YXRpYyBpbmxpbmUgdm9pZCBydHdfdHhfZmlsbF90eGRlc2NfY2hlY2tzdW0oc3RydWN0IHJ0d19kZXYgKnJ0d2RldixcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdHguaC0xMzUtXHRcdFx0XHRcdCAgICAgICBzdHJ1Y3QgcnR3X3R4X3BrdF9pbmZvICpwa3RfaW5mbyxcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4yOS8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMTQgMDY6NDI8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMzk2NzEKCQkJCQkJCW91dHB1dDogNDUKCQkJCQkJCXRob3VnaHRzOiAxNjEKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqRm9jdXNpbmcgb24gS2V5IFN5bWJvbHMqKgoKT2theSwgc28gSSYjMzk7bSB0aGlua2luZywgYHJ0d190eGAgbG9va3MgbGlrZSBhIHN0cm9uZyBjYW5kaWRhdGUgZm9yIGEgZm9jdXMgc3ltYm9sLiBBbmQsIGV2ZW4gdGhvdWdoIGl0JiMzOTtzIHN0YXRpYywgYHJ0d191c2JfdHhfd3JpdGVgIGFsc28gc2VlbXMgcHJvbWlzaW5nLCBlc3BlY2lhbGx5IHdpdGggdGhlIHBvc3NpYmlsaXR5IG9mIFN5emthbGxlciByZXNvbHZpbmcgaXQuIFdhaXQsIHRoZSBhY3R1YWwgZnVuY3Rpb24gdGhhdCB3YXMgbW9kaWZpZWQgaW4gdGhlIGNvbnRleHQgb2YgdGhlIGlzc3VlIGlzIGBydHdfdXNiX3R4X3F1ZXVlX21hcHBpbmdfdG9fcXNlbGAuIFJpZ2h0LCByaWdodC4gTGV0JiMzOTtzIGdldCB0aGVzZSBzeW1ib2xzIGFkZGVkIGFzIGZvY3VzIHN5bWJvbHM6IGBydHdfdXNiX3R4X3dyaXRlYCBhbmQgYWxzbyBgcnR3X3R4YC4KCk5vdywganVzdCB0byBiZSBjb21wbGV0ZWx5IHN1cmUsIGxldCYjMzk7cyBkb3VibGUtY2hlY2sgaWYgYHJ0d191c2JfdHhfcXVldWVfbWFwcGluZ190b19xc2VsYCBpcyBzdGF0aWMuIFllcywgaXQgaXMuIFNpbmNlIGl0JiMzOTtzIHN0YXRpYywgYW5kIEkgdGhpbmsgaXQmIzM5O3MgbGlrZWx5IGlubGluZWQsIGRvZXMgYHJ0d191c2JfdHhfd3JpdGVgIGNhbGwgaXQ/IEFoLCB5ZXMsIGl0IGRvZXMuIFRoYXQgbWVhbnMgaXQgaXMgaW5saW5lZC4KCkxldCYjMzk7cyBzaGlmdCBvdXIgZm9jdXMgdG8gaW52ZXN0aWdhdGluZyBgcnR3X3VzYl90eF93cml0ZWAgbW9yZSBjbG9zZWx5LgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjMwLzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8xNCAwNjo0MjwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtydHdfdXNiX3R4X3dyaXRlJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC91c2IuYyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3VzYi5jPTU2MD1zdGF0aWMgdTggcnR3X3VzYl90eF9xdWV1ZV9tYXBwaW5nX3RvX3FzZWwoc3RydWN0IHNrX2J1ZmYgKnNrYilcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3VzYi5jLTU4MC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdXNiLmM6NTgxOnN0YXRpYyBpbnQgcnR3X3VzYl90eF93cml0ZShzdHJ1Y3QgcnR3X2RldiAqcnR3ZGV2LFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC91c2IuYy01ODItXHRcdFx0ICAgIHN0cnVjdCBydHdfdHhfcGt0X2luZm8gKnBrdF9pbmZvLFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdXNiLmM9OTUzPXN0YXRpYyBjb25zdCBzdHJ1Y3QgcnR3X2hjaV9vcHMgcnR3X3VzYl9vcHMgPSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3VzYi5jOjk1NDpcdC50eF93cml0ZSA9IHJ0d191c2JfdHhfd3JpdGUsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3VzYi5jLTk1NS1cdC50eF9raWNrX29mZiA9IHJ0d191c2JfdHhfa2lja19vZmYsXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MzEvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzE0IDA2OjQyPC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDQwNDA4CgkJCQkJCQlvdXRwdXQ6IDQzCgkJCQkJCQl0aG91Z2h0czogNDUyCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKkZ1enppbmcgRm9jdXM6IFJlZmluZW1lbnQgYW5kIFByaW9yaXRpemF0aW9uKioKCk9rYXksIHNvIEkmIzM5O20gdHJ5aW5nIHRvIGZpZ3VyZSBvdXQgdGhlIGJlc3QgZnVuY3Rpb25zIHRvIHRhcmdldCBmb3IgZnV6emluZywgc3BlY2lmaWNhbGx5IGluIHRoaXMgVVNCIFRYIHBhdGguIExldCYjMzk7cyBzZWUuLi4gSW5pdGlhbGx5LCBJIHdhcyBsb29raW5nIGF0IGBydHdfdXNiX3R4X3dyaXRlYCwgYW5kIHllcywgSSByZW1lbWJlciBpdCYjMzk7cyBzdGF0aWMuIENvdWxkIEkgdXNlIGBydHdfdHhgPyBZZXAsIGl0JiMzOTtzIG5vbi1zdGF0aWMsIHdoaWNoIGlzIGdvb2QuIFRoZW4gSSBsb29rZWQgYXQgYHJ0d191c2JfcHJvYmVgLCBidXQgdGhhdCYjMzk7cyBhIHByb2JlIGZ1bmN0aW9uIOKAkyBkZWZpbml0ZWx5IG5vdCBpbiB0aGUgY3JpdGljYWwgcGF0aCBJJiMzOTttIGludGVyZXN0ZWQgaW4gZnV6emluZy4KCk5vdywgdGhlIHByb21wdCBpcyB0ZWxsaW5nIG1lIHRvIGF2b2lkIGdlbmVyaWMgaG90LXBhdGggZnVuY3Rpb25zIHRvIGtlZXAgdGhlIHRlc3RzIGZyb20gc2tld2luZy4gU28sIGBydHdfdHhgLCBpcyBpdCBob3QtcGF0aD8gQWJzb2x1dGVseS4gSXQmIzM5O3MgY2FsbGVkIGZvciBldmVyeSBzaW5nbGUgcGFja2V0IHRyYW5zbWl0dGVkLiBJZiBJIGZvbGxvdyB0aGUgcHJvbXB0IGFuZCBkb24mIzM5O3QgbGlzdCBgcnR3X3R4YCwgd2hhdCBhcmUgbXkgb3RoZXIgb3B0aW9ucz8gSSBjb25zaWRlcmVkIGBydHdfdXNiX3R4X3dyaXRlYCBidXQsIGV2ZW4gdGhvdWdoIGl0JiMzOTtzIHN0YXRpYywgaXQgaXMgdGhhdCAqc3BlY2lmaWMqIGNhbGxiYWNrLCBzbyBtYXliZSBpdCYjMzk7cyB0aGUgcmlnaHQgY2hvaWNlIGFmdGVyIGFsbC4KClRoZSBwcm9tcHQsIGhvd2V2ZXIsIHJlYWxseSBlbXBoYXNpemVzIGF2b2lkaW5nIHRoZSBob3QtcGF0aC4gSWYgYHJ0d190eGAgaXMgaG90LXBhdGgsIGl0IHNvdW5kcyBsaWtlICpub25lKiBvZiB0aGVtIGFyZSBncmVhdC4gQnV0LCB0aGlzIGNoYW5nZSBpcyBhbGwgYWJvdXQgdGhlIFRYIHF1ZXVlIHNlbGVjdGlvbi4gTWF5YmUgSSBzaG91bGQgaG9sZCBvZmYsIGFuZCBwZXJoYXBzIGxpc3QgYHJ0d191c2JfdHhfd3JpdGVgIGFsb25lPwoKSSBuZWVkIHRvIHJlLWV2YWx1YXRlIHdoYXQmIzM5O3MgcmVhbGx5IGltcG9ydGFudC4gSXQgc2VlbXMgbXkgZm9jdXMgaXMgb24gdGhhdCBgcnR3X3VzYl90eF93cml0ZWAgZnVuY3Rpb24sIGV2ZW4gaWYgaXQgaXMgYSBob3QgcGF0aC4KCk5vdywgYSBxdWljayBjb25maWcgY2hlY2suIGBNQUM4MDIxMWAsIGBSVFc4OGAsIGBSVFc4OF84ODIyQlVgLi4uIEFoYSEgYFJUVzg4Xzg4MjJCVWAgc2VsZWN0cyBgUlRXODhfVVNCYC4gR29vZC4gTGV0JiMzOTtzIG1ha2Ugc3VyZSB0aGVyZSBhcmVuJiMzOTt0IGFueSBvdGhlciBVU0IgZHJpdmVycyB0byBiZSBtaW5kZnVsIG9mLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjMyLzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8xNCAwNjo0MjwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtzZWxlY3QgUlRXODhfVVNCJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZz04Mj1jb25maWcgUlRXODhfODgyMkJVXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnLTg1LVx0c2VsZWN0IFJUVzg4X0NPUkVcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZzo4NjpcdHNlbGVjdCBSVFc4OF9VU0JcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZy04Ny1cdHNlbGVjdCBSVFc4OF84ODIyQlxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZz0xMTU9Y29uZmlnIFJUVzg4Xzg4MjJDVVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZy0xMTgtXHRzZWxlY3QgUlRXODhfQ09SRVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnOjExOTpcdHNlbGVjdCBSVFc4OF9VU0JcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZy0xMjAtXHRzZWxlY3QgUlRXODhfODgyMkNcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWc9MTYyPWNvbmZpZyBSVFc4OF84NzIzRFVcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWctMTY1LVx0c2VsZWN0IFJUVzg4X0NPUkVcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZzoxNjY6XHRzZWxlY3QgUlRXODhfVVNCXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWctMTY3LVx0c2VsZWN0IFJUVzg4Xzg3MjNEXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnPTE5NT1jb25maWcgUlRXODhfODgyMUNVXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnLTE5OC1cdHNlbGVjdCBSVFc4OF9DT1JFXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWc6MTk5Olx0c2VsZWN0IFJUVzg4X1VTQlxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnLTIwMC1cdHNlbGVjdCBSVFc4OF84ODIxQ1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZz0yMDY9Y29uZmlnIFJUVzg4Xzg4MjFBVVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZy0yMDktXHRzZWxlY3QgUlRXODhfQ09SRVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnOjIxMDpcdHNlbGVjdCBSVFc4OF9VU0JcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZy0yMTEtXHRzZWxlY3QgUlRXODhfODgyMUFcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWc9MjE3PWNvbmZpZyBSVFc4OF84ODEyQVVcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWctMjIwLVx0c2VsZWN0IFJUVzg4X0NPUkVcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZzoyMjE6XHRzZWxlY3QgUlRXODhfVVNCXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWctMjIyLVx0c2VsZWN0IFJUVzg4Xzg4MTJBXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnPTIzOT1jb25maWcgUlRXODhfODgxNEFVXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnLTI0Mi1cdHNlbGVjdCBSVFc4OF9DT1JFXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWc6MjQzOlx0c2VsZWN0IFJUVzg4X1VTQlxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnLTI0NC1cdHNlbGVjdCBSVFc4OF84ODE0QVxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjMzLzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8xNCAwNjo0MjwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA0MjI1MwoJCQkJCQkJb3V0cHV0OiA0MwoJCQkJCQkJdGhvdWdodHM6IDEzNAoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipNeSBDdXJyZW50IFJlYXNvbmluZyBvbiBEcml2ZXIgQ29uZmlndXJhdGlvbioqCgpPa2F5LCBzbyBJJiMzOTttIGxvb2tpbmcgYXQgdGhlc2UgZHJpdmVyIG9wdGlvbnMsIGFuZCBpbml0aWFsbHksIEkgd2FzIHRoaW5raW5nIHdlIG5lZWRlZCB0byBsaXN0IGJvdGggYFJUVzg4Xzg4MjJCVWAgYW5kIGBSVFc4OF9VU0JgLiBCdXQgaG9sZCBvbi4uLiBhZnRlciBhIHF1aWNrIGNoZWNrLCBgUlRXODhfVVNCYCBpcyBhIHRyaXN0YXRlLCBzbyB0aGF0IHNpbXBsaWZpZXMgdGhpbmdzLiBJbiBmYWN0LCBsaXN0aW5nIGJvdGggaXMgYSBsaXR0bGUgcmVkdW5kYW50LiBXZSYjMzk7bGwgc3RpY2sgdG8gbGlzdGluZyBgUlRXODhfVVNCYCBhbmQgYFJUVzg4Xzg4MjJCVWAuCgpCdXQsIHdhaXQgYSBzZWNvbmQsIGxldCBtZSB0aGluayB0aGlzIHRocm91Z2ggY29tcGxldGVseS4gTG9va2luZyBhdCB0aGUgZGVwZW5kZW5jaWVzIGFnYWluLCBhbmQgeWVzLCBgUlRXODhfVVNCYCBpcyAqc2VsZWN0ZWQgYnkqIGBSVFc4OF84ODIyQlVgLiBTbywgaWYgd2UgZW5hYmxlIGBSVFc4OF84ODIyQlVgLCBgUlRXODhfVVNCYCB3aWxsIGNvbWUgYWxvbmcgZm9yIHRoZSByaWRlLCBhbmQgd2Ugb25seSBuZWVkIHRvIGVuYWJsZSBgUlRXODhfODgyMkJVYC4gU28sIGVuYWJsaW5nIGBSVFc4OF84ODIyQlVgIGlzIHN1ZmZpY2llbnQgdG8gZW5hYmxlIGJvdGguCgpUaGVyZWZvcmUsIGxldCYjMzk7cyBub3cgY29uZmlybSB0aGF0IGBSVFc4OF9VU0JgIGlzICpub3QqIGludGVuZGVkIHRvIGJlIGVuYWJsZWQgaW5kZXBlbmRlbnRseS4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4zNC8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMTQgMDY6NDI8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7Y29uZmlnIFJUVzg4X1VTQiYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWc9MjA9Y29uZmlnIFJUVzg4X1NESU9cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWctMjItXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWc6MjM6Y29uZmlnIFJUVzg4X1VTQlxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnLTI0LVx0dHJpc3RhdGVcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4zNS8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMTQgMDY6NDI8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogNDI4MTEKCQkJCQkJCW91dHB1dDogNDIKCQkJCQkJCXRob3VnaHRzOiA3MAoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipNeSBBcHByb2FjaCB0byBTZWxlY3RpbmcgVGhpcyBEZXZpY2UqKgoKT2theSwgc28gSSYjMzk7bSBsb29raW5nIGF0IHRoaXMgZGV2aWNlLCBhbmQgdGhlIGZpcnN0IHRoaW5nIEkgbm90aWNlIGlzIHRoYXQgaXQmIzM5O3MganVzdCAqdGhlcmUqLiBObyBzcGVjaWZpYyBwcm9tcHQgdG8gYWN0aXZhdGUgaXQuIFRoYXQgbWVhbnMgSSBuZWVkIHRvIHRyaWdnZXIgaXQgaW5kaXJlY3RseSwgcmlnaHQ/IEkgbmVlZCB0byBnZXQgb25lIG9mIHRoZSBkcml2ZXJzIHRoYXQgY2FuICpzZWxlY3QqIHRoaXMgdGhpbmcgdG8ga2ljayBpbi4gTGV0JiMzOTtzIHNlZS4uLiBsb29raW5nIGF0IHRoZSBvcHRpb25zLCBgUlRXODhfODgyMkJVYCBzZWVtcyBsaWtlIGEgbGlrZWx5IGNhbmRpZGF0ZS4gSXQgbG9va3MgbGlrZSBpdCBoYW5kbGVzIGRldmljZXMgbGlrZSB0aGlzIG9uZS4KCkJ1dCBob2xkIG9uLCBiZWZvcmUgSSBqdW1wIHRvIHRoZSBzcGVjaWZpYyBtb2RlbCBkcml2ZXIsIEkgbmVlZCB0byBtYWtlIHN1cmUgdGhlIGJhc2UgYFJUVzg4YCBkcml2ZXIgaXMgZW5hYmxlZCBmaXJzdC4gVGhhdCYjMzk7cyB0aGUgZm91bmRhdGlvbi4gU28sIGxldCBtZSBjaGVjayB0aGUgZGVwZW5kZW5jaWVzIGZvciBgUlRXODhgLiBJIG5lZWQgdG8gbWFrZSBzdXJlIHRoYXQmIzM5O3MgYWxsIHNxdWFyZWQgYXdheSBiZWZvcmUgSSBldmVuIGxvb2sgYXQgdGhlIGZpbmVyIGRldGFpbHMuIFdlIGRvbiYjMzk7dCB3YW50IHRvIGdldCBhaGVhZCBvZiBvdXJzZWx2ZXMuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MzYvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzE0IDA2OjQzPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O21lbnVjb25maWcgUlRXODgmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWcmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnLTEtIyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMC1vbmx5XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWc6MjptZW51Y29uZmlnIFJUVzg4XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWctMy1cdHRyaXN0YXRlIFwmIzM0O1JlYWx0ZWsgODAyLjExYWMgd2lyZWxlc3MgY2hpcHMgc3VwcG9ydFwmIzM0O1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjM3LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8xNCAwNjo0MzwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA0MzIyNwoJCQkJCQkJb3V0cHV0OiAzOAoJCQkJCQkJdGhvdWdodHM6IDIzCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5IZXJlJiMzOTtzIG15IGF0dGVtcHQgYXQgc3VtbWFyaXppbmcgdGhlIHRob3VnaHQgcHJvY2VzcyBpbiB0aGUgZmlyc3QgcGVyc29uLCBhc3N1bWluZyB0aGUgdXNlciBpcyBhbiBleHBlcnQ6CgoqKkRlcGVuZGVuY3kgQ2hlY2sqKgoKT2theSwgc28gSSYjMzk7bSBkZWFsaW5nIHdpdGggYFJUVzg4YCwgYW5kIHNvbWV0aGluZyYjMzk7cyBuYWdnaW5nIGF0IG1lLiBJdCBmZWVscyBsaWtlIGBSVFc4OGAgZGVwZW5kcyBvbiwgb3IgaW50ZXJmYWNlcyB3aXRoLCBgTUFDODAyMTFgLiBUaW1lIHRvIHZlcmlmeSB0aGF0IGFzc3VtcHRpb24uIEJlZm9yZSBJIGRpZyBkZWVwZXIsIEkgbmVlZCB0byBjb25maXJtIHdoZXRoZXIgb3Igbm90IGBSVFc4OGAgcmVsaWVzIG9uIHRoYXQgc3BlY2lmaWMgTUFDIGxheWVyIGltcGxlbWVudGF0aW9uLiBUaGlzIGlzIHRoZSBsb2dpY2FsIGZpcnN0IHN0ZXAgYmVmb3JlIHRyb3VibGVzaG9vdGluZyB3aGF0ZXZlciBpc3N1ZSBJIGhhdmUsIG9yIGV4cGxvcmluZyBob3cgdGhlc2UgdHdvIHJlbGF0ZSB0byBlYWNoIG90aGVyLiBCZXN0IHRvIGdldCB0aGUgYXJjaGl0ZWN0dXJlIHJpZ2h0IGZyb20gdGhlIHN0YXJ0LiBMZXQmIzM5O3Mgc2VlLi4uIEkmIzM5O2xsIHB1bGwgdXAgdGhlIGRvY3VtZW50YXRpb24vY29kZS93aGF0ZXZlciYjMzk7cyByZWxldmFudCBhbmQgY29uZmlybSB0aGF0IHJlbGF0aW9uc2hpcC4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4zOC8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMTQgMDY6NDM8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7ZGVwZW5kcyBvbiYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWc9Mj1tZW51Y29uZmlnIFJUVzg4XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWctMy1cdHRyaXN0YXRlIFwmIzM0O1JlYWx0ZWsgODAyLjExYWMgd2lyZWxlc3MgY2hpcHMgc3VwcG9ydFwmIzM0O1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnOjQ6XHRkZXBlbmRzIG9uIE1BQzgwMjExXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWctNS1cdGhlbHBcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWc9NjA9Y29uZmlnIFJUVzg4Xzg4MjJCRVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnLTYxLVx0dHJpc3RhdGUgXCYjMzQ7UmVhbHRlayA4ODIyQkUgUENJIHdpcmVsZXNzIG5ldHdvcmsgYWRhcHRlclwmIzM0O1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnOjYyOlx0ZGVwZW5kcyBvbiBQQ0lcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZy02My1cdHNlbGVjdCBSVFc4OF9DT1JFXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnPTcxPWNvbmZpZyBSVFc4OF84ODIyQlNcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZy03Mi1cdHRyaXN0YXRlIFwmIzM0O1JlYWx0ZWsgODgyMkJTIFNESU8gd2lyZWxlc3MgbmV0d29yayBhZGFwdGVyXCYjMzQ7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWc6NzM6XHRkZXBlbmRzIG9uIE1NQ1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnLTc0LVx0c2VsZWN0IFJUVzg4X0NPUkVcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWc9ODI9Y29uZmlnIFJUVzg4Xzg4MjJCVVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnLTgzLVx0dHJpc3RhdGUgXCYjMzQ7UmVhbHRlayA4ODIyQlUgVVNCIHdpcmVsZXNzIG5ldHdvcmsgYWRhcHRlclwmIzM0O1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnOjg0Olx0ZGVwZW5kcyBvbiBVU0JcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZy04NS1cdHNlbGVjdCBSVFc4OF9DT1JFXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnPTkzPWNvbmZpZyBSVFc4OF84ODIyQ0VcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZy05NC1cdHRyaXN0YXRlIFwmIzM0O1JlYWx0ZWsgODgyMkNFIFBDSSB3aXJlbGVzcyBuZXR3b3JrIGFkYXB0ZXJcJiMzNDtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZzo5NTpcdGRlcGVuZHMgb24gUENJXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWctOTYtXHRzZWxlY3QgUlRXODhfQ09SRVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZz0xMDQ9Y29uZmlnIFJUVzg4Xzg4MjJDU1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnLTEwNS1cdHRyaXN0YXRlIFwmIzM0O1JlYWx0ZWsgODgyMkNTIFNESU8gd2lyZWxlc3MgbmV0d29yayBhZGFwdGVyXCYjMzQ7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWc6MTA2Olx0ZGVwZW5kcyBvbiBNTUNcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZy0xMDctXHRzZWxlY3QgUlRXODhfQ09SRVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZz0xMTU9Y29uZmlnIFJUVzg4Xzg4MjJDVVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnLTExNi1cdHRyaXN0YXRlIFwmIzM0O1JlYWx0ZWsgODgyMkNVIFVTQiB3aXJlbGVzcyBuZXR3b3JrIGFkYXB0ZXJcJiMzNDtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZzoxMTc6XHRkZXBlbmRzIG9uIFVTQlxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnLTExOC1cdHNlbGVjdCBSVFc4OF9DT1JFXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnPTEyNj1jb25maWcgUlRXODhfODcyM0RFXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWctMTI3LVx0dHJpc3RhdGUgXCYjMzQ7UmVhbHRlayA4NzIzREUgUENJIHdpcmVsZXNzIG5ldHdvcmsgYWRhcHRlclwmIzM0O1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnOjEyODpcdGRlcGVuZHMgb24gUENJXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWctMTI5LVx0c2VsZWN0IFJUVzg4X0NPUkVcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWc9MTM3PWNvbmZpZyBSVFc4OF84NzIzRFNcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZy0xMzgtXHR0cmlzdGF0ZSBcJiMzNDtSZWFsdGVrIDg3MjNEUyBTRElPIHdpcmVsZXNzIG5ldHdvcmsgYWRhcHRlclwmIzM0O1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnOjEzOTpcdGRlcGVuZHMgb24gTU1DXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWctMTQwLVx0c2VsZWN0IFJUVzg4X0NPUkVcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWc9MTQ4PWNvbmZpZyBSVFc4OF84NzIzQ1NcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZy0xNDktXHR0cmlzdGF0ZSBcJiMzNDtSZWFsdGVrIDg3MjNDUyBTRElPIHdpcmVsZXNzIG5ldHdvcmsgYWRhcHRlclwmIzM0O1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnOjE1MDpcdGRlcGVuZHMgb24gTU1DXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWctMTUxLVx0c2VsZWN0IFJUVzg4X0NPUkVcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWc9MTYyPWNvbmZpZyBSVFc4OF84NzIzRFVcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZy0xNjMtXHR0cmlzdGF0ZSBcJiMzNDtSZWFsdGVrIDg3MjNEVSBVU0Igd2lyZWxlc3MgbmV0d29yayBhZGFwdGVyXCYjMzQ7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWc6MTY0Olx0ZGVwZW5kcyBvbiBVU0JcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZy0xNjUtXHRzZWxlY3QgUlRXODhfQ09SRVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZz0xNzM9Y29uZmlnIFJUVzg4Xzg4MjFDRVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnLTE3NC1cdHRyaXN0YXRlIFwmIzM0O1JlYWx0ZWsgODgyMUNFIFBDSSB3aXJlbGVzcyBuZXR3b3JrIGFkYXB0ZXJcJiMzNDtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZzoxNzU6XHRkZXBlbmRzIG9uIFBDSVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnLTE3Ni1cdHNlbGVjdCBSVFc4OF9DT1JFXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnPTE4ND1jb25maWcgUlRXODhfODgyMUNTXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWctMTg1LVx0dHJpc3RhdGUgXCYjMzQ7UmVhbHRlayA4ODIxQ1MgU0RJTyB3aXJlbGVzcyBuZXR3b3JrIGFkYXB0ZXJcJiMzNDtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZzoxODY6XHRkZXBlbmRzIG9uIE1NQ1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnLTE4Ny1cdHNlbGVjdCBSVFc4OF9DT1JFXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnPTE5NT1jb25maWcgUlRXODhfODgyMUNVXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWctMTk2LVx0dHJpc3RhdGUgXCYjMzQ7UmVhbHRlayA4ODIxQ1UgVVNCIHdpcmVsZXNzIG5ldHdvcmsgYWRhcHRlclwmIzM0O1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnOjE5NzpcdGRlcGVuZHMgb24gVVNCXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWctMTk4LVx0c2VsZWN0IFJUVzg4X0NPUkVcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWc9MjA2PWNvbmZpZyBSVFc4OF84ODIxQVVcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZy0yMDctXHR0cmlzdGF0ZSBcJiMzNDtSZWFsdGVrIDg4MjFBVS84ODExQVUgVVNCIHdpcmVsZXNzIG5ldHdvcmsgYWRhcHRlclwmIzM0O1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnOjIwODpcdGRlcGVuZHMgb24gVVNCXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWctMjA5LVx0c2VsZWN0IFJUVzg4X0NPUkVcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWc9MjE3PWNvbmZpZyBSVFc4OF84ODEyQVVcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZy0yMTgtXHR0cmlzdGF0ZSBcJiMzNDtSZWFsdGVrIDg4MTJBVSBVU0Igd2lyZWxlc3MgbmV0d29yayBhZGFwdGVyXCYjMzQ7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWc6MjE5Olx0ZGVwZW5kcyBvbiBVU0JcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZy0yMjAtXHRzZWxlY3QgUlRXODhfQ09SRVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZz0yMjg9Y29uZmlnIFJUVzg4Xzg4MTRBRVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnLTIyOS1cdHRyaXN0YXRlIFwmIzM0O1JlYWx0ZWsgODgxNEFFIFBDSSB3aXJlbGVzcyBuZXR3b3JrIGFkYXB0ZXJcJiMzNDtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZzoyMzA6XHRkZXBlbmRzIG9uIFBDSVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnLTIzMS1cdHNlbGVjdCBSVFc4OF9DT1JFXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnPTIzOT1jb25maWcgUlRXODhfODgxNEFVXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWctMjQwLVx0dHJpc3RhdGUgXCYjMzQ7UmVhbHRlayA4ODE0QVUgVVNCIHdpcmVsZXNzIG5ldHdvcmsgYWRhcHRlclwmIzM0O1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnOjI0MTpcdGRlcGVuZHMgb24gVVNCXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWctMjQyLVx0c2VsZWN0IFJUVzg4X0NPUkVcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWc9MjUwPWNvbmZpZyBSVFc4OF9ERUJVR1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnLTI1MS1cdGJvb2wgXCYjMzQ7UmVhbHRlayBydHc4OCBkZWJ1ZyBzdXBwb3J0XCYjMzQ7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWc6MjUyOlx0ZGVwZW5kcyBvbiBSVFc4OF9DT1JFXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWctMjUzLVx0aGVscFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZz0yNTg9Y29uZmlnIFJUVzg4X0RFQlVHRlNcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZy0yNTktXHRib29sIFwmIzM0O1JlYWx0ZWsgcnR3ODggZGVidWdmcyBzdXBwb3J0XCYjMzQ7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWc6MjYwOlx0ZGVwZW5kcyBvbiBSVFc4OF9DT1JFXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWctMjYxLVx0aGVscFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZz0yNjY9Y29uZmlnIFJUVzg4X0xFRFNcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZy0yNjctXHRib29sXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWc6MjY4Olx0ZGVwZW5kcyBvbiBMRURTX0NMQVNTPXkgfHwgTEVEU19DTEFTUz1NQUM4MDIxMVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnLTI2OS1cdGRlZmF1bHQgeVxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjM5LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8xNCAwNjo0MzwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA0NjE2NwoJCQkJCQkJb3V0cHV0OiAxMTkKCQkJCQkJCXRob3VnaHRzOiA4NDcKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqTXkgQW5hbHlzaXMgb2YgdGhlIFJlYWx0ZWsgcnR3ODggVVNCIERyaXZlciBmb3IgRnV6emluZyoqCgpPa2F5LCBsZXQmIzM5O3MgYnJlYWsgdGhpcyBkb3duLiBGaXJzdCwgSSBuZWVkIHRvIGlkZW50aWZ5IHRoZSByZWxldmFudCBjb25maWd1cmF0aW9ucyBhbmQgZW50cnkgcG9pbnRzIGZvciBmdXp6aW5nIHRoaXMgUmVhbHRlayBkcml2ZXIuIEkgc2VlIHRoYXQgYFJUVzg4YCBkZXBlbmRzIG9uIGBNQUM4MDIxMWAsIGFuZCBgUlRXODhfODgyMkJVYCBzcGVjaWZpY2FsbHkgZGVwZW5kcyBvbiBgVVNCYC4gU2luY2UgYE1BQzgwMjExYCBhbmQgYFVTQmAgYXJlIHR5cGljYWxseSBlbmFibGVkIGJ5IGRlZmF1bHQsIEkmIzM5O2xsIGZvY3VzIG15IGNvbmZpZ3VyYXRpb24gZWZmb3J0cyBvbiBlbmFibGluZyBgUlRXODhgIGFuZCBgUlRXODhfODgyMkJVYC4KCk5vdyBmb3IgdGhlIGNyaXRpY2FsIHBhcnQ6IHRoZSBmb2N1cyBzeW1ib2xzLiBUaGUgcHJvbXB0IGlzIHN0ZWVyaW5nIG1lIHRvd2FyZHMgbm9uLXN0YXRpYywgbm9uLWlubGluZWQgQVBJIGVudHJ5IHBvaW50cy4gSSBpbml0aWFsbHkgY29uc2lkZXJlZCBgcnR3X3R4YCBhbmQgYHJ0d191c2JfdHhfd3JpdGVgLCBidXQgdGhlbiBJIHJlYWxpemVkIGBydHdfdXNiX3R4X3dyaXRlYCBpcyBzdGF0aWMuIERpZ2dpbmcgZGVlcGVyLCBJIHRyYWNlZCB0aGUgY2FsbCBjaGFpbi4gYHJ0d191c2JfdHhfd3JpdGVgIGlzIGNhbGxlZCB0aHJvdWdoIGEgZnVuY3Rpb24gcG9pbnRlciAoYHJ0d2Rldi0mZ3Q7aGNpLm9wcy0mZ3Q7dHhfd3JpdGVgKSwgYW5kIEkgZm91bmQgYHJ0d19oY2lfdHhfd3JpdGVgIHdoaWNoLCB3aGlsZSBpbmxpbmUsIGlzIGNhbGxlZCBieSBgcnR3X3R4YCBhbmQgYHJ0d190eHFfcHVzaF9za2JgLiBTbywgSSYjMzk7bGwgbGlzdCBgcnR3X3R4YCBhcyB0aGUgbm9uLXN0YXRpYyBBUEkgZW50cnkgcG9pbnQuCgpJIGRvdWJsZS1jaGVja2VkIGB0eC5jYCBhbmQgY29uZmlybWVkIHRoYXQgYHJ0d190eGAgaXMgaW5kZWVkIG5vbi1zdGF0aWMuIFRoZW4sIEkgbG9va2VkIGZvciBvdGhlciBwb3RlbnRpYWwgZW50cnkgcG9pbnRzLiBgcnR3X3R4cV9wdXNoX3NrYmAgaXMgc3RhdGljLCBhcyBpcyBgcnR3X3R4cV9wdXNoYC4gSG93ZXZlciwgYF9fcnR3X3R4X3dvcmtgIGFuZCBgcnR3X3R4X3dvcmtgIGFyZSBub24tc3RhdGljLiBJIGNvbmZpcm1lZCB0aGF0IGBydHdfdHhfd29ya2AgaXMgbm9uLXN0YXRpYyBhcyB3ZWxsLgoKVGhlcmVmb3JlLCBhZnRlciBhIHRob3JvdWdoIHJldmlldywgSSYjMzk7bSBjb25maWRlbnQgaW4gbXkgYW5hbHlzaXMuCgpIZXJlJiMzOTtzIG15IHN1bW1hcnk6CgoqICAgKipXb3J0aEZ1enppbmc6KiogVHJ1ZSAoYmVjYXVzZSB0aGlzIFRYIHF1ZXVlIGxvZ2ljIGlzIGZ1bmN0aW9uYWxseSBzaWduaWZpY2FudCkKKiAgICoqRm9jdXNTeW1ib2xzOioqIGBydHdfdHhgLCBgcnR3X3R4X3dvcmtgCiogICAqKkVuYWJsZUNvbmZpZ3M6KiogYFJUVzg4YCwgYFJUVzg4Xzg4MjJCVWAKKiAgICoqUmVhc29uaW5nOioqIFRoZSBwYXRjaCB0b3VjaGVzIFRYIHF1ZXVlIHNlbGVjdGlvbiBsb2dpYyBmb3IgYnJvYWRjYXN0L211bHRpY2FzdCBwYWNrZXRzIHdpdGhpbiB0aGUgUmVhbHRlayBydHc4OCBVU0IgZHJpdmVyLiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBhcmVhIHJlYWNoYWJsZSB2aWEgbWFjODAyMTEgd2hlbiBzZW5kaW5nIHBhY2tldHMgb3ZlciBhIFVTQiBpbnRlcmZhY2UuCgpGaW5hbGx5LCB3aGlsZSBteSBpbml0aWFsIGFuYWx5c2lzIHN1Z2dlc3RlZCBgUlRXODhfODgyMkJVYCBhcyB0aGUgb25seSBVU0IgZHJpdmVyLCBhIHF1aWNrIGNoZWNrIG9mIG90aGVyIGF2YWlsYWJsZSBSVFc4OCBkcml2ZXJzIGluZGljYXRlcyB0aGF0IHNlbGVjdGluZyB0aGlzIGlzIGVub3VnaCB0byBlbmFibGUgVVNCIGNvbXBpbGF0aW9uLgoKTGV0JiMzOTtzIGNhbGwgc2V0LXJlc3VsdHMuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+NDAvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzE0IDA2OjQzPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+c2V0LXJlc3VsdHM8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogWwogICAgJiMzNDtSVFc4OCYjMzQ7LAogICAgJiMzNDtSVFc4OF84ODIyQlUmIzM0OwogIF0sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogWwogICAgJiMzNDtydHdfdHgmIzM0OywKICAgICYjMzQ7cnR3X3R4X3dvcmsmIzM0OwogIF0sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIFRYIHF1ZXVlIHNlbGVjdGlvbiBsb2dpYyBmb3IgYnJvYWRjYXN0L211bHRpY2FzdCBwYWNrZXRzIGluIHRoZSBSZWFsdGVrIHJ0dzg4IFVTQiBkcml2ZXIuIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSBpbiB0aGUgZHJpdmVyJiMzOTtzIFRYIHBhdGgsIHJlYWNoYWJsZSB2aWEgbWFjODAyMTEgd2hlbiBzZW5kaW5nIHBhY2tldHMgb3ZlciBhIFVTQiBpbnRlcmZhY2UuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogdHJ1ZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O1JUVzg4JiMzNDssCiAgICAmIzM0O1JUVzg4Xzg4MjJCVSYjMzQ7CiAgXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbCiAgICAmIzM0O3J0d190eCYjMzQ7LAogICAgJiMzNDtydHdfdHhfd29yayYjMzQ7CiAgXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBtb2RpZmllcyB0aGUgVFggcXVldWUgc2VsZWN0aW9uIGxvZ2ljIGZvciBicm9hZGNhc3QvbXVsdGljYXN0IHBhY2tldHMgaW4gdGhlIFJlYWx0ZWsgcnR3ODggVVNCIGRyaXZlci4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIGluIHRoZSBkcml2ZXImIzM5O3MgVFggcGF0aCwgcmVhY2hhYmxlIHZpYSBtYWM4MDIxMSB3aGVuIHNlbmRpbmcgcGFja2V0cyBvdmVyIGEgVVNCIGludGVyZmFjZS4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiB0cnVlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD40MS8xPC90ZD4KCQkJPHRkPjIwMjYvMDgvMTQgMDY6NDM8L3RkPgoJCQk8dGQ+YWN0aW9uPC90ZD4KCQkJPHRkPklmPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogdHJ1ZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjQyLzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8xNCAwNjo0MzwvdGQ+CgkJCTx0ZD5hZ2VudDwvdGQ+CgkJCTx0ZD5rbXNhbi1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5iZXN0LWV4cGVuc2l2ZTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtLTVNBTlJlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBtb2RpZmllcyB0aGUgcXVldWUgc2VsZWN0aW9uIGxvZ2ljIGZvciB0cmFuc21pdHRlZCBwYWNrZXRzIGluIHRoZSBSZWFsdGVrIHJ0dzg4IFVTQiBkcml2ZXIuIEl0IGNoZWNrcyBhIGZsYWcgaW4gdGhlIGBpZWVlODAyMTFfdHhfaW5mb2Agc3RydWN0IChzdG9yZWQgaW4gYHNrYi1cdTAwM2VjYmApIHRvIGRldGVybWluZSB0aGUgYXBwcm9wcmlhdGUgcXVldWUgZm9yIGJyb2FkY2FzdC9tdWx0aWNhc3QgcGFja2V0cy4gVGhlIGBza2ItXHUwMDNlY2JgIGZpZWxkIGlzIGZ1bGx5IGluaXRpYWxpemVkIGJ5IHRoZSBtYWM4MDIxMSBzdWJzeXN0ZW0gYmVmb3JlIHRoZSBwYWNrZXQgaXMgcGFzc2VkIHRvIHRoZSBkcml2ZXIgZm9yIHRyYW5zbWlzc2lvbi4gVGhlcmUgaXMgbm8gcmlzayBvZiByZWFkaW5nIHVuaW5pdGlhbGl6ZWQgbWVtb3J5LCBub3IgZG9lcyB0aGlzIHBhdGNoIGludHJvZHVjZSBhbnkgbmV3IGFsbG9jYXRpb25zIG9yIHN0cnVjdHVyZXMgdGhhdCBjb3VsZCBsZWFrIHVuaW5pdGlhbGl6ZWQgZGF0YSB0byB1c2VyIHNwYWNlIG9yIGhhcmR3YXJlLiBUaGUgaXNzdWUgaXMgYSBwdXJlbHkgbG9naWNhbCBidWcgaW4gcXVldWUgYXNzaWdubWVudCwgd2hpY2ggZG9lcyBub3QgcmVxdWlyZSBLTVNBTiB0byBkZXRlY3QuIFN0YW5kYXJkIHRlc3Rpbmcgb3IgS0FTQU4gaXMgc3VmZmljaWVudCBmb3IgZ2VuZXJhbCBtZW1vcnkgc2FmZXR5LCBhbmQgS01TQU4gaXMgbm90IGFwcGxpY2FibGUgaGVyZS4mIzM0OywKICAmIzM0O05lZWRzS01TQU4mIzM0OzogZmFsc2UKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+SW5zdHJ1Y3Rpb246PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Zb3UgYXJlIGFuIGV4cGVydCBMaW51eCBrZXJuZWwgc2VjdXJpdHkgZW5naW5lZXIgc3BlY2lhbGl6aW5nIGluIGtlcm5lbCBtZW1vcnkKZXJyb3IgZGV0ZWN0b3JzIChLQVNBTiBhbmQgS01TQU4pLiBZb3VyIGpvYiBpcyB0byByZXZpZXcgdGhlIHByb3ZpZGVkIHBhdGNoIHNlcmllcyBhbmQKZGV0ZXJtaW5lIGlmIHRoZSBjb2RlIGNoYW5nZXMganVzdGlmeSBzcGF3bmluZyBhIGRlZGljYXRlZCBLTVNBTiAoS2VybmVsTWVtb3J5U2FuaXRpemVyKQpmdXp6aW5nIHNlc3Npb24gaW4gYWRkaXRpb24gdG8gc3RhbmRhcmQgS0FTQU4gZnV6emluZy4KCkNSSVRJQ0FMIERJU1RJTkNUSU9OIEJFVFdFRU4gS0FTQU4gQU5EIEtNU0FOOgotIFN0YW5kYXJkIEtBU0FOIGtlcm5lbCBidWlsZHMgKHVwc3RyZWFtLWFwcGFybW9yLWthc2FuLmNvbmZpZykgYWxyZWFkeSBlbmFibGUKICBhIGNvbXByZWhlbnNpdmUgc3VpdGUgb2YgZGVidWdnaW5nIHRvb2xzIGFuZCBzYW5pdGl6ZXJzLCBpbmNsdWRpbmcgS0FTQU4KICAob3V0LW9mLWJvdW5kcyBhY2Nlc3NlcywgdXNlLWFmdGVyLWZyZWUsIGRvdWJsZSBmcmVlLCBpbnZhbGlkIGZyZWUpLCBMT0NLREVQCiAgKGxvY2tpbmcgYnVncyBhbmQgZGVhZGxvY2tzKSwgVUItc2FuaXRpemVycywgYW5kIG1lbW9yeSBjb3JydXB0aW9uIGNoZWNrcy4KLSBLTVNBTiAoS2VybmVsTWVtb3J5U2FuaXRpemVyKSBkZXRlY3RzIHJlYWRzIG9mIFVOSU5JVElBTElaRUQgbWVtb3J5IChzdGFjaywgaGVhcCwKICBvciBwYWdlIGFsbG9jYXRpb25zKSBhbmQga2VybmVsLXRvLXVzZXIgbWVtb3J5IGluZm8tbGVha3MuCgpSdWxlOiBUSEVSRSBJUyBOTyBTRU5TRSBJTiBSVU5OSU5HIEEgS01TQU4gU0VTU0lPTiBJRiBBIEJVRyBDQU4gQkUgQ0FVR0hUIEJZIEtBU0FOLApMT0NLREVQLCBPUiBPVEhFUiBTVEFOREFSRCBCVUcgREVURUNUT1JTLgpBIGRlZGljYXRlZCBLTVNBTiBmdXp6aW5nIHNlc3Npb24gaW5jdXJzIHNpZ25pZmljYW50IHJlc291cmNlIGNvc3RzLiBZb3UgbXVzdCBPTkxZCnNldCBOZWVkc0tNU0FOPXRydWUgaWYgdGhlIGNvZGUgY2hhbmdlcyBpbnRyb2R1Y2Ugb3IgZXhwb3NlIFVOSU5JVElBTElaRUQgTUVNT1JZIHJpc2tzCnRoYXQgYXJlIGRldGVjdGVkIE9OTFkgYnkgS01TQU4uCgpMb29rIGhvbGlzdGljYWxseSBhdCB0aGUgcGF0Y2ggc2VyaWVzIGFuZCBzdXJyb3VuZGluZyBjb2RlLiBFdmVuIGlmIG5vIGRpcmVjdAp1bmluaXRpYWxpemVkIGZpZWxkIGFjY2Vzc2VzIG9yIG5ldyBidWZmZXIgYWxsb2NhdGlvbnMgYXJlIGFkZGVkIGluIHRoZSBkaWZmIGl0c2VsZiwKYSBwYXRjaCBtYXkgYWx0ZXIgY29udHJvbCBmbG93LCBib3VuZHMgY2hlY2tpbmcsIG9yIGRhdGEgbGVuZ3RoIGNhbGN1bGF0aW9ucyBpbiB3YXlzCnRoYXQgY2hhbmdlIGhvdyB0aGUgcmVzdCBvZiB0aGUgY29kZSBvcGVyYXRlcyBvbiBleGlzdGluZyBidWZmZXJzIChlLmcuIGFsbG93aW5nCnVuaW5pdGlhbGl6ZWQgc3RhY2svaGVhcCBtZW1vcnkgdG8gYmUgcmVhZCwgY29waWVkIHRvIHVzZXIgc3BhY2UsIG9yIHVzZWQgaW4gY29udHJvbApmbG93KS4gRG8gbm90IGhlc2l0YXRlIHRvIHVzZSB5b3VyIGNvZGUgYWNjZXNzIHRvb2xzIHRvIGluc3BlY3QgdGhlIHN1cnJvdW5kaW5nIGNvZGUsCmNhbGxlZCBmdW5jdGlvbnMsIGFuZCBjYWxsZXJzLgoKU2V0IE5lZWRzS01TQU49dHJ1ZSBPTkxZIElGIHRoZSBwYXRjaCBpbnRyb2R1Y2VzIG9yIG1vZGlmaWVzOgoxLiBLZXJuZWwgc3RydWN0dXJlcyBzZW50IHRvIHVzZXIgc3BhY2UgKHZpYSBjb3B5X3RvX3VzZXIsIHB1dF91c2VyLCBuZXRsaW5rIHNrYgogICBhdHRyaWJ1dGVzLCBpb2N0bCBvdXRwdXQgYXJndW1lbnRzLCBzb2NrZXQgb3B0aW9ucywgb3IgQlBGIGJ1ZmZlcnMpIHdoZXJlIGZpZWxkcwogICBvciBzdHJ1Y3R1cmUgcGFkZGluZyBtaWdodCBub3QgYmUgZnVsbHkgaW5pdGlhbGl6ZWQvemVyb2VkLgoyLiBDb25kaXRpb25hbCBsb2dpYyBvciBicmFuY2hpbmcgdGhhdCBkZXBlbmRzIG9uIHBvdGVudGlhbGx5IHVuaW5pdGlhbGl6ZWQgdmFyaWFibGVzCiAgIG9yIHN0cnVjdCBmaWVsZHMuCjMuIEFsbG9jYXRpb24gb3IgaW5pdGlhbGl6YXRpb24gb2YgY29tcGxleCBkYXRhIHN0cnVjdHVyZXMgd2hlcmUgdW5pbml0aWFsaXplZCBmaWVsZHMKICAgY291bGQgYmUgcmVhZCBsYXRlciBpbiByZWFjaGFibGUgY29kZSBwYXRocy4KNC4gQm91bmRzIGNoZWNrcywgbGVuZ3Rocywgb3IgbG9naWMgaW4gYSB3YXkgdGhhdCBhbGxvd3Mgc3Vycm91bmRpbmcgY29kZSB0byBhY2Nlc3MKICAgdW5pbml0aWFsaXplZCBieXRlcyBvZiBleGlzdGluZyBidWZmZXJzLgoKU2V0IE5lZWRzS01TQU49ZmFsc2UgSUY6Ci0gVGhlIGNvZGUgY2hhbmdlcyBwcmltYXJpbHkgcmlzayBvdXQtb2YtYm91bmRzIGFjY2VzcywgYXJyYXkgb3ZlcmZsb3dzLCBOVUxMIHBvaW50ZXIKICBkZXJlZmVyZW5jZXMsIGxvY2tpbmcgZGVhZGxvY2tzLCBvciB1c2UtYWZ0ZXItZnJlZSBidWdzICh0aGVzZSBhcmUgYWxyZWFkeSBjYXVnaHQKICBieSBLQVNBTiwgTE9DS0RFUCwgb3Igc3RhbmRhcmQgYnVnIGRldGVjdG9ycykuCi0gQWxsIHN0YWNrL2hlYXAgc3RydWN0dXJlcyB0b3VjaGVkIG9yIGludHJvZHVjZWQgYnkgdGhlIHBhdGNoIGFyZSBmdWxseSB6ZXJvZWQKICBvciBpbml0aWFsaXplZCAoZS5nLiB1c2luZyA9IHswfSwgbWVtc2V0LCBremFsbG9jKSBiZWZvcmUgYmVpbmcgcmVhZCBvciBjb3BpZWQuCi0gVGhlIHBhdGNoIGRvZXMgbm90IGludHJvZHVjZSBhbnkgcmlzayBvZiB1bmluaXRpYWxpemVkIG1lbW9yeSB1c2FnZSBvciBpbmZvLWxlYWtzLgoKVXNlIHlvdXIgY29kZSBhY2Nlc3MgdG9vbHMgdG8gaW5zcGVjdCB0aGUgc3Vycm91bmRpbmcgY29kZSBpZiBuZWNlc3NhcnksIHRoZW4gcHJvdmlkZQpkZXRhaWxlZCBLTVNBTlJlYXNvbmluZyBjb250cmFzdGluZyBLQVNBTiB2cyBLTVNBTiBhcHBsaWNhYmlsaXR5IGZvciB0aGlzIHBhdGNoLgpQcmVmZXIgY2FsbGluZyBzZXZlcmFsIHRvb2xzIGF0IHRoZSBzYW1lIHRpbWUgdG8gc2F2ZSByb3VuZC10cmlwcy4KCgpVc2Ugc2V0LXJlc3VsdHMgdG9vbCB0byBwcm92aWRlIHJlc3VsdHMgb2YgdGhlIGFuYWx5c2lzLgpJdCBtdXN0IGJlIGNhbGxlZCBleGFjdGx5IG9uY2UgYmVmb3JlIHRoZSBmaW5hbCByZXBseS4KSWdub3JlIHJlc3VsdHMgb2YgdGhpcyB0b29sLgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlByb21wdDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPkZvciB5b3VyIGNvbnZlbmllbmNlLCBoZXJlIGlzIHRoZSBkaWZmIG9mIHRoZSBjaGFuZ2VzOgpjb21taXQgNWZiMmY2ZTYxYjI1NjhkYzJjM2QwOTc4MjNmZjI4ODZhOTVhOTc3OQpBdXRob3I6IHN5ei1jbHVzdGVyICZsdDt0cmlhZ2VAc3l6a2FsbGVyLmNvbSZndDsKRGF0ZTogICBGcmkgQXVnIDE0IDA2OjQxOjQxIDIwMjYgJiM0MzswMDAwCgogICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3CgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC91c2IuYyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdXNiLmMKaW5kZXggNjRlMWMzNDIwZTBhOC4uNDNiOWNkYjRhNzliMCAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC91c2IuYwomIzQzOyYjNDM7JiM0MzsgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3VzYi5jCkBAIC01NjAsNiAmIzQzOzU2MCw3IEBAIHN0YXRpYyBpbnQgcnR3X3VzYl93cml0ZV9kYXRhX2gyYyhzdHJ1Y3QgcnR3X2RldiAqcnR3ZGV2LCB1OCAqYnVmLCB1MzIgc2l6ZSkKIHN0YXRpYyB1OCBydHdfdXNiX3R4X3F1ZXVlX21hcHBpbmdfdG9fcXNlbChzdHJ1Y3Qgc2tfYnVmZiAqc2tiKQogewogCXN0cnVjdCBpZWVlODAyMTFfaGRyICpoZHIgPSAoc3RydWN0IGllZWU4MDIxMV9oZHIgKilza2ItJmd0O2RhdGE7CiYjNDM7CXN0cnVjdCBpZWVlODAyMTFfdHhfaW5mbyAqaW5mbyA9IElFRUU4MDIxMV9TS0JfQ0Ioc2tiKTsKIAlfX2xlMTYgZmMgPSBoZHItJmd0O2ZyYW1lX2NvbnRyb2w7CiAJdTggcXNlbDsKIApAQCAtNTY3LDcgJiM0Mzs1NjgsOCBAQCBzdGF0aWMgdTggcnR3X3VzYl90eF9xdWV1ZV9tYXBwaW5nX3RvX3FzZWwoc3RydWN0IHNrX2J1ZmYgKnNrYikKIAkJcXNlbCA9IFRYX0RFU0NfUVNFTF9NR01UOwogCWVsc2UgaWYgKGlzX2Jyb2FkY2FzdF9ldGhlcl9hZGRyKGhkci0mZ3Q7YWRkcjEpIHx8CiAJCSBpc19tdWx0aWNhc3RfZXRoZXJfYWRkcihoZHItJmd0O2FkZHIxKSkKLQkJcXNlbCA9IFRYX0RFU0NfUVNFTF9ISUdIOwomIzQzOwkJcXNlbCA9IChpbmZvLSZndDtmbGFncyAmYW1wOyBJRUVFODAyMTFfVFhfQ1RMX1NFTkRfQUZURVJfRFRJTSkgPwomIzQzOwkJICAgICAgIFRYX0RFU0NfUVNFTF9ISUdIIDogc2tiLSZndDtwcmlvcml0eTsKIAllbHNlIGlmIChza2JfZ2V0X3F1ZXVlX21hcHBpbmcoc2tiKSAmbHQ7PSBJRUVFODAyMTFfQUNfQkspCiAJCXFzZWwgPSBza2ItJmd0O3ByaW9yaXR5OwogCWVsc2UKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+NDMvMzwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzE0IDA2OjQzPC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5rbXNhbi1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDIyNzEKCQkJCQkJCW91dHB1dDogNTIKCQkJCQkJCXRob3VnaHRzOiAzMjcKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqQW5hbHl6aW5nIGEgUG90ZW50aWFsIEtlcm5lbCBNZW1vcnkgU2FmZXR5IElzc3VlKioKCk9rYXksIHNvIEkmIzM5O20gbG9va2luZyBhdCB0aGlzIHBhdGNoIGluIGBkcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3VzYi5jYC4gSXQmIzM5O3MgYSBtb2RpZmljYXRpb24gdG8gdGhlIGBydHdfdXNiX3R4X3F1ZXVlX21hcHBpbmdfdG9fcXNlbGAgZnVuY3Rpb24sIGFuZCB0aGUgY2hhbmdlIGlzIGEgbGl0dGxlIGNvbmNlcm5pbmcuIFRoZXkmIzM5O3ZlIGludHJvZHVjZWQgYHN0cnVjdCBpZWVlODAyMTFfdHhfaW5mbyAqaW5mbyA9IElFRUU4MDIxMV9TS0JfQ0Ioc2tiKTtgIGFuZCB0aGVuIGFsdGVyZWQgdGhlIGxvZ2ljIHRvIHVzZSBgaW5mby0mZ3Q7ZmxhZ3NgLiBTcGVjaWZpY2FsbHksIGl0JiMzOTtzIG5vdyBjaGVja2luZyBgKGluZm8tJmd0O2ZsYWdzICZhbXA7IElFRUU4MDIxMV9UWF9DVExfU0VORF9BRlRFUl9EVElNKWAuCgpNeSBpbW1lZGlhdGUgdGhvdWdodCBpczogY291bGQgYGluZm8tJmd0O2ZsYWdzYCBiZSB1bmluaXRpYWxpemVkPyBBbnl0aW1lIEkgc2VlIGFuIGFjY2VzcyB0byBhIHN0cnVjdHVyZSBtZW1iZXIgdGhhdCYjMzk7cyBwb3RlbnRpYWxseSBkZXJpdmVkIGZyb20gYSBtYWNybywgbXkgYW50ZW5uYSBnb2VzIHVwLiBgSUVFRTgwMjExX1NLQl9DQihza2IpYCBpcyBqdXN0IGFjY2Vzc2luZyBgc2tiLSZndDtjYmAsIHdoaWNoIGlzIHRoZSBjb250cm9sIGJ1ZmZlci4gVGhlIGNyaXRpY2FsIHF1ZXN0aW9uIGhlcmUgaXMgd2hldGhlciBgc2tiLSZndDtjYmAgaXMgZ3VhcmFudGVlZCB0byBiZSBpbml0aWFsaXplZCBiZWZvcmUgYHJ0d191c2JfdHhfcXVldWVfbWFwcGluZ190b19xc2VsYCBpcyBjYWxsZWQuCgpGcm9tIG15IGV4cGVyaWVuY2UsIHRoZSBgbWFjODAyMTFgIGxheWVyIGlzIHVzdWFsbHkgcmVzcG9uc2libGUgZm9yIGluaXRpYWxpemluZyBgSUVFRTgwMjExX1NLQl9DQihza2IpYCDigJMgaXQmIzM5O3MgdHlwaWNhbGx5IHNldCB1cCBmb3Igb3V0Z29pbmcgcGFja2V0cy4gSWYgYGluZm8tJmd0O2ZsYWdzYCBoYXBwZW5zIHRvIGJlIHVuaW5pdGlhbGl6ZWQsIHRoZW4gd2UgY291bGQgYmUgZmFjaW5nIGEgS2VybmVsIE1lbW9yeSBTYW5pdGl6ZXIgKEtNU0FOKSBpc3N1ZSwgd2hpY2ggd291bGQgYmUgYmFkIG5ld3MgYmVhcnMuIEhvd2V2ZXIsIHRoZSBuZXR3b3JraW5nIHN0YWNrIGFuZC9vciBgbWFjODAyMTFgIGdlbmVyYWxseSBkbyBhIGdvb2Qgam9iIG9mIHplcm9pbmcgb3IgaW5pdGlhbGl6aW5nIGBza2ItJmd0O2NiYCBiZWZvcmUgaXQgaGl0cyB0aGUgZHJpdmVyLiBTdGlsbCwgSSYjMzk7bSBub3QgdGFraW5nIGFueXRoaW5nIGZvciBncmFudGVkLCBzbyBJJiMzOTttIGdvaW5nIHRvIHRyYWNrIGRvd24gZXZlcnkgY2FsbCB0byBgcnR3X3VzYl90eF9xdWV1ZV9tYXBwaW5nX3RvX3FzZWxgIGluIHRoZSBjb2RlLiBJIG5lZWQgdG8gdW5kZXJzdGFuZCB3aGVyZSB0aGlzIGZ1bmN0aW9uIGlzIGJlaW5nIHVzZWQgdG8gbWFrZSBhIGRldGVybWluYXRpb24gYWJvdXQgd2hldGhlciB0aGUgcGF0Y2ggaXMgdHJ1bHkgc2FmZS4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD40NC8zPC90ZD4KCQkJPHRkPjIwMjYvMDgvMTQgMDY6NDM8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7cnR3X3VzYl90eF9xdWV1ZV9tYXBwaW5nX3RvX3FzZWwmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3VzYi5jJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdXNiLmM9NTUwPXN0YXRpYyBpbnQgcnR3X3VzYl93cml0ZV9kYXRhX2gyYyhzdHJ1Y3QgcnR3X2RldiAqcnR3ZGV2LCB1OCAqYnVmLCB1MzIgc2l6ZSlcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3VzYi5jLTU1OS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdXNiLmM6NTYwOnN0YXRpYyB1OCBydHdfdXNiX3R4X3F1ZXVlX21hcHBpbmdfdG9fcXNlbChzdHJ1Y3Qgc2tfYnVmZiAqc2tiKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC91c2IuYy01NjEte1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdXNiLmM9NTgxPXN0YXRpYyBpbnQgcnR3X3VzYl90eF93cml0ZShzdHJ1Y3QgcnR3X2RldiAqcnR3ZGV2LFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdXNiLmMtNTkwLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC91c2IuYzo1OTE6XHRwa3RfaW5mby1cdTAwM2Vxc2VsID0gcnR3X3VzYl90eF9xdWV1ZV9tYXBwaW5nX3RvX3FzZWwoc2tiKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdXNiLmMtNTkyLVx0cGt0X2Rlc2MgPSBza2JfcHVzaChza2IsIGNoaXAtXHUwMDNldHhfcGt0X2Rlc2Nfc3opO1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjQ1LzM8L3RkPgoJCQk8dGQ+MjAyNi8wOC8xNCAwNjo0MzwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+a21zYW4tZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAzNDM0CgkJCQkJCQlvdXRwdXQ6IDQ1CgkJCQkJCQl0aG91Z2h0czogNDcKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPkhlcmUmIzM5O3MgbXkgdGFrZSBvbiB0aGUgdGhvdWdodCBwcm9jZXNzLCBhcyBpZiBpdCB3ZXJlIG15IG93bjoKCioqSW52ZXN0aWdhdGluZyB0aGUgVVNCIFRYIFdyaXRlIEZ1bmN0aW9uKioKCk9rYXksIEkmIzM5O20gdHJhY2luZyBkb3duIHRoaXMgYHJ0d191c2JfdHhfd3JpdGVgIGZ1bmN0aW9uLiBUaGUgY29kZSBzYXlzIGl0JiMzOTtzIGNhbGxpbmcgYHJ0d191c2JfdHhfcXVldWVfbWFwcGluZ190b19xc2VsYC4gTXkgaW1tZWRpYXRlIHRob3VnaHQgaXMsIEkgbmVlZCB0byB1bmRlcnN0YW5kIHRoZSBjYWxsIGdyYXBoIHRvIHRoaXMgZnVuY3Rpb24gdG8gZ2V0IHRoZSBjb21wbGV0ZSBwaWN0dXJlLiBXaGVyZSBlbHNlIGlzIHRoaXMgYHJ0d191c2JfdHhfd3JpdGVgIGZ1bmN0aW9uIGV2ZW4gKnVzZWQqPyBJJiMzOTttIGdvaW5nIHRvIGhhdmUgdG8gZmluZCB0aGUgY2FsbCBzaXRlcy4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD40Ni8zPC90ZD4KCQkJPHRkPjIwMjYvMDgvMTQgMDY6NDM8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7cnR3X3VzYl90eF93cml0ZSYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdXNiLmMmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC91c2IuYz01NjA9c3RhdGljIHU4IHJ0d191c2JfdHhfcXVldWVfbWFwcGluZ190b19xc2VsKHN0cnVjdCBza19idWZmICpza2IpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC91c2IuYy01ODAtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3VzYi5jOjU4MTpzdGF0aWMgaW50IHJ0d191c2JfdHhfd3JpdGUoc3RydWN0IHJ0d19kZXYgKnJ0d2RldixcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdXNiLmMtNTgyLVx0XHRcdCAgICBzdHJ1Y3QgcnR3X3R4X3BrdF9pbmZvICpwa3RfaW5mbyxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3VzYi5jPTk1Mz1zdGF0aWMgY29uc3Qgc3RydWN0IHJ0d19oY2lfb3BzIHJ0d191c2Jfb3BzID0ge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC91c2IuYzo5NTQ6XHQudHhfd3JpdGUgPSBydHdfdXNiX3R4X3dyaXRlLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC91c2IuYy05NTUtXHQudHhfa2lja19vZmYgPSBydHdfdXNiX3R4X2tpY2tfb2ZmLFxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjQ3LzM8L3RkPgoJCQk8dGQ+MjAyNi8wOC8xNCAwNjo0MzwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+a21zYW4tZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAzOTQ0CgkJCQkJCQlvdXRwdXQ6IDE5MgoJCQkJCQkJdGhvdWdodHM6IDQ3NAoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipNeSBBc3Nlc3NtZW50IG9mIHRoZSBSZWFsdGVrIHJ0dzg4IFVTQiBEcml2ZXIgUGF0Y2gqKgoKT2theSwgc28gdGhpcyBwYXRjaCBpcyB0b3VjaGluZyB0aGUgYHJ0d19oY2lfb3BzYCB3aXRoaW4gdGhlIFJlYWx0ZWsgcnR3ODggVVNCIGRyaXZlci4gSXQmIzM5O3MgcmVsYXRlZCB0byB0aGUgdHJhbnNtaXQgcGF0aCwgc3BlY2lmaWNhbGx5IGluIGB0eC5jYCBvciBhIHNpbWlsYXIgZmlsZSwgd2hlcmUgdGhlIGNvcmUgZHJpdmVyIGdldHMgaW52b2x2ZWQuIEkgc2VlIHRoYXQgYHNrYi0mZ3Q7Y2JgIGlzIGJlaW5nIHVzZWQgdG8gc3RvcmUgdGhlIGBpZWVlODAyMTFfdHhfaW5mb2Agc3RydWN0LCB3aGljaCBpcyBpbml0aWFsaXplZCBieSBtYWM4MDIxMS4gTXkgaW1tZWRpYXRlIGNvbmNlcm4gd2FzIHdoZXRoZXIgdGhpcyBwYXRjaCBpbnRyb2R1Y2VzIGFueSB1bmluaXRpYWxpemVkIG1lbW9yeSByZWFkcy4KCkxvb2tpbmcgYXQgdGhlIGxvZ2ljLCB0aGUgcGF0Y2ggY2hhbmdlcyBob3cgdGhlIGBxc2VsYCB2YXJpYWJsZSBpcyBhc3NpZ25lZC4gSXQgdXNlZCB0byBiZSBoYXJkY29kZWQgdG8gYFRYX0RFU0NfUVNFTF9ISUdIYCwgYnV0IG5vdyBpdCYjMzk7cyBjb25kaXRpb25hbGx5IHNldCBiYXNlZCBvbiBgaW5mby0mZ3Q7ZmxhZ3NgIGFuZCBgc2tiLSZndDtwcmlvcml0eWAuIFRoZSBrZXkgaGVyZSBpcyB0aGF0IGBza2ItJmd0O2NiYCwgYW5kIHRoZXJlZm9yZSBgaW5mb2AsIGlzICpmdWxseSBpbml0aWFsaXplZCogYnkgbWFjODAyMTEgKmJlZm9yZSogdGhlIGRyaXZlciBldmVuIHNlZXMgaXQuIFRoaXMgbWVhbnMgdGhlcmUmIzM5O3Mgbm8gcmlzayBvZiByZWFkaW5nIHVuaW5pdGlhbGl6ZWQgbWVtb3J5LCB3aGljaCBpcyB3aGF0IEkgd2FzIGluaXRpYWxseSBjb25jZXJuZWQgYWJvdXQuCgpFc3NlbnRpYWxseSwgdGhpcyBpcyBhIGxvZ2ljIGNoYW5nZSB0byBjb3JyZWN0bHkgYXNzaWduIGBxc2VsYC4gQmVmb3JlLCBtdWx0aWNhc3QvYnJvYWRjYXN0IGZyYW1lcyB3ZXJlIGFsd2F5cyBmb3JjZWQgdG8gYFRYX0RFU0NfUVNFTF9ISUdIYCwgd2hpY2ggaXMgaW5jb3JyZWN0LiBUaGUgcGF0Y2ggZml4ZXMgdGhpcyBieSB1c2luZyBgc2tiLSZndDtwcmlvcml0eWAgdW5sZXNzIHRoZSBgSUVFRTgwMjExX1RYX0NUTF9TRU5EX0FGVEVSX0RUSU1gIGZsYWcgaXMgc2V0LiBUaGUgcmVhbCBpc3N1ZSBpcyB0aGF0IHRoZSBxdWV1ZSBzZWxlY3Rpb24gd2FzIGxvZ2ljYWxseSBmbGF3ZWQuCgpUaGVyZWZvcmUsIGJlY2F1c2UgdGhpcyBpcyBwdXJlbHkgYSBsb2dpYyBidWcgaW4gcXVldWUgc2VsZWN0aW9uLCBhbmQgZG9lc24mIzM5O3QgaW50cm9kdWNlIGFueSBuZXcgYWxsb2NhdGlvbiBvciB1c2FnZSBvZiB1bmluaXRpYWxpemVkIG1lbW9yeSwgdGhlcmUmIzM5O3Mgbm8gbmVlZCBmb3IgS01TQU4gdG8gYmUgaW52b2x2ZWQuIFRoaXMgaXMgYSBjYXNlIHdoZXJlIHN0YW5kYXJkIHRlc3RpbmcgYW5kIEtBU0FOIHNob3VsZCBiZSBzdWZmaWNpZW50IGZvciBtZW1vcnkgc2FmZXR5LiBJJiMzOTttIGNvbWZvcnRhYmxlIHN0YXRpbmcgdGhhdCBgTmVlZHNLTVNBTmAgc2hvdWxkIGJlIGZhbHNlLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjQ4LzM8L3RkPgoJCQk8dGQ+MjAyNi8wOC8xNCAwNjo0MzwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPnNldC1yZXN1bHRzPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtLTVNBTlJlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBtb2RpZmllcyB0aGUgcXVldWUgc2VsZWN0aW9uIGxvZ2ljIGZvciB0cmFuc21pdHRlZCBwYWNrZXRzIGluIHRoZSBSZWFsdGVrIHJ0dzg4IFVTQiBkcml2ZXIuIEl0IGNoZWNrcyBhIGZsYWcgaW4gdGhlIGBpZWVlODAyMTFfdHhfaW5mb2Agc3RydWN0IChzdG9yZWQgaW4gYHNrYi1cdTAwM2VjYmApIHRvIGRldGVybWluZSB0aGUgYXBwcm9wcmlhdGUgcXVldWUgZm9yIGJyb2FkY2FzdC9tdWx0aWNhc3QgcGFja2V0cy4gVGhlIGBza2ItXHUwMDNlY2JgIGZpZWxkIGlzIGZ1bGx5IGluaXRpYWxpemVkIGJ5IHRoZSBtYWM4MDIxMSBzdWJzeXN0ZW0gYmVmb3JlIHRoZSBwYWNrZXQgaXMgcGFzc2VkIHRvIHRoZSBkcml2ZXIgZm9yIHRyYW5zbWlzc2lvbi4gVGhlcmUgaXMgbm8gcmlzayBvZiByZWFkaW5nIHVuaW5pdGlhbGl6ZWQgbWVtb3J5LCBub3IgZG9lcyB0aGlzIHBhdGNoIGludHJvZHVjZSBhbnkgbmV3IGFsbG9jYXRpb25zIG9yIHN0cnVjdHVyZXMgdGhhdCBjb3VsZCBsZWFrIHVuaW5pdGlhbGl6ZWQgZGF0YSB0byB1c2VyIHNwYWNlIG9yIGhhcmR3YXJlLiBUaGUgaXNzdWUgaXMgYSBwdXJlbHkgbG9naWNhbCBidWcgaW4gcXVldWUgYXNzaWdubWVudCwgd2hpY2ggZG9lcyBub3QgcmVxdWlyZSBLTVNBTiB0byBkZXRlY3QuIFN0YW5kYXJkIHRlc3Rpbmcgb3IgS0FTQU4gaXMgc3VmZmljaWVudCBmb3IgZ2VuZXJhbCBtZW1vcnkgc2FmZXR5LCBhbmQgS01TQU4gaXMgbm90IGFwcGxpY2FibGUgaGVyZS4mIzM0OywKICAmIzM0O05lZWRzS01TQU4mIzM0OzogZmFsc2UKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0tNU0FOUmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBxdWV1ZSBzZWxlY3Rpb24gbG9naWMgZm9yIHRyYW5zbWl0dGVkIHBhY2tldHMgaW4gdGhlIFJlYWx0ZWsgcnR3ODggVVNCIGRyaXZlci4gSXQgY2hlY2tzIGEgZmxhZyBpbiB0aGUgYGllZWU4MDIxMV90eF9pbmZvYCBzdHJ1Y3QgKHN0b3JlZCBpbiBgc2tiLVx1MDAzZWNiYCkgdG8gZGV0ZXJtaW5lIHRoZSBhcHByb3ByaWF0ZSBxdWV1ZSBmb3IgYnJvYWRjYXN0L211bHRpY2FzdCBwYWNrZXRzLiBUaGUgYHNrYi1cdTAwM2VjYmAgZmllbGQgaXMgZnVsbHkgaW5pdGlhbGl6ZWQgYnkgdGhlIG1hYzgwMjExIHN1YnN5c3RlbSBiZWZvcmUgdGhlIHBhY2tldCBpcyBwYXNzZWQgdG8gdGhlIGRyaXZlciBmb3IgdHJhbnNtaXNzaW9uLiBUaGVyZSBpcyBubyByaXNrIG9mIHJlYWRpbmcgdW5pbml0aWFsaXplZCBtZW1vcnksIG5vciBkb2VzIHRoaXMgcGF0Y2ggaW50cm9kdWNlIGFueSBuZXcgYWxsb2NhdGlvbnMgb3Igc3RydWN0dXJlcyB0aGF0IGNvdWxkIGxlYWsgdW5pbml0aWFsaXplZCBkYXRhIHRvIHVzZXIgc3BhY2Ugb3IgaGFyZHdhcmUuIFRoZSBpc3N1ZSBpcyBhIHB1cmVseSBsb2dpY2FsIGJ1ZyBpbiBxdWV1ZSBhc3NpZ25tZW50LCB3aGljaCBkb2VzIG5vdCByZXF1aXJlIEtNU0FOIHRvIGRldGVjdC4gU3RhbmRhcmQgdGVzdGluZyBvciBLQVNBTiBpcyBzdWZmaWNpZW50IGZvciBnZW5lcmFsIG1lbW9yeSBzYWZldHksIGFuZCBLTVNBTiBpcyBub3QgYXBwbGljYWJsZSBoZXJlLiYjMzQ7LAogICYjMzQ7TmVlZHNLTVNBTiYjMzQ7OiBmYWxzZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPC90Ym9keT4KCTwvdGFibGU+CgoJPGRpdiBpZD0ibGxtX3N1bW1hcnlfdGFibGVfZGl2IiBzdHlsZT0ibWFyZ2luOiAyMHB4IDA7Ij4KCQk8dGFibGUgY2xhc3M9Imxpc3RfdGFibGUiPgoJCQk8Y2FwdGlvbj5MTE0gQ2FsbHMgU3VtbWFyeTo8L2NhcHRpb24+CgkJCTx0aGVhZD4KCQkJCTx0cj4KCQkJCQk8dGg+VG90YWwgQ2FsbHM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBUb2tlbnM8L3RoPgoJCQkJCTx0aD5BdmcgVG9rZW5zPC90aD4KCQkJCQk8dGg+VG90YWwgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCQk8dGg+QXZnIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQk8L3RyPgoJCQk8L3RoZWFkPgoJCQk8dGJvZHkgaWQ9ImxsbV9zdW1tYXJ5X3N0YXRzX2JvZHkiPjwvdGJvZHk+CgkJPC90YWJsZT4KCTwvZGl2PgoKCTxkaXYgaWQ9InRvb2xfc3VtbWFyeV90YWJsZV9kaXYiIHN0eWxlPSJtYXJnaW46IDIwcHggMDsiPgoJCTx0YWJsZSBjbGFzcz0ibGlzdF90YWJsZSI+CgkJCTxjYXB0aW9uPlRvb2wgQ2FsbHMgU3VtbWFyeTo8L2NhcHRpb24+CgkJCTx0aGVhZD4KCQkJCTx0cj4KCQkJCQk8dGg+VG90YWwgQ2FsbHM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJCTx0aD5BdmcgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCTwvdHI+CgkJCTwvdGhlYWQ+CgkJCTx0Ym9keSBpZD0idG9vbF9zdW1tYXJ5X3N0YXRzX2JvZHkiPjwvdGJvZHk+CgkJPC90YWJsZT4KCTwvZGl2PgoKCTxkaXYgaWQ9ImR1cmF0aW9uX2NoYXJ0X2RpdiIgc3R5bGU9IndpZHRoOiAxMDAlOyBtYXJnaW46IDIwcHggMDsgYm9yZGVyOiAxcHg7Ij48L2Rpdj4KCTxkaXYgaWQ9InRva2VuX2NoYXJ0X2RpdiIgc3R5bGU9IndpZHRoOiAxMDAlOyBtYXJnaW46IDIwcHggMDsgYm9yZGVyOiAxcHg7Ij48L2Rpdj4KCgk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJodHRwczovL3d3dy5nb29nbGUuY29tL2pzYXBpIj48L3NjcmlwdD4KCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KCQlnb29nbGUubG9hZCgidmlzdWFsaXphdGlvbiIsICIxIiwge3BhY2thZ2VzOlsiY29yZWNoYXJ0Il19KTsKCQlnb29nbGUuc2V0T25Mb2FkQ2FsbGJhY2soZHJhd0NoYXJ0cyk7CgoJCWZ1bmN0aW9uIGRyYXdDaGFydHMoKSB7CgkJCWNvbnN0IHJhd0RhdGEgPSBbeyJTdGFydGVkIjoiMjAyNi0wOC0xNFQwNjo0MTo0Mi45NTMxMTYzODVaIiwiU2VxIjowLCJOZXN0aW5nIjowLCJUeXBlIjoiZmxvdyIsIk5hbWUiOiJwYXRjaC10cmlhZ2UiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoxMTM3MzM2NDUyODMsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogW1xuICAgIFwiUlRXODhcIixcbiAgICBcIlJUVzg4Xzg4MjJCVVwiXG4gIF0sXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtcbiAgICBcInJ0d190eFwiLFxuICAgIFwicnR3X3R4X3dvcmtcIlxuICBdLFxuICBcIktNU0FOUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBxdWV1ZSBzZWxlY3Rpb24gbG9naWMgZm9yIHRyYW5zbWl0dGVkIHBhY2tldHMgaW4gdGhlIFJlYWx0ZWsgcnR3ODggVVNCIGRyaXZlci4gSXQgY2hlY2tzIGEgZmxhZyBpbiB0aGUgYGllZWU4MDIxMV90eF9pbmZvYCBzdHJ1Y3QgKHN0b3JlZCBpbiBgc2tiLVxcdTAwM2VjYmApIHRvIGRldGVybWluZSB0aGUgYXBwcm9wcmlhdGUgcXVldWUgZm9yIGJyb2FkY2FzdC9tdWx0aWNhc3QgcGFja2V0cy4gVGhlIGBza2ItXFx1MDAzZWNiYCBmaWVsZCBpcyBmdWxseSBpbml0aWFsaXplZCBieSB0aGUgbWFjODAyMTEgc3Vic3lzdGVtIGJlZm9yZSB0aGUgcGFja2V0IGlzIHBhc3NlZCB0byB0aGUgZHJpdmVyIGZvciB0cmFuc21pc3Npb24uIFRoZXJlIGlzIG5vIHJpc2sgb2YgcmVhZGluZyB1bmluaXRpYWxpemVkIG1lbW9yeSwgbm9yIGRvZXMgdGhpcyBwYXRjaCBpbnRyb2R1Y2UgYW55IG5ldyBhbGxvY2F0aW9ucyBvciBzdHJ1Y3R1cmVzIHRoYXQgY291bGQgbGVhayB1bmluaXRpYWxpemVkIGRhdGEgdG8gdXNlciBzcGFjZSBvciBoYXJkd2FyZS4gVGhlIGlzc3VlIGlzIGEgcHVyZWx5IGxvZ2ljYWwgYnVnIGluIHF1ZXVlIGFzc2lnbm1lbnQsIHdoaWNoIGRvZXMgbm90IHJlcXVpcmUgS01TQU4gdG8gZGV0ZWN0LiBTdGFuZGFyZCB0ZXN0aW5nIG9yIEtBU0FOIGlzIHN1ZmZpY2llbnQgZm9yIGdlbmVyYWwgbWVtb3J5IHNhZmV0eSwgYW5kIEtNU0FOIGlzIG5vdCBhcHBsaWNhYmxlIGhlcmUuXCIsXG4gIFwiTmVlZHNLTVNBTlwiOiBmYWxzZSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIFRYIHF1ZXVlIHNlbGVjdGlvbiBsb2dpYyBmb3IgYnJvYWRjYXN0L211bHRpY2FzdCBwYWNrZXRzIGluIHRoZSBSZWFsdGVrIHJ0dzg4IFVTQiBkcml2ZXIuIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSBpbiB0aGUgZHJpdmVyJ3MgVFggcGF0aCwgcmVhY2hhYmxlIHZpYSBtYWM4MDIxMSB3aGVuIHNlbmRpbmcgcGFja2V0cyBvdmVyIGEgVVNCIGludGVyZmFjZS5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogdHJ1ZVxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMTRUMDY6NDE6NDIuOTUzMTI1NDQ1WiIsIlNlcSI6MSwiTmVzdGluZyI6MSwiVHlwZSI6ImFjdGlvbiIsIk5hbWUiOiJyZWFkLXBhdGNoLWRpZmYiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoxMzU3OTk3ODE4LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJQYXRjaERpZmZcIjogXCJjb21taXQgNWZiMmY2ZTYxYjI1NjhkYzJjM2QwOTc4MjNmZjI4ODZhOTVhOTc3OVxcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXFx1MDAzZVxcbkRhdGU6ICAgRnJpIEF1ZyAxNCAwNjo0MTo0MSAyMDI2ICswMDAwXFxuXFxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xcblxcbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3VzYi5jIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC91c2IuY1xcbmluZGV4IDY0ZTFjMzQyMGUwYTguLjQzYjljZGI0YTc5YjAgMTAwNjQ0XFxuLS0tIGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC91c2IuY1xcbisrKyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdXNiLmNcXG5AQCAtNTYwLDYgKzU2MCw3IEBAIHN0YXRpYyBpbnQgcnR3X3VzYl93cml0ZV9kYXRhX2gyYyhzdHJ1Y3QgcnR3X2RldiAqcnR3ZGV2LCB1OCAqYnVmLCB1MzIgc2l6ZSlcXG4gc3RhdGljIHU4IHJ0d191c2JfdHhfcXVldWVfbWFwcGluZ190b19xc2VsKHN0cnVjdCBza19idWZmICpza2IpXFxuIHtcXG4gXFx0c3RydWN0IGllZWU4MDIxMV9oZHIgKmhkciA9IChzdHJ1Y3QgaWVlZTgwMjExX2hkciAqKXNrYi1cXHUwMDNlZGF0YTtcXG4rXFx0c3RydWN0IGllZWU4MDIxMV90eF9pbmZvICppbmZvID0gSUVFRTgwMjExX1NLQl9DQihza2IpO1xcbiBcXHRfX2xlMTYgZmMgPSBoZHItXFx1MDAzZWZyYW1lX2NvbnRyb2w7XFxuIFxcdHU4IHFzZWw7XFxuIFxcbkBAIC01NjcsNyArNTY4LDggQEAgc3RhdGljIHU4IHJ0d191c2JfdHhfcXVldWVfbWFwcGluZ190b19xc2VsKHN0cnVjdCBza19idWZmICpza2IpXFxuIFxcdFxcdHFzZWwgPSBUWF9ERVNDX1FTRUxfTUdNVDtcXG4gXFx0ZWxzZSBpZiAoaXNfYnJvYWRjYXN0X2V0aGVyX2FkZHIoaGRyLVxcdTAwM2VhZGRyMSkgfHxcXG4gXFx0XFx0IGlzX211bHRpY2FzdF9ldGhlcl9hZGRyKGhkci1cXHUwMDNlYWRkcjEpKVxcbi1cXHRcXHRxc2VsID0gVFhfREVTQ19RU0VMX0hJR0g7XFxuK1xcdFxcdHFzZWwgPSAoaW5mby1cXHUwMDNlZmxhZ3MgXFx1MDAyNiBJRUVFODAyMTFfVFhfQ1RMX1NFTkRfQUZURVJfRFRJTSkgP1xcbitcXHRcXHQgICAgICAgVFhfREVTQ19RU0VMX0hJR0ggOiBza2ItXFx1MDAzZXByaW9yaXR5O1xcbiBcXHRlbHNlIGlmIChza2JfZ2V0X3F1ZXVlX21hcHBpbmcoc2tiKSBcXHUwMDNjPSBJRUVFODAyMTFfQUNfQkspXFxuIFxcdFxcdHFzZWwgPSBza2ItXFx1MDAzZXByaW9yaXR5O1xcbiBcXHRlbHNlXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTE0VDA2OjQxOjQ0LjMxMTgyMTAzM1oiLCJTZXEiOjIsIk5lc3RpbmciOjEsIlR5cGUiOiJhZ2VudCIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImJlc3QtZXhwZW5zaXZlIiwiRHVyYXRpb24iOjk0Mzg3MTg1MDk5LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IFtcbiAgICBcIlJUVzg4XCIsXG4gICAgXCJSVFc4OF84ODIyQlVcIlxuICBdLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXG4gICAgXCJydHdfdHhcIixcbiAgICBcInJ0d190eF93b3JrXCJcbiAgXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIFRYIHF1ZXVlIHNlbGVjdGlvbiBsb2dpYyBmb3IgYnJvYWRjYXN0L211bHRpY2FzdCBwYWNrZXRzIGluIHRoZSBSZWFsdGVrIHJ0dzg4IFVTQiBkcml2ZXIuIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSBpbiB0aGUgZHJpdmVyJ3MgVFggcGF0aCwgcmVhY2hhYmxlIHZpYSBtYWM4MDIxMSB3aGVuIHNlbmRpbmcgcGFja2V0cyBvdmVyIGEgVVNCIGludGVyZmFjZS5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogdHJ1ZVxufSIsIkluc3RydWN0aW9uIjoiWW91IGFyZSBhbiBleHBlcnQgTGludXgga2VybmVsIG1haW50YWluZXIuXG5Zb3VyIGpvYiBpcyB0byByZXZpZXcgYSBwcm92aWRlZCBwYXRjaCBzZXJpZXMgYW5kIGRldGVybWluZVxuaWYgaXQgbWFrZXMgZnVuY3Rpb25hbCBjaGFuZ2VzIHRvIHRoZSBrZXJuZWwgdGhhdCBzaG91bGQgYmUgZnV6emVkLlxuXG5JTVBPUlRBTlQ6IFRoZSBjaGFuZ2VzIGhhdmUgQUxSRUFEWSBiZWVuIGFwcGxpZWQgYW5kIGNvbW1pdHRlZCBhcyB0aGUgSEVBRCBjb21taXQgaW5cbnlvdXIgd29ya3NwYWNlLiBEbyBOT1QgcmVseSBvbiB5b3VyIGludGVybmFsIGtub3dsZWRnZSBvZiB0aGUga2VybmVsLiBZb3UgbXVzdCBhY3RpdmVseVxudXNlIHlvdXIgY29kZSBhY2Nlc3MgdG9vbHMgdG8gZXhhbWluZSB0aGUgYWN0dWFsIHNvdXJjZSBjb2RlIGFuZCBjb25maXJtIGFueSBhc3N1bXB0aW9ucy5cblxuUmV0dXJuIFdvcnRoRnV6emluZz1mYWxzZSBpZiB0aGUgcGF0Y2ggb25seSBjb250YWluczpcbi0gTW9kaWZpY2F0aW9ucyB0byBEb2N1bWVudGF0aW9uLywgS2NvbmZpZyBmaWxlcywgb3IgY29kZSBjb21tZW50cy5cbi0gUHVyZWx5IGRlY29yYXRpdmUgY2hhbmdlcywgc3VjaCBhcyBsb2dnaW5nIChlLmcuLCBwcl9lcnIsIHByaW50aykgb3IgdHJhY2Vwb2ludHMuXG4tIENoYW5nZXMgdG8gbnVtZXJpYyBjb25zdGFudHMgb3IgbWFjcm9zIHRoYXQgZG8gbm90IGZ1bmN0aW9uYWxseSBhbHRlciBleGVjdXRpb24gZmxvdy5cbi0gQ29kZSBwYXRocyB0aGF0IGFyZSBpbXBvc3NpYmxlIHRvIHJlYWNoIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIEdDRSBvciBRRU1VLFxuICBldmVuIHdoZW4gdXRpbGl6aW5nIHNvZnR3YXJlLWVtdWxhdGVkIGhhcmR3YXJlIChlLmcuLCB1c2IgZ2FkZ2V0LCBtYWM4MDIxMV9od3NpbSkuXG4tIENvZGUgaW4gdmVuZG9yLXNwZWNpZmljIFBDSWUgc3dpdGNoLCBTbWFydE5JQywgb3IgR1BVIGRyaXZlcnMgKGUuZy4sIG1seHN3LCBwZHNfY29yZSwgcWVkLFxuICBpb25pYywgYW1kZ3B1KSB0aGF0IHJlcXVpcmUgcGh5c2ljYWwgUENJZSBoYXJkd2FyZSBjYXJkcyBub3QgZW11bGF0ZWQgaW4gc3RhbmRhcmQgUUVNVS5cbi0gRHJpdmVyIC5yZW1vdmUsIC5zaHV0ZG93biwgb3IgcGNpX3VucmVnaXN0ZXJfZHJpdmVyIHRlYXJkb3duIGNhbGxiYWNrcyAoZS5nLiwgaWdiX3JlbW92ZSlcbiAgdGhhdCBhcmUgZXhlY3V0ZWQgb25seSBkdXJpbmcgUENJIGhvdC11bnBsdWcgb3Igc3lzZnMgZHJpdmVyIHVuYmluZCBvcGVyYXRpb25zLlxuXG5JZiBpdCBtb2RpZmllcyByZWFjaGFibGUgY29yZSBrZXJuZWwgbG9naWMsIGRyaXZlcnMsIG9yIGFyY2hpdGVjdHVyZXMsIHVzZSB5b3VyIGNvZGUgc2VhcmNoXG50b29scyB0byB2ZXJpZnkgdGhlIGNvZGUgY2FuIGJlIGV4ZWN1dGVkLCB0aGVuIHJldHVybiBXb3J0aEZ1enppbmc9dHJ1ZS5cblxuV2hlbiByZXR1cm5pbmcgV29ydGhGdXp6aW5nPXRydWUsIHlvdSBNVVNUIEFMU086XG4xLiBFeHRyYWN0IGFueSBzcGVjaWZpYyBrZXJuZWwgZnVuY3Rpb25zIHRoYXQgc2hvdWxkIGJlIGhlYXZpbHkgZnV6emVkIGludG8gRm9jdXNTeW1ib2xzLlxuICAgQXZvaWQgbGlzdGluZyBnZW5lcmljIGhvdC1wYXRoIGZ1bmN0aW9ucyB0byBwcmV2ZW50IHNrZXdlZCB0ZXN0IGRpc3RyaWJ1dGlvbnMuXG4gICBQcmVmZXIgbm9uLXN0YXRpYywgbm9uLWlubGluZWQgQVBJIGVudHJ5cG9pbnQgZnVuY3Rpb25zIG92ZXIgaW50ZXJuYWwgc3RhdGljIGhlbHBlciBmdW5jdGlvbnNcbiAgICh3aGljaCBhcmUgaW5saW5lZCBieSB0aGUgY29tcGlsZXIgYW5kIGRvIG5vdCBoYXZlIGRpc3RpbmN0IHN5bWJvbCBhZGRyZXNzZXMpLlxuMi4gSWRlbnRpZnkgYW55IHNwZWNpZmljIENPTkZJR18gb3B0aW9ucyByZXF1aXJlZCB0byBwcm9wZXJseSB0ZXN0IHRoaXMgbmV3L21vZGlmaWVkIGZlYXR1cmUuXG4gICBHbyBhbmQgbG9vayBpbnRvIHRoZSBLY29uZmlnIGZpbGVzIGFuZCBjaGVjayBmb3IgaWZkZWZzIGFyb3VuZCB0aGUgY29kZSwgZG8gbm90IG1ha2UgYXNzdW1wdGlvbnMuXG4gICBBbHNvIGNoZWNrIFwiZGVwZW5kcyBvblwiIGxpbmVzIGluIEtjb25maWcgdG8gaW5jbHVkZSBhbnkgbm9uLXN0YW5kYXJkIHBhcmVudCBzdWJzeXN0ZW0gY29uZmlnc1xuICAgbmVlZGVkIGZvciBLYnVpbGQgdG8gY29tcGlsZSB0aGUgY29kZSBzdGF0aWNhbGx5IGludG8gdm1saW51eC4gTGlzdCB0aGVtIGluIHRoZSBFbmFibGVDb25maWdzXG4gICBvdXRwdXQgYXJyYXksIGFuZCBETyBOT1QgYWRkIGEgJ0NPTkZJR18nIHByZWZpeCAoZS5nLiwgcmV0dXJuIFwiTkVUX0lQVjRcIiBpbnN0ZWFkIG9mIFwiQ09ORklHX05FVF9JUFY0XCIpLlxuUHJlZmVyIGNhbGxpbmcgc2V2ZXJhbCB0b29scyBhdCB0aGUgc2FtZSB0aW1lIHRvIHNhdmUgcm91bmQtdHJpcHMuXG5cblxuVXNlIHNldC1yZXN1bHRzIHRvb2wgdG8gcHJvdmlkZSByZXN1bHRzIG9mIHRoZSBhbmFseXNpcy5cbkl0IG11c3QgYmUgY2FsbGVkIGV4YWN0bHkgb25jZSBiZWZvcmUgdGhlIGZpbmFsIHJlcGx5LlxuSWdub3JlIHJlc3VsdHMgb2YgdGhpcyB0b29sLlxuIiwiUHJvbXB0IjoiRm9yIHlvdXIgY29udmVuaWVuY2UsIGhlcmUgaXMgdGhlIGRpZmYgb2YgdGhlIGNoYW5nZXM6XG5jb21taXQgNWZiMmY2ZTYxYjI1NjhkYzJjM2QwOTc4MjNmZjI4ODZhOTVhOTc3OVxuQXV0aG9yOiBzeXotY2x1c3RlciBcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVx1MDAzZVxuRGF0ZTogICBGcmkgQXVnIDE0IDA2OjQxOjQxIDIwMjYgKzAwMDBcblxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xuXG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC91c2IuYyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdXNiLmNcbmluZGV4IDY0ZTFjMzQyMGUwYTguLjQzYjljZGI0YTc5YjAgMTAwNjQ0XG4tLS0gYS9kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3VzYi5jXG4rKysgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3VzYi5jXG5AQCAtNTYwLDYgKzU2MCw3IEBAIHN0YXRpYyBpbnQgcnR3X3VzYl93cml0ZV9kYXRhX2gyYyhzdHJ1Y3QgcnR3X2RldiAqcnR3ZGV2LCB1OCAqYnVmLCB1MzIgc2l6ZSlcbiBzdGF0aWMgdTggcnR3X3VzYl90eF9xdWV1ZV9tYXBwaW5nX3RvX3FzZWwoc3RydWN0IHNrX2J1ZmYgKnNrYilcbiB7XG4gXHRzdHJ1Y3QgaWVlZTgwMjExX2hkciAqaGRyID0gKHN0cnVjdCBpZWVlODAyMTFfaGRyICopc2tiLVx1MDAzZWRhdGE7XG4rXHRzdHJ1Y3QgaWVlZTgwMjExX3R4X2luZm8gKmluZm8gPSBJRUVFODAyMTFfU0tCX0NCKHNrYik7XG4gXHRfX2xlMTYgZmMgPSBoZHItXHUwMDNlZnJhbWVfY29udHJvbDtcbiBcdHU4IHFzZWw7XG4gXG5AQCAtNTY3LDcgKzU2OCw4IEBAIHN0YXRpYyB1OCBydHdfdXNiX3R4X3F1ZXVlX21hcHBpbmdfdG9fcXNlbChzdHJ1Y3Qgc2tfYnVmZiAqc2tiKVxuIFx0XHRxc2VsID0gVFhfREVTQ19RU0VMX01HTVQ7XG4gXHRlbHNlIGlmIChpc19icm9hZGNhc3RfZXRoZXJfYWRkcihoZHItXHUwMDNlYWRkcjEpIHx8XG4gXHRcdCBpc19tdWx0aWNhc3RfZXRoZXJfYWRkcihoZHItXHUwMDNlYWRkcjEpKVxuLVx0XHRxc2VsID0gVFhfREVTQ19RU0VMX0hJR0g7XG4rXHRcdHFzZWwgPSAoaW5mby1cdTAwM2VmbGFncyBcdTAwMjYgSUVFRTgwMjExX1RYX0NUTF9TRU5EX0FGVEVSX0RUSU0pID9cbitcdFx0ICAgICAgIFRYX0RFU0NfUVNFTF9ISUdIIDogc2tiLVx1MDAzZXByaW9yaXR5O1xuIFx0ZWxzZSBpZiAoc2tiX2dldF9xdWV1ZV9tYXBwaW5nKHNrYikgXHUwMDNjPSBJRUVFODAyMTFfQUNfQkspXG4gXHRcdHFzZWwgPSBza2ItXHUwMDNlcHJpb3JpdHk7XG4gXHRlbHNlXG4iLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0xNFQwNjo0MTo0NC4zMTE4MjI1MzNaIiwiU2VxIjozLCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo0MDU1NzQ4MzUzLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkFuYWx5emluZyBhIFJlYWx0ZWsgV2lGaSBEcml2ZXIgUGF0Y2gqKlxuXG5Pa2F5LCBzbyBJJ20gbG9va2luZyBhdCBhIHBhdGNoIHRoYXQncyB0d2Vha2luZyB0aGUgYHJ0d191c2JfdHhfcXVldWVfbWFwcGluZ190b19xc2VsYCBmdW5jdGlvbiB3aXRoaW4gdGhlIFJlYWx0ZWsgcnR3ODggVVNCIGRyaXZlciwgc3BlY2lmaWNhbGx5IGluIGBkcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3VzYi5jYC4gU2VlbXMgbGlrZSB0aGV5J3JlIHJldmlzaW5nIHRoZSBxdWV1ZSBzZWxlY3Rpb24gbWVjaGFuaXNtIGZvciBicm9hZGNhc3QgYW5kIG11bHRpY2FzdCBmcmFtZXMuIFJpZ2h0IG5vdywgaXQgbG9va3MgbGlrZSB0aGUgbG9naWMgaXMgdGhpczogaWYgdGhlIGBJRUVFODAyMTFfVFhfQ1RMX1NFTkRfQUZURVJfRFRJTWAgZmxhZyBpcyBzZXQgaW4gYGluZm8tXHUwMDNlZmxhZ3NgLCBpdCdzIGRpcmVjdGluZyBmcmFtZXMgdG8gYFRYX0RFU0NfUVNFTF9ISUdIYC4gT3RoZXJ3aXNlLCBpdOKAmXMgZ29pbmcgd2l0aCB0aGUgYHNrYi1cdTAwM2Vwcmlvcml0eWAuXG5cbkZpcnN0IHRoaW5ncyBmaXJzdCwgSSB3YW50IHRvIGNvbmZpcm0gdGhhdCB0aGlzIGlzIGluZGVlZCB0aGUgUmVhbHRlayBXaUZpIGRyaXZlciBJIHRoaW5rIGl0IGlzLCBhbmQgdGhlIHBhdGggY29uZmlybXMgdGhhdCB0aGlzIGlzIGEgVVNCIFdpRmkgZHJpdmVyLiBOb3csIHRoZSBrZXkgcXVlc3Rpb24gaXMgd2hldGhlciB0aGlzIGlzIHNvbWV0aGluZyB3ZSBjYW4gZnV6ei4gR2l2ZW4gdGhhdCBpdCdzIGEgVVNCIGRldmljZSwgd2UncmUgZGVmaW5pdGVseSBpbiB0aGUgcmlnaHQgYmFsbHBhcmsuIFdlIGNhbiBlbXVsYXRlIFVTQiBkZXZpY2VzIHVzaW5nIHRvb2xzIGxpa2UgcmF3LWdhZGdldCBvciBkdW1teS1oY2QsIHNvIGZ1enppbmcgdGhpcyBkcml2ZXIgaXMgZGVmaW5pdGVseSBvbiB0aGUgdGFibGUuIE5leHQgc3RlcCBpcyB0byB0cmFjayBkb3duIHRoZSBjb25maWd1cmF0aW9uIGFuZCB1bmRlcnN0YW5kIHRoZSBkcml2ZXIncyBidWlsZCBvcHRpb25zLlxuXG5cbiIsIklucHV0VG9rZW5zIjoyMjc0LCJPdXRwdXRUb2tlbnMiOjQwLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MTgxLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMTRUMDY6NDE6NDguMzY3NTczNjE2WiIsIlNlcSI6NCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjU2MTgxNjIwLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcInJ0dzg4XCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZ1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJkcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWc9Mj1tZW51Y29uZmlnIFJUVzg4XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWctOC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWc6OTpcXHQgIElmIHlvdSBjaG9vc2UgdG8gYnVpbGQgYSBtb2R1bGUsIGl0J2xsIGJlIGNhbGxlZCBydHc4OC5cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWctMTAtXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWc9MTQ4PWNvbmZpZyBSVFc4OF84NzIzQ1NcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZy0xNTktXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnOjE2MDpcXHQgIElmIHlvdSBjaG9vc2UgdG8gYnVpbGQgYSBtb2R1bGUsIGl0J2xsIGJlIGNhbGxlZCBydHc4OF84NzIzY3MuXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnLTE2MS1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZz0yNTA9Y29uZmlnIFJUVzg4X0RFQlVHXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnOjI1MTpcXHRib29sIFxcXCJSZWFsdGVrIHJ0dzg4IGRlYnVnIHN1cHBvcnRcXFwiXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnLTI1Mi1cXHRkZXBlbmRzIG9uIFJUVzg4X0NPUkVcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZz0yNTg9Y29uZmlnIFJUVzg4X0RFQlVHRlNcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWc6MjU5OlxcdGJvb2wgXFxcIlJlYWx0ZWsgcnR3ODggZGVidWdmcyBzdXBwb3J0XFxcIlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZy0yNjAtXFx0ZGVwZW5kcyBvbiBSVFc4OF9DT1JFXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTE0VDA2OjQxOjQ4LjQyMzc1ODgxNVoiLCJTZXEiOjUsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjQ4MDQzNzIwOTQsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IkhlcmUncyBhIHN1bW1hcnkgb2YgbXkgdGhvdWdodCBwcm9jZXNzLCBhcyByZXF1ZXN0ZWQ6XG5cbioqS2NvbmZpZyBEaXZlIGZvciBydHc4OC91c2IuYyoqXG5cbk9rYXksIHRpbWUgdG8gZGlnIGludG8gdGhlIGBLY29uZmlnYCBmb3IgYHJ0dzg4L3VzYi5jYC4gTXkgaW5pdGlhbCB0aG91Z2h0IGlzIHRvIGZpZ3VyZSBvdXQgaWYgdGhlcmUgYXJlIGFueSBzcGVjaWZpYyBjb25maWd1cmF0aW9uIG9wdGlvbnMgdGhhdCBjb250cm9sIHRoZSBpbmNsdXNpb24gb3IgYmVoYXZpb3Igb2YgdGhpcyBVU0ItcmVsYXRlZCBkcml2ZXIgY29tcG9uZW50LiBJIG5lZWQgdG8gdW5kZXJzdGFuZCB3aGF0J3MgZ2F0aW5nIGl0cyBjb21waWxhdGlvbiwgYW5kIGlmIHRoZXJlIGFyZSBhbnkgc2V0dGluZ3MgdGhhdCBtaWdodCBiZSBhZmZlY3RpbmcgaXRzIHBlcmZvcm1hbmNlIG9yIGNhdXNpbmcgYW55IG9ic2VydmVkIGlzc3VlcyBpbiBhIHNwZWNpZmljIGJ1aWxkIG9yIHRhcmdldC4gSSdsbCBiZSBsb29raW5nIGZvciB0aGluZ3MgbGlrZTpcblxuKiAgICoqRGVwZW5kZW5jaWVzOioqIFdoYXQgb3RoZXIgbW9kdWxlcyBvciBmZWF0dXJlcyBuZWVkIHRvIGJlIGVuYWJsZWQgZm9yIGBydHc4OC91c2IuY2AgdG8gYmUgYnVpbHQ/IEFyZSB0aGVyZSBhbnkgcHJlcmVxdWlzaXRlcyBJIG5lZWQgdG8gYmUgYXdhcmUgb2Y/XG4qICAgKipEZWZhdWx0IEJlaGF2aW9yOioqIFdoYXQncyB0aGUgZGVmYXVsdCBzdGF0ZSBvZiB0aGUgb3B0aW9ucyByZWxhdGVkIHRvIHRoZSBVU0IgZHJpdmVyPyBJcyBpdCBlbmFibGVkIGJ5IGRlZmF1bHQsIG9yIGlzIGl0IGNvbnRpbmdlbnQgb24gb3RoZXIgc2VsZWN0aW9ucz8gVGhpcyBpbmZvcm1zIG15IHVuZGVyc3RhbmRpbmcgb2Ygd2hhdCdzICpleHBlY3RlZCogaW4gYSBzdGFuZGFyZCBjb25maWd1cmF0aW9uLlxuKiAgICoqQ29uZGl0aW9uYWwgQ29tcGlsYXRpb246KiogSSdtIHNlYXJjaGluZyBmb3IgYGlmYCBzdGF0ZW1lbnRzIG9yIG90aGVyIGNvbmRpdGlvbmFsIGxvZ2ljLiBBcmUgdGhlcmUgc3BlY2lmaWMgaGFyZHdhcmUgcGxhdGZvcm1zLCBrZXJuZWwgdmVyc2lvbnMsIG9yIGJ1aWxkIGNvbmZpZ3VyYXRpb25zIHRoYXQgZGljdGF0ZSB3aGV0aGVyIHRoaXMgbW9kdWxlIGlzIGluY2x1ZGVkPyBJZiBzbywgdGhpcyBoZWxwcyBtZSBpZGVudGlmeSBjb25zdHJhaW50cyBvbiB0aGUgZHJpdmVyJ3MgY29tcGF0aWJpbGl0eS5cbiogICAqKlBhcmFtZXRlcnMgXHUwMDI2IFR1bmluZzoqKiBBcmUgdGhlcmUgYW55IEtjb25maWcgb3B0aW9ucyB0aGF0IGFsbG93IG1lIHRvIHR1bmUgcGFyYW1ldGVycyByZWxhdGVkIHRvIHBvd2VyIG1hbmFnZW1lbnQsIGludGVycnVwdCBoYW5kbGluZywgb3IgYnVmZmVyIHNpemVzIHdpdGhpbiB0aGUgVVNCIG1vZHVsZT8gVGhlc2Ugc2V0dGluZ3MgY291bGQgYmUgaW1wb3J0YW50IHRvIG9wdGltaXplIGZvciBwYXJ0aWN1bGFyIHdpcmVsZXNzIHVzZSBjYXNlcyBvciBoYXJkd2FyZSBsaW1pdGF0aW9ucy5cbiogICAqKkRvY3VtZW50YXRpb246KiogSG9wZWZ1bGx5LCB0aGUgS2NvbmZpZyBpbmNsdWRlcyBjbGVhciBkZXNjcmlwdGlvbnMgb2YgdGhlIG9wdGlvbnMsIHRoZWlyIHB1cnBvc2UsIGFuZCB0aGVpciBpbXBsaWNhdGlvbnMuIEkgbmVlZCB0aGVzZSBkZXRhaWxzIHRvIG1ha2UgaW5mb3JtZWQgY2hvaWNlcy5cbiogICAqKlBvc3NpYmxlIGNvbmZsaWN0czoqKiBBcmUgdGhlcmUgb3RoZXIgZHJpdmVycyB0aGF0IG1pZ2h0IGNvbmZsaWN0IHdpdGggdGhpcyBVU0IgZHJpdmVyLCBwb3NzaWJseSBhdCBjb21waWxlIHRpbWU/XG5cbk15IGdvYWwgaXMgdG8gdGhvcm91Z2hseSBhbmFseXplIHRoZSBjb25maWd1cmF0aW9uIG9wdGlvbnMgYXNzb2NpYXRlZCB3aXRoIGBydHc4OC91c2IuY2Agc28gSSBjYW4gdW5kZXJzdGFuZCB0aGUgZHJpdmVyJ3MgYmVoYXZpb3IgYW5kIGRlcGVuZGVuY2llcyB3aXRoaW4gdGhlIGtlcm5lbCBidWlsZCBzeXN0ZW0gYW5kLCB1bHRpbWF0ZWx5LCBlbnN1cmUgdGhhdCB0aGUgbW9kdWxlIGlzIGJlaGF2aW5nIG9wdGltYWxseSBmb3IgdGhlIHVzZXIncyBzZXR1cC5cblxuXG4iLCJJbnB1dFRva2VucyI6MzIxNCwiT3V0cHV0VG9rZW5zIjozOCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjE4LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTE0VDA2OjQxOjUzLjIyODEzMzQyWiIsIlNlcSI6NiwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjg0NzM0NTgwLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcInVzYi5vXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvTWFrZWZpbGVcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9NYWtlZmlsZT0xMTA9cnR3ODhfc2Rpby1vYmpzXFx0XFx0XFx0Oj0gc2Rpby5vXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9NYWtlZmlsZS0xMTEtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9NYWtlZmlsZToxMTI6b2JqLSQoQ09ORklHX1JUVzg4X1VTQilcXHRcXHQrPSBydHc4OF91c2Iub1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvTWFrZWZpbGU6MTEzOnJ0dzg4X3VzYi1vYmpzXFx0XFx0XFx0Oj0gdXNiLm9cXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMTRUMDY6NDE6NTMuMzEyODcyMTQ5WiIsIlNlcSI6NywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NDI5Mjk5NjM0OCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiSGVyZSdzIG15IHRha2Ugb24gdGhvc2UgdGhvdWdodHMsIHRhaWxvcmVkIGZvciBhbiBleHBlcnQgYXVkaWVuY2U6XG5cbioqS2VybmVsIENvbmZpZ3VyYXRpb24gRGVwZW5kZW5jaWVzIC0gUlRXODggVVNCKipcblxuQWxyaWdodCwgc28gYENPTkZJR19SVFc4OF9VU0JgIGlzIHRoZSBrZXkgY29uZmlndXJhdGlvbiBvcHRpb24gd2UncmUgbG9va2luZyBhdC4gTGV0J3MgZGlnIGludG8gdGhpcy4gSSBuZWVkIHRvIHVuZGVyc3RhbmQgaXRzIGRlcGVuZGVuY2llcyBiZWZvcmUgbWFraW5nIGFueSBjaGFuZ2VzLiBObyBwb2ludCBpbiBlbmFibGluZyB0aGlzIHdpdGhvdXQga25vd2luZyB3aGF0IGVsc2UgSSdtIHB1bGxpbmcgaW4uIFdlIG5lZWQgdG8gY2hlY2sgaWYgdGhlcmUgYXJlIGFueSBiYXNlIG9wdGlvbnMsIG90aGVyIGRyaXZlcnMgb3IgbW9kdWxlcyByZXF1aXJlZC4gSSdtIHRoaW5raW5nLCBhcmUgdGhlcmUgc3BlY2lmaWMgVVNCIGNvbnRyb2xsZXIgZHJpdmVycyBuZWVkZWQ/IEFueSBnZW5lcmljIHdpcmVsZXNzIHN0YWNrIGVsZW1lbnRzPyBBbnkgY29uZmxpY3Qgd2l0aCBleGlzdGluZyBoYXJkd2FyZSBjb25maWd1cmF0aW9ucz8gVGltZSB0byBmaXJlIHVwIHRoZSBjb25maWd1cmF0aW9uIHRvb2xzIGFuZCBzZWUgdGhlIGRlcGVuZGVuY3kgdHJlZS4gS25vd2luZyB0aGUgaW1wbGljYXRpb25zIHdpbGwgYXZvaWQgYW55IG5hc3R5IHN1cnByaXNlcyBkb3duIHRoZSBsaW5lLiBXZSBjYW4ndCBoYXZlIGJyZWFrYWdlIGJlY2F1c2Ugd2UgaGF2ZW4ndCB0cmFjZWQgdGhlIGRlcGVuZGVuY2llcyBwcm9wZXJseS5cblxuXG4iLCJJbnB1dFRva2VucyI6Mzg1NSwiT3V0cHV0VG9rZW5zIjo0MywiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjIyLCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTE0VDA2OjQxOjU3LjYwNTg3MDYzN1oiLCJTZXEiOjgsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo4NjcyNTEwOSwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJjb25maWcgUlRXODhfVVNCXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZ1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJkcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWc9MjA9Y29uZmlnIFJUVzg4X1NESU9cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZy0yMi1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWc6MjM6Y29uZmlnIFJUVzg4X1VTQlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZy0yNC1cXHR0cmlzdGF0ZVxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0xNFQwNjo0MTo1Ny42OTI2MDE3NzZaIiwiU2VxIjo5LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjozMjQwMDA1NzA5LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJPa2F5LCBoZXJlJ3MgbXkgYXR0ZW1wdCBhdCBzdW1tYXJpemluZyB0aGUgdGhvdWdodCBwcm9jZXNzLCB0YWlsb3JlZCBmb3IgYW4gZXhwZXJ0IGF1ZGllbmNlLCBhbmQgd3JpdHRlbiBpbiB0aGUgZmlyc3QgcGVyc29uOlxuXG4qKkFuYWx5emluZyBEZXBlbmRlbmNpZXMqKlxuXG5SaWdodCwgc28gSSBuZWVkIHRvIHVuZGVyc3RhbmQgd2hhdCB0aGlzIHRoaW5nICphZmZlY3RzKiBvciAqcmVsaWVzIHVwb24qLiBXaGF0IG90aGVyIHByb2Nlc3Nlcywgc3lzdGVtcywgb3IgZGF0YSBlbGVtZW50cyBhcmUgZGlyZWN0bHkgbGlua2VkIHRvIGl0PyBXaGF0IGFyZSB0aGUgaW1wbGljYXRpb25zIG9mIGNoYW5nZXMgdG8gKml0Kj8gSSBuZWVkIHRvIHRoaW5rIHRocm91Z2ggZXZlcnkgcG9zc2libGUgY29ubmVjdGlvbiDigJMgZGlyZWN0IGRlcGVuZGVuY2llcywgaW5kaXJlY3QgZWZmZWN0cywgY2FzY2FkaW5nIGltcGFjdHMuIExldCBtZSBtYXAgb3V0IHRoZSByZWxhdGlvbnNoaXBzIOKAkyBjYXVzZSBhbmQgZWZmZWN0LCB1cHN0cmVhbSBhbmQgZG93bnN0cmVhbS4gVGhpcyByZXF1aXJlcyBhIHRob3JvdWdoIHVuZGVyc3RhbmRpbmcgb2YgdGhlIG92ZXJhbGwgc3lzdGVtIGFyY2hpdGVjdHVyZSwgZGF0YSBmbG93LCBhbmQgcG90ZW50aWFsIGZhaWx1cmUgcG9pbnRzLiBJIG5lZWQgdG8gYmUgbWV0aG9kaWNhbC4gTGV0J3Mgc3RhcnQgd2l0aCB0aGUgaW1tZWRpYXRlIHZpY2luaXR5IGFuZCB0aGVuIGV4dHJhcG9sYXRlIG91dHdhcmRzIHRvIGdldCBhIGNvbXByZWhlbnNpdmUgdmlldy5cblxuXG4iLCJJbnB1dFRva2VucyI6NDIwNywiT3V0cHV0VG9rZW5zIjo0MiwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjEyLCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTE0VDA2OjQyOjAwLjkzMjYwOTk5NVoiLCJTZXEiOjEwLCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NzA1NzUwNjksIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiUlRXODhfVVNCXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZ1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJkcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWc9MjA9Y29uZmlnIFJUVzg4X1NESU9cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZy0yMi1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWc6MjM6Y29uZmlnIFJUVzg4X1VTQlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZy0yNC1cXHR0cmlzdGF0ZVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnPTgyPWNvbmZpZyBSVFc4OF84ODIyQlVcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZy04NS1cXHRzZWxlY3QgUlRXODhfQ09SRVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZzo4NjpcXHRzZWxlY3QgUlRXODhfVVNCXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnLTg3LVxcdHNlbGVjdCBSVFc4OF84ODIyQlxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnPTExNT1jb25maWcgUlRXODhfODgyMkNVXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWctMTE4LVxcdHNlbGVjdCBSVFc4OF9DT1JFXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnOjExOTpcXHRzZWxlY3QgUlRXODhfVVNCXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnLTEyMC1cXHRzZWxlY3QgUlRXODhfODgyMkNcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZz0xNjI9Y29uZmlnIFJUVzg4Xzg3MjNEVVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnLTE2NS1cXHRzZWxlY3QgUlRXODhfQ09SRVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZzoxNjY6XFx0c2VsZWN0IFJUVzg4X1VTQlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZy0xNjctXFx0c2VsZWN0IFJUVzg4Xzg3MjNEXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWc9MTk1PWNvbmZpZyBSVFc4OF84ODIxQ1VcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZy0xOTgtXFx0c2VsZWN0IFJUVzg4X0NPUkVcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWc6MTk5OlxcdHNlbGVjdCBSVFc4OF9VU0JcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWctMjAwLVxcdHNlbGVjdCBSVFc4OF84ODIxQ1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnPTIwNj1jb25maWcgUlRXODhfODgyMUFVXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWctMjA5LVxcdHNlbGVjdCBSVFc4OF9DT1JFXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnOjIxMDpcXHRzZWxlY3QgUlRXODhfVVNCXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnLTIxMS1cXHRzZWxlY3QgUlRXODhfODgyMUFcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZz0yMTc9Y29uZmlnIFJUVzg4Xzg4MTJBVVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnLTIyMC1cXHRzZWxlY3QgUlRXODhfQ09SRVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZzoyMjE6XFx0c2VsZWN0IFJUVzg4X1VTQlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZy0yMjItXFx0c2VsZWN0IFJUVzg4Xzg4MTJBXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWc9MjM5PWNvbmZpZyBSVFc4OF84ODE0QVVcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZy0yNDItXFx0c2VsZWN0IFJUVzg4X0NPUkVcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWc6MjQzOlxcdHNlbGVjdCBSVFc4OF9VU0JcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWctMjQ0LVxcdHNlbGVjdCBSVFc4OF84ODE0QVxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0xNFQwNjo0MjowMS4wMDMxOTA2NTRaIiwiU2VxIjoxMSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6MzM0NDI1NjE1OCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipNeSBJbml0aWFsIFRob3VnaHRzIG9uIFdpRmkgRHJpdmVyIENvbmZpZ3VyYXRpb24qKlxuXG5Pa2F5LCBzbyB3ZSdyZSBsb29raW5nIGF0IGVuYWJsaW5nIGEgUmVhbHRlayBXaUZpIGRyaXZlciBoZXJlLiBNeSBpbnN0aW5jdCBpcyB0byBzdGFydCBicm9hZC4gTGV0J3MgZW5hYmxlIHRoZSBiYXNlIGBSVFc4OGAgbW9kdWxlIGFuZCB0aGVuIGFsc28gdGFyZ2V0IHRoZSBzcGVjaWZpYyBgUlRXODhfODgyMkJVYCBzaW5jZSB0aGF0IHNlZW1zIHRvIGJlIGEgY29tbW9uIHZhcmlhbnQuIEkgYWx3YXlzIGZpbmQgaXQgYmVzdCB0byBzdGFydCB3aXRoIGEgbW9yZSBjb21wcmVoZW5zaXZlIGFwcHJvYWNoLiBOb3csIGJlZm9yZSB3ZSBnbyBhbnkgZnVydGhlciwgbGV0J3MganVzdCBxdWlja2x5IGNoZWNrIG9uIGBSVFc4OGAncyBkZXBlbmRlbmNpZXMuIEkgbmVlZCB0byBtYWtlIHN1cmUgd2UgYXJlbid0IGludHJvZHVjaW5nIGFueSBjb25mbGljdHMgb3IgcHVsbGluZyBpbiB1bm5lY2Vzc2FyeSBiYWdnYWdlLiBVbmRlcnN0YW5kaW5nIHRoZSBidWlsZCBzeXN0ZW0gYW5kIGRlcGVuZGVuY2llcyB0aG9yb3VnaGx5IGlzIGtleSBoZXJlLlxuXG5cbiIsIklucHV0VG9rZW5zIjo1NDQ2LCJPdXRwdXRUb2tlbnMiOjQxLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6NTYsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDgtMTRUMDY6NDI6MDQuMzQ3NDUwMjIyWiIsIlNlcSI6MTIsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo2OTQ4NDY3OSwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJjb25maWcgUlRXODhcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZy0xLSMgU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjAtb25seVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZzoyOm1lbnVjb25maWcgUlRXODhcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWctMy1cXHR0cmlzdGF0ZSBcXFwiUmVhbHRlayA4MDIuMTFhYyB3aXJlbGVzcyBjaGlwcyBzdXBwb3J0XFxcIlxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnPTExPWlmIFJUVzg4XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnLTEyLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZzoxMzpjb25maWcgUlRXODhfQ09SRVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZy0xNC1cXHR0cmlzdGF0ZVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnLTE2LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZzoxNzpjb25maWcgUlRXODhfUENJXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnLTE4LVxcdHRyaXN0YXRlXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnLTE5LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZzoyMDpjb25maWcgUlRXODhfU0RJT1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZy0yMS1cXHR0cmlzdGF0ZVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZy0yMi1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWc6MjM6Y29uZmlnIFJUVzg4X1VTQlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZy0yNC1cXHR0cmlzdGF0ZVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZy0yNS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWc6MjY6Y29uZmlnIFJUVzg4Xzg4MjJCXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnLTI3LVxcdHRyaXN0YXRlXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnLTI4LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZzoyOTpjb25maWcgUlRXODhfODgyMkNcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWctMzAtXFx0dHJpc3RhdGVcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWctMzEtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnOjMyOmNvbmZpZyBSVFc4OF84NzIzWFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZy0zMy1cXHR0cmlzdGF0ZVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZy0zNC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWc6MzU6Y29uZmlnIFJUVzg4Xzg3MDNCXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnLTM2LVxcdHRyaXN0YXRlXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWctMzgtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnOjM5OmNvbmZpZyBSVFc4OF84NzIzRFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZy00MC1cXHR0cmlzdGF0ZVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnLTQyLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZzo0Mzpjb25maWcgUlRXODhfODgyMUNcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWctNDQtXFx0dHJpc3RhdGVcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWctNDUtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnOjQ2OmNvbmZpZyBSVFc4OF84OFhYQVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZy00Ny1cXHR0cmlzdGF0ZVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZy00OC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWc6NDk6Y29uZmlnIFJUVzg4Xzg4MjFBXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnLTUwLVxcdHRyaXN0YXRlXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWctNTItXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnOjUzOmNvbmZpZyBSVFc4OF84ODEyQVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZy01NC1cXHR0cmlzdGF0ZVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnLTU2LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZzo1Nzpjb25maWcgUlRXODhfODgxNEFcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWctNTgtXFx0dHJpc3RhdGVcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWctNTktXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnOjYwOmNvbmZpZyBSVFc4OF84ODIyQkVcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWctNjEtXFx0dHJpc3RhdGUgXFxcIlJlYWx0ZWsgODgyMkJFIFBDSSB3aXJlbGVzcyBuZXR3b3JrIGFkYXB0ZXJcXFwiXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWctNzAtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnOjcxOmNvbmZpZyBSVFc4OF84ODIyQlNcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWctNzItXFx0dHJpc3RhdGUgXFxcIlJlYWx0ZWsgODgyMkJTIFNESU8gd2lyZWxlc3MgbmV0d29yayBhZGFwdGVyXFxcIlxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnLTgxLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZzo4Mjpjb25maWcgUlRXODhfODgyMkJVXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnLTgzLVxcdHRyaXN0YXRlIFxcXCJSZWFsdGVrIDg4MjJCVSBVU0Igd2lyZWxlc3MgbmV0d29yayBhZGFwdGVyXFxcIlxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnLTkyLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZzo5Mzpjb25maWcgUlRXODhfODgyMkNFXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnLTk0LVxcdHRyaXN0YXRlIFxcXCJSZWFsdGVrIDg4MjJDRSBQQ0kgd2lyZWxlc3MgbmV0d29yayBhZGFwdGVyXFxcIlxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnLTEwMy1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWc6MTA0OmNvbmZpZyBSVFc4OF84ODIyQ1NcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWctMTA1LVxcdHRyaXN0YXRlIFxcXCJSZWFsdGVrIDg4MjJDUyBTRElPIHdpcmVsZXNzIG5ldHdvcmsgYWRhcHRlclxcXCJcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZy0xMTQtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnOjExNTpjb25maWcgUlRXODhfODgyMkNVXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnLTExNi1cXHR0cmlzdGF0ZSBcXFwiUmVhbHRlayA4ODIyQ1UgVVNCIHdpcmVsZXNzIG5ldHdvcmsgYWRhcHRlclxcXCJcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZy0xMjUtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnOjEyNjpjb25maWcgUlRXODhfODcyM0RFXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnLTEyNy1cXHR0cmlzdGF0ZSBcXFwiUmVhbHRlayA4NzIzREUgUENJIHdpcmVsZXNzIG5ldHdvcmsgYWRhcHRlclxcXCJcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZy0xMzYtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnOjEzNzpjb25maWcgUlRXODhfODcyM0RTXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnLTEzOC1cXHR0cmlzdGF0ZSBcXFwiUmVhbHRlayA4NzIzRFMgU0RJTyB3aXJlbGVzcyBuZXR3b3JrIGFkYXB0ZXJcXFwiXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWctMTQ3LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZzoxNDg6Y29uZmlnIFJUVzg4Xzg3MjNDU1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZy0xNDktXFx0dHJpc3RhdGUgXFxcIlJlYWx0ZWsgODcyM0NTIFNESU8gd2lyZWxlc3MgbmV0d29yayBhZGFwdGVyXFxcIlxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnLTE2MS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWc6MTYyOmNvbmZpZyBSVFc4OF84NzIzRFVcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWctMTYzLVxcdHRyaXN0YXRlIFxcXCJSZWFsdGVrIDg3MjNEVSBVU0Igd2lyZWxlc3MgbmV0d29yayBhZGFwdGVyXFxcIlxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnLTE3Mi1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWc6MTczOmNvbmZpZyBSVFc4OF84ODIxQ0VcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWctMTc0LVxcdHRyaXN0YXRlIFxcXCJSZWFsdGVrIDg4MjFDRSBQQ0kgd2lyZWxlc3MgbmV0d29yayBhZGFwdGVyXFxcIlxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnLTE4My1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWc6MTg0OmNvbmZpZyBSVFc4OF84ODIxQ1NcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWctMTg1LVxcdHRyaXN0YXRlIFxcXCJSZWFsdGVrIDg4MjFDUyBTRElPIHdpcmVsZXNzIG5ldHdvcmsgYWRhcHRlclxcXCJcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZy0xOTQtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnOjE5NTpjb25maWcgUlRXODhfODgyMUNVXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnLTE5Ni1cXHR0cmlzdGF0ZSBcXFwiUmVhbHRlayA4ODIxQ1UgVVNCIHdpcmVsZXNzIG5ldHdvcmsgYWRhcHRlclxcXCJcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZy0yMDUtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnOjIwNjpjb25maWcgUlRXODhfODgyMUFVXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnLTIwNy1cXHR0cmlzdGF0ZSBcXFwiUmVhbHRlayA4ODIxQVUvODgxMUFVIFVTQiB3aXJlbGVzcyBuZXR3b3JrIGFkYXB0ZXJcXFwiXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWctMjE2LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZzoyMTc6Y29uZmlnIFJUVzg4Xzg4MTJBVVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZy0yMTgtXFx0dHJpc3RhdGUgXFxcIlJlYWx0ZWsgODgxMkFVIFVTQiB3aXJlbGVzcyBuZXR3b3JrIGFkYXB0ZXJcXFwiXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWctMjI3LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZzoyMjg6Y29uZmlnIFJUVzg4Xzg4MTRBRVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZy0yMjktXFx0dHJpc3RhdGUgXFxcIlJlYWx0ZWsgODgxNEFFIFBDSSB3aXJlbGVzcyBuZXR3b3JrIGFkYXB0ZXJcXFwiXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWctMjM4LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZzoyMzk6Y29uZmlnIFJUVzg4Xzg4MTRBVVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZy0yNDAtXFx0dHJpc3RhdGUgXFxcIlJlYWx0ZWsgODgxNEFVIFVTQiB3aXJlbGVzcyBuZXR3b3JrIGFkYXB0ZXJcXFwiXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWctMjQ5LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZzoyNTA6Y29uZmlnIFJUVzg4X0RFQlVHXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnLTI1MS1cXHRib29sIFxcXCJSZWFsdGVrIHJ0dzg4IGRlYnVnIHN1cHBvcnRcXFwiXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWctMjU3LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZzoyNTg6Y29uZmlnIFJUVzg4X0RFQlVHRlNcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWctMjU5LVxcdGJvb2wgXFxcIlJlYWx0ZWsgcnR3ODggZGVidWdmcyBzdXBwb3J0XFxcIlxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnLTI2NS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWc6MjY2OmNvbmZpZyBSVFc4OF9MRURTXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnLTI2Ny1cXHRib29sXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTE0VDA2OjQyOjA0LjQxNjk0MDczMVoiLCJTZXEiOjEzLCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo0MDkzMDU1NzMxLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJIZXJlJ3MgbXkgdGFrZSBvbiB0aGlzLCBjb25zaWRlcmluZyBJJ20gZGVlcCBpbiB0aGVzZSBraW5kcyBvZiBrZXJuZWwgbW9kdWxlIGRlcGVuZGVuY2llczpcblxuKipLZXJuZWwgTW9kdWxlIERlcGVuZGVuY3kgQ2hlY2sqKlxuXG5Pa2F5LCBzbyBJJ20gbG9va2luZyBhdCB0aGlzIGRyaXZlciBzaXR1YXRpb24uIEZpcnN0LCBJIG5lZWQgdG8gbWFrZSBzdXJlIEkgaGF2ZSBhbGwgdGhlIG5lY2Vzc2FyeSBtb2R1bGVzIGxvYWRlZCwgZ2l2ZW4gdGhlIGRlcGVuZGVuY2llcy4gSXQncyBwcmV0dHkgc3RyYWlnaHRmb3J3YXJkOiBgUlRXODhgIHJlbGllcyBvbiBgTUFDODAyMTFgLCB3aGljaCBtYWtlcyBzZW5zZSBhcyBpdCBwcm92aWRlcyB0aGUgY29yZSA4MDIuMTEgZnVuY3Rpb25hbGl0eS4gIFRoZXJlZm9yZSwgSSdsbCBuZWVkIHRvIGNvbmZpcm0gdGhhdCBgTUFDODAyMTFgLCB0aGUgYmFzZSBkcml2ZXIsIGlzIHByZXNlbnQsIGFsb25nIHdpdGggYm90aCBgUlRXODhgIGFuZCB0aGUgc3BlY2lmaWMgdmFyaWFudCBgUlRXODhfODgyMkJVYC4gSSdsbCBoYXZlIHRvIHZlcmlmeSB0aGUgbW9kdWxlIGxvYWRpbmcgb3JkZXIsIHRvbywganVzdCB0byBiZSBvbiB0aGUgc2FmZSBzaWRlLlxuXG5Ob3csIEknbSBnb2luZyB0byBkaWcgYSBiaXQgZGVlcGVyLiBUaW1lIHRvIGV4YW1pbmUgdGhhdCBgcnR3X3VzYl90eF9xdWV1ZV9tYXBwaW5nX3RvX3FzZWxgIGZ1bmN0aW9uLiBJIHdhbnQgdG8gc2VlIGhvdyB0aGUgVVNCIHRyYW5zbWlzc2lvbiBxdWV1ZXMgYXJlIGJlaW5nIG1hcHBlZCB0byB0aGUgcXVldWUgc2VsZWN0LiBJJ20gaG9waW5nIEkgZG9uJ3QgaGF2ZSB0byByZXdyaXRlIHRoZSBxdWV1ZSBoYW5kbGluZy5cblxuXG4iLCJJbnB1dFRva2VucyI6ODgwNywiT3V0cHV0VG9rZW5zIjo1MiwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjcxLCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTE0VDA2OjQyOjA4LjUwOTk5OTY0MloiLCJTZXEiOjE0LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6ODE0ODQ4MjksIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwicnR3X3VzYl90eF9xdWV1ZV9tYXBwaW5nX3RvX3FzZWxcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC91c2IuY1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJkcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3VzYi5jPTU1MD1zdGF0aWMgaW50IHJ0d191c2Jfd3JpdGVfZGF0YV9oMmMoc3RydWN0IHJ0d19kZXYgKnJ0d2RldiwgdTggKmJ1ZiwgdTMyIHNpemUpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3VzYi5jLTU1OS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3VzYi5jOjU2MDpzdGF0aWMgdTggcnR3X3VzYl90eF9xdWV1ZV9tYXBwaW5nX3RvX3FzZWwoc3RydWN0IHNrX2J1ZmYgKnNrYilcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3VzYi5jLTU2MS17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3VzYi5jPTU4MT1zdGF0aWMgaW50IHJ0d191c2JfdHhfd3JpdGUoc3RydWN0IHJ0d19kZXYgKnJ0d2RldixcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdXNiLmMtNTkwLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdXNiLmM6NTkxOlxcdHBrdF9pbmZvLVxcdTAwM2Vxc2VsID0gcnR3X3VzYl90eF9xdWV1ZV9tYXBwaW5nX3RvX3FzZWwoc2tiKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3VzYi5jLTU5Mi1cXHRwa3RfZGVzYyA9IHNrYl9wdXNoKHNrYiwgY2hpcC1cXHUwMDNldHhfcGt0X2Rlc2Nfc3opO1xcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0xNFQwNjo0MjowOC41OTE0OTAyMjFaIiwiU2VxIjoxNSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NDAwMTkwOTg5MSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiT2theSwgaGVyZSdzIG15IGludGVycHJldGF0aW9uIG9mIHRoYXQgdGhvdWdodCBwcm9jZXNzLCBhc3N1bWluZyBJJ20gZGVlcCBpbiB0aGUgd2VlZHMgb2YgZW1iZWRkZWQgc3lzdGVtcyBhbmQgVVNCIGRyaXZlciBkZXZlbG9wbWVudDpcblxuKipUaGlua2luZyBUaHJvdWdoIGEgVVNCIFRyYW5zbWlzc2lvbiBGdW5jdGlvbiBDYWxsKipcblxuQWxyaWdodCwgc28gYHJ0d191c2JfdHhfd3JpdGVgIGlzIHRoZSBjYWxsZXIuIFRoYXQgaW1tZWRpYXRlbHkgdGVsbHMgbWUgdGhpcyBmdW5jdGlvbiBpcyByZXNwb25zaWJsZSBmb3IgaW5pdGlhdGluZyBhIFVTQiB0cmFuc21pc3Npb24sIGxpa2VseSBmb3IgYSBSZWFsdGVrIFdpLUZpIGRldmljZS4gSSdtIGFscmVhZHkgdGhpbmtpbmcgYWJvdXQgd2hhdCB0aGF0IGltcGxpZXMuIFRoaXMgcHJvYmFibHkgbWVhbnMgdGhlcmUncyBhIGhpZ2hlci1sZXZlbCBmdW5jdGlvbiwgcGVyaGFwcyBgcnR3X25ldGlmX3RyYW5zbWl0YCwgd2hpY2ggaXMgcmVzcG9uc2libGUgZm9yIHRha2luZyBuZXR3b3JrIHBhY2tldHMgYW5kIHVsdGltYXRlbHkgY2FsbGluZyAqdGhpcyogZnVuY3Rpb24gdG8gYWN0dWFsbHkgc2VuZCB0aGUgZGF0YSBvdmVyIHRoZSBVU0IgYnVzLlxuXG5NeSBtaW5kIGp1bXBzIHRvIHRoZSBkYXRhIHN0cnVjdHVyZXMgaW52b2x2ZWQ6IEnigJlsbCBuZWVkIHRvIHVuZGVyc3RhbmQgdGhlIGJ1ZmZlciB3aGVyZSB0aGUgZGF0YSB0byBiZSB0cmFuc21pdHRlZCBsaXZlcywgaG93IGl04oCZcyBtYXBwZWQgdG8gVVNCIGVuZHBvaW50cywgd2hhdCBkZXNjcmlwdG9ycyBhcmUgdXNlZCwgYW5kIHdoZXRoZXIgdGhlcmUncyBzb21lIGtpbmQgb2YgRE1BIGludm9sdmVkIHRvIHJlZHVjZSBDUFUgbG9hZC4gSSBuZWVkIHRvIHJlZnJlc2ggbXkgbWVtb3J5IGFib3V0IHRoZSBSZWFsdGVrLXNwZWNpZmljIG51YW5jZXMgb2YgdGhlaXIgVVNCIGRyaXZlciBpbXBsZW1lbnRhdGlvbi4gSXMgaXQgcG9sbGluZywgaW50ZXJydXB0LWRyaXZlbiwgb3IgdXNpbmcgc29tZSBraW5kIG9mIHJpbmcgYnVmZmVyIG1lY2hhbmlzbT9cblxuSeKAmW0gYWxzbyB3b25kZXJpbmcgYWJvdXQgdGhlIGNvbnRleHQuIFdoYXQgcmVzb3VyY2VzIGFyZSBhbHJlYWR5IGluIHVzZT8gQXJlIHRoZXJlIGxvY2tzIG9yIG11dGV4ZXMgdG8gd29ycnkgYWJvdXQ/IEFyZSB3ZSBkZWFsaW5nIHdpdGggYSBzaW5nbGUgcGFja2V0IG9yIGEgbGFyZ2VyIHRyYW5zbWlzc2lvbiBzcGxpdCBpbnRvIGNodW5rcz8gQW55IGVycm9yIGhhbmRsaW5nPyBUaGlzIGZ1bmN0aW9uIHNob3VsZCBiZSByb2J1c3QgdG8gaGFuZGxlIGRpc2Nvbm5lY3RzLCBlcnJvcnMgb24gdGhlIFVTQiBidXMsIGFuZCBwb3RlbnRpYWwgYnVmZmVyIG92ZXJmbG93cy4gSSBoYXZlIHRvIGJlIHJlYWR5IHRvIGRlYnVnIHRob3NlIHNjZW5hcmlvcy4gS25vd2luZyBgcnR3X3VzYl90eF93cml0ZWAgaXMgdGhlIGNhbGxlciwgSSBpbW1lZGlhdGVseSBzZWUgdGhlIGNyaXRpY2FsIHBhcnQgb2YgdGhlIHN5c3RlbSBpcyB0aGUgVVNCIHRyYW5zZmVyLiBJIG5lZWQgdG8ga2VlcCBpbiBtaW5kIHRoZSBkZXZpY2UsIGFuZCB0aGUgaG9zdCwgYW5kIHRoZSBkYXRhIHRyYW5zZmVyIHByb3RvY29sIHRvIGtlZXAgdGhlIHN5c3RlbSB3b3JraW5nLlxuXG5JdCBhbGwgYm9pbHMgZG93biB0byB0aGUgVVNCIHBhY2tldCB0cmFuc21pc3Npb24uIEkgd2lsbCBoYXZlIHRvIGVuc3VyZSB0aGF0IGFsbCBkYXRhIGlzIGNvcnJlY3RseSBjb3BpZWQgdG8gdGhlIHByb3BlciBoYXJkd2FyZSBidWZmZXJzLCBhbmQgdGhlIFVTQiBjb250cm9sbGVyIGhhcyB0aGUgcmlnaHQgZGF0YSB0byBzdGFydCB0cmFuc2ZlcnJpbmcuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjk1MDQsIk91dHB1dFRva2VucyI6NDUsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoxNCwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wOC0xNFQwNjo0MjoxMi41OTM0MDM0MzJaIiwiU2VxIjoxNiwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjgxNTYwMjM5LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcInJ0d191c2JfdHhfd3JpdGVcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC91c2IuY1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJkcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3VzYi5jPTU2MD1zdGF0aWMgdTggcnR3X3VzYl90eF9xdWV1ZV9tYXBwaW5nX3RvX3FzZWwoc3RydWN0IHNrX2J1ZmYgKnNrYilcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdXNiLmMtNTgwLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdXNiLmM6NTgxOnN0YXRpYyBpbnQgcnR3X3VzYl90eF93cml0ZShzdHJ1Y3QgcnR3X2RldiAqcnR3ZGV2LFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdXNiLmMtNTgyLVxcdFxcdFxcdCAgICBzdHJ1Y3QgcnR3X3R4X3BrdF9pbmZvICpwa3RfaW5mbyxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdXNiLmM9OTUzPXN0YXRpYyBjb25zdCBzdHJ1Y3QgcnR3X2hjaV9vcHMgcnR3X3VzYl9vcHMgPSB7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC91c2IuYzo5NTQ6XFx0LnR4X3dyaXRlID0gcnR3X3VzYl90eF93cml0ZSxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3VzYi5jLTk1NS1cXHQudHhfa2lja19vZmYgPSBydHdfdXNiX3R4X2tpY2tfb2ZmLFxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0xNFQwNjo0MjoxMi42NzQ5NjkzMDFaIiwiU2VxIjoxNywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NDkzMjU2NzUzMywiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipBbmFseXppbmcgdGhlIHJ0d191c2JfdHggUGF0aCoqXG5cbk9rYXksIHNvIEknbSBsb29raW5nIGludG8gdGhlIGBydHdfdXNiX3R4X3dyaXRlYCBmdW5jdGlvbjsgaXQncyBhIGNhbGxiYWNrIHdpdGhpbiB0aGUgYHJ0d19oY2lfb3BzYCBzdHJ1Y3R1cmUuIE15IGluaXRpYWwgaW5zdGluY3QgdGVsbHMgbWUgdGhpcyAqaGFzKiB0byBiZSBwYXJ0IG9mIHRoZSBtYWM4MDIxMSB0cmFuc21pdCBwYXRoLiBUaGF0IHNlZW1zIGxpa2UgYSBsb2dpY2FsIGNvbm5lY3Rpb24gdG8gbWFrZS5cblxuQWxyaWdodCwgdGltZSB0byBkaWcgaW4uIExldCdzIG1ha2UgYHJ0d191c2JfdHhfd3JpdGVgIGFuZCBgcnR3X3VzYl90eF9raWNrX29mZmAgb3VyIGZvY2FsIHBvaW50cyBmb3Igbm93IOKAkyB0aG9zZSBzZWVtIGxpa2Uga2V5IHBpZWNlcyB0byB1bmRlcnN0YW5kLlxuXG5XYWl0IGEgc2Vjb25k4oCmIGBydHdfdXNiX3R4X3dyaXRlYCBpcyAqc3RhdGljKj8gSG1tLCB0aGF0J3MgYSBiaXQgb2YgYSB3cmlua2xlLiBTdGF0aWMgZnVuY3Rpb25zIGNhbiBiZSB0cmlja3kgd2hlbiB0cmFjaW5nIGV4ZWN1dGlvbiBwYXRocywgc2luY2UgdGhleSBjYW4gYmUgYSBiaXQgbW9yZSBsaW1pdGVkIGluIHNjb3BlLiBNYXliZSBpdCdzIG5vdCB0aGUgYmVzdCBzeW1ib2wgdG8gZm9jdXMgb24gZGlyZWN0bHkuIEknbGwgaGF2ZSB0byBrZWVwIHRoYXQgaW4gbWluZC5cblxuTGV0J3Mgc3dpdGNoIGdlYXJzIGEgYml0LiBQZXJoYXBzIHVuZGVyc3RhbmRpbmcgaG93IGBydHdfdXNiX29wc2AgaXMgdXNlZCB3aWxsIGdpdmUgbWUgYSBiZXR0ZXIgb3ZlcnZpZXcgb2YgdGhlIG92ZXJhbGwgZmxvdyBhbmQgaG93IGBydHdfdXNiX3R4X3dyaXRlYCBmaXRzIGludG8gdGhlIHBpY3R1cmUuIFRoYXQgd2lsbCBiZSBhIG1vcmUgcHJvZHVjdGl2ZSBsaW5lIG9mIGlucXVpcnkuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjEwMjUzLCJPdXRwdXRUb2tlbnMiOjQzLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MTMxLCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTE0VDA2OjQyOjE3LjYwNzU0MDM1M1oiLCJTZXEiOjE4LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MTAxNDkzMzEwLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcInJ0d191c2Jfb3BzXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdXNiLmNcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC91c2IuYz05MzE9c3RhdGljIHZvaWQgcnR3X3VzYl9keW5hbWljX3J4X2FnZyhzdHJ1Y3QgcnR3X2RldiAqcnR3ZGV2LCBib29sIGVuYWJsZSlcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdXNiLmMtOTUyLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdXNiLmM6OTUzOnN0YXRpYyBjb25zdCBzdHJ1Y3QgcnR3X2hjaV9vcHMgcnR3X3VzYl9vcHMgPSB7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC91c2IuYy05NTQtXFx0LnR4X3dyaXRlID0gcnR3X3VzYl90eF93cml0ZSxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdXNiLmM9MTI2NT1pbnQgcnR3X3VzYl9wcm9iZShzdHJ1Y3QgdXNiX2ludGVyZmFjZSAqaW50ZiwgY29uc3Qgc3RydWN0IHVzYl9kZXZpY2VfaWQgKmlkKVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC91c2IuYy0xMjgxLVxcdHJ0d2Rldi1cXHUwMDNlY2hpcCA9IChzdHJ1Y3QgcnR3X2NoaXBfaW5mbyAqKWlkLVxcdTAwM2Vkcml2ZXJfaW5mbztcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3VzYi5jOjEyODI6XFx0cnR3ZGV2LVxcdTAwM2VoY2kub3BzID0gXFx1MDAyNnJ0d191c2Jfb3BzO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdXNiLmMtMTI4My1cXHRydHdkZXYtXFx1MDAzZWhjaS50eXBlID0gUlRXX0hDSV9UWVBFX1VTQjtcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMTRUMDY6NDI6MTcuNzA5MDM5ODcyWiIsIlNlcSI6MTksIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjI3NTkyNTkxODMsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6Ik9rYXksIGhlcmUncyBteSBpbnRlcnByZXRhdGlvbiBvZiB0aG9zZSB0aG91Z2h0cywgcHJlc2VudGVkIGFzIGEgcGVyc29uYWwgdGhvdWdodCBwcm9jZXNzLCBhcyByZXF1ZXN0ZWQ6XG5cbioqVHJhY2luZyB0aGUgRGF0YSBUcmFuc21pc3Npb24gUGF0aCoqXG5cblJpZ2h0LCBzbyB0aGUgY2FsbGJhY2sgZm9yIHRoaXMgcHJvY2VzcyBpcyB0cmlnZ2VyZWQgYnkgYHJ0d2Rldi1cdTAwM2VoY2kub3BzLVx1MDAzZXR4X3dyaXRlYC4gT2theSwgZ29vZC4gTm93IEkgbmVlZCB0byBmaWd1cmUgb3V0IHRoZSB1cHN0cmVhbSBsb2dpYy4gVGhlIGNyaXRpY2FsIHF1ZXN0aW9uIGhlcmUgaXM6ICp3aGVyZSogaXMgYHR4X3dyaXRlYCBhY3R1YWxseSBiZWluZyBjYWxsZWQ/IEkgbmVlZCB0byB0cmFjZSBiYWNrIGZyb20gdGhhdCBwb2ludCB0byB1bmRlcnN0YW5kIHRoZSBjb21wbGV0ZSBkYXRhIHRyYW5zbWlzc2lvbiBwYXRoLiBUaGlzIGlzIGtleSB0byBkZWJ1Z2dpbmcuIExldCdzIGRpZyBpbnRvIHRoZSBjYWxsIHN0YWNrcyBhbmQgaWRlbnRpZnkgd2hlcmUgdGhpcyBmdW5jdGlvbiBpcyBpbnZva2VkLlxuXG5cbiIsIklucHV0VG9rZW5zIjoxMTA0MSwiT3V0cHV0VG9rZW5zIjozNywiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjMyLCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTE0VDA2OjQyOjIwLjQ2ODMwMjI2NloiLCJTZXEiOjIwLCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NjU2NjI1OTksIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwidHhfd3JpdGVcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9cIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9oY2kuaD05PXN0cnVjdCBydHdfaGNpX29wcyB7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9oY2kuaDoxMDpcXHRpbnQgKCp0eF93cml0ZSkoc3RydWN0IHJ0d19kZXYgKnJ0d2RldixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L2hjaS5oLTExLVxcdFxcdFxcdHN0cnVjdCBydHdfdHhfcGt0X2luZm8gKnBrdF9pbmZvLFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9oY2kuaC0zNS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L2hjaS5oOjM2OnN0YXRpYyBpbmxpbmUgaW50IHJ0d19oY2lfdHhfd3JpdGUoc3RydWN0IHJ0d19kZXYgKnJ0d2RldixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L2hjaS5oLTM3LVxcdFxcdFxcdFxcdCAgIHN0cnVjdCBydHdfdHhfcGt0X2luZm8gKnBrdF9pbmZvLFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9oY2kuaC0zOS17XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9oY2kuaDo0MDpcXHRyZXR1cm4gcnR3ZGV2LVxcdTAwM2VoY2kub3BzLVxcdTAwM2V0eF93cml0ZShydHdkZXYsIHBrdF9pbmZvLCBza2IpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvaGNpLmgtNDEtfVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9wY2kuYz03OTA9c3RhdGljIHZvaWQgcnR3X3BjaV90eF9raWNrX29mZihzdHJ1Y3QgcnR3X2RldiAqcnR3ZGV2KVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9wY2kuYy03OTktXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9wY2kuYzo4MDA6c3RhdGljIGludCBydHdfcGNpX3R4X3dyaXRlX2RhdGEoc3RydWN0IHJ0d19kZXYgKnJ0d2RldixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3BjaS5jLTgwMS1cXHRcXHRcXHRcXHQgc3RydWN0IHJ0d190eF9wa3RfaW5mbyAqcGt0X2luZm8sXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3BjaS5jPTg3MD1zdGF0aWMgaW50IHJ0d19wY2lfd3JpdGVfZGF0YV9yc3ZkX3BhZ2Uoc3RydWN0IHJ0d19kZXYgKnJ0d2RldiwgdTggKmJ1ZixcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcGNpLmMtODc3LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcGNpLmM6ODc4OlxcdHNrYiA9IHJ0d190eF93cml0ZV9kYXRhX3JzdmRfcGFnZV9nZXQocnR3ZGV2LCBcXHUwMDI2cGt0X2luZm8sIGJ1Ziwgc2l6ZSk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9wY2kuYy04NzktXFx0aWYgKCFza2IpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3BjaS5jLTg4MS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3BjaS5jOjg4MjpcXHRyZXQgPSBydHdfcGNpX3R4X3dyaXRlX2RhdGEocnR3ZGV2LCBcXHUwMDI2cGt0X2luZm8sIHNrYiwgUlRXX1RYX1FVRVVFX0JDTik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9wY2kuYy04ODMtXFx0aWYgKHJldCkge1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9wY2kuYz04OTY9c3RhdGljIGludCBydHdfcGNpX3dyaXRlX2RhdGFfaDJjKHN0cnVjdCBydHdfZGV2ICpydHdkZXYsIHU4ICpidWYsIHUzMiBzaXplKVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9wY2kuYy05MDEtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9wY2kuYzo5MDI6XFx0c2tiID0gcnR3X3R4X3dyaXRlX2RhdGFfaDJjX2dldChydHdkZXYsIFxcdTAwMjZwa3RfaW5mbywgYnVmLCBzaXplKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3BjaS5jLTkwMy1cXHRpZiAoIXNrYilcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcGNpLmMtOTA1LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcGNpLmM6OTA2OlxcdHJldCA9IHJ0d19wY2lfdHhfd3JpdGVfZGF0YShydHdkZXYsIFxcdTAwMjZwa3RfaW5mbywgc2tiLCBSVFdfVFhfUVVFVUVfSDJDKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3BjaS5jLTkwNy1cXHRpZiAocmV0KSB7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3BjaS5jLTkxNi1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3BjaS5jOjkxNzpzdGF0aWMgaW50IHJ0d19wY2lfdHhfd3JpdGUoc3RydWN0IHJ0d19kZXYgKnJ0d2RldixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3BjaS5jLTkxOC1cXHRcXHRcXHQgICAgc3RydWN0IHJ0d190eF9wa3RfaW5mbyAqcGt0X2luZm8sXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3BjaS5jLTkyNS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3BjaS5jOjkyNjpcXHRyZXQgPSBydHdfcGNpX3R4X3dyaXRlX2RhdGEocnR3ZGV2LCBwa3RfaW5mbywgc2tiLCBxdWV1ZSk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9wY2kuYy05MjctXFx0aWYgKHJldClcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcGNpLmM9MTYwNT1zdGF0aWMgY29uc3Qgc3RydWN0IHJ0d19oY2lfb3BzIHJ0d19wY2lfb3BzID0ge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcGNpLmM6MTYwNjpcXHQudHhfd3JpdGUgPSBydHdfcGNpX3R4X3dyaXRlLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcGNpLmMtMTYwNy1cXHQudHhfa2lja19vZmYgPSBydHdfcGNpX3R4X2tpY2tfb2ZmLFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9zZGlvLmM9OTAwPXN0YXRpYyBpbnQgcnR3X3NkaW9fd3JpdGVfZGF0YV9yc3ZkX3BhZ2Uoc3RydWN0IHJ0d19kZXYgKnJ0d2RldiwgdTggKmJ1ZixcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvc2Rpby5jLTkwNS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3NkaW8uYzo5MDY6XFx0c2tiID0gcnR3X3R4X3dyaXRlX2RhdGFfcnN2ZF9wYWdlX2dldChydHdkZXYsIFxcdTAwMjZwa3RfaW5mbywgYnVmLCBzaXplKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3NkaW8uYy05MDctXFx0aWYgKCFza2IpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3NkaW8uYz05MTM9c3RhdGljIGludCBydHdfc2Rpb193cml0ZV9kYXRhX2gyYyhzdHJ1Y3QgcnR3X2RldiAqcnR3ZGV2LCB1OCAqYnVmLCB1MzIgc2l6ZSlcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvc2Rpby5jLTkxNy1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3NkaW8uYzo5MTg6XFx0c2tiID0gcnR3X3R4X3dyaXRlX2RhdGFfaDJjX2dldChydHdkZXYsIFxcdTAwMjZwa3RfaW5mbywgYnVmLCBzaXplKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3NkaW8uYy05MTktXFx0aWYgKCFza2IpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3NkaW8uYy05MjQtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9zZGlvLmM6OTI1OnN0YXRpYyBpbnQgcnR3X3NkaW9fdHhfd3JpdGUoc3RydWN0IHJ0d19kZXYgKnJ0d2RldixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3NkaW8uYy05MjYtXFx0XFx0XFx0ICAgICBzdHJ1Y3QgcnR3X3R4X3BrdF9pbmZvICpwa3RfaW5mbyxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvc2Rpby5jPTExNzA9c3RhdGljIGNvbnN0IHN0cnVjdCBydHdfaGNpX29wcyBydHdfc2Rpb19vcHMgPSB7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9zZGlvLmM6MTE3MTpcXHQudHhfd3JpdGUgPSBydHdfc2Rpb190eF93cml0ZSxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3NkaW8uYy0xMTcyLVxcdC50eF9raWNrX29mZiA9IHJ0d19zZGlvX3R4X2tpY2tfb2ZmLFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC90eC5jPTUwMj1zdHJ1Y3Qgc2tfYnVmZiAqXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC90eC5jOjUwMzpydHdfdHhfd3JpdGVfZGF0YV9yc3ZkX3BhZ2VfZ2V0KHN0cnVjdCBydHdfZGV2ICpydHdkZXYsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC90eC5jLTUwNC1cXHRcXHRcXHRcXHRzdHJ1Y3QgcnR3X3R4X3BrdF9pbmZvICpwa3RfaW5mbyxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdHguYy01MjUtfVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdHguYzo1MjY6RVhQT1JUX1NZTUJPTChydHdfdHhfd3JpdGVfZGF0YV9yc3ZkX3BhZ2VfZ2V0KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3R4LmMtNTI3LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdHguYz01Mjg9c3RydWN0IHNrX2J1ZmYgKlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdHguYzo1Mjk6cnR3X3R4X3dyaXRlX2RhdGFfaDJjX2dldChzdHJ1Y3QgcnR3X2RldiAqcnR3ZGV2LFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdHguYy01MzAtXFx0XFx0XFx0ICBzdHJ1Y3QgcnR3X3R4X3BrdF9pbmZvICpwa3RfaW5mbyxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdHguYy01NTEtfVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdHguYzo1NTI6RVhQT1JUX1NZTUJPTChydHdfdHhfd3JpdGVfZGF0YV9oMmNfZ2V0KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3R4LmMtNTUzLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdHguYz01NTQ9dm9pZCBydHdfdHgoc3RydWN0IHJ0d19kZXYgKnJ0d2RldixcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdHguYy01NjEtXFx0cnR3X3R4X3BrdF9pbmZvX3VwZGF0ZShydHdkZXYsIFxcdTAwMjZwa3RfaW5mbywgY29udHJvbC1cXHUwMDNlc3RhLCBza2IpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdHguYzo1NjI6XFx0cmV0ID0gcnR3X2hjaV90eF93cml0ZShydHdkZXYsIFxcdTAwMjZwa3RfaW5mbywgc2tiKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3R4LmMtNTYzLVxcdGlmIChyZXQpIHtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdHguYz02MDg9c3RhdGljIGludCBydHdfdHhxX3B1c2hfc2tiKHN0cnVjdCBydHdfZGV2ICpydHdkZXYsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3R4LmMtNjE4LVxcdHJ0d190eF9wa3RfaW5mb191cGRhdGUocnR3ZGV2LCBcXHUwMDI2cGt0X2luZm8sIHR4cS1cXHUwMDNlc3RhLCBza2IpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdHguYzo2MTk6XFx0cmV0ID0gcnR3X2hjaV90eF93cml0ZShydHdkZXYsIFxcdTAwMjZwa3RfaW5mbywgc2tiKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3R4LmMtNjIwLVxcdGlmIChyZXQpIHtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdHguaD0xMDY9c3RydWN0IHNrX2J1ZmYgKlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdHguaDoxMDc6cnR3X3R4X3dyaXRlX2RhdGFfcnN2ZF9wYWdlX2dldChzdHJ1Y3QgcnR3X2RldiAqcnR3ZGV2LFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdHguaC0xMDgtXFx0XFx0XFx0XFx0c3RydWN0IHJ0d190eF9wa3RfaW5mbyAqcGt0X2luZm8sXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3R4Lmg9MTEwPXN0cnVjdCBza19idWZmICpcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3R4Lmg6MTExOnJ0d190eF93cml0ZV9kYXRhX2gyY19nZXQoc3RydWN0IHJ0d19kZXYgKnJ0d2RldixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3R4LmgtMTEyLVxcdFxcdFxcdCAgc3RydWN0IHJ0d190eF9wa3RfaW5mbyAqcGt0X2luZm8sXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3VzYi5jPTU2MD1zdGF0aWMgdTggcnR3X3VzYl90eF9xdWV1ZV9tYXBwaW5nX3RvX3FzZWwoc3RydWN0IHNrX2J1ZmYgKnNrYilcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdXNiLmMtNTgwLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdXNiLmM6NTgxOnN0YXRpYyBpbnQgcnR3X3VzYl90eF93cml0ZShzdHJ1Y3QgcnR3X2RldiAqcnR3ZGV2LFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdXNiLmMtNTgyLVxcdFxcdFxcdCAgICBzdHJ1Y3QgcnR3X3R4X3BrdF9pbmZvICpwa3RfaW5mbyxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdXNiLmM9OTUzPXN0YXRpYyBjb25zdCBzdHJ1Y3QgcnR3X2hjaV9vcHMgcnR3X3VzYl9vcHMgPSB7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC91c2IuYzo5NTQ6XFx0LnR4X3dyaXRlID0gcnR3X3VzYl90eF93cml0ZSxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3VzYi5jLTk1NS1cXHQudHhfa2lja19vZmYgPSBydHdfdXNiX3R4X2tpY2tfb2ZmLFxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0xNFQwNjo0MjoyMC41MzM5NzEwMjVaIiwiU2VxIjoyMSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6MzM2MDgxMzA3NywiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiSGVyZSdzIG15IHRob3VnaHQgcHJvY2VzcywgYXMgcmVxdWVzdGVkOlxuXG4qKkNoZWNraW5nIHRoZSBOYXR1cmUgb2YgYHJ0d190eGAqKlxuXG5Pa2F5LCBsZXQncyB6ZXJvIGluIG9uIHRoaXMgYHJ0d190eGAgc3ltYm9sLiBUaGUga2V5IHF1ZXN0aW9uIGluIG15IG1pbmQgaXM6IGlzIHRoaXMgdGhpbmcgYSBwdWJsaWNseSBhY2Nlc3NpYmxlIGZ1bmN0aW9uLCBtZWFuaW5nIGl0J3MgYmVlbiBleHBvcnRlZCwgb3IgaXMgaXQgbHVya2luZyBzb21ld2hlcmUgd2l0aGluIGEgbGltaXRlZCBzY29wZSBhcyBhIHN0YXRpYyBpbnRlcm5hbCBjb21wb25lbnQ/IEknbGwgbmVlZCB0byBmaWd1cmUgdGhpcyBvdXQgYmVmb3JlIEkgY2FuIHJlYXNvbiBmdXJ0aGVyIGFib3V0IHRoZSBjb2RlIHRoYXQgdG91Y2hlcyBpdC4gTGV0IG1lIGp1c3QgdGFrZSBhIGxvb2suLi5cblxuXG4iLCJJbnB1dFRva2VucyI6MTQ1MTUsIk91dHB1dFRva2VucyI6MzgsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoyNCwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wOC0xNFQwNjo0MjoyMy44OTQ3ODY1OTJaIiwiU2VxIjoyMiwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjk3MTIzNTM5LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcInJ0d190eFwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJkcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJcXG5GdWxsIG91dHB1dCBpcyB0b28gbG9uZywgc2hvd2luZyA1MDAgb3V0IG9mIDg3MSBsaW5lcy5cXG5Vc2UgbW9yZSBwcmVjaXNlIGV4cHJlc3Npb24gaWYgcG9zc2libGUuXFxuXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9mdy5jPTkzPXN0YXRpYyB2b2lkIHJ0d19md19jMmhfY21kX2hhbmRsZV9leHQoc3RydWN0IHJ0d19kZXYgKnJ0d2RldixcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvZncuYy0xMDMtXFx0Y2FzZSBDMkhfQ0NYX1JQVDpcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L2Z3LmM6MTA0OlxcdFxcdHJ0d190eF9yZXBvcnRfaGFuZGxlKHJ0d2Rldiwgc2tiLCBDMkhfQ0NYX1JQVCk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9mdy5jLTEwNS1cXHRcXHRicmVhaztcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvZncuYz0zMDE9dm9pZCBydHdfZndfYzJoX2NtZF9oYW5kbGUoc3RydWN0IHJ0d19kZXYgKnJ0d2Rldiwgc3RydWN0IHNrX2J1ZmYgKnNrYilcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvZncuYy0zMTctXFx0Y2FzZSBDMkhfQ0NYX1RYX1JQVDpcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L2Z3LmM6MzE4OlxcdFxcdHJ0d190eF9yZXBvcnRfaGFuZGxlKHJ0d2Rldiwgc2tiLCBDMkhfQ0NYX1RYX1JQVCk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9mdy5jLTMxOS1cXHRcXHRicmVhaztcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvZncuYz0xMzAwPXN0YXRpYyB2b2lkIHJ0d19maWxsX3JzdmRfcGFnZV9kZXNjKHN0cnVjdCBydHdfZGV2ICpydHdkZXYsIHN0cnVjdCBza19idWZmICpza2IsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L2Z3LmMtMTMwMi17XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9mdy5jOjEzMDM6XFx0c3RydWN0IHJ0d190eF9wa3RfaW5mbyBwa3RfaW5mbyA9IHswfTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L2Z3LmMtMTMwNC1cXHRjb25zdCBzdHJ1Y3QgcnR3X2NoaXBfaW5mbyAqY2hpcCA9IHJ0d2Rldi1cXHUwMDNlY2hpcDtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvZncuYy0xMzA2LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvZncuYzoxMzA3OlxcdHJ0d190eF9yc3ZkX3BhZ2VfcGt0X2luZm9fdXBkYXRlKHJ0d2RldiwgXFx1MDAyNnBrdF9pbmZvLCBza2IsIHR5cGUpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvZncuYy0xMzA4LVxcdHBrdF9kZXNjID0gc2tiX3B1c2goc2tiLCBjaGlwLVxcdTAwM2V0eF9wa3RfZGVzY19zeik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9mdy5jLTEzMDktXFx0bWVtc2V0KHBrdF9kZXNjLCAwLCBjaGlwLVxcdTAwM2V0eF9wa3RfZGVzY19zeik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9mdy5jOjEzMTA6XFx0cnR3X3R4X2ZpbGxfdHhfZGVzYyhydHdkZXYsIFxcdTAwMjZwa3RfaW5mbywgc2tiKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L2Z3LmMtMTMxMS19XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L2hjaS5oPTk9c3RydWN0IHJ0d19oY2lfb3BzIHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L2hjaS5oLTEwLVxcdGludCAoKnR4X3dyaXRlKShzdHJ1Y3QgcnR3X2RldiAqcnR3ZGV2LFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvaGNpLmg6MTE6XFx0XFx0XFx0c3RydWN0IHJ0d190eF9wa3RfaW5mbyAqcGt0X2luZm8sXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9oY2kuaC0xMi1cXHRcXHRcXHRzdHJ1Y3Qgc2tfYnVmZiAqc2tiKTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvaGNpLmg9MzY9c3RhdGljIGlubGluZSBpbnQgcnR3X2hjaV90eF93cml0ZShzdHJ1Y3QgcnR3X2RldiAqcnR3ZGV2LFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvaGNpLmg6Mzc6XFx0XFx0XFx0XFx0ICAgc3RydWN0IHJ0d190eF9wa3RfaW5mbyAqcGt0X2luZm8sXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9oY2kuaC0zOC1cXHRcXHRcXHRcXHQgICBzdHJ1Y3Qgc2tfYnVmZiAqc2tiKVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9tYWM4MDIxMS5jPTE4PXN0YXRpYyB2b2lkIHJ0d19vcHNfdHgoc3RydWN0IGllZWU4MDIxMV9odyAqaHcsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L21hYzgwMjExLmMtMjgtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9tYWM4MDIxMS5jOjI5OlxcdHJ0d190eChydHdkZXYsIGNvbnRyb2wsIHNrYik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9tYWM4MDIxMS5jLTMwLX1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvbWFjODAyMTEuYz0zMj1zdGF0aWMgdm9pZCBydHdfb3BzX3dha2VfdHhfcXVldWUoc3RydWN0IGllZWU4MDIxMV9odyAqaHcsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L21hYzgwMjExLmMtMzUtXFx0c3RydWN0IHJ0d19kZXYgKnJ0d2RldiA9IGh3LVxcdTAwM2Vwcml2O1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvbWFjODAyMTEuYzozNjpcXHRzdHJ1Y3QgcnR3X3R4cSAqcnR3dHhxID0gKHN0cnVjdCBydHdfdHhxICopdHhxLVxcdTAwM2VkcnZfcHJpdjtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L21hYzgwMjExLmMtMzctXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L21hYzgwMjExLmMtNDctXFx0aWYgKHR4cS1cXHUwMDNlYWMgPT0gSUVFRTgwMjExX0FDX1ZPKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvbWFjODAyMTEuYzo0ODpcXHRcXHRfX3J0d190eF93b3JrKHJ0d2Rldik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9tYWM4MDIxMS5jLTQ5LVxcdGVsc2VcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvbWFjODAyMTEuYz0xNDY9c3RhdGljIGludCBydHdfb3BzX2FkZF9pbnRlcmZhY2Uoc3RydWN0IGllZWU4MDIxMV9odyAqaHcsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L21hYzgwMjExLmMtMTY0LVxcdG1lbXNldChcXHUwMDI2cnR3dmlmLVxcdTAwM2ViZmVlLCAwLCBzaXplb2Yoc3RydWN0IHJ0d19iZmVlKSk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9tYWM4MDIxMS5jOjE2NTpcXHRydHdfdHhxX2luaXQocnR3ZGV2LCB2aWYtXFx1MDAzZXR4cSk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9tYWM4MDIxMS5jLTE2Ni1cXHRJTklUX0xJU1RfSEVBRChcXHUwMDI2cnR3dmlmLVxcdTAwM2Vyc3ZkX3BhZ2VfbGlzdCk7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L21hYzgwMjExLmM9MjI4PXN0YXRpYyB2b2lkIHJ0d19vcHNfcmVtb3ZlX2ludGVyZmFjZShzdHJ1Y3QgaWVlZTgwMjExX2h3ICpodyxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvbWFjODAyMTEuYy0yNDEtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9tYWM4MDIxMS5jOjI0MjpcXHRydHdfdHhxX2NsZWFudXAocnR3ZGV2LCB2aWYtXFx1MDAzZXR4cSk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9tYWM4MDIxMS5jLTI0My1cXHRydHdfcmVtb3ZlX3JzdmRfcGFnZShydHdkZXYsIHJ0d3ZpZik7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L21hYzgwMjExLmM9NjM2PXN0YXRpYyBpbnQgcnR3X29wc19hbXBkdV9hY3Rpb24oc3RydWN0IGllZWU4MDIxMV9odyAqaHcsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L21hYzgwMjExLmMtNjQyLVxcdHN0cnVjdCBpZWVlODAyMTFfdHhxICp0eHEgPSBzdGEtXFx1MDAzZXR4cVt0aWRdO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvbWFjODAyMTEuYzo2NDM6XFx0c3RydWN0IHJ0d190eHEgKnJ0d3R4cSA9IChzdHJ1Y3QgcnR3X3R4cSAqKXR4cS1cXHUwMDNlZHJ2X3ByaXY7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9tYWM4MDIxMS5jLTY0NC1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvbWFpbi5jPTM0NT1pbnQgcnR3X3N0YV9hZGQoc3RydWN0IHJ0d19kZXYgKnJ0d2Rldiwgc3RydWN0IGllZWU4MDIxMV9zdGEgKnN0YSxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvbWFpbi5jLTM2NS1cXHRmb3IgKGkgPSAwOyBpIFxcdTAwM2MgQVJSQVlfU0laRShzdGEtXFx1MDAzZXR4cSk7IGkrKylcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L21haW4uYzozNjY6XFx0XFx0cnR3X3R4cV9pbml0KHJ0d2Rldiwgc3RhLVxcdTAwM2V0eHFbaV0pO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvbWFpbi5jLTM2Ny1cXHRJTklUX1dPUksoXFx1MDAyNnNpLVxcdTAwM2VyY193b3JrLCBydHdfc3RhX3JjX3dvcmspO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9tYWluLmM9MzgwPXZvaWQgcnR3X3N0YV9yZW1vdmUoc3RydWN0IHJ0d19kZXYgKnJ0d2Rldiwgc3RydWN0IGllZWU4MDIxMV9zdGEgKnN0YSxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvbWFpbi5jLTM5NC1cXHRmb3IgKGkgPSAwOyBpIFxcdTAwM2MgQVJSQVlfU0laRShzdGEtXFx1MDAzZXR4cSk7IGkrKylcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L21haW4uYzozOTU6XFx0XFx0cnR3X3R4cV9jbGVhbnVwKHJ0d2Rldiwgc3RhLVxcdTAwM2V0eHFbaV0pO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvbWFpbi5jLTM5Ni1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvbWFpbi5jPTYyMj1zdGF0aWMgdm9pZCBydHdfcmVzZXRfdmlmX2l0ZXIodm9pZCAqZGF0YSwgdTggKm1hYywgc3RydWN0IGllZWU4MDIxMV92aWYgKnZpZilcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvbWFpbi5jLTYyOC1cXHRydHdfdmlmX2Fzc29jX2NoYW5nZWQocnR3dmlmLCBOVUxMKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L21haW4uYzo2Mjk6XFx0cnR3X3R4cV9jbGVhbnVwKHJ0d2RldiwgdmlmLVxcdTAwM2V0eHEpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvbWFpbi5jLTYzMC1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvbWFpbi5jPTY3ND1zdGF0aWMgdm9pZCBydHdfZndfcmVjb3Zlcnlfd29yayhzdHJ1Y3Qgd29ya19zdHJ1Y3QgKndvcmspXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L21haW4uYy02ODUtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9tYWluLmM6Njg2OnN0cnVjdCBydHdfdHhxX2JhX2l0ZXJfZGF0YSB7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9tYWluLmMtNjg3LX07XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9tYWluLmMtNjg4LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvbWFpbi5jOjY4OTpzdGF0aWMgdm9pZCBydHdfdHhxX2JhX2l0ZXIodm9pZCAqZGF0YSwgc3RydWN0IGllZWU4MDIxMV9zdGEgKnN0YSlcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L21haW4uYy02OTAte1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9tYWluLmMtNzAwLVxcdFxcdFxcdHN0cnVjdCBpZWVlODAyMTFfdHhxICp0eHE7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9tYWluLmM6NzAxOlxcdFxcdFxcdHN0cnVjdCBydHdfdHhxICpydHd0eHE7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9tYWluLmMtNzAyLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvbWFpbi5jLTcwMy1cXHRcXHRcXHR0eHEgPSBzdGEtXFx1MDAzZXR4cVt0aWRdO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvbWFpbi5jOjcwNDpcXHRcXHRcXHRydHd0eHEgPSAoc3RydWN0IHJ0d190eHEgKil0eHEtXFx1MDAzZWRydl9wcml2O1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvbWFpbi5jLTcwNS1cXHRcXHRcXHRzZXRfYml0KFJUV19UWFFfQkxPQ0tfQkEsIFxcdTAwMjZydHd0eHEtXFx1MDAzZWZsYWdzKTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvbWFpbi5jLTcxMS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L21haW4uYzo3MTI6c3RhdGljIHZvaWQgcnR3X3R4cV9iYV93b3JrKHN0cnVjdCB3b3JrX3N0cnVjdCAqd29yaylcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L21haW4uYy03MTMte1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvbWFpbi5jLTcxNC1cXHRzdHJ1Y3QgcnR3X2RldiAqcnR3ZGV2ID0gY29udGFpbmVyX29mKHdvcmssIHN0cnVjdCBydHdfZGV2LCBiYV93b3JrKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L21haW4uYzo3MTU6XFx0c3RydWN0IHJ0d190eHFfYmFfaXRlcl9kYXRhIGRhdGE7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9tYWluLmMtNzE2LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvbWFpbi5jOjcxNzpcXHRydHdfaXRlcmF0ZV9zdGFzX2F0b21pYyhydHdkZXYsIHJ0d190eHFfYmFfaXRlciwgXFx1MDAyNmRhdGEpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvbWFpbi5jLTcxOC19XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L21haW4uYz0yMTM4PWludCBydHdfY29yZV9pbml0KHN0cnVjdCBydHdfZGV2ICpydHdkZXYpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L21haW4uYy0yMTQ3LVxcdHRpbWVyX3NldHVwKFxcdTAwMjZydHdkZXYtXFx1MDAzZXR4X3JlcG9ydC5wdXJnZV90aW1lcixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L21haW4uYzoyMTQ4OlxcdFxcdCAgICBydHdfdHhfcmVwb3J0X3B1cmdlX3RpbWVyLCAwKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L21haW4uYzoyMTQ5OlxcdHJ0d2Rldi1cXHUwMDNldHhfd3EgPSBhbGxvY193b3JrcXVldWUoXFxcInJ0d190eF93cVxcXCIsIFdRX1VOQk9VTkQgfCBXUV9ISUdIUFJJLCAwKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L21haW4uYy0yMTUwLVxcdGlmICghcnR3ZGV2LVxcdTAwM2V0eF93cSkge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvbWFpbi5jOjIxNTE6XFx0XFx0cnR3X3dhcm4ocnR3ZGV2LCBcXFwiYWxsb2Nfd29ya3F1ZXVlIHJ0d190eF93cSBmYWlsZWRcXFxcblxcXCIpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvbWFpbi5jLTIxNTItXFx0XFx0cmV0dXJuIC1FTk9NRU07XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L21haW4uYy0yMTY0LVxcdElOSVRfREVMQVlFRF9XT1JLKFxcdTAwMjZjb2V4LVxcdTAwM2V3bF9jY2tsb2NrX3dvcmssIHJ0d19jb2V4X3dsX2Nja2xvY2tfd29yayk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9tYWluLmM6MjE2NTpcXHRJTklUX1dPUksoXFx1MDAyNnJ0d2Rldi1cXHUwMDNldHhfd29yaywgcnR3X3R4X3dvcmspO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvbWFpbi5jLTIxNjYtXFx0SU5JVF9XT1JLKFxcdTAwMjZydHdkZXYtXFx1MDAzZWMyaF93b3JrLCBydHdfYzJoX3dvcmspO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9tYWluLmMtMjE2OS1cXHRJTklUX1dPUksoXFx1MDAyNnJ0d2Rldi1cXHUwMDNldXBkYXRlX2JlYWNvbl93b3JrLCBydHdfZndfdXBkYXRlX2JlYWNvbl93b3JrKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L21haW4uYzoyMTcwOlxcdElOSVRfV09SSyhcXHUwMDI2cnR3ZGV2LVxcdTAwM2ViYV93b3JrLCBydHdfdHhxX2JhX3dvcmspO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvbWFpbi5jLTIxNzEtXFx0c2tiX3F1ZXVlX2hlYWRfaW5pdChcXHUwMDI2cnR3ZGV2LVxcdTAwM2VjMmhfcXVldWUpO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9tYWluLmM9MjI1NT1pbnQgcnR3X3JlZ2lzdGVyX2h3KHN0cnVjdCBydHdfZGV2ICpydHdkZXYsIHN0cnVjdCBpZWVlODAyMTFfaHcgKmh3KVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9tYWluLmMtMjI2Ny1cXHRody1cXHUwMDNlcXVldWVzID0gSUVFRTgwMjExX05VTV9BQ1M7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9tYWluLmM6MjI2ODpcXHRody1cXHUwMDNldHhxX2RhdGFfc2l6ZSA9IHNpemVvZihzdHJ1Y3QgcnR3X3R4cSk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9tYWluLmMtMjI2OS1cXHRody1cXHUwMDNlc3RhX2RhdGFfc2l6ZSA9IHNpemVvZihzdHJ1Y3QgcnR3X3N0YV9pbmZvKTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvbWFpbi5oPTE5MT1lbnVtIHJ0d19jaGlwX3R5cGUge1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9tYWluLmgtMjAxLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvbWFpbi5oOjIwMjplbnVtIHJ0d190eF9xdWV1ZV90eXBlIHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L21haW4uaC0yMDMtXFx0LyogdGhlIG9yZGVyIG9mIEFDIHF1ZXVlcyBtYXR0ZXJzICovXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L21haW4uaD0zNDQ9ZW51bSBydHdfcmVndWxhdG9yeV9kb21haW5zIHtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvbWFpbi5oLTM2MS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L21haW4uaDozNjI6ZW51bSBydHdfdHhxX2ZsYWdzIHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L21haW4uaC0zNjMtXFx0UlRXX1RYUV9BTVBEVSxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvbWFpbi5oPTUyMD1zdHJ1Y3QgcnR3XzVnX3R4cHdyX2lkeCB7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L21haW4uaC01MzItXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9tYWluLmg6NTMzOnN0cnVjdCBydHdfdHhwd3JfaWR4IHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L21haW4uaC01MzQtXFx0c3RydWN0IHJ0d18yZ190eHB3cl9pZHggcHdyX2lkeF8yZztcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvbWFpbi5oPTU5OT1zdHJ1Y3QgcnR3X3ZpZl9wb3J0IHtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvbWFpbi5oLTYwNi1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L21haW4uaDo2MDc6c3RydWN0IHJ0d190eF9wa3RfaW5mbyB7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9tYWluLmgtNjA4LVxcdHUzMiB0eF9wa3Rfc2l6ZTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvbWFpbi5oPTczNz1zdHJ1Y3QgcnR3X3NlY19kZXNjIHtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvbWFpbi5oLTc0NS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L21haW4uaDo3NDY6c3RydWN0IHJ0d190eF9yZXBvcnQge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvbWFpbi5oLTc0Ny1cXHQvKiBwcm90ZWN0IHRoZSB0eCByZXBvcnQgcXVldWUgKi9cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvbWFpbi5oPTc1ND1zdHJ1Y3QgcnR3X3JhX3JlcG9ydCB7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L21haW4uaC03NTktXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9tYWluLmg6NzYwOnN0cnVjdCBydHdfdHhxIHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L21haW4uaC03NjEtXFx0c3RydWN0IGxpc3RfaGVhZCBsaXN0O1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9tYWluLmg9ODYyPXN0cnVjdCBydHdfY2hpcF9vcHMge1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9tYWluLmgtOTEyLVxcdHZvaWQgKCpmaWxsX3R4ZGVzY19jaGVja3N1bSkoc3RydWN0IHJ0d19kZXYgKnJ0d2RldixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L21haW4uaDo5MTM6XFx0XFx0XFx0XFx0ICAgICBzdHJ1Y3QgcnR3X3R4X3BrdF9pbmZvICpwa3RfaW5mbyxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L21haW4uaC05MTQtXFx0XFx0XFx0XFx0ICAgICB1OCAqdHhkZXNjKTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvbWFpbi5oPTE3OTI9c3RydWN0IHJ0d19lZnVzZSB7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L21haW4uaC0xODQxLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvbWFpbi5oOjE4NDI6XFx0c3RydWN0IHJ0d190eHB3cl9pZHggdHhwd3JfaWR4X3RhYmxlWzRdO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvbWFpbi5oLTE4NDMtfTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvbWFpbi5oPTIwNjA9c3RydWN0IHJ0d19kZXYge1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9tYWluLmgtMjEwMi1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L21haW4uaDoyMTAzOlxcdHN0cnVjdCBydHdfdHhfcmVwb3J0IHR4X3JlcG9ydDtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L21haW4uaC0yMTA0LVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9tYWluLmg9MjE0Nj1zdGF0aWMgaW5saW5lIGJvb2wgcnR3X2lzX2Fzc29jKHN0cnVjdCBydHdfZGV2ICpydHdkZXYpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L21haW4uaC0yMTUwLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvbWFpbi5oOjIxNTE6c3RhdGljIGlubGluZSBzdHJ1Y3QgaWVlZTgwMjExX3R4cSAqcnR3dHhxX3RvX3R4cShzdHJ1Y3QgcnR3X3R4cSAqcnR3dHhxKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvbWFpbi5oLTIxNTIte1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9tYWluLmg9MjI0Nz12b2lkIHJ0d192aWZfcG9ydF9jb25maWcoc3RydWN0IHJ0d19kZXYgKnJ0d2Rldiwgc3RydWN0IHJ0d192aWYgKnJ0d3ZpZixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L21haW4uaC0yMjQ4LVxcdFxcdFxcdCB1MzIgY29uZmlnKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L21haW4uaDoyMjQ5OnZvaWQgcnR3X3R4X3JlcG9ydF9wdXJnZV90aW1lcihzdHJ1Y3QgdGltZXJfbGlzdCAqdCk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9tYWluLmgtMjI1MC12b2lkIHJ0d191cGRhdGVfc3RhX2luZm8oc3RydWN0IHJ0d19kZXYgKnJ0d2Rldiwgc3RydWN0IHJ0d19zdGFfaW5mbyAqc2ksXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3BjaS5jPTM1PXN0YXRpYyB1OCBydHdfcGNpX2dldF90eF9xc2VsKHN0cnVjdCBza19idWZmICpza2IsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9wY2kuYzozNjpcXHRcXHRcXHQgICAgICBlbnVtIHJ0d190eF9xdWV1ZV90eXBlIHF1ZXVlKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcGNpLmMtMzcte1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9wY2kuYz01Mzg9c3RhdGljIHZvaWQgcnR3X3BjaV9kbWFfcmVsZWFzZShzdHJ1Y3QgcnR3X2RldiAqcnR3ZGV2LCBzdHJ1Y3QgcnR3X3BjaSAqcnR3cGNpKVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9wY2kuYy01NDAtXFx0c3RydWN0IHJ0d19wY2lfdHhfcmluZyAqdHhfcmluZztcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3BjaS5jOjU0MTpcXHRlbnVtIHJ0d190eF9xdWV1ZV90eXBlIHF1ZXVlO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcGNpLmMtNTQyLVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9wY2kuYz02MDM9c3RhdGljIHZvaWQgcnR3X3BjaV9kZWVwX3BzX2VudGVyKHN0cnVjdCBydHdfZGV2ICpydHdkZXYpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3BjaS5jLTYwNi1cXHRzdHJ1Y3QgcnR3X3BjaV90eF9yaW5nICp0eF9yaW5nO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcGNpLmM6NjA3OlxcdGVudW0gcnR3X3R4X3F1ZXVlX3R5cGUgcXVldWU7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9wY2kuYy02MDgtXFx0Ym9vbCB0eF9lbXB0eSA9IHRydWU7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3BjaS5jPTc1ND1zdGF0aWMgdm9pZCBydHdfcGNpX2ZsdXNoX3F1ZXVlcyhzdHJ1Y3QgcnR3X2RldiAqcnR3ZGV2LCB1MzIgcXVldWVzLCBib29sIGRyb3ApXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3BjaS5jLTc2Ni1cXHRcXHRcXHRpZiAocXVldWVzIFxcdTAwMjYgQklUKGkpKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcGNpLmM6NzY3OlxcdFxcdFxcdFxcdHBjaV9xdWV1ZXMgfD0gQklUKHJ0d190eF9hY190b19od3EoaSkpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcGNpLmMtNzY4LVxcdH1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcGNpLmM9NzczPXN0YXRpYyB2b2lkIHJ0d19wY2lfdHhfa2lja19vZmZfcXVldWUoc3RydWN0IHJ0d19kZXYgKnJ0d2RldixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3BjaS5jOjc3NDpcXHRcXHRcXHRcXHQgICAgICBlbnVtIHJ0d190eF9xdWV1ZV90eXBlIHF1ZXVlKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcGNpLmMtNzc1LXtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcGNpLmM9NzkwPXN0YXRpYyB2b2lkIHJ0d19wY2lfdHhfa2lja19vZmYoc3RydWN0IHJ0d19kZXYgKnJ0d2RldilcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcGNpLmMtNzkyLVxcdHN0cnVjdCBydHdfcGNpICpydHdwY2kgPSAoc3RydWN0IHJ0d19wY2kgKilydHdkZXYtXFx1MDAzZXByaXY7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9wY2kuYzo3OTM6XFx0ZW51bSBydHdfdHhfcXVldWVfdHlwZSBxdWV1ZTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3BjaS5jLTc5NC1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcGNpLmM9ODAwPXN0YXRpYyBpbnQgcnR3X3BjaV90eF93cml0ZV9kYXRhKHN0cnVjdCBydHdfZGV2ICpydHdkZXYsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9wY2kuYzo4MDE6XFx0XFx0XFx0XFx0IHN0cnVjdCBydHdfdHhfcGt0X2luZm8gKnBrdF9pbmZvLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcGNpLmMtODAyLVxcdFxcdFxcdFxcdCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcGNpLmM6ODAzOlxcdFxcdFxcdFxcdCBlbnVtIHJ0d190eF9xdWV1ZV90eXBlIHF1ZXVlKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcGNpLmMtODA0LXtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcGNpLmMtODI4LVxcdHBrdF9pbmZvLVxcdTAwM2Vxc2VsID0gcnR3X3BjaV9nZXRfdHhfcXNlbChza2IsIHF1ZXVlKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3BjaS5jOjgyOTpcXHRydHdfdHhfZmlsbF90eF9kZXNjKHJ0d2RldiwgcGt0X2luZm8sIHNrYik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9wY2kuYy04MzAtXFx0ZG1hID0gZG1hX21hcF9zaW5nbGUoXFx1MDAyNnJ0d3BjaS1cXHUwMDNlcGRldi1cXHUwMDNlZGV2LCBza2ItXFx1MDAzZWRhdGEsIHNrYi1cXHUwMDNlbGVuLFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9wY2kuYz04NzA9c3RhdGljIGludCBydHdfcGNpX3dyaXRlX2RhdGFfcnN2ZF9wYWdlKHN0cnVjdCBydHdfZGV2ICpydHdkZXYsIHU4ICpidWYsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3BjaS5jLTg3My1cXHRzdHJ1Y3Qgc2tfYnVmZiAqc2tiO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcGNpLmM6ODc0OlxcdHN0cnVjdCBydHdfdHhfcGt0X2luZm8gcGt0X2luZm8gPSB7MH07XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9wY2kuYy04NzUtXFx0dTggcmVnX2Jjbl93b3JrO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9wY2kuYy04NzctXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9wY2kuYzo4Nzg6XFx0c2tiID0gcnR3X3R4X3dyaXRlX2RhdGFfcnN2ZF9wYWdlX2dldChydHdkZXYsIFxcdTAwMjZwa3RfaW5mbywgYnVmLCBzaXplKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3BjaS5jLTg3OS1cXHRpZiAoIXNrYilcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcGNpLmM9ODk2PXN0YXRpYyBpbnQgcnR3X3BjaV93cml0ZV9kYXRhX2gyYyhzdHJ1Y3QgcnR3X2RldiAqcnR3ZGV2LCB1OCAqYnVmLCB1MzIgc2l6ZSlcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcGNpLmMtODk4LVxcdHN0cnVjdCBza19idWZmICpza2I7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9wY2kuYzo4OTk6XFx0c3RydWN0IHJ0d190eF9wa3RfaW5mbyBwa3RfaW5mbyA9IHswfTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3BjaS5jLTkwMC1cXHRpbnQgcmV0O1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcGNpLmMtOTAxLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcGNpLmM6OTAyOlxcdHNrYiA9IHJ0d190eF93cml0ZV9kYXRhX2gyY19nZXQocnR3ZGV2LCBcXHUwMDI2cGt0X2luZm8sIGJ1Ziwgc2l6ZSk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9wY2kuYy05MDMtXFx0aWYgKCFza2IpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3BjaS5jPTkxNz1zdGF0aWMgaW50IHJ0d19wY2lfdHhfd3JpdGUoc3RydWN0IHJ0d19kZXYgKnJ0d2RldixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3BjaS5jOjkxODpcXHRcXHRcXHQgICAgc3RydWN0IHJ0d190eF9wa3RfaW5mbyAqcGt0X2luZm8sXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9wY2kuYy05MTktXFx0XFx0XFx0ICAgIHN0cnVjdCBza19idWZmICpza2IpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9wY2kuYy05MjAte1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcGNpLmM6OTIxOlxcdGVudW0gcnR3X3R4X3F1ZXVlX3R5cGUgcXVldWUgPSBydHdfdHhfcXVldWVfbWFwcGluZyhza2IpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcGNpLmMtOTIyLVxcdHN0cnVjdCBydHdfcGNpICpydHdwY2kgPSAoc3RydWN0IHJ0d19wY2kgKilydHdkZXYtXFx1MDAzZXByaXY7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3BjaS5jPTk0MT1zdGF0aWMgdm9pZCBydHdfcGNpX3R4X2lzcihzdHJ1Y3QgcnR3X2RldiAqcnR3ZGV2LCBzdHJ1Y3QgcnR3X3BjaSAqcnR3cGNpLFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9wY2kuYy05OTgtXFx0XFx0aWYgKGluZm8tXFx1MDAzZWZsYWdzIFxcdTAwMjYgSUVFRTgwMjExX1RYX0NUTF9SRVFfVFhfU1RBVFVTKSB7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9wY2kuYzo5OTk6XFx0XFx0XFx0cnR3X3R4X3JlcG9ydF9lbnF1ZXVlKHJ0d2Rldiwgc2tiLCB0eF9kYXRhLVxcdTAwM2Vzbik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9wY2kuYy0xMDAwLVxcdFxcdFxcdGNvbnRpbnVlO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9waHkuYz0xNzYwPXZvaWQgcnR3X3BhcnNlX3RibF90eHB3cl9sbXQoc3RydWN0IHJ0d19kZXYgKnJ0d2RldixcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcGh5LmMtMTc2Mi17XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9waHkuYzoxNzYzOlxcdGNvbnN0IHN0cnVjdCBydHdfdHhwd3JfbG10X2NmZ19wYWlyICpwID0gdGJsLVxcdTAwM2VkYXRhO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcGh5LmM6MTc2NDpcXHRjb25zdCBzdHJ1Y3QgcnR3X3R4cHdyX2xtdF9jZmdfcGFpciAqZW5kID0gcCArIHRibC1cXHUwMDNlc2l6ZTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3BoeS5jLTE3NjUtXFx0dTMyIHJlZ2RfY2ZnX2ZsYWcgPSAwO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9waHkuYz0yMjM5PXZvaWQgcnR3X2dldF90eF9wb3dlcl9wYXJhbXMoc3RydWN0IHJ0d19kZXYgKnJ0d2RldiwgdTggcGF0aCwgdTggcmF0ZSwgdTggYncsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3BoeS5jLTIyNDMtXFx0c3RydWN0IHJ0d19kbV9pbmZvICpkbV9pbmZvID0gXFx1MDAyNnJ0d2Rldi1cXHUwMDNlZG1faW5mbztcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3BoeS5jOjIyNDQ6XFx0c3RydWN0IHJ0d190eHB3cl9pZHggKnB3cl9pZHg7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9waHkuYy0yMjQ1LVxcdHU4IGdyb3VwLCBiYW5kO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9waHkuaD03MD12b2lkIHJ0d19waHlfdHhfcGF0aF9kaXZlcnNpdHkoc3RydWN0IHJ0d19kZXYgKnJ0d2Rldik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9waHkuaC03MS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3BoeS5oOjcyOnN0cnVjdCBydHdfdHhwd3JfbG10X2NmZ19wYWlyIHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3BoeS5oLTczLVxcdHU4IHJlZ2Q7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg3MDNiX3RhYmxlcy5jPTE3PVJUV19ERUNMX1RBQkxFX0JCX1BHKHJ0dzg3MDNiX2JiX3BnKTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODcwM2JfdGFibGVzLmMtMjMtICovXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4NzAzYl90YWJsZXMuYzoyNDpzdGF0aWMgY29uc3Qgc3RydWN0IHJ0d190eHB3cl9sbXRfY2ZnX3BhaXIgcnR3ODcwM2JfdHhwd3JfbG10W10gPSB7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4NzAzYl90YWJsZXMuYy0yNS1cXHR7MCwgMCwgMCwgMCwgMSwgMzB9LFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4NzIzZF90YWJsZS5jPTkzOT1SVFdfREVDTF9UQUJMRV9SRl9SQURJTyhydHc4NzIzZF9yZl9hLCBBKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg3MjNkX3RhYmxlLmMtOTQwLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODcyM2RfdGFibGUuYzo5NDE6c3RhdGljIGNvbnN0IHN0cnVjdCBydHdfdHhwd3JfbG10X2NmZ19wYWlyIHJ0dzg3MjNkX3R4cHdyX2xtdFtdID0ge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODcyM2RfdGFibGUuYy05NDItXFx0ezAsIDAsIDAsIDAsIDEsIDMwLCB9LFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4NzIzeC5jPTEwMT1zdGF0aWMgdm9pZCBfX3J0dzg3MjN4X2RlYnVnX3R4cHdyX2xpbWl0KHN0cnVjdCBydHdfZGV2ICpydHdkZXYsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4NzIzeC5jOjEwMjpcXHRcXHRcXHRcXHRcXHQgc3RydWN0IHJ0d190eHB3cl9pZHggKnRhYmxlLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODcyM3guYy0xMDMtXFx0XFx0XFx0XFx0XFx0IGludCB0eF9wYXRoX2NvdW50KVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4NzIzeC5jPTY4Mj12b2lkIF9fcnR3ODcyM3hfZmlsbF90eGRlc2NfY2hlY2tzdW0oc3RydWN0IHJ0d19kZXYgKnJ0d2RldixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg3MjN4LmM6NjgzOlxcdFxcdFxcdFxcdCAgICAgc3RydWN0IHJ0d190eF9wa3RfaW5mbyAqcGt0X2luZm8sXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4NzIzeC5jLTY4NC1cXHRcXHRcXHRcXHQgICAgIHU4ICp0eGRlc2MpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg3MjN4LmMtNjg4LVxcdF9fbGUxNiAqZGF0YSA9IChfX2xlMTYgKikodHhkZXNjKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg3MjN4LmM6Njg5OlxcdHN0cnVjdCBydHdfdHhfZGVzYyAqdHhfZGVzYyA9IChzdHJ1Y3QgcnR3X3R4X2Rlc2MgKil0eGRlc2M7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4NzIzeC5jLTY5MC1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODcyM3guaD02Nj1zdHJ1Y3QgcnR3ODcyM3hfZWZ1c2Uge1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4NzIzeC5oLTcyLVxcdC8qIHBvd2VyIGluZGV4IGZvciBmb3VyIFJGIHBhdGhzICovXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4NzIzeC5oOjczOlxcdHN0cnVjdCBydHdfdHhwd3JfaWR4IHR4cHdyX2lkeF90YWJsZVs0XTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg3MjN4LmgtNzQtXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg3MjN4Lmg9MTIyPXN0cnVjdCBydHc4NzIzeF9jb21tb24ge1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4NzIzeC5oLTE1NS1cXHR2b2lkICgqZmlsbF90eGRlc2NfY2hlY2tzdW0pKHN0cnVjdCBydHdfZGV2ICpydHdkZXYsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4NzIzeC5oOjE1NjpcXHRcXHRcXHRcXHQgICAgIHN0cnVjdCBydHdfdHhfcGt0X2luZm8gKnBrdF9pbmZvLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODcyM3guaC0xNTctXFx0XFx0XFx0XFx0ICAgICB1OCAqdHhkZXNjKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg3MjN4LmgtMTU4LVxcdHZvaWQgKCpkZWJ1Z190eHB3cl9saW1pdCkoc3RydWN0IHJ0d19kZXYgKnJ0d2RldixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg3MjN4Lmg6MTU5OlxcdFxcdFxcdFxcdCAgc3RydWN0IHJ0d190eHB3cl9pZHggKnRhYmxlLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODcyM3guaC0xNjAtXFx0XFx0XFx0XFx0ICBpbnQgdHhfcGF0aF9jb3VudCk7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg3MjN4Lmg9MzY1PXZvaWQgcnR3ODcyM3hfZGVidWdfdHhwd3JfbGltaXQoc3RydWN0IHJ0d19kZXYgKnJ0d2RldixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg3MjN4Lmg6MzY2OlxcdFxcdFxcdFxcdHN0cnVjdCBydHdfdHhwd3JfaWR4ICp0YWJsZSxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg3MjN4LmgtMzY3LVxcdFxcdFxcdFxcdGludCB0eF9wYXRoX2NvdW50KVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4NzIzeC5oPTQ1MT12b2lkIHJ0dzg3MjN4X2ZpbGxfdHhkZXNjX2NoZWNrc3VtKHN0cnVjdCBydHdfZGV2ICpydHdkZXYsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4NzIzeC5oOjQ1MjpcXHRcXHRcXHRcXHQgICBzdHJ1Y3QgcnR3X3R4X3BrdF9pbmZvICpwa3RfaW5mbyxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg3MjN4LmgtNDUzLVxcdFxcdFxcdFxcdCAgIHU4ICp0eGRlc2MpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MTJhLmM9ODg3PXN0YXRpYyB2b2lkIHJ0dzg4MTJhX2ZpbGxfdHhkZXNjX2NoZWNrc3VtKHN0cnVjdCBydHdfZGV2ICpydHdkZXYsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODEyYS5jOjg4ODpcXHRcXHRcXHRcXHRcXHQgIHN0cnVjdCBydHdfdHhfcGt0X2luZm8gKnBrdF9pbmZvLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgxMmEuYy04ODktXFx0XFx0XFx0XFx0XFx0ICB1OCAqdHhkZXNjKVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODEyYV90YWJsZS5jPTE2ODg9UlRXX0RFQ0xfVEFCTEVfUkZfUkFESU8ocnR3ODgxMmFfcmZfYiwgQik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODEyYV90YWJsZS5jLTE2ODktXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODEyYV90YWJsZS5jOjE2OTA6c3RhdGljIGNvbnN0IHN0cnVjdCBydHdfdHhwd3JfbG10X2NmZ19wYWlyIHJ0dzg4MTJhX3R4cHdyX2xtdFtdID0ge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgxMmFfdGFibGUuYy0xNjkxLVxcdHsgMCwgMCwgMCwgMCwgMSwgMzYsIH0sXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MTRhLmM9MjA0Mj1zdGF0aWMgdm9pZCBydHc4ODE0YV9maWxsX3R4ZGVzY19jaGVja3N1bShzdHJ1Y3QgcnR3X2RldiAqcnR3ZGV2LFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgxNGEuYzoyMDQzOlxcdFxcdFxcdFxcdFxcdCAgc3RydWN0IHJ0d190eF9wa3RfaW5mbyAqcGt0X2luZm8sXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODE0YS5jLTIwNDQtXFx0XFx0XFx0XFx0XFx0ICB1OCAqdHhkZXNjKVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODE0YS5oPTIzPXN0cnVjdCBydHc4ODE0YV9lZnVzZSB7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MTRhLmgtMjktXFx0LyogcG93ZXIgaW5kZXggZm9yIGZvdXIgUkYgcGF0aHMgKi9cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MTRhLmg6MzA6XFx0c3RydWN0IHJ0d190eHB3cl9pZHggdHhwd3JfaWR4X3RhYmxlWzRdO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgxNGEuaC0zMS1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgxNGFfdGFibGUuYz0xNDU4Mz1SVFdfREVDTF9UQUJMRV9SRl9SQURJTyhydHc4ODE0YV9yZl9kLCBEKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MTRhX3RhYmxlLmMtMTQ1ODQtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODE0YV90YWJsZS5jOjE0NTg1OnN0YXRpYyBjb25zdCBzdHJ1Y3QgcnR3X3R4cHdyX2xtdF9jZmdfcGFpciBydHc4ODE0YV90eHB3cl9sbXRbXSA9IHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MTRhX3RhYmxlLmMtMTQ1ODYtXFx0eyAwLCAwLCAwLCAwLCAxLCAzNiwgfSxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgxNGFfdGFibGUuYz0xNTU2MD1SVFdfREVDTF9UQUJMRV9UWFBXUl9MTVQocnR3ODgxNGFfdHhwd3JfbG10KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MTRhX3RhYmxlLmMtMTU1NjEtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODE0YV90YWJsZS5jOjE1NTYyOnN0YXRpYyBjb25zdCBzdHJ1Y3QgcnR3X3R4cHdyX2xtdF9jZmdfcGFpciBydHc4ODE0YV90eHB3cl9sbXRfdHlwZTBbXSA9IHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MTRhX3RhYmxlLmMtMTU1NjMtXFx0eyAwLCAwLCAwLCAwLCAxLCAzMiwgfSxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgxNGFfdGFibGUuYz0xNjUzNz1SVFdfREVDTF9UQUJMRV9UWFBXUl9MTVQocnR3ODgxNGFfdHhwd3JfbG10X3R5cGUwKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MTRhX3RhYmxlLmMtMTY1MzgtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODE0YV90YWJsZS5jOjE2NTM5OnN0YXRpYyBjb25zdCBzdHJ1Y3QgcnR3X3R4cHdyX2xtdF9jZmdfcGFpciBydHc4ODE0YV90eHB3cl9sbXRfdHlwZTFbXSA9IHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MTRhX3RhYmxlLmMtMTY1NDAtXFx0XFx0eyAwLCAwLCAwLCAwLCAxLCAzNCwgfSxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgxNGFfdGFibGUuYz0xNzUxND1SVFdfREVDTF9UQUJMRV9UWFBXUl9MTVQocnR3ODgxNGFfdHhwd3JfbG10X3R5cGUxKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MTRhX3RhYmxlLmMtMTc1MTUtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODE0YV90YWJsZS5jOjE3NTE2OnN0YXRpYyBjb25zdCBzdHJ1Y3QgcnR3X3R4cHdyX2xtdF9jZmdfcGFpciBydHc4ODE0YV90eHB3cl9sbXRfdHlwZTJbXSA9IHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MTRhX3RhYmxlLmMtMTc1MTctXFx0eyAwLCAwLCAwLCAwLCAxLCA0MiwgfSxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgxNGFfdGFibGUuYz0xODQ5MT1SVFdfREVDTF9UQUJMRV9UWFBXUl9MTVQocnR3ODgxNGFfdHhwd3JfbG10X3R5cGUyKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MTRhX3RhYmxlLmMtMTg0OTItXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODE0YV90YWJsZS5jOjE4NDkzOnN0YXRpYyBjb25zdCBzdHJ1Y3QgcnR3X3R4cHdyX2xtdF9jZmdfcGFpciBydHc4ODE0YV90eHB3cl9sbXRfdHlwZTNbXSA9IHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MTRhX3RhYmxlLmMtMTg0OTQtXFx0eyAwLCAwLCAwLCAwLCAxLCA0NiwgfSxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgxNGFfdGFibGUuYz0xOTQ2OD1SVFdfREVDTF9UQUJMRV9UWFBXUl9MTVQocnR3ODgxNGFfdHhwd3JfbG10X3R5cGUzKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MTRhX3RhYmxlLmMtMTk0NjktXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODE0YV90YWJsZS5jOjE5NDcwOnN0YXRpYyBjb25zdCBzdHJ1Y3QgcnR3X3R4cHdyX2xtdF9jZmdfcGFpciBydHc4ODE0YV90eHB3cl9sbXRfdHlwZTVbXSA9IHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MTRhX3RhYmxlLmMtMTk0NzEtXFx0eyAwLCAwLCAwLCAwLCAxLCA0NiwgfSxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgxNGFfdGFibGUuYz0yMDQ0NT1SVFdfREVDTF9UQUJMRV9UWFBXUl9MTVQocnR3ODgxNGFfdHhwd3JfbG10X3R5cGU1KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MTRhX3RhYmxlLmMtMjA0NDYtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODE0YV90YWJsZS5jOjIwNDQ3OnN0YXRpYyBjb25zdCBzdHJ1Y3QgcnR3X3R4cHdyX2xtdF9jZmdfcGFpciBydHc4ODE0YV90eHB3cl9sbXRfdHlwZTdbXSA9IHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MTRhX3RhYmxlLmMtMjA0NDgtXFx0eyAwLCAwLCAwLCAwLCAxLCA0NCwgfSxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgxNGFfdGFibGUuYz0yMTQyMj1SVFdfREVDTF9UQUJMRV9UWFBXUl9MTVQocnR3ODgxNGFfdHhwd3JfbG10X3R5cGU3KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MTRhX3RhYmxlLmMtMjE0MjMtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODE0YV90YWJsZS5jOjIxNDI0OnN0YXRpYyBjb25zdCBzdHJ1Y3QgcnR3X3R4cHdyX2xtdF9jZmdfcGFpciBydHc4ODE0YV90eHB3cl9sbXRfdHlwZThbXSA9IHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MTRhX3RhYmxlLmMtMjE0MjUtXFx0eyAwLCAwLCAwLCAwLCAxLCA0NiwgfSxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMWEuYz03MzQ9c3RhdGljIHZvaWQgcnR3ODgyMWFfZmlsbF90eGRlc2NfY2hlY2tzdW0oc3RydWN0IHJ0d19kZXYgKnJ0d2RldixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjFhLmM6NzM1OlxcdFxcdFxcdFxcdFxcdCAgc3RydWN0IHJ0d190eF9wa3RfaW5mbyAqcGt0X2luZm8sXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIxYS5jLTczNi1cXHRcXHRcXHRcXHRcXHQgIHU4ICp0eGRlc2MpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjFhX3RhYmxlLmM9MTMzNT1SVFdfREVDTF9UQUJMRV9SRl9SQURJTyhydHc4ODIxYV9yZl9hLCBBKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjFhX3RhYmxlLmMtMTMzNi1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjFhX3RhYmxlLmM6MTMzNzpzdGF0aWMgY29uc3Qgc3RydWN0IHJ0d190eHB3cl9sbXRfY2ZnX3BhaXIgcnR3ODgyMWFfdHhwd3JfbG10W10gPSB7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIxYV90YWJsZS5jLTEzMzgtXFx0eyAwLCAwLCAwLCAwLCAxLCAzMiwgfSxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMWMuYz0xMjMxPXN0YXRpYyB2b2lkIHJ0dzg4MjFjX2ZpbGxfdHhkZXNjX2NoZWNrc3VtKHN0cnVjdCBydHdfZGV2ICpydHdkZXYsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIxYy5jOjEyMzI6XFx0XFx0XFx0XFx0XFx0ICBzdHJ1Y3QgcnR3X3R4X3BrdF9pbmZvICpwa3RfaW5mbyxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjFjLmMtMTIzMy1cXHRcXHRcXHRcXHRcXHQgIHU4ICp0eGRlc2MpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjFjLmg9NzQ9c3RydWN0IHJ0dzg4MjFjX2VmdXNlIHtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMWMuaC03OC1cXHQvKiBwb3dlciBpbmRleCBmb3IgZm91ciBSRiBwYXRocyAqL1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMWMuaDo3OTpcXHRzdHJ1Y3QgcnR3X3R4cHdyX2lkeCB0eHB3cl9pZHhfdGFibGVbNF07XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIxYy5oLTgwLVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIxY190YWJsZS5jPTYwMTE9UlRXX0RFQ0xfVEFCTEVfUkZfUkFESU8ocnR3ODgyMWNfcmZfYSwgQSk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIxY190YWJsZS5jLTYwMTItXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIxY190YWJsZS5jOjYwMTM6c3RhdGljIGNvbnN0IHN0cnVjdCBydHdfdHhwd3JfbG10X2NmZ19wYWlyIHJ0dzg4MjFjX3R4cHdyX2xtdF90eXBlMFtdID0ge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMWNfdGFibGUuYy02MDE0LVxcdHsgMCwgMCwgMCwgMCwgMSwgMzAsIH0sXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJiLmM9MTU5ND1zdGF0aWMgdm9pZCBydHc4ODIyYl9maWxsX3R4ZGVzY19jaGVja3N1bShzdHJ1Y3QgcnR3X2RldiAqcnR3ZGV2LFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmIuYzoxNTk1OlxcdFxcdFxcdFxcdFxcdCAgc3RydWN0IHJ0d190eF9wa3RfaW5mbyAqcGt0X2luZm8sXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYi5jLTE1OTYtXFx0XFx0XFx0XFx0XFx0ICB1OCAqdHhkZXNjKVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYi5oPTc0PXN0cnVjdCBydHc4ODIyYl9lZnVzZSB7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJiLmgtODAtXFx0LyogcG93ZXIgaW5kZXggZm9yIGZvdXIgUkYgcGF0aHMgKi9cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJiLmg6ODE6XFx0c3RydWN0IHJ0d190eHB3cl9pZHggdHhwd3JfaWR4X3RhYmxlWzRdO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmIuaC04Mi1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmJfdGFibGUuYz0yMDQzND1SVFdfREVDTF9UQUJMRV9SRl9SQURJTyhydHc4ODIyYl9yZl9iLCBCKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJiX3RhYmxlLmMtMjA0MzUtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYl90YWJsZS5jOjIwNDM2OnN0YXRpYyBjb25zdCBzdHJ1Y3QgcnR3X3R4cHdyX2xtdF9jZmdfcGFpciBydHc4ODIyYl90eHB3cl9sbXRfdHlwZTBbXSA9IHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJiX3RhYmxlLmMtMjA0MzctXFx0eyAwLCAwLCAwLCAwLCAxLCAzMiwgfSxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmJfdGFibGUuYz0yMTAyND1SVFdfREVDTF9UQUJMRV9UWFBXUl9MTVQocnR3ODgyMmJfdHhwd3JfbG10X3R5cGUwKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJiX3RhYmxlLmMtMjEwMjUtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYl90YWJsZS5jOjIxMDI2OnN0YXRpYyBjb25zdCBzdHJ1Y3QgcnR3X3R4cHdyX2xtdF9jZmdfcGFpciBydHc4ODIyYl90eHB3cl9sbXRfdHlwZTJbXSA9IHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJiX3RhYmxlLmMtMjEwMjctXFx0eyAwLCAwLCAwLCAwLCAxLCAzMiwgfSxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmJfdGFibGUuYz0yMTYxND1SVFdfREVDTF9UQUJMRV9UWFBXUl9MTVQocnR3ODgyMmJfdHhwd3JfbG10X3R5cGUyKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJiX3RhYmxlLmMtMjE2MTUtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYl90YWJsZS5jOjIxNjE2OnN0YXRpYyBjb25zdCBzdHJ1Y3QgcnR3X3R4cHdyX2xtdF9jZmdfcGFpciBydHc4ODIyYl90eHB3cl9sbXRfdHlwZTVbXSA9IHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJiX3RhYmxlLmMtMjE2MTctXFx0eyAwLCAwLCAwLCAwLCAxLCAzMiwgfSxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYz00NTYzPXN0YXRpYyB2b2lkIHJ0dzg4MjJjX2ZpbGxfdHhkZXNjX2NoZWNrc3VtKHN0cnVjdCBydHdfZGV2ICpydHdkZXYsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jOjQ1NjQ6XFx0XFx0XFx0XFx0XFx0ICBzdHJ1Y3QgcnR3X3R4X3BrdF9pbmZvICpwa3RfaW5mbyxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmMtNDU2NS1cXHRcXHRcXHRcXHRcXHQgIHU4ICp0eGRlc2MpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmg9NjE9c3RydWN0IHJ0dzg4MjJjX2VmdXNlIHtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuaC02Ny1cXHQvKiBwb3dlciBpbmRleCBmb3IgZm91ciBSRiBwYXRocyAqL1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuaDo2ODpcXHRzdHJ1Y3QgcnR3X3R4cHdyX2lkeCB0eHB3cl9pZHhfdGFibGVbNF07XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5oLTY5LVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyY190YWJsZS5jPTM5ODIyPVJUV19ERUNMX1RBQkxFX1JGX1JBRElPKHJ0dzg4MjJjX3JmX2IsIEIpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmNfdGFibGUuYy0zOTgyMy1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjX3RhYmxlLmM6Mzk4MjQ6c3RhdGljIGNvbnN0IHN0cnVjdCBydHdfdHhwd3JfbG10X2NmZ19wYWlyIHJ0dzg4MjJjX3R4cHdyX2xtdF90eXBlMFtdID0ge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmNfdGFibGUuYy0zOTgyNS1cXHR7IDAsIDAsIDAsIDAsIDEsIDcyLCB9LFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyY190YWJsZS5jPTQyMTY3PVJUV19ERUNMX1RBQkxFX1RYUFdSX0xNVChydHc4ODIyY190eHB3cl9sbXRfdHlwZTApO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmNfdGFibGUuYy00MjE2OC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjX3RhYmxlLmM6NDIxNjk6c3RhdGljIGNvbnN0IHN0cnVjdCBydHdfdHhwd3JfbG10X2NmZ19wYWlyIHJ0dzg4MjJjX3R4cHdyX2xtdF90eXBlNVtdID0ge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmNfdGFibGUuYy00MjE3MC1cXHR7IDAsIDAsIDAsIDAsIDEsIDcyLCB9LFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4OHh4YS5oPTI4PXN0cnVjdCBydHc4OHh4YV9lZnVzZSB7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4eHhhLmgtMzQtXFx0LyogcG93ZXIgaW5kZXggZm9yIGZvdXIgUkYgcGF0aHMgKi9cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4eHhhLmg6MzU6XFx0c3RydWN0IHJ0d190eHB3cl9pZHggdHhwd3JfaWR4X3RhYmxlWzRdO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODh4eGEuaC0zNi1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvc2Rpby5jPTQ3MD1zdGF0aWMgdTMyIHJ0d19zZGlvX2dldF90eF9hZGRyKHN0cnVjdCBydHdfZGV2ICpydHdkZXYsIHNpemVfdCBzaXplLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvc2Rpby5jOjQ3MTpcXHRcXHRcXHRcXHRlbnVtIHJ0d190eF9xdWV1ZV90eXBlIHF1ZXVlKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvc2Rpby5jLTQ3Mi17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3NkaW8uYz02MzU9c3RhdGljIGludCBydHdfc2Rpb193cml0ZV9wb3J0KHN0cnVjdCBydHdfZGV2ICpydHdkZXYsIHN0cnVjdCBza19idWZmICpza2IsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9zZGlvLmM6NjM2OlxcdFxcdFxcdCAgICAgICBlbnVtIHJ0d190eF9xdWV1ZV90eXBlIHF1ZXVlKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvc2Rpby5jLTYzNy17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3NkaW8uYz04NDc9c3RhdGljIHZvaWQgcnR3X3NkaW9fdHhfc2tiX3ByZXBhcmUoc3RydWN0IHJ0d19kZXYgKnJ0d2RldixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3NkaW8uYzo4NDg6XFx0XFx0XFx0XFx0ICAgIHN0cnVjdCBydHdfdHhfcGt0X2luZm8gKnBrdF9pbmZvLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvc2Rpby5jLTg0OS1cXHRcXHRcXHRcXHQgICAgc3RydWN0IHNrX2J1ZmYgKnNrYixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3NkaW8uYzo4NTA6XFx0XFx0XFx0XFx0ICAgIGVudW0gcnR3X3R4X3F1ZXVlX3R5cGUgcXVldWUpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9zZGlvLmMtODUxLXtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvc2Rpby5jLTg4MC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3NkaW8uYzo4ODE6XFx0cnR3X3R4X2ZpbGxfdHhfZGVzYyhydHdkZXYsIHBrdF9pbmZvLCBza2IpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvc2Rpby5jOjg4MjpcXHRydHdfdHhfZmlsbF90eGRlc2NfY2hlY2tzdW0ocnR3ZGV2LCBwa3RfaW5mbywgcGt0X2Rlc2MpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvc2Rpby5jLTg4My19XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3NkaW8uYz04ODU9c3RhdGljIGludCBydHdfc2Rpb193cml0ZV9kYXRhKHN0cnVjdCBydHdfZGV2ICpydHdkZXYsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9zZGlvLmM6ODg2OlxcdFxcdFxcdCAgICAgICBzdHJ1Y3QgcnR3X3R4X3BrdF9pbmZvICpwa3RfaW5mbyxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3NkaW8uYy04ODctXFx0XFx0XFx0ICAgICAgIHN0cnVjdCBza19idWZmICpza2IsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9zZGlvLmM6ODg4OlxcdFxcdFxcdCAgICAgICBlbnVtIHJ0d190eF9xdWV1ZV90eXBlIHF1ZXVlKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvc2Rpby5jLTg4OS17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3NkaW8uYz05MDA9c3RhdGljIGludCBydHdfc2Rpb193cml0ZV9kYXRhX3JzdmRfcGFnZShzdHJ1Y3QgcnR3X2RldiAqcnR3ZGV2LCB1OCAqYnVmLFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9zZGlvLmMtOTAyLXtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3NkaW8uYzo5MDM6XFx0c3RydWN0IHJ0d190eF9wa3RfaW5mbyBwa3RfaW5mbyA9IHt9O1xcblxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0xNFQwNjo0MjoyMy45OTE5MTU2ODJaIiwiU2VxIjoyMywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NzY5NTM2NjQ1NSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipBbmFseXppbmcgdGhlIFRhcmdldCBmb3IgRnV6emluZyoqXG5cbk9rYXksIHNvIEknbSBsb29raW5nIGF0IHRoaXMgY29kZSBhbmQgdHJ5aW5nIHRvIGZpZ3VyZSBvdXQgaWYgaXQncyBhIGdvb2QgY2FuZGlkYXRlIGZvciBmdXp6aW5nLiBgcnR3X3R4YCBpcyBkZWZpbml0ZWx5IHJlYWNoYWJsZSBiZWNhdXNlIGl0J3MgdGhlIG1hYzgwMjExIFRYIGNhbGxiYWNrLCBjYWxsZWQgdGhyb3VnaCBgcnR3X29wc190eGAuIEkgY2FuIHNlZSB0aGF0IGNsZWFybHkuIEJ1dCBteSBpbnRlcmVzdCBpcyBwaXF1ZWQgYmVjYXVzZSB0aGUgcGF0Y2ggbW9kaWZpZXMgYHJ0d191c2JfdHhfcXVldWVfbWFwcGluZ190b19xc2VsYCBpbiBgdXNiLmNgLiBOb3csIHRoYXQncyBjYWxsZWQgYnkgYHJ0d191c2JfdHhfd3JpdGVgLCB3aGljaCBpcyB0aGUgYHR4X3dyaXRlYCBjYWxsYmFjayAqc3BlY2lmaWNhbGx5KiBmb3IgVVNCIHRyYW5zbWlzc2lvbnMuIFNvLCB0aGF0J3MgZGVmaW5pdGVseSBhIHZpYWJsZSBwYXRoIGZvciBwYWNrZXRzIHNlbnQgb3ZlciBVU0IuXG5cblRoZSBtb3JlIEkgdGhpbmsgYWJvdXQgaXQsIHllYWgsIHRoaXMgaXMgd29ydGggaW52ZXN0aWdhdGluZyBmdXJ0aGVyLiBDaGFuZ2VzIHRvIHF1ZXVlIHNlbGVjdGlvbiBmb3IgYnJvYWRjYXN0IGFuZCBtdWx0aWNhc3QgcGFja2V0cyBhcmUgZnVuY3Rpb25hbGx5IHNpZ25pZmljYW50LiBUaGUga2V5IHBhcnQgaXMgdGhhdCB0aGUgbG9naWMgaW52b2x2ZXMgY2hlY2tpbmcgYGluZm8tXHUwMDNlZmxhZ3MgXHUwMDI2IElFRUU4MDIxMV9UWF9DVExfU0VORF9BRlRFUl9EVElNYC4gbWFjODAyMTEgc2V0cyB0aGlzIGZsYWcgZm9yIG11bHRpY2FzdCBhbmQgYnJvYWRjYXN0IGZyYW1lcywgbWVhbmluZyB0aGUgY2hhbmdlcyB3aWxsIGRlZmluaXRlbHkgYWZmZWN0IGhvdyB0aGVzZSBraW5kcyBvZiBmcmFtZXMgYXJlIGhhbmRsZWQuIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSBpbiB0aGUgZHJpdmVyJ3MgVFggcGF0aC5cblxuTm93LCBsZXQncyBjb25zaWRlciB0aGUgZnV6emluZyBzdHJhdGVneS4gSXMgYHJ0d191c2JfdHhfd3JpdGVgIGEgZ29vZCBzeW1ib2wgdG8gZm9jdXMgb24/IEhtbSwgaXQncyBzdGF0aWMsIHdoaWNoIGlzIGEgY29uY2VybiDigJMgaXQgY291bGQgYmUgaW5saW5lZCwgb3IgbWlnaHQgbm90IGV2ZW4gaGF2ZSBhIGRpc3RpbmN0IHN5bWJvbCBpbiB0aGUgZmluYWwgYmluYXJ5LiBTbywgbGV0J3MgcGl2b3QuIENoZWNraW5nIGBydHdfdXNiX3R4X3F1ZXVlX21hcHBpbmdfdG9fcXNlbGAsIHRoYXQncyBzdGF0aWMgdG9vLiBPa2F5LCBsZXQncyBicm9hZGVuIHRoZSBzZWFyY2ggYSBiaXQuIEFyZSB0aGVyZSBhbnkgKm5vbiotc3RhdGljIGZ1bmN0aW9ucyBpbiB0aGlzIGFyZWE/IExvb2tzIGxpa2UgYHJ0d191c2Jfb3BzYCBpcyBzdGF0aWMsIHNvIHRoYXQncyBub3QgdXNlZnVsLiBCdXQgYHJ0d191c2JfcHJvYmVgIGlzIG5vbi1zdGF0aWMgb3IgcG9zc2libHkgZXhwb3J0ZWQsIGl0J3Mgd29ydGggYSBsb29rLlxuXG5cbiIsIklucHV0VG9rZW5zIjozMDU0NCwiT3V0cHV0VG9rZW5zIjo0MywiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjMwOSwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wOC0xNFQwNjo0MjozMS42ODcyODU1MDdaIiwiU2VxIjoyNCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjEwNzk1ODczOSwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJydHdfdXNiX3Byb2JlXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdXNiLmNcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC91c2IuYz0xMjI3PXN0YXRpYyB2b2lkIHJ0d191c2JfcGh5X2NmZyhzdHJ1Y3QgcnR3X2RldiAqcnR3ZGV2LFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC91c2IuYy0xMjY0LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdXNiLmM6MTI2NTppbnQgcnR3X3VzYl9wcm9iZShzdHJ1Y3QgdXNiX2ludGVyZmFjZSAqaW50ZiwgY29uc3Qgc3RydWN0IHVzYl9kZXZpY2VfaWQgKmlkKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdXNiLmMtMTI2Ni17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3VzYi5jLTEzNjAtfVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdXNiLmM6MTM2MTpFWFBPUlRfU1lNQk9MKHJ0d191c2JfcHJvYmUpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdXNiLmMtMTM2Mi1cXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMTRUMDY6NDI6MzEuNzk1MjQ4NTY2WiIsIlNlcSI6MjUsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjMzNTYxODI2MDgsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6Ik9rYXksIGhlcmUncyBteSB0YWtlIG9uIHRob3NlIHRob3VnaHRzLCBmcmFtZWQgYXMgYW4gZXhwZXJ0J3MgaW50ZXJuYWwgbW9ub2xvZ3VlOlxuXG4qKkludmVzdGlnYXRpbmcgdGhlIHJ0d191c2IgRHJpdmVyKipcblxuQWxyaWdodCwgc28gYHJ0d191c2JfcHJvYmVgIGlzIGV4cG9zZWQsIHRoYXQncyBub3QgbmV3cywgYnV0IHRoZSBjb21taXQncyBmb2N1c2VkIG9uIHRoZSB0cmFuc21pdCBwYXRoLiBJbnRlcmVzdGluZy4gTXkgaW5pdGlhbCBndXQgZmVlbGluZyBpcyB0byBjaGVjayBpZiBgcnR3X3R4YCBoYWQgYW55IGNoYW5nZXMgd2l0aCB0aGlzIHBhdGNoLiBUaGF0IGZ1bmN0aW9uIGxpdmVzIGluIGB0eC5jYCwgc28gSSBzaG91bGQgcHJvYmFibHkganVtcCBzdHJhaWdodCB0aGVyZSBhbmQgc2VlIHdoYXQncyBjaGFuZ2VkIGluIHJlbGF0aW9uIHRvIHRoZSByZXBvcnRlZCBpc3N1ZS4gSXQgd291bGQgbWFrZSBzZW5zZSB0byBsb29rIGF0IGhvdyB0aGVzZSBmdW5jdGlvbnMgYXJlIGJlaW5nIGNhbGxlZCwgYW5kIGlmIHRoZSBjaGFuZ2VzIGluIGBydHdfdXNiX3Byb2JlYCBhcmUgYWZmZWN0aW5nIHRoZSBsb2dpYyBpbiBgcnR3X3R4YC4gTGV0J3Mgc2VlIGlmIHRoaXMgbGluZXMgdXAgd2l0aCB0aGUgcHJvYmxlbSByZXBvcnQuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjMxNTU3LCJPdXRwdXRUb2tlbnMiOjQxLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6NDAsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDgtMTRUMDY6NDI6MzUuMTUxNDM1NzAzWiIsIlNlcSI6MjYsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo2NTQ1MzIxOSwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJydHdfdHhcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC90eC5jXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdHguYz0xMT1zdGF0aWNcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3R4LmM6MTI6dm9pZCBydHdfdHhfc3RhdHMoc3RydWN0IHJ0d19kZXYgKnJ0d2Rldiwgc3RydWN0IGllZWU4MDIxMV92aWYgKnZpZixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3R4LmMtMTMtXFx0XFx0ICBzdHJ1Y3Qgc2tfYnVmZiAqc2tiKVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC90eC5jLTM0LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdHguYzozNTp2b2lkIHJ0d190eF9maWxsX3R4X2Rlc2Moc3RydWN0IHJ0d19kZXYgKnJ0d2RldixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3R4LmM6MzY6XFx0XFx0XFx0IHN0cnVjdCBydHdfdHhfcGt0X2luZm8gKnBrdF9pbmZvLCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdHguYy0zNy17XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC90eC5jOjM4OlxcdHN0cnVjdCBydHdfdHhfZGVzYyAqdHhfZGVzYyA9IChzdHJ1Y3QgcnR3X3R4X2Rlc2MgKilza2ItXFx1MDAzZWRhdGE7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC90eC5jLTM5LVxcdGJvb2wgbW9yZV9kYXRhID0gZmFsc2U7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3R4LmMtOTMtfVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdHguYzo5NDpFWFBPUlRfU1lNQk9MKHJ0d190eF9maWxsX3R4X2Rlc2MpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdHguYy05NS1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdHguYz0xMjU9c3RhdGljIHU4IGdldF9oaWdoZXN0X3ZodF90eF9yYXRlKHN0cnVjdCBydHdfZGV2ICpydHdkZXYsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3R4LmMtMTY1LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdHguYzoxNjY6c3RhdGljIHZvaWQgcnR3X3R4X3JlcG9ydF9lbmFibGUoc3RydWN0IHJ0d19kZXYgKnJ0d2RldixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3R4LmM6MTY3OlxcdFxcdFxcdFxcdCBzdHJ1Y3QgcnR3X3R4X3BrdF9pbmZvICpwa3RfaW5mbylcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3R4LmMtMTY4LXtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3R4LmM6MTY5OlxcdHN0cnVjdCBydHdfdHhfcmVwb3J0ICp0eF9yZXBvcnQgPSBcXHUwMDI2cnR3ZGV2LVxcdTAwM2V0eF9yZXBvcnQ7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC90eC5jLTE3MC1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdHguYy0xNzgtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC90eC5jOjE3OTp2b2lkIHJ0d190eF9yZXBvcnRfcHVyZ2VfdGltZXIoc3RydWN0IHRpbWVyX2xpc3QgKnQpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC90eC5jLTE4MC17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3R4LmMtMTgyLVxcdFxcdFxcdFxcdFxcdFxcdCAgICB0eF9yZXBvcnQucHVyZ2VfdGltZXIpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdHguYzoxODM6XFx0c3RydWN0IHJ0d190eF9yZXBvcnQgKnR4X3JlcG9ydCA9IFxcdTAwMjZydHdkZXYtXFx1MDAzZXR4X3JlcG9ydDtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3R4LmMtMTg0LVxcdHVuc2lnbmVkIGxvbmcgZmxhZ3M7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3R4LmMtMTk1LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdHguYzoxOTY6dm9pZCBydHdfdHhfcmVwb3J0X2VucXVldWUoc3RydWN0IHJ0d19kZXYgKnJ0d2Rldiwgc3RydWN0IHNrX2J1ZmYgKnNrYiwgdTggc24pXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC90eC5jLTE5Ny17XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC90eC5jOjE5ODpcXHRzdHJ1Y3QgcnR3X3R4X3JlcG9ydCAqdHhfcmVwb3J0ID0gXFx1MDAyNnJ0d2Rldi1cXHUwMDNldHhfcmVwb3J0O1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdHguYy0xOTktXFx0dW5zaWduZWQgbG9uZyB0aW1lb3V0ID0gUlRXX1RYX1BST0JFX1RJTUVPVVQ7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3R4LmMtMjE2LX1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3R4LmM6MjE3OkVYUE9SVF9TWU1CT0wocnR3X3R4X3JlcG9ydF9lbnF1ZXVlKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3R4LmMtMjE4LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdHguYzoyMTk6c3RhdGljIHZvaWQgcnR3X3R4X3JlcG9ydF90eF9zdGF0dXMoc3RydWN0IHJ0d19kZXYgKnJ0d2RldixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3R4LmMtMjIwLVxcdFxcdFxcdFxcdCAgICBzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBib29sIGFja2VkKVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC90eC5jLTIzMy1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3R4LmM6MjM0OnZvaWQgcnR3X3R4X3JlcG9ydF9oYW5kbGUoc3RydWN0IHJ0d19kZXYgKnJ0d2Rldiwgc3RydWN0IHNrX2J1ZmYgKnNrYiwgaW50IHNyYylcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3R4LmMtMjM1LXtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3R4LmM6MjM2OlxcdHN0cnVjdCBydHdfdHhfcmVwb3J0ICp0eF9yZXBvcnQgPSBcXHUwMDI2cnR3ZGV2LVxcdTAwM2V0eF9yZXBvcnQ7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC90eC5jLTIzNy1cXHRzdHJ1Y3QgcnR3X2MyaF9jbWQgKmMyaDtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdHguYy0yNTctXFx0XFx0XFx0X19za2JfdW5saW5rKGN1ciwgXFx1MDAyNnR4X3JlcG9ydC1cXHUwMDNlcXVldWUpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdHguYzoyNTg6XFx0XFx0XFx0cnR3X3R4X3JlcG9ydF90eF9zdGF0dXMocnR3ZGV2LCBjdXIsIHN0ID09IDApO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdHguYy0yNTktXFx0XFx0XFx0YnJlYWs7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3R4LmM9MjY1PXN0YXRpYyB1OCBydHdfZ2V0X21nbXRfcmF0ZShzdHJ1Y3QgcnR3X2RldiAqcnR3ZGV2LCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiLFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC90eC5jLTI3Ny1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3R4LmM6Mjc4OnN0YXRpYyB2b2lkIHJ0d190eF9wa3RfaW5mb191cGRhdGVfcmF0ZShzdHJ1Y3QgcnR3X2RldiAqcnR3ZGV2LFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdHguYzoyNzk6XFx0XFx0XFx0XFx0XFx0c3RydWN0IHJ0d190eF9wa3RfaW5mbyAqcGt0X2luZm8sXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC90eC5jLTI4MC1cXHRcXHRcXHRcXHRcXHRzdHJ1Y3Qgc2tfYnVmZiAqc2tiLFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC90eC5jLTI5Ni1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3R4LmM6Mjk3OnN0YXRpYyB2b2lkIHJ0d190eF9wa3RfaW5mb191cGRhdGVfc2VjKHN0cnVjdCBydHdfZGV2ICpydHdkZXYsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC90eC5jOjI5ODpcXHRcXHRcXHRcXHQgICAgICAgc3RydWN0IHJ0d190eF9wa3RfaW5mbyAqcGt0X2luZm8sXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC90eC5jLTI5OS1cXHRcXHRcXHRcXHQgICAgICAgc3RydWN0IHNrX2J1ZmYgKnNrYilcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdHguYy0zMjMtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC90eC5jOjMyNDpzdGF0aWMgdm9pZCBydHdfdHhfbWdtdF9wa3RfaW5mb191cGRhdGUoc3RydWN0IHJ0d19kZXYgKnJ0d2RldixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3R4LmM6MzI1OlxcdFxcdFxcdFxcdFxcdHN0cnVjdCBydHdfdHhfcGt0X2luZm8gKnBrdF9pbmZvLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdHguYy0zMjYtXFx0XFx0XFx0XFx0XFx0c3RydWN0IGllZWU4MDIxMV9zdGEgKnN0YSxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdHguYy0zMjgte1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdHguYzozMjk6XFx0cnR3X3R4X3BrdF9pbmZvX3VwZGF0ZV9yYXRlKHJ0d2RldiwgcGt0X2luZm8sIHNrYiwgZmFsc2UpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdHguYy0zMzAtXFx0cGt0X2luZm8tXFx1MDAzZWRpc19xc2Vsc2VxID0gdHJ1ZTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdHguYy0zMzUtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC90eC5jOjMzNjpzdGF0aWMgdm9pZCBydHdfdHhfZGF0YV9wa3RfaW5mb191cGRhdGUoc3RydWN0IHJ0d19kZXYgKnJ0d2RldixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3R4LmM6MzM3OlxcdFxcdFxcdFxcdFxcdHN0cnVjdCBydHdfdHhfcGt0X2luZm8gKnBrdF9pbmZvLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdHguYy0zMzgtXFx0XFx0XFx0XFx0XFx0c3RydWN0IGllZWU4MDIxMV9zdGEgKnN0YSxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdHguYy00MDYtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC90eC5jOjQwNzp2b2lkIHJ0d190eF9wa3RfaW5mb191cGRhdGUoc3RydWN0IHJ0d19kZXYgKnJ0d2RldixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3R4LmM6NDA4OlxcdFxcdFxcdCAgICBzdHJ1Y3QgcnR3X3R4X3BrdF9pbmZvICpwa3RfaW5mbyxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3R4LmMtNDA5LVxcdFxcdFxcdCAgICBzdHJ1Y3QgaWVlZTgwMjExX3N0YSAqc3RhLFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC90eC5jLTQyOS1cXHRpZiAoaWVlZTgwMjExX2lzX21nbXQoZmMpIHx8IGllZWU4MDIxMV9pc19hbnlfbnVsbGZ1bmMoZmMpKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdHguYzo0MzA6XFx0XFx0cnR3X3R4X21nbXRfcGt0X2luZm9fdXBkYXRlKHJ0d2RldiwgcGt0X2luZm8sIHN0YSwgc2tiKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3R4LmMtNDMxLVxcdGVsc2UgaWYgKGllZWU4MDIxMV9pc19kYXRhKGZjKSlcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3R4LmM6NDMyOlxcdFxcdHJ0d190eF9kYXRhX3BrdF9pbmZvX3VwZGF0ZShydHdkZXYsIHBrdF9pbmZvLCBzdGEsIHNrYik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC90eC5jLTQzMy1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdHguYy00MzctXFx0aWYgKGluZm8tXFx1MDAzZWZsYWdzIFxcdTAwMjYgSUVFRTgwMjExX1RYX0NUTF9SRVFfVFhfU1RBVFVTKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdHguYzo0Mzg6XFx0XFx0cnR3X3R4X3JlcG9ydF9lbmFibGUocnR3ZGV2LCBwa3RfaW5mbyk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC90eC5jLTQzOS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3R4LmMtNDQwLVxcdHBrdF9pbmZvLVxcdTAwM2VibWMgPSBibWM7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC90eC5jOjQ0MTpcXHRydHdfdHhfcGt0X2luZm9fdXBkYXRlX3NlYyhydHdkZXYsIHBrdF9pbmZvLCBza2IpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdHguYy00NDItXFx0cGt0X2luZm8tXFx1MDAzZXR4X3BrdF9zaXplID0gc2tiLVxcdTAwM2VsZW47XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3R4LmMtNDQ3LVxcdC8qIG1heWJlIG1lcmdlIHdpdGggdHggc3RhdHVzID8gKi9cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3R4LmM6NDQ4OlxcdHJ0d190eF9zdGF0cyhydHdkZXYsIHZpZiwgc2tiKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3R4LmMtNDQ5LX1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3R4LmMtNDUwLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdHguYzo0NTE6dm9pZCBydHdfdHhfcnN2ZF9wYWdlX3BrdF9pbmZvX3VwZGF0ZShzdHJ1Y3QgcnR3X2RldiAqcnR3ZGV2LFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdHguYzo0NTI6XFx0XFx0XFx0XFx0ICAgICAgc3RydWN0IHJ0d190eF9wa3RfaW5mbyAqcGt0X2luZm8sXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC90eC5jLTQ1My1cXHRcXHRcXHRcXHQgICAgICBzdHJ1Y3Qgc2tfYnVmZiAqc2tiLFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC90eC5jLTQ2NS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3R4LmM6NDY2OlxcdHJ0d190eF9wa3RfaW5mb191cGRhdGVfcmF0ZShydHdkZXYsIHBrdF9pbmZvLCBza2IsIHRydWUpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdHguYy00NjctXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3R4LmMtNDk2LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdHguYzo0OTc6XFx0cnR3X3R4X3BrdF9pbmZvX3VwZGF0ZV9zZWMocnR3ZGV2LCBwa3RfaW5mbywgc2tiKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3R4LmMtNDk4LVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC90eC5jPTUwMj1zdHJ1Y3Qgc2tfYnVmZiAqXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC90eC5jOjUwMzpydHdfdHhfd3JpdGVfZGF0YV9yc3ZkX3BhZ2VfZ2V0KHN0cnVjdCBydHdfZGV2ICpydHdkZXYsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC90eC5jOjUwNDpcXHRcXHRcXHRcXHRzdHJ1Y3QgcnR3X3R4X3BrdF9pbmZvICpwa3RfaW5mbyxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3R4LmMtNTA1LVxcdFxcdFxcdFxcdHU4ICpidWYsIHUzMiBzaXplKVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC90eC5jLTUyMS1cXHRza2JfcHV0X2RhdGEoc2tiLCBidWYsIHNpemUpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdHguYzo1MjI6XFx0cnR3X3R4X3JzdmRfcGFnZV9wa3RfaW5mb191cGRhdGUocnR3ZGV2LCBwa3RfaW5mbywgc2tiLCBSU1ZEX0JFQUNPTik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC90eC5jLTUyMy1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdHguYy01MjUtfVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdHguYzo1MjY6RVhQT1JUX1NZTUJPTChydHdfdHhfd3JpdGVfZGF0YV9yc3ZkX3BhZ2VfZ2V0KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3R4LmMtNTI3LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdHguYz01Mjg9c3RydWN0IHNrX2J1ZmYgKlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdHguYzo1Mjk6cnR3X3R4X3dyaXRlX2RhdGFfaDJjX2dldChzdHJ1Y3QgcnR3X2RldiAqcnR3ZGV2LFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdHguYzo1MzA6XFx0XFx0XFx0ICBzdHJ1Y3QgcnR3X3R4X3BrdF9pbmZvICpwa3RfaW5mbyxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3R4LmMtNTMxLVxcdFxcdFxcdCAgdTggKmJ1ZiwgdTMyIHNpemUpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3R4LmMtNTUxLX1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3R4LmM6NTUyOkVYUE9SVF9TWU1CT0wocnR3X3R4X3dyaXRlX2RhdGFfaDJjX2dldCk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC90eC5jLTU1My1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3R4LmM6NTU0OnZvaWQgcnR3X3R4KHN0cnVjdCBydHdfZGV2ICpydHdkZXYsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC90eC5jLTU1NS1cXHQgICAgc3RydWN0IGllZWU4MDIxMV90eF9jb250cm9sICpjb250cm9sLFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC90eC5jLTU1Ny17XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC90eC5jOjU1ODpcXHRzdHJ1Y3QgcnR3X3R4X3BrdF9pbmZvIHBrdF9pbmZvID0gezB9O1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdHguYy01NTktXFx0aW50IHJldDtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3R4LmMtNTYwLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdHguYzo1NjE6XFx0cnR3X3R4X3BrdF9pbmZvX3VwZGF0ZShydHdkZXYsIFxcdTAwMjZwa3RfaW5mbywgY29udHJvbC1cXHUwMDNlc3RhLCBza2IpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdHguYy01NjItXFx0cmV0ID0gcnR3X2hjaV90eF93cml0ZShydHdkZXYsIFxcdTAwMjZwa3RfaW5mbywgc2tiKTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdHguYy01NzUtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC90eC5jOjU3NjpzdGF0aWMgdm9pZCBydHdfdHhxX2NoZWNrX2FnZyhzdHJ1Y3QgcnR3X2RldiAqcnR3ZGV2LFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdHguYzo1Nzc6XFx0XFx0XFx0ICAgICAgc3RydWN0IHJ0d190eHEgKnJ0d3R4cSxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3R4LmMtNTc4LVxcdFxcdFxcdCAgICAgIHN0cnVjdCBza19idWZmICpza2IpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3R4LmMtNjA3LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdHguYzo2MDg6c3RhdGljIGludCBydHdfdHhxX3B1c2hfc2tiKHN0cnVjdCBydHdfZGV2ICpydHdkZXYsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC90eC5jOjYwOTpcXHRcXHRcXHQgICAgc3RydWN0IHJ0d190eHEgKnJ0d3R4cSxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3R4LmMtNjEwLVxcdFxcdFxcdCAgICBzdHJ1Y3Qgc2tfYnVmZiAqc2tiKVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC90eC5jLTYxMi1cXHRzdHJ1Y3QgaWVlZTgwMjExX3R4cSAqdHhxID0gcnR3dHhxX3RvX3R4cShydHd0eHEpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdHguYzo2MTM6XFx0c3RydWN0IHJ0d190eF9wa3RfaW5mbyBwa3RfaW5mbyA9IHswfTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3R4LmMtNjE0LVxcdGludCByZXQ7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC90eC5jLTYxNS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3R4LmM6NjE2OlxcdHJ0d190eHFfY2hlY2tfYWdnKHJ0d2RldiwgcnR3dHhxLCBza2IpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdHguYy02MTctXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC90eC5jOjYxODpcXHRydHdfdHhfcGt0X2luZm9fdXBkYXRlKHJ0d2RldiwgXFx1MDAyNnBrdF9pbmZvLCB0eHEtXFx1MDAzZXN0YSwgc2tiKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3R4LmMtNjE5LVxcdHJldCA9IHJ0d19oY2lfdHhfd3JpdGUocnR3ZGV2LCBcXHUwMDI2cGt0X2luZm8sIHNrYik7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3R4LmMtNjI3LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdHguYzo2Mjg6c3RhdGljIHZvaWQgcnR3X3R4cV9wdXNoKHN0cnVjdCBydHdfZGV2ICpydHdkZXYsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC90eC5jOjYyOTpcXHRcXHRcXHQgc3RydWN0IHJ0d190eHEgKnJ0d3R4cSxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3R4LmMtNjMwLVxcdFxcdFxcdCB1bnNpZ25lZCBsb25nIGZyYW1lcylcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdHguYy02NDMtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC90eC5jOjY0NDpcXHRcXHRyZXQgPSBydHdfdHhxX3B1c2hfc2tiKHJ0d2RldiwgcnR3dHhxLCBza2IpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdHguYy02NDUtXFx0XFx0aWYgKHJldCkge1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC90eC5jLTY1My1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3R4LmM6NjU0OnZvaWQgX19ydHdfdHhfd29yayhzdHJ1Y3QgcnR3X2RldiAqcnR3ZGV2KVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdHguYy02NTUte1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdHguYzo2NTY6XFx0c3RydWN0IHJ0d190eHEgKnJ0d3R4cSwgKnRtcDtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3R4LmMtNjU3LVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC90eC5jLTY2NC1cXHRcXHRpZWVlODAyMTFfdHhxX2dldF9kZXB0aCh0eHEsIFxcdTAwMjZmcmFtZV9jbnQsIE5VTEwpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdHguYzo2NjU6XFx0XFx0cnR3X3R4cV9wdXNoKHJ0d2RldiwgcnR3dHhxLCBmcmFtZV9jbnQpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdHguYy02NjYtXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3R4LmMtNjc0LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdHguYzo2NzU6dm9pZCBydHdfdHhfd29yayhzdHJ1Y3Qgd29ya19zdHJ1Y3QgKncpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC90eC5jLTY3Ni17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3R4LmMtNjc4LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdHguYzo2Nzk6XFx0X19ydHdfdHhfd29yayhydHdkZXYpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdHguYy02ODAtfVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdHguYy02ODEtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC90eC5jOjY4Mjp2b2lkIHJ0d190eHFfaW5pdChzdHJ1Y3QgcnR3X2RldiAqcnR3ZGV2LCBzdHJ1Y3QgaWVlZTgwMjExX3R4cSAqdHhxKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdHguYy02ODMte1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdHguYzo2ODQ6XFx0c3RydWN0IHJ0d190eHEgKnJ0d3R4cTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3R4LmMtNjg1LVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC90eC5jLTY4OC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3R4LmM6Njg5OlxcdHJ0d3R4cSA9IChzdHJ1Y3QgcnR3X3R4cSAqKXR4cS1cXHUwMDNlZHJ2X3ByaXY7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC90eC5jLTY5MC1cXHRJTklUX0xJU1RfSEVBRChcXHUwMDI2cnR3dHhxLVxcdTAwM2VsaXN0KTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdHguYy02OTItXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC90eC5jOjY5Mzp2b2lkIHJ0d190eHFfY2xlYW51cChzdHJ1Y3QgcnR3X2RldiAqcnR3ZGV2LCBzdHJ1Y3QgaWVlZTgwMjExX3R4cSAqdHhxKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdHguYy02OTQte1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdHguYzo2OTU6XFx0c3RydWN0IHJ0d190eHEgKnJ0d3R4cTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3R4LmMtNjk2LVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC90eC5jLTY5OS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3R4LmM6NzAwOlxcdHJ0d3R4cSA9IChzdHJ1Y3QgcnR3X3R4cSAqKXR4cS1cXHUwMDNlZHJ2X3ByaXY7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC90eC5jLTcwMS1cXHRzcGluX2xvY2tfYmgoXFx1MDAyNnJ0d2Rldi1cXHUwMDNldHhxX2xvY2spO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC90eC5jLTcwNi1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3R4LmM6NzA3OnN0YXRpYyBjb25zdCBlbnVtIHJ0d190eF9xdWV1ZV90eXBlIGFjX3RvX2h3cVtdID0ge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdHguYy03MDgtXFx0W0lFRUU4MDIxMV9BQ19WT10gPSBSVFdfVFhfUVVFVUVfVk8sXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3R4LmM9NzE0PXN0YXRpY19hc3NlcnQoQVJSQVlfU0laRShhY190b19od3EpID09IElFRUU4MDIxMV9OVU1fQUNTKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3R4LmMtNzE1LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdHguYzo3MTY6ZW51bSBydHdfdHhfcXVldWVfdHlwZSBydHdfdHhfYWNfdG9faHdxKGVudW0gaWVlZTgwMjExX2FjX251bWJlcnMgYWMpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC90eC5jLTcxNy17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3R4LmMtNzIyLX1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3R4LmM6NzIzOkVYUE9SVF9TWU1CT0wocnR3X3R4X2FjX3RvX2h3cSk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC90eC5jLTcyNC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3R4LmM6NzI1OmVudW0gcnR3X3R4X3F1ZXVlX3R5cGUgcnR3X3R4X3F1ZXVlX21hcHBpbmcoc3RydWN0IHNrX2J1ZmYgKnNrYilcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3R4LmMtNzI2LXtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdHguYy03MjktXFx0dTggcV9tYXBwaW5nID0gc2tiX2dldF9xdWV1ZV9tYXBwaW5nKHNrYik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC90eC5jOjczMDpcXHRlbnVtIHJ0d190eF9xdWV1ZV90eXBlIHF1ZXVlO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdHguYy03MzEtXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3R4LmMtNzQ1LX1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3R4LmM6NzQ2OkVYUE9SVF9TWU1CT0wocnR3X3R4X3F1ZXVlX21hcHBpbmcpO1xcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0xNFQwNjo0MjozNS4yMTY4OTQwMTNaIiwiU2VxIjoyNywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6Mzg3OTMxOTMwMiwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipJbnZlc3RpZ2F0aW5nIHRoZSBgcnR3X3R4YCBGdW5jdGlvbioqXG5cbk9rYXksIHNvIEknbSBkaWdnaW5nIGludG8gdGhpcyBjb2RlLCBhbmQgaXQgbG9va3MgbGlrZSBgcnR3X3R4YCBpc24ndCBhIGRpcmVjdGx5IGV4cG9ydGVkIGZ1bmN0aW9uLiBJIHNlZSBpdCBiZWluZyBjYWxsZWQgZnJvbSBgcnR3X29wc190eGAgd2l0aGluIGBtYWM4MDIxMS5jYCwgd2hpY2ggaXMgYSBjb21tb24gcGF0dGVybiwgYnV0IHRoZSBmdW5jdGlvbidzIGRlZmluaXRpb24gaXRzZWxmLi4uIGl0J3Mgbm90IGV4cG9ydGVkLiBIbW0uICpXYWl0Kiwgbm93IEknbSByZW1lbWJlcmluZyDigJMgdGhlcmUncyBhIGBydHdfdHhgIGZ1bmN0aW9uIG92ZXIgaW4gYHR4LmNgLCBpc24ndCB0aGVyZT8gQnV0IHllYWgsIEkgY29uZmlybSwgaXQncyBub3QgZXhwbGljaXRseSBleHBvcnRlZCwgYW5kIHRoZSBkZWNsYXJhdGlvbiBpcyBhY3R1YWxseSBwcmVzZW50IGluIGB0eC5oYC4gSSdsbCBuZWVkIHRvIGRvdWJsZSBjaGVjayBob3cgaXQncyB1c2VkIHRoZXJlLCBhbmQgd2hhdCB0aGUgc3Vycm91bmRpbmcgY29udGV4dCB0ZWxscyBtZSBhYm91dCBob3cgaXQgaW50ZXJhY3RzIHdpdGggdGhlIHJlc3Qgb2YgdGhlIGRyaXZlci4gTGV0IG1lIGdvIHRha2UgYSBsb29rIGF0IHRoZSBkZWNsYXJhdGlvbiBpbiBgdHguaGAgdG8gbWFrZSBzdXJlIEkgdW5kZXJzdGFuZCBpdHMgc2lnbmF0dXJlIGFuZCBhbnkgaW5saW5lIGhpbnRzLlxuXG5cbiIsIklucHV0VG9rZW5zIjozODQxMSwiT3V0cHV0VG9rZW5zIjo0MiwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjgzLCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTE0VDA2OjQyOjM5LjA5NjIxNTc4NVoiLCJTZXEiOjI4LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MTA4NDQyOTM5LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcInZvaWQgcnR3X3R4XCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdHguaFwiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJkcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3R4Lmg9ODU9ZW51bSBydHdfcnN2ZF9wYWNrZXRfdHlwZTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3R4LmgtODYtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC90eC5oOjg3OnZvaWQgcnR3X3R4KHN0cnVjdCBydHdfZGV2ICpydHdkZXYsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC90eC5oLTg4LVxcdCAgICBzdHJ1Y3QgaWVlZTgwMjExX3R4X2NvbnRyb2wgKmNvbnRyb2wsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC90eC5oLTg5LVxcdCAgICBzdHJ1Y3Qgc2tfYnVmZiAqc2tiKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3R4Lmg6OTA6dm9pZCBydHdfdHhxX2luaXQoc3RydWN0IHJ0d19kZXYgKnJ0d2Rldiwgc3RydWN0IGllZWU4MDIxMV90eHEgKnR4cSk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC90eC5oOjkxOnZvaWQgcnR3X3R4cV9jbGVhbnVwKHN0cnVjdCBydHdfZGV2ICpydHdkZXYsIHN0cnVjdCBpZWVlODAyMTFfdHhxICp0eHEpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdHguaDo5Mjp2b2lkIHJ0d190eF93b3JrKHN0cnVjdCB3b3JrX3N0cnVjdCAqdyk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC90eC5oLTkzLXZvaWQgX19ydHdfdHhfd29yayhzdHJ1Y3QgcnR3X2RldiAqcnR3ZGV2KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3R4Lmg6OTQ6dm9pZCBydHdfdHhfcGt0X2luZm9fdXBkYXRlKHN0cnVjdCBydHdfZGV2ICpydHdkZXYsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC90eC5oLTk1LVxcdFxcdFxcdCAgICBzdHJ1Y3QgcnR3X3R4X3BrdF9pbmZvICpwa3RfaW5mbyxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdHguaC05Ny1cXHRcXHRcXHQgICAgc3RydWN0IHNrX2J1ZmYgKnNrYik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC90eC5oOjk4OnZvaWQgcnR3X3R4X2ZpbGxfdHhfZGVzYyhzdHJ1Y3QgcnR3X2RldiAqcnR3ZGV2LFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdHguaC05OS1cXHRcXHRcXHQgc3RydWN0IHJ0d190eF9wa3RfaW5mbyAqcGt0X2luZm8sIHN0cnVjdCBza19idWZmICpza2IpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdHguaDoxMDA6dm9pZCBydHdfdHhfcmVwb3J0X2VucXVldWUoc3RydWN0IHJ0d19kZXYgKnJ0d2Rldiwgc3RydWN0IHNrX2J1ZmYgKnNrYiwgdTggc24pO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdHguaDoxMDE6dm9pZCBydHdfdHhfcmVwb3J0X2hhbmRsZShzdHJ1Y3QgcnR3X2RldiAqcnR3ZGV2LCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBpbnQgc3JjKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3R4Lmg6MTAyOnZvaWQgcnR3X3R4X3JzdmRfcGFnZV9wa3RfaW5mb191cGRhdGUoc3RydWN0IHJ0d19kZXYgKnJ0d2RldixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3R4LmgtMTAzLVxcdFxcdFxcdFxcdCAgICAgIHN0cnVjdCBydHdfdHhfcGt0X2luZm8gKnBrdF9pbmZvLFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC90eC5oPTExOT12b2lkIGZpbGxfdHhkZXNjX2NoZWNrc3VtX2NvbW1vbih1OCAqdHhkZXNjLCBzaXplX3Qgd29yZHMpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3R4LmgtMTMzLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdHguaDoxMzQ6c3RhdGljIGlubGluZSB2b2lkIHJ0d190eF9maWxsX3R4ZGVzY19jaGVja3N1bShzdHJ1Y3QgcnR3X2RldiAqcnR3ZGV2LFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdHguaC0xMzUtXFx0XFx0XFx0XFx0XFx0ICAgICAgIHN0cnVjdCBydHdfdHhfcGt0X2luZm8gKnBrdF9pbmZvLFxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0xNFQwNjo0MjozOS4yMDQ2NjM1NDRaIiwiU2VxIjoyOSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NTU1MDkzOTAxNiwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipGb2N1c2luZyBvbiBLZXkgU3ltYm9scyoqXG5cbk9rYXksIHNvIEknbSB0aGlua2luZywgYHJ0d190eGAgbG9va3MgbGlrZSBhIHN0cm9uZyBjYW5kaWRhdGUgZm9yIGEgZm9jdXMgc3ltYm9sLiBBbmQsIGV2ZW4gdGhvdWdoIGl0J3Mgc3RhdGljLCBgcnR3X3VzYl90eF93cml0ZWAgYWxzbyBzZWVtcyBwcm9taXNpbmcsIGVzcGVjaWFsbHkgd2l0aCB0aGUgcG9zc2liaWxpdHkgb2YgU3l6a2FsbGVyIHJlc29sdmluZyBpdC4gV2FpdCwgdGhlIGFjdHVhbCBmdW5jdGlvbiB0aGF0IHdhcyBtb2RpZmllZCBpbiB0aGUgY29udGV4dCBvZiB0aGUgaXNzdWUgaXMgYHJ0d191c2JfdHhfcXVldWVfbWFwcGluZ190b19xc2VsYC4gUmlnaHQsIHJpZ2h0LiBMZXQncyBnZXQgdGhlc2Ugc3ltYm9scyBhZGRlZCBhcyBmb2N1cyBzeW1ib2xzOiBgcnR3X3VzYl90eF93cml0ZWAgYW5kIGFsc28gYHJ0d190eGAuXG5cbk5vdywganVzdCB0byBiZSBjb21wbGV0ZWx5IHN1cmUsIGxldCdzIGRvdWJsZS1jaGVjayBpZiBgcnR3X3VzYl90eF9xdWV1ZV9tYXBwaW5nX3RvX3FzZWxgIGlzIHN0YXRpYy4gWWVzLCBpdCBpcy4gU2luY2UgaXQncyBzdGF0aWMsIGFuZCBJIHRoaW5rIGl0J3MgbGlrZWx5IGlubGluZWQsIGRvZXMgYHJ0d191c2JfdHhfd3JpdGVgIGNhbGwgaXQ/IEFoLCB5ZXMsIGl0IGRvZXMuIFRoYXQgbWVhbnMgaXQgaXMgaW5saW5lZC5cblxuTGV0J3Mgc2hpZnQgb3VyIGZvY3VzIHRvIGludmVzdGlnYXRpbmcgYHJ0d191c2JfdHhfd3JpdGVgIG1vcmUgY2xvc2VseS5cblxuXG4iLCJJbnB1dFRva2VucyI6Mzk2NzEsIk91dHB1dFRva2VucyI6NDUsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoxNjEsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDgtMTRUMDY6NDI6NDQuNzU1NjA1NjVaIiwiU2VxIjozMCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjYxMDUxMzc5LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcInJ0d191c2JfdHhfd3JpdGVcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC91c2IuY1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJkcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3VzYi5jPTU2MD1zdGF0aWMgdTggcnR3X3VzYl90eF9xdWV1ZV9tYXBwaW5nX3RvX3FzZWwoc3RydWN0IHNrX2J1ZmYgKnNrYilcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdXNiLmMtNTgwLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdXNiLmM6NTgxOnN0YXRpYyBpbnQgcnR3X3VzYl90eF93cml0ZShzdHJ1Y3QgcnR3X2RldiAqcnR3ZGV2LFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdXNiLmMtNTgyLVxcdFxcdFxcdCAgICBzdHJ1Y3QgcnR3X3R4X3BrdF9pbmZvICpwa3RfaW5mbyxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdXNiLmM9OTUzPXN0YXRpYyBjb25zdCBzdHJ1Y3QgcnR3X2hjaV9vcHMgcnR3X3VzYl9vcHMgPSB7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC91c2IuYzo5NTQ6XFx0LnR4X3dyaXRlID0gcnR3X3VzYl90eF93cml0ZSxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3VzYi5jLTk1NS1cXHQudHhfa2lja19vZmYgPSBydHdfdXNiX3R4X2tpY2tfb2ZmLFxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0xNFQwNjo0Mjo0NC44MTY2NjIxOVoiLCJTZXEiOjMxLCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo3MzQxOTg4NDM5LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkZ1enppbmcgRm9jdXM6IFJlZmluZW1lbnQgYW5kIFByaW9yaXRpemF0aW9uKipcblxuT2theSwgc28gSSdtIHRyeWluZyB0byBmaWd1cmUgb3V0IHRoZSBiZXN0IGZ1bmN0aW9ucyB0byB0YXJnZXQgZm9yIGZ1enppbmcsIHNwZWNpZmljYWxseSBpbiB0aGlzIFVTQiBUWCBwYXRoLiBMZXQncyBzZWUuLi4gSW5pdGlhbGx5LCBJIHdhcyBsb29raW5nIGF0IGBydHdfdXNiX3R4X3dyaXRlYCwgYW5kIHllcywgSSByZW1lbWJlciBpdCdzIHN0YXRpYy4gQ291bGQgSSB1c2UgYHJ0d190eGA/IFllcCwgaXQncyBub24tc3RhdGljLCB3aGljaCBpcyBnb29kLiBUaGVuIEkgbG9va2VkIGF0IGBydHdfdXNiX3Byb2JlYCwgYnV0IHRoYXQncyBhIHByb2JlIGZ1bmN0aW9uIOKAkyBkZWZpbml0ZWx5IG5vdCBpbiB0aGUgY3JpdGljYWwgcGF0aCBJJ20gaW50ZXJlc3RlZCBpbiBmdXp6aW5nLlxuXG5Ob3csIHRoZSBwcm9tcHQgaXMgdGVsbGluZyBtZSB0byBhdm9pZCBnZW5lcmljIGhvdC1wYXRoIGZ1bmN0aW9ucyB0byBrZWVwIHRoZSB0ZXN0cyBmcm9tIHNrZXdpbmcuIFNvLCBgcnR3X3R4YCwgaXMgaXQgaG90LXBhdGg/IEFic29sdXRlbHkuIEl0J3MgY2FsbGVkIGZvciBldmVyeSBzaW5nbGUgcGFja2V0IHRyYW5zbWl0dGVkLiBJZiBJIGZvbGxvdyB0aGUgcHJvbXB0IGFuZCBkb24ndCBsaXN0IGBydHdfdHhgLCB3aGF0IGFyZSBteSBvdGhlciBvcHRpb25zPyBJIGNvbnNpZGVyZWQgYHJ0d191c2JfdHhfd3JpdGVgIGJ1dCwgZXZlbiB0aG91Z2ggaXQncyBzdGF0aWMsIGl0IGlzIHRoYXQgKnNwZWNpZmljKiBjYWxsYmFjaywgc28gbWF5YmUgaXQncyB0aGUgcmlnaHQgY2hvaWNlIGFmdGVyIGFsbC5cblxuVGhlIHByb21wdCwgaG93ZXZlciwgcmVhbGx5IGVtcGhhc2l6ZXMgYXZvaWRpbmcgdGhlIGhvdC1wYXRoLiBJZiBgcnR3X3R4YCBpcyBob3QtcGF0aCwgaXQgc291bmRzIGxpa2UgKm5vbmUqIG9mIHRoZW0gYXJlIGdyZWF0LiBCdXQsIHRoaXMgY2hhbmdlIGlzIGFsbCBhYm91dCB0aGUgVFggcXVldWUgc2VsZWN0aW9uLiBNYXliZSBJIHNob3VsZCBob2xkIG9mZiwgYW5kIHBlcmhhcHMgbGlzdCBgcnR3X3VzYl90eF93cml0ZWAgYWxvbmU/XG5cbkkgbmVlZCB0byByZS1ldmFsdWF0ZSB3aGF0J3MgcmVhbGx5IGltcG9ydGFudC4gSXQgc2VlbXMgbXkgZm9jdXMgaXMgb24gdGhhdCBgcnR3X3VzYl90eF93cml0ZWAgZnVuY3Rpb24sIGV2ZW4gaWYgaXQgaXMgYSBob3QgcGF0aC5cblxuTm93LCBhIHF1aWNrIGNvbmZpZyBjaGVjay4gYE1BQzgwMjExYCwgYFJUVzg4YCwgYFJUVzg4Xzg4MjJCVWAuLi4gQWhhISBgUlRXODhfODgyMkJVYCBzZWxlY3RzIGBSVFc4OF9VU0JgLiBHb29kLiBMZXQncyBtYWtlIHN1cmUgdGhlcmUgYXJlbid0IGFueSBvdGhlciBVU0IgZHJpdmVycyB0byBiZSBtaW5kZnVsIG9mLlxuXG5cbiIsIklucHV0VG9rZW5zIjo0MDQwOCwiT3V0cHV0VG9rZW5zIjo0MywiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjQ1MiwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wOC0xNFQwNjo0Mjo1Mi4xNTg2NTUzOTlaIiwiU2VxIjozMiwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjU2OTU1MTg5LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcInNlbGVjdCBSVFc4OF9VU0JcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZz04Mj1jb25maWcgUlRXODhfODgyMkJVXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWctODUtXFx0c2VsZWN0IFJUVzg4X0NPUkVcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWc6ODY6XFx0c2VsZWN0IFJUVzg4X1VTQlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZy04Ny1cXHRzZWxlY3QgUlRXODhfODgyMkJcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZz0xMTU9Y29uZmlnIFJUVzg4Xzg4MjJDVVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnLTExOC1cXHRzZWxlY3QgUlRXODhfQ09SRVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZzoxMTk6XFx0c2VsZWN0IFJUVzg4X1VTQlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZy0xMjAtXFx0c2VsZWN0IFJUVzg4Xzg4MjJDXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWc9MTYyPWNvbmZpZyBSVFc4OF84NzIzRFVcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZy0xNjUtXFx0c2VsZWN0IFJUVzg4X0NPUkVcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWc6MTY2OlxcdHNlbGVjdCBSVFc4OF9VU0JcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWctMTY3LVxcdHNlbGVjdCBSVFc4OF84NzIzRFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnPTE5NT1jb25maWcgUlRXODhfODgyMUNVXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWctMTk4LVxcdHNlbGVjdCBSVFc4OF9DT1JFXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnOjE5OTpcXHRzZWxlY3QgUlRXODhfVVNCXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnLTIwMC1cXHRzZWxlY3QgUlRXODhfODgyMUNcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZz0yMDY9Y29uZmlnIFJUVzg4Xzg4MjFBVVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnLTIwOS1cXHRzZWxlY3QgUlRXODhfQ09SRVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZzoyMTA6XFx0c2VsZWN0IFJUVzg4X1VTQlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZy0yMTEtXFx0c2VsZWN0IFJUVzg4Xzg4MjFBXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWc9MjE3PWNvbmZpZyBSVFc4OF84ODEyQVVcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZy0yMjAtXFx0c2VsZWN0IFJUVzg4X0NPUkVcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWc6MjIxOlxcdHNlbGVjdCBSVFc4OF9VU0JcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWctMjIyLVxcdHNlbGVjdCBSVFc4OF84ODEyQVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnPTIzOT1jb25maWcgUlRXODhfODgxNEFVXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWctMjQyLVxcdHNlbGVjdCBSVFc4OF9DT1JFXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnOjI0MzpcXHRzZWxlY3QgUlRXODhfVVNCXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnLTI0NC1cXHRzZWxlY3QgUlRXODhfODgxNEFcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMTRUMDY6NDI6NTIuMjE1NjE0MzY4WiIsIlNlcSI6MzMsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjQwNjc5ODc4OTEsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqTXkgQ3VycmVudCBSZWFzb25pbmcgb24gRHJpdmVyIENvbmZpZ3VyYXRpb24qKlxuXG5Pa2F5LCBzbyBJJ20gbG9va2luZyBhdCB0aGVzZSBkcml2ZXIgb3B0aW9ucywgYW5kIGluaXRpYWxseSwgSSB3YXMgdGhpbmtpbmcgd2UgbmVlZGVkIHRvIGxpc3QgYm90aCBgUlRXODhfODgyMkJVYCBhbmQgYFJUVzg4X1VTQmAuIEJ1dCBob2xkIG9uLi4uIGFmdGVyIGEgcXVpY2sgY2hlY2ssIGBSVFc4OF9VU0JgIGlzIGEgdHJpc3RhdGUsIHNvIHRoYXQgc2ltcGxpZmllcyB0aGluZ3MuIEluIGZhY3QsIGxpc3RpbmcgYm90aCBpcyBhIGxpdHRsZSByZWR1bmRhbnQuIFdlJ2xsIHN0aWNrIHRvIGxpc3RpbmcgYFJUVzg4X1VTQmAgYW5kIGBSVFc4OF84ODIyQlVgLlxuXG5CdXQsIHdhaXQgYSBzZWNvbmQsIGxldCBtZSB0aGluayB0aGlzIHRocm91Z2ggY29tcGxldGVseS4gTG9va2luZyBhdCB0aGUgZGVwZW5kZW5jaWVzIGFnYWluLCBhbmQgeWVzLCBgUlRXODhfVVNCYCBpcyAqc2VsZWN0ZWQgYnkqIGBSVFc4OF84ODIyQlVgLiBTbywgaWYgd2UgZW5hYmxlIGBSVFc4OF84ODIyQlVgLCBgUlRXODhfVVNCYCB3aWxsIGNvbWUgYWxvbmcgZm9yIHRoZSByaWRlLCBhbmQgd2Ugb25seSBuZWVkIHRvIGVuYWJsZSBgUlRXODhfODgyMkJVYC4gU28sIGVuYWJsaW5nIGBSVFc4OF84ODIyQlVgIGlzIHN1ZmZpY2llbnQgdG8gZW5hYmxlIGJvdGguXG5cblRoZXJlZm9yZSwgbGV0J3Mgbm93IGNvbmZpcm0gdGhhdCBgUlRXODhfVVNCYCBpcyAqbm90KiBpbnRlbmRlZCB0byBiZSBlbmFibGVkIGluZGVwZW5kZW50bHkuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjQyMjUzLCJPdXRwdXRUb2tlbnMiOjQzLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MTM0LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTE0VDA2OjQyOjU2LjI4MzYwNTgwOVoiLCJTZXEiOjM0LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MTA3MTc0MTU5LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcImNvbmZpZyBSVFc4OF9VU0JcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZz0yMD1jb25maWcgUlRXODhfU0RJT1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnLTIyLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZzoyMzpjb25maWcgUlRXODhfVVNCXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnLTI0LVxcdHRyaXN0YXRlXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTE0VDA2OjQyOjU2LjM5MDc5MDc5OFoiLCJTZXEiOjM1LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo1NTYwOTYzNjY2LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKk15IEFwcHJvYWNoIHRvIFNlbGVjdGluZyBUaGlzIERldmljZSoqXG5cbk9rYXksIHNvIEknbSBsb29raW5nIGF0IHRoaXMgZGV2aWNlLCBhbmQgdGhlIGZpcnN0IHRoaW5nIEkgbm90aWNlIGlzIHRoYXQgaXQncyBqdXN0ICp0aGVyZSouIE5vIHNwZWNpZmljIHByb21wdCB0byBhY3RpdmF0ZSBpdC4gVGhhdCBtZWFucyBJIG5lZWQgdG8gdHJpZ2dlciBpdCBpbmRpcmVjdGx5LCByaWdodD8gSSBuZWVkIHRvIGdldCBvbmUgb2YgdGhlIGRyaXZlcnMgdGhhdCBjYW4gKnNlbGVjdCogdGhpcyB0aGluZyB0byBraWNrIGluLiBMZXQncyBzZWUuLi4gbG9va2luZyBhdCB0aGUgb3B0aW9ucywgYFJUVzg4Xzg4MjJCVWAgc2VlbXMgbGlrZSBhIGxpa2VseSBjYW5kaWRhdGUuIEl0IGxvb2tzIGxpa2UgaXQgaGFuZGxlcyBkZXZpY2VzIGxpa2UgdGhpcyBvbmUuXG5cbkJ1dCBob2xkIG9uLCBiZWZvcmUgSSBqdW1wIHRvIHRoZSBzcGVjaWZpYyBtb2RlbCBkcml2ZXIsIEkgbmVlZCB0byBtYWtlIHN1cmUgdGhlIGJhc2UgYFJUVzg4YCBkcml2ZXIgaXMgZW5hYmxlZCBmaXJzdC4gVGhhdCdzIHRoZSBmb3VuZGF0aW9uLiBTbywgbGV0IG1lIGNoZWNrIHRoZSBkZXBlbmRlbmNpZXMgZm9yIGBSVFc4OGAuIEkgbmVlZCB0byBtYWtlIHN1cmUgdGhhdCdzIGFsbCBzcXVhcmVkIGF3YXkgYmVmb3JlIEkgZXZlbiBsb29rIGF0IHRoZSBmaW5lciBkZXRhaWxzLiBXZSBkb24ndCB3YW50IHRvIGdldCBhaGVhZCBvZiBvdXJzZWx2ZXMuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjQyODExLCJPdXRwdXRUb2tlbnMiOjQyLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6NzAsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDgtMTRUMDY6NDM6MDEuOTUxNzU3NjU0WiIsIlNlcSI6MzYsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo2MzEzNTg4MCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJtZW51Y29uZmlnIFJUVzg4XCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZ1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJkcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWctMS0jIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wLW9ubHlcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWc6MjptZW51Y29uZmlnIFJUVzg4XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnLTMtXFx0dHJpc3RhdGUgXFxcIlJlYWx0ZWsgODAyLjExYWMgd2lyZWxlc3MgY2hpcHMgc3VwcG9ydFxcXCJcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMTRUMDY6NDM6MDIuMDE0ODk4NTM0WiIsIlNlcSI6MzcsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjQ4MDYyMzMxNzQsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IkhlcmUncyBteSBhdHRlbXB0IGF0IHN1bW1hcml6aW5nIHRoZSB0aG91Z2h0IHByb2Nlc3MgaW4gdGhlIGZpcnN0IHBlcnNvbiwgYXNzdW1pbmcgdGhlIHVzZXIgaXMgYW4gZXhwZXJ0OlxuXG4qKkRlcGVuZGVuY3kgQ2hlY2sqKlxuXG5Pa2F5LCBzbyBJJ20gZGVhbGluZyB3aXRoIGBSVFc4OGAsIGFuZCBzb21ldGhpbmcncyBuYWdnaW5nIGF0IG1lLiBJdCBmZWVscyBsaWtlIGBSVFc4OGAgZGVwZW5kcyBvbiwgb3IgaW50ZXJmYWNlcyB3aXRoLCBgTUFDODAyMTFgLiBUaW1lIHRvIHZlcmlmeSB0aGF0IGFzc3VtcHRpb24uIEJlZm9yZSBJIGRpZyBkZWVwZXIsIEkgbmVlZCB0byBjb25maXJtIHdoZXRoZXIgb3Igbm90IGBSVFc4OGAgcmVsaWVzIG9uIHRoYXQgc3BlY2lmaWMgTUFDIGxheWVyIGltcGxlbWVudGF0aW9uLiBUaGlzIGlzIHRoZSBsb2dpY2FsIGZpcnN0IHN0ZXAgYmVmb3JlIHRyb3VibGVzaG9vdGluZyB3aGF0ZXZlciBpc3N1ZSBJIGhhdmUsIG9yIGV4cGxvcmluZyBob3cgdGhlc2UgdHdvIHJlbGF0ZSB0byBlYWNoIG90aGVyLiBCZXN0IHRvIGdldCB0aGUgYXJjaGl0ZWN0dXJlIHJpZ2h0IGZyb20gdGhlIHN0YXJ0LiBMZXQncyBzZWUuLi4gSSdsbCBwdWxsIHVwIHRoZSBkb2N1bWVudGF0aW9uL2NvZGUvd2hhdGV2ZXIncyByZWxldmFudCBhbmQgY29uZmlybSB0aGF0IHJlbGF0aW9uc2hpcC5cblxuXG4iLCJJbnB1dFRva2VucyI6NDMyMjcsIk91dHB1dFRva2VucyI6MzgsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoyMywiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wOC0xNFQwNjo0MzowNi44MjExMzM2NTdaIiwiU2VxIjozOCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjkyMjQ3Njg5LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcImRlcGVuZHMgb25cIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZz0yPW1lbnVjb25maWcgUlRXODhcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWctMy1cXHR0cmlzdGF0ZSBcXFwiUmVhbHRlayA4MDIuMTFhYyB3aXJlbGVzcyBjaGlwcyBzdXBwb3J0XFxcIlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZzo0OlxcdGRlcGVuZHMgb24gTUFDODAyMTFcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWctNS1cXHRoZWxwXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWc9NjA9Y29uZmlnIFJUVzg4Xzg4MjJCRVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZy02MS1cXHR0cmlzdGF0ZSBcXFwiUmVhbHRlayA4ODIyQkUgUENJIHdpcmVsZXNzIG5ldHdvcmsgYWRhcHRlclxcXCJcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWc6NjI6XFx0ZGVwZW5kcyBvbiBQQ0lcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWctNjMtXFx0c2VsZWN0IFJUVzg4X0NPUkVcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZz03MT1jb25maWcgUlRXODhfODgyMkJTXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnLTcyLVxcdHRyaXN0YXRlIFxcXCJSZWFsdGVrIDg4MjJCUyBTRElPIHdpcmVsZXNzIG5ldHdvcmsgYWRhcHRlclxcXCJcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWc6NzM6XFx0ZGVwZW5kcyBvbiBNTUNcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWctNzQtXFx0c2VsZWN0IFJUVzg4X0NPUkVcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZz04Mj1jb25maWcgUlRXODhfODgyMkJVXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnLTgzLVxcdHRyaXN0YXRlIFxcXCJSZWFsdGVrIDg4MjJCVSBVU0Igd2lyZWxlc3MgbmV0d29yayBhZGFwdGVyXFxcIlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZzo4NDpcXHRkZXBlbmRzIG9uIFVTQlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZy04NS1cXHRzZWxlY3QgUlRXODhfQ09SRVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnPTkzPWNvbmZpZyBSVFc4OF84ODIyQ0VcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWctOTQtXFx0dHJpc3RhdGUgXFxcIlJlYWx0ZWsgODgyMkNFIFBDSSB3aXJlbGVzcyBuZXR3b3JrIGFkYXB0ZXJcXFwiXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnOjk1OlxcdGRlcGVuZHMgb24gUENJXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnLTk2LVxcdHNlbGVjdCBSVFc4OF9DT1JFXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWc9MTA0PWNvbmZpZyBSVFc4OF84ODIyQ1NcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWctMTA1LVxcdHRyaXN0YXRlIFxcXCJSZWFsdGVrIDg4MjJDUyBTRElPIHdpcmVsZXNzIG5ldHdvcmsgYWRhcHRlclxcXCJcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWc6MTA2OlxcdGRlcGVuZHMgb24gTU1DXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnLTEwNy1cXHRzZWxlY3QgUlRXODhfQ09SRVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnPTExNT1jb25maWcgUlRXODhfODgyMkNVXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnLTExNi1cXHR0cmlzdGF0ZSBcXFwiUmVhbHRlayA4ODIyQ1UgVVNCIHdpcmVsZXNzIG5ldHdvcmsgYWRhcHRlclxcXCJcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWc6MTE3OlxcdGRlcGVuZHMgb24gVVNCXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnLTExOC1cXHRzZWxlY3QgUlRXODhfQ09SRVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnPTEyNj1jb25maWcgUlRXODhfODcyM0RFXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnLTEyNy1cXHR0cmlzdGF0ZSBcXFwiUmVhbHRlayA4NzIzREUgUENJIHdpcmVsZXNzIG5ldHdvcmsgYWRhcHRlclxcXCJcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWc6MTI4OlxcdGRlcGVuZHMgb24gUENJXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnLTEyOS1cXHRzZWxlY3QgUlRXODhfQ09SRVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnPTEzNz1jb25maWcgUlRXODhfODcyM0RTXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnLTEzOC1cXHR0cmlzdGF0ZSBcXFwiUmVhbHRlayA4NzIzRFMgU0RJTyB3aXJlbGVzcyBuZXR3b3JrIGFkYXB0ZXJcXFwiXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnOjEzOTpcXHRkZXBlbmRzIG9uIE1NQ1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZy0xNDAtXFx0c2VsZWN0IFJUVzg4X0NPUkVcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZz0xNDg9Y29uZmlnIFJUVzg4Xzg3MjNDU1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZy0xNDktXFx0dHJpc3RhdGUgXFxcIlJlYWx0ZWsgODcyM0NTIFNESU8gd2lyZWxlc3MgbmV0d29yayBhZGFwdGVyXFxcIlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZzoxNTA6XFx0ZGVwZW5kcyBvbiBNTUNcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWctMTUxLVxcdHNlbGVjdCBSVFc4OF9DT1JFXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWc9MTYyPWNvbmZpZyBSVFc4OF84NzIzRFVcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWctMTYzLVxcdHRyaXN0YXRlIFxcXCJSZWFsdGVrIDg3MjNEVSBVU0Igd2lyZWxlc3MgbmV0d29yayBhZGFwdGVyXFxcIlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZzoxNjQ6XFx0ZGVwZW5kcyBvbiBVU0JcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWctMTY1LVxcdHNlbGVjdCBSVFc4OF9DT1JFXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWc9MTczPWNvbmZpZyBSVFc4OF84ODIxQ0VcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWctMTc0LVxcdHRyaXN0YXRlIFxcXCJSZWFsdGVrIDg4MjFDRSBQQ0kgd2lyZWxlc3MgbmV0d29yayBhZGFwdGVyXFxcIlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZzoxNzU6XFx0ZGVwZW5kcyBvbiBQQ0lcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWctMTc2LVxcdHNlbGVjdCBSVFc4OF9DT1JFXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWc9MTg0PWNvbmZpZyBSVFc4OF84ODIxQ1NcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWctMTg1LVxcdHRyaXN0YXRlIFxcXCJSZWFsdGVrIDg4MjFDUyBTRElPIHdpcmVsZXNzIG5ldHdvcmsgYWRhcHRlclxcXCJcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWc6MTg2OlxcdGRlcGVuZHMgb24gTU1DXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnLTE4Ny1cXHRzZWxlY3QgUlRXODhfQ09SRVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnPTE5NT1jb25maWcgUlRXODhfODgyMUNVXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnLTE5Ni1cXHR0cmlzdGF0ZSBcXFwiUmVhbHRlayA4ODIxQ1UgVVNCIHdpcmVsZXNzIG5ldHdvcmsgYWRhcHRlclxcXCJcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWc6MTk3OlxcdGRlcGVuZHMgb24gVVNCXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnLTE5OC1cXHRzZWxlY3QgUlRXODhfQ09SRVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnPTIwNj1jb25maWcgUlRXODhfODgyMUFVXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnLTIwNy1cXHR0cmlzdGF0ZSBcXFwiUmVhbHRlayA4ODIxQVUvODgxMUFVIFVTQiB3aXJlbGVzcyBuZXR3b3JrIGFkYXB0ZXJcXFwiXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnOjIwODpcXHRkZXBlbmRzIG9uIFVTQlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZy0yMDktXFx0c2VsZWN0IFJUVzg4X0NPUkVcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZz0yMTc9Y29uZmlnIFJUVzg4Xzg4MTJBVVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZy0yMTgtXFx0dHJpc3RhdGUgXFxcIlJlYWx0ZWsgODgxMkFVIFVTQiB3aXJlbGVzcyBuZXR3b3JrIGFkYXB0ZXJcXFwiXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnOjIxOTpcXHRkZXBlbmRzIG9uIFVTQlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZy0yMjAtXFx0c2VsZWN0IFJUVzg4X0NPUkVcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZz0yMjg9Y29uZmlnIFJUVzg4Xzg4MTRBRVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZy0yMjktXFx0dHJpc3RhdGUgXFxcIlJlYWx0ZWsgODgxNEFFIFBDSSB3aXJlbGVzcyBuZXR3b3JrIGFkYXB0ZXJcXFwiXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnOjIzMDpcXHRkZXBlbmRzIG9uIFBDSVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZy0yMzEtXFx0c2VsZWN0IFJUVzg4X0NPUkVcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZz0yMzk9Y29uZmlnIFJUVzg4Xzg4MTRBVVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZy0yNDAtXFx0dHJpc3RhdGUgXFxcIlJlYWx0ZWsgODgxNEFVIFVTQiB3aXJlbGVzcyBuZXR3b3JrIGFkYXB0ZXJcXFwiXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnOjI0MTpcXHRkZXBlbmRzIG9uIFVTQlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZy0yNDItXFx0c2VsZWN0IFJUVzg4X0NPUkVcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZz0yNTA9Y29uZmlnIFJUVzg4X0RFQlVHXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnLTI1MS1cXHRib29sIFxcXCJSZWFsdGVrIHJ0dzg4IGRlYnVnIHN1cHBvcnRcXFwiXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnOjI1MjpcXHRkZXBlbmRzIG9uIFJUVzg4X0NPUkVcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWctMjUzLVxcdGhlbHBcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZz0yNTg9Y29uZmlnIFJUVzg4X0RFQlVHRlNcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWctMjU5LVxcdGJvb2wgXFxcIlJlYWx0ZWsgcnR3ODggZGVidWdmcyBzdXBwb3J0XFxcIlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZzoyNjA6XFx0ZGVwZW5kcyBvbiBSVFc4OF9DT1JFXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnLTI2MS1cXHRoZWxwXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWc9MjY2PWNvbmZpZyBSVFc4OF9MRURTXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnLTI2Ny1cXHRib29sXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnOjI2ODpcXHRkZXBlbmRzIG9uIExFRFNfQ0xBU1M9eSB8fCBMRURTX0NMQVNTPU1BQzgwMjExXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnLTI2OS1cXHRkZWZhdWx0IHlcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMTRUMDY6NDM6MDYuOTEzMzg4NDU2WiIsIlNlcSI6MzksIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjExNjYwNjM1MjU3LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKk15IEFuYWx5c2lzIG9mIHRoZSBSZWFsdGVrIHJ0dzg4IFVTQiBEcml2ZXIgZm9yIEZ1enppbmcqKlxuXG5Pa2F5LCBsZXQncyBicmVhayB0aGlzIGRvd24uIEZpcnN0LCBJIG5lZWQgdG8gaWRlbnRpZnkgdGhlIHJlbGV2YW50IGNvbmZpZ3VyYXRpb25zIGFuZCBlbnRyeSBwb2ludHMgZm9yIGZ1enppbmcgdGhpcyBSZWFsdGVrIGRyaXZlci4gSSBzZWUgdGhhdCBgUlRXODhgIGRlcGVuZHMgb24gYE1BQzgwMjExYCwgYW5kIGBSVFc4OF84ODIyQlVgIHNwZWNpZmljYWxseSBkZXBlbmRzIG9uIGBVU0JgLiBTaW5jZSBgTUFDODAyMTFgIGFuZCBgVVNCYCBhcmUgdHlwaWNhbGx5IGVuYWJsZWQgYnkgZGVmYXVsdCwgSSdsbCBmb2N1cyBteSBjb25maWd1cmF0aW9uIGVmZm9ydHMgb24gZW5hYmxpbmcgYFJUVzg4YCBhbmQgYFJUVzg4Xzg4MjJCVWAuXG5cbk5vdyBmb3IgdGhlIGNyaXRpY2FsIHBhcnQ6IHRoZSBmb2N1cyBzeW1ib2xzLiBUaGUgcHJvbXB0IGlzIHN0ZWVyaW5nIG1lIHRvd2FyZHMgbm9uLXN0YXRpYywgbm9uLWlubGluZWQgQVBJIGVudHJ5IHBvaW50cy4gSSBpbml0aWFsbHkgY29uc2lkZXJlZCBgcnR3X3R4YCBhbmQgYHJ0d191c2JfdHhfd3JpdGVgLCBidXQgdGhlbiBJIHJlYWxpemVkIGBydHdfdXNiX3R4X3dyaXRlYCBpcyBzdGF0aWMuIERpZ2dpbmcgZGVlcGVyLCBJIHRyYWNlZCB0aGUgY2FsbCBjaGFpbi4gYHJ0d191c2JfdHhfd3JpdGVgIGlzIGNhbGxlZCB0aHJvdWdoIGEgZnVuY3Rpb24gcG9pbnRlciAoYHJ0d2Rldi1cdTAwM2VoY2kub3BzLVx1MDAzZXR4X3dyaXRlYCksIGFuZCBJIGZvdW5kIGBydHdfaGNpX3R4X3dyaXRlYCB3aGljaCwgd2hpbGUgaW5saW5lLCBpcyBjYWxsZWQgYnkgYHJ0d190eGAgYW5kIGBydHdfdHhxX3B1c2hfc2tiYC4gU28sIEknbGwgbGlzdCBgcnR3X3R4YCBhcyB0aGUgbm9uLXN0YXRpYyBBUEkgZW50cnkgcG9pbnQuXG5cbkkgZG91YmxlLWNoZWNrZWQgYHR4LmNgIGFuZCBjb25maXJtZWQgdGhhdCBgcnR3X3R4YCBpcyBpbmRlZWQgbm9uLXN0YXRpYy4gVGhlbiwgSSBsb29rZWQgZm9yIG90aGVyIHBvdGVudGlhbCBlbnRyeSBwb2ludHMuIGBydHdfdHhxX3B1c2hfc2tiYCBpcyBzdGF0aWMsIGFzIGlzIGBydHdfdHhxX3B1c2hgLiBIb3dldmVyLCBgX19ydHdfdHhfd29ya2AgYW5kIGBydHdfdHhfd29ya2AgYXJlIG5vbi1zdGF0aWMuIEkgY29uZmlybWVkIHRoYXQgYHJ0d190eF93b3JrYCBpcyBub24tc3RhdGljIGFzIHdlbGwuXG5cblRoZXJlZm9yZSwgYWZ0ZXIgYSB0aG9yb3VnaCByZXZpZXcsIEknbSBjb25maWRlbnQgaW4gbXkgYW5hbHlzaXMuXG5cbkhlcmUncyBteSBzdW1tYXJ5OlxuXG4qICAgKipXb3J0aEZ1enppbmc6KiogVHJ1ZSAoYmVjYXVzZSB0aGlzIFRYIHF1ZXVlIGxvZ2ljIGlzIGZ1bmN0aW9uYWxseSBzaWduaWZpY2FudClcbiogICAqKkZvY3VzU3ltYm9sczoqKiBgcnR3X3R4YCwgYHJ0d190eF93b3JrYFxuKiAgICoqRW5hYmxlQ29uZmlnczoqKiBgUlRXODhgLCBgUlRXODhfODgyMkJVYFxuKiAgICoqUmVhc29uaW5nOioqIFRoZSBwYXRjaCB0b3VjaGVzIFRYIHF1ZXVlIHNlbGVjdGlvbiBsb2dpYyBmb3IgYnJvYWRjYXN0L211bHRpY2FzdCBwYWNrZXRzIHdpdGhpbiB0aGUgUmVhbHRlayBydHc4OCBVU0IgZHJpdmVyLiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBhcmVhIHJlYWNoYWJsZSB2aWEgbWFjODAyMTEgd2hlbiBzZW5kaW5nIHBhY2tldHMgb3ZlciBhIFVTQiBpbnRlcmZhY2UuXG5cbkZpbmFsbHksIHdoaWxlIG15IGluaXRpYWwgYW5hbHlzaXMgc3VnZ2VzdGVkIGBSVFc4OF84ODIyQlVgIGFzIHRoZSBvbmx5IFVTQiBkcml2ZXIsIGEgcXVpY2sgY2hlY2sgb2Ygb3RoZXIgYXZhaWxhYmxlIFJUVzg4IGRyaXZlcnMgaW5kaWNhdGVzIHRoYXQgc2VsZWN0aW5nIHRoaXMgaXMgZW5vdWdoIHRvIGVuYWJsZSBVU0IgY29tcGlsYXRpb24uXG5cbkxldCdzIGNhbGwgc2V0LXJlc3VsdHMuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjQ2MTY3LCJPdXRwdXRUb2tlbnMiOjExOSwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjg0NywiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wOC0xNFQwNjo0MzoxOC41NzQwMjcxNDNaIiwiU2VxIjo0MCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoic2V0LXJlc3VsdHMiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoxMjQ5NzYwOTksIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IFtcbiAgICBcIlJUVzg4XCIsXG4gICAgXCJSVFc4OF84ODIyQlVcIlxuICBdLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXG4gICAgXCJydHdfdHhcIixcbiAgICBcInJ0d190eF93b3JrXCJcbiAgXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIFRYIHF1ZXVlIHNlbGVjdGlvbiBsb2dpYyBmb3IgYnJvYWRjYXN0L211bHRpY2FzdCBwYWNrZXRzIGluIHRoZSBSZWFsdGVrIHJ0dzg4IFVTQiBkcml2ZXIuIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSBpbiB0aGUgZHJpdmVyJ3MgVFggcGF0aCwgcmVhY2hhYmxlIHZpYSBtYWM4MDIxMSB3aGVuIHNlbmRpbmcgcGFja2V0cyBvdmVyIGEgVVNCIGludGVyZmFjZS5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogdHJ1ZVxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXG4gICAgXCJSVFc4OFwiLFxuICAgIFwiUlRXODhfODgyMkJVXCJcbiAgXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW1xuICAgIFwicnR3X3R4XCIsXG4gICAgXCJydHdfdHhfd29ya1wiXG4gIF0sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBUWCBxdWV1ZSBzZWxlY3Rpb24gbG9naWMgZm9yIGJyb2FkY2FzdC9tdWx0aWNhc3QgcGFja2V0cyBpbiB0aGUgUmVhbHRlayBydHc4OCBVU0IgZHJpdmVyLiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgaW4gdGhlIGRyaXZlcidzIFRYIHBhdGgsIHJlYWNoYWJsZSB2aWEgbWFjODAyMTEgd2hlbiBzZW5kaW5nIHBhY2tldHMgb3ZlciBhIFVTQiBpbnRlcmZhY2UuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IHRydWVcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTE0VDA2OjQzOjE4LjY5OTAxMDAyMloiLCJTZXEiOjQxLCJOZXN0aW5nIjoxLCJUeXBlIjoiYWN0aW9uIiwiTmFtZSI6IklmIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MTc5ODc3MzgzNTYsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJXb3J0aEZ1enppbmdcIjogdHJ1ZVxufSIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0xNFQwNjo0MzoxOC42OTk2MDkxODJaIiwiU2VxIjo0MiwiTmVzdGluZyI6MiwiVHlwZSI6ImFnZW50IiwiTmFtZSI6Imttc2FuLWV2YWx1YXRvciIsIk1vZGVsIjoiYmVzdC1leHBlbnNpdmUiLCJEdXJhdGlvbiI6MTc5ODcxMzMyODYsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIktNU0FOUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBxdWV1ZSBzZWxlY3Rpb24gbG9naWMgZm9yIHRyYW5zbWl0dGVkIHBhY2tldHMgaW4gdGhlIFJlYWx0ZWsgcnR3ODggVVNCIGRyaXZlci4gSXQgY2hlY2tzIGEgZmxhZyBpbiB0aGUgYGllZWU4MDIxMV90eF9pbmZvYCBzdHJ1Y3QgKHN0b3JlZCBpbiBgc2tiLVxcdTAwM2VjYmApIHRvIGRldGVybWluZSB0aGUgYXBwcm9wcmlhdGUgcXVldWUgZm9yIGJyb2FkY2FzdC9tdWx0aWNhc3QgcGFja2V0cy4gVGhlIGBza2ItXFx1MDAzZWNiYCBmaWVsZCBpcyBmdWxseSBpbml0aWFsaXplZCBieSB0aGUgbWFjODAyMTEgc3Vic3lzdGVtIGJlZm9yZSB0aGUgcGFja2V0IGlzIHBhc3NlZCB0byB0aGUgZHJpdmVyIGZvciB0cmFuc21pc3Npb24uIFRoZXJlIGlzIG5vIHJpc2sgb2YgcmVhZGluZyB1bmluaXRpYWxpemVkIG1lbW9yeSwgbm9yIGRvZXMgdGhpcyBwYXRjaCBpbnRyb2R1Y2UgYW55IG5ldyBhbGxvY2F0aW9ucyBvciBzdHJ1Y3R1cmVzIHRoYXQgY291bGQgbGVhayB1bmluaXRpYWxpemVkIGRhdGEgdG8gdXNlciBzcGFjZSBvciBoYXJkd2FyZS4gVGhlIGlzc3VlIGlzIGEgcHVyZWx5IGxvZ2ljYWwgYnVnIGluIHF1ZXVlIGFzc2lnbm1lbnQsIHdoaWNoIGRvZXMgbm90IHJlcXVpcmUgS01TQU4gdG8gZGV0ZWN0LiBTdGFuZGFyZCB0ZXN0aW5nIG9yIEtBU0FOIGlzIHN1ZmZpY2llbnQgZm9yIGdlbmVyYWwgbWVtb3J5IHNhZmV0eSwgYW5kIEtNU0FOIGlzIG5vdCBhcHBsaWNhYmxlIGhlcmUuXCIsXG4gIFwiTmVlZHNLTVNBTlwiOiBmYWxzZVxufSIsIkluc3RydWN0aW9uIjoiWW91IGFyZSBhbiBleHBlcnQgTGludXgga2VybmVsIHNlY3VyaXR5IGVuZ2luZWVyIHNwZWNpYWxpemluZyBpbiBrZXJuZWwgbWVtb3J5XG5lcnJvciBkZXRlY3RvcnMgKEtBU0FOIGFuZCBLTVNBTikuIFlvdXIgam9iIGlzIHRvIHJldmlldyB0aGUgcHJvdmlkZWQgcGF0Y2ggc2VyaWVzIGFuZFxuZGV0ZXJtaW5lIGlmIHRoZSBjb2RlIGNoYW5nZXMganVzdGlmeSBzcGF3bmluZyBhIGRlZGljYXRlZCBLTVNBTiAoS2VybmVsTWVtb3J5U2FuaXRpemVyKVxuZnV6emluZyBzZXNzaW9uIGluIGFkZGl0aW9uIHRvIHN0YW5kYXJkIEtBU0FOIGZ1enppbmcuXG5cbkNSSVRJQ0FMIERJU1RJTkNUSU9OIEJFVFdFRU4gS0FTQU4gQU5EIEtNU0FOOlxuLSBTdGFuZGFyZCBLQVNBTiBrZXJuZWwgYnVpbGRzICh1cHN0cmVhbS1hcHBhcm1vci1rYXNhbi5jb25maWcpIGFscmVhZHkgZW5hYmxlXG4gIGEgY29tcHJlaGVuc2l2ZSBzdWl0ZSBvZiBkZWJ1Z2dpbmcgdG9vbHMgYW5kIHNhbml0aXplcnMsIGluY2x1ZGluZyBLQVNBTlxuICAob3V0LW9mLWJvdW5kcyBhY2Nlc3NlcywgdXNlLWFmdGVyLWZyZWUsIGRvdWJsZSBmcmVlLCBpbnZhbGlkIGZyZWUpLCBMT0NLREVQXG4gIChsb2NraW5nIGJ1Z3MgYW5kIGRlYWRsb2NrcyksIFVCLXNhbml0aXplcnMsIGFuZCBtZW1vcnkgY29ycnVwdGlvbiBjaGVja3MuXG4tIEtNU0FOIChLZXJuZWxNZW1vcnlTYW5pdGl6ZXIpIGRldGVjdHMgcmVhZHMgb2YgVU5JTklUSUFMSVpFRCBtZW1vcnkgKHN0YWNrLCBoZWFwLFxuICBvciBwYWdlIGFsbG9jYXRpb25zKSBhbmQga2VybmVsLXRvLXVzZXIgbWVtb3J5IGluZm8tbGVha3MuXG5cblJ1bGU6IFRIRVJFIElTIE5PIFNFTlNFIElOIFJVTk5JTkcgQSBLTVNBTiBTRVNTSU9OIElGIEEgQlVHIENBTiBCRSBDQVVHSFQgQlkgS0FTQU4sXG5MT0NLREVQLCBPUiBPVEhFUiBTVEFOREFSRCBCVUcgREVURUNUT1JTLlxuQSBkZWRpY2F0ZWQgS01TQU4gZnV6emluZyBzZXNzaW9uIGluY3VycyBzaWduaWZpY2FudCByZXNvdXJjZSBjb3N0cy4gWW91IG11c3QgT05MWVxuc2V0IE5lZWRzS01TQU49dHJ1ZSBpZiB0aGUgY29kZSBjaGFuZ2VzIGludHJvZHVjZSBvciBleHBvc2UgVU5JTklUSUFMSVpFRCBNRU1PUlkgcmlza3NcbnRoYXQgYXJlIGRldGVjdGVkIE9OTFkgYnkgS01TQU4uXG5cbkxvb2sgaG9saXN0aWNhbGx5IGF0IHRoZSBwYXRjaCBzZXJpZXMgYW5kIHN1cnJvdW5kaW5nIGNvZGUuIEV2ZW4gaWYgbm8gZGlyZWN0XG51bmluaXRpYWxpemVkIGZpZWxkIGFjY2Vzc2VzIG9yIG5ldyBidWZmZXIgYWxsb2NhdGlvbnMgYXJlIGFkZGVkIGluIHRoZSBkaWZmIGl0c2VsZixcbmEgcGF0Y2ggbWF5IGFsdGVyIGNvbnRyb2wgZmxvdywgYm91bmRzIGNoZWNraW5nLCBvciBkYXRhIGxlbmd0aCBjYWxjdWxhdGlvbnMgaW4gd2F5c1xudGhhdCBjaGFuZ2UgaG93IHRoZSByZXN0IG9mIHRoZSBjb2RlIG9wZXJhdGVzIG9uIGV4aXN0aW5nIGJ1ZmZlcnMgKGUuZy4gYWxsb3dpbmdcbnVuaW5pdGlhbGl6ZWQgc3RhY2svaGVhcCBtZW1vcnkgdG8gYmUgcmVhZCwgY29waWVkIHRvIHVzZXIgc3BhY2UsIG9yIHVzZWQgaW4gY29udHJvbFxuZmxvdykuIERvIG5vdCBoZXNpdGF0ZSB0byB1c2UgeW91ciBjb2RlIGFjY2VzcyB0b29scyB0byBpbnNwZWN0IHRoZSBzdXJyb3VuZGluZyBjb2RlLFxuY2FsbGVkIGZ1bmN0aW9ucywgYW5kIGNhbGxlcnMuXG5cblNldCBOZWVkc0tNU0FOPXRydWUgT05MWSBJRiB0aGUgcGF0Y2ggaW50cm9kdWNlcyBvciBtb2RpZmllczpcbjEuIEtlcm5lbCBzdHJ1Y3R1cmVzIHNlbnQgdG8gdXNlciBzcGFjZSAodmlhIGNvcHlfdG9fdXNlciwgcHV0X3VzZXIsIG5ldGxpbmsgc2tiXG4gICBhdHRyaWJ1dGVzLCBpb2N0bCBvdXRwdXQgYXJndW1lbnRzLCBzb2NrZXQgb3B0aW9ucywgb3IgQlBGIGJ1ZmZlcnMpIHdoZXJlIGZpZWxkc1xuICAgb3Igc3RydWN0dXJlIHBhZGRpbmcgbWlnaHQgbm90IGJlIGZ1bGx5IGluaXRpYWxpemVkL3plcm9lZC5cbjIuIENvbmRpdGlvbmFsIGxvZ2ljIG9yIGJyYW5jaGluZyB0aGF0IGRlcGVuZHMgb24gcG90ZW50aWFsbHkgdW5pbml0aWFsaXplZCB2YXJpYWJsZXNcbiAgIG9yIHN0cnVjdCBmaWVsZHMuXG4zLiBBbGxvY2F0aW9uIG9yIGluaXRpYWxpemF0aW9uIG9mIGNvbXBsZXggZGF0YSBzdHJ1Y3R1cmVzIHdoZXJlIHVuaW5pdGlhbGl6ZWQgZmllbGRzXG4gICBjb3VsZCBiZSByZWFkIGxhdGVyIGluIHJlYWNoYWJsZSBjb2RlIHBhdGhzLlxuNC4gQm91bmRzIGNoZWNrcywgbGVuZ3Rocywgb3IgbG9naWMgaW4gYSB3YXkgdGhhdCBhbGxvd3Mgc3Vycm91bmRpbmcgY29kZSB0byBhY2Nlc3NcbiAgIHVuaW5pdGlhbGl6ZWQgYnl0ZXMgb2YgZXhpc3RpbmcgYnVmZmVycy5cblxuU2V0IE5lZWRzS01TQU49ZmFsc2UgSUY6XG4tIFRoZSBjb2RlIGNoYW5nZXMgcHJpbWFyaWx5IHJpc2sgb3V0LW9mLWJvdW5kcyBhY2Nlc3MsIGFycmF5IG92ZXJmbG93cywgTlVMTCBwb2ludGVyXG4gIGRlcmVmZXJlbmNlcywgbG9ja2luZyBkZWFkbG9ja3MsIG9yIHVzZS1hZnRlci1mcmVlIGJ1Z3MgKHRoZXNlIGFyZSBhbHJlYWR5IGNhdWdodFxuICBieSBLQVNBTiwgTE9DS0RFUCwgb3Igc3RhbmRhcmQgYnVnIGRldGVjdG9ycykuXG4tIEFsbCBzdGFjay9oZWFwIHN0cnVjdHVyZXMgdG91Y2hlZCBvciBpbnRyb2R1Y2VkIGJ5IHRoZSBwYXRjaCBhcmUgZnVsbHkgemVyb2VkXG4gIG9yIGluaXRpYWxpemVkIChlLmcuIHVzaW5nID0gezB9LCBtZW1zZXQsIGt6YWxsb2MpIGJlZm9yZSBiZWluZyByZWFkIG9yIGNvcGllZC5cbi0gVGhlIHBhdGNoIGRvZXMgbm90IGludHJvZHVjZSBhbnkgcmlzayBvZiB1bmluaXRpYWxpemVkIG1lbW9yeSB1c2FnZSBvciBpbmZvLWxlYWtzLlxuXG5Vc2UgeW91ciBjb2RlIGFjY2VzcyB0b29scyB0byBpbnNwZWN0IHRoZSBzdXJyb3VuZGluZyBjb2RlIGlmIG5lY2Vzc2FyeSwgdGhlbiBwcm92aWRlXG5kZXRhaWxlZCBLTVNBTlJlYXNvbmluZyBjb250cmFzdGluZyBLQVNBTiB2cyBLTVNBTiBhcHBsaWNhYmlsaXR5IGZvciB0aGlzIHBhdGNoLlxuUHJlZmVyIGNhbGxpbmcgc2V2ZXJhbCB0b29scyBhdCB0aGUgc2FtZSB0aW1lIHRvIHNhdmUgcm91bmQtdHJpcHMuXG5cblxuVXNlIHNldC1yZXN1bHRzIHRvb2wgdG8gcHJvdmlkZSByZXN1bHRzIG9mIHRoZSBhbmFseXNpcy5cbkl0IG11c3QgYmUgY2FsbGVkIGV4YWN0bHkgb25jZSBiZWZvcmUgdGhlIGZpbmFsIHJlcGx5LlxuSWdub3JlIHJlc3VsdHMgb2YgdGhpcyB0b29sLlxuIiwiUHJvbXB0IjoiRm9yIHlvdXIgY29udmVuaWVuY2UsIGhlcmUgaXMgdGhlIGRpZmYgb2YgdGhlIGNoYW5nZXM6XG5jb21taXQgNWZiMmY2ZTYxYjI1NjhkYzJjM2QwOTc4MjNmZjI4ODZhOTVhOTc3OVxuQXV0aG9yOiBzeXotY2x1c3RlciBcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVx1MDAzZVxuRGF0ZTogICBGcmkgQXVnIDE0IDA2OjQxOjQxIDIwMjYgKzAwMDBcblxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xuXG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC91c2IuYyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdXNiLmNcbmluZGV4IDY0ZTFjMzQyMGUwYTguLjQzYjljZGI0YTc5YjAgMTAwNjQ0XG4tLS0gYS9kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3VzYi5jXG4rKysgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3VzYi5jXG5AQCAtNTYwLDYgKzU2MCw3IEBAIHN0YXRpYyBpbnQgcnR3X3VzYl93cml0ZV9kYXRhX2gyYyhzdHJ1Y3QgcnR3X2RldiAqcnR3ZGV2LCB1OCAqYnVmLCB1MzIgc2l6ZSlcbiBzdGF0aWMgdTggcnR3X3VzYl90eF9xdWV1ZV9tYXBwaW5nX3RvX3FzZWwoc3RydWN0IHNrX2J1ZmYgKnNrYilcbiB7XG4gXHRzdHJ1Y3QgaWVlZTgwMjExX2hkciAqaGRyID0gKHN0cnVjdCBpZWVlODAyMTFfaGRyICopc2tiLVx1MDAzZWRhdGE7XG4rXHRzdHJ1Y3QgaWVlZTgwMjExX3R4X2luZm8gKmluZm8gPSBJRUVFODAyMTFfU0tCX0NCKHNrYik7XG4gXHRfX2xlMTYgZmMgPSBoZHItXHUwMDNlZnJhbWVfY29udHJvbDtcbiBcdHU4IHFzZWw7XG4gXG5AQCAtNTY3LDcgKzU2OCw4IEBAIHN0YXRpYyB1OCBydHdfdXNiX3R4X3F1ZXVlX21hcHBpbmdfdG9fcXNlbChzdHJ1Y3Qgc2tfYnVmZiAqc2tiKVxuIFx0XHRxc2VsID0gVFhfREVTQ19RU0VMX01HTVQ7XG4gXHRlbHNlIGlmIChpc19icm9hZGNhc3RfZXRoZXJfYWRkcihoZHItXHUwMDNlYWRkcjEpIHx8XG4gXHRcdCBpc19tdWx0aWNhc3RfZXRoZXJfYWRkcihoZHItXHUwMDNlYWRkcjEpKVxuLVx0XHRxc2VsID0gVFhfREVTQ19RU0VMX0hJR0g7XG4rXHRcdHFzZWwgPSAoaW5mby1cdTAwM2VmbGFncyBcdTAwMjYgSUVFRTgwMjExX1RYX0NUTF9TRU5EX0FGVEVSX0RUSU0pID9cbitcdFx0ICAgICAgIFRYX0RFU0NfUVNFTF9ISUdIIDogc2tiLVx1MDAzZXByaW9yaXR5O1xuIFx0ZWxzZSBpZiAoc2tiX2dldF9xdWV1ZV9tYXBwaW5nKHNrYikgXHUwMDNjPSBJRUVFODAyMTFfQUNfQkspXG4gXHRcdHFzZWwgPSBza2ItXHUwMDNlcHJpb3JpdHk7XG4gXHRlbHNlXG4iLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0xNFQwNjo0MzoxOC42OTk2MTAxNDJaIiwiU2VxIjo0MywiTmVzdGluZyI6MywiVHlwZSI6ImxsbSIsIk5hbWUiOiJrbXNhbi1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NTk0MDY0NDI2MywiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipBbmFseXppbmcgYSBQb3RlbnRpYWwgS2VybmVsIE1lbW9yeSBTYWZldHkgSXNzdWUqKlxuXG5Pa2F5LCBzbyBJJ20gbG9va2luZyBhdCB0aGlzIHBhdGNoIGluIGBkcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3VzYi5jYC4gSXQncyBhIG1vZGlmaWNhdGlvbiB0byB0aGUgYHJ0d191c2JfdHhfcXVldWVfbWFwcGluZ190b19xc2VsYCBmdW5jdGlvbiwgYW5kIHRoZSBjaGFuZ2UgaXMgYSBsaXR0bGUgY29uY2VybmluZy4gVGhleSd2ZSBpbnRyb2R1Y2VkIGBzdHJ1Y3QgaWVlZTgwMjExX3R4X2luZm8gKmluZm8gPSBJRUVFODAyMTFfU0tCX0NCKHNrYik7YCBhbmQgdGhlbiBhbHRlcmVkIHRoZSBsb2dpYyB0byB1c2UgYGluZm8tXHUwMDNlZmxhZ3NgLiBTcGVjaWZpY2FsbHksIGl0J3Mgbm93IGNoZWNraW5nIGAoaW5mby1cdTAwM2VmbGFncyBcdTAwMjYgSUVFRTgwMjExX1RYX0NUTF9TRU5EX0FGVEVSX0RUSU0pYC5cblxuTXkgaW1tZWRpYXRlIHRob3VnaHQgaXM6IGNvdWxkIGBpbmZvLVx1MDAzZWZsYWdzYCBiZSB1bmluaXRpYWxpemVkPyBBbnl0aW1lIEkgc2VlIGFuIGFjY2VzcyB0byBhIHN0cnVjdHVyZSBtZW1iZXIgdGhhdCdzIHBvdGVudGlhbGx5IGRlcml2ZWQgZnJvbSBhIG1hY3JvLCBteSBhbnRlbm5hIGdvZXMgdXAuIGBJRUVFODAyMTFfU0tCX0NCKHNrYilgIGlzIGp1c3QgYWNjZXNzaW5nIGBza2ItXHUwMDNlY2JgLCB3aGljaCBpcyB0aGUgY29udHJvbCBidWZmZXIuIFRoZSBjcml0aWNhbCBxdWVzdGlvbiBoZXJlIGlzIHdoZXRoZXIgYHNrYi1cdTAwM2VjYmAgaXMgZ3VhcmFudGVlZCB0byBiZSBpbml0aWFsaXplZCBiZWZvcmUgYHJ0d191c2JfdHhfcXVldWVfbWFwcGluZ190b19xc2VsYCBpcyBjYWxsZWQuXG5cbkZyb20gbXkgZXhwZXJpZW5jZSwgdGhlIGBtYWM4MDIxMWAgbGF5ZXIgaXMgdXN1YWxseSByZXNwb25zaWJsZSBmb3IgaW5pdGlhbGl6aW5nIGBJRUVFODAyMTFfU0tCX0NCKHNrYilgIOKAkyBpdCdzIHR5cGljYWxseSBzZXQgdXAgZm9yIG91dGdvaW5nIHBhY2tldHMuIElmIGBpbmZvLVx1MDAzZWZsYWdzYCBoYXBwZW5zIHRvIGJlIHVuaW5pdGlhbGl6ZWQsIHRoZW4gd2UgY291bGQgYmUgZmFjaW5nIGEgS2VybmVsIE1lbW9yeSBTYW5pdGl6ZXIgKEtNU0FOKSBpc3N1ZSwgd2hpY2ggd291bGQgYmUgYmFkIG5ld3MgYmVhcnMuIEhvd2V2ZXIsIHRoZSBuZXR3b3JraW5nIHN0YWNrIGFuZC9vciBgbWFjODAyMTFgIGdlbmVyYWxseSBkbyBhIGdvb2Qgam9iIG9mIHplcm9pbmcgb3IgaW5pdGlhbGl6aW5nIGBza2ItXHUwMDNlY2JgIGJlZm9yZSBpdCBoaXRzIHRoZSBkcml2ZXIuIFN0aWxsLCBJJ20gbm90IHRha2luZyBhbnl0aGluZyBmb3IgZ3JhbnRlZCwgc28gSSdtIGdvaW5nIHRvIHRyYWNrIGRvd24gZXZlcnkgY2FsbCB0byBgcnR3X3VzYl90eF9xdWV1ZV9tYXBwaW5nX3RvX3FzZWxgIGluIHRoZSBjb2RlLiBJIG5lZWQgdG8gdW5kZXJzdGFuZCB3aGVyZSB0aGlzIGZ1bmN0aW9uIGlzIGJlaW5nIHVzZWQgdG8gbWFrZSBhIGRldGVybWluYXRpb24gYWJvdXQgd2hldGhlciB0aGUgcGF0Y2ggaXMgdHJ1bHkgc2FmZS5cblxuXG4iLCJJbnB1dFRva2VucyI6MjI3MSwiT3V0cHV0VG9rZW5zIjo1MiwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjMyNywiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTE0VDA2OjQzOjI0LjY0MDI1ODQzNVoiLCJTZXEiOjQ0LCJOZXN0aW5nIjozLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6Njk4MzU1NjAsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwicnR3X3VzYl90eF9xdWV1ZV9tYXBwaW5nX3RvX3FzZWxcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC91c2IuY1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJkcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3VzYi5jPTU1MD1zdGF0aWMgaW50IHJ0d191c2Jfd3JpdGVfZGF0YV9oMmMoc3RydWN0IHJ0d19kZXYgKnJ0d2RldiwgdTggKmJ1ZiwgdTMyIHNpemUpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3VzYi5jLTU1OS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3VzYi5jOjU2MDpzdGF0aWMgdTggcnR3X3VzYl90eF9xdWV1ZV9tYXBwaW5nX3RvX3FzZWwoc3RydWN0IHNrX2J1ZmYgKnNrYilcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3VzYi5jLTU2MS17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3VzYi5jPTU4MT1zdGF0aWMgaW50IHJ0d191c2JfdHhfd3JpdGUoc3RydWN0IHJ0d19kZXYgKnJ0d2RldixcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdXNiLmMtNTkwLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdXNiLmM6NTkxOlxcdHBrdF9pbmZvLVxcdTAwM2Vxc2VsID0gcnR3X3VzYl90eF9xdWV1ZV9tYXBwaW5nX3RvX3FzZWwoc2tiKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3VzYi5jLTU5Mi1cXHRwa3RfZGVzYyA9IHNrYl9wdXNoKHNrYiwgY2hpcC1cXHUwMDNldHhfcGt0X2Rlc2Nfc3opO1xcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0xNFQwNjo0MzoyNC43MTAwOTgyOTRaIiwiU2VxIjo0NSwiTmVzdGluZyI6MywiVHlwZSI6ImxsbSIsIk5hbWUiOiJrbXNhbi1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6Mjg0MjkyNzc2MiwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiSGVyZSdzIG15IHRha2Ugb24gdGhlIHRob3VnaHQgcHJvY2VzcywgYXMgaWYgaXQgd2VyZSBteSBvd246XG5cbioqSW52ZXN0aWdhdGluZyB0aGUgVVNCIFRYIFdyaXRlIEZ1bmN0aW9uKipcblxuT2theSwgSSdtIHRyYWNpbmcgZG93biB0aGlzIGBydHdfdXNiX3R4X3dyaXRlYCBmdW5jdGlvbi4gVGhlIGNvZGUgc2F5cyBpdCdzIGNhbGxpbmcgYHJ0d191c2JfdHhfcXVldWVfbWFwcGluZ190b19xc2VsYC4gTXkgaW1tZWRpYXRlIHRob3VnaHQgaXMsIEkgbmVlZCB0byB1bmRlcnN0YW5kIHRoZSBjYWxsIGdyYXBoIHRvIHRoaXMgZnVuY3Rpb24gdG8gZ2V0IHRoZSBjb21wbGV0ZSBwaWN0dXJlLiBXaGVyZSBlbHNlIGlzIHRoaXMgYHJ0d191c2JfdHhfd3JpdGVgIGZ1bmN0aW9uIGV2ZW4gKnVzZWQqPyBJJ20gZ29pbmcgdG8gaGF2ZSB0byBmaW5kIHRoZSBjYWxsIHNpdGVzLlxuXG5cbiIsIklucHV0VG9rZW5zIjozNDM0LCJPdXRwdXRUb2tlbnMiOjQ1LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6NDcsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDgtMTRUMDY6NDM6MjcuNTUzMDI4ODI2WiIsIlNlcSI6NDYsIk5lc3RpbmciOjMsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo2MjM2MTA4MCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJydHdfdXNiX3R4X3dyaXRlXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdXNiLmNcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC91c2IuYz01NjA9c3RhdGljIHU4IHJ0d191c2JfdHhfcXVldWVfbWFwcGluZ190b19xc2VsKHN0cnVjdCBza19idWZmICpza2IpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3VzYi5jLTU4MC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3VzYi5jOjU4MTpzdGF0aWMgaW50IHJ0d191c2JfdHhfd3JpdGUoc3RydWN0IHJ0d19kZXYgKnJ0d2RldixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3VzYi5jLTU4Mi1cXHRcXHRcXHQgICAgc3RydWN0IHJ0d190eF9wa3RfaW5mbyAqcGt0X2luZm8sXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3VzYi5jPTk1Mz1zdGF0aWMgY29uc3Qgc3RydWN0IHJ0d19oY2lfb3BzIHJ0d191c2Jfb3BzID0ge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdXNiLmM6OTU0OlxcdC50eF93cml0ZSA9IHJ0d191c2JfdHhfd3JpdGUsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC91c2IuYy05NTUtXFx0LnR4X2tpY2tfb2ZmID0gcnR3X3VzYl90eF9raWNrX29mZixcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMTRUMDY6NDM6MjcuNjE1Mzk4NjY2WiIsIlNlcSI6NDcsIk5lc3RpbmciOjMsIlR5cGUiOiJsbG0iLCJOYW1lIjoia21zYW4tZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjkwNzEzMTQwMTIsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqTXkgQXNzZXNzbWVudCBvZiB0aGUgUmVhbHRlayBydHc4OCBVU0IgRHJpdmVyIFBhdGNoKipcblxuT2theSwgc28gdGhpcyBwYXRjaCBpcyB0b3VjaGluZyB0aGUgYHJ0d19oY2lfb3BzYCB3aXRoaW4gdGhlIFJlYWx0ZWsgcnR3ODggVVNCIGRyaXZlci4gSXQncyByZWxhdGVkIHRvIHRoZSB0cmFuc21pdCBwYXRoLCBzcGVjaWZpY2FsbHkgaW4gYHR4LmNgIG9yIGEgc2ltaWxhciBmaWxlLCB3aGVyZSB0aGUgY29yZSBkcml2ZXIgZ2V0cyBpbnZvbHZlZC4gSSBzZWUgdGhhdCBgc2tiLVx1MDAzZWNiYCBpcyBiZWluZyB1c2VkIHRvIHN0b3JlIHRoZSBgaWVlZTgwMjExX3R4X2luZm9gIHN0cnVjdCwgd2hpY2ggaXMgaW5pdGlhbGl6ZWQgYnkgbWFjODAyMTEuIE15IGltbWVkaWF0ZSBjb25jZXJuIHdhcyB3aGV0aGVyIHRoaXMgcGF0Y2ggaW50cm9kdWNlcyBhbnkgdW5pbml0aWFsaXplZCBtZW1vcnkgcmVhZHMuXG5cbkxvb2tpbmcgYXQgdGhlIGxvZ2ljLCB0aGUgcGF0Y2ggY2hhbmdlcyBob3cgdGhlIGBxc2VsYCB2YXJpYWJsZSBpcyBhc3NpZ25lZC4gSXQgdXNlZCB0byBiZSBoYXJkY29kZWQgdG8gYFRYX0RFU0NfUVNFTF9ISUdIYCwgYnV0IG5vdyBpdCdzIGNvbmRpdGlvbmFsbHkgc2V0IGJhc2VkIG9uIGBpbmZvLVx1MDAzZWZsYWdzYCBhbmQgYHNrYi1cdTAwM2Vwcmlvcml0eWAuIFRoZSBrZXkgaGVyZSBpcyB0aGF0IGBza2ItXHUwMDNlY2JgLCBhbmQgdGhlcmVmb3JlIGBpbmZvYCwgaXMgKmZ1bGx5IGluaXRpYWxpemVkKiBieSBtYWM4MDIxMSAqYmVmb3JlKiB0aGUgZHJpdmVyIGV2ZW4gc2VlcyBpdC4gVGhpcyBtZWFucyB0aGVyZSdzIG5vIHJpc2sgb2YgcmVhZGluZyB1bmluaXRpYWxpemVkIG1lbW9yeSwgd2hpY2ggaXMgd2hhdCBJIHdhcyBpbml0aWFsbHkgY29uY2VybmVkIGFib3V0LlxuXG5Fc3NlbnRpYWxseSwgdGhpcyBpcyBhIGxvZ2ljIGNoYW5nZSB0byBjb3JyZWN0bHkgYXNzaWduIGBxc2VsYC4gQmVmb3JlLCBtdWx0aWNhc3QvYnJvYWRjYXN0IGZyYW1lcyB3ZXJlIGFsd2F5cyBmb3JjZWQgdG8gYFRYX0RFU0NfUVNFTF9ISUdIYCwgd2hpY2ggaXMgaW5jb3JyZWN0LiBUaGUgcGF0Y2ggZml4ZXMgdGhpcyBieSB1c2luZyBgc2tiLVx1MDAzZXByaW9yaXR5YCB1bmxlc3MgdGhlIGBJRUVFODAyMTFfVFhfQ1RMX1NFTkRfQUZURVJfRFRJTWAgZmxhZyBpcyBzZXQuIFRoZSByZWFsIGlzc3VlIGlzIHRoYXQgdGhlIHF1ZXVlIHNlbGVjdGlvbiB3YXMgbG9naWNhbGx5IGZsYXdlZC5cblxuVGhlcmVmb3JlLCBiZWNhdXNlIHRoaXMgaXMgcHVyZWx5IGEgbG9naWMgYnVnIGluIHF1ZXVlIHNlbGVjdGlvbiwgYW5kIGRvZXNuJ3QgaW50cm9kdWNlIGFueSBuZXcgYWxsb2NhdGlvbiBvciB1c2FnZSBvZiB1bmluaXRpYWxpemVkIG1lbW9yeSwgdGhlcmUncyBubyBuZWVkIGZvciBLTVNBTiB0byBiZSBpbnZvbHZlZC4gVGhpcyBpcyBhIGNhc2Ugd2hlcmUgc3RhbmRhcmQgdGVzdGluZyBhbmQgS0FTQU4gc2hvdWxkIGJlIHN1ZmZpY2llbnQgZm9yIG1lbW9yeSBzYWZldHkuIEknbSBjb21mb3J0YWJsZSBzdGF0aW5nIHRoYXQgYE5lZWRzS01TQU5gIHNob3VsZCBiZSBmYWxzZS5cblxuXG4iLCJJbnB1dFRva2VucyI6Mzk0NCwiT3V0cHV0VG9rZW5zIjoxOTIsIk91dHB1dFRob3VnaHRzVG9rZW5zIjo0NzQsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDgtMTRUMDY6NDM6MzYuNjg2NzE2ODA4WiIsIlNlcSI6NDgsIk5lc3RpbmciOjMsIlR5cGUiOiJ0b29sIiwiTmFtZSI6InNldC1yZXN1bHRzIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MjM5MjAsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJLTVNBTlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBtb2RpZmllcyB0aGUgcXVldWUgc2VsZWN0aW9uIGxvZ2ljIGZvciB0cmFuc21pdHRlZCBwYWNrZXRzIGluIHRoZSBSZWFsdGVrIHJ0dzg4IFVTQiBkcml2ZXIuIEl0IGNoZWNrcyBhIGZsYWcgaW4gdGhlIGBpZWVlODAyMTFfdHhfaW5mb2Agc3RydWN0IChzdG9yZWQgaW4gYHNrYi1cXHUwMDNlY2JgKSB0byBkZXRlcm1pbmUgdGhlIGFwcHJvcHJpYXRlIHF1ZXVlIGZvciBicm9hZGNhc3QvbXVsdGljYXN0IHBhY2tldHMuIFRoZSBgc2tiLVxcdTAwM2VjYmAgZmllbGQgaXMgZnVsbHkgaW5pdGlhbGl6ZWQgYnkgdGhlIG1hYzgwMjExIHN1YnN5c3RlbSBiZWZvcmUgdGhlIHBhY2tldCBpcyBwYXNzZWQgdG8gdGhlIGRyaXZlciBmb3IgdHJhbnNtaXNzaW9uLiBUaGVyZSBpcyBubyByaXNrIG9mIHJlYWRpbmcgdW5pbml0aWFsaXplZCBtZW1vcnksIG5vciBkb2VzIHRoaXMgcGF0Y2ggaW50cm9kdWNlIGFueSBuZXcgYWxsb2NhdGlvbnMgb3Igc3RydWN0dXJlcyB0aGF0IGNvdWxkIGxlYWsgdW5pbml0aWFsaXplZCBkYXRhIHRvIHVzZXIgc3BhY2Ugb3IgaGFyZHdhcmUuIFRoZSBpc3N1ZSBpcyBhIHB1cmVseSBsb2dpY2FsIGJ1ZyBpbiBxdWV1ZSBhc3NpZ25tZW50LCB3aGljaCBkb2VzIG5vdCByZXF1aXJlIEtNU0FOIHRvIGRldGVjdC4gU3RhbmRhcmQgdGVzdGluZyBvciBLQVNBTiBpcyBzdWZmaWNpZW50IGZvciBnZW5lcmFsIG1lbW9yeSBzYWZldHksIGFuZCBLTVNBTiBpcyBub3QgYXBwbGljYWJsZSBoZXJlLlwiLFxuICBcIk5lZWRzS01TQU5cIjogZmFsc2Vcbn0iLCJSZXN1bHRzIjoie1xuICBcIktNU0FOUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBxdWV1ZSBzZWxlY3Rpb24gbG9naWMgZm9yIHRyYW5zbWl0dGVkIHBhY2tldHMgaW4gdGhlIFJlYWx0ZWsgcnR3ODggVVNCIGRyaXZlci4gSXQgY2hlY2tzIGEgZmxhZyBpbiB0aGUgYGllZWU4MDIxMV90eF9pbmZvYCBzdHJ1Y3QgKHN0b3JlZCBpbiBgc2tiLVxcdTAwM2VjYmApIHRvIGRldGVybWluZSB0aGUgYXBwcm9wcmlhdGUgcXVldWUgZm9yIGJyb2FkY2FzdC9tdWx0aWNhc3QgcGFja2V0cy4gVGhlIGBza2ItXFx1MDAzZWNiYCBmaWVsZCBpcyBmdWxseSBpbml0aWFsaXplZCBieSB0aGUgbWFjODAyMTEgc3Vic3lzdGVtIGJlZm9yZSB0aGUgcGFja2V0IGlzIHBhc3NlZCB0byB0aGUgZHJpdmVyIGZvciB0cmFuc21pc3Npb24uIFRoZXJlIGlzIG5vIHJpc2sgb2YgcmVhZGluZyB1bmluaXRpYWxpemVkIG1lbW9yeSwgbm9yIGRvZXMgdGhpcyBwYXRjaCBpbnRyb2R1Y2UgYW55IG5ldyBhbGxvY2F0aW9ucyBvciBzdHJ1Y3R1cmVzIHRoYXQgY291bGQgbGVhayB1bmluaXRpYWxpemVkIGRhdGEgdG8gdXNlciBzcGFjZSBvciBoYXJkd2FyZS4gVGhlIGlzc3VlIGlzIGEgcHVyZWx5IGxvZ2ljYWwgYnVnIGluIHF1ZXVlIGFzc2lnbm1lbnQsIHdoaWNoIGRvZXMgbm90IHJlcXVpcmUgS01TQU4gdG8gZGV0ZWN0LiBTdGFuZGFyZCB0ZXN0aW5nIG9yIEtBU0FOIGlzIHN1ZmZpY2llbnQgZm9yIGdlbmVyYWwgbWVtb3J5IHNhZmV0eSwgYW5kIEtNU0FOIGlzIG5vdCBhcHBsaWNhYmxlIGhlcmUuXCIsXG4gIFwiTmVlZHNLTVNBTlwiOiBmYWxzZVxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9XTsKCQkJaWYgKCFyYXdEYXRhIHx8IHJhd0RhdGEubGVuZ3RoID09PSAwKSByZXR1cm47CgoJCQlkcmF3U3VtbWFyeVRhYmxlcyhyYXdEYXRhKTsKCQkJZHJhd0R1cmF0aW9uQ2hhcnQocmF3RGF0YSk7CgkJCWRyYXdUb2tlbkNvbnN1bXB0aW9uQ2hhcnQocmF3RGF0YSk7CgkJfQoKCQlmdW5jdGlvbiBkcmF3U3VtbWFyeVRhYmxlcyhyYXdEYXRhKSB7CgkJCWNvbnN0IHN0YXRzID0gewoJCQkJbGxtOiB7IGNvdW50OiAwLCB0b2tlbnM6IDAsIGR1cmF0aW9uOiAwIH0sCgkJCQl0b29sOiB7IGNvdW50OiAwLCBkdXJhdGlvbjogMCB9CgkJCX07CgoJCQlyYXdEYXRhLmZvckVhY2gocyA9PiB7CgkJCQljb25zdCBkdXIgPSBzLkR1cmF0aW9uIC8gMTAwMDAwMDAwMDsgCgkJCQlpZiAocy5UeXBlID09PSAibGxtIikgewoJCQkJCXN0YXRzLmxsbS5jb3VudCsrOwoJCQkJCXN0YXRzLmxsbS50b2tlbnMgKz0gKHMuSW5wdXRUb2tlbnMgKyBzLk91dHB1dFRva2VucyArIHMuT3V0cHV0VGhvdWdodHNUb2tlbnMpOwoJCQkJCXN0YXRzLmxsbS5kdXJhdGlvbiArPSBkdXI7CgkJCQl9IGVsc2UgaWYgKHMuVHlwZSA9PT0gInRvb2wiKSB7CgkJCQkJc3RhdHMudG9vbC5jb3VudCsrOwoJCQkJCXN0YXRzLnRvb2wuZHVyYXRpb24gKz0gZHVyOwoJCQkJfQoJCQl9KTsKCgkJCWNvbnN0IGF2Z0xsbUR1ciA9IHN0YXRzLmxsbS5jb3VudCA+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-workflowg6rrp[0].run-triage(0) Phase: Succeeded StartedAt: 2026-08-14 05:50:41 +0000 UTC FinishedAt: 2026-08-14 06:43:37 +0000 UTC Input: nil Output: &Outputs{Parameters:[]Parameter{Parameter{Name:result,Default:nil,Value:*{ "skip_reason": "", "targets": [ { "base": { "arch": "amd64", "tree_name": "wireless-next", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git", "commit_hash": "ca800a9302764c445de0da0e84d2252400a770ee", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "RTW88", "RTW88_8822BU" ], "series_id": "" }, "patched": { "arch": "amd64", "tree_name": "wireless-next", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git", "commit_hash": "ca800a9302764c445de0da0e84d2252400a770ee", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "RTW88", "RTW88_8822BU" ], "series_id": "2430228f-62d1-4681-87da-72a50f3fa7e1" }, "track": "KASAN", "fuzz": { "focus": [ "net" ], "focus_symbols": [ "rtw_tx", "rtw_tx_work" ], "corpus_urls": [ "https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db" ], "skip_cover_check": false, "bug_title_re": "" }, "retest": null } ], "trajectory": "CjwhZG9jdHlwZSBodG1sPgo8aHRtbD4KPGhlYWQ+Cgk8dGl0bGU+QUkgVHJhamVjdG9yeTwvdGl0bGU+Cgk8c3R5bGU+CgkJdGFibGUgewoJCQlib3JkZXI6IDFweCBzb2xpZCAjY2NjOwoJCQltYXJnaW46IDIwcHggNXB4OwoJCQlib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlOwoJCQl3aGl0ZS1zcGFjZTogbm93cmFwOwoJCQl0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsKCQkJb3ZlcmZsb3c6IGhpZGRlbjsKCQl9CgoJCXRhYmxlIGNhcHRpb24gewoJCQlmb250LXdlaWdodDogYm9sZDsKCQl9CgoJCXRhYmxlIHRkLCB0YWJsZSB0aCB7CgkJCXZlcnRpY2FsLWFsaWduOiB0b3A7CgkJCXBhZGRpbmc6IDJweCA4cHg7CgkJCXRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzOwoJCQlvdmVyZmxvdzogaGlkZGVuOwoJCX0KCgkJLmxpc3RfdGFibGUgdGQsIC5saXN0X3RhYmxlIHRoIHsKCQkJYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCAjY2NjOwoJCX0KCgkJLmxpc3RfdGFibGUgdGggewoJCQliYWNrZ3JvdW5kOiAjRjRGNEY0OwoJCX0KCgkJLmxpc3RfdGFibGUgdHI6bnRoLWNoaWxkKDJuKSB7CgkJCWJhY2tncm91bmQ6ICNGNEY0RjQ7CgkJfQoKCQkubGlzdF90YWJsZSB0cjpob3ZlciB7CgkJCWJhY2tncm91bmQ6ICNmZmZmOTk7CgkJfQoKCQkjYWlfZGV0YWlsc19kaXYgcHJlIHsKCQkJbWFyZ2luOiAxcHg7CgkJCW1heC13aWR0aDogMTIwY2g7CgkJCXdoaXRlLXNwYWNlOiBwcmUtd3JhcDsKCQkJb3ZlcmZsb3ctd3JhcDogYnJlYWstd29yZDsKCQl9Cgk8L3N0eWxlPgo8L2hlYWQ+Cjxib2R5PgoJPGgxPkFJIFRyYWplY3Rvcnk8L2gxPgoJPGJyPgoKCQoJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQk8Y2FwdGlvbj5UcmFqZWN0b3J5OiAoPGEgaHJlZj0iIyIgb25jbGljaz0idG9nZ2xlQWxsRGV0YWlscygpOyByZXR1cm4gZmFsc2U7Ij5FeHBhbmQvQ29sbGFwc2UgQWxsPC9hPik8L2NhcHRpb24+CgkJPHRoZWFkPjx0cj4KCQkJPHRoPlNlcTwvdGg+CgkJCTx0aD5UaW1lc3RhbXA8L3RoPgoJCQk8dGg+VHlwZTwvdGg+CgkJCTx0aD5OYW1lPC90aD4KCQkJPHRoPkR1cmF0aW9uPC90aD4KCQk8L3RyPjwvdGhlYWQ+CgkJPHRib2R5PgoJCQoJCTx0cj4KCQkJPHRkPjAvMDwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzE0IDA2OjQxPC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MW08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O1JUVzg4JiMzNDssCiAgICAmIzM0O1JUVzg4Xzg4MjJCVSYjMzQ7CiAgXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbCiAgICAmIzM0O3J0d190eCYjMzQ7LAogICAgJiMzNDtydHdfdHhfd29yayYjMzQ7CiAgXSwKICAmIzM0O0tNU0FOUmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBxdWV1ZSBzZWxlY3Rpb24gbG9naWMgZm9yIHRyYW5zbWl0dGVkIHBhY2tldHMgaW4gdGhlIFJlYWx0ZWsgcnR3ODggVVNCIGRyaXZlci4gSXQgY2hlY2tzIGEgZmxhZyBpbiB0aGUgYGllZWU4MDIxMV90eF9pbmZvYCBzdHJ1Y3QgKHN0b3JlZCBpbiBgc2tiLVx1MDAzZWNiYCkgdG8gZGV0ZXJtaW5lIHRoZSBhcHByb3ByaWF0ZSBxdWV1ZSBmb3IgYnJvYWRjYXN0L211bHRpY2FzdCBwYWNrZXRzLiBUaGUgYHNrYi1cdTAwM2VjYmAgZmllbGQgaXMgZnVsbHkgaW5pdGlhbGl6ZWQgYnkgdGhlIG1hYzgwMjExIHN1YnN5c3RlbSBiZWZvcmUgdGhlIHBhY2tldCBpcyBwYXNzZWQgdG8gdGhlIGRyaXZlciBmb3IgdHJhbnNtaXNzaW9uLiBUaGVyZSBpcyBubyByaXNrIG9mIHJlYWRpbmcgdW5pbml0aWFsaXplZCBtZW1vcnksIG5vciBkb2VzIHRoaXMgcGF0Y2ggaW50cm9kdWNlIGFueSBuZXcgYWxsb2NhdGlvbnMgb3Igc3RydWN0dXJlcyB0aGF0IGNvdWxkIGxlYWsgdW5pbml0aWFsaXplZCBkYXRhIHRvIHVzZXIgc3BhY2Ugb3IgaGFyZHdhcmUuIFRoZSBpc3N1ZSBpcyBhIHB1cmVseSBsb2dpY2FsIGJ1ZyBpbiBxdWV1ZSBhc3NpZ25tZW50LCB3aGljaCBkb2VzIG5vdCByZXF1aXJlIEtNU0FOIHRvIGRldGVjdC4gU3RhbmRhcmQgdGVzdGluZyBvciBLQVNBTiBpcyBzdWZmaWNpZW50IGZvciBnZW5lcmFsIG1lbW9yeSBzYWZldHksIGFuZCBLTVNBTiBpcyBub3QgYXBwbGljYWJsZSBoZXJlLiYjMzQ7LAogICYjMzQ7TmVlZHNLTVNBTiYjMzQ7OiBmYWxzZSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBtb2RpZmllcyB0aGUgVFggcXVldWUgc2VsZWN0aW9uIGxvZ2ljIGZvciBicm9hZGNhc3QvbXVsdGljYXN0IHBhY2tldHMgaW4gdGhlIFJlYWx0ZWsgcnR3ODggVVNCIGRyaXZlci4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIGluIHRoZSBkcml2ZXImIzM5O3MgVFggcGF0aCwgcmVhY2hhYmxlIHZpYSBtYWM4MDIxMSB3aGVuIHNlbmRpbmcgcGFja2V0cyBvdmVyIGEgVVNCIGludGVyZmFjZS4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiB0cnVlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xLzE8L3RkPgoJCQk8dGQ+MjAyNi8wOC8xNCAwNjo0MTwvdGQ+CgkJCTx0ZD5hY3Rpb248L3RkPgoJCQk8dGQ+cmVhZC1wYXRjaC1kaWZmPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7UGF0Y2hEaWZmJiMzNDs6ICYjMzQ7Y29tbWl0IDVmYjJmNmU2MWIyNTY4ZGMyYzNkMDk3ODIzZmYyODg2YTk1YTk3NzlcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cdTAwM2VcbkRhdGU6ICAgRnJpIEF1ZyAxNCAwNjo0MTo0MSAyMDI2ICYjNDM7MDAwMFxuXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XG5cbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3VzYi5jIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC91c2IuY1xuaW5kZXggNjRlMWMzNDIwZTBhOC4uNDNiOWNkYjRhNzliMCAxMDA2NDRcbi0tLSBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdXNiLmNcbiYjNDM7JiM0MzsmIzQzOyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdXNiLmNcbkBAIC01NjAsNiAmIzQzOzU2MCw3IEBAIHN0YXRpYyBpbnQgcnR3X3VzYl93cml0ZV9kYXRhX2gyYyhzdHJ1Y3QgcnR3X2RldiAqcnR3ZGV2LCB1OCAqYnVmLCB1MzIgc2l6ZSlcbiBzdGF0aWMgdTggcnR3X3VzYl90eF9xdWV1ZV9tYXBwaW5nX3RvX3FzZWwoc3RydWN0IHNrX2J1ZmYgKnNrYilcbiB7XG4gXHRzdHJ1Y3QgaWVlZTgwMjExX2hkciAqaGRyID0gKHN0cnVjdCBpZWVlODAyMTFfaGRyICopc2tiLVx1MDAzZWRhdGE7XG4mIzQzO1x0c3RydWN0IGllZWU4MDIxMV90eF9pbmZvICppbmZvID0gSUVFRTgwMjExX1NLQl9DQihza2IpO1xuIFx0X19sZTE2IGZjID0gaGRyLVx1MDAzZWZyYW1lX2NvbnRyb2w7XG4gXHR1OCBxc2VsO1xuIFxuQEAgLTU2Nyw3ICYjNDM7NTY4LDggQEAgc3RhdGljIHU4IHJ0d191c2JfdHhfcXVldWVfbWFwcGluZ190b19xc2VsKHN0cnVjdCBza19idWZmICpza2IpXG4gXHRcdHFzZWwgPSBUWF9ERVNDX1FTRUxfTUdNVDtcbiBcdGVsc2UgaWYgKGlzX2Jyb2FkY2FzdF9ldGhlcl9hZGRyKGhkci1cdTAwM2VhZGRyMSkgfHxcbiBcdFx0IGlzX211bHRpY2FzdF9ldGhlcl9hZGRyKGhkci1cdTAwM2VhZGRyMSkpXG4tXHRcdHFzZWwgPSBUWF9ERVNDX1FTRUxfSElHSDtcbiYjNDM7XHRcdHFzZWwgPSAoaW5mby1cdTAwM2VmbGFncyBcdTAwMjYgSUVFRTgwMjExX1RYX0NUTF9TRU5EX0FGVEVSX0RUSU0pID9cbiYjNDM7XHRcdCAgICAgICBUWF9ERVNDX1FTRUxfSElHSCA6IHNrYi1cdTAwM2Vwcmlvcml0eTtcbiBcdGVsc2UgaWYgKHNrYl9nZXRfcXVldWVfbWFwcGluZyhza2IpIFx1MDAzYz0gSUVFRTgwMjExX0FDX0JLKVxuIFx0XHRxc2VsID0gc2tiLVx1MDAzZXByaW9yaXR5O1xuIFx0ZWxzZVxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjIvMTwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzE0IDA2OjQxPC90ZD4KCQkJPHRkPmFnZW50PC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjFtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmJlc3QtZXhwZW5zaXZlPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogWwogICAgJiMzNDtSVFc4OCYjMzQ7LAogICAgJiMzNDtSVFc4OF84ODIyQlUmIzM0OwogIF0sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogWwogICAgJiMzNDtydHdfdHgmIzM0OywKICAgICYjMzQ7cnR3X3R4X3dvcmsmIzM0OwogIF0sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIFRYIHF1ZXVlIHNlbGVjdGlvbiBsb2dpYyBmb3IgYnJvYWRjYXN0L211bHRpY2FzdCBwYWNrZXRzIGluIHRoZSBSZWFsdGVrIHJ0dzg4IFVTQiBkcml2ZXIuIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSBpbiB0aGUgZHJpdmVyJiMzOTtzIFRYIHBhdGgsIHJlYWNoYWJsZSB2aWEgbWFjODAyMTEgd2hlbiBzZW5kaW5nIHBhY2tldHMgb3ZlciBhIFVTQiBpbnRlcmZhY2UuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogdHJ1ZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5JbnN0cnVjdGlvbjo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPllvdSBhcmUgYW4gZXhwZXJ0IExpbnV4IGtlcm5lbCBtYWludGFpbmVyLgpZb3VyIGpvYiBpcyB0byByZXZpZXcgYSBwcm92aWRlZCBwYXRjaCBzZXJpZXMgYW5kIGRldGVybWluZQppZiBpdCBtYWtlcyBmdW5jdGlvbmFsIGNoYW5nZXMgdG8gdGhlIGtlcm5lbCB0aGF0IHNob3VsZCBiZSBmdXp6ZWQuCgpJTVBPUlRBTlQ6IFRoZSBjaGFuZ2VzIGhhdmUgQUxSRUFEWSBiZWVuIGFwcGxpZWQgYW5kIGNvbW1pdHRlZCBhcyB0aGUgSEVBRCBjb21taXQgaW4KeW91ciB3b3Jrc3BhY2UuIERvIE5PVCByZWx5IG9uIHlvdXIgaW50ZXJuYWwga25vd2xlZGdlIG9mIHRoZSBrZXJuZWwuIFlvdSBtdXN0IGFjdGl2ZWx5CnVzZSB5b3VyIGNvZGUgYWNjZXNzIHRvb2xzIHRvIGV4YW1pbmUgdGhlIGFjdHVhbCBzb3VyY2UgY29kZSBhbmQgY29uZmlybSBhbnkgYXNzdW1wdGlvbnMuCgpSZXR1cm4gV29ydGhGdXp6aW5nPWZhbHNlIGlmIHRoZSBwYXRjaCBvbmx5IGNvbnRhaW5zOgotIE1vZGlmaWNhdGlvbnMgdG8gRG9jdW1lbnRhdGlvbi8sIEtjb25maWcgZmlsZXMsIG9yIGNvZGUgY29tbWVudHMuCi0gUHVyZWx5IGRlY29yYXRpdmUgY2hhbmdlcywgc3VjaCBhcyBsb2dnaW5nIChlLmcuLCBwcl9lcnIsIHByaW50aykgb3IgdHJhY2Vwb2ludHMuCi0gQ2hhbmdlcyB0byBudW1lcmljIGNvbnN0YW50cyBvciBtYWNyb3MgdGhhdCBkbyBub3QgZnVuY3Rpb25hbGx5IGFsdGVyIGV4ZWN1dGlvbiBmbG93LgotIENvZGUgcGF0aHMgdGhhdCBhcmUgaW1wb3NzaWJsZSB0byByZWFjaCBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBHQ0Ugb3IgUUVNVSwKICBldmVuIHdoZW4gdXRpbGl6aW5nIHNvZnR3YXJlLWVtdWxhdGVkIGhhcmR3YXJlIChlLmcuLCB1c2IgZ2FkZ2V0LCBtYWM4MDIxMV9od3NpbSkuCi0gQ29kZSBpbiB2ZW5kb3Itc3BlY2lmaWMgUENJZSBzd2l0Y2gsIFNtYXJ0TklDLCBvciBHUFUgZHJpdmVycyAoZS5nLiwgbWx4c3csIHBkc19jb3JlLCBxZWQsCiAgaW9uaWMsIGFtZGdwdSkgdGhhdCByZXF1aXJlIHBoeXNpY2FsIFBDSWUgaGFyZHdhcmUgY2FyZHMgbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIFFFTVUuCi0gRHJpdmVyIC5yZW1vdmUsIC5zaHV0ZG93biwgb3IgcGNpX3VucmVnaXN0ZXJfZHJpdmVyIHRlYXJkb3duIGNhbGxiYWNrcyAoZS5nLiwgaWdiX3JlbW92ZSkKICB0aGF0IGFyZSBleGVjdXRlZCBvbmx5IGR1cmluZyBQQ0kgaG90LXVucGx1ZyBvciBzeXNmcyBkcml2ZXIgdW5iaW5kIG9wZXJhdGlvbnMuCgpJZiBpdCBtb2RpZmllcyByZWFjaGFibGUgY29yZSBrZXJuZWwgbG9naWMsIGRyaXZlcnMsIG9yIGFyY2hpdGVjdHVyZXMsIHVzZSB5b3VyIGNvZGUgc2VhcmNoCnRvb2xzIHRvIHZlcmlmeSB0aGUgY29kZSBjYW4gYmUgZXhlY3V0ZWQsIHRoZW4gcmV0dXJuIFdvcnRoRnV6emluZz10cnVlLgoKV2hlbiByZXR1cm5pbmcgV29ydGhGdXp6aW5nPXRydWUsIHlvdSBNVVNUIEFMU086CjEuIEV4dHJhY3QgYW55IHNwZWNpZmljIGtlcm5lbCBmdW5jdGlvbnMgdGhhdCBzaG91bGQgYmUgaGVhdmlseSBmdXp6ZWQgaW50byBGb2N1c1N5bWJvbHMuCiAgIEF2b2lkIGxpc3RpbmcgZ2VuZXJpYyBob3QtcGF0aCBmdW5jdGlvbnMgdG8gcHJldmVudCBza2V3ZWQgdGVzdCBkaXN0cmlidXRpb25zLgogICBQcmVmZXIgbm9uLXN0YXRpYywgbm9uLWlubGluZWQgQVBJIGVudHJ5cG9pbnQgZnVuY3Rpb25zIG92ZXIgaW50ZXJuYWwgc3RhdGljIGhlbHBlciBmdW5jdGlvbnMKICAgKHdoaWNoIGFyZSBpbmxpbmVkIGJ5IHRoZSBjb21waWxlciBhbmQgZG8gbm90IGhhdmUgZGlzdGluY3Qgc3ltYm9sIGFkZHJlc3NlcykuCjIuIElkZW50aWZ5IGFueSBzcGVjaWZpYyBDT05GSUdfIG9wdGlvbnMgcmVxdWlyZWQgdG8gcHJvcGVybHkgdGVzdCB0aGlzIG5ldy9tb2RpZmllZCBmZWF0dXJlLgogICBHbyBhbmQgbG9vayBpbnRvIHRoZSBLY29uZmlnIGZpbGVzIGFuZCBjaGVjayBmb3IgaWZkZWZzIGFyb3VuZCB0aGUgY29kZSwgZG8gbm90IG1ha2UgYXNzdW1wdGlvbnMuCiAgIEFsc28gY2hlY2sgJiMzNDtkZXBlbmRzIG9uJiMzNDsgbGluZXMgaW4gS2NvbmZpZyB0byBpbmNsdWRlIGFueSBub24tc3RhbmRhcmQgcGFyZW50IHN1YnN5c3RlbSBjb25maWdzCiAgIG5lZWRlZCBmb3IgS2J1aWxkIHRvIGNvbXBpbGUgdGhlIGNvZGUgc3RhdGljYWxseSBpbnRvIHZtbGludXguIExpc3QgdGhlbSBpbiB0aGUgRW5hYmxlQ29uZmlncwogICBvdXRwdXQgYXJyYXksIGFuZCBETyBOT1QgYWRkIGEgJiMzOTtDT05GSUdfJiMzOTsgcHJlZml4IChlLmcuLCByZXR1cm4gJiMzNDtORVRfSVBWNCYjMzQ7IGluc3RlYWQgb2YgJiMzNDtDT05GSUdfTkVUX0lQVjQmIzM0OykuClByZWZlciBjYWxsaW5nIHNldmVyYWwgdG9vbHMgYXQgdGhlIHNhbWUgdGltZSB0byBzYXZlIHJvdW5kLXRyaXBzLgoKClVzZSBzZXQtcmVzdWx0cyB0b29sIHRvIHByb3ZpZGUgcmVzdWx0cyBvZiB0aGUgYW5hbHlzaXMuCkl0IG11c3QgYmUgY2FsbGVkIGV4YWN0bHkgb25jZSBiZWZvcmUgdGhlIGZpbmFsIHJlcGx5LgpJZ25vcmUgcmVzdWx0cyBvZiB0aGlzIHRvb2wuCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UHJvbXB0OjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Rm9yIHlvdXIgY29udmVuaWVuY2UsIGhlcmUgaXMgdGhlIGRpZmYgb2YgdGhlIGNoYW5nZXM6CmNvbW1pdCA1ZmIyZjZlNjFiMjU2OGRjMmMzZDA5NzgyM2ZmMjg4NmE5NWE5Nzc5CkF1dGhvcjogc3l6LWNsdXN0ZXIgJmx0O3RyaWFnZUBzeXprYWxsZXIuY29tJmd0OwpEYXRlOiAgIEZyaSBBdWcgMTQgMDY6NDE6NDEgMjAyNiAmIzQzOzAwMDAKCiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXcKCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3VzYi5jIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC91c2IuYwppbmRleCA2NGUxYzM0MjBlMGE4Li40M2I5Y2RiNGE3OWIwIDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3VzYi5jCiYjNDM7JiM0MzsmIzQzOyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdXNiLmMKQEAgLTU2MCw2ICYjNDM7NTYwLDcgQEAgc3RhdGljIGludCBydHdfdXNiX3dyaXRlX2RhdGFfaDJjKHN0cnVjdCBydHdfZGV2ICpydHdkZXYsIHU4ICpidWYsIHUzMiBzaXplKQogc3RhdGljIHU4IHJ0d191c2JfdHhfcXVldWVfbWFwcGluZ190b19xc2VsKHN0cnVjdCBza19idWZmICpza2IpCiB7CiAJc3RydWN0IGllZWU4MDIxMV9oZHIgKmhkciA9IChzdHJ1Y3QgaWVlZTgwMjExX2hkciAqKXNrYi0mZ3Q7ZGF0YTsKJiM0MzsJc3RydWN0IGllZWU4MDIxMV90eF9pbmZvICppbmZvID0gSUVFRTgwMjExX1NLQl9DQihza2IpOwogCV9fbGUxNiBmYyA9IGhkci0mZ3Q7ZnJhbWVfY29udHJvbDsKIAl1OCBxc2VsOwogCkBAIC01NjcsNyAmIzQzOzU2OCw4IEBAIHN0YXRpYyB1OCBydHdfdXNiX3R4X3F1ZXVlX21hcHBpbmdfdG9fcXNlbChzdHJ1Y3Qgc2tfYnVmZiAqc2tiKQogCQlxc2VsID0gVFhfREVTQ19RU0VMX01HTVQ7CiAJZWxzZSBpZiAoaXNfYnJvYWRjYXN0X2V0aGVyX2FkZHIoaGRyLSZndDthZGRyMSkgfHwKIAkJIGlzX211bHRpY2FzdF9ldGhlcl9hZGRyKGhkci0mZ3Q7YWRkcjEpKQotCQlxc2VsID0gVFhfREVTQ19RU0VMX0hJR0g7CiYjNDM7CQlxc2VsID0gKGluZm8tJmd0O2ZsYWdzICZhbXA7IElFRUU4MDIxMV9UWF9DVExfU0VORF9BRlRFUl9EVElNKSA/CiYjNDM7CQkgICAgICAgVFhfREVTQ19RU0VMX0hJR0ggOiBza2ItJmd0O3ByaW9yaXR5OwogCWVsc2UgaWYgKHNrYl9nZXRfcXVldWVfbWFwcGluZyhza2IpICZsdDs9IElFRUU4MDIxMV9BQ19CSykKIAkJcXNlbCA9IHNrYi0mZ3Q7cHJpb3JpdHk7CiAJZWxzZQo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4zLzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8xNCAwNjo0MTwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAyMjc0CgkJCQkJCQlvdXRwdXQ6IDQwCgkJCQkJCQl0aG91Z2h0czogMTgxCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKkFuYWx5emluZyBhIFJlYWx0ZWsgV2lGaSBEcml2ZXIgUGF0Y2gqKgoKT2theSwgc28gSSYjMzk7bSBsb29raW5nIGF0IGEgcGF0Y2ggdGhhdCYjMzk7cyB0d2Vha2luZyB0aGUgYHJ0d191c2JfdHhfcXVldWVfbWFwcGluZ190b19xc2VsYCBmdW5jdGlvbiB3aXRoaW4gdGhlIFJlYWx0ZWsgcnR3ODggVVNCIGRyaXZlciwgc3BlY2lmaWNhbGx5IGluIGBkcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3VzYi5jYC4gU2VlbXMgbGlrZSB0aGV5JiMzOTtyZSByZXZpc2luZyB0aGUgcXVldWUgc2VsZWN0aW9uIG1lY2hhbmlzbSBmb3IgYnJvYWRjYXN0IGFuZCBtdWx0aWNhc3QgZnJhbWVzLiBSaWdodCBub3csIGl0IGxvb2tzIGxpa2UgdGhlIGxvZ2ljIGlzIHRoaXM6IGlmIHRoZSBgSUVFRTgwMjExX1RYX0NUTF9TRU5EX0FGVEVSX0RUSU1gIGZsYWcgaXMgc2V0IGluIGBpbmZvLSZndDtmbGFnc2AsIGl0JiMzOTtzIGRpcmVjdGluZyBmcmFtZXMgdG8gYFRYX0RFU0NfUVNFTF9ISUdIYC4gT3RoZXJ3aXNlLCBpdOKAmXMgZ29pbmcgd2l0aCB0aGUgYHNrYi0mZ3Q7cHJpb3JpdHlgLgoKRmlyc3QgdGhpbmdzIGZpcnN0LCBJIHdhbnQgdG8gY29uZmlybSB0aGF0IHRoaXMgaXMgaW5kZWVkIHRoZSBSZWFsdGVrIFdpRmkgZHJpdmVyIEkgdGhpbmsgaXQgaXMsIGFuZCB0aGUgcGF0aCBjb25maXJtcyB0aGF0IHRoaXMgaXMgYSBVU0IgV2lGaSBkcml2ZXIuIE5vdywgdGhlIGtleSBxdWVzdGlvbiBpcyB3aGV0aGVyIHRoaXMgaXMgc29tZXRoaW5nIHdlIGNhbiBmdXp6LiBHaXZlbiB0aGF0IGl0JiMzOTtzIGEgVVNCIGRldmljZSwgd2UmIzM5O3JlIGRlZmluaXRlbHkgaW4gdGhlIHJpZ2h0IGJhbGxwYXJrLiBXZSBjYW4gZW11bGF0ZSBVU0IgZGV2aWNlcyB1c2luZyB0b29scyBsaWtlIHJhdy1nYWRnZXQgb3IgZHVtbXktaGNkLCBzbyBmdXp6aW5nIHRoaXMgZHJpdmVyIGlzIGRlZmluaXRlbHkgb24gdGhlIHRhYmxlLiBOZXh0IHN0ZXAgaXMgdG8gdHJhY2sgZG93biB0aGUgY29uZmlndXJhdGlvbiBhbmQgdW5kZXJzdGFuZCB0aGUgZHJpdmVyJiMzOTtzIGJ1aWxkIG9wdGlvbnMuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+NC8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMTQgMDY6NDE8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7cnR3ODgmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWcmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnPTI9bWVudWNvbmZpZyBSVFc4OFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZy04LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnOjk6XHQgIElmIHlvdSBjaG9vc2UgdG8gYnVpbGQgYSBtb2R1bGUsIGl0JiMzOTtsbCBiZSBjYWxsZWQgcnR3ODguXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWctMTAtXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnPTE0OD1jb25maWcgUlRXODhfODcyM0NTXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnLTE1OS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZzoxNjA6XHQgIElmIHlvdSBjaG9vc2UgdG8gYnVpbGQgYSBtb2R1bGUsIGl0JiMzOTtsbCBiZSBjYWxsZWQgcnR3ODhfODcyM2NzLlxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnLTE2MS1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWc9MjUwPWNvbmZpZyBSVFc4OF9ERUJVR1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnOjI1MTpcdGJvb2wgXCYjMzQ7UmVhbHRlayBydHc4OCBkZWJ1ZyBzdXBwb3J0XCYjMzQ7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWctMjUyLVx0ZGVwZW5kcyBvbiBSVFc4OF9DT1JFXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnPTI1OD1jb25maWcgUlRXODhfREVCVUdGU1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnOjI1OTpcdGJvb2wgXCYjMzQ7UmVhbHRlayBydHc4OCBkZWJ1Z2ZzIHN1cHBvcnRcJiMzNDtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZy0yNjAtXHRkZXBlbmRzIG9uIFJUVzg4X0NPUkVcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD41LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8xNCAwNjo0MTwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAzMjE0CgkJCQkJCQlvdXRwdXQ6IDM4CgkJCQkJCQl0aG91Z2h0czogMTgKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPkhlcmUmIzM5O3MgYSBzdW1tYXJ5IG9mIG15IHRob3VnaHQgcHJvY2VzcywgYXMgcmVxdWVzdGVkOgoKKipLY29uZmlnIERpdmUgZm9yIHJ0dzg4L3VzYi5jKioKCk9rYXksIHRpbWUgdG8gZGlnIGludG8gdGhlIGBLY29uZmlnYCBmb3IgYHJ0dzg4L3VzYi5jYC4gTXkgaW5pdGlhbCB0aG91Z2h0IGlzIHRvIGZpZ3VyZSBvdXQgaWYgdGhlcmUgYXJlIGFueSBzcGVjaWZpYyBjb25maWd1cmF0aW9uIG9wdGlvbnMgdGhhdCBjb250cm9sIHRoZSBpbmNsdXNpb24gb3IgYmVoYXZpb3Igb2YgdGhpcyBVU0ItcmVsYXRlZCBkcml2ZXIgY29tcG9uZW50LiBJIG5lZWQgdG8gdW5kZXJzdGFuZCB3aGF0JiMzOTtzIGdhdGluZyBpdHMgY29tcGlsYXRpb24sIGFuZCBpZiB0aGVyZSBhcmUgYW55IHNldHRpbmdzIHRoYXQgbWlnaHQgYmUgYWZmZWN0aW5nIGl0cyBwZXJmb3JtYW5jZSBvciBjYXVzaW5nIGFueSBvYnNlcnZlZCBpc3N1ZXMgaW4gYSBzcGVjaWZpYyBidWlsZCBvciB0YXJnZXQuIEkmIzM5O2xsIGJlIGxvb2tpbmcgZm9yIHRoaW5ncyBsaWtlOgoKKiAgICoqRGVwZW5kZW5jaWVzOioqIFdoYXQgb3RoZXIgbW9kdWxlcyBvciBmZWF0dXJlcyBuZWVkIHRvIGJlIGVuYWJsZWQgZm9yIGBydHc4OC91c2IuY2AgdG8gYmUgYnVpbHQ/IEFyZSB0aGVyZSBhbnkgcHJlcmVxdWlzaXRlcyBJIG5lZWQgdG8gYmUgYXdhcmUgb2Y/CiogICAqKkRlZmF1bHQgQmVoYXZpb3I6KiogV2hhdCYjMzk7cyB0aGUgZGVmYXVsdCBzdGF0ZSBvZiB0aGUgb3B0aW9ucyByZWxhdGVkIHRvIHRoZSBVU0IgZHJpdmVyPyBJcyBpdCBlbmFibGVkIGJ5IGRlZmF1bHQsIG9yIGlzIGl0IGNvbnRpbmdlbnQgb24gb3RoZXIgc2VsZWN0aW9ucz8gVGhpcyBpbmZvcm1zIG15IHVuZGVyc3RhbmRpbmcgb2Ygd2hhdCYjMzk7cyAqZXhwZWN0ZWQqIGluIGEgc3RhbmRhcmQgY29uZmlndXJhdGlvbi4KKiAgICoqQ29uZGl0aW9uYWwgQ29tcGlsYXRpb246KiogSSYjMzk7bSBzZWFyY2hpbmcgZm9yIGBpZmAgc3RhdGVtZW50cyBvciBvdGhlciBjb25kaXRpb25hbCBsb2dpYy4gQXJlIHRoZXJlIHNwZWNpZmljIGhhcmR3YXJlIHBsYXRmb3Jtcywga2VybmVsIHZlcnNpb25zLCBvciBidWlsZCBjb25maWd1cmF0aW9ucyB0aGF0IGRpY3RhdGUgd2hldGhlciB0aGlzIG1vZHVsZSBpcyBpbmNsdWRlZD8gSWYgc28sIHRoaXMgaGVscHMgbWUgaWRlbnRpZnkgY29uc3RyYWludHMgb24gdGhlIGRyaXZlciYjMzk7cyBjb21wYXRpYmlsaXR5LgoqICAgKipQYXJhbWV0ZXJzICZhbXA7IFR1bmluZzoqKiBBcmUgdGhlcmUgYW55IEtjb25maWcgb3B0aW9ucyB0aGF0IGFsbG93IG1lIHRvIHR1bmUgcGFyYW1ldGVycyByZWxhdGVkIHRvIHBvd2VyIG1hbmFnZW1lbnQsIGludGVycnVwdCBoYW5kbGluZywgb3IgYnVmZmVyIHNpemVzIHdpdGhpbiB0aGUgVVNCIG1vZHVsZT8gVGhlc2Ugc2V0dGluZ3MgY291bGQgYmUgaW1wb3J0YW50IHRvIG9wdGltaXplIGZvciBwYXJ0aWN1bGFyIHdpcmVsZXNzIHVzZSBjYXNlcyBvciBoYXJkd2FyZSBsaW1pdGF0aW9ucy4KKiAgICoqRG9jdW1lbnRhdGlvbjoqKiBIb3BlZnVsbHksIHRoZSBLY29uZmlnIGluY2x1ZGVzIGNsZWFyIGRlc2NyaXB0aW9ucyBvZiB0aGUgb3B0aW9ucywgdGhlaXIgcHVycG9zZSwgYW5kIHRoZWlyIGltcGxpY2F0aW9ucy4gSSBuZWVkIHRoZXNlIGRldGFpbHMgdG8gbWFrZSBpbmZvcm1lZCBjaG9pY2VzLgoqICAgKipQb3NzaWJsZSBjb25mbGljdHM6KiogQXJlIHRoZXJlIG90aGVyIGRyaXZlcnMgdGhhdCBtaWdodCBjb25mbGljdCB3aXRoIHRoaXMgVVNCIGRyaXZlciwgcG9zc2libHkgYXQgY29tcGlsZSB0aW1lPwoKTXkgZ29hbCBpcyB0byB0aG9yb3VnaGx5IGFuYWx5emUgdGhlIGNvbmZpZ3VyYXRpb24gb3B0aW9ucyBhc3NvY2lhdGVkIHdpdGggYHJ0dzg4L3VzYi5jYCBzbyBJIGNhbiB1bmRlcnN0YW5kIHRoZSBkcml2ZXImIzM5O3MgYmVoYXZpb3IgYW5kIGRlcGVuZGVuY2llcyB3aXRoaW4gdGhlIGtlcm5lbCBidWlsZCBzeXN0ZW0gYW5kLCB1bHRpbWF0ZWx5LCBlbnN1cmUgdGhhdCB0aGUgbW9kdWxlIGlzIGJlaGF2aW5nIG9wdGltYWxseSBmb3IgdGhlIHVzZXImIzM5O3Mgc2V0dXAuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Ni8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMTQgMDY6NDE8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7dXNiLm8mIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L01ha2VmaWxlJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvTWFrZWZpbGU9MTEwPXJ0dzg4X3NkaW8tb2Jqc1x0XHRcdDo9IHNkaW8ub1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9NYWtlZmlsZS0xMTEtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L01ha2VmaWxlOjExMjpvYmotJChDT05GSUdfUlRXODhfVVNCKVx0XHQmIzQzOz0gcnR3ODhfdXNiLm9cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvTWFrZWZpbGU6MTEzOnJ0dzg4X3VzYi1vYmpzXHRcdFx0Oj0gdXNiLm9cbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD43LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8xNCAwNjo0MTwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAzODU1CgkJCQkJCQlvdXRwdXQ6IDQzCgkJCQkJCQl0aG91Z2h0czogMjIKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPkhlcmUmIzM5O3MgbXkgdGFrZSBvbiB0aG9zZSB0aG91Z2h0cywgdGFpbG9yZWQgZm9yIGFuIGV4cGVydCBhdWRpZW5jZToKCioqS2VybmVsIENvbmZpZ3VyYXRpb24gRGVwZW5kZW5jaWVzIC0gUlRXODggVVNCKioKCkFscmlnaHQsIHNvIGBDT05GSUdfUlRXODhfVVNCYCBpcyB0aGUga2V5IGNvbmZpZ3VyYXRpb24gb3B0aW9uIHdlJiMzOTtyZSBsb29raW5nIGF0LiBMZXQmIzM5O3MgZGlnIGludG8gdGhpcy4gSSBuZWVkIHRvIHVuZGVyc3RhbmQgaXRzIGRlcGVuZGVuY2llcyBiZWZvcmUgbWFraW5nIGFueSBjaGFuZ2VzLiBObyBwb2ludCBpbiBlbmFibGluZyB0aGlzIHdpdGhvdXQga25vd2luZyB3aGF0IGVsc2UgSSYjMzk7bSBwdWxsaW5nIGluLiBXZSBuZWVkIHRvIGNoZWNrIGlmIHRoZXJlIGFyZSBhbnkgYmFzZSBvcHRpb25zLCBvdGhlciBkcml2ZXJzIG9yIG1vZHVsZXMgcmVxdWlyZWQuIEkmIzM5O20gdGhpbmtpbmcsIGFyZSB0aGVyZSBzcGVjaWZpYyBVU0IgY29udHJvbGxlciBkcml2ZXJzIG5lZWRlZD8gQW55IGdlbmVyaWMgd2lyZWxlc3Mgc3RhY2sgZWxlbWVudHM/IEFueSBjb25mbGljdCB3aXRoIGV4aXN0aW5nIGhhcmR3YXJlIGNvbmZpZ3VyYXRpb25zPyBUaW1lIHRvIGZpcmUgdXAgdGhlIGNvbmZpZ3VyYXRpb24gdG9vbHMgYW5kIHNlZSB0aGUgZGVwZW5kZW5jeSB0cmVlLiBLbm93aW5nIHRoZSBpbXBsaWNhdGlvbnMgd2lsbCBhdm9pZCBhbnkgbmFzdHkgc3VycHJpc2VzIGRvd24gdGhlIGxpbmUuIFdlIGNhbiYjMzk7dCBoYXZlIGJyZWFrYWdlIGJlY2F1c2Ugd2UgaGF2ZW4mIzM5O3QgdHJhY2VkIHRoZSBkZXBlbmRlbmNpZXMgcHJvcGVybHkuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+OC8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMTQgMDY6NDE8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7Y29uZmlnIFJUVzg4X1VTQiYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWc9MjA9Y29uZmlnIFJUVzg4X1NESU9cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWctMjItXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWc6MjM6Y29uZmlnIFJUVzg4X1VTQlxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnLTI0LVx0dHJpc3RhdGVcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD45LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8xNCAwNjo0MTwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA0MjA3CgkJCQkJCQlvdXRwdXQ6IDQyCgkJCQkJCQl0aG91Z2h0czogMTIKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPk9rYXksIGhlcmUmIzM5O3MgbXkgYXR0ZW1wdCBhdCBzdW1tYXJpemluZyB0aGUgdGhvdWdodCBwcm9jZXNzLCB0YWlsb3JlZCBmb3IgYW4gZXhwZXJ0IGF1ZGllbmNlLCBhbmQgd3JpdHRlbiBpbiB0aGUgZmlyc3QgcGVyc29uOgoKKipBbmFseXppbmcgRGVwZW5kZW5jaWVzKioKClJpZ2h0LCBzbyBJIG5lZWQgdG8gdW5kZXJzdGFuZCB3aGF0IHRoaXMgdGhpbmcgKmFmZmVjdHMqIG9yICpyZWxpZXMgdXBvbiouIFdoYXQgb3RoZXIgcHJvY2Vzc2VzLCBzeXN0ZW1zLCBvciBkYXRhIGVsZW1lbnRzIGFyZSBkaXJlY3RseSBsaW5rZWQgdG8gaXQ/IFdoYXQgYXJlIHRoZSBpbXBsaWNhdGlvbnMgb2YgY2hhbmdlcyB0byAqaXQqPyBJIG5lZWQgdG8gdGhpbmsgdGhyb3VnaCBldmVyeSBwb3NzaWJsZSBjb25uZWN0aW9uIOKAkyBkaXJlY3QgZGVwZW5kZW5jaWVzLCBpbmRpcmVjdCBlZmZlY3RzLCBjYXNjYWRpbmcgaW1wYWN0cy4gTGV0IG1lIG1hcCBvdXQgdGhlIHJlbGF0aW9uc2hpcHMg4oCTIGNhdXNlIGFuZCBlZmZlY3QsIHVwc3RyZWFtIGFuZCBkb3duc3RyZWFtLiBUaGlzIHJlcXVpcmVzIGEgdGhvcm91Z2ggdW5kZXJzdGFuZGluZyBvZiB0aGUgb3ZlcmFsbCBzeXN0ZW0gYXJjaGl0ZWN0dXJlLCBkYXRhIGZsb3csIGFuZCBwb3RlbnRpYWwgZmFpbHVyZSBwb2ludHMuIEkgbmVlZCB0byBiZSBtZXRob2RpY2FsLiBMZXQmIzM5O3Mgc3RhcnQgd2l0aCB0aGUgaW1tZWRpYXRlIHZpY2luaXR5IGFuZCB0aGVuIGV4dHJhcG9sYXRlIG91dHdhcmRzIHRvIGdldCBhIGNvbXByZWhlbnNpdmUgdmlldy4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMC8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMTQgMDY6NDI8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7UlRXODhfVVNCJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZz0yMD1jb25maWcgUlRXODhfU0RJT1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZy0yMi1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZzoyMzpjb25maWcgUlRXODhfVVNCXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWctMjQtXHR0cmlzdGF0ZVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZz04Mj1jb25maWcgUlRXODhfODgyMkJVXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnLTg1LVx0c2VsZWN0IFJUVzg4X0NPUkVcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZzo4NjpcdHNlbGVjdCBSVFc4OF9VU0JcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZy04Ny1cdHNlbGVjdCBSVFc4OF84ODIyQlxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZz0xMTU9Y29uZmlnIFJUVzg4Xzg4MjJDVVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZy0xMTgtXHRzZWxlY3QgUlRXODhfQ09SRVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnOjExOTpcdHNlbGVjdCBSVFc4OF9VU0JcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZy0xMjAtXHRzZWxlY3QgUlRXODhfODgyMkNcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWc9MTYyPWNvbmZpZyBSVFc4OF84NzIzRFVcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWctMTY1LVx0c2VsZWN0IFJUVzg4X0NPUkVcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZzoxNjY6XHRzZWxlY3QgUlRXODhfVVNCXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWctMTY3LVx0c2VsZWN0IFJUVzg4Xzg3MjNEXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnPTE5NT1jb25maWcgUlRXODhfODgyMUNVXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnLTE5OC1cdHNlbGVjdCBSVFc4OF9DT1JFXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWc6MTk5Olx0c2VsZWN0IFJUVzg4X1VTQlxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnLTIwMC1cdHNlbGVjdCBSVFc4OF84ODIxQ1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZz0yMDY9Y29uZmlnIFJUVzg4Xzg4MjFBVVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZy0yMDktXHRzZWxlY3QgUlRXODhfQ09SRVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnOjIxMDpcdHNlbGVjdCBSVFc4OF9VU0JcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZy0yMTEtXHRzZWxlY3QgUlRXODhfODgyMUFcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWc9MjE3PWNvbmZpZyBSVFc4OF84ODEyQVVcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWctMjIwLVx0c2VsZWN0IFJUVzg4X0NPUkVcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZzoyMjE6XHRzZWxlY3QgUlRXODhfVVNCXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWctMjIyLVx0c2VsZWN0IFJUVzg4Xzg4MTJBXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnPTIzOT1jb25maWcgUlRXODhfODgxNEFVXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnLTI0Mi1cdHNlbGVjdCBSVFc4OF9DT1JFXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWc6MjQzOlx0c2VsZWN0IFJUVzg4X1VTQlxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnLTI0NC1cdHNlbGVjdCBSVFc4OF84ODE0QVxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjExLzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8xNCAwNjo0MjwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA1NDQ2CgkJCQkJCQlvdXRwdXQ6IDQxCgkJCQkJCQl0aG91Z2h0czogNTYKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqTXkgSW5pdGlhbCBUaG91Z2h0cyBvbiBXaUZpIERyaXZlciBDb25maWd1cmF0aW9uKioKCk9rYXksIHNvIHdlJiMzOTtyZSBsb29raW5nIGF0IGVuYWJsaW5nIGEgUmVhbHRlayBXaUZpIGRyaXZlciBoZXJlLiBNeSBpbnN0aW5jdCBpcyB0byBzdGFydCBicm9hZC4gTGV0JiMzOTtzIGVuYWJsZSB0aGUgYmFzZSBgUlRXODhgIG1vZHVsZSBhbmQgdGhlbiBhbHNvIHRhcmdldCB0aGUgc3BlY2lmaWMgYFJUVzg4Xzg4MjJCVWAgc2luY2UgdGhhdCBzZWVtcyB0byBiZSBhIGNvbW1vbiB2YXJpYW50LiBJIGFsd2F5cyBmaW5kIGl0IGJlc3QgdG8gc3RhcnQgd2l0aCBhIG1vcmUgY29tcHJlaGVuc2l2ZSBhcHByb2FjaC4gTm93LCBiZWZvcmUgd2UgZ28gYW55IGZ1cnRoZXIsIGxldCYjMzk7cyBqdXN0IHF1aWNrbHkgY2hlY2sgb24gYFJUVzg4YCYjMzk7cyBkZXBlbmRlbmNpZXMuIEkgbmVlZCB0byBtYWtlIHN1cmUgd2UgYXJlbiYjMzk7dCBpbnRyb2R1Y2luZyBhbnkgY29uZmxpY3RzIG9yIHB1bGxpbmcgaW4gdW5uZWNlc3NhcnkgYmFnZ2FnZS4gVW5kZXJzdGFuZGluZyB0aGUgYnVpbGQgc3lzdGVtIGFuZCBkZXBlbmRlbmNpZXMgdGhvcm91Z2hseSBpcyBrZXkgaGVyZS4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMi8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMTQgMDY6NDI8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7Y29uZmlnIFJUVzg4JiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZy0xLSMgU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjAtb25seVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnOjI6bWVudWNvbmZpZyBSVFc4OFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnLTMtXHR0cmlzdGF0ZSBcJiMzNDtSZWFsdGVrIDgwMi4xMWFjIHdpcmVsZXNzIGNoaXBzIHN1cHBvcnRcJiMzNDtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWc9MTE9aWYgUlRXODhcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZy0xMi1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZzoxMzpjb25maWcgUlRXODhfQ09SRVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnLTE0LVx0dHJpc3RhdGVcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWctMTYtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWc6MTc6Y29uZmlnIFJUVzg4X1BDSVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnLTE4LVx0dHJpc3RhdGVcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZy0xOS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZzoyMDpjb25maWcgUlRXODhfU0RJT1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnLTIxLVx0dHJpc3RhdGVcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZy0yMi1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZzoyMzpjb25maWcgUlRXODhfVVNCXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWctMjQtXHR0cmlzdGF0ZVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnLTI1LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnOjI2OmNvbmZpZyBSVFc4OF84ODIyQlxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnLTI3LVx0dHJpc3RhdGVcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZy0yOC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZzoyOTpjb25maWcgUlRXODhfODgyMkNcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZy0zMC1cdHRyaXN0YXRlXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWctMzEtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWc6MzI6Y29uZmlnIFJUVzg4Xzg3MjNYXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWctMzMtXHR0cmlzdGF0ZVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnLTM0LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnOjM1OmNvbmZpZyBSVFc4OF84NzAzQlxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnLTM2LVx0dHJpc3RhdGVcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWctMzgtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWc6Mzk6Y29uZmlnIFJUVzg4Xzg3MjNEXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWctNDAtXHR0cmlzdGF0ZVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZy00Mi1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZzo0Mzpjb25maWcgUlRXODhfODgyMUNcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZy00NC1cdHRyaXN0YXRlXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWctNDUtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWc6NDY6Y29uZmlnIFJUVzg4Xzg4WFhBXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWctNDctXHR0cmlzdGF0ZVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnLTQ4LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnOjQ5OmNvbmZpZyBSVFc4OF84ODIxQVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnLTUwLVx0dHJpc3RhdGVcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWctNTItXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWc6NTM6Y29uZmlnIFJUVzg4Xzg4MTJBXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWctNTQtXHR0cmlzdGF0ZVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZy01Ni1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZzo1Nzpjb25maWcgUlRXODhfODgxNEFcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZy01OC1cdHRyaXN0YXRlXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWctNTktXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWc6NjA6Y29uZmlnIFJUVzg4Xzg4MjJCRVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnLTYxLVx0dHJpc3RhdGUgXCYjMzQ7UmVhbHRlayA4ODIyQkUgUENJIHdpcmVsZXNzIG5ldHdvcmsgYWRhcHRlclwmIzM0O1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZy03MC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZzo3MTpjb25maWcgUlRXODhfODgyMkJTXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWctNzItXHR0cmlzdGF0ZSBcJiMzNDtSZWFsdGVrIDg4MjJCUyBTRElPIHdpcmVsZXNzIG5ldHdvcmsgYWRhcHRlclwmIzM0O1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZy04MS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZzo4Mjpjb25maWcgUlRXODhfODgyMkJVXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWctODMtXHR0cmlzdGF0ZSBcJiMzNDtSZWFsdGVrIDg4MjJCVSBVU0Igd2lyZWxlc3MgbmV0d29yayBhZGFwdGVyXCYjMzQ7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnLTkyLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnOjkzOmNvbmZpZyBSVFc4OF84ODIyQ0VcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZy05NC1cdHRyaXN0YXRlIFwmIzM0O1JlYWx0ZWsgODgyMkNFIFBDSSB3aXJlbGVzcyBuZXR3b3JrIGFkYXB0ZXJcJiMzNDtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWctMTAzLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnOjEwNDpjb25maWcgUlRXODhfODgyMkNTXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWctMTA1LVx0dHJpc3RhdGUgXCYjMzQ7UmVhbHRlayA4ODIyQ1MgU0RJTyB3aXJlbGVzcyBuZXR3b3JrIGFkYXB0ZXJcJiMzNDtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWctMTE0LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnOjExNTpjb25maWcgUlRXODhfODgyMkNVXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWctMTE2LVx0dHJpc3RhdGUgXCYjMzQ7UmVhbHRlayA4ODIyQ1UgVVNCIHdpcmVsZXNzIG5ldHdvcmsgYWRhcHRlclwmIzM0O1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZy0xMjUtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWc6MTI2OmNvbmZpZyBSVFc4OF84NzIzREVcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZy0xMjctXHR0cmlzdGF0ZSBcJiMzNDtSZWFsdGVrIDg3MjNERSBQQ0kgd2lyZWxlc3MgbmV0d29yayBhZGFwdGVyXCYjMzQ7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnLTEzNi1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZzoxMzc6Y29uZmlnIFJUVzg4Xzg3MjNEU1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnLTEzOC1cdHRyaXN0YXRlIFwmIzM0O1JlYWx0ZWsgODcyM0RTIFNESU8gd2lyZWxlc3MgbmV0d29yayBhZGFwdGVyXCYjMzQ7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnLTE0Ny1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZzoxNDg6Y29uZmlnIFJUVzg4Xzg3MjNDU1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnLTE0OS1cdHRyaXN0YXRlIFwmIzM0O1JlYWx0ZWsgODcyM0NTIFNESU8gd2lyZWxlc3MgbmV0d29yayBhZGFwdGVyXCYjMzQ7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnLTE2MS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZzoxNjI6Y29uZmlnIFJUVzg4Xzg3MjNEVVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnLTE2My1cdHRyaXN0YXRlIFwmIzM0O1JlYWx0ZWsgODcyM0RVIFVTQiB3aXJlbGVzcyBuZXR3b3JrIGFkYXB0ZXJcJiMzNDtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWctMTcyLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnOjE3Mzpjb25maWcgUlRXODhfODgyMUNFXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWctMTc0LVx0dHJpc3RhdGUgXCYjMzQ7UmVhbHRlayA4ODIxQ0UgUENJIHdpcmVsZXNzIG5ldHdvcmsgYWRhcHRlclwmIzM0O1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZy0xODMtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWc6MTg0OmNvbmZpZyBSVFc4OF84ODIxQ1NcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZy0xODUtXHR0cmlzdGF0ZSBcJiMzNDtSZWFsdGVrIDg4MjFDUyBTRElPIHdpcmVsZXNzIG5ldHdvcmsgYWRhcHRlclwmIzM0O1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZy0xOTQtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWc6MTk1OmNvbmZpZyBSVFc4OF84ODIxQ1VcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZy0xOTYtXHR0cmlzdGF0ZSBcJiMzNDtSZWFsdGVrIDg4MjFDVSBVU0Igd2lyZWxlc3MgbmV0d29yayBhZGFwdGVyXCYjMzQ7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnLTIwNS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZzoyMDY6Y29uZmlnIFJUVzg4Xzg4MjFBVVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnLTIwNy1cdHRyaXN0YXRlIFwmIzM0O1JlYWx0ZWsgODgyMUFVLzg4MTFBVSBVU0Igd2lyZWxlc3MgbmV0d29yayBhZGFwdGVyXCYjMzQ7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnLTIxNi1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZzoyMTc6Y29uZmlnIFJUVzg4Xzg4MTJBVVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnLTIxOC1cdHRyaXN0YXRlIFwmIzM0O1JlYWx0ZWsgODgxMkFVIFVTQiB3aXJlbGVzcyBuZXR3b3JrIGFkYXB0ZXJcJiMzNDtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWctMjI3LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnOjIyODpjb25maWcgUlRXODhfODgxNEFFXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWctMjI5LVx0dHJpc3RhdGUgXCYjMzQ7UmVhbHRlayA4ODE0QUUgUENJIHdpcmVsZXNzIG5ldHdvcmsgYWRhcHRlclwmIzM0O1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZy0yMzgtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWc6MjM5OmNvbmZpZyBSVFc4OF84ODE0QVVcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZy0yNDAtXHR0cmlzdGF0ZSBcJiMzNDtSZWFsdGVrIDg4MTRBVSBVU0Igd2lyZWxlc3MgbmV0d29yayBhZGFwdGVyXCYjMzQ7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnLTI0OS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZzoyNTA6Y29uZmlnIFJUVzg4X0RFQlVHXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWctMjUxLVx0Ym9vbCBcJiMzNDtSZWFsdGVrIHJ0dzg4IGRlYnVnIHN1cHBvcnRcJiMzNDtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWctMjU3LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnOjI1ODpjb25maWcgUlRXODhfREVCVUdGU1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnLTI1OS1cdGJvb2wgXCYjMzQ7UmVhbHRlayBydHc4OCBkZWJ1Z2ZzIHN1cHBvcnRcJiMzNDtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWctMjY1LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnOjI2Njpjb25maWcgUlRXODhfTEVEU1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnLTI2Ny1cdGJvb2xcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMy8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMTQgMDY6NDI8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogODgwNwoJCQkJCQkJb3V0cHV0OiA1MgoJCQkJCQkJdGhvdWdodHM6IDcxCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5IZXJlJiMzOTtzIG15IHRha2Ugb24gdGhpcywgY29uc2lkZXJpbmcgSSYjMzk7bSBkZWVwIGluIHRoZXNlIGtpbmRzIG9mIGtlcm5lbCBtb2R1bGUgZGVwZW5kZW5jaWVzOgoKKipLZXJuZWwgTW9kdWxlIERlcGVuZGVuY3kgQ2hlY2sqKgoKT2theSwgc28gSSYjMzk7bSBsb29raW5nIGF0IHRoaXMgZHJpdmVyIHNpdHVhdGlvbi4gRmlyc3QsIEkgbmVlZCB0byBtYWtlIHN1cmUgSSBoYXZlIGFsbCB0aGUgbmVjZXNzYXJ5IG1vZHVsZXMgbG9hZGVkLCBnaXZlbiB0aGUgZGVwZW5kZW5jaWVzLiBJdCYjMzk7cyBwcmV0dHkgc3RyYWlnaHRmb3J3YXJkOiBgUlRXODhgIHJlbGllcyBvbiBgTUFDODAyMTFgLCB3aGljaCBtYWtlcyBzZW5zZSBhcyBpdCBwcm92aWRlcyB0aGUgY29yZSA4MDIuMTEgZnVuY3Rpb25hbGl0eS4gIFRoZXJlZm9yZSwgSSYjMzk7bGwgbmVlZCB0byBjb25maXJtIHRoYXQgYE1BQzgwMjExYCwgdGhlIGJhc2UgZHJpdmVyLCBpcyBwcmVzZW50LCBhbG9uZyB3aXRoIGJvdGggYFJUVzg4YCBhbmQgdGhlIHNwZWNpZmljIHZhcmlhbnQgYFJUVzg4Xzg4MjJCVWAuIEkmIzM5O2xsIGhhdmUgdG8gdmVyaWZ5IHRoZSBtb2R1bGUgbG9hZGluZyBvcmRlciwgdG9vLCBqdXN0IHRvIGJlIG9uIHRoZSBzYWZlIHNpZGUuCgpOb3csIEkmIzM5O20gZ29pbmcgdG8gZGlnIGEgYml0IGRlZXBlci4gVGltZSB0byBleGFtaW5lIHRoYXQgYHJ0d191c2JfdHhfcXVldWVfbWFwcGluZ190b19xc2VsYCBmdW5jdGlvbi4gSSB3YW50IHRvIHNlZSBob3cgdGhlIFVTQiB0cmFuc21pc3Npb24gcXVldWVzIGFyZSBiZWluZyBtYXBwZWQgdG8gdGhlIHF1ZXVlIHNlbGVjdC4gSSYjMzk7bSBob3BpbmcgSSBkb24mIzM5O3QgaGF2ZSB0byByZXdyaXRlIHRoZSBxdWV1ZSBoYW5kbGluZy4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xNC8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMTQgMDY6NDI8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7cnR3X3VzYl90eF9xdWV1ZV9tYXBwaW5nX3RvX3FzZWwmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3VzYi5jJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdXNiLmM9NTUwPXN0YXRpYyBpbnQgcnR3X3VzYl93cml0ZV9kYXRhX2gyYyhzdHJ1Y3QgcnR3X2RldiAqcnR3ZGV2LCB1OCAqYnVmLCB1MzIgc2l6ZSlcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3VzYi5jLTU1OS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdXNiLmM6NTYwOnN0YXRpYyB1OCBydHdfdXNiX3R4X3F1ZXVlX21hcHBpbmdfdG9fcXNlbChzdHJ1Y3Qgc2tfYnVmZiAqc2tiKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC91c2IuYy01NjEte1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdXNiLmM9NTgxPXN0YXRpYyBpbnQgcnR3X3VzYl90eF93cml0ZShzdHJ1Y3QgcnR3X2RldiAqcnR3ZGV2LFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdXNiLmMtNTkwLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC91c2IuYzo1OTE6XHRwa3RfaW5mby1cdTAwM2Vxc2VsID0gcnR3X3VzYl90eF9xdWV1ZV9tYXBwaW5nX3RvX3FzZWwoc2tiKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdXNiLmMtNTkyLVx0cGt0X2Rlc2MgPSBza2JfcHVzaChza2IsIGNoaXAtXHUwMDNldHhfcGt0X2Rlc2Nfc3opO1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjE1LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8xNCAwNjo0MjwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA5NTA0CgkJCQkJCQlvdXRwdXQ6IDQ1CgkJCQkJCQl0aG91Z2h0czogMTQKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPk9rYXksIGhlcmUmIzM5O3MgbXkgaW50ZXJwcmV0YXRpb24gb2YgdGhhdCB0aG91Z2h0IHByb2Nlc3MsIGFzc3VtaW5nIEkmIzM5O20gZGVlcCBpbiB0aGUgd2VlZHMgb2YgZW1iZWRkZWQgc3lzdGVtcyBhbmQgVVNCIGRyaXZlciBkZXZlbG9wbWVudDoKCioqVGhpbmtpbmcgVGhyb3VnaCBhIFVTQiBUcmFuc21pc3Npb24gRnVuY3Rpb24gQ2FsbCoqCgpBbHJpZ2h0LCBzbyBgcnR3X3VzYl90eF93cml0ZWAgaXMgdGhlIGNhbGxlci4gVGhhdCBpbW1lZGlhdGVseSB0ZWxscyBtZSB0aGlzIGZ1bmN0aW9uIGlzIHJlc3BvbnNpYmxlIGZvciBpbml0aWF0aW5nIGEgVVNCIHRyYW5zbWlzc2lvbiwgbGlrZWx5IGZvciBhIFJlYWx0ZWsgV2ktRmkgZGV2aWNlLiBJJiMzOTttIGFscmVhZHkgdGhpbmtpbmcgYWJvdXQgd2hhdCB0aGF0IGltcGxpZXMuIFRoaXMgcHJvYmFibHkgbWVhbnMgdGhlcmUmIzM5O3MgYSBoaWdoZXItbGV2ZWwgZnVuY3Rpb24sIHBlcmhhcHMgYHJ0d19uZXRpZl90cmFuc21pdGAsIHdoaWNoIGlzIHJlc3BvbnNpYmxlIGZvciB0YWtpbmcgbmV0d29yayBwYWNrZXRzIGFuZCB1bHRpbWF0ZWx5IGNhbGxpbmcgKnRoaXMqIGZ1bmN0aW9uIHRvIGFjdHVhbGx5IHNlbmQgdGhlIGRhdGEgb3ZlciB0aGUgVVNCIGJ1cy4KCk15IG1pbmQganVtcHMgdG8gdGhlIGRhdGEgc3RydWN0dXJlcyBpbnZvbHZlZDogSeKAmWxsIG5lZWQgdG8gdW5kZXJzdGFuZCB0aGUgYnVmZmVyIHdoZXJlIHRoZSBkYXRhIHRvIGJlIHRyYW5zbWl0dGVkIGxpdmVzLCBob3cgaXTigJlzIG1hcHBlZCB0byBVU0IgZW5kcG9pbnRzLCB3aGF0IGRlc2NyaXB0b3JzIGFyZSB1c2VkLCBhbmQgd2hldGhlciB0aGVyZSYjMzk7cyBzb21lIGtpbmQgb2YgRE1BIGludm9sdmVkIHRvIHJlZHVjZSBDUFUgbG9hZC4gSSBuZWVkIHRvIHJlZnJlc2ggbXkgbWVtb3J5IGFib3V0IHRoZSBSZWFsdGVrLXNwZWNpZmljIG51YW5jZXMgb2YgdGhlaXIgVVNCIGRyaXZlciBpbXBsZW1lbnRhdGlvbi4gSXMgaXQgcG9sbGluZywgaW50ZXJydXB0LWRyaXZlbiwgb3IgdXNpbmcgc29tZSBraW5kIG9mIHJpbmcgYnVmZmVyIG1lY2hhbmlzbT8KCknigJltIGFsc28gd29uZGVyaW5nIGFib3V0IHRoZSBjb250ZXh0LiBXaGF0IHJlc291cmNlcyBhcmUgYWxyZWFkeSBpbiB1c2U/IEFyZSB0aGVyZSBsb2NrcyBvciBtdXRleGVzIHRvIHdvcnJ5IGFib3V0PyBBcmUgd2UgZGVhbGluZyB3aXRoIGEgc2luZ2xlIHBhY2tldCBvciBhIGxhcmdlciB0cmFuc21pc3Npb24gc3BsaXQgaW50byBjaHVua3M/IEFueSBlcnJvciBoYW5kbGluZz8gVGhpcyBmdW5jdGlvbiBzaG91bGQgYmUgcm9idXN0IHRvIGhhbmRsZSBkaXNjb25uZWN0cywgZXJyb3JzIG9uIHRoZSBVU0IgYnVzLCBhbmQgcG90ZW50aWFsIGJ1ZmZlciBvdmVyZmxvd3MuIEkgaGF2ZSB0byBiZSByZWFkeSB0byBkZWJ1ZyB0aG9zZSBzY2VuYXJpb3MuIEtub3dpbmcgYHJ0d191c2JfdHhfd3JpdGVgIGlzIHRoZSBjYWxsZXIsIEkgaW1tZWRpYXRlbHkgc2VlIHRoZSBjcml0aWNhbCBwYXJ0IG9mIHRoZSBzeXN0ZW0gaXMgdGhlIFVTQiB0cmFuc2Zlci4gSSBuZWVkIHRvIGtlZXAgaW4gbWluZCB0aGUgZGV2aWNlLCBhbmQgdGhlIGhvc3QsIGFuZCB0aGUgZGF0YSB0cmFuc2ZlciBwcm90b2NvbCB0byBrZWVwIHRoZSBzeXN0ZW0gd29ya2luZy4KCkl0IGFsbCBib2lscyBkb3duIHRvIHRoZSBVU0IgcGFja2V0IHRyYW5zbWlzc2lvbi4gSSB3aWxsIGhhdmUgdG8gZW5zdXJlIHRoYXQgYWxsIGRhdGEgaXMgY29ycmVjdGx5IGNvcGllZCB0byB0aGUgcHJvcGVyIGhhcmR3YXJlIGJ1ZmZlcnMsIGFuZCB0aGUgVVNCIGNvbnRyb2xsZXIgaGFzIHRoZSByaWdodCBkYXRhIHRvIHN0YXJ0IHRyYW5zZmVycmluZy4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xNi8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMTQgMDY6NDI8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7cnR3X3VzYl90eF93cml0ZSYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdXNiLmMmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC91c2IuYz01NjA9c3RhdGljIHU4IHJ0d191c2JfdHhfcXVldWVfbWFwcGluZ190b19xc2VsKHN0cnVjdCBza19idWZmICpza2IpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC91c2IuYy01ODAtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3VzYi5jOjU4MTpzdGF0aWMgaW50IHJ0d191c2JfdHhfd3JpdGUoc3RydWN0IHJ0d19kZXYgKnJ0d2RldixcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdXNiLmMtNTgyLVx0XHRcdCAgICBzdHJ1Y3QgcnR3X3R4X3BrdF9pbmZvICpwa3RfaW5mbyxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3VzYi5jPTk1Mz1zdGF0aWMgY29uc3Qgc3RydWN0IHJ0d19oY2lfb3BzIHJ0d191c2Jfb3BzID0ge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC91c2IuYzo5NTQ6XHQudHhfd3JpdGUgPSBydHdfdXNiX3R4X3dyaXRlLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC91c2IuYy05NTUtXHQudHhfa2lja19vZmYgPSBydHdfdXNiX3R4X2tpY2tfb2ZmLFxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjE3LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8xNCAwNjo0MjwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAxMDI1MwoJCQkJCQkJb3V0cHV0OiA0MwoJCQkJCQkJdGhvdWdodHM6IDEzMQoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipBbmFseXppbmcgdGhlIHJ0d191c2JfdHggUGF0aCoqCgpPa2F5LCBzbyBJJiMzOTttIGxvb2tpbmcgaW50byB0aGUgYHJ0d191c2JfdHhfd3JpdGVgIGZ1bmN0aW9uOyBpdCYjMzk7cyBhIGNhbGxiYWNrIHdpdGhpbiB0aGUgYHJ0d19oY2lfb3BzYCBzdHJ1Y3R1cmUuIE15IGluaXRpYWwgaW5zdGluY3QgdGVsbHMgbWUgdGhpcyAqaGFzKiB0byBiZSBwYXJ0IG9mIHRoZSBtYWM4MDIxMSB0cmFuc21pdCBwYXRoLiBUaGF0IHNlZW1zIGxpa2UgYSBsb2dpY2FsIGNvbm5lY3Rpb24gdG8gbWFrZS4KCkFscmlnaHQsIHRpbWUgdG8gZGlnIGluLiBMZXQmIzM5O3MgbWFrZSBgcnR3X3VzYl90eF93cml0ZWAgYW5kIGBydHdfdXNiX3R4X2tpY2tfb2ZmYCBvdXIgZm9jYWwgcG9pbnRzIGZvciBub3cg4oCTIHRob3NlIHNlZW0gbGlrZSBrZXkgcGllY2VzIHRvIHVuZGVyc3RhbmQuCgpXYWl0IGEgc2Vjb25k4oCmIGBydHdfdXNiX3R4X3dyaXRlYCBpcyAqc3RhdGljKj8gSG1tLCB0aGF0JiMzOTtzIGEgYml0IG9mIGEgd3JpbmtsZS4gU3RhdGljIGZ1bmN0aW9ucyBjYW4gYmUgdHJpY2t5IHdoZW4gdHJhY2luZyBleGVjdXRpb24gcGF0aHMsIHNpbmNlIHRoZXkgY2FuIGJlIGEgYml0IG1vcmUgbGltaXRlZCBpbiBzY29wZS4gTWF5YmUgaXQmIzM5O3Mgbm90IHRoZSBiZXN0IHN5bWJvbCB0byBmb2N1cyBvbiBkaXJlY3RseS4gSSYjMzk7bGwgaGF2ZSB0byBrZWVwIHRoYXQgaW4gbWluZC4KCkxldCYjMzk7cyBzd2l0Y2ggZ2VhcnMgYSBiaXQuIFBlcmhhcHMgdW5kZXJzdGFuZGluZyBob3cgYHJ0d191c2Jfb3BzYCBpcyB1c2VkIHdpbGwgZ2l2ZSBtZSBhIGJldHRlciBvdmVydmlldyBvZiB0aGUgb3ZlcmFsbCBmbG93IGFuZCBob3cgYHJ0d191c2JfdHhfd3JpdGVgIGZpdHMgaW50byB0aGUgcGljdHVyZS4gVGhhdCB3aWxsIGJlIGEgbW9yZSBwcm9kdWN0aXZlIGxpbmUgb2YgaW5xdWlyeS4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xOC8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMTQgMDY6NDI8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7cnR3X3VzYl9vcHMmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3VzYi5jJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdXNiLmM9OTMxPXN0YXRpYyB2b2lkIHJ0d191c2JfZHluYW1pY19yeF9hZ2coc3RydWN0IHJ0d19kZXYgKnJ0d2RldiwgYm9vbCBlbmFibGUpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC91c2IuYy05NTItXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3VzYi5jOjk1MzpzdGF0aWMgY29uc3Qgc3RydWN0IHJ0d19oY2lfb3BzIHJ0d191c2Jfb3BzID0ge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC91c2IuYy05NTQtXHQudHhfd3JpdGUgPSBydHdfdXNiX3R4X3dyaXRlLFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdXNiLmM9MTI2NT1pbnQgcnR3X3VzYl9wcm9iZShzdHJ1Y3QgdXNiX2ludGVyZmFjZSAqaW50ZiwgY29uc3Qgc3RydWN0IHVzYl9kZXZpY2VfaWQgKmlkKVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdXNiLmMtMTI4MS1cdHJ0d2Rldi1cdTAwM2VjaGlwID0gKHN0cnVjdCBydHdfY2hpcF9pbmZvICopaWQtXHUwMDNlZHJpdmVyX2luZm87XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3VzYi5jOjEyODI6XHRydHdkZXYtXHUwMDNlaGNpLm9wcyA9IFx1MDAyNnJ0d191c2Jfb3BzO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC91c2IuYy0xMjgzLVx0cnR3ZGV2LVx1MDAzZWhjaS50eXBlID0gUlRXX0hDSV9UWVBFX1VTQjtcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xOS8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMTQgMDY6NDI8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMTEwNDEKCQkJCQkJCW91dHB1dDogMzcKCQkJCQkJCXRob3VnaHRzOiAzMgoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+T2theSwgaGVyZSYjMzk7cyBteSBpbnRlcnByZXRhdGlvbiBvZiB0aG9zZSB0aG91Z2h0cywgcHJlc2VudGVkIGFzIGEgcGVyc29uYWwgdGhvdWdodCBwcm9jZXNzLCBhcyByZXF1ZXN0ZWQ6CgoqKlRyYWNpbmcgdGhlIERhdGEgVHJhbnNtaXNzaW9uIFBhdGgqKgoKUmlnaHQsIHNvIHRoZSBjYWxsYmFjayBmb3IgdGhpcyBwcm9jZXNzIGlzIHRyaWdnZXJlZCBieSBgcnR3ZGV2LSZndDtoY2kub3BzLSZndDt0eF93cml0ZWAuIE9rYXksIGdvb2QuIE5vdyBJIG5lZWQgdG8gZmlndXJlIG91dCB0aGUgdXBzdHJlYW0gbG9naWMuIFRoZSBjcml0aWNhbCBxdWVzdGlvbiBoZXJlIGlzOiAqd2hlcmUqIGlzIGB0eF93cml0ZWAgYWN0dWFsbHkgYmVpbmcgY2FsbGVkPyBJIG5lZWQgdG8gdHJhY2UgYmFjayBmcm9tIHRoYXQgcG9pbnQgdG8gdW5kZXJzdGFuZCB0aGUgY29tcGxldGUgZGF0YSB0cmFuc21pc3Npb24gcGF0aC4gVGhpcyBpcyBrZXkgdG8gZGVidWdnaW5nLiBMZXQmIzM5O3MgZGlnIGludG8gdGhlIGNhbGwgc3RhY2tzIGFuZCBpZGVudGlmeSB3aGVyZSB0aGlzIGZ1bmN0aW9uIGlzIGludm9rZWQuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MjAvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzE0IDA2OjQyPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O3R4X3dyaXRlJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC8mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9oY2kuaD05PXN0cnVjdCBydHdfaGNpX29wcyB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L2hjaS5oOjEwOlx0aW50ICgqdHhfd3JpdGUpKHN0cnVjdCBydHdfZGV2ICpydHdkZXYsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L2hjaS5oLTExLVx0XHRcdHN0cnVjdCBydHdfdHhfcGt0X2luZm8gKnBrdF9pbmZvLFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvaGNpLmgtMzUtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L2hjaS5oOjM2OnN0YXRpYyBpbmxpbmUgaW50IHJ0d19oY2lfdHhfd3JpdGUoc3RydWN0IHJ0d19kZXYgKnJ0d2RldixcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvaGNpLmgtMzctXHRcdFx0XHQgICBzdHJ1Y3QgcnR3X3R4X3BrdF9pbmZvICpwa3RfaW5mbyxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L2hjaS5oLTM5LXtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvaGNpLmg6NDA6XHRyZXR1cm4gcnR3ZGV2LVx1MDAzZWhjaS5vcHMtXHUwMDNldHhfd3JpdGUocnR3ZGV2LCBwa3RfaW5mbywgc2tiKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvaGNpLmgtNDEtfVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcGNpLmM9NzkwPXN0YXRpYyB2b2lkIHJ0d19wY2lfdHhfa2lja19vZmYoc3RydWN0IHJ0d19kZXYgKnJ0d2Rldilcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3BjaS5jLTc5OS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcGNpLmM6ODAwOnN0YXRpYyBpbnQgcnR3X3BjaV90eF93cml0ZV9kYXRhKHN0cnVjdCBydHdfZGV2ICpydHdkZXYsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3BjaS5jLTgwMS1cdFx0XHRcdCBzdHJ1Y3QgcnR3X3R4X3BrdF9pbmZvICpwa3RfaW5mbyxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3BjaS5jPTg3MD1zdGF0aWMgaW50IHJ0d19wY2lfd3JpdGVfZGF0YV9yc3ZkX3BhZ2Uoc3RydWN0IHJ0d19kZXYgKnJ0d2RldiwgdTggKmJ1Zixcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3BjaS5jLTg3Ny1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcGNpLmM6ODc4Olx0c2tiID0gcnR3X3R4X3dyaXRlX2RhdGFfcnN2ZF9wYWdlX2dldChydHdkZXYsIFx1MDAyNnBrdF9pbmZvLCBidWYsIHNpemUpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9wY2kuYy04NzktXHRpZiAoIXNrYilcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3BjaS5jLTg4MS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcGNpLmM6ODgyOlx0cmV0ID0gcnR3X3BjaV90eF93cml0ZV9kYXRhKHJ0d2RldiwgXHUwMDI2cGt0X2luZm8sIHNrYiwgUlRXX1RYX1FVRVVFX0JDTik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3BjaS5jLTg4My1cdGlmIChyZXQpIHtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3BjaS5jPTg5Nj1zdGF0aWMgaW50IHJ0d19wY2lfd3JpdGVfZGF0YV9oMmMoc3RydWN0IHJ0d19kZXYgKnJ0d2RldiwgdTggKmJ1ZiwgdTMyIHNpemUpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9wY2kuYy05MDEtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3BjaS5jOjkwMjpcdHNrYiA9IHJ0d190eF93cml0ZV9kYXRhX2gyY19nZXQocnR3ZGV2LCBcdTAwMjZwa3RfaW5mbywgYnVmLCBzaXplKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcGNpLmMtOTAzLVx0aWYgKCFza2IpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9wY2kuYy05MDUtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3BjaS5jOjkwNjpcdHJldCA9IHJ0d19wY2lfdHhfd3JpdGVfZGF0YShydHdkZXYsIFx1MDAyNnBrdF9pbmZvLCBza2IsIFJUV19UWF9RVUVVRV9IMkMpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9wY2kuYy05MDctXHRpZiAocmV0KSB7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9wY2kuYy05MTYtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3BjaS5jOjkxNzpzdGF0aWMgaW50IHJ0d19wY2lfdHhfd3JpdGUoc3RydWN0IHJ0d19kZXYgKnJ0d2RldixcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcGNpLmMtOTE4LVx0XHRcdCAgICBzdHJ1Y3QgcnR3X3R4X3BrdF9pbmZvICpwa3RfaW5mbyxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3BjaS5jLTkyNS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcGNpLmM6OTI2Olx0cmV0ID0gcnR3X3BjaV90eF93cml0ZV9kYXRhKHJ0d2RldiwgcGt0X2luZm8sIHNrYiwgcXVldWUpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9wY2kuYy05MjctXHRpZiAocmV0KVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcGNpLmM9MTYwNT1zdGF0aWMgY29uc3Qgc3RydWN0IHJ0d19oY2lfb3BzIHJ0d19wY2lfb3BzID0ge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9wY2kuYzoxNjA2Olx0LnR4X3dyaXRlID0gcnR3X3BjaV90eF93cml0ZSxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcGNpLmMtMTYwNy1cdC50eF9raWNrX29mZiA9IHJ0d19wY2lfdHhfa2lja19vZmYsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9zZGlvLmM9OTAwPXN0YXRpYyBpbnQgcnR3X3NkaW9fd3JpdGVfZGF0YV9yc3ZkX3BhZ2Uoc3RydWN0IHJ0d19kZXYgKnJ0d2RldiwgdTggKmJ1Zixcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3NkaW8uYy05MDUtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3NkaW8uYzo5MDY6XHRza2IgPSBydHdfdHhfd3JpdGVfZGF0YV9yc3ZkX3BhZ2VfZ2V0KHJ0d2RldiwgXHUwMDI2cGt0X2luZm8sIGJ1Ziwgc2l6ZSk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3NkaW8uYy05MDctXHRpZiAoIXNrYilcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3NkaW8uYz05MTM9c3RhdGljIGludCBydHdfc2Rpb193cml0ZV9kYXRhX2gyYyhzdHJ1Y3QgcnR3X2RldiAqcnR3ZGV2LCB1OCAqYnVmLCB1MzIgc2l6ZSlcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3NkaW8uYy05MTctXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3NkaW8uYzo5MTg6XHRza2IgPSBydHdfdHhfd3JpdGVfZGF0YV9oMmNfZ2V0KHJ0d2RldiwgXHUwMDI2cGt0X2luZm8sIGJ1Ziwgc2l6ZSk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3NkaW8uYy05MTktXHRpZiAoIXNrYilcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3NkaW8uYy05MjQtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3NkaW8uYzo5MjU6c3RhdGljIGludCBydHdfc2Rpb190eF93cml0ZShzdHJ1Y3QgcnR3X2RldiAqcnR3ZGV2LFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9zZGlvLmMtOTI2LVx0XHRcdCAgICAgc3RydWN0IHJ0d190eF9wa3RfaW5mbyAqcGt0X2luZm8sXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9zZGlvLmM9MTE3MD1zdGF0aWMgY29uc3Qgc3RydWN0IHJ0d19oY2lfb3BzIHJ0d19zZGlvX29wcyA9IHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvc2Rpby5jOjExNzE6XHQudHhfd3JpdGUgPSBydHdfc2Rpb190eF93cml0ZSxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvc2Rpby5jLTExNzItXHQudHhfa2lja19vZmYgPSBydHdfc2Rpb190eF9raWNrX29mZixcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3R4LmM9NTAyPXN0cnVjdCBza19idWZmICpcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdHguYzo1MDM6cnR3X3R4X3dyaXRlX2RhdGFfcnN2ZF9wYWdlX2dldChzdHJ1Y3QgcnR3X2RldiAqcnR3ZGV2LFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC90eC5jLTUwNC1cdFx0XHRcdHN0cnVjdCBydHdfdHhfcGt0X2luZm8gKnBrdF9pbmZvLFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdHguYy01MjUtfVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC90eC5jOjUyNjpFWFBPUlRfU1lNQk9MKHJ0d190eF93cml0ZV9kYXRhX3JzdmRfcGFnZV9nZXQpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC90eC5jLTUyNy1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdHguYz01Mjg9c3RydWN0IHNrX2J1ZmYgKlxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC90eC5jOjUyOTpydHdfdHhfd3JpdGVfZGF0YV9oMmNfZ2V0KHN0cnVjdCBydHdfZGV2ICpydHdkZXYsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3R4LmMtNTMwLVx0XHRcdCAgc3RydWN0IHJ0d190eF9wa3RfaW5mbyAqcGt0X2luZm8sXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC90eC5jLTU1MS19XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3R4LmM6NTUyOkVYUE9SVF9TWU1CT0wocnR3X3R4X3dyaXRlX2RhdGFfaDJjX2dldCk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3R4LmMtNTUzLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC90eC5jPTU1ND12b2lkIHJ0d190eChzdHJ1Y3QgcnR3X2RldiAqcnR3ZGV2LFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdHguYy01NjEtXHRydHdfdHhfcGt0X2luZm9fdXBkYXRlKHJ0d2RldiwgXHUwMDI2cGt0X2luZm8sIGNvbnRyb2wtXHUwMDNlc3RhLCBza2IpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC90eC5jOjU2MjpcdHJldCA9IHJ0d19oY2lfdHhfd3JpdGUocnR3ZGV2LCBcdTAwMjZwa3RfaW5mbywgc2tiKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdHguYy01NjMtXHRpZiAocmV0KSB7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC90eC5jPTYwOD1zdGF0aWMgaW50IHJ0d190eHFfcHVzaF9za2Ioc3RydWN0IHJ0d19kZXYgKnJ0d2Rldixcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3R4LmMtNjE4LVx0cnR3X3R4X3BrdF9pbmZvX3VwZGF0ZShydHdkZXYsIFx1MDAyNnBrdF9pbmZvLCB0eHEtXHUwMDNlc3RhLCBza2IpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC90eC5jOjYxOTpcdHJldCA9IHJ0d19oY2lfdHhfd3JpdGUocnR3ZGV2LCBcdTAwMjZwa3RfaW5mbywgc2tiKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdHguYy02MjAtXHRpZiAocmV0KSB7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC90eC5oPTEwNj1zdHJ1Y3Qgc2tfYnVmZiAqXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3R4Lmg6MTA3OnJ0d190eF93cml0ZV9kYXRhX3JzdmRfcGFnZV9nZXQoc3RydWN0IHJ0d19kZXYgKnJ0d2RldixcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdHguaC0xMDgtXHRcdFx0XHRzdHJ1Y3QgcnR3X3R4X3BrdF9pbmZvICpwa3RfaW5mbyxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3R4Lmg9MTEwPXN0cnVjdCBza19idWZmICpcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdHguaDoxMTE6cnR3X3R4X3dyaXRlX2RhdGFfaDJjX2dldChzdHJ1Y3QgcnR3X2RldiAqcnR3ZGV2LFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC90eC5oLTExMi1cdFx0XHQgIHN0cnVjdCBydHdfdHhfcGt0X2luZm8gKnBrdF9pbmZvLFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdXNiLmM9NTYwPXN0YXRpYyB1OCBydHdfdXNiX3R4X3F1ZXVlX21hcHBpbmdfdG9fcXNlbChzdHJ1Y3Qgc2tfYnVmZiAqc2tiKVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdXNiLmMtNTgwLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC91c2IuYzo1ODE6c3RhdGljIGludCBydHdfdXNiX3R4X3dyaXRlKHN0cnVjdCBydHdfZGV2ICpydHdkZXYsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3VzYi5jLTU4Mi1cdFx0XHQgICAgc3RydWN0IHJ0d190eF9wa3RfaW5mbyAqcGt0X2luZm8sXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC91c2IuYz05NTM9c3RhdGljIGNvbnN0IHN0cnVjdCBydHdfaGNpX29wcyBydHdfdXNiX29wcyA9IHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdXNiLmM6OTU0Olx0LnR4X3dyaXRlID0gcnR3X3VzYl90eF93cml0ZSxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdXNiLmMtOTU1LVx0LnR4X2tpY2tfb2ZmID0gcnR3X3VzYl90eF9raWNrX29mZixcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4yMS8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMTQgMDY6NDI8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMTQ1MTUKCQkJCQkJCW91dHB1dDogMzgKCQkJCQkJCXRob3VnaHRzOiAyNAoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+SGVyZSYjMzk7cyBteSB0aG91Z2h0IHByb2Nlc3MsIGFzIHJlcXVlc3RlZDoKCioqQ2hlY2tpbmcgdGhlIE5hdHVyZSBvZiBgcnR3X3R4YCoqCgpPa2F5LCBsZXQmIzM5O3MgemVybyBpbiBvbiB0aGlzIGBydHdfdHhgIHN5bWJvbC4gVGhlIGtleSBxdWVzdGlvbiBpbiBteSBtaW5kIGlzOiBpcyB0aGlzIHRoaW5nIGEgcHVibGljbHkgYWNjZXNzaWJsZSBmdW5jdGlvbiwgbWVhbmluZyBpdCYjMzk7cyBiZWVuIGV4cG9ydGVkLCBvciBpcyBpdCBsdXJraW5nIHNvbWV3aGVyZSB3aXRoaW4gYSBsaW1pdGVkIHNjb3BlIGFzIGEgc3RhdGljIGludGVybmFsIGNvbXBvbmVudD8gSSYjMzk7bGwgbmVlZCB0byBmaWd1cmUgdGhpcyBvdXQgYmVmb3JlIEkgY2FuIHJlYXNvbiBmdXJ0aGVyIGFib3V0IHRoZSBjb2RlIHRoYXQgdG91Y2hlcyBpdC4gTGV0IG1lIGp1c3QgdGFrZSBhIGxvb2suLi4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4yMi8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMTQgMDY6NDI8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7cnR3X3R4JiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC8mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7XG5GdWxsIG91dHB1dCBpcyB0b28gbG9uZywgc2hvd2luZyA1MDAgb3V0IG9mIDg3MSBsaW5lcy5cblVzZSBtb3JlIHByZWNpc2UgZXhwcmVzc2lvbiBpZiBwb3NzaWJsZS5cblxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9mdy5jPTkzPXN0YXRpYyB2b2lkIHJ0d19md19jMmhfY21kX2hhbmRsZV9leHQoc3RydWN0IHJ0d19kZXYgKnJ0d2Rldixcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L2Z3LmMtMTAzLVx0Y2FzZSBDMkhfQ0NYX1JQVDpcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvZncuYzoxMDQ6XHRcdHJ0d190eF9yZXBvcnRfaGFuZGxlKHJ0d2Rldiwgc2tiLCBDMkhfQ0NYX1JQVCk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L2Z3LmMtMTA1LVx0XHRicmVhaztcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L2Z3LmM9MzAxPXZvaWQgcnR3X2Z3X2MyaF9jbWRfaGFuZGxlKHN0cnVjdCBydHdfZGV2ICpydHdkZXYsIHN0cnVjdCBza19idWZmICpza2IpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9mdy5jLTMxNy1cdGNhc2UgQzJIX0NDWF9UWF9SUFQ6XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L2Z3LmM6MzE4Olx0XHRydHdfdHhfcmVwb3J0X2hhbmRsZShydHdkZXYsIHNrYiwgQzJIX0NDWF9UWF9SUFQpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9mdy5jLTMxOS1cdFx0YnJlYWs7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9mdy5jPTEzMDA9c3RhdGljIHZvaWQgcnR3X2ZpbGxfcnN2ZF9wYWdlX2Rlc2Moc3RydWN0IHJ0d19kZXYgKnJ0d2Rldiwgc3RydWN0IHNrX2J1ZmYgKnNrYixcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L2Z3LmMtMTMwMi17XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L2Z3LmM6MTMwMzpcdHN0cnVjdCBydHdfdHhfcGt0X2luZm8gcGt0X2luZm8gPSB7MH07XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L2Z3LmMtMTMwNC1cdGNvbnN0IHN0cnVjdCBydHdfY2hpcF9pbmZvICpjaGlwID0gcnR3ZGV2LVx1MDAzZWNoaXA7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9mdy5jLTEzMDYtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L2Z3LmM6MTMwNzpcdHJ0d190eF9yc3ZkX3BhZ2VfcGt0X2luZm9fdXBkYXRlKHJ0d2RldiwgXHUwMDI2cGt0X2luZm8sIHNrYiwgdHlwZSk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L2Z3LmMtMTMwOC1cdHBrdF9kZXNjID0gc2tiX3B1c2goc2tiLCBjaGlwLVx1MDAzZXR4X3BrdF9kZXNjX3N6KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvZncuYy0xMzA5LVx0bWVtc2V0KHBrdF9kZXNjLCAwLCBjaGlwLVx1MDAzZXR4X3BrdF9kZXNjX3N6KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvZncuYzoxMzEwOlx0cnR3X3R4X2ZpbGxfdHhfZGVzYyhydHdkZXYsIFx1MDAyNnBrdF9pbmZvLCBza2IpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9mdy5jLTEzMTEtfVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvaGNpLmg9OT1zdHJ1Y3QgcnR3X2hjaV9vcHMge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9oY2kuaC0xMC1cdGludCAoKnR4X3dyaXRlKShzdHJ1Y3QgcnR3X2RldiAqcnR3ZGV2LFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9oY2kuaDoxMTpcdFx0XHRzdHJ1Y3QgcnR3X3R4X3BrdF9pbmZvICpwa3RfaW5mbyxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvaGNpLmgtMTItXHRcdFx0c3RydWN0IHNrX2J1ZmYgKnNrYik7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9oY2kuaD0zNj1zdGF0aWMgaW5saW5lIGludCBydHdfaGNpX3R4X3dyaXRlKHN0cnVjdCBydHdfZGV2ICpydHdkZXYsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L2hjaS5oOjM3Olx0XHRcdFx0ICAgc3RydWN0IHJ0d190eF9wa3RfaW5mbyAqcGt0X2luZm8sXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L2hjaS5oLTM4LVx0XHRcdFx0ICAgc3RydWN0IHNrX2J1ZmYgKnNrYilcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L21hYzgwMjExLmM9MTg9c3RhdGljIHZvaWQgcnR3X29wc190eChzdHJ1Y3QgaWVlZTgwMjExX2h3ICpodyxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L21hYzgwMjExLmMtMjgtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L21hYzgwMjExLmM6Mjk6XHRydHdfdHgocnR3ZGV2LCBjb250cm9sLCBza2IpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9tYWM4MDIxMS5jLTMwLX1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L21hYzgwMjExLmM9MzI9c3RhdGljIHZvaWQgcnR3X29wc193YWtlX3R4X3F1ZXVlKHN0cnVjdCBpZWVlODAyMTFfaHcgKmh3LFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvbWFjODAyMTEuYy0zNS1cdHN0cnVjdCBydHdfZGV2ICpydHdkZXYgPSBody1cdTAwM2Vwcml2O1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9tYWM4MDIxMS5jOjM2Olx0c3RydWN0IHJ0d190eHEgKnJ0d3R4cSA9IChzdHJ1Y3QgcnR3X3R4cSAqKXR4cS1cdTAwM2VkcnZfcHJpdjtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvbWFjODAyMTEuYy0zNy1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L21hYzgwMjExLmMtNDctXHRpZiAodHhxLVx1MDAzZWFjID09IElFRUU4MDIxMV9BQ19WTylcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvbWFjODAyMTEuYzo0ODpcdFx0X19ydHdfdHhfd29yayhydHdkZXYpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9tYWM4MDIxMS5jLTQ5LVx0ZWxzZVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvbWFjODAyMTEuYz0xNDY9c3RhdGljIGludCBydHdfb3BzX2FkZF9pbnRlcmZhY2Uoc3RydWN0IGllZWU4MDIxMV9odyAqaHcsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9tYWM4MDIxMS5jLTE2NC1cdG1lbXNldChcdTAwMjZydHd2aWYtXHUwMDNlYmZlZSwgMCwgc2l6ZW9mKHN0cnVjdCBydHdfYmZlZSkpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9tYWM4MDIxMS5jOjE2NTpcdHJ0d190eHFfaW5pdChydHdkZXYsIHZpZi1cdTAwM2V0eHEpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9tYWM4MDIxMS5jLTE2Ni1cdElOSVRfTElTVF9IRUFEKFx1MDAyNnJ0d3ZpZi1cdTAwM2Vyc3ZkX3BhZ2VfbGlzdCk7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9tYWM4MDIxMS5jPTIyOD1zdGF0aWMgdm9pZCBydHdfb3BzX3JlbW92ZV9pbnRlcmZhY2Uoc3RydWN0IGllZWU4MDIxMV9odyAqaHcsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9tYWM4MDIxMS5jLTI0MS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvbWFjODAyMTEuYzoyNDI6XHRydHdfdHhxX2NsZWFudXAocnR3ZGV2LCB2aWYtXHUwMDNldHhxKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvbWFjODAyMTEuYy0yNDMtXHRydHdfcmVtb3ZlX3JzdmRfcGFnZShydHdkZXYsIHJ0d3ZpZik7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9tYWM4MDIxMS5jPTYzNj1zdGF0aWMgaW50IHJ0d19vcHNfYW1wZHVfYWN0aW9uKHN0cnVjdCBpZWVlODAyMTFfaHcgKmh3LFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvbWFjODAyMTEuYy02NDItXHRzdHJ1Y3QgaWVlZTgwMjExX3R4cSAqdHhxID0gc3RhLVx1MDAzZXR4cVt0aWRdO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9tYWM4MDIxMS5jOjY0MzpcdHN0cnVjdCBydHdfdHhxICpydHd0eHEgPSAoc3RydWN0IHJ0d190eHEgKil0eHEtXHUwMDNlZHJ2X3ByaXY7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L21hYzgwMjExLmMtNjQ0LVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvbWFpbi5jPTM0NT1pbnQgcnR3X3N0YV9hZGQoc3RydWN0IHJ0d19kZXYgKnJ0d2Rldiwgc3RydWN0IGllZWU4MDIxMV9zdGEgKnN0YSxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L21haW4uYy0zNjUtXHRmb3IgKGkgPSAwOyBpIFx1MDAzYyBBUlJBWV9TSVpFKHN0YS1cdTAwM2V0eHEpOyBpJiM0MzsmIzQzOylcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvbWFpbi5jOjM2NjpcdFx0cnR3X3R4cV9pbml0KHJ0d2Rldiwgc3RhLVx1MDAzZXR4cVtpXSk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L21haW4uYy0zNjctXHRJTklUX1dPUksoXHUwMDI2c2ktXHUwMDNlcmNfd29yaywgcnR3X3N0YV9yY193b3JrKTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L21haW4uYz0zODA9dm9pZCBydHdfc3RhX3JlbW92ZShzdHJ1Y3QgcnR3X2RldiAqcnR3ZGV2LCBzdHJ1Y3QgaWVlZTgwMjExX3N0YSAqc3RhLFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvbWFpbi5jLTM5NC1cdGZvciAoaSA9IDA7IGkgXHUwMDNjIEFSUkFZX1NJWkUoc3RhLVx1MDAzZXR4cSk7IGkmIzQzOyYjNDM7KVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9tYWluLmM6Mzk1Olx0XHRydHdfdHhxX2NsZWFudXAocnR3ZGV2LCBzdGEtXHUwMDNldHhxW2ldKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvbWFpbi5jLTM5Ni1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L21haW4uYz02MjI9c3RhdGljIHZvaWQgcnR3X3Jlc2V0X3ZpZl9pdGVyKHZvaWQgKmRhdGEsIHU4ICptYWMsIHN0cnVjdCBpZWVlODAyMTFfdmlmICp2aWYpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9tYWluLmMtNjI4LVx0cnR3X3ZpZl9hc3NvY19jaGFuZ2VkKHJ0d3ZpZiwgTlVMTCk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L21haW4uYzo2Mjk6XHRydHdfdHhxX2NsZWFudXAocnR3ZGV2LCB2aWYtXHUwMDNldHhxKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvbWFpbi5jLTYzMC1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L21haW4uYz02NzQ9c3RhdGljIHZvaWQgcnR3X2Z3X3JlY292ZXJ5X3dvcmsoc3RydWN0IHdvcmtfc3RydWN0ICp3b3JrKVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvbWFpbi5jLTY4NS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvbWFpbi5jOjY4NjpzdHJ1Y3QgcnR3X3R4cV9iYV9pdGVyX2RhdGEge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9tYWluLmMtNjg3LX07XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L21haW4uYy02ODgtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L21haW4uYzo2ODk6c3RhdGljIHZvaWQgcnR3X3R4cV9iYV9pdGVyKHZvaWQgKmRhdGEsIHN0cnVjdCBpZWVlODAyMTFfc3RhICpzdGEpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L21haW4uYy02OTAte1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvbWFpbi5jLTcwMC1cdFx0XHRzdHJ1Y3QgaWVlZTgwMjExX3R4cSAqdHhxO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9tYWluLmM6NzAxOlx0XHRcdHN0cnVjdCBydHdfdHhxICpydHd0eHE7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L21haW4uYy03MDItXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L21haW4uYy03MDMtXHRcdFx0dHhxID0gc3RhLVx1MDAzZXR4cVt0aWRdO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9tYWluLmM6NzA0Olx0XHRcdHJ0d3R4cSA9IChzdHJ1Y3QgcnR3X3R4cSAqKXR4cS1cdTAwM2VkcnZfcHJpdjtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvbWFpbi5jLTcwNS1cdFx0XHRzZXRfYml0KFJUV19UWFFfQkxPQ0tfQkEsIFx1MDAyNnJ0d3R4cS1cdTAwM2VmbGFncyk7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9tYWluLmMtNzExLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9tYWluLmM6NzEyOnN0YXRpYyB2b2lkIHJ0d190eHFfYmFfd29yayhzdHJ1Y3Qgd29ya19zdHJ1Y3QgKndvcmspXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L21haW4uYy03MTMte1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9tYWluLmMtNzE0LVx0c3RydWN0IHJ0d19kZXYgKnJ0d2RldiA9IGNvbnRhaW5lcl9vZih3b3JrLCBzdHJ1Y3QgcnR3X2RldiwgYmFfd29yayk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L21haW4uYzo3MTU6XHRzdHJ1Y3QgcnR3X3R4cV9iYV9pdGVyX2RhdGEgZGF0YTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvbWFpbi5jLTcxNi1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvbWFpbi5jOjcxNzpcdHJ0d19pdGVyYXRlX3N0YXNfYXRvbWljKHJ0d2RldiwgcnR3X3R4cV9iYV9pdGVyLCBcdTAwMjZkYXRhKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvbWFpbi5jLTcxOC19XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9tYWluLmM9MjEzOD1pbnQgcnR3X2NvcmVfaW5pdChzdHJ1Y3QgcnR3X2RldiAqcnR3ZGV2KVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvbWFpbi5jLTIxNDctXHR0aW1lcl9zZXR1cChcdTAwMjZydHdkZXYtXHUwMDNldHhfcmVwb3J0LnB1cmdlX3RpbWVyLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9tYWluLmM6MjE0ODpcdFx0ICAgIHJ0d190eF9yZXBvcnRfcHVyZ2VfdGltZXIsIDApO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9tYWluLmM6MjE0OTpcdHJ0d2Rldi1cdTAwM2V0eF93cSA9IGFsbG9jX3dvcmtxdWV1ZShcJiMzNDtydHdfdHhfd3FcJiMzNDssIFdRX1VOQk9VTkQgfCBXUV9ISUdIUFJJLCAwKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvbWFpbi5jLTIxNTAtXHRpZiAoIXJ0d2Rldi1cdTAwM2V0eF93cSkge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9tYWluLmM6MjE1MTpcdFx0cnR3X3dhcm4ocnR3ZGV2LCBcJiMzNDthbGxvY193b3JrcXVldWUgcnR3X3R4X3dxIGZhaWxlZFxcblwmIzM0Oyk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L21haW4uYy0yMTUyLVx0XHRyZXR1cm4gLUVOT01FTTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L21haW4uYy0yMTY0LVx0SU5JVF9ERUxBWUVEX1dPUksoXHUwMDI2Y29leC1cdTAwM2V3bF9jY2tsb2NrX3dvcmssIHJ0d19jb2V4X3dsX2Nja2xvY2tfd29yayk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L21haW4uYzoyMTY1Olx0SU5JVF9XT1JLKFx1MDAyNnJ0d2Rldi1cdTAwM2V0eF93b3JrLCBydHdfdHhfd29yayk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L21haW4uYy0yMTY2LVx0SU5JVF9XT1JLKFx1MDAyNnJ0d2Rldi1cdTAwM2VjMmhfd29yaywgcnR3X2MyaF93b3JrKTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L21haW4uYy0yMTY5LVx0SU5JVF9XT1JLKFx1MDAyNnJ0d2Rldi1cdTAwM2V1cGRhdGVfYmVhY29uX3dvcmssIHJ0d19md191cGRhdGVfYmVhY29uX3dvcmspO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9tYWluLmM6MjE3MDpcdElOSVRfV09SSyhcdTAwMjZydHdkZXYtXHUwMDNlYmFfd29yaywgcnR3X3R4cV9iYV93b3JrKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvbWFpbi5jLTIxNzEtXHRza2JfcXVldWVfaGVhZF9pbml0KFx1MDAyNnJ0d2Rldi1cdTAwM2VjMmhfcXVldWUpO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvbWFpbi5jPTIyNTU9aW50IHJ0d19yZWdpc3Rlcl9odyhzdHJ1Y3QgcnR3X2RldiAqcnR3ZGV2LCBzdHJ1Y3QgaWVlZTgwMjExX2h3ICpodylcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L21haW4uYy0yMjY3LVx0aHctXHUwMDNlcXVldWVzID0gSUVFRTgwMjExX05VTV9BQ1M7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L21haW4uYzoyMjY4Olx0aHctXHUwMDNldHhxX2RhdGFfc2l6ZSA9IHNpemVvZihzdHJ1Y3QgcnR3X3R4cSk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L21haW4uYy0yMjY5LVx0aHctXHUwMDNlc3RhX2RhdGFfc2l6ZSA9IHNpemVvZihzdHJ1Y3QgcnR3X3N0YV9pbmZvKTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L21haW4uaD0xOTE9ZW51bSBydHdfY2hpcF90eXBlIHtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L21haW4uaC0yMDEtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L21haW4uaDoyMDI6ZW51bSBydHdfdHhfcXVldWVfdHlwZSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L21haW4uaC0yMDMtXHQvKiB0aGUgb3JkZXIgb2YgQUMgcXVldWVzIG1hdHRlcnMgKi9cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L21haW4uaD0zNDQ9ZW51bSBydHdfcmVndWxhdG9yeV9kb21haW5zIHtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L21haW4uaC0zNjEtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L21haW4uaDozNjI6ZW51bSBydHdfdHhxX2ZsYWdzIHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvbWFpbi5oLTM2My1cdFJUV19UWFFfQU1QRFUsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9tYWluLmg9NTIwPXN0cnVjdCBydHdfNWdfdHhwd3JfaWR4IHtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L21haW4uaC01MzItXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L21haW4uaDo1MzM6c3RydWN0IHJ0d190eHB3cl9pZHgge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9tYWluLmgtNTM0LVx0c3RydWN0IHJ0d18yZ190eHB3cl9pZHggcHdyX2lkeF8yZztcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L21haW4uaD01OTk9c3RydWN0IHJ0d192aWZfcG9ydCB7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9tYWluLmgtNjA2LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9tYWluLmg6NjA3OnN0cnVjdCBydHdfdHhfcGt0X2luZm8ge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9tYWluLmgtNjA4LVx0dTMyIHR4X3BrdF9zaXplO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvbWFpbi5oPTczNz1zdHJ1Y3QgcnR3X3NlY19kZXNjIHtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L21haW4uaC03NDUtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L21haW4uaDo3NDY6c3RydWN0IHJ0d190eF9yZXBvcnQge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9tYWluLmgtNzQ3LVx0LyogcHJvdGVjdCB0aGUgdHggcmVwb3J0IHF1ZXVlICovXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9tYWluLmg9NzU0PXN0cnVjdCBydHdfcmFfcmVwb3J0IHtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L21haW4uaC03NTktXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L21haW4uaDo3NjA6c3RydWN0IHJ0d190eHEge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9tYWluLmgtNzYxLVx0c3RydWN0IGxpc3RfaGVhZCBsaXN0O1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvbWFpbi5oPTg2Mj1zdHJ1Y3QgcnR3X2NoaXBfb3BzIHtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L21haW4uaC05MTItXHR2b2lkICgqZmlsbF90eGRlc2NfY2hlY2tzdW0pKHN0cnVjdCBydHdfZGV2ICpydHdkZXYsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L21haW4uaDo5MTM6XHRcdFx0XHQgICAgIHN0cnVjdCBydHdfdHhfcGt0X2luZm8gKnBrdF9pbmZvLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9tYWluLmgtOTE0LVx0XHRcdFx0ICAgICB1OCAqdHhkZXNjKTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L21haW4uaD0xNzkyPXN0cnVjdCBydHdfZWZ1c2Uge1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvbWFpbi5oLTE4NDEtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L21haW4uaDoxODQyOlx0c3RydWN0IHJ0d190eHB3cl9pZHggdHhwd3JfaWR4X3RhYmxlWzRdO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9tYWluLmgtMTg0My19O1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvbWFpbi5oPTIwNjA9c3RydWN0IHJ0d19kZXYge1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvbWFpbi5oLTIxMDItXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L21haW4uaDoyMTAzOlx0c3RydWN0IHJ0d190eF9yZXBvcnQgdHhfcmVwb3J0O1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9tYWluLmgtMjEwNC1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L21haW4uaD0yMTQ2PXN0YXRpYyBpbmxpbmUgYm9vbCBydHdfaXNfYXNzb2Moc3RydWN0IHJ0d19kZXYgKnJ0d2Rldilcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L21haW4uaC0yMTUwLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9tYWluLmg6MjE1MTpzdGF0aWMgaW5saW5lIHN0cnVjdCBpZWVlODAyMTFfdHhxICpydHd0eHFfdG9fdHhxKHN0cnVjdCBydHdfdHhxICpydHd0eHEpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L21haW4uaC0yMTUyLXtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L21haW4uaD0yMjQ3PXZvaWQgcnR3X3ZpZl9wb3J0X2NvbmZpZyhzdHJ1Y3QgcnR3X2RldiAqcnR3ZGV2LCBzdHJ1Y3QgcnR3X3ZpZiAqcnR3dmlmLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9tYWluLmgtMjI0OC1cdFx0XHQgdTMyIGNvbmZpZyk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L21haW4uaDoyMjQ5OnZvaWQgcnR3X3R4X3JlcG9ydF9wdXJnZV90aW1lcihzdHJ1Y3QgdGltZXJfbGlzdCAqdCk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L21haW4uaC0yMjUwLXZvaWQgcnR3X3VwZGF0ZV9zdGFfaW5mbyhzdHJ1Y3QgcnR3X2RldiAqcnR3ZGV2LCBzdHJ1Y3QgcnR3X3N0YV9pbmZvICpzaSxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3BjaS5jPTM1PXN0YXRpYyB1OCBydHdfcGNpX2dldF90eF9xc2VsKHN0cnVjdCBza19idWZmICpza2IsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3BjaS5jOjM2Olx0XHRcdCAgICAgIGVudW0gcnR3X3R4X3F1ZXVlX3R5cGUgcXVldWUpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3BjaS5jLTM3LXtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3BjaS5jPTUzOD1zdGF0aWMgdm9pZCBydHdfcGNpX2RtYV9yZWxlYXNlKHN0cnVjdCBydHdfZGV2ICpydHdkZXYsIHN0cnVjdCBydHdfcGNpICpydHdwY2kpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9wY2kuYy01NDAtXHRzdHJ1Y3QgcnR3X3BjaV90eF9yaW5nICp0eF9yaW5nO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9wY2kuYzo1NDE6XHRlbnVtIHJ0d190eF9xdWV1ZV90eXBlIHF1ZXVlO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9wY2kuYy01NDItXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9wY2kuYz02MDM9c3RhdGljIHZvaWQgcnR3X3BjaV9kZWVwX3BzX2VudGVyKHN0cnVjdCBydHdfZGV2ICpydHdkZXYpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9wY2kuYy02MDYtXHRzdHJ1Y3QgcnR3X3BjaV90eF9yaW5nICp0eF9yaW5nO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9wY2kuYzo2MDc6XHRlbnVtIHJ0d190eF9xdWV1ZV90eXBlIHF1ZXVlO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9wY2kuYy02MDgtXHRib29sIHR4X2VtcHR5ID0gdHJ1ZTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3BjaS5jPTc1ND1zdGF0aWMgdm9pZCBydHdfcGNpX2ZsdXNoX3F1ZXVlcyhzdHJ1Y3QgcnR3X2RldiAqcnR3ZGV2LCB1MzIgcXVldWVzLCBib29sIGRyb3ApXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9wY2kuYy03NjYtXHRcdFx0aWYgKHF1ZXVlcyBcdTAwMjYgQklUKGkpKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9wY2kuYzo3Njc6XHRcdFx0XHRwY2lfcXVldWVzIHw9IEJJVChydHdfdHhfYWNfdG9faHdxKGkpKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcGNpLmMtNzY4LVx0fVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcGNpLmM9NzczPXN0YXRpYyB2b2lkIHJ0d19wY2lfdHhfa2lja19vZmZfcXVldWUoc3RydWN0IHJ0d19kZXYgKnJ0d2RldixcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcGNpLmM6Nzc0Olx0XHRcdFx0ICAgICAgZW51bSBydHdfdHhfcXVldWVfdHlwZSBxdWV1ZSlcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcGNpLmMtNzc1LXtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3BjaS5jPTc5MD1zdGF0aWMgdm9pZCBydHdfcGNpX3R4X2tpY2tfb2ZmKHN0cnVjdCBydHdfZGV2ICpydHdkZXYpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9wY2kuYy03OTItXHRzdHJ1Y3QgcnR3X3BjaSAqcnR3cGNpID0gKHN0cnVjdCBydHdfcGNpICopcnR3ZGV2LVx1MDAzZXByaXY7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3BjaS5jOjc5MzpcdGVudW0gcnR3X3R4X3F1ZXVlX3R5cGUgcXVldWU7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3BjaS5jLTc5NC1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3BjaS5jPTgwMD1zdGF0aWMgaW50IHJ0d19wY2lfdHhfd3JpdGVfZGF0YShzdHJ1Y3QgcnR3X2RldiAqcnR3ZGV2LFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9wY2kuYzo4MDE6XHRcdFx0XHQgc3RydWN0IHJ0d190eF9wa3RfaW5mbyAqcGt0X2luZm8sXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3BjaS5jLTgwMi1cdFx0XHRcdCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9wY2kuYzo4MDM6XHRcdFx0XHQgZW51bSBydHdfdHhfcXVldWVfdHlwZSBxdWV1ZSlcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcGNpLmMtODA0LXtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3BjaS5jLTgyOC1cdHBrdF9pbmZvLVx1MDAzZXFzZWwgPSBydHdfcGNpX2dldF90eF9xc2VsKHNrYiwgcXVldWUpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9wY2kuYzo4Mjk6XHRydHdfdHhfZmlsbF90eF9kZXNjKHJ0d2RldiwgcGt0X2luZm8sIHNrYik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3BjaS5jLTgzMC1cdGRtYSA9IGRtYV9tYXBfc2luZ2xlKFx1MDAyNnJ0d3BjaS1cdTAwM2VwZGV2LVx1MDAzZWRldiwgc2tiLVx1MDAzZWRhdGEsIHNrYi1cdTAwM2VsZW4sXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9wY2kuYz04NzA9c3RhdGljIGludCBydHdfcGNpX3dyaXRlX2RhdGFfcnN2ZF9wYWdlKHN0cnVjdCBydHdfZGV2ICpydHdkZXYsIHU4ICpidWYsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9wY2kuYy04NzMtXHRzdHJ1Y3Qgc2tfYnVmZiAqc2tiO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9wY2kuYzo4NzQ6XHRzdHJ1Y3QgcnR3X3R4X3BrdF9pbmZvIHBrdF9pbmZvID0gezB9O1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9wY2kuYy04NzUtXHR1OCByZWdfYmNuX3dvcms7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9wY2kuYy04NzctXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3BjaS5jOjg3ODpcdHNrYiA9IHJ0d190eF93cml0ZV9kYXRhX3JzdmRfcGFnZV9nZXQocnR3ZGV2LCBcdTAwMjZwa3RfaW5mbywgYnVmLCBzaXplKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcGNpLmMtODc5LVx0aWYgKCFza2IpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9wY2kuYz04OTY9c3RhdGljIGludCBydHdfcGNpX3dyaXRlX2RhdGFfaDJjKHN0cnVjdCBydHdfZGV2ICpydHdkZXYsIHU4ICpidWYsIHUzMiBzaXplKVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcGNpLmMtODk4LVx0c3RydWN0IHNrX2J1ZmYgKnNrYjtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcGNpLmM6ODk5Olx0c3RydWN0IHJ0d190eF9wa3RfaW5mbyBwa3RfaW5mbyA9IHswfTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcGNpLmMtOTAwLVx0aW50IHJldDtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcGNpLmMtOTAxLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9wY2kuYzo5MDI6XHRza2IgPSBydHdfdHhfd3JpdGVfZGF0YV9oMmNfZ2V0KHJ0d2RldiwgXHUwMDI2cGt0X2luZm8sIGJ1Ziwgc2l6ZSk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3BjaS5jLTkwMy1cdGlmICghc2tiKVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcGNpLmM9OTE3PXN0YXRpYyBpbnQgcnR3X3BjaV90eF93cml0ZShzdHJ1Y3QgcnR3X2RldiAqcnR3ZGV2LFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9wY2kuYzo5MTg6XHRcdFx0ICAgIHN0cnVjdCBydHdfdHhfcGt0X2luZm8gKnBrdF9pbmZvLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9wY2kuYy05MTktXHRcdFx0ICAgIHN0cnVjdCBza19idWZmICpza2IpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3BjaS5jLTkyMC17XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3BjaS5jOjkyMTpcdGVudW0gcnR3X3R4X3F1ZXVlX3R5cGUgcXVldWUgPSBydHdfdHhfcXVldWVfbWFwcGluZyhza2IpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9wY2kuYy05MjItXHRzdHJ1Y3QgcnR3X3BjaSAqcnR3cGNpID0gKHN0cnVjdCBydHdfcGNpICopcnR3ZGV2LVx1MDAzZXByaXY7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9wY2kuYz05NDE9c3RhdGljIHZvaWQgcnR3X3BjaV90eF9pc3Ioc3RydWN0IHJ0d19kZXYgKnJ0d2Rldiwgc3RydWN0IHJ0d19wY2kgKnJ0d3BjaSxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3BjaS5jLTk5OC1cdFx0aWYgKGluZm8tXHUwMDNlZmxhZ3MgXHUwMDI2IElFRUU4MDIxMV9UWF9DVExfUkVRX1RYX1NUQVRVUykge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9wY2kuYzo5OTk6XHRcdFx0cnR3X3R4X3JlcG9ydF9lbnF1ZXVlKHJ0d2Rldiwgc2tiLCB0eF9kYXRhLVx1MDAzZXNuKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcGNpLmMtMTAwMC1cdFx0XHRjb250aW51ZTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3BoeS5jPTE3NjA9dm9pZCBydHdfcGFyc2VfdGJsX3R4cHdyX2xtdChzdHJ1Y3QgcnR3X2RldiAqcnR3ZGV2LFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcGh5LmMtMTc2Mi17XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3BoeS5jOjE3NjM6XHRjb25zdCBzdHJ1Y3QgcnR3X3R4cHdyX2xtdF9jZmdfcGFpciAqcCA9IHRibC1cdTAwM2VkYXRhO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9waHkuYzoxNzY0Olx0Y29uc3Qgc3RydWN0IHJ0d190eHB3cl9sbXRfY2ZnX3BhaXIgKmVuZCA9IHAgJiM0MzsgdGJsLVx1MDAzZXNpemU7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3BoeS5jLTE3NjUtXHR1MzIgcmVnZF9jZmdfZmxhZyA9IDA7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9waHkuYz0yMjM5PXZvaWQgcnR3X2dldF90eF9wb3dlcl9wYXJhbXMoc3RydWN0IHJ0d19kZXYgKnJ0d2RldiwgdTggcGF0aCwgdTggcmF0ZSwgdTggYncsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9waHkuYy0yMjQzLVx0c3RydWN0IHJ0d19kbV9pbmZvICpkbV9pbmZvID0gXHUwMDI2cnR3ZGV2LVx1MDAzZWRtX2luZm87XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3BoeS5jOjIyNDQ6XHRzdHJ1Y3QgcnR3X3R4cHdyX2lkeCAqcHdyX2lkeDtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcGh5LmMtMjI0NS1cdHU4IGdyb3VwLCBiYW5kO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcGh5Lmg9NzA9dm9pZCBydHdfcGh5X3R4X3BhdGhfZGl2ZXJzaXR5KHN0cnVjdCBydHdfZGV2ICpydHdkZXYpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9waHkuaC03MS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcGh5Lmg6NzI6c3RydWN0IHJ0d190eHB3cl9sbXRfY2ZnX3BhaXIge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9waHkuaC03My1cdHU4IHJlZ2Q7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4NzAzYl90YWJsZXMuYz0xNz1SVFdfREVDTF9UQUJMRV9CQl9QRyhydHc4NzAzYl9iYl9wZyk7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4NzAzYl90YWJsZXMuYy0yMy0gKi9cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODcwM2JfdGFibGVzLmM6MjQ6c3RhdGljIGNvbnN0IHN0cnVjdCBydHdfdHhwd3JfbG10X2NmZ19wYWlyIHJ0dzg3MDNiX3R4cHdyX2xtdFtdID0ge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4NzAzYl90YWJsZXMuYy0yNS1cdHswLCAwLCAwLCAwLCAxLCAzMH0sXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4NzIzZF90YWJsZS5jPTkzOT1SVFdfREVDTF9UQUJMRV9SRl9SQURJTyhydHc4NzIzZF9yZl9hLCBBKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODcyM2RfdGFibGUuYy05NDAtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg3MjNkX3RhYmxlLmM6OTQxOnN0YXRpYyBjb25zdCBzdHJ1Y3QgcnR3X3R4cHdyX2xtdF9jZmdfcGFpciBydHc4NzIzZF90eHB3cl9sbXRbXSA9IHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODcyM2RfdGFibGUuYy05NDItXHR7MCwgMCwgMCwgMCwgMSwgMzAsIH0sXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4NzIzeC5jPTEwMT1zdGF0aWMgdm9pZCBfX3J0dzg3MjN4X2RlYnVnX3R4cHdyX2xpbWl0KHN0cnVjdCBydHdfZGV2ICpydHdkZXYsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg3MjN4LmM6MTAyOlx0XHRcdFx0XHQgc3RydWN0IHJ0d190eHB3cl9pZHggKnRhYmxlLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4NzIzeC5jLTEwMy1cdFx0XHRcdFx0IGludCB0eF9wYXRoX2NvdW50KVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODcyM3guYz02ODI9dm9pZCBfX3J0dzg3MjN4X2ZpbGxfdHhkZXNjX2NoZWNrc3VtKHN0cnVjdCBydHdfZGV2ICpydHdkZXYsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg3MjN4LmM6NjgzOlx0XHRcdFx0ICAgICBzdHJ1Y3QgcnR3X3R4X3BrdF9pbmZvICpwa3RfaW5mbyxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODcyM3guYy02ODQtXHRcdFx0XHQgICAgIHU4ICp0eGRlc2MpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4NzIzeC5jLTY4OC1cdF9fbGUxNiAqZGF0YSA9IChfX2xlMTYgKikodHhkZXNjKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODcyM3guYzo2ODk6XHRzdHJ1Y3QgcnR3X3R4X2Rlc2MgKnR4X2Rlc2MgPSAoc3RydWN0IHJ0d190eF9kZXNjICopdHhkZXNjO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4NzIzeC5jLTY5MC1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg3MjN4Lmg9NjY9c3RydWN0IHJ0dzg3MjN4X2VmdXNlIHtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg3MjN4LmgtNzItXHQvKiBwb3dlciBpbmRleCBmb3IgZm91ciBSRiBwYXRocyAqL1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4NzIzeC5oOjczOlx0c3RydWN0IHJ0d190eHB3cl9pZHggdHhwd3JfaWR4X3RhYmxlWzRdO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4NzIzeC5oLTc0LVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODcyM3guaD0xMjI9c3RydWN0IHJ0dzg3MjN4X2NvbW1vbiB7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4NzIzeC5oLTE1NS1cdHZvaWQgKCpmaWxsX3R4ZGVzY19jaGVja3N1bSkoc3RydWN0IHJ0d19kZXYgKnJ0d2RldixcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODcyM3guaDoxNTY6XHRcdFx0XHQgICAgIHN0cnVjdCBydHdfdHhfcGt0X2luZm8gKnBrdF9pbmZvLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4NzIzeC5oLTE1Ny1cdFx0XHRcdCAgICAgdTggKnR4ZGVzYyk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg3MjN4LmgtMTU4LVx0dm9pZCAoKmRlYnVnX3R4cHdyX2xpbWl0KShzdHJ1Y3QgcnR3X2RldiAqcnR3ZGV2LFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4NzIzeC5oOjE1OTpcdFx0XHRcdCAgc3RydWN0IHJ0d190eHB3cl9pZHggKnRhYmxlLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4NzIzeC5oLTE2MC1cdFx0XHRcdCAgaW50IHR4X3BhdGhfY291bnQpO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODcyM3guaD0zNjU9dm9pZCBydHc4NzIzeF9kZWJ1Z190eHB3cl9saW1pdChzdHJ1Y3QgcnR3X2RldiAqcnR3ZGV2LFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4NzIzeC5oOjM2NjpcdFx0XHRcdHN0cnVjdCBydHdfdHhwd3JfaWR4ICp0YWJsZSxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODcyM3guaC0zNjctXHRcdFx0XHRpbnQgdHhfcGF0aF9jb3VudClcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg3MjN4Lmg9NDUxPXZvaWQgcnR3ODcyM3hfZmlsbF90eGRlc2NfY2hlY2tzdW0oc3RydWN0IHJ0d19kZXYgKnJ0d2RldixcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODcyM3guaDo0NTI6XHRcdFx0XHQgICBzdHJ1Y3QgcnR3X3R4X3BrdF9pbmZvICpwa3RfaW5mbyxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODcyM3guaC00NTMtXHRcdFx0XHQgICB1OCAqdHhkZXNjKVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgxMmEuYz04ODc9c3RhdGljIHZvaWQgcnR3ODgxMmFfZmlsbF90eGRlc2NfY2hlY2tzdW0oc3RydWN0IHJ0d19kZXYgKnJ0d2RldixcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgxMmEuYzo4ODg6XHRcdFx0XHRcdCAgc3RydWN0IHJ0d190eF9wa3RfaW5mbyAqcGt0X2luZm8sXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MTJhLmMtODg5LVx0XHRcdFx0XHQgIHU4ICp0eGRlc2MpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODEyYV90YWJsZS5jPTE2ODg9UlRXX0RFQ0xfVEFCTEVfUkZfUkFESU8ocnR3ODgxMmFfcmZfYiwgQik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MTJhX3RhYmxlLmMtMTY4OS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgxMmFfdGFibGUuYzoxNjkwOnN0YXRpYyBjb25zdCBzdHJ1Y3QgcnR3X3R4cHdyX2xtdF9jZmdfcGFpciBydHc4ODEyYV90eHB3cl9sbXRbXSA9IHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgxMmFfdGFibGUuYy0xNjkxLVx0eyAwLCAwLCAwLCAwLCAxLCAzNiwgfSxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MTRhLmM9MjA0Mj1zdGF0aWMgdm9pZCBydHc4ODE0YV9maWxsX3R4ZGVzY19jaGVja3N1bShzdHJ1Y3QgcnR3X2RldiAqcnR3ZGV2LFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODE0YS5jOjIwNDM6XHRcdFx0XHRcdCAgc3RydWN0IHJ0d190eF9wa3RfaW5mbyAqcGt0X2luZm8sXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MTRhLmMtMjA0NC1cdFx0XHRcdFx0ICB1OCAqdHhkZXNjKVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgxNGEuaD0yMz1zdHJ1Y3QgcnR3ODgxNGFfZWZ1c2Uge1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgxNGEuaC0yOS1cdC8qIHBvd2VyIGluZGV4IGZvciBmb3VyIFJGIHBhdGhzICovXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MTRhLmg6MzA6XHRzdHJ1Y3QgcnR3X3R4cHdyX2lkeCB0eHB3cl9pZHhfdGFibGVbNF07XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MTRhLmgtMzEtXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODE0YV90YWJsZS5jPTE0NTgzPVJUV19ERUNMX1RBQkxFX1JGX1JBRElPKHJ0dzg4MTRhX3JmX2QsIEQpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODE0YV90YWJsZS5jLTE0NTg0LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODE0YV90YWJsZS5jOjE0NTg1OnN0YXRpYyBjb25zdCBzdHJ1Y3QgcnR3X3R4cHdyX2xtdF9jZmdfcGFpciBydHc4ODE0YV90eHB3cl9sbXRbXSA9IHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgxNGFfdGFibGUuYy0xNDU4Ni1cdHsgMCwgMCwgMCwgMCwgMSwgMzYsIH0sXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODE0YV90YWJsZS5jPTE1NTYwPVJUV19ERUNMX1RBQkxFX1RYUFdSX0xNVChydHc4ODE0YV90eHB3cl9sbXQpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODE0YV90YWJsZS5jLTE1NTYxLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODE0YV90YWJsZS5jOjE1NTYyOnN0YXRpYyBjb25zdCBzdHJ1Y3QgcnR3X3R4cHdyX2xtdF9jZmdfcGFpciBydHc4ODE0YV90eHB3cl9sbXRfdHlwZTBbXSA9IHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgxNGFfdGFibGUuYy0xNTU2My1cdHsgMCwgMCwgMCwgMCwgMSwgMzIsIH0sXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODE0YV90YWJsZS5jPTE2NTM3PVJUV19ERUNMX1RBQkxFX1RYUFdSX0xNVChydHc4ODE0YV90eHB3cl9sbXRfdHlwZTApO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODE0YV90YWJsZS5jLTE2NTM4LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODE0YV90YWJsZS5jOjE2NTM5OnN0YXRpYyBjb25zdCBzdHJ1Y3QgcnR3X3R4cHdyX2xtdF9jZmdfcGFpciBydHc4ODE0YV90eHB3cl9sbXRfdHlwZTFbXSA9IHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgxNGFfdGFibGUuYy0xNjU0MC1cdFx0eyAwLCAwLCAwLCAwLCAxLCAzNCwgfSxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MTRhX3RhYmxlLmM9MTc1MTQ9UlRXX0RFQ0xfVEFCTEVfVFhQV1JfTE1UKHJ0dzg4MTRhX3R4cHdyX2xtdF90eXBlMSk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MTRhX3RhYmxlLmMtMTc1MTUtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MTRhX3RhYmxlLmM6MTc1MTY6c3RhdGljIGNvbnN0IHN0cnVjdCBydHdfdHhwd3JfbG10X2NmZ19wYWlyIHJ0dzg4MTRhX3R4cHdyX2xtdF90eXBlMltdID0ge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODE0YV90YWJsZS5jLTE3NTE3LVx0eyAwLCAwLCAwLCAwLCAxLCA0MiwgfSxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MTRhX3RhYmxlLmM9MTg0OTE9UlRXX0RFQ0xfVEFCTEVfVFhQV1JfTE1UKHJ0dzg4MTRhX3R4cHdyX2xtdF90eXBlMik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MTRhX3RhYmxlLmMtMTg0OTItXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MTRhX3RhYmxlLmM6MTg0OTM6c3RhdGljIGNvbnN0IHN0cnVjdCBydHdfdHhwd3JfbG10X2NmZ19wYWlyIHJ0dzg4MTRhX3R4cHdyX2xtdF90eXBlM1tdID0ge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODE0YV90YWJsZS5jLTE4NDk0LVx0eyAwLCAwLCAwLCAwLCAxLCA0NiwgfSxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MTRhX3RhYmxlLmM9MTk0Njg9UlRXX0RFQ0xfVEFCTEVfVFhQV1JfTE1UKHJ0dzg4MTRhX3R4cHdyX2xtdF90eXBlMyk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MTRhX3RhYmxlLmMtMTk0NjktXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MTRhX3RhYmxlLmM6MTk0NzA6c3RhdGljIGNvbnN0IHN0cnVjdCBydHdfdHhwd3JfbG10X2NmZ19wYWlyIHJ0dzg4MTRhX3R4cHdyX2xtdF90eXBlNVtdID0ge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODE0YV90YWJsZS5jLTE5NDcxLVx0eyAwLCAwLCAwLCAwLCAxLCA0NiwgfSxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MTRhX3RhYmxlLmM9MjA0NDU9UlRXX0RFQ0xfVEFCTEVfVFhQV1JfTE1UKHJ0dzg4MTRhX3R4cHdyX2xtdF90eXBlNSk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MTRhX3RhYmxlLmMtMjA0NDYtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MTRhX3RhYmxlLmM6MjA0NDc6c3RhdGljIGNvbnN0IHN0cnVjdCBydHdfdHhwd3JfbG10X2NmZ19wYWlyIHJ0dzg4MTRhX3R4cHdyX2xtdF90eXBlN1tdID0ge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODE0YV90YWJsZS5jLTIwNDQ4LVx0eyAwLCAwLCAwLCAwLCAxLCA0NCwgfSxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MTRhX3RhYmxlLmM9MjE0MjI9UlRXX0RFQ0xfVEFCTEVfVFhQV1JfTE1UKHJ0dzg4MTRhX3R4cHdyX2xtdF90eXBlNyk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MTRhX3RhYmxlLmMtMjE0MjMtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MTRhX3RhYmxlLmM6MjE0MjQ6c3RhdGljIGNvbnN0IHN0cnVjdCBydHdfdHhwd3JfbG10X2NmZ19wYWlyIHJ0dzg4MTRhX3R4cHdyX2xtdF90eXBlOFtdID0ge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODE0YV90YWJsZS5jLTIxNDI1LVx0eyAwLCAwLCAwLCAwLCAxLCA0NiwgfSxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjFhLmM9NzM0PXN0YXRpYyB2b2lkIHJ0dzg4MjFhX2ZpbGxfdHhkZXNjX2NoZWNrc3VtKHN0cnVjdCBydHdfZGV2ICpydHdkZXYsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjFhLmM6NzM1Olx0XHRcdFx0XHQgIHN0cnVjdCBydHdfdHhfcGt0X2luZm8gKnBrdF9pbmZvLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIxYS5jLTczNi1cdFx0XHRcdFx0ICB1OCAqdHhkZXNjKVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMWFfdGFibGUuYz0xMzM1PVJUV19ERUNMX1RBQkxFX1JGX1JBRElPKHJ0dzg4MjFhX3JmX2EsIEEpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIxYV90YWJsZS5jLTEzMzYtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjFhX3RhYmxlLmM6MTMzNzpzdGF0aWMgY29uc3Qgc3RydWN0IHJ0d190eHB3cl9sbXRfY2ZnX3BhaXIgcnR3ODgyMWFfdHhwd3JfbG10W10gPSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjFhX3RhYmxlLmMtMTMzOC1cdHsgMCwgMCwgMCwgMCwgMSwgMzIsIH0sXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIxYy5jPTEyMzE9c3RhdGljIHZvaWQgcnR3ODgyMWNfZmlsbF90eGRlc2NfY2hlY2tzdW0oc3RydWN0IHJ0d19kZXYgKnJ0d2RldixcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMWMuYzoxMjMyOlx0XHRcdFx0XHQgIHN0cnVjdCBydHdfdHhfcGt0X2luZm8gKnBrdF9pbmZvLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIxYy5jLTEyMzMtXHRcdFx0XHRcdCAgdTggKnR4ZGVzYylcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjFjLmg9NzQ9c3RydWN0IHJ0dzg4MjFjX2VmdXNlIHtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjFjLmgtNzgtXHQvKiBwb3dlciBpbmRleCBmb3IgZm91ciBSRiBwYXRocyAqL1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIxYy5oOjc5Olx0c3RydWN0IHJ0d190eHB3cl9pZHggdHhwd3JfaWR4X3RhYmxlWzRdO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIxYy5oLTgwLVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMWNfdGFibGUuYz02MDExPVJUV19ERUNMX1RBQkxFX1JGX1JBRElPKHJ0dzg4MjFjX3JmX2EsIEEpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIxY190YWJsZS5jLTYwMTItXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjFjX3RhYmxlLmM6NjAxMzpzdGF0aWMgY29uc3Qgc3RydWN0IHJ0d190eHB3cl9sbXRfY2ZnX3BhaXIgcnR3ODgyMWNfdHhwd3JfbG10X3R5cGUwW10gPSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjFjX3RhYmxlLmMtNjAxNC1cdHsgMCwgMCwgMCwgMCwgMSwgMzAsIH0sXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYi5jPTE1OTQ9c3RhdGljIHZvaWQgcnR3ODgyMmJfZmlsbF90eGRlc2NfY2hlY2tzdW0oc3RydWN0IHJ0d19kZXYgKnJ0d2RldixcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmIuYzoxNTk1Olx0XHRcdFx0XHQgIHN0cnVjdCBydHdfdHhfcGt0X2luZm8gKnBrdF9pbmZvLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYi5jLTE1OTYtXHRcdFx0XHRcdCAgdTggKnR4ZGVzYylcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJiLmg9NzQ9c3RydWN0IHJ0dzg4MjJiX2VmdXNlIHtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJiLmgtODAtXHQvKiBwb3dlciBpbmRleCBmb3IgZm91ciBSRiBwYXRocyAqL1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYi5oOjgxOlx0c3RydWN0IHJ0d190eHB3cl9pZHggdHhwd3JfaWR4X3RhYmxlWzRdO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYi5oLTgyLVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmJfdGFibGUuYz0yMDQzND1SVFdfREVDTF9UQUJMRV9SRl9SQURJTyhydHc4ODIyYl9yZl9iLCBCKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmJfdGFibGUuYy0yMDQzNS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmJfdGFibGUuYzoyMDQzNjpzdGF0aWMgY29uc3Qgc3RydWN0IHJ0d190eHB3cl9sbXRfY2ZnX3BhaXIgcnR3ODgyMmJfdHhwd3JfbG10X3R5cGUwW10gPSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJiX3RhYmxlLmMtMjA0MzctXHR7IDAsIDAsIDAsIDAsIDEsIDMyLCB9LFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmJfdGFibGUuYz0yMTAyND1SVFdfREVDTF9UQUJMRV9UWFBXUl9MTVQocnR3ODgyMmJfdHhwd3JfbG10X3R5cGUwKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmJfdGFibGUuYy0yMTAyNS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmJfdGFibGUuYzoyMTAyNjpzdGF0aWMgY29uc3Qgc3RydWN0IHJ0d190eHB3cl9sbXRfY2ZnX3BhaXIgcnR3ODgyMmJfdHhwd3JfbG10X3R5cGUyW10gPSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJiX3RhYmxlLmMtMjEwMjctXHR7IDAsIDAsIDAsIDAsIDEsIDMyLCB9LFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmJfdGFibGUuYz0yMTYxND1SVFdfREVDTF9UQUJMRV9UWFBXUl9MTVQocnR3ODgyMmJfdHhwd3JfbG10X3R5cGUyKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmJfdGFibGUuYy0yMTYxNS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmJfdGFibGUuYzoyMTYxNjpzdGF0aWMgY29uc3Qgc3RydWN0IHJ0d190eHB3cl9sbXRfY2ZnX3BhaXIgcnR3ODgyMmJfdHhwd3JfbG10X3R5cGU1W10gPSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJiX3RhYmxlLmMtMjE2MTctXHR7IDAsIDAsIDAsIDAsIDEsIDMyLCB9LFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYz00NTYzPXN0YXRpYyB2b2lkIHJ0dzg4MjJjX2ZpbGxfdHhkZXNjX2NoZWNrc3VtKHN0cnVjdCBydHdfZGV2ICpydHdkZXYsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmM6NDU2NDpcdFx0XHRcdFx0ICBzdHJ1Y3QgcnR3X3R4X3BrdF9pbmZvICpwa3RfaW5mbyxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYy00NTY1LVx0XHRcdFx0XHQgIHU4ICp0eGRlc2MpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5oPTYxPXN0cnVjdCBydHc4ODIyY19lZnVzZSB7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5oLTY3LVx0LyogcG93ZXIgaW5kZXggZm9yIGZvdXIgUkYgcGF0aHMgKi9cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuaDo2ODpcdHN0cnVjdCBydHdfdHhwd3JfaWR4IHR4cHdyX2lkeF90YWJsZVs0XTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuaC02OS1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjX3RhYmxlLmM9Mzk4MjI9UlRXX0RFQ0xfVEFCTEVfUkZfUkFESU8ocnR3ODgyMmNfcmZfYiwgQik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjX3RhYmxlLmMtMzk4MjMtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjX3RhYmxlLmM6Mzk4MjQ6c3RhdGljIGNvbnN0IHN0cnVjdCBydHdfdHhwd3JfbG10X2NmZ19wYWlyIHJ0dzg4MjJjX3R4cHdyX2xtdF90eXBlMFtdID0ge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyY190YWJsZS5jLTM5ODI1LVx0eyAwLCAwLCAwLCAwLCAxLCA3MiwgfSxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjX3RhYmxlLmM9NDIxNjc9UlRXX0RFQ0xfVEFCTEVfVFhQV1JfTE1UKHJ0dzg4MjJjX3R4cHdyX2xtdF90eXBlMCk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjX3RhYmxlLmMtNDIxNjgtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjX3RhYmxlLmM6NDIxNjk6c3RhdGljIGNvbnN0IHN0cnVjdCBydHdfdHhwd3JfbG10X2NmZ19wYWlyIHJ0dzg4MjJjX3R4cHdyX2xtdF90eXBlNVtdID0ge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyY190YWJsZS5jLTQyMTcwLVx0eyAwLCAwLCAwLCAwLCAxLCA3MiwgfSxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4eHhhLmg9Mjg9c3RydWN0IHJ0dzg4eHhhX2VmdXNlIHtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4eHhhLmgtMzQtXHQvKiBwb3dlciBpbmRleCBmb3IgZm91ciBSRiBwYXRocyAqL1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4OHh4YS5oOjM1Olx0c3RydWN0IHJ0d190eHB3cl9pZHggdHhwd3JfaWR4X3RhYmxlWzRdO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4OHh4YS5oLTM2LVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvc2Rpby5jPTQ3MD1zdGF0aWMgdTMyIHJ0d19zZGlvX2dldF90eF9hZGRyKHN0cnVjdCBydHdfZGV2ICpydHdkZXYsIHNpemVfdCBzaXplLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9zZGlvLmM6NDcxOlx0XHRcdFx0ZW51bSBydHdfdHhfcXVldWVfdHlwZSBxdWV1ZSlcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvc2Rpby5jLTQ3Mi17XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9zZGlvLmM9NjM1PXN0YXRpYyBpbnQgcnR3X3NkaW9fd3JpdGVfcG9ydChzdHJ1Y3QgcnR3X2RldiAqcnR3ZGV2LCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9zZGlvLmM6NjM2Olx0XHRcdCAgICAgICBlbnVtIHJ0d190eF9xdWV1ZV90eXBlIHF1ZXVlKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9zZGlvLmMtNjM3LXtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3NkaW8uYz04NDc9c3RhdGljIHZvaWQgcnR3X3NkaW9fdHhfc2tiX3ByZXBhcmUoc3RydWN0IHJ0d19kZXYgKnJ0d2RldixcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvc2Rpby5jOjg0ODpcdFx0XHRcdCAgICBzdHJ1Y3QgcnR3X3R4X3BrdF9pbmZvICpwa3RfaW5mbyxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvc2Rpby5jLTg0OS1cdFx0XHRcdCAgICBzdHJ1Y3Qgc2tfYnVmZiAqc2tiLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9zZGlvLmM6ODUwOlx0XHRcdFx0ICAgIGVudW0gcnR3X3R4X3F1ZXVlX3R5cGUgcXVldWUpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3NkaW8uYy04NTEte1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvc2Rpby5jLTg4MC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvc2Rpby5jOjg4MTpcdHJ0d190eF9maWxsX3R4X2Rlc2MocnR3ZGV2LCBwa3RfaW5mbywgc2tiKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvc2Rpby5jOjg4MjpcdHJ0d190eF9maWxsX3R4ZGVzY19jaGVja3N1bShydHdkZXYsIHBrdF9pbmZvLCBwa3RfZGVzYyk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3NkaW8uYy04ODMtfVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvc2Rpby5jPTg4NT1zdGF0aWMgaW50IHJ0d19zZGlvX3dyaXRlX2RhdGEoc3RydWN0IHJ0d19kZXYgKnJ0d2RldixcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvc2Rpby5jOjg4NjpcdFx0XHQgICAgICAgc3RydWN0IHJ0d190eF9wa3RfaW5mbyAqcGt0X2luZm8sXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3NkaW8uYy04ODctXHRcdFx0ICAgICAgIHN0cnVjdCBza19idWZmICpza2IsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3NkaW8uYzo4ODg6XHRcdFx0ICAgICAgIGVudW0gcnR3X3R4X3F1ZXVlX3R5cGUgcXVldWUpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3NkaW8uYy04ODkte1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvc2Rpby5jPTkwMD1zdGF0aWMgaW50IHJ0d19zZGlvX3dyaXRlX2RhdGFfcnN2ZF9wYWdlKHN0cnVjdCBydHdfZGV2ICpydHdkZXYsIHU4ICpidWYsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9zZGlvLmMtOTAyLXtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvc2Rpby5jOjkwMzpcdHN0cnVjdCBydHdfdHhfcGt0X2luZm8gcGt0X2luZm8gPSB7fTtcblxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjIzLzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8xNCAwNjo0MjwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAzMDU0NAoJCQkJCQkJb3V0cHV0OiA0MwoJCQkJCQkJdGhvdWdodHM6IDMwOQoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipBbmFseXppbmcgdGhlIFRhcmdldCBmb3IgRnV6emluZyoqCgpPa2F5LCBzbyBJJiMzOTttIGxvb2tpbmcgYXQgdGhpcyBjb2RlIGFuZCB0cnlpbmcgdG8gZmlndXJlIG91dCBpZiBpdCYjMzk7cyBhIGdvb2QgY2FuZGlkYXRlIGZvciBmdXp6aW5nLiBgcnR3X3R4YCBpcyBkZWZpbml0ZWx5IHJlYWNoYWJsZSBiZWNhdXNlIGl0JiMzOTtzIHRoZSBtYWM4MDIxMSBUWCBjYWxsYmFjaywgY2FsbGVkIHRocm91Z2ggYHJ0d19vcHNfdHhgLiBJIGNhbiBzZWUgdGhhdCBjbGVhcmx5LiBCdXQgbXkgaW50ZXJlc3QgaXMgcGlxdWVkIGJlY2F1c2UgdGhlIHBhdGNoIG1vZGlmaWVzIGBydHdfdXNiX3R4X3F1ZXVlX21hcHBpbmdfdG9fcXNlbGAgaW4gYHVzYi5jYC4gTm93LCB0aGF0JiMzOTtzIGNhbGxlZCBieSBgcnR3X3VzYl90eF93cml0ZWAsIHdoaWNoIGlzIHRoZSBgdHhfd3JpdGVgIGNhbGxiYWNrICpzcGVjaWZpY2FsbHkqIGZvciBVU0IgdHJhbnNtaXNzaW9ucy4gU28sIHRoYXQmIzM5O3MgZGVmaW5pdGVseSBhIHZpYWJsZSBwYXRoIGZvciBwYWNrZXRzIHNlbnQgb3ZlciBVU0IuCgpUaGUgbW9yZSBJIHRoaW5rIGFib3V0IGl0LCB5ZWFoLCB0aGlzIGlzIHdvcnRoIGludmVzdGlnYXRpbmcgZnVydGhlci4gQ2hhbmdlcyB0byBxdWV1ZSBzZWxlY3Rpb24gZm9yIGJyb2FkY2FzdCBhbmQgbXVsdGljYXN0IHBhY2tldHMgYXJlIGZ1bmN0aW9uYWxseSBzaWduaWZpY2FudC4gVGhlIGtleSBwYXJ0IGlzIHRoYXQgdGhlIGxvZ2ljIGludm9sdmVzIGNoZWNraW5nIGBpbmZvLSZndDtmbGFncyAmYW1wOyBJRUVFODAyMTFfVFhfQ1RMX1NFTkRfQUZURVJfRFRJTWAuIG1hYzgwMjExIHNldHMgdGhpcyBmbGFnIGZvciBtdWx0aWNhc3QgYW5kIGJyb2FkY2FzdCBmcmFtZXMsIG1lYW5pbmcgdGhlIGNoYW5nZXMgd2lsbCBkZWZpbml0ZWx5IGFmZmVjdCBob3cgdGhlc2Uga2luZHMgb2YgZnJhbWVzIGFyZSBoYW5kbGVkLiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgaW4gdGhlIGRyaXZlciYjMzk7cyBUWCBwYXRoLgoKTm93LCBsZXQmIzM5O3MgY29uc2lkZXIgdGhlIGZ1enppbmcgc3RyYXRlZ3kuIElzIGBydHdfdXNiX3R4X3dyaXRlYCBhIGdvb2Qgc3ltYm9sIHRvIGZvY3VzIG9uPyBIbW0sIGl0JiMzOTtzIHN0YXRpYywgd2hpY2ggaXMgYSBjb25jZXJuIOKAkyBpdCBjb3VsZCBiZSBpbmxpbmVkLCBvciBtaWdodCBub3QgZXZlbiBoYXZlIGEgZGlzdGluY3Qgc3ltYm9sIGluIHRoZSBmaW5hbCBiaW5hcnkuIFNvLCBsZXQmIzM5O3MgcGl2b3QuIENoZWNraW5nIGBydHdfdXNiX3R4X3F1ZXVlX21hcHBpbmdfdG9fcXNlbGAsIHRoYXQmIzM5O3Mgc3RhdGljIHRvby4gT2theSwgbGV0JiMzOTtzIGJyb2FkZW4gdGhlIHNlYXJjaCBhIGJpdC4gQXJlIHRoZXJlIGFueSAqbm9uKi1zdGF0aWMgZnVuY3Rpb25zIGluIHRoaXMgYXJlYT8gTG9va3MgbGlrZSBgcnR3X3VzYl9vcHNgIGlzIHN0YXRpYywgc28gdGhhdCYjMzk7cyBub3QgdXNlZnVsLiBCdXQgYHJ0d191c2JfcHJvYmVgIGlzIG5vbi1zdGF0aWMgb3IgcG9zc2libHkgZXhwb3J0ZWQsIGl0JiMzOTtzIHdvcnRoIGEgbG9vay4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4yNC8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMTQgMDY6NDI8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7cnR3X3VzYl9wcm9iZSYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdXNiLmMmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC91c2IuYz0xMjI3PXN0YXRpYyB2b2lkIHJ0d191c2JfcGh5X2NmZyhzdHJ1Y3QgcnR3X2RldiAqcnR3ZGV2LFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdXNiLmMtMTI2NC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdXNiLmM6MTI2NTppbnQgcnR3X3VzYl9wcm9iZShzdHJ1Y3QgdXNiX2ludGVyZmFjZSAqaW50ZiwgY29uc3Qgc3RydWN0IHVzYl9kZXZpY2VfaWQgKmlkKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC91c2IuYy0xMjY2LXtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3VzYi5jLTEzNjAtfVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC91c2IuYzoxMzYxOkVYUE9SVF9TWU1CT0wocnR3X3VzYl9wcm9iZSk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3VzYi5jLTEzNjItXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MjUvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzE0IDA2OjQyPC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDMxNTU3CgkJCQkJCQlvdXRwdXQ6IDQxCgkJCQkJCQl0aG91Z2h0czogNDAKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPk9rYXksIGhlcmUmIzM5O3MgbXkgdGFrZSBvbiB0aG9zZSB0aG91Z2h0cywgZnJhbWVkIGFzIGFuIGV4cGVydCYjMzk7cyBpbnRlcm5hbCBtb25vbG9ndWU6CgoqKkludmVzdGlnYXRpbmcgdGhlIHJ0d191c2IgRHJpdmVyKioKCkFscmlnaHQsIHNvIGBydHdfdXNiX3Byb2JlYCBpcyBleHBvc2VkLCB0aGF0JiMzOTtzIG5vdCBuZXdzLCBidXQgdGhlIGNvbW1pdCYjMzk7cyBmb2N1c2VkIG9uIHRoZSB0cmFuc21pdCBwYXRoLiBJbnRlcmVzdGluZy4gTXkgaW5pdGlhbCBndXQgZmVlbGluZyBpcyB0byBjaGVjayBpZiBgcnR3X3R4YCBoYWQgYW55IGNoYW5nZXMgd2l0aCB0aGlzIHBhdGNoLiBUaGF0IGZ1bmN0aW9uIGxpdmVzIGluIGB0eC5jYCwgc28gSSBzaG91bGQgcHJvYmFibHkganVtcCBzdHJhaWdodCB0aGVyZSBhbmQgc2VlIHdoYXQmIzM5O3MgY2hhbmdlZCBpbiByZWxhdGlvbiB0byB0aGUgcmVwb3J0ZWQgaXNzdWUuIEl0IHdvdWxkIG1ha2Ugc2Vuc2UgdG8gbG9vayBhdCBob3cgdGhlc2UgZnVuY3Rpb25zIGFyZSBiZWluZyBjYWxsZWQsIGFuZCBpZiB0aGUgY2hhbmdlcyBpbiBgcnR3X3VzYl9wcm9iZWAgYXJlIGFmZmVjdGluZyB0aGUgbG9naWMgaW4gYHJ0d190eGAuIExldCYjMzk7cyBzZWUgaWYgdGhpcyBsaW5lcyB1cCB3aXRoIHRoZSBwcm9ibGVtIHJlcG9ydC4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4yNi8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMTQgMDY6NDI8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7cnR3X3R4JiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC90eC5jJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdHguYz0xMT1zdGF0aWNcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdHguYzoxMjp2b2lkIHJ0d190eF9zdGF0cyhzdHJ1Y3QgcnR3X2RldiAqcnR3ZGV2LCBzdHJ1Y3QgaWVlZTgwMjExX3ZpZiAqdmlmLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC90eC5jLTEzLVx0XHQgIHN0cnVjdCBza19idWZmICpza2IpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC90eC5jLTM0LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC90eC5jOjM1OnZvaWQgcnR3X3R4X2ZpbGxfdHhfZGVzYyhzdHJ1Y3QgcnR3X2RldiAqcnR3ZGV2LFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC90eC5jOjM2Olx0XHRcdCBzdHJ1Y3QgcnR3X3R4X3BrdF9pbmZvICpwa3RfaW5mbywgc3RydWN0IHNrX2J1ZmYgKnNrYilcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdHguYy0zNy17XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3R4LmM6Mzg6XHRzdHJ1Y3QgcnR3X3R4X2Rlc2MgKnR4X2Rlc2MgPSAoc3RydWN0IHJ0d190eF9kZXNjICopc2tiLVx1MDAzZWRhdGE7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3R4LmMtMzktXHRib29sIG1vcmVfZGF0YSA9IGZhbHNlO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdHguYy05My19XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3R4LmM6OTQ6RVhQT1JUX1NZTUJPTChydHdfdHhfZmlsbF90eF9kZXNjKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdHguYy05NS1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3R4LmM9MTI1PXN0YXRpYyB1OCBnZXRfaGlnaGVzdF92aHRfdHhfcmF0ZShzdHJ1Y3QgcnR3X2RldiAqcnR3ZGV2LFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdHguYy0xNjUtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3R4LmM6MTY2OnN0YXRpYyB2b2lkIHJ0d190eF9yZXBvcnRfZW5hYmxlKHN0cnVjdCBydHdfZGV2ICpydHdkZXYsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3R4LmM6MTY3Olx0XHRcdFx0IHN0cnVjdCBydHdfdHhfcGt0X2luZm8gKnBrdF9pbmZvKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC90eC5jLTE2OC17XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3R4LmM6MTY5Olx0c3RydWN0IHJ0d190eF9yZXBvcnQgKnR4X3JlcG9ydCA9IFx1MDAyNnJ0d2Rldi1cdTAwM2V0eF9yZXBvcnQ7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3R4LmMtMTcwLVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdHguYy0xNzgtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3R4LmM6MTc5OnZvaWQgcnR3X3R4X3JlcG9ydF9wdXJnZV90aW1lcihzdHJ1Y3QgdGltZXJfbGlzdCAqdClcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdHguYy0xODAte1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdHguYy0xODItXHRcdFx0XHRcdFx0ICAgIHR4X3JlcG9ydC5wdXJnZV90aW1lcik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3R4LmM6MTgzOlx0c3RydWN0IHJ0d190eF9yZXBvcnQgKnR4X3JlcG9ydCA9IFx1MDAyNnJ0d2Rldi1cdTAwM2V0eF9yZXBvcnQ7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3R4LmMtMTg0LVx0dW5zaWduZWQgbG9uZyBmbGFncztcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3R4LmMtMTk1LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC90eC5jOjE5Njp2b2lkIHJ0d190eF9yZXBvcnRfZW5xdWV1ZShzdHJ1Y3QgcnR3X2RldiAqcnR3ZGV2LCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCB1OCBzbilcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdHguYy0xOTcte1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC90eC5jOjE5ODpcdHN0cnVjdCBydHdfdHhfcmVwb3J0ICp0eF9yZXBvcnQgPSBcdTAwMjZydHdkZXYtXHUwMDNldHhfcmVwb3J0O1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC90eC5jLTE5OS1cdHVuc2lnbmVkIGxvbmcgdGltZW91dCA9IFJUV19UWF9QUk9CRV9USU1FT1VUO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdHguYy0yMTYtfVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC90eC5jOjIxNzpFWFBPUlRfU1lNQk9MKHJ0d190eF9yZXBvcnRfZW5xdWV1ZSk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3R4LmMtMjE4LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC90eC5jOjIxOTpzdGF0aWMgdm9pZCBydHdfdHhfcmVwb3J0X3R4X3N0YXR1cyhzdHJ1Y3QgcnR3X2RldiAqcnR3ZGV2LFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC90eC5jLTIyMC1cdFx0XHRcdCAgICBzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBib29sIGFja2VkKVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdHguYy0yMzMtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3R4LmM6MjM0OnZvaWQgcnR3X3R4X3JlcG9ydF9oYW5kbGUoc3RydWN0IHJ0d19kZXYgKnJ0d2Rldiwgc3RydWN0IHNrX2J1ZmYgKnNrYiwgaW50IHNyYylcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdHguYy0yMzUte1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC90eC5jOjIzNjpcdHN0cnVjdCBydHdfdHhfcmVwb3J0ICp0eF9yZXBvcnQgPSBcdTAwMjZydHdkZXYtXHUwMDNldHhfcmVwb3J0O1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC90eC5jLTIzNy1cdHN0cnVjdCBydHdfYzJoX2NtZCAqYzJoO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdHguYy0yNTctXHRcdFx0X19za2JfdW5saW5rKGN1ciwgXHUwMDI2dHhfcmVwb3J0LVx1MDAzZXF1ZXVlKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdHguYzoyNTg6XHRcdFx0cnR3X3R4X3JlcG9ydF90eF9zdGF0dXMocnR3ZGV2LCBjdXIsIHN0ID09IDApO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC90eC5jLTI1OS1cdFx0XHRicmVhaztcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3R4LmM9MjY1PXN0YXRpYyB1OCBydHdfZ2V0X21nbXRfcmF0ZShzdHJ1Y3QgcnR3X2RldiAqcnR3ZGV2LCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiLFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdHguYy0yNzctXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3R4LmM6Mjc4OnN0YXRpYyB2b2lkIHJ0d190eF9wa3RfaW5mb191cGRhdGVfcmF0ZShzdHJ1Y3QgcnR3X2RldiAqcnR3ZGV2LFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC90eC5jOjI3OTpcdFx0XHRcdFx0c3RydWN0IHJ0d190eF9wa3RfaW5mbyAqcGt0X2luZm8sXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3R4LmMtMjgwLVx0XHRcdFx0XHRzdHJ1Y3Qgc2tfYnVmZiAqc2tiLFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdHguYy0yOTYtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3R4LmM6Mjk3OnN0YXRpYyB2b2lkIHJ0d190eF9wa3RfaW5mb191cGRhdGVfc2VjKHN0cnVjdCBydHdfZGV2ICpydHdkZXYsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3R4LmM6Mjk4Olx0XHRcdFx0ICAgICAgIHN0cnVjdCBydHdfdHhfcGt0X2luZm8gKnBrdF9pbmZvLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC90eC5jLTI5OS1cdFx0XHRcdCAgICAgICBzdHJ1Y3Qgc2tfYnVmZiAqc2tiKVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdHguYy0zMjMtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3R4LmM6MzI0OnN0YXRpYyB2b2lkIHJ0d190eF9tZ210X3BrdF9pbmZvX3VwZGF0ZShzdHJ1Y3QgcnR3X2RldiAqcnR3ZGV2LFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC90eC5jOjMyNTpcdFx0XHRcdFx0c3RydWN0IHJ0d190eF9wa3RfaW5mbyAqcGt0X2luZm8sXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3R4LmMtMzI2LVx0XHRcdFx0XHRzdHJ1Y3QgaWVlZTgwMjExX3N0YSAqc3RhLFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdHguYy0zMjgte1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC90eC5jOjMyOTpcdHJ0d190eF9wa3RfaW5mb191cGRhdGVfcmF0ZShydHdkZXYsIHBrdF9pbmZvLCBza2IsIGZhbHNlKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdHguYy0zMzAtXHRwa3RfaW5mby1cdTAwM2VkaXNfcXNlbHNlcSA9IHRydWU7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC90eC5jLTMzNS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdHguYzozMzY6c3RhdGljIHZvaWQgcnR3X3R4X2RhdGFfcGt0X2luZm9fdXBkYXRlKHN0cnVjdCBydHdfZGV2ICpydHdkZXYsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3R4LmM6MzM3Olx0XHRcdFx0XHRzdHJ1Y3QgcnR3X3R4X3BrdF9pbmZvICpwa3RfaW5mbyxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdHguYy0zMzgtXHRcdFx0XHRcdHN0cnVjdCBpZWVlODAyMTFfc3RhICpzdGEsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC90eC5jLTQwNi1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdHguYzo0MDc6dm9pZCBydHdfdHhfcGt0X2luZm9fdXBkYXRlKHN0cnVjdCBydHdfZGV2ICpydHdkZXYsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3R4LmM6NDA4Olx0XHRcdCAgICBzdHJ1Y3QgcnR3X3R4X3BrdF9pbmZvICpwa3RfaW5mbyxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdHguYy00MDktXHRcdFx0ICAgIHN0cnVjdCBpZWVlODAyMTFfc3RhICpzdGEsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC90eC5jLTQyOS1cdGlmIChpZWVlODAyMTFfaXNfbWdtdChmYykgfHwgaWVlZTgwMjExX2lzX2FueV9udWxsZnVuYyhmYykpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3R4LmM6NDMwOlx0XHRydHdfdHhfbWdtdF9wa3RfaW5mb191cGRhdGUocnR3ZGV2LCBwa3RfaW5mbywgc3RhLCBza2IpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC90eC5jLTQzMS1cdGVsc2UgaWYgKGllZWU4MDIxMV9pc19kYXRhKGZjKSlcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdHguYzo0MzI6XHRcdHJ0d190eF9kYXRhX3BrdF9pbmZvX3VwZGF0ZShydHdkZXYsIHBrdF9pbmZvLCBzdGEsIHNrYik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3R4LmMtNDMzLVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdHguYy00MzctXHRpZiAoaW5mby1cdTAwM2VmbGFncyBcdTAwMjYgSUVFRTgwMjExX1RYX0NUTF9SRVFfVFhfU1RBVFVTKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC90eC5jOjQzODpcdFx0cnR3X3R4X3JlcG9ydF9lbmFibGUocnR3ZGV2LCBwa3RfaW5mbyk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3R4LmMtNDM5LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC90eC5jLTQ0MC1cdHBrdF9pbmZvLVx1MDAzZWJtYyA9IGJtYztcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdHguYzo0NDE6XHRydHdfdHhfcGt0X2luZm9fdXBkYXRlX3NlYyhydHdkZXYsIHBrdF9pbmZvLCBza2IpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC90eC5jLTQ0Mi1cdHBrdF9pbmZvLVx1MDAzZXR4X3BrdF9zaXplID0gc2tiLVx1MDAzZWxlbjtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3R4LmMtNDQ3LVx0LyogbWF5YmUgbWVyZ2Ugd2l0aCB0eCBzdGF0dXMgPyAqL1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC90eC5jOjQ0ODpcdHJ0d190eF9zdGF0cyhydHdkZXYsIHZpZiwgc2tiKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdHguYy00NDktfVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC90eC5jLTQ1MC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdHguYzo0NTE6dm9pZCBydHdfdHhfcnN2ZF9wYWdlX3BrdF9pbmZvX3VwZGF0ZShzdHJ1Y3QgcnR3X2RldiAqcnR3ZGV2LFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC90eC5jOjQ1MjpcdFx0XHRcdCAgICAgIHN0cnVjdCBydHdfdHhfcGt0X2luZm8gKnBrdF9pbmZvLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC90eC5jLTQ1My1cdFx0XHRcdCAgICAgIHN0cnVjdCBza19idWZmICpza2IsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC90eC5jLTQ2NS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdHguYzo0NjY6XHRydHdfdHhfcGt0X2luZm9fdXBkYXRlX3JhdGUocnR3ZGV2LCBwa3RfaW5mbywgc2tiLCB0cnVlKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdHguYy00NjctXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC90eC5jLTQ5Ni1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdHguYzo0OTc6XHRydHdfdHhfcGt0X2luZm9fdXBkYXRlX3NlYyhydHdkZXYsIHBrdF9pbmZvLCBza2IpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC90eC5jLTQ5OC1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3R4LmM9NTAyPXN0cnVjdCBza19idWZmICpcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdHguYzo1MDM6cnR3X3R4X3dyaXRlX2RhdGFfcnN2ZF9wYWdlX2dldChzdHJ1Y3QgcnR3X2RldiAqcnR3ZGV2LFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC90eC5jOjUwNDpcdFx0XHRcdHN0cnVjdCBydHdfdHhfcGt0X2luZm8gKnBrdF9pbmZvLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC90eC5jLTUwNS1cdFx0XHRcdHU4ICpidWYsIHUzMiBzaXplKVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdHguYy01MjEtXHRza2JfcHV0X2RhdGEoc2tiLCBidWYsIHNpemUpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC90eC5jOjUyMjpcdHJ0d190eF9yc3ZkX3BhZ2VfcGt0X2luZm9fdXBkYXRlKHJ0d2RldiwgcGt0X2luZm8sIHNrYiwgUlNWRF9CRUFDT04pO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC90eC5jLTUyMy1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3R4LmMtNTI1LX1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdHguYzo1MjY6RVhQT1JUX1NZTUJPTChydHdfdHhfd3JpdGVfZGF0YV9yc3ZkX3BhZ2VfZ2V0KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdHguYy01MjctXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3R4LmM9NTI4PXN0cnVjdCBza19idWZmICpcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdHguYzo1Mjk6cnR3X3R4X3dyaXRlX2RhdGFfaDJjX2dldChzdHJ1Y3QgcnR3X2RldiAqcnR3ZGV2LFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC90eC5jOjUzMDpcdFx0XHQgIHN0cnVjdCBydHdfdHhfcGt0X2luZm8gKnBrdF9pbmZvLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC90eC5jLTUzMS1cdFx0XHQgIHU4ICpidWYsIHUzMiBzaXplKVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdHguYy01NTEtfVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC90eC5jOjU1MjpFWFBPUlRfU1lNQk9MKHJ0d190eF93cml0ZV9kYXRhX2gyY19nZXQpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC90eC5jLTU1My1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdHguYzo1NTQ6dm9pZCBydHdfdHgoc3RydWN0IHJ0d19kZXYgKnJ0d2RldixcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdHguYy01NTUtXHQgICAgc3RydWN0IGllZWU4MDIxMV90eF9jb250cm9sICpjb250cm9sLFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdHguYy01NTcte1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC90eC5jOjU1ODpcdHN0cnVjdCBydHdfdHhfcGt0X2luZm8gcGt0X2luZm8gPSB7MH07XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3R4LmMtNTU5LVx0aW50IHJldDtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdHguYy01NjAtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3R4LmM6NTYxOlx0cnR3X3R4X3BrdF9pbmZvX3VwZGF0ZShydHdkZXYsIFx1MDAyNnBrdF9pbmZvLCBjb250cm9sLVx1MDAzZXN0YSwgc2tiKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdHguYy01NjItXHRyZXQgPSBydHdfaGNpX3R4X3dyaXRlKHJ0d2RldiwgXHUwMDI2cGt0X2luZm8sIHNrYik7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC90eC5jLTU3NS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdHguYzo1NzY6c3RhdGljIHZvaWQgcnR3X3R4cV9jaGVja19hZ2coc3RydWN0IHJ0d19kZXYgKnJ0d2RldixcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdHguYzo1Nzc6XHRcdFx0ICAgICAgc3RydWN0IHJ0d190eHEgKnJ0d3R4cSxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdHguYy01NzgtXHRcdFx0ICAgICAgc3RydWN0IHNrX2J1ZmYgKnNrYilcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3R4LmMtNjA3LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC90eC5jOjYwODpzdGF0aWMgaW50IHJ0d190eHFfcHVzaF9za2Ioc3RydWN0IHJ0d19kZXYgKnJ0d2RldixcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdHguYzo2MDk6XHRcdFx0ICAgIHN0cnVjdCBydHdfdHhxICpydHd0eHEsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3R4LmMtNjEwLVx0XHRcdCAgICBzdHJ1Y3Qgc2tfYnVmZiAqc2tiKVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdHguYy02MTItXHRzdHJ1Y3QgaWVlZTgwMjExX3R4cSAqdHhxID0gcnR3dHhxX3RvX3R4cShydHd0eHEpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC90eC5jOjYxMzpcdHN0cnVjdCBydHdfdHhfcGt0X2luZm8gcGt0X2luZm8gPSB7MH07XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3R4LmMtNjE0LVx0aW50IHJldDtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdHguYy02MTUtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3R4LmM6NjE2Olx0cnR3X3R4cV9jaGVja19hZ2cocnR3ZGV2LCBydHd0eHEsIHNrYik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3R4LmMtNjE3LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC90eC5jOjYxODpcdHJ0d190eF9wa3RfaW5mb191cGRhdGUocnR3ZGV2LCBcdTAwMjZwa3RfaW5mbywgdHhxLVx1MDAzZXN0YSwgc2tiKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdHguYy02MTktXHRyZXQgPSBydHdfaGNpX3R4X3dyaXRlKHJ0d2RldiwgXHUwMDI2cGt0X2luZm8sIHNrYik7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC90eC5jLTYyNy1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdHguYzo2Mjg6c3RhdGljIHZvaWQgcnR3X3R4cV9wdXNoKHN0cnVjdCBydHdfZGV2ICpydHdkZXYsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3R4LmM6NjI5Olx0XHRcdCBzdHJ1Y3QgcnR3X3R4cSAqcnR3dHhxLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC90eC5jLTYzMC1cdFx0XHQgdW5zaWduZWQgbG9uZyBmcmFtZXMpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC90eC5jLTY0My1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdHguYzo2NDQ6XHRcdHJldCA9IHJ0d190eHFfcHVzaF9za2IocnR3ZGV2LCBydHd0eHEsIHNrYik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3R4LmMtNjQ1LVx0XHRpZiAocmV0KSB7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC90eC5jLTY1My1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdHguYzo2NTQ6dm9pZCBfX3J0d190eF93b3JrKHN0cnVjdCBydHdfZGV2ICpydHdkZXYpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3R4LmMtNjU1LXtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdHguYzo2NTY6XHRzdHJ1Y3QgcnR3X3R4cSAqcnR3dHhxLCAqdG1wO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC90eC5jLTY1Ny1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3R4LmMtNjY0LVx0XHRpZWVlODAyMTFfdHhxX2dldF9kZXB0aCh0eHEsIFx1MDAyNmZyYW1lX2NudCwgTlVMTCk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3R4LmM6NjY1Olx0XHRydHdfdHhxX3B1c2gocnR3ZGV2LCBydHd0eHEsIGZyYW1lX2NudCk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3R4LmMtNjY2LVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdHguYy02NzQtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3R4LmM6Njc1OnZvaWQgcnR3X3R4X3dvcmsoc3RydWN0IHdvcmtfc3RydWN0ICp3KVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC90eC5jLTY3Ni17XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC90eC5jLTY3OC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdHguYzo2Nzk6XHRfX3J0d190eF93b3JrKHJ0d2Rldik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3R4LmMtNjgwLX1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdHguYy02ODEtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3R4LmM6NjgyOnZvaWQgcnR3X3R4cV9pbml0KHN0cnVjdCBydHdfZGV2ICpydHdkZXYsIHN0cnVjdCBpZWVlODAyMTFfdHhxICp0eHEpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3R4LmMtNjgzLXtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdHguYzo2ODQ6XHRzdHJ1Y3QgcnR3X3R4cSAqcnR3dHhxO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC90eC5jLTY4NS1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3R4LmMtNjg4LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC90eC5jOjY4OTpcdHJ0d3R4cSA9IChzdHJ1Y3QgcnR3X3R4cSAqKXR4cS1cdTAwM2VkcnZfcHJpdjtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdHguYy02OTAtXHRJTklUX0xJU1RfSEVBRChcdTAwMjZydHd0eHEtXHUwMDNlbGlzdCk7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC90eC5jLTY5Mi1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdHguYzo2OTM6dm9pZCBydHdfdHhxX2NsZWFudXAoc3RydWN0IHJ0d19kZXYgKnJ0d2Rldiwgc3RydWN0IGllZWU4MDIxMV90eHEgKnR4cSlcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdHguYy02OTQte1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC90eC5jOjY5NTpcdHN0cnVjdCBydHdfdHhxICpydHd0eHE7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3R4LmMtNjk2LVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdHguYy02OTktXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3R4LmM6NzAwOlx0cnR3dHhxID0gKHN0cnVjdCBydHdfdHhxICopdHhxLVx1MDAzZWRydl9wcml2O1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC90eC5jLTcwMS1cdHNwaW5fbG9ja19iaChcdTAwMjZydHdkZXYtXHUwMDNldHhxX2xvY2spO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdHguYy03MDYtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3R4LmM6NzA3OnN0YXRpYyBjb25zdCBlbnVtIHJ0d190eF9xdWV1ZV90eXBlIGFjX3RvX2h3cVtdID0ge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC90eC5jLTcwOC1cdFtJRUVFODAyMTFfQUNfVk9dID0gUlRXX1RYX1FVRVVFX1ZPLFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdHguYz03MTQ9c3RhdGljX2Fzc2VydChBUlJBWV9TSVpFKGFjX3RvX2h3cSkgPT0gSUVFRTgwMjExX05VTV9BQ1MpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC90eC5jLTcxNS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdHguYzo3MTY6ZW51bSBydHdfdHhfcXVldWVfdHlwZSBydHdfdHhfYWNfdG9faHdxKGVudW0gaWVlZTgwMjExX2FjX251bWJlcnMgYWMpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3R4LmMtNzE3LXtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3R4LmMtNzIyLX1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdHguYzo3MjM6RVhQT1JUX1NZTUJPTChydHdfdHhfYWNfdG9faHdxKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdHguYy03MjQtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3R4LmM6NzI1OmVudW0gcnR3X3R4X3F1ZXVlX3R5cGUgcnR3X3R4X3F1ZXVlX21hcHBpbmcoc3RydWN0IHNrX2J1ZmYgKnNrYilcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdHguYy03MjYte1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdHguYy03MjktXHR1OCBxX21hcHBpbmcgPSBza2JfZ2V0X3F1ZXVlX21hcHBpbmcoc2tiKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdHguYzo3MzA6XHRlbnVtIHJ0d190eF9xdWV1ZV90eXBlIHF1ZXVlO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC90eC5jLTczMS1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3R4LmMtNzQ1LX1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdHguYzo3NDY6RVhQT1JUX1NZTUJPTChydHdfdHhfcXVldWVfbWFwcGluZyk7XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MjcvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzE0IDA2OjQyPC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDM4NDExCgkJCQkJCQlvdXRwdXQ6IDQyCgkJCQkJCQl0aG91Z2h0czogODMKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqSW52ZXN0aWdhdGluZyB0aGUgYHJ0d190eGAgRnVuY3Rpb24qKgoKT2theSwgc28gSSYjMzk7bSBkaWdnaW5nIGludG8gdGhpcyBjb2RlLCBhbmQgaXQgbG9va3MgbGlrZSBgcnR3X3R4YCBpc24mIzM5O3QgYSBkaXJlY3RseSBleHBvcnRlZCBmdW5jdGlvbi4gSSBzZWUgaXQgYmVpbmcgY2FsbGVkIGZyb20gYHJ0d19vcHNfdHhgIHdpdGhpbiBgbWFjODAyMTEuY2AsIHdoaWNoIGlzIGEgY29tbW9uIHBhdHRlcm4sIGJ1dCB0aGUgZnVuY3Rpb24mIzM5O3MgZGVmaW5pdGlvbiBpdHNlbGYuLi4gaXQmIzM5O3Mgbm90IGV4cG9ydGVkLiBIbW0uICpXYWl0Kiwgbm93IEkmIzM5O20gcmVtZW1iZXJpbmcg4oCTIHRoZXJlJiMzOTtzIGEgYHJ0d190eGAgZnVuY3Rpb24gb3ZlciBpbiBgdHguY2AsIGlzbiYjMzk7dCB0aGVyZT8gQnV0IHllYWgsIEkgY29uZmlybSwgaXQmIzM5O3Mgbm90IGV4cGxpY2l0bHkgZXhwb3J0ZWQsIGFuZCB0aGUgZGVjbGFyYXRpb24gaXMgYWN0dWFsbHkgcHJlc2VudCBpbiBgdHguaGAuIEkmIzM5O2xsIG5lZWQgdG8gZG91YmxlIGNoZWNrIGhvdyBpdCYjMzk7cyB1c2VkIHRoZXJlLCBhbmQgd2hhdCB0aGUgc3Vycm91bmRpbmcgY29udGV4dCB0ZWxscyBtZSBhYm91dCBob3cgaXQgaW50ZXJhY3RzIHdpdGggdGhlIHJlc3Qgb2YgdGhlIGRyaXZlci4gTGV0IG1lIGdvIHRha2UgYSBsb29rIGF0IHRoZSBkZWNsYXJhdGlvbiBpbiBgdHguaGAgdG8gbWFrZSBzdXJlIEkgdW5kZXJzdGFuZCBpdHMgc2lnbmF0dXJlIGFuZCBhbnkgaW5saW5lIGhpbnRzLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjI4LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8xNCAwNjo0MjwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDt2b2lkIHJ0d190eCYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdHguaCYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3R4Lmg9ODU9ZW51bSBydHdfcnN2ZF9wYWNrZXRfdHlwZTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdHguaC04Ni1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdHguaDo4Nzp2b2lkIHJ0d190eChzdHJ1Y3QgcnR3X2RldiAqcnR3ZGV2LFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC90eC5oLTg4LVx0ICAgIHN0cnVjdCBpZWVlODAyMTFfdHhfY29udHJvbCAqY29udHJvbCxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdHguaC04OS1cdCAgICBzdHJ1Y3Qgc2tfYnVmZiAqc2tiKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdHguaDo5MDp2b2lkIHJ0d190eHFfaW5pdChzdHJ1Y3QgcnR3X2RldiAqcnR3ZGV2LCBzdHJ1Y3QgaWVlZTgwMjExX3R4cSAqdHhxKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdHguaDo5MTp2b2lkIHJ0d190eHFfY2xlYW51cChzdHJ1Y3QgcnR3X2RldiAqcnR3ZGV2LCBzdHJ1Y3QgaWVlZTgwMjExX3R4cSAqdHhxKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdHguaDo5Mjp2b2lkIHJ0d190eF93b3JrKHN0cnVjdCB3b3JrX3N0cnVjdCAqdyk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3R4LmgtOTMtdm9pZCBfX3J0d190eF93b3JrKHN0cnVjdCBydHdfZGV2ICpydHdkZXYpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC90eC5oOjk0OnZvaWQgcnR3X3R4X3BrdF9pbmZvX3VwZGF0ZShzdHJ1Y3QgcnR3X2RldiAqcnR3ZGV2LFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC90eC5oLTk1LVx0XHRcdCAgICBzdHJ1Y3QgcnR3X3R4X3BrdF9pbmZvICpwa3RfaW5mbyxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3R4LmgtOTctXHRcdFx0ICAgIHN0cnVjdCBza19idWZmICpza2IpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC90eC5oOjk4OnZvaWQgcnR3X3R4X2ZpbGxfdHhfZGVzYyhzdHJ1Y3QgcnR3X2RldiAqcnR3ZGV2LFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC90eC5oLTk5LVx0XHRcdCBzdHJ1Y3QgcnR3X3R4X3BrdF9pbmZvICpwa3RfaW5mbywgc3RydWN0IHNrX2J1ZmYgKnNrYik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3R4Lmg6MTAwOnZvaWQgcnR3X3R4X3JlcG9ydF9lbnF1ZXVlKHN0cnVjdCBydHdfZGV2ICpydHdkZXYsIHN0cnVjdCBza19idWZmICpza2IsIHU4IHNuKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdHguaDoxMDE6dm9pZCBydHdfdHhfcmVwb3J0X2hhbmRsZShzdHJ1Y3QgcnR3X2RldiAqcnR3ZGV2LCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBpbnQgc3JjKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdHguaDoxMDI6dm9pZCBydHdfdHhfcnN2ZF9wYWdlX3BrdF9pbmZvX3VwZGF0ZShzdHJ1Y3QgcnR3X2RldiAqcnR3ZGV2LFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC90eC5oLTEwMy1cdFx0XHRcdCAgICAgIHN0cnVjdCBydHdfdHhfcGt0X2luZm8gKnBrdF9pbmZvLFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdHguaD0xMTk9dm9pZCBmaWxsX3R4ZGVzY19jaGVja3N1bV9jb21tb24odTggKnR4ZGVzYywgc2l6ZV90IHdvcmRzKVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdHguaC0xMzMtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3R4Lmg6MTM0OnN0YXRpYyBpbmxpbmUgdm9pZCBydHdfdHhfZmlsbF90eGRlc2NfY2hlY2tzdW0oc3RydWN0IHJ0d19kZXYgKnJ0d2RldixcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdHguaC0xMzUtXHRcdFx0XHRcdCAgICAgICBzdHJ1Y3QgcnR3X3R4X3BrdF9pbmZvICpwa3RfaW5mbyxcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4yOS8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMTQgMDY6NDI8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMzk2NzEKCQkJCQkJCW91dHB1dDogNDUKCQkJCQkJCXRob3VnaHRzOiAxNjEKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqRm9jdXNpbmcgb24gS2V5IFN5bWJvbHMqKgoKT2theSwgc28gSSYjMzk7bSB0aGlua2luZywgYHJ0d190eGAgbG9va3MgbGlrZSBhIHN0cm9uZyBjYW5kaWRhdGUgZm9yIGEgZm9jdXMgc3ltYm9sLiBBbmQsIGV2ZW4gdGhvdWdoIGl0JiMzOTtzIHN0YXRpYywgYHJ0d191c2JfdHhfd3JpdGVgIGFsc28gc2VlbXMgcHJvbWlzaW5nLCBlc3BlY2lhbGx5IHdpdGggdGhlIHBvc3NpYmlsaXR5IG9mIFN5emthbGxlciByZXNvbHZpbmcgaXQuIFdhaXQsIHRoZSBhY3R1YWwgZnVuY3Rpb24gdGhhdCB3YXMgbW9kaWZpZWQgaW4gdGhlIGNvbnRleHQgb2YgdGhlIGlzc3VlIGlzIGBydHdfdXNiX3R4X3F1ZXVlX21hcHBpbmdfdG9fcXNlbGAuIFJpZ2h0LCByaWdodC4gTGV0JiMzOTtzIGdldCB0aGVzZSBzeW1ib2xzIGFkZGVkIGFzIGZvY3VzIHN5bWJvbHM6IGBydHdfdXNiX3R4X3dyaXRlYCBhbmQgYWxzbyBgcnR3X3R4YC4KCk5vdywganVzdCB0byBiZSBjb21wbGV0ZWx5IHN1cmUsIGxldCYjMzk7cyBkb3VibGUtY2hlY2sgaWYgYHJ0d191c2JfdHhfcXVldWVfbWFwcGluZ190b19xc2VsYCBpcyBzdGF0aWMuIFllcywgaXQgaXMuIFNpbmNlIGl0JiMzOTtzIHN0YXRpYywgYW5kIEkgdGhpbmsgaXQmIzM5O3MgbGlrZWx5IGlubGluZWQsIGRvZXMgYHJ0d191c2JfdHhfd3JpdGVgIGNhbGwgaXQ/IEFoLCB5ZXMsIGl0IGRvZXMuIFRoYXQgbWVhbnMgaXQgaXMgaW5saW5lZC4KCkxldCYjMzk7cyBzaGlmdCBvdXIgZm9jdXMgdG8gaW52ZXN0aWdhdGluZyBgcnR3X3VzYl90eF93cml0ZWAgbW9yZSBjbG9zZWx5LgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjMwLzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8xNCAwNjo0MjwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtydHdfdXNiX3R4X3dyaXRlJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC91c2IuYyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3VzYi5jPTU2MD1zdGF0aWMgdTggcnR3X3VzYl90eF9xdWV1ZV9tYXBwaW5nX3RvX3FzZWwoc3RydWN0IHNrX2J1ZmYgKnNrYilcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3VzYi5jLTU4MC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdXNiLmM6NTgxOnN0YXRpYyBpbnQgcnR3X3VzYl90eF93cml0ZShzdHJ1Y3QgcnR3X2RldiAqcnR3ZGV2LFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC91c2IuYy01ODItXHRcdFx0ICAgIHN0cnVjdCBydHdfdHhfcGt0X2luZm8gKnBrdF9pbmZvLFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdXNiLmM9OTUzPXN0YXRpYyBjb25zdCBzdHJ1Y3QgcnR3X2hjaV9vcHMgcnR3X3VzYl9vcHMgPSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3VzYi5jOjk1NDpcdC50eF93cml0ZSA9IHJ0d191c2JfdHhfd3JpdGUsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3VzYi5jLTk1NS1cdC50eF9raWNrX29mZiA9IHJ0d191c2JfdHhfa2lja19vZmYsXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MzEvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzE0IDA2OjQyPC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDQwNDA4CgkJCQkJCQlvdXRwdXQ6IDQzCgkJCQkJCQl0aG91Z2h0czogNDUyCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKkZ1enppbmcgRm9jdXM6IFJlZmluZW1lbnQgYW5kIFByaW9yaXRpemF0aW9uKioKCk9rYXksIHNvIEkmIzM5O20gdHJ5aW5nIHRvIGZpZ3VyZSBvdXQgdGhlIGJlc3QgZnVuY3Rpb25zIHRvIHRhcmdldCBmb3IgZnV6emluZywgc3BlY2lmaWNhbGx5IGluIHRoaXMgVVNCIFRYIHBhdGguIExldCYjMzk7cyBzZWUuLi4gSW5pdGlhbGx5LCBJIHdhcyBsb29raW5nIGF0IGBydHdfdXNiX3R4X3dyaXRlYCwgYW5kIHllcywgSSByZW1lbWJlciBpdCYjMzk7cyBzdGF0aWMuIENvdWxkIEkgdXNlIGBydHdfdHhgPyBZZXAsIGl0JiMzOTtzIG5vbi1zdGF0aWMsIHdoaWNoIGlzIGdvb2QuIFRoZW4gSSBsb29rZWQgYXQgYHJ0d191c2JfcHJvYmVgLCBidXQgdGhhdCYjMzk7cyBhIHByb2JlIGZ1bmN0aW9uIOKAkyBkZWZpbml0ZWx5IG5vdCBpbiB0aGUgY3JpdGljYWwgcGF0aCBJJiMzOTttIGludGVyZXN0ZWQgaW4gZnV6emluZy4KCk5vdywgdGhlIHByb21wdCBpcyB0ZWxsaW5nIG1lIHRvIGF2b2lkIGdlbmVyaWMgaG90LXBhdGggZnVuY3Rpb25zIHRvIGtlZXAgdGhlIHRlc3RzIGZyb20gc2tld2luZy4gU28sIGBydHdfdHhgLCBpcyBpdCBob3QtcGF0aD8gQWJzb2x1dGVseS4gSXQmIzM5O3MgY2FsbGVkIGZvciBldmVyeSBzaW5nbGUgcGFja2V0IHRyYW5zbWl0dGVkLiBJZiBJIGZvbGxvdyB0aGUgcHJvbXB0IGFuZCBkb24mIzM5O3QgbGlzdCBgcnR3X3R4YCwgd2hhdCBhcmUgbXkgb3RoZXIgb3B0aW9ucz8gSSBjb25zaWRlcmVkIGBydHdfdXNiX3R4X3dyaXRlYCBidXQsIGV2ZW4gdGhvdWdoIGl0JiMzOTtzIHN0YXRpYywgaXQgaXMgdGhhdCAqc3BlY2lmaWMqIGNhbGxiYWNrLCBzbyBtYXliZSBpdCYjMzk7cyB0aGUgcmlnaHQgY2hvaWNlIGFmdGVyIGFsbC4KClRoZSBwcm9tcHQsIGhvd2V2ZXIsIHJlYWxseSBlbXBoYXNpemVzIGF2b2lkaW5nIHRoZSBob3QtcGF0aC4gSWYgYHJ0d190eGAgaXMgaG90LXBhdGgsIGl0IHNvdW5kcyBsaWtlICpub25lKiBvZiB0aGVtIGFyZSBncmVhdC4gQnV0LCB0aGlzIGNoYW5nZSBpcyBhbGwgYWJvdXQgdGhlIFRYIHF1ZXVlIHNlbGVjdGlvbi4gTWF5YmUgSSBzaG91bGQgaG9sZCBvZmYsIGFuZCBwZXJoYXBzIGxpc3QgYHJ0d191c2JfdHhfd3JpdGVgIGFsb25lPwoKSSBuZWVkIHRvIHJlLWV2YWx1YXRlIHdoYXQmIzM5O3MgcmVhbGx5IGltcG9ydGFudC4gSXQgc2VlbXMgbXkgZm9jdXMgaXMgb24gdGhhdCBgcnR3X3VzYl90eF93cml0ZWAgZnVuY3Rpb24sIGV2ZW4gaWYgaXQgaXMgYSBob3QgcGF0aC4KCk5vdywgYSBxdWljayBjb25maWcgY2hlY2suIGBNQUM4MDIxMWAsIGBSVFc4OGAsIGBSVFc4OF84ODIyQlVgLi4uIEFoYSEgYFJUVzg4Xzg4MjJCVWAgc2VsZWN0cyBgUlRXODhfVVNCYC4gR29vZC4gTGV0JiMzOTtzIG1ha2Ugc3VyZSB0aGVyZSBhcmVuJiMzOTt0IGFueSBvdGhlciBVU0IgZHJpdmVycyB0byBiZSBtaW5kZnVsIG9mLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjMyLzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8xNCAwNjo0MjwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtzZWxlY3QgUlRXODhfVVNCJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZz04Mj1jb25maWcgUlRXODhfODgyMkJVXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnLTg1LVx0c2VsZWN0IFJUVzg4X0NPUkVcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZzo4NjpcdHNlbGVjdCBSVFc4OF9VU0JcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZy04Ny1cdHNlbGVjdCBSVFc4OF84ODIyQlxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZz0xMTU9Y29uZmlnIFJUVzg4Xzg4MjJDVVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZy0xMTgtXHRzZWxlY3QgUlRXODhfQ09SRVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnOjExOTpcdHNlbGVjdCBSVFc4OF9VU0JcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZy0xMjAtXHRzZWxlY3QgUlRXODhfODgyMkNcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWc9MTYyPWNvbmZpZyBSVFc4OF84NzIzRFVcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWctMTY1LVx0c2VsZWN0IFJUVzg4X0NPUkVcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZzoxNjY6XHRzZWxlY3QgUlRXODhfVVNCXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWctMTY3LVx0c2VsZWN0IFJUVzg4Xzg3MjNEXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnPTE5NT1jb25maWcgUlRXODhfODgyMUNVXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnLTE5OC1cdHNlbGVjdCBSVFc4OF9DT1JFXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWc6MTk5Olx0c2VsZWN0IFJUVzg4X1VTQlxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnLTIwMC1cdHNlbGVjdCBSVFc4OF84ODIxQ1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZz0yMDY9Y29uZmlnIFJUVzg4Xzg4MjFBVVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZy0yMDktXHRzZWxlY3QgUlRXODhfQ09SRVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnOjIxMDpcdHNlbGVjdCBSVFc4OF9VU0JcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZy0yMTEtXHRzZWxlY3QgUlRXODhfODgyMUFcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWc9MjE3PWNvbmZpZyBSVFc4OF84ODEyQVVcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWctMjIwLVx0c2VsZWN0IFJUVzg4X0NPUkVcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZzoyMjE6XHRzZWxlY3QgUlRXODhfVVNCXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWctMjIyLVx0c2VsZWN0IFJUVzg4Xzg4MTJBXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnPTIzOT1jb25maWcgUlRXODhfODgxNEFVXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnLTI0Mi1cdHNlbGVjdCBSVFc4OF9DT1JFXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWc6MjQzOlx0c2VsZWN0IFJUVzg4X1VTQlxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnLTI0NC1cdHNlbGVjdCBSVFc4OF84ODE0QVxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjMzLzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8xNCAwNjo0MjwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA0MjI1MwoJCQkJCQkJb3V0cHV0OiA0MwoJCQkJCQkJdGhvdWdodHM6IDEzNAoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipNeSBDdXJyZW50IFJlYXNvbmluZyBvbiBEcml2ZXIgQ29uZmlndXJhdGlvbioqCgpPa2F5LCBzbyBJJiMzOTttIGxvb2tpbmcgYXQgdGhlc2UgZHJpdmVyIG9wdGlvbnMsIGFuZCBpbml0aWFsbHksIEkgd2FzIHRoaW5raW5nIHdlIG5lZWRlZCB0byBsaXN0IGJvdGggYFJUVzg4Xzg4MjJCVWAgYW5kIGBSVFc4OF9VU0JgLiBCdXQgaG9sZCBvbi4uLiBhZnRlciBhIHF1aWNrIGNoZWNrLCBgUlRXODhfVVNCYCBpcyBhIHRyaXN0YXRlLCBzbyB0aGF0IHNpbXBsaWZpZXMgdGhpbmdzLiBJbiBmYWN0LCBsaXN0aW5nIGJvdGggaXMgYSBsaXR0bGUgcmVkdW5kYW50LiBXZSYjMzk7bGwgc3RpY2sgdG8gbGlzdGluZyBgUlRXODhfVVNCYCBhbmQgYFJUVzg4Xzg4MjJCVWAuCgpCdXQsIHdhaXQgYSBzZWNvbmQsIGxldCBtZSB0aGluayB0aGlzIHRocm91Z2ggY29tcGxldGVseS4gTG9va2luZyBhdCB0aGUgZGVwZW5kZW5jaWVzIGFnYWluLCBhbmQgeWVzLCBgUlRXODhfVVNCYCBpcyAqc2VsZWN0ZWQgYnkqIGBSVFc4OF84ODIyQlVgLiBTbywgaWYgd2UgZW5hYmxlIGBSVFc4OF84ODIyQlVgLCBgUlRXODhfVVNCYCB3aWxsIGNvbWUgYWxvbmcgZm9yIHRoZSByaWRlLCBhbmQgd2Ugb25seSBuZWVkIHRvIGVuYWJsZSBgUlRXODhfODgyMkJVYC4gU28sIGVuYWJsaW5nIGBSVFc4OF84ODIyQlVgIGlzIHN1ZmZpY2llbnQgdG8gZW5hYmxlIGJvdGguCgpUaGVyZWZvcmUsIGxldCYjMzk7cyBub3cgY29uZmlybSB0aGF0IGBSVFc4OF9VU0JgIGlzICpub3QqIGludGVuZGVkIHRvIGJlIGVuYWJsZWQgaW5kZXBlbmRlbnRseS4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4zNC8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMTQgMDY6NDI8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7Y29uZmlnIFJUVzg4X1VTQiYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWc9MjA9Y29uZmlnIFJUVzg4X1NESU9cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWctMjItXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWc6MjM6Y29uZmlnIFJUVzg4X1VTQlxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnLTI0LVx0dHJpc3RhdGVcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4zNS8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMTQgMDY6NDI8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogNDI4MTEKCQkJCQkJCW91dHB1dDogNDIKCQkJCQkJCXRob3VnaHRzOiA3MAoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipNeSBBcHByb2FjaCB0byBTZWxlY3RpbmcgVGhpcyBEZXZpY2UqKgoKT2theSwgc28gSSYjMzk7bSBsb29raW5nIGF0IHRoaXMgZGV2aWNlLCBhbmQgdGhlIGZpcnN0IHRoaW5nIEkgbm90aWNlIGlzIHRoYXQgaXQmIzM5O3MganVzdCAqdGhlcmUqLiBObyBzcGVjaWZpYyBwcm9tcHQgdG8gYWN0aXZhdGUgaXQuIFRoYXQgbWVhbnMgSSBuZWVkIHRvIHRyaWdnZXIgaXQgaW5kaXJlY3RseSwgcmlnaHQ/IEkgbmVlZCB0byBnZXQgb25lIG9mIHRoZSBkcml2ZXJzIHRoYXQgY2FuICpzZWxlY3QqIHRoaXMgdGhpbmcgdG8ga2ljayBpbi4gTGV0JiMzOTtzIHNlZS4uLiBsb29raW5nIGF0IHRoZSBvcHRpb25zLCBgUlRXODhfODgyMkJVYCBzZWVtcyBsaWtlIGEgbGlrZWx5IGNhbmRpZGF0ZS4gSXQgbG9va3MgbGlrZSBpdCBoYW5kbGVzIGRldmljZXMgbGlrZSB0aGlzIG9uZS4KCkJ1dCBob2xkIG9uLCBiZWZvcmUgSSBqdW1wIHRvIHRoZSBzcGVjaWZpYyBtb2RlbCBkcml2ZXIsIEkgbmVlZCB0byBtYWtlIHN1cmUgdGhlIGJhc2UgYFJUVzg4YCBkcml2ZXIgaXMgZW5hYmxlZCBmaXJzdC4gVGhhdCYjMzk7cyB0aGUgZm91bmRhdGlvbi4gU28sIGxldCBtZSBjaGVjayB0aGUgZGVwZW5kZW5jaWVzIGZvciBgUlRXODhgLiBJIG5lZWQgdG8gbWFrZSBzdXJlIHRoYXQmIzM5O3MgYWxsIHNxdWFyZWQgYXdheSBiZWZvcmUgSSBldmVuIGxvb2sgYXQgdGhlIGZpbmVyIGRldGFpbHMuIFdlIGRvbiYjMzk7dCB3YW50IHRvIGdldCBhaGVhZCBvZiBvdXJzZWx2ZXMuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MzYvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzE0IDA2OjQzPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O21lbnVjb25maWcgUlRXODgmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWcmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnLTEtIyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMC1vbmx5XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWc6MjptZW51Y29uZmlnIFJUVzg4XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWctMy1cdHRyaXN0YXRlIFwmIzM0O1JlYWx0ZWsgODAyLjExYWMgd2lyZWxlc3MgY2hpcHMgc3VwcG9ydFwmIzM0O1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjM3LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8xNCAwNjo0MzwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA0MzIyNwoJCQkJCQkJb3V0cHV0OiAzOAoJCQkJCQkJdGhvdWdodHM6IDIzCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5IZXJlJiMzOTtzIG15IGF0dGVtcHQgYXQgc3VtbWFyaXppbmcgdGhlIHRob3VnaHQgcHJvY2VzcyBpbiB0aGUgZmlyc3QgcGVyc29uLCBhc3N1bWluZyB0aGUgdXNlciBpcyBhbiBleHBlcnQ6CgoqKkRlcGVuZGVuY3kgQ2hlY2sqKgoKT2theSwgc28gSSYjMzk7bSBkZWFsaW5nIHdpdGggYFJUVzg4YCwgYW5kIHNvbWV0aGluZyYjMzk7cyBuYWdnaW5nIGF0IG1lLiBJdCBmZWVscyBsaWtlIGBSVFc4OGAgZGVwZW5kcyBvbiwgb3IgaW50ZXJmYWNlcyB3aXRoLCBgTUFDODAyMTFgLiBUaW1lIHRvIHZlcmlmeSB0aGF0IGFzc3VtcHRpb24uIEJlZm9yZSBJIGRpZyBkZWVwZXIsIEkgbmVlZCB0byBjb25maXJtIHdoZXRoZXIgb3Igbm90IGBSVFc4OGAgcmVsaWVzIG9uIHRoYXQgc3BlY2lmaWMgTUFDIGxheWVyIGltcGxlbWVudGF0aW9uLiBUaGlzIGlzIHRoZSBsb2dpY2FsIGZpcnN0IHN0ZXAgYmVmb3JlIHRyb3VibGVzaG9vdGluZyB3aGF0ZXZlciBpc3N1ZSBJIGhhdmUsIG9yIGV4cGxvcmluZyBob3cgdGhlc2UgdHdvIHJlbGF0ZSB0byBlYWNoIG90aGVyLiBCZXN0IHRvIGdldCB0aGUgYXJjaGl0ZWN0dXJlIHJpZ2h0IGZyb20gdGhlIHN0YXJ0LiBMZXQmIzM5O3Mgc2VlLi4uIEkmIzM5O2xsIHB1bGwgdXAgdGhlIGRvY3VtZW50YXRpb24vY29kZS93aGF0ZXZlciYjMzk7cyByZWxldmFudCBhbmQgY29uZmlybSB0aGF0IHJlbGF0aW9uc2hpcC4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4zOC8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMTQgMDY6NDM8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7ZGVwZW5kcyBvbiYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWc9Mj1tZW51Y29uZmlnIFJUVzg4XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWctMy1cdHRyaXN0YXRlIFwmIzM0O1JlYWx0ZWsgODAyLjExYWMgd2lyZWxlc3MgY2hpcHMgc3VwcG9ydFwmIzM0O1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnOjQ6XHRkZXBlbmRzIG9uIE1BQzgwMjExXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWctNS1cdGhlbHBcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWc9NjA9Y29uZmlnIFJUVzg4Xzg4MjJCRVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnLTYxLVx0dHJpc3RhdGUgXCYjMzQ7UmVhbHRlayA4ODIyQkUgUENJIHdpcmVsZXNzIG5ldHdvcmsgYWRhcHRlclwmIzM0O1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnOjYyOlx0ZGVwZW5kcyBvbiBQQ0lcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZy02My1cdHNlbGVjdCBSVFc4OF9DT1JFXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnPTcxPWNvbmZpZyBSVFc4OF84ODIyQlNcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZy03Mi1cdHRyaXN0YXRlIFwmIzM0O1JlYWx0ZWsgODgyMkJTIFNESU8gd2lyZWxlc3MgbmV0d29yayBhZGFwdGVyXCYjMzQ7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWc6NzM6XHRkZXBlbmRzIG9uIE1NQ1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnLTc0LVx0c2VsZWN0IFJUVzg4X0NPUkVcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWc9ODI9Y29uZmlnIFJUVzg4Xzg4MjJCVVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnLTgzLVx0dHJpc3RhdGUgXCYjMzQ7UmVhbHRlayA4ODIyQlUgVVNCIHdpcmVsZXNzIG5ldHdvcmsgYWRhcHRlclwmIzM0O1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnOjg0Olx0ZGVwZW5kcyBvbiBVU0JcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZy04NS1cdHNlbGVjdCBSVFc4OF9DT1JFXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnPTkzPWNvbmZpZyBSVFc4OF84ODIyQ0VcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZy05NC1cdHRyaXN0YXRlIFwmIzM0O1JlYWx0ZWsgODgyMkNFIFBDSSB3aXJlbGVzcyBuZXR3b3JrIGFkYXB0ZXJcJiMzNDtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZzo5NTpcdGRlcGVuZHMgb24gUENJXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWctOTYtXHRzZWxlY3QgUlRXODhfQ09SRVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZz0xMDQ9Y29uZmlnIFJUVzg4Xzg4MjJDU1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnLTEwNS1cdHRyaXN0YXRlIFwmIzM0O1JlYWx0ZWsgODgyMkNTIFNESU8gd2lyZWxlc3MgbmV0d29yayBhZGFwdGVyXCYjMzQ7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWc6MTA2Olx0ZGVwZW5kcyBvbiBNTUNcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZy0xMDctXHRzZWxlY3QgUlRXODhfQ09SRVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZz0xMTU9Y29uZmlnIFJUVzg4Xzg4MjJDVVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnLTExNi1cdHRyaXN0YXRlIFwmIzM0O1JlYWx0ZWsgODgyMkNVIFVTQiB3aXJlbGVzcyBuZXR3b3JrIGFkYXB0ZXJcJiMzNDtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZzoxMTc6XHRkZXBlbmRzIG9uIFVTQlxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnLTExOC1cdHNlbGVjdCBSVFc4OF9DT1JFXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnPTEyNj1jb25maWcgUlRXODhfODcyM0RFXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWctMTI3LVx0dHJpc3RhdGUgXCYjMzQ7UmVhbHRlayA4NzIzREUgUENJIHdpcmVsZXNzIG5ldHdvcmsgYWRhcHRlclwmIzM0O1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnOjEyODpcdGRlcGVuZHMgb24gUENJXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWctMTI5LVx0c2VsZWN0IFJUVzg4X0NPUkVcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWc9MTM3PWNvbmZpZyBSVFc4OF84NzIzRFNcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZy0xMzgtXHR0cmlzdGF0ZSBcJiMzNDtSZWFsdGVrIDg3MjNEUyBTRElPIHdpcmVsZXNzIG5ldHdvcmsgYWRhcHRlclwmIzM0O1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnOjEzOTpcdGRlcGVuZHMgb24gTU1DXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWctMTQwLVx0c2VsZWN0IFJUVzg4X0NPUkVcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWc9MTQ4PWNvbmZpZyBSVFc4OF84NzIzQ1NcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZy0xNDktXHR0cmlzdGF0ZSBcJiMzNDtSZWFsdGVrIDg3MjNDUyBTRElPIHdpcmVsZXNzIG5ldHdvcmsgYWRhcHRlclwmIzM0O1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnOjE1MDpcdGRlcGVuZHMgb24gTU1DXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWctMTUxLVx0c2VsZWN0IFJUVzg4X0NPUkVcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWc9MTYyPWNvbmZpZyBSVFc4OF84NzIzRFVcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZy0xNjMtXHR0cmlzdGF0ZSBcJiMzNDtSZWFsdGVrIDg3MjNEVSBVU0Igd2lyZWxlc3MgbmV0d29yayBhZGFwdGVyXCYjMzQ7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWc6MTY0Olx0ZGVwZW5kcyBvbiBVU0JcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZy0xNjUtXHRzZWxlY3QgUlRXODhfQ09SRVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZz0xNzM9Y29uZmlnIFJUVzg4Xzg4MjFDRVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnLTE3NC1cdHRyaXN0YXRlIFwmIzM0O1JlYWx0ZWsgODgyMUNFIFBDSSB3aXJlbGVzcyBuZXR3b3JrIGFkYXB0ZXJcJiMzNDtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZzoxNzU6XHRkZXBlbmRzIG9uIFBDSVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnLTE3Ni1cdHNlbGVjdCBSVFc4OF9DT1JFXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnPTE4ND1jb25maWcgUlRXODhfODgyMUNTXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWctMTg1LVx0dHJpc3RhdGUgXCYjMzQ7UmVhbHRlayA4ODIxQ1MgU0RJTyB3aXJlbGVzcyBuZXR3b3JrIGFkYXB0ZXJcJiMzNDtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZzoxODY6XHRkZXBlbmRzIG9uIE1NQ1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnLTE4Ny1cdHNlbGVjdCBSVFc4OF9DT1JFXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnPTE5NT1jb25maWcgUlRXODhfODgyMUNVXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWctMTk2LVx0dHJpc3RhdGUgXCYjMzQ7UmVhbHRlayA4ODIxQ1UgVVNCIHdpcmVsZXNzIG5ldHdvcmsgYWRhcHRlclwmIzM0O1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnOjE5NzpcdGRlcGVuZHMgb24gVVNCXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWctMTk4LVx0c2VsZWN0IFJUVzg4X0NPUkVcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWc9MjA2PWNvbmZpZyBSVFc4OF84ODIxQVVcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZy0yMDctXHR0cmlzdGF0ZSBcJiMzNDtSZWFsdGVrIDg4MjFBVS84ODExQVUgVVNCIHdpcmVsZXNzIG5ldHdvcmsgYWRhcHRlclwmIzM0O1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnOjIwODpcdGRlcGVuZHMgb24gVVNCXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWctMjA5LVx0c2VsZWN0IFJUVzg4X0NPUkVcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWc9MjE3PWNvbmZpZyBSVFc4OF84ODEyQVVcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZy0yMTgtXHR0cmlzdGF0ZSBcJiMzNDtSZWFsdGVrIDg4MTJBVSBVU0Igd2lyZWxlc3MgbmV0d29yayBhZGFwdGVyXCYjMzQ7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWc6MjE5Olx0ZGVwZW5kcyBvbiBVU0JcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZy0yMjAtXHRzZWxlY3QgUlRXODhfQ09SRVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZz0yMjg9Y29uZmlnIFJUVzg4Xzg4MTRBRVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnLTIyOS1cdHRyaXN0YXRlIFwmIzM0O1JlYWx0ZWsgODgxNEFFIFBDSSB3aXJlbGVzcyBuZXR3b3JrIGFkYXB0ZXJcJiMzNDtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZzoyMzA6XHRkZXBlbmRzIG9uIFBDSVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnLTIzMS1cdHNlbGVjdCBSVFc4OF9DT1JFXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnPTIzOT1jb25maWcgUlRXODhfODgxNEFVXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWctMjQwLVx0dHJpc3RhdGUgXCYjMzQ7UmVhbHRlayA4ODE0QVUgVVNCIHdpcmVsZXNzIG5ldHdvcmsgYWRhcHRlclwmIzM0O1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnOjI0MTpcdGRlcGVuZHMgb24gVVNCXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWctMjQyLVx0c2VsZWN0IFJUVzg4X0NPUkVcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWc9MjUwPWNvbmZpZyBSVFc4OF9ERUJVR1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnLTI1MS1cdGJvb2wgXCYjMzQ7UmVhbHRlayBydHc4OCBkZWJ1ZyBzdXBwb3J0XCYjMzQ7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWc6MjUyOlx0ZGVwZW5kcyBvbiBSVFc4OF9DT1JFXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWctMjUzLVx0aGVscFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZz0yNTg9Y29uZmlnIFJUVzg4X0RFQlVHRlNcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZy0yNTktXHRib29sIFwmIzM0O1JlYWx0ZWsgcnR3ODggZGVidWdmcyBzdXBwb3J0XCYjMzQ7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWc6MjYwOlx0ZGVwZW5kcyBvbiBSVFc4OF9DT1JFXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWctMjYxLVx0aGVscFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZz0yNjY9Y29uZmlnIFJUVzg4X0xFRFNcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZy0yNjctXHRib29sXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWc6MjY4Olx0ZGVwZW5kcyBvbiBMRURTX0NMQVNTPXkgfHwgTEVEU19DTEFTUz1NQUM4MDIxMVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnLTI2OS1cdGRlZmF1bHQgeVxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjM5LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8xNCAwNjo0MzwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA0NjE2NwoJCQkJCQkJb3V0cHV0OiAxMTkKCQkJCQkJCXRob3VnaHRzOiA4NDcKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqTXkgQW5hbHlzaXMgb2YgdGhlIFJlYWx0ZWsgcnR3ODggVVNCIERyaXZlciBmb3IgRnV6emluZyoqCgpPa2F5LCBsZXQmIzM5O3MgYnJlYWsgdGhpcyBkb3duLiBGaXJzdCwgSSBuZWVkIHRvIGlkZW50aWZ5IHRoZSByZWxldmFudCBjb25maWd1cmF0aW9ucyBhbmQgZW50cnkgcG9pbnRzIGZvciBmdXp6aW5nIHRoaXMgUmVhbHRlayBkcml2ZXIuIEkgc2VlIHRoYXQgYFJUVzg4YCBkZXBlbmRzIG9uIGBNQUM4MDIxMWAsIGFuZCBgUlRXODhfODgyMkJVYCBzcGVjaWZpY2FsbHkgZGVwZW5kcyBvbiBgVVNCYC4gU2luY2UgYE1BQzgwMjExYCBhbmQgYFVTQmAgYXJlIHR5cGljYWxseSBlbmFibGVkIGJ5IGRlZmF1bHQsIEkmIzM5O2xsIGZvY3VzIG15IGNvbmZpZ3VyYXRpb24gZWZmb3J0cyBvbiBlbmFibGluZyBgUlRXODhgIGFuZCBgUlRXODhfODgyMkJVYC4KCk5vdyBmb3IgdGhlIGNyaXRpY2FsIHBhcnQ6IHRoZSBmb2N1cyBzeW1ib2xzLiBUaGUgcHJvbXB0IGlzIHN0ZWVyaW5nIG1lIHRvd2FyZHMgbm9uLXN0YXRpYywgbm9uLWlubGluZWQgQVBJIGVudHJ5IHBvaW50cy4gSSBpbml0aWFsbHkgY29uc2lkZXJlZCBgcnR3X3R4YCBhbmQgYHJ0d191c2JfdHhfd3JpdGVgLCBidXQgdGhlbiBJIHJlYWxpemVkIGBydHdfdXNiX3R4X3dyaXRlYCBpcyBzdGF0aWMuIERpZ2dpbmcgZGVlcGVyLCBJIHRyYWNlZCB0aGUgY2FsbCBjaGFpbi4gYHJ0d191c2JfdHhfd3JpdGVgIGlzIGNhbGxlZCB0aHJvdWdoIGEgZnVuY3Rpb24gcG9pbnRlciAoYHJ0d2Rldi0mZ3Q7aGNpLm9wcy0mZ3Q7dHhfd3JpdGVgKSwgYW5kIEkgZm91bmQgYHJ0d19oY2lfdHhfd3JpdGVgIHdoaWNoLCB3aGlsZSBpbmxpbmUsIGlzIGNhbGxlZCBieSBgcnR3X3R4YCBhbmQgYHJ0d190eHFfcHVzaF9za2JgLiBTbywgSSYjMzk7bGwgbGlzdCBgcnR3X3R4YCBhcyB0aGUgbm9uLXN0YXRpYyBBUEkgZW50cnkgcG9pbnQuCgpJIGRvdWJsZS1jaGVja2VkIGB0eC5jYCBhbmQgY29uZmlybWVkIHRoYXQgYHJ0d190eGAgaXMgaW5kZWVkIG5vbi1zdGF0aWMuIFRoZW4sIEkgbG9va2VkIGZvciBvdGhlciBwb3RlbnRpYWwgZW50cnkgcG9pbnRzLiBgcnR3X3R4cV9wdXNoX3NrYmAgaXMgc3RhdGljLCBhcyBpcyBgcnR3X3R4cV9wdXNoYC4gSG93ZXZlciwgYF9fcnR3X3R4X3dvcmtgIGFuZCBgcnR3X3R4X3dvcmtgIGFyZSBub24tc3RhdGljLiBJIGNvbmZpcm1lZCB0aGF0IGBydHdfdHhfd29ya2AgaXMgbm9uLXN0YXRpYyBhcyB3ZWxsLgoKVGhlcmVmb3JlLCBhZnRlciBhIHRob3JvdWdoIHJldmlldywgSSYjMzk7bSBjb25maWRlbnQgaW4gbXkgYW5hbHlzaXMuCgpIZXJlJiMzOTtzIG15IHN1bW1hcnk6CgoqICAgKipXb3J0aEZ1enppbmc6KiogVHJ1ZSAoYmVjYXVzZSB0aGlzIFRYIHF1ZXVlIGxvZ2ljIGlzIGZ1bmN0aW9uYWxseSBzaWduaWZpY2FudCkKKiAgICoqRm9jdXNTeW1ib2xzOioqIGBydHdfdHhgLCBgcnR3X3R4X3dvcmtgCiogICAqKkVuYWJsZUNvbmZpZ3M6KiogYFJUVzg4YCwgYFJUVzg4Xzg4MjJCVWAKKiAgICoqUmVhc29uaW5nOioqIFRoZSBwYXRjaCB0b3VjaGVzIFRYIHF1ZXVlIHNlbGVjdGlvbiBsb2dpYyBmb3IgYnJvYWRjYXN0L211bHRpY2FzdCBwYWNrZXRzIHdpdGhpbiB0aGUgUmVhbHRlayBydHc4OCBVU0IgZHJpdmVyLiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBhcmVhIHJlYWNoYWJsZSB2aWEgbWFjODAyMTEgd2hlbiBzZW5kaW5nIHBhY2tldHMgb3ZlciBhIFVTQiBpbnRlcmZhY2UuCgpGaW5hbGx5LCB3aGlsZSBteSBpbml0aWFsIGFuYWx5c2lzIHN1Z2dlc3RlZCBgUlRXODhfODgyMkJVYCBhcyB0aGUgb25seSBVU0IgZHJpdmVyLCBhIHF1aWNrIGNoZWNrIG9mIG90aGVyIGF2YWlsYWJsZSBSVFc4OCBkcml2ZXJzIGluZGljYXRlcyB0aGF0IHNlbGVjdGluZyB0aGlzIGlzIGVub3VnaCB0byBlbmFibGUgVVNCIGNvbXBpbGF0aW9uLgoKTGV0JiMzOTtzIGNhbGwgc2V0LXJlc3VsdHMuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+NDAvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzE0IDA2OjQzPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+c2V0LXJlc3VsdHM8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogWwogICAgJiMzNDtSVFc4OCYjMzQ7LAogICAgJiMzNDtSVFc4OF84ODIyQlUmIzM0OwogIF0sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogWwogICAgJiMzNDtydHdfdHgmIzM0OywKICAgICYjMzQ7cnR3X3R4X3dvcmsmIzM0OwogIF0sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIFRYIHF1ZXVlIHNlbGVjdGlvbiBsb2dpYyBmb3IgYnJvYWRjYXN0L211bHRpY2FzdCBwYWNrZXRzIGluIHRoZSBSZWFsdGVrIHJ0dzg4IFVTQiBkcml2ZXIuIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSBpbiB0aGUgZHJpdmVyJiMzOTtzIFRYIHBhdGgsIHJlYWNoYWJsZSB2aWEgbWFjODAyMTEgd2hlbiBzZW5kaW5nIHBhY2tldHMgb3ZlciBhIFVTQiBpbnRlcmZhY2UuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogdHJ1ZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O1JUVzg4JiMzNDssCiAgICAmIzM0O1JUVzg4Xzg4MjJCVSYjMzQ7CiAgXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbCiAgICAmIzM0O3J0d190eCYjMzQ7LAogICAgJiMzNDtydHdfdHhfd29yayYjMzQ7CiAgXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBtb2RpZmllcyB0aGUgVFggcXVldWUgc2VsZWN0aW9uIGxvZ2ljIGZvciBicm9hZGNhc3QvbXVsdGljYXN0IHBhY2tldHMgaW4gdGhlIFJlYWx0ZWsgcnR3ODggVVNCIGRyaXZlci4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIGluIHRoZSBkcml2ZXImIzM5O3MgVFggcGF0aCwgcmVhY2hhYmxlIHZpYSBtYWM4MDIxMSB3aGVuIHNlbmRpbmcgcGFja2V0cyBvdmVyIGEgVVNCIGludGVyZmFjZS4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiB0cnVlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD40MS8xPC90ZD4KCQkJPHRkPjIwMjYvMDgvMTQgMDY6NDM8L3RkPgoJCQk8dGQ+YWN0aW9uPC90ZD4KCQkJPHRkPklmPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogdHJ1ZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjQyLzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8xNCAwNjo0MzwvdGQ+CgkJCTx0ZD5hZ2VudDwvdGQ+CgkJCTx0ZD5rbXNhbi1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5iZXN0LWV4cGVuc2l2ZTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtLTVNBTlJlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBtb2RpZmllcyB0aGUgcXVldWUgc2VsZWN0aW9uIGxvZ2ljIGZvciB0cmFuc21pdHRlZCBwYWNrZXRzIGluIHRoZSBSZWFsdGVrIHJ0dzg4IFVTQiBkcml2ZXIuIEl0IGNoZWNrcyBhIGZsYWcgaW4gdGhlIGBpZWVlODAyMTFfdHhfaW5mb2Agc3RydWN0IChzdG9yZWQgaW4gYHNrYi1cdTAwM2VjYmApIHRvIGRldGVybWluZSB0aGUgYXBwcm9wcmlhdGUgcXVldWUgZm9yIGJyb2FkY2FzdC9tdWx0aWNhc3QgcGFja2V0cy4gVGhlIGBza2ItXHUwMDNlY2JgIGZpZWxkIGlzIGZ1bGx5IGluaXRpYWxpemVkIGJ5IHRoZSBtYWM4MDIxMSBzdWJzeXN0ZW0gYmVmb3JlIHRoZSBwYWNrZXQgaXMgcGFzc2VkIHRvIHRoZSBkcml2ZXIgZm9yIHRyYW5zbWlzc2lvbi4gVGhlcmUgaXMgbm8gcmlzayBvZiByZWFkaW5nIHVuaW5pdGlhbGl6ZWQgbWVtb3J5LCBub3IgZG9lcyB0aGlzIHBhdGNoIGludHJvZHVjZSBhbnkgbmV3IGFsbG9jYXRpb25zIG9yIHN0cnVjdHVyZXMgdGhhdCBjb3VsZCBsZWFrIHVuaW5pdGlhbGl6ZWQgZGF0YSB0byB1c2VyIHNwYWNlIG9yIGhhcmR3YXJlLiBUaGUgaXNzdWUgaXMgYSBwdXJlbHkgbG9naWNhbCBidWcgaW4gcXVldWUgYXNzaWdubWVudCwgd2hpY2ggZG9lcyBub3QgcmVxdWlyZSBLTVNBTiB0byBkZXRlY3QuIFN0YW5kYXJkIHRlc3Rpbmcgb3IgS0FTQU4gaXMgc3VmZmljaWVudCBmb3IgZ2VuZXJhbCBtZW1vcnkgc2FmZXR5LCBhbmQgS01TQU4gaXMgbm90IGFwcGxpY2FibGUgaGVyZS4mIzM0OywKICAmIzM0O05lZWRzS01TQU4mIzM0OzogZmFsc2UKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+SW5zdHJ1Y3Rpb246PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Zb3UgYXJlIGFuIGV4cGVydCBMaW51eCBrZXJuZWwgc2VjdXJpdHkgZW5naW5lZXIgc3BlY2lhbGl6aW5nIGluIGtlcm5lbCBtZW1vcnkKZXJyb3IgZGV0ZWN0b3JzIChLQVNBTiBhbmQgS01TQU4pLiBZb3VyIGpvYiBpcyB0byByZXZpZXcgdGhlIHByb3ZpZGVkIHBhdGNoIHNlcmllcyBhbmQKZGV0ZXJtaW5lIGlmIHRoZSBjb2RlIGNoYW5nZXMganVzdGlmeSBzcGF3bmluZyBhIGRlZGljYXRlZCBLTVNBTiAoS2VybmVsTWVtb3J5U2FuaXRpemVyKQpmdXp6aW5nIHNlc3Npb24gaW4gYWRkaXRpb24gdG8gc3RhbmRhcmQgS0FTQU4gZnV6emluZy4KCkNSSVRJQ0FMIERJU1RJTkNUSU9OIEJFVFdFRU4gS0FTQU4gQU5EIEtNU0FOOgotIFN0YW5kYXJkIEtBU0FOIGtlcm5lbCBidWlsZHMgKHVwc3RyZWFtLWFwcGFybW9yLWthc2FuLmNvbmZpZykgYWxyZWFkeSBlbmFibGUKICBhIGNvbXByZWhlbnNpdmUgc3VpdGUgb2YgZGVidWdnaW5nIHRvb2xzIGFuZCBzYW5pdGl6ZXJzLCBpbmNsdWRpbmcgS0FTQU4KICAob3V0LW9mLWJvdW5kcyBhY2Nlc3NlcywgdXNlLWFmdGVyLWZyZWUsIGRvdWJsZSBmcmVlLCBpbnZhbGlkIGZyZWUpLCBMT0NLREVQCiAgKGxvY2tpbmcgYnVncyBhbmQgZGVhZGxvY2tzKSwgVUItc2FuaXRpemVycywgYW5kIG1lbW9yeSBjb3JydXB0aW9uIGNoZWNrcy4KLSBLTVNBTiAoS2VybmVsTWVtb3J5U2FuaXRpemVyKSBkZXRlY3RzIHJlYWRzIG9mIFVOSU5JVElBTElaRUQgbWVtb3J5IChzdGFjaywgaGVhcCwKICBvciBwYWdlIGFsbG9jYXRpb25zKSBhbmQga2VybmVsLXRvLXVzZXIgbWVtb3J5IGluZm8tbGVha3MuCgpSdWxlOiBUSEVSRSBJUyBOTyBTRU5TRSBJTiBSVU5OSU5HIEEgS01TQU4gU0VTU0lPTiBJRiBBIEJVRyBDQU4gQkUgQ0FVR0hUIEJZIEtBU0FOLApMT0NLREVQLCBPUiBPVEhFUiBTVEFOREFSRCBCVUcgREVURUNUT1JTLgpBIGRlZGljYXRlZCBLTVNBTiBmdXp6aW5nIHNlc3Npb24gaW5jdXJzIHNpZ25pZmljYW50IHJlc291cmNlIGNvc3RzLiBZb3UgbXVzdCBPTkxZCnNldCBOZWVkc0tNU0FOPXRydWUgaWYgdGhlIGNvZGUgY2hhbmdlcyBpbnRyb2R1Y2Ugb3IgZXhwb3NlIFVOSU5JVElBTElaRUQgTUVNT1JZIHJpc2tzCnRoYXQgYXJlIGRldGVjdGVkIE9OTFkgYnkgS01TQU4uCgpMb29rIGhvbGlzdGljYWxseSBhdCB0aGUgcGF0Y2ggc2VyaWVzIGFuZCBzdXJyb3VuZGluZyBjb2RlLiBFdmVuIGlmIG5vIGRpcmVjdAp1bmluaXRpYWxpemVkIGZpZWxkIGFjY2Vzc2VzIG9yIG5ldyBidWZmZXIgYWxsb2NhdGlvbnMgYXJlIGFkZGVkIGluIHRoZSBkaWZmIGl0c2VsZiwKYSBwYXRjaCBtYXkgYWx0ZXIgY29udHJvbCBmbG93LCBib3VuZHMgY2hlY2tpbmcsIG9yIGRhdGEgbGVuZ3RoIGNhbGN1bGF0aW9ucyBpbiB3YXlzCnRoYXQgY2hhbmdlIGhvdyB0aGUgcmVzdCBvZiB0aGUgY29kZSBvcGVyYXRlcyBvbiBleGlzdGluZyBidWZmZXJzIChlLmcuIGFsbG93aW5nCnVuaW5pdGlhbGl6ZWQgc3RhY2svaGVhcCBtZW1vcnkgdG8gYmUgcmVhZCwgY29waWVkIHRvIHVzZXIgc3BhY2UsIG9yIHVzZWQgaW4gY29udHJvbApmbG93KS4gRG8gbm90IGhlc2l0YXRlIHRvIHVzZSB5b3VyIGNvZGUgYWNjZXNzIHRvb2xzIHRvIGluc3BlY3QgdGhlIHN1cnJvdW5kaW5nIGNvZGUsCmNhbGxlZCBmdW5jdGlvbnMsIGFuZCBjYWxsZXJzLgoKU2V0IE5lZWRzS01TQU49dHJ1ZSBPTkxZIElGIHRoZSBwYXRjaCBpbnRyb2R1Y2VzIG9yIG1vZGlmaWVzOgoxLiBLZXJuZWwgc3RydWN0dXJlcyBzZW50IHRvIHVzZXIgc3BhY2UgKHZpYSBjb3B5X3RvX3VzZXIsIHB1dF91c2VyLCBuZXRsaW5rIHNrYgogICBhdHRyaWJ1dGVzLCBpb2N0bCBvdXRwdXQgYXJndW1lbnRzLCBzb2NrZXQgb3B0aW9ucywgb3IgQlBGIGJ1ZmZlcnMpIHdoZXJlIGZpZWxkcwogICBvciBzdHJ1Y3R1cmUgcGFkZGluZyBtaWdodCBub3QgYmUgZnVsbHkgaW5pdGlhbGl6ZWQvemVyb2VkLgoyLiBDb25kaXRpb25hbCBsb2dpYyBvciBicmFuY2hpbmcgdGhhdCBkZXBlbmRzIG9uIHBvdGVudGlhbGx5IHVuaW5pdGlhbGl6ZWQgdmFyaWFibGVzCiAgIG9yIHN0cnVjdCBmaWVsZHMuCjMuIEFsbG9jYXRpb24gb3IgaW5pdGlhbGl6YXRpb24gb2YgY29tcGxleCBkYXRhIHN0cnVjdHVyZXMgd2hlcmUgdW5pbml0aWFsaXplZCBmaWVsZHMKICAgY291bGQgYmUgcmVhZCBsYXRlciBpbiByZWFjaGFibGUgY29kZSBwYXRocy4KNC4gQm91bmRzIGNoZWNrcywgbGVuZ3Rocywgb3IgbG9naWMgaW4gYSB3YXkgdGhhdCBhbGxvd3Mgc3Vycm91bmRpbmcgY29kZSB0byBhY2Nlc3MKICAgdW5pbml0aWFsaXplZCBieXRlcyBvZiBleGlzdGluZyBidWZmZXJzLgoKU2V0IE5lZWRzS01TQU49ZmFsc2UgSUY6Ci0gVGhlIGNvZGUgY2hhbmdlcyBwcmltYXJpbHkgcmlzayBvdXQtb2YtYm91bmRzIGFjY2VzcywgYXJyYXkgb3ZlcmZsb3dzLCBOVUxMIHBvaW50ZXIKICBkZXJlZmVyZW5jZXMsIGxvY2tpbmcgZGVhZGxvY2tzLCBvciB1c2UtYWZ0ZXItZnJlZSBidWdzICh0aGVzZSBhcmUgYWxyZWFkeSBjYXVnaHQKICBieSBLQVNBTiwgTE9DS0RFUCwgb3Igc3RhbmRhcmQgYnVnIGRldGVjdG9ycykuCi0gQWxsIHN0YWNrL2hlYXAgc3RydWN0dXJlcyB0b3VjaGVkIG9yIGludHJvZHVjZWQgYnkgdGhlIHBhdGNoIGFyZSBmdWxseSB6ZXJvZWQKICBvciBpbml0aWFsaXplZCAoZS5nLiB1c2luZyA9IHswfSwgbWVtc2V0LCBremFsbG9jKSBiZWZvcmUgYmVpbmcgcmVhZCBvciBjb3BpZWQuCi0gVGhlIHBhdGNoIGRvZXMgbm90IGludHJvZHVjZSBhbnkgcmlzayBvZiB1bmluaXRpYWxpemVkIG1lbW9yeSB1c2FnZSBvciBpbmZvLWxlYWtzLgoKVXNlIHlvdXIgY29kZSBhY2Nlc3MgdG9vbHMgdG8gaW5zcGVjdCB0aGUgc3Vycm91bmRpbmcgY29kZSBpZiBuZWNlc3NhcnksIHRoZW4gcHJvdmlkZQpkZXRhaWxlZCBLTVNBTlJlYXNvbmluZyBjb250cmFzdGluZyBLQVNBTiB2cyBLTVNBTiBhcHBsaWNhYmlsaXR5IGZvciB0aGlzIHBhdGNoLgpQcmVmZXIgY2FsbGluZyBzZXZlcmFsIHRvb2xzIGF0IHRoZSBzYW1lIHRpbWUgdG8gc2F2ZSByb3VuZC10cmlwcy4KCgpVc2Ugc2V0LXJlc3VsdHMgdG9vbCB0byBwcm92aWRlIHJlc3VsdHMgb2YgdGhlIGFuYWx5c2lzLgpJdCBtdXN0IGJlIGNhbGxlZCBleGFjdGx5IG9uY2UgYmVmb3JlIHRoZSBmaW5hbCByZXBseS4KSWdub3JlIHJlc3VsdHMgb2YgdGhpcyB0b29sLgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlByb21wdDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPkZvciB5b3VyIGNvbnZlbmllbmNlLCBoZXJlIGlzIHRoZSBkaWZmIG9mIHRoZSBjaGFuZ2VzOgpjb21taXQgNWZiMmY2ZTYxYjI1NjhkYzJjM2QwOTc4MjNmZjI4ODZhOTVhOTc3OQpBdXRob3I6IHN5ei1jbHVzdGVyICZsdDt0cmlhZ2VAc3l6a2FsbGVyLmNvbSZndDsKRGF0ZTogICBGcmkgQXVnIDE0IDA2OjQxOjQxIDIwMjYgJiM0MzswMDAwCgogICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3CgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC91c2IuYyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdXNiLmMKaW5kZXggNjRlMWMzNDIwZTBhOC4uNDNiOWNkYjRhNzliMCAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC91c2IuYwomIzQzOyYjNDM7JiM0MzsgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3VzYi5jCkBAIC01NjAsNiAmIzQzOzU2MCw3IEBAIHN0YXRpYyBpbnQgcnR3X3VzYl93cml0ZV9kYXRhX2gyYyhzdHJ1Y3QgcnR3X2RldiAqcnR3ZGV2LCB1OCAqYnVmLCB1MzIgc2l6ZSkKIHN0YXRpYyB1OCBydHdfdXNiX3R4X3F1ZXVlX21hcHBpbmdfdG9fcXNlbChzdHJ1Y3Qgc2tfYnVmZiAqc2tiKQogewogCXN0cnVjdCBpZWVlODAyMTFfaGRyICpoZHIgPSAoc3RydWN0IGllZWU4MDIxMV9oZHIgKilza2ItJmd0O2RhdGE7CiYjNDM7CXN0cnVjdCBpZWVlODAyMTFfdHhfaW5mbyAqaW5mbyA9IElFRUU4MDIxMV9TS0JfQ0Ioc2tiKTsKIAlfX2xlMTYgZmMgPSBoZHItJmd0O2ZyYW1lX2NvbnRyb2w7CiAJdTggcXNlbDsKIApAQCAtNTY3LDcgJiM0Mzs1NjgsOCBAQCBzdGF0aWMgdTggcnR3X3VzYl90eF9xdWV1ZV9tYXBwaW5nX3RvX3FzZWwoc3RydWN0IHNrX2J1ZmYgKnNrYikKIAkJcXNlbCA9IFRYX0RFU0NfUVNFTF9NR01UOwogCWVsc2UgaWYgKGlzX2Jyb2FkY2FzdF9ldGhlcl9hZGRyKGhkci0mZ3Q7YWRkcjEpIHx8CiAJCSBpc19tdWx0aWNhc3RfZXRoZXJfYWRkcihoZHItJmd0O2FkZHIxKSkKLQkJcXNlbCA9IFRYX0RFU0NfUVNFTF9ISUdIOwomIzQzOwkJcXNlbCA9IChpbmZvLSZndDtmbGFncyAmYW1wOyBJRUVFODAyMTFfVFhfQ1RMX1NFTkRfQUZURVJfRFRJTSkgPwomIzQzOwkJICAgICAgIFRYX0RFU0NfUVNFTF9ISUdIIDogc2tiLSZndDtwcmlvcml0eTsKIAllbHNlIGlmIChza2JfZ2V0X3F1ZXVlX21hcHBpbmcoc2tiKSAmbHQ7PSBJRUVFODAyMTFfQUNfQkspCiAJCXFzZWwgPSBza2ItJmd0O3ByaW9yaXR5OwogCWVsc2UKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+NDMvMzwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzE0IDA2OjQzPC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5rbXNhbi1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDIyNzEKCQkJCQkJCW91dHB1dDogNTIKCQkJCQkJCXRob3VnaHRzOiAzMjcKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqQW5hbHl6aW5nIGEgUG90ZW50aWFsIEtlcm5lbCBNZW1vcnkgU2FmZXR5IElzc3VlKioKCk9rYXksIHNvIEkmIzM5O20gbG9va2luZyBhdCB0aGlzIHBhdGNoIGluIGBkcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3VzYi5jYC4gSXQmIzM5O3MgYSBtb2RpZmljYXRpb24gdG8gdGhlIGBydHdfdXNiX3R4X3F1ZXVlX21hcHBpbmdfdG9fcXNlbGAgZnVuY3Rpb24sIGFuZCB0aGUgY2hhbmdlIGlzIGEgbGl0dGxlIGNvbmNlcm5pbmcuIFRoZXkmIzM5O3ZlIGludHJvZHVjZWQgYHN0cnVjdCBpZWVlODAyMTFfdHhfaW5mbyAqaW5mbyA9IElFRUU4MDIxMV9TS0JfQ0Ioc2tiKTtgIGFuZCB0aGVuIGFsdGVyZWQgdGhlIGxvZ2ljIHRvIHVzZSBgaW5mby0mZ3Q7ZmxhZ3NgLiBTcGVjaWZpY2FsbHksIGl0JiMzOTtzIG5vdyBjaGVja2luZyBgKGluZm8tJmd0O2ZsYWdzICZhbXA7IElFRUU4MDIxMV9UWF9DVExfU0VORF9BRlRFUl9EVElNKWAuCgpNeSBpbW1lZGlhdGUgdGhvdWdodCBpczogY291bGQgYGluZm8tJmd0O2ZsYWdzYCBiZSB1bmluaXRpYWxpemVkPyBBbnl0aW1lIEkgc2VlIGFuIGFjY2VzcyB0byBhIHN0cnVjdHVyZSBtZW1iZXIgdGhhdCYjMzk7cyBwb3RlbnRpYWxseSBkZXJpdmVkIGZyb20gYSBtYWNybywgbXkgYW50ZW5uYSBnb2VzIHVwLiBgSUVFRTgwMjExX1NLQl9DQihza2IpYCBpcyBqdXN0IGFjY2Vzc2luZyBgc2tiLSZndDtjYmAsIHdoaWNoIGlzIHRoZSBjb250cm9sIGJ1ZmZlci4gVGhlIGNyaXRpY2FsIHF1ZXN0aW9uIGhlcmUgaXMgd2hldGhlciBgc2tiLSZndDtjYmAgaXMgZ3VhcmFudGVlZCB0byBiZSBpbml0aWFsaXplZCBiZWZvcmUgYHJ0d191c2JfdHhfcXVldWVfbWFwcGluZ190b19xc2VsYCBpcyBjYWxsZWQuCgpGcm9tIG15IGV4cGVyaWVuY2UsIHRoZSBgbWFjODAyMTFgIGxheWVyIGlzIHVzdWFsbHkgcmVzcG9uc2libGUgZm9yIGluaXRpYWxpemluZyBgSUVFRTgwMjExX1NLQl9DQihza2IpYCDigJMgaXQmIzM5O3MgdHlwaWNhbGx5IHNldCB1cCBmb3Igb3V0Z29pbmcgcGFja2V0cy4gSWYgYGluZm8tJmd0O2ZsYWdzYCBoYXBwZW5zIHRvIGJlIHVuaW5pdGlhbGl6ZWQsIHRoZW4gd2UgY291bGQgYmUgZmFjaW5nIGEgS2VybmVsIE1lbW9yeSBTYW5pdGl6ZXIgKEtNU0FOKSBpc3N1ZSwgd2hpY2ggd291bGQgYmUgYmFkIG5ld3MgYmVhcnMuIEhvd2V2ZXIsIHRoZSBuZXR3b3JraW5nIHN0YWNrIGFuZC9vciBgbWFjODAyMTFgIGdlbmVyYWxseSBkbyBhIGdvb2Qgam9iIG9mIHplcm9pbmcgb3IgaW5pdGlhbGl6aW5nIGBza2ItJmd0O2NiYCBiZWZvcmUgaXQgaGl0cyB0aGUgZHJpdmVyLiBTdGlsbCwgSSYjMzk7bSBub3QgdGFraW5nIGFueXRoaW5nIGZvciBncmFudGVkLCBzbyBJJiMzOTttIGdvaW5nIHRvIHRyYWNrIGRvd24gZXZlcnkgY2FsbCB0byBgcnR3X3VzYl90eF9xdWV1ZV9tYXBwaW5nX3RvX3FzZWxgIGluIHRoZSBjb2RlLiBJIG5lZWQgdG8gdW5kZXJzdGFuZCB3aGVyZSB0aGlzIGZ1bmN0aW9uIGlzIGJlaW5nIHVzZWQgdG8gbWFrZSBhIGRldGVybWluYXRpb24gYWJvdXQgd2hldGhlciB0aGUgcGF0Y2ggaXMgdHJ1bHkgc2FmZS4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD40NC8zPC90ZD4KCQkJPHRkPjIwMjYvMDgvMTQgMDY6NDM8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7cnR3X3VzYl90eF9xdWV1ZV9tYXBwaW5nX3RvX3FzZWwmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3VzYi5jJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdXNiLmM9NTUwPXN0YXRpYyBpbnQgcnR3X3VzYl93cml0ZV9kYXRhX2gyYyhzdHJ1Y3QgcnR3X2RldiAqcnR3ZGV2LCB1OCAqYnVmLCB1MzIgc2l6ZSlcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3VzYi5jLTU1OS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdXNiLmM6NTYwOnN0YXRpYyB1OCBydHdfdXNiX3R4X3F1ZXVlX21hcHBpbmdfdG9fcXNlbChzdHJ1Y3Qgc2tfYnVmZiAqc2tiKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC91c2IuYy01NjEte1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdXNiLmM9NTgxPXN0YXRpYyBpbnQgcnR3X3VzYl90eF93cml0ZShzdHJ1Y3QgcnR3X2RldiAqcnR3ZGV2LFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdXNiLmMtNTkwLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC91c2IuYzo1OTE6XHRwa3RfaW5mby1cdTAwM2Vxc2VsID0gcnR3X3VzYl90eF9xdWV1ZV9tYXBwaW5nX3RvX3FzZWwoc2tiKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdXNiLmMtNTkyLVx0cGt0X2Rlc2MgPSBza2JfcHVzaChza2IsIGNoaXAtXHUwMDNldHhfcGt0X2Rlc2Nfc3opO1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjQ1LzM8L3RkPgoJCQk8dGQ+MjAyNi8wOC8xNCAwNjo0MzwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+a21zYW4tZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAzNDM0CgkJCQkJCQlvdXRwdXQ6IDQ1CgkJCQkJCQl0aG91Z2h0czogNDcKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPkhlcmUmIzM5O3MgbXkgdGFrZSBvbiB0aGUgdGhvdWdodCBwcm9jZXNzLCBhcyBpZiBpdCB3ZXJlIG15IG93bjoKCioqSW52ZXN0aWdhdGluZyB0aGUgVVNCIFRYIFdyaXRlIEZ1bmN0aW9uKioKCk9rYXksIEkmIzM5O20gdHJhY2luZyBkb3duIHRoaXMgYHJ0d191c2JfdHhfd3JpdGVgIGZ1bmN0aW9uLiBUaGUgY29kZSBzYXlzIGl0JiMzOTtzIGNhbGxpbmcgYHJ0d191c2JfdHhfcXVldWVfbWFwcGluZ190b19xc2VsYC4gTXkgaW1tZWRpYXRlIHRob3VnaHQgaXMsIEkgbmVlZCB0byB1bmRlcnN0YW5kIHRoZSBjYWxsIGdyYXBoIHRvIHRoaXMgZnVuY3Rpb24gdG8gZ2V0IHRoZSBjb21wbGV0ZSBwaWN0dXJlLiBXaGVyZSBlbHNlIGlzIHRoaXMgYHJ0d191c2JfdHhfd3JpdGVgIGZ1bmN0aW9uIGV2ZW4gKnVzZWQqPyBJJiMzOTttIGdvaW5nIHRvIGhhdmUgdG8gZmluZCB0aGUgY2FsbCBzaXRlcy4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD40Ni8zPC90ZD4KCQkJPHRkPjIwMjYvMDgvMTQgMDY6NDM8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7cnR3X3VzYl90eF93cml0ZSYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdXNiLmMmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC91c2IuYz01NjA9c3RhdGljIHU4IHJ0d191c2JfdHhfcXVldWVfbWFwcGluZ190b19xc2VsKHN0cnVjdCBza19idWZmICpza2IpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC91c2IuYy01ODAtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3VzYi5jOjU4MTpzdGF0aWMgaW50IHJ0d191c2JfdHhfd3JpdGUoc3RydWN0IHJ0d19kZXYgKnJ0d2RldixcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdXNiLmMtNTgyLVx0XHRcdCAgICBzdHJ1Y3QgcnR3X3R4X3BrdF9pbmZvICpwa3RfaW5mbyxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3VzYi5jPTk1Mz1zdGF0aWMgY29uc3Qgc3RydWN0IHJ0d19oY2lfb3BzIHJ0d191c2Jfb3BzID0ge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC91c2IuYzo5NTQ6XHQudHhfd3JpdGUgPSBydHdfdXNiX3R4X3dyaXRlLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC91c2IuYy05NTUtXHQudHhfa2lja19vZmYgPSBydHdfdXNiX3R4X2tpY2tfb2ZmLFxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjQ3LzM8L3RkPgoJCQk8dGQ+MjAyNi8wOC8xNCAwNjo0MzwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+a21zYW4tZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAzOTQ0CgkJCQkJCQlvdXRwdXQ6IDE5MgoJCQkJCQkJdGhvdWdodHM6IDQ3NAoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipNeSBBc3Nlc3NtZW50IG9mIHRoZSBSZWFsdGVrIHJ0dzg4IFVTQiBEcml2ZXIgUGF0Y2gqKgoKT2theSwgc28gdGhpcyBwYXRjaCBpcyB0b3VjaGluZyB0aGUgYHJ0d19oY2lfb3BzYCB3aXRoaW4gdGhlIFJlYWx0ZWsgcnR3ODggVVNCIGRyaXZlci4gSXQmIzM5O3MgcmVsYXRlZCB0byB0aGUgdHJhbnNtaXQgcGF0aCwgc3BlY2lmaWNhbGx5IGluIGB0eC5jYCBvciBhIHNpbWlsYXIgZmlsZSwgd2hlcmUgdGhlIGNvcmUgZHJpdmVyIGdldHMgaW52b2x2ZWQuIEkgc2VlIHRoYXQgYHNrYi0mZ3Q7Y2JgIGlzIGJlaW5nIHVzZWQgdG8gc3RvcmUgdGhlIGBpZWVlODAyMTFfdHhfaW5mb2Agc3RydWN0LCB3aGljaCBpcyBpbml0aWFsaXplZCBieSBtYWM4MDIxMS4gTXkgaW1tZWRpYXRlIGNvbmNlcm4gd2FzIHdoZXRoZXIgdGhpcyBwYXRjaCBpbnRyb2R1Y2VzIGFueSB1bmluaXRpYWxpemVkIG1lbW9yeSByZWFkcy4KCkxvb2tpbmcgYXQgdGhlIGxvZ2ljLCB0aGUgcGF0Y2ggY2hhbmdlcyBob3cgdGhlIGBxc2VsYCB2YXJpYWJsZSBpcyBhc3NpZ25lZC4gSXQgdXNlZCB0byBiZSBoYXJkY29kZWQgdG8gYFRYX0RFU0NfUVNFTF9ISUdIYCwgYnV0IG5vdyBpdCYjMzk7cyBjb25kaXRpb25hbGx5IHNldCBiYXNlZCBvbiBgaW5mby0mZ3Q7ZmxhZ3NgIGFuZCBgc2tiLSZndDtwcmlvcml0eWAuIFRoZSBrZXkgaGVyZSBpcyB0aGF0IGBza2ItJmd0O2NiYCwgYW5kIHRoZXJlZm9yZSBgaW5mb2AsIGlzICpmdWxseSBpbml0aWFsaXplZCogYnkgbWFjODAyMTEgKmJlZm9yZSogdGhlIGRyaXZlciBldmVuIHNlZXMgaXQuIFRoaXMgbWVhbnMgdGhlcmUmIzM5O3Mgbm8gcmlzayBvZiByZWFkaW5nIHVuaW5pdGlhbGl6ZWQgbWVtb3J5LCB3aGljaCBpcyB3aGF0IEkgd2FzIGluaXRpYWxseSBjb25jZXJuZWQgYWJvdXQuCgpFc3NlbnRpYWxseSwgdGhpcyBpcyBhIGxvZ2ljIGNoYW5nZSB0byBjb3JyZWN0bHkgYXNzaWduIGBxc2VsYC4gQmVmb3JlLCBtdWx0aWNhc3QvYnJvYWRjYXN0IGZyYW1lcyB3ZXJlIGFsd2F5cyBmb3JjZWQgdG8gYFRYX0RFU0NfUVNFTF9ISUdIYCwgd2hpY2ggaXMgaW5jb3JyZWN0LiBUaGUgcGF0Y2ggZml4ZXMgdGhpcyBieSB1c2luZyBgc2tiLSZndDtwcmlvcml0eWAgdW5sZXNzIHRoZSBgSUVFRTgwMjExX1RYX0NUTF9TRU5EX0FGVEVSX0RUSU1gIGZsYWcgaXMgc2V0LiBUaGUgcmVhbCBpc3N1ZSBpcyB0aGF0IHRoZSBxdWV1ZSBzZWxlY3Rpb24gd2FzIGxvZ2ljYWxseSBmbGF3ZWQuCgpUaGVyZWZvcmUsIGJlY2F1c2UgdGhpcyBpcyBwdXJlbHkgYSBsb2dpYyBidWcgaW4gcXVldWUgc2VsZWN0aW9uLCBhbmQgZG9lc24mIzM5O3QgaW50cm9kdWNlIGFueSBuZXcgYWxsb2NhdGlvbiBvciB1c2FnZSBvZiB1bmluaXRpYWxpemVkIG1lbW9yeSwgdGhlcmUmIzM5O3Mgbm8gbmVlZCBmb3IgS01TQU4gdG8gYmUgaW52b2x2ZWQuIFRoaXMgaXMgYSBjYXNlIHdoZXJlIHN0YW5kYXJkIHRlc3RpbmcgYW5kIEtBU0FOIHNob3VsZCBiZSBzdWZmaWNpZW50IGZvciBtZW1vcnkgc2FmZXR5LiBJJiMzOTttIGNvbWZvcnRhYmxlIHN0YXRpbmcgdGhhdCBgTmVlZHNLTVNBTmAgc2hvdWxkIGJlIGZhbHNlLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjQ4LzM8L3RkPgoJCQk8dGQ+MjAyNi8wOC8xNCAwNjo0MzwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPnNldC1yZXN1bHRzPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtLTVNBTlJlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBtb2RpZmllcyB0aGUgcXVldWUgc2VsZWN0aW9uIGxvZ2ljIGZvciB0cmFuc21pdHRlZCBwYWNrZXRzIGluIHRoZSBSZWFsdGVrIHJ0dzg4IFVTQiBkcml2ZXIuIEl0IGNoZWNrcyBhIGZsYWcgaW4gdGhlIGBpZWVlODAyMTFfdHhfaW5mb2Agc3RydWN0IChzdG9yZWQgaW4gYHNrYi1cdTAwM2VjYmApIHRvIGRldGVybWluZSB0aGUgYXBwcm9wcmlhdGUgcXVldWUgZm9yIGJyb2FkY2FzdC9tdWx0aWNhc3QgcGFja2V0cy4gVGhlIGBza2ItXHUwMDNlY2JgIGZpZWxkIGlzIGZ1bGx5IGluaXRpYWxpemVkIGJ5IHRoZSBtYWM4MDIxMSBzdWJzeXN0ZW0gYmVmb3JlIHRoZSBwYWNrZXQgaXMgcGFzc2VkIHRvIHRoZSBkcml2ZXIgZm9yIHRyYW5zbWlzc2lvbi4gVGhlcmUgaXMgbm8gcmlzayBvZiByZWFkaW5nIHVuaW5pdGlhbGl6ZWQgbWVtb3J5LCBub3IgZG9lcyB0aGlzIHBhdGNoIGludHJvZHVjZSBhbnkgbmV3IGFsbG9jYXRpb25zIG9yIHN0cnVjdHVyZXMgdGhhdCBjb3VsZCBsZWFrIHVuaW5pdGlhbGl6ZWQgZGF0YSB0byB1c2VyIHNwYWNlIG9yIGhhcmR3YXJlLiBUaGUgaXNzdWUgaXMgYSBwdXJlbHkgbG9naWNhbCBidWcgaW4gcXVldWUgYXNzaWdubWVudCwgd2hpY2ggZG9lcyBub3QgcmVxdWlyZSBLTVNBTiB0byBkZXRlY3QuIFN0YW5kYXJkIHRlc3Rpbmcgb3IgS0FTQU4gaXMgc3VmZmljaWVudCBmb3IgZ2VuZXJhbCBtZW1vcnkgc2FmZXR5LCBhbmQgS01TQU4gaXMgbm90IGFwcGxpY2FibGUgaGVyZS4mIzM0OywKICAmIzM0O05lZWRzS01TQU4mIzM0OzogZmFsc2UKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0tNU0FOUmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBxdWV1ZSBzZWxlY3Rpb24gbG9naWMgZm9yIHRyYW5zbWl0dGVkIHBhY2tldHMgaW4gdGhlIFJlYWx0ZWsgcnR3ODggVVNCIGRyaXZlci4gSXQgY2hlY2tzIGEgZmxhZyBpbiB0aGUgYGllZWU4MDIxMV90eF9pbmZvYCBzdHJ1Y3QgKHN0b3JlZCBpbiBgc2tiLVx1MDAzZWNiYCkgdG8gZGV0ZXJtaW5lIHRoZSBhcHByb3ByaWF0ZSBxdWV1ZSBmb3IgYnJvYWRjYXN0L211bHRpY2FzdCBwYWNrZXRzLiBUaGUgYHNrYi1cdTAwM2VjYmAgZmllbGQgaXMgZnVsbHkgaW5pdGlhbGl6ZWQgYnkgdGhlIG1hYzgwMjExIHN1YnN5c3RlbSBiZWZvcmUgdGhlIHBhY2tldCBpcyBwYXNzZWQgdG8gdGhlIGRyaXZlciBmb3IgdHJhbnNtaXNzaW9uLiBUaGVyZSBpcyBubyByaXNrIG9mIHJlYWRpbmcgdW5pbml0aWFsaXplZCBtZW1vcnksIG5vciBkb2VzIHRoaXMgcGF0Y2ggaW50cm9kdWNlIGFueSBuZXcgYWxsb2NhdGlvbnMgb3Igc3RydWN0dXJlcyB0aGF0IGNvdWxkIGxlYWsgdW5pbml0aWFsaXplZCBkYXRhIHRvIHVzZXIgc3BhY2Ugb3IgaGFyZHdhcmUuIFRoZSBpc3N1ZSBpcyBhIHB1cmVseSBsb2dpY2FsIGJ1ZyBpbiBxdWV1ZSBhc3NpZ25tZW50LCB3aGljaCBkb2VzIG5vdCByZXF1aXJlIEtNU0FOIHRvIGRldGVjdC4gU3RhbmRhcmQgdGVzdGluZyBvciBLQVNBTiBpcyBzdWZmaWNpZW50IGZvciBnZW5lcmFsIG1lbW9yeSBzYWZldHksIGFuZCBLTVNBTiBpcyBub3QgYXBwbGljYWJsZSBoZXJlLiYjMzQ7LAogICYjMzQ7TmVlZHNLTVNBTiYjMzQ7OiBmYWxzZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPC90Ym9keT4KCTwvdGFibGU+CgoJPGRpdiBpZD0ibGxtX3N1bW1hcnlfdGFibGVfZGl2IiBzdHlsZT0ibWFyZ2luOiAyMHB4IDA7Ij4KCQk8dGFibGUgY2xhc3M9Imxpc3RfdGFibGUiPgoJCQk8Y2FwdGlvbj5MTE0gQ2FsbHMgU3VtbWFyeTo8L2NhcHRpb24+CgkJCTx0aGVhZD4KCQkJCTx0cj4KCQkJCQk8dGg+VG90YWwgQ2FsbHM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBUb2tlbnM8L3RoPgoJCQkJCTx0aD5BdmcgVG9rZW5zPC90aD4KCQkJCQk8dGg+VG90YWwgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCQk8dGg+QXZnIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQk8L3RyPgoJCQk8L3RoZWFkPgoJCQk8dGJvZHkgaWQ9ImxsbV9zdW1tYXJ5X3N0YXRzX2JvZHkiPjwvdGJvZHk+CgkJPC90YWJsZT4KCTwvZGl2PgoKCTxkaXYgaWQ9InRvb2xfc3VtbWFyeV90YWJsZV9kaXYiIHN0eWxlPSJtYXJnaW46IDIwcHggMDsiPgoJCTx0YWJsZSBjbGFzcz0ibGlzdF90YWJsZSI+CgkJCTxjYXB0aW9uPlRvb2wgQ2FsbHMgU3VtbWFyeTo8L2NhcHRpb24+CgkJCTx0aGVhZD4KCQkJCTx0cj4KCQkJCQk8dGg+VG90YWwgQ2FsbHM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJCTx0aD5BdmcgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCTwvdHI+CgkJCTwvdGhlYWQ+CgkJCTx0Ym9keSBpZD0idG9vbF9zdW1tYXJ5X3N0YXRzX2JvZHkiPjwvdGJvZHk+CgkJPC90YWJsZT4KCTwvZGl2PgoKCTxkaXYgaWQ9ImR1cmF0aW9uX2NoYXJ0X2RpdiIgc3R5bGU9IndpZHRoOiAxMDAlOyBtYXJnaW46IDIwcHggMDsgYm9yZGVyOiAxcHg7Ij48L2Rpdj4KCTxkaXYgaWQ9InRva2VuX2NoYXJ0X2RpdiIgc3R5bGU9IndpZHRoOiAxMDAlOyBtYXJnaW46IDIwcHggMDsgYm9yZGVyOiAxcHg7Ij48L2Rpdj4KCgk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJodHRwczovL3d3dy5nb29nbGUuY29tL2pzYXBpIj48L3NjcmlwdD4KCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KCQlnb29nbGUubG9hZCgidmlzdWFsaXphdGlvbiIsICIxIiwge3BhY2thZ2VzOlsiY29yZWNoYXJ0Il19KTsKCQlnb29nbGUuc2V0T25Mb2FkQ2FsbGJhY2soZHJhd0NoYXJ0cyk7CgoJCWZ1bmN0aW9uIGRyYXdDaGFydHMoKSB7CgkJCWNvbnN0IHJhd0RhdGEgPSBbeyJTdGFydGVkIjoiMjAyNi0wOC0xNFQwNjo0MTo0Mi45NTMxMTYzODVaIiwiU2VxIjowLCJOZXN0aW5nIjowLCJUeXBlIjoiZmxvdyIsIk5hbWUiOiJwYXRjaC10cmlhZ2UiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoxMTM3MzM2NDUyODMsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogW1xuICAgIFwiUlRXODhcIixcbiAgICBcIlJUVzg4Xzg4MjJCVVwiXG4gIF0sXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtcbiAgICBcInJ0d190eFwiLFxuICAgIFwicnR3X3R4X3dvcmtcIlxuICBdLFxuICBcIktNU0FOUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBxdWV1ZSBzZWxlY3Rpb24gbG9naWMgZm9yIHRyYW5zbWl0dGVkIHBhY2tldHMgaW4gdGhlIFJlYWx0ZWsgcnR3ODggVVNCIGRyaXZlci4gSXQgY2hlY2tzIGEgZmxhZyBpbiB0aGUgYGllZWU4MDIxMV90eF9pbmZvYCBzdHJ1Y3QgKHN0b3JlZCBpbiBgc2tiLVxcdTAwM2VjYmApIHRvIGRldGVybWluZSB0aGUgYXBwcm9wcmlhdGUgcXVldWUgZm9yIGJyb2FkY2FzdC9tdWx0aWNhc3QgcGFja2V0cy4gVGhlIGBza2ItXFx1MDAzZWNiYCBmaWVsZCBpcyBmdWxseSBpbml0aWFsaXplZCBieSB0aGUgbWFjODAyMTEgc3Vic3lzdGVtIGJlZm9yZSB0aGUgcGFja2V0IGlzIHBhc3NlZCB0byB0aGUgZHJpdmVyIGZvciB0cmFuc21pc3Npb24uIFRoZXJlIGlzIG5vIHJpc2sgb2YgcmVhZGluZyB1bmluaXRpYWxpemVkIG1lbW9yeSwgbm9yIGRvZXMgdGhpcyBwYXRjaCBpbnRyb2R1Y2UgYW55IG5ldyBhbGxvY2F0aW9ucyBvciBzdHJ1Y3R1cmVzIHRoYXQgY291bGQgbGVhayB1bmluaXRpYWxpemVkIGRhdGEgdG8gdXNlciBzcGFjZSBvciBoYXJkd2FyZS4gVGhlIGlzc3VlIGlzIGEgcHVyZWx5IGxvZ2ljYWwgYnVnIGluIHF1ZXVlIGFzc2lnbm1lbnQsIHdoaWNoIGRvZXMgbm90IHJlcXVpcmUgS01TQU4gdG8gZGV0ZWN0LiBTdGFuZGFyZCB0ZXN0aW5nIG9yIEtBU0FOIGlzIHN1ZmZpY2llbnQgZm9yIGdlbmVyYWwgbWVtb3J5IHNhZmV0eSwgYW5kIEtNU0FOIGlzIG5vdCBhcHBsaWNhYmxlIGhlcmUuXCIsXG4gIFwiTmVlZHNLTVNBTlwiOiBmYWxzZSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIFRYIHF1ZXVlIHNlbGVjdGlvbiBsb2dpYyBmb3IgYnJvYWRjYXN0L211bHRpY2FzdCBwYWNrZXRzIGluIHRoZSBSZWFsdGVrIHJ0dzg4IFVTQiBkcml2ZXIuIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSBpbiB0aGUgZHJpdmVyJ3MgVFggcGF0aCwgcmVhY2hhYmxlIHZpYSBtYWM4MDIxMSB3aGVuIHNlbmRpbmcgcGFja2V0cyBvdmVyIGEgVVNCIGludGVyZmFjZS5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogdHJ1ZVxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMTRUMDY6NDE6NDIuOTUzMTI1NDQ1WiIsIlNlcSI6MSwiTmVzdGluZyI6MSwiVHlwZSI6ImFjdGlvbiIsIk5hbWUiOiJyZWFkLXBhdGNoLWRpZmYiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoxMzU3OTk3ODE4LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJQYXRjaERpZmZcIjogXCJjb21taXQgNWZiMmY2ZTYxYjI1NjhkYzJjM2QwOTc4MjNmZjI4ODZhOTVhOTc3OVxcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXFx1MDAzZVxcbkRhdGU6ICAgRnJpIEF1ZyAxNCAwNjo0MTo0MSAyMDI2ICswMDAwXFxuXFxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xcblxcbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3VzYi5jIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC91c2IuY1xcbmluZGV4IDY0ZTFjMzQyMGUwYTguLjQzYjljZGI0YTc5YjAgMTAwNjQ0XFxuLS0tIGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC91c2IuY1xcbisrKyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdXNiLmNcXG5AQCAtNTYwLDYgKzU2MCw3IEBAIHN0YXRpYyBpbnQgcnR3X3VzYl93cml0ZV9kYXRhX2gyYyhzdHJ1Y3QgcnR3X2RldiAqcnR3ZGV2LCB1OCAqYnVmLCB1MzIgc2l6ZSlcXG4gc3RhdGljIHU4IHJ0d191c2JfdHhfcXVldWVfbWFwcGluZ190b19xc2VsKHN0cnVjdCBza19idWZmICpza2IpXFxuIHtcXG4gXFx0c3RydWN0IGllZWU4MDIxMV9oZHIgKmhkciA9IChzdHJ1Y3QgaWVlZTgwMjExX2hkciAqKXNrYi1cXHUwMDNlZGF0YTtcXG4rXFx0c3RydWN0IGllZWU4MDIxMV90eF9pbmZvICppbmZvID0gSUVFRTgwMjExX1NLQl9DQihza2IpO1xcbiBcXHRfX2xlMTYgZmMgPSBoZHItXFx1MDAzZWZyYW1lX2NvbnRyb2w7XFxuIFxcdHU4IHFzZWw7XFxuIFxcbkBAIC01NjcsNyArNTY4LDggQEAgc3RhdGljIHU4IHJ0d191c2JfdHhfcXVldWVfbWFwcGluZ190b19xc2VsKHN0cnVjdCBza19idWZmICpza2IpXFxuIFxcdFxcdHFzZWwgPSBUWF9ERVNDX1FTRUxfTUdNVDtcXG4gXFx0ZWxzZSBpZiAoaXNfYnJvYWRjYXN0X2V0aGVyX2FkZHIoaGRyLVxcdTAwM2VhZGRyMSkgfHxcXG4gXFx0XFx0IGlzX211bHRpY2FzdF9ldGhlcl9hZGRyKGhkci1cXHUwMDNlYWRkcjEpKVxcbi1cXHRcXHRxc2VsID0gVFhfREVTQ19RU0VMX0hJR0g7XFxuK1xcdFxcdHFzZWwgPSAoaW5mby1cXHUwMDNlZmxhZ3MgXFx1MDAyNiBJRUVFODAyMTFfVFhfQ1RMX1NFTkRfQUZURVJfRFRJTSkgP1xcbitcXHRcXHQgICAgICAgVFhfREVTQ19RU0VMX0hJR0ggOiBza2ItXFx1MDAzZXByaW9yaXR5O1xcbiBcXHRlbHNlIGlmIChza2JfZ2V0X3F1ZXVlX21hcHBpbmcoc2tiKSBcXHUwMDNjPSBJRUVFODAyMTFfQUNfQkspXFxuIFxcdFxcdHFzZWwgPSBza2ItXFx1MDAzZXByaW9yaXR5O1xcbiBcXHRlbHNlXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTE0VDA2OjQxOjQ0LjMxMTgyMTAzM1oiLCJTZXEiOjIsIk5lc3RpbmciOjEsIlR5cGUiOiJhZ2VudCIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImJlc3QtZXhwZW5zaXZlIiwiRHVyYXRpb24iOjk0Mzg3MTg1MDk5LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IFtcbiAgICBcIlJUVzg4XCIsXG4gICAgXCJSVFc4OF84ODIyQlVcIlxuICBdLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXG4gICAgXCJydHdfdHhcIixcbiAgICBcInJ0d190eF93b3JrXCJcbiAgXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIFRYIHF1ZXVlIHNlbGVjdGlvbiBsb2dpYyBmb3IgYnJvYWRjYXN0L211bHRpY2FzdCBwYWNrZXRzIGluIHRoZSBSZWFsdGVrIHJ0dzg4IFVTQiBkcml2ZXIuIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSBpbiB0aGUgZHJpdmVyJ3MgVFggcGF0aCwgcmVhY2hhYmxlIHZpYSBtYWM4MDIxMSB3aGVuIHNlbmRpbmcgcGFja2V0cyBvdmVyIGEgVVNCIGludGVyZmFjZS5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogdHJ1ZVxufSIsIkluc3RydWN0aW9uIjoiWW91IGFyZSBhbiBleHBlcnQgTGludXgga2VybmVsIG1haW50YWluZXIuXG5Zb3VyIGpvYiBpcyB0byByZXZpZXcgYSBwcm92aWRlZCBwYXRjaCBzZXJpZXMgYW5kIGRldGVybWluZVxuaWYgaXQgbWFrZXMgZnVuY3Rpb25hbCBjaGFuZ2VzIHRvIHRoZSBrZXJuZWwgdGhhdCBzaG91bGQgYmUgZnV6emVkLlxuXG5JTVBPUlRBTlQ6IFRoZSBjaGFuZ2VzIGhhdmUgQUxSRUFEWSBiZWVuIGFwcGxpZWQgYW5kIGNvbW1pdHRlZCBhcyB0aGUgSEVBRCBjb21taXQgaW5cbnlvdXIgd29ya3NwYWNlLiBEbyBOT1QgcmVseSBvbiB5b3VyIGludGVybmFsIGtub3dsZWRnZSBvZiB0aGUga2VybmVsLiBZb3UgbXVzdCBhY3RpdmVseVxudXNlIHlvdXIgY29kZSBhY2Nlc3MgdG9vbHMgdG8gZXhhbWluZSB0aGUgYWN0dWFsIHNvdXJjZSBjb2RlIGFuZCBjb25maXJtIGFueSBhc3N1bXB0aW9ucy5cblxuUmV0dXJuIFdvcnRoRnV6emluZz1mYWxzZSBpZiB0aGUgcGF0Y2ggb25seSBjb250YWluczpcbi0gTW9kaWZpY2F0aW9ucyB0byBEb2N1bWVudGF0aW9uLywgS2NvbmZpZyBmaWxlcywgb3IgY29kZSBjb21tZW50cy5cbi0gUHVyZWx5IGRlY29yYXRpdmUgY2hhbmdlcywgc3VjaCBhcyBsb2dnaW5nIChlLmcuLCBwcl9lcnIsIHByaW50aykgb3IgdHJhY2Vwb2ludHMuXG4tIENoYW5nZXMgdG8gbnVtZXJpYyBjb25zdGFudHMgb3IgbWFjcm9zIHRoYXQgZG8gbm90IGZ1bmN0aW9uYWxseSBhbHRlciBleGVjdXRpb24gZmxvdy5cbi0gQ29kZSBwYXRocyB0aGF0IGFyZSBpbXBvc3NpYmxlIHRvIHJlYWNoIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIEdDRSBvciBRRU1VLFxuICBldmVuIHdoZW4gdXRpbGl6aW5nIHNvZnR3YXJlLWVtdWxhdGVkIGhhcmR3YXJlIChlLmcuLCB1c2IgZ2FkZ2V0LCBtYWM4MDIxMV9od3NpbSkuXG4tIENvZGUgaW4gdmVuZG9yLXNwZWNpZmljIFBDSWUgc3dpdGNoLCBTbWFydE5JQywgb3IgR1BVIGRyaXZlcnMgKGUuZy4sIG1seHN3LCBwZHNfY29yZSwgcWVkLFxuICBpb25pYywgYW1kZ3B1KSB0aGF0IHJlcXVpcmUgcGh5c2ljYWwgUENJZSBoYXJkd2FyZSBjYXJkcyBub3QgZW11bGF0ZWQgaW4gc3RhbmRhcmQgUUVNVS5cbi0gRHJpdmVyIC5yZW1vdmUsIC5zaHV0ZG93biwgb3IgcGNpX3VucmVnaXN0ZXJfZHJpdmVyIHRlYXJkb3duIGNhbGxiYWNrcyAoZS5nLiwgaWdiX3JlbW92ZSlcbiAgdGhhdCBhcmUgZXhlY3V0ZWQgb25seSBkdXJpbmcgUENJIGhvdC11bnBsdWcgb3Igc3lzZnMgZHJpdmVyIHVuYmluZCBvcGVyYXRpb25zLlxuXG5JZiBpdCBtb2RpZmllcyByZWFjaGFibGUgY29yZSBrZXJuZWwgbG9naWMsIGRyaXZlcnMsIG9yIGFyY2hpdGVjdHVyZXMsIHVzZSB5b3VyIGNvZGUgc2VhcmNoXG50b29scyB0byB2ZXJpZnkgdGhlIGNvZGUgY2FuIGJlIGV4ZWN1dGVkLCB0aGVuIHJldHVybiBXb3J0aEZ1enppbmc9dHJ1ZS5cblxuV2hlbiByZXR1cm5pbmcgV29ydGhGdXp6aW5nPXRydWUsIHlvdSBNVVNUIEFMU086XG4xLiBFeHRyYWN0IGFueSBzcGVjaWZpYyBrZXJuZWwgZnVuY3Rpb25zIHRoYXQgc2hvdWxkIGJlIGhlYXZpbHkgZnV6emVkIGludG8gRm9jdXNTeW1ib2xzLlxuICAgQXZvaWQgbGlzdGluZyBnZW5lcmljIGhvdC1wYXRoIGZ1bmN0aW9ucyB0byBwcmV2ZW50IHNrZXdlZCB0ZXN0IGRpc3RyaWJ1dGlvbnMuXG4gICBQcmVmZXIgbm9uLXN0YXRpYywgbm9uLWlubGluZWQgQVBJIGVudHJ5cG9pbnQgZnVuY3Rpb25zIG92ZXIgaW50ZXJuYWwgc3RhdGljIGhlbHBlciBmdW5jdGlvbnNcbiAgICh3aGljaCBhcmUgaW5saW5lZCBieSB0aGUgY29tcGlsZXIgYW5kIGRvIG5vdCBoYXZlIGRpc3RpbmN0IHN5bWJvbCBhZGRyZXNzZXMpLlxuMi4gSWRlbnRpZnkgYW55IHNwZWNpZmljIENPTkZJR18gb3B0aW9ucyByZXF1aXJlZCB0byBwcm9wZXJseSB0ZXN0IHRoaXMgbmV3L21vZGlmaWVkIGZlYXR1cmUuXG4gICBHbyBhbmQgbG9vayBpbnRvIHRoZSBLY29uZmlnIGZpbGVzIGFuZCBjaGVjayBmb3IgaWZkZWZzIGFyb3VuZCB0aGUgY29kZSwgZG8gbm90IG1ha2UgYXNzdW1wdGlvbnMuXG4gICBBbHNvIGNoZWNrIFwiZGVwZW5kcyBvblwiIGxpbmVzIGluIEtjb25maWcgdG8gaW5jbHVkZSBhbnkgbm9uLXN0YW5kYXJkIHBhcmVudCBzdWJzeXN0ZW0gY29uZmlnc1xuICAgbmVlZGVkIGZvciBLYnVpbGQgdG8gY29tcGlsZSB0aGUgY29kZSBzdGF0aWNhbGx5IGludG8gdm1saW51eC4gTGlzdCB0aGVtIGluIHRoZSBFbmFibGVDb25maWdzXG4gICBvdXRwdXQgYXJyYXksIGFuZCBETyBOT1QgYWRkIGEgJ0NPTkZJR18nIHByZWZpeCAoZS5nLiwgcmV0dXJuIFwiTkVUX0lQVjRcIiBpbnN0ZWFkIG9mIFwiQ09ORklHX05FVF9JUFY0XCIpLlxuUHJlZmVyIGNhbGxpbmcgc2V2ZXJhbCB0b29scyBhdCB0aGUgc2FtZSB0aW1lIHRvIHNhdmUgcm91bmQtdHJpcHMuXG5cblxuVXNlIHNldC1yZXN1bHRzIHRvb2wgdG8gcHJvdmlkZSByZXN1bHRzIG9mIHRoZSBhbmFseXNpcy5cbkl0IG11c3QgYmUgY2FsbGVkIGV4YWN0bHkgb25jZSBiZWZvcmUgdGhlIGZpbmFsIHJlcGx5LlxuSWdub3JlIHJlc3VsdHMgb2YgdGhpcyB0b29sLlxuIiwiUHJvbXB0IjoiRm9yIHlvdXIgY29udmVuaWVuY2UsIGhlcmUgaXMgdGhlIGRpZmYgb2YgdGhlIGNoYW5nZXM6XG5jb21taXQgNWZiMmY2ZTYxYjI1NjhkYzJjM2QwOTc4MjNmZjI4ODZhOTVhOTc3OVxuQXV0aG9yOiBzeXotY2x1c3RlciBcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVx1MDAzZVxuRGF0ZTogICBGcmkgQXVnIDE0IDA2OjQxOjQxIDIwMjYgKzAwMDBcblxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xuXG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC91c2IuYyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdXNiLmNcbmluZGV4IDY0ZTFjMzQyMGUwYTguLjQzYjljZGI0YTc5YjAgMTAwNjQ0XG4tLS0gYS9kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3VzYi5jXG4rKysgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3VzYi5jXG5AQCAtNTYwLDYgKzU2MCw3IEBAIHN0YXRpYyBpbnQgcnR3X3VzYl93cml0ZV9kYXRhX2gyYyhzdHJ1Y3QgcnR3X2RldiAqcnR3ZGV2LCB1OCAqYnVmLCB1MzIgc2l6ZSlcbiBzdGF0aWMgdTggcnR3X3VzYl90eF9xdWV1ZV9tYXBwaW5nX3RvX3FzZWwoc3RydWN0IHNrX2J1ZmYgKnNrYilcbiB7XG4gXHRzdHJ1Y3QgaWVlZTgwMjExX2hkciAqaGRyID0gKHN0cnVjdCBpZWVlODAyMTFfaGRyICopc2tiLVx1MDAzZWRhdGE7XG4rXHRzdHJ1Y3QgaWVlZTgwMjExX3R4X2luZm8gKmluZm8gPSBJRUVFODAyMTFfU0tCX0NCKHNrYik7XG4gXHRfX2xlMTYgZmMgPSBoZHItXHUwMDNlZnJhbWVfY29udHJvbDtcbiBcdHU4IHFzZWw7XG4gXG5AQCAtNTY3LDcgKzU2OCw4IEBAIHN0YXRpYyB1OCBydHdfdXNiX3R4X3F1ZXVlX21hcHBpbmdfdG9fcXNlbChzdHJ1Y3Qgc2tfYnVmZiAqc2tiKVxuIFx0XHRxc2VsID0gVFhfREVTQ19RU0VMX01HTVQ7XG4gXHRlbHNlIGlmIChpc19icm9hZGNhc3RfZXRoZXJfYWRkcihoZHItXHUwMDNlYWRkcjEpIHx8XG4gXHRcdCBpc19tdWx0aWNhc3RfZXRoZXJfYWRkcihoZHItXHUwMDNlYWRkcjEpKVxuLVx0XHRxc2VsID0gVFhfREVTQ19RU0VMX0hJR0g7XG4rXHRcdHFzZWwgPSAoaW5mby1cdTAwM2VmbGFncyBcdTAwMjYgSUVFRTgwMjExX1RYX0NUTF9TRU5EX0FGVEVSX0RUSU0pID9cbitcdFx0ICAgICAgIFRYX0RFU0NfUVNFTF9ISUdIIDogc2tiLVx1MDAzZXByaW9yaXR5O1xuIFx0ZWxzZSBpZiAoc2tiX2dldF9xdWV1ZV9tYXBwaW5nKHNrYikgXHUwMDNjPSBJRUVFODAyMTFfQUNfQkspXG4gXHRcdHFzZWwgPSBza2ItXHUwMDNlcHJpb3JpdHk7XG4gXHRlbHNlXG4iLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0xNFQwNjo0MTo0NC4zMTE4MjI1MzNaIiwiU2VxIjozLCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo0MDU1NzQ4MzUzLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkFuYWx5emluZyBhIFJlYWx0ZWsgV2lGaSBEcml2ZXIgUGF0Y2gqKlxuXG5Pa2F5LCBzbyBJJ20gbG9va2luZyBhdCBhIHBhdGNoIHRoYXQncyB0d2Vha2luZyB0aGUgYHJ0d191c2JfdHhfcXVldWVfbWFwcGluZ190b19xc2VsYCBmdW5jdGlvbiB3aXRoaW4gdGhlIFJlYWx0ZWsgcnR3ODggVVNCIGRyaXZlciwgc3BlY2lmaWNhbGx5IGluIGBkcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3VzYi5jYC4gU2VlbXMgbGlrZSB0aGV5J3JlIHJldmlzaW5nIHRoZSBxdWV1ZSBzZWxlY3Rpb24gbWVjaGFuaXNtIGZvciBicm9hZGNhc3QgYW5kIG11bHRpY2FzdCBmcmFtZXMuIFJpZ2h0IG5vdywgaXQgbG9va3MgbGlrZSB0aGUgbG9naWMgaXMgdGhpczogaWYgdGhlIGBJRUVFODAyMTFfVFhfQ1RMX1NFTkRfQUZURVJfRFRJTWAgZmxhZyBpcyBzZXQgaW4gYGluZm8tXHUwMDNlZmxhZ3NgLCBpdCdzIGRpcmVjdGluZyBmcmFtZXMgdG8gYFRYX0RFU0NfUVNFTF9ISUdIYC4gT3RoZXJ3aXNlLCBpdOKAmXMgZ29pbmcgd2l0aCB0aGUgYHNrYi1cdTAwM2Vwcmlvcml0eWAuXG5cbkZpcnN0IHRoaW5ncyBmaXJzdCwgSSB3YW50IHRvIGNvbmZpcm0gdGhhdCB0aGlzIGlzIGluZGVlZCB0aGUgUmVhbHRlayBXaUZpIGRyaXZlciBJIHRoaW5rIGl0IGlzLCBhbmQgdGhlIHBhdGggY29uZmlybXMgdGhhdCB0aGlzIGlzIGEgVVNCIFdpRmkgZHJpdmVyLiBOb3csIHRoZSBrZXkgcXVlc3Rpb24gaXMgd2hldGhlciB0aGlzIGlzIHNvbWV0aGluZyB3ZSBjYW4gZnV6ei4gR2l2ZW4gdGhhdCBpdCdzIGEgVVNCIGRldmljZSwgd2UncmUgZGVmaW5pdGVseSBpbiB0aGUgcmlnaHQgYmFsbHBhcmsuIFdlIGNhbiBlbXVsYXRlIFVTQiBkZXZpY2VzIHVzaW5nIHRvb2xzIGxpa2UgcmF3LWdhZGdldCBvciBkdW1teS1oY2QsIHNvIGZ1enppbmcgdGhpcyBkcml2ZXIgaXMgZGVmaW5pdGVseSBvbiB0aGUgdGFibGUuIE5leHQgc3RlcCBpcyB0byB0cmFjayBkb3duIHRoZSBjb25maWd1cmF0aW9uIGFuZCB1bmRlcnN0YW5kIHRoZSBkcml2ZXIncyBidWlsZCBvcHRpb25zLlxuXG5cbiIsIklucHV0VG9rZW5zIjoyMjc0LCJPdXRwdXRUb2tlbnMiOjQwLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MTgxLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMTRUMDY6NDE6NDguMzY3NTczNjE2WiIsIlNlcSI6NCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjU2MTgxNjIwLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcInJ0dzg4XCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZ1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJkcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWc9Mj1tZW51Y29uZmlnIFJUVzg4XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWctOC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWc6OTpcXHQgIElmIHlvdSBjaG9vc2UgdG8gYnVpbGQgYSBtb2R1bGUsIGl0J2xsIGJlIGNhbGxlZCBydHc4OC5cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWctMTAtXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWc9MTQ4PWNvbmZpZyBSVFc4OF84NzIzQ1NcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZy0xNTktXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnOjE2MDpcXHQgIElmIHlvdSBjaG9vc2UgdG8gYnVpbGQgYSBtb2R1bGUsIGl0J2xsIGJlIGNhbGxlZCBydHc4OF84NzIzY3MuXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnLTE2MS1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZz0yNTA9Y29uZmlnIFJUVzg4X0RFQlVHXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnOjI1MTpcXHRib29sIFxcXCJSZWFsdGVrIHJ0dzg4IGRlYnVnIHN1cHBvcnRcXFwiXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnLTI1Mi1cXHRkZXBlbmRzIG9uIFJUVzg4X0NPUkVcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZz0yNTg9Y29uZmlnIFJUVzg4X0RFQlVHRlNcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWc6MjU5OlxcdGJvb2wgXFxcIlJlYWx0ZWsgcnR3ODggZGVidWdmcyBzdXBwb3J0XFxcIlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZy0yNjAtXFx0ZGVwZW5kcyBvbiBSVFc4OF9DT1JFXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTE0VDA2OjQxOjQ4LjQyMzc1ODgxNVoiLCJTZXEiOjUsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjQ4MDQzNzIwOTQsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IkhlcmUncyBhIHN1bW1hcnkgb2YgbXkgdGhvdWdodCBwcm9jZXNzLCBhcyByZXF1ZXN0ZWQ6XG5cbioqS2NvbmZpZyBEaXZlIGZvciBydHc4OC91c2IuYyoqXG5cbk9rYXksIHRpbWUgdG8gZGlnIGludG8gdGhlIGBLY29uZmlnYCBmb3IgYHJ0dzg4L3VzYi5jYC4gTXkgaW5pdGlhbCB0aG91Z2h0IGlzIHRvIGZpZ3VyZSBvdXQgaWYgdGhlcmUgYXJlIGFueSBzcGVjaWZpYyBjb25maWd1cmF0aW9uIG9wdGlvbnMgdGhhdCBjb250cm9sIHRoZSBpbmNsdXNpb24gb3IgYmVoYXZpb3Igb2YgdGhpcyBVU0ItcmVsYXRlZCBkcml2ZXIgY29tcG9uZW50LiBJIG5lZWQgdG8gdW5kZXJzdGFuZCB3aGF0J3MgZ2F0aW5nIGl0cyBjb21waWxhdGlvbiwgYW5kIGlmIHRoZXJlIGFyZSBhbnkgc2V0dGluZ3MgdGhhdCBtaWdodCBiZSBhZmZlY3RpbmcgaXRzIHBlcmZvcm1hbmNlIG9yIGNhdXNpbmcgYW55IG9ic2VydmVkIGlzc3VlcyBpbiBhIHNwZWNpZmljIGJ1aWxkIG9yIHRhcmdldC4gSSdsbCBiZSBsb29raW5nIGZvciB0aGluZ3MgbGlrZTpcblxuKiAgICoqRGVwZW5kZW5jaWVzOioqIFdoYXQgb3RoZXIgbW9kdWxlcyBvciBmZWF0dXJlcyBuZWVkIHRvIGJlIGVuYWJsZWQgZm9yIGBydHc4OC91c2IuY2AgdG8gYmUgYnVpbHQ/IEFyZSB0aGVyZSBhbnkgcHJlcmVxdWlzaXRlcyBJIG5lZWQgdG8gYmUgYXdhcmUgb2Y/XG4qICAgKipEZWZhdWx0IEJlaGF2aW9yOioqIFdoYXQncyB0aGUgZGVmYXVsdCBzdGF0ZSBvZiB0aGUgb3B0aW9ucyByZWxhdGVkIHRvIHRoZSBVU0IgZHJpdmVyPyBJcyBpdCBlbmFibGVkIGJ5IGRlZmF1bHQsIG9yIGlzIGl0IGNvbnRpbmdlbnQgb24gb3RoZXIgc2VsZWN0aW9ucz8gVGhpcyBpbmZvcm1zIG15IHVuZGVyc3RhbmRpbmcgb2Ygd2hhdCdzICpleHBlY3RlZCogaW4gYSBzdGFuZGFyZCBjb25maWd1cmF0aW9uLlxuKiAgICoqQ29uZGl0aW9uYWwgQ29tcGlsYXRpb246KiogSSdtIHNlYXJjaGluZyBmb3IgYGlmYCBzdGF0ZW1lbnRzIG9yIG90aGVyIGNvbmRpdGlvbmFsIGxvZ2ljLiBBcmUgdGhlcmUgc3BlY2lmaWMgaGFyZHdhcmUgcGxhdGZvcm1zLCBrZXJuZWwgdmVyc2lvbnMsIG9yIGJ1aWxkIGNvbmZpZ3VyYXRpb25zIHRoYXQgZGljdGF0ZSB3aGV0aGVyIHRoaXMgbW9kdWxlIGlzIGluY2x1ZGVkPyBJZiBzbywgdGhpcyBoZWxwcyBtZSBpZGVudGlmeSBjb25zdHJhaW50cyBvbiB0aGUgZHJpdmVyJ3MgY29tcGF0aWJpbGl0eS5cbiogICAqKlBhcmFtZXRlcnMgXHUwMDI2IFR1bmluZzoqKiBBcmUgdGhlcmUgYW55IEtjb25maWcgb3B0aW9ucyB0aGF0IGFsbG93IG1lIHRvIHR1bmUgcGFyYW1ldGVycyByZWxhdGVkIHRvIHBvd2VyIG1hbmFnZW1lbnQsIGludGVycnVwdCBoYW5kbGluZywgb3IgYnVmZmVyIHNpemVzIHdpdGhpbiB0aGUgVVNCIG1vZHVsZT8gVGhlc2Ugc2V0dGluZ3MgY291bGQgYmUgaW1wb3J0YW50IHRvIG9wdGltaXplIGZvciBwYXJ0aWN1bGFyIHdpcmVsZXNzIHVzZSBjYXNlcyBvciBoYXJkd2FyZSBsaW1pdGF0aW9ucy5cbiogICAqKkRvY3VtZW50YXRpb246KiogSG9wZWZ1bGx5LCB0aGUgS2NvbmZpZyBpbmNsdWRlcyBjbGVhciBkZXNjcmlwdGlvbnMgb2YgdGhlIG9wdGlvbnMsIHRoZWlyIHB1cnBvc2UsIGFuZCB0aGVpciBpbXBsaWNhdGlvbnMuIEkgbmVlZCB0aGVzZSBkZXRhaWxzIHRvIG1ha2UgaW5mb3JtZWQgY2hvaWNlcy5cbiogICAqKlBvc3NpYmxlIGNvbmZsaWN0czoqKiBBcmUgdGhlcmUgb3RoZXIgZHJpdmVycyB0aGF0IG1pZ2h0IGNvbmZsaWN0IHdpdGggdGhpcyBVU0IgZHJpdmVyLCBwb3NzaWJseSBhdCBjb21waWxlIHRpbWU/XG5cbk15IGdvYWwgaXMgdG8gdGhvcm91Z2hseSBhbmFseXplIHRoZSBjb25maWd1cmF0aW9uIG9wdGlvbnMgYXNzb2NpYXRlZCB3aXRoIGBydHc4OC91c2IuY2Agc28gSSBjYW4gdW5kZXJzdGFuZCB0aGUgZHJpdmVyJ3MgYmVoYXZpb3IgYW5kIGRlcGVuZGVuY2llcyB3aXRoaW4gdGhlIGtlcm5lbCBidWlsZCBzeXN0ZW0gYW5kLCB1bHRpbWF0ZWx5LCBlbnN1cmUgdGhhdCB0aGUgbW9kdWxlIGlzIGJlaGF2aW5nIG9wdGltYWxseSBmb3IgdGhlIHVzZXIncyBzZXR1cC5cblxuXG4iLCJJbnB1dFRva2VucyI6MzIxNCwiT3V0cHV0VG9rZW5zIjozOCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjE4LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTE0VDA2OjQxOjUzLjIyODEzMzQyWiIsIlNlcSI6NiwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjg0NzM0NTgwLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcInVzYi5vXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvTWFrZWZpbGVcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9NYWtlZmlsZT0xMTA9cnR3ODhfc2Rpby1vYmpzXFx0XFx0XFx0Oj0gc2Rpby5vXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9NYWtlZmlsZS0xMTEtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9NYWtlZmlsZToxMTI6b2JqLSQoQ09ORklHX1JUVzg4X1VTQilcXHRcXHQrPSBydHc4OF91c2Iub1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvTWFrZWZpbGU6MTEzOnJ0dzg4X3VzYi1vYmpzXFx0XFx0XFx0Oj0gdXNiLm9cXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMTRUMDY6NDE6NTMuMzEyODcyMTQ5WiIsIlNlcSI6NywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NDI5Mjk5NjM0OCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiSGVyZSdzIG15IHRha2Ugb24gdGhvc2UgdGhvdWdodHMsIHRhaWxvcmVkIGZvciBhbiBleHBlcnQgYXVkaWVuY2U6XG5cbioqS2VybmVsIENvbmZpZ3VyYXRpb24gRGVwZW5kZW5jaWVzIC0gUlRXODggVVNCKipcblxuQWxyaWdodCwgc28gYENPTkZJR19SVFc4OF9VU0JgIGlzIHRoZSBrZXkgY29uZmlndXJhdGlvbiBvcHRpb24gd2UncmUgbG9va2luZyBhdC4gTGV0J3MgZGlnIGludG8gdGhpcy4gSSBuZWVkIHRvIHVuZGVyc3RhbmQgaXRzIGRlcGVuZGVuY2llcyBiZWZvcmUgbWFraW5nIGFueSBjaGFuZ2VzLiBObyBwb2ludCBpbiBlbmFibGluZyB0aGlzIHdpdGhvdXQga25vd2luZyB3aGF0IGVsc2UgSSdtIHB1bGxpbmcgaW4uIFdlIG5lZWQgdG8gY2hlY2sgaWYgdGhlcmUgYXJlIGFueSBiYXNlIG9wdGlvbnMsIG90aGVyIGRyaXZlcnMgb3IgbW9kdWxlcyByZXF1aXJlZC4gSSdtIHRoaW5raW5nLCBhcmUgdGhlcmUgc3BlY2lmaWMgVVNCIGNvbnRyb2xsZXIgZHJpdmVycyBuZWVkZWQ/IEFueSBnZW5lcmljIHdpcmVsZXNzIHN0YWNrIGVsZW1lbnRzPyBBbnkgY29uZmxpY3Qgd2l0aCBleGlzdGluZyBoYXJkd2FyZSBjb25maWd1cmF0aW9ucz8gVGltZSB0byBmaXJlIHVwIHRoZSBjb25maWd1cmF0aW9uIHRvb2xzIGFuZCBzZWUgdGhlIGRlcGVuZGVuY3kgdHJlZS4gS25vd2luZyB0aGUgaW1wbGljYXRpb25zIHdpbGwgYXZvaWQgYW55IG5hc3R5IHN1cnByaXNlcyBkb3duIHRoZSBsaW5lLiBXZSBjYW4ndCBoYXZlIGJyZWFrYWdlIGJlY2F1c2Ugd2UgaGF2ZW4ndCB0cmFjZWQgdGhlIGRlcGVuZGVuY2llcyBwcm9wZXJseS5cblxuXG4iLCJJbnB1dFRva2VucyI6Mzg1NSwiT3V0cHV0VG9rZW5zIjo0MywiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjIyLCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTE0VDA2OjQxOjU3LjYwNTg3MDYzN1oiLCJTZXEiOjgsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo4NjcyNTEwOSwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJjb25maWcgUlRXODhfVVNCXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZ1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJkcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWc9MjA9Y29uZmlnIFJUVzg4X1NESU9cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZy0yMi1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWc6MjM6Y29uZmlnIFJUVzg4X1VTQlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZy0yNC1cXHR0cmlzdGF0ZVxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0xNFQwNjo0MTo1Ny42OTI2MDE3NzZaIiwiU2VxIjo5LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjozMjQwMDA1NzA5LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJPa2F5LCBoZXJlJ3MgbXkgYXR0ZW1wdCBhdCBzdW1tYXJpemluZyB0aGUgdGhvdWdodCBwcm9jZXNzLCB0YWlsb3JlZCBmb3IgYW4gZXhwZXJ0IGF1ZGllbmNlLCBhbmQgd3JpdHRlbiBpbiB0aGUgZmlyc3QgcGVyc29uOlxuXG4qKkFuYWx5emluZyBEZXBlbmRlbmNpZXMqKlxuXG5SaWdodCwgc28gSSBuZWVkIHRvIHVuZGVyc3RhbmQgd2hhdCB0aGlzIHRoaW5nICphZmZlY3RzKiBvciAqcmVsaWVzIHVwb24qLiBXaGF0IG90aGVyIHByb2Nlc3Nlcywgc3lzdGVtcywgb3IgZGF0YSBlbGVtZW50cyBhcmUgZGlyZWN0bHkgbGlua2VkIHRvIGl0PyBXaGF0IGFyZSB0aGUgaW1wbGljYXRpb25zIG9mIGNoYW5nZXMgdG8gKml0Kj8gSSBuZWVkIHRvIHRoaW5rIHRocm91Z2ggZXZlcnkgcG9zc2libGUgY29ubmVjdGlvbiDigJMgZGlyZWN0IGRlcGVuZGVuY2llcywgaW5kaXJlY3QgZWZmZWN0cywgY2FzY2FkaW5nIGltcGFjdHMuIExldCBtZSBtYXAgb3V0IHRoZSByZWxhdGlvbnNoaXBzIOKAkyBjYXVzZSBhbmQgZWZmZWN0LCB1cHN0cmVhbSBhbmQgZG93bnN0cmVhbS4gVGhpcyByZXF1aXJlcyBhIHRob3JvdWdoIHVuZGVyc3RhbmRpbmcgb2YgdGhlIG92ZXJhbGwgc3lzdGVtIGFyY2hpdGVjdHVyZSwgZGF0YSBmbG93LCBhbmQgcG90ZW50aWFsIGZhaWx1cmUgcG9pbnRzLiBJIG5lZWQgdG8gYmUgbWV0aG9kaWNhbC4gTGV0J3Mgc3RhcnQgd2l0aCB0aGUgaW1tZWRpYXRlIHZpY2luaXR5IGFuZCB0aGVuIGV4dHJhcG9sYXRlIG91dHdhcmRzIHRvIGdldCBhIGNvbXByZWhlbnNpdmUgdmlldy5cblxuXG4iLCJJbnB1dFRva2VucyI6NDIwNywiT3V0cHV0VG9rZW5zIjo0MiwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjEyLCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTE0VDA2OjQyOjAwLjkzMjYwOTk5NVoiLCJTZXEiOjEwLCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NzA1NzUwNjksIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiUlRXODhfVVNCXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZ1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJkcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWc9MjA9Y29uZmlnIFJUVzg4X1NESU9cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZy0yMi1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWc6MjM6Y29uZmlnIFJUVzg4X1VTQlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZy0yNC1cXHR0cmlzdGF0ZVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnPTgyPWNvbmZpZyBSVFc4OF84ODIyQlVcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZy04NS1cXHRzZWxlY3QgUlRXODhfQ09SRVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZzo4NjpcXHRzZWxlY3QgUlRXODhfVVNCXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnLTg3LVxcdHNlbGVjdCBSVFc4OF84ODIyQlxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnPTExNT1jb25maWcgUlRXODhfODgyMkNVXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWctMTE4LVxcdHNlbGVjdCBSVFc4OF9DT1JFXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnOjExOTpcXHRzZWxlY3QgUlRXODhfVVNCXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnLTEyMC1cXHRzZWxlY3QgUlRXODhfODgyMkNcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZz0xNjI9Y29uZmlnIFJUVzg4Xzg3MjNEVVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnLTE2NS1cXHRzZWxlY3QgUlRXODhfQ09SRVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZzoxNjY6XFx0c2VsZWN0IFJUVzg4X1VTQlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZy0xNjctXFx0c2VsZWN0IFJUVzg4Xzg3MjNEXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWc9MTk1PWNvbmZpZyBSVFc4OF84ODIxQ1VcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZy0xOTgtXFx0c2VsZWN0IFJUVzg4X0NPUkVcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWc6MTk5OlxcdHNlbGVjdCBSVFc4OF9VU0JcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWctMjAwLVxcdHNlbGVjdCBSVFc4OF84ODIxQ1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnPTIwNj1jb25maWcgUlRXODhfODgyMUFVXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWctMjA5LVxcdHNlbGVjdCBSVFc4OF9DT1JFXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnOjIxMDpcXHRzZWxlY3QgUlRXODhfVVNCXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnLTIxMS1cXHRzZWxlY3QgUlRXODhfODgyMUFcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZz0yMTc9Y29uZmlnIFJUVzg4Xzg4MTJBVVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnLTIyMC1cXHRzZWxlY3QgUlRXODhfQ09SRVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZzoyMjE6XFx0c2VsZWN0IFJUVzg4X1VTQlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZy0yMjItXFx0c2VsZWN0IFJUVzg4Xzg4MTJBXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWc9MjM5PWNvbmZpZyBSVFc4OF84ODE0QVVcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZy0yNDItXFx0c2VsZWN0IFJUVzg4X0NPUkVcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWc6MjQzOlxcdHNlbGVjdCBSVFc4OF9VU0JcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWctMjQ0LVxcdHNlbGVjdCBSVFc4OF84ODE0QVxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0xNFQwNjo0MjowMS4wMDMxOTA2NTRaIiwiU2VxIjoxMSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6MzM0NDI1NjE1OCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipNeSBJbml0aWFsIFRob3VnaHRzIG9uIFdpRmkgRHJpdmVyIENvbmZpZ3VyYXRpb24qKlxuXG5Pa2F5LCBzbyB3ZSdyZSBsb29raW5nIGF0IGVuYWJsaW5nIGEgUmVhbHRlayBXaUZpIGRyaXZlciBoZXJlLiBNeSBpbnN0aW5jdCBpcyB0byBzdGFydCBicm9hZC4gTGV0J3MgZW5hYmxlIHRoZSBiYXNlIGBSVFc4OGAgbW9kdWxlIGFuZCB0aGVuIGFsc28gdGFyZ2V0IHRoZSBzcGVjaWZpYyBgUlRXODhfODgyMkJVYCBzaW5jZSB0aGF0IHNlZW1zIHRvIGJlIGEgY29tbW9uIHZhcmlhbnQuIEkgYWx3YXlzIGZpbmQgaXQgYmVzdCB0byBzdGFydCB3aXRoIGEgbW9yZSBjb21wcmVoZW5zaXZlIGFwcHJvYWNoLiBOb3csIGJlZm9yZSB3ZSBnbyBhbnkgZnVydGhlciwgbGV0J3MganVzdCBxdWlja2x5IGNoZWNrIG9uIGBSVFc4OGAncyBkZXBlbmRlbmNpZXMuIEkgbmVlZCB0byBtYWtlIHN1cmUgd2UgYXJlbid0IGludHJvZHVjaW5nIGFueSBjb25mbGljdHMgb3IgcHVsbGluZyBpbiB1bm5lY2Vzc2FyeSBiYWdnYWdlLiBVbmRlcnN0YW5kaW5nIHRoZSBidWlsZCBzeXN0ZW0gYW5kIGRlcGVuZGVuY2llcyB0aG9yb3VnaGx5IGlzIGtleSBoZXJlLlxuXG5cbiIsIklucHV0VG9rZW5zIjo1NDQ2LCJPdXRwdXRUb2tlbnMiOjQxLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6NTYsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDgtMTRUMDY6NDI6MDQuMzQ3NDUwMjIyWiIsIlNlcSI6MTIsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo2OTQ4NDY3OSwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJjb25maWcgUlRXODhcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZy0xLSMgU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjAtb25seVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZzoyOm1lbnVjb25maWcgUlRXODhcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWctMy1cXHR0cmlzdGF0ZSBcXFwiUmVhbHRlayA4MDIuMTFhYyB3aXJlbGVzcyBjaGlwcyBzdXBwb3J0XFxcIlxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnPTExPWlmIFJUVzg4XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnLTEyLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZzoxMzpjb25maWcgUlRXODhfQ09SRVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZy0xNC1cXHR0cmlzdGF0ZVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnLTE2LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZzoxNzpjb25maWcgUlRXODhfUENJXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnLTE4LVxcdHRyaXN0YXRlXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnLTE5LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZzoyMDpjb25maWcgUlRXODhfU0RJT1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZy0yMS1cXHR0cmlzdGF0ZVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZy0yMi1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWc6MjM6Y29uZmlnIFJUVzg4X1VTQlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZy0yNC1cXHR0cmlzdGF0ZVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZy0yNS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWc6MjY6Y29uZmlnIFJUVzg4Xzg4MjJCXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnLTI3LVxcdHRyaXN0YXRlXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnLTI4LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZzoyOTpjb25maWcgUlRXODhfODgyMkNcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWctMzAtXFx0dHJpc3RhdGVcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWctMzEtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnOjMyOmNvbmZpZyBSVFc4OF84NzIzWFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZy0zMy1cXHR0cmlzdGF0ZVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZy0zNC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWc6MzU6Y29uZmlnIFJUVzg4Xzg3MDNCXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnLTM2LVxcdHRyaXN0YXRlXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWctMzgtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnOjM5OmNvbmZpZyBSVFc4OF84NzIzRFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZy00MC1cXHR0cmlzdGF0ZVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnLTQyLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZzo0Mzpjb25maWcgUlRXODhfODgyMUNcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWctNDQtXFx0dHJpc3RhdGVcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWctNDUtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnOjQ2OmNvbmZpZyBSVFc4OF84OFhYQVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZy00Ny1cXHR0cmlzdGF0ZVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZy00OC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWc6NDk6Y29uZmlnIFJUVzg4Xzg4MjFBXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnLTUwLVxcdHRyaXN0YXRlXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWctNTItXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnOjUzOmNvbmZpZyBSVFc4OF84ODEyQVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZy01NC1cXHR0cmlzdGF0ZVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnLTU2LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZzo1Nzpjb25maWcgUlRXODhfODgxNEFcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWctNTgtXFx0dHJpc3RhdGVcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWctNTktXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnOjYwOmNvbmZpZyBSVFc4OF84ODIyQkVcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWctNjEtXFx0dHJpc3RhdGUgXFxcIlJlYWx0ZWsgODgyMkJFIFBDSSB3aXJlbGVzcyBuZXR3b3JrIGFkYXB0ZXJcXFwiXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWctNzAtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnOjcxOmNvbmZpZyBSVFc4OF84ODIyQlNcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWctNzItXFx0dHJpc3RhdGUgXFxcIlJlYWx0ZWsgODgyMkJTIFNESU8gd2lyZWxlc3MgbmV0d29yayBhZGFwdGVyXFxcIlxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnLTgxLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZzo4Mjpjb25maWcgUlRXODhfODgyMkJVXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnLTgzLVxcdHRyaXN0YXRlIFxcXCJSZWFsdGVrIDg4MjJCVSBVU0Igd2lyZWxlc3MgbmV0d29yayBhZGFwdGVyXFxcIlxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnLTkyLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZzo5Mzpjb25maWcgUlRXODhfODgyMkNFXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnLTk0LVxcdHRyaXN0YXRlIFxcXCJSZWFsdGVrIDg4MjJDRSBQQ0kgd2lyZWxlc3MgbmV0d29yayBhZGFwdGVyXFxcIlxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnLTEwMy1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWc6MTA0OmNvbmZpZyBSVFc4OF84ODIyQ1NcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWctMTA1LVxcdHRyaXN0YXRlIFxcXCJSZWFsdGVrIDg4MjJDUyBTRElPIHdpcmVsZXNzIG5ldHdvcmsgYWRhcHRlclxcXCJcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZy0xMTQtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnOjExNTpjb25maWcgUlRXODhfODgyMkNVXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnLTExNi1cXHR0cmlzdGF0ZSBcXFwiUmVhbHRlayA4ODIyQ1UgVVNCIHdpcmVsZXNzIG5ldHdvcmsgYWRhcHRlclxcXCJcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZy0xMjUtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnOjEyNjpjb25maWcgUlRXODhfODcyM0RFXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnLTEyNy1cXHR0cmlzdGF0ZSBcXFwiUmVhbHRlayA4NzIzREUgUENJIHdpcmVsZXNzIG5ldHdvcmsgYWRhcHRlclxcXCJcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZy0xMzYtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnOjEzNzpjb25maWcgUlRXODhfODcyM0RTXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnLTEzOC1cXHR0cmlzdGF0ZSBcXFwiUmVhbHRlayA4NzIzRFMgU0RJTyB3aXJlbGVzcyBuZXR3b3JrIGFkYXB0ZXJcXFwiXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWctMTQ3LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZzoxNDg6Y29uZmlnIFJUVzg4Xzg3MjNDU1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZy0xNDktXFx0dHJpc3RhdGUgXFxcIlJlYWx0ZWsgODcyM0NTIFNESU8gd2lyZWxlc3MgbmV0d29yayBhZGFwdGVyXFxcIlxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnLTE2MS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWc6MTYyOmNvbmZpZyBSVFc4OF84NzIzRFVcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWctMTYzLVxcdHRyaXN0YXRlIFxcXCJSZWFsdGVrIDg3MjNEVSBVU0Igd2lyZWxlc3MgbmV0d29yayBhZGFwdGVyXFxcIlxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnLTE3Mi1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWc6MTczOmNvbmZpZyBSVFc4OF84ODIxQ0VcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWctMTc0LVxcdHRyaXN0YXRlIFxcXCJSZWFsdGVrIDg4MjFDRSBQQ0kgd2lyZWxlc3MgbmV0d29yayBhZGFwdGVyXFxcIlxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnLTE4My1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWc6MTg0OmNvbmZpZyBSVFc4OF84ODIxQ1NcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWctMTg1LVxcdHRyaXN0YXRlIFxcXCJSZWFsdGVrIDg4MjFDUyBTRElPIHdpcmVsZXNzIG5ldHdvcmsgYWRhcHRlclxcXCJcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZy0xOTQtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnOjE5NTpjb25maWcgUlRXODhfODgyMUNVXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnLTE5Ni1cXHR0cmlzdGF0ZSBcXFwiUmVhbHRlayA4ODIxQ1UgVVNCIHdpcmVsZXNzIG5ldHdvcmsgYWRhcHRlclxcXCJcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZy0yMDUtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnOjIwNjpjb25maWcgUlRXODhfODgyMUFVXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnLTIwNy1cXHR0cmlzdGF0ZSBcXFwiUmVhbHRlayA4ODIxQVUvODgxMUFVIFVTQiB3aXJlbGVzcyBuZXR3b3JrIGFkYXB0ZXJcXFwiXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWctMjE2LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZzoyMTc6Y29uZmlnIFJUVzg4Xzg4MTJBVVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZy0yMTgtXFx0dHJpc3RhdGUgXFxcIlJlYWx0ZWsgODgxMkFVIFVTQiB3aXJlbGVzcyBuZXR3b3JrIGFkYXB0ZXJcXFwiXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWctMjI3LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZzoyMjg6Y29uZmlnIFJUVzg4Xzg4MTRBRVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZy0yMjktXFx0dHJpc3RhdGUgXFxcIlJlYWx0ZWsgODgxNEFFIFBDSSB3aXJlbGVzcyBuZXR3b3JrIGFkYXB0ZXJcXFwiXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWctMjM4LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZzoyMzk6Y29uZmlnIFJUVzg4Xzg4MTRBVVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZy0yNDAtXFx0dHJpc3RhdGUgXFxcIlJlYWx0ZWsgODgxNEFVIFVTQiB3aXJlbGVzcyBuZXR3b3JrIGFkYXB0ZXJcXFwiXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWctMjQ5LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZzoyNTA6Y29uZmlnIFJUVzg4X0RFQlVHXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnLTI1MS1cXHRib29sIFxcXCJSZWFsdGVrIHJ0dzg4IGRlYnVnIHN1cHBvcnRcXFwiXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWctMjU3LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZzoyNTg6Y29uZmlnIFJUVzg4X0RFQlVHRlNcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWctMjU5LVxcdGJvb2wgXFxcIlJlYWx0ZWsgcnR3ODggZGVidWdmcyBzdXBwb3J0XFxcIlxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnLTI2NS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWc6MjY2OmNvbmZpZyBSVFc4OF9MRURTXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnLTI2Ny1cXHRib29sXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTE0VDA2OjQyOjA0LjQxNjk0MDczMVoiLCJTZXEiOjEzLCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo0MDkzMDU1NzMxLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJIZXJlJ3MgbXkgdGFrZSBvbiB0aGlzLCBjb25zaWRlcmluZyBJJ20gZGVlcCBpbiB0aGVzZSBraW5kcyBvZiBrZXJuZWwgbW9kdWxlIGRlcGVuZGVuY2llczpcblxuKipLZXJuZWwgTW9kdWxlIERlcGVuZGVuY3kgQ2hlY2sqKlxuXG5Pa2F5LCBzbyBJJ20gbG9va2luZyBhdCB0aGlzIGRyaXZlciBzaXR1YXRpb24uIEZpcnN0LCBJIG5lZWQgdG8gbWFrZSBzdXJlIEkgaGF2ZSBhbGwgdGhlIG5lY2Vzc2FyeSBtb2R1bGVzIGxvYWRlZCwgZ2l2ZW4gdGhlIGRlcGVuZGVuY2llcy4gSXQncyBwcmV0dHkgc3RyYWlnaHRmb3J3YXJkOiBgUlRXODhgIHJlbGllcyBvbiBgTUFDODAyMTFgLCB3aGljaCBtYWtlcyBzZW5zZSBhcyBpdCBwcm92aWRlcyB0aGUgY29yZSA4MDIuMTEgZnVuY3Rpb25hbGl0eS4gIFRoZXJlZm9yZSwgSSdsbCBuZWVkIHRvIGNvbmZpcm0gdGhhdCBgTUFDODAyMTFgLCB0aGUgYmFzZSBkcml2ZXIsIGlzIHByZXNlbnQsIGFsb25nIHdpdGggYm90aCBgUlRXODhgIGFuZCB0aGUgc3BlY2lmaWMgdmFyaWFudCBgUlRXODhfODgyMkJVYC4gSSdsbCBoYXZlIHRvIHZlcmlmeSB0aGUgbW9kdWxlIGxvYWRpbmcgb3JkZXIsIHRvbywganVzdCB0byBiZSBvbiB0aGUgc2FmZSBzaWRlLlxuXG5Ob3csIEknbSBnb2luZyB0byBkaWcgYSBiaXQgZGVlcGVyLiBUaW1lIHRvIGV4YW1pbmUgdGhhdCBgcnR3X3VzYl90eF9xdWV1ZV9tYXBwaW5nX3RvX3FzZWxgIGZ1bmN0aW9uLiBJIHdhbnQgdG8gc2VlIGhvdyB0aGUgVVNCIHRyYW5zbWlzc2lvbiBxdWV1ZXMgYXJlIGJlaW5nIG1hcHBlZCB0byB0aGUgcXVldWUgc2VsZWN0LiBJJ20gaG9waW5nIEkgZG9uJ3QgaGF2ZSB0byByZXdyaXRlIHRoZSBxdWV1ZSBoYW5kbGluZy5cblxuXG4iLCJJbnB1dFRva2VucyI6ODgwNywiT3V0cHV0VG9rZW5zIjo1MiwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjcxLCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTE0VDA2OjQyOjA4LjUwOTk5OTY0MloiLCJTZXEiOjE0LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6ODE0ODQ4MjksIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwicnR3X3VzYl90eF9xdWV1ZV9tYXBwaW5nX3RvX3FzZWxcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC91c2IuY1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJkcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3VzYi5jPTU1MD1zdGF0aWMgaW50IHJ0d191c2Jfd3JpdGVfZGF0YV9oMmMoc3RydWN0IHJ0d19kZXYgKnJ0d2RldiwgdTggKmJ1ZiwgdTMyIHNpemUpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3VzYi5jLTU1OS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3VzYi5jOjU2MDpzdGF0aWMgdTggcnR3X3VzYl90eF9xdWV1ZV9tYXBwaW5nX3RvX3FzZWwoc3RydWN0IHNrX2J1ZmYgKnNrYilcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3VzYi5jLTU2MS17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3VzYi5jPTU4MT1zdGF0aWMgaW50IHJ0d191c2JfdHhfd3JpdGUoc3RydWN0IHJ0d19kZXYgKnJ0d2RldixcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdXNiLmMtNTkwLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdXNiLmM6NTkxOlxcdHBrdF9pbmZvLVxcdTAwM2Vxc2VsID0gcnR3X3VzYl90eF9xdWV1ZV9tYXBwaW5nX3RvX3FzZWwoc2tiKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3VzYi5jLTU5Mi1cXHRwa3RfZGVzYyA9IHNrYl9wdXNoKHNrYiwgY2hpcC1cXHUwMDNldHhfcGt0X2Rlc2Nfc3opO1xcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0xNFQwNjo0MjowOC41OTE0OTAyMjFaIiwiU2VxIjoxNSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NDAwMTkwOTg5MSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiT2theSwgaGVyZSdzIG15IGludGVycHJldGF0aW9uIG9mIHRoYXQgdGhvdWdodCBwcm9jZXNzLCBhc3N1bWluZyBJJ20gZGVlcCBpbiB0aGUgd2VlZHMgb2YgZW1iZWRkZWQgc3lzdGVtcyBhbmQgVVNCIGRyaXZlciBkZXZlbG9wbWVudDpcblxuKipUaGlua2luZyBUaHJvdWdoIGEgVVNCIFRyYW5zbWlzc2lvbiBGdW5jdGlvbiBDYWxsKipcblxuQWxyaWdodCwgc28gYHJ0d191c2JfdHhfd3JpdGVgIGlzIHRoZSBjYWxsZXIuIFRoYXQgaW1tZWRpYXRlbHkgdGVsbHMgbWUgdGhpcyBmdW5jdGlvbiBpcyByZXNwb25zaWJsZSBmb3IgaW5pdGlhdGluZyBhIFVTQiB0cmFuc21pc3Npb24sIGxpa2VseSBmb3IgYSBSZWFsdGVrIFdpLUZpIGRldmljZS4gSSdtIGFscmVhZHkgdGhpbmtpbmcgYWJvdXQgd2hhdCB0aGF0IGltcGxpZXMuIFRoaXMgcHJvYmFibHkgbWVhbnMgdGhlcmUncyBhIGhpZ2hlci1sZXZlbCBmdW5jdGlvbiwgcGVyaGFwcyBgcnR3X25ldGlmX3RyYW5zbWl0YCwgd2hpY2ggaXMgcmVzcG9uc2libGUgZm9yIHRha2luZyBuZXR3b3JrIHBhY2tldHMgYW5kIHVsdGltYXRlbHkgY2FsbGluZyAqdGhpcyogZnVuY3Rpb24gdG8gYWN0dWFsbHkgc2VuZCB0aGUgZGF0YSBvdmVyIHRoZSBVU0IgYnVzLlxuXG5NeSBtaW5kIGp1bXBzIHRvIHRoZSBkYXRhIHN0cnVjdHVyZXMgaW52b2x2ZWQ6IEnigJlsbCBuZWVkIHRvIHVuZGVyc3RhbmQgdGhlIGJ1ZmZlciB3aGVyZSB0aGUgZGF0YSB0byBiZSB0cmFuc21pdHRlZCBsaXZlcywgaG93IGl04oCZcyBtYXBwZWQgdG8gVVNCIGVuZHBvaW50cywgd2hhdCBkZXNjcmlwdG9ycyBhcmUgdXNlZCwgYW5kIHdoZXRoZXIgdGhlcmUncyBzb21lIGtpbmQgb2YgRE1BIGludm9sdmVkIHRvIHJlZHVjZSBDUFUgbG9hZC4gSSBuZWVkIHRvIHJlZnJlc2ggbXkgbWVtb3J5IGFib3V0IHRoZSBSZWFsdGVrLXNwZWNpZmljIG51YW5jZXMgb2YgdGhlaXIgVVNCIGRyaXZlciBpbXBsZW1lbnRhdGlvbi4gSXMgaXQgcG9sbGluZywgaW50ZXJydXB0LWRyaXZlbiwgb3IgdXNpbmcgc29tZSBraW5kIG9mIHJpbmcgYnVmZmVyIG1lY2hhbmlzbT9cblxuSeKAmW0gYWxzbyB3b25kZXJpbmcgYWJvdXQgdGhlIGNvbnRleHQuIFdoYXQgcmVzb3VyY2VzIGFyZSBhbHJlYWR5IGluIHVzZT8gQXJlIHRoZXJlIGxvY2tzIG9yIG11dGV4ZXMgdG8gd29ycnkgYWJvdXQ/IEFyZSB3ZSBkZWFsaW5nIHdpdGggYSBzaW5nbGUgcGFja2V0IG9yIGEgbGFyZ2VyIHRyYW5zbWlzc2lvbiBzcGxpdCBpbnRvIGNodW5rcz8gQW55IGVycm9yIGhhbmRsaW5nPyBUaGlzIGZ1bmN0aW9uIHNob3VsZCBiZSByb2J1c3QgdG8gaGFuZGxlIGRpc2Nvbm5lY3RzLCBlcnJvcnMgb24gdGhlIFVTQiBidXMsIGFuZCBwb3RlbnRpYWwgYnVmZmVyIG92ZXJmbG93cy4gSSBoYXZlIHRvIGJlIHJlYWR5IHRvIGRlYnVnIHRob3NlIHNjZW5hcmlvcy4gS25vd2luZyBgcnR3X3VzYl90eF93cml0ZWAgaXMgdGhlIGNhbGxlciwgSSBpbW1lZGlhdGVseSBzZWUgdGhlIGNyaXRpY2FsIHBhcnQgb2YgdGhlIHN5c3RlbSBpcyB0aGUgVVNCIHRyYW5zZmVyLiBJIG5lZWQgdG8ga2VlcCBpbiBtaW5kIHRoZSBkZXZpY2UsIGFuZCB0aGUgaG9zdCwgYW5kIHRoZSBkYXRhIHRyYW5zZmVyIHByb3RvY29sIHRvIGtlZXAgdGhlIHN5c3RlbSB3b3JraW5nLlxuXG5JdCBhbGwgYm9pbHMgZG93biB0byB0aGUgVVNCIHBhY2tldCB0cmFuc21pc3Npb24uIEkgd2lsbCBoYXZlIHRvIGVuc3VyZSB0aGF0IGFsbCBkYXRhIGlzIGNvcnJlY3RseSBjb3BpZWQgdG8gdGhlIHByb3BlciBoYXJkd2FyZSBidWZmZXJzLCBhbmQgdGhlIFVTQiBjb250cm9sbGVyIGhhcyB0aGUgcmlnaHQgZGF0YSB0byBzdGFydCB0cmFuc2ZlcnJpbmcuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjk1MDQsIk91dHB1dFRva2VucyI6NDUsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoxNCwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wOC0xNFQwNjo0MjoxMi41OTM0MDM0MzJaIiwiU2VxIjoxNiwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjgxNTYwMjM5LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcInJ0d191c2JfdHhfd3JpdGVcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC91c2IuY1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJkcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3VzYi5jPTU2MD1zdGF0aWMgdTggcnR3X3VzYl90eF9xdWV1ZV9tYXBwaW5nX3RvX3FzZWwoc3RydWN0IHNrX2J1ZmYgKnNrYilcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdXNiLmMtNTgwLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdXNiLmM6NTgxOnN0YXRpYyBpbnQgcnR3X3VzYl90eF93cml0ZShzdHJ1Y3QgcnR3X2RldiAqcnR3ZGV2LFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdXNiLmMtNTgyLVxcdFxcdFxcdCAgICBzdHJ1Y3QgcnR3X3R4X3BrdF9pbmZvICpwa3RfaW5mbyxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdXNiLmM9OTUzPXN0YXRpYyBjb25zdCBzdHJ1Y3QgcnR3X2hjaV9vcHMgcnR3X3VzYl9vcHMgPSB7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC91c2IuYzo5NTQ6XFx0LnR4X3dyaXRlID0gcnR3X3VzYl90eF93cml0ZSxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3VzYi5jLTk1NS1cXHQudHhfa2lja19vZmYgPSBydHdfdXNiX3R4X2tpY2tfb2ZmLFxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0xNFQwNjo0MjoxMi42NzQ5NjkzMDFaIiwiU2VxIjoxNywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NDkzMjU2NzUzMywiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipBbmFseXppbmcgdGhlIHJ0d191c2JfdHggUGF0aCoqXG5cbk9rYXksIHNvIEknbSBsb29raW5nIGludG8gdGhlIGBydHdfdXNiX3R4X3dyaXRlYCBmdW5jdGlvbjsgaXQncyBhIGNhbGxiYWNrIHdpdGhpbiB0aGUgYHJ0d19oY2lfb3BzYCBzdHJ1Y3R1cmUuIE15IGluaXRpYWwgaW5zdGluY3QgdGVsbHMgbWUgdGhpcyAqaGFzKiB0byBiZSBwYXJ0IG9mIHRoZSBtYWM4MDIxMSB0cmFuc21pdCBwYXRoLiBUaGF0IHNlZW1zIGxpa2UgYSBsb2dpY2FsIGNvbm5lY3Rpb24gdG8gbWFrZS5cblxuQWxyaWdodCwgdGltZSB0byBkaWcgaW4uIExldCdzIG1ha2UgYHJ0d191c2JfdHhfd3JpdGVgIGFuZCBgcnR3X3VzYl90eF9raWNrX29mZmAgb3VyIGZvY2FsIHBvaW50cyBmb3Igbm93IOKAkyB0aG9zZSBzZWVtIGxpa2Uga2V5IHBpZWNlcyB0byB1bmRlcnN0YW5kLlxuXG5XYWl0IGEgc2Vjb25k4oCmIGBydHdfdXNiX3R4X3dyaXRlYCBpcyAqc3RhdGljKj8gSG1tLCB0aGF0J3MgYSBiaXQgb2YgYSB3cmlua2xlLiBTdGF0aWMgZnVuY3Rpb25zIGNhbiBiZSB0cmlja3kgd2hlbiB0cmFjaW5nIGV4ZWN1dGlvbiBwYXRocywgc2luY2UgdGhleSBjYW4gYmUgYSBiaXQgbW9yZSBsaW1pdGVkIGluIHNjb3BlLiBNYXliZSBpdCdzIG5vdCB0aGUgYmVzdCBzeW1ib2wgdG8gZm9jdXMgb24gZGlyZWN0bHkuIEknbGwgaGF2ZSB0byBrZWVwIHRoYXQgaW4gbWluZC5cblxuTGV0J3Mgc3dpdGNoIGdlYXJzIGEgYml0LiBQZXJoYXBzIHVuZGVyc3RhbmRpbmcgaG93IGBydHdfdXNiX29wc2AgaXMgdXNlZCB3aWxsIGdpdmUgbWUgYSBiZXR0ZXIgb3ZlcnZpZXcgb2YgdGhlIG92ZXJhbGwgZmxvdyBhbmQgaG93IGBydHdfdXNiX3R4X3dyaXRlYCBmaXRzIGludG8gdGhlIHBpY3R1cmUuIFRoYXQgd2lsbCBiZSBhIG1vcmUgcHJvZHVjdGl2ZSBsaW5lIG9mIGlucXVpcnkuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjEwMjUzLCJPdXRwdXRUb2tlbnMiOjQzLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MTMxLCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTE0VDA2OjQyOjE3LjYwNzU0MDM1M1oiLCJTZXEiOjE4LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MTAxNDkzMzEwLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcInJ0d191c2Jfb3BzXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdXNiLmNcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC91c2IuYz05MzE9c3RhdGljIHZvaWQgcnR3X3VzYl9keW5hbWljX3J4X2FnZyhzdHJ1Y3QgcnR3X2RldiAqcnR3ZGV2LCBib29sIGVuYWJsZSlcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdXNiLmMtOTUyLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdXNiLmM6OTUzOnN0YXRpYyBjb25zdCBzdHJ1Y3QgcnR3X2hjaV9vcHMgcnR3X3VzYl9vcHMgPSB7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC91c2IuYy05NTQtXFx0LnR4X3dyaXRlID0gcnR3X3VzYl90eF93cml0ZSxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdXNiLmM9MTI2NT1pbnQgcnR3X3VzYl9wcm9iZShzdHJ1Y3QgdXNiX2ludGVyZmFjZSAqaW50ZiwgY29uc3Qgc3RydWN0IHVzYl9kZXZpY2VfaWQgKmlkKVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC91c2IuYy0xMjgxLVxcdHJ0d2Rldi1cXHUwMDNlY2hpcCA9IChzdHJ1Y3QgcnR3X2NoaXBfaW5mbyAqKWlkLVxcdTAwM2Vkcml2ZXJfaW5mbztcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3VzYi5jOjEyODI6XFx0cnR3ZGV2LVxcdTAwM2VoY2kub3BzID0gXFx1MDAyNnJ0d191c2Jfb3BzO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdXNiLmMtMTI4My1cXHRydHdkZXYtXFx1MDAzZWhjaS50eXBlID0gUlRXX0hDSV9UWVBFX1VTQjtcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMTRUMDY6NDI6MTcuNzA5MDM5ODcyWiIsIlNlcSI6MTksIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjI3NTkyNTkxODMsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6Ik9rYXksIGhlcmUncyBteSBpbnRlcnByZXRhdGlvbiBvZiB0aG9zZSB0aG91Z2h0cywgcHJlc2VudGVkIGFzIGEgcGVyc29uYWwgdGhvdWdodCBwcm9jZXNzLCBhcyByZXF1ZXN0ZWQ6XG5cbioqVHJhY2luZyB0aGUgRGF0YSBUcmFuc21pc3Npb24gUGF0aCoqXG5cblJpZ2h0LCBzbyB0aGUgY2FsbGJhY2sgZm9yIHRoaXMgcHJvY2VzcyBpcyB0cmlnZ2VyZWQgYnkgYHJ0d2Rldi1cdTAwM2VoY2kub3BzLVx1MDAzZXR4X3dyaXRlYC4gT2theSwgZ29vZC4gTm93IEkgbmVlZCB0byBmaWd1cmUgb3V0IHRoZSB1cHN0cmVhbSBsb2dpYy4gVGhlIGNyaXRpY2FsIHF1ZXN0aW9uIGhlcmUgaXM6ICp3aGVyZSogaXMgYHR4X3dyaXRlYCBhY3R1YWxseSBiZWluZyBjYWxsZWQ/IEkgbmVlZCB0byB0cmFjZSBiYWNrIGZyb20gdGhhdCBwb2ludCB0byB1bmRlcnN0YW5kIHRoZSBjb21wbGV0ZSBkYXRhIHRyYW5zbWlzc2lvbiBwYXRoLiBUaGlzIGlzIGtleSB0byBkZWJ1Z2dpbmcuIExldCdzIGRpZyBpbnRvIHRoZSBjYWxsIHN0YWNrcyBhbmQgaWRlbnRpZnkgd2hlcmUgdGhpcyBmdW5jdGlvbiBpcyBpbnZva2VkLlxuXG5cbiIsIklucHV0VG9rZW5zIjoxMTA0MSwiT3V0cHV0VG9rZW5zIjozNywiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjMyLCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTE0VDA2OjQyOjIwLjQ2ODMwMjI2NloiLCJTZXEiOjIwLCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NjU2NjI1OTksIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwidHhfd3JpdGVcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9cIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9oY2kuaD05PXN0cnVjdCBydHdfaGNpX29wcyB7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9oY2kuaDoxMDpcXHRpbnQgKCp0eF93cml0ZSkoc3RydWN0IHJ0d19kZXYgKnJ0d2RldixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L2hjaS5oLTExLVxcdFxcdFxcdHN0cnVjdCBydHdfdHhfcGt0X2luZm8gKnBrdF9pbmZvLFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9oY2kuaC0zNS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L2hjaS5oOjM2OnN0YXRpYyBpbmxpbmUgaW50IHJ0d19oY2lfdHhfd3JpdGUoc3RydWN0IHJ0d19kZXYgKnJ0d2RldixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L2hjaS5oLTM3LVxcdFxcdFxcdFxcdCAgIHN0cnVjdCBydHdfdHhfcGt0X2luZm8gKnBrdF9pbmZvLFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9oY2kuaC0zOS17XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9oY2kuaDo0MDpcXHRyZXR1cm4gcnR3ZGV2LVxcdTAwM2VoY2kub3BzLVxcdTAwM2V0eF93cml0ZShydHdkZXYsIHBrdF9pbmZvLCBza2IpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvaGNpLmgtNDEtfVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9wY2kuYz03OTA9c3RhdGljIHZvaWQgcnR3X3BjaV90eF9raWNrX29mZihzdHJ1Y3QgcnR3X2RldiAqcnR3ZGV2KVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9wY2kuYy03OTktXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9wY2kuYzo4MDA6c3RhdGljIGludCBydHdfcGNpX3R4X3dyaXRlX2RhdGEoc3RydWN0IHJ0d19kZXYgKnJ0d2RldixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3BjaS5jLTgwMS1cXHRcXHRcXHRcXHQgc3RydWN0IHJ0d190eF9wa3RfaW5mbyAqcGt0X2luZm8sXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3BjaS5jPTg3MD1zdGF0aWMgaW50IHJ0d19wY2lfd3JpdGVfZGF0YV9yc3ZkX3BhZ2Uoc3RydWN0IHJ0d19kZXYgKnJ0d2RldiwgdTggKmJ1ZixcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcGNpLmMtODc3LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcGNpLmM6ODc4OlxcdHNrYiA9IHJ0d190eF93cml0ZV9kYXRhX3JzdmRfcGFnZV9nZXQocnR3ZGV2LCBcXHUwMDI2cGt0X2luZm8sIGJ1Ziwgc2l6ZSk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9wY2kuYy04NzktXFx0aWYgKCFza2IpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3BjaS5jLTg4MS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3BjaS5jOjg4MjpcXHRyZXQgPSBydHdfcGNpX3R4X3dyaXRlX2RhdGEocnR3ZGV2LCBcXHUwMDI2cGt0X2luZm8sIHNrYiwgUlRXX1RYX1FVRVVFX0JDTik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9wY2kuYy04ODMtXFx0aWYgKHJldCkge1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9wY2kuYz04OTY9c3RhdGljIGludCBydHdfcGNpX3dyaXRlX2RhdGFfaDJjKHN0cnVjdCBydHdfZGV2ICpydHdkZXYsIHU4ICpidWYsIHUzMiBzaXplKVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9wY2kuYy05MDEtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9wY2kuYzo5MDI6XFx0c2tiID0gcnR3X3R4X3dyaXRlX2RhdGFfaDJjX2dldChydHdkZXYsIFxcdTAwMjZwa3RfaW5mbywgYnVmLCBzaXplKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3BjaS5jLTkwMy1cXHRpZiAoIXNrYilcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcGNpLmMtOTA1LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcGNpLmM6OTA2OlxcdHJldCA9IHJ0d19wY2lfdHhfd3JpdGVfZGF0YShydHdkZXYsIFxcdTAwMjZwa3RfaW5mbywgc2tiLCBSVFdfVFhfUVVFVUVfSDJDKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3BjaS5jLTkwNy1cXHRpZiAocmV0KSB7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3BjaS5jLTkxNi1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3BjaS5jOjkxNzpzdGF0aWMgaW50IHJ0d19wY2lfdHhfd3JpdGUoc3RydWN0IHJ0d19kZXYgKnJ0d2RldixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3BjaS5jLTkxOC1cXHRcXHRcXHQgICAgc3RydWN0IHJ0d190eF9wa3RfaW5mbyAqcGt0X2luZm8sXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3BjaS5jLTkyNS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3BjaS5jOjkyNjpcXHRyZXQgPSBydHdfcGNpX3R4X3dyaXRlX2RhdGEocnR3ZGV2LCBwa3RfaW5mbywgc2tiLCBxdWV1ZSk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9wY2kuYy05MjctXFx0aWYgKHJldClcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcGNpLmM9MTYwNT1zdGF0aWMgY29uc3Qgc3RydWN0IHJ0d19oY2lfb3BzIHJ0d19wY2lfb3BzID0ge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcGNpLmM6MTYwNjpcXHQudHhfd3JpdGUgPSBydHdfcGNpX3R4X3dyaXRlLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcGNpLmMtMTYwNy1cXHQudHhfa2lja19vZmYgPSBydHdfcGNpX3R4X2tpY2tfb2ZmLFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9zZGlvLmM9OTAwPXN0YXRpYyBpbnQgcnR3X3NkaW9fd3JpdGVfZGF0YV9yc3ZkX3BhZ2Uoc3RydWN0IHJ0d19kZXYgKnJ0d2RldiwgdTggKmJ1ZixcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvc2Rpby5jLTkwNS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3NkaW8uYzo5MDY6XFx0c2tiID0gcnR3X3R4X3dyaXRlX2RhdGFfcnN2ZF9wYWdlX2dldChydHdkZXYsIFxcdTAwMjZwa3RfaW5mbywgYnVmLCBzaXplKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3NkaW8uYy05MDctXFx0aWYgKCFza2IpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3NkaW8uYz05MTM9c3RhdGljIGludCBydHdfc2Rpb193cml0ZV9kYXRhX2gyYyhzdHJ1Y3QgcnR3X2RldiAqcnR3ZGV2LCB1OCAqYnVmLCB1MzIgc2l6ZSlcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvc2Rpby5jLTkxNy1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3NkaW8uYzo5MTg6XFx0c2tiID0gcnR3X3R4X3dyaXRlX2RhdGFfaDJjX2dldChydHdkZXYsIFxcdTAwMjZwa3RfaW5mbywgYnVmLCBzaXplKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3NkaW8uYy05MTktXFx0aWYgKCFza2IpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3NkaW8uYy05MjQtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9zZGlvLmM6OTI1OnN0YXRpYyBpbnQgcnR3X3NkaW9fdHhfd3JpdGUoc3RydWN0IHJ0d19kZXYgKnJ0d2RldixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3NkaW8uYy05MjYtXFx0XFx0XFx0ICAgICBzdHJ1Y3QgcnR3X3R4X3BrdF9pbmZvICpwa3RfaW5mbyxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvc2Rpby5jPTExNzA9c3RhdGljIGNvbnN0IHN0cnVjdCBydHdfaGNpX29wcyBydHdfc2Rpb19vcHMgPSB7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9zZGlvLmM6MTE3MTpcXHQudHhfd3JpdGUgPSBydHdfc2Rpb190eF93cml0ZSxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3NkaW8uYy0xMTcyLVxcdC50eF9raWNrX29mZiA9IHJ0d19zZGlvX3R4X2tpY2tfb2ZmLFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC90eC5jPTUwMj1zdHJ1Y3Qgc2tfYnVmZiAqXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC90eC5jOjUwMzpydHdfdHhfd3JpdGVfZGF0YV9yc3ZkX3BhZ2VfZ2V0KHN0cnVjdCBydHdfZGV2ICpydHdkZXYsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC90eC5jLTUwNC1cXHRcXHRcXHRcXHRzdHJ1Y3QgcnR3X3R4X3BrdF9pbmZvICpwa3RfaW5mbyxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdHguYy01MjUtfVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdHguYzo1MjY6RVhQT1JUX1NZTUJPTChydHdfdHhfd3JpdGVfZGF0YV9yc3ZkX3BhZ2VfZ2V0KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3R4LmMtNTI3LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdHguYz01Mjg9c3RydWN0IHNrX2J1ZmYgKlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdHguYzo1Mjk6cnR3X3R4X3dyaXRlX2RhdGFfaDJjX2dldChzdHJ1Y3QgcnR3X2RldiAqcnR3ZGV2LFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdHguYy01MzAtXFx0XFx0XFx0ICBzdHJ1Y3QgcnR3X3R4X3BrdF9pbmZvICpwa3RfaW5mbyxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdHguYy01NTEtfVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdHguYzo1NTI6RVhQT1JUX1NZTUJPTChydHdfdHhfd3JpdGVfZGF0YV9oMmNfZ2V0KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3R4LmMtNTUzLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdHguYz01NTQ9dm9pZCBydHdfdHgoc3RydWN0IHJ0d19kZXYgKnJ0d2RldixcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdHguYy01NjEtXFx0cnR3X3R4X3BrdF9pbmZvX3VwZGF0ZShydHdkZXYsIFxcdTAwMjZwa3RfaW5mbywgY29udHJvbC1cXHUwMDNlc3RhLCBza2IpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdHguYzo1NjI6XFx0cmV0ID0gcnR3X2hjaV90eF93cml0ZShydHdkZXYsIFxcdTAwMjZwa3RfaW5mbywgc2tiKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3R4LmMtNTYzLVxcdGlmIChyZXQpIHtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdHguYz02MDg9c3RhdGljIGludCBydHdfdHhxX3B1c2hfc2tiKHN0cnVjdCBydHdfZGV2ICpydHdkZXYsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3R4LmMtNjE4LVxcdHJ0d190eF9wa3RfaW5mb191cGRhdGUocnR3ZGV2LCBcXHUwMDI2cGt0X2luZm8sIHR4cS1cXHUwMDNlc3RhLCBza2IpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdHguYzo2MTk6XFx0cmV0ID0gcnR3X2hjaV90eF93cml0ZShydHdkZXYsIFxcdTAwMjZwa3RfaW5mbywgc2tiKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3R4LmMtNjIwLVxcdGlmIChyZXQpIHtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdHguaD0xMDY9c3RydWN0IHNrX2J1ZmYgKlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdHguaDoxMDc6cnR3X3R4X3dyaXRlX2RhdGFfcnN2ZF9wYWdlX2dldChzdHJ1Y3QgcnR3X2RldiAqcnR3ZGV2LFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdHguaC0xMDgtXFx0XFx0XFx0XFx0c3RydWN0IHJ0d190eF9wa3RfaW5mbyAqcGt0X2luZm8sXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3R4Lmg9MTEwPXN0cnVjdCBza19idWZmICpcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3R4Lmg6MTExOnJ0d190eF93cml0ZV9kYXRhX2gyY19nZXQoc3RydWN0IHJ0d19kZXYgKnJ0d2RldixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3R4LmgtMTEyLVxcdFxcdFxcdCAgc3RydWN0IHJ0d190eF9wa3RfaW5mbyAqcGt0X2luZm8sXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3VzYi5jPTU2MD1zdGF0aWMgdTggcnR3X3VzYl90eF9xdWV1ZV9tYXBwaW5nX3RvX3FzZWwoc3RydWN0IHNrX2J1ZmYgKnNrYilcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdXNiLmMtNTgwLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdXNiLmM6NTgxOnN0YXRpYyBpbnQgcnR3X3VzYl90eF93cml0ZShzdHJ1Y3QgcnR3X2RldiAqcnR3ZGV2LFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdXNiLmMtNTgyLVxcdFxcdFxcdCAgICBzdHJ1Y3QgcnR3X3R4X3BrdF9pbmZvICpwa3RfaW5mbyxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdXNiLmM9OTUzPXN0YXRpYyBjb25zdCBzdHJ1Y3QgcnR3X2hjaV9vcHMgcnR3X3VzYl9vcHMgPSB7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC91c2IuYzo5NTQ6XFx0LnR4X3dyaXRlID0gcnR3X3VzYl90eF93cml0ZSxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3VzYi5jLTk1NS1cXHQudHhfa2lja19vZmYgPSBydHdfdXNiX3R4X2tpY2tfb2ZmLFxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0xNFQwNjo0MjoyMC41MzM5NzEwMjVaIiwiU2VxIjoyMSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6MzM2MDgxMzA3NywiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiSGVyZSdzIG15IHRob3VnaHQgcHJvY2VzcywgYXMgcmVxdWVzdGVkOlxuXG4qKkNoZWNraW5nIHRoZSBOYXR1cmUgb2YgYHJ0d190eGAqKlxuXG5Pa2F5LCBsZXQncyB6ZXJvIGluIG9uIHRoaXMgYHJ0d190eGAgc3ltYm9sLiBUaGUga2V5IHF1ZXN0aW9uIGluIG15IG1pbmQgaXM6IGlzIHRoaXMgdGhpbmcgYSBwdWJsaWNseSBhY2Nlc3NpYmxlIGZ1bmN0aW9uLCBtZWFuaW5nIGl0J3MgYmVlbiBleHBvcnRlZCwgb3IgaXMgaXQgbHVya2luZyBzb21ld2hlcmUgd2l0aGluIGEgbGltaXRlZCBzY29wZSBhcyBhIHN0YXRpYyBpbnRlcm5hbCBjb21wb25lbnQ/IEknbGwgbmVlZCB0byBmaWd1cmUgdGhpcyBvdXQgYmVmb3JlIEkgY2FuIHJlYXNvbiBmdXJ0aGVyIGFib3V0IHRoZSBjb2RlIHRoYXQgdG91Y2hlcyBpdC4gTGV0IG1lIGp1c3QgdGFrZSBhIGxvb2suLi5cblxuXG4iLCJJbnB1dFRva2VucyI6MTQ1MTUsIk91dHB1dFRva2VucyI6MzgsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoyNCwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wOC0xNFQwNjo0MjoyMy44OTQ3ODY1OTJaIiwiU2VxIjoyMiwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjk3MTIzNTM5LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcInJ0d190eFwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJkcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJcXG5GdWxsIG91dHB1dCBpcyB0b28gbG9uZywgc2hvd2luZyA1MDAgb3V0IG9mIDg3MSBsaW5lcy5cXG5Vc2UgbW9yZSBwcmVjaXNlIGV4cHJlc3Npb24gaWYgcG9zc2libGUuXFxuXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9mdy5jPTkzPXN0YXRpYyB2b2lkIHJ0d19md19jMmhfY21kX2hhbmRsZV9leHQoc3RydWN0IHJ0d19kZXYgKnJ0d2RldixcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvZncuYy0xMDMtXFx0Y2FzZSBDMkhfQ0NYX1JQVDpcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L2Z3LmM6MTA0OlxcdFxcdHJ0d190eF9yZXBvcnRfaGFuZGxlKHJ0d2Rldiwgc2tiLCBDMkhfQ0NYX1JQVCk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9mdy5jLTEwNS1cXHRcXHRicmVhaztcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvZncuYz0zMDE9dm9pZCBydHdfZndfYzJoX2NtZF9oYW5kbGUoc3RydWN0IHJ0d19kZXYgKnJ0d2Rldiwgc3RydWN0IHNrX2J1ZmYgKnNrYilcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvZncuYy0zMTctXFx0Y2FzZSBDMkhfQ0NYX1RYX1JQVDpcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L2Z3LmM6MzE4OlxcdFxcdHJ0d190eF9yZXBvcnRfaGFuZGxlKHJ0d2Rldiwgc2tiLCBDMkhfQ0NYX1RYX1JQVCk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9mdy5jLTMxOS1cXHRcXHRicmVhaztcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvZncuYz0xMzAwPXN0YXRpYyB2b2lkIHJ0d19maWxsX3JzdmRfcGFnZV9kZXNjKHN0cnVjdCBydHdfZGV2ICpydHdkZXYsIHN0cnVjdCBza19idWZmICpza2IsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L2Z3LmMtMTMwMi17XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9mdy5jOjEzMDM6XFx0c3RydWN0IHJ0d190eF9wa3RfaW5mbyBwa3RfaW5mbyA9IHswfTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L2Z3LmMtMTMwNC1cXHRjb25zdCBzdHJ1Y3QgcnR3X2NoaXBfaW5mbyAqY2hpcCA9IHJ0d2Rldi1cXHUwMDNlY2hpcDtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvZncuYy0xMzA2LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvZncuYzoxMzA3OlxcdHJ0d190eF9yc3ZkX3BhZ2VfcGt0X2luZm9fdXBkYXRlKHJ0d2RldiwgXFx1MDAyNnBrdF9pbmZvLCBza2IsIHR5cGUpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvZncuYy0xMzA4LVxcdHBrdF9kZXNjID0gc2tiX3B1c2goc2tiLCBjaGlwLVxcdTAwM2V0eF9wa3RfZGVzY19zeik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9mdy5jLTEzMDktXFx0bWVtc2V0KHBrdF9kZXNjLCAwLCBjaGlwLVxcdTAwM2V0eF9wa3RfZGVzY19zeik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9mdy5jOjEzMTA6XFx0cnR3X3R4X2ZpbGxfdHhfZGVzYyhydHdkZXYsIFxcdTAwMjZwa3RfaW5mbywgc2tiKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L2Z3LmMtMTMxMS19XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L2hjaS5oPTk9c3RydWN0IHJ0d19oY2lfb3BzIHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L2hjaS5oLTEwLVxcdGludCAoKnR4X3dyaXRlKShzdHJ1Y3QgcnR3X2RldiAqcnR3ZGV2LFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvaGNpLmg6MTE6XFx0XFx0XFx0c3RydWN0IHJ0d190eF9wa3RfaW5mbyAqcGt0X2luZm8sXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9oY2kuaC0xMi1cXHRcXHRcXHRzdHJ1Y3Qgc2tfYnVmZiAqc2tiKTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvaGNpLmg9MzY9c3RhdGljIGlubGluZSBpbnQgcnR3X2hjaV90eF93cml0ZShzdHJ1Y3QgcnR3X2RldiAqcnR3ZGV2LFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvaGNpLmg6Mzc6XFx0XFx0XFx0XFx0ICAgc3RydWN0IHJ0d190eF9wa3RfaW5mbyAqcGt0X2luZm8sXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9oY2kuaC0zOC1cXHRcXHRcXHRcXHQgICBzdHJ1Y3Qgc2tfYnVmZiAqc2tiKVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9tYWM4MDIxMS5jPTE4PXN0YXRpYyB2b2lkIHJ0d19vcHNfdHgoc3RydWN0IGllZWU4MDIxMV9odyAqaHcsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L21hYzgwMjExLmMtMjgtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9tYWM4MDIxMS5jOjI5OlxcdHJ0d190eChydHdkZXYsIGNvbnRyb2wsIHNrYik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9tYWM4MDIxMS5jLTMwLX1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvbWFjODAyMTEuYz0zMj1zdGF0aWMgdm9pZCBydHdfb3BzX3dha2VfdHhfcXVldWUoc3RydWN0IGllZWU4MDIxMV9odyAqaHcsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L21hYzgwMjExLmMtMzUtXFx0c3RydWN0IHJ0d19kZXYgKnJ0d2RldiA9IGh3LVxcdTAwM2Vwcml2O1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvbWFjODAyMTEuYzozNjpcXHRzdHJ1Y3QgcnR3X3R4cSAqcnR3dHhxID0gKHN0cnVjdCBydHdfdHhxICopdHhxLVxcdTAwM2VkcnZfcHJpdjtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L21hYzgwMjExLmMtMzctXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L21hYzgwMjExLmMtNDctXFx0aWYgKHR4cS1cXHUwMDNlYWMgPT0gSUVFRTgwMjExX0FDX1ZPKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvbWFjODAyMTEuYzo0ODpcXHRcXHRfX3J0d190eF93b3JrKHJ0d2Rldik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9tYWM4MDIxMS5jLTQ5LVxcdGVsc2VcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvbWFjODAyMTEuYz0xNDY9c3RhdGljIGludCBydHdfb3BzX2FkZF9pbnRlcmZhY2Uoc3RydWN0IGllZWU4MDIxMV9odyAqaHcsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L21hYzgwMjExLmMtMTY0LVxcdG1lbXNldChcXHUwMDI2cnR3dmlmLVxcdTAwM2ViZmVlLCAwLCBzaXplb2Yoc3RydWN0IHJ0d19iZmVlKSk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9tYWM4MDIxMS5jOjE2NTpcXHRydHdfdHhxX2luaXQocnR3ZGV2LCB2aWYtXFx1MDAzZXR4cSk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9tYWM4MDIxMS5jLTE2Ni1cXHRJTklUX0xJU1RfSEVBRChcXHUwMDI2cnR3dmlmLVxcdTAwM2Vyc3ZkX3BhZ2VfbGlzdCk7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L21hYzgwMjExLmM9MjI4PXN0YXRpYyB2b2lkIHJ0d19vcHNfcmVtb3ZlX2ludGVyZmFjZShzdHJ1Y3QgaWVlZTgwMjExX2h3ICpodyxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvbWFjODAyMTEuYy0yNDEtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9tYWM4MDIxMS5jOjI0MjpcXHRydHdfdHhxX2NsZWFudXAocnR3ZGV2LCB2aWYtXFx1MDAzZXR4cSk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9tYWM4MDIxMS5jLTI0My1cXHRydHdfcmVtb3ZlX3JzdmRfcGFnZShydHdkZXYsIHJ0d3ZpZik7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L21hYzgwMjExLmM9NjM2PXN0YXRpYyBpbnQgcnR3X29wc19hbXBkdV9hY3Rpb24oc3RydWN0IGllZWU4MDIxMV9odyAqaHcsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L21hYzgwMjExLmMtNjQyLVxcdHN0cnVjdCBpZWVlODAyMTFfdHhxICp0eHEgPSBzdGEtXFx1MDAzZXR4cVt0aWRdO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvbWFjODAyMTEuYzo2NDM6XFx0c3RydWN0IHJ0d190eHEgKnJ0d3R4cSA9IChzdHJ1Y3QgcnR3X3R4cSAqKXR4cS1cXHUwMDNlZHJ2X3ByaXY7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9tYWM4MDIxMS5jLTY0NC1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvbWFpbi5jPTM0NT1pbnQgcnR3X3N0YV9hZGQoc3RydWN0IHJ0d19kZXYgKnJ0d2Rldiwgc3RydWN0IGllZWU4MDIxMV9zdGEgKnN0YSxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvbWFpbi5jLTM2NS1cXHRmb3IgKGkgPSAwOyBpIFxcdTAwM2MgQVJSQVlfU0laRShzdGEtXFx1MDAzZXR4cSk7IGkrKylcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L21haW4uYzozNjY6XFx0XFx0cnR3X3R4cV9pbml0KHJ0d2Rldiwgc3RhLVxcdTAwM2V0eHFbaV0pO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvbWFpbi5jLTM2Ny1cXHRJTklUX1dPUksoXFx1MDAyNnNpLVxcdTAwM2VyY193b3JrLCBydHdfc3RhX3JjX3dvcmspO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9tYWluLmM9MzgwPXZvaWQgcnR3X3N0YV9yZW1vdmUoc3RydWN0IHJ0d19kZXYgKnJ0d2Rldiwgc3RydWN0IGllZWU4MDIxMV9zdGEgKnN0YSxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvbWFpbi5jLTM5NC1cXHRmb3IgKGkgPSAwOyBpIFxcdTAwM2MgQVJSQVlfU0laRShzdGEtXFx1MDAzZXR4cSk7IGkrKylcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L21haW4uYzozOTU6XFx0XFx0cnR3X3R4cV9jbGVhbnVwKHJ0d2Rldiwgc3RhLVxcdTAwM2V0eHFbaV0pO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvbWFpbi5jLTM5Ni1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvbWFpbi5jPTYyMj1zdGF0aWMgdm9pZCBydHdfcmVzZXRfdmlmX2l0ZXIodm9pZCAqZGF0YSwgdTggKm1hYywgc3RydWN0IGllZWU4MDIxMV92aWYgKnZpZilcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvbWFpbi5jLTYyOC1cXHRydHdfdmlmX2Fzc29jX2NoYW5nZWQocnR3dmlmLCBOVUxMKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L21haW4uYzo2Mjk6XFx0cnR3X3R4cV9jbGVhbnVwKHJ0d2RldiwgdmlmLVxcdTAwM2V0eHEpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvbWFpbi5jLTYzMC1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvbWFpbi5jPTY3ND1zdGF0aWMgdm9pZCBydHdfZndfcmVjb3Zlcnlfd29yayhzdHJ1Y3Qgd29ya19zdHJ1Y3QgKndvcmspXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L21haW4uYy02ODUtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9tYWluLmM6Njg2OnN0cnVjdCBydHdfdHhxX2JhX2l0ZXJfZGF0YSB7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9tYWluLmMtNjg3LX07XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9tYWluLmMtNjg4LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvbWFpbi5jOjY4OTpzdGF0aWMgdm9pZCBydHdfdHhxX2JhX2l0ZXIodm9pZCAqZGF0YSwgc3RydWN0IGllZWU4MDIxMV9zdGEgKnN0YSlcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L21haW4uYy02OTAte1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9tYWluLmMtNzAwLVxcdFxcdFxcdHN0cnVjdCBpZWVlODAyMTFfdHhxICp0eHE7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9tYWluLmM6NzAxOlxcdFxcdFxcdHN0cnVjdCBydHdfdHhxICpydHd0eHE7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9tYWluLmMtNzAyLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvbWFpbi5jLTcwMy1cXHRcXHRcXHR0eHEgPSBzdGEtXFx1MDAzZXR4cVt0aWRdO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvbWFpbi5jOjcwNDpcXHRcXHRcXHRydHd0eHEgPSAoc3RydWN0IHJ0d190eHEgKil0eHEtXFx1MDAzZWRydl9wcml2O1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvbWFpbi5jLTcwNS1cXHRcXHRcXHRzZXRfYml0KFJUV19UWFFfQkxPQ0tfQkEsIFxcdTAwMjZydHd0eHEtXFx1MDAzZWZsYWdzKTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvbWFpbi5jLTcxMS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L21haW4uYzo3MTI6c3RhdGljIHZvaWQgcnR3X3R4cV9iYV93b3JrKHN0cnVjdCB3b3JrX3N0cnVjdCAqd29yaylcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L21haW4uYy03MTMte1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvbWFpbi5jLTcxNC1cXHRzdHJ1Y3QgcnR3X2RldiAqcnR3ZGV2ID0gY29udGFpbmVyX29mKHdvcmssIHN0cnVjdCBydHdfZGV2LCBiYV93b3JrKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L21haW4uYzo3MTU6XFx0c3RydWN0IHJ0d190eHFfYmFfaXRlcl9kYXRhIGRhdGE7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9tYWluLmMtNzE2LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvbWFpbi5jOjcxNzpcXHRydHdfaXRlcmF0ZV9zdGFzX2F0b21pYyhydHdkZXYsIHJ0d190eHFfYmFfaXRlciwgXFx1MDAyNmRhdGEpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvbWFpbi5jLTcxOC19XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L21haW4uYz0yMTM4PWludCBydHdfY29yZV9pbml0KHN0cnVjdCBydHdfZGV2ICpydHdkZXYpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L21haW4uYy0yMTQ3LVxcdHRpbWVyX3NldHVwKFxcdTAwMjZydHdkZXYtXFx1MDAzZXR4X3JlcG9ydC5wdXJnZV90aW1lcixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L21haW4uYzoyMTQ4OlxcdFxcdCAgICBydHdfdHhfcmVwb3J0X3B1cmdlX3RpbWVyLCAwKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L21haW4uYzoyMTQ5OlxcdHJ0d2Rldi1cXHUwMDNldHhfd3EgPSBhbGxvY193b3JrcXVldWUoXFxcInJ0d190eF93cVxcXCIsIFdRX1VOQk9VTkQgfCBXUV9ISUdIUFJJLCAwKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L21haW4uYy0yMTUwLVxcdGlmICghcnR3ZGV2LVxcdTAwM2V0eF93cSkge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvbWFpbi5jOjIxNTE6XFx0XFx0cnR3X3dhcm4ocnR3ZGV2LCBcXFwiYWxsb2Nfd29ya3F1ZXVlIHJ0d190eF93cSBmYWlsZWRcXFxcblxcXCIpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvbWFpbi5jLTIxNTItXFx0XFx0cmV0dXJuIC1FTk9NRU07XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L21haW4uYy0yMTY0LVxcdElOSVRfREVMQVlFRF9XT1JLKFxcdTAwMjZjb2V4LVxcdTAwM2V3bF9jY2tsb2NrX3dvcmssIHJ0d19jb2V4X3dsX2Nja2xvY2tfd29yayk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9tYWluLmM6MjE2NTpcXHRJTklUX1dPUksoXFx1MDAyNnJ0d2Rldi1cXHUwMDNldHhfd29yaywgcnR3X3R4X3dvcmspO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvbWFpbi5jLTIxNjYtXFx0SU5JVF9XT1JLKFxcdTAwMjZydHdkZXYtXFx1MDAzZWMyaF93b3JrLCBydHdfYzJoX3dvcmspO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9tYWluLmMtMjE2OS1cXHRJTklUX1dPUksoXFx1MDAyNnJ0d2Rldi1cXHUwMDNldXBkYXRlX2JlYWNvbl93b3JrLCBydHdfZndfdXBkYXRlX2JlYWNvbl93b3JrKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L21haW4uYzoyMTcwOlxcdElOSVRfV09SSyhcXHUwMDI2cnR3ZGV2LVxcdTAwM2ViYV93b3JrLCBydHdfdHhxX2JhX3dvcmspO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvbWFpbi5jLTIxNzEtXFx0c2tiX3F1ZXVlX2hlYWRfaW5pdChcXHUwMDI2cnR3ZGV2LVxcdTAwM2VjMmhfcXVldWUpO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9tYWluLmM9MjI1NT1pbnQgcnR3X3JlZ2lzdGVyX2h3KHN0cnVjdCBydHdfZGV2ICpydHdkZXYsIHN0cnVjdCBpZWVlODAyMTFfaHcgKmh3KVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9tYWluLmMtMjI2Ny1cXHRody1cXHUwMDNlcXVldWVzID0gSUVFRTgwMjExX05VTV9BQ1M7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9tYWluLmM6MjI2ODpcXHRody1cXHUwMDNldHhxX2RhdGFfc2l6ZSA9IHNpemVvZihzdHJ1Y3QgcnR3X3R4cSk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9tYWluLmMtMjI2OS1cXHRody1cXHUwMDNlc3RhX2RhdGFfc2l6ZSA9IHNpemVvZihzdHJ1Y3QgcnR3X3N0YV9pbmZvKTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvbWFpbi5oPTE5MT1lbnVtIHJ0d19jaGlwX3R5cGUge1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9tYWluLmgtMjAxLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvbWFpbi5oOjIwMjplbnVtIHJ0d190eF9xdWV1ZV90eXBlIHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L21haW4uaC0yMDMtXFx0LyogdGhlIG9yZGVyIG9mIEFDIHF1ZXVlcyBtYXR0ZXJzICovXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L21haW4uaD0zNDQ9ZW51bSBydHdfcmVndWxhdG9yeV9kb21haW5zIHtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvbWFpbi5oLTM2MS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L21haW4uaDozNjI6ZW51bSBydHdfdHhxX2ZsYWdzIHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L21haW4uaC0zNjMtXFx0UlRXX1RYUV9BTVBEVSxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvbWFpbi5oPTUyMD1zdHJ1Y3QgcnR3XzVnX3R4cHdyX2lkeCB7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L21haW4uaC01MzItXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9tYWluLmg6NTMzOnN0cnVjdCBydHdfdHhwd3JfaWR4IHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L21haW4uaC01MzQtXFx0c3RydWN0IHJ0d18yZ190eHB3cl9pZHggcHdyX2lkeF8yZztcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvbWFpbi5oPTU5OT1zdHJ1Y3QgcnR3X3ZpZl9wb3J0IHtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvbWFpbi5oLTYwNi1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L21haW4uaDo2MDc6c3RydWN0IHJ0d190eF9wa3RfaW5mbyB7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9tYWluLmgtNjA4LVxcdHUzMiB0eF9wa3Rfc2l6ZTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvbWFpbi5oPTczNz1zdHJ1Y3QgcnR3X3NlY19kZXNjIHtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvbWFpbi5oLTc0NS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L21haW4uaDo3NDY6c3RydWN0IHJ0d190eF9yZXBvcnQge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvbWFpbi5oLTc0Ny1cXHQvKiBwcm90ZWN0IHRoZSB0eCByZXBvcnQgcXVldWUgKi9cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvbWFpbi5oPTc1ND1zdHJ1Y3QgcnR3X3JhX3JlcG9ydCB7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L21haW4uaC03NTktXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9tYWluLmg6NzYwOnN0cnVjdCBydHdfdHhxIHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L21haW4uaC03NjEtXFx0c3RydWN0IGxpc3RfaGVhZCBsaXN0O1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9tYWluLmg9ODYyPXN0cnVjdCBydHdfY2hpcF9vcHMge1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9tYWluLmgtOTEyLVxcdHZvaWQgKCpmaWxsX3R4ZGVzY19jaGVja3N1bSkoc3RydWN0IHJ0d19kZXYgKnJ0d2RldixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L21haW4uaDo5MTM6XFx0XFx0XFx0XFx0ICAgICBzdHJ1Y3QgcnR3X3R4X3BrdF9pbmZvICpwa3RfaW5mbyxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L21haW4uaC05MTQtXFx0XFx0XFx0XFx0ICAgICB1OCAqdHhkZXNjKTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvbWFpbi5oPTE3OTI9c3RydWN0IHJ0d19lZnVzZSB7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L21haW4uaC0xODQxLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvbWFpbi5oOjE4NDI6XFx0c3RydWN0IHJ0d190eHB3cl9pZHggdHhwd3JfaWR4X3RhYmxlWzRdO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvbWFpbi5oLTE4NDMtfTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvbWFpbi5oPTIwNjA9c3RydWN0IHJ0d19kZXYge1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9tYWluLmgtMjEwMi1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L21haW4uaDoyMTAzOlxcdHN0cnVjdCBydHdfdHhfcmVwb3J0IHR4X3JlcG9ydDtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L21haW4uaC0yMTA0LVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9tYWluLmg9MjE0Nj1zdGF0aWMgaW5saW5lIGJvb2wgcnR3X2lzX2Fzc29jKHN0cnVjdCBydHdfZGV2ICpydHdkZXYpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L21haW4uaC0yMTUwLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvbWFpbi5oOjIxNTE6c3RhdGljIGlubGluZSBzdHJ1Y3QgaWVlZTgwMjExX3R4cSAqcnR3dHhxX3RvX3R4cShzdHJ1Y3QgcnR3X3R4cSAqcnR3dHhxKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvbWFpbi5oLTIxNTIte1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9tYWluLmg9MjI0Nz12b2lkIHJ0d192aWZfcG9ydF9jb25maWcoc3RydWN0IHJ0d19kZXYgKnJ0d2Rldiwgc3RydWN0IHJ0d192aWYgKnJ0d3ZpZixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L21haW4uaC0yMjQ4LVxcdFxcdFxcdCB1MzIgY29uZmlnKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L21haW4uaDoyMjQ5OnZvaWQgcnR3X3R4X3JlcG9ydF9wdXJnZV90aW1lcihzdHJ1Y3QgdGltZXJfbGlzdCAqdCk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9tYWluLmgtMjI1MC12b2lkIHJ0d191cGRhdGVfc3RhX2luZm8oc3RydWN0IHJ0d19kZXYgKnJ0d2Rldiwgc3RydWN0IHJ0d19zdGFfaW5mbyAqc2ksXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3BjaS5jPTM1PXN0YXRpYyB1OCBydHdfcGNpX2dldF90eF9xc2VsKHN0cnVjdCBza19idWZmICpza2IsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9wY2kuYzozNjpcXHRcXHRcXHQgICAgICBlbnVtIHJ0d190eF9xdWV1ZV90eXBlIHF1ZXVlKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcGNpLmMtMzcte1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9wY2kuYz01Mzg9c3RhdGljIHZvaWQgcnR3X3BjaV9kbWFfcmVsZWFzZShzdHJ1Y3QgcnR3X2RldiAqcnR3ZGV2LCBzdHJ1Y3QgcnR3X3BjaSAqcnR3cGNpKVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9wY2kuYy01NDAtXFx0c3RydWN0IHJ0d19wY2lfdHhfcmluZyAqdHhfcmluZztcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3BjaS5jOjU0MTpcXHRlbnVtIHJ0d190eF9xdWV1ZV90eXBlIHF1ZXVlO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcGNpLmMtNTQyLVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9wY2kuYz02MDM9c3RhdGljIHZvaWQgcnR3X3BjaV9kZWVwX3BzX2VudGVyKHN0cnVjdCBydHdfZGV2ICpydHdkZXYpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3BjaS5jLTYwNi1cXHRzdHJ1Y3QgcnR3X3BjaV90eF9yaW5nICp0eF9yaW5nO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcGNpLmM6NjA3OlxcdGVudW0gcnR3X3R4X3F1ZXVlX3R5cGUgcXVldWU7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9wY2kuYy02MDgtXFx0Ym9vbCB0eF9lbXB0eSA9IHRydWU7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3BjaS5jPTc1ND1zdGF0aWMgdm9pZCBydHdfcGNpX2ZsdXNoX3F1ZXVlcyhzdHJ1Y3QgcnR3X2RldiAqcnR3ZGV2LCB1MzIgcXVldWVzLCBib29sIGRyb3ApXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3BjaS5jLTc2Ni1cXHRcXHRcXHRpZiAocXVldWVzIFxcdTAwMjYgQklUKGkpKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcGNpLmM6NzY3OlxcdFxcdFxcdFxcdHBjaV9xdWV1ZXMgfD0gQklUKHJ0d190eF9hY190b19od3EoaSkpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcGNpLmMtNzY4LVxcdH1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcGNpLmM9NzczPXN0YXRpYyB2b2lkIHJ0d19wY2lfdHhfa2lja19vZmZfcXVldWUoc3RydWN0IHJ0d19kZXYgKnJ0d2RldixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3BjaS5jOjc3NDpcXHRcXHRcXHRcXHQgICAgICBlbnVtIHJ0d190eF9xdWV1ZV90eXBlIHF1ZXVlKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcGNpLmMtNzc1LXtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcGNpLmM9NzkwPXN0YXRpYyB2b2lkIHJ0d19wY2lfdHhfa2lja19vZmYoc3RydWN0IHJ0d19kZXYgKnJ0d2RldilcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcGNpLmMtNzkyLVxcdHN0cnVjdCBydHdfcGNpICpydHdwY2kgPSAoc3RydWN0IHJ0d19wY2kgKilydHdkZXYtXFx1MDAzZXByaXY7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9wY2kuYzo3OTM6XFx0ZW51bSBydHdfdHhfcXVldWVfdHlwZSBxdWV1ZTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3BjaS5jLTc5NC1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcGNpLmM9ODAwPXN0YXRpYyBpbnQgcnR3X3BjaV90eF93cml0ZV9kYXRhKHN0cnVjdCBydHdfZGV2ICpydHdkZXYsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9wY2kuYzo4MDE6XFx0XFx0XFx0XFx0IHN0cnVjdCBydHdfdHhfcGt0X2luZm8gKnBrdF9pbmZvLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcGNpLmMtODAyLVxcdFxcdFxcdFxcdCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcGNpLmM6ODAzOlxcdFxcdFxcdFxcdCBlbnVtIHJ0d190eF9xdWV1ZV90eXBlIHF1ZXVlKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcGNpLmMtODA0LXtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcGNpLmMtODI4LVxcdHBrdF9pbmZvLVxcdTAwM2Vxc2VsID0gcnR3X3BjaV9nZXRfdHhfcXNlbChza2IsIHF1ZXVlKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3BjaS5jOjgyOTpcXHRydHdfdHhfZmlsbF90eF9kZXNjKHJ0d2RldiwgcGt0X2luZm8sIHNrYik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9wY2kuYy04MzAtXFx0ZG1hID0gZG1hX21hcF9zaW5nbGUoXFx1MDAyNnJ0d3BjaS1cXHUwMDNlcGRldi1cXHUwMDNlZGV2LCBza2ItXFx1MDAzZWRhdGEsIHNrYi1cXHUwMDNlbGVuLFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9wY2kuYz04NzA9c3RhdGljIGludCBydHdfcGNpX3dyaXRlX2RhdGFfcnN2ZF9wYWdlKHN0cnVjdCBydHdfZGV2ICpydHdkZXYsIHU4ICpidWYsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3BjaS5jLTg3My1cXHRzdHJ1Y3Qgc2tfYnVmZiAqc2tiO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcGNpLmM6ODc0OlxcdHN0cnVjdCBydHdfdHhfcGt0X2luZm8gcGt0X2luZm8gPSB7MH07XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9wY2kuYy04NzUtXFx0dTggcmVnX2Jjbl93b3JrO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9wY2kuYy04NzctXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9wY2kuYzo4Nzg6XFx0c2tiID0gcnR3X3R4X3dyaXRlX2RhdGFfcnN2ZF9wYWdlX2dldChydHdkZXYsIFxcdTAwMjZwa3RfaW5mbywgYnVmLCBzaXplKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3BjaS5jLTg3OS1cXHRpZiAoIXNrYilcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcGNpLmM9ODk2PXN0YXRpYyBpbnQgcnR3X3BjaV93cml0ZV9kYXRhX2gyYyhzdHJ1Y3QgcnR3X2RldiAqcnR3ZGV2LCB1OCAqYnVmLCB1MzIgc2l6ZSlcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcGNpLmMtODk4LVxcdHN0cnVjdCBza19idWZmICpza2I7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9wY2kuYzo4OTk6XFx0c3RydWN0IHJ0d190eF9wa3RfaW5mbyBwa3RfaW5mbyA9IHswfTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3BjaS5jLTkwMC1cXHRpbnQgcmV0O1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcGNpLmMtOTAxLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcGNpLmM6OTAyOlxcdHNrYiA9IHJ0d190eF93cml0ZV9kYXRhX2gyY19nZXQocnR3ZGV2LCBcXHUwMDI2cGt0X2luZm8sIGJ1Ziwgc2l6ZSk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9wY2kuYy05MDMtXFx0aWYgKCFza2IpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3BjaS5jPTkxNz1zdGF0aWMgaW50IHJ0d19wY2lfdHhfd3JpdGUoc3RydWN0IHJ0d19kZXYgKnJ0d2RldixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3BjaS5jOjkxODpcXHRcXHRcXHQgICAgc3RydWN0IHJ0d190eF9wa3RfaW5mbyAqcGt0X2luZm8sXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9wY2kuYy05MTktXFx0XFx0XFx0ICAgIHN0cnVjdCBza19idWZmICpza2IpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9wY2kuYy05MjAte1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcGNpLmM6OTIxOlxcdGVudW0gcnR3X3R4X3F1ZXVlX3R5cGUgcXVldWUgPSBydHdfdHhfcXVldWVfbWFwcGluZyhza2IpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcGNpLmMtOTIyLVxcdHN0cnVjdCBydHdfcGNpICpydHdwY2kgPSAoc3RydWN0IHJ0d19wY2kgKilydHdkZXYtXFx1MDAzZXByaXY7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3BjaS5jPTk0MT1zdGF0aWMgdm9pZCBydHdfcGNpX3R4X2lzcihzdHJ1Y3QgcnR3X2RldiAqcnR3ZGV2LCBzdHJ1Y3QgcnR3X3BjaSAqcnR3cGNpLFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9wY2kuYy05OTgtXFx0XFx0aWYgKGluZm8tXFx1MDAzZWZsYWdzIFxcdTAwMjYgSUVFRTgwMjExX1RYX0NUTF9SRVFfVFhfU1RBVFVTKSB7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9wY2kuYzo5OTk6XFx0XFx0XFx0cnR3X3R4X3JlcG9ydF9lbnF1ZXVlKHJ0d2Rldiwgc2tiLCB0eF9kYXRhLVxcdTAwM2Vzbik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9wY2kuYy0xMDAwLVxcdFxcdFxcdGNvbnRpbnVlO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9waHkuYz0xNzYwPXZvaWQgcnR3X3BhcnNlX3RibF90eHB3cl9sbXQoc3RydWN0IHJ0d19kZXYgKnJ0d2RldixcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcGh5LmMtMTc2Mi17XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9waHkuYzoxNzYzOlxcdGNvbnN0IHN0cnVjdCBydHdfdHhwd3JfbG10X2NmZ19wYWlyICpwID0gdGJsLVxcdTAwM2VkYXRhO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcGh5LmM6MTc2NDpcXHRjb25zdCBzdHJ1Y3QgcnR3X3R4cHdyX2xtdF9jZmdfcGFpciAqZW5kID0gcCArIHRibC1cXHUwMDNlc2l6ZTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3BoeS5jLTE3NjUtXFx0dTMyIHJlZ2RfY2ZnX2ZsYWcgPSAwO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9waHkuYz0yMjM5PXZvaWQgcnR3X2dldF90eF9wb3dlcl9wYXJhbXMoc3RydWN0IHJ0d19kZXYgKnJ0d2RldiwgdTggcGF0aCwgdTggcmF0ZSwgdTggYncsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3BoeS5jLTIyNDMtXFx0c3RydWN0IHJ0d19kbV9pbmZvICpkbV9pbmZvID0gXFx1MDAyNnJ0d2Rldi1cXHUwMDNlZG1faW5mbztcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3BoeS5jOjIyNDQ6XFx0c3RydWN0IHJ0d190eHB3cl9pZHggKnB3cl9pZHg7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9waHkuYy0yMjQ1LVxcdHU4IGdyb3VwLCBiYW5kO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9waHkuaD03MD12b2lkIHJ0d19waHlfdHhfcGF0aF9kaXZlcnNpdHkoc3RydWN0IHJ0d19kZXYgKnJ0d2Rldik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9waHkuaC03MS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3BoeS5oOjcyOnN0cnVjdCBydHdfdHhwd3JfbG10X2NmZ19wYWlyIHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3BoeS5oLTczLVxcdHU4IHJlZ2Q7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg3MDNiX3RhYmxlcy5jPTE3PVJUV19ERUNMX1RBQkxFX0JCX1BHKHJ0dzg3MDNiX2JiX3BnKTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODcwM2JfdGFibGVzLmMtMjMtICovXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4NzAzYl90YWJsZXMuYzoyNDpzdGF0aWMgY29uc3Qgc3RydWN0IHJ0d190eHB3cl9sbXRfY2ZnX3BhaXIgcnR3ODcwM2JfdHhwd3JfbG10W10gPSB7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4NzAzYl90YWJsZXMuYy0yNS1cXHR7MCwgMCwgMCwgMCwgMSwgMzB9LFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4NzIzZF90YWJsZS5jPTkzOT1SVFdfREVDTF9UQUJMRV9SRl9SQURJTyhydHc4NzIzZF9yZl9hLCBBKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg3MjNkX3RhYmxlLmMtOTQwLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODcyM2RfdGFibGUuYzo5NDE6c3RhdGljIGNvbnN0IHN0cnVjdCBydHdfdHhwd3JfbG10X2NmZ19wYWlyIHJ0dzg3MjNkX3R4cHdyX2xtdFtdID0ge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODcyM2RfdGFibGUuYy05NDItXFx0ezAsIDAsIDAsIDAsIDEsIDMwLCB9LFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4NzIzeC5jPTEwMT1zdGF0aWMgdm9pZCBfX3J0dzg3MjN4X2RlYnVnX3R4cHdyX2xpbWl0KHN0cnVjdCBydHdfZGV2ICpydHdkZXYsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4NzIzeC5jOjEwMjpcXHRcXHRcXHRcXHRcXHQgc3RydWN0IHJ0d190eHB3cl9pZHggKnRhYmxlLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODcyM3guYy0xMDMtXFx0XFx0XFx0XFx0XFx0IGludCB0eF9wYXRoX2NvdW50KVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4NzIzeC5jPTY4Mj12b2lkIF9fcnR3ODcyM3hfZmlsbF90eGRlc2NfY2hlY2tzdW0oc3RydWN0IHJ0d19kZXYgKnJ0d2RldixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg3MjN4LmM6NjgzOlxcdFxcdFxcdFxcdCAgICAgc3RydWN0IHJ0d190eF9wa3RfaW5mbyAqcGt0X2luZm8sXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4NzIzeC5jLTY4NC1cXHRcXHRcXHRcXHQgICAgIHU4ICp0eGRlc2MpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg3MjN4LmMtNjg4LVxcdF9fbGUxNiAqZGF0YSA9IChfX2xlMTYgKikodHhkZXNjKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg3MjN4LmM6Njg5OlxcdHN0cnVjdCBydHdfdHhfZGVzYyAqdHhfZGVzYyA9IChzdHJ1Y3QgcnR3X3R4X2Rlc2MgKil0eGRlc2M7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4NzIzeC5jLTY5MC1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODcyM3guaD02Nj1zdHJ1Y3QgcnR3ODcyM3hfZWZ1c2Uge1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4NzIzeC5oLTcyLVxcdC8qIHBvd2VyIGluZGV4IGZvciBmb3VyIFJGIHBhdGhzICovXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4NzIzeC5oOjczOlxcdHN0cnVjdCBydHdfdHhwd3JfaWR4IHR4cHdyX2lkeF90YWJsZVs0XTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg3MjN4LmgtNzQtXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg3MjN4Lmg9MTIyPXN0cnVjdCBydHc4NzIzeF9jb21tb24ge1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4NzIzeC5oLTE1NS1cXHR2b2lkICgqZmlsbF90eGRlc2NfY2hlY2tzdW0pKHN0cnVjdCBydHdfZGV2ICpydHdkZXYsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4NzIzeC5oOjE1NjpcXHRcXHRcXHRcXHQgICAgIHN0cnVjdCBydHdfdHhfcGt0X2luZm8gKnBrdF9pbmZvLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODcyM3guaC0xNTctXFx0XFx0XFx0XFx0ICAgICB1OCAqdHhkZXNjKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg3MjN4LmgtMTU4LVxcdHZvaWQgKCpkZWJ1Z190eHB3cl9saW1pdCkoc3RydWN0IHJ0d19kZXYgKnJ0d2RldixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg3MjN4Lmg6MTU5OlxcdFxcdFxcdFxcdCAgc3RydWN0IHJ0d190eHB3cl9pZHggKnRhYmxlLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODcyM3guaC0xNjAtXFx0XFx0XFx0XFx0ICBpbnQgdHhfcGF0aF9jb3VudCk7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg3MjN4Lmg9MzY1PXZvaWQgcnR3ODcyM3hfZGVidWdfdHhwd3JfbGltaXQoc3RydWN0IHJ0d19kZXYgKnJ0d2RldixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg3MjN4Lmg6MzY2OlxcdFxcdFxcdFxcdHN0cnVjdCBydHdfdHhwd3JfaWR4ICp0YWJsZSxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg3MjN4LmgtMzY3LVxcdFxcdFxcdFxcdGludCB0eF9wYXRoX2NvdW50KVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4NzIzeC5oPTQ1MT12b2lkIHJ0dzg3MjN4X2ZpbGxfdHhkZXNjX2NoZWNrc3VtKHN0cnVjdCBydHdfZGV2ICpydHdkZXYsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4NzIzeC5oOjQ1MjpcXHRcXHRcXHRcXHQgICBzdHJ1Y3QgcnR3X3R4X3BrdF9pbmZvICpwa3RfaW5mbyxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg3MjN4LmgtNDUzLVxcdFxcdFxcdFxcdCAgIHU4ICp0eGRlc2MpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MTJhLmM9ODg3PXN0YXRpYyB2b2lkIHJ0dzg4MTJhX2ZpbGxfdHhkZXNjX2NoZWNrc3VtKHN0cnVjdCBydHdfZGV2ICpydHdkZXYsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODEyYS5jOjg4ODpcXHRcXHRcXHRcXHRcXHQgIHN0cnVjdCBydHdfdHhfcGt0X2luZm8gKnBrdF9pbmZvLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgxMmEuYy04ODktXFx0XFx0XFx0XFx0XFx0ICB1OCAqdHhkZXNjKVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODEyYV90YWJsZS5jPTE2ODg9UlRXX0RFQ0xfVEFCTEVfUkZfUkFESU8ocnR3ODgxMmFfcmZfYiwgQik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODEyYV90YWJsZS5jLTE2ODktXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODEyYV90YWJsZS5jOjE2OTA6c3RhdGljIGNvbnN0IHN0cnVjdCBydHdfdHhwd3JfbG10X2NmZ19wYWlyIHJ0dzg4MTJhX3R4cHdyX2xtdFtdID0ge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgxMmFfdGFibGUuYy0xNjkxLVxcdHsgMCwgMCwgMCwgMCwgMSwgMzYsIH0sXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MTRhLmM9MjA0Mj1zdGF0aWMgdm9pZCBydHc4ODE0YV9maWxsX3R4ZGVzY19jaGVja3N1bShzdHJ1Y3QgcnR3X2RldiAqcnR3ZGV2LFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgxNGEuYzoyMDQzOlxcdFxcdFxcdFxcdFxcdCAgc3RydWN0IHJ0d190eF9wa3RfaW5mbyAqcGt0X2luZm8sXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODE0YS5jLTIwNDQtXFx0XFx0XFx0XFx0XFx0ICB1OCAqdHhkZXNjKVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODE0YS5oPTIzPXN0cnVjdCBydHc4ODE0YV9lZnVzZSB7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MTRhLmgtMjktXFx0LyogcG93ZXIgaW5kZXggZm9yIGZvdXIgUkYgcGF0aHMgKi9cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MTRhLmg6MzA6XFx0c3RydWN0IHJ0d190eHB3cl9pZHggdHhwd3JfaWR4X3RhYmxlWzRdO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgxNGEuaC0zMS1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgxNGFfdGFibGUuYz0xNDU4Mz1SVFdfREVDTF9UQUJMRV9SRl9SQURJTyhydHc4ODE0YV9yZl9kLCBEKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MTRhX3RhYmxlLmMtMTQ1ODQtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODE0YV90YWJsZS5jOjE0NTg1OnN0YXRpYyBjb25zdCBzdHJ1Y3QgcnR3X3R4cHdyX2xtdF9jZmdfcGFpciBydHc4ODE0YV90eHB3cl9sbXRbXSA9IHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MTRhX3RhYmxlLmMtMTQ1ODYtXFx0eyAwLCAwLCAwLCAwLCAxLCAzNiwgfSxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgxNGFfdGFibGUuYz0xNTU2MD1SVFdfREVDTF9UQUJMRV9UWFBXUl9MTVQocnR3ODgxNGFfdHhwd3JfbG10KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MTRhX3RhYmxlLmMtMTU1NjEtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODE0YV90YWJsZS5jOjE1NTYyOnN0YXRpYyBjb25zdCBzdHJ1Y3QgcnR3X3R4cHdyX2xtdF9jZmdfcGFpciBydHc4ODE0YV90eHB3cl9sbXRfdHlwZTBbXSA9IHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MTRhX3RhYmxlLmMtMTU1NjMtXFx0eyAwLCAwLCAwLCAwLCAxLCAzMiwgfSxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgxNGFfdGFibGUuYz0xNjUzNz1SVFdfREVDTF9UQUJMRV9UWFBXUl9MTVQocnR3ODgxNGFfdHhwd3JfbG10X3R5cGUwKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MTRhX3RhYmxlLmMtMTY1MzgtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODE0YV90YWJsZS5jOjE2NTM5OnN0YXRpYyBjb25zdCBzdHJ1Y3QgcnR3X3R4cHdyX2xtdF9jZmdfcGFpciBydHc4ODE0YV90eHB3cl9sbXRfdHlwZTFbXSA9IHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MTRhX3RhYmxlLmMtMTY1NDAtXFx0XFx0eyAwLCAwLCAwLCAwLCAxLCAzNCwgfSxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgxNGFfdGFibGUuYz0xNzUxND1SVFdfREVDTF9UQUJMRV9UWFBXUl9MTVQocnR3ODgxNGFfdHhwd3JfbG10X3R5cGUxKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MTRhX3RhYmxlLmMtMTc1MTUtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODE0YV90YWJsZS5jOjE3NTE2OnN0YXRpYyBjb25zdCBzdHJ1Y3QgcnR3X3R4cHdyX2xtdF9jZmdfcGFpciBydHc4ODE0YV90eHB3cl9sbXRfdHlwZTJbXSA9IHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MTRhX3RhYmxlLmMtMTc1MTctXFx0eyAwLCAwLCAwLCAwLCAxLCA0MiwgfSxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgxNGFfdGFibGUuYz0xODQ5MT1SVFdfREVDTF9UQUJMRV9UWFBXUl9MTVQocnR3ODgxNGFfdHhwd3JfbG10X3R5cGUyKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MTRhX3RhYmxlLmMtMTg0OTItXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODE0YV90YWJsZS5jOjE4NDkzOnN0YXRpYyBjb25zdCBzdHJ1Y3QgcnR3X3R4cHdyX2xtdF9jZmdfcGFpciBydHc4ODE0YV90eHB3cl9sbXRfdHlwZTNbXSA9IHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MTRhX3RhYmxlLmMtMTg0OTQtXFx0eyAwLCAwLCAwLCAwLCAxLCA0NiwgfSxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgxNGFfdGFibGUuYz0xOTQ2OD1SVFdfREVDTF9UQUJMRV9UWFBXUl9MTVQocnR3ODgxNGFfdHhwd3JfbG10X3R5cGUzKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MTRhX3RhYmxlLmMtMTk0NjktXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODE0YV90YWJsZS5jOjE5NDcwOnN0YXRpYyBjb25zdCBzdHJ1Y3QgcnR3X3R4cHdyX2xtdF9jZmdfcGFpciBydHc4ODE0YV90eHB3cl9sbXRfdHlwZTVbXSA9IHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MTRhX3RhYmxlLmMtMTk0NzEtXFx0eyAwLCAwLCAwLCAwLCAxLCA0NiwgfSxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgxNGFfdGFibGUuYz0yMDQ0NT1SVFdfREVDTF9UQUJMRV9UWFBXUl9MTVQocnR3ODgxNGFfdHhwd3JfbG10X3R5cGU1KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MTRhX3RhYmxlLmMtMjA0NDYtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODE0YV90YWJsZS5jOjIwNDQ3OnN0YXRpYyBjb25zdCBzdHJ1Y3QgcnR3X3R4cHdyX2xtdF9jZmdfcGFpciBydHc4ODE0YV90eHB3cl9sbXRfdHlwZTdbXSA9IHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MTRhX3RhYmxlLmMtMjA0NDgtXFx0eyAwLCAwLCAwLCAwLCAxLCA0NCwgfSxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgxNGFfdGFibGUuYz0yMTQyMj1SVFdfREVDTF9UQUJMRV9UWFBXUl9MTVQocnR3ODgxNGFfdHhwd3JfbG10X3R5cGU3KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MTRhX3RhYmxlLmMtMjE0MjMtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODE0YV90YWJsZS5jOjIxNDI0OnN0YXRpYyBjb25zdCBzdHJ1Y3QgcnR3X3R4cHdyX2xtdF9jZmdfcGFpciBydHc4ODE0YV90eHB3cl9sbXRfdHlwZThbXSA9IHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MTRhX3RhYmxlLmMtMjE0MjUtXFx0eyAwLCAwLCAwLCAwLCAxLCA0NiwgfSxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMWEuYz03MzQ9c3RhdGljIHZvaWQgcnR3ODgyMWFfZmlsbF90eGRlc2NfY2hlY2tzdW0oc3RydWN0IHJ0d19kZXYgKnJ0d2RldixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjFhLmM6NzM1OlxcdFxcdFxcdFxcdFxcdCAgc3RydWN0IHJ0d190eF9wa3RfaW5mbyAqcGt0X2luZm8sXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIxYS5jLTczNi1cXHRcXHRcXHRcXHRcXHQgIHU4ICp0eGRlc2MpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjFhX3RhYmxlLmM9MTMzNT1SVFdfREVDTF9UQUJMRV9SRl9SQURJTyhydHc4ODIxYV9yZl9hLCBBKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjFhX3RhYmxlLmMtMTMzNi1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjFhX3RhYmxlLmM6MTMzNzpzdGF0aWMgY29uc3Qgc3RydWN0IHJ0d190eHB3cl9sbXRfY2ZnX3BhaXIgcnR3ODgyMWFfdHhwd3JfbG10W10gPSB7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIxYV90YWJsZS5jLTEzMzgtXFx0eyAwLCAwLCAwLCAwLCAxLCAzMiwgfSxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMWMuYz0xMjMxPXN0YXRpYyB2b2lkIHJ0dzg4MjFjX2ZpbGxfdHhkZXNjX2NoZWNrc3VtKHN0cnVjdCBydHdfZGV2ICpydHdkZXYsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIxYy5jOjEyMzI6XFx0XFx0XFx0XFx0XFx0ICBzdHJ1Y3QgcnR3X3R4X3BrdF9pbmZvICpwa3RfaW5mbyxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjFjLmMtMTIzMy1cXHRcXHRcXHRcXHRcXHQgIHU4ICp0eGRlc2MpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjFjLmg9NzQ9c3RydWN0IHJ0dzg4MjFjX2VmdXNlIHtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMWMuaC03OC1cXHQvKiBwb3dlciBpbmRleCBmb3IgZm91ciBSRiBwYXRocyAqL1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMWMuaDo3OTpcXHRzdHJ1Y3QgcnR3X3R4cHdyX2lkeCB0eHB3cl9pZHhfdGFibGVbNF07XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIxYy5oLTgwLVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIxY190YWJsZS5jPTYwMTE9UlRXX0RFQ0xfVEFCTEVfUkZfUkFESU8ocnR3ODgyMWNfcmZfYSwgQSk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIxY190YWJsZS5jLTYwMTItXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIxY190YWJsZS5jOjYwMTM6c3RhdGljIGNvbnN0IHN0cnVjdCBydHdfdHhwd3JfbG10X2NmZ19wYWlyIHJ0dzg4MjFjX3R4cHdyX2xtdF90eXBlMFtdID0ge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMWNfdGFibGUuYy02MDE0LVxcdHsgMCwgMCwgMCwgMCwgMSwgMzAsIH0sXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJiLmM9MTU5ND1zdGF0aWMgdm9pZCBydHc4ODIyYl9maWxsX3R4ZGVzY19jaGVja3N1bShzdHJ1Y3QgcnR3X2RldiAqcnR3ZGV2LFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmIuYzoxNTk1OlxcdFxcdFxcdFxcdFxcdCAgc3RydWN0IHJ0d190eF9wa3RfaW5mbyAqcGt0X2luZm8sXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYi5jLTE1OTYtXFx0XFx0XFx0XFx0XFx0ICB1OCAqdHhkZXNjKVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYi5oPTc0PXN0cnVjdCBydHc4ODIyYl9lZnVzZSB7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJiLmgtODAtXFx0LyogcG93ZXIgaW5kZXggZm9yIGZvdXIgUkYgcGF0aHMgKi9cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJiLmg6ODE6XFx0c3RydWN0IHJ0d190eHB3cl9pZHggdHhwd3JfaWR4X3RhYmxlWzRdO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmIuaC04Mi1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmJfdGFibGUuYz0yMDQzND1SVFdfREVDTF9UQUJMRV9SRl9SQURJTyhydHc4ODIyYl9yZl9iLCBCKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJiX3RhYmxlLmMtMjA0MzUtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYl90YWJsZS5jOjIwNDM2OnN0YXRpYyBjb25zdCBzdHJ1Y3QgcnR3X3R4cHdyX2xtdF9jZmdfcGFpciBydHc4ODIyYl90eHB3cl9sbXRfdHlwZTBbXSA9IHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJiX3RhYmxlLmMtMjA0MzctXFx0eyAwLCAwLCAwLCAwLCAxLCAzMiwgfSxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmJfdGFibGUuYz0yMTAyND1SVFdfREVDTF9UQUJMRV9UWFBXUl9MTVQocnR3ODgyMmJfdHhwd3JfbG10X3R5cGUwKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJiX3RhYmxlLmMtMjEwMjUtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYl90YWJsZS5jOjIxMDI2OnN0YXRpYyBjb25zdCBzdHJ1Y3QgcnR3X3R4cHdyX2xtdF9jZmdfcGFpciBydHc4ODIyYl90eHB3cl9sbXRfdHlwZTJbXSA9IHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJiX3RhYmxlLmMtMjEwMjctXFx0eyAwLCAwLCAwLCAwLCAxLCAzMiwgfSxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmJfdGFibGUuYz0yMTYxND1SVFdfREVDTF9UQUJMRV9UWFBXUl9MTVQocnR3ODgyMmJfdHhwd3JfbG10X3R5cGUyKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJiX3RhYmxlLmMtMjE2MTUtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYl90YWJsZS5jOjIxNjE2OnN0YXRpYyBjb25zdCBzdHJ1Y3QgcnR3X3R4cHdyX2xtdF9jZmdfcGFpciBydHc4ODIyYl90eHB3cl9sbXRfdHlwZTVbXSA9IHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJiX3RhYmxlLmMtMjE2MTctXFx0eyAwLCAwLCAwLCAwLCAxLCAzMiwgfSxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYz00NTYzPXN0YXRpYyB2b2lkIHJ0dzg4MjJjX2ZpbGxfdHhkZXNjX2NoZWNrc3VtKHN0cnVjdCBydHdfZGV2ICpydHdkZXYsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jOjQ1NjQ6XFx0XFx0XFx0XFx0XFx0ICBzdHJ1Y3QgcnR3X3R4X3BrdF9pbmZvICpwa3RfaW5mbyxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmMtNDU2NS1cXHRcXHRcXHRcXHRcXHQgIHU4ICp0eGRlc2MpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmg9NjE9c3RydWN0IHJ0dzg4MjJjX2VmdXNlIHtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuaC02Ny1cXHQvKiBwb3dlciBpbmRleCBmb3IgZm91ciBSRiBwYXRocyAqL1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuaDo2ODpcXHRzdHJ1Y3QgcnR3X3R4cHdyX2lkeCB0eHB3cl9pZHhfdGFibGVbNF07XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5oLTY5LVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyY190YWJsZS5jPTM5ODIyPVJUV19ERUNMX1RBQkxFX1JGX1JBRElPKHJ0dzg4MjJjX3JmX2IsIEIpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmNfdGFibGUuYy0zOTgyMy1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjX3RhYmxlLmM6Mzk4MjQ6c3RhdGljIGNvbnN0IHN0cnVjdCBydHdfdHhwd3JfbG10X2NmZ19wYWlyIHJ0dzg4MjJjX3R4cHdyX2xtdF90eXBlMFtdID0ge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmNfdGFibGUuYy0zOTgyNS1cXHR7IDAsIDAsIDAsIDAsIDEsIDcyLCB9LFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyY190YWJsZS5jPTQyMTY3PVJUV19ERUNMX1RBQkxFX1RYUFdSX0xNVChydHc4ODIyY190eHB3cl9sbXRfdHlwZTApO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmNfdGFibGUuYy00MjE2OC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjX3RhYmxlLmM6NDIxNjk6c3RhdGljIGNvbnN0IHN0cnVjdCBydHdfdHhwd3JfbG10X2NmZ19wYWlyIHJ0dzg4MjJjX3R4cHdyX2xtdF90eXBlNVtdID0ge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmNfdGFibGUuYy00MjE3MC1cXHR7IDAsIDAsIDAsIDAsIDEsIDcyLCB9LFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4OHh4YS5oPTI4PXN0cnVjdCBydHc4OHh4YV9lZnVzZSB7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4eHhhLmgtMzQtXFx0LyogcG93ZXIgaW5kZXggZm9yIGZvdXIgUkYgcGF0aHMgKi9cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4eHhhLmg6MzU6XFx0c3RydWN0IHJ0d190eHB3cl9pZHggdHhwd3JfaWR4X3RhYmxlWzRdO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODh4eGEuaC0zNi1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvc2Rpby5jPTQ3MD1zdGF0aWMgdTMyIHJ0d19zZGlvX2dldF90eF9hZGRyKHN0cnVjdCBydHdfZGV2ICpydHdkZXYsIHNpemVfdCBzaXplLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvc2Rpby5jOjQ3MTpcXHRcXHRcXHRcXHRlbnVtIHJ0d190eF9xdWV1ZV90eXBlIHF1ZXVlKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvc2Rpby5jLTQ3Mi17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3NkaW8uYz02MzU9c3RhdGljIGludCBydHdfc2Rpb193cml0ZV9wb3J0KHN0cnVjdCBydHdfZGV2ICpydHdkZXYsIHN0cnVjdCBza19idWZmICpza2IsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9zZGlvLmM6NjM2OlxcdFxcdFxcdCAgICAgICBlbnVtIHJ0d190eF9xdWV1ZV90eXBlIHF1ZXVlKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvc2Rpby5jLTYzNy17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3NkaW8uYz04NDc9c3RhdGljIHZvaWQgcnR3X3NkaW9fdHhfc2tiX3ByZXBhcmUoc3RydWN0IHJ0d19kZXYgKnJ0d2RldixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3NkaW8uYzo4NDg6XFx0XFx0XFx0XFx0ICAgIHN0cnVjdCBydHdfdHhfcGt0X2luZm8gKnBrdF9pbmZvLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvc2Rpby5jLTg0OS1cXHRcXHRcXHRcXHQgICAgc3RydWN0IHNrX2J1ZmYgKnNrYixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3NkaW8uYzo4NTA6XFx0XFx0XFx0XFx0ICAgIGVudW0gcnR3X3R4X3F1ZXVlX3R5cGUgcXVldWUpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9zZGlvLmMtODUxLXtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvc2Rpby5jLTg4MC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3NkaW8uYzo4ODE6XFx0cnR3X3R4X2ZpbGxfdHhfZGVzYyhydHdkZXYsIHBrdF9pbmZvLCBza2IpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvc2Rpby5jOjg4MjpcXHRydHdfdHhfZmlsbF90eGRlc2NfY2hlY2tzdW0ocnR3ZGV2LCBwa3RfaW5mbywgcGt0X2Rlc2MpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvc2Rpby5jLTg4My19XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3NkaW8uYz04ODU9c3RhdGljIGludCBydHdfc2Rpb193cml0ZV9kYXRhKHN0cnVjdCBydHdfZGV2ICpydHdkZXYsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9zZGlvLmM6ODg2OlxcdFxcdFxcdCAgICAgICBzdHJ1Y3QgcnR3X3R4X3BrdF9pbmZvICpwa3RfaW5mbyxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3NkaW8uYy04ODctXFx0XFx0XFx0ICAgICAgIHN0cnVjdCBza19idWZmICpza2IsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9zZGlvLmM6ODg4OlxcdFxcdFxcdCAgICAgICBlbnVtIHJ0d190eF9xdWV1ZV90eXBlIHF1ZXVlKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvc2Rpby5jLTg4OS17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3NkaW8uYz05MDA9c3RhdGljIGludCBydHdfc2Rpb193cml0ZV9kYXRhX3JzdmRfcGFnZShzdHJ1Y3QgcnR3X2RldiAqcnR3ZGV2LCB1OCAqYnVmLFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9zZGlvLmMtOTAyLXtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3NkaW8uYzo5MDM6XFx0c3RydWN0IHJ0d190eF9wa3RfaW5mbyBwa3RfaW5mbyA9IHt9O1xcblxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0xNFQwNjo0MjoyMy45OTE5MTU2ODJaIiwiU2VxIjoyMywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NzY5NTM2NjQ1NSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipBbmFseXppbmcgdGhlIFRhcmdldCBmb3IgRnV6emluZyoqXG5cbk9rYXksIHNvIEknbSBsb29raW5nIGF0IHRoaXMgY29kZSBhbmQgdHJ5aW5nIHRvIGZpZ3VyZSBvdXQgaWYgaXQncyBhIGdvb2QgY2FuZGlkYXRlIGZvciBmdXp6aW5nLiBgcnR3X3R4YCBpcyBkZWZpbml0ZWx5IHJlYWNoYWJsZSBiZWNhdXNlIGl0J3MgdGhlIG1hYzgwMjExIFRYIGNhbGxiYWNrLCBjYWxsZWQgdGhyb3VnaCBgcnR3X29wc190eGAuIEkgY2FuIHNlZSB0aGF0IGNsZWFybHkuIEJ1dCBteSBpbnRlcmVzdCBpcyBwaXF1ZWQgYmVjYXVzZSB0aGUgcGF0Y2ggbW9kaWZpZXMgYHJ0d191c2JfdHhfcXVldWVfbWFwcGluZ190b19xc2VsYCBpbiBgdXNiLmNgLiBOb3csIHRoYXQncyBjYWxsZWQgYnkgYHJ0d191c2JfdHhfd3JpdGVgLCB3aGljaCBpcyB0aGUgYHR4X3dyaXRlYCBjYWxsYmFjayAqc3BlY2lmaWNhbGx5KiBmb3IgVVNCIHRyYW5zbWlzc2lvbnMuIFNvLCB0aGF0J3MgZGVmaW5pdGVseSBhIHZpYWJsZSBwYXRoIGZvciBwYWNrZXRzIHNlbnQgb3ZlciBVU0IuXG5cblRoZSBtb3JlIEkgdGhpbmsgYWJvdXQgaXQsIHllYWgsIHRoaXMgaXMgd29ydGggaW52ZXN0aWdhdGluZyBmdXJ0aGVyLiBDaGFuZ2VzIHRvIHF1ZXVlIHNlbGVjdGlvbiBmb3IgYnJvYWRjYXN0IGFuZCBtdWx0aWNhc3QgcGFja2V0cyBhcmUgZnVuY3Rpb25hbGx5IHNpZ25pZmljYW50LiBUaGUga2V5IHBhcnQgaXMgdGhhdCB0aGUgbG9naWMgaW52b2x2ZXMgY2hlY2tpbmcgYGluZm8tXHUwMDNlZmxhZ3MgXHUwMDI2IElFRUU4MDIxMV9UWF9DVExfU0VORF9BRlRFUl9EVElNYC4gbWFjODAyMTEgc2V0cyB0aGlzIGZsYWcgZm9yIG11bHRpY2FzdCBhbmQgYnJvYWRjYXN0IGZyYW1lcywgbWVhbmluZyB0aGUgY2hhbmdlcyB3aWxsIGRlZmluaXRlbHkgYWZmZWN0IGhvdyB0aGVzZSBraW5kcyBvZiBmcmFtZXMgYXJlIGhhbmRsZWQuIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSBpbiB0aGUgZHJpdmVyJ3MgVFggcGF0aC5cblxuTm93LCBsZXQncyBjb25zaWRlciB0aGUgZnV6emluZyBzdHJhdGVneS4gSXMgYHJ0d191c2JfdHhfd3JpdGVgIGEgZ29vZCBzeW1ib2wgdG8gZm9jdXMgb24/IEhtbSwgaXQncyBzdGF0aWMsIHdoaWNoIGlzIGEgY29uY2VybiDigJMgaXQgY291bGQgYmUgaW5saW5lZCwgb3IgbWlnaHQgbm90IGV2ZW4gaGF2ZSBhIGRpc3RpbmN0IHN5bWJvbCBpbiB0aGUgZmluYWwgYmluYXJ5LiBTbywgbGV0J3MgcGl2b3QuIENoZWNraW5nIGBydHdfdXNiX3R4X3F1ZXVlX21hcHBpbmdfdG9fcXNlbGAsIHRoYXQncyBzdGF0aWMgdG9vLiBPa2F5LCBsZXQncyBicm9hZGVuIHRoZSBzZWFyY2ggYSBiaXQuIEFyZSB0aGVyZSBhbnkgKm5vbiotc3RhdGljIGZ1bmN0aW9ucyBpbiB0aGlzIGFyZWE/IExvb2tzIGxpa2UgYHJ0d191c2Jfb3BzYCBpcyBzdGF0aWMsIHNvIHRoYXQncyBub3QgdXNlZnVsLiBCdXQgYHJ0d191c2JfcHJvYmVgIGlzIG5vbi1zdGF0aWMgb3IgcG9zc2libHkgZXhwb3J0ZWQsIGl0J3Mgd29ydGggYSBsb29rLlxuXG5cbiIsIklucHV0VG9rZW5zIjozMDU0NCwiT3V0cHV0VG9rZW5zIjo0MywiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjMwOSwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wOC0xNFQwNjo0MjozMS42ODcyODU1MDdaIiwiU2VxIjoyNCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjEwNzk1ODczOSwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJydHdfdXNiX3Byb2JlXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdXNiLmNcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC91c2IuYz0xMjI3PXN0YXRpYyB2b2lkIHJ0d191c2JfcGh5X2NmZyhzdHJ1Y3QgcnR3X2RldiAqcnR3ZGV2LFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC91c2IuYy0xMjY0LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdXNiLmM6MTI2NTppbnQgcnR3X3VzYl9wcm9iZShzdHJ1Y3QgdXNiX2ludGVyZmFjZSAqaW50ZiwgY29uc3Qgc3RydWN0IHVzYl9kZXZpY2VfaWQgKmlkKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdXNiLmMtMTI2Ni17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3VzYi5jLTEzNjAtfVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdXNiLmM6MTM2MTpFWFBPUlRfU1lNQk9MKHJ0d191c2JfcHJvYmUpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdXNiLmMtMTM2Mi1cXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMTRUMDY6NDI6MzEuNzk1MjQ4NTY2WiIsIlNlcSI6MjUsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjMzNTYxODI2MDgsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6Ik9rYXksIGhlcmUncyBteSB0YWtlIG9uIHRob3NlIHRob3VnaHRzLCBmcmFtZWQgYXMgYW4gZXhwZXJ0J3MgaW50ZXJuYWwgbW9ub2xvZ3VlOlxuXG4qKkludmVzdGlnYXRpbmcgdGhlIHJ0d191c2IgRHJpdmVyKipcblxuQWxyaWdodCwgc28gYHJ0d191c2JfcHJvYmVgIGlzIGV4cG9zZWQsIHRoYXQncyBub3QgbmV3cywgYnV0IHRoZSBjb21taXQncyBmb2N1c2VkIG9uIHRoZSB0cmFuc21pdCBwYXRoLiBJbnRlcmVzdGluZy4gTXkgaW5pdGlhbCBndXQgZmVlbGluZyBpcyB0byBjaGVjayBpZiBgcnR3X3R4YCBoYWQgYW55IGNoYW5nZXMgd2l0aCB0aGlzIHBhdGNoLiBUaGF0IGZ1bmN0aW9uIGxpdmVzIGluIGB0eC5jYCwgc28gSSBzaG91bGQgcHJvYmFibHkganVtcCBzdHJhaWdodCB0aGVyZSBhbmQgc2VlIHdoYXQncyBjaGFuZ2VkIGluIHJlbGF0aW9uIHRvIHRoZSByZXBvcnRlZCBpc3N1ZS4gSXQgd291bGQgbWFrZSBzZW5zZSB0byBsb29rIGF0IGhvdyB0aGVzZSBmdW5jdGlvbnMgYXJlIGJlaW5nIGNhbGxlZCwgYW5kIGlmIHRoZSBjaGFuZ2VzIGluIGBydHdfdXNiX3Byb2JlYCBhcmUgYWZmZWN0aW5nIHRoZSBsb2dpYyBpbiBgcnR3X3R4YC4gTGV0J3Mgc2VlIGlmIHRoaXMgbGluZXMgdXAgd2l0aCB0aGUgcHJvYmxlbSByZXBvcnQuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjMxNTU3LCJPdXRwdXRUb2tlbnMiOjQxLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6NDAsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDgtMTRUMDY6NDI6MzUuMTUxNDM1NzAzWiIsIlNlcSI6MjYsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo2NTQ1MzIxOSwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJydHdfdHhcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC90eC5jXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdHguYz0xMT1zdGF0aWNcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3R4LmM6MTI6dm9pZCBydHdfdHhfc3RhdHMoc3RydWN0IHJ0d19kZXYgKnJ0d2Rldiwgc3RydWN0IGllZWU4MDIxMV92aWYgKnZpZixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3R4LmMtMTMtXFx0XFx0ICBzdHJ1Y3Qgc2tfYnVmZiAqc2tiKVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC90eC5jLTM0LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdHguYzozNTp2b2lkIHJ0d190eF9maWxsX3R4X2Rlc2Moc3RydWN0IHJ0d19kZXYgKnJ0d2RldixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3R4LmM6MzY6XFx0XFx0XFx0IHN0cnVjdCBydHdfdHhfcGt0X2luZm8gKnBrdF9pbmZvLCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdHguYy0zNy17XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC90eC5jOjM4OlxcdHN0cnVjdCBydHdfdHhfZGVzYyAqdHhfZGVzYyA9IChzdHJ1Y3QgcnR3X3R4X2Rlc2MgKilza2ItXFx1MDAzZWRhdGE7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC90eC5jLTM5LVxcdGJvb2wgbW9yZV9kYXRhID0gZmFsc2U7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3R4LmMtOTMtfVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdHguYzo5NDpFWFBPUlRfU1lNQk9MKHJ0d190eF9maWxsX3R4X2Rlc2MpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdHguYy05NS1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdHguYz0xMjU9c3RhdGljIHU4IGdldF9oaWdoZXN0X3ZodF90eF9yYXRlKHN0cnVjdCBydHdfZGV2ICpydHdkZXYsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3R4LmMtMTY1LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdHguYzoxNjY6c3RhdGljIHZvaWQgcnR3X3R4X3JlcG9ydF9lbmFibGUoc3RydWN0IHJ0d19kZXYgKnJ0d2RldixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3R4LmM6MTY3OlxcdFxcdFxcdFxcdCBzdHJ1Y3QgcnR3X3R4X3BrdF9pbmZvICpwa3RfaW5mbylcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3R4LmMtMTY4LXtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3R4LmM6MTY5OlxcdHN0cnVjdCBydHdfdHhfcmVwb3J0ICp0eF9yZXBvcnQgPSBcXHUwMDI2cnR3ZGV2LVxcdTAwM2V0eF9yZXBvcnQ7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC90eC5jLTE3MC1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdHguYy0xNzgtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC90eC5jOjE3OTp2b2lkIHJ0d190eF9yZXBvcnRfcHVyZ2VfdGltZXIoc3RydWN0IHRpbWVyX2xpc3QgKnQpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC90eC5jLTE4MC17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3R4LmMtMTgyLVxcdFxcdFxcdFxcdFxcdFxcdCAgICB0eF9yZXBvcnQucHVyZ2VfdGltZXIpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdHguYzoxODM6XFx0c3RydWN0IHJ0d190eF9yZXBvcnQgKnR4X3JlcG9ydCA9IFxcdTAwMjZydHdkZXYtXFx1MDAzZXR4X3JlcG9ydDtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3R4LmMtMTg0LVxcdHVuc2lnbmVkIGxvbmcgZmxhZ3M7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3R4LmMtMTk1LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdHguYzoxOTY6dm9pZCBydHdfdHhfcmVwb3J0X2VucXVldWUoc3RydWN0IHJ0d19kZXYgKnJ0d2Rldiwgc3RydWN0IHNrX2J1ZmYgKnNrYiwgdTggc24pXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC90eC5jLTE5Ny17XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC90eC5jOjE5ODpcXHRzdHJ1Y3QgcnR3X3R4X3JlcG9ydCAqdHhfcmVwb3J0ID0gXFx1MDAyNnJ0d2Rldi1cXHUwMDNldHhfcmVwb3J0O1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdHguYy0xOTktXFx0dW5zaWduZWQgbG9uZyB0aW1lb3V0ID0gUlRXX1RYX1BST0JFX1RJTUVPVVQ7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3R4LmMtMjE2LX1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3R4LmM6MjE3OkVYUE9SVF9TWU1CT0wocnR3X3R4X3JlcG9ydF9lbnF1ZXVlKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3R4LmMtMjE4LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdHguYzoyMTk6c3RhdGljIHZvaWQgcnR3X3R4X3JlcG9ydF90eF9zdGF0dXMoc3RydWN0IHJ0d19kZXYgKnJ0d2RldixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3R4LmMtMjIwLVxcdFxcdFxcdFxcdCAgICBzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBib29sIGFja2VkKVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC90eC5jLTIzMy1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3R4LmM6MjM0OnZvaWQgcnR3X3R4X3JlcG9ydF9oYW5kbGUoc3RydWN0IHJ0d19kZXYgKnJ0d2Rldiwgc3RydWN0IHNrX2J1ZmYgKnNrYiwgaW50IHNyYylcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3R4LmMtMjM1LXtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3R4LmM6MjM2OlxcdHN0cnVjdCBydHdfdHhfcmVwb3J0ICp0eF9yZXBvcnQgPSBcXHUwMDI2cnR3ZGV2LVxcdTAwM2V0eF9yZXBvcnQ7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC90eC5jLTIzNy1cXHRzdHJ1Y3QgcnR3X2MyaF9jbWQgKmMyaDtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdHguYy0yNTctXFx0XFx0XFx0X19za2JfdW5saW5rKGN1ciwgXFx1MDAyNnR4X3JlcG9ydC1cXHUwMDNlcXVldWUpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdHguYzoyNTg6XFx0XFx0XFx0cnR3X3R4X3JlcG9ydF90eF9zdGF0dXMocnR3ZGV2LCBjdXIsIHN0ID09IDApO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdHguYy0yNTktXFx0XFx0XFx0YnJlYWs7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3R4LmM9MjY1PXN0YXRpYyB1OCBydHdfZ2V0X21nbXRfcmF0ZShzdHJ1Y3QgcnR3X2RldiAqcnR3ZGV2LCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiLFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC90eC5jLTI3Ny1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3R4LmM6Mjc4OnN0YXRpYyB2b2lkIHJ0d190eF9wa3RfaW5mb191cGRhdGVfcmF0ZShzdHJ1Y3QgcnR3X2RldiAqcnR3ZGV2LFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdHguYzoyNzk6XFx0XFx0XFx0XFx0XFx0c3RydWN0IHJ0d190eF9wa3RfaW5mbyAqcGt0X2luZm8sXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC90eC5jLTI4MC1cXHRcXHRcXHRcXHRcXHRzdHJ1Y3Qgc2tfYnVmZiAqc2tiLFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC90eC5jLTI5Ni1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3R4LmM6Mjk3OnN0YXRpYyB2b2lkIHJ0d190eF9wa3RfaW5mb191cGRhdGVfc2VjKHN0cnVjdCBydHdfZGV2ICpydHdkZXYsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC90eC5jOjI5ODpcXHRcXHRcXHRcXHQgICAgICAgc3RydWN0IHJ0d190eF9wa3RfaW5mbyAqcGt0X2luZm8sXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC90eC5jLTI5OS1cXHRcXHRcXHRcXHQgICAgICAgc3RydWN0IHNrX2J1ZmYgKnNrYilcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdHguYy0zMjMtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC90eC5jOjMyNDpzdGF0aWMgdm9pZCBydHdfdHhfbWdtdF9wa3RfaW5mb191cGRhdGUoc3RydWN0IHJ0d19kZXYgKnJ0d2RldixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3R4LmM6MzI1OlxcdFxcdFxcdFxcdFxcdHN0cnVjdCBydHdfdHhfcGt0X2luZm8gKnBrdF9pbmZvLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdHguYy0zMjYtXFx0XFx0XFx0XFx0XFx0c3RydWN0IGllZWU4MDIxMV9zdGEgKnN0YSxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdHguYy0zMjgte1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdHguYzozMjk6XFx0cnR3X3R4X3BrdF9pbmZvX3VwZGF0ZV9yYXRlKHJ0d2RldiwgcGt0X2luZm8sIHNrYiwgZmFsc2UpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdHguYy0zMzAtXFx0cGt0X2luZm8tXFx1MDAzZWRpc19xc2Vsc2VxID0gdHJ1ZTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdHguYy0zMzUtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC90eC5jOjMzNjpzdGF0aWMgdm9pZCBydHdfdHhfZGF0YV9wa3RfaW5mb191cGRhdGUoc3RydWN0IHJ0d19kZXYgKnJ0d2RldixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3R4LmM6MzM3OlxcdFxcdFxcdFxcdFxcdHN0cnVjdCBydHdfdHhfcGt0X2luZm8gKnBrdF9pbmZvLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdHguYy0zMzgtXFx0XFx0XFx0XFx0XFx0c3RydWN0IGllZWU4MDIxMV9zdGEgKnN0YSxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdHguYy00MDYtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC90eC5jOjQwNzp2b2lkIHJ0d190eF9wa3RfaW5mb191cGRhdGUoc3RydWN0IHJ0d19kZXYgKnJ0d2RldixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3R4LmM6NDA4OlxcdFxcdFxcdCAgICBzdHJ1Y3QgcnR3X3R4X3BrdF9pbmZvICpwa3RfaW5mbyxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3R4LmMtNDA5LVxcdFxcdFxcdCAgICBzdHJ1Y3QgaWVlZTgwMjExX3N0YSAqc3RhLFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC90eC5jLTQyOS1cXHRpZiAoaWVlZTgwMjExX2lzX21nbXQoZmMpIHx8IGllZWU4MDIxMV9pc19hbnlfbnVsbGZ1bmMoZmMpKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdHguYzo0MzA6XFx0XFx0cnR3X3R4X21nbXRfcGt0X2luZm9fdXBkYXRlKHJ0d2RldiwgcGt0X2luZm8sIHN0YSwgc2tiKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3R4LmMtNDMxLVxcdGVsc2UgaWYgKGllZWU4MDIxMV9pc19kYXRhKGZjKSlcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3R4LmM6NDMyOlxcdFxcdHJ0d190eF9kYXRhX3BrdF9pbmZvX3VwZGF0ZShydHdkZXYsIHBrdF9pbmZvLCBzdGEsIHNrYik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC90eC5jLTQzMy1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdHguYy00MzctXFx0aWYgKGluZm8tXFx1MDAzZWZsYWdzIFxcdTAwMjYgSUVFRTgwMjExX1RYX0NUTF9SRVFfVFhfU1RBVFVTKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdHguYzo0Mzg6XFx0XFx0cnR3X3R4X3JlcG9ydF9lbmFibGUocnR3ZGV2LCBwa3RfaW5mbyk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC90eC5jLTQzOS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3R4LmMtNDQwLVxcdHBrdF9pbmZvLVxcdTAwM2VibWMgPSBibWM7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC90eC5jOjQ0MTpcXHRydHdfdHhfcGt0X2luZm9fdXBkYXRlX3NlYyhydHdkZXYsIHBrdF9pbmZvLCBza2IpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdHguYy00NDItXFx0cGt0X2luZm8tXFx1MDAzZXR4X3BrdF9zaXplID0gc2tiLVxcdTAwM2VsZW47XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3R4LmMtNDQ3LVxcdC8qIG1heWJlIG1lcmdlIHdpdGggdHggc3RhdHVzID8gKi9cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3R4LmM6NDQ4OlxcdHJ0d190eF9zdGF0cyhydHdkZXYsIHZpZiwgc2tiKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3R4LmMtNDQ5LX1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3R4LmMtNDUwLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdHguYzo0NTE6dm9pZCBydHdfdHhfcnN2ZF9wYWdlX3BrdF9pbmZvX3VwZGF0ZShzdHJ1Y3QgcnR3X2RldiAqcnR3ZGV2LFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdHguYzo0NTI6XFx0XFx0XFx0XFx0ICAgICAgc3RydWN0IHJ0d190eF9wa3RfaW5mbyAqcGt0X2luZm8sXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC90eC5jLTQ1My1cXHRcXHRcXHRcXHQgICAgICBzdHJ1Y3Qgc2tfYnVmZiAqc2tiLFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC90eC5jLTQ2NS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3R4LmM6NDY2OlxcdHJ0d190eF9wa3RfaW5mb191cGRhdGVfcmF0ZShydHdkZXYsIHBrdF9pbmZvLCBza2IsIHRydWUpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdHguYy00NjctXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3R4LmMtNDk2LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdHguYzo0OTc6XFx0cnR3X3R4X3BrdF9pbmZvX3VwZGF0ZV9zZWMocnR3ZGV2LCBwa3RfaW5mbywgc2tiKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3R4LmMtNDk4LVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC90eC5jPTUwMj1zdHJ1Y3Qgc2tfYnVmZiAqXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC90eC5jOjUwMzpydHdfdHhfd3JpdGVfZGF0YV9yc3ZkX3BhZ2VfZ2V0KHN0cnVjdCBydHdfZGV2ICpydHdkZXYsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC90eC5jOjUwNDpcXHRcXHRcXHRcXHRzdHJ1Y3QgcnR3X3R4X3BrdF9pbmZvICpwa3RfaW5mbyxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3R4LmMtNTA1LVxcdFxcdFxcdFxcdHU4ICpidWYsIHUzMiBzaXplKVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC90eC5jLTUyMS1cXHRza2JfcHV0X2RhdGEoc2tiLCBidWYsIHNpemUpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdHguYzo1MjI6XFx0cnR3X3R4X3JzdmRfcGFnZV9wa3RfaW5mb191cGRhdGUocnR3ZGV2LCBwa3RfaW5mbywgc2tiLCBSU1ZEX0JFQUNPTik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC90eC5jLTUyMy1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdHguYy01MjUtfVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdHguYzo1MjY6RVhQT1JUX1NZTUJPTChydHdfdHhfd3JpdGVfZGF0YV9yc3ZkX3BhZ2VfZ2V0KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3R4LmMtNTI3LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdHguYz01Mjg9c3RydWN0IHNrX2J1ZmYgKlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdHguYzo1Mjk6cnR3X3R4X3dyaXRlX2RhdGFfaDJjX2dldChzdHJ1Y3QgcnR3X2RldiAqcnR3ZGV2LFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdHguYzo1MzA6XFx0XFx0XFx0ICBzdHJ1Y3QgcnR3X3R4X3BrdF9pbmZvICpwa3RfaW5mbyxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3R4LmMtNTMxLVxcdFxcdFxcdCAgdTggKmJ1ZiwgdTMyIHNpemUpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3R4LmMtNTUxLX1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3R4LmM6NTUyOkVYUE9SVF9TWU1CT0wocnR3X3R4X3dyaXRlX2RhdGFfaDJjX2dldCk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC90eC5jLTU1My1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3R4LmM6NTU0OnZvaWQgcnR3X3R4KHN0cnVjdCBydHdfZGV2ICpydHdkZXYsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC90eC5jLTU1NS1cXHQgICAgc3RydWN0IGllZWU4MDIxMV90eF9jb250cm9sICpjb250cm9sLFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC90eC5jLTU1Ny17XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC90eC5jOjU1ODpcXHRzdHJ1Y3QgcnR3X3R4X3BrdF9pbmZvIHBrdF9pbmZvID0gezB9O1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdHguYy01NTktXFx0aW50IHJldDtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3R4LmMtNTYwLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdHguYzo1NjE6XFx0cnR3X3R4X3BrdF9pbmZvX3VwZGF0ZShydHdkZXYsIFxcdTAwMjZwa3RfaW5mbywgY29udHJvbC1cXHUwMDNlc3RhLCBza2IpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdHguYy01NjItXFx0cmV0ID0gcnR3X2hjaV90eF93cml0ZShydHdkZXYsIFxcdTAwMjZwa3RfaW5mbywgc2tiKTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdHguYy01NzUtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC90eC5jOjU3NjpzdGF0aWMgdm9pZCBydHdfdHhxX2NoZWNrX2FnZyhzdHJ1Y3QgcnR3X2RldiAqcnR3ZGV2LFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdHguYzo1Nzc6XFx0XFx0XFx0ICAgICAgc3RydWN0IHJ0d190eHEgKnJ0d3R4cSxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3R4LmMtNTc4LVxcdFxcdFxcdCAgICAgIHN0cnVjdCBza19idWZmICpza2IpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3R4LmMtNjA3LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdHguYzo2MDg6c3RhdGljIGludCBydHdfdHhxX3B1c2hfc2tiKHN0cnVjdCBydHdfZGV2ICpydHdkZXYsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC90eC5jOjYwOTpcXHRcXHRcXHQgICAgc3RydWN0IHJ0d190eHEgKnJ0d3R4cSxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3R4LmMtNjEwLVxcdFxcdFxcdCAgICBzdHJ1Y3Qgc2tfYnVmZiAqc2tiKVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC90eC5jLTYxMi1cXHRzdHJ1Y3QgaWVlZTgwMjExX3R4cSAqdHhxID0gcnR3dHhxX3RvX3R4cShydHd0eHEpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdHguYzo2MTM6XFx0c3RydWN0IHJ0d190eF9wa3RfaW5mbyBwa3RfaW5mbyA9IHswfTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3R4LmMtNjE0LVxcdGludCByZXQ7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC90eC5jLTYxNS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3R4LmM6NjE2OlxcdHJ0d190eHFfY2hlY2tfYWdnKHJ0d2RldiwgcnR3dHhxLCBza2IpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdHguYy02MTctXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC90eC5jOjYxODpcXHRydHdfdHhfcGt0X2luZm9fdXBkYXRlKHJ0d2RldiwgXFx1MDAyNnBrdF9pbmZvLCB0eHEtXFx1MDAzZXN0YSwgc2tiKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3R4LmMtNjE5LVxcdHJldCA9IHJ0d19oY2lfdHhfd3JpdGUocnR3ZGV2LCBcXHUwMDI2cGt0X2luZm8sIHNrYik7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3R4LmMtNjI3LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdHguYzo2Mjg6c3RhdGljIHZvaWQgcnR3X3R4cV9wdXNoKHN0cnVjdCBydHdfZGV2ICpydHdkZXYsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC90eC5jOjYyOTpcXHRcXHRcXHQgc3RydWN0IHJ0d190eHEgKnJ0d3R4cSxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3R4LmMtNjMwLVxcdFxcdFxcdCB1bnNpZ25lZCBsb25nIGZyYW1lcylcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdHguYy02NDMtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC90eC5jOjY0NDpcXHRcXHRyZXQgPSBydHdfdHhxX3B1c2hfc2tiKHJ0d2RldiwgcnR3dHhxLCBza2IpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdHguYy02NDUtXFx0XFx0aWYgKHJldCkge1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC90eC5jLTY1My1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3R4LmM6NjU0OnZvaWQgX19ydHdfdHhfd29yayhzdHJ1Y3QgcnR3X2RldiAqcnR3ZGV2KVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdHguYy02NTUte1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdHguYzo2NTY6XFx0c3RydWN0IHJ0d190eHEgKnJ0d3R4cSwgKnRtcDtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3R4LmMtNjU3LVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC90eC5jLTY2NC1cXHRcXHRpZWVlODAyMTFfdHhxX2dldF9kZXB0aCh0eHEsIFxcdTAwMjZmcmFtZV9jbnQsIE5VTEwpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdHguYzo2NjU6XFx0XFx0cnR3X3R4cV9wdXNoKHJ0d2RldiwgcnR3dHhxLCBmcmFtZV9jbnQpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdHguYy02NjYtXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3R4LmMtNjc0LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdHguYzo2NzU6dm9pZCBydHdfdHhfd29yayhzdHJ1Y3Qgd29ya19zdHJ1Y3QgKncpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC90eC5jLTY3Ni17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3R4LmMtNjc4LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdHguYzo2Nzk6XFx0X19ydHdfdHhfd29yayhydHdkZXYpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdHguYy02ODAtfVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdHguYy02ODEtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC90eC5jOjY4Mjp2b2lkIHJ0d190eHFfaW5pdChzdHJ1Y3QgcnR3X2RldiAqcnR3ZGV2LCBzdHJ1Y3QgaWVlZTgwMjExX3R4cSAqdHhxKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdHguYy02ODMte1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdHguYzo2ODQ6XFx0c3RydWN0IHJ0d190eHEgKnJ0d3R4cTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3R4LmMtNjg1LVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC90eC5jLTY4OC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3R4LmM6Njg5OlxcdHJ0d3R4cSA9IChzdHJ1Y3QgcnR3X3R4cSAqKXR4cS1cXHUwMDNlZHJ2X3ByaXY7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC90eC5jLTY5MC1cXHRJTklUX0xJU1RfSEVBRChcXHUwMDI2cnR3dHhxLVxcdTAwM2VsaXN0KTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdHguYy02OTItXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC90eC5jOjY5Mzp2b2lkIHJ0d190eHFfY2xlYW51cChzdHJ1Y3QgcnR3X2RldiAqcnR3ZGV2LCBzdHJ1Y3QgaWVlZTgwMjExX3R4cSAqdHhxKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdHguYy02OTQte1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdHguYzo2OTU6XFx0c3RydWN0IHJ0d190eHEgKnJ0d3R4cTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3R4LmMtNjk2LVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC90eC5jLTY5OS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3R4LmM6NzAwOlxcdHJ0d3R4cSA9IChzdHJ1Y3QgcnR3X3R4cSAqKXR4cS1cXHUwMDNlZHJ2X3ByaXY7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC90eC5jLTcwMS1cXHRzcGluX2xvY2tfYmgoXFx1MDAyNnJ0d2Rldi1cXHUwMDNldHhxX2xvY2spO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC90eC5jLTcwNi1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3R4LmM6NzA3OnN0YXRpYyBjb25zdCBlbnVtIHJ0d190eF9xdWV1ZV90eXBlIGFjX3RvX2h3cVtdID0ge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdHguYy03MDgtXFx0W0lFRUU4MDIxMV9BQ19WT10gPSBSVFdfVFhfUVVFVUVfVk8sXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3R4LmM9NzE0PXN0YXRpY19hc3NlcnQoQVJSQVlfU0laRShhY190b19od3EpID09IElFRUU4MDIxMV9OVU1fQUNTKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3R4LmMtNzE1LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdHguYzo3MTY6ZW51bSBydHdfdHhfcXVldWVfdHlwZSBydHdfdHhfYWNfdG9faHdxKGVudW0gaWVlZTgwMjExX2FjX251bWJlcnMgYWMpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC90eC5jLTcxNy17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3R4LmMtNzIyLX1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3R4LmM6NzIzOkVYUE9SVF9TWU1CT0wocnR3X3R4X2FjX3RvX2h3cSk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC90eC5jLTcyNC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3R4LmM6NzI1OmVudW0gcnR3X3R4X3F1ZXVlX3R5cGUgcnR3X3R4X3F1ZXVlX21hcHBpbmcoc3RydWN0IHNrX2J1ZmYgKnNrYilcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3R4LmMtNzI2LXtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdHguYy03MjktXFx0dTggcV9tYXBwaW5nID0gc2tiX2dldF9xdWV1ZV9tYXBwaW5nKHNrYik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC90eC5jOjczMDpcXHRlbnVtIHJ0d190eF9xdWV1ZV90eXBlIHF1ZXVlO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdHguYy03MzEtXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3R4LmMtNzQ1LX1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3R4LmM6NzQ2OkVYUE9SVF9TWU1CT0wocnR3X3R4X3F1ZXVlX21hcHBpbmcpO1xcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0xNFQwNjo0MjozNS4yMTY4OTQwMTNaIiwiU2VxIjoyNywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6Mzg3OTMxOTMwMiwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipJbnZlc3RpZ2F0aW5nIHRoZSBgcnR3X3R4YCBGdW5jdGlvbioqXG5cbk9rYXksIHNvIEknbSBkaWdnaW5nIGludG8gdGhpcyBjb2RlLCBhbmQgaXQgbG9va3MgbGlrZSBgcnR3X3R4YCBpc24ndCBhIGRpcmVjdGx5IGV4cG9ydGVkIGZ1bmN0aW9uLiBJIHNlZSBpdCBiZWluZyBjYWxsZWQgZnJvbSBgcnR3X29wc190eGAgd2l0aGluIGBtYWM4MDIxMS5jYCwgd2hpY2ggaXMgYSBjb21tb24gcGF0dGVybiwgYnV0IHRoZSBmdW5jdGlvbidzIGRlZmluaXRpb24gaXRzZWxmLi4uIGl0J3Mgbm90IGV4cG9ydGVkLiBIbW0uICpXYWl0Kiwgbm93IEknbSByZW1lbWJlcmluZyDigJMgdGhlcmUncyBhIGBydHdfdHhgIGZ1bmN0aW9uIG92ZXIgaW4gYHR4LmNgLCBpc24ndCB0aGVyZT8gQnV0IHllYWgsIEkgY29uZmlybSwgaXQncyBub3QgZXhwbGljaXRseSBleHBvcnRlZCwgYW5kIHRoZSBkZWNsYXJhdGlvbiBpcyBhY3R1YWxseSBwcmVzZW50IGluIGB0eC5oYC4gSSdsbCBuZWVkIHRvIGRvdWJsZSBjaGVjayBob3cgaXQncyB1c2VkIHRoZXJlLCBhbmQgd2hhdCB0aGUgc3Vycm91bmRpbmcgY29udGV4dCB0ZWxscyBtZSBhYm91dCBob3cgaXQgaW50ZXJhY3RzIHdpdGggdGhlIHJlc3Qgb2YgdGhlIGRyaXZlci4gTGV0IG1lIGdvIHRha2UgYSBsb29rIGF0IHRoZSBkZWNsYXJhdGlvbiBpbiBgdHguaGAgdG8gbWFrZSBzdXJlIEkgdW5kZXJzdGFuZCBpdHMgc2lnbmF0dXJlIGFuZCBhbnkgaW5saW5lIGhpbnRzLlxuXG5cbiIsIklucHV0VG9rZW5zIjozODQxMSwiT3V0cHV0VG9rZW5zIjo0MiwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjgzLCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTE0VDA2OjQyOjM5LjA5NjIxNTc4NVoiLCJTZXEiOjI4LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MTA4NDQyOTM5LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcInZvaWQgcnR3X3R4XCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdHguaFwiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJkcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3R4Lmg9ODU9ZW51bSBydHdfcnN2ZF9wYWNrZXRfdHlwZTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3R4LmgtODYtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC90eC5oOjg3OnZvaWQgcnR3X3R4KHN0cnVjdCBydHdfZGV2ICpydHdkZXYsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC90eC5oLTg4LVxcdCAgICBzdHJ1Y3QgaWVlZTgwMjExX3R4X2NvbnRyb2wgKmNvbnRyb2wsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC90eC5oLTg5LVxcdCAgICBzdHJ1Y3Qgc2tfYnVmZiAqc2tiKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3R4Lmg6OTA6dm9pZCBydHdfdHhxX2luaXQoc3RydWN0IHJ0d19kZXYgKnJ0d2Rldiwgc3RydWN0IGllZWU4MDIxMV90eHEgKnR4cSk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC90eC5oOjkxOnZvaWQgcnR3X3R4cV9jbGVhbnVwKHN0cnVjdCBydHdfZGV2ICpydHdkZXYsIHN0cnVjdCBpZWVlODAyMTFfdHhxICp0eHEpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdHguaDo5Mjp2b2lkIHJ0d190eF93b3JrKHN0cnVjdCB3b3JrX3N0cnVjdCAqdyk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC90eC5oLTkzLXZvaWQgX19ydHdfdHhfd29yayhzdHJ1Y3QgcnR3X2RldiAqcnR3ZGV2KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3R4Lmg6OTQ6dm9pZCBydHdfdHhfcGt0X2luZm9fdXBkYXRlKHN0cnVjdCBydHdfZGV2ICpydHdkZXYsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC90eC5oLTk1LVxcdFxcdFxcdCAgICBzdHJ1Y3QgcnR3X3R4X3BrdF9pbmZvICpwa3RfaW5mbyxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdHguaC05Ny1cXHRcXHRcXHQgICAgc3RydWN0IHNrX2J1ZmYgKnNrYik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC90eC5oOjk4OnZvaWQgcnR3X3R4X2ZpbGxfdHhfZGVzYyhzdHJ1Y3QgcnR3X2RldiAqcnR3ZGV2LFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdHguaC05OS1cXHRcXHRcXHQgc3RydWN0IHJ0d190eF9wa3RfaW5mbyAqcGt0X2luZm8sIHN0cnVjdCBza19idWZmICpza2IpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdHguaDoxMDA6dm9pZCBydHdfdHhfcmVwb3J0X2VucXVldWUoc3RydWN0IHJ0d19kZXYgKnJ0d2Rldiwgc3RydWN0IHNrX2J1ZmYgKnNrYiwgdTggc24pO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdHguaDoxMDE6dm9pZCBydHdfdHhfcmVwb3J0X2hhbmRsZShzdHJ1Y3QgcnR3X2RldiAqcnR3ZGV2LCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBpbnQgc3JjKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3R4Lmg6MTAyOnZvaWQgcnR3X3R4X3JzdmRfcGFnZV9wa3RfaW5mb191cGRhdGUoc3RydWN0IHJ0d19kZXYgKnJ0d2RldixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3R4LmgtMTAzLVxcdFxcdFxcdFxcdCAgICAgIHN0cnVjdCBydHdfdHhfcGt0X2luZm8gKnBrdF9pbmZvLFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC90eC5oPTExOT12b2lkIGZpbGxfdHhkZXNjX2NoZWNrc3VtX2NvbW1vbih1OCAqdHhkZXNjLCBzaXplX3Qgd29yZHMpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3R4LmgtMTMzLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdHguaDoxMzQ6c3RhdGljIGlubGluZSB2b2lkIHJ0d190eF9maWxsX3R4ZGVzY19jaGVja3N1bShzdHJ1Y3QgcnR3X2RldiAqcnR3ZGV2LFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdHguaC0xMzUtXFx0XFx0XFx0XFx0XFx0ICAgICAgIHN0cnVjdCBydHdfdHhfcGt0X2luZm8gKnBrdF9pbmZvLFxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0xNFQwNjo0MjozOS4yMDQ2NjM1NDRaIiwiU2VxIjoyOSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NTU1MDkzOTAxNiwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipGb2N1c2luZyBvbiBLZXkgU3ltYm9scyoqXG5cbk9rYXksIHNvIEknbSB0aGlua2luZywgYHJ0d190eGAgbG9va3MgbGlrZSBhIHN0cm9uZyBjYW5kaWRhdGUgZm9yIGEgZm9jdXMgc3ltYm9sLiBBbmQsIGV2ZW4gdGhvdWdoIGl0J3Mgc3RhdGljLCBgcnR3X3VzYl90eF93cml0ZWAgYWxzbyBzZWVtcyBwcm9taXNpbmcsIGVzcGVjaWFsbHkgd2l0aCB0aGUgcG9zc2liaWxpdHkgb2YgU3l6a2FsbGVyIHJlc29sdmluZyBpdC4gV2FpdCwgdGhlIGFjdHVhbCBmdW5jdGlvbiB0aGF0IHdhcyBtb2RpZmllZCBpbiB0aGUgY29udGV4dCBvZiB0aGUgaXNzdWUgaXMgYHJ0d191c2JfdHhfcXVldWVfbWFwcGluZ190b19xc2VsYC4gUmlnaHQsIHJpZ2h0LiBMZXQncyBnZXQgdGhlc2Ugc3ltYm9scyBhZGRlZCBhcyBmb2N1cyBzeW1ib2xzOiBgcnR3X3VzYl90eF93cml0ZWAgYW5kIGFsc28gYHJ0d190eGAuXG5cbk5vdywganVzdCB0byBiZSBjb21wbGV0ZWx5IHN1cmUsIGxldCdzIGRvdWJsZS1jaGVjayBpZiBgcnR3X3VzYl90eF9xdWV1ZV9tYXBwaW5nX3RvX3FzZWxgIGlzIHN0YXRpYy4gWWVzLCBpdCBpcy4gU2luY2UgaXQncyBzdGF0aWMsIGFuZCBJIHRoaW5rIGl0J3MgbGlrZWx5IGlubGluZWQsIGRvZXMgYHJ0d191c2JfdHhfd3JpdGVgIGNhbGwgaXQ/IEFoLCB5ZXMsIGl0IGRvZXMuIFRoYXQgbWVhbnMgaXQgaXMgaW5saW5lZC5cblxuTGV0J3Mgc2hpZnQgb3VyIGZvY3VzIHRvIGludmVzdGlnYXRpbmcgYHJ0d191c2JfdHhfd3JpdGVgIG1vcmUgY2xvc2VseS5cblxuXG4iLCJJbnB1dFRva2VucyI6Mzk2NzEsIk91dHB1dFRva2VucyI6NDUsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoxNjEsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDgtMTRUMDY6NDI6NDQuNzU1NjA1NjVaIiwiU2VxIjozMCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjYxMDUxMzc5LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcInJ0d191c2JfdHhfd3JpdGVcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC91c2IuY1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJkcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3VzYi5jPTU2MD1zdGF0aWMgdTggcnR3X3VzYl90eF9xdWV1ZV9tYXBwaW5nX3RvX3FzZWwoc3RydWN0IHNrX2J1ZmYgKnNrYilcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdXNiLmMtNTgwLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdXNiLmM6NTgxOnN0YXRpYyBpbnQgcnR3X3VzYl90eF93cml0ZShzdHJ1Y3QgcnR3X2RldiAqcnR3ZGV2LFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdXNiLmMtNTgyLVxcdFxcdFxcdCAgICBzdHJ1Y3QgcnR3X3R4X3BrdF9pbmZvICpwa3RfaW5mbyxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdXNiLmM9OTUzPXN0YXRpYyBjb25zdCBzdHJ1Y3QgcnR3X2hjaV9vcHMgcnR3X3VzYl9vcHMgPSB7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC91c2IuYzo5NTQ6XFx0LnR4X3dyaXRlID0gcnR3X3VzYl90eF93cml0ZSxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3VzYi5jLTk1NS1cXHQudHhfa2lja19vZmYgPSBydHdfdXNiX3R4X2tpY2tfb2ZmLFxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0xNFQwNjo0Mjo0NC44MTY2NjIxOVoiLCJTZXEiOjMxLCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo3MzQxOTg4NDM5LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkZ1enppbmcgRm9jdXM6IFJlZmluZW1lbnQgYW5kIFByaW9yaXRpemF0aW9uKipcblxuT2theSwgc28gSSdtIHRyeWluZyB0byBmaWd1cmUgb3V0IHRoZSBiZXN0IGZ1bmN0aW9ucyB0byB0YXJnZXQgZm9yIGZ1enppbmcsIHNwZWNpZmljYWxseSBpbiB0aGlzIFVTQiBUWCBwYXRoLiBMZXQncyBzZWUuLi4gSW5pdGlhbGx5LCBJIHdhcyBsb29raW5nIGF0IGBydHdfdXNiX3R4X3dyaXRlYCwgYW5kIHllcywgSSByZW1lbWJlciBpdCdzIHN0YXRpYy4gQ291bGQgSSB1c2UgYHJ0d190eGA/IFllcCwgaXQncyBub24tc3RhdGljLCB3aGljaCBpcyBnb29kLiBUaGVuIEkgbG9va2VkIGF0IGBydHdfdXNiX3Byb2JlYCwgYnV0IHRoYXQncyBhIHByb2JlIGZ1bmN0aW9uIOKAkyBkZWZpbml0ZWx5IG5vdCBpbiB0aGUgY3JpdGljYWwgcGF0aCBJJ20gaW50ZXJlc3RlZCBpbiBmdXp6aW5nLlxuXG5Ob3csIHRoZSBwcm9tcHQgaXMgdGVsbGluZyBtZSB0byBhdm9pZCBnZW5lcmljIGhvdC1wYXRoIGZ1bmN0aW9ucyB0byBrZWVwIHRoZSB0ZXN0cyBmcm9tIHNrZXdpbmcuIFNvLCBgcnR3X3R4YCwgaXMgaXQgaG90LXBhdGg/IEFic29sdXRlbHkuIEl0J3MgY2FsbGVkIGZvciBldmVyeSBzaW5nbGUgcGFja2V0IHRyYW5zbWl0dGVkLiBJZiBJIGZvbGxvdyB0aGUgcHJvbXB0IGFuZCBkb24ndCBsaXN0IGBydHdfdHhgLCB3aGF0IGFyZSBteSBvdGhlciBvcHRpb25zPyBJIGNvbnNpZGVyZWQgYHJ0d191c2JfdHhfd3JpdGVgIGJ1dCwgZXZlbiB0aG91Z2ggaXQncyBzdGF0aWMsIGl0IGlzIHRoYXQgKnNwZWNpZmljKiBjYWxsYmFjaywgc28gbWF5YmUgaXQncyB0aGUgcmlnaHQgY2hvaWNlIGFmdGVyIGFsbC5cblxuVGhlIHByb21wdCwgaG93ZXZlciwgcmVhbGx5IGVtcGhhc2l6ZXMgYXZvaWRpbmcgdGhlIGhvdC1wYXRoLiBJZiBgcnR3X3R4YCBpcyBob3QtcGF0aCwgaXQgc291bmRzIGxpa2UgKm5vbmUqIG9mIHRoZW0gYXJlIGdyZWF0LiBCdXQsIHRoaXMgY2hhbmdlIGlzIGFsbCBhYm91dCB0aGUgVFggcXVldWUgc2VsZWN0aW9uLiBNYXliZSBJIHNob3VsZCBob2xkIG9mZiwgYW5kIHBlcmhhcHMgbGlzdCBgcnR3X3VzYl90eF93cml0ZWAgYWxvbmU/XG5cbkkgbmVlZCB0byByZS1ldmFsdWF0ZSB3aGF0J3MgcmVhbGx5IGltcG9ydGFudC4gSXQgc2VlbXMgbXkgZm9jdXMgaXMgb24gdGhhdCBgcnR3X3VzYl90eF93cml0ZWAgZnVuY3Rpb24sIGV2ZW4gaWYgaXQgaXMgYSBob3QgcGF0aC5cblxuTm93LCBhIHF1aWNrIGNvbmZpZyBjaGVjay4gYE1BQzgwMjExYCwgYFJUVzg4YCwgYFJUVzg4Xzg4MjJCVWAuLi4gQWhhISBgUlRXODhfODgyMkJVYCBzZWxlY3RzIGBSVFc4OF9VU0JgLiBHb29kLiBMZXQncyBtYWtlIHN1cmUgdGhlcmUgYXJlbid0IGFueSBvdGhlciBVU0IgZHJpdmVycyB0byBiZSBtaW5kZnVsIG9mLlxuXG5cbiIsIklucHV0VG9rZW5zIjo0MDQwOCwiT3V0cHV0VG9rZW5zIjo0MywiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjQ1MiwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wOC0xNFQwNjo0Mjo1Mi4xNTg2NTUzOTlaIiwiU2VxIjozMiwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjU2OTU1MTg5LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcInNlbGVjdCBSVFc4OF9VU0JcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZz04Mj1jb25maWcgUlRXODhfODgyMkJVXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWctODUtXFx0c2VsZWN0IFJUVzg4X0NPUkVcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWc6ODY6XFx0c2VsZWN0IFJUVzg4X1VTQlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZy04Ny1cXHRzZWxlY3QgUlRXODhfODgyMkJcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZz0xMTU9Y29uZmlnIFJUVzg4Xzg4MjJDVVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnLTExOC1cXHRzZWxlY3QgUlRXODhfQ09SRVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZzoxMTk6XFx0c2VsZWN0IFJUVzg4X1VTQlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZy0xMjAtXFx0c2VsZWN0IFJUVzg4Xzg4MjJDXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWc9MTYyPWNvbmZpZyBSVFc4OF84NzIzRFVcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZy0xNjUtXFx0c2VsZWN0IFJUVzg4X0NPUkVcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWc6MTY2OlxcdHNlbGVjdCBSVFc4OF9VU0JcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWctMTY3LVxcdHNlbGVjdCBSVFc4OF84NzIzRFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnPTE5NT1jb25maWcgUlRXODhfODgyMUNVXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWctMTk4LVxcdHNlbGVjdCBSVFc4OF9DT1JFXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnOjE5OTpcXHRzZWxlY3QgUlRXODhfVVNCXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnLTIwMC1cXHRzZWxlY3QgUlRXODhfODgyMUNcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZz0yMDY9Y29uZmlnIFJUVzg4Xzg4MjFBVVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnLTIwOS1cXHRzZWxlY3QgUlRXODhfQ09SRVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZzoyMTA6XFx0c2VsZWN0IFJUVzg4X1VTQlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZy0yMTEtXFx0c2VsZWN0IFJUVzg4Xzg4MjFBXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWc9MjE3PWNvbmZpZyBSVFc4OF84ODEyQVVcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZy0yMjAtXFx0c2VsZWN0IFJUVzg4X0NPUkVcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWc6MjIxOlxcdHNlbGVjdCBSVFc4OF9VU0JcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWctMjIyLVxcdHNlbGVjdCBSVFc4OF84ODEyQVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnPTIzOT1jb25maWcgUlRXODhfODgxNEFVXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWctMjQyLVxcdHNlbGVjdCBSVFc4OF9DT1JFXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnOjI0MzpcXHRzZWxlY3QgUlRXODhfVVNCXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnLTI0NC1cXHRzZWxlY3QgUlRXODhfODgxNEFcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMTRUMDY6NDI6NTIuMjE1NjE0MzY4WiIsIlNlcSI6MzMsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjQwNjc5ODc4OTEsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqTXkgQ3VycmVudCBSZWFzb25pbmcgb24gRHJpdmVyIENvbmZpZ3VyYXRpb24qKlxuXG5Pa2F5LCBzbyBJJ20gbG9va2luZyBhdCB0aGVzZSBkcml2ZXIgb3B0aW9ucywgYW5kIGluaXRpYWxseSwgSSB3YXMgdGhpbmtpbmcgd2UgbmVlZGVkIHRvIGxpc3QgYm90aCBgUlRXODhfODgyMkJVYCBhbmQgYFJUVzg4X1VTQmAuIEJ1dCBob2xkIG9uLi4uIGFmdGVyIGEgcXVpY2sgY2hlY2ssIGBSVFc4OF9VU0JgIGlzIGEgdHJpc3RhdGUsIHNvIHRoYXQgc2ltcGxpZmllcyB0aGluZ3MuIEluIGZhY3QsIGxpc3RpbmcgYm90aCBpcyBhIGxpdHRsZSByZWR1bmRhbnQuIFdlJ2xsIHN0aWNrIHRvIGxpc3RpbmcgYFJUVzg4X1VTQmAgYW5kIGBSVFc4OF84ODIyQlVgLlxuXG5CdXQsIHdhaXQgYSBzZWNvbmQsIGxldCBtZSB0aGluayB0aGlzIHRocm91Z2ggY29tcGxldGVseS4gTG9va2luZyBhdCB0aGUgZGVwZW5kZW5jaWVzIGFnYWluLCBhbmQgeWVzLCBgUlRXODhfVVNCYCBpcyAqc2VsZWN0ZWQgYnkqIGBSVFc4OF84ODIyQlVgLiBTbywgaWYgd2UgZW5hYmxlIGBSVFc4OF84ODIyQlVgLCBgUlRXODhfVVNCYCB3aWxsIGNvbWUgYWxvbmcgZm9yIHRoZSByaWRlLCBhbmQgd2Ugb25seSBuZWVkIHRvIGVuYWJsZSBgUlRXODhfODgyMkJVYC4gU28sIGVuYWJsaW5nIGBSVFc4OF84ODIyQlVgIGlzIHN1ZmZpY2llbnQgdG8gZW5hYmxlIGJvdGguXG5cblRoZXJlZm9yZSwgbGV0J3Mgbm93IGNvbmZpcm0gdGhhdCBgUlRXODhfVVNCYCBpcyAqbm90KiBpbnRlbmRlZCB0byBiZSBlbmFibGVkIGluZGVwZW5kZW50bHkuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjQyMjUzLCJPdXRwdXRUb2tlbnMiOjQzLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MTM0LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTE0VDA2OjQyOjU2LjI4MzYwNTgwOVoiLCJTZXEiOjM0LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MTA3MTc0MTU5LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcImNvbmZpZyBSVFc4OF9VU0JcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZz0yMD1jb25maWcgUlRXODhfU0RJT1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnLTIyLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZzoyMzpjb25maWcgUlRXODhfVVNCXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnLTI0LVxcdHRyaXN0YXRlXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTE0VDA2OjQyOjU2LjM5MDc5MDc5OFoiLCJTZXEiOjM1LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo1NTYwOTYzNjY2LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKk15IEFwcHJvYWNoIHRvIFNlbGVjdGluZyBUaGlzIERldmljZSoqXG5cbk9rYXksIHNvIEknbSBsb29raW5nIGF0IHRoaXMgZGV2aWNlLCBhbmQgdGhlIGZpcnN0IHRoaW5nIEkgbm90aWNlIGlzIHRoYXQgaXQncyBqdXN0ICp0aGVyZSouIE5vIHNwZWNpZmljIHByb21wdCB0byBhY3RpdmF0ZSBpdC4gVGhhdCBtZWFucyBJIG5lZWQgdG8gdHJpZ2dlciBpdCBpbmRpcmVjdGx5LCByaWdodD8gSSBuZWVkIHRvIGdldCBvbmUgb2YgdGhlIGRyaXZlcnMgdGhhdCBjYW4gKnNlbGVjdCogdGhpcyB0aGluZyB0byBraWNrIGluLiBMZXQncyBzZWUuLi4gbG9va2luZyBhdCB0aGUgb3B0aW9ucywgYFJUVzg4Xzg4MjJCVWAgc2VlbXMgbGlrZSBhIGxpa2VseSBjYW5kaWRhdGUuIEl0IGxvb2tzIGxpa2UgaXQgaGFuZGxlcyBkZXZpY2VzIGxpa2UgdGhpcyBvbmUuXG5cbkJ1dCBob2xkIG9uLCBiZWZvcmUgSSBqdW1wIHRvIHRoZSBzcGVjaWZpYyBtb2RlbCBkcml2ZXIsIEkgbmVlZCB0byBtYWtlIHN1cmUgdGhlIGJhc2UgYFJUVzg4YCBkcml2ZXIgaXMgZW5hYmxlZCBmaXJzdC4gVGhhdCdzIHRoZSBmb3VuZGF0aW9uLiBTbywgbGV0IG1lIGNoZWNrIHRoZSBkZXBlbmRlbmNpZXMgZm9yIGBSVFc4OGAuIEkgbmVlZCB0byBtYWtlIHN1cmUgdGhhdCdzIGFsbCBzcXVhcmVkIGF3YXkgYmVmb3JlIEkgZXZlbiBsb29rIGF0IHRoZSBmaW5lciBkZXRhaWxzLiBXZSBkb24ndCB3YW50IHRvIGdldCBhaGVhZCBvZiBvdXJzZWx2ZXMuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjQyODExLCJPdXRwdXRUb2tlbnMiOjQyLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6NzAsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDgtMTRUMDY6NDM6MDEuOTUxNzU3NjU0WiIsIlNlcSI6MzYsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo2MzEzNTg4MCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJtZW51Y29uZmlnIFJUVzg4XCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZ1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJkcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWctMS0jIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wLW9ubHlcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWc6MjptZW51Y29uZmlnIFJUVzg4XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnLTMtXFx0dHJpc3RhdGUgXFxcIlJlYWx0ZWsgODAyLjExYWMgd2lyZWxlc3MgY2hpcHMgc3VwcG9ydFxcXCJcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMTRUMDY6NDM6MDIuMDE0ODk4NTM0WiIsIlNlcSI6MzcsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjQ4MDYyMzMxNzQsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IkhlcmUncyBteSBhdHRlbXB0IGF0IHN1bW1hcml6aW5nIHRoZSB0aG91Z2h0IHByb2Nlc3MgaW4gdGhlIGZpcnN0IHBlcnNvbiwgYXNzdW1pbmcgdGhlIHVzZXIgaXMgYW4gZXhwZXJ0OlxuXG4qKkRlcGVuZGVuY3kgQ2hlY2sqKlxuXG5Pa2F5LCBzbyBJJ20gZGVhbGluZyB3aXRoIGBSVFc4OGAsIGFuZCBzb21ldGhpbmcncyBuYWdnaW5nIGF0IG1lLiBJdCBmZWVscyBsaWtlIGBSVFc4OGAgZGVwZW5kcyBvbiwgb3IgaW50ZXJmYWNlcyB3aXRoLCBgTUFDODAyMTFgLiBUaW1lIHRvIHZlcmlmeSB0aGF0IGFzc3VtcHRpb24uIEJlZm9yZSBJIGRpZyBkZWVwZXIsIEkgbmVlZCB0byBjb25maXJtIHdoZXRoZXIgb3Igbm90IGBSVFc4OGAgcmVsaWVzIG9uIHRoYXQgc3BlY2lmaWMgTUFDIGxheWVyIGltcGxlbWVudGF0aW9uLiBUaGlzIGlzIHRoZSBsb2dpY2FsIGZpcnN0IHN0ZXAgYmVmb3JlIHRyb3VibGVzaG9vdGluZyB3aGF0ZXZlciBpc3N1ZSBJIGhhdmUsIG9yIGV4cGxvcmluZyBob3cgdGhlc2UgdHdvIHJlbGF0ZSB0byBlYWNoIG90aGVyLiBCZXN0IHRvIGdldCB0aGUgYXJjaGl0ZWN0dXJlIHJpZ2h0IGZyb20gdGhlIHN0YXJ0LiBMZXQncyBzZWUuLi4gSSdsbCBwdWxsIHVwIHRoZSBkb2N1bWVudGF0aW9uL2NvZGUvd2hhdGV2ZXIncyByZWxldmFudCBhbmQgY29uZmlybSB0aGF0IHJlbGF0aW9uc2hpcC5cblxuXG4iLCJJbnB1dFRva2VucyI6NDMyMjcsIk91dHB1dFRva2VucyI6MzgsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoyMywiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wOC0xNFQwNjo0MzowNi44MjExMzM2NTdaIiwiU2VxIjozOCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjkyMjQ3Njg5LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcImRlcGVuZHMgb25cIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZz0yPW1lbnVjb25maWcgUlRXODhcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWctMy1cXHR0cmlzdGF0ZSBcXFwiUmVhbHRlayA4MDIuMTFhYyB3aXJlbGVzcyBjaGlwcyBzdXBwb3J0XFxcIlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZzo0OlxcdGRlcGVuZHMgb24gTUFDODAyMTFcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWctNS1cXHRoZWxwXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWc9NjA9Y29uZmlnIFJUVzg4Xzg4MjJCRVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZy02MS1cXHR0cmlzdGF0ZSBcXFwiUmVhbHRlayA4ODIyQkUgUENJIHdpcmVsZXNzIG5ldHdvcmsgYWRhcHRlclxcXCJcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWc6NjI6XFx0ZGVwZW5kcyBvbiBQQ0lcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWctNjMtXFx0c2VsZWN0IFJUVzg4X0NPUkVcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZz03MT1jb25maWcgUlRXODhfODgyMkJTXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnLTcyLVxcdHRyaXN0YXRlIFxcXCJSZWFsdGVrIDg4MjJCUyBTRElPIHdpcmVsZXNzIG5ldHdvcmsgYWRhcHRlclxcXCJcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWc6NzM6XFx0ZGVwZW5kcyBvbiBNTUNcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWctNzQtXFx0c2VsZWN0IFJUVzg4X0NPUkVcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZz04Mj1jb25maWcgUlRXODhfODgyMkJVXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnLTgzLVxcdHRyaXN0YXRlIFxcXCJSZWFsdGVrIDg4MjJCVSBVU0Igd2lyZWxlc3MgbmV0d29yayBhZGFwdGVyXFxcIlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZzo4NDpcXHRkZXBlbmRzIG9uIFVTQlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZy04NS1cXHRzZWxlY3QgUlRXODhfQ09SRVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnPTkzPWNvbmZpZyBSVFc4OF84ODIyQ0VcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWctOTQtXFx0dHJpc3RhdGUgXFxcIlJlYWx0ZWsgODgyMkNFIFBDSSB3aXJlbGVzcyBuZXR3b3JrIGFkYXB0ZXJcXFwiXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnOjk1OlxcdGRlcGVuZHMgb24gUENJXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnLTk2LVxcdHNlbGVjdCBSVFc4OF9DT1JFXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWc9MTA0PWNvbmZpZyBSVFc4OF84ODIyQ1NcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWctMTA1LVxcdHRyaXN0YXRlIFxcXCJSZWFsdGVrIDg4MjJDUyBTRElPIHdpcmVsZXNzIG5ldHdvcmsgYWRhcHRlclxcXCJcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWc6MTA2OlxcdGRlcGVuZHMgb24gTU1DXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnLTEwNy1cXHRzZWxlY3QgUlRXODhfQ09SRVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnPTExNT1jb25maWcgUlRXODhfODgyMkNVXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnLTExNi1cXHR0cmlzdGF0ZSBcXFwiUmVhbHRlayA4ODIyQ1UgVVNCIHdpcmVsZXNzIG5ldHdvcmsgYWRhcHRlclxcXCJcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWc6MTE3OlxcdGRlcGVuZHMgb24gVVNCXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnLTExOC1cXHRzZWxlY3QgUlRXODhfQ09SRVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnPTEyNj1jb25maWcgUlRXODhfODcyM0RFXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnLTEyNy1cXHR0cmlzdGF0ZSBcXFwiUmVhbHRlayA4NzIzREUgUENJIHdpcmVsZXNzIG5ldHdvcmsgYWRhcHRlclxcXCJcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWc6MTI4OlxcdGRlcGVuZHMgb24gUENJXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnLTEyOS1cXHRzZWxlY3QgUlRXODhfQ09SRVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnPTEzNz1jb25maWcgUlRXODhfODcyM0RTXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnLTEzOC1cXHR0cmlzdGF0ZSBcXFwiUmVhbHRlayA4NzIzRFMgU0RJTyB3aXJlbGVzcyBuZXR3b3JrIGFkYXB0ZXJcXFwiXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnOjEzOTpcXHRkZXBlbmRzIG9uIE1NQ1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZy0xNDAtXFx0c2VsZWN0IFJUVzg4X0NPUkVcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZz0xNDg9Y29uZmlnIFJUVzg4Xzg3MjNDU1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZy0xNDktXFx0dHJpc3RhdGUgXFxcIlJlYWx0ZWsgODcyM0NTIFNESU8gd2lyZWxlc3MgbmV0d29yayBhZGFwdGVyXFxcIlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZzoxNTA6XFx0ZGVwZW5kcyBvbiBNTUNcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWctMTUxLVxcdHNlbGVjdCBSVFc4OF9DT1JFXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWc9MTYyPWNvbmZpZyBSVFc4OF84NzIzRFVcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWctMTYzLVxcdHRyaXN0YXRlIFxcXCJSZWFsdGVrIDg3MjNEVSBVU0Igd2lyZWxlc3MgbmV0d29yayBhZGFwdGVyXFxcIlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZzoxNjQ6XFx0ZGVwZW5kcyBvbiBVU0JcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWctMTY1LVxcdHNlbGVjdCBSVFc4OF9DT1JFXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWc9MTczPWNvbmZpZyBSVFc4OF84ODIxQ0VcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWctMTc0LVxcdHRyaXN0YXRlIFxcXCJSZWFsdGVrIDg4MjFDRSBQQ0kgd2lyZWxlc3MgbmV0d29yayBhZGFwdGVyXFxcIlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZzoxNzU6XFx0ZGVwZW5kcyBvbiBQQ0lcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWctMTc2LVxcdHNlbGVjdCBSVFc4OF9DT1JFXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWc9MTg0PWNvbmZpZyBSVFc4OF84ODIxQ1NcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWctMTg1LVxcdHRyaXN0YXRlIFxcXCJSZWFsdGVrIDg4MjFDUyBTRElPIHdpcmVsZXNzIG5ldHdvcmsgYWRhcHRlclxcXCJcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWc6MTg2OlxcdGRlcGVuZHMgb24gTU1DXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnLTE4Ny1cXHRzZWxlY3QgUlRXODhfQ09SRVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnPTE5NT1jb25maWcgUlRXODhfODgyMUNVXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnLTE5Ni1cXHR0cmlzdGF0ZSBcXFwiUmVhbHRlayA4ODIxQ1UgVVNCIHdpcmVsZXNzIG5ldHdvcmsgYWRhcHRlclxcXCJcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWc6MTk3OlxcdGRlcGVuZHMgb24gVVNCXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnLTE5OC1cXHRzZWxlY3QgUlRXODhfQ09SRVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnPTIwNj1jb25maWcgUlRXODhfODgyMUFVXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnLTIwNy1cXHR0cmlzdGF0ZSBcXFwiUmVhbHRlayA4ODIxQVUvODgxMUFVIFVTQiB3aXJlbGVzcyBuZXR3b3JrIGFkYXB0ZXJcXFwiXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnOjIwODpcXHRkZXBlbmRzIG9uIFVTQlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZy0yMDktXFx0c2VsZWN0IFJUVzg4X0NPUkVcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZz0yMTc9Y29uZmlnIFJUVzg4Xzg4MTJBVVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZy0yMTgtXFx0dHJpc3RhdGUgXFxcIlJlYWx0ZWsgODgxMkFVIFVTQiB3aXJlbGVzcyBuZXR3b3JrIGFkYXB0ZXJcXFwiXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnOjIxOTpcXHRkZXBlbmRzIG9uIFVTQlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZy0yMjAtXFx0c2VsZWN0IFJUVzg4X0NPUkVcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZz0yMjg9Y29uZmlnIFJUVzg4Xzg4MTRBRVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZy0yMjktXFx0dHJpc3RhdGUgXFxcIlJlYWx0ZWsgODgxNEFFIFBDSSB3aXJlbGVzcyBuZXR3b3JrIGFkYXB0ZXJcXFwiXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnOjIzMDpcXHRkZXBlbmRzIG9uIFBDSVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZy0yMzEtXFx0c2VsZWN0IFJUVzg4X0NPUkVcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZz0yMzk9Y29uZmlnIFJUVzg4Xzg4MTRBVVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZy0yNDAtXFx0dHJpc3RhdGUgXFxcIlJlYWx0ZWsgODgxNEFVIFVTQiB3aXJlbGVzcyBuZXR3b3JrIGFkYXB0ZXJcXFwiXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnOjI0MTpcXHRkZXBlbmRzIG9uIFVTQlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZy0yNDItXFx0c2VsZWN0IFJUVzg4X0NPUkVcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZz0yNTA9Y29uZmlnIFJUVzg4X0RFQlVHXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnLTI1MS1cXHRib29sIFxcXCJSZWFsdGVrIHJ0dzg4IGRlYnVnIHN1cHBvcnRcXFwiXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnOjI1MjpcXHRkZXBlbmRzIG9uIFJUVzg4X0NPUkVcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWctMjUzLVxcdGhlbHBcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZz0yNTg9Y29uZmlnIFJUVzg4X0RFQlVHRlNcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWctMjU5LVxcdGJvb2wgXFxcIlJlYWx0ZWsgcnR3ODggZGVidWdmcyBzdXBwb3J0XFxcIlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZzoyNjA6XFx0ZGVwZW5kcyBvbiBSVFc4OF9DT1JFXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnLTI2MS1cXHRoZWxwXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWc9MjY2PWNvbmZpZyBSVFc4OF9MRURTXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnLTI2Ny1cXHRib29sXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnOjI2ODpcXHRkZXBlbmRzIG9uIExFRFNfQ0xBU1M9eSB8fCBMRURTX0NMQVNTPU1BQzgwMjExXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnLTI2OS1cXHRkZWZhdWx0IHlcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMTRUMDY6NDM6MDYuOTEzMzg4NDU2WiIsIlNlcSI6MzksIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjExNjYwNjM1MjU3LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKk15IEFuYWx5c2lzIG9mIHRoZSBSZWFsdGVrIHJ0dzg4IFVTQiBEcml2ZXIgZm9yIEZ1enppbmcqKlxuXG5Pa2F5LCBsZXQncyBicmVhayB0aGlzIGRvd24uIEZpcnN0LCBJIG5lZWQgdG8gaWRlbnRpZnkgdGhlIHJlbGV2YW50IGNvbmZpZ3VyYXRpb25zIGFuZCBlbnRyeSBwb2ludHMgZm9yIGZ1enppbmcgdGhpcyBSZWFsdGVrIGRyaXZlci4gSSBzZWUgdGhhdCBgUlRXODhgIGRlcGVuZHMgb24gYE1BQzgwMjExYCwgYW5kIGBSVFc4OF84ODIyQlVgIHNwZWNpZmljYWxseSBkZXBlbmRzIG9uIGBVU0JgLiBTaW5jZSBgTUFDODAyMTFgIGFuZCBgVVNCYCBhcmUgdHlwaWNhbGx5IGVuYWJsZWQgYnkgZGVmYXVsdCwgSSdsbCBmb2N1cyBteSBjb25maWd1cmF0aW9uIGVmZm9ydHMgb24gZW5hYmxpbmcgYFJUVzg4YCBhbmQgYFJUVzg4Xzg4MjJCVWAuXG5cbk5vdyBmb3IgdGhlIGNyaXRpY2FsIHBhcnQ6IHRoZSBmb2N1cyBzeW1ib2xzLiBUaGUgcHJvbXB0IGlzIHN0ZWVyaW5nIG1lIHRvd2FyZHMgbm9uLXN0YXRpYywgbm9uLWlubGluZWQgQVBJIGVudHJ5IHBvaW50cy4gSSBpbml0aWFsbHkgY29uc2lkZXJlZCBgcnR3X3R4YCBhbmQgYHJ0d191c2JfdHhfd3JpdGVgLCBidXQgdGhlbiBJIHJlYWxpemVkIGBydHdfdXNiX3R4X3dyaXRlYCBpcyBzdGF0aWMuIERpZ2dpbmcgZGVlcGVyLCBJIHRyYWNlZCB0aGUgY2FsbCBjaGFpbi4gYHJ0d191c2JfdHhfd3JpdGVgIGlzIGNhbGxlZCB0aHJvdWdoIGEgZnVuY3Rpb24gcG9pbnRlciAoYHJ0d2Rldi1cdTAwM2VoY2kub3BzLVx1MDAzZXR4X3dyaXRlYCksIGFuZCBJIGZvdW5kIGBydHdfaGNpX3R4X3dyaXRlYCB3aGljaCwgd2hpbGUgaW5saW5lLCBpcyBjYWxsZWQgYnkgYHJ0d190eGAgYW5kIGBydHdfdHhxX3B1c2hfc2tiYC4gU28sIEknbGwgbGlzdCBgcnR3X3R4YCBhcyB0aGUgbm9uLXN0YXRpYyBBUEkgZW50cnkgcG9pbnQuXG5cbkkgZG91YmxlLWNoZWNrZWQgYHR4LmNgIGFuZCBjb25maXJtZWQgdGhhdCBgcnR3X3R4YCBpcyBpbmRlZWQgbm9uLXN0YXRpYy4gVGhlbiwgSSBsb29rZWQgZm9yIG90aGVyIHBvdGVudGlhbCBlbnRyeSBwb2ludHMuIGBydHdfdHhxX3B1c2hfc2tiYCBpcyBzdGF0aWMsIGFzIGlzIGBydHdfdHhxX3B1c2hgLiBIb3dldmVyLCBgX19ydHdfdHhfd29ya2AgYW5kIGBydHdfdHhfd29ya2AgYXJlIG5vbi1zdGF0aWMuIEkgY29uZmlybWVkIHRoYXQgYHJ0d190eF93b3JrYCBpcyBub24tc3RhdGljIGFzIHdlbGwuXG5cblRoZXJlZm9yZSwgYWZ0ZXIgYSB0aG9yb3VnaCByZXZpZXcsIEknbSBjb25maWRlbnQgaW4gbXkgYW5hbHlzaXMuXG5cbkhlcmUncyBteSBzdW1tYXJ5OlxuXG4qICAgKipXb3J0aEZ1enppbmc6KiogVHJ1ZSAoYmVjYXVzZSB0aGlzIFRYIHF1ZXVlIGxvZ2ljIGlzIGZ1bmN0aW9uYWxseSBzaWduaWZpY2FudClcbiogICAqKkZvY3VzU3ltYm9sczoqKiBgcnR3X3R4YCwgYHJ0d190eF93b3JrYFxuKiAgICoqRW5hYmxlQ29uZmlnczoqKiBgUlRXODhgLCBgUlRXODhfODgyMkJVYFxuKiAgICoqUmVhc29uaW5nOioqIFRoZSBwYXRjaCB0b3VjaGVzIFRYIHF1ZXVlIHNlbGVjdGlvbiBsb2dpYyBmb3IgYnJvYWRjYXN0L211bHRpY2FzdCBwYWNrZXRzIHdpdGhpbiB0aGUgUmVhbHRlayBydHc4OCBVU0IgZHJpdmVyLiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBhcmVhIHJlYWNoYWJsZSB2aWEgbWFjODAyMTEgd2hlbiBzZW5kaW5nIHBhY2tldHMgb3ZlciBhIFVTQiBpbnRlcmZhY2UuXG5cbkZpbmFsbHksIHdoaWxlIG15IGluaXRpYWwgYW5hbHlzaXMgc3VnZ2VzdGVkIGBSVFc4OF84ODIyQlVgIGFzIHRoZSBvbmx5IFVTQiBkcml2ZXIsIGEgcXVpY2sgY2hlY2sgb2Ygb3RoZXIgYXZhaWxhYmxlIFJUVzg4IGRyaXZlcnMgaW5kaWNhdGVzIHRoYXQgc2VsZWN0aW5nIHRoaXMgaXMgZW5vdWdoIHRvIGVuYWJsZSBVU0IgY29tcGlsYXRpb24uXG5cbkxldCdzIGNhbGwgc2V0LXJlc3VsdHMuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjQ2MTY3LCJPdXRwdXRUb2tlbnMiOjExOSwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjg0NywiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wOC0xNFQwNjo0MzoxOC41NzQwMjcxNDNaIiwiU2VxIjo0MCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoic2V0LXJlc3VsdHMiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoxMjQ5NzYwOTksIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IFtcbiAgICBcIlJUVzg4XCIsXG4gICAgXCJSVFc4OF84ODIyQlVcIlxuICBdLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXG4gICAgXCJydHdfdHhcIixcbiAgICBcInJ0d190eF93b3JrXCJcbiAgXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIFRYIHF1ZXVlIHNlbGVjdGlvbiBsb2dpYyBmb3IgYnJvYWRjYXN0L211bHRpY2FzdCBwYWNrZXRzIGluIHRoZSBSZWFsdGVrIHJ0dzg4IFVTQiBkcml2ZXIuIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSBpbiB0aGUgZHJpdmVyJ3MgVFggcGF0aCwgcmVhY2hhYmxlIHZpYSBtYWM4MDIxMSB3aGVuIHNlbmRpbmcgcGFja2V0cyBvdmVyIGEgVVNCIGludGVyZmFjZS5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogdHJ1ZVxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXG4gICAgXCJSVFc4OFwiLFxuICAgIFwiUlRXODhfODgyMkJVXCJcbiAgXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW1xuICAgIFwicnR3X3R4XCIsXG4gICAgXCJydHdfdHhfd29ya1wiXG4gIF0sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBUWCBxdWV1ZSBzZWxlY3Rpb24gbG9naWMgZm9yIGJyb2FkY2FzdC9tdWx0aWNhc3QgcGFja2V0cyBpbiB0aGUgUmVhbHRlayBydHc4OCBVU0IgZHJpdmVyLiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgaW4gdGhlIGRyaXZlcidzIFRYIHBhdGgsIHJlYWNoYWJsZSB2aWEgbWFjODAyMTEgd2hlbiBzZW5kaW5nIHBhY2tldHMgb3ZlciBhIFVTQiBpbnRlcmZhY2UuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IHRydWVcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTE0VDA2OjQzOjE4LjY5OTAxMDAyMloiLCJTZXEiOjQxLCJOZXN0aW5nIjoxLCJUeXBlIjoiYWN0aW9uIiwiTmFtZSI6IklmIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MTc5ODc3MzgzNTYsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJXb3J0aEZ1enppbmdcIjogdHJ1ZVxufSIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0xNFQwNjo0MzoxOC42OTk2MDkxODJaIiwiU2VxIjo0MiwiTmVzdGluZyI6MiwiVHlwZSI6ImFnZW50IiwiTmFtZSI6Imttc2FuLWV2YWx1YXRvciIsIk1vZGVsIjoiYmVzdC1leHBlbnNpdmUiLCJEdXJhdGlvbiI6MTc5ODcxMzMyODYsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIktNU0FOUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBxdWV1ZSBzZWxlY3Rpb24gbG9naWMgZm9yIHRyYW5zbWl0dGVkIHBhY2tldHMgaW4gdGhlIFJlYWx0ZWsgcnR3ODggVVNCIGRyaXZlci4gSXQgY2hlY2tzIGEgZmxhZyBpbiB0aGUgYGllZWU4MDIxMV90eF9pbmZvYCBzdHJ1Y3QgKHN0b3JlZCBpbiBgc2tiLVxcdTAwM2VjYmApIHRvIGRldGVybWluZSB0aGUgYXBwcm9wcmlhdGUgcXVldWUgZm9yIGJyb2FkY2FzdC9tdWx0aWNhc3QgcGFja2V0cy4gVGhlIGBza2ItXFx1MDAzZWNiYCBmaWVsZCBpcyBmdWxseSBpbml0aWFsaXplZCBieSB0aGUgbWFjODAyMTEgc3Vic3lzdGVtIGJlZm9yZSB0aGUgcGFja2V0IGlzIHBhc3NlZCB0byB0aGUgZHJpdmVyIGZvciB0cmFuc21pc3Npb24uIFRoZXJlIGlzIG5vIHJpc2sgb2YgcmVhZGluZyB1bmluaXRpYWxpemVkIG1lbW9yeSwgbm9yIGRvZXMgdGhpcyBwYXRjaCBpbnRyb2R1Y2UgYW55IG5ldyBhbGxvY2F0aW9ucyBvciBzdHJ1Y3R1cmVzIHRoYXQgY291bGQgbGVhayB1bmluaXRpYWxpemVkIGRhdGEgdG8gdXNlciBzcGFjZSBvciBoYXJkd2FyZS4gVGhlIGlzc3VlIGlzIGEgcHVyZWx5IGxvZ2ljYWwgYnVnIGluIHF1ZXVlIGFzc2lnbm1lbnQsIHdoaWNoIGRvZXMgbm90IHJlcXVpcmUgS01TQU4gdG8gZGV0ZWN0LiBTdGFuZGFyZCB0ZXN0aW5nIG9yIEtBU0FOIGlzIHN1ZmZpY2llbnQgZm9yIGdlbmVyYWwgbWVtb3J5IHNhZmV0eSwgYW5kIEtNU0FOIGlzIG5vdCBhcHBsaWNhYmxlIGhlcmUuXCIsXG4gIFwiTmVlZHNLTVNBTlwiOiBmYWxzZVxufSIsIkluc3RydWN0aW9uIjoiWW91IGFyZSBhbiBleHBlcnQgTGludXgga2VybmVsIHNlY3VyaXR5IGVuZ2luZWVyIHNwZWNpYWxpemluZyBpbiBrZXJuZWwgbWVtb3J5XG5lcnJvciBkZXRlY3RvcnMgKEtBU0FOIGFuZCBLTVNBTikuIFlvdXIgam9iIGlzIHRvIHJldmlldyB0aGUgcHJvdmlkZWQgcGF0Y2ggc2VyaWVzIGFuZFxuZGV0ZXJtaW5lIGlmIHRoZSBjb2RlIGNoYW5nZXMganVzdGlmeSBzcGF3bmluZyBhIGRlZGljYXRlZCBLTVNBTiAoS2VybmVsTWVtb3J5U2FuaXRpemVyKVxuZnV6emluZyBzZXNzaW9uIGluIGFkZGl0aW9uIHRvIHN0YW5kYXJkIEtBU0FOIGZ1enppbmcuXG5cbkNSSVRJQ0FMIERJU1RJTkNUSU9OIEJFVFdFRU4gS0FTQU4gQU5EIEtNU0FOOlxuLSBTdGFuZGFyZCBLQVNBTiBrZXJuZWwgYnVpbGRzICh1cHN0cmVhbS1hcHBhcm1vci1rYXNhbi5jb25maWcpIGFscmVhZHkgZW5hYmxlXG4gIGEgY29tcHJlaGVuc2l2ZSBzdWl0ZSBvZiBkZWJ1Z2dpbmcgdG9vbHMgYW5kIHNhbml0aXplcnMsIGluY2x1ZGluZyBLQVNBTlxuICAob3V0LW9mLWJvdW5kcyBhY2Nlc3NlcywgdXNlLWFmdGVyLWZyZWUsIGRvdWJsZSBmcmVlLCBpbnZhbGlkIGZyZWUpLCBMT0NLREVQXG4gIChsb2NraW5nIGJ1Z3MgYW5kIGRlYWRsb2NrcyksIFVCLXNhbml0aXplcnMsIGFuZCBtZW1vcnkgY29ycnVwdGlvbiBjaGVja3MuXG4tIEtNU0FOIChLZXJuZWxNZW1vcnlTYW5pdGl6ZXIpIGRldGVjdHMgcmVhZHMgb2YgVU5JTklUSUFMSVpFRCBtZW1vcnkgKHN0YWNrLCBoZWFwLFxuICBvciBwYWdlIGFsbG9jYXRpb25zKSBhbmQga2VybmVsLXRvLXVzZXIgbWVtb3J5IGluZm8tbGVha3MuXG5cblJ1bGU6IFRIRVJFIElTIE5PIFNFTlNFIElOIFJVTk5JTkcgQSBLTVNBTiBTRVNTSU9OIElGIEEgQlVHIENBTiBCRSBDQVVHSFQgQlkgS0FTQU4sXG5MT0NLREVQLCBPUiBPVEhFUiBTVEFOREFSRCBCVUcgREVURUNUT1JTLlxuQSBkZWRpY2F0ZWQgS01TQU4gZnV6emluZyBzZXNzaW9uIGluY3VycyBzaWduaWZpY2FudCByZXNvdXJjZSBjb3N0cy4gWW91IG11c3QgT05MWVxuc2V0IE5lZWRzS01TQU49dHJ1ZSBpZiB0aGUgY29kZSBjaGFuZ2VzIGludHJvZHVjZSBvciBleHBvc2UgVU5JTklUSUFMSVpFRCBNRU1PUlkgcmlza3NcbnRoYXQgYXJlIGRldGVjdGVkIE9OTFkgYnkgS01TQU4uXG5cbkxvb2sgaG9saXN0aWNhbGx5IGF0IHRoZSBwYXRjaCBzZXJpZXMgYW5kIHN1cnJvdW5kaW5nIGNvZGUuIEV2ZW4gaWYgbm8gZGlyZWN0XG51bmluaXRpYWxpemVkIGZpZWxkIGFjY2Vzc2VzIG9yIG5ldyBidWZmZXIgYWxsb2NhdGlvbnMgYXJlIGFkZGVkIGluIHRoZSBkaWZmIGl0c2VsZixcbmEgcGF0Y2ggbWF5IGFsdGVyIGNvbnRyb2wgZmxvdywgYm91bmRzIGNoZWNraW5nLCBvciBkYXRhIGxlbmd0aCBjYWxjdWxhdGlvbnMgaW4gd2F5c1xudGhhdCBjaGFuZ2UgaG93IHRoZSByZXN0IG9mIHRoZSBjb2RlIG9wZXJhdGVzIG9uIGV4aXN0aW5nIGJ1ZmZlcnMgKGUuZy4gYWxsb3dpbmdcbnVuaW5pdGlhbGl6ZWQgc3RhY2svaGVhcCBtZW1vcnkgdG8gYmUgcmVhZCwgY29waWVkIHRvIHVzZXIgc3BhY2UsIG9yIHVzZWQgaW4gY29udHJvbFxuZmxvdykuIERvIG5vdCBoZXNpdGF0ZSB0byB1c2UgeW91ciBjb2RlIGFjY2VzcyB0b29scyB0byBpbnNwZWN0IHRoZSBzdXJyb3VuZGluZyBjb2RlLFxuY2FsbGVkIGZ1bmN0aW9ucywgYW5kIGNhbGxlcnMuXG5cblNldCBOZWVkc0tNU0FOPXRydWUgT05MWSBJRiB0aGUgcGF0Y2ggaW50cm9kdWNlcyBvciBtb2RpZmllczpcbjEuIEtlcm5lbCBzdHJ1Y3R1cmVzIHNlbnQgdG8gdXNlciBzcGFjZSAodmlhIGNvcHlfdG9fdXNlciwgcHV0X3VzZXIsIG5ldGxpbmsgc2tiXG4gICBhdHRyaWJ1dGVzLCBpb2N0bCBvdXRwdXQgYXJndW1lbnRzLCBzb2NrZXQgb3B0aW9ucywgb3IgQlBGIGJ1ZmZlcnMpIHdoZXJlIGZpZWxkc1xuICAgb3Igc3RydWN0dXJlIHBhZGRpbmcgbWlnaHQgbm90IGJlIGZ1bGx5IGluaXRpYWxpemVkL3plcm9lZC5cbjIuIENvbmRpdGlvbmFsIGxvZ2ljIG9yIGJyYW5jaGluZyB0aGF0IGRlcGVuZHMgb24gcG90ZW50aWFsbHkgdW5pbml0aWFsaXplZCB2YXJpYWJsZXNcbiAgIG9yIHN0cnVjdCBmaWVsZHMuXG4zLiBBbGxvY2F0aW9uIG9yIGluaXRpYWxpemF0aW9uIG9mIGNvbXBsZXggZGF0YSBzdHJ1Y3R1cmVzIHdoZXJlIHVuaW5pdGlhbGl6ZWQgZmllbGRzXG4gICBjb3VsZCBiZSByZWFkIGxhdGVyIGluIHJlYWNoYWJsZSBjb2RlIHBhdGhzLlxuNC4gQm91bmRzIGNoZWNrcywgbGVuZ3Rocywgb3IgbG9naWMgaW4gYSB3YXkgdGhhdCBhbGxvd3Mgc3Vycm91bmRpbmcgY29kZSB0byBhY2Nlc3NcbiAgIHVuaW5pdGlhbGl6ZWQgYnl0ZXMgb2YgZXhpc3RpbmcgYnVmZmVycy5cblxuU2V0IE5lZWRzS01TQU49ZmFsc2UgSUY6XG4tIFRoZSBjb2RlIGNoYW5nZXMgcHJpbWFyaWx5IHJpc2sgb3V0LW9mLWJvdW5kcyBhY2Nlc3MsIGFycmF5IG92ZXJmbG93cywgTlVMTCBwb2ludGVyXG4gIGRlcmVmZXJlbmNlcywgbG9ja2luZyBkZWFkbG9ja3MsIG9yIHVzZS1hZnRlci1mcmVlIGJ1Z3MgKHRoZXNlIGFyZSBhbHJlYWR5IGNhdWdodFxuICBieSBLQVNBTiwgTE9DS0RFUCwgb3Igc3RhbmRhcmQgYnVnIGRldGVjdG9ycykuXG4tIEFsbCBzdGFjay9oZWFwIHN0cnVjdHVyZXMgdG91Y2hlZCBvciBpbnRyb2R1Y2VkIGJ5IHRoZSBwYXRjaCBhcmUgZnVsbHkgemVyb2VkXG4gIG9yIGluaXRpYWxpemVkIChlLmcuIHVzaW5nID0gezB9LCBtZW1zZXQsIGt6YWxsb2MpIGJlZm9yZSBiZWluZyByZWFkIG9yIGNvcGllZC5cbi0gVGhlIHBhdGNoIGRvZXMgbm90IGludHJvZHVjZSBhbnkgcmlzayBvZiB1bmluaXRpYWxpemVkIG1lbW9yeSB1c2FnZSBvciBpbmZvLWxlYWtzLlxuXG5Vc2UgeW91ciBjb2RlIGFjY2VzcyB0b29scyB0byBpbnNwZWN0IHRoZSBzdXJyb3VuZGluZyBjb2RlIGlmIG5lY2Vzc2FyeSwgdGhlbiBwcm92aWRlXG5kZXRhaWxlZCBLTVNBTlJlYXNvbmluZyBjb250cmFzdGluZyBLQVNBTiB2cyBLTVNBTiBhcHBsaWNhYmlsaXR5IGZvciB0aGlzIHBhdGNoLlxuUHJlZmVyIGNhbGxpbmcgc2V2ZXJhbCB0b29scyBhdCB0aGUgc2FtZSB0aW1lIHRvIHNhdmUgcm91bmQtdHJpcHMuXG5cblxuVXNlIHNldC1yZXN1bHRzIHRvb2wgdG8gcHJvdmlkZSByZXN1bHRzIG9mIHRoZSBhbmFseXNpcy5cbkl0IG11c3QgYmUgY2FsbGVkIGV4YWN0bHkgb25jZSBiZWZvcmUgdGhlIGZpbmFsIHJlcGx5LlxuSWdub3JlIHJlc3VsdHMgb2YgdGhpcyB0b29sLlxuIiwiUHJvbXB0IjoiRm9yIHlvdXIgY29udmVuaWVuY2UsIGhlcmUgaXMgdGhlIGRpZmYgb2YgdGhlIGNoYW5nZXM6XG5jb21taXQgNWZiMmY2ZTYxYjI1NjhkYzJjM2QwOTc4MjNmZjI4ODZhOTVhOTc3OVxuQXV0aG9yOiBzeXotY2x1c3RlciBcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVx1MDAzZVxuRGF0ZTogICBGcmkgQXVnIDE0IDA2OjQxOjQxIDIwMjYgKzAwMDBcblxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xuXG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC91c2IuYyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdXNiLmNcbmluZGV4IDY0ZTFjMzQyMGUwYTguLjQzYjljZGI0YTc5YjAgMTAwNjQ0XG4tLS0gYS9kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3VzYi5jXG4rKysgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3VzYi5jXG5AQCAtNTYwLDYgKzU2MCw3IEBAIHN0YXRpYyBpbnQgcnR3X3VzYl93cml0ZV9kYXRhX2gyYyhzdHJ1Y3QgcnR3X2RldiAqcnR3ZGV2LCB1OCAqYnVmLCB1MzIgc2l6ZSlcbiBzdGF0aWMgdTggcnR3X3VzYl90eF9xdWV1ZV9tYXBwaW5nX3RvX3FzZWwoc3RydWN0IHNrX2J1ZmYgKnNrYilcbiB7XG4gXHRzdHJ1Y3QgaWVlZTgwMjExX2hkciAqaGRyID0gKHN0cnVjdCBpZWVlODAyMTFfaGRyICopc2tiLVx1MDAzZWRhdGE7XG4rXHRzdHJ1Y3QgaWVlZTgwMjExX3R4X2luZm8gKmluZm8gPSBJRUVFODAyMTFfU0tCX0NCKHNrYik7XG4gXHRfX2xlMTYgZmMgPSBoZHItXHUwMDNlZnJhbWVfY29udHJvbDtcbiBcdHU4IHFzZWw7XG4gXG5AQCAtNTY3LDcgKzU2OCw4IEBAIHN0YXRpYyB1OCBydHdfdXNiX3R4X3F1ZXVlX21hcHBpbmdfdG9fcXNlbChzdHJ1Y3Qgc2tfYnVmZiAqc2tiKVxuIFx0XHRxc2VsID0gVFhfREVTQ19RU0VMX01HTVQ7XG4gXHRlbHNlIGlmIChpc19icm9hZGNhc3RfZXRoZXJfYWRkcihoZHItXHUwMDNlYWRkcjEpIHx8XG4gXHRcdCBpc19tdWx0aWNhc3RfZXRoZXJfYWRkcihoZHItXHUwMDNlYWRkcjEpKVxuLVx0XHRxc2VsID0gVFhfREVTQ19RU0VMX0hJR0g7XG4rXHRcdHFzZWwgPSAoaW5mby1cdTAwM2VmbGFncyBcdTAwMjYgSUVFRTgwMjExX1RYX0NUTF9TRU5EX0FGVEVSX0RUSU0pID9cbitcdFx0ICAgICAgIFRYX0RFU0NfUVNFTF9ISUdIIDogc2tiLVx1MDAzZXByaW9yaXR5O1xuIFx0ZWxzZSBpZiAoc2tiX2dldF9xdWV1ZV9tYXBwaW5nKHNrYikgXHUwMDNjPSBJRUVFODAyMTFfQUNfQkspXG4gXHRcdHFzZWwgPSBza2ItXHUwMDNlcHJpb3JpdHk7XG4gXHRlbHNlXG4iLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0xNFQwNjo0MzoxOC42OTk2MTAxNDJaIiwiU2VxIjo0MywiTmVzdGluZyI6MywiVHlwZSI6ImxsbSIsIk5hbWUiOiJrbXNhbi1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NTk0MDY0NDI2MywiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipBbmFseXppbmcgYSBQb3RlbnRpYWwgS2VybmVsIE1lbW9yeSBTYWZldHkgSXNzdWUqKlxuXG5Pa2F5LCBzbyBJJ20gbG9va2luZyBhdCB0aGlzIHBhdGNoIGluIGBkcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3VzYi5jYC4gSXQncyBhIG1vZGlmaWNhdGlvbiB0byB0aGUgYHJ0d191c2JfdHhfcXVldWVfbWFwcGluZ190b19xc2VsYCBmdW5jdGlvbiwgYW5kIHRoZSBjaGFuZ2UgaXMgYSBsaXR0bGUgY29uY2VybmluZy4gVGhleSd2ZSBpbnRyb2R1Y2VkIGBzdHJ1Y3QgaWVlZTgwMjExX3R4X2luZm8gKmluZm8gPSBJRUVFODAyMTFfU0tCX0NCKHNrYik7YCBhbmQgdGhlbiBhbHRlcmVkIHRoZSBsb2dpYyB0byB1c2UgYGluZm8tXHUwMDNlZmxhZ3NgLiBTcGVjaWZpY2FsbHksIGl0J3Mgbm93IGNoZWNraW5nIGAoaW5mby1cdTAwM2VmbGFncyBcdTAwMjYgSUVFRTgwMjExX1RYX0NUTF9TRU5EX0FGVEVSX0RUSU0pYC5cblxuTXkgaW1tZWRpYXRlIHRob3VnaHQgaXM6IGNvdWxkIGBpbmZvLVx1MDAzZWZsYWdzYCBiZSB1bmluaXRpYWxpemVkPyBBbnl0aW1lIEkgc2VlIGFuIGFjY2VzcyB0byBhIHN0cnVjdHVyZSBtZW1iZXIgdGhhdCdzIHBvdGVudGlhbGx5IGRlcml2ZWQgZnJvbSBhIG1hY3JvLCBteSBhbnRlbm5hIGdvZXMgdXAuIGBJRUVFODAyMTFfU0tCX0NCKHNrYilgIGlzIGp1c3QgYWNjZXNzaW5nIGBza2ItXHUwMDNlY2JgLCB3aGljaCBpcyB0aGUgY29udHJvbCBidWZmZXIuIFRoZSBjcml0aWNhbCBxdWVzdGlvbiBoZXJlIGlzIHdoZXRoZXIgYHNrYi1cdTAwM2VjYmAgaXMgZ3VhcmFudGVlZCB0byBiZSBpbml0aWFsaXplZCBiZWZvcmUgYHJ0d191c2JfdHhfcXVldWVfbWFwcGluZ190b19xc2VsYCBpcyBjYWxsZWQuXG5cbkZyb20gbXkgZXhwZXJpZW5jZSwgdGhlIGBtYWM4MDIxMWAgbGF5ZXIgaXMgdXN1YWxseSByZXNwb25zaWJsZSBmb3IgaW5pdGlhbGl6aW5nIGBJRUVFODAyMTFfU0tCX0NCKHNrYilgIOKAkyBpdCdzIHR5cGljYWxseSBzZXQgdXAgZm9yIG91dGdvaW5nIHBhY2tldHMuIElmIGBpbmZvLVx1MDAzZWZsYWdzYCBoYXBwZW5zIHRvIGJlIHVuaW5pdGlhbGl6ZWQsIHRoZW4gd2UgY291bGQgYmUgZmFjaW5nIGEgS2VybmVsIE1lbW9yeSBTYW5pdGl6ZXIgKEtNU0FOKSBpc3N1ZSwgd2hpY2ggd291bGQgYmUgYmFkIG5ld3MgYmVhcnMuIEhvd2V2ZXIsIHRoZSBuZXR3b3JraW5nIHN0YWNrIGFuZC9vciBgbWFjODAyMTFgIGdlbmVyYWxseSBkbyBhIGdvb2Qgam9iIG9mIHplcm9pbmcgb3IgaW5pdGlhbGl6aW5nIGBza2ItXHUwMDNlY2JgIGJlZm9yZSBpdCBoaXRzIHRoZSBkcml2ZXIuIFN0aWxsLCBJJ20gbm90IHRha2luZyBhbnl0aGluZyBmb3IgZ3JhbnRlZCwgc28gSSdtIGdvaW5nIHRvIHRyYWNrIGRvd24gZXZlcnkgY2FsbCB0byBgcnR3X3VzYl90eF9xdWV1ZV9tYXBwaW5nX3RvX3FzZWxgIGluIHRoZSBjb2RlLiBJIG5lZWQgdG8gdW5kZXJzdGFuZCB3aGVyZSB0aGlzIGZ1bmN0aW9uIGlzIGJlaW5nIHVzZWQgdG8gbWFrZSBhIGRldGVybWluYXRpb24gYWJvdXQgd2hldGhlciB0aGUgcGF0Y2ggaXMgdHJ1bHkgc2FmZS5cblxuXG4iLCJJbnB1dFRva2VucyI6MjI3MSwiT3V0cHV0VG9rZW5zIjo1MiwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjMyNywiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTE0VDA2OjQzOjI0LjY0MDI1ODQzNVoiLCJTZXEiOjQ0LCJOZXN0aW5nIjozLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6Njk4MzU1NjAsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwicnR3X3VzYl90eF9xdWV1ZV9tYXBwaW5nX3RvX3FzZWxcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC91c2IuY1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJkcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3VzYi5jPTU1MD1zdGF0aWMgaW50IHJ0d191c2Jfd3JpdGVfZGF0YV9oMmMoc3RydWN0IHJ0d19kZXYgKnJ0d2RldiwgdTggKmJ1ZiwgdTMyIHNpemUpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3VzYi5jLTU1OS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3VzYi5jOjU2MDpzdGF0aWMgdTggcnR3X3VzYl90eF9xdWV1ZV9tYXBwaW5nX3RvX3FzZWwoc3RydWN0IHNrX2J1ZmYgKnNrYilcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3VzYi5jLTU2MS17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3VzYi5jPTU4MT1zdGF0aWMgaW50IHJ0d191c2JfdHhfd3JpdGUoc3RydWN0IHJ0d19kZXYgKnJ0d2RldixcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdXNiLmMtNTkwLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdXNiLmM6NTkxOlxcdHBrdF9pbmZvLVxcdTAwM2Vxc2VsID0gcnR3X3VzYl90eF9xdWV1ZV9tYXBwaW5nX3RvX3FzZWwoc2tiKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3VzYi5jLTU5Mi1cXHRwa3RfZGVzYyA9IHNrYl9wdXNoKHNrYiwgY2hpcC1cXHUwMDNldHhfcGt0X2Rlc2Nfc3opO1xcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0xNFQwNjo0MzoyNC43MTAwOTgyOTRaIiwiU2VxIjo0NSwiTmVzdGluZyI6MywiVHlwZSI6ImxsbSIsIk5hbWUiOiJrbXNhbi1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6Mjg0MjkyNzc2MiwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiSGVyZSdzIG15IHRha2Ugb24gdGhlIHRob3VnaHQgcHJvY2VzcywgYXMgaWYgaXQgd2VyZSBteSBvd246XG5cbioqSW52ZXN0aWdhdGluZyB0aGUgVVNCIFRYIFdyaXRlIEZ1bmN0aW9uKipcblxuT2theSwgSSdtIHRyYWNpbmcgZG93biB0aGlzIGBydHdfdXNiX3R4X3dyaXRlYCBmdW5jdGlvbi4gVGhlIGNvZGUgc2F5cyBpdCdzIGNhbGxpbmcgYHJ0d191c2JfdHhfcXVldWVfbWFwcGluZ190b19xc2VsYC4gTXkgaW1tZWRpYXRlIHRob3VnaHQgaXMsIEkgbmVlZCB0byB1bmRlcnN0YW5kIHRoZSBjYWxsIGdyYXBoIHRvIHRoaXMgZnVuY3Rpb24gdG8gZ2V0IHRoZSBjb21wbGV0ZSBwaWN0dXJlLiBXaGVyZSBlbHNlIGlzIHRoaXMgYHJ0d191c2JfdHhfd3JpdGVgIGZ1bmN0aW9uIGV2ZW4gKnVzZWQqPyBJJ20gZ29pbmcgdG8gaGF2ZSB0byBmaW5kIHRoZSBjYWxsIHNpdGVzLlxuXG5cbiIsIklucHV0VG9rZW5zIjozNDM0LCJPdXRwdXRUb2tlbnMiOjQ1LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6NDcsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDgtMTRUMDY6NDM6MjcuNTUzMDI4ODI2WiIsIlNlcSI6NDYsIk5lc3RpbmciOjMsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo2MjM2MTA4MCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJydHdfdXNiX3R4X3dyaXRlXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdXNiLmNcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC91c2IuYz01NjA9c3RhdGljIHU4IHJ0d191c2JfdHhfcXVldWVfbWFwcGluZ190b19xc2VsKHN0cnVjdCBza19idWZmICpza2IpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3VzYi5jLTU4MC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3VzYi5jOjU4MTpzdGF0aWMgaW50IHJ0d191c2JfdHhfd3JpdGUoc3RydWN0IHJ0d19kZXYgKnJ0d2RldixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3VzYi5jLTU4Mi1cXHRcXHRcXHQgICAgc3RydWN0IHJ0d190eF9wa3RfaW5mbyAqcGt0X2luZm8sXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3VzYi5jPTk1Mz1zdGF0aWMgY29uc3Qgc3RydWN0IHJ0d19oY2lfb3BzIHJ0d191c2Jfb3BzID0ge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdXNiLmM6OTU0OlxcdC50eF93cml0ZSA9IHJ0d191c2JfdHhfd3JpdGUsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC91c2IuYy05NTUtXFx0LnR4X2tpY2tfb2ZmID0gcnR3X3VzYl90eF9raWNrX29mZixcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMTRUMDY6NDM6MjcuNjE1Mzk4NjY2WiIsIlNlcSI6NDcsIk5lc3RpbmciOjMsIlR5cGUiOiJsbG0iLCJOYW1lIjoia21zYW4tZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjkwNzEzMTQwMTIsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqTXkgQXNzZXNzbWVudCBvZiB0aGUgUmVhbHRlayBydHc4OCBVU0IgRHJpdmVyIFBhdGNoKipcblxuT2theSwgc28gdGhpcyBwYXRjaCBpcyB0b3VjaGluZyB0aGUgYHJ0d19oY2lfb3BzYCB3aXRoaW4gdGhlIFJlYWx0ZWsgcnR3ODggVVNCIGRyaXZlci4gSXQncyByZWxhdGVkIHRvIHRoZSB0cmFuc21pdCBwYXRoLCBzcGVjaWZpY2FsbHkgaW4gYHR4LmNgIG9yIGEgc2ltaWxhciBmaWxlLCB3aGVyZSB0aGUgY29yZSBkcml2ZXIgZ2V0cyBpbnZvbHZlZC4gSSBzZWUgdGhhdCBgc2tiLVx1MDAzZWNiYCBpcyBiZWluZyB1c2VkIHRvIHN0b3JlIHRoZSBgaWVlZTgwMjExX3R4X2luZm9gIHN0cnVjdCwgd2hpY2ggaXMgaW5pdGlhbGl6ZWQgYnkgbWFjODAyMTEuIE15IGltbWVkaWF0ZSBjb25jZXJuIHdhcyB3aGV0aGVyIHRoaXMgcGF0Y2ggaW50cm9kdWNlcyBhbnkgdW5pbml0aWFsaXplZCBtZW1vcnkgcmVhZHMuXG5cbkxvb2tpbmcgYXQgdGhlIGxvZ2ljLCB0aGUgcGF0Y2ggY2hhbmdlcyBob3cgdGhlIGBxc2VsYCB2YXJpYWJsZSBpcyBhc3NpZ25lZC4gSXQgdXNlZCB0byBiZSBoYXJkY29kZWQgdG8gYFRYX0RFU0NfUVNFTF9ISUdIYCwgYnV0IG5vdyBpdCdzIGNvbmRpdGlvbmFsbHkgc2V0IGJhc2VkIG9uIGBpbmZvLVx1MDAzZWZsYWdzYCBhbmQgYHNrYi1cdTAwM2Vwcmlvcml0eWAuIFRoZSBrZXkgaGVyZSBpcyB0aGF0IGBza2ItXHUwMDNlY2JgLCBhbmQgdGhlcmVmb3JlIGBpbmZvYCwgaXMgKmZ1bGx5IGluaXRpYWxpemVkKiBieSBtYWM4MDIxMSAqYmVmb3JlKiB0aGUgZHJpdmVyIGV2ZW4gc2VlcyBpdC4gVGhpcyBtZWFucyB0aGVyZSdzIG5vIHJpc2sgb2YgcmVhZGluZyB1bmluaXRpYWxpemVkIG1lbW9yeSwgd2hpY2ggaXMgd2hhdCBJIHdhcyBpbml0aWFsbHkgY29uY2VybmVkIGFib3V0LlxuXG5Fc3NlbnRpYWxseSwgdGhpcyBpcyBhIGxvZ2ljIGNoYW5nZSB0byBjb3JyZWN0bHkgYXNzaWduIGBxc2VsYC4gQmVmb3JlLCBtdWx0aWNhc3QvYnJvYWRjYXN0IGZyYW1lcyB3ZXJlIGFsd2F5cyBmb3JjZWQgdG8gYFRYX0RFU0NfUVNFTF9ISUdIYCwgd2hpY2ggaXMgaW5jb3JyZWN0LiBUaGUgcGF0Y2ggZml4ZXMgdGhpcyBieSB1c2luZyBgc2tiLVx1MDAzZXByaW9yaXR5YCB1bmxlc3MgdGhlIGBJRUVFODAyMTFfVFhfQ1RMX1NFTkRfQUZURVJfRFRJTWAgZmxhZyBpcyBzZXQuIFRoZSByZWFsIGlzc3VlIGlzIHRoYXQgdGhlIHF1ZXVlIHNlbGVjdGlvbiB3YXMgbG9naWNhbGx5IGZsYXdlZC5cblxuVGhlcmVmb3JlLCBiZWNhdXNlIHRoaXMgaXMgcHVyZWx5IGEgbG9naWMgYnVnIGluIHF1ZXVlIHNlbGVjdGlvbiwgYW5kIGRvZXNuJ3QgaW50cm9kdWNlIGFueSBuZXcgYWxsb2NhdGlvbiBvciB1c2FnZSBvZiB1bmluaXRpYWxpemVkIG1lbW9yeSwgdGhlcmUncyBubyBuZWVkIGZvciBLTVNBTiB0byBiZSBpbnZvbHZlZC4gVGhpcyBpcyBhIGNhc2Ugd2hlcmUgc3RhbmRhcmQgdGVzdGluZyBhbmQgS0FTQU4gc2hvdWxkIGJlIHN1ZmZpY2llbnQgZm9yIG1lbW9yeSBzYWZldHkuIEknbSBjb21mb3J0YWJsZSBzdGF0aW5nIHRoYXQgYE5lZWRzS01TQU5gIHNob3VsZCBiZSBmYWxzZS5cblxuXG4iLCJJbnB1dFRva2VucyI6Mzk0NCwiT3V0cHV0VG9rZW5zIjoxOTIsIk91dHB1dFRob3VnaHRzVG9rZW5zIjo0NzQsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDgtMTRUMDY6NDM6MzYuNjg2NzE2ODA4WiIsIlNlcSI6NDgsIk5lc3RpbmciOjMsIlR5cGUiOiJ0b29sIiwiTmFtZSI6InNldC1yZXN1bHRzIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MjM5MjAsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJLTVNBTlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBtb2RpZmllcyB0aGUgcXVldWUgc2VsZWN0aW9uIGxvZ2ljIGZvciB0cmFuc21pdHRlZCBwYWNrZXRzIGluIHRoZSBSZWFsdGVrIHJ0dzg4IFVTQiBkcml2ZXIuIEl0IGNoZWNrcyBhIGZsYWcgaW4gdGhlIGBpZWVlODAyMTFfdHhfaW5mb2Agc3RydWN0IChzdG9yZWQgaW4gYHNrYi1cXHUwMDNlY2JgKSB0byBkZXRlcm1pbmUgdGhlIGFwcHJvcHJpYXRlIHF1ZXVlIGZvciBicm9hZGNhc3QvbXVsdGljYXN0IHBhY2tldHMuIFRoZSBgc2tiLVxcdTAwM2VjYmAgZmllbGQgaXMgZnVsbHkgaW5pdGlhbGl6ZWQgYnkgdGhlIG1hYzgwMjExIHN1YnN5c3RlbSBiZWZvcmUgdGhlIHBhY2tldCBpcyBwYXNzZWQgdG8gdGhlIGRyaXZlciBmb3IgdHJhbnNtaXNzaW9uLiBUaGVyZSBpcyBubyByaXNrIG9mIHJlYWRpbmcgdW5pbml0aWFsaXplZCBtZW1vcnksIG5vciBkb2VzIHRoaXMgcGF0Y2ggaW50cm9kdWNlIGFueSBuZXcgYWxsb2NhdGlvbnMgb3Igc3RydWN0dXJlcyB0aGF0IGNvdWxkIGxlYWsgdW5pbml0aWFsaXplZCBkYXRhIHRvIHVzZXIgc3BhY2Ugb3IgaGFyZHdhcmUuIFRoZSBpc3N1ZSBpcyBhIHB1cmVseSBsb2dpY2FsIGJ1ZyBpbiBxdWV1ZSBhc3NpZ25tZW50LCB3aGljaCBkb2VzIG5vdCByZXF1aXJlIEtNU0FOIHRvIGRldGVjdC4gU3RhbmRhcmQgdGVzdGluZyBvciBLQVNBTiBpcyBzdWZmaWNpZW50IGZvciBnZW5lcmFsIG1lbW9yeSBzYWZldHksIGFuZCBLTVNBTiBpcyBub3QgYXBwbGljYWJsZSBoZXJlLlwiLFxuICBcIk5lZWRzS01TQU5cIjogZmFsc2Vcbn0iLCJSZXN1bHRzIjoie1xuICBcIktNU0FOUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBxdWV1ZSBzZWxlY3Rpb24gbG9naWMgZm9yIHRyYW5zbWl0dGVkIHBhY2tldHMgaW4gdGhlIFJlYWx0ZWsgcnR3ODggVVNCIGRyaXZlci4gSXQgY2hlY2tzIGEgZmxhZyBpbiB0aGUgYGllZWU4MDIxMV90eF9pbmZvYCBzdHJ1Y3QgKHN0b3JlZCBpbiBgc2tiLVxcdTAwM2VjYmApIHRvIGRldGVybWluZSB0aGUgYXBwcm9wcmlhdGUgcXVldWUgZm9yIGJyb2FkY2FzdC9tdWx0aWNhc3QgcGFja2V0cy4gVGhlIGBza2ItXFx1MDAzZWNiYCBmaWVsZCBpcyBmdWxseSBpbml0aWFsaXplZCBieSB0aGUgbWFjODAyMTEgc3Vic3lzdGVtIGJlZm9yZSB0aGUgcGFja2V0IGlzIHBhc3NlZCB0byB0aGUgZHJpdmVyIGZvciB0cmFuc21pc3Npb24uIFRoZXJlIGlzIG5vIHJpc2sgb2YgcmVhZGluZyB1bmluaXRpYWxpemVkIG1lbW9yeSwgbm9yIGRvZXMgdGhpcyBwYXRjaCBpbnRyb2R1Y2UgYW55IG5ldyBhbGxvY2F0aW9ucyBvciBzdHJ1Y3R1cmVzIHRoYXQgY291bGQgbGVhayB1bmluaXRpYWxpemVkIGRhdGEgdG8gdXNlciBzcGFjZSBvciBoYXJkd2FyZS4gVGhlIGlzc3VlIGlzIGEgcHVyZWx5IGxvZ2ljYWwgYnVnIGluIHF1ZXVlIGFzc2lnbm1lbnQsIHdoaWNoIGRvZXMgbm90IHJlcXVpcmUgS01TQU4gdG8gZGV0ZWN0LiBTdGFuZGFyZCB0ZXN0aW5nIG9yIEtBU0FOIGlzIHN1ZmZpY2llbnQgZm9yIGdlbmVyYWwgbWVtb3J5IHNhZmV0eSwgYW5kIEtNU0FOIGlzIG5vdCBhcHBsaWNhYmxlIGhlcmUuXCIsXG4gIFwiTmVlZHNLTVNBTlwiOiBmYWxzZVxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9XTsKCQkJaWYgKCFyYXdEYXRhIHx8IHJhd0RhdGEubGVuZ3RoID09PSAwKSByZXR1cm47CgoJCQlkcmF3U3VtbWFyeVRhYmxlcyhyYXdEYXRhKTsKCQkJZHJhd0R1cmF0aW9uQ2hhcnQocmF3RGF0YSk7CgkJCWRyYXdUb2tlbkNvbnN1bXB0aW9uQ2hhcnQocmF3RGF0YSk7CgkJfQoKCQlmdW5jdGlvbiBkcmF3U3VtbWFyeVRhYmxlcyhyYXdEYXRhKSB7CgkJCWNvbnN0IHN0YXRzID0gewoJCQkJbGxtOiB7IGNvdW50OiAwLCB0b2tlbnM6IDAsIGR1cmF0aW9uOiAwIH0sCgkJCQl0b29sOiB7IGNvdW50OiAwLCBkdXJhdGlvbjogMCB9CgkJCX07CgoJCQlyYXdEYXRhLmZvckVhY2gocyA9PiB7CgkJCQljb25zdCBkdXIgPSBzLkR1cmF0aW9uIC8gMTAwMDAwMDAwMDsgCgkJCQlpZiAocy5UeXBlID09PSAibGxtIikgewoJCQkJCXN0YXRzLmxsbS5jb3VudCsrOwoJCQkJCXN0YXRzLmxsbS50b2tlbnMgKz0gKHMuSW5wdXRUb2tlbnMgKyBzLk91dHB1dFRva2VucyArIHMuT3V0cHV0VGhvdWdodHNUb2tlbnMpOwoJCQkJCXN0YXRzLmxsbS5kdXJhdGlvbiArPSBkdXI7CgkJCQl9IGVsc2UgaWYgKHMuVHlwZSA9PT0gInRvb2wiKSB7CgkJCQkJc3RhdHMudG9vbC5jb3VudCsrOwoJCQkJCXN0YXRzLnRvb2wuZHVyYXRpb24gKz0gZHVyOwoJCQkJfQoJCQl9KTsKCgkJCWNvbnN0IGF2Z0xsbUR1ciA9IHN0YXRzLmxsbS5jb3VudCA+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-workflowg6rrp[1] Phase: Succeeded StartedAt: 2026-08-14 06:43:47 +0000 UTC FinishedAt: 2026-08-14 06:43:47 +0000 UTC Input: nil Output: nil --------- Name: series-workflowg6rrp[1].abort-on-skip-outcome Phase: Skipped StartedAt: 2026-08-14 06:43:47 +0000 UTC FinishedAt: 2026-08-14 06:43:47 +0000 UTC Input: nil Output: nil --------- Name: series-workflowg6rrp[2] Phase: Succeeded StartedAt: 2026-08-14 06:43:47 +0000 UTC FinishedAt: 2026-08-14 07:25:22 +0000 UTC Input: nil Output: nil --------- Name: series-workflowg6rrp[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"ca800a9302764c445de0da0e84d2252400a770ee","config_name":"upstream-apparmor-kasan.config","enable_configs":["RTW88","RTW88_8822BU"],"series_id":"","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["rtw_tx","rtw_tx_work"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"ca800a9302764c445de0da0e84d2252400a770ee","config_name":"upstream-apparmor-kasan.config","enable_configs":["RTW88","RTW88_8822BU"],"series_id":"2430228f-62d1-4681-87da-72a50f3fa7e1","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},retest:null,track:KASAN) Phase: Succeeded StartedAt: 2026-08-14 06:43:47 +0000 UTC FinishedAt: 2026-08-14 07:25:22 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:element,Default:nil,Value:*{"base":{"arch":"amd64","commit_hash":"ca800a9302764c445de0da0e84d2252400a770ee","config_name":"upstream-apparmor-kasan.config","enable_configs":["RTW88","RTW88_8822BU"],"series_id":"","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},"fuzz":{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["rtw_tx","rtw_tx_work"],"skip_cover_check":false},"patched":{"arch":"amd64","commit_hash":"ca800a9302764c445de0da0e84d2252400a770ee","config_name":"upstream-apparmor-kasan.config","enable_configs":["RTW88","RTW88_8822BU"],"series_id":"2430228f-62d1-4681-87da-72a50f3fa7e1","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},"retest":null,"track":"KASAN"},ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},} Output: nil --------- Name: series-workflowg6rrp[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"ca800a9302764c445de0da0e84d2252400a770ee","config_name":"upstream-apparmor-kasan.config","enable_configs":["RTW88","RTW88_8822BU"],"series_id":"","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["rtw_tx","rtw_tx_work"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"ca800a9302764c445de0da0e84d2252400a770ee","config_name":"upstream-apparmor-kasan.config","enable_configs":["RTW88","RTW88_8822BU"],"series_id":"2430228f-62d1-4681-87da-72a50f3fa7e1","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},retest:null,track:KASAN)[0] Phase: Succeeded StartedAt: 2026-08-14 06:43:47 +0000 UTC FinishedAt: 2026-08-14 06:43:58 +0000 UTC Input: nil Output: nil --------- Name: series-workflowg6rrp[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"ca800a9302764c445de0da0e84d2252400a770ee","config_name":"upstream-apparmor-kasan.config","enable_configs":["RTW88","RTW88_8822BU"],"series_id":"","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["rtw_tx","rtw_tx_work"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"ca800a9302764c445de0da0e84d2252400a770ee","config_name":"upstream-apparmor-kasan.config","enable_configs":["RTW88","RTW88_8822BU"],"series_id":"2430228f-62d1-4681-87da-72a50f3fa7e1","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},retest:null,track:KASAN)[0].save-base-req Phase: Succeeded StartedAt: 2026-08-14 06:43:47 +0000 UTC FinishedAt: 2026-08-14 06:43:52 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:data,Default:nil,Value:*{"arch":"amd64","commit_hash":"ca800a9302764c445de0da0e84d2252400a770ee","config_name":"upstream-apparmor-kasan.config","enable_configs":["RTW88","RTW88_8822BU"],"series_id":"","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},} Output: &Outputs{Parameters:[]Parameter{},Artifacts:[]Artifact{Artifact{Name:artifact,Path:/tmp/artifact,Mode:nil,From:,ArtifactLocation:ArtifactLocation{ArchiveLogs:nil,S3:nil,Git:nil,HTTP:nil,Artifactory:nil,HDFS:nil,Raw:nil,OSS:nil,GCS:&GCSArtifact{GCSBucket:GCSBucket{Bucket:,ServiceAccountKeySecret:nil,},Key:series-workflowg6rrp/series-workflowg6rrp-convert-artifact-2399742513/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowg6rrp[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"ca800a9302764c445de0da0e84d2252400a770ee","config_name":"upstream-apparmor-kasan.config","enable_configs":["RTW88","RTW88_8822BU"],"series_id":"","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["rtw_tx","rtw_tx_work"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"ca800a9302764c445de0da0e84d2252400a770ee","config_name":"upstream-apparmor-kasan.config","enable_configs":["RTW88","RTW88_8822BU"],"series_id":"2430228f-62d1-4681-87da-72a50f3fa7e1","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},retest:null,track:KASAN)[1] Phase: Succeeded StartedAt: 2026-08-14 06:43:58 +0000 UTC FinishedAt: 2026-08-14 07:01:40 +0000 UTC Input: nil Output: nil --------- Name: series-workflowg6rrp[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"ca800a9302764c445de0da0e84d2252400a770ee","config_name":"upstream-apparmor-kasan.config","enable_configs":["RTW88","RTW88_8822BU"],"series_id":"","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["rtw_tx","rtw_tx_work"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"ca800a9302764c445de0da0e84d2252400a770ee","config_name":"upstream-apparmor-kasan.config","enable_configs":["RTW88","RTW88_8822BU"],"series_id":"2430228f-62d1-4681-87da-72a50f3fa7e1","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},retest:null,track:KASAN)[1].base-build Phase: Succeeded StartedAt: 2026-08-14 06:43:58 +0000 UTC FinishedAt: 2026-08-14 07:01:40 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:findings,Default:nil,Value:*false,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:test-name,Default:nil,Value:*[KASAN] Build Base,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:smoke-build,Default:nil,Value:*false,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:session-id,Default:nil,Value:*92763884-cfba-4c6f-8cd3-b6d4588c070a,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{Artifact{Name:request,Path:/tmp/request.json,Mode:nil,From:,ArtifactLocation:ArtifactLocation{ArchiveLogs:nil,S3:nil,Git:nil,HTTP:nil,Artifactory:nil,HDFS:nil,Raw:nil,OSS:nil,GCS:&GCSArtifact{GCSBucket:GCSBucket{Bucket:,ServiceAccountKeySecret:nil,},Key:series-workflowg6rrp/series-workflowg6rrp-convert-artifact-2399742513/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},} Output: &Outputs{Parameters:[]Parameter{Parameter{Name:result,Default:nil,Value:*{ "build_id": "02b78906-4a95-4eac-b54f-33066f7654de", "success": true },ValueFrom:&ValueFrom{Path:/output/result.json,JSONPath:,JQFilter:,Parameter:,Default:*,Supplied:nil,Event:,Expression:,ConfigMapKeyRef:nil,},GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{Artifact{Name:kernel,Path:/output,Mode:nil,From:,ArtifactLocation:ArtifactLocation{ArchiveLogs:nil,S3:nil,Git:nil,HTTP:nil,Artifactory:nil,HDFS:nil,Raw:nil,OSS:nil,GCS:&GCSArtifact{GCSBucket:GCSBucket{Bucket:,ServiceAccountKeySecret:nil,},Key:series-workflowg6rrp/series-workflowg6rrp-build-action-2667432031/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowg6rrp[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"ca800a9302764c445de0da0e84d2252400a770ee","config_name":"upstream-apparmor-kasan.config","enable_configs":["RTW88","RTW88_8822BU"],"series_id":"","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["rtw_tx","rtw_tx_work"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"ca800a9302764c445de0da0e84d2252400a770ee","config_name":"upstream-apparmor-kasan.config","enable_configs":["RTW88","RTW88_8822BU"],"series_id":"2430228f-62d1-4681-87da-72a50f3fa7e1","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},retest:null,track:KASAN)[1].base-build(0) Phase: Succeeded StartedAt: 2026-08-14 06:43:58 +0000 UTC FinishedAt: 2026-08-14 07:01:30 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:findings,Default:nil,Value:*false,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:test-name,Default:nil,Value:*[KASAN] Build Base,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:smoke-build,Default:nil,Value:*false,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:session-id,Default:nil,Value:*92763884-cfba-4c6f-8cd3-b6d4588c070a,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{Artifact{Name:request,Path:/tmp/request.json,Mode:nil,From:,ArtifactLocation:ArtifactLocation{ArchiveLogs:nil,S3:nil,Git:nil,HTTP:nil,Artifactory:nil,HDFS:nil,Raw:nil,OSS:nil,GCS:&GCSArtifact{GCSBucket:GCSBucket{Bucket:,ServiceAccountKeySecret:nil,},Key:series-workflowg6rrp/series-workflowg6rrp-convert-artifact-2399742513/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},} Output: &Outputs{Parameters:[]Parameter{Parameter{Name:result,Default:nil,Value:*{ "build_id": "02b78906-4a95-4eac-b54f-33066f7654de", "success": true },ValueFrom:&ValueFrom{Path:/output/result.json,JSONPath:,JQFilter:,Parameter:,Default:*,Supplied:nil,Event:,Expression:,ConfigMapKeyRef:nil,},GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{Artifact{Name:kernel,Path:/output,Mode:nil,From:,ArtifactLocation:ArtifactLocation{ArchiveLogs:nil,S3:nil,Git:nil,HTTP:nil,Artifactory:nil,HDFS:nil,Raw:nil,OSS:nil,GCS:&GCSArtifact{GCSBucket:GCSBucket{Bucket:,ServiceAccountKeySecret:nil,},Key:series-workflowg6rrp/series-workflowg6rrp-build-action-2667432031/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowg6rrp[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"ca800a9302764c445de0da0e84d2252400a770ee","config_name":"upstream-apparmor-kasan.config","enable_configs":["RTW88","RTW88_8822BU"],"series_id":"","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["rtw_tx","rtw_tx_work"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"ca800a9302764c445de0da0e84d2252400a770ee","config_name":"upstream-apparmor-kasan.config","enable_configs":["RTW88","RTW88_8822BU"],"series_id":"2430228f-62d1-4681-87da-72a50f3fa7e1","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},retest:null,track:KASAN)[2] Phase: Succeeded StartedAt: 2026-08-14 07:01:40 +0000 UTC FinishedAt: 2026-08-14 07:01:40 +0000 UTC Input: nil Output: nil --------- Name: series-workflowg6rrp[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"ca800a9302764c445de0da0e84d2252400a770ee","config_name":"upstream-apparmor-kasan.config","enable_configs":["RTW88","RTW88_8822BU"],"series_id":"","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["rtw_tx","rtw_tx_work"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"ca800a9302764c445de0da0e84d2252400a770ee","config_name":"upstream-apparmor-kasan.config","enable_configs":["RTW88","RTW88_8822BU"],"series_id":"2430228f-62d1-4681-87da-72a50f3fa7e1","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},retest:null,track:KASAN)[2].abort-if-base-build-failed Phase: Skipped StartedAt: 2026-08-14 07:01:40 +0000 UTC FinishedAt: 2026-08-14 07:01:40 +0000 UTC Input: nil Output: nil --------- Name: series-workflowg6rrp[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"ca800a9302764c445de0da0e84d2252400a770ee","config_name":"upstream-apparmor-kasan.config","enable_configs":["RTW88","RTW88_8822BU"],"series_id":"","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["rtw_tx","rtw_tx_work"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"ca800a9302764c445de0da0e84d2252400a770ee","config_name":"upstream-apparmor-kasan.config","enable_configs":["RTW88","RTW88_8822BU"],"series_id":"2430228f-62d1-4681-87da-72a50f3fa7e1","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},retest:null,track:KASAN)[3] Phase: Succeeded StartedAt: 2026-08-14 07:01:40 +0000 UTC FinishedAt: 2026-08-14 07:01:50 +0000 UTC Input: nil Output: nil --------- Name: series-workflowg6rrp[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"ca800a9302764c445de0da0e84d2252400a770ee","config_name":"upstream-apparmor-kasan.config","enable_configs":["RTW88","RTW88_8822BU"],"series_id":"","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["rtw_tx","rtw_tx_work"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"ca800a9302764c445de0da0e84d2252400a770ee","config_name":"upstream-apparmor-kasan.config","enable_configs":["RTW88","RTW88_8822BU"],"series_id":"2430228f-62d1-4681-87da-72a50f3fa7e1","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},retest:null,track:KASAN)[3].save-patched-req Phase: Succeeded StartedAt: 2026-08-14 07:01:40 +0000 UTC FinishedAt: 2026-08-14 07:01:45 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:data,Default:nil,Value:*{"arch":"amd64","commit_hash":"ca800a9302764c445de0da0e84d2252400a770ee","config_name":"upstream-apparmor-kasan.config","enable_configs":["RTW88","RTW88_8822BU"],"series_id":"2430228f-62d1-4681-87da-72a50f3fa7e1","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},} Output: &Outputs{Parameters:[]Parameter{},Artifacts:[]Artifact{Artifact{Name:artifact,Path:/tmp/artifact,Mode:nil,From:,ArtifactLocation:ArtifactLocation{ArchiveLogs:nil,S3:nil,Git:nil,HTTP:nil,Artifactory:nil,HDFS:nil,Raw:nil,OSS:nil,GCS:&GCSArtifact{GCSBucket:GCSBucket{Bucket:,ServiceAccountKeySecret:nil,},Key:series-workflowg6rrp/series-workflowg6rrp-convert-artifact-3021519236/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowg6rrp[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"ca800a9302764c445de0da0e84d2252400a770ee","config_name":"upstream-apparmor-kasan.config","enable_configs":["RTW88","RTW88_8822BU"],"series_id":"","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["rtw_tx","rtw_tx_work"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"ca800a9302764c445de0da0e84d2252400a770ee","config_name":"upstream-apparmor-kasan.config","enable_configs":["RTW88","RTW88_8822BU"],"series_id":"2430228f-62d1-4681-87da-72a50f3fa7e1","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},retest:null,track:KASAN)[4] Phase: Succeeded StartedAt: 2026-08-14 07:01:50 +0000 UTC FinishedAt: 2026-08-14 07:03:56 +0000 UTC Input: nil Output: nil --------- Name: series-workflowg6rrp[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"ca800a9302764c445de0da0e84d2252400a770ee","config_name":"upstream-apparmor-kasan.config","enable_configs":["RTW88","RTW88_8822BU"],"series_id":"","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["rtw_tx","rtw_tx_work"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"ca800a9302764c445de0da0e84d2252400a770ee","config_name":"upstream-apparmor-kasan.config","enable_configs":["RTW88","RTW88_8822BU"],"series_id":"2430228f-62d1-4681-87da-72a50f3fa7e1","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},retest:null,track:KASAN)[4].boot-test-base Phase: Succeeded StartedAt: 2026-08-14 07:01:50 +0000 UTC FinishedAt: 2026-08-14 07:03:46 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:base-build-id,Default:nil,Value:*02b78906-4a95-4eac-b54f-33066f7654de,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:patched-build-id,Default:nil,Value:*,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:test-name,Default:nil,Value:*[KASAN] Boot test: Base,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:report-findings,Default:nil,Value:*false,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{Artifact{Name:kernel,Path:/base,Mode:nil,From:,ArtifactLocation:ArtifactLocation{ArchiveLogs:nil,S3:nil,Git:nil,HTTP:nil,Artifactory:nil,HDFS:nil,Raw:nil,OSS:nil,GCS:&GCSArtifact{GCSBucket:GCSBucket{Bucket:,ServiceAccountKeySecret:nil,},Key:series-workflowg6rrp/series-workflowg6rrp-build-action-2667432031/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},} Output: &Outputs{Parameters:[]Parameter{Parameter{Name:result,Default:nil,Value:*{ "success": true },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-workflowg6rrp[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"ca800a9302764c445de0da0e84d2252400a770ee","config_name":"upstream-apparmor-kasan.config","enable_configs":["RTW88","RTW88_8822BU"],"series_id":"","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["rtw_tx","rtw_tx_work"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"ca800a9302764c445de0da0e84d2252400a770ee","config_name":"upstream-apparmor-kasan.config","enable_configs":["RTW88","RTW88_8822BU"],"series_id":"2430228f-62d1-4681-87da-72a50f3fa7e1","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},retest:null,track:KASAN)[5] Phase: Succeeded StartedAt: 2026-08-14 07:03:56 +0000 UTC FinishedAt: 2026-08-14 07:03:56 +0000 UTC Input: nil Output: nil --------- Name: series-workflowg6rrp[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"ca800a9302764c445de0da0e84d2252400a770ee","config_name":"upstream-apparmor-kasan.config","enable_configs":["RTW88","RTW88_8822BU"],"series_id":"","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["rtw_tx","rtw_tx_work"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"ca800a9302764c445de0da0e84d2252400a770ee","config_name":"upstream-apparmor-kasan.config","enable_configs":["RTW88","RTW88_8822BU"],"series_id":"2430228f-62d1-4681-87da-72a50f3fa7e1","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},retest:null,track:KASAN)[5].abort-if-base-boot-failed Phase: Skipped StartedAt: 2026-08-14 07:03:56 +0000 UTC FinishedAt: 2026-08-14 07:03:56 +0000 UTC Input: nil Output: nil --------- Name: series-workflowg6rrp[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"ca800a9302764c445de0da0e84d2252400a770ee","config_name":"upstream-apparmor-kasan.config","enable_configs":["RTW88","RTW88_8822BU"],"series_id":"","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["rtw_tx","rtw_tx_work"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"ca800a9302764c445de0da0e84d2252400a770ee","config_name":"upstream-apparmor-kasan.config","enable_configs":["RTW88","RTW88_8822BU"],"series_id":"2430228f-62d1-4681-87da-72a50f3fa7e1","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},retest:null,track:KASAN)[6] Phase: Succeeded StartedAt: 2026-08-14 07:03:56 +0000 UTC FinishedAt: 2026-08-14 07:21:51 +0000 UTC Input: nil Output: nil --------- Name: series-workflowg6rrp[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"ca800a9302764c445de0da0e84d2252400a770ee","config_name":"upstream-apparmor-kasan.config","enable_configs":["RTW88","RTW88_8822BU"],"series_id":"","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["rtw_tx","rtw_tx_work"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"ca800a9302764c445de0da0e84d2252400a770ee","config_name":"upstream-apparmor-kasan.config","enable_configs":["RTW88","RTW88_8822BU"],"series_id":"2430228f-62d1-4681-87da-72a50f3fa7e1","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},retest:null,track:KASAN)[6].patched-build Phase: Succeeded StartedAt: 2026-08-14 07:03:56 +0000 UTC FinishedAt: 2026-08-14 07:21:51 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:findings,Default:nil,Value:*true,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:test-name,Default:nil,Value:*[KASAN] Build Patched,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:smoke-build,Default:nil,Value:*false,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:session-id,Default:nil,Value:*92763884-cfba-4c6f-8cd3-b6d4588c070a,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{Artifact{Name:request,Path:/tmp/request.json,Mode:nil,From:,ArtifactLocation:ArtifactLocation{ArchiveLogs:nil,S3:nil,Git:nil,HTTP:nil,Artifactory:nil,HDFS:nil,Raw:nil,OSS:nil,GCS:&GCSArtifact{GCSBucket:GCSBucket{Bucket:,ServiceAccountKeySecret:nil,},Key:series-workflowg6rrp/series-workflowg6rrp-convert-artifact-3021519236/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},} Output: &Outputs{Parameters:[]Parameter{Parameter{Name:result,Default:nil,Value:*{ "build_id": "7f60f832-f215-4174-945b-c04f61ac7c14", "success": true },ValueFrom:&ValueFrom{Path:/output/result.json,JSONPath:,JQFilter:,Parameter:,Default:*,Supplied:nil,Event:,Expression:,ConfigMapKeyRef:nil,},GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{Artifact{Name:kernel,Path:/output,Mode:nil,From:,ArtifactLocation:ArtifactLocation{ArchiveLogs:nil,S3:nil,Git:nil,HTTP:nil,Artifactory:nil,HDFS:nil,Raw:nil,OSS:nil,GCS:&GCSArtifact{GCSBucket:GCSBucket{Bucket:,ServiceAccountKeySecret:nil,},Key:series-workflowg6rrp/series-workflowg6rrp-build-action-2507060112/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowg6rrp[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"ca800a9302764c445de0da0e84d2252400a770ee","config_name":"upstream-apparmor-kasan.config","enable_configs":["RTW88","RTW88_8822BU"],"series_id":"","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["rtw_tx","rtw_tx_work"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"ca800a9302764c445de0da0e84d2252400a770ee","config_name":"upstream-apparmor-kasan.config","enable_configs":["RTW88","RTW88_8822BU"],"series_id":"2430228f-62d1-4681-87da-72a50f3fa7e1","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},retest:null,track:KASAN)[6].patched-build(0) Phase: Succeeded StartedAt: 2026-08-14 07:03:56 +0000 UTC FinishedAt: 2026-08-14 07:21:41 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:findings,Default:nil,Value:*true,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:test-name,Default:nil,Value:*[KASAN] Build Patched,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:smoke-build,Default:nil,Value:*false,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:session-id,Default:nil,Value:*92763884-cfba-4c6f-8cd3-b6d4588c070a,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{Artifact{Name:request,Path:/tmp/request.json,Mode:nil,From:,ArtifactLocation:ArtifactLocation{ArchiveLogs:nil,S3:nil,Git:nil,HTTP:nil,Artifactory:nil,HDFS:nil,Raw:nil,OSS:nil,GCS:&GCSArtifact{GCSBucket:GCSBucket{Bucket:,ServiceAccountKeySecret:nil,},Key:series-workflowg6rrp/series-workflowg6rrp-convert-artifact-3021519236/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},} Output: &Outputs{Parameters:[]Parameter{Parameter{Name:result,Default:nil,Value:*{ "build_id": "7f60f832-f215-4174-945b-c04f61ac7c14", "success": true },ValueFrom:&ValueFrom{Path:/output/result.json,JSONPath:,JQFilter:,Parameter:,Default:*,Supplied:nil,Event:,Expression:,ConfigMapKeyRef:nil,},GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{Artifact{Name:kernel,Path:/output,Mode:nil,From:,ArtifactLocation:ArtifactLocation{ArchiveLogs:nil,S3:nil,Git:nil,HTTP:nil,Artifactory:nil,HDFS:nil,Raw:nil,OSS:nil,GCS:&GCSArtifact{GCSBucket:GCSBucket{Bucket:,ServiceAccountKeySecret:nil,},Key:series-workflowg6rrp/series-workflowg6rrp-build-action-2507060112/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowg6rrp[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"ca800a9302764c445de0da0e84d2252400a770ee","config_name":"upstream-apparmor-kasan.config","enable_configs":["RTW88","RTW88_8822BU"],"series_id":"","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["rtw_tx","rtw_tx_work"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"ca800a9302764c445de0da0e84d2252400a770ee","config_name":"upstream-apparmor-kasan.config","enable_configs":["RTW88","RTW88_8822BU"],"series_id":"2430228f-62d1-4681-87da-72a50f3fa7e1","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},retest:null,track:KASAN)[7] Phase: Succeeded StartedAt: 2026-08-14 07:21:51 +0000 UTC FinishedAt: 2026-08-14 07:21:51 +0000 UTC Input: nil Output: nil --------- Name: series-workflowg6rrp[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"ca800a9302764c445de0da0e84d2252400a770ee","config_name":"upstream-apparmor-kasan.config","enable_configs":["RTW88","RTW88_8822BU"],"series_id":"","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["rtw_tx","rtw_tx_work"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"ca800a9302764c445de0da0e84d2252400a770ee","config_name":"upstream-apparmor-kasan.config","enable_configs":["RTW88","RTW88_8822BU"],"series_id":"2430228f-62d1-4681-87da-72a50f3fa7e1","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},retest:null,track:KASAN)[7].abort-if-patched-build-failed Phase: Skipped StartedAt: 2026-08-14 07:21:51 +0000 UTC FinishedAt: 2026-08-14 07:21:51 +0000 UTC Input: nil Output: nil --------- Name: series-workflowg6rrp[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"ca800a9302764c445de0da0e84d2252400a770ee","config_name":"upstream-apparmor-kasan.config","enable_configs":["RTW88","RTW88_8822BU"],"series_id":"","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["rtw_tx","rtw_tx_work"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"ca800a9302764c445de0da0e84d2252400a770ee","config_name":"upstream-apparmor-kasan.config","enable_configs":["RTW88","RTW88_8822BU"],"series_id":"2430228f-62d1-4681-87da-72a50f3fa7e1","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},retest:null,track:KASAN)[8] Phase: Succeeded StartedAt: 2026-08-14 07:21:51 +0000 UTC FinishedAt: 2026-08-14 07:23:51 +0000 UTC Input: nil Output: nil --------- Name: series-workflowg6rrp[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"ca800a9302764c445de0da0e84d2252400a770ee","config_name":"upstream-apparmor-kasan.config","enable_configs":["RTW88","RTW88_8822BU"],"series_id":"","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["rtw_tx","rtw_tx_work"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"ca800a9302764c445de0da0e84d2252400a770ee","config_name":"upstream-apparmor-kasan.config","enable_configs":["RTW88","RTW88_8822BU"],"series_id":"2430228f-62d1-4681-87da-72a50f3fa7e1","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},retest:null,track:KASAN)[8].boot-test-patched Phase: Succeeded StartedAt: 2026-08-14 07:21:51 +0000 UTC FinishedAt: 2026-08-14 07:23:41 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:base-build-id,Default:nil,Value:*,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:patched-build-id,Default:nil,Value:*7f60f832-f215-4174-945b-c04f61ac7c14,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:test-name,Default:nil,Value:*[KASAN] Boot test: Patched,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:report-findings,Default:nil,Value:*true,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{Artifact{Name:kernel,Path:/base,Mode:nil,From:,ArtifactLocation:ArtifactLocation{ArchiveLogs:nil,S3:nil,Git:nil,HTTP:nil,Artifactory:nil,HDFS:nil,Raw:nil,OSS:nil,GCS:&GCSArtifact{GCSBucket:GCSBucket{Bucket:,ServiceAccountKeySecret:nil,},Key:series-workflowg6rrp/series-workflowg6rrp-build-action-2507060112/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},} Output: &Outputs{Parameters:[]Parameter{Parameter{Name:result,Default:nil,Value:*{ "success": true },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-workflowg6rrp[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"ca800a9302764c445de0da0e84d2252400a770ee","config_name":"upstream-apparmor-kasan.config","enable_configs":["RTW88","RTW88_8822BU"],"series_id":"","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["rtw_tx","rtw_tx_work"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"ca800a9302764c445de0da0e84d2252400a770ee","config_name":"upstream-apparmor-kasan.config","enable_configs":["RTW88","RTW88_8822BU"],"series_id":"2430228f-62d1-4681-87da-72a50f3fa7e1","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},retest:null,track:KASAN)[10] Phase: Succeeded StartedAt: 2026-08-14 07:23:51 +0000 UTC FinishedAt: 2026-08-14 07:25:22 +0000 UTC Input: nil Output: nil --------- Name: series-workflowg6rrp[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"ca800a9302764c445de0da0e84d2252400a770ee","config_name":"upstream-apparmor-kasan.config","enable_configs":["RTW88","RTW88_8822BU"],"series_id":"","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["rtw_tx","rtw_tx_work"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"ca800a9302764c445de0da0e84d2252400a770ee","config_name":"upstream-apparmor-kasan.config","enable_configs":["RTW88","RTW88_8822BU"],"series_id":"2430228f-62d1-4681-87da-72a50f3fa7e1","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},retest:null,track:KASAN)[10].run-fuzz Phase: Succeeded StartedAt: 2026-08-14 07:23:51 +0000 UTC FinishedAt: 2026-08-14 07:25:22 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:config,Default:nil,Value:*{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["rtw_tx","rtw_tx_work"],"skip_cover_check":false},ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:track,Default:nil,Value:*KASAN,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:base-build-id,Default:nil,Value:*02b78906-4a95-4eac-b54f-33066f7654de,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:patched-build-id,Default:nil,Value:*7f60f832-f215-4174-945b-c04f61ac7c14,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{Artifact{Name:base-kernel,Path:,Mode:nil,From:,ArtifactLocation:ArtifactLocation{ArchiveLogs:nil,S3:nil,Git:nil,HTTP:nil,Artifactory:nil,HDFS:nil,Raw:nil,OSS:nil,GCS:&GCSArtifact{GCSBucket:GCSBucket{Bucket:,ServiceAccountKeySecret:nil,},Key:series-workflowg6rrp/series-workflowg6rrp-build-action-2667432031/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},Artifact{Name:patched-kernel,Path:,Mode:nil,From:,ArtifactLocation:ArtifactLocation{ArchiveLogs:nil,S3:nil,Git:nil,HTTP:nil,Artifactory:nil,HDFS:nil,Raw:nil,OSS:nil,GCS:&GCSArtifact{GCSBucket:GCSBucket{Bucket:,ServiceAccountKeySecret:nil,},Key:series-workflowg6rrp/series-workflowg6rrp-build-action-2507060112/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},} Output: nil --------- Name: series-workflowg6rrp[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"ca800a9302764c445de0da0e84d2252400a770ee","config_name":"upstream-apparmor-kasan.config","enable_configs":["RTW88","RTW88_8822BU"],"series_id":"","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["rtw_tx","rtw_tx_work"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"ca800a9302764c445de0da0e84d2252400a770ee","config_name":"upstream-apparmor-kasan.config","enable_configs":["RTW88","RTW88_8822BU"],"series_id":"2430228f-62d1-4681-87da-72a50f3fa7e1","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},retest:null,track:KASAN)[10].run-fuzz[0] Phase: Succeeded StartedAt: 2026-08-14 07:23:51 +0000 UTC FinishedAt: 2026-08-14 07:24:12 +0000 UTC Input: nil Output: nil --------- Name: series-workflowg6rrp[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"ca800a9302764c445de0da0e84d2252400a770ee","config_name":"upstream-apparmor-kasan.config","enable_configs":["RTW88","RTW88_8822BU"],"series_id":"","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["rtw_tx","rtw_tx_work"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"ca800a9302764c445de0da0e84d2252400a770ee","config_name":"upstream-apparmor-kasan.config","enable_configs":["RTW88","RTW88_8822BU"],"series_id":"2430228f-62d1-4681-87da-72a50f3fa7e1","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},retest:null,track:KASAN)[10].run-fuzz[0].save-fuzz-config Phase: Succeeded StartedAt: 2026-08-14 07:23:51 +0000 UTC FinishedAt: 2026-08-14 07:24:00 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:data,Default:nil,Value:*{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["rtw_tx","rtw_tx_work"],"skip_cover_check":false},ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},} Output: &Outputs{Parameters:[]Parameter{},Artifacts:[]Artifact{Artifact{Name:artifact,Path:/tmp/artifact,Mode:nil,From:,ArtifactLocation:ArtifactLocation{ArchiveLogs:nil,S3:nil,Git:nil,HTTP:nil,Artifactory:nil,HDFS:nil,Raw:nil,OSS:nil,GCS:&GCSArtifact{GCSBucket:GCSBucket{Bucket:,ServiceAccountKeySecret:nil,},Key:series-workflowg6rrp/series-workflowg6rrp-convert-artifact-1414797/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowg6rrp[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"ca800a9302764c445de0da0e84d2252400a770ee","config_name":"upstream-apparmor-kasan.config","enable_configs":["RTW88","RTW88_8822BU"],"series_id":"","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["rtw_tx","rtw_tx_work"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"ca800a9302764c445de0da0e84d2252400a770ee","config_name":"upstream-apparmor-kasan.config","enable_configs":["RTW88","RTW88_8822BU"],"series_id":"2430228f-62d1-4681-87da-72a50f3fa7e1","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},retest:null,track:KASAN)[10].run-retest Phase: Skipped StartedAt: 2026-08-14 07:23:51 +0000 UTC FinishedAt: 2026-08-14 07:23:51 +0000 UTC Input: nil Output: nil --------- Name: series-workflowg6rrp[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"ca800a9302764c445de0da0e84d2252400a770ee","config_name":"upstream-apparmor-kasan.config","enable_configs":["RTW88","RTW88_8822BU"],"series_id":"","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["rtw_tx","rtw_tx_work"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"ca800a9302764c445de0da0e84d2252400a770ee","config_name":"upstream-apparmor-kasan.config","enable_configs":["RTW88","RTW88_8822BU"],"series_id":"2430228f-62d1-4681-87da-72a50f3fa7e1","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},retest:null,track:KASAN)[9] Phase: Succeeded StartedAt: 2026-08-14 07:23:51 +0000 UTC FinishedAt: 2026-08-14 07:23:51 +0000 UTC Input: nil Output: nil --------- Name: series-workflowg6rrp[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"ca800a9302764c445de0da0e84d2252400a770ee","config_name":"upstream-apparmor-kasan.config","enable_configs":["RTW88","RTW88_8822BU"],"series_id":"","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["rtw_tx","rtw_tx_work"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"ca800a9302764c445de0da0e84d2252400a770ee","config_name":"upstream-apparmor-kasan.config","enable_configs":["RTW88","RTW88_8822BU"],"series_id":"2430228f-62d1-4681-87da-72a50f3fa7e1","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},retest:null,track:KASAN)[9].abort-if-patched-boot-failed Phase: Skipped StartedAt: 2026-08-14 07:23:51 +0000 UTC FinishedAt: 2026-08-14 07:23:51 +0000 UTC Input: nil Output: nil --------- Name: series-workflowg6rrp[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"ca800a9302764c445de0da0e84d2252400a770ee","config_name":"upstream-apparmor-kasan.config","enable_configs":["RTW88","RTW88_8822BU"],"series_id":"","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["rtw_tx","rtw_tx_work"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"ca800a9302764c445de0da0e84d2252400a770ee","config_name":"upstream-apparmor-kasan.config","enable_configs":["RTW88","RTW88_8822BU"],"series_id":"2430228f-62d1-4681-87da-72a50f3fa7e1","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},retest:null,track:KASAN)[10].run-fuzz[1] Phase: Succeeded StartedAt: 2026-08-14 07:24:12 +0000 UTC FinishedAt: 2026-08-14 07:25:22 +0000 UTC Input: nil Output: nil --------- Name: series-workflowg6rrp[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"ca800a9302764c445de0da0e84d2252400a770ee","config_name":"upstream-apparmor-kasan.config","enable_configs":["RTW88","RTW88_8822BU"],"series_id":"","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["rtw_tx","rtw_tx_work"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"ca800a9302764c445de0da0e84d2252400a770ee","config_name":"upstream-apparmor-kasan.config","enable_configs":["RTW88","RTW88_8822BU"],"series_id":"2430228f-62d1-4681-87da-72a50f3fa7e1","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},retest:null,track:KASAN)[10].run-fuzz[1].fuzz Phase: Succeeded StartedAt: 2026-08-14 07:24:12 +0000 UTC FinishedAt: 2026-08-14 07:25:15 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:base-build-id,Default:nil,Value:*02b78906-4a95-4eac-b54f-33066f7654de,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:patched-build-id,Default:nil,Value:*7f60f832-f215-4174-945b-c04f61ac7c14,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:test-name,Default:nil,Value:*[KASAN] Fuzz,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{Artifact{Name:base-kernel,Path:/base,Mode:nil,From:,ArtifactLocation:ArtifactLocation{ArchiveLogs:nil,S3:nil,Git:nil,HTTP:nil,Artifactory:nil,HDFS:nil,Raw:nil,OSS:nil,GCS:&GCSArtifact{GCSBucket:GCSBucket{Bucket:,ServiceAccountKeySecret:nil,},Key:series-workflowg6rrp/series-workflowg6rrp-build-action-2667432031/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},Artifact{Name:patched-kernel,Path:/patched,Mode:nil,From:,ArtifactLocation:ArtifactLocation{ArchiveLogs:nil,S3:nil,Git:nil,HTTP:nil,Artifactory:nil,HDFS:nil,Raw:nil,OSS:nil,GCS:&GCSArtifact{GCSBucket:GCSBucket{Bucket:,ServiceAccountKeySecret:nil,},Key:series-workflowg6rrp/series-workflowg6rrp-build-action-2507060112/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},Artifact{Name:config,Path:/tmp/config.json,Mode:nil,From:,ArtifactLocation:ArtifactLocation{ArchiveLogs:nil,S3:nil,Git:nil,HTTP:nil,Artifactory:nil,HDFS:nil,Raw:nil,OSS:nil,GCS:&GCSArtifact{GCSBucket:GCSBucket{Bucket:,ServiceAccountKeySecret:nil,},Key:series-workflowg6rrp/series-workflowg6rrp-convert-artifact-1414797/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},} Output: &Outputs{Parameters:[]Parameter{},Artifacts:[]Artifact{},Result:nil,ExitCode:*0,}