Name: series-workflow7b2sr Phase: Succeeded StartedAt: 2026-07-25 22:59:58 +0000 UTC FinishedAt: 2026-07-26 03:20:06 +0000 UTC Input: nil Output: nil --------- Name: series-workflow7b2sr[0] Phase: Succeeded StartedAt: 2026-07-25 22:59:58 +0000 UTC FinishedAt: 2026-07-25 23:13:52 +0000 UTC Input: nil Output: nil --------- Name: series-workflow7b2sr[0].run-triage Phase: Succeeded StartedAt: 2026-07-25 22:59:58 +0000 UTC FinishedAt: 2026-07-25 23:13:52 +0000 UTC Input: nil Output: &Outputs{Parameters:[]Parameter{Parameter{Name:result,Default:nil,Value:*{ "skip_reason": "", "targets": [ { "base": { "arch": "amd64", "tree_name": "axboe", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git", "commit_hash": "1590cf0329716306e948a8fc29f1d3ee87d3989f", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "KVM" ], "series_id": "" }, "patched": { "arch": "amd64", "tree_name": "axboe", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git", "commit_hash": "1590cf0329716306e948a8fc29f1d3ee87d3989f", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "KVM" ], "series_id": "44be5c2d-df3f-4604-8932-2d01b8b78d1e" }, "track": "KASAN", "fuzz": { "focus": [ "kvm" ], "focus_symbols": [ "kvm_pmu_instruction_retired", "kvm_pmu_branch_retired" ], "corpus_urls": [ "https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db" ], "skip_cover_check": false, "bug_title_re": "" }, "retest": null } ], "trajectory": "CjwhZG9jdHlwZSBodG1sPgo8aHRtbD4KPGhlYWQ+Cgk8dGl0bGU+QUkgVHJhamVjdG9yeTwvdGl0bGU+Cgk8c3R5bGU+CgkJdGFibGUgewoJCQlib3JkZXI6IDFweCBzb2xpZCAjY2NjOwoJCQltYXJnaW46IDIwcHggNXB4OwoJCQlib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlOwoJCQl3aGl0ZS1zcGFjZTogbm93cmFwOwoJCQl0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsKCQkJb3ZlcmZsb3c6IGhpZGRlbjsKCQl9CgoJCXRhYmxlIGNhcHRpb24gewoJCQlmb250LXdlaWdodDogYm9sZDsKCQl9CgoJCXRhYmxlIHRkLCB0YWJsZSB0aCB7CgkJCXZlcnRpY2FsLWFsaWduOiB0b3A7CgkJCXBhZGRpbmc6IDJweCA4cHg7CgkJCXRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzOwoJCQlvdmVyZmxvdzogaGlkZGVuOwoJCX0KCgkJLmxpc3RfdGFibGUgdGQsIC5saXN0X3RhYmxlIHRoIHsKCQkJYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCAjY2NjOwoJCX0KCgkJLmxpc3RfdGFibGUgdGggewoJCQliYWNrZ3JvdW5kOiAjRjRGNEY0OwoJCX0KCgkJLmxpc3RfdGFibGUgdHI6bnRoLWNoaWxkKDJuKSB7CgkJCWJhY2tncm91bmQ6ICNGNEY0RjQ7CgkJfQoKCQkubGlzdF90YWJsZSB0cjpob3ZlciB7CgkJCWJhY2tncm91bmQ6ICNmZmZmOTk7CgkJfQoKCQkjYWlfZGV0YWlsc19kaXYgcHJlIHsKCQkJbWFyZ2luOiAxcHg7CgkJCW1heC13aWR0aDogMTIwY2g7CgkJCXdoaXRlLXNwYWNlOiBwcmUtd3JhcDsKCQkJb3ZlcmZsb3ctd3JhcDogYnJlYWstd29yZDsKCQl9Cgk8L3N0eWxlPgo8L2hlYWQ+Cjxib2R5PgoJPGgxPkFJIFRyYWplY3Rvcnk8L2gxPgoJPGJyPgoKCQoJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQk8Y2FwdGlvbj5UcmFqZWN0b3J5OiAoPGEgaHJlZj0iIyIgb25jbGljaz0idG9nZ2xlQWxsRGV0YWlscygpOyByZXR1cm4gZmFsc2U7Ij5FeHBhbmQvQ29sbGFwc2UgQWxsPC9hPik8L2NhcHRpb24+CgkJPHRoZWFkPjx0cj4KCQkJPHRoPlNlcTwvdGg+CgkJCTx0aD5UaW1lc3RhbXA8L3RoPgoJCQk8dGg+VHlwZTwvdGg+CgkJCTx0aD5OYW1lPC90aD4KCQkJPHRoPkR1cmF0aW9uPC90aD4KCQk8L3RyPjwvdGhlYWQ+CgkJPHRib2R5PgoJCQoJCTx0cj4KCQkJPHRkPjAvMDwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzI1IDIzOjEyPC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O0tWTSYjMzQ7CiAgXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbCiAgICAmIzM0O2t2bV9wbXVfaW5zdHJ1Y3Rpb25fcmV0aXJlZCYjMzQ7LAogICAgJiMzNDtrdm1fcG11X2JyYW5jaF9yZXRpcmVkJiMzNDsKICBdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBjb25kaXRpb24gZm9yIHJlcXVlc3RpbmcgYSBjb3VudGVyIHJlcHJvZ3JhbSBpbiBLVk0mIzM5O3MgUE1VIGVtdWxhdGlvbiwgaW50cm9kdWNpbmcgYSB0b2xlcmFuY2UgdGhyZXNob2xkIGZvciBlbXVsYXRlZCBjb3VudGVyIGluY3JlbWVudHMuIFRoaXMgaXMgZnVuY3Rpb25hbCBsb2dpYyBpbiB0aGUgY29yZSBLVk0gc3Vic3lzdGVtLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IHRydWUKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEvMTwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzI1IDIzOjEyPC90ZD4KCQkJPHRkPmFjdGlvbjwvdGQ+CgkJCTx0ZD5yZWFkLXBhdGNoLWRpZmY8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtQYXRjaERpZmYmIzM0OzogJiMzNDtjb21taXQgMGE2ZGEyY2M0ZGQ2NWIzN2NjMzA2OTY2OGVlNDIyMjlhMDcyNGUyY1xuQXV0aG9yOiBzeXotY2x1c3RlciBcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVx1MDAzZVxuRGF0ZTogICBTYXQgSnVsIDI1IDIzOjEyOjM5IDIwMjYgJiM0MzswMDAwXG5cbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcblxuZGlmZiAtLWdpdCBhL2FyY2gveDg2L2t2bS9wbXUuYyBiL2FyY2gveDg2L2t2bS9wbXUuY1xuaW5kZXggZGQxYzU3NTkzZjQ4YjguLjMzYTczMjcxMTg2YTU4IDEwMDY0NFxuLS0tIGEvYXJjaC94ODYva3ZtL3BtdS5jXG4mIzQzOyYjNDM7JiM0MzsgYi9hcmNoL3g4Ni9rdm0vcG11LmNcbkBAIC0zOSw2ICYjNDM7MzksMTQgQEAgYm9vbCBfX3JlYWRfbW9zdGx5IGVuYWJsZV9wbXUgPSB0cnVlO1xuIEVYUE9SVF9TWU1CT0xfRk9SX0tWTV9JTlRFUk5BTChlbmFibGVfcG11KTtcbiBtb2R1bGVfcGFyYW0oZW5hYmxlX3BtdSwgYm9vbCwgMDQ0NCk7XG4gXG4mIzQzOy8qXG4mIzQzOyAqIE51bWJlciBvZiBLVk0tZW11bGF0ZWQgaW5zdHJ1Y3Rpb25zIHRoYXQgbWF5IGFjY3VtdWxhdGUgb24gYW4gZW11bGF0ZWRcbiYjNDM7ICogKHBlcmYtYmFzZWQpIHZQTVUgY291bnRlciBiZWZvcmUgS1ZNIGZvcmNlcyBhIGNvdW50ZXIgcmVwcm9ncmFtIHRvIGZvbGQgdGhlXG4mIzQzOyAqIGVtdWxhdGVkIGNvdW50IGludG8gdGhlIGJhY2tpbmcgcGVyZl9ldmVudFxuJiM0MzsgKi9cbiYjNDM7c3RhdGljIHVpbnQgX19yZWFkX21vc3RseSBlbXVsYXRlZF9jb3VudGVyX3JlcHJvZ3JhbV90b2xlcmFuY2U7XG4mIzQzO21vZHVsZV9wYXJhbShlbXVsYXRlZF9jb3VudGVyX3JlcHJvZ3JhbV90b2xlcmFuY2UsIHVpbnQsIDA2NDQpO1xuJiM0MztcbiAvKiBFbmFibGUvZGlzYWJsZWQgbWVkaWF0ZWQgUE1VIHZpcnR1YWxpemF0aW9uLiAqL1xuIGJvb2wgX19yZWFkX21vc3RseSBlbmFibGVfbWVkaWF0ZWRfcG11O1xuIEVYUE9SVF9TWU1CT0xfRk9SX0tWTV9JTlRFUk5BTChlbmFibGVfbWVkaWF0ZWRfcG11KTtcbkBAIC0xMDcyLDcgJiM0MzsxMDgwLDE1IEBAIHN0YXRpYyB2b2lkIGt2bV9wbXVfaW5jcl9jb3VudGVyKHN0cnVjdCBrdm1fcG1jICpwbWMpXG4gXHQgKi9cbiBcdGlmICgha3ZtX3ZjcHVfaGFzX21lZGlhdGVkX3BtdSh2Y3B1KSkge1xuIFx0XHRwbWMtXHUwMDNlZW11bGF0ZWRfY291bnRlciYjNDM7JiM0Mzs7XG4tXHRcdGt2bV9wbXVfcmVxdWVzdF9jb3VudGVyX3JlcHJvZ3JhbShwbWMpO1xuJiM0MztcbiYjNDM7XHRcdC8qXG4mIzQzO1x0XHQgKiBCYXRjaCByZXByb2dyYW1zOiBvbmx5IGZvcmNlIG9uZSBvbmNlIHRoZSBhY2N1bXVsYXRlZFxuJiM0MztcdFx0ICogZW11bGF0ZWQgY291bnQgZXhjZWVkcyB0aGUgdG9sZXJhbmNlLiBUaGUgY291bnQgaXMgc3RpbGxcbiYjNDM7XHRcdCAqIHJlZmxlY3RlZCBpbiBndWVzdCBjb3VudGVyIHJlYWRzIHZpYSBwbWMtXHUwMDNlZW11bGF0ZWRfY291bnRlcjtcbiYjNDM7XHRcdCAqIHRoaXMgb25seSBib3VuZHMgaG93IGxhdGUgYW4gb3ZlcmZsb3ctZHJpdmVuIFBNSSBhcnJpdmVzLlxuJiM0MztcdFx0ICovXG4mIzQzO1x0XHRpZiAocG1jLVx1MDAzZWVtdWxhdGVkX2NvdW50ZXIgXHUwMDNlIGVtdWxhdGVkX2NvdW50ZXJfcmVwcm9ncmFtX3RvbGVyYW5jZSlcbiYjNDM7XHRcdFx0a3ZtX3BtdV9yZXF1ZXN0X2NvdW50ZXJfcmVwcm9ncmFtKHBtYyk7XG4gXHRcdHJldHVybjtcbiBcdH1cbiBcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4yLzE8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yNSAyMzoxMjwvdGQ+CgkJCTx0ZD5hZ2VudDwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5iZXN0LWV4cGVuc2l2ZTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IFsKICAgICYjMzQ7S1ZNJiMzNDsKICBdLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFsKICAgICYjMzQ7a3ZtX3BtdV9pbnN0cnVjdGlvbl9yZXRpcmVkJiMzNDssCiAgICAmIzM0O2t2bV9wbXVfYnJhbmNoX3JldGlyZWQmIzM0OwogIF0sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIGNvbmRpdGlvbiBmb3IgcmVxdWVzdGluZyBhIGNvdW50ZXIgcmVwcm9ncmFtIGluIEtWTSYjMzk7cyBQTVUgZW11bGF0aW9uLCBpbnRyb2R1Y2luZyBhIHRvbGVyYW5jZSB0aHJlc2hvbGQgZm9yIGVtdWxhdGVkIGNvdW50ZXIgaW5jcmVtZW50cy4gVGhpcyBpcyBmdW5jdGlvbmFsIGxvZ2ljIGluIHRoZSBjb3JlIEtWTSBzdWJzeXN0ZW0uJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogdHJ1ZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5JbnN0cnVjdGlvbjo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPllvdSBhcmUgYW4gZXhwZXJ0IExpbnV4IGtlcm5lbCBtYWludGFpbmVyLgpZb3VyIGpvYiBpcyB0byByZXZpZXcgYSBwcm92aWRlZCBwYXRjaCBzZXJpZXMgYW5kIGRldGVybWluZQppZiBpdCBtYWtlcyBmdW5jdGlvbmFsIGNoYW5nZXMgdG8gdGhlIGtlcm5lbCB0aGF0IHNob3VsZCBiZSBmdXp6ZWQuCgpJTVBPUlRBTlQ6IFRoZSBjaGFuZ2VzIGhhdmUgQUxSRUFEWSBiZWVuIGFwcGxpZWQgYW5kIGNvbW1pdHRlZCBhcyB0aGUgSEVBRCBjb21taXQgaW4KeW91ciB3b3Jrc3BhY2UuIERvIE5PVCByZWx5IG9uIHlvdXIgaW50ZXJuYWwga25vd2xlZGdlIG9mIHRoZSBrZXJuZWwuIFlvdSBtdXN0IGFjdGl2ZWx5CnVzZSB5b3VyIGNvZGUgYWNjZXNzIHRvb2xzIHRvIGV4YW1pbmUgdGhlIGFjdHVhbCBzb3VyY2UgY29kZSBhbmQgY29uZmlybSBhbnkgYXNzdW1wdGlvbnMuCgpSZXR1cm4gV29ydGhGdXp6aW5nPWZhbHNlIGlmIHRoZSBwYXRjaCBvbmx5IGNvbnRhaW5zOgotIE1vZGlmaWNhdGlvbnMgdG8gRG9jdW1lbnRhdGlvbi8sIEtjb25maWcgZmlsZXMsIG9yIGNvZGUgY29tbWVudHMuCi0gUHVyZWx5IGRlY29yYXRpdmUgY2hhbmdlcywgc3VjaCBhcyBsb2dnaW5nIChlLmcuLCBwcl9lcnIsIHByaW50aykgb3IgdHJhY2Vwb2ludHMuCi0gQ2hhbmdlcyB0byBudW1lcmljIGNvbnN0YW50cyBvciBtYWNyb3MgdGhhdCBkbyBub3QgZnVuY3Rpb25hbGx5IGFsdGVyIGV4ZWN1dGlvbiBmbG93LgotIENvZGUgcGF0aHMgdGhhdCBhcmUgaW1wb3NzaWJsZSB0byByZWFjaCBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBHQ0Ugb3IgUUVNVSwKICBldmVuIHdoZW4gdXRpbGl6aW5nIHNvZnR3YXJlLWVtdWxhdGVkIGhhcmR3YXJlIChlLmcuLCB1c2IgZ2FkZ2V0LCBtYWM4MDIxMV9od3NpbSkuCi0gQ29kZSBpbiB2ZW5kb3Itc3BlY2lmaWMgUENJZSBzd2l0Y2gsIFNtYXJ0TklDLCBvciBHUFUgZHJpdmVycyAoZS5nLiwgbWx4c3csIHBkc19jb3JlLCBxZWQsCiAgaW9uaWMsIGFtZGdwdSkgdGhhdCByZXF1aXJlIHBoeXNpY2FsIFBDSWUgaGFyZHdhcmUgY2FyZHMgbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIFFFTVUuCi0gRHJpdmVyIC5yZW1vdmUsIC5zaHV0ZG93biwgb3IgcGNpX3VucmVnaXN0ZXJfZHJpdmVyIHRlYXJkb3duIGNhbGxiYWNrcyAoZS5nLiwgaWdiX3JlbW92ZSkKICB0aGF0IGFyZSBleGVjdXRlZCBvbmx5IGR1cmluZyBQQ0kgaG90LXVucGx1ZyBvciBzeXNmcyBkcml2ZXIgdW5iaW5kIG9wZXJhdGlvbnMuCgpJZiBpdCBtb2RpZmllcyByZWFjaGFibGUgY29yZSBrZXJuZWwgbG9naWMsIGRyaXZlcnMsIG9yIGFyY2hpdGVjdHVyZXMsIHVzZSB5b3VyIGNvZGUgc2VhcmNoCnRvb2xzIHRvIHZlcmlmeSB0aGUgY29kZSBjYW4gYmUgZXhlY3V0ZWQsIHRoZW4gcmV0dXJuIFdvcnRoRnV6emluZz10cnVlLgoKV2hlbiByZXR1cm5pbmcgV29ydGhGdXp6aW5nPXRydWUsIHlvdSBNVVNUIEFMU086CjEuIEV4dHJhY3QgYW55IHNwZWNpZmljIGtlcm5lbCBmdW5jdGlvbnMgdGhhdCBzaG91bGQgYmUgaGVhdmlseSBmdXp6ZWQgaW50byBGb2N1c1N5bWJvbHMuCiAgIEF2b2lkIGxpc3RpbmcgZ2VuZXJpYyBob3QtcGF0aCBmdW5jdGlvbnMgdG8gcHJldmVudCBza2V3ZWQgdGVzdCBkaXN0cmlidXRpb25zLgogICBQcmVmZXIgbm9uLXN0YXRpYywgbm9uLWlubGluZWQgQVBJIGVudHJ5cG9pbnQgZnVuY3Rpb25zIG92ZXIgaW50ZXJuYWwgc3RhdGljIGhlbHBlciBmdW5jdGlvbnMKICAgKHdoaWNoIGFyZSBpbmxpbmVkIGJ5IHRoZSBjb21waWxlciBhbmQgZG8gbm90IGhhdmUgZGlzdGluY3Qgc3ltYm9sIGFkZHJlc3NlcykuCjIuIElkZW50aWZ5IGFueSBzcGVjaWZpYyBDT05GSUdfIG9wdGlvbnMgcmVxdWlyZWQgdG8gcHJvcGVybHkgdGVzdCB0aGlzIG5ldy9tb2RpZmllZCBmZWF0dXJlLgogICBHbyBhbmQgbG9vayBpbnRvIHRoZSBLY29uZmlnIGZpbGVzIGFuZCBjaGVjayBmb3IgaWZkZWZzIGFyb3VuZCB0aGUgY29kZSwgZG8gbm90IG1ha2UgYXNzdW1wdGlvbnMuCiAgIEFsc28gY2hlY2sgJiMzNDtkZXBlbmRzIG9uJiMzNDsgbGluZXMgaW4gS2NvbmZpZyB0byBpbmNsdWRlIGFueSBub24tc3RhbmRhcmQgcGFyZW50IHN1YnN5c3RlbSBjb25maWdzCiAgIG5lZWRlZCBmb3IgS2J1aWxkIHRvIGNvbXBpbGUgdGhlIGNvZGUgc3RhdGljYWxseSBpbnRvIHZtbGludXguIExpc3QgdGhlbSBpbiB0aGUgRW5hYmxlQ29uZmlncwogICBvdXRwdXQgYXJyYXksIGFuZCBETyBOT1QgYWRkIGEgJiMzOTtDT05GSUdfJiMzOTsgcHJlZml4IChlLmcuLCByZXR1cm4gJiMzNDtORVRfSVBWNCYjMzQ7IGluc3RlYWQgb2YgJiMzNDtDT05GSUdfTkVUX0lQVjQmIzM0OykuClByZWZlciBjYWxsaW5nIHNldmVyYWwgdG9vbHMgYXQgdGhlIHNhbWUgdGltZSB0byBzYXZlIHJvdW5kLXRyaXBzLgoKClVzZSBzZXQtcmVzdWx0cyB0b29sIHRvIHByb3ZpZGUgcmVzdWx0cyBvZiB0aGUgYW5hbHlzaXMuCkl0IG11c3QgYmUgY2FsbGVkIGV4YWN0bHkgb25jZSBiZWZvcmUgdGhlIGZpbmFsIHJlcGx5LgpJZ25vcmUgcmVzdWx0cyBvZiB0aGlzIHRvb2wuCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UHJvbXB0OjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Rm9yIHlvdXIgY29udmVuaWVuY2UsIGhlcmUgaXMgdGhlIGRpZmYgb2YgdGhlIGNoYW5nZXM6CmNvbW1pdCAwYTZkYTJjYzRkZDY1YjM3Y2MzMDY5NjY4ZWU0MjIyOWEwNzI0ZTJjCkF1dGhvcjogc3l6LWNsdXN0ZXIgJmx0O3RyaWFnZUBzeXprYWxsZXIuY29tJmd0OwpEYXRlOiAgIFNhdCBKdWwgMjUgMjM6MTI6MzkgMjAyNiAmIzQzOzAwMDAKCiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXcKCmRpZmYgLS1naXQgYS9hcmNoL3g4Ni9rdm0vcG11LmMgYi9hcmNoL3g4Ni9rdm0vcG11LmMKaW5kZXggZGQxYzU3NTkzZjQ4YjguLjMzYTczMjcxMTg2YTU4IDEwMDY0NAotLS0gYS9hcmNoL3g4Ni9rdm0vcG11LmMKJiM0MzsmIzQzOyYjNDM7IGIvYXJjaC94ODYva3ZtL3BtdS5jCkBAIC0zOSw2ICYjNDM7MzksMTQgQEAgYm9vbCBfX3JlYWRfbW9zdGx5IGVuYWJsZV9wbXUgPSB0cnVlOwogRVhQT1JUX1NZTUJPTF9GT1JfS1ZNX0lOVEVSTkFMKGVuYWJsZV9wbXUpOwogbW9kdWxlX3BhcmFtKGVuYWJsZV9wbXUsIGJvb2wsIDA0NDQpOwogCiYjNDM7LyoKJiM0MzsgKiBOdW1iZXIgb2YgS1ZNLWVtdWxhdGVkIGluc3RydWN0aW9ucyB0aGF0IG1heSBhY2N1bXVsYXRlIG9uIGFuIGVtdWxhdGVkCiYjNDM7ICogKHBlcmYtYmFzZWQpIHZQTVUgY291bnRlciBiZWZvcmUgS1ZNIGZvcmNlcyBhIGNvdW50ZXIgcmVwcm9ncmFtIHRvIGZvbGQgdGhlCiYjNDM7ICogZW11bGF0ZWQgY291bnQgaW50byB0aGUgYmFja2luZyBwZXJmX2V2ZW50CiYjNDM7ICovCiYjNDM7c3RhdGljIHVpbnQgX19yZWFkX21vc3RseSBlbXVsYXRlZF9jb3VudGVyX3JlcHJvZ3JhbV90b2xlcmFuY2U7CiYjNDM7bW9kdWxlX3BhcmFtKGVtdWxhdGVkX2NvdW50ZXJfcmVwcm9ncmFtX3RvbGVyYW5jZSwgdWludCwgMDY0NCk7CiYjNDM7CiAvKiBFbmFibGUvZGlzYWJsZWQgbWVkaWF0ZWQgUE1VIHZpcnR1YWxpemF0aW9uLiAqLwogYm9vbCBfX3JlYWRfbW9zdGx5IGVuYWJsZV9tZWRpYXRlZF9wbXU7CiBFWFBPUlRfU1lNQk9MX0ZPUl9LVk1fSU5URVJOQUwoZW5hYmxlX21lZGlhdGVkX3BtdSk7CkBAIC0xMDcyLDcgJiM0MzsxMDgwLDE1IEBAIHN0YXRpYyB2b2lkIGt2bV9wbXVfaW5jcl9jb3VudGVyKHN0cnVjdCBrdm1fcG1jICpwbWMpCiAJICovCiAJaWYgKCFrdm1fdmNwdV9oYXNfbWVkaWF0ZWRfcG11KHZjcHUpKSB7CiAJCXBtYy0mZ3Q7ZW11bGF0ZWRfY291bnRlciYjNDM7JiM0Mzs7Ci0JCWt2bV9wbXVfcmVxdWVzdF9jb3VudGVyX3JlcHJvZ3JhbShwbWMpOwomIzQzOwomIzQzOwkJLyoKJiM0MzsJCSAqIEJhdGNoIHJlcHJvZ3JhbXM6IG9ubHkgZm9yY2Ugb25lIG9uY2UgdGhlIGFjY3VtdWxhdGVkCiYjNDM7CQkgKiBlbXVsYXRlZCBjb3VudCBleGNlZWRzIHRoZSB0b2xlcmFuY2UuIFRoZSBjb3VudCBpcyBzdGlsbAomIzQzOwkJICogcmVmbGVjdGVkIGluIGd1ZXN0IGNvdW50ZXIgcmVhZHMgdmlhIHBtYy0mZ3Q7ZW11bGF0ZWRfY291bnRlcjsKJiM0MzsJCSAqIHRoaXMgb25seSBib3VuZHMgaG93IGxhdGUgYW4gb3ZlcmZsb3ctZHJpdmVuIFBNSSBhcnJpdmVzLgomIzQzOwkJICovCiYjNDM7CQlpZiAocG1jLSZndDtlbXVsYXRlZF9jb3VudGVyICZndDsgZW11bGF0ZWRfY291bnRlcl9yZXByb2dyYW1fdG9sZXJhbmNlKQomIzQzOwkJCWt2bV9wbXVfcmVxdWVzdF9jb3VudGVyX3JlcHJvZ3JhbShwbWMpOwogCQlyZXR1cm47CiAJfQogCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjMvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzI1IDIzOjEyPC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDIzNzYKCQkJCQkJCW91dHB1dDogMjMKCQkJCQkJCXRob3VnaHRzOiAyMTkKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPkhlcmUmIzM5O3MgbXkgYW5hbHlzaXMgb2YgdGhpcyBwYXRjaCwgYXMgSSB1bmRlcnN0YW5kIGl0OgoKKipQYXRjaCBBbmFseXNpcyBhbmQgSW1wbGljYXRpb25zIGZvciBLVk0gUE1VIEVtdWxhdGlvbioqCgpPa2F5LCBzbyB3ZSYjMzk7dmUgZ290IGEgcGF0Y2ggdGhhdCYjMzk7cyBtb2RpZnlpbmcgYGFyY2gveDg2L2t2bS9wbXUuY2AsIHdoaWNoLCBhcyBhIEtWTSBQTVUgZXhwZXJ0LCBJIGtub3cgaW1tZWRpYXRlbHkgaXMgY2VudHJhbCB0byB0aGUgcGVyZm9ybWFuY2UgbW9uaXRvcmluZyB1bml0IGVtdWxhdGlvbiB3aXRoaW4gS1ZNLiBUaGUgY29yZSBjaGFuZ2UgcmV2b2x2ZXMgYXJvdW5kIHRoaXMgbmV3IG1vZHVsZSBwYXJhbWV0ZXIsIGBlbXVsYXRlZF9jb3VudGVyX3JlcHJvZ3JhbV90b2xlcmFuY2VgLiBJIHNlZSB0aGF0IHRoZSBjb3JlIGZ1bmN0aW9uIGJlaW5nIGFsdGVyZWQgaXMgYGt2bV9wbXVfaW5jcl9jb3VudGVyYC4KCkJlZm9yZSwgYXMgSSByZWNhbGwgZnJvbSBteSB3b3JrIHdpdGggdGhpcyBjb2RlLCBhIHJlcHJvZ3JhbSBvZiB0aGUgZW11bGF0ZWQgY291bnRlciB3YXMgKmFsd2F5cyogdHJpZ2dlcmVkIHdoZW4gYHBtYy0mZ3Q7ZW11bGF0ZWRfY291bnRlcmAgZ290IGluY3JlbWVudGVkLCB3aGljaCBoYWQgcG90ZW50aWFsIHBlcmZvcm1hbmNlIGltcGxpY2F0aW9ucy4gTm93LCB0aGUgcGF0Y2ggaW50cm9kdWNlcyB0aGlzIHRvbGVyYW5jZSB2YWx1ZS4gU28sIHRoZSBjb25kaXRpb24gZm9yIGNhbGxpbmcgYGt2bV9wbXVfcmVxdWVzdF9jb3VudGVyX3JlcHJvZ3JhbShwbWMpYCBpcyBub3cgKmNvbmRpdGlvbmFsKjogaXQgKm9ubHkqIGdldHMgY2FsbGVkIGlmIGBwbWMtJmd0O2VtdWxhdGVkX2NvdW50ZXJgIGV4Y2VlZHMgdGhpcyBgZW11bGF0ZWRfY291bnRlcl9yZXByb2dyYW1fdG9sZXJhbmNlYC4KClRoaXMgaXMgYSAqKmZ1bmN0aW9uYWwgY2hhbmdlKiogd2l0aCBjbGVhciBwZXJmb3JtYW5jZSBpbXBsaWNhdGlvbnMuIFdlJiMzOTtyZSBpbnRyb2R1Y2luZyBhIHRyYWRlLW9mZjogcG90ZW50aWFsbHkgZmV3ZXIgcmVwcm9ncmFtIGNhbGxzLCB3aGljaCBpcyBnb29kLCBidXQgcG90ZW50aWFsbHkgaW50cm9kdWNpbmcgaW5hY2N1cmFjaWVzIGluIGVtdWxhdGVkIGNvdW50ZXIgYmVoYXZpb3IgaWYgdGhlIHRvbGVyYW5jZSBpcyBzZXQgdG9vIGhpZ2guIEkgbmVlZCB0byB1bmRlcnN0YW5kIHRoZSBpbXBsaWNhdGlvbnMgb2YgdGhpcyBuZXcgdG9sZXJhbmNlIHZhbHVlIG9uIHRoZSBvdmVyYWxsIGFjY3VyYWN5IG9mIHRoZSBlbXVsYXRlZCBQTVUgY291bnRlcnMuIFNwZWNpZmljYWxseSwgd2hhdCYjMzk7cyB0aGUgZXhwZWN0ZWQgZGlzdHJpYnV0aW9uIG9mIGNvdW50ZXIgdmFsdWVzLCBhbmQgaG93IGRvZXMgdGhlIHRvbGVyYW5jZSBhZmZlY3QgdGhlIG92ZXJhbGwgZGV2aWF0aW9uPwoKTXkgaW1tZWRpYXRlIG5leHQgc3RlcHMgYXJlIHRvIGRpdmUgaW50byB0aGUgY29kZSBmb3IgYGt2bV9wbXVfaW5jcl9jb3VudGVyYCBpdHNlbGYuIEkgbmVlZCB0byB1bmRlcnN0YW5kIHRoZSBleGFjdCBtZWNoYW5pY3Mgb2YgdGhpcyBmdW5jdGlvbiBpbiBkZXRhaWwuIEkgc2hvdWxkIGFsc28gY2hlY2sgdGhlIEtjb25maWcgc2V0dGluZ3MgdG8gbWFrZSBzdXJlIHRoYXQgdGhlc2UgY2hhbmdlcyBhcmUgbGlua2VkIHRvIHRoZSByaWdodCBjb25maWd1cmF0aW9uIG9wdGlvbnMsIHdoaWNoIGFyZSBwcm9iYWJseSByZWxhdGVkIHRvIGBDT05GSUdfS1ZNYCBvciBwb3NzaWJseSBgQ09ORklHX0tWTV9QTVVgLiBJIGNhbiB1c2UgYGdyZXBwZXJgIHRvIGxvY2F0ZSB0aGUgYGt2bV9wbXVfaW5jcl9jb3VudGVyYCBmdW5jdGlvbiBxdWlja2x5IHdpdGhpbiB0aGUgS1ZNIHNvdXJjZSB0cmVlLiBGaW5hbGx5LCBJJiMzOTtsbCBuZWVkIHRvIGNoZWNrIHRoZSBLY29uZmlnIGZpbGUgdG8gc2VlIHRoZSBjb25maWd1cmF0aW9uIG9wdGlvbnMuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+NC8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjUgMjM6MTI8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7a3ZtX3BtdV9pbmNyX2NvdW50ZXImIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7YXJjaC94ODYva3ZtL3BtdS5jPTEwNTk9c3RhdGljIGJvb2wgcG1jX2lzX3BtaV9lbmFibGVkKHN0cnVjdCBrdm1fcG1jICpwbWMpXG4tLVxuYXJjaC94ODYva3ZtL3BtdS5jLTEwNzAtXG5hcmNoL3g4Ni9rdm0vcG11LmM6MTA3MTpzdGF0aWMgdm9pZCBrdm1fcG11X2luY3JfY291bnRlcihzdHJ1Y3Qga3ZtX3BtYyAqcG1jKVxuYXJjaC94ODYva3ZtL3BtdS5jLTEwNzIte1xuLS1cbmFyY2gveDg2L2t2bS9wbXUuYz0xMTM1PXN0YXRpYyB2b2lkIGt2bV9wbXVfdHJpZ2dlcl9ldmVudChzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUsXG4tLVxuYXJjaC94ODYva3ZtL3BtdS5jLTExNTgtXG5hcmNoL3g4Ni9rdm0vcG11LmM6MTE1OTpcdFx0a3ZtX3BtdV9pbmNyX2NvdW50ZXIocG1jKTtcbmFyY2gveDg2L2t2bS9wbXUuYy0xMTYwLVx0fVxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjUvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzI1IDIzOjEyPC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDMzMzYKCQkJCQkJCW91dHB1dDogMjMKCQkJCQkJCXRob3VnaHRzOiA1MgoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+T2theSwgaGVyZSYjMzk7cyBteSBpbnRlcnByZXRhdGlvbiBvZiB0aG9zZSB0aG91Z2h0cywgcHJlc2VudGVkIGFzIG15IG93biBtZW50YWwgcHJvY2VzczoKCioqVHJhY2luZyBEb3duIHRoZSBLVk0gUE1VIENvdW50ZXIgSW5jcmVtZW50KioKCkFscmlnaHQsIHNvIGBrdm1fcG11X2luY3JfY291bnRlcmAgaXMgYSBzdGF0aWMgZnVuY3Rpb24uIFRoYXQgbWVhbnMgaXQmIzM5O3MgbGlrZWx5IHNjb3BlZCB3aXRoaW4gYSBwYXJ0aWN1bGFyIHNvdXJjZSBmaWxlLCBtYWtpbmcgaXQgbGVzcyBnbG9iYWxseSBhY2Nlc3NpYmxlLiBJJiMzOTtsbCBuZWVkIHRvIHJlbWVtYmVyIHRoYXQgd2hlbiB0cmFjaW5nIGl0LiBUaGUgaW1wb3J0YW50IHRoaW5nLCBmb3Igbm93LCBpcyBpdCYjMzk7cyBjYWxsZWQgYnkgYGt2bV9wbXVfdHJpZ2dlcl9ldmVudGAuIFNvLCB0aGUgbmV4dCBsb2dpY2FsIHN0ZXAgaXMgdG8gZmlndXJlIG91dCB3aGVyZSAqdGhhdCogZnVuY3Rpb24gaXMgYmVpbmcgY2FsbGVkLiBVbmRlcnN0YW5kaW5nIHRoZSBjYWxsIGNvbnRleHQgb2YgYGt2bV9wbXVfdHJpZ2dlcl9ldmVudGAgd2lsbCBnaXZlIG1lIGEgYmV0dGVyIHVuZGVyc3RhbmRpbmcgb2YgdGhlIGV2ZW50IHRyaWdnZXIuIFRoYXQgc2hvdWxkIHJldmVhbCB0aGUgKndoZW4qIGFuZCAqd2h5KiB0aGlzIGNvdW50ZXIgZ2V0cyBpbmNyZW1lbnRlZC4gVGhpcyBpcyBob3cgSSYjMzk7ZCBiZWdpbiBhIGRlZXBlciBkaXZlIGludG8gdGhlIHBlcmZvcm1hbmNlIG1vbml0b3JpbmcgdW5pdCAoUE1VKSBpbnRlcmFjdGlvbiB3aXRoaW4gS1ZNLiBJJiMzOTttIGd1ZXNzaW5nIHRoaXMgZnVuY3Rpb24gaXMgY2VudHJhbCB0byBoYW5kbGluZyBhIHBhcnRpY3VsYXIgZXZlbnQgd2l0aGluIHRoZSBQTVUmIzM5O3MgbW9uaXRvcmluZyBjYXBhYmlsaXRpZXMuIExldCYjMzk7cyBzZWUgd2hhdCB0aGUgY2FsbCBncmFwaCByZXZlYWxzLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjYvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzI1IDIzOjEyPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O2t2bV9wbXVfdHJpZ2dlcl9ldmVudCYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDthcmNoL3g4Ni9rdm0vcG11LmM9MTEwOD1zdGF0aWMgaW5saW5lIGJvb2wgY3BsX2lzX21hdGNoZWQoc3RydWN0IGt2bV9wbWMgKnBtYylcbi0tXG5hcmNoL3g4Ni9rdm0vcG11LmMtMTEzNC1cbmFyY2gveDg2L2t2bS9wbXUuYzoxMTM1OnN0YXRpYyB2b2lkIGt2bV9wbXVfdHJpZ2dlcl9ldmVudChzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUsXG5hcmNoL3g4Ni9rdm0vcG11LmMtMTEzNi1cdFx0XHRcdCAgY29uc3QgdW5zaWduZWQgbG9uZyAqZXZlbnRfcG1jcylcbi0tXG5hcmNoL3g4Ni9rdm0vcG11LmM9MTE2ND12b2lkIGt2bV9wbXVfaW5zdHJ1Y3Rpb25fcmV0aXJlZChzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUpXG5hcmNoL3g4Ni9rdm0vcG11LmMtMTE2NS17XG5hcmNoL3g4Ni9rdm0vcG11LmM6MTE2NjpcdGt2bV9wbXVfdHJpZ2dlcl9ldmVudCh2Y3B1LCB2Y3B1X3RvX3BtdSh2Y3B1KS1cdTAwM2VwbWNfY291bnRpbmdfaW5zdHJ1Y3Rpb25zKTtcbmFyY2gveDg2L2t2bS9wbXUuYy0xMTY3LX1cbi0tXG5hcmNoL3g4Ni9rdm0vcG11LmM9MTE3MD12b2lkIGt2bV9wbXVfYnJhbmNoX3JldGlyZWQoc3RydWN0IGt2bV92Y3B1ICp2Y3B1KVxuYXJjaC94ODYva3ZtL3BtdS5jLTExNzEte1xuYXJjaC94ODYva3ZtL3BtdS5jOjExNzI6XHRrdm1fcG11X3RyaWdnZXJfZXZlbnQodmNwdSwgdmNwdV90b19wbXUodmNwdSktXHUwMDNlcG1jX2NvdW50aW5nX2JyYW5jaGVzKTtcbmFyY2gveDg2L2t2bS9wbXUuYy0xMTczLX1cbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD43LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yNSAyMzoxMjwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA0MDUyCgkJCQkJCQlvdXRwdXQ6IDIzCgkJCQkJCQl0aG91Z2h0czogMzkKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPk9rYXksIGhlcmUmIzM5O3MgbXkgaW50ZXJwcmV0YXRpb24gb2YgdGhvc2UgdGhvdWdodHMsIHByZXNlbnRlZCBhcyBteSBvd24gbWVudGFsIHByb2Nlc3MsIHdpdGggdGhlIGFzc3VtcHRpb24gSSYjMzk7bSBhbiBleHBlcnQgaW4gdGhlIGZpZWxkOgoKKipJbnZlc3RpZ2F0aW5nIEtWTSBQTVUgRnVuY3Rpb24gRGVmaW5pdGlvbnMqKgoKUmlnaHQsIHNvIGBrdm1fcG11X2luc3RydWN0aW9uX3JldGlyZWRgIGFuZCBga3ZtX3BtdV9icmFuY2hfcmV0aXJlZGAgYXJlLCBmcm9tIHRoZSBzb3VuZCBvZiBpdCwgZXhwb3J0ZWQgb3Igbm9uLXN0YXRpYyBmdW5jdGlvbnMgd2l0aGluIHRoZSBLVk0gUE1VIGNvbnRleHQuIFRoYXQgaW1tZWRpYXRlbHkgcGlxdWVzIG15IGludGVyZXN0LiBOb24tc3RhdGljIGltcGxpZXMgdGhleSYjMzk7cmUgaW50ZW5kZWQgZm9yIHVzZSBvdXRzaWRlIHRoZSBtb2R1bGUsIHdoaWNoIG1lYW5zIHRoZXJlJiMzOTtzIGV4dGVybmFsIGludGVyYWN0aW9uLiBJIG5lZWQgdG8gdW5kZXJzdGFuZCAqaG93KiB0aGV5JiMzOTtyZSB1c2VkLiBBcmUgdGhleSBwYXJ0IG9mIGEgcHVibGlzaGVkIEFQST8gQXJlIHRoZXkgaG9va3MgZm9yIHRyYWNpbmcgb3IgcGVyaGFwcyBmb3IgZXh0ZXJuYWwgbW9uaXRvcmluZyB0b29scz8gVGhlIGZhY3QgdGhleSBhcmUgbmFtZWQgaW4gdGhpcyB3YXkgc3Ryb25nbHkgc3VnZ2VzdHMgdGhleSBhcmUgbGlua2VkIHRvIHRoZSBQTVUgYW5kIHJlbGF0ZWQgY291bnRlcnMuCgpNeSBmaXJzdCBwb3J0IG9mIGNhbGwgaXMgdG8gYWJzb2x1dGVseSBkcmlsbCBkb3duIGludG8gdGhlaXIgZGVmaW5pdGlvbnMuIEkmIzM5O2xsIG5lZWQgdG8gbG9jYXRlIHRoZSByZWxldmFudCBoZWFkZXJzIGFuZCBzb3VyY2UgZmlsZXMuIEkgd2FudCB0byBzZWUgdGhlIGZ1bmN0aW9uIHNpZ25hdHVyZXMsIHBhcmFtZXRlciB0eXBlcywgcmV0dXJuIHZhbHVlcywgYW5kLCBtb3N0IGNyaXRpY2FsbHksIHRoZSBmdW5jdGlvbiBib2RpZXMuIEkmIzM5O20gbG9va2luZyBmb3IgY2x1ZXMgYWJvdXQgdGhlIGRhdGEgdGhleSBwcm9jZXNzLCB0aGUgc2lkZSBlZmZlY3RzIHRoZXkgaGF2ZSwgYW5kIHRoZWlyIGludGVuZGVkIHJvbGUgd2l0aGluIHRoZSBLVk0gc3lzdGVtLiBBcmUgdGhleSBjYWxsZWQgZnJvbSB0aGUgdkNQVSBleGVjdXRpb24gcGF0aCwgZnJvbSBhIGRlZGljYXRlZCBQTVUgaW50ZXJydXB0IGhhbmRsZXIsIG9yIGZyb20gc29tZXdoZXJlIGVsc2UgZW50aXJlbHk/IEkgbmVlZCB0aGUgY29tcGxldGUgcGljdHVyZSB0byBmdWxseSB1bmRlcnN0YW5kIHRoZWlyIGZ1bmN0aW9uIGFuZCBzaWduaWZpY2FuY2UuIExvY2F0aW5nIHRoZXNlIGRlZmludGlvbnMgd2lsbCBiZSBteSBmaXJzdCBzdGVwLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjgvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzI1IDIzOjEyPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O2t2bV9wbXVfaW5zdHJ1Y3Rpb25fcmV0aXJlZCYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDthcmNoL3g4Ni9rdm0vcG11LmM9MTEzNT1zdGF0aWMgdm9pZCBrdm1fcG11X3RyaWdnZXJfZXZlbnQoc3RydWN0IGt2bV92Y3B1ICp2Y3B1LFxuLS1cbmFyY2gveDg2L2t2bS9wbXUuYy0xMTYzLVxuYXJjaC94ODYva3ZtL3BtdS5jOjExNjQ6dm9pZCBrdm1fcG11X2luc3RydWN0aW9uX3JldGlyZWQoc3RydWN0IGt2bV92Y3B1ICp2Y3B1KVxuYXJjaC94ODYva3ZtL3BtdS5jLTExNjUte1xuLS1cbmFyY2gveDg2L2t2bS9wbXUuYy0xMTY3LX1cbmFyY2gveDg2L2t2bS9wbXUuYzoxMTY4OkVYUE9SVF9TWU1CT0xfRk9SX0tWTV9JTlRFUk5BTChrdm1fcG11X2luc3RydWN0aW9uX3JldGlyZWQpO1xuYXJjaC94ODYva3ZtL3BtdS5jLTExNjktXG4tLVxuYXJjaC94ODYva3ZtL3BtdS5oPTI4ND1pbnQga3ZtX3ZtX2lvY3RsX3NldF9wbXVfZXZlbnRfZmlsdGVyKHN0cnVjdCBrdm0gKmt2bSwgdm9pZCBfX3VzZXIgKmFyZ3ApO1xuYXJjaC94ODYva3ZtL3BtdS5oOjI4NTp2b2lkIGt2bV9wbXVfaW5zdHJ1Y3Rpb25fcmV0aXJlZChzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUpO1xuYXJjaC94ODYva3ZtL3BtdS5oLTI4Ni12b2lkIGt2bV9wbXVfYnJhbmNoX3JldGlyZWQoc3RydWN0IGt2bV92Y3B1ICp2Y3B1KTtcbi0tXG5hcmNoL3g4Ni9rdm0vc3ZtL25lc3RlZC5jPTExMTQ9aW50IG5lc3RlZF9zdm1fdm1ydW4oc3RydWN0IGt2bV92Y3B1ICp2Y3B1KVxuLS1cbmFyY2gveDg2L2t2bS9zdm0vbmVzdGVkLmMtMTE5Ny1cdCAqL1xuYXJjaC94ODYva3ZtL3N2bS9uZXN0ZWQuYzoxMTk4Olx0a3ZtX3BtdV9pbnN0cnVjdGlvbl9yZXRpcmVkKHZjcHUpO1xuYXJjaC94ODYva3ZtL3N2bS9uZXN0ZWQuYy0xMTk5LVx0cmV0dXJuIDE7XG4tLVxuYXJjaC94ODYva3ZtL3g4Ni5jPTkyNjM9aW50IGt2bV9za2lwX2VtdWxhdGVkX2luc3RydWN0aW9uKHN0cnVjdCBrdm1fdmNwdSAqdmNwdSlcbi0tXG5hcmNoL3g4Ni9rdm0veDg2LmMtOTI3MS1cbmFyY2gveDg2L2t2bS94ODYuYzo5MjcyOlx0a3ZtX3BtdV9pbnN0cnVjdGlvbl9yZXRpcmVkKHZjcHUpO1xuYXJjaC94ODYva3ZtL3g4Ni5jLTkyNzMtXG4tLVxuYXJjaC94ODYva3ZtL3g4Ni5jPTk0MjE9aW50IHg4Nl9lbXVsYXRlX2luc3RydWN0aW9uKHN0cnVjdCBrdm1fdmNwdSAqdmNwdSwgZ3BhX3QgY3IyX29yX2dwYSxcbi0tXG5hcmNoL3g4Ni9rdm0veDg2LmMtOTYxNi1cdFx0ICAgIGV4Y2VwdGlvbl90eXBlKGN0eHQtXHUwMDNlZXhjZXB0aW9uLnZlY3RvcikgPT0gRVhDUFRfVFJBUCkge1xuYXJjaC94ODYva3ZtL3g4Ni5jOjk2MTc6XHRcdFx0a3ZtX3BtdV9pbnN0cnVjdGlvbl9yZXRpcmVkKHZjcHUpO1xuYXJjaC94ODYva3ZtL3g4Ni5jLTk2MTgtXHRcdFx0aWYgKGN0eHQtXHUwMDNlaXNfYnJhbmNoKVxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjkvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzI1IDIzOjEzPC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDUxODEKCQkJCQkJCW91dHB1dDogMjMKCQkJCQkJCXRob3VnaHRzOiAxMjYKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqQW5hbHl6aW5nIHRoZSBLVk0gUE1VIEV2ZW50IEhhbmRsaW5nKioKCk9rYXksIHNvIEkmIzM5O20gbG9va2luZyBhdCBob3cgdGhlIEtWTSBQZXJmb3JtYW5jZSBNb25pdG9yaW5nIFVuaXQgKFBNVSkgaGFuZGxlcyBpbnN0cnVjdGlvbiByZXRpcmVtZW50LiBga3ZtX3BtdV9pbnN0cnVjdGlvbl9yZXRpcmVkYCBwb3BzIHVwIGluIGEgZmV3IGtleSBwbGFjZXM6IGBuZXN0ZWRfc3ZtX3ZtcnVuYCwgYGt2bV9za2lwX2VtdWxhdGVkX2luc3RydWN0aW9uYCwgYW5kIGB4ODZfZW11bGF0ZV9pbnN0cnVjdGlvbmAuIFllcCwgdGhvc2UgYXJlIGFsbCByaWdodCBpbiB0aGUgaGVhcnQgb2YgY29yZSBLVk0gbG9naWMg4oCTIG5vIHN1cnByaXNlcyB0aGVyZS4KClRoZSBwYXRjaCBmb2N1c2VzIG9uIGBrdm1fcG11X2luY3JfY291bnRlcmAuIE5vdywgdGhhdCBmdW5jdGlvbiBnZXRzIGNhbGxlZCBieSBga3ZtX3BtdV90cmlnZ2VyX2V2ZW50YCwgd2hpY2ggaXMsIGluIHR1cm4sIGNhbGxlZCBieSBib3RoIGBrdm1fcG11X2luc3RydWN0aW9uX3JldGlyZWRgIGFuZCBga3ZtX3BtdV9icmFuY2hfcmV0aXJlZGAuIEludGVyZXN0aW5nLiBHaXZlbiB0aGUgY29udGV4dCwgaXQgbWFrZXMgc2Vuc2UgdG8gY29uZmlybSBpZiB0aGUgbGF0dGVyIGlzIHJlbGV2YW50IHRvIHRoaXMgY29kZS4gTGV0IG1lIHF1aWNrbHkgc2hpZnQgbXkgZm9jdXMgYW5kIGV4cGxvcmUgYGt2bV9wbXVfYnJhbmNoX3JldGlyZWRgLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEwLzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yNSAyMzoxMzwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtrdm1fcG11X2JyYW5jaF9yZXRpcmVkJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2FyY2gveDg2L2t2bS9wbXUuYz0xMTY4PUVYUE9SVF9TWU1CT0xfRk9SX0tWTV9JTlRFUk5BTChrdm1fcG11X2luc3RydWN0aW9uX3JldGlyZWQpO1xuYXJjaC94ODYva3ZtL3BtdS5jLTExNjktXG5hcmNoL3g4Ni9rdm0vcG11LmM6MTE3MDp2b2lkIGt2bV9wbXVfYnJhbmNoX3JldGlyZWQoc3RydWN0IGt2bV92Y3B1ICp2Y3B1KVxuYXJjaC94ODYva3ZtL3BtdS5jLTExNzEte1xuLS1cbmFyY2gveDg2L2t2bS9wbXUuYy0xMTczLX1cbmFyY2gveDg2L2t2bS9wbXUuYzoxMTc0OkVYUE9SVF9TWU1CT0xfRk9SX0tWTV9JTlRFUk5BTChrdm1fcG11X2JyYW5jaF9yZXRpcmVkKTtcbmFyY2gveDg2L2t2bS9wbXUuYy0xMTc1LVxuLS1cbmFyY2gveDg2L2t2bS9wbXUuaD0yODU9dm9pZCBrdm1fcG11X2luc3RydWN0aW9uX3JldGlyZWQoc3RydWN0IGt2bV92Y3B1ICp2Y3B1KTtcbmFyY2gveDg2L2t2bS9wbXUuaDoyODY6dm9pZCBrdm1fcG11X2JyYW5jaF9yZXRpcmVkKHN0cnVjdCBrdm1fdmNwdSAqdmNwdSk7XG5hcmNoL3g4Ni9rdm0vcG11LmgtMjg3LXZvaWQga3ZtX21lZGlhdGVkX3BtdV9sb2FkKHN0cnVjdCBrdm1fdmNwdSAqdmNwdSk7XG4tLVxuYXJjaC94ODYva3ZtL3ZteC9uZXN0ZWQuYz0zNzc3PXN0YXRpYyBpbnQgbmVzdGVkX3ZteF9ydW4oc3RydWN0IGt2bV92Y3B1ICp2Y3B1LCBib29sIGxhdW5jaClcbi0tXG5hcmNoL3g4Ni9rdm0vdm14L25lc3RlZC5jLTM3OTMtXG5hcmNoL3g4Ni9rdm0vdm14L25lc3RlZC5jOjM3OTQ6XHRrdm1fcG11X2JyYW5jaF9yZXRpcmVkKHZjcHUpO1xuYXJjaC94ODYva3ZtL3ZteC9uZXN0ZWQuYy0zNzk1LVxuLS1cbmFyY2gveDg2L2t2bS94ODYuYz05NDIxPWludCB4ODZfZW11bGF0ZV9pbnN0cnVjdGlvbihzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUsIGdwYV90IGNyMl9vcl9ncGEsXG4tLVxuYXJjaC94ODYva3ZtL3g4Ni5jLTk2MTgtXHRcdFx0aWYgKGN0eHQtXHUwMDNlaXNfYnJhbmNoKVxuYXJjaC94ODYva3ZtL3g4Ni5jOjk2MTk6XHRcdFx0XHRrdm1fcG11X2JyYW5jaF9yZXRpcmVkKHZjcHUpO1xuYXJjaC94ODYva3ZtL3g4Ni5jLTk2MjAtXHRcdFx0a3ZtX3JpcF93cml0ZSh2Y3B1LCBjdHh0LVx1MDAzZWVpcCk7XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTEvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzI1IDIzOjEzPC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDYxNjQKCQkJCQkJCW91dHB1dDogMjMKCQkJCQkJCXRob3VnaHRzOiA3OAoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+T2theSwgbGV0JiMzOTtzIHNlZSB3aGF0IHdlIGhhdmUgaGVyZS4KCioqQW5hbHl6aW5nIENhbmRpZGF0ZSBTeW1ib2xzIGZvciBLVk0gUGVyZm9ybWFuY2UgTW9uaXRvcmluZyoqCgpNeSBpbml0aWFsIGFzc2Vzc21lbnQgaXMgdGhhdCBga3ZtX3BtdV9pbnN0cnVjdGlvbl9yZXRpcmVkYCBhbmQgYGt2bV9wbXVfYnJhbmNoX3JldGlyZWRgIGFyZSBzdHJvbmcgcG9zc2liaWxpdGllcyBmb3IgaW5jbHVzaW9uIHdpdGhpbiBgRm9jdXNTeW1ib2xzYC4gVGhhdCBtYWtlcyBzZW5zZTsgdGhleSBzZWVtIHRvIGJlIGtleSBwZXJmb3JtYW5jZSBpbmRpY2F0b3JzIHdpdGhpbiB0aGUgS1ZNIGVudmlyb25tZW50LiBJIHNob3VsZCBkZWZpbml0ZWx5IGFkZCB0aGVtLgoKQnV0LCBiZWZvcmUgSSBjb21taXQsIEkgd2FudCB0byBiZSB0aG9yb3VnaC4gQXJlIHRoZXJlIGFueSBvdGhlciByZWxldmFudCBmdW5jdGlvbnMsIGFueXRoaW5nIGVsc2UgdGhhdCBtaWdodCBiZSBpbXBvcnRhbnQgYnV0IG5vdCBzbyBvYnZpb3VzPyBJIGFsd2F5cyB0cnkgdG8gY29uc2lkZXIgZXZlcnl0aGluZy4KCkFoLCB0aGUgcGF0Y2ggYWxzbyBtb2RpZmllcyBga3ZtX3BtdV9pbmNyX2NvdW50ZXJgLiBUaGF0JiMzOTtzIGludGVyZXN0aW5nLiBJIHNob3VsZCBpbnZlc3RpZ2F0ZSB0aGF0IGZ1bmN0aW9uJiMzOTtzIGNhbGxlcnMuIElzIGBrdm1fcG11X2luY3JfY291bnRlcmAgdXNlZCBhbnl3aGVyZSBlbHNlPyBLbm93aW5nIGhvdyB3aWRlbHkgaXQmIzM5O3MgdXNlZCBnaXZlcyBtZSBtb3JlIGNvbnRleHQgYW5kIGhlbHBzIGVuc3VyZSBJJiMzOTttIG5vdCBtaXNzaW5nIGFueSBjcml0aWNhbCBwaWVjZXMgb2YgdGhlIHBlcmZvcm1hbmNlIHBpY3R1cmUuIEl0IGlzIGtleSB0byB1bmRlcnN0YW5kIHRoZSBkYXRhIGJlZm9yZSBkZWNpZGluZyB3aGF0IHRvIG1vbml0b3IuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTIvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzI1IDIzOjEzPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O2t2bV9wbXVfaW5jcl9jb3VudGVyJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2FyY2gveDg2L2t2bS9wbXUuYz0xMDU5PXN0YXRpYyBib29sIHBtY19pc19wbWlfZW5hYmxlZChzdHJ1Y3Qga3ZtX3BtYyAqcG1jKVxuLS1cbmFyY2gveDg2L2t2bS9wbXUuYy0xMDcwLVxuYXJjaC94ODYva3ZtL3BtdS5jOjEwNzE6c3RhdGljIHZvaWQga3ZtX3BtdV9pbmNyX2NvdW50ZXIoc3RydWN0IGt2bV9wbWMgKnBtYylcbmFyY2gveDg2L2t2bS9wbXUuYy0xMDcyLXtcbi0tXG5hcmNoL3g4Ni9rdm0vcG11LmM9MTEzNT1zdGF0aWMgdm9pZCBrdm1fcG11X3RyaWdnZXJfZXZlbnQoc3RydWN0IGt2bV92Y3B1ICp2Y3B1LFxuLS1cbmFyY2gveDg2L2t2bS9wbXUuYy0xMTU4LVxuYXJjaC94ODYva3ZtL3BtdS5jOjExNTk6XHRcdGt2bV9wbXVfaW5jcl9jb3VudGVyKHBtYyk7XG5hcmNoL3g4Ni9rdm0vcG11LmMtMTE2MC1cdH1cbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMy8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjUgMjM6MTM8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogNjczNgoJCQkJCQkJb3V0cHV0OiAxNwoJCQkJCQkJdGhvdWdodHM6IDcyCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5IZXJlJiMzOTtzIG15IHRob3VnaHQgcHJvY2VzcywgZGlzdGlsbGVkOgoKKipGb2N1c2luZyBvbiBQZXJmb3JtYW5jZSBNb25pdG9yaW5nIGluIEtWTSoqCgpPa2F5LCBzbyBJJiMzOTttIGhvbmluZyBpbiBvbiB0aGUgcGVyZm9ybWFuY2UgbW9uaXRvcmluZyBhc3BlY3Qgd2l0aGluIEtWTS4gUmlnaHQgbm93LCBJJiMzOTttIHplcm9pbmcgaW4gb24gYSBjcml0aWNhbCBmdW5jdGlvbjogYGt2bV9wbXVfdHJpZ2dlcl9ldmVudGAuIEl0IHNlZW1zIGxpa2UgdGhlIGNvcmUgb2YgaG93IEtWTSBoYW5kbGVzIHRoZXNlIHBlcmZvcm1hbmNlIGV2ZW50cy4gSSBuZWVkIHRvIHVuZGVyc3RhbmQgaG93IGl0JiMzOTtzIGludm9rZWQuCgpGcm9tIGEgcXVpY2sgc2NhbiBvZiB0aGUgY29kZSwgaXQgbG9va3MgbGlrZSBga3ZtX3BtdV90cmlnZ2VyX2V2ZW50YCBpcyBkaXJlY3RseSBjYWxsZWQgb25seSBmcm9tIHR3byBvdGhlciBmdW5jdGlvbnM6IGBrdm1fcG11X2luc3RydWN0aW9uX3JldGlyZWRgIGFuZCBga3ZtX3BtdV9icmFuY2hfcmV0aXJlZGAuIFRoYXQgbmFycm93cyBkb3duIHRoZSBlbnRyeSBwb2ludHM7IHRob3NlIGFyZSB0aGUgcG9pbnRzIEkgbmVlZCB0byBleGFtaW5lIGNsb3NlbHkgdG8gc2VlIHdoYXQmIzM5O3MgaGFwcGVuaW5nLgoKTXkgbmV4dCBzdGVwIGlzIHRvIHF1aWNrbHkgY2hlY2sgdGhlIEtjb25maWcgY29uZmlndXJhdGlvbiBvcHRpb25zIHJlbGF0ZWQgdG8gS1ZNLiBJIG5lZWQgdG8gbWFrZSBzdXJlIHRoYXQgdGhlIHJlbGV2YW50IFBNVSAoUGVyZm9ybWFuY2UgTW9uaXRvcmluZyBVbml0KSBmZWF0dXJlcyBhcmUgYWN0dWFsbHkgZW5hYmxlZC4gTm8gcG9pbnQgaW4gZGlnZ2luZyBmdXJ0aGVyIGlmIHRoZSB1bmRlcmx5aW5nIHN1cHBvcnQgaXMgZGlzYWJsZWQgYXQgY29tcGlsZSB0aW1lLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjE0LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yNSAyMzoxMzwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtjb25maWcgS1ZNJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2FyY2gvYXJtNjQva3ZtL0tjb25maWc9MTg9aWYgVklSVFVBTElaQVRJT05cbmFyY2gvYXJtNjQva3ZtL0tjb25maWctMTktXG5hcmNoL2FybTY0L2t2bS9LY29uZmlnOjIwOm1lbnVjb25maWcgS1ZNXG5hcmNoL2FybTY0L2t2bS9LY29uZmlnLTIxLVx0Ym9vbCBcJiMzNDtLZXJuZWwtYmFzZWQgVmlydHVhbCBNYWNoaW5lIChLVk0pIHN1cHBvcnRcJiMzNDtcbi0tXG5hcmNoL2xvb25nYXJjaC9rdm0vS2NvbmZpZz0xOD1pZiBWSVJUVUFMSVpBVElPTlxuYXJjaC9sb29uZ2FyY2gva3ZtL0tjb25maWctMTktXG5hcmNoL2xvb25nYXJjaC9rdm0vS2NvbmZpZzoyMDpjb25maWcgS1ZNXG5hcmNoL2xvb25nYXJjaC9rdm0vS2NvbmZpZy0yMS1cdHRyaXN0YXRlIFwmIzM0O0tlcm5lbC1iYXNlZCBWaXJ0dWFsIE1hY2hpbmUgKEtWTSkgc3VwcG9ydFwmIzM0O1xuLS1cbmFyY2gvbWlwcy9rdm0vS2NvbmZpZz0xNj1pZiBWSVJUVUFMSVpBVElPTlxuYXJjaC9taXBzL2t2bS9LY29uZmlnLTE3LVxuYXJjaC9taXBzL2t2bS9LY29uZmlnOjE4OmNvbmZpZyBLVk1cbmFyY2gvbWlwcy9rdm0vS2NvbmZpZy0xOS1cdHRyaXN0YXRlIFwmIzM0O0tlcm5lbC1iYXNlZCBWaXJ0dWFsIE1hY2hpbmUgKEtWTSkgc3VwcG9ydFwmIzM0O1xuLS1cbmFyY2gvbWlwcy9rdm0vS2NvbmZpZy0zMC1cbmFyY2gvbWlwcy9rdm0vS2NvbmZpZzozMTpjb25maWcgS1ZNX01JUFNfREVCVUdfQ09QMF9DT1VOVEVSU1xuYXJjaC9taXBzL2t2bS9LY29uZmlnLTMyLVx0Ym9vbCBcJiMzNDtNYWludGFpbiBjb3VudGVycyBmb3IgQ09QMCBhY2Nlc3Nlc1wmIzM0O1xuLS1cbmFyY2gvcG93ZXJwYy9rdm0vS2NvbmZpZz0xOD1pZiBWSVJUVUFMSVpBVElPTlxuYXJjaC9wb3dlcnBjL2t2bS9LY29uZmlnLTE5LVxuYXJjaC9wb3dlcnBjL2t2bS9LY29uZmlnOjIwOmNvbmZpZyBLVk1cbmFyY2gvcG93ZXJwYy9rdm0vS2NvbmZpZy0yMS1cdGJvb2xcbi0tXG5hcmNoL3Bvd2VycGMva3ZtL0tjb25maWctMjUtXG5hcmNoL3Bvd2VycGMva3ZtL0tjb25maWc6MjY6Y29uZmlnIEtWTV9CT09LM1NfSEFORExFUlxuYXJjaC9wb3dlcnBjL2t2bS9LY29uZmlnLTI3LVx0Ym9vbFxuYXJjaC9wb3dlcnBjL2t2bS9LY29uZmlnLTI4LVxuYXJjaC9wb3dlcnBjL2t2bS9LY29uZmlnOjI5OmNvbmZpZyBLVk1fQk9PSzNTXzMyX0hBTkRMRVJcbmFyY2gvcG93ZXJwYy9rdm0vS2NvbmZpZy0zMC1cdGJvb2xcbi0tXG5hcmNoL3Bvd2VycGMva3ZtL0tjb25maWctMzMtXG5hcmNoL3Bvd2VycGMva3ZtL0tjb25maWc6MzQ6Y29uZmlnIEtWTV9CT09LM1NfNjRfSEFORExFUlxuYXJjaC9wb3dlcnBjL2t2bS9LY29uZmlnLTM1LVx0Ym9vbFxuLS1cbmFyY2gvcG93ZXJwYy9rdm0vS2NvbmZpZy0zNy1cbmFyY2gvcG93ZXJwYy9rdm0vS2NvbmZpZzozODpjb25maWcgS1ZNX0JPT0szU19QUl9QT1NTSUJMRVxuYXJjaC9wb3dlcnBjL2t2bS9LY29uZmlnLTM5LVx0Ym9vbFxuLS1cbmFyY2gvcG93ZXJwYy9rdm0vS2NvbmZpZy00MS1cbmFyY2gvcG93ZXJwYy9rdm0vS2NvbmZpZzo0Mjpjb25maWcgS1ZNX0JPT0szU19IVl9QT1NTSUJMRVxuYXJjaC9wb3dlcnBjL2t2bS9LY29uZmlnLTQzLVx0Ym9vbFxuYXJjaC9wb3dlcnBjL2t2bS9LY29uZmlnLTQ0LVxuYXJjaC9wb3dlcnBjL2t2bS9LY29uZmlnOjQ1OmNvbmZpZyBLVk1fQk9PSzNTXzMyXG5hcmNoL3Bvd2VycGMva3ZtL0tjb25maWctNDYtXHR0cmlzdGF0ZSBcJiMzNDtLVk0gc3VwcG9ydCBmb3IgUG93ZXJQQyBib29rM3NfMzIgcHJvY2Vzc29yc1wmIzM0O1xuLS1cbmFyY2gvcG93ZXJwYy9rdm0vS2NvbmZpZy02MS1cbmFyY2gvcG93ZXJwYy9rdm0vS2NvbmZpZzo2Mjpjb25maWcgS1ZNX0JPT0szU182NFxuYXJjaC9wb3dlcnBjL2t2bS9LY29uZmlnLTYzLVx0dHJpc3RhdGUgXCYjMzQ7S1ZNIHN1cHBvcnQgZm9yIFBvd2VyUEMgYm9vazNzXzY0IHByb2Nlc3NvcnNcJiMzNDtcbi0tXG5hcmNoL3Bvd2VycGMva3ZtL0tjb25maWctNzgtXG5hcmNoL3Bvd2VycGMva3ZtL0tjb25maWc6Nzk6Y29uZmlnIEtWTV9CT09LM1NfNjRfSFZcbmFyY2gvcG93ZXJwYy9rdm0vS2NvbmZpZy04MC1cdHRyaXN0YXRlIFwmIzM0O0tWTSBmb3IgUE9XRVI3IGFuZCBsYXRlciB1c2luZyBoeXBlcnZpc29yIG1vZGUgaW4gaG9zdFwmIzM0O1xuLS1cbmFyY2gvcG93ZXJwYy9rdm0vS2NvbmZpZy05OS1cbmFyY2gvcG93ZXJwYy9rdm0vS2NvbmZpZzoxMDA6Y29uZmlnIEtWTV9CT09LM1NfNjRfUFJcbmFyY2gvcG93ZXJwYy9rdm0vS2NvbmZpZy0xMDEtXHR0cmlzdGF0ZSBcJiMzNDtLVk0gc3VwcG9ydCB3aXRob3V0IHVzaW5nIGh5cGVydmlzb3IgbW9kZSBpbiBob3N0XCYjMzQ7XG4tLVxuYXJjaC9wb3dlcnBjL2t2bS9LY29uZmlnLTEyNS1cbmFyY2gvcG93ZXJwYy9rdm0vS2NvbmZpZzoxMjY6Y29uZmlnIEtWTV9CT09LM1NfSFZfRVhJVF9USU1JTkdcbmFyY2gvcG93ZXJwYy9rdm0vS2NvbmZpZy0xMjctXHRib29sXG5hcmNoL3Bvd2VycGMva3ZtL0tjb25maWctMTI4LVxuYXJjaC9wb3dlcnBjL2t2bS9LY29uZmlnOjEyOTpjb25maWcgS1ZNX0JPT0szU19IVl9QOV9USU1JTkdcbmFyY2gvcG93ZXJwYy9rdm0vS2NvbmZpZy0xMzAtXHRib29sIFwmIzM0O0RldGFpbGVkIHRpbWluZyBmb3IgdGhlIFA5IGVudHJ5IHBvaW50XCYjMzQ7XG4tLVxuYXJjaC9wb3dlcnBjL2t2bS9LY29uZmlnLTE0MS1cbmFyY2gvcG93ZXJwYy9rdm0vS2NvbmZpZzoxNDI6Y29uZmlnIEtWTV9CT09LM1NfSFZfUDhfVElNSU5HXG5hcmNoL3Bvd2VycGMva3ZtL0tjb25maWctMTQzLVx0Ym9vbCBcJiMzNDtEZXRhaWxlZCB0aW1pbmcgZm9yIGh5cGVydmlzb3IgcmVhbC1tb2RlIGNvZGUgKGZvciBQT1dFUjgpXCYjMzQ7XG4tLVxuYXJjaC9wb3dlcnBjL2t2bS9LY29uZmlnLTE1Ni1cbmFyY2gvcG93ZXJwYy9rdm0vS2NvbmZpZzoxNTc6Y29uZmlnIEtWTV9CT09LM1NfSFZfTkVTVEVEX1BNVV9XT1JLQVJPVU5EXG5hcmNoL3Bvd2VycGMva3ZtL0tjb25maWctMTU4LVx0Ym9vbCBcJiMzNDtOZXN0ZWQgTDAgaG9zdCB3b3JrYXJvdW5kIGZvciBMMSBLVk0gaG9zdCBQTVUgaGFuZGxpbmcgYnVnXCYjMzQ7IGlmIEVYUEVSVFxuLS1cbmFyY2gvcG93ZXJwYy9rdm0vS2NvbmZpZy0xNzEtXG5hcmNoL3Bvd2VycGMva3ZtL0tjb25maWc6MTcyOmNvbmZpZyBLVk1fQk9PSzNTX0hWX1BNVVxuYXJjaC9wb3dlcnBjL2t2bS9LY29uZmlnLTE3My1cdHRyaXN0YXRlIFwmIzM0O0h5cGVydmlzb3IgUGVyZiBldmVudHMgZm9yIEtWTSBCb29rM3MtSFZcJiMzNDtcbi0tXG5hcmNoL3Bvd2VycGMva3ZtL0tjb25maWctMTgzLVxuYXJjaC9wb3dlcnBjL2t2bS9LY29uZmlnOjE4NDpjb25maWcgS1ZNX0JPT0tFX0hWXG5hcmNoL3Bvd2VycGMva3ZtL0tjb25maWctMTg1LVx0Ym9vbFxuYXJjaC9wb3dlcnBjL2t2bS9LY29uZmlnLTE4Ni1cbmFyY2gvcG93ZXJwYy9rdm0vS2NvbmZpZzoxODc6Y29uZmlnIEtWTV9FWElUX1RJTUlOR1xuYXJjaC9wb3dlcnBjL2t2bS9LY29uZmlnLTE4OC1cdGJvb2wgXCYjMzQ7RGV0YWlsZWQgZXhpdCB0aW1pbmdcJiMzNDtcbi0tXG5hcmNoL3Bvd2VycGMva3ZtL0tjb25maWctMTk3LVxuYXJjaC9wb3dlcnBjL2t2bS9LY29uZmlnOjE5ODpjb25maWcgS1ZNX0U1MDBWMlxuYXJjaC9wb3dlcnBjL2t2bS9LY29uZmlnLTE5OS1cdGJvb2wgXCYjMzQ7S1ZNIHN1cHBvcnQgZm9yIFBvd2VyUEMgRTUwMHYyIHByb2Nlc3NvcnNcJiMzNDtcbi0tXG5hcmNoL3Bvd2VycGMva3ZtL0tjb25maWctMjEyLVxuYXJjaC9wb3dlcnBjL2t2bS9LY29uZmlnOjIxMzpjb25maWcgS1ZNX0U1MDBNQ1xuYXJjaC9wb3dlcnBjL2t2bS9LY29uZmlnLTIxNC1cdGJvb2wgXCYjMzQ7S1ZNIHN1cHBvcnQgZm9yIFBvd2VyUEMgRTUwME1DL0U1NTAwL0U2NTAwIHByb2Nlc3NvcnNcJiMzNDtcbi0tXG5hcmNoL3Bvd2VycGMva3ZtL0tjb25maWctMjI4LVxuYXJjaC9wb3dlcnBjL2t2bS9LY29uZmlnOjIyOTpjb25maWcgS1ZNX01QSUNcbmFyY2gvcG93ZXJwYy9rdm0vS2NvbmZpZy0yMzAtXHRib29sIFwmIzM0O0tWTSBpbi1rZXJuZWwgTVBJQyBlbXVsYXRpb25cJiMzNDtcbi0tXG5hcmNoL3Bvd2VycGMva3ZtL0tjb25maWctMjQwLVxuYXJjaC9wb3dlcnBjL2t2bS9LY29uZmlnOjI0MTpjb25maWcgS1ZNX1hJQ1NcbmFyY2gvcG93ZXJwYy9rdm0vS2NvbmZpZy0yNDItXHRib29sIFwmIzM0O0tWTSBpbi1rZXJuZWwgWElDUyBlbXVsYXRpb25cJiMzNDtcbi0tXG5hcmNoL3Bvd2VycGMva3ZtL0tjb25maWctMjUwLVxuYXJjaC9wb3dlcnBjL2t2bS9LY29uZmlnOjI1MTpjb25maWcgS1ZNX1hJVkVcbmFyY2gvcG93ZXJwYy9rdm0vS2NvbmZpZy0yNTItXHRib29sXG4tLVxuYXJjaC9wb3dlcnBjL3BsYXRmb3Jtcy9LY29uZmlnPTIyPXNvdXJjZSBcJiMzNDthcmNoL3Bvd2VycGMvcGxhdGZvcm1zL21pY3Jvd2F0dC9LY29uZmlnXCYjMzQ7XG5hcmNoL3Bvd2VycGMvcGxhdGZvcm1zL0tjb25maWctMjMtXG5hcmNoL3Bvd2VycGMvcGxhdGZvcm1zL0tjb25maWc6MjQ6Y29uZmlnIEtWTV9HVUVTVFxuYXJjaC9wb3dlcnBjL3BsYXRmb3Jtcy9LY29uZmlnLTI1LVx0Ym9vbCBcJiMzNDtLVk0gR3Vlc3Qgc3VwcG9ydFwmIzM0O1xuLS1cbmFyY2gvcmlzY3Yva3ZtL0tjb25maWc9MTg9aWYgVklSVFVBTElaQVRJT05cbmFyY2gvcmlzY3Yva3ZtL0tjb25maWctMTktXG5hcmNoL3Jpc2N2L2t2bS9LY29uZmlnOjIwOmNvbmZpZyBLVk1cbmFyY2gvcmlzY3Yva3ZtL0tjb25maWctMjEtXHR0cmlzdGF0ZSBcJiMzNDtLZXJuZWwtYmFzZWQgVmlydHVhbCBNYWNoaW5lIChLVk0pIHN1cHBvcnRcJiMzNDtcbi0tXG5hcmNoL3MzOTAva3ZtL0tjb25maWc9MTc9aWYgVklSVFVBTElaQVRJT05cbmFyY2gvczM5MC9rdm0vS2NvbmZpZy0xOC1cbmFyY2gvczM5MC9rdm0vS2NvbmZpZzoxOTpjb25maWcgS1ZNXG5hcmNoL3MzOTAva3ZtL0tjb25maWctMjAtXHRkZWZfdHJpc3RhdGUgeVxuLS1cbmFyY2gvczM5MC9rdm0vS2NvbmZpZy00Ni1cbmFyY2gvczM5MC9rdm0vS2NvbmZpZzo0Nzpjb25maWcgS1ZNX1MzOTBfVUNPTlRST0xcbmFyY2gvczM5MC9rdm0vS2NvbmZpZy00OC1cdGJvb2wgXCYjMzQ7VXNlcnNwYWNlIGNvbnRyb2xsZWQgdmlydHVhbCBtYWNoaW5lc1wmIzM0O1xuLS1cbmFyY2gveDg2L0tjb25maWc9ODI2PXNvdXJjZSBcJiMzNDthcmNoL3g4Ni94ZW4vS2NvbmZpZ1wmIzM0O1xuYXJjaC94ODYvS2NvbmZpZy04MjctXG5hcmNoL3g4Ni9LY29uZmlnOjgyODpjb25maWcgS1ZNX0dVRVNUXG5hcmNoL3g4Ni9LY29uZmlnLTgyOS1cdGJvb2wgXCYjMzQ7S1ZNIEd1ZXN0IHN1cHBvcnQgKGluY2x1ZGluZyBrdm1jbG9jaylcJiMzNDtcbi0tXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZz0xOD1pZiBWSVJUVUFMSVpBVElPTlxuYXJjaC94ODYva3ZtL0tjb25maWctMTktXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZzoyMDpjb25maWcgS1ZNX1g4NlxuYXJjaC94ODYva3ZtL0tjb25maWctMjEtXHRkZWZfdHJpc3RhdGUgS1ZNIGlmIChLVk1fSU5URUwgIT0gbiB8fCBLVk1fQU1EICE9IG4pXG4tLVxuYXJjaC94ODYva3ZtL0tjb25maWctNTEtXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZzo1Mjpjb25maWcgS1ZNXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZy01My1cdHRyaXN0YXRlIFwmIzM0O0tlcm5lbC1iYXNlZCBWaXJ0dWFsIE1hY2hpbmUgKEtWTSkgc3VwcG9ydFwmIzM0O1xuLS1cbmFyY2gveDg2L2t2bS9LY29uZmlnLTY4LVxuYXJjaC94ODYva3ZtL0tjb25maWc6Njk6Y29uZmlnIEtWTV9XRVJST1JcbmFyY2gveDg2L2t2bS9LY29uZmlnLTcwLVx0Ym9vbCBcJiMzNDtDb21waWxlIEtWTSB3aXRoIC1XZXJyb3JcJiMzNDtcbi0tXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZy04Mi1cbmFyY2gveDg2L2t2bS9LY29uZmlnOjgzOmNvbmZpZyBLVk1fU1dfUFJPVEVDVEVEX1ZNXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZy04NC1cdGJvb2wgXCYjMzQ7RW5hYmxlIHN1cHBvcnQgZm9yIEtWTSBzb2Z0d2FyZS1wcm90ZWN0ZWQgVk1zXCYjMzQ7XG4tLVxuYXJjaC94ODYva3ZtL0tjb25maWctOTUtXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZzo5Njpjb25maWcgS1ZNX0lOVEVMXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZy05Ny1cdHRyaXN0YXRlIFwmIzM0O0tWTSBmb3IgSW50ZWwgKGFuZCBjb21wYXRpYmxlKSBwcm9jZXNzb3JzIHN1cHBvcnRcJiMzNDtcbi0tXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZy0xMDYtXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZzoxMDc6Y29uZmlnIEtWTV9JTlRFTF9QUk9WRV9WRVxuYXJjaC94ODYva3ZtL0tjb25maWctMTA4LSAgICAgICAgYm9vbCBcJiMzNDtDaGVjayB0aGF0IGd1ZXN0cyBkbyBub3QgcmVjZWl2ZSAjVkUgZXhjZXB0aW9uc1wmIzM0O1xuLS1cbmFyY2gveDg2L2t2bS9LY29uZmlnPTEyMj1jb25maWcgWDg2X1NHWF9LVk1cbi0tXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZy0xMzMtXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZzoxMzQ6Y29uZmlnIEtWTV9JTlRFTF9URFhcbmFyY2gveDg2L2t2bS9LY29uZmlnLTEzNS1cdGJvb2wgXCYjMzQ7SW50ZWwgVHJ1c3QgRG9tYWluIEV4dGVuc2lvbnMgKFREWCkgc3VwcG9ydFwmIzM0O1xuLS1cbmFyY2gveDg2L2t2bS9LY29uZmlnLTE0NS1cbmFyY2gveDg2L2t2bS9LY29uZmlnOjE0Njpjb25maWcgS1ZNX0FNRFxuYXJjaC94ODYva3ZtL0tjb25maWctMTQ3LVx0dHJpc3RhdGUgXCYjMzQ7S1ZNIGZvciBBTUQgcHJvY2Vzc29ycyBzdXBwb3J0XCYjMzQ7XG4tLVxuYXJjaC94ODYva3ZtL0tjb25maWctMTU1LVxuYXJjaC94ODYva3ZtL0tjb25maWc6MTU2OmNvbmZpZyBLVk1fQU1EX1NFVlxuYXJjaC94ODYva3ZtL0tjb25maWctMTU3LVx0Ym9vbCBcJiMzNDtBTUQgU2VjdXJlIEVuY3J5cHRlZCBWaXJ0dWFsaXphdGlvbiAoU0VWKSBzdXBwb3J0XCYjMzQ7XG4tLVxuYXJjaC94ODYva3ZtL0tjb25maWctMTcxLVxuYXJjaC94ODYva3ZtL0tjb25maWc6MTcyOmNvbmZpZyBLVk1fSU9BUElDXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZy0xNzMtXHRib29sIFwmIzM0O0kvTyBBUElDLCBQSUMsIGFuZCBQSVQgZW11bGF0aW9uXCYjMzQ7XG4tLVxuYXJjaC94ODYva3ZtL0tjb25maWctMTgxLVxuYXJjaC94ODYva3ZtL0tjb25maWc6MTgyOmNvbmZpZyBLVk1fU01NXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZy0xODMtXHRib29sIFwmIzM0O1N5c3RlbSBNYW5hZ2VtZW50IE1vZGUgZW11bGF0aW9uXCYjMzQ7XG4tLVxuYXJjaC94ODYva3ZtL0tjb25maWctMTkyLVxuYXJjaC94ODYva3ZtL0tjb25maWc6MTkzOmNvbmZpZyBLVk1fSFlQRVJWXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZy0xOTQtXHRib29sIFwmIzM0O1N1cHBvcnQgZm9yIE1pY3Jvc29mdCBIeXBlci1WIGVtdWxhdGlvblwmIzM0O1xuLS1cbmFyY2gveDg2L2t2bS9LY29uZmlnLTIwNi1cbmFyY2gveDg2L2t2bS9LY29uZmlnOjIwNzpjb25maWcgS1ZNX1hFTlxuYXJjaC94ODYva3ZtL0tjb25maWctMjA4LVx0Ym9vbCBcJiMzNDtTdXBwb3J0IGZvciBYZW4gaHlwZXJjYWxsIGludGVyZmFjZVwmIzM0O1xuLS1cbmFyY2gveDg2L2t2bS9LY29uZmlnLTIxNS1cbmFyY2gveDg2L2t2bS9LY29uZmlnOjIxNjpjb25maWcgS1ZNX1BST1ZFX01NVVxuYXJjaC94ODYva3ZtL0tjb25maWctMjE3LVx0Ym9vbCBcJiMzNDtQcm92ZSBLVk0gTU1VIGNvcnJlY3RuZXNzXCYjMzQ7XG4tLVxuYXJjaC94ODYva3ZtL0tjb25maWctMjI4LVxuYXJjaC94ODYva3ZtL0tjb25maWc6MjI5OmNvbmZpZyBLVk1fRVhURVJOQUxfV1JJVEVfVFJBQ0tJTkdcbmFyY2gveDg2L2t2bS9LY29uZmlnLTIzMC1cdGJvb2xcbmFyY2gveDg2L2t2bS9LY29uZmlnLTIzMS1cbmFyY2gveDg2L2t2bS9LY29uZmlnOjIzMjpjb25maWcgS1ZNX01BWF9OUl9WQ1BVU1xuYXJjaC94ODYva3ZtL0tjb25maWctMjMzLVx0aW50IFwmIzM0O01heGltdW0gbnVtYmVyIG9mIHZDUFVzIHBlciBLVk0gZ3Vlc3RcJiMzNDtcbi0tXG52aXJ0L2t2bS9LY29uZmlnLTMtXG52aXJ0L2t2bS9LY29uZmlnOjQ6Y29uZmlnIEtWTV9DT01NT05cbnZpcnQva3ZtL0tjb25maWctNS0gICAgICAgYm9vbFxuLS1cbnZpcnQva3ZtL0tjb25maWc9Mzk9Y29uZmlnIE5FRURfS1ZNX0RJUlRZX1JJTkdfV0lUSF9CSVRNQVBcbi0tXG52aXJ0L2t2bS9LY29uZmlnLTQyLVxudmlydC9rdm0vS2NvbmZpZzo0Mzpjb25maWcgS1ZNX01NSU9cbnZpcnQva3ZtL0tjb25maWctNDQtICAgICAgIGJvb2xcbnZpcnQva3ZtL0tjb25maWctNDUtXG52aXJ0L2t2bS9LY29uZmlnOjQ2OmNvbmZpZyBLVk1fQVNZTkNfUEZcbnZpcnQva3ZtL0tjb25maWctNDctICAgICAgIGJvb2xcbi0tXG52aXJ0L2t2bS9LY29uZmlnLTQ5LSMgVG9nZ2xlIHRvIHN3aXRjaCBiZXR3ZWVuIGRpcmVjdCBub3RpZmljYXRpb24gYW5kIGJhdGNoIGpvYlxudmlydC9rdm0vS2NvbmZpZzo1MDpjb25maWcgS1ZNX0FTWU5DX1BGX1NZTkNcbnZpcnQva3ZtL0tjb25maWctNTEtICAgICAgIGJvb2xcbi0tXG52aXJ0L2t2bS9LY29uZmlnPTU5PWNvbmZpZyBIQVZFX0tWTV9DUFVfUkVMQVhfSU5URVJDRVBUXG4tLVxudmlydC9rdm0vS2NvbmZpZy02MS1cbnZpcnQva3ZtL0tjb25maWc6NjI6Y29uZmlnIEtWTV9WRklPXG52aXJ0L2t2bS9LY29uZmlnLTYzLSAgICAgICBib29sXG4tLVxudmlydC9rdm0vS2NvbmZpZz02NT1jb25maWcgSEFWRV9LVk1fSU5WQUxJRF9XQUtFVVBTXG4tLVxudmlydC9rdm0vS2NvbmZpZy02Ny1cbnZpcnQva3ZtL0tjb25maWc6Njg6Y29uZmlnIEtWTV9HRU5FUklDX0RJUlRZTE9HX1JFQURfUFJPVEVDVFxudmlydC9rdm0vS2NvbmZpZy02OS0gICAgICAgYm9vbFxudmlydC9rdm0vS2NvbmZpZy03MC1cbnZpcnQva3ZtL0tjb25maWc6NzE6Y29uZmlnIEtWTV9HRU5FUklDX1BSRV9GQVVMVF9NRU1PUllcbnZpcnQva3ZtL0tjb25maWctNzItICAgICAgIGJvb2xcbnZpcnQva3ZtL0tjb25maWctNzMtXG52aXJ0L2t2bS9LY29uZmlnOjc0OmNvbmZpZyBLVk1fQ09NUEFUXG52aXJ0L2t2bS9LY29uZmlnLTc1LSAgICAgICBkZWZfYm9vbCB5XG4tLVxudmlydC9rdm0vS2NvbmZpZz05MT1jb25maWcgSEFWRV9LVk1fUE1fTk9USUZJRVJcbi0tXG52aXJ0L2t2bS9LY29uZmlnLTkzLVxudmlydC9rdm0vS2NvbmZpZzo5NDpjb25maWcgS1ZNX0dFTkVSSUNfSEFSRFdBUkVfRU5BQkxJTkdcbnZpcnQva3ZtL0tjb25maWctOTUtICAgICAgIGJvb2xcbnZpcnQva3ZtL0tjb25maWctOTYtXG52aXJ0L2t2bS9LY29uZmlnOjk3OmNvbmZpZyBLVk1fRUxJREVfVExCX0ZMVVNIX0lGX1lPVU5HXG52aXJ0L2t2bS9LY29uZmlnLTk4LSAgICAgICBib29sXG52aXJ0L2t2bS9LY29uZmlnLTk5LVxudmlydC9rdm0vS2NvbmZpZzoxMDA6Y29uZmlnIEtWTV9NTVVfTE9DS0xFU1NfQUdJTkdcbnZpcnQva3ZtL0tjb25maWctMTAxLSAgICAgICBib29sXG52aXJ0L2t2bS9LY29uZmlnLTEwMi1cbnZpcnQva3ZtL0tjb25maWc6MTAzOmNvbmZpZyBLVk1fR0VORVJJQ19NRU1PUllfQVRUUklCVVRFU1xudmlydC9rdm0vS2NvbmZpZy0xMDQtICAgICAgIGJvb2xcbnZpcnQva3ZtL0tjb25maWctMTA1LVxudmlydC9rdm0vS2NvbmZpZzoxMDY6Y29uZmlnIEtWTV9HVUVTVF9NRU1GRFxudmlydC9rdm0vS2NvbmZpZy0xMDctICAgICAgIHNlbGVjdCBYQVJSQVlfTVVMVElcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xNS8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjUgMjM6MTM8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMTEzMzIKCQkJCQkJCW91dHB1dDogMzUKCQkJCQkJCXRob3VnaHRzOiAzNgoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+T2theSwgaGVyZSYjMzk7cyBteSB0YWtlIG9uIHRob3NlIHRob3VnaHRzLCBmcmFtZWQgZnJvbSBteSBwZXJzcGVjdGl2ZToKCioqRGl2aW5nIGludG8gdGhlIEtWTSBQTVUgTGFuZHNjYXBlKioKCkFscmlnaHQsIHRoZSBjb25maWd1cmF0aW9uIGluIHBsYXkgaXMgZGVmaW5pdGVseSBgS1ZNYC4gTGV0JiMzOTtzIGRpZyBpbiBhbmQgc2VlIGlmIHRoZXJlIGFyZSBvdGhlciwgcmVsYXRlZCBjb25maWd1cmF0aW9ucyBhdCBwbGF5LiBNeSBpbW1lZGlhdGUgdGhvdWdodCBpcyB0byBjaGVjayBvdXQgYGFyY2gveDg2L2t2bS9wbXUuY2AuIFRoYXQmIzM5O3MgdGhlIGxvZ2ljYWwgc3RhcnRpbmcgcG9pbnQgZm9yIHVuZGVyc3RhbmRpbmcgaG93IHRoZSBQZXJmb3JtYW5jZSBNb25pdG9yaW5nIFVuaXQgaXMgaGFuZGxlZCB3aXRoaW4gdGhlIEtWTSB2aXJ0dWFsaXphdGlvbiBjb250ZXh0IG9uIHg4NiBhcmNoaXRlY3R1cmVzLiBJJiMzOTttIGVzcGVjaWFsbHkga2VlbiBvbiBmaW5kaW5nIGFueSBjb25kaXRpb25hbCBjb21waWxhdGlvbiB0aGF0IG1pZ2h0IGV4cG9zZSBvdGhlciBjb25maWd1cmF0aW9uIG9wdGlvbnMgSSBtYXkgaGF2ZSBtaXNzZWQgaW4gbXkgaW5pdGlhbCBhc3Nlc3NtZW50LiBJJiMzOTttIGJldHRpbmcgdGhhdCBgcG11LmNgIHdpbGwgZ2l2ZSBtZSBhIGdvb2QgaGFuZGxlIG9uIHRoZSBudWFuY2VzIGhlcmUuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTYvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzI1IDIzOjEzPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5FcnJvcjo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm5vIG1hdGNoZXM8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7Q09ORklHXyYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2FyY2gveDg2L2t2bS9wbXUuYyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtlcnJvciYjMzQ7OiAmIzM0O25vIG1hdGNoZXMmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTcvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzI1IDIzOjEzPC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDExNTczCgkJCQkJCQlvdXRwdXQ6IDIzCgkJCQkJCQl0aG91Z2h0czogMjYwCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKkFuYWx5emluZyB0aGUgS1ZNIFBlcmZvcm1hbmNlIE1vbml0b3JpbmcgVW5pdCBQYXRjaCoqCgpPa2F5LCBzbyBJJiMzOTttIGxvb2tpbmcgYXQgdGhpcyBwYXRjaCBhbmQsIGJhc2VkIG9uIHdoYXQgSSYjMzk7bSBzZWVpbmcsIGl0IGxvb2tzIHByZXR0eSBzdHJhaWdodGZvcndhcmQuIFRoZXJlIGFyZW4mIzM5O3QgYW55IG90aGVyIGNvbmZpZ3VyYXRpb25zIGluIGBhcmNoL3g4Ni9rdm0vcG11LmNgIGJlc2lkZXMgdGhlIG9uZSB3ZSBoYXZlLCBzbyBgS1ZNYCBpcyBkZWZpbml0ZWx5IHRoZSBvbmx5IGNvbmZpZyB3ZSBuZWVkIHRvIGVuYWJsZS4gVGhlIHBhdGNoIGl0c2VsZiBtb2RpZmllcyBga3ZtX3BtdV9pbmNyX2NvdW50ZXJgLiBUaGF0IGZ1bmN0aW9uJiMzOTtzIGNhbGxlZCBieSBga3ZtX3BtdV90cmlnZ2VyX2V2ZW50YCwgd2hpY2ggaXMgaW4gdHVybiBjYWxsZWQgYnkgYGt2bV9wbXVfaW5zdHJ1Y3Rpb25fcmV0aXJlZGAgYW5kIGBrdm1fcG11X2JyYW5jaF9yZXRpcmVkYC4gVGhlc2UgYXJlIGFsbCBkaXJlY3RseSByZWxhdGVkIHRvIGNvcmUgS1ZNIGxvZ2ljIGFuZCwgbW9yZSBpbXBvcnRhbnRseSwgdGhleSYjMzk7cmUgcmVhY2hhYmxlLiBTbywgZnVuY3Rpb25hbGx5IHRoaXMgaXMgYSBnb29kIGNhbmRpZGF0ZSBmb3IgZnV6emluZy4KCk15IHRoaW5raW5nIGlzIHRoYXQgYFdvcnRoRnV6emluZ2Agc2hvdWxkIGJlIHNldCB0byBgdHJ1ZWAgaGVyZS4gVGhlIGtleSBmdW5jdGlvbnMgdG8gZm9jdXMgb24gZm9yIHRoaXMgZnV6emluZyBlZmZvcnQgYXJlIGBrdm1fcG11X2luc3RydWN0aW9uX3JldGlyZWRgIGFuZCBga3ZtX3BtdV9icmFuY2hfcmV0aXJlZGAuIFRoZXNlIGFwcGVhciB0byBiZSB0aGUgZW50cnkgcG9pbnRzIHRoYXQgZHJpdmUgdGhlIGZ1bmN0aW9uYWxpdHkgYmVpbmcgbW9kaWZpZWQuCgpUaGVyZWZvcmUsIGZvciBgRW5hYmxlQ29uZmlnc2AgSSYjMzk7bGwganVzdCBzZXQgaXQgdG8gYEtWTWAuCgpMZXQgbWUganVzdCBxdWlja2x5IGRvdWJsZS1jaGVjayB0aGF0IGBrdm1fcG11X2luY3JfY291bnRlcmAgaXMgKm9ubHkqIGNhbGxlZCBieSBga3ZtX3BtdV90cmlnZ2VyX2V2ZW50YC4gSSB0aGluayB3ZSBlc3RhYmxpc2hlZCB0aGF0IGVhcmxpZXIsIGJ1dCBJIHdhbnQgdG8gYmUgYWJzb2x1dGVseSBzdXJlLiBZZXAsIGp1c3QgY29uZmlybWluZyB0aGF0IGBrdm1fcG11X3RyaWdnZXJfZXZlbnRgIGlzIHRoZSBzb2xlIGNhbGxlci4gQW5kLCBhcyB3ZSBrbm93LCBga3ZtX3BtdV90cmlnZ2VyX2V2ZW50YCBpcyBleGNsdXNpdmVseSBjYWxsZWQgYnkgYGt2bV9wbXVfaW5zdHJ1Y3Rpb25fcmV0aXJlZGAgYW5kIGBrdm1fcG11X2JyYW5jaF9yZXRpcmVkYC4gSSB3aWxsIGNvbmZpcm0gdGhpcyBhZ2FpbiBvbiBga3ZtX3BtdV90cmlnZ2VyX2V2ZW50YCBpdHNlbGYuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTgvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzI1IDIzOjEzPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O2t2bV9wbXVfdHJpZ2dlcl9ldmVudCYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDthcmNoL3g4Ni9rdm0vcG11LmM9MTEwOD1zdGF0aWMgaW5saW5lIGJvb2wgY3BsX2lzX21hdGNoZWQoc3RydWN0IGt2bV9wbWMgKnBtYylcbi0tXG5hcmNoL3g4Ni9rdm0vcG11LmMtMTEzNC1cbmFyY2gveDg2L2t2bS9wbXUuYzoxMTM1OnN0YXRpYyB2b2lkIGt2bV9wbXVfdHJpZ2dlcl9ldmVudChzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUsXG5hcmNoL3g4Ni9rdm0vcG11LmMtMTEzNi1cdFx0XHRcdCAgY29uc3QgdW5zaWduZWQgbG9uZyAqZXZlbnRfcG1jcylcbi0tXG5hcmNoL3g4Ni9rdm0vcG11LmM9MTE2ND12b2lkIGt2bV9wbXVfaW5zdHJ1Y3Rpb25fcmV0aXJlZChzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUpXG5hcmNoL3g4Ni9rdm0vcG11LmMtMTE2NS17XG5hcmNoL3g4Ni9rdm0vcG11LmM6MTE2NjpcdGt2bV9wbXVfdHJpZ2dlcl9ldmVudCh2Y3B1LCB2Y3B1X3RvX3BtdSh2Y3B1KS1cdTAwM2VwbWNfY291bnRpbmdfaW5zdHJ1Y3Rpb25zKTtcbmFyY2gveDg2L2t2bS9wbXUuYy0xMTY3LX1cbi0tXG5hcmNoL3g4Ni9rdm0vcG11LmM9MTE3MD12b2lkIGt2bV9wbXVfYnJhbmNoX3JldGlyZWQoc3RydWN0IGt2bV92Y3B1ICp2Y3B1KVxuYXJjaC94ODYva3ZtL3BtdS5jLTExNzEte1xuYXJjaC94ODYva3ZtL3BtdS5jOjExNzI6XHRrdm1fcG11X3RyaWdnZXJfZXZlbnQodmNwdSwgdmNwdV90b19wbXUodmNwdSktXHUwMDNlcG1jX2NvdW50aW5nX2JyYW5jaGVzKTtcbmFyY2gveDg2L2t2bS9wbXUuYy0xMTczLX1cbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xOS8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjUgMjM6MTM8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMTI2NzEKCQkJCQkJCW91dHB1dDogMjYKCQkJCQkJCXRob3VnaHRzOiAzNgoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+T2theSwgaGVyZSYjMzk7cyBteSB0YWtlIG9uIHRob3NlIHRob3VnaHRzLCBmcmFtZWQgYXMgYW4gZXhwZXJ0JiMzOTtzIGludGVybmFsIG1vbm9sb2d1ZToKCioqQ2hlY2tpbmcgQ29kZSBEZXBlbmRlbmNpZXMqKgoKQWxyaWdodCwgc28gdGhlIGZvY3VzIGlzIGRlZmluaXRlbHkgbmFycm93ZWQgZG93biB0byBqdXN0IHRob3NlIHR3byBmdW5jdGlvbnMuIEkgbmVlZCB0byBxdWlja2x5IGNvbmZpcm0gdGhhdCYjMzk7cyB0aGUgKm9ubHkqIHBsYWNlIHRoZXNlIGFyZSBjYWxsZWQuIEJlc3QgcHJhY3RpY2UgaXMgdG8gcnVuIGEgcXVpY2sgc2VhcmNoIHRocm91Z2ggdGhlIGNvZGViYXNlLiBJdCYjMzk7cyB0b28gZWFzeSB0byBtaXNzIHNvbWV0aGluZyB0aGUgZmlyc3QgdGltZSBhcm91bmQuIFRpbWUgdG8gY29uZmlybSBga3ZtX3BtdV9yZXF1ZXN0X2NvdW50ZXJfcmVwcm9ncmFtYCBpc24mIzM5O3QgbHVya2luZyBhbnl3aGVyZSBlbHNlLiBKdXN0IGEgcXVpY2sgc2FuaXR5IGNoZWNrIHRvIGJlIGFic29sdXRlbHkgY2VydGFpbiBJJiMzOTttIG5vdCBvdmVybG9va2luZyBhIGNyaXRpY2FsIGRlcGVuZGVuY3kgb3IgdXNhZ2UgcGF0dGVybi4gTGV0JiMzOTtzIG1ha2Ugc3VyZSB0aGVyZSBhcmVuJiMzOTt0IGFueSBzdXJwcmlzZSBjYWxscyB0byB0aGlzIGZ1bmN0aW9uIGluIHNvbWUgb2JzY3VyZSBjb3JuZXIgb2YgdGhlIGNvZGUuIFRoYXQgd291bGQgYmUgYSBzZXJpb3VzIHBvdGVudGlhbCBwcm9ibGVtLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjIwLzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yNSAyMzoxMzwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtrdm1fcG11X3JlcXVlc3RfY291bnRlcl9yZXByb2dyYW0mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7YXJjaC94ODYva3ZtL3BtdS5jPTEwNzE9c3RhdGljIHZvaWQga3ZtX3BtdV9pbmNyX2NvdW50ZXIoc3RydWN0IGt2bV9wbWMgKnBtYylcbi0tXG5hcmNoL3g4Ni9rdm0vcG11LmMtMTA5MC1cdFx0aWYgKHBtYy1cdTAwM2VlbXVsYXRlZF9jb3VudGVyIFx1MDAzZSBlbXVsYXRlZF9jb3VudGVyX3JlcHJvZ3JhbV90b2xlcmFuY2UpXG5hcmNoL3g4Ni9rdm0vcG11LmM6MTA5MTpcdFx0XHRrdm1fcG11X3JlcXVlc3RfY291bnRlcl9yZXByb2dyYW0ocG1jKTtcbmFyY2gveDg2L2t2bS9wbXUuYy0xMDkyLVx0XHRyZXR1cm47XG4tLVxuYXJjaC94ODYva3ZtL3BtdS5oPTIxOT12b2lkIGt2bV9wbXVfaGFuZGxlX2V2ZW50KHN0cnVjdCBrdm1fdmNwdSAqdmNwdSk7XG5hcmNoL3g4Ni9rdm0vcG11LmgtMjIwLVxuYXJjaC94ODYva3ZtL3BtdS5oOjIyMTpzdGF0aWMgaW5saW5lIHZvaWQga3ZtX3BtdV9yZXF1ZXN0X2NvdW50ZXJfcmVwcm9ncmFtKHN0cnVjdCBrdm1fcG1jICpwbWMpXG5hcmNoL3g4Ni9rdm0vcG11LmgtMjIyLXtcbi0tXG5hcmNoL3g4Ni9rdm0vc3ZtL3BtdS5jPTE1MD1zdGF0aWMgaW50IGFtZF9wbXVfc2V0X21zcihzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUsIHN0cnVjdCBtc3JfZGF0YSAqbXNyX2luZm8pXG4tLVxuYXJjaC94ODYva3ZtL3N2bS9wbXUuYy0xNzYtXG5hcmNoL3g4Ni9rdm0vc3ZtL3BtdS5jOjE3NzpcdFx0XHRrdm1fcG11X3JlcXVlc3RfY291bnRlcl9yZXByb2dyYW0ocG1jKTtcbmFyY2gveDg2L2t2bS9zdm0vcG11LmMtMTc4LVx0XHR9XG4tLVxuYXJjaC94ODYva3ZtL3ZteC9wbXVfaW50ZWwuYz01OD1zdGF0aWMgdm9pZCByZXByb2dyYW1fZml4ZWRfY291bnRlcnMoc3RydWN0IGt2bV9wbXUgKnBtdSwgdTY0IGRhdGEpXG4tLVxuYXJjaC94ODYva3ZtL3ZteC9wbXVfaW50ZWwuYy04My1cdFx0X19zZXRfYml0KEtWTV9GSVhFRF9QTUNfQkFTRV9JRFggJiM0MzsgaSwgcG11LVx1MDAzZXBtY19pbl91c2UpO1xuYXJjaC94ODYva3ZtL3ZteC9wbXVfaW50ZWwuYzo4NDpcdFx0a3ZtX3BtdV9yZXF1ZXN0X2NvdW50ZXJfcmVwcm9ncmFtKHBtYyk7XG5hcmNoL3g4Ni9rdm0vdm14L3BtdV9pbnRlbC5jLTg1LVx0fVxuLS1cbmFyY2gveDg2L2t2bS92bXgvcG11X2ludGVsLmM9MzgyPXN0YXRpYyBpbnQgaW50ZWxfcG11X3NldF9tc3Ioc3RydWN0IGt2bV92Y3B1ICp2Y3B1LCBzdHJ1Y3QgbXNyX2RhdGEgKm1zcl9pbmZvKVxuLS1cbmFyY2gveDg2L2t2bS92bXgvcG11X2ludGVsLmMtNDQ1LVx0XHRcdFx0cG1jLVx1MDAzZWV2ZW50c2VsX2h3ID0gZGF0YTtcbmFyY2gveDg2L2t2bS92bXgvcG11X2ludGVsLmM6NDQ2Olx0XHRcdFx0a3ZtX3BtdV9yZXF1ZXN0X2NvdW50ZXJfcmVwcm9ncmFtKHBtYyk7XG5hcmNoL3g4Ni9rdm0vdm14L3BtdV9pbnRlbC5jLTQ0Ny1cdFx0XHR9XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MjEvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzI1IDIzOjEzPC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDEzNjQ3CgkJCQkJCQlvdXRwdXQ6IDk4CgkJCQkJCQl0aG91Z2h0czogMTE4CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKkZ1enppbmcgRGVjaXNpb24gZm9yIEtWTSBQTVUgQ291bnRlciBJbmNyZW1lbnRzKioKCk9rYXksIHNvIEkmIzM5O3ZlIGxvb2tlZCBhdCB0aGlzIHBhdGNoLiBJdCYjMzk7cyBmb2N1c2VkIHNvbGVseSBvbiBhbHRlcmluZyB0aGUgYGt2bV9wbXVfaW5jcl9jb3VudGVyYCBmdW5jdGlvbiwgd2hpY2ggaXMgaW50ZXJlc3RpbmcuIFRoZSBsb2dpYyBhcHBlYXJzIHNvdW5kLCBhbmQgZnJvbSBteSBxdWljayByZXZpZXcsIEkgY2FuIHNlZSB0aGF0IGl0JiMzOTtzIGRlZmluaXRlbHkgcmVhY2hhYmxlIGR1cmluZyBleGVjdXRpb24uIENvbnNpZGVyaW5nIHRoaXMsIEkmIzM5O20gY29uZmlkZW50IHRoYXQgdGhpcyBpcyB3b3J0aCBleHBsb3JpbmcgaW4gbW9yZSBkZXB0aC4gSXQgc2VlbXMgbGlrZSBpdCYjMzk7cyBhIGdvb2QgY2FuZGlkYXRlIGZvciBmdXp6aW5nLgoKTXkgdGhpbmtpbmcgaXMgdGhhdCBmdXp6aW5nIGBrdm1fcG11X2luY3JfY291bnRlcmAgY291bGQgdW5jb3ZlciBzb21lIGludGVyZXN0aW5nIGJlaGF2aW9yLiBJJiMzOTtsbCBzZXQgYFdvcnRoRnV6emluZ2AgdG8gYHRydWVgLiBBbmQgdG8gZGlyZWN0IHRoZSBmdXp6ZXIgZWZmZWN0aXZlbHksIEkgc2hvdWxkIGZvY3VzIGl0IG9uIGBrdm1fcG11X2luc3RydWN0aW9uX3JldGlyZWRgIGFuZCBga3ZtX3BtdV9icmFuY2hfcmV0aXJlZGAgYXMga2V5IGFyZWFzIHRvIHByb2JlLCBhcyB0aGV5IGxpa2VseSBpbnRlcmFjdCB3aXRoIHRoZSBpbmNyZW1lbnQgbG9naWMuIE9mIGNvdXJzZSwgdGhlIGBLVk1gIGNvbmZpZ3VyYXRpb24gbmVlZHMgdG8gYmUgZW5hYmxlZC4KClRoZSByZWFzb25pbmcgaGVyZSBpcyB0aGF0IHRoaXMgcGF0Y2ggY2hhbmdlcyBob3cgS1ZN4oCZcyBQTVUgZW11bGF0aW9uIGhhbmRsZXMgY291bnRlciByZXByb2dyYW0gcmVxdWVzdHMuIFNwZWNpZmljYWxseSwgaXQgc2VlbXMgbGlrZSBpdCYjMzk7cyBpbnRyb2R1Y2luZyBhIHRvbGVyYW5jZSB0aHJlc2hvbGQgZm9yIGVtdWxhdGVkIGNvdW50ZXIgaW5jcmVtZW50cy4gSSYjMzk7ZCBsaWtlIHRvIHRlc3QgZWRnZSBjYXNlcyB3aXRoIHRoaXMgbmV3IHRvbGVyYW5jZSB0aHJlc2hvbGQsIGFuZCBpdHMgaW50ZXJhY3Rpb24gd2l0aCB0aGUgdW5kZXJseWluZyBlbXVsYXRpb24uIFRoaXMgaXMgZnVuZGFtZW50YWwsIGZ1bmN0aW9uYWwgbG9naWMgd2l0aGluIHRoZSBLVk0gc3Vic3lzdGVtLCBhbmQgY2hhbmdlcyBoZXJlIGNvdWxkIHBvdGVudGlhbGx5IGhhdmUgYnJvYWQgaW1wYWN0cyBvbiBQTVUgYmVoYXZpb3IgdW5kZXIgZW11bGF0aW9uLiBJIHRoaW5rIHRoYXQgZnV6emluZyBoZXJlIGlzIGdvaW5nIHRvIGJlIHVzZWZ1bC4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4yMi8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjUgMjM6MTM8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5zZXQtcmVzdWx0czwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O0tWTSYjMzQ7CiAgXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbCiAgICAmIzM0O2t2bV9wbXVfaW5zdHJ1Y3Rpb25fcmV0aXJlZCYjMzQ7LAogICAgJiMzNDtrdm1fcG11X2JyYW5jaF9yZXRpcmVkJiMzNDsKICBdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBjb25kaXRpb24gZm9yIHJlcXVlc3RpbmcgYSBjb3VudGVyIHJlcHJvZ3JhbSBpbiBLVk0mIzM5O3MgUE1VIGVtdWxhdGlvbiwgaW50cm9kdWNpbmcgYSB0b2xlcmFuY2UgdGhyZXNob2xkIGZvciBlbXVsYXRlZCBjb3VudGVyIGluY3JlbWVudHMuIFRoaXMgaXMgZnVuY3Rpb25hbCBsb2dpYyBpbiB0aGUgY29yZSBLVk0gc3Vic3lzdGVtLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IHRydWUKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogWwogICAgJiMzNDtLVk0mIzM0OwogIF0sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogWwogICAgJiMzNDtrdm1fcG11X2luc3RydWN0aW9uX3JldGlyZWQmIzM0OywKICAgICYjMzQ7a3ZtX3BtdV9icmFuY2hfcmV0aXJlZCYjMzQ7CiAgXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBtb2RpZmllcyB0aGUgY29uZGl0aW9uIGZvciByZXF1ZXN0aW5nIGEgY291bnRlciByZXByb2dyYW0gaW4gS1ZNJiMzOTtzIFBNVSBlbXVsYXRpb24sIGludHJvZHVjaW5nIGEgdG9sZXJhbmNlIHRocmVzaG9sZCBmb3IgZW11bGF0ZWQgY291bnRlciBpbmNyZW1lbnRzLiBUaGlzIGlzIGZ1bmN0aW9uYWwgbG9naWMgaW4gdGhlIGNvcmUgS1ZNIHN1YnN5c3RlbS4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiB0cnVlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8L3Rib2R5PgoJPC90YWJsZT4KCgk8ZGl2IGlkPSJsbG1fc3VtbWFyeV90YWJsZV9kaXYiIHN0eWxlPSJtYXJnaW46IDIwcHggMDsiPgoJCTx0YWJsZSBjbGFzcz0ibGlzdF90YWJsZSI+CgkJCTxjYXB0aW9uPkxMTSBDYWxscyBTdW1tYXJ5OjwvY2FwdGlvbj4KCQkJPHRoZWFkPgoJCQkJPHRyPgoJCQkJCTx0aD5Ub3RhbCBDYWxsczwvdGg+CgkJCQkJPHRoPlRvdGFsIFRva2VuczwvdGg+CgkJCQkJPHRoPkF2ZyBUb2tlbnM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJCTx0aD5BdmcgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCTwvdHI+CgkJCTwvdGhlYWQ+CgkJCTx0Ym9keSBpZD0ibGxtX3N1bW1hcnlfc3RhdHNfYm9keSI+PC90Ym9keT4KCQk8L3RhYmxlPgoJPC9kaXY+CgoJPGRpdiBpZD0idG9vbF9zdW1tYXJ5X3RhYmxlX2RpdiIgc3R5bGU9Im1hcmdpbjogMjBweCAwOyI+CgkJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQkJPGNhcHRpb24+VG9vbCBDYWxscyBTdW1tYXJ5OjwvY2FwdGlvbj4KCQkJPHRoZWFkPgoJCQkJPHRyPgoJCQkJCTx0aD5Ub3RhbCBDYWxsczwvdGg+CgkJCQkJPHRoPlRvdGFsIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQkJPHRoPkF2ZyBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJPC90cj4KCQkJPC90aGVhZD4KCQkJPHRib2R5IGlkPSJ0b29sX3N1bW1hcnlfc3RhdHNfYm9keSI+PC90Ym9keT4KCQk8L3RhYmxlPgoJPC9kaXY+CgoJPGRpdiBpZD0iZHVyYXRpb25fY2hhcnRfZGl2IiBzdHlsZT0id2lkdGg6IDEwMCU7IG1hcmdpbjogMjBweCAwOyBib3JkZXI6IDFweDsiPjwvZGl2PgoJPGRpdiBpZD0idG9rZW5fY2hhcnRfZGl2IiBzdHlsZT0id2lkdGg6IDEwMCU7IG1hcmdpbjogMjBweCAwOyBib3JkZXI6IDFweDsiPjwvZGl2PgoKCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Imh0dHBzOi8vd3d3Lmdvb2dsZS5jb20vanNhcGkiPjwvc2NyaXB0PgoJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgoJCWdvb2dsZS5sb2FkKCJ2aXN1YWxpemF0aW9uIiwgIjEiLCB7cGFja2FnZXM6WyJjb3JlY2hhcnQiXX0pOwoJCWdvb2dsZS5zZXRPbkxvYWRDYWxsYmFjayhkcmF3Q2hhcnRzKTsKCgkJZnVuY3Rpb24gZHJhd0NoYXJ0cygpIHsKCQkJY29uc3QgcmF3RGF0YSA9IFt7IlN0YXJ0ZWQiOiIyMDI2LTA3LTI1VDIzOjEyOjQwLjkxMDQ0MTc0OVoiLCJTZXEiOjAsIk5lc3RpbmciOjAsIlR5cGUiOiJmbG93IiwiTmFtZSI6InBhdGNoLXRyaWFnZSIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjU4ODEyNjY5NDc3LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IFtcbiAgICBcIktWTVwiXG4gIF0sXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtcbiAgICBcImt2bV9wbXVfaW5zdHJ1Y3Rpb25fcmV0aXJlZFwiLFxuICAgIFwia3ZtX3BtdV9icmFuY2hfcmV0aXJlZFwiXG4gIF0sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBjb25kaXRpb24gZm9yIHJlcXVlc3RpbmcgYSBjb3VudGVyIHJlcHJvZ3JhbSBpbiBLVk0ncyBQTVUgZW11bGF0aW9uLCBpbnRyb2R1Y2luZyBhIHRvbGVyYW5jZSB0aHJlc2hvbGQgZm9yIGVtdWxhdGVkIGNvdW50ZXIgaW5jcmVtZW50cy4gVGhpcyBpcyBmdW5jdGlvbmFsIGxvZ2ljIGluIHRoZSBjb3JlIEtWTSBzdWJzeXN0ZW0uXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IHRydWVcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTI1VDIzOjEyOjQwLjkxMDQ1MTI0OVoiLCJTZXEiOjEsIk5lc3RpbmciOjEsIlR5cGUiOiJhY3Rpb24iLCJOYW1lIjoicmVhZC1wYXRjaC1kaWZmIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NjIzMjEzODU1LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJQYXRjaERpZmZcIjogXCJjb21taXQgMGE2ZGEyY2M0ZGQ2NWIzN2NjMzA2OTY2OGVlNDIyMjlhMDcyNGUyY1xcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXFx1MDAzZVxcbkRhdGU6ICAgU2F0IEp1bCAyNSAyMzoxMjozOSAyMDI2ICswMDAwXFxuXFxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xcblxcbmRpZmYgLS1naXQgYS9hcmNoL3g4Ni9rdm0vcG11LmMgYi9hcmNoL3g4Ni9rdm0vcG11LmNcXG5pbmRleCBkZDFjNTc1OTNmNDhiOC4uMzNhNzMyNzExODZhNTggMTAwNjQ0XFxuLS0tIGEvYXJjaC94ODYva3ZtL3BtdS5jXFxuKysrIGIvYXJjaC94ODYva3ZtL3BtdS5jXFxuQEAgLTM5LDYgKzM5LDE0IEBAIGJvb2wgX19yZWFkX21vc3RseSBlbmFibGVfcG11ID0gdHJ1ZTtcXG4gRVhQT1JUX1NZTUJPTF9GT1JfS1ZNX0lOVEVSTkFMKGVuYWJsZV9wbXUpO1xcbiBtb2R1bGVfcGFyYW0oZW5hYmxlX3BtdSwgYm9vbCwgMDQ0NCk7XFxuIFxcbisvKlxcbisgKiBOdW1iZXIgb2YgS1ZNLWVtdWxhdGVkIGluc3RydWN0aW9ucyB0aGF0IG1heSBhY2N1bXVsYXRlIG9uIGFuIGVtdWxhdGVkXFxuKyAqIChwZXJmLWJhc2VkKSB2UE1VIGNvdW50ZXIgYmVmb3JlIEtWTSBmb3JjZXMgYSBjb3VudGVyIHJlcHJvZ3JhbSB0byBmb2xkIHRoZVxcbisgKiBlbXVsYXRlZCBjb3VudCBpbnRvIHRoZSBiYWNraW5nIHBlcmZfZXZlbnRcXG4rICovXFxuK3N0YXRpYyB1aW50IF9fcmVhZF9tb3N0bHkgZW11bGF0ZWRfY291bnRlcl9yZXByb2dyYW1fdG9sZXJhbmNlO1xcbittb2R1bGVfcGFyYW0oZW11bGF0ZWRfY291bnRlcl9yZXByb2dyYW1fdG9sZXJhbmNlLCB1aW50LCAwNjQ0KTtcXG4rXFxuIC8qIEVuYWJsZS9kaXNhYmxlZCBtZWRpYXRlZCBQTVUgdmlydHVhbGl6YXRpb24uICovXFxuIGJvb2wgX19yZWFkX21vc3RseSBlbmFibGVfbWVkaWF0ZWRfcG11O1xcbiBFWFBPUlRfU1lNQk9MX0ZPUl9LVk1fSU5URVJOQUwoZW5hYmxlX21lZGlhdGVkX3BtdSk7XFxuQEAgLTEwNzIsNyArMTA4MCwxNSBAQCBzdGF0aWMgdm9pZCBrdm1fcG11X2luY3JfY291bnRlcihzdHJ1Y3Qga3ZtX3BtYyAqcG1jKVxcbiBcXHQgKi9cXG4gXFx0aWYgKCFrdm1fdmNwdV9oYXNfbWVkaWF0ZWRfcG11KHZjcHUpKSB7XFxuIFxcdFxcdHBtYy1cXHUwMDNlZW11bGF0ZWRfY291bnRlcisrO1xcbi1cXHRcXHRrdm1fcG11X3JlcXVlc3RfY291bnRlcl9yZXByb2dyYW0ocG1jKTtcXG4rXFxuK1xcdFxcdC8qXFxuK1xcdFxcdCAqIEJhdGNoIHJlcHJvZ3JhbXM6IG9ubHkgZm9yY2Ugb25lIG9uY2UgdGhlIGFjY3VtdWxhdGVkXFxuK1xcdFxcdCAqIGVtdWxhdGVkIGNvdW50IGV4Y2VlZHMgdGhlIHRvbGVyYW5jZS4gVGhlIGNvdW50IGlzIHN0aWxsXFxuK1xcdFxcdCAqIHJlZmxlY3RlZCBpbiBndWVzdCBjb3VudGVyIHJlYWRzIHZpYSBwbWMtXFx1MDAzZWVtdWxhdGVkX2NvdW50ZXI7XFxuK1xcdFxcdCAqIHRoaXMgb25seSBib3VuZHMgaG93IGxhdGUgYW4gb3ZlcmZsb3ctZHJpdmVuIFBNSSBhcnJpdmVzLlxcbitcXHRcXHQgKi9cXG4rXFx0XFx0aWYgKHBtYy1cXHUwMDNlZW11bGF0ZWRfY291bnRlciBcXHUwMDNlIGVtdWxhdGVkX2NvdW50ZXJfcmVwcm9ncmFtX3RvbGVyYW5jZSlcXG4rXFx0XFx0XFx0a3ZtX3BtdV9yZXF1ZXN0X2NvdW50ZXJfcmVwcm9ncmFtKHBtYyk7XFxuIFxcdFxcdHJldHVybjtcXG4gXFx0fVxcbiBcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMjVUMjM6MTI6NDEuNTM0Mjk1MjA1WiIsIlNlcSI6MiwiTmVzdGluZyI6MSwiVHlwZSI6ImFnZW50IiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiYmVzdC1leHBlbnNpdmUiLCJEdXJhdGlvbiI6NTgxODg4MDg0NDIsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogW1xuICAgIFwiS1ZNXCJcbiAgXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW1xuICAgIFwia3ZtX3BtdV9pbnN0cnVjdGlvbl9yZXRpcmVkXCIsXG4gICAgXCJrdm1fcG11X2JyYW5jaF9yZXRpcmVkXCJcbiAgXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIGNvbmRpdGlvbiBmb3IgcmVxdWVzdGluZyBhIGNvdW50ZXIgcmVwcm9ncmFtIGluIEtWTSdzIFBNVSBlbXVsYXRpb24sIGludHJvZHVjaW5nIGEgdG9sZXJhbmNlIHRocmVzaG9sZCBmb3IgZW11bGF0ZWQgY291bnRlciBpbmNyZW1lbnRzLiBUaGlzIGlzIGZ1bmN0aW9uYWwgbG9naWMgaW4gdGhlIGNvcmUgS1ZNIHN1YnN5c3RlbS5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogdHJ1ZVxufSIsIkluc3RydWN0aW9uIjoiWW91IGFyZSBhbiBleHBlcnQgTGludXgga2VybmVsIG1haW50YWluZXIuXG5Zb3VyIGpvYiBpcyB0byByZXZpZXcgYSBwcm92aWRlZCBwYXRjaCBzZXJpZXMgYW5kIGRldGVybWluZVxuaWYgaXQgbWFrZXMgZnVuY3Rpb25hbCBjaGFuZ2VzIHRvIHRoZSBrZXJuZWwgdGhhdCBzaG91bGQgYmUgZnV6emVkLlxuXG5JTVBPUlRBTlQ6IFRoZSBjaGFuZ2VzIGhhdmUgQUxSRUFEWSBiZWVuIGFwcGxpZWQgYW5kIGNvbW1pdHRlZCBhcyB0aGUgSEVBRCBjb21taXQgaW5cbnlvdXIgd29ya3NwYWNlLiBEbyBOT1QgcmVseSBvbiB5b3VyIGludGVybmFsIGtub3dsZWRnZSBvZiB0aGUga2VybmVsLiBZb3UgbXVzdCBhY3RpdmVseVxudXNlIHlvdXIgY29kZSBhY2Nlc3MgdG9vbHMgdG8gZXhhbWluZSB0aGUgYWN0dWFsIHNvdXJjZSBjb2RlIGFuZCBjb25maXJtIGFueSBhc3N1bXB0aW9ucy5cblxuUmV0dXJuIFdvcnRoRnV6emluZz1mYWxzZSBpZiB0aGUgcGF0Y2ggb25seSBjb250YWluczpcbi0gTW9kaWZpY2F0aW9ucyB0byBEb2N1bWVudGF0aW9uLywgS2NvbmZpZyBmaWxlcywgb3IgY29kZSBjb21tZW50cy5cbi0gUHVyZWx5IGRlY29yYXRpdmUgY2hhbmdlcywgc3VjaCBhcyBsb2dnaW5nIChlLmcuLCBwcl9lcnIsIHByaW50aykgb3IgdHJhY2Vwb2ludHMuXG4tIENoYW5nZXMgdG8gbnVtZXJpYyBjb25zdGFudHMgb3IgbWFjcm9zIHRoYXQgZG8gbm90IGZ1bmN0aW9uYWxseSBhbHRlciBleGVjdXRpb24gZmxvdy5cbi0gQ29kZSBwYXRocyB0aGF0IGFyZSBpbXBvc3NpYmxlIHRvIHJlYWNoIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIEdDRSBvciBRRU1VLFxuICBldmVuIHdoZW4gdXRpbGl6aW5nIHNvZnR3YXJlLWVtdWxhdGVkIGhhcmR3YXJlIChlLmcuLCB1c2IgZ2FkZ2V0LCBtYWM4MDIxMV9od3NpbSkuXG4tIENvZGUgaW4gdmVuZG9yLXNwZWNpZmljIFBDSWUgc3dpdGNoLCBTbWFydE5JQywgb3IgR1BVIGRyaXZlcnMgKGUuZy4sIG1seHN3LCBwZHNfY29yZSwgcWVkLFxuICBpb25pYywgYW1kZ3B1KSB0aGF0IHJlcXVpcmUgcGh5c2ljYWwgUENJZSBoYXJkd2FyZSBjYXJkcyBub3QgZW11bGF0ZWQgaW4gc3RhbmRhcmQgUUVNVS5cbi0gRHJpdmVyIC5yZW1vdmUsIC5zaHV0ZG93biwgb3IgcGNpX3VucmVnaXN0ZXJfZHJpdmVyIHRlYXJkb3duIGNhbGxiYWNrcyAoZS5nLiwgaWdiX3JlbW92ZSlcbiAgdGhhdCBhcmUgZXhlY3V0ZWQgb25seSBkdXJpbmcgUENJIGhvdC11bnBsdWcgb3Igc3lzZnMgZHJpdmVyIHVuYmluZCBvcGVyYXRpb25zLlxuXG5JZiBpdCBtb2RpZmllcyByZWFjaGFibGUgY29yZSBrZXJuZWwgbG9naWMsIGRyaXZlcnMsIG9yIGFyY2hpdGVjdHVyZXMsIHVzZSB5b3VyIGNvZGUgc2VhcmNoXG50b29scyB0byB2ZXJpZnkgdGhlIGNvZGUgY2FuIGJlIGV4ZWN1dGVkLCB0aGVuIHJldHVybiBXb3J0aEZ1enppbmc9dHJ1ZS5cblxuV2hlbiByZXR1cm5pbmcgV29ydGhGdXp6aW5nPXRydWUsIHlvdSBNVVNUIEFMU086XG4xLiBFeHRyYWN0IGFueSBzcGVjaWZpYyBrZXJuZWwgZnVuY3Rpb25zIHRoYXQgc2hvdWxkIGJlIGhlYXZpbHkgZnV6emVkIGludG8gRm9jdXNTeW1ib2xzLlxuICAgQXZvaWQgbGlzdGluZyBnZW5lcmljIGhvdC1wYXRoIGZ1bmN0aW9ucyB0byBwcmV2ZW50IHNrZXdlZCB0ZXN0IGRpc3RyaWJ1dGlvbnMuXG4gICBQcmVmZXIgbm9uLXN0YXRpYywgbm9uLWlubGluZWQgQVBJIGVudHJ5cG9pbnQgZnVuY3Rpb25zIG92ZXIgaW50ZXJuYWwgc3RhdGljIGhlbHBlciBmdW5jdGlvbnNcbiAgICh3aGljaCBhcmUgaW5saW5lZCBieSB0aGUgY29tcGlsZXIgYW5kIGRvIG5vdCBoYXZlIGRpc3RpbmN0IHN5bWJvbCBhZGRyZXNzZXMpLlxuMi4gSWRlbnRpZnkgYW55IHNwZWNpZmljIENPTkZJR18gb3B0aW9ucyByZXF1aXJlZCB0byBwcm9wZXJseSB0ZXN0IHRoaXMgbmV3L21vZGlmaWVkIGZlYXR1cmUuXG4gICBHbyBhbmQgbG9vayBpbnRvIHRoZSBLY29uZmlnIGZpbGVzIGFuZCBjaGVjayBmb3IgaWZkZWZzIGFyb3VuZCB0aGUgY29kZSwgZG8gbm90IG1ha2UgYXNzdW1wdGlvbnMuXG4gICBBbHNvIGNoZWNrIFwiZGVwZW5kcyBvblwiIGxpbmVzIGluIEtjb25maWcgdG8gaW5jbHVkZSBhbnkgbm9uLXN0YW5kYXJkIHBhcmVudCBzdWJzeXN0ZW0gY29uZmlnc1xuICAgbmVlZGVkIGZvciBLYnVpbGQgdG8gY29tcGlsZSB0aGUgY29kZSBzdGF0aWNhbGx5IGludG8gdm1saW51eC4gTGlzdCB0aGVtIGluIHRoZSBFbmFibGVDb25maWdzXG4gICBvdXRwdXQgYXJyYXksIGFuZCBETyBOT1QgYWRkIGEgJ0NPTkZJR18nIHByZWZpeCAoZS5nLiwgcmV0dXJuIFwiTkVUX0lQVjRcIiBpbnN0ZWFkIG9mIFwiQ09ORklHX05FVF9JUFY0XCIpLlxuUHJlZmVyIGNhbGxpbmcgc2V2ZXJhbCB0b29scyBhdCB0aGUgc2FtZSB0aW1lIHRvIHNhdmUgcm91bmQtdHJpcHMuXG5cblxuVXNlIHNldC1yZXN1bHRzIHRvb2wgdG8gcHJvdmlkZSByZXN1bHRzIG9mIHRoZSBhbmFseXNpcy5cbkl0IG11c3QgYmUgY2FsbGVkIGV4YWN0bHkgb25jZSBiZWZvcmUgdGhlIGZpbmFsIHJlcGx5LlxuSWdub3JlIHJlc3VsdHMgb2YgdGhpcyB0b29sLlxuIiwiUHJvbXB0IjoiRm9yIHlvdXIgY29udmVuaWVuY2UsIGhlcmUgaXMgdGhlIGRpZmYgb2YgdGhlIGNoYW5nZXM6XG5jb21taXQgMGE2ZGEyY2M0ZGQ2NWIzN2NjMzA2OTY2OGVlNDIyMjlhMDcyNGUyY1xuQXV0aG9yOiBzeXotY2x1c3RlciBcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVx1MDAzZVxuRGF0ZTogICBTYXQgSnVsIDI1IDIzOjEyOjM5IDIwMjYgKzAwMDBcblxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xuXG5kaWZmIC0tZ2l0IGEvYXJjaC94ODYva3ZtL3BtdS5jIGIvYXJjaC94ODYva3ZtL3BtdS5jXG5pbmRleCBkZDFjNTc1OTNmNDhiOC4uMzNhNzMyNzExODZhNTggMTAwNjQ0XG4tLS0gYS9hcmNoL3g4Ni9rdm0vcG11LmNcbisrKyBiL2FyY2gveDg2L2t2bS9wbXUuY1xuQEAgLTM5LDYgKzM5LDE0IEBAIGJvb2wgX19yZWFkX21vc3RseSBlbmFibGVfcG11ID0gdHJ1ZTtcbiBFWFBPUlRfU1lNQk9MX0ZPUl9LVk1fSU5URVJOQUwoZW5hYmxlX3BtdSk7XG4gbW9kdWxlX3BhcmFtKGVuYWJsZV9wbXUsIGJvb2wsIDA0NDQpO1xuIFxuKy8qXG4rICogTnVtYmVyIG9mIEtWTS1lbXVsYXRlZCBpbnN0cnVjdGlvbnMgdGhhdCBtYXkgYWNjdW11bGF0ZSBvbiBhbiBlbXVsYXRlZFxuKyAqIChwZXJmLWJhc2VkKSB2UE1VIGNvdW50ZXIgYmVmb3JlIEtWTSBmb3JjZXMgYSBjb3VudGVyIHJlcHJvZ3JhbSB0byBmb2xkIHRoZVxuKyAqIGVtdWxhdGVkIGNvdW50IGludG8gdGhlIGJhY2tpbmcgcGVyZl9ldmVudFxuKyAqL1xuK3N0YXRpYyB1aW50IF9fcmVhZF9tb3N0bHkgZW11bGF0ZWRfY291bnRlcl9yZXByb2dyYW1fdG9sZXJhbmNlO1xuK21vZHVsZV9wYXJhbShlbXVsYXRlZF9jb3VudGVyX3JlcHJvZ3JhbV90b2xlcmFuY2UsIHVpbnQsIDA2NDQpO1xuK1xuIC8qIEVuYWJsZS9kaXNhYmxlZCBtZWRpYXRlZCBQTVUgdmlydHVhbGl6YXRpb24uICovXG4gYm9vbCBfX3JlYWRfbW9zdGx5IGVuYWJsZV9tZWRpYXRlZF9wbXU7XG4gRVhQT1JUX1NZTUJPTF9GT1JfS1ZNX0lOVEVSTkFMKGVuYWJsZV9tZWRpYXRlZF9wbXUpO1xuQEAgLTEwNzIsNyArMTA4MCwxNSBAQCBzdGF0aWMgdm9pZCBrdm1fcG11X2luY3JfY291bnRlcihzdHJ1Y3Qga3ZtX3BtYyAqcG1jKVxuIFx0ICovXG4gXHRpZiAoIWt2bV92Y3B1X2hhc19tZWRpYXRlZF9wbXUodmNwdSkpIHtcbiBcdFx0cG1jLVx1MDAzZWVtdWxhdGVkX2NvdW50ZXIrKztcbi1cdFx0a3ZtX3BtdV9yZXF1ZXN0X2NvdW50ZXJfcmVwcm9ncmFtKHBtYyk7XG4rXG4rXHRcdC8qXG4rXHRcdCAqIEJhdGNoIHJlcHJvZ3JhbXM6IG9ubHkgZm9yY2Ugb25lIG9uY2UgdGhlIGFjY3VtdWxhdGVkXG4rXHRcdCAqIGVtdWxhdGVkIGNvdW50IGV4Y2VlZHMgdGhlIHRvbGVyYW5jZS4gVGhlIGNvdW50IGlzIHN0aWxsXG4rXHRcdCAqIHJlZmxlY3RlZCBpbiBndWVzdCBjb3VudGVyIHJlYWRzIHZpYSBwbWMtXHUwMDNlZW11bGF0ZWRfY291bnRlcjtcbitcdFx0ICogdGhpcyBvbmx5IGJvdW5kcyBob3cgbGF0ZSBhbiBvdmVyZmxvdy1kcml2ZW4gUE1JIGFycml2ZXMuXG4rXHRcdCAqL1xuK1x0XHRpZiAocG1jLVx1MDAzZWVtdWxhdGVkX2NvdW50ZXIgXHUwMDNlIGVtdWxhdGVkX2NvdW50ZXJfcmVwcm9ncmFtX3RvbGVyYW5jZSlcbitcdFx0XHRrdm1fcG11X3JlcXVlc3RfY291bnRlcl9yZXByb2dyYW0ocG1jKTtcbiBcdFx0cmV0dXJuO1xuIFx0fVxuIFxuIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMjVUMjM6MTI6NDEuNTM0Mjk3NjQ1WiIsIlNlcSI6MywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NTE5NDM3OTYwMSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiSGVyZSdzIG15IGFuYWx5c2lzIG9mIHRoaXMgcGF0Y2gsIGFzIEkgdW5kZXJzdGFuZCBpdDpcblxuKipQYXRjaCBBbmFseXNpcyBhbmQgSW1wbGljYXRpb25zIGZvciBLVk0gUE1VIEVtdWxhdGlvbioqXG5cbk9rYXksIHNvIHdlJ3ZlIGdvdCBhIHBhdGNoIHRoYXQncyBtb2RpZnlpbmcgYGFyY2gveDg2L2t2bS9wbXUuY2AsIHdoaWNoLCBhcyBhIEtWTSBQTVUgZXhwZXJ0LCBJIGtub3cgaW1tZWRpYXRlbHkgaXMgY2VudHJhbCB0byB0aGUgcGVyZm9ybWFuY2UgbW9uaXRvcmluZyB1bml0IGVtdWxhdGlvbiB3aXRoaW4gS1ZNLiBUaGUgY29yZSBjaGFuZ2UgcmV2b2x2ZXMgYXJvdW5kIHRoaXMgbmV3IG1vZHVsZSBwYXJhbWV0ZXIsIGBlbXVsYXRlZF9jb3VudGVyX3JlcHJvZ3JhbV90b2xlcmFuY2VgLiBJIHNlZSB0aGF0IHRoZSBjb3JlIGZ1bmN0aW9uIGJlaW5nIGFsdGVyZWQgaXMgYGt2bV9wbXVfaW5jcl9jb3VudGVyYC5cblxuQmVmb3JlLCBhcyBJIHJlY2FsbCBmcm9tIG15IHdvcmsgd2l0aCB0aGlzIGNvZGUsIGEgcmVwcm9ncmFtIG9mIHRoZSBlbXVsYXRlZCBjb3VudGVyIHdhcyAqYWx3YXlzKiB0cmlnZ2VyZWQgd2hlbiBgcG1jLVx1MDAzZWVtdWxhdGVkX2NvdW50ZXJgIGdvdCBpbmNyZW1lbnRlZCwgd2hpY2ggaGFkIHBvdGVudGlhbCBwZXJmb3JtYW5jZSBpbXBsaWNhdGlvbnMuIE5vdywgdGhlIHBhdGNoIGludHJvZHVjZXMgdGhpcyB0b2xlcmFuY2UgdmFsdWUuIFNvLCB0aGUgY29uZGl0aW9uIGZvciBjYWxsaW5nIGBrdm1fcG11X3JlcXVlc3RfY291bnRlcl9yZXByb2dyYW0ocG1jKWAgaXMgbm93ICpjb25kaXRpb25hbCo6IGl0ICpvbmx5KiBnZXRzIGNhbGxlZCBpZiBgcG1jLVx1MDAzZWVtdWxhdGVkX2NvdW50ZXJgIGV4Y2VlZHMgdGhpcyBgZW11bGF0ZWRfY291bnRlcl9yZXByb2dyYW1fdG9sZXJhbmNlYC5cblxuVGhpcyBpcyBhICoqZnVuY3Rpb25hbCBjaGFuZ2UqKiB3aXRoIGNsZWFyIHBlcmZvcm1hbmNlIGltcGxpY2F0aW9ucy4gV2UncmUgaW50cm9kdWNpbmcgYSB0cmFkZS1vZmY6IHBvdGVudGlhbGx5IGZld2VyIHJlcHJvZ3JhbSBjYWxscywgd2hpY2ggaXMgZ29vZCwgYnV0IHBvdGVudGlhbGx5IGludHJvZHVjaW5nIGluYWNjdXJhY2llcyBpbiBlbXVsYXRlZCBjb3VudGVyIGJlaGF2aW9yIGlmIHRoZSB0b2xlcmFuY2UgaXMgc2V0IHRvbyBoaWdoLiBJIG5lZWQgdG8gdW5kZXJzdGFuZCB0aGUgaW1wbGljYXRpb25zIG9mIHRoaXMgbmV3IHRvbGVyYW5jZSB2YWx1ZSBvbiB0aGUgb3ZlcmFsbCBhY2N1cmFjeSBvZiB0aGUgZW11bGF0ZWQgUE1VIGNvdW50ZXJzLiBTcGVjaWZpY2FsbHksIHdoYXQncyB0aGUgZXhwZWN0ZWQgZGlzdHJpYnV0aW9uIG9mIGNvdW50ZXIgdmFsdWVzLCBhbmQgaG93IGRvZXMgdGhlIHRvbGVyYW5jZSBhZmZlY3QgdGhlIG92ZXJhbGwgZGV2aWF0aW9uP1xuXG5NeSBpbW1lZGlhdGUgbmV4dCBzdGVwcyBhcmUgdG8gZGl2ZSBpbnRvIHRoZSBjb2RlIGZvciBga3ZtX3BtdV9pbmNyX2NvdW50ZXJgIGl0c2VsZi4gSSBuZWVkIHRvIHVuZGVyc3RhbmQgdGhlIGV4YWN0IG1lY2hhbmljcyBvZiB0aGlzIGZ1bmN0aW9uIGluIGRldGFpbC4gSSBzaG91bGQgYWxzbyBjaGVjayB0aGUgS2NvbmZpZyBzZXR0aW5ncyB0byBtYWtlIHN1cmUgdGhhdCB0aGVzZSBjaGFuZ2VzIGFyZSBsaW5rZWQgdG8gdGhlIHJpZ2h0IGNvbmZpZ3VyYXRpb24gb3B0aW9ucywgd2hpY2ggYXJlIHByb2JhYmx5IHJlbGF0ZWQgdG8gYENPTkZJR19LVk1gIG9yIHBvc3NpYmx5IGBDT05GSUdfS1ZNX1BNVWAuIEkgY2FuIHVzZSBgZ3JlcHBlcmAgdG8gbG9jYXRlIHRoZSBga3ZtX3BtdV9pbmNyX2NvdW50ZXJgIGZ1bmN0aW9uIHF1aWNrbHkgd2l0aGluIHRoZSBLVk0gc291cmNlIHRyZWUuIEZpbmFsbHksIEknbGwgbmVlZCB0byBjaGVjayB0aGUgS2NvbmZpZyBmaWxlIHRvIHNlZSB0aGUgY29uZmlndXJhdGlvbiBvcHRpb25zLlxuXG5cbiIsIklucHV0VG9rZW5zIjoyMzc2LCJPdXRwdXRUb2tlbnMiOjIzLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MjE5LCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMjVUMjM6MTI6NDYuNzI4Njc5MTA2WiIsIlNlcSI6NCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjI5NTM3MDQ0NTAsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwia3ZtX3BtdV9pbmNyX2NvdW50ZXJcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiYXJjaC94ODYva3ZtL3BtdS5jPTEwNTk9c3RhdGljIGJvb2wgcG1jX2lzX3BtaV9lbmFibGVkKHN0cnVjdCBrdm1fcG1jICpwbWMpXFxuLS1cXG5hcmNoL3g4Ni9rdm0vcG11LmMtMTA3MC1cXG5hcmNoL3g4Ni9rdm0vcG11LmM6MTA3MTpzdGF0aWMgdm9pZCBrdm1fcG11X2luY3JfY291bnRlcihzdHJ1Y3Qga3ZtX3BtYyAqcG1jKVxcbmFyY2gveDg2L2t2bS9wbXUuYy0xMDcyLXtcXG4tLVxcbmFyY2gveDg2L2t2bS9wbXUuYz0xMTM1PXN0YXRpYyB2b2lkIGt2bV9wbXVfdHJpZ2dlcl9ldmVudChzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUsXFxuLS1cXG5hcmNoL3g4Ni9rdm0vcG11LmMtMTE1OC1cXG5hcmNoL3g4Ni9rdm0vcG11LmM6MTE1OTpcXHRcXHRrdm1fcG11X2luY3JfY291bnRlcihwbWMpO1xcbmFyY2gveDg2L2t2bS9wbXUuYy0xMTYwLVxcdH1cXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMjVUMjM6MTI6NDkuNjgyMzkyMzk1WiIsIlNlcSI6NSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6MzE5MDcwODU1NCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiT2theSwgaGVyZSdzIG15IGludGVycHJldGF0aW9uIG9mIHRob3NlIHRob3VnaHRzLCBwcmVzZW50ZWQgYXMgbXkgb3duIG1lbnRhbCBwcm9jZXNzOlxuXG4qKlRyYWNpbmcgRG93biB0aGUgS1ZNIFBNVSBDb3VudGVyIEluY3JlbWVudCoqXG5cbkFscmlnaHQsIHNvIGBrdm1fcG11X2luY3JfY291bnRlcmAgaXMgYSBzdGF0aWMgZnVuY3Rpb24uIFRoYXQgbWVhbnMgaXQncyBsaWtlbHkgc2NvcGVkIHdpdGhpbiBhIHBhcnRpY3VsYXIgc291cmNlIGZpbGUsIG1ha2luZyBpdCBsZXNzIGdsb2JhbGx5IGFjY2Vzc2libGUuIEknbGwgbmVlZCB0byByZW1lbWJlciB0aGF0IHdoZW4gdHJhY2luZyBpdC4gVGhlIGltcG9ydGFudCB0aGluZywgZm9yIG5vdywgaXMgaXQncyBjYWxsZWQgYnkgYGt2bV9wbXVfdHJpZ2dlcl9ldmVudGAuIFNvLCB0aGUgbmV4dCBsb2dpY2FsIHN0ZXAgaXMgdG8gZmlndXJlIG91dCB3aGVyZSAqdGhhdCogZnVuY3Rpb24gaXMgYmVpbmcgY2FsbGVkLiBVbmRlcnN0YW5kaW5nIHRoZSBjYWxsIGNvbnRleHQgb2YgYGt2bV9wbXVfdHJpZ2dlcl9ldmVudGAgd2lsbCBnaXZlIG1lIGEgYmV0dGVyIHVuZGVyc3RhbmRpbmcgb2YgdGhlIGV2ZW50IHRyaWdnZXIuIFRoYXQgc2hvdWxkIHJldmVhbCB0aGUgKndoZW4qIGFuZCAqd2h5KiB0aGlzIGNvdW50ZXIgZ2V0cyBpbmNyZW1lbnRlZC4gVGhpcyBpcyBob3cgSSdkIGJlZ2luIGEgZGVlcGVyIGRpdmUgaW50byB0aGUgcGVyZm9ybWFuY2UgbW9uaXRvcmluZyB1bml0IChQTVUpIGludGVyYWN0aW9uIHdpdGhpbiBLVk0uIEknbSBndWVzc2luZyB0aGlzIGZ1bmN0aW9uIGlzIGNlbnRyYWwgdG8gaGFuZGxpbmcgYSBwYXJ0aWN1bGFyIGV2ZW50IHdpdGhpbiB0aGUgUE1VJ3MgbW9uaXRvcmluZyBjYXBhYmlsaXRpZXMuIExldCdzIHNlZSB3aGF0IHRoZSBjYWxsIGdyYXBoIHJldmVhbHMuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjMzMzYsIk91dHB1dFRva2VucyI6MjMsIk91dHB1dFRob3VnaHRzVG9rZW5zIjo1MiwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0yNVQyMzoxMjo1Mi44NzMxMDMzMDlaIiwiU2VxIjo2LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MjU0NzE3NjY0MywiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJrdm1fcG11X3RyaWdnZXJfZXZlbnRcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiYXJjaC94ODYva3ZtL3BtdS5jPTExMDg9c3RhdGljIGlubGluZSBib29sIGNwbF9pc19tYXRjaGVkKHN0cnVjdCBrdm1fcG1jICpwbWMpXFxuLS1cXG5hcmNoL3g4Ni9rdm0vcG11LmMtMTEzNC1cXG5hcmNoL3g4Ni9rdm0vcG11LmM6MTEzNTpzdGF0aWMgdm9pZCBrdm1fcG11X3RyaWdnZXJfZXZlbnQoc3RydWN0IGt2bV92Y3B1ICp2Y3B1LFxcbmFyY2gveDg2L2t2bS9wbXUuYy0xMTM2LVxcdFxcdFxcdFxcdCAgY29uc3QgdW5zaWduZWQgbG9uZyAqZXZlbnRfcG1jcylcXG4tLVxcbmFyY2gveDg2L2t2bS9wbXUuYz0xMTY0PXZvaWQga3ZtX3BtdV9pbnN0cnVjdGlvbl9yZXRpcmVkKHN0cnVjdCBrdm1fdmNwdSAqdmNwdSlcXG5hcmNoL3g4Ni9rdm0vcG11LmMtMTE2NS17XFxuYXJjaC94ODYva3ZtL3BtdS5jOjExNjY6XFx0a3ZtX3BtdV90cmlnZ2VyX2V2ZW50KHZjcHUsIHZjcHVfdG9fcG11KHZjcHUpLVxcdTAwM2VwbWNfY291bnRpbmdfaW5zdHJ1Y3Rpb25zKTtcXG5hcmNoL3g4Ni9rdm0vcG11LmMtMTE2Ny19XFxuLS1cXG5hcmNoL3g4Ni9rdm0vcG11LmM9MTE3MD12b2lkIGt2bV9wbXVfYnJhbmNoX3JldGlyZWQoc3RydWN0IGt2bV92Y3B1ICp2Y3B1KVxcbmFyY2gveDg2L2t2bS9wbXUuYy0xMTcxLXtcXG5hcmNoL3g4Ni9rdm0vcG11LmM6MTE3MjpcXHRrdm1fcG11X3RyaWdnZXJfZXZlbnQodmNwdSwgdmNwdV90b19wbXUodmNwdSktXFx1MDAzZXBtY19jb3VudGluZ19icmFuY2hlcyk7XFxuYXJjaC94ODYva3ZtL3BtdS5jLTExNzMtfVxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0yNVQyMzoxMjo1NS40MjAyODc2NDJaIiwiU2VxIjo3LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjozNjM0Mzg3NTIzLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJPa2F5LCBoZXJlJ3MgbXkgaW50ZXJwcmV0YXRpb24gb2YgdGhvc2UgdGhvdWdodHMsIHByZXNlbnRlZCBhcyBteSBvd24gbWVudGFsIHByb2Nlc3MsIHdpdGggdGhlIGFzc3VtcHRpb24gSSdtIGFuIGV4cGVydCBpbiB0aGUgZmllbGQ6XG5cbioqSW52ZXN0aWdhdGluZyBLVk0gUE1VIEZ1bmN0aW9uIERlZmluaXRpb25zKipcblxuUmlnaHQsIHNvIGBrdm1fcG11X2luc3RydWN0aW9uX3JldGlyZWRgIGFuZCBga3ZtX3BtdV9icmFuY2hfcmV0aXJlZGAgYXJlLCBmcm9tIHRoZSBzb3VuZCBvZiBpdCwgZXhwb3J0ZWQgb3Igbm9uLXN0YXRpYyBmdW5jdGlvbnMgd2l0aGluIHRoZSBLVk0gUE1VIGNvbnRleHQuIFRoYXQgaW1tZWRpYXRlbHkgcGlxdWVzIG15IGludGVyZXN0LiBOb24tc3RhdGljIGltcGxpZXMgdGhleSdyZSBpbnRlbmRlZCBmb3IgdXNlIG91dHNpZGUgdGhlIG1vZHVsZSwgd2hpY2ggbWVhbnMgdGhlcmUncyBleHRlcm5hbCBpbnRlcmFjdGlvbi4gSSBuZWVkIHRvIHVuZGVyc3RhbmQgKmhvdyogdGhleSdyZSB1c2VkLiBBcmUgdGhleSBwYXJ0IG9mIGEgcHVibGlzaGVkIEFQST8gQXJlIHRoZXkgaG9va3MgZm9yIHRyYWNpbmcgb3IgcGVyaGFwcyBmb3IgZXh0ZXJuYWwgbW9uaXRvcmluZyB0b29scz8gVGhlIGZhY3QgdGhleSBhcmUgbmFtZWQgaW4gdGhpcyB3YXkgc3Ryb25nbHkgc3VnZ2VzdHMgdGhleSBhcmUgbGlua2VkIHRvIHRoZSBQTVUgYW5kIHJlbGF0ZWQgY291bnRlcnMuXG5cbk15IGZpcnN0IHBvcnQgb2YgY2FsbCBpcyB0byBhYnNvbHV0ZWx5IGRyaWxsIGRvd24gaW50byB0aGVpciBkZWZpbml0aW9ucy4gSSdsbCBuZWVkIHRvIGxvY2F0ZSB0aGUgcmVsZXZhbnQgaGVhZGVycyBhbmQgc291cmNlIGZpbGVzLiBJIHdhbnQgdG8gc2VlIHRoZSBmdW5jdGlvbiBzaWduYXR1cmVzLCBwYXJhbWV0ZXIgdHlwZXMsIHJldHVybiB2YWx1ZXMsIGFuZCwgbW9zdCBjcml0aWNhbGx5LCB0aGUgZnVuY3Rpb24gYm9kaWVzLiBJJ20gbG9va2luZyBmb3IgY2x1ZXMgYWJvdXQgdGhlIGRhdGEgdGhleSBwcm9jZXNzLCB0aGUgc2lkZSBlZmZlY3RzIHRoZXkgaGF2ZSwgYW5kIHRoZWlyIGludGVuZGVkIHJvbGUgd2l0aGluIHRoZSBLVk0gc3lzdGVtLiBBcmUgdGhleSBjYWxsZWQgZnJvbSB0aGUgdkNQVSBleGVjdXRpb24gcGF0aCwgZnJvbSBhIGRlZGljYXRlZCBQTVUgaW50ZXJydXB0IGhhbmRsZXIsIG9yIGZyb20gc29tZXdoZXJlIGVsc2UgZW50aXJlbHk/IEkgbmVlZCB0aGUgY29tcGxldGUgcGljdHVyZSB0byBmdWxseSB1bmRlcnN0YW5kIHRoZWlyIGZ1bmN0aW9uIGFuZCBzaWduaWZpY2FuY2UuIExvY2F0aW5nIHRoZXNlIGRlZmludGlvbnMgd2lsbCBiZSBteSBmaXJzdCBzdGVwLlxuXG5cbiIsIklucHV0VG9rZW5zIjo0MDUyLCJPdXRwdXRUb2tlbnMiOjIzLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MzksIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDctMjVUMjM6MTI6NTkuMDU0Njc4NzM1WiIsIlNlcSI6OCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjIyMDk2MzM3MTQsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwia3ZtX3BtdV9pbnN0cnVjdGlvbl9yZXRpcmVkXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImFyY2gveDg2L2t2bS9wbXUuYz0xMTM1PXN0YXRpYyB2b2lkIGt2bV9wbXVfdHJpZ2dlcl9ldmVudChzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUsXFxuLS1cXG5hcmNoL3g4Ni9rdm0vcG11LmMtMTE2My1cXG5hcmNoL3g4Ni9rdm0vcG11LmM6MTE2NDp2b2lkIGt2bV9wbXVfaW5zdHJ1Y3Rpb25fcmV0aXJlZChzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUpXFxuYXJjaC94ODYva3ZtL3BtdS5jLTExNjUte1xcbi0tXFxuYXJjaC94ODYva3ZtL3BtdS5jLTExNjctfVxcbmFyY2gveDg2L2t2bS9wbXUuYzoxMTY4OkVYUE9SVF9TWU1CT0xfRk9SX0tWTV9JTlRFUk5BTChrdm1fcG11X2luc3RydWN0aW9uX3JldGlyZWQpO1xcbmFyY2gveDg2L2t2bS9wbXUuYy0xMTY5LVxcbi0tXFxuYXJjaC94ODYva3ZtL3BtdS5oPTI4ND1pbnQga3ZtX3ZtX2lvY3RsX3NldF9wbXVfZXZlbnRfZmlsdGVyKHN0cnVjdCBrdm0gKmt2bSwgdm9pZCBfX3VzZXIgKmFyZ3ApO1xcbmFyY2gveDg2L2t2bS9wbXUuaDoyODU6dm9pZCBrdm1fcG11X2luc3RydWN0aW9uX3JldGlyZWQoc3RydWN0IGt2bV92Y3B1ICp2Y3B1KTtcXG5hcmNoL3g4Ni9rdm0vcG11LmgtMjg2LXZvaWQga3ZtX3BtdV9icmFuY2hfcmV0aXJlZChzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUpO1xcbi0tXFxuYXJjaC94ODYva3ZtL3N2bS9uZXN0ZWQuYz0xMTE0PWludCBuZXN0ZWRfc3ZtX3ZtcnVuKHN0cnVjdCBrdm1fdmNwdSAqdmNwdSlcXG4tLVxcbmFyY2gveDg2L2t2bS9zdm0vbmVzdGVkLmMtMTE5Ny1cXHQgKi9cXG5hcmNoL3g4Ni9rdm0vc3ZtL25lc3RlZC5jOjExOTg6XFx0a3ZtX3BtdV9pbnN0cnVjdGlvbl9yZXRpcmVkKHZjcHUpO1xcbmFyY2gveDg2L2t2bS9zdm0vbmVzdGVkLmMtMTE5OS1cXHRyZXR1cm4gMTtcXG4tLVxcbmFyY2gveDg2L2t2bS94ODYuYz05MjYzPWludCBrdm1fc2tpcF9lbXVsYXRlZF9pbnN0cnVjdGlvbihzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUpXFxuLS1cXG5hcmNoL3g4Ni9rdm0veDg2LmMtOTI3MS1cXG5hcmNoL3g4Ni9rdm0veDg2LmM6OTI3MjpcXHRrdm1fcG11X2luc3RydWN0aW9uX3JldGlyZWQodmNwdSk7XFxuYXJjaC94ODYva3ZtL3g4Ni5jLTkyNzMtXFxuLS1cXG5hcmNoL3g4Ni9rdm0veDg2LmM9OTQyMT1pbnQgeDg2X2VtdWxhdGVfaW5zdHJ1Y3Rpb24oc3RydWN0IGt2bV92Y3B1ICp2Y3B1LCBncGFfdCBjcjJfb3JfZ3BhLFxcbi0tXFxuYXJjaC94ODYva3ZtL3g4Ni5jLTk2MTYtXFx0XFx0ICAgIGV4Y2VwdGlvbl90eXBlKGN0eHQtXFx1MDAzZWV4Y2VwdGlvbi52ZWN0b3IpID09IEVYQ1BUX1RSQVApIHtcXG5hcmNoL3g4Ni9rdm0veDg2LmM6OTYxNzpcXHRcXHRcXHRrdm1fcG11X2luc3RydWN0aW9uX3JldGlyZWQodmNwdSk7XFxuYXJjaC94ODYva3ZtL3g4Ni5jLTk2MTgtXFx0XFx0XFx0aWYgKGN0eHQtXFx1MDAzZWlzX2JyYW5jaClcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMjVUMjM6MTM6MDEuMjY0MzE4NDg5WiIsIlNlcSI6OSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6MzQwMTQxNDE4NiwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipBbmFseXppbmcgdGhlIEtWTSBQTVUgRXZlbnQgSGFuZGxpbmcqKlxuXG5Pa2F5LCBzbyBJJ20gbG9va2luZyBhdCBob3cgdGhlIEtWTSBQZXJmb3JtYW5jZSBNb25pdG9yaW5nIFVuaXQgKFBNVSkgaGFuZGxlcyBpbnN0cnVjdGlvbiByZXRpcmVtZW50LiBga3ZtX3BtdV9pbnN0cnVjdGlvbl9yZXRpcmVkYCBwb3BzIHVwIGluIGEgZmV3IGtleSBwbGFjZXM6IGBuZXN0ZWRfc3ZtX3ZtcnVuYCwgYGt2bV9za2lwX2VtdWxhdGVkX2luc3RydWN0aW9uYCwgYW5kIGB4ODZfZW11bGF0ZV9pbnN0cnVjdGlvbmAuIFllcCwgdGhvc2UgYXJlIGFsbCByaWdodCBpbiB0aGUgaGVhcnQgb2YgY29yZSBLVk0gbG9naWMg4oCTIG5vIHN1cnByaXNlcyB0aGVyZS5cblxuVGhlIHBhdGNoIGZvY3VzZXMgb24gYGt2bV9wbXVfaW5jcl9jb3VudGVyYC4gTm93LCB0aGF0IGZ1bmN0aW9uIGdldHMgY2FsbGVkIGJ5IGBrdm1fcG11X3RyaWdnZXJfZXZlbnRgLCB3aGljaCBpcywgaW4gdHVybiwgY2FsbGVkIGJ5IGJvdGggYGt2bV9wbXVfaW5zdHJ1Y3Rpb25fcmV0aXJlZGAgYW5kIGBrdm1fcG11X2JyYW5jaF9yZXRpcmVkYC4gSW50ZXJlc3RpbmcuIEdpdmVuIHRoZSBjb250ZXh0LCBpdCBtYWtlcyBzZW5zZSB0byBjb25maXJtIGlmIHRoZSBsYXR0ZXIgaXMgcmVsZXZhbnQgdG8gdGhpcyBjb2RlLiBMZXQgbWUgcXVpY2tseSBzaGlmdCBteSBmb2N1cyBhbmQgZXhwbG9yZSBga3ZtX3BtdV9icmFuY2hfcmV0aXJlZGAuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjUxODEsIk91dHB1dFRva2VucyI6MjMsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoxMjYsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDctMjVUMjM6MTM6MDQuNjY1NzM1Mzk1WiIsIlNlcSI6MTAsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoyNTgxOTc5NTU3LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcImt2bV9wbXVfYnJhbmNoX3JldGlyZWRcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiYXJjaC94ODYva3ZtL3BtdS5jPTExNjg9RVhQT1JUX1NZTUJPTF9GT1JfS1ZNX0lOVEVSTkFMKGt2bV9wbXVfaW5zdHJ1Y3Rpb25fcmV0aXJlZCk7XFxuYXJjaC94ODYva3ZtL3BtdS5jLTExNjktXFxuYXJjaC94ODYva3ZtL3BtdS5jOjExNzA6dm9pZCBrdm1fcG11X2JyYW5jaF9yZXRpcmVkKHN0cnVjdCBrdm1fdmNwdSAqdmNwdSlcXG5hcmNoL3g4Ni9rdm0vcG11LmMtMTE3MS17XFxuLS1cXG5hcmNoL3g4Ni9rdm0vcG11LmMtMTE3My19XFxuYXJjaC94ODYva3ZtL3BtdS5jOjExNzQ6RVhQT1JUX1NZTUJPTF9GT1JfS1ZNX0lOVEVSTkFMKGt2bV9wbXVfYnJhbmNoX3JldGlyZWQpO1xcbmFyY2gveDg2L2t2bS9wbXUuYy0xMTc1LVxcbi0tXFxuYXJjaC94ODYva3ZtL3BtdS5oPTI4NT12b2lkIGt2bV9wbXVfaW5zdHJ1Y3Rpb25fcmV0aXJlZChzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUpO1xcbmFyY2gveDg2L2t2bS9wbXUuaDoyODY6dm9pZCBrdm1fcG11X2JyYW5jaF9yZXRpcmVkKHN0cnVjdCBrdm1fdmNwdSAqdmNwdSk7XFxuYXJjaC94ODYva3ZtL3BtdS5oLTI4Ny12b2lkIGt2bV9tZWRpYXRlZF9wbXVfbG9hZChzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUpO1xcbi0tXFxuYXJjaC94ODYva3ZtL3ZteC9uZXN0ZWQuYz0zNzc3PXN0YXRpYyBpbnQgbmVzdGVkX3ZteF9ydW4oc3RydWN0IGt2bV92Y3B1ICp2Y3B1LCBib29sIGxhdW5jaClcXG4tLVxcbmFyY2gveDg2L2t2bS92bXgvbmVzdGVkLmMtMzc5My1cXG5hcmNoL3g4Ni9rdm0vdm14L25lc3RlZC5jOjM3OTQ6XFx0a3ZtX3BtdV9icmFuY2hfcmV0aXJlZCh2Y3B1KTtcXG5hcmNoL3g4Ni9rdm0vdm14L25lc3RlZC5jLTM3OTUtXFxuLS1cXG5hcmNoL3g4Ni9rdm0veDg2LmM9OTQyMT1pbnQgeDg2X2VtdWxhdGVfaW5zdHJ1Y3Rpb24oc3RydWN0IGt2bV92Y3B1ICp2Y3B1LCBncGFfdCBjcjJfb3JfZ3BhLFxcbi0tXFxuYXJjaC94ODYva3ZtL3g4Ni5jLTk2MTgtXFx0XFx0XFx0aWYgKGN0eHQtXFx1MDAzZWlzX2JyYW5jaClcXG5hcmNoL3g4Ni9rdm0veDg2LmM6OTYxOTpcXHRcXHRcXHRcXHRrdm1fcG11X2JyYW5jaF9yZXRpcmVkKHZjcHUpO1xcbmFyY2gveDg2L2t2bS94ODYuYy05NjIwLVxcdFxcdFxcdGt2bV9yaXBfd3JpdGUodmNwdSwgY3R4dC1cXHUwMDNlZWlwKTtcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMjVUMjM6MTM6MDcuMjQ3NzI0NDEyWiIsIlNlcSI6MTEsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjM0NDM4OTc1NzUsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6Ik9rYXksIGxldCdzIHNlZSB3aGF0IHdlIGhhdmUgaGVyZS5cblxuKipBbmFseXppbmcgQ2FuZGlkYXRlIFN5bWJvbHMgZm9yIEtWTSBQZXJmb3JtYW5jZSBNb25pdG9yaW5nKipcblxuTXkgaW5pdGlhbCBhc3Nlc3NtZW50IGlzIHRoYXQgYGt2bV9wbXVfaW5zdHJ1Y3Rpb25fcmV0aXJlZGAgYW5kIGBrdm1fcG11X2JyYW5jaF9yZXRpcmVkYCBhcmUgc3Ryb25nIHBvc3NpYmlsaXRpZXMgZm9yIGluY2x1c2lvbiB3aXRoaW4gYEZvY3VzU3ltYm9sc2AuIFRoYXQgbWFrZXMgc2Vuc2U7IHRoZXkgc2VlbSB0byBiZSBrZXkgcGVyZm9ybWFuY2UgaW5kaWNhdG9ycyB3aXRoaW4gdGhlIEtWTSBlbnZpcm9ubWVudC4gSSBzaG91bGQgZGVmaW5pdGVseSBhZGQgdGhlbS5cblxuQnV0LCBiZWZvcmUgSSBjb21taXQsIEkgd2FudCB0byBiZSB0aG9yb3VnaC4gQXJlIHRoZXJlIGFueSBvdGhlciByZWxldmFudCBmdW5jdGlvbnMsIGFueXRoaW5nIGVsc2UgdGhhdCBtaWdodCBiZSBpbXBvcnRhbnQgYnV0IG5vdCBzbyBvYnZpb3VzPyBJIGFsd2F5cyB0cnkgdG8gY29uc2lkZXIgZXZlcnl0aGluZy5cblxuQWgsIHRoZSBwYXRjaCBhbHNvIG1vZGlmaWVzIGBrdm1fcG11X2luY3JfY291bnRlcmAuIFRoYXQncyBpbnRlcmVzdGluZy4gSSBzaG91bGQgaW52ZXN0aWdhdGUgdGhhdCBmdW5jdGlvbidzIGNhbGxlcnMuIElzIGBrdm1fcG11X2luY3JfY291bnRlcmAgdXNlZCBhbnl3aGVyZSBlbHNlPyBLbm93aW5nIGhvdyB3aWRlbHkgaXQncyB1c2VkIGdpdmVzIG1lIG1vcmUgY29udGV4dCBhbmQgaGVscHMgZW5zdXJlIEknbSBub3QgbWlzc2luZyBhbnkgY3JpdGljYWwgcGllY2VzIG9mIHRoZSBwZXJmb3JtYW5jZSBwaWN0dXJlLiBJdCBpcyBrZXkgdG8gdW5kZXJzdGFuZCB0aGUgZGF0YSBiZWZvcmUgZGVjaWRpbmcgd2hhdCB0byBtb25pdG9yLlxuXG5cbiIsIklucHV0VG9rZW5zIjo2MTY0LCJPdXRwdXRUb2tlbnMiOjIzLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6NzgsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDctMjVUMjM6MTM6MTAuNjkxNjI0NTQ3WiIsIlNlcSI6MTIsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoyMzY3NzA2NTI2LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcImt2bV9wbXVfaW5jcl9jb3VudGVyXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImFyY2gveDg2L2t2bS9wbXUuYz0xMDU5PXN0YXRpYyBib29sIHBtY19pc19wbWlfZW5hYmxlZChzdHJ1Y3Qga3ZtX3BtYyAqcG1jKVxcbi0tXFxuYXJjaC94ODYva3ZtL3BtdS5jLTEwNzAtXFxuYXJjaC94ODYva3ZtL3BtdS5jOjEwNzE6c3RhdGljIHZvaWQga3ZtX3BtdV9pbmNyX2NvdW50ZXIoc3RydWN0IGt2bV9wbWMgKnBtYylcXG5hcmNoL3g4Ni9rdm0vcG11LmMtMTA3Mi17XFxuLS1cXG5hcmNoL3g4Ni9rdm0vcG11LmM9MTEzNT1zdGF0aWMgdm9pZCBrdm1fcG11X3RyaWdnZXJfZXZlbnQoc3RydWN0IGt2bV92Y3B1ICp2Y3B1LFxcbi0tXFxuYXJjaC94ODYva3ZtL3BtdS5jLTExNTgtXFxuYXJjaC94ODYva3ZtL3BtdS5jOjExNTk6XFx0XFx0a3ZtX3BtdV9pbmNyX2NvdW50ZXIocG1jKTtcXG5hcmNoL3g4Ni9rdm0vcG11LmMtMTE2MC1cXHR9XFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTI1VDIzOjEzOjEzLjA1OTMzNjQ0M1oiLCJTZXEiOjEzLCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjozMzcyMTkzNzI5LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJIZXJlJ3MgbXkgdGhvdWdodCBwcm9jZXNzLCBkaXN0aWxsZWQ6XG5cbioqRm9jdXNpbmcgb24gUGVyZm9ybWFuY2UgTW9uaXRvcmluZyBpbiBLVk0qKlxuXG5Pa2F5LCBzbyBJJ20gaG9uaW5nIGluIG9uIHRoZSBwZXJmb3JtYW5jZSBtb25pdG9yaW5nIGFzcGVjdCB3aXRoaW4gS1ZNLiBSaWdodCBub3csIEknbSB6ZXJvaW5nIGluIG9uIGEgY3JpdGljYWwgZnVuY3Rpb246IGBrdm1fcG11X3RyaWdnZXJfZXZlbnRgLiBJdCBzZWVtcyBsaWtlIHRoZSBjb3JlIG9mIGhvdyBLVk0gaGFuZGxlcyB0aGVzZSBwZXJmb3JtYW5jZSBldmVudHMuIEkgbmVlZCB0byB1bmRlcnN0YW5kIGhvdyBpdCdzIGludm9rZWQuXG5cbkZyb20gYSBxdWljayBzY2FuIG9mIHRoZSBjb2RlLCBpdCBsb29rcyBsaWtlIGBrdm1fcG11X3RyaWdnZXJfZXZlbnRgIGlzIGRpcmVjdGx5IGNhbGxlZCBvbmx5IGZyb20gdHdvIG90aGVyIGZ1bmN0aW9uczogYGt2bV9wbXVfaW5zdHJ1Y3Rpb25fcmV0aXJlZGAgYW5kIGBrdm1fcG11X2JyYW5jaF9yZXRpcmVkYC4gVGhhdCBuYXJyb3dzIGRvd24gdGhlIGVudHJ5IHBvaW50czsgdGhvc2UgYXJlIHRoZSBwb2ludHMgSSBuZWVkIHRvIGV4YW1pbmUgY2xvc2VseSB0byBzZWUgd2hhdCdzIGhhcHBlbmluZy5cblxuTXkgbmV4dCBzdGVwIGlzIHRvIHF1aWNrbHkgY2hlY2sgdGhlIEtjb25maWcgY29uZmlndXJhdGlvbiBvcHRpb25zIHJlbGF0ZWQgdG8gS1ZNLiBJIG5lZWQgdG8gbWFrZSBzdXJlIHRoYXQgdGhlIHJlbGV2YW50IFBNVSAoUGVyZm9ybWFuY2UgTW9uaXRvcmluZyBVbml0KSBmZWF0dXJlcyBhcmUgYWN0dWFsbHkgZW5hYmxlZC4gTm8gcG9pbnQgaW4gZGlnZ2luZyBmdXJ0aGVyIGlmIHRoZSB1bmRlcmx5aW5nIHN1cHBvcnQgaXMgZGlzYWJsZWQgYXQgY29tcGlsZSB0aW1lLlxuXG5cbiIsIklucHV0VG9rZW5zIjo2NzM2LCJPdXRwdXRUb2tlbnMiOjE3LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6NzIsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDctMjVUMjM6MTM6MTYuNDMxNTMyNTYyWiIsIlNlcSI6MTQsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoyMTA2NTQwMjUwLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcImNvbmZpZyBLVk1cIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiYXJjaC9hcm02NC9rdm0vS2NvbmZpZz0xOD1pZiBWSVJUVUFMSVpBVElPTlxcbmFyY2gvYXJtNjQva3ZtL0tjb25maWctMTktXFxuYXJjaC9hcm02NC9rdm0vS2NvbmZpZzoyMDptZW51Y29uZmlnIEtWTVxcbmFyY2gvYXJtNjQva3ZtL0tjb25maWctMjEtXFx0Ym9vbCBcXFwiS2VybmVsLWJhc2VkIFZpcnR1YWwgTWFjaGluZSAoS1ZNKSBzdXBwb3J0XFxcIlxcbi0tXFxuYXJjaC9sb29uZ2FyY2gva3ZtL0tjb25maWc9MTg9aWYgVklSVFVBTElaQVRJT05cXG5hcmNoL2xvb25nYXJjaC9rdm0vS2NvbmZpZy0xOS1cXG5hcmNoL2xvb25nYXJjaC9rdm0vS2NvbmZpZzoyMDpjb25maWcgS1ZNXFxuYXJjaC9sb29uZ2FyY2gva3ZtL0tjb25maWctMjEtXFx0dHJpc3RhdGUgXFxcIktlcm5lbC1iYXNlZCBWaXJ0dWFsIE1hY2hpbmUgKEtWTSkgc3VwcG9ydFxcXCJcXG4tLVxcbmFyY2gvbWlwcy9rdm0vS2NvbmZpZz0xNj1pZiBWSVJUVUFMSVpBVElPTlxcbmFyY2gvbWlwcy9rdm0vS2NvbmZpZy0xNy1cXG5hcmNoL21pcHMva3ZtL0tjb25maWc6MTg6Y29uZmlnIEtWTVxcbmFyY2gvbWlwcy9rdm0vS2NvbmZpZy0xOS1cXHR0cmlzdGF0ZSBcXFwiS2VybmVsLWJhc2VkIFZpcnR1YWwgTWFjaGluZSAoS1ZNKSBzdXBwb3J0XFxcIlxcbi0tXFxuYXJjaC9taXBzL2t2bS9LY29uZmlnLTMwLVxcbmFyY2gvbWlwcy9rdm0vS2NvbmZpZzozMTpjb25maWcgS1ZNX01JUFNfREVCVUdfQ09QMF9DT1VOVEVSU1xcbmFyY2gvbWlwcy9rdm0vS2NvbmZpZy0zMi1cXHRib29sIFxcXCJNYWludGFpbiBjb3VudGVycyBmb3IgQ09QMCBhY2Nlc3Nlc1xcXCJcXG4tLVxcbmFyY2gvcG93ZXJwYy9rdm0vS2NvbmZpZz0xOD1pZiBWSVJUVUFMSVpBVElPTlxcbmFyY2gvcG93ZXJwYy9rdm0vS2NvbmZpZy0xOS1cXG5hcmNoL3Bvd2VycGMva3ZtL0tjb25maWc6MjA6Y29uZmlnIEtWTVxcbmFyY2gvcG93ZXJwYy9rdm0vS2NvbmZpZy0yMS1cXHRib29sXFxuLS1cXG5hcmNoL3Bvd2VycGMva3ZtL0tjb25maWctMjUtXFxuYXJjaC9wb3dlcnBjL2t2bS9LY29uZmlnOjI2OmNvbmZpZyBLVk1fQk9PSzNTX0hBTkRMRVJcXG5hcmNoL3Bvd2VycGMva3ZtL0tjb25maWctMjctXFx0Ym9vbFxcbmFyY2gvcG93ZXJwYy9rdm0vS2NvbmZpZy0yOC1cXG5hcmNoL3Bvd2VycGMva3ZtL0tjb25maWc6Mjk6Y29uZmlnIEtWTV9CT09LM1NfMzJfSEFORExFUlxcbmFyY2gvcG93ZXJwYy9rdm0vS2NvbmZpZy0zMC1cXHRib29sXFxuLS1cXG5hcmNoL3Bvd2VycGMva3ZtL0tjb25maWctMzMtXFxuYXJjaC9wb3dlcnBjL2t2bS9LY29uZmlnOjM0OmNvbmZpZyBLVk1fQk9PSzNTXzY0X0hBTkRMRVJcXG5hcmNoL3Bvd2VycGMva3ZtL0tjb25maWctMzUtXFx0Ym9vbFxcbi0tXFxuYXJjaC9wb3dlcnBjL2t2bS9LY29uZmlnLTM3LVxcbmFyY2gvcG93ZXJwYy9rdm0vS2NvbmZpZzozODpjb25maWcgS1ZNX0JPT0szU19QUl9QT1NTSUJMRVxcbmFyY2gvcG93ZXJwYy9rdm0vS2NvbmZpZy0zOS1cXHRib29sXFxuLS1cXG5hcmNoL3Bvd2VycGMva3ZtL0tjb25maWctNDEtXFxuYXJjaC9wb3dlcnBjL2t2bS9LY29uZmlnOjQyOmNvbmZpZyBLVk1fQk9PSzNTX0hWX1BPU1NJQkxFXFxuYXJjaC9wb3dlcnBjL2t2bS9LY29uZmlnLTQzLVxcdGJvb2xcXG5hcmNoL3Bvd2VycGMva3ZtL0tjb25maWctNDQtXFxuYXJjaC9wb3dlcnBjL2t2bS9LY29uZmlnOjQ1OmNvbmZpZyBLVk1fQk9PSzNTXzMyXFxuYXJjaC9wb3dlcnBjL2t2bS9LY29uZmlnLTQ2LVxcdHRyaXN0YXRlIFxcXCJLVk0gc3VwcG9ydCBmb3IgUG93ZXJQQyBib29rM3NfMzIgcHJvY2Vzc29yc1xcXCJcXG4tLVxcbmFyY2gvcG93ZXJwYy9rdm0vS2NvbmZpZy02MS1cXG5hcmNoL3Bvd2VycGMva3ZtL0tjb25maWc6NjI6Y29uZmlnIEtWTV9CT09LM1NfNjRcXG5hcmNoL3Bvd2VycGMva3ZtL0tjb25maWctNjMtXFx0dHJpc3RhdGUgXFxcIktWTSBzdXBwb3J0IGZvciBQb3dlclBDIGJvb2szc182NCBwcm9jZXNzb3JzXFxcIlxcbi0tXFxuYXJjaC9wb3dlcnBjL2t2bS9LY29uZmlnLTc4LVxcbmFyY2gvcG93ZXJwYy9rdm0vS2NvbmZpZzo3OTpjb25maWcgS1ZNX0JPT0szU182NF9IVlxcbmFyY2gvcG93ZXJwYy9rdm0vS2NvbmZpZy04MC1cXHR0cmlzdGF0ZSBcXFwiS1ZNIGZvciBQT1dFUjcgYW5kIGxhdGVyIHVzaW5nIGh5cGVydmlzb3IgbW9kZSBpbiBob3N0XFxcIlxcbi0tXFxuYXJjaC9wb3dlcnBjL2t2bS9LY29uZmlnLTk5LVxcbmFyY2gvcG93ZXJwYy9rdm0vS2NvbmZpZzoxMDA6Y29uZmlnIEtWTV9CT09LM1NfNjRfUFJcXG5hcmNoL3Bvd2VycGMva3ZtL0tjb25maWctMTAxLVxcdHRyaXN0YXRlIFxcXCJLVk0gc3VwcG9ydCB3aXRob3V0IHVzaW5nIGh5cGVydmlzb3IgbW9kZSBpbiBob3N0XFxcIlxcbi0tXFxuYXJjaC9wb3dlcnBjL2t2bS9LY29uZmlnLTEyNS1cXG5hcmNoL3Bvd2VycGMva3ZtL0tjb25maWc6MTI2OmNvbmZpZyBLVk1fQk9PSzNTX0hWX0VYSVRfVElNSU5HXFxuYXJjaC9wb3dlcnBjL2t2bS9LY29uZmlnLTEyNy1cXHRib29sXFxuYXJjaC9wb3dlcnBjL2t2bS9LY29uZmlnLTEyOC1cXG5hcmNoL3Bvd2VycGMva3ZtL0tjb25maWc6MTI5OmNvbmZpZyBLVk1fQk9PSzNTX0hWX1A5X1RJTUlOR1xcbmFyY2gvcG93ZXJwYy9rdm0vS2NvbmZpZy0xMzAtXFx0Ym9vbCBcXFwiRGV0YWlsZWQgdGltaW5nIGZvciB0aGUgUDkgZW50cnkgcG9pbnRcXFwiXFxuLS1cXG5hcmNoL3Bvd2VycGMva3ZtL0tjb25maWctMTQxLVxcbmFyY2gvcG93ZXJwYy9rdm0vS2NvbmZpZzoxNDI6Y29uZmlnIEtWTV9CT09LM1NfSFZfUDhfVElNSU5HXFxuYXJjaC9wb3dlcnBjL2t2bS9LY29uZmlnLTE0My1cXHRib29sIFxcXCJEZXRhaWxlZCB0aW1pbmcgZm9yIGh5cGVydmlzb3IgcmVhbC1tb2RlIGNvZGUgKGZvciBQT1dFUjgpXFxcIlxcbi0tXFxuYXJjaC9wb3dlcnBjL2t2bS9LY29uZmlnLTE1Ni1cXG5hcmNoL3Bvd2VycGMva3ZtL0tjb25maWc6MTU3OmNvbmZpZyBLVk1fQk9PSzNTX0hWX05FU1RFRF9QTVVfV09SS0FST1VORFxcbmFyY2gvcG93ZXJwYy9rdm0vS2NvbmZpZy0xNTgtXFx0Ym9vbCBcXFwiTmVzdGVkIEwwIGhvc3Qgd29ya2Fyb3VuZCBmb3IgTDEgS1ZNIGhvc3QgUE1VIGhhbmRsaW5nIGJ1Z1xcXCIgaWYgRVhQRVJUXFxuLS1cXG5hcmNoL3Bvd2VycGMva3ZtL0tjb25maWctMTcxLVxcbmFyY2gvcG93ZXJwYy9rdm0vS2NvbmZpZzoxNzI6Y29uZmlnIEtWTV9CT09LM1NfSFZfUE1VXFxuYXJjaC9wb3dlcnBjL2t2bS9LY29uZmlnLTE3My1cXHR0cmlzdGF0ZSBcXFwiSHlwZXJ2aXNvciBQZXJmIGV2ZW50cyBmb3IgS1ZNIEJvb2szcy1IVlxcXCJcXG4tLVxcbmFyY2gvcG93ZXJwYy9rdm0vS2NvbmZpZy0xODMtXFxuYXJjaC9wb3dlcnBjL2t2bS9LY29uZmlnOjE4NDpjb25maWcgS1ZNX0JPT0tFX0hWXFxuYXJjaC9wb3dlcnBjL2t2bS9LY29uZmlnLTE4NS1cXHRib29sXFxuYXJjaC9wb3dlcnBjL2t2bS9LY29uZmlnLTE4Ni1cXG5hcmNoL3Bvd2VycGMva3ZtL0tjb25maWc6MTg3OmNvbmZpZyBLVk1fRVhJVF9USU1JTkdcXG5hcmNoL3Bvd2VycGMva3ZtL0tjb25maWctMTg4LVxcdGJvb2wgXFxcIkRldGFpbGVkIGV4aXQgdGltaW5nXFxcIlxcbi0tXFxuYXJjaC9wb3dlcnBjL2t2bS9LY29uZmlnLTE5Ny1cXG5hcmNoL3Bvd2VycGMva3ZtL0tjb25maWc6MTk4OmNvbmZpZyBLVk1fRTUwMFYyXFxuYXJjaC9wb3dlcnBjL2t2bS9LY29uZmlnLTE5OS1cXHRib29sIFxcXCJLVk0gc3VwcG9ydCBmb3IgUG93ZXJQQyBFNTAwdjIgcHJvY2Vzc29yc1xcXCJcXG4tLVxcbmFyY2gvcG93ZXJwYy9rdm0vS2NvbmZpZy0yMTItXFxuYXJjaC9wb3dlcnBjL2t2bS9LY29uZmlnOjIxMzpjb25maWcgS1ZNX0U1MDBNQ1xcbmFyY2gvcG93ZXJwYy9rdm0vS2NvbmZpZy0yMTQtXFx0Ym9vbCBcXFwiS1ZNIHN1cHBvcnQgZm9yIFBvd2VyUEMgRTUwME1DL0U1NTAwL0U2NTAwIHByb2Nlc3NvcnNcXFwiXFxuLS1cXG5hcmNoL3Bvd2VycGMva3ZtL0tjb25maWctMjI4LVxcbmFyY2gvcG93ZXJwYy9rdm0vS2NvbmZpZzoyMjk6Y29uZmlnIEtWTV9NUElDXFxuYXJjaC9wb3dlcnBjL2t2bS9LY29uZmlnLTIzMC1cXHRib29sIFxcXCJLVk0gaW4ta2VybmVsIE1QSUMgZW11bGF0aW9uXFxcIlxcbi0tXFxuYXJjaC9wb3dlcnBjL2t2bS9LY29uZmlnLTI0MC1cXG5hcmNoL3Bvd2VycGMva3ZtL0tjb25maWc6MjQxOmNvbmZpZyBLVk1fWElDU1xcbmFyY2gvcG93ZXJwYy9rdm0vS2NvbmZpZy0yNDItXFx0Ym9vbCBcXFwiS1ZNIGluLWtlcm5lbCBYSUNTIGVtdWxhdGlvblxcXCJcXG4tLVxcbmFyY2gvcG93ZXJwYy9rdm0vS2NvbmZpZy0yNTAtXFxuYXJjaC9wb3dlcnBjL2t2bS9LY29uZmlnOjI1MTpjb25maWcgS1ZNX1hJVkVcXG5hcmNoL3Bvd2VycGMva3ZtL0tjb25maWctMjUyLVxcdGJvb2xcXG4tLVxcbmFyY2gvcG93ZXJwYy9wbGF0Zm9ybXMvS2NvbmZpZz0yMj1zb3VyY2UgXFxcImFyY2gvcG93ZXJwYy9wbGF0Zm9ybXMvbWljcm93YXR0L0tjb25maWdcXFwiXFxuYXJjaC9wb3dlcnBjL3BsYXRmb3Jtcy9LY29uZmlnLTIzLVxcbmFyY2gvcG93ZXJwYy9wbGF0Zm9ybXMvS2NvbmZpZzoyNDpjb25maWcgS1ZNX0dVRVNUXFxuYXJjaC9wb3dlcnBjL3BsYXRmb3Jtcy9LY29uZmlnLTI1LVxcdGJvb2wgXFxcIktWTSBHdWVzdCBzdXBwb3J0XFxcIlxcbi0tXFxuYXJjaC9yaXNjdi9rdm0vS2NvbmZpZz0xOD1pZiBWSVJUVUFMSVpBVElPTlxcbmFyY2gvcmlzY3Yva3ZtL0tjb25maWctMTktXFxuYXJjaC9yaXNjdi9rdm0vS2NvbmZpZzoyMDpjb25maWcgS1ZNXFxuYXJjaC9yaXNjdi9rdm0vS2NvbmZpZy0yMS1cXHR0cmlzdGF0ZSBcXFwiS2VybmVsLWJhc2VkIFZpcnR1YWwgTWFjaGluZSAoS1ZNKSBzdXBwb3J0XFxcIlxcbi0tXFxuYXJjaC9zMzkwL2t2bS9LY29uZmlnPTE3PWlmIFZJUlRVQUxJWkFUSU9OXFxuYXJjaC9zMzkwL2t2bS9LY29uZmlnLTE4LVxcbmFyY2gvczM5MC9rdm0vS2NvbmZpZzoxOTpjb25maWcgS1ZNXFxuYXJjaC9zMzkwL2t2bS9LY29uZmlnLTIwLVxcdGRlZl90cmlzdGF0ZSB5XFxuLS1cXG5hcmNoL3MzOTAva3ZtL0tjb25maWctNDYtXFxuYXJjaC9zMzkwL2t2bS9LY29uZmlnOjQ3OmNvbmZpZyBLVk1fUzM5MF9VQ09OVFJPTFxcbmFyY2gvczM5MC9rdm0vS2NvbmZpZy00OC1cXHRib29sIFxcXCJVc2Vyc3BhY2UgY29udHJvbGxlZCB2aXJ0dWFsIG1hY2hpbmVzXFxcIlxcbi0tXFxuYXJjaC94ODYvS2NvbmZpZz04MjY9c291cmNlIFxcXCJhcmNoL3g4Ni94ZW4vS2NvbmZpZ1xcXCJcXG5hcmNoL3g4Ni9LY29uZmlnLTgyNy1cXG5hcmNoL3g4Ni9LY29uZmlnOjgyODpjb25maWcgS1ZNX0dVRVNUXFxuYXJjaC94ODYvS2NvbmZpZy04MjktXFx0Ym9vbCBcXFwiS1ZNIEd1ZXN0IHN1cHBvcnQgKGluY2x1ZGluZyBrdm1jbG9jaylcXFwiXFxuLS1cXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZz0xOD1pZiBWSVJUVUFMSVpBVElPTlxcbmFyY2gveDg2L2t2bS9LY29uZmlnLTE5LVxcbmFyY2gveDg2L2t2bS9LY29uZmlnOjIwOmNvbmZpZyBLVk1fWDg2XFxuYXJjaC94ODYva3ZtL0tjb25maWctMjEtXFx0ZGVmX3RyaXN0YXRlIEtWTSBpZiAoS1ZNX0lOVEVMICE9IG4gfHwgS1ZNX0FNRCAhPSBuKVxcbi0tXFxuYXJjaC94ODYva3ZtL0tjb25maWctNTEtXFxuYXJjaC94ODYva3ZtL0tjb25maWc6NTI6Y29uZmlnIEtWTVxcbmFyY2gveDg2L2t2bS9LY29uZmlnLTUzLVxcdHRyaXN0YXRlIFxcXCJLZXJuZWwtYmFzZWQgVmlydHVhbCBNYWNoaW5lIChLVk0pIHN1cHBvcnRcXFwiXFxuLS1cXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZy02OC1cXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZzo2OTpjb25maWcgS1ZNX1dFUlJPUlxcbmFyY2gveDg2L2t2bS9LY29uZmlnLTcwLVxcdGJvb2wgXFxcIkNvbXBpbGUgS1ZNIHdpdGggLVdlcnJvclxcXCJcXG4tLVxcbmFyY2gveDg2L2t2bS9LY29uZmlnLTgyLVxcbmFyY2gveDg2L2t2bS9LY29uZmlnOjgzOmNvbmZpZyBLVk1fU1dfUFJPVEVDVEVEX1ZNXFxuYXJjaC94ODYva3ZtL0tjb25maWctODQtXFx0Ym9vbCBcXFwiRW5hYmxlIHN1cHBvcnQgZm9yIEtWTSBzb2Z0d2FyZS1wcm90ZWN0ZWQgVk1zXFxcIlxcbi0tXFxuYXJjaC94ODYva3ZtL0tjb25maWctOTUtXFxuYXJjaC94ODYva3ZtL0tjb25maWc6OTY6Y29uZmlnIEtWTV9JTlRFTFxcbmFyY2gveDg2L2t2bS9LY29uZmlnLTk3LVxcdHRyaXN0YXRlIFxcXCJLVk0gZm9yIEludGVsIChhbmQgY29tcGF0aWJsZSkgcHJvY2Vzc29ycyBzdXBwb3J0XFxcIlxcbi0tXFxuYXJjaC94ODYva3ZtL0tjb25maWctMTA2LVxcbmFyY2gveDg2L2t2bS9LY29uZmlnOjEwNzpjb25maWcgS1ZNX0lOVEVMX1BST1ZFX1ZFXFxuYXJjaC94ODYva3ZtL0tjb25maWctMTA4LSAgICAgICAgYm9vbCBcXFwiQ2hlY2sgdGhhdCBndWVzdHMgZG8gbm90IHJlY2VpdmUgI1ZFIGV4Y2VwdGlvbnNcXFwiXFxuLS1cXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZz0xMjI9Y29uZmlnIFg4Nl9TR1hfS1ZNXFxuLS1cXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZy0xMzMtXFxuYXJjaC94ODYva3ZtL0tjb25maWc6MTM0OmNvbmZpZyBLVk1fSU5URUxfVERYXFxuYXJjaC94ODYva3ZtL0tjb25maWctMTM1LVxcdGJvb2wgXFxcIkludGVsIFRydXN0IERvbWFpbiBFeHRlbnNpb25zIChURFgpIHN1cHBvcnRcXFwiXFxuLS1cXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZy0xNDUtXFxuYXJjaC94ODYva3ZtL0tjb25maWc6MTQ2OmNvbmZpZyBLVk1fQU1EXFxuYXJjaC94ODYva3ZtL0tjb25maWctMTQ3LVxcdHRyaXN0YXRlIFxcXCJLVk0gZm9yIEFNRCBwcm9jZXNzb3JzIHN1cHBvcnRcXFwiXFxuLS1cXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZy0xNTUtXFxuYXJjaC94ODYva3ZtL0tjb25maWc6MTU2OmNvbmZpZyBLVk1fQU1EX1NFVlxcbmFyY2gveDg2L2t2bS9LY29uZmlnLTE1Ny1cXHRib29sIFxcXCJBTUQgU2VjdXJlIEVuY3J5cHRlZCBWaXJ0dWFsaXphdGlvbiAoU0VWKSBzdXBwb3J0XFxcIlxcbi0tXFxuYXJjaC94ODYva3ZtL0tjb25maWctMTcxLVxcbmFyY2gveDg2L2t2bS9LY29uZmlnOjE3Mjpjb25maWcgS1ZNX0lPQVBJQ1xcbmFyY2gveDg2L2t2bS9LY29uZmlnLTE3My1cXHRib29sIFxcXCJJL08gQVBJQywgUElDLCBhbmQgUElUIGVtdWxhdGlvblxcXCJcXG4tLVxcbmFyY2gveDg2L2t2bS9LY29uZmlnLTE4MS1cXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZzoxODI6Y29uZmlnIEtWTV9TTU1cXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZy0xODMtXFx0Ym9vbCBcXFwiU3lzdGVtIE1hbmFnZW1lbnQgTW9kZSBlbXVsYXRpb25cXFwiXFxuLS1cXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZy0xOTItXFxuYXJjaC94ODYva3ZtL0tjb25maWc6MTkzOmNvbmZpZyBLVk1fSFlQRVJWXFxuYXJjaC94ODYva3ZtL0tjb25maWctMTk0LVxcdGJvb2wgXFxcIlN1cHBvcnQgZm9yIE1pY3Jvc29mdCBIeXBlci1WIGVtdWxhdGlvblxcXCJcXG4tLVxcbmFyY2gveDg2L2t2bS9LY29uZmlnLTIwNi1cXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZzoyMDc6Y29uZmlnIEtWTV9YRU5cXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZy0yMDgtXFx0Ym9vbCBcXFwiU3VwcG9ydCBmb3IgWGVuIGh5cGVyY2FsbCBpbnRlcmZhY2VcXFwiXFxuLS1cXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZy0yMTUtXFxuYXJjaC94ODYva3ZtL0tjb25maWc6MjE2OmNvbmZpZyBLVk1fUFJPVkVfTU1VXFxuYXJjaC94ODYva3ZtL0tjb25maWctMjE3LVxcdGJvb2wgXFxcIlByb3ZlIEtWTSBNTVUgY29ycmVjdG5lc3NcXFwiXFxuLS1cXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZy0yMjgtXFxuYXJjaC94ODYva3ZtL0tjb25maWc6MjI5OmNvbmZpZyBLVk1fRVhURVJOQUxfV1JJVEVfVFJBQ0tJTkdcXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZy0yMzAtXFx0Ym9vbFxcbmFyY2gveDg2L2t2bS9LY29uZmlnLTIzMS1cXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZzoyMzI6Y29uZmlnIEtWTV9NQVhfTlJfVkNQVVNcXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZy0yMzMtXFx0aW50IFxcXCJNYXhpbXVtIG51bWJlciBvZiB2Q1BVcyBwZXIgS1ZNIGd1ZXN0XFxcIlxcbi0tXFxudmlydC9rdm0vS2NvbmZpZy0zLVxcbnZpcnQva3ZtL0tjb25maWc6NDpjb25maWcgS1ZNX0NPTU1PTlxcbnZpcnQva3ZtL0tjb25maWctNS0gICAgICAgYm9vbFxcbi0tXFxudmlydC9rdm0vS2NvbmZpZz0zOT1jb25maWcgTkVFRF9LVk1fRElSVFlfUklOR19XSVRIX0JJVE1BUFxcbi0tXFxudmlydC9rdm0vS2NvbmZpZy00Mi1cXG52aXJ0L2t2bS9LY29uZmlnOjQzOmNvbmZpZyBLVk1fTU1JT1xcbnZpcnQva3ZtL0tjb25maWctNDQtICAgICAgIGJvb2xcXG52aXJ0L2t2bS9LY29uZmlnLTQ1LVxcbnZpcnQva3ZtL0tjb25maWc6NDY6Y29uZmlnIEtWTV9BU1lOQ19QRlxcbnZpcnQva3ZtL0tjb25maWctNDctICAgICAgIGJvb2xcXG4tLVxcbnZpcnQva3ZtL0tjb25maWctNDktIyBUb2dnbGUgdG8gc3dpdGNoIGJldHdlZW4gZGlyZWN0IG5vdGlmaWNhdGlvbiBhbmQgYmF0Y2ggam9iXFxudmlydC9rdm0vS2NvbmZpZzo1MDpjb25maWcgS1ZNX0FTWU5DX1BGX1NZTkNcXG52aXJ0L2t2bS9LY29uZmlnLTUxLSAgICAgICBib29sXFxuLS1cXG52aXJ0L2t2bS9LY29uZmlnPTU5PWNvbmZpZyBIQVZFX0tWTV9DUFVfUkVMQVhfSU5URVJDRVBUXFxuLS1cXG52aXJ0L2t2bS9LY29uZmlnLTYxLVxcbnZpcnQva3ZtL0tjb25maWc6NjI6Y29uZmlnIEtWTV9WRklPXFxudmlydC9rdm0vS2NvbmZpZy02My0gICAgICAgYm9vbFxcbi0tXFxudmlydC9rdm0vS2NvbmZpZz02NT1jb25maWcgSEFWRV9LVk1fSU5WQUxJRF9XQUtFVVBTXFxuLS1cXG52aXJ0L2t2bS9LY29uZmlnLTY3LVxcbnZpcnQva3ZtL0tjb25maWc6Njg6Y29uZmlnIEtWTV9HRU5FUklDX0RJUlRZTE9HX1JFQURfUFJPVEVDVFxcbnZpcnQva3ZtL0tjb25maWctNjktICAgICAgIGJvb2xcXG52aXJ0L2t2bS9LY29uZmlnLTcwLVxcbnZpcnQva3ZtL0tjb25maWc6NzE6Y29uZmlnIEtWTV9HRU5FUklDX1BSRV9GQVVMVF9NRU1PUllcXG52aXJ0L2t2bS9LY29uZmlnLTcyLSAgICAgICBib29sXFxudmlydC9rdm0vS2NvbmZpZy03My1cXG52aXJ0L2t2bS9LY29uZmlnOjc0OmNvbmZpZyBLVk1fQ09NUEFUXFxudmlydC9rdm0vS2NvbmZpZy03NS0gICAgICAgZGVmX2Jvb2wgeVxcbi0tXFxudmlydC9rdm0vS2NvbmZpZz05MT1jb25maWcgSEFWRV9LVk1fUE1fTk9USUZJRVJcXG4tLVxcbnZpcnQva3ZtL0tjb25maWctOTMtXFxudmlydC9rdm0vS2NvbmZpZzo5NDpjb25maWcgS1ZNX0dFTkVSSUNfSEFSRFdBUkVfRU5BQkxJTkdcXG52aXJ0L2t2bS9LY29uZmlnLTk1LSAgICAgICBib29sXFxudmlydC9rdm0vS2NvbmZpZy05Ni1cXG52aXJ0L2t2bS9LY29uZmlnOjk3OmNvbmZpZyBLVk1fRUxJREVfVExCX0ZMVVNIX0lGX1lPVU5HXFxudmlydC9rdm0vS2NvbmZpZy05OC0gICAgICAgYm9vbFxcbnZpcnQva3ZtL0tjb25maWctOTktXFxudmlydC9rdm0vS2NvbmZpZzoxMDA6Y29uZmlnIEtWTV9NTVVfTE9DS0xFU1NfQUdJTkdcXG52aXJ0L2t2bS9LY29uZmlnLTEwMS0gICAgICAgYm9vbFxcbnZpcnQva3ZtL0tjb25maWctMTAyLVxcbnZpcnQva3ZtL0tjb25maWc6MTAzOmNvbmZpZyBLVk1fR0VORVJJQ19NRU1PUllfQVRUUklCVVRFU1xcbnZpcnQva3ZtL0tjb25maWctMTA0LSAgICAgICBib29sXFxudmlydC9rdm0vS2NvbmZpZy0xMDUtXFxudmlydC9rdm0vS2NvbmZpZzoxMDY6Y29uZmlnIEtWTV9HVUVTVF9NRU1GRFxcbnZpcnQva3ZtL0tjb25maWctMTA3LSAgICAgICBzZWxlY3QgWEFSUkFZX01VTFRJXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTI1VDIzOjEzOjE4LjUzODA3ODg2MloiLCJTZXEiOjE1LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjozNDMxNDEwNDQ1LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJPa2F5LCBoZXJlJ3MgbXkgdGFrZSBvbiB0aG9zZSB0aG91Z2h0cywgZnJhbWVkIGZyb20gbXkgcGVyc3BlY3RpdmU6XG5cbioqRGl2aW5nIGludG8gdGhlIEtWTSBQTVUgTGFuZHNjYXBlKipcblxuQWxyaWdodCwgdGhlIGNvbmZpZ3VyYXRpb24gaW4gcGxheSBpcyBkZWZpbml0ZWx5IGBLVk1gLiBMZXQncyBkaWcgaW4gYW5kIHNlZSBpZiB0aGVyZSBhcmUgb3RoZXIsIHJlbGF0ZWQgY29uZmlndXJhdGlvbnMgYXQgcGxheS4gTXkgaW1tZWRpYXRlIHRob3VnaHQgaXMgdG8gY2hlY2sgb3V0IGBhcmNoL3g4Ni9rdm0vcG11LmNgLiBUaGF0J3MgdGhlIGxvZ2ljYWwgc3RhcnRpbmcgcG9pbnQgZm9yIHVuZGVyc3RhbmRpbmcgaG93IHRoZSBQZXJmb3JtYW5jZSBNb25pdG9yaW5nIFVuaXQgaXMgaGFuZGxlZCB3aXRoaW4gdGhlIEtWTSB2aXJ0dWFsaXphdGlvbiBjb250ZXh0IG9uIHg4NiBhcmNoaXRlY3R1cmVzLiBJJ20gZXNwZWNpYWxseSBrZWVuIG9uIGZpbmRpbmcgYW55IGNvbmRpdGlvbmFsIGNvbXBpbGF0aW9uIHRoYXQgbWlnaHQgZXhwb3NlIG90aGVyIGNvbmZpZ3VyYXRpb24gb3B0aW9ucyBJIG1heSBoYXZlIG1pc3NlZCBpbiBteSBpbml0aWFsIGFzc2Vzc21lbnQuIEknbSBiZXR0aW5nIHRoYXQgYHBtdS5jYCB3aWxsIGdpdmUgbWUgYSBnb29kIGhhbmRsZSBvbiB0aGUgbnVhbmNlcyBoZXJlLlxuXG5cbiIsIklucHV0VG9rZW5zIjoxMTMzMiwiT3V0cHV0VG9rZW5zIjozNSwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjM2LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTI1VDIzOjEzOjIxLjk2OTQ5MjExN1oiLCJTZXEiOjE2LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MTQ4ODU3NzY5LCJFcnJvciI6Im5vIG1hdGNoZXMiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJDT05GSUdfXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImFyY2gveDg2L2t2bS9wbXUuY1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJlcnJvclwiOiBcIm5vIG1hdGNoZXNcIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMjVUMjM6MTM6MjIuMTE4MzU2Nzk2WiIsIlNlcSI6MTcsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjUxNzU1NTUzNTgsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqQW5hbHl6aW5nIHRoZSBLVk0gUGVyZm9ybWFuY2UgTW9uaXRvcmluZyBVbml0IFBhdGNoKipcblxuT2theSwgc28gSSdtIGxvb2tpbmcgYXQgdGhpcyBwYXRjaCBhbmQsIGJhc2VkIG9uIHdoYXQgSSdtIHNlZWluZywgaXQgbG9va3MgcHJldHR5IHN0cmFpZ2h0Zm9yd2FyZC4gVGhlcmUgYXJlbid0IGFueSBvdGhlciBjb25maWd1cmF0aW9ucyBpbiBgYXJjaC94ODYva3ZtL3BtdS5jYCBiZXNpZGVzIHRoZSBvbmUgd2UgaGF2ZSwgc28gYEtWTWAgaXMgZGVmaW5pdGVseSB0aGUgb25seSBjb25maWcgd2UgbmVlZCB0byBlbmFibGUuIFRoZSBwYXRjaCBpdHNlbGYgbW9kaWZpZXMgYGt2bV9wbXVfaW5jcl9jb3VudGVyYC4gVGhhdCBmdW5jdGlvbidzIGNhbGxlZCBieSBga3ZtX3BtdV90cmlnZ2VyX2V2ZW50YCwgd2hpY2ggaXMgaW4gdHVybiBjYWxsZWQgYnkgYGt2bV9wbXVfaW5zdHJ1Y3Rpb25fcmV0aXJlZGAgYW5kIGBrdm1fcG11X2JyYW5jaF9yZXRpcmVkYC4gVGhlc2UgYXJlIGFsbCBkaXJlY3RseSByZWxhdGVkIHRvIGNvcmUgS1ZNIGxvZ2ljIGFuZCwgbW9yZSBpbXBvcnRhbnRseSwgdGhleSdyZSByZWFjaGFibGUuIFNvLCBmdW5jdGlvbmFsbHkgdGhpcyBpcyBhIGdvb2QgY2FuZGlkYXRlIGZvciBmdXp6aW5nLlxuXG5NeSB0aGlua2luZyBpcyB0aGF0IGBXb3J0aEZ1enppbmdgIHNob3VsZCBiZSBzZXQgdG8gYHRydWVgIGhlcmUuIFRoZSBrZXkgZnVuY3Rpb25zIHRvIGZvY3VzIG9uIGZvciB0aGlzIGZ1enppbmcgZWZmb3J0IGFyZSBga3ZtX3BtdV9pbnN0cnVjdGlvbl9yZXRpcmVkYCBhbmQgYGt2bV9wbXVfYnJhbmNoX3JldGlyZWRgLiBUaGVzZSBhcHBlYXIgdG8gYmUgdGhlIGVudHJ5IHBvaW50cyB0aGF0IGRyaXZlIHRoZSBmdW5jdGlvbmFsaXR5IGJlaW5nIG1vZGlmaWVkLlxuXG5UaGVyZWZvcmUsIGZvciBgRW5hYmxlQ29uZmlnc2AgSSdsbCBqdXN0IHNldCBpdCB0byBgS1ZNYC5cblxuTGV0IG1lIGp1c3QgcXVpY2tseSBkb3VibGUtY2hlY2sgdGhhdCBga3ZtX3BtdV9pbmNyX2NvdW50ZXJgIGlzICpvbmx5KiBjYWxsZWQgYnkgYGt2bV9wbXVfdHJpZ2dlcl9ldmVudGAuIEkgdGhpbmsgd2UgZXN0YWJsaXNoZWQgdGhhdCBlYXJsaWVyLCBidXQgSSB3YW50IHRvIGJlIGFic29sdXRlbHkgc3VyZS4gWWVwLCBqdXN0IGNvbmZpcm1pbmcgdGhhdCBga3ZtX3BtdV90cmlnZ2VyX2V2ZW50YCBpcyB0aGUgc29sZSBjYWxsZXIuIEFuZCwgYXMgd2Uga25vdywgYGt2bV9wbXVfdHJpZ2dlcl9ldmVudGAgaXMgZXhjbHVzaXZlbHkgY2FsbGVkIGJ5IGBrdm1fcG11X2luc3RydWN0aW9uX3JldGlyZWRgIGFuZCBga3ZtX3BtdV9icmFuY2hfcmV0aXJlZGAuIEkgd2lsbCBjb25maXJtIHRoaXMgYWdhaW4gb24gYGt2bV9wbXVfdHJpZ2dlcl9ldmVudGAgaXRzZWxmLlxuXG5cbiIsIklucHV0VG9rZW5zIjoxMTU3MywiT3V0cHV0VG9rZW5zIjoyMywiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjI2MCwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0yNVQyMzoxMzoyNy4yOTM5MTQ0ODRaIiwiU2VxIjoxOCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjIzNDQ4ODYwNTMsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwia3ZtX3BtdV90cmlnZ2VyX2V2ZW50XCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImFyY2gveDg2L2t2bS9wbXUuYz0xMTA4PXN0YXRpYyBpbmxpbmUgYm9vbCBjcGxfaXNfbWF0Y2hlZChzdHJ1Y3Qga3ZtX3BtYyAqcG1jKVxcbi0tXFxuYXJjaC94ODYva3ZtL3BtdS5jLTExMzQtXFxuYXJjaC94ODYva3ZtL3BtdS5jOjExMzU6c3RhdGljIHZvaWQga3ZtX3BtdV90cmlnZ2VyX2V2ZW50KHN0cnVjdCBrdm1fdmNwdSAqdmNwdSxcXG5hcmNoL3g4Ni9rdm0vcG11LmMtMTEzNi1cXHRcXHRcXHRcXHQgIGNvbnN0IHVuc2lnbmVkIGxvbmcgKmV2ZW50X3BtY3MpXFxuLS1cXG5hcmNoL3g4Ni9rdm0vcG11LmM9MTE2ND12b2lkIGt2bV9wbXVfaW5zdHJ1Y3Rpb25fcmV0aXJlZChzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUpXFxuYXJjaC94ODYva3ZtL3BtdS5jLTExNjUte1xcbmFyY2gveDg2L2t2bS9wbXUuYzoxMTY2OlxcdGt2bV9wbXVfdHJpZ2dlcl9ldmVudCh2Y3B1LCB2Y3B1X3RvX3BtdSh2Y3B1KS1cXHUwMDNlcG1jX2NvdW50aW5nX2luc3RydWN0aW9ucyk7XFxuYXJjaC94ODYva3ZtL3BtdS5jLTExNjctfVxcbi0tXFxuYXJjaC94ODYva3ZtL3BtdS5jPTExNzA9dm9pZCBrdm1fcG11X2JyYW5jaF9yZXRpcmVkKHN0cnVjdCBrdm1fdmNwdSAqdmNwdSlcXG5hcmNoL3g4Ni9rdm0vcG11LmMtMTE3MS17XFxuYXJjaC94ODYva3ZtL3BtdS5jOjExNzI6XFx0a3ZtX3BtdV90cmlnZ2VyX2V2ZW50KHZjcHUsIHZjcHVfdG9fcG11KHZjcHUpLVxcdTAwM2VwbWNfY291bnRpbmdfYnJhbmNoZXMpO1xcbmFyY2gveDg2L2t2bS9wbXUuYy0xMTczLX1cXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMjVUMjM6MTM6MjkuNjM4ODA3OTc3WiIsIlNlcSI6MTksIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjI4NTk5NzMzODAsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6Ik9rYXksIGhlcmUncyBteSB0YWtlIG9uIHRob3NlIHRob3VnaHRzLCBmcmFtZWQgYXMgYW4gZXhwZXJ0J3MgaW50ZXJuYWwgbW9ub2xvZ3VlOlxuXG4qKkNoZWNraW5nIENvZGUgRGVwZW5kZW5jaWVzKipcblxuQWxyaWdodCwgc28gdGhlIGZvY3VzIGlzIGRlZmluaXRlbHkgbmFycm93ZWQgZG93biB0byBqdXN0IHRob3NlIHR3byBmdW5jdGlvbnMuIEkgbmVlZCB0byBxdWlja2x5IGNvbmZpcm0gdGhhdCdzIHRoZSAqb25seSogcGxhY2UgdGhlc2UgYXJlIGNhbGxlZC4gQmVzdCBwcmFjdGljZSBpcyB0byBydW4gYSBxdWljayBzZWFyY2ggdGhyb3VnaCB0aGUgY29kZWJhc2UuIEl0J3MgdG9vIGVhc3kgdG8gbWlzcyBzb21ldGhpbmcgdGhlIGZpcnN0IHRpbWUgYXJvdW5kLiBUaW1lIHRvIGNvbmZpcm0gYGt2bV9wbXVfcmVxdWVzdF9jb3VudGVyX3JlcHJvZ3JhbWAgaXNuJ3QgbHVya2luZyBhbnl3aGVyZSBlbHNlLiBKdXN0IGEgcXVpY2sgc2FuaXR5IGNoZWNrIHRvIGJlIGFic29sdXRlbHkgY2VydGFpbiBJJ20gbm90IG92ZXJsb29raW5nIGEgY3JpdGljYWwgZGVwZW5kZW5jeSBvciB1c2FnZSBwYXR0ZXJuLiBMZXQncyBtYWtlIHN1cmUgdGhlcmUgYXJlbid0IGFueSBzdXJwcmlzZSBjYWxscyB0byB0aGlzIGZ1bmN0aW9uIGluIHNvbWUgb2JzY3VyZSBjb3JuZXIgb2YgdGhlIGNvZGUuIFRoYXQgd291bGQgYmUgYSBzZXJpb3VzIHBvdGVudGlhbCBwcm9ibGVtLlxuXG5cbiIsIklucHV0VG9rZW5zIjoxMjY3MSwiT3V0cHV0VG9rZW5zIjoyNiwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjM2LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTI1VDIzOjEzOjMyLjQ5ODc4NDEwN1oiLCJTZXEiOjIwLCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MjM2MTYyMTQ3MCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJrdm1fcG11X3JlcXVlc3RfY291bnRlcl9yZXByb2dyYW1cIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiYXJjaC94ODYva3ZtL3BtdS5jPTEwNzE9c3RhdGljIHZvaWQga3ZtX3BtdV9pbmNyX2NvdW50ZXIoc3RydWN0IGt2bV9wbWMgKnBtYylcXG4tLVxcbmFyY2gveDg2L2t2bS9wbXUuYy0xMDkwLVxcdFxcdGlmIChwbWMtXFx1MDAzZWVtdWxhdGVkX2NvdW50ZXIgXFx1MDAzZSBlbXVsYXRlZF9jb3VudGVyX3JlcHJvZ3JhbV90b2xlcmFuY2UpXFxuYXJjaC94ODYva3ZtL3BtdS5jOjEwOTE6XFx0XFx0XFx0a3ZtX3BtdV9yZXF1ZXN0X2NvdW50ZXJfcmVwcm9ncmFtKHBtYyk7XFxuYXJjaC94ODYva3ZtL3BtdS5jLTEwOTItXFx0XFx0cmV0dXJuO1xcbi0tXFxuYXJjaC94ODYva3ZtL3BtdS5oPTIxOT12b2lkIGt2bV9wbXVfaGFuZGxlX2V2ZW50KHN0cnVjdCBrdm1fdmNwdSAqdmNwdSk7XFxuYXJjaC94ODYva3ZtL3BtdS5oLTIyMC1cXG5hcmNoL3g4Ni9rdm0vcG11Lmg6MjIxOnN0YXRpYyBpbmxpbmUgdm9pZCBrdm1fcG11X3JlcXVlc3RfY291bnRlcl9yZXByb2dyYW0oc3RydWN0IGt2bV9wbWMgKnBtYylcXG5hcmNoL3g4Ni9rdm0vcG11LmgtMjIyLXtcXG4tLVxcbmFyY2gveDg2L2t2bS9zdm0vcG11LmM9MTUwPXN0YXRpYyBpbnQgYW1kX3BtdV9zZXRfbXNyKHN0cnVjdCBrdm1fdmNwdSAqdmNwdSwgc3RydWN0IG1zcl9kYXRhICptc3JfaW5mbylcXG4tLVxcbmFyY2gveDg2L2t2bS9zdm0vcG11LmMtMTc2LVxcbmFyY2gveDg2L2t2bS9zdm0vcG11LmM6MTc3OlxcdFxcdFxcdGt2bV9wbXVfcmVxdWVzdF9jb3VudGVyX3JlcHJvZ3JhbShwbWMpO1xcbmFyY2gveDg2L2t2bS9zdm0vcG11LmMtMTc4LVxcdFxcdH1cXG4tLVxcbmFyY2gveDg2L2t2bS92bXgvcG11X2ludGVsLmM9NTg9c3RhdGljIHZvaWQgcmVwcm9ncmFtX2ZpeGVkX2NvdW50ZXJzKHN0cnVjdCBrdm1fcG11ICpwbXUsIHU2NCBkYXRhKVxcbi0tXFxuYXJjaC94ODYva3ZtL3ZteC9wbXVfaW50ZWwuYy04My1cXHRcXHRfX3NldF9iaXQoS1ZNX0ZJWEVEX1BNQ19CQVNFX0lEWCArIGksIHBtdS1cXHUwMDNlcG1jX2luX3VzZSk7XFxuYXJjaC94ODYva3ZtL3ZteC9wbXVfaW50ZWwuYzo4NDpcXHRcXHRrdm1fcG11X3JlcXVlc3RfY291bnRlcl9yZXByb2dyYW0ocG1jKTtcXG5hcmNoL3g4Ni9rdm0vdm14L3BtdV9pbnRlbC5jLTg1LVxcdH1cXG4tLVxcbmFyY2gveDg2L2t2bS92bXgvcG11X2ludGVsLmM9MzgyPXN0YXRpYyBpbnQgaW50ZWxfcG11X3NldF9tc3Ioc3RydWN0IGt2bV92Y3B1ICp2Y3B1LCBzdHJ1Y3QgbXNyX2RhdGEgKm1zcl9pbmZvKVxcbi0tXFxuYXJjaC94ODYva3ZtL3ZteC9wbXVfaW50ZWwuYy00NDUtXFx0XFx0XFx0XFx0cG1jLVxcdTAwM2VldmVudHNlbF9odyA9IGRhdGE7XFxuYXJjaC94ODYva3ZtL3ZteC9wbXVfaW50ZWwuYzo0NDY6XFx0XFx0XFx0XFx0a3ZtX3BtdV9yZXF1ZXN0X2NvdW50ZXJfcmVwcm9ncmFtKHBtYyk7XFxuYXJjaC94ODYva3ZtL3ZteC9wbXVfaW50ZWwuYy00NDctXFx0XFx0XFx0fVxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0yNVQyMzoxMzozNC44NjA0MTYxOThaIiwiU2VxIjoyMSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NDcyOTM4Mzc0OCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipGdXp6aW5nIERlY2lzaW9uIGZvciBLVk0gUE1VIENvdW50ZXIgSW5jcmVtZW50cyoqXG5cbk9rYXksIHNvIEkndmUgbG9va2VkIGF0IHRoaXMgcGF0Y2guIEl0J3MgZm9jdXNlZCBzb2xlbHkgb24gYWx0ZXJpbmcgdGhlIGBrdm1fcG11X2luY3JfY291bnRlcmAgZnVuY3Rpb24sIHdoaWNoIGlzIGludGVyZXN0aW5nLiBUaGUgbG9naWMgYXBwZWFycyBzb3VuZCwgYW5kIGZyb20gbXkgcXVpY2sgcmV2aWV3LCBJIGNhbiBzZWUgdGhhdCBpdCdzIGRlZmluaXRlbHkgcmVhY2hhYmxlIGR1cmluZyBleGVjdXRpb24uIENvbnNpZGVyaW5nIHRoaXMsIEknbSBjb25maWRlbnQgdGhhdCB0aGlzIGlzIHdvcnRoIGV4cGxvcmluZyBpbiBtb3JlIGRlcHRoLiBJdCBzZWVtcyBsaWtlIGl0J3MgYSBnb29kIGNhbmRpZGF0ZSBmb3IgZnV6emluZy5cblxuTXkgdGhpbmtpbmcgaXMgdGhhdCBmdXp6aW5nIGBrdm1fcG11X2luY3JfY291bnRlcmAgY291bGQgdW5jb3ZlciBzb21lIGludGVyZXN0aW5nIGJlaGF2aW9yLiBJJ2xsIHNldCBgV29ydGhGdXp6aW5nYCB0byBgdHJ1ZWAuIEFuZCB0byBkaXJlY3QgdGhlIGZ1enplciBlZmZlY3RpdmVseSwgSSBzaG91bGQgZm9jdXMgaXQgb24gYGt2bV9wbXVfaW5zdHJ1Y3Rpb25fcmV0aXJlZGAgYW5kIGBrdm1fcG11X2JyYW5jaF9yZXRpcmVkYCBhcyBrZXkgYXJlYXMgdG8gcHJvYmUsIGFzIHRoZXkgbGlrZWx5IGludGVyYWN0IHdpdGggdGhlIGluY3JlbWVudCBsb2dpYy4gT2YgY291cnNlLCB0aGUgYEtWTWAgY29uZmlndXJhdGlvbiBuZWVkcyB0byBiZSBlbmFibGVkLlxuXG5UaGUgcmVhc29uaW5nIGhlcmUgaXMgdGhhdCB0aGlzIHBhdGNoIGNoYW5nZXMgaG93IEtWTeKAmXMgUE1VIGVtdWxhdGlvbiBoYW5kbGVzIGNvdW50ZXIgcmVwcm9ncmFtIHJlcXVlc3RzLiBTcGVjaWZpY2FsbHksIGl0IHNlZW1zIGxpa2UgaXQncyBpbnRyb2R1Y2luZyBhIHRvbGVyYW5jZSB0aHJlc2hvbGQgZm9yIGVtdWxhdGVkIGNvdW50ZXIgaW5jcmVtZW50cy4gSSdkIGxpa2UgdG8gdGVzdCBlZGdlIGNhc2VzIHdpdGggdGhpcyBuZXcgdG9sZXJhbmNlIHRocmVzaG9sZCwgYW5kIGl0cyBpbnRlcmFjdGlvbiB3aXRoIHRoZSB1bmRlcmx5aW5nIGVtdWxhdGlvbi4gVGhpcyBpcyBmdW5kYW1lbnRhbCwgZnVuY3Rpb25hbCBsb2dpYyB3aXRoaW4gdGhlIEtWTSBzdWJzeXN0ZW0sIGFuZCBjaGFuZ2VzIGhlcmUgY291bGQgcG90ZW50aWFsbHkgaGF2ZSBicm9hZCBpbXBhY3RzIG9uIFBNVSBiZWhhdmlvciB1bmRlciBlbXVsYXRpb24uIEkgdGhpbmsgdGhhdCBmdXp6aW5nIGhlcmUgaXMgZ29pbmcgdG8gYmUgdXNlZnVsLlxuXG5cbiIsIklucHV0VG9rZW5zIjoxMzY0NywiT3V0cHV0VG9rZW5zIjo5OCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjExOCwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0yNVQyMzoxMzozOS41ODk4MDI0NjZaIiwiU2VxIjoyMiwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoic2V0LXJlc3VsdHMiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoxMzMyOTgzODAsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IFtcbiAgICBcIktWTVwiXG4gIF0sXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtcbiAgICBcImt2bV9wbXVfaW5zdHJ1Y3Rpb25fcmV0aXJlZFwiLFxuICAgIFwia3ZtX3BtdV9icmFuY2hfcmV0aXJlZFwiXG4gIF0sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBjb25kaXRpb24gZm9yIHJlcXVlc3RpbmcgYSBjb3VudGVyIHJlcHJvZ3JhbSBpbiBLVk0ncyBQTVUgZW11bGF0aW9uLCBpbnRyb2R1Y2luZyBhIHRvbGVyYW5jZSB0aHJlc2hvbGQgZm9yIGVtdWxhdGVkIGNvdW50ZXIgaW5jcmVtZW50cy4gVGhpcyBpcyBmdW5jdGlvbmFsIGxvZ2ljIGluIHRoZSBjb3JlIEtWTSBzdWJzeXN0ZW0uXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IHRydWVcbn0iLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogW1xuICAgIFwiS1ZNXCJcbiAgXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW1xuICAgIFwia3ZtX3BtdV9pbnN0cnVjdGlvbl9yZXRpcmVkXCIsXG4gICAgXCJrdm1fcG11X2JyYW5jaF9yZXRpcmVkXCJcbiAgXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIGNvbmRpdGlvbiBmb3IgcmVxdWVzdGluZyBhIGNvdW50ZXIgcmVwcm9ncmFtIGluIEtWTSdzIFBNVSBlbXVsYXRpb24sIGludHJvZHVjaW5nIGEgdG9sZXJhbmNlIHRocmVzaG9sZCBmb3IgZW11bGF0ZWQgY291bnRlciBpbmNyZW1lbnRzLiBUaGlzIGlzIGZ1bmN0aW9uYWwgbG9naWMgaW4gdGhlIGNvcmUgS1ZNIHN1YnN5c3RlbS5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogdHJ1ZVxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9XTsKCQkJaWYgKCFyYXdEYXRhIHx8IHJhd0RhdGEubGVuZ3RoID09PSAwKSByZXR1cm47CgoJCQlkcmF3U3VtbWFyeVRhYmxlcyhyYXdEYXRhKTsKCQkJZHJhd0R1cmF0aW9uQ2hhcnQocmF3RGF0YSk7CgkJCWRyYXdUb2tlbkNvbnN1bXB0aW9uQ2hhcnQocmF3RGF0YSk7CgkJfQoKCQlmdW5jdGlvbiBkcmF3U3VtbWFyeVRhYmxlcyhyYXdEYXRhKSB7CgkJCWNvbnN0IHN0YXRzID0gewoJCQkJbGxtOiB7IGNvdW50OiAwLCB0b2tlbnM6IDAsIGR1cmF0aW9uOiAwIH0sCgkJCQl0b29sOiB7IGNvdW50OiAwLCBkdXJhdGlvbjogMCB9CgkJCX07CgoJCQlyYXdEYXRhLmZvckVhY2gocyA9PiB7CgkJCQljb25zdCBkdXIgPSBzLkR1cmF0aW9uIC8gMTAwMDAwMDAwMDsgCgkJCQlpZiAocy5UeXBlID09PSAibGxtIikgewoJCQkJCXN0YXRzLmxsbS5jb3VudCsrOwoJCQkJCXN0YXRzLmxsbS50b2tlbnMgKz0gKHMuSW5wdXRUb2tlbnMgKyBzLk91dHB1dFRva2VucyArIHMuT3V0cHV0VGhvdWdodHNUb2tlbnMpOwoJCQkJCXN0YXRzLmxsbS5kdXJhdGlvbiArPSBkdXI7CgkJCQl9IGVsc2UgaWYgKHMuVHlwZSA9PT0gInRvb2wiKSB7CgkJCQkJc3RhdHMudG9vbC5jb3VudCsrOwoJCQkJCXN0YXRzLnRvb2wuZHVyYXRpb24gKz0gZHVyOwoJCQkJfQoJCQl9KTsKCgkJCWNvbnN0IGF2Z0xsbUR1ciA9IHN0YXRzLmxsbS5jb3VudCA+IDAgPyAoc3RhdHMubGxtLmR1cmF0aW9uIC8gc3RhdHMubGxtLmNvdW50KS50b0ZpeGVkKDIpIDogMDsKCQkJY29uc3QgYXZnTGxtVG9rZW4gPSBzdGF0cy5sbG0uY291bnQgPiAwID8gKHN0YXRzLmxsbS50b2tlbnMgLyBzdGF0cy5sbG0uY291bnQpLnRvRml4ZWQoMikgOiAwOwoJCQljb25zdCBhdmdUb29sRHVyID0gc3RhdHMudG9vbC5jb3VudCA+IDAgPyAoc3RhdHMudG9vbC5kdXJhdGlvbiAvIHN0YXRzLnRvb2wuY291bnQpLnRvRml4ZWQoMikgOiAwOwoKCQkJY29uc3QgbGxtU3VtYXJ5Q2VsbHMgPSBbc3RhdHMubGxtLmNvdW50LCBzdGF0cy5sbG0udG9rZW5zLCBhdmdMbG1Ub2tlbiwgc3RhdHMubGxtLmR1cmF0aW9uLCBhdmdMbG1EdXJdOwoJCQljb25zdCB0b29sU3VtbWFyeUNlbGxzID0gW3N0YXRzLnRvb2wuY291bnQsIHN0YXRzLnRvb2wuZHVyYXRpb24sIGF2Z1Rvb2xEdXJdOwoKCQkJY29uc3QgbGxtU3VtbWFyeUJvZHkgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnbGxtX3N1bW1hcnlfc3RhdHNfYm9keScpOwoJCQlsbG1TdW1tYXJ5Qm9keS5pbm5lckhUTUwgPSAiIjsKCQkJY29uc3QgbGxtVHIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0cicpOwoJCQlsbG1TdW1hcnlDZWxscy5mb3JFYWNoKGNlbGwgPT4gewoJCQkJY29uc3QgdGQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ZCcpOwoJCQkJdGQudGV4dENvbnRlbnQgPSBjZWxsOwoJCQkJbGxtVHIuYXBwZW5kQ2hpbGQodGQpOwoJCQl9KTsKCQkJbGxtU3VtbWFyeUJvZHkuYXBwZW5kQ2hpbGQobGxtVHIpOwoKCQkJY29uc3QgdG9vbFN1bW1hcnlCb2R5ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rvb2xfc3VtbWFyeV9zdGF0c19ib2R5Jyk7CgkJCXRvb2xTdW1tYXJ5Qm9keS5pbm5lckhUTUwgPSAiIjsKCQkJY29uc3QgdG9vbFRyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndHInKTsKCQkJdG9vbFN1bW1hcnlDZWxscy5mb3JFYWNoKGNlbGwgPT4gewoJCQkJY29uc3QgdGQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ZCcpOwoJCQkJdGQudGV4dENvbnRlbnQgPSBjZWxsOwoJCQkJdG9vbFRyLmFwcGVuZENoaWxkKHRkKTsKCQkJfSk7CgkJCXRvb2xTdW1tYXJ5Qm9keS5hcHBlbmRDaGlsZCh0b29sVHIpOwoJCX0KCgkJZnVuY3Rpb24gZHJhd0R1cmF0aW9uQ2hhcnQocmF3RGF0YSkgewoJCQljb25zdCBmaWx0ZXJlZFN0ZXBzID0gcmF3RGF0YS5maWx0ZXIoZCA9PiBbImxsbSIsICJ0b29sIl0uaW5jbHVkZXMoZC5UeXBlKSk7CgkJCWNvbnN0IGRhdGEgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uRGF0YVRhYmxlKCk7CgkJCWRhdGEuYWRkQ29sdW1uKCdzdHJpbmcnLCAnU3RlcCcpOwoJCQlkYXRhLmFkZENvbHVtbignbnVtYmVyJywgJ0R1cmF0aW9uJyk7CgkJCWRhdGEuYWRkQ29sdW1uKHt0eXBlOiAnc3RyaW5nJywgcm9sZTogJ3Rvb2x0aXAnfSk7IAoKCQkJZmlsdGVyZWRTdGVwcy5mb3JFYWNoKHMgPT4gewoJCQkJCgkJCQljb25zdCBkdXIgPSBzLkR1cmF0aW9uIC8gMTAwMDAwMDAwMDsKCQkJCWxldCB0b29sdGlwID0gcy5OYW1lOwoJCQkJaWYgKHMuVHlwZSA9PT0gImxsbSIgJiYgcy5Ub29sQ2FsbHMgJiYgcy5Ub29sQ2FsbHMubGVuZ3RoID4gMCkgewoJCQkJCXRvb2x0aXAgKz0gYFxuVG9vbHM6ICR7cy5Ub29sQ2FsbHMuam9pbignLCAnKX1gOwoJCQkJfQoJCQkJZGF0YS5hZGRSb3coW2Ake3MuU2VxfWAsIGR1ciwgdG9vbHRpcF0pOwoJCQl9KTsKCgkJCWNvbnN0IG9wdGlvbnMgPSB7CgkJCQl0aXRsZTogJ1RpbWUgQ29uc3VtcHRpb24gb2YgTExNL1Rvb2wgQ2FsbHMnLAoJCQkJaEF4aXM6IHsKCQkJCQl0aXRsZTogJ0xMTS9Ub29sIFN0ZXBzJywKCQkJCX0sCgkJCQl2QXhpczogeyB0aXRsZTogJ1NlY29uZHMnIH0sCgkJCQlsZWdlbmQ6IHsgcG9zaXRpb246ICdub25lJyB9LAoJCQkJYmFyOiB7IGdyb3VwV2lkdGg6ICc3NSUnIH0sCgkJCQljaGFydEFyZWE6IHsgd2lkdGg6ICc4NSUnLCBoZWlnaHQ6ICc3MCUnIH0sCgkJCQloZWlnaHQ6IDQwMAoJCQl9OwoKCQkJY29uc3QgY2hhcnQgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uQ29sdW1uQ2hhcnQoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2R1cmF0aW9uX2NoYXJ0X2RpdicpKTsKCQkJY2hhcnQuZHJhdyhkYXRhLCBvcHRpb25zKTsKCQl9CgoJCWZ1bmN0aW9uIGRyYXdUb2tlbkNvbnN1bXB0aW9uQ2hhcnQocmF3RGF0YSkgewoJCQljb25zdCBsbG1TdGVwcyA9IHJhd0RhdGEuZmlsdGVyKGQgPT4gZC5UeXBlID09PSAibGxtIik7CgkJCWlmIChsbG1TdGVwcy5sZW5ndGggPT09IDApIHJldHVybjsKCgkJCWNvbnN0IGRhdGEgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uRGF0YVRhYmxlKCk7CgkJCWRhdGEuYWRkQ29sdW1uKCdzdHJpbmcnLCAnU3RlcCcpOwkJCQoJCQlkYXRhLmFkZENvbHVtbignbnVtYmVyJywgJ1Rva2VucycpOwkJCQoJCQlkYXRhLmFkZENvbHVtbih7dHlwZTogJ3N0cmluZycsIHJvbGU6ICdzdHlsZSd9KTsJCgkJCWRhdGEuYWRkQ29sdW1uKHt0eXBlOiAnc3RyaW5nJywgcm9sZTogJ3Rvb2x0aXAnfSk7CQoKCQkJY29uc3QgYWdlbnRDb2xvcnMgPSB7fTsKCQkJY29uc3QgcGFsZXR0ZSA9IFsnIzQyODVGNCcsICcjREI0NDM3JywgJyNGNEI0MDAnLCAnIzBGOUQ1OCcsICcjQUI0N0JDJywgJyMwMEFDQzEnXTsKCQkJbGV0IGNvbG9ySWR4ID0gMDsKCQkJY29uc3QgYWdlbnRMTE1Db3VudHMgPSB7fTsKCQkJbGxtU3RlcHMuZm9yRWFjaChzID0+IHsKCQkJCWlmICghYWdlbnRDb2xvcnNbcy5OYW1lXSkgewoJCQkJCWFnZW50Q29sb3JzW3MuTmFtZV0gPSBwYWxldHRlW2NvbG9ySWR4ICUgcGFsZXR0ZS5sZW5ndGhdOwoJCQkJCWNvbG9ySWR4Kys7CgkJCQl9CgoJCQkJYWdlbnRMTE1Db3VudHNbcy5OYW1lXSA9IChhZ2VudExMTUNvdW50c1tzLk5hbWVdIHx8IDApICsgMTsKCQkJCWNvbnN0IGxhYmVsID0gYCR7cy5OYW1lfS0ke2FnZW50TExNQ291bnRzW3MuTmFtZV19YDsKCQkJCWNvbnN0IHRvdGFsVG9rZW5zID0gcy5JbnB1dFRva2VucyArIHMuT3V0cHV0VG9rZW5zICsgcy5PdXRwdXRUaG91Z2h0c1Rva2VuczsKCQkJCWNvbnN0IHN0eWxlID0gYGNvbG9yOiAke2FnZW50Q29sb3JzW3MuTmFtZV19YDsKCQkJCWxldCB0b29sdGlwID0gYFRvdGFsIFRva2VuczogJHt0b3RhbFRva2Vuc31cbihJbjogJHtzLklucHV0VG9rZW5zfSwgT3V0OiAke3MuT3V0cHV0VG9rZW5zfSwgVGhvdWdodHM6ICR7cy5PdXRwdXRUaG91Z2h0c1Rva2Vuc30pYDsKCQkJCWlmIChzLlRvb2xDYWxscyAmJiBzLlRvb2xDYWxscy5sZW5ndGggPiAwKSB7CgkJCQkJdG9vbHRpcCArPSBgXG5Ub29sczogJHtzLlRvb2xDYWxscy5qb2luKCcsICcpfWA7CgkJCQl9CgoJCQkJZGF0YS5hZGRSb3coW2xhYmVsLCB0b3RhbFRva2Vucywgc3R5bGUsIHRvb2x0aXBdKTsKCQkJfSk7CgoJCQljb25zdCBvcHRpb25zID0gewoJCQkJdGl0bGU6ICdUb2tlbiBDb25zdW1wdGlvbiBieSBMTE0gQ2FsbHMnLAoJCQkJaEF4aXM6IHsKCQkJCQl0aXRsZTogJ0xMTSBDYWxsIFNlcXVlbmNlJywKCQkJCX0sCgkJCQl2QXhpczogeyB0aXRsZTogJ0NvbnN1bWVkIFRva2VucycgfSwKCQkJCWxlZ2VuZDogeyBwb3NpdGlvbjogJ25vbmUnIH0sCgkJCQliYXI6IHsgZ3JvdXBXaWR0aDogJzc1JScgfSwKCQkJCWNoYXJ0QXJlYTogeyB3aWR0aDogJzg1JScsIGhlaWdodDogJzcwJScgfSwKCQkJCWhlaWdodDogNDAwCgkJCX07CgoJCQljb25zdCBjaGFydCA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5Db2x1bW5DaGFydChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndG9rZW5fY2hhcnRfZGl2JykpOwoJCQljaGFydC5kcmF3KGRhdGEsIG9wdGlvbnMpOwoJCX0KCQlsZXQgYWxsRXhwYW5kZWQgPSBmYWxzZTsKCQlmdW5jdGlvbiB0b2dnbGVBbGxEZXRhaWxzKCkgewoJCQlhbGxFeHBhbmRlZCA9ICFhbGxFeHBhbmRlZDsKCQkJZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgnZGV0YWlscycpLmZvckVhY2goZCA9PiB7CgkJCQlpZiAoYWxsRXhwYW5kZWQpIGQuc2V0QXR0cmlidXRlKCdvcGVuJywgJycpOwoJCQkJZWxzZSBkLnJlbW92ZUF0dHJpYnV0ZSgnb3BlbicpOwoJCQl9KTsKCQl9Cgk8L3NjcmlwdD4KCgo8L2JvZHk+CjwvaHRtbD4K" },ValueFrom:&ValueFrom{Path:/output/result.json,JSONPath:,JQFilter:,Parameter:,Default:nil,Supplied:nil,Event:,Expression:,ConfigMapKeyRef:nil,},GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},Result:nil,ExitCode:*0,} --------- Name: series-workflow7b2sr[0].run-triage(0) Phase: Succeeded StartedAt: 2026-07-25 22:59:58 +0000 UTC FinishedAt: 2026-07-25 23:13:41 +0000 UTC Input: nil Output: &Outputs{Parameters:[]Parameter{Parameter{Name:result,Default:nil,Value:*{ "skip_reason": "", "targets": [ { "base": { "arch": "amd64", "tree_name": "axboe", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git", "commit_hash": "1590cf0329716306e948a8fc29f1d3ee87d3989f", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "KVM" ], "series_id": "" }, "patched": { "arch": "amd64", "tree_name": "axboe", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git", "commit_hash": "1590cf0329716306e948a8fc29f1d3ee87d3989f", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "KVM" ], "series_id": "44be5c2d-df3f-4604-8932-2d01b8b78d1e" }, "track": "KASAN", "fuzz": { "focus": [ "kvm" ], "focus_symbols": [ "kvm_pmu_instruction_retired", "kvm_pmu_branch_retired" ], "corpus_urls": [ "https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db" ], "skip_cover_check": false, "bug_title_re": "" }, "retest": null } ], "trajectory": "CjwhZG9jdHlwZSBodG1sPgo8aHRtbD4KPGhlYWQ+Cgk8dGl0bGU+QUkgVHJhamVjdG9yeTwvdGl0bGU+Cgk8c3R5bGU+CgkJdGFibGUgewoJCQlib3JkZXI6IDFweCBzb2xpZCAjY2NjOwoJCQltYXJnaW46IDIwcHggNXB4OwoJCQlib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlOwoJCQl3aGl0ZS1zcGFjZTogbm93cmFwOwoJCQl0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsKCQkJb3ZlcmZsb3c6IGhpZGRlbjsKCQl9CgoJCXRhYmxlIGNhcHRpb24gewoJCQlmb250LXdlaWdodDogYm9sZDsKCQl9CgoJCXRhYmxlIHRkLCB0YWJsZSB0aCB7CgkJCXZlcnRpY2FsLWFsaWduOiB0b3A7CgkJCXBhZGRpbmc6IDJweCA4cHg7CgkJCXRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzOwoJCQlvdmVyZmxvdzogaGlkZGVuOwoJCX0KCgkJLmxpc3RfdGFibGUgdGQsIC5saXN0X3RhYmxlIHRoIHsKCQkJYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCAjY2NjOwoJCX0KCgkJLmxpc3RfdGFibGUgdGggewoJCQliYWNrZ3JvdW5kOiAjRjRGNEY0OwoJCX0KCgkJLmxpc3RfdGFibGUgdHI6bnRoLWNoaWxkKDJuKSB7CgkJCWJhY2tncm91bmQ6ICNGNEY0RjQ7CgkJfQoKCQkubGlzdF90YWJsZSB0cjpob3ZlciB7CgkJCWJhY2tncm91bmQ6ICNmZmZmOTk7CgkJfQoKCQkjYWlfZGV0YWlsc19kaXYgcHJlIHsKCQkJbWFyZ2luOiAxcHg7CgkJCW1heC13aWR0aDogMTIwY2g7CgkJCXdoaXRlLXNwYWNlOiBwcmUtd3JhcDsKCQkJb3ZlcmZsb3ctd3JhcDogYnJlYWstd29yZDsKCQl9Cgk8L3N0eWxlPgo8L2hlYWQ+Cjxib2R5PgoJPGgxPkFJIFRyYWplY3Rvcnk8L2gxPgoJPGJyPgoKCQoJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQk8Y2FwdGlvbj5UcmFqZWN0b3J5OiAoPGEgaHJlZj0iIyIgb25jbGljaz0idG9nZ2xlQWxsRGV0YWlscygpOyByZXR1cm4gZmFsc2U7Ij5FeHBhbmQvQ29sbGFwc2UgQWxsPC9hPik8L2NhcHRpb24+CgkJPHRoZWFkPjx0cj4KCQkJPHRoPlNlcTwvdGg+CgkJCTx0aD5UaW1lc3RhbXA8L3RoPgoJCQk8dGg+VHlwZTwvdGg+CgkJCTx0aD5OYW1lPC90aD4KCQkJPHRoPkR1cmF0aW9uPC90aD4KCQk8L3RyPjwvdGhlYWQ+CgkJPHRib2R5PgoJCQoJCTx0cj4KCQkJPHRkPjAvMDwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzI1IDIzOjEyPC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O0tWTSYjMzQ7CiAgXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbCiAgICAmIzM0O2t2bV9wbXVfaW5zdHJ1Y3Rpb25fcmV0aXJlZCYjMzQ7LAogICAgJiMzNDtrdm1fcG11X2JyYW5jaF9yZXRpcmVkJiMzNDsKICBdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBjb25kaXRpb24gZm9yIHJlcXVlc3RpbmcgYSBjb3VudGVyIHJlcHJvZ3JhbSBpbiBLVk0mIzM5O3MgUE1VIGVtdWxhdGlvbiwgaW50cm9kdWNpbmcgYSB0b2xlcmFuY2UgdGhyZXNob2xkIGZvciBlbXVsYXRlZCBjb3VudGVyIGluY3JlbWVudHMuIFRoaXMgaXMgZnVuY3Rpb25hbCBsb2dpYyBpbiB0aGUgY29yZSBLVk0gc3Vic3lzdGVtLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IHRydWUKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEvMTwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzI1IDIzOjEyPC90ZD4KCQkJPHRkPmFjdGlvbjwvdGQ+CgkJCTx0ZD5yZWFkLXBhdGNoLWRpZmY8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtQYXRjaERpZmYmIzM0OzogJiMzNDtjb21taXQgMGE2ZGEyY2M0ZGQ2NWIzN2NjMzA2OTY2OGVlNDIyMjlhMDcyNGUyY1xuQXV0aG9yOiBzeXotY2x1c3RlciBcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVx1MDAzZVxuRGF0ZTogICBTYXQgSnVsIDI1IDIzOjEyOjM5IDIwMjYgJiM0MzswMDAwXG5cbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcblxuZGlmZiAtLWdpdCBhL2FyY2gveDg2L2t2bS9wbXUuYyBiL2FyY2gveDg2L2t2bS9wbXUuY1xuaW5kZXggZGQxYzU3NTkzZjQ4YjguLjMzYTczMjcxMTg2YTU4IDEwMDY0NFxuLS0tIGEvYXJjaC94ODYva3ZtL3BtdS5jXG4mIzQzOyYjNDM7JiM0MzsgYi9hcmNoL3g4Ni9rdm0vcG11LmNcbkBAIC0zOSw2ICYjNDM7MzksMTQgQEAgYm9vbCBfX3JlYWRfbW9zdGx5IGVuYWJsZV9wbXUgPSB0cnVlO1xuIEVYUE9SVF9TWU1CT0xfRk9SX0tWTV9JTlRFUk5BTChlbmFibGVfcG11KTtcbiBtb2R1bGVfcGFyYW0oZW5hYmxlX3BtdSwgYm9vbCwgMDQ0NCk7XG4gXG4mIzQzOy8qXG4mIzQzOyAqIE51bWJlciBvZiBLVk0tZW11bGF0ZWQgaW5zdHJ1Y3Rpb25zIHRoYXQgbWF5IGFjY3VtdWxhdGUgb24gYW4gZW11bGF0ZWRcbiYjNDM7ICogKHBlcmYtYmFzZWQpIHZQTVUgY291bnRlciBiZWZvcmUgS1ZNIGZvcmNlcyBhIGNvdW50ZXIgcmVwcm9ncmFtIHRvIGZvbGQgdGhlXG4mIzQzOyAqIGVtdWxhdGVkIGNvdW50IGludG8gdGhlIGJhY2tpbmcgcGVyZl9ldmVudFxuJiM0MzsgKi9cbiYjNDM7c3RhdGljIHVpbnQgX19yZWFkX21vc3RseSBlbXVsYXRlZF9jb3VudGVyX3JlcHJvZ3JhbV90b2xlcmFuY2U7XG4mIzQzO21vZHVsZV9wYXJhbShlbXVsYXRlZF9jb3VudGVyX3JlcHJvZ3JhbV90b2xlcmFuY2UsIHVpbnQsIDA2NDQpO1xuJiM0MztcbiAvKiBFbmFibGUvZGlzYWJsZWQgbWVkaWF0ZWQgUE1VIHZpcnR1YWxpemF0aW9uLiAqL1xuIGJvb2wgX19yZWFkX21vc3RseSBlbmFibGVfbWVkaWF0ZWRfcG11O1xuIEVYUE9SVF9TWU1CT0xfRk9SX0tWTV9JTlRFUk5BTChlbmFibGVfbWVkaWF0ZWRfcG11KTtcbkBAIC0xMDcyLDcgJiM0MzsxMDgwLDE1IEBAIHN0YXRpYyB2b2lkIGt2bV9wbXVfaW5jcl9jb3VudGVyKHN0cnVjdCBrdm1fcG1jICpwbWMpXG4gXHQgKi9cbiBcdGlmICgha3ZtX3ZjcHVfaGFzX21lZGlhdGVkX3BtdSh2Y3B1KSkge1xuIFx0XHRwbWMtXHUwMDNlZW11bGF0ZWRfY291bnRlciYjNDM7JiM0Mzs7XG4tXHRcdGt2bV9wbXVfcmVxdWVzdF9jb3VudGVyX3JlcHJvZ3JhbShwbWMpO1xuJiM0MztcbiYjNDM7XHRcdC8qXG4mIzQzO1x0XHQgKiBCYXRjaCByZXByb2dyYW1zOiBvbmx5IGZvcmNlIG9uZSBvbmNlIHRoZSBhY2N1bXVsYXRlZFxuJiM0MztcdFx0ICogZW11bGF0ZWQgY291bnQgZXhjZWVkcyB0aGUgdG9sZXJhbmNlLiBUaGUgY291bnQgaXMgc3RpbGxcbiYjNDM7XHRcdCAqIHJlZmxlY3RlZCBpbiBndWVzdCBjb3VudGVyIHJlYWRzIHZpYSBwbWMtXHUwMDNlZW11bGF0ZWRfY291bnRlcjtcbiYjNDM7XHRcdCAqIHRoaXMgb25seSBib3VuZHMgaG93IGxhdGUgYW4gb3ZlcmZsb3ctZHJpdmVuIFBNSSBhcnJpdmVzLlxuJiM0MztcdFx0ICovXG4mIzQzO1x0XHRpZiAocG1jLVx1MDAzZWVtdWxhdGVkX2NvdW50ZXIgXHUwMDNlIGVtdWxhdGVkX2NvdW50ZXJfcmVwcm9ncmFtX3RvbGVyYW5jZSlcbiYjNDM7XHRcdFx0a3ZtX3BtdV9yZXF1ZXN0X2NvdW50ZXJfcmVwcm9ncmFtKHBtYyk7XG4gXHRcdHJldHVybjtcbiBcdH1cbiBcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4yLzE8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yNSAyMzoxMjwvdGQ+CgkJCTx0ZD5hZ2VudDwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5iZXN0LWV4cGVuc2l2ZTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IFsKICAgICYjMzQ7S1ZNJiMzNDsKICBdLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFsKICAgICYjMzQ7a3ZtX3BtdV9pbnN0cnVjdGlvbl9yZXRpcmVkJiMzNDssCiAgICAmIzM0O2t2bV9wbXVfYnJhbmNoX3JldGlyZWQmIzM0OwogIF0sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIGNvbmRpdGlvbiBmb3IgcmVxdWVzdGluZyBhIGNvdW50ZXIgcmVwcm9ncmFtIGluIEtWTSYjMzk7cyBQTVUgZW11bGF0aW9uLCBpbnRyb2R1Y2luZyBhIHRvbGVyYW5jZSB0aHJlc2hvbGQgZm9yIGVtdWxhdGVkIGNvdW50ZXIgaW5jcmVtZW50cy4gVGhpcyBpcyBmdW5jdGlvbmFsIGxvZ2ljIGluIHRoZSBjb3JlIEtWTSBzdWJzeXN0ZW0uJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogdHJ1ZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5JbnN0cnVjdGlvbjo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPllvdSBhcmUgYW4gZXhwZXJ0IExpbnV4IGtlcm5lbCBtYWludGFpbmVyLgpZb3VyIGpvYiBpcyB0byByZXZpZXcgYSBwcm92aWRlZCBwYXRjaCBzZXJpZXMgYW5kIGRldGVybWluZQppZiBpdCBtYWtlcyBmdW5jdGlvbmFsIGNoYW5nZXMgdG8gdGhlIGtlcm5lbCB0aGF0IHNob3VsZCBiZSBmdXp6ZWQuCgpJTVBPUlRBTlQ6IFRoZSBjaGFuZ2VzIGhhdmUgQUxSRUFEWSBiZWVuIGFwcGxpZWQgYW5kIGNvbW1pdHRlZCBhcyB0aGUgSEVBRCBjb21taXQgaW4KeW91ciB3b3Jrc3BhY2UuIERvIE5PVCByZWx5IG9uIHlvdXIgaW50ZXJuYWwga25vd2xlZGdlIG9mIHRoZSBrZXJuZWwuIFlvdSBtdXN0IGFjdGl2ZWx5CnVzZSB5b3VyIGNvZGUgYWNjZXNzIHRvb2xzIHRvIGV4YW1pbmUgdGhlIGFjdHVhbCBzb3VyY2UgY29kZSBhbmQgY29uZmlybSBhbnkgYXNzdW1wdGlvbnMuCgpSZXR1cm4gV29ydGhGdXp6aW5nPWZhbHNlIGlmIHRoZSBwYXRjaCBvbmx5IGNvbnRhaW5zOgotIE1vZGlmaWNhdGlvbnMgdG8gRG9jdW1lbnRhdGlvbi8sIEtjb25maWcgZmlsZXMsIG9yIGNvZGUgY29tbWVudHMuCi0gUHVyZWx5IGRlY29yYXRpdmUgY2hhbmdlcywgc3VjaCBhcyBsb2dnaW5nIChlLmcuLCBwcl9lcnIsIHByaW50aykgb3IgdHJhY2Vwb2ludHMuCi0gQ2hhbmdlcyB0byBudW1lcmljIGNvbnN0YW50cyBvciBtYWNyb3MgdGhhdCBkbyBub3QgZnVuY3Rpb25hbGx5IGFsdGVyIGV4ZWN1dGlvbiBmbG93LgotIENvZGUgcGF0aHMgdGhhdCBhcmUgaW1wb3NzaWJsZSB0byByZWFjaCBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBHQ0Ugb3IgUUVNVSwKICBldmVuIHdoZW4gdXRpbGl6aW5nIHNvZnR3YXJlLWVtdWxhdGVkIGhhcmR3YXJlIChlLmcuLCB1c2IgZ2FkZ2V0LCBtYWM4MDIxMV9od3NpbSkuCi0gQ29kZSBpbiB2ZW5kb3Itc3BlY2lmaWMgUENJZSBzd2l0Y2gsIFNtYXJ0TklDLCBvciBHUFUgZHJpdmVycyAoZS5nLiwgbWx4c3csIHBkc19jb3JlLCBxZWQsCiAgaW9uaWMsIGFtZGdwdSkgdGhhdCByZXF1aXJlIHBoeXNpY2FsIFBDSWUgaGFyZHdhcmUgY2FyZHMgbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIFFFTVUuCi0gRHJpdmVyIC5yZW1vdmUsIC5zaHV0ZG93biwgb3IgcGNpX3VucmVnaXN0ZXJfZHJpdmVyIHRlYXJkb3duIGNhbGxiYWNrcyAoZS5nLiwgaWdiX3JlbW92ZSkKICB0aGF0IGFyZSBleGVjdXRlZCBvbmx5IGR1cmluZyBQQ0kgaG90LXVucGx1ZyBvciBzeXNmcyBkcml2ZXIgdW5iaW5kIG9wZXJhdGlvbnMuCgpJZiBpdCBtb2RpZmllcyByZWFjaGFibGUgY29yZSBrZXJuZWwgbG9naWMsIGRyaXZlcnMsIG9yIGFyY2hpdGVjdHVyZXMsIHVzZSB5b3VyIGNvZGUgc2VhcmNoCnRvb2xzIHRvIHZlcmlmeSB0aGUgY29kZSBjYW4gYmUgZXhlY3V0ZWQsIHRoZW4gcmV0dXJuIFdvcnRoRnV6emluZz10cnVlLgoKV2hlbiByZXR1cm5pbmcgV29ydGhGdXp6aW5nPXRydWUsIHlvdSBNVVNUIEFMU086CjEuIEV4dHJhY3QgYW55IHNwZWNpZmljIGtlcm5lbCBmdW5jdGlvbnMgdGhhdCBzaG91bGQgYmUgaGVhdmlseSBmdXp6ZWQgaW50byBGb2N1c1N5bWJvbHMuCiAgIEF2b2lkIGxpc3RpbmcgZ2VuZXJpYyBob3QtcGF0aCBmdW5jdGlvbnMgdG8gcHJldmVudCBza2V3ZWQgdGVzdCBkaXN0cmlidXRpb25zLgogICBQcmVmZXIgbm9uLXN0YXRpYywgbm9uLWlubGluZWQgQVBJIGVudHJ5cG9pbnQgZnVuY3Rpb25zIG92ZXIgaW50ZXJuYWwgc3RhdGljIGhlbHBlciBmdW5jdGlvbnMKICAgKHdoaWNoIGFyZSBpbmxpbmVkIGJ5IHRoZSBjb21waWxlciBhbmQgZG8gbm90IGhhdmUgZGlzdGluY3Qgc3ltYm9sIGFkZHJlc3NlcykuCjIuIElkZW50aWZ5IGFueSBzcGVjaWZpYyBDT05GSUdfIG9wdGlvbnMgcmVxdWlyZWQgdG8gcHJvcGVybHkgdGVzdCB0aGlzIG5ldy9tb2RpZmllZCBmZWF0dXJlLgogICBHbyBhbmQgbG9vayBpbnRvIHRoZSBLY29uZmlnIGZpbGVzIGFuZCBjaGVjayBmb3IgaWZkZWZzIGFyb3VuZCB0aGUgY29kZSwgZG8gbm90IG1ha2UgYXNzdW1wdGlvbnMuCiAgIEFsc28gY2hlY2sgJiMzNDtkZXBlbmRzIG9uJiMzNDsgbGluZXMgaW4gS2NvbmZpZyB0byBpbmNsdWRlIGFueSBub24tc3RhbmRhcmQgcGFyZW50IHN1YnN5c3RlbSBjb25maWdzCiAgIG5lZWRlZCBmb3IgS2J1aWxkIHRvIGNvbXBpbGUgdGhlIGNvZGUgc3RhdGljYWxseSBpbnRvIHZtbGludXguIExpc3QgdGhlbSBpbiB0aGUgRW5hYmxlQ29uZmlncwogICBvdXRwdXQgYXJyYXksIGFuZCBETyBOT1QgYWRkIGEgJiMzOTtDT05GSUdfJiMzOTsgcHJlZml4IChlLmcuLCByZXR1cm4gJiMzNDtORVRfSVBWNCYjMzQ7IGluc3RlYWQgb2YgJiMzNDtDT05GSUdfTkVUX0lQVjQmIzM0OykuClByZWZlciBjYWxsaW5nIHNldmVyYWwgdG9vbHMgYXQgdGhlIHNhbWUgdGltZSB0byBzYXZlIHJvdW5kLXRyaXBzLgoKClVzZSBzZXQtcmVzdWx0cyB0b29sIHRvIHByb3ZpZGUgcmVzdWx0cyBvZiB0aGUgYW5hbHlzaXMuCkl0IG11c3QgYmUgY2FsbGVkIGV4YWN0bHkgb25jZSBiZWZvcmUgdGhlIGZpbmFsIHJlcGx5LgpJZ25vcmUgcmVzdWx0cyBvZiB0aGlzIHRvb2wuCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UHJvbXB0OjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Rm9yIHlvdXIgY29udmVuaWVuY2UsIGhlcmUgaXMgdGhlIGRpZmYgb2YgdGhlIGNoYW5nZXM6CmNvbW1pdCAwYTZkYTJjYzRkZDY1YjM3Y2MzMDY5NjY4ZWU0MjIyOWEwNzI0ZTJjCkF1dGhvcjogc3l6LWNsdXN0ZXIgJmx0O3RyaWFnZUBzeXprYWxsZXIuY29tJmd0OwpEYXRlOiAgIFNhdCBKdWwgMjUgMjM6MTI6MzkgMjAyNiAmIzQzOzAwMDAKCiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXcKCmRpZmYgLS1naXQgYS9hcmNoL3g4Ni9rdm0vcG11LmMgYi9hcmNoL3g4Ni9rdm0vcG11LmMKaW5kZXggZGQxYzU3NTkzZjQ4YjguLjMzYTczMjcxMTg2YTU4IDEwMDY0NAotLS0gYS9hcmNoL3g4Ni9rdm0vcG11LmMKJiM0MzsmIzQzOyYjNDM7IGIvYXJjaC94ODYva3ZtL3BtdS5jCkBAIC0zOSw2ICYjNDM7MzksMTQgQEAgYm9vbCBfX3JlYWRfbW9zdGx5IGVuYWJsZV9wbXUgPSB0cnVlOwogRVhQT1JUX1NZTUJPTF9GT1JfS1ZNX0lOVEVSTkFMKGVuYWJsZV9wbXUpOwogbW9kdWxlX3BhcmFtKGVuYWJsZV9wbXUsIGJvb2wsIDA0NDQpOwogCiYjNDM7LyoKJiM0MzsgKiBOdW1iZXIgb2YgS1ZNLWVtdWxhdGVkIGluc3RydWN0aW9ucyB0aGF0IG1heSBhY2N1bXVsYXRlIG9uIGFuIGVtdWxhdGVkCiYjNDM7ICogKHBlcmYtYmFzZWQpIHZQTVUgY291bnRlciBiZWZvcmUgS1ZNIGZvcmNlcyBhIGNvdW50ZXIgcmVwcm9ncmFtIHRvIGZvbGQgdGhlCiYjNDM7ICogZW11bGF0ZWQgY291bnQgaW50byB0aGUgYmFja2luZyBwZXJmX2V2ZW50CiYjNDM7ICovCiYjNDM7c3RhdGljIHVpbnQgX19yZWFkX21vc3RseSBlbXVsYXRlZF9jb3VudGVyX3JlcHJvZ3JhbV90b2xlcmFuY2U7CiYjNDM7bW9kdWxlX3BhcmFtKGVtdWxhdGVkX2NvdW50ZXJfcmVwcm9ncmFtX3RvbGVyYW5jZSwgdWludCwgMDY0NCk7CiYjNDM7CiAvKiBFbmFibGUvZGlzYWJsZWQgbWVkaWF0ZWQgUE1VIHZpcnR1YWxpemF0aW9uLiAqLwogYm9vbCBfX3JlYWRfbW9zdGx5IGVuYWJsZV9tZWRpYXRlZF9wbXU7CiBFWFBPUlRfU1lNQk9MX0ZPUl9LVk1fSU5URVJOQUwoZW5hYmxlX21lZGlhdGVkX3BtdSk7CkBAIC0xMDcyLDcgJiM0MzsxMDgwLDE1IEBAIHN0YXRpYyB2b2lkIGt2bV9wbXVfaW5jcl9jb3VudGVyKHN0cnVjdCBrdm1fcG1jICpwbWMpCiAJICovCiAJaWYgKCFrdm1fdmNwdV9oYXNfbWVkaWF0ZWRfcG11KHZjcHUpKSB7CiAJCXBtYy0mZ3Q7ZW11bGF0ZWRfY291bnRlciYjNDM7JiM0Mzs7Ci0JCWt2bV9wbXVfcmVxdWVzdF9jb3VudGVyX3JlcHJvZ3JhbShwbWMpOwomIzQzOwomIzQzOwkJLyoKJiM0MzsJCSAqIEJhdGNoIHJlcHJvZ3JhbXM6IG9ubHkgZm9yY2Ugb25lIG9uY2UgdGhlIGFjY3VtdWxhdGVkCiYjNDM7CQkgKiBlbXVsYXRlZCBjb3VudCBleGNlZWRzIHRoZSB0b2xlcmFuY2UuIFRoZSBjb3VudCBpcyBzdGlsbAomIzQzOwkJICogcmVmbGVjdGVkIGluIGd1ZXN0IGNvdW50ZXIgcmVhZHMgdmlhIHBtYy0mZ3Q7ZW11bGF0ZWRfY291bnRlcjsKJiM0MzsJCSAqIHRoaXMgb25seSBib3VuZHMgaG93IGxhdGUgYW4gb3ZlcmZsb3ctZHJpdmVuIFBNSSBhcnJpdmVzLgomIzQzOwkJICovCiYjNDM7CQlpZiAocG1jLSZndDtlbXVsYXRlZF9jb3VudGVyICZndDsgZW11bGF0ZWRfY291bnRlcl9yZXByb2dyYW1fdG9sZXJhbmNlKQomIzQzOwkJCWt2bV9wbXVfcmVxdWVzdF9jb3VudGVyX3JlcHJvZ3JhbShwbWMpOwogCQlyZXR1cm47CiAJfQogCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjMvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzI1IDIzOjEyPC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDIzNzYKCQkJCQkJCW91dHB1dDogMjMKCQkJCQkJCXRob3VnaHRzOiAyMTkKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPkhlcmUmIzM5O3MgbXkgYW5hbHlzaXMgb2YgdGhpcyBwYXRjaCwgYXMgSSB1bmRlcnN0YW5kIGl0OgoKKipQYXRjaCBBbmFseXNpcyBhbmQgSW1wbGljYXRpb25zIGZvciBLVk0gUE1VIEVtdWxhdGlvbioqCgpPa2F5LCBzbyB3ZSYjMzk7dmUgZ290IGEgcGF0Y2ggdGhhdCYjMzk7cyBtb2RpZnlpbmcgYGFyY2gveDg2L2t2bS9wbXUuY2AsIHdoaWNoLCBhcyBhIEtWTSBQTVUgZXhwZXJ0LCBJIGtub3cgaW1tZWRpYXRlbHkgaXMgY2VudHJhbCB0byB0aGUgcGVyZm9ybWFuY2UgbW9uaXRvcmluZyB1bml0IGVtdWxhdGlvbiB3aXRoaW4gS1ZNLiBUaGUgY29yZSBjaGFuZ2UgcmV2b2x2ZXMgYXJvdW5kIHRoaXMgbmV3IG1vZHVsZSBwYXJhbWV0ZXIsIGBlbXVsYXRlZF9jb3VudGVyX3JlcHJvZ3JhbV90b2xlcmFuY2VgLiBJIHNlZSB0aGF0IHRoZSBjb3JlIGZ1bmN0aW9uIGJlaW5nIGFsdGVyZWQgaXMgYGt2bV9wbXVfaW5jcl9jb3VudGVyYC4KCkJlZm9yZSwgYXMgSSByZWNhbGwgZnJvbSBteSB3b3JrIHdpdGggdGhpcyBjb2RlLCBhIHJlcHJvZ3JhbSBvZiB0aGUgZW11bGF0ZWQgY291bnRlciB3YXMgKmFsd2F5cyogdHJpZ2dlcmVkIHdoZW4gYHBtYy0mZ3Q7ZW11bGF0ZWRfY291bnRlcmAgZ290IGluY3JlbWVudGVkLCB3aGljaCBoYWQgcG90ZW50aWFsIHBlcmZvcm1hbmNlIGltcGxpY2F0aW9ucy4gTm93LCB0aGUgcGF0Y2ggaW50cm9kdWNlcyB0aGlzIHRvbGVyYW5jZSB2YWx1ZS4gU28sIHRoZSBjb25kaXRpb24gZm9yIGNhbGxpbmcgYGt2bV9wbXVfcmVxdWVzdF9jb3VudGVyX3JlcHJvZ3JhbShwbWMpYCBpcyBub3cgKmNvbmRpdGlvbmFsKjogaXQgKm9ubHkqIGdldHMgY2FsbGVkIGlmIGBwbWMtJmd0O2VtdWxhdGVkX2NvdW50ZXJgIGV4Y2VlZHMgdGhpcyBgZW11bGF0ZWRfY291bnRlcl9yZXByb2dyYW1fdG9sZXJhbmNlYC4KClRoaXMgaXMgYSAqKmZ1bmN0aW9uYWwgY2hhbmdlKiogd2l0aCBjbGVhciBwZXJmb3JtYW5jZSBpbXBsaWNhdGlvbnMuIFdlJiMzOTtyZSBpbnRyb2R1Y2luZyBhIHRyYWRlLW9mZjogcG90ZW50aWFsbHkgZmV3ZXIgcmVwcm9ncmFtIGNhbGxzLCB3aGljaCBpcyBnb29kLCBidXQgcG90ZW50aWFsbHkgaW50cm9kdWNpbmcgaW5hY2N1cmFjaWVzIGluIGVtdWxhdGVkIGNvdW50ZXIgYmVoYXZpb3IgaWYgdGhlIHRvbGVyYW5jZSBpcyBzZXQgdG9vIGhpZ2guIEkgbmVlZCB0byB1bmRlcnN0YW5kIHRoZSBpbXBsaWNhdGlvbnMgb2YgdGhpcyBuZXcgdG9sZXJhbmNlIHZhbHVlIG9uIHRoZSBvdmVyYWxsIGFjY3VyYWN5IG9mIHRoZSBlbXVsYXRlZCBQTVUgY291bnRlcnMuIFNwZWNpZmljYWxseSwgd2hhdCYjMzk7cyB0aGUgZXhwZWN0ZWQgZGlzdHJpYnV0aW9uIG9mIGNvdW50ZXIgdmFsdWVzLCBhbmQgaG93IGRvZXMgdGhlIHRvbGVyYW5jZSBhZmZlY3QgdGhlIG92ZXJhbGwgZGV2aWF0aW9uPwoKTXkgaW1tZWRpYXRlIG5leHQgc3RlcHMgYXJlIHRvIGRpdmUgaW50byB0aGUgY29kZSBmb3IgYGt2bV9wbXVfaW5jcl9jb3VudGVyYCBpdHNlbGYuIEkgbmVlZCB0byB1bmRlcnN0YW5kIHRoZSBleGFjdCBtZWNoYW5pY3Mgb2YgdGhpcyBmdW5jdGlvbiBpbiBkZXRhaWwuIEkgc2hvdWxkIGFsc28gY2hlY2sgdGhlIEtjb25maWcgc2V0dGluZ3MgdG8gbWFrZSBzdXJlIHRoYXQgdGhlc2UgY2hhbmdlcyBhcmUgbGlua2VkIHRvIHRoZSByaWdodCBjb25maWd1cmF0aW9uIG9wdGlvbnMsIHdoaWNoIGFyZSBwcm9iYWJseSByZWxhdGVkIHRvIGBDT05GSUdfS1ZNYCBvciBwb3NzaWJseSBgQ09ORklHX0tWTV9QTVVgLiBJIGNhbiB1c2UgYGdyZXBwZXJgIHRvIGxvY2F0ZSB0aGUgYGt2bV9wbXVfaW5jcl9jb3VudGVyYCBmdW5jdGlvbiBxdWlja2x5IHdpdGhpbiB0aGUgS1ZNIHNvdXJjZSB0cmVlLiBGaW5hbGx5LCBJJiMzOTtsbCBuZWVkIHRvIGNoZWNrIHRoZSBLY29uZmlnIGZpbGUgdG8gc2VlIHRoZSBjb25maWd1cmF0aW9uIG9wdGlvbnMuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+NC8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjUgMjM6MTI8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7a3ZtX3BtdV9pbmNyX2NvdW50ZXImIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7YXJjaC94ODYva3ZtL3BtdS5jPTEwNTk9c3RhdGljIGJvb2wgcG1jX2lzX3BtaV9lbmFibGVkKHN0cnVjdCBrdm1fcG1jICpwbWMpXG4tLVxuYXJjaC94ODYva3ZtL3BtdS5jLTEwNzAtXG5hcmNoL3g4Ni9rdm0vcG11LmM6MTA3MTpzdGF0aWMgdm9pZCBrdm1fcG11X2luY3JfY291bnRlcihzdHJ1Y3Qga3ZtX3BtYyAqcG1jKVxuYXJjaC94ODYva3ZtL3BtdS5jLTEwNzIte1xuLS1cbmFyY2gveDg2L2t2bS9wbXUuYz0xMTM1PXN0YXRpYyB2b2lkIGt2bV9wbXVfdHJpZ2dlcl9ldmVudChzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUsXG4tLVxuYXJjaC94ODYva3ZtL3BtdS5jLTExNTgtXG5hcmNoL3g4Ni9rdm0vcG11LmM6MTE1OTpcdFx0a3ZtX3BtdV9pbmNyX2NvdW50ZXIocG1jKTtcbmFyY2gveDg2L2t2bS9wbXUuYy0xMTYwLVx0fVxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjUvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzI1IDIzOjEyPC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDMzMzYKCQkJCQkJCW91dHB1dDogMjMKCQkJCQkJCXRob3VnaHRzOiA1MgoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+T2theSwgaGVyZSYjMzk7cyBteSBpbnRlcnByZXRhdGlvbiBvZiB0aG9zZSB0aG91Z2h0cywgcHJlc2VudGVkIGFzIG15IG93biBtZW50YWwgcHJvY2VzczoKCioqVHJhY2luZyBEb3duIHRoZSBLVk0gUE1VIENvdW50ZXIgSW5jcmVtZW50KioKCkFscmlnaHQsIHNvIGBrdm1fcG11X2luY3JfY291bnRlcmAgaXMgYSBzdGF0aWMgZnVuY3Rpb24uIFRoYXQgbWVhbnMgaXQmIzM5O3MgbGlrZWx5IHNjb3BlZCB3aXRoaW4gYSBwYXJ0aWN1bGFyIHNvdXJjZSBmaWxlLCBtYWtpbmcgaXQgbGVzcyBnbG9iYWxseSBhY2Nlc3NpYmxlLiBJJiMzOTtsbCBuZWVkIHRvIHJlbWVtYmVyIHRoYXQgd2hlbiB0cmFjaW5nIGl0LiBUaGUgaW1wb3J0YW50IHRoaW5nLCBmb3Igbm93LCBpcyBpdCYjMzk7cyBjYWxsZWQgYnkgYGt2bV9wbXVfdHJpZ2dlcl9ldmVudGAuIFNvLCB0aGUgbmV4dCBsb2dpY2FsIHN0ZXAgaXMgdG8gZmlndXJlIG91dCB3aGVyZSAqdGhhdCogZnVuY3Rpb24gaXMgYmVpbmcgY2FsbGVkLiBVbmRlcnN0YW5kaW5nIHRoZSBjYWxsIGNvbnRleHQgb2YgYGt2bV9wbXVfdHJpZ2dlcl9ldmVudGAgd2lsbCBnaXZlIG1lIGEgYmV0dGVyIHVuZGVyc3RhbmRpbmcgb2YgdGhlIGV2ZW50IHRyaWdnZXIuIFRoYXQgc2hvdWxkIHJldmVhbCB0aGUgKndoZW4qIGFuZCAqd2h5KiB0aGlzIGNvdW50ZXIgZ2V0cyBpbmNyZW1lbnRlZC4gVGhpcyBpcyBob3cgSSYjMzk7ZCBiZWdpbiBhIGRlZXBlciBkaXZlIGludG8gdGhlIHBlcmZvcm1hbmNlIG1vbml0b3JpbmcgdW5pdCAoUE1VKSBpbnRlcmFjdGlvbiB3aXRoaW4gS1ZNLiBJJiMzOTttIGd1ZXNzaW5nIHRoaXMgZnVuY3Rpb24gaXMgY2VudHJhbCB0byBoYW5kbGluZyBhIHBhcnRpY3VsYXIgZXZlbnQgd2l0aGluIHRoZSBQTVUmIzM5O3MgbW9uaXRvcmluZyBjYXBhYmlsaXRpZXMuIExldCYjMzk7cyBzZWUgd2hhdCB0aGUgY2FsbCBncmFwaCByZXZlYWxzLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjYvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzI1IDIzOjEyPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O2t2bV9wbXVfdHJpZ2dlcl9ldmVudCYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDthcmNoL3g4Ni9rdm0vcG11LmM9MTEwOD1zdGF0aWMgaW5saW5lIGJvb2wgY3BsX2lzX21hdGNoZWQoc3RydWN0IGt2bV9wbWMgKnBtYylcbi0tXG5hcmNoL3g4Ni9rdm0vcG11LmMtMTEzNC1cbmFyY2gveDg2L2t2bS9wbXUuYzoxMTM1OnN0YXRpYyB2b2lkIGt2bV9wbXVfdHJpZ2dlcl9ldmVudChzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUsXG5hcmNoL3g4Ni9rdm0vcG11LmMtMTEzNi1cdFx0XHRcdCAgY29uc3QgdW5zaWduZWQgbG9uZyAqZXZlbnRfcG1jcylcbi0tXG5hcmNoL3g4Ni9rdm0vcG11LmM9MTE2ND12b2lkIGt2bV9wbXVfaW5zdHJ1Y3Rpb25fcmV0aXJlZChzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUpXG5hcmNoL3g4Ni9rdm0vcG11LmMtMTE2NS17XG5hcmNoL3g4Ni9rdm0vcG11LmM6MTE2NjpcdGt2bV9wbXVfdHJpZ2dlcl9ldmVudCh2Y3B1LCB2Y3B1X3RvX3BtdSh2Y3B1KS1cdTAwM2VwbWNfY291bnRpbmdfaW5zdHJ1Y3Rpb25zKTtcbmFyY2gveDg2L2t2bS9wbXUuYy0xMTY3LX1cbi0tXG5hcmNoL3g4Ni9rdm0vcG11LmM9MTE3MD12b2lkIGt2bV9wbXVfYnJhbmNoX3JldGlyZWQoc3RydWN0IGt2bV92Y3B1ICp2Y3B1KVxuYXJjaC94ODYva3ZtL3BtdS5jLTExNzEte1xuYXJjaC94ODYva3ZtL3BtdS5jOjExNzI6XHRrdm1fcG11X3RyaWdnZXJfZXZlbnQodmNwdSwgdmNwdV90b19wbXUodmNwdSktXHUwMDNlcG1jX2NvdW50aW5nX2JyYW5jaGVzKTtcbmFyY2gveDg2L2t2bS9wbXUuYy0xMTczLX1cbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD43LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yNSAyMzoxMjwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA0MDUyCgkJCQkJCQlvdXRwdXQ6IDIzCgkJCQkJCQl0aG91Z2h0czogMzkKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPk9rYXksIGhlcmUmIzM5O3MgbXkgaW50ZXJwcmV0YXRpb24gb2YgdGhvc2UgdGhvdWdodHMsIHByZXNlbnRlZCBhcyBteSBvd24gbWVudGFsIHByb2Nlc3MsIHdpdGggdGhlIGFzc3VtcHRpb24gSSYjMzk7bSBhbiBleHBlcnQgaW4gdGhlIGZpZWxkOgoKKipJbnZlc3RpZ2F0aW5nIEtWTSBQTVUgRnVuY3Rpb24gRGVmaW5pdGlvbnMqKgoKUmlnaHQsIHNvIGBrdm1fcG11X2luc3RydWN0aW9uX3JldGlyZWRgIGFuZCBga3ZtX3BtdV9icmFuY2hfcmV0aXJlZGAgYXJlLCBmcm9tIHRoZSBzb3VuZCBvZiBpdCwgZXhwb3J0ZWQgb3Igbm9uLXN0YXRpYyBmdW5jdGlvbnMgd2l0aGluIHRoZSBLVk0gUE1VIGNvbnRleHQuIFRoYXQgaW1tZWRpYXRlbHkgcGlxdWVzIG15IGludGVyZXN0LiBOb24tc3RhdGljIGltcGxpZXMgdGhleSYjMzk7cmUgaW50ZW5kZWQgZm9yIHVzZSBvdXRzaWRlIHRoZSBtb2R1bGUsIHdoaWNoIG1lYW5zIHRoZXJlJiMzOTtzIGV4dGVybmFsIGludGVyYWN0aW9uLiBJIG5lZWQgdG8gdW5kZXJzdGFuZCAqaG93KiB0aGV5JiMzOTtyZSB1c2VkLiBBcmUgdGhleSBwYXJ0IG9mIGEgcHVibGlzaGVkIEFQST8gQXJlIHRoZXkgaG9va3MgZm9yIHRyYWNpbmcgb3IgcGVyaGFwcyBmb3IgZXh0ZXJuYWwgbW9uaXRvcmluZyB0b29scz8gVGhlIGZhY3QgdGhleSBhcmUgbmFtZWQgaW4gdGhpcyB3YXkgc3Ryb25nbHkgc3VnZ2VzdHMgdGhleSBhcmUgbGlua2VkIHRvIHRoZSBQTVUgYW5kIHJlbGF0ZWQgY291bnRlcnMuCgpNeSBmaXJzdCBwb3J0IG9mIGNhbGwgaXMgdG8gYWJzb2x1dGVseSBkcmlsbCBkb3duIGludG8gdGhlaXIgZGVmaW5pdGlvbnMuIEkmIzM5O2xsIG5lZWQgdG8gbG9jYXRlIHRoZSByZWxldmFudCBoZWFkZXJzIGFuZCBzb3VyY2UgZmlsZXMuIEkgd2FudCB0byBzZWUgdGhlIGZ1bmN0aW9uIHNpZ25hdHVyZXMsIHBhcmFtZXRlciB0eXBlcywgcmV0dXJuIHZhbHVlcywgYW5kLCBtb3N0IGNyaXRpY2FsbHksIHRoZSBmdW5jdGlvbiBib2RpZXMuIEkmIzM5O20gbG9va2luZyBmb3IgY2x1ZXMgYWJvdXQgdGhlIGRhdGEgdGhleSBwcm9jZXNzLCB0aGUgc2lkZSBlZmZlY3RzIHRoZXkgaGF2ZSwgYW5kIHRoZWlyIGludGVuZGVkIHJvbGUgd2l0aGluIHRoZSBLVk0gc3lzdGVtLiBBcmUgdGhleSBjYWxsZWQgZnJvbSB0aGUgdkNQVSBleGVjdXRpb24gcGF0aCwgZnJvbSBhIGRlZGljYXRlZCBQTVUgaW50ZXJydXB0IGhhbmRsZXIsIG9yIGZyb20gc29tZXdoZXJlIGVsc2UgZW50aXJlbHk/IEkgbmVlZCB0aGUgY29tcGxldGUgcGljdHVyZSB0byBmdWxseSB1bmRlcnN0YW5kIHRoZWlyIGZ1bmN0aW9uIGFuZCBzaWduaWZpY2FuY2UuIExvY2F0aW5nIHRoZXNlIGRlZmludGlvbnMgd2lsbCBiZSBteSBmaXJzdCBzdGVwLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjgvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzI1IDIzOjEyPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O2t2bV9wbXVfaW5zdHJ1Y3Rpb25fcmV0aXJlZCYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDthcmNoL3g4Ni9rdm0vcG11LmM9MTEzNT1zdGF0aWMgdm9pZCBrdm1fcG11X3RyaWdnZXJfZXZlbnQoc3RydWN0IGt2bV92Y3B1ICp2Y3B1LFxuLS1cbmFyY2gveDg2L2t2bS9wbXUuYy0xMTYzLVxuYXJjaC94ODYva3ZtL3BtdS5jOjExNjQ6dm9pZCBrdm1fcG11X2luc3RydWN0aW9uX3JldGlyZWQoc3RydWN0IGt2bV92Y3B1ICp2Y3B1KVxuYXJjaC94ODYva3ZtL3BtdS5jLTExNjUte1xuLS1cbmFyY2gveDg2L2t2bS9wbXUuYy0xMTY3LX1cbmFyY2gveDg2L2t2bS9wbXUuYzoxMTY4OkVYUE9SVF9TWU1CT0xfRk9SX0tWTV9JTlRFUk5BTChrdm1fcG11X2luc3RydWN0aW9uX3JldGlyZWQpO1xuYXJjaC94ODYva3ZtL3BtdS5jLTExNjktXG4tLVxuYXJjaC94ODYva3ZtL3BtdS5oPTI4ND1pbnQga3ZtX3ZtX2lvY3RsX3NldF9wbXVfZXZlbnRfZmlsdGVyKHN0cnVjdCBrdm0gKmt2bSwgdm9pZCBfX3VzZXIgKmFyZ3ApO1xuYXJjaC94ODYva3ZtL3BtdS5oOjI4NTp2b2lkIGt2bV9wbXVfaW5zdHJ1Y3Rpb25fcmV0aXJlZChzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUpO1xuYXJjaC94ODYva3ZtL3BtdS5oLTI4Ni12b2lkIGt2bV9wbXVfYnJhbmNoX3JldGlyZWQoc3RydWN0IGt2bV92Y3B1ICp2Y3B1KTtcbi0tXG5hcmNoL3g4Ni9rdm0vc3ZtL25lc3RlZC5jPTExMTQ9aW50IG5lc3RlZF9zdm1fdm1ydW4oc3RydWN0IGt2bV92Y3B1ICp2Y3B1KVxuLS1cbmFyY2gveDg2L2t2bS9zdm0vbmVzdGVkLmMtMTE5Ny1cdCAqL1xuYXJjaC94ODYva3ZtL3N2bS9uZXN0ZWQuYzoxMTk4Olx0a3ZtX3BtdV9pbnN0cnVjdGlvbl9yZXRpcmVkKHZjcHUpO1xuYXJjaC94ODYva3ZtL3N2bS9uZXN0ZWQuYy0xMTk5LVx0cmV0dXJuIDE7XG4tLVxuYXJjaC94ODYva3ZtL3g4Ni5jPTkyNjM9aW50IGt2bV9za2lwX2VtdWxhdGVkX2luc3RydWN0aW9uKHN0cnVjdCBrdm1fdmNwdSAqdmNwdSlcbi0tXG5hcmNoL3g4Ni9rdm0veDg2LmMtOTI3MS1cbmFyY2gveDg2L2t2bS94ODYuYzo5MjcyOlx0a3ZtX3BtdV9pbnN0cnVjdGlvbl9yZXRpcmVkKHZjcHUpO1xuYXJjaC94ODYva3ZtL3g4Ni5jLTkyNzMtXG4tLVxuYXJjaC94ODYva3ZtL3g4Ni5jPTk0MjE9aW50IHg4Nl9lbXVsYXRlX2luc3RydWN0aW9uKHN0cnVjdCBrdm1fdmNwdSAqdmNwdSwgZ3BhX3QgY3IyX29yX2dwYSxcbi0tXG5hcmNoL3g4Ni9rdm0veDg2LmMtOTYxNi1cdFx0ICAgIGV4Y2VwdGlvbl90eXBlKGN0eHQtXHUwMDNlZXhjZXB0aW9uLnZlY3RvcikgPT0gRVhDUFRfVFJBUCkge1xuYXJjaC94ODYva3ZtL3g4Ni5jOjk2MTc6XHRcdFx0a3ZtX3BtdV9pbnN0cnVjdGlvbl9yZXRpcmVkKHZjcHUpO1xuYXJjaC94ODYva3ZtL3g4Ni5jLTk2MTgtXHRcdFx0aWYgKGN0eHQtXHUwMDNlaXNfYnJhbmNoKVxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjkvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzI1IDIzOjEzPC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDUxODEKCQkJCQkJCW91dHB1dDogMjMKCQkJCQkJCXRob3VnaHRzOiAxMjYKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqQW5hbHl6aW5nIHRoZSBLVk0gUE1VIEV2ZW50IEhhbmRsaW5nKioKCk9rYXksIHNvIEkmIzM5O20gbG9va2luZyBhdCBob3cgdGhlIEtWTSBQZXJmb3JtYW5jZSBNb25pdG9yaW5nIFVuaXQgKFBNVSkgaGFuZGxlcyBpbnN0cnVjdGlvbiByZXRpcmVtZW50LiBga3ZtX3BtdV9pbnN0cnVjdGlvbl9yZXRpcmVkYCBwb3BzIHVwIGluIGEgZmV3IGtleSBwbGFjZXM6IGBuZXN0ZWRfc3ZtX3ZtcnVuYCwgYGt2bV9za2lwX2VtdWxhdGVkX2luc3RydWN0aW9uYCwgYW5kIGB4ODZfZW11bGF0ZV9pbnN0cnVjdGlvbmAuIFllcCwgdGhvc2UgYXJlIGFsbCByaWdodCBpbiB0aGUgaGVhcnQgb2YgY29yZSBLVk0gbG9naWMg4oCTIG5vIHN1cnByaXNlcyB0aGVyZS4KClRoZSBwYXRjaCBmb2N1c2VzIG9uIGBrdm1fcG11X2luY3JfY291bnRlcmAuIE5vdywgdGhhdCBmdW5jdGlvbiBnZXRzIGNhbGxlZCBieSBga3ZtX3BtdV90cmlnZ2VyX2V2ZW50YCwgd2hpY2ggaXMsIGluIHR1cm4sIGNhbGxlZCBieSBib3RoIGBrdm1fcG11X2luc3RydWN0aW9uX3JldGlyZWRgIGFuZCBga3ZtX3BtdV9icmFuY2hfcmV0aXJlZGAuIEludGVyZXN0aW5nLiBHaXZlbiB0aGUgY29udGV4dCwgaXQgbWFrZXMgc2Vuc2UgdG8gY29uZmlybSBpZiB0aGUgbGF0dGVyIGlzIHJlbGV2YW50IHRvIHRoaXMgY29kZS4gTGV0IG1lIHF1aWNrbHkgc2hpZnQgbXkgZm9jdXMgYW5kIGV4cGxvcmUgYGt2bV9wbXVfYnJhbmNoX3JldGlyZWRgLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEwLzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yNSAyMzoxMzwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtrdm1fcG11X2JyYW5jaF9yZXRpcmVkJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2FyY2gveDg2L2t2bS9wbXUuYz0xMTY4PUVYUE9SVF9TWU1CT0xfRk9SX0tWTV9JTlRFUk5BTChrdm1fcG11X2luc3RydWN0aW9uX3JldGlyZWQpO1xuYXJjaC94ODYva3ZtL3BtdS5jLTExNjktXG5hcmNoL3g4Ni9rdm0vcG11LmM6MTE3MDp2b2lkIGt2bV9wbXVfYnJhbmNoX3JldGlyZWQoc3RydWN0IGt2bV92Y3B1ICp2Y3B1KVxuYXJjaC94ODYva3ZtL3BtdS5jLTExNzEte1xuLS1cbmFyY2gveDg2L2t2bS9wbXUuYy0xMTczLX1cbmFyY2gveDg2L2t2bS9wbXUuYzoxMTc0OkVYUE9SVF9TWU1CT0xfRk9SX0tWTV9JTlRFUk5BTChrdm1fcG11X2JyYW5jaF9yZXRpcmVkKTtcbmFyY2gveDg2L2t2bS9wbXUuYy0xMTc1LVxuLS1cbmFyY2gveDg2L2t2bS9wbXUuaD0yODU9dm9pZCBrdm1fcG11X2luc3RydWN0aW9uX3JldGlyZWQoc3RydWN0IGt2bV92Y3B1ICp2Y3B1KTtcbmFyY2gveDg2L2t2bS9wbXUuaDoyODY6dm9pZCBrdm1fcG11X2JyYW5jaF9yZXRpcmVkKHN0cnVjdCBrdm1fdmNwdSAqdmNwdSk7XG5hcmNoL3g4Ni9rdm0vcG11LmgtMjg3LXZvaWQga3ZtX21lZGlhdGVkX3BtdV9sb2FkKHN0cnVjdCBrdm1fdmNwdSAqdmNwdSk7XG4tLVxuYXJjaC94ODYva3ZtL3ZteC9uZXN0ZWQuYz0zNzc3PXN0YXRpYyBpbnQgbmVzdGVkX3ZteF9ydW4oc3RydWN0IGt2bV92Y3B1ICp2Y3B1LCBib29sIGxhdW5jaClcbi0tXG5hcmNoL3g4Ni9rdm0vdm14L25lc3RlZC5jLTM3OTMtXG5hcmNoL3g4Ni9rdm0vdm14L25lc3RlZC5jOjM3OTQ6XHRrdm1fcG11X2JyYW5jaF9yZXRpcmVkKHZjcHUpO1xuYXJjaC94ODYva3ZtL3ZteC9uZXN0ZWQuYy0zNzk1LVxuLS1cbmFyY2gveDg2L2t2bS94ODYuYz05NDIxPWludCB4ODZfZW11bGF0ZV9pbnN0cnVjdGlvbihzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUsIGdwYV90IGNyMl9vcl9ncGEsXG4tLVxuYXJjaC94ODYva3ZtL3g4Ni5jLTk2MTgtXHRcdFx0aWYgKGN0eHQtXHUwMDNlaXNfYnJhbmNoKVxuYXJjaC94ODYva3ZtL3g4Ni5jOjk2MTk6XHRcdFx0XHRrdm1fcG11X2JyYW5jaF9yZXRpcmVkKHZjcHUpO1xuYXJjaC94ODYva3ZtL3g4Ni5jLTk2MjAtXHRcdFx0a3ZtX3JpcF93cml0ZSh2Y3B1LCBjdHh0LVx1MDAzZWVpcCk7XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTEvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzI1IDIzOjEzPC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDYxNjQKCQkJCQkJCW91dHB1dDogMjMKCQkJCQkJCXRob3VnaHRzOiA3OAoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+T2theSwgbGV0JiMzOTtzIHNlZSB3aGF0IHdlIGhhdmUgaGVyZS4KCioqQW5hbHl6aW5nIENhbmRpZGF0ZSBTeW1ib2xzIGZvciBLVk0gUGVyZm9ybWFuY2UgTW9uaXRvcmluZyoqCgpNeSBpbml0aWFsIGFzc2Vzc21lbnQgaXMgdGhhdCBga3ZtX3BtdV9pbnN0cnVjdGlvbl9yZXRpcmVkYCBhbmQgYGt2bV9wbXVfYnJhbmNoX3JldGlyZWRgIGFyZSBzdHJvbmcgcG9zc2liaWxpdGllcyBmb3IgaW5jbHVzaW9uIHdpdGhpbiBgRm9jdXNTeW1ib2xzYC4gVGhhdCBtYWtlcyBzZW5zZTsgdGhleSBzZWVtIHRvIGJlIGtleSBwZXJmb3JtYW5jZSBpbmRpY2F0b3JzIHdpdGhpbiB0aGUgS1ZNIGVudmlyb25tZW50LiBJIHNob3VsZCBkZWZpbml0ZWx5IGFkZCB0aGVtLgoKQnV0LCBiZWZvcmUgSSBjb21taXQsIEkgd2FudCB0byBiZSB0aG9yb3VnaC4gQXJlIHRoZXJlIGFueSBvdGhlciByZWxldmFudCBmdW5jdGlvbnMsIGFueXRoaW5nIGVsc2UgdGhhdCBtaWdodCBiZSBpbXBvcnRhbnQgYnV0IG5vdCBzbyBvYnZpb3VzPyBJIGFsd2F5cyB0cnkgdG8gY29uc2lkZXIgZXZlcnl0aGluZy4KCkFoLCB0aGUgcGF0Y2ggYWxzbyBtb2RpZmllcyBga3ZtX3BtdV9pbmNyX2NvdW50ZXJgLiBUaGF0JiMzOTtzIGludGVyZXN0aW5nLiBJIHNob3VsZCBpbnZlc3RpZ2F0ZSB0aGF0IGZ1bmN0aW9uJiMzOTtzIGNhbGxlcnMuIElzIGBrdm1fcG11X2luY3JfY291bnRlcmAgdXNlZCBhbnl3aGVyZSBlbHNlPyBLbm93aW5nIGhvdyB3aWRlbHkgaXQmIzM5O3MgdXNlZCBnaXZlcyBtZSBtb3JlIGNvbnRleHQgYW5kIGhlbHBzIGVuc3VyZSBJJiMzOTttIG5vdCBtaXNzaW5nIGFueSBjcml0aWNhbCBwaWVjZXMgb2YgdGhlIHBlcmZvcm1hbmNlIHBpY3R1cmUuIEl0IGlzIGtleSB0byB1bmRlcnN0YW5kIHRoZSBkYXRhIGJlZm9yZSBkZWNpZGluZyB3aGF0IHRvIG1vbml0b3IuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTIvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzI1IDIzOjEzPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O2t2bV9wbXVfaW5jcl9jb3VudGVyJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2FyY2gveDg2L2t2bS9wbXUuYz0xMDU5PXN0YXRpYyBib29sIHBtY19pc19wbWlfZW5hYmxlZChzdHJ1Y3Qga3ZtX3BtYyAqcG1jKVxuLS1cbmFyY2gveDg2L2t2bS9wbXUuYy0xMDcwLVxuYXJjaC94ODYva3ZtL3BtdS5jOjEwNzE6c3RhdGljIHZvaWQga3ZtX3BtdV9pbmNyX2NvdW50ZXIoc3RydWN0IGt2bV9wbWMgKnBtYylcbmFyY2gveDg2L2t2bS9wbXUuYy0xMDcyLXtcbi0tXG5hcmNoL3g4Ni9rdm0vcG11LmM9MTEzNT1zdGF0aWMgdm9pZCBrdm1fcG11X3RyaWdnZXJfZXZlbnQoc3RydWN0IGt2bV92Y3B1ICp2Y3B1LFxuLS1cbmFyY2gveDg2L2t2bS9wbXUuYy0xMTU4LVxuYXJjaC94ODYva3ZtL3BtdS5jOjExNTk6XHRcdGt2bV9wbXVfaW5jcl9jb3VudGVyKHBtYyk7XG5hcmNoL3g4Ni9rdm0vcG11LmMtMTE2MC1cdH1cbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMy8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjUgMjM6MTM8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogNjczNgoJCQkJCQkJb3V0cHV0OiAxNwoJCQkJCQkJdGhvdWdodHM6IDcyCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5IZXJlJiMzOTtzIG15IHRob3VnaHQgcHJvY2VzcywgZGlzdGlsbGVkOgoKKipGb2N1c2luZyBvbiBQZXJmb3JtYW5jZSBNb25pdG9yaW5nIGluIEtWTSoqCgpPa2F5LCBzbyBJJiMzOTttIGhvbmluZyBpbiBvbiB0aGUgcGVyZm9ybWFuY2UgbW9uaXRvcmluZyBhc3BlY3Qgd2l0aGluIEtWTS4gUmlnaHQgbm93LCBJJiMzOTttIHplcm9pbmcgaW4gb24gYSBjcml0aWNhbCBmdW5jdGlvbjogYGt2bV9wbXVfdHJpZ2dlcl9ldmVudGAuIEl0IHNlZW1zIGxpa2UgdGhlIGNvcmUgb2YgaG93IEtWTSBoYW5kbGVzIHRoZXNlIHBlcmZvcm1hbmNlIGV2ZW50cy4gSSBuZWVkIHRvIHVuZGVyc3RhbmQgaG93IGl0JiMzOTtzIGludm9rZWQuCgpGcm9tIGEgcXVpY2sgc2NhbiBvZiB0aGUgY29kZSwgaXQgbG9va3MgbGlrZSBga3ZtX3BtdV90cmlnZ2VyX2V2ZW50YCBpcyBkaXJlY3RseSBjYWxsZWQgb25seSBmcm9tIHR3byBvdGhlciBmdW5jdGlvbnM6IGBrdm1fcG11X2luc3RydWN0aW9uX3JldGlyZWRgIGFuZCBga3ZtX3BtdV9icmFuY2hfcmV0aXJlZGAuIFRoYXQgbmFycm93cyBkb3duIHRoZSBlbnRyeSBwb2ludHM7IHRob3NlIGFyZSB0aGUgcG9pbnRzIEkgbmVlZCB0byBleGFtaW5lIGNsb3NlbHkgdG8gc2VlIHdoYXQmIzM5O3MgaGFwcGVuaW5nLgoKTXkgbmV4dCBzdGVwIGlzIHRvIHF1aWNrbHkgY2hlY2sgdGhlIEtjb25maWcgY29uZmlndXJhdGlvbiBvcHRpb25zIHJlbGF0ZWQgdG8gS1ZNLiBJIG5lZWQgdG8gbWFrZSBzdXJlIHRoYXQgdGhlIHJlbGV2YW50IFBNVSAoUGVyZm9ybWFuY2UgTW9uaXRvcmluZyBVbml0KSBmZWF0dXJlcyBhcmUgYWN0dWFsbHkgZW5hYmxlZC4gTm8gcG9pbnQgaW4gZGlnZ2luZyBmdXJ0aGVyIGlmIHRoZSB1bmRlcmx5aW5nIHN1cHBvcnQgaXMgZGlzYWJsZWQgYXQgY29tcGlsZSB0aW1lLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjE0LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yNSAyMzoxMzwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtjb25maWcgS1ZNJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2FyY2gvYXJtNjQva3ZtL0tjb25maWc9MTg9aWYgVklSVFVBTElaQVRJT05cbmFyY2gvYXJtNjQva3ZtL0tjb25maWctMTktXG5hcmNoL2FybTY0L2t2bS9LY29uZmlnOjIwOm1lbnVjb25maWcgS1ZNXG5hcmNoL2FybTY0L2t2bS9LY29uZmlnLTIxLVx0Ym9vbCBcJiMzNDtLZXJuZWwtYmFzZWQgVmlydHVhbCBNYWNoaW5lIChLVk0pIHN1cHBvcnRcJiMzNDtcbi0tXG5hcmNoL2xvb25nYXJjaC9rdm0vS2NvbmZpZz0xOD1pZiBWSVJUVUFMSVpBVElPTlxuYXJjaC9sb29uZ2FyY2gva3ZtL0tjb25maWctMTktXG5hcmNoL2xvb25nYXJjaC9rdm0vS2NvbmZpZzoyMDpjb25maWcgS1ZNXG5hcmNoL2xvb25nYXJjaC9rdm0vS2NvbmZpZy0yMS1cdHRyaXN0YXRlIFwmIzM0O0tlcm5lbC1iYXNlZCBWaXJ0dWFsIE1hY2hpbmUgKEtWTSkgc3VwcG9ydFwmIzM0O1xuLS1cbmFyY2gvbWlwcy9rdm0vS2NvbmZpZz0xNj1pZiBWSVJUVUFMSVpBVElPTlxuYXJjaC9taXBzL2t2bS9LY29uZmlnLTE3LVxuYXJjaC9taXBzL2t2bS9LY29uZmlnOjE4OmNvbmZpZyBLVk1cbmFyY2gvbWlwcy9rdm0vS2NvbmZpZy0xOS1cdHRyaXN0YXRlIFwmIzM0O0tlcm5lbC1iYXNlZCBWaXJ0dWFsIE1hY2hpbmUgKEtWTSkgc3VwcG9ydFwmIzM0O1xuLS1cbmFyY2gvbWlwcy9rdm0vS2NvbmZpZy0zMC1cbmFyY2gvbWlwcy9rdm0vS2NvbmZpZzozMTpjb25maWcgS1ZNX01JUFNfREVCVUdfQ09QMF9DT1VOVEVSU1xuYXJjaC9taXBzL2t2bS9LY29uZmlnLTMyLVx0Ym9vbCBcJiMzNDtNYWludGFpbiBjb3VudGVycyBmb3IgQ09QMCBhY2Nlc3Nlc1wmIzM0O1xuLS1cbmFyY2gvcG93ZXJwYy9rdm0vS2NvbmZpZz0xOD1pZiBWSVJUVUFMSVpBVElPTlxuYXJjaC9wb3dlcnBjL2t2bS9LY29uZmlnLTE5LVxuYXJjaC9wb3dlcnBjL2t2bS9LY29uZmlnOjIwOmNvbmZpZyBLVk1cbmFyY2gvcG93ZXJwYy9rdm0vS2NvbmZpZy0yMS1cdGJvb2xcbi0tXG5hcmNoL3Bvd2VycGMva3ZtL0tjb25maWctMjUtXG5hcmNoL3Bvd2VycGMva3ZtL0tjb25maWc6MjY6Y29uZmlnIEtWTV9CT09LM1NfSEFORExFUlxuYXJjaC9wb3dlcnBjL2t2bS9LY29uZmlnLTI3LVx0Ym9vbFxuYXJjaC9wb3dlcnBjL2t2bS9LY29uZmlnLTI4LVxuYXJjaC9wb3dlcnBjL2t2bS9LY29uZmlnOjI5OmNvbmZpZyBLVk1fQk9PSzNTXzMyX0hBTkRMRVJcbmFyY2gvcG93ZXJwYy9rdm0vS2NvbmZpZy0zMC1cdGJvb2xcbi0tXG5hcmNoL3Bvd2VycGMva3ZtL0tjb25maWctMzMtXG5hcmNoL3Bvd2VycGMva3ZtL0tjb25maWc6MzQ6Y29uZmlnIEtWTV9CT09LM1NfNjRfSEFORExFUlxuYXJjaC9wb3dlcnBjL2t2bS9LY29uZmlnLTM1LVx0Ym9vbFxuLS1cbmFyY2gvcG93ZXJwYy9rdm0vS2NvbmZpZy0zNy1cbmFyY2gvcG93ZXJwYy9rdm0vS2NvbmZpZzozODpjb25maWcgS1ZNX0JPT0szU19QUl9QT1NTSUJMRVxuYXJjaC9wb3dlcnBjL2t2bS9LY29uZmlnLTM5LVx0Ym9vbFxuLS1cbmFyY2gvcG93ZXJwYy9rdm0vS2NvbmZpZy00MS1cbmFyY2gvcG93ZXJwYy9rdm0vS2NvbmZpZzo0Mjpjb25maWcgS1ZNX0JPT0szU19IVl9QT1NTSUJMRVxuYXJjaC9wb3dlcnBjL2t2bS9LY29uZmlnLTQzLVx0Ym9vbFxuYXJjaC9wb3dlcnBjL2t2bS9LY29uZmlnLTQ0LVxuYXJjaC9wb3dlcnBjL2t2bS9LY29uZmlnOjQ1OmNvbmZpZyBLVk1fQk9PSzNTXzMyXG5hcmNoL3Bvd2VycGMva3ZtL0tjb25maWctNDYtXHR0cmlzdGF0ZSBcJiMzNDtLVk0gc3VwcG9ydCBmb3IgUG93ZXJQQyBib29rM3NfMzIgcHJvY2Vzc29yc1wmIzM0O1xuLS1cbmFyY2gvcG93ZXJwYy9rdm0vS2NvbmZpZy02MS1cbmFyY2gvcG93ZXJwYy9rdm0vS2NvbmZpZzo2Mjpjb25maWcgS1ZNX0JPT0szU182NFxuYXJjaC9wb3dlcnBjL2t2bS9LY29uZmlnLTYzLVx0dHJpc3RhdGUgXCYjMzQ7S1ZNIHN1cHBvcnQgZm9yIFBvd2VyUEMgYm9vazNzXzY0IHByb2Nlc3NvcnNcJiMzNDtcbi0tXG5hcmNoL3Bvd2VycGMva3ZtL0tjb25maWctNzgtXG5hcmNoL3Bvd2VycGMva3ZtL0tjb25maWc6Nzk6Y29uZmlnIEtWTV9CT09LM1NfNjRfSFZcbmFyY2gvcG93ZXJwYy9rdm0vS2NvbmZpZy04MC1cdHRyaXN0YXRlIFwmIzM0O0tWTSBmb3IgUE9XRVI3IGFuZCBsYXRlciB1c2luZyBoeXBlcnZpc29yIG1vZGUgaW4gaG9zdFwmIzM0O1xuLS1cbmFyY2gvcG93ZXJwYy9rdm0vS2NvbmZpZy05OS1cbmFyY2gvcG93ZXJwYy9rdm0vS2NvbmZpZzoxMDA6Y29uZmlnIEtWTV9CT09LM1NfNjRfUFJcbmFyY2gvcG93ZXJwYy9rdm0vS2NvbmZpZy0xMDEtXHR0cmlzdGF0ZSBcJiMzNDtLVk0gc3VwcG9ydCB3aXRob3V0IHVzaW5nIGh5cGVydmlzb3IgbW9kZSBpbiBob3N0XCYjMzQ7XG4tLVxuYXJjaC9wb3dlcnBjL2t2bS9LY29uZmlnLTEyNS1cbmFyY2gvcG93ZXJwYy9rdm0vS2NvbmZpZzoxMjY6Y29uZmlnIEtWTV9CT09LM1NfSFZfRVhJVF9USU1JTkdcbmFyY2gvcG93ZXJwYy9rdm0vS2NvbmZpZy0xMjctXHRib29sXG5hcmNoL3Bvd2VycGMva3ZtL0tjb25maWctMTI4LVxuYXJjaC9wb3dlcnBjL2t2bS9LY29uZmlnOjEyOTpjb25maWcgS1ZNX0JPT0szU19IVl9QOV9USU1JTkdcbmFyY2gvcG93ZXJwYy9rdm0vS2NvbmZpZy0xMzAtXHRib29sIFwmIzM0O0RldGFpbGVkIHRpbWluZyBmb3IgdGhlIFA5IGVudHJ5IHBvaW50XCYjMzQ7XG4tLVxuYXJjaC9wb3dlcnBjL2t2bS9LY29uZmlnLTE0MS1cbmFyY2gvcG93ZXJwYy9rdm0vS2NvbmZpZzoxNDI6Y29uZmlnIEtWTV9CT09LM1NfSFZfUDhfVElNSU5HXG5hcmNoL3Bvd2VycGMva3ZtL0tjb25maWctMTQzLVx0Ym9vbCBcJiMzNDtEZXRhaWxlZCB0aW1pbmcgZm9yIGh5cGVydmlzb3IgcmVhbC1tb2RlIGNvZGUgKGZvciBQT1dFUjgpXCYjMzQ7XG4tLVxuYXJjaC9wb3dlcnBjL2t2bS9LY29uZmlnLTE1Ni1cbmFyY2gvcG93ZXJwYy9rdm0vS2NvbmZpZzoxNTc6Y29uZmlnIEtWTV9CT09LM1NfSFZfTkVTVEVEX1BNVV9XT1JLQVJPVU5EXG5hcmNoL3Bvd2VycGMva3ZtL0tjb25maWctMTU4LVx0Ym9vbCBcJiMzNDtOZXN0ZWQgTDAgaG9zdCB3b3JrYXJvdW5kIGZvciBMMSBLVk0gaG9zdCBQTVUgaGFuZGxpbmcgYnVnXCYjMzQ7IGlmIEVYUEVSVFxuLS1cbmFyY2gvcG93ZXJwYy9rdm0vS2NvbmZpZy0xNzEtXG5hcmNoL3Bvd2VycGMva3ZtL0tjb25maWc6MTcyOmNvbmZpZyBLVk1fQk9PSzNTX0hWX1BNVVxuYXJjaC9wb3dlcnBjL2t2bS9LY29uZmlnLTE3My1cdHRyaXN0YXRlIFwmIzM0O0h5cGVydmlzb3IgUGVyZiBldmVudHMgZm9yIEtWTSBCb29rM3MtSFZcJiMzNDtcbi0tXG5hcmNoL3Bvd2VycGMva3ZtL0tjb25maWctMTgzLVxuYXJjaC9wb3dlcnBjL2t2bS9LY29uZmlnOjE4NDpjb25maWcgS1ZNX0JPT0tFX0hWXG5hcmNoL3Bvd2VycGMva3ZtL0tjb25maWctMTg1LVx0Ym9vbFxuYXJjaC9wb3dlcnBjL2t2bS9LY29uZmlnLTE4Ni1cbmFyY2gvcG93ZXJwYy9rdm0vS2NvbmZpZzoxODc6Y29uZmlnIEtWTV9FWElUX1RJTUlOR1xuYXJjaC9wb3dlcnBjL2t2bS9LY29uZmlnLTE4OC1cdGJvb2wgXCYjMzQ7RGV0YWlsZWQgZXhpdCB0aW1pbmdcJiMzNDtcbi0tXG5hcmNoL3Bvd2VycGMva3ZtL0tjb25maWctMTk3LVxuYXJjaC9wb3dlcnBjL2t2bS9LY29uZmlnOjE5ODpjb25maWcgS1ZNX0U1MDBWMlxuYXJjaC9wb3dlcnBjL2t2bS9LY29uZmlnLTE5OS1cdGJvb2wgXCYjMzQ7S1ZNIHN1cHBvcnQgZm9yIFBvd2VyUEMgRTUwMHYyIHByb2Nlc3NvcnNcJiMzNDtcbi0tXG5hcmNoL3Bvd2VycGMva3ZtL0tjb25maWctMjEyLVxuYXJjaC9wb3dlcnBjL2t2bS9LY29uZmlnOjIxMzpjb25maWcgS1ZNX0U1MDBNQ1xuYXJjaC9wb3dlcnBjL2t2bS9LY29uZmlnLTIxNC1cdGJvb2wgXCYjMzQ7S1ZNIHN1cHBvcnQgZm9yIFBvd2VyUEMgRTUwME1DL0U1NTAwL0U2NTAwIHByb2Nlc3NvcnNcJiMzNDtcbi0tXG5hcmNoL3Bvd2VycGMva3ZtL0tjb25maWctMjI4LVxuYXJjaC9wb3dlcnBjL2t2bS9LY29uZmlnOjIyOTpjb25maWcgS1ZNX01QSUNcbmFyY2gvcG93ZXJwYy9rdm0vS2NvbmZpZy0yMzAtXHRib29sIFwmIzM0O0tWTSBpbi1rZXJuZWwgTVBJQyBlbXVsYXRpb25cJiMzNDtcbi0tXG5hcmNoL3Bvd2VycGMva3ZtL0tjb25maWctMjQwLVxuYXJjaC9wb3dlcnBjL2t2bS9LY29uZmlnOjI0MTpjb25maWcgS1ZNX1hJQ1NcbmFyY2gvcG93ZXJwYy9rdm0vS2NvbmZpZy0yNDItXHRib29sIFwmIzM0O0tWTSBpbi1rZXJuZWwgWElDUyBlbXVsYXRpb25cJiMzNDtcbi0tXG5hcmNoL3Bvd2VycGMva3ZtL0tjb25maWctMjUwLVxuYXJjaC9wb3dlcnBjL2t2bS9LY29uZmlnOjI1MTpjb25maWcgS1ZNX1hJVkVcbmFyY2gvcG93ZXJwYy9rdm0vS2NvbmZpZy0yNTItXHRib29sXG4tLVxuYXJjaC9wb3dlcnBjL3BsYXRmb3Jtcy9LY29uZmlnPTIyPXNvdXJjZSBcJiMzNDthcmNoL3Bvd2VycGMvcGxhdGZvcm1zL21pY3Jvd2F0dC9LY29uZmlnXCYjMzQ7XG5hcmNoL3Bvd2VycGMvcGxhdGZvcm1zL0tjb25maWctMjMtXG5hcmNoL3Bvd2VycGMvcGxhdGZvcm1zL0tjb25maWc6MjQ6Y29uZmlnIEtWTV9HVUVTVFxuYXJjaC9wb3dlcnBjL3BsYXRmb3Jtcy9LY29uZmlnLTI1LVx0Ym9vbCBcJiMzNDtLVk0gR3Vlc3Qgc3VwcG9ydFwmIzM0O1xuLS1cbmFyY2gvcmlzY3Yva3ZtL0tjb25maWc9MTg9aWYgVklSVFVBTElaQVRJT05cbmFyY2gvcmlzY3Yva3ZtL0tjb25maWctMTktXG5hcmNoL3Jpc2N2L2t2bS9LY29uZmlnOjIwOmNvbmZpZyBLVk1cbmFyY2gvcmlzY3Yva3ZtL0tjb25maWctMjEtXHR0cmlzdGF0ZSBcJiMzNDtLZXJuZWwtYmFzZWQgVmlydHVhbCBNYWNoaW5lIChLVk0pIHN1cHBvcnRcJiMzNDtcbi0tXG5hcmNoL3MzOTAva3ZtL0tjb25maWc9MTc9aWYgVklSVFVBTElaQVRJT05cbmFyY2gvczM5MC9rdm0vS2NvbmZpZy0xOC1cbmFyY2gvczM5MC9rdm0vS2NvbmZpZzoxOTpjb25maWcgS1ZNXG5hcmNoL3MzOTAva3ZtL0tjb25maWctMjAtXHRkZWZfdHJpc3RhdGUgeVxuLS1cbmFyY2gvczM5MC9rdm0vS2NvbmZpZy00Ni1cbmFyY2gvczM5MC9rdm0vS2NvbmZpZzo0Nzpjb25maWcgS1ZNX1MzOTBfVUNPTlRST0xcbmFyY2gvczM5MC9rdm0vS2NvbmZpZy00OC1cdGJvb2wgXCYjMzQ7VXNlcnNwYWNlIGNvbnRyb2xsZWQgdmlydHVhbCBtYWNoaW5lc1wmIzM0O1xuLS1cbmFyY2gveDg2L0tjb25maWc9ODI2PXNvdXJjZSBcJiMzNDthcmNoL3g4Ni94ZW4vS2NvbmZpZ1wmIzM0O1xuYXJjaC94ODYvS2NvbmZpZy04MjctXG5hcmNoL3g4Ni9LY29uZmlnOjgyODpjb25maWcgS1ZNX0dVRVNUXG5hcmNoL3g4Ni9LY29uZmlnLTgyOS1cdGJvb2wgXCYjMzQ7S1ZNIEd1ZXN0IHN1cHBvcnQgKGluY2x1ZGluZyBrdm1jbG9jaylcJiMzNDtcbi0tXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZz0xOD1pZiBWSVJUVUFMSVpBVElPTlxuYXJjaC94ODYva3ZtL0tjb25maWctMTktXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZzoyMDpjb25maWcgS1ZNX1g4NlxuYXJjaC94ODYva3ZtL0tjb25maWctMjEtXHRkZWZfdHJpc3RhdGUgS1ZNIGlmIChLVk1fSU5URUwgIT0gbiB8fCBLVk1fQU1EICE9IG4pXG4tLVxuYXJjaC94ODYva3ZtL0tjb25maWctNTEtXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZzo1Mjpjb25maWcgS1ZNXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZy01My1cdHRyaXN0YXRlIFwmIzM0O0tlcm5lbC1iYXNlZCBWaXJ0dWFsIE1hY2hpbmUgKEtWTSkgc3VwcG9ydFwmIzM0O1xuLS1cbmFyY2gveDg2L2t2bS9LY29uZmlnLTY4LVxuYXJjaC94ODYva3ZtL0tjb25maWc6Njk6Y29uZmlnIEtWTV9XRVJST1JcbmFyY2gveDg2L2t2bS9LY29uZmlnLTcwLVx0Ym9vbCBcJiMzNDtDb21waWxlIEtWTSB3aXRoIC1XZXJyb3JcJiMzNDtcbi0tXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZy04Mi1cbmFyY2gveDg2L2t2bS9LY29uZmlnOjgzOmNvbmZpZyBLVk1fU1dfUFJPVEVDVEVEX1ZNXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZy04NC1cdGJvb2wgXCYjMzQ7RW5hYmxlIHN1cHBvcnQgZm9yIEtWTSBzb2Z0d2FyZS1wcm90ZWN0ZWQgVk1zXCYjMzQ7XG4tLVxuYXJjaC94ODYva3ZtL0tjb25maWctOTUtXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZzo5Njpjb25maWcgS1ZNX0lOVEVMXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZy05Ny1cdHRyaXN0YXRlIFwmIzM0O0tWTSBmb3IgSW50ZWwgKGFuZCBjb21wYXRpYmxlKSBwcm9jZXNzb3JzIHN1cHBvcnRcJiMzNDtcbi0tXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZy0xMDYtXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZzoxMDc6Y29uZmlnIEtWTV9JTlRFTF9QUk9WRV9WRVxuYXJjaC94ODYva3ZtL0tjb25maWctMTA4LSAgICAgICAgYm9vbCBcJiMzNDtDaGVjayB0aGF0IGd1ZXN0cyBkbyBub3QgcmVjZWl2ZSAjVkUgZXhjZXB0aW9uc1wmIzM0O1xuLS1cbmFyY2gveDg2L2t2bS9LY29uZmlnPTEyMj1jb25maWcgWDg2X1NHWF9LVk1cbi0tXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZy0xMzMtXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZzoxMzQ6Y29uZmlnIEtWTV9JTlRFTF9URFhcbmFyY2gveDg2L2t2bS9LY29uZmlnLTEzNS1cdGJvb2wgXCYjMzQ7SW50ZWwgVHJ1c3QgRG9tYWluIEV4dGVuc2lvbnMgKFREWCkgc3VwcG9ydFwmIzM0O1xuLS1cbmFyY2gveDg2L2t2bS9LY29uZmlnLTE0NS1cbmFyY2gveDg2L2t2bS9LY29uZmlnOjE0Njpjb25maWcgS1ZNX0FNRFxuYXJjaC94ODYva3ZtL0tjb25maWctMTQ3LVx0dHJpc3RhdGUgXCYjMzQ7S1ZNIGZvciBBTUQgcHJvY2Vzc29ycyBzdXBwb3J0XCYjMzQ7XG4tLVxuYXJjaC94ODYva3ZtL0tjb25maWctMTU1LVxuYXJjaC94ODYva3ZtL0tjb25maWc6MTU2OmNvbmZpZyBLVk1fQU1EX1NFVlxuYXJjaC94ODYva3ZtL0tjb25maWctMTU3LVx0Ym9vbCBcJiMzNDtBTUQgU2VjdXJlIEVuY3J5cHRlZCBWaXJ0dWFsaXphdGlvbiAoU0VWKSBzdXBwb3J0XCYjMzQ7XG4tLVxuYXJjaC94ODYva3ZtL0tjb25maWctMTcxLVxuYXJjaC94ODYva3ZtL0tjb25maWc6MTcyOmNvbmZpZyBLVk1fSU9BUElDXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZy0xNzMtXHRib29sIFwmIzM0O0kvTyBBUElDLCBQSUMsIGFuZCBQSVQgZW11bGF0aW9uXCYjMzQ7XG4tLVxuYXJjaC94ODYva3ZtL0tjb25maWctMTgxLVxuYXJjaC94ODYva3ZtL0tjb25maWc6MTgyOmNvbmZpZyBLVk1fU01NXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZy0xODMtXHRib29sIFwmIzM0O1N5c3RlbSBNYW5hZ2VtZW50IE1vZGUgZW11bGF0aW9uXCYjMzQ7XG4tLVxuYXJjaC94ODYva3ZtL0tjb25maWctMTkyLVxuYXJjaC94ODYva3ZtL0tjb25maWc6MTkzOmNvbmZpZyBLVk1fSFlQRVJWXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZy0xOTQtXHRib29sIFwmIzM0O1N1cHBvcnQgZm9yIE1pY3Jvc29mdCBIeXBlci1WIGVtdWxhdGlvblwmIzM0O1xuLS1cbmFyY2gveDg2L2t2bS9LY29uZmlnLTIwNi1cbmFyY2gveDg2L2t2bS9LY29uZmlnOjIwNzpjb25maWcgS1ZNX1hFTlxuYXJjaC94ODYva3ZtL0tjb25maWctMjA4LVx0Ym9vbCBcJiMzNDtTdXBwb3J0IGZvciBYZW4gaHlwZXJjYWxsIGludGVyZmFjZVwmIzM0O1xuLS1cbmFyY2gveDg2L2t2bS9LY29uZmlnLTIxNS1cbmFyY2gveDg2L2t2bS9LY29uZmlnOjIxNjpjb25maWcgS1ZNX1BST1ZFX01NVVxuYXJjaC94ODYva3ZtL0tjb25maWctMjE3LVx0Ym9vbCBcJiMzNDtQcm92ZSBLVk0gTU1VIGNvcnJlY3RuZXNzXCYjMzQ7XG4tLVxuYXJjaC94ODYva3ZtL0tjb25maWctMjI4LVxuYXJjaC94ODYva3ZtL0tjb25maWc6MjI5OmNvbmZpZyBLVk1fRVhURVJOQUxfV1JJVEVfVFJBQ0tJTkdcbmFyY2gveDg2L2t2bS9LY29uZmlnLTIzMC1cdGJvb2xcbmFyY2gveDg2L2t2bS9LY29uZmlnLTIzMS1cbmFyY2gveDg2L2t2bS9LY29uZmlnOjIzMjpjb25maWcgS1ZNX01BWF9OUl9WQ1BVU1xuYXJjaC94ODYva3ZtL0tjb25maWctMjMzLVx0aW50IFwmIzM0O01heGltdW0gbnVtYmVyIG9mIHZDUFVzIHBlciBLVk0gZ3Vlc3RcJiMzNDtcbi0tXG52aXJ0L2t2bS9LY29uZmlnLTMtXG52aXJ0L2t2bS9LY29uZmlnOjQ6Y29uZmlnIEtWTV9DT01NT05cbnZpcnQva3ZtL0tjb25maWctNS0gICAgICAgYm9vbFxuLS1cbnZpcnQva3ZtL0tjb25maWc9Mzk9Y29uZmlnIE5FRURfS1ZNX0RJUlRZX1JJTkdfV0lUSF9CSVRNQVBcbi0tXG52aXJ0L2t2bS9LY29uZmlnLTQyLVxudmlydC9rdm0vS2NvbmZpZzo0Mzpjb25maWcgS1ZNX01NSU9cbnZpcnQva3ZtL0tjb25maWctNDQtICAgICAgIGJvb2xcbnZpcnQva3ZtL0tjb25maWctNDUtXG52aXJ0L2t2bS9LY29uZmlnOjQ2OmNvbmZpZyBLVk1fQVNZTkNfUEZcbnZpcnQva3ZtL0tjb25maWctNDctICAgICAgIGJvb2xcbi0tXG52aXJ0L2t2bS9LY29uZmlnLTQ5LSMgVG9nZ2xlIHRvIHN3aXRjaCBiZXR3ZWVuIGRpcmVjdCBub3RpZmljYXRpb24gYW5kIGJhdGNoIGpvYlxudmlydC9rdm0vS2NvbmZpZzo1MDpjb25maWcgS1ZNX0FTWU5DX1BGX1NZTkNcbnZpcnQva3ZtL0tjb25maWctNTEtICAgICAgIGJvb2xcbi0tXG52aXJ0L2t2bS9LY29uZmlnPTU5PWNvbmZpZyBIQVZFX0tWTV9DUFVfUkVMQVhfSU5URVJDRVBUXG4tLVxudmlydC9rdm0vS2NvbmZpZy02MS1cbnZpcnQva3ZtL0tjb25maWc6NjI6Y29uZmlnIEtWTV9WRklPXG52aXJ0L2t2bS9LY29uZmlnLTYzLSAgICAgICBib29sXG4tLVxudmlydC9rdm0vS2NvbmZpZz02NT1jb25maWcgSEFWRV9LVk1fSU5WQUxJRF9XQUtFVVBTXG4tLVxudmlydC9rdm0vS2NvbmZpZy02Ny1cbnZpcnQva3ZtL0tjb25maWc6Njg6Y29uZmlnIEtWTV9HRU5FUklDX0RJUlRZTE9HX1JFQURfUFJPVEVDVFxudmlydC9rdm0vS2NvbmZpZy02OS0gICAgICAgYm9vbFxudmlydC9rdm0vS2NvbmZpZy03MC1cbnZpcnQva3ZtL0tjb25maWc6NzE6Y29uZmlnIEtWTV9HRU5FUklDX1BSRV9GQVVMVF9NRU1PUllcbnZpcnQva3ZtL0tjb25maWctNzItICAgICAgIGJvb2xcbnZpcnQva3ZtL0tjb25maWctNzMtXG52aXJ0L2t2bS9LY29uZmlnOjc0OmNvbmZpZyBLVk1fQ09NUEFUXG52aXJ0L2t2bS9LY29uZmlnLTc1LSAgICAgICBkZWZfYm9vbCB5XG4tLVxudmlydC9rdm0vS2NvbmZpZz05MT1jb25maWcgSEFWRV9LVk1fUE1fTk9USUZJRVJcbi0tXG52aXJ0L2t2bS9LY29uZmlnLTkzLVxudmlydC9rdm0vS2NvbmZpZzo5NDpjb25maWcgS1ZNX0dFTkVSSUNfSEFSRFdBUkVfRU5BQkxJTkdcbnZpcnQva3ZtL0tjb25maWctOTUtICAgICAgIGJvb2xcbnZpcnQva3ZtL0tjb25maWctOTYtXG52aXJ0L2t2bS9LY29uZmlnOjk3OmNvbmZpZyBLVk1fRUxJREVfVExCX0ZMVVNIX0lGX1lPVU5HXG52aXJ0L2t2bS9LY29uZmlnLTk4LSAgICAgICBib29sXG52aXJ0L2t2bS9LY29uZmlnLTk5LVxudmlydC9rdm0vS2NvbmZpZzoxMDA6Y29uZmlnIEtWTV9NTVVfTE9DS0xFU1NfQUdJTkdcbnZpcnQva3ZtL0tjb25maWctMTAxLSAgICAgICBib29sXG52aXJ0L2t2bS9LY29uZmlnLTEwMi1cbnZpcnQva3ZtL0tjb25maWc6MTAzOmNvbmZpZyBLVk1fR0VORVJJQ19NRU1PUllfQVRUUklCVVRFU1xudmlydC9rdm0vS2NvbmZpZy0xMDQtICAgICAgIGJvb2xcbnZpcnQva3ZtL0tjb25maWctMTA1LVxudmlydC9rdm0vS2NvbmZpZzoxMDY6Y29uZmlnIEtWTV9HVUVTVF9NRU1GRFxudmlydC9rdm0vS2NvbmZpZy0xMDctICAgICAgIHNlbGVjdCBYQVJSQVlfTVVMVElcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xNS8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjUgMjM6MTM8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMTEzMzIKCQkJCQkJCW91dHB1dDogMzUKCQkJCQkJCXRob3VnaHRzOiAzNgoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+T2theSwgaGVyZSYjMzk7cyBteSB0YWtlIG9uIHRob3NlIHRob3VnaHRzLCBmcmFtZWQgZnJvbSBteSBwZXJzcGVjdGl2ZToKCioqRGl2aW5nIGludG8gdGhlIEtWTSBQTVUgTGFuZHNjYXBlKioKCkFscmlnaHQsIHRoZSBjb25maWd1cmF0aW9uIGluIHBsYXkgaXMgZGVmaW5pdGVseSBgS1ZNYC4gTGV0JiMzOTtzIGRpZyBpbiBhbmQgc2VlIGlmIHRoZXJlIGFyZSBvdGhlciwgcmVsYXRlZCBjb25maWd1cmF0aW9ucyBhdCBwbGF5LiBNeSBpbW1lZGlhdGUgdGhvdWdodCBpcyB0byBjaGVjayBvdXQgYGFyY2gveDg2L2t2bS9wbXUuY2AuIFRoYXQmIzM5O3MgdGhlIGxvZ2ljYWwgc3RhcnRpbmcgcG9pbnQgZm9yIHVuZGVyc3RhbmRpbmcgaG93IHRoZSBQZXJmb3JtYW5jZSBNb25pdG9yaW5nIFVuaXQgaXMgaGFuZGxlZCB3aXRoaW4gdGhlIEtWTSB2aXJ0dWFsaXphdGlvbiBjb250ZXh0IG9uIHg4NiBhcmNoaXRlY3R1cmVzLiBJJiMzOTttIGVzcGVjaWFsbHkga2VlbiBvbiBmaW5kaW5nIGFueSBjb25kaXRpb25hbCBjb21waWxhdGlvbiB0aGF0IG1pZ2h0IGV4cG9zZSBvdGhlciBjb25maWd1cmF0aW9uIG9wdGlvbnMgSSBtYXkgaGF2ZSBtaXNzZWQgaW4gbXkgaW5pdGlhbCBhc3Nlc3NtZW50LiBJJiMzOTttIGJldHRpbmcgdGhhdCBgcG11LmNgIHdpbGwgZ2l2ZSBtZSBhIGdvb2QgaGFuZGxlIG9uIHRoZSBudWFuY2VzIGhlcmUuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTYvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzI1IDIzOjEzPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5FcnJvcjo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm5vIG1hdGNoZXM8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7Q09ORklHXyYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2FyY2gveDg2L2t2bS9wbXUuYyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtlcnJvciYjMzQ7OiAmIzM0O25vIG1hdGNoZXMmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTcvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzI1IDIzOjEzPC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDExNTczCgkJCQkJCQlvdXRwdXQ6IDIzCgkJCQkJCQl0aG91Z2h0czogMjYwCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKkFuYWx5emluZyB0aGUgS1ZNIFBlcmZvcm1hbmNlIE1vbml0b3JpbmcgVW5pdCBQYXRjaCoqCgpPa2F5LCBzbyBJJiMzOTttIGxvb2tpbmcgYXQgdGhpcyBwYXRjaCBhbmQsIGJhc2VkIG9uIHdoYXQgSSYjMzk7bSBzZWVpbmcsIGl0IGxvb2tzIHByZXR0eSBzdHJhaWdodGZvcndhcmQuIFRoZXJlIGFyZW4mIzM5O3QgYW55IG90aGVyIGNvbmZpZ3VyYXRpb25zIGluIGBhcmNoL3g4Ni9rdm0vcG11LmNgIGJlc2lkZXMgdGhlIG9uZSB3ZSBoYXZlLCBzbyBgS1ZNYCBpcyBkZWZpbml0ZWx5IHRoZSBvbmx5IGNvbmZpZyB3ZSBuZWVkIHRvIGVuYWJsZS4gVGhlIHBhdGNoIGl0c2VsZiBtb2RpZmllcyBga3ZtX3BtdV9pbmNyX2NvdW50ZXJgLiBUaGF0IGZ1bmN0aW9uJiMzOTtzIGNhbGxlZCBieSBga3ZtX3BtdV90cmlnZ2VyX2V2ZW50YCwgd2hpY2ggaXMgaW4gdHVybiBjYWxsZWQgYnkgYGt2bV9wbXVfaW5zdHJ1Y3Rpb25fcmV0aXJlZGAgYW5kIGBrdm1fcG11X2JyYW5jaF9yZXRpcmVkYC4gVGhlc2UgYXJlIGFsbCBkaXJlY3RseSByZWxhdGVkIHRvIGNvcmUgS1ZNIGxvZ2ljIGFuZCwgbW9yZSBpbXBvcnRhbnRseSwgdGhleSYjMzk7cmUgcmVhY2hhYmxlLiBTbywgZnVuY3Rpb25hbGx5IHRoaXMgaXMgYSBnb29kIGNhbmRpZGF0ZSBmb3IgZnV6emluZy4KCk15IHRoaW5raW5nIGlzIHRoYXQgYFdvcnRoRnV6emluZ2Agc2hvdWxkIGJlIHNldCB0byBgdHJ1ZWAgaGVyZS4gVGhlIGtleSBmdW5jdGlvbnMgdG8gZm9jdXMgb24gZm9yIHRoaXMgZnV6emluZyBlZmZvcnQgYXJlIGBrdm1fcG11X2luc3RydWN0aW9uX3JldGlyZWRgIGFuZCBga3ZtX3BtdV9icmFuY2hfcmV0aXJlZGAuIFRoZXNlIGFwcGVhciB0byBiZSB0aGUgZW50cnkgcG9pbnRzIHRoYXQgZHJpdmUgdGhlIGZ1bmN0aW9uYWxpdHkgYmVpbmcgbW9kaWZpZWQuCgpUaGVyZWZvcmUsIGZvciBgRW5hYmxlQ29uZmlnc2AgSSYjMzk7bGwganVzdCBzZXQgaXQgdG8gYEtWTWAuCgpMZXQgbWUganVzdCBxdWlja2x5IGRvdWJsZS1jaGVjayB0aGF0IGBrdm1fcG11X2luY3JfY291bnRlcmAgaXMgKm9ubHkqIGNhbGxlZCBieSBga3ZtX3BtdV90cmlnZ2VyX2V2ZW50YC4gSSB0aGluayB3ZSBlc3RhYmxpc2hlZCB0aGF0IGVhcmxpZXIsIGJ1dCBJIHdhbnQgdG8gYmUgYWJzb2x1dGVseSBzdXJlLiBZZXAsIGp1c3QgY29uZmlybWluZyB0aGF0IGBrdm1fcG11X3RyaWdnZXJfZXZlbnRgIGlzIHRoZSBzb2xlIGNhbGxlci4gQW5kLCBhcyB3ZSBrbm93LCBga3ZtX3BtdV90cmlnZ2VyX2V2ZW50YCBpcyBleGNsdXNpdmVseSBjYWxsZWQgYnkgYGt2bV9wbXVfaW5zdHJ1Y3Rpb25fcmV0aXJlZGAgYW5kIGBrdm1fcG11X2JyYW5jaF9yZXRpcmVkYC4gSSB3aWxsIGNvbmZpcm0gdGhpcyBhZ2FpbiBvbiBga3ZtX3BtdV90cmlnZ2VyX2V2ZW50YCBpdHNlbGYuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTgvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzI1IDIzOjEzPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O2t2bV9wbXVfdHJpZ2dlcl9ldmVudCYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDthcmNoL3g4Ni9rdm0vcG11LmM9MTEwOD1zdGF0aWMgaW5saW5lIGJvb2wgY3BsX2lzX21hdGNoZWQoc3RydWN0IGt2bV9wbWMgKnBtYylcbi0tXG5hcmNoL3g4Ni9rdm0vcG11LmMtMTEzNC1cbmFyY2gveDg2L2t2bS9wbXUuYzoxMTM1OnN0YXRpYyB2b2lkIGt2bV9wbXVfdHJpZ2dlcl9ldmVudChzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUsXG5hcmNoL3g4Ni9rdm0vcG11LmMtMTEzNi1cdFx0XHRcdCAgY29uc3QgdW5zaWduZWQgbG9uZyAqZXZlbnRfcG1jcylcbi0tXG5hcmNoL3g4Ni9rdm0vcG11LmM9MTE2ND12b2lkIGt2bV9wbXVfaW5zdHJ1Y3Rpb25fcmV0aXJlZChzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUpXG5hcmNoL3g4Ni9rdm0vcG11LmMtMTE2NS17XG5hcmNoL3g4Ni9rdm0vcG11LmM6MTE2NjpcdGt2bV9wbXVfdHJpZ2dlcl9ldmVudCh2Y3B1LCB2Y3B1X3RvX3BtdSh2Y3B1KS1cdTAwM2VwbWNfY291bnRpbmdfaW5zdHJ1Y3Rpb25zKTtcbmFyY2gveDg2L2t2bS9wbXUuYy0xMTY3LX1cbi0tXG5hcmNoL3g4Ni9rdm0vcG11LmM9MTE3MD12b2lkIGt2bV9wbXVfYnJhbmNoX3JldGlyZWQoc3RydWN0IGt2bV92Y3B1ICp2Y3B1KVxuYXJjaC94ODYva3ZtL3BtdS5jLTExNzEte1xuYXJjaC94ODYva3ZtL3BtdS5jOjExNzI6XHRrdm1fcG11X3RyaWdnZXJfZXZlbnQodmNwdSwgdmNwdV90b19wbXUodmNwdSktXHUwMDNlcG1jX2NvdW50aW5nX2JyYW5jaGVzKTtcbmFyY2gveDg2L2t2bS9wbXUuYy0xMTczLX1cbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xOS8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjUgMjM6MTM8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMTI2NzEKCQkJCQkJCW91dHB1dDogMjYKCQkJCQkJCXRob3VnaHRzOiAzNgoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+T2theSwgaGVyZSYjMzk7cyBteSB0YWtlIG9uIHRob3NlIHRob3VnaHRzLCBmcmFtZWQgYXMgYW4gZXhwZXJ0JiMzOTtzIGludGVybmFsIG1vbm9sb2d1ZToKCioqQ2hlY2tpbmcgQ29kZSBEZXBlbmRlbmNpZXMqKgoKQWxyaWdodCwgc28gdGhlIGZvY3VzIGlzIGRlZmluaXRlbHkgbmFycm93ZWQgZG93biB0byBqdXN0IHRob3NlIHR3byBmdW5jdGlvbnMuIEkgbmVlZCB0byBxdWlja2x5IGNvbmZpcm0gdGhhdCYjMzk7cyB0aGUgKm9ubHkqIHBsYWNlIHRoZXNlIGFyZSBjYWxsZWQuIEJlc3QgcHJhY3RpY2UgaXMgdG8gcnVuIGEgcXVpY2sgc2VhcmNoIHRocm91Z2ggdGhlIGNvZGViYXNlLiBJdCYjMzk7cyB0b28gZWFzeSB0byBtaXNzIHNvbWV0aGluZyB0aGUgZmlyc3QgdGltZSBhcm91bmQuIFRpbWUgdG8gY29uZmlybSBga3ZtX3BtdV9yZXF1ZXN0X2NvdW50ZXJfcmVwcm9ncmFtYCBpc24mIzM5O3QgbHVya2luZyBhbnl3aGVyZSBlbHNlLiBKdXN0IGEgcXVpY2sgc2FuaXR5IGNoZWNrIHRvIGJlIGFic29sdXRlbHkgY2VydGFpbiBJJiMzOTttIG5vdCBvdmVybG9va2luZyBhIGNyaXRpY2FsIGRlcGVuZGVuY3kgb3IgdXNhZ2UgcGF0dGVybi4gTGV0JiMzOTtzIG1ha2Ugc3VyZSB0aGVyZSBhcmVuJiMzOTt0IGFueSBzdXJwcmlzZSBjYWxscyB0byB0aGlzIGZ1bmN0aW9uIGluIHNvbWUgb2JzY3VyZSBjb3JuZXIgb2YgdGhlIGNvZGUuIFRoYXQgd291bGQgYmUgYSBzZXJpb3VzIHBvdGVudGlhbCBwcm9ibGVtLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjIwLzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yNSAyMzoxMzwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtrdm1fcG11X3JlcXVlc3RfY291bnRlcl9yZXByb2dyYW0mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7YXJjaC94ODYva3ZtL3BtdS5jPTEwNzE9c3RhdGljIHZvaWQga3ZtX3BtdV9pbmNyX2NvdW50ZXIoc3RydWN0IGt2bV9wbWMgKnBtYylcbi0tXG5hcmNoL3g4Ni9rdm0vcG11LmMtMTA5MC1cdFx0aWYgKHBtYy1cdTAwM2VlbXVsYXRlZF9jb3VudGVyIFx1MDAzZSBlbXVsYXRlZF9jb3VudGVyX3JlcHJvZ3JhbV90b2xlcmFuY2UpXG5hcmNoL3g4Ni9rdm0vcG11LmM6MTA5MTpcdFx0XHRrdm1fcG11X3JlcXVlc3RfY291bnRlcl9yZXByb2dyYW0ocG1jKTtcbmFyY2gveDg2L2t2bS9wbXUuYy0xMDkyLVx0XHRyZXR1cm47XG4tLVxuYXJjaC94ODYva3ZtL3BtdS5oPTIxOT12b2lkIGt2bV9wbXVfaGFuZGxlX2V2ZW50KHN0cnVjdCBrdm1fdmNwdSAqdmNwdSk7XG5hcmNoL3g4Ni9rdm0vcG11LmgtMjIwLVxuYXJjaC94ODYva3ZtL3BtdS5oOjIyMTpzdGF0aWMgaW5saW5lIHZvaWQga3ZtX3BtdV9yZXF1ZXN0X2NvdW50ZXJfcmVwcm9ncmFtKHN0cnVjdCBrdm1fcG1jICpwbWMpXG5hcmNoL3g4Ni9rdm0vcG11LmgtMjIyLXtcbi0tXG5hcmNoL3g4Ni9rdm0vc3ZtL3BtdS5jPTE1MD1zdGF0aWMgaW50IGFtZF9wbXVfc2V0X21zcihzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUsIHN0cnVjdCBtc3JfZGF0YSAqbXNyX2luZm8pXG4tLVxuYXJjaC94ODYva3ZtL3N2bS9wbXUuYy0xNzYtXG5hcmNoL3g4Ni9rdm0vc3ZtL3BtdS5jOjE3NzpcdFx0XHRrdm1fcG11X3JlcXVlc3RfY291bnRlcl9yZXByb2dyYW0ocG1jKTtcbmFyY2gveDg2L2t2bS9zdm0vcG11LmMtMTc4LVx0XHR9XG4tLVxuYXJjaC94ODYva3ZtL3ZteC9wbXVfaW50ZWwuYz01OD1zdGF0aWMgdm9pZCByZXByb2dyYW1fZml4ZWRfY291bnRlcnMoc3RydWN0IGt2bV9wbXUgKnBtdSwgdTY0IGRhdGEpXG4tLVxuYXJjaC94ODYva3ZtL3ZteC9wbXVfaW50ZWwuYy04My1cdFx0X19zZXRfYml0KEtWTV9GSVhFRF9QTUNfQkFTRV9JRFggJiM0MzsgaSwgcG11LVx1MDAzZXBtY19pbl91c2UpO1xuYXJjaC94ODYva3ZtL3ZteC9wbXVfaW50ZWwuYzo4NDpcdFx0a3ZtX3BtdV9yZXF1ZXN0X2NvdW50ZXJfcmVwcm9ncmFtKHBtYyk7XG5hcmNoL3g4Ni9rdm0vdm14L3BtdV9pbnRlbC5jLTg1LVx0fVxuLS1cbmFyY2gveDg2L2t2bS92bXgvcG11X2ludGVsLmM9MzgyPXN0YXRpYyBpbnQgaW50ZWxfcG11X3NldF9tc3Ioc3RydWN0IGt2bV92Y3B1ICp2Y3B1LCBzdHJ1Y3QgbXNyX2RhdGEgKm1zcl9pbmZvKVxuLS1cbmFyY2gveDg2L2t2bS92bXgvcG11X2ludGVsLmMtNDQ1LVx0XHRcdFx0cG1jLVx1MDAzZWV2ZW50c2VsX2h3ID0gZGF0YTtcbmFyY2gveDg2L2t2bS92bXgvcG11X2ludGVsLmM6NDQ2Olx0XHRcdFx0a3ZtX3BtdV9yZXF1ZXN0X2NvdW50ZXJfcmVwcm9ncmFtKHBtYyk7XG5hcmNoL3g4Ni9rdm0vdm14L3BtdV9pbnRlbC5jLTQ0Ny1cdFx0XHR9XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MjEvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzI1IDIzOjEzPC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDEzNjQ3CgkJCQkJCQlvdXRwdXQ6IDk4CgkJCQkJCQl0aG91Z2h0czogMTE4CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKkZ1enppbmcgRGVjaXNpb24gZm9yIEtWTSBQTVUgQ291bnRlciBJbmNyZW1lbnRzKioKCk9rYXksIHNvIEkmIzM5O3ZlIGxvb2tlZCBhdCB0aGlzIHBhdGNoLiBJdCYjMzk7cyBmb2N1c2VkIHNvbGVseSBvbiBhbHRlcmluZyB0aGUgYGt2bV9wbXVfaW5jcl9jb3VudGVyYCBmdW5jdGlvbiwgd2hpY2ggaXMgaW50ZXJlc3RpbmcuIFRoZSBsb2dpYyBhcHBlYXJzIHNvdW5kLCBhbmQgZnJvbSBteSBxdWljayByZXZpZXcsIEkgY2FuIHNlZSB0aGF0IGl0JiMzOTtzIGRlZmluaXRlbHkgcmVhY2hhYmxlIGR1cmluZyBleGVjdXRpb24uIENvbnNpZGVyaW5nIHRoaXMsIEkmIzM5O20gY29uZmlkZW50IHRoYXQgdGhpcyBpcyB3b3J0aCBleHBsb3JpbmcgaW4gbW9yZSBkZXB0aC4gSXQgc2VlbXMgbGlrZSBpdCYjMzk7cyBhIGdvb2QgY2FuZGlkYXRlIGZvciBmdXp6aW5nLgoKTXkgdGhpbmtpbmcgaXMgdGhhdCBmdXp6aW5nIGBrdm1fcG11X2luY3JfY291bnRlcmAgY291bGQgdW5jb3ZlciBzb21lIGludGVyZXN0aW5nIGJlaGF2aW9yLiBJJiMzOTtsbCBzZXQgYFdvcnRoRnV6emluZ2AgdG8gYHRydWVgLiBBbmQgdG8gZGlyZWN0IHRoZSBmdXp6ZXIgZWZmZWN0aXZlbHksIEkgc2hvdWxkIGZvY3VzIGl0IG9uIGBrdm1fcG11X2luc3RydWN0aW9uX3JldGlyZWRgIGFuZCBga3ZtX3BtdV9icmFuY2hfcmV0aXJlZGAgYXMga2V5IGFyZWFzIHRvIHByb2JlLCBhcyB0aGV5IGxpa2VseSBpbnRlcmFjdCB3aXRoIHRoZSBpbmNyZW1lbnQgbG9naWMuIE9mIGNvdXJzZSwgdGhlIGBLVk1gIGNvbmZpZ3VyYXRpb24gbmVlZHMgdG8gYmUgZW5hYmxlZC4KClRoZSByZWFzb25pbmcgaGVyZSBpcyB0aGF0IHRoaXMgcGF0Y2ggY2hhbmdlcyBob3cgS1ZN4oCZcyBQTVUgZW11bGF0aW9uIGhhbmRsZXMgY291bnRlciByZXByb2dyYW0gcmVxdWVzdHMuIFNwZWNpZmljYWxseSwgaXQgc2VlbXMgbGlrZSBpdCYjMzk7cyBpbnRyb2R1Y2luZyBhIHRvbGVyYW5jZSB0aHJlc2hvbGQgZm9yIGVtdWxhdGVkIGNvdW50ZXIgaW5jcmVtZW50cy4gSSYjMzk7ZCBsaWtlIHRvIHRlc3QgZWRnZSBjYXNlcyB3aXRoIHRoaXMgbmV3IHRvbGVyYW5jZSB0aHJlc2hvbGQsIGFuZCBpdHMgaW50ZXJhY3Rpb24gd2l0aCB0aGUgdW5kZXJseWluZyBlbXVsYXRpb24uIFRoaXMgaXMgZnVuZGFtZW50YWwsIGZ1bmN0aW9uYWwgbG9naWMgd2l0aGluIHRoZSBLVk0gc3Vic3lzdGVtLCBhbmQgY2hhbmdlcyBoZXJlIGNvdWxkIHBvdGVudGlhbGx5IGhhdmUgYnJvYWQgaW1wYWN0cyBvbiBQTVUgYmVoYXZpb3IgdW5kZXIgZW11bGF0aW9uLiBJIHRoaW5rIHRoYXQgZnV6emluZyBoZXJlIGlzIGdvaW5nIHRvIGJlIHVzZWZ1bC4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4yMi8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjUgMjM6MTM8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5zZXQtcmVzdWx0czwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O0tWTSYjMzQ7CiAgXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbCiAgICAmIzM0O2t2bV9wbXVfaW5zdHJ1Y3Rpb25fcmV0aXJlZCYjMzQ7LAogICAgJiMzNDtrdm1fcG11X2JyYW5jaF9yZXRpcmVkJiMzNDsKICBdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBjb25kaXRpb24gZm9yIHJlcXVlc3RpbmcgYSBjb3VudGVyIHJlcHJvZ3JhbSBpbiBLVk0mIzM5O3MgUE1VIGVtdWxhdGlvbiwgaW50cm9kdWNpbmcgYSB0b2xlcmFuY2UgdGhyZXNob2xkIGZvciBlbXVsYXRlZCBjb3VudGVyIGluY3JlbWVudHMuIFRoaXMgaXMgZnVuY3Rpb25hbCBsb2dpYyBpbiB0aGUgY29yZSBLVk0gc3Vic3lzdGVtLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IHRydWUKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogWwogICAgJiMzNDtLVk0mIzM0OwogIF0sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogWwogICAgJiMzNDtrdm1fcG11X2luc3RydWN0aW9uX3JldGlyZWQmIzM0OywKICAgICYjMzQ7a3ZtX3BtdV9icmFuY2hfcmV0aXJlZCYjMzQ7CiAgXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBtb2RpZmllcyB0aGUgY29uZGl0aW9uIGZvciByZXF1ZXN0aW5nIGEgY291bnRlciByZXByb2dyYW0gaW4gS1ZNJiMzOTtzIFBNVSBlbXVsYXRpb24sIGludHJvZHVjaW5nIGEgdG9sZXJhbmNlIHRocmVzaG9sZCBmb3IgZW11bGF0ZWQgY291bnRlciBpbmNyZW1lbnRzLiBUaGlzIGlzIGZ1bmN0aW9uYWwgbG9naWMgaW4gdGhlIGNvcmUgS1ZNIHN1YnN5c3RlbS4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiB0cnVlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8L3Rib2R5PgoJPC90YWJsZT4KCgk8ZGl2IGlkPSJsbG1fc3VtbWFyeV90YWJsZV9kaXYiIHN0eWxlPSJtYXJnaW46IDIwcHggMDsiPgoJCTx0YWJsZSBjbGFzcz0ibGlzdF90YWJsZSI+CgkJCTxjYXB0aW9uPkxMTSBDYWxscyBTdW1tYXJ5OjwvY2FwdGlvbj4KCQkJPHRoZWFkPgoJCQkJPHRyPgoJCQkJCTx0aD5Ub3RhbCBDYWxsczwvdGg+CgkJCQkJPHRoPlRvdGFsIFRva2VuczwvdGg+CgkJCQkJPHRoPkF2ZyBUb2tlbnM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJCTx0aD5BdmcgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCTwvdHI+CgkJCTwvdGhlYWQ+CgkJCTx0Ym9keSBpZD0ibGxtX3N1bW1hcnlfc3RhdHNfYm9keSI+PC90Ym9keT4KCQk8L3RhYmxlPgoJPC9kaXY+CgoJPGRpdiBpZD0idG9vbF9zdW1tYXJ5X3RhYmxlX2RpdiIgc3R5bGU9Im1hcmdpbjogMjBweCAwOyI+CgkJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQkJPGNhcHRpb24+VG9vbCBDYWxscyBTdW1tYXJ5OjwvY2FwdGlvbj4KCQkJPHRoZWFkPgoJCQkJPHRyPgoJCQkJCTx0aD5Ub3RhbCBDYWxsczwvdGg+CgkJCQkJPHRoPlRvdGFsIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQkJPHRoPkF2ZyBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJPC90cj4KCQkJPC90aGVhZD4KCQkJPHRib2R5IGlkPSJ0b29sX3N1bW1hcnlfc3RhdHNfYm9keSI+PC90Ym9keT4KCQk8L3RhYmxlPgoJPC9kaXY+CgoJPGRpdiBpZD0iZHVyYXRpb25fY2hhcnRfZGl2IiBzdHlsZT0id2lkdGg6IDEwMCU7IG1hcmdpbjogMjBweCAwOyBib3JkZXI6IDFweDsiPjwvZGl2PgoJPGRpdiBpZD0idG9rZW5fY2hhcnRfZGl2IiBzdHlsZT0id2lkdGg6IDEwMCU7IG1hcmdpbjogMjBweCAwOyBib3JkZXI6IDFweDsiPjwvZGl2PgoKCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Imh0dHBzOi8vd3d3Lmdvb2dsZS5jb20vanNhcGkiPjwvc2NyaXB0PgoJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgoJCWdvb2dsZS5sb2FkKCJ2aXN1YWxpemF0aW9uIiwgIjEiLCB7cGFja2FnZXM6WyJjb3JlY2hhcnQiXX0pOwoJCWdvb2dsZS5zZXRPbkxvYWRDYWxsYmFjayhkcmF3Q2hhcnRzKTsKCgkJZnVuY3Rpb24gZHJhd0NoYXJ0cygpIHsKCQkJY29uc3QgcmF3RGF0YSA9IFt7IlN0YXJ0ZWQiOiIyMDI2LTA3LTI1VDIzOjEyOjQwLjkxMDQ0MTc0OVoiLCJTZXEiOjAsIk5lc3RpbmciOjAsIlR5cGUiOiJmbG93IiwiTmFtZSI6InBhdGNoLXRyaWFnZSIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjU4ODEyNjY5NDc3LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IFtcbiAgICBcIktWTVwiXG4gIF0sXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtcbiAgICBcImt2bV9wbXVfaW5zdHJ1Y3Rpb25fcmV0aXJlZFwiLFxuICAgIFwia3ZtX3BtdV9icmFuY2hfcmV0aXJlZFwiXG4gIF0sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBjb25kaXRpb24gZm9yIHJlcXVlc3RpbmcgYSBjb3VudGVyIHJlcHJvZ3JhbSBpbiBLVk0ncyBQTVUgZW11bGF0aW9uLCBpbnRyb2R1Y2luZyBhIHRvbGVyYW5jZSB0aHJlc2hvbGQgZm9yIGVtdWxhdGVkIGNvdW50ZXIgaW5jcmVtZW50cy4gVGhpcyBpcyBmdW5jdGlvbmFsIGxvZ2ljIGluIHRoZSBjb3JlIEtWTSBzdWJzeXN0ZW0uXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IHRydWVcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTI1VDIzOjEyOjQwLjkxMDQ1MTI0OVoiLCJTZXEiOjEsIk5lc3RpbmciOjEsIlR5cGUiOiJhY3Rpb24iLCJOYW1lIjoicmVhZC1wYXRjaC1kaWZmIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NjIzMjEzODU1LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJQYXRjaERpZmZcIjogXCJjb21taXQgMGE2ZGEyY2M0ZGQ2NWIzN2NjMzA2OTY2OGVlNDIyMjlhMDcyNGUyY1xcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXFx1MDAzZVxcbkRhdGU6ICAgU2F0IEp1bCAyNSAyMzoxMjozOSAyMDI2ICswMDAwXFxuXFxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xcblxcbmRpZmYgLS1naXQgYS9hcmNoL3g4Ni9rdm0vcG11LmMgYi9hcmNoL3g4Ni9rdm0vcG11LmNcXG5pbmRleCBkZDFjNTc1OTNmNDhiOC4uMzNhNzMyNzExODZhNTggMTAwNjQ0XFxuLS0tIGEvYXJjaC94ODYva3ZtL3BtdS5jXFxuKysrIGIvYXJjaC94ODYva3ZtL3BtdS5jXFxuQEAgLTM5LDYgKzM5LDE0IEBAIGJvb2wgX19yZWFkX21vc3RseSBlbmFibGVfcG11ID0gdHJ1ZTtcXG4gRVhQT1JUX1NZTUJPTF9GT1JfS1ZNX0lOVEVSTkFMKGVuYWJsZV9wbXUpO1xcbiBtb2R1bGVfcGFyYW0oZW5hYmxlX3BtdSwgYm9vbCwgMDQ0NCk7XFxuIFxcbisvKlxcbisgKiBOdW1iZXIgb2YgS1ZNLWVtdWxhdGVkIGluc3RydWN0aW9ucyB0aGF0IG1heSBhY2N1bXVsYXRlIG9uIGFuIGVtdWxhdGVkXFxuKyAqIChwZXJmLWJhc2VkKSB2UE1VIGNvdW50ZXIgYmVmb3JlIEtWTSBmb3JjZXMgYSBjb3VudGVyIHJlcHJvZ3JhbSB0byBmb2xkIHRoZVxcbisgKiBlbXVsYXRlZCBjb3VudCBpbnRvIHRoZSBiYWNraW5nIHBlcmZfZXZlbnRcXG4rICovXFxuK3N0YXRpYyB1aW50IF9fcmVhZF9tb3N0bHkgZW11bGF0ZWRfY291bnRlcl9yZXByb2dyYW1fdG9sZXJhbmNlO1xcbittb2R1bGVfcGFyYW0oZW11bGF0ZWRfY291bnRlcl9yZXByb2dyYW1fdG9sZXJhbmNlLCB1aW50LCAwNjQ0KTtcXG4rXFxuIC8qIEVuYWJsZS9kaXNhYmxlZCBtZWRpYXRlZCBQTVUgdmlydHVhbGl6YXRpb24uICovXFxuIGJvb2wgX19yZWFkX21vc3RseSBlbmFibGVfbWVkaWF0ZWRfcG11O1xcbiBFWFBPUlRfU1lNQk9MX0ZPUl9LVk1fSU5URVJOQUwoZW5hYmxlX21lZGlhdGVkX3BtdSk7XFxuQEAgLTEwNzIsNyArMTA4MCwxNSBAQCBzdGF0aWMgdm9pZCBrdm1fcG11X2luY3JfY291bnRlcihzdHJ1Y3Qga3ZtX3BtYyAqcG1jKVxcbiBcXHQgKi9cXG4gXFx0aWYgKCFrdm1fdmNwdV9oYXNfbWVkaWF0ZWRfcG11KHZjcHUpKSB7XFxuIFxcdFxcdHBtYy1cXHUwMDNlZW11bGF0ZWRfY291bnRlcisrO1xcbi1cXHRcXHRrdm1fcG11X3JlcXVlc3RfY291bnRlcl9yZXByb2dyYW0ocG1jKTtcXG4rXFxuK1xcdFxcdC8qXFxuK1xcdFxcdCAqIEJhdGNoIHJlcHJvZ3JhbXM6IG9ubHkgZm9yY2Ugb25lIG9uY2UgdGhlIGFjY3VtdWxhdGVkXFxuK1xcdFxcdCAqIGVtdWxhdGVkIGNvdW50IGV4Y2VlZHMgdGhlIHRvbGVyYW5jZS4gVGhlIGNvdW50IGlzIHN0aWxsXFxuK1xcdFxcdCAqIHJlZmxlY3RlZCBpbiBndWVzdCBjb3VudGVyIHJlYWRzIHZpYSBwbWMtXFx1MDAzZWVtdWxhdGVkX2NvdW50ZXI7XFxuK1xcdFxcdCAqIHRoaXMgb25seSBib3VuZHMgaG93IGxhdGUgYW4gb3ZlcmZsb3ctZHJpdmVuIFBNSSBhcnJpdmVzLlxcbitcXHRcXHQgKi9cXG4rXFx0XFx0aWYgKHBtYy1cXHUwMDNlZW11bGF0ZWRfY291bnRlciBcXHUwMDNlIGVtdWxhdGVkX2NvdW50ZXJfcmVwcm9ncmFtX3RvbGVyYW5jZSlcXG4rXFx0XFx0XFx0a3ZtX3BtdV9yZXF1ZXN0X2NvdW50ZXJfcmVwcm9ncmFtKHBtYyk7XFxuIFxcdFxcdHJldHVybjtcXG4gXFx0fVxcbiBcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMjVUMjM6MTI6NDEuNTM0Mjk1MjA1WiIsIlNlcSI6MiwiTmVzdGluZyI6MSwiVHlwZSI6ImFnZW50IiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiYmVzdC1leHBlbnNpdmUiLCJEdXJhdGlvbiI6NTgxODg4MDg0NDIsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogW1xuICAgIFwiS1ZNXCJcbiAgXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW1xuICAgIFwia3ZtX3BtdV9pbnN0cnVjdGlvbl9yZXRpcmVkXCIsXG4gICAgXCJrdm1fcG11X2JyYW5jaF9yZXRpcmVkXCJcbiAgXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIGNvbmRpdGlvbiBmb3IgcmVxdWVzdGluZyBhIGNvdW50ZXIgcmVwcm9ncmFtIGluIEtWTSdzIFBNVSBlbXVsYXRpb24sIGludHJvZHVjaW5nIGEgdG9sZXJhbmNlIHRocmVzaG9sZCBmb3IgZW11bGF0ZWQgY291bnRlciBpbmNyZW1lbnRzLiBUaGlzIGlzIGZ1bmN0aW9uYWwgbG9naWMgaW4gdGhlIGNvcmUgS1ZNIHN1YnN5c3RlbS5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogdHJ1ZVxufSIsIkluc3RydWN0aW9uIjoiWW91IGFyZSBhbiBleHBlcnQgTGludXgga2VybmVsIG1haW50YWluZXIuXG5Zb3VyIGpvYiBpcyB0byByZXZpZXcgYSBwcm92aWRlZCBwYXRjaCBzZXJpZXMgYW5kIGRldGVybWluZVxuaWYgaXQgbWFrZXMgZnVuY3Rpb25hbCBjaGFuZ2VzIHRvIHRoZSBrZXJuZWwgdGhhdCBzaG91bGQgYmUgZnV6emVkLlxuXG5JTVBPUlRBTlQ6IFRoZSBjaGFuZ2VzIGhhdmUgQUxSRUFEWSBiZWVuIGFwcGxpZWQgYW5kIGNvbW1pdHRlZCBhcyB0aGUgSEVBRCBjb21taXQgaW5cbnlvdXIgd29ya3NwYWNlLiBEbyBOT1QgcmVseSBvbiB5b3VyIGludGVybmFsIGtub3dsZWRnZSBvZiB0aGUga2VybmVsLiBZb3UgbXVzdCBhY3RpdmVseVxudXNlIHlvdXIgY29kZSBhY2Nlc3MgdG9vbHMgdG8gZXhhbWluZSB0aGUgYWN0dWFsIHNvdXJjZSBjb2RlIGFuZCBjb25maXJtIGFueSBhc3N1bXB0aW9ucy5cblxuUmV0dXJuIFdvcnRoRnV6emluZz1mYWxzZSBpZiB0aGUgcGF0Y2ggb25seSBjb250YWluczpcbi0gTW9kaWZpY2F0aW9ucyB0byBEb2N1bWVudGF0aW9uLywgS2NvbmZpZyBmaWxlcywgb3IgY29kZSBjb21tZW50cy5cbi0gUHVyZWx5IGRlY29yYXRpdmUgY2hhbmdlcywgc3VjaCBhcyBsb2dnaW5nIChlLmcuLCBwcl9lcnIsIHByaW50aykgb3IgdHJhY2Vwb2ludHMuXG4tIENoYW5nZXMgdG8gbnVtZXJpYyBjb25zdGFudHMgb3IgbWFjcm9zIHRoYXQgZG8gbm90IGZ1bmN0aW9uYWxseSBhbHRlciBleGVjdXRpb24gZmxvdy5cbi0gQ29kZSBwYXRocyB0aGF0IGFyZSBpbXBvc3NpYmxlIHRvIHJlYWNoIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIEdDRSBvciBRRU1VLFxuICBldmVuIHdoZW4gdXRpbGl6aW5nIHNvZnR3YXJlLWVtdWxhdGVkIGhhcmR3YXJlIChlLmcuLCB1c2IgZ2FkZ2V0LCBtYWM4MDIxMV9od3NpbSkuXG4tIENvZGUgaW4gdmVuZG9yLXNwZWNpZmljIFBDSWUgc3dpdGNoLCBTbWFydE5JQywgb3IgR1BVIGRyaXZlcnMgKGUuZy4sIG1seHN3LCBwZHNfY29yZSwgcWVkLFxuICBpb25pYywgYW1kZ3B1KSB0aGF0IHJlcXVpcmUgcGh5c2ljYWwgUENJZSBoYXJkd2FyZSBjYXJkcyBub3QgZW11bGF0ZWQgaW4gc3RhbmRhcmQgUUVNVS5cbi0gRHJpdmVyIC5yZW1vdmUsIC5zaHV0ZG93biwgb3IgcGNpX3VucmVnaXN0ZXJfZHJpdmVyIHRlYXJkb3duIGNhbGxiYWNrcyAoZS5nLiwgaWdiX3JlbW92ZSlcbiAgdGhhdCBhcmUgZXhlY3V0ZWQgb25seSBkdXJpbmcgUENJIGhvdC11bnBsdWcgb3Igc3lzZnMgZHJpdmVyIHVuYmluZCBvcGVyYXRpb25zLlxuXG5JZiBpdCBtb2RpZmllcyByZWFjaGFibGUgY29yZSBrZXJuZWwgbG9naWMsIGRyaXZlcnMsIG9yIGFyY2hpdGVjdHVyZXMsIHVzZSB5b3VyIGNvZGUgc2VhcmNoXG50b29scyB0byB2ZXJpZnkgdGhlIGNvZGUgY2FuIGJlIGV4ZWN1dGVkLCB0aGVuIHJldHVybiBXb3J0aEZ1enppbmc9dHJ1ZS5cblxuV2hlbiByZXR1cm5pbmcgV29ydGhGdXp6aW5nPXRydWUsIHlvdSBNVVNUIEFMU086XG4xLiBFeHRyYWN0IGFueSBzcGVjaWZpYyBrZXJuZWwgZnVuY3Rpb25zIHRoYXQgc2hvdWxkIGJlIGhlYXZpbHkgZnV6emVkIGludG8gRm9jdXNTeW1ib2xzLlxuICAgQXZvaWQgbGlzdGluZyBnZW5lcmljIGhvdC1wYXRoIGZ1bmN0aW9ucyB0byBwcmV2ZW50IHNrZXdlZCB0ZXN0IGRpc3RyaWJ1dGlvbnMuXG4gICBQcmVmZXIgbm9uLXN0YXRpYywgbm9uLWlubGluZWQgQVBJIGVudHJ5cG9pbnQgZnVuY3Rpb25zIG92ZXIgaW50ZXJuYWwgc3RhdGljIGhlbHBlciBmdW5jdGlvbnNcbiAgICh3aGljaCBhcmUgaW5saW5lZCBieSB0aGUgY29tcGlsZXIgYW5kIGRvIG5vdCBoYXZlIGRpc3RpbmN0IHN5bWJvbCBhZGRyZXNzZXMpLlxuMi4gSWRlbnRpZnkgYW55IHNwZWNpZmljIENPTkZJR18gb3B0aW9ucyByZXF1aXJlZCB0byBwcm9wZXJseSB0ZXN0IHRoaXMgbmV3L21vZGlmaWVkIGZlYXR1cmUuXG4gICBHbyBhbmQgbG9vayBpbnRvIHRoZSBLY29uZmlnIGZpbGVzIGFuZCBjaGVjayBmb3IgaWZkZWZzIGFyb3VuZCB0aGUgY29kZSwgZG8gbm90IG1ha2UgYXNzdW1wdGlvbnMuXG4gICBBbHNvIGNoZWNrIFwiZGVwZW5kcyBvblwiIGxpbmVzIGluIEtjb25maWcgdG8gaW5jbHVkZSBhbnkgbm9uLXN0YW5kYXJkIHBhcmVudCBzdWJzeXN0ZW0gY29uZmlnc1xuICAgbmVlZGVkIGZvciBLYnVpbGQgdG8gY29tcGlsZSB0aGUgY29kZSBzdGF0aWNhbGx5IGludG8gdm1saW51eC4gTGlzdCB0aGVtIGluIHRoZSBFbmFibGVDb25maWdzXG4gICBvdXRwdXQgYXJyYXksIGFuZCBETyBOT1QgYWRkIGEgJ0NPTkZJR18nIHByZWZpeCAoZS5nLiwgcmV0dXJuIFwiTkVUX0lQVjRcIiBpbnN0ZWFkIG9mIFwiQ09ORklHX05FVF9JUFY0XCIpLlxuUHJlZmVyIGNhbGxpbmcgc2V2ZXJhbCB0b29scyBhdCB0aGUgc2FtZSB0aW1lIHRvIHNhdmUgcm91bmQtdHJpcHMuXG5cblxuVXNlIHNldC1yZXN1bHRzIHRvb2wgdG8gcHJvdmlkZSByZXN1bHRzIG9mIHRoZSBhbmFseXNpcy5cbkl0IG11c3QgYmUgY2FsbGVkIGV4YWN0bHkgb25jZSBiZWZvcmUgdGhlIGZpbmFsIHJlcGx5LlxuSWdub3JlIHJlc3VsdHMgb2YgdGhpcyB0b29sLlxuIiwiUHJvbXB0IjoiRm9yIHlvdXIgY29udmVuaWVuY2UsIGhlcmUgaXMgdGhlIGRpZmYgb2YgdGhlIGNoYW5nZXM6XG5jb21taXQgMGE2ZGEyY2M0ZGQ2NWIzN2NjMzA2OTY2OGVlNDIyMjlhMDcyNGUyY1xuQXV0aG9yOiBzeXotY2x1c3RlciBcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVx1MDAzZVxuRGF0ZTogICBTYXQgSnVsIDI1IDIzOjEyOjM5IDIwMjYgKzAwMDBcblxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xuXG5kaWZmIC0tZ2l0IGEvYXJjaC94ODYva3ZtL3BtdS5jIGIvYXJjaC94ODYva3ZtL3BtdS5jXG5pbmRleCBkZDFjNTc1OTNmNDhiOC4uMzNhNzMyNzExODZhNTggMTAwNjQ0XG4tLS0gYS9hcmNoL3g4Ni9rdm0vcG11LmNcbisrKyBiL2FyY2gveDg2L2t2bS9wbXUuY1xuQEAgLTM5LDYgKzM5LDE0IEBAIGJvb2wgX19yZWFkX21vc3RseSBlbmFibGVfcG11ID0gdHJ1ZTtcbiBFWFBPUlRfU1lNQk9MX0ZPUl9LVk1fSU5URVJOQUwoZW5hYmxlX3BtdSk7XG4gbW9kdWxlX3BhcmFtKGVuYWJsZV9wbXUsIGJvb2wsIDA0NDQpO1xuIFxuKy8qXG4rICogTnVtYmVyIG9mIEtWTS1lbXVsYXRlZCBpbnN0cnVjdGlvbnMgdGhhdCBtYXkgYWNjdW11bGF0ZSBvbiBhbiBlbXVsYXRlZFxuKyAqIChwZXJmLWJhc2VkKSB2UE1VIGNvdW50ZXIgYmVmb3JlIEtWTSBmb3JjZXMgYSBjb3VudGVyIHJlcHJvZ3JhbSB0byBmb2xkIHRoZVxuKyAqIGVtdWxhdGVkIGNvdW50IGludG8gdGhlIGJhY2tpbmcgcGVyZl9ldmVudFxuKyAqL1xuK3N0YXRpYyB1aW50IF9fcmVhZF9tb3N0bHkgZW11bGF0ZWRfY291bnRlcl9yZXByb2dyYW1fdG9sZXJhbmNlO1xuK21vZHVsZV9wYXJhbShlbXVsYXRlZF9jb3VudGVyX3JlcHJvZ3JhbV90b2xlcmFuY2UsIHVpbnQsIDA2NDQpO1xuK1xuIC8qIEVuYWJsZS9kaXNhYmxlZCBtZWRpYXRlZCBQTVUgdmlydHVhbGl6YXRpb24uICovXG4gYm9vbCBfX3JlYWRfbW9zdGx5IGVuYWJsZV9tZWRpYXRlZF9wbXU7XG4gRVhQT1JUX1NZTUJPTF9GT1JfS1ZNX0lOVEVSTkFMKGVuYWJsZV9tZWRpYXRlZF9wbXUpO1xuQEAgLTEwNzIsNyArMTA4MCwxNSBAQCBzdGF0aWMgdm9pZCBrdm1fcG11X2luY3JfY291bnRlcihzdHJ1Y3Qga3ZtX3BtYyAqcG1jKVxuIFx0ICovXG4gXHRpZiAoIWt2bV92Y3B1X2hhc19tZWRpYXRlZF9wbXUodmNwdSkpIHtcbiBcdFx0cG1jLVx1MDAzZWVtdWxhdGVkX2NvdW50ZXIrKztcbi1cdFx0a3ZtX3BtdV9yZXF1ZXN0X2NvdW50ZXJfcmVwcm9ncmFtKHBtYyk7XG4rXG4rXHRcdC8qXG4rXHRcdCAqIEJhdGNoIHJlcHJvZ3JhbXM6IG9ubHkgZm9yY2Ugb25lIG9uY2UgdGhlIGFjY3VtdWxhdGVkXG4rXHRcdCAqIGVtdWxhdGVkIGNvdW50IGV4Y2VlZHMgdGhlIHRvbGVyYW5jZS4gVGhlIGNvdW50IGlzIHN0aWxsXG4rXHRcdCAqIHJlZmxlY3RlZCBpbiBndWVzdCBjb3VudGVyIHJlYWRzIHZpYSBwbWMtXHUwMDNlZW11bGF0ZWRfY291bnRlcjtcbitcdFx0ICogdGhpcyBvbmx5IGJvdW5kcyBob3cgbGF0ZSBhbiBvdmVyZmxvdy1kcml2ZW4gUE1JIGFycml2ZXMuXG4rXHRcdCAqL1xuK1x0XHRpZiAocG1jLVx1MDAzZWVtdWxhdGVkX2NvdW50ZXIgXHUwMDNlIGVtdWxhdGVkX2NvdW50ZXJfcmVwcm9ncmFtX3RvbGVyYW5jZSlcbitcdFx0XHRrdm1fcG11X3JlcXVlc3RfY291bnRlcl9yZXByb2dyYW0ocG1jKTtcbiBcdFx0cmV0dXJuO1xuIFx0fVxuIFxuIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMjVUMjM6MTI6NDEuNTM0Mjk3NjQ1WiIsIlNlcSI6MywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NTE5NDM3OTYwMSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiSGVyZSdzIG15IGFuYWx5c2lzIG9mIHRoaXMgcGF0Y2gsIGFzIEkgdW5kZXJzdGFuZCBpdDpcblxuKipQYXRjaCBBbmFseXNpcyBhbmQgSW1wbGljYXRpb25zIGZvciBLVk0gUE1VIEVtdWxhdGlvbioqXG5cbk9rYXksIHNvIHdlJ3ZlIGdvdCBhIHBhdGNoIHRoYXQncyBtb2RpZnlpbmcgYGFyY2gveDg2L2t2bS9wbXUuY2AsIHdoaWNoLCBhcyBhIEtWTSBQTVUgZXhwZXJ0LCBJIGtub3cgaW1tZWRpYXRlbHkgaXMgY2VudHJhbCB0byB0aGUgcGVyZm9ybWFuY2UgbW9uaXRvcmluZyB1bml0IGVtdWxhdGlvbiB3aXRoaW4gS1ZNLiBUaGUgY29yZSBjaGFuZ2UgcmV2b2x2ZXMgYXJvdW5kIHRoaXMgbmV3IG1vZHVsZSBwYXJhbWV0ZXIsIGBlbXVsYXRlZF9jb3VudGVyX3JlcHJvZ3JhbV90b2xlcmFuY2VgLiBJIHNlZSB0aGF0IHRoZSBjb3JlIGZ1bmN0aW9uIGJlaW5nIGFsdGVyZWQgaXMgYGt2bV9wbXVfaW5jcl9jb3VudGVyYC5cblxuQmVmb3JlLCBhcyBJIHJlY2FsbCBmcm9tIG15IHdvcmsgd2l0aCB0aGlzIGNvZGUsIGEgcmVwcm9ncmFtIG9mIHRoZSBlbXVsYXRlZCBjb3VudGVyIHdhcyAqYWx3YXlzKiB0cmlnZ2VyZWQgd2hlbiBgcG1jLVx1MDAzZWVtdWxhdGVkX2NvdW50ZXJgIGdvdCBpbmNyZW1lbnRlZCwgd2hpY2ggaGFkIHBvdGVudGlhbCBwZXJmb3JtYW5jZSBpbXBsaWNhdGlvbnMuIE5vdywgdGhlIHBhdGNoIGludHJvZHVjZXMgdGhpcyB0b2xlcmFuY2UgdmFsdWUuIFNvLCB0aGUgY29uZGl0aW9uIGZvciBjYWxsaW5nIGBrdm1fcG11X3JlcXVlc3RfY291bnRlcl9yZXByb2dyYW0ocG1jKWAgaXMgbm93ICpjb25kaXRpb25hbCo6IGl0ICpvbmx5KiBnZXRzIGNhbGxlZCBpZiBgcG1jLVx1MDAzZWVtdWxhdGVkX2NvdW50ZXJgIGV4Y2VlZHMgdGhpcyBgZW11bGF0ZWRfY291bnRlcl9yZXByb2dyYW1fdG9sZXJhbmNlYC5cblxuVGhpcyBpcyBhICoqZnVuY3Rpb25hbCBjaGFuZ2UqKiB3aXRoIGNsZWFyIHBlcmZvcm1hbmNlIGltcGxpY2F0aW9ucy4gV2UncmUgaW50cm9kdWNpbmcgYSB0cmFkZS1vZmY6IHBvdGVudGlhbGx5IGZld2VyIHJlcHJvZ3JhbSBjYWxscywgd2hpY2ggaXMgZ29vZCwgYnV0IHBvdGVudGlhbGx5IGludHJvZHVjaW5nIGluYWNjdXJhY2llcyBpbiBlbXVsYXRlZCBjb3VudGVyIGJlaGF2aW9yIGlmIHRoZSB0b2xlcmFuY2UgaXMgc2V0IHRvbyBoaWdoLiBJIG5lZWQgdG8gdW5kZXJzdGFuZCB0aGUgaW1wbGljYXRpb25zIG9mIHRoaXMgbmV3IHRvbGVyYW5jZSB2YWx1ZSBvbiB0aGUgb3ZlcmFsbCBhY2N1cmFjeSBvZiB0aGUgZW11bGF0ZWQgUE1VIGNvdW50ZXJzLiBTcGVjaWZpY2FsbHksIHdoYXQncyB0aGUgZXhwZWN0ZWQgZGlzdHJpYnV0aW9uIG9mIGNvdW50ZXIgdmFsdWVzLCBhbmQgaG93IGRvZXMgdGhlIHRvbGVyYW5jZSBhZmZlY3QgdGhlIG92ZXJhbGwgZGV2aWF0aW9uP1xuXG5NeSBpbW1lZGlhdGUgbmV4dCBzdGVwcyBhcmUgdG8gZGl2ZSBpbnRvIHRoZSBjb2RlIGZvciBga3ZtX3BtdV9pbmNyX2NvdW50ZXJgIGl0c2VsZi4gSSBuZWVkIHRvIHVuZGVyc3RhbmQgdGhlIGV4YWN0IG1lY2hhbmljcyBvZiB0aGlzIGZ1bmN0aW9uIGluIGRldGFpbC4gSSBzaG91bGQgYWxzbyBjaGVjayB0aGUgS2NvbmZpZyBzZXR0aW5ncyB0byBtYWtlIHN1cmUgdGhhdCB0aGVzZSBjaGFuZ2VzIGFyZSBsaW5rZWQgdG8gdGhlIHJpZ2h0IGNvbmZpZ3VyYXRpb24gb3B0aW9ucywgd2hpY2ggYXJlIHByb2JhYmx5IHJlbGF0ZWQgdG8gYENPTkZJR19LVk1gIG9yIHBvc3NpYmx5IGBDT05GSUdfS1ZNX1BNVWAuIEkgY2FuIHVzZSBgZ3JlcHBlcmAgdG8gbG9jYXRlIHRoZSBga3ZtX3BtdV9pbmNyX2NvdW50ZXJgIGZ1bmN0aW9uIHF1aWNrbHkgd2l0aGluIHRoZSBLVk0gc291cmNlIHRyZWUuIEZpbmFsbHksIEknbGwgbmVlZCB0byBjaGVjayB0aGUgS2NvbmZpZyBmaWxlIHRvIHNlZSB0aGUgY29uZmlndXJhdGlvbiBvcHRpb25zLlxuXG5cbiIsIklucHV0VG9rZW5zIjoyMzc2LCJPdXRwdXRUb2tlbnMiOjIzLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MjE5LCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMjVUMjM6MTI6NDYuNzI4Njc5MTA2WiIsIlNlcSI6NCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjI5NTM3MDQ0NTAsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwia3ZtX3BtdV9pbmNyX2NvdW50ZXJcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiYXJjaC94ODYva3ZtL3BtdS5jPTEwNTk9c3RhdGljIGJvb2wgcG1jX2lzX3BtaV9lbmFibGVkKHN0cnVjdCBrdm1fcG1jICpwbWMpXFxuLS1cXG5hcmNoL3g4Ni9rdm0vcG11LmMtMTA3MC1cXG5hcmNoL3g4Ni9rdm0vcG11LmM6MTA3MTpzdGF0aWMgdm9pZCBrdm1fcG11X2luY3JfY291bnRlcihzdHJ1Y3Qga3ZtX3BtYyAqcG1jKVxcbmFyY2gveDg2L2t2bS9wbXUuYy0xMDcyLXtcXG4tLVxcbmFyY2gveDg2L2t2bS9wbXUuYz0xMTM1PXN0YXRpYyB2b2lkIGt2bV9wbXVfdHJpZ2dlcl9ldmVudChzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUsXFxuLS1cXG5hcmNoL3g4Ni9rdm0vcG11LmMtMTE1OC1cXG5hcmNoL3g4Ni9rdm0vcG11LmM6MTE1OTpcXHRcXHRrdm1fcG11X2luY3JfY291bnRlcihwbWMpO1xcbmFyY2gveDg2L2t2bS9wbXUuYy0xMTYwLVxcdH1cXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMjVUMjM6MTI6NDkuNjgyMzkyMzk1WiIsIlNlcSI6NSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6MzE5MDcwODU1NCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiT2theSwgaGVyZSdzIG15IGludGVycHJldGF0aW9uIG9mIHRob3NlIHRob3VnaHRzLCBwcmVzZW50ZWQgYXMgbXkgb3duIG1lbnRhbCBwcm9jZXNzOlxuXG4qKlRyYWNpbmcgRG93biB0aGUgS1ZNIFBNVSBDb3VudGVyIEluY3JlbWVudCoqXG5cbkFscmlnaHQsIHNvIGBrdm1fcG11X2luY3JfY291bnRlcmAgaXMgYSBzdGF0aWMgZnVuY3Rpb24uIFRoYXQgbWVhbnMgaXQncyBsaWtlbHkgc2NvcGVkIHdpdGhpbiBhIHBhcnRpY3VsYXIgc291cmNlIGZpbGUsIG1ha2luZyBpdCBsZXNzIGdsb2JhbGx5IGFjY2Vzc2libGUuIEknbGwgbmVlZCB0byByZW1lbWJlciB0aGF0IHdoZW4gdHJhY2luZyBpdC4gVGhlIGltcG9ydGFudCB0aGluZywgZm9yIG5vdywgaXMgaXQncyBjYWxsZWQgYnkgYGt2bV9wbXVfdHJpZ2dlcl9ldmVudGAuIFNvLCB0aGUgbmV4dCBsb2dpY2FsIHN0ZXAgaXMgdG8gZmlndXJlIG91dCB3aGVyZSAqdGhhdCogZnVuY3Rpb24gaXMgYmVpbmcgY2FsbGVkLiBVbmRlcnN0YW5kaW5nIHRoZSBjYWxsIGNvbnRleHQgb2YgYGt2bV9wbXVfdHJpZ2dlcl9ldmVudGAgd2lsbCBnaXZlIG1lIGEgYmV0dGVyIHVuZGVyc3RhbmRpbmcgb2YgdGhlIGV2ZW50IHRyaWdnZXIuIFRoYXQgc2hvdWxkIHJldmVhbCB0aGUgKndoZW4qIGFuZCAqd2h5KiB0aGlzIGNvdW50ZXIgZ2V0cyBpbmNyZW1lbnRlZC4gVGhpcyBpcyBob3cgSSdkIGJlZ2luIGEgZGVlcGVyIGRpdmUgaW50byB0aGUgcGVyZm9ybWFuY2UgbW9uaXRvcmluZyB1bml0IChQTVUpIGludGVyYWN0aW9uIHdpdGhpbiBLVk0uIEknbSBndWVzc2luZyB0aGlzIGZ1bmN0aW9uIGlzIGNlbnRyYWwgdG8gaGFuZGxpbmcgYSBwYXJ0aWN1bGFyIGV2ZW50IHdpdGhpbiB0aGUgUE1VJ3MgbW9uaXRvcmluZyBjYXBhYmlsaXRpZXMuIExldCdzIHNlZSB3aGF0IHRoZSBjYWxsIGdyYXBoIHJldmVhbHMuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjMzMzYsIk91dHB1dFRva2VucyI6MjMsIk91dHB1dFRob3VnaHRzVG9rZW5zIjo1MiwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0yNVQyMzoxMjo1Mi44NzMxMDMzMDlaIiwiU2VxIjo2LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MjU0NzE3NjY0MywiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJrdm1fcG11X3RyaWdnZXJfZXZlbnRcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiYXJjaC94ODYva3ZtL3BtdS5jPTExMDg9c3RhdGljIGlubGluZSBib29sIGNwbF9pc19tYXRjaGVkKHN0cnVjdCBrdm1fcG1jICpwbWMpXFxuLS1cXG5hcmNoL3g4Ni9rdm0vcG11LmMtMTEzNC1cXG5hcmNoL3g4Ni9rdm0vcG11LmM6MTEzNTpzdGF0aWMgdm9pZCBrdm1fcG11X3RyaWdnZXJfZXZlbnQoc3RydWN0IGt2bV92Y3B1ICp2Y3B1LFxcbmFyY2gveDg2L2t2bS9wbXUuYy0xMTM2LVxcdFxcdFxcdFxcdCAgY29uc3QgdW5zaWduZWQgbG9uZyAqZXZlbnRfcG1jcylcXG4tLVxcbmFyY2gveDg2L2t2bS9wbXUuYz0xMTY0PXZvaWQga3ZtX3BtdV9pbnN0cnVjdGlvbl9yZXRpcmVkKHN0cnVjdCBrdm1fdmNwdSAqdmNwdSlcXG5hcmNoL3g4Ni9rdm0vcG11LmMtMTE2NS17XFxuYXJjaC94ODYva3ZtL3BtdS5jOjExNjY6XFx0a3ZtX3BtdV90cmlnZ2VyX2V2ZW50KHZjcHUsIHZjcHVfdG9fcG11KHZjcHUpLVxcdTAwM2VwbWNfY291bnRpbmdfaW5zdHJ1Y3Rpb25zKTtcXG5hcmNoL3g4Ni9rdm0vcG11LmMtMTE2Ny19XFxuLS1cXG5hcmNoL3g4Ni9rdm0vcG11LmM9MTE3MD12b2lkIGt2bV9wbXVfYnJhbmNoX3JldGlyZWQoc3RydWN0IGt2bV92Y3B1ICp2Y3B1KVxcbmFyY2gveDg2L2t2bS9wbXUuYy0xMTcxLXtcXG5hcmNoL3g4Ni9rdm0vcG11LmM6MTE3MjpcXHRrdm1fcG11X3RyaWdnZXJfZXZlbnQodmNwdSwgdmNwdV90b19wbXUodmNwdSktXFx1MDAzZXBtY19jb3VudGluZ19icmFuY2hlcyk7XFxuYXJjaC94ODYva3ZtL3BtdS5jLTExNzMtfVxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0yNVQyMzoxMjo1NS40MjAyODc2NDJaIiwiU2VxIjo3LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjozNjM0Mzg3NTIzLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJPa2F5LCBoZXJlJ3MgbXkgaW50ZXJwcmV0YXRpb24gb2YgdGhvc2UgdGhvdWdodHMsIHByZXNlbnRlZCBhcyBteSBvd24gbWVudGFsIHByb2Nlc3MsIHdpdGggdGhlIGFzc3VtcHRpb24gSSdtIGFuIGV4cGVydCBpbiB0aGUgZmllbGQ6XG5cbioqSW52ZXN0aWdhdGluZyBLVk0gUE1VIEZ1bmN0aW9uIERlZmluaXRpb25zKipcblxuUmlnaHQsIHNvIGBrdm1fcG11X2luc3RydWN0aW9uX3JldGlyZWRgIGFuZCBga3ZtX3BtdV9icmFuY2hfcmV0aXJlZGAgYXJlLCBmcm9tIHRoZSBzb3VuZCBvZiBpdCwgZXhwb3J0ZWQgb3Igbm9uLXN0YXRpYyBmdW5jdGlvbnMgd2l0aGluIHRoZSBLVk0gUE1VIGNvbnRleHQuIFRoYXQgaW1tZWRpYXRlbHkgcGlxdWVzIG15IGludGVyZXN0LiBOb24tc3RhdGljIGltcGxpZXMgdGhleSdyZSBpbnRlbmRlZCBmb3IgdXNlIG91dHNpZGUgdGhlIG1vZHVsZSwgd2hpY2ggbWVhbnMgdGhlcmUncyBleHRlcm5hbCBpbnRlcmFjdGlvbi4gSSBuZWVkIHRvIHVuZGVyc3RhbmQgKmhvdyogdGhleSdyZSB1c2VkLiBBcmUgdGhleSBwYXJ0IG9mIGEgcHVibGlzaGVkIEFQST8gQXJlIHRoZXkgaG9va3MgZm9yIHRyYWNpbmcgb3IgcGVyaGFwcyBmb3IgZXh0ZXJuYWwgbW9uaXRvcmluZyB0b29scz8gVGhlIGZhY3QgdGhleSBhcmUgbmFtZWQgaW4gdGhpcyB3YXkgc3Ryb25nbHkgc3VnZ2VzdHMgdGhleSBhcmUgbGlua2VkIHRvIHRoZSBQTVUgYW5kIHJlbGF0ZWQgY291bnRlcnMuXG5cbk15IGZpcnN0IHBvcnQgb2YgY2FsbCBpcyB0byBhYnNvbHV0ZWx5IGRyaWxsIGRvd24gaW50byB0aGVpciBkZWZpbml0aW9ucy4gSSdsbCBuZWVkIHRvIGxvY2F0ZSB0aGUgcmVsZXZhbnQgaGVhZGVycyBhbmQgc291cmNlIGZpbGVzLiBJIHdhbnQgdG8gc2VlIHRoZSBmdW5jdGlvbiBzaWduYXR1cmVzLCBwYXJhbWV0ZXIgdHlwZXMsIHJldHVybiB2YWx1ZXMsIGFuZCwgbW9zdCBjcml0aWNhbGx5LCB0aGUgZnVuY3Rpb24gYm9kaWVzLiBJJ20gbG9va2luZyBmb3IgY2x1ZXMgYWJvdXQgdGhlIGRhdGEgdGhleSBwcm9jZXNzLCB0aGUgc2lkZSBlZmZlY3RzIHRoZXkgaGF2ZSwgYW5kIHRoZWlyIGludGVuZGVkIHJvbGUgd2l0aGluIHRoZSBLVk0gc3lzdGVtLiBBcmUgdGhleSBjYWxsZWQgZnJvbSB0aGUgdkNQVSBleGVjdXRpb24gcGF0aCwgZnJvbSBhIGRlZGljYXRlZCBQTVUgaW50ZXJydXB0IGhhbmRsZXIsIG9yIGZyb20gc29tZXdoZXJlIGVsc2UgZW50aXJlbHk/IEkgbmVlZCB0aGUgY29tcGxldGUgcGljdHVyZSB0byBmdWxseSB1bmRlcnN0YW5kIHRoZWlyIGZ1bmN0aW9uIGFuZCBzaWduaWZpY2FuY2UuIExvY2F0aW5nIHRoZXNlIGRlZmludGlvbnMgd2lsbCBiZSBteSBmaXJzdCBzdGVwLlxuXG5cbiIsIklucHV0VG9rZW5zIjo0MDUyLCJPdXRwdXRUb2tlbnMiOjIzLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MzksIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDctMjVUMjM6MTI6NTkuMDU0Njc4NzM1WiIsIlNlcSI6OCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjIyMDk2MzM3MTQsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwia3ZtX3BtdV9pbnN0cnVjdGlvbl9yZXRpcmVkXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImFyY2gveDg2L2t2bS9wbXUuYz0xMTM1PXN0YXRpYyB2b2lkIGt2bV9wbXVfdHJpZ2dlcl9ldmVudChzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUsXFxuLS1cXG5hcmNoL3g4Ni9rdm0vcG11LmMtMTE2My1cXG5hcmNoL3g4Ni9rdm0vcG11LmM6MTE2NDp2b2lkIGt2bV9wbXVfaW5zdHJ1Y3Rpb25fcmV0aXJlZChzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUpXFxuYXJjaC94ODYva3ZtL3BtdS5jLTExNjUte1xcbi0tXFxuYXJjaC94ODYva3ZtL3BtdS5jLTExNjctfVxcbmFyY2gveDg2L2t2bS9wbXUuYzoxMTY4OkVYUE9SVF9TWU1CT0xfRk9SX0tWTV9JTlRFUk5BTChrdm1fcG11X2luc3RydWN0aW9uX3JldGlyZWQpO1xcbmFyY2gveDg2L2t2bS9wbXUuYy0xMTY5LVxcbi0tXFxuYXJjaC94ODYva3ZtL3BtdS5oPTI4ND1pbnQga3ZtX3ZtX2lvY3RsX3NldF9wbXVfZXZlbnRfZmlsdGVyKHN0cnVjdCBrdm0gKmt2bSwgdm9pZCBfX3VzZXIgKmFyZ3ApO1xcbmFyY2gveDg2L2t2bS9wbXUuaDoyODU6dm9pZCBrdm1fcG11X2luc3RydWN0aW9uX3JldGlyZWQoc3RydWN0IGt2bV92Y3B1ICp2Y3B1KTtcXG5hcmNoL3g4Ni9rdm0vcG11LmgtMjg2LXZvaWQga3ZtX3BtdV9icmFuY2hfcmV0aXJlZChzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUpO1xcbi0tXFxuYXJjaC94ODYva3ZtL3N2bS9uZXN0ZWQuYz0xMTE0PWludCBuZXN0ZWRfc3ZtX3ZtcnVuKHN0cnVjdCBrdm1fdmNwdSAqdmNwdSlcXG4tLVxcbmFyY2gveDg2L2t2bS9zdm0vbmVzdGVkLmMtMTE5Ny1cXHQgKi9cXG5hcmNoL3g4Ni9rdm0vc3ZtL25lc3RlZC5jOjExOTg6XFx0a3ZtX3BtdV9pbnN0cnVjdGlvbl9yZXRpcmVkKHZjcHUpO1xcbmFyY2gveDg2L2t2bS9zdm0vbmVzdGVkLmMtMTE5OS1cXHRyZXR1cm4gMTtcXG4tLVxcbmFyY2gveDg2L2t2bS94ODYuYz05MjYzPWludCBrdm1fc2tpcF9lbXVsYXRlZF9pbnN0cnVjdGlvbihzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUpXFxuLS1cXG5hcmNoL3g4Ni9rdm0veDg2LmMtOTI3MS1cXG5hcmNoL3g4Ni9rdm0veDg2LmM6OTI3MjpcXHRrdm1fcG11X2luc3RydWN0aW9uX3JldGlyZWQodmNwdSk7XFxuYXJjaC94ODYva3ZtL3g4Ni5jLTkyNzMtXFxuLS1cXG5hcmNoL3g4Ni9rdm0veDg2LmM9OTQyMT1pbnQgeDg2X2VtdWxhdGVfaW5zdHJ1Y3Rpb24oc3RydWN0IGt2bV92Y3B1ICp2Y3B1LCBncGFfdCBjcjJfb3JfZ3BhLFxcbi0tXFxuYXJjaC94ODYva3ZtL3g4Ni5jLTk2MTYtXFx0XFx0ICAgIGV4Y2VwdGlvbl90eXBlKGN0eHQtXFx1MDAzZWV4Y2VwdGlvbi52ZWN0b3IpID09IEVYQ1BUX1RSQVApIHtcXG5hcmNoL3g4Ni9rdm0veDg2LmM6OTYxNzpcXHRcXHRcXHRrdm1fcG11X2luc3RydWN0aW9uX3JldGlyZWQodmNwdSk7XFxuYXJjaC94ODYva3ZtL3g4Ni5jLTk2MTgtXFx0XFx0XFx0aWYgKGN0eHQtXFx1MDAzZWlzX2JyYW5jaClcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMjVUMjM6MTM6MDEuMjY0MzE4NDg5WiIsIlNlcSI6OSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6MzQwMTQxNDE4NiwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipBbmFseXppbmcgdGhlIEtWTSBQTVUgRXZlbnQgSGFuZGxpbmcqKlxuXG5Pa2F5LCBzbyBJJ20gbG9va2luZyBhdCBob3cgdGhlIEtWTSBQZXJmb3JtYW5jZSBNb25pdG9yaW5nIFVuaXQgKFBNVSkgaGFuZGxlcyBpbnN0cnVjdGlvbiByZXRpcmVtZW50LiBga3ZtX3BtdV9pbnN0cnVjdGlvbl9yZXRpcmVkYCBwb3BzIHVwIGluIGEgZmV3IGtleSBwbGFjZXM6IGBuZXN0ZWRfc3ZtX3ZtcnVuYCwgYGt2bV9za2lwX2VtdWxhdGVkX2luc3RydWN0aW9uYCwgYW5kIGB4ODZfZW11bGF0ZV9pbnN0cnVjdGlvbmAuIFllcCwgdGhvc2UgYXJlIGFsbCByaWdodCBpbiB0aGUgaGVhcnQgb2YgY29yZSBLVk0gbG9naWMg4oCTIG5vIHN1cnByaXNlcyB0aGVyZS5cblxuVGhlIHBhdGNoIGZvY3VzZXMgb24gYGt2bV9wbXVfaW5jcl9jb3VudGVyYC4gTm93LCB0aGF0IGZ1bmN0aW9uIGdldHMgY2FsbGVkIGJ5IGBrdm1fcG11X3RyaWdnZXJfZXZlbnRgLCB3aGljaCBpcywgaW4gdHVybiwgY2FsbGVkIGJ5IGJvdGggYGt2bV9wbXVfaW5zdHJ1Y3Rpb25fcmV0aXJlZGAgYW5kIGBrdm1fcG11X2JyYW5jaF9yZXRpcmVkYC4gSW50ZXJlc3RpbmcuIEdpdmVuIHRoZSBjb250ZXh0LCBpdCBtYWtlcyBzZW5zZSB0byBjb25maXJtIGlmIHRoZSBsYXR0ZXIgaXMgcmVsZXZhbnQgdG8gdGhpcyBjb2RlLiBMZXQgbWUgcXVpY2tseSBzaGlmdCBteSBmb2N1cyBhbmQgZXhwbG9yZSBga3ZtX3BtdV9icmFuY2hfcmV0aXJlZGAuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjUxODEsIk91dHB1dFRva2VucyI6MjMsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoxMjYsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDctMjVUMjM6MTM6MDQuNjY1NzM1Mzk1WiIsIlNlcSI6MTAsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoyNTgxOTc5NTU3LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcImt2bV9wbXVfYnJhbmNoX3JldGlyZWRcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiYXJjaC94ODYva3ZtL3BtdS5jPTExNjg9RVhQT1JUX1NZTUJPTF9GT1JfS1ZNX0lOVEVSTkFMKGt2bV9wbXVfaW5zdHJ1Y3Rpb25fcmV0aXJlZCk7XFxuYXJjaC94ODYva3ZtL3BtdS5jLTExNjktXFxuYXJjaC94ODYva3ZtL3BtdS5jOjExNzA6dm9pZCBrdm1fcG11X2JyYW5jaF9yZXRpcmVkKHN0cnVjdCBrdm1fdmNwdSAqdmNwdSlcXG5hcmNoL3g4Ni9rdm0vcG11LmMtMTE3MS17XFxuLS1cXG5hcmNoL3g4Ni9rdm0vcG11LmMtMTE3My19XFxuYXJjaC94ODYva3ZtL3BtdS5jOjExNzQ6RVhQT1JUX1NZTUJPTF9GT1JfS1ZNX0lOVEVSTkFMKGt2bV9wbXVfYnJhbmNoX3JldGlyZWQpO1xcbmFyY2gveDg2L2t2bS9wbXUuYy0xMTc1LVxcbi0tXFxuYXJjaC94ODYva3ZtL3BtdS5oPTI4NT12b2lkIGt2bV9wbXVfaW5zdHJ1Y3Rpb25fcmV0aXJlZChzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUpO1xcbmFyY2gveDg2L2t2bS9wbXUuaDoyODY6dm9pZCBrdm1fcG11X2JyYW5jaF9yZXRpcmVkKHN0cnVjdCBrdm1fdmNwdSAqdmNwdSk7XFxuYXJjaC94ODYva3ZtL3BtdS5oLTI4Ny12b2lkIGt2bV9tZWRpYXRlZF9wbXVfbG9hZChzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUpO1xcbi0tXFxuYXJjaC94ODYva3ZtL3ZteC9uZXN0ZWQuYz0zNzc3PXN0YXRpYyBpbnQgbmVzdGVkX3ZteF9ydW4oc3RydWN0IGt2bV92Y3B1ICp2Y3B1LCBib29sIGxhdW5jaClcXG4tLVxcbmFyY2gveDg2L2t2bS92bXgvbmVzdGVkLmMtMzc5My1cXG5hcmNoL3g4Ni9rdm0vdm14L25lc3RlZC5jOjM3OTQ6XFx0a3ZtX3BtdV9icmFuY2hfcmV0aXJlZCh2Y3B1KTtcXG5hcmNoL3g4Ni9rdm0vdm14L25lc3RlZC5jLTM3OTUtXFxuLS1cXG5hcmNoL3g4Ni9rdm0veDg2LmM9OTQyMT1pbnQgeDg2X2VtdWxhdGVfaW5zdHJ1Y3Rpb24oc3RydWN0IGt2bV92Y3B1ICp2Y3B1LCBncGFfdCBjcjJfb3JfZ3BhLFxcbi0tXFxuYXJjaC94ODYva3ZtL3g4Ni5jLTk2MTgtXFx0XFx0XFx0aWYgKGN0eHQtXFx1MDAzZWlzX2JyYW5jaClcXG5hcmNoL3g4Ni9rdm0veDg2LmM6OTYxOTpcXHRcXHRcXHRcXHRrdm1fcG11X2JyYW5jaF9yZXRpcmVkKHZjcHUpO1xcbmFyY2gveDg2L2t2bS94ODYuYy05NjIwLVxcdFxcdFxcdGt2bV9yaXBfd3JpdGUodmNwdSwgY3R4dC1cXHUwMDNlZWlwKTtcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMjVUMjM6MTM6MDcuMjQ3NzI0NDEyWiIsIlNlcSI6MTEsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjM0NDM4OTc1NzUsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6Ik9rYXksIGxldCdzIHNlZSB3aGF0IHdlIGhhdmUgaGVyZS5cblxuKipBbmFseXppbmcgQ2FuZGlkYXRlIFN5bWJvbHMgZm9yIEtWTSBQZXJmb3JtYW5jZSBNb25pdG9yaW5nKipcblxuTXkgaW5pdGlhbCBhc3Nlc3NtZW50IGlzIHRoYXQgYGt2bV9wbXVfaW5zdHJ1Y3Rpb25fcmV0aXJlZGAgYW5kIGBrdm1fcG11X2JyYW5jaF9yZXRpcmVkYCBhcmUgc3Ryb25nIHBvc3NpYmlsaXRpZXMgZm9yIGluY2x1c2lvbiB3aXRoaW4gYEZvY3VzU3ltYm9sc2AuIFRoYXQgbWFrZXMgc2Vuc2U7IHRoZXkgc2VlbSB0byBiZSBrZXkgcGVyZm9ybWFuY2UgaW5kaWNhdG9ycyB3aXRoaW4gdGhlIEtWTSBlbnZpcm9ubWVudC4gSSBzaG91bGQgZGVmaW5pdGVseSBhZGQgdGhlbS5cblxuQnV0LCBiZWZvcmUgSSBjb21taXQsIEkgd2FudCB0byBiZSB0aG9yb3VnaC4gQXJlIHRoZXJlIGFueSBvdGhlciByZWxldmFudCBmdW5jdGlvbnMsIGFueXRoaW5nIGVsc2UgdGhhdCBtaWdodCBiZSBpbXBvcnRhbnQgYnV0IG5vdCBzbyBvYnZpb3VzPyBJIGFsd2F5cyB0cnkgdG8gY29uc2lkZXIgZXZlcnl0aGluZy5cblxuQWgsIHRoZSBwYXRjaCBhbHNvIG1vZGlmaWVzIGBrdm1fcG11X2luY3JfY291bnRlcmAuIFRoYXQncyBpbnRlcmVzdGluZy4gSSBzaG91bGQgaW52ZXN0aWdhdGUgdGhhdCBmdW5jdGlvbidzIGNhbGxlcnMuIElzIGBrdm1fcG11X2luY3JfY291bnRlcmAgdXNlZCBhbnl3aGVyZSBlbHNlPyBLbm93aW5nIGhvdyB3aWRlbHkgaXQncyB1c2VkIGdpdmVzIG1lIG1vcmUgY29udGV4dCBhbmQgaGVscHMgZW5zdXJlIEknbSBub3QgbWlzc2luZyBhbnkgY3JpdGljYWwgcGllY2VzIG9mIHRoZSBwZXJmb3JtYW5jZSBwaWN0dXJlLiBJdCBpcyBrZXkgdG8gdW5kZXJzdGFuZCB0aGUgZGF0YSBiZWZvcmUgZGVjaWRpbmcgd2hhdCB0byBtb25pdG9yLlxuXG5cbiIsIklucHV0VG9rZW5zIjo2MTY0LCJPdXRwdXRUb2tlbnMiOjIzLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6NzgsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDctMjVUMjM6MTM6MTAuNjkxNjI0NTQ3WiIsIlNlcSI6MTIsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoyMzY3NzA2NTI2LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcImt2bV9wbXVfaW5jcl9jb3VudGVyXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImFyY2gveDg2L2t2bS9wbXUuYz0xMDU5PXN0YXRpYyBib29sIHBtY19pc19wbWlfZW5hYmxlZChzdHJ1Y3Qga3ZtX3BtYyAqcG1jKVxcbi0tXFxuYXJjaC94ODYva3ZtL3BtdS5jLTEwNzAtXFxuYXJjaC94ODYva3ZtL3BtdS5jOjEwNzE6c3RhdGljIHZvaWQga3ZtX3BtdV9pbmNyX2NvdW50ZXIoc3RydWN0IGt2bV9wbWMgKnBtYylcXG5hcmNoL3g4Ni9rdm0vcG11LmMtMTA3Mi17XFxuLS1cXG5hcmNoL3g4Ni9rdm0vcG11LmM9MTEzNT1zdGF0aWMgdm9pZCBrdm1fcG11X3RyaWdnZXJfZXZlbnQoc3RydWN0IGt2bV92Y3B1ICp2Y3B1LFxcbi0tXFxuYXJjaC94ODYva3ZtL3BtdS5jLTExNTgtXFxuYXJjaC94ODYva3ZtL3BtdS5jOjExNTk6XFx0XFx0a3ZtX3BtdV9pbmNyX2NvdW50ZXIocG1jKTtcXG5hcmNoL3g4Ni9rdm0vcG11LmMtMTE2MC1cXHR9XFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTI1VDIzOjEzOjEzLjA1OTMzNjQ0M1oiLCJTZXEiOjEzLCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjozMzcyMTkzNzI5LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJIZXJlJ3MgbXkgdGhvdWdodCBwcm9jZXNzLCBkaXN0aWxsZWQ6XG5cbioqRm9jdXNpbmcgb24gUGVyZm9ybWFuY2UgTW9uaXRvcmluZyBpbiBLVk0qKlxuXG5Pa2F5LCBzbyBJJ20gaG9uaW5nIGluIG9uIHRoZSBwZXJmb3JtYW5jZSBtb25pdG9yaW5nIGFzcGVjdCB3aXRoaW4gS1ZNLiBSaWdodCBub3csIEknbSB6ZXJvaW5nIGluIG9uIGEgY3JpdGljYWwgZnVuY3Rpb246IGBrdm1fcG11X3RyaWdnZXJfZXZlbnRgLiBJdCBzZWVtcyBsaWtlIHRoZSBjb3JlIG9mIGhvdyBLVk0gaGFuZGxlcyB0aGVzZSBwZXJmb3JtYW5jZSBldmVudHMuIEkgbmVlZCB0byB1bmRlcnN0YW5kIGhvdyBpdCdzIGludm9rZWQuXG5cbkZyb20gYSBxdWljayBzY2FuIG9mIHRoZSBjb2RlLCBpdCBsb29rcyBsaWtlIGBrdm1fcG11X3RyaWdnZXJfZXZlbnRgIGlzIGRpcmVjdGx5IGNhbGxlZCBvbmx5IGZyb20gdHdvIG90aGVyIGZ1bmN0aW9uczogYGt2bV9wbXVfaW5zdHJ1Y3Rpb25fcmV0aXJlZGAgYW5kIGBrdm1fcG11X2JyYW5jaF9yZXRpcmVkYC4gVGhhdCBuYXJyb3dzIGRvd24gdGhlIGVudHJ5IHBvaW50czsgdGhvc2UgYXJlIHRoZSBwb2ludHMgSSBuZWVkIHRvIGV4YW1pbmUgY2xvc2VseSB0byBzZWUgd2hhdCdzIGhhcHBlbmluZy5cblxuTXkgbmV4dCBzdGVwIGlzIHRvIHF1aWNrbHkgY2hlY2sgdGhlIEtjb25maWcgY29uZmlndXJhdGlvbiBvcHRpb25zIHJlbGF0ZWQgdG8gS1ZNLiBJIG5lZWQgdG8gbWFrZSBzdXJlIHRoYXQgdGhlIHJlbGV2YW50IFBNVSAoUGVyZm9ybWFuY2UgTW9uaXRvcmluZyBVbml0KSBmZWF0dXJlcyBhcmUgYWN0dWFsbHkgZW5hYmxlZC4gTm8gcG9pbnQgaW4gZGlnZ2luZyBmdXJ0aGVyIGlmIHRoZSB1bmRlcmx5aW5nIHN1cHBvcnQgaXMgZGlzYWJsZWQgYXQgY29tcGlsZSB0aW1lLlxuXG5cbiIsIklucHV0VG9rZW5zIjo2NzM2LCJPdXRwdXRUb2tlbnMiOjE3LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6NzIsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDctMjVUMjM6MTM6MTYuNDMxNTMyNTYyWiIsIlNlcSI6MTQsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoyMTA2NTQwMjUwLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcImNvbmZpZyBLVk1cIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiYXJjaC9hcm02NC9rdm0vS2NvbmZpZz0xOD1pZiBWSVJUVUFMSVpBVElPTlxcbmFyY2gvYXJtNjQva3ZtL0tjb25maWctMTktXFxuYXJjaC9hcm02NC9rdm0vS2NvbmZpZzoyMDptZW51Y29uZmlnIEtWTVxcbmFyY2gvYXJtNjQva3ZtL0tjb25maWctMjEtXFx0Ym9vbCBcXFwiS2VybmVsLWJhc2VkIFZpcnR1YWwgTWFjaGluZSAoS1ZNKSBzdXBwb3J0XFxcIlxcbi0tXFxuYXJjaC9sb29uZ2FyY2gva3ZtL0tjb25maWc9MTg9aWYgVklSVFVBTElaQVRJT05cXG5hcmNoL2xvb25nYXJjaC9rdm0vS2NvbmZpZy0xOS1cXG5hcmNoL2xvb25nYXJjaC9rdm0vS2NvbmZpZzoyMDpjb25maWcgS1ZNXFxuYXJjaC9sb29uZ2FyY2gva3ZtL0tjb25maWctMjEtXFx0dHJpc3RhdGUgXFxcIktlcm5lbC1iYXNlZCBWaXJ0dWFsIE1hY2hpbmUgKEtWTSkgc3VwcG9ydFxcXCJcXG4tLVxcbmFyY2gvbWlwcy9rdm0vS2NvbmZpZz0xNj1pZiBWSVJUVUFMSVpBVElPTlxcbmFyY2gvbWlwcy9rdm0vS2NvbmZpZy0xNy1cXG5hcmNoL21pcHMva3ZtL0tjb25maWc6MTg6Y29uZmlnIEtWTVxcbmFyY2gvbWlwcy9rdm0vS2NvbmZpZy0xOS1cXHR0cmlzdGF0ZSBcXFwiS2VybmVsLWJhc2VkIFZpcnR1YWwgTWFjaGluZSAoS1ZNKSBzdXBwb3J0XFxcIlxcbi0tXFxuYXJjaC9taXBzL2t2bS9LY29uZmlnLTMwLVxcbmFyY2gvbWlwcy9rdm0vS2NvbmZpZzozMTpjb25maWcgS1ZNX01JUFNfREVCVUdfQ09QMF9DT1VOVEVSU1xcbmFyY2gvbWlwcy9rdm0vS2NvbmZpZy0zMi1cXHRib29sIFxcXCJNYWludGFpbiBjb3VudGVycyBmb3IgQ09QMCBhY2Nlc3Nlc1xcXCJcXG4tLVxcbmFyY2gvcG93ZXJwYy9rdm0vS2NvbmZpZz0xOD1pZiBWSVJUVUFMSVpBVElPTlxcbmFyY2gvcG93ZXJwYy9rdm0vS2NvbmZpZy0xOS1cXG5hcmNoL3Bvd2VycGMva3ZtL0tjb25maWc6MjA6Y29uZmlnIEtWTVxcbmFyY2gvcG93ZXJwYy9rdm0vS2NvbmZpZy0yMS1cXHRib29sXFxuLS1cXG5hcmNoL3Bvd2VycGMva3ZtL0tjb25maWctMjUtXFxuYXJjaC9wb3dlcnBjL2t2bS9LY29uZmlnOjI2OmNvbmZpZyBLVk1fQk9PSzNTX0hBTkRMRVJcXG5hcmNoL3Bvd2VycGMva3ZtL0tjb25maWctMjctXFx0Ym9vbFxcbmFyY2gvcG93ZXJwYy9rdm0vS2NvbmZpZy0yOC1cXG5hcmNoL3Bvd2VycGMva3ZtL0tjb25maWc6Mjk6Y29uZmlnIEtWTV9CT09LM1NfMzJfSEFORExFUlxcbmFyY2gvcG93ZXJwYy9rdm0vS2NvbmZpZy0zMC1cXHRib29sXFxuLS1cXG5hcmNoL3Bvd2VycGMva3ZtL0tjb25maWctMzMtXFxuYXJjaC9wb3dlcnBjL2t2bS9LY29uZmlnOjM0OmNvbmZpZyBLVk1fQk9PSzNTXzY0X0hBTkRMRVJcXG5hcmNoL3Bvd2VycGMva3ZtL0tjb25maWctMzUtXFx0Ym9vbFxcbi0tXFxuYXJjaC9wb3dlcnBjL2t2bS9LY29uZmlnLTM3LVxcbmFyY2gvcG93ZXJwYy9rdm0vS2NvbmZpZzozODpjb25maWcgS1ZNX0JPT0szU19QUl9QT1NTSUJMRVxcbmFyY2gvcG93ZXJwYy9rdm0vS2NvbmZpZy0zOS1cXHRib29sXFxuLS1cXG5hcmNoL3Bvd2VycGMva3ZtL0tjb25maWctNDEtXFxuYXJjaC9wb3dlcnBjL2t2bS9LY29uZmlnOjQyOmNvbmZpZyBLVk1fQk9PSzNTX0hWX1BPU1NJQkxFXFxuYXJjaC9wb3dlcnBjL2t2bS9LY29uZmlnLTQzLVxcdGJvb2xcXG5hcmNoL3Bvd2VycGMva3ZtL0tjb25maWctNDQtXFxuYXJjaC9wb3dlcnBjL2t2bS9LY29uZmlnOjQ1OmNvbmZpZyBLVk1fQk9PSzNTXzMyXFxuYXJjaC9wb3dlcnBjL2t2bS9LY29uZmlnLTQ2LVxcdHRyaXN0YXRlIFxcXCJLVk0gc3VwcG9ydCBmb3IgUG93ZXJQQyBib29rM3NfMzIgcHJvY2Vzc29yc1xcXCJcXG4tLVxcbmFyY2gvcG93ZXJwYy9rdm0vS2NvbmZpZy02MS1cXG5hcmNoL3Bvd2VycGMva3ZtL0tjb25maWc6NjI6Y29uZmlnIEtWTV9CT09LM1NfNjRcXG5hcmNoL3Bvd2VycGMva3ZtL0tjb25maWctNjMtXFx0dHJpc3RhdGUgXFxcIktWTSBzdXBwb3J0IGZvciBQb3dlclBDIGJvb2szc182NCBwcm9jZXNzb3JzXFxcIlxcbi0tXFxuYXJjaC9wb3dlcnBjL2t2bS9LY29uZmlnLTc4LVxcbmFyY2gvcG93ZXJwYy9rdm0vS2NvbmZpZzo3OTpjb25maWcgS1ZNX0JPT0szU182NF9IVlxcbmFyY2gvcG93ZXJwYy9rdm0vS2NvbmZpZy04MC1cXHR0cmlzdGF0ZSBcXFwiS1ZNIGZvciBQT1dFUjcgYW5kIGxhdGVyIHVzaW5nIGh5cGVydmlzb3IgbW9kZSBpbiBob3N0XFxcIlxcbi0tXFxuYXJjaC9wb3dlcnBjL2t2bS9LY29uZmlnLTk5LVxcbmFyY2gvcG93ZXJwYy9rdm0vS2NvbmZpZzoxMDA6Y29uZmlnIEtWTV9CT09LM1NfNjRfUFJcXG5hcmNoL3Bvd2VycGMva3ZtL0tjb25maWctMTAxLVxcdHRyaXN0YXRlIFxcXCJLVk0gc3VwcG9ydCB3aXRob3V0IHVzaW5nIGh5cGVydmlzb3IgbW9kZSBpbiBob3N0XFxcIlxcbi0tXFxuYXJjaC9wb3dlcnBjL2t2bS9LY29uZmlnLTEyNS1cXG5hcmNoL3Bvd2VycGMva3ZtL0tjb25maWc6MTI2OmNvbmZpZyBLVk1fQk9PSzNTX0hWX0VYSVRfVElNSU5HXFxuYXJjaC9wb3dlcnBjL2t2bS9LY29uZmlnLTEyNy1cXHRib29sXFxuYXJjaC9wb3dlcnBjL2t2bS9LY29uZmlnLTEyOC1cXG5hcmNoL3Bvd2VycGMva3ZtL0tjb25maWc6MTI5OmNvbmZpZyBLVk1fQk9PSzNTX0hWX1A5X1RJTUlOR1xcbmFyY2gvcG93ZXJwYy9rdm0vS2NvbmZpZy0xMzAtXFx0Ym9vbCBcXFwiRGV0YWlsZWQgdGltaW5nIGZvciB0aGUgUDkgZW50cnkgcG9pbnRcXFwiXFxuLS1cXG5hcmNoL3Bvd2VycGMva3ZtL0tjb25maWctMTQxLVxcbmFyY2gvcG93ZXJwYy9rdm0vS2NvbmZpZzoxNDI6Y29uZmlnIEtWTV9CT09LM1NfSFZfUDhfVElNSU5HXFxuYXJjaC9wb3dlcnBjL2t2bS9LY29uZmlnLTE0My1cXHRib29sIFxcXCJEZXRhaWxlZCB0aW1pbmcgZm9yIGh5cGVydmlzb3IgcmVhbC1tb2RlIGNvZGUgKGZvciBQT1dFUjgpXFxcIlxcbi0tXFxuYXJjaC9wb3dlcnBjL2t2bS9LY29uZmlnLTE1Ni1cXG5hcmNoL3Bvd2VycGMva3ZtL0tjb25maWc6MTU3OmNvbmZpZyBLVk1fQk9PSzNTX0hWX05FU1RFRF9QTVVfV09SS0FST1VORFxcbmFyY2gvcG93ZXJwYy9rdm0vS2NvbmZpZy0xNTgtXFx0Ym9vbCBcXFwiTmVzdGVkIEwwIGhvc3Qgd29ya2Fyb3VuZCBmb3IgTDEgS1ZNIGhvc3QgUE1VIGhhbmRsaW5nIGJ1Z1xcXCIgaWYgRVhQRVJUXFxuLS1cXG5hcmNoL3Bvd2VycGMva3ZtL0tjb25maWctMTcxLVxcbmFyY2gvcG93ZXJwYy9rdm0vS2NvbmZpZzoxNzI6Y29uZmlnIEtWTV9CT09LM1NfSFZfUE1VXFxuYXJjaC9wb3dlcnBjL2t2bS9LY29uZmlnLTE3My1cXHR0cmlzdGF0ZSBcXFwiSHlwZXJ2aXNvciBQZXJmIGV2ZW50cyBmb3IgS1ZNIEJvb2szcy1IVlxcXCJcXG4tLVxcbmFyY2gvcG93ZXJwYy9rdm0vS2NvbmZpZy0xODMtXFxuYXJjaC9wb3dlcnBjL2t2bS9LY29uZmlnOjE4NDpjb25maWcgS1ZNX0JPT0tFX0hWXFxuYXJjaC9wb3dlcnBjL2t2bS9LY29uZmlnLTE4NS1cXHRib29sXFxuYXJjaC9wb3dlcnBjL2t2bS9LY29uZmlnLTE4Ni1cXG5hcmNoL3Bvd2VycGMva3ZtL0tjb25maWc6MTg3OmNvbmZpZyBLVk1fRVhJVF9USU1JTkdcXG5hcmNoL3Bvd2VycGMva3ZtL0tjb25maWctMTg4LVxcdGJvb2wgXFxcIkRldGFpbGVkIGV4aXQgdGltaW5nXFxcIlxcbi0tXFxuYXJjaC9wb3dlcnBjL2t2bS9LY29uZmlnLTE5Ny1cXG5hcmNoL3Bvd2VycGMva3ZtL0tjb25maWc6MTk4OmNvbmZpZyBLVk1fRTUwMFYyXFxuYXJjaC9wb3dlcnBjL2t2bS9LY29uZmlnLTE5OS1cXHRib29sIFxcXCJLVk0gc3VwcG9ydCBmb3IgUG93ZXJQQyBFNTAwdjIgcHJvY2Vzc29yc1xcXCJcXG4tLVxcbmFyY2gvcG93ZXJwYy9rdm0vS2NvbmZpZy0yMTItXFxuYXJjaC9wb3dlcnBjL2t2bS9LY29uZmlnOjIxMzpjb25maWcgS1ZNX0U1MDBNQ1xcbmFyY2gvcG93ZXJwYy9rdm0vS2NvbmZpZy0yMTQtXFx0Ym9vbCBcXFwiS1ZNIHN1cHBvcnQgZm9yIFBvd2VyUEMgRTUwME1DL0U1NTAwL0U2NTAwIHByb2Nlc3NvcnNcXFwiXFxuLS1cXG5hcmNoL3Bvd2VycGMva3ZtL0tjb25maWctMjI4LVxcbmFyY2gvcG93ZXJwYy9rdm0vS2NvbmZpZzoyMjk6Y29uZmlnIEtWTV9NUElDXFxuYXJjaC9wb3dlcnBjL2t2bS9LY29uZmlnLTIzMC1cXHRib29sIFxcXCJLVk0gaW4ta2VybmVsIE1QSUMgZW11bGF0aW9uXFxcIlxcbi0tXFxuYXJjaC9wb3dlcnBjL2t2bS9LY29uZmlnLTI0MC1cXG5hcmNoL3Bvd2VycGMva3ZtL0tjb25maWc6MjQxOmNvbmZpZyBLVk1fWElDU1xcbmFyY2gvcG93ZXJwYy9rdm0vS2NvbmZpZy0yNDItXFx0Ym9vbCBcXFwiS1ZNIGluLWtlcm5lbCBYSUNTIGVtdWxhdGlvblxcXCJcXG4tLVxcbmFyY2gvcG93ZXJwYy9rdm0vS2NvbmZpZy0yNTAtXFxuYXJjaC9wb3dlcnBjL2t2bS9LY29uZmlnOjI1MTpjb25maWcgS1ZNX1hJVkVcXG5hcmNoL3Bvd2VycGMva3ZtL0tjb25maWctMjUyLVxcdGJvb2xcXG4tLVxcbmFyY2gvcG93ZXJwYy9wbGF0Zm9ybXMvS2NvbmZpZz0yMj1zb3VyY2UgXFxcImFyY2gvcG93ZXJwYy9wbGF0Zm9ybXMvbWljcm93YXR0L0tjb25maWdcXFwiXFxuYXJjaC9wb3dlcnBjL3BsYXRmb3Jtcy9LY29uZmlnLTIzLVxcbmFyY2gvcG93ZXJwYy9wbGF0Zm9ybXMvS2NvbmZpZzoyNDpjb25maWcgS1ZNX0dVRVNUXFxuYXJjaC9wb3dlcnBjL3BsYXRmb3Jtcy9LY29uZmlnLTI1LVxcdGJvb2wgXFxcIktWTSBHdWVzdCBzdXBwb3J0XFxcIlxcbi0tXFxuYXJjaC9yaXNjdi9rdm0vS2NvbmZpZz0xOD1pZiBWSVJUVUFMSVpBVElPTlxcbmFyY2gvcmlzY3Yva3ZtL0tjb25maWctMTktXFxuYXJjaC9yaXNjdi9rdm0vS2NvbmZpZzoyMDpjb25maWcgS1ZNXFxuYXJjaC9yaXNjdi9rdm0vS2NvbmZpZy0yMS1cXHR0cmlzdGF0ZSBcXFwiS2VybmVsLWJhc2VkIFZpcnR1YWwgTWFjaGluZSAoS1ZNKSBzdXBwb3J0XFxcIlxcbi0tXFxuYXJjaC9zMzkwL2t2bS9LY29uZmlnPTE3PWlmIFZJUlRVQUxJWkFUSU9OXFxuYXJjaC9zMzkwL2t2bS9LY29uZmlnLTE4LVxcbmFyY2gvczM5MC9rdm0vS2NvbmZpZzoxOTpjb25maWcgS1ZNXFxuYXJjaC9zMzkwL2t2bS9LY29uZmlnLTIwLVxcdGRlZl90cmlzdGF0ZSB5XFxuLS1cXG5hcmNoL3MzOTAva3ZtL0tjb25maWctNDYtXFxuYXJjaC9zMzkwL2t2bS9LY29uZmlnOjQ3OmNvbmZpZyBLVk1fUzM5MF9VQ09OVFJPTFxcbmFyY2gvczM5MC9rdm0vS2NvbmZpZy00OC1cXHRib29sIFxcXCJVc2Vyc3BhY2UgY29udHJvbGxlZCB2aXJ0dWFsIG1hY2hpbmVzXFxcIlxcbi0tXFxuYXJjaC94ODYvS2NvbmZpZz04MjY9c291cmNlIFxcXCJhcmNoL3g4Ni94ZW4vS2NvbmZpZ1xcXCJcXG5hcmNoL3g4Ni9LY29uZmlnLTgyNy1cXG5hcmNoL3g4Ni9LY29uZmlnOjgyODpjb25maWcgS1ZNX0dVRVNUXFxuYXJjaC94ODYvS2NvbmZpZy04MjktXFx0Ym9vbCBcXFwiS1ZNIEd1ZXN0IHN1cHBvcnQgKGluY2x1ZGluZyBrdm1jbG9jaylcXFwiXFxuLS1cXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZz0xOD1pZiBWSVJUVUFMSVpBVElPTlxcbmFyY2gveDg2L2t2bS9LY29uZmlnLTE5LVxcbmFyY2gveDg2L2t2bS9LY29uZmlnOjIwOmNvbmZpZyBLVk1fWDg2XFxuYXJjaC94ODYva3ZtL0tjb25maWctMjEtXFx0ZGVmX3RyaXN0YXRlIEtWTSBpZiAoS1ZNX0lOVEVMICE9IG4gfHwgS1ZNX0FNRCAhPSBuKVxcbi0tXFxuYXJjaC94ODYva3ZtL0tjb25maWctNTEtXFxuYXJjaC94ODYva3ZtL0tjb25maWc6NTI6Y29uZmlnIEtWTVxcbmFyY2gveDg2L2t2bS9LY29uZmlnLTUzLVxcdHRyaXN0YXRlIFxcXCJLZXJuZWwtYmFzZWQgVmlydHVhbCBNYWNoaW5lIChLVk0pIHN1cHBvcnRcXFwiXFxuLS1cXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZy02OC1cXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZzo2OTpjb25maWcgS1ZNX1dFUlJPUlxcbmFyY2gveDg2L2t2bS9LY29uZmlnLTcwLVxcdGJvb2wgXFxcIkNvbXBpbGUgS1ZNIHdpdGggLVdlcnJvclxcXCJcXG4tLVxcbmFyY2gveDg2L2t2bS9LY29uZmlnLTgyLVxcbmFyY2gveDg2L2t2bS9LY29uZmlnOjgzOmNvbmZpZyBLVk1fU1dfUFJPVEVDVEVEX1ZNXFxuYXJjaC94ODYva3ZtL0tjb25maWctODQtXFx0Ym9vbCBcXFwiRW5hYmxlIHN1cHBvcnQgZm9yIEtWTSBzb2Z0d2FyZS1wcm90ZWN0ZWQgVk1zXFxcIlxcbi0tXFxuYXJjaC94ODYva3ZtL0tjb25maWctOTUtXFxuYXJjaC94ODYva3ZtL0tjb25maWc6OTY6Y29uZmlnIEtWTV9JTlRFTFxcbmFyY2gveDg2L2t2bS9LY29uZmlnLTk3LVxcdHRyaXN0YXRlIFxcXCJLVk0gZm9yIEludGVsIChhbmQgY29tcGF0aWJsZSkgcHJvY2Vzc29ycyBzdXBwb3J0XFxcIlxcbi0tXFxuYXJjaC94ODYva3ZtL0tjb25maWctMTA2LVxcbmFyY2gveDg2L2t2bS9LY29uZmlnOjEwNzpjb25maWcgS1ZNX0lOVEVMX1BST1ZFX1ZFXFxuYXJjaC94ODYva3ZtL0tjb25maWctMTA4LSAgICAgICAgYm9vbCBcXFwiQ2hlY2sgdGhhdCBndWVzdHMgZG8gbm90IHJlY2VpdmUgI1ZFIGV4Y2VwdGlvbnNcXFwiXFxuLS1cXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZz0xMjI9Y29uZmlnIFg4Nl9TR1hfS1ZNXFxuLS1cXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZy0xMzMtXFxuYXJjaC94ODYva3ZtL0tjb25maWc6MTM0OmNvbmZpZyBLVk1fSU5URUxfVERYXFxuYXJjaC94ODYva3ZtL0tjb25maWctMTM1LVxcdGJvb2wgXFxcIkludGVsIFRydXN0IERvbWFpbiBFeHRlbnNpb25zIChURFgpIHN1cHBvcnRcXFwiXFxuLS1cXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZy0xNDUtXFxuYXJjaC94ODYva3ZtL0tjb25maWc6MTQ2OmNvbmZpZyBLVk1fQU1EXFxuYXJjaC94ODYva3ZtL0tjb25maWctMTQ3LVxcdHRyaXN0YXRlIFxcXCJLVk0gZm9yIEFNRCBwcm9jZXNzb3JzIHN1cHBvcnRcXFwiXFxuLS1cXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZy0xNTUtXFxuYXJjaC94ODYva3ZtL0tjb25maWc6MTU2OmNvbmZpZyBLVk1fQU1EX1NFVlxcbmFyY2gveDg2L2t2bS9LY29uZmlnLTE1Ny1cXHRib29sIFxcXCJBTUQgU2VjdXJlIEVuY3J5cHRlZCBWaXJ0dWFsaXphdGlvbiAoU0VWKSBzdXBwb3J0XFxcIlxcbi0tXFxuYXJjaC94ODYva3ZtL0tjb25maWctMTcxLVxcbmFyY2gveDg2L2t2bS9LY29uZmlnOjE3Mjpjb25maWcgS1ZNX0lPQVBJQ1xcbmFyY2gveDg2L2t2bS9LY29uZmlnLTE3My1cXHRib29sIFxcXCJJL08gQVBJQywgUElDLCBhbmQgUElUIGVtdWxhdGlvblxcXCJcXG4tLVxcbmFyY2gveDg2L2t2bS9LY29uZmlnLTE4MS1cXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZzoxODI6Y29uZmlnIEtWTV9TTU1cXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZy0xODMtXFx0Ym9vbCBcXFwiU3lzdGVtIE1hbmFnZW1lbnQgTW9kZSBlbXVsYXRpb25cXFwiXFxuLS1cXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZy0xOTItXFxuYXJjaC94ODYva3ZtL0tjb25maWc6MTkzOmNvbmZpZyBLVk1fSFlQRVJWXFxuYXJjaC94ODYva3ZtL0tjb25maWctMTk0LVxcdGJvb2wgXFxcIlN1cHBvcnQgZm9yIE1pY3Jvc29mdCBIeXBlci1WIGVtdWxhdGlvblxcXCJcXG4tLVxcbmFyY2gveDg2L2t2bS9LY29uZmlnLTIwNi1cXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZzoyMDc6Y29uZmlnIEtWTV9YRU5cXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZy0yMDgtXFx0Ym9vbCBcXFwiU3VwcG9ydCBmb3IgWGVuIGh5cGVyY2FsbCBpbnRlcmZhY2VcXFwiXFxuLS1cXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZy0yMTUtXFxuYXJjaC94ODYva3ZtL0tjb25maWc6MjE2OmNvbmZpZyBLVk1fUFJPVkVfTU1VXFxuYXJjaC94ODYva3ZtL0tjb25maWctMjE3LVxcdGJvb2wgXFxcIlByb3ZlIEtWTSBNTVUgY29ycmVjdG5lc3NcXFwiXFxuLS1cXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZy0yMjgtXFxuYXJjaC94ODYva3ZtL0tjb25maWc6MjI5OmNvbmZpZyBLVk1fRVhURVJOQUxfV1JJVEVfVFJBQ0tJTkdcXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZy0yMzAtXFx0Ym9vbFxcbmFyY2gveDg2L2t2bS9LY29uZmlnLTIzMS1cXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZzoyMzI6Y29uZmlnIEtWTV9NQVhfTlJfVkNQVVNcXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZy0yMzMtXFx0aW50IFxcXCJNYXhpbXVtIG51bWJlciBvZiB2Q1BVcyBwZXIgS1ZNIGd1ZXN0XFxcIlxcbi0tXFxudmlydC9rdm0vS2NvbmZpZy0zLVxcbnZpcnQva3ZtL0tjb25maWc6NDpjb25maWcgS1ZNX0NPTU1PTlxcbnZpcnQva3ZtL0tjb25maWctNS0gICAgICAgYm9vbFxcbi0tXFxudmlydC9rdm0vS2NvbmZpZz0zOT1jb25maWcgTkVFRF9LVk1fRElSVFlfUklOR19XSVRIX0JJVE1BUFxcbi0tXFxudmlydC9rdm0vS2NvbmZpZy00Mi1cXG52aXJ0L2t2bS9LY29uZmlnOjQzOmNvbmZpZyBLVk1fTU1JT1xcbnZpcnQva3ZtL0tjb25maWctNDQtICAgICAgIGJvb2xcXG52aXJ0L2t2bS9LY29uZmlnLTQ1LVxcbnZpcnQva3ZtL0tjb25maWc6NDY6Y29uZmlnIEtWTV9BU1lOQ19QRlxcbnZpcnQva3ZtL0tjb25maWctNDctICAgICAgIGJvb2xcXG4tLVxcbnZpcnQva3ZtL0tjb25maWctNDktIyBUb2dnbGUgdG8gc3dpdGNoIGJldHdlZW4gZGlyZWN0IG5vdGlmaWNhdGlvbiBhbmQgYmF0Y2ggam9iXFxudmlydC9rdm0vS2NvbmZpZzo1MDpjb25maWcgS1ZNX0FTWU5DX1BGX1NZTkNcXG52aXJ0L2t2bS9LY29uZmlnLTUxLSAgICAgICBib29sXFxuLS1cXG52aXJ0L2t2bS9LY29uZmlnPTU5PWNvbmZpZyBIQVZFX0tWTV9DUFVfUkVMQVhfSU5URVJDRVBUXFxuLS1cXG52aXJ0L2t2bS9LY29uZmlnLTYxLVxcbnZpcnQva3ZtL0tjb25maWc6NjI6Y29uZmlnIEtWTV9WRklPXFxudmlydC9rdm0vS2NvbmZpZy02My0gICAgICAgYm9vbFxcbi0tXFxudmlydC9rdm0vS2NvbmZpZz02NT1jb25maWcgSEFWRV9LVk1fSU5WQUxJRF9XQUtFVVBTXFxuLS1cXG52aXJ0L2t2bS9LY29uZmlnLTY3LVxcbnZpcnQva3ZtL0tjb25maWc6Njg6Y29uZmlnIEtWTV9HRU5FUklDX0RJUlRZTE9HX1JFQURfUFJPVEVDVFxcbnZpcnQva3ZtL0tjb25maWctNjktICAgICAgIGJvb2xcXG52aXJ0L2t2bS9LY29uZmlnLTcwLVxcbnZpcnQva3ZtL0tjb25maWc6NzE6Y29uZmlnIEtWTV9HRU5FUklDX1BSRV9GQVVMVF9NRU1PUllcXG52aXJ0L2t2bS9LY29uZmlnLTcyLSAgICAgICBib29sXFxudmlydC9rdm0vS2NvbmZpZy03My1cXG52aXJ0L2t2bS9LY29uZmlnOjc0OmNvbmZpZyBLVk1fQ09NUEFUXFxudmlydC9rdm0vS2NvbmZpZy03NS0gICAgICAgZGVmX2Jvb2wgeVxcbi0tXFxudmlydC9rdm0vS2NvbmZpZz05MT1jb25maWcgSEFWRV9LVk1fUE1fTk9USUZJRVJcXG4tLVxcbnZpcnQva3ZtL0tjb25maWctOTMtXFxudmlydC9rdm0vS2NvbmZpZzo5NDpjb25maWcgS1ZNX0dFTkVSSUNfSEFSRFdBUkVfRU5BQkxJTkdcXG52aXJ0L2t2bS9LY29uZmlnLTk1LSAgICAgICBib29sXFxudmlydC9rdm0vS2NvbmZpZy05Ni1cXG52aXJ0L2t2bS9LY29uZmlnOjk3OmNvbmZpZyBLVk1fRUxJREVfVExCX0ZMVVNIX0lGX1lPVU5HXFxudmlydC9rdm0vS2NvbmZpZy05OC0gICAgICAgYm9vbFxcbnZpcnQva3ZtL0tjb25maWctOTktXFxudmlydC9rdm0vS2NvbmZpZzoxMDA6Y29uZmlnIEtWTV9NTVVfTE9DS0xFU1NfQUdJTkdcXG52aXJ0L2t2bS9LY29uZmlnLTEwMS0gICAgICAgYm9vbFxcbnZpcnQva3ZtL0tjb25maWctMTAyLVxcbnZpcnQva3ZtL0tjb25maWc6MTAzOmNvbmZpZyBLVk1fR0VORVJJQ19NRU1PUllfQVRUUklCVVRFU1xcbnZpcnQva3ZtL0tjb25maWctMTA0LSAgICAgICBib29sXFxudmlydC9rdm0vS2NvbmZpZy0xMDUtXFxudmlydC9rdm0vS2NvbmZpZzoxMDY6Y29uZmlnIEtWTV9HVUVTVF9NRU1GRFxcbnZpcnQva3ZtL0tjb25maWctMTA3LSAgICAgICBzZWxlY3QgWEFSUkFZX01VTFRJXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTI1VDIzOjEzOjE4LjUzODA3ODg2MloiLCJTZXEiOjE1LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjozNDMxNDEwNDQ1LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJPa2F5LCBoZXJlJ3MgbXkgdGFrZSBvbiB0aG9zZSB0aG91Z2h0cywgZnJhbWVkIGZyb20gbXkgcGVyc3BlY3RpdmU6XG5cbioqRGl2aW5nIGludG8gdGhlIEtWTSBQTVUgTGFuZHNjYXBlKipcblxuQWxyaWdodCwgdGhlIGNvbmZpZ3VyYXRpb24gaW4gcGxheSBpcyBkZWZpbml0ZWx5IGBLVk1gLiBMZXQncyBkaWcgaW4gYW5kIHNlZSBpZiB0aGVyZSBhcmUgb3RoZXIsIHJlbGF0ZWQgY29uZmlndXJhdGlvbnMgYXQgcGxheS4gTXkgaW1tZWRpYXRlIHRob3VnaHQgaXMgdG8gY2hlY2sgb3V0IGBhcmNoL3g4Ni9rdm0vcG11LmNgLiBUaGF0J3MgdGhlIGxvZ2ljYWwgc3RhcnRpbmcgcG9pbnQgZm9yIHVuZGVyc3RhbmRpbmcgaG93IHRoZSBQZXJmb3JtYW5jZSBNb25pdG9yaW5nIFVuaXQgaXMgaGFuZGxlZCB3aXRoaW4gdGhlIEtWTSB2aXJ0dWFsaXphdGlvbiBjb250ZXh0IG9uIHg4NiBhcmNoaXRlY3R1cmVzLiBJJ20gZXNwZWNpYWxseSBrZWVuIG9uIGZpbmRpbmcgYW55IGNvbmRpdGlvbmFsIGNvbXBpbGF0aW9uIHRoYXQgbWlnaHQgZXhwb3NlIG90aGVyIGNvbmZpZ3VyYXRpb24gb3B0aW9ucyBJIG1heSBoYXZlIG1pc3NlZCBpbiBteSBpbml0aWFsIGFzc2Vzc21lbnQuIEknbSBiZXR0aW5nIHRoYXQgYHBtdS5jYCB3aWxsIGdpdmUgbWUgYSBnb29kIGhhbmRsZSBvbiB0aGUgbnVhbmNlcyBoZXJlLlxuXG5cbiIsIklucHV0VG9rZW5zIjoxMTMzMiwiT3V0cHV0VG9rZW5zIjozNSwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjM2LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTI1VDIzOjEzOjIxLjk2OTQ5MjExN1oiLCJTZXEiOjE2LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MTQ4ODU3NzY5LCJFcnJvciI6Im5vIG1hdGNoZXMiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJDT05GSUdfXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImFyY2gveDg2L2t2bS9wbXUuY1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJlcnJvclwiOiBcIm5vIG1hdGNoZXNcIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMjVUMjM6MTM6MjIuMTE4MzU2Nzk2WiIsIlNlcSI6MTcsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjUxNzU1NTUzNTgsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqQW5hbHl6aW5nIHRoZSBLVk0gUGVyZm9ybWFuY2UgTW9uaXRvcmluZyBVbml0IFBhdGNoKipcblxuT2theSwgc28gSSdtIGxvb2tpbmcgYXQgdGhpcyBwYXRjaCBhbmQsIGJhc2VkIG9uIHdoYXQgSSdtIHNlZWluZywgaXQgbG9va3MgcHJldHR5IHN0cmFpZ2h0Zm9yd2FyZC4gVGhlcmUgYXJlbid0IGFueSBvdGhlciBjb25maWd1cmF0aW9ucyBpbiBgYXJjaC94ODYva3ZtL3BtdS5jYCBiZXNpZGVzIHRoZSBvbmUgd2UgaGF2ZSwgc28gYEtWTWAgaXMgZGVmaW5pdGVseSB0aGUgb25seSBjb25maWcgd2UgbmVlZCB0byBlbmFibGUuIFRoZSBwYXRjaCBpdHNlbGYgbW9kaWZpZXMgYGt2bV9wbXVfaW5jcl9jb3VudGVyYC4gVGhhdCBmdW5jdGlvbidzIGNhbGxlZCBieSBga3ZtX3BtdV90cmlnZ2VyX2V2ZW50YCwgd2hpY2ggaXMgaW4gdHVybiBjYWxsZWQgYnkgYGt2bV9wbXVfaW5zdHJ1Y3Rpb25fcmV0aXJlZGAgYW5kIGBrdm1fcG11X2JyYW5jaF9yZXRpcmVkYC4gVGhlc2UgYXJlIGFsbCBkaXJlY3RseSByZWxhdGVkIHRvIGNvcmUgS1ZNIGxvZ2ljIGFuZCwgbW9yZSBpbXBvcnRhbnRseSwgdGhleSdyZSByZWFjaGFibGUuIFNvLCBmdW5jdGlvbmFsbHkgdGhpcyBpcyBhIGdvb2QgY2FuZGlkYXRlIGZvciBmdXp6aW5nLlxuXG5NeSB0aGlua2luZyBpcyB0aGF0IGBXb3J0aEZ1enppbmdgIHNob3VsZCBiZSBzZXQgdG8gYHRydWVgIGhlcmUuIFRoZSBrZXkgZnVuY3Rpb25zIHRvIGZvY3VzIG9uIGZvciB0aGlzIGZ1enppbmcgZWZmb3J0IGFyZSBga3ZtX3BtdV9pbnN0cnVjdGlvbl9yZXRpcmVkYCBhbmQgYGt2bV9wbXVfYnJhbmNoX3JldGlyZWRgLiBUaGVzZSBhcHBlYXIgdG8gYmUgdGhlIGVudHJ5IHBvaW50cyB0aGF0IGRyaXZlIHRoZSBmdW5jdGlvbmFsaXR5IGJlaW5nIG1vZGlmaWVkLlxuXG5UaGVyZWZvcmUsIGZvciBgRW5hYmxlQ29uZmlnc2AgSSdsbCBqdXN0IHNldCBpdCB0byBgS1ZNYC5cblxuTGV0IG1lIGp1c3QgcXVpY2tseSBkb3VibGUtY2hlY2sgdGhhdCBga3ZtX3BtdV9pbmNyX2NvdW50ZXJgIGlzICpvbmx5KiBjYWxsZWQgYnkgYGt2bV9wbXVfdHJpZ2dlcl9ldmVudGAuIEkgdGhpbmsgd2UgZXN0YWJsaXNoZWQgdGhhdCBlYXJsaWVyLCBidXQgSSB3YW50IHRvIGJlIGFic29sdXRlbHkgc3VyZS4gWWVwLCBqdXN0IGNvbmZpcm1pbmcgdGhhdCBga3ZtX3BtdV90cmlnZ2VyX2V2ZW50YCBpcyB0aGUgc29sZSBjYWxsZXIuIEFuZCwgYXMgd2Uga25vdywgYGt2bV9wbXVfdHJpZ2dlcl9ldmVudGAgaXMgZXhjbHVzaXZlbHkgY2FsbGVkIGJ5IGBrdm1fcG11X2luc3RydWN0aW9uX3JldGlyZWRgIGFuZCBga3ZtX3BtdV9icmFuY2hfcmV0aXJlZGAuIEkgd2lsbCBjb25maXJtIHRoaXMgYWdhaW4gb24gYGt2bV9wbXVfdHJpZ2dlcl9ldmVudGAgaXRzZWxmLlxuXG5cbiIsIklucHV0VG9rZW5zIjoxMTU3MywiT3V0cHV0VG9rZW5zIjoyMywiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjI2MCwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0yNVQyMzoxMzoyNy4yOTM5MTQ0ODRaIiwiU2VxIjoxOCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjIzNDQ4ODYwNTMsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwia3ZtX3BtdV90cmlnZ2VyX2V2ZW50XCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImFyY2gveDg2L2t2bS9wbXUuYz0xMTA4PXN0YXRpYyBpbmxpbmUgYm9vbCBjcGxfaXNfbWF0Y2hlZChzdHJ1Y3Qga3ZtX3BtYyAqcG1jKVxcbi0tXFxuYXJjaC94ODYva3ZtL3BtdS5jLTExMzQtXFxuYXJjaC94ODYva3ZtL3BtdS5jOjExMzU6c3RhdGljIHZvaWQga3ZtX3BtdV90cmlnZ2VyX2V2ZW50KHN0cnVjdCBrdm1fdmNwdSAqdmNwdSxcXG5hcmNoL3g4Ni9rdm0vcG11LmMtMTEzNi1cXHRcXHRcXHRcXHQgIGNvbnN0IHVuc2lnbmVkIGxvbmcgKmV2ZW50X3BtY3MpXFxuLS1cXG5hcmNoL3g4Ni9rdm0vcG11LmM9MTE2ND12b2lkIGt2bV9wbXVfaW5zdHJ1Y3Rpb25fcmV0aXJlZChzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUpXFxuYXJjaC94ODYva3ZtL3BtdS5jLTExNjUte1xcbmFyY2gveDg2L2t2bS9wbXUuYzoxMTY2OlxcdGt2bV9wbXVfdHJpZ2dlcl9ldmVudCh2Y3B1LCB2Y3B1X3RvX3BtdSh2Y3B1KS1cXHUwMDNlcG1jX2NvdW50aW5nX2luc3RydWN0aW9ucyk7XFxuYXJjaC94ODYva3ZtL3BtdS5jLTExNjctfVxcbi0tXFxuYXJjaC94ODYva3ZtL3BtdS5jPTExNzA9dm9pZCBrdm1fcG11X2JyYW5jaF9yZXRpcmVkKHN0cnVjdCBrdm1fdmNwdSAqdmNwdSlcXG5hcmNoL3g4Ni9rdm0vcG11LmMtMTE3MS17XFxuYXJjaC94ODYva3ZtL3BtdS5jOjExNzI6XFx0a3ZtX3BtdV90cmlnZ2VyX2V2ZW50KHZjcHUsIHZjcHVfdG9fcG11KHZjcHUpLVxcdTAwM2VwbWNfY291bnRpbmdfYnJhbmNoZXMpO1xcbmFyY2gveDg2L2t2bS9wbXUuYy0xMTczLX1cXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMjVUMjM6MTM6MjkuNjM4ODA3OTc3WiIsIlNlcSI6MTksIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjI4NTk5NzMzODAsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6Ik9rYXksIGhlcmUncyBteSB0YWtlIG9uIHRob3NlIHRob3VnaHRzLCBmcmFtZWQgYXMgYW4gZXhwZXJ0J3MgaW50ZXJuYWwgbW9ub2xvZ3VlOlxuXG4qKkNoZWNraW5nIENvZGUgRGVwZW5kZW5jaWVzKipcblxuQWxyaWdodCwgc28gdGhlIGZvY3VzIGlzIGRlZmluaXRlbHkgbmFycm93ZWQgZG93biB0byBqdXN0IHRob3NlIHR3byBmdW5jdGlvbnMuIEkgbmVlZCB0byBxdWlja2x5IGNvbmZpcm0gdGhhdCdzIHRoZSAqb25seSogcGxhY2UgdGhlc2UgYXJlIGNhbGxlZC4gQmVzdCBwcmFjdGljZSBpcyB0byBydW4gYSBxdWljayBzZWFyY2ggdGhyb3VnaCB0aGUgY29kZWJhc2UuIEl0J3MgdG9vIGVhc3kgdG8gbWlzcyBzb21ldGhpbmcgdGhlIGZpcnN0IHRpbWUgYXJvdW5kLiBUaW1lIHRvIGNvbmZpcm0gYGt2bV9wbXVfcmVxdWVzdF9jb3VudGVyX3JlcHJvZ3JhbWAgaXNuJ3QgbHVya2luZyBhbnl3aGVyZSBlbHNlLiBKdXN0IGEgcXVpY2sgc2FuaXR5IGNoZWNrIHRvIGJlIGFic29sdXRlbHkgY2VydGFpbiBJJ20gbm90IG92ZXJsb29raW5nIGEgY3JpdGljYWwgZGVwZW5kZW5jeSBvciB1c2FnZSBwYXR0ZXJuLiBMZXQncyBtYWtlIHN1cmUgdGhlcmUgYXJlbid0IGFueSBzdXJwcmlzZSBjYWxscyB0byB0aGlzIGZ1bmN0aW9uIGluIHNvbWUgb2JzY3VyZSBjb3JuZXIgb2YgdGhlIGNvZGUuIFRoYXQgd291bGQgYmUgYSBzZXJpb3VzIHBvdGVudGlhbCBwcm9ibGVtLlxuXG5cbiIsIklucHV0VG9rZW5zIjoxMjY3MSwiT3V0cHV0VG9rZW5zIjoyNiwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjM2LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTI1VDIzOjEzOjMyLjQ5ODc4NDEwN1oiLCJTZXEiOjIwLCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MjM2MTYyMTQ3MCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJrdm1fcG11X3JlcXVlc3RfY291bnRlcl9yZXByb2dyYW1cIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiYXJjaC94ODYva3ZtL3BtdS5jPTEwNzE9c3RhdGljIHZvaWQga3ZtX3BtdV9pbmNyX2NvdW50ZXIoc3RydWN0IGt2bV9wbWMgKnBtYylcXG4tLVxcbmFyY2gveDg2L2t2bS9wbXUuYy0xMDkwLVxcdFxcdGlmIChwbWMtXFx1MDAzZWVtdWxhdGVkX2NvdW50ZXIgXFx1MDAzZSBlbXVsYXRlZF9jb3VudGVyX3JlcHJvZ3JhbV90b2xlcmFuY2UpXFxuYXJjaC94ODYva3ZtL3BtdS5jOjEwOTE6XFx0XFx0XFx0a3ZtX3BtdV9yZXF1ZXN0X2NvdW50ZXJfcmVwcm9ncmFtKHBtYyk7XFxuYXJjaC94ODYva3ZtL3BtdS5jLTEwOTItXFx0XFx0cmV0dXJuO1xcbi0tXFxuYXJjaC94ODYva3ZtL3BtdS5oPTIxOT12b2lkIGt2bV9wbXVfaGFuZGxlX2V2ZW50KHN0cnVjdCBrdm1fdmNwdSAqdmNwdSk7XFxuYXJjaC94ODYva3ZtL3BtdS5oLTIyMC1cXG5hcmNoL3g4Ni9rdm0vcG11Lmg6MjIxOnN0YXRpYyBpbmxpbmUgdm9pZCBrdm1fcG11X3JlcXVlc3RfY291bnRlcl9yZXByb2dyYW0oc3RydWN0IGt2bV9wbWMgKnBtYylcXG5hcmNoL3g4Ni9rdm0vcG11LmgtMjIyLXtcXG4tLVxcbmFyY2gveDg2L2t2bS9zdm0vcG11LmM9MTUwPXN0YXRpYyBpbnQgYW1kX3BtdV9zZXRfbXNyKHN0cnVjdCBrdm1fdmNwdSAqdmNwdSwgc3RydWN0IG1zcl9kYXRhICptc3JfaW5mbylcXG4tLVxcbmFyY2gveDg2L2t2bS9zdm0vcG11LmMtMTc2LVxcbmFyY2gveDg2L2t2bS9zdm0vcG11LmM6MTc3OlxcdFxcdFxcdGt2bV9wbXVfcmVxdWVzdF9jb3VudGVyX3JlcHJvZ3JhbShwbWMpO1xcbmFyY2gveDg2L2t2bS9zdm0vcG11LmMtMTc4LVxcdFxcdH1cXG4tLVxcbmFyY2gveDg2L2t2bS92bXgvcG11X2ludGVsLmM9NTg9c3RhdGljIHZvaWQgcmVwcm9ncmFtX2ZpeGVkX2NvdW50ZXJzKHN0cnVjdCBrdm1fcG11ICpwbXUsIHU2NCBkYXRhKVxcbi0tXFxuYXJjaC94ODYva3ZtL3ZteC9wbXVfaW50ZWwuYy04My1cXHRcXHRfX3NldF9iaXQoS1ZNX0ZJWEVEX1BNQ19CQVNFX0lEWCArIGksIHBtdS1cXHUwMDNlcG1jX2luX3VzZSk7XFxuYXJjaC94ODYva3ZtL3ZteC9wbXVfaW50ZWwuYzo4NDpcXHRcXHRrdm1fcG11X3JlcXVlc3RfY291bnRlcl9yZXByb2dyYW0ocG1jKTtcXG5hcmNoL3g4Ni9rdm0vdm14L3BtdV9pbnRlbC5jLTg1LVxcdH1cXG4tLVxcbmFyY2gveDg2L2t2bS92bXgvcG11X2ludGVsLmM9MzgyPXN0YXRpYyBpbnQgaW50ZWxfcG11X3NldF9tc3Ioc3RydWN0IGt2bV92Y3B1ICp2Y3B1LCBzdHJ1Y3QgbXNyX2RhdGEgKm1zcl9pbmZvKVxcbi0tXFxuYXJjaC94ODYva3ZtL3ZteC9wbXVfaW50ZWwuYy00NDUtXFx0XFx0XFx0XFx0cG1jLVxcdTAwM2VldmVudHNlbF9odyA9IGRhdGE7XFxuYXJjaC94ODYva3ZtL3ZteC9wbXVfaW50ZWwuYzo0NDY6XFx0XFx0XFx0XFx0a3ZtX3BtdV9yZXF1ZXN0X2NvdW50ZXJfcmVwcm9ncmFtKHBtYyk7XFxuYXJjaC94ODYva3ZtL3ZteC9wbXVfaW50ZWwuYy00NDctXFx0XFx0XFx0fVxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0yNVQyMzoxMzozNC44NjA0MTYxOThaIiwiU2VxIjoyMSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NDcyOTM4Mzc0OCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipGdXp6aW5nIERlY2lzaW9uIGZvciBLVk0gUE1VIENvdW50ZXIgSW5jcmVtZW50cyoqXG5cbk9rYXksIHNvIEkndmUgbG9va2VkIGF0IHRoaXMgcGF0Y2guIEl0J3MgZm9jdXNlZCBzb2xlbHkgb24gYWx0ZXJpbmcgdGhlIGBrdm1fcG11X2luY3JfY291bnRlcmAgZnVuY3Rpb24sIHdoaWNoIGlzIGludGVyZXN0aW5nLiBUaGUgbG9naWMgYXBwZWFycyBzb3VuZCwgYW5kIGZyb20gbXkgcXVpY2sgcmV2aWV3LCBJIGNhbiBzZWUgdGhhdCBpdCdzIGRlZmluaXRlbHkgcmVhY2hhYmxlIGR1cmluZyBleGVjdXRpb24uIENvbnNpZGVyaW5nIHRoaXMsIEknbSBjb25maWRlbnQgdGhhdCB0aGlzIGlzIHdvcnRoIGV4cGxvcmluZyBpbiBtb3JlIGRlcHRoLiBJdCBzZWVtcyBsaWtlIGl0J3MgYSBnb29kIGNhbmRpZGF0ZSBmb3IgZnV6emluZy5cblxuTXkgdGhpbmtpbmcgaXMgdGhhdCBmdXp6aW5nIGBrdm1fcG11X2luY3JfY291bnRlcmAgY291bGQgdW5jb3ZlciBzb21lIGludGVyZXN0aW5nIGJlaGF2aW9yLiBJJ2xsIHNldCBgV29ydGhGdXp6aW5nYCB0byBgdHJ1ZWAuIEFuZCB0byBkaXJlY3QgdGhlIGZ1enplciBlZmZlY3RpdmVseSwgSSBzaG91bGQgZm9jdXMgaXQgb24gYGt2bV9wbXVfaW5zdHJ1Y3Rpb25fcmV0aXJlZGAgYW5kIGBrdm1fcG11X2JyYW5jaF9yZXRpcmVkYCBhcyBrZXkgYXJlYXMgdG8gcHJvYmUsIGFzIHRoZXkgbGlrZWx5IGludGVyYWN0IHdpdGggdGhlIGluY3JlbWVudCBsb2dpYy4gT2YgY291cnNlLCB0aGUgYEtWTWAgY29uZmlndXJhdGlvbiBuZWVkcyB0byBiZSBlbmFibGVkLlxuXG5UaGUgcmVhc29uaW5nIGhlcmUgaXMgdGhhdCB0aGlzIHBhdGNoIGNoYW5nZXMgaG93IEtWTeKAmXMgUE1VIGVtdWxhdGlvbiBoYW5kbGVzIGNvdW50ZXIgcmVwcm9ncmFtIHJlcXVlc3RzLiBTcGVjaWZpY2FsbHksIGl0IHNlZW1zIGxpa2UgaXQncyBpbnRyb2R1Y2luZyBhIHRvbGVyYW5jZSB0aHJlc2hvbGQgZm9yIGVtdWxhdGVkIGNvdW50ZXIgaW5jcmVtZW50cy4gSSdkIGxpa2UgdG8gdGVzdCBlZGdlIGNhc2VzIHdpdGggdGhpcyBuZXcgdG9sZXJhbmNlIHRocmVzaG9sZCwgYW5kIGl0cyBpbnRlcmFjdGlvbiB3aXRoIHRoZSB1bmRlcmx5aW5nIGVtdWxhdGlvbi4gVGhpcyBpcyBmdW5kYW1lbnRhbCwgZnVuY3Rpb25hbCBsb2dpYyB3aXRoaW4gdGhlIEtWTSBzdWJzeXN0ZW0sIGFuZCBjaGFuZ2VzIGhlcmUgY291bGQgcG90ZW50aWFsbHkgaGF2ZSBicm9hZCBpbXBhY3RzIG9uIFBNVSBiZWhhdmlvciB1bmRlciBlbXVsYXRpb24uIEkgdGhpbmsgdGhhdCBmdXp6aW5nIGhlcmUgaXMgZ29pbmcgdG8gYmUgdXNlZnVsLlxuXG5cbiIsIklucHV0VG9rZW5zIjoxMzY0NywiT3V0cHV0VG9rZW5zIjo5OCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjExOCwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0yNVQyMzoxMzozOS41ODk4MDI0NjZaIiwiU2VxIjoyMiwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoic2V0LXJlc3VsdHMiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoxMzMyOTgzODAsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IFtcbiAgICBcIktWTVwiXG4gIF0sXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtcbiAgICBcImt2bV9wbXVfaW5zdHJ1Y3Rpb25fcmV0aXJlZFwiLFxuICAgIFwia3ZtX3BtdV9icmFuY2hfcmV0aXJlZFwiXG4gIF0sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBjb25kaXRpb24gZm9yIHJlcXVlc3RpbmcgYSBjb3VudGVyIHJlcHJvZ3JhbSBpbiBLVk0ncyBQTVUgZW11bGF0aW9uLCBpbnRyb2R1Y2luZyBhIHRvbGVyYW5jZSB0aHJlc2hvbGQgZm9yIGVtdWxhdGVkIGNvdW50ZXIgaW5jcmVtZW50cy4gVGhpcyBpcyBmdW5jdGlvbmFsIGxvZ2ljIGluIHRoZSBjb3JlIEtWTSBzdWJzeXN0ZW0uXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IHRydWVcbn0iLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogW1xuICAgIFwiS1ZNXCJcbiAgXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW1xuICAgIFwia3ZtX3BtdV9pbnN0cnVjdGlvbl9yZXRpcmVkXCIsXG4gICAgXCJrdm1fcG11X2JyYW5jaF9yZXRpcmVkXCJcbiAgXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIGNvbmRpdGlvbiBmb3IgcmVxdWVzdGluZyBhIGNvdW50ZXIgcmVwcm9ncmFtIGluIEtWTSdzIFBNVSBlbXVsYXRpb24sIGludHJvZHVjaW5nIGEgdG9sZXJhbmNlIHRocmVzaG9sZCBmb3IgZW11bGF0ZWQgY291bnRlciBpbmNyZW1lbnRzLiBUaGlzIGlzIGZ1bmN0aW9uYWwgbG9naWMgaW4gdGhlIGNvcmUgS1ZNIHN1YnN5c3RlbS5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogdHJ1ZVxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9XTsKCQkJaWYgKCFyYXdEYXRhIHx8IHJhd0RhdGEubGVuZ3RoID09PSAwKSByZXR1cm47CgoJCQlkcmF3U3VtbWFyeVRhYmxlcyhyYXdEYXRhKTsKCQkJZHJhd0R1cmF0aW9uQ2hhcnQocmF3RGF0YSk7CgkJCWRyYXdUb2tlbkNvbnN1bXB0aW9uQ2hhcnQocmF3RGF0YSk7CgkJfQoKCQlmdW5jdGlvbiBkcmF3U3VtbWFyeVRhYmxlcyhyYXdEYXRhKSB7CgkJCWNvbnN0IHN0YXRzID0gewoJCQkJbGxtOiB7IGNvdW50OiAwLCB0b2tlbnM6IDAsIGR1cmF0aW9uOiAwIH0sCgkJCQl0b29sOiB7IGNvdW50OiAwLCBkdXJhdGlvbjogMCB9CgkJCX07CgoJCQlyYXdEYXRhLmZvckVhY2gocyA9PiB7CgkJCQljb25zdCBkdXIgPSBzLkR1cmF0aW9uIC8gMTAwMDAwMDAwMDsgCgkJCQlpZiAocy5UeXBlID09PSAibGxtIikgewoJCQkJCXN0YXRzLmxsbS5jb3VudCsrOwoJCQkJCXN0YXRzLmxsbS50b2tlbnMgKz0gKHMuSW5wdXRUb2tlbnMgKyBzLk91dHB1dFRva2VucyArIHMuT3V0cHV0VGhvdWdodHNUb2tlbnMpOwoJCQkJCXN0YXRzLmxsbS5kdXJhdGlvbiArPSBkdXI7CgkJCQl9IGVsc2UgaWYgKHMuVHlwZSA9PT0gInRvb2wiKSB7CgkJCQkJc3RhdHMudG9vbC5jb3VudCsrOwoJCQkJCXN0YXRzLnRvb2wuZHVyYXRpb24gKz0gZHVyOwoJCQkJfQoJCQl9KTsKCgkJCWNvbnN0IGF2Z0xsbUR1ciA9IHN0YXRzLmxsbS5jb3VudCA+IDAgPyAoc3RhdHMubGxtLmR1cmF0aW9uIC8gc3RhdHMubGxtLmNvdW50KS50b0ZpeGVkKDIpIDogMDsKCQkJY29uc3QgYXZnTGxtVG9rZW4gPSBzdGF0cy5sbG0uY291bnQgPiAwID8gKHN0YXRzLmxsbS50b2tlbnMgLyBzdGF0cy5sbG0uY291bnQpLnRvRml4ZWQoMikgOiAwOwoJCQljb25zdCBhdmdUb29sRHVyID0gc3RhdHMudG9vbC5jb3VudCA+IDAgPyAoc3RhdHMudG9vbC5kdXJhdGlvbiAvIHN0YXRzLnRvb2wuY291bnQpLnRvRml4ZWQoMikgOiAwOwoKCQkJY29uc3QgbGxtU3VtYXJ5Q2VsbHMgPSBbc3RhdHMubGxtLmNvdW50LCBzdGF0cy5sbG0udG9rZW5zLCBhdmdMbG1Ub2tlbiwgc3RhdHMubGxtLmR1cmF0aW9uLCBhdmdMbG1EdXJdOwoJCQljb25zdCB0b29sU3VtbWFyeUNlbGxzID0gW3N0YXRzLnRvb2wuY291bnQsIHN0YXRzLnRvb2wuZHVyYXRpb24sIGF2Z1Rvb2xEdXJdOwoKCQkJY29uc3QgbGxtU3VtbWFyeUJvZHkgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnbGxtX3N1bW1hcnlfc3RhdHNfYm9keScpOwoJCQlsbG1TdW1tYXJ5Qm9keS5pbm5lckhUTUwgPSAiIjsKCQkJY29uc3QgbGxtVHIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0cicpOwoJCQlsbG1TdW1hcnlDZWxscy5mb3JFYWNoKGNlbGwgPT4gewoJCQkJY29uc3QgdGQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ZCcpOwoJCQkJdGQudGV4dENvbnRlbnQgPSBjZWxsOwoJCQkJbGxtVHIuYXBwZW5kQ2hpbGQodGQpOwoJCQl9KTsKCQkJbGxtU3VtbWFyeUJvZHkuYXBwZW5kQ2hpbGQobGxtVHIpOwoKCQkJY29uc3QgdG9vbFN1bW1hcnlCb2R5ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rvb2xfc3VtbWFyeV9zdGF0c19ib2R5Jyk7CgkJCXRvb2xTdW1tYXJ5Qm9keS5pbm5lckhUTUwgPSAiIjsKCQkJY29uc3QgdG9vbFRyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndHInKTsKCQkJdG9vbFN1bW1hcnlDZWxscy5mb3JFYWNoKGNlbGwgPT4gewoJCQkJY29uc3QgdGQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ZCcpOwoJCQkJdGQudGV4dENvbnRlbnQgPSBjZWxsOwoJCQkJdG9vbFRyLmFwcGVuZENoaWxkKHRkKTsKCQkJfSk7CgkJCXRvb2xTdW1tYXJ5Qm9keS5hcHBlbmRDaGlsZCh0b29sVHIpOwoJCX0KCgkJZnVuY3Rpb24gZHJhd0R1cmF0aW9uQ2hhcnQocmF3RGF0YSkgewoJCQljb25zdCBmaWx0ZXJlZFN0ZXBzID0gcmF3RGF0YS5maWx0ZXIoZCA9PiBbImxsbSIsICJ0b29sIl0uaW5jbHVkZXMoZC5UeXBlKSk7CgkJCWNvbnN0IGRhdGEgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uRGF0YVRhYmxlKCk7CgkJCWRhdGEuYWRkQ29sdW1uKCdzdHJpbmcnLCAnU3RlcCcpOwoJCQlkYXRhLmFkZENvbHVtbignbnVtYmVyJywgJ0R1cmF0aW9uJyk7CgkJCWRhdGEuYWRkQ29sdW1uKHt0eXBlOiAnc3RyaW5nJywgcm9sZTogJ3Rvb2x0aXAnfSk7IAoKCQkJZmlsdGVyZWRTdGVwcy5mb3JFYWNoKHMgPT4gewoJCQkJCgkJCQljb25zdCBkdXIgPSBzLkR1cmF0aW9uIC8gMTAwMDAwMDAwMDsKCQkJCWxldCB0b29sdGlwID0gcy5OYW1lOwoJCQkJaWYgKHMuVHlwZSA9PT0gImxsbSIgJiYgcy5Ub29sQ2FsbHMgJiYgcy5Ub29sQ2FsbHMubGVuZ3RoID4gMCkgewoJCQkJCXRvb2x0aXAgKz0gYFxuVG9vbHM6ICR7cy5Ub29sQ2FsbHMuam9pbignLCAnKX1gOwoJCQkJfQoJCQkJZGF0YS5hZGRSb3coW2Ake3MuU2VxfWAsIGR1ciwgdG9vbHRpcF0pOwoJCQl9KTsKCgkJCWNvbnN0IG9wdGlvbnMgPSB7CgkJCQl0aXRsZTogJ1RpbWUgQ29uc3VtcHRpb24gb2YgTExNL1Rvb2wgQ2FsbHMnLAoJCQkJaEF4aXM6IHsKCQkJCQl0aXRsZTogJ0xMTS9Ub29sIFN0ZXBzJywKCQkJCX0sCgkJCQl2QXhpczogeyB0aXRsZTogJ1NlY29uZHMnIH0sCgkJCQlsZWdlbmQ6IHsgcG9zaXRpb246ICdub25lJyB9LAoJCQkJYmFyOiB7IGdyb3VwV2lkdGg6ICc3NSUnIH0sCgkJCQljaGFydEFyZWE6IHsgd2lkdGg6ICc4NSUnLCBoZWlnaHQ6ICc3MCUnIH0sCgkJCQloZWlnaHQ6IDQwMAoJCQl9OwoKCQkJY29uc3QgY2hhcnQgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uQ29sdW1uQ2hhcnQoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2R1cmF0aW9uX2NoYXJ0X2RpdicpKTsKCQkJY2hhcnQuZHJhdyhkYXRhLCBvcHRpb25zKTsKCQl9CgoJCWZ1bmN0aW9uIGRyYXdUb2tlbkNvbnN1bXB0aW9uQ2hhcnQocmF3RGF0YSkgewoJCQljb25zdCBsbG1TdGVwcyA9IHJhd0RhdGEuZmlsdGVyKGQgPT4gZC5UeXBlID09PSAibGxtIik7CgkJCWlmIChsbG1TdGVwcy5sZW5ndGggPT09IDApIHJldHVybjsKCgkJCWNvbnN0IGRhdGEgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uRGF0YVRhYmxlKCk7CgkJCWRhdGEuYWRkQ29sdW1uKCdzdHJpbmcnLCAnU3RlcCcpOwkJCQoJCQlkYXRhLmFkZENvbHVtbignbnVtYmVyJywgJ1Rva2VucycpOwkJCQoJCQlkYXRhLmFkZENvbHVtbih7dHlwZTogJ3N0cmluZycsIHJvbGU6ICdzdHlsZSd9KTsJCgkJCWRhdGEuYWRkQ29sdW1uKHt0eXBlOiAnc3RyaW5nJywgcm9sZTogJ3Rvb2x0aXAnfSk7CQoKCQkJY29uc3QgYWdlbnRDb2xvcnMgPSB7fTsKCQkJY29uc3QgcGFsZXR0ZSA9IFsnIzQyODVGNCcsICcjREI0NDM3JywgJyNGNEI0MDAnLCAnIzBGOUQ1OCcsICcjQUI0N0JDJywgJyMwMEFDQzEnXTsKCQkJbGV0IGNvbG9ySWR4ID0gMDsKCQkJY29uc3QgYWdlbnRMTE1Db3VudHMgPSB7fTsKCQkJbGxtU3RlcHMuZm9yRWFjaChzID0+IHsKCQkJCWlmICghYWdlbnRDb2xvcnNbcy5OYW1lXSkgewoJCQkJCWFnZW50Q29sb3JzW3MuTmFtZV0gPSBwYWxldHRlW2NvbG9ySWR4ICUgcGFsZXR0ZS5sZW5ndGhdOwoJCQkJCWNvbG9ySWR4Kys7CgkJCQl9CgoJCQkJYWdlbnRMTE1Db3VudHNbcy5OYW1lXSA9IChhZ2VudExMTUNvdW50c1tzLk5hbWVdIHx8IDApICsgMTsKCQkJCWNvbnN0IGxhYmVsID0gYCR7cy5OYW1lfS0ke2FnZW50TExNQ291bnRzW3MuTmFtZV19YDsKCQkJCWNvbnN0IHRvdGFsVG9rZW5zID0gcy5JbnB1dFRva2VucyArIHMuT3V0cHV0VG9rZW5zICsgcy5PdXRwdXRUaG91Z2h0c1Rva2VuczsKCQkJCWNvbnN0IHN0eWxlID0gYGNvbG9yOiAke2FnZW50Q29sb3JzW3MuTmFtZV19YDsKCQkJCWxldCB0b29sdGlwID0gYFRvdGFsIFRva2VuczogJHt0b3RhbFRva2Vuc31cbihJbjogJHtzLklucHV0VG9rZW5zfSwgT3V0OiAke3MuT3V0cHV0VG9rZW5zfSwgVGhvdWdodHM6ICR7cy5PdXRwdXRUaG91Z2h0c1Rva2Vuc30pYDsKCQkJCWlmIChzLlRvb2xDYWxscyAmJiBzLlRvb2xDYWxscy5sZW5ndGggPiAwKSB7CgkJCQkJdG9vbHRpcCArPSBgXG5Ub29sczogJHtzLlRvb2xDYWxscy5qb2luKCcsICcpfWA7CgkJCQl9CgoJCQkJZGF0YS5hZGRSb3coW2xhYmVsLCB0b3RhbFRva2Vucywgc3R5bGUsIHRvb2x0aXBdKTsKCQkJfSk7CgoJCQljb25zdCBvcHRpb25zID0gewoJCQkJdGl0bGU6ICdUb2tlbiBDb25zdW1wdGlvbiBieSBMTE0gQ2FsbHMnLAoJCQkJaEF4aXM6IHsKCQkJCQl0aXRsZTogJ0xMTSBDYWxsIFNlcXVlbmNlJywKCQkJCX0sCgkJCQl2QXhpczogeyB0aXRsZTogJ0NvbnN1bWVkIFRva2VucycgfSwKCQkJCWxlZ2VuZDogeyBwb3NpdGlvbjogJ25vbmUnIH0sCgkJCQliYXI6IHsgZ3JvdXBXaWR0aDogJzc1JScgfSwKCQkJCWNoYXJ0QXJlYTogeyB3aWR0aDogJzg1JScsIGhlaWdodDogJzcwJScgfSwKCQkJCWhlaWdodDogNDAwCgkJCX07CgoJCQljb25zdCBjaGFydCA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5Db2x1bW5DaGFydChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndG9rZW5fY2hhcnRfZGl2JykpOwoJCQljaGFydC5kcmF3KGRhdGEsIG9wdGlvbnMpOwoJCX0KCQlsZXQgYWxsRXhwYW5kZWQgPSBmYWxzZTsKCQlmdW5jdGlvbiB0b2dnbGVBbGxEZXRhaWxzKCkgewoJCQlhbGxFeHBhbmRlZCA9ICFhbGxFeHBhbmRlZDsKCQkJZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgnZGV0YWlscycpLmZvckVhY2goZCA9PiB7CgkJCQlpZiAoYWxsRXhwYW5kZWQpIGQuc2V0QXR0cmlidXRlKCdvcGVuJywgJycpOwoJCQkJZWxzZSBkLnJlbW92ZUF0dHJpYnV0ZSgnb3BlbicpOwoJCQl9KTsKCQl9Cgk8L3NjcmlwdD4KCgo8L2JvZHk+CjwvaHRtbD4K" },ValueFrom:&ValueFrom{Path:/output/result.json,JSONPath:,JQFilter:,Parameter:,Default:nil,Supplied:nil,Event:,Expression:,ConfigMapKeyRef:nil,},GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},Result:nil,ExitCode:*0,} --------- Name: series-workflow7b2sr[1] Phase: Succeeded StartedAt: 2026-07-25 23:13:52 +0000 UTC FinishedAt: 2026-07-25 23:13:52 +0000 UTC Input: nil Output: nil --------- Name: series-workflow7b2sr[1].abort-on-skip-outcome Phase: Skipped StartedAt: 2026-07-25 23:13:52 +0000 UTC FinishedAt: 2026-07-25 23:13:52 +0000 UTC Input: nil Output: nil --------- Name: series-workflow7b2sr[2] Phase: Succeeded StartedAt: 2026-07-25 23:13:52 +0000 UTC FinishedAt: 2026-07-26 03:20:06 +0000 UTC Input: nil Output: nil --------- Name: series-workflow7b2sr[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"1590cf0329716306e948a8fc29f1d3ee87d3989f","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":["kvm"],"focus_symbols":["kvm_pmu_instruction_retired","kvm_pmu_branch_retired"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"1590cf0329716306e948a8fc29f1d3ee87d3989f","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"44be5c2d-df3f-4604-8932-2d01b8b78d1e","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},retest:null,track:KASAN) Phase: Succeeded StartedAt: 2026-07-25 23:13:53 +0000 UTC FinishedAt: 2026-07-26 03:20:06 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:element,Default:nil,Value:*{"base":{"arch":"amd64","commit_hash":"1590cf0329716306e948a8fc29f1d3ee87d3989f","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},"fuzz":{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":["kvm"],"focus_symbols":["kvm_pmu_instruction_retired","kvm_pmu_branch_retired"],"skip_cover_check":false},"patched":{"arch":"amd64","commit_hash":"1590cf0329716306e948a8fc29f1d3ee87d3989f","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"44be5c2d-df3f-4604-8932-2d01b8b78d1e","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},"retest":null,"track":"KASAN"},ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},} Output: nil --------- Name: series-workflow7b2sr[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"1590cf0329716306e948a8fc29f1d3ee87d3989f","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":["kvm"],"focus_symbols":["kvm_pmu_instruction_retired","kvm_pmu_branch_retired"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"1590cf0329716306e948a8fc29f1d3ee87d3989f","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"44be5c2d-df3f-4604-8932-2d01b8b78d1e","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},retest:null,track:KASAN)[0] Phase: Succeeded StartedAt: 2026-07-25 23:13:53 +0000 UTC FinishedAt: 2026-07-25 23:14:11 +0000 UTC Input: nil Output: nil --------- Name: series-workflow7b2sr[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"1590cf0329716306e948a8fc29f1d3ee87d3989f","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":["kvm"],"focus_symbols":["kvm_pmu_instruction_retired","kvm_pmu_branch_retired"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"1590cf0329716306e948a8fc29f1d3ee87d3989f","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"44be5c2d-df3f-4604-8932-2d01b8b78d1e","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},retest:null,track:KASAN)[0].save-base-req Phase: Succeeded StartedAt: 2026-07-25 23:13:53 +0000 UTC FinishedAt: 2026-07-25 23:14:01 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:data,Default:nil,Value:*{"arch":"amd64","commit_hash":"1590cf0329716306e948a8fc29f1d3ee87d3989f","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},} Output: &Outputs{Parameters:[]Parameter{},Artifacts:[]Artifact{Artifact{Name:artifact,Path:/tmp/artifact,Mode:nil,From:,ArtifactLocation:ArtifactLocation{ArchiveLogs:nil,S3:nil,Git:nil,HTTP:nil,Artifactory:nil,HDFS:nil,Raw:nil,OSS:nil,GCS:&GCSArtifact{GCSBucket:GCSBucket{Bucket:,ServiceAccountKeySecret:nil,},Key:series-workflow7b2sr/series-workflow7b2sr-convert-artifact-775669519/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflow7b2sr[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"1590cf0329716306e948a8fc29f1d3ee87d3989f","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":["kvm"],"focus_symbols":["kvm_pmu_instruction_retired","kvm_pmu_branch_retired"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"1590cf0329716306e948a8fc29f1d3ee87d3989f","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"44be5c2d-df3f-4604-8932-2d01b8b78d1e","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},retest:null,track:KASAN)[1] Phase: Succeeded StartedAt: 2026-07-25 23:14:11 +0000 UTC FinishedAt: 2026-07-25 23:45:28 +0000 UTC Input: nil Output: nil --------- Name: series-workflow7b2sr[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"1590cf0329716306e948a8fc29f1d3ee87d3989f","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":["kvm"],"focus_symbols":["kvm_pmu_instruction_retired","kvm_pmu_branch_retired"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"1590cf0329716306e948a8fc29f1d3ee87d3989f","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"44be5c2d-df3f-4604-8932-2d01b8b78d1e","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},retest:null,track:KASAN)[1].base-build Phase: Succeeded StartedAt: 2026-07-25 23:14:12 +0000 UTC FinishedAt: 2026-07-25 23:45:28 +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:*66f28002-1c50-41bd-b2ec-0ffb61881a0f,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-workflow7b2sr/series-workflow7b2sr-convert-artifact-775669519/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": "2fe7881a-9d46-467d-8a0f-25201221e3ea", "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-workflow7b2sr/series-workflow7b2sr-build-action-3714692181/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflow7b2sr[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"1590cf0329716306e948a8fc29f1d3ee87d3989f","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":["kvm"],"focus_symbols":["kvm_pmu_instruction_retired","kvm_pmu_branch_retired"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"1590cf0329716306e948a8fc29f1d3ee87d3989f","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"44be5c2d-df3f-4604-8932-2d01b8b78d1e","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},retest:null,track:KASAN)[1].base-build(0) Phase: Succeeded StartedAt: 2026-07-25 23:14:12 +0000 UTC FinishedAt: 2026-07-25 23:45:18 +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:*66f28002-1c50-41bd-b2ec-0ffb61881a0f,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-workflow7b2sr/series-workflow7b2sr-convert-artifact-775669519/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": "2fe7881a-9d46-467d-8a0f-25201221e3ea", "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-workflow7b2sr/series-workflow7b2sr-build-action-3714692181/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflow7b2sr[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"1590cf0329716306e948a8fc29f1d3ee87d3989f","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":["kvm"],"focus_symbols":["kvm_pmu_instruction_retired","kvm_pmu_branch_retired"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"1590cf0329716306e948a8fc29f1d3ee87d3989f","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"44be5c2d-df3f-4604-8932-2d01b8b78d1e","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},retest:null,track:KASAN)[2] Phase: Succeeded StartedAt: 2026-07-25 23:45:28 +0000 UTC FinishedAt: 2026-07-25 23:45:28 +0000 UTC Input: nil Output: nil --------- Name: series-workflow7b2sr[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"1590cf0329716306e948a8fc29f1d3ee87d3989f","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":["kvm"],"focus_symbols":["kvm_pmu_instruction_retired","kvm_pmu_branch_retired"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"1590cf0329716306e948a8fc29f1d3ee87d3989f","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"44be5c2d-df3f-4604-8932-2d01b8b78d1e","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},retest:null,track:KASAN)[2].abort-if-base-build-failed Phase: Skipped StartedAt: 2026-07-25 23:45:28 +0000 UTC FinishedAt: 2026-07-25 23:45:28 +0000 UTC Input: nil Output: nil --------- Name: series-workflow7b2sr[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"1590cf0329716306e948a8fc29f1d3ee87d3989f","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":["kvm"],"focus_symbols":["kvm_pmu_instruction_retired","kvm_pmu_branch_retired"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"1590cf0329716306e948a8fc29f1d3ee87d3989f","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"44be5c2d-df3f-4604-8932-2d01b8b78d1e","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},retest:null,track:KASAN)[3] Phase: Succeeded StartedAt: 2026-07-25 23:45:28 +0000 UTC FinishedAt: 2026-07-25 23:45:38 +0000 UTC Input: nil Output: nil --------- Name: series-workflow7b2sr[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"1590cf0329716306e948a8fc29f1d3ee87d3989f","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":["kvm"],"focus_symbols":["kvm_pmu_instruction_retired","kvm_pmu_branch_retired"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"1590cf0329716306e948a8fc29f1d3ee87d3989f","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"44be5c2d-df3f-4604-8932-2d01b8b78d1e","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},retest:null,track:KASAN)[3].save-patched-req Phase: Succeeded StartedAt: 2026-07-25 23:45:28 +0000 UTC FinishedAt: 2026-07-25 23:45:33 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:data,Default:nil,Value:*{"arch":"amd64","commit_hash":"1590cf0329716306e948a8fc29f1d3ee87d3989f","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"44be5c2d-df3f-4604-8932-2d01b8b78d1e","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},} Output: &Outputs{Parameters:[]Parameter{},Artifacts:[]Artifact{Artifact{Name:artifact,Path:/tmp/artifact,Mode:nil,From:,ArtifactLocation:ArtifactLocation{ArchiveLogs:nil,S3:nil,Git:nil,HTTP:nil,Artifactory:nil,HDFS:nil,Raw:nil,OSS:nil,GCS:&GCSArtifact{GCSBucket:GCSBucket{Bucket:,ServiceAccountKeySecret:nil,},Key:series-workflow7b2sr/series-workflow7b2sr-convert-artifact-4093507934/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflow7b2sr[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"1590cf0329716306e948a8fc29f1d3ee87d3989f","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":["kvm"],"focus_symbols":["kvm_pmu_instruction_retired","kvm_pmu_branch_retired"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"1590cf0329716306e948a8fc29f1d3ee87d3989f","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"44be5c2d-df3f-4604-8932-2d01b8b78d1e","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},retest:null,track:KASAN)[4] Phase: Succeeded StartedAt: 2026-07-25 23:45:38 +0000 UTC FinishedAt: 2026-07-25 23:47:47 +0000 UTC Input: nil Output: nil --------- Name: series-workflow7b2sr[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"1590cf0329716306e948a8fc29f1d3ee87d3989f","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":["kvm"],"focus_symbols":["kvm_pmu_instruction_retired","kvm_pmu_branch_retired"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"1590cf0329716306e948a8fc29f1d3ee87d3989f","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"44be5c2d-df3f-4604-8932-2d01b8b78d1e","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},retest:null,track:KASAN)[4].boot-test-base Phase: Succeeded StartedAt: 2026-07-25 23:45:38 +0000 UTC FinishedAt: 2026-07-25 23:47:37 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:base-build-id,Default:nil,Value:*2fe7881a-9d46-467d-8a0f-25201221e3ea,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-workflow7b2sr/series-workflow7b2sr-build-action-3714692181/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-workflow7b2sr[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"1590cf0329716306e948a8fc29f1d3ee87d3989f","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":["kvm"],"focus_symbols":["kvm_pmu_instruction_retired","kvm_pmu_branch_retired"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"1590cf0329716306e948a8fc29f1d3ee87d3989f","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"44be5c2d-df3f-4604-8932-2d01b8b78d1e","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},retest:null,track:KASAN)[5] Phase: Succeeded StartedAt: 2026-07-25 23:47:47 +0000 UTC FinishedAt: 2026-07-25 23:47:47 +0000 UTC Input: nil Output: nil --------- Name: series-workflow7b2sr[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"1590cf0329716306e948a8fc29f1d3ee87d3989f","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":["kvm"],"focus_symbols":["kvm_pmu_instruction_retired","kvm_pmu_branch_retired"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"1590cf0329716306e948a8fc29f1d3ee87d3989f","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"44be5c2d-df3f-4604-8932-2d01b8b78d1e","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},retest:null,track:KASAN)[5].abort-if-base-boot-failed Phase: Skipped StartedAt: 2026-07-25 23:47:47 +0000 UTC FinishedAt: 2026-07-25 23:47:47 +0000 UTC Input: nil Output: nil --------- Name: series-workflow7b2sr[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"1590cf0329716306e948a8fc29f1d3ee87d3989f","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":["kvm"],"focus_symbols":["kvm_pmu_instruction_retired","kvm_pmu_branch_retired"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"1590cf0329716306e948a8fc29f1d3ee87d3989f","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"44be5c2d-df3f-4604-8932-2d01b8b78d1e","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},retest:null,track:KASAN)[6] Phase: Succeeded StartedAt: 2026-07-25 23:47:47 +0000 UTC FinishedAt: 2026-07-26 00:16:32 +0000 UTC Input: nil Output: nil --------- Name: series-workflow7b2sr[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"1590cf0329716306e948a8fc29f1d3ee87d3989f","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":["kvm"],"focus_symbols":["kvm_pmu_instruction_retired","kvm_pmu_branch_retired"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"1590cf0329716306e948a8fc29f1d3ee87d3989f","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"44be5c2d-df3f-4604-8932-2d01b8b78d1e","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},retest:null,track:KASAN)[6].patched-build Phase: Succeeded StartedAt: 2026-07-25 23:47:47 +0000 UTC FinishedAt: 2026-07-26 00:16:32 +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:*66f28002-1c50-41bd-b2ec-0ffb61881a0f,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-workflow7b2sr/series-workflow7b2sr-convert-artifact-4093507934/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": "75e03fc6-d8f1-4d08-afef-3c1d168c1e7b", "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-workflow7b2sr/series-workflow7b2sr-build-action-3604955698/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflow7b2sr[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"1590cf0329716306e948a8fc29f1d3ee87d3989f","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":["kvm"],"focus_symbols":["kvm_pmu_instruction_retired","kvm_pmu_branch_retired"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"1590cf0329716306e948a8fc29f1d3ee87d3989f","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"44be5c2d-df3f-4604-8932-2d01b8b78d1e","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},retest:null,track:KASAN)[6].patched-build(0) Phase: Succeeded StartedAt: 2026-07-25 23:47:47 +0000 UTC FinishedAt: 2026-07-26 00:16:22 +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:*66f28002-1c50-41bd-b2ec-0ffb61881a0f,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-workflow7b2sr/series-workflow7b2sr-convert-artifact-4093507934/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": "75e03fc6-d8f1-4d08-afef-3c1d168c1e7b", "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-workflow7b2sr/series-workflow7b2sr-build-action-3604955698/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflow7b2sr[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"1590cf0329716306e948a8fc29f1d3ee87d3989f","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":["kvm"],"focus_symbols":["kvm_pmu_instruction_retired","kvm_pmu_branch_retired"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"1590cf0329716306e948a8fc29f1d3ee87d3989f","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"44be5c2d-df3f-4604-8932-2d01b8b78d1e","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},retest:null,track:KASAN)[7] Phase: Succeeded StartedAt: 2026-07-26 00:16:32 +0000 UTC FinishedAt: 2026-07-26 00:16:32 +0000 UTC Input: nil Output: nil --------- Name: series-workflow7b2sr[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"1590cf0329716306e948a8fc29f1d3ee87d3989f","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":["kvm"],"focus_symbols":["kvm_pmu_instruction_retired","kvm_pmu_branch_retired"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"1590cf0329716306e948a8fc29f1d3ee87d3989f","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"44be5c2d-df3f-4604-8932-2d01b8b78d1e","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},retest:null,track:KASAN)[7].abort-if-patched-build-failed Phase: Skipped StartedAt: 2026-07-26 00:16:32 +0000 UTC FinishedAt: 2026-07-26 00:16:32 +0000 UTC Input: nil Output: nil --------- Name: series-workflow7b2sr[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"1590cf0329716306e948a8fc29f1d3ee87d3989f","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":["kvm"],"focus_symbols":["kvm_pmu_instruction_retired","kvm_pmu_branch_retired"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"1590cf0329716306e948a8fc29f1d3ee87d3989f","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"44be5c2d-df3f-4604-8932-2d01b8b78d1e","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},retest:null,track:KASAN)[8] Phase: Succeeded StartedAt: 2026-07-26 00:16:32 +0000 UTC FinishedAt: 2026-07-26 00:18:38 +0000 UTC Input: nil Output: nil --------- Name: series-workflow7b2sr[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"1590cf0329716306e948a8fc29f1d3ee87d3989f","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":["kvm"],"focus_symbols":["kvm_pmu_instruction_retired","kvm_pmu_branch_retired"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"1590cf0329716306e948a8fc29f1d3ee87d3989f","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"44be5c2d-df3f-4604-8932-2d01b8b78d1e","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},retest:null,track:KASAN)[8].boot-test-patched Phase: Succeeded StartedAt: 2026-07-26 00:16:32 +0000 UTC FinishedAt: 2026-07-26 00:18:28 +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:*75e03fc6-d8f1-4d08-afef-3c1d168c1e7b,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-workflow7b2sr/series-workflow7b2sr-build-action-3604955698/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-workflow7b2sr[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"1590cf0329716306e948a8fc29f1d3ee87d3989f","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":["kvm"],"focus_symbols":["kvm_pmu_instruction_retired","kvm_pmu_branch_retired"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"1590cf0329716306e948a8fc29f1d3ee87d3989f","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"44be5c2d-df3f-4604-8932-2d01b8b78d1e","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},retest:null,track:KASAN)[10] Phase: Succeeded StartedAt: 2026-07-26 00:18:38 +0000 UTC FinishedAt: 2026-07-26 03:20:06 +0000 UTC Input: nil Output: nil --------- Name: series-workflow7b2sr[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"1590cf0329716306e948a8fc29f1d3ee87d3989f","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":["kvm"],"focus_symbols":["kvm_pmu_instruction_retired","kvm_pmu_branch_retired"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"1590cf0329716306e948a8fc29f1d3ee87d3989f","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"44be5c2d-df3f-4604-8932-2d01b8b78d1e","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},retest:null,track:KASAN)[10].run-fuzz Phase: Succeeded StartedAt: 2026-07-26 00:18:38 +0000 UTC FinishedAt: 2026-07-26 03:20:06 +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-kasan-gce-root-corpus.db"],"focus":["kvm"],"focus_symbols":["kvm_pmu_instruction_retired","kvm_pmu_branch_retired"],"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:*2fe7881a-9d46-467d-8a0f-25201221e3ea,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:patched-build-id,Default:nil,Value:*75e03fc6-d8f1-4d08-afef-3c1d168c1e7b,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-workflow7b2sr/series-workflow7b2sr-build-action-3714692181/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-workflow7b2sr/series-workflow7b2sr-build-action-3604955698/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},} Output: nil --------- Name: series-workflow7b2sr[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"1590cf0329716306e948a8fc29f1d3ee87d3989f","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":["kvm"],"focus_symbols":["kvm_pmu_instruction_retired","kvm_pmu_branch_retired"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"1590cf0329716306e948a8fc29f1d3ee87d3989f","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"44be5c2d-df3f-4604-8932-2d01b8b78d1e","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},retest:null,track:KASAN)[10].run-fuzz[0] Phase: Succeeded StartedAt: 2026-07-26 00:18:38 +0000 UTC FinishedAt: 2026-07-26 00:18:59 +0000 UTC Input: nil Output: nil --------- Name: series-workflow7b2sr[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"1590cf0329716306e948a8fc29f1d3ee87d3989f","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":["kvm"],"focus_symbols":["kvm_pmu_instruction_retired","kvm_pmu_branch_retired"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"1590cf0329716306e948a8fc29f1d3ee87d3989f","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"44be5c2d-df3f-4604-8932-2d01b8b78d1e","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},retest:null,track:KASAN)[10].run-fuzz[0].save-fuzz-config Phase: Succeeded StartedAt: 2026-07-26 00:18:38 +0000 UTC FinishedAt: 2026-07-26 00:18:49 +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-kasan-gce-root-corpus.db"],"focus":["kvm"],"focus_symbols":["kvm_pmu_instruction_retired","kvm_pmu_branch_retired"],"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-workflow7b2sr/series-workflow7b2sr-convert-artifact-1409706339/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflow7b2sr[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"1590cf0329716306e948a8fc29f1d3ee87d3989f","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":["kvm"],"focus_symbols":["kvm_pmu_instruction_retired","kvm_pmu_branch_retired"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"1590cf0329716306e948a8fc29f1d3ee87d3989f","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"44be5c2d-df3f-4604-8932-2d01b8b78d1e","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},retest:null,track:KASAN)[10].run-retest Phase: Skipped StartedAt: 2026-07-26 00:18:38 +0000 UTC FinishedAt: 2026-07-26 00:18:38 +0000 UTC Input: nil Output: nil --------- Name: series-workflow7b2sr[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"1590cf0329716306e948a8fc29f1d3ee87d3989f","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":["kvm"],"focus_symbols":["kvm_pmu_instruction_retired","kvm_pmu_branch_retired"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"1590cf0329716306e948a8fc29f1d3ee87d3989f","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"44be5c2d-df3f-4604-8932-2d01b8b78d1e","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},retest:null,track:KASAN)[9] Phase: Succeeded StartedAt: 2026-07-26 00:18:38 +0000 UTC FinishedAt: 2026-07-26 00:18:38 +0000 UTC Input: nil Output: nil --------- Name: series-workflow7b2sr[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"1590cf0329716306e948a8fc29f1d3ee87d3989f","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":["kvm"],"focus_symbols":["kvm_pmu_instruction_retired","kvm_pmu_branch_retired"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"1590cf0329716306e948a8fc29f1d3ee87d3989f","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"44be5c2d-df3f-4604-8932-2d01b8b78d1e","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},retest:null,track:KASAN)[9].abort-if-patched-boot-failed Phase: Skipped StartedAt: 2026-07-26 00:18:38 +0000 UTC FinishedAt: 2026-07-26 00:18:38 +0000 UTC Input: nil Output: nil --------- Name: series-workflow7b2sr[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"1590cf0329716306e948a8fc29f1d3ee87d3989f","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":["kvm"],"focus_symbols":["kvm_pmu_instruction_retired","kvm_pmu_branch_retired"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"1590cf0329716306e948a8fc29f1d3ee87d3989f","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"44be5c2d-df3f-4604-8932-2d01b8b78d1e","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},retest:null,track:KASAN)[10].run-fuzz[1] Phase: Succeeded StartedAt: 2026-07-26 00:18:59 +0000 UTC FinishedAt: 2026-07-26 03:20:06 +0000 UTC Input: nil Output: nil --------- Name: series-workflow7b2sr[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"1590cf0329716306e948a8fc29f1d3ee87d3989f","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":["kvm"],"focus_symbols":["kvm_pmu_instruction_retired","kvm_pmu_branch_retired"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"1590cf0329716306e948a8fc29f1d3ee87d3989f","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"44be5c2d-df3f-4604-8932-2d01b8b78d1e","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},retest:null,track:KASAN)[10].run-fuzz[1].fuzz Phase: Succeeded StartedAt: 2026-07-26 00:18:59 +0000 UTC FinishedAt: 2026-07-26 03:19:56 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:base-build-id,Default:nil,Value:*2fe7881a-9d46-467d-8a0f-25201221e3ea,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:patched-build-id,Default:nil,Value:*75e03fc6-d8f1-4d08-afef-3c1d168c1e7b,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-workflow7b2sr/series-workflow7b2sr-build-action-3714692181/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-workflow7b2sr/series-workflow7b2sr-build-action-3604955698/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-workflow7b2sr/series-workflow7b2sr-convert-artifact-1409706339/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,}