Name: series-workflow6t87h Phase: Succeeded StartedAt: 2026-06-30 04:09:42 +0000 UTC FinishedAt: 2026-06-30 05:49:25 +0000 UTC Input: nil Output: nil --------- Name: series-workflow6t87h[0] Phase: Succeeded StartedAt: 2026-06-30 04:09:42 +0000 UTC FinishedAt: 2026-06-30 04:35:25 +0000 UTC Input: nil Output: nil --------- Name: series-workflow6t87h[0].run-triage Phase: Succeeded StartedAt: 2026-06-30 04:09:42 +0000 UTC FinishedAt: 2026-06-30 04:35:25 +0000 UTC Input: nil Output: &Outputs{Parameters:[]Parameter{Parameter{Name:result,Default:nil,Value:*{ "skip_reason": "", "targets": [ { "base": { "arch": "amd64", "tree_name": "torvalds", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux", "commit_hash": "86f436567f2516a0083b210bedc933544826a2c3", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "RTL8XXXU", "RTL8XXXU_UNTESTED" ], "series_id": "" }, "patched": { "arch": "amd64", "tree_name": "torvalds", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux", "commit_hash": "86f436567f2516a0083b210bedc933544826a2c3", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "RTL8XXXU", "RTL8XXXU_UNTESTED" ], "series_id": "f08bd41f-a392-4815-92a5-c4a5af1a5eef" }, "track": "KASAN", "fuzz": { "focus": [ "net" ], "focus_symbols": [ "rtl8xxxu_stop", "rtl8xxxu_rx_urb_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+CgkJCTx0ZD4yMDI2LzA2LzMwIDA0OjM0PC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O1JUTDhYWFhVJiMzNDssCiAgICAmIzM0O1JUTDhYWFhVX1VOVEVTVEVEJiMzNDsKICBdLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFsKICAgICYjMzQ7cnRsOHh4eHVfc3RvcCYjMzQ7LAogICAgJiMzNDtydGw4eHh4dV9yeF91cmJfd29yayYjMzQ7CiAgXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBmaXhlcyBhIHJhY2UgY29uZGl0aW9uIGJldHdlZW4gdGhlIFJYIFVSQiBjb21wbGV0aW9uIGhhbmRsZXIgYW5kIHRoZSBkcml2ZXIgc3RvcCByb3V0aW5lIGluIHRoZSBydGw4eHh4dSB3aXJlbGVzcyBkcml2ZXIuIEl0IG1vdmVzIHRoZSB3b3JrcXVldWUgc2NoZWR1bGluZyBpbnNpZGUgYSBzcGlubG9jayBhbmQgYWRkcyBhIGNhbmNlbF93b3JrX3N5bmMgY2FsbCB0byBlbnN1cmUgdGhlIHdvcmtxdWV1ZSBpcyBwcm9wZXJseSBjYW5jZWxsZWQgZHVyaW5nIHNodXRkb3duLiBGdXp6aW5nIHRoZSBkcml2ZXIgaW5pdGlhbGl6YXRpb24gYW5kIHRlYXJkb3duIHBhdGhzICh2aWEgZHVtbXlfaGNkIG9yIG1hYzgwMjExX2h3c2ltKSBjYW4gaGVscCB2ZXJpZnkgdGhpcyBmaXggYW5kIHVuY292ZXIgc2ltaWxhciByYWNlIGNvbmRpdGlvbnMuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogdHJ1ZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MS8xPC90ZD4KCQkJPHRkPjIwMjYvMDYvMzAgMDQ6MzQ8L3RkPgoJCQk8dGQ+YWN0aW9uPC90ZD4KCQkJPHRkPnJlYWQtcGF0Y2gtZGlmZjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O1BhdGNoRGlmZiYjMzQ7OiAmIzM0O2NvbW1pdCA1Y2QzOTQwYzRmZmNlOGI2OWZmZDVhYjc2N2IyYWRkODA0NDJlZTMyXG5BdXRob3I6IHN5ei1jbHVzdGVyIFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXHUwMDNlXG5EYXRlOiAgIFR1ZSBKdW4gMzAgMDQ6MzQ6MDIgMjAyNiAmIzQzOzAwMDBcblxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xuXG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS9jb3JlLmMgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1L2NvcmUuY1xuaW5kZXggYzA2YWQwNjRmMzdjNjUuLmI0NDdjZTc4ZmYwNThmIDEwMDY0NFxuLS0tIGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS9jb3JlLmNcbiYjNDM7JiM0MzsmIzQzOyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvY29yZS5jXG5AQCAtNTc5MiwxNCAmIzQzOzU3OTIsMTkgQEAgc3RhdGljIHZvaWQgcnRsOHh4eHVfcXVldWVfcnhfdXJiKHN0cnVjdCBydGw4eHh4dV9wcml2ICpwcml2LFxuIHtcbiBcdHN0cnVjdCBza19idWZmICpza2I7XG4gXHR1bnNpZ25lZCBsb25nIGZsYWdzO1xuLVx0aW50IHBlbmRpbmcgPSAwO1xuIFxuIFx0c3Bpbl9sb2NrX2lycXNhdmUoXHUwMDI2cHJpdi1cdTAwM2VyeF91cmJfbG9jaywgZmxhZ3MpO1xuIFxuIFx0aWYgKCFwcml2LVx1MDAzZXNodXRkb3duKSB7XG4gXHRcdGxpc3RfYWRkX3RhaWwoXHUwMDI2cnhfdXJiLVx1MDAzZWxpc3QsIFx1MDAyNnByaXYtXHUwMDNlcnhfdXJiX3BlbmRpbmdfbGlzdCk7XG4gXHRcdHByaXYtXHUwMDNlcnhfdXJiX3BlbmRpbmdfY291bnQmIzQzOyYjNDM7O1xuLVx0XHRwZW5kaW5nID0gcHJpdi1cdTAwM2VyeF91cmJfcGVuZGluZ19jb3VudDtcbiYjNDM7XHRcdC8qXG4mIzQzO1x0XHQgKiBBcm0gdGhlIHdvcmtlciB1bmRlciByeF91cmJfbG9jayBzbyB0aGlzIGlzIGF0b21pYyB3aXRoIHRoZVxuJiM0MztcdFx0ICogc2h1dGRvd24gY2hlY2s6IG1vdmluZyBpdCBvdXQgb2YgdGhlIGxvY2sgd291bGQgbGV0IGFcbiYjNDM7XHRcdCAqIGNvbXBsZXRpb24gYXJtIHRoZSB3b3JrIGFmdGVyIHJ0bDh4eHh1X3N0b3AoKSBjYW5jZWxlZCBpdC5cbiYjNDM7XHRcdCAqL1xuJiM0MztcdFx0aWYgKHByaXYtXHUwMDNlcnhfdXJiX3BlbmRpbmdfY291bnQgXHUwMDNlIFJUTDhYWFhVX1JYX1VSQl9QRU5ESU5HX1dBVEVSKVxuJiM0MztcdFx0XHRzY2hlZHVsZV93b3JrKFx1MDAyNnByaXYtXHUwMDNlcnhfdXJiX3dxKTtcbiBcdH0gZWxzZSB7XG4gXHRcdHNrYiA9IChzdHJ1Y3Qgc2tfYnVmZiAqKXJ4X3VyYi1cdTAwM2V1cmIuY29udGV4dDtcbiBcdFx0ZGV2X2tmcmVlX3NrYl9pcnEoc2tiKTtcbkBAIC01ODA3LDkgJiM0Mzs1ODEyLDYgQEAgc3RhdGljIHZvaWQgcnRsOHh4eHVfcXVldWVfcnhfdXJiKHN0cnVjdCBydGw4eHh4dV9wcml2ICpwcml2LFxuIFx0fVxuIFxuIFx0c3Bpbl91bmxvY2tfaXJxcmVzdG9yZShcdTAwMjZwcml2LVx1MDAzZXJ4X3VyYl9sb2NrLCBmbGFncyk7XG4tXG4tXHRpZiAocGVuZGluZyBcdTAwM2UgUlRMOFhYWFVfUlhfVVJCX1BFTkRJTkdfV0FURVIpXG4tXHRcdHNjaGVkdWxlX3dvcmsoXHUwMDI2cHJpdi1cdTAwM2VyeF91cmJfd3EpO1xuIH1cbiBcbiBzdGF0aWMgdm9pZCBydGw4eHh4dV9yeF91cmJfd29yayhzdHJ1Y3Qgd29ya19zdHJ1Y3QgKndvcmspXG5AQCAtNzQ2MSw2ICYjNDM7NzQ2MywxMyBAQCBzdGF0aWMgdm9pZCBydGw4eHh4dV9zdG9wKHN0cnVjdCBpZWVlODAyMTFfaHcgKmh3LCBib29sIHN1c3BlbmQpXG4gXHRwcml2LVx1MDAzZXNodXRkb3duID0gdHJ1ZTtcbiBcdHNwaW5fdW5sb2NrX2lycXJlc3RvcmUoXHUwMDI2cHJpdi1cdTAwM2VyeF91cmJfbG9jaywgZmxhZ3MpO1xuIFxuJiM0MztcdC8qXG4mIzQzO1x0ICogQ2FuY2VsIGJlZm9yZSBraWxsaW5nIHJ4X2FuY2hvcjogdGhlIHdvcmtlciByZS1hbmNob3JzIGV2ZXJ5IFVSQlxuJiM0MztcdCAqIGl0IGRyYWluZWQgdmlhIHJ0bDh4eHh1X3N1Ym1pdF9yeF91cmIoKSwgc28gYSB3b3JrZXIgc3RpbGwgcnVubmluZ1xuJiM0MztcdCAqIGFmdGVyIHRoZSBraWxsIGNvdWxkIHN1Ym1pdCBhIFVSQiB0aGF0IGVzY2FwZXMgaXQuXG4mIzQzO1x0ICovXG4mIzQzO1x0Y2FuY2VsX3dvcmtfc3luYyhcdTAwMjZwcml2LVx1MDAzZXJ4X3VyYl93cSk7XG4mIzQzO1xuIFx0dXNiX2tpbGxfYW5jaG9yZWRfdXJicyhcdTAwMjZwcml2LVx1MDAzZXJ4X2FuY2hvcik7XG4gXHR1c2Jfa2lsbF9hbmNob3JlZF91cmJzKFx1MDAyNnByaXYtXHUwMDNldHhfYW5jaG9yKTtcbiBcdGlmIChwcml2LVx1MDAzZXVzYl9pbnRlcnJ1cHRzKVxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjIvMTwvdGQ+CgkJCTx0ZD4yMDI2LzA2LzMwIDA0OjM0PC90ZD4KCQkJPHRkPmFnZW50PC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O1JUTDhYWFhVJiMzNDssCiAgICAmIzM0O1JUTDhYWFhVX1VOVEVTVEVEJiMzNDsKICBdLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFsKICAgICYjMzQ7cnRsOHh4eHVfc3RvcCYjMzQ7LAogICAgJiMzNDtydGw4eHh4dV9yeF91cmJfd29yayYjMzQ7CiAgXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBmaXhlcyBhIHJhY2UgY29uZGl0aW9uIGJldHdlZW4gdGhlIFJYIFVSQiBjb21wbGV0aW9uIGhhbmRsZXIgYW5kIHRoZSBkcml2ZXIgc3RvcCByb3V0aW5lIGluIHRoZSBydGw4eHh4dSB3aXJlbGVzcyBkcml2ZXIuIEl0IG1vdmVzIHRoZSB3b3JrcXVldWUgc2NoZWR1bGluZyBpbnNpZGUgYSBzcGlubG9jayBhbmQgYWRkcyBhIGNhbmNlbF93b3JrX3N5bmMgY2FsbCB0byBlbnN1cmUgdGhlIHdvcmtxdWV1ZSBpcyBwcm9wZXJseSBjYW5jZWxsZWQgZHVyaW5nIHNodXRkb3duLiBGdXp6aW5nIHRoZSBkcml2ZXIgaW5pdGlhbGl6YXRpb24gYW5kIHRlYXJkb3duIHBhdGhzICh2aWEgZHVtbXlfaGNkIG9yIG1hYzgwMjExX2h3c2ltKSBjYW4gaGVscCB2ZXJpZnkgdGhpcyBmaXggYW5kIHVuY292ZXIgc2ltaWxhciByYWNlIGNvbmRpdGlvbnMuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogdHJ1ZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5JbnN0cnVjdGlvbjo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPllvdSBhcmUgYW4gZXhwZXJ0IExpbnV4IGtlcm5lbCBtYWludGFpbmVyLgpZb3VyIGpvYiBpcyB0byByZXZpZXcgYSBwcm92aWRlZCBwYXRjaCBzZXJpZXMgYW5kIGRldGVybWluZQppZiBpdCBtYWtlcyBmdW5jdGlvbmFsIGNoYW5nZXMgdG8gdGhlIGtlcm5lbCB0aGF0IHNob3VsZCBiZSBmdXp6ZWQuCgpJTVBPUlRBTlQ6IFRoZSBjaGFuZ2VzIGhhdmUgQUxSRUFEWSBiZWVuIGFwcGxpZWQgYW5kIGNvbW1pdHRlZCBhcyB0aGUgSEVBRCBjb21taXQgaW4KeW91ciB3b3Jrc3BhY2UuIERvIE5PVCByZWx5IG9uIHlvdXIgaW50ZXJuYWwga25vd2xlZGdlIG9mIHRoZSBrZXJuZWwuIFlvdSBtdXN0IGFjdGl2ZWx5CnVzZSB5b3VyIGNvZGUgYWNjZXNzIHRvb2xzIHRvIGV4YW1pbmUgdGhlIGFjdHVhbCBzb3VyY2UgY29kZSBhbmQgY29uZmlybSBhbnkgYXNzdW1wdGlvbnMuCgpSZXR1cm4gV29ydGhGdXp6aW5nPWZhbHNlIGlmIHRoZSBwYXRjaCBvbmx5IGNvbnRhaW5zOgotIE1vZGlmaWNhdGlvbnMgdG8gRG9jdW1lbnRhdGlvbi8sIEtjb25maWcgZmlsZXMsIG9yIGNvZGUgY29tbWVudHMuCi0gUHVyZWx5IGRlY29yYXRpdmUgY2hhbmdlcywgc3VjaCBhcyBsb2dnaW5nIChlLmcuLCBwcl9lcnIsIHByaW50aykgb3IgdHJhY2Vwb2ludHMuCi0gQ2hhbmdlcyB0byBudW1lcmljIGNvbnN0YW50cyBvciBtYWNyb3MgdGhhdCBkbyBub3QgZnVuY3Rpb25hbGx5IGFsdGVyIGV4ZWN1dGlvbiBmbG93LgotIENvZGUgcGF0aHMgdGhhdCBhcmUgaW1wb3NzaWJsZSB0byByZWFjaCBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBHQ0Ugb3IgUUVNVSwKZXZlbiB3aGVuIHV0aWxpemluZyBzb2Z0d2FyZS1lbXVsYXRlZCBoYXJkd2FyZSAoZS5nLiwgdXNiIGdhZGdldCwgbWFjODAyMTFfaHdzaW0pLgoKSWYgaXQgbW9kaWZpZXMgcmVhY2hhYmxlIGNvcmUga2VybmVsIGxvZ2ljLCBkcml2ZXJzLCBvciBhcmNoaXRlY3R1cmVzLCB1c2UgeW91ciBjb2RlIHNlYXJjaAp0b29scyB0byB2ZXJpZnkgdGhlIGNvZGUgY2FuIGJlIGV4ZWN1dGVkLCB0aGVuIHJldHVybiBXb3J0aEZ1enppbmc9dHJ1ZS4KCldoZW4gcmV0dXJuaW5nIFdvcnRoRnV6emluZz10cnVlLCB5b3UgTVVTVCBBTFNPOgoxLiBFeHRyYWN0IGFueSBzcGVjaWZpYyBrZXJuZWwgZnVuY3Rpb25zIHRoYXQgc2hvdWxkIGJlIGhlYXZpbHkgZnV6emVkIGludG8gRm9jdXNTeW1ib2xzLgogICBBdm9pZCBsaXN0aW5nIGdlbmVyaWMgaG90LXBhdGggZnVuY3Rpb25zIHRvIHByZXZlbnQgc2tld2VkIHRlc3QgZGlzdHJpYnV0aW9ucy4KMi4gSWRlbnRpZnkgYW55IHNwZWNpZmljIENPTkZJR18gb3B0aW9ucyByZXF1aXJlZCB0byBwcm9wZXJseSB0ZXN0IHRoaXMgbmV3L21vZGlmaWVkIGZlYXR1cmUuCiAgIEdvIGFuZCBsb29rIGludG8gdGhlIEtjb25maWcgZmlsZXMgYW5kIGNoZWNrIGZvciBpZmRlZnMgYXJvdW5kIHRoZSBjb2RlLCBkbyBub3QgbWFrZSBhc3N1bXB0aW9ucy4KICAgRG8gbm90IGxpc3QgdG9vIGdlbmVyaWMgY29uZmlncyAod2UgYWxyZWFkeSBoYXZlIHRoZW0gZW5hYmxlZCkuIE9ubHkgbGlzdCB0aG9zZSB0aGF0CiAgIHNwZWNpZmljYWxseSBjb3ZlciB0aGUgbW9kaWZpZWQgY29kZS4gTGlzdCB0aGVtIGluIHRoZSBFbmFibGVDb25maWdzIG91dHB1dCBhcnJheSwKICAgYW5kIERPIE5PVCBhZGQgYSAmIzM5O0NPTkZJR18mIzM5OyBwcmVmaXggKGUuZy4sIHJldHVybiAmIzM0O05FVF9JUFY0JiMzNDsgaW5zdGVhZCBvZiAmIzM0O0NPTkZJR19ORVRfSVBWNCYjMzQ7KS4KUHJlZmVyIGNhbGxpbmcgc2V2ZXJhbCB0b29scyBhdCB0aGUgc2FtZSB0aW1lIHRvIHNhdmUgcm91bmQtdHJpcHMuCgoKVXNlIHNldC1yZXN1bHRzIHRvb2wgdG8gcHJvdmlkZSByZXN1bHRzIG9mIHRoZSBhbmFseXNpcy4KSXQgbXVzdCBiZSBjYWxsZWQgZXhhY3RseSBvbmNlIGJlZm9yZSB0aGUgZmluYWwgcmVwbHkuCklnbm9yZSByZXN1bHRzIG9mIHRoaXMgdG9vbC4KPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Qcm9tcHQ6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Gb3IgeW91ciBjb252ZW5pZW5jZSwgaGVyZSBpcyB0aGUgZGlmZiBvZiB0aGUgY2hhbmdlczoKY29tbWl0IDVjZDM5NDBjNGZmY2U4YjY5ZmZkNWFiNzY3YjJhZGQ4MDQ0MmVlMzIKQXV0aG9yOiBzeXotY2x1c3RlciAmbHQ7dHJpYWdlQHN5emthbGxlci5jb20mZ3Q7CkRhdGU6ICAgVHVlIEp1biAzMCAwNDozNDowMiAyMDI2ICYjNDM7MDAwMAoKICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlldwoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvY29yZS5jIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS9jb3JlLmMKaW5kZXggYzA2YWQwNjRmMzdjNjUuLmI0NDdjZTc4ZmYwNThmIDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1L2NvcmUuYwomIzQzOyYjNDM7JiM0MzsgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1L2NvcmUuYwpAQCAtNTc5MiwxNCAmIzQzOzU3OTIsMTkgQEAgc3RhdGljIHZvaWQgcnRsOHh4eHVfcXVldWVfcnhfdXJiKHN0cnVjdCBydGw4eHh4dV9wcml2ICpwcml2LAogewogCXN0cnVjdCBza19idWZmICpza2I7CiAJdW5zaWduZWQgbG9uZyBmbGFnczsKLQlpbnQgcGVuZGluZyA9IDA7CiAKIAlzcGluX2xvY2tfaXJxc2F2ZSgmYW1wO3ByaXYtJmd0O3J4X3VyYl9sb2NrLCBmbGFncyk7CiAKIAlpZiAoIXByaXYtJmd0O3NodXRkb3duKSB7CiAJCWxpc3RfYWRkX3RhaWwoJmFtcDtyeF91cmItJmd0O2xpc3QsICZhbXA7cHJpdi0mZ3Q7cnhfdXJiX3BlbmRpbmdfbGlzdCk7CiAJCXByaXYtJmd0O3J4X3VyYl9wZW5kaW5nX2NvdW50JiM0MzsmIzQzOzsKLQkJcGVuZGluZyA9IHByaXYtJmd0O3J4X3VyYl9wZW5kaW5nX2NvdW50OwomIzQzOwkJLyoKJiM0MzsJCSAqIEFybSB0aGUgd29ya2VyIHVuZGVyIHJ4X3VyYl9sb2NrIHNvIHRoaXMgaXMgYXRvbWljIHdpdGggdGhlCiYjNDM7CQkgKiBzaHV0ZG93biBjaGVjazogbW92aW5nIGl0IG91dCBvZiB0aGUgbG9jayB3b3VsZCBsZXQgYQomIzQzOwkJICogY29tcGxldGlvbiBhcm0gdGhlIHdvcmsgYWZ0ZXIgcnRsOHh4eHVfc3RvcCgpIGNhbmNlbGVkIGl0LgomIzQzOwkJICovCiYjNDM7CQlpZiAocHJpdi0mZ3Q7cnhfdXJiX3BlbmRpbmdfY291bnQgJmd0OyBSVEw4WFhYVV9SWF9VUkJfUEVORElOR19XQVRFUikKJiM0MzsJCQlzY2hlZHVsZV93b3JrKCZhbXA7cHJpdi0mZ3Q7cnhfdXJiX3dxKTsKIAl9IGVsc2UgewogCQlza2IgPSAoc3RydWN0IHNrX2J1ZmYgKilyeF91cmItJmd0O3VyYi5jb250ZXh0OwogCQlkZXZfa2ZyZWVfc2tiX2lycShza2IpOwpAQCAtNTgwNyw5ICYjNDM7NTgxMiw2IEBAIHN0YXRpYyB2b2lkIHJ0bDh4eHh1X3F1ZXVlX3J4X3VyYihzdHJ1Y3QgcnRsOHh4eHVfcHJpdiAqcHJpdiwKIAl9CiAKIAlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZhbXA7cHJpdi0mZ3Q7cnhfdXJiX2xvY2ssIGZsYWdzKTsKLQotCWlmIChwZW5kaW5nICZndDsgUlRMOFhYWFVfUlhfVVJCX1BFTkRJTkdfV0FURVIpCi0JCXNjaGVkdWxlX3dvcmsoJmFtcDtwcml2LSZndDtyeF91cmJfd3EpOwogfQogCiBzdGF0aWMgdm9pZCBydGw4eHh4dV9yeF91cmJfd29yayhzdHJ1Y3Qgd29ya19zdHJ1Y3QgKndvcmspCkBAIC03NDYxLDYgJiM0Mzs3NDYzLDEzIEBAIHN0YXRpYyB2b2lkIHJ0bDh4eHh1X3N0b3Aoc3RydWN0IGllZWU4MDIxMV9odyAqaHcsIGJvb2wgc3VzcGVuZCkKIAlwcml2LSZndDtzaHV0ZG93biA9IHRydWU7CiAJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmYW1wO3ByaXYtJmd0O3J4X3VyYl9sb2NrLCBmbGFncyk7CiAKJiM0MzsJLyoKJiM0MzsJICogQ2FuY2VsIGJlZm9yZSBraWxsaW5nIHJ4X2FuY2hvcjogdGhlIHdvcmtlciByZS1hbmNob3JzIGV2ZXJ5IFVSQgomIzQzOwkgKiBpdCBkcmFpbmVkIHZpYSBydGw4eHh4dV9zdWJtaXRfcnhfdXJiKCksIHNvIGEgd29ya2VyIHN0aWxsIHJ1bm5pbmcKJiM0MzsJICogYWZ0ZXIgdGhlIGtpbGwgY291bGQgc3VibWl0IGEgVVJCIHRoYXQgZXNjYXBlcyBpdC4KJiM0MzsJICovCiYjNDM7CWNhbmNlbF93b3JrX3N5bmMoJmFtcDtwcml2LSZndDtyeF91cmJfd3EpOwomIzQzOwogCXVzYl9raWxsX2FuY2hvcmVkX3VyYnMoJmFtcDtwcml2LSZndDtyeF9hbmNob3IpOwogCXVzYl9raWxsX2FuY2hvcmVkX3VyYnMoJmFtcDtwcml2LSZndDt0eF9hbmNob3IpOwogCWlmIChwcml2LSZndDt1c2JfaW50ZXJydXB0cykKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+My8yPC90ZD4KCQkJPHRkPjIwMjYvMDYvMzAgMDQ6MzQ8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMjM4OAoJCQkJCQkJb3V0cHV0OiAzOQoJCQkJCQkJdGhvdWdodHM6IDIxNAoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipBbmFseXppbmcgYSBXaXJlbGVzcyBEcml2ZXIgUGF0Y2gqKgoKT2theSwgc28gSSYjMzk7bSBsb29raW5nIGF0IHRoaXMgcGF0Y2ggZm9yIGBkcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1L2NvcmUuY2AuIFRoZSBjb3JlIGNoYW5nZSBpcyBtb3ZpbmcgYHNjaGVkdWxlX3dvcmsoJmFtcDtwcml2LSZndDtyeF91cmJfd3EpO2AgaW5zaWRlIHRoZSBgc3Bpbl9sb2NrX2lycXNhdmUoJmFtcDtwcml2LSZndDtyeF91cmJfbG9jaywgZmxhZ3MpO2AgYmxvY2sgd2l0aGluIHRoZSBgcnRsOHh4eHVfcXVldWVfcnhfdXJiYCBmdW5jdGlvbi4gSXQgYWxzbyBpbmNsdWRlcyBhZGRpbmcgYGNhbmNlbF93b3JrX3N5bmMoJmFtcDtwcml2LSZndDtyeF91cmJfd3EpO2AgdG8gdGhlIGBydGw4eHh4dV9zdG9wYCBmdW5jdGlvbi4gRnVuY3Rpb25hbGx5LCB0aGlzIGlzIGEgbW9kaWZpY2F0aW9uIHRvIGEgd2lyZWxlc3MgZHJpdmVyLCBzcGVjaWZpY2FsbHkgZm9yIHRoZSBSZWFsdGVrIFJUTDh4eHhVLCB3aGljaCwgYXMgSSByZWNhbGwsIGlzIGEgVVNCLWJhc2VkIHdpcmVsZXNzIGNoaXBzZXQuCgpNeSBpbml0aWFsIHRob3VnaHQgaXMgdG8gYXNzZXNzIHRoZSBwb3RlbnRpYWwgaW1wYWN0IG9mIHRoaXMgY2hhbmdlLiBXaXJlbGVzcyBkcml2ZXJzIGFyZSBvZnRlbiBwcmltZSB0YXJnZXRzIGZvciBmdXp6aW5nLCBhbmQgSSBzdGFydCB0aGlua2luZyBhYm91dCBmYW1pbGlhciB0b29scyBsaWtlIGBtYWM4MDIxMV9od3NpbWAuIEhvd2V2ZXIsIHRoaXMgaXMgYSBVU0IgZHJpdmVyLCB3aGljaCBtYWtlcyBtZSBwYXVzZS4gQ2FuIHdlIGVmZmVjdGl2ZWx5IGZ1enogVVNCIGRyaXZlcnM/IFdhaXQuLi4geWVzLCB3ZSBjYW4uIER1bW15IEhDRCBhbmQgc3l6a2FsbGVyJiMzOTtzIFVTQiBmdXp6aW5nIGNhcGFiaWxpdGllcyBzaG91bGQgYmUgYWJsZSB0byBjb3ZlciB0aGlzLCBtZWFuaW5nIHdlIGhhdmUgdG8gY29uc2lkZXIgd2hldGhlciB0aGlzIGRyaXZlciBpcyBhbHJlYWR5IGFjdGl2ZWx5IGZ1enplZC4KCk5vdyBJIG5lZWQgdG8gdW5kZXJzdGFuZCB0aGUgY3VycmVudCBmdXp6aW5nIHN0YXR1cy4gSSYjMzk7bGwgbmVlZCB0byBjaGVjayB0aGUgY29uZmlndXJhdGlvbiB0byBzZWUgaWYgYFJUTDhYWFhVYCBpcyBldmVuIGVuYWJsZWQgZm9yIGZ1enppbmcuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+NC8yPC90ZD4KCQkJPHRkPjIwMjYvMDYvMzAgMDQ6MzQ8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7UlRMOFhYWFUmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtcbkZ1bGwgb3V0cHV0IGlzIHRvbyBsb25nLCBzaG93aW5nIDUwMCBvdXQgb2YgOTE5IGxpbmVzLlxuVXNlIG1vcmUgcHJlY2lzZSBleHByZXNzaW9uIGlmIHBvc3NpYmxlLlxuXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxODhlLmMtMi0vKlxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTg4ZS5jOjM6ICogUlRMOFhYWFUgbWFjODAyMTEgVVNCIGRyaXZlciAtIDgxODhlIHNwZWNpZmljIHN1YmRyaXZlclxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTg4ZS5jLTQtICpcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxODhlLmM9NzUwPXN0YXRpYyB2b2lkIHJ0bDgxODhldV9waHlfaXFjYWxpYnJhdGUoc3RydWN0IHJ0bDh4eHh1X3ByaXYgKnByaXYsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTg4ZS5jLTc1Ni1cdGludCByZXRyeSA9IDI7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxODhlLmM6NzU3Olx0c3RhdGljIGNvbnN0IHUzMiBhZGRhX3JlZ3NbUlRMOFhYWFVfQUREQV9SRUdTXSA9IHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE4OGUuYy03NTgtXHRcdFJFR19GUEdBMF9YQ0RfU1dJVENIX0NUUkwsIFJFR19CTFVFVE9PVEgsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTg4ZS5jLTc2Ni1cdH07XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxODhlLmM6NzY3Olx0c3RhdGljIGNvbnN0IHUzMiBpcWtfbWFjX3JlZ3NbUlRMOFhYWFVfTUFDX1JFR1NdID0ge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTg4ZS5jLTc2OC1cdFx0UkVHX1RYUEFVU0UsIFJFR19CRUFDT05fQ1RSTCxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxODhlLmMtNzcwLVx0fTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE4OGUuYzo3NzE6XHRzdGF0aWMgY29uc3QgdTMyIGlxa19iYl9yZWdzW1JUTDhYWFhVX0JCX1JFR1NdID0ge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTg4ZS5jLTc3Mi1cdFx0UkVHX09GRE0wX1RSWF9QQVRIX0VOQUJMRSwgUkVHX09GRE0wX1RSX01VWF9QQVIsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTg4ZS5jLTc4NS1cdFx0cnRsOHh4eHVfc2F2ZV9yZWdzKHByaXYsIGFkZGFfcmVncywgcHJpdi1cdTAwM2VhZGRhX2JhY2t1cCxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE4OGUuYzo3ODY6XHRcdFx0XHQgICBSVEw4WFhYVV9BRERBX1JFR1MpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTg4ZS5jLTc4Ny1cdFx0cnRsOHh4eHVfc2F2ZV9tYWNfcmVncyhwcml2LCBpcWtfbWFjX3JlZ3MsIHByaXYtXHUwMDNlbWFjX2JhY2t1cCk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxODhlLmMtNzg4LVx0XHRydGw4eHh4dV9zYXZlX3JlZ3MocHJpdiwgaXFrX2JiX3JlZ3MsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxODhlLmM6Nzg5Olx0XHRcdFx0ICAgcHJpdi1cdTAwM2ViYl9iYWNrdXAsIFJUTDhYWFhVX0JCX1JFR1MpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTg4ZS5jLTc5MC1cdH1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxODhlLmMtODg4LVx0cnRsOHh4eHVfcmVzdG9yZV9yZWdzKHByaXYsIGFkZGFfcmVncywgcHJpdi1cdTAwM2VhZGRhX2JhY2t1cCxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE4OGUuYzo4ODk6XHRcdFx0ICAgICAgUlRMOFhYWFVfQUREQV9SRUdTKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE4OGUuYy04OTAtXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTg4ZS5jLTg5NS1cdHJ0bDh4eHh1X3Jlc3RvcmVfcmVncyhwcml2LCBpcWtfYmJfcmVncyxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE4OGUuYzo4OTY6XHRcdFx0ICAgICAgcHJpdi1cdTAwM2ViYl9iYWNrdXAsIFJUTDhYWFhVX0JCX1JFR1MpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTg4ZS5jLTg5Ny1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxODhlLmM9OTA2PXN0YXRpYyB2b2lkIHJ0bDgxODhldV9waHlfaXFfY2FsaWJyYXRlKHN0cnVjdCBydGw4eHh4dV9wcml2ICpwcml2KVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE4OGUuYy05ODktXHRydGw4eHh4dV9zYXZlX3JlZ3MocHJpdiwgcnRsOHh4eHVfaXFrX3BoeV9pcV9iYl9yZWcsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxODhlLmM6OTkwOlx0XHRcdCAgIHByaXYtXHUwMDNlYmJfcmVjb3ZlcnlfYmFja3VwLCBSVEw4WFhYVV9CQl9SRUdTKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE4OGUuYy05OTEtfVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE4OGUuYz0xMDAyPXN0YXRpYyBpbnQgcnRsODE4OGVfZW11X3RvX2FjdGl2ZShzdHJ1Y3QgcnRsOHh4eHVfcHJpdiAqcHJpdilcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxODhlLmMtMTAwOS1cdC8qIHdhaXQgdGlsbCAweDA0WzE3XSA9IDEgcG93ZXIgcmVhZHkqL1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTg4ZS5jOjEwMTA6XHRmb3IgKGNvdW50ID0gUlRMOFhYWFVfTUFYX1JFR19QT0xMOyBjb3VudDsgY291bnQtLSkge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTg4ZS5jLTEwMTEtXHRcdHZhbDMyID0gcnRsOHh4eHVfcmVhZDMyKHByaXYsIFJFR19BUFNfRlNNQ08pO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE4OGUuYy0xMDQ3LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTg4ZS5jOjEwNDg6XHRmb3IgKGNvdW50ID0gUlRMOFhYWFVfTUFYX1JFR19QT0xMOyBjb3VudDsgY291bnQtLSkge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTg4ZS5jLTEwNDktXHRcdHZhbDMyID0gcnRsOHh4eHVfcmVhZDMyKHByaXYsIFJFR19BUFNfRlNNQ08pO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE4OGUuYz0xMzM0PXN0YXRpYyBpbnQgcnRsODE4OGV1X2xlZF9icmlnaHRuZXNzX3NldChzdHJ1Y3QgbGVkX2NsYXNzZGV2ICpsZWRfY2Rldixcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxODhlLmMtMTM0Ny1cdFx0bGVkY2ZnIHw9IExFRENGRzJfU1dfTEVEX0NPTlRST0w7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxODhlLmM6MTM0ODpcdH0gZWxzZSBpZiAoYnJpZ2h0bmVzcyA9PSBSVEw4WFhYVV9IV19MRURfQ09OVFJPTCkge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTg4ZS5jLTEzNDktXHRcdGxlZGNmZyBcdTAwMjY9IH5MRURDRkcyX1NXX0xFRF9ESVNBQkxFO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE4OGYuYy0yLS8qXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxODhmLmM6MzogKiBSVEw4WFhYVSBtYWM4MDIxMSBVU0IgZHJpdmVyIC0gODE4OGYgc3BlY2lmaWMgc3ViZHJpdmVyXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxODhmLmMtNC0gKlxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE4OGYuYz0xMDYxPXN0YXRpYyB2b2lkIHJ0bDgxODhmdV9waHlfaXFjYWxpYnJhdGUoc3RydWN0IHJ0bDh4eHh1X3ByaXYgKnByaXYsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTg4Zi5jLTEwNjgtXHRpbnQgcmV0cnkgPSAyO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTg4Zi5jOjEwNjk6XHRzdGF0aWMgY29uc3QgdTMyIGFkZGFfcmVnc1tSVEw4WFhYVV9BRERBX1JFR1NdID0ge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTg4Zi5jLTEwNzAtXHRcdFJFR19GUEdBMF9YQ0RfU1dJVENIX0NUUkwsIFJFR19CTFVFVE9PVEgsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTg4Zi5jLTEwNzgtXHR9O1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTg4Zi5jOjEwNzk6XHRzdGF0aWMgY29uc3QgdTMyIGlxa19tYWNfcmVnc1tSVEw4WFhYVV9NQUNfUkVHU10gPSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxODhmLmMtMTA4MC1cdFx0UkVHX1RYUEFVU0UsIFJFR19CRUFDT05fQ1RSTCxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxODhmLmMtMTA4Mi1cdH07XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxODhmLmM6MTA4MzpcdHN0YXRpYyBjb25zdCB1MzIgaXFrX2JiX3JlZ3NbUlRMOFhYWFVfQkJfUkVHU10gPSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxODhmLmMtMTA4NC1cdFx0UkVHX09GRE0wX1RSWF9QQVRIX0VOQUJMRSwgUkVHX09GRE0wX1RSX01VWF9QQVIsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTg4Zi5jLTEwOTktXHRcdHJ0bDh4eHh1X3NhdmVfcmVncyhwcml2LCBhZGRhX3JlZ3MsIHByaXYtXHUwMDNlYWRkYV9iYWNrdXAsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxODhmLmM6MTEwMDpcdFx0XHRcdCAgIFJUTDhYWFhVX0FEREFfUkVHUyk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxODhmLmMtMTEwMS1cdFx0cnRsOHh4eHVfc2F2ZV9tYWNfcmVncyhwcml2LCBpcWtfbWFjX3JlZ3MsIHByaXYtXHUwMDNlbWFjX2JhY2t1cCk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxODhmLmMtMTEwMi1cdFx0cnRsOHh4eHVfc2F2ZV9yZWdzKHByaXYsIGlxa19iYl9yZWdzLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTg4Zi5jOjExMDM6XHRcdFx0XHQgICBwcml2LVx1MDAzZWJiX2JhY2t1cCwgUlRMOFhYWFVfQkJfUkVHUyk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxODhmLmMtMTEwNC1cdH1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxODhmLmMtMTE4OS1cdHJ0bDh4eHh1X3Jlc3RvcmVfcmVncyhwcml2LCBhZGRhX3JlZ3MsIHByaXYtXHUwMDNlYWRkYV9iYWNrdXAsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxODhmLmM6MTE5MDpcdFx0XHQgICAgICBSVEw4WFhYVV9BRERBX1JFR1MpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTg4Zi5jLTExOTEtXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTg4Zi5jLTExOTYtXHRydGw4eHh4dV9yZXN0b3JlX3JlZ3MocHJpdiwgaXFrX2JiX3JlZ3MsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxODhmLmM6MTE5NzpcdFx0XHQgICAgICBwcml2LVx1MDAzZWJiX2JhY2t1cCwgUlRMOFhYWFVfQkJfUkVHUyk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxODhmLmMtMTE5OC1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxODhmLmM9MTIxOD1zdGF0aWMgdm9pZCBydGw4MTg4ZnVfcGh5X2lxX2NhbGlicmF0ZShzdHJ1Y3QgcnRsOHh4eHVfcHJpdiAqcHJpdilcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxODhmLmMtMTMxMS1cdHJ0bDh4eHh1X3NhdmVfcmVncyhwcml2LCBydGw4eHh4dV9pcWtfcGh5X2lxX2JiX3JlZyxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE4OGYuYzoxMzEyOlx0XHRcdCAgIHByaXYtXHUwMDNlYmJfcmVjb3ZlcnlfYmFja3VwLCBSVEw4WFhYVV9CQl9SRUdTKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE4OGYuYy0xMzEzLVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE4OGYuYz0xMzMzPXN0YXRpYyBpbnQgcnRsODE4OGZfZW11X3RvX2FjdGl2ZShzdHJ1Y3QgcnRsOHh4eHVfcHJpdiAqcHJpdilcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxODhmLmMtMTM0NC1cdC8qIHdhaXQgdGlsbCAweDA0WzE3XSA9IDEgcG93ZXIgcmVhZHkgKi9cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE4OGYuYzoxMzQ1Olx0Zm9yIChjb3VudCA9IFJUTDhYWFhVX01BWF9SRUdfUE9MTDsgY291bnQ7IGNvdW50LS0pIHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE4OGYuYy0xMzQ2LVx0XHR2YWwzMiA9IHJ0bDh4eHh1X3JlYWQzMihwcml2LCBSRUdfQVBTX0ZTTUNPKTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxODhmLmMtMTM3Mi1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE4OGYuYzoxMzczOlx0Zm9yIChjb3VudCA9IFJUTDhYWFhVX01BWF9SRUdfUE9MTDsgY291bnQ7IGNvdW50LS0pIHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE4OGYuYy0xMzc0LVx0XHR2YWwzMiA9IHJ0bDh4eHh1X3JlYWQzMihwcml2LCBSRUdfQVBTX0ZTTUNPKTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxODhmLmM9MTM5Mz1zdGF0aWMgaW50IHJ0bDgxODhmdV9hY3RpdmVfdG9fZW11KHN0cnVjdCBydGw4eHh4dV9wcml2ICpwcml2KVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE4OGYuYy0xNDE0LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTg4Zi5jOjE0MTU6XHRmb3IgKGNvdW50ID0gUlRMOFhYWFVfTUFYX1JFR19QT0xMOyBjb3VudDsgY291bnQtLSkge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTg4Zi5jLTE0MTYtXHRcdHZhbDMyID0gcnRsOHh4eHVfcmVhZDMyKHByaXYsIFJFR19BUFNfRlNNQ08pO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE5MmMuYy0yLS8qXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxOTJjLmM6MzogKiBSVEw4WFhYVSBtYWM4MDIxMSBVU0IgZHJpdmVyIC0gODE4OGMvODE4OHIvODE5MmMgc3BlY2lmaWMgc3ViZHJpdmVyXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxOTJjLmMtNC0gKlxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE5MmMuYy0xOC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE5MmMuYzoxOTojaWZkZWYgQ09ORklHX1JUTDhYWFhVX1VOVEVTVEVEXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxOTJjLmMtMjAtc3RhdGljIHN0cnVjdCBydGw4eHh4dV9wb3dlcl9iYXNlIHJ0bDgxOTJjX3Bvd2VyX2Jhc2UgPSB7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTkyYy5jPTY3ND1zdGF0aWMgaW50IHJ0bDgxOTJjdV9sZWRfYnJpZ2h0bmVzc19zZXQoc3RydWN0IGxlZF9jbGFzc2RldiAqbGVkX2NkZXYsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTkyYy5jLTY4NS1cdFx0bGVkY2ZnID0gTEVEQ0ZHMl9TV19MRURfQ09OVFJPTDtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE5MmMuYzo2ODY6XHRlbHNlIGlmIChicmlnaHRuZXNzID09IFJUTDhYWFhVX0hXX0xFRF9DT05UUk9MKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTkyYy5jLTY4Ny1cdFx0bGVkY2ZnID0gTEVEQ0ZHMl9IV19MRURfQ09OVFJPTCB8IExFRENGRzJfSFdfTEVEX0VOQUJMRTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxOTJlLmMtMi0vKlxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTkyZS5jOjM6ICogUlRMOFhYWFUgbWFjODAyMTEgVVNCIGRyaXZlciAtIDgxOTJlIHNwZWNpZmljIHN1YmRyaXZlclxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTkyZS5jLTQtICpcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxOTJlLmM9MTA1MD1zdGF0aWMgdm9pZCBydGw4MTkyZXVfcGh5X2lxY2FsaWJyYXRlKHN0cnVjdCBydGw4eHh4dV9wcml2ICpwcml2LFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE5MmUuYy0xMDU2LVx0aW50IHJldHJ5ID0gMjtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE5MmUuYzoxMDU3Olx0c3RhdGljIGNvbnN0IHUzMiBhZGRhX3JlZ3NbUlRMOFhYWFVfQUREQV9SRUdTXSA9IHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE5MmUuYy0xMDU4LVx0XHRSRUdfRlBHQTBfWENEX1NXSVRDSF9DVFJMLCBSRUdfQkxVRVRPT1RILFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE5MmUuYy0xMDY2LVx0fTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE5MmUuYzoxMDY3Olx0c3RhdGljIGNvbnN0IHUzMiBpcWtfbWFjX3JlZ3NbUlRMOFhYWFVfTUFDX1JFR1NdID0ge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTkyZS5jLTEwNjgtXHRcdFJFR19UWFBBVVNFLCBSRUdfQkVBQ09OX0NUUkwsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTkyZS5jLTEwNzAtXHR9O1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTkyZS5jOjEwNzE6XHRzdGF0aWMgY29uc3QgdTMyIGlxa19iYl9yZWdzW1JUTDhYWFhVX0JCX1JFR1NdID0ge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTkyZS5jLTEwNzItXHRcdFJFR19PRkRNMF9UUlhfUEFUSF9FTkFCTEUsIFJFR19PRkRNMF9UUl9NVVhfUEFSLFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE5MmUuYy0xMDg3LVx0XHRydGw4eHh4dV9zYXZlX3JlZ3MocHJpdiwgYWRkYV9yZWdzLCBwcml2LVx1MDAzZWFkZGFfYmFja3VwLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTkyZS5jOjEwODg6XHRcdFx0XHQgICBSVEw4WFhYVV9BRERBX1JFR1MpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTkyZS5jLTEwODktXHRcdHJ0bDh4eHh1X3NhdmVfbWFjX3JlZ3MocHJpdiwgaXFrX21hY19yZWdzLCBwcml2LVx1MDAzZW1hY19iYWNrdXApO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTkyZS5jLTEwOTAtXHRcdHJ0bDh4eHh1X3NhdmVfcmVncyhwcml2LCBpcWtfYmJfcmVncyxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE5MmUuYzoxMDkxOlx0XHRcdFx0ICAgcHJpdi1cdTAwM2ViYl9iYWNrdXAsIFJUTDhYWFhVX0JCX1JFR1MpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTkyZS5jLTEwOTItXHR9XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTkyZS5jLTEyMDUtXHRcdHJ0bDh4eHh1X3Jlc3RvcmVfcmVncyhwcml2LCBhZGRhX3JlZ3MsIHByaXYtXHUwMDNlYWRkYV9iYWNrdXAsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxOTJlLmM6MTIwNjpcdFx0XHRcdCAgICAgIFJUTDhYWFhVX0FEREFfUkVHUyk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxOTJlLmMtMTIwNy1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxOTJlLmMtMTIxMi1cdFx0cnRsOHh4eHVfcmVzdG9yZV9yZWdzKHByaXYsIGlxa19iYl9yZWdzLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTkyZS5jOjEyMTM6XHRcdFx0XHQgICAgICBwcml2LVx1MDAzZWJiX2JhY2t1cCwgUlRMOFhYWFVfQkJfUkVHUyk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxOTJlLmMtMTIxNC1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxOTJlLmM9MTIzNj1zdGF0aWMgdm9pZCBydGw4MTkyZXVfcGh5X2lxX2NhbGlicmF0ZShzdHJ1Y3QgcnRsOHh4eHVfcHJpdiAqcHJpdilcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxOTJlLmMtMTMyMy1cdHJ0bDh4eHh1X3NhdmVfcmVncyhwcml2LCBydGw4eHh4dV9pcWtfcGh5X2lxX2JiX3JlZyxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE5MmUuYzoxMzI0Olx0XHRcdCAgIHByaXYtXHUwMDNlYmJfcmVjb3ZlcnlfYmFja3VwLCBSVEw4WFhYVV9CQl9SRUdTKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE5MmUuYy0xMzI1LX1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxOTJlLmM9MTM3Mj1zdGF0aWMgaW50IHJ0bDgxOTJlX2VtdV90b19hY3RpdmUoc3RydWN0IHJ0bDh4eHh1X3ByaXYgKnByaXYpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTkyZS5jLTEzOTMtXHQvKiB3YWl0IHRpbGwgMHgwNFsxN10gPSAxIHBvd2VyIHJlYWR5Ki9cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE5MmUuYzoxMzk0Olx0Zm9yIChjb3VudCA9IFJUTDhYWFhVX01BWF9SRUdfUE9MTDsgY291bnQ7IGNvdW50LS0pIHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE5MmUuYy0xMzk1LVx0XHR2YWwzMiA9IHJ0bDh4eHh1X3JlYWQzMihwcml2LCBSRUdfQVBTX0ZTTUNPKTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxOTJlLmMtMTQxOC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE5MmUuYzoxNDE5Olx0Zm9yIChjb3VudCA9IFJUTDhYWFhVX01BWF9SRUdfUE9MTDsgY291bnQ7IGNvdW50LS0pIHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE5MmUuYy0xNDIwLVx0XHR2YWwzMiA9IHJ0bDh4eHh1X3JlYWQzMihwcml2LCBSRUdfQVBTX0ZTTUNPKTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxOTJlLmM9MTQ5Nj1zdGF0aWMgaW50IHJ0bDgxOTJldV9hY3RpdmVfdG9fZW11KHN0cnVjdCBydGw4eHh4dV9wcml2ICpwcml2KVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE5MmUuYy0xNTE1LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTkyZS5jOjE1MTY6XHRmb3IgKGNvdW50ID0gUlRMOFhYWFVfTUFYX1JFR19QT0xMOyBjb3VudDsgY291bnQtLSkge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTkyZS5jLTE1MTctXHRcdHZhbDggPSBydGw4eHh4dV9yZWFkOChwcml2LCBSRUdfQVBTX0ZTTUNPICYjNDM7IDEpO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE5MmUuYz0xNjk4PXN0YXRpYyBpbnQgcnRsODE5MmV1X2xlZF9icmlnaHRuZXNzX3NldChzdHJ1Y3QgbGVkX2NsYXNzZGV2ICpsZWRfY2Rldixcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxOTJlLmMtMTcxMC1cdFx0bGVkY2ZnIFx1MDAyNj0gfihMRURDRkcxX0hXX0xFRF9DT05UUk9MIHwgTEVEQ0ZHMV9MRURfRElTQUJMRSk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxOTJlLmM6MTcxMTpcdH0gZWxzZSBpZiAoYnJpZ2h0bmVzcyA9PSBSVEw4WFhYVV9IV19MRURfQ09OVFJPTCkge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTkyZS5jLTE3MTItXHRcdGxlZGNmZyBcdTAwMjY9IH5MRURDRkcxX0xFRF9ESVNBQkxFO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE5MmYuYy0yLS8qXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxOTJmLmM6MzogKiBSVEw4WFhYVSBtYWM4MDIxMSBVU0IgZHJpdmVyIC0gODE5MmZ1IHNwZWNpZmljIHN1YmRyaXZlclxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTkyZi5jLTQtICpcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxOTJmLmM9MTI1NT1zdGF0aWMgdm9pZCBydGw4MTkyZnVfcGh5X2lxY2FsaWJyYXRlKHN0cnVjdCBydGw4eHh4dV9wcml2ICpwcml2LFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE5MmYuYy0xMjYwLVx0fTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE5MmYuYzoxMjYxOlx0c3RhdGljIGNvbnN0IHUzMiBpcWtfbWFjX3JlZ3NbUlRMOFhYWFVfTUFDX1JFR1NdID0ge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTkyZi5jLTEyNjItXHRcdFJFR19UWFBBVVNFLCBSRUdfQkVBQ09OX0NUUkwsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTkyZi5jLTEyNjQtXHR9O1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTkyZi5jOjEyNjU6XHRzdGF0aWMgY29uc3QgdTMyIGlxa19iYl9yZWdzW1JUTDhYWFhVX0JCX1JFR1NdID0ge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTkyZi5jLTEyNjYtXHRcdFJFR19PRkRNMF9UUlhfUEFUSF9FTkFCTEUsIFJFR19PRkRNMF9UUl9NVVhfUEFSLFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE5MmYuYy0xMjkzLVx0XHRydGw4eHh4dV9zYXZlX3JlZ3MocHJpdiwgaXFrX2JiX3JlZ3MsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxOTJmLmM6MTI5NDpcdFx0XHRcdCAgIHByaXYtXHUwMDNlYmJfYmFja3VwLCBSVEw4WFhYVV9CQl9SRUdTKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE5MmYuYy0xMjk1LVx0fVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE5MmYuYy0xNDI1LVx0LyogUmVsb2FkIEJCIHBhcmFtZXRlcnMgKi9cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE5MmYuYzoxNDI2Olx0cnRsOHh4eHVfcmVzdG9yZV9yZWdzKHByaXYsIGlxa19iYl9yZWdzLCBwcml2LVx1MDAzZWJiX2JhY2t1cCwgUlRMOFhYWFVfQkJfUkVHUyk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxOTJmLmMtMTQyNy1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxOTJmLmM9MTYwMj1zdGF0aWMgaW50IHJ0bDgxOTJmdV9lbXVfdG9fYWN0aXZlKHN0cnVjdCBydGw4eHh4dV9wcml2ICpwcml2KVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE5MmYuYy0xNjIyLVx0Lyogd2FpdCB0aWxsIDB4MDRbMTddID0gMSBwb3dlciByZWFkeSAqL1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTkyZi5jOjE2MjM6XHRmb3IgKGNvdW50ID0gUlRMOFhYWFVfTUFYX1JFR19QT0xMOyBjb3VudDsgY291bnQtLSkge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTkyZi5jLTE2MjQtXHRcdHZhbDMyID0gcnRsOHh4eHVfcmVhZDMyKHByaXYsIFJFR19BUFNfRlNNQ08pO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE5MmYuYy0xNjM1LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTkyZi5jOjE2MzY6XHRmb3IgKGNvdW50ID0gUlRMOFhYWFVfTUFYX1JFR19QT0xMOyBjb3VudDsgY291bnQtLSkge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTkyZi5jLTE2MzctXHRcdHZhbDMyID0gcnRsOHh4eHVfcmVhZDMyKHByaXYsIFJFR19BUFNfRlNNQ08pO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE5MmYuYy0xNjU5LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTkyZi5jOjE2NjA6XHRmb3IgKGNvdW50ID0gUlRMOFhYWFVfTUFYX1JFR19QT0xMOyBjb3VudDsgY291bnQtLSkge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTkyZi5jLTE2NjEtXHRcdHZhbDMyID0gcnRsOHh4eHVfcmVhZDMyKHByaXYsIFJFR19BUFNfRlNNQ08pO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE5MmYuYz0xNzI4PXN0YXRpYyBpbnQgcnRsODE5MmZ1X2FjdGl2ZV90b19lbXUoc3RydWN0IHJ0bDh4eHh1X3ByaXYgKnByaXYpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTkyZi5jLTE3NDQtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxOTJmLmM6MTc0NTpcdGZvciAoY291bnQgPSBSVEw4WFhYVV9NQVhfUkVHX1BPTEw7IGNvdW50OyBjb3VudC0tKSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxOTJmLmMtMTc0Ni1cdFx0dmFsMzIgPSBydGw4eHh4dV9yZWFkMzIocHJpdiwgUkVHX0FQU19GU01DTyk7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTkyZi5jPTE5OTU9c3RhdGljIGludCBydGw4MTkyZnVfbGVkX2JyaWdodG5lc3Nfc2V0KHN0cnVjdCBsZWRfY2xhc3NkZXYgKmxlZF9jZGV2LFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE5MmYuYy0yMDI0LVx0XHR1MzJwX3JlcGxhY2VfYml0cyhcdTAwMjZsZWRjZmcsIExFRF9TV19PTiwgTEVEQ0ZHMF9MRUQxU1YpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTkyZi5jOjIwMjU6XHR9IGVsc2UgaWYgKGJyaWdodG5lc3MgPT0gUlRMOFhYWFVfSFdfTEVEX0NPTlRST0wpIHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE5MmYuYy0yMDI2LVx0XHR1MzJwX3JlcGxhY2VfYml0cyhcdTAwMjZsZWRjZmcsIExFRF9NT0RFX1RYX09SX1JYX0VWRU5UUyxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1Lzg3MTBiLmMtMi0vKlxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84NzEwYi5jOjM6ICogUlRMOFhYWFUgbWFjODAyMTEgVVNCIGRyaXZlciAtIDg3MTBidSBha2EgODE4OGd1IHNwZWNpZmljIHN1YmRyaXZlclxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84NzEwYi5jLTQtICpcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1Lzg3MTBiLmM9NDYzPXN0YXRpYyB1MzIgcnRsODcxMGJfaW5kaXJlY3RfcmVhZDMyKHN0cnVjdCBydGw4eHh4dV9wcml2ICpwcml2LCB1MzIgYWRkcilcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1Lzg3MTBiLmMtNDkxLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84NzEwYi5jOjQ5MjpcdGlmIChydGw4eHh4dV9kZWJ1ZyBcdTAwMjYgUlRMOFhYWFVfREVCVUdfUkVHX1JFQUQpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1Lzg3MTBiLmMtNDkzLVx0XHRkZXZfaW5mbyhkZXYsIFwmIzM0OyVzKCUwNHgpID0gMHglMDh4XFxuXCYjMzQ7LCBfX2Z1bmNfXywgYWRkciwgdmFsdWUpO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODcxMGIuYz00OTg9c3RhdGljIHZvaWQgcnRsODcxMGJfaW5kaXJlY3Rfd3JpdGUzMihzdHJ1Y3QgcnRsOHh4eHVfcHJpdiAqcHJpdiwgdTMyIGFkZHIsIHUzMiB2YWwpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84NzEwYi5jLTUyNS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODcxMGIuYzo1MjY6XHRpZiAocnRsOHh4eHVfZGVidWcgXHUwMDI2IFJUTDhYWFhVX0RFQlVHX1JFR19XUklURSlcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODcxMGIuYy01MjctXHRcdGRldl9pbmZvKGRldiwgXCYjMzQ7JXMoJTA0eCkgPSAweCUwOHhcXG5cJiMzNDssIF9fZnVuY19fLCBhZGRyLCB2YWwpO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODcxMGIuYz01NDA9c3RhdGljIGludCBydGw4NzEwYl9yZWFkX2VmdXNlOChzdHJ1Y3QgcnRsOHh4eHVfcHJpdiAqcHJpdiwgdTE2IG9mZnNldCwgdTggKmRhdGEpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84NzEwYi5jLTU1MS1cdHZhbDMyID0gcnRsOHh4eHVfcmVhZDMyKHByaXYsIFJFR19FRlVTRV9JTkRJUkVDVF9DVFJMXzg3MTBCKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODcxMGIuYzo1NTI6XHRmb3IgKGkgPSAwOyBpIFx1MDAzYyBSVEw4WFhYVV9NQVhfUkVHX1BPTEw7IGkmIzQzOyYjNDM7KSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1Lzg3MTBiLmMtNTUzLVx0XHR2YWwzMiA9IHJ0bDh4eHh1X3JlYWQzMihwcml2LCBSRUdfRUZVU0VfSU5ESVJFQ1RfQ1RSTF84NzEwQik7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84NzEwYi5jLTU1Ny1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODcxMGIuYzo1NTg6XHRpZiAoaSA9PSBSVEw4WFhYVV9NQVhfUkVHX1BPTEwpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1Lzg3MTBiLmMtNTU5LVx0XHRyZXR1cm4gLUVJTztcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1Lzg3MTBiLmM9MTI1ND1zdGF0aWMgdm9pZCBydGw4NzEwYnVfcGh5X2lxY2FsaWJyYXRlKHN0cnVjdCBydGw4eHh4dV9wcml2ICpwcml2LFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODcxMGIuYy0xMjYxLVx0aW50IHJldHJ5ID0gMjtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODcxMGIuYzoxMjYyOlx0c3RhdGljIGNvbnN0IHUzMiBhZGRhX3JlZ3NbUlRMOFhYWFVfQUREQV9SRUdTXSA9IHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODcxMGIuYy0xMjYzLVx0XHRSRUdfRlBHQTBfWENEX1NXSVRDSF9DVFJMLCBSRUdfQkxVRVRPT1RILFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODcxMGIuYy0xMjcxLVx0fTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODcxMGIuYzoxMjcyOlx0c3RhdGljIGNvbnN0IHUzMiBpcWtfbWFjX3JlZ3NbUlRMOFhYWFVfTUFDX1JFR1NdID0ge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84NzEwYi5jLTEyNzMtXHRcdFJFR19UWFBBVVNFLCBSRUdfQkVBQ09OX0NUUkwsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84NzEwYi5jLTEyNzUtXHR9O1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84NzEwYi5jOjEyNzY6XHRzdGF0aWMgY29uc3QgdTMyIGlxa19iYl9yZWdzW1JUTDhYWFhVX0JCX1JFR1NdID0ge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84NzEwYi5jLTEyNzctXHRcdFJFR19PRkRNMF9UUlhfUEFUSF9FTkFCTEUsIFJFR19PRkRNMF9UUl9NVVhfUEFSLFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODcxMGIuYy0xMjkyLVx0XHRydGw4eHh4dV9zYXZlX3JlZ3MocHJpdiwgYWRkYV9yZWdzLCBwcml2LVx1MDAzZWFkZGFfYmFja3VwLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84NzEwYi5jOjEyOTM6XHRcdFx0XHQgICBSVEw4WFhYVV9BRERBX1JFR1MpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84NzEwYi5jLTEyOTQtXHRcdHJ0bDh4eHh1X3NhdmVfbWFjX3JlZ3MocHJpdiwgaXFrX21hY19yZWdzLCBwcml2LVx1MDAzZW1hY19iYWNrdXApO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84NzEwYi5jLTEyOTUtXHRcdHJ0bDh4eHh1X3NhdmVfcmVncyhwcml2LCBpcWtfYmJfcmVncyxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODcxMGIuYzoxMjk2Olx0XHRcdFx0ICAgcHJpdi1cdTAwM2ViYl9iYWNrdXAsIFJUTDhYWFhVX0JCX1JFR1MpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84NzEwYi5jLTEyOTctXHR9XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84NzEwYi5jLTEzODAtXHQvKiBSZWxvYWQgQUREQSBwb3dlciBzYXZpbmcgcGFyYW1ldGVycyAqL1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84NzEwYi5jOjEzODE6XHRydGw4eHh4dV9yZXN0b3JlX3JlZ3MocHJpdiwgYWRkYV9yZWdzLCBwcml2LVx1MDAzZWFkZGFfYmFja3VwLCBSVEw4WFhYVV9BRERBX1JFR1MpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84NzEwYi5jLTEzODItXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84NzEwYi5jLTEzODYtXHQvKiBSZWxvYWQgQkIgcGFyYW1ldGVycyAqL1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84NzEwYi5jOjEzODc6XHRydGw4eHh4dV9yZXN0b3JlX3JlZ3MocHJpdiwgaXFrX2JiX3JlZ3MsIHByaXYtXHUwMDNlYmJfYmFja3VwLCBSVEw4WFhYVV9CQl9SRUdTKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODcxMGIuYy0xMzg4LVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODcxMGIuYz0xNDA2PXN0YXRpYyB2b2lkIHJ0bDg3MTBidV9waHlfaXFfY2FsaWJyYXRlKHN0cnVjdCBydGw4eHh4dV9wcml2ICpwcml2KVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODcxMGIuYy0xNDc1LVx0cnRsOHh4eHVfc2F2ZV9yZWdzKHByaXYsIHJ0bDh4eHh1X2lxa19waHlfaXFfYmJfcmVnLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84NzEwYi5jOjE0NzY6XHRcdFx0ICAgcHJpdi1cdTAwM2ViYl9yZWNvdmVyeV9iYWNrdXAsIFJUTDhYWFhVX0JCX1JFR1MpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84NzEwYi5jLTE0NzctXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84NzEwYi5jPTE0ODE9c3RhdGljIGludCBydGw4NzEwYl9lbXVfdG9fYWN0aXZlKHN0cnVjdCBydGw4eHh4dV9wcml2ICpwcml2KVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODcxMGIuYy0xNTAwLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84NzEwYi5jOjE1MDE6XHRmb3IgKGNvdW50ID0gUlRMOFhYWFVfTUFYX1JFR19QT0xMOyBjb3VudDsgY291bnQtLSkge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84NzEwYi5jLTE1MDItXHRcdHZhbDggPSBydGw4eHh4dV9yZWFkOChwcml2LCAweDIwKTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1Lzg3MTBiLmM9MTUxNT1zdGF0aWMgaW50IHJ0bDg3MTBidV9hY3RpdmVfdG9fZW11KHN0cnVjdCBydGw4eHh4dV9wcml2ICpwcml2KVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODcxMGIuYy0xNTM1LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84NzEwYi5jOjE1MzY6XHRmb3IgKGNvdW50ID0gUlRMOFhYWFVfTUFYX1JFR19QT0xMOyBjb3VudDsgY291bnQtLSkge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84NzEwYi5jLTE1MzctXHRcdHZhbDggPSBydGw4eHh4dV9yZWFkOChwcml2LCAweDIwKTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1Lzg3MjNhLmMtMi0vKlxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84NzIzYS5jOjM6ICogUlRMOFhYWFUgbWFjODAyMTEgVVNCIGRyaXZlciAtIDg3MjNhIHNwZWNpZmljIHN1YmRyaXZlclxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84NzIzYS5jLTQtICpcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1Lzg3MjNhLmM9Mjc2PXN0YXRpYyBpbnQgcnRsODcyM2FfZW11X3RvX2FjdGl2ZShzdHJ1Y3QgcnRsOHh4eHVfcHJpdiAqcHJpdilcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1Lzg3MjNhLmMtMzA0LVx0Lyogd2FpdCB0aWxsIDB4MDRbMTddID0gMSBwb3dlciByZWFkeSovXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1Lzg3MjNhLmM6MzA1Olx0Zm9yIChjb3VudCA9IFJUTDhYWFhVX01BWF9SRUdfUE9MTDsgY291bnQ7IGNvdW50LS0pIHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODcyM2EuYy0zMDYtXHRcdHZhbDMyID0gcnRsOHh4eHVfcmVhZDMyKHByaXYsIFJFR19BUFNfRlNNQ08pO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODcyM2EuYy0zMzktXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1Lzg3MjNhLmM6MzQwOlx0Zm9yIChjb3VudCA9IFJUTDhYWFhVX01BWF9SRUdfUE9MTDsgY291bnQ7IGNvdW50LS0pIHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODcyM2EuYy0zNDEtXHRcdHZhbDMyID0gcnRsOHh4eHVfcmVhZDMyKHByaXYsIFJFR19BUFNfRlNNQ08pO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODcyM2EuYz00MTQ9c3RhdGljIGludCBydGw4NzIzYXVfYWN0aXZlX3RvX2VtdShzdHJ1Y3QgcnRsOHh4eHVfcHJpdiAqcHJpdilcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1Lzg3MjNhLmMtNDMzLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84NzIzYS5jOjQzNDpcdGZvciAoY291bnQgPSBSVEw4WFhYVV9NQVhfUkVHX1BPTEw7IGNvdW50OyBjb3VudC0tKSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1Lzg3MjNhLmMtNDM1LVx0XHR2YWw4ID0gcnRsOHh4eHVfcmVhZDgocHJpdiwgUkVHX0FQU19GU01DTyAmIzQzOyAxKTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1Lzg3MjNhLmM9NTc5PXN0YXRpYyBpbnQgcnRsODcyM2F1X2xlZF9icmlnaHRuZXNzX3NldChzdHJ1Y3QgbGVkX2NsYXNzZGV2ICpsZWRfY2Rldixcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1Lzg3MjNhLmMtNTkyLVx0XHRsZWRjZmcgfD0gTEVEQ0ZHMl9TV19MRURfQ09OVFJPTDtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODcyM2EuYzo1OTM6XHR9IGVsc2UgaWYgKGJyaWdodG5lc3MgPT0gUlRMOFhYWFVfSFdfTEVEX0NPTlRST0wpIHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODcyM2EuYy01OTQtXHRcdGxlZGNmZyBcdTAwMjY9IH5MRURDRkcyX1NXX0xFRF9ESVNBQkxFO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODcyM2IuYy0yLS8qXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1Lzg3MjNiLmM6MzogKiBSVEw4WFhYVSBtYWM4MDIxMSBVU0IgZHJpdmVyIC0gODcyM2Igc3BlY2lmaWMgc3ViZHJpdmVyXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1Lzg3MjNiLmMtNC0gKlxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODcyM2IuYz04OTQ9c3RhdGljIHZvaWQgcnRsODcyM2J1X3BoeV9pcWNhbGlicmF0ZShzdHJ1Y3QgcnRsOHh4eHVfcHJpdiAqcHJpdixcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1Lzg3MjNiLmMtOTAwLVx0aW50IHJldHJ5ID0gMjtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODcyM2IuYzo5MDE6XHRzdGF0aWMgY29uc3QgdTMyIGFkZGFfcmVnc1tSVEw4WFhYVV9BRERBX1JFR1NdID0ge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84NzIzYi5jLTkwMi1cdFx0UkVHX0ZQR0EwX1hDRF9TV0lUQ0hfQ1RSTCwgUkVHX0JMVUVUT09USCxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1Lzg3MjNiLmMtOTEwLVx0fTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODcyM2IuYzo5MTE6XHRzdGF0aWMgY29uc3QgdTMyIGlxa19tYWNfcmVnc1tSVEw4WFhYVV9NQUNfUkVHU10gPSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1Lzg3MjNiLmMtOTEyLVx0XHRSRUdfVFhQQVVTRSwgUkVHX0JFQUNPTl9DVFJMLFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODcyM2IuYy05MTQtXHR9O1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84NzIzYi5jOjkxNTpcdHN0YXRpYyBjb25zdCB1MzIgaXFrX2JiX3JlZ3NbUlRMOFhYWFVfQkJfUkVHU10gPSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1Lzg3MjNiLmMtOTE2LVx0XHRSRUdfT0ZETTBfVFJYX1BBVEhfRU5BQkxFLCBSRUdfT0ZETTBfVFJfTVVYX1BBUixcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1Lzg3MjNiLmMtOTMxLVx0XHRydGw4eHh4dV9zYXZlX3JlZ3MocHJpdiwgYWRkYV9yZWdzLCBwcml2LVx1MDAzZWFkZGFfYmFja3VwLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84NzIzYi5jOjkzMjpcdFx0XHRcdCAgIFJUTDhYWFhVX0FEREFfUkVHUyk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1Lzg3MjNiLmMtOTMzLVx0XHRydGw4eHh4dV9zYXZlX21hY19yZWdzKHByaXYsIGlxa19tYWNfcmVncywgcHJpdi1cdTAwM2VtYWNfYmFja3VwKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODcyM2IuYy05MzQtXHRcdHJ0bDh4eHh1X3NhdmVfcmVncyhwcml2LCBpcWtfYmJfcmVncyxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODcyM2IuYzo5MzU6XHRcdFx0XHQgICBwcml2LVx1MDAzZWJiX2JhY2t1cCwgUlRMOFhYWFVfQkJfUkVHUyk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1Lzg3MjNiLmMtOTM2LVx0fVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODcyM2IuYy0xMDcxLVx0XHRydGw4eHh4dV9yZXN0b3JlX3JlZ3MocHJpdiwgYWRkYV9yZWdzLCBwcml2LVx1MDAzZWFkZGFfYmFja3VwLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84NzIzYi5jOjEwNzI6XHRcdFx0XHQgICAgICBSVEw4WFhYVV9BRERBX1JFR1MpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84NzIzYi5jLTEwNzMtXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84NzIzYi5jLTEwNzgtXHRcdHJ0bDh4eHh1X3Jlc3RvcmVfcmVncyhwcml2LCBpcWtfYmJfcmVncyxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODcyM2IuYzoxMDc5Olx0XHRcdFx0ICAgICAgcHJpdi1cdTAwM2ViYl9iYWNrdXAsIFJUTDhYWFhVX0JCX1JFR1MpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84NzIzYi5jLTEwODAtXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84NzIzYi5jPTExMDI9c3RhdGljIHZvaWQgcnRsODcyM2J1X3BoeV9pcV9jYWxpYnJhdGUoc3RydWN0IHJ0bDh4eHh1X3ByaXYgKnByaXYpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84NzIzYi5jLTEyMDQtXHRydGw4eHh4dV9zYXZlX3JlZ3MocHJpdiwgcnRsOHh4eHVfaXFrX3BoeV9pcV9iYl9yZWcsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1Lzg3MjNiLmM6MTIwNTpcdFx0XHQgICBwcml2LVx1MDAzZWJiX3JlY292ZXJ5X2JhY2t1cCwgUlRMOFhYWFVfQkJfUkVHUyk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1Lzg3MjNiLmMtMTIwNi1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1Lzg3MjNiLmM9MTIyNj1zdGF0aWMgaW50IHJ0bDg3MjNidV9hY3RpdmVfdG9fZW11KHN0cnVjdCBydGw4eHh4dV9wcml2ICpwcml2KVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODcyM2IuYy0xMjUwLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84NzIzYi5jOjEyNTE6XHRmb3IgKGNvdW50ID0gUlRMOFhYWFVfTUFYX1JFR19QT0xMOyBjb3VudDsgY291bnQtLSkge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84NzIzYi5jLTEyNTItXHRcdHZhbDggPSBydGw4eHh4dV9yZWFkOChwcml2LCBSRUdfQVBTX0ZTTUNPICYjNDM7IDEpO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODcyM2IuYz0xMjg0PXN0YXRpYyBpbnQgcnRsODcyM2JfZW11X3RvX2FjdGl2ZShzdHJ1Y3QgcnRsOHh4eHVfcHJpdiAqcHJpdilcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1Lzg3MjNiLmMtMTMxMi1cdC8qIFdhaXQgdW50aWwgMHgwNFsxN10gPSAxIHBvd2VyIHJlYWR5ICovXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1Lzg3MjNiLmM6MTMxMzpcdGZvciAoY291bnQgPSBSVEw4WFhYVV9NQVhfUkVHX1BPTEw7IGNvdW50OyBjb3VudC0tKSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1Lzg3MjNiLmMtMTMxNC1cdFx0dmFsMzIgPSBydGw4eHh4dV9yZWFkMzIocHJpdiwgUkVHX0FQU19GU01DTyk7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84NzIzYi5jLTEzNDctXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1Lzg3MjNiLmM6MTM0ODpcdGZvciAoY291bnQgPSBSVEw4WFhYVV9NQVhfUkVHX1BPTEw7IGNvdW50OyBjb3VudC0tKSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1Lzg3MjNiLmMtMTM0OS1cdFx0dmFsMzIgPSBydGw4eHh4dV9yZWFkMzIocHJpdiwgUkVHX0FQU19GU01DTyk7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84NzIzYi5jPTE2ODg9c3RhdGljIGludCBydGw4NzIzYnVfbGVkX2JyaWdodG5lc3Nfc2V0KHN0cnVjdCBsZWRfY2xhc3NkZXYgKmxlZF9jZGV2LFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODcyM2IuYy0xNzAxLVx0XHRsZWRjZmcgfD0gTEVEQ0ZHMl9TV19MRURfQ09OVFJPTDtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODcyM2IuYzoxNzAyOlx0ZWxzZSBpZiAoYnJpZ2h0bmVzcyA9PSBSVEw4WFhYVV9IV19MRURfQ09OVFJPTClcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODcyM2IuYy0xNzAzLVx0XHRsZWRjZmcgfD0gTEVEQ0ZHMl9IV19MRURfQ09OVFJPTCB8IExFRENGRzJfSFdfTEVEX0VOQUJMRTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1L0tjb25maWctMi0jXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1L0tjb25maWc6MzojIFJUTDhYWFhVIFdpcmVsZXNzIExBTiBkZXZpY2UgY29uZmlndXJhdGlvblxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS9LY29uZmlnLTQtI1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS9LY29uZmlnOjU6Y29uZmlnIFJUTDhYWFhVXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1L0tjb25maWctNi1cdHRyaXN0YXRlIFwmIzM0O1JlYWx0ZWsgODAyLjExbiBVU0Igd2lyZWxlc3MgY2hpcHMgc3VwcG9ydFwmIzM0O1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvS2NvbmZpZy0yOC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvS2NvbmZpZzoyOTpjb25maWcgUlRMOFhYWFVfVU5URVNURURcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvS2NvbmZpZy0zMC1cdGJvb2wgXCYjMzQ7SW5jbHVkZSBzdXBwb3J0IGZvciB1bnRlc3RlZCBSZWFsdGVrIDh4eHggVVNCIGRldmljZXMgKEVYUEVSSU1FTlRBTClcJiMzNDtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvS2NvbmZpZzozMTpcdGRlcGVuZHMgb24gUlRMOFhYWFVcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvS2NvbmZpZy0zMi1cdGhlbHBcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1L01ha2VmaWxlLTEtIyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMC1vbmx5XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1L01ha2VmaWxlOjI6b2JqLSQoQ09ORklHX1JUTDhYWFhVKVx0JiM0Mzs9IHJ0bDh4eHh1Lm9cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvTWFrZWZpbGUtMy1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1L2NvcmUuYy0yLS8qXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1L2NvcmUuYzozOiAqIFJUTDhYWFhVIG1hYzgwMjExIFVTQiBkcml2ZXJcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvY29yZS5jLTQtICpcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1L2NvcmUuYz01Mj1NT0RVTEVfUEFSTV9ERVNDKGRtYV9hZ2dfcGFnZXMsIFwmIzM0O1NldCBETUEgYWdncmVnYXRpb24gcGFnZXMgKHJhbmdlIDEtMTI3LCAwIHRvIGRpc2FibGUpXCYjMzQ7KTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1L2NvcmUuYy01NC0jZGVmaW5lIFVTQl9WRU5ET1JfSURfUkVBTFRFS1x0XHQweDBiZGFcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvY29yZS5jOjU1OiNkZWZpbmUgUlRMOFhYWFVfUlhfVVJCU1x0XHQzMlxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS9jb3JlLmM6NTY6I2RlZmluZSBSVEw4WFhYVV9SWF9VUkJfUEVORElOR19XQVRFUlx0OFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS9jb3JlLmM6NTc6I2RlZmluZSBSVEw4WFhYVV9UWF9VUkJTXHRcdDY0XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1L2NvcmUuYzo1ODojZGVmaW5lIFJUTDhYWFhVX1RYX1VSQl9MT1dfV0FURVJcdDI1XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1L2NvcmUuYzo1OTojZGVmaW5lIFJUTDhYWFhVX1RYX1VSQl9ISUdIX1dBVEVSXHQzMlxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS9jb3JlLmMtNjAtXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS9jb3JlLmM9NTgwPXN0YXRpYyBjb25zdCBzdHJ1Y3QgcnRsOHh4eHVfcmZyZWdzIHJ0bDh4eHh1X3JmcmVnc1tdID0ge1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvY29yZS5jLTU5OC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvY29yZS5jOjU5OTpjb25zdCB1MzIgcnRsOHh4eHVfaXFrX3BoeV9pcV9iYl9yZWdbUlRMOFhYWFVfQkJfUkVHU10gPSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1L2NvcmUuYy02MDAtXHRSRUdfT0ZETTBfWEFfUlhfSVFfSU1CQUxBTkNFLFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvY29yZS5jPTYxMT11OCBydGw4eHh4dV9yZWFkOChzdHJ1Y3QgcnRsOHh4eHVfcHJpdiAqcHJpdiwgdTE2IGFkZHIpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS9jb3JlLmMtNjI3LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS9jb3JlLmM6NjI4Olx0aWYgKHJ0bDh4eHh1X2RlYnVnIFx1MDAyNiBSVEw4WFhYVV9ERUJVR19SRUdfUkVBRClcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvY29yZS5jLTYyOS1cdFx0ZGV2X2luZm8oXHUwMDI2dWRldi1cdTAwM2VkZXYsIFwmIzM0OyVzKCUwNHgpICAgPSAweCUwMngsIGxlbiAlaVxcblwmIzM0Oyxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1L2NvcmUuYz02MzQ9dTE2IHJ0bDh4eHh1X3JlYWQxNihzdHJ1Y3QgcnRsOHh4eHVfcHJpdiAqcHJpdiwgdTE2IGFkZHIpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS9jb3JlLmMtNjUwLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS9jb3JlLmM6NjUxOlx0aWYgKHJ0bDh4eHh1X2RlYnVnIFx1MDAyNiBSVEw4WFhYVV9ERUJVR19SRUdfUkVBRClcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvY29yZS5jLTY1Mi1cdFx0ZGV2X2luZm8oXHUwMDI2dWRldi1cdTAwM2VkZXYsIFwmIzM0OyVzKCUwNHgpICA9IDB4JTA0eCwgbGVuICVpXFxuXCYjMzQ7LFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvY29yZS5jPTY1Nz11MzIgcnRsOHh4eHVfcmVhZDMyKHN0cnVjdCBydGw4eHh4dV9wcml2ICpwcml2LCB1MTYgYWRkcilcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1L2NvcmUuYy02NzMtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1L2NvcmUuYzo2NzQ6XHRpZiAocnRsOHh4eHVfZGVidWcgXHUwMDI2IFJUTDhYWFhVX0RFQlVHX1JFR19SRUFEKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS9jb3JlLmMtNjc1LVx0XHRkZXZfaW5mbyhcdTAwMjZ1ZGV2LVx1MDAzZWRldiwgXCYjMzQ7JXMoJTA0eCkgID0gMHglMDh4LCBsZW4gJWlcXG5cJiMzNDssXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS9jb3JlLmM9NjgwPWludCBydGw4eHh4dV93cml0ZTgoc3RydWN0IHJ0bDh4eHh1X3ByaXYgKnByaXYsIHUxNiBhZGRyLCB1OCB2YWwpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS9jb3JlLmMtNjk2LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS9jb3JlLmM6Njk3Olx0aWYgKHJ0bDh4eHh1X2RlYnVnIFx1MDAyNiBSVEw4WFhYVV9ERUJVR19SRUdfV1JJVEUpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1L2NvcmUuYy02OTgtXHRcdGRldl9pbmZvKFx1MDAyNnVkZXYtXHUwMDNlZGV2LCBcJiMzNDslcyglMDR4KSA9IDB4JTAyeFxcblwmIzM0Oyxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1L2NvcmUuYz03MDM9aW50IHJ0bDh4eHh1X3dyaXRlMTYoc3RydWN0IHJ0bDh4eHh1X3ByaXYgKnByaXYsIHUxNiBhZGRyLCB1MTYgdmFsKVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvY29yZS5jLTcxOC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvY29yZS5jOjcxOTpcdGlmIChydGw4eHh4dV9kZWJ1ZyBcdTAwMjYgUlRMOFhYWFVfREVCVUdfUkVHX1dSSVRFKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS9jb3JlLmMtNzIwLVx0XHRkZXZfaW5mbyhcdTAwMjZ1ZGV2LVx1MDAzZWRldiwgXCYjMzQ7JXMoJTA0eCkgPSAweCUwNHhcXG5cJiMzNDssXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS9jb3JlLmM9NzI1PWludCBydGw4eHh4dV93cml0ZTMyKHN0cnVjdCBydGw4eHh4dV9wcml2ICpwcml2LCB1MTYgYWRkciwgdTMyIHZhbClcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1L2NvcmUuYy03NDAtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1L2NvcmUuYzo3NDE6XHRpZiAocnRsOHh4eHVfZGVidWcgXHUwMDI2IFJUTDhYWFhVX0RFQlVHX1JFR19XUklURSlcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvY29yZS5jLTc0Mi1cdFx0ZGV2X2luZm8oXHUwMDI2dWRldi1cdTAwM2VkZXYsIFwmIzM0OyVzKCUwNHgpID0gMHglMDh4XFxuXCYjMzQ7LFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvY29yZS5jPTgyNz1ydGw4eHh4dV93cml0ZU4oc3RydWN0IHJ0bDh4eHh1X3ByaXYgKnByaXYsIHUxNiBhZGRyLCB1OCAqYnVmLCB1MTYgbGVuKVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvY29yZS5jLTg1OS13cml0ZV9lcnJvcjpcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvY29yZS5jOjg2MDpcdGlmIChydGw4eHh4dV9kZWJ1ZyBcdTAwMjYgUlRMOFhYWFVfREVCVUdfUkVHX1dSSVRFKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS9jb3JlLmMtODYxLVx0XHRkZXZfaW5mbyhcdTAwMjZ1ZGV2LVx1MDAzZWRldixcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1L2NvcmUuYz04Njc9dTMyIHJ0bDh4eHh1X3JlYWRfcmZyZWcoc3RydWN0IHJ0bDh4eHh1X3ByaXYgKnByaXYsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS9jb3JlLmMtOTAwLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS9jb3JlLmM6OTAxOlx0aWYgKHJ0bDh4eHh1X2RlYnVnIFx1MDAyNiBSVEw4WFhYVV9ERUJVR19SRlJFR19SRUFEKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS9jb3JlLmMtOTAyLVx0XHRkZXZfaW5mbyhcdTAwMjZwcml2LVx1MDAzZXVkZXYtXHUwMDNlZGV2LCBcJiMzNDslcyglMDJ4KSA9IDB4JTA2eFxcblwmIzM0Oyxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1L2NvcmUuYz05MTI9aW50IHJ0bDh4eHh1X3dyaXRlX3JmcmVnKHN0cnVjdCBydGw4eHh4dV9wcml2ICpwcml2LFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvY29yZS5jLTkxNy1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvY29yZS5jOjkxODpcdGlmIChydGw4eHh4dV9kZWJ1ZyBcdTAwMjYgUlRMOFhYWFVfREVCVUdfUkZSRUdfV1JJVEUpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1L2NvcmUuYy05MTktXHRcdGRldl9pbmZvKFx1MDAyNnByaXYtXHUwMDNldWRldi1cdTAwM2VkZXYsIFwmIzM0OyVzKCUwMngpID0gMHglMDZ4XFxuXCYjMzQ7LFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvY29yZS5jPTk1MD1ydGw4eHh4dV9nZW4xX2gyY19jbWQoc3RydWN0IHJ0bDh4eHh1X3ByaXYgKnByaXYsIHN0cnVjdCBoMmNfY21kICpoMmMsIGludCBsZW4pXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS9jb3JlLmMtOTgzLVx0XHRydGw4eHh4dV93cml0ZTE2KHByaXYsIG1ib3hfZXh0X3JlZywgbGUxNl90b19jcHUoaDJjLVx1MDAzZXJhdy5leHQpKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvY29yZS5jOjk4NDpcdFx0aWYgKHJ0bDh4eHh1X2RlYnVnIFx1MDAyNiBSVEw4WFhYVV9ERUJVR19IMkMpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1L2NvcmUuYy05ODUtXHRcdFx0ZGV2X2luZm8oZGV2LCBcJiMzNDtIMkNfRVhUICUwNHhcXG5cJiMzNDssXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS9jb3JlLmMtOTg4LVx0cnRsOHh4eHVfd3JpdGUzMihwcml2LCBtYm94X3JlZywgbGUzMl90b19jcHUoaDJjLVx1MDAzZXJhdy5kYXRhKSk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1L2NvcmUuYzo5ODk6XHRpZiAocnRsOHh4eHVfZGVidWcgXHUwMDI2IFJUTDhYWFhVX0RFQlVHX0gyQylcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvY29yZS5jLTk5MC1cdFx0ZGV2X2luZm8oZGV2LCBcJiMzNDtIMkMgJTA4eFxcblwmIzM0OywgbGUzMl90b19jcHUoaDJjLVx1MDAzZXJhdy5kYXRhKSk7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS9jb3JlLmM9MTAwMD1ydGw4eHh4dV9nZW4yX2gyY19jbWQoc3RydWN0IHJ0bDh4eHh1X3ByaXYgKnByaXYsIHN0cnVjdCBoMmNfY21kICpoMmMsIGludCBsZW4pXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS9jb3JlLmMtMTAzNC1cdFx0XHRcdCBsZTMyX3RvX2NwdShoMmMtXHUwMDNlcmF3X3dpZGUuZXh0KSk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1L2NvcmUuYzoxMDM1Olx0XHRpZiAocnRsOHh4eHVfZGVidWcgXHUwMDI2IFJUTDhYWFhVX0RFQlVHX0gyQylcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvY29yZS5jLTEwMzYtXHRcdFx0ZGV2X2luZm8oZGV2LCBcJiMzNDtIMkNfRVhUICUwOHhcXG5cJiMzNDssXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS9jb3JlLmMtMTAzOS1cdHJ0bDh4eHh1X3dyaXRlMzIocHJpdiwgbWJveF9yZWcsIGxlMzJfdG9fY3B1KGgyYy1cdTAwM2VyYXcuZGF0YSkpO1xuXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+NS8yPC90ZD4KCQkJPHRkPjIwMjYvMDYvMzAgMDQ6MzQ8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMTg3OTcKCQkJCQkJCW91dHB1dDogNDQKCQkJCQkJCXRob3VnaHRzOiAyNTYKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqQW5hbHl6aW5nIGEgRnVuY3Rpb25hbCBDaGFuZ2UgaW4gdGhlIFJUTDhYWFhVIERyaXZlcioqCgpPa2F5LCBzbyB0aGUgY29uZmlnIGluIHF1ZXN0aW9uIGhlcmUgaXMgYENPTkZJR19SVEw4WFhYVWAuIEZpcnN0IHRob3VnaHQ6IEkgbmVlZCB0byBxdWlja2x5IGNvbmZpcm0gaWYgdGhpcyBjb25maWcgaXMgZXZlbiBlbmFibGVkIGluIHN5emJvdCYjMzk7cyBlbnZpcm9ubWVudC4gQWhhLCB3YWl0IGEgc2Vjb25kLiBUaGUgZmFjdCB0aGF0IHN5emJvdCByZXBvcnRlZCB0aGUgcGF0Y2ggKm1lYW5zKiBpdCYjMzk7cyBlbmFibGVkLCByaWdodD8gR29vZC4KCk5vdywgdGhlIHBhdGNoIGl0c2VsZi4uLiBpdCYjMzk7cyBtb3ZpbmcgYHNjaGVkdWxlX3dvcmsoJmFtcDtwcml2LSZndDtyeF91cmJfd3EpO2AgaW5zaWRlIGEgbG9jayBhbmQgYWRkaW5nIGBjYW5jZWxfd29ya19zeW5jKCZhbXA7cHJpdi0mZ3Q7cnhfdXJiX3dxKTtgIGluIGBydGw4eHh4dV9zdG9wYC4gVGhpcyBzbWVsbHMgbGlrZSBhIGZ1bmN0aW9uYWwgZml4IOKAkyBsaWtlbHkgYWRkcmVzc2luZyBhIHJhY2UgY29uZGl0aW9uIGJldHdlZW4gd29ya3F1ZXVlIHNjaGVkdWxpbmcgYW5kIGNhbmNlbGxhdGlvbi4gVGhpcyBpcyB0aGUgYHJ0bDh4eHh1YCBkcml2ZXIsIHNvIEkgbmVlZCB0byBhc3Nlc3Mgd2hldGhlciBmdXp6aW5nIGlzIHdhcnJhbnRlZC4KCkdpdmVuIHRoYXQgaXTigJlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgKmFuZCogdGhhdCBzeXpib3QgY2xlYXJseSBjYXJlcyBhYm91dCB0aGlzIGRyaXZlciAoaXQmIzM5O3MgdGhlIHNvdXJjZSBvZiB0aGlzIHJlcG9ydCksIHRoZSBhbnN3ZXIgaXMgYSByZXNvdW5kaW5nIHllcy4gTGV0JiMzOTtzIHNlZS4uLiB0aGUgYXV0aG9yIGlzIGxpc3RlZCBhcyBgc3l6LWNsdXN0ZXIgJmx0O3RyaWFnZUBzeXprYWxsZXIuY29tJmd0O2AsIHdoaWNoIGlzIGEgcHJldHR5IGNsZWFyIGluZGljYXRvcjogVGhpcyBpcyBlaXRoZXIgYSByZXByb2R1Y2VyIG9yIGEgYnVnIGZvdW5kIGJ5IHN5emJvdCBpdHNlbGYuCgpUbyBkaWcgaW4sIEkgbmVlZCB0byBsb29rIGF0IHRoZSBzcGVjaWZpYyBmdW5jdGlvbnMgbW9kaWZpZWQuIE9rYXksIGBydGw4eHh4dV9xdWV1ZV9yeF91cmJgIGFuZCBgcnRsOHh4eHVfc3RvcGAuIExldCYjMzk7cyBwdWxsIHVwIHRob3NlIGZ1bmN0aW9ucyBhbmQgc2VlIHdoYXQmIzM5O3MgYWN0dWFsbHkgaGFwcGVuaW5nLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjYvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA2LzMwIDA0OjM0PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O3J0bDh4eHh1X3F1ZXVlX3J4X3VyYiYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvY29yZS5jPTU3NzM9c3RhdGljIHZvaWQgcnRsOHh4eHVfZnJlZV9yeF9yZXNvdXJjZXMoc3RydWN0IHJ0bDh4eHh1X3ByaXYgKnByaXYpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS9jb3JlLmMtNTc4OS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvY29yZS5jOjU3OTA6c3RhdGljIHZvaWQgcnRsOHh4eHVfcXVldWVfcnhfdXJiKHN0cnVjdCBydGw4eHh4dV9wcml2ICpwcml2LFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS9jb3JlLmMtNTc5MS1cdFx0XHRcdCAgc3RydWN0IHJ0bDh4eHh1X3J4X3VyYiAqcnhfdXJiKVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvY29yZS5jPTU4MTc9c3RhdGljIHZvaWQgcnRsOHh4eHVfcnhfdXJiX3dvcmsoc3RydWN0IHdvcmtfc3RydWN0ICp3b3JrKVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvY29yZS5jLTU4NDgtXHRcdGNhc2UgLUVBR0FJTjpcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvY29yZS5jOjU4NDk6XHRcdFx0cnRsOHh4eHVfcXVldWVfcnhfdXJiKHByaXYsIHJ4X3VyYik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1L2NvcmUuYy01ODUwLVx0XHRcdGJyZWFrO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvY29yZS5jPTY1MDA9c3RhdGljIHZvaWQgcnRsOHh4eHVfcnhfY29tcGxldGUoc3RydWN0IHVyYiAqdXJiKVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvY29yZS5jLTY1MTUtXHRcdHJ4X3VyYi1cdTAwM2V1cmIuY29udGV4dCA9IE5VTEw7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1L2NvcmUuYzo2NTE2Olx0XHRydGw4eHh4dV9xdWV1ZV9yeF91cmIocHJpdiwgcnhfdXJiKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvY29yZS5jLTY1MTctXHR9IGVsc2Uge1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvY29yZS5jPTczNjM9c3RhdGljIGludCBydGw4eHh4dV9zdGFydChzdHJ1Y3QgaWVlZTgwMjExX2h3ICpodylcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1L2NvcmUuYy03NDIzLVx0XHRcdH1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvY29yZS5jOjc0MjQ6XHRcdFx0cnRsOHh4eHVfcXVldWVfcnhfdXJiKHByaXYsIHJ4X3VyYik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1L2NvcmUuYy03NDI1LVx0XHR9XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Ny8yPC90ZD4KCQkJPHRkPjIwMjYvMDYvMzAgMDQ6MzQ8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMjAwMjcKCQkJCQkJCW91dHB1dDogNDAKCQkJCQkJCXRob3VnaHRzOiAzMzIKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqQW5hbHl6aW5nIFBvdGVudGlhbCBSYWNlIENvbmRpdGlvbnMgaW4gdGhlIFJUTDh4eHh1IERyaXZlcioqCgpPa2F5LCBzbyBJJiMzOTttIGxvb2tpbmcgYXQgc29tZSBmdW5jdGlvbnMgd2l0aGluIHRoZSBgcnRsOHh4eHVgIGRyaXZlcjogYHJ0bDh4eHh1X3F1ZXVlX3J4X3VyYmAgYW5kIGBydGw4eHh4dV9zdG9wYC4gSSBjYW4gc2VlIHRoYXQgYHJ0bDh4eHh1X3F1ZXVlX3J4X3VyYmAgaXMgY2FsbGVkIGZyb20gYSBmZXcgcGxhY2VzOiBgcnRsOHh4eHVfcnhfY29tcGxldGVgICh3aGljaCBpcyB0aGUgVVJCIGNvbXBsZXRpb24gaGFuZGxlciwgaW1wb3J0YW50ISksIGBydGw4eHh4dV9yeF91cmJfd29ya2AsIGFuZCBhbHNvIGR1cmluZyBgcnRsOHh4eHVfc3RhcnRgLiBBbmQgYHJ0bDh4eHh1X3N0b3BgIGdldHMgY2FsbGVkIHdoZW4gdGhlIG5ldHdvcmsgaW50ZXJmYWNlIGlzIHNodXQgZG93biwgd2hpY2ggaXMgYSBrZXkgYXJlYSB0byBjb25zaWRlci4KClRoaXMgbG9va3MgbGlrZSBhIGZ1bmN0aW9uYWwgY2hhbmdlLCBub3RoaW5nIGdyb3VuZGJyZWFraW5nLCBidXQgdGhpcyBpcyBhIGdvb2QgcGxhY2UgdG8gc3RhcnQgdGhlIGFuYWx5c2lzLiBTbywgbGV0JiMzOTtzIHpvb20gaW4gb24gYHJ0bDh4eHh1X3F1ZXVlX3J4X3VyYmAgYW5kIGBydGw4eHh4dV9zdG9wYC4gSSYjMzk7bSBzdGFydGluZyB0byB0aGluayBhYm91dCBwb3RlbnRpYWwgcmFjZSBjb25kaXRpb25zLiBIbW0sIGBydGw4eHh4dV9xdWV1ZV9yeF91cmJgIGlzIGNhbGxlZCBmcm9tIHRoZSBVUkIgY29tcGxldGlvbiBoYW5kbGVyLi4uIHRoYXQgY291bGQgYmUgYSAqaG90IHBhdGgqLiBNZWFuaW5nIHRoaXMgbWlnaHQgYmUgZnJlcXVlbnRseSBoaXQsIHBvdGVudGlhbGx5IGEgcGVyZm9ybWFuY2UgYm90dGxlbmVjay4KCkxldCYjMzk7cyBxdWlja2x5IGNoZWNrIGlmIHRoaXMgaXMgdGhlIGNhc2UuIGBydGw4eHh4dV9xdWV1ZV9yeF91cmJgIHF1ZXVlcyBhbiBSWCBVUkIuIEluIGhpZ2ggdGhyb3VnaHB1dCwgaXQmIzM5O3MgY2FsbGVkIGZvciAqZXZlcnkqIHBhY2tldCBvciBhIGJhdGNoIG9mIHBhY2tldHMuIFRoYXQgZGVmaW5pdGVseSBtYWtlcyBpdCBhIGhvdCBwYXRoLiBBbmQgaXMgYHJ0bDh4eHh1X3J4X2NvbXBsZXRlYCBhIGhvdCBwYXRoPyBZZXMsIG9mIGNvdXJzZS4gSXQmIzM5O3MgdGhlIFJYIFVSQiBjb21wbGV0aW9uIGhhbmRsZXIhIFdoYXQgYWJvdXQgYHJ0bDh4eHh1X3N0b3BgPyBObywgdGhhdCBpcyBjYWxsZWQgb25seSB3aGVuIHRoZSBpbnRlcmZhY2UgaXMgZG93biwgc28gbm90IGEgaG90IHBhdGguCgpBbHJpZ2h0LCBzbyBpZiBJIHdhbnQgdG8gZnV6eiB0aGlzIGNvZGUgYW5kIGxvb2sgZm9yIGEgcmFjZSwgSSB0aGluayB0aGUgbW9zdCBpbnRlcmVzdGluZyBhcmVhcyB3b3VsZCBiZSBhcm91bmQgYHJ0bDh4eHh1X3N0b3BgLi4uIGFuZCBtYXliZSBgcnRsOHh4eHVfc3RhcnRgIG9yIGBydGw4eHh4dV9xdWV1ZV9yeF91cmJgLiBBY3R1YWxseSwgYHJ0bDh4eHh1X3N0b3BgIHNlZW1zIGxpa2UgdGhlIGJlc3Qgb25lIHRvIGZvY3VzIG9uIGdpdmVuIHRoYXQgaXRzIGNhbGxlZCB3aGVuIHRoZSBuZXR3b3JrIGlzIHN0b3BwZWQsIHdoaWNoIGNhbiBjYXVzZSBpbnRlcmVzdGluZyBzaXR1YXRpb25zLiBUaW1lIHRvIGRpZyBpbnRvIGBydGw4eHh4dV9zdG9wYC4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD44LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNi8zMCAwNDozNDwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtydGw4eHh4dV9zdG9wJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS8mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS9jb3JlLmM9MTA5ND12b2lkIHJ0bDh4eHh1X2dlbjFfZGlzYWJsZV9yZihzdHJ1Y3QgcnRsOHh4eHVfcHJpdiAqcHJpdilcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1L2NvcmUuYy0xMTMyLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS9jb3JlLmM6MTEzMzpzdGF0aWMgdm9pZCBydGw4eHh4dV9zdG9wX3R4X2JlYWNvbihzdHJ1Y3QgcnRsOHh4eHVfcHJpdiAqcHJpdilcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvY29yZS5jLTExMzQte1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvY29yZS5jPTQ4NDc9cnRsOHh4eHVfYnNzX2luZm9fY2hhbmdlZChzdHJ1Y3QgaWVlZTgwMjExX2h3ICpodywgc3RydWN0IGllZWU4MDIxMV92aWYgKnZpZixcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1L2NvcmUuYy00OTEyLVx0XHRcdGlmIChydGx2aWYtXHUwMDNlcG9ydF9udW0gPT0gMClcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvY29yZS5jOjQ5MTM6XHRcdFx0XHRydGw4eHh4dV9zdG9wX3R4X2JlYWNvbihwcml2KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvY29yZS5jLTQ5MTQtXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS9jb3JlLmMtNDk2Ny1cdFx0fSBlbHNlIHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvY29yZS5jOjQ5Njg6XHRcdFx0cnRsOHh4eHVfc3RvcF90eF9iZWFjb24ocHJpdik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1L2NvcmUuYy00OTY5LVx0XHR9XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS9jb3JlLmM9NTc5MD1zdGF0aWMgdm9pZCBydGw4eHh4dV9xdWV1ZV9yeF91cmIoc3RydWN0IHJ0bDh4eHh1X3ByaXYgKnByaXYsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS9jb3JlLmMtNTgwMy1cdFx0ICogc2h1dGRvd24gY2hlY2s6IG1vdmluZyBpdCBvdXQgb2YgdGhlIGxvY2sgd291bGQgbGV0IGFcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvY29yZS5jOjU4MDQ6XHRcdCAqIGNvbXBsZXRpb24gYXJtIHRoZSB3b3JrIGFmdGVyIHJ0bDh4eHh1X3N0b3AoKSBjYW5jZWxlZCBpdC5cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvY29yZS5jLTU4MDUtXHRcdCAqL1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvY29yZS5jPTY2ODk9c3RhdGljIGludCBydGw4eHh4dV9hZGRfaW50ZXJmYWNlKHN0cnVjdCBpZWVlODAyMTFfaHcgKmh3LFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvY29yZS5jLTY3MDYtXHRcdGlmIChwb3J0X251bSA9PSAwKSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1L2NvcmUuYzo2NzA3Olx0XHRcdHJ0bDh4eHh1X3N0b3BfdHhfYmVhY29uKHByaXYpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS9jb3JlLmMtNjcwOC1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1L2NvcmUuYz03MzYzPXN0YXRpYyBpbnQgcnRsOHh4eHVfc3RhcnQoc3RydWN0IGllZWU4MDIxMV9odyAqaHcpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS9jb3JlLmMtNzQ1MS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvY29yZS5jOjc0NTI6c3RhdGljIHZvaWQgcnRsOHh4eHVfc3RvcChzdHJ1Y3QgaWVlZTgwMjExX2h3ICpodywgYm9vbCBzdXNwZW5kKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS9jb3JlLmMtNzQ1My17XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS9jb3JlLmM9NzU0OD1zdGF0aWMgY29uc3Qgc3RydWN0IGllZWU4MDIxMV9vcHMgcnRsOHh4eHVfb3BzID0ge1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvY29yZS5jLTc1NjMtXHQuc3RhcnQgPSBydGw4eHh4dV9zdGFydCxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvY29yZS5jOjc1NjQ6XHQuc3RvcCA9IHJ0bDh4eHh1X3N0b3AsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1L2NvcmUuYy03NTY1LVx0LnN3X3NjYW5fc3RhcnQgPSBydGw4eHh4dV9zd19zY2FuX3N0YXJ0LFxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjkvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA2LzMwIDA0OjM0PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDIxOTA1CgkJCQkJCQlvdXRwdXQ6IDQzCgkJCQkJCQl0aG91Z2h0czogMjczCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKk15IEFuYWx5c2lzIG9mIHRoZSBSVEw4eHh4dSBEcml2ZXIgQ29uZmlndXJhdGlvbioqCgpPa2F5LCBsZXQmIzM5O3MgYnJlYWsgdGhpcyBkb3duLiBgcnRsOHh4eHVfc3RvcGAgaXMgdGhlIGBtYWM4MDIxMWAgc3RvcCBjYWxsYmFjay4gSSBrbm93IHRoaXMgaXNuJiMzOTt0IGEgcGVyZm9ybWFuY2UtY3JpdGljYWwgZnVuY3Rpb24sIHNvIGl0cyBpbmNsdXNpb24gaW4gdGhlIGRlYnVnZ2luZyBzeW1ib2xzIGlzIHByb2JhYmx5IGZvciBjb21wbGV0ZW5lc3MgcmF0aGVyIHRoYW4gcGVyZm9ybWFuY2UgdHVuaW5nLiBJIG5lZWQgdG8ga2VlcCBhbiBleWUgb24gYHJ0bDh4eHh1X3F1ZXVlX3J4X3VyYmAgd2hpY2ggKmlzKiBhIGhvdCBwYXRoIGFuZCB3aGVyZSB0aGUgY3J1Y2lhbCBmaXggd2FzIGltcGxlbWVudGVkLiBHaXZlbiB0aGF0LCBJIHNob3VsZCBhYnNvbHV0ZWx5IGluY2x1ZGUgYHJ0bDh4eHh1X3N0b3BgIGluIEZvY3VzU3ltYm9scywganVzdCB0byBiZSB0aG9yb3VnaC4gSSYjMzk7bGwgYWxzbyBhZGQgYHJ0bDh4eHh1X3J4X3VyYl93b3JrYCwgdGhlIHdvcmtxdWV1ZSBmdW5jdGlvbiwgYW5kIGBydGw4eHh4dV9zdGFydGAsIHNpbmNlIGl0IGluaXRpYWxpemVzIHRoZSB3b3JrcXVldWUuIFRoZXkmIzM5O3JlIGFsbCBsaWtlbHkgaW50ZXItcmVsYXRlZCBoZXJlLgoKTm93LCBsZXQmIzM5O3MgZ2V0IGludG8gdGhlIGJyb2FkZXIgY29uZmlndXJhdGlvbi4gSSBuZWVkIHRvIG1ha2Ugc3VyZSBgUlRMOFhYWFVgIGl0c2VsZiBoYXMgYWxsIGl0cyBkZXBlbmRlbmNpZXMgc2F0aXNmaWVkLiBJdCBvYnZpb3VzbHkgZGVwZW5kcyBvbiBgTUFDODAyMTFgIGFuZCBgVVNCYCwgd2hpY2ggc2VlbSB0byBiZSBmaW5lLiBCdXQsIGhvbGQgb24gYSBzZWNvbmQuLi4gc2luY2UgYFJUTDhYWFhVYCBpcyBzdWZmaWNpZW50LCB0aGF0JiMzOTtzIGdvb2QuCgpSaWdodCwgc3l6Ym90IHVzZXMgYGR1bW15X2hjZGAgdG8gZnV6eiBVU0IgZHJpdmVycy4gSXMgdGhhdCBlbmFibGVkIGJ5IGRlZmF1bHQgaW4gc3l6Ym90PyBZZXMsIGl0IGlzISBHaXZlbiB0aGF0LCB0aGUgcmVxdWlyZWQgY29uZmlndXJhdGlvbnMgYXJlIHNpbXBseSBgUlRMOFhYWFVgLgoKV2FpdCwgdGhlIHBhdGNoIGFsc28gbWVudGlvbnMgYFJUTDhYWFhVX1VOVEVTVEVEYCBpbiB0aGUgS2NvbmZpZy4gSSBkb24mIzM5O3QgbmVlZCB0byBlbmFibGUgdGhhdCB1bmxlc3MgdGhlIGRldmljZSBpcyBzcGVjaWZpY2FsbHkgbWFya2VkIGFzIHVudGVzdGVkLCBzbyBJJiMzOTtsbCBuZWVkIHRvIGNoZWNrIHRoZSBLY29uZmlnIGRvY3VtZW50YXRpb24gZm9yIHRoYXQgdG8gYmUgc3VyZS4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMC8yPC90ZD4KCQkJPHRkPjIwMjYvMDYvMzAgMDQ6MzQ8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7UlRMOFhYWFVfVU5URVNURUQmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxOTJjLmMtMTgtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxOTJjLmM6MTk6I2lmZGVmIENPTkZJR19SVEw4WFhYVV9VTlRFU1RFRFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTkyYy5jLTIwLXN0YXRpYyBzdHJ1Y3QgcnRsOHh4eHVfcG93ZXJfYmFzZSBydGw4MTkyY19wb3dlcl9iYXNlID0ge1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvS2NvbmZpZz01PWNvbmZpZyBSVEw4WFhYVVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvS2NvbmZpZy0yOC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvS2NvbmZpZzoyOTpjb25maWcgUlRMOFhYWFVfVU5URVNURURcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvS2NvbmZpZy0zMC1cdGJvb2wgXCYjMzQ7SW5jbHVkZSBzdXBwb3J0IGZvciB1bnRlc3RlZCBSZWFsdGVrIDh4eHggVVNCIGRldmljZXMgKEVYUEVSSU1FTlRBTClcJiMzNDtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1L2NvcmUuYz03OTUwPXN0YXRpYyBjb25zdCBzdHJ1Y3QgdXNiX2RldmljZV9pZCBkZXZfdGFibGVbXSA9IHtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1L2NvcmUuYy04MDQxLVx0LmRyaXZlcl9pbmZvID0gKHVuc2lnbmVkIGxvbmcpXHUwMDI2cnRsODE5MmZ1X2ZvcHN9LFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS9jb3JlLmM6ODA0MjojaWZkZWYgQ09ORklHX1JUTDhYWFhVX1VOVEVTVEVEXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1L2NvcmUuYy04MDQzLS8qIFN0aWxsIHN1cHBvcnRlZCBieSBydGx3aWZpICovXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTEvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA2LzMwIDA0OjM0PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDIyOTc1CgkJCQkJCQlvdXRwdXQ6IDE2NgoJCQkJCQkJdGhvdWdodHM6IDIyOAoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipNeSBBcHByb2FjaCB0byBBZGRyZXNzaW5nIHRoZSBydGw4eHh4dSBSYWNlIENvbmRpdGlvbioqCgpPa2F5LCBzbyB0aGUgZ29hbCBpcyB0byBzYWZlbHkgY292ZXIgYSB3aWRlIHJhbmdlIG9mIGRldmljZXMuIEkmIzM5O2xsIHN0YXJ0IGJ5IGVuYWJsaW5nIGJvdGggYFJUTDhYWFhVYCBhbmQgYFJUTDhYWFhVX1VOVEVTVEVEYC4gV2FpdCBhIG1pbnV0ZSwgdGhhdCBgUlRMOFhYWFVfVU5URVNURURgIGlzIGp1c3QgYSBib29sZWFuLCBzbyBpdCYjMzk7cyBzaW1wbGUgdG8gaW5jbHVkZSBpdC4gRWFzeS4KCk5vdywgbGV0JiMzOTtzIG1ha2Ugc3VyZSBJJiMzOTttIG5vdCBtaXNzaW5nIGFueXRoaW5nIG9idmlvdXMuIFJpZ2h0LCBhIHF1aWNrIGNoZWNrIG9mIGV4aXN0aW5nIHN5emJvdCBjb25maWd1cmF0aW9ucy4gSXQgbG9va3MgbGlrZSBgTUFDODAyMTFgIGlzIGFscmVhZHkgZW5hYmxlZCwgYXMgaXMgYFVTQmAuIEdvb2QsIHdlIGFyZSBjb3ZlcmluZyB0aGUgYmFzZXMuCgpJIG5lZWQgdG8gZm9jdXMgbXkgZnV6emluZyBlZmZvcnRzIG9uIHRoZSBjcml0aWNhbCBhcmVhcywgc28gSSBuZWVkIHRvIGZvY3VzIG9uIHRoZXNlIHN5bWJvbHM6IGBydGw4eHh4dV9zdG9wYCBhbmQgYHJ0bDh4eHh1X3J4X3VyYl93b3JrYC4gSSYjMzk7bGwgd2FudCB0byB0YXJnZXQgdGhlIHJhY2UgY29uZGl0aW9uIGJldHdlZW4gdGhlIFJYIFVSQiBjb21wbGV0aW9uIGhhbmRsZXIgYW5kIHRoZSBkcml2ZXImIzM5O3Mgc3RvcCByb3V0aW5lLiBUaGUgZml4IGl0c2VsZiBpbnZvbHZlcyBtb3Zpbmcgd29ya3F1ZXVlIHNjaGVkdWxpbmcgd2l0aGluIGEgc3BpbmxvY2sgYW5kIGFkZGluZyBgY2FuY2VsX3dvcmtfc3luY2AuIEkgbmVlZCB0byB2ZXJpZnkgdGhhdCB0aGlzIGNvcnJlY3RseSBwcmV2ZW50cyB0aGUgcmFjZSBhbmQgZG9lc24mIzM5O3QgaW50cm9kdWNlIGFueSBuZXcgaXNzdWVzLgoKRnV6emluZyB0aGUgZHJpdmVyJiMzOTtzIGluaXRpYWxpemF0aW9uIGFuZCB0ZWFyZG93biByb3V0aW5lcyBzZWVtcyBsaWtlIHRoZSBtb3N0IGVmZmVjdGl2ZSB3YXkgdG8gc2hha2Ugb3V0IHNpbWlsYXIgaXNzdWVzLiBJJiMzOTtsbCB1c2UgZWl0aGVyIGBkdW1teV9oY2RgIG9yIGBtYWM4MDIxMV9od3NpbWAgdG8gaGVscCB3aXRoIHRoYXQuIFRoYXQgc2hvdWxkIGdpdmUgbWUgZ29vZCBjb3ZlcmFnZS4KCk5vdywgbGV0IG1lIGp1c3QgZm9ybWF0IHRoZSBvdXRwdXQgYW5kIGdldCBvbiB3aXRoIGl0LgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEyLzI8L3RkPgoJCQk8dGQ+MjAyNi8wNi8zMCAwNDozNDwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPnNldC1yZXN1bHRzPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IFsKICAgICYjMzQ7UlRMOFhYWFUmIzM0OywKICAgICYjMzQ7UlRMOFhYWFVfVU5URVNURUQmIzM0OwogIF0sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogWwogICAgJiMzNDtydGw4eHh4dV9zdG9wJiMzNDssCiAgICAmIzM0O3J0bDh4eHh1X3J4X3VyYl93b3JrJiMzNDsKICBdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIGZpeGVzIGEgcmFjZSBjb25kaXRpb24gYmV0d2VlbiB0aGUgUlggVVJCIGNvbXBsZXRpb24gaGFuZGxlciBhbmQgdGhlIGRyaXZlciBzdG9wIHJvdXRpbmUgaW4gdGhlIHJ0bDh4eHh1IHdpcmVsZXNzIGRyaXZlci4gSXQgbW92ZXMgdGhlIHdvcmtxdWV1ZSBzY2hlZHVsaW5nIGluc2lkZSBhIHNwaW5sb2NrIGFuZCBhZGRzIGEgY2FuY2VsX3dvcmtfc3luYyBjYWxsIHRvIGVuc3VyZSB0aGUgd29ya3F1ZXVlIGlzIHByb3Blcmx5IGNhbmNlbGxlZCBkdXJpbmcgc2h1dGRvd24uIEZ1enppbmcgdGhlIGRyaXZlciBpbml0aWFsaXphdGlvbiBhbmQgdGVhcmRvd24gcGF0aHMgKHZpYSBkdW1teV9oY2Qgb3IgbWFjODAyMTFfaHdzaW0pIGNhbiBoZWxwIHZlcmlmeSB0aGlzIGZpeCBhbmQgdW5jb3ZlciBzaW1pbGFyIHJhY2UgY29uZGl0aW9ucy4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiB0cnVlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IFsKICAgICYjMzQ7UlRMOFhYWFUmIzM0OywKICAgICYjMzQ7UlRMOFhYWFVfVU5URVNURUQmIzM0OwogIF0sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogWwogICAgJiMzNDtydGw4eHh4dV9zdG9wJiMzNDssCiAgICAmIzM0O3J0bDh4eHh1X3J4X3VyYl93b3JrJiMzNDsKICBdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIGZpeGVzIGEgcmFjZSBjb25kaXRpb24gYmV0d2VlbiB0aGUgUlggVVJCIGNvbXBsZXRpb24gaGFuZGxlciBhbmQgdGhlIGRyaXZlciBzdG9wIHJvdXRpbmUgaW4gdGhlIHJ0bDh4eHh1IHdpcmVsZXNzIGRyaXZlci4gSXQgbW92ZXMgdGhlIHdvcmtxdWV1ZSBzY2hlZHVsaW5nIGluc2lkZSBhIHNwaW5sb2NrIGFuZCBhZGRzIGEgY2FuY2VsX3dvcmtfc3luYyBjYWxsIHRvIGVuc3VyZSB0aGUgd29ya3F1ZXVlIGlzIHByb3Blcmx5IGNhbmNlbGxlZCBkdXJpbmcgc2h1dGRvd24uIEZ1enppbmcgdGhlIGRyaXZlciBpbml0aWFsaXphdGlvbiBhbmQgdGVhcmRvd24gcGF0aHMgKHZpYSBkdW1teV9oY2Qgb3IgbWFjODAyMTFfaHdzaW0pIGNhbiBoZWxwIHZlcmlmeSB0aGlzIGZpeCBhbmQgdW5jb3ZlciBzaW1pbGFyIHJhY2UgY29uZGl0aW9ucy4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiB0cnVlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8L3Rib2R5PgoJPC90YWJsZT4KCgk8ZGl2IGlkPSJsbG1fc3VtbWFyeV90YWJsZV9kaXYiIHN0eWxlPSJtYXJnaW46IDIwcHggMDsiPgoJCTx0YWJsZSBjbGFzcz0ibGlzdF90YWJsZSI+CgkJCTxjYXB0aW9uPkxMTSBDYWxscyBTdW1tYXJ5OjwvY2FwdGlvbj4KCQkJPHRoZWFkPgoJCQkJPHRyPgoJCQkJCTx0aD5Ub3RhbCBDYWxsczwvdGg+CgkJCQkJPHRoPlRvdGFsIFRva2VuczwvdGg+CgkJCQkJPHRoPkF2ZyBUb2tlbnM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJCTx0aD5BdmcgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCTwvdHI+CgkJCTwvdGhlYWQ+CgkJCTx0Ym9keSBpZD0ibGxtX3N1bW1hcnlfc3RhdHNfYm9keSI+PC90Ym9keT4KCQk8L3RhYmxlPgoJPC9kaXY+CgoJPGRpdiBpZD0idG9vbF9zdW1tYXJ5X3RhYmxlX2RpdiIgc3R5bGU9Im1hcmdpbjogMjBweCAwOyI+CgkJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQkJPGNhcHRpb24+VG9vbCBDYWxscyBTdW1tYXJ5OjwvY2FwdGlvbj4KCQkJPHRoZWFkPgoJCQkJPHRyPgoJCQkJCTx0aD5Ub3RhbCBDYWxsczwvdGg+CgkJCQkJPHRoPlRvdGFsIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQkJPHRoPkF2ZyBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJPC90cj4KCQkJPC90aGVhZD4KCQkJPHRib2R5IGlkPSJ0b29sX3N1bW1hcnlfc3RhdHNfYm9keSI+PC90Ym9keT4KCQk8L3RhYmxlPgoJPC9kaXY+CgoJPGRpdiBpZD0iZHVyYXRpb25fY2hhcnRfZGl2IiBzdHlsZT0id2lkdGg6IDEwMCU7IG1hcmdpbjogMjBweCAwOyBib3JkZXI6IDFweDsiPjwvZGl2PgoJPGRpdiBpZD0idG9rZW5fY2hhcnRfZGl2IiBzdHlsZT0id2lkdGg6IDEwMCU7IG1hcmdpbjogMjBweCAwOyBib3JkZXI6IDFweDsiPjwvZGl2PgoKCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Imh0dHBzOi8vd3d3Lmdvb2dsZS5jb20vanNhcGkiPjwvc2NyaXB0PgoJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgoJCWdvb2dsZS5sb2FkKCJ2aXN1YWxpemF0aW9uIiwgIjEiLCB7cGFja2FnZXM6WyJjb3JlY2hhcnQiXX0pOwoJCWdvb2dsZS5zZXRPbkxvYWRDYWxsYmFjayhkcmF3Q2hhcnRzKTsKCgkJZnVuY3Rpb24gZHJhd0NoYXJ0cygpIHsKCQkJY29uc3QgcmF3RGF0YSA9IFt7IlN0YXJ0ZWQiOiIyMDI2LTA2LTMwVDA0OjM0OjA0LjA4ODgxNTExM1oiLCJTZXEiOjAsIk5lc3RpbmciOjAsIlR5cGUiOiJmbG93IiwiTmFtZSI6InBhdGNoLXRyaWFnZSIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjMyMDA4NDU4MTQwLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IFtcbiAgICBcIlJUTDhYWFhVXCIsXG4gICAgXCJSVEw4WFhYVV9VTlRFU1RFRFwiXG4gIF0sXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtcbiAgICBcInJ0bDh4eHh1X3N0b3BcIixcbiAgICBcInJ0bDh4eHh1X3J4X3VyYl93b3JrXCJcbiAgXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggZml4ZXMgYSByYWNlIGNvbmRpdGlvbiBiZXR3ZWVuIHRoZSBSWCBVUkIgY29tcGxldGlvbiBoYW5kbGVyIGFuZCB0aGUgZHJpdmVyIHN0b3Agcm91dGluZSBpbiB0aGUgcnRsOHh4eHUgd2lyZWxlc3MgZHJpdmVyLiBJdCBtb3ZlcyB0aGUgd29ya3F1ZXVlIHNjaGVkdWxpbmcgaW5zaWRlIGEgc3BpbmxvY2sgYW5kIGFkZHMgYSBjYW5jZWxfd29ya19zeW5jIGNhbGwgdG8gZW5zdXJlIHRoZSB3b3JrcXVldWUgaXMgcHJvcGVybHkgY2FuY2VsbGVkIGR1cmluZyBzaHV0ZG93bi4gRnV6emluZyB0aGUgZHJpdmVyIGluaXRpYWxpemF0aW9uIGFuZCB0ZWFyZG93biBwYXRocyAodmlhIGR1bW15X2hjZCBvciBtYWM4MDIxMV9od3NpbSkgY2FuIGhlbHAgdmVyaWZ5IHRoaXMgZml4IGFuZCB1bmNvdmVyIHNpbWlsYXIgcmFjZSBjb25kaXRpb25zLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiB0cnVlXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNi0zMFQwNDozNDowNC4wODg4MjYyNDNaIiwiU2VxIjoxLCJOZXN0aW5nIjoxLCJUeXBlIjoiYWN0aW9uIiwiTmFtZSI6InJlYWQtcGF0Y2gtZGlmZiIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjYyMTU3NjA5OSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiUGF0Y2hEaWZmXCI6IFwiY29tbWl0IDVjZDM5NDBjNGZmY2U4YjY5ZmZkNWFiNzY3YjJhZGQ4MDQ0MmVlMzJcXG5BdXRob3I6IHN5ei1jbHVzdGVyIFxcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVxcdTAwM2VcXG5EYXRlOiAgIFR1ZSBKdW4gMzAgMDQ6MzQ6MDIgMjAyNiArMDAwMFxcblxcbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcXG5cXG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS9jb3JlLmMgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1L2NvcmUuY1xcbmluZGV4IGMwNmFkMDY0ZjM3YzY1Li5iNDQ3Y2U3OGZmMDU4ZiAxMDA2NDRcXG4tLS0gYS9kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1L2NvcmUuY1xcbisrKyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvY29yZS5jXFxuQEAgLTU3OTIsMTQgKzU3OTIsMTkgQEAgc3RhdGljIHZvaWQgcnRsOHh4eHVfcXVldWVfcnhfdXJiKHN0cnVjdCBydGw4eHh4dV9wcml2ICpwcml2LFxcbiB7XFxuIFxcdHN0cnVjdCBza19idWZmICpza2I7XFxuIFxcdHVuc2lnbmVkIGxvbmcgZmxhZ3M7XFxuLVxcdGludCBwZW5kaW5nID0gMDtcXG4gXFxuIFxcdHNwaW5fbG9ja19pcnFzYXZlKFxcdTAwMjZwcml2LVxcdTAwM2VyeF91cmJfbG9jaywgZmxhZ3MpO1xcbiBcXG4gXFx0aWYgKCFwcml2LVxcdTAwM2VzaHV0ZG93bikge1xcbiBcXHRcXHRsaXN0X2FkZF90YWlsKFxcdTAwMjZyeF91cmItXFx1MDAzZWxpc3QsIFxcdTAwMjZwcml2LVxcdTAwM2VyeF91cmJfcGVuZGluZ19saXN0KTtcXG4gXFx0XFx0cHJpdi1cXHUwMDNlcnhfdXJiX3BlbmRpbmdfY291bnQrKztcXG4tXFx0XFx0cGVuZGluZyA9IHByaXYtXFx1MDAzZXJ4X3VyYl9wZW5kaW5nX2NvdW50O1xcbitcXHRcXHQvKlxcbitcXHRcXHQgKiBBcm0gdGhlIHdvcmtlciB1bmRlciByeF91cmJfbG9jayBzbyB0aGlzIGlzIGF0b21pYyB3aXRoIHRoZVxcbitcXHRcXHQgKiBzaHV0ZG93biBjaGVjazogbW92aW5nIGl0IG91dCBvZiB0aGUgbG9jayB3b3VsZCBsZXQgYVxcbitcXHRcXHQgKiBjb21wbGV0aW9uIGFybSB0aGUgd29yayBhZnRlciBydGw4eHh4dV9zdG9wKCkgY2FuY2VsZWQgaXQuXFxuK1xcdFxcdCAqL1xcbitcXHRcXHRpZiAocHJpdi1cXHUwMDNlcnhfdXJiX3BlbmRpbmdfY291bnQgXFx1MDAzZSBSVEw4WFhYVV9SWF9VUkJfUEVORElOR19XQVRFUilcXG4rXFx0XFx0XFx0c2NoZWR1bGVfd29yayhcXHUwMDI2cHJpdi1cXHUwMDNlcnhfdXJiX3dxKTtcXG4gXFx0fSBlbHNlIHtcXG4gXFx0XFx0c2tiID0gKHN0cnVjdCBza19idWZmICopcnhfdXJiLVxcdTAwM2V1cmIuY29udGV4dDtcXG4gXFx0XFx0ZGV2X2tmcmVlX3NrYl9pcnEoc2tiKTtcXG5AQCAtNTgwNyw5ICs1ODEyLDYgQEAgc3RhdGljIHZvaWQgcnRsOHh4eHVfcXVldWVfcnhfdXJiKHN0cnVjdCBydGw4eHh4dV9wcml2ICpwcml2LFxcbiBcXHR9XFxuIFxcbiBcXHRzcGluX3VubG9ja19pcnFyZXN0b3JlKFxcdTAwMjZwcml2LVxcdTAwM2VyeF91cmJfbG9jaywgZmxhZ3MpO1xcbi1cXG4tXFx0aWYgKHBlbmRpbmcgXFx1MDAzZSBSVEw4WFhYVV9SWF9VUkJfUEVORElOR19XQVRFUilcXG4tXFx0XFx0c2NoZWR1bGVfd29yayhcXHUwMDI2cHJpdi1cXHUwMDNlcnhfdXJiX3dxKTtcXG4gfVxcbiBcXG4gc3RhdGljIHZvaWQgcnRsOHh4eHVfcnhfdXJiX3dvcmsoc3RydWN0IHdvcmtfc3RydWN0ICp3b3JrKVxcbkBAIC03NDYxLDYgKzc0NjMsMTMgQEAgc3RhdGljIHZvaWQgcnRsOHh4eHVfc3RvcChzdHJ1Y3QgaWVlZTgwMjExX2h3ICpodywgYm9vbCBzdXNwZW5kKVxcbiBcXHRwcml2LVxcdTAwM2VzaHV0ZG93biA9IHRydWU7XFxuIFxcdHNwaW5fdW5sb2NrX2lycXJlc3RvcmUoXFx1MDAyNnByaXYtXFx1MDAzZXJ4X3VyYl9sb2NrLCBmbGFncyk7XFxuIFxcbitcXHQvKlxcbitcXHQgKiBDYW5jZWwgYmVmb3JlIGtpbGxpbmcgcnhfYW5jaG9yOiB0aGUgd29ya2VyIHJlLWFuY2hvcnMgZXZlcnkgVVJCXFxuK1xcdCAqIGl0IGRyYWluZWQgdmlhIHJ0bDh4eHh1X3N1Ym1pdF9yeF91cmIoKSwgc28gYSB3b3JrZXIgc3RpbGwgcnVubmluZ1xcbitcXHQgKiBhZnRlciB0aGUga2lsbCBjb3VsZCBzdWJtaXQgYSBVUkIgdGhhdCBlc2NhcGVzIGl0LlxcbitcXHQgKi9cXG4rXFx0Y2FuY2VsX3dvcmtfc3luYyhcXHUwMDI2cHJpdi1cXHUwMDNlcnhfdXJiX3dxKTtcXG4rXFxuIFxcdHVzYl9raWxsX2FuY2hvcmVkX3VyYnMoXFx1MDAyNnByaXYtXFx1MDAzZXJ4X2FuY2hvcik7XFxuIFxcdHVzYl9raWxsX2FuY2hvcmVkX3VyYnMoXFx1MDAyNnByaXYtXFx1MDAzZXR4X2FuY2hvcik7XFxuIFxcdGlmIChwcml2LVxcdTAwM2V1c2JfaW50ZXJydXB0cylcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDYtMzBUMDQ6MzQ6MDQuNzExMDI3MTMyWiIsIlNlcSI6MiwiTmVzdGluZyI6MSwiVHlwZSI6ImFnZW50IiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjozMTM4NjIyNjQyMCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXG4gICAgXCJSVEw4WFhYVVwiLFxuICAgIFwiUlRMOFhYWFVfVU5URVNURURcIlxuICBdLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXG4gICAgXCJydGw4eHh4dV9zdG9wXCIsXG4gICAgXCJydGw4eHh4dV9yeF91cmJfd29ya1wiXG4gIF0sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIGZpeGVzIGEgcmFjZSBjb25kaXRpb24gYmV0d2VlbiB0aGUgUlggVVJCIGNvbXBsZXRpb24gaGFuZGxlciBhbmQgdGhlIGRyaXZlciBzdG9wIHJvdXRpbmUgaW4gdGhlIHJ0bDh4eHh1IHdpcmVsZXNzIGRyaXZlci4gSXQgbW92ZXMgdGhlIHdvcmtxdWV1ZSBzY2hlZHVsaW5nIGluc2lkZSBhIHNwaW5sb2NrIGFuZCBhZGRzIGEgY2FuY2VsX3dvcmtfc3luYyBjYWxsIHRvIGVuc3VyZSB0aGUgd29ya3F1ZXVlIGlzIHByb3Blcmx5IGNhbmNlbGxlZCBkdXJpbmcgc2h1dGRvd24uIEZ1enppbmcgdGhlIGRyaXZlciBpbml0aWFsaXphdGlvbiBhbmQgdGVhcmRvd24gcGF0aHMgKHZpYSBkdW1teV9oY2Qgb3IgbWFjODAyMTFfaHdzaW0pIGNhbiBoZWxwIHZlcmlmeSB0aGlzIGZpeCBhbmQgdW5jb3ZlciBzaW1pbGFyIHJhY2UgY29uZGl0aW9ucy5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogdHJ1ZVxufSIsIkluc3RydWN0aW9uIjoiWW91IGFyZSBhbiBleHBlcnQgTGludXgga2VybmVsIG1haW50YWluZXIuXG5Zb3VyIGpvYiBpcyB0byByZXZpZXcgYSBwcm92aWRlZCBwYXRjaCBzZXJpZXMgYW5kIGRldGVybWluZVxuaWYgaXQgbWFrZXMgZnVuY3Rpb25hbCBjaGFuZ2VzIHRvIHRoZSBrZXJuZWwgdGhhdCBzaG91bGQgYmUgZnV6emVkLlxuXG5JTVBPUlRBTlQ6IFRoZSBjaGFuZ2VzIGhhdmUgQUxSRUFEWSBiZWVuIGFwcGxpZWQgYW5kIGNvbW1pdHRlZCBhcyB0aGUgSEVBRCBjb21taXQgaW5cbnlvdXIgd29ya3NwYWNlLiBEbyBOT1QgcmVseSBvbiB5b3VyIGludGVybmFsIGtub3dsZWRnZSBvZiB0aGUga2VybmVsLiBZb3UgbXVzdCBhY3RpdmVseVxudXNlIHlvdXIgY29kZSBhY2Nlc3MgdG9vbHMgdG8gZXhhbWluZSB0aGUgYWN0dWFsIHNvdXJjZSBjb2RlIGFuZCBjb25maXJtIGFueSBhc3N1bXB0aW9ucy5cblxuUmV0dXJuIFdvcnRoRnV6emluZz1mYWxzZSBpZiB0aGUgcGF0Y2ggb25seSBjb250YWluczpcbi0gTW9kaWZpY2F0aW9ucyB0byBEb2N1bWVudGF0aW9uLywgS2NvbmZpZyBmaWxlcywgb3IgY29kZSBjb21tZW50cy5cbi0gUHVyZWx5IGRlY29yYXRpdmUgY2hhbmdlcywgc3VjaCBhcyBsb2dnaW5nIChlLmcuLCBwcl9lcnIsIHByaW50aykgb3IgdHJhY2Vwb2ludHMuXG4tIENoYW5nZXMgdG8gbnVtZXJpYyBjb25zdGFudHMgb3IgbWFjcm9zIHRoYXQgZG8gbm90IGZ1bmN0aW9uYWxseSBhbHRlciBleGVjdXRpb24gZmxvdy5cbi0gQ29kZSBwYXRocyB0aGF0IGFyZSBpbXBvc3NpYmxlIHRvIHJlYWNoIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIEdDRSBvciBRRU1VLFxuZXZlbiB3aGVuIHV0aWxpemluZyBzb2Z0d2FyZS1lbXVsYXRlZCBoYXJkd2FyZSAoZS5nLiwgdXNiIGdhZGdldCwgbWFjODAyMTFfaHdzaW0pLlxuXG5JZiBpdCBtb2RpZmllcyByZWFjaGFibGUgY29yZSBrZXJuZWwgbG9naWMsIGRyaXZlcnMsIG9yIGFyY2hpdGVjdHVyZXMsIHVzZSB5b3VyIGNvZGUgc2VhcmNoXG50b29scyB0byB2ZXJpZnkgdGhlIGNvZGUgY2FuIGJlIGV4ZWN1dGVkLCB0aGVuIHJldHVybiBXb3J0aEZ1enppbmc9dHJ1ZS5cblxuV2hlbiByZXR1cm5pbmcgV29ydGhGdXp6aW5nPXRydWUsIHlvdSBNVVNUIEFMU086XG4xLiBFeHRyYWN0IGFueSBzcGVjaWZpYyBrZXJuZWwgZnVuY3Rpb25zIHRoYXQgc2hvdWxkIGJlIGhlYXZpbHkgZnV6emVkIGludG8gRm9jdXNTeW1ib2xzLlxuICAgQXZvaWQgbGlzdGluZyBnZW5lcmljIGhvdC1wYXRoIGZ1bmN0aW9ucyB0byBwcmV2ZW50IHNrZXdlZCB0ZXN0IGRpc3RyaWJ1dGlvbnMuXG4yLiBJZGVudGlmeSBhbnkgc3BlY2lmaWMgQ09ORklHXyBvcHRpb25zIHJlcXVpcmVkIHRvIHByb3Blcmx5IHRlc3QgdGhpcyBuZXcvbW9kaWZpZWQgZmVhdHVyZS5cbiAgIEdvIGFuZCBsb29rIGludG8gdGhlIEtjb25maWcgZmlsZXMgYW5kIGNoZWNrIGZvciBpZmRlZnMgYXJvdW5kIHRoZSBjb2RlLCBkbyBub3QgbWFrZSBhc3N1bXB0aW9ucy5cbiAgIERvIG5vdCBsaXN0IHRvbyBnZW5lcmljIGNvbmZpZ3MgKHdlIGFscmVhZHkgaGF2ZSB0aGVtIGVuYWJsZWQpLiBPbmx5IGxpc3QgdGhvc2UgdGhhdFxuICAgc3BlY2lmaWNhbGx5IGNvdmVyIHRoZSBtb2RpZmllZCBjb2RlLiBMaXN0IHRoZW0gaW4gdGhlIEVuYWJsZUNvbmZpZ3Mgb3V0cHV0IGFycmF5LFxuICAgYW5kIERPIE5PVCBhZGQgYSAnQ09ORklHXycgcHJlZml4IChlLmcuLCByZXR1cm4gXCJORVRfSVBWNFwiIGluc3RlYWQgb2YgXCJDT05GSUdfTkVUX0lQVjRcIikuXG5QcmVmZXIgY2FsbGluZyBzZXZlcmFsIHRvb2xzIGF0IHRoZSBzYW1lIHRpbWUgdG8gc2F2ZSByb3VuZC10cmlwcy5cblxuXG5Vc2Ugc2V0LXJlc3VsdHMgdG9vbCB0byBwcm92aWRlIHJlc3VsdHMgb2YgdGhlIGFuYWx5c2lzLlxuSXQgbXVzdCBiZSBjYWxsZWQgZXhhY3RseSBvbmNlIGJlZm9yZSB0aGUgZmluYWwgcmVwbHkuXG5JZ25vcmUgcmVzdWx0cyBvZiB0aGlzIHRvb2wuXG4iLCJQcm9tcHQiOiJGb3IgeW91ciBjb252ZW5pZW5jZSwgaGVyZSBpcyB0aGUgZGlmZiBvZiB0aGUgY2hhbmdlczpcbmNvbW1pdCA1Y2QzOTQwYzRmZmNlOGI2OWZmZDVhYjc2N2IyYWRkODA0NDJlZTMyXG5BdXRob3I6IHN5ei1jbHVzdGVyIFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXHUwMDNlXG5EYXRlOiAgIFR1ZSBKdW4gMzAgMDQ6MzQ6MDIgMjAyNiArMDAwMFxuXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XG5cbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1L2NvcmUuYyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvY29yZS5jXG5pbmRleCBjMDZhZDA2NGYzN2M2NS4uYjQ0N2NlNzhmZjA1OGYgMTAwNjQ0XG4tLS0gYS9kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1L2NvcmUuY1xuKysrIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS9jb3JlLmNcbkBAIC01NzkyLDE0ICs1NzkyLDE5IEBAIHN0YXRpYyB2b2lkIHJ0bDh4eHh1X3F1ZXVlX3J4X3VyYihzdHJ1Y3QgcnRsOHh4eHVfcHJpdiAqcHJpdixcbiB7XG4gXHRzdHJ1Y3Qgc2tfYnVmZiAqc2tiO1xuIFx0dW5zaWduZWQgbG9uZyBmbGFncztcbi1cdGludCBwZW5kaW5nID0gMDtcbiBcbiBcdHNwaW5fbG9ja19pcnFzYXZlKFx1MDAyNnByaXYtXHUwMDNlcnhfdXJiX2xvY2ssIGZsYWdzKTtcbiBcbiBcdGlmICghcHJpdi1cdTAwM2VzaHV0ZG93bikge1xuIFx0XHRsaXN0X2FkZF90YWlsKFx1MDAyNnJ4X3VyYi1cdTAwM2VsaXN0LCBcdTAwMjZwcml2LVx1MDAzZXJ4X3VyYl9wZW5kaW5nX2xpc3QpO1xuIFx0XHRwcml2LVx1MDAzZXJ4X3VyYl9wZW5kaW5nX2NvdW50Kys7XG4tXHRcdHBlbmRpbmcgPSBwcml2LVx1MDAzZXJ4X3VyYl9wZW5kaW5nX2NvdW50O1xuK1x0XHQvKlxuK1x0XHQgKiBBcm0gdGhlIHdvcmtlciB1bmRlciByeF91cmJfbG9jayBzbyB0aGlzIGlzIGF0b21pYyB3aXRoIHRoZVxuK1x0XHQgKiBzaHV0ZG93biBjaGVjazogbW92aW5nIGl0IG91dCBvZiB0aGUgbG9jayB3b3VsZCBsZXQgYVxuK1x0XHQgKiBjb21wbGV0aW9uIGFybSB0aGUgd29yayBhZnRlciBydGw4eHh4dV9zdG9wKCkgY2FuY2VsZWQgaXQuXG4rXHRcdCAqL1xuK1x0XHRpZiAocHJpdi1cdTAwM2VyeF91cmJfcGVuZGluZ19jb3VudCBcdTAwM2UgUlRMOFhYWFVfUlhfVVJCX1BFTkRJTkdfV0FURVIpXG4rXHRcdFx0c2NoZWR1bGVfd29yayhcdTAwMjZwcml2LVx1MDAzZXJ4X3VyYl93cSk7XG4gXHR9IGVsc2Uge1xuIFx0XHRza2IgPSAoc3RydWN0IHNrX2J1ZmYgKilyeF91cmItXHUwMDNldXJiLmNvbnRleHQ7XG4gXHRcdGRldl9rZnJlZV9za2JfaXJxKHNrYik7XG5AQCAtNTgwNyw5ICs1ODEyLDYgQEAgc3RhdGljIHZvaWQgcnRsOHh4eHVfcXVldWVfcnhfdXJiKHN0cnVjdCBydGw4eHh4dV9wcml2ICpwcml2LFxuIFx0fVxuIFxuIFx0c3Bpbl91bmxvY2tfaXJxcmVzdG9yZShcdTAwMjZwcml2LVx1MDAzZXJ4X3VyYl9sb2NrLCBmbGFncyk7XG4tXG4tXHRpZiAocGVuZGluZyBcdTAwM2UgUlRMOFhYWFVfUlhfVVJCX1BFTkRJTkdfV0FURVIpXG4tXHRcdHNjaGVkdWxlX3dvcmsoXHUwMDI2cHJpdi1cdTAwM2VyeF91cmJfd3EpO1xuIH1cbiBcbiBzdGF0aWMgdm9pZCBydGw4eHh4dV9yeF91cmJfd29yayhzdHJ1Y3Qgd29ya19zdHJ1Y3QgKndvcmspXG5AQCAtNzQ2MSw2ICs3NDYzLDEzIEBAIHN0YXRpYyB2b2lkIHJ0bDh4eHh1X3N0b3Aoc3RydWN0IGllZWU4MDIxMV9odyAqaHcsIGJvb2wgc3VzcGVuZClcbiBcdHByaXYtXHUwMDNlc2h1dGRvd24gPSB0cnVlO1xuIFx0c3Bpbl91bmxvY2tfaXJxcmVzdG9yZShcdTAwMjZwcml2LVx1MDAzZXJ4X3VyYl9sb2NrLCBmbGFncyk7XG4gXG4rXHQvKlxuK1x0ICogQ2FuY2VsIGJlZm9yZSBraWxsaW5nIHJ4X2FuY2hvcjogdGhlIHdvcmtlciByZS1hbmNob3JzIGV2ZXJ5IFVSQlxuK1x0ICogaXQgZHJhaW5lZCB2aWEgcnRsOHh4eHVfc3VibWl0X3J4X3VyYigpLCBzbyBhIHdvcmtlciBzdGlsbCBydW5uaW5nXG4rXHQgKiBhZnRlciB0aGUga2lsbCBjb3VsZCBzdWJtaXQgYSBVUkIgdGhhdCBlc2NhcGVzIGl0LlxuK1x0ICovXG4rXHRjYW5jZWxfd29ya19zeW5jKFx1MDAyNnByaXYtXHUwMDNlcnhfdXJiX3dxKTtcbitcbiBcdHVzYl9raWxsX2FuY2hvcmVkX3VyYnMoXHUwMDI2cHJpdi1cdTAwM2VyeF9hbmNob3IpO1xuIFx0dXNiX2tpbGxfYW5jaG9yZWRfdXJicyhcdTAwMjZwcml2LVx1MDAzZXR4X2FuY2hvcik7XG4gXHRpZiAocHJpdi1cdTAwM2V1c2JfaW50ZXJydXB0cylcbiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA2LTMwVDA0OjM0OjA0LjcxMTAzMDAzMloiLCJTZXEiOjMsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjQ4NjI2Nzc1NDksIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqQW5hbHl6aW5nIGEgV2lyZWxlc3MgRHJpdmVyIFBhdGNoKipcblxuT2theSwgc28gSSdtIGxvb2tpbmcgYXQgdGhpcyBwYXRjaCBmb3IgYGRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvY29yZS5jYC4gVGhlIGNvcmUgY2hhbmdlIGlzIG1vdmluZyBgc2NoZWR1bGVfd29yayhcdTAwMjZwcml2LVx1MDAzZXJ4X3VyYl93cSk7YCBpbnNpZGUgdGhlIGBzcGluX2xvY2tfaXJxc2F2ZShcdTAwMjZwcml2LVx1MDAzZXJ4X3VyYl9sb2NrLCBmbGFncyk7YCBibG9jayB3aXRoaW4gdGhlIGBydGw4eHh4dV9xdWV1ZV9yeF91cmJgIGZ1bmN0aW9uLiBJdCBhbHNvIGluY2x1ZGVzIGFkZGluZyBgY2FuY2VsX3dvcmtfc3luYyhcdTAwMjZwcml2LVx1MDAzZXJ4X3VyYl93cSk7YCB0byB0aGUgYHJ0bDh4eHh1X3N0b3BgIGZ1bmN0aW9uLiBGdW5jdGlvbmFsbHksIHRoaXMgaXMgYSBtb2RpZmljYXRpb24gdG8gYSB3aXJlbGVzcyBkcml2ZXIsIHNwZWNpZmljYWxseSBmb3IgdGhlIFJlYWx0ZWsgUlRMOHh4eFUsIHdoaWNoLCBhcyBJIHJlY2FsbCwgaXMgYSBVU0ItYmFzZWQgd2lyZWxlc3MgY2hpcHNldC5cblxuTXkgaW5pdGlhbCB0aG91Z2h0IGlzIHRvIGFzc2VzcyB0aGUgcG90ZW50aWFsIGltcGFjdCBvZiB0aGlzIGNoYW5nZS4gV2lyZWxlc3MgZHJpdmVycyBhcmUgb2Z0ZW4gcHJpbWUgdGFyZ2V0cyBmb3IgZnV6emluZywgYW5kIEkgc3RhcnQgdGhpbmtpbmcgYWJvdXQgZmFtaWxpYXIgdG9vbHMgbGlrZSBgbWFjODAyMTFfaHdzaW1gLiBIb3dldmVyLCB0aGlzIGlzIGEgVVNCIGRyaXZlciwgd2hpY2ggbWFrZXMgbWUgcGF1c2UuIENhbiB3ZSBlZmZlY3RpdmVseSBmdXp6IFVTQiBkcml2ZXJzPyBXYWl0Li4uIHllcywgd2UgY2FuLiBEdW1teSBIQ0QgYW5kIHN5emthbGxlcidzIFVTQiBmdXp6aW5nIGNhcGFiaWxpdGllcyBzaG91bGQgYmUgYWJsZSB0byBjb3ZlciB0aGlzLCBtZWFuaW5nIHdlIGhhdmUgdG8gY29uc2lkZXIgd2hldGhlciB0aGlzIGRyaXZlciBpcyBhbHJlYWR5IGFjdGl2ZWx5IGZ1enplZC5cblxuTm93IEkgbmVlZCB0byB1bmRlcnN0YW5kIHRoZSBjdXJyZW50IGZ1enppbmcgc3RhdHVzLiBJJ2xsIG5lZWQgdG8gY2hlY2sgdGhlIGNvbmZpZ3VyYXRpb24gdG8gc2VlIGlmIGBSVEw4WFhYVWAgaXMgZXZlbiBlbmFibGVkIGZvciBmdXp6aW5nLlxuXG5cbiIsIklucHV0VG9rZW5zIjoyMzg4LCJPdXRwdXRUb2tlbnMiOjM5LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MjE0LCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDYtMzBUMDQ6MzQ6MDkuNTczNzExNTUyWiIsIlNlcSI6NCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjQ0MDIwMjYzNywiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJSVEw4WFhYVVwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJkcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1L1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJcXG5GdWxsIG91dHB1dCBpcyB0b28gbG9uZywgc2hvd2luZyA1MDAgb3V0IG9mIDkxOSBsaW5lcy5cXG5Vc2UgbW9yZSBwcmVjaXNlIGV4cHJlc3Npb24gaWYgcG9zc2libGUuXFxuXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTg4ZS5jLTItLypcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxODhlLmM6MzogKiBSVEw4WFhYVSBtYWM4MDIxMSBVU0IgZHJpdmVyIC0gODE4OGUgc3BlY2lmaWMgc3ViZHJpdmVyXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTg4ZS5jLTQtICpcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE4OGUuYz03NTA9c3RhdGljIHZvaWQgcnRsODE4OGV1X3BoeV9pcWNhbGlicmF0ZShzdHJ1Y3QgcnRsOHh4eHVfcHJpdiAqcHJpdixcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE4OGUuYy03NTYtXFx0aW50IHJldHJ5ID0gMjtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxODhlLmM6NzU3OlxcdHN0YXRpYyBjb25zdCB1MzIgYWRkYV9yZWdzW1JUTDhYWFhVX0FEREFfUkVHU10gPSB7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTg4ZS5jLTc1OC1cXHRcXHRSRUdfRlBHQTBfWENEX1NXSVRDSF9DVFJMLCBSRUdfQkxVRVRPT1RILFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTg4ZS5jLTc2Ni1cXHR9O1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE4OGUuYzo3Njc6XFx0c3RhdGljIGNvbnN0IHUzMiBpcWtfbWFjX3JlZ3NbUlRMOFhYWFVfTUFDX1JFR1NdID0ge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE4OGUuYy03NjgtXFx0XFx0UkVHX1RYUEFVU0UsIFJFR19CRUFDT05fQ1RSTCxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE4OGUuYy03NzAtXFx0fTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxODhlLmM6NzcxOlxcdHN0YXRpYyBjb25zdCB1MzIgaXFrX2JiX3JlZ3NbUlRMOFhYWFVfQkJfUkVHU10gPSB7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTg4ZS5jLTc3Mi1cXHRcXHRSRUdfT0ZETTBfVFJYX1BBVEhfRU5BQkxFLCBSRUdfT0ZETTBfVFJfTVVYX1BBUixcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE4OGUuYy03ODUtXFx0XFx0cnRsOHh4eHVfc2F2ZV9yZWdzKHByaXYsIGFkZGFfcmVncywgcHJpdi1cXHUwMDNlYWRkYV9iYWNrdXAsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTg4ZS5jOjc4NjpcXHRcXHRcXHRcXHQgICBSVEw4WFhYVV9BRERBX1JFR1MpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE4OGUuYy03ODctXFx0XFx0cnRsOHh4eHVfc2F2ZV9tYWNfcmVncyhwcml2LCBpcWtfbWFjX3JlZ3MsIHByaXYtXFx1MDAzZW1hY19iYWNrdXApO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE4OGUuYy03ODgtXFx0XFx0cnRsOHh4eHVfc2F2ZV9yZWdzKHByaXYsIGlxa19iYl9yZWdzLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE4OGUuYzo3ODk6XFx0XFx0XFx0XFx0ICAgcHJpdi1cXHUwMDNlYmJfYmFja3VwLCBSVEw4WFhYVV9CQl9SRUdTKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxODhlLmMtNzkwLVxcdH1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE4OGUuYy04ODgtXFx0cnRsOHh4eHVfcmVzdG9yZV9yZWdzKHByaXYsIGFkZGFfcmVncywgcHJpdi1cXHUwMDNlYWRkYV9iYWNrdXAsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTg4ZS5jOjg4OTpcXHRcXHRcXHQgICAgICBSVEw4WFhYVV9BRERBX1JFR1MpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE4OGUuYy04OTAtXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxODhlLmMtODk1LVxcdHJ0bDh4eHh1X3Jlc3RvcmVfcmVncyhwcml2LCBpcWtfYmJfcmVncyxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxODhlLmM6ODk2OlxcdFxcdFxcdCAgICAgIHByaXYtXFx1MDAzZWJiX2JhY2t1cCwgUlRMOFhYWFVfQkJfUkVHUyk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTg4ZS5jLTg5Ny1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE4OGUuYz05MDY9c3RhdGljIHZvaWQgcnRsODE4OGV1X3BoeV9pcV9jYWxpYnJhdGUoc3RydWN0IHJ0bDh4eHh1X3ByaXYgKnByaXYpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxODhlLmMtOTg5LVxcdHJ0bDh4eHh1X3NhdmVfcmVncyhwcml2LCBydGw4eHh4dV9pcWtfcGh5X2lxX2JiX3JlZyxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxODhlLmM6OTkwOlxcdFxcdFxcdCAgIHByaXYtXFx1MDAzZWJiX3JlY292ZXJ5X2JhY2t1cCwgUlRMOFhYWFVfQkJfUkVHUyk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTg4ZS5jLTk5MS19XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxODhlLmM9MTAwMj1zdGF0aWMgaW50IHJ0bDgxODhlX2VtdV90b19hY3RpdmUoc3RydWN0IHJ0bDh4eHh1X3ByaXYgKnByaXYpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxODhlLmMtMTAwOS1cXHQvKiB3YWl0IHRpbGwgMHgwNFsxN10gPSAxIHBvd2VyIHJlYWR5Ki9cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxODhlLmM6MTAxMDpcXHRmb3IgKGNvdW50ID0gUlRMOFhYWFVfTUFYX1JFR19QT0xMOyBjb3VudDsgY291bnQtLSkge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE4OGUuYy0xMDExLVxcdFxcdHZhbDMyID0gcnRsOHh4eHVfcmVhZDMyKHByaXYsIFJFR19BUFNfRlNNQ08pO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTg4ZS5jLTEwNDctXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTg4ZS5jOjEwNDg6XFx0Zm9yIChjb3VudCA9IFJUTDhYWFhVX01BWF9SRUdfUE9MTDsgY291bnQ7IGNvdW50LS0pIHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxODhlLmMtMTA0OS1cXHRcXHR2YWwzMiA9IHJ0bDh4eHh1X3JlYWQzMihwcml2LCBSRUdfQVBTX0ZTTUNPKTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE4OGUuYz0xMzM0PXN0YXRpYyBpbnQgcnRsODE4OGV1X2xlZF9icmlnaHRuZXNzX3NldChzdHJ1Y3QgbGVkX2NsYXNzZGV2ICpsZWRfY2RldixcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE4OGUuYy0xMzQ3LVxcdFxcdGxlZGNmZyB8PSBMRURDRkcyX1NXX0xFRF9DT05UUk9MO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE4OGUuYzoxMzQ4OlxcdH0gZWxzZSBpZiAoYnJpZ2h0bmVzcyA9PSBSVEw4WFhYVV9IV19MRURfQ09OVFJPTCkge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE4OGUuYy0xMzQ5LVxcdFxcdGxlZGNmZyBcXHUwMDI2PSB+TEVEQ0ZHMl9TV19MRURfRElTQUJMRTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE4OGYuYy0yLS8qXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTg4Zi5jOjM6ICogUlRMOFhYWFUgbWFjODAyMTEgVVNCIGRyaXZlciAtIDgxODhmIHNwZWNpZmljIHN1YmRyaXZlclxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE4OGYuYy00LSAqXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxODhmLmM9MTA2MT1zdGF0aWMgdm9pZCBydGw4MTg4ZnVfcGh5X2lxY2FsaWJyYXRlKHN0cnVjdCBydGw4eHh4dV9wcml2ICpwcml2LFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTg4Zi5jLTEwNjgtXFx0aW50IHJldHJ5ID0gMjtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxODhmLmM6MTA2OTpcXHRzdGF0aWMgY29uc3QgdTMyIGFkZGFfcmVnc1tSVEw4WFhYVV9BRERBX1JFR1NdID0ge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE4OGYuYy0xMDcwLVxcdFxcdFJFR19GUEdBMF9YQ0RfU1dJVENIX0NUUkwsIFJFR19CTFVFVE9PVEgsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxODhmLmMtMTA3OC1cXHR9O1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE4OGYuYzoxMDc5OlxcdHN0YXRpYyBjb25zdCB1MzIgaXFrX21hY19yZWdzW1JUTDhYWFhVX01BQ19SRUdTXSA9IHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxODhmLmMtMTA4MC1cXHRcXHRSRUdfVFhQQVVTRSwgUkVHX0JFQUNPTl9DVFJMLFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTg4Zi5jLTEwODItXFx0fTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxODhmLmM6MTA4MzpcXHRzdGF0aWMgY29uc3QgdTMyIGlxa19iYl9yZWdzW1JUTDhYWFhVX0JCX1JFR1NdID0ge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE4OGYuYy0xMDg0LVxcdFxcdFJFR19PRkRNMF9UUlhfUEFUSF9FTkFCTEUsIFJFR19PRkRNMF9UUl9NVVhfUEFSLFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTg4Zi5jLTEwOTktXFx0XFx0cnRsOHh4eHVfc2F2ZV9yZWdzKHByaXYsIGFkZGFfcmVncywgcHJpdi1cXHUwMDNlYWRkYV9iYWNrdXAsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTg4Zi5jOjExMDA6XFx0XFx0XFx0XFx0ICAgUlRMOFhYWFVfQUREQV9SRUdTKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxODhmLmMtMTEwMS1cXHRcXHRydGw4eHh4dV9zYXZlX21hY19yZWdzKHByaXYsIGlxa19tYWNfcmVncywgcHJpdi1cXHUwMDNlbWFjX2JhY2t1cCk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTg4Zi5jLTExMDItXFx0XFx0cnRsOHh4eHVfc2F2ZV9yZWdzKHByaXYsIGlxa19iYl9yZWdzLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE4OGYuYzoxMTAzOlxcdFxcdFxcdFxcdCAgIHByaXYtXFx1MDAzZWJiX2JhY2t1cCwgUlRMOFhYWFVfQkJfUkVHUyk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTg4Zi5jLTExMDQtXFx0fVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTg4Zi5jLTExODktXFx0cnRsOHh4eHVfcmVzdG9yZV9yZWdzKHByaXYsIGFkZGFfcmVncywgcHJpdi1cXHUwMDNlYWRkYV9iYWNrdXAsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTg4Zi5jOjExOTA6XFx0XFx0XFx0ICAgICAgUlRMOFhYWFVfQUREQV9SRUdTKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxODhmLmMtMTE5MS1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE4OGYuYy0xMTk2LVxcdHJ0bDh4eHh1X3Jlc3RvcmVfcmVncyhwcml2LCBpcWtfYmJfcmVncyxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxODhmLmM6MTE5NzpcXHRcXHRcXHQgICAgICBwcml2LVxcdTAwM2ViYl9iYWNrdXAsIFJUTDhYWFhVX0JCX1JFR1MpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE4OGYuYy0xMTk4LVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTg4Zi5jPTEyMTg9c3RhdGljIHZvaWQgcnRsODE4OGZ1X3BoeV9pcV9jYWxpYnJhdGUoc3RydWN0IHJ0bDh4eHh1X3ByaXYgKnByaXYpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxODhmLmMtMTMxMS1cXHRydGw4eHh4dV9zYXZlX3JlZ3MocHJpdiwgcnRsOHh4eHVfaXFrX3BoeV9pcV9iYl9yZWcsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTg4Zi5jOjEzMTI6XFx0XFx0XFx0ICAgcHJpdi1cXHUwMDNlYmJfcmVjb3ZlcnlfYmFja3VwLCBSVEw4WFhYVV9CQl9SRUdTKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxODhmLmMtMTMxMy1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE4OGYuYz0xMzMzPXN0YXRpYyBpbnQgcnRsODE4OGZfZW11X3RvX2FjdGl2ZShzdHJ1Y3QgcnRsOHh4eHVfcHJpdiAqcHJpdilcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE4OGYuYy0xMzQ0LVxcdC8qIHdhaXQgdGlsbCAweDA0WzE3XSA9IDEgcG93ZXIgcmVhZHkgKi9cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxODhmLmM6MTM0NTpcXHRmb3IgKGNvdW50ID0gUlRMOFhYWFVfTUFYX1JFR19QT0xMOyBjb3VudDsgY291bnQtLSkge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE4OGYuYy0xMzQ2LVxcdFxcdHZhbDMyID0gcnRsOHh4eHVfcmVhZDMyKHByaXYsIFJFR19BUFNfRlNNQ08pO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTg4Zi5jLTEzNzItXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTg4Zi5jOjEzNzM6XFx0Zm9yIChjb3VudCA9IFJUTDhYWFhVX01BWF9SRUdfUE9MTDsgY291bnQ7IGNvdW50LS0pIHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxODhmLmMtMTM3NC1cXHRcXHR2YWwzMiA9IHJ0bDh4eHh1X3JlYWQzMihwcml2LCBSRUdfQVBTX0ZTTUNPKTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE4OGYuYz0xMzkzPXN0YXRpYyBpbnQgcnRsODE4OGZ1X2FjdGl2ZV90b19lbXUoc3RydWN0IHJ0bDh4eHh1X3ByaXYgKnByaXYpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxODhmLmMtMTQxNC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxODhmLmM6MTQxNTpcXHRmb3IgKGNvdW50ID0gUlRMOFhYWFVfTUFYX1JFR19QT0xMOyBjb3VudDsgY291bnQtLSkge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE4OGYuYy0xNDE2LVxcdFxcdHZhbDMyID0gcnRsOHh4eHVfcmVhZDMyKHByaXYsIFJFR19BUFNfRlNNQ08pO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTkyYy5jLTItLypcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxOTJjLmM6MzogKiBSVEw4WFhYVSBtYWM4MDIxMSBVU0IgZHJpdmVyIC0gODE4OGMvODE4OHIvODE5MmMgc3BlY2lmaWMgc3ViZHJpdmVyXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTkyYy5jLTQtICpcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE5MmMuYy0xOC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxOTJjLmM6MTk6I2lmZGVmIENPTkZJR19SVEw4WFhYVV9VTlRFU1RFRFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE5MmMuYy0yMC1zdGF0aWMgc3RydWN0IHJ0bDh4eHh1X3Bvd2VyX2Jhc2UgcnRsODE5MmNfcG93ZXJfYmFzZSA9IHtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE5MmMuYz02NzQ9c3RhdGljIGludCBydGw4MTkyY3VfbGVkX2JyaWdodG5lc3Nfc2V0KHN0cnVjdCBsZWRfY2xhc3NkZXYgKmxlZF9jZGV2LFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTkyYy5jLTY4NS1cXHRcXHRsZWRjZmcgPSBMRURDRkcyX1NXX0xFRF9DT05UUk9MO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE5MmMuYzo2ODY6XFx0ZWxzZSBpZiAoYnJpZ2h0bmVzcyA9PSBSVEw4WFhYVV9IV19MRURfQ09OVFJPTClcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxOTJjLmMtNjg3LVxcdFxcdGxlZGNmZyA9IExFRENGRzJfSFdfTEVEX0NPTlRST0wgfCBMRURDRkcyX0hXX0xFRF9FTkFCTEU7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxOTJlLmMtMi0vKlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE5MmUuYzozOiAqIFJUTDhYWFhVIG1hYzgwMjExIFVTQiBkcml2ZXIgLSA4MTkyZSBzcGVjaWZpYyBzdWJkcml2ZXJcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxOTJlLmMtNC0gKlxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTkyZS5jPTEwNTA9c3RhdGljIHZvaWQgcnRsODE5MmV1X3BoeV9pcWNhbGlicmF0ZShzdHJ1Y3QgcnRsOHh4eHVfcHJpdiAqcHJpdixcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE5MmUuYy0xMDU2LVxcdGludCByZXRyeSA9IDI7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTkyZS5jOjEwNTc6XFx0c3RhdGljIGNvbnN0IHUzMiBhZGRhX3JlZ3NbUlRMOFhYWFVfQUREQV9SRUdTXSA9IHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxOTJlLmMtMTA1OC1cXHRcXHRSRUdfRlBHQTBfWENEX1NXSVRDSF9DVFJMLCBSRUdfQkxVRVRPT1RILFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTkyZS5jLTEwNjYtXFx0fTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxOTJlLmM6MTA2NzpcXHRzdGF0aWMgY29uc3QgdTMyIGlxa19tYWNfcmVnc1tSVEw4WFhYVV9NQUNfUkVHU10gPSB7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTkyZS5jLTEwNjgtXFx0XFx0UkVHX1RYUEFVU0UsIFJFR19CRUFDT05fQ1RSTCxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE5MmUuYy0xMDcwLVxcdH07XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTkyZS5jOjEwNzE6XFx0c3RhdGljIGNvbnN0IHUzMiBpcWtfYmJfcmVnc1tSVEw4WFhYVV9CQl9SRUdTXSA9IHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxOTJlLmMtMTA3Mi1cXHRcXHRSRUdfT0ZETTBfVFJYX1BBVEhfRU5BQkxFLCBSRUdfT0ZETTBfVFJfTVVYX1BBUixcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE5MmUuYy0xMDg3LVxcdFxcdHJ0bDh4eHh1X3NhdmVfcmVncyhwcml2LCBhZGRhX3JlZ3MsIHByaXYtXFx1MDAzZWFkZGFfYmFja3VwLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE5MmUuYzoxMDg4OlxcdFxcdFxcdFxcdCAgIFJUTDhYWFhVX0FEREFfUkVHUyk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTkyZS5jLTEwODktXFx0XFx0cnRsOHh4eHVfc2F2ZV9tYWNfcmVncyhwcml2LCBpcWtfbWFjX3JlZ3MsIHByaXYtXFx1MDAzZW1hY19iYWNrdXApO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE5MmUuYy0xMDkwLVxcdFxcdHJ0bDh4eHh1X3NhdmVfcmVncyhwcml2LCBpcWtfYmJfcmVncyxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxOTJlLmM6MTA5MTpcXHRcXHRcXHRcXHQgICBwcml2LVxcdTAwM2ViYl9iYWNrdXAsIFJUTDhYWFhVX0JCX1JFR1MpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE5MmUuYy0xMDkyLVxcdH1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE5MmUuYy0xMjA1LVxcdFxcdHJ0bDh4eHh1X3Jlc3RvcmVfcmVncyhwcml2LCBhZGRhX3JlZ3MsIHByaXYtXFx1MDAzZWFkZGFfYmFja3VwLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE5MmUuYzoxMjA2OlxcdFxcdFxcdFxcdCAgICAgIFJUTDhYWFhVX0FEREFfUkVHUyk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTkyZS5jLTEyMDctXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxOTJlLmMtMTIxMi1cXHRcXHRydGw4eHh4dV9yZXN0b3JlX3JlZ3MocHJpdiwgaXFrX2JiX3JlZ3MsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTkyZS5jOjEyMTM6XFx0XFx0XFx0XFx0ICAgICAgcHJpdi1cXHUwMDNlYmJfYmFja3VwLCBSVEw4WFhYVV9CQl9SRUdTKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxOTJlLmMtMTIxNC1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE5MmUuYz0xMjM2PXN0YXRpYyB2b2lkIHJ0bDgxOTJldV9waHlfaXFfY2FsaWJyYXRlKHN0cnVjdCBydGw4eHh4dV9wcml2ICpwcml2KVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTkyZS5jLTEzMjMtXFx0cnRsOHh4eHVfc2F2ZV9yZWdzKHByaXYsIHJ0bDh4eHh1X2lxa19waHlfaXFfYmJfcmVnLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE5MmUuYzoxMzI0OlxcdFxcdFxcdCAgIHByaXYtXFx1MDAzZWJiX3JlY292ZXJ5X2JhY2t1cCwgUlRMOFhYWFVfQkJfUkVHUyk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTkyZS5jLTEzMjUtfVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTkyZS5jPTEzNzI9c3RhdGljIGludCBydGw4MTkyZV9lbXVfdG9fYWN0aXZlKHN0cnVjdCBydGw4eHh4dV9wcml2ICpwcml2KVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTkyZS5jLTEzOTMtXFx0Lyogd2FpdCB0aWxsIDB4MDRbMTddID0gMSBwb3dlciByZWFkeSovXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTkyZS5jOjEzOTQ6XFx0Zm9yIChjb3VudCA9IFJUTDhYWFhVX01BWF9SRUdfUE9MTDsgY291bnQ7IGNvdW50LS0pIHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxOTJlLmMtMTM5NS1cXHRcXHR2YWwzMiA9IHJ0bDh4eHh1X3JlYWQzMihwcml2LCBSRUdfQVBTX0ZTTUNPKTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE5MmUuYy0xNDE4LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE5MmUuYzoxNDE5OlxcdGZvciAoY291bnQgPSBSVEw4WFhYVV9NQVhfUkVHX1BPTEw7IGNvdW50OyBjb3VudC0tKSB7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTkyZS5jLTE0MjAtXFx0XFx0dmFsMzIgPSBydGw4eHh4dV9yZWFkMzIocHJpdiwgUkVHX0FQU19GU01DTyk7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxOTJlLmM9MTQ5Nj1zdGF0aWMgaW50IHJ0bDgxOTJldV9hY3RpdmVfdG9fZW11KHN0cnVjdCBydGw4eHh4dV9wcml2ICpwcml2KVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTkyZS5jLTE1MTUtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTkyZS5jOjE1MTY6XFx0Zm9yIChjb3VudCA9IFJUTDhYWFhVX01BWF9SRUdfUE9MTDsgY291bnQ7IGNvdW50LS0pIHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxOTJlLmMtMTUxNy1cXHRcXHR2YWw4ID0gcnRsOHh4eHVfcmVhZDgocHJpdiwgUkVHX0FQU19GU01DTyArIDEpO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTkyZS5jPTE2OTg9c3RhdGljIGludCBydGw4MTkyZXVfbGVkX2JyaWdodG5lc3Nfc2V0KHN0cnVjdCBsZWRfY2xhc3NkZXYgKmxlZF9jZGV2LFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTkyZS5jLTE3MTAtXFx0XFx0bGVkY2ZnIFxcdTAwMjY9IH4oTEVEQ0ZHMV9IV19MRURfQ09OVFJPTCB8IExFRENGRzFfTEVEX0RJU0FCTEUpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE5MmUuYzoxNzExOlxcdH0gZWxzZSBpZiAoYnJpZ2h0bmVzcyA9PSBSVEw4WFhYVV9IV19MRURfQ09OVFJPTCkge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE5MmUuYy0xNzEyLVxcdFxcdGxlZGNmZyBcXHUwMDI2PSB+TEVEQ0ZHMV9MRURfRElTQUJMRTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE5MmYuYy0yLS8qXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTkyZi5jOjM6ICogUlRMOFhYWFUgbWFjODAyMTEgVVNCIGRyaXZlciAtIDgxOTJmdSBzcGVjaWZpYyBzdWJkcml2ZXJcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxOTJmLmMtNC0gKlxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTkyZi5jPTEyNTU9c3RhdGljIHZvaWQgcnRsODE5MmZ1X3BoeV9pcWNhbGlicmF0ZShzdHJ1Y3QgcnRsOHh4eHVfcHJpdiAqcHJpdixcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE5MmYuYy0xMjYwLVxcdH07XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTkyZi5jOjEyNjE6XFx0c3RhdGljIGNvbnN0IHUzMiBpcWtfbWFjX3JlZ3NbUlRMOFhYWFVfTUFDX1JFR1NdID0ge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE5MmYuYy0xMjYyLVxcdFxcdFJFR19UWFBBVVNFLCBSRUdfQkVBQ09OX0NUUkwsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxOTJmLmMtMTI2NC1cXHR9O1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE5MmYuYzoxMjY1OlxcdHN0YXRpYyBjb25zdCB1MzIgaXFrX2JiX3JlZ3NbUlRMOFhYWFVfQkJfUkVHU10gPSB7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTkyZi5jLTEyNjYtXFx0XFx0UkVHX09GRE0wX1RSWF9QQVRIX0VOQUJMRSwgUkVHX09GRE0wX1RSX01VWF9QQVIsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxOTJmLmMtMTI5My1cXHRcXHRydGw4eHh4dV9zYXZlX3JlZ3MocHJpdiwgaXFrX2JiX3JlZ3MsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTkyZi5jOjEyOTQ6XFx0XFx0XFx0XFx0ICAgcHJpdi1cXHUwMDNlYmJfYmFja3VwLCBSVEw4WFhYVV9CQl9SRUdTKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxOTJmLmMtMTI5NS1cXHR9XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxOTJmLmMtMTQyNS1cXHQvKiBSZWxvYWQgQkIgcGFyYW1ldGVycyAqL1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE5MmYuYzoxNDI2OlxcdHJ0bDh4eHh1X3Jlc3RvcmVfcmVncyhwcml2LCBpcWtfYmJfcmVncywgcHJpdi1cXHUwMDNlYmJfYmFja3VwLCBSVEw4WFhYVV9CQl9SRUdTKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxOTJmLmMtMTQyNy1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE5MmYuYz0xNjAyPXN0YXRpYyBpbnQgcnRsODE5MmZ1X2VtdV90b19hY3RpdmUoc3RydWN0IHJ0bDh4eHh1X3ByaXYgKnByaXYpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxOTJmLmMtMTYyMi1cXHQvKiB3YWl0IHRpbGwgMHgwNFsxN10gPSAxIHBvd2VyIHJlYWR5ICovXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTkyZi5jOjE2MjM6XFx0Zm9yIChjb3VudCA9IFJUTDhYWFhVX01BWF9SRUdfUE9MTDsgY291bnQ7IGNvdW50LS0pIHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxOTJmLmMtMTYyNC1cXHRcXHR2YWwzMiA9IHJ0bDh4eHh1X3JlYWQzMihwcml2LCBSRUdfQVBTX0ZTTUNPKTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE5MmYuYy0xNjM1LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE5MmYuYzoxNjM2OlxcdGZvciAoY291bnQgPSBSVEw4WFhYVV9NQVhfUkVHX1BPTEw7IGNvdW50OyBjb3VudC0tKSB7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTkyZi5jLTE2MzctXFx0XFx0dmFsMzIgPSBydGw4eHh4dV9yZWFkMzIocHJpdiwgUkVHX0FQU19GU01DTyk7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxOTJmLmMtMTY1OS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxOTJmLmM6MTY2MDpcXHRmb3IgKGNvdW50ID0gUlRMOFhYWFVfTUFYX1JFR19QT0xMOyBjb3VudDsgY291bnQtLSkge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE5MmYuYy0xNjYxLVxcdFxcdHZhbDMyID0gcnRsOHh4eHVfcmVhZDMyKHByaXYsIFJFR19BUFNfRlNNQ08pO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTkyZi5jPTE3Mjg9c3RhdGljIGludCBydGw4MTkyZnVfYWN0aXZlX3RvX2VtdShzdHJ1Y3QgcnRsOHh4eHVfcHJpdiAqcHJpdilcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE5MmYuYy0xNzQ0LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE5MmYuYzoxNzQ1OlxcdGZvciAoY291bnQgPSBSVEw4WFhYVV9NQVhfUkVHX1BPTEw7IGNvdW50OyBjb3VudC0tKSB7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTkyZi5jLTE3NDYtXFx0XFx0dmFsMzIgPSBydGw4eHh4dV9yZWFkMzIocHJpdiwgUkVHX0FQU19GU01DTyk7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxOTJmLmM9MTk5NT1zdGF0aWMgaW50IHJ0bDgxOTJmdV9sZWRfYnJpZ2h0bmVzc19zZXQoc3RydWN0IGxlZF9jbGFzc2RldiAqbGVkX2NkZXYsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxOTJmLmMtMjAyNC1cXHRcXHR1MzJwX3JlcGxhY2VfYml0cyhcXHUwMDI2bGVkY2ZnLCBMRURfU1dfT04sIExFRENGRzBfTEVEMVNWKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxOTJmLmM6MjAyNTpcXHR9IGVsc2UgaWYgKGJyaWdodG5lc3MgPT0gUlRMOFhYWFVfSFdfTEVEX0NPTlRST0wpIHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxOTJmLmMtMjAyNi1cXHRcXHR1MzJwX3JlcGxhY2VfYml0cyhcXHUwMDI2bGVkY2ZnLCBMRURfTU9ERV9UWF9PUl9SWF9FVkVOVFMsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1Lzg3MTBiLmMtMi0vKlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODcxMGIuYzozOiAqIFJUTDhYWFhVIG1hYzgwMjExIFVTQiBkcml2ZXIgLSA4NzEwYnUgYWthIDgxODhndSBzcGVjaWZpYyBzdWJkcml2ZXJcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1Lzg3MTBiLmMtNC0gKlxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84NzEwYi5jPTQ2Mz1zdGF0aWMgdTMyIHJ0bDg3MTBiX2luZGlyZWN0X3JlYWQzMihzdHJ1Y3QgcnRsOHh4eHVfcHJpdiAqcHJpdiwgdTMyIGFkZHIpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1Lzg3MTBiLmMtNDkxLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODcxMGIuYzo0OTI6XFx0aWYgKHJ0bDh4eHh1X2RlYnVnIFxcdTAwMjYgUlRMOFhYWFVfREVCVUdfUkVHX1JFQUQpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84NzEwYi5jLTQ5My1cXHRcXHRkZXZfaW5mbyhkZXYsIFxcXCIlcyglMDR4KSA9IDB4JTA4eFxcXFxuXFxcIiwgX19mdW5jX18sIGFkZHIsIHZhbHVlKTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODcxMGIuYz00OTg9c3RhdGljIHZvaWQgcnRsODcxMGJfaW5kaXJlY3Rfd3JpdGUzMihzdHJ1Y3QgcnRsOHh4eHVfcHJpdiAqcHJpdiwgdTMyIGFkZHIsIHUzMiB2YWwpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1Lzg3MTBiLmMtNTI1LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODcxMGIuYzo1MjY6XFx0aWYgKHJ0bDh4eHh1X2RlYnVnIFxcdTAwMjYgUlRMOFhYWFVfREVCVUdfUkVHX1dSSVRFKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODcxMGIuYy01MjctXFx0XFx0ZGV2X2luZm8oZGV2LCBcXFwiJXMoJTA0eCkgPSAweCUwOHhcXFxcblxcXCIsIF9fZnVuY19fLCBhZGRyLCB2YWwpO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84NzEwYi5jPTU0MD1zdGF0aWMgaW50IHJ0bDg3MTBiX3JlYWRfZWZ1c2U4KHN0cnVjdCBydGw4eHh4dV9wcml2ICpwcml2LCB1MTYgb2Zmc2V0LCB1OCAqZGF0YSlcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODcxMGIuYy01NTEtXFx0dmFsMzIgPSBydGw4eHh4dV9yZWFkMzIocHJpdiwgUkVHX0VGVVNFX0lORElSRUNUX0NUUkxfODcxMEIpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODcxMGIuYzo1NTI6XFx0Zm9yIChpID0gMDsgaSBcXHUwMDNjIFJUTDhYWFhVX01BWF9SRUdfUE9MTDsgaSsrKSB7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84NzEwYi5jLTU1My1cXHRcXHR2YWwzMiA9IHJ0bDh4eHh1X3JlYWQzMihwcml2LCBSRUdfRUZVU0VfSU5ESVJFQ1RfQ1RSTF84NzEwQik7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1Lzg3MTBiLmMtNTU3LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODcxMGIuYzo1NTg6XFx0aWYgKGkgPT0gUlRMOFhYWFVfTUFYX1JFR19QT0xMKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODcxMGIuYy01NTktXFx0XFx0cmV0dXJuIC1FSU87XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1Lzg3MTBiLmM9MTI1ND1zdGF0aWMgdm9pZCBydGw4NzEwYnVfcGh5X2lxY2FsaWJyYXRlKHN0cnVjdCBydGw4eHh4dV9wcml2ICpwcml2LFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84NzEwYi5jLTEyNjEtXFx0aW50IHJldHJ5ID0gMjtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1Lzg3MTBiLmM6MTI2MjpcXHRzdGF0aWMgY29uc3QgdTMyIGFkZGFfcmVnc1tSVEw4WFhYVV9BRERBX1JFR1NdID0ge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODcxMGIuYy0xMjYzLVxcdFxcdFJFR19GUEdBMF9YQ0RfU1dJVENIX0NUUkwsIFJFR19CTFVFVE9PVEgsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1Lzg3MTBiLmMtMTI3MS1cXHR9O1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODcxMGIuYzoxMjcyOlxcdHN0YXRpYyBjb25zdCB1MzIgaXFrX21hY19yZWdzW1JUTDhYWFhVX01BQ19SRUdTXSA9IHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1Lzg3MTBiLmMtMTI3My1cXHRcXHRSRUdfVFhQQVVTRSwgUkVHX0JFQUNPTl9DVFJMLFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84NzEwYi5jLTEyNzUtXFx0fTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1Lzg3MTBiLmM6MTI3NjpcXHRzdGF0aWMgY29uc3QgdTMyIGlxa19iYl9yZWdzW1JUTDhYWFhVX0JCX1JFR1NdID0ge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODcxMGIuYy0xMjc3LVxcdFxcdFJFR19PRkRNMF9UUlhfUEFUSF9FTkFCTEUsIFJFR19PRkRNMF9UUl9NVVhfUEFSLFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84NzEwYi5jLTEyOTItXFx0XFx0cnRsOHh4eHVfc2F2ZV9yZWdzKHByaXYsIGFkZGFfcmVncywgcHJpdi1cXHUwMDNlYWRkYV9iYWNrdXAsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84NzEwYi5jOjEyOTM6XFx0XFx0XFx0XFx0ICAgUlRMOFhYWFVfQUREQV9SRUdTKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1Lzg3MTBiLmMtMTI5NC1cXHRcXHRydGw4eHh4dV9zYXZlX21hY19yZWdzKHByaXYsIGlxa19tYWNfcmVncywgcHJpdi1cXHUwMDNlbWFjX2JhY2t1cCk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84NzEwYi5jLTEyOTUtXFx0XFx0cnRsOHh4eHVfc2F2ZV9yZWdzKHByaXYsIGlxa19iYl9yZWdzLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODcxMGIuYzoxMjk2OlxcdFxcdFxcdFxcdCAgIHByaXYtXFx1MDAzZWJiX2JhY2t1cCwgUlRMOFhYWFVfQkJfUkVHUyk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84NzEwYi5jLTEyOTctXFx0fVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84NzEwYi5jLTEzODAtXFx0LyogUmVsb2FkIEFEREEgcG93ZXIgc2F2aW5nIHBhcmFtZXRlcnMgKi9cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1Lzg3MTBiLmM6MTM4MTpcXHRydGw4eHh4dV9yZXN0b3JlX3JlZ3MocHJpdiwgYWRkYV9yZWdzLCBwcml2LVxcdTAwM2VhZGRhX2JhY2t1cCwgUlRMOFhYWFVfQUREQV9SRUdTKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1Lzg3MTBiLmMtMTM4Mi1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODcxMGIuYy0xMzg2LVxcdC8qIFJlbG9hZCBCQiBwYXJhbWV0ZXJzICovXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84NzEwYi5jOjEzODc6XFx0cnRsOHh4eHVfcmVzdG9yZV9yZWdzKHByaXYsIGlxa19iYl9yZWdzLCBwcml2LVxcdTAwM2ViYl9iYWNrdXAsIFJUTDhYWFhVX0JCX1JFR1MpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODcxMGIuYy0xMzg4LVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84NzEwYi5jPTE0MDY9c3RhdGljIHZvaWQgcnRsODcxMGJ1X3BoeV9pcV9jYWxpYnJhdGUoc3RydWN0IHJ0bDh4eHh1X3ByaXYgKnByaXYpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1Lzg3MTBiLmMtMTQ3NS1cXHRydGw4eHh4dV9zYXZlX3JlZ3MocHJpdiwgcnRsOHh4eHVfaXFrX3BoeV9pcV9iYl9yZWcsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84NzEwYi5jOjE0NzY6XFx0XFx0XFx0ICAgcHJpdi1cXHUwMDNlYmJfcmVjb3ZlcnlfYmFja3VwLCBSVEw4WFhYVV9CQl9SRUdTKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1Lzg3MTBiLmMtMTQ3Ny1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODcxMGIuYz0xNDgxPXN0YXRpYyBpbnQgcnRsODcxMGJfZW11X3RvX2FjdGl2ZShzdHJ1Y3QgcnRsOHh4eHVfcHJpdiAqcHJpdilcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODcxMGIuYy0xNTAwLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODcxMGIuYzoxNTAxOlxcdGZvciAoY291bnQgPSBSVEw4WFhYVV9NQVhfUkVHX1BPTEw7IGNvdW50OyBjb3VudC0tKSB7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84NzEwYi5jLTE1MDItXFx0XFx0dmFsOCA9IHJ0bDh4eHh1X3JlYWQ4KHByaXYsIDB4MjApO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84NzEwYi5jPTE1MTU9c3RhdGljIGludCBydGw4NzEwYnVfYWN0aXZlX3RvX2VtdShzdHJ1Y3QgcnRsOHh4eHVfcHJpdiAqcHJpdilcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODcxMGIuYy0xNTM1LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODcxMGIuYzoxNTM2OlxcdGZvciAoY291bnQgPSBSVEw4WFhYVV9NQVhfUkVHX1BPTEw7IGNvdW50OyBjb3VudC0tKSB7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84NzEwYi5jLTE1MzctXFx0XFx0dmFsOCA9IHJ0bDh4eHh1X3JlYWQ4KHByaXYsIDB4MjApO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84NzIzYS5jLTItLypcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1Lzg3MjNhLmM6MzogKiBSVEw4WFhYVSBtYWM4MDIxMSBVU0IgZHJpdmVyIC0gODcyM2Egc3BlY2lmaWMgc3ViZHJpdmVyXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84NzIzYS5jLTQtICpcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODcyM2EuYz0yNzY9c3RhdGljIGludCBydGw4NzIzYV9lbXVfdG9fYWN0aXZlKHN0cnVjdCBydGw4eHh4dV9wcml2ICpwcml2KVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84NzIzYS5jLTMwNC1cXHQvKiB3YWl0IHRpbGwgMHgwNFsxN10gPSAxIHBvd2VyIHJlYWR5Ki9cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1Lzg3MjNhLmM6MzA1OlxcdGZvciAoY291bnQgPSBSVEw4WFhYVV9NQVhfUkVHX1BPTEw7IGNvdW50OyBjb3VudC0tKSB7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84NzIzYS5jLTMwNi1cXHRcXHR2YWwzMiA9IHJ0bDh4eHh1X3JlYWQzMihwcml2LCBSRUdfQVBTX0ZTTUNPKTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODcyM2EuYy0zMzktXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84NzIzYS5jOjM0MDpcXHRmb3IgKGNvdW50ID0gUlRMOFhYWFVfTUFYX1JFR19QT0xMOyBjb3VudDsgY291bnQtLSkge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODcyM2EuYy0zNDEtXFx0XFx0dmFsMzIgPSBydGw4eHh4dV9yZWFkMzIocHJpdiwgUkVHX0FQU19GU01DTyk7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1Lzg3MjNhLmM9NDE0PXN0YXRpYyBpbnQgcnRsODcyM2F1X2FjdGl2ZV90b19lbXUoc3RydWN0IHJ0bDh4eHh1X3ByaXYgKnByaXYpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1Lzg3MjNhLmMtNDMzLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODcyM2EuYzo0MzQ6XFx0Zm9yIChjb3VudCA9IFJUTDhYWFhVX01BWF9SRUdfUE9MTDsgY291bnQ7IGNvdW50LS0pIHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1Lzg3MjNhLmMtNDM1LVxcdFxcdHZhbDggPSBydGw4eHh4dV9yZWFkOChwcml2LCBSRUdfQVBTX0ZTTUNPICsgMSk7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1Lzg3MjNhLmM9NTc5PXN0YXRpYyBpbnQgcnRsODcyM2F1X2xlZF9icmlnaHRuZXNzX3NldChzdHJ1Y3QgbGVkX2NsYXNzZGV2ICpsZWRfY2RldixcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODcyM2EuYy01OTItXFx0XFx0bGVkY2ZnIHw9IExFRENGRzJfU1dfTEVEX0NPTlRST0w7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84NzIzYS5jOjU5MzpcXHR9IGVsc2UgaWYgKGJyaWdodG5lc3MgPT0gUlRMOFhYWFVfSFdfTEVEX0NPTlRST0wpIHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1Lzg3MjNhLmMtNTk0LVxcdFxcdGxlZGNmZyBcXHUwMDI2PSB+TEVEQ0ZHMl9TV19MRURfRElTQUJMRTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODcyM2IuYy0yLS8qXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84NzIzYi5jOjM6ICogUlRMOFhYWFUgbWFjODAyMTEgVVNCIGRyaXZlciAtIDg3MjNiIHNwZWNpZmljIHN1YmRyaXZlclxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODcyM2IuYy00LSAqXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1Lzg3MjNiLmM9ODk0PXN0YXRpYyB2b2lkIHJ0bDg3MjNidV9waHlfaXFjYWxpYnJhdGUoc3RydWN0IHJ0bDh4eHh1X3ByaXYgKnByaXYsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1Lzg3MjNiLmMtOTAwLVxcdGludCByZXRyeSA9IDI7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84NzIzYi5jOjkwMTpcXHRzdGF0aWMgY29uc3QgdTMyIGFkZGFfcmVnc1tSVEw4WFhYVV9BRERBX1JFR1NdID0ge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODcyM2IuYy05MDItXFx0XFx0UkVHX0ZQR0EwX1hDRF9TV0lUQ0hfQ1RSTCwgUkVHX0JMVUVUT09USCxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODcyM2IuYy05MTAtXFx0fTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1Lzg3MjNiLmM6OTExOlxcdHN0YXRpYyBjb25zdCB1MzIgaXFrX21hY19yZWdzW1JUTDhYWFhVX01BQ19SRUdTXSA9IHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1Lzg3MjNiLmMtOTEyLVxcdFxcdFJFR19UWFBBVVNFLCBSRUdfQkVBQ09OX0NUUkwsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1Lzg3MjNiLmMtOTE0LVxcdH07XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84NzIzYi5jOjkxNTpcXHRzdGF0aWMgY29uc3QgdTMyIGlxa19iYl9yZWdzW1JUTDhYWFhVX0JCX1JFR1NdID0ge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODcyM2IuYy05MTYtXFx0XFx0UkVHX09GRE0wX1RSWF9QQVRIX0VOQUJMRSwgUkVHX09GRE0wX1RSX01VWF9QQVIsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1Lzg3MjNiLmMtOTMxLVxcdFxcdHJ0bDh4eHh1X3NhdmVfcmVncyhwcml2LCBhZGRhX3JlZ3MsIHByaXYtXFx1MDAzZWFkZGFfYmFja3VwLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODcyM2IuYzo5MzI6XFx0XFx0XFx0XFx0ICAgUlRMOFhYWFVfQUREQV9SRUdTKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1Lzg3MjNiLmMtOTMzLVxcdFxcdHJ0bDh4eHh1X3NhdmVfbWFjX3JlZ3MocHJpdiwgaXFrX21hY19yZWdzLCBwcml2LVxcdTAwM2VtYWNfYmFja3VwKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1Lzg3MjNiLmMtOTM0LVxcdFxcdHJ0bDh4eHh1X3NhdmVfcmVncyhwcml2LCBpcWtfYmJfcmVncyxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1Lzg3MjNiLmM6OTM1OlxcdFxcdFxcdFxcdCAgIHByaXYtXFx1MDAzZWJiX2JhY2t1cCwgUlRMOFhYWFVfQkJfUkVHUyk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84NzIzYi5jLTkzNi1cXHR9XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1Lzg3MjNiLmMtMTA3MS1cXHRcXHRydGw4eHh4dV9yZXN0b3JlX3JlZ3MocHJpdiwgYWRkYV9yZWdzLCBwcml2LVxcdTAwM2VhZGRhX2JhY2t1cCxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1Lzg3MjNiLmM6MTA3MjpcXHRcXHRcXHRcXHQgICAgICBSVEw4WFhYVV9BRERBX1JFR1MpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODcyM2IuYy0xMDczLVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84NzIzYi5jLTEwNzgtXFx0XFx0cnRsOHh4eHVfcmVzdG9yZV9yZWdzKHByaXYsIGlxa19iYl9yZWdzLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODcyM2IuYzoxMDc5OlxcdFxcdFxcdFxcdCAgICAgIHByaXYtXFx1MDAzZWJiX2JhY2t1cCwgUlRMOFhYWFVfQkJfUkVHUyk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84NzIzYi5jLTEwODAtXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1Lzg3MjNiLmM9MTEwMj1zdGF0aWMgdm9pZCBydGw4NzIzYnVfcGh5X2lxX2NhbGlicmF0ZShzdHJ1Y3QgcnRsOHh4eHVfcHJpdiAqcHJpdilcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODcyM2IuYy0xMjA0LVxcdHJ0bDh4eHh1X3NhdmVfcmVncyhwcml2LCBydGw4eHh4dV9pcWtfcGh5X2lxX2JiX3JlZyxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1Lzg3MjNiLmM6MTIwNTpcXHRcXHRcXHQgICBwcml2LVxcdTAwM2ViYl9yZWNvdmVyeV9iYWNrdXAsIFJUTDhYWFhVX0JCX1JFR1MpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODcyM2IuYy0xMjA2LVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84NzIzYi5jPTEyMjY9c3RhdGljIGludCBydGw4NzIzYnVfYWN0aXZlX3RvX2VtdShzdHJ1Y3QgcnRsOHh4eHVfcHJpdiAqcHJpdilcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODcyM2IuYy0xMjUwLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODcyM2IuYzoxMjUxOlxcdGZvciAoY291bnQgPSBSVEw4WFhYVV9NQVhfUkVHX1BPTEw7IGNvdW50OyBjb3VudC0tKSB7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84NzIzYi5jLTEyNTItXFx0XFx0dmFsOCA9IHJ0bDh4eHh1X3JlYWQ4KHByaXYsIFJFR19BUFNfRlNNQ08gKyAxKTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODcyM2IuYz0xMjg0PXN0YXRpYyBpbnQgcnRsODcyM2JfZW11X3RvX2FjdGl2ZShzdHJ1Y3QgcnRsOHh4eHVfcHJpdiAqcHJpdilcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODcyM2IuYy0xMzEyLVxcdC8qIFdhaXQgdW50aWwgMHgwNFsxN10gPSAxIHBvd2VyIHJlYWR5ICovXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84NzIzYi5jOjEzMTM6XFx0Zm9yIChjb3VudCA9IFJUTDhYWFhVX01BWF9SRUdfUE9MTDsgY291bnQ7IGNvdW50LS0pIHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1Lzg3MjNiLmMtMTMxNC1cXHRcXHR2YWwzMiA9IHJ0bDh4eHh1X3JlYWQzMihwcml2LCBSRUdfQVBTX0ZTTUNPKTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODcyM2IuYy0xMzQ3LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODcyM2IuYzoxMzQ4OlxcdGZvciAoY291bnQgPSBSVEw4WFhYVV9NQVhfUkVHX1BPTEw7IGNvdW50OyBjb3VudC0tKSB7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84NzIzYi5jLTEzNDktXFx0XFx0dmFsMzIgPSBydGw4eHh4dV9yZWFkMzIocHJpdiwgUkVHX0FQU19GU01DTyk7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1Lzg3MjNiLmM9MTY4OD1zdGF0aWMgaW50IHJ0bDg3MjNidV9sZWRfYnJpZ2h0bmVzc19zZXQoc3RydWN0IGxlZF9jbGFzc2RldiAqbGVkX2NkZXYsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1Lzg3MjNiLmMtMTcwMS1cXHRcXHRsZWRjZmcgfD0gTEVEQ0ZHMl9TV19MRURfQ09OVFJPTDtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1Lzg3MjNiLmM6MTcwMjpcXHRlbHNlIGlmIChicmlnaHRuZXNzID09IFJUTDhYWFhVX0hXX0xFRF9DT05UUk9MKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODcyM2IuYy0xNzAzLVxcdFxcdGxlZGNmZyB8PSBMRURDRkcyX0hXX0xFRF9DT05UUk9MIHwgTEVEQ0ZHMl9IV19MRURfRU5BQkxFO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS9LY29uZmlnLTItI1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvS2NvbmZpZzozOiMgUlRMOFhYWFUgV2lyZWxlc3MgTEFOIGRldmljZSBjb25maWd1cmF0aW9uXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS9LY29uZmlnLTQtI1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvS2NvbmZpZzo1OmNvbmZpZyBSVEw4WFhYVVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvS2NvbmZpZy02LVxcdHRyaXN0YXRlIFxcXCJSZWFsdGVrIDgwMi4xMW4gVVNCIHdpcmVsZXNzIGNoaXBzIHN1cHBvcnRcXFwiXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1L0tjb25maWctMjgtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS9LY29uZmlnOjI5OmNvbmZpZyBSVEw4WFhYVV9VTlRFU1RFRFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvS2NvbmZpZy0zMC1cXHRib29sIFxcXCJJbmNsdWRlIHN1cHBvcnQgZm9yIHVudGVzdGVkIFJlYWx0ZWsgOHh4eCBVU0IgZGV2aWNlcyAoRVhQRVJJTUVOVEFMKVxcXCJcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1L0tjb25maWc6MzE6XFx0ZGVwZW5kcyBvbiBSVEw4WFhYVVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvS2NvbmZpZy0zMi1cXHRoZWxwXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1L01ha2VmaWxlLTEtIyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMC1vbmx5XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS9NYWtlZmlsZToyOm9iai0kKENPTkZJR19SVEw4WFhYVSlcXHQrPSBydGw4eHh4dS5vXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS9NYWtlZmlsZS0zLVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS9jb3JlLmMtMi0vKlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvY29yZS5jOjM6ICogUlRMOFhYWFUgbWFjODAyMTEgVVNCIGRyaXZlclxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvY29yZS5jLTQtICpcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvY29yZS5jPTUyPU1PRFVMRV9QQVJNX0RFU0MoZG1hX2FnZ19wYWdlcywgXFxcIlNldCBETUEgYWdncmVnYXRpb24gcGFnZXMgKHJhbmdlIDEtMTI3LCAwIHRvIGRpc2FibGUpXFxcIik7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1L2NvcmUuYy01NC0jZGVmaW5lIFVTQl9WRU5ET1JfSURfUkVBTFRFS1xcdFxcdDB4MGJkYVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvY29yZS5jOjU1OiNkZWZpbmUgUlRMOFhYWFVfUlhfVVJCU1xcdFxcdDMyXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS9jb3JlLmM6NTY6I2RlZmluZSBSVEw4WFhYVV9SWF9VUkJfUEVORElOR19XQVRFUlxcdDhcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1L2NvcmUuYzo1NzojZGVmaW5lIFJUTDhYWFhVX1RYX1VSQlNcXHRcXHQ2NFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvY29yZS5jOjU4OiNkZWZpbmUgUlRMOFhYWFVfVFhfVVJCX0xPV19XQVRFUlxcdDI1XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS9jb3JlLmM6NTk6I2RlZmluZSBSVEw4WFhYVV9UWF9VUkJfSElHSF9XQVRFUlxcdDMyXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS9jb3JlLmMtNjAtXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1L2NvcmUuYz01ODA9c3RhdGljIGNvbnN0IHN0cnVjdCBydGw4eHh4dV9yZnJlZ3MgcnRsOHh4eHVfcmZyZWdzW10gPSB7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1L2NvcmUuYy01OTgtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS9jb3JlLmM6NTk5OmNvbnN0IHUzMiBydGw4eHh4dV9pcWtfcGh5X2lxX2JiX3JlZ1tSVEw4WFhYVV9CQl9SRUdTXSA9IHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1L2NvcmUuYy02MDAtXFx0UkVHX09GRE0wX1hBX1JYX0lRX0lNQkFMQU5DRSxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvY29yZS5jPTYxMT11OCBydGw4eHh4dV9yZWFkOChzdHJ1Y3QgcnRsOHh4eHVfcHJpdiAqcHJpdiwgdTE2IGFkZHIpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1L2NvcmUuYy02MjctXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS9jb3JlLmM6NjI4OlxcdGlmIChydGw4eHh4dV9kZWJ1ZyBcXHUwMDI2IFJUTDhYWFhVX0RFQlVHX1JFR19SRUFEKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvY29yZS5jLTYyOS1cXHRcXHRkZXZfaW5mbyhcXHUwMDI2dWRldi1cXHUwMDNlZGV2LCBcXFwiJXMoJTA0eCkgICA9IDB4JTAyeCwgbGVuICVpXFxcXG5cXFwiLFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS9jb3JlLmM9NjM0PXUxNiBydGw4eHh4dV9yZWFkMTYoc3RydWN0IHJ0bDh4eHh1X3ByaXYgKnByaXYsIHUxNiBhZGRyKVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS9jb3JlLmMtNjUwLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvY29yZS5jOjY1MTpcXHRpZiAocnRsOHh4eHVfZGVidWcgXFx1MDAyNiBSVEw4WFhYVV9ERUJVR19SRUdfUkVBRClcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1L2NvcmUuYy02NTItXFx0XFx0ZGV2X2luZm8oXFx1MDAyNnVkZXYtXFx1MDAzZWRldiwgXFxcIiVzKCUwNHgpICA9IDB4JTA0eCwgbGVuICVpXFxcXG5cXFwiLFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS9jb3JlLmM9NjU3PXUzMiBydGw4eHh4dV9yZWFkMzIoc3RydWN0IHJ0bDh4eHh1X3ByaXYgKnByaXYsIHUxNiBhZGRyKVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS9jb3JlLmMtNjczLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvY29yZS5jOjY3NDpcXHRpZiAocnRsOHh4eHVfZGVidWcgXFx1MDAyNiBSVEw4WFhYVV9ERUJVR19SRUdfUkVBRClcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1L2NvcmUuYy02NzUtXFx0XFx0ZGV2X2luZm8oXFx1MDAyNnVkZXYtXFx1MDAzZWRldiwgXFxcIiVzKCUwNHgpICA9IDB4JTA4eCwgbGVuICVpXFxcXG5cXFwiLFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS9jb3JlLmM9NjgwPWludCBydGw4eHh4dV93cml0ZTgoc3RydWN0IHJ0bDh4eHh1X3ByaXYgKnByaXYsIHUxNiBhZGRyLCB1OCB2YWwpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1L2NvcmUuYy02OTYtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS9jb3JlLmM6Njk3OlxcdGlmIChydGw4eHh4dV9kZWJ1ZyBcXHUwMDI2IFJUTDhYWFhVX0RFQlVHX1JFR19XUklURSlcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1L2NvcmUuYy02OTgtXFx0XFx0ZGV2X2luZm8oXFx1MDAyNnVkZXYtXFx1MDAzZWRldiwgXFxcIiVzKCUwNHgpID0gMHglMDJ4XFxcXG5cXFwiLFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS9jb3JlLmM9NzAzPWludCBydGw4eHh4dV93cml0ZTE2KHN0cnVjdCBydGw4eHh4dV9wcml2ICpwcml2LCB1MTYgYWRkciwgdTE2IHZhbClcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvY29yZS5jLTcxOC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1L2NvcmUuYzo3MTk6XFx0aWYgKHJ0bDh4eHh1X2RlYnVnIFxcdTAwMjYgUlRMOFhYWFVfREVCVUdfUkVHX1dSSVRFKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvY29yZS5jLTcyMC1cXHRcXHRkZXZfaW5mbyhcXHUwMDI2dWRldi1cXHUwMDNlZGV2LCBcXFwiJXMoJTA0eCkgPSAweCUwNHhcXFxcblxcXCIsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1L2NvcmUuYz03MjU9aW50IHJ0bDh4eHh1X3dyaXRlMzIoc3RydWN0IHJ0bDh4eHh1X3ByaXYgKnByaXYsIHUxNiBhZGRyLCB1MzIgdmFsKVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS9jb3JlLmMtNzQwLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvY29yZS5jOjc0MTpcXHRpZiAocnRsOHh4eHVfZGVidWcgXFx1MDAyNiBSVEw4WFhYVV9ERUJVR19SRUdfV1JJVEUpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS9jb3JlLmMtNzQyLVxcdFxcdGRldl9pbmZvKFxcdTAwMjZ1ZGV2LVxcdTAwM2VkZXYsIFxcXCIlcyglMDR4KSA9IDB4JTA4eFxcXFxuXFxcIixcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvY29yZS5jPTgyNz1ydGw4eHh4dV93cml0ZU4oc3RydWN0IHJ0bDh4eHh1X3ByaXYgKnByaXYsIHUxNiBhZGRyLCB1OCAqYnVmLCB1MTYgbGVuKVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS9jb3JlLmMtODU5LXdyaXRlX2Vycm9yOlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvY29yZS5jOjg2MDpcXHRpZiAocnRsOHh4eHVfZGVidWcgXFx1MDAyNiBSVEw4WFhYVV9ERUJVR19SRUdfV1JJVEUpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS9jb3JlLmMtODYxLVxcdFxcdGRldl9pbmZvKFxcdTAwMjZ1ZGV2LVxcdTAwM2VkZXYsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1L2NvcmUuYz04Njc9dTMyIHJ0bDh4eHh1X3JlYWRfcmZyZWcoc3RydWN0IHJ0bDh4eHh1X3ByaXYgKnByaXYsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1L2NvcmUuYy05MDAtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS9jb3JlLmM6OTAxOlxcdGlmIChydGw4eHh4dV9kZWJ1ZyBcXHUwMDI2IFJUTDhYWFhVX0RFQlVHX1JGUkVHX1JFQUQpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS9jb3JlLmMtOTAyLVxcdFxcdGRldl9pbmZvKFxcdTAwMjZwcml2LVxcdTAwM2V1ZGV2LVxcdTAwM2VkZXYsIFxcXCIlcyglMDJ4KSA9IDB4JTA2eFxcXFxuXFxcIixcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvY29yZS5jPTkxMj1pbnQgcnRsOHh4eHVfd3JpdGVfcmZyZWcoc3RydWN0IHJ0bDh4eHh1X3ByaXYgKnByaXYsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1L2NvcmUuYy05MTctXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS9jb3JlLmM6OTE4OlxcdGlmIChydGw4eHh4dV9kZWJ1ZyBcXHUwMDI2IFJUTDhYWFhVX0RFQlVHX1JGUkVHX1dSSVRFKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvY29yZS5jLTkxOS1cXHRcXHRkZXZfaW5mbyhcXHUwMDI2cHJpdi1cXHUwMDNldWRldi1cXHUwMDNlZGV2LCBcXFwiJXMoJTAyeCkgPSAweCUwNnhcXFxcblxcXCIsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1L2NvcmUuYz05NTA9cnRsOHh4eHVfZ2VuMV9oMmNfY21kKHN0cnVjdCBydGw4eHh4dV9wcml2ICpwcml2LCBzdHJ1Y3QgaDJjX2NtZCAqaDJjLCBpbnQgbGVuKVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS9jb3JlLmMtOTgzLVxcdFxcdHJ0bDh4eHh1X3dyaXRlMTYocHJpdiwgbWJveF9leHRfcmVnLCBsZTE2X3RvX2NwdShoMmMtXFx1MDAzZXJhdy5leHQpKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1L2NvcmUuYzo5ODQ6XFx0XFx0aWYgKHJ0bDh4eHh1X2RlYnVnIFxcdTAwMjYgUlRMOFhYWFVfREVCVUdfSDJDKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvY29yZS5jLTk4NS1cXHRcXHRcXHRkZXZfaW5mbyhkZXYsIFxcXCJIMkNfRVhUICUwNHhcXFxcblxcXCIsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1L2NvcmUuYy05ODgtXFx0cnRsOHh4eHVfd3JpdGUzMihwcml2LCBtYm94X3JlZywgbGUzMl90b19jcHUoaDJjLVxcdTAwM2VyYXcuZGF0YSkpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvY29yZS5jOjk4OTpcXHRpZiAocnRsOHh4eHVfZGVidWcgXFx1MDAyNiBSVEw4WFhYVV9ERUJVR19IMkMpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS9jb3JlLmMtOTkwLVxcdFxcdGRldl9pbmZvKGRldiwgXFxcIkgyQyAlMDh4XFxcXG5cXFwiLCBsZTMyX3RvX2NwdShoMmMtXFx1MDAzZXJhdy5kYXRhKSk7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1L2NvcmUuYz0xMDAwPXJ0bDh4eHh1X2dlbjJfaDJjX2NtZChzdHJ1Y3QgcnRsOHh4eHVfcHJpdiAqcHJpdiwgc3RydWN0IGgyY19jbWQgKmgyYywgaW50IGxlbilcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvY29yZS5jLTEwMzQtXFx0XFx0XFx0XFx0IGxlMzJfdG9fY3B1KGgyYy1cXHUwMDNlcmF3X3dpZGUuZXh0KSk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS9jb3JlLmM6MTAzNTpcXHRcXHRpZiAocnRsOHh4eHVfZGVidWcgXFx1MDAyNiBSVEw4WFhYVV9ERUJVR19IMkMpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS9jb3JlLmMtMTAzNi1cXHRcXHRcXHRkZXZfaW5mbyhkZXYsIFxcXCJIMkNfRVhUICUwOHhcXFxcblxcXCIsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1L2NvcmUuYy0xMDM5LVxcdHJ0bDh4eHh1X3dyaXRlMzIocHJpdiwgbWJveF9yZWcsIGxlMzJfdG9fY3B1KGgyYy1cXHUwMDNlcmF3LmRhdGEpKTtcXG5cXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDYtMzBUMDQ6MzQ6MTAuMDEzOTI0NTQ5WiIsIlNlcSI6NSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NTY0MTI2OTQ2NCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipBbmFseXppbmcgYSBGdW5jdGlvbmFsIENoYW5nZSBpbiB0aGUgUlRMOFhYWFUgRHJpdmVyKipcblxuT2theSwgc28gdGhlIGNvbmZpZyBpbiBxdWVzdGlvbiBoZXJlIGlzIGBDT05GSUdfUlRMOFhYWFVgLiBGaXJzdCB0aG91Z2h0OiBJIG5lZWQgdG8gcXVpY2tseSBjb25maXJtIGlmIHRoaXMgY29uZmlnIGlzIGV2ZW4gZW5hYmxlZCBpbiBzeXpib3QncyBlbnZpcm9ubWVudC4gQWhhLCB3YWl0IGEgc2Vjb25kLiBUaGUgZmFjdCB0aGF0IHN5emJvdCByZXBvcnRlZCB0aGUgcGF0Y2ggKm1lYW5zKiBpdCdzIGVuYWJsZWQsIHJpZ2h0PyBHb29kLlxuXG5Ob3csIHRoZSBwYXRjaCBpdHNlbGYuLi4gaXQncyBtb3ZpbmcgYHNjaGVkdWxlX3dvcmsoXHUwMDI2cHJpdi1cdTAwM2VyeF91cmJfd3EpO2AgaW5zaWRlIGEgbG9jayBhbmQgYWRkaW5nIGBjYW5jZWxfd29ya19zeW5jKFx1MDAyNnByaXYtXHUwMDNlcnhfdXJiX3dxKTtgIGluIGBydGw4eHh4dV9zdG9wYC4gVGhpcyBzbWVsbHMgbGlrZSBhIGZ1bmN0aW9uYWwgZml4IOKAkyBsaWtlbHkgYWRkcmVzc2luZyBhIHJhY2UgY29uZGl0aW9uIGJldHdlZW4gd29ya3F1ZXVlIHNjaGVkdWxpbmcgYW5kIGNhbmNlbGxhdGlvbi4gVGhpcyBpcyB0aGUgYHJ0bDh4eHh1YCBkcml2ZXIsIHNvIEkgbmVlZCB0byBhc3Nlc3Mgd2hldGhlciBmdXp6aW5nIGlzIHdhcnJhbnRlZC5cblxuR2l2ZW4gdGhhdCBpdOKAmXMgYSBmdW5jdGlvbmFsIGNoYW5nZSAqYW5kKiB0aGF0IHN5emJvdCBjbGVhcmx5IGNhcmVzIGFib3V0IHRoaXMgZHJpdmVyIChpdCdzIHRoZSBzb3VyY2Ugb2YgdGhpcyByZXBvcnQpLCB0aGUgYW5zd2VyIGlzIGEgcmVzb3VuZGluZyB5ZXMuIExldCdzIHNlZS4uLiB0aGUgYXV0aG9yIGlzIGxpc3RlZCBhcyBgc3l6LWNsdXN0ZXIgXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cdTAwM2VgLCB3aGljaCBpcyBhIHByZXR0eSBjbGVhciBpbmRpY2F0b3I6IFRoaXMgaXMgZWl0aGVyIGEgcmVwcm9kdWNlciBvciBhIGJ1ZyBmb3VuZCBieSBzeXpib3QgaXRzZWxmLlxuXG5UbyBkaWcgaW4sIEkgbmVlZCB0byBsb29rIGF0IHRoZSBzcGVjaWZpYyBmdW5jdGlvbnMgbW9kaWZpZWQuIE9rYXksIGBydGw4eHh4dV9xdWV1ZV9yeF91cmJgIGFuZCBgcnRsOHh4eHVfc3RvcGAuIExldCdzIHB1bGwgdXAgdGhvc2UgZnVuY3Rpb25zIGFuZCBzZWUgd2hhdCdzIGFjdHVhbGx5IGhhcHBlbmluZy5cblxuXG4iLCJJbnB1dFRva2VucyI6MTg3OTcsIk91dHB1dFRva2VucyI6NDQsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoyNTYsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDYtMzBUMDQ6MzQ6MTUuNjU1MTk4MjgzWiIsIlNlcSI6NiwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjIwMjk3NTQwMSwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJydGw4eHh4dV9xdWV1ZV9yeF91cmJcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS9cIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS9jb3JlLmM9NTc3Mz1zdGF0aWMgdm9pZCBydGw4eHh4dV9mcmVlX3J4X3Jlc291cmNlcyhzdHJ1Y3QgcnRsOHh4eHVfcHJpdiAqcHJpdilcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvY29yZS5jLTU3ODktXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS9jb3JlLmM6NTc5MDpzdGF0aWMgdm9pZCBydGw4eHh4dV9xdWV1ZV9yeF91cmIoc3RydWN0IHJ0bDh4eHh1X3ByaXYgKnByaXYsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS9jb3JlLmMtNTc5MS1cXHRcXHRcXHRcXHQgIHN0cnVjdCBydGw4eHh4dV9yeF91cmIgKnJ4X3VyYilcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvY29yZS5jPTU4MTc9c3RhdGljIHZvaWQgcnRsOHh4eHVfcnhfdXJiX3dvcmsoc3RydWN0IHdvcmtfc3RydWN0ICp3b3JrKVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS9jb3JlLmMtNTg0OC1cXHRcXHRjYXNlIC1FQUdBSU46XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS9jb3JlLmM6NTg0OTpcXHRcXHRcXHRydGw4eHh4dV9xdWV1ZV9yeF91cmIocHJpdiwgcnhfdXJiKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1L2NvcmUuYy01ODUwLVxcdFxcdFxcdGJyZWFrO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS9jb3JlLmM9NjUwMD1zdGF0aWMgdm9pZCBydGw4eHh4dV9yeF9jb21wbGV0ZShzdHJ1Y3QgdXJiICp1cmIpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1L2NvcmUuYy02NTE1LVxcdFxcdHJ4X3VyYi1cXHUwMDNldXJiLmNvbnRleHQgPSBOVUxMO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvY29yZS5jOjY1MTY6XFx0XFx0cnRsOHh4eHVfcXVldWVfcnhfdXJiKHByaXYsIHJ4X3VyYik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS9jb3JlLmMtNjUxNy1cXHR9IGVsc2Uge1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS9jb3JlLmM9NzM2Mz1zdGF0aWMgaW50IHJ0bDh4eHh1X3N0YXJ0KHN0cnVjdCBpZWVlODAyMTFfaHcgKmh3KVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS9jb3JlLmMtNzQyMy1cXHRcXHRcXHR9XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS9jb3JlLmM6NzQyNDpcXHRcXHRcXHRydGw4eHh4dV9xdWV1ZV9yeF91cmIocHJpdiwgcnhfdXJiKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1L2NvcmUuYy03NDI1LVxcdFxcdH1cXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDYtMzBUMDQ6MzQ6MTUuODU4MTgzNTAzWiIsIlNlcSI6NywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NzA2NTQwOTMxNiwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipBbmFseXppbmcgUG90ZW50aWFsIFJhY2UgQ29uZGl0aW9ucyBpbiB0aGUgUlRMOHh4eHUgRHJpdmVyKipcblxuT2theSwgc28gSSdtIGxvb2tpbmcgYXQgc29tZSBmdW5jdGlvbnMgd2l0aGluIHRoZSBgcnRsOHh4eHVgIGRyaXZlcjogYHJ0bDh4eHh1X3F1ZXVlX3J4X3VyYmAgYW5kIGBydGw4eHh4dV9zdG9wYC4gSSBjYW4gc2VlIHRoYXQgYHJ0bDh4eHh1X3F1ZXVlX3J4X3VyYmAgaXMgY2FsbGVkIGZyb20gYSBmZXcgcGxhY2VzOiBgcnRsOHh4eHVfcnhfY29tcGxldGVgICh3aGljaCBpcyB0aGUgVVJCIGNvbXBsZXRpb24gaGFuZGxlciwgaW1wb3J0YW50ISksIGBydGw4eHh4dV9yeF91cmJfd29ya2AsIGFuZCBhbHNvIGR1cmluZyBgcnRsOHh4eHVfc3RhcnRgLiBBbmQgYHJ0bDh4eHh1X3N0b3BgIGdldHMgY2FsbGVkIHdoZW4gdGhlIG5ldHdvcmsgaW50ZXJmYWNlIGlzIHNodXQgZG93biwgd2hpY2ggaXMgYSBrZXkgYXJlYSB0byBjb25zaWRlci5cblxuVGhpcyBsb29rcyBsaWtlIGEgZnVuY3Rpb25hbCBjaGFuZ2UsIG5vdGhpbmcgZ3JvdW5kYnJlYWtpbmcsIGJ1dCB0aGlzIGlzIGEgZ29vZCBwbGFjZSB0byBzdGFydCB0aGUgYW5hbHlzaXMuIFNvLCBsZXQncyB6b29tIGluIG9uIGBydGw4eHh4dV9xdWV1ZV9yeF91cmJgIGFuZCBgcnRsOHh4eHVfc3RvcGAuIEknbSBzdGFydGluZyB0byB0aGluayBhYm91dCBwb3RlbnRpYWwgcmFjZSBjb25kaXRpb25zLiBIbW0sIGBydGw4eHh4dV9xdWV1ZV9yeF91cmJgIGlzIGNhbGxlZCBmcm9tIHRoZSBVUkIgY29tcGxldGlvbiBoYW5kbGVyLi4uIHRoYXQgY291bGQgYmUgYSAqaG90IHBhdGgqLiBNZWFuaW5nIHRoaXMgbWlnaHQgYmUgZnJlcXVlbnRseSBoaXQsIHBvdGVudGlhbGx5IGEgcGVyZm9ybWFuY2UgYm90dGxlbmVjay5cblxuTGV0J3MgcXVpY2tseSBjaGVjayBpZiB0aGlzIGlzIHRoZSBjYXNlLiBgcnRsOHh4eHVfcXVldWVfcnhfdXJiYCBxdWV1ZXMgYW4gUlggVVJCLiBJbiBoaWdoIHRocm91Z2hwdXQsIGl0J3MgY2FsbGVkIGZvciAqZXZlcnkqIHBhY2tldCBvciBhIGJhdGNoIG9mIHBhY2tldHMuIFRoYXQgZGVmaW5pdGVseSBtYWtlcyBpdCBhIGhvdCBwYXRoLiBBbmQgaXMgYHJ0bDh4eHh1X3J4X2NvbXBsZXRlYCBhIGhvdCBwYXRoPyBZZXMsIG9mIGNvdXJzZS4gSXQncyB0aGUgUlggVVJCIGNvbXBsZXRpb24gaGFuZGxlciEgV2hhdCBhYm91dCBgcnRsOHh4eHVfc3RvcGA/IE5vLCB0aGF0IGlzIGNhbGxlZCBvbmx5IHdoZW4gdGhlIGludGVyZmFjZSBpcyBkb3duLCBzbyBub3QgYSBob3QgcGF0aC5cblxuQWxyaWdodCwgc28gaWYgSSB3YW50IHRvIGZ1enogdGhpcyBjb2RlIGFuZCBsb29rIGZvciBhIHJhY2UsIEkgdGhpbmsgdGhlIG1vc3QgaW50ZXJlc3RpbmcgYXJlYXMgd291bGQgYmUgYXJvdW5kIGBydGw4eHh4dV9zdG9wYC4uLiBhbmQgbWF5YmUgYHJ0bDh4eHh1X3N0YXJ0YCBvciBgcnRsOHh4eHVfcXVldWVfcnhfdXJiYC4gQWN0dWFsbHksIGBydGw4eHh4dV9zdG9wYCBzZWVtcyBsaWtlIHRoZSBiZXN0IG9uZSB0byBmb2N1cyBvbiBnaXZlbiB0aGF0IGl0cyBjYWxsZWQgd2hlbiB0aGUgbmV0d29yayBpcyBzdG9wcGVkLCB3aGljaCBjYW4gY2F1c2UgaW50ZXJlc3Rpbmcgc2l0dWF0aW9ucy4gVGltZSB0byBkaWcgaW50byBgcnRsOHh4eHVfc3RvcGAuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjIwMDI3LCJPdXRwdXRUb2tlbnMiOjQwLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MzMyLCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA2LTMwVDA0OjM0OjIyLjkyMzU5NzUxOVoiLCJTZXEiOjgsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo0NDY5MzgyNTYsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwicnRsOHh4eHVfc3RvcFwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJkcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1L1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJkcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1L2NvcmUuYz0xMDk0PXZvaWQgcnRsOHh4eHVfZ2VuMV9kaXNhYmxlX3JmKHN0cnVjdCBydGw4eHh4dV9wcml2ICpwcml2KVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS9jb3JlLmMtMTEzMi1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1L2NvcmUuYzoxMTMzOnN0YXRpYyB2b2lkIHJ0bDh4eHh1X3N0b3BfdHhfYmVhY29uKHN0cnVjdCBydGw4eHh4dV9wcml2ICpwcml2KVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvY29yZS5jLTExMzQte1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS9jb3JlLmM9NDg0Nz1ydGw4eHh4dV9ic3NfaW5mb19jaGFuZ2VkKHN0cnVjdCBpZWVlODAyMTFfaHcgKmh3LCBzdHJ1Y3QgaWVlZTgwMjExX3ZpZiAqdmlmLFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS9jb3JlLmMtNDkxMi1cXHRcXHRcXHRpZiAocnRsdmlmLVxcdTAwM2Vwb3J0X251bSA9PSAwKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvY29yZS5jOjQ5MTM6XFx0XFx0XFx0XFx0cnRsOHh4eHVfc3RvcF90eF9iZWFjb24ocHJpdik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS9jb3JlLmMtNDkxNC1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvY29yZS5jLTQ5NjctXFx0XFx0fSBlbHNlIHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1L2NvcmUuYzo0OTY4OlxcdFxcdFxcdHJ0bDh4eHh1X3N0b3BfdHhfYmVhY29uKHByaXYpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvY29yZS5jLTQ5NjktXFx0XFx0fVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS9jb3JlLmM9NTc5MD1zdGF0aWMgdm9pZCBydGw4eHh4dV9xdWV1ZV9yeF91cmIoc3RydWN0IHJ0bDh4eHh1X3ByaXYgKnByaXYsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1L2NvcmUuYy01ODAzLVxcdFxcdCAqIHNodXRkb3duIGNoZWNrOiBtb3ZpbmcgaXQgb3V0IG9mIHRoZSBsb2NrIHdvdWxkIGxldCBhXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS9jb3JlLmM6NTgwNDpcXHRcXHQgKiBjb21wbGV0aW9uIGFybSB0aGUgd29yayBhZnRlciBydGw4eHh4dV9zdG9wKCkgY2FuY2VsZWQgaXQuXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS9jb3JlLmMtNTgwNS1cXHRcXHQgKi9cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvY29yZS5jPTY2ODk9c3RhdGljIGludCBydGw4eHh4dV9hZGRfaW50ZXJmYWNlKHN0cnVjdCBpZWVlODAyMTFfaHcgKmh3LFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS9jb3JlLmMtNjcwNi1cXHRcXHRpZiAocG9ydF9udW0gPT0gMCkge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvY29yZS5jOjY3MDc6XFx0XFx0XFx0cnRsOHh4eHVfc3RvcF90eF9iZWFjb24ocHJpdik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS9jb3JlLmMtNjcwOC1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvY29yZS5jPTczNjM9c3RhdGljIGludCBydGw4eHh4dV9zdGFydChzdHJ1Y3QgaWVlZTgwMjExX2h3ICpodylcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvY29yZS5jLTc0NTEtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS9jb3JlLmM6NzQ1MjpzdGF0aWMgdm9pZCBydGw4eHh4dV9zdG9wKHN0cnVjdCBpZWVlODAyMTFfaHcgKmh3LCBib29sIHN1c3BlbmQpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS9jb3JlLmMtNzQ1My17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1L2NvcmUuYz03NTQ4PXN0YXRpYyBjb25zdCBzdHJ1Y3QgaWVlZTgwMjExX29wcyBydGw4eHh4dV9vcHMgPSB7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1L2NvcmUuYy03NTYzLVxcdC5zdGFydCA9IHJ0bDh4eHh1X3N0YXJ0LFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvY29yZS5jOjc1NjQ6XFx0LnN0b3AgPSBydGw4eHh4dV9zdG9wLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvY29yZS5jLTc1NjUtXFx0LnN3X3NjYW5fc3RhcnQgPSBydGw4eHh4dV9zd19zY2FuX3N0YXJ0LFxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNi0zMFQwNDozNDoyMy4zNzA1NDUxMzZaIiwiU2VxIjo5LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo2MDQzMzU0NDE1LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKk15IEFuYWx5c2lzIG9mIHRoZSBSVEw4eHh4dSBEcml2ZXIgQ29uZmlndXJhdGlvbioqXG5cbk9rYXksIGxldCdzIGJyZWFrIHRoaXMgZG93bi4gYHJ0bDh4eHh1X3N0b3BgIGlzIHRoZSBgbWFjODAyMTFgIHN0b3AgY2FsbGJhY2suIEkga25vdyB0aGlzIGlzbid0IGEgcGVyZm9ybWFuY2UtY3JpdGljYWwgZnVuY3Rpb24sIHNvIGl0cyBpbmNsdXNpb24gaW4gdGhlIGRlYnVnZ2luZyBzeW1ib2xzIGlzIHByb2JhYmx5IGZvciBjb21wbGV0ZW5lc3MgcmF0aGVyIHRoYW4gcGVyZm9ybWFuY2UgdHVuaW5nLiBJIG5lZWQgdG8ga2VlcCBhbiBleWUgb24gYHJ0bDh4eHh1X3F1ZXVlX3J4X3VyYmAgd2hpY2ggKmlzKiBhIGhvdCBwYXRoIGFuZCB3aGVyZSB0aGUgY3J1Y2lhbCBmaXggd2FzIGltcGxlbWVudGVkLiBHaXZlbiB0aGF0LCBJIHNob3VsZCBhYnNvbHV0ZWx5IGluY2x1ZGUgYHJ0bDh4eHh1X3N0b3BgIGluIEZvY3VzU3ltYm9scywganVzdCB0byBiZSB0aG9yb3VnaC4gSSdsbCBhbHNvIGFkZCBgcnRsOHh4eHVfcnhfdXJiX3dvcmtgLCB0aGUgd29ya3F1ZXVlIGZ1bmN0aW9uLCBhbmQgYHJ0bDh4eHh1X3N0YXJ0YCwgc2luY2UgaXQgaW5pdGlhbGl6ZXMgdGhlIHdvcmtxdWV1ZS4gVGhleSdyZSBhbGwgbGlrZWx5IGludGVyLXJlbGF0ZWQgaGVyZS5cblxuTm93LCBsZXQncyBnZXQgaW50byB0aGUgYnJvYWRlciBjb25maWd1cmF0aW9uLiBJIG5lZWQgdG8gbWFrZSBzdXJlIGBSVEw4WFhYVWAgaXRzZWxmIGhhcyBhbGwgaXRzIGRlcGVuZGVuY2llcyBzYXRpc2ZpZWQuIEl0IG9idmlvdXNseSBkZXBlbmRzIG9uIGBNQUM4MDIxMWAgYW5kIGBVU0JgLCB3aGljaCBzZWVtIHRvIGJlIGZpbmUuIEJ1dCwgaG9sZCBvbiBhIHNlY29uZC4uLiBzaW5jZSBgUlRMOFhYWFVgIGlzIHN1ZmZpY2llbnQsIHRoYXQncyBnb29kLlxuXG5SaWdodCwgc3l6Ym90IHVzZXMgYGR1bW15X2hjZGAgdG8gZnV6eiBVU0IgZHJpdmVycy4gSXMgdGhhdCBlbmFibGVkIGJ5IGRlZmF1bHQgaW4gc3l6Ym90PyBZZXMsIGl0IGlzISBHaXZlbiB0aGF0LCB0aGUgcmVxdWlyZWQgY29uZmlndXJhdGlvbnMgYXJlIHNpbXBseSBgUlRMOFhYWFVgLlxuXG5XYWl0LCB0aGUgcGF0Y2ggYWxzbyBtZW50aW9ucyBgUlRMOFhYWFVfVU5URVNURURgIGluIHRoZSBLY29uZmlnLiBJIGRvbid0IG5lZWQgdG8gZW5hYmxlIHRoYXQgdW5sZXNzIHRoZSBkZXZpY2UgaXMgc3BlY2lmaWNhbGx5IG1hcmtlZCBhcyB1bnRlc3RlZCwgc28gSSdsbCBuZWVkIHRvIGNoZWNrIHRoZSBLY29uZmlnIGRvY3VtZW50YXRpb24gZm9yIHRoYXQgdG8gYmUgc3VyZS5cblxuXG4iLCJJbnB1dFRva2VucyI6MjE5MDUsIk91dHB1dFRva2VucyI6NDMsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoyNzMsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDYtMzBUMDQ6MzQ6MjkuNDEzOTAzMzVaIiwiU2VxIjoxMCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjEyMTg4NzQ5OCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJSVEw4WFhYVV9VTlRFU1RFRFwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJkcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1L1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJkcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxOTJjLmMtMTgtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTkyYy5jOjE5OiNpZmRlZiBDT05GSUdfUlRMOFhYWFVfVU5URVNURURcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxOTJjLmMtMjAtc3RhdGljIHN0cnVjdCBydGw4eHh4dV9wb3dlcl9iYXNlIHJ0bDgxOTJjX3Bvd2VyX2Jhc2UgPSB7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1L0tjb25maWc9NT1jb25maWcgUlRMOFhYWFVcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvS2NvbmZpZy0yOC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1L0tjb25maWc6Mjk6Y29uZmlnIFJUTDhYWFhVX1VOVEVTVEVEXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS9LY29uZmlnLTMwLVxcdGJvb2wgXFxcIkluY2x1ZGUgc3VwcG9ydCBmb3IgdW50ZXN0ZWQgUmVhbHRlayA4eHh4IFVTQiBkZXZpY2VzIChFWFBFUklNRU5UQUwpXFxcIlxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS9jb3JlLmM9Nzk1MD1zdGF0aWMgY29uc3Qgc3RydWN0IHVzYl9kZXZpY2VfaWQgZGV2X3RhYmxlW10gPSB7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1L2NvcmUuYy04MDQxLVxcdC5kcml2ZXJfaW5mbyA9ICh1bnNpZ25lZCBsb25nKVxcdTAwMjZydGw4MTkyZnVfZm9wc30sXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS9jb3JlLmM6ODA0MjojaWZkZWYgQ09ORklHX1JUTDhYWFhVX1VOVEVTVEVEXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS9jb3JlLmMtODA0My0vKiBTdGlsbCBzdXBwb3J0ZWQgYnkgcnRsd2lmaSAqL1xcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNi0zMFQwNDozNDoyOS41MzU3OTgyNThaIiwiU2VxIjoxMSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NjM1NjA3MjgwNSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipNeSBBcHByb2FjaCB0byBBZGRyZXNzaW5nIHRoZSBydGw4eHh4dSBSYWNlIENvbmRpdGlvbioqXG5cbk9rYXksIHNvIHRoZSBnb2FsIGlzIHRvIHNhZmVseSBjb3ZlciBhIHdpZGUgcmFuZ2Ugb2YgZGV2aWNlcy4gSSdsbCBzdGFydCBieSBlbmFibGluZyBib3RoIGBSVEw4WFhYVWAgYW5kIGBSVEw4WFhYVV9VTlRFU1RFRGAuIFdhaXQgYSBtaW51dGUsIHRoYXQgYFJUTDhYWFhVX1VOVEVTVEVEYCBpcyBqdXN0IGEgYm9vbGVhbiwgc28gaXQncyBzaW1wbGUgdG8gaW5jbHVkZSBpdC4gRWFzeS5cblxuTm93LCBsZXQncyBtYWtlIHN1cmUgSSdtIG5vdCBtaXNzaW5nIGFueXRoaW5nIG9idmlvdXMuIFJpZ2h0LCBhIHF1aWNrIGNoZWNrIG9mIGV4aXN0aW5nIHN5emJvdCBjb25maWd1cmF0aW9ucy4gSXQgbG9va3MgbGlrZSBgTUFDODAyMTFgIGlzIGFscmVhZHkgZW5hYmxlZCwgYXMgaXMgYFVTQmAuIEdvb2QsIHdlIGFyZSBjb3ZlcmluZyB0aGUgYmFzZXMuXG5cbkkgbmVlZCB0byBmb2N1cyBteSBmdXp6aW5nIGVmZm9ydHMgb24gdGhlIGNyaXRpY2FsIGFyZWFzLCBzbyBJIG5lZWQgdG8gZm9jdXMgb24gdGhlc2Ugc3ltYm9sczogYHJ0bDh4eHh1X3N0b3BgIGFuZCBgcnRsOHh4eHVfcnhfdXJiX3dvcmtgLiBJJ2xsIHdhbnQgdG8gdGFyZ2V0IHRoZSByYWNlIGNvbmRpdGlvbiBiZXR3ZWVuIHRoZSBSWCBVUkIgY29tcGxldGlvbiBoYW5kbGVyIGFuZCB0aGUgZHJpdmVyJ3Mgc3RvcCByb3V0aW5lLiBUaGUgZml4IGl0c2VsZiBpbnZvbHZlcyBtb3Zpbmcgd29ya3F1ZXVlIHNjaGVkdWxpbmcgd2l0aGluIGEgc3BpbmxvY2sgYW5kIGFkZGluZyBgY2FuY2VsX3dvcmtfc3luY2AuIEkgbmVlZCB0byB2ZXJpZnkgdGhhdCB0aGlzIGNvcnJlY3RseSBwcmV2ZW50cyB0aGUgcmFjZSBhbmQgZG9lc24ndCBpbnRyb2R1Y2UgYW55IG5ldyBpc3N1ZXMuXG5cbkZ1enppbmcgdGhlIGRyaXZlcidzIGluaXRpYWxpemF0aW9uIGFuZCB0ZWFyZG93biByb3V0aW5lcyBzZWVtcyBsaWtlIHRoZSBtb3N0IGVmZmVjdGl2ZSB3YXkgdG8gc2hha2Ugb3V0IHNpbWlsYXIgaXNzdWVzLiBJJ2xsIHVzZSBlaXRoZXIgYGR1bW15X2hjZGAgb3IgYG1hYzgwMjExX2h3c2ltYCB0byBoZWxwIHdpdGggdGhhdC4gVGhhdCBzaG91bGQgZ2l2ZSBtZSBnb29kIGNvdmVyYWdlLlxuXG5Ob3csIGxldCBtZSBqdXN0IGZvcm1hdCB0aGUgb3V0cHV0IGFuZCBnZXQgb24gd2l0aCBpdC5cblxuXG4iLCJJbnB1dFRva2VucyI6MjI5NzUsIk91dHB1dFRva2VucyI6MTY2LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MjI4LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA2LTMwVDA0OjM0OjM1Ljg5MTg3NTgyM1oiLCJTZXEiOjEyLCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJzZXQtcmVzdWx0cyIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjIwNTM2NjE4MCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogW1xuICAgIFwiUlRMOFhYWFVcIixcbiAgICBcIlJUTDhYWFhVX1VOVEVTVEVEXCJcbiAgXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW1xuICAgIFwicnRsOHh4eHVfc3RvcFwiLFxuICAgIFwicnRsOHh4eHVfcnhfdXJiX3dvcmtcIlxuICBdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBmaXhlcyBhIHJhY2UgY29uZGl0aW9uIGJldHdlZW4gdGhlIFJYIFVSQiBjb21wbGV0aW9uIGhhbmRsZXIgYW5kIHRoZSBkcml2ZXIgc3RvcCByb3V0aW5lIGluIHRoZSBydGw4eHh4dSB3aXJlbGVzcyBkcml2ZXIuIEl0IG1vdmVzIHRoZSB3b3JrcXVldWUgc2NoZWR1bGluZyBpbnNpZGUgYSBzcGlubG9jayBhbmQgYWRkcyBhIGNhbmNlbF93b3JrX3N5bmMgY2FsbCB0byBlbnN1cmUgdGhlIHdvcmtxdWV1ZSBpcyBwcm9wZXJseSBjYW5jZWxsZWQgZHVyaW5nIHNodXRkb3duLiBGdXp6aW5nIHRoZSBkcml2ZXIgaW5pdGlhbGl6YXRpb24gYW5kIHRlYXJkb3duIHBhdGhzICh2aWEgZHVtbXlfaGNkIG9yIG1hYzgwMjExX2h3c2ltKSBjYW4gaGVscCB2ZXJpZnkgdGhpcyBmaXggYW5kIHVuY292ZXIgc2ltaWxhciByYWNlIGNvbmRpdGlvbnMuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IHRydWVcbn0iLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogW1xuICAgIFwiUlRMOFhYWFVcIixcbiAgICBcIlJUTDhYWFhVX1VOVEVTVEVEXCJcbiAgXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW1xuICAgIFwicnRsOHh4eHVfc3RvcFwiLFxuICAgIFwicnRsOHh4eHVfcnhfdXJiX3dvcmtcIlxuICBdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBmaXhlcyBhIHJhY2UgY29uZGl0aW9uIGJldHdlZW4gdGhlIFJYIFVSQiBjb21wbGV0aW9uIGhhbmRsZXIgYW5kIHRoZSBkcml2ZXIgc3RvcCByb3V0aW5lIGluIHRoZSBydGw4eHh4dSB3aXJlbGVzcyBkcml2ZXIuIEl0IG1vdmVzIHRoZSB3b3JrcXVldWUgc2NoZWR1bGluZyBpbnNpZGUgYSBzcGlubG9jayBhbmQgYWRkcyBhIGNhbmNlbF93b3JrX3N5bmMgY2FsbCB0byBlbnN1cmUgdGhlIHdvcmtxdWV1ZSBpcyBwcm9wZXJseSBjYW5jZWxsZWQgZHVyaW5nIHNodXRkb3duLiBGdXp6aW5nIHRoZSBkcml2ZXIgaW5pdGlhbGl6YXRpb24gYW5kIHRlYXJkb3duIHBhdGhzICh2aWEgZHVtbXlfaGNkIG9yIG1hYzgwMjExX2h3c2ltKSBjYW4gaGVscCB2ZXJpZnkgdGhpcyBmaXggYW5kIHVuY292ZXIgc2ltaWxhciByYWNlIGNvbmRpdGlvbnMuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IHRydWVcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfV07CgkJCWlmICghcmF3RGF0YSB8fCByYXdEYXRhLmxlbmd0aCA9PT0gMCkgcmV0dXJuOwoKCQkJZHJhd1N1bW1hcnlUYWJsZXMocmF3RGF0YSk7CgkJCWRyYXdEdXJhdGlvbkNoYXJ0KHJhd0RhdGEpOwoJCQlkcmF3VG9rZW5Db25zdW1wdGlvbkNoYXJ0KHJhd0RhdGEpOwoJCX0KCgkJZnVuY3Rpb24gZHJhd1N1bW1hcnlUYWJsZXMocmF3RGF0YSkgewoJCQljb25zdCBzdGF0cyA9IHsKCQkJCWxsbTogeyBjb3VudDogMCwgdG9rZW5zOiAwLCBkdXJhdGlvbjogMCB9LAoJCQkJdG9vbDogeyBjb3VudDogMCwgZHVyYXRpb246IDAgfQoJCQl9OwoKCQkJcmF3RGF0YS5mb3JFYWNoKHMgPT4gewoJCQkJY29uc3QgZHVyID0gcy5EdXJhdGlvbiAvIDEwMDAwMDAwMDA7IAoJCQkJaWYgKHMuVHlwZSA9PT0gImxsbSIpIHsKCQkJCQlzdGF0cy5sbG0uY291bnQrKzsKCQkJCQlzdGF0cy5sbG0udG9rZW5zICs9IChzLklucHV0VG9rZW5zICsgcy5PdXRwdXRUb2tlbnMgKyBzLk91dHB1dFRob3VnaHRzVG9rZW5zKTsKCQkJCQlzdGF0cy5sbG0uZHVyYXRpb24gKz0gZHVyOwoJCQkJfSBlbHNlIGlmIChzLlR5cGUgPT09ICJ0b29sIikgewoJCQkJCXN0YXRzLnRvb2wuY291bnQrKzsKCQkJCQlzdGF0cy50b29sLmR1cmF0aW9uICs9IGR1cjsKCQkJCX0KCQkJfSk7CgoJCQljb25zdCBhdmdMbG1EdXIgPSBzdGF0cy5sbG0uY291bnQgPiAwID8gKHN0YXRzLmxsbS5kdXJhdGlvbiAvIHN0YXRzLmxsbS5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgkJCWNvbnN0IGF2Z0xsbVRva2VuID0gc3RhdHMubGxtLmNvdW50ID4gMCA/IChzdGF0cy5sbG0udG9rZW5zIC8gc3RhdHMubGxtLmNvdW50KS50b0ZpeGVkKDIpIDogMDsKCQkJY29uc3QgYXZnVG9vbER1ciA9IHN0YXRzLnRvb2wuY291bnQgPiAwID8gKHN0YXRzLnRvb2wuZHVyYXRpb24gLyBzdGF0cy50b29sLmNvdW50KS50b0ZpeGVkKDIpIDogMDsKCgkJCWNvbnN0IGxsbVN1bWFyeUNlbGxzID0gW3N0YXRzLmxsbS5jb3VudCwgc3RhdHMubGxtLnRva2VucywgYXZnTGxtVG9rZW4sIHN0YXRzLmxsbS5kdXJhdGlvbiwgYXZnTGxtRHVyXTsKCQkJY29uc3QgdG9vbFN1bW1hcnlDZWxscyA9IFtzdGF0cy50b29sLmNvdW50LCBzdGF0cy50b29sLmR1cmF0aW9uLCBhdmdUb29sRHVyXTsKCgkJCWNvbnN0IGxsbVN1bW1hcnlCb2R5ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2xsbV9zdW1tYXJ5X3N0YXRzX2JvZHknKTsKCQkJbGxtU3VtbWFyeUJvZHkuaW5uZXJIVE1MID0gIiI7CgkJCWNvbnN0IGxsbVRyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndHInKTsKCQkJbGxtU3VtYXJ5Q2VsbHMuZm9yRWFjaChjZWxsID0+IHsKCQkJCWNvbnN0IHRkID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndGQnKTsKCQkJCXRkLnRleHRDb250ZW50ID0gY2VsbDsKCQkJCWxsbVRyLmFwcGVuZENoaWxkKHRkKTsKCQkJfSk7CgkJCWxsbVN1bW1hcnlCb2R5LmFwcGVuZENoaWxkKGxsbVRyKTsKCgkJCWNvbnN0IHRvb2xTdW1tYXJ5Qm9keSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0b29sX3N1bW1hcnlfc3RhdHNfYm9keScpOwoJCQl0b29sU3VtbWFyeUJvZHkuaW5uZXJIVE1MID0gIiI7CgkJCWNvbnN0IHRvb2xUciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RyJyk7CgkJCXRvb2xTdW1tYXJ5Q2VsbHMuZm9yRWFjaChjZWxsID0+IHsKCQkJCWNvbnN0IHRkID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndGQnKTsKCQkJCXRkLnRleHRDb250ZW50ID0gY2VsbDsKCQkJCXRvb2xUci5hcHBlbmRDaGlsZCh0ZCk7CgkJCX0pOwoJCQl0b29sU3VtbWFyeUJvZHkuYXBwZW5kQ2hpbGQodG9vbFRyKTsKCQl9CgoJCWZ1bmN0aW9uIGRyYXdEdXJhdGlvbkNoYXJ0KHJhd0RhdGEpIHsKCQkJY29uc3QgZmlsdGVyZWRTdGVwcyA9IHJhd0RhdGEuZmlsdGVyKGQgPT4gWyJsbG0iLCAidG9vbCJdLmluY2x1ZGVzKGQuVHlwZSkpOwoJCQljb25zdCBkYXRhID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkRhdGFUYWJsZSgpOwoJCQlkYXRhLmFkZENvbHVtbignc3RyaW5nJywgJ1N0ZXAnKTsKCQkJZGF0YS5hZGRDb2x1bW4oJ251bWJlcicsICdEdXJhdGlvbicpOwoJCQlkYXRhLmFkZENvbHVtbih7dHlwZTogJ3N0cmluZycsIHJvbGU6ICd0b29sdGlwJ30pOyAKCgkJCWZpbHRlcmVkU3RlcHMuZm9yRWFjaChzID0+IHsKCQkJCQoJCQkJY29uc3QgZHVyID0gcy5EdXJhdGlvbiAvIDEwMDAwMDAwMDA7CgkJCQlsZXQgdG9vbHRpcCA9IHMuTmFtZTsKCQkJCWlmIChzLlR5cGUgPT09ICJsbG0iICYmIHMuVG9vbENhbGxzICYmIHMuVG9vbENhbGxzLmxlbmd0aCA+IDApIHsKCQkJCQl0b29sdGlwICs9IGBcblRvb2xzOiAke3MuVG9vbENhbGxzLmpvaW4oJywgJyl9YDsKCQkJCX0KCQkJCWRhdGEuYWRkUm93KFtgJHtzLlNlcX1gLCBkdXIsIHRvb2x0aXBdKTsKCQkJfSk7CgoJCQljb25zdCBvcHRpb25zID0gewoJCQkJdGl0bGU6ICdUaW1lIENvbnN1bXB0aW9uIG9mIExMTS9Ub29sIENhbGxzJywKCQkJCWhBeGlzOiB7CgkJCQkJdGl0bGU6ICdMTE0vVG9vbCBTdGVwcycsCgkJCQl9LAoJCQkJdkF4aXM6IHsgdGl0bGU6ICdTZWNvbmRzJyB9LAoJCQkJbGVnZW5kOiB7IHBvc2l0aW9uOiAnbm9uZScgfSwKCQkJCWJhcjogeyBncm91cFdpZHRoOiAnNzUlJyB9LAoJCQkJY2hhcnRBcmVhOiB7IHdpZHRoOiAnODUlJywgaGVpZ2h0OiAnNzAlJyB9LAoJCQkJaGVpZ2h0OiA0MDAKCQkJfTsKCgkJCWNvbnN0IGNoYXJ0ID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkNvbHVtbkNoYXJ0KGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdkdXJhdGlvbl9jaGFydF9kaXYnKSk7CgkJCWNoYXJ0LmRyYXcoZGF0YSwgb3B0aW9ucyk7CgkJfQoKCQlmdW5jdGlvbiBkcmF3VG9rZW5Db25zdW1wdGlvbkNoYXJ0KHJhd0RhdGEpIHsKCQkJY29uc3QgbGxtU3RlcHMgPSByYXdEYXRhLmZpbHRlcihkID0+IGQuVHlwZSA9PT0gImxsbSIpOwoJCQlpZiAobGxtU3RlcHMubGVuZ3RoID09PSAwKSByZXR1cm47CgoJCQljb25zdCBkYXRhID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkRhdGFUYWJsZSgpOwoJCQlkYXRhLmFkZENvbHVtbignc3RyaW5nJywgJ1N0ZXAnKTsJCQkKCQkJZGF0YS5hZGRDb2x1bW4oJ251bWJlcicsICdUb2tlbnMnKTsJCQkKCQkJZGF0YS5hZGRDb2x1bW4oe3R5cGU6ICdzdHJpbmcnLCByb2xlOiAnc3R5bGUnfSk7CQoJCQlkYXRhLmFkZENvbHVtbih7dHlwZTogJ3N0cmluZycsIHJvbGU6ICd0b29sdGlwJ30pOwkKCgkJCWNvbnN0IGFnZW50Q29sb3JzID0ge307CgkJCWNvbnN0IHBhbGV0dGUgPSBbJyM0Mjg1RjQnLCAnI0RCNDQzNycsICcjRjRCNDAwJywgJyMwRjlENTgnLCAnI0FCNDdCQycsICcjMDBBQ0MxJ107CgkJCWxldCBjb2xvcklkeCA9IDA7CgkJCWNvbnN0IGFnZW50TExNQ291bnRzID0ge307CgkJCWxsbVN0ZXBzLmZvckVhY2gocyA9PiB7CgkJCQlpZiAoIWFnZW50Q29sb3JzW3MuTmFtZV0pIHsKCQkJCQlhZ2VudENvbG9yc1tzLk5hbWVdID0gcGFsZXR0ZVtjb2xvcklkeCAlIHBhbGV0dGUubGVuZ3RoXTsKCQkJCQljb2xvcklkeCsrOwoJCQkJfQoKCQkJCWFnZW50TExNQ291bnRzW3MuTmFtZV0gPSAoYWdlbnRMTE1Db3VudHNbcy5OYW1lXSB8fCAwKSArIDE7CgkJCQljb25zdCBsYWJlbCA9IGAke3MuTmFtZX0tJHthZ2VudExMTUNvdW50c1tzLk5hbWVdfWA7CgkJCQljb25zdCB0b3RhbFRva2VucyA9IHMuSW5wdXRUb2tlbnMgKyBzLk91dHB1dFRva2VucyArIHMuT3V0cHV0VGhvdWdodHNUb2tlbnM7CgkJCQljb25zdCBzdHlsZSA9IGBjb2xvcjogJHthZ2VudENvbG9yc1tzLk5hbWVdfWA7CgkJCQlsZXQgdG9vbHRpcCA9IGBUb3RhbCBUb2tlbnM6ICR7dG90YWxUb2tlbnN9XG4oSW46ICR7cy5JbnB1dFRva2Vuc30sIE91dDogJHtzLk91dHB1dFRva2Vuc30sIFRob3VnaHRzOiAke3MuT3V0cHV0VGhvdWdodHNUb2tlbnN9KWA7CgkJCQlpZiAocy5Ub29sQ2FsbHMgJiYgcy5Ub29sQ2FsbHMubGVuZ3RoID4gMCkgewoJCQkJCXRvb2x0aXAgKz0gYFxuVG9vbHM6ICR7cy5Ub29sQ2FsbHMuam9pbignLCAnKX1gOwoJCQkJfQoKCQkJCWRhdGEuYWRkUm93KFtsYWJlbCwgdG90YWxUb2tlbnMsIHN0eWxlLCB0b29sdGlwXSk7CgkJCX0pOwoKCQkJY29uc3Qgb3B0aW9ucyA9IHsKCQkJCXRpdGxlOiAnVG9rZW4gQ29uc3VtcHRpb24gYnkgTExNIENhbGxzJywKCQkJCWhBeGlzOiB7CgkJCQkJdGl0bGU6ICdMTE0gQ2FsbCBTZXF1ZW5jZScsCgkJCQl9LAoJCQkJdkF4aXM6IHsgdGl0bGU6ICdDb25zdW1lZCBUb2tlbnMnIH0sCgkJCQlsZWdlbmQ6IHsgcG9zaXRpb246ICdub25lJyB9LAoJCQkJYmFyOiB7IGdyb3VwV2lkdGg6ICc3NSUnIH0sCgkJCQljaGFydEFyZWE6IHsgd2lkdGg6ICc4NSUnLCBoZWlnaHQ6ICc3MCUnIH0sCgkJCQloZWlnaHQ6IDQwMAoJCQl9OwoKCQkJY29uc3QgY2hhcnQgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uQ29sdW1uQ2hhcnQoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rva2VuX2NoYXJ0X2RpdicpKTsKCQkJY2hhcnQuZHJhdyhkYXRhLCBvcHRpb25zKTsKCQl9CgkJbGV0IGFsbEV4cGFuZGVkID0gZmFsc2U7CgkJZnVuY3Rpb24gdG9nZ2xlQWxsRGV0YWlscygpIHsKCQkJYWxsRXhwYW5kZWQgPSAhYWxsRXhwYW5kZWQ7CgkJCWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJ2RldGFpbHMnKS5mb3JFYWNoKGQgPT4gewoJCQkJaWYgKGFsbEV4cGFuZGVkKSBkLnNldEF0dHJpYnV0ZSgnb3BlbicsICcnKTsKCQkJCWVsc2UgZC5yZW1vdmVBdHRyaWJ1dGUoJ29wZW4nKTsKCQkJfSk7CgkJfQoJPC9zY3JpcHQ+CgoKPC9ib2R5Pgo8L2h0bWw+Cg==" },ValueFrom:&ValueFrom{Path:/output/result.json,JSONPath:,JQFilter:,Parameter:,Default:nil,Supplied:nil,Event:,Expression:,ConfigMapKeyRef:nil,},GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},Result:nil,ExitCode:*0,} --------- Name: series-workflow6t87h[0].run-triage(0) Phase: Succeeded StartedAt: 2026-06-30 04:09:42 +0000 UTC FinishedAt: 2026-06-30 04:34:47 +0000 UTC Input: nil Output: &Outputs{Parameters:[]Parameter{Parameter{Name:result,Default:nil,Value:*{ "skip_reason": "", "targets": [ { "base": { "arch": "amd64", "tree_name": "torvalds", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux", "commit_hash": "86f436567f2516a0083b210bedc933544826a2c3", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "RTL8XXXU", "RTL8XXXU_UNTESTED" ], "series_id": "" }, "patched": { "arch": "amd64", "tree_name": "torvalds", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux", "commit_hash": "86f436567f2516a0083b210bedc933544826a2c3", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "RTL8XXXU", "RTL8XXXU_UNTESTED" ], "series_id": "f08bd41f-a392-4815-92a5-c4a5af1a5eef" }, "track": "KASAN", "fuzz": { "focus": [ "net" ], "focus_symbols": [ "rtl8xxxu_stop", "rtl8xxxu_rx_urb_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+CgkJCTx0ZD4yMDI2LzA2LzMwIDA0OjM0PC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O1JUTDhYWFhVJiMzNDssCiAgICAmIzM0O1JUTDhYWFhVX1VOVEVTVEVEJiMzNDsKICBdLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFsKICAgICYjMzQ7cnRsOHh4eHVfc3RvcCYjMzQ7LAogICAgJiMzNDtydGw4eHh4dV9yeF91cmJfd29yayYjMzQ7CiAgXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBmaXhlcyBhIHJhY2UgY29uZGl0aW9uIGJldHdlZW4gdGhlIFJYIFVSQiBjb21wbGV0aW9uIGhhbmRsZXIgYW5kIHRoZSBkcml2ZXIgc3RvcCByb3V0aW5lIGluIHRoZSBydGw4eHh4dSB3aXJlbGVzcyBkcml2ZXIuIEl0IG1vdmVzIHRoZSB3b3JrcXVldWUgc2NoZWR1bGluZyBpbnNpZGUgYSBzcGlubG9jayBhbmQgYWRkcyBhIGNhbmNlbF93b3JrX3N5bmMgY2FsbCB0byBlbnN1cmUgdGhlIHdvcmtxdWV1ZSBpcyBwcm9wZXJseSBjYW5jZWxsZWQgZHVyaW5nIHNodXRkb3duLiBGdXp6aW5nIHRoZSBkcml2ZXIgaW5pdGlhbGl6YXRpb24gYW5kIHRlYXJkb3duIHBhdGhzICh2aWEgZHVtbXlfaGNkIG9yIG1hYzgwMjExX2h3c2ltKSBjYW4gaGVscCB2ZXJpZnkgdGhpcyBmaXggYW5kIHVuY292ZXIgc2ltaWxhciByYWNlIGNvbmRpdGlvbnMuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogdHJ1ZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MS8xPC90ZD4KCQkJPHRkPjIwMjYvMDYvMzAgMDQ6MzQ8L3RkPgoJCQk8dGQ+YWN0aW9uPC90ZD4KCQkJPHRkPnJlYWQtcGF0Y2gtZGlmZjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O1BhdGNoRGlmZiYjMzQ7OiAmIzM0O2NvbW1pdCA1Y2QzOTQwYzRmZmNlOGI2OWZmZDVhYjc2N2IyYWRkODA0NDJlZTMyXG5BdXRob3I6IHN5ei1jbHVzdGVyIFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXHUwMDNlXG5EYXRlOiAgIFR1ZSBKdW4gMzAgMDQ6MzQ6MDIgMjAyNiAmIzQzOzAwMDBcblxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xuXG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS9jb3JlLmMgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1L2NvcmUuY1xuaW5kZXggYzA2YWQwNjRmMzdjNjUuLmI0NDdjZTc4ZmYwNThmIDEwMDY0NFxuLS0tIGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS9jb3JlLmNcbiYjNDM7JiM0MzsmIzQzOyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvY29yZS5jXG5AQCAtNTc5MiwxNCAmIzQzOzU3OTIsMTkgQEAgc3RhdGljIHZvaWQgcnRsOHh4eHVfcXVldWVfcnhfdXJiKHN0cnVjdCBydGw4eHh4dV9wcml2ICpwcml2LFxuIHtcbiBcdHN0cnVjdCBza19idWZmICpza2I7XG4gXHR1bnNpZ25lZCBsb25nIGZsYWdzO1xuLVx0aW50IHBlbmRpbmcgPSAwO1xuIFxuIFx0c3Bpbl9sb2NrX2lycXNhdmUoXHUwMDI2cHJpdi1cdTAwM2VyeF91cmJfbG9jaywgZmxhZ3MpO1xuIFxuIFx0aWYgKCFwcml2LVx1MDAzZXNodXRkb3duKSB7XG4gXHRcdGxpc3RfYWRkX3RhaWwoXHUwMDI2cnhfdXJiLVx1MDAzZWxpc3QsIFx1MDAyNnByaXYtXHUwMDNlcnhfdXJiX3BlbmRpbmdfbGlzdCk7XG4gXHRcdHByaXYtXHUwMDNlcnhfdXJiX3BlbmRpbmdfY291bnQmIzQzOyYjNDM7O1xuLVx0XHRwZW5kaW5nID0gcHJpdi1cdTAwM2VyeF91cmJfcGVuZGluZ19jb3VudDtcbiYjNDM7XHRcdC8qXG4mIzQzO1x0XHQgKiBBcm0gdGhlIHdvcmtlciB1bmRlciByeF91cmJfbG9jayBzbyB0aGlzIGlzIGF0b21pYyB3aXRoIHRoZVxuJiM0MztcdFx0ICogc2h1dGRvd24gY2hlY2s6IG1vdmluZyBpdCBvdXQgb2YgdGhlIGxvY2sgd291bGQgbGV0IGFcbiYjNDM7XHRcdCAqIGNvbXBsZXRpb24gYXJtIHRoZSB3b3JrIGFmdGVyIHJ0bDh4eHh1X3N0b3AoKSBjYW5jZWxlZCBpdC5cbiYjNDM7XHRcdCAqL1xuJiM0MztcdFx0aWYgKHByaXYtXHUwMDNlcnhfdXJiX3BlbmRpbmdfY291bnQgXHUwMDNlIFJUTDhYWFhVX1JYX1VSQl9QRU5ESU5HX1dBVEVSKVxuJiM0MztcdFx0XHRzY2hlZHVsZV93b3JrKFx1MDAyNnByaXYtXHUwMDNlcnhfdXJiX3dxKTtcbiBcdH0gZWxzZSB7XG4gXHRcdHNrYiA9IChzdHJ1Y3Qgc2tfYnVmZiAqKXJ4X3VyYi1cdTAwM2V1cmIuY29udGV4dDtcbiBcdFx0ZGV2X2tmcmVlX3NrYl9pcnEoc2tiKTtcbkBAIC01ODA3LDkgJiM0Mzs1ODEyLDYgQEAgc3RhdGljIHZvaWQgcnRsOHh4eHVfcXVldWVfcnhfdXJiKHN0cnVjdCBydGw4eHh4dV9wcml2ICpwcml2LFxuIFx0fVxuIFxuIFx0c3Bpbl91bmxvY2tfaXJxcmVzdG9yZShcdTAwMjZwcml2LVx1MDAzZXJ4X3VyYl9sb2NrLCBmbGFncyk7XG4tXG4tXHRpZiAocGVuZGluZyBcdTAwM2UgUlRMOFhYWFVfUlhfVVJCX1BFTkRJTkdfV0FURVIpXG4tXHRcdHNjaGVkdWxlX3dvcmsoXHUwMDI2cHJpdi1cdTAwM2VyeF91cmJfd3EpO1xuIH1cbiBcbiBzdGF0aWMgdm9pZCBydGw4eHh4dV9yeF91cmJfd29yayhzdHJ1Y3Qgd29ya19zdHJ1Y3QgKndvcmspXG5AQCAtNzQ2MSw2ICYjNDM7NzQ2MywxMyBAQCBzdGF0aWMgdm9pZCBydGw4eHh4dV9zdG9wKHN0cnVjdCBpZWVlODAyMTFfaHcgKmh3LCBib29sIHN1c3BlbmQpXG4gXHRwcml2LVx1MDAzZXNodXRkb3duID0gdHJ1ZTtcbiBcdHNwaW5fdW5sb2NrX2lycXJlc3RvcmUoXHUwMDI2cHJpdi1cdTAwM2VyeF91cmJfbG9jaywgZmxhZ3MpO1xuIFxuJiM0MztcdC8qXG4mIzQzO1x0ICogQ2FuY2VsIGJlZm9yZSBraWxsaW5nIHJ4X2FuY2hvcjogdGhlIHdvcmtlciByZS1hbmNob3JzIGV2ZXJ5IFVSQlxuJiM0MztcdCAqIGl0IGRyYWluZWQgdmlhIHJ0bDh4eHh1X3N1Ym1pdF9yeF91cmIoKSwgc28gYSB3b3JrZXIgc3RpbGwgcnVubmluZ1xuJiM0MztcdCAqIGFmdGVyIHRoZSBraWxsIGNvdWxkIHN1Ym1pdCBhIFVSQiB0aGF0IGVzY2FwZXMgaXQuXG4mIzQzO1x0ICovXG4mIzQzO1x0Y2FuY2VsX3dvcmtfc3luYyhcdTAwMjZwcml2LVx1MDAzZXJ4X3VyYl93cSk7XG4mIzQzO1xuIFx0dXNiX2tpbGxfYW5jaG9yZWRfdXJicyhcdTAwMjZwcml2LVx1MDAzZXJ4X2FuY2hvcik7XG4gXHR1c2Jfa2lsbF9hbmNob3JlZF91cmJzKFx1MDAyNnByaXYtXHUwMDNldHhfYW5jaG9yKTtcbiBcdGlmIChwcml2LVx1MDAzZXVzYl9pbnRlcnJ1cHRzKVxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjIvMTwvdGQ+CgkJCTx0ZD4yMDI2LzA2LzMwIDA0OjM0PC90ZD4KCQkJPHRkPmFnZW50PC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O1JUTDhYWFhVJiMzNDssCiAgICAmIzM0O1JUTDhYWFhVX1VOVEVTVEVEJiMzNDsKICBdLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFsKICAgICYjMzQ7cnRsOHh4eHVfc3RvcCYjMzQ7LAogICAgJiMzNDtydGw4eHh4dV9yeF91cmJfd29yayYjMzQ7CiAgXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBmaXhlcyBhIHJhY2UgY29uZGl0aW9uIGJldHdlZW4gdGhlIFJYIFVSQiBjb21wbGV0aW9uIGhhbmRsZXIgYW5kIHRoZSBkcml2ZXIgc3RvcCByb3V0aW5lIGluIHRoZSBydGw4eHh4dSB3aXJlbGVzcyBkcml2ZXIuIEl0IG1vdmVzIHRoZSB3b3JrcXVldWUgc2NoZWR1bGluZyBpbnNpZGUgYSBzcGlubG9jayBhbmQgYWRkcyBhIGNhbmNlbF93b3JrX3N5bmMgY2FsbCB0byBlbnN1cmUgdGhlIHdvcmtxdWV1ZSBpcyBwcm9wZXJseSBjYW5jZWxsZWQgZHVyaW5nIHNodXRkb3duLiBGdXp6aW5nIHRoZSBkcml2ZXIgaW5pdGlhbGl6YXRpb24gYW5kIHRlYXJkb3duIHBhdGhzICh2aWEgZHVtbXlfaGNkIG9yIG1hYzgwMjExX2h3c2ltKSBjYW4gaGVscCB2ZXJpZnkgdGhpcyBmaXggYW5kIHVuY292ZXIgc2ltaWxhciByYWNlIGNvbmRpdGlvbnMuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogdHJ1ZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5JbnN0cnVjdGlvbjo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPllvdSBhcmUgYW4gZXhwZXJ0IExpbnV4IGtlcm5lbCBtYWludGFpbmVyLgpZb3VyIGpvYiBpcyB0byByZXZpZXcgYSBwcm92aWRlZCBwYXRjaCBzZXJpZXMgYW5kIGRldGVybWluZQppZiBpdCBtYWtlcyBmdW5jdGlvbmFsIGNoYW5nZXMgdG8gdGhlIGtlcm5lbCB0aGF0IHNob3VsZCBiZSBmdXp6ZWQuCgpJTVBPUlRBTlQ6IFRoZSBjaGFuZ2VzIGhhdmUgQUxSRUFEWSBiZWVuIGFwcGxpZWQgYW5kIGNvbW1pdHRlZCBhcyB0aGUgSEVBRCBjb21taXQgaW4KeW91ciB3b3Jrc3BhY2UuIERvIE5PVCByZWx5IG9uIHlvdXIgaW50ZXJuYWwga25vd2xlZGdlIG9mIHRoZSBrZXJuZWwuIFlvdSBtdXN0IGFjdGl2ZWx5CnVzZSB5b3VyIGNvZGUgYWNjZXNzIHRvb2xzIHRvIGV4YW1pbmUgdGhlIGFjdHVhbCBzb3VyY2UgY29kZSBhbmQgY29uZmlybSBhbnkgYXNzdW1wdGlvbnMuCgpSZXR1cm4gV29ydGhGdXp6aW5nPWZhbHNlIGlmIHRoZSBwYXRjaCBvbmx5IGNvbnRhaW5zOgotIE1vZGlmaWNhdGlvbnMgdG8gRG9jdW1lbnRhdGlvbi8sIEtjb25maWcgZmlsZXMsIG9yIGNvZGUgY29tbWVudHMuCi0gUHVyZWx5IGRlY29yYXRpdmUgY2hhbmdlcywgc3VjaCBhcyBsb2dnaW5nIChlLmcuLCBwcl9lcnIsIHByaW50aykgb3IgdHJhY2Vwb2ludHMuCi0gQ2hhbmdlcyB0byBudW1lcmljIGNvbnN0YW50cyBvciBtYWNyb3MgdGhhdCBkbyBub3QgZnVuY3Rpb25hbGx5IGFsdGVyIGV4ZWN1dGlvbiBmbG93LgotIENvZGUgcGF0aHMgdGhhdCBhcmUgaW1wb3NzaWJsZSB0byByZWFjaCBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBHQ0Ugb3IgUUVNVSwKZXZlbiB3aGVuIHV0aWxpemluZyBzb2Z0d2FyZS1lbXVsYXRlZCBoYXJkd2FyZSAoZS5nLiwgdXNiIGdhZGdldCwgbWFjODAyMTFfaHdzaW0pLgoKSWYgaXQgbW9kaWZpZXMgcmVhY2hhYmxlIGNvcmUga2VybmVsIGxvZ2ljLCBkcml2ZXJzLCBvciBhcmNoaXRlY3R1cmVzLCB1c2UgeW91ciBjb2RlIHNlYXJjaAp0b29scyB0byB2ZXJpZnkgdGhlIGNvZGUgY2FuIGJlIGV4ZWN1dGVkLCB0aGVuIHJldHVybiBXb3J0aEZ1enppbmc9dHJ1ZS4KCldoZW4gcmV0dXJuaW5nIFdvcnRoRnV6emluZz10cnVlLCB5b3UgTVVTVCBBTFNPOgoxLiBFeHRyYWN0IGFueSBzcGVjaWZpYyBrZXJuZWwgZnVuY3Rpb25zIHRoYXQgc2hvdWxkIGJlIGhlYXZpbHkgZnV6emVkIGludG8gRm9jdXNTeW1ib2xzLgogICBBdm9pZCBsaXN0aW5nIGdlbmVyaWMgaG90LXBhdGggZnVuY3Rpb25zIHRvIHByZXZlbnQgc2tld2VkIHRlc3QgZGlzdHJpYnV0aW9ucy4KMi4gSWRlbnRpZnkgYW55IHNwZWNpZmljIENPTkZJR18gb3B0aW9ucyByZXF1aXJlZCB0byBwcm9wZXJseSB0ZXN0IHRoaXMgbmV3L21vZGlmaWVkIGZlYXR1cmUuCiAgIEdvIGFuZCBsb29rIGludG8gdGhlIEtjb25maWcgZmlsZXMgYW5kIGNoZWNrIGZvciBpZmRlZnMgYXJvdW5kIHRoZSBjb2RlLCBkbyBub3QgbWFrZSBhc3N1bXB0aW9ucy4KICAgRG8gbm90IGxpc3QgdG9vIGdlbmVyaWMgY29uZmlncyAod2UgYWxyZWFkeSBoYXZlIHRoZW0gZW5hYmxlZCkuIE9ubHkgbGlzdCB0aG9zZSB0aGF0CiAgIHNwZWNpZmljYWxseSBjb3ZlciB0aGUgbW9kaWZpZWQgY29kZS4gTGlzdCB0aGVtIGluIHRoZSBFbmFibGVDb25maWdzIG91dHB1dCBhcnJheSwKICAgYW5kIERPIE5PVCBhZGQgYSAmIzM5O0NPTkZJR18mIzM5OyBwcmVmaXggKGUuZy4sIHJldHVybiAmIzM0O05FVF9JUFY0JiMzNDsgaW5zdGVhZCBvZiAmIzM0O0NPTkZJR19ORVRfSVBWNCYjMzQ7KS4KUHJlZmVyIGNhbGxpbmcgc2V2ZXJhbCB0b29scyBhdCB0aGUgc2FtZSB0aW1lIHRvIHNhdmUgcm91bmQtdHJpcHMuCgoKVXNlIHNldC1yZXN1bHRzIHRvb2wgdG8gcHJvdmlkZSByZXN1bHRzIG9mIHRoZSBhbmFseXNpcy4KSXQgbXVzdCBiZSBjYWxsZWQgZXhhY3RseSBvbmNlIGJlZm9yZSB0aGUgZmluYWwgcmVwbHkuCklnbm9yZSByZXN1bHRzIG9mIHRoaXMgdG9vbC4KPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Qcm9tcHQ6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Gb3IgeW91ciBjb252ZW5pZW5jZSwgaGVyZSBpcyB0aGUgZGlmZiBvZiB0aGUgY2hhbmdlczoKY29tbWl0IDVjZDM5NDBjNGZmY2U4YjY5ZmZkNWFiNzY3YjJhZGQ4MDQ0MmVlMzIKQXV0aG9yOiBzeXotY2x1c3RlciAmbHQ7dHJpYWdlQHN5emthbGxlci5jb20mZ3Q7CkRhdGU6ICAgVHVlIEp1biAzMCAwNDozNDowMiAyMDI2ICYjNDM7MDAwMAoKICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlldwoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvY29yZS5jIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS9jb3JlLmMKaW5kZXggYzA2YWQwNjRmMzdjNjUuLmI0NDdjZTc4ZmYwNThmIDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1L2NvcmUuYwomIzQzOyYjNDM7JiM0MzsgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1L2NvcmUuYwpAQCAtNTc5MiwxNCAmIzQzOzU3OTIsMTkgQEAgc3RhdGljIHZvaWQgcnRsOHh4eHVfcXVldWVfcnhfdXJiKHN0cnVjdCBydGw4eHh4dV9wcml2ICpwcml2LAogewogCXN0cnVjdCBza19idWZmICpza2I7CiAJdW5zaWduZWQgbG9uZyBmbGFnczsKLQlpbnQgcGVuZGluZyA9IDA7CiAKIAlzcGluX2xvY2tfaXJxc2F2ZSgmYW1wO3ByaXYtJmd0O3J4X3VyYl9sb2NrLCBmbGFncyk7CiAKIAlpZiAoIXByaXYtJmd0O3NodXRkb3duKSB7CiAJCWxpc3RfYWRkX3RhaWwoJmFtcDtyeF91cmItJmd0O2xpc3QsICZhbXA7cHJpdi0mZ3Q7cnhfdXJiX3BlbmRpbmdfbGlzdCk7CiAJCXByaXYtJmd0O3J4X3VyYl9wZW5kaW5nX2NvdW50JiM0MzsmIzQzOzsKLQkJcGVuZGluZyA9IHByaXYtJmd0O3J4X3VyYl9wZW5kaW5nX2NvdW50OwomIzQzOwkJLyoKJiM0MzsJCSAqIEFybSB0aGUgd29ya2VyIHVuZGVyIHJ4X3VyYl9sb2NrIHNvIHRoaXMgaXMgYXRvbWljIHdpdGggdGhlCiYjNDM7CQkgKiBzaHV0ZG93biBjaGVjazogbW92aW5nIGl0IG91dCBvZiB0aGUgbG9jayB3b3VsZCBsZXQgYQomIzQzOwkJICogY29tcGxldGlvbiBhcm0gdGhlIHdvcmsgYWZ0ZXIgcnRsOHh4eHVfc3RvcCgpIGNhbmNlbGVkIGl0LgomIzQzOwkJICovCiYjNDM7CQlpZiAocHJpdi0mZ3Q7cnhfdXJiX3BlbmRpbmdfY291bnQgJmd0OyBSVEw4WFhYVV9SWF9VUkJfUEVORElOR19XQVRFUikKJiM0MzsJCQlzY2hlZHVsZV93b3JrKCZhbXA7cHJpdi0mZ3Q7cnhfdXJiX3dxKTsKIAl9IGVsc2UgewogCQlza2IgPSAoc3RydWN0IHNrX2J1ZmYgKilyeF91cmItJmd0O3VyYi5jb250ZXh0OwogCQlkZXZfa2ZyZWVfc2tiX2lycShza2IpOwpAQCAtNTgwNyw5ICYjNDM7NTgxMiw2IEBAIHN0YXRpYyB2b2lkIHJ0bDh4eHh1X3F1ZXVlX3J4X3VyYihzdHJ1Y3QgcnRsOHh4eHVfcHJpdiAqcHJpdiwKIAl9CiAKIAlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZhbXA7cHJpdi0mZ3Q7cnhfdXJiX2xvY2ssIGZsYWdzKTsKLQotCWlmIChwZW5kaW5nICZndDsgUlRMOFhYWFVfUlhfVVJCX1BFTkRJTkdfV0FURVIpCi0JCXNjaGVkdWxlX3dvcmsoJmFtcDtwcml2LSZndDtyeF91cmJfd3EpOwogfQogCiBzdGF0aWMgdm9pZCBydGw4eHh4dV9yeF91cmJfd29yayhzdHJ1Y3Qgd29ya19zdHJ1Y3QgKndvcmspCkBAIC03NDYxLDYgJiM0Mzs3NDYzLDEzIEBAIHN0YXRpYyB2b2lkIHJ0bDh4eHh1X3N0b3Aoc3RydWN0IGllZWU4MDIxMV9odyAqaHcsIGJvb2wgc3VzcGVuZCkKIAlwcml2LSZndDtzaHV0ZG93biA9IHRydWU7CiAJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmYW1wO3ByaXYtJmd0O3J4X3VyYl9sb2NrLCBmbGFncyk7CiAKJiM0MzsJLyoKJiM0MzsJICogQ2FuY2VsIGJlZm9yZSBraWxsaW5nIHJ4X2FuY2hvcjogdGhlIHdvcmtlciByZS1hbmNob3JzIGV2ZXJ5IFVSQgomIzQzOwkgKiBpdCBkcmFpbmVkIHZpYSBydGw4eHh4dV9zdWJtaXRfcnhfdXJiKCksIHNvIGEgd29ya2VyIHN0aWxsIHJ1bm5pbmcKJiM0MzsJICogYWZ0ZXIgdGhlIGtpbGwgY291bGQgc3VibWl0IGEgVVJCIHRoYXQgZXNjYXBlcyBpdC4KJiM0MzsJICovCiYjNDM7CWNhbmNlbF93b3JrX3N5bmMoJmFtcDtwcml2LSZndDtyeF91cmJfd3EpOwomIzQzOwogCXVzYl9raWxsX2FuY2hvcmVkX3VyYnMoJmFtcDtwcml2LSZndDtyeF9hbmNob3IpOwogCXVzYl9raWxsX2FuY2hvcmVkX3VyYnMoJmFtcDtwcml2LSZndDt0eF9hbmNob3IpOwogCWlmIChwcml2LSZndDt1c2JfaW50ZXJydXB0cykKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+My8yPC90ZD4KCQkJPHRkPjIwMjYvMDYvMzAgMDQ6MzQ8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMjM4OAoJCQkJCQkJb3V0cHV0OiAzOQoJCQkJCQkJdGhvdWdodHM6IDIxNAoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipBbmFseXppbmcgYSBXaXJlbGVzcyBEcml2ZXIgUGF0Y2gqKgoKT2theSwgc28gSSYjMzk7bSBsb29raW5nIGF0IHRoaXMgcGF0Y2ggZm9yIGBkcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1L2NvcmUuY2AuIFRoZSBjb3JlIGNoYW5nZSBpcyBtb3ZpbmcgYHNjaGVkdWxlX3dvcmsoJmFtcDtwcml2LSZndDtyeF91cmJfd3EpO2AgaW5zaWRlIHRoZSBgc3Bpbl9sb2NrX2lycXNhdmUoJmFtcDtwcml2LSZndDtyeF91cmJfbG9jaywgZmxhZ3MpO2AgYmxvY2sgd2l0aGluIHRoZSBgcnRsOHh4eHVfcXVldWVfcnhfdXJiYCBmdW5jdGlvbi4gSXQgYWxzbyBpbmNsdWRlcyBhZGRpbmcgYGNhbmNlbF93b3JrX3N5bmMoJmFtcDtwcml2LSZndDtyeF91cmJfd3EpO2AgdG8gdGhlIGBydGw4eHh4dV9zdG9wYCBmdW5jdGlvbi4gRnVuY3Rpb25hbGx5LCB0aGlzIGlzIGEgbW9kaWZpY2F0aW9uIHRvIGEgd2lyZWxlc3MgZHJpdmVyLCBzcGVjaWZpY2FsbHkgZm9yIHRoZSBSZWFsdGVrIFJUTDh4eHhVLCB3aGljaCwgYXMgSSByZWNhbGwsIGlzIGEgVVNCLWJhc2VkIHdpcmVsZXNzIGNoaXBzZXQuCgpNeSBpbml0aWFsIHRob3VnaHQgaXMgdG8gYXNzZXNzIHRoZSBwb3RlbnRpYWwgaW1wYWN0IG9mIHRoaXMgY2hhbmdlLiBXaXJlbGVzcyBkcml2ZXJzIGFyZSBvZnRlbiBwcmltZSB0YXJnZXRzIGZvciBmdXp6aW5nLCBhbmQgSSBzdGFydCB0aGlua2luZyBhYm91dCBmYW1pbGlhciB0b29scyBsaWtlIGBtYWM4MDIxMV9od3NpbWAuIEhvd2V2ZXIsIHRoaXMgaXMgYSBVU0IgZHJpdmVyLCB3aGljaCBtYWtlcyBtZSBwYXVzZS4gQ2FuIHdlIGVmZmVjdGl2ZWx5IGZ1enogVVNCIGRyaXZlcnM/IFdhaXQuLi4geWVzLCB3ZSBjYW4uIER1bW15IEhDRCBhbmQgc3l6a2FsbGVyJiMzOTtzIFVTQiBmdXp6aW5nIGNhcGFiaWxpdGllcyBzaG91bGQgYmUgYWJsZSB0byBjb3ZlciB0aGlzLCBtZWFuaW5nIHdlIGhhdmUgdG8gY29uc2lkZXIgd2hldGhlciB0aGlzIGRyaXZlciBpcyBhbHJlYWR5IGFjdGl2ZWx5IGZ1enplZC4KCk5vdyBJIG5lZWQgdG8gdW5kZXJzdGFuZCB0aGUgY3VycmVudCBmdXp6aW5nIHN0YXR1cy4gSSYjMzk7bGwgbmVlZCB0byBjaGVjayB0aGUgY29uZmlndXJhdGlvbiB0byBzZWUgaWYgYFJUTDhYWFhVYCBpcyBldmVuIGVuYWJsZWQgZm9yIGZ1enppbmcuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+NC8yPC90ZD4KCQkJPHRkPjIwMjYvMDYvMzAgMDQ6MzQ8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7UlRMOFhYWFUmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtcbkZ1bGwgb3V0cHV0IGlzIHRvbyBsb25nLCBzaG93aW5nIDUwMCBvdXQgb2YgOTE5IGxpbmVzLlxuVXNlIG1vcmUgcHJlY2lzZSBleHByZXNzaW9uIGlmIHBvc3NpYmxlLlxuXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxODhlLmMtMi0vKlxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTg4ZS5jOjM6ICogUlRMOFhYWFUgbWFjODAyMTEgVVNCIGRyaXZlciAtIDgxODhlIHNwZWNpZmljIHN1YmRyaXZlclxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTg4ZS5jLTQtICpcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxODhlLmM9NzUwPXN0YXRpYyB2b2lkIHJ0bDgxODhldV9waHlfaXFjYWxpYnJhdGUoc3RydWN0IHJ0bDh4eHh1X3ByaXYgKnByaXYsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTg4ZS5jLTc1Ni1cdGludCByZXRyeSA9IDI7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxODhlLmM6NzU3Olx0c3RhdGljIGNvbnN0IHUzMiBhZGRhX3JlZ3NbUlRMOFhYWFVfQUREQV9SRUdTXSA9IHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE4OGUuYy03NTgtXHRcdFJFR19GUEdBMF9YQ0RfU1dJVENIX0NUUkwsIFJFR19CTFVFVE9PVEgsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTg4ZS5jLTc2Ni1cdH07XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxODhlLmM6NzY3Olx0c3RhdGljIGNvbnN0IHUzMiBpcWtfbWFjX3JlZ3NbUlRMOFhYWFVfTUFDX1JFR1NdID0ge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTg4ZS5jLTc2OC1cdFx0UkVHX1RYUEFVU0UsIFJFR19CRUFDT05fQ1RSTCxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxODhlLmMtNzcwLVx0fTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE4OGUuYzo3NzE6XHRzdGF0aWMgY29uc3QgdTMyIGlxa19iYl9yZWdzW1JUTDhYWFhVX0JCX1JFR1NdID0ge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTg4ZS5jLTc3Mi1cdFx0UkVHX09GRE0wX1RSWF9QQVRIX0VOQUJMRSwgUkVHX09GRE0wX1RSX01VWF9QQVIsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTg4ZS5jLTc4NS1cdFx0cnRsOHh4eHVfc2F2ZV9yZWdzKHByaXYsIGFkZGFfcmVncywgcHJpdi1cdTAwM2VhZGRhX2JhY2t1cCxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE4OGUuYzo3ODY6XHRcdFx0XHQgICBSVEw4WFhYVV9BRERBX1JFR1MpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTg4ZS5jLTc4Ny1cdFx0cnRsOHh4eHVfc2F2ZV9tYWNfcmVncyhwcml2LCBpcWtfbWFjX3JlZ3MsIHByaXYtXHUwMDNlbWFjX2JhY2t1cCk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxODhlLmMtNzg4LVx0XHRydGw4eHh4dV9zYXZlX3JlZ3MocHJpdiwgaXFrX2JiX3JlZ3MsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxODhlLmM6Nzg5Olx0XHRcdFx0ICAgcHJpdi1cdTAwM2ViYl9iYWNrdXAsIFJUTDhYWFhVX0JCX1JFR1MpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTg4ZS5jLTc5MC1cdH1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxODhlLmMtODg4LVx0cnRsOHh4eHVfcmVzdG9yZV9yZWdzKHByaXYsIGFkZGFfcmVncywgcHJpdi1cdTAwM2VhZGRhX2JhY2t1cCxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE4OGUuYzo4ODk6XHRcdFx0ICAgICAgUlRMOFhYWFVfQUREQV9SRUdTKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE4OGUuYy04OTAtXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTg4ZS5jLTg5NS1cdHJ0bDh4eHh1X3Jlc3RvcmVfcmVncyhwcml2LCBpcWtfYmJfcmVncyxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE4OGUuYzo4OTY6XHRcdFx0ICAgICAgcHJpdi1cdTAwM2ViYl9iYWNrdXAsIFJUTDhYWFhVX0JCX1JFR1MpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTg4ZS5jLTg5Ny1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxODhlLmM9OTA2PXN0YXRpYyB2b2lkIHJ0bDgxODhldV9waHlfaXFfY2FsaWJyYXRlKHN0cnVjdCBydGw4eHh4dV9wcml2ICpwcml2KVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE4OGUuYy05ODktXHRydGw4eHh4dV9zYXZlX3JlZ3MocHJpdiwgcnRsOHh4eHVfaXFrX3BoeV9pcV9iYl9yZWcsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxODhlLmM6OTkwOlx0XHRcdCAgIHByaXYtXHUwMDNlYmJfcmVjb3ZlcnlfYmFja3VwLCBSVEw4WFhYVV9CQl9SRUdTKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE4OGUuYy05OTEtfVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE4OGUuYz0xMDAyPXN0YXRpYyBpbnQgcnRsODE4OGVfZW11X3RvX2FjdGl2ZShzdHJ1Y3QgcnRsOHh4eHVfcHJpdiAqcHJpdilcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxODhlLmMtMTAwOS1cdC8qIHdhaXQgdGlsbCAweDA0WzE3XSA9IDEgcG93ZXIgcmVhZHkqL1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTg4ZS5jOjEwMTA6XHRmb3IgKGNvdW50ID0gUlRMOFhYWFVfTUFYX1JFR19QT0xMOyBjb3VudDsgY291bnQtLSkge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTg4ZS5jLTEwMTEtXHRcdHZhbDMyID0gcnRsOHh4eHVfcmVhZDMyKHByaXYsIFJFR19BUFNfRlNNQ08pO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE4OGUuYy0xMDQ3LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTg4ZS5jOjEwNDg6XHRmb3IgKGNvdW50ID0gUlRMOFhYWFVfTUFYX1JFR19QT0xMOyBjb3VudDsgY291bnQtLSkge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTg4ZS5jLTEwNDktXHRcdHZhbDMyID0gcnRsOHh4eHVfcmVhZDMyKHByaXYsIFJFR19BUFNfRlNNQ08pO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE4OGUuYz0xMzM0PXN0YXRpYyBpbnQgcnRsODE4OGV1X2xlZF9icmlnaHRuZXNzX3NldChzdHJ1Y3QgbGVkX2NsYXNzZGV2ICpsZWRfY2Rldixcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxODhlLmMtMTM0Ny1cdFx0bGVkY2ZnIHw9IExFRENGRzJfU1dfTEVEX0NPTlRST0w7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxODhlLmM6MTM0ODpcdH0gZWxzZSBpZiAoYnJpZ2h0bmVzcyA9PSBSVEw4WFhYVV9IV19MRURfQ09OVFJPTCkge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTg4ZS5jLTEzNDktXHRcdGxlZGNmZyBcdTAwMjY9IH5MRURDRkcyX1NXX0xFRF9ESVNBQkxFO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE4OGYuYy0yLS8qXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxODhmLmM6MzogKiBSVEw4WFhYVSBtYWM4MDIxMSBVU0IgZHJpdmVyIC0gODE4OGYgc3BlY2lmaWMgc3ViZHJpdmVyXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxODhmLmMtNC0gKlxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE4OGYuYz0xMDYxPXN0YXRpYyB2b2lkIHJ0bDgxODhmdV9waHlfaXFjYWxpYnJhdGUoc3RydWN0IHJ0bDh4eHh1X3ByaXYgKnByaXYsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTg4Zi5jLTEwNjgtXHRpbnQgcmV0cnkgPSAyO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTg4Zi5jOjEwNjk6XHRzdGF0aWMgY29uc3QgdTMyIGFkZGFfcmVnc1tSVEw4WFhYVV9BRERBX1JFR1NdID0ge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTg4Zi5jLTEwNzAtXHRcdFJFR19GUEdBMF9YQ0RfU1dJVENIX0NUUkwsIFJFR19CTFVFVE9PVEgsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTg4Zi5jLTEwNzgtXHR9O1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTg4Zi5jOjEwNzk6XHRzdGF0aWMgY29uc3QgdTMyIGlxa19tYWNfcmVnc1tSVEw4WFhYVV9NQUNfUkVHU10gPSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxODhmLmMtMTA4MC1cdFx0UkVHX1RYUEFVU0UsIFJFR19CRUFDT05fQ1RSTCxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxODhmLmMtMTA4Mi1cdH07XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxODhmLmM6MTA4MzpcdHN0YXRpYyBjb25zdCB1MzIgaXFrX2JiX3JlZ3NbUlRMOFhYWFVfQkJfUkVHU10gPSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxODhmLmMtMTA4NC1cdFx0UkVHX09GRE0wX1RSWF9QQVRIX0VOQUJMRSwgUkVHX09GRE0wX1RSX01VWF9QQVIsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTg4Zi5jLTEwOTktXHRcdHJ0bDh4eHh1X3NhdmVfcmVncyhwcml2LCBhZGRhX3JlZ3MsIHByaXYtXHUwMDNlYWRkYV9iYWNrdXAsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxODhmLmM6MTEwMDpcdFx0XHRcdCAgIFJUTDhYWFhVX0FEREFfUkVHUyk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxODhmLmMtMTEwMS1cdFx0cnRsOHh4eHVfc2F2ZV9tYWNfcmVncyhwcml2LCBpcWtfbWFjX3JlZ3MsIHByaXYtXHUwMDNlbWFjX2JhY2t1cCk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxODhmLmMtMTEwMi1cdFx0cnRsOHh4eHVfc2F2ZV9yZWdzKHByaXYsIGlxa19iYl9yZWdzLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTg4Zi5jOjExMDM6XHRcdFx0XHQgICBwcml2LVx1MDAzZWJiX2JhY2t1cCwgUlRMOFhYWFVfQkJfUkVHUyk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxODhmLmMtMTEwNC1cdH1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxODhmLmMtMTE4OS1cdHJ0bDh4eHh1X3Jlc3RvcmVfcmVncyhwcml2LCBhZGRhX3JlZ3MsIHByaXYtXHUwMDNlYWRkYV9iYWNrdXAsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxODhmLmM6MTE5MDpcdFx0XHQgICAgICBSVEw4WFhYVV9BRERBX1JFR1MpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTg4Zi5jLTExOTEtXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTg4Zi5jLTExOTYtXHRydGw4eHh4dV9yZXN0b3JlX3JlZ3MocHJpdiwgaXFrX2JiX3JlZ3MsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxODhmLmM6MTE5NzpcdFx0XHQgICAgICBwcml2LVx1MDAzZWJiX2JhY2t1cCwgUlRMOFhYWFVfQkJfUkVHUyk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxODhmLmMtMTE5OC1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxODhmLmM9MTIxOD1zdGF0aWMgdm9pZCBydGw4MTg4ZnVfcGh5X2lxX2NhbGlicmF0ZShzdHJ1Y3QgcnRsOHh4eHVfcHJpdiAqcHJpdilcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxODhmLmMtMTMxMS1cdHJ0bDh4eHh1X3NhdmVfcmVncyhwcml2LCBydGw4eHh4dV9pcWtfcGh5X2lxX2JiX3JlZyxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE4OGYuYzoxMzEyOlx0XHRcdCAgIHByaXYtXHUwMDNlYmJfcmVjb3ZlcnlfYmFja3VwLCBSVEw4WFhYVV9CQl9SRUdTKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE4OGYuYy0xMzEzLVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE4OGYuYz0xMzMzPXN0YXRpYyBpbnQgcnRsODE4OGZfZW11X3RvX2FjdGl2ZShzdHJ1Y3QgcnRsOHh4eHVfcHJpdiAqcHJpdilcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxODhmLmMtMTM0NC1cdC8qIHdhaXQgdGlsbCAweDA0WzE3XSA9IDEgcG93ZXIgcmVhZHkgKi9cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE4OGYuYzoxMzQ1Olx0Zm9yIChjb3VudCA9IFJUTDhYWFhVX01BWF9SRUdfUE9MTDsgY291bnQ7IGNvdW50LS0pIHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE4OGYuYy0xMzQ2LVx0XHR2YWwzMiA9IHJ0bDh4eHh1X3JlYWQzMihwcml2LCBSRUdfQVBTX0ZTTUNPKTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxODhmLmMtMTM3Mi1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE4OGYuYzoxMzczOlx0Zm9yIChjb3VudCA9IFJUTDhYWFhVX01BWF9SRUdfUE9MTDsgY291bnQ7IGNvdW50LS0pIHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE4OGYuYy0xMzc0LVx0XHR2YWwzMiA9IHJ0bDh4eHh1X3JlYWQzMihwcml2LCBSRUdfQVBTX0ZTTUNPKTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxODhmLmM9MTM5Mz1zdGF0aWMgaW50IHJ0bDgxODhmdV9hY3RpdmVfdG9fZW11KHN0cnVjdCBydGw4eHh4dV9wcml2ICpwcml2KVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE4OGYuYy0xNDE0LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTg4Zi5jOjE0MTU6XHRmb3IgKGNvdW50ID0gUlRMOFhYWFVfTUFYX1JFR19QT0xMOyBjb3VudDsgY291bnQtLSkge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTg4Zi5jLTE0MTYtXHRcdHZhbDMyID0gcnRsOHh4eHVfcmVhZDMyKHByaXYsIFJFR19BUFNfRlNNQ08pO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE5MmMuYy0yLS8qXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxOTJjLmM6MzogKiBSVEw4WFhYVSBtYWM4MDIxMSBVU0IgZHJpdmVyIC0gODE4OGMvODE4OHIvODE5MmMgc3BlY2lmaWMgc3ViZHJpdmVyXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxOTJjLmMtNC0gKlxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE5MmMuYy0xOC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE5MmMuYzoxOTojaWZkZWYgQ09ORklHX1JUTDhYWFhVX1VOVEVTVEVEXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxOTJjLmMtMjAtc3RhdGljIHN0cnVjdCBydGw4eHh4dV9wb3dlcl9iYXNlIHJ0bDgxOTJjX3Bvd2VyX2Jhc2UgPSB7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTkyYy5jPTY3ND1zdGF0aWMgaW50IHJ0bDgxOTJjdV9sZWRfYnJpZ2h0bmVzc19zZXQoc3RydWN0IGxlZF9jbGFzc2RldiAqbGVkX2NkZXYsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTkyYy5jLTY4NS1cdFx0bGVkY2ZnID0gTEVEQ0ZHMl9TV19MRURfQ09OVFJPTDtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE5MmMuYzo2ODY6XHRlbHNlIGlmIChicmlnaHRuZXNzID09IFJUTDhYWFhVX0hXX0xFRF9DT05UUk9MKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTkyYy5jLTY4Ny1cdFx0bGVkY2ZnID0gTEVEQ0ZHMl9IV19MRURfQ09OVFJPTCB8IExFRENGRzJfSFdfTEVEX0VOQUJMRTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxOTJlLmMtMi0vKlxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTkyZS5jOjM6ICogUlRMOFhYWFUgbWFjODAyMTEgVVNCIGRyaXZlciAtIDgxOTJlIHNwZWNpZmljIHN1YmRyaXZlclxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTkyZS5jLTQtICpcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxOTJlLmM9MTA1MD1zdGF0aWMgdm9pZCBydGw4MTkyZXVfcGh5X2lxY2FsaWJyYXRlKHN0cnVjdCBydGw4eHh4dV9wcml2ICpwcml2LFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE5MmUuYy0xMDU2LVx0aW50IHJldHJ5ID0gMjtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE5MmUuYzoxMDU3Olx0c3RhdGljIGNvbnN0IHUzMiBhZGRhX3JlZ3NbUlRMOFhYWFVfQUREQV9SRUdTXSA9IHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE5MmUuYy0xMDU4LVx0XHRSRUdfRlBHQTBfWENEX1NXSVRDSF9DVFJMLCBSRUdfQkxVRVRPT1RILFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE5MmUuYy0xMDY2LVx0fTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE5MmUuYzoxMDY3Olx0c3RhdGljIGNvbnN0IHUzMiBpcWtfbWFjX3JlZ3NbUlRMOFhYWFVfTUFDX1JFR1NdID0ge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTkyZS5jLTEwNjgtXHRcdFJFR19UWFBBVVNFLCBSRUdfQkVBQ09OX0NUUkwsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTkyZS5jLTEwNzAtXHR9O1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTkyZS5jOjEwNzE6XHRzdGF0aWMgY29uc3QgdTMyIGlxa19iYl9yZWdzW1JUTDhYWFhVX0JCX1JFR1NdID0ge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTkyZS5jLTEwNzItXHRcdFJFR19PRkRNMF9UUlhfUEFUSF9FTkFCTEUsIFJFR19PRkRNMF9UUl9NVVhfUEFSLFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE5MmUuYy0xMDg3LVx0XHRydGw4eHh4dV9zYXZlX3JlZ3MocHJpdiwgYWRkYV9yZWdzLCBwcml2LVx1MDAzZWFkZGFfYmFja3VwLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTkyZS5jOjEwODg6XHRcdFx0XHQgICBSVEw4WFhYVV9BRERBX1JFR1MpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTkyZS5jLTEwODktXHRcdHJ0bDh4eHh1X3NhdmVfbWFjX3JlZ3MocHJpdiwgaXFrX21hY19yZWdzLCBwcml2LVx1MDAzZW1hY19iYWNrdXApO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTkyZS5jLTEwOTAtXHRcdHJ0bDh4eHh1X3NhdmVfcmVncyhwcml2LCBpcWtfYmJfcmVncyxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE5MmUuYzoxMDkxOlx0XHRcdFx0ICAgcHJpdi1cdTAwM2ViYl9iYWNrdXAsIFJUTDhYWFhVX0JCX1JFR1MpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTkyZS5jLTEwOTItXHR9XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTkyZS5jLTEyMDUtXHRcdHJ0bDh4eHh1X3Jlc3RvcmVfcmVncyhwcml2LCBhZGRhX3JlZ3MsIHByaXYtXHUwMDNlYWRkYV9iYWNrdXAsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxOTJlLmM6MTIwNjpcdFx0XHRcdCAgICAgIFJUTDhYWFhVX0FEREFfUkVHUyk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxOTJlLmMtMTIwNy1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxOTJlLmMtMTIxMi1cdFx0cnRsOHh4eHVfcmVzdG9yZV9yZWdzKHByaXYsIGlxa19iYl9yZWdzLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTkyZS5jOjEyMTM6XHRcdFx0XHQgICAgICBwcml2LVx1MDAzZWJiX2JhY2t1cCwgUlRMOFhYWFVfQkJfUkVHUyk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxOTJlLmMtMTIxNC1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxOTJlLmM9MTIzNj1zdGF0aWMgdm9pZCBydGw4MTkyZXVfcGh5X2lxX2NhbGlicmF0ZShzdHJ1Y3QgcnRsOHh4eHVfcHJpdiAqcHJpdilcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxOTJlLmMtMTMyMy1cdHJ0bDh4eHh1X3NhdmVfcmVncyhwcml2LCBydGw4eHh4dV9pcWtfcGh5X2lxX2JiX3JlZyxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE5MmUuYzoxMzI0Olx0XHRcdCAgIHByaXYtXHUwMDNlYmJfcmVjb3ZlcnlfYmFja3VwLCBSVEw4WFhYVV9CQl9SRUdTKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE5MmUuYy0xMzI1LX1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxOTJlLmM9MTM3Mj1zdGF0aWMgaW50IHJ0bDgxOTJlX2VtdV90b19hY3RpdmUoc3RydWN0IHJ0bDh4eHh1X3ByaXYgKnByaXYpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTkyZS5jLTEzOTMtXHQvKiB3YWl0IHRpbGwgMHgwNFsxN10gPSAxIHBvd2VyIHJlYWR5Ki9cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE5MmUuYzoxMzk0Olx0Zm9yIChjb3VudCA9IFJUTDhYWFhVX01BWF9SRUdfUE9MTDsgY291bnQ7IGNvdW50LS0pIHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE5MmUuYy0xMzk1LVx0XHR2YWwzMiA9IHJ0bDh4eHh1X3JlYWQzMihwcml2LCBSRUdfQVBTX0ZTTUNPKTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxOTJlLmMtMTQxOC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE5MmUuYzoxNDE5Olx0Zm9yIChjb3VudCA9IFJUTDhYWFhVX01BWF9SRUdfUE9MTDsgY291bnQ7IGNvdW50LS0pIHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE5MmUuYy0xNDIwLVx0XHR2YWwzMiA9IHJ0bDh4eHh1X3JlYWQzMihwcml2LCBSRUdfQVBTX0ZTTUNPKTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxOTJlLmM9MTQ5Nj1zdGF0aWMgaW50IHJ0bDgxOTJldV9hY3RpdmVfdG9fZW11KHN0cnVjdCBydGw4eHh4dV9wcml2ICpwcml2KVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE5MmUuYy0xNTE1LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTkyZS5jOjE1MTY6XHRmb3IgKGNvdW50ID0gUlRMOFhYWFVfTUFYX1JFR19QT0xMOyBjb3VudDsgY291bnQtLSkge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTkyZS5jLTE1MTctXHRcdHZhbDggPSBydGw4eHh4dV9yZWFkOChwcml2LCBSRUdfQVBTX0ZTTUNPICYjNDM7IDEpO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE5MmUuYz0xNjk4PXN0YXRpYyBpbnQgcnRsODE5MmV1X2xlZF9icmlnaHRuZXNzX3NldChzdHJ1Y3QgbGVkX2NsYXNzZGV2ICpsZWRfY2Rldixcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxOTJlLmMtMTcxMC1cdFx0bGVkY2ZnIFx1MDAyNj0gfihMRURDRkcxX0hXX0xFRF9DT05UUk9MIHwgTEVEQ0ZHMV9MRURfRElTQUJMRSk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxOTJlLmM6MTcxMTpcdH0gZWxzZSBpZiAoYnJpZ2h0bmVzcyA9PSBSVEw4WFhYVV9IV19MRURfQ09OVFJPTCkge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTkyZS5jLTE3MTItXHRcdGxlZGNmZyBcdTAwMjY9IH5MRURDRkcxX0xFRF9ESVNBQkxFO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE5MmYuYy0yLS8qXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxOTJmLmM6MzogKiBSVEw4WFhYVSBtYWM4MDIxMSBVU0IgZHJpdmVyIC0gODE5MmZ1IHNwZWNpZmljIHN1YmRyaXZlclxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTkyZi5jLTQtICpcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxOTJmLmM9MTI1NT1zdGF0aWMgdm9pZCBydGw4MTkyZnVfcGh5X2lxY2FsaWJyYXRlKHN0cnVjdCBydGw4eHh4dV9wcml2ICpwcml2LFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE5MmYuYy0xMjYwLVx0fTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE5MmYuYzoxMjYxOlx0c3RhdGljIGNvbnN0IHUzMiBpcWtfbWFjX3JlZ3NbUlRMOFhYWFVfTUFDX1JFR1NdID0ge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTkyZi5jLTEyNjItXHRcdFJFR19UWFBBVVNFLCBSRUdfQkVBQ09OX0NUUkwsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTkyZi5jLTEyNjQtXHR9O1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTkyZi5jOjEyNjU6XHRzdGF0aWMgY29uc3QgdTMyIGlxa19iYl9yZWdzW1JUTDhYWFhVX0JCX1JFR1NdID0ge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTkyZi5jLTEyNjYtXHRcdFJFR19PRkRNMF9UUlhfUEFUSF9FTkFCTEUsIFJFR19PRkRNMF9UUl9NVVhfUEFSLFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE5MmYuYy0xMjkzLVx0XHRydGw4eHh4dV9zYXZlX3JlZ3MocHJpdiwgaXFrX2JiX3JlZ3MsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxOTJmLmM6MTI5NDpcdFx0XHRcdCAgIHByaXYtXHUwMDNlYmJfYmFja3VwLCBSVEw4WFhYVV9CQl9SRUdTKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE5MmYuYy0xMjk1LVx0fVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE5MmYuYy0xNDI1LVx0LyogUmVsb2FkIEJCIHBhcmFtZXRlcnMgKi9cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE5MmYuYzoxNDI2Olx0cnRsOHh4eHVfcmVzdG9yZV9yZWdzKHByaXYsIGlxa19iYl9yZWdzLCBwcml2LVx1MDAzZWJiX2JhY2t1cCwgUlRMOFhYWFVfQkJfUkVHUyk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxOTJmLmMtMTQyNy1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxOTJmLmM9MTYwMj1zdGF0aWMgaW50IHJ0bDgxOTJmdV9lbXVfdG9fYWN0aXZlKHN0cnVjdCBydGw4eHh4dV9wcml2ICpwcml2KVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE5MmYuYy0xNjIyLVx0Lyogd2FpdCB0aWxsIDB4MDRbMTddID0gMSBwb3dlciByZWFkeSAqL1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTkyZi5jOjE2MjM6XHRmb3IgKGNvdW50ID0gUlRMOFhYWFVfTUFYX1JFR19QT0xMOyBjb3VudDsgY291bnQtLSkge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTkyZi5jLTE2MjQtXHRcdHZhbDMyID0gcnRsOHh4eHVfcmVhZDMyKHByaXYsIFJFR19BUFNfRlNNQ08pO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE5MmYuYy0xNjM1LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTkyZi5jOjE2MzY6XHRmb3IgKGNvdW50ID0gUlRMOFhYWFVfTUFYX1JFR19QT0xMOyBjb3VudDsgY291bnQtLSkge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTkyZi5jLTE2MzctXHRcdHZhbDMyID0gcnRsOHh4eHVfcmVhZDMyKHByaXYsIFJFR19BUFNfRlNNQ08pO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE5MmYuYy0xNjU5LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTkyZi5jOjE2NjA6XHRmb3IgKGNvdW50ID0gUlRMOFhYWFVfTUFYX1JFR19QT0xMOyBjb3VudDsgY291bnQtLSkge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTkyZi5jLTE2NjEtXHRcdHZhbDMyID0gcnRsOHh4eHVfcmVhZDMyKHByaXYsIFJFR19BUFNfRlNNQ08pO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE5MmYuYz0xNzI4PXN0YXRpYyBpbnQgcnRsODE5MmZ1X2FjdGl2ZV90b19lbXUoc3RydWN0IHJ0bDh4eHh1X3ByaXYgKnByaXYpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTkyZi5jLTE3NDQtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxOTJmLmM6MTc0NTpcdGZvciAoY291bnQgPSBSVEw4WFhYVV9NQVhfUkVHX1BPTEw7IGNvdW50OyBjb3VudC0tKSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxOTJmLmMtMTc0Ni1cdFx0dmFsMzIgPSBydGw4eHh4dV9yZWFkMzIocHJpdiwgUkVHX0FQU19GU01DTyk7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTkyZi5jPTE5OTU9c3RhdGljIGludCBydGw4MTkyZnVfbGVkX2JyaWdodG5lc3Nfc2V0KHN0cnVjdCBsZWRfY2xhc3NkZXYgKmxlZF9jZGV2LFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE5MmYuYy0yMDI0LVx0XHR1MzJwX3JlcGxhY2VfYml0cyhcdTAwMjZsZWRjZmcsIExFRF9TV19PTiwgTEVEQ0ZHMF9MRUQxU1YpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTkyZi5jOjIwMjU6XHR9IGVsc2UgaWYgKGJyaWdodG5lc3MgPT0gUlRMOFhYWFVfSFdfTEVEX0NPTlRST0wpIHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE5MmYuYy0yMDI2LVx0XHR1MzJwX3JlcGxhY2VfYml0cyhcdTAwMjZsZWRjZmcsIExFRF9NT0RFX1RYX09SX1JYX0VWRU5UUyxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1Lzg3MTBiLmMtMi0vKlxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84NzEwYi5jOjM6ICogUlRMOFhYWFUgbWFjODAyMTEgVVNCIGRyaXZlciAtIDg3MTBidSBha2EgODE4OGd1IHNwZWNpZmljIHN1YmRyaXZlclxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84NzEwYi5jLTQtICpcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1Lzg3MTBiLmM9NDYzPXN0YXRpYyB1MzIgcnRsODcxMGJfaW5kaXJlY3RfcmVhZDMyKHN0cnVjdCBydGw4eHh4dV9wcml2ICpwcml2LCB1MzIgYWRkcilcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1Lzg3MTBiLmMtNDkxLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84NzEwYi5jOjQ5MjpcdGlmIChydGw4eHh4dV9kZWJ1ZyBcdTAwMjYgUlRMOFhYWFVfREVCVUdfUkVHX1JFQUQpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1Lzg3MTBiLmMtNDkzLVx0XHRkZXZfaW5mbyhkZXYsIFwmIzM0OyVzKCUwNHgpID0gMHglMDh4XFxuXCYjMzQ7LCBfX2Z1bmNfXywgYWRkciwgdmFsdWUpO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODcxMGIuYz00OTg9c3RhdGljIHZvaWQgcnRsODcxMGJfaW5kaXJlY3Rfd3JpdGUzMihzdHJ1Y3QgcnRsOHh4eHVfcHJpdiAqcHJpdiwgdTMyIGFkZHIsIHUzMiB2YWwpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84NzEwYi5jLTUyNS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODcxMGIuYzo1MjY6XHRpZiAocnRsOHh4eHVfZGVidWcgXHUwMDI2IFJUTDhYWFhVX0RFQlVHX1JFR19XUklURSlcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODcxMGIuYy01MjctXHRcdGRldl9pbmZvKGRldiwgXCYjMzQ7JXMoJTA0eCkgPSAweCUwOHhcXG5cJiMzNDssIF9fZnVuY19fLCBhZGRyLCB2YWwpO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODcxMGIuYz01NDA9c3RhdGljIGludCBydGw4NzEwYl9yZWFkX2VmdXNlOChzdHJ1Y3QgcnRsOHh4eHVfcHJpdiAqcHJpdiwgdTE2IG9mZnNldCwgdTggKmRhdGEpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84NzEwYi5jLTU1MS1cdHZhbDMyID0gcnRsOHh4eHVfcmVhZDMyKHByaXYsIFJFR19FRlVTRV9JTkRJUkVDVF9DVFJMXzg3MTBCKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODcxMGIuYzo1NTI6XHRmb3IgKGkgPSAwOyBpIFx1MDAzYyBSVEw4WFhYVV9NQVhfUkVHX1BPTEw7IGkmIzQzOyYjNDM7KSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1Lzg3MTBiLmMtNTUzLVx0XHR2YWwzMiA9IHJ0bDh4eHh1X3JlYWQzMihwcml2LCBSRUdfRUZVU0VfSU5ESVJFQ1RfQ1RSTF84NzEwQik7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84NzEwYi5jLTU1Ny1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODcxMGIuYzo1NTg6XHRpZiAoaSA9PSBSVEw4WFhYVV9NQVhfUkVHX1BPTEwpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1Lzg3MTBiLmMtNTU5LVx0XHRyZXR1cm4gLUVJTztcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1Lzg3MTBiLmM9MTI1ND1zdGF0aWMgdm9pZCBydGw4NzEwYnVfcGh5X2lxY2FsaWJyYXRlKHN0cnVjdCBydGw4eHh4dV9wcml2ICpwcml2LFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODcxMGIuYy0xMjYxLVx0aW50IHJldHJ5ID0gMjtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODcxMGIuYzoxMjYyOlx0c3RhdGljIGNvbnN0IHUzMiBhZGRhX3JlZ3NbUlRMOFhYWFVfQUREQV9SRUdTXSA9IHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODcxMGIuYy0xMjYzLVx0XHRSRUdfRlBHQTBfWENEX1NXSVRDSF9DVFJMLCBSRUdfQkxVRVRPT1RILFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODcxMGIuYy0xMjcxLVx0fTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODcxMGIuYzoxMjcyOlx0c3RhdGljIGNvbnN0IHUzMiBpcWtfbWFjX3JlZ3NbUlRMOFhYWFVfTUFDX1JFR1NdID0ge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84NzEwYi5jLTEyNzMtXHRcdFJFR19UWFBBVVNFLCBSRUdfQkVBQ09OX0NUUkwsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84NzEwYi5jLTEyNzUtXHR9O1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84NzEwYi5jOjEyNzY6XHRzdGF0aWMgY29uc3QgdTMyIGlxa19iYl9yZWdzW1JUTDhYWFhVX0JCX1JFR1NdID0ge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84NzEwYi5jLTEyNzctXHRcdFJFR19PRkRNMF9UUlhfUEFUSF9FTkFCTEUsIFJFR19PRkRNMF9UUl9NVVhfUEFSLFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODcxMGIuYy0xMjkyLVx0XHRydGw4eHh4dV9zYXZlX3JlZ3MocHJpdiwgYWRkYV9yZWdzLCBwcml2LVx1MDAzZWFkZGFfYmFja3VwLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84NzEwYi5jOjEyOTM6XHRcdFx0XHQgICBSVEw4WFhYVV9BRERBX1JFR1MpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84NzEwYi5jLTEyOTQtXHRcdHJ0bDh4eHh1X3NhdmVfbWFjX3JlZ3MocHJpdiwgaXFrX21hY19yZWdzLCBwcml2LVx1MDAzZW1hY19iYWNrdXApO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84NzEwYi5jLTEyOTUtXHRcdHJ0bDh4eHh1X3NhdmVfcmVncyhwcml2LCBpcWtfYmJfcmVncyxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODcxMGIuYzoxMjk2Olx0XHRcdFx0ICAgcHJpdi1cdTAwM2ViYl9iYWNrdXAsIFJUTDhYWFhVX0JCX1JFR1MpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84NzEwYi5jLTEyOTctXHR9XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84NzEwYi5jLTEzODAtXHQvKiBSZWxvYWQgQUREQSBwb3dlciBzYXZpbmcgcGFyYW1ldGVycyAqL1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84NzEwYi5jOjEzODE6XHRydGw4eHh4dV9yZXN0b3JlX3JlZ3MocHJpdiwgYWRkYV9yZWdzLCBwcml2LVx1MDAzZWFkZGFfYmFja3VwLCBSVEw4WFhYVV9BRERBX1JFR1MpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84NzEwYi5jLTEzODItXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84NzEwYi5jLTEzODYtXHQvKiBSZWxvYWQgQkIgcGFyYW1ldGVycyAqL1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84NzEwYi5jOjEzODc6XHRydGw4eHh4dV9yZXN0b3JlX3JlZ3MocHJpdiwgaXFrX2JiX3JlZ3MsIHByaXYtXHUwMDNlYmJfYmFja3VwLCBSVEw4WFhYVV9CQl9SRUdTKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODcxMGIuYy0xMzg4LVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODcxMGIuYz0xNDA2PXN0YXRpYyB2b2lkIHJ0bDg3MTBidV9waHlfaXFfY2FsaWJyYXRlKHN0cnVjdCBydGw4eHh4dV9wcml2ICpwcml2KVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODcxMGIuYy0xNDc1LVx0cnRsOHh4eHVfc2F2ZV9yZWdzKHByaXYsIHJ0bDh4eHh1X2lxa19waHlfaXFfYmJfcmVnLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84NzEwYi5jOjE0NzY6XHRcdFx0ICAgcHJpdi1cdTAwM2ViYl9yZWNvdmVyeV9iYWNrdXAsIFJUTDhYWFhVX0JCX1JFR1MpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84NzEwYi5jLTE0NzctXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84NzEwYi5jPTE0ODE9c3RhdGljIGludCBydGw4NzEwYl9lbXVfdG9fYWN0aXZlKHN0cnVjdCBydGw4eHh4dV9wcml2ICpwcml2KVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODcxMGIuYy0xNTAwLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84NzEwYi5jOjE1MDE6XHRmb3IgKGNvdW50ID0gUlRMOFhYWFVfTUFYX1JFR19QT0xMOyBjb3VudDsgY291bnQtLSkge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84NzEwYi5jLTE1MDItXHRcdHZhbDggPSBydGw4eHh4dV9yZWFkOChwcml2LCAweDIwKTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1Lzg3MTBiLmM9MTUxNT1zdGF0aWMgaW50IHJ0bDg3MTBidV9hY3RpdmVfdG9fZW11KHN0cnVjdCBydGw4eHh4dV9wcml2ICpwcml2KVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODcxMGIuYy0xNTM1LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84NzEwYi5jOjE1MzY6XHRmb3IgKGNvdW50ID0gUlRMOFhYWFVfTUFYX1JFR19QT0xMOyBjb3VudDsgY291bnQtLSkge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84NzEwYi5jLTE1MzctXHRcdHZhbDggPSBydGw4eHh4dV9yZWFkOChwcml2LCAweDIwKTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1Lzg3MjNhLmMtMi0vKlxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84NzIzYS5jOjM6ICogUlRMOFhYWFUgbWFjODAyMTEgVVNCIGRyaXZlciAtIDg3MjNhIHNwZWNpZmljIHN1YmRyaXZlclxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84NzIzYS5jLTQtICpcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1Lzg3MjNhLmM9Mjc2PXN0YXRpYyBpbnQgcnRsODcyM2FfZW11X3RvX2FjdGl2ZShzdHJ1Y3QgcnRsOHh4eHVfcHJpdiAqcHJpdilcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1Lzg3MjNhLmMtMzA0LVx0Lyogd2FpdCB0aWxsIDB4MDRbMTddID0gMSBwb3dlciByZWFkeSovXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1Lzg3MjNhLmM6MzA1Olx0Zm9yIChjb3VudCA9IFJUTDhYWFhVX01BWF9SRUdfUE9MTDsgY291bnQ7IGNvdW50LS0pIHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODcyM2EuYy0zMDYtXHRcdHZhbDMyID0gcnRsOHh4eHVfcmVhZDMyKHByaXYsIFJFR19BUFNfRlNNQ08pO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODcyM2EuYy0zMzktXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1Lzg3MjNhLmM6MzQwOlx0Zm9yIChjb3VudCA9IFJUTDhYWFhVX01BWF9SRUdfUE9MTDsgY291bnQ7IGNvdW50LS0pIHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODcyM2EuYy0zNDEtXHRcdHZhbDMyID0gcnRsOHh4eHVfcmVhZDMyKHByaXYsIFJFR19BUFNfRlNNQ08pO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODcyM2EuYz00MTQ9c3RhdGljIGludCBydGw4NzIzYXVfYWN0aXZlX3RvX2VtdShzdHJ1Y3QgcnRsOHh4eHVfcHJpdiAqcHJpdilcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1Lzg3MjNhLmMtNDMzLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84NzIzYS5jOjQzNDpcdGZvciAoY291bnQgPSBSVEw4WFhYVV9NQVhfUkVHX1BPTEw7IGNvdW50OyBjb3VudC0tKSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1Lzg3MjNhLmMtNDM1LVx0XHR2YWw4ID0gcnRsOHh4eHVfcmVhZDgocHJpdiwgUkVHX0FQU19GU01DTyAmIzQzOyAxKTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1Lzg3MjNhLmM9NTc5PXN0YXRpYyBpbnQgcnRsODcyM2F1X2xlZF9icmlnaHRuZXNzX3NldChzdHJ1Y3QgbGVkX2NsYXNzZGV2ICpsZWRfY2Rldixcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1Lzg3MjNhLmMtNTkyLVx0XHRsZWRjZmcgfD0gTEVEQ0ZHMl9TV19MRURfQ09OVFJPTDtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODcyM2EuYzo1OTM6XHR9IGVsc2UgaWYgKGJyaWdodG5lc3MgPT0gUlRMOFhYWFVfSFdfTEVEX0NPTlRST0wpIHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODcyM2EuYy01OTQtXHRcdGxlZGNmZyBcdTAwMjY9IH5MRURDRkcyX1NXX0xFRF9ESVNBQkxFO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODcyM2IuYy0yLS8qXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1Lzg3MjNiLmM6MzogKiBSVEw4WFhYVSBtYWM4MDIxMSBVU0IgZHJpdmVyIC0gODcyM2Igc3BlY2lmaWMgc3ViZHJpdmVyXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1Lzg3MjNiLmMtNC0gKlxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODcyM2IuYz04OTQ9c3RhdGljIHZvaWQgcnRsODcyM2J1X3BoeV9pcWNhbGlicmF0ZShzdHJ1Y3QgcnRsOHh4eHVfcHJpdiAqcHJpdixcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1Lzg3MjNiLmMtOTAwLVx0aW50IHJldHJ5ID0gMjtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODcyM2IuYzo5MDE6XHRzdGF0aWMgY29uc3QgdTMyIGFkZGFfcmVnc1tSVEw4WFhYVV9BRERBX1JFR1NdID0ge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84NzIzYi5jLTkwMi1cdFx0UkVHX0ZQR0EwX1hDRF9TV0lUQ0hfQ1RSTCwgUkVHX0JMVUVUT09USCxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1Lzg3MjNiLmMtOTEwLVx0fTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODcyM2IuYzo5MTE6XHRzdGF0aWMgY29uc3QgdTMyIGlxa19tYWNfcmVnc1tSVEw4WFhYVV9NQUNfUkVHU10gPSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1Lzg3MjNiLmMtOTEyLVx0XHRSRUdfVFhQQVVTRSwgUkVHX0JFQUNPTl9DVFJMLFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODcyM2IuYy05MTQtXHR9O1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84NzIzYi5jOjkxNTpcdHN0YXRpYyBjb25zdCB1MzIgaXFrX2JiX3JlZ3NbUlRMOFhYWFVfQkJfUkVHU10gPSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1Lzg3MjNiLmMtOTE2LVx0XHRSRUdfT0ZETTBfVFJYX1BBVEhfRU5BQkxFLCBSRUdfT0ZETTBfVFJfTVVYX1BBUixcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1Lzg3MjNiLmMtOTMxLVx0XHRydGw4eHh4dV9zYXZlX3JlZ3MocHJpdiwgYWRkYV9yZWdzLCBwcml2LVx1MDAzZWFkZGFfYmFja3VwLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84NzIzYi5jOjkzMjpcdFx0XHRcdCAgIFJUTDhYWFhVX0FEREFfUkVHUyk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1Lzg3MjNiLmMtOTMzLVx0XHRydGw4eHh4dV9zYXZlX21hY19yZWdzKHByaXYsIGlxa19tYWNfcmVncywgcHJpdi1cdTAwM2VtYWNfYmFja3VwKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODcyM2IuYy05MzQtXHRcdHJ0bDh4eHh1X3NhdmVfcmVncyhwcml2LCBpcWtfYmJfcmVncyxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODcyM2IuYzo5MzU6XHRcdFx0XHQgICBwcml2LVx1MDAzZWJiX2JhY2t1cCwgUlRMOFhYWFVfQkJfUkVHUyk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1Lzg3MjNiLmMtOTM2LVx0fVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODcyM2IuYy0xMDcxLVx0XHRydGw4eHh4dV9yZXN0b3JlX3JlZ3MocHJpdiwgYWRkYV9yZWdzLCBwcml2LVx1MDAzZWFkZGFfYmFja3VwLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84NzIzYi5jOjEwNzI6XHRcdFx0XHQgICAgICBSVEw4WFhYVV9BRERBX1JFR1MpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84NzIzYi5jLTEwNzMtXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84NzIzYi5jLTEwNzgtXHRcdHJ0bDh4eHh1X3Jlc3RvcmVfcmVncyhwcml2LCBpcWtfYmJfcmVncyxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODcyM2IuYzoxMDc5Olx0XHRcdFx0ICAgICAgcHJpdi1cdTAwM2ViYl9iYWNrdXAsIFJUTDhYWFhVX0JCX1JFR1MpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84NzIzYi5jLTEwODAtXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84NzIzYi5jPTExMDI9c3RhdGljIHZvaWQgcnRsODcyM2J1X3BoeV9pcV9jYWxpYnJhdGUoc3RydWN0IHJ0bDh4eHh1X3ByaXYgKnByaXYpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84NzIzYi5jLTEyMDQtXHRydGw4eHh4dV9zYXZlX3JlZ3MocHJpdiwgcnRsOHh4eHVfaXFrX3BoeV9pcV9iYl9yZWcsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1Lzg3MjNiLmM6MTIwNTpcdFx0XHQgICBwcml2LVx1MDAzZWJiX3JlY292ZXJ5X2JhY2t1cCwgUlRMOFhYWFVfQkJfUkVHUyk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1Lzg3MjNiLmMtMTIwNi1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1Lzg3MjNiLmM9MTIyNj1zdGF0aWMgaW50IHJ0bDg3MjNidV9hY3RpdmVfdG9fZW11KHN0cnVjdCBydGw4eHh4dV9wcml2ICpwcml2KVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODcyM2IuYy0xMjUwLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84NzIzYi5jOjEyNTE6XHRmb3IgKGNvdW50ID0gUlRMOFhYWFVfTUFYX1JFR19QT0xMOyBjb3VudDsgY291bnQtLSkge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84NzIzYi5jLTEyNTItXHRcdHZhbDggPSBydGw4eHh4dV9yZWFkOChwcml2LCBSRUdfQVBTX0ZTTUNPICYjNDM7IDEpO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODcyM2IuYz0xMjg0PXN0YXRpYyBpbnQgcnRsODcyM2JfZW11X3RvX2FjdGl2ZShzdHJ1Y3QgcnRsOHh4eHVfcHJpdiAqcHJpdilcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1Lzg3MjNiLmMtMTMxMi1cdC8qIFdhaXQgdW50aWwgMHgwNFsxN10gPSAxIHBvd2VyIHJlYWR5ICovXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1Lzg3MjNiLmM6MTMxMzpcdGZvciAoY291bnQgPSBSVEw4WFhYVV9NQVhfUkVHX1BPTEw7IGNvdW50OyBjb3VudC0tKSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1Lzg3MjNiLmMtMTMxNC1cdFx0dmFsMzIgPSBydGw4eHh4dV9yZWFkMzIocHJpdiwgUkVHX0FQU19GU01DTyk7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84NzIzYi5jLTEzNDctXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1Lzg3MjNiLmM6MTM0ODpcdGZvciAoY291bnQgPSBSVEw4WFhYVV9NQVhfUkVHX1BPTEw7IGNvdW50OyBjb3VudC0tKSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1Lzg3MjNiLmMtMTM0OS1cdFx0dmFsMzIgPSBydGw4eHh4dV9yZWFkMzIocHJpdiwgUkVHX0FQU19GU01DTyk7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84NzIzYi5jPTE2ODg9c3RhdGljIGludCBydGw4NzIzYnVfbGVkX2JyaWdodG5lc3Nfc2V0KHN0cnVjdCBsZWRfY2xhc3NkZXYgKmxlZF9jZGV2LFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODcyM2IuYy0xNzAxLVx0XHRsZWRjZmcgfD0gTEVEQ0ZHMl9TV19MRURfQ09OVFJPTDtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODcyM2IuYzoxNzAyOlx0ZWxzZSBpZiAoYnJpZ2h0bmVzcyA9PSBSVEw4WFhYVV9IV19MRURfQ09OVFJPTClcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODcyM2IuYy0xNzAzLVx0XHRsZWRjZmcgfD0gTEVEQ0ZHMl9IV19MRURfQ09OVFJPTCB8IExFRENGRzJfSFdfTEVEX0VOQUJMRTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1L0tjb25maWctMi0jXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1L0tjb25maWc6MzojIFJUTDhYWFhVIFdpcmVsZXNzIExBTiBkZXZpY2UgY29uZmlndXJhdGlvblxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS9LY29uZmlnLTQtI1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS9LY29uZmlnOjU6Y29uZmlnIFJUTDhYWFhVXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1L0tjb25maWctNi1cdHRyaXN0YXRlIFwmIzM0O1JlYWx0ZWsgODAyLjExbiBVU0Igd2lyZWxlc3MgY2hpcHMgc3VwcG9ydFwmIzM0O1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvS2NvbmZpZy0yOC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvS2NvbmZpZzoyOTpjb25maWcgUlRMOFhYWFVfVU5URVNURURcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvS2NvbmZpZy0zMC1cdGJvb2wgXCYjMzQ7SW5jbHVkZSBzdXBwb3J0IGZvciB1bnRlc3RlZCBSZWFsdGVrIDh4eHggVVNCIGRldmljZXMgKEVYUEVSSU1FTlRBTClcJiMzNDtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvS2NvbmZpZzozMTpcdGRlcGVuZHMgb24gUlRMOFhYWFVcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvS2NvbmZpZy0zMi1cdGhlbHBcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1L01ha2VmaWxlLTEtIyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMC1vbmx5XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1L01ha2VmaWxlOjI6b2JqLSQoQ09ORklHX1JUTDhYWFhVKVx0JiM0Mzs9IHJ0bDh4eHh1Lm9cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvTWFrZWZpbGUtMy1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1L2NvcmUuYy0yLS8qXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1L2NvcmUuYzozOiAqIFJUTDhYWFhVIG1hYzgwMjExIFVTQiBkcml2ZXJcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvY29yZS5jLTQtICpcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1L2NvcmUuYz01Mj1NT0RVTEVfUEFSTV9ERVNDKGRtYV9hZ2dfcGFnZXMsIFwmIzM0O1NldCBETUEgYWdncmVnYXRpb24gcGFnZXMgKHJhbmdlIDEtMTI3LCAwIHRvIGRpc2FibGUpXCYjMzQ7KTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1L2NvcmUuYy01NC0jZGVmaW5lIFVTQl9WRU5ET1JfSURfUkVBTFRFS1x0XHQweDBiZGFcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvY29yZS5jOjU1OiNkZWZpbmUgUlRMOFhYWFVfUlhfVVJCU1x0XHQzMlxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS9jb3JlLmM6NTY6I2RlZmluZSBSVEw4WFhYVV9SWF9VUkJfUEVORElOR19XQVRFUlx0OFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS9jb3JlLmM6NTc6I2RlZmluZSBSVEw4WFhYVV9UWF9VUkJTXHRcdDY0XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1L2NvcmUuYzo1ODojZGVmaW5lIFJUTDhYWFhVX1RYX1VSQl9MT1dfV0FURVJcdDI1XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1L2NvcmUuYzo1OTojZGVmaW5lIFJUTDhYWFhVX1RYX1VSQl9ISUdIX1dBVEVSXHQzMlxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS9jb3JlLmMtNjAtXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS9jb3JlLmM9NTgwPXN0YXRpYyBjb25zdCBzdHJ1Y3QgcnRsOHh4eHVfcmZyZWdzIHJ0bDh4eHh1X3JmcmVnc1tdID0ge1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvY29yZS5jLTU5OC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvY29yZS5jOjU5OTpjb25zdCB1MzIgcnRsOHh4eHVfaXFrX3BoeV9pcV9iYl9yZWdbUlRMOFhYWFVfQkJfUkVHU10gPSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1L2NvcmUuYy02MDAtXHRSRUdfT0ZETTBfWEFfUlhfSVFfSU1CQUxBTkNFLFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvY29yZS5jPTYxMT11OCBydGw4eHh4dV9yZWFkOChzdHJ1Y3QgcnRsOHh4eHVfcHJpdiAqcHJpdiwgdTE2IGFkZHIpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS9jb3JlLmMtNjI3LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS9jb3JlLmM6NjI4Olx0aWYgKHJ0bDh4eHh1X2RlYnVnIFx1MDAyNiBSVEw4WFhYVV9ERUJVR19SRUdfUkVBRClcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvY29yZS5jLTYyOS1cdFx0ZGV2X2luZm8oXHUwMDI2dWRldi1cdTAwM2VkZXYsIFwmIzM0OyVzKCUwNHgpICAgPSAweCUwMngsIGxlbiAlaVxcblwmIzM0Oyxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1L2NvcmUuYz02MzQ9dTE2IHJ0bDh4eHh1X3JlYWQxNihzdHJ1Y3QgcnRsOHh4eHVfcHJpdiAqcHJpdiwgdTE2IGFkZHIpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS9jb3JlLmMtNjUwLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS9jb3JlLmM6NjUxOlx0aWYgKHJ0bDh4eHh1X2RlYnVnIFx1MDAyNiBSVEw4WFhYVV9ERUJVR19SRUdfUkVBRClcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvY29yZS5jLTY1Mi1cdFx0ZGV2X2luZm8oXHUwMDI2dWRldi1cdTAwM2VkZXYsIFwmIzM0OyVzKCUwNHgpICA9IDB4JTA0eCwgbGVuICVpXFxuXCYjMzQ7LFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvY29yZS5jPTY1Nz11MzIgcnRsOHh4eHVfcmVhZDMyKHN0cnVjdCBydGw4eHh4dV9wcml2ICpwcml2LCB1MTYgYWRkcilcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1L2NvcmUuYy02NzMtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1L2NvcmUuYzo2NzQ6XHRpZiAocnRsOHh4eHVfZGVidWcgXHUwMDI2IFJUTDhYWFhVX0RFQlVHX1JFR19SRUFEKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS9jb3JlLmMtNjc1LVx0XHRkZXZfaW5mbyhcdTAwMjZ1ZGV2LVx1MDAzZWRldiwgXCYjMzQ7JXMoJTA0eCkgID0gMHglMDh4LCBsZW4gJWlcXG5cJiMzNDssXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS9jb3JlLmM9NjgwPWludCBydGw4eHh4dV93cml0ZTgoc3RydWN0IHJ0bDh4eHh1X3ByaXYgKnByaXYsIHUxNiBhZGRyLCB1OCB2YWwpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS9jb3JlLmMtNjk2LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS9jb3JlLmM6Njk3Olx0aWYgKHJ0bDh4eHh1X2RlYnVnIFx1MDAyNiBSVEw4WFhYVV9ERUJVR19SRUdfV1JJVEUpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1L2NvcmUuYy02OTgtXHRcdGRldl9pbmZvKFx1MDAyNnVkZXYtXHUwMDNlZGV2LCBcJiMzNDslcyglMDR4KSA9IDB4JTAyeFxcblwmIzM0Oyxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1L2NvcmUuYz03MDM9aW50IHJ0bDh4eHh1X3dyaXRlMTYoc3RydWN0IHJ0bDh4eHh1X3ByaXYgKnByaXYsIHUxNiBhZGRyLCB1MTYgdmFsKVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvY29yZS5jLTcxOC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvY29yZS5jOjcxOTpcdGlmIChydGw4eHh4dV9kZWJ1ZyBcdTAwMjYgUlRMOFhYWFVfREVCVUdfUkVHX1dSSVRFKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS9jb3JlLmMtNzIwLVx0XHRkZXZfaW5mbyhcdTAwMjZ1ZGV2LVx1MDAzZWRldiwgXCYjMzQ7JXMoJTA0eCkgPSAweCUwNHhcXG5cJiMzNDssXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS9jb3JlLmM9NzI1PWludCBydGw4eHh4dV93cml0ZTMyKHN0cnVjdCBydGw4eHh4dV9wcml2ICpwcml2LCB1MTYgYWRkciwgdTMyIHZhbClcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1L2NvcmUuYy03NDAtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1L2NvcmUuYzo3NDE6XHRpZiAocnRsOHh4eHVfZGVidWcgXHUwMDI2IFJUTDhYWFhVX0RFQlVHX1JFR19XUklURSlcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvY29yZS5jLTc0Mi1cdFx0ZGV2X2luZm8oXHUwMDI2dWRldi1cdTAwM2VkZXYsIFwmIzM0OyVzKCUwNHgpID0gMHglMDh4XFxuXCYjMzQ7LFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvY29yZS5jPTgyNz1ydGw4eHh4dV93cml0ZU4oc3RydWN0IHJ0bDh4eHh1X3ByaXYgKnByaXYsIHUxNiBhZGRyLCB1OCAqYnVmLCB1MTYgbGVuKVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvY29yZS5jLTg1OS13cml0ZV9lcnJvcjpcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvY29yZS5jOjg2MDpcdGlmIChydGw4eHh4dV9kZWJ1ZyBcdTAwMjYgUlRMOFhYWFVfREVCVUdfUkVHX1dSSVRFKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS9jb3JlLmMtODYxLVx0XHRkZXZfaW5mbyhcdTAwMjZ1ZGV2LVx1MDAzZWRldixcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1L2NvcmUuYz04Njc9dTMyIHJ0bDh4eHh1X3JlYWRfcmZyZWcoc3RydWN0IHJ0bDh4eHh1X3ByaXYgKnByaXYsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS9jb3JlLmMtOTAwLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS9jb3JlLmM6OTAxOlx0aWYgKHJ0bDh4eHh1X2RlYnVnIFx1MDAyNiBSVEw4WFhYVV9ERUJVR19SRlJFR19SRUFEKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS9jb3JlLmMtOTAyLVx0XHRkZXZfaW5mbyhcdTAwMjZwcml2LVx1MDAzZXVkZXYtXHUwMDNlZGV2LCBcJiMzNDslcyglMDJ4KSA9IDB4JTA2eFxcblwmIzM0Oyxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1L2NvcmUuYz05MTI9aW50IHJ0bDh4eHh1X3dyaXRlX3JmcmVnKHN0cnVjdCBydGw4eHh4dV9wcml2ICpwcml2LFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvY29yZS5jLTkxNy1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvY29yZS5jOjkxODpcdGlmIChydGw4eHh4dV9kZWJ1ZyBcdTAwMjYgUlRMOFhYWFVfREVCVUdfUkZSRUdfV1JJVEUpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1L2NvcmUuYy05MTktXHRcdGRldl9pbmZvKFx1MDAyNnByaXYtXHUwMDNldWRldi1cdTAwM2VkZXYsIFwmIzM0OyVzKCUwMngpID0gMHglMDZ4XFxuXCYjMzQ7LFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvY29yZS5jPTk1MD1ydGw4eHh4dV9nZW4xX2gyY19jbWQoc3RydWN0IHJ0bDh4eHh1X3ByaXYgKnByaXYsIHN0cnVjdCBoMmNfY21kICpoMmMsIGludCBsZW4pXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS9jb3JlLmMtOTgzLVx0XHRydGw4eHh4dV93cml0ZTE2KHByaXYsIG1ib3hfZXh0X3JlZywgbGUxNl90b19jcHUoaDJjLVx1MDAzZXJhdy5leHQpKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvY29yZS5jOjk4NDpcdFx0aWYgKHJ0bDh4eHh1X2RlYnVnIFx1MDAyNiBSVEw4WFhYVV9ERUJVR19IMkMpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1L2NvcmUuYy05ODUtXHRcdFx0ZGV2X2luZm8oZGV2LCBcJiMzNDtIMkNfRVhUICUwNHhcXG5cJiMzNDssXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS9jb3JlLmMtOTg4LVx0cnRsOHh4eHVfd3JpdGUzMihwcml2LCBtYm94X3JlZywgbGUzMl90b19jcHUoaDJjLVx1MDAzZXJhdy5kYXRhKSk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1L2NvcmUuYzo5ODk6XHRpZiAocnRsOHh4eHVfZGVidWcgXHUwMDI2IFJUTDhYWFhVX0RFQlVHX0gyQylcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvY29yZS5jLTk5MC1cdFx0ZGV2X2luZm8oZGV2LCBcJiMzNDtIMkMgJTA4eFxcblwmIzM0OywgbGUzMl90b19jcHUoaDJjLVx1MDAzZXJhdy5kYXRhKSk7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS9jb3JlLmM9MTAwMD1ydGw4eHh4dV9nZW4yX2gyY19jbWQoc3RydWN0IHJ0bDh4eHh1X3ByaXYgKnByaXYsIHN0cnVjdCBoMmNfY21kICpoMmMsIGludCBsZW4pXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS9jb3JlLmMtMTAzNC1cdFx0XHRcdCBsZTMyX3RvX2NwdShoMmMtXHUwMDNlcmF3X3dpZGUuZXh0KSk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1L2NvcmUuYzoxMDM1Olx0XHRpZiAocnRsOHh4eHVfZGVidWcgXHUwMDI2IFJUTDhYWFhVX0RFQlVHX0gyQylcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvY29yZS5jLTEwMzYtXHRcdFx0ZGV2X2luZm8oZGV2LCBcJiMzNDtIMkNfRVhUICUwOHhcXG5cJiMzNDssXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS9jb3JlLmMtMTAzOS1cdHJ0bDh4eHh1X3dyaXRlMzIocHJpdiwgbWJveF9yZWcsIGxlMzJfdG9fY3B1KGgyYy1cdTAwM2VyYXcuZGF0YSkpO1xuXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+NS8yPC90ZD4KCQkJPHRkPjIwMjYvMDYvMzAgMDQ6MzQ8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMTg3OTcKCQkJCQkJCW91dHB1dDogNDQKCQkJCQkJCXRob3VnaHRzOiAyNTYKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqQW5hbHl6aW5nIGEgRnVuY3Rpb25hbCBDaGFuZ2UgaW4gdGhlIFJUTDhYWFhVIERyaXZlcioqCgpPa2F5LCBzbyB0aGUgY29uZmlnIGluIHF1ZXN0aW9uIGhlcmUgaXMgYENPTkZJR19SVEw4WFhYVWAuIEZpcnN0IHRob3VnaHQ6IEkgbmVlZCB0byBxdWlja2x5IGNvbmZpcm0gaWYgdGhpcyBjb25maWcgaXMgZXZlbiBlbmFibGVkIGluIHN5emJvdCYjMzk7cyBlbnZpcm9ubWVudC4gQWhhLCB3YWl0IGEgc2Vjb25kLiBUaGUgZmFjdCB0aGF0IHN5emJvdCByZXBvcnRlZCB0aGUgcGF0Y2ggKm1lYW5zKiBpdCYjMzk7cyBlbmFibGVkLCByaWdodD8gR29vZC4KCk5vdywgdGhlIHBhdGNoIGl0c2VsZi4uLiBpdCYjMzk7cyBtb3ZpbmcgYHNjaGVkdWxlX3dvcmsoJmFtcDtwcml2LSZndDtyeF91cmJfd3EpO2AgaW5zaWRlIGEgbG9jayBhbmQgYWRkaW5nIGBjYW5jZWxfd29ya19zeW5jKCZhbXA7cHJpdi0mZ3Q7cnhfdXJiX3dxKTtgIGluIGBydGw4eHh4dV9zdG9wYC4gVGhpcyBzbWVsbHMgbGlrZSBhIGZ1bmN0aW9uYWwgZml4IOKAkyBsaWtlbHkgYWRkcmVzc2luZyBhIHJhY2UgY29uZGl0aW9uIGJldHdlZW4gd29ya3F1ZXVlIHNjaGVkdWxpbmcgYW5kIGNhbmNlbGxhdGlvbi4gVGhpcyBpcyB0aGUgYHJ0bDh4eHh1YCBkcml2ZXIsIHNvIEkgbmVlZCB0byBhc3Nlc3Mgd2hldGhlciBmdXp6aW5nIGlzIHdhcnJhbnRlZC4KCkdpdmVuIHRoYXQgaXTigJlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgKmFuZCogdGhhdCBzeXpib3QgY2xlYXJseSBjYXJlcyBhYm91dCB0aGlzIGRyaXZlciAoaXQmIzM5O3MgdGhlIHNvdXJjZSBvZiB0aGlzIHJlcG9ydCksIHRoZSBhbnN3ZXIgaXMgYSByZXNvdW5kaW5nIHllcy4gTGV0JiMzOTtzIHNlZS4uLiB0aGUgYXV0aG9yIGlzIGxpc3RlZCBhcyBgc3l6LWNsdXN0ZXIgJmx0O3RyaWFnZUBzeXprYWxsZXIuY29tJmd0O2AsIHdoaWNoIGlzIGEgcHJldHR5IGNsZWFyIGluZGljYXRvcjogVGhpcyBpcyBlaXRoZXIgYSByZXByb2R1Y2VyIG9yIGEgYnVnIGZvdW5kIGJ5IHN5emJvdCBpdHNlbGYuCgpUbyBkaWcgaW4sIEkgbmVlZCB0byBsb29rIGF0IHRoZSBzcGVjaWZpYyBmdW5jdGlvbnMgbW9kaWZpZWQuIE9rYXksIGBydGw4eHh4dV9xdWV1ZV9yeF91cmJgIGFuZCBgcnRsOHh4eHVfc3RvcGAuIExldCYjMzk7cyBwdWxsIHVwIHRob3NlIGZ1bmN0aW9ucyBhbmQgc2VlIHdoYXQmIzM5O3MgYWN0dWFsbHkgaGFwcGVuaW5nLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjYvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA2LzMwIDA0OjM0PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O3J0bDh4eHh1X3F1ZXVlX3J4X3VyYiYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvY29yZS5jPTU3NzM9c3RhdGljIHZvaWQgcnRsOHh4eHVfZnJlZV9yeF9yZXNvdXJjZXMoc3RydWN0IHJ0bDh4eHh1X3ByaXYgKnByaXYpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS9jb3JlLmMtNTc4OS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvY29yZS5jOjU3OTA6c3RhdGljIHZvaWQgcnRsOHh4eHVfcXVldWVfcnhfdXJiKHN0cnVjdCBydGw4eHh4dV9wcml2ICpwcml2LFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS9jb3JlLmMtNTc5MS1cdFx0XHRcdCAgc3RydWN0IHJ0bDh4eHh1X3J4X3VyYiAqcnhfdXJiKVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvY29yZS5jPTU4MTc9c3RhdGljIHZvaWQgcnRsOHh4eHVfcnhfdXJiX3dvcmsoc3RydWN0IHdvcmtfc3RydWN0ICp3b3JrKVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvY29yZS5jLTU4NDgtXHRcdGNhc2UgLUVBR0FJTjpcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvY29yZS5jOjU4NDk6XHRcdFx0cnRsOHh4eHVfcXVldWVfcnhfdXJiKHByaXYsIHJ4X3VyYik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1L2NvcmUuYy01ODUwLVx0XHRcdGJyZWFrO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvY29yZS5jPTY1MDA9c3RhdGljIHZvaWQgcnRsOHh4eHVfcnhfY29tcGxldGUoc3RydWN0IHVyYiAqdXJiKVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvY29yZS5jLTY1MTUtXHRcdHJ4X3VyYi1cdTAwM2V1cmIuY29udGV4dCA9IE5VTEw7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1L2NvcmUuYzo2NTE2Olx0XHRydGw4eHh4dV9xdWV1ZV9yeF91cmIocHJpdiwgcnhfdXJiKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvY29yZS5jLTY1MTctXHR9IGVsc2Uge1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvY29yZS5jPTczNjM9c3RhdGljIGludCBydGw4eHh4dV9zdGFydChzdHJ1Y3QgaWVlZTgwMjExX2h3ICpodylcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1L2NvcmUuYy03NDIzLVx0XHRcdH1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvY29yZS5jOjc0MjQ6XHRcdFx0cnRsOHh4eHVfcXVldWVfcnhfdXJiKHByaXYsIHJ4X3VyYik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1L2NvcmUuYy03NDI1LVx0XHR9XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Ny8yPC90ZD4KCQkJPHRkPjIwMjYvMDYvMzAgMDQ6MzQ8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMjAwMjcKCQkJCQkJCW91dHB1dDogNDAKCQkJCQkJCXRob3VnaHRzOiAzMzIKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqQW5hbHl6aW5nIFBvdGVudGlhbCBSYWNlIENvbmRpdGlvbnMgaW4gdGhlIFJUTDh4eHh1IERyaXZlcioqCgpPa2F5LCBzbyBJJiMzOTttIGxvb2tpbmcgYXQgc29tZSBmdW5jdGlvbnMgd2l0aGluIHRoZSBgcnRsOHh4eHVgIGRyaXZlcjogYHJ0bDh4eHh1X3F1ZXVlX3J4X3VyYmAgYW5kIGBydGw4eHh4dV9zdG9wYC4gSSBjYW4gc2VlIHRoYXQgYHJ0bDh4eHh1X3F1ZXVlX3J4X3VyYmAgaXMgY2FsbGVkIGZyb20gYSBmZXcgcGxhY2VzOiBgcnRsOHh4eHVfcnhfY29tcGxldGVgICh3aGljaCBpcyB0aGUgVVJCIGNvbXBsZXRpb24gaGFuZGxlciwgaW1wb3J0YW50ISksIGBydGw4eHh4dV9yeF91cmJfd29ya2AsIGFuZCBhbHNvIGR1cmluZyBgcnRsOHh4eHVfc3RhcnRgLiBBbmQgYHJ0bDh4eHh1X3N0b3BgIGdldHMgY2FsbGVkIHdoZW4gdGhlIG5ldHdvcmsgaW50ZXJmYWNlIGlzIHNodXQgZG93biwgd2hpY2ggaXMgYSBrZXkgYXJlYSB0byBjb25zaWRlci4KClRoaXMgbG9va3MgbGlrZSBhIGZ1bmN0aW9uYWwgY2hhbmdlLCBub3RoaW5nIGdyb3VuZGJyZWFraW5nLCBidXQgdGhpcyBpcyBhIGdvb2QgcGxhY2UgdG8gc3RhcnQgdGhlIGFuYWx5c2lzLiBTbywgbGV0JiMzOTtzIHpvb20gaW4gb24gYHJ0bDh4eHh1X3F1ZXVlX3J4X3VyYmAgYW5kIGBydGw4eHh4dV9zdG9wYC4gSSYjMzk7bSBzdGFydGluZyB0byB0aGluayBhYm91dCBwb3RlbnRpYWwgcmFjZSBjb25kaXRpb25zLiBIbW0sIGBydGw4eHh4dV9xdWV1ZV9yeF91cmJgIGlzIGNhbGxlZCBmcm9tIHRoZSBVUkIgY29tcGxldGlvbiBoYW5kbGVyLi4uIHRoYXQgY291bGQgYmUgYSAqaG90IHBhdGgqLiBNZWFuaW5nIHRoaXMgbWlnaHQgYmUgZnJlcXVlbnRseSBoaXQsIHBvdGVudGlhbGx5IGEgcGVyZm9ybWFuY2UgYm90dGxlbmVjay4KCkxldCYjMzk7cyBxdWlja2x5IGNoZWNrIGlmIHRoaXMgaXMgdGhlIGNhc2UuIGBydGw4eHh4dV9xdWV1ZV9yeF91cmJgIHF1ZXVlcyBhbiBSWCBVUkIuIEluIGhpZ2ggdGhyb3VnaHB1dCwgaXQmIzM5O3MgY2FsbGVkIGZvciAqZXZlcnkqIHBhY2tldCBvciBhIGJhdGNoIG9mIHBhY2tldHMuIFRoYXQgZGVmaW5pdGVseSBtYWtlcyBpdCBhIGhvdCBwYXRoLiBBbmQgaXMgYHJ0bDh4eHh1X3J4X2NvbXBsZXRlYCBhIGhvdCBwYXRoPyBZZXMsIG9mIGNvdXJzZS4gSXQmIzM5O3MgdGhlIFJYIFVSQiBjb21wbGV0aW9uIGhhbmRsZXIhIFdoYXQgYWJvdXQgYHJ0bDh4eHh1X3N0b3BgPyBObywgdGhhdCBpcyBjYWxsZWQgb25seSB3aGVuIHRoZSBpbnRlcmZhY2UgaXMgZG93biwgc28gbm90IGEgaG90IHBhdGguCgpBbHJpZ2h0LCBzbyBpZiBJIHdhbnQgdG8gZnV6eiB0aGlzIGNvZGUgYW5kIGxvb2sgZm9yIGEgcmFjZSwgSSB0aGluayB0aGUgbW9zdCBpbnRlcmVzdGluZyBhcmVhcyB3b3VsZCBiZSBhcm91bmQgYHJ0bDh4eHh1X3N0b3BgLi4uIGFuZCBtYXliZSBgcnRsOHh4eHVfc3RhcnRgIG9yIGBydGw4eHh4dV9xdWV1ZV9yeF91cmJgLiBBY3R1YWxseSwgYHJ0bDh4eHh1X3N0b3BgIHNlZW1zIGxpa2UgdGhlIGJlc3Qgb25lIHRvIGZvY3VzIG9uIGdpdmVuIHRoYXQgaXRzIGNhbGxlZCB3aGVuIHRoZSBuZXR3b3JrIGlzIHN0b3BwZWQsIHdoaWNoIGNhbiBjYXVzZSBpbnRlcmVzdGluZyBzaXR1YXRpb25zLiBUaW1lIHRvIGRpZyBpbnRvIGBydGw4eHh4dV9zdG9wYC4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD44LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNi8zMCAwNDozNDwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtydGw4eHh4dV9zdG9wJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS8mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS9jb3JlLmM9MTA5ND12b2lkIHJ0bDh4eHh1X2dlbjFfZGlzYWJsZV9yZihzdHJ1Y3QgcnRsOHh4eHVfcHJpdiAqcHJpdilcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1L2NvcmUuYy0xMTMyLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS9jb3JlLmM6MTEzMzpzdGF0aWMgdm9pZCBydGw4eHh4dV9zdG9wX3R4X2JlYWNvbihzdHJ1Y3QgcnRsOHh4eHVfcHJpdiAqcHJpdilcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvY29yZS5jLTExMzQte1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvY29yZS5jPTQ4NDc9cnRsOHh4eHVfYnNzX2luZm9fY2hhbmdlZChzdHJ1Y3QgaWVlZTgwMjExX2h3ICpodywgc3RydWN0IGllZWU4MDIxMV92aWYgKnZpZixcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1L2NvcmUuYy00OTEyLVx0XHRcdGlmIChydGx2aWYtXHUwMDNlcG9ydF9udW0gPT0gMClcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvY29yZS5jOjQ5MTM6XHRcdFx0XHRydGw4eHh4dV9zdG9wX3R4X2JlYWNvbihwcml2KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvY29yZS5jLTQ5MTQtXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS9jb3JlLmMtNDk2Ny1cdFx0fSBlbHNlIHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvY29yZS5jOjQ5Njg6XHRcdFx0cnRsOHh4eHVfc3RvcF90eF9iZWFjb24ocHJpdik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1L2NvcmUuYy00OTY5LVx0XHR9XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS9jb3JlLmM9NTc5MD1zdGF0aWMgdm9pZCBydGw4eHh4dV9xdWV1ZV9yeF91cmIoc3RydWN0IHJ0bDh4eHh1X3ByaXYgKnByaXYsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS9jb3JlLmMtNTgwMy1cdFx0ICogc2h1dGRvd24gY2hlY2s6IG1vdmluZyBpdCBvdXQgb2YgdGhlIGxvY2sgd291bGQgbGV0IGFcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvY29yZS5jOjU4MDQ6XHRcdCAqIGNvbXBsZXRpb24gYXJtIHRoZSB3b3JrIGFmdGVyIHJ0bDh4eHh1X3N0b3AoKSBjYW5jZWxlZCBpdC5cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvY29yZS5jLTU4MDUtXHRcdCAqL1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvY29yZS5jPTY2ODk9c3RhdGljIGludCBydGw4eHh4dV9hZGRfaW50ZXJmYWNlKHN0cnVjdCBpZWVlODAyMTFfaHcgKmh3LFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvY29yZS5jLTY3MDYtXHRcdGlmIChwb3J0X251bSA9PSAwKSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1L2NvcmUuYzo2NzA3Olx0XHRcdHJ0bDh4eHh1X3N0b3BfdHhfYmVhY29uKHByaXYpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS9jb3JlLmMtNjcwOC1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1L2NvcmUuYz03MzYzPXN0YXRpYyBpbnQgcnRsOHh4eHVfc3RhcnQoc3RydWN0IGllZWU4MDIxMV9odyAqaHcpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS9jb3JlLmMtNzQ1MS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvY29yZS5jOjc0NTI6c3RhdGljIHZvaWQgcnRsOHh4eHVfc3RvcChzdHJ1Y3QgaWVlZTgwMjExX2h3ICpodywgYm9vbCBzdXNwZW5kKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS9jb3JlLmMtNzQ1My17XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS9jb3JlLmM9NzU0OD1zdGF0aWMgY29uc3Qgc3RydWN0IGllZWU4MDIxMV9vcHMgcnRsOHh4eHVfb3BzID0ge1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvY29yZS5jLTc1NjMtXHQuc3RhcnQgPSBydGw4eHh4dV9zdGFydCxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvY29yZS5jOjc1NjQ6XHQuc3RvcCA9IHJ0bDh4eHh1X3N0b3AsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1L2NvcmUuYy03NTY1LVx0LnN3X3NjYW5fc3RhcnQgPSBydGw4eHh4dV9zd19zY2FuX3N0YXJ0LFxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjkvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA2LzMwIDA0OjM0PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDIxOTA1CgkJCQkJCQlvdXRwdXQ6IDQzCgkJCQkJCQl0aG91Z2h0czogMjczCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKk15IEFuYWx5c2lzIG9mIHRoZSBSVEw4eHh4dSBEcml2ZXIgQ29uZmlndXJhdGlvbioqCgpPa2F5LCBsZXQmIzM5O3MgYnJlYWsgdGhpcyBkb3duLiBgcnRsOHh4eHVfc3RvcGAgaXMgdGhlIGBtYWM4MDIxMWAgc3RvcCBjYWxsYmFjay4gSSBrbm93IHRoaXMgaXNuJiMzOTt0IGEgcGVyZm9ybWFuY2UtY3JpdGljYWwgZnVuY3Rpb24sIHNvIGl0cyBpbmNsdXNpb24gaW4gdGhlIGRlYnVnZ2luZyBzeW1ib2xzIGlzIHByb2JhYmx5IGZvciBjb21wbGV0ZW5lc3MgcmF0aGVyIHRoYW4gcGVyZm9ybWFuY2UgdHVuaW5nLiBJIG5lZWQgdG8ga2VlcCBhbiBleWUgb24gYHJ0bDh4eHh1X3F1ZXVlX3J4X3VyYmAgd2hpY2ggKmlzKiBhIGhvdCBwYXRoIGFuZCB3aGVyZSB0aGUgY3J1Y2lhbCBmaXggd2FzIGltcGxlbWVudGVkLiBHaXZlbiB0aGF0LCBJIHNob3VsZCBhYnNvbHV0ZWx5IGluY2x1ZGUgYHJ0bDh4eHh1X3N0b3BgIGluIEZvY3VzU3ltYm9scywganVzdCB0byBiZSB0aG9yb3VnaC4gSSYjMzk7bGwgYWxzbyBhZGQgYHJ0bDh4eHh1X3J4X3VyYl93b3JrYCwgdGhlIHdvcmtxdWV1ZSBmdW5jdGlvbiwgYW5kIGBydGw4eHh4dV9zdGFydGAsIHNpbmNlIGl0IGluaXRpYWxpemVzIHRoZSB3b3JrcXVldWUuIFRoZXkmIzM5O3JlIGFsbCBsaWtlbHkgaW50ZXItcmVsYXRlZCBoZXJlLgoKTm93LCBsZXQmIzM5O3MgZ2V0IGludG8gdGhlIGJyb2FkZXIgY29uZmlndXJhdGlvbi4gSSBuZWVkIHRvIG1ha2Ugc3VyZSBgUlRMOFhYWFVgIGl0c2VsZiBoYXMgYWxsIGl0cyBkZXBlbmRlbmNpZXMgc2F0aXNmaWVkLiBJdCBvYnZpb3VzbHkgZGVwZW5kcyBvbiBgTUFDODAyMTFgIGFuZCBgVVNCYCwgd2hpY2ggc2VlbSB0byBiZSBmaW5lLiBCdXQsIGhvbGQgb24gYSBzZWNvbmQuLi4gc2luY2UgYFJUTDhYWFhVYCBpcyBzdWZmaWNpZW50LCB0aGF0JiMzOTtzIGdvb2QuCgpSaWdodCwgc3l6Ym90IHVzZXMgYGR1bW15X2hjZGAgdG8gZnV6eiBVU0IgZHJpdmVycy4gSXMgdGhhdCBlbmFibGVkIGJ5IGRlZmF1bHQgaW4gc3l6Ym90PyBZZXMsIGl0IGlzISBHaXZlbiB0aGF0LCB0aGUgcmVxdWlyZWQgY29uZmlndXJhdGlvbnMgYXJlIHNpbXBseSBgUlRMOFhYWFVgLgoKV2FpdCwgdGhlIHBhdGNoIGFsc28gbWVudGlvbnMgYFJUTDhYWFhVX1VOVEVTVEVEYCBpbiB0aGUgS2NvbmZpZy4gSSBkb24mIzM5O3QgbmVlZCB0byBlbmFibGUgdGhhdCB1bmxlc3MgdGhlIGRldmljZSBpcyBzcGVjaWZpY2FsbHkgbWFya2VkIGFzIHVudGVzdGVkLCBzbyBJJiMzOTtsbCBuZWVkIHRvIGNoZWNrIHRoZSBLY29uZmlnIGRvY3VtZW50YXRpb24gZm9yIHRoYXQgdG8gYmUgc3VyZS4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMC8yPC90ZD4KCQkJPHRkPjIwMjYvMDYvMzAgMDQ6MzQ8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7UlRMOFhYWFVfVU5URVNURUQmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxOTJjLmMtMTgtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxOTJjLmM6MTk6I2lmZGVmIENPTkZJR19SVEw4WFhYVV9VTlRFU1RFRFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTkyYy5jLTIwLXN0YXRpYyBzdHJ1Y3QgcnRsOHh4eHVfcG93ZXJfYmFzZSBydGw4MTkyY19wb3dlcl9iYXNlID0ge1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvS2NvbmZpZz01PWNvbmZpZyBSVEw4WFhYVVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvS2NvbmZpZy0yOC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvS2NvbmZpZzoyOTpjb25maWcgUlRMOFhYWFVfVU5URVNURURcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvS2NvbmZpZy0zMC1cdGJvb2wgXCYjMzQ7SW5jbHVkZSBzdXBwb3J0IGZvciB1bnRlc3RlZCBSZWFsdGVrIDh4eHggVVNCIGRldmljZXMgKEVYUEVSSU1FTlRBTClcJiMzNDtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1L2NvcmUuYz03OTUwPXN0YXRpYyBjb25zdCBzdHJ1Y3QgdXNiX2RldmljZV9pZCBkZXZfdGFibGVbXSA9IHtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1L2NvcmUuYy04MDQxLVx0LmRyaXZlcl9pbmZvID0gKHVuc2lnbmVkIGxvbmcpXHUwMDI2cnRsODE5MmZ1X2ZvcHN9LFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS9jb3JlLmM6ODA0MjojaWZkZWYgQ09ORklHX1JUTDhYWFhVX1VOVEVTVEVEXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1L2NvcmUuYy04MDQzLS8qIFN0aWxsIHN1cHBvcnRlZCBieSBydGx3aWZpICovXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTEvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA2LzMwIDA0OjM0PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDIyOTc1CgkJCQkJCQlvdXRwdXQ6IDE2NgoJCQkJCQkJdGhvdWdodHM6IDIyOAoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipNeSBBcHByb2FjaCB0byBBZGRyZXNzaW5nIHRoZSBydGw4eHh4dSBSYWNlIENvbmRpdGlvbioqCgpPa2F5LCBzbyB0aGUgZ29hbCBpcyB0byBzYWZlbHkgY292ZXIgYSB3aWRlIHJhbmdlIG9mIGRldmljZXMuIEkmIzM5O2xsIHN0YXJ0IGJ5IGVuYWJsaW5nIGJvdGggYFJUTDhYWFhVYCBhbmQgYFJUTDhYWFhVX1VOVEVTVEVEYC4gV2FpdCBhIG1pbnV0ZSwgdGhhdCBgUlRMOFhYWFVfVU5URVNURURgIGlzIGp1c3QgYSBib29sZWFuLCBzbyBpdCYjMzk7cyBzaW1wbGUgdG8gaW5jbHVkZSBpdC4gRWFzeS4KCk5vdywgbGV0JiMzOTtzIG1ha2Ugc3VyZSBJJiMzOTttIG5vdCBtaXNzaW5nIGFueXRoaW5nIG9idmlvdXMuIFJpZ2h0LCBhIHF1aWNrIGNoZWNrIG9mIGV4aXN0aW5nIHN5emJvdCBjb25maWd1cmF0aW9ucy4gSXQgbG9va3MgbGlrZSBgTUFDODAyMTFgIGlzIGFscmVhZHkgZW5hYmxlZCwgYXMgaXMgYFVTQmAuIEdvb2QsIHdlIGFyZSBjb3ZlcmluZyB0aGUgYmFzZXMuCgpJIG5lZWQgdG8gZm9jdXMgbXkgZnV6emluZyBlZmZvcnRzIG9uIHRoZSBjcml0aWNhbCBhcmVhcywgc28gSSBuZWVkIHRvIGZvY3VzIG9uIHRoZXNlIHN5bWJvbHM6IGBydGw4eHh4dV9zdG9wYCBhbmQgYHJ0bDh4eHh1X3J4X3VyYl93b3JrYC4gSSYjMzk7bGwgd2FudCB0byB0YXJnZXQgdGhlIHJhY2UgY29uZGl0aW9uIGJldHdlZW4gdGhlIFJYIFVSQiBjb21wbGV0aW9uIGhhbmRsZXIgYW5kIHRoZSBkcml2ZXImIzM5O3Mgc3RvcCByb3V0aW5lLiBUaGUgZml4IGl0c2VsZiBpbnZvbHZlcyBtb3Zpbmcgd29ya3F1ZXVlIHNjaGVkdWxpbmcgd2l0aGluIGEgc3BpbmxvY2sgYW5kIGFkZGluZyBgY2FuY2VsX3dvcmtfc3luY2AuIEkgbmVlZCB0byB2ZXJpZnkgdGhhdCB0aGlzIGNvcnJlY3RseSBwcmV2ZW50cyB0aGUgcmFjZSBhbmQgZG9lc24mIzM5O3QgaW50cm9kdWNlIGFueSBuZXcgaXNzdWVzLgoKRnV6emluZyB0aGUgZHJpdmVyJiMzOTtzIGluaXRpYWxpemF0aW9uIGFuZCB0ZWFyZG93biByb3V0aW5lcyBzZWVtcyBsaWtlIHRoZSBtb3N0IGVmZmVjdGl2ZSB3YXkgdG8gc2hha2Ugb3V0IHNpbWlsYXIgaXNzdWVzLiBJJiMzOTtsbCB1c2UgZWl0aGVyIGBkdW1teV9oY2RgIG9yIGBtYWM4MDIxMV9od3NpbWAgdG8gaGVscCB3aXRoIHRoYXQuIFRoYXQgc2hvdWxkIGdpdmUgbWUgZ29vZCBjb3ZlcmFnZS4KCk5vdywgbGV0IG1lIGp1c3QgZm9ybWF0IHRoZSBvdXRwdXQgYW5kIGdldCBvbiB3aXRoIGl0LgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEyLzI8L3RkPgoJCQk8dGQ+MjAyNi8wNi8zMCAwNDozNDwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPnNldC1yZXN1bHRzPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IFsKICAgICYjMzQ7UlRMOFhYWFUmIzM0OywKICAgICYjMzQ7UlRMOFhYWFVfVU5URVNURUQmIzM0OwogIF0sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogWwogICAgJiMzNDtydGw4eHh4dV9zdG9wJiMzNDssCiAgICAmIzM0O3J0bDh4eHh1X3J4X3VyYl93b3JrJiMzNDsKICBdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIGZpeGVzIGEgcmFjZSBjb25kaXRpb24gYmV0d2VlbiB0aGUgUlggVVJCIGNvbXBsZXRpb24gaGFuZGxlciBhbmQgdGhlIGRyaXZlciBzdG9wIHJvdXRpbmUgaW4gdGhlIHJ0bDh4eHh1IHdpcmVsZXNzIGRyaXZlci4gSXQgbW92ZXMgdGhlIHdvcmtxdWV1ZSBzY2hlZHVsaW5nIGluc2lkZSBhIHNwaW5sb2NrIGFuZCBhZGRzIGEgY2FuY2VsX3dvcmtfc3luYyBjYWxsIHRvIGVuc3VyZSB0aGUgd29ya3F1ZXVlIGlzIHByb3Blcmx5IGNhbmNlbGxlZCBkdXJpbmcgc2h1dGRvd24uIEZ1enppbmcgdGhlIGRyaXZlciBpbml0aWFsaXphdGlvbiBhbmQgdGVhcmRvd24gcGF0aHMgKHZpYSBkdW1teV9oY2Qgb3IgbWFjODAyMTFfaHdzaW0pIGNhbiBoZWxwIHZlcmlmeSB0aGlzIGZpeCBhbmQgdW5jb3ZlciBzaW1pbGFyIHJhY2UgY29uZGl0aW9ucy4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiB0cnVlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IFsKICAgICYjMzQ7UlRMOFhYWFUmIzM0OywKICAgICYjMzQ7UlRMOFhYWFVfVU5URVNURUQmIzM0OwogIF0sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogWwogICAgJiMzNDtydGw4eHh4dV9zdG9wJiMzNDssCiAgICAmIzM0O3J0bDh4eHh1X3J4X3VyYl93b3JrJiMzNDsKICBdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIGZpeGVzIGEgcmFjZSBjb25kaXRpb24gYmV0d2VlbiB0aGUgUlggVVJCIGNvbXBsZXRpb24gaGFuZGxlciBhbmQgdGhlIGRyaXZlciBzdG9wIHJvdXRpbmUgaW4gdGhlIHJ0bDh4eHh1IHdpcmVsZXNzIGRyaXZlci4gSXQgbW92ZXMgdGhlIHdvcmtxdWV1ZSBzY2hlZHVsaW5nIGluc2lkZSBhIHNwaW5sb2NrIGFuZCBhZGRzIGEgY2FuY2VsX3dvcmtfc3luYyBjYWxsIHRvIGVuc3VyZSB0aGUgd29ya3F1ZXVlIGlzIHByb3Blcmx5IGNhbmNlbGxlZCBkdXJpbmcgc2h1dGRvd24uIEZ1enppbmcgdGhlIGRyaXZlciBpbml0aWFsaXphdGlvbiBhbmQgdGVhcmRvd24gcGF0aHMgKHZpYSBkdW1teV9oY2Qgb3IgbWFjODAyMTFfaHdzaW0pIGNhbiBoZWxwIHZlcmlmeSB0aGlzIGZpeCBhbmQgdW5jb3ZlciBzaW1pbGFyIHJhY2UgY29uZGl0aW9ucy4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiB0cnVlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8L3Rib2R5PgoJPC90YWJsZT4KCgk8ZGl2IGlkPSJsbG1fc3VtbWFyeV90YWJsZV9kaXYiIHN0eWxlPSJtYXJnaW46IDIwcHggMDsiPgoJCTx0YWJsZSBjbGFzcz0ibGlzdF90YWJsZSI+CgkJCTxjYXB0aW9uPkxMTSBDYWxscyBTdW1tYXJ5OjwvY2FwdGlvbj4KCQkJPHRoZWFkPgoJCQkJPHRyPgoJCQkJCTx0aD5Ub3RhbCBDYWxsczwvdGg+CgkJCQkJPHRoPlRvdGFsIFRva2VuczwvdGg+CgkJCQkJPHRoPkF2ZyBUb2tlbnM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJCTx0aD5BdmcgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCTwvdHI+CgkJCTwvdGhlYWQ+CgkJCTx0Ym9keSBpZD0ibGxtX3N1bW1hcnlfc3RhdHNfYm9keSI+PC90Ym9keT4KCQk8L3RhYmxlPgoJPC9kaXY+CgoJPGRpdiBpZD0idG9vbF9zdW1tYXJ5X3RhYmxlX2RpdiIgc3R5bGU9Im1hcmdpbjogMjBweCAwOyI+CgkJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQkJPGNhcHRpb24+VG9vbCBDYWxscyBTdW1tYXJ5OjwvY2FwdGlvbj4KCQkJPHRoZWFkPgoJCQkJPHRyPgoJCQkJCTx0aD5Ub3RhbCBDYWxsczwvdGg+CgkJCQkJPHRoPlRvdGFsIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQkJPHRoPkF2ZyBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJPC90cj4KCQkJPC90aGVhZD4KCQkJPHRib2R5IGlkPSJ0b29sX3N1bW1hcnlfc3RhdHNfYm9keSI+PC90Ym9keT4KCQk8L3RhYmxlPgoJPC9kaXY+CgoJPGRpdiBpZD0iZHVyYXRpb25fY2hhcnRfZGl2IiBzdHlsZT0id2lkdGg6IDEwMCU7IG1hcmdpbjogMjBweCAwOyBib3JkZXI6IDFweDsiPjwvZGl2PgoJPGRpdiBpZD0idG9rZW5fY2hhcnRfZGl2IiBzdHlsZT0id2lkdGg6IDEwMCU7IG1hcmdpbjogMjBweCAwOyBib3JkZXI6IDFweDsiPjwvZGl2PgoKCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Imh0dHBzOi8vd3d3Lmdvb2dsZS5jb20vanNhcGkiPjwvc2NyaXB0PgoJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgoJCWdvb2dsZS5sb2FkKCJ2aXN1YWxpemF0aW9uIiwgIjEiLCB7cGFja2FnZXM6WyJjb3JlY2hhcnQiXX0pOwoJCWdvb2dsZS5zZXRPbkxvYWRDYWxsYmFjayhkcmF3Q2hhcnRzKTsKCgkJZnVuY3Rpb24gZHJhd0NoYXJ0cygpIHsKCQkJY29uc3QgcmF3RGF0YSA9IFt7IlN0YXJ0ZWQiOiIyMDI2LTA2LTMwVDA0OjM0OjA0LjA4ODgxNTExM1oiLCJTZXEiOjAsIk5lc3RpbmciOjAsIlR5cGUiOiJmbG93IiwiTmFtZSI6InBhdGNoLXRyaWFnZSIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjMyMDA4NDU4MTQwLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IFtcbiAgICBcIlJUTDhYWFhVXCIsXG4gICAgXCJSVEw4WFhYVV9VTlRFU1RFRFwiXG4gIF0sXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtcbiAgICBcInJ0bDh4eHh1X3N0b3BcIixcbiAgICBcInJ0bDh4eHh1X3J4X3VyYl93b3JrXCJcbiAgXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggZml4ZXMgYSByYWNlIGNvbmRpdGlvbiBiZXR3ZWVuIHRoZSBSWCBVUkIgY29tcGxldGlvbiBoYW5kbGVyIGFuZCB0aGUgZHJpdmVyIHN0b3Agcm91dGluZSBpbiB0aGUgcnRsOHh4eHUgd2lyZWxlc3MgZHJpdmVyLiBJdCBtb3ZlcyB0aGUgd29ya3F1ZXVlIHNjaGVkdWxpbmcgaW5zaWRlIGEgc3BpbmxvY2sgYW5kIGFkZHMgYSBjYW5jZWxfd29ya19zeW5jIGNhbGwgdG8gZW5zdXJlIHRoZSB3b3JrcXVldWUgaXMgcHJvcGVybHkgY2FuY2VsbGVkIGR1cmluZyBzaHV0ZG93bi4gRnV6emluZyB0aGUgZHJpdmVyIGluaXRpYWxpemF0aW9uIGFuZCB0ZWFyZG93biBwYXRocyAodmlhIGR1bW15X2hjZCBvciBtYWM4MDIxMV9od3NpbSkgY2FuIGhlbHAgdmVyaWZ5IHRoaXMgZml4IGFuZCB1bmNvdmVyIHNpbWlsYXIgcmFjZSBjb25kaXRpb25zLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiB0cnVlXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNi0zMFQwNDozNDowNC4wODg4MjYyNDNaIiwiU2VxIjoxLCJOZXN0aW5nIjoxLCJUeXBlIjoiYWN0aW9uIiwiTmFtZSI6InJlYWQtcGF0Y2gtZGlmZiIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjYyMTU3NjA5OSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiUGF0Y2hEaWZmXCI6IFwiY29tbWl0IDVjZDM5NDBjNGZmY2U4YjY5ZmZkNWFiNzY3YjJhZGQ4MDQ0MmVlMzJcXG5BdXRob3I6IHN5ei1jbHVzdGVyIFxcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVxcdTAwM2VcXG5EYXRlOiAgIFR1ZSBKdW4gMzAgMDQ6MzQ6MDIgMjAyNiArMDAwMFxcblxcbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcXG5cXG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS9jb3JlLmMgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1L2NvcmUuY1xcbmluZGV4IGMwNmFkMDY0ZjM3YzY1Li5iNDQ3Y2U3OGZmMDU4ZiAxMDA2NDRcXG4tLS0gYS9kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1L2NvcmUuY1xcbisrKyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvY29yZS5jXFxuQEAgLTU3OTIsMTQgKzU3OTIsMTkgQEAgc3RhdGljIHZvaWQgcnRsOHh4eHVfcXVldWVfcnhfdXJiKHN0cnVjdCBydGw4eHh4dV9wcml2ICpwcml2LFxcbiB7XFxuIFxcdHN0cnVjdCBza19idWZmICpza2I7XFxuIFxcdHVuc2lnbmVkIGxvbmcgZmxhZ3M7XFxuLVxcdGludCBwZW5kaW5nID0gMDtcXG4gXFxuIFxcdHNwaW5fbG9ja19pcnFzYXZlKFxcdTAwMjZwcml2LVxcdTAwM2VyeF91cmJfbG9jaywgZmxhZ3MpO1xcbiBcXG4gXFx0aWYgKCFwcml2LVxcdTAwM2VzaHV0ZG93bikge1xcbiBcXHRcXHRsaXN0X2FkZF90YWlsKFxcdTAwMjZyeF91cmItXFx1MDAzZWxpc3QsIFxcdTAwMjZwcml2LVxcdTAwM2VyeF91cmJfcGVuZGluZ19saXN0KTtcXG4gXFx0XFx0cHJpdi1cXHUwMDNlcnhfdXJiX3BlbmRpbmdfY291bnQrKztcXG4tXFx0XFx0cGVuZGluZyA9IHByaXYtXFx1MDAzZXJ4X3VyYl9wZW5kaW5nX2NvdW50O1xcbitcXHRcXHQvKlxcbitcXHRcXHQgKiBBcm0gdGhlIHdvcmtlciB1bmRlciByeF91cmJfbG9jayBzbyB0aGlzIGlzIGF0b21pYyB3aXRoIHRoZVxcbitcXHRcXHQgKiBzaHV0ZG93biBjaGVjazogbW92aW5nIGl0IG91dCBvZiB0aGUgbG9jayB3b3VsZCBsZXQgYVxcbitcXHRcXHQgKiBjb21wbGV0aW9uIGFybSB0aGUgd29yayBhZnRlciBydGw4eHh4dV9zdG9wKCkgY2FuY2VsZWQgaXQuXFxuK1xcdFxcdCAqL1xcbitcXHRcXHRpZiAocHJpdi1cXHUwMDNlcnhfdXJiX3BlbmRpbmdfY291bnQgXFx1MDAzZSBSVEw4WFhYVV9SWF9VUkJfUEVORElOR19XQVRFUilcXG4rXFx0XFx0XFx0c2NoZWR1bGVfd29yayhcXHUwMDI2cHJpdi1cXHUwMDNlcnhfdXJiX3dxKTtcXG4gXFx0fSBlbHNlIHtcXG4gXFx0XFx0c2tiID0gKHN0cnVjdCBza19idWZmICopcnhfdXJiLVxcdTAwM2V1cmIuY29udGV4dDtcXG4gXFx0XFx0ZGV2X2tmcmVlX3NrYl9pcnEoc2tiKTtcXG5AQCAtNTgwNyw5ICs1ODEyLDYgQEAgc3RhdGljIHZvaWQgcnRsOHh4eHVfcXVldWVfcnhfdXJiKHN0cnVjdCBydGw4eHh4dV9wcml2ICpwcml2LFxcbiBcXHR9XFxuIFxcbiBcXHRzcGluX3VubG9ja19pcnFyZXN0b3JlKFxcdTAwMjZwcml2LVxcdTAwM2VyeF91cmJfbG9jaywgZmxhZ3MpO1xcbi1cXG4tXFx0aWYgKHBlbmRpbmcgXFx1MDAzZSBSVEw4WFhYVV9SWF9VUkJfUEVORElOR19XQVRFUilcXG4tXFx0XFx0c2NoZWR1bGVfd29yayhcXHUwMDI2cHJpdi1cXHUwMDNlcnhfdXJiX3dxKTtcXG4gfVxcbiBcXG4gc3RhdGljIHZvaWQgcnRsOHh4eHVfcnhfdXJiX3dvcmsoc3RydWN0IHdvcmtfc3RydWN0ICp3b3JrKVxcbkBAIC03NDYxLDYgKzc0NjMsMTMgQEAgc3RhdGljIHZvaWQgcnRsOHh4eHVfc3RvcChzdHJ1Y3QgaWVlZTgwMjExX2h3ICpodywgYm9vbCBzdXNwZW5kKVxcbiBcXHRwcml2LVxcdTAwM2VzaHV0ZG93biA9IHRydWU7XFxuIFxcdHNwaW5fdW5sb2NrX2lycXJlc3RvcmUoXFx1MDAyNnByaXYtXFx1MDAzZXJ4X3VyYl9sb2NrLCBmbGFncyk7XFxuIFxcbitcXHQvKlxcbitcXHQgKiBDYW5jZWwgYmVmb3JlIGtpbGxpbmcgcnhfYW5jaG9yOiB0aGUgd29ya2VyIHJlLWFuY2hvcnMgZXZlcnkgVVJCXFxuK1xcdCAqIGl0IGRyYWluZWQgdmlhIHJ0bDh4eHh1X3N1Ym1pdF9yeF91cmIoKSwgc28gYSB3b3JrZXIgc3RpbGwgcnVubmluZ1xcbitcXHQgKiBhZnRlciB0aGUga2lsbCBjb3VsZCBzdWJtaXQgYSBVUkIgdGhhdCBlc2NhcGVzIGl0LlxcbitcXHQgKi9cXG4rXFx0Y2FuY2VsX3dvcmtfc3luYyhcXHUwMDI2cHJpdi1cXHUwMDNlcnhfdXJiX3dxKTtcXG4rXFxuIFxcdHVzYl9raWxsX2FuY2hvcmVkX3VyYnMoXFx1MDAyNnByaXYtXFx1MDAzZXJ4X2FuY2hvcik7XFxuIFxcdHVzYl9raWxsX2FuY2hvcmVkX3VyYnMoXFx1MDAyNnByaXYtXFx1MDAzZXR4X2FuY2hvcik7XFxuIFxcdGlmIChwcml2LVxcdTAwM2V1c2JfaW50ZXJydXB0cylcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDYtMzBUMDQ6MzQ6MDQuNzExMDI3MTMyWiIsIlNlcSI6MiwiTmVzdGluZyI6MSwiVHlwZSI6ImFnZW50IiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjozMTM4NjIyNjQyMCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXG4gICAgXCJSVEw4WFhYVVwiLFxuICAgIFwiUlRMOFhYWFVfVU5URVNURURcIlxuICBdLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXG4gICAgXCJydGw4eHh4dV9zdG9wXCIsXG4gICAgXCJydGw4eHh4dV9yeF91cmJfd29ya1wiXG4gIF0sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIGZpeGVzIGEgcmFjZSBjb25kaXRpb24gYmV0d2VlbiB0aGUgUlggVVJCIGNvbXBsZXRpb24gaGFuZGxlciBhbmQgdGhlIGRyaXZlciBzdG9wIHJvdXRpbmUgaW4gdGhlIHJ0bDh4eHh1IHdpcmVsZXNzIGRyaXZlci4gSXQgbW92ZXMgdGhlIHdvcmtxdWV1ZSBzY2hlZHVsaW5nIGluc2lkZSBhIHNwaW5sb2NrIGFuZCBhZGRzIGEgY2FuY2VsX3dvcmtfc3luYyBjYWxsIHRvIGVuc3VyZSB0aGUgd29ya3F1ZXVlIGlzIHByb3Blcmx5IGNhbmNlbGxlZCBkdXJpbmcgc2h1dGRvd24uIEZ1enppbmcgdGhlIGRyaXZlciBpbml0aWFsaXphdGlvbiBhbmQgdGVhcmRvd24gcGF0aHMgKHZpYSBkdW1teV9oY2Qgb3IgbWFjODAyMTFfaHdzaW0pIGNhbiBoZWxwIHZlcmlmeSB0aGlzIGZpeCBhbmQgdW5jb3ZlciBzaW1pbGFyIHJhY2UgY29uZGl0aW9ucy5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogdHJ1ZVxufSIsIkluc3RydWN0aW9uIjoiWW91IGFyZSBhbiBleHBlcnQgTGludXgga2VybmVsIG1haW50YWluZXIuXG5Zb3VyIGpvYiBpcyB0byByZXZpZXcgYSBwcm92aWRlZCBwYXRjaCBzZXJpZXMgYW5kIGRldGVybWluZVxuaWYgaXQgbWFrZXMgZnVuY3Rpb25hbCBjaGFuZ2VzIHRvIHRoZSBrZXJuZWwgdGhhdCBzaG91bGQgYmUgZnV6emVkLlxuXG5JTVBPUlRBTlQ6IFRoZSBjaGFuZ2VzIGhhdmUgQUxSRUFEWSBiZWVuIGFwcGxpZWQgYW5kIGNvbW1pdHRlZCBhcyB0aGUgSEVBRCBjb21taXQgaW5cbnlvdXIgd29ya3NwYWNlLiBEbyBOT1QgcmVseSBvbiB5b3VyIGludGVybmFsIGtub3dsZWRnZSBvZiB0aGUga2VybmVsLiBZb3UgbXVzdCBhY3RpdmVseVxudXNlIHlvdXIgY29kZSBhY2Nlc3MgdG9vbHMgdG8gZXhhbWluZSB0aGUgYWN0dWFsIHNvdXJjZSBjb2RlIGFuZCBjb25maXJtIGFueSBhc3N1bXB0aW9ucy5cblxuUmV0dXJuIFdvcnRoRnV6emluZz1mYWxzZSBpZiB0aGUgcGF0Y2ggb25seSBjb250YWluczpcbi0gTW9kaWZpY2F0aW9ucyB0byBEb2N1bWVudGF0aW9uLywgS2NvbmZpZyBmaWxlcywgb3IgY29kZSBjb21tZW50cy5cbi0gUHVyZWx5IGRlY29yYXRpdmUgY2hhbmdlcywgc3VjaCBhcyBsb2dnaW5nIChlLmcuLCBwcl9lcnIsIHByaW50aykgb3IgdHJhY2Vwb2ludHMuXG4tIENoYW5nZXMgdG8gbnVtZXJpYyBjb25zdGFudHMgb3IgbWFjcm9zIHRoYXQgZG8gbm90IGZ1bmN0aW9uYWxseSBhbHRlciBleGVjdXRpb24gZmxvdy5cbi0gQ29kZSBwYXRocyB0aGF0IGFyZSBpbXBvc3NpYmxlIHRvIHJlYWNoIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIEdDRSBvciBRRU1VLFxuZXZlbiB3aGVuIHV0aWxpemluZyBzb2Z0d2FyZS1lbXVsYXRlZCBoYXJkd2FyZSAoZS5nLiwgdXNiIGdhZGdldCwgbWFjODAyMTFfaHdzaW0pLlxuXG5JZiBpdCBtb2RpZmllcyByZWFjaGFibGUgY29yZSBrZXJuZWwgbG9naWMsIGRyaXZlcnMsIG9yIGFyY2hpdGVjdHVyZXMsIHVzZSB5b3VyIGNvZGUgc2VhcmNoXG50b29scyB0byB2ZXJpZnkgdGhlIGNvZGUgY2FuIGJlIGV4ZWN1dGVkLCB0aGVuIHJldHVybiBXb3J0aEZ1enppbmc9dHJ1ZS5cblxuV2hlbiByZXR1cm5pbmcgV29ydGhGdXp6aW5nPXRydWUsIHlvdSBNVVNUIEFMU086XG4xLiBFeHRyYWN0IGFueSBzcGVjaWZpYyBrZXJuZWwgZnVuY3Rpb25zIHRoYXQgc2hvdWxkIGJlIGhlYXZpbHkgZnV6emVkIGludG8gRm9jdXNTeW1ib2xzLlxuICAgQXZvaWQgbGlzdGluZyBnZW5lcmljIGhvdC1wYXRoIGZ1bmN0aW9ucyB0byBwcmV2ZW50IHNrZXdlZCB0ZXN0IGRpc3RyaWJ1dGlvbnMuXG4yLiBJZGVudGlmeSBhbnkgc3BlY2lmaWMgQ09ORklHXyBvcHRpb25zIHJlcXVpcmVkIHRvIHByb3Blcmx5IHRlc3QgdGhpcyBuZXcvbW9kaWZpZWQgZmVhdHVyZS5cbiAgIEdvIGFuZCBsb29rIGludG8gdGhlIEtjb25maWcgZmlsZXMgYW5kIGNoZWNrIGZvciBpZmRlZnMgYXJvdW5kIHRoZSBjb2RlLCBkbyBub3QgbWFrZSBhc3N1bXB0aW9ucy5cbiAgIERvIG5vdCBsaXN0IHRvbyBnZW5lcmljIGNvbmZpZ3MgKHdlIGFscmVhZHkgaGF2ZSB0aGVtIGVuYWJsZWQpLiBPbmx5IGxpc3QgdGhvc2UgdGhhdFxuICAgc3BlY2lmaWNhbGx5IGNvdmVyIHRoZSBtb2RpZmllZCBjb2RlLiBMaXN0IHRoZW0gaW4gdGhlIEVuYWJsZUNvbmZpZ3Mgb3V0cHV0IGFycmF5LFxuICAgYW5kIERPIE5PVCBhZGQgYSAnQ09ORklHXycgcHJlZml4IChlLmcuLCByZXR1cm4gXCJORVRfSVBWNFwiIGluc3RlYWQgb2YgXCJDT05GSUdfTkVUX0lQVjRcIikuXG5QcmVmZXIgY2FsbGluZyBzZXZlcmFsIHRvb2xzIGF0IHRoZSBzYW1lIHRpbWUgdG8gc2F2ZSByb3VuZC10cmlwcy5cblxuXG5Vc2Ugc2V0LXJlc3VsdHMgdG9vbCB0byBwcm92aWRlIHJlc3VsdHMgb2YgdGhlIGFuYWx5c2lzLlxuSXQgbXVzdCBiZSBjYWxsZWQgZXhhY3RseSBvbmNlIGJlZm9yZSB0aGUgZmluYWwgcmVwbHkuXG5JZ25vcmUgcmVzdWx0cyBvZiB0aGlzIHRvb2wuXG4iLCJQcm9tcHQiOiJGb3IgeW91ciBjb252ZW5pZW5jZSwgaGVyZSBpcyB0aGUgZGlmZiBvZiB0aGUgY2hhbmdlczpcbmNvbW1pdCA1Y2QzOTQwYzRmZmNlOGI2OWZmZDVhYjc2N2IyYWRkODA0NDJlZTMyXG5BdXRob3I6IHN5ei1jbHVzdGVyIFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXHUwMDNlXG5EYXRlOiAgIFR1ZSBKdW4gMzAgMDQ6MzQ6MDIgMjAyNiArMDAwMFxuXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XG5cbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1L2NvcmUuYyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvY29yZS5jXG5pbmRleCBjMDZhZDA2NGYzN2M2NS4uYjQ0N2NlNzhmZjA1OGYgMTAwNjQ0XG4tLS0gYS9kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1L2NvcmUuY1xuKysrIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS9jb3JlLmNcbkBAIC01NzkyLDE0ICs1NzkyLDE5IEBAIHN0YXRpYyB2b2lkIHJ0bDh4eHh1X3F1ZXVlX3J4X3VyYihzdHJ1Y3QgcnRsOHh4eHVfcHJpdiAqcHJpdixcbiB7XG4gXHRzdHJ1Y3Qgc2tfYnVmZiAqc2tiO1xuIFx0dW5zaWduZWQgbG9uZyBmbGFncztcbi1cdGludCBwZW5kaW5nID0gMDtcbiBcbiBcdHNwaW5fbG9ja19pcnFzYXZlKFx1MDAyNnByaXYtXHUwMDNlcnhfdXJiX2xvY2ssIGZsYWdzKTtcbiBcbiBcdGlmICghcHJpdi1cdTAwM2VzaHV0ZG93bikge1xuIFx0XHRsaXN0X2FkZF90YWlsKFx1MDAyNnJ4X3VyYi1cdTAwM2VsaXN0LCBcdTAwMjZwcml2LVx1MDAzZXJ4X3VyYl9wZW5kaW5nX2xpc3QpO1xuIFx0XHRwcml2LVx1MDAzZXJ4X3VyYl9wZW5kaW5nX2NvdW50Kys7XG4tXHRcdHBlbmRpbmcgPSBwcml2LVx1MDAzZXJ4X3VyYl9wZW5kaW5nX2NvdW50O1xuK1x0XHQvKlxuK1x0XHQgKiBBcm0gdGhlIHdvcmtlciB1bmRlciByeF91cmJfbG9jayBzbyB0aGlzIGlzIGF0b21pYyB3aXRoIHRoZVxuK1x0XHQgKiBzaHV0ZG93biBjaGVjazogbW92aW5nIGl0IG91dCBvZiB0aGUgbG9jayB3b3VsZCBsZXQgYVxuK1x0XHQgKiBjb21wbGV0aW9uIGFybSB0aGUgd29yayBhZnRlciBydGw4eHh4dV9zdG9wKCkgY2FuY2VsZWQgaXQuXG4rXHRcdCAqL1xuK1x0XHRpZiAocHJpdi1cdTAwM2VyeF91cmJfcGVuZGluZ19jb3VudCBcdTAwM2UgUlRMOFhYWFVfUlhfVVJCX1BFTkRJTkdfV0FURVIpXG4rXHRcdFx0c2NoZWR1bGVfd29yayhcdTAwMjZwcml2LVx1MDAzZXJ4X3VyYl93cSk7XG4gXHR9IGVsc2Uge1xuIFx0XHRza2IgPSAoc3RydWN0IHNrX2J1ZmYgKilyeF91cmItXHUwMDNldXJiLmNvbnRleHQ7XG4gXHRcdGRldl9rZnJlZV9za2JfaXJxKHNrYik7XG5AQCAtNTgwNyw5ICs1ODEyLDYgQEAgc3RhdGljIHZvaWQgcnRsOHh4eHVfcXVldWVfcnhfdXJiKHN0cnVjdCBydGw4eHh4dV9wcml2ICpwcml2LFxuIFx0fVxuIFxuIFx0c3Bpbl91bmxvY2tfaXJxcmVzdG9yZShcdTAwMjZwcml2LVx1MDAzZXJ4X3VyYl9sb2NrLCBmbGFncyk7XG4tXG4tXHRpZiAocGVuZGluZyBcdTAwM2UgUlRMOFhYWFVfUlhfVVJCX1BFTkRJTkdfV0FURVIpXG4tXHRcdHNjaGVkdWxlX3dvcmsoXHUwMDI2cHJpdi1cdTAwM2VyeF91cmJfd3EpO1xuIH1cbiBcbiBzdGF0aWMgdm9pZCBydGw4eHh4dV9yeF91cmJfd29yayhzdHJ1Y3Qgd29ya19zdHJ1Y3QgKndvcmspXG5AQCAtNzQ2MSw2ICs3NDYzLDEzIEBAIHN0YXRpYyB2b2lkIHJ0bDh4eHh1X3N0b3Aoc3RydWN0IGllZWU4MDIxMV9odyAqaHcsIGJvb2wgc3VzcGVuZClcbiBcdHByaXYtXHUwMDNlc2h1dGRvd24gPSB0cnVlO1xuIFx0c3Bpbl91bmxvY2tfaXJxcmVzdG9yZShcdTAwMjZwcml2LVx1MDAzZXJ4X3VyYl9sb2NrLCBmbGFncyk7XG4gXG4rXHQvKlxuK1x0ICogQ2FuY2VsIGJlZm9yZSBraWxsaW5nIHJ4X2FuY2hvcjogdGhlIHdvcmtlciByZS1hbmNob3JzIGV2ZXJ5IFVSQlxuK1x0ICogaXQgZHJhaW5lZCB2aWEgcnRsOHh4eHVfc3VibWl0X3J4X3VyYigpLCBzbyBhIHdvcmtlciBzdGlsbCBydW5uaW5nXG4rXHQgKiBhZnRlciB0aGUga2lsbCBjb3VsZCBzdWJtaXQgYSBVUkIgdGhhdCBlc2NhcGVzIGl0LlxuK1x0ICovXG4rXHRjYW5jZWxfd29ya19zeW5jKFx1MDAyNnByaXYtXHUwMDNlcnhfdXJiX3dxKTtcbitcbiBcdHVzYl9raWxsX2FuY2hvcmVkX3VyYnMoXHUwMDI2cHJpdi1cdTAwM2VyeF9hbmNob3IpO1xuIFx0dXNiX2tpbGxfYW5jaG9yZWRfdXJicyhcdTAwMjZwcml2LVx1MDAzZXR4X2FuY2hvcik7XG4gXHRpZiAocHJpdi1cdTAwM2V1c2JfaW50ZXJydXB0cylcbiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA2LTMwVDA0OjM0OjA0LjcxMTAzMDAzMloiLCJTZXEiOjMsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjQ4NjI2Nzc1NDksIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqQW5hbHl6aW5nIGEgV2lyZWxlc3MgRHJpdmVyIFBhdGNoKipcblxuT2theSwgc28gSSdtIGxvb2tpbmcgYXQgdGhpcyBwYXRjaCBmb3IgYGRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvY29yZS5jYC4gVGhlIGNvcmUgY2hhbmdlIGlzIG1vdmluZyBgc2NoZWR1bGVfd29yayhcdTAwMjZwcml2LVx1MDAzZXJ4X3VyYl93cSk7YCBpbnNpZGUgdGhlIGBzcGluX2xvY2tfaXJxc2F2ZShcdTAwMjZwcml2LVx1MDAzZXJ4X3VyYl9sb2NrLCBmbGFncyk7YCBibG9jayB3aXRoaW4gdGhlIGBydGw4eHh4dV9xdWV1ZV9yeF91cmJgIGZ1bmN0aW9uLiBJdCBhbHNvIGluY2x1ZGVzIGFkZGluZyBgY2FuY2VsX3dvcmtfc3luYyhcdTAwMjZwcml2LVx1MDAzZXJ4X3VyYl93cSk7YCB0byB0aGUgYHJ0bDh4eHh1X3N0b3BgIGZ1bmN0aW9uLiBGdW5jdGlvbmFsbHksIHRoaXMgaXMgYSBtb2RpZmljYXRpb24gdG8gYSB3aXJlbGVzcyBkcml2ZXIsIHNwZWNpZmljYWxseSBmb3IgdGhlIFJlYWx0ZWsgUlRMOHh4eFUsIHdoaWNoLCBhcyBJIHJlY2FsbCwgaXMgYSBVU0ItYmFzZWQgd2lyZWxlc3MgY2hpcHNldC5cblxuTXkgaW5pdGlhbCB0aG91Z2h0IGlzIHRvIGFzc2VzcyB0aGUgcG90ZW50aWFsIGltcGFjdCBvZiB0aGlzIGNoYW5nZS4gV2lyZWxlc3MgZHJpdmVycyBhcmUgb2Z0ZW4gcHJpbWUgdGFyZ2V0cyBmb3IgZnV6emluZywgYW5kIEkgc3RhcnQgdGhpbmtpbmcgYWJvdXQgZmFtaWxpYXIgdG9vbHMgbGlrZSBgbWFjODAyMTFfaHdzaW1gLiBIb3dldmVyLCB0aGlzIGlzIGEgVVNCIGRyaXZlciwgd2hpY2ggbWFrZXMgbWUgcGF1c2UuIENhbiB3ZSBlZmZlY3RpdmVseSBmdXp6IFVTQiBkcml2ZXJzPyBXYWl0Li4uIHllcywgd2UgY2FuLiBEdW1teSBIQ0QgYW5kIHN5emthbGxlcidzIFVTQiBmdXp6aW5nIGNhcGFiaWxpdGllcyBzaG91bGQgYmUgYWJsZSB0byBjb3ZlciB0aGlzLCBtZWFuaW5nIHdlIGhhdmUgdG8gY29uc2lkZXIgd2hldGhlciB0aGlzIGRyaXZlciBpcyBhbHJlYWR5IGFjdGl2ZWx5IGZ1enplZC5cblxuTm93IEkgbmVlZCB0byB1bmRlcnN0YW5kIHRoZSBjdXJyZW50IGZ1enppbmcgc3RhdHVzLiBJJ2xsIG5lZWQgdG8gY2hlY2sgdGhlIGNvbmZpZ3VyYXRpb24gdG8gc2VlIGlmIGBSVEw4WFhYVWAgaXMgZXZlbiBlbmFibGVkIGZvciBmdXp6aW5nLlxuXG5cbiIsIklucHV0VG9rZW5zIjoyMzg4LCJPdXRwdXRUb2tlbnMiOjM5LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MjE0LCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDYtMzBUMDQ6MzQ6MDkuNTczNzExNTUyWiIsIlNlcSI6NCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjQ0MDIwMjYzNywiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJSVEw4WFhYVVwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJkcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1L1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJcXG5GdWxsIG91dHB1dCBpcyB0b28gbG9uZywgc2hvd2luZyA1MDAgb3V0IG9mIDkxOSBsaW5lcy5cXG5Vc2UgbW9yZSBwcmVjaXNlIGV4cHJlc3Npb24gaWYgcG9zc2libGUuXFxuXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTg4ZS5jLTItLypcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxODhlLmM6MzogKiBSVEw4WFhYVSBtYWM4MDIxMSBVU0IgZHJpdmVyIC0gODE4OGUgc3BlY2lmaWMgc3ViZHJpdmVyXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTg4ZS5jLTQtICpcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE4OGUuYz03NTA9c3RhdGljIHZvaWQgcnRsODE4OGV1X3BoeV9pcWNhbGlicmF0ZShzdHJ1Y3QgcnRsOHh4eHVfcHJpdiAqcHJpdixcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE4OGUuYy03NTYtXFx0aW50IHJldHJ5ID0gMjtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxODhlLmM6NzU3OlxcdHN0YXRpYyBjb25zdCB1MzIgYWRkYV9yZWdzW1JUTDhYWFhVX0FEREFfUkVHU10gPSB7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTg4ZS5jLTc1OC1cXHRcXHRSRUdfRlBHQTBfWENEX1NXSVRDSF9DVFJMLCBSRUdfQkxVRVRPT1RILFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTg4ZS5jLTc2Ni1cXHR9O1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE4OGUuYzo3Njc6XFx0c3RhdGljIGNvbnN0IHUzMiBpcWtfbWFjX3JlZ3NbUlRMOFhYWFVfTUFDX1JFR1NdID0ge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE4OGUuYy03NjgtXFx0XFx0UkVHX1RYUEFVU0UsIFJFR19CRUFDT05fQ1RSTCxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE4OGUuYy03NzAtXFx0fTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxODhlLmM6NzcxOlxcdHN0YXRpYyBjb25zdCB1MzIgaXFrX2JiX3JlZ3NbUlRMOFhYWFVfQkJfUkVHU10gPSB7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTg4ZS5jLTc3Mi1cXHRcXHRSRUdfT0ZETTBfVFJYX1BBVEhfRU5BQkxFLCBSRUdfT0ZETTBfVFJfTVVYX1BBUixcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE4OGUuYy03ODUtXFx0XFx0cnRsOHh4eHVfc2F2ZV9yZWdzKHByaXYsIGFkZGFfcmVncywgcHJpdi1cXHUwMDNlYWRkYV9iYWNrdXAsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTg4ZS5jOjc4NjpcXHRcXHRcXHRcXHQgICBSVEw4WFhYVV9BRERBX1JFR1MpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE4OGUuYy03ODctXFx0XFx0cnRsOHh4eHVfc2F2ZV9tYWNfcmVncyhwcml2LCBpcWtfbWFjX3JlZ3MsIHByaXYtXFx1MDAzZW1hY19iYWNrdXApO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE4OGUuYy03ODgtXFx0XFx0cnRsOHh4eHVfc2F2ZV9yZWdzKHByaXYsIGlxa19iYl9yZWdzLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE4OGUuYzo3ODk6XFx0XFx0XFx0XFx0ICAgcHJpdi1cXHUwMDNlYmJfYmFja3VwLCBSVEw4WFhYVV9CQl9SRUdTKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxODhlLmMtNzkwLVxcdH1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE4OGUuYy04ODgtXFx0cnRsOHh4eHVfcmVzdG9yZV9yZWdzKHByaXYsIGFkZGFfcmVncywgcHJpdi1cXHUwMDNlYWRkYV9iYWNrdXAsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTg4ZS5jOjg4OTpcXHRcXHRcXHQgICAgICBSVEw4WFhYVV9BRERBX1JFR1MpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE4OGUuYy04OTAtXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxODhlLmMtODk1LVxcdHJ0bDh4eHh1X3Jlc3RvcmVfcmVncyhwcml2LCBpcWtfYmJfcmVncyxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxODhlLmM6ODk2OlxcdFxcdFxcdCAgICAgIHByaXYtXFx1MDAzZWJiX2JhY2t1cCwgUlRMOFhYWFVfQkJfUkVHUyk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTg4ZS5jLTg5Ny1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE4OGUuYz05MDY9c3RhdGljIHZvaWQgcnRsODE4OGV1X3BoeV9pcV9jYWxpYnJhdGUoc3RydWN0IHJ0bDh4eHh1X3ByaXYgKnByaXYpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxODhlLmMtOTg5LVxcdHJ0bDh4eHh1X3NhdmVfcmVncyhwcml2LCBydGw4eHh4dV9pcWtfcGh5X2lxX2JiX3JlZyxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxODhlLmM6OTkwOlxcdFxcdFxcdCAgIHByaXYtXFx1MDAzZWJiX3JlY292ZXJ5X2JhY2t1cCwgUlRMOFhYWFVfQkJfUkVHUyk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTg4ZS5jLTk5MS19XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxODhlLmM9MTAwMj1zdGF0aWMgaW50IHJ0bDgxODhlX2VtdV90b19hY3RpdmUoc3RydWN0IHJ0bDh4eHh1X3ByaXYgKnByaXYpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxODhlLmMtMTAwOS1cXHQvKiB3YWl0IHRpbGwgMHgwNFsxN10gPSAxIHBvd2VyIHJlYWR5Ki9cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxODhlLmM6MTAxMDpcXHRmb3IgKGNvdW50ID0gUlRMOFhYWFVfTUFYX1JFR19QT0xMOyBjb3VudDsgY291bnQtLSkge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE4OGUuYy0xMDExLVxcdFxcdHZhbDMyID0gcnRsOHh4eHVfcmVhZDMyKHByaXYsIFJFR19BUFNfRlNNQ08pO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTg4ZS5jLTEwNDctXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTg4ZS5jOjEwNDg6XFx0Zm9yIChjb3VudCA9IFJUTDhYWFhVX01BWF9SRUdfUE9MTDsgY291bnQ7IGNvdW50LS0pIHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxODhlLmMtMTA0OS1cXHRcXHR2YWwzMiA9IHJ0bDh4eHh1X3JlYWQzMihwcml2LCBSRUdfQVBTX0ZTTUNPKTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE4OGUuYz0xMzM0PXN0YXRpYyBpbnQgcnRsODE4OGV1X2xlZF9icmlnaHRuZXNzX3NldChzdHJ1Y3QgbGVkX2NsYXNzZGV2ICpsZWRfY2RldixcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE4OGUuYy0xMzQ3LVxcdFxcdGxlZGNmZyB8PSBMRURDRkcyX1NXX0xFRF9DT05UUk9MO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE4OGUuYzoxMzQ4OlxcdH0gZWxzZSBpZiAoYnJpZ2h0bmVzcyA9PSBSVEw4WFhYVV9IV19MRURfQ09OVFJPTCkge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE4OGUuYy0xMzQ5LVxcdFxcdGxlZGNmZyBcXHUwMDI2PSB+TEVEQ0ZHMl9TV19MRURfRElTQUJMRTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE4OGYuYy0yLS8qXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTg4Zi5jOjM6ICogUlRMOFhYWFUgbWFjODAyMTEgVVNCIGRyaXZlciAtIDgxODhmIHNwZWNpZmljIHN1YmRyaXZlclxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE4OGYuYy00LSAqXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxODhmLmM9MTA2MT1zdGF0aWMgdm9pZCBydGw4MTg4ZnVfcGh5X2lxY2FsaWJyYXRlKHN0cnVjdCBydGw4eHh4dV9wcml2ICpwcml2LFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTg4Zi5jLTEwNjgtXFx0aW50IHJldHJ5ID0gMjtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxODhmLmM6MTA2OTpcXHRzdGF0aWMgY29uc3QgdTMyIGFkZGFfcmVnc1tSVEw4WFhYVV9BRERBX1JFR1NdID0ge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE4OGYuYy0xMDcwLVxcdFxcdFJFR19GUEdBMF9YQ0RfU1dJVENIX0NUUkwsIFJFR19CTFVFVE9PVEgsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxODhmLmMtMTA3OC1cXHR9O1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE4OGYuYzoxMDc5OlxcdHN0YXRpYyBjb25zdCB1MzIgaXFrX21hY19yZWdzW1JUTDhYWFhVX01BQ19SRUdTXSA9IHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxODhmLmMtMTA4MC1cXHRcXHRSRUdfVFhQQVVTRSwgUkVHX0JFQUNPTl9DVFJMLFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTg4Zi5jLTEwODItXFx0fTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxODhmLmM6MTA4MzpcXHRzdGF0aWMgY29uc3QgdTMyIGlxa19iYl9yZWdzW1JUTDhYWFhVX0JCX1JFR1NdID0ge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE4OGYuYy0xMDg0LVxcdFxcdFJFR19PRkRNMF9UUlhfUEFUSF9FTkFCTEUsIFJFR19PRkRNMF9UUl9NVVhfUEFSLFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTg4Zi5jLTEwOTktXFx0XFx0cnRsOHh4eHVfc2F2ZV9yZWdzKHByaXYsIGFkZGFfcmVncywgcHJpdi1cXHUwMDNlYWRkYV9iYWNrdXAsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTg4Zi5jOjExMDA6XFx0XFx0XFx0XFx0ICAgUlRMOFhYWFVfQUREQV9SRUdTKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxODhmLmMtMTEwMS1cXHRcXHRydGw4eHh4dV9zYXZlX21hY19yZWdzKHByaXYsIGlxa19tYWNfcmVncywgcHJpdi1cXHUwMDNlbWFjX2JhY2t1cCk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTg4Zi5jLTExMDItXFx0XFx0cnRsOHh4eHVfc2F2ZV9yZWdzKHByaXYsIGlxa19iYl9yZWdzLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE4OGYuYzoxMTAzOlxcdFxcdFxcdFxcdCAgIHByaXYtXFx1MDAzZWJiX2JhY2t1cCwgUlRMOFhYWFVfQkJfUkVHUyk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTg4Zi5jLTExMDQtXFx0fVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTg4Zi5jLTExODktXFx0cnRsOHh4eHVfcmVzdG9yZV9yZWdzKHByaXYsIGFkZGFfcmVncywgcHJpdi1cXHUwMDNlYWRkYV9iYWNrdXAsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTg4Zi5jOjExOTA6XFx0XFx0XFx0ICAgICAgUlRMOFhYWFVfQUREQV9SRUdTKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxODhmLmMtMTE5MS1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE4OGYuYy0xMTk2LVxcdHJ0bDh4eHh1X3Jlc3RvcmVfcmVncyhwcml2LCBpcWtfYmJfcmVncyxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxODhmLmM6MTE5NzpcXHRcXHRcXHQgICAgICBwcml2LVxcdTAwM2ViYl9iYWNrdXAsIFJUTDhYWFhVX0JCX1JFR1MpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE4OGYuYy0xMTk4LVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTg4Zi5jPTEyMTg9c3RhdGljIHZvaWQgcnRsODE4OGZ1X3BoeV9pcV9jYWxpYnJhdGUoc3RydWN0IHJ0bDh4eHh1X3ByaXYgKnByaXYpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxODhmLmMtMTMxMS1cXHRydGw4eHh4dV9zYXZlX3JlZ3MocHJpdiwgcnRsOHh4eHVfaXFrX3BoeV9pcV9iYl9yZWcsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTg4Zi5jOjEzMTI6XFx0XFx0XFx0ICAgcHJpdi1cXHUwMDNlYmJfcmVjb3ZlcnlfYmFja3VwLCBSVEw4WFhYVV9CQl9SRUdTKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxODhmLmMtMTMxMy1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE4OGYuYz0xMzMzPXN0YXRpYyBpbnQgcnRsODE4OGZfZW11X3RvX2FjdGl2ZShzdHJ1Y3QgcnRsOHh4eHVfcHJpdiAqcHJpdilcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE4OGYuYy0xMzQ0LVxcdC8qIHdhaXQgdGlsbCAweDA0WzE3XSA9IDEgcG93ZXIgcmVhZHkgKi9cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxODhmLmM6MTM0NTpcXHRmb3IgKGNvdW50ID0gUlRMOFhYWFVfTUFYX1JFR19QT0xMOyBjb3VudDsgY291bnQtLSkge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE4OGYuYy0xMzQ2LVxcdFxcdHZhbDMyID0gcnRsOHh4eHVfcmVhZDMyKHByaXYsIFJFR19BUFNfRlNNQ08pO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTg4Zi5jLTEzNzItXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTg4Zi5jOjEzNzM6XFx0Zm9yIChjb3VudCA9IFJUTDhYWFhVX01BWF9SRUdfUE9MTDsgY291bnQ7IGNvdW50LS0pIHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxODhmLmMtMTM3NC1cXHRcXHR2YWwzMiA9IHJ0bDh4eHh1X3JlYWQzMihwcml2LCBSRUdfQVBTX0ZTTUNPKTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE4OGYuYz0xMzkzPXN0YXRpYyBpbnQgcnRsODE4OGZ1X2FjdGl2ZV90b19lbXUoc3RydWN0IHJ0bDh4eHh1X3ByaXYgKnByaXYpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxODhmLmMtMTQxNC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxODhmLmM6MTQxNTpcXHRmb3IgKGNvdW50ID0gUlRMOFhYWFVfTUFYX1JFR19QT0xMOyBjb3VudDsgY291bnQtLSkge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE4OGYuYy0xNDE2LVxcdFxcdHZhbDMyID0gcnRsOHh4eHVfcmVhZDMyKHByaXYsIFJFR19BUFNfRlNNQ08pO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTkyYy5jLTItLypcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxOTJjLmM6MzogKiBSVEw4WFhYVSBtYWM4MDIxMSBVU0IgZHJpdmVyIC0gODE4OGMvODE4OHIvODE5MmMgc3BlY2lmaWMgc3ViZHJpdmVyXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTkyYy5jLTQtICpcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE5MmMuYy0xOC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxOTJjLmM6MTk6I2lmZGVmIENPTkZJR19SVEw4WFhYVV9VTlRFU1RFRFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE5MmMuYy0yMC1zdGF0aWMgc3RydWN0IHJ0bDh4eHh1X3Bvd2VyX2Jhc2UgcnRsODE5MmNfcG93ZXJfYmFzZSA9IHtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE5MmMuYz02NzQ9c3RhdGljIGludCBydGw4MTkyY3VfbGVkX2JyaWdodG5lc3Nfc2V0KHN0cnVjdCBsZWRfY2xhc3NkZXYgKmxlZF9jZGV2LFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTkyYy5jLTY4NS1cXHRcXHRsZWRjZmcgPSBMRURDRkcyX1NXX0xFRF9DT05UUk9MO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE5MmMuYzo2ODY6XFx0ZWxzZSBpZiAoYnJpZ2h0bmVzcyA9PSBSVEw4WFhYVV9IV19MRURfQ09OVFJPTClcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxOTJjLmMtNjg3LVxcdFxcdGxlZGNmZyA9IExFRENGRzJfSFdfTEVEX0NPTlRST0wgfCBMRURDRkcyX0hXX0xFRF9FTkFCTEU7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxOTJlLmMtMi0vKlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE5MmUuYzozOiAqIFJUTDhYWFhVIG1hYzgwMjExIFVTQiBkcml2ZXIgLSA4MTkyZSBzcGVjaWZpYyBzdWJkcml2ZXJcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxOTJlLmMtNC0gKlxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTkyZS5jPTEwNTA9c3RhdGljIHZvaWQgcnRsODE5MmV1X3BoeV9pcWNhbGlicmF0ZShzdHJ1Y3QgcnRsOHh4eHVfcHJpdiAqcHJpdixcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE5MmUuYy0xMDU2LVxcdGludCByZXRyeSA9IDI7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTkyZS5jOjEwNTc6XFx0c3RhdGljIGNvbnN0IHUzMiBhZGRhX3JlZ3NbUlRMOFhYWFVfQUREQV9SRUdTXSA9IHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxOTJlLmMtMTA1OC1cXHRcXHRSRUdfRlBHQTBfWENEX1NXSVRDSF9DVFJMLCBSRUdfQkxVRVRPT1RILFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTkyZS5jLTEwNjYtXFx0fTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxOTJlLmM6MTA2NzpcXHRzdGF0aWMgY29uc3QgdTMyIGlxa19tYWNfcmVnc1tSVEw4WFhYVV9NQUNfUkVHU10gPSB7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTkyZS5jLTEwNjgtXFx0XFx0UkVHX1RYUEFVU0UsIFJFR19CRUFDT05fQ1RSTCxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE5MmUuYy0xMDcwLVxcdH07XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTkyZS5jOjEwNzE6XFx0c3RhdGljIGNvbnN0IHUzMiBpcWtfYmJfcmVnc1tSVEw4WFhYVV9CQl9SRUdTXSA9IHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxOTJlLmMtMTA3Mi1cXHRcXHRSRUdfT0ZETTBfVFJYX1BBVEhfRU5BQkxFLCBSRUdfT0ZETTBfVFJfTVVYX1BBUixcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE5MmUuYy0xMDg3LVxcdFxcdHJ0bDh4eHh1X3NhdmVfcmVncyhwcml2LCBhZGRhX3JlZ3MsIHByaXYtXFx1MDAzZWFkZGFfYmFja3VwLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE5MmUuYzoxMDg4OlxcdFxcdFxcdFxcdCAgIFJUTDhYWFhVX0FEREFfUkVHUyk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTkyZS5jLTEwODktXFx0XFx0cnRsOHh4eHVfc2F2ZV9tYWNfcmVncyhwcml2LCBpcWtfbWFjX3JlZ3MsIHByaXYtXFx1MDAzZW1hY19iYWNrdXApO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE5MmUuYy0xMDkwLVxcdFxcdHJ0bDh4eHh1X3NhdmVfcmVncyhwcml2LCBpcWtfYmJfcmVncyxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxOTJlLmM6MTA5MTpcXHRcXHRcXHRcXHQgICBwcml2LVxcdTAwM2ViYl9iYWNrdXAsIFJUTDhYWFhVX0JCX1JFR1MpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE5MmUuYy0xMDkyLVxcdH1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE5MmUuYy0xMjA1LVxcdFxcdHJ0bDh4eHh1X3Jlc3RvcmVfcmVncyhwcml2LCBhZGRhX3JlZ3MsIHByaXYtXFx1MDAzZWFkZGFfYmFja3VwLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE5MmUuYzoxMjA2OlxcdFxcdFxcdFxcdCAgICAgIFJUTDhYWFhVX0FEREFfUkVHUyk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTkyZS5jLTEyMDctXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxOTJlLmMtMTIxMi1cXHRcXHRydGw4eHh4dV9yZXN0b3JlX3JlZ3MocHJpdiwgaXFrX2JiX3JlZ3MsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTkyZS5jOjEyMTM6XFx0XFx0XFx0XFx0ICAgICAgcHJpdi1cXHUwMDNlYmJfYmFja3VwLCBSVEw4WFhYVV9CQl9SRUdTKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxOTJlLmMtMTIxNC1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE5MmUuYz0xMjM2PXN0YXRpYyB2b2lkIHJ0bDgxOTJldV9waHlfaXFfY2FsaWJyYXRlKHN0cnVjdCBydGw4eHh4dV9wcml2ICpwcml2KVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTkyZS5jLTEzMjMtXFx0cnRsOHh4eHVfc2F2ZV9yZWdzKHByaXYsIHJ0bDh4eHh1X2lxa19waHlfaXFfYmJfcmVnLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE5MmUuYzoxMzI0OlxcdFxcdFxcdCAgIHByaXYtXFx1MDAzZWJiX3JlY292ZXJ5X2JhY2t1cCwgUlRMOFhYWFVfQkJfUkVHUyk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTkyZS5jLTEzMjUtfVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTkyZS5jPTEzNzI9c3RhdGljIGludCBydGw4MTkyZV9lbXVfdG9fYWN0aXZlKHN0cnVjdCBydGw4eHh4dV9wcml2ICpwcml2KVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTkyZS5jLTEzOTMtXFx0Lyogd2FpdCB0aWxsIDB4MDRbMTddID0gMSBwb3dlciByZWFkeSovXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTkyZS5jOjEzOTQ6XFx0Zm9yIChjb3VudCA9IFJUTDhYWFhVX01BWF9SRUdfUE9MTDsgY291bnQ7IGNvdW50LS0pIHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxOTJlLmMtMTM5NS1cXHRcXHR2YWwzMiA9IHJ0bDh4eHh1X3JlYWQzMihwcml2LCBSRUdfQVBTX0ZTTUNPKTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE5MmUuYy0xNDE4LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE5MmUuYzoxNDE5OlxcdGZvciAoY291bnQgPSBSVEw4WFhYVV9NQVhfUkVHX1BPTEw7IGNvdW50OyBjb3VudC0tKSB7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTkyZS5jLTE0MjAtXFx0XFx0dmFsMzIgPSBydGw4eHh4dV9yZWFkMzIocHJpdiwgUkVHX0FQU19GU01DTyk7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxOTJlLmM9MTQ5Nj1zdGF0aWMgaW50IHJ0bDgxOTJldV9hY3RpdmVfdG9fZW11KHN0cnVjdCBydGw4eHh4dV9wcml2ICpwcml2KVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTkyZS5jLTE1MTUtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTkyZS5jOjE1MTY6XFx0Zm9yIChjb3VudCA9IFJUTDhYWFhVX01BWF9SRUdfUE9MTDsgY291bnQ7IGNvdW50LS0pIHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxOTJlLmMtMTUxNy1cXHRcXHR2YWw4ID0gcnRsOHh4eHVfcmVhZDgocHJpdiwgUkVHX0FQU19GU01DTyArIDEpO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTkyZS5jPTE2OTg9c3RhdGljIGludCBydGw4MTkyZXVfbGVkX2JyaWdodG5lc3Nfc2V0KHN0cnVjdCBsZWRfY2xhc3NkZXYgKmxlZF9jZGV2LFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTkyZS5jLTE3MTAtXFx0XFx0bGVkY2ZnIFxcdTAwMjY9IH4oTEVEQ0ZHMV9IV19MRURfQ09OVFJPTCB8IExFRENGRzFfTEVEX0RJU0FCTEUpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE5MmUuYzoxNzExOlxcdH0gZWxzZSBpZiAoYnJpZ2h0bmVzcyA9PSBSVEw4WFhYVV9IV19MRURfQ09OVFJPTCkge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE5MmUuYy0xNzEyLVxcdFxcdGxlZGNmZyBcXHUwMDI2PSB+TEVEQ0ZHMV9MRURfRElTQUJMRTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE5MmYuYy0yLS8qXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTkyZi5jOjM6ICogUlRMOFhYWFUgbWFjODAyMTEgVVNCIGRyaXZlciAtIDgxOTJmdSBzcGVjaWZpYyBzdWJkcml2ZXJcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxOTJmLmMtNC0gKlxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTkyZi5jPTEyNTU9c3RhdGljIHZvaWQgcnRsODE5MmZ1X3BoeV9pcWNhbGlicmF0ZShzdHJ1Y3QgcnRsOHh4eHVfcHJpdiAqcHJpdixcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE5MmYuYy0xMjYwLVxcdH07XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTkyZi5jOjEyNjE6XFx0c3RhdGljIGNvbnN0IHUzMiBpcWtfbWFjX3JlZ3NbUlRMOFhYWFVfTUFDX1JFR1NdID0ge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE5MmYuYy0xMjYyLVxcdFxcdFJFR19UWFBBVVNFLCBSRUdfQkVBQ09OX0NUUkwsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxOTJmLmMtMTI2NC1cXHR9O1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE5MmYuYzoxMjY1OlxcdHN0YXRpYyBjb25zdCB1MzIgaXFrX2JiX3JlZ3NbUlRMOFhYWFVfQkJfUkVHU10gPSB7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTkyZi5jLTEyNjYtXFx0XFx0UkVHX09GRE0wX1RSWF9QQVRIX0VOQUJMRSwgUkVHX09GRE0wX1RSX01VWF9QQVIsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxOTJmLmMtMTI5My1cXHRcXHRydGw4eHh4dV9zYXZlX3JlZ3MocHJpdiwgaXFrX2JiX3JlZ3MsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTkyZi5jOjEyOTQ6XFx0XFx0XFx0XFx0ICAgcHJpdi1cXHUwMDNlYmJfYmFja3VwLCBSVEw4WFhYVV9CQl9SRUdTKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxOTJmLmMtMTI5NS1cXHR9XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxOTJmLmMtMTQyNS1cXHQvKiBSZWxvYWQgQkIgcGFyYW1ldGVycyAqL1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE5MmYuYzoxNDI2OlxcdHJ0bDh4eHh1X3Jlc3RvcmVfcmVncyhwcml2LCBpcWtfYmJfcmVncywgcHJpdi1cXHUwMDNlYmJfYmFja3VwLCBSVEw4WFhYVV9CQl9SRUdTKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxOTJmLmMtMTQyNy1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE5MmYuYz0xNjAyPXN0YXRpYyBpbnQgcnRsODE5MmZ1X2VtdV90b19hY3RpdmUoc3RydWN0IHJ0bDh4eHh1X3ByaXYgKnByaXYpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxOTJmLmMtMTYyMi1cXHQvKiB3YWl0IHRpbGwgMHgwNFsxN10gPSAxIHBvd2VyIHJlYWR5ICovXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTkyZi5jOjE2MjM6XFx0Zm9yIChjb3VudCA9IFJUTDhYWFhVX01BWF9SRUdfUE9MTDsgY291bnQ7IGNvdW50LS0pIHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxOTJmLmMtMTYyNC1cXHRcXHR2YWwzMiA9IHJ0bDh4eHh1X3JlYWQzMihwcml2LCBSRUdfQVBTX0ZTTUNPKTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE5MmYuYy0xNjM1LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE5MmYuYzoxNjM2OlxcdGZvciAoY291bnQgPSBSVEw4WFhYVV9NQVhfUkVHX1BPTEw7IGNvdW50OyBjb3VudC0tKSB7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTkyZi5jLTE2MzctXFx0XFx0dmFsMzIgPSBydGw4eHh4dV9yZWFkMzIocHJpdiwgUkVHX0FQU19GU01DTyk7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxOTJmLmMtMTY1OS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxOTJmLmM6MTY2MDpcXHRmb3IgKGNvdW50ID0gUlRMOFhYWFVfTUFYX1JFR19QT0xMOyBjb3VudDsgY291bnQtLSkge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE5MmYuYy0xNjYxLVxcdFxcdHZhbDMyID0gcnRsOHh4eHVfcmVhZDMyKHByaXYsIFJFR19BUFNfRlNNQ08pO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTkyZi5jPTE3Mjg9c3RhdGljIGludCBydGw4MTkyZnVfYWN0aXZlX3RvX2VtdShzdHJ1Y3QgcnRsOHh4eHVfcHJpdiAqcHJpdilcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE5MmYuYy0xNzQ0LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE5MmYuYzoxNzQ1OlxcdGZvciAoY291bnQgPSBSVEw4WFhYVV9NQVhfUkVHX1BPTEw7IGNvdW50OyBjb3VudC0tKSB7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTkyZi5jLTE3NDYtXFx0XFx0dmFsMzIgPSBydGw4eHh4dV9yZWFkMzIocHJpdiwgUkVHX0FQU19GU01DTyk7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxOTJmLmM9MTk5NT1zdGF0aWMgaW50IHJ0bDgxOTJmdV9sZWRfYnJpZ2h0bmVzc19zZXQoc3RydWN0IGxlZF9jbGFzc2RldiAqbGVkX2NkZXYsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxOTJmLmMtMjAyNC1cXHRcXHR1MzJwX3JlcGxhY2VfYml0cyhcXHUwMDI2bGVkY2ZnLCBMRURfU1dfT04sIExFRENGRzBfTEVEMVNWKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxOTJmLmM6MjAyNTpcXHR9IGVsc2UgaWYgKGJyaWdodG5lc3MgPT0gUlRMOFhYWFVfSFdfTEVEX0NPTlRST0wpIHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxOTJmLmMtMjAyNi1cXHRcXHR1MzJwX3JlcGxhY2VfYml0cyhcXHUwMDI2bGVkY2ZnLCBMRURfTU9ERV9UWF9PUl9SWF9FVkVOVFMsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1Lzg3MTBiLmMtMi0vKlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODcxMGIuYzozOiAqIFJUTDhYWFhVIG1hYzgwMjExIFVTQiBkcml2ZXIgLSA4NzEwYnUgYWthIDgxODhndSBzcGVjaWZpYyBzdWJkcml2ZXJcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1Lzg3MTBiLmMtNC0gKlxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84NzEwYi5jPTQ2Mz1zdGF0aWMgdTMyIHJ0bDg3MTBiX2luZGlyZWN0X3JlYWQzMihzdHJ1Y3QgcnRsOHh4eHVfcHJpdiAqcHJpdiwgdTMyIGFkZHIpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1Lzg3MTBiLmMtNDkxLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODcxMGIuYzo0OTI6XFx0aWYgKHJ0bDh4eHh1X2RlYnVnIFxcdTAwMjYgUlRMOFhYWFVfREVCVUdfUkVHX1JFQUQpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84NzEwYi5jLTQ5My1cXHRcXHRkZXZfaW5mbyhkZXYsIFxcXCIlcyglMDR4KSA9IDB4JTA4eFxcXFxuXFxcIiwgX19mdW5jX18sIGFkZHIsIHZhbHVlKTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODcxMGIuYz00OTg9c3RhdGljIHZvaWQgcnRsODcxMGJfaW5kaXJlY3Rfd3JpdGUzMihzdHJ1Y3QgcnRsOHh4eHVfcHJpdiAqcHJpdiwgdTMyIGFkZHIsIHUzMiB2YWwpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1Lzg3MTBiLmMtNTI1LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODcxMGIuYzo1MjY6XFx0aWYgKHJ0bDh4eHh1X2RlYnVnIFxcdTAwMjYgUlRMOFhYWFVfREVCVUdfUkVHX1dSSVRFKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODcxMGIuYy01MjctXFx0XFx0ZGV2X2luZm8oZGV2LCBcXFwiJXMoJTA0eCkgPSAweCUwOHhcXFxcblxcXCIsIF9fZnVuY19fLCBhZGRyLCB2YWwpO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84NzEwYi5jPTU0MD1zdGF0aWMgaW50IHJ0bDg3MTBiX3JlYWRfZWZ1c2U4KHN0cnVjdCBydGw4eHh4dV9wcml2ICpwcml2LCB1MTYgb2Zmc2V0LCB1OCAqZGF0YSlcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODcxMGIuYy01NTEtXFx0dmFsMzIgPSBydGw4eHh4dV9yZWFkMzIocHJpdiwgUkVHX0VGVVNFX0lORElSRUNUX0NUUkxfODcxMEIpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODcxMGIuYzo1NTI6XFx0Zm9yIChpID0gMDsgaSBcXHUwMDNjIFJUTDhYWFhVX01BWF9SRUdfUE9MTDsgaSsrKSB7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84NzEwYi5jLTU1My1cXHRcXHR2YWwzMiA9IHJ0bDh4eHh1X3JlYWQzMihwcml2LCBSRUdfRUZVU0VfSU5ESVJFQ1RfQ1RSTF84NzEwQik7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1Lzg3MTBiLmMtNTU3LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODcxMGIuYzo1NTg6XFx0aWYgKGkgPT0gUlRMOFhYWFVfTUFYX1JFR19QT0xMKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODcxMGIuYy01NTktXFx0XFx0cmV0dXJuIC1FSU87XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1Lzg3MTBiLmM9MTI1ND1zdGF0aWMgdm9pZCBydGw4NzEwYnVfcGh5X2lxY2FsaWJyYXRlKHN0cnVjdCBydGw4eHh4dV9wcml2ICpwcml2LFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84NzEwYi5jLTEyNjEtXFx0aW50IHJldHJ5ID0gMjtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1Lzg3MTBiLmM6MTI2MjpcXHRzdGF0aWMgY29uc3QgdTMyIGFkZGFfcmVnc1tSVEw4WFhYVV9BRERBX1JFR1NdID0ge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODcxMGIuYy0xMjYzLVxcdFxcdFJFR19GUEdBMF9YQ0RfU1dJVENIX0NUUkwsIFJFR19CTFVFVE9PVEgsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1Lzg3MTBiLmMtMTI3MS1cXHR9O1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODcxMGIuYzoxMjcyOlxcdHN0YXRpYyBjb25zdCB1MzIgaXFrX21hY19yZWdzW1JUTDhYWFhVX01BQ19SRUdTXSA9IHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1Lzg3MTBiLmMtMTI3My1cXHRcXHRSRUdfVFhQQVVTRSwgUkVHX0JFQUNPTl9DVFJMLFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84NzEwYi5jLTEyNzUtXFx0fTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1Lzg3MTBiLmM6MTI3NjpcXHRzdGF0aWMgY29uc3QgdTMyIGlxa19iYl9yZWdzW1JUTDhYWFhVX0JCX1JFR1NdID0ge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODcxMGIuYy0xMjc3LVxcdFxcdFJFR19PRkRNMF9UUlhfUEFUSF9FTkFCTEUsIFJFR19PRkRNMF9UUl9NVVhfUEFSLFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84NzEwYi5jLTEyOTItXFx0XFx0cnRsOHh4eHVfc2F2ZV9yZWdzKHByaXYsIGFkZGFfcmVncywgcHJpdi1cXHUwMDNlYWRkYV9iYWNrdXAsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84NzEwYi5jOjEyOTM6XFx0XFx0XFx0XFx0ICAgUlRMOFhYWFVfQUREQV9SRUdTKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1Lzg3MTBiLmMtMTI5NC1cXHRcXHRydGw4eHh4dV9zYXZlX21hY19yZWdzKHByaXYsIGlxa19tYWNfcmVncywgcHJpdi1cXHUwMDNlbWFjX2JhY2t1cCk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84NzEwYi5jLTEyOTUtXFx0XFx0cnRsOHh4eHVfc2F2ZV9yZWdzKHByaXYsIGlxa19iYl9yZWdzLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODcxMGIuYzoxMjk2OlxcdFxcdFxcdFxcdCAgIHByaXYtXFx1MDAzZWJiX2JhY2t1cCwgUlRMOFhYWFVfQkJfUkVHUyk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84NzEwYi5jLTEyOTctXFx0fVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84NzEwYi5jLTEzODAtXFx0LyogUmVsb2FkIEFEREEgcG93ZXIgc2F2aW5nIHBhcmFtZXRlcnMgKi9cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1Lzg3MTBiLmM6MTM4MTpcXHRydGw4eHh4dV9yZXN0b3JlX3JlZ3MocHJpdiwgYWRkYV9yZWdzLCBwcml2LVxcdTAwM2VhZGRhX2JhY2t1cCwgUlRMOFhYWFVfQUREQV9SRUdTKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1Lzg3MTBiLmMtMTM4Mi1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODcxMGIuYy0xMzg2LVxcdC8qIFJlbG9hZCBCQiBwYXJhbWV0ZXJzICovXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84NzEwYi5jOjEzODc6XFx0cnRsOHh4eHVfcmVzdG9yZV9yZWdzKHByaXYsIGlxa19iYl9yZWdzLCBwcml2LVxcdTAwM2ViYl9iYWNrdXAsIFJUTDhYWFhVX0JCX1JFR1MpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODcxMGIuYy0xMzg4LVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84NzEwYi5jPTE0MDY9c3RhdGljIHZvaWQgcnRsODcxMGJ1X3BoeV9pcV9jYWxpYnJhdGUoc3RydWN0IHJ0bDh4eHh1X3ByaXYgKnByaXYpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1Lzg3MTBiLmMtMTQ3NS1cXHRydGw4eHh4dV9zYXZlX3JlZ3MocHJpdiwgcnRsOHh4eHVfaXFrX3BoeV9pcV9iYl9yZWcsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84NzEwYi5jOjE0NzY6XFx0XFx0XFx0ICAgcHJpdi1cXHUwMDNlYmJfcmVjb3ZlcnlfYmFja3VwLCBSVEw4WFhYVV9CQl9SRUdTKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1Lzg3MTBiLmMtMTQ3Ny1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODcxMGIuYz0xNDgxPXN0YXRpYyBpbnQgcnRsODcxMGJfZW11X3RvX2FjdGl2ZShzdHJ1Y3QgcnRsOHh4eHVfcHJpdiAqcHJpdilcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODcxMGIuYy0xNTAwLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODcxMGIuYzoxNTAxOlxcdGZvciAoY291bnQgPSBSVEw4WFhYVV9NQVhfUkVHX1BPTEw7IGNvdW50OyBjb3VudC0tKSB7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84NzEwYi5jLTE1MDItXFx0XFx0dmFsOCA9IHJ0bDh4eHh1X3JlYWQ4KHByaXYsIDB4MjApO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84NzEwYi5jPTE1MTU9c3RhdGljIGludCBydGw4NzEwYnVfYWN0aXZlX3RvX2VtdShzdHJ1Y3QgcnRsOHh4eHVfcHJpdiAqcHJpdilcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODcxMGIuYy0xNTM1LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODcxMGIuYzoxNTM2OlxcdGZvciAoY291bnQgPSBSVEw4WFhYVV9NQVhfUkVHX1BPTEw7IGNvdW50OyBjb3VudC0tKSB7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84NzEwYi5jLTE1MzctXFx0XFx0dmFsOCA9IHJ0bDh4eHh1X3JlYWQ4KHByaXYsIDB4MjApO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84NzIzYS5jLTItLypcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1Lzg3MjNhLmM6MzogKiBSVEw4WFhYVSBtYWM4MDIxMSBVU0IgZHJpdmVyIC0gODcyM2Egc3BlY2lmaWMgc3ViZHJpdmVyXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84NzIzYS5jLTQtICpcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODcyM2EuYz0yNzY9c3RhdGljIGludCBydGw4NzIzYV9lbXVfdG9fYWN0aXZlKHN0cnVjdCBydGw4eHh4dV9wcml2ICpwcml2KVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84NzIzYS5jLTMwNC1cXHQvKiB3YWl0IHRpbGwgMHgwNFsxN10gPSAxIHBvd2VyIHJlYWR5Ki9cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1Lzg3MjNhLmM6MzA1OlxcdGZvciAoY291bnQgPSBSVEw4WFhYVV9NQVhfUkVHX1BPTEw7IGNvdW50OyBjb3VudC0tKSB7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84NzIzYS5jLTMwNi1cXHRcXHR2YWwzMiA9IHJ0bDh4eHh1X3JlYWQzMihwcml2LCBSRUdfQVBTX0ZTTUNPKTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODcyM2EuYy0zMzktXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84NzIzYS5jOjM0MDpcXHRmb3IgKGNvdW50ID0gUlRMOFhYWFVfTUFYX1JFR19QT0xMOyBjb3VudDsgY291bnQtLSkge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODcyM2EuYy0zNDEtXFx0XFx0dmFsMzIgPSBydGw4eHh4dV9yZWFkMzIocHJpdiwgUkVHX0FQU19GU01DTyk7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1Lzg3MjNhLmM9NDE0PXN0YXRpYyBpbnQgcnRsODcyM2F1X2FjdGl2ZV90b19lbXUoc3RydWN0IHJ0bDh4eHh1X3ByaXYgKnByaXYpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1Lzg3MjNhLmMtNDMzLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODcyM2EuYzo0MzQ6XFx0Zm9yIChjb3VudCA9IFJUTDhYWFhVX01BWF9SRUdfUE9MTDsgY291bnQ7IGNvdW50LS0pIHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1Lzg3MjNhLmMtNDM1LVxcdFxcdHZhbDggPSBydGw4eHh4dV9yZWFkOChwcml2LCBSRUdfQVBTX0ZTTUNPICsgMSk7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1Lzg3MjNhLmM9NTc5PXN0YXRpYyBpbnQgcnRsODcyM2F1X2xlZF9icmlnaHRuZXNzX3NldChzdHJ1Y3QgbGVkX2NsYXNzZGV2ICpsZWRfY2RldixcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODcyM2EuYy01OTItXFx0XFx0bGVkY2ZnIHw9IExFRENGRzJfU1dfTEVEX0NPTlRST0w7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84NzIzYS5jOjU5MzpcXHR9IGVsc2UgaWYgKGJyaWdodG5lc3MgPT0gUlRMOFhYWFVfSFdfTEVEX0NPTlRST0wpIHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1Lzg3MjNhLmMtNTk0LVxcdFxcdGxlZGNmZyBcXHUwMDI2PSB+TEVEQ0ZHMl9TV19MRURfRElTQUJMRTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODcyM2IuYy0yLS8qXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84NzIzYi5jOjM6ICogUlRMOFhYWFUgbWFjODAyMTEgVVNCIGRyaXZlciAtIDg3MjNiIHNwZWNpZmljIHN1YmRyaXZlclxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODcyM2IuYy00LSAqXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1Lzg3MjNiLmM9ODk0PXN0YXRpYyB2b2lkIHJ0bDg3MjNidV9waHlfaXFjYWxpYnJhdGUoc3RydWN0IHJ0bDh4eHh1X3ByaXYgKnByaXYsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1Lzg3MjNiLmMtOTAwLVxcdGludCByZXRyeSA9IDI7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84NzIzYi5jOjkwMTpcXHRzdGF0aWMgY29uc3QgdTMyIGFkZGFfcmVnc1tSVEw4WFhYVV9BRERBX1JFR1NdID0ge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODcyM2IuYy05MDItXFx0XFx0UkVHX0ZQR0EwX1hDRF9TV0lUQ0hfQ1RSTCwgUkVHX0JMVUVUT09USCxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODcyM2IuYy05MTAtXFx0fTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1Lzg3MjNiLmM6OTExOlxcdHN0YXRpYyBjb25zdCB1MzIgaXFrX21hY19yZWdzW1JUTDhYWFhVX01BQ19SRUdTXSA9IHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1Lzg3MjNiLmMtOTEyLVxcdFxcdFJFR19UWFBBVVNFLCBSRUdfQkVBQ09OX0NUUkwsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1Lzg3MjNiLmMtOTE0LVxcdH07XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84NzIzYi5jOjkxNTpcXHRzdGF0aWMgY29uc3QgdTMyIGlxa19iYl9yZWdzW1JUTDhYWFhVX0JCX1JFR1NdID0ge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODcyM2IuYy05MTYtXFx0XFx0UkVHX09GRE0wX1RSWF9QQVRIX0VOQUJMRSwgUkVHX09GRE0wX1RSX01VWF9QQVIsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1Lzg3MjNiLmMtOTMxLVxcdFxcdHJ0bDh4eHh1X3NhdmVfcmVncyhwcml2LCBhZGRhX3JlZ3MsIHByaXYtXFx1MDAzZWFkZGFfYmFja3VwLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODcyM2IuYzo5MzI6XFx0XFx0XFx0XFx0ICAgUlRMOFhYWFVfQUREQV9SRUdTKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1Lzg3MjNiLmMtOTMzLVxcdFxcdHJ0bDh4eHh1X3NhdmVfbWFjX3JlZ3MocHJpdiwgaXFrX21hY19yZWdzLCBwcml2LVxcdTAwM2VtYWNfYmFja3VwKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1Lzg3MjNiLmMtOTM0LVxcdFxcdHJ0bDh4eHh1X3NhdmVfcmVncyhwcml2LCBpcWtfYmJfcmVncyxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1Lzg3MjNiLmM6OTM1OlxcdFxcdFxcdFxcdCAgIHByaXYtXFx1MDAzZWJiX2JhY2t1cCwgUlRMOFhYWFVfQkJfUkVHUyk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84NzIzYi5jLTkzNi1cXHR9XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1Lzg3MjNiLmMtMTA3MS1cXHRcXHRydGw4eHh4dV9yZXN0b3JlX3JlZ3MocHJpdiwgYWRkYV9yZWdzLCBwcml2LVxcdTAwM2VhZGRhX2JhY2t1cCxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1Lzg3MjNiLmM6MTA3MjpcXHRcXHRcXHRcXHQgICAgICBSVEw4WFhYVV9BRERBX1JFR1MpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODcyM2IuYy0xMDczLVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84NzIzYi5jLTEwNzgtXFx0XFx0cnRsOHh4eHVfcmVzdG9yZV9yZWdzKHByaXYsIGlxa19iYl9yZWdzLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODcyM2IuYzoxMDc5OlxcdFxcdFxcdFxcdCAgICAgIHByaXYtXFx1MDAzZWJiX2JhY2t1cCwgUlRMOFhYWFVfQkJfUkVHUyk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84NzIzYi5jLTEwODAtXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1Lzg3MjNiLmM9MTEwMj1zdGF0aWMgdm9pZCBydGw4NzIzYnVfcGh5X2lxX2NhbGlicmF0ZShzdHJ1Y3QgcnRsOHh4eHVfcHJpdiAqcHJpdilcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODcyM2IuYy0xMjA0LVxcdHJ0bDh4eHh1X3NhdmVfcmVncyhwcml2LCBydGw4eHh4dV9pcWtfcGh5X2lxX2JiX3JlZyxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1Lzg3MjNiLmM6MTIwNTpcXHRcXHRcXHQgICBwcml2LVxcdTAwM2ViYl9yZWNvdmVyeV9iYWNrdXAsIFJUTDhYWFhVX0JCX1JFR1MpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODcyM2IuYy0xMjA2LVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84NzIzYi5jPTEyMjY9c3RhdGljIGludCBydGw4NzIzYnVfYWN0aXZlX3RvX2VtdShzdHJ1Y3QgcnRsOHh4eHVfcHJpdiAqcHJpdilcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODcyM2IuYy0xMjUwLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODcyM2IuYzoxMjUxOlxcdGZvciAoY291bnQgPSBSVEw4WFhYVV9NQVhfUkVHX1BPTEw7IGNvdW50OyBjb3VudC0tKSB7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84NzIzYi5jLTEyNTItXFx0XFx0dmFsOCA9IHJ0bDh4eHh1X3JlYWQ4KHByaXYsIFJFR19BUFNfRlNNQ08gKyAxKTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODcyM2IuYz0xMjg0PXN0YXRpYyBpbnQgcnRsODcyM2JfZW11X3RvX2FjdGl2ZShzdHJ1Y3QgcnRsOHh4eHVfcHJpdiAqcHJpdilcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODcyM2IuYy0xMzEyLVxcdC8qIFdhaXQgdW50aWwgMHgwNFsxN10gPSAxIHBvd2VyIHJlYWR5ICovXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84NzIzYi5jOjEzMTM6XFx0Zm9yIChjb3VudCA9IFJUTDhYWFhVX01BWF9SRUdfUE9MTDsgY291bnQ7IGNvdW50LS0pIHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1Lzg3MjNiLmMtMTMxNC1cXHRcXHR2YWwzMiA9IHJ0bDh4eHh1X3JlYWQzMihwcml2LCBSRUdfQVBTX0ZTTUNPKTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODcyM2IuYy0xMzQ3LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODcyM2IuYzoxMzQ4OlxcdGZvciAoY291bnQgPSBSVEw4WFhYVV9NQVhfUkVHX1BPTEw7IGNvdW50OyBjb3VudC0tKSB7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84NzIzYi5jLTEzNDktXFx0XFx0dmFsMzIgPSBydGw4eHh4dV9yZWFkMzIocHJpdiwgUkVHX0FQU19GU01DTyk7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1Lzg3MjNiLmM9MTY4OD1zdGF0aWMgaW50IHJ0bDg3MjNidV9sZWRfYnJpZ2h0bmVzc19zZXQoc3RydWN0IGxlZF9jbGFzc2RldiAqbGVkX2NkZXYsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1Lzg3MjNiLmMtMTcwMS1cXHRcXHRsZWRjZmcgfD0gTEVEQ0ZHMl9TV19MRURfQ09OVFJPTDtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1Lzg3MjNiLmM6MTcwMjpcXHRlbHNlIGlmIChicmlnaHRuZXNzID09IFJUTDhYWFhVX0hXX0xFRF9DT05UUk9MKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODcyM2IuYy0xNzAzLVxcdFxcdGxlZGNmZyB8PSBMRURDRkcyX0hXX0xFRF9DT05UUk9MIHwgTEVEQ0ZHMl9IV19MRURfRU5BQkxFO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS9LY29uZmlnLTItI1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvS2NvbmZpZzozOiMgUlRMOFhYWFUgV2lyZWxlc3MgTEFOIGRldmljZSBjb25maWd1cmF0aW9uXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS9LY29uZmlnLTQtI1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvS2NvbmZpZzo1OmNvbmZpZyBSVEw4WFhYVVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvS2NvbmZpZy02LVxcdHRyaXN0YXRlIFxcXCJSZWFsdGVrIDgwMi4xMW4gVVNCIHdpcmVsZXNzIGNoaXBzIHN1cHBvcnRcXFwiXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1L0tjb25maWctMjgtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS9LY29uZmlnOjI5OmNvbmZpZyBSVEw4WFhYVV9VTlRFU1RFRFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvS2NvbmZpZy0zMC1cXHRib29sIFxcXCJJbmNsdWRlIHN1cHBvcnQgZm9yIHVudGVzdGVkIFJlYWx0ZWsgOHh4eCBVU0IgZGV2aWNlcyAoRVhQRVJJTUVOVEFMKVxcXCJcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1L0tjb25maWc6MzE6XFx0ZGVwZW5kcyBvbiBSVEw4WFhYVVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvS2NvbmZpZy0zMi1cXHRoZWxwXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1L01ha2VmaWxlLTEtIyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMC1vbmx5XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS9NYWtlZmlsZToyOm9iai0kKENPTkZJR19SVEw4WFhYVSlcXHQrPSBydGw4eHh4dS5vXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS9NYWtlZmlsZS0zLVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS9jb3JlLmMtMi0vKlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvY29yZS5jOjM6ICogUlRMOFhYWFUgbWFjODAyMTEgVVNCIGRyaXZlclxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvY29yZS5jLTQtICpcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvY29yZS5jPTUyPU1PRFVMRV9QQVJNX0RFU0MoZG1hX2FnZ19wYWdlcywgXFxcIlNldCBETUEgYWdncmVnYXRpb24gcGFnZXMgKHJhbmdlIDEtMTI3LCAwIHRvIGRpc2FibGUpXFxcIik7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1L2NvcmUuYy01NC0jZGVmaW5lIFVTQl9WRU5ET1JfSURfUkVBTFRFS1xcdFxcdDB4MGJkYVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvY29yZS5jOjU1OiNkZWZpbmUgUlRMOFhYWFVfUlhfVVJCU1xcdFxcdDMyXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS9jb3JlLmM6NTY6I2RlZmluZSBSVEw4WFhYVV9SWF9VUkJfUEVORElOR19XQVRFUlxcdDhcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1L2NvcmUuYzo1NzojZGVmaW5lIFJUTDhYWFhVX1RYX1VSQlNcXHRcXHQ2NFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvY29yZS5jOjU4OiNkZWZpbmUgUlRMOFhYWFVfVFhfVVJCX0xPV19XQVRFUlxcdDI1XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS9jb3JlLmM6NTk6I2RlZmluZSBSVEw4WFhYVV9UWF9VUkJfSElHSF9XQVRFUlxcdDMyXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS9jb3JlLmMtNjAtXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1L2NvcmUuYz01ODA9c3RhdGljIGNvbnN0IHN0cnVjdCBydGw4eHh4dV9yZnJlZ3MgcnRsOHh4eHVfcmZyZWdzW10gPSB7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1L2NvcmUuYy01OTgtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS9jb3JlLmM6NTk5OmNvbnN0IHUzMiBydGw4eHh4dV9pcWtfcGh5X2lxX2JiX3JlZ1tSVEw4WFhYVV9CQl9SRUdTXSA9IHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1L2NvcmUuYy02MDAtXFx0UkVHX09GRE0wX1hBX1JYX0lRX0lNQkFMQU5DRSxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvY29yZS5jPTYxMT11OCBydGw4eHh4dV9yZWFkOChzdHJ1Y3QgcnRsOHh4eHVfcHJpdiAqcHJpdiwgdTE2IGFkZHIpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1L2NvcmUuYy02MjctXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS9jb3JlLmM6NjI4OlxcdGlmIChydGw4eHh4dV9kZWJ1ZyBcXHUwMDI2IFJUTDhYWFhVX0RFQlVHX1JFR19SRUFEKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvY29yZS5jLTYyOS1cXHRcXHRkZXZfaW5mbyhcXHUwMDI2dWRldi1cXHUwMDNlZGV2LCBcXFwiJXMoJTA0eCkgICA9IDB4JTAyeCwgbGVuICVpXFxcXG5cXFwiLFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS9jb3JlLmM9NjM0PXUxNiBydGw4eHh4dV9yZWFkMTYoc3RydWN0IHJ0bDh4eHh1X3ByaXYgKnByaXYsIHUxNiBhZGRyKVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS9jb3JlLmMtNjUwLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvY29yZS5jOjY1MTpcXHRpZiAocnRsOHh4eHVfZGVidWcgXFx1MDAyNiBSVEw4WFhYVV9ERUJVR19SRUdfUkVBRClcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1L2NvcmUuYy02NTItXFx0XFx0ZGV2X2luZm8oXFx1MDAyNnVkZXYtXFx1MDAzZWRldiwgXFxcIiVzKCUwNHgpICA9IDB4JTA0eCwgbGVuICVpXFxcXG5cXFwiLFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS9jb3JlLmM9NjU3PXUzMiBydGw4eHh4dV9yZWFkMzIoc3RydWN0IHJ0bDh4eHh1X3ByaXYgKnByaXYsIHUxNiBhZGRyKVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS9jb3JlLmMtNjczLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvY29yZS5jOjY3NDpcXHRpZiAocnRsOHh4eHVfZGVidWcgXFx1MDAyNiBSVEw4WFhYVV9ERUJVR19SRUdfUkVBRClcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1L2NvcmUuYy02NzUtXFx0XFx0ZGV2X2luZm8oXFx1MDAyNnVkZXYtXFx1MDAzZWRldiwgXFxcIiVzKCUwNHgpICA9IDB4JTA4eCwgbGVuICVpXFxcXG5cXFwiLFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS9jb3JlLmM9NjgwPWludCBydGw4eHh4dV93cml0ZTgoc3RydWN0IHJ0bDh4eHh1X3ByaXYgKnByaXYsIHUxNiBhZGRyLCB1OCB2YWwpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1L2NvcmUuYy02OTYtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS9jb3JlLmM6Njk3OlxcdGlmIChydGw4eHh4dV9kZWJ1ZyBcXHUwMDI2IFJUTDhYWFhVX0RFQlVHX1JFR19XUklURSlcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1L2NvcmUuYy02OTgtXFx0XFx0ZGV2X2luZm8oXFx1MDAyNnVkZXYtXFx1MDAzZWRldiwgXFxcIiVzKCUwNHgpID0gMHglMDJ4XFxcXG5cXFwiLFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS9jb3JlLmM9NzAzPWludCBydGw4eHh4dV93cml0ZTE2KHN0cnVjdCBydGw4eHh4dV9wcml2ICpwcml2LCB1MTYgYWRkciwgdTE2IHZhbClcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvY29yZS5jLTcxOC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1L2NvcmUuYzo3MTk6XFx0aWYgKHJ0bDh4eHh1X2RlYnVnIFxcdTAwMjYgUlRMOFhYWFVfREVCVUdfUkVHX1dSSVRFKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvY29yZS5jLTcyMC1cXHRcXHRkZXZfaW5mbyhcXHUwMDI2dWRldi1cXHUwMDNlZGV2LCBcXFwiJXMoJTA0eCkgPSAweCUwNHhcXFxcblxcXCIsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1L2NvcmUuYz03MjU9aW50IHJ0bDh4eHh1X3dyaXRlMzIoc3RydWN0IHJ0bDh4eHh1X3ByaXYgKnByaXYsIHUxNiBhZGRyLCB1MzIgdmFsKVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS9jb3JlLmMtNzQwLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvY29yZS5jOjc0MTpcXHRpZiAocnRsOHh4eHVfZGVidWcgXFx1MDAyNiBSVEw4WFhYVV9ERUJVR19SRUdfV1JJVEUpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS9jb3JlLmMtNzQyLVxcdFxcdGRldl9pbmZvKFxcdTAwMjZ1ZGV2LVxcdTAwM2VkZXYsIFxcXCIlcyglMDR4KSA9IDB4JTA4eFxcXFxuXFxcIixcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvY29yZS5jPTgyNz1ydGw4eHh4dV93cml0ZU4oc3RydWN0IHJ0bDh4eHh1X3ByaXYgKnByaXYsIHUxNiBhZGRyLCB1OCAqYnVmLCB1MTYgbGVuKVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS9jb3JlLmMtODU5LXdyaXRlX2Vycm9yOlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvY29yZS5jOjg2MDpcXHRpZiAocnRsOHh4eHVfZGVidWcgXFx1MDAyNiBSVEw4WFhYVV9ERUJVR19SRUdfV1JJVEUpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS9jb3JlLmMtODYxLVxcdFxcdGRldl9pbmZvKFxcdTAwMjZ1ZGV2LVxcdTAwM2VkZXYsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1L2NvcmUuYz04Njc9dTMyIHJ0bDh4eHh1X3JlYWRfcmZyZWcoc3RydWN0IHJ0bDh4eHh1X3ByaXYgKnByaXYsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1L2NvcmUuYy05MDAtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS9jb3JlLmM6OTAxOlxcdGlmIChydGw4eHh4dV9kZWJ1ZyBcXHUwMDI2IFJUTDhYWFhVX0RFQlVHX1JGUkVHX1JFQUQpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS9jb3JlLmMtOTAyLVxcdFxcdGRldl9pbmZvKFxcdTAwMjZwcml2LVxcdTAwM2V1ZGV2LVxcdTAwM2VkZXYsIFxcXCIlcyglMDJ4KSA9IDB4JTA2eFxcXFxuXFxcIixcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvY29yZS5jPTkxMj1pbnQgcnRsOHh4eHVfd3JpdGVfcmZyZWcoc3RydWN0IHJ0bDh4eHh1X3ByaXYgKnByaXYsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1L2NvcmUuYy05MTctXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS9jb3JlLmM6OTE4OlxcdGlmIChydGw4eHh4dV9kZWJ1ZyBcXHUwMDI2IFJUTDhYWFhVX0RFQlVHX1JGUkVHX1dSSVRFKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvY29yZS5jLTkxOS1cXHRcXHRkZXZfaW5mbyhcXHUwMDI2cHJpdi1cXHUwMDNldWRldi1cXHUwMDNlZGV2LCBcXFwiJXMoJTAyeCkgPSAweCUwNnhcXFxcblxcXCIsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1L2NvcmUuYz05NTA9cnRsOHh4eHVfZ2VuMV9oMmNfY21kKHN0cnVjdCBydGw4eHh4dV9wcml2ICpwcml2LCBzdHJ1Y3QgaDJjX2NtZCAqaDJjLCBpbnQgbGVuKVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS9jb3JlLmMtOTgzLVxcdFxcdHJ0bDh4eHh1X3dyaXRlMTYocHJpdiwgbWJveF9leHRfcmVnLCBsZTE2X3RvX2NwdShoMmMtXFx1MDAzZXJhdy5leHQpKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1L2NvcmUuYzo5ODQ6XFx0XFx0aWYgKHJ0bDh4eHh1X2RlYnVnIFxcdTAwMjYgUlRMOFhYWFVfREVCVUdfSDJDKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvY29yZS5jLTk4NS1cXHRcXHRcXHRkZXZfaW5mbyhkZXYsIFxcXCJIMkNfRVhUICUwNHhcXFxcblxcXCIsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1L2NvcmUuYy05ODgtXFx0cnRsOHh4eHVfd3JpdGUzMihwcml2LCBtYm94X3JlZywgbGUzMl90b19jcHUoaDJjLVxcdTAwM2VyYXcuZGF0YSkpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvY29yZS5jOjk4OTpcXHRpZiAocnRsOHh4eHVfZGVidWcgXFx1MDAyNiBSVEw4WFhYVV9ERUJVR19IMkMpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS9jb3JlLmMtOTkwLVxcdFxcdGRldl9pbmZvKGRldiwgXFxcIkgyQyAlMDh4XFxcXG5cXFwiLCBsZTMyX3RvX2NwdShoMmMtXFx1MDAzZXJhdy5kYXRhKSk7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1L2NvcmUuYz0xMDAwPXJ0bDh4eHh1X2dlbjJfaDJjX2NtZChzdHJ1Y3QgcnRsOHh4eHVfcHJpdiAqcHJpdiwgc3RydWN0IGgyY19jbWQgKmgyYywgaW50IGxlbilcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvY29yZS5jLTEwMzQtXFx0XFx0XFx0XFx0IGxlMzJfdG9fY3B1KGgyYy1cXHUwMDNlcmF3X3dpZGUuZXh0KSk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS9jb3JlLmM6MTAzNTpcXHRcXHRpZiAocnRsOHh4eHVfZGVidWcgXFx1MDAyNiBSVEw4WFhYVV9ERUJVR19IMkMpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS9jb3JlLmMtMTAzNi1cXHRcXHRcXHRkZXZfaW5mbyhkZXYsIFxcXCJIMkNfRVhUICUwOHhcXFxcblxcXCIsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1L2NvcmUuYy0xMDM5LVxcdHJ0bDh4eHh1X3dyaXRlMzIocHJpdiwgbWJveF9yZWcsIGxlMzJfdG9fY3B1KGgyYy1cXHUwMDNlcmF3LmRhdGEpKTtcXG5cXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDYtMzBUMDQ6MzQ6MTAuMDEzOTI0NTQ5WiIsIlNlcSI6NSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NTY0MTI2OTQ2NCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipBbmFseXppbmcgYSBGdW5jdGlvbmFsIENoYW5nZSBpbiB0aGUgUlRMOFhYWFUgRHJpdmVyKipcblxuT2theSwgc28gdGhlIGNvbmZpZyBpbiBxdWVzdGlvbiBoZXJlIGlzIGBDT05GSUdfUlRMOFhYWFVgLiBGaXJzdCB0aG91Z2h0OiBJIG5lZWQgdG8gcXVpY2tseSBjb25maXJtIGlmIHRoaXMgY29uZmlnIGlzIGV2ZW4gZW5hYmxlZCBpbiBzeXpib3QncyBlbnZpcm9ubWVudC4gQWhhLCB3YWl0IGEgc2Vjb25kLiBUaGUgZmFjdCB0aGF0IHN5emJvdCByZXBvcnRlZCB0aGUgcGF0Y2ggKm1lYW5zKiBpdCdzIGVuYWJsZWQsIHJpZ2h0PyBHb29kLlxuXG5Ob3csIHRoZSBwYXRjaCBpdHNlbGYuLi4gaXQncyBtb3ZpbmcgYHNjaGVkdWxlX3dvcmsoXHUwMDI2cHJpdi1cdTAwM2VyeF91cmJfd3EpO2AgaW5zaWRlIGEgbG9jayBhbmQgYWRkaW5nIGBjYW5jZWxfd29ya19zeW5jKFx1MDAyNnByaXYtXHUwMDNlcnhfdXJiX3dxKTtgIGluIGBydGw4eHh4dV9zdG9wYC4gVGhpcyBzbWVsbHMgbGlrZSBhIGZ1bmN0aW9uYWwgZml4IOKAkyBsaWtlbHkgYWRkcmVzc2luZyBhIHJhY2UgY29uZGl0aW9uIGJldHdlZW4gd29ya3F1ZXVlIHNjaGVkdWxpbmcgYW5kIGNhbmNlbGxhdGlvbi4gVGhpcyBpcyB0aGUgYHJ0bDh4eHh1YCBkcml2ZXIsIHNvIEkgbmVlZCB0byBhc3Nlc3Mgd2hldGhlciBmdXp6aW5nIGlzIHdhcnJhbnRlZC5cblxuR2l2ZW4gdGhhdCBpdOKAmXMgYSBmdW5jdGlvbmFsIGNoYW5nZSAqYW5kKiB0aGF0IHN5emJvdCBjbGVhcmx5IGNhcmVzIGFib3V0IHRoaXMgZHJpdmVyIChpdCdzIHRoZSBzb3VyY2Ugb2YgdGhpcyByZXBvcnQpLCB0aGUgYW5zd2VyIGlzIGEgcmVzb3VuZGluZyB5ZXMuIExldCdzIHNlZS4uLiB0aGUgYXV0aG9yIGlzIGxpc3RlZCBhcyBgc3l6LWNsdXN0ZXIgXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cdTAwM2VgLCB3aGljaCBpcyBhIHByZXR0eSBjbGVhciBpbmRpY2F0b3I6IFRoaXMgaXMgZWl0aGVyIGEgcmVwcm9kdWNlciBvciBhIGJ1ZyBmb3VuZCBieSBzeXpib3QgaXRzZWxmLlxuXG5UbyBkaWcgaW4sIEkgbmVlZCB0byBsb29rIGF0IHRoZSBzcGVjaWZpYyBmdW5jdGlvbnMgbW9kaWZpZWQuIE9rYXksIGBydGw4eHh4dV9xdWV1ZV9yeF91cmJgIGFuZCBgcnRsOHh4eHVfc3RvcGAuIExldCdzIHB1bGwgdXAgdGhvc2UgZnVuY3Rpb25zIGFuZCBzZWUgd2hhdCdzIGFjdHVhbGx5IGhhcHBlbmluZy5cblxuXG4iLCJJbnB1dFRva2VucyI6MTg3OTcsIk91dHB1dFRva2VucyI6NDQsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoyNTYsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDYtMzBUMDQ6MzQ6MTUuNjU1MTk4MjgzWiIsIlNlcSI6NiwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjIwMjk3NTQwMSwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJydGw4eHh4dV9xdWV1ZV9yeF91cmJcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS9cIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS9jb3JlLmM9NTc3Mz1zdGF0aWMgdm9pZCBydGw4eHh4dV9mcmVlX3J4X3Jlc291cmNlcyhzdHJ1Y3QgcnRsOHh4eHVfcHJpdiAqcHJpdilcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvY29yZS5jLTU3ODktXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS9jb3JlLmM6NTc5MDpzdGF0aWMgdm9pZCBydGw4eHh4dV9xdWV1ZV9yeF91cmIoc3RydWN0IHJ0bDh4eHh1X3ByaXYgKnByaXYsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS9jb3JlLmMtNTc5MS1cXHRcXHRcXHRcXHQgIHN0cnVjdCBydGw4eHh4dV9yeF91cmIgKnJ4X3VyYilcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvY29yZS5jPTU4MTc9c3RhdGljIHZvaWQgcnRsOHh4eHVfcnhfdXJiX3dvcmsoc3RydWN0IHdvcmtfc3RydWN0ICp3b3JrKVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS9jb3JlLmMtNTg0OC1cXHRcXHRjYXNlIC1FQUdBSU46XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS9jb3JlLmM6NTg0OTpcXHRcXHRcXHRydGw4eHh4dV9xdWV1ZV9yeF91cmIocHJpdiwgcnhfdXJiKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1L2NvcmUuYy01ODUwLVxcdFxcdFxcdGJyZWFrO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS9jb3JlLmM9NjUwMD1zdGF0aWMgdm9pZCBydGw4eHh4dV9yeF9jb21wbGV0ZShzdHJ1Y3QgdXJiICp1cmIpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1L2NvcmUuYy02NTE1LVxcdFxcdHJ4X3VyYi1cXHUwMDNldXJiLmNvbnRleHQgPSBOVUxMO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvY29yZS5jOjY1MTY6XFx0XFx0cnRsOHh4eHVfcXVldWVfcnhfdXJiKHByaXYsIHJ4X3VyYik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS9jb3JlLmMtNjUxNy1cXHR9IGVsc2Uge1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS9jb3JlLmM9NzM2Mz1zdGF0aWMgaW50IHJ0bDh4eHh1X3N0YXJ0KHN0cnVjdCBpZWVlODAyMTFfaHcgKmh3KVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS9jb3JlLmMtNzQyMy1cXHRcXHRcXHR9XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS9jb3JlLmM6NzQyNDpcXHRcXHRcXHRydGw4eHh4dV9xdWV1ZV9yeF91cmIocHJpdiwgcnhfdXJiKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1L2NvcmUuYy03NDI1LVxcdFxcdH1cXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDYtMzBUMDQ6MzQ6MTUuODU4MTgzNTAzWiIsIlNlcSI6NywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NzA2NTQwOTMxNiwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipBbmFseXppbmcgUG90ZW50aWFsIFJhY2UgQ29uZGl0aW9ucyBpbiB0aGUgUlRMOHh4eHUgRHJpdmVyKipcblxuT2theSwgc28gSSdtIGxvb2tpbmcgYXQgc29tZSBmdW5jdGlvbnMgd2l0aGluIHRoZSBgcnRsOHh4eHVgIGRyaXZlcjogYHJ0bDh4eHh1X3F1ZXVlX3J4X3VyYmAgYW5kIGBydGw4eHh4dV9zdG9wYC4gSSBjYW4gc2VlIHRoYXQgYHJ0bDh4eHh1X3F1ZXVlX3J4X3VyYmAgaXMgY2FsbGVkIGZyb20gYSBmZXcgcGxhY2VzOiBgcnRsOHh4eHVfcnhfY29tcGxldGVgICh3aGljaCBpcyB0aGUgVVJCIGNvbXBsZXRpb24gaGFuZGxlciwgaW1wb3J0YW50ISksIGBydGw4eHh4dV9yeF91cmJfd29ya2AsIGFuZCBhbHNvIGR1cmluZyBgcnRsOHh4eHVfc3RhcnRgLiBBbmQgYHJ0bDh4eHh1X3N0b3BgIGdldHMgY2FsbGVkIHdoZW4gdGhlIG5ldHdvcmsgaW50ZXJmYWNlIGlzIHNodXQgZG93biwgd2hpY2ggaXMgYSBrZXkgYXJlYSB0byBjb25zaWRlci5cblxuVGhpcyBsb29rcyBsaWtlIGEgZnVuY3Rpb25hbCBjaGFuZ2UsIG5vdGhpbmcgZ3JvdW5kYnJlYWtpbmcsIGJ1dCB0aGlzIGlzIGEgZ29vZCBwbGFjZSB0byBzdGFydCB0aGUgYW5hbHlzaXMuIFNvLCBsZXQncyB6b29tIGluIG9uIGBydGw4eHh4dV9xdWV1ZV9yeF91cmJgIGFuZCBgcnRsOHh4eHVfc3RvcGAuIEknbSBzdGFydGluZyB0byB0aGluayBhYm91dCBwb3RlbnRpYWwgcmFjZSBjb25kaXRpb25zLiBIbW0sIGBydGw4eHh4dV9xdWV1ZV9yeF91cmJgIGlzIGNhbGxlZCBmcm9tIHRoZSBVUkIgY29tcGxldGlvbiBoYW5kbGVyLi4uIHRoYXQgY291bGQgYmUgYSAqaG90IHBhdGgqLiBNZWFuaW5nIHRoaXMgbWlnaHQgYmUgZnJlcXVlbnRseSBoaXQsIHBvdGVudGlhbGx5IGEgcGVyZm9ybWFuY2UgYm90dGxlbmVjay5cblxuTGV0J3MgcXVpY2tseSBjaGVjayBpZiB0aGlzIGlzIHRoZSBjYXNlLiBgcnRsOHh4eHVfcXVldWVfcnhfdXJiYCBxdWV1ZXMgYW4gUlggVVJCLiBJbiBoaWdoIHRocm91Z2hwdXQsIGl0J3MgY2FsbGVkIGZvciAqZXZlcnkqIHBhY2tldCBvciBhIGJhdGNoIG9mIHBhY2tldHMuIFRoYXQgZGVmaW5pdGVseSBtYWtlcyBpdCBhIGhvdCBwYXRoLiBBbmQgaXMgYHJ0bDh4eHh1X3J4X2NvbXBsZXRlYCBhIGhvdCBwYXRoPyBZZXMsIG9mIGNvdXJzZS4gSXQncyB0aGUgUlggVVJCIGNvbXBsZXRpb24gaGFuZGxlciEgV2hhdCBhYm91dCBgcnRsOHh4eHVfc3RvcGA/IE5vLCB0aGF0IGlzIGNhbGxlZCBvbmx5IHdoZW4gdGhlIGludGVyZmFjZSBpcyBkb3duLCBzbyBub3QgYSBob3QgcGF0aC5cblxuQWxyaWdodCwgc28gaWYgSSB3YW50IHRvIGZ1enogdGhpcyBjb2RlIGFuZCBsb29rIGZvciBhIHJhY2UsIEkgdGhpbmsgdGhlIG1vc3QgaW50ZXJlc3RpbmcgYXJlYXMgd291bGQgYmUgYXJvdW5kIGBydGw4eHh4dV9zdG9wYC4uLiBhbmQgbWF5YmUgYHJ0bDh4eHh1X3N0YXJ0YCBvciBgcnRsOHh4eHVfcXVldWVfcnhfdXJiYC4gQWN0dWFsbHksIGBydGw4eHh4dV9zdG9wYCBzZWVtcyBsaWtlIHRoZSBiZXN0IG9uZSB0byBmb2N1cyBvbiBnaXZlbiB0aGF0IGl0cyBjYWxsZWQgd2hlbiB0aGUgbmV0d29yayBpcyBzdG9wcGVkLCB3aGljaCBjYW4gY2F1c2UgaW50ZXJlc3Rpbmcgc2l0dWF0aW9ucy4gVGltZSB0byBkaWcgaW50byBgcnRsOHh4eHVfc3RvcGAuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjIwMDI3LCJPdXRwdXRUb2tlbnMiOjQwLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MzMyLCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA2LTMwVDA0OjM0OjIyLjkyMzU5NzUxOVoiLCJTZXEiOjgsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo0NDY5MzgyNTYsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwicnRsOHh4eHVfc3RvcFwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJkcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1L1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJkcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1L2NvcmUuYz0xMDk0PXZvaWQgcnRsOHh4eHVfZ2VuMV9kaXNhYmxlX3JmKHN0cnVjdCBydGw4eHh4dV9wcml2ICpwcml2KVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS9jb3JlLmMtMTEzMi1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1L2NvcmUuYzoxMTMzOnN0YXRpYyB2b2lkIHJ0bDh4eHh1X3N0b3BfdHhfYmVhY29uKHN0cnVjdCBydGw4eHh4dV9wcml2ICpwcml2KVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvY29yZS5jLTExMzQte1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS9jb3JlLmM9NDg0Nz1ydGw4eHh4dV9ic3NfaW5mb19jaGFuZ2VkKHN0cnVjdCBpZWVlODAyMTFfaHcgKmh3LCBzdHJ1Y3QgaWVlZTgwMjExX3ZpZiAqdmlmLFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS9jb3JlLmMtNDkxMi1cXHRcXHRcXHRpZiAocnRsdmlmLVxcdTAwM2Vwb3J0X251bSA9PSAwKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvY29yZS5jOjQ5MTM6XFx0XFx0XFx0XFx0cnRsOHh4eHVfc3RvcF90eF9iZWFjb24ocHJpdik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS9jb3JlLmMtNDkxNC1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvY29yZS5jLTQ5NjctXFx0XFx0fSBlbHNlIHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1L2NvcmUuYzo0OTY4OlxcdFxcdFxcdHJ0bDh4eHh1X3N0b3BfdHhfYmVhY29uKHByaXYpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvY29yZS5jLTQ5NjktXFx0XFx0fVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS9jb3JlLmM9NTc5MD1zdGF0aWMgdm9pZCBydGw4eHh4dV9xdWV1ZV9yeF91cmIoc3RydWN0IHJ0bDh4eHh1X3ByaXYgKnByaXYsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1L2NvcmUuYy01ODAzLVxcdFxcdCAqIHNodXRkb3duIGNoZWNrOiBtb3ZpbmcgaXQgb3V0IG9mIHRoZSBsb2NrIHdvdWxkIGxldCBhXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS9jb3JlLmM6NTgwNDpcXHRcXHQgKiBjb21wbGV0aW9uIGFybSB0aGUgd29yayBhZnRlciBydGw4eHh4dV9zdG9wKCkgY2FuY2VsZWQgaXQuXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS9jb3JlLmMtNTgwNS1cXHRcXHQgKi9cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvY29yZS5jPTY2ODk9c3RhdGljIGludCBydGw4eHh4dV9hZGRfaW50ZXJmYWNlKHN0cnVjdCBpZWVlODAyMTFfaHcgKmh3LFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS9jb3JlLmMtNjcwNi1cXHRcXHRpZiAocG9ydF9udW0gPT0gMCkge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvY29yZS5jOjY3MDc6XFx0XFx0XFx0cnRsOHh4eHVfc3RvcF90eF9iZWFjb24ocHJpdik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS9jb3JlLmMtNjcwOC1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvY29yZS5jPTczNjM9c3RhdGljIGludCBydGw4eHh4dV9zdGFydChzdHJ1Y3QgaWVlZTgwMjExX2h3ICpodylcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvY29yZS5jLTc0NTEtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS9jb3JlLmM6NzQ1MjpzdGF0aWMgdm9pZCBydGw4eHh4dV9zdG9wKHN0cnVjdCBpZWVlODAyMTFfaHcgKmh3LCBib29sIHN1c3BlbmQpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS9jb3JlLmMtNzQ1My17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1L2NvcmUuYz03NTQ4PXN0YXRpYyBjb25zdCBzdHJ1Y3QgaWVlZTgwMjExX29wcyBydGw4eHh4dV9vcHMgPSB7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1L2NvcmUuYy03NTYzLVxcdC5zdGFydCA9IHJ0bDh4eHh1X3N0YXJ0LFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvY29yZS5jOjc1NjQ6XFx0LnN0b3AgPSBydGw4eHh4dV9zdG9wLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvY29yZS5jLTc1NjUtXFx0LnN3X3NjYW5fc3RhcnQgPSBydGw4eHh4dV9zd19zY2FuX3N0YXJ0LFxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNi0zMFQwNDozNDoyMy4zNzA1NDUxMzZaIiwiU2VxIjo5LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo2MDQzMzU0NDE1LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKk15IEFuYWx5c2lzIG9mIHRoZSBSVEw4eHh4dSBEcml2ZXIgQ29uZmlndXJhdGlvbioqXG5cbk9rYXksIGxldCdzIGJyZWFrIHRoaXMgZG93bi4gYHJ0bDh4eHh1X3N0b3BgIGlzIHRoZSBgbWFjODAyMTFgIHN0b3AgY2FsbGJhY2suIEkga25vdyB0aGlzIGlzbid0IGEgcGVyZm9ybWFuY2UtY3JpdGljYWwgZnVuY3Rpb24sIHNvIGl0cyBpbmNsdXNpb24gaW4gdGhlIGRlYnVnZ2luZyBzeW1ib2xzIGlzIHByb2JhYmx5IGZvciBjb21wbGV0ZW5lc3MgcmF0aGVyIHRoYW4gcGVyZm9ybWFuY2UgdHVuaW5nLiBJIG5lZWQgdG8ga2VlcCBhbiBleWUgb24gYHJ0bDh4eHh1X3F1ZXVlX3J4X3VyYmAgd2hpY2ggKmlzKiBhIGhvdCBwYXRoIGFuZCB3aGVyZSB0aGUgY3J1Y2lhbCBmaXggd2FzIGltcGxlbWVudGVkLiBHaXZlbiB0aGF0LCBJIHNob3VsZCBhYnNvbHV0ZWx5IGluY2x1ZGUgYHJ0bDh4eHh1X3N0b3BgIGluIEZvY3VzU3ltYm9scywganVzdCB0byBiZSB0aG9yb3VnaC4gSSdsbCBhbHNvIGFkZCBgcnRsOHh4eHVfcnhfdXJiX3dvcmtgLCB0aGUgd29ya3F1ZXVlIGZ1bmN0aW9uLCBhbmQgYHJ0bDh4eHh1X3N0YXJ0YCwgc2luY2UgaXQgaW5pdGlhbGl6ZXMgdGhlIHdvcmtxdWV1ZS4gVGhleSdyZSBhbGwgbGlrZWx5IGludGVyLXJlbGF0ZWQgaGVyZS5cblxuTm93LCBsZXQncyBnZXQgaW50byB0aGUgYnJvYWRlciBjb25maWd1cmF0aW9uLiBJIG5lZWQgdG8gbWFrZSBzdXJlIGBSVEw4WFhYVWAgaXRzZWxmIGhhcyBhbGwgaXRzIGRlcGVuZGVuY2llcyBzYXRpc2ZpZWQuIEl0IG9idmlvdXNseSBkZXBlbmRzIG9uIGBNQUM4MDIxMWAgYW5kIGBVU0JgLCB3aGljaCBzZWVtIHRvIGJlIGZpbmUuIEJ1dCwgaG9sZCBvbiBhIHNlY29uZC4uLiBzaW5jZSBgUlRMOFhYWFVgIGlzIHN1ZmZpY2llbnQsIHRoYXQncyBnb29kLlxuXG5SaWdodCwgc3l6Ym90IHVzZXMgYGR1bW15X2hjZGAgdG8gZnV6eiBVU0IgZHJpdmVycy4gSXMgdGhhdCBlbmFibGVkIGJ5IGRlZmF1bHQgaW4gc3l6Ym90PyBZZXMsIGl0IGlzISBHaXZlbiB0aGF0LCB0aGUgcmVxdWlyZWQgY29uZmlndXJhdGlvbnMgYXJlIHNpbXBseSBgUlRMOFhYWFVgLlxuXG5XYWl0LCB0aGUgcGF0Y2ggYWxzbyBtZW50aW9ucyBgUlRMOFhYWFVfVU5URVNURURgIGluIHRoZSBLY29uZmlnLiBJIGRvbid0IG5lZWQgdG8gZW5hYmxlIHRoYXQgdW5sZXNzIHRoZSBkZXZpY2UgaXMgc3BlY2lmaWNhbGx5IG1hcmtlZCBhcyB1bnRlc3RlZCwgc28gSSdsbCBuZWVkIHRvIGNoZWNrIHRoZSBLY29uZmlnIGRvY3VtZW50YXRpb24gZm9yIHRoYXQgdG8gYmUgc3VyZS5cblxuXG4iLCJJbnB1dFRva2VucyI6MjE5MDUsIk91dHB1dFRva2VucyI6NDMsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoyNzMsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDYtMzBUMDQ6MzQ6MjkuNDEzOTAzMzVaIiwiU2VxIjoxMCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjEyMTg4NzQ5OCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJSVEw4WFhYVV9VTlRFU1RFRFwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJkcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1L1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJkcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxOTJjLmMtMTgtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTkyYy5jOjE5OiNpZmRlZiBDT05GSUdfUlRMOFhYWFVfVU5URVNURURcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxOTJjLmMtMjAtc3RhdGljIHN0cnVjdCBydGw4eHh4dV9wb3dlcl9iYXNlIHJ0bDgxOTJjX3Bvd2VyX2Jhc2UgPSB7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1L0tjb25maWc9NT1jb25maWcgUlRMOFhYWFVcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvS2NvbmZpZy0yOC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1L0tjb25maWc6Mjk6Y29uZmlnIFJUTDhYWFhVX1VOVEVTVEVEXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS9LY29uZmlnLTMwLVxcdGJvb2wgXFxcIkluY2x1ZGUgc3VwcG9ydCBmb3IgdW50ZXN0ZWQgUmVhbHRlayA4eHh4IFVTQiBkZXZpY2VzIChFWFBFUklNRU5UQUwpXFxcIlxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS9jb3JlLmM9Nzk1MD1zdGF0aWMgY29uc3Qgc3RydWN0IHVzYl9kZXZpY2VfaWQgZGV2X3RhYmxlW10gPSB7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1L2NvcmUuYy04MDQxLVxcdC5kcml2ZXJfaW5mbyA9ICh1bnNpZ25lZCBsb25nKVxcdTAwMjZydGw4MTkyZnVfZm9wc30sXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS9jb3JlLmM6ODA0MjojaWZkZWYgQ09ORklHX1JUTDhYWFhVX1VOVEVTVEVEXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS9jb3JlLmMtODA0My0vKiBTdGlsbCBzdXBwb3J0ZWQgYnkgcnRsd2lmaSAqL1xcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNi0zMFQwNDozNDoyOS41MzU3OTgyNThaIiwiU2VxIjoxMSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NjM1NjA3MjgwNSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipNeSBBcHByb2FjaCB0byBBZGRyZXNzaW5nIHRoZSBydGw4eHh4dSBSYWNlIENvbmRpdGlvbioqXG5cbk9rYXksIHNvIHRoZSBnb2FsIGlzIHRvIHNhZmVseSBjb3ZlciBhIHdpZGUgcmFuZ2Ugb2YgZGV2aWNlcy4gSSdsbCBzdGFydCBieSBlbmFibGluZyBib3RoIGBSVEw4WFhYVWAgYW5kIGBSVEw4WFhYVV9VTlRFU1RFRGAuIFdhaXQgYSBtaW51dGUsIHRoYXQgYFJUTDhYWFhVX1VOVEVTVEVEYCBpcyBqdXN0IGEgYm9vbGVhbiwgc28gaXQncyBzaW1wbGUgdG8gaW5jbHVkZSBpdC4gRWFzeS5cblxuTm93LCBsZXQncyBtYWtlIHN1cmUgSSdtIG5vdCBtaXNzaW5nIGFueXRoaW5nIG9idmlvdXMuIFJpZ2h0LCBhIHF1aWNrIGNoZWNrIG9mIGV4aXN0aW5nIHN5emJvdCBjb25maWd1cmF0aW9ucy4gSXQgbG9va3MgbGlrZSBgTUFDODAyMTFgIGlzIGFscmVhZHkgZW5hYmxlZCwgYXMgaXMgYFVTQmAuIEdvb2QsIHdlIGFyZSBjb3ZlcmluZyB0aGUgYmFzZXMuXG5cbkkgbmVlZCB0byBmb2N1cyBteSBmdXp6aW5nIGVmZm9ydHMgb24gdGhlIGNyaXRpY2FsIGFyZWFzLCBzbyBJIG5lZWQgdG8gZm9jdXMgb24gdGhlc2Ugc3ltYm9sczogYHJ0bDh4eHh1X3N0b3BgIGFuZCBgcnRsOHh4eHVfcnhfdXJiX3dvcmtgLiBJJ2xsIHdhbnQgdG8gdGFyZ2V0IHRoZSByYWNlIGNvbmRpdGlvbiBiZXR3ZWVuIHRoZSBSWCBVUkIgY29tcGxldGlvbiBoYW5kbGVyIGFuZCB0aGUgZHJpdmVyJ3Mgc3RvcCByb3V0aW5lLiBUaGUgZml4IGl0c2VsZiBpbnZvbHZlcyBtb3Zpbmcgd29ya3F1ZXVlIHNjaGVkdWxpbmcgd2l0aGluIGEgc3BpbmxvY2sgYW5kIGFkZGluZyBgY2FuY2VsX3dvcmtfc3luY2AuIEkgbmVlZCB0byB2ZXJpZnkgdGhhdCB0aGlzIGNvcnJlY3RseSBwcmV2ZW50cyB0aGUgcmFjZSBhbmQgZG9lc24ndCBpbnRyb2R1Y2UgYW55IG5ldyBpc3N1ZXMuXG5cbkZ1enppbmcgdGhlIGRyaXZlcidzIGluaXRpYWxpemF0aW9uIGFuZCB0ZWFyZG93biByb3V0aW5lcyBzZWVtcyBsaWtlIHRoZSBtb3N0IGVmZmVjdGl2ZSB3YXkgdG8gc2hha2Ugb3V0IHNpbWlsYXIgaXNzdWVzLiBJJ2xsIHVzZSBlaXRoZXIgYGR1bW15X2hjZGAgb3IgYG1hYzgwMjExX2h3c2ltYCB0byBoZWxwIHdpdGggdGhhdC4gVGhhdCBzaG91bGQgZ2l2ZSBtZSBnb29kIGNvdmVyYWdlLlxuXG5Ob3csIGxldCBtZSBqdXN0IGZvcm1hdCB0aGUgb3V0cHV0IGFuZCBnZXQgb24gd2l0aCBpdC5cblxuXG4iLCJJbnB1dFRva2VucyI6MjI5NzUsIk91dHB1dFRva2VucyI6MTY2LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MjI4LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA2LTMwVDA0OjM0OjM1Ljg5MTg3NTgyM1oiLCJTZXEiOjEyLCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJzZXQtcmVzdWx0cyIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjIwNTM2NjE4MCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogW1xuICAgIFwiUlRMOFhYWFVcIixcbiAgICBcIlJUTDhYWFhVX1VOVEVTVEVEXCJcbiAgXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW1xuICAgIFwicnRsOHh4eHVfc3RvcFwiLFxuICAgIFwicnRsOHh4eHVfcnhfdXJiX3dvcmtcIlxuICBdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBmaXhlcyBhIHJhY2UgY29uZGl0aW9uIGJldHdlZW4gdGhlIFJYIFVSQiBjb21wbGV0aW9uIGhhbmRsZXIgYW5kIHRoZSBkcml2ZXIgc3RvcCByb3V0aW5lIGluIHRoZSBydGw4eHh4dSB3aXJlbGVzcyBkcml2ZXIuIEl0IG1vdmVzIHRoZSB3b3JrcXVldWUgc2NoZWR1bGluZyBpbnNpZGUgYSBzcGlubG9jayBhbmQgYWRkcyBhIGNhbmNlbF93b3JrX3N5bmMgY2FsbCB0byBlbnN1cmUgdGhlIHdvcmtxdWV1ZSBpcyBwcm9wZXJseSBjYW5jZWxsZWQgZHVyaW5nIHNodXRkb3duLiBGdXp6aW5nIHRoZSBkcml2ZXIgaW5pdGlhbGl6YXRpb24gYW5kIHRlYXJkb3duIHBhdGhzICh2aWEgZHVtbXlfaGNkIG9yIG1hYzgwMjExX2h3c2ltKSBjYW4gaGVscCB2ZXJpZnkgdGhpcyBmaXggYW5kIHVuY292ZXIgc2ltaWxhciByYWNlIGNvbmRpdGlvbnMuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IHRydWVcbn0iLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogW1xuICAgIFwiUlRMOFhYWFVcIixcbiAgICBcIlJUTDhYWFhVX1VOVEVTVEVEXCJcbiAgXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW1xuICAgIFwicnRsOHh4eHVfc3RvcFwiLFxuICAgIFwicnRsOHh4eHVfcnhfdXJiX3dvcmtcIlxuICBdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBmaXhlcyBhIHJhY2UgY29uZGl0aW9uIGJldHdlZW4gdGhlIFJYIFVSQiBjb21wbGV0aW9uIGhhbmRsZXIgYW5kIHRoZSBkcml2ZXIgc3RvcCByb3V0aW5lIGluIHRoZSBydGw4eHh4dSB3aXJlbGVzcyBkcml2ZXIuIEl0IG1vdmVzIHRoZSB3b3JrcXVldWUgc2NoZWR1bGluZyBpbnNpZGUgYSBzcGlubG9jayBhbmQgYWRkcyBhIGNhbmNlbF93b3JrX3N5bmMgY2FsbCB0byBlbnN1cmUgdGhlIHdvcmtxdWV1ZSBpcyBwcm9wZXJseSBjYW5jZWxsZWQgZHVyaW5nIHNodXRkb3duLiBGdXp6aW5nIHRoZSBkcml2ZXIgaW5pdGlhbGl6YXRpb24gYW5kIHRlYXJkb3duIHBhdGhzICh2aWEgZHVtbXlfaGNkIG9yIG1hYzgwMjExX2h3c2ltKSBjYW4gaGVscCB2ZXJpZnkgdGhpcyBmaXggYW5kIHVuY292ZXIgc2ltaWxhciByYWNlIGNvbmRpdGlvbnMuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IHRydWVcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfV07CgkJCWlmICghcmF3RGF0YSB8fCByYXdEYXRhLmxlbmd0aCA9PT0gMCkgcmV0dXJuOwoKCQkJZHJhd1N1bW1hcnlUYWJsZXMocmF3RGF0YSk7CgkJCWRyYXdEdXJhdGlvbkNoYXJ0KHJhd0RhdGEpOwoJCQlkcmF3VG9rZW5Db25zdW1wdGlvbkNoYXJ0KHJhd0RhdGEpOwoJCX0KCgkJZnVuY3Rpb24gZHJhd1N1bW1hcnlUYWJsZXMocmF3RGF0YSkgewoJCQljb25zdCBzdGF0cyA9IHsKCQkJCWxsbTogeyBjb3VudDogMCwgdG9rZW5zOiAwLCBkdXJhdGlvbjogMCB9LAoJCQkJdG9vbDogeyBjb3VudDogMCwgZHVyYXRpb246IDAgfQoJCQl9OwoKCQkJcmF3RGF0YS5mb3JFYWNoKHMgPT4gewoJCQkJY29uc3QgZHVyID0gcy5EdXJhdGlvbiAvIDEwMDAwMDAwMDA7IAoJCQkJaWYgKHMuVHlwZSA9PT0gImxsbSIpIHsKCQkJCQlzdGF0cy5sbG0uY291bnQrKzsKCQkJCQlzdGF0cy5sbG0udG9rZW5zICs9IChzLklucHV0VG9rZW5zICsgcy5PdXRwdXRUb2tlbnMgKyBzLk91dHB1dFRob3VnaHRzVG9rZW5zKTsKCQkJCQlzdGF0cy5sbG0uZHVyYXRpb24gKz0gZHVyOwoJCQkJfSBlbHNlIGlmIChzLlR5cGUgPT09ICJ0b29sIikgewoJCQkJCXN0YXRzLnRvb2wuY291bnQrKzsKCQkJCQlzdGF0cy50b29sLmR1cmF0aW9uICs9IGR1cjsKCQkJCX0KCQkJfSk7CgoJCQljb25zdCBhdmdMbG1EdXIgPSBzdGF0cy5sbG0uY291bnQgPiAwID8gKHN0YXRzLmxsbS5kdXJhdGlvbiAvIHN0YXRzLmxsbS5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgkJCWNvbnN0IGF2Z0xsbVRva2VuID0gc3RhdHMubGxtLmNvdW50ID4gMCA/IChzdGF0cy5sbG0udG9rZW5zIC8gc3RhdHMubGxtLmNvdW50KS50b0ZpeGVkKDIpIDogMDsKCQkJY29uc3QgYXZnVG9vbER1ciA9IHN0YXRzLnRvb2wuY291bnQgPiAwID8gKHN0YXRzLnRvb2wuZHVyYXRpb24gLyBzdGF0cy50b29sLmNvdW50KS50b0ZpeGVkKDIpIDogMDsKCgkJCWNvbnN0IGxsbVN1bWFyeUNlbGxzID0gW3N0YXRzLmxsbS5jb3VudCwgc3RhdHMubGxtLnRva2VucywgYXZnTGxtVG9rZW4sIHN0YXRzLmxsbS5kdXJhdGlvbiwgYXZnTGxtRHVyXTsKCQkJY29uc3QgdG9vbFN1bW1hcnlDZWxscyA9IFtzdGF0cy50b29sLmNvdW50LCBzdGF0cy50b29sLmR1cmF0aW9uLCBhdmdUb29sRHVyXTsKCgkJCWNvbnN0IGxsbVN1bW1hcnlCb2R5ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2xsbV9zdW1tYXJ5X3N0YXRzX2JvZHknKTsKCQkJbGxtU3VtbWFyeUJvZHkuaW5uZXJIVE1MID0gIiI7CgkJCWNvbnN0IGxsbVRyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndHInKTsKCQkJbGxtU3VtYXJ5Q2VsbHMuZm9yRWFjaChjZWxsID0+IHsKCQkJCWNvbnN0IHRkID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndGQnKTsKCQkJCXRkLnRleHRDb250ZW50ID0gY2VsbDsKCQkJCWxsbVRyLmFwcGVuZENoaWxkKHRkKTsKCQkJfSk7CgkJCWxsbVN1bW1hcnlCb2R5LmFwcGVuZENoaWxkKGxsbVRyKTsKCgkJCWNvbnN0IHRvb2xTdW1tYXJ5Qm9keSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0b29sX3N1bW1hcnlfc3RhdHNfYm9keScpOwoJCQl0b29sU3VtbWFyeUJvZHkuaW5uZXJIVE1MID0gIiI7CgkJCWNvbnN0IHRvb2xUciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RyJyk7CgkJCXRvb2xTdW1tYXJ5Q2VsbHMuZm9yRWFjaChjZWxsID0+IHsKCQkJCWNvbnN0IHRkID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndGQnKTsKCQkJCXRkLnRleHRDb250ZW50ID0gY2VsbDsKCQkJCXRvb2xUci5hcHBlbmRDaGlsZCh0ZCk7CgkJCX0pOwoJCQl0b29sU3VtbWFyeUJvZHkuYXBwZW5kQ2hpbGQodG9vbFRyKTsKCQl9CgoJCWZ1bmN0aW9uIGRyYXdEdXJhdGlvbkNoYXJ0KHJhd0RhdGEpIHsKCQkJY29uc3QgZmlsdGVyZWRTdGVwcyA9IHJhd0RhdGEuZmlsdGVyKGQgPT4gWyJsbG0iLCAidG9vbCJdLmluY2x1ZGVzKGQuVHlwZSkpOwoJCQljb25zdCBkYXRhID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkRhdGFUYWJsZSgpOwoJCQlkYXRhLmFkZENvbHVtbignc3RyaW5nJywgJ1N0ZXAnKTsKCQkJZGF0YS5hZGRDb2x1bW4oJ251bWJlcicsICdEdXJhdGlvbicpOwoJCQlkYXRhLmFkZENvbHVtbih7dHlwZTogJ3N0cmluZycsIHJvbGU6ICd0b29sdGlwJ30pOyAKCgkJCWZpbHRlcmVkU3RlcHMuZm9yRWFjaChzID0+IHsKCQkJCQoJCQkJY29uc3QgZHVyID0gcy5EdXJhdGlvbiAvIDEwMDAwMDAwMDA7CgkJCQlsZXQgdG9vbHRpcCA9IHMuTmFtZTsKCQkJCWlmIChzLlR5cGUgPT09ICJsbG0iICYmIHMuVG9vbENhbGxzICYmIHMuVG9vbENhbGxzLmxlbmd0aCA+IDApIHsKCQkJCQl0b29sdGlwICs9IGBcblRvb2xzOiAke3MuVG9vbENhbGxzLmpvaW4oJywgJyl9YDsKCQkJCX0KCQkJCWRhdGEuYWRkUm93KFtgJHtzLlNlcX1gLCBkdXIsIHRvb2x0aXBdKTsKCQkJfSk7CgoJCQljb25zdCBvcHRpb25zID0gewoJCQkJdGl0bGU6ICdUaW1lIENvbnN1bXB0aW9uIG9mIExMTS9Ub29sIENhbGxzJywKCQkJCWhBeGlzOiB7CgkJCQkJdGl0bGU6ICdMTE0vVG9vbCBTdGVwcycsCgkJCQl9LAoJCQkJdkF4aXM6IHsgdGl0bGU6ICdTZWNvbmRzJyB9LAoJCQkJbGVnZW5kOiB7IHBvc2l0aW9uOiAnbm9uZScgfSwKCQkJCWJhcjogeyBncm91cFdpZHRoOiAnNzUlJyB9LAoJCQkJY2hhcnRBcmVhOiB7IHdpZHRoOiAnODUlJywgaGVpZ2h0OiAnNzAlJyB9LAoJCQkJaGVpZ2h0OiA0MDAKCQkJfTsKCgkJCWNvbnN0IGNoYXJ0ID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkNvbHVtbkNoYXJ0KGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdkdXJhdGlvbl9jaGFydF9kaXYnKSk7CgkJCWNoYXJ0LmRyYXcoZGF0YSwgb3B0aW9ucyk7CgkJfQoKCQlmdW5jdGlvbiBkcmF3VG9rZW5Db25zdW1wdGlvbkNoYXJ0KHJhd0RhdGEpIHsKCQkJY29uc3QgbGxtU3RlcHMgPSByYXdEYXRhLmZpbHRlcihkID0+IGQuVHlwZSA9PT0gImxsbSIpOwoJCQlpZiAobGxtU3RlcHMubGVuZ3RoID09PSAwKSByZXR1cm47CgoJCQljb25zdCBkYXRhID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkRhdGFUYWJsZSgpOwoJCQlkYXRhLmFkZENvbHVtbignc3RyaW5nJywgJ1N0ZXAnKTsJCQkKCQkJZGF0YS5hZGRDb2x1bW4oJ251bWJlcicsICdUb2tlbnMnKTsJCQkKCQkJZGF0YS5hZGRDb2x1bW4oe3R5cGU6ICdzdHJpbmcnLCByb2xlOiAnc3R5bGUnfSk7CQoJCQlkYXRhLmFkZENvbHVtbih7dHlwZTogJ3N0cmluZycsIHJvbGU6ICd0b29sdGlwJ30pOwkKCgkJCWNvbnN0IGFnZW50Q29sb3JzID0ge307CgkJCWNvbnN0IHBhbGV0dGUgPSBbJyM0Mjg1RjQnLCAnI0RCNDQzNycsICcjRjRCNDAwJywgJyMwRjlENTgnLCAnI0FCNDdCQycsICcjMDBBQ0MxJ107CgkJCWxldCBjb2xvcklkeCA9IDA7CgkJCWNvbnN0IGFnZW50TExNQ291bnRzID0ge307CgkJCWxsbVN0ZXBzLmZvckVhY2gocyA9PiB7CgkJCQlpZiAoIWFnZW50Q29sb3JzW3MuTmFtZV0pIHsKCQkJCQlhZ2VudENvbG9yc1tzLk5hbWVdID0gcGFsZXR0ZVtjb2xvcklkeCAlIHBhbGV0dGUubGVuZ3RoXTsKCQkJCQljb2xvcklkeCsrOwoJCQkJfQoKCQkJCWFnZW50TExNQ291bnRzW3MuTmFtZV0gPSAoYWdlbnRMTE1Db3VudHNbcy5OYW1lXSB8fCAwKSArIDE7CgkJCQljb25zdCBsYWJlbCA9IGAke3MuTmFtZX0tJHthZ2VudExMTUNvdW50c1tzLk5hbWVdfWA7CgkJCQljb25zdCB0b3RhbFRva2VucyA9IHMuSW5wdXRUb2tlbnMgKyBzLk91dHB1dFRva2VucyArIHMuT3V0cHV0VGhvdWdodHNUb2tlbnM7CgkJCQljb25zdCBzdHlsZSA9IGBjb2xvcjogJHthZ2VudENvbG9yc1tzLk5hbWVdfWA7CgkJCQlsZXQgdG9vbHRpcCA9IGBUb3RhbCBUb2tlbnM6ICR7dG90YWxUb2tlbnN9XG4oSW46ICR7cy5JbnB1dFRva2Vuc30sIE91dDogJHtzLk91dHB1dFRva2Vuc30sIFRob3VnaHRzOiAke3MuT3V0cHV0VGhvdWdodHNUb2tlbnN9KWA7CgkJCQlpZiAocy5Ub29sQ2FsbHMgJiYgcy5Ub29sQ2FsbHMubGVuZ3RoID4gMCkgewoJCQkJCXRvb2x0aXAgKz0gYFxuVG9vbHM6ICR7cy5Ub29sQ2FsbHMuam9pbignLCAnKX1gOwoJCQkJfQoKCQkJCWRhdGEuYWRkUm93KFtsYWJlbCwgdG90YWxUb2tlbnMsIHN0eWxlLCB0b29sdGlwXSk7CgkJCX0pOwoKCQkJY29uc3Qgb3B0aW9ucyA9IHsKCQkJCXRpdGxlOiAnVG9rZW4gQ29uc3VtcHRpb24gYnkgTExNIENhbGxzJywKCQkJCWhBeGlzOiB7CgkJCQkJdGl0bGU6ICdMTE0gQ2FsbCBTZXF1ZW5jZScsCgkJCQl9LAoJCQkJdkF4aXM6IHsgdGl0bGU6ICdDb25zdW1lZCBUb2tlbnMnIH0sCgkJCQlsZWdlbmQ6IHsgcG9zaXRpb246ICdub25lJyB9LAoJCQkJYmFyOiB7IGdyb3VwV2lkdGg6ICc3NSUnIH0sCgkJCQljaGFydEFyZWE6IHsgd2lkdGg6ICc4NSUnLCBoZWlnaHQ6ICc3MCUnIH0sCgkJCQloZWlnaHQ6IDQwMAoJCQl9OwoKCQkJY29uc3QgY2hhcnQgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uQ29sdW1uQ2hhcnQoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rva2VuX2NoYXJ0X2RpdicpKTsKCQkJY2hhcnQuZHJhdyhkYXRhLCBvcHRpb25zKTsKCQl9CgkJbGV0IGFsbEV4cGFuZGVkID0gZmFsc2U7CgkJZnVuY3Rpb24gdG9nZ2xlQWxsRGV0YWlscygpIHsKCQkJYWxsRXhwYW5kZWQgPSAhYWxsRXhwYW5kZWQ7CgkJCWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJ2RldGFpbHMnKS5mb3JFYWNoKGQgPT4gewoJCQkJaWYgKGFsbEV4cGFuZGVkKSBkLnNldEF0dHJpYnV0ZSgnb3BlbicsICcnKTsKCQkJCWVsc2UgZC5yZW1vdmVBdHRyaWJ1dGUoJ29wZW4nKTsKCQkJfSk7CgkJfQoJPC9zY3JpcHQ+CgoKPC9ib2R5Pgo8L2h0bWw+Cg==" },ValueFrom:&ValueFrom{Path:/output/result.json,JSONPath:,JQFilter:,Parameter:,Default:nil,Supplied:nil,Event:,Expression:,ConfigMapKeyRef:nil,},GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},Result:nil,ExitCode:*0,} --------- Name: series-workflow6t87h[1] Phase: Succeeded StartedAt: 2026-06-30 04:35:25 +0000 UTC FinishedAt: 2026-06-30 04:35:25 +0000 UTC Input: nil Output: nil --------- Name: series-workflow6t87h[1].abort-on-skip-outcome Phase: Skipped StartedAt: 2026-06-30 04:35:25 +0000 UTC FinishedAt: 2026-06-30 04:35:25 +0000 UTC Input: nil Output: nil --------- Name: series-workflow6t87h[2] Phase: Succeeded StartedAt: 2026-06-30 04:35:25 +0000 UTC FinishedAt: 2026-06-30 05:49:25 +0000 UTC Input: nil Output: nil --------- Name: series-workflow6t87h[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"86f436567f2516a0083b210bedc933544826a2c3","config_name":"upstream-apparmor-kasan.config","enable_configs":["RTL8XXXU","RTL8XXXU_UNTESTED"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["rtl8xxxu_stop","rtl8xxxu_rx_urb_work"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"86f436567f2516a0083b210bedc933544826a2c3","config_name":"upstream-apparmor-kasan.config","enable_configs":["RTL8XXXU","RTL8XXXU_UNTESTED"],"series_id":"f08bd41f-a392-4815-92a5-c4a5af1a5eef","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN) Phase: Succeeded StartedAt: 2026-06-30 04:35:25 +0000 UTC FinishedAt: 2026-06-30 05:49:25 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:element,Default:nil,Value:*{"base":{"arch":"amd64","commit_hash":"86f436567f2516a0083b210bedc933544826a2c3","config_name":"upstream-apparmor-kasan.config","enable_configs":["RTL8XXXU","RTL8XXXU_UNTESTED"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},"fuzz":{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["rtl8xxxu_stop","rtl8xxxu_rx_urb_work"],"skip_cover_check":false},"patched":{"arch":"amd64","commit_hash":"86f436567f2516a0083b210bedc933544826a2c3","config_name":"upstream-apparmor-kasan.config","enable_configs":["RTL8XXXU","RTL8XXXU_UNTESTED"],"series_id":"f08bd41f-a392-4815-92a5-c4a5af1a5eef","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},"retest":null,"track":"KASAN"},ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},} Output: nil --------- Name: series-workflow6t87h[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"86f436567f2516a0083b210bedc933544826a2c3","config_name":"upstream-apparmor-kasan.config","enable_configs":["RTL8XXXU","RTL8XXXU_UNTESTED"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["rtl8xxxu_stop","rtl8xxxu_rx_urb_work"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"86f436567f2516a0083b210bedc933544826a2c3","config_name":"upstream-apparmor-kasan.config","enable_configs":["RTL8XXXU","RTL8XXXU_UNTESTED"],"series_id":"f08bd41f-a392-4815-92a5-c4a5af1a5eef","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[0] Phase: Succeeded StartedAt: 2026-06-30 04:35:25 +0000 UTC FinishedAt: 2026-06-30 04:37:04 +0000 UTC Input: nil Output: nil --------- Name: series-workflow6t87h[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"86f436567f2516a0083b210bedc933544826a2c3","config_name":"upstream-apparmor-kasan.config","enable_configs":["RTL8XXXU","RTL8XXXU_UNTESTED"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["rtl8xxxu_stop","rtl8xxxu_rx_urb_work"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"86f436567f2516a0083b210bedc933544826a2c3","config_name":"upstream-apparmor-kasan.config","enable_configs":["RTL8XXXU","RTL8XXXU_UNTESTED"],"series_id":"f08bd41f-a392-4815-92a5-c4a5af1a5eef","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[0].save-base-req Phase: Succeeded StartedAt: 2026-06-30 04:35:25 +0000 UTC FinishedAt: 2026-06-30 04:35:44 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:data,Default:nil,Value:*{"arch":"amd64","commit_hash":"86f436567f2516a0083b210bedc933544826a2c3","config_name":"upstream-apparmor-kasan.config","enable_configs":["RTL8XXXU","RTL8XXXU_UNTESTED"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},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-workflow6t87h/series-workflow6t87h-convert-artifact-220931924/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflow6t87h[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"86f436567f2516a0083b210bedc933544826a2c3","config_name":"upstream-apparmor-kasan.config","enable_configs":["RTL8XXXU","RTL8XXXU_UNTESTED"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["rtl8xxxu_stop","rtl8xxxu_rx_urb_work"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"86f436567f2516a0083b210bedc933544826a2c3","config_name":"upstream-apparmor-kasan.config","enable_configs":["RTL8XXXU","RTL8XXXU_UNTESTED"],"series_id":"f08bd41f-a392-4815-92a5-c4a5af1a5eef","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[1] Phase: Succeeded StartedAt: 2026-06-30 04:37:04 +0000 UTC FinishedAt: 2026-06-30 05:17:12 +0000 UTC Input: nil Output: nil --------- Name: series-workflow6t87h[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"86f436567f2516a0083b210bedc933544826a2c3","config_name":"upstream-apparmor-kasan.config","enable_configs":["RTL8XXXU","RTL8XXXU_UNTESTED"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["rtl8xxxu_stop","rtl8xxxu_rx_urb_work"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"86f436567f2516a0083b210bedc933544826a2c3","config_name":"upstream-apparmor-kasan.config","enable_configs":["RTL8XXXU","RTL8XXXU_UNTESTED"],"series_id":"f08bd41f-a392-4815-92a5-c4a5af1a5eef","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[1].base-build Phase: Succeeded StartedAt: 2026-06-30 04:37:04 +0000 UTC FinishedAt: 2026-06-30 05:17:12 +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:*aaa7ebac-3268-4bca-99b0-ea1bdeb0d9aa,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-workflow6t87h/series-workflow6t87h-convert-artifact-220931924/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": "42b26c34-4c53-43e3-8cab-0450cf54c99f", "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-workflow6t87h/series-workflow6t87h-build-action-2373149394/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflow6t87h[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"86f436567f2516a0083b210bedc933544826a2c3","config_name":"upstream-apparmor-kasan.config","enable_configs":["RTL8XXXU","RTL8XXXU_UNTESTED"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["rtl8xxxu_stop","rtl8xxxu_rx_urb_work"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"86f436567f2516a0083b210bedc933544826a2c3","config_name":"upstream-apparmor-kasan.config","enable_configs":["RTL8XXXU","RTL8XXXU_UNTESTED"],"series_id":"f08bd41f-a392-4815-92a5-c4a5af1a5eef","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[1].base-build(0) Phase: Succeeded StartedAt: 2026-06-30 04:37:04 +0000 UTC FinishedAt: 2026-06-30 05:17:02 +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:*aaa7ebac-3268-4bca-99b0-ea1bdeb0d9aa,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-workflow6t87h/series-workflow6t87h-convert-artifact-220931924/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": "42b26c34-4c53-43e3-8cab-0450cf54c99f", "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-workflow6t87h/series-workflow6t87h-build-action-2373149394/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflow6t87h[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"86f436567f2516a0083b210bedc933544826a2c3","config_name":"upstream-apparmor-kasan.config","enable_configs":["RTL8XXXU","RTL8XXXU_UNTESTED"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["rtl8xxxu_stop","rtl8xxxu_rx_urb_work"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"86f436567f2516a0083b210bedc933544826a2c3","config_name":"upstream-apparmor-kasan.config","enable_configs":["RTL8XXXU","RTL8XXXU_UNTESTED"],"series_id":"f08bd41f-a392-4815-92a5-c4a5af1a5eef","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[2] Phase: Succeeded StartedAt: 2026-06-30 05:17:12 +0000 UTC FinishedAt: 2026-06-30 05:17:12 +0000 UTC Input: nil Output: nil --------- Name: series-workflow6t87h[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"86f436567f2516a0083b210bedc933544826a2c3","config_name":"upstream-apparmor-kasan.config","enable_configs":["RTL8XXXU","RTL8XXXU_UNTESTED"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["rtl8xxxu_stop","rtl8xxxu_rx_urb_work"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"86f436567f2516a0083b210bedc933544826a2c3","config_name":"upstream-apparmor-kasan.config","enable_configs":["RTL8XXXU","RTL8XXXU_UNTESTED"],"series_id":"f08bd41f-a392-4815-92a5-c4a5af1a5eef","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[2].abort-if-base-build-failed Phase: Skipped StartedAt: 2026-06-30 05:17:12 +0000 UTC FinishedAt: 2026-06-30 05:17:12 +0000 UTC Input: nil Output: nil --------- Name: series-workflow6t87h[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"86f436567f2516a0083b210bedc933544826a2c3","config_name":"upstream-apparmor-kasan.config","enable_configs":["RTL8XXXU","RTL8XXXU_UNTESTED"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["rtl8xxxu_stop","rtl8xxxu_rx_urb_work"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"86f436567f2516a0083b210bedc933544826a2c3","config_name":"upstream-apparmor-kasan.config","enable_configs":["RTL8XXXU","RTL8XXXU_UNTESTED"],"series_id":"f08bd41f-a392-4815-92a5-c4a5af1a5eef","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[3] Phase: Succeeded StartedAt: 2026-06-30 05:17:12 +0000 UTC FinishedAt: 2026-06-30 05:17:33 +0000 UTC Input: nil Output: nil --------- Name: series-workflow6t87h[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"86f436567f2516a0083b210bedc933544826a2c3","config_name":"upstream-apparmor-kasan.config","enable_configs":["RTL8XXXU","RTL8XXXU_UNTESTED"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["rtl8xxxu_stop","rtl8xxxu_rx_urb_work"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"86f436567f2516a0083b210bedc933544826a2c3","config_name":"upstream-apparmor-kasan.config","enable_configs":["RTL8XXXU","RTL8XXXU_UNTESTED"],"series_id":"f08bd41f-a392-4815-92a5-c4a5af1a5eef","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[3].save-patched-req Phase: Succeeded StartedAt: 2026-06-30 05:17:12 +0000 UTC FinishedAt: 2026-06-30 05:17:20 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:data,Default:nil,Value:*{"arch":"amd64","commit_hash":"86f436567f2516a0083b210bedc933544826a2c3","config_name":"upstream-apparmor-kasan.config","enable_configs":["RTL8XXXU","RTL8XXXU_UNTESTED"],"series_id":"f08bd41f-a392-4815-92a5-c4a5af1a5eef","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},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-workflow6t87h/series-workflow6t87h-convert-artifact-496359443/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflow6t87h[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"86f436567f2516a0083b210bedc933544826a2c3","config_name":"upstream-apparmor-kasan.config","enable_configs":["RTL8XXXU","RTL8XXXU_UNTESTED"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["rtl8xxxu_stop","rtl8xxxu_rx_urb_work"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"86f436567f2516a0083b210bedc933544826a2c3","config_name":"upstream-apparmor-kasan.config","enable_configs":["RTL8XXXU","RTL8XXXU_UNTESTED"],"series_id":"f08bd41f-a392-4815-92a5-c4a5af1a5eef","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[4] Phase: Succeeded StartedAt: 2026-06-30 05:17:33 +0000 UTC FinishedAt: 2026-06-30 05:19:53 +0000 UTC Input: nil Output: nil --------- Name: series-workflow6t87h[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"86f436567f2516a0083b210bedc933544826a2c3","config_name":"upstream-apparmor-kasan.config","enable_configs":["RTL8XXXU","RTL8XXXU_UNTESTED"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["rtl8xxxu_stop","rtl8xxxu_rx_urb_work"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"86f436567f2516a0083b210bedc933544826a2c3","config_name":"upstream-apparmor-kasan.config","enable_configs":["RTL8XXXU","RTL8XXXU_UNTESTED"],"series_id":"f08bd41f-a392-4815-92a5-c4a5af1a5eef","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[4].boot-test-base Phase: Succeeded StartedAt: 2026-06-30 05:17:33 +0000 UTC FinishedAt: 2026-06-30 05:19:43 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:base-build-id,Default:nil,Value:*42b26c34-4c53-43e3-8cab-0450cf54c99f,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-workflow6t87h/series-workflow6t87h-build-action-2373149394/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-workflow6t87h[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"86f436567f2516a0083b210bedc933544826a2c3","config_name":"upstream-apparmor-kasan.config","enable_configs":["RTL8XXXU","RTL8XXXU_UNTESTED"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["rtl8xxxu_stop","rtl8xxxu_rx_urb_work"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"86f436567f2516a0083b210bedc933544826a2c3","config_name":"upstream-apparmor-kasan.config","enable_configs":["RTL8XXXU","RTL8XXXU_UNTESTED"],"series_id":"f08bd41f-a392-4815-92a5-c4a5af1a5eef","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[5] Phase: Succeeded StartedAt: 2026-06-30 05:19:53 +0000 UTC FinishedAt: 2026-06-30 05:19:53 +0000 UTC Input: nil Output: nil --------- Name: series-workflow6t87h[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"86f436567f2516a0083b210bedc933544826a2c3","config_name":"upstream-apparmor-kasan.config","enable_configs":["RTL8XXXU","RTL8XXXU_UNTESTED"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["rtl8xxxu_stop","rtl8xxxu_rx_urb_work"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"86f436567f2516a0083b210bedc933544826a2c3","config_name":"upstream-apparmor-kasan.config","enable_configs":["RTL8XXXU","RTL8XXXU_UNTESTED"],"series_id":"f08bd41f-a392-4815-92a5-c4a5af1a5eef","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[5].abort-if-base-boot-failed Phase: Skipped StartedAt: 2026-06-30 05:19:53 +0000 UTC FinishedAt: 2026-06-30 05:19:53 +0000 UTC Input: nil Output: nil --------- Name: series-workflow6t87h[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"86f436567f2516a0083b210bedc933544826a2c3","config_name":"upstream-apparmor-kasan.config","enable_configs":["RTL8XXXU","RTL8XXXU_UNTESTED"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["rtl8xxxu_stop","rtl8xxxu_rx_urb_work"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"86f436567f2516a0083b210bedc933544826a2c3","config_name":"upstream-apparmor-kasan.config","enable_configs":["RTL8XXXU","RTL8XXXU_UNTESTED"],"series_id":"f08bd41f-a392-4815-92a5-c4a5af1a5eef","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[6] Phase: Succeeded StartedAt: 2026-06-30 05:19:53 +0000 UTC FinishedAt: 2026-06-30 05:46:00 +0000 UTC Input: nil Output: nil --------- Name: series-workflow6t87h[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"86f436567f2516a0083b210bedc933544826a2c3","config_name":"upstream-apparmor-kasan.config","enable_configs":["RTL8XXXU","RTL8XXXU_UNTESTED"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["rtl8xxxu_stop","rtl8xxxu_rx_urb_work"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"86f436567f2516a0083b210bedc933544826a2c3","config_name":"upstream-apparmor-kasan.config","enable_configs":["RTL8XXXU","RTL8XXXU_UNTESTED"],"series_id":"f08bd41f-a392-4815-92a5-c4a5af1a5eef","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[6].patched-build Phase: Succeeded StartedAt: 2026-06-30 05:19:53 +0000 UTC FinishedAt: 2026-06-30 05:46:00 +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:*aaa7ebac-3268-4bca-99b0-ea1bdeb0d9aa,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-workflow6t87h/series-workflow6t87h-convert-artifact-496359443/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": "0457ff23-4857-4c70-aae9-ed1ccccd67f5", "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-workflow6t87h/series-workflow6t87h-build-action-4151619143/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflow6t87h[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"86f436567f2516a0083b210bedc933544826a2c3","config_name":"upstream-apparmor-kasan.config","enable_configs":["RTL8XXXU","RTL8XXXU_UNTESTED"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["rtl8xxxu_stop","rtl8xxxu_rx_urb_work"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"86f436567f2516a0083b210bedc933544826a2c3","config_name":"upstream-apparmor-kasan.config","enable_configs":["RTL8XXXU","RTL8XXXU_UNTESTED"],"series_id":"f08bd41f-a392-4815-92a5-c4a5af1a5eef","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[6].patched-build(0) Phase: Succeeded StartedAt: 2026-06-30 05:19:53 +0000 UTC FinishedAt: 2026-06-30 05:45:38 +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:*aaa7ebac-3268-4bca-99b0-ea1bdeb0d9aa,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-workflow6t87h/series-workflow6t87h-convert-artifact-496359443/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": "0457ff23-4857-4c70-aae9-ed1ccccd67f5", "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-workflow6t87h/series-workflow6t87h-build-action-4151619143/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflow6t87h[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"86f436567f2516a0083b210bedc933544826a2c3","config_name":"upstream-apparmor-kasan.config","enable_configs":["RTL8XXXU","RTL8XXXU_UNTESTED"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["rtl8xxxu_stop","rtl8xxxu_rx_urb_work"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"86f436567f2516a0083b210bedc933544826a2c3","config_name":"upstream-apparmor-kasan.config","enable_configs":["RTL8XXXU","RTL8XXXU_UNTESTED"],"series_id":"f08bd41f-a392-4815-92a5-c4a5af1a5eef","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[7] Phase: Succeeded StartedAt: 2026-06-30 05:46:00 +0000 UTC FinishedAt: 2026-06-30 05:46:00 +0000 UTC Input: nil Output: nil --------- Name: series-workflow6t87h[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"86f436567f2516a0083b210bedc933544826a2c3","config_name":"upstream-apparmor-kasan.config","enable_configs":["RTL8XXXU","RTL8XXXU_UNTESTED"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["rtl8xxxu_stop","rtl8xxxu_rx_urb_work"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"86f436567f2516a0083b210bedc933544826a2c3","config_name":"upstream-apparmor-kasan.config","enable_configs":["RTL8XXXU","RTL8XXXU_UNTESTED"],"series_id":"f08bd41f-a392-4815-92a5-c4a5af1a5eef","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[7].abort-if-patched-build-failed Phase: Skipped StartedAt: 2026-06-30 05:46:00 +0000 UTC FinishedAt: 2026-06-30 05:46:00 +0000 UTC Input: nil Output: nil --------- Name: series-workflow6t87h[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"86f436567f2516a0083b210bedc933544826a2c3","config_name":"upstream-apparmor-kasan.config","enable_configs":["RTL8XXXU","RTL8XXXU_UNTESTED"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["rtl8xxxu_stop","rtl8xxxu_rx_urb_work"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"86f436567f2516a0083b210bedc933544826a2c3","config_name":"upstream-apparmor-kasan.config","enable_configs":["RTL8XXXU","RTL8XXXU_UNTESTED"],"series_id":"f08bd41f-a392-4815-92a5-c4a5af1a5eef","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[8] Phase: Succeeded StartedAt: 2026-06-30 05:46:00 +0000 UTC FinishedAt: 2026-06-30 05:48:00 +0000 UTC Input: nil Output: nil --------- Name: series-workflow6t87h[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"86f436567f2516a0083b210bedc933544826a2c3","config_name":"upstream-apparmor-kasan.config","enable_configs":["RTL8XXXU","RTL8XXXU_UNTESTED"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["rtl8xxxu_stop","rtl8xxxu_rx_urb_work"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"86f436567f2516a0083b210bedc933544826a2c3","config_name":"upstream-apparmor-kasan.config","enable_configs":["RTL8XXXU","RTL8XXXU_UNTESTED"],"series_id":"f08bd41f-a392-4815-92a5-c4a5af1a5eef","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[8].boot-test-patched Phase: Succeeded StartedAt: 2026-06-30 05:46:00 +0000 UTC FinishedAt: 2026-06-30 05:47:50 +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:*0457ff23-4857-4c70-aae9-ed1ccccd67f5,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-workflow6t87h/series-workflow6t87h-build-action-4151619143/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-workflow6t87h[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"86f436567f2516a0083b210bedc933544826a2c3","config_name":"upstream-apparmor-kasan.config","enable_configs":["RTL8XXXU","RTL8XXXU_UNTESTED"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["rtl8xxxu_stop","rtl8xxxu_rx_urb_work"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"86f436567f2516a0083b210bedc933544826a2c3","config_name":"upstream-apparmor-kasan.config","enable_configs":["RTL8XXXU","RTL8XXXU_UNTESTED"],"series_id":"f08bd41f-a392-4815-92a5-c4a5af1a5eef","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[10] Phase: Succeeded StartedAt: 2026-06-30 05:48:00 +0000 UTC FinishedAt: 2026-06-30 05:49:25 +0000 UTC Input: nil Output: nil --------- Name: series-workflow6t87h[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"86f436567f2516a0083b210bedc933544826a2c3","config_name":"upstream-apparmor-kasan.config","enable_configs":["RTL8XXXU","RTL8XXXU_UNTESTED"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["rtl8xxxu_stop","rtl8xxxu_rx_urb_work"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"86f436567f2516a0083b210bedc933544826a2c3","config_name":"upstream-apparmor-kasan.config","enable_configs":["RTL8XXXU","RTL8XXXU_UNTESTED"],"series_id":"f08bd41f-a392-4815-92a5-c4a5af1a5eef","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[10].run-fuzz Phase: Succeeded StartedAt: 2026-06-30 05:48:00 +0000 UTC FinishedAt: 2026-06-30 05:49:25 +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":["rtl8xxxu_stop","rtl8xxxu_rx_urb_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:*42b26c34-4c53-43e3-8cab-0450cf54c99f,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:patched-build-id,Default:nil,Value:*0457ff23-4857-4c70-aae9-ed1ccccd67f5,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-workflow6t87h/series-workflow6t87h-build-action-2373149394/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-workflow6t87h/series-workflow6t87h-build-action-4151619143/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},} Output: nil --------- Name: series-workflow6t87h[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"86f436567f2516a0083b210bedc933544826a2c3","config_name":"upstream-apparmor-kasan.config","enable_configs":["RTL8XXXU","RTL8XXXU_UNTESTED"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["rtl8xxxu_stop","rtl8xxxu_rx_urb_work"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"86f436567f2516a0083b210bedc933544826a2c3","config_name":"upstream-apparmor-kasan.config","enable_configs":["RTL8XXXU","RTL8XXXU_UNTESTED"],"series_id":"f08bd41f-a392-4815-92a5-c4a5af1a5eef","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[10].run-fuzz[0] Phase: Succeeded StartedAt: 2026-06-30 05:48:00 +0000 UTC FinishedAt: 2026-06-30 05:48:10 +0000 UTC Input: nil Output: nil --------- Name: series-workflow6t87h[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"86f436567f2516a0083b210bedc933544826a2c3","config_name":"upstream-apparmor-kasan.config","enable_configs":["RTL8XXXU","RTL8XXXU_UNTESTED"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["rtl8xxxu_stop","rtl8xxxu_rx_urb_work"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"86f436567f2516a0083b210bedc933544826a2c3","config_name":"upstream-apparmor-kasan.config","enable_configs":["RTL8XXXU","RTL8XXXU_UNTESTED"],"series_id":"f08bd41f-a392-4815-92a5-c4a5af1a5eef","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[10].run-fuzz[0].save-fuzz-config Phase: Succeeded StartedAt: 2026-06-30 05:48:00 +0000 UTC FinishedAt: 2026-06-30 05:48:07 +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":["rtl8xxxu_stop","rtl8xxxu_rx_urb_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-workflow6t87h/series-workflow6t87h-convert-artifact-3669136268/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflow6t87h[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"86f436567f2516a0083b210bedc933544826a2c3","config_name":"upstream-apparmor-kasan.config","enable_configs":["RTL8XXXU","RTL8XXXU_UNTESTED"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["rtl8xxxu_stop","rtl8xxxu_rx_urb_work"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"86f436567f2516a0083b210bedc933544826a2c3","config_name":"upstream-apparmor-kasan.config","enable_configs":["RTL8XXXU","RTL8XXXU_UNTESTED"],"series_id":"f08bd41f-a392-4815-92a5-c4a5af1a5eef","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[10].run-retest Phase: Skipped StartedAt: 2026-06-30 05:48:00 +0000 UTC FinishedAt: 2026-06-30 05:48:00 +0000 UTC Input: nil Output: nil --------- Name: series-workflow6t87h[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"86f436567f2516a0083b210bedc933544826a2c3","config_name":"upstream-apparmor-kasan.config","enable_configs":["RTL8XXXU","RTL8XXXU_UNTESTED"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["rtl8xxxu_stop","rtl8xxxu_rx_urb_work"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"86f436567f2516a0083b210bedc933544826a2c3","config_name":"upstream-apparmor-kasan.config","enable_configs":["RTL8XXXU","RTL8XXXU_UNTESTED"],"series_id":"f08bd41f-a392-4815-92a5-c4a5af1a5eef","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[9] Phase: Succeeded StartedAt: 2026-06-30 05:48:00 +0000 UTC FinishedAt: 2026-06-30 05:48:00 +0000 UTC Input: nil Output: nil --------- Name: series-workflow6t87h[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"86f436567f2516a0083b210bedc933544826a2c3","config_name":"upstream-apparmor-kasan.config","enable_configs":["RTL8XXXU","RTL8XXXU_UNTESTED"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["rtl8xxxu_stop","rtl8xxxu_rx_urb_work"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"86f436567f2516a0083b210bedc933544826a2c3","config_name":"upstream-apparmor-kasan.config","enable_configs":["RTL8XXXU","RTL8XXXU_UNTESTED"],"series_id":"f08bd41f-a392-4815-92a5-c4a5af1a5eef","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[9].abort-if-patched-boot-failed Phase: Skipped StartedAt: 2026-06-30 05:48:00 +0000 UTC FinishedAt: 2026-06-30 05:48:00 +0000 UTC Input: nil Output: nil --------- Name: series-workflow6t87h[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"86f436567f2516a0083b210bedc933544826a2c3","config_name":"upstream-apparmor-kasan.config","enable_configs":["RTL8XXXU","RTL8XXXU_UNTESTED"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["rtl8xxxu_stop","rtl8xxxu_rx_urb_work"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"86f436567f2516a0083b210bedc933544826a2c3","config_name":"upstream-apparmor-kasan.config","enable_configs":["RTL8XXXU","RTL8XXXU_UNTESTED"],"series_id":"f08bd41f-a392-4815-92a5-c4a5af1a5eef","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[10].run-fuzz[1] Phase: Succeeded StartedAt: 2026-06-30 05:48:10 +0000 UTC FinishedAt: 2026-06-30 05:49:25 +0000 UTC Input: nil Output: nil --------- Name: series-workflow6t87h[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"86f436567f2516a0083b210bedc933544826a2c3","config_name":"upstream-apparmor-kasan.config","enable_configs":["RTL8XXXU","RTL8XXXU_UNTESTED"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["rtl8xxxu_stop","rtl8xxxu_rx_urb_work"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"86f436567f2516a0083b210bedc933544826a2c3","config_name":"upstream-apparmor-kasan.config","enable_configs":["RTL8XXXU","RTL8XXXU_UNTESTED"],"series_id":"f08bd41f-a392-4815-92a5-c4a5af1a5eef","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[10].run-fuzz[1].fuzz Phase: Succeeded StartedAt: 2026-06-30 05:48:10 +0000 UTC FinishedAt: 2026-06-30 05:49:20 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:base-build-id,Default:nil,Value:*42b26c34-4c53-43e3-8cab-0450cf54c99f,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:patched-build-id,Default:nil,Value:*0457ff23-4857-4c70-aae9-ed1ccccd67f5,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-workflow6t87h/series-workflow6t87h-build-action-2373149394/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-workflow6t87h/series-workflow6t87h-build-action-4151619143/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-workflow6t87h/series-workflow6t87h-convert-artifact-3669136268/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,}