Name: series-workflowvd28x Phase: Succeeded StartedAt: 2026-08-29 10:21:08 +0000 UTC FinishedAt: 2026-08-29 14:04:22 +0000 UTC Input: nil Output: nil --------- Name: series-workflowvd28x[0] Phase: Succeeded StartedAt: 2026-08-29 10:21:08 +0000 UTC FinishedAt: 2026-08-29 10:25:43 +0000 UTC Input: nil Output: nil --------- Name: series-workflowvd28x[0].run-triage Phase: Succeeded StartedAt: 2026-08-29 10:21:08 +0000 UTC FinishedAt: 2026-08-29 10:25:43 +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": "ca800a9302764c445de0da0e84d2252400a770ee", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "MAC80211", "CFG80211", "MAC80211_HWSIM" ], "series_id": "" }, "patched": { "arch": "amd64", "tree_name": "axboe", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git", "commit_hash": "ca800a9302764c445de0da0e84d2252400a770ee", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "MAC80211", "CFG80211", "MAC80211_HWSIM" ], "series_id": "b65cb8b3-c2bf-48ea-a3ef-74939d8b746d" }, "track": "KASAN", "fuzz": { "focus": [ "net" ], "focus_symbols": [ "ieee80211_emulate_remove_chanctx", "ieee80211_free_chanctx" ], "corpus_urls": [ "https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db" ], "skip_cover_check": false, "bug_title_re": "" }, "retest": null } ], "trajectory": "CjwhZG9jdHlwZSBodG1sPgo8aHRtbD4KPGhlYWQ+Cgk8dGl0bGU+QUkgVHJhamVjdG9yeTwvdGl0bGU+Cgk8c3R5bGU+CgkJdGFibGUgewoJCQlib3JkZXI6IDFweCBzb2xpZCAjY2NjOwoJCQltYXJnaW46IDIwcHggNXB4OwoJCQlib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlOwoJCQl3aGl0ZS1zcGFjZTogbm93cmFwOwoJCQl0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsKCQkJb3ZlcmZsb3c6IGhpZGRlbjsKCQl9CgoJCXRhYmxlIGNhcHRpb24gewoJCQlmb250LXdlaWdodDogYm9sZDsKCQl9CgoJCXRhYmxlIHRkLCB0YWJsZSB0aCB7CgkJCXZlcnRpY2FsLWFsaWduOiB0b3A7CgkJCXBhZGRpbmc6IDJweCA4cHg7CgkJCXRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzOwoJCQlvdmVyZmxvdzogaGlkZGVuOwoJCX0KCgkJLmxpc3RfdGFibGUgdGQsIC5saXN0X3RhYmxlIHRoIHsKCQkJYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCAjY2NjOwoJCX0KCgkJLmxpc3RfdGFibGUgdGggewoJCQliYWNrZ3JvdW5kOiAjRjRGNEY0OwoJCX0KCgkJLmxpc3RfdGFibGUgdHI6bnRoLWNoaWxkKDJuKSB7CgkJCWJhY2tncm91bmQ6ICNGNEY0RjQ7CgkJfQoKCQkubGlzdF90YWJsZSB0cjpob3ZlciB7CgkJCWJhY2tncm91bmQ6ICNmZmZmOTk7CgkJfQoKCQkjYWlfZGV0YWlsc19kaXYgcHJlIHsKCQkJbWFyZ2luOiAxcHg7CgkJCW1heC13aWR0aDogMTIwY2g7CgkJCXdoaXRlLXNwYWNlOiBwcmUtd3JhcDsKCQkJb3ZlcmZsb3ctd3JhcDogYnJlYWstd29yZDsKCQl9Cgk8L3N0eWxlPgo8L2hlYWQ+Cjxib2R5PgoJPGgxPkFJIFRyYWplY3Rvcnk8L2gxPgoJPGJyPgoKCQoJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQk8Y2FwdGlvbj5UcmFqZWN0b3J5OiAoPGEgaHJlZj0iIyIgb25jbGljaz0idG9nZ2xlQWxsRGV0YWlscygpOyByZXR1cm4gZmFsc2U7Ij5FeHBhbmQvQ29sbGFwc2UgQWxsPC9hPik8L2NhcHRpb24+CgkJPHRoZWFkPjx0cj4KCQkJPHRoPlNlcTwvdGg+CgkJCTx0aD5UaW1lc3RhbXA8L3RoPgoJCQk8dGg+VHlwZTwvdGg+CgkJCTx0aD5OYW1lPC90aD4KCQkJPHRoPkR1cmF0aW9uPC90aD4KCQk8L3RyPjwvdGhlYWQ+CgkJPHRib2R5PgoJCQoJCTx0cj4KCQkJPHRkPjAvMDwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzI5IDEwOjIyPC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+M208L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O01BQzgwMjExJiMzNDssCiAgICAmIzM0O0NGRzgwMjExJiMzNDssCiAgICAmIzM0O01BQzgwMjExX0hXU0lNJiMzNDsKICBdLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFsKICAgICYjMzQ7aWVlZTgwMjExX2VtdWxhdGVfcmVtb3ZlX2NoYW5jdHgmIzM0OywKICAgICYjMzQ7aWVlZTgwMjExX2ZyZWVfY2hhbmN0eCYjMzQ7CiAgXSwKICAmIzM0O0tNU0FOUmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIHJlbW92ZXMgYSBjYWxsIHRvIGBfaWVlZTgwMjExX2h3X2NvbmZfY2hhbihsb2NhbCwgTlVMTClgIGluc2lkZSBgaWVlZTgwMjExX2VtdWxhdGVfcmVtb3ZlX2NoYW5jdHgoKWAgdG8gYXZvaWQgdW5uZWNlc3NhcnkgY2hhbm5lbCByZWNvbmZpZ3VyYXRpb24gd2hlbiByZW1vdmluZyBhIGNoYW5uZWwgY29udGV4dCBpbiBlbXVsYXRpb24gbW9kZS5cblxuVGhpcyBtb2RpZmljYXRpb24gZG9lcyBub3Q6XG4xLiBBbGxvY2F0ZSwgYWNjZXNzLCBvciBleHBvc2UgYW55IHVuaW5pdGlhbGl6ZWQgbWVtb3J5IChzdGFjaywgaGVhcCwgb3IgcGFnZSBhbGxvY2F0aW9ucykuXG4yLiBDb3B5IGFueSBrZXJuZWwgZGF0YSBzdHJ1Y3R1cmVzIHRvIHVzZXJzcGFjZSAobm8gaW5mby1sZWFrIHJpc2spLlxuMy4gSW50cm9kdWNlIG9yIGFsdGVyIGJyYW5jaCBjb25kaXRpb25zIGJhc2VkIG9uIHVuaW5pdGlhbGl6ZWQgZGF0YSBvciBtYW5pcHVsYXRlIGJ1ZmZlciBib3VuZHMuXG5cbkFueSBwb3RlbnRpYWwgYmVoYXZpb3JhbCByZWdyZXNzaW9ucyBvciBkcml2ZXIgc3RhdGUgaW5jb25zaXN0ZW5jaWVzIHdvdWxkIGJlIGZ1bmN0aW9uYWwgYnVncyBvciBjb3ZlcmVkIHVuZGVyIHN0YW5kYXJkIGtlcm5lbCB0ZXN0aW5nL0tBU0FOLiBUaGVyZWZvcmUsIGEgZGVkaWNhdGVkIEtNU0FOIGZ1enppbmcgc2Vzc2lvbiBpcyBub3Qgd2FycmFudGVkLiYjMzQ7LAogICYjMzQ7TmVlZHNLTVNBTiYjMzQ7OiBmYWxzZSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBtb2RpZmllcyBgaWVlZTgwMjExX2VtdWxhdGVfcmVtb3ZlX2NoYW5jdHhgIGluIG1hYzgwMjExIHRvIGF2b2lkIGNhbGxpbmcgYF9pZWVlODAyMTFfaHdfY29uZl9jaGFuKGxvY2FsLCBOVUxMKWAgd2hlbiBjaGFubmVsIGNvbnRleHRzIGFyZSByZW1vdmVkLCBjaGFuZ2luZyBjaGFubmVsIGNvbmZpZ3VyYXRpb24gYmVoYXZpb3IgZm9yIGRyaXZlcnMgdXNpbmcgZW11bGF0ZWQgY2hhbm5lbCBjb250ZXh0cyAoc3VjaCBhcyBtYWM4MDIxMV9od3NpbSkuIFRoaXMgdG91Y2hlcyByZWFjaGFibGUgY29yZSB3aXJlbGVzcyBuZXR3b3JraW5nIGxvZ2ljIGFuZCBpcyB3b3J0aCBmdXp6aW5nLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IHRydWUKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEvMTwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzI5IDEwOjIyPC90ZD4KCQkJPHRkPmFjdGlvbjwvdGQ+CgkJCTx0ZD5yZWFkLXBhdGNoLWRpZmY8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtQYXRjaERpZmYmIzM0OzogJiMzNDtjb21taXQgYTlkYTVjZmMzNGZhMTUyMjdlZDFiNmFkZTVlM2YxYzA4MDI0ZWI4MVxuQXV0aG9yOiBzeXotY2x1c3RlciBcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVx1MDAzZVxuRGF0ZTogICBTYXQgQXVnIDI5IDEwOjIyOjIwIDIwMjYgJiM0MzswMDAwXG5cbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcblxuZGlmZiAtLWdpdCBhL25ldC9tYWM4MDIxMS9tYWluLmMgYi9uZXQvbWFjODAyMTEvbWFpbi5jXG5pbmRleCBhNTk4MzdiOWY0ODBmLi5iM2Y5YjNiYzNjYWM3IDEwMDY0NFxuLS0tIGEvbmV0L21hYzgwMjExL21haW4uY1xuJiM0MzsmIzQzOyYjNDM7IGIvbmV0L21hYzgwMjExL21haW4uY1xuQEAgLTI4OSw5ICYjNDM7Mjg5LDE0IEBAIHZvaWQgaWVlZTgwMjExX2VtdWxhdGVfcmVtb3ZlX2NoYW5jdHgoc3RydWN0IGllZWU4MDIxMV9odyAqaHcsXG4ge1xuIFx0c3RydWN0IGllZWU4MDIxMV9sb2NhbCAqbG9jYWwgPSBod190b19sb2NhbChodyk7XG4gXG4mIzQzO1x0LypcbiYjNDM7XHQgKiBXaXRoIG5vIGNvbnRleHQgbGVmdCB0aGVyZSBpcyBub3RoaW5nIHRvIGNvbmZpZ3VyZTogbm90aGluZyBpcyBvblxuJiM0MztcdCAqIHRoZSBhaXIsIGFuZCB0aGUgbmV4dCBjb250ZXh0IHNldHMgdGhlIGNoYW5uZWwuIFBhcmtpbmcgdGhlIHJhZGlvXG4mIzQzO1x0ICogb24gdGhlIGRlZmF1bHQgY2hhbm5lbCBoZXJlIG9ubHkgdG8gbW92ZSBpdCBhZ2FpbiB3aGVuIHRoZSBuZXh0XG4mIzQzO1x0ICogY29udGV4dCBpcyBhZGRlZCBjb3N0cyBkcml2ZXJzIHdpdGhvdXQgbmF0aXZlIGNoYW5uZWwgY29udGV4dHMgYVxuJiM0MztcdCAqIGZ1bGwgY2hhbm5lbCBjaGFuZ2UgcGVyIHJldHVuZS5cbiYjNDM7XHQgKi9cbiBcdGxvY2FsLVx1MDAzZWh3LmNvbmYucmFkYXJfZW5hYmxlZCA9IGZhbHNlO1xuLVxuLVx0X2llZWU4MDIxMV9od19jb25mX2NoYW4obG9jYWwsIE5VTEwpO1xuIH1cbiBFWFBPUlRfU1lNQk9MKGllZWU4MDIxMV9lbXVsYXRlX3JlbW92ZV9jaGFuY3R4KTtcbiBcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4yLzE8L3RkPgoJCQk8dGQ+MjAyNi8wOC8yOSAxMDoyMjwvdGQ+CgkJCTx0ZD5hZ2VudDwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4ybTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5jb3JlPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogWwogICAgJiMzNDtNQUM4MDIxMSYjMzQ7LAogICAgJiMzNDtDRkc4MDIxMSYjMzQ7LAogICAgJiMzNDtNQUM4MDIxMV9IV1NJTSYjMzQ7CiAgXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbCiAgICAmIzM0O2llZWU4MDIxMV9lbXVsYXRlX3JlbW92ZV9jaGFuY3R4JiMzNDssCiAgICAmIzM0O2llZWU4MDIxMV9mcmVlX2NoYW5jdHgmIzM0OwogIF0sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggbW9kaWZpZXMgYGllZWU4MDIxMV9lbXVsYXRlX3JlbW92ZV9jaGFuY3R4YCBpbiBtYWM4MDIxMSB0byBhdm9pZCBjYWxsaW5nIGBfaWVlZTgwMjExX2h3X2NvbmZfY2hhbihsb2NhbCwgTlVMTClgIHdoZW4gY2hhbm5lbCBjb250ZXh0cyBhcmUgcmVtb3ZlZCwgY2hhbmdpbmcgY2hhbm5lbCBjb25maWd1cmF0aW9uIGJlaGF2aW9yIGZvciBkcml2ZXJzIHVzaW5nIGVtdWxhdGVkIGNoYW5uZWwgY29udGV4dHMgKHN1Y2ggYXMgbWFjODAyMTFfaHdzaW0pLiBUaGlzIHRvdWNoZXMgcmVhY2hhYmxlIGNvcmUgd2lyZWxlc3MgbmV0d29ya2luZyBsb2dpYyBhbmQgaXMgd29ydGggZnV6emluZy4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiB0cnVlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPkluc3RydWN0aW9uOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+WW91IGFyZSBhbiBleHBlcnQgTGludXgga2VybmVsIG1haW50YWluZXIuCllvdXIgam9iIGlzIHRvIHJldmlldyBhIHByb3ZpZGVkIHBhdGNoIHNlcmllcyBhbmQgZGV0ZXJtaW5lCmlmIGl0IG1ha2VzIGZ1bmN0aW9uYWwgY2hhbmdlcyB0byB0aGUga2VybmVsIHRoYXQgc2hvdWxkIGJlIGZ1enplZC4KCklNUE9SVEFOVDogVGhlIGNoYW5nZXMgaGF2ZSBBTFJFQURZIGJlZW4gYXBwbGllZCBhbmQgY29tbWl0dGVkIGFzIHRoZSBIRUFEIGNvbW1pdCBpbgp5b3VyIHdvcmtzcGFjZS4gRG8gTk9UIHJlbHkgb24geW91ciBpbnRlcm5hbCBrbm93bGVkZ2Ugb2YgdGhlIGtlcm5lbC4gWW91IG11c3QgYWN0aXZlbHkKdXNlIHlvdXIgY29kZSBhY2Nlc3MgdG9vbHMgdG8gZXhhbWluZSB0aGUgYWN0dWFsIHNvdXJjZSBjb2RlIGFuZCBjb25maXJtIGFueSBhc3N1bXB0aW9ucy4KClJldHVybiBXb3J0aEZ1enppbmc9ZmFsc2UgaWYgdGhlIHBhdGNoIG9ubHkgY29udGFpbnM6Ci0gTW9kaWZpY2F0aW9ucyB0byBEb2N1bWVudGF0aW9uLywgS2NvbmZpZyBmaWxlcywgb3IgY29kZSBjb21tZW50cy4KLSBQdXJlbHkgZGVjb3JhdGl2ZSBjaGFuZ2VzLCBzdWNoIGFzIGxvZ2dpbmcgKGUuZy4sIHByX2VyciwgcHJpbnRrKSBvciB0cmFjZXBvaW50cy4KLSBDaGFuZ2VzIHRvIG51bWVyaWMgY29uc3RhbnRzIG9yIG1hY3JvcyB0aGF0IGRvIG5vdCBmdW5jdGlvbmFsbHkgYWx0ZXIgZXhlY3V0aW9uIGZsb3cuCi0gQ29kZSBwYXRocyB0aGF0IGFyZSBpbXBvc3NpYmxlIHRvIHJlYWNoIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIEdDRSBvciBRRU1VLAogIGV2ZW4gd2hlbiB1dGlsaXppbmcgc29mdHdhcmUtZW11bGF0ZWQgaGFyZHdhcmUgKGUuZy4sIHVzYiBnYWRnZXQsIG1hYzgwMjExX2h3c2ltKS4KLSBDb2RlIGluIHZlbmRvci1zcGVjaWZpYyBQQ0llIHN3aXRjaCwgU21hcnROSUMsIG9yIEdQVSBkcml2ZXJzIChlLmcuLCBtbHhzdywgcGRzX2NvcmUsIHFlZCwKICBpb25pYywgYW1kZ3B1KSB0aGF0IHJlcXVpcmUgcGh5c2ljYWwgUENJZSBoYXJkd2FyZSBjYXJkcyBub3QgZW11bGF0ZWQgaW4gc3RhbmRhcmQgUUVNVS4KLSBEcml2ZXIgLnJlbW92ZSwgLnNodXRkb3duLCBvciBwY2lfdW5yZWdpc3Rlcl9kcml2ZXIgdGVhcmRvd24gY2FsbGJhY2tzIChlLmcuLCBpZ2JfcmVtb3ZlKQogIHRoYXQgYXJlIGV4ZWN1dGVkIG9ubHkgZHVyaW5nIFBDSSBob3QtdW5wbHVnIG9yIHN5c2ZzIGRyaXZlciB1bmJpbmQgb3BlcmF0aW9ucy4KCklmIGl0IG1vZGlmaWVzIHJlYWNoYWJsZSBjb3JlIGtlcm5lbCBsb2dpYywgZHJpdmVycywgb3IgYXJjaGl0ZWN0dXJlcywgdXNlIHlvdXIgY29kZSBzZWFyY2gKdG9vbHMgdG8gdmVyaWZ5IHRoZSBjb2RlIGNhbiBiZSBleGVjdXRlZCwgdGhlbiByZXR1cm4gV29ydGhGdXp6aW5nPXRydWUuCgpXaGVuIHJldHVybmluZyBXb3J0aEZ1enppbmc9dHJ1ZSwgeW91IE1VU1QgQUxTTzoKMS4gRXh0cmFjdCBhbnkgc3BlY2lmaWMga2VybmVsIGZ1bmN0aW9ucyB0aGF0IHNob3VsZCBiZSBoZWF2aWx5IGZ1enplZCBpbnRvIEZvY3VzU3ltYm9scy4KICAgQXZvaWQgbGlzdGluZyBnZW5lcmljIGhvdC1wYXRoIGZ1bmN0aW9ucyB0byBwcmV2ZW50IHNrZXdlZCB0ZXN0IGRpc3RyaWJ1dGlvbnMuCiAgIFByZWZlciBub24tc3RhdGljLCBub24taW5saW5lZCBBUEkgZW50cnlwb2ludCBmdW5jdGlvbnMgb3ZlciBpbnRlcm5hbCBzdGF0aWMgaGVscGVyIGZ1bmN0aW9ucwogICAod2hpY2ggYXJlIGlubGluZWQgYnkgdGhlIGNvbXBpbGVyIGFuZCBkbyBub3QgaGF2ZSBkaXN0aW5jdCBzeW1ib2wgYWRkcmVzc2VzKS4KMi4gSWRlbnRpZnkgYW55IHNwZWNpZmljIENPTkZJR18gb3B0aW9ucyByZXF1aXJlZCB0byBwcm9wZXJseSB0ZXN0IHRoaXMgbmV3L21vZGlmaWVkIGZlYXR1cmUuCiAgIEdvIGFuZCBsb29rIGludG8gdGhlIEtjb25maWcgZmlsZXMgYW5kIGNoZWNrIGZvciBpZmRlZnMgYXJvdW5kIHRoZSBjb2RlLCBkbyBub3QgbWFrZSBhc3N1bXB0aW9ucy4KICAgQWxzbyBjaGVjayAmIzM0O2RlcGVuZHMgb24mIzM0OyBsaW5lcyBpbiBLY29uZmlnIHRvIGluY2x1ZGUgYW55IG5vbi1zdGFuZGFyZCBwYXJlbnQgc3Vic3lzdGVtIGNvbmZpZ3MKICAgbmVlZGVkIGZvciBLYnVpbGQgdG8gY29tcGlsZSB0aGUgY29kZSBzdGF0aWNhbGx5IGludG8gdm1saW51eC4gTGlzdCB0aGVtIGluIHRoZSBFbmFibGVDb25maWdzCiAgIG91dHB1dCBhcnJheSwgYW5kIERPIE5PVCBhZGQgYSAmIzM5O0NPTkZJR18mIzM5OyBwcmVmaXggKGUuZy4sIHJldHVybiAmIzM0O05FVF9JUFY0JiMzNDsgaW5zdGVhZCBvZiAmIzM0O0NPTkZJR19ORVRfSVBWNCYjMzQ7KS4KUHJlZmVyIGNhbGxpbmcgc2V2ZXJhbCB0b29scyBhdCB0aGUgc2FtZSB0aW1lIHRvIHNhdmUgcm91bmQtdHJpcHMuCgoKVXNlIHNldC1yZXN1bHRzIHRvb2wgdG8gcHJvdmlkZSByZXN1bHRzIG9mIHRoZSBhbmFseXNpcy4KSXQgbXVzdCBiZSBjYWxsZWQgZXhhY3RseSBvbmNlIGJlZm9yZSB0aGUgZmluYWwgcmVwbHkuCklnbm9yZSByZXN1bHRzIG9mIHRoaXMgdG9vbC4KPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Qcm9tcHQ6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Gb3IgeW91ciBjb252ZW5pZW5jZSwgaGVyZSBpcyB0aGUgZGlmZiBvZiB0aGUgY2hhbmdlczoKY29tbWl0IGE5ZGE1Y2ZjMzRmYTE1MjI3ZWQxYjZhZGU1ZTNmMWMwODAyNGViODEKQXV0aG9yOiBzeXotY2x1c3RlciAmbHQ7dHJpYWdlQHN5emthbGxlci5jb20mZ3Q7CkRhdGU6ICAgU2F0IEF1ZyAyOSAxMDoyMjoyMCAyMDI2ICYjNDM7MDAwMAoKICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlldwoKZGlmZiAtLWdpdCBhL25ldC9tYWM4MDIxMS9tYWluLmMgYi9uZXQvbWFjODAyMTEvbWFpbi5jCmluZGV4IGE1OTgzN2I5ZjQ4MGYuLmIzZjliM2JjM2NhYzcgMTAwNjQ0Ci0tLSBhL25ldC9tYWM4MDIxMS9tYWluLmMKJiM0MzsmIzQzOyYjNDM7IGIvbmV0L21hYzgwMjExL21haW4uYwpAQCAtMjg5LDkgJiM0MzsyODksMTQgQEAgdm9pZCBpZWVlODAyMTFfZW11bGF0ZV9yZW1vdmVfY2hhbmN0eChzdHJ1Y3QgaWVlZTgwMjExX2h3ICpodywKIHsKIAlzdHJ1Y3QgaWVlZTgwMjExX2xvY2FsICpsb2NhbCA9IGh3X3RvX2xvY2FsKGh3KTsKIAomIzQzOwkvKgomIzQzOwkgKiBXaXRoIG5vIGNvbnRleHQgbGVmdCB0aGVyZSBpcyBub3RoaW5nIHRvIGNvbmZpZ3VyZTogbm90aGluZyBpcyBvbgomIzQzOwkgKiB0aGUgYWlyLCBhbmQgdGhlIG5leHQgY29udGV4dCBzZXRzIHRoZSBjaGFubmVsLiBQYXJraW5nIHRoZSByYWRpbwomIzQzOwkgKiBvbiB0aGUgZGVmYXVsdCBjaGFubmVsIGhlcmUgb25seSB0byBtb3ZlIGl0IGFnYWluIHdoZW4gdGhlIG5leHQKJiM0MzsJICogY29udGV4dCBpcyBhZGRlZCBjb3N0cyBkcml2ZXJzIHdpdGhvdXQgbmF0aXZlIGNoYW5uZWwgY29udGV4dHMgYQomIzQzOwkgKiBmdWxsIGNoYW5uZWwgY2hhbmdlIHBlciByZXR1bmUuCiYjNDM7CSAqLwogCWxvY2FsLSZndDtody5jb25mLnJhZGFyX2VuYWJsZWQgPSBmYWxzZTsKLQotCV9pZWVlODAyMTFfaHdfY29uZl9jaGFuKGxvY2FsLCBOVUxMKTsKIH0KIEVYUE9SVF9TWU1CT0woaWVlZTgwMjExX2VtdWxhdGVfcmVtb3ZlX2NoYW5jdHgpOwogCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjMvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzI5IDEwOjIyPC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy43LWZsYXNoPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDIxODcKCQkJCQkJCW91dHB1dDogMjkKCQkJCQkJCXRob3VnaHRzOiAzNzgKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqQW5hbHl6aW5nIGEgbWFjODAyMTEgQ2hhbm5lbCBDb250ZXh0IFJlbW92YWwgT3B0aW1pemF0aW9uKioKCk9rYXksIHNvIEkmIzM5O20gbG9va2luZyBhdCB0aGlzIHBhdGNoIGZvciBgbWFjODAyMTFgIGFuZCBzcGVjaWZpY2FsbHkgdGhlIGBpZWVlODAyMTFfZW11bGF0ZV9yZW1vdmVfY2hhbmN0eGAgZnVuY3Rpb24uIFRoZSBjb2RlIGhhcyBiZWVuIHRyaW1tZWQgZG93bjsgaXQgdXNlZCB0byBmb3JjZSB0aGUgcmFkaW8gdG8gYSBkZWZhdWx0IGNoYW5uZWwgYWZ0ZXIgcmVtb3ZpbmcgYSBjaGFubmVsIGNvbnRleHQuIE5vdywgaXQganVzdCBkaXNhYmxlcyByYWRhciBkZXRlY3Rpb24uIFRoZSBjb21tZW50IGV4cGxhaW5zIHRoZSByYXRpb25hbGU7IEkgY2FuIHNlZSB0aGUgZWZmaWNpZW5jeSBnYWlucyBpbW1lZGlhdGVseS4KCkVzc2VudGlhbGx5LCBieSAqbm90KiBzZXR0aW5nIGEgZGVmYXVsdCBjaGFubmVsIHdoZW4gcmVtb3ZpbmcgYSBjb250ZXh0LCB3ZSYjMzk7cmUgYXZvaWRpbmcgYW4gdW5uZWNlc3NhcnkgY2hhbm5lbCBjaGFuZ2Ugb3BlcmF0aW9uLiBJZiB0aGUgbmV4dCBjb250ZXh0IGFkZGVkIHdpbGwgZGljdGF0ZSB0aGUgYWN0dWFsIGNoYW5uZWwsIHdoeSB3YXN0ZSB0aW1lIHNldHRpbmcgYSB0ZW1wb3Jhcnkgb25lPyBUaGlzIGlzIGVzcGVjaWFsbHkgYmVuZWZpY2lhbCBmb3IgZHJpdmVycyB0aGF0IGFyZSBlbXVsYXRpbmcgY2hhbm5lbCBjb250ZXh0cyBiZWNhdXNlIHRoZXkmIzM5O3JlIGxpa2VseSB0byBpbmN1ciBhIGZ1bGwgY2hhbm5lbCBjaGFuZ2Ugb3BlcmF0aW9uIG9uIGVhY2ggdHVuZS4KClRoZSBwcmV2aW91cyBiZWhhdmlvciBvZiBjYWxsaW5nIGBfaWVlZTgwMjExX2h3X2NvbmZfY2hhbihsb2NhbCwgTlVMTClgIHdhcyBwcm9iYWJseSBhIGxlZ2FjeSB0aGluZywgYWRkZWQgZm9yIHNvbWUgb3RoZXIgcmVhc29uLCBhbmQgdGhlIGRldmVsb3BlciByZWFsaXplZCBpdCB3YXMgaW5lZmZpY2llbnQgaW4gY2VydGFpbiBzY2VuYXJpb3MuIEl0IGxvb2tzIGxpa2UgdGhleSYjMzk7dmUgY29ycmVjdGx5IGlkZW50aWZpZWQgdGhlIHBlcmZvcm1hbmNlIGJvdHRsZW5lY2sgYW5kIGFkZHJlc3NlZCBpdCBkaXJlY3RseS4gSSBuZWVkIHRvIG1ha2Ugc3VyZSB0aGlzIGRvZXNuJiMzOTt0IGludHJvZHVjZSBhbnkgcmVncmVzc2lvbnMsIGJ1dCBJJiMzOTttIHByZXR0eSBjb25maWRlbnQgaW4gdGhlIGxvZ2ljIG9mIHRoaXMgY2hhbmdlLiBJdCBzaG91bGQgYmUgYSBjbGVhbiwgcGVyZm9ybWFuY2UtaW1wcm92aW5nIG9wdGltaXphdGlvbi4gSSBtaWdodCB3YW50IHRvIGNoZWNrIHRoZSBjb21taXQgbG9nIHRvIHNlZSBpZiB0aGVyZSB3ZXJlIGFueSBkaXNjdXNzaW9ucyBhcm91bmQgdGhpcy4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD40LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8yOSAxMDoyMjwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtpZWVlODAyMTFfZW11bGF0ZV9yZW1vdmVfY2hhbmN0eCYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9hZG10ZWsvYWRtODIxMS5jPTE3NjE9c3RhdGljIGNvbnN0IHN0cnVjdCBpZWVlODAyMTFfb3BzIGFkbTgyMTFfb3BzID0ge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYWRtdGVrL2FkbTgyMTEuYy0xNzYyLVx0LmFkZF9jaGFuY3R4ID0gaWVlZTgwMjExX2VtdWxhdGVfYWRkX2NoYW5jdHgsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hZG10ZWsvYWRtODIxMS5jOjE3NjM6XHQucmVtb3ZlX2NoYW5jdHggPSBpZWVlODAyMTFfZW11bGF0ZV9yZW1vdmVfY2hhbmN0eCxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2FkbXRlay9hZG04MjExLmMtMTc2NC1cdC5jaGFuZ2VfY2hhbmN0eCA9IGllZWU4MDIxMV9lbXVsYXRlX2NoYW5nZV9jaGFuY3R4LFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hcjU1MjMvYXI1NTIzLmM9MTM2MT1zdGF0aWMgY29uc3Qgc3RydWN0IGllZWU4MDIxMV9vcHMgYXI1NTIzX29wcyA9IHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hcjU1MjMvYXI1NTIzLmMtMTM2Mi1cdC5hZGRfY2hhbmN0eCA9IGllZWU4MDIxMV9lbXVsYXRlX2FkZF9jaGFuY3R4LFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2FyNTUyMy9hcjU1MjMuYzoxMzYzOlx0LnJlbW92ZV9jaGFuY3R4ID0gaWVlZTgwMjExX2VtdWxhdGVfcmVtb3ZlX2NoYW5jdHgsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXI1NTIzL2FyNTUyMy5jLTEzNjQtXHQuY2hhbmdlX2NoYW5jdHggPSBpZWVlODAyMTFfZW11bGF0ZV9jaGFuZ2VfY2hhbmN0eCxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNWsvbWFjODAyMTEtb3BzLmM9Nzg1PWNvbnN0IHN0cnVjdCBpZWVlODAyMTFfb3BzIGF0aDVrX2h3X29wcyA9IHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg1ay9tYWM4MDIxMS1vcHMuYy03ODYtXHQuYWRkX2NoYW5jdHggPSBpZWVlODAyMTFfZW11bGF0ZV9hZGRfY2hhbmN0eCxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg1ay9tYWM4MDIxMS1vcHMuYzo3ODc6XHQucmVtb3ZlX2NoYW5jdHggPSBpZWVlODAyMTFfZW11bGF0ZV9yZW1vdmVfY2hhbmN0eCxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg1ay9tYWM4MDIxMS1vcHMuYy03ODgtXHQuY2hhbmdlX2NoYW5jdHggPSBpZWVlODAyMTFfZW11bGF0ZV9jaGFuZ2VfY2hhbmN0eCxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvaHRjX2Rydl9tYWluLmM9MTg3ND1zdHJ1Y3QgaWVlZTgwMjExX29wcyBhdGg5a19odGNfb3BzID0ge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2h0Y19kcnZfbWFpbi5jLTE4NzUtXHQuYWRkX2NoYW5jdHggPSBpZWVlODAyMTFfZW11bGF0ZV9hZGRfY2hhbmN0eCxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9odGNfZHJ2X21haW4uYzoxODc2Olx0LnJlbW92ZV9jaGFuY3R4ID0gaWVlZTgwMjExX2VtdWxhdGVfcmVtb3ZlX2NoYW5jdHgsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvaHRjX2Rydl9tYWluLmMtMTg3Ny1cdC5jaGFuZ2VfY2hhbmN0eCA9IGllZWU4MDIxMV9lbXVsYXRlX2NoYW5nZV9jaGFuY3R4LFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9tYWluLmM9Mjc5MD1zdHJ1Y3QgaWVlZTgwMjExX29wcyBhdGg5a19vcHMgPSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvbWFpbi5jLTI3OTEtXHQuYWRkX2NoYW5jdHggPSBpZWVlODAyMTFfZW11bGF0ZV9hZGRfY2hhbmN0eCxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9tYWluLmM6Mjc5MjpcdC5yZW1vdmVfY2hhbmN0eCA9IGllZWU4MDIxMV9lbXVsYXRlX3JlbW92ZV9jaGFuY3R4LFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL21haW4uYy0yNzkzLVx0LmNoYW5nZV9jaGFuY3R4ID0gaWVlZTgwMjExX2VtdWxhdGVfY2hhbmdlX2NoYW5jdHgsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2Nhcmw5MTcwL21haW4uYz0xNzE5PXN0YXRpYyBjb25zdCBzdHJ1Y3QgaWVlZTgwMjExX29wcyBjYXJsOTE3MF9vcHMgPSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvY2FybDkxNzAvbWFpbi5jLTE3MjAtXHQuYWRkX2NoYW5jdHggPSBpZWVlODAyMTFfZW11bGF0ZV9hZGRfY2hhbmN0eCxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9jYXJsOTE3MC9tYWluLmM6MTcyMTpcdC5yZW1vdmVfY2hhbmN0eCA9IGllZWU4MDIxMV9lbXVsYXRlX3JlbW92ZV9jaGFuY3R4LFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2Nhcmw5MTcwL21haW4uYy0xNzIyLVx0LmNoYW5nZV9jaGFuY3R4ID0gaWVlZTgwMjExX2VtdWxhdGVfY2hhbmdlX2NoYW5jdHgsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL3djbjM2eHgvbWFpbi5jPTEzNTA9c3RhdGljIGNvbnN0IHN0cnVjdCBpZWVlODAyMTFfb3BzIHdjbjM2eHhfb3BzID0ge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL3djbjM2eHgvbWFpbi5jLTEzNTEtXHQuYWRkX2NoYW5jdHggPSBpZWVlODAyMTFfZW11bGF0ZV9hZGRfY2hhbmN0eCxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC93Y24zNnh4L21haW4uYzoxMzUyOlx0LnJlbW92ZV9jaGFuY3R4ID0gaWVlZTgwMjExX2VtdWxhdGVfcmVtb3ZlX2NoYW5jdHgsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvd2NuMzZ4eC9tYWluLmMtMTM1My1cdC5jaGFuZ2VfY2hhbmN0eCA9IGllZWU4MDIxMV9lbXVsYXRlX2NoYW5nZV9jaGFuY3R4LFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0bWVsL2F0NzZjNTB4LXVzYi5jPTIxNzc9c3RhdGljIGNvbnN0IHN0cnVjdCBpZWVlODAyMTFfb3BzIGF0NzZfb3BzID0ge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRtZWwvYXQ3NmM1MHgtdXNiLmMtMjE3OC1cdC5hZGRfY2hhbmN0eCA9IGllZWU4MDIxMV9lbXVsYXRlX2FkZF9jaGFuY3R4LFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRtZWwvYXQ3NmM1MHgtdXNiLmM6MjE3OTpcdC5yZW1vdmVfY2hhbmN0eCA9IGllZWU4MDIxMV9lbXVsYXRlX3JlbW92ZV9jaGFuY3R4LFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRtZWwvYXQ3NmM1MHgtdXNiLmMtMjE4MC1cdC5jaGFuZ2VfY2hhbmN0eCA9IGllZWU4MDIxMV9lbXVsYXRlX2NoYW5nZV9jaGFuY3R4LFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2I0My9tYWluLmM9NTE4OD1zdGF0aWMgY29uc3Qgc3RydWN0IGllZWU4MDIxMV9vcHMgYjQzX2h3X29wcyA9IHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2I0My9tYWluLmMtNTE4OS1cdC5hZGRfY2hhbmN0eCA9IGllZWU4MDIxMV9lbXVsYXRlX2FkZF9jaGFuY3R4LFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYjQzL21haW4uYzo1MTkwOlx0LnJlbW92ZV9jaGFuY3R4ID0gaWVlZTgwMjExX2VtdWxhdGVfcmVtb3ZlX2NoYW5jdHgsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9iNDMvbWFpbi5jLTUxOTEtXHQuY2hhbmdlX2NoYW5jdHggPSBpZWVlODAyMTFfZW11bGF0ZV9jaGFuZ2VfY2hhbmN0eCxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9iNDNsZWdhY3kvbWFpbi5jPTM1MzI9c3RhdGljIGNvbnN0IHN0cnVjdCBpZWVlODAyMTFfb3BzIGI0M2xlZ2FjeV9od19vcHMgPSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9iNDNsZWdhY3kvbWFpbi5jLTM1MzMtXHQuYWRkX2NoYW5jdHggPSBpZWVlODAyMTFfZW11bGF0ZV9hZGRfY2hhbmN0eCxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2I0M2xlZ2FjeS9tYWluLmM6MzUzNDpcdC5yZW1vdmVfY2hhbmN0eCA9IGllZWU4MDIxMV9lbXVsYXRlX3JlbW92ZV9jaGFuY3R4LFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYjQzbGVnYWN5L21haW4uYy0zNTM1LVx0LmNoYW5nZV9jaGFuY3R4ID0gaWVlZTgwMjExX2VtdWxhdGVfY2hhbmdlX2NoYW5jdHgsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21zbWFjL21hYzgwMjExX2lmLmM9OTYzPXN0YXRpYyBjb25zdCBzdHJ1Y3QgaWVlZTgwMjExX29wcyBicmNtc19vcHMgPSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbXNtYWMvbWFjODAyMTFfaWYuYy05NjQtXHQuYWRkX2NoYW5jdHggPSBpZWVlODAyMTFfZW11bGF0ZV9hZGRfY2hhbmN0eCxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtc21hYy9tYWM4MDIxMV9pZi5jOjk2NTpcdC5yZW1vdmVfY2hhbmN0eCA9IGllZWU4MDIxMV9lbXVsYXRlX3JlbW92ZV9jaGFuY3R4LFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21zbWFjL21hYzgwMjExX2lmLmMtOTY2LVx0LmNoYW5nZV9jaGFuY3R4ID0gaWVlZTgwMjExX2VtdWxhdGVfY2hhbmdlX2NoYW5jdHgsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsZWdhY3kvMzk0NS1tYWMuYz0zMzk5PXN0YXRpYyBzdHJ1Y3QgaWVlZTgwMjExX29wcyBpbDM5NDVfbWFjX29wcyBfX3JvX2FmdGVyX2luaXQgPSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2xlZ2FjeS8zOTQ1LW1hYy5jLTM0MDAtXHQuYWRkX2NoYW5jdHggPSBpZWVlODAyMTFfZW11bGF0ZV9hZGRfY2hhbmN0eCxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bGVnYWN5LzM5NDUtbWFjLmM6MzQwMTpcdC5yZW1vdmVfY2hhbmN0eCA9IGllZWU4MDIxMV9lbXVsYXRlX3JlbW92ZV9jaGFuY3R4LFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsZWdhY3kvMzk0NS1tYWMuYy0zNDAyLVx0LmNoYW5nZV9jaGFuY3R4ID0gaWVlZTgwMjExX2VtdWxhdGVfY2hhbmdlX2NoYW5jdHgsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsZWdhY3kvNDk2NS1tYWMuYz02MzA4PXN0YXRpYyBjb25zdCBzdHJ1Y3QgaWVlZTgwMjExX29wcyBpbDQ5NjVfbWFjX29wcyA9IHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bGVnYWN5LzQ5NjUtbWFjLmMtNjMwOS1cdC5hZGRfY2hhbmN0eCA9IGllZWU4MDIxMV9lbXVsYXRlX2FkZF9jaGFuY3R4LFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsZWdhY3kvNDk2NS1tYWMuYzo2MzEwOlx0LnJlbW92ZV9jaGFuY3R4ID0gaWVlZTgwMjExX2VtdWxhdGVfcmVtb3ZlX2NoYW5jdHgsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2xlZ2FjeS80OTY1LW1hYy5jLTYzMTEtXHQuY2hhbmdlX2NoYW5jdHggPSBpZWVlODAyMTFfZW11bGF0ZV9jaGFuZ2VfY2hhbmN0eCxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9tYWM4MDIxMS5jPTE1NzI9Y29uc3Qgc3RydWN0IGllZWU4MDIxMV9vcHMgaXdsYWduX2h3X29wcyA9IHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL21hYzgwMjExLmMtMTU3My1cdC5hZGRfY2hhbmN0eCA9IGllZWU4MDIxMV9lbXVsYXRlX2FkZF9jaGFuY3R4LFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vbWFjODAyMTEuYzoxNTc0Olx0LnJlbW92ZV9jaGFuY3R4ID0gaWVlZTgwMjExX2VtdWxhdGVfcmVtb3ZlX2NoYW5jdHgsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9tYWM4MDIxMS5jLTE1NzUtXHQuY2hhbmdlX2NoYW5jdHggPSBpZWVlODAyMTFfZW11bGF0ZV9jaGFuZ2VfY2hhbmN0eCxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlcnNpbC9wNTQvbWFpbi5jPTcwOT1zdGF0aWMgY29uc3Qgc3RydWN0IGllZWU4MDIxMV9vcHMgcDU0X29wcyA9IHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVyc2lsL3A1NC9tYWluLmMtNzEwLVx0LmFkZF9jaGFuY3R4ID0gaWVlZTgwMjExX2VtdWxhdGVfYWRkX2NoYW5jdHgsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlcnNpbC9wNTQvbWFpbi5jOjcxMTpcdC5yZW1vdmVfY2hhbmN0eCA9IGllZWU4MDIxMV9lbXVsYXRlX3JlbW92ZV9jaGFuY3R4LFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZXJzaWwvcDU0L21haW4uYy03MTItXHQuY2hhbmdlX2NoYW5jdHggPSBpZWVlODAyMTFfZW11bGF0ZV9jaGFuZ2VfY2hhbmN0eCxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tYXJ2ZWxsL2xpYmVydGFzX3RmL21haW4uYz00NzU9c3RhdGljIGNvbnN0IHN0cnVjdCBpZWVlODAyMTFfb3BzIGxidGZfb3BzID0ge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWFydmVsbC9saWJlcnRhc190Zi9tYWluLmMtNDc2LVx0LmFkZF9jaGFuY3R4ID0gaWVlZTgwMjExX2VtdWxhdGVfYWRkX2NoYW5jdHgsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tYXJ2ZWxsL2xpYmVydGFzX3RmL21haW4uYzo0Nzc6XHQucmVtb3ZlX2NoYW5jdHggPSBpZWVlODAyMTFfZW11bGF0ZV9yZW1vdmVfY2hhbmN0eCxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21hcnZlbGwvbGliZXJ0YXNfdGYvbWFpbi5jLTQ3OC1cdC5jaGFuZ2VfY2hhbmN0eCA9IGllZWU4MDIxMV9lbXVsYXRlX2NoYW5nZV9jaGFuY3R4LFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21hcnZlbGwvbXdsOGsuYz01Njg0PXN0YXRpYyBjb25zdCBzdHJ1Y3QgaWVlZTgwMjExX29wcyBtd2w4a19vcHMgPSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tYXJ2ZWxsL213bDhrLmMtNTY4NS1cdC5hZGRfY2hhbmN0eCA9IGllZWU4MDIxMV9lbXVsYXRlX2FkZF9jaGFuY3R4LFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWFydmVsbC9td2w4ay5jOjU2ODY6XHQucmVtb3ZlX2NoYW5jdHggPSBpZWVlODAyMTFfZW11bGF0ZV9yZW1vdmVfY2hhbmN0eCxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21hcnZlbGwvbXdsOGsuYy01Njg3LVx0LmNoYW5nZV9jaGFuY3R4ID0gaWVlZTgwMjExX2VtdWxhdGVfY2hhbmdlX2NoYW5jdHgsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvbWFpbi5jPTc1OD1jb25zdCBzdHJ1Y3QgaWVlZTgwMjExX29wcyBtdDc2MDNfb3BzID0ge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvbWFpbi5jLTc1OS1cdC5hZGRfY2hhbmN0eCA9IGllZWU4MDIxMV9lbXVsYXRlX2FkZF9jaGFuY3R4LFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvbWFpbi5jOjc2MDpcdC5yZW1vdmVfY2hhbmN0eCA9IGllZWU4MDIxMV9lbXVsYXRlX3JlbW92ZV9jaGFuY3R4LFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvbWFpbi5jLTc2MS1cdC5jaGFuZ2VfY2hhbmN0eCA9IGllZWU4MDIxMV9lbXVsYXRlX2NoYW5nZV9jaGFuY3R4LFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjE1L21haW4uYz0xMzE5PWNvbnN0IHN0cnVjdCBpZWVlODAyMTFfb3BzIG10NzYxNV9vcHMgPSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYxNS9tYWluLmMtMTMyMC1cdC5hZGRfY2hhbmN0eCA9IGllZWU4MDIxMV9lbXVsYXRlX2FkZF9jaGFuY3R4LFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MTUvbWFpbi5jOjEzMjE6XHQucmVtb3ZlX2NoYW5jdHggPSBpZWVlODAyMTFfZW11bGF0ZV9yZW1vdmVfY2hhbmN0eCxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjE1L21haW4uYy0xMzIyLVx0LmNoYW5nZV9jaGFuY3R4ID0gaWVlZTgwMjExX2VtdWxhdGVfY2hhbmdlX2NoYW5jdHgsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDAvcGNpLmM9NjE9c3RhdGljIGNvbnN0IHN0cnVjdCBpZWVlODAyMTFfb3BzIG10NzZ4MGVfb3BzID0ge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDAvcGNpLmMtNjItXHQuYWRkX2NoYW5jdHggPSBpZWVlODAyMTFfZW11bGF0ZV9hZGRfY2hhbmN0eCxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngwL3BjaS5jOjYzOlx0LnJlbW92ZV9jaGFuY3R4ID0gaWVlZTgwMjExX2VtdWxhdGVfcmVtb3ZlX2NoYW5jdHgsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4MC9wY2kuYy02NC1cdC5jaGFuZ2VfY2hhbmN0eCA9IGllZWU4MDIxMV9lbXVsYXRlX2NoYW5nZV9jaGFuY3R4LFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngwL3VzYi5jPTEyMD1zdGF0aWMgY29uc3Qgc3RydWN0IGllZWU4MDIxMV9vcHMgbXQ3NngwdV9vcHMgPSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4MC91c2IuYy0xMjEtXHQuYWRkX2NoYW5jdHggPSBpZWVlODAyMTFfZW11bGF0ZV9hZGRfY2hhbmN0eCxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngwL3VzYi5jOjEyMjpcdC5yZW1vdmVfY2hhbmN0eCA9IGllZWU4MDIxMV9lbXVsYXRlX3JlbW92ZV9jaGFuY3R4LFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDAvdXNiLmMtMTIzLVx0LmNoYW5nZV9jaGFuY3R4ID0gaWVlZTgwMjExX2VtdWxhdGVfY2hhbmdlX2NoYW5jdHgsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvcGNpX21haW4uYz0xMjM9Y29uc3Qgc3RydWN0IGllZWU4MDIxMV9vcHMgbXQ3NngyX29wcyA9IHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL3BjaV9tYWluLmMtMTI0LVx0LmFkZF9jaGFuY3R4ID0gaWVlZTgwMjExX2VtdWxhdGVfYWRkX2NoYW5jdHgsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9wY2lfbWFpbi5jOjEyNTpcdC5yZW1vdmVfY2hhbmN0eCA9IGllZWU4MDIxMV9lbXVsYXRlX3JlbW92ZV9jaGFuY3R4LFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvcGNpX21haW4uYy0xMjYtXHQuY2hhbmdlX2NoYW5jdHggPSBpZWVlODAyMTFfZW11bGF0ZV9jaGFuZ2VfY2hhbmN0eCxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi91c2JfbWFpbi5jPTkwPWNvbnN0IHN0cnVjdCBpZWVlODAyMTFfb3BzIG10NzZ4MnVfb3BzID0ge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvdXNiX21haW4uYy05MS1cdC5hZGRfY2hhbmN0eCA9IGllZWU4MDIxMV9lbXVsYXRlX2FkZF9jaGFuY3R4LFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvdXNiX21haW4uYzo5MjpcdC5yZW1vdmVfY2hhbmN0eCA9IGllZWU4MDIxMV9lbXVsYXRlX3JlbW92ZV9jaGFuY3R4LFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvdXNiX21haW4uYy05My1cdC5jaGFuZ2VfY2hhbmN0eCA9IGllZWU4MDIxMV9lbXVsYXRlX2NoYW5nZV9jaGFuY3R4LFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L21haW4uYz0xNzc2PWNvbnN0IHN0cnVjdCBpZWVlODAyMTFfb3BzIG10NzkxNV9vcHMgPSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9tYWluLmMtMTc3Ny1cdC5hZGRfY2hhbmN0eCA9IGllZWU4MDIxMV9lbXVsYXRlX2FkZF9jaGFuY3R4LFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvbWFpbi5jOjE3Nzg6XHQucmVtb3ZlX2NoYW5jdHggPSBpZWVlODAyMTFfZW11bGF0ZV9yZW1vdmVfY2hhbmN0eCxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L21haW4uYy0xNzc5LVx0LmNoYW5nZV9jaGFuY3R4ID0gaWVlZTgwMjExX2VtdWxhdGVfY2hhbmdlX2NoYW5jdHgsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MnhfY29yZS5jPTkyND1tdDc5MnhfZ2V0X21hYzgwMjExX29wcyhzdHJ1Y3QgZGV2aWNlICpkZXYsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MnhfY29yZS5jLTk0My1cdFx0b3BzLVx1MDAzZWFkZF9jaGFuY3R4ID0gaWVlZTgwMjExX2VtdWxhdGVfYWRkX2NoYW5jdHg7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyeF9jb3JlLmM6OTQ0Olx0XHRvcHMtXHUwMDNlcmVtb3ZlX2NoYW5jdHggPSBpZWVlODAyMTFfZW11bGF0ZV9yZW1vdmVfY2hhbmN0eDtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTJ4X2NvcmUuYy05NDUtXHRcdG9wcy1cdTAwM2VjaGFuZ2VfY2hhbmN0eCA9IGllZWU4MDIxMV9lbXVsYXRlX2NoYW5nZV9jaGFuY3R4O1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYwMXUvbWFpbi5jPTQwOD1jb25zdCBzdHJ1Y3QgaWVlZTgwMjExX29wcyBtdDc2MDF1X29wcyA9IHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYwMXUvbWFpbi5jLTQwOS1cdC5hZGRfY2hhbmN0eCA9IGllZWU4MDIxMV9lbXVsYXRlX2FkZF9jaGFuY3R4LFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3NjAxdS9tYWluLmM6NDEwOlx0LnJlbW92ZV9jaGFuY3R4ID0gaWVlZTgwMjExX2VtdWxhdGVfcmVtb3ZlX2NoYW5jdHgsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2MDF1L21haW4uYy00MTEtXHQuY2hhbmdlX2NoYW5jdHggPSBpZWVlODAyMTFfZW11bGF0ZV9jaGFuZ2VfY2hhbmN0eCxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tb3JzZW1pY3JvL21tODF4L21hYy5jPTIyMzI9c3RhdGljIGNvbnN0IHN0cnVjdCBpZWVlODAyMTFfb3BzIG1tODF4X29wcyA9IHtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tb3JzZW1pY3JvL21tODF4L21hYy5jLTIyNTUtXHQuYWRkX2NoYW5jdHggPSBpZWVlODAyMTFfZW11bGF0ZV9hZGRfY2hhbmN0eCxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21vcnNlbWljcm8vbW04MXgvbWFjLmM6MjI1NjpcdC5yZW1vdmVfY2hhbmN0eCA9IGllZWU4MDIxMV9lbXVsYXRlX3JlbW92ZV9jaGFuY3R4LFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbW9yc2VtaWNyby9tbTgxeC9tYWMuYy0yMjU3LVx0LmNoYW5nZV9jaGFuY3R4ID0gaWVlZTgwMjExX2VtdWxhdGVfY2hhbmdlX2NoYW5jdHgsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcHVyZWxpZmkvcGxmeGxjL21hYy5jPTY4MT1zdGF0aWMgY29uc3Qgc3RydWN0IGllZWU4MDIxMV9vcHMgcGxmeGxjX29wcyA9IHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3B1cmVsaWZpL3BsZnhsYy9tYWMuYy02ODItXHQuYWRkX2NoYW5jdHggPSBpZWVlODAyMTFfZW11bGF0ZV9hZGRfY2hhbmN0eCxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3B1cmVsaWZpL3BsZnhsYy9tYWMuYzo2ODM6XHQucmVtb3ZlX2NoYW5jdHggPSBpZWVlODAyMTFfZW11bGF0ZV9yZW1vdmVfY2hhbmN0eCxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3B1cmVsaWZpL3BsZnhsYy9tYWMuYy02ODQtXHQuY2hhbmdlX2NoYW5jdHggPSBpZWVlODAyMTFfZW11bGF0ZV9jaGFuZ2VfY2hhbmN0eCxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yYWxpbmsvcnQyeDAwL3J0MjQwMHBjaS5jPTE3MDc9c3RhdGljIGNvbnN0IHN0cnVjdCBpZWVlODAyMTFfb3BzIHJ0MjQwMHBjaV9tYWM4MDIxMV9vcHMgPSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yYWxpbmsvcnQyeDAwL3J0MjQwMHBjaS5jLTE3MDgtXHQuYWRkX2NoYW5jdHggPSBpZWVlODAyMTFfZW11bGF0ZV9hZGRfY2hhbmN0eCxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JhbGluay9ydDJ4MDAvcnQyNDAwcGNpLmM6MTcwOTpcdC5yZW1vdmVfY2hhbmN0eCA9IGllZWU4MDIxMV9lbXVsYXRlX3JlbW92ZV9jaGFuY3R4LFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmFsaW5rL3J0MngwMC9ydDI0MDBwY2kuYy0xNzEwLVx0LmNoYW5nZV9jaGFuY3R4ID0gaWVlZTgwMjExX2VtdWxhdGVfY2hhbmdlX2NoYW5jdHgsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmFsaW5rL3J0MngwMC9ydDI1MDBwY2kuYz0yMDA1PXN0YXRpYyBjb25zdCBzdHJ1Y3QgaWVlZTgwMjExX29wcyBydDI1MDBwY2lfbWFjODAyMTFfb3BzID0ge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmFsaW5rL3J0MngwMC9ydDI1MDBwY2kuYy0yMDA2LVx0LmFkZF9jaGFuY3R4ID0gaWVlZTgwMjExX2VtdWxhdGVfYWRkX2NoYW5jdHgsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yYWxpbmsvcnQyeDAwL3J0MjUwMHBjaS5jOjIwMDc6XHQucmVtb3ZlX2NoYW5jdHggPSBpZWVlODAyMTFfZW11bGF0ZV9yZW1vdmVfY2hhbmN0eCxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JhbGluay9ydDJ4MDAvcnQyNTAwcGNpLmMtMjAwOC1cdC5jaGFuZ2VfY2hhbmN0eCA9IGllZWU4MDIxMV9lbXVsYXRlX2NoYW5nZV9jaGFuY3R4LFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JhbGluay9ydDJ4MDAvcnQyNTAwdXNiLmM9MTc5Nj1zdGF0aWMgY29uc3Qgc3RydWN0IGllZWU4MDIxMV9vcHMgcnQyNTAwdXNiX21hYzgwMjExX29wcyA9IHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JhbGluay9ydDJ4MDAvcnQyNTAwdXNiLmMtMTc5Ny1cdC5hZGRfY2hhbmN0eCA9IGllZWU4MDIxMV9lbXVsYXRlX2FkZF9jaGFuY3R4LFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmFsaW5rL3J0MngwMC9ydDI1MDB1c2IuYzoxNzk4Olx0LnJlbW92ZV9jaGFuY3R4ID0gaWVlZTgwMjExX2VtdWxhdGVfcmVtb3ZlX2NoYW5jdHgsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yYWxpbmsvcnQyeDAwL3J0MjUwMHVzYi5jLTE3OTktXHQuY2hhbmdlX2NoYW5jdHggPSBpZWVlODAyMTFfZW11bGF0ZV9jaGFuZ2VfY2hhbmN0eCxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yYWxpbmsvcnQyeDAwL3J0MjgwMHBjaS5jPTI5Mj1zdGF0aWMgY29uc3Qgc3RydWN0IGllZWU4MDIxMV9vcHMgcnQyODAwcGNpX21hYzgwMjExX29wcyA9IHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JhbGluay9ydDJ4MDAvcnQyODAwcGNpLmMtMjkzLVx0LmFkZF9jaGFuY3R4ID0gaWVlZTgwMjExX2VtdWxhdGVfYWRkX2NoYW5jdHgsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yYWxpbmsvcnQyeDAwL3J0MjgwMHBjaS5jOjI5NDpcdC5yZW1vdmVfY2hhbmN0eCA9IGllZWU4MDIxMV9lbXVsYXRlX3JlbW92ZV9jaGFuY3R4LFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmFsaW5rL3J0MngwMC9ydDI4MDBwY2kuYy0yOTUtXHQuY2hhbmdlX2NoYW5jdHggPSBpZWVlODAyMTFfZW11bGF0ZV9jaGFuZ2VfY2hhbmN0eCxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yYWxpbmsvcnQyeDAwL3J0MjgwMHNvYy5jPTE1Nj1zdGF0aWMgY29uc3Qgc3RydWN0IGllZWU4MDIxMV9vcHMgcnQyODAwc29jX21hYzgwMjExX29wcyA9IHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JhbGluay9ydDJ4MDAvcnQyODAwc29jLmMtMTU3LVx0LmFkZF9jaGFuY3R4ID0gaWVlZTgwMjExX2VtdWxhdGVfYWRkX2NoYW5jdHgsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yYWxpbmsvcnQyeDAwL3J0MjgwMHNvYy5jOjE1ODpcdC5yZW1vdmVfY2hhbmN0eCA9IGllZWU4MDIxMV9lbXVsYXRlX3JlbW92ZV9jaGFuY3R4LFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmFsaW5rL3J0MngwMC9ydDI4MDBzb2MuYy0xNTktXHQuY2hhbmdlX2NoYW5jdHggPSBpZWVlODAyMTFfZW11bGF0ZV9jaGFuZ2VfY2hhbmN0eCxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yYWxpbmsvcnQyeDAwL3J0MjgwMHVzYi5jPTYzMT1zdGF0aWMgY29uc3Qgc3RydWN0IGllZWU4MDIxMV9vcHMgcnQyODAwdXNiX21hYzgwMjExX29wcyA9IHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JhbGluay9ydDJ4MDAvcnQyODAwdXNiLmMtNjMyLVx0LmFkZF9jaGFuY3R4ID0gaWVlZTgwMjExX2VtdWxhdGVfYWRkX2NoYW5jdHgsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yYWxpbmsvcnQyeDAwL3J0MjgwMHVzYi5jOjYzMzpcdC5yZW1vdmVfY2hhbmN0eCA9IGllZWU4MDIxMV9lbXVsYXRlX3JlbW92ZV9jaGFuY3R4LFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmFsaW5rL3J0MngwMC9ydDI4MDB1c2IuYy02MzQtXHQuY2hhbmdlX2NoYW5jdHggPSBpZWVlODAyMTFfZW11bGF0ZV9jaGFuZ2VfY2hhbmN0eCxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yYWxpbmsvcnQyeDAwL3J0NjFwY2kuYz0yODc0PXN0YXRpYyBjb25zdCBzdHJ1Y3QgaWVlZTgwMjExX29wcyBydDYxcGNpX21hYzgwMjExX29wcyA9IHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JhbGluay9ydDJ4MDAvcnQ2MXBjaS5jLTI4NzUtXHQuYWRkX2NoYW5jdHggPSBpZWVlODAyMTFfZW11bGF0ZV9hZGRfY2hhbmN0eCxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JhbGluay9ydDJ4MDAvcnQ2MXBjaS5jOjI4NzY6XHQucmVtb3ZlX2NoYW5jdHggPSBpZWVlODAyMTFfZW11bGF0ZV9yZW1vdmVfY2hhbmN0eCxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JhbGluay9ydDJ4MDAvcnQ2MXBjaS5jLTI4NzctXHQuY2hhbmdlX2NoYW5jdHggPSBpZWVlODAyMTFfZW11bGF0ZV9jaGFuZ2VfY2hhbmN0eCxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yYWxpbmsvcnQyeDAwL3J0NzN1c2IuYz0yMjkzPXN0YXRpYyBjb25zdCBzdHJ1Y3QgaWVlZTgwMjExX29wcyBydDczdXNiX21hYzgwMjExX29wcyA9IHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JhbGluay9ydDJ4MDAvcnQ3M3VzYi5jLTIyOTQtXHQuYWRkX2NoYW5jdHggPSBpZWVlODAyMTFfZW11bGF0ZV9hZGRfY2hhbmN0eCxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JhbGluay9ydDJ4MDAvcnQ3M3VzYi5jOjIyOTU6XHQucmVtb3ZlX2NoYW5jdHggPSBpZWVlODAyMTFfZW11bGF0ZV9yZW1vdmVfY2hhbmN0eCxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JhbGluay9ydDJ4MDAvcnQ3M3VzYi5jLTIyOTYtXHQuY2hhbmdlX2NoYW5jdHggPSBpZWVlODAyMTFfZW11bGF0ZV9jaGFuZ2VfY2hhbmN0eCxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDgxOHgvcnRsODE4MC9kZXYuYz0xNjA0PXN0YXRpYyBjb25zdCBzdHJ1Y3QgaWVlZTgwMjExX29wcyBydGw4MTgwX29wcyA9IHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsODE4eC9ydGw4MTgwL2Rldi5jLTE2MDUtXHQuYWRkX2NoYW5jdHggPSBpZWVlODAyMTFfZW11bGF0ZV9hZGRfY2hhbmN0eCxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsODE4eC9ydGw4MTgwL2Rldi5jOjE2MDY6XHQucmVtb3ZlX2NoYW5jdHggPSBpZWVlODAyMTFfZW11bGF0ZV9yZW1vdmVfY2hhbmN0eCxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsODE4eC9ydGw4MTgwL2Rldi5jLTE2MDctXHQuY2hhbmdlX2NoYW5jdHggPSBpZWVlODAyMTFfZW11bGF0ZV9jaGFuZ2VfY2hhbmN0eCxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDgxOHgvcnRsODE4Ny9kZXYuYz0xMzkxPXN0YXRpYyBjb25zdCBzdHJ1Y3QgaWVlZTgwMjExX29wcyBydGw4MTg3X29wcyA9IHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsODE4eC9ydGw4MTg3L2Rldi5jLTEzOTItXHQuYWRkX2NoYW5jdHggPSBpZWVlODAyMTFfZW11bGF0ZV9hZGRfY2hhbmN0eCxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsODE4eC9ydGw4MTg3L2Rldi5jOjEzOTM6XHQucmVtb3ZlX2NoYW5jdHggPSBpZWVlODAyMTFfZW11bGF0ZV9yZW1vdmVfY2hhbmN0eCxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsODE4eC9ydGw4MTg3L2Rldi5jLTEzOTQtXHQuY2hhbmdlX2NoYW5jdHggPSBpZWVlODAyMTFfZW11bGF0ZV9jaGFuZ2VfY2hhbmN0eCxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1L2NvcmUuYz03NTkzPXN0YXRpYyBjb25zdCBzdHJ1Y3QgaWVlZTgwMjExX29wcyBydGw4eHh4dV9vcHMgPSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1L2NvcmUuYy03NTk0LVx0LmFkZF9jaGFuY3R4ID0gaWVlZTgwMjExX2VtdWxhdGVfYWRkX2NoYW5jdHgsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1L2NvcmUuYzo3NTk1Olx0LnJlbW92ZV9jaGFuY3R4ID0gaWVlZTgwMjExX2VtdWxhdGVfcmVtb3ZlX2NoYW5jdHgsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1L2NvcmUuYy03NTk2LVx0LmNoYW5nZV9jaGFuY3R4ID0gaWVlZTgwMjExX2VtdWxhdGVfY2hhbmdlX2NoYW5jdHgsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGx3aWZpL2NvcmUuYz0xODc5PWNvbnN0IHN0cnVjdCBpZWVlODAyMTFfb3BzIHJ0bF9vcHMgPSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bHdpZmkvY29yZS5jLTE4ODAtXHQuYWRkX2NoYW5jdHggPSBpZWVlODAyMTFfZW11bGF0ZV9hZGRfY2hhbmN0eCxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsd2lmaS9jb3JlLmM6MTg4MTpcdC5yZW1vdmVfY2hhbmN0eCA9IGllZWU4MDIxMV9lbXVsYXRlX3JlbW92ZV9jaGFuY3R4LFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGx3aWZpL2NvcmUuYy0xODgyLVx0LmNoYW5nZV9jaGFuY3R4ID0gaWVlZTgwMjExX2VtdWxhdGVfY2hhbmdlX2NoYW5jdHgsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9tYWM4MDIxMS5jPTk1Mz1jb25zdCBzdHJ1Y3QgaWVlZTgwMjExX29wcyBydHdfb3BzID0ge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9tYWM4MDIxMS5jLTk1NC1cdC5hZGRfY2hhbmN0eCA9IGllZWU4MDIxMV9lbXVsYXRlX2FkZF9jaGFuY3R4LFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9tYWM4MDIxMS5jOjk1NTpcdC5yZW1vdmVfY2hhbmN0eCA9IGllZWU4MDIxMV9lbXVsYXRlX3JlbW92ZV9jaGFuY3R4LFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9tYWM4MDIxMS5jLTk1Ni1cdC5jaGFuZ2VfY2hhbmN0eCA9IGllZWU4MDIxMV9lbXVsYXRlX2NoYW5nZV9jaGFuY3R4LFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvY29yZS5jPTc2Mzc9c3RydWN0IHJ0dzg5X2RldiAqcnR3ODlfYWxsb2NfaWVlZTgwMjExX2h3KHN0cnVjdCBkZXZpY2UgKmRldmljZSxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2NvcmUuYy03NjY2LVx0XHRvcHMtXHUwMDNlYWRkX2NoYW5jdHggPSBpZWVlODAyMTFfZW11bGF0ZV9hZGRfY2hhbmN0eDtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvY29yZS5jOjc2Njc6XHRcdG9wcy1cdTAwM2VyZW1vdmVfY2hhbmN0eCA9IGllZWU4MDIxMV9lbXVsYXRlX3JlbW92ZV9jaGFuY3R4O1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9jb3JlLmMtNzY2OC1cdFx0b3BzLVx1MDAzZWNoYW5nZV9jaGFuY3R4ID0gaWVlZTgwMjExX2VtdWxhdGVfY2hhbmdlX2NoYW5jdHg7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcnNpL3JzaV85MXhfbWFjODAyMTEuYz0xOTgyPXN0YXRpYyBjb25zdCBzdHJ1Y3QgaWVlZTgwMjExX29wcyBtYWM4MDIxMV9vcHMgPSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yc2kvcnNpXzkxeF9tYWM4MDIxMS5jLTE5ODMtXHQuYWRkX2NoYW5jdHggPSBpZWVlODAyMTFfZW11bGF0ZV9hZGRfY2hhbmN0eCxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JzaS9yc2lfOTF4X21hYzgwMjExLmM6MTk4NDpcdC5yZW1vdmVfY2hhbmN0eCA9IGllZWU4MDIxMV9lbXVsYXRlX3JlbW92ZV9jaGFuY3R4LFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcnNpL3JzaV85MXhfbWFjODAyMTEuYy0xOTg1LVx0LmNoYW5nZV9jaGFuY3R4ID0gaWVlZTgwMjExX2VtdWxhdGVfY2hhbmdlX2NoYW5jdHgsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3Mvc3QvY3cxMjAwL21haW4uYz0yMDU9c3RhdGljIGNvbnN0IHN0cnVjdCBpZWVlODAyMTFfb3BzIGN3MTIwMF9vcHMgPSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9zdC9jdzEyMDAvbWFpbi5jLTIwNi1cdC5hZGRfY2hhbmN0eCA9IGllZWU4MDIxMV9lbXVsYXRlX2FkZF9jaGFuY3R4LFxuZHJpdmVycy9uZXQvd2lyZWxlc3Mvc3QvY3cxMjAwL21haW4uYzoyMDc6XHQucmVtb3ZlX2NoYW5jdHggPSBpZWVlODAyMTFfZW11bGF0ZV9yZW1vdmVfY2hhbmN0eCxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3N0L2N3MTIwMC9tYWluLmMtMjA4LVx0LmNoYW5nZV9jaGFuY3R4ID0gaWVlZTgwMjExX2VtdWxhdGVfY2hhbmdlX2NoYW5jdHgsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvdGkvd2wxMjUxL21haW4uYz0xMzU0PXN0YXRpYyBjb25zdCBzdHJ1Y3QgaWVlZTgwMjExX29wcyB3bDEyNTFfb3BzID0ge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvdGkvd2wxMjUxL21haW4uYy0xMzU1LVx0LmFkZF9jaGFuY3R4ID0gaWVlZTgwMjExX2VtdWxhdGVfYWRkX2NoYW5jdHgsXG5kcml2ZXJzL25ldC93aXJlbGVzcy90aS93bDEyNTEvbWFpbi5jOjEzNTY6XHQucmVtb3ZlX2NoYW5jdHggPSBpZWVlODAyMTFfZW11bGF0ZV9yZW1vdmVfY2hhbmN0eCxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3RpL3dsMTI1MS9tYWluLmMtMTM1Ny1cdC5jaGFuZ2VfY2hhbmN0eCA9IGllZWU4MDIxMV9lbXVsYXRlX2NoYW5nZV9jaGFuY3R4LFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3ZpcnR1YWwvbWFjODAyMTFfaHdzaW1fbWFpbi5jPTQzNDA9c3RhdGljIGNvbnN0IHN0cnVjdCBpZWVlODAyMTFfb3BzIG1hYzgwMjExX2h3c2ltX29wcyA9IHtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy92aXJ0dWFsL21hYzgwMjExX2h3c2ltX21haW4uYy00MzQ1LVx0LmFkZF9jaGFuY3R4ID0gaWVlZTgwMjExX2VtdWxhdGVfYWRkX2NoYW5jdHgsXG5kcml2ZXJzL25ldC93aXJlbGVzcy92aXJ0dWFsL21hYzgwMjExX2h3c2ltX21haW4uYzo0MzQ2Olx0LnJlbW92ZV9jaGFuY3R4ID0gaWVlZTgwMjExX2VtdWxhdGVfcmVtb3ZlX2NoYW5jdHgsXG5kcml2ZXJzL25ldC93aXJlbGVzcy92aXJ0dWFsL21hYzgwMjExX2h3c2ltX21haW4uYy00MzQ3LVx0LmNoYW5nZV9jaGFuY3R4ID0gaWVlZTgwMjExX2VtdWxhdGVfY2hhbmdlX2NoYW5jdHgsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvenlkYXMvemQxMjExcncvemRfbWFjLmM9MTM0OD1zdGF0aWMgY29uc3Qgc3RydWN0IGllZWU4MDIxMV9vcHMgemRfb3BzID0ge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvenlkYXMvemQxMjExcncvemRfbWFjLmMtMTM0OS1cdC5hZGRfY2hhbmN0eCA9IGllZWU4MDIxMV9lbXVsYXRlX2FkZF9jaGFuY3R4LFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvenlkYXMvemQxMjExcncvemRfbWFjLmM6MTM1MDpcdC5yZW1vdmVfY2hhbmN0eCA9IGllZWU4MDIxMV9lbXVsYXRlX3JlbW92ZV9jaGFuY3R4LFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvenlkYXMvemQxMjExcncvemRfbWFjLmMtMTM1MS1cdC5jaGFuZ2VfY2hhbmN0eCA9IGllZWU4MDIxMV9lbXVsYXRlX2NoYW5nZV9jaGFuY3R4LFxuLS1cbmluY2x1ZGUvbmV0L21hYzgwMjExLmg9ODIwND1pbnQgaWVlZTgwMjExX2VtdWxhdGVfYWRkX2NoYW5jdHgoc3RydWN0IGllZWU4MDIxMV9odyAqaHcsXG5pbmNsdWRlL25ldC9tYWM4MDIxMS5oLTgyMDUtXHRcdFx0XHQgIHN0cnVjdCBpZWVlODAyMTFfY2hhbmN0eF9jb25mICpjdHgpO1xuaW5jbHVkZS9uZXQvbWFjODAyMTEuaDo4MjA2OnZvaWQgaWVlZTgwMjExX2VtdWxhdGVfcmVtb3ZlX2NoYW5jdHgoc3RydWN0IGllZWU4MDIxMV9odyAqaHcsXG5pbmNsdWRlL25ldC9tYWM4MDIxMS5oLTgyMDctXHRcdFx0XHQgICAgICBzdHJ1Y3QgaWVlZTgwMjExX2NoYW5jdHhfY29uZiAqY3R4KTtcbi0tXG5uZXQvbWFjODAyMTEvbWFpbi5jPTI4NT1FWFBPUlRfU1lNQk9MKGllZWU4MDIxMV9lbXVsYXRlX2FkZF9jaGFuY3R4KTtcbm5ldC9tYWM4MDIxMS9tYWluLmMtMjg2LVxubmV0L21hYzgwMjExL21haW4uYzoyODc6dm9pZCBpZWVlODAyMTFfZW11bGF0ZV9yZW1vdmVfY2hhbmN0eChzdHJ1Y3QgaWVlZTgwMjExX2h3ICpodyxcbm5ldC9tYWM4MDIxMS9tYWluLmMtMjg4LVx0XHRcdFx0ICAgICAgc3RydWN0IGllZWU4MDIxMV9jaGFuY3R4X2NvbmYgKmN0eClcbi0tXG5uZXQvbWFjODAyMTEvbWFpbi5jLTMwMC19XG5uZXQvbWFjODAyMTEvbWFpbi5jOjMwMTpFWFBPUlRfU1lNQk9MKGllZWU4MDIxMV9lbXVsYXRlX3JlbW92ZV9jaGFuY3R4KTtcbm5ldC9tYWM4MDIxMS9tYWluLmMtMzAyLVxuLS1cbm5ldC9tYWM4MDIxMS9tYWluLmM9Nzk4PXN0cnVjdCBpZWVlODAyMTFfaHcgKmllZWU4MDIxMV9hbGxvY19od19ubShzaXplX3QgcHJpdl9kYXRhX2xlbixcbi0tXG5uZXQvbWFjODAyMTEvbWFpbi5jLTgyMC1cdGlmIChvcHMtXHUwMDNlYWRkX2NoYW5jdHggPT0gaWVlZTgwMjExX2VtdWxhdGVfYWRkX2NoYW5jdHggXHUwMDI2XHUwMDI2XG5uZXQvbWFjODAyMTEvbWFpbi5jOjgyMTpcdCAgICBvcHMtXHUwMDNlcmVtb3ZlX2NoYW5jdHggPT0gaWVlZTgwMjExX2VtdWxhdGVfcmVtb3ZlX2NoYW5jdHggXHUwMDI2XHUwMDI2XG5uZXQvbWFjODAyMTEvbWFpbi5jLTgyMi1cdCAgICBvcHMtXHUwMDNlY2hhbmdlX2NoYW5jdHggPT0gaWVlZTgwMjExX2VtdWxhdGVfY2hhbmdlX2NoYW5jdHgpIHtcbi0tXG5uZXQvbWFjODAyMTEvbWFpbi5jLTgyOC1cdFx0aWYgKFdBUk5fT04ob3BzLVx1MDAzZWFkZF9jaGFuY3R4ID09IGllZWU4MDIxMV9lbXVsYXRlX2FkZF9jaGFuY3R4IHx8XG5uZXQvbWFjODAyMTEvbWFpbi5jOjgyOTpcdFx0XHQgICAgb3BzLVx1MDAzZXJlbW92ZV9jaGFuY3R4ID09IGllZWU4MDIxMV9lbXVsYXRlX3JlbW92ZV9jaGFuY3R4IHx8XG5uZXQvbWFjODAyMTEvbWFpbi5jLTgzMC1cdFx0XHQgICAgb3BzLVx1MDAzZWNoYW5nZV9jaGFuY3R4ID09IGllZWU4MDIxMV9lbXVsYXRlX2NoYW5nZV9jaGFuY3R4KSlcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD41LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8yOSAxMDoyMjwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuNy1mbGFzaDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAxMzA5MQoJCQkJCQkJb3V0cHV0OiA0MAoJCQkJCQkJdGhvdWdodHM6IDE5MgoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipBbmFseXppbmcgbWFjODAyMTFfaHdzaW0mIzM5O3MgQ2hhbm5lbCBDb250ZXh0IEhhbmRsaW5nKioKCk9rYXksIHNvIEkmIzM5O20gbG9va2luZyBhdCBgbWFjODAyMTFfaHdzaW1gIGFuZCBteSBleWUgaXMgZHJhd24gdG8gaXRzIGNoYW5uZWwgY29udGV4dCBoYW5kbGluZy4gU3BlY2lmaWNhbGx5LCBJIHNlZSBpdCYjMzk7cyB1c2luZyBgaWVlZTgwMjExX2VtdWxhdGVfcmVtb3ZlX2NoYW5jdHhgIHZpYSB0aGUgZnVuY3Rpb24gcG9pbnRlcnMgaW4gYG1hYzgwMjExX2h3c2ltX21haW4uY2A6IGAuYWRkX2NoYW5jdHhgLCBgLnJlbW92ZV9jaGFuY3R4YCwgYW5kIGAuY2hhbmdlX2NoYW5jdHhgLiAgUmlnaHQsIHNvIGBod3NpbWAgaXMgZnJlcXVlbnRseSBsZXZlcmFnZWQgYnkgc3l6a2FsbGVyIGZvciB0ZXN0aW5nIHRoZSB3aWZpLCBubDgwMjExLCBhbmQgbWFjODAyMTEgc3RhY2ssIHNvIHVuZGVyc3RhbmRpbmcgaG93IGl0IGhhbmRsZXMgY2hhbm5lbCBjb250ZXh0cyBpcyBwcmV0dHkgaW1wb3J0YW50IGluIHRoZSBncmFuZCBzY2hlbWUgb2YgdGhpbmdzLgoKSSBzaG91bGQgcHJvYmFibHkgZGl2ZSBpbnRvIGBuZXQvbWFjODAyMTEvbWFpbi5jYCBub3cgdG8gZ2V0IGEgYmV0dGVyIGhhbmRsZSBvbiB0aGUgYnJvYWRlciBjb250ZXh0IGFyb3VuZCBsaW5lcyAyNzAtMzIwLiBUaGF0IHNob3VsZCBnaXZlIG1lIHRoZSBiYWNrZ3JvdW5kIG5lY2Vzc2FyeSB0byB1bmRlcnN0YW5kIGhvdyB0aGlzIGVtdWxhdGlvbiBmdW5jdGlvbiB0aWVzIGludG8gdGhlIGxhcmdlciBmcmFtZXdvcmsuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Ni8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMjkgMTA6MjI8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5yZWFkLWZpbGU8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0ZpbGUmIzM0OzogJiMzNDtuZXQvbWFjODAyMTEvbWFpbi5jJiMzNDssCiAgJiMzNDtGaXJzdExpbmUmIzM0OzogMjcwLAogICYjMzQ7TGluZUNvdW50JiMzNDs6IDUwCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtDb250ZW50cyYjMzQ7OiAmIzM0OyAyNzA6XHRcdFx0XHRcdFx0XHQgICAgICAgY3R4ID8gXHUwMDI2Y3R4LVx1MDAzZWNvbmYgOiBOVUxMKTtcbiAyNzE6XHRcdH1cbiAyNzI6XHRcbiAyNzM6XHRcdFdBUk5fT04oZHJ2X2NvbmZpZyhsb2NhbCwgLTEsIGNoYW5nZWQpKTtcbiAyNzQ6XHR9XG4gMjc1Olx0XG4gMjc2Olx0aW50IGllZWU4MDIxMV9lbXVsYXRlX2FkZF9jaGFuY3R4KHN0cnVjdCBpZWVlODAyMTFfaHcgKmh3LFxuIDI3NzpcdFx0XHRcdFx0ICBzdHJ1Y3QgaWVlZTgwMjExX2NoYW5jdHhfY29uZiAqY3R4KVxuIDI3ODpcdHtcbiAyNzk6XHRcdHN0cnVjdCBpZWVlODAyMTFfbG9jYWwgKmxvY2FsID0gaHdfdG9fbG9jYWwoaHcpO1xuIDI4MDpcdFxuIDI4MTpcdFx0bG9jYWwtXHUwMDNlaHcuY29uZi5yYWRhcl9lbmFibGVkID0gY3R4LVx1MDAzZXJhZGFyX2VuYWJsZWQ7XG4gMjgyOlx0XG4gMjgzOlx0XHRyZXR1cm4gX2llZWU4MDIxMV9od19jb25mX2NoYW4obG9jYWwsIGN0eCk7XG4gMjg0Olx0fVxuIDI4NTpcdEVYUE9SVF9TWU1CT0woaWVlZTgwMjExX2VtdWxhdGVfYWRkX2NoYW5jdHgpO1xuIDI4NjpcdFxuIDI4NzpcdHZvaWQgaWVlZTgwMjExX2VtdWxhdGVfcmVtb3ZlX2NoYW5jdHgoc3RydWN0IGllZWU4MDIxMV9odyAqaHcsXG4gMjg4Olx0XHRcdFx0XHQgICAgICBzdHJ1Y3QgaWVlZTgwMjExX2NoYW5jdHhfY29uZiAqY3R4KVxuIDI4OTpcdHtcbiAyOTA6XHRcdHN0cnVjdCBpZWVlODAyMTFfbG9jYWwgKmxvY2FsID0gaHdfdG9fbG9jYWwoaHcpO1xuIDI5MTpcdFxuIDI5MjpcdFx0LypcbiAyOTM6XHRcdCAqIFdpdGggbm8gY29udGV4dCBsZWZ0IHRoZXJlIGlzIG5vdGhpbmcgdG8gY29uZmlndXJlOiBub3RoaW5nIGlzIG9uXG4gMjk0Olx0XHQgKiB0aGUgYWlyLCBhbmQgdGhlIG5leHQgY29udGV4dCBzZXRzIHRoZSBjaGFubmVsLiBQYXJraW5nIHRoZSByYWRpb1xuIDI5NTpcdFx0ICogb24gdGhlIGRlZmF1bHQgY2hhbm5lbCBoZXJlIG9ubHkgdG8gbW92ZSBpdCBhZ2FpbiB3aGVuIHRoZSBuZXh0XG4gMjk2Olx0XHQgKiBjb250ZXh0IGlzIGFkZGVkIGNvc3RzIGRyaXZlcnMgd2l0aG91dCBuYXRpdmUgY2hhbm5lbCBjb250ZXh0cyBhXG4gMjk3Olx0XHQgKiBmdWxsIGNoYW5uZWwgY2hhbmdlIHBlciByZXR1bmUuXG4gMjk4Olx0XHQgKi9cbiAyOTk6XHRcdGxvY2FsLVx1MDAzZWh3LmNvbmYucmFkYXJfZW5hYmxlZCA9IGZhbHNlO1xuIDMwMDpcdH1cbiAzMDE6XHRFWFBPUlRfU1lNQk9MKGllZWU4MDIxMV9lbXVsYXRlX3JlbW92ZV9jaGFuY3R4KTtcbiAzMDI6XHRcbiAzMDM6XHR2b2lkIGllZWU4MDIxMV9lbXVsYXRlX2NoYW5nZV9jaGFuY3R4KHN0cnVjdCBpZWVlODAyMTFfaHcgKmh3LFxuIDMwNDpcdFx0XHRcdFx0ICAgICAgc3RydWN0IGllZWU4MDIxMV9jaGFuY3R4X2NvbmYgKmN0eCxcbiAzMDU6XHRcdFx0XHRcdCAgICAgIHUzMiBjaGFuZ2VkKVxuIDMwNjpcdHtcbiAzMDc6XHRcdHN0cnVjdCBpZWVlODAyMTFfbG9jYWwgKmxvY2FsID0gaHdfdG9fbG9jYWwoaHcpO1xuIDMwODpcdFxuIDMwOTpcdFx0bG9jYWwtXHUwMDNlaHcuY29uZi5yYWRhcl9lbmFibGVkID0gY3R4LVx1MDAzZXJhZGFyX2VuYWJsZWQ7XG4gMzEwOlx0XG4gMzExOlx0XHRfaWVlZTgwMjExX2h3X2NvbmZfY2hhbihsb2NhbCwgY3R4KTtcbiAzMTI6XHR9XG4gMzEzOlx0RVhQT1JUX1NZTUJPTChpZWVlODAyMTFfZW11bGF0ZV9jaGFuZ2VfY2hhbmN0eCk7XG4gMzE0Olx0XG4gMzE1Olx0aW50IGllZWU4MDIxMV9lbXVsYXRlX3N3aXRjaF92aWZfY2hhbmN0eChzdHJ1Y3QgaWVlZTgwMjExX2h3ICpodyxcbiAzMTY6XHRcdFx0XHRcdFx0IHN0cnVjdCBpZWVlODAyMTFfdmlmX2NoYW5jdHhfc3dpdGNoICp2aWZzLFxuIDMxNzpcdFx0XHRcdFx0XHQgaW50IG5fdmlmcyxcbiAzMTg6XHRcdFx0XHRcdFx0IGVudW0gaWVlZTgwMjExX2NoYW5jdHhfc3dpdGNoX21vZGUgbW9kZSlcbiAzMTk6XHR7XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Ny8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMjkgMTA6MjI8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjctZmxhc2g8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMTQ0MzkKCQkJCQkJCW91dHB1dDogMzUKCQkJCQkJCXRob3VnaHRzOiAyNgoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+SGVyZSYjMzk7cyBteSBhdHRlbXB0IGF0IHN1bW1hcml6aW5nIHRoZSB0aG91Z2h0IHByb2Nlc3MsIHRhaWxvcmVkIGZvciBhbiBleHBlcnQgYXVkaWVuY2U6CgoqKkludmVzdGlnYXRpbmcgS2NvbmZpZyBEZXBlbmRlbmNpZXMgZm9yIG1hYzgwMjExIGFuZCBtYWM4MDIxMV9od3NpbSoqCgpPa2F5LCBzbyBJIG5lZWQgdG8gZmlndXJlIG91dCBleGFjdGx5IGhvdyB0aGUgS2NvbmZpZyBzdHJ1Y3R1cmUgZGljdGF0ZXMgdGhlIGluY2x1c2lvbiAob3IgZXhjbHVzaW9uKSBvZiBgbWFjODAyMTFgIGFuZCBzcGVjaWZpY2FsbHksIHRoZSBgbWFjODAyMTFfaHdzaW1gIG1vZHVsZS4gSXQmIzM5O3MgdGltZSB0byBkaWcgaW50byB0aGUgcmVsZXZhbnQgS2NvbmZpZyBmaWxlcy4gSSYjMzk7bSBhc3N1bWluZyB0aGVyZSYjMzk7cyBhIGRlcGVuZGVuY3kgY2hhaW4gSSBuZWVkIHRvIHRyYWNlLiBJJiMzOTtsbCBzdGFydCBieSBzZWFyY2hpbmcgZm9yIGFueSBkaXJlY3QgcmVmZXJlbmNlcyB0byB0aG9zZSBzeW1ib2xzIOKAkyBgTUFDODAyMTFgIGFuZCBgTUFDODAyMTFfSFdTSU1gIC0gd2l0aGluIHRoZSBtYWlubGluZSBrZXJuZWwgc291cmNlLiBJIGV4cGVjdCB0byBmaW5kIHRoZXNlIHN5bWJvbHMgaW4gdGhlIGB3aXJlbGVzc2Agb3IgYG5ldGAgZGlyZWN0b3JpZXMsIG9yIG1heWJlIGV2ZW4gZGVlcGVyIGluIHRoZSB0cmVlLCBkZXBlbmRpbmcgb24gaG93IHRoZXkmIzM5O3ZlIHN0cnVjdHVyZWQgdGhpcyBtb2R1bGUuIEkmIzM5O20gbG9va2luZyBmb3IgY29uZGl0aW9ucywgYGRlcGVuZHMgb25gLCBvciBgc2VsZWN0YCBzdGF0ZW1lbnRzIHRoYXQgY29udHJvbCB3aGV0aGVyIHRoZXNlIG9wdGlvbnMgZ2V0IGJ1aWx0LiBJJiMzOTtsbCBwYXkgY2xvc2UgYXR0ZW50aW9uIHRvIHRoZSBjb250ZXh0LCB0byBzZWUgaWYgdGhleSBhcmUgcGFydCBvZiBhIG1vcmUgZ2VuZXJhbCBhcmNoaXRlY3R1cmFsIGNvbmZpZ3VyYXRpb24gb3IgYSBtb3JlIGhhcmR3YXJlLXNwZWNpZmljIG9uZS4gVGhlIGBod3NpbWAgbW9kdWxlLCBpbiBwYXJ0aWN1bGFyLCBzaG91bGQgaGF2ZSBpdHMgb3duIHNldCBvZiBkZXBlbmRlbmNpZXMsIHdoaWNoIG1heSBpbiB0dXJuIGRlcGVuZCBvbiBvdGhlciBmZWF0dXJlcyBiZWluZyBlbmFibGVkIGZpcnN0LiBJJiMzOTtsbCBuZWVkIHRvIHVuZGVyc3RhbmQgdGhlIGxvZ2ljIGJlaGluZCB0aG9zZSBkZXBlbmRlbmNpZXMsIGZvciBleGFtcGxlLCBpcyB0aGlzIGRlcGVuZGVudCBvbiBhbm90aGVyIG1vZHVsZSB0aGF0IHVzZXMgdGhlIHNhbWUgZnVuY3Rpb25hbGl0eT8gSXMgaXQgdGllZCB0byBhIHNwZWNpZmljIGJ1aWxkIGVudmlyb25tZW50PyBJJiMzOTtsbCBwcm9iYWJseSBjcm9zcy1yZWZlcmVuY2Ugd2l0aCBhbnkgZXhpc3RpbmcgZG9jdW1lbnRhdGlvbiBvciBtYWlsaW5nIGxpc3QgZGlzY3Vzc2lvbnMgYWJvdXQgdGhlc2UgbW9kdWxlcyB0byBzZWUgaWYgdGhlcmUgYXJlIGFueSBrbm93biBnb3RjaGFzIG9yIGNvbW1vbiBjb25maWd1cmF0aW9ucy4gVGhpcyBmZWVscyBsaWtlIGEgc3RyYWlnaHRmb3J3YXJkLCBpZiBzbGlnaHRseSB0ZWRpb3VzLCBwcm9jZXNzLiBJdCYjMzk7cyBhbGwgYWJvdXQgZm9sbG93aW5nIHRoZSBLY29uZmlnIGxvZ2ljLCBvbmUgZGVwZW5kZW5jeSBhdCBhIHRpbWUsIHRvIGJ1aWxkIGEgY29tcGxldGUgcGljdHVyZSBvZiB0aGUgYnVpbGQtdGltZSBjb25maWd1cmF0aW9uLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjgvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzI5IDEwOjIyPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O2NvbmZpZyBNQUM4MDIxMSYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O25ldC9tYWM4MDIxMSYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtuZXQvbWFjODAyMTEvS2NvbmZpZy0xLSMgU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjAtb25seVxubmV0L21hYzgwMjExL0tjb25maWc6Mjpjb25maWcgTUFDODAyMTFcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTMtXHR0cmlzdGF0ZSBcJiMzNDtHZW5lcmljIElFRUUgODAyLjExIE5ldHdvcmtpbmcgU3RhY2sgKG1hYzgwMjExKVwmIzM0O1xuLS1cbm5ldC9tYWM4MDIxMS9LY29uZmlnPTE5PWlmIE1BQzgwMjExICE9IG5cbm5ldC9tYWM4MDIxMS9LY29uZmlnLTIwLVxubmV0L21hYzgwMjExL0tjb25maWc6MjE6Y29uZmlnIE1BQzgwMjExX0hBU19SQ1xubmV0L21hYzgwMjExL0tjb25maWctMjItXHRib29sXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0yMy1cbm5ldC9tYWM4MDIxMS9LY29uZmlnOjI0OmNvbmZpZyBNQUM4MDIxMV9SQ19NSU5TVFJFTFxubmV0L21hYzgwMjExL0tjb25maWctMjUtXHRib29sIFwmIzM0O01pbnN0cmVsXCYjMzQ7IGlmIEVYUEVSVFxuLS1cbm5ldC9tYWM4MDIxMS9LY29uZmlnPTMxPWNob2ljZVxuLS1cbm5ldC9tYWM4MDIxMS9LY29uZmlnLTQwLVxubmV0L21hYzgwMjExL0tjb25maWc6NDE6Y29uZmlnIE1BQzgwMjExX1JDX0RFRkFVTFRfTUlOU1RSRUxcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTQyLVx0Ym9vbCBcJiMzNDtNaW5zdHJlbFwmIzM0O1xuLS1cbm5ldC9tYWM4MDIxMS9LY29uZmlnPTQ4PWVuZGNob2ljZVxubmV0L21hYzgwMjExL0tjb25maWctNDktXG5uZXQvbWFjODAyMTEvS2NvbmZpZzo1MDpjb25maWcgTUFDODAyMTFfUkNfREVGQVVMVFxubmV0L21hYzgwMjExL0tjb25maWctNTEtXHRzdHJpbmdcbi0tXG5uZXQvbWFjODAyMTEvS2NvbmZpZz01Nz1jb21tZW50IFwmIzM0O1NvbWUgd2lyZWxlc3MgZHJpdmVycyByZXF1aXJlIGEgcmF0ZSBjb250cm9sIGFsZ29yaXRobVwmIzM0O1xuLS1cbm5ldC9tYWM4MDIxMS9LY29uZmlnLTU5LVxubmV0L21hYzgwMjExL0tjb25maWc6NjA6Y29uZmlnIE1BQzgwMjExX0tVTklUX1RFU1Rcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTYxLVx0dHJpc3RhdGUgXCYjMzQ7S1VuaXQgdGVzdHMgZm9yIG1hYzgwMjExXCYjMzQ7IGlmICFLVU5JVF9BTExfVEVTVFNcbi0tXG5uZXQvbWFjODAyMTEvS2NvbmZpZy02OS1cbm5ldC9tYWM4MDIxMS9LY29uZmlnOjcwOmNvbmZpZyBNQUM4MDIxMV9NRVNIXG5uZXQvbWFjODAyMTEvS2NvbmZpZy03MS1cdGJvb2wgXCYjMzQ7RW5hYmxlIG1hYzgwMjExIG1lc2ggbmV0d29ya2luZyBzdXBwb3J0XCYjMzQ7XG4tLVxubmV0L21hYzgwMjExL0tjb25maWctNzgtXG5uZXQvbWFjODAyMTEvS2NvbmZpZzo3OTpjb25maWcgTUFDODAyMTFfTEVEU1xubmV0L21hYzgwMjExL0tjb25maWctODAtXHRib29sIFwmIzM0O0VuYWJsZSBMRUQgdHJpZ2dlcnNcJiMzNDtcbi0tXG5uZXQvbWFjODAyMTEvS2NvbmZpZy04Ny1cbm5ldC9tYWM4MDIxMS9LY29uZmlnOjg4OmNvbmZpZyBNQUM4MDIxMV9ERUJVR0ZTXG5uZXQvbWFjODAyMTEvS2NvbmZpZy04OS1cdGJvb2wgXCYjMzQ7RXhwb3J0IG1hYzgwMjExIGludGVybmFscyBpbiBEZWJ1Z0ZTXCYjMzQ7XG4tLVxubmV0L21hYzgwMjExL0tjb25maWctOTYtXG5uZXQvbWFjODAyMTEvS2NvbmZpZzo5Nzpjb25maWcgTUFDODAyMTFfTUVTU0FHRV9UUkFDSU5HXG5uZXQvbWFjODAyMTEvS2NvbmZpZy05OC1cdGJvb2wgXCYjMzQ7VHJhY2UgYWxsIG1hYzgwMjExIGRlYnVnIG1lc3NhZ2VzXCYjMzQ7XG4tLVxubmV0L21hYzgwMjExL0tjb25maWctMTA5LVxubmV0L21hYzgwMjExL0tjb25maWc6MTEwOm1lbnVjb25maWcgTUFDODAyMTFfREVCVUdfTUVOVVxubmV0L21hYzgwMjExL0tjb25maWctMTExLVx0Ym9vbCBcJiMzNDtTZWxlY3QgbWFjODAyMTEgZGVidWdnaW5nIGZlYXR1cmVzXCYjMzQ7XG4tLVxubmV0L21hYzgwMjExL0tjb25maWctMTE1LVxubmV0L21hYzgwMjExL0tjb25maWc6MTE2OmNvbmZpZyBNQUM4MDIxMV9OT0lOTElORVxubmV0L21hYzgwMjExL0tjb25maWctMTE3LVx0Ym9vbCBcJiMzNDtEbyBub3QgaW5saW5lIFRYL1JYIGhhbmRsZXJzXCYjMzQ7XG4tLVxubmV0L21hYzgwMjExL0tjb25maWctMTMxLVxubmV0L21hYzgwMjExL0tjb25maWc6MTMyOmNvbmZpZyBNQUM4MDIxMV9WRVJCT1NFX0RFQlVHXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0xMzMtXHRib29sIFwmIzM0O1ZlcmJvc2UgZGVidWdnaW5nIG91dHB1dFwmIzM0O1xuLS1cbm5ldC9tYWM4MDIxMS9LY29uZmlnLTE0Mi1cbm5ldC9tYWM4MDIxMS9LY29uZmlnOjE0Mzpjb25maWcgTUFDODAyMTFfTUxNRV9ERUJVR1xubmV0L21hYzgwMjExL0tjb25maWctMTQ0LVx0Ym9vbCBcJiMzNDtWZXJib3NlIG1hbmFnZWQgTUxNRSBvdXRwdXRcJiMzNDtcbi0tXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0xNTMtXG5uZXQvbWFjODAyMTEvS2NvbmZpZzoxNTQ6Y29uZmlnIE1BQzgwMjExX1NUQV9ERUJVR1xubmV0L21hYzgwMjExL0tjb25maWctMTU1LVx0Ym9vbCBcJiMzNDtWZXJib3NlIHN0YXRpb24gZGVidWdnaW5nXCYjMzQ7XG4tLVxubmV0L21hYzgwMjExL0tjb25maWctMTYyLVxubmV0L21hYzgwMjExL0tjb25maWc6MTYzOmNvbmZpZyBNQUM4MDIxMV9IVF9ERUJVR1xubmV0L21hYzgwMjExL0tjb25maWctMTY0LVx0Ym9vbCBcJiMzNDtWZXJib3NlIEhUIGRlYnVnZ2luZ1wmIzM0O1xuLS1cbm5ldC9tYWM4MDIxMS9LY29uZmlnLTE3NC1cbm5ldC9tYWM4MDIxMS9LY29uZmlnOjE3NTpjb25maWcgTUFDODAyMTFfT0NCX0RFQlVHXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0xNzYtXHRib29sIFwmIzM0O1ZlcmJvc2UgT0NCIGRlYnVnZ2luZ1wmIzM0O1xuLS1cbm5ldC9tYWM4MDIxMS9LY29uZmlnLTE4NS1cbm5ldC9tYWM4MDIxMS9LY29uZmlnOjE4Njpjb25maWcgTUFDODAyMTFfSUJTU19ERUJVR1xubmV0L21hYzgwMjExL0tjb25maWctMTg3LVx0Ym9vbCBcJiMzNDtWZXJib3NlIElCU1MgZGVidWdnaW5nXCYjMzQ7XG4tLVxubmV0L21hYzgwMjExL0tjb25maWctMTk2LVxubmV0L21hYzgwMjExL0tjb25maWc6MTk3OmNvbmZpZyBNQUM4MDIxMV9QU19ERUJVR1xubmV0L21hYzgwMjExL0tjb25maWctMTk4LVx0Ym9vbCBcJiMzNDtWZXJib3NlIHBvd2Vyc2F2ZSBtb2RlIGRlYnVnZ2luZ1wmIzM0O1xuLS1cbm5ldC9tYWM4MDIxMS9LY29uZmlnLTIwOC1cbm5ldC9tYWM4MDIxMS9LY29uZmlnOjIwOTpjb25maWcgTUFDODAyMTFfTVBMX0RFQlVHXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0yMTAtXHRib29sIFwmIzM0O1ZlcmJvc2UgbWVzaCBwZWVyIGxpbmsgZGVidWdnaW5nXCYjMzQ7XG4tLVxubmV0L21hYzgwMjExL0tjb25maWctMjIxLVxubmV0L21hYzgwMjExL0tjb25maWc6MjIyOmNvbmZpZyBNQUM4MDIxMV9NUEFUSF9ERUJVR1xubmV0L21hYzgwMjExL0tjb25maWctMjIzLVx0Ym9vbCBcJiMzNDtWZXJib3NlIG1lc2ggcGF0aCBkZWJ1Z2dpbmdcJiMzNDtcbi0tXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0yMzQtXG5uZXQvbWFjODAyMTEvS2NvbmZpZzoyMzU6Y29uZmlnIE1BQzgwMjExX01IV01QX0RFQlVHXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0yMzYtXHRib29sIFwmIzM0O1ZlcmJvc2UgbWVzaCBIV01QIHJvdXRpbmcgZGVidWdnaW5nXCYjMzQ7XG4tLVxubmV0L21hYzgwMjExL0tjb25maWctMjQ3LVxubmV0L21hYzgwMjExL0tjb25maWc6MjQ4OmNvbmZpZyBNQUM4MDIxMV9NRVNIX1NZTkNfREVCVUdcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTI0OS1cdGJvb2wgXCYjMzQ7VmVyYm9zZSBtZXNoIHN5bmNocm9uaXphdGlvbiBkZWJ1Z2dpbmdcJiMzNDtcbi0tXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0yNTgtXG5uZXQvbWFjODAyMTEvS2NvbmZpZzoyNTk6Y29uZmlnIE1BQzgwMjExX01FU0hfQ1NBX0RFQlVHXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0yNjAtXHRib29sIFwmIzM0O1ZlcmJvc2UgbWVzaCBjaGFubmVsIHN3aXRjaCBkZWJ1Z2dpbmdcJiMzNDtcbi0tXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0yNjktXG5uZXQvbWFjODAyMTEvS2NvbmZpZzoyNzA6Y29uZmlnIE1BQzgwMjExX01FU0hfUFNfREVCVUdcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTI3MS1cdGJvb2wgXCYjMzQ7VmVyYm9zZSBtZXNoIHBvd2Vyc2F2ZSBkZWJ1Z2dpbmdcJiMzNDtcbi0tXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0yODAtXG5uZXQvbWFjODAyMTEvS2NvbmZpZzoyODE6Y29uZmlnIE1BQzgwMjExX1RETFNfREVCVUdcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTI4Mi1cdGJvb2wgXCYjMzQ7VmVyYm9zZSBURExTIGRlYnVnZ2luZ1wmIzM0O1xuLS1cbm5ldC9tYWM4MDIxMS9LY29uZmlnLTI5Mi1cbm5ldC9tYWM4MDIxMS9LY29uZmlnOjI5Mzpjb25maWcgTUFDODAyMTFfREVCVUdfQ09VTlRFUlNcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTI5NC1cdGJvb2wgXCYjMzQ7RXh0cmEgc3RhdGlzdGljcyBmb3IgVFgvUlggZGVidWdnaW5nXCYjMzQ7XG4tLVxubmV0L21hYzgwMjExL0tjb25maWctMzA3LVxubmV0L21hYzgwMjExL0tjb25maWc6MzA4OmNvbmZpZyBNQUM4MDIxMV9TVEFfSEFTSF9NQVhfU0laRVxubmV0L21hYzgwMjExL0tjb25maWctMzA5LVx0aW50IFwmIzM0O1N0YXRpb24gaGFzaCB0YWJsZSBtYXhpbXVtIHNpemVcJiMzNDsgaWYgTUFDODAyMTFfREVCVUdfTUVOVVxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjkvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzI5IDEwOjIyPC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy43LWZsYXNoPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDE3MDY5CgkJCQkJCQlvdXRwdXQ6IDM3CgkJCQkJCQl0aG91Z2h0czogMjkKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPkhlcmUmIzM5O3MgbXkgYW5hbHlzaXMgb2Ygd2hhdCBJJiMzOTttIHRoaW5raW5nLCByZW5kZXJlZCBhcyBhIGZpcnN0LXBlcnNvbiBzdW1tYXJ5LCBrZWVwaW5nIGluIG1pbmQgbXkgZmllbGQgZXhwZXJ0aXNlOgoKKipEaXZpbmcgaW50byB0aGUgTUFDODAyMTEgRGVwZW5kZW5jaWVzKioKCkFscmlnaHQsIGxldCYjMzk7cyBnZXQgZG93biB0byBicmFzcyB0YWNrcy4gSSBuZWVkIHRvIHVuZGVyc3RhbmQgdGhlIGRlcGVuZGVuY2llcyBvZiBgTUFDODAyMTFgIHdpdGhpbiB0aGUga2VybmVsIGNvbmZpZ3VyYXRpb24gc3lzdGVtLCBzcGVjaWZpY2FsbHkgaW4gdGhlIGBuZXQvbWFjODAyMTEvS2NvbmZpZ2AgZmlsZS4gTXkgZ29hbCBoZXJlIGlzIHRvIGdldCBhIGhhbmRsZSBvbiB3aGF0IG90aGVyIGtlcm5lbCBmZWF0dXJlcywgZHJpdmVycywgb3IgbW9kdWxlcyBhcmUgaW50cmluc2ljYWxseSBsaW5rZWQgdG8gYE1BQzgwMjExYC4gVGhpcyBpcyBpbXBvcnRhbnQgZm9yIGEgd2hvbGUgYnVuY2ggb2YgcmVhc29ucy4KCkZpcnN0bHksIHVuZGVyc3RhbmRpbmcgdGhlc2UgZGVwZW5kZW5jaWVzIGhlbHBzIG1lIGdyYXNwIHRoZSBvdmVyYWxsIGFyY2hpdGVjdHVyZSBvZiB0aGUgd2lyZWxlc3MgbmV0d29ya2luZyBzdGFjay4gSSYjMzk7bGwgbmVlZCB0aGlzIHdoZW4gSSYjMzk7bSBkZWJ1Z2dpbmcgZHJpdmVyIGlzc3VlcywgY29uc2lkZXJpbmcgZmVhdHVyZSBtb2RpZmljYXRpb25zLCBvciBldmFsdWF0aW5nIHRoZSBpbXBhY3Qgb2YgbmV3IHdpcmVsZXNzIHN0YW5kYXJkcy4KClNlY29uZCwgaXQgZ2l2ZXMgbWUgaW5zaWdodCBpbnRvIHRoZSByZXNvdXJjZSBuZWVkcyBvZiBgTUFDODAyMTFgLiBJZiBpdCByZWxpZXMgaGVhdmlseSBvbiBvdGhlciBjb21wbGV4IHN1YnN5c3RlbXMsIHRoYXQgdGVsbHMgbWUgc29tZXRoaW5nIGFib3V0IGl0cyBtZW1vcnkgZm9vdHByaW50LCBwb3RlbnRpYWwgY29udGVudGlvbiBwb2ludHMsIGFuZCBnZW5lcmFsIG92ZXJoZWFkLiBUaGlzIGtpbmQgb2Yga25vd2xlZGdlIGlzIGNydWNpYWwgZm9yIG9wdGltaXppbmcgc3lzdGVtIHBlcmZvcm1hbmNlLCBlc3BlY2lhbGx5IG9uIHJlc291cmNlLWNvbnN0cmFpbmVkIGVtYmVkZGVkIHN5c3RlbXMuCgpJJiMzOTttIGFsc28gaW50ZXJlc3RlZCBpbiBob3cgdGhlc2UgZGVwZW5kZW5jaWVzIG1pZ2h0IGFmZmVjdCB0aGUgcG9ydGFiaWxpdHkgYW5kIGZsZXhpYmlsaXR5IG9mIGBNQUM4MDIxMWAuIElmIGl0JiMzOTtzIHRpZ2h0bHkgY291cGxlZCB3aXRoIGEgY2VydGFpbiBoYXJkd2FyZSBhYnN0cmFjdGlvbiBsYXllciAoSEFMKSBvciBzcGVjaWZpYyBuZXR3b3JrIGZlYXR1cmVzLCB0aGF0IGluZmx1ZW5jZXMgaG93IGVhc2lseSBpdCBjYW4gYmUgYWRhcHRlZCB0byBuZXcgaGFyZHdhcmUgcGxhdGZvcm1zIG9yIGRpZmZlcmVudCBuZXR3b3JrIGNvbmZpZ3VyYXRpb25zLiBJIHdhbnQgdG8ga2VlcCB0aGlzIGluIG1pbmQuCgpGaW5hbGx5LCBJJiMzOTttIHRoaW5raW5nIGFib3V0IHBvdGVudGlhbCBidWlsZCBjb25maWd1cmF0aW9ucy4gV2hhdCBhcmUgdGhlIHZhcmlvdXMgc2NlbmFyaW9zLCB3aGVyZSBmZWF0dXJlcyBhcmUgZW5hYmxlZCBvciBkaXNhYmxlZCwgYW5kIGhvdyBhcmUgdGhlIGRlcGVuZGVuY2llcyByZXNvbHZlZD8gVGhpcyBpcyBrZXkgZm9yIGNyZWF0aW5nIGVmZmljaWVudCwgdGFpbG9yZWQga2VybmVsIGJ1aWxkcyBmb3Igc3BlY2lmaWMgdXNlIGNhc2VzLiBTbywgSSBuZWVkIHRvIGdldCB0aGlzIG1hcCBvZiBkZXBlbmRlbmNpZXMgY2xlYXIgaW4gbXkgaGVhZC4gTGV0JiMzOTtzIHNlZSB3aGF0IHRoYXQgYEtjb25maWdgIGZpbGUgaG9sZHMhCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTAvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzI5IDEwOjIzPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+cmVhZC1maWxlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtGaWxlJiMzNDs6ICYjMzQ7bmV0L21hYzgwMjExL0tjb25maWcmIzM0OywKICAmIzM0O0ZpcnN0TGluZSYjMzQ7OiAxLAogICYjMzQ7TGluZUNvdW50JiMzNDs6IDMwCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtDb250ZW50cyYjMzQ7OiAmIzM0OyAgIDE6XHQjIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wLW9ubHlcbiAgIDI6XHRjb25maWcgTUFDODAyMTFcbiAgIDM6XHRcdHRyaXN0YXRlIFwmIzM0O0dlbmVyaWMgSUVFRSA4MDIuMTEgTmV0d29ya2luZyBTdGFjayAobWFjODAyMTEpXCYjMzQ7XG4gICA0Olx0XHRkZXBlbmRzIG9uIENGRzgwMjExXG4gICA1Olx0XHRzZWxlY3QgQ1JZUFRPXG4gICA2Olx0XHRzZWxlY3QgQ1JZUFRPX0xJQl9BRVNfQ0JDX01BQ1NcbiAgIDc6XHRcdHNlbGVjdCBDUllQVE9fTElCX0FSQzRcbiAgIDg6XHRcdHNlbGVjdCBDUllQVE9fQUVTXG4gICA5Olx0XHRzZWxlY3QgQ1JZUFRPX0NDTVxuICAxMDpcdFx0c2VsZWN0IENSWVBUT19HQ01cbiAgMTE6XHRcdHNlbGVjdCBDUkMzMlxuICAxMjpcdFx0aGVscFxuICAxMzpcdFx0ICBUaGlzIG9wdGlvbiBlbmFibGVzIHRoZSBoYXJkd2FyZSBpbmRlcGVuZGVudCBJRUVFIDgwMi4xMVxuICAxNDpcdFx0ICBuZXR3b3JraW5nIHN0YWNrLlxuICAxNTpcdFxuICAxNjpcdGNvbW1lbnQgXCYjMzQ7Q0ZHODAyMTEgbmVlZHMgdG8gYmUgZW5hYmxlZCBmb3IgTUFDODAyMTFcJiMzNDtcbiAgMTc6XHRcdGRlcGVuZHMgb24gQ0ZHODAyMTE9blxuICAxODpcdFxuICAxOTpcdGlmIE1BQzgwMjExICE9IG5cbiAgMjA6XHRcbiAgMjE6XHRjb25maWcgTUFDODAyMTFfSEFTX1JDXG4gIDIyOlx0XHRib29sXG4gIDIzOlx0XG4gIDI0Olx0Y29uZmlnIE1BQzgwMjExX1JDX01JTlNUUkVMXG4gIDI1Olx0XHRib29sIFwmIzM0O01pbnN0cmVsXCYjMzQ7IGlmIEVYUEVSVFxuICAyNjpcdFx0c2VsZWN0IE1BQzgwMjExX0hBU19SQ1xuICAyNzpcdFx0ZGVmYXVsdCB5XG4gIDI4Olx0XHRoZWxwXG4gIDI5Olx0XHQgIFRoaXMgb3B0aW9uIGVuYWJsZXMgdGhlICYjMzk7bWluc3RyZWwmIzM5OyBUWCByYXRlIGNvbnRyb2wgYWxnb3JpdGhtXG4gIDMwOlx0XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTEvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzI5IDEwOjIzPC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy43LWZsYXNoPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDE3OTI2CgkJCQkJCQlvdXRwdXQ6IDI1CgkJCQkJCQl0aG91Z2h0czogMjAKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPkhlcmUmIzM5O3MgbXkgc3VtbWFyeSwgYXMgdGhvdWdoIEkmIzM5O20gdGhpbmtpbmcgaXQ6CgoqKkRpZ2dpbmcgaW50byB0aGUgS2NvbmZpZyAtIFNwZWNpZmljYWxseSwgYE1BQzgwMjExX0hXU0lNYCoqCgpBbHJpZ2h0LCB0aW1lIHRvIGRpdmUgZGVlcGVyLiBJJiMzOTt2ZSBnb3QgYSBzcGVjaWZpYyBxdWVzdGlvbiBhYm91dCB0aGUgYE1BQzgwMjExX0hXU0lNYCBLY29uZmlnIGVudHJ5LiBJIG5lZWQgdG8gcmVmcmVzaCBteSB1bmRlcnN0YW5kaW5nIG9mIHdoZXJlIHRoaXMgZml0cyBpbnRvIHRoZSBicm9hZGVyIHBpY3R1cmUgb2YgdGhlIHdpcmVsZXNzIHN1YnN5c3RlbS4gV2hhdCBkZXBlbmRlbmNpZXMgZG9lcyBpdCBoYXZlPyBXaGF0IGRvZXMgZW5hYmxpbmcgaXQgYWN0dWFsbHkgKmRvKiBpbiB0aGUgY29kZT8gSSBzaG91bGQgcHJvYmFibHkgY3Jvc3MtcmVmZXJlbmNlIHRoaXMgd2l0aCB0aGUgcmVsZXZhbnQgc291cmNlIGZpbGVzIGFuZCBkb2N1bWVudGF0aW9uIHJlbGF0ZWQgdG8gdGhlIG1hYzgwMjExIGZyYW1ld29yay4gSSBoYXZlIGEgaHVuY2ggaXQgaXMgcmVsYXRlZCB0byBhIHNpbXVsYXRlZCBoYXJkd2FyZSBlbnZpcm9ubWVudCBhbmQgd2FudCB0byBjb25maXJtIG15IHVuZGVyc3RhbmRpbmcuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTIvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzI5IDEwOjIzPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O2NvbmZpZyBNQUM4MDIxMV9IV1NJTSYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy92aXJ0dWFsL0tjb25maWc6MTpjb25maWcgTUFDODAyMTFfSFdTSU1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3ZpcnR1YWwvS2NvbmZpZy0yLVx0dHJpc3RhdGUgXCYjMzQ7U2ltdWxhdGVkIHJhZGlvIHRlc3RpbmcgdG9vbCBmb3IgbWFjODAyMTFcJiMzNDtcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMy8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMjkgMTA6MjM8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjctZmxhc2g8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMTgxOTMKCQkJCQkJCW91dHB1dDogMzYKCQkJCQkJCXRob3VnaHRzOiAxNgoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+SGVyZSYjMzk7cyBteSB0YWtlIG9uIHRob3NlIHRob3VnaHRzLCB0YWlsb3JlZCBmb3IgYW4gZXhwZXJ0IGF1ZGllbmNlOgoKKipEaXZpbmcgaW50byB0aGUgVmlydHVhbCBXaXJlbGVzcyBEcml2ZXIgQ29uZmlndXJhdGlvbioqCgpPa2F5LCBzbyB3ZSYjMzk7cmUgbG9va2luZyBhdCBgZHJpdmVycy9uZXQvd2lyZWxlc3MvdmlydHVhbC9LY29uZmlnYC4gUmlnaHQsIHNvIHRoaXMgaXMgd2hlcmUgdGhlIGNvcmUgY29uZmlndXJhdGlvbiBvcHRpb25zIGZvciB0aGUgdmlydHVhbCB3aXJlbGVzcyBkcml2ZXIgYXJlIGRlZmluZWQuIEkmIzM5O20gaW1tZWRpYXRlbHkgc2Nhbm5pbmcgZm9yIHRoZSB1c3VhbCBzdXNwZWN0czogdGhlIG1vZHVsZSBlbmFibGUvZGlzYWJsZSwgYW55IHNwZWNpZmljIGZlYXR1cmVzIG9yIHByb3RvY29sIHN1cHBvcnQgd2UgbWlnaHQgd2FudCB0byB0b2dnbGUgb24gb3Igb2ZmIGF0IGJ1aWxkIHRpbWUsIGFuZCwgb2YgY291cnNlLCB0aGUgZGVwZW5kZW5jaWVzIG9uIG90aGVyIGtlcm5lbCBjb21wb25lbnRzLgoKSSBuZWVkIHRvIHVuZGVyc3RhbmQgd2hhdCBhc3BlY3RzIGFyZSBjb25maWd1cmFibGUsIGFzIHRoaXMgZHJpdmVyIGlzLCBieSBkZWZpbml0aW9uLCBhbiBhYnN0cmFjdGlvbiBsYXllci4gSXMgaXQganVzdCBhIGJhc2ljIGZyYW1lIGZvciB0ZXN0aW5nIG90aGVyIHdpcmVsZXNzIHN0YWNrcywgb3IgZG9lcyBpdCBhbHNvIGV4cG9zZSBzb21lIGNvbmZpZ3VyYWJsZSB2aXJ0dWFsIGhhcmR3YXJlIGNoYXJhY3RlcmlzdGljcz8gQXJlIHRoZXJlIHNldHRpbmdzIGZvciBlbXVsYXRpbmcgZGlmZmVyZW50IHdpcmVsZXNzIHN0YW5kYXJkcywgb3IgZGlmZmVyZW50IHJlZ3VsYXRvcnkgZG9tYWlucz8gSSYjMzk7bSBob3BpbmcgdG8gcXVpY2tseSBpZGVudGlmeSB0aGUgdmFyaWFibGVzIGFuZCBkZXBlbmRlbmNpZXMgdGhhdCBJJiMzOTtsbCBuZWVkIHRvIHR3ZWFrIGZvciBteSBzcGVjaWZpYyB1c2UgY2FzZSwgd2hhdGV2ZXIgdGhhdCBtaWdodCBiZSAtIGxpa2VseSBlaXRoZXIgdGVzdGluZyBhIHdpcmVsZXNzIHN0YWNrLCBvciBwb3RlbnRpYWxseSBleHRlbmRpbmcgdGhlIHZpcnR1YWwgZHJpdmVyIHdpdGggc29tZSBjdXN0b20gZmVhdHVyZS4KCkkmIzM5O2xsIGJlIGxvb2tpbmcgY2FyZWZ1bGx5IGF0IHRoZSBkZWZhdWx0IHZhbHVlcywgYW55IGhlbHAgdGV4dCBwcm92aWRlZCwgYW5kLCBjcnVjaWFsbHksIGFueSByZWxhdGlvbnNoaXBzIGJldHdlZW4gdGhlIGNvbmZpZyBvcHRpb25zLiBBcmUgdGhlcmUgbXV0dWFsbHkgZXhjbHVzaXZlIG9wdGlvbnM/IEFyZSBzb21lIGZlYXR1cmVzIGRlcGVuZGVudCBvbiBvdGhlcnM/IEFuZCBhcmUgdGhlcmUgYW55IG9ic2N1cmUgc2V0dGluZ3MgYnVyaWVkIGluIHRoZXJlIHRoYXQgYXJlIGxpa2VseSB0byB0cmlwIG1lIHVwPyBJJiMzOTttIGxvb2tpbmcgZm9yIGNsdWVzIGFzIHRvIGhvdyByb2J1c3QgdGhlIGNvbmZpZ3VyYXRpb24gaXMgYW5kIHdoZXRoZXIgdGhlIGRlc2lnbiBpcyBmb3J3YXJkIGNvbXBhdGlibGUuCgpJbiBlc3NlbmNlLCBJJiMzOTttIHRyeWluZyB0byBnZXQgYSBtYXAgb2YgdGhlIGNvbmZpZ3VyYXRpb24gc3BhY2UgZm9yIHRoaXMgZHJpdmVyIHNvIEkgY2FuIGVmZmVjdGl2ZWx5IHVzZSBpdCBhcyBhIHRvb2wgb3IgZm91bmRhdGlvbi4gSSBhbHNvIGhvcGUgdGhlIG5hbWluZyBpcyBpbnR1aXRpdmUsIGFuZCB0aGF0IHRoZSBLY29uZmlnIGNvbnZlbnRpb25zIGhhdmUgYmVlbiBhZGhlcmVkIHRvLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjE0LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8yOSAxMDoyMzwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPnJlYWQtZmlsZTwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RmlsZSYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3dpcmVsZXNzL3ZpcnR1YWwvS2NvbmZpZyYjMzQ7LAogICYjMzQ7Rmlyc3RMaW5lJiMzNDs6IDEsCiAgJiMzNDtMaW5lQ291bnQmIzM0OzogMzAKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0NvbnRlbnRzJiMzNDs6ICYjMzQ7ICAgMTpcdGNvbmZpZyBNQUM4MDIxMV9IV1NJTVxuICAgMjpcdFx0dHJpc3RhdGUgXCYjMzQ7U2ltdWxhdGVkIHJhZGlvIHRlc3RpbmcgdG9vbCBmb3IgbWFjODAyMTFcJiMzNDtcbiAgIDM6XHRcdGRlcGVuZHMgb24gTUFDODAyMTFcbiAgIDQ6XHRcdGhlbHBcbiAgIDU6XHRcdCAgVGhpcyBkcml2ZXIgaXMgYSBkZXZlbG9wZXIgdGVzdGluZyB0b29sIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdFxuICAgNjpcdFx0ICBJRUVFIDgwMi4xMSBuZXR3b3JraW5nIHN0YWNrIChtYWM4MDIxMSkgZnVuY3Rpb25hbGl0eS4gVGhpcyBpcyBub3RcbiAgIDc6XHRcdCAgbmVlZGVkIGZvciBub3JtYWwgd2lyZWxlc3MgTEFOIHVzYWdlIGFuZCBpcyBvbmx5IGZvciB0ZXN0aW5nLiBTZWVcbiAgIDg6XHRcdCAgRG9jdW1lbnRhdGlvbi9uZXR3b3JraW5nL21hYzgwMjExX2h3c2ltIGZvciBtb3JlIGluZm9ybWF0aW9uIG9uIGhvd1xuICAgOTpcdFx0ICB0byB1c2UgdGhpcyB0b29sLlxuICAxMDpcdFxuICAxMTpcdFx0ICBUbyBjb21waWxlIHRoaXMgZHJpdmVyIGFzIGEgbW9kdWxlLCBjaG9vc2UgTSBoZXJlOiB0aGUgbW9kdWxlIHdpbGwgYmVcbiAgMTI6XHRcdCAgY2FsbGVkIG1hYzgwMjExX2h3c2ltLiAgSWYgdW5zdXJlLCBzYXkgTi5cbiAgMTM6XHRcbiAgMTQ6XHRjb25maWcgVklSVF9XSUZJXG4gIDE1Olx0XHR0cmlzdGF0ZSBcJiMzNDtXaWZpIHdyYXBwZXIgZm9yIGV0aGVybmV0IGRyaXZlcnNcJiMzNDtcbiAgMTY6XHRcdGRlcGVuZHMgb24gQ0ZHODAyMTFcbiAgMTc6XHRcdGhlbHBcbiAgMTg6XHRcdCAgVGhpcyBvcHRpb24gYWRkcyBzdXBwb3J0IGZvciBldGhlcm5ldCBjb25uZWN0aW9ucyB0byBhcHBlYXIgYXMgaWYgdGhleVxuICAxOTpcdFx0ICBhcmUgd2lmaSBjb25uZWN0aW9ucyB0aHJvdWdoIGEgc3BlY2lhbCBydG5ldGxpbmsgZGV2aWNlLlxuICAyMDpcdFxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjE1LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8yOSAxMDoyMzwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuNy1mbGFzaDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAxODkxOAoJCQkJCQkJb3V0cHV0OiA0MAoJCQkJCQkJdGhvdWdodHM6IDczCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKkludmVzdGlnYXRpbmcgQ2hhbm5lbCBDb250ZXh0IFJlbW92YWwqKgoKQWxyaWdodCwgbGV0JiMzOTtzIGRpdmUgaW50byB0aGlzLiBJIG5lZWQgdG8gdW5kZXJzdGFuZCB0aGUgaW50ZXJhY3Rpb24gYmV0d2VlbiBjaGFubmVsIGNvbmZpZ3VyYXRpb24gYW5kIGNvbnRleHQgcmVtb3ZhbCB3aXRoaW4gdGhlIDgwMi4xMSBzdGFjay4gTXkgZmlyc3QgdGhvdWdodCBpcyB0byB0cmFjZSB0aGUgZXhlY3V0aW9uIHBhdGguIEkmIzM5O20gZ29pbmcgdG8gc3RhcnQgYnkgZXhhbWluaW5nIHRoZSBmdW5jdGlvbnMgYF9pZWVlODAyMTFfaHdfY29uZl9jaGFuYCBhbmQgYGllZWU4MDIxMV9lbXVsYXRlX3JlbW92ZV9jaGFuY3R4YC4gSSBuZWVkIHRvIGZpZ3VyZSBvdXQgd2hhdCBlYWNoIG9mIHRoZXNlIGZ1bmN0aW9ucyBkb2VzIGluZGl2aWR1YWxseSwgYW5kIHdoZXJlIHRoZSBvdmVybGFwIGlzIGluIHRoZWlyIHVzZS4gVGhpcyBzZWVtcyB0byBiZSB0aGUgY3JpdGljYWwgYXJlYSBvZiBpbnRlcmVzdC4gVGhlbiwgSSB3aWxsIGFsc28gd2FudCB0byBpbnZlc3RpZ2F0ZSB0aGUgY29kZSBhcm91bmQgYG5ldC9tYWM4MDIxMS9tYWluLmNgIGxpbmVzIDI0MC0yODAuIEkgc3VzcGVjdCB0aGlzIHdpbGwgYmUgd2hlcmUgdGhlIGNvcmUgbG9naWMgcmVsYXRlZCB0byB0aGVzZSBjaGFubmVsIG1hbmFnZW1lbnQgb3BlcmF0aW9ucyB3aWxsIGJlLiBCeSBleGFtaW5pbmcgdGhlc2UgZnVuY3Rpb25zIGFuZCB0aGUgc3Vycm91bmRpbmcgY29udGV4dCwgSSBzaG91bGQgYmUgYWJsZSB0byBmb3JtIGEgY2xlYXIgcGljdHVyZSBvZiBob3cgY2hhbm5lbCBjb250ZXh0cyBhcmUgbWFuYWdlZCBhbmQsIG1vcmUgc3BlY2lmaWNhbGx5LCByZW1vdmVkLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjE2LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8yOSAxMDoyMzwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPnJlYWQtZmlsZTwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RmlsZSYjMzQ7OiAmIzM0O25ldC9tYWM4MDIxMS9tYWluLmMmIzM0OywKICAmIzM0O0ZpcnN0TGluZSYjMzQ7OiAyNDAsCiAgJiMzNDtMaW5lQ291bnQmIzM0OzogNTAKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0NvbnRlbnRzJiMzNDs6ICYjMzQ7IDI0MDpcdH1cbiAyNDE6XHRcbiAyNDI6XHRpbnQgaWVlZTgwMjExX2h3X2NvbmZfY2hhbihzdHJ1Y3QgaWVlZTgwMjExX2xvY2FsICpsb2NhbClcbiAyNDM6XHR7XG4gMjQ0Olx0XHRzdHJ1Y3QgaWVlZTgwMjExX2NoYW5jdHggKmN0eDtcbiAyNDU6XHRcbiAyNDY6XHRcdGN0eCA9IGxpc3RfZmlyc3RfZW50cnlfb3JfbnVsbChcdTAwMjZsb2NhbC1cdTAwM2VjaGFuY3R4X2xpc3QsXG4gMjQ3Olx0XHRcdFx0XHQgICAgICAgc3RydWN0IGllZWU4MDIxMV9jaGFuY3R4LFxuIDI0ODpcdFx0XHRcdFx0ICAgICAgIGxpc3QpO1xuIDI0OTpcdFxuIDI1MDpcdFx0cmV0dXJuIF9pZWVlODAyMTFfaHdfY29uZl9jaGFuKGxvY2FsLCBjdHggPyBcdTAwMjZjdHgtXHUwMDNlY29uZiA6IE5VTEwpO1xuIDI1MTpcdH1cbiAyNTI6XHRcbiAyNTM6XHR2b2lkIGllZWU4MDIxMV9od19jb25mX2luaXQoc3RydWN0IGllZWU4MDIxMV9sb2NhbCAqbG9jYWwpXG4gMjU0Olx0e1xuIDI1NTpcdFx0dTMyIGNoYW5nZWQgPSB+KElFRUU4MDIxMV9DT05GX0NIQU5HRV9DSEFOTkVMIHxcbiAyNTY6XHRcdFx0XHRJRUVFODAyMTFfQ09ORl9DSEFOR0VfUE9XRVIgfFxuIDI1NzpcdFx0XHRcdElFRUU4MDIxMV9DT05GX0NIQU5HRV9TTVBTKTtcbiAyNTg6XHRcbiAyNTk6XHRcdGlmIChXQVJOX09OKCFsb2NhbC1cdTAwM2VvcGVuX2NvdW50KSlcbiAyNjA6XHRcdFx0cmV0dXJuO1xuIDI2MTpcdFxuIDI2MjpcdFx0aWYgKGxvY2FsLVx1MDAzZWVtdWxhdGVfY2hhbmN0eCkge1xuIDI2MzpcdFx0XHRzdHJ1Y3QgaWVlZTgwMjExX2NoYW5jdHggKmN0eDtcbiAyNjQ6XHRcbiAyNjU6XHRcdFx0Y3R4ID0gbGlzdF9maXJzdF9lbnRyeV9vcl9udWxsKFx1MDAyNmxvY2FsLVx1MDAzZWNoYW5jdHhfbGlzdCxcbiAyNjY6XHRcdFx0XHRcdFx0ICAgICAgIHN0cnVjdCBpZWVlODAyMTFfY2hhbmN0eCxcbiAyNjc6XHRcdFx0XHRcdFx0ICAgICAgIGxpc3QpO1xuIDI2ODpcdFxuIDI2OTpcdFx0XHRjaGFuZ2VkIHw9IGllZWU4MDIxMV9jYWxjX2h3X2NvbmZfY2hhbihsb2NhbCxcbiAyNzA6XHRcdFx0XHRcdFx0XHQgICAgICAgY3R4ID8gXHUwMDI2Y3R4LVx1MDAzZWNvbmYgOiBOVUxMKTtcbiAyNzE6XHRcdH1cbiAyNzI6XHRcbiAyNzM6XHRcdFdBUk5fT04oZHJ2X2NvbmZpZyhsb2NhbCwgLTEsIGNoYW5nZWQpKTtcbiAyNzQ6XHR9XG4gMjc1Olx0XG4gMjc2Olx0aW50IGllZWU4MDIxMV9lbXVsYXRlX2FkZF9jaGFuY3R4KHN0cnVjdCBpZWVlODAyMTFfaHcgKmh3LFxuIDI3NzpcdFx0XHRcdFx0ICBzdHJ1Y3QgaWVlZTgwMjExX2NoYW5jdHhfY29uZiAqY3R4KVxuIDI3ODpcdHtcbiAyNzk6XHRcdHN0cnVjdCBpZWVlODAyMTFfbG9jYWwgKmxvY2FsID0gaHdfdG9fbG9jYWwoaHcpO1xuIDI4MDpcdFxuIDI4MTpcdFx0bG9jYWwtXHUwMDNlaHcuY29uZi5yYWRhcl9lbmFibGVkID0gY3R4LVx1MDAzZXJhZGFyX2VuYWJsZWQ7XG4gMjgyOlx0XG4gMjgzOlx0XHRyZXR1cm4gX2llZWU4MDIxMV9od19jb25mX2NoYW4obG9jYWwsIGN0eCk7XG4gMjg0Olx0fVxuIDI4NTpcdEVYUE9SVF9TWU1CT0woaWVlZTgwMjExX2VtdWxhdGVfYWRkX2NoYW5jdHgpO1xuIDI4NjpcdFxuIDI4NzpcdHZvaWQgaWVlZTgwMjExX2VtdWxhdGVfcmVtb3ZlX2NoYW5jdHgoc3RydWN0IGllZWU4MDIxMV9odyAqaHcsXG4gMjg4Olx0XHRcdFx0XHQgICAgICBzdHJ1Y3QgaWVlZTgwMjExX2NoYW5jdHhfY29uZiAqY3R4KVxuIDI4OTpcdHtcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xNy8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMjkgMTA6MjM8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjctZmxhc2g8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMjAwODIKCQkJCQkJCW91dHB1dDogMzIKCQkJCQkJCXRob3VnaHRzOiAzOQoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+T2theSwgaGVyZSYjMzk7cyBteSBpbnRlcnByZXRhdGlvbiBvZiB0aG9zZSB0aG91Z2h0cywgc3VtbWFyaXplZCBmcm9tIGFuIGV4cGVydCYjMzk7cyBwZXJzcGVjdGl2ZToKCioqSW52ZXN0aWdhdGluZyBDaGFubmVsIENvbnRleHQgUmVtb3ZhbCBpbiBtYWM4MDIxMSoqCgpBbHJpZ2h0LCBzbyBJJiMzOTttIGxvb2tpbmcgaW50byB0aGUgY2hhbm5lbCBjb250ZXh0IHJlbW92YWwgcm91dGluZXMgd2l0aGluIG1hYzgwMjExLiBTcGVjaWZpY2FsbHksIEkgbmVlZCB0byB1bmRlcnN0YW5kIHRoZSBjYWxsIHBhdGhzIHRoYXQgbGVhZCB0byB0aGUgYHJlbW92ZV9jaGFuY3R4YCBjYWxsYmFjayBvciB0aGUgYGllZWU4MDIxMV9lbXVsYXRlX3JlbW92ZV9jaGFuY3R4YCBmdW5jdGlvbi4gSSBuZWVkIHRvIHRyYWNlIGhvdyB0aGVzZSBmdW5jdGlvbnMgYXJlIGJlaW5nIGludm9rZWQuIEkgbmVlZCB0byB1bmRlcnN0YW5kIHRoZSBzY2VuYXJpb3MgYW5kIGNvbmRpdGlvbnMgdGhhdCB0cmlnZ2VyIHRoZW0sIGFuZCwgYnkgZXh0ZW5zaW9uLCBlbnN1cmUgdGhhdCBjb250ZXh0IHJlbW92YWwgaXMgaGFwcGVuaW5nIGNvcnJlY3RseSBhbmQgZWZmaWNpZW50bHkuIEkmIzM5O20gZm9jdXNpbmcgb24gdGhlIGludGVyYWN0aW9uIGJldHdlZW4gbWFjODAyMTEgYW5kIHRoZSBkcml2ZXIuIFdoYXQgYXJlIHRoZSB0cmlnZ2Vycz8gV2hhdCBhcmUgdGhlIGltcGxpY2F0aW9ucz8gTGV0JiMzOTtzIGZpZ3VyZSB0aGlzIG91dC4gSSYjMzk7bGwgbmVlZCB0byBjYXJlZnVsbHkgZXhhbWluZSB0aGUgY29kZSBmbG93IGFuZCB0aGUgZGF0YSBzdHJ1Y3R1cmVzIGludm9sdmVkIHRvIGdldCBhIGNvbXBsZXRlIHBpY3R1cmUuIFRoaXMgaXMga2V5IHRvIGVuc3VyaW5nIHRoYXQgdGhlIHdpcmVsZXNzIHN0YWNrIGJlaGF2ZXMgYXMgZXhwZWN0ZWQuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTgvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzI5IDEwOjIzPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O3JlbW92ZV9jaGFuY3R4JiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7bmV0L21hYzgwMjExJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O25ldC9tYWM4MDIxMS9jaGFuLmM9MTA4MD1zdGF0aWMgdm9pZCBpZWVlODAyMTFfZGVsX2NoYW5jdHgoc3RydWN0IGllZWU4MDIxMV9sb2NhbCAqbG9jYWwsXG4tLVxubmV0L21hYzgwMjExL2NoYW4uYy0xMDg1LVxubmV0L21hYzgwMjExL2NoYW4uYzoxMDg2Olx0ZHJ2X3JlbW92ZV9jaGFuY3R4KGxvY2FsLCBjdHgpO1xubmV0L21hYzgwMjExL2NoYW4uYy0xMDg3LVxuLS1cbm5ldC9tYWM4MDIxMS9kcml2ZXItb3BzLmg9MTAxND1zdGF0aWMgaW5saW5lIGludCBkcnZfYWRkX2NoYW5jdHgoc3RydWN0IGllZWU4MDIxMV9sb2NhbCAqbG9jYWwsXG4tLVxubmV0L21hYzgwMjExL2RyaXZlci1vcHMuaC0xMDMxLVxubmV0L21hYzgwMjExL2RyaXZlci1vcHMuaDoxMDMyOnN0YXRpYyBpbmxpbmUgdm9pZCBkcnZfcmVtb3ZlX2NoYW5jdHgoc3RydWN0IGllZWU4MDIxMV9sb2NhbCAqbG9jYWwsXG5uZXQvbWFjODAyMTEvZHJpdmVyLW9wcy5oLTEwMzMtXHRcdFx0XHQgICAgICBzdHJ1Y3QgaWVlZTgwMjExX2NoYW5jdHggKmN0eClcbi0tXG5uZXQvbWFjODAyMTEvZHJpdmVyLW9wcy5oLTEwNDAtXG5uZXQvbWFjODAyMTEvZHJpdmVyLW9wcy5oOjEwNDE6XHR0cmFjZV9kcnZfcmVtb3ZlX2NoYW5jdHgobG9jYWwsIGN0eCk7XG5uZXQvbWFjODAyMTEvZHJpdmVyLW9wcy5oOjEwNDI6XHRpZiAobG9jYWwtXHUwMDNlb3BzLVx1MDAzZXJlbW92ZV9jaGFuY3R4KVxubmV0L21hYzgwMjExL2RyaXZlci1vcHMuaDoxMDQzOlx0XHRsb2NhbC1cdTAwM2VvcHMtXHUwMDNlcmVtb3ZlX2NoYW5jdHgoXHUwMDI2bG9jYWwtXHUwMDNlaHcsIFx1MDAyNmN0eC1cdTAwM2Vjb25mKTtcbm5ldC9tYWM4MDIxMS9kcml2ZXItb3BzLmgtMTA0NC1cdHRyYWNlX2Rydl9yZXR1cm5fdm9pZChsb2NhbCk7XG4tLVxubmV0L21hYzgwMjExL21haW4uYz0yODU9RVhQT1JUX1NZTUJPTChpZWVlODAyMTFfZW11bGF0ZV9hZGRfY2hhbmN0eCk7XG5uZXQvbWFjODAyMTEvbWFpbi5jLTI4Ni1cbm5ldC9tYWM4MDIxMS9tYWluLmM6Mjg3OnZvaWQgaWVlZTgwMjExX2VtdWxhdGVfcmVtb3ZlX2NoYW5jdHgoc3RydWN0IGllZWU4MDIxMV9odyAqaHcsXG5uZXQvbWFjODAyMTEvbWFpbi5jLTI4OC1cdFx0XHRcdCAgICAgIHN0cnVjdCBpZWVlODAyMTFfY2hhbmN0eF9jb25mICpjdHgpXG4tLVxubmV0L21hYzgwMjExL21haW4uYy0zMDAtfVxubmV0L21hYzgwMjExL21haW4uYzozMDE6RVhQT1JUX1NZTUJPTChpZWVlODAyMTFfZW11bGF0ZV9yZW1vdmVfY2hhbmN0eCk7XG5uZXQvbWFjODAyMTEvbWFpbi5jLTMwMi1cbi0tXG5uZXQvbWFjODAyMTEvbWFpbi5jPTc5OD1zdHJ1Y3QgaWVlZTgwMjExX2h3ICppZWVlODAyMTFfYWxsb2NfaHdfbm0oc2l6ZV90IHByaXZfZGF0YV9sZW4sXG4tLVxubmV0L21hYzgwMjExL21haW4uYy04MjAtXHRpZiAob3BzLVx1MDAzZWFkZF9jaGFuY3R4ID09IGllZWU4MDIxMV9lbXVsYXRlX2FkZF9jaGFuY3R4IFx1MDAyNlx1MDAyNlxubmV0L21hYzgwMjExL21haW4uYzo4MjE6XHQgICAgb3BzLVx1MDAzZXJlbW92ZV9jaGFuY3R4ID09IGllZWU4MDIxMV9lbXVsYXRlX3JlbW92ZV9jaGFuY3R4IFx1MDAyNlx1MDAyNlxubmV0L21hYzgwMjExL21haW4uYy04MjItXHQgICAgb3BzLVx1MDAzZWNoYW5nZV9jaGFuY3R4ID09IGllZWU4MDIxMV9lbXVsYXRlX2NoYW5nZV9jaGFuY3R4KSB7XG4tLVxubmV0L21hYzgwMjExL21haW4uYy04MjgtXHRcdGlmIChXQVJOX09OKG9wcy1cdTAwM2VhZGRfY2hhbmN0eCA9PSBpZWVlODAyMTFfZW11bGF0ZV9hZGRfY2hhbmN0eCB8fFxubmV0L21hYzgwMjExL21haW4uYzo4Mjk6XHRcdFx0ICAgIG9wcy1cdTAwM2VyZW1vdmVfY2hhbmN0eCA9PSBpZWVlODAyMTFfZW11bGF0ZV9yZW1vdmVfY2hhbmN0eCB8fFxubmV0L21hYzgwMjExL21haW4uYy04MzAtXHRcdFx0ICAgIG9wcy1cdTAwM2VjaGFuZ2VfY2hhbmN0eCA9PSBpZWVlODAyMTFfZW11bGF0ZV9jaGFuZ2VfY2hhbmN0eCkpXG4tLVxubmV0L21hYzgwMjExL21haW4uYy04MzItXHRcdGlmIChXQVJOX09OKCFvcHMtXHUwMDNlYWRkX2NoYW5jdHggfHxcbm5ldC9tYWM4MDIxMS9tYWluLmM6ODMzOlx0XHRcdCAgICAhb3BzLVx1MDAzZXJlbW92ZV9jaGFuY3R4IHx8XG5uZXQvbWFjODAyMTEvbWFpbi5jLTgzNC1cdFx0XHQgICAgIW9wcy1cdTAwM2VjaGFuZ2VfY2hhbmN0eCB8fFxuLS1cbm5ldC9tYWM4MDIxMS90cmFjZS5oPTE2OTA9REVGSU5FX0VWRU5UKGxvY2FsX2NoYW5jdHgsIGRydl9hZGRfY2hhbmN0eCxcbi0tXG5uZXQvbWFjODAyMTEvdHJhY2UuaC0xNjk1LVxubmV0L21hYzgwMjExL3RyYWNlLmg6MTY5NjpERUZJTkVfRVZFTlQobG9jYWxfY2hhbmN0eCwgZHJ2X3JlbW92ZV9jaGFuY3R4LFxubmV0L21hYzgwMjExL3RyYWNlLmgtMTY5Ny1cdFRQX1BST1RPKHN0cnVjdCBpZWVlODAyMTFfbG9jYWwgKmxvY2FsLFxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjE5LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8yOSAxMDoyMzwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuNy1mbGFzaDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAyMTU2NgoJCQkJCQkJb3V0cHV0OiA0MQoJCQkJCQkJdGhvdWdodHM6IDM1CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5IZXJlJiMzOTtzIG15IGF0dGVtcHQgYXQgc3VtbWFyaXppbmcgdGhlIHRob3VnaHQgcHJvY2VzcywgdGFpbG9yZWQgZm9yIGFuIGV4cGVydCBhdWRpZW5jZToKCioqRGl2aW5nIGludG8gYGllZWU4MDIxMV9kZWxfY2hhbmN0eGAqKgoKQWxyaWdodCwgbGV0JiMzOTtzIGRpc3NlY3QgYGllZWU4MDIxMV9kZWxfY2hhbmN0eGAgd2l0aGluIGBuZXQvbWFjODAyMTEvY2hhbi5jYC4gSSBuZWVkIHRvIHVuZGVyc3RhbmQgdGhlIGltcGxpY2F0aW9ucyBvZiB0aGlzIGZ1bmN0aW9uLiBNeSBpbW1lZGlhdGUgYXNzdW1wdGlvbiBpcyBpdCYjMzk7cyByZXNwb25zaWJsZSBmb3IgdGhlIGNsZWFudXAgcHJvY2VzcyBhc3NvY2lhdGVkIHdpdGggYSBjaGFubmVsIGNvbnRleHQuIEkmIzM5O20gZ3Vlc3NpbmcgdGhpcyBmdW5jdGlvbiBpcyBjZW50cmFsIHRvIG1hbmFnaW5nIGNoYW5uZWwtcmVsYXRlZCByZXNvdXJjZXMsIHByb2JhYmx5IHdoZW4gYSBjaGFubmVsIGlzIGJlaW5nIGRpc2FibGVkIG9yIGRlcmVnaXN0ZXJlZC4gSSBuZWVkIHRvIGZpZ3VyZSBvdXQgd2hhdCBraW5kIG9mIHJlc291cmNlcyBpdCYjMzk7cyBjbGVhbmluZyB1cCwgYW5kIHdoZXRoZXIgdGhlcmUgYXJlIGFueSBzdWJ0bGV0aWVzIHRvIGJlIGF3YXJlIG9mLCBsaWtlIHBvdGVudGlhbCByYWNlIGNvbmRpdGlvbnMgb3IgbG9ja2luZyBpc3N1ZXMsIHBhcnRpY3VsYXJseSB3aXRoaW4gdGhlIGNvbmN1cnJlbmN5IG1vZGVsIG9mIG1hYzgwMjExLiBBcmUgd2UgdGFsa2luZyBhYm91dCBmcmVlaW5nIG1lbW9yeSwgZGVyZWZlcmVuY2luZyBwb2ludGVycywgYW5kIHBvdGVudGlhbGx5IGRlYWN0aXZhdGluZyBoYXJkd2FyZSBjb21wb25lbnRzIHRpZWQgdG8gdGhhdCBzcGVjaWZpYyBjaGFubmVsPyBEb2VzIGl0IHJlbW92ZSB0aGUgY29udGV4dCBmcm9tIGEgY2VudHJhbCBkYXRhIHN0cnVjdHVyZSwgc3VjaCBhcyBhIGhhc2ggdGFibGUsIHdoZXJlIGFsbCB0aGUgY2hhbm5lbCBjb250ZXh0cyBhcmUgaGVsZD8gVGhlIG1haW4gb2JqZWN0aXZlIGlzIHRvIGNvbXBsZXRlbHkgZGUtYWxsb2NhdGUgdGhlIHJlc291cmNlcyBhc3NvY2lhdGVkIHdpdGggY2hhbm5lbCBjb250ZXh0LiBLbm93aW5nIHRoZSBpbnRlcm5hbHMgb2YgaG93IHRoZSBjaGFubmVsIGNvbnRleHRzIGFyZSBoYW5kbGVkIGlzIGNyaXRpY2FsIGZvciBpZGVudGlmeWluZyBwb3RlbnRpYWwgbWVtb3J5IGxlYWtzIGFuZCBlbnN1cmluZyB0aGUgc3lzdGVtIGlzIHJvYnVzdC4gU3BlY2lmaWNhbGx5LCBJJiMzOTttIGxvb2tpbmcgZm9yIGhvdyBpdCBoYW5kbGVzIHJlZmVyZW5jZSBjb3VudHMsIGFzc29jaWF0ZWQgdGltZXJzLCBhbmQgYW55IHBvdGVudGlhbCBzaWRlIGVmZmVjdHMgb24gb3RoZXIgcmVsYXRlZCBzdHJ1Y3R1cmVzLCBsaWtlIHRoZSBvcGVyYXRpbmcgQlNTIGxpc3Qgb3Igc2NhbiBjb250ZXh0cy4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4yMC8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMjkgMTA6MjM8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5yZWFkLWZpbGU8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0ZpbGUmIzM0OzogJiMzNDtuZXQvbWFjODAyMTEvY2hhbi5jJiMzNDssCiAgJiMzNDtGaXJzdExpbmUmIzM0OzogMTA3MCwKICAmIzM0O0xpbmVDb3VudCYjMzQ7OiA0MAp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7Q29udGVudHMmIzM0OzogJiMzNDsxMDcwOlx0XHQvKlxuMTA3MTpcdFx0ICogV2UgaWdub3JlZCBhIGRyaXZlciBlcnJvciwgc2VlIF9pZWVlODAyMTFfc2V0X2FjdGl2ZV9saW5rcyBhbmQvb3JcbjEwNzI6XHRcdCAqIGllZWU4MDIxMV9uYW5fc2V0X2xvY2FsX3NjaGVkXG4xMDczOlx0XHQgKi9cbjEwNzQ6XHRcdFdBUk5fT05fT05DRShlcnIgXHUwMDI2XHUwMDI2ICFsb2NhbC1cdTAwM2Vpbl9yZWNvbmZpZyk7XG4xMDc1Olx0XG4xMDc2Olx0XHRsaXN0X2FkZF9yY3UoXHUwMDI2Y3R4LVx1MDAzZWxpc3QsIFx1MDAyNmxvY2FsLVx1MDAzZWNoYW5jdHhfbGlzdCk7XG4xMDc3Olx0XHRyZXR1cm4gY3R4O1xuMTA3ODpcdH1cbjEwNzk6XHRcbjEwODA6XHRzdGF0aWMgdm9pZCBpZWVlODAyMTFfZGVsX2NoYW5jdHgoc3RydWN0IGllZWU4MDIxMV9sb2NhbCAqbG9jYWwsXG4xMDgxOlx0XHRcdFx0XHQgIHN0cnVjdCBpZWVlODAyMTFfY2hhbmN0eCAqY3R4LFxuMTA4MjpcdFx0XHRcdFx0ICBib29sIHNraXBfaWRsZV9yZWNhbGMpXG4xMDgzOlx0e1xuMTA4NDpcdFx0bG9ja2RlcF9hc3NlcnRfd2lwaHkobG9jYWwtXHUwMDNlaHcud2lwaHkpO1xuMTA4NTpcdFxuMTA4NjpcdFx0ZHJ2X3JlbW92ZV9jaGFuY3R4KGxvY2FsLCBjdHgpO1xuMTA4NzpcdFxuMTA4ODpcdFx0aWYgKCFza2lwX2lkbGVfcmVjYWxjKVxuMTA4OTpcdFx0XHRpZWVlODAyMTFfcmVjYWxjX2lkbGUobG9jYWwpO1xuMTA5MDpcdFxuMTA5MTpcdFx0aWVlZTgwMjExX3JlbW92ZV93YnJmKGxvY2FsLCBcdTAwMjZjdHgtXHUwMDNlY29uZi5kZWYpO1xuMTA5MjpcdH1cbjEwOTM6XHRcbjEwOTQ6XHR2b2lkIGllZWU4MDIxMV9mcmVlX2NoYW5jdHgoc3RydWN0IGllZWU4MDIxMV9sb2NhbCAqbG9jYWwsXG4xMDk1Olx0XHRcdFx0ICAgIHN0cnVjdCBpZWVlODAyMTFfY2hhbmN0eCAqY3R4LFxuMTA5NjpcdFx0XHRcdCAgICBib29sIHNraXBfaWRsZV9yZWNhbGMpXG4xMDk3Olx0e1xuMTA5ODpcdFx0bG9ja2RlcF9hc3NlcnRfd2lwaHkobG9jYWwtXHUwMDNlaHcud2lwaHkpO1xuMTA5OTpcdFxuMTEwMDpcdFx0V0FSTl9PTl9PTkNFKGllZWU4MDIxMV9jaGFuY3R4X3JlZmNvdW50KGxvY2FsLCBjdHgpICE9IDApO1xuMTEwMTpcdFxuMTEwMjpcdFx0bGlzdF9kZWxfcmN1KFx1MDAyNmN0eC1cdTAwM2VsaXN0KTtcbjExMDM6XHRcdGllZWU4MDIxMV9kZWxfY2hhbmN0eChsb2NhbCwgY3R4LCBza2lwX2lkbGVfcmVjYWxjKTtcbjExMDQ6XHRcdGtmcmVlX3JjdShjdHgsIHJjdV9oZWFkKTtcbjExMDU6XHR9XG4xMTA2Olx0XG4xMTA3Olx0dm9pZCBpZWVlODAyMTFfcmVjYWxjX2NoYW5jdHhfY2hhbnR5cGUoc3RydWN0IGllZWU4MDIxMV9sb2NhbCAqbG9jYWwsXG4xMTA4Olx0XHRcdFx0XHQgICAgICAgc3RydWN0IGllZWU4MDIxMV9jaGFuY3R4ICpjdHgpXG4xMTA5Olx0e1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjIxLzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8yOSAxMDoyMzwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuNy1mbGFzaDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAyMjYzNgoJCQkJCQkJb3V0cHV0OiA0MgoJCQkJCQkJdGhvdWdodHM6IDIwNwoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipBbmFseXppbmcgdGhlIFJlbW92YWwgb2YgYF9pZWVlODAyMTFfaHdfY29uZl9jaGFuYCBpbiBgaWVlZTgwMjExX2VtdWxhdGVfcmVtb3ZlX2NoYW5jdHhgKioKCk9rYXksIHNvIEkmIzM5O20gbG9va2luZyBhdCB0aGlzIGNvZGUgYW5kIGltbWVkaWF0ZWx5IEkgc2VlIGBfaWVlZTgwMjExX2h3X2NvbmZfY2hhbmAgd2FzIGJlaW5nIGNhbGxlZCB3aXRoaW4gYGllZWU4MDIxMV9lbXVsYXRlX3JlbW92ZV9jaGFuY3R4YC4gU3BlY2lmaWNhbGx5LCB0aGlzIHdhcyBoYXBwZW5pbmcgcmlnaHQgYWZ0ZXIgYGxvY2FsLSZndDtody5jb25mLnJhZGFyX2VuYWJsZWRgIHdhcyBzZXQgdG8gYGZhbHNlYC4gVGhlIHJlbGV2YW50IGNvZGUgaXM6CgpgYGBjCnZvaWQgaWVlZTgwMjExX2VtdWxhdGVfcmVtb3ZlX2NoYW5jdHgoc3RydWN0IGllZWU4MDIxMV9odyAqaHcsCgkJCQkgICAgICBzdHJ1Y3QgaWVlZTgwMjExX2NoYW5jdHhfY29uZiAqY3R4KQp7CglzdHJ1Y3QgaWVlZTgwMjExX2xvY2FsICpsb2NhbCA9IGh3X3RvX2xvY2FsKGh3KTsKCglsb2NhbC0mZ3Q7aHcuY29uZi5yYWRhcl9lbmFibGVkID0gZmFsc2U7CgoJX2llZWU4MDIxMV9od19jb25mX2NoYW4obG9jYWwsIE5VTEwpOwp9CmBgYAoKTm93LCB0aGUgY3J1Y2lhbCBwYXJ0OiBpdCBhcHBlYXJzIGBfaWVlZTgwMjExX2h3X2NvbmZfY2hhbihsb2NhbCwgTlVMTCk7YCBoYXMgYmVlbiByZW1vdmVkLiBUaGF0JiMzOTtzIGEgc2lnbmlmaWNhbnQgY2hhbmdlIGFuZCBJIG5lZWQgdG8gdW5kZXJzdGFuZCB0aGUgaW1wbGljYXRpb25zIG9mIHRoYXQgcmVtb3ZhbC4gVGhlIGNvbnRleHQgaW5kaWNhdGVzIHRoaXMgY2hhbmdlIGlzIHRpZWQgdG8gdGhlIHJlbW92YWwgb2YgYSBjaGFubmVsIGNvbnRleHQsIHNvIGNsZWFybHkgdGhpcyBjYWxsIHdhcyBpbXBvcnRhbnQgYXQgdGhpcyBwb2ludCBpbiB0aGUgcHJvY2Vzcy4gTXkgbmV4dCBzdGVwIHdpbGwgYmUgdG8gZGl2ZSBkZWVwZXIgaW50byB3aGF0IGBfaWVlZTgwMjExX2h3X2NvbmZfY2hhbmAgZG9lcy4gSXRzIGZ1bmN0aW9uLCBpbiB0aGlzIGNvbnRleHQsIG11c3QgYmUgdW5kZXJzdG9vZCB0byBkZXRlcm1pbmUgdGhlIGFjdHVhbCBpbXBhY3Qgb2YgaXRzIGRlbGV0aW9uLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjIyLzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8yOSAxMDoyNDwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtfaWVlZTgwMjExX2h3X2NvbmZfY2hhbiYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O25ldC9tYWM4MDIxMSYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtuZXQvbWFjODAyMTEvbWFpbi5jPTE5Mz1pbnQgaWVlZTgwMjExX2h3X2NvbmZpZyhzdHJ1Y3QgaWVlZTgwMjExX2xvY2FsICpsb2NhbCwgaW50IHJhZGlvX2lkeCxcbi0tXG5uZXQvbWFjODAyMTEvbWFpbi5jLTIyNi0vKiBmb3Igc2Nhbm5pbmcsIG9mZmNoYW5uZWwgYW5kIGNoYW5jdHggZW11bGF0aW9uIG9ubHkgKi9cbm5ldC9tYWM4MDIxMS9tYWluLmM6MjI3OnN0YXRpYyBpbnQgX2llZWU4MDIxMV9od19jb25mX2NoYW4oc3RydWN0IGllZWU4MDIxMV9sb2NhbCAqbG9jYWwsXG5uZXQvbWFjODAyMTEvbWFpbi5jLTIyOC1cdFx0XHRcdCAgIHN0cnVjdCBpZWVlODAyMTFfY2hhbmN0eF9jb25mICpjdHgpXG4tLVxubmV0L21hYzgwMjExL21haW4uYz0yNDI9aW50IGllZWU4MDIxMV9od19jb25mX2NoYW4oc3RydWN0IGllZWU4MDIxMV9sb2NhbCAqbG9jYWwpXG4tLVxubmV0L21hYzgwMjExL21haW4uYy0yNDktXG5uZXQvbWFjODAyMTEvbWFpbi5jOjI1MDpcdHJldHVybiBfaWVlZTgwMjExX2h3X2NvbmZfY2hhbihsb2NhbCwgY3R4ID8gXHUwMDI2Y3R4LVx1MDAzZWNvbmYgOiBOVUxMKTtcbm5ldC9tYWM4MDIxMS9tYWluLmMtMjUxLX1cbi0tXG5uZXQvbWFjODAyMTEvbWFpbi5jPTI3Nj1pbnQgaWVlZTgwMjExX2VtdWxhdGVfYWRkX2NoYW5jdHgoc3RydWN0IGllZWU4MDIxMV9odyAqaHcsXG4tLVxubmV0L21hYzgwMjExL21haW4uYy0yODItXG5uZXQvbWFjODAyMTEvbWFpbi5jOjI4MzpcdHJldHVybiBfaWVlZTgwMjExX2h3X2NvbmZfY2hhbihsb2NhbCwgY3R4KTtcbm5ldC9tYWM4MDIxMS9tYWluLmMtMjg0LX1cbi0tXG5uZXQvbWFjODAyMTEvbWFpbi5jPTMwMz12b2lkIGllZWU4MDIxMV9lbXVsYXRlX2NoYW5nZV9jaGFuY3R4KHN0cnVjdCBpZWVlODAyMTFfaHcgKmh3LFxuLS1cbm5ldC9tYWM4MDIxMS9tYWluLmMtMzEwLVxubmV0L21hYzgwMjExL21haW4uYzozMTE6XHRfaWVlZTgwMjExX2h3X2NvbmZfY2hhbihsb2NhbCwgY3R4KTtcbm5ldC9tYWM4MDIxMS9tYWluLmMtMzEyLX1cbi0tXG5uZXQvbWFjODAyMTEvbWFpbi5jPTMxNT1pbnQgaWVlZTgwMjExX2VtdWxhdGVfc3dpdGNoX3ZpZl9jaGFuY3R4KHN0cnVjdCBpZWVlODAyMTFfaHcgKmh3LFxuLS1cbm5ldC9tYWM4MDIxMS9tYWluLmMtMzI1LVx0bG9jYWwtXHUwMDNlaHcuY29uZi5yYWRhcl9lbmFibGVkID0gdmlmc1swXS5uZXdfY3R4LVx1MDAzZXJhZGFyX2VuYWJsZWQ7XG5uZXQvbWFjODAyMTEvbWFpbi5jOjMyNjpcdF9pZWVlODAyMTFfaHdfY29uZl9jaGFuKGxvY2FsLCB2aWZzWzBdLm5ld19jdHgpO1xubmV0L21hYzgwMjExL21haW4uYy0zMjctXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MjMvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzI5IDEwOjI0PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy43LWZsYXNoPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDIzOTcyCgkJCQkJCQlvdXRwdXQ6IDMyCgkJCQkJCQl0aG91Z2h0czogNzAxCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKkZ1enppbmcgRXZhbHVhdGlvbjogV2lyZWxlc3MgQ2hhbm5lbCBDb250ZXh0IFJlbW92YWwqKgoKQWxyaWdodCwgbGV0JiMzOTtzIGJyZWFrIHRoaXMgZG93bi4gRmlyc3QsIEkgbmVlZCB0byBkZXRlcm1pbmUgaWYgdGhpcyBjaGFuZ2Ugd2FycmFudHMgZnV6emluZy4gSSYjMzk7bSBsb29raW5nIGZvciBhICYjMzQ7V29ydGhGdXp6aW5nID0gdHJ1ZSYjMzQ7IGFuc3dlci4gTXkgaW5pdGlhbCBhc3Nlc3NtZW50IGlzOiBpdCBpcyBXb3J0aEZ1enppbmcuIFRoZSBjaGFuZ2UgaXMgd2l0aGluIGNvcmUgd2lyZWxlc3MgbG9naWMgaW4gbWFjODAyMTEsIHNwZWNpZmljYWxseSBgaWVlZTgwMjExX2VtdWxhdGVfcmVtb3ZlX2NoYW5jdHhgLiBUaGlzIGlzbiYjMzk7dCBkb2N1bWVudGF0aW9uLCBkZWNvcmF0aW9uLCBjb25zdGFudCB0d2Vha2luZywgb3IgaW5hY2Nlc3NpYmxlIGNvZGUuIFRoZSB1c2Ugb2YgYG1hYzgwMjExX2h3c2ltYCBtYWtlcyBpdCByZWFjaGFibGUgaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzLCB3aGljaCBpcyBrZXkgZm9yIGZ1enppbmcgZmVhc2liaWxpdHkgYW5kIHRoZSBubDgwMjExL2NmZzgwMjExIGludGVyZmFjZSBtZWFucyB3ZSBjYW4gdHJpZ2dlciB0aGUgY29kZSBwYXRocy4KCk5vdywgbGV0JiMzOTtzIGlkZW50aWZ5IHRoZSBzaWduaWZpY2FudCBzeW1ib2xzLiBJJiMzOTt2ZSBnb3Q6IGBpZWVlODAyMTFfZW11bGF0ZV9yZW1vdmVfY2hhbmN0eGAsIGBpZWVlODAyMTFfZnJlZV9jaGFuY3R4YCwgYGllZWU4MDIxMV9lbXVsYXRlX2FkZF9jaGFuY3R4YCwgYGllZWU4MDIxMV9lbXVsYXRlX2NoYW5nZV9jaGFuY3R4YCwgYW5kIGBpZWVlODAyMTFfaHdfY29uZl9jaGFuYC4gVGhlc2UgYXJlIHRoZSBmdW5jdGlvbnMgSSYjMzk7bGwgbmVlZCB0byBmb2N1cyBvbiBkdXJpbmcgZnV6emluZy4KCk5leHQsIEkgbmVlZCB0byBlbnN1cmUgdGhlc2Ugc3ltYm9scyBhcmUgYWNjZXNzaWJsZS4gT2theSwgYGllZWU4MDIxMV9lbXVsYXRlX3JlbW92ZV9jaGFuY3R4YCwgYGllZWU4MDIxMV9lbXVsYXRlX2FkZF9jaGFuY3R4YCwgYW5kIGBpZWVlODAyMTFfZW11bGF0ZV9jaGFuZ2VfY2hhbmN0eGAgYXJlIGFsbCBleHBvcnRlZC4gRXhjZWxsZW50LiBgaWVlZTgwMjExX2ZyZWVfY2hhbmN0eGAgbG9va3Mgbm9uLXN0YXRpYyB3aXRoaW4gYGNoYW4uY2AsIGFsc28gZ29vZC4KCkZpbmFsbHksIEkgbmVlZCB0byBjaGVjayB0aGUgS2NvbmZpZyBkZXBlbmRlbmNpZXMuIGBNQUM4MDIxMWAgZGVwZW5kcyBvbiBgQ0ZHODAyMTFgLCBhbmQgYE1BQzgwMjExX0hXU0lNYCBkZXBlbmRzIG9uIGBNQUM4MDIxMWAuIEkmIzM5O2xsIG5lZWQgdG8gbWFrZSBzdXJlIHRob3NlIGFyZSBlbmFibGVkLCBhbG9uZyB3aXRoIHdoYXRldmVyIGBDRkc4MDIxMWAgaXRzZWxmIGRlcGVuZHMgb24sIGZyb20gYG5ldC93aXJlbGVzcy9LY29uZmlnYC4gVGhlc2UgYXJlIG5lY2Vzc2FyeSB0byBzZXQgdXAgYSB2YWxpZCBmdXp6aW5nIGVudmlyb25tZW50LgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjI0LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8yOSAxMDoyNDwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPnJlYWQtZmlsZTwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RmlsZSYjMzQ7OiAmIzM0O25ldC93aXJlbGVzcy9LY29uZmlnJiMzNDssCiAgJiMzNDtGaXJzdExpbmUmIzM0OzogMSwKICAmIzM0O0xpbmVDb3VudCYjMzQ7OiA0MAp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7Q29udGVudHMmIzM0OzogJiMzNDsgICAxOlx0IyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMC1vbmx5XG4gICAyOlx0Y29uZmlnIFdJUkVMRVNTX0VYVFxuICAgMzpcdFx0Ym9vbFxuICAgNDpcdFxuICAgNTpcdGNvbmZpZyBXRVhUX0NPUkVcbiAgIDY6XHRcdGRlZl9ib29sIHlcbiAgIDc6XHRcdGRlcGVuZHMgb24gQ0ZHODAyMTFfV0VYVCB8fCBXSVJFTEVTU19FWFRcbiAgIDg6XHRcbiAgIDk6XHRjb25maWcgV0VYVF9QUk9DXG4gIDEwOlx0XHRkZWZfYm9vbCB5XG4gIDExOlx0XHRkZXBlbmRzIG9uIFBST0NfRlNcbiAgMTI6XHRcdGRlcGVuZHMgb24gV0VYVF9DT1JFXG4gIDEzOlx0XG4gIDE0Olx0Y29uZmlnIFdFWFRfUFJJVlxuICAxNTpcdFx0Ym9vbFxuICAxNjpcdFxuICAxNzpcdGNvbmZpZyBDRkc4MDIxMVxuICAxODpcdFx0dHJpc3RhdGUgXCYjMzQ7Y2ZnODAyMTEgLSB3aXJlbGVzcyBjb25maWd1cmF0aW9uIEFQSVwmIzM0O1xuICAxOTpcdFx0ZGVwZW5kcyBvbiBSRktJTEwgfHwgIVJGS0lMTFxuICAyMDpcdFx0c2VsZWN0IEZXX0xPQURFUlxuICAyMTpcdFx0c2VsZWN0IENSQzMyXG4gIDIyOlx0XHQjIG1heSBuZWVkIHRvIHVwZGF0ZSB0aGlzIHdoZW4gY2VydGlmaWNhdGVzIGFyZSBjaGFuZ2VkIGFuZCBhcmVcbiAgMjM6XHRcdCMgdXNpbmcgYSBkaWZmZXJlbnQgYWxnb3JpdGhtLCB0aG91Z2ggcmlnaHQgbm93IHRoZXkgc2hvdWxkbiYjMzk7dFxuICAyNDpcdFx0IyAodGhpcyBpcyBoZXJlIHJhdGhlciB0aGFuIGJlbG93IHRvIGFsbG93IGl0IHRvIGJlIGEgbW9kdWxlKVxuICAyNTpcdFx0c2VsZWN0IENSWVBUT19TSEEyNTYgaWYgQ0ZHODAyMTFfVVNFX0tFUk5FTF9SRUdEQl9LRVlTXG4gIDI2Olx0XHRoZWxwXG4gIDI3Olx0XHQgIGNmZzgwMjExIGlzIHRoZSBMaW51eCB3aXJlbGVzcyBMQU4gKDgwMi4xMSkgY29uZmlndXJhdGlvbiBBUEkuXG4gIDI4Olx0XHQgIEVuYWJsZSB0aGlzIGlmIHlvdSBoYXZlIGEgd2lyZWxlc3MgZGV2aWNlLlxuICAyOTpcdFxuICAzMDpcdFx0ICBGb3IgbW9yZSBpbmZvcm1hdGlvbiByZWZlciB0byBkb2N1bWVudGF0aW9uIG9uIHRoZSB3aXJlbGVzcyB3aWtpOlxuICAzMTpcdFxuICAzMjpcdFx0ICBodHRwczovL3dpcmVsZXNzLndpa2kua2VybmVsLm9yZy9lbi9kZXZlbG9wZXJzL0RvY3VtZW50YXRpb24vY2ZnODAyMTFcbiAgMzM6XHRcbiAgMzQ6XHRcdCAgV2hlbiBidWlsdCBhcyBhIG1vZHVsZSBpdCB3aWxsIGJlIGNhbGxlZCBjZmc4MDIxMS5cbiAgMzU6XHRcbiAgMzY6XHRpZiBDRkc4MDIxMVxuICAzNzpcdFxuICAzODpcdGNvbmZpZyBOTDgwMjExX1RFU1RNT0RFXG4gIDM5Olx0XHRib29sIFwmIzM0O25sODAyMTEgdGVzdG1vZGUgY29tbWFuZFwmIzM0O1xuICA0MDpcdFx0aGVscFxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjI1LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8yOSAxMDoyNDwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuNy1mbGFzaDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAyNTcyMQoJCQkJCQkJb3V0cHV0OiAzNgoJCQkJCQkJdGhvdWdodHM6IDI3CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Pa2F5LCBsZXQmIzM5O3Mgc2VlLiBNeSBmaXJzdCB0aG91Z2h0IGlzIHRvIGRpZyBpbnRvIHRoZSBjb21waWxhdGlvbiBwcm9jZXNzIGZvciBgbWFpbi5jYCwgYW5kIGEgbGlrZWx5IHN0YXJ0aW5nIHBvaW50IGlzIHRoZSBgbmV0L21hYzgwMjExL01ha2VmaWxlYC4gVGhhdCYjMzk7cyB3aGVyZSBJIHdvdWxkIGV4cGVjdCB0byBmaW5kIHRoZSBydWxlcyB0aGF0IGRpY3RhdGUgaG93IHRoYXQgcGFydGljdWxhciBmaWxlIGlzIHRyYW5zZm9ybWVkIGludG8gb2JqZWN0IGNvZGUgYW5kIHVsdGltYXRlbHkgbGlua2VkIGludG8gdGhlIGZpbmFsIGV4ZWN1dGFibGUgb3IgbW9kdWxlLiBJdCYjMzk7cyB0aGUgbW9zdCBsb2dpY2FsIHBsYWNlIHRvIGJlZ2luIHVucmF2ZWxpbmcgaG93IHRoZSBrZXJuZWwgYnVpbGQgc3lzdGVtIGhhbmRsZXMgdGhpcyBzcGVjaWZpYyBzb3VyY2UgZmlsZS4gTGV0JiMzOTtzIHNlZSB3aGF0IHNlY3JldHMgdGhpcyBNYWtlZmlsZSBob2xkcy4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4yNi8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMjkgMTA6MjQ8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5yZWFkLWZpbGU8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0ZpbGUmIzM0OzogJiMzNDtuZXQvbWFjODAyMTEvTWFrZWZpbGUmIzM0OywKICAmIzM0O0ZpcnN0TGluZSYjMzQ7OiAxLAogICYjMzQ7TGluZUNvdW50JiMzNDs6IDQwCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtDb250ZW50cyYjMzQ7OiAmIzM0OyAgIDE6XHQjIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wXG4gICAyOlx0b2JqLSQoQ09ORklHX01BQzgwMjExKSAmIzQzOz0gbWFjODAyMTEub1xuICAgMzpcdFxuICAgNDpcdCMgbWFjODAyMTEgb2JqZWN0c1xuICAgNTpcdG1hYzgwMjExLXkgOj0gXFxcbiAgIDY6XHRcdG1haW4ubyBzdGF0dXMubyBcXFxuICAgNzpcdFx0ZHJpdmVyLW9wcy5vIFxcXG4gICA4Olx0XHRzdGFfaW5mby5vIFxcXG4gICA5Olx0XHR3ZXAubyBcXFxuICAxMDpcdFx0YWVhZF9hcGkubyBcXFxuICAxMTpcdFx0d3BhLm8gXFxcbiAgMTI6XHRcdHNjYW4ubyBvZmZjaGFubmVsLm8gXFxcbiAgMTM6XHRcdGh0Lm8gYWdnLXR4Lm8gYWdnLXJ4Lm8gXFxcbiAgMTQ6XHRcdHZodC5vIFxcXG4gIDE1Olx0XHRoZS5vIFxcXG4gIDE2Olx0XHRzMWcubyBcXFxuICAxNzpcdFx0aWJzcy5vIFxcXG4gIDE4Olx0XHRpZmFjZS5vIFxcXG4gIDE5Olx0XHRsaW5rLm8gXFxcbiAgMjA6XHRcdHJhdGUubyBcXFxuICAyMTpcdFx0dGtpcC5vIFxcXG4gIDIyOlx0XHRhZXNfY21hYy5vIFxcXG4gIDIzOlx0XHRhZXNfZ21hYy5vIFxcXG4gIDI0Olx0XHRmaWxzX2FlYWQubyBcXFxuICAyNTpcdFx0Y2ZnLm8gXFxcbiAgMjY6XHRcdGV0aHRvb2wubyBcXFxuICAyNzpcdFx0cngubyBcXFxuICAyODpcdFx0c3BlY3RtZ210Lm8gXFxcbiAgMjk6XHRcdHR4Lm8gXFxcbiAgMzA6XHRcdGtleS5vIFxcXG4gIDMxOlx0XHR1dGlsLm8gcGFyc2UubyBcXFxuICAzMjpcdFx0d21lLm8gXFxcbiAgMzM6XHRcdGNoYW4ubyBhcC5vIFxcXG4gIDM0Olx0XHR0cmFjZS5vIG1sbWUubyBcXFxuICAzNTpcdFx0dGRscy5vIFxcXG4gIDM2Olx0XHRvY2IubyBcXFxuICAzNzpcdFx0YWlydGltZS5vIFxcXG4gIDM4Olx0XHRlaHQubyB1aHIubyBuYW4ub1xuICAzOTpcdFxuICA0MDpcdG1hYzgwMjExLSQoQ09ORklHX01BQzgwMjExX0xFRFMpICYjNDM7PSBsZWQub1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjI3LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8yOSAxMDoyNDwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuNy1mbGFzaDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAyNjQwNwoJCQkJCQkJb3V0cHV0OiAxODcKCQkJCQkJCXRob3VnaHRzOiAxNDEKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqQW5hbHl6aW5nIFdpcmVsZXNzIENvbmZpZ3VyYXRpb24gT3B0aW9ucyoqCgpPa2F5LCBzbyBJJiMzOTttIGxvb2tpbmcgYXQgdGhlc2UgY29uZmlndXJhdGlvbiBvcHRpb25zLCBzcGVjaWZpY2FsbHkgYENPTkZJR19NQUM4MDIxMWAsIGBDT05GSUdfQ0ZHODAyMTFgLCBhbmQgYENPTkZJR19NQUM4MDIxMV9IV1NJTWAuIEkgbmVlZCB0byBlbnN1cmUgSSBoYXZlIGEgZ29vZCBncmFzcCBvZiBob3cgdGhlc2UgYXJlIHNldC4gSSYjMzk7bGwgbWVudGFsbHkgc3RyaXAgdGhlIGBDT05GSUdfYCBwcmVmaXggdG8gZ2V0IHRoZSBjb3JlIGNvbmZpZyBzeW1ib2xzOiBgTUFDODAyMTFgLCBgQ0ZHODAyMTFgLCBhbmQgYE1BQzgwMjExX0hXU0lNYC4gTWFrZXMgaXQgZWFzaWVyIHRvIHF1aWNrbHkgc2NhbiB0aGUgYXJyYXkgd2l0aG91dCB0aGUgZXh0cmEgY2x1dHRlci4KClJpZ2h0LCB0aW1lIHRvIHplcm8gaW4gb24gdGhlIHJlbGV2YW50IGZ1bmN0aW9ucy4gTGV0JiMzOTtzIHNlZS4uLiBgaWVlZTgwMjExX2VtdWxhdGVfcmVtb3ZlX2NoYW5jdHhgIGFuZCBgaWVlZTgwMjExX2ZyZWVfY2hhbmN0eGAgLSB0aG9zZSBzdGFuZCBvdXQuIFRoZXkmIzM5O3JlIGRlZmluaXRlbHkgaW4gdGhlIHJpZ2h0IGFyZWEgZm9yIHdoYXQgSSYjMzk7bSBkb2luZy4KCk5vdyB0aGF0IEkmIzM5O3ZlIGdvdCBhIGhhbmRsZSBvbiB0aGUga2V5IGNvbmZpZyBvcHRpb25zIGFuZCB0aGUgdGFyZ2V0IGZ1bmN0aW9ucywgSSBzaG91bGQgZ2V0IHRoaXMgYW5hbHlzaXMgZG9uZS4gVGltZSB0byBjYWxsIGBzZXQtcmVzdWx0c2AuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MjgvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzI5IDEwOjI0PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+c2V0LXJlc3VsdHM8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogWwogICAgJiMzNDtNQUM4MDIxMSYjMzQ7LAogICAgJiMzNDtDRkc4MDIxMSYjMzQ7LAogICAgJiMzNDtNQUM4MDIxMV9IV1NJTSYjMzQ7CiAgXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbCiAgICAmIzM0O2llZWU4MDIxMV9lbXVsYXRlX3JlbW92ZV9jaGFuY3R4JiMzNDssCiAgICAmIzM0O2llZWU4MDIxMV9mcmVlX2NoYW5jdHgmIzM0OwogIF0sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggbW9kaWZpZXMgYGllZWU4MDIxMV9lbXVsYXRlX3JlbW92ZV9jaGFuY3R4YCBpbiBtYWM4MDIxMSB0byBhdm9pZCBjYWxsaW5nIGBfaWVlZTgwMjExX2h3X2NvbmZfY2hhbihsb2NhbCwgTlVMTClgIHdoZW4gY2hhbm5lbCBjb250ZXh0cyBhcmUgcmVtb3ZlZCwgY2hhbmdpbmcgY2hhbm5lbCBjb25maWd1cmF0aW9uIGJlaGF2aW9yIGZvciBkcml2ZXJzIHVzaW5nIGVtdWxhdGVkIGNoYW5uZWwgY29udGV4dHMgKHN1Y2ggYXMgbWFjODAyMTFfaHdzaW0pLiBUaGlzIHRvdWNoZXMgcmVhY2hhYmxlIGNvcmUgd2lyZWxlc3MgbmV0d29ya2luZyBsb2dpYyBhbmQgaXMgd29ydGggZnV6emluZy4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiB0cnVlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IFsKICAgICYjMzQ7TUFDODAyMTEmIzM0OywKICAgICYjMzQ7Q0ZHODAyMTEmIzM0OywKICAgICYjMzQ7TUFDODAyMTFfSFdTSU0mIzM0OwogIF0sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogWwogICAgJiMzNDtpZWVlODAyMTFfZW11bGF0ZV9yZW1vdmVfY2hhbmN0eCYjMzQ7LAogICAgJiMzNDtpZWVlODAyMTFfZnJlZV9jaGFuY3R4JiMzNDsKICBdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIG1vZGlmaWVzIGBpZWVlODAyMTFfZW11bGF0ZV9yZW1vdmVfY2hhbmN0eGAgaW4gbWFjODAyMTEgdG8gYXZvaWQgY2FsbGluZyBgX2llZWU4MDIxMV9od19jb25mX2NoYW4obG9jYWwsIE5VTEwpYCB3aGVuIGNoYW5uZWwgY29udGV4dHMgYXJlIHJlbW92ZWQsIGNoYW5naW5nIGNoYW5uZWwgY29uZmlndXJhdGlvbiBiZWhhdmlvciBmb3IgZHJpdmVycyB1c2luZyBlbXVsYXRlZCBjaGFubmVsIGNvbnRleHRzIChzdWNoIGFzIG1hYzgwMjExX2h3c2ltKS4gVGhpcyB0b3VjaGVzIHJlYWNoYWJsZSBjb3JlIHdpcmVsZXNzIG5ldHdvcmtpbmcgbG9naWMgYW5kIGlzIHdvcnRoIGZ1enppbmcuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogdHJ1ZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MjkvMTwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzI5IDEwOjI0PC90ZD4KCQkJPHRkPmFjdGlvbjwvdGQ+CgkJCTx0ZD5JZjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IHRydWUKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4zMC8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMjkgMTA6MjQ8L3RkPgoJCQk8dGQ+YWdlbnQ8L3RkPgoJCQk8dGQ+a21zYW4tZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Y29yZTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtLTVNBTlJlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCByZW1vdmVzIGEgY2FsbCB0byBgX2llZWU4MDIxMV9od19jb25mX2NoYW4obG9jYWwsIE5VTEwpYCBpbnNpZGUgYGllZWU4MDIxMV9lbXVsYXRlX3JlbW92ZV9jaGFuY3R4KClgIHRvIGF2b2lkIHVubmVjZXNzYXJ5IGNoYW5uZWwgcmVjb25maWd1cmF0aW9uIHdoZW4gcmVtb3ZpbmcgYSBjaGFubmVsIGNvbnRleHQgaW4gZW11bGF0aW9uIG1vZGUuXG5cblRoaXMgbW9kaWZpY2F0aW9uIGRvZXMgbm90OlxuMS4gQWxsb2NhdGUsIGFjY2Vzcywgb3IgZXhwb3NlIGFueSB1bmluaXRpYWxpemVkIG1lbW9yeSAoc3RhY2ssIGhlYXAsIG9yIHBhZ2UgYWxsb2NhdGlvbnMpLlxuMi4gQ29weSBhbnkga2VybmVsIGRhdGEgc3RydWN0dXJlcyB0byB1c2Vyc3BhY2UgKG5vIGluZm8tbGVhayByaXNrKS5cbjMuIEludHJvZHVjZSBvciBhbHRlciBicmFuY2ggY29uZGl0aW9ucyBiYXNlZCBvbiB1bmluaXRpYWxpemVkIGRhdGEgb3IgbWFuaXB1bGF0ZSBidWZmZXIgYm91bmRzLlxuXG5BbnkgcG90ZW50aWFsIGJlaGF2aW9yYWwgcmVncmVzc2lvbnMgb3IgZHJpdmVyIHN0YXRlIGluY29uc2lzdGVuY2llcyB3b3VsZCBiZSBmdW5jdGlvbmFsIGJ1Z3Mgb3IgY292ZXJlZCB1bmRlciBzdGFuZGFyZCBrZXJuZWwgdGVzdGluZy9LQVNBTi4gVGhlcmVmb3JlLCBhIGRlZGljYXRlZCBLTVNBTiBmdXp6aW5nIHNlc3Npb24gaXMgbm90IHdhcnJhbnRlZC4mIzM0OywKICAmIzM0O05lZWRzS01TQU4mIzM0OzogZmFsc2UKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+SW5zdHJ1Y3Rpb246PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Zb3UgYXJlIGFuIGV4cGVydCBMaW51eCBrZXJuZWwgc2VjdXJpdHkgZW5naW5lZXIgc3BlY2lhbGl6aW5nIGluIGtlcm5lbCBtZW1vcnkKZXJyb3IgZGV0ZWN0b3JzIChLQVNBTiBhbmQgS01TQU4pLiBZb3VyIGpvYiBpcyB0byByZXZpZXcgdGhlIHByb3ZpZGVkIHBhdGNoIHNlcmllcyBhbmQKZGV0ZXJtaW5lIGlmIHRoZSBjb2RlIGNoYW5nZXMganVzdGlmeSBzcGF3bmluZyBhIGRlZGljYXRlZCBLTVNBTiAoS2VybmVsTWVtb3J5U2FuaXRpemVyKQpmdXp6aW5nIHNlc3Npb24gaW4gYWRkaXRpb24gdG8gc3RhbmRhcmQgS0FTQU4gZnV6emluZy4KCkNSSVRJQ0FMIERJU1RJTkNUSU9OIEJFVFdFRU4gS0FTQU4gQU5EIEtNU0FOOgotIFN0YW5kYXJkIEtBU0FOIGtlcm5lbCBidWlsZHMgKHVwc3RyZWFtLWFwcGFybW9yLWthc2FuLmNvbmZpZykgYWxyZWFkeSBlbmFibGUKICBhIGNvbXByZWhlbnNpdmUgc3VpdGUgb2YgZGVidWdnaW5nIHRvb2xzIGFuZCBzYW5pdGl6ZXJzLCBpbmNsdWRpbmcgS0FTQU4KICAob3V0LW9mLWJvdW5kcyBhY2Nlc3NlcywgdXNlLWFmdGVyLWZyZWUsIGRvdWJsZSBmcmVlLCBpbnZhbGlkIGZyZWUpLCBMT0NLREVQCiAgKGxvY2tpbmcgYnVncyBhbmQgZGVhZGxvY2tzKSwgVUItc2FuaXRpemVycywgYW5kIG1lbW9yeSBjb3JydXB0aW9uIGNoZWNrcy4KLSBLTVNBTiAoS2VybmVsTWVtb3J5U2FuaXRpemVyKSBkZXRlY3RzIHJlYWRzIG9mIFVOSU5JVElBTElaRUQgbWVtb3J5IChzdGFjaywgaGVhcCwKICBvciBwYWdlIGFsbG9jYXRpb25zKSBhbmQga2VybmVsLXRvLXVzZXIgbWVtb3J5IGluZm8tbGVha3MuCgpSdWxlOiBUSEVSRSBJUyBOTyBTRU5TRSBJTiBSVU5OSU5HIEEgS01TQU4gU0VTU0lPTiBJRiBBIEJVRyBDQU4gQkUgQ0FVR0hUIEJZIEtBU0FOLApMT0NLREVQLCBPUiBPVEhFUiBTVEFOREFSRCBCVUcgREVURUNUT1JTLgpBIGRlZGljYXRlZCBLTVNBTiBmdXp6aW5nIHNlc3Npb24gaW5jdXJzIHNpZ25pZmljYW50IHJlc291cmNlIGNvc3RzLiBZb3UgbXVzdCBPTkxZCnNldCBOZWVkc0tNU0FOPXRydWUgaWYgdGhlIGNvZGUgY2hhbmdlcyBpbnRyb2R1Y2Ugb3IgZXhwb3NlIFVOSU5JVElBTElaRUQgTUVNT1JZIHJpc2tzCnRoYXQgYXJlIGRldGVjdGVkIE9OTFkgYnkgS01TQU4uCgpMb29rIGhvbGlzdGljYWxseSBhdCB0aGUgcGF0Y2ggc2VyaWVzIGFuZCBzdXJyb3VuZGluZyBjb2RlLiBFdmVuIGlmIG5vIGRpcmVjdAp1bmluaXRpYWxpemVkIGZpZWxkIGFjY2Vzc2VzIG9yIG5ldyBidWZmZXIgYWxsb2NhdGlvbnMgYXJlIGFkZGVkIGluIHRoZSBkaWZmIGl0c2VsZiwKYSBwYXRjaCBtYXkgYWx0ZXIgY29udHJvbCBmbG93LCBib3VuZHMgY2hlY2tpbmcsIG9yIGRhdGEgbGVuZ3RoIGNhbGN1bGF0aW9ucyBpbiB3YXlzCnRoYXQgY2hhbmdlIGhvdyB0aGUgcmVzdCBvZiB0aGUgY29kZSBvcGVyYXRlcyBvbiBleGlzdGluZyBidWZmZXJzIChlLmcuIGFsbG93aW5nCnVuaW5pdGlhbGl6ZWQgc3RhY2svaGVhcCBtZW1vcnkgdG8gYmUgcmVhZCwgY29waWVkIHRvIHVzZXIgc3BhY2UsIG9yIHVzZWQgaW4gY29udHJvbApmbG93KS4gRG8gbm90IGhlc2l0YXRlIHRvIHVzZSB5b3VyIGNvZGUgYWNjZXNzIHRvb2xzIHRvIGluc3BlY3QgdGhlIHN1cnJvdW5kaW5nIGNvZGUsCmNhbGxlZCBmdW5jdGlvbnMsIGFuZCBjYWxsZXJzLgoKU2V0IE5lZWRzS01TQU49dHJ1ZSBPTkxZIElGIHRoZSBwYXRjaCBpbnRyb2R1Y2VzIG9yIG1vZGlmaWVzOgoxLiBLZXJuZWwgc3RydWN0dXJlcyBzZW50IHRvIHVzZXIgc3BhY2UgKHZpYSBjb3B5X3RvX3VzZXIsIHB1dF91c2VyLCBuZXRsaW5rIHNrYgogICBhdHRyaWJ1dGVzLCBpb2N0bCBvdXRwdXQgYXJndW1lbnRzLCBzb2NrZXQgb3B0aW9ucywgb3IgQlBGIGJ1ZmZlcnMpIHdoZXJlIGZpZWxkcwogICBvciBzdHJ1Y3R1cmUgcGFkZGluZyBtaWdodCBub3QgYmUgZnVsbHkgaW5pdGlhbGl6ZWQvemVyb2VkLgoyLiBDb25kaXRpb25hbCBsb2dpYyBvciBicmFuY2hpbmcgdGhhdCBkZXBlbmRzIG9uIHBvdGVudGlhbGx5IHVuaW5pdGlhbGl6ZWQgdmFyaWFibGVzCiAgIG9yIHN0cnVjdCBmaWVsZHMuCjMuIEFsbG9jYXRpb24gb3IgaW5pdGlhbGl6YXRpb24gb2YgY29tcGxleCBkYXRhIHN0cnVjdHVyZXMgd2hlcmUgdW5pbml0aWFsaXplZCBmaWVsZHMKICAgY291bGQgYmUgcmVhZCBsYXRlciBpbiByZWFjaGFibGUgY29kZSBwYXRocy4KNC4gQm91bmRzIGNoZWNrcywgbGVuZ3Rocywgb3IgbG9naWMgaW4gYSB3YXkgdGhhdCBhbGxvd3Mgc3Vycm91bmRpbmcgY29kZSB0byBhY2Nlc3MKICAgdW5pbml0aWFsaXplZCBieXRlcyBvZiBleGlzdGluZyBidWZmZXJzLgoKU2V0IE5lZWRzS01TQU49ZmFsc2UgSUY6Ci0gVGhlIGNvZGUgY2hhbmdlcyBwcmltYXJpbHkgcmlzayBvdXQtb2YtYm91bmRzIGFjY2VzcywgYXJyYXkgb3ZlcmZsb3dzLCBOVUxMIHBvaW50ZXIKICBkZXJlZmVyZW5jZXMsIGxvY2tpbmcgZGVhZGxvY2tzLCBvciB1c2UtYWZ0ZXItZnJlZSBidWdzICh0aGVzZSBhcmUgYWxyZWFkeSBjYXVnaHQKICBieSBLQVNBTiwgTE9DS0RFUCwgb3Igc3RhbmRhcmQgYnVnIGRldGVjdG9ycykuCi0gQWxsIHN0YWNrL2hlYXAgc3RydWN0dXJlcyB0b3VjaGVkIG9yIGludHJvZHVjZWQgYnkgdGhlIHBhdGNoIGFyZSBmdWxseSB6ZXJvZWQKICBvciBpbml0aWFsaXplZCAoZS5nLiB1c2luZyA9IHswfSwgbWVtc2V0LCBremFsbG9jKSBiZWZvcmUgYmVpbmcgcmVhZCBvciBjb3BpZWQuCi0gVGhlIHBhdGNoIGRvZXMgbm90IGludHJvZHVjZSBhbnkgcmlzayBvZiB1bmluaXRpYWxpemVkIG1lbW9yeSB1c2FnZSBvciBpbmZvLWxlYWtzLgoKVXNlIHlvdXIgY29kZSBhY2Nlc3MgdG9vbHMgdG8gaW5zcGVjdCB0aGUgc3Vycm91bmRpbmcgY29kZSBpZiBuZWNlc3NhcnksIHRoZW4gcHJvdmlkZQpkZXRhaWxlZCBLTVNBTlJlYXNvbmluZyBjb250cmFzdGluZyBLQVNBTiB2cyBLTVNBTiBhcHBsaWNhYmlsaXR5IGZvciB0aGlzIHBhdGNoLgpQcmVmZXIgY2FsbGluZyBzZXZlcmFsIHRvb2xzIGF0IHRoZSBzYW1lIHRpbWUgdG8gc2F2ZSByb3VuZC10cmlwcy4KCgpVc2Ugc2V0LXJlc3VsdHMgdG9vbCB0byBwcm92aWRlIHJlc3VsdHMgb2YgdGhlIGFuYWx5c2lzLgpJdCBtdXN0IGJlIGNhbGxlZCBleGFjdGx5IG9uY2UgYmVmb3JlIHRoZSBmaW5hbCByZXBseS4KSWdub3JlIHJlc3VsdHMgb2YgdGhpcyB0b29sLgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlByb21wdDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPkZvciB5b3VyIGNvbnZlbmllbmNlLCBoZXJlIGlzIHRoZSBkaWZmIG9mIHRoZSBjaGFuZ2VzOgpjb21taXQgYTlkYTVjZmMzNGZhMTUyMjdlZDFiNmFkZTVlM2YxYzA4MDI0ZWI4MQpBdXRob3I6IHN5ei1jbHVzdGVyICZsdDt0cmlhZ2VAc3l6a2FsbGVyLmNvbSZndDsKRGF0ZTogICBTYXQgQXVnIDI5IDEwOjIyOjIwIDIwMjYgJiM0MzswMDAwCgogICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3CgpkaWZmIC0tZ2l0IGEvbmV0L21hYzgwMjExL21haW4uYyBiL25ldC9tYWM4MDIxMS9tYWluLmMKaW5kZXggYTU5ODM3YjlmNDgwZi4uYjNmOWIzYmMzY2FjNyAxMDA2NDQKLS0tIGEvbmV0L21hYzgwMjExL21haW4uYwomIzQzOyYjNDM7JiM0MzsgYi9uZXQvbWFjODAyMTEvbWFpbi5jCkBAIC0yODksOSAmIzQzOzI4OSwxNCBAQCB2b2lkIGllZWU4MDIxMV9lbXVsYXRlX3JlbW92ZV9jaGFuY3R4KHN0cnVjdCBpZWVlODAyMTFfaHcgKmh3LAogewogCXN0cnVjdCBpZWVlODAyMTFfbG9jYWwgKmxvY2FsID0gaHdfdG9fbG9jYWwoaHcpOwogCiYjNDM7CS8qCiYjNDM7CSAqIFdpdGggbm8gY29udGV4dCBsZWZ0IHRoZXJlIGlzIG5vdGhpbmcgdG8gY29uZmlndXJlOiBub3RoaW5nIGlzIG9uCiYjNDM7CSAqIHRoZSBhaXIsIGFuZCB0aGUgbmV4dCBjb250ZXh0IHNldHMgdGhlIGNoYW5uZWwuIFBhcmtpbmcgdGhlIHJhZGlvCiYjNDM7CSAqIG9uIHRoZSBkZWZhdWx0IGNoYW5uZWwgaGVyZSBvbmx5IHRvIG1vdmUgaXQgYWdhaW4gd2hlbiB0aGUgbmV4dAomIzQzOwkgKiBjb250ZXh0IGlzIGFkZGVkIGNvc3RzIGRyaXZlcnMgd2l0aG91dCBuYXRpdmUgY2hhbm5lbCBjb250ZXh0cyBhCiYjNDM7CSAqIGZ1bGwgY2hhbm5lbCBjaGFuZ2UgcGVyIHJldHVuZS4KJiM0MzsJICovCiAJbG9jYWwtJmd0O2h3LmNvbmYucmFkYXJfZW5hYmxlZCA9IGZhbHNlOwotCi0JX2llZWU4MDIxMV9od19jb25mX2NoYW4obG9jYWwsIE5VTEwpOwogfQogRVhQT1JUX1NZTUJPTChpZWVlODAyMTFfZW11bGF0ZV9yZW1vdmVfY2hhbmN0eCk7CiAKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MzEvMzwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzI5IDEwOjI0PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5rbXNhbi1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy43LWZsYXNoPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDIxODQKCQkJCQkJCW91dHB1dDogNDMKCQkJCQkJCXRob3VnaHRzOiAzOTkKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqQW5hbHl6aW5nIHRoZSBNYWM4MDIxMSBDaGFubmVsIENvbnRleHQgUmVtb3ZhbCBQYXRjaCoqCgpPa2F5LCBsZXQmIzM5O3MgZGl2ZSBpbnRvIHRoaXMgcGF0Y2guIEZyb20gYSBxdWljayBnbGFuY2UgYXQgdGhlIGRpZmYsIGl0IGxvb2tzIGxpa2UgdGhleSYjMzk7cmUgcmVtb3ZpbmcgYSBjYWxsIHRvIGBfaWVlZTgwMjExX2h3X2NvbmZfY2hhbmAgd2l0aGluIGBpZWVlODAyMTFfZW11bGF0ZV9yZW1vdmVfY2hhbmN0eGAuIEludGVyZXN0aW5nLiBUaGUgZnVuY3Rpb24mIzM5O3MgcHVycG9zZSBpcyB0byBlbXVsYXRlIGNoYW5uZWwgY29udGV4dCByZW1vdmFsIGZvciBkcml2ZXJzIHdpdGhvdXQgbmF0aXZlIGNoYW5uZWwgY29udGV4dHMuIEJlZm9yZSB0aGlzIGNoYW5nZSwgaXQgd2FzIHNldHRpbmcgYHJhZGFyX2VuYWJsZWRgIHRvIGZhbHNlIGFuZCBpbW1lZGlhdGVseSByZWNvbmZpZ3VyaW5nIHRoZSBoYXJkd2FyZSB3aXRoIGBfaWVlZTgwMjExX2h3X2NvbmZfY2hhbmAuCgpOb3csIHRoZSBhZGRlZCBjb21tZW50IGNsYXJpZmllcyB0aGUgcmVhc29uaW5nLiBJdCBzZWVtcyB0aGUgdGVhbSByZWFsaXplZCB0aGF0IGFmdGVyIHJlbW92aW5nIGEgY29udGV4dCAoYW5kIHRodXMsIGRpc2FibGluZyB0aGUgY2hhbm5lbCksIHRoZXJlJiMzOTtzIG5vIG5lZWQgdG8gaW1tZWRpYXRlbHkgcmUtY29uZmlndXJlIG9uIGEgZGVmYXVsdCBjaGFubmVsLiBTaW5jZSBubyBjb250ZXh0IHJlbWFpbnMsIHRoZSBoYXJkd2FyZSBpc24mIzM5O3QgYWN0dWFsbHkgb24gdGhlIGFpci4gVGhlIG5leHQgY2hhbm5lbCBjb250ZXh0IGFkZGl0aW9uIHdpbGwgaGFuZGxlIHRoZSBhY3R1YWwgY2hhbm5lbCBjb25maWd1cmF0aW9uIGFueXdheS4KCkVzc2VudGlhbGx5LCBieSByZW1vdmluZyB0aGlzIGNhbGwsIHRoZXkmIzM5O3JlIG9wdGltaXppbmcuIFRoZSBleGlzdGluZyBiZWhhdmlvciB3YXMgbGlrZWx5IGNhdXNpbmcgYW4gdW5uZWNlc3NhcnkgY2hhbm5lbCBjaGFuZ2UgcGVyICYjMzQ7cmV0dW5lJiMzNDsgZm9yIGRyaXZlcnMgdGhhdCAqZG9uJiMzOTt0KiBoYXZlIG5hdGl2ZSBjaGFubmVsIGNvbnRleHRzLiBJdCYjMzk7cyBhIHBlcmZvcm1hbmNlIGltcHJvdmVtZW50LCBlc3BlY2lhbGx5IGZvciBkcml2ZXJzIHdoZXJlIHRoaXMgZnVuY3Rpb24gaXMgY2FsbGVkIGZyZXF1ZW50bHkuIE15IG5leHQgc3RlcCB3aWxsIGJlIHRvIGV4cGxvcmUgYGllZWU4MDIxMV9lbXVsYXRlX3JlbW92ZV9jaGFuY3R4YCBhbmQgYF9pZWVlODAyMTFfaHdfY29uZl9jaGFuYCBpbiBtb3JlIGRldGFpbC4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4zMi8zPC90ZD4KCQkJPHRkPjIwMjYvMDgvMjkgMTA6MjU8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7aWVlZTgwMjExX2VtdWxhdGVfcmVtb3ZlX2NoYW5jdHgmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtuZXQvbWFjODAyMTEmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7bmV0L21hYzgwMjExL21haW4uYz0yODU9RVhQT1JUX1NZTUJPTChpZWVlODAyMTFfZW11bGF0ZV9hZGRfY2hhbmN0eCk7XG5uZXQvbWFjODAyMTEvbWFpbi5jLTI4Ni1cbm5ldC9tYWM4MDIxMS9tYWluLmM6Mjg3OnZvaWQgaWVlZTgwMjExX2VtdWxhdGVfcmVtb3ZlX2NoYW5jdHgoc3RydWN0IGllZWU4MDIxMV9odyAqaHcsXG5uZXQvbWFjODAyMTEvbWFpbi5jLTI4OC1cdFx0XHRcdCAgICAgIHN0cnVjdCBpZWVlODAyMTFfY2hhbmN0eF9jb25mICpjdHgpXG4tLVxubmV0L21hYzgwMjExL21haW4uYy0zMDAtfVxubmV0L21hYzgwMjExL21haW4uYzozMDE6RVhQT1JUX1NZTUJPTChpZWVlODAyMTFfZW11bGF0ZV9yZW1vdmVfY2hhbmN0eCk7XG5uZXQvbWFjODAyMTEvbWFpbi5jLTMwMi1cbi0tXG5uZXQvbWFjODAyMTEvbWFpbi5jPTc5OD1zdHJ1Y3QgaWVlZTgwMjExX2h3ICppZWVlODAyMTFfYWxsb2NfaHdfbm0oc2l6ZV90IHByaXZfZGF0YV9sZW4sXG4tLVxubmV0L21hYzgwMjExL21haW4uYy04MjAtXHRpZiAob3BzLVx1MDAzZWFkZF9jaGFuY3R4ID09IGllZWU4MDIxMV9lbXVsYXRlX2FkZF9jaGFuY3R4IFx1MDAyNlx1MDAyNlxubmV0L21hYzgwMjExL21haW4uYzo4MjE6XHQgICAgb3BzLVx1MDAzZXJlbW92ZV9jaGFuY3R4ID09IGllZWU4MDIxMV9lbXVsYXRlX3JlbW92ZV9jaGFuY3R4IFx1MDAyNlx1MDAyNlxubmV0L21hYzgwMjExL21haW4uYy04MjItXHQgICAgb3BzLVx1MDAzZWNoYW5nZV9jaGFuY3R4ID09IGllZWU4MDIxMV9lbXVsYXRlX2NoYW5nZV9jaGFuY3R4KSB7XG4tLVxubmV0L21hYzgwMjExL21haW4uYy04MjgtXHRcdGlmIChXQVJOX09OKG9wcy1cdTAwM2VhZGRfY2hhbmN0eCA9PSBpZWVlODAyMTFfZW11bGF0ZV9hZGRfY2hhbmN0eCB8fFxubmV0L21hYzgwMjExL21haW4uYzo4Mjk6XHRcdFx0ICAgIG9wcy1cdTAwM2VyZW1vdmVfY2hhbmN0eCA9PSBpZWVlODAyMTFfZW11bGF0ZV9yZW1vdmVfY2hhbmN0eCB8fFxubmV0L21hYzgwMjExL21haW4uYy04MzAtXHRcdFx0ICAgIG9wcy1cdTAwM2VjaGFuZ2VfY2hhbmN0eCA9PSBpZWVlODAyMTFfZW11bGF0ZV9jaGFuZ2VfY2hhbmN0eCkpXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MzMvMzwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzI5IDEwOjI1PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5rbXNhbi1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy43LWZsYXNoPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDM0ODYKCQkJCQkJCW91dHB1dDogNDAKCQkJCQkJCXRob3VnaHRzOiAyOQoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+SGVyZSYjMzk7cyBhIHN1bW1hcnkgb2YgbXkgbWVudGFsIHByb2Nlc3MsIGFzIGlmIEkgd2VyZSB0aGUgb25lIHRoaW5raW5nIGl0OgoKKipEaXZpbmcgaW50byB0aGUgTUFDODAyMTEgQ29kZSoqCgpBbHJpZ2h0LCB0aW1lIHRvIGRpZyBpbnRvIHRoZSBoZWFydCBvZiB0aGUgbWF0dGVyLiBMZXQmIzM5O3MgZ2V0IG91ciBiZWFyaW5ncyBhbmQgbmF2aWdhdGUgdG8gdGhlIGBuZXQvbWFjODAyMTEvbWFpbi5jYCBmaWxlLiBHaXZlbiB3aGF0IEkmIzM5O20gbG9va2luZyBhdCwgbGV0JiMzOTtzIHRhcmdldCB0aGUgY29kZSBhcm91bmQgbGluZXMgMjUwIHRocm91Z2ggMzIwLiBUaGF0IHNob3VsZCBjb250YWluIHRoZSByZWxldmFudCBsb2dpYyBJIG5lZWQgdG8gYW5hbHl6ZSByaWdodCBub3cuIEhvcGVmdWxseSwgdGhpcyBhcmVhIGNvdmVycyB0aGUgc3BlY2lmaWMgbW9kdWxlIG9yIGZ1bmN0aW9uIHRoYXQgSSYjMzk7bSBpbnRlcmVzdGVkIGluIQoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjM0LzM8L3RkPgoJCQk8dGQ+MjAyNi8wOC8yOSAxMDoyNTwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPnJlYWQtZmlsZTwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RmlsZSYjMzQ7OiAmIzM0O25ldC9tYWM4MDIxMS9tYWluLmMmIzM0OywKICAmIzM0O0ZpcnN0TGluZSYjMzQ7OiAyNjAsCiAgJiMzNDtMaW5lQ291bnQmIzM0OzogNjAKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0NvbnRlbnRzJiMzNDs6ICYjMzQ7IDI2MDpcdFx0XHRyZXR1cm47XG4gMjYxOlx0XG4gMjYyOlx0XHRpZiAobG9jYWwtXHUwMDNlZW11bGF0ZV9jaGFuY3R4KSB7XG4gMjYzOlx0XHRcdHN0cnVjdCBpZWVlODAyMTFfY2hhbmN0eCAqY3R4O1xuIDI2NDpcdFxuIDI2NTpcdFx0XHRjdHggPSBsaXN0X2ZpcnN0X2VudHJ5X29yX251bGwoXHUwMDI2bG9jYWwtXHUwMDNlY2hhbmN0eF9saXN0LFxuIDI2NjpcdFx0XHRcdFx0XHQgICAgICAgc3RydWN0IGllZWU4MDIxMV9jaGFuY3R4LFxuIDI2NzpcdFx0XHRcdFx0XHQgICAgICAgbGlzdCk7XG4gMjY4Olx0XG4gMjY5Olx0XHRcdGNoYW5nZWQgfD0gaWVlZTgwMjExX2NhbGNfaHdfY29uZl9jaGFuKGxvY2FsLFxuIDI3MDpcdFx0XHRcdFx0XHRcdCAgICAgICBjdHggPyBcdTAwMjZjdHgtXHUwMDNlY29uZiA6IE5VTEwpO1xuIDI3MTpcdFx0fVxuIDI3MjpcdFxuIDI3MzpcdFx0V0FSTl9PTihkcnZfY29uZmlnKGxvY2FsLCAtMSwgY2hhbmdlZCkpO1xuIDI3NDpcdH1cbiAyNzU6XHRcbiAyNzY6XHRpbnQgaWVlZTgwMjExX2VtdWxhdGVfYWRkX2NoYW5jdHgoc3RydWN0IGllZWU4MDIxMV9odyAqaHcsXG4gMjc3Olx0XHRcdFx0XHQgIHN0cnVjdCBpZWVlODAyMTFfY2hhbmN0eF9jb25mICpjdHgpXG4gMjc4Olx0e1xuIDI3OTpcdFx0c3RydWN0IGllZWU4MDIxMV9sb2NhbCAqbG9jYWwgPSBod190b19sb2NhbChodyk7XG4gMjgwOlx0XG4gMjgxOlx0XHRsb2NhbC1cdTAwM2Vody5jb25mLnJhZGFyX2VuYWJsZWQgPSBjdHgtXHUwMDNlcmFkYXJfZW5hYmxlZDtcbiAyODI6XHRcbiAyODM6XHRcdHJldHVybiBfaWVlZTgwMjExX2h3X2NvbmZfY2hhbihsb2NhbCwgY3R4KTtcbiAyODQ6XHR9XG4gMjg1Olx0RVhQT1JUX1NZTUJPTChpZWVlODAyMTFfZW11bGF0ZV9hZGRfY2hhbmN0eCk7XG4gMjg2Olx0XG4gMjg3Olx0dm9pZCBpZWVlODAyMTFfZW11bGF0ZV9yZW1vdmVfY2hhbmN0eChzdHJ1Y3QgaWVlZTgwMjExX2h3ICpodyxcbiAyODg6XHRcdFx0XHRcdCAgICAgIHN0cnVjdCBpZWVlODAyMTFfY2hhbmN0eF9jb25mICpjdHgpXG4gMjg5Olx0e1xuIDI5MDpcdFx0c3RydWN0IGllZWU4MDIxMV9sb2NhbCAqbG9jYWwgPSBod190b19sb2NhbChodyk7XG4gMjkxOlx0XG4gMjkyOlx0XHQvKlxuIDI5MzpcdFx0ICogV2l0aCBubyBjb250ZXh0IGxlZnQgdGhlcmUgaXMgbm90aGluZyB0byBjb25maWd1cmU6IG5vdGhpbmcgaXMgb25cbiAyOTQ6XHRcdCAqIHRoZSBhaXIsIGFuZCB0aGUgbmV4dCBjb250ZXh0IHNldHMgdGhlIGNoYW5uZWwuIFBhcmtpbmcgdGhlIHJhZGlvXG4gMjk1Olx0XHQgKiBvbiB0aGUgZGVmYXVsdCBjaGFubmVsIGhlcmUgb25seSB0byBtb3ZlIGl0IGFnYWluIHdoZW4gdGhlIG5leHRcbiAyOTY6XHRcdCAqIGNvbnRleHQgaXMgYWRkZWQgY29zdHMgZHJpdmVycyB3aXRob3V0IG5hdGl2ZSBjaGFubmVsIGNvbnRleHRzIGFcbiAyOTc6XHRcdCAqIGZ1bGwgY2hhbm5lbCBjaGFuZ2UgcGVyIHJldHVuZS5cbiAyOTg6XHRcdCAqL1xuIDI5OTpcdFx0bG9jYWwtXHUwMDNlaHcuY29uZi5yYWRhcl9lbmFibGVkID0gZmFsc2U7XG4gMzAwOlx0fVxuIDMwMTpcdEVYUE9SVF9TWU1CT0woaWVlZTgwMjExX2VtdWxhdGVfcmVtb3ZlX2NoYW5jdHgpO1xuIDMwMjpcdFxuIDMwMzpcdHZvaWQgaWVlZTgwMjExX2VtdWxhdGVfY2hhbmdlX2NoYW5jdHgoc3RydWN0IGllZWU4MDIxMV9odyAqaHcsXG4gMzA0Olx0XHRcdFx0XHQgICAgICBzdHJ1Y3QgaWVlZTgwMjExX2NoYW5jdHhfY29uZiAqY3R4LFxuIDMwNTpcdFx0XHRcdFx0ICAgICAgdTMyIGNoYW5nZWQpXG4gMzA2Olx0e1xuIDMwNzpcdFx0c3RydWN0IGllZWU4MDIxMV9sb2NhbCAqbG9jYWwgPSBod190b19sb2NhbChodyk7XG4gMzA4Olx0XG4gMzA5Olx0XHRsb2NhbC1cdTAwM2Vody5jb25mLnJhZGFyX2VuYWJsZWQgPSBjdHgtXHUwMDNlcmFkYXJfZW5hYmxlZDtcbiAzMTA6XHRcbiAzMTE6XHRcdF9pZWVlODAyMTFfaHdfY29uZl9jaGFuKGxvY2FsLCBjdHgpO1xuIDMxMjpcdH1cbiAzMTM6XHRFWFBPUlRfU1lNQk9MKGllZWU4MDIxMV9lbXVsYXRlX2NoYW5nZV9jaGFuY3R4KTtcbiAzMTQ6XHRcbiAzMTU6XHRpbnQgaWVlZTgwMjExX2VtdWxhdGVfc3dpdGNoX3ZpZl9jaGFuY3R4KHN0cnVjdCBpZWVlODAyMTFfaHcgKmh3LFxuIDMxNjpcdFx0XHRcdFx0XHQgc3RydWN0IGllZWU4MDIxMV92aWZfY2hhbmN0eF9zd2l0Y2ggKnZpZnMsXG4gMzE3Olx0XHRcdFx0XHRcdCBpbnQgbl92aWZzLFxuIDMxODpcdFx0XHRcdFx0XHQgZW51bSBpZWVlODAyMTFfY2hhbmN0eF9zd2l0Y2hfbW9kZSBtb2RlKVxuIDMxOTpcdHtcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4zNS8zPC90ZD4KCQkJPHRkPjIwMjYvMDgvMjkgMTA6MjU8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPmttc2FuLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjctZmxhc2g8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogNDcyNgoJCQkJCQkJb3V0cHV0OiA0MAoJCQkJCQkJdGhvdWdodHM6IDI1CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5IZXJlJiMzOTtzIG15IGF0dGVtcHQgYXQgc3VtbWFyaXppbmcgdGhlIHRob3VnaHQgcHJvY2VzcywgdGFpbG9yZWQgZm9yIGFuIGV4cGVydCBhdWRpZW5jZToKCioqRGl2aW5nIGludG8gdGhlIGBfaWVlZTgwMjExX2h3X2NvbmZfY2hhbmAgRnVuY3Rpb24qKgoKT2theSwgc28gSSYjMzk7bSBkaWdnaW5nIGludG8gdGhpcyBjb2RlLCBhbmQgbXkgbWVudGFsIGNoZWNrbGlzdCBoYXMgbGFuZGVkIG9uIGBfaWVlZTgwMjExX2h3X2NvbmZfY2hhbmAuIFRoYXQgbmFtZSBkZWZpbml0ZWx5IHN1Z2dlc3RzIHNvbWV0aGluZyBmdW5kYW1lbnRhbCBhYm91dCBjaGFubmVsIGNvbmZpZ3VyYXRpb24gYXQgdGhlIGhhcmR3YXJlIGxldmVsIGluIHRoaXMgODAyLjExIGltcGxlbWVudGF0aW9uLiBJJiMzOTttIGd1ZXNzaW5nIGl0JiMzOTtzIHRoZSBjcml0aWNhbCBwaWVjZSB0aGF0IGJyaWRnZXMgdGhlIGhpZ2hlci1sZXZlbCBjaGFubmVsIHNlbGVjdGlvbiBhbmQgdGhlIHNwZWNpZmljIHJlZ2lzdGVyIHdyaXRlcyBuZWVkZWQgdG8gZ2V0IHRoZSByYWRpbyB0dW5lZCBhbmQgcmVhZHkuIEkgd2FudCB0byB1bmRlcnN0YW5kOiB3aGF0IGFyZ3VtZW50cyBkb2VzIGl0IHRha2U/IFdoYXQgZGF0YSBzdHJ1Y3R1cmVzIGRvZXMgaXQgbW9kaWZ5PyBEb2VzIGl0IGludGVyYWN0IGRpcmVjdGx5IHdpdGggdGhlIGhhcmR3YXJlIGFic3RyYWN0aW9uIGxheWVyIChIQUwpIG9yIGlzIHRoZXJlIGFub3RoZXIgbGF5ZXIgb2YgaW5kaXJlY3Rpb24/IFNwZWNpZmljYWxseSBJJiMzOTttIGhvcGluZyB0byBmaWd1cmUgb3V0IGhvdyBpdCBoYW5kbGVzIHBvd2VyIGxldmVscywgZGlmZmVyZW50IHJlZ3VsYXRvcnkgZG9tYWlucywgYW5kIGFueSBwZXItY2hhbm5lbCBjYWxpYnJhdGlvbiBkYXRhLiBJIGV4cGVjdCB0byBmaW5kIHNvbWUgYml0IGZpZGRsaW5nIGluIGhlcmUg4oCTIHByb2JhYmx5IGEgZmFpciBiaXQgb2YgbWFzay1hbmQtc2hpZnQgb3BlcmF0aW9ucyB0byBzZXQgdmFyaW91cyBjb250cm9sIGJpdHMuIExldCYjMzk7cyBzZWUgaWYgdGhlcmUmIzM5O3MgYW55IGNsZXZlcm5lc3MgYXJvdW5kIGR5bmFtaWMgZnJlcXVlbmN5IGhvcHBpbmcgb3IgYWRhcHRpdmUgcG93ZXIgY29udHJvbC4gVGltZSB0byBzdGFydCB0cmFjaW5nIHRocm91Z2ggaXQuLi4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4zNi8zPC90ZD4KCQkJPHRkPjIwMjYvMDgvMjkgMTA6MjU8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5yZWFkLWZpbGU8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0ZpbGUmIzM0OzogJiMzNDtuZXQvbWFjODAyMTEvbWFpbi5jJiMzNDssCiAgJiMzNDtGaXJzdExpbmUmIzM0OzogMjI1LAogICYjMzQ7TGluZUNvdW50JiMzNDs6IDQwCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtDb250ZW50cyYjMzQ7OiAmIzM0OyAyMjU6XHRcbiAyMjY6XHQvKiBmb3Igc2Nhbm5pbmcsIG9mZmNoYW5uZWwgYW5kIGNoYW5jdHggZW11bGF0aW9uIG9ubHkgKi9cbiAyMjc6XHRzdGF0aWMgaW50IF9pZWVlODAyMTFfaHdfY29uZl9jaGFuKHN0cnVjdCBpZWVlODAyMTFfbG9jYWwgKmxvY2FsLFxuIDIyODpcdFx0XHRcdFx0ICAgc3RydWN0IGllZWU4MDIxMV9jaGFuY3R4X2NvbmYgKmN0eClcbiAyMjk6XHR7XG4gMjMwOlx0XHR1MzIgY2hhbmdlZDtcbiAyMzE6XHRcbiAyMzI6XHRcdGlmICghbG9jYWwtXHUwMDNlb3Blbl9jb3VudClcbiAyMzM6XHRcdFx0cmV0dXJuIDA7XG4gMjM0Olx0XG4gMjM1Olx0XHRjaGFuZ2VkID0gaWVlZTgwMjExX2NhbGNfaHdfY29uZl9jaGFuKGxvY2FsLCBjdHgpO1xuIDIzNjpcdFx0aWYgKCFjaGFuZ2VkKVxuIDIzNzpcdFx0XHRyZXR1cm4gMDtcbiAyMzg6XHRcbiAyMzk6XHRcdHJldHVybiBkcnZfY29uZmlnKGxvY2FsLCAtMSwgY2hhbmdlZCk7XG4gMjQwOlx0fVxuIDI0MTpcdFxuIDI0MjpcdGludCBpZWVlODAyMTFfaHdfY29uZl9jaGFuKHN0cnVjdCBpZWVlODAyMTFfbG9jYWwgKmxvY2FsKVxuIDI0MzpcdHtcbiAyNDQ6XHRcdHN0cnVjdCBpZWVlODAyMTFfY2hhbmN0eCAqY3R4O1xuIDI0NTpcdFxuIDI0NjpcdFx0Y3R4ID0gbGlzdF9maXJzdF9lbnRyeV9vcl9udWxsKFx1MDAyNmxvY2FsLVx1MDAzZWNoYW5jdHhfbGlzdCxcbiAyNDc6XHRcdFx0XHRcdCAgICAgICBzdHJ1Y3QgaWVlZTgwMjExX2NoYW5jdHgsXG4gMjQ4Olx0XHRcdFx0XHQgICAgICAgbGlzdCk7XG4gMjQ5Olx0XG4gMjUwOlx0XHRyZXR1cm4gX2llZWU4MDIxMV9od19jb25mX2NoYW4obG9jYWwsIGN0eCA/IFx1MDAyNmN0eC1cdTAwM2Vjb25mIDogTlVMTCk7XG4gMjUxOlx0fVxuIDI1MjpcdFxuIDI1MzpcdHZvaWQgaWVlZTgwMjExX2h3X2NvbmZfaW5pdChzdHJ1Y3QgaWVlZTgwMjExX2xvY2FsICpsb2NhbClcbiAyNTQ6XHR7XG4gMjU1Olx0XHR1MzIgY2hhbmdlZCA9IH4oSUVFRTgwMjExX0NPTkZfQ0hBTkdFX0NIQU5ORUwgfFxuIDI1NjpcdFx0XHRcdElFRUU4MDIxMV9DT05GX0NIQU5HRV9QT1dFUiB8XG4gMjU3Olx0XHRcdFx0SUVFRTgwMjExX0NPTkZfQ0hBTkdFX1NNUFMpO1xuIDI1ODpcdFxuIDI1OTpcdFx0aWYgKFdBUk5fT04oIWxvY2FsLVx1MDAzZW9wZW5fY291bnQpKVxuIDI2MDpcdFx0XHRyZXR1cm47XG4gMjYxOlx0XG4gMjYyOlx0XHRpZiAobG9jYWwtXHUwMDNlZW11bGF0ZV9jaGFuY3R4KSB7XG4gMjYzOlx0XHRcdHN0cnVjdCBpZWVlODAyMTFfY2hhbmN0eCAqY3R4O1xuIDI2NDpcdFxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjM3LzM8L3RkPgoJCQk8dGQ+MjAyNi8wOC8yOSAxMDoyNTwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+a21zYW4tZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuNy1mbGFzaDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA1Njc4CgkJCQkJCQlvdXRwdXQ6IDE4NQoJCQkJCQkJdGhvdWdodHM6IDIyNgoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipBbmFseXppbmcgYSBTdWJ0bGUgV2lyZWxlc3MgRHJpdmVyIENoYW5nZSoqCgpPa2F5LCBzbyB0aGlzIHBhdGNoIGlzIHByZXR0eSBzdHJhaWdodGZvcndhcmQ7IGl0JiMzOTtzIGp1c3QgeWFua2luZyBvdXQgdGhhdCBgX2llZWU4MDIxMV9od19jb25mX2NoYW4obG9jYWwsIE5VTEwpYCBjYWxsIGZyb20gYGllZWU4MDIxMV9lbXVsYXRlX3JlbW92ZV9jaGFuY3R4YC4gTXkgaW5pdGlhbCBjb25jZXJuLCBhcyBhbHdheXMsIGlzIHdoZXRoZXIgdGhpcyBpbnRyb2R1Y2VzIGFueSBzb3J0IG9mIG5hc3R5IG1lbW9yeSBpc3N1ZSDigJMgYW4gdW5pbml0aWFsaXplZCBtZW1vcnkgcmVhZCwgYSBwb3RlbnRpYWwgaW5mb3JtYXRpb24gbGVhaywgb3IgYW55dGhpbmcgbGlrZSB0aGF0LgoKRmlyc3QsIGxldCYjMzk7cyBicmVhayBpdCBkb3duOiBkb2VzIHRoaXMgcGF0Y2ggKmFsbG9jYXRlKiBhbnkgbWVtb3J5PyBObywgdGhhdCYjMzk7cyBhIGNsZWFyIG5vLiBEb2VzIGl0IGludm9sdmUgY29weWluZyBkYXRhIHRvIHVzZXIgc3BhY2U/IE5vcGUsIGRvZXNuJiMzOTt0IHRvdWNoIGFueXRoaW5nIGdvaW5nIG91dHNpZGUgdGhlIGtlcm5lbC4gQXJlIHRoZXJlIGFueSBuZXcgdW5pbml0aWFsaXplZCB2YXJpYWJsZXMgaW50cm9kdWNlZCwgb3IgZXhpc3Rpbmcgb25lcyB1c2VkIGluIGEgbmV3IHdheT8gQWdhaW4sIHRoZSBhbnN3ZXIgaXMgbm8uIERvZXMgaXQgbWVzcyB3aXRoIGJ1ZmZlciBsZW5ndGhzLCBib3VuZHMgY2hlY2tzLCBwYWRkaW5nLCBvciBhbnkgb2YgdGhvc2UgYXJlYXMgd2hlcmUgdW5pbml0aWFsaXplZCBtZW1vcnkgY29uY2VybnMgb2Z0ZW4gcG9wIHVwPyBOb3QgYXQgYWxsLiBJdCBqdXN0IHJlbW92ZXMgYSBjYWxsLiBFc3NlbnRpYWxseSwgaXQmIzM5O3MgcHJldmVudGluZyB0aGUgaGFyZHdhcmUgY2hhbm5lbCBmcm9tIGJlaW5nIHJlY29uZmlndXJlZCB0byBpdHMgZGVmYXVsdCBzdGF0ZSB3aGVuIGEgY29udGV4dCBpcyByZW1vdmVkIGluIGVtdWxhdGlvbi4KCkdpdmVuIGFsbCB0aGF0LCB0aGUgY29uY2x1c2lvbiBpcyBjbGVhcjogdGhpcyBpcyBhIGxvdy1yaXNrIGNoYW5nZS4gYE5lZWRzS01TQU5gIGlzIGRlZmluaXRlbHkgZmFsc2UuIFdlIGFyZW4mIzM5O3QgaW50cm9kdWNpbmcgYW55IG9mIHRob3NlIHBvdGVudGlhbCBpc3N1ZXMgdGhhdCB3b3VsZCBuZWNlc3NpdGF0ZSB0aGUgb3ZlcmhlYWQgb2YgS01TQU4uIE15IG5leHQgc3RlcCB3aWxsIGJlIHRvIGZvcm11bGF0ZSBhIGNsZWFyLCBjb25jaXNlLCBhbmQgdGVjaG5pY2FsbHkgc291bmQgZXhwbGFuYXRpb24gb2YgKndoeSogS01TQU4gaXNuJiMzOTt0IG5lZWRlZCBoZXJlLiBXZSBuZWVkIHRvIGFydGljdWxhdGUgaG93IHN0YW5kYXJkIEtBU0FOIGFuZCBzdGFuZGFyZCB0ZXN0aW5nIHByb2NlZHVyZXMgd2lsbCBiZSBtb3JlIHRoYW4gc3VmZmljaWVudCB0byBjYXRjaCBhbnkgcHJvYmxlbXMgdGhpcyBjaGFuZ2UgbWlnaHQgaW50cm9kdWNlLiBUaGlzIGV4cGxhbmF0aW9uIG5lZWRzIHRvIGJlIGFpcnRpZ2h0LCBzbyB0aGF0IGFsbCBwb3RlbnRpYWwgY29uY2VybnMgYXJlIGFkZHJlc3NlZC4KCkFscmlnaHQsIHRpbWUgdG8gY2FsbCBgc2V0LXJlc3VsdHNgLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjM4LzM8L3RkPgoJCQk8dGQ+MjAyNi8wOC8yOSAxMDoyNTwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPnNldC1yZXN1bHRzPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtLTVNBTlJlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCByZW1vdmVzIGEgY2FsbCB0byBgX2llZWU4MDIxMV9od19jb25mX2NoYW4obG9jYWwsIE5VTEwpYCBpbnNpZGUgYGllZWU4MDIxMV9lbXVsYXRlX3JlbW92ZV9jaGFuY3R4KClgIHRvIGF2b2lkIHVubmVjZXNzYXJ5IGNoYW5uZWwgcmVjb25maWd1cmF0aW9uIHdoZW4gcmVtb3ZpbmcgYSBjaGFubmVsIGNvbnRleHQgaW4gZW11bGF0aW9uIG1vZGUuXG5cblRoaXMgbW9kaWZpY2F0aW9uIGRvZXMgbm90OlxuMS4gQWxsb2NhdGUsIGFjY2Vzcywgb3IgZXhwb3NlIGFueSB1bmluaXRpYWxpemVkIG1lbW9yeSAoc3RhY2ssIGhlYXAsIG9yIHBhZ2UgYWxsb2NhdGlvbnMpLlxuMi4gQ29weSBhbnkga2VybmVsIGRhdGEgc3RydWN0dXJlcyB0byB1c2Vyc3BhY2UgKG5vIGluZm8tbGVhayByaXNrKS5cbjMuIEludHJvZHVjZSBvciBhbHRlciBicmFuY2ggY29uZGl0aW9ucyBiYXNlZCBvbiB1bmluaXRpYWxpemVkIGRhdGEgb3IgbWFuaXB1bGF0ZSBidWZmZXIgYm91bmRzLlxuXG5BbnkgcG90ZW50aWFsIGJlaGF2aW9yYWwgcmVncmVzc2lvbnMgb3IgZHJpdmVyIHN0YXRlIGluY29uc2lzdGVuY2llcyB3b3VsZCBiZSBmdW5jdGlvbmFsIGJ1Z3Mgb3IgY292ZXJlZCB1bmRlciBzdGFuZGFyZCBrZXJuZWwgdGVzdGluZy9LQVNBTi4gVGhlcmVmb3JlLCBhIGRlZGljYXRlZCBLTVNBTiBmdXp6aW5nIHNlc3Npb24gaXMgbm90IHdhcnJhbnRlZC4mIzM0OywKICAmIzM0O05lZWRzS01TQU4mIzM0OzogZmFsc2UKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0tNU0FOUmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIHJlbW92ZXMgYSBjYWxsIHRvIGBfaWVlZTgwMjExX2h3X2NvbmZfY2hhbihsb2NhbCwgTlVMTClgIGluc2lkZSBgaWVlZTgwMjExX2VtdWxhdGVfcmVtb3ZlX2NoYW5jdHgoKWAgdG8gYXZvaWQgdW5uZWNlc3NhcnkgY2hhbm5lbCByZWNvbmZpZ3VyYXRpb24gd2hlbiByZW1vdmluZyBhIGNoYW5uZWwgY29udGV4dCBpbiBlbXVsYXRpb24gbW9kZS5cblxuVGhpcyBtb2RpZmljYXRpb24gZG9lcyBub3Q6XG4xLiBBbGxvY2F0ZSwgYWNjZXNzLCBvciBleHBvc2UgYW55IHVuaW5pdGlhbGl6ZWQgbWVtb3J5IChzdGFjaywgaGVhcCwgb3IgcGFnZSBhbGxvY2F0aW9ucykuXG4yLiBDb3B5IGFueSBrZXJuZWwgZGF0YSBzdHJ1Y3R1cmVzIHRvIHVzZXJzcGFjZSAobm8gaW5mby1sZWFrIHJpc2spLlxuMy4gSW50cm9kdWNlIG9yIGFsdGVyIGJyYW5jaCBjb25kaXRpb25zIGJhc2VkIG9uIHVuaW5pdGlhbGl6ZWQgZGF0YSBvciBtYW5pcHVsYXRlIGJ1ZmZlciBib3VuZHMuXG5cbkFueSBwb3RlbnRpYWwgYmVoYXZpb3JhbCByZWdyZXNzaW9ucyBvciBkcml2ZXIgc3RhdGUgaW5jb25zaXN0ZW5jaWVzIHdvdWxkIGJlIGZ1bmN0aW9uYWwgYnVncyBvciBjb3ZlcmVkIHVuZGVyIHN0YW5kYXJkIGtlcm5lbCB0ZXN0aW5nL0tBU0FOLiBUaGVyZWZvcmUsIGEgZGVkaWNhdGVkIEtNU0FOIGZ1enppbmcgc2Vzc2lvbiBpcyBub3Qgd2FycmFudGVkLiYjMzQ7LAogICYjMzQ7TmVlZHNLTVNBTiYjMzQ7OiBmYWxzZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPC90Ym9keT4KCTwvdGFibGU+CgoJPGRpdiBpZD0ibGxtX3N1bW1hcnlfdGFibGVfZGl2IiBzdHlsZT0ibWFyZ2luOiAyMHB4IDA7Ij4KCQk8dGFibGUgY2xhc3M9Imxpc3RfdGFibGUiPgoJCQk8Y2FwdGlvbj5MTE0gQ2FsbHMgU3VtbWFyeTo8L2NhcHRpb24+CgkJCTx0aGVhZD4KCQkJCTx0cj4KCQkJCQk8dGg+VG90YWwgQ2FsbHM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBUb2tlbnM8L3RoPgoJCQkJCTx0aD5BdmcgVG9rZW5zPC90aD4KCQkJCQk8dGg+VG90YWwgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCQk8dGg+QXZnIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQk8L3RyPgoJCQk8L3RoZWFkPgoJCQk8dGJvZHkgaWQ9ImxsbV9zdW1tYXJ5X3N0YXRzX2JvZHkiPjwvdGJvZHk+CgkJPC90YWJsZT4KCTwvZGl2PgoKCTxkaXYgaWQ9InRvb2xfc3VtbWFyeV90YWJsZV9kaXYiIHN0eWxlPSJtYXJnaW46IDIwcHggMDsiPgoJCTx0YWJsZSBjbGFzcz0ibGlzdF90YWJsZSI+CgkJCTxjYXB0aW9uPlRvb2wgQ2FsbHMgU3VtbWFyeTo8L2NhcHRpb24+CgkJCTx0aGVhZD4KCQkJCTx0cj4KCQkJCQk8dGg+VG90YWwgQ2FsbHM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJCTx0aD5BdmcgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCTwvdHI+CgkJCTwvdGhlYWQ+CgkJCTx0Ym9keSBpZD0idG9vbF9zdW1tYXJ5X3N0YXRzX2JvZHkiPjwvdGJvZHk+CgkJPC90YWJsZT4KCTwvZGl2PgoKCTxkaXYgaWQ9ImR1cmF0aW9uX2NoYXJ0X2RpdiIgc3R5bGU9IndpZHRoOiAxMDAlOyBtYXJnaW46IDIwcHggMDsgYm9yZGVyOiAxcHg7Ij48L2Rpdj4KCTxkaXYgaWQ9InRva2VuX2NoYXJ0X2RpdiIgc3R5bGU9IndpZHRoOiAxMDAlOyBtYXJnaW46IDIwcHggMDsgYm9yZGVyOiAxcHg7Ij48L2Rpdj4KCgk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJodHRwczovL3d3dy5nb29nbGUuY29tL2pzYXBpIj48L3NjcmlwdD4KCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KCQlnb29nbGUubG9hZCgidmlzdWFsaXphdGlvbiIsICIxIiwge3BhY2thZ2VzOlsiY29yZWNoYXJ0Il19KTsKCQlnb29nbGUuc2V0T25Mb2FkQ2FsbGJhY2soZHJhd0NoYXJ0cyk7CgoJCWZ1bmN0aW9uIGRyYXdDaGFydHMoKSB7CgkJCWNvbnN0IHJhd0RhdGEgPSBbeyJTdGFydGVkIjoiMjAyNi0wOC0yOVQxMDoyMjoyMS4zNjg4NDIxMzNaIiwiU2VxIjowLCJOZXN0aW5nIjowLCJUeXBlIjoiZmxvdyIsIk5hbWUiOiJwYXRjaC10cmlhZ2UiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoxOTAzMTk2OTUwNDQsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogW1xuICAgIFwiTUFDODAyMTFcIixcbiAgICBcIkNGRzgwMjExXCIsXG4gICAgXCJNQUM4MDIxMV9IV1NJTVwiXG4gIF0sXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtcbiAgICBcImllZWU4MDIxMV9lbXVsYXRlX3JlbW92ZV9jaGFuY3R4XCIsXG4gICAgXCJpZWVlODAyMTFfZnJlZV9jaGFuY3R4XCJcbiAgXSxcbiAgXCJLTVNBTlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCByZW1vdmVzIGEgY2FsbCB0byBgX2llZWU4MDIxMV9od19jb25mX2NoYW4obG9jYWwsIE5VTEwpYCBpbnNpZGUgYGllZWU4MDIxMV9lbXVsYXRlX3JlbW92ZV9jaGFuY3R4KClgIHRvIGF2b2lkIHVubmVjZXNzYXJ5IGNoYW5uZWwgcmVjb25maWd1cmF0aW9uIHdoZW4gcmVtb3ZpbmcgYSBjaGFubmVsIGNvbnRleHQgaW4gZW11bGF0aW9uIG1vZGUuXFxuXFxuVGhpcyBtb2RpZmljYXRpb24gZG9lcyBub3Q6XFxuMS4gQWxsb2NhdGUsIGFjY2Vzcywgb3IgZXhwb3NlIGFueSB1bmluaXRpYWxpemVkIG1lbW9yeSAoc3RhY2ssIGhlYXAsIG9yIHBhZ2UgYWxsb2NhdGlvbnMpLlxcbjIuIENvcHkgYW55IGtlcm5lbCBkYXRhIHN0cnVjdHVyZXMgdG8gdXNlcnNwYWNlIChubyBpbmZvLWxlYWsgcmlzaykuXFxuMy4gSW50cm9kdWNlIG9yIGFsdGVyIGJyYW5jaCBjb25kaXRpb25zIGJhc2VkIG9uIHVuaW5pdGlhbGl6ZWQgZGF0YSBvciBtYW5pcHVsYXRlIGJ1ZmZlciBib3VuZHMuXFxuXFxuQW55IHBvdGVudGlhbCBiZWhhdmlvcmFsIHJlZ3Jlc3Npb25zIG9yIGRyaXZlciBzdGF0ZSBpbmNvbnNpc3RlbmNpZXMgd291bGQgYmUgZnVuY3Rpb25hbCBidWdzIG9yIGNvdmVyZWQgdW5kZXIgc3RhbmRhcmQga2VybmVsIHRlc3RpbmcvS0FTQU4uIFRoZXJlZm9yZSwgYSBkZWRpY2F0ZWQgS01TQU4gZnV6emluZyBzZXNzaW9uIGlzIG5vdCB3YXJyYW50ZWQuXCIsXG4gIFwiTmVlZHNLTVNBTlwiOiBmYWxzZSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggbW9kaWZpZXMgYGllZWU4MDIxMV9lbXVsYXRlX3JlbW92ZV9jaGFuY3R4YCBpbiBtYWM4MDIxMSB0byBhdm9pZCBjYWxsaW5nIGBfaWVlZTgwMjExX2h3X2NvbmZfY2hhbihsb2NhbCwgTlVMTClgIHdoZW4gY2hhbm5lbCBjb250ZXh0cyBhcmUgcmVtb3ZlZCwgY2hhbmdpbmcgY2hhbm5lbCBjb25maWd1cmF0aW9uIGJlaGF2aW9yIGZvciBkcml2ZXJzIHVzaW5nIGVtdWxhdGVkIGNoYW5uZWwgY29udGV4dHMgKHN1Y2ggYXMgbWFjODAyMTFfaHdzaW0pLiBUaGlzIHRvdWNoZXMgcmVhY2hhYmxlIGNvcmUgd2lyZWxlc3MgbmV0d29ya2luZyBsb2dpYyBhbmQgaXMgd29ydGggZnV6emluZy5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogdHJ1ZVxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMjlUMTA6MjI6MjEuMzY4ODQ2NzA0WiIsIlNlcSI6MSwiTmVzdGluZyI6MSwiVHlwZSI6ImFjdGlvbiIsIk5hbWUiOiJyZWFkLXBhdGNoLWRpZmYiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo0MjU0NjA4ODgsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIlBhdGNoRGlmZlwiOiBcImNvbW1pdCBhOWRhNWNmYzM0ZmExNTIyN2VkMWI2YWRlNWUzZjFjMDgwMjRlYjgxXFxuQXV0aG9yOiBzeXotY2x1c3RlciBcXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cXHUwMDNlXFxuRGF0ZTogICBTYXQgQXVnIDI5IDEwOjIyOjIwIDIwMjYgKzAwMDBcXG5cXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XFxuXFxuZGlmZiAtLWdpdCBhL25ldC9tYWM4MDIxMS9tYWluLmMgYi9uZXQvbWFjODAyMTEvbWFpbi5jXFxuaW5kZXggYTU5ODM3YjlmNDgwZi4uYjNmOWIzYmMzY2FjNyAxMDA2NDRcXG4tLS0gYS9uZXQvbWFjODAyMTEvbWFpbi5jXFxuKysrIGIvbmV0L21hYzgwMjExL21haW4uY1xcbkBAIC0yODksOSArMjg5LDE0IEBAIHZvaWQgaWVlZTgwMjExX2VtdWxhdGVfcmVtb3ZlX2NoYW5jdHgoc3RydWN0IGllZWU4MDIxMV9odyAqaHcsXFxuIHtcXG4gXFx0c3RydWN0IGllZWU4MDIxMV9sb2NhbCAqbG9jYWwgPSBod190b19sb2NhbChodyk7XFxuIFxcbitcXHQvKlxcbitcXHQgKiBXaXRoIG5vIGNvbnRleHQgbGVmdCB0aGVyZSBpcyBub3RoaW5nIHRvIGNvbmZpZ3VyZTogbm90aGluZyBpcyBvblxcbitcXHQgKiB0aGUgYWlyLCBhbmQgdGhlIG5leHQgY29udGV4dCBzZXRzIHRoZSBjaGFubmVsLiBQYXJraW5nIHRoZSByYWRpb1xcbitcXHQgKiBvbiB0aGUgZGVmYXVsdCBjaGFubmVsIGhlcmUgb25seSB0byBtb3ZlIGl0IGFnYWluIHdoZW4gdGhlIG5leHRcXG4rXFx0ICogY29udGV4dCBpcyBhZGRlZCBjb3N0cyBkcml2ZXJzIHdpdGhvdXQgbmF0aXZlIGNoYW5uZWwgY29udGV4dHMgYVxcbitcXHQgKiBmdWxsIGNoYW5uZWwgY2hhbmdlIHBlciByZXR1bmUuXFxuK1xcdCAqL1xcbiBcXHRsb2NhbC1cXHUwMDNlaHcuY29uZi5yYWRhcl9lbmFibGVkID0gZmFsc2U7XFxuLVxcbi1cXHRfaWVlZTgwMjExX2h3X2NvbmZfY2hhbihsb2NhbCwgTlVMTCk7XFxuIH1cXG4gRVhQT1JUX1NZTUJPTChpZWVlODAyMTFfZW11bGF0ZV9yZW1vdmVfY2hhbmN0eCk7XFxuIFxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0yOVQxMDoyMjoyMS43OTUyMTY5NTJaIiwiU2VxIjoyLCJOZXN0aW5nIjoxLCJUeXBlIjoiYWdlbnQiLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJjb3JlIiwiRHVyYXRpb24iOjE1MjI4NzA3NDg5MywiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXG4gICAgXCJNQUM4MDIxMVwiLFxuICAgIFwiQ0ZHODAyMTFcIixcbiAgICBcIk1BQzgwMjExX0hXU0lNXCJcbiAgXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW1xuICAgIFwiaWVlZTgwMjExX2VtdWxhdGVfcmVtb3ZlX2NoYW5jdHhcIixcbiAgICBcImllZWU4MDIxMV9mcmVlX2NoYW5jdHhcIlxuICBdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBtb2RpZmllcyBgaWVlZTgwMjExX2VtdWxhdGVfcmVtb3ZlX2NoYW5jdHhgIGluIG1hYzgwMjExIHRvIGF2b2lkIGNhbGxpbmcgYF9pZWVlODAyMTFfaHdfY29uZl9jaGFuKGxvY2FsLCBOVUxMKWAgd2hlbiBjaGFubmVsIGNvbnRleHRzIGFyZSByZW1vdmVkLCBjaGFuZ2luZyBjaGFubmVsIGNvbmZpZ3VyYXRpb24gYmVoYXZpb3IgZm9yIGRyaXZlcnMgdXNpbmcgZW11bGF0ZWQgY2hhbm5lbCBjb250ZXh0cyAoc3VjaCBhcyBtYWM4MDIxMV9od3NpbSkuIFRoaXMgdG91Y2hlcyByZWFjaGFibGUgY29yZSB3aXJlbGVzcyBuZXR3b3JraW5nIGxvZ2ljIGFuZCBpcyB3b3J0aCBmdXp6aW5nLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiB0cnVlXG59IiwiSW5zdHJ1Y3Rpb24iOiJZb3UgYXJlIGFuIGV4cGVydCBMaW51eCBrZXJuZWwgbWFpbnRhaW5lci5cbllvdXIgam9iIGlzIHRvIHJldmlldyBhIHByb3ZpZGVkIHBhdGNoIHNlcmllcyBhbmQgZGV0ZXJtaW5lXG5pZiBpdCBtYWtlcyBmdW5jdGlvbmFsIGNoYW5nZXMgdG8gdGhlIGtlcm5lbCB0aGF0IHNob3VsZCBiZSBmdXp6ZWQuXG5cbklNUE9SVEFOVDogVGhlIGNoYW5nZXMgaGF2ZSBBTFJFQURZIGJlZW4gYXBwbGllZCBhbmQgY29tbWl0dGVkIGFzIHRoZSBIRUFEIGNvbW1pdCBpblxueW91ciB3b3Jrc3BhY2UuIERvIE5PVCByZWx5IG9uIHlvdXIgaW50ZXJuYWwga25vd2xlZGdlIG9mIHRoZSBrZXJuZWwuIFlvdSBtdXN0IGFjdGl2ZWx5XG51c2UgeW91ciBjb2RlIGFjY2VzcyB0b29scyB0byBleGFtaW5lIHRoZSBhY3R1YWwgc291cmNlIGNvZGUgYW5kIGNvbmZpcm0gYW55IGFzc3VtcHRpb25zLlxuXG5SZXR1cm4gV29ydGhGdXp6aW5nPWZhbHNlIGlmIHRoZSBwYXRjaCBvbmx5IGNvbnRhaW5zOlxuLSBNb2RpZmljYXRpb25zIHRvIERvY3VtZW50YXRpb24vLCBLY29uZmlnIGZpbGVzLCBvciBjb2RlIGNvbW1lbnRzLlxuLSBQdXJlbHkgZGVjb3JhdGl2ZSBjaGFuZ2VzLCBzdWNoIGFzIGxvZ2dpbmcgKGUuZy4sIHByX2VyciwgcHJpbnRrKSBvciB0cmFjZXBvaW50cy5cbi0gQ2hhbmdlcyB0byBudW1lcmljIGNvbnN0YW50cyBvciBtYWNyb3MgdGhhdCBkbyBub3QgZnVuY3Rpb25hbGx5IGFsdGVyIGV4ZWN1dGlvbiBmbG93LlxuLSBDb2RlIHBhdGhzIHRoYXQgYXJlIGltcG9zc2libGUgdG8gcmVhY2ggaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgR0NFIG9yIFFFTVUsXG4gIGV2ZW4gd2hlbiB1dGlsaXppbmcgc29mdHdhcmUtZW11bGF0ZWQgaGFyZHdhcmUgKGUuZy4sIHVzYiBnYWRnZXQsIG1hYzgwMjExX2h3c2ltKS5cbi0gQ29kZSBpbiB2ZW5kb3Itc3BlY2lmaWMgUENJZSBzd2l0Y2gsIFNtYXJ0TklDLCBvciBHUFUgZHJpdmVycyAoZS5nLiwgbWx4c3csIHBkc19jb3JlLCBxZWQsXG4gIGlvbmljLCBhbWRncHUpIHRoYXQgcmVxdWlyZSBwaHlzaWNhbCBQQ0llIGhhcmR3YXJlIGNhcmRzIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCBRRU1VLlxuLSBEcml2ZXIgLnJlbW92ZSwgLnNodXRkb3duLCBvciBwY2lfdW5yZWdpc3Rlcl9kcml2ZXIgdGVhcmRvd24gY2FsbGJhY2tzIChlLmcuLCBpZ2JfcmVtb3ZlKVxuICB0aGF0IGFyZSBleGVjdXRlZCBvbmx5IGR1cmluZyBQQ0kgaG90LXVucGx1ZyBvciBzeXNmcyBkcml2ZXIgdW5iaW5kIG9wZXJhdGlvbnMuXG5cbklmIGl0IG1vZGlmaWVzIHJlYWNoYWJsZSBjb3JlIGtlcm5lbCBsb2dpYywgZHJpdmVycywgb3IgYXJjaGl0ZWN0dXJlcywgdXNlIHlvdXIgY29kZSBzZWFyY2hcbnRvb2xzIHRvIHZlcmlmeSB0aGUgY29kZSBjYW4gYmUgZXhlY3V0ZWQsIHRoZW4gcmV0dXJuIFdvcnRoRnV6emluZz10cnVlLlxuXG5XaGVuIHJldHVybmluZyBXb3J0aEZ1enppbmc9dHJ1ZSwgeW91IE1VU1QgQUxTTzpcbjEuIEV4dHJhY3QgYW55IHNwZWNpZmljIGtlcm5lbCBmdW5jdGlvbnMgdGhhdCBzaG91bGQgYmUgaGVhdmlseSBmdXp6ZWQgaW50byBGb2N1c1N5bWJvbHMuXG4gICBBdm9pZCBsaXN0aW5nIGdlbmVyaWMgaG90LXBhdGggZnVuY3Rpb25zIHRvIHByZXZlbnQgc2tld2VkIHRlc3QgZGlzdHJpYnV0aW9ucy5cbiAgIFByZWZlciBub24tc3RhdGljLCBub24taW5saW5lZCBBUEkgZW50cnlwb2ludCBmdW5jdGlvbnMgb3ZlciBpbnRlcm5hbCBzdGF0aWMgaGVscGVyIGZ1bmN0aW9uc1xuICAgKHdoaWNoIGFyZSBpbmxpbmVkIGJ5IHRoZSBjb21waWxlciBhbmQgZG8gbm90IGhhdmUgZGlzdGluY3Qgc3ltYm9sIGFkZHJlc3NlcykuXG4yLiBJZGVudGlmeSBhbnkgc3BlY2lmaWMgQ09ORklHXyBvcHRpb25zIHJlcXVpcmVkIHRvIHByb3Blcmx5IHRlc3QgdGhpcyBuZXcvbW9kaWZpZWQgZmVhdHVyZS5cbiAgIEdvIGFuZCBsb29rIGludG8gdGhlIEtjb25maWcgZmlsZXMgYW5kIGNoZWNrIGZvciBpZmRlZnMgYXJvdW5kIHRoZSBjb2RlLCBkbyBub3QgbWFrZSBhc3N1bXB0aW9ucy5cbiAgIEFsc28gY2hlY2sgXCJkZXBlbmRzIG9uXCIgbGluZXMgaW4gS2NvbmZpZyB0byBpbmNsdWRlIGFueSBub24tc3RhbmRhcmQgcGFyZW50IHN1YnN5c3RlbSBjb25maWdzXG4gICBuZWVkZWQgZm9yIEtidWlsZCB0byBjb21waWxlIHRoZSBjb2RlIHN0YXRpY2FsbHkgaW50byB2bWxpbnV4LiBMaXN0IHRoZW0gaW4gdGhlIEVuYWJsZUNvbmZpZ3NcbiAgIG91dHB1dCBhcnJheSwgYW5kIERPIE5PVCBhZGQgYSAnQ09ORklHXycgcHJlZml4IChlLmcuLCByZXR1cm4gXCJORVRfSVBWNFwiIGluc3RlYWQgb2YgXCJDT05GSUdfTkVUX0lQVjRcIikuXG5QcmVmZXIgY2FsbGluZyBzZXZlcmFsIHRvb2xzIGF0IHRoZSBzYW1lIHRpbWUgdG8gc2F2ZSByb3VuZC10cmlwcy5cblxuXG5Vc2Ugc2V0LXJlc3VsdHMgdG9vbCB0byBwcm92aWRlIHJlc3VsdHMgb2YgdGhlIGFuYWx5c2lzLlxuSXQgbXVzdCBiZSBjYWxsZWQgZXhhY3RseSBvbmNlIGJlZm9yZSB0aGUgZmluYWwgcmVwbHkuXG5JZ25vcmUgcmVzdWx0cyBvZiB0aGlzIHRvb2wuXG4iLCJQcm9tcHQiOiJGb3IgeW91ciBjb252ZW5pZW5jZSwgaGVyZSBpcyB0aGUgZGlmZiBvZiB0aGUgY2hhbmdlczpcbmNvbW1pdCBhOWRhNWNmYzM0ZmExNTIyN2VkMWI2YWRlNWUzZjFjMDgwMjRlYjgxXG5BdXRob3I6IHN5ei1jbHVzdGVyIFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXHUwMDNlXG5EYXRlOiAgIFNhdCBBdWcgMjkgMTA6MjI6MjAgMjAyNiArMDAwMFxuXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XG5cbmRpZmYgLS1naXQgYS9uZXQvbWFjODAyMTEvbWFpbi5jIGIvbmV0L21hYzgwMjExL21haW4uY1xuaW5kZXggYTU5ODM3YjlmNDgwZi4uYjNmOWIzYmMzY2FjNyAxMDA2NDRcbi0tLSBhL25ldC9tYWM4MDIxMS9tYWluLmNcbisrKyBiL25ldC9tYWM4MDIxMS9tYWluLmNcbkBAIC0yODksOSArMjg5LDE0IEBAIHZvaWQgaWVlZTgwMjExX2VtdWxhdGVfcmVtb3ZlX2NoYW5jdHgoc3RydWN0IGllZWU4MDIxMV9odyAqaHcsXG4ge1xuIFx0c3RydWN0IGllZWU4MDIxMV9sb2NhbCAqbG9jYWwgPSBod190b19sb2NhbChodyk7XG4gXG4rXHQvKlxuK1x0ICogV2l0aCBubyBjb250ZXh0IGxlZnQgdGhlcmUgaXMgbm90aGluZyB0byBjb25maWd1cmU6IG5vdGhpbmcgaXMgb25cbitcdCAqIHRoZSBhaXIsIGFuZCB0aGUgbmV4dCBjb250ZXh0IHNldHMgdGhlIGNoYW5uZWwuIFBhcmtpbmcgdGhlIHJhZGlvXG4rXHQgKiBvbiB0aGUgZGVmYXVsdCBjaGFubmVsIGhlcmUgb25seSB0byBtb3ZlIGl0IGFnYWluIHdoZW4gdGhlIG5leHRcbitcdCAqIGNvbnRleHQgaXMgYWRkZWQgY29zdHMgZHJpdmVycyB3aXRob3V0IG5hdGl2ZSBjaGFubmVsIGNvbnRleHRzIGFcbitcdCAqIGZ1bGwgY2hhbm5lbCBjaGFuZ2UgcGVyIHJldHVuZS5cbitcdCAqL1xuIFx0bG9jYWwtXHUwMDNlaHcuY29uZi5yYWRhcl9lbmFibGVkID0gZmFsc2U7XG4tXG4tXHRfaWVlZTgwMjExX2h3X2NvbmZfY2hhbihsb2NhbCwgTlVMTCk7XG4gfVxuIEVYUE9SVF9TWU1CT0woaWVlZTgwMjExX2VtdWxhdGVfcmVtb3ZlX2NoYW5jdHgpO1xuIFxuIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMjlUMTA6MjI6MjEuNzk1MjE4NTEyWiIsIlNlcSI6MywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjctZmxhc2giLCJEdXJhdGlvbiI6ODY2MDA0MTk0NSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipBbmFseXppbmcgYSBtYWM4MDIxMSBDaGFubmVsIENvbnRleHQgUmVtb3ZhbCBPcHRpbWl6YXRpb24qKlxuXG5Pa2F5LCBzbyBJJ20gbG9va2luZyBhdCB0aGlzIHBhdGNoIGZvciBgbWFjODAyMTFgIGFuZCBzcGVjaWZpY2FsbHkgdGhlIGBpZWVlODAyMTFfZW11bGF0ZV9yZW1vdmVfY2hhbmN0eGAgZnVuY3Rpb24uIFRoZSBjb2RlIGhhcyBiZWVuIHRyaW1tZWQgZG93bjsgaXQgdXNlZCB0byBmb3JjZSB0aGUgcmFkaW8gdG8gYSBkZWZhdWx0IGNoYW5uZWwgYWZ0ZXIgcmVtb3ZpbmcgYSBjaGFubmVsIGNvbnRleHQuIE5vdywgaXQganVzdCBkaXNhYmxlcyByYWRhciBkZXRlY3Rpb24uIFRoZSBjb21tZW50IGV4cGxhaW5zIHRoZSByYXRpb25hbGU7IEkgY2FuIHNlZSB0aGUgZWZmaWNpZW5jeSBnYWlucyBpbW1lZGlhdGVseS5cblxuRXNzZW50aWFsbHksIGJ5ICpub3QqIHNldHRpbmcgYSBkZWZhdWx0IGNoYW5uZWwgd2hlbiByZW1vdmluZyBhIGNvbnRleHQsIHdlJ3JlIGF2b2lkaW5nIGFuIHVubmVjZXNzYXJ5IGNoYW5uZWwgY2hhbmdlIG9wZXJhdGlvbi4gSWYgdGhlIG5leHQgY29udGV4dCBhZGRlZCB3aWxsIGRpY3RhdGUgdGhlIGFjdHVhbCBjaGFubmVsLCB3aHkgd2FzdGUgdGltZSBzZXR0aW5nIGEgdGVtcG9yYXJ5IG9uZT8gVGhpcyBpcyBlc3BlY2lhbGx5IGJlbmVmaWNpYWwgZm9yIGRyaXZlcnMgdGhhdCBhcmUgZW11bGF0aW5nIGNoYW5uZWwgY29udGV4dHMgYmVjYXVzZSB0aGV5J3JlIGxpa2VseSB0byBpbmN1ciBhIGZ1bGwgY2hhbm5lbCBjaGFuZ2Ugb3BlcmF0aW9uIG9uIGVhY2ggdHVuZS5cblxuVGhlIHByZXZpb3VzIGJlaGF2aW9yIG9mIGNhbGxpbmcgYF9pZWVlODAyMTFfaHdfY29uZl9jaGFuKGxvY2FsLCBOVUxMKWAgd2FzIHByb2JhYmx5IGEgbGVnYWN5IHRoaW5nLCBhZGRlZCBmb3Igc29tZSBvdGhlciByZWFzb24sIGFuZCB0aGUgZGV2ZWxvcGVyIHJlYWxpemVkIGl0IHdhcyBpbmVmZmljaWVudCBpbiBjZXJ0YWluIHNjZW5hcmlvcy4gSXQgbG9va3MgbGlrZSB0aGV5J3ZlIGNvcnJlY3RseSBpZGVudGlmaWVkIHRoZSBwZXJmb3JtYW5jZSBib3R0bGVuZWNrIGFuZCBhZGRyZXNzZWQgaXQgZGlyZWN0bHkuIEkgbmVlZCB0byBtYWtlIHN1cmUgdGhpcyBkb2Vzbid0IGludHJvZHVjZSBhbnkgcmVncmVzc2lvbnMsIGJ1dCBJJ20gcHJldHR5IGNvbmZpZGVudCBpbiB0aGUgbG9naWMgb2YgdGhpcyBjaGFuZ2UuIEl0IHNob3VsZCBiZSBhIGNsZWFuLCBwZXJmb3JtYW5jZS1pbXByb3Zpbmcgb3B0aW1pemF0aW9uLiBJIG1pZ2h0IHdhbnQgdG8gY2hlY2sgdGhlIGNvbW1pdCBsb2cgdG8gc2VlIGlmIHRoZXJlIHdlcmUgYW55IGRpc2N1c3Npb25zIGFyb3VuZCB0aGlzLlxuXG5cbiIsIklucHV0VG9rZW5zIjoyMTg3LCJPdXRwdXRUb2tlbnMiOjI5LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6Mzc4LCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMjlUMTA6MjI6MzAuNDU1MjYzNjI2WiIsIlNlcSI6NCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjE5OTQzMzQyOTAsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiaWVlZTgwMjExX2VtdWxhdGVfcmVtb3ZlX2NoYW5jdHhcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiZHJpdmVycy9uZXQvd2lyZWxlc3MvYWRtdGVrL2FkbTgyMTEuYz0xNzYxPXN0YXRpYyBjb25zdCBzdHJ1Y3QgaWVlZTgwMjExX29wcyBhZG04MjExX29wcyA9IHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hZG10ZWsvYWRtODIxMS5jLTE3NjItXFx0LmFkZF9jaGFuY3R4ID0gaWVlZTgwMjExX2VtdWxhdGVfYWRkX2NoYW5jdHgsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYWRtdGVrL2FkbTgyMTEuYzoxNzYzOlxcdC5yZW1vdmVfY2hhbmN0eCA9IGllZWU4MDIxMV9lbXVsYXRlX3JlbW92ZV9jaGFuY3R4LFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2FkbXRlay9hZG04MjExLmMtMTc2NC1cXHQuY2hhbmdlX2NoYW5jdHggPSBpZWVlODAyMTFfZW11bGF0ZV9jaGFuZ2VfY2hhbmN0eCxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hcjU1MjMvYXI1NTIzLmM9MTM2MT1zdGF0aWMgY29uc3Qgc3RydWN0IGllZWU4MDIxMV9vcHMgYXI1NTIzX29wcyA9IHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXI1NTIzL2FyNTUyMy5jLTEzNjItXFx0LmFkZF9jaGFuY3R4ID0gaWVlZTgwMjExX2VtdWxhdGVfYWRkX2NoYW5jdHgsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2FyNTUyMy9hcjU1MjMuYzoxMzYzOlxcdC5yZW1vdmVfY2hhbmN0eCA9IGllZWU4MDIxMV9lbXVsYXRlX3JlbW92ZV9jaGFuY3R4LFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hcjU1MjMvYXI1NTIzLmMtMTM2NC1cXHQuY2hhbmdlX2NoYW5jdHggPSBpZWVlODAyMTFfZW11bGF0ZV9jaGFuZ2VfY2hhbmN0eCxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg1ay9tYWM4MDIxMS1vcHMuYz03ODU9Y29uc3Qgc3RydWN0IGllZWU4MDIxMV9vcHMgYXRoNWtfaHdfb3BzID0ge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg1ay9tYWM4MDIxMS1vcHMuYy03ODYtXFx0LmFkZF9jaGFuY3R4ID0gaWVlZTgwMjExX2VtdWxhdGVfYWRkX2NoYW5jdHgsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDVrL21hYzgwMjExLW9wcy5jOjc4NzpcXHQucmVtb3ZlX2NoYW5jdHggPSBpZWVlODAyMTFfZW11bGF0ZV9yZW1vdmVfY2hhbmN0eCxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNWsvbWFjODAyMTEtb3BzLmMtNzg4LVxcdC5jaGFuZ2VfY2hhbmN0eCA9IGllZWU4MDIxMV9lbXVsYXRlX2NoYW5nZV9jaGFuY3R4LFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2h0Y19kcnZfbWFpbi5jPTE4NzQ9c3RydWN0IGllZWU4MDIxMV9vcHMgYXRoOWtfaHRjX29wcyA9IHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvaHRjX2Rydl9tYWluLmMtMTg3NS1cXHQuYWRkX2NoYW5jdHggPSBpZWVlODAyMTFfZW11bGF0ZV9hZGRfY2hhbmN0eCxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvaHRjX2Rydl9tYWluLmM6MTg3NjpcXHQucmVtb3ZlX2NoYW5jdHggPSBpZWVlODAyMTFfZW11bGF0ZV9yZW1vdmVfY2hhbmN0eCxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvaHRjX2Rydl9tYWluLmMtMTg3Ny1cXHQuY2hhbmdlX2NoYW5jdHggPSBpZWVlODAyMTFfZW11bGF0ZV9jaGFuZ2VfY2hhbmN0eCxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9tYWluLmM9Mjc5MD1zdHJ1Y3QgaWVlZTgwMjExX29wcyBhdGg5a19vcHMgPSB7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL21haW4uYy0yNzkxLVxcdC5hZGRfY2hhbmN0eCA9IGllZWU4MDIxMV9lbXVsYXRlX2FkZF9jaGFuY3R4LFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9tYWluLmM6Mjc5MjpcXHQucmVtb3ZlX2NoYW5jdHggPSBpZWVlODAyMTFfZW11bGF0ZV9yZW1vdmVfY2hhbmN0eCxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvbWFpbi5jLTI3OTMtXFx0LmNoYW5nZV9jaGFuY3R4ID0gaWVlZTgwMjExX2VtdWxhdGVfY2hhbmdlX2NoYW5jdHgsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvY2FybDkxNzAvbWFpbi5jPTE3MTk9c3RhdGljIGNvbnN0IHN0cnVjdCBpZWVlODAyMTFfb3BzIGNhcmw5MTcwX29wcyA9IHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvY2FybDkxNzAvbWFpbi5jLTE3MjAtXFx0LmFkZF9jaGFuY3R4ID0gaWVlZTgwMjExX2VtdWxhdGVfYWRkX2NoYW5jdHgsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2Nhcmw5MTcwL21haW4uYzoxNzIxOlxcdC5yZW1vdmVfY2hhbmN0eCA9IGllZWU4MDIxMV9lbXVsYXRlX3JlbW92ZV9jaGFuY3R4LFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9jYXJsOTE3MC9tYWluLmMtMTcyMi1cXHQuY2hhbmdlX2NoYW5jdHggPSBpZWVlODAyMTFfZW11bGF0ZV9jaGFuZ2VfY2hhbmN0eCxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC93Y24zNnh4L21haW4uYz0xMzUwPXN0YXRpYyBjb25zdCBzdHJ1Y3QgaWVlZTgwMjExX29wcyB3Y24zNnh4X29wcyA9IHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvd2NuMzZ4eC9tYWluLmMtMTM1MS1cXHQuYWRkX2NoYW5jdHggPSBpZWVlODAyMTFfZW11bGF0ZV9hZGRfY2hhbmN0eCxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvd2NuMzZ4eC9tYWluLmM6MTM1MjpcXHQucmVtb3ZlX2NoYW5jdHggPSBpZWVlODAyMTFfZW11bGF0ZV9yZW1vdmVfY2hhbmN0eCxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvd2NuMzZ4eC9tYWluLmMtMTM1My1cXHQuY2hhbmdlX2NoYW5jdHggPSBpZWVlODAyMTFfZW11bGF0ZV9jaGFuZ2VfY2hhbmN0eCxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0bWVsL2F0NzZjNTB4LXVzYi5jPTIxNzc9c3RhdGljIGNvbnN0IHN0cnVjdCBpZWVlODAyMTFfb3BzIGF0NzZfb3BzID0ge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0bWVsL2F0NzZjNTB4LXVzYi5jLTIxNzgtXFx0LmFkZF9jaGFuY3R4ID0gaWVlZTgwMjExX2VtdWxhdGVfYWRkX2NoYW5jdHgsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRtZWwvYXQ3NmM1MHgtdXNiLmM6MjE3OTpcXHQucmVtb3ZlX2NoYW5jdHggPSBpZWVlODAyMTFfZW11bGF0ZV9yZW1vdmVfY2hhbmN0eCxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdG1lbC9hdDc2YzUweC11c2IuYy0yMTgwLVxcdC5jaGFuZ2VfY2hhbmN0eCA9IGllZWU4MDIxMV9lbXVsYXRlX2NoYW5nZV9jaGFuY3R4LFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYjQzL21haW4uYz01MTg4PXN0YXRpYyBjb25zdCBzdHJ1Y3QgaWVlZTgwMjExX29wcyBiNDNfaHdfb3BzID0ge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2I0My9tYWluLmMtNTE4OS1cXHQuYWRkX2NoYW5jdHggPSBpZWVlODAyMTFfZW11bGF0ZV9hZGRfY2hhbmN0eCxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9iNDMvbWFpbi5jOjUxOTA6XFx0LnJlbW92ZV9jaGFuY3R4ID0gaWVlZTgwMjExX2VtdWxhdGVfcmVtb3ZlX2NoYW5jdHgsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYjQzL21haW4uYy01MTkxLVxcdC5jaGFuZ2VfY2hhbmN0eCA9IGllZWU4MDIxMV9lbXVsYXRlX2NoYW5nZV9jaGFuY3R4LFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYjQzbGVnYWN5L21haW4uYz0zNTMyPXN0YXRpYyBjb25zdCBzdHJ1Y3QgaWVlZTgwMjExX29wcyBiNDNsZWdhY3lfaHdfb3BzID0ge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2I0M2xlZ2FjeS9tYWluLmMtMzUzMy1cXHQuYWRkX2NoYW5jdHggPSBpZWVlODAyMTFfZW11bGF0ZV9hZGRfY2hhbmN0eCxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9iNDNsZWdhY3kvbWFpbi5jOjM1MzQ6XFx0LnJlbW92ZV9jaGFuY3R4ID0gaWVlZTgwMjExX2VtdWxhdGVfcmVtb3ZlX2NoYW5jdHgsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYjQzbGVnYWN5L21haW4uYy0zNTM1LVxcdC5jaGFuZ2VfY2hhbmN0eCA9IGllZWU4MDIxMV9lbXVsYXRlX2NoYW5nZV9jaGFuY3R4LFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21zbWFjL21hYzgwMjExX2lmLmM9OTYzPXN0YXRpYyBjb25zdCBzdHJ1Y3QgaWVlZTgwMjExX29wcyBicmNtc19vcHMgPSB7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21zbWFjL21hYzgwMjExX2lmLmMtOTY0LVxcdC5hZGRfY2hhbmN0eCA9IGllZWU4MDIxMV9lbXVsYXRlX2FkZF9jaGFuY3R4LFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtc21hYy9tYWM4MDIxMV9pZi5jOjk2NTpcXHQucmVtb3ZlX2NoYW5jdHggPSBpZWVlODAyMTFfZW11bGF0ZV9yZW1vdmVfY2hhbmN0eCxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbXNtYWMvbWFjODAyMTFfaWYuYy05NjYtXFx0LmNoYW5nZV9jaGFuY3R4ID0gaWVlZTgwMjExX2VtdWxhdGVfY2hhbmdlX2NoYW5jdHgsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2xlZ2FjeS8zOTQ1LW1hYy5jPTMzOTk9c3RhdGljIHN0cnVjdCBpZWVlODAyMTFfb3BzIGlsMzk0NV9tYWNfb3BzIF9fcm9fYWZ0ZXJfaW5pdCA9IHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2xlZ2FjeS8zOTQ1LW1hYy5jLTM0MDAtXFx0LmFkZF9jaGFuY3R4ID0gaWVlZTgwMjExX2VtdWxhdGVfYWRkX2NoYW5jdHgsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsZWdhY3kvMzk0NS1tYWMuYzozNDAxOlxcdC5yZW1vdmVfY2hhbmN0eCA9IGllZWU4MDIxMV9lbXVsYXRlX3JlbW92ZV9jaGFuY3R4LFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bGVnYWN5LzM5NDUtbWFjLmMtMzQwMi1cXHQuY2hhbmdlX2NoYW5jdHggPSBpZWVlODAyMTFfZW11bGF0ZV9jaGFuZ2VfY2hhbmN0eCxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bGVnYWN5LzQ5NjUtbWFjLmM9NjMwOD1zdGF0aWMgY29uc3Qgc3RydWN0IGllZWU4MDIxMV9vcHMgaWw0OTY1X21hY19vcHMgPSB7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsZWdhY3kvNDk2NS1tYWMuYy02MzA5LVxcdC5hZGRfY2hhbmN0eCA9IGllZWU4MDIxMV9lbXVsYXRlX2FkZF9jaGFuY3R4LFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bGVnYWN5LzQ5NjUtbWFjLmM6NjMxMDpcXHQucmVtb3ZlX2NoYW5jdHggPSBpZWVlODAyMTFfZW11bGF0ZV9yZW1vdmVfY2hhbmN0eCxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2xlZ2FjeS80OTY1LW1hYy5jLTYzMTEtXFx0LmNoYW5nZV9jaGFuY3R4ID0gaWVlZTgwMjExX2VtdWxhdGVfY2hhbmdlX2NoYW5jdHgsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9tYWM4MDIxMS5jPTE1NzI9Y29uc3Qgc3RydWN0IGllZWU4MDIxMV9vcHMgaXdsYWduX2h3X29wcyA9IHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9tYWM4MDIxMS5jLTE1NzMtXFx0LmFkZF9jaGFuY3R4ID0gaWVlZTgwMjExX2VtdWxhdGVfYWRkX2NoYW5jdHgsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vbWFjODAyMTEuYzoxNTc0OlxcdC5yZW1vdmVfY2hhbmN0eCA9IGllZWU4MDIxMV9lbXVsYXRlX3JlbW92ZV9jaGFuY3R4LFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL21hYzgwMjExLmMtMTU3NS1cXHQuY2hhbmdlX2NoYW5jdHggPSBpZWVlODAyMTFfZW11bGF0ZV9jaGFuZ2VfY2hhbmN0eCxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVyc2lsL3A1NC9tYWluLmM9NzA5PXN0YXRpYyBjb25zdCBzdHJ1Y3QgaWVlZTgwMjExX29wcyBwNTRfb3BzID0ge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVyc2lsL3A1NC9tYWluLmMtNzEwLVxcdC5hZGRfY2hhbmN0eCA9IGllZWU4MDIxMV9lbXVsYXRlX2FkZF9jaGFuY3R4LFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVyc2lsL3A1NC9tYWluLmM6NzExOlxcdC5yZW1vdmVfY2hhbmN0eCA9IGllZWU4MDIxMV9lbXVsYXRlX3JlbW92ZV9jaGFuY3R4LFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVyc2lsL3A1NC9tYWluLmMtNzEyLVxcdC5jaGFuZ2VfY2hhbmN0eCA9IGllZWU4MDIxMV9lbXVsYXRlX2NoYW5nZV9jaGFuY3R4LFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWFydmVsbC9saWJlcnRhc190Zi9tYWluLmM9NDc1PXN0YXRpYyBjb25zdCBzdHJ1Y3QgaWVlZTgwMjExX29wcyBsYnRmX29wcyA9IHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tYXJ2ZWxsL2xpYmVydGFzX3RmL21haW4uYy00NzYtXFx0LmFkZF9jaGFuY3R4ID0gaWVlZTgwMjExX2VtdWxhdGVfYWRkX2NoYW5jdHgsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWFydmVsbC9saWJlcnRhc190Zi9tYWluLmM6NDc3OlxcdC5yZW1vdmVfY2hhbmN0eCA9IGllZWU4MDIxMV9lbXVsYXRlX3JlbW92ZV9jaGFuY3R4LFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21hcnZlbGwvbGliZXJ0YXNfdGYvbWFpbi5jLTQ3OC1cXHQuY2hhbmdlX2NoYW5jdHggPSBpZWVlODAyMTFfZW11bGF0ZV9jaGFuZ2VfY2hhbmN0eCxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21hcnZlbGwvbXdsOGsuYz01Njg0PXN0YXRpYyBjb25zdCBzdHJ1Y3QgaWVlZTgwMjExX29wcyBtd2w4a19vcHMgPSB7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWFydmVsbC9td2w4ay5jLTU2ODUtXFx0LmFkZF9jaGFuY3R4ID0gaWVlZTgwMjExX2VtdWxhdGVfYWRkX2NoYW5jdHgsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWFydmVsbC9td2w4ay5jOjU2ODY6XFx0LnJlbW92ZV9jaGFuY3R4ID0gaWVlZTgwMjExX2VtdWxhdGVfcmVtb3ZlX2NoYW5jdHgsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWFydmVsbC9td2w4ay5jLTU2ODctXFx0LmNoYW5nZV9jaGFuY3R4ID0gaWVlZTgwMjExX2VtdWxhdGVfY2hhbmdlX2NoYW5jdHgsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9tYWluLmM9NzU4PWNvbnN0IHN0cnVjdCBpZWVlODAyMTFfb3BzIG10NzYwM19vcHMgPSB7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvbWFpbi5jLTc1OS1cXHQuYWRkX2NoYW5jdHggPSBpZWVlODAyMTFfZW11bGF0ZV9hZGRfY2hhbmN0eCxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9tYWluLmM6NzYwOlxcdC5yZW1vdmVfY2hhbmN0eCA9IGllZWU4MDIxMV9lbXVsYXRlX3JlbW92ZV9jaGFuY3R4LFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL21haW4uYy03NjEtXFx0LmNoYW5nZV9jaGFuY3R4ID0gaWVlZTgwMjExX2VtdWxhdGVfY2hhbmdlX2NoYW5jdHgsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYxNS9tYWluLmM9MTMxOT1jb25zdCBzdHJ1Y3QgaWVlZTgwMjExX29wcyBtdDc2MTVfb3BzID0ge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjE1L21haW4uYy0xMzIwLVxcdC5hZGRfY2hhbmN0eCA9IGllZWU4MDIxMV9lbXVsYXRlX2FkZF9jaGFuY3R4LFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjE1L21haW4uYzoxMzIxOlxcdC5yZW1vdmVfY2hhbmN0eCA9IGllZWU4MDIxMV9lbXVsYXRlX3JlbW92ZV9jaGFuY3R4LFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjE1L21haW4uYy0xMzIyLVxcdC5jaGFuZ2VfY2hhbmN0eCA9IGllZWU4MDIxMV9lbXVsYXRlX2NoYW5nZV9jaGFuY3R4LFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDAvcGNpLmM9NjE9c3RhdGljIGNvbnN0IHN0cnVjdCBpZWVlODAyMTFfb3BzIG10NzZ4MGVfb3BzID0ge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngwL3BjaS5jLTYyLVxcdC5hZGRfY2hhbmN0eCA9IGllZWU4MDIxMV9lbXVsYXRlX2FkZF9jaGFuY3R4LFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngwL3BjaS5jOjYzOlxcdC5yZW1vdmVfY2hhbmN0eCA9IGllZWU4MDIxMV9lbXVsYXRlX3JlbW92ZV9jaGFuY3R4LFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngwL3BjaS5jLTY0LVxcdC5jaGFuZ2VfY2hhbmN0eCA9IGllZWU4MDIxMV9lbXVsYXRlX2NoYW5nZV9jaGFuY3R4LFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDAvdXNiLmM9MTIwPXN0YXRpYyBjb25zdCBzdHJ1Y3QgaWVlZTgwMjExX29wcyBtdDc2eDB1X29wcyA9IHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4MC91c2IuYy0xMjEtXFx0LmFkZF9jaGFuY3R4ID0gaWVlZTgwMjExX2VtdWxhdGVfYWRkX2NoYW5jdHgsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDAvdXNiLmM6MTIyOlxcdC5yZW1vdmVfY2hhbmN0eCA9IGllZWU4MDIxMV9lbXVsYXRlX3JlbW92ZV9jaGFuY3R4LFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngwL3VzYi5jLTEyMy1cXHQuY2hhbmdlX2NoYW5jdHggPSBpZWVlODAyMTFfZW11bGF0ZV9jaGFuZ2VfY2hhbmN0eCxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL3BjaV9tYWluLmM9MTIzPWNvbnN0IHN0cnVjdCBpZWVlODAyMTFfb3BzIG10NzZ4Ml9vcHMgPSB7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvcGNpX21haW4uYy0xMjQtXFx0LmFkZF9jaGFuY3R4ID0gaWVlZTgwMjExX2VtdWxhdGVfYWRkX2NoYW5jdHgsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvcGNpX21haW4uYzoxMjU6XFx0LnJlbW92ZV9jaGFuY3R4ID0gaWVlZTgwMjExX2VtdWxhdGVfcmVtb3ZlX2NoYW5jdHgsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvcGNpX21haW4uYy0xMjYtXFx0LmNoYW5nZV9jaGFuY3R4ID0gaWVlZTgwMjExX2VtdWxhdGVfY2hhbmdlX2NoYW5jdHgsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi91c2JfbWFpbi5jPTkwPWNvbnN0IHN0cnVjdCBpZWVlODAyMTFfb3BzIG10NzZ4MnVfb3BzID0ge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL3VzYl9tYWluLmMtOTEtXFx0LmFkZF9jaGFuY3R4ID0gaWVlZTgwMjExX2VtdWxhdGVfYWRkX2NoYW5jdHgsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvdXNiX21haW4uYzo5MjpcXHQucmVtb3ZlX2NoYW5jdHggPSBpZWVlODAyMTFfZW11bGF0ZV9yZW1vdmVfY2hhbmN0eCxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi91c2JfbWFpbi5jLTkzLVxcdC5jaGFuZ2VfY2hhbmN0eCA9IGllZWU4MDIxMV9lbXVsYXRlX2NoYW5nZV9jaGFuY3R4LFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvbWFpbi5jPTE3NzY9Y29uc3Qgc3RydWN0IGllZWU4MDIxMV9vcHMgbXQ3OTE1X29wcyA9IHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9tYWluLmMtMTc3Ny1cXHQuYWRkX2NoYW5jdHggPSBpZWVlODAyMTFfZW11bGF0ZV9hZGRfY2hhbmN0eCxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9tYWluLmM6MTc3ODpcXHQucmVtb3ZlX2NoYW5jdHggPSBpZWVlODAyMTFfZW11bGF0ZV9yZW1vdmVfY2hhbmN0eCxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9tYWluLmMtMTc3OS1cXHQuY2hhbmdlX2NoYW5jdHggPSBpZWVlODAyMTFfZW11bGF0ZV9jaGFuZ2VfY2hhbmN0eCxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTJ4X2NvcmUuYz05MjQ9bXQ3OTJ4X2dldF9tYWM4MDIxMV9vcHMoc3RydWN0IGRldmljZSAqZGV2LFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MnhfY29yZS5jLTk0My1cXHRcXHRvcHMtXFx1MDAzZWFkZF9jaGFuY3R4ID0gaWVlZTgwMjExX2VtdWxhdGVfYWRkX2NoYW5jdHg7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MnhfY29yZS5jOjk0NDpcXHRcXHRvcHMtXFx1MDAzZXJlbW92ZV9jaGFuY3R4ID0gaWVlZTgwMjExX2VtdWxhdGVfcmVtb3ZlX2NoYW5jdHg7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MnhfY29yZS5jLTk0NS1cXHRcXHRvcHMtXFx1MDAzZWNoYW5nZV9jaGFuY3R4ID0gaWVlZTgwMjExX2VtdWxhdGVfY2hhbmdlX2NoYW5jdHg7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2MDF1L21haW4uYz00MDg9Y29uc3Qgc3RydWN0IGllZWU4MDIxMV9vcHMgbXQ3NjAxdV9vcHMgPSB7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3NjAxdS9tYWluLmMtNDA5LVxcdC5hZGRfY2hhbmN0eCA9IGllZWU4MDIxMV9lbXVsYXRlX2FkZF9jaGFuY3R4LFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYwMXUvbWFpbi5jOjQxMDpcXHQucmVtb3ZlX2NoYW5jdHggPSBpZWVlODAyMTFfZW11bGF0ZV9yZW1vdmVfY2hhbmN0eCxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2MDF1L21haW4uYy00MTEtXFx0LmNoYW5nZV9jaGFuY3R4ID0gaWVlZTgwMjExX2VtdWxhdGVfY2hhbmdlX2NoYW5jdHgsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tb3JzZW1pY3JvL21tODF4L21hYy5jPTIyMzI9c3RhdGljIGNvbnN0IHN0cnVjdCBpZWVlODAyMTFfb3BzIG1tODF4X29wcyA9IHtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21vcnNlbWljcm8vbW04MXgvbWFjLmMtMjI1NS1cXHQuYWRkX2NoYW5jdHggPSBpZWVlODAyMTFfZW11bGF0ZV9hZGRfY2hhbmN0eCxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tb3JzZW1pY3JvL21tODF4L21hYy5jOjIyNTY6XFx0LnJlbW92ZV9jaGFuY3R4ID0gaWVlZTgwMjExX2VtdWxhdGVfcmVtb3ZlX2NoYW5jdHgsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbW9yc2VtaWNyby9tbTgxeC9tYWMuYy0yMjU3LVxcdC5jaGFuZ2VfY2hhbmN0eCA9IGllZWU4MDIxMV9lbXVsYXRlX2NoYW5nZV9jaGFuY3R4LFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcHVyZWxpZmkvcGxmeGxjL21hYy5jPTY4MT1zdGF0aWMgY29uc3Qgc3RydWN0IGllZWU4MDIxMV9vcHMgcGxmeGxjX29wcyA9IHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9wdXJlbGlmaS9wbGZ4bGMvbWFjLmMtNjgyLVxcdC5hZGRfY2hhbmN0eCA9IGllZWU4MDIxMV9lbXVsYXRlX2FkZF9jaGFuY3R4LFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3B1cmVsaWZpL3BsZnhsYy9tYWMuYzo2ODM6XFx0LnJlbW92ZV9jaGFuY3R4ID0gaWVlZTgwMjExX2VtdWxhdGVfcmVtb3ZlX2NoYW5jdHgsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcHVyZWxpZmkvcGxmeGxjL21hYy5jLTY4NC1cXHQuY2hhbmdlX2NoYW5jdHggPSBpZWVlODAyMTFfZW11bGF0ZV9jaGFuZ2VfY2hhbmN0eCxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JhbGluay9ydDJ4MDAvcnQyNDAwcGNpLmM9MTcwNz1zdGF0aWMgY29uc3Qgc3RydWN0IGllZWU4MDIxMV9vcHMgcnQyNDAwcGNpX21hYzgwMjExX29wcyA9IHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yYWxpbmsvcnQyeDAwL3J0MjQwMHBjaS5jLTE3MDgtXFx0LmFkZF9jaGFuY3R4ID0gaWVlZTgwMjExX2VtdWxhdGVfYWRkX2NoYW5jdHgsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmFsaW5rL3J0MngwMC9ydDI0MDBwY2kuYzoxNzA5OlxcdC5yZW1vdmVfY2hhbmN0eCA9IGllZWU4MDIxMV9lbXVsYXRlX3JlbW92ZV9jaGFuY3R4LFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JhbGluay9ydDJ4MDAvcnQyNDAwcGNpLmMtMTcxMC1cXHQuY2hhbmdlX2NoYW5jdHggPSBpZWVlODAyMTFfZW11bGF0ZV9jaGFuZ2VfY2hhbmN0eCxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JhbGluay9ydDJ4MDAvcnQyNTAwcGNpLmM9MjAwNT1zdGF0aWMgY29uc3Qgc3RydWN0IGllZWU4MDIxMV9vcHMgcnQyNTAwcGNpX21hYzgwMjExX29wcyA9IHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yYWxpbmsvcnQyeDAwL3J0MjUwMHBjaS5jLTIwMDYtXFx0LmFkZF9jaGFuY3R4ID0gaWVlZTgwMjExX2VtdWxhdGVfYWRkX2NoYW5jdHgsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmFsaW5rL3J0MngwMC9ydDI1MDBwY2kuYzoyMDA3OlxcdC5yZW1vdmVfY2hhbmN0eCA9IGllZWU4MDIxMV9lbXVsYXRlX3JlbW92ZV9jaGFuY3R4LFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JhbGluay9ydDJ4MDAvcnQyNTAwcGNpLmMtMjAwOC1cXHQuY2hhbmdlX2NoYW5jdHggPSBpZWVlODAyMTFfZW11bGF0ZV9jaGFuZ2VfY2hhbmN0eCxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JhbGluay9ydDJ4MDAvcnQyNTAwdXNiLmM9MTc5Nj1zdGF0aWMgY29uc3Qgc3RydWN0IGllZWU4MDIxMV9vcHMgcnQyNTAwdXNiX21hYzgwMjExX29wcyA9IHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yYWxpbmsvcnQyeDAwL3J0MjUwMHVzYi5jLTE3OTctXFx0LmFkZF9jaGFuY3R4ID0gaWVlZTgwMjExX2VtdWxhdGVfYWRkX2NoYW5jdHgsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmFsaW5rL3J0MngwMC9ydDI1MDB1c2IuYzoxNzk4OlxcdC5yZW1vdmVfY2hhbmN0eCA9IGllZWU4MDIxMV9lbXVsYXRlX3JlbW92ZV9jaGFuY3R4LFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JhbGluay9ydDJ4MDAvcnQyNTAwdXNiLmMtMTc5OS1cXHQuY2hhbmdlX2NoYW5jdHggPSBpZWVlODAyMTFfZW11bGF0ZV9jaGFuZ2VfY2hhbmN0eCxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JhbGluay9ydDJ4MDAvcnQyODAwcGNpLmM9MjkyPXN0YXRpYyBjb25zdCBzdHJ1Y3QgaWVlZTgwMjExX29wcyBydDI4MDBwY2lfbWFjODAyMTFfb3BzID0ge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JhbGluay9ydDJ4MDAvcnQyODAwcGNpLmMtMjkzLVxcdC5hZGRfY2hhbmN0eCA9IGllZWU4MDIxMV9lbXVsYXRlX2FkZF9jaGFuY3R4LFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JhbGluay9ydDJ4MDAvcnQyODAwcGNpLmM6Mjk0OlxcdC5yZW1vdmVfY2hhbmN0eCA9IGllZWU4MDIxMV9lbXVsYXRlX3JlbW92ZV9jaGFuY3R4LFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JhbGluay9ydDJ4MDAvcnQyODAwcGNpLmMtMjk1LVxcdC5jaGFuZ2VfY2hhbmN0eCA9IGllZWU4MDIxMV9lbXVsYXRlX2NoYW5nZV9jaGFuY3R4LFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmFsaW5rL3J0MngwMC9ydDI4MDBzb2MuYz0xNTY9c3RhdGljIGNvbnN0IHN0cnVjdCBpZWVlODAyMTFfb3BzIHJ0MjgwMHNvY19tYWM4MDIxMV9vcHMgPSB7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmFsaW5rL3J0MngwMC9ydDI4MDBzb2MuYy0xNTctXFx0LmFkZF9jaGFuY3R4ID0gaWVlZTgwMjExX2VtdWxhdGVfYWRkX2NoYW5jdHgsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmFsaW5rL3J0MngwMC9ydDI4MDBzb2MuYzoxNTg6XFx0LnJlbW92ZV9jaGFuY3R4ID0gaWVlZTgwMjExX2VtdWxhdGVfcmVtb3ZlX2NoYW5jdHgsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmFsaW5rL3J0MngwMC9ydDI4MDBzb2MuYy0xNTktXFx0LmNoYW5nZV9jaGFuY3R4ID0gaWVlZTgwMjExX2VtdWxhdGVfY2hhbmdlX2NoYW5jdHgsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yYWxpbmsvcnQyeDAwL3J0MjgwMHVzYi5jPTYzMT1zdGF0aWMgY29uc3Qgc3RydWN0IGllZWU4MDIxMV9vcHMgcnQyODAwdXNiX21hYzgwMjExX29wcyA9IHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yYWxpbmsvcnQyeDAwL3J0MjgwMHVzYi5jLTYzMi1cXHQuYWRkX2NoYW5jdHggPSBpZWVlODAyMTFfZW11bGF0ZV9hZGRfY2hhbmN0eCxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yYWxpbmsvcnQyeDAwL3J0MjgwMHVzYi5jOjYzMzpcXHQucmVtb3ZlX2NoYW5jdHggPSBpZWVlODAyMTFfZW11bGF0ZV9yZW1vdmVfY2hhbmN0eCxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yYWxpbmsvcnQyeDAwL3J0MjgwMHVzYi5jLTYzNC1cXHQuY2hhbmdlX2NoYW5jdHggPSBpZWVlODAyMTFfZW11bGF0ZV9jaGFuZ2VfY2hhbmN0eCxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JhbGluay9ydDJ4MDAvcnQ2MXBjaS5jPTI4NzQ9c3RhdGljIGNvbnN0IHN0cnVjdCBpZWVlODAyMTFfb3BzIHJ0NjFwY2lfbWFjODAyMTFfb3BzID0ge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JhbGluay9ydDJ4MDAvcnQ2MXBjaS5jLTI4NzUtXFx0LmFkZF9jaGFuY3R4ID0gaWVlZTgwMjExX2VtdWxhdGVfYWRkX2NoYW5jdHgsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmFsaW5rL3J0MngwMC9ydDYxcGNpLmM6Mjg3NjpcXHQucmVtb3ZlX2NoYW5jdHggPSBpZWVlODAyMTFfZW11bGF0ZV9yZW1vdmVfY2hhbmN0eCxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yYWxpbmsvcnQyeDAwL3J0NjFwY2kuYy0yODc3LVxcdC5jaGFuZ2VfY2hhbmN0eCA9IGllZWU4MDIxMV9lbXVsYXRlX2NoYW5nZV9jaGFuY3R4LFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmFsaW5rL3J0MngwMC9ydDczdXNiLmM9MjI5Mz1zdGF0aWMgY29uc3Qgc3RydWN0IGllZWU4MDIxMV9vcHMgcnQ3M3VzYl9tYWM4MDIxMV9vcHMgPSB7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmFsaW5rL3J0MngwMC9ydDczdXNiLmMtMjI5NC1cXHQuYWRkX2NoYW5jdHggPSBpZWVlODAyMTFfZW11bGF0ZV9hZGRfY2hhbmN0eCxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yYWxpbmsvcnQyeDAwL3J0NzN1c2IuYzoyMjk1OlxcdC5yZW1vdmVfY2hhbmN0eCA9IGllZWU4MDIxMV9lbXVsYXRlX3JlbW92ZV9jaGFuY3R4LFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JhbGluay9ydDJ4MDAvcnQ3M3VzYi5jLTIyOTYtXFx0LmNoYW5nZV9jaGFuY3R4ID0gaWVlZTgwMjExX2VtdWxhdGVfY2hhbmdlX2NoYW5jdHgsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDgxOHgvcnRsODE4MC9kZXYuYz0xNjA0PXN0YXRpYyBjb25zdCBzdHJ1Y3QgaWVlZTgwMjExX29wcyBydGw4MTgwX29wcyA9IHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDgxOHgvcnRsODE4MC9kZXYuYy0xNjA1LVxcdC5hZGRfY2hhbmN0eCA9IGllZWU4MDIxMV9lbXVsYXRlX2FkZF9jaGFuY3R4LFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsODE4eC9ydGw4MTgwL2Rldi5jOjE2MDY6XFx0LnJlbW92ZV9jaGFuY3R4ID0gaWVlZTgwMjExX2VtdWxhdGVfcmVtb3ZlX2NoYW5jdHgsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4MTh4L3J0bDgxODAvZGV2LmMtMTYwNy1cXHQuY2hhbmdlX2NoYW5jdHggPSBpZWVlODAyMTFfZW11bGF0ZV9jaGFuZ2VfY2hhbmN0eCxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsODE4eC9ydGw4MTg3L2Rldi5jPTEzOTE9c3RhdGljIGNvbnN0IHN0cnVjdCBpZWVlODAyMTFfb3BzIHJ0bDgxODdfb3BzID0ge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsODE4eC9ydGw4MTg3L2Rldi5jLTEzOTItXFx0LmFkZF9jaGFuY3R4ID0gaWVlZTgwMjExX2VtdWxhdGVfYWRkX2NoYW5jdHgsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4MTh4L3J0bDgxODcvZGV2LmM6MTM5MzpcXHQucmVtb3ZlX2NoYW5jdHggPSBpZWVlODAyMTFfZW11bGF0ZV9yZW1vdmVfY2hhbmN0eCxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDgxOHgvcnRsODE4Ny9kZXYuYy0xMzk0LVxcdC5jaGFuZ2VfY2hhbmN0eCA9IGllZWU4MDIxMV9lbXVsYXRlX2NoYW5nZV9jaGFuY3R4LFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS9jb3JlLmM9NzU5Mz1zdGF0aWMgY29uc3Qgc3RydWN0IGllZWU4MDIxMV9vcHMgcnRsOHh4eHVfb3BzID0ge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvY29yZS5jLTc1OTQtXFx0LmFkZF9jaGFuY3R4ID0gaWVlZTgwMjExX2VtdWxhdGVfYWRkX2NoYW5jdHgsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS9jb3JlLmM6NzU5NTpcXHQucmVtb3ZlX2NoYW5jdHggPSBpZWVlODAyMTFfZW11bGF0ZV9yZW1vdmVfY2hhbmN0eCxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1L2NvcmUuYy03NTk2LVxcdC5jaGFuZ2VfY2hhbmN0eCA9IGllZWU4MDIxMV9lbXVsYXRlX2NoYW5nZV9jaGFuY3R4LFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGx3aWZpL2NvcmUuYz0xODc5PWNvbnN0IHN0cnVjdCBpZWVlODAyMTFfb3BzIHJ0bF9vcHMgPSB7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGx3aWZpL2NvcmUuYy0xODgwLVxcdC5hZGRfY2hhbmN0eCA9IGllZWU4MDIxMV9lbXVsYXRlX2FkZF9jaGFuY3R4LFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsd2lmaS9jb3JlLmM6MTg4MTpcXHQucmVtb3ZlX2NoYW5jdHggPSBpZWVlODAyMTFfZW11bGF0ZV9yZW1vdmVfY2hhbmN0eCxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bHdpZmkvY29yZS5jLTE4ODItXFx0LmNoYW5nZV9jaGFuY3R4ID0gaWVlZTgwMjExX2VtdWxhdGVfY2hhbmdlX2NoYW5jdHgsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L21hYzgwMjExLmM9OTUzPWNvbnN0IHN0cnVjdCBpZWVlODAyMTFfb3BzIHJ0d19vcHMgPSB7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9tYWM4MDIxMS5jLTk1NC1cXHQuYWRkX2NoYW5jdHggPSBpZWVlODAyMTFfZW11bGF0ZV9hZGRfY2hhbmN0eCxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L21hYzgwMjExLmM6OTU1OlxcdC5yZW1vdmVfY2hhbmN0eCA9IGllZWU4MDIxMV9lbXVsYXRlX3JlbW92ZV9jaGFuY3R4LFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvbWFjODAyMTEuYy05NTYtXFx0LmNoYW5nZV9jaGFuY3R4ID0gaWVlZTgwMjExX2VtdWxhdGVfY2hhbmdlX2NoYW5jdHgsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2NvcmUuYz03NjM3PXN0cnVjdCBydHc4OV9kZXYgKnJ0dzg5X2FsbG9jX2llZWU4MDIxMV9odyhzdHJ1Y3QgZGV2aWNlICpkZXZpY2UsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2NvcmUuYy03NjY2LVxcdFxcdG9wcy1cXHUwMDNlYWRkX2NoYW5jdHggPSBpZWVlODAyMTFfZW11bGF0ZV9hZGRfY2hhbmN0eDtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2NvcmUuYzo3NjY3OlxcdFxcdG9wcy1cXHUwMDNlcmVtb3ZlX2NoYW5jdHggPSBpZWVlODAyMTFfZW11bGF0ZV9yZW1vdmVfY2hhbmN0eDtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2NvcmUuYy03NjY4LVxcdFxcdG9wcy1cXHUwMDNlY2hhbmdlX2NoYW5jdHggPSBpZWVlODAyMTFfZW11bGF0ZV9jaGFuZ2VfY2hhbmN0eDtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JzaS9yc2lfOTF4X21hYzgwMjExLmM9MTk4Mj1zdGF0aWMgY29uc3Qgc3RydWN0IGllZWU4MDIxMV9vcHMgbWFjODAyMTFfb3BzID0ge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JzaS9yc2lfOTF4X21hYzgwMjExLmMtMTk4My1cXHQuYWRkX2NoYW5jdHggPSBpZWVlODAyMTFfZW11bGF0ZV9hZGRfY2hhbmN0eCxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yc2kvcnNpXzkxeF9tYWM4MDIxMS5jOjE5ODQ6XFx0LnJlbW92ZV9jaGFuY3R4ID0gaWVlZTgwMjExX2VtdWxhdGVfcmVtb3ZlX2NoYW5jdHgsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcnNpL3JzaV85MXhfbWFjODAyMTEuYy0xOTg1LVxcdC5jaGFuZ2VfY2hhbmN0eCA9IGllZWU4MDIxMV9lbXVsYXRlX2NoYW5nZV9jaGFuY3R4LFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3Mvc3QvY3cxMjAwL21haW4uYz0yMDU9c3RhdGljIGNvbnN0IHN0cnVjdCBpZWVlODAyMTFfb3BzIGN3MTIwMF9vcHMgPSB7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3Mvc3QvY3cxMjAwL21haW4uYy0yMDYtXFx0LmFkZF9jaGFuY3R4ID0gaWVlZTgwMjExX2VtdWxhdGVfYWRkX2NoYW5jdHgsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3Mvc3QvY3cxMjAwL21haW4uYzoyMDc6XFx0LnJlbW92ZV9jaGFuY3R4ID0gaWVlZTgwMjExX2VtdWxhdGVfcmVtb3ZlX2NoYW5jdHgsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3Mvc3QvY3cxMjAwL21haW4uYy0yMDgtXFx0LmNoYW5nZV9jaGFuY3R4ID0gaWVlZTgwMjExX2VtdWxhdGVfY2hhbmdlX2NoYW5jdHgsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy90aS93bDEyNTEvbWFpbi5jPTEzNTQ9c3RhdGljIGNvbnN0IHN0cnVjdCBpZWVlODAyMTFfb3BzIHdsMTI1MV9vcHMgPSB7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvdGkvd2wxMjUxL21haW4uYy0xMzU1LVxcdC5hZGRfY2hhbmN0eCA9IGllZWU4MDIxMV9lbXVsYXRlX2FkZF9jaGFuY3R4LFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3RpL3dsMTI1MS9tYWluLmM6MTM1NjpcXHQucmVtb3ZlX2NoYW5jdHggPSBpZWVlODAyMTFfZW11bGF0ZV9yZW1vdmVfY2hhbmN0eCxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy90aS93bDEyNTEvbWFpbi5jLTEzNTctXFx0LmNoYW5nZV9jaGFuY3R4ID0gaWVlZTgwMjExX2VtdWxhdGVfY2hhbmdlX2NoYW5jdHgsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy92aXJ0dWFsL21hYzgwMjExX2h3c2ltX21haW4uYz00MzQwPXN0YXRpYyBjb25zdCBzdHJ1Y3QgaWVlZTgwMjExX29wcyBtYWM4MDIxMV9od3NpbV9vcHMgPSB7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy92aXJ0dWFsL21hYzgwMjExX2h3c2ltX21haW4uYy00MzQ1LVxcdC5hZGRfY2hhbmN0eCA9IGllZWU4MDIxMV9lbXVsYXRlX2FkZF9jaGFuY3R4LFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3ZpcnR1YWwvbWFjODAyMTFfaHdzaW1fbWFpbi5jOjQzNDY6XFx0LnJlbW92ZV9jaGFuY3R4ID0gaWVlZTgwMjExX2VtdWxhdGVfcmVtb3ZlX2NoYW5jdHgsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvdmlydHVhbC9tYWM4MDIxMV9od3NpbV9tYWluLmMtNDM0Ny1cXHQuY2hhbmdlX2NoYW5jdHggPSBpZWVlODAyMTFfZW11bGF0ZV9jaGFuZ2VfY2hhbmN0eCxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3p5ZGFzL3pkMTIxMXJ3L3pkX21hYy5jPTEzNDg9c3RhdGljIGNvbnN0IHN0cnVjdCBpZWVlODAyMTFfb3BzIHpkX29wcyA9IHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy96eWRhcy96ZDEyMTFydy96ZF9tYWMuYy0xMzQ5LVxcdC5hZGRfY2hhbmN0eCA9IGllZWU4MDIxMV9lbXVsYXRlX2FkZF9jaGFuY3R4LFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3p5ZGFzL3pkMTIxMXJ3L3pkX21hYy5jOjEzNTA6XFx0LnJlbW92ZV9jaGFuY3R4ID0gaWVlZTgwMjExX2VtdWxhdGVfcmVtb3ZlX2NoYW5jdHgsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvenlkYXMvemQxMjExcncvemRfbWFjLmMtMTM1MS1cXHQuY2hhbmdlX2NoYW5jdHggPSBpZWVlODAyMTFfZW11bGF0ZV9jaGFuZ2VfY2hhbmN0eCxcXG4tLVxcbmluY2x1ZGUvbmV0L21hYzgwMjExLmg9ODIwND1pbnQgaWVlZTgwMjExX2VtdWxhdGVfYWRkX2NoYW5jdHgoc3RydWN0IGllZWU4MDIxMV9odyAqaHcsXFxuaW5jbHVkZS9uZXQvbWFjODAyMTEuaC04MjA1LVxcdFxcdFxcdFxcdCAgc3RydWN0IGllZWU4MDIxMV9jaGFuY3R4X2NvbmYgKmN0eCk7XFxuaW5jbHVkZS9uZXQvbWFjODAyMTEuaDo4MjA2OnZvaWQgaWVlZTgwMjExX2VtdWxhdGVfcmVtb3ZlX2NoYW5jdHgoc3RydWN0IGllZWU4MDIxMV9odyAqaHcsXFxuaW5jbHVkZS9uZXQvbWFjODAyMTEuaC04MjA3LVxcdFxcdFxcdFxcdCAgICAgIHN0cnVjdCBpZWVlODAyMTFfY2hhbmN0eF9jb25mICpjdHgpO1xcbi0tXFxubmV0L21hYzgwMjExL21haW4uYz0yODU9RVhQT1JUX1NZTUJPTChpZWVlODAyMTFfZW11bGF0ZV9hZGRfY2hhbmN0eCk7XFxubmV0L21hYzgwMjExL21haW4uYy0yODYtXFxubmV0L21hYzgwMjExL21haW4uYzoyODc6dm9pZCBpZWVlODAyMTFfZW11bGF0ZV9yZW1vdmVfY2hhbmN0eChzdHJ1Y3QgaWVlZTgwMjExX2h3ICpodyxcXG5uZXQvbWFjODAyMTEvbWFpbi5jLTI4OC1cXHRcXHRcXHRcXHQgICAgICBzdHJ1Y3QgaWVlZTgwMjExX2NoYW5jdHhfY29uZiAqY3R4KVxcbi0tXFxubmV0L21hYzgwMjExL21haW4uYy0zMDAtfVxcbm5ldC9tYWM4MDIxMS9tYWluLmM6MzAxOkVYUE9SVF9TWU1CT0woaWVlZTgwMjExX2VtdWxhdGVfcmVtb3ZlX2NoYW5jdHgpO1xcbm5ldC9tYWM4MDIxMS9tYWluLmMtMzAyLVxcbi0tXFxubmV0L21hYzgwMjExL21haW4uYz03OTg9c3RydWN0IGllZWU4MDIxMV9odyAqaWVlZTgwMjExX2FsbG9jX2h3X25tKHNpemVfdCBwcml2X2RhdGFfbGVuLFxcbi0tXFxubmV0L21hYzgwMjExL21haW4uYy04MjAtXFx0aWYgKG9wcy1cXHUwMDNlYWRkX2NoYW5jdHggPT0gaWVlZTgwMjExX2VtdWxhdGVfYWRkX2NoYW5jdHggXFx1MDAyNlxcdTAwMjZcXG5uZXQvbWFjODAyMTEvbWFpbi5jOjgyMTpcXHQgICAgb3BzLVxcdTAwM2VyZW1vdmVfY2hhbmN0eCA9PSBpZWVlODAyMTFfZW11bGF0ZV9yZW1vdmVfY2hhbmN0eCBcXHUwMDI2XFx1MDAyNlxcbm5ldC9tYWM4MDIxMS9tYWluLmMtODIyLVxcdCAgICBvcHMtXFx1MDAzZWNoYW5nZV9jaGFuY3R4ID09IGllZWU4MDIxMV9lbXVsYXRlX2NoYW5nZV9jaGFuY3R4KSB7XFxuLS1cXG5uZXQvbWFjODAyMTEvbWFpbi5jLTgyOC1cXHRcXHRpZiAoV0FSTl9PTihvcHMtXFx1MDAzZWFkZF9jaGFuY3R4ID09IGllZWU4MDIxMV9lbXVsYXRlX2FkZF9jaGFuY3R4IHx8XFxubmV0L21hYzgwMjExL21haW4uYzo4Mjk6XFx0XFx0XFx0ICAgIG9wcy1cXHUwMDNlcmVtb3ZlX2NoYW5jdHggPT0gaWVlZTgwMjExX2VtdWxhdGVfcmVtb3ZlX2NoYW5jdHggfHxcXG5uZXQvbWFjODAyMTEvbWFpbi5jLTgzMC1cXHRcXHRcXHQgICAgb3BzLVxcdTAwM2VjaGFuZ2VfY2hhbmN0eCA9PSBpZWVlODAyMTFfZW11bGF0ZV9jaGFuZ2VfY2hhbmN0eCkpXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTI5VDEwOjIyOjMyLjQ0OTYwNDgxNloiLCJTZXEiOjUsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy43LWZsYXNoIiwiRHVyYXRpb24iOjE1ODY0ODk5MzgxLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkFuYWx5emluZyBtYWM4MDIxMV9od3NpbSdzIENoYW5uZWwgQ29udGV4dCBIYW5kbGluZyoqXG5cbk9rYXksIHNvIEknbSBsb29raW5nIGF0IGBtYWM4MDIxMV9od3NpbWAgYW5kIG15IGV5ZSBpcyBkcmF3biB0byBpdHMgY2hhbm5lbCBjb250ZXh0IGhhbmRsaW5nLiBTcGVjaWZpY2FsbHksIEkgc2VlIGl0J3MgdXNpbmcgYGllZWU4MDIxMV9lbXVsYXRlX3JlbW92ZV9jaGFuY3R4YCB2aWEgdGhlIGZ1bmN0aW9uIHBvaW50ZXJzIGluIGBtYWM4MDIxMV9od3NpbV9tYWluLmNgOiBgLmFkZF9jaGFuY3R4YCwgYC5yZW1vdmVfY2hhbmN0eGAsIGFuZCBgLmNoYW5nZV9jaGFuY3R4YC4gIFJpZ2h0LCBzbyBgaHdzaW1gIGlzIGZyZXF1ZW50bHkgbGV2ZXJhZ2VkIGJ5IHN5emthbGxlciBmb3IgdGVzdGluZyB0aGUgd2lmaSwgbmw4MDIxMSwgYW5kIG1hYzgwMjExIHN0YWNrLCBzbyB1bmRlcnN0YW5kaW5nIGhvdyBpdCBoYW5kbGVzIGNoYW5uZWwgY29udGV4dHMgaXMgcHJldHR5IGltcG9ydGFudCBpbiB0aGUgZ3JhbmQgc2NoZW1lIG9mIHRoaW5ncy5cblxuSSBzaG91bGQgcHJvYmFibHkgZGl2ZSBpbnRvIGBuZXQvbWFjODAyMTEvbWFpbi5jYCBub3cgdG8gZ2V0IGEgYmV0dGVyIGhhbmRsZSBvbiB0aGUgYnJvYWRlciBjb250ZXh0IGFyb3VuZCBsaW5lcyAyNzAtMzIwLiBUaGF0IHNob3VsZCBnaXZlIG1lIHRoZSBiYWNrZ3JvdW5kIG5lY2Vzc2FyeSB0byB1bmRlcnN0YW5kIGhvdyB0aGlzIGVtdWxhdGlvbiBmdW5jdGlvbiB0aWVzIGludG8gdGhlIGxhcmdlciBmcmFtZXdvcmsuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjEzMDkxLCJPdXRwdXRUb2tlbnMiOjQwLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MTkyLCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTI5VDEwOjIyOjQ4LjMxNDUwNzA0N1oiLCJTZXEiOjYsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6InJlYWQtZmlsZSIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjEwNTE2MCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkZpbGVcIjogXCJuZXQvbWFjODAyMTEvbWFpbi5jXCIsXG4gIFwiRmlyc3RMaW5lXCI6IDI3MCxcbiAgXCJMaW5lQ291bnRcIjogNTBcbn0iLCJSZXN1bHRzIjoie1xuICBcIkNvbnRlbnRzXCI6IFwiIDI3MDpcXHRcXHRcXHRcXHRcXHRcXHRcXHQgICAgICAgY3R4ID8gXFx1MDAyNmN0eC1cXHUwMDNlY29uZiA6IE5VTEwpO1xcbiAyNzE6XFx0XFx0fVxcbiAyNzI6XFx0XFxuIDI3MzpcXHRcXHRXQVJOX09OKGRydl9jb25maWcobG9jYWwsIC0xLCBjaGFuZ2VkKSk7XFxuIDI3NDpcXHR9XFxuIDI3NTpcXHRcXG4gMjc2OlxcdGludCBpZWVlODAyMTFfZW11bGF0ZV9hZGRfY2hhbmN0eChzdHJ1Y3QgaWVlZTgwMjExX2h3ICpodyxcXG4gMjc3OlxcdFxcdFxcdFxcdFxcdCAgc3RydWN0IGllZWU4MDIxMV9jaGFuY3R4X2NvbmYgKmN0eClcXG4gMjc4OlxcdHtcXG4gMjc5OlxcdFxcdHN0cnVjdCBpZWVlODAyMTFfbG9jYWwgKmxvY2FsID0gaHdfdG9fbG9jYWwoaHcpO1xcbiAyODA6XFx0XFxuIDI4MTpcXHRcXHRsb2NhbC1cXHUwMDNlaHcuY29uZi5yYWRhcl9lbmFibGVkID0gY3R4LVxcdTAwM2VyYWRhcl9lbmFibGVkO1xcbiAyODI6XFx0XFxuIDI4MzpcXHRcXHRyZXR1cm4gX2llZWU4MDIxMV9od19jb25mX2NoYW4obG9jYWwsIGN0eCk7XFxuIDI4NDpcXHR9XFxuIDI4NTpcXHRFWFBPUlRfU1lNQk9MKGllZWU4MDIxMV9lbXVsYXRlX2FkZF9jaGFuY3R4KTtcXG4gMjg2OlxcdFxcbiAyODc6XFx0dm9pZCBpZWVlODAyMTFfZW11bGF0ZV9yZW1vdmVfY2hhbmN0eChzdHJ1Y3QgaWVlZTgwMjExX2h3ICpodyxcXG4gMjg4OlxcdFxcdFxcdFxcdFxcdCAgICAgIHN0cnVjdCBpZWVlODAyMTFfY2hhbmN0eF9jb25mICpjdHgpXFxuIDI4OTpcXHR7XFxuIDI5MDpcXHRcXHRzdHJ1Y3QgaWVlZTgwMjExX2xvY2FsICpsb2NhbCA9IGh3X3RvX2xvY2FsKGh3KTtcXG4gMjkxOlxcdFxcbiAyOTI6XFx0XFx0LypcXG4gMjkzOlxcdFxcdCAqIFdpdGggbm8gY29udGV4dCBsZWZ0IHRoZXJlIGlzIG5vdGhpbmcgdG8gY29uZmlndXJlOiBub3RoaW5nIGlzIG9uXFxuIDI5NDpcXHRcXHQgKiB0aGUgYWlyLCBhbmQgdGhlIG5leHQgY29udGV4dCBzZXRzIHRoZSBjaGFubmVsLiBQYXJraW5nIHRoZSByYWRpb1xcbiAyOTU6XFx0XFx0ICogb24gdGhlIGRlZmF1bHQgY2hhbm5lbCBoZXJlIG9ubHkgdG8gbW92ZSBpdCBhZ2FpbiB3aGVuIHRoZSBuZXh0XFxuIDI5NjpcXHRcXHQgKiBjb250ZXh0IGlzIGFkZGVkIGNvc3RzIGRyaXZlcnMgd2l0aG91dCBuYXRpdmUgY2hhbm5lbCBjb250ZXh0cyBhXFxuIDI5NzpcXHRcXHQgKiBmdWxsIGNoYW5uZWwgY2hhbmdlIHBlciByZXR1bmUuXFxuIDI5ODpcXHRcXHQgKi9cXG4gMjk5OlxcdFxcdGxvY2FsLVxcdTAwM2Vody5jb25mLnJhZGFyX2VuYWJsZWQgPSBmYWxzZTtcXG4gMzAwOlxcdH1cXG4gMzAxOlxcdEVYUE9SVF9TWU1CT0woaWVlZTgwMjExX2VtdWxhdGVfcmVtb3ZlX2NoYW5jdHgpO1xcbiAzMDI6XFx0XFxuIDMwMzpcXHR2b2lkIGllZWU4MDIxMV9lbXVsYXRlX2NoYW5nZV9jaGFuY3R4KHN0cnVjdCBpZWVlODAyMTFfaHcgKmh3LFxcbiAzMDQ6XFx0XFx0XFx0XFx0XFx0ICAgICAgc3RydWN0IGllZWU4MDIxMV9jaGFuY3R4X2NvbmYgKmN0eCxcXG4gMzA1OlxcdFxcdFxcdFxcdFxcdCAgICAgIHUzMiBjaGFuZ2VkKVxcbiAzMDY6XFx0e1xcbiAzMDc6XFx0XFx0c3RydWN0IGllZWU4MDIxMV9sb2NhbCAqbG9jYWwgPSBod190b19sb2NhbChodyk7XFxuIDMwODpcXHRcXG4gMzA5OlxcdFxcdGxvY2FsLVxcdTAwM2Vody5jb25mLnJhZGFyX2VuYWJsZWQgPSBjdHgtXFx1MDAzZXJhZGFyX2VuYWJsZWQ7XFxuIDMxMDpcXHRcXG4gMzExOlxcdFxcdF9pZWVlODAyMTFfaHdfY29uZl9jaGFuKGxvY2FsLCBjdHgpO1xcbiAzMTI6XFx0fVxcbiAzMTM6XFx0RVhQT1JUX1NZTUJPTChpZWVlODAyMTFfZW11bGF0ZV9jaGFuZ2VfY2hhbmN0eCk7XFxuIDMxNDpcXHRcXG4gMzE1OlxcdGludCBpZWVlODAyMTFfZW11bGF0ZV9zd2l0Y2hfdmlmX2NoYW5jdHgoc3RydWN0IGllZWU4MDIxMV9odyAqaHcsXFxuIDMxNjpcXHRcXHRcXHRcXHRcXHRcXHQgc3RydWN0IGllZWU4MDIxMV92aWZfY2hhbmN0eF9zd2l0Y2ggKnZpZnMsXFxuIDMxNzpcXHRcXHRcXHRcXHRcXHRcXHQgaW50IG5fdmlmcyxcXG4gMzE4OlxcdFxcdFxcdFxcdFxcdFxcdCBlbnVtIGllZWU4MDIxMV9jaGFuY3R4X3N3aXRjaF9tb2RlIG1vZGUpXFxuIDMxOTpcXHR7XFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTI5VDEwOjIyOjQ4LjMxNDYxNDI4N1oiLCJTZXEiOjcsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy43LWZsYXNoIiwiRHVyYXRpb24iOjU0OTc1Mjc2ODYsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IkhlcmUncyBteSBhdHRlbXB0IGF0IHN1bW1hcml6aW5nIHRoZSB0aG91Z2h0IHByb2Nlc3MsIHRhaWxvcmVkIGZvciBhbiBleHBlcnQgYXVkaWVuY2U6XG5cbioqSW52ZXN0aWdhdGluZyBLY29uZmlnIERlcGVuZGVuY2llcyBmb3IgbWFjODAyMTEgYW5kIG1hYzgwMjExX2h3c2ltKipcblxuT2theSwgc28gSSBuZWVkIHRvIGZpZ3VyZSBvdXQgZXhhY3RseSBob3cgdGhlIEtjb25maWcgc3RydWN0dXJlIGRpY3RhdGVzIHRoZSBpbmNsdXNpb24gKG9yIGV4Y2x1c2lvbikgb2YgYG1hYzgwMjExYCBhbmQgc3BlY2lmaWNhbGx5LCB0aGUgYG1hYzgwMjExX2h3c2ltYCBtb2R1bGUuIEl0J3MgdGltZSB0byBkaWcgaW50byB0aGUgcmVsZXZhbnQgS2NvbmZpZyBmaWxlcy4gSSdtIGFzc3VtaW5nIHRoZXJlJ3MgYSBkZXBlbmRlbmN5IGNoYWluIEkgbmVlZCB0byB0cmFjZS4gSSdsbCBzdGFydCBieSBzZWFyY2hpbmcgZm9yIGFueSBkaXJlY3QgcmVmZXJlbmNlcyB0byB0aG9zZSBzeW1ib2xzIOKAkyBgTUFDODAyMTFgIGFuZCBgTUFDODAyMTFfSFdTSU1gIC0gd2l0aGluIHRoZSBtYWlubGluZSBrZXJuZWwgc291cmNlLiBJIGV4cGVjdCB0byBmaW5kIHRoZXNlIHN5bWJvbHMgaW4gdGhlIGB3aXJlbGVzc2Agb3IgYG5ldGAgZGlyZWN0b3JpZXMsIG9yIG1heWJlIGV2ZW4gZGVlcGVyIGluIHRoZSB0cmVlLCBkZXBlbmRpbmcgb24gaG93IHRoZXkndmUgc3RydWN0dXJlZCB0aGlzIG1vZHVsZS4gSSdtIGxvb2tpbmcgZm9yIGNvbmRpdGlvbnMsIGBkZXBlbmRzIG9uYCwgb3IgYHNlbGVjdGAgc3RhdGVtZW50cyB0aGF0IGNvbnRyb2wgd2hldGhlciB0aGVzZSBvcHRpb25zIGdldCBidWlsdC4gSSdsbCBwYXkgY2xvc2UgYXR0ZW50aW9uIHRvIHRoZSBjb250ZXh0LCB0byBzZWUgaWYgdGhleSBhcmUgcGFydCBvZiBhIG1vcmUgZ2VuZXJhbCBhcmNoaXRlY3R1cmFsIGNvbmZpZ3VyYXRpb24gb3IgYSBtb3JlIGhhcmR3YXJlLXNwZWNpZmljIG9uZS4gVGhlIGBod3NpbWAgbW9kdWxlLCBpbiBwYXJ0aWN1bGFyLCBzaG91bGQgaGF2ZSBpdHMgb3duIHNldCBvZiBkZXBlbmRlbmNpZXMsIHdoaWNoIG1heSBpbiB0dXJuIGRlcGVuZCBvbiBvdGhlciBmZWF0dXJlcyBiZWluZyBlbmFibGVkIGZpcnN0LiBJJ2xsIG5lZWQgdG8gdW5kZXJzdGFuZCB0aGUgbG9naWMgYmVoaW5kIHRob3NlIGRlcGVuZGVuY2llcywgZm9yIGV4YW1wbGUsIGlzIHRoaXMgZGVwZW5kZW50IG9uIGFub3RoZXIgbW9kdWxlIHRoYXQgdXNlcyB0aGUgc2FtZSBmdW5jdGlvbmFsaXR5PyBJcyBpdCB0aWVkIHRvIGEgc3BlY2lmaWMgYnVpbGQgZW52aXJvbm1lbnQ/IEknbGwgcHJvYmFibHkgY3Jvc3MtcmVmZXJlbmNlIHdpdGggYW55IGV4aXN0aW5nIGRvY3VtZW50YXRpb24gb3IgbWFpbGluZyBsaXN0IGRpc2N1c3Npb25zIGFib3V0IHRoZXNlIG1vZHVsZXMgdG8gc2VlIGlmIHRoZXJlIGFyZSBhbnkga25vd24gZ290Y2hhcyBvciBjb21tb24gY29uZmlndXJhdGlvbnMuIFRoaXMgZmVlbHMgbGlrZSBhIHN0cmFpZ2h0Zm9yd2FyZCwgaWYgc2xpZ2h0bHkgdGVkaW91cywgcHJvY2Vzcy4gSXQncyBhbGwgYWJvdXQgZm9sbG93aW5nIHRoZSBLY29uZmlnIGxvZ2ljLCBvbmUgZGVwZW5kZW5jeSBhdCBhIHRpbWUsIHRvIGJ1aWxkIGEgY29tcGxldGUgcGljdHVyZSBvZiB0aGUgYnVpbGQtdGltZSBjb25maWd1cmF0aW9uLlxuXG5cbiIsIklucHV0VG9rZW5zIjoxNDQzOSwiT3V0cHV0VG9rZW5zIjozNSwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjI2LCJUb29sQ2FsbHMiOlsicmVhZC1maWxlIl19LHsiU3RhcnRlZCI6IjIwMjYtMDgtMjlUMTA6MjI6NTMuODEyMTQ0MTgzWiIsIlNlcSI6OCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjY5MTk5NTM1LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcImNvbmZpZyBNQUM4MDIxMVwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJuZXQvbWFjODAyMTFcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwibmV0L21hYzgwMjExL0tjb25maWctMS0jIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wLW9ubHlcXG5uZXQvbWFjODAyMTEvS2NvbmZpZzoyOmNvbmZpZyBNQUM4MDIxMVxcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTMtXFx0dHJpc3RhdGUgXFxcIkdlbmVyaWMgSUVFRSA4MDIuMTEgTmV0d29ya2luZyBTdGFjayAobWFjODAyMTEpXFxcIlxcbi0tXFxubmV0L21hYzgwMjExL0tjb25maWc9MTk9aWYgTUFDODAyMTEgIT0gblxcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTIwLVxcbm5ldC9tYWM4MDIxMS9LY29uZmlnOjIxOmNvbmZpZyBNQUM4MDIxMV9IQVNfUkNcXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0yMi1cXHRib29sXFxubmV0L21hYzgwMjExL0tjb25maWctMjMtXFxubmV0L21hYzgwMjExL0tjb25maWc6MjQ6Y29uZmlnIE1BQzgwMjExX1JDX01JTlNUUkVMXFxubmV0L21hYzgwMjExL0tjb25maWctMjUtXFx0Ym9vbCBcXFwiTWluc3RyZWxcXFwiIGlmIEVYUEVSVFxcbi0tXFxubmV0L21hYzgwMjExL0tjb25maWc9MzE9Y2hvaWNlXFxuLS1cXG5uZXQvbWFjODAyMTEvS2NvbmZpZy00MC1cXG5uZXQvbWFjODAyMTEvS2NvbmZpZzo0MTpjb25maWcgTUFDODAyMTFfUkNfREVGQVVMVF9NSU5TVFJFTFxcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTQyLVxcdGJvb2wgXFxcIk1pbnN0cmVsXFxcIlxcbi0tXFxubmV0L21hYzgwMjExL0tjb25maWc9NDg9ZW5kY2hvaWNlXFxubmV0L21hYzgwMjExL0tjb25maWctNDktXFxubmV0L21hYzgwMjExL0tjb25maWc6NTA6Y29uZmlnIE1BQzgwMjExX1JDX0RFRkFVTFRcXG5uZXQvbWFjODAyMTEvS2NvbmZpZy01MS1cXHRzdHJpbmdcXG4tLVxcbm5ldC9tYWM4MDIxMS9LY29uZmlnPTU3PWNvbW1lbnQgXFxcIlNvbWUgd2lyZWxlc3MgZHJpdmVycyByZXF1aXJlIGEgcmF0ZSBjb250cm9sIGFsZ29yaXRobVxcXCJcXG4tLVxcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTU5LVxcbm5ldC9tYWM4MDIxMS9LY29uZmlnOjYwOmNvbmZpZyBNQUM4MDIxMV9LVU5JVF9URVNUXFxubmV0L21hYzgwMjExL0tjb25maWctNjEtXFx0dHJpc3RhdGUgXFxcIktVbml0IHRlc3RzIGZvciBtYWM4MDIxMVxcXCIgaWYgIUtVTklUX0FMTF9URVNUU1xcbi0tXFxubmV0L21hYzgwMjExL0tjb25maWctNjktXFxubmV0L21hYzgwMjExL0tjb25maWc6NzA6Y29uZmlnIE1BQzgwMjExX01FU0hcXG5uZXQvbWFjODAyMTEvS2NvbmZpZy03MS1cXHRib29sIFxcXCJFbmFibGUgbWFjODAyMTEgbWVzaCBuZXR3b3JraW5nIHN1cHBvcnRcXFwiXFxuLS1cXG5uZXQvbWFjODAyMTEvS2NvbmZpZy03OC1cXG5uZXQvbWFjODAyMTEvS2NvbmZpZzo3OTpjb25maWcgTUFDODAyMTFfTEVEU1xcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTgwLVxcdGJvb2wgXFxcIkVuYWJsZSBMRUQgdHJpZ2dlcnNcXFwiXFxuLS1cXG5uZXQvbWFjODAyMTEvS2NvbmZpZy04Ny1cXG5uZXQvbWFjODAyMTEvS2NvbmZpZzo4ODpjb25maWcgTUFDODAyMTFfREVCVUdGU1xcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTg5LVxcdGJvb2wgXFxcIkV4cG9ydCBtYWM4MDIxMSBpbnRlcm5hbHMgaW4gRGVidWdGU1xcXCJcXG4tLVxcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTk2LVxcbm5ldC9tYWM4MDIxMS9LY29uZmlnOjk3OmNvbmZpZyBNQUM4MDIxMV9NRVNTQUdFX1RSQUNJTkdcXG5uZXQvbWFjODAyMTEvS2NvbmZpZy05OC1cXHRib29sIFxcXCJUcmFjZSBhbGwgbWFjODAyMTEgZGVidWcgbWVzc2FnZXNcXFwiXFxuLS1cXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0xMDktXFxubmV0L21hYzgwMjExL0tjb25maWc6MTEwOm1lbnVjb25maWcgTUFDODAyMTFfREVCVUdfTUVOVVxcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTExMS1cXHRib29sIFxcXCJTZWxlY3QgbWFjODAyMTEgZGVidWdnaW5nIGZlYXR1cmVzXFxcIlxcbi0tXFxubmV0L21hYzgwMjExL0tjb25maWctMTE1LVxcbm5ldC9tYWM4MDIxMS9LY29uZmlnOjExNjpjb25maWcgTUFDODAyMTFfTk9JTkxJTkVcXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0xMTctXFx0Ym9vbCBcXFwiRG8gbm90IGlubGluZSBUWC9SWCBoYW5kbGVyc1xcXCJcXG4tLVxcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTEzMS1cXG5uZXQvbWFjODAyMTEvS2NvbmZpZzoxMzI6Y29uZmlnIE1BQzgwMjExX1ZFUkJPU0VfREVCVUdcXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0xMzMtXFx0Ym9vbCBcXFwiVmVyYm9zZSBkZWJ1Z2dpbmcgb3V0cHV0XFxcIlxcbi0tXFxubmV0L21hYzgwMjExL0tjb25maWctMTQyLVxcbm5ldC9tYWM4MDIxMS9LY29uZmlnOjE0Mzpjb25maWcgTUFDODAyMTFfTUxNRV9ERUJVR1xcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTE0NC1cXHRib29sIFxcXCJWZXJib3NlIG1hbmFnZWQgTUxNRSBvdXRwdXRcXFwiXFxuLS1cXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0xNTMtXFxubmV0L21hYzgwMjExL0tjb25maWc6MTU0OmNvbmZpZyBNQUM4MDIxMV9TVEFfREVCVUdcXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0xNTUtXFx0Ym9vbCBcXFwiVmVyYm9zZSBzdGF0aW9uIGRlYnVnZ2luZ1xcXCJcXG4tLVxcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTE2Mi1cXG5uZXQvbWFjODAyMTEvS2NvbmZpZzoxNjM6Y29uZmlnIE1BQzgwMjExX0hUX0RFQlVHXFxubmV0L21hYzgwMjExL0tjb25maWctMTY0LVxcdGJvb2wgXFxcIlZlcmJvc2UgSFQgZGVidWdnaW5nXFxcIlxcbi0tXFxubmV0L21hYzgwMjExL0tjb25maWctMTc0LVxcbm5ldC9tYWM4MDIxMS9LY29uZmlnOjE3NTpjb25maWcgTUFDODAyMTFfT0NCX0RFQlVHXFxubmV0L21hYzgwMjExL0tjb25maWctMTc2LVxcdGJvb2wgXFxcIlZlcmJvc2UgT0NCIGRlYnVnZ2luZ1xcXCJcXG4tLVxcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTE4NS1cXG5uZXQvbWFjODAyMTEvS2NvbmZpZzoxODY6Y29uZmlnIE1BQzgwMjExX0lCU1NfREVCVUdcXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0xODctXFx0Ym9vbCBcXFwiVmVyYm9zZSBJQlNTIGRlYnVnZ2luZ1xcXCJcXG4tLVxcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTE5Ni1cXG5uZXQvbWFjODAyMTEvS2NvbmZpZzoxOTc6Y29uZmlnIE1BQzgwMjExX1BTX0RFQlVHXFxubmV0L21hYzgwMjExL0tjb25maWctMTk4LVxcdGJvb2wgXFxcIlZlcmJvc2UgcG93ZXJzYXZlIG1vZGUgZGVidWdnaW5nXFxcIlxcbi0tXFxubmV0L21hYzgwMjExL0tjb25maWctMjA4LVxcbm5ldC9tYWM4MDIxMS9LY29uZmlnOjIwOTpjb25maWcgTUFDODAyMTFfTVBMX0RFQlVHXFxubmV0L21hYzgwMjExL0tjb25maWctMjEwLVxcdGJvb2wgXFxcIlZlcmJvc2UgbWVzaCBwZWVyIGxpbmsgZGVidWdnaW5nXFxcIlxcbi0tXFxubmV0L21hYzgwMjExL0tjb25maWctMjIxLVxcbm5ldC9tYWM4MDIxMS9LY29uZmlnOjIyMjpjb25maWcgTUFDODAyMTFfTVBBVEhfREVCVUdcXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0yMjMtXFx0Ym9vbCBcXFwiVmVyYm9zZSBtZXNoIHBhdGggZGVidWdnaW5nXFxcIlxcbi0tXFxubmV0L21hYzgwMjExL0tjb25maWctMjM0LVxcbm5ldC9tYWM4MDIxMS9LY29uZmlnOjIzNTpjb25maWcgTUFDODAyMTFfTUhXTVBfREVCVUdcXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0yMzYtXFx0Ym9vbCBcXFwiVmVyYm9zZSBtZXNoIEhXTVAgcm91dGluZyBkZWJ1Z2dpbmdcXFwiXFxuLS1cXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0yNDctXFxubmV0L21hYzgwMjExL0tjb25maWc6MjQ4OmNvbmZpZyBNQUM4MDIxMV9NRVNIX1NZTkNfREVCVUdcXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0yNDktXFx0Ym9vbCBcXFwiVmVyYm9zZSBtZXNoIHN5bmNocm9uaXphdGlvbiBkZWJ1Z2dpbmdcXFwiXFxuLS1cXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0yNTgtXFxubmV0L21hYzgwMjExL0tjb25maWc6MjU5OmNvbmZpZyBNQUM4MDIxMV9NRVNIX0NTQV9ERUJVR1xcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTI2MC1cXHRib29sIFxcXCJWZXJib3NlIG1lc2ggY2hhbm5lbCBzd2l0Y2ggZGVidWdnaW5nXFxcIlxcbi0tXFxubmV0L21hYzgwMjExL0tjb25maWctMjY5LVxcbm5ldC9tYWM4MDIxMS9LY29uZmlnOjI3MDpjb25maWcgTUFDODAyMTFfTUVTSF9QU19ERUJVR1xcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTI3MS1cXHRib29sIFxcXCJWZXJib3NlIG1lc2ggcG93ZXJzYXZlIGRlYnVnZ2luZ1xcXCJcXG4tLVxcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTI4MC1cXG5uZXQvbWFjODAyMTEvS2NvbmZpZzoyODE6Y29uZmlnIE1BQzgwMjExX1RETFNfREVCVUdcXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0yODItXFx0Ym9vbCBcXFwiVmVyYm9zZSBURExTIGRlYnVnZ2luZ1xcXCJcXG4tLVxcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTI5Mi1cXG5uZXQvbWFjODAyMTEvS2NvbmZpZzoyOTM6Y29uZmlnIE1BQzgwMjExX0RFQlVHX0NPVU5URVJTXFxubmV0L21hYzgwMjExL0tjb25maWctMjk0LVxcdGJvb2wgXFxcIkV4dHJhIHN0YXRpc3RpY3MgZm9yIFRYL1JYIGRlYnVnZ2luZ1xcXCJcXG4tLVxcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTMwNy1cXG5uZXQvbWFjODAyMTEvS2NvbmZpZzozMDg6Y29uZmlnIE1BQzgwMjExX1NUQV9IQVNIX01BWF9TSVpFXFxubmV0L21hYzgwMjExL0tjb25maWctMzA5LVxcdGludCBcXFwiU3RhdGlvbiBoYXNoIHRhYmxlIG1heGltdW0gc2l6ZVxcXCIgaWYgTUFDODAyMTFfREVCVUdfTUVOVVxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0yOVQxMDoyMjo1My44ODEzNDc5OThaIiwiU2VxIjo5LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuNy1mbGFzaCIsIkR1cmF0aW9uIjoxMDI2NjU4NzQ2MywiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiSGVyZSdzIG15IGFuYWx5c2lzIG9mIHdoYXQgSSdtIHRoaW5raW5nLCByZW5kZXJlZCBhcyBhIGZpcnN0LXBlcnNvbiBzdW1tYXJ5LCBrZWVwaW5nIGluIG1pbmQgbXkgZmllbGQgZXhwZXJ0aXNlOlxuXG4qKkRpdmluZyBpbnRvIHRoZSBNQUM4MDIxMSBEZXBlbmRlbmNpZXMqKlxuXG5BbHJpZ2h0LCBsZXQncyBnZXQgZG93biB0byBicmFzcyB0YWNrcy4gSSBuZWVkIHRvIHVuZGVyc3RhbmQgdGhlIGRlcGVuZGVuY2llcyBvZiBgTUFDODAyMTFgIHdpdGhpbiB0aGUga2VybmVsIGNvbmZpZ3VyYXRpb24gc3lzdGVtLCBzcGVjaWZpY2FsbHkgaW4gdGhlIGBuZXQvbWFjODAyMTEvS2NvbmZpZ2AgZmlsZS4gTXkgZ29hbCBoZXJlIGlzIHRvIGdldCBhIGhhbmRsZSBvbiB3aGF0IG90aGVyIGtlcm5lbCBmZWF0dXJlcywgZHJpdmVycywgb3IgbW9kdWxlcyBhcmUgaW50cmluc2ljYWxseSBsaW5rZWQgdG8gYE1BQzgwMjExYC4gVGhpcyBpcyBpbXBvcnRhbnQgZm9yIGEgd2hvbGUgYnVuY2ggb2YgcmVhc29ucy5cblxuRmlyc3RseSwgdW5kZXJzdGFuZGluZyB0aGVzZSBkZXBlbmRlbmNpZXMgaGVscHMgbWUgZ3Jhc3AgdGhlIG92ZXJhbGwgYXJjaGl0ZWN0dXJlIG9mIHRoZSB3aXJlbGVzcyBuZXR3b3JraW5nIHN0YWNrLiBJJ2xsIG5lZWQgdGhpcyB3aGVuIEknbSBkZWJ1Z2dpbmcgZHJpdmVyIGlzc3VlcywgY29uc2lkZXJpbmcgZmVhdHVyZSBtb2RpZmljYXRpb25zLCBvciBldmFsdWF0aW5nIHRoZSBpbXBhY3Qgb2YgbmV3IHdpcmVsZXNzIHN0YW5kYXJkcy5cblxuU2Vjb25kLCBpdCBnaXZlcyBtZSBpbnNpZ2h0IGludG8gdGhlIHJlc291cmNlIG5lZWRzIG9mIGBNQUM4MDIxMWAuIElmIGl0IHJlbGllcyBoZWF2aWx5IG9uIG90aGVyIGNvbXBsZXggc3Vic3lzdGVtcywgdGhhdCB0ZWxscyBtZSBzb21ldGhpbmcgYWJvdXQgaXRzIG1lbW9yeSBmb290cHJpbnQsIHBvdGVudGlhbCBjb250ZW50aW9uIHBvaW50cywgYW5kIGdlbmVyYWwgb3ZlcmhlYWQuIFRoaXMga2luZCBvZiBrbm93bGVkZ2UgaXMgY3J1Y2lhbCBmb3Igb3B0aW1pemluZyBzeXN0ZW0gcGVyZm9ybWFuY2UsIGVzcGVjaWFsbHkgb24gcmVzb3VyY2UtY29uc3RyYWluZWQgZW1iZWRkZWQgc3lzdGVtcy5cblxuSSdtIGFsc28gaW50ZXJlc3RlZCBpbiBob3cgdGhlc2UgZGVwZW5kZW5jaWVzIG1pZ2h0IGFmZmVjdCB0aGUgcG9ydGFiaWxpdHkgYW5kIGZsZXhpYmlsaXR5IG9mIGBNQUM4MDIxMWAuIElmIGl0J3MgdGlnaHRseSBjb3VwbGVkIHdpdGggYSBjZXJ0YWluIGhhcmR3YXJlIGFic3RyYWN0aW9uIGxheWVyIChIQUwpIG9yIHNwZWNpZmljIG5ldHdvcmsgZmVhdHVyZXMsIHRoYXQgaW5mbHVlbmNlcyBob3cgZWFzaWx5IGl0IGNhbiBiZSBhZGFwdGVkIHRvIG5ldyBoYXJkd2FyZSBwbGF0Zm9ybXMgb3IgZGlmZmVyZW50IG5ldHdvcmsgY29uZmlndXJhdGlvbnMuIEkgd2FudCB0byBrZWVwIHRoaXMgaW4gbWluZC5cblxuRmluYWxseSwgSSdtIHRoaW5raW5nIGFib3V0IHBvdGVudGlhbCBidWlsZCBjb25maWd1cmF0aW9ucy4gV2hhdCBhcmUgdGhlIHZhcmlvdXMgc2NlbmFyaW9zLCB3aGVyZSBmZWF0dXJlcyBhcmUgZW5hYmxlZCBvciBkaXNhYmxlZCwgYW5kIGhvdyBhcmUgdGhlIGRlcGVuZGVuY2llcyByZXNvbHZlZD8gVGhpcyBpcyBrZXkgZm9yIGNyZWF0aW5nIGVmZmljaWVudCwgdGFpbG9yZWQga2VybmVsIGJ1aWxkcyBmb3Igc3BlY2lmaWMgdXNlIGNhc2VzLiBTbywgSSBuZWVkIHRvIGdldCB0aGlzIG1hcCBvZiBkZXBlbmRlbmNpZXMgY2xlYXIgaW4gbXkgaGVhZC4gTGV0J3Mgc2VlIHdoYXQgdGhhdCBgS2NvbmZpZ2AgZmlsZSBob2xkcyFcblxuXG4iLCJJbnB1dFRva2VucyI6MTcwNjksIk91dHB1dFRva2VucyI6MzcsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoyOSwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wOC0yOVQxMDoyMzowNC4xNDc5Mzg4MTFaIiwiU2VxIjoxMCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoicmVhZC1maWxlIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NzE4ODAsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJGaWxlXCI6IFwibmV0L21hYzgwMjExL0tjb25maWdcIixcbiAgXCJGaXJzdExpbmVcIjogMSxcbiAgXCJMaW5lQ291bnRcIjogMzBcbn0iLCJSZXN1bHRzIjoie1xuICBcIkNvbnRlbnRzXCI6IFwiICAgMTpcXHQjIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wLW9ubHlcXG4gICAyOlxcdGNvbmZpZyBNQUM4MDIxMVxcbiAgIDM6XFx0XFx0dHJpc3RhdGUgXFxcIkdlbmVyaWMgSUVFRSA4MDIuMTEgTmV0d29ya2luZyBTdGFjayAobWFjODAyMTEpXFxcIlxcbiAgIDQ6XFx0XFx0ZGVwZW5kcyBvbiBDRkc4MDIxMVxcbiAgIDU6XFx0XFx0c2VsZWN0IENSWVBUT1xcbiAgIDY6XFx0XFx0c2VsZWN0IENSWVBUT19MSUJfQUVTX0NCQ19NQUNTXFxuICAgNzpcXHRcXHRzZWxlY3QgQ1JZUFRPX0xJQl9BUkM0XFxuICAgODpcXHRcXHRzZWxlY3QgQ1JZUFRPX0FFU1xcbiAgIDk6XFx0XFx0c2VsZWN0IENSWVBUT19DQ01cXG4gIDEwOlxcdFxcdHNlbGVjdCBDUllQVE9fR0NNXFxuICAxMTpcXHRcXHRzZWxlY3QgQ1JDMzJcXG4gIDEyOlxcdFxcdGhlbHBcXG4gIDEzOlxcdFxcdCAgVGhpcyBvcHRpb24gZW5hYmxlcyB0aGUgaGFyZHdhcmUgaW5kZXBlbmRlbnQgSUVFRSA4MDIuMTFcXG4gIDE0OlxcdFxcdCAgbmV0d29ya2luZyBzdGFjay5cXG4gIDE1OlxcdFxcbiAgMTY6XFx0Y29tbWVudCBcXFwiQ0ZHODAyMTEgbmVlZHMgdG8gYmUgZW5hYmxlZCBmb3IgTUFDODAyMTFcXFwiXFxuICAxNzpcXHRcXHRkZXBlbmRzIG9uIENGRzgwMjExPW5cXG4gIDE4OlxcdFxcbiAgMTk6XFx0aWYgTUFDODAyMTEgIT0gblxcbiAgMjA6XFx0XFxuICAyMTpcXHRjb25maWcgTUFDODAyMTFfSEFTX1JDXFxuICAyMjpcXHRcXHRib29sXFxuICAyMzpcXHRcXG4gIDI0OlxcdGNvbmZpZyBNQUM4MDIxMV9SQ19NSU5TVFJFTFxcbiAgMjU6XFx0XFx0Ym9vbCBcXFwiTWluc3RyZWxcXFwiIGlmIEVYUEVSVFxcbiAgMjY6XFx0XFx0c2VsZWN0IE1BQzgwMjExX0hBU19SQ1xcbiAgMjc6XFx0XFx0ZGVmYXVsdCB5XFxuICAyODpcXHRcXHRoZWxwXFxuICAyOTpcXHRcXHQgIFRoaXMgb3B0aW9uIGVuYWJsZXMgdGhlICdtaW5zdHJlbCcgVFggcmF0ZSBjb250cm9sIGFsZ29yaXRobVxcbiAgMzA6XFx0XFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTI5VDEwOjIzOjA0LjE0ODAxMzY5MVoiLCJTZXEiOjExLCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuNy1mbGFzaCIsIkR1cmF0aW9uIjoyMzkyMjUwNzAzNSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiSGVyZSdzIG15IHN1bW1hcnksIGFzIHRob3VnaCBJJ20gdGhpbmtpbmcgaXQ6XG5cbioqRGlnZ2luZyBpbnRvIHRoZSBLY29uZmlnIC0gU3BlY2lmaWNhbGx5LCBgTUFDODAyMTFfSFdTSU1gKipcblxuQWxyaWdodCwgdGltZSB0byBkaXZlIGRlZXBlci4gSSd2ZSBnb3QgYSBzcGVjaWZpYyBxdWVzdGlvbiBhYm91dCB0aGUgYE1BQzgwMjExX0hXU0lNYCBLY29uZmlnIGVudHJ5LiBJIG5lZWQgdG8gcmVmcmVzaCBteSB1bmRlcnN0YW5kaW5nIG9mIHdoZXJlIHRoaXMgZml0cyBpbnRvIHRoZSBicm9hZGVyIHBpY3R1cmUgb2YgdGhlIHdpcmVsZXNzIHN1YnN5c3RlbS4gV2hhdCBkZXBlbmRlbmNpZXMgZG9lcyBpdCBoYXZlPyBXaGF0IGRvZXMgZW5hYmxpbmcgaXQgYWN0dWFsbHkgKmRvKiBpbiB0aGUgY29kZT8gSSBzaG91bGQgcHJvYmFibHkgY3Jvc3MtcmVmZXJlbmNlIHRoaXMgd2l0aCB0aGUgcmVsZXZhbnQgc291cmNlIGZpbGVzIGFuZCBkb2N1bWVudGF0aW9uIHJlbGF0ZWQgdG8gdGhlIG1hYzgwMjExIGZyYW1ld29yay4gSSBoYXZlIGEgaHVuY2ggaXQgaXMgcmVsYXRlZCB0byBhIHNpbXVsYXRlZCBoYXJkd2FyZSBlbnZpcm9ubWVudCBhbmQgd2FudCB0byBjb25maXJtIG15IHVuZGVyc3RhbmRpbmcuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjE3OTI2LCJPdXRwdXRUb2tlbnMiOjI1LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MjAsIlRvb2xDYWxscyI6WyJyZWFkLWZpbGUiXX0seyJTdGFydGVkIjoiMjAyNi0wOC0yOVQxMDoyMzoyOC4wNzA1MjQyMTZaIiwiU2VxIjoxMiwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjE5NjY5OTA3OTMsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiY29uZmlnIE1BQzgwMjExX0hXU0lNXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL3ZpcnR1YWwvS2NvbmZpZzoxOmNvbmZpZyBNQUM4MDIxMV9IV1NJTVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3ZpcnR1YWwvS2NvbmZpZy0yLVxcdHRyaXN0YXRlIFxcXCJTaW11bGF0ZWQgcmFkaW8gdGVzdGluZyB0b29sIGZvciBtYWM4MDIxMVxcXCJcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMjlUMTA6MjM6MzAuMDM3NTI1MTU4WiIsIlNlcSI6MTMsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy43LWZsYXNoIiwiRHVyYXRpb24iOjY2MDkzNzE5NDksIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IkhlcmUncyBteSB0YWtlIG9uIHRob3NlIHRob3VnaHRzLCB0YWlsb3JlZCBmb3IgYW4gZXhwZXJ0IGF1ZGllbmNlOlxuXG4qKkRpdmluZyBpbnRvIHRoZSBWaXJ0dWFsIFdpcmVsZXNzIERyaXZlciBDb25maWd1cmF0aW9uKipcblxuT2theSwgc28gd2UncmUgbG9va2luZyBhdCBgZHJpdmVycy9uZXQvd2lyZWxlc3MvdmlydHVhbC9LY29uZmlnYC4gUmlnaHQsIHNvIHRoaXMgaXMgd2hlcmUgdGhlIGNvcmUgY29uZmlndXJhdGlvbiBvcHRpb25zIGZvciB0aGUgdmlydHVhbCB3aXJlbGVzcyBkcml2ZXIgYXJlIGRlZmluZWQuIEknbSBpbW1lZGlhdGVseSBzY2FubmluZyBmb3IgdGhlIHVzdWFsIHN1c3BlY3RzOiB0aGUgbW9kdWxlIGVuYWJsZS9kaXNhYmxlLCBhbnkgc3BlY2lmaWMgZmVhdHVyZXMgb3IgcHJvdG9jb2wgc3VwcG9ydCB3ZSBtaWdodCB3YW50IHRvIHRvZ2dsZSBvbiBvciBvZmYgYXQgYnVpbGQgdGltZSwgYW5kLCBvZiBjb3Vyc2UsIHRoZSBkZXBlbmRlbmNpZXMgb24gb3RoZXIga2VybmVsIGNvbXBvbmVudHMuXG5cbkkgbmVlZCB0byB1bmRlcnN0YW5kIHdoYXQgYXNwZWN0cyBhcmUgY29uZmlndXJhYmxlLCBhcyB0aGlzIGRyaXZlciBpcywgYnkgZGVmaW5pdGlvbiwgYW4gYWJzdHJhY3Rpb24gbGF5ZXIuIElzIGl0IGp1c3QgYSBiYXNpYyBmcmFtZSBmb3IgdGVzdGluZyBvdGhlciB3aXJlbGVzcyBzdGFja3MsIG9yIGRvZXMgaXQgYWxzbyBleHBvc2Ugc29tZSBjb25maWd1cmFibGUgdmlydHVhbCBoYXJkd2FyZSBjaGFyYWN0ZXJpc3RpY3M/IEFyZSB0aGVyZSBzZXR0aW5ncyBmb3IgZW11bGF0aW5nIGRpZmZlcmVudCB3aXJlbGVzcyBzdGFuZGFyZHMsIG9yIGRpZmZlcmVudCByZWd1bGF0b3J5IGRvbWFpbnM/IEknbSBob3BpbmcgdG8gcXVpY2tseSBpZGVudGlmeSB0aGUgdmFyaWFibGVzIGFuZCBkZXBlbmRlbmNpZXMgdGhhdCBJJ2xsIG5lZWQgdG8gdHdlYWsgZm9yIG15IHNwZWNpZmljIHVzZSBjYXNlLCB3aGF0ZXZlciB0aGF0IG1pZ2h0IGJlIC0gbGlrZWx5IGVpdGhlciB0ZXN0aW5nIGEgd2lyZWxlc3Mgc3RhY2ssIG9yIHBvdGVudGlhbGx5IGV4dGVuZGluZyB0aGUgdmlydHVhbCBkcml2ZXIgd2l0aCBzb21lIGN1c3RvbSBmZWF0dXJlLlxuXG5JJ2xsIGJlIGxvb2tpbmcgY2FyZWZ1bGx5IGF0IHRoZSBkZWZhdWx0IHZhbHVlcywgYW55IGhlbHAgdGV4dCBwcm92aWRlZCwgYW5kLCBjcnVjaWFsbHksIGFueSByZWxhdGlvbnNoaXBzIGJldHdlZW4gdGhlIGNvbmZpZyBvcHRpb25zLiBBcmUgdGhlcmUgbXV0dWFsbHkgZXhjbHVzaXZlIG9wdGlvbnM/IEFyZSBzb21lIGZlYXR1cmVzIGRlcGVuZGVudCBvbiBvdGhlcnM/IEFuZCBhcmUgdGhlcmUgYW55IG9ic2N1cmUgc2V0dGluZ3MgYnVyaWVkIGluIHRoZXJlIHRoYXQgYXJlIGxpa2VseSB0byB0cmlwIG1lIHVwPyBJJ20gbG9va2luZyBmb3IgY2x1ZXMgYXMgdG8gaG93IHJvYnVzdCB0aGUgY29uZmlndXJhdGlvbiBpcyBhbmQgd2hldGhlciB0aGUgZGVzaWduIGlzIGZvcndhcmQgY29tcGF0aWJsZS5cblxuSW4gZXNzZW5jZSwgSSdtIHRyeWluZyB0byBnZXQgYSBtYXAgb2YgdGhlIGNvbmZpZ3VyYXRpb24gc3BhY2UgZm9yIHRoaXMgZHJpdmVyIHNvIEkgY2FuIGVmZmVjdGl2ZWx5IHVzZSBpdCBhcyBhIHRvb2wgb3IgZm91bmRhdGlvbi4gSSBhbHNvIGhvcGUgdGhlIG5hbWluZyBpcyBpbnR1aXRpdmUsIGFuZCB0aGF0IHRoZSBLY29uZmlnIGNvbnZlbnRpb25zIGhhdmUgYmVlbiBhZGhlcmVkIHRvLlxuXG5cbiIsIklucHV0VG9rZW5zIjoxODE5MywiT3V0cHV0VG9rZW5zIjozNiwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjE2LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTI5VDEwOjIzOjM2LjY0Njg5OTM0N1oiLCJTZXEiOjE0LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJyZWFkLWZpbGUiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo1NTM5MCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkZpbGVcIjogXCJkcml2ZXJzL25ldC93aXJlbGVzcy92aXJ0dWFsL0tjb25maWdcIixcbiAgXCJGaXJzdExpbmVcIjogMSxcbiAgXCJMaW5lQ291bnRcIjogMzBcbn0iLCJSZXN1bHRzIjoie1xuICBcIkNvbnRlbnRzXCI6IFwiICAgMTpcXHRjb25maWcgTUFDODAyMTFfSFdTSU1cXG4gICAyOlxcdFxcdHRyaXN0YXRlIFxcXCJTaW11bGF0ZWQgcmFkaW8gdGVzdGluZyB0b29sIGZvciBtYWM4MDIxMVxcXCJcXG4gICAzOlxcdFxcdGRlcGVuZHMgb24gTUFDODAyMTFcXG4gICA0OlxcdFxcdGhlbHBcXG4gICA1OlxcdFxcdCAgVGhpcyBkcml2ZXIgaXMgYSBkZXZlbG9wZXIgdGVzdGluZyB0b29sIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdFxcbiAgIDY6XFx0XFx0ICBJRUVFIDgwMi4xMSBuZXR3b3JraW5nIHN0YWNrIChtYWM4MDIxMSkgZnVuY3Rpb25hbGl0eS4gVGhpcyBpcyBub3RcXG4gICA3OlxcdFxcdCAgbmVlZGVkIGZvciBub3JtYWwgd2lyZWxlc3MgTEFOIHVzYWdlIGFuZCBpcyBvbmx5IGZvciB0ZXN0aW5nLiBTZWVcXG4gICA4OlxcdFxcdCAgRG9jdW1lbnRhdGlvbi9uZXR3b3JraW5nL21hYzgwMjExX2h3c2ltIGZvciBtb3JlIGluZm9ybWF0aW9uIG9uIGhvd1xcbiAgIDk6XFx0XFx0ICB0byB1c2UgdGhpcyB0b29sLlxcbiAgMTA6XFx0XFxuICAxMTpcXHRcXHQgIFRvIGNvbXBpbGUgdGhpcyBkcml2ZXIgYXMgYSBtb2R1bGUsIGNob29zZSBNIGhlcmU6IHRoZSBtb2R1bGUgd2lsbCBiZVxcbiAgMTI6XFx0XFx0ICBjYWxsZWQgbWFjODAyMTFfaHdzaW0uICBJZiB1bnN1cmUsIHNheSBOLlxcbiAgMTM6XFx0XFxuICAxNDpcXHRjb25maWcgVklSVF9XSUZJXFxuICAxNTpcXHRcXHR0cmlzdGF0ZSBcXFwiV2lmaSB3cmFwcGVyIGZvciBldGhlcm5ldCBkcml2ZXJzXFxcIlxcbiAgMTY6XFx0XFx0ZGVwZW5kcyBvbiBDRkc4MDIxMVxcbiAgMTc6XFx0XFx0aGVscFxcbiAgMTg6XFx0XFx0ICBUaGlzIG9wdGlvbiBhZGRzIHN1cHBvcnQgZm9yIGV0aGVybmV0IGNvbm5lY3Rpb25zIHRvIGFwcGVhciBhcyBpZiB0aGV5XFxuICAxOTpcXHRcXHQgIGFyZSB3aWZpIGNvbm5lY3Rpb25zIHRocm91Z2ggYSBzcGVjaWFsIHJ0bmV0bGluayBkZXZpY2UuXFxuICAyMDpcXHRcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMjlUMTA6MjM6MzYuNjQ2OTU2NTE3WiIsIlNlcSI6MTUsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy43LWZsYXNoIiwiRHVyYXRpb24iOjc0MzM2NDQ0OTQsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqSW52ZXN0aWdhdGluZyBDaGFubmVsIENvbnRleHQgUmVtb3ZhbCoqXG5cbkFscmlnaHQsIGxldCdzIGRpdmUgaW50byB0aGlzLiBJIG5lZWQgdG8gdW5kZXJzdGFuZCB0aGUgaW50ZXJhY3Rpb24gYmV0d2VlbiBjaGFubmVsIGNvbmZpZ3VyYXRpb24gYW5kIGNvbnRleHQgcmVtb3ZhbCB3aXRoaW4gdGhlIDgwMi4xMSBzdGFjay4gTXkgZmlyc3QgdGhvdWdodCBpcyB0byB0cmFjZSB0aGUgZXhlY3V0aW9uIHBhdGguIEknbSBnb2luZyB0byBzdGFydCBieSBleGFtaW5pbmcgdGhlIGZ1bmN0aW9ucyBgX2llZWU4MDIxMV9od19jb25mX2NoYW5gIGFuZCBgaWVlZTgwMjExX2VtdWxhdGVfcmVtb3ZlX2NoYW5jdHhgLiBJIG5lZWQgdG8gZmlndXJlIG91dCB3aGF0IGVhY2ggb2YgdGhlc2UgZnVuY3Rpb25zIGRvZXMgaW5kaXZpZHVhbGx5LCBhbmQgd2hlcmUgdGhlIG92ZXJsYXAgaXMgaW4gdGhlaXIgdXNlLiBUaGlzIHNlZW1zIHRvIGJlIHRoZSBjcml0aWNhbCBhcmVhIG9mIGludGVyZXN0LiBUaGVuLCBJIHdpbGwgYWxzbyB3YW50IHRvIGludmVzdGlnYXRlIHRoZSBjb2RlIGFyb3VuZCBgbmV0L21hYzgwMjExL21haW4uY2AgbGluZXMgMjQwLTI4MC4gSSBzdXNwZWN0IHRoaXMgd2lsbCBiZSB3aGVyZSB0aGUgY29yZSBsb2dpYyByZWxhdGVkIHRvIHRoZXNlIGNoYW5uZWwgbWFuYWdlbWVudCBvcGVyYXRpb25zIHdpbGwgYmUuIEJ5IGV4YW1pbmluZyB0aGVzZSBmdW5jdGlvbnMgYW5kIHRoZSBzdXJyb3VuZGluZyBjb250ZXh0LCBJIHNob3VsZCBiZSBhYmxlIHRvIGZvcm0gYSBjbGVhciBwaWN0dXJlIG9mIGhvdyBjaGFubmVsIGNvbnRleHRzIGFyZSBtYW5hZ2VkIGFuZCwgbW9yZSBzcGVjaWZpY2FsbHksIHJlbW92ZWQuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjE4OTE4LCJPdXRwdXRUb2tlbnMiOjQwLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6NzMsIlRvb2xDYWxscyI6WyJyZWFkLWZpbGUiXX0seyJTdGFydGVkIjoiMjAyNi0wOC0yOVQxMDoyMzo0NC4wODA2MDQzNTFaIiwiU2VxIjoxNiwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoicmVhZC1maWxlIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MTE2NDUwLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRmlsZVwiOiBcIm5ldC9tYWM4MDIxMS9tYWluLmNcIixcbiAgXCJGaXJzdExpbmVcIjogMjQwLFxuICBcIkxpbmVDb3VudFwiOiA1MFxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiQ29udGVudHNcIjogXCIgMjQwOlxcdH1cXG4gMjQxOlxcdFxcbiAyNDI6XFx0aW50IGllZWU4MDIxMV9od19jb25mX2NoYW4oc3RydWN0IGllZWU4MDIxMV9sb2NhbCAqbG9jYWwpXFxuIDI0MzpcXHR7XFxuIDI0NDpcXHRcXHRzdHJ1Y3QgaWVlZTgwMjExX2NoYW5jdHggKmN0eDtcXG4gMjQ1OlxcdFxcbiAyNDY6XFx0XFx0Y3R4ID0gbGlzdF9maXJzdF9lbnRyeV9vcl9udWxsKFxcdTAwMjZsb2NhbC1cXHUwMDNlY2hhbmN0eF9saXN0LFxcbiAyNDc6XFx0XFx0XFx0XFx0XFx0ICAgICAgIHN0cnVjdCBpZWVlODAyMTFfY2hhbmN0eCxcXG4gMjQ4OlxcdFxcdFxcdFxcdFxcdCAgICAgICBsaXN0KTtcXG4gMjQ5OlxcdFxcbiAyNTA6XFx0XFx0cmV0dXJuIF9pZWVlODAyMTFfaHdfY29uZl9jaGFuKGxvY2FsLCBjdHggPyBcXHUwMDI2Y3R4LVxcdTAwM2Vjb25mIDogTlVMTCk7XFxuIDI1MTpcXHR9XFxuIDI1MjpcXHRcXG4gMjUzOlxcdHZvaWQgaWVlZTgwMjExX2h3X2NvbmZfaW5pdChzdHJ1Y3QgaWVlZTgwMjExX2xvY2FsICpsb2NhbClcXG4gMjU0OlxcdHtcXG4gMjU1OlxcdFxcdHUzMiBjaGFuZ2VkID0gfihJRUVFODAyMTFfQ09ORl9DSEFOR0VfQ0hBTk5FTCB8XFxuIDI1NjpcXHRcXHRcXHRcXHRJRUVFODAyMTFfQ09ORl9DSEFOR0VfUE9XRVIgfFxcbiAyNTc6XFx0XFx0XFx0XFx0SUVFRTgwMjExX0NPTkZfQ0hBTkdFX1NNUFMpO1xcbiAyNTg6XFx0XFxuIDI1OTpcXHRcXHRpZiAoV0FSTl9PTighbG9jYWwtXFx1MDAzZW9wZW5fY291bnQpKVxcbiAyNjA6XFx0XFx0XFx0cmV0dXJuO1xcbiAyNjE6XFx0XFxuIDI2MjpcXHRcXHRpZiAobG9jYWwtXFx1MDAzZWVtdWxhdGVfY2hhbmN0eCkge1xcbiAyNjM6XFx0XFx0XFx0c3RydWN0IGllZWU4MDIxMV9jaGFuY3R4ICpjdHg7XFxuIDI2NDpcXHRcXG4gMjY1OlxcdFxcdFxcdGN0eCA9IGxpc3RfZmlyc3RfZW50cnlfb3JfbnVsbChcXHUwMDI2bG9jYWwtXFx1MDAzZWNoYW5jdHhfbGlzdCxcXG4gMjY2OlxcdFxcdFxcdFxcdFxcdFxcdCAgICAgICBzdHJ1Y3QgaWVlZTgwMjExX2NoYW5jdHgsXFxuIDI2NzpcXHRcXHRcXHRcXHRcXHRcXHQgICAgICAgbGlzdCk7XFxuIDI2ODpcXHRcXG4gMjY5OlxcdFxcdFxcdGNoYW5nZWQgfD0gaWVlZTgwMjExX2NhbGNfaHdfY29uZl9jaGFuKGxvY2FsLFxcbiAyNzA6XFx0XFx0XFx0XFx0XFx0XFx0XFx0ICAgICAgIGN0eCA/IFxcdTAwMjZjdHgtXFx1MDAzZWNvbmYgOiBOVUxMKTtcXG4gMjcxOlxcdFxcdH1cXG4gMjcyOlxcdFxcbiAyNzM6XFx0XFx0V0FSTl9PTihkcnZfY29uZmlnKGxvY2FsLCAtMSwgY2hhbmdlZCkpO1xcbiAyNzQ6XFx0fVxcbiAyNzU6XFx0XFxuIDI3NjpcXHRpbnQgaWVlZTgwMjExX2VtdWxhdGVfYWRkX2NoYW5jdHgoc3RydWN0IGllZWU4MDIxMV9odyAqaHcsXFxuIDI3NzpcXHRcXHRcXHRcXHRcXHQgIHN0cnVjdCBpZWVlODAyMTFfY2hhbmN0eF9jb25mICpjdHgpXFxuIDI3ODpcXHR7XFxuIDI3OTpcXHRcXHRzdHJ1Y3QgaWVlZTgwMjExX2xvY2FsICpsb2NhbCA9IGh3X3RvX2xvY2FsKGh3KTtcXG4gMjgwOlxcdFxcbiAyODE6XFx0XFx0bG9jYWwtXFx1MDAzZWh3LmNvbmYucmFkYXJfZW5hYmxlZCA9IGN0eC1cXHUwMDNlcmFkYXJfZW5hYmxlZDtcXG4gMjgyOlxcdFxcbiAyODM6XFx0XFx0cmV0dXJuIF9pZWVlODAyMTFfaHdfY29uZl9jaGFuKGxvY2FsLCBjdHgpO1xcbiAyODQ6XFx0fVxcbiAyODU6XFx0RVhQT1JUX1NZTUJPTChpZWVlODAyMTFfZW11bGF0ZV9hZGRfY2hhbmN0eCk7XFxuIDI4NjpcXHRcXG4gMjg3OlxcdHZvaWQgaWVlZTgwMjExX2VtdWxhdGVfcmVtb3ZlX2NoYW5jdHgoc3RydWN0IGllZWU4MDIxMV9odyAqaHcsXFxuIDI4ODpcXHRcXHRcXHRcXHRcXHQgICAgICBzdHJ1Y3QgaWVlZTgwMjExX2NoYW5jdHhfY29uZiAqY3R4KVxcbiAyODk6XFx0e1xcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0yOVQxMDoyMzo0NC4wODA3MjI2MDFaIiwiU2VxIjoxNywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjctZmxhc2giLCJEdXJhdGlvbiI6NTczODY0NjI2MywiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiT2theSwgaGVyZSdzIG15IGludGVycHJldGF0aW9uIG9mIHRob3NlIHRob3VnaHRzLCBzdW1tYXJpemVkIGZyb20gYW4gZXhwZXJ0J3MgcGVyc3BlY3RpdmU6XG5cbioqSW52ZXN0aWdhdGluZyBDaGFubmVsIENvbnRleHQgUmVtb3ZhbCBpbiBtYWM4MDIxMSoqXG5cbkFscmlnaHQsIHNvIEknbSBsb29raW5nIGludG8gdGhlIGNoYW5uZWwgY29udGV4dCByZW1vdmFsIHJvdXRpbmVzIHdpdGhpbiBtYWM4MDIxMS4gU3BlY2lmaWNhbGx5LCBJIG5lZWQgdG8gdW5kZXJzdGFuZCB0aGUgY2FsbCBwYXRocyB0aGF0IGxlYWQgdG8gdGhlIGByZW1vdmVfY2hhbmN0eGAgY2FsbGJhY2sgb3IgdGhlIGBpZWVlODAyMTFfZW11bGF0ZV9yZW1vdmVfY2hhbmN0eGAgZnVuY3Rpb24uIEkgbmVlZCB0byB0cmFjZSBob3cgdGhlc2UgZnVuY3Rpb25zIGFyZSBiZWluZyBpbnZva2VkLiBJIG5lZWQgdG8gdW5kZXJzdGFuZCB0aGUgc2NlbmFyaW9zIGFuZCBjb25kaXRpb25zIHRoYXQgdHJpZ2dlciB0aGVtLCBhbmQsIGJ5IGV4dGVuc2lvbiwgZW5zdXJlIHRoYXQgY29udGV4dCByZW1vdmFsIGlzIGhhcHBlbmluZyBjb3JyZWN0bHkgYW5kIGVmZmljaWVudGx5LiBJJ20gZm9jdXNpbmcgb24gdGhlIGludGVyYWN0aW9uIGJldHdlZW4gbWFjODAyMTEgYW5kIHRoZSBkcml2ZXIuIFdoYXQgYXJlIHRoZSB0cmlnZ2Vycz8gV2hhdCBhcmUgdGhlIGltcGxpY2F0aW9ucz8gTGV0J3MgZmlndXJlIHRoaXMgb3V0LiBJJ2xsIG5lZWQgdG8gY2FyZWZ1bGx5IGV4YW1pbmUgdGhlIGNvZGUgZmxvdyBhbmQgdGhlIGRhdGEgc3RydWN0dXJlcyBpbnZvbHZlZCB0byBnZXQgYSBjb21wbGV0ZSBwaWN0dXJlLiBUaGlzIGlzIGtleSB0byBlbnN1cmluZyB0aGF0IHRoZSB3aXJlbGVzcyBzdGFjayBiZWhhdmVzIGFzIGV4cGVjdGVkLlxuXG5cbiIsIklucHV0VG9rZW5zIjoyMDA4MiwiT3V0cHV0VG9rZW5zIjozMiwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjM5LCJUb29sQ2FsbHMiOlsicmVhZC1maWxlIl19LHsiU3RhcnRlZCI6IjIwMjYtMDgtMjlUMTA6MjM6NDkuODE5MzcxNjU0WiIsIlNlcSI6MTgsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo1MTIzNzYwNiwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJyZW1vdmVfY2hhbmN0eFwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJuZXQvbWFjODAyMTFcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwibmV0L21hYzgwMjExL2NoYW4uYz0xMDgwPXN0YXRpYyB2b2lkIGllZWU4MDIxMV9kZWxfY2hhbmN0eChzdHJ1Y3QgaWVlZTgwMjExX2xvY2FsICpsb2NhbCxcXG4tLVxcbm5ldC9tYWM4MDIxMS9jaGFuLmMtMTA4NS1cXG5uZXQvbWFjODAyMTEvY2hhbi5jOjEwODY6XFx0ZHJ2X3JlbW92ZV9jaGFuY3R4KGxvY2FsLCBjdHgpO1xcbm5ldC9tYWM4MDIxMS9jaGFuLmMtMTA4Ny1cXG4tLVxcbm5ldC9tYWM4MDIxMS9kcml2ZXItb3BzLmg9MTAxND1zdGF0aWMgaW5saW5lIGludCBkcnZfYWRkX2NoYW5jdHgoc3RydWN0IGllZWU4MDIxMV9sb2NhbCAqbG9jYWwsXFxuLS1cXG5uZXQvbWFjODAyMTEvZHJpdmVyLW9wcy5oLTEwMzEtXFxubmV0L21hYzgwMjExL2RyaXZlci1vcHMuaDoxMDMyOnN0YXRpYyBpbmxpbmUgdm9pZCBkcnZfcmVtb3ZlX2NoYW5jdHgoc3RydWN0IGllZWU4MDIxMV9sb2NhbCAqbG9jYWwsXFxubmV0L21hYzgwMjExL2RyaXZlci1vcHMuaC0xMDMzLVxcdFxcdFxcdFxcdCAgICAgIHN0cnVjdCBpZWVlODAyMTFfY2hhbmN0eCAqY3R4KVxcbi0tXFxubmV0L21hYzgwMjExL2RyaXZlci1vcHMuaC0xMDQwLVxcbm5ldC9tYWM4MDIxMS9kcml2ZXItb3BzLmg6MTA0MTpcXHR0cmFjZV9kcnZfcmVtb3ZlX2NoYW5jdHgobG9jYWwsIGN0eCk7XFxubmV0L21hYzgwMjExL2RyaXZlci1vcHMuaDoxMDQyOlxcdGlmIChsb2NhbC1cXHUwMDNlb3BzLVxcdTAwM2VyZW1vdmVfY2hhbmN0eClcXG5uZXQvbWFjODAyMTEvZHJpdmVyLW9wcy5oOjEwNDM6XFx0XFx0bG9jYWwtXFx1MDAzZW9wcy1cXHUwMDNlcmVtb3ZlX2NoYW5jdHgoXFx1MDAyNmxvY2FsLVxcdTAwM2VodywgXFx1MDAyNmN0eC1cXHUwMDNlY29uZik7XFxubmV0L21hYzgwMjExL2RyaXZlci1vcHMuaC0xMDQ0LVxcdHRyYWNlX2Rydl9yZXR1cm5fdm9pZChsb2NhbCk7XFxuLS1cXG5uZXQvbWFjODAyMTEvbWFpbi5jPTI4NT1FWFBPUlRfU1lNQk9MKGllZWU4MDIxMV9lbXVsYXRlX2FkZF9jaGFuY3R4KTtcXG5uZXQvbWFjODAyMTEvbWFpbi5jLTI4Ni1cXG5uZXQvbWFjODAyMTEvbWFpbi5jOjI4Nzp2b2lkIGllZWU4MDIxMV9lbXVsYXRlX3JlbW92ZV9jaGFuY3R4KHN0cnVjdCBpZWVlODAyMTFfaHcgKmh3LFxcbm5ldC9tYWM4MDIxMS9tYWluLmMtMjg4LVxcdFxcdFxcdFxcdCAgICAgIHN0cnVjdCBpZWVlODAyMTFfY2hhbmN0eF9jb25mICpjdHgpXFxuLS1cXG5uZXQvbWFjODAyMTEvbWFpbi5jLTMwMC19XFxubmV0L21hYzgwMjExL21haW4uYzozMDE6RVhQT1JUX1NZTUJPTChpZWVlODAyMTFfZW11bGF0ZV9yZW1vdmVfY2hhbmN0eCk7XFxubmV0L21hYzgwMjExL21haW4uYy0zMDItXFxuLS1cXG5uZXQvbWFjODAyMTEvbWFpbi5jPTc5OD1zdHJ1Y3QgaWVlZTgwMjExX2h3ICppZWVlODAyMTFfYWxsb2NfaHdfbm0oc2l6ZV90IHByaXZfZGF0YV9sZW4sXFxuLS1cXG5uZXQvbWFjODAyMTEvbWFpbi5jLTgyMC1cXHRpZiAob3BzLVxcdTAwM2VhZGRfY2hhbmN0eCA9PSBpZWVlODAyMTFfZW11bGF0ZV9hZGRfY2hhbmN0eCBcXHUwMDI2XFx1MDAyNlxcbm5ldC9tYWM4MDIxMS9tYWluLmM6ODIxOlxcdCAgICBvcHMtXFx1MDAzZXJlbW92ZV9jaGFuY3R4ID09IGllZWU4MDIxMV9lbXVsYXRlX3JlbW92ZV9jaGFuY3R4IFxcdTAwMjZcXHUwMDI2XFxubmV0L21hYzgwMjExL21haW4uYy04MjItXFx0ICAgIG9wcy1cXHUwMDNlY2hhbmdlX2NoYW5jdHggPT0gaWVlZTgwMjExX2VtdWxhdGVfY2hhbmdlX2NoYW5jdHgpIHtcXG4tLVxcbm5ldC9tYWM4MDIxMS9tYWluLmMtODI4LVxcdFxcdGlmIChXQVJOX09OKG9wcy1cXHUwMDNlYWRkX2NoYW5jdHggPT0gaWVlZTgwMjExX2VtdWxhdGVfYWRkX2NoYW5jdHggfHxcXG5uZXQvbWFjODAyMTEvbWFpbi5jOjgyOTpcXHRcXHRcXHQgICAgb3BzLVxcdTAwM2VyZW1vdmVfY2hhbmN0eCA9PSBpZWVlODAyMTFfZW11bGF0ZV9yZW1vdmVfY2hhbmN0eCB8fFxcbm5ldC9tYWM4MDIxMS9tYWluLmMtODMwLVxcdFxcdFxcdCAgICBvcHMtXFx1MDAzZWNoYW5nZV9jaGFuY3R4ID09IGllZWU4MDIxMV9lbXVsYXRlX2NoYW5nZV9jaGFuY3R4KSlcXG4tLVxcbm5ldC9tYWM4MDIxMS9tYWluLmMtODMyLVxcdFxcdGlmIChXQVJOX09OKCFvcHMtXFx1MDAzZWFkZF9jaGFuY3R4IHx8XFxubmV0L21hYzgwMjExL21haW4uYzo4MzM6XFx0XFx0XFx0ICAgICFvcHMtXFx1MDAzZXJlbW92ZV9jaGFuY3R4IHx8XFxubmV0L21hYzgwMjExL21haW4uYy04MzQtXFx0XFx0XFx0ICAgICFvcHMtXFx1MDAzZWNoYW5nZV9jaGFuY3R4IHx8XFxuLS1cXG5uZXQvbWFjODAyMTEvdHJhY2UuaD0xNjkwPURFRklORV9FVkVOVChsb2NhbF9jaGFuY3R4LCBkcnZfYWRkX2NoYW5jdHgsXFxuLS1cXG5uZXQvbWFjODAyMTEvdHJhY2UuaC0xNjk1LVxcbm5ldC9tYWM4MDIxMS90cmFjZS5oOjE2OTY6REVGSU5FX0VWRU5UKGxvY2FsX2NoYW5jdHgsIGRydl9yZW1vdmVfY2hhbmN0eCxcXG5uZXQvbWFjODAyMTEvdHJhY2UuaC0xNjk3LVxcdFRQX1BST1RPKHN0cnVjdCBpZWVlODAyMTFfbG9jYWwgKmxvY2FsLFxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0yOVQxMDoyMzo0OS44NzA2MTU5OVoiLCJTZXEiOjE5LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuNy1mbGFzaCIsIkR1cmF0aW9uIjozODI4MTg4NzgwLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJIZXJlJ3MgbXkgYXR0ZW1wdCBhdCBzdW1tYXJpemluZyB0aGUgdGhvdWdodCBwcm9jZXNzLCB0YWlsb3JlZCBmb3IgYW4gZXhwZXJ0IGF1ZGllbmNlOlxuXG4qKkRpdmluZyBpbnRvIGBpZWVlODAyMTFfZGVsX2NoYW5jdHhgKipcblxuQWxyaWdodCwgbGV0J3MgZGlzc2VjdCBgaWVlZTgwMjExX2RlbF9jaGFuY3R4YCB3aXRoaW4gYG5ldC9tYWM4MDIxMS9jaGFuLmNgLiBJIG5lZWQgdG8gdW5kZXJzdGFuZCB0aGUgaW1wbGljYXRpb25zIG9mIHRoaXMgZnVuY3Rpb24uIE15IGltbWVkaWF0ZSBhc3N1bXB0aW9uIGlzIGl0J3MgcmVzcG9uc2libGUgZm9yIHRoZSBjbGVhbnVwIHByb2Nlc3MgYXNzb2NpYXRlZCB3aXRoIGEgY2hhbm5lbCBjb250ZXh0LiBJJ20gZ3Vlc3NpbmcgdGhpcyBmdW5jdGlvbiBpcyBjZW50cmFsIHRvIG1hbmFnaW5nIGNoYW5uZWwtcmVsYXRlZCByZXNvdXJjZXMsIHByb2JhYmx5IHdoZW4gYSBjaGFubmVsIGlzIGJlaW5nIGRpc2FibGVkIG9yIGRlcmVnaXN0ZXJlZC4gSSBuZWVkIHRvIGZpZ3VyZSBvdXQgd2hhdCBraW5kIG9mIHJlc291cmNlcyBpdCdzIGNsZWFuaW5nIHVwLCBhbmQgd2hldGhlciB0aGVyZSBhcmUgYW55IHN1YnRsZXRpZXMgdG8gYmUgYXdhcmUgb2YsIGxpa2UgcG90ZW50aWFsIHJhY2UgY29uZGl0aW9ucyBvciBsb2NraW5nIGlzc3VlcywgcGFydGljdWxhcmx5IHdpdGhpbiB0aGUgY29uY3VycmVuY3kgbW9kZWwgb2YgbWFjODAyMTEuIEFyZSB3ZSB0YWxraW5nIGFib3V0IGZyZWVpbmcgbWVtb3J5LCBkZXJlZmVyZW5jaW5nIHBvaW50ZXJzLCBhbmQgcG90ZW50aWFsbHkgZGVhY3RpdmF0aW5nIGhhcmR3YXJlIGNvbXBvbmVudHMgdGllZCB0byB0aGF0IHNwZWNpZmljIGNoYW5uZWw/IERvZXMgaXQgcmVtb3ZlIHRoZSBjb250ZXh0IGZyb20gYSBjZW50cmFsIGRhdGEgc3RydWN0dXJlLCBzdWNoIGFzIGEgaGFzaCB0YWJsZSwgd2hlcmUgYWxsIHRoZSBjaGFubmVsIGNvbnRleHRzIGFyZSBoZWxkPyBUaGUgbWFpbiBvYmplY3RpdmUgaXMgdG8gY29tcGxldGVseSBkZS1hbGxvY2F0ZSB0aGUgcmVzb3VyY2VzIGFzc29jaWF0ZWQgd2l0aCBjaGFubmVsIGNvbnRleHQuIEtub3dpbmcgdGhlIGludGVybmFscyBvZiBob3cgdGhlIGNoYW5uZWwgY29udGV4dHMgYXJlIGhhbmRsZWQgaXMgY3JpdGljYWwgZm9yIGlkZW50aWZ5aW5nIHBvdGVudGlhbCBtZW1vcnkgbGVha3MgYW5kIGVuc3VyaW5nIHRoZSBzeXN0ZW0gaXMgcm9idXN0LiBTcGVjaWZpY2FsbHksIEknbSBsb29raW5nIGZvciBob3cgaXQgaGFuZGxlcyByZWZlcmVuY2UgY291bnRzLCBhc3NvY2lhdGVkIHRpbWVycywgYW5kIGFueSBwb3RlbnRpYWwgc2lkZSBlZmZlY3RzIG9uIG90aGVyIHJlbGF0ZWQgc3RydWN0dXJlcywgbGlrZSB0aGUgb3BlcmF0aW5nIEJTUyBsaXN0IG9yIHNjYW4gY29udGV4dHMuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjIxNTY2LCJPdXRwdXRUb2tlbnMiOjQxLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MzUsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDgtMjlUMTA6MjM6NTMuNjk4ODA3MDVaIiwiU2VxIjoyMCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoicmVhZC1maWxlIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MTcyODcwLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRmlsZVwiOiBcIm5ldC9tYWM4MDIxMS9jaGFuLmNcIixcbiAgXCJGaXJzdExpbmVcIjogMTA3MCxcbiAgXCJMaW5lQ291bnRcIjogNDBcbn0iLCJSZXN1bHRzIjoie1xuICBcIkNvbnRlbnRzXCI6IFwiMTA3MDpcXHRcXHQvKlxcbjEwNzE6XFx0XFx0ICogV2UgaWdub3JlZCBhIGRyaXZlciBlcnJvciwgc2VlIF9pZWVlODAyMTFfc2V0X2FjdGl2ZV9saW5rcyBhbmQvb3JcXG4xMDcyOlxcdFxcdCAqIGllZWU4MDIxMV9uYW5fc2V0X2xvY2FsX3NjaGVkXFxuMTA3MzpcXHRcXHQgKi9cXG4xMDc0OlxcdFxcdFdBUk5fT05fT05DRShlcnIgXFx1MDAyNlxcdTAwMjYgIWxvY2FsLVxcdTAwM2Vpbl9yZWNvbmZpZyk7XFxuMTA3NTpcXHRcXG4xMDc2OlxcdFxcdGxpc3RfYWRkX3JjdShcXHUwMDI2Y3R4LVxcdTAwM2VsaXN0LCBcXHUwMDI2bG9jYWwtXFx1MDAzZWNoYW5jdHhfbGlzdCk7XFxuMTA3NzpcXHRcXHRyZXR1cm4gY3R4O1xcbjEwNzg6XFx0fVxcbjEwNzk6XFx0XFxuMTA4MDpcXHRzdGF0aWMgdm9pZCBpZWVlODAyMTFfZGVsX2NoYW5jdHgoc3RydWN0IGllZWU4MDIxMV9sb2NhbCAqbG9jYWwsXFxuMTA4MTpcXHRcXHRcXHRcXHRcXHQgIHN0cnVjdCBpZWVlODAyMTFfY2hhbmN0eCAqY3R4LFxcbjEwODI6XFx0XFx0XFx0XFx0XFx0ICBib29sIHNraXBfaWRsZV9yZWNhbGMpXFxuMTA4MzpcXHR7XFxuMTA4NDpcXHRcXHRsb2NrZGVwX2Fzc2VydF93aXBoeShsb2NhbC1cXHUwMDNlaHcud2lwaHkpO1xcbjEwODU6XFx0XFxuMTA4NjpcXHRcXHRkcnZfcmVtb3ZlX2NoYW5jdHgobG9jYWwsIGN0eCk7XFxuMTA4NzpcXHRcXG4xMDg4OlxcdFxcdGlmICghc2tpcF9pZGxlX3JlY2FsYylcXG4xMDg5OlxcdFxcdFxcdGllZWU4MDIxMV9yZWNhbGNfaWRsZShsb2NhbCk7XFxuMTA5MDpcXHRcXG4xMDkxOlxcdFxcdGllZWU4MDIxMV9yZW1vdmVfd2JyZihsb2NhbCwgXFx1MDAyNmN0eC1cXHUwMDNlY29uZi5kZWYpO1xcbjEwOTI6XFx0fVxcbjEwOTM6XFx0XFxuMTA5NDpcXHR2b2lkIGllZWU4MDIxMV9mcmVlX2NoYW5jdHgoc3RydWN0IGllZWU4MDIxMV9sb2NhbCAqbG9jYWwsXFxuMTA5NTpcXHRcXHRcXHRcXHQgICAgc3RydWN0IGllZWU4MDIxMV9jaGFuY3R4ICpjdHgsXFxuMTA5NjpcXHRcXHRcXHRcXHQgICAgYm9vbCBza2lwX2lkbGVfcmVjYWxjKVxcbjEwOTc6XFx0e1xcbjEwOTg6XFx0XFx0bG9ja2RlcF9hc3NlcnRfd2lwaHkobG9jYWwtXFx1MDAzZWh3LndpcGh5KTtcXG4xMDk5OlxcdFxcbjExMDA6XFx0XFx0V0FSTl9PTl9PTkNFKGllZWU4MDIxMV9jaGFuY3R4X3JlZmNvdW50KGxvY2FsLCBjdHgpICE9IDApO1xcbjExMDE6XFx0XFxuMTEwMjpcXHRcXHRsaXN0X2RlbF9yY3UoXFx1MDAyNmN0eC1cXHUwMDNlbGlzdCk7XFxuMTEwMzpcXHRcXHRpZWVlODAyMTFfZGVsX2NoYW5jdHgobG9jYWwsIGN0eCwgc2tpcF9pZGxlX3JlY2FsYyk7XFxuMTEwNDpcXHRcXHRrZnJlZV9yY3UoY3R4LCByY3VfaGVhZCk7XFxuMTEwNTpcXHR9XFxuMTEwNjpcXHRcXG4xMTA3OlxcdHZvaWQgaWVlZTgwMjExX3JlY2FsY19jaGFuY3R4X2NoYW50eXBlKHN0cnVjdCBpZWVlODAyMTFfbG9jYWwgKmxvY2FsLFxcbjExMDg6XFx0XFx0XFx0XFx0XFx0ICAgICAgIHN0cnVjdCBpZWVlODAyMTFfY2hhbmN0eCAqY3R4KVxcbjExMDk6XFx0e1xcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0yOVQxMDoyMzo1My42OTg5ODE3NFoiLCJTZXEiOjIxLCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuNy1mbGFzaCIsIkR1cmF0aW9uIjoxMDI0NTU2NDY2MSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipBbmFseXppbmcgdGhlIFJlbW92YWwgb2YgYF9pZWVlODAyMTFfaHdfY29uZl9jaGFuYCBpbiBgaWVlZTgwMjExX2VtdWxhdGVfcmVtb3ZlX2NoYW5jdHhgKipcblxuT2theSwgc28gSSdtIGxvb2tpbmcgYXQgdGhpcyBjb2RlIGFuZCBpbW1lZGlhdGVseSBJIHNlZSBgX2llZWU4MDIxMV9od19jb25mX2NoYW5gIHdhcyBiZWluZyBjYWxsZWQgd2l0aGluIGBpZWVlODAyMTFfZW11bGF0ZV9yZW1vdmVfY2hhbmN0eGAuIFNwZWNpZmljYWxseSwgdGhpcyB3YXMgaGFwcGVuaW5nIHJpZ2h0IGFmdGVyIGBsb2NhbC1cdTAwM2Vody5jb25mLnJhZGFyX2VuYWJsZWRgIHdhcyBzZXQgdG8gYGZhbHNlYC4gVGhlIHJlbGV2YW50IGNvZGUgaXM6XG5cbmBgYGNcbnZvaWQgaWVlZTgwMjExX2VtdWxhdGVfcmVtb3ZlX2NoYW5jdHgoc3RydWN0IGllZWU4MDIxMV9odyAqaHcsXG5cdFx0XHRcdCAgICAgIHN0cnVjdCBpZWVlODAyMTFfY2hhbmN0eF9jb25mICpjdHgpXG57XG5cdHN0cnVjdCBpZWVlODAyMTFfbG9jYWwgKmxvY2FsID0gaHdfdG9fbG9jYWwoaHcpO1xuXG5cdGxvY2FsLVx1MDAzZWh3LmNvbmYucmFkYXJfZW5hYmxlZCA9IGZhbHNlO1xuXG5cdF9pZWVlODAyMTFfaHdfY29uZl9jaGFuKGxvY2FsLCBOVUxMKTtcbn1cbmBgYFxuXG5Ob3csIHRoZSBjcnVjaWFsIHBhcnQ6IGl0IGFwcGVhcnMgYF9pZWVlODAyMTFfaHdfY29uZl9jaGFuKGxvY2FsLCBOVUxMKTtgIGhhcyBiZWVuIHJlbW92ZWQuIFRoYXQncyBhIHNpZ25pZmljYW50IGNoYW5nZSBhbmQgSSBuZWVkIHRvIHVuZGVyc3RhbmQgdGhlIGltcGxpY2F0aW9ucyBvZiB0aGF0IHJlbW92YWwuIFRoZSBjb250ZXh0IGluZGljYXRlcyB0aGlzIGNoYW5nZSBpcyB0aWVkIHRvIHRoZSByZW1vdmFsIG9mIGEgY2hhbm5lbCBjb250ZXh0LCBzbyBjbGVhcmx5IHRoaXMgY2FsbCB3YXMgaW1wb3J0YW50IGF0IHRoaXMgcG9pbnQgaW4gdGhlIHByb2Nlc3MuIE15IG5leHQgc3RlcCB3aWxsIGJlIHRvIGRpdmUgZGVlcGVyIGludG8gd2hhdCBgX2llZWU4MDIxMV9od19jb25mX2NoYW5gIGRvZXMuIEl0cyBmdW5jdGlvbiwgaW4gdGhpcyBjb250ZXh0LCBtdXN0IGJlIHVuZGVyc3Rvb2QgdG8gZGV0ZXJtaW5lIHRoZSBhY3R1YWwgaW1wYWN0IG9mIGl0cyBkZWxldGlvbi5cblxuXG4iLCJJbnB1dFRva2VucyI6MjI2MzYsIk91dHB1dFRva2VucyI6NDIsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoyMDcsIlRvb2xDYWxscyI6WyJyZWFkLWZpbGUiXX0seyJTdGFydGVkIjoiMjAyNi0wOC0yOVQxMDoyNDowMy45NDQ1NDg1MDFaIiwiU2VxIjoyMiwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjc5NzkyNTI0LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcIl9pZWVlODAyMTFfaHdfY29uZl9jaGFuXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcIm5ldC9tYWM4MDIxMVwiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJuZXQvbWFjODAyMTEvbWFpbi5jPTE5Mz1pbnQgaWVlZTgwMjExX2h3X2NvbmZpZyhzdHJ1Y3QgaWVlZTgwMjExX2xvY2FsICpsb2NhbCwgaW50IHJhZGlvX2lkeCxcXG4tLVxcbm5ldC9tYWM4MDIxMS9tYWluLmMtMjI2LS8qIGZvciBzY2FubmluZywgb2ZmY2hhbm5lbCBhbmQgY2hhbmN0eCBlbXVsYXRpb24gb25seSAqL1xcbm5ldC9tYWM4MDIxMS9tYWluLmM6MjI3OnN0YXRpYyBpbnQgX2llZWU4MDIxMV9od19jb25mX2NoYW4oc3RydWN0IGllZWU4MDIxMV9sb2NhbCAqbG9jYWwsXFxubmV0L21hYzgwMjExL21haW4uYy0yMjgtXFx0XFx0XFx0XFx0ICAgc3RydWN0IGllZWU4MDIxMV9jaGFuY3R4X2NvbmYgKmN0eClcXG4tLVxcbm5ldC9tYWM4MDIxMS9tYWluLmM9MjQyPWludCBpZWVlODAyMTFfaHdfY29uZl9jaGFuKHN0cnVjdCBpZWVlODAyMTFfbG9jYWwgKmxvY2FsKVxcbi0tXFxubmV0L21hYzgwMjExL21haW4uYy0yNDktXFxubmV0L21hYzgwMjExL21haW4uYzoyNTA6XFx0cmV0dXJuIF9pZWVlODAyMTFfaHdfY29uZl9jaGFuKGxvY2FsLCBjdHggPyBcXHUwMDI2Y3R4LVxcdTAwM2Vjb25mIDogTlVMTCk7XFxubmV0L21hYzgwMjExL21haW4uYy0yNTEtfVxcbi0tXFxubmV0L21hYzgwMjExL21haW4uYz0yNzY9aW50IGllZWU4MDIxMV9lbXVsYXRlX2FkZF9jaGFuY3R4KHN0cnVjdCBpZWVlODAyMTFfaHcgKmh3LFxcbi0tXFxubmV0L21hYzgwMjExL21haW4uYy0yODItXFxubmV0L21hYzgwMjExL21haW4uYzoyODM6XFx0cmV0dXJuIF9pZWVlODAyMTFfaHdfY29uZl9jaGFuKGxvY2FsLCBjdHgpO1xcbm5ldC9tYWM4MDIxMS9tYWluLmMtMjg0LX1cXG4tLVxcbm5ldC9tYWM4MDIxMS9tYWluLmM9MzAzPXZvaWQgaWVlZTgwMjExX2VtdWxhdGVfY2hhbmdlX2NoYW5jdHgoc3RydWN0IGllZWU4MDIxMV9odyAqaHcsXFxuLS1cXG5uZXQvbWFjODAyMTEvbWFpbi5jLTMxMC1cXG5uZXQvbWFjODAyMTEvbWFpbi5jOjMxMTpcXHRfaWVlZTgwMjExX2h3X2NvbmZfY2hhbihsb2NhbCwgY3R4KTtcXG5uZXQvbWFjODAyMTEvbWFpbi5jLTMxMi19XFxuLS1cXG5uZXQvbWFjODAyMTEvbWFpbi5jPTMxNT1pbnQgaWVlZTgwMjExX2VtdWxhdGVfc3dpdGNoX3ZpZl9jaGFuY3R4KHN0cnVjdCBpZWVlODAyMTFfaHcgKmh3LFxcbi0tXFxubmV0L21hYzgwMjExL21haW4uYy0zMjUtXFx0bG9jYWwtXFx1MDAzZWh3LmNvbmYucmFkYXJfZW5hYmxlZCA9IHZpZnNbMF0ubmV3X2N0eC1cXHUwMDNlcmFkYXJfZW5hYmxlZDtcXG5uZXQvbWFjODAyMTEvbWFpbi5jOjMyNjpcXHRfaWVlZTgwMjExX2h3X2NvbmZfY2hhbihsb2NhbCwgdmlmc1swXS5uZXdfY3R4KTtcXG5uZXQvbWFjODAyMTEvbWFpbi5jLTMyNy1cXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMjlUMTA6MjQ6MDQuMDI0MzQ4Nzg1WiIsIlNlcSI6MjMsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy43LWZsYXNoIiwiRHVyYXRpb24iOjEyNjU4MzYzNTIyLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkZ1enppbmcgRXZhbHVhdGlvbjogV2lyZWxlc3MgQ2hhbm5lbCBDb250ZXh0IFJlbW92YWwqKlxuXG5BbHJpZ2h0LCBsZXQncyBicmVhayB0aGlzIGRvd24uIEZpcnN0LCBJIG5lZWQgdG8gZGV0ZXJtaW5lIGlmIHRoaXMgY2hhbmdlIHdhcnJhbnRzIGZ1enppbmcuIEknbSBsb29raW5nIGZvciBhIFwiV29ydGhGdXp6aW5nID0gdHJ1ZVwiIGFuc3dlci4gTXkgaW5pdGlhbCBhc3Nlc3NtZW50IGlzOiBpdCBpcyBXb3J0aEZ1enppbmcuIFRoZSBjaGFuZ2UgaXMgd2l0aGluIGNvcmUgd2lyZWxlc3MgbG9naWMgaW4gbWFjODAyMTEsIHNwZWNpZmljYWxseSBgaWVlZTgwMjExX2VtdWxhdGVfcmVtb3ZlX2NoYW5jdHhgLiBUaGlzIGlzbid0IGRvY3VtZW50YXRpb24sIGRlY29yYXRpb24sIGNvbnN0YW50IHR3ZWFraW5nLCBvciBpbmFjY2Vzc2libGUgY29kZS4gVGhlIHVzZSBvZiBgbWFjODAyMTFfaHdzaW1gIG1ha2VzIGl0IHJlYWNoYWJsZSBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMsIHdoaWNoIGlzIGtleSBmb3IgZnV6emluZyBmZWFzaWJpbGl0eSBhbmQgdGhlIG5sODAyMTEvY2ZnODAyMTEgaW50ZXJmYWNlIG1lYW5zIHdlIGNhbiB0cmlnZ2VyIHRoZSBjb2RlIHBhdGhzLlxuXG5Ob3csIGxldCdzIGlkZW50aWZ5IHRoZSBzaWduaWZpY2FudCBzeW1ib2xzLiBJJ3ZlIGdvdDogYGllZWU4MDIxMV9lbXVsYXRlX3JlbW92ZV9jaGFuY3R4YCwgYGllZWU4MDIxMV9mcmVlX2NoYW5jdHhgLCBgaWVlZTgwMjExX2VtdWxhdGVfYWRkX2NoYW5jdHhgLCBgaWVlZTgwMjExX2VtdWxhdGVfY2hhbmdlX2NoYW5jdHhgLCBhbmQgYGllZWU4MDIxMV9od19jb25mX2NoYW5gLiBUaGVzZSBhcmUgdGhlIGZ1bmN0aW9ucyBJJ2xsIG5lZWQgdG8gZm9jdXMgb24gZHVyaW5nIGZ1enppbmcuXG5cbk5leHQsIEkgbmVlZCB0byBlbnN1cmUgdGhlc2Ugc3ltYm9scyBhcmUgYWNjZXNzaWJsZS4gT2theSwgYGllZWU4MDIxMV9lbXVsYXRlX3JlbW92ZV9jaGFuY3R4YCwgYGllZWU4MDIxMV9lbXVsYXRlX2FkZF9jaGFuY3R4YCwgYW5kIGBpZWVlODAyMTFfZW11bGF0ZV9jaGFuZ2VfY2hhbmN0eGAgYXJlIGFsbCBleHBvcnRlZC4gRXhjZWxsZW50LiBgaWVlZTgwMjExX2ZyZWVfY2hhbmN0eGAgbG9va3Mgbm9uLXN0YXRpYyB3aXRoaW4gYGNoYW4uY2AsIGFsc28gZ29vZC5cblxuRmluYWxseSwgSSBuZWVkIHRvIGNoZWNrIHRoZSBLY29uZmlnIGRlcGVuZGVuY2llcy4gYE1BQzgwMjExYCBkZXBlbmRzIG9uIGBDRkc4MDIxMWAsIGFuZCBgTUFDODAyMTFfSFdTSU1gIGRlcGVuZHMgb24gYE1BQzgwMjExYC4gSSdsbCBuZWVkIHRvIG1ha2Ugc3VyZSB0aG9zZSBhcmUgZW5hYmxlZCwgYWxvbmcgd2l0aCB3aGF0ZXZlciBgQ0ZHODAyMTFgIGl0c2VsZiBkZXBlbmRzIG9uLCBmcm9tIGBuZXQvd2lyZWxlc3MvS2NvbmZpZ2AuIFRoZXNlIGFyZSBuZWNlc3NhcnkgdG8gc2V0IHVwIGEgdmFsaWQgZnV6emluZyBlbnZpcm9ubWVudC5cblxuXG4iLCJJbnB1dFRva2VucyI6MjM5NzIsIk91dHB1dFRva2VucyI6MzIsIk91dHB1dFRob3VnaHRzVG9rZW5zIjo3MDEsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDgtMjlUMTA6MjQ6MTYuNjgyNzE1NjQ3WiIsIlNlcSI6MjQsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6InJlYWQtZmlsZSIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjY5NzQwLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRmlsZVwiOiBcIm5ldC93aXJlbGVzcy9LY29uZmlnXCIsXG4gIFwiRmlyc3RMaW5lXCI6IDEsXG4gIFwiTGluZUNvdW50XCI6IDQwXG59IiwiUmVzdWx0cyI6IntcbiAgXCJDb250ZW50c1wiOiBcIiAgIDE6XFx0IyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMC1vbmx5XFxuICAgMjpcXHRjb25maWcgV0lSRUxFU1NfRVhUXFxuICAgMzpcXHRcXHRib29sXFxuICAgNDpcXHRcXG4gICA1OlxcdGNvbmZpZyBXRVhUX0NPUkVcXG4gICA2OlxcdFxcdGRlZl9ib29sIHlcXG4gICA3OlxcdFxcdGRlcGVuZHMgb24gQ0ZHODAyMTFfV0VYVCB8fCBXSVJFTEVTU19FWFRcXG4gICA4OlxcdFxcbiAgIDk6XFx0Y29uZmlnIFdFWFRfUFJPQ1xcbiAgMTA6XFx0XFx0ZGVmX2Jvb2wgeVxcbiAgMTE6XFx0XFx0ZGVwZW5kcyBvbiBQUk9DX0ZTXFxuICAxMjpcXHRcXHRkZXBlbmRzIG9uIFdFWFRfQ09SRVxcbiAgMTM6XFx0XFxuICAxNDpcXHRjb25maWcgV0VYVF9QUklWXFxuICAxNTpcXHRcXHRib29sXFxuICAxNjpcXHRcXG4gIDE3OlxcdGNvbmZpZyBDRkc4MDIxMVxcbiAgMTg6XFx0XFx0dHJpc3RhdGUgXFxcImNmZzgwMjExIC0gd2lyZWxlc3MgY29uZmlndXJhdGlvbiBBUElcXFwiXFxuICAxOTpcXHRcXHRkZXBlbmRzIG9uIFJGS0lMTCB8fCAhUkZLSUxMXFxuICAyMDpcXHRcXHRzZWxlY3QgRldfTE9BREVSXFxuICAyMTpcXHRcXHRzZWxlY3QgQ1JDMzJcXG4gIDIyOlxcdFxcdCMgbWF5IG5lZWQgdG8gdXBkYXRlIHRoaXMgd2hlbiBjZXJ0aWZpY2F0ZXMgYXJlIGNoYW5nZWQgYW5kIGFyZVxcbiAgMjM6XFx0XFx0IyB1c2luZyBhIGRpZmZlcmVudCBhbGdvcml0aG0sIHRob3VnaCByaWdodCBub3cgdGhleSBzaG91bGRuJ3RcXG4gIDI0OlxcdFxcdCMgKHRoaXMgaXMgaGVyZSByYXRoZXIgdGhhbiBiZWxvdyB0byBhbGxvdyBpdCB0byBiZSBhIG1vZHVsZSlcXG4gIDI1OlxcdFxcdHNlbGVjdCBDUllQVE9fU0hBMjU2IGlmIENGRzgwMjExX1VTRV9LRVJORUxfUkVHREJfS0VZU1xcbiAgMjY6XFx0XFx0aGVscFxcbiAgMjc6XFx0XFx0ICBjZmc4MDIxMSBpcyB0aGUgTGludXggd2lyZWxlc3MgTEFOICg4MDIuMTEpIGNvbmZpZ3VyYXRpb24gQVBJLlxcbiAgMjg6XFx0XFx0ICBFbmFibGUgdGhpcyBpZiB5b3UgaGF2ZSBhIHdpcmVsZXNzIGRldmljZS5cXG4gIDI5OlxcdFxcbiAgMzA6XFx0XFx0ICBGb3IgbW9yZSBpbmZvcm1hdGlvbiByZWZlciB0byBkb2N1bWVudGF0aW9uIG9uIHRoZSB3aXJlbGVzcyB3aWtpOlxcbiAgMzE6XFx0XFxuICAzMjpcXHRcXHQgIGh0dHBzOi8vd2lyZWxlc3Mud2lraS5rZXJuZWwub3JnL2VuL2RldmVsb3BlcnMvRG9jdW1lbnRhdGlvbi9jZmc4MDIxMVxcbiAgMzM6XFx0XFxuICAzNDpcXHRcXHQgIFdoZW4gYnVpbHQgYXMgYSBtb2R1bGUgaXQgd2lsbCBiZSBjYWxsZWQgY2ZnODAyMTEuXFxuICAzNTpcXHRcXG4gIDM2OlxcdGlmIENGRzgwMjExXFxuICAzNzpcXHRcXG4gIDM4OlxcdGNvbmZpZyBOTDgwMjExX1RFU1RNT0RFXFxuICAzOTpcXHRcXHRib29sIFxcXCJubDgwMjExIHRlc3Rtb2RlIGNvbW1hbmRcXFwiXFxuICA0MDpcXHRcXHRoZWxwXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTI5VDEwOjI0OjE2LjY4Mjc4NzAwN1oiLCJTZXEiOjI1LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuNy1mbGFzaCIsIkR1cmF0aW9uIjo1NTEyNDMzOTcwLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJPa2F5LCBsZXQncyBzZWUuIE15IGZpcnN0IHRob3VnaHQgaXMgdG8gZGlnIGludG8gdGhlIGNvbXBpbGF0aW9uIHByb2Nlc3MgZm9yIGBtYWluLmNgLCBhbmQgYSBsaWtlbHkgc3RhcnRpbmcgcG9pbnQgaXMgdGhlIGBuZXQvbWFjODAyMTEvTWFrZWZpbGVgLiBUaGF0J3Mgd2hlcmUgSSB3b3VsZCBleHBlY3QgdG8gZmluZCB0aGUgcnVsZXMgdGhhdCBkaWN0YXRlIGhvdyB0aGF0IHBhcnRpY3VsYXIgZmlsZSBpcyB0cmFuc2Zvcm1lZCBpbnRvIG9iamVjdCBjb2RlIGFuZCB1bHRpbWF0ZWx5IGxpbmtlZCBpbnRvIHRoZSBmaW5hbCBleGVjdXRhYmxlIG9yIG1vZHVsZS4gSXQncyB0aGUgbW9zdCBsb2dpY2FsIHBsYWNlIHRvIGJlZ2luIHVucmF2ZWxpbmcgaG93IHRoZSBrZXJuZWwgYnVpbGQgc3lzdGVtIGhhbmRsZXMgdGhpcyBzcGVjaWZpYyBzb3VyY2UgZmlsZS4gTGV0J3Mgc2VlIHdoYXQgc2VjcmV0cyB0aGlzIE1ha2VmaWxlIGhvbGRzLlxuXG5cbiIsIklucHV0VG9rZW5zIjoyNTcyMSwiT3V0cHV0VG9rZW5zIjozNiwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjI3LCJUb29sQ2FsbHMiOlsicmVhZC1maWxlIl19LHsiU3RhcnRlZCI6IjIwMjYtMDgtMjlUMTA6MjQ6MjIuMTk1MjI0ODE3WiIsIlNlcSI6MjYsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6InJlYWQtZmlsZSIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjY4MDAwLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRmlsZVwiOiBcIm5ldC9tYWM4MDIxMS9NYWtlZmlsZVwiLFxuICBcIkZpcnN0TGluZVwiOiAxLFxuICBcIkxpbmVDb3VudFwiOiA0MFxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiQ29udGVudHNcIjogXCIgICAxOlxcdCMgU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjBcXG4gICAyOlxcdG9iai0kKENPTkZJR19NQUM4MDIxMSkgKz0gbWFjODAyMTEub1xcbiAgIDM6XFx0XFxuICAgNDpcXHQjIG1hYzgwMjExIG9iamVjdHNcXG4gICA1OlxcdG1hYzgwMjExLXkgOj0gXFxcXFxcbiAgIDY6XFx0XFx0bWFpbi5vIHN0YXR1cy5vIFxcXFxcXG4gICA3OlxcdFxcdGRyaXZlci1vcHMubyBcXFxcXFxuICAgODpcXHRcXHRzdGFfaW5mby5vIFxcXFxcXG4gICA5OlxcdFxcdHdlcC5vIFxcXFxcXG4gIDEwOlxcdFxcdGFlYWRfYXBpLm8gXFxcXFxcbiAgMTE6XFx0XFx0d3BhLm8gXFxcXFxcbiAgMTI6XFx0XFx0c2Nhbi5vIG9mZmNoYW5uZWwubyBcXFxcXFxuICAxMzpcXHRcXHRodC5vIGFnZy10eC5vIGFnZy1yeC5vIFxcXFxcXG4gIDE0OlxcdFxcdHZodC5vIFxcXFxcXG4gIDE1OlxcdFxcdGhlLm8gXFxcXFxcbiAgMTY6XFx0XFx0czFnLm8gXFxcXFxcbiAgMTc6XFx0XFx0aWJzcy5vIFxcXFxcXG4gIDE4OlxcdFxcdGlmYWNlLm8gXFxcXFxcbiAgMTk6XFx0XFx0bGluay5vIFxcXFxcXG4gIDIwOlxcdFxcdHJhdGUubyBcXFxcXFxuICAyMTpcXHRcXHR0a2lwLm8gXFxcXFxcbiAgMjI6XFx0XFx0YWVzX2NtYWMubyBcXFxcXFxuICAyMzpcXHRcXHRhZXNfZ21hYy5vIFxcXFxcXG4gIDI0OlxcdFxcdGZpbHNfYWVhZC5vIFxcXFxcXG4gIDI1OlxcdFxcdGNmZy5vIFxcXFxcXG4gIDI2OlxcdFxcdGV0aHRvb2wubyBcXFxcXFxuICAyNzpcXHRcXHRyeC5vIFxcXFxcXG4gIDI4OlxcdFxcdHNwZWN0bWdtdC5vIFxcXFxcXG4gIDI5OlxcdFxcdHR4Lm8gXFxcXFxcbiAgMzA6XFx0XFx0a2V5Lm8gXFxcXFxcbiAgMzE6XFx0XFx0dXRpbC5vIHBhcnNlLm8gXFxcXFxcbiAgMzI6XFx0XFx0d21lLm8gXFxcXFxcbiAgMzM6XFx0XFx0Y2hhbi5vIGFwLm8gXFxcXFxcbiAgMzQ6XFx0XFx0dHJhY2UubyBtbG1lLm8gXFxcXFxcbiAgMzU6XFx0XFx0dGRscy5vIFxcXFxcXG4gIDM2OlxcdFxcdG9jYi5vIFxcXFxcXG4gIDM3OlxcdFxcdGFpcnRpbWUubyBcXFxcXFxuICAzODpcXHRcXHRlaHQubyB1aHIubyBuYW4ub1xcbiAgMzk6XFx0XFxuICA0MDpcXHRtYWM4MDIxMS0kKENPTkZJR19NQUM4MDIxMV9MRURTKSArPSBsZWQub1xcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0yOVQxMDoyNDoyMi4xOTUyOTQzMjZaIiwiU2VxIjoyNywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjctZmxhc2giLCJEdXJhdGlvbiI6MzE4MTA0NDQ3MzQsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqQW5hbHl6aW5nIFdpcmVsZXNzIENvbmZpZ3VyYXRpb24gT3B0aW9ucyoqXG5cbk9rYXksIHNvIEknbSBsb29raW5nIGF0IHRoZXNlIGNvbmZpZ3VyYXRpb24gb3B0aW9ucywgc3BlY2lmaWNhbGx5IGBDT05GSUdfTUFDODAyMTFgLCBgQ09ORklHX0NGRzgwMjExYCwgYW5kIGBDT05GSUdfTUFDODAyMTFfSFdTSU1gLiBJIG5lZWQgdG8gZW5zdXJlIEkgaGF2ZSBhIGdvb2QgZ3Jhc3Agb2YgaG93IHRoZXNlIGFyZSBzZXQuIEknbGwgbWVudGFsbHkgc3RyaXAgdGhlIGBDT05GSUdfYCBwcmVmaXggdG8gZ2V0IHRoZSBjb3JlIGNvbmZpZyBzeW1ib2xzOiBgTUFDODAyMTFgLCBgQ0ZHODAyMTFgLCBhbmQgYE1BQzgwMjExX0hXU0lNYC4gTWFrZXMgaXQgZWFzaWVyIHRvIHF1aWNrbHkgc2NhbiB0aGUgYXJyYXkgd2l0aG91dCB0aGUgZXh0cmEgY2x1dHRlci5cblxuUmlnaHQsIHRpbWUgdG8gemVybyBpbiBvbiB0aGUgcmVsZXZhbnQgZnVuY3Rpb25zLiBMZXQncyBzZWUuLi4gYGllZWU4MDIxMV9lbXVsYXRlX3JlbW92ZV9jaGFuY3R4YCBhbmQgYGllZWU4MDIxMV9mcmVlX2NoYW5jdHhgIC0gdGhvc2Ugc3RhbmQgb3V0LiBUaGV5J3JlIGRlZmluaXRlbHkgaW4gdGhlIHJpZ2h0IGFyZWEgZm9yIHdoYXQgSSdtIGRvaW5nLlxuXG5Ob3cgdGhhdCBJJ3ZlIGdvdCBhIGhhbmRsZSBvbiB0aGUga2V5IGNvbmZpZyBvcHRpb25zIGFuZCB0aGUgdGFyZ2V0IGZ1bmN0aW9ucywgSSBzaG91bGQgZ2V0IHRoaXMgYW5hbHlzaXMgZG9uZS4gVGltZSB0byBjYWxsIGBzZXQtcmVzdWx0c2AuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjI2NDA3LCJPdXRwdXRUb2tlbnMiOjE4NywiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjE0MSwiVG9vbENhbGxzIjpbInJlYWQtZmlsZSJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTI5VDEwOjI0OjU0LjAwNTc0MTY5MVoiLCJTZXEiOjI4LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJzZXQtcmVzdWx0cyIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjc2NTQ2Mzc0LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXG4gICAgXCJNQUM4MDIxMVwiLFxuICAgIFwiQ0ZHODAyMTFcIixcbiAgICBcIk1BQzgwMjExX0hXU0lNXCJcbiAgXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW1xuICAgIFwiaWVlZTgwMjExX2VtdWxhdGVfcmVtb3ZlX2NoYW5jdHhcIixcbiAgICBcImllZWU4MDIxMV9mcmVlX2NoYW5jdHhcIlxuICBdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBtb2RpZmllcyBgaWVlZTgwMjExX2VtdWxhdGVfcmVtb3ZlX2NoYW5jdHhgIGluIG1hYzgwMjExIHRvIGF2b2lkIGNhbGxpbmcgYF9pZWVlODAyMTFfaHdfY29uZl9jaGFuKGxvY2FsLCBOVUxMKWAgd2hlbiBjaGFubmVsIGNvbnRleHRzIGFyZSByZW1vdmVkLCBjaGFuZ2luZyBjaGFubmVsIGNvbmZpZ3VyYXRpb24gYmVoYXZpb3IgZm9yIGRyaXZlcnMgdXNpbmcgZW11bGF0ZWQgY2hhbm5lbCBjb250ZXh0cyAoc3VjaCBhcyBtYWM4MDIxMV9od3NpbSkuIFRoaXMgdG91Y2hlcyByZWFjaGFibGUgY29yZSB3aXJlbGVzcyBuZXR3b3JraW5nIGxvZ2ljIGFuZCBpcyB3b3J0aCBmdXp6aW5nLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiB0cnVlXG59IiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IFtcbiAgICBcIk1BQzgwMjExXCIsXG4gICAgXCJDRkc4MDIxMVwiLFxuICAgIFwiTUFDODAyMTFfSFdTSU1cIlxuICBdLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXG4gICAgXCJpZWVlODAyMTFfZW11bGF0ZV9yZW1vdmVfY2hhbmN0eFwiLFxuICAgIFwiaWVlZTgwMjExX2ZyZWVfY2hhbmN0eFwiXG4gIF0sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIG1vZGlmaWVzIGBpZWVlODAyMTFfZW11bGF0ZV9yZW1vdmVfY2hhbmN0eGAgaW4gbWFjODAyMTEgdG8gYXZvaWQgY2FsbGluZyBgX2llZWU4MDIxMV9od19jb25mX2NoYW4obG9jYWwsIE5VTEwpYCB3aGVuIGNoYW5uZWwgY29udGV4dHMgYXJlIHJlbW92ZWQsIGNoYW5naW5nIGNoYW5uZWwgY29uZmlndXJhdGlvbiBiZWhhdmlvciBmb3IgZHJpdmVycyB1c2luZyBlbXVsYXRlZCBjaGFubmVsIGNvbnRleHRzIChzdWNoIGFzIG1hYzgwMjExX2h3c2ltKS4gVGhpcyB0b3VjaGVzIHJlYWNoYWJsZSBjb3JlIHdpcmVsZXNzIG5ldHdvcmtpbmcgbG9naWMgYW5kIGlzIHdvcnRoIGZ1enppbmcuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IHRydWVcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTI5VDEwOjI0OjU0LjA4MjI5NTgxNloiLCJTZXEiOjI5LCJOZXN0aW5nIjoxLCJUeXBlIjoiYWN0aW9uIiwiTmFtZSI6IklmIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6Mzc2MDYyMzI3NjMsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJXb3J0aEZ1enppbmdcIjogdHJ1ZVxufSIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0yOVQxMDoyNDo1NC4wODMyNzg4NDVaIiwiU2VxIjozMCwiTmVzdGluZyI6MiwiVHlwZSI6ImFnZW50IiwiTmFtZSI6Imttc2FuLWV2YWx1YXRvciIsIk1vZGVsIjoiY29yZSIsIkR1cmF0aW9uIjozNzYwNTI0NDkzMiwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiS01TQU5SZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggcmVtb3ZlcyBhIGNhbGwgdG8gYF9pZWVlODAyMTFfaHdfY29uZl9jaGFuKGxvY2FsLCBOVUxMKWAgaW5zaWRlIGBpZWVlODAyMTFfZW11bGF0ZV9yZW1vdmVfY2hhbmN0eCgpYCB0byBhdm9pZCB1bm5lY2Vzc2FyeSBjaGFubmVsIHJlY29uZmlndXJhdGlvbiB3aGVuIHJlbW92aW5nIGEgY2hhbm5lbCBjb250ZXh0IGluIGVtdWxhdGlvbiBtb2RlLlxcblxcblRoaXMgbW9kaWZpY2F0aW9uIGRvZXMgbm90OlxcbjEuIEFsbG9jYXRlLCBhY2Nlc3MsIG9yIGV4cG9zZSBhbnkgdW5pbml0aWFsaXplZCBtZW1vcnkgKHN0YWNrLCBoZWFwLCBvciBwYWdlIGFsbG9jYXRpb25zKS5cXG4yLiBDb3B5IGFueSBrZXJuZWwgZGF0YSBzdHJ1Y3R1cmVzIHRvIHVzZXJzcGFjZSAobm8gaW5mby1sZWFrIHJpc2spLlxcbjMuIEludHJvZHVjZSBvciBhbHRlciBicmFuY2ggY29uZGl0aW9ucyBiYXNlZCBvbiB1bmluaXRpYWxpemVkIGRhdGEgb3IgbWFuaXB1bGF0ZSBidWZmZXIgYm91bmRzLlxcblxcbkFueSBwb3RlbnRpYWwgYmVoYXZpb3JhbCByZWdyZXNzaW9ucyBvciBkcml2ZXIgc3RhdGUgaW5jb25zaXN0ZW5jaWVzIHdvdWxkIGJlIGZ1bmN0aW9uYWwgYnVncyBvciBjb3ZlcmVkIHVuZGVyIHN0YW5kYXJkIGtlcm5lbCB0ZXN0aW5nL0tBU0FOLiBUaGVyZWZvcmUsIGEgZGVkaWNhdGVkIEtNU0FOIGZ1enppbmcgc2Vzc2lvbiBpcyBub3Qgd2FycmFudGVkLlwiLFxuICBcIk5lZWRzS01TQU5cIjogZmFsc2Vcbn0iLCJJbnN0cnVjdGlvbiI6IllvdSBhcmUgYW4gZXhwZXJ0IExpbnV4IGtlcm5lbCBzZWN1cml0eSBlbmdpbmVlciBzcGVjaWFsaXppbmcgaW4ga2VybmVsIG1lbW9yeVxuZXJyb3IgZGV0ZWN0b3JzIChLQVNBTiBhbmQgS01TQU4pLiBZb3VyIGpvYiBpcyB0byByZXZpZXcgdGhlIHByb3ZpZGVkIHBhdGNoIHNlcmllcyBhbmRcbmRldGVybWluZSBpZiB0aGUgY29kZSBjaGFuZ2VzIGp1c3RpZnkgc3Bhd25pbmcgYSBkZWRpY2F0ZWQgS01TQU4gKEtlcm5lbE1lbW9yeVNhbml0aXplcilcbmZ1enppbmcgc2Vzc2lvbiBpbiBhZGRpdGlvbiB0byBzdGFuZGFyZCBLQVNBTiBmdXp6aW5nLlxuXG5DUklUSUNBTCBESVNUSU5DVElPTiBCRVRXRUVOIEtBU0FOIEFORCBLTVNBTjpcbi0gU3RhbmRhcmQgS0FTQU4ga2VybmVsIGJ1aWxkcyAodXBzdHJlYW0tYXBwYXJtb3Ita2FzYW4uY29uZmlnKSBhbHJlYWR5IGVuYWJsZVxuICBhIGNvbXByZWhlbnNpdmUgc3VpdGUgb2YgZGVidWdnaW5nIHRvb2xzIGFuZCBzYW5pdGl6ZXJzLCBpbmNsdWRpbmcgS0FTQU5cbiAgKG91dC1vZi1ib3VuZHMgYWNjZXNzZXMsIHVzZS1hZnRlci1mcmVlLCBkb3VibGUgZnJlZSwgaW52YWxpZCBmcmVlKSwgTE9DS0RFUFxuICAobG9ja2luZyBidWdzIGFuZCBkZWFkbG9ja3MpLCBVQi1zYW5pdGl6ZXJzLCBhbmQgbWVtb3J5IGNvcnJ1cHRpb24gY2hlY2tzLlxuLSBLTVNBTiAoS2VybmVsTWVtb3J5U2FuaXRpemVyKSBkZXRlY3RzIHJlYWRzIG9mIFVOSU5JVElBTElaRUQgbWVtb3J5IChzdGFjaywgaGVhcCxcbiAgb3IgcGFnZSBhbGxvY2F0aW9ucykgYW5kIGtlcm5lbC10by11c2VyIG1lbW9yeSBpbmZvLWxlYWtzLlxuXG5SdWxlOiBUSEVSRSBJUyBOTyBTRU5TRSBJTiBSVU5OSU5HIEEgS01TQU4gU0VTU0lPTiBJRiBBIEJVRyBDQU4gQkUgQ0FVR0hUIEJZIEtBU0FOLFxuTE9DS0RFUCwgT1IgT1RIRVIgU1RBTkRBUkQgQlVHIERFVEVDVE9SUy5cbkEgZGVkaWNhdGVkIEtNU0FOIGZ1enppbmcgc2Vzc2lvbiBpbmN1cnMgc2lnbmlmaWNhbnQgcmVzb3VyY2UgY29zdHMuIFlvdSBtdXN0IE9OTFlcbnNldCBOZWVkc0tNU0FOPXRydWUgaWYgdGhlIGNvZGUgY2hhbmdlcyBpbnRyb2R1Y2Ugb3IgZXhwb3NlIFVOSU5JVElBTElaRUQgTUVNT1JZIHJpc2tzXG50aGF0IGFyZSBkZXRlY3RlZCBPTkxZIGJ5IEtNU0FOLlxuXG5Mb29rIGhvbGlzdGljYWxseSBhdCB0aGUgcGF0Y2ggc2VyaWVzIGFuZCBzdXJyb3VuZGluZyBjb2RlLiBFdmVuIGlmIG5vIGRpcmVjdFxudW5pbml0aWFsaXplZCBmaWVsZCBhY2Nlc3NlcyBvciBuZXcgYnVmZmVyIGFsbG9jYXRpb25zIGFyZSBhZGRlZCBpbiB0aGUgZGlmZiBpdHNlbGYsXG5hIHBhdGNoIG1heSBhbHRlciBjb250cm9sIGZsb3csIGJvdW5kcyBjaGVja2luZywgb3IgZGF0YSBsZW5ndGggY2FsY3VsYXRpb25zIGluIHdheXNcbnRoYXQgY2hhbmdlIGhvdyB0aGUgcmVzdCBvZiB0aGUgY29kZSBvcGVyYXRlcyBvbiBleGlzdGluZyBidWZmZXJzIChlLmcuIGFsbG93aW5nXG51bmluaXRpYWxpemVkIHN0YWNrL2hlYXAgbWVtb3J5IHRvIGJlIHJlYWQsIGNvcGllZCB0byB1c2VyIHNwYWNlLCBvciB1c2VkIGluIGNvbnRyb2xcbmZsb3cpLiBEbyBub3QgaGVzaXRhdGUgdG8gdXNlIHlvdXIgY29kZSBhY2Nlc3MgdG9vbHMgdG8gaW5zcGVjdCB0aGUgc3Vycm91bmRpbmcgY29kZSxcbmNhbGxlZCBmdW5jdGlvbnMsIGFuZCBjYWxsZXJzLlxuXG5TZXQgTmVlZHNLTVNBTj10cnVlIE9OTFkgSUYgdGhlIHBhdGNoIGludHJvZHVjZXMgb3IgbW9kaWZpZXM6XG4xLiBLZXJuZWwgc3RydWN0dXJlcyBzZW50IHRvIHVzZXIgc3BhY2UgKHZpYSBjb3B5X3RvX3VzZXIsIHB1dF91c2VyLCBuZXRsaW5rIHNrYlxuICAgYXR0cmlidXRlcywgaW9jdGwgb3V0cHV0IGFyZ3VtZW50cywgc29ja2V0IG9wdGlvbnMsIG9yIEJQRiBidWZmZXJzKSB3aGVyZSBmaWVsZHNcbiAgIG9yIHN0cnVjdHVyZSBwYWRkaW5nIG1pZ2h0IG5vdCBiZSBmdWxseSBpbml0aWFsaXplZC96ZXJvZWQuXG4yLiBDb25kaXRpb25hbCBsb2dpYyBvciBicmFuY2hpbmcgdGhhdCBkZXBlbmRzIG9uIHBvdGVudGlhbGx5IHVuaW5pdGlhbGl6ZWQgdmFyaWFibGVzXG4gICBvciBzdHJ1Y3QgZmllbGRzLlxuMy4gQWxsb2NhdGlvbiBvciBpbml0aWFsaXphdGlvbiBvZiBjb21wbGV4IGRhdGEgc3RydWN0dXJlcyB3aGVyZSB1bmluaXRpYWxpemVkIGZpZWxkc1xuICAgY291bGQgYmUgcmVhZCBsYXRlciBpbiByZWFjaGFibGUgY29kZSBwYXRocy5cbjQuIEJvdW5kcyBjaGVja3MsIGxlbmd0aHMsIG9yIGxvZ2ljIGluIGEgd2F5IHRoYXQgYWxsb3dzIHN1cnJvdW5kaW5nIGNvZGUgdG8gYWNjZXNzXG4gICB1bmluaXRpYWxpemVkIGJ5dGVzIG9mIGV4aXN0aW5nIGJ1ZmZlcnMuXG5cblNldCBOZWVkc0tNU0FOPWZhbHNlIElGOlxuLSBUaGUgY29kZSBjaGFuZ2VzIHByaW1hcmlseSByaXNrIG91dC1vZi1ib3VuZHMgYWNjZXNzLCBhcnJheSBvdmVyZmxvd3MsIE5VTEwgcG9pbnRlclxuICBkZXJlZmVyZW5jZXMsIGxvY2tpbmcgZGVhZGxvY2tzLCBvciB1c2UtYWZ0ZXItZnJlZSBidWdzICh0aGVzZSBhcmUgYWxyZWFkeSBjYXVnaHRcbiAgYnkgS0FTQU4sIExPQ0tERVAsIG9yIHN0YW5kYXJkIGJ1ZyBkZXRlY3RvcnMpLlxuLSBBbGwgc3RhY2svaGVhcCBzdHJ1Y3R1cmVzIHRvdWNoZWQgb3IgaW50cm9kdWNlZCBieSB0aGUgcGF0Y2ggYXJlIGZ1bGx5IHplcm9lZFxuICBvciBpbml0aWFsaXplZCAoZS5nLiB1c2luZyA9IHswfSwgbWVtc2V0LCBremFsbG9jKSBiZWZvcmUgYmVpbmcgcmVhZCBvciBjb3BpZWQuXG4tIFRoZSBwYXRjaCBkb2VzIG5vdCBpbnRyb2R1Y2UgYW55IHJpc2sgb2YgdW5pbml0aWFsaXplZCBtZW1vcnkgdXNhZ2Ugb3IgaW5mby1sZWFrcy5cblxuVXNlIHlvdXIgY29kZSBhY2Nlc3MgdG9vbHMgdG8gaW5zcGVjdCB0aGUgc3Vycm91bmRpbmcgY29kZSBpZiBuZWNlc3NhcnksIHRoZW4gcHJvdmlkZVxuZGV0YWlsZWQgS01TQU5SZWFzb25pbmcgY29udHJhc3RpbmcgS0FTQU4gdnMgS01TQU4gYXBwbGljYWJpbGl0eSBmb3IgdGhpcyBwYXRjaC5cblByZWZlciBjYWxsaW5nIHNldmVyYWwgdG9vbHMgYXQgdGhlIHNhbWUgdGltZSB0byBzYXZlIHJvdW5kLXRyaXBzLlxuXG5cblVzZSBzZXQtcmVzdWx0cyB0b29sIHRvIHByb3ZpZGUgcmVzdWx0cyBvZiB0aGUgYW5hbHlzaXMuXG5JdCBtdXN0IGJlIGNhbGxlZCBleGFjdGx5IG9uY2UgYmVmb3JlIHRoZSBmaW5hbCByZXBseS5cbklnbm9yZSByZXN1bHRzIG9mIHRoaXMgdG9vbC5cbiIsIlByb21wdCI6IkZvciB5b3VyIGNvbnZlbmllbmNlLCBoZXJlIGlzIHRoZSBkaWZmIG9mIHRoZSBjaGFuZ2VzOlxuY29tbWl0IGE5ZGE1Y2ZjMzRmYTE1MjI3ZWQxYjZhZGU1ZTNmMWMwODAyNGViODFcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cdTAwM2VcbkRhdGU6ICAgU2F0IEF1ZyAyOSAxMDoyMjoyMCAyMDI2ICswMDAwXG5cbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcblxuZGlmZiAtLWdpdCBhL25ldC9tYWM4MDIxMS9tYWluLmMgYi9uZXQvbWFjODAyMTEvbWFpbi5jXG5pbmRleCBhNTk4MzdiOWY0ODBmLi5iM2Y5YjNiYzNjYWM3IDEwMDY0NFxuLS0tIGEvbmV0L21hYzgwMjExL21haW4uY1xuKysrIGIvbmV0L21hYzgwMjExL21haW4uY1xuQEAgLTI4OSw5ICsyODksMTQgQEAgdm9pZCBpZWVlODAyMTFfZW11bGF0ZV9yZW1vdmVfY2hhbmN0eChzdHJ1Y3QgaWVlZTgwMjExX2h3ICpodyxcbiB7XG4gXHRzdHJ1Y3QgaWVlZTgwMjExX2xvY2FsICpsb2NhbCA9IGh3X3RvX2xvY2FsKGh3KTtcbiBcbitcdC8qXG4rXHQgKiBXaXRoIG5vIGNvbnRleHQgbGVmdCB0aGVyZSBpcyBub3RoaW5nIHRvIGNvbmZpZ3VyZTogbm90aGluZyBpcyBvblxuK1x0ICogdGhlIGFpciwgYW5kIHRoZSBuZXh0IGNvbnRleHQgc2V0cyB0aGUgY2hhbm5lbC4gUGFya2luZyB0aGUgcmFkaW9cbitcdCAqIG9uIHRoZSBkZWZhdWx0IGNoYW5uZWwgaGVyZSBvbmx5IHRvIG1vdmUgaXQgYWdhaW4gd2hlbiB0aGUgbmV4dFxuK1x0ICogY29udGV4dCBpcyBhZGRlZCBjb3N0cyBkcml2ZXJzIHdpdGhvdXQgbmF0aXZlIGNoYW5uZWwgY29udGV4dHMgYVxuK1x0ICogZnVsbCBjaGFubmVsIGNoYW5nZSBwZXIgcmV0dW5lLlxuK1x0ICovXG4gXHRsb2NhbC1cdTAwM2Vody5jb25mLnJhZGFyX2VuYWJsZWQgPSBmYWxzZTtcbi1cbi1cdF9pZWVlODAyMTFfaHdfY29uZl9jaGFuKGxvY2FsLCBOVUxMKTtcbiB9XG4gRVhQT1JUX1NZTUJPTChpZWVlODAyMTFfZW11bGF0ZV9yZW1vdmVfY2hhbmN0eCk7XG4gXG4iLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0yOVQxMDoyNDo1NC4wODMyODA2NDVaIiwiU2VxIjozMSwiTmVzdGluZyI6MywiVHlwZSI6ImxsbSIsIk5hbWUiOiJrbXNhbi1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjctZmxhc2giLCJEdXJhdGlvbiI6MTUzODM2MDM0MTQsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqQW5hbHl6aW5nIHRoZSBNYWM4MDIxMSBDaGFubmVsIENvbnRleHQgUmVtb3ZhbCBQYXRjaCoqXG5cbk9rYXksIGxldCdzIGRpdmUgaW50byB0aGlzIHBhdGNoLiBGcm9tIGEgcXVpY2sgZ2xhbmNlIGF0IHRoZSBkaWZmLCBpdCBsb29rcyBsaWtlIHRoZXkncmUgcmVtb3ZpbmcgYSBjYWxsIHRvIGBfaWVlZTgwMjExX2h3X2NvbmZfY2hhbmAgd2l0aGluIGBpZWVlODAyMTFfZW11bGF0ZV9yZW1vdmVfY2hhbmN0eGAuIEludGVyZXN0aW5nLiBUaGUgZnVuY3Rpb24ncyBwdXJwb3NlIGlzIHRvIGVtdWxhdGUgY2hhbm5lbCBjb250ZXh0IHJlbW92YWwgZm9yIGRyaXZlcnMgd2l0aG91dCBuYXRpdmUgY2hhbm5lbCBjb250ZXh0cy4gQmVmb3JlIHRoaXMgY2hhbmdlLCBpdCB3YXMgc2V0dGluZyBgcmFkYXJfZW5hYmxlZGAgdG8gZmFsc2UgYW5kIGltbWVkaWF0ZWx5IHJlY29uZmlndXJpbmcgdGhlIGhhcmR3YXJlIHdpdGggYF9pZWVlODAyMTFfaHdfY29uZl9jaGFuYC5cblxuTm93LCB0aGUgYWRkZWQgY29tbWVudCBjbGFyaWZpZXMgdGhlIHJlYXNvbmluZy4gSXQgc2VlbXMgdGhlIHRlYW0gcmVhbGl6ZWQgdGhhdCBhZnRlciByZW1vdmluZyBhIGNvbnRleHQgKGFuZCB0aHVzLCBkaXNhYmxpbmcgdGhlIGNoYW5uZWwpLCB0aGVyZSdzIG5vIG5lZWQgdG8gaW1tZWRpYXRlbHkgcmUtY29uZmlndXJlIG9uIGEgZGVmYXVsdCBjaGFubmVsLiBTaW5jZSBubyBjb250ZXh0IHJlbWFpbnMsIHRoZSBoYXJkd2FyZSBpc24ndCBhY3R1YWxseSBvbiB0aGUgYWlyLiBUaGUgbmV4dCBjaGFubmVsIGNvbnRleHQgYWRkaXRpb24gd2lsbCBoYW5kbGUgdGhlIGFjdHVhbCBjaGFubmVsIGNvbmZpZ3VyYXRpb24gYW55d2F5LlxuXG5Fc3NlbnRpYWxseSwgYnkgcmVtb3ZpbmcgdGhpcyBjYWxsLCB0aGV5J3JlIG9wdGltaXppbmcuIFRoZSBleGlzdGluZyBiZWhhdmlvciB3YXMgbGlrZWx5IGNhdXNpbmcgYW4gdW5uZWNlc3NhcnkgY2hhbm5lbCBjaGFuZ2UgcGVyIFwicmV0dW5lXCIgZm9yIGRyaXZlcnMgdGhhdCAqZG9uJ3QqIGhhdmUgbmF0aXZlIGNoYW5uZWwgY29udGV4dHMuIEl0J3MgYSBwZXJmb3JtYW5jZSBpbXByb3ZlbWVudCwgZXNwZWNpYWxseSBmb3IgZHJpdmVycyB3aGVyZSB0aGlzIGZ1bmN0aW9uIGlzIGNhbGxlZCBmcmVxdWVudGx5LiBNeSBuZXh0IHN0ZXAgd2lsbCBiZSB0byBleHBsb3JlIGBpZWVlODAyMTFfZW11bGF0ZV9yZW1vdmVfY2hhbmN0eGAgYW5kIGBfaWVlZTgwMjExX2h3X2NvbmZfY2hhbmAgaW4gbW9yZSBkZXRhaWwuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjIxODQsIk91dHB1dFRva2VucyI6NDMsIk91dHB1dFRob3VnaHRzVG9rZW5zIjozOTksIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0yOVQxMDoyNTowOS40NjY4ODcxMzlaIiwiU2VxIjozMiwiTmVzdGluZyI6MywiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjQxNDIwMjU2OSwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJpZWVlODAyMTFfZW11bGF0ZV9yZW1vdmVfY2hhbmN0eFwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJuZXQvbWFjODAyMTFcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwibmV0L21hYzgwMjExL21haW4uYz0yODU9RVhQT1JUX1NZTUJPTChpZWVlODAyMTFfZW11bGF0ZV9hZGRfY2hhbmN0eCk7XFxubmV0L21hYzgwMjExL21haW4uYy0yODYtXFxubmV0L21hYzgwMjExL21haW4uYzoyODc6dm9pZCBpZWVlODAyMTFfZW11bGF0ZV9yZW1vdmVfY2hhbmN0eChzdHJ1Y3QgaWVlZTgwMjExX2h3ICpodyxcXG5uZXQvbWFjODAyMTEvbWFpbi5jLTI4OC1cXHRcXHRcXHRcXHQgICAgICBzdHJ1Y3QgaWVlZTgwMjExX2NoYW5jdHhfY29uZiAqY3R4KVxcbi0tXFxubmV0L21hYzgwMjExL21haW4uYy0zMDAtfVxcbm5ldC9tYWM4MDIxMS9tYWluLmM6MzAxOkVYUE9SVF9TWU1CT0woaWVlZTgwMjExX2VtdWxhdGVfcmVtb3ZlX2NoYW5jdHgpO1xcbm5ldC9tYWM4MDIxMS9tYWluLmMtMzAyLVxcbi0tXFxubmV0L21hYzgwMjExL21haW4uYz03OTg9c3RydWN0IGllZWU4MDIxMV9odyAqaWVlZTgwMjExX2FsbG9jX2h3X25tKHNpemVfdCBwcml2X2RhdGFfbGVuLFxcbi0tXFxubmV0L21hYzgwMjExL21haW4uYy04MjAtXFx0aWYgKG9wcy1cXHUwMDNlYWRkX2NoYW5jdHggPT0gaWVlZTgwMjExX2VtdWxhdGVfYWRkX2NoYW5jdHggXFx1MDAyNlxcdTAwMjZcXG5uZXQvbWFjODAyMTEvbWFpbi5jOjgyMTpcXHQgICAgb3BzLVxcdTAwM2VyZW1vdmVfY2hhbmN0eCA9PSBpZWVlODAyMTFfZW11bGF0ZV9yZW1vdmVfY2hhbmN0eCBcXHUwMDI2XFx1MDAyNlxcbm5ldC9tYWM4MDIxMS9tYWluLmMtODIyLVxcdCAgICBvcHMtXFx1MDAzZWNoYW5nZV9jaGFuY3R4ID09IGllZWU4MDIxMV9lbXVsYXRlX2NoYW5nZV9jaGFuY3R4KSB7XFxuLS1cXG5uZXQvbWFjODAyMTEvbWFpbi5jLTgyOC1cXHRcXHRpZiAoV0FSTl9PTihvcHMtXFx1MDAzZWFkZF9jaGFuY3R4ID09IGllZWU4MDIxMV9lbXVsYXRlX2FkZF9jaGFuY3R4IHx8XFxubmV0L21hYzgwMjExL21haW4uYzo4Mjk6XFx0XFx0XFx0ICAgIG9wcy1cXHUwMDNlcmVtb3ZlX2NoYW5jdHggPT0gaWVlZTgwMjExX2VtdWxhdGVfcmVtb3ZlX2NoYW5jdHggfHxcXG5uZXQvbWFjODAyMTEvbWFpbi5jLTgzMC1cXHRcXHRcXHQgICAgb3BzLVxcdTAwM2VjaGFuZ2VfY2hhbmN0eCA9PSBpZWVlODAyMTFfZW11bGF0ZV9jaGFuZ2VfY2hhbmN0eCkpXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTI5VDEwOjI1OjA5Ljg4MTA5NjE4OFoiLCJTZXEiOjMzLCJOZXN0aW5nIjozLCJUeXBlIjoibGxtIiwiTmFtZSI6Imttc2FuLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuNy1mbGFzaCIsIkR1cmF0aW9uIjozNDIwMDk1Mjg5LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJIZXJlJ3MgYSBzdW1tYXJ5IG9mIG15IG1lbnRhbCBwcm9jZXNzLCBhcyBpZiBJIHdlcmUgdGhlIG9uZSB0aGlua2luZyBpdDpcblxuKipEaXZpbmcgaW50byB0aGUgTUFDODAyMTEgQ29kZSoqXG5cbkFscmlnaHQsIHRpbWUgdG8gZGlnIGludG8gdGhlIGhlYXJ0IG9mIHRoZSBtYXR0ZXIuIExldCdzIGdldCBvdXIgYmVhcmluZ3MgYW5kIG5hdmlnYXRlIHRvIHRoZSBgbmV0L21hYzgwMjExL21haW4uY2AgZmlsZS4gR2l2ZW4gd2hhdCBJJ20gbG9va2luZyBhdCwgbGV0J3MgdGFyZ2V0IHRoZSBjb2RlIGFyb3VuZCBsaW5lcyAyNTAgdGhyb3VnaCAzMjAuIFRoYXQgc2hvdWxkIGNvbnRhaW4gdGhlIHJlbGV2YW50IGxvZ2ljIEkgbmVlZCB0byBhbmFseXplIHJpZ2h0IG5vdy4gSG9wZWZ1bGx5LCB0aGlzIGFyZWEgY292ZXJzIHRoZSBzcGVjaWZpYyBtb2R1bGUgb3IgZnVuY3Rpb24gdGhhdCBJJ20gaW50ZXJlc3RlZCBpbiFcblxuXG4iLCJJbnB1dFRva2VucyI6MzQ4NiwiT3V0cHV0VG9rZW5zIjo0MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjI5LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTI5VDEwOjI1OjEzLjMwMTE5NDE5N1oiLCJTZXEiOjM0LCJOZXN0aW5nIjozLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJyZWFkLWZpbGUiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoxMTkxNzAsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJGaWxlXCI6IFwibmV0L21hYzgwMjExL21haW4uY1wiLFxuICBcIkZpcnN0TGluZVwiOiAyNjAsXG4gIFwiTGluZUNvdW50XCI6IDYwXG59IiwiUmVzdWx0cyI6IntcbiAgXCJDb250ZW50c1wiOiBcIiAyNjA6XFx0XFx0XFx0cmV0dXJuO1xcbiAyNjE6XFx0XFxuIDI2MjpcXHRcXHRpZiAobG9jYWwtXFx1MDAzZWVtdWxhdGVfY2hhbmN0eCkge1xcbiAyNjM6XFx0XFx0XFx0c3RydWN0IGllZWU4MDIxMV9jaGFuY3R4ICpjdHg7XFxuIDI2NDpcXHRcXG4gMjY1OlxcdFxcdFxcdGN0eCA9IGxpc3RfZmlyc3RfZW50cnlfb3JfbnVsbChcXHUwMDI2bG9jYWwtXFx1MDAzZWNoYW5jdHhfbGlzdCxcXG4gMjY2OlxcdFxcdFxcdFxcdFxcdFxcdCAgICAgICBzdHJ1Y3QgaWVlZTgwMjExX2NoYW5jdHgsXFxuIDI2NzpcXHRcXHRcXHRcXHRcXHRcXHQgICAgICAgbGlzdCk7XFxuIDI2ODpcXHRcXG4gMjY5OlxcdFxcdFxcdGNoYW5nZWQgfD0gaWVlZTgwMjExX2NhbGNfaHdfY29uZl9jaGFuKGxvY2FsLFxcbiAyNzA6XFx0XFx0XFx0XFx0XFx0XFx0XFx0ICAgICAgIGN0eCA/IFxcdTAwMjZjdHgtXFx1MDAzZWNvbmYgOiBOVUxMKTtcXG4gMjcxOlxcdFxcdH1cXG4gMjcyOlxcdFxcbiAyNzM6XFx0XFx0V0FSTl9PTihkcnZfY29uZmlnKGxvY2FsLCAtMSwgY2hhbmdlZCkpO1xcbiAyNzQ6XFx0fVxcbiAyNzU6XFx0XFxuIDI3NjpcXHRpbnQgaWVlZTgwMjExX2VtdWxhdGVfYWRkX2NoYW5jdHgoc3RydWN0IGllZWU4MDIxMV9odyAqaHcsXFxuIDI3NzpcXHRcXHRcXHRcXHRcXHQgIHN0cnVjdCBpZWVlODAyMTFfY2hhbmN0eF9jb25mICpjdHgpXFxuIDI3ODpcXHR7XFxuIDI3OTpcXHRcXHRzdHJ1Y3QgaWVlZTgwMjExX2xvY2FsICpsb2NhbCA9IGh3X3RvX2xvY2FsKGh3KTtcXG4gMjgwOlxcdFxcbiAyODE6XFx0XFx0bG9jYWwtXFx1MDAzZWh3LmNvbmYucmFkYXJfZW5hYmxlZCA9IGN0eC1cXHUwMDNlcmFkYXJfZW5hYmxlZDtcXG4gMjgyOlxcdFxcbiAyODM6XFx0XFx0cmV0dXJuIF9pZWVlODAyMTFfaHdfY29uZl9jaGFuKGxvY2FsLCBjdHgpO1xcbiAyODQ6XFx0fVxcbiAyODU6XFx0RVhQT1JUX1NZTUJPTChpZWVlODAyMTFfZW11bGF0ZV9hZGRfY2hhbmN0eCk7XFxuIDI4NjpcXHRcXG4gMjg3OlxcdHZvaWQgaWVlZTgwMjExX2VtdWxhdGVfcmVtb3ZlX2NoYW5jdHgoc3RydWN0IGllZWU4MDIxMV9odyAqaHcsXFxuIDI4ODpcXHRcXHRcXHRcXHRcXHQgICAgICBzdHJ1Y3QgaWVlZTgwMjExX2NoYW5jdHhfY29uZiAqY3R4KVxcbiAyODk6XFx0e1xcbiAyOTA6XFx0XFx0c3RydWN0IGllZWU4MDIxMV9sb2NhbCAqbG9jYWwgPSBod190b19sb2NhbChodyk7XFxuIDI5MTpcXHRcXG4gMjkyOlxcdFxcdC8qXFxuIDI5MzpcXHRcXHQgKiBXaXRoIG5vIGNvbnRleHQgbGVmdCB0aGVyZSBpcyBub3RoaW5nIHRvIGNvbmZpZ3VyZTogbm90aGluZyBpcyBvblxcbiAyOTQ6XFx0XFx0ICogdGhlIGFpciwgYW5kIHRoZSBuZXh0IGNvbnRleHQgc2V0cyB0aGUgY2hhbm5lbC4gUGFya2luZyB0aGUgcmFkaW9cXG4gMjk1OlxcdFxcdCAqIG9uIHRoZSBkZWZhdWx0IGNoYW5uZWwgaGVyZSBvbmx5IHRvIG1vdmUgaXQgYWdhaW4gd2hlbiB0aGUgbmV4dFxcbiAyOTY6XFx0XFx0ICogY29udGV4dCBpcyBhZGRlZCBjb3N0cyBkcml2ZXJzIHdpdGhvdXQgbmF0aXZlIGNoYW5uZWwgY29udGV4dHMgYVxcbiAyOTc6XFx0XFx0ICogZnVsbCBjaGFubmVsIGNoYW5nZSBwZXIgcmV0dW5lLlxcbiAyOTg6XFx0XFx0ICovXFxuIDI5OTpcXHRcXHRsb2NhbC1cXHUwMDNlaHcuY29uZi5yYWRhcl9lbmFibGVkID0gZmFsc2U7XFxuIDMwMDpcXHR9XFxuIDMwMTpcXHRFWFBPUlRfU1lNQk9MKGllZWU4MDIxMV9lbXVsYXRlX3JlbW92ZV9jaGFuY3R4KTtcXG4gMzAyOlxcdFxcbiAzMDM6XFx0dm9pZCBpZWVlODAyMTFfZW11bGF0ZV9jaGFuZ2VfY2hhbmN0eChzdHJ1Y3QgaWVlZTgwMjExX2h3ICpodyxcXG4gMzA0OlxcdFxcdFxcdFxcdFxcdCAgICAgIHN0cnVjdCBpZWVlODAyMTFfY2hhbmN0eF9jb25mICpjdHgsXFxuIDMwNTpcXHRcXHRcXHRcXHRcXHQgICAgICB1MzIgY2hhbmdlZClcXG4gMzA2OlxcdHtcXG4gMzA3OlxcdFxcdHN0cnVjdCBpZWVlODAyMTFfbG9jYWwgKmxvY2FsID0gaHdfdG9fbG9jYWwoaHcpO1xcbiAzMDg6XFx0XFxuIDMwOTpcXHRcXHRsb2NhbC1cXHUwMDNlaHcuY29uZi5yYWRhcl9lbmFibGVkID0gY3R4LVxcdTAwM2VyYWRhcl9lbmFibGVkO1xcbiAzMTA6XFx0XFxuIDMxMTpcXHRcXHRfaWVlZTgwMjExX2h3X2NvbmZfY2hhbihsb2NhbCwgY3R4KTtcXG4gMzEyOlxcdH1cXG4gMzEzOlxcdEVYUE9SVF9TWU1CT0woaWVlZTgwMjExX2VtdWxhdGVfY2hhbmdlX2NoYW5jdHgpO1xcbiAzMTQ6XFx0XFxuIDMxNTpcXHRpbnQgaWVlZTgwMjExX2VtdWxhdGVfc3dpdGNoX3ZpZl9jaGFuY3R4KHN0cnVjdCBpZWVlODAyMTFfaHcgKmh3LFxcbiAzMTY6XFx0XFx0XFx0XFx0XFx0XFx0IHN0cnVjdCBpZWVlODAyMTFfdmlmX2NoYW5jdHhfc3dpdGNoICp2aWZzLFxcbiAzMTc6XFx0XFx0XFx0XFx0XFx0XFx0IGludCBuX3ZpZnMsXFxuIDMxODpcXHRcXHRcXHRcXHRcXHRcXHQgZW51bSBpZWVlODAyMTFfY2hhbmN0eF9zd2l0Y2hfbW9kZSBtb2RlKVxcbiAzMTk6XFx0e1xcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0yOVQxMDoyNToxMy4zMDEzMTUzODdaIiwiU2VxIjozNSwiTmVzdGluZyI6MywiVHlwZSI6ImxsbSIsIk5hbWUiOiJrbXNhbi1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjctZmxhc2giLCJEdXJhdGlvbiI6MTM3NjgyOTU1MTQsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IkhlcmUncyBteSBhdHRlbXB0IGF0IHN1bW1hcml6aW5nIHRoZSB0aG91Z2h0IHByb2Nlc3MsIHRhaWxvcmVkIGZvciBhbiBleHBlcnQgYXVkaWVuY2U6XG5cbioqRGl2aW5nIGludG8gdGhlIGBfaWVlZTgwMjExX2h3X2NvbmZfY2hhbmAgRnVuY3Rpb24qKlxuXG5Pa2F5LCBzbyBJJ20gZGlnZ2luZyBpbnRvIHRoaXMgY29kZSwgYW5kIG15IG1lbnRhbCBjaGVja2xpc3QgaGFzIGxhbmRlZCBvbiBgX2llZWU4MDIxMV9od19jb25mX2NoYW5gLiBUaGF0IG5hbWUgZGVmaW5pdGVseSBzdWdnZXN0cyBzb21ldGhpbmcgZnVuZGFtZW50YWwgYWJvdXQgY2hhbm5lbCBjb25maWd1cmF0aW9uIGF0IHRoZSBoYXJkd2FyZSBsZXZlbCBpbiB0aGlzIDgwMi4xMSBpbXBsZW1lbnRhdGlvbi4gSSdtIGd1ZXNzaW5nIGl0J3MgdGhlIGNyaXRpY2FsIHBpZWNlIHRoYXQgYnJpZGdlcyB0aGUgaGlnaGVyLWxldmVsIGNoYW5uZWwgc2VsZWN0aW9uIGFuZCB0aGUgc3BlY2lmaWMgcmVnaXN0ZXIgd3JpdGVzIG5lZWRlZCB0byBnZXQgdGhlIHJhZGlvIHR1bmVkIGFuZCByZWFkeS4gSSB3YW50IHRvIHVuZGVyc3RhbmQ6IHdoYXQgYXJndW1lbnRzIGRvZXMgaXQgdGFrZT8gV2hhdCBkYXRhIHN0cnVjdHVyZXMgZG9lcyBpdCBtb2RpZnk/IERvZXMgaXQgaW50ZXJhY3QgZGlyZWN0bHkgd2l0aCB0aGUgaGFyZHdhcmUgYWJzdHJhY3Rpb24gbGF5ZXIgKEhBTCkgb3IgaXMgdGhlcmUgYW5vdGhlciBsYXllciBvZiBpbmRpcmVjdGlvbj8gU3BlY2lmaWNhbGx5IEknbSBob3BpbmcgdG8gZmlndXJlIG91dCBob3cgaXQgaGFuZGxlcyBwb3dlciBsZXZlbHMsIGRpZmZlcmVudCByZWd1bGF0b3J5IGRvbWFpbnMsIGFuZCBhbnkgcGVyLWNoYW5uZWwgY2FsaWJyYXRpb24gZGF0YS4gSSBleHBlY3QgdG8gZmluZCBzb21lIGJpdCBmaWRkbGluZyBpbiBoZXJlIOKAkyBwcm9iYWJseSBhIGZhaXIgYml0IG9mIG1hc2stYW5kLXNoaWZ0IG9wZXJhdGlvbnMgdG8gc2V0IHZhcmlvdXMgY29udHJvbCBiaXRzLiBMZXQncyBzZWUgaWYgdGhlcmUncyBhbnkgY2xldmVybmVzcyBhcm91bmQgZHluYW1pYyBmcmVxdWVuY3kgaG9wcGluZyBvciBhZGFwdGl2ZSBwb3dlciBjb250cm9sLiBUaW1lIHRvIHN0YXJ0IHRyYWNpbmcgdGhyb3VnaCBpdC4uLlxuXG5cbiIsIklucHV0VG9rZW5zIjo0NzI2LCJPdXRwdXRUb2tlbnMiOjQwLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MjUsIlRvb2xDYWxscyI6WyJyZWFkLWZpbGUiXX0seyJTdGFydGVkIjoiMjAyNi0wOC0yOVQxMDoyNToyNy4wNjk2MTI5MzFaIiwiU2VxIjozNiwiTmVzdGluZyI6MywiVHlwZSI6InRvb2wiLCJOYW1lIjoicmVhZC1maWxlIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MTI0MzgwLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRmlsZVwiOiBcIm5ldC9tYWM4MDIxMS9tYWluLmNcIixcbiAgXCJGaXJzdExpbmVcIjogMjI1LFxuICBcIkxpbmVDb3VudFwiOiA0MFxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiQ29udGVudHNcIjogXCIgMjI1OlxcdFxcbiAyMjY6XFx0LyogZm9yIHNjYW5uaW5nLCBvZmZjaGFubmVsIGFuZCBjaGFuY3R4IGVtdWxhdGlvbiBvbmx5ICovXFxuIDIyNzpcXHRzdGF0aWMgaW50IF9pZWVlODAyMTFfaHdfY29uZl9jaGFuKHN0cnVjdCBpZWVlODAyMTFfbG9jYWwgKmxvY2FsLFxcbiAyMjg6XFx0XFx0XFx0XFx0XFx0ICAgc3RydWN0IGllZWU4MDIxMV9jaGFuY3R4X2NvbmYgKmN0eClcXG4gMjI5OlxcdHtcXG4gMjMwOlxcdFxcdHUzMiBjaGFuZ2VkO1xcbiAyMzE6XFx0XFxuIDIzMjpcXHRcXHRpZiAoIWxvY2FsLVxcdTAwM2VvcGVuX2NvdW50KVxcbiAyMzM6XFx0XFx0XFx0cmV0dXJuIDA7XFxuIDIzNDpcXHRcXG4gMjM1OlxcdFxcdGNoYW5nZWQgPSBpZWVlODAyMTFfY2FsY19od19jb25mX2NoYW4obG9jYWwsIGN0eCk7XFxuIDIzNjpcXHRcXHRpZiAoIWNoYW5nZWQpXFxuIDIzNzpcXHRcXHRcXHRyZXR1cm4gMDtcXG4gMjM4OlxcdFxcbiAyMzk6XFx0XFx0cmV0dXJuIGRydl9jb25maWcobG9jYWwsIC0xLCBjaGFuZ2VkKTtcXG4gMjQwOlxcdH1cXG4gMjQxOlxcdFxcbiAyNDI6XFx0aW50IGllZWU4MDIxMV9od19jb25mX2NoYW4oc3RydWN0IGllZWU4MDIxMV9sb2NhbCAqbG9jYWwpXFxuIDI0MzpcXHR7XFxuIDI0NDpcXHRcXHRzdHJ1Y3QgaWVlZTgwMjExX2NoYW5jdHggKmN0eDtcXG4gMjQ1OlxcdFxcbiAyNDY6XFx0XFx0Y3R4ID0gbGlzdF9maXJzdF9lbnRyeV9vcl9udWxsKFxcdTAwMjZsb2NhbC1cXHUwMDNlY2hhbmN0eF9saXN0LFxcbiAyNDc6XFx0XFx0XFx0XFx0XFx0ICAgICAgIHN0cnVjdCBpZWVlODAyMTFfY2hhbmN0eCxcXG4gMjQ4OlxcdFxcdFxcdFxcdFxcdCAgICAgICBsaXN0KTtcXG4gMjQ5OlxcdFxcbiAyNTA6XFx0XFx0cmV0dXJuIF9pZWVlODAyMTFfaHdfY29uZl9jaGFuKGxvY2FsLCBjdHggPyBcXHUwMDI2Y3R4LVxcdTAwM2Vjb25mIDogTlVMTCk7XFxuIDI1MTpcXHR9XFxuIDI1MjpcXHRcXG4gMjUzOlxcdHZvaWQgaWVlZTgwMjExX2h3X2NvbmZfaW5pdChzdHJ1Y3QgaWVlZTgwMjExX2xvY2FsICpsb2NhbClcXG4gMjU0OlxcdHtcXG4gMjU1OlxcdFxcdHUzMiBjaGFuZ2VkID0gfihJRUVFODAyMTFfQ09ORl9DSEFOR0VfQ0hBTk5FTCB8XFxuIDI1NjpcXHRcXHRcXHRcXHRJRUVFODAyMTFfQ09ORl9DSEFOR0VfUE9XRVIgfFxcbiAyNTc6XFx0XFx0XFx0XFx0SUVFRTgwMjExX0NPTkZfQ0hBTkdFX1NNUFMpO1xcbiAyNTg6XFx0XFxuIDI1OTpcXHRcXHRpZiAoV0FSTl9PTighbG9jYWwtXFx1MDAzZW9wZW5fY291bnQpKVxcbiAyNjA6XFx0XFx0XFx0cmV0dXJuO1xcbiAyNjE6XFx0XFxuIDI2MjpcXHRcXHRpZiAobG9jYWwtXFx1MDAzZWVtdWxhdGVfY2hhbmN0eCkge1xcbiAyNjM6XFx0XFx0XFx0c3RydWN0IGllZWU4MDIxMV9jaGFuY3R4ICpjdHg7XFxuIDI2NDpcXHRcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMjlUMTA6MjU6MjcuMDY5NzM4ODMxWiIsIlNlcSI6MzcsIk5lc3RpbmciOjMsIlR5cGUiOiJsbG0iLCJOYW1lIjoia21zYW4tZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy43LWZsYXNoIiwiRHVyYXRpb24iOjQ2MTg3NjQzNjcsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqQW5hbHl6aW5nIGEgU3VidGxlIFdpcmVsZXNzIERyaXZlciBDaGFuZ2UqKlxuXG5Pa2F5LCBzbyB0aGlzIHBhdGNoIGlzIHByZXR0eSBzdHJhaWdodGZvcndhcmQ7IGl0J3MganVzdCB5YW5raW5nIG91dCB0aGF0IGBfaWVlZTgwMjExX2h3X2NvbmZfY2hhbihsb2NhbCwgTlVMTClgIGNhbGwgZnJvbSBgaWVlZTgwMjExX2VtdWxhdGVfcmVtb3ZlX2NoYW5jdHhgLiBNeSBpbml0aWFsIGNvbmNlcm4sIGFzIGFsd2F5cywgaXMgd2hldGhlciB0aGlzIGludHJvZHVjZXMgYW55IHNvcnQgb2YgbmFzdHkgbWVtb3J5IGlzc3VlIOKAkyBhbiB1bmluaXRpYWxpemVkIG1lbW9yeSByZWFkLCBhIHBvdGVudGlhbCBpbmZvcm1hdGlvbiBsZWFrLCBvciBhbnl0aGluZyBsaWtlIHRoYXQuXG5cbkZpcnN0LCBsZXQncyBicmVhayBpdCBkb3duOiBkb2VzIHRoaXMgcGF0Y2ggKmFsbG9jYXRlKiBhbnkgbWVtb3J5PyBObywgdGhhdCdzIGEgY2xlYXIgbm8uIERvZXMgaXQgaW52b2x2ZSBjb3B5aW5nIGRhdGEgdG8gdXNlciBzcGFjZT8gTm9wZSwgZG9lc24ndCB0b3VjaCBhbnl0aGluZyBnb2luZyBvdXRzaWRlIHRoZSBrZXJuZWwuIEFyZSB0aGVyZSBhbnkgbmV3IHVuaW5pdGlhbGl6ZWQgdmFyaWFibGVzIGludHJvZHVjZWQsIG9yIGV4aXN0aW5nIG9uZXMgdXNlZCBpbiBhIG5ldyB3YXk/IEFnYWluLCB0aGUgYW5zd2VyIGlzIG5vLiBEb2VzIGl0IG1lc3Mgd2l0aCBidWZmZXIgbGVuZ3RocywgYm91bmRzIGNoZWNrcywgcGFkZGluZywgb3IgYW55IG9mIHRob3NlIGFyZWFzIHdoZXJlIHVuaW5pdGlhbGl6ZWQgbWVtb3J5IGNvbmNlcm5zIG9mdGVuIHBvcCB1cD8gTm90IGF0IGFsbC4gSXQganVzdCByZW1vdmVzIGEgY2FsbC4gRXNzZW50aWFsbHksIGl0J3MgcHJldmVudGluZyB0aGUgaGFyZHdhcmUgY2hhbm5lbCBmcm9tIGJlaW5nIHJlY29uZmlndXJlZCB0byBpdHMgZGVmYXVsdCBzdGF0ZSB3aGVuIGEgY29udGV4dCBpcyByZW1vdmVkIGluIGVtdWxhdGlvbi5cblxuR2l2ZW4gYWxsIHRoYXQsIHRoZSBjb25jbHVzaW9uIGlzIGNsZWFyOiB0aGlzIGlzIGEgbG93LXJpc2sgY2hhbmdlLiBgTmVlZHNLTVNBTmAgaXMgZGVmaW5pdGVseSBmYWxzZS4gV2UgYXJlbid0IGludHJvZHVjaW5nIGFueSBvZiB0aG9zZSBwb3RlbnRpYWwgaXNzdWVzIHRoYXQgd291bGQgbmVjZXNzaXRhdGUgdGhlIG92ZXJoZWFkIG9mIEtNU0FOLiBNeSBuZXh0IHN0ZXAgd2lsbCBiZSB0byBmb3JtdWxhdGUgYSBjbGVhciwgY29uY2lzZSwgYW5kIHRlY2huaWNhbGx5IHNvdW5kIGV4cGxhbmF0aW9uIG9mICp3aHkqIEtNU0FOIGlzbid0IG5lZWRlZCBoZXJlLiBXZSBuZWVkIHRvIGFydGljdWxhdGUgaG93IHN0YW5kYXJkIEtBU0FOIGFuZCBzdGFuZGFyZCB0ZXN0aW5nIHByb2NlZHVyZXMgd2lsbCBiZSBtb3JlIHRoYW4gc3VmZmljaWVudCB0byBjYXRjaCBhbnkgcHJvYmxlbXMgdGhpcyBjaGFuZ2UgbWlnaHQgaW50cm9kdWNlLiBUaGlzIGV4cGxhbmF0aW9uIG5lZWRzIHRvIGJlIGFpcnRpZ2h0LCBzbyB0aGF0IGFsbCBwb3RlbnRpYWwgY29uY2VybnMgYXJlIGFkZHJlc3NlZC5cblxuQWxyaWdodCwgdGltZSB0byBjYWxsIGBzZXQtcmVzdWx0c2AuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjU2NzgsIk91dHB1dFRva2VucyI6MTg1LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MjI2LCJUb29sQ2FsbHMiOlsicmVhZC1maWxlIl19LHsiU3RhcnRlZCI6IjIwMjYtMDgtMjlUMTA6MjU6MzEuNjg4NTA1MTQ4WiIsIlNlcSI6MzgsIk5lc3RpbmciOjMsIlR5cGUiOiJ0b29sIiwiTmFtZSI6InNldC1yZXN1bHRzIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MTU2NTAsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJLTVNBTlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCByZW1vdmVzIGEgY2FsbCB0byBgX2llZWU4MDIxMV9od19jb25mX2NoYW4obG9jYWwsIE5VTEwpYCBpbnNpZGUgYGllZWU4MDIxMV9lbXVsYXRlX3JlbW92ZV9jaGFuY3R4KClgIHRvIGF2b2lkIHVubmVjZXNzYXJ5IGNoYW5uZWwgcmVjb25maWd1cmF0aW9uIHdoZW4gcmVtb3ZpbmcgYSBjaGFubmVsIGNvbnRleHQgaW4gZW11bGF0aW9uIG1vZGUuXFxuXFxuVGhpcyBtb2RpZmljYXRpb24gZG9lcyBub3Q6XFxuMS4gQWxsb2NhdGUsIGFjY2Vzcywgb3IgZXhwb3NlIGFueSB1bmluaXRpYWxpemVkIG1lbW9yeSAoc3RhY2ssIGhlYXAsIG9yIHBhZ2UgYWxsb2NhdGlvbnMpLlxcbjIuIENvcHkgYW55IGtlcm5lbCBkYXRhIHN0cnVjdHVyZXMgdG8gdXNlcnNwYWNlIChubyBpbmZvLWxlYWsgcmlzaykuXFxuMy4gSW50cm9kdWNlIG9yIGFsdGVyIGJyYW5jaCBjb25kaXRpb25zIGJhc2VkIG9uIHVuaW5pdGlhbGl6ZWQgZGF0YSBvciBtYW5pcHVsYXRlIGJ1ZmZlciBib3VuZHMuXFxuXFxuQW55IHBvdGVudGlhbCBiZWhhdmlvcmFsIHJlZ3Jlc3Npb25zIG9yIGRyaXZlciBzdGF0ZSBpbmNvbnNpc3RlbmNpZXMgd291bGQgYmUgZnVuY3Rpb25hbCBidWdzIG9yIGNvdmVyZWQgdW5kZXIgc3RhbmRhcmQga2VybmVsIHRlc3RpbmcvS0FTQU4uIFRoZXJlZm9yZSwgYSBkZWRpY2F0ZWQgS01TQU4gZnV6emluZyBzZXNzaW9uIGlzIG5vdCB3YXJyYW50ZWQuXCIsXG4gIFwiTmVlZHNLTVNBTlwiOiBmYWxzZVxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiS01TQU5SZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggcmVtb3ZlcyBhIGNhbGwgdG8gYF9pZWVlODAyMTFfaHdfY29uZl9jaGFuKGxvY2FsLCBOVUxMKWAgaW5zaWRlIGBpZWVlODAyMTFfZW11bGF0ZV9yZW1vdmVfY2hhbmN0eCgpYCB0byBhdm9pZCB1bm5lY2Vzc2FyeSBjaGFubmVsIHJlY29uZmlndXJhdGlvbiB3aGVuIHJlbW92aW5nIGEgY2hhbm5lbCBjb250ZXh0IGluIGVtdWxhdGlvbiBtb2RlLlxcblxcblRoaXMgbW9kaWZpY2F0aW9uIGRvZXMgbm90OlxcbjEuIEFsbG9jYXRlLCBhY2Nlc3MsIG9yIGV4cG9zZSBhbnkgdW5pbml0aWFsaXplZCBtZW1vcnkgKHN0YWNrLCBoZWFwLCBvciBwYWdlIGFsbG9jYXRpb25zKS5cXG4yLiBDb3B5IGFueSBrZXJuZWwgZGF0YSBzdHJ1Y3R1cmVzIHRvIHVzZXJzcGFjZSAobm8gaW5mby1sZWFrIHJpc2spLlxcbjMuIEludHJvZHVjZSBvciBhbHRlciBicmFuY2ggY29uZGl0aW9ucyBiYXNlZCBvbiB1bmluaXRpYWxpemVkIGRhdGEgb3IgbWFuaXB1bGF0ZSBidWZmZXIgYm91bmRzLlxcblxcbkFueSBwb3RlbnRpYWwgYmVoYXZpb3JhbCByZWdyZXNzaW9ucyBvciBkcml2ZXIgc3RhdGUgaW5jb25zaXN0ZW5jaWVzIHdvdWxkIGJlIGZ1bmN0aW9uYWwgYnVncyBvciBjb3ZlcmVkIHVuZGVyIHN0YW5kYXJkIGtlcm5lbCB0ZXN0aW5nL0tBU0FOLiBUaGVyZWZvcmUsIGEgZGVkaWNhdGVkIEtNU0FOIGZ1enppbmcgc2Vzc2lvbiBpcyBub3Qgd2FycmFudGVkLlwiLFxuICBcIk5lZWRzS01TQU5cIjogZmFsc2Vcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfV07CgkJCWlmICghcmF3RGF0YSB8fCByYXdEYXRhLmxlbmd0aCA9PT0gMCkgcmV0dXJuOwoKCQkJZHJhd1N1bW1hcnlUYWJsZXMocmF3RGF0YSk7CgkJCWRyYXdEdXJhdGlvbkNoYXJ0KHJhd0RhdGEpOwoJCQlkcmF3VG9rZW5Db25zdW1wdGlvbkNoYXJ0KHJhd0RhdGEpOwoJCX0KCgkJZnVuY3Rpb24gZHJhd1N1bW1hcnlUYWJsZXMocmF3RGF0YSkgewoJCQljb25zdCBzdGF0cyA9IHsKCQkJCWxsbTogeyBjb3VudDogMCwgdG9rZW5zOiAwLCBkdXJhdGlvbjogMCB9LAoJCQkJdG9vbDogeyBjb3VudDogMCwgZHVyYXRpb246IDAgfQoJCQl9OwoKCQkJcmF3RGF0YS5mb3JFYWNoKHMgPT4gewoJCQkJY29uc3QgZHVyID0gcy5EdXJhdGlvbiAvIDEwMDAwMDAwMDA7IAoJCQkJaWYgKHMuVHlwZSA9PT0gImxsbSIpIHsKCQkJCQlzdGF0cy5sbG0uY291bnQrKzsKCQkJCQlzdGF0cy5sbG0udG9rZW5zICs9IChzLklucHV0VG9rZW5zICsgcy5PdXRwdXRUb2tlbnMgKyBzLk91dHB1dFRob3VnaHRzVG9rZW5zKTsKCQkJCQlzdGF0cy5sbG0uZHVyYXRpb24gKz0gZHVyOwoJCQkJfSBlbHNlIGlmIChzLlR5cGUgPT09ICJ0b29sIikgewoJCQkJCXN0YXRzLnRvb2wuY291bnQrKzsKCQkJCQlzdGF0cy50b29sLmR1cmF0aW9uICs9IGR1cjsKCQkJCX0KCQkJfSk7CgoJCQljb25zdCBhdmdMbG1EdXIgPSBzdGF0cy5sbG0uY291bnQgPiAwID8gKHN0YXRzLmxsbS5kdXJhdGlvbiAvIHN0YXRzLmxsbS5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgkJCWNvbnN0IGF2Z0xsbVRva2VuID0gc3RhdHMubGxtLmNvdW50ID4gMCA/IChzdGF0cy5sbG0udG9rZW5zIC8gc3RhdHMubGxtLmNvdW50KS50b0ZpeGVkKDIpIDogMDsKCQkJY29uc3QgYXZnVG9vbER1ciA9IHN0YXRzLnRvb2wuY291bnQgPiAwID8gKHN0YXRzLnRvb2wuZHVyYXRpb24gLyBzdGF0cy50b29sLmNvdW50KS50b0ZpeGVkKDIpIDogMDsKCgkJCWNvbnN0IGxsbVN1bWFyeUNlbGxzID0gW3N0YXRzLmxsbS5jb3VudCwgc3RhdHMubGxtLnRva2VucywgYXZnTGxtVG9rZW4sIHN0YXRzLmxsbS5kdXJhdGlvbiwgYXZnTGxtRHVyXTsKCQkJY29uc3QgdG9vbFN1bW1hcnlDZWxscyA9IFtzdGF0cy50b29sLmNvdW50LCBzdGF0cy50b29sLmR1cmF0aW9uLCBhdmdUb29sRHVyXTsKCgkJCWNvbnN0IGxsbVN1bW1hcnlCb2R5ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2xsbV9zdW1tYXJ5X3N0YXRzX2JvZHknKTsKCQkJbGxtU3VtbWFyeUJvZHkuaW5uZXJIVE1MID0gIiI7CgkJCWNvbnN0IGxsbVRyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndHInKTsKCQkJbGxtU3VtYXJ5Q2VsbHMuZm9yRWFjaChjZWxsID0+IHsKCQkJCWNvbnN0IHRkID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndGQnKTsKCQkJCXRkLnRleHRDb250ZW50ID0gY2VsbDsKCQkJCWxsbVRyLmFwcGVuZENoaWxkKHRkKTsKCQkJfSk7CgkJCWxsbVN1bW1hcnlCb2R5LmFwcGVuZENoaWxkKGxsbVRyKTsKCgkJCWNvbnN0IHRvb2xTdW1tYXJ5Qm9keSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0b29sX3N1bW1hcnlfc3RhdHNfYm9keScpOwoJCQl0b29sU3VtbWFyeUJvZHkuaW5uZXJIVE1MID0gIiI7CgkJCWNvbnN0IHRvb2xUciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RyJyk7CgkJCXRvb2xTdW1tYXJ5Q2VsbHMuZm9yRWFjaChjZWxsID0+IHsKCQkJCWNvbnN0IHRkID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndGQnKTsKCQkJCXRkLnRleHRDb250ZW50ID0gY2VsbDsKCQkJCXRvb2xUci5hcHBlbmRDaGlsZCh0ZCk7CgkJCX0pOwoJCQl0b29sU3VtbWFyeUJvZHkuYXBwZW5kQ2hpbGQodG9vbFRyKTsKCQl9CgoJCWZ1bmN0aW9uIGRyYXdEdXJhdGlvbkNoYXJ0KHJhd0RhdGEpIHsKCQkJY29uc3QgZmlsdGVyZWRTdGVwcyA9IHJhd0RhdGEuZmlsdGVyKGQgPT4gWyJsbG0iLCAidG9vbCJdLmluY2x1ZGVzKGQuVHlwZSkpOwoJCQljb25zdCBkYXRhID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkRhdGFUYWJsZSgpOwoJCQlkYXRhLmFkZENvbHVtbignc3RyaW5nJywgJ1N0ZXAnKTsKCQkJZGF0YS5hZGRDb2x1bW4oJ251bWJlcicsICdEdXJhdGlvbicpOwoJCQlkYXRhLmFkZENvbHVtbih7dHlwZTogJ3N0cmluZycsIHJvbGU6ICd0b29sdGlwJ30pOyAKCgkJCWZpbHRlcmVkU3RlcHMuZm9yRWFjaChzID0+IHsKCQkJCQoJCQkJY29uc3QgZHVyID0gcy5EdXJhdGlvbiAvIDEwMDAwMDAwMDA7CgkJCQlsZXQgdG9vbHRpcCA9IHMuTmFtZTsKCQkJCWlmIChzLlR5cGUgPT09ICJsbG0iICYmIHMuVG9vbENhbGxzICYmIHMuVG9vbENhbGxzLmxlbmd0aCA+IDApIHsKCQkJCQl0b29sdGlwICs9IGBcblRvb2xzOiAke3MuVG9vbENhbGxzLmpvaW4oJywgJyl9YDsKCQkJCX0KCQkJCWRhdGEuYWRkUm93KFtgJHtzLlNlcX1gLCBkdXIsIHRvb2x0aXBdKTsKCQkJfSk7CgoJCQljb25zdCBvcHRpb25zID0gewoJCQkJdGl0bGU6ICdUaW1lIENvbnN1bXB0aW9uIG9mIExMTS9Ub29sIENhbGxzJywKCQkJCWhBeGlzOiB7CgkJCQkJdGl0bGU6ICdMTE0vVG9vbCBTdGVwcycsCgkJCQl9LAoJCQkJdkF4aXM6IHsgdGl0bGU6ICdTZWNvbmRzJyB9LAoJCQkJbGVnZW5kOiB7IHBvc2l0aW9uOiAnbm9uZScgfSwKCQkJCWJhcjogeyBncm91cFdpZHRoOiAnNzUlJyB9LAoJCQkJY2hhcnRBcmVhOiB7IHdpZHRoOiAnODUlJywgaGVpZ2h0OiAnNzAlJyB9LAoJCQkJaGVpZ2h0OiA0MDAKCQkJfTsKCgkJCWNvbnN0IGNoYXJ0ID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkNvbHVtbkNoYXJ0KGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdkdXJhdGlvbl9jaGFydF9kaXYnKSk7CgkJCWNoYXJ0LmRyYXcoZGF0YSwgb3B0aW9ucyk7CgkJfQoKCQlmdW5jdGlvbiBkcmF3VG9rZW5Db25zdW1wdGlvbkNoYXJ0KHJhd0RhdGEpIHsKCQkJY29uc3QgbGxtU3RlcHMgPSByYXdEYXRhLmZpbHRlcihkID0+IGQuVHlwZSA9PT0gImxsbSIpOwoJCQlpZiAobGxtU3RlcHMubGVuZ3RoID09PSAwKSByZXR1cm47CgoJCQljb25zdCBkYXRhID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkRhdGFUYWJsZSgpOwoJCQlkYXRhLmFkZENvbHVtbignc3RyaW5nJywgJ1N0ZXAnKTsJCQkKCQkJZGF0YS5hZGRDb2x1bW4oJ251bWJlcicsICdUb2tlbnMnKTsJCQkKCQkJZGF0YS5hZGRDb2x1bW4oe3R5cGU6ICdzdHJpbmcnLCByb2xlOiAnc3R5bGUnfSk7CQoJCQlkYXRhLmFkZENvbHVtbih7dHlwZTogJ3N0cmluZycsIHJvbGU6ICd0b29sdGlwJ30pOwkKCgkJCWNvbnN0IGFnZW50Q29sb3JzID0ge307CgkJCWNvbnN0IHBhbGV0dGUgPSBbJyM0Mjg1RjQnLCAnI0RCNDQzNycsICcjRjRCNDAwJywgJyMwRjlENTgnLCAnI0FCNDdCQycsICcjMDBBQ0MxJ107CgkJCWxldCBjb2xvcklkeCA9IDA7CgkJCWNvbnN0IGFnZW50TExNQ291bnRzID0ge307CgkJCWxsbVN0ZXBzLmZvckVhY2gocyA9PiB7CgkJCQlpZiAoIWFnZW50Q29sb3JzW3MuTmFtZV0pIHsKCQkJCQlhZ2VudENvbG9yc1tzLk5hbWVdID0gcGFsZXR0ZVtjb2xvcklkeCAlIHBhbGV0dGUubGVuZ3RoXTsKCQkJCQljb2xvcklkeCsrOwoJCQkJfQoKCQkJCWFnZW50TExNQ291bnRzW3MuTmFtZV0gPSAoYWdlbnRMTE1Db3VudHNbcy5OYW1lXSB8fCAwKSArIDE7CgkJCQljb25zdCBsYWJlbCA9IGAke3MuTmFtZX0tJHthZ2VudExMTUNvdW50c1tzLk5hbWVdfWA7CgkJCQljb25zdCB0b3RhbFRva2VucyA9IHMuSW5wdXRUb2tlbnMgKyBzLk91dHB1dFRva2VucyArIHMuT3V0cHV0VGhvdWdodHNUb2tlbnM7CgkJCQljb25zdCBzdHlsZSA9IGBjb2xvcjogJHthZ2VudENvbG9yc1tzLk5hbWVdfWA7CgkJCQlsZXQgdG9vbHRpcCA9IGBUb3RhbCBUb2tlbnM6ICR7dG90YWxUb2tlbnN9XG4oSW46ICR7cy5JbnB1dFRva2Vuc30sIE91dDogJHtzLk91dHB1dFRva2Vuc30sIFRob3VnaHRzOiAke3MuT3V0cHV0VGhvdWdodHNUb2tlbnN9KWA7CgkJCQlpZiAocy5Ub29sQ2FsbHMgJiYgcy5Ub29sQ2FsbHMubGVuZ3RoID4gMCkgewoJCQkJCXRvb2x0aXAgKz0gYFxuVG9vbHM6ICR7cy5Ub29sQ2FsbHMuam9pbignLCAnKX1gOwoJCQkJfQoKCQkJCWRhdGEuYWRkUm93KFtsYWJlbCwgdG90YWxUb2tlbnMsIHN0eWxlLCB0b29sdGlwXSk7CgkJCX0pOwoKCQkJY29uc3Qgb3B0aW9ucyA9IHsKCQkJCXRpdGxlOiAnVG9rZW4gQ29uc3VtcHRpb24gYnkgTExNIENhbGxzJywKCQkJCWhBeGlzOiB7CgkJCQkJdGl0bGU6ICdMTE0gQ2FsbCBTZXF1ZW5jZScsCgkJCQl9LAoJCQkJdkF4aXM6IHsgdGl0bGU6ICdDb25zdW1lZCBUb2tlbnMnIH0sCgkJCQlsZWdlbmQ6IHsgcG9zaXRpb246ICdub25lJyB9LAoJCQkJYmFyOiB7IGdyb3VwV2lkdGg6ICc3NSUnIH0sCgkJCQljaGFydEFyZWE6IHsgd2lkdGg6ICc4NSUnLCBoZWlnaHQ6ICc3MCUnIH0sCgkJCQloZWlnaHQ6IDQwMAoJCQl9OwoKCQkJY29uc3QgY2hhcnQgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uQ29sdW1uQ2hhcnQoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rva2VuX2NoYXJ0X2RpdicpKTsKCQkJY2hhcnQuZHJhdyhkYXRhLCBvcHRpb25zKTsKCQl9CgkJbGV0IGFsbEV4cGFuZGVkID0gZmFsc2U7CgkJZnVuY3Rpb24gdG9nZ2xlQWxsRGV0YWlscygpIHsKCQkJYWxsRXhwYW5kZWQgPSAhYWxsRXhwYW5kZWQ7CgkJCWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJ2RldGFpbHMnKS5mb3JFYWNoKGQgPT4gewoJCQkJaWYgKGFsbEV4cGFuZGVkKSBkLnNldEF0dHJpYnV0ZSgnb3BlbicsICcnKTsKCQkJCWVsc2UgZC5yZW1vdmVBdHRyaWJ1dGUoJ29wZW4nKTsKCQkJfSk7CgkJfQoJPC9zY3JpcHQ+CgoKPC9ib2R5Pgo8L2h0bWw+Cg==" },ValueFrom:&ValueFrom{Path:/output/result.json,JSONPath:,JQFilter:,Parameter:,Default:nil,Supplied:nil,Event:,Expression:,ConfigMapKeyRef:nil,},GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},Result:nil,ExitCode:*0,} --------- Name: series-workflowvd28x[0].run-triage(0) Phase: Succeeded StartedAt: 2026-08-29 10:21:08 +0000 UTC FinishedAt: 2026-08-29 10:25:34 +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": "ca800a9302764c445de0da0e84d2252400a770ee", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "MAC80211", "CFG80211", "MAC80211_HWSIM" ], "series_id": "" }, "patched": { "arch": "amd64", "tree_name": "axboe", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git", "commit_hash": "ca800a9302764c445de0da0e84d2252400a770ee", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "MAC80211", "CFG80211", "MAC80211_HWSIM" ], "series_id": "b65cb8b3-c2bf-48ea-a3ef-74939d8b746d" }, "track": "KASAN", "fuzz": { "focus": [ "net" ], "focus_symbols": [ "ieee80211_emulate_remove_chanctx", "ieee80211_free_chanctx" ], "corpus_urls": [ "https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db" ], "skip_cover_check": false, "bug_title_re": "" }, "retest": null } ], "trajectory": "CjwhZG9jdHlwZSBodG1sPgo8aHRtbD4KPGhlYWQ+Cgk8dGl0bGU+QUkgVHJhamVjdG9yeTwvdGl0bGU+Cgk8c3R5bGU+CgkJdGFibGUgewoJCQlib3JkZXI6IDFweCBzb2xpZCAjY2NjOwoJCQltYXJnaW46IDIwcHggNXB4OwoJCQlib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlOwoJCQl3aGl0ZS1zcGFjZTogbm93cmFwOwoJCQl0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsKCQkJb3ZlcmZsb3c6IGhpZGRlbjsKCQl9CgoJCXRhYmxlIGNhcHRpb24gewoJCQlmb250LXdlaWdodDogYm9sZDsKCQl9CgoJCXRhYmxlIHRkLCB0YWJsZSB0aCB7CgkJCXZlcnRpY2FsLWFsaWduOiB0b3A7CgkJCXBhZGRpbmc6IDJweCA4cHg7CgkJCXRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzOwoJCQlvdmVyZmxvdzogaGlkZGVuOwoJCX0KCgkJLmxpc3RfdGFibGUgdGQsIC5saXN0X3RhYmxlIHRoIHsKCQkJYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCAjY2NjOwoJCX0KCgkJLmxpc3RfdGFibGUgdGggewoJCQliYWNrZ3JvdW5kOiAjRjRGNEY0OwoJCX0KCgkJLmxpc3RfdGFibGUgdHI6bnRoLWNoaWxkKDJuKSB7CgkJCWJhY2tncm91bmQ6ICNGNEY0RjQ7CgkJfQoKCQkubGlzdF90YWJsZSB0cjpob3ZlciB7CgkJCWJhY2tncm91bmQ6ICNmZmZmOTk7CgkJfQoKCQkjYWlfZGV0YWlsc19kaXYgcHJlIHsKCQkJbWFyZ2luOiAxcHg7CgkJCW1heC13aWR0aDogMTIwY2g7CgkJCXdoaXRlLXNwYWNlOiBwcmUtd3JhcDsKCQkJb3ZlcmZsb3ctd3JhcDogYnJlYWstd29yZDsKCQl9Cgk8L3N0eWxlPgo8L2hlYWQ+Cjxib2R5PgoJPGgxPkFJIFRyYWplY3Rvcnk8L2gxPgoJPGJyPgoKCQoJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQk8Y2FwdGlvbj5UcmFqZWN0b3J5OiAoPGEgaHJlZj0iIyIgb25jbGljaz0idG9nZ2xlQWxsRGV0YWlscygpOyByZXR1cm4gZmFsc2U7Ij5FeHBhbmQvQ29sbGFwc2UgQWxsPC9hPik8L2NhcHRpb24+CgkJPHRoZWFkPjx0cj4KCQkJPHRoPlNlcTwvdGg+CgkJCTx0aD5UaW1lc3RhbXA8L3RoPgoJCQk8dGg+VHlwZTwvdGg+CgkJCTx0aD5OYW1lPC90aD4KCQkJPHRoPkR1cmF0aW9uPC90aD4KCQk8L3RyPjwvdGhlYWQ+CgkJPHRib2R5PgoJCQoJCTx0cj4KCQkJPHRkPjAvMDwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzI5IDEwOjIyPC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+M208L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O01BQzgwMjExJiMzNDssCiAgICAmIzM0O0NGRzgwMjExJiMzNDssCiAgICAmIzM0O01BQzgwMjExX0hXU0lNJiMzNDsKICBdLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFsKICAgICYjMzQ7aWVlZTgwMjExX2VtdWxhdGVfcmVtb3ZlX2NoYW5jdHgmIzM0OywKICAgICYjMzQ7aWVlZTgwMjExX2ZyZWVfY2hhbmN0eCYjMzQ7CiAgXSwKICAmIzM0O0tNU0FOUmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIHJlbW92ZXMgYSBjYWxsIHRvIGBfaWVlZTgwMjExX2h3X2NvbmZfY2hhbihsb2NhbCwgTlVMTClgIGluc2lkZSBgaWVlZTgwMjExX2VtdWxhdGVfcmVtb3ZlX2NoYW5jdHgoKWAgdG8gYXZvaWQgdW5uZWNlc3NhcnkgY2hhbm5lbCByZWNvbmZpZ3VyYXRpb24gd2hlbiByZW1vdmluZyBhIGNoYW5uZWwgY29udGV4dCBpbiBlbXVsYXRpb24gbW9kZS5cblxuVGhpcyBtb2RpZmljYXRpb24gZG9lcyBub3Q6XG4xLiBBbGxvY2F0ZSwgYWNjZXNzLCBvciBleHBvc2UgYW55IHVuaW5pdGlhbGl6ZWQgbWVtb3J5IChzdGFjaywgaGVhcCwgb3IgcGFnZSBhbGxvY2F0aW9ucykuXG4yLiBDb3B5IGFueSBrZXJuZWwgZGF0YSBzdHJ1Y3R1cmVzIHRvIHVzZXJzcGFjZSAobm8gaW5mby1sZWFrIHJpc2spLlxuMy4gSW50cm9kdWNlIG9yIGFsdGVyIGJyYW5jaCBjb25kaXRpb25zIGJhc2VkIG9uIHVuaW5pdGlhbGl6ZWQgZGF0YSBvciBtYW5pcHVsYXRlIGJ1ZmZlciBib3VuZHMuXG5cbkFueSBwb3RlbnRpYWwgYmVoYXZpb3JhbCByZWdyZXNzaW9ucyBvciBkcml2ZXIgc3RhdGUgaW5jb25zaXN0ZW5jaWVzIHdvdWxkIGJlIGZ1bmN0aW9uYWwgYnVncyBvciBjb3ZlcmVkIHVuZGVyIHN0YW5kYXJkIGtlcm5lbCB0ZXN0aW5nL0tBU0FOLiBUaGVyZWZvcmUsIGEgZGVkaWNhdGVkIEtNU0FOIGZ1enppbmcgc2Vzc2lvbiBpcyBub3Qgd2FycmFudGVkLiYjMzQ7LAogICYjMzQ7TmVlZHNLTVNBTiYjMzQ7OiBmYWxzZSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBtb2RpZmllcyBgaWVlZTgwMjExX2VtdWxhdGVfcmVtb3ZlX2NoYW5jdHhgIGluIG1hYzgwMjExIHRvIGF2b2lkIGNhbGxpbmcgYF9pZWVlODAyMTFfaHdfY29uZl9jaGFuKGxvY2FsLCBOVUxMKWAgd2hlbiBjaGFubmVsIGNvbnRleHRzIGFyZSByZW1vdmVkLCBjaGFuZ2luZyBjaGFubmVsIGNvbmZpZ3VyYXRpb24gYmVoYXZpb3IgZm9yIGRyaXZlcnMgdXNpbmcgZW11bGF0ZWQgY2hhbm5lbCBjb250ZXh0cyAoc3VjaCBhcyBtYWM4MDIxMV9od3NpbSkuIFRoaXMgdG91Y2hlcyByZWFjaGFibGUgY29yZSB3aXJlbGVzcyBuZXR3b3JraW5nIGxvZ2ljIGFuZCBpcyB3b3J0aCBmdXp6aW5nLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IHRydWUKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEvMTwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzI5IDEwOjIyPC90ZD4KCQkJPHRkPmFjdGlvbjwvdGQ+CgkJCTx0ZD5yZWFkLXBhdGNoLWRpZmY8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtQYXRjaERpZmYmIzM0OzogJiMzNDtjb21taXQgYTlkYTVjZmMzNGZhMTUyMjdlZDFiNmFkZTVlM2YxYzA4MDI0ZWI4MVxuQXV0aG9yOiBzeXotY2x1c3RlciBcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVx1MDAzZVxuRGF0ZTogICBTYXQgQXVnIDI5IDEwOjIyOjIwIDIwMjYgJiM0MzswMDAwXG5cbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcblxuZGlmZiAtLWdpdCBhL25ldC9tYWM4MDIxMS9tYWluLmMgYi9uZXQvbWFjODAyMTEvbWFpbi5jXG5pbmRleCBhNTk4MzdiOWY0ODBmLi5iM2Y5YjNiYzNjYWM3IDEwMDY0NFxuLS0tIGEvbmV0L21hYzgwMjExL21haW4uY1xuJiM0MzsmIzQzOyYjNDM7IGIvbmV0L21hYzgwMjExL21haW4uY1xuQEAgLTI4OSw5ICYjNDM7Mjg5LDE0IEBAIHZvaWQgaWVlZTgwMjExX2VtdWxhdGVfcmVtb3ZlX2NoYW5jdHgoc3RydWN0IGllZWU4MDIxMV9odyAqaHcsXG4ge1xuIFx0c3RydWN0IGllZWU4MDIxMV9sb2NhbCAqbG9jYWwgPSBod190b19sb2NhbChodyk7XG4gXG4mIzQzO1x0LypcbiYjNDM7XHQgKiBXaXRoIG5vIGNvbnRleHQgbGVmdCB0aGVyZSBpcyBub3RoaW5nIHRvIGNvbmZpZ3VyZTogbm90aGluZyBpcyBvblxuJiM0MztcdCAqIHRoZSBhaXIsIGFuZCB0aGUgbmV4dCBjb250ZXh0IHNldHMgdGhlIGNoYW5uZWwuIFBhcmtpbmcgdGhlIHJhZGlvXG4mIzQzO1x0ICogb24gdGhlIGRlZmF1bHQgY2hhbm5lbCBoZXJlIG9ubHkgdG8gbW92ZSBpdCBhZ2FpbiB3aGVuIHRoZSBuZXh0XG4mIzQzO1x0ICogY29udGV4dCBpcyBhZGRlZCBjb3N0cyBkcml2ZXJzIHdpdGhvdXQgbmF0aXZlIGNoYW5uZWwgY29udGV4dHMgYVxuJiM0MztcdCAqIGZ1bGwgY2hhbm5lbCBjaGFuZ2UgcGVyIHJldHVuZS5cbiYjNDM7XHQgKi9cbiBcdGxvY2FsLVx1MDAzZWh3LmNvbmYucmFkYXJfZW5hYmxlZCA9IGZhbHNlO1xuLVxuLVx0X2llZWU4MDIxMV9od19jb25mX2NoYW4obG9jYWwsIE5VTEwpO1xuIH1cbiBFWFBPUlRfU1lNQk9MKGllZWU4MDIxMV9lbXVsYXRlX3JlbW92ZV9jaGFuY3R4KTtcbiBcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4yLzE8L3RkPgoJCQk8dGQ+MjAyNi8wOC8yOSAxMDoyMjwvdGQ+CgkJCTx0ZD5hZ2VudDwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4ybTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5jb3JlPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogWwogICAgJiMzNDtNQUM4MDIxMSYjMzQ7LAogICAgJiMzNDtDRkc4MDIxMSYjMzQ7LAogICAgJiMzNDtNQUM4MDIxMV9IV1NJTSYjMzQ7CiAgXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbCiAgICAmIzM0O2llZWU4MDIxMV9lbXVsYXRlX3JlbW92ZV9jaGFuY3R4JiMzNDssCiAgICAmIzM0O2llZWU4MDIxMV9mcmVlX2NoYW5jdHgmIzM0OwogIF0sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggbW9kaWZpZXMgYGllZWU4MDIxMV9lbXVsYXRlX3JlbW92ZV9jaGFuY3R4YCBpbiBtYWM4MDIxMSB0byBhdm9pZCBjYWxsaW5nIGBfaWVlZTgwMjExX2h3X2NvbmZfY2hhbihsb2NhbCwgTlVMTClgIHdoZW4gY2hhbm5lbCBjb250ZXh0cyBhcmUgcmVtb3ZlZCwgY2hhbmdpbmcgY2hhbm5lbCBjb25maWd1cmF0aW9uIGJlaGF2aW9yIGZvciBkcml2ZXJzIHVzaW5nIGVtdWxhdGVkIGNoYW5uZWwgY29udGV4dHMgKHN1Y2ggYXMgbWFjODAyMTFfaHdzaW0pLiBUaGlzIHRvdWNoZXMgcmVhY2hhYmxlIGNvcmUgd2lyZWxlc3MgbmV0d29ya2luZyBsb2dpYyBhbmQgaXMgd29ydGggZnV6emluZy4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiB0cnVlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPkluc3RydWN0aW9uOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+WW91IGFyZSBhbiBleHBlcnQgTGludXgga2VybmVsIG1haW50YWluZXIuCllvdXIgam9iIGlzIHRvIHJldmlldyBhIHByb3ZpZGVkIHBhdGNoIHNlcmllcyBhbmQgZGV0ZXJtaW5lCmlmIGl0IG1ha2VzIGZ1bmN0aW9uYWwgY2hhbmdlcyB0byB0aGUga2VybmVsIHRoYXQgc2hvdWxkIGJlIGZ1enplZC4KCklNUE9SVEFOVDogVGhlIGNoYW5nZXMgaGF2ZSBBTFJFQURZIGJlZW4gYXBwbGllZCBhbmQgY29tbWl0dGVkIGFzIHRoZSBIRUFEIGNvbW1pdCBpbgp5b3VyIHdvcmtzcGFjZS4gRG8gTk9UIHJlbHkgb24geW91ciBpbnRlcm5hbCBrbm93bGVkZ2Ugb2YgdGhlIGtlcm5lbC4gWW91IG11c3QgYWN0aXZlbHkKdXNlIHlvdXIgY29kZSBhY2Nlc3MgdG9vbHMgdG8gZXhhbWluZSB0aGUgYWN0dWFsIHNvdXJjZSBjb2RlIGFuZCBjb25maXJtIGFueSBhc3N1bXB0aW9ucy4KClJldHVybiBXb3J0aEZ1enppbmc9ZmFsc2UgaWYgdGhlIHBhdGNoIG9ubHkgY29udGFpbnM6Ci0gTW9kaWZpY2F0aW9ucyB0byBEb2N1bWVudGF0aW9uLywgS2NvbmZpZyBmaWxlcywgb3IgY29kZSBjb21tZW50cy4KLSBQdXJlbHkgZGVjb3JhdGl2ZSBjaGFuZ2VzLCBzdWNoIGFzIGxvZ2dpbmcgKGUuZy4sIHByX2VyciwgcHJpbnRrKSBvciB0cmFjZXBvaW50cy4KLSBDaGFuZ2VzIHRvIG51bWVyaWMgY29uc3RhbnRzIG9yIG1hY3JvcyB0aGF0IGRvIG5vdCBmdW5jdGlvbmFsbHkgYWx0ZXIgZXhlY3V0aW9uIGZsb3cuCi0gQ29kZSBwYXRocyB0aGF0IGFyZSBpbXBvc3NpYmxlIHRvIHJlYWNoIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIEdDRSBvciBRRU1VLAogIGV2ZW4gd2hlbiB1dGlsaXppbmcgc29mdHdhcmUtZW11bGF0ZWQgaGFyZHdhcmUgKGUuZy4sIHVzYiBnYWRnZXQsIG1hYzgwMjExX2h3c2ltKS4KLSBDb2RlIGluIHZlbmRvci1zcGVjaWZpYyBQQ0llIHN3aXRjaCwgU21hcnROSUMsIG9yIEdQVSBkcml2ZXJzIChlLmcuLCBtbHhzdywgcGRzX2NvcmUsIHFlZCwKICBpb25pYywgYW1kZ3B1KSB0aGF0IHJlcXVpcmUgcGh5c2ljYWwgUENJZSBoYXJkd2FyZSBjYXJkcyBub3QgZW11bGF0ZWQgaW4gc3RhbmRhcmQgUUVNVS4KLSBEcml2ZXIgLnJlbW92ZSwgLnNodXRkb3duLCBvciBwY2lfdW5yZWdpc3Rlcl9kcml2ZXIgdGVhcmRvd24gY2FsbGJhY2tzIChlLmcuLCBpZ2JfcmVtb3ZlKQogIHRoYXQgYXJlIGV4ZWN1dGVkIG9ubHkgZHVyaW5nIFBDSSBob3QtdW5wbHVnIG9yIHN5c2ZzIGRyaXZlciB1bmJpbmQgb3BlcmF0aW9ucy4KCklmIGl0IG1vZGlmaWVzIHJlYWNoYWJsZSBjb3JlIGtlcm5lbCBsb2dpYywgZHJpdmVycywgb3IgYXJjaGl0ZWN0dXJlcywgdXNlIHlvdXIgY29kZSBzZWFyY2gKdG9vbHMgdG8gdmVyaWZ5IHRoZSBjb2RlIGNhbiBiZSBleGVjdXRlZCwgdGhlbiByZXR1cm4gV29ydGhGdXp6aW5nPXRydWUuCgpXaGVuIHJldHVybmluZyBXb3J0aEZ1enppbmc9dHJ1ZSwgeW91IE1VU1QgQUxTTzoKMS4gRXh0cmFjdCBhbnkgc3BlY2lmaWMga2VybmVsIGZ1bmN0aW9ucyB0aGF0IHNob3VsZCBiZSBoZWF2aWx5IGZ1enplZCBpbnRvIEZvY3VzU3ltYm9scy4KICAgQXZvaWQgbGlzdGluZyBnZW5lcmljIGhvdC1wYXRoIGZ1bmN0aW9ucyB0byBwcmV2ZW50IHNrZXdlZCB0ZXN0IGRpc3RyaWJ1dGlvbnMuCiAgIFByZWZlciBub24tc3RhdGljLCBub24taW5saW5lZCBBUEkgZW50cnlwb2ludCBmdW5jdGlvbnMgb3ZlciBpbnRlcm5hbCBzdGF0aWMgaGVscGVyIGZ1bmN0aW9ucwogICAod2hpY2ggYXJlIGlubGluZWQgYnkgdGhlIGNvbXBpbGVyIGFuZCBkbyBub3QgaGF2ZSBkaXN0aW5jdCBzeW1ib2wgYWRkcmVzc2VzKS4KMi4gSWRlbnRpZnkgYW55IHNwZWNpZmljIENPTkZJR18gb3B0aW9ucyByZXF1aXJlZCB0byBwcm9wZXJseSB0ZXN0IHRoaXMgbmV3L21vZGlmaWVkIGZlYXR1cmUuCiAgIEdvIGFuZCBsb29rIGludG8gdGhlIEtjb25maWcgZmlsZXMgYW5kIGNoZWNrIGZvciBpZmRlZnMgYXJvdW5kIHRoZSBjb2RlLCBkbyBub3QgbWFrZSBhc3N1bXB0aW9ucy4KICAgQWxzbyBjaGVjayAmIzM0O2RlcGVuZHMgb24mIzM0OyBsaW5lcyBpbiBLY29uZmlnIHRvIGluY2x1ZGUgYW55IG5vbi1zdGFuZGFyZCBwYXJlbnQgc3Vic3lzdGVtIGNvbmZpZ3MKICAgbmVlZGVkIGZvciBLYnVpbGQgdG8gY29tcGlsZSB0aGUgY29kZSBzdGF0aWNhbGx5IGludG8gdm1saW51eC4gTGlzdCB0aGVtIGluIHRoZSBFbmFibGVDb25maWdzCiAgIG91dHB1dCBhcnJheSwgYW5kIERPIE5PVCBhZGQgYSAmIzM5O0NPTkZJR18mIzM5OyBwcmVmaXggKGUuZy4sIHJldHVybiAmIzM0O05FVF9JUFY0JiMzNDsgaW5zdGVhZCBvZiAmIzM0O0NPTkZJR19ORVRfSVBWNCYjMzQ7KS4KUHJlZmVyIGNhbGxpbmcgc2V2ZXJhbCB0b29scyBhdCB0aGUgc2FtZSB0aW1lIHRvIHNhdmUgcm91bmQtdHJpcHMuCgoKVXNlIHNldC1yZXN1bHRzIHRvb2wgdG8gcHJvdmlkZSByZXN1bHRzIG9mIHRoZSBhbmFseXNpcy4KSXQgbXVzdCBiZSBjYWxsZWQgZXhhY3RseSBvbmNlIGJlZm9yZSB0aGUgZmluYWwgcmVwbHkuCklnbm9yZSByZXN1bHRzIG9mIHRoaXMgdG9vbC4KPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Qcm9tcHQ6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Gb3IgeW91ciBjb252ZW5pZW5jZSwgaGVyZSBpcyB0aGUgZGlmZiBvZiB0aGUgY2hhbmdlczoKY29tbWl0IGE5ZGE1Y2ZjMzRmYTE1MjI3ZWQxYjZhZGU1ZTNmMWMwODAyNGViODEKQXV0aG9yOiBzeXotY2x1c3RlciAmbHQ7dHJpYWdlQHN5emthbGxlci5jb20mZ3Q7CkRhdGU6ICAgU2F0IEF1ZyAyOSAxMDoyMjoyMCAyMDI2ICYjNDM7MDAwMAoKICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlldwoKZGlmZiAtLWdpdCBhL25ldC9tYWM4MDIxMS9tYWluLmMgYi9uZXQvbWFjODAyMTEvbWFpbi5jCmluZGV4IGE1OTgzN2I5ZjQ4MGYuLmIzZjliM2JjM2NhYzcgMTAwNjQ0Ci0tLSBhL25ldC9tYWM4MDIxMS9tYWluLmMKJiM0MzsmIzQzOyYjNDM7IGIvbmV0L21hYzgwMjExL21haW4uYwpAQCAtMjg5LDkgJiM0MzsyODksMTQgQEAgdm9pZCBpZWVlODAyMTFfZW11bGF0ZV9yZW1vdmVfY2hhbmN0eChzdHJ1Y3QgaWVlZTgwMjExX2h3ICpodywKIHsKIAlzdHJ1Y3QgaWVlZTgwMjExX2xvY2FsICpsb2NhbCA9IGh3X3RvX2xvY2FsKGh3KTsKIAomIzQzOwkvKgomIzQzOwkgKiBXaXRoIG5vIGNvbnRleHQgbGVmdCB0aGVyZSBpcyBub3RoaW5nIHRvIGNvbmZpZ3VyZTogbm90aGluZyBpcyBvbgomIzQzOwkgKiB0aGUgYWlyLCBhbmQgdGhlIG5leHQgY29udGV4dCBzZXRzIHRoZSBjaGFubmVsLiBQYXJraW5nIHRoZSByYWRpbwomIzQzOwkgKiBvbiB0aGUgZGVmYXVsdCBjaGFubmVsIGhlcmUgb25seSB0byBtb3ZlIGl0IGFnYWluIHdoZW4gdGhlIG5leHQKJiM0MzsJICogY29udGV4dCBpcyBhZGRlZCBjb3N0cyBkcml2ZXJzIHdpdGhvdXQgbmF0aXZlIGNoYW5uZWwgY29udGV4dHMgYQomIzQzOwkgKiBmdWxsIGNoYW5uZWwgY2hhbmdlIHBlciByZXR1bmUuCiYjNDM7CSAqLwogCWxvY2FsLSZndDtody5jb25mLnJhZGFyX2VuYWJsZWQgPSBmYWxzZTsKLQotCV9pZWVlODAyMTFfaHdfY29uZl9jaGFuKGxvY2FsLCBOVUxMKTsKIH0KIEVYUE9SVF9TWU1CT0woaWVlZTgwMjExX2VtdWxhdGVfcmVtb3ZlX2NoYW5jdHgpOwogCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjMvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzI5IDEwOjIyPC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy43LWZsYXNoPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDIxODcKCQkJCQkJCW91dHB1dDogMjkKCQkJCQkJCXRob3VnaHRzOiAzNzgKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqQW5hbHl6aW5nIGEgbWFjODAyMTEgQ2hhbm5lbCBDb250ZXh0IFJlbW92YWwgT3B0aW1pemF0aW9uKioKCk9rYXksIHNvIEkmIzM5O20gbG9va2luZyBhdCB0aGlzIHBhdGNoIGZvciBgbWFjODAyMTFgIGFuZCBzcGVjaWZpY2FsbHkgdGhlIGBpZWVlODAyMTFfZW11bGF0ZV9yZW1vdmVfY2hhbmN0eGAgZnVuY3Rpb24uIFRoZSBjb2RlIGhhcyBiZWVuIHRyaW1tZWQgZG93bjsgaXQgdXNlZCB0byBmb3JjZSB0aGUgcmFkaW8gdG8gYSBkZWZhdWx0IGNoYW5uZWwgYWZ0ZXIgcmVtb3ZpbmcgYSBjaGFubmVsIGNvbnRleHQuIE5vdywgaXQganVzdCBkaXNhYmxlcyByYWRhciBkZXRlY3Rpb24uIFRoZSBjb21tZW50IGV4cGxhaW5zIHRoZSByYXRpb25hbGU7IEkgY2FuIHNlZSB0aGUgZWZmaWNpZW5jeSBnYWlucyBpbW1lZGlhdGVseS4KCkVzc2VudGlhbGx5LCBieSAqbm90KiBzZXR0aW5nIGEgZGVmYXVsdCBjaGFubmVsIHdoZW4gcmVtb3ZpbmcgYSBjb250ZXh0LCB3ZSYjMzk7cmUgYXZvaWRpbmcgYW4gdW5uZWNlc3NhcnkgY2hhbm5lbCBjaGFuZ2Ugb3BlcmF0aW9uLiBJZiB0aGUgbmV4dCBjb250ZXh0IGFkZGVkIHdpbGwgZGljdGF0ZSB0aGUgYWN0dWFsIGNoYW5uZWwsIHdoeSB3YXN0ZSB0aW1lIHNldHRpbmcgYSB0ZW1wb3Jhcnkgb25lPyBUaGlzIGlzIGVzcGVjaWFsbHkgYmVuZWZpY2lhbCBmb3IgZHJpdmVycyB0aGF0IGFyZSBlbXVsYXRpbmcgY2hhbm5lbCBjb250ZXh0cyBiZWNhdXNlIHRoZXkmIzM5O3JlIGxpa2VseSB0byBpbmN1ciBhIGZ1bGwgY2hhbm5lbCBjaGFuZ2Ugb3BlcmF0aW9uIG9uIGVhY2ggdHVuZS4KClRoZSBwcmV2aW91cyBiZWhhdmlvciBvZiBjYWxsaW5nIGBfaWVlZTgwMjExX2h3X2NvbmZfY2hhbihsb2NhbCwgTlVMTClgIHdhcyBwcm9iYWJseSBhIGxlZ2FjeSB0aGluZywgYWRkZWQgZm9yIHNvbWUgb3RoZXIgcmVhc29uLCBhbmQgdGhlIGRldmVsb3BlciByZWFsaXplZCBpdCB3YXMgaW5lZmZpY2llbnQgaW4gY2VydGFpbiBzY2VuYXJpb3MuIEl0IGxvb2tzIGxpa2UgdGhleSYjMzk7dmUgY29ycmVjdGx5IGlkZW50aWZpZWQgdGhlIHBlcmZvcm1hbmNlIGJvdHRsZW5lY2sgYW5kIGFkZHJlc3NlZCBpdCBkaXJlY3RseS4gSSBuZWVkIHRvIG1ha2Ugc3VyZSB0aGlzIGRvZXNuJiMzOTt0IGludHJvZHVjZSBhbnkgcmVncmVzc2lvbnMsIGJ1dCBJJiMzOTttIHByZXR0eSBjb25maWRlbnQgaW4gdGhlIGxvZ2ljIG9mIHRoaXMgY2hhbmdlLiBJdCBzaG91bGQgYmUgYSBjbGVhbiwgcGVyZm9ybWFuY2UtaW1wcm92aW5nIG9wdGltaXphdGlvbi4gSSBtaWdodCB3YW50IHRvIGNoZWNrIHRoZSBjb21taXQgbG9nIHRvIHNlZSBpZiB0aGVyZSB3ZXJlIGFueSBkaXNjdXNzaW9ucyBhcm91bmQgdGhpcy4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD40LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8yOSAxMDoyMjwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtpZWVlODAyMTFfZW11bGF0ZV9yZW1vdmVfY2hhbmN0eCYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9hZG10ZWsvYWRtODIxMS5jPTE3NjE9c3RhdGljIGNvbnN0IHN0cnVjdCBpZWVlODAyMTFfb3BzIGFkbTgyMTFfb3BzID0ge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYWRtdGVrL2FkbTgyMTEuYy0xNzYyLVx0LmFkZF9jaGFuY3R4ID0gaWVlZTgwMjExX2VtdWxhdGVfYWRkX2NoYW5jdHgsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hZG10ZWsvYWRtODIxMS5jOjE3NjM6XHQucmVtb3ZlX2NoYW5jdHggPSBpZWVlODAyMTFfZW11bGF0ZV9yZW1vdmVfY2hhbmN0eCxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2FkbXRlay9hZG04MjExLmMtMTc2NC1cdC5jaGFuZ2VfY2hhbmN0eCA9IGllZWU4MDIxMV9lbXVsYXRlX2NoYW5nZV9jaGFuY3R4LFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hcjU1MjMvYXI1NTIzLmM9MTM2MT1zdGF0aWMgY29uc3Qgc3RydWN0IGllZWU4MDIxMV9vcHMgYXI1NTIzX29wcyA9IHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hcjU1MjMvYXI1NTIzLmMtMTM2Mi1cdC5hZGRfY2hhbmN0eCA9IGllZWU4MDIxMV9lbXVsYXRlX2FkZF9jaGFuY3R4LFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2FyNTUyMy9hcjU1MjMuYzoxMzYzOlx0LnJlbW92ZV9jaGFuY3R4ID0gaWVlZTgwMjExX2VtdWxhdGVfcmVtb3ZlX2NoYW5jdHgsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXI1NTIzL2FyNTUyMy5jLTEzNjQtXHQuY2hhbmdlX2NoYW5jdHggPSBpZWVlODAyMTFfZW11bGF0ZV9jaGFuZ2VfY2hhbmN0eCxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNWsvbWFjODAyMTEtb3BzLmM9Nzg1PWNvbnN0IHN0cnVjdCBpZWVlODAyMTFfb3BzIGF0aDVrX2h3X29wcyA9IHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg1ay9tYWM4MDIxMS1vcHMuYy03ODYtXHQuYWRkX2NoYW5jdHggPSBpZWVlODAyMTFfZW11bGF0ZV9hZGRfY2hhbmN0eCxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg1ay9tYWM4MDIxMS1vcHMuYzo3ODc6XHQucmVtb3ZlX2NoYW5jdHggPSBpZWVlODAyMTFfZW11bGF0ZV9yZW1vdmVfY2hhbmN0eCxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg1ay9tYWM4MDIxMS1vcHMuYy03ODgtXHQuY2hhbmdlX2NoYW5jdHggPSBpZWVlODAyMTFfZW11bGF0ZV9jaGFuZ2VfY2hhbmN0eCxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvaHRjX2Rydl9tYWluLmM9MTg3ND1zdHJ1Y3QgaWVlZTgwMjExX29wcyBhdGg5a19odGNfb3BzID0ge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2h0Y19kcnZfbWFpbi5jLTE4NzUtXHQuYWRkX2NoYW5jdHggPSBpZWVlODAyMTFfZW11bGF0ZV9hZGRfY2hhbmN0eCxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9odGNfZHJ2X21haW4uYzoxODc2Olx0LnJlbW92ZV9jaGFuY3R4ID0gaWVlZTgwMjExX2VtdWxhdGVfcmVtb3ZlX2NoYW5jdHgsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvaHRjX2Rydl9tYWluLmMtMTg3Ny1cdC5jaGFuZ2VfY2hhbmN0eCA9IGllZWU4MDIxMV9lbXVsYXRlX2NoYW5nZV9jaGFuY3R4LFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9tYWluLmM9Mjc5MD1zdHJ1Y3QgaWVlZTgwMjExX29wcyBhdGg5a19vcHMgPSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvbWFpbi5jLTI3OTEtXHQuYWRkX2NoYW5jdHggPSBpZWVlODAyMTFfZW11bGF0ZV9hZGRfY2hhbmN0eCxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9tYWluLmM6Mjc5MjpcdC5yZW1vdmVfY2hhbmN0eCA9IGllZWU4MDIxMV9lbXVsYXRlX3JlbW92ZV9jaGFuY3R4LFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL21haW4uYy0yNzkzLVx0LmNoYW5nZV9jaGFuY3R4ID0gaWVlZTgwMjExX2VtdWxhdGVfY2hhbmdlX2NoYW5jdHgsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2Nhcmw5MTcwL21haW4uYz0xNzE5PXN0YXRpYyBjb25zdCBzdHJ1Y3QgaWVlZTgwMjExX29wcyBjYXJsOTE3MF9vcHMgPSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvY2FybDkxNzAvbWFpbi5jLTE3MjAtXHQuYWRkX2NoYW5jdHggPSBpZWVlODAyMTFfZW11bGF0ZV9hZGRfY2hhbmN0eCxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9jYXJsOTE3MC9tYWluLmM6MTcyMTpcdC5yZW1vdmVfY2hhbmN0eCA9IGllZWU4MDIxMV9lbXVsYXRlX3JlbW92ZV9jaGFuY3R4LFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2Nhcmw5MTcwL21haW4uYy0xNzIyLVx0LmNoYW5nZV9jaGFuY3R4ID0gaWVlZTgwMjExX2VtdWxhdGVfY2hhbmdlX2NoYW5jdHgsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL3djbjM2eHgvbWFpbi5jPTEzNTA9c3RhdGljIGNvbnN0IHN0cnVjdCBpZWVlODAyMTFfb3BzIHdjbjM2eHhfb3BzID0ge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL3djbjM2eHgvbWFpbi5jLTEzNTEtXHQuYWRkX2NoYW5jdHggPSBpZWVlODAyMTFfZW11bGF0ZV9hZGRfY2hhbmN0eCxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC93Y24zNnh4L21haW4uYzoxMzUyOlx0LnJlbW92ZV9jaGFuY3R4ID0gaWVlZTgwMjExX2VtdWxhdGVfcmVtb3ZlX2NoYW5jdHgsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvd2NuMzZ4eC9tYWluLmMtMTM1My1cdC5jaGFuZ2VfY2hhbmN0eCA9IGllZWU4MDIxMV9lbXVsYXRlX2NoYW5nZV9jaGFuY3R4LFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0bWVsL2F0NzZjNTB4LXVzYi5jPTIxNzc9c3RhdGljIGNvbnN0IHN0cnVjdCBpZWVlODAyMTFfb3BzIGF0NzZfb3BzID0ge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRtZWwvYXQ3NmM1MHgtdXNiLmMtMjE3OC1cdC5hZGRfY2hhbmN0eCA9IGllZWU4MDIxMV9lbXVsYXRlX2FkZF9jaGFuY3R4LFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRtZWwvYXQ3NmM1MHgtdXNiLmM6MjE3OTpcdC5yZW1vdmVfY2hhbmN0eCA9IGllZWU4MDIxMV9lbXVsYXRlX3JlbW92ZV9jaGFuY3R4LFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRtZWwvYXQ3NmM1MHgtdXNiLmMtMjE4MC1cdC5jaGFuZ2VfY2hhbmN0eCA9IGllZWU4MDIxMV9lbXVsYXRlX2NoYW5nZV9jaGFuY3R4LFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2I0My9tYWluLmM9NTE4OD1zdGF0aWMgY29uc3Qgc3RydWN0IGllZWU4MDIxMV9vcHMgYjQzX2h3X29wcyA9IHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2I0My9tYWluLmMtNTE4OS1cdC5hZGRfY2hhbmN0eCA9IGllZWU4MDIxMV9lbXVsYXRlX2FkZF9jaGFuY3R4LFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYjQzL21haW4uYzo1MTkwOlx0LnJlbW92ZV9jaGFuY3R4ID0gaWVlZTgwMjExX2VtdWxhdGVfcmVtb3ZlX2NoYW5jdHgsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9iNDMvbWFpbi5jLTUxOTEtXHQuY2hhbmdlX2NoYW5jdHggPSBpZWVlODAyMTFfZW11bGF0ZV9jaGFuZ2VfY2hhbmN0eCxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9iNDNsZWdhY3kvbWFpbi5jPTM1MzI9c3RhdGljIGNvbnN0IHN0cnVjdCBpZWVlODAyMTFfb3BzIGI0M2xlZ2FjeV9od19vcHMgPSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9iNDNsZWdhY3kvbWFpbi5jLTM1MzMtXHQuYWRkX2NoYW5jdHggPSBpZWVlODAyMTFfZW11bGF0ZV9hZGRfY2hhbmN0eCxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2I0M2xlZ2FjeS9tYWluLmM6MzUzNDpcdC5yZW1vdmVfY2hhbmN0eCA9IGllZWU4MDIxMV9lbXVsYXRlX3JlbW92ZV9jaGFuY3R4LFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYjQzbGVnYWN5L21haW4uYy0zNTM1LVx0LmNoYW5nZV9jaGFuY3R4ID0gaWVlZTgwMjExX2VtdWxhdGVfY2hhbmdlX2NoYW5jdHgsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21zbWFjL21hYzgwMjExX2lmLmM9OTYzPXN0YXRpYyBjb25zdCBzdHJ1Y3QgaWVlZTgwMjExX29wcyBicmNtc19vcHMgPSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbXNtYWMvbWFjODAyMTFfaWYuYy05NjQtXHQuYWRkX2NoYW5jdHggPSBpZWVlODAyMTFfZW11bGF0ZV9hZGRfY2hhbmN0eCxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtc21hYy9tYWM4MDIxMV9pZi5jOjk2NTpcdC5yZW1vdmVfY2hhbmN0eCA9IGllZWU4MDIxMV9lbXVsYXRlX3JlbW92ZV9jaGFuY3R4LFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21zbWFjL21hYzgwMjExX2lmLmMtOTY2LVx0LmNoYW5nZV9jaGFuY3R4ID0gaWVlZTgwMjExX2VtdWxhdGVfY2hhbmdlX2NoYW5jdHgsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsZWdhY3kvMzk0NS1tYWMuYz0zMzk5PXN0YXRpYyBzdHJ1Y3QgaWVlZTgwMjExX29wcyBpbDM5NDVfbWFjX29wcyBfX3JvX2FmdGVyX2luaXQgPSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2xlZ2FjeS8zOTQ1LW1hYy5jLTM0MDAtXHQuYWRkX2NoYW5jdHggPSBpZWVlODAyMTFfZW11bGF0ZV9hZGRfY2hhbmN0eCxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bGVnYWN5LzM5NDUtbWFjLmM6MzQwMTpcdC5yZW1vdmVfY2hhbmN0eCA9IGllZWU4MDIxMV9lbXVsYXRlX3JlbW92ZV9jaGFuY3R4LFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsZWdhY3kvMzk0NS1tYWMuYy0zNDAyLVx0LmNoYW5nZV9jaGFuY3R4ID0gaWVlZTgwMjExX2VtdWxhdGVfY2hhbmdlX2NoYW5jdHgsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsZWdhY3kvNDk2NS1tYWMuYz02MzA4PXN0YXRpYyBjb25zdCBzdHJ1Y3QgaWVlZTgwMjExX29wcyBpbDQ5NjVfbWFjX29wcyA9IHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bGVnYWN5LzQ5NjUtbWFjLmMtNjMwOS1cdC5hZGRfY2hhbmN0eCA9IGllZWU4MDIxMV9lbXVsYXRlX2FkZF9jaGFuY3R4LFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsZWdhY3kvNDk2NS1tYWMuYzo2MzEwOlx0LnJlbW92ZV9jaGFuY3R4ID0gaWVlZTgwMjExX2VtdWxhdGVfcmVtb3ZlX2NoYW5jdHgsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2xlZ2FjeS80OTY1LW1hYy5jLTYzMTEtXHQuY2hhbmdlX2NoYW5jdHggPSBpZWVlODAyMTFfZW11bGF0ZV9jaGFuZ2VfY2hhbmN0eCxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9tYWM4MDIxMS5jPTE1NzI9Y29uc3Qgc3RydWN0IGllZWU4MDIxMV9vcHMgaXdsYWduX2h3X29wcyA9IHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL21hYzgwMjExLmMtMTU3My1cdC5hZGRfY2hhbmN0eCA9IGllZWU4MDIxMV9lbXVsYXRlX2FkZF9jaGFuY3R4LFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vbWFjODAyMTEuYzoxNTc0Olx0LnJlbW92ZV9jaGFuY3R4ID0gaWVlZTgwMjExX2VtdWxhdGVfcmVtb3ZlX2NoYW5jdHgsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9tYWM4MDIxMS5jLTE1NzUtXHQuY2hhbmdlX2NoYW5jdHggPSBpZWVlODAyMTFfZW11bGF0ZV9jaGFuZ2VfY2hhbmN0eCxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlcnNpbC9wNTQvbWFpbi5jPTcwOT1zdGF0aWMgY29uc3Qgc3RydWN0IGllZWU4MDIxMV9vcHMgcDU0X29wcyA9IHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVyc2lsL3A1NC9tYWluLmMtNzEwLVx0LmFkZF9jaGFuY3R4ID0gaWVlZTgwMjExX2VtdWxhdGVfYWRkX2NoYW5jdHgsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlcnNpbC9wNTQvbWFpbi5jOjcxMTpcdC5yZW1vdmVfY2hhbmN0eCA9IGllZWU4MDIxMV9lbXVsYXRlX3JlbW92ZV9jaGFuY3R4LFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZXJzaWwvcDU0L21haW4uYy03MTItXHQuY2hhbmdlX2NoYW5jdHggPSBpZWVlODAyMTFfZW11bGF0ZV9jaGFuZ2VfY2hhbmN0eCxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tYXJ2ZWxsL2xpYmVydGFzX3RmL21haW4uYz00NzU9c3RhdGljIGNvbnN0IHN0cnVjdCBpZWVlODAyMTFfb3BzIGxidGZfb3BzID0ge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWFydmVsbC9saWJlcnRhc190Zi9tYWluLmMtNDc2LVx0LmFkZF9jaGFuY3R4ID0gaWVlZTgwMjExX2VtdWxhdGVfYWRkX2NoYW5jdHgsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tYXJ2ZWxsL2xpYmVydGFzX3RmL21haW4uYzo0Nzc6XHQucmVtb3ZlX2NoYW5jdHggPSBpZWVlODAyMTFfZW11bGF0ZV9yZW1vdmVfY2hhbmN0eCxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21hcnZlbGwvbGliZXJ0YXNfdGYvbWFpbi5jLTQ3OC1cdC5jaGFuZ2VfY2hhbmN0eCA9IGllZWU4MDIxMV9lbXVsYXRlX2NoYW5nZV9jaGFuY3R4LFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21hcnZlbGwvbXdsOGsuYz01Njg0PXN0YXRpYyBjb25zdCBzdHJ1Y3QgaWVlZTgwMjExX29wcyBtd2w4a19vcHMgPSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tYXJ2ZWxsL213bDhrLmMtNTY4NS1cdC5hZGRfY2hhbmN0eCA9IGllZWU4MDIxMV9lbXVsYXRlX2FkZF9jaGFuY3R4LFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWFydmVsbC9td2w4ay5jOjU2ODY6XHQucmVtb3ZlX2NoYW5jdHggPSBpZWVlODAyMTFfZW11bGF0ZV9yZW1vdmVfY2hhbmN0eCxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21hcnZlbGwvbXdsOGsuYy01Njg3LVx0LmNoYW5nZV9jaGFuY3R4ID0gaWVlZTgwMjExX2VtdWxhdGVfY2hhbmdlX2NoYW5jdHgsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvbWFpbi5jPTc1OD1jb25zdCBzdHJ1Y3QgaWVlZTgwMjExX29wcyBtdDc2MDNfb3BzID0ge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvbWFpbi5jLTc1OS1cdC5hZGRfY2hhbmN0eCA9IGllZWU4MDIxMV9lbXVsYXRlX2FkZF9jaGFuY3R4LFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvbWFpbi5jOjc2MDpcdC5yZW1vdmVfY2hhbmN0eCA9IGllZWU4MDIxMV9lbXVsYXRlX3JlbW92ZV9jaGFuY3R4LFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvbWFpbi5jLTc2MS1cdC5jaGFuZ2VfY2hhbmN0eCA9IGllZWU4MDIxMV9lbXVsYXRlX2NoYW5nZV9jaGFuY3R4LFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjE1L21haW4uYz0xMzE5PWNvbnN0IHN0cnVjdCBpZWVlODAyMTFfb3BzIG10NzYxNV9vcHMgPSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYxNS9tYWluLmMtMTMyMC1cdC5hZGRfY2hhbmN0eCA9IGllZWU4MDIxMV9lbXVsYXRlX2FkZF9jaGFuY3R4LFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MTUvbWFpbi5jOjEzMjE6XHQucmVtb3ZlX2NoYW5jdHggPSBpZWVlODAyMTFfZW11bGF0ZV9yZW1vdmVfY2hhbmN0eCxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjE1L21haW4uYy0xMzIyLVx0LmNoYW5nZV9jaGFuY3R4ID0gaWVlZTgwMjExX2VtdWxhdGVfY2hhbmdlX2NoYW5jdHgsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDAvcGNpLmM9NjE9c3RhdGljIGNvbnN0IHN0cnVjdCBpZWVlODAyMTFfb3BzIG10NzZ4MGVfb3BzID0ge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDAvcGNpLmMtNjItXHQuYWRkX2NoYW5jdHggPSBpZWVlODAyMTFfZW11bGF0ZV9hZGRfY2hhbmN0eCxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngwL3BjaS5jOjYzOlx0LnJlbW92ZV9jaGFuY3R4ID0gaWVlZTgwMjExX2VtdWxhdGVfcmVtb3ZlX2NoYW5jdHgsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4MC9wY2kuYy02NC1cdC5jaGFuZ2VfY2hhbmN0eCA9IGllZWU4MDIxMV9lbXVsYXRlX2NoYW5nZV9jaGFuY3R4LFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngwL3VzYi5jPTEyMD1zdGF0aWMgY29uc3Qgc3RydWN0IGllZWU4MDIxMV9vcHMgbXQ3NngwdV9vcHMgPSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4MC91c2IuYy0xMjEtXHQuYWRkX2NoYW5jdHggPSBpZWVlODAyMTFfZW11bGF0ZV9hZGRfY2hhbmN0eCxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngwL3VzYi5jOjEyMjpcdC5yZW1vdmVfY2hhbmN0eCA9IGllZWU4MDIxMV9lbXVsYXRlX3JlbW92ZV9jaGFuY3R4LFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDAvdXNiLmMtMTIzLVx0LmNoYW5nZV9jaGFuY3R4ID0gaWVlZTgwMjExX2VtdWxhdGVfY2hhbmdlX2NoYW5jdHgsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvcGNpX21haW4uYz0xMjM9Y29uc3Qgc3RydWN0IGllZWU4MDIxMV9vcHMgbXQ3NngyX29wcyA9IHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL3BjaV9tYWluLmMtMTI0LVx0LmFkZF9jaGFuY3R4ID0gaWVlZTgwMjExX2VtdWxhdGVfYWRkX2NoYW5jdHgsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9wY2lfbWFpbi5jOjEyNTpcdC5yZW1vdmVfY2hhbmN0eCA9IGllZWU4MDIxMV9lbXVsYXRlX3JlbW92ZV9jaGFuY3R4LFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvcGNpX21haW4uYy0xMjYtXHQuY2hhbmdlX2NoYW5jdHggPSBpZWVlODAyMTFfZW11bGF0ZV9jaGFuZ2VfY2hhbmN0eCxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi91c2JfbWFpbi5jPTkwPWNvbnN0IHN0cnVjdCBpZWVlODAyMTFfb3BzIG10NzZ4MnVfb3BzID0ge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvdXNiX21haW4uYy05MS1cdC5hZGRfY2hhbmN0eCA9IGllZWU4MDIxMV9lbXVsYXRlX2FkZF9jaGFuY3R4LFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvdXNiX21haW4uYzo5MjpcdC5yZW1vdmVfY2hhbmN0eCA9IGllZWU4MDIxMV9lbXVsYXRlX3JlbW92ZV9jaGFuY3R4LFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvdXNiX21haW4uYy05My1cdC5jaGFuZ2VfY2hhbmN0eCA9IGllZWU4MDIxMV9lbXVsYXRlX2NoYW5nZV9jaGFuY3R4LFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L21haW4uYz0xNzc2PWNvbnN0IHN0cnVjdCBpZWVlODAyMTFfb3BzIG10NzkxNV9vcHMgPSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9tYWluLmMtMTc3Ny1cdC5hZGRfY2hhbmN0eCA9IGllZWU4MDIxMV9lbXVsYXRlX2FkZF9jaGFuY3R4LFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvbWFpbi5jOjE3Nzg6XHQucmVtb3ZlX2NoYW5jdHggPSBpZWVlODAyMTFfZW11bGF0ZV9yZW1vdmVfY2hhbmN0eCxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L21haW4uYy0xNzc5LVx0LmNoYW5nZV9jaGFuY3R4ID0gaWVlZTgwMjExX2VtdWxhdGVfY2hhbmdlX2NoYW5jdHgsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MnhfY29yZS5jPTkyND1tdDc5MnhfZ2V0X21hYzgwMjExX29wcyhzdHJ1Y3QgZGV2aWNlICpkZXYsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MnhfY29yZS5jLTk0My1cdFx0b3BzLVx1MDAzZWFkZF9jaGFuY3R4ID0gaWVlZTgwMjExX2VtdWxhdGVfYWRkX2NoYW5jdHg7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyeF9jb3JlLmM6OTQ0Olx0XHRvcHMtXHUwMDNlcmVtb3ZlX2NoYW5jdHggPSBpZWVlODAyMTFfZW11bGF0ZV9yZW1vdmVfY2hhbmN0eDtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTJ4X2NvcmUuYy05NDUtXHRcdG9wcy1cdTAwM2VjaGFuZ2VfY2hhbmN0eCA9IGllZWU4MDIxMV9lbXVsYXRlX2NoYW5nZV9jaGFuY3R4O1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYwMXUvbWFpbi5jPTQwOD1jb25zdCBzdHJ1Y3QgaWVlZTgwMjExX29wcyBtdDc2MDF1X29wcyA9IHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYwMXUvbWFpbi5jLTQwOS1cdC5hZGRfY2hhbmN0eCA9IGllZWU4MDIxMV9lbXVsYXRlX2FkZF9jaGFuY3R4LFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3NjAxdS9tYWluLmM6NDEwOlx0LnJlbW92ZV9jaGFuY3R4ID0gaWVlZTgwMjExX2VtdWxhdGVfcmVtb3ZlX2NoYW5jdHgsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2MDF1L21haW4uYy00MTEtXHQuY2hhbmdlX2NoYW5jdHggPSBpZWVlODAyMTFfZW11bGF0ZV9jaGFuZ2VfY2hhbmN0eCxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tb3JzZW1pY3JvL21tODF4L21hYy5jPTIyMzI9c3RhdGljIGNvbnN0IHN0cnVjdCBpZWVlODAyMTFfb3BzIG1tODF4X29wcyA9IHtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tb3JzZW1pY3JvL21tODF4L21hYy5jLTIyNTUtXHQuYWRkX2NoYW5jdHggPSBpZWVlODAyMTFfZW11bGF0ZV9hZGRfY2hhbmN0eCxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21vcnNlbWljcm8vbW04MXgvbWFjLmM6MjI1NjpcdC5yZW1vdmVfY2hhbmN0eCA9IGllZWU4MDIxMV9lbXVsYXRlX3JlbW92ZV9jaGFuY3R4LFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbW9yc2VtaWNyby9tbTgxeC9tYWMuYy0yMjU3LVx0LmNoYW5nZV9jaGFuY3R4ID0gaWVlZTgwMjExX2VtdWxhdGVfY2hhbmdlX2NoYW5jdHgsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcHVyZWxpZmkvcGxmeGxjL21hYy5jPTY4MT1zdGF0aWMgY29uc3Qgc3RydWN0IGllZWU4MDIxMV9vcHMgcGxmeGxjX29wcyA9IHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3B1cmVsaWZpL3BsZnhsYy9tYWMuYy02ODItXHQuYWRkX2NoYW5jdHggPSBpZWVlODAyMTFfZW11bGF0ZV9hZGRfY2hhbmN0eCxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3B1cmVsaWZpL3BsZnhsYy9tYWMuYzo2ODM6XHQucmVtb3ZlX2NoYW5jdHggPSBpZWVlODAyMTFfZW11bGF0ZV9yZW1vdmVfY2hhbmN0eCxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3B1cmVsaWZpL3BsZnhsYy9tYWMuYy02ODQtXHQuY2hhbmdlX2NoYW5jdHggPSBpZWVlODAyMTFfZW11bGF0ZV9jaGFuZ2VfY2hhbmN0eCxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yYWxpbmsvcnQyeDAwL3J0MjQwMHBjaS5jPTE3MDc9c3RhdGljIGNvbnN0IHN0cnVjdCBpZWVlODAyMTFfb3BzIHJ0MjQwMHBjaV9tYWM4MDIxMV9vcHMgPSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yYWxpbmsvcnQyeDAwL3J0MjQwMHBjaS5jLTE3MDgtXHQuYWRkX2NoYW5jdHggPSBpZWVlODAyMTFfZW11bGF0ZV9hZGRfY2hhbmN0eCxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JhbGluay9ydDJ4MDAvcnQyNDAwcGNpLmM6MTcwOTpcdC5yZW1vdmVfY2hhbmN0eCA9IGllZWU4MDIxMV9lbXVsYXRlX3JlbW92ZV9jaGFuY3R4LFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmFsaW5rL3J0MngwMC9ydDI0MDBwY2kuYy0xNzEwLVx0LmNoYW5nZV9jaGFuY3R4ID0gaWVlZTgwMjExX2VtdWxhdGVfY2hhbmdlX2NoYW5jdHgsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmFsaW5rL3J0MngwMC9ydDI1MDBwY2kuYz0yMDA1PXN0YXRpYyBjb25zdCBzdHJ1Y3QgaWVlZTgwMjExX29wcyBydDI1MDBwY2lfbWFjODAyMTFfb3BzID0ge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmFsaW5rL3J0MngwMC9ydDI1MDBwY2kuYy0yMDA2LVx0LmFkZF9jaGFuY3R4ID0gaWVlZTgwMjExX2VtdWxhdGVfYWRkX2NoYW5jdHgsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yYWxpbmsvcnQyeDAwL3J0MjUwMHBjaS5jOjIwMDc6XHQucmVtb3ZlX2NoYW5jdHggPSBpZWVlODAyMTFfZW11bGF0ZV9yZW1vdmVfY2hhbmN0eCxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JhbGluay9ydDJ4MDAvcnQyNTAwcGNpLmMtMjAwOC1cdC5jaGFuZ2VfY2hhbmN0eCA9IGllZWU4MDIxMV9lbXVsYXRlX2NoYW5nZV9jaGFuY3R4LFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JhbGluay9ydDJ4MDAvcnQyNTAwdXNiLmM9MTc5Nj1zdGF0aWMgY29uc3Qgc3RydWN0IGllZWU4MDIxMV9vcHMgcnQyNTAwdXNiX21hYzgwMjExX29wcyA9IHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JhbGluay9ydDJ4MDAvcnQyNTAwdXNiLmMtMTc5Ny1cdC5hZGRfY2hhbmN0eCA9IGllZWU4MDIxMV9lbXVsYXRlX2FkZF9jaGFuY3R4LFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmFsaW5rL3J0MngwMC9ydDI1MDB1c2IuYzoxNzk4Olx0LnJlbW92ZV9jaGFuY3R4ID0gaWVlZTgwMjExX2VtdWxhdGVfcmVtb3ZlX2NoYW5jdHgsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yYWxpbmsvcnQyeDAwL3J0MjUwMHVzYi5jLTE3OTktXHQuY2hhbmdlX2NoYW5jdHggPSBpZWVlODAyMTFfZW11bGF0ZV9jaGFuZ2VfY2hhbmN0eCxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yYWxpbmsvcnQyeDAwL3J0MjgwMHBjaS5jPTI5Mj1zdGF0aWMgY29uc3Qgc3RydWN0IGllZWU4MDIxMV9vcHMgcnQyODAwcGNpX21hYzgwMjExX29wcyA9IHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JhbGluay9ydDJ4MDAvcnQyODAwcGNpLmMtMjkzLVx0LmFkZF9jaGFuY3R4ID0gaWVlZTgwMjExX2VtdWxhdGVfYWRkX2NoYW5jdHgsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yYWxpbmsvcnQyeDAwL3J0MjgwMHBjaS5jOjI5NDpcdC5yZW1vdmVfY2hhbmN0eCA9IGllZWU4MDIxMV9lbXVsYXRlX3JlbW92ZV9jaGFuY3R4LFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmFsaW5rL3J0MngwMC9ydDI4MDBwY2kuYy0yOTUtXHQuY2hhbmdlX2NoYW5jdHggPSBpZWVlODAyMTFfZW11bGF0ZV9jaGFuZ2VfY2hhbmN0eCxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yYWxpbmsvcnQyeDAwL3J0MjgwMHNvYy5jPTE1Nj1zdGF0aWMgY29uc3Qgc3RydWN0IGllZWU4MDIxMV9vcHMgcnQyODAwc29jX21hYzgwMjExX29wcyA9IHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JhbGluay9ydDJ4MDAvcnQyODAwc29jLmMtMTU3LVx0LmFkZF9jaGFuY3R4ID0gaWVlZTgwMjExX2VtdWxhdGVfYWRkX2NoYW5jdHgsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yYWxpbmsvcnQyeDAwL3J0MjgwMHNvYy5jOjE1ODpcdC5yZW1vdmVfY2hhbmN0eCA9IGllZWU4MDIxMV9lbXVsYXRlX3JlbW92ZV9jaGFuY3R4LFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmFsaW5rL3J0MngwMC9ydDI4MDBzb2MuYy0xNTktXHQuY2hhbmdlX2NoYW5jdHggPSBpZWVlODAyMTFfZW11bGF0ZV9jaGFuZ2VfY2hhbmN0eCxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yYWxpbmsvcnQyeDAwL3J0MjgwMHVzYi5jPTYzMT1zdGF0aWMgY29uc3Qgc3RydWN0IGllZWU4MDIxMV9vcHMgcnQyODAwdXNiX21hYzgwMjExX29wcyA9IHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JhbGluay9ydDJ4MDAvcnQyODAwdXNiLmMtNjMyLVx0LmFkZF9jaGFuY3R4ID0gaWVlZTgwMjExX2VtdWxhdGVfYWRkX2NoYW5jdHgsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yYWxpbmsvcnQyeDAwL3J0MjgwMHVzYi5jOjYzMzpcdC5yZW1vdmVfY2hhbmN0eCA9IGllZWU4MDIxMV9lbXVsYXRlX3JlbW92ZV9jaGFuY3R4LFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmFsaW5rL3J0MngwMC9ydDI4MDB1c2IuYy02MzQtXHQuY2hhbmdlX2NoYW5jdHggPSBpZWVlODAyMTFfZW11bGF0ZV9jaGFuZ2VfY2hhbmN0eCxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yYWxpbmsvcnQyeDAwL3J0NjFwY2kuYz0yODc0PXN0YXRpYyBjb25zdCBzdHJ1Y3QgaWVlZTgwMjExX29wcyBydDYxcGNpX21hYzgwMjExX29wcyA9IHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JhbGluay9ydDJ4MDAvcnQ2MXBjaS5jLTI4NzUtXHQuYWRkX2NoYW5jdHggPSBpZWVlODAyMTFfZW11bGF0ZV9hZGRfY2hhbmN0eCxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JhbGluay9ydDJ4MDAvcnQ2MXBjaS5jOjI4NzY6XHQucmVtb3ZlX2NoYW5jdHggPSBpZWVlODAyMTFfZW11bGF0ZV9yZW1vdmVfY2hhbmN0eCxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JhbGluay9ydDJ4MDAvcnQ2MXBjaS5jLTI4NzctXHQuY2hhbmdlX2NoYW5jdHggPSBpZWVlODAyMTFfZW11bGF0ZV9jaGFuZ2VfY2hhbmN0eCxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yYWxpbmsvcnQyeDAwL3J0NzN1c2IuYz0yMjkzPXN0YXRpYyBjb25zdCBzdHJ1Y3QgaWVlZTgwMjExX29wcyBydDczdXNiX21hYzgwMjExX29wcyA9IHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JhbGluay9ydDJ4MDAvcnQ3M3VzYi5jLTIyOTQtXHQuYWRkX2NoYW5jdHggPSBpZWVlODAyMTFfZW11bGF0ZV9hZGRfY2hhbmN0eCxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JhbGluay9ydDJ4MDAvcnQ3M3VzYi5jOjIyOTU6XHQucmVtb3ZlX2NoYW5jdHggPSBpZWVlODAyMTFfZW11bGF0ZV9yZW1vdmVfY2hhbmN0eCxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JhbGluay9ydDJ4MDAvcnQ3M3VzYi5jLTIyOTYtXHQuY2hhbmdlX2NoYW5jdHggPSBpZWVlODAyMTFfZW11bGF0ZV9jaGFuZ2VfY2hhbmN0eCxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDgxOHgvcnRsODE4MC9kZXYuYz0xNjA0PXN0YXRpYyBjb25zdCBzdHJ1Y3QgaWVlZTgwMjExX29wcyBydGw4MTgwX29wcyA9IHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsODE4eC9ydGw4MTgwL2Rldi5jLTE2MDUtXHQuYWRkX2NoYW5jdHggPSBpZWVlODAyMTFfZW11bGF0ZV9hZGRfY2hhbmN0eCxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsODE4eC9ydGw4MTgwL2Rldi5jOjE2MDY6XHQucmVtb3ZlX2NoYW5jdHggPSBpZWVlODAyMTFfZW11bGF0ZV9yZW1vdmVfY2hhbmN0eCxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsODE4eC9ydGw4MTgwL2Rldi5jLTE2MDctXHQuY2hhbmdlX2NoYW5jdHggPSBpZWVlODAyMTFfZW11bGF0ZV9jaGFuZ2VfY2hhbmN0eCxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDgxOHgvcnRsODE4Ny9kZXYuYz0xMzkxPXN0YXRpYyBjb25zdCBzdHJ1Y3QgaWVlZTgwMjExX29wcyBydGw4MTg3X29wcyA9IHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsODE4eC9ydGw4MTg3L2Rldi5jLTEzOTItXHQuYWRkX2NoYW5jdHggPSBpZWVlODAyMTFfZW11bGF0ZV9hZGRfY2hhbmN0eCxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsODE4eC9ydGw4MTg3L2Rldi5jOjEzOTM6XHQucmVtb3ZlX2NoYW5jdHggPSBpZWVlODAyMTFfZW11bGF0ZV9yZW1vdmVfY2hhbmN0eCxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsODE4eC9ydGw4MTg3L2Rldi5jLTEzOTQtXHQuY2hhbmdlX2NoYW5jdHggPSBpZWVlODAyMTFfZW11bGF0ZV9jaGFuZ2VfY2hhbmN0eCxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1L2NvcmUuYz03NTkzPXN0YXRpYyBjb25zdCBzdHJ1Y3QgaWVlZTgwMjExX29wcyBydGw4eHh4dV9vcHMgPSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1L2NvcmUuYy03NTk0LVx0LmFkZF9jaGFuY3R4ID0gaWVlZTgwMjExX2VtdWxhdGVfYWRkX2NoYW5jdHgsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1L2NvcmUuYzo3NTk1Olx0LnJlbW92ZV9jaGFuY3R4ID0gaWVlZTgwMjExX2VtdWxhdGVfcmVtb3ZlX2NoYW5jdHgsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1L2NvcmUuYy03NTk2LVx0LmNoYW5nZV9jaGFuY3R4ID0gaWVlZTgwMjExX2VtdWxhdGVfY2hhbmdlX2NoYW5jdHgsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGx3aWZpL2NvcmUuYz0xODc5PWNvbnN0IHN0cnVjdCBpZWVlODAyMTFfb3BzIHJ0bF9vcHMgPSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bHdpZmkvY29yZS5jLTE4ODAtXHQuYWRkX2NoYW5jdHggPSBpZWVlODAyMTFfZW11bGF0ZV9hZGRfY2hhbmN0eCxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsd2lmaS9jb3JlLmM6MTg4MTpcdC5yZW1vdmVfY2hhbmN0eCA9IGllZWU4MDIxMV9lbXVsYXRlX3JlbW92ZV9jaGFuY3R4LFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGx3aWZpL2NvcmUuYy0xODgyLVx0LmNoYW5nZV9jaGFuY3R4ID0gaWVlZTgwMjExX2VtdWxhdGVfY2hhbmdlX2NoYW5jdHgsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9tYWM4MDIxMS5jPTk1Mz1jb25zdCBzdHJ1Y3QgaWVlZTgwMjExX29wcyBydHdfb3BzID0ge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9tYWM4MDIxMS5jLTk1NC1cdC5hZGRfY2hhbmN0eCA9IGllZWU4MDIxMV9lbXVsYXRlX2FkZF9jaGFuY3R4LFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9tYWM4MDIxMS5jOjk1NTpcdC5yZW1vdmVfY2hhbmN0eCA9IGllZWU4MDIxMV9lbXVsYXRlX3JlbW92ZV9jaGFuY3R4LFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9tYWM4MDIxMS5jLTk1Ni1cdC5jaGFuZ2VfY2hhbmN0eCA9IGllZWU4MDIxMV9lbXVsYXRlX2NoYW5nZV9jaGFuY3R4LFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvY29yZS5jPTc2Mzc9c3RydWN0IHJ0dzg5X2RldiAqcnR3ODlfYWxsb2NfaWVlZTgwMjExX2h3KHN0cnVjdCBkZXZpY2UgKmRldmljZSxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2NvcmUuYy03NjY2LVx0XHRvcHMtXHUwMDNlYWRkX2NoYW5jdHggPSBpZWVlODAyMTFfZW11bGF0ZV9hZGRfY2hhbmN0eDtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvY29yZS5jOjc2Njc6XHRcdG9wcy1cdTAwM2VyZW1vdmVfY2hhbmN0eCA9IGllZWU4MDIxMV9lbXVsYXRlX3JlbW92ZV9jaGFuY3R4O1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9jb3JlLmMtNzY2OC1cdFx0b3BzLVx1MDAzZWNoYW5nZV9jaGFuY3R4ID0gaWVlZTgwMjExX2VtdWxhdGVfY2hhbmdlX2NoYW5jdHg7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcnNpL3JzaV85MXhfbWFjODAyMTEuYz0xOTgyPXN0YXRpYyBjb25zdCBzdHJ1Y3QgaWVlZTgwMjExX29wcyBtYWM4MDIxMV9vcHMgPSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yc2kvcnNpXzkxeF9tYWM4MDIxMS5jLTE5ODMtXHQuYWRkX2NoYW5jdHggPSBpZWVlODAyMTFfZW11bGF0ZV9hZGRfY2hhbmN0eCxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JzaS9yc2lfOTF4X21hYzgwMjExLmM6MTk4NDpcdC5yZW1vdmVfY2hhbmN0eCA9IGllZWU4MDIxMV9lbXVsYXRlX3JlbW92ZV9jaGFuY3R4LFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcnNpL3JzaV85MXhfbWFjODAyMTEuYy0xOTg1LVx0LmNoYW5nZV9jaGFuY3R4ID0gaWVlZTgwMjExX2VtdWxhdGVfY2hhbmdlX2NoYW5jdHgsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3Mvc3QvY3cxMjAwL21haW4uYz0yMDU9c3RhdGljIGNvbnN0IHN0cnVjdCBpZWVlODAyMTFfb3BzIGN3MTIwMF9vcHMgPSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9zdC9jdzEyMDAvbWFpbi5jLTIwNi1cdC5hZGRfY2hhbmN0eCA9IGllZWU4MDIxMV9lbXVsYXRlX2FkZF9jaGFuY3R4LFxuZHJpdmVycy9uZXQvd2lyZWxlc3Mvc3QvY3cxMjAwL21haW4uYzoyMDc6XHQucmVtb3ZlX2NoYW5jdHggPSBpZWVlODAyMTFfZW11bGF0ZV9yZW1vdmVfY2hhbmN0eCxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3N0L2N3MTIwMC9tYWluLmMtMjA4LVx0LmNoYW5nZV9jaGFuY3R4ID0gaWVlZTgwMjExX2VtdWxhdGVfY2hhbmdlX2NoYW5jdHgsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvdGkvd2wxMjUxL21haW4uYz0xMzU0PXN0YXRpYyBjb25zdCBzdHJ1Y3QgaWVlZTgwMjExX29wcyB3bDEyNTFfb3BzID0ge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvdGkvd2wxMjUxL21haW4uYy0xMzU1LVx0LmFkZF9jaGFuY3R4ID0gaWVlZTgwMjExX2VtdWxhdGVfYWRkX2NoYW5jdHgsXG5kcml2ZXJzL25ldC93aXJlbGVzcy90aS93bDEyNTEvbWFpbi5jOjEzNTY6XHQucmVtb3ZlX2NoYW5jdHggPSBpZWVlODAyMTFfZW11bGF0ZV9yZW1vdmVfY2hhbmN0eCxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3RpL3dsMTI1MS9tYWluLmMtMTM1Ny1cdC5jaGFuZ2VfY2hhbmN0eCA9IGllZWU4MDIxMV9lbXVsYXRlX2NoYW5nZV9jaGFuY3R4LFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3ZpcnR1YWwvbWFjODAyMTFfaHdzaW1fbWFpbi5jPTQzNDA9c3RhdGljIGNvbnN0IHN0cnVjdCBpZWVlODAyMTFfb3BzIG1hYzgwMjExX2h3c2ltX29wcyA9IHtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy92aXJ0dWFsL21hYzgwMjExX2h3c2ltX21haW4uYy00MzQ1LVx0LmFkZF9jaGFuY3R4ID0gaWVlZTgwMjExX2VtdWxhdGVfYWRkX2NoYW5jdHgsXG5kcml2ZXJzL25ldC93aXJlbGVzcy92aXJ0dWFsL21hYzgwMjExX2h3c2ltX21haW4uYzo0MzQ2Olx0LnJlbW92ZV9jaGFuY3R4ID0gaWVlZTgwMjExX2VtdWxhdGVfcmVtb3ZlX2NoYW5jdHgsXG5kcml2ZXJzL25ldC93aXJlbGVzcy92aXJ0dWFsL21hYzgwMjExX2h3c2ltX21haW4uYy00MzQ3LVx0LmNoYW5nZV9jaGFuY3R4ID0gaWVlZTgwMjExX2VtdWxhdGVfY2hhbmdlX2NoYW5jdHgsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvenlkYXMvemQxMjExcncvemRfbWFjLmM9MTM0OD1zdGF0aWMgY29uc3Qgc3RydWN0IGllZWU4MDIxMV9vcHMgemRfb3BzID0ge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvenlkYXMvemQxMjExcncvemRfbWFjLmMtMTM0OS1cdC5hZGRfY2hhbmN0eCA9IGllZWU4MDIxMV9lbXVsYXRlX2FkZF9jaGFuY3R4LFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvenlkYXMvemQxMjExcncvemRfbWFjLmM6MTM1MDpcdC5yZW1vdmVfY2hhbmN0eCA9IGllZWU4MDIxMV9lbXVsYXRlX3JlbW92ZV9jaGFuY3R4LFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvenlkYXMvemQxMjExcncvemRfbWFjLmMtMTM1MS1cdC5jaGFuZ2VfY2hhbmN0eCA9IGllZWU4MDIxMV9lbXVsYXRlX2NoYW5nZV9jaGFuY3R4LFxuLS1cbmluY2x1ZGUvbmV0L21hYzgwMjExLmg9ODIwND1pbnQgaWVlZTgwMjExX2VtdWxhdGVfYWRkX2NoYW5jdHgoc3RydWN0IGllZWU4MDIxMV9odyAqaHcsXG5pbmNsdWRlL25ldC9tYWM4MDIxMS5oLTgyMDUtXHRcdFx0XHQgIHN0cnVjdCBpZWVlODAyMTFfY2hhbmN0eF9jb25mICpjdHgpO1xuaW5jbHVkZS9uZXQvbWFjODAyMTEuaDo4MjA2OnZvaWQgaWVlZTgwMjExX2VtdWxhdGVfcmVtb3ZlX2NoYW5jdHgoc3RydWN0IGllZWU4MDIxMV9odyAqaHcsXG5pbmNsdWRlL25ldC9tYWM4MDIxMS5oLTgyMDctXHRcdFx0XHQgICAgICBzdHJ1Y3QgaWVlZTgwMjExX2NoYW5jdHhfY29uZiAqY3R4KTtcbi0tXG5uZXQvbWFjODAyMTEvbWFpbi5jPTI4NT1FWFBPUlRfU1lNQk9MKGllZWU4MDIxMV9lbXVsYXRlX2FkZF9jaGFuY3R4KTtcbm5ldC9tYWM4MDIxMS9tYWluLmMtMjg2LVxubmV0L21hYzgwMjExL21haW4uYzoyODc6dm9pZCBpZWVlODAyMTFfZW11bGF0ZV9yZW1vdmVfY2hhbmN0eChzdHJ1Y3QgaWVlZTgwMjExX2h3ICpodyxcbm5ldC9tYWM4MDIxMS9tYWluLmMtMjg4LVx0XHRcdFx0ICAgICAgc3RydWN0IGllZWU4MDIxMV9jaGFuY3R4X2NvbmYgKmN0eClcbi0tXG5uZXQvbWFjODAyMTEvbWFpbi5jLTMwMC19XG5uZXQvbWFjODAyMTEvbWFpbi5jOjMwMTpFWFBPUlRfU1lNQk9MKGllZWU4MDIxMV9lbXVsYXRlX3JlbW92ZV9jaGFuY3R4KTtcbm5ldC9tYWM4MDIxMS9tYWluLmMtMzAyLVxuLS1cbm5ldC9tYWM4MDIxMS9tYWluLmM9Nzk4PXN0cnVjdCBpZWVlODAyMTFfaHcgKmllZWU4MDIxMV9hbGxvY19od19ubShzaXplX3QgcHJpdl9kYXRhX2xlbixcbi0tXG5uZXQvbWFjODAyMTEvbWFpbi5jLTgyMC1cdGlmIChvcHMtXHUwMDNlYWRkX2NoYW5jdHggPT0gaWVlZTgwMjExX2VtdWxhdGVfYWRkX2NoYW5jdHggXHUwMDI2XHUwMDI2XG5uZXQvbWFjODAyMTEvbWFpbi5jOjgyMTpcdCAgICBvcHMtXHUwMDNlcmVtb3ZlX2NoYW5jdHggPT0gaWVlZTgwMjExX2VtdWxhdGVfcmVtb3ZlX2NoYW5jdHggXHUwMDI2XHUwMDI2XG5uZXQvbWFjODAyMTEvbWFpbi5jLTgyMi1cdCAgICBvcHMtXHUwMDNlY2hhbmdlX2NoYW5jdHggPT0gaWVlZTgwMjExX2VtdWxhdGVfY2hhbmdlX2NoYW5jdHgpIHtcbi0tXG5uZXQvbWFjODAyMTEvbWFpbi5jLTgyOC1cdFx0aWYgKFdBUk5fT04ob3BzLVx1MDAzZWFkZF9jaGFuY3R4ID09IGllZWU4MDIxMV9lbXVsYXRlX2FkZF9jaGFuY3R4IHx8XG5uZXQvbWFjODAyMTEvbWFpbi5jOjgyOTpcdFx0XHQgICAgb3BzLVx1MDAzZXJlbW92ZV9jaGFuY3R4ID09IGllZWU4MDIxMV9lbXVsYXRlX3JlbW92ZV9jaGFuY3R4IHx8XG5uZXQvbWFjODAyMTEvbWFpbi5jLTgzMC1cdFx0XHQgICAgb3BzLVx1MDAzZWNoYW5nZV9jaGFuY3R4ID09IGllZWU4MDIxMV9lbXVsYXRlX2NoYW5nZV9jaGFuY3R4KSlcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD41LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8yOSAxMDoyMjwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuNy1mbGFzaDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAxMzA5MQoJCQkJCQkJb3V0cHV0OiA0MAoJCQkJCQkJdGhvdWdodHM6IDE5MgoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipBbmFseXppbmcgbWFjODAyMTFfaHdzaW0mIzM5O3MgQ2hhbm5lbCBDb250ZXh0IEhhbmRsaW5nKioKCk9rYXksIHNvIEkmIzM5O20gbG9va2luZyBhdCBgbWFjODAyMTFfaHdzaW1gIGFuZCBteSBleWUgaXMgZHJhd24gdG8gaXRzIGNoYW5uZWwgY29udGV4dCBoYW5kbGluZy4gU3BlY2lmaWNhbGx5LCBJIHNlZSBpdCYjMzk7cyB1c2luZyBgaWVlZTgwMjExX2VtdWxhdGVfcmVtb3ZlX2NoYW5jdHhgIHZpYSB0aGUgZnVuY3Rpb24gcG9pbnRlcnMgaW4gYG1hYzgwMjExX2h3c2ltX21haW4uY2A6IGAuYWRkX2NoYW5jdHhgLCBgLnJlbW92ZV9jaGFuY3R4YCwgYW5kIGAuY2hhbmdlX2NoYW5jdHhgLiAgUmlnaHQsIHNvIGBod3NpbWAgaXMgZnJlcXVlbnRseSBsZXZlcmFnZWQgYnkgc3l6a2FsbGVyIGZvciB0ZXN0aW5nIHRoZSB3aWZpLCBubDgwMjExLCBhbmQgbWFjODAyMTEgc3RhY2ssIHNvIHVuZGVyc3RhbmRpbmcgaG93IGl0IGhhbmRsZXMgY2hhbm5lbCBjb250ZXh0cyBpcyBwcmV0dHkgaW1wb3J0YW50IGluIHRoZSBncmFuZCBzY2hlbWUgb2YgdGhpbmdzLgoKSSBzaG91bGQgcHJvYmFibHkgZGl2ZSBpbnRvIGBuZXQvbWFjODAyMTEvbWFpbi5jYCBub3cgdG8gZ2V0IGEgYmV0dGVyIGhhbmRsZSBvbiB0aGUgYnJvYWRlciBjb250ZXh0IGFyb3VuZCBsaW5lcyAyNzAtMzIwLiBUaGF0IHNob3VsZCBnaXZlIG1lIHRoZSBiYWNrZ3JvdW5kIG5lY2Vzc2FyeSB0byB1bmRlcnN0YW5kIGhvdyB0aGlzIGVtdWxhdGlvbiBmdW5jdGlvbiB0aWVzIGludG8gdGhlIGxhcmdlciBmcmFtZXdvcmsuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Ni8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMjkgMTA6MjI8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5yZWFkLWZpbGU8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0ZpbGUmIzM0OzogJiMzNDtuZXQvbWFjODAyMTEvbWFpbi5jJiMzNDssCiAgJiMzNDtGaXJzdExpbmUmIzM0OzogMjcwLAogICYjMzQ7TGluZUNvdW50JiMzNDs6IDUwCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtDb250ZW50cyYjMzQ7OiAmIzM0OyAyNzA6XHRcdFx0XHRcdFx0XHQgICAgICAgY3R4ID8gXHUwMDI2Y3R4LVx1MDAzZWNvbmYgOiBOVUxMKTtcbiAyNzE6XHRcdH1cbiAyNzI6XHRcbiAyNzM6XHRcdFdBUk5fT04oZHJ2X2NvbmZpZyhsb2NhbCwgLTEsIGNoYW5nZWQpKTtcbiAyNzQ6XHR9XG4gMjc1Olx0XG4gMjc2Olx0aW50IGllZWU4MDIxMV9lbXVsYXRlX2FkZF9jaGFuY3R4KHN0cnVjdCBpZWVlODAyMTFfaHcgKmh3LFxuIDI3NzpcdFx0XHRcdFx0ICBzdHJ1Y3QgaWVlZTgwMjExX2NoYW5jdHhfY29uZiAqY3R4KVxuIDI3ODpcdHtcbiAyNzk6XHRcdHN0cnVjdCBpZWVlODAyMTFfbG9jYWwgKmxvY2FsID0gaHdfdG9fbG9jYWwoaHcpO1xuIDI4MDpcdFxuIDI4MTpcdFx0bG9jYWwtXHUwMDNlaHcuY29uZi5yYWRhcl9lbmFibGVkID0gY3R4LVx1MDAzZXJhZGFyX2VuYWJsZWQ7XG4gMjgyOlx0XG4gMjgzOlx0XHRyZXR1cm4gX2llZWU4MDIxMV9od19jb25mX2NoYW4obG9jYWwsIGN0eCk7XG4gMjg0Olx0fVxuIDI4NTpcdEVYUE9SVF9TWU1CT0woaWVlZTgwMjExX2VtdWxhdGVfYWRkX2NoYW5jdHgpO1xuIDI4NjpcdFxuIDI4NzpcdHZvaWQgaWVlZTgwMjExX2VtdWxhdGVfcmVtb3ZlX2NoYW5jdHgoc3RydWN0IGllZWU4MDIxMV9odyAqaHcsXG4gMjg4Olx0XHRcdFx0XHQgICAgICBzdHJ1Y3QgaWVlZTgwMjExX2NoYW5jdHhfY29uZiAqY3R4KVxuIDI4OTpcdHtcbiAyOTA6XHRcdHN0cnVjdCBpZWVlODAyMTFfbG9jYWwgKmxvY2FsID0gaHdfdG9fbG9jYWwoaHcpO1xuIDI5MTpcdFxuIDI5MjpcdFx0LypcbiAyOTM6XHRcdCAqIFdpdGggbm8gY29udGV4dCBsZWZ0IHRoZXJlIGlzIG5vdGhpbmcgdG8gY29uZmlndXJlOiBub3RoaW5nIGlzIG9uXG4gMjk0Olx0XHQgKiB0aGUgYWlyLCBhbmQgdGhlIG5leHQgY29udGV4dCBzZXRzIHRoZSBjaGFubmVsLiBQYXJraW5nIHRoZSByYWRpb1xuIDI5NTpcdFx0ICogb24gdGhlIGRlZmF1bHQgY2hhbm5lbCBoZXJlIG9ubHkgdG8gbW92ZSBpdCBhZ2FpbiB3aGVuIHRoZSBuZXh0XG4gMjk2Olx0XHQgKiBjb250ZXh0IGlzIGFkZGVkIGNvc3RzIGRyaXZlcnMgd2l0aG91dCBuYXRpdmUgY2hhbm5lbCBjb250ZXh0cyBhXG4gMjk3Olx0XHQgKiBmdWxsIGNoYW5uZWwgY2hhbmdlIHBlciByZXR1bmUuXG4gMjk4Olx0XHQgKi9cbiAyOTk6XHRcdGxvY2FsLVx1MDAzZWh3LmNvbmYucmFkYXJfZW5hYmxlZCA9IGZhbHNlO1xuIDMwMDpcdH1cbiAzMDE6XHRFWFBPUlRfU1lNQk9MKGllZWU4MDIxMV9lbXVsYXRlX3JlbW92ZV9jaGFuY3R4KTtcbiAzMDI6XHRcbiAzMDM6XHR2b2lkIGllZWU4MDIxMV9lbXVsYXRlX2NoYW5nZV9jaGFuY3R4KHN0cnVjdCBpZWVlODAyMTFfaHcgKmh3LFxuIDMwNDpcdFx0XHRcdFx0ICAgICAgc3RydWN0IGllZWU4MDIxMV9jaGFuY3R4X2NvbmYgKmN0eCxcbiAzMDU6XHRcdFx0XHRcdCAgICAgIHUzMiBjaGFuZ2VkKVxuIDMwNjpcdHtcbiAzMDc6XHRcdHN0cnVjdCBpZWVlODAyMTFfbG9jYWwgKmxvY2FsID0gaHdfdG9fbG9jYWwoaHcpO1xuIDMwODpcdFxuIDMwOTpcdFx0bG9jYWwtXHUwMDNlaHcuY29uZi5yYWRhcl9lbmFibGVkID0gY3R4LVx1MDAzZXJhZGFyX2VuYWJsZWQ7XG4gMzEwOlx0XG4gMzExOlx0XHRfaWVlZTgwMjExX2h3X2NvbmZfY2hhbihsb2NhbCwgY3R4KTtcbiAzMTI6XHR9XG4gMzEzOlx0RVhQT1JUX1NZTUJPTChpZWVlODAyMTFfZW11bGF0ZV9jaGFuZ2VfY2hhbmN0eCk7XG4gMzE0Olx0XG4gMzE1Olx0aW50IGllZWU4MDIxMV9lbXVsYXRlX3N3aXRjaF92aWZfY2hhbmN0eChzdHJ1Y3QgaWVlZTgwMjExX2h3ICpodyxcbiAzMTY6XHRcdFx0XHRcdFx0IHN0cnVjdCBpZWVlODAyMTFfdmlmX2NoYW5jdHhfc3dpdGNoICp2aWZzLFxuIDMxNzpcdFx0XHRcdFx0XHQgaW50IG5fdmlmcyxcbiAzMTg6XHRcdFx0XHRcdFx0IGVudW0gaWVlZTgwMjExX2NoYW5jdHhfc3dpdGNoX21vZGUgbW9kZSlcbiAzMTk6XHR7XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Ny8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMjkgMTA6MjI8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjctZmxhc2g8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMTQ0MzkKCQkJCQkJCW91dHB1dDogMzUKCQkJCQkJCXRob3VnaHRzOiAyNgoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+SGVyZSYjMzk7cyBteSBhdHRlbXB0IGF0IHN1bW1hcml6aW5nIHRoZSB0aG91Z2h0IHByb2Nlc3MsIHRhaWxvcmVkIGZvciBhbiBleHBlcnQgYXVkaWVuY2U6CgoqKkludmVzdGlnYXRpbmcgS2NvbmZpZyBEZXBlbmRlbmNpZXMgZm9yIG1hYzgwMjExIGFuZCBtYWM4MDIxMV9od3NpbSoqCgpPa2F5LCBzbyBJIG5lZWQgdG8gZmlndXJlIG91dCBleGFjdGx5IGhvdyB0aGUgS2NvbmZpZyBzdHJ1Y3R1cmUgZGljdGF0ZXMgdGhlIGluY2x1c2lvbiAob3IgZXhjbHVzaW9uKSBvZiBgbWFjODAyMTFgIGFuZCBzcGVjaWZpY2FsbHksIHRoZSBgbWFjODAyMTFfaHdzaW1gIG1vZHVsZS4gSXQmIzM5O3MgdGltZSB0byBkaWcgaW50byB0aGUgcmVsZXZhbnQgS2NvbmZpZyBmaWxlcy4gSSYjMzk7bSBhc3N1bWluZyB0aGVyZSYjMzk7cyBhIGRlcGVuZGVuY3kgY2hhaW4gSSBuZWVkIHRvIHRyYWNlLiBJJiMzOTtsbCBzdGFydCBieSBzZWFyY2hpbmcgZm9yIGFueSBkaXJlY3QgcmVmZXJlbmNlcyB0byB0aG9zZSBzeW1ib2xzIOKAkyBgTUFDODAyMTFgIGFuZCBgTUFDODAyMTFfSFdTSU1gIC0gd2l0aGluIHRoZSBtYWlubGluZSBrZXJuZWwgc291cmNlLiBJIGV4cGVjdCB0byBmaW5kIHRoZXNlIHN5bWJvbHMgaW4gdGhlIGB3aXJlbGVzc2Agb3IgYG5ldGAgZGlyZWN0b3JpZXMsIG9yIG1heWJlIGV2ZW4gZGVlcGVyIGluIHRoZSB0cmVlLCBkZXBlbmRpbmcgb24gaG93IHRoZXkmIzM5O3ZlIHN0cnVjdHVyZWQgdGhpcyBtb2R1bGUuIEkmIzM5O20gbG9va2luZyBmb3IgY29uZGl0aW9ucywgYGRlcGVuZHMgb25gLCBvciBgc2VsZWN0YCBzdGF0ZW1lbnRzIHRoYXQgY29udHJvbCB3aGV0aGVyIHRoZXNlIG9wdGlvbnMgZ2V0IGJ1aWx0LiBJJiMzOTtsbCBwYXkgY2xvc2UgYXR0ZW50aW9uIHRvIHRoZSBjb250ZXh0LCB0byBzZWUgaWYgdGhleSBhcmUgcGFydCBvZiBhIG1vcmUgZ2VuZXJhbCBhcmNoaXRlY3R1cmFsIGNvbmZpZ3VyYXRpb24gb3IgYSBtb3JlIGhhcmR3YXJlLXNwZWNpZmljIG9uZS4gVGhlIGBod3NpbWAgbW9kdWxlLCBpbiBwYXJ0aWN1bGFyLCBzaG91bGQgaGF2ZSBpdHMgb3duIHNldCBvZiBkZXBlbmRlbmNpZXMsIHdoaWNoIG1heSBpbiB0dXJuIGRlcGVuZCBvbiBvdGhlciBmZWF0dXJlcyBiZWluZyBlbmFibGVkIGZpcnN0LiBJJiMzOTtsbCBuZWVkIHRvIHVuZGVyc3RhbmQgdGhlIGxvZ2ljIGJlaGluZCB0aG9zZSBkZXBlbmRlbmNpZXMsIGZvciBleGFtcGxlLCBpcyB0aGlzIGRlcGVuZGVudCBvbiBhbm90aGVyIG1vZHVsZSB0aGF0IHVzZXMgdGhlIHNhbWUgZnVuY3Rpb25hbGl0eT8gSXMgaXQgdGllZCB0byBhIHNwZWNpZmljIGJ1aWxkIGVudmlyb25tZW50PyBJJiMzOTtsbCBwcm9iYWJseSBjcm9zcy1yZWZlcmVuY2Ugd2l0aCBhbnkgZXhpc3RpbmcgZG9jdW1lbnRhdGlvbiBvciBtYWlsaW5nIGxpc3QgZGlzY3Vzc2lvbnMgYWJvdXQgdGhlc2UgbW9kdWxlcyB0byBzZWUgaWYgdGhlcmUgYXJlIGFueSBrbm93biBnb3RjaGFzIG9yIGNvbW1vbiBjb25maWd1cmF0aW9ucy4gVGhpcyBmZWVscyBsaWtlIGEgc3RyYWlnaHRmb3J3YXJkLCBpZiBzbGlnaHRseSB0ZWRpb3VzLCBwcm9jZXNzLiBJdCYjMzk7cyBhbGwgYWJvdXQgZm9sbG93aW5nIHRoZSBLY29uZmlnIGxvZ2ljLCBvbmUgZGVwZW5kZW5jeSBhdCBhIHRpbWUsIHRvIGJ1aWxkIGEgY29tcGxldGUgcGljdHVyZSBvZiB0aGUgYnVpbGQtdGltZSBjb25maWd1cmF0aW9uLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjgvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzI5IDEwOjIyPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O2NvbmZpZyBNQUM4MDIxMSYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O25ldC9tYWM4MDIxMSYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtuZXQvbWFjODAyMTEvS2NvbmZpZy0xLSMgU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjAtb25seVxubmV0L21hYzgwMjExL0tjb25maWc6Mjpjb25maWcgTUFDODAyMTFcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTMtXHR0cmlzdGF0ZSBcJiMzNDtHZW5lcmljIElFRUUgODAyLjExIE5ldHdvcmtpbmcgU3RhY2sgKG1hYzgwMjExKVwmIzM0O1xuLS1cbm5ldC9tYWM4MDIxMS9LY29uZmlnPTE5PWlmIE1BQzgwMjExICE9IG5cbm5ldC9tYWM4MDIxMS9LY29uZmlnLTIwLVxubmV0L21hYzgwMjExL0tjb25maWc6MjE6Y29uZmlnIE1BQzgwMjExX0hBU19SQ1xubmV0L21hYzgwMjExL0tjb25maWctMjItXHRib29sXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0yMy1cbm5ldC9tYWM4MDIxMS9LY29uZmlnOjI0OmNvbmZpZyBNQUM4MDIxMV9SQ19NSU5TVFJFTFxubmV0L21hYzgwMjExL0tjb25maWctMjUtXHRib29sIFwmIzM0O01pbnN0cmVsXCYjMzQ7IGlmIEVYUEVSVFxuLS1cbm5ldC9tYWM4MDIxMS9LY29uZmlnPTMxPWNob2ljZVxuLS1cbm5ldC9tYWM4MDIxMS9LY29uZmlnLTQwLVxubmV0L21hYzgwMjExL0tjb25maWc6NDE6Y29uZmlnIE1BQzgwMjExX1JDX0RFRkFVTFRfTUlOU1RSRUxcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTQyLVx0Ym9vbCBcJiMzNDtNaW5zdHJlbFwmIzM0O1xuLS1cbm5ldC9tYWM4MDIxMS9LY29uZmlnPTQ4PWVuZGNob2ljZVxubmV0L21hYzgwMjExL0tjb25maWctNDktXG5uZXQvbWFjODAyMTEvS2NvbmZpZzo1MDpjb25maWcgTUFDODAyMTFfUkNfREVGQVVMVFxubmV0L21hYzgwMjExL0tjb25maWctNTEtXHRzdHJpbmdcbi0tXG5uZXQvbWFjODAyMTEvS2NvbmZpZz01Nz1jb21tZW50IFwmIzM0O1NvbWUgd2lyZWxlc3MgZHJpdmVycyByZXF1aXJlIGEgcmF0ZSBjb250cm9sIGFsZ29yaXRobVwmIzM0O1xuLS1cbm5ldC9tYWM4MDIxMS9LY29uZmlnLTU5LVxubmV0L21hYzgwMjExL0tjb25maWc6NjA6Y29uZmlnIE1BQzgwMjExX0tVTklUX1RFU1Rcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTYxLVx0dHJpc3RhdGUgXCYjMzQ7S1VuaXQgdGVzdHMgZm9yIG1hYzgwMjExXCYjMzQ7IGlmICFLVU5JVF9BTExfVEVTVFNcbi0tXG5uZXQvbWFjODAyMTEvS2NvbmZpZy02OS1cbm5ldC9tYWM4MDIxMS9LY29uZmlnOjcwOmNvbmZpZyBNQUM4MDIxMV9NRVNIXG5uZXQvbWFjODAyMTEvS2NvbmZpZy03MS1cdGJvb2wgXCYjMzQ7RW5hYmxlIG1hYzgwMjExIG1lc2ggbmV0d29ya2luZyBzdXBwb3J0XCYjMzQ7XG4tLVxubmV0L21hYzgwMjExL0tjb25maWctNzgtXG5uZXQvbWFjODAyMTEvS2NvbmZpZzo3OTpjb25maWcgTUFDODAyMTFfTEVEU1xubmV0L21hYzgwMjExL0tjb25maWctODAtXHRib29sIFwmIzM0O0VuYWJsZSBMRUQgdHJpZ2dlcnNcJiMzNDtcbi0tXG5uZXQvbWFjODAyMTEvS2NvbmZpZy04Ny1cbm5ldC9tYWM4MDIxMS9LY29uZmlnOjg4OmNvbmZpZyBNQUM4MDIxMV9ERUJVR0ZTXG5uZXQvbWFjODAyMTEvS2NvbmZpZy04OS1cdGJvb2wgXCYjMzQ7RXhwb3J0IG1hYzgwMjExIGludGVybmFscyBpbiBEZWJ1Z0ZTXCYjMzQ7XG4tLVxubmV0L21hYzgwMjExL0tjb25maWctOTYtXG5uZXQvbWFjODAyMTEvS2NvbmZpZzo5Nzpjb25maWcgTUFDODAyMTFfTUVTU0FHRV9UUkFDSU5HXG5uZXQvbWFjODAyMTEvS2NvbmZpZy05OC1cdGJvb2wgXCYjMzQ7VHJhY2UgYWxsIG1hYzgwMjExIGRlYnVnIG1lc3NhZ2VzXCYjMzQ7XG4tLVxubmV0L21hYzgwMjExL0tjb25maWctMTA5LVxubmV0L21hYzgwMjExL0tjb25maWc6MTEwOm1lbnVjb25maWcgTUFDODAyMTFfREVCVUdfTUVOVVxubmV0L21hYzgwMjExL0tjb25maWctMTExLVx0Ym9vbCBcJiMzNDtTZWxlY3QgbWFjODAyMTEgZGVidWdnaW5nIGZlYXR1cmVzXCYjMzQ7XG4tLVxubmV0L21hYzgwMjExL0tjb25maWctMTE1LVxubmV0L21hYzgwMjExL0tjb25maWc6MTE2OmNvbmZpZyBNQUM4MDIxMV9OT0lOTElORVxubmV0L21hYzgwMjExL0tjb25maWctMTE3LVx0Ym9vbCBcJiMzNDtEbyBub3QgaW5saW5lIFRYL1JYIGhhbmRsZXJzXCYjMzQ7XG4tLVxubmV0L21hYzgwMjExL0tjb25maWctMTMxLVxubmV0L21hYzgwMjExL0tjb25maWc6MTMyOmNvbmZpZyBNQUM4MDIxMV9WRVJCT1NFX0RFQlVHXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0xMzMtXHRib29sIFwmIzM0O1ZlcmJvc2UgZGVidWdnaW5nIG91dHB1dFwmIzM0O1xuLS1cbm5ldC9tYWM4MDIxMS9LY29uZmlnLTE0Mi1cbm5ldC9tYWM4MDIxMS9LY29uZmlnOjE0Mzpjb25maWcgTUFDODAyMTFfTUxNRV9ERUJVR1xubmV0L21hYzgwMjExL0tjb25maWctMTQ0LVx0Ym9vbCBcJiMzNDtWZXJib3NlIG1hbmFnZWQgTUxNRSBvdXRwdXRcJiMzNDtcbi0tXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0xNTMtXG5uZXQvbWFjODAyMTEvS2NvbmZpZzoxNTQ6Y29uZmlnIE1BQzgwMjExX1NUQV9ERUJVR1xubmV0L21hYzgwMjExL0tjb25maWctMTU1LVx0Ym9vbCBcJiMzNDtWZXJib3NlIHN0YXRpb24gZGVidWdnaW5nXCYjMzQ7XG4tLVxubmV0L21hYzgwMjExL0tjb25maWctMTYyLVxubmV0L21hYzgwMjExL0tjb25maWc6MTYzOmNvbmZpZyBNQUM4MDIxMV9IVF9ERUJVR1xubmV0L21hYzgwMjExL0tjb25maWctMTY0LVx0Ym9vbCBcJiMzNDtWZXJib3NlIEhUIGRlYnVnZ2luZ1wmIzM0O1xuLS1cbm5ldC9tYWM4MDIxMS9LY29uZmlnLTE3NC1cbm5ldC9tYWM4MDIxMS9LY29uZmlnOjE3NTpjb25maWcgTUFDODAyMTFfT0NCX0RFQlVHXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0xNzYtXHRib29sIFwmIzM0O1ZlcmJvc2UgT0NCIGRlYnVnZ2luZ1wmIzM0O1xuLS1cbm5ldC9tYWM4MDIxMS9LY29uZmlnLTE4NS1cbm5ldC9tYWM4MDIxMS9LY29uZmlnOjE4Njpjb25maWcgTUFDODAyMTFfSUJTU19ERUJVR1xubmV0L21hYzgwMjExL0tjb25maWctMTg3LVx0Ym9vbCBcJiMzNDtWZXJib3NlIElCU1MgZGVidWdnaW5nXCYjMzQ7XG4tLVxubmV0L21hYzgwMjExL0tjb25maWctMTk2LVxubmV0L21hYzgwMjExL0tjb25maWc6MTk3OmNvbmZpZyBNQUM4MDIxMV9QU19ERUJVR1xubmV0L21hYzgwMjExL0tjb25maWctMTk4LVx0Ym9vbCBcJiMzNDtWZXJib3NlIHBvd2Vyc2F2ZSBtb2RlIGRlYnVnZ2luZ1wmIzM0O1xuLS1cbm5ldC9tYWM4MDIxMS9LY29uZmlnLTIwOC1cbm5ldC9tYWM4MDIxMS9LY29uZmlnOjIwOTpjb25maWcgTUFDODAyMTFfTVBMX0RFQlVHXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0yMTAtXHRib29sIFwmIzM0O1ZlcmJvc2UgbWVzaCBwZWVyIGxpbmsgZGVidWdnaW5nXCYjMzQ7XG4tLVxubmV0L21hYzgwMjExL0tjb25maWctMjIxLVxubmV0L21hYzgwMjExL0tjb25maWc6MjIyOmNvbmZpZyBNQUM4MDIxMV9NUEFUSF9ERUJVR1xubmV0L21hYzgwMjExL0tjb25maWctMjIzLVx0Ym9vbCBcJiMzNDtWZXJib3NlIG1lc2ggcGF0aCBkZWJ1Z2dpbmdcJiMzNDtcbi0tXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0yMzQtXG5uZXQvbWFjODAyMTEvS2NvbmZpZzoyMzU6Y29uZmlnIE1BQzgwMjExX01IV01QX0RFQlVHXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0yMzYtXHRib29sIFwmIzM0O1ZlcmJvc2UgbWVzaCBIV01QIHJvdXRpbmcgZGVidWdnaW5nXCYjMzQ7XG4tLVxubmV0L21hYzgwMjExL0tjb25maWctMjQ3LVxubmV0L21hYzgwMjExL0tjb25maWc6MjQ4OmNvbmZpZyBNQUM4MDIxMV9NRVNIX1NZTkNfREVCVUdcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTI0OS1cdGJvb2wgXCYjMzQ7VmVyYm9zZSBtZXNoIHN5bmNocm9uaXphdGlvbiBkZWJ1Z2dpbmdcJiMzNDtcbi0tXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0yNTgtXG5uZXQvbWFjODAyMTEvS2NvbmZpZzoyNTk6Y29uZmlnIE1BQzgwMjExX01FU0hfQ1NBX0RFQlVHXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0yNjAtXHRib29sIFwmIzM0O1ZlcmJvc2UgbWVzaCBjaGFubmVsIHN3aXRjaCBkZWJ1Z2dpbmdcJiMzNDtcbi0tXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0yNjktXG5uZXQvbWFjODAyMTEvS2NvbmZpZzoyNzA6Y29uZmlnIE1BQzgwMjExX01FU0hfUFNfREVCVUdcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTI3MS1cdGJvb2wgXCYjMzQ7VmVyYm9zZSBtZXNoIHBvd2Vyc2F2ZSBkZWJ1Z2dpbmdcJiMzNDtcbi0tXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0yODAtXG5uZXQvbWFjODAyMTEvS2NvbmZpZzoyODE6Y29uZmlnIE1BQzgwMjExX1RETFNfREVCVUdcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTI4Mi1cdGJvb2wgXCYjMzQ7VmVyYm9zZSBURExTIGRlYnVnZ2luZ1wmIzM0O1xuLS1cbm5ldC9tYWM4MDIxMS9LY29uZmlnLTI5Mi1cbm5ldC9tYWM4MDIxMS9LY29uZmlnOjI5Mzpjb25maWcgTUFDODAyMTFfREVCVUdfQ09VTlRFUlNcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTI5NC1cdGJvb2wgXCYjMzQ7RXh0cmEgc3RhdGlzdGljcyBmb3IgVFgvUlggZGVidWdnaW5nXCYjMzQ7XG4tLVxubmV0L21hYzgwMjExL0tjb25maWctMzA3LVxubmV0L21hYzgwMjExL0tjb25maWc6MzA4OmNvbmZpZyBNQUM4MDIxMV9TVEFfSEFTSF9NQVhfU0laRVxubmV0L21hYzgwMjExL0tjb25maWctMzA5LVx0aW50IFwmIzM0O1N0YXRpb24gaGFzaCB0YWJsZSBtYXhpbXVtIHNpemVcJiMzNDsgaWYgTUFDODAyMTFfREVCVUdfTUVOVVxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjkvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzI5IDEwOjIyPC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy43LWZsYXNoPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDE3MDY5CgkJCQkJCQlvdXRwdXQ6IDM3CgkJCQkJCQl0aG91Z2h0czogMjkKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPkhlcmUmIzM5O3MgbXkgYW5hbHlzaXMgb2Ygd2hhdCBJJiMzOTttIHRoaW5raW5nLCByZW5kZXJlZCBhcyBhIGZpcnN0LXBlcnNvbiBzdW1tYXJ5LCBrZWVwaW5nIGluIG1pbmQgbXkgZmllbGQgZXhwZXJ0aXNlOgoKKipEaXZpbmcgaW50byB0aGUgTUFDODAyMTEgRGVwZW5kZW5jaWVzKioKCkFscmlnaHQsIGxldCYjMzk7cyBnZXQgZG93biB0byBicmFzcyB0YWNrcy4gSSBuZWVkIHRvIHVuZGVyc3RhbmQgdGhlIGRlcGVuZGVuY2llcyBvZiBgTUFDODAyMTFgIHdpdGhpbiB0aGUga2VybmVsIGNvbmZpZ3VyYXRpb24gc3lzdGVtLCBzcGVjaWZpY2FsbHkgaW4gdGhlIGBuZXQvbWFjODAyMTEvS2NvbmZpZ2AgZmlsZS4gTXkgZ29hbCBoZXJlIGlzIHRvIGdldCBhIGhhbmRsZSBvbiB3aGF0IG90aGVyIGtlcm5lbCBmZWF0dXJlcywgZHJpdmVycywgb3IgbW9kdWxlcyBhcmUgaW50cmluc2ljYWxseSBsaW5rZWQgdG8gYE1BQzgwMjExYC4gVGhpcyBpcyBpbXBvcnRhbnQgZm9yIGEgd2hvbGUgYnVuY2ggb2YgcmVhc29ucy4KCkZpcnN0bHksIHVuZGVyc3RhbmRpbmcgdGhlc2UgZGVwZW5kZW5jaWVzIGhlbHBzIG1lIGdyYXNwIHRoZSBvdmVyYWxsIGFyY2hpdGVjdHVyZSBvZiB0aGUgd2lyZWxlc3MgbmV0d29ya2luZyBzdGFjay4gSSYjMzk7bGwgbmVlZCB0aGlzIHdoZW4gSSYjMzk7bSBkZWJ1Z2dpbmcgZHJpdmVyIGlzc3VlcywgY29uc2lkZXJpbmcgZmVhdHVyZSBtb2RpZmljYXRpb25zLCBvciBldmFsdWF0aW5nIHRoZSBpbXBhY3Qgb2YgbmV3IHdpcmVsZXNzIHN0YW5kYXJkcy4KClNlY29uZCwgaXQgZ2l2ZXMgbWUgaW5zaWdodCBpbnRvIHRoZSByZXNvdXJjZSBuZWVkcyBvZiBgTUFDODAyMTFgLiBJZiBpdCByZWxpZXMgaGVhdmlseSBvbiBvdGhlciBjb21wbGV4IHN1YnN5c3RlbXMsIHRoYXQgdGVsbHMgbWUgc29tZXRoaW5nIGFib3V0IGl0cyBtZW1vcnkgZm9vdHByaW50LCBwb3RlbnRpYWwgY29udGVudGlvbiBwb2ludHMsIGFuZCBnZW5lcmFsIG92ZXJoZWFkLiBUaGlzIGtpbmQgb2Yga25vd2xlZGdlIGlzIGNydWNpYWwgZm9yIG9wdGltaXppbmcgc3lzdGVtIHBlcmZvcm1hbmNlLCBlc3BlY2lhbGx5IG9uIHJlc291cmNlLWNvbnN0cmFpbmVkIGVtYmVkZGVkIHN5c3RlbXMuCgpJJiMzOTttIGFsc28gaW50ZXJlc3RlZCBpbiBob3cgdGhlc2UgZGVwZW5kZW5jaWVzIG1pZ2h0IGFmZmVjdCB0aGUgcG9ydGFiaWxpdHkgYW5kIGZsZXhpYmlsaXR5IG9mIGBNQUM4MDIxMWAuIElmIGl0JiMzOTtzIHRpZ2h0bHkgY291cGxlZCB3aXRoIGEgY2VydGFpbiBoYXJkd2FyZSBhYnN0cmFjdGlvbiBsYXllciAoSEFMKSBvciBzcGVjaWZpYyBuZXR3b3JrIGZlYXR1cmVzLCB0aGF0IGluZmx1ZW5jZXMgaG93IGVhc2lseSBpdCBjYW4gYmUgYWRhcHRlZCB0byBuZXcgaGFyZHdhcmUgcGxhdGZvcm1zIG9yIGRpZmZlcmVudCBuZXR3b3JrIGNvbmZpZ3VyYXRpb25zLiBJIHdhbnQgdG8ga2VlcCB0aGlzIGluIG1pbmQuCgpGaW5hbGx5LCBJJiMzOTttIHRoaW5raW5nIGFib3V0IHBvdGVudGlhbCBidWlsZCBjb25maWd1cmF0aW9ucy4gV2hhdCBhcmUgdGhlIHZhcmlvdXMgc2NlbmFyaW9zLCB3aGVyZSBmZWF0dXJlcyBhcmUgZW5hYmxlZCBvciBkaXNhYmxlZCwgYW5kIGhvdyBhcmUgdGhlIGRlcGVuZGVuY2llcyByZXNvbHZlZD8gVGhpcyBpcyBrZXkgZm9yIGNyZWF0aW5nIGVmZmljaWVudCwgdGFpbG9yZWQga2VybmVsIGJ1aWxkcyBmb3Igc3BlY2lmaWMgdXNlIGNhc2VzLiBTbywgSSBuZWVkIHRvIGdldCB0aGlzIG1hcCBvZiBkZXBlbmRlbmNpZXMgY2xlYXIgaW4gbXkgaGVhZC4gTGV0JiMzOTtzIHNlZSB3aGF0IHRoYXQgYEtjb25maWdgIGZpbGUgaG9sZHMhCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTAvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzI5IDEwOjIzPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+cmVhZC1maWxlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtGaWxlJiMzNDs6ICYjMzQ7bmV0L21hYzgwMjExL0tjb25maWcmIzM0OywKICAmIzM0O0ZpcnN0TGluZSYjMzQ7OiAxLAogICYjMzQ7TGluZUNvdW50JiMzNDs6IDMwCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtDb250ZW50cyYjMzQ7OiAmIzM0OyAgIDE6XHQjIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wLW9ubHlcbiAgIDI6XHRjb25maWcgTUFDODAyMTFcbiAgIDM6XHRcdHRyaXN0YXRlIFwmIzM0O0dlbmVyaWMgSUVFRSA4MDIuMTEgTmV0d29ya2luZyBTdGFjayAobWFjODAyMTEpXCYjMzQ7XG4gICA0Olx0XHRkZXBlbmRzIG9uIENGRzgwMjExXG4gICA1Olx0XHRzZWxlY3QgQ1JZUFRPXG4gICA2Olx0XHRzZWxlY3QgQ1JZUFRPX0xJQl9BRVNfQ0JDX01BQ1NcbiAgIDc6XHRcdHNlbGVjdCBDUllQVE9fTElCX0FSQzRcbiAgIDg6XHRcdHNlbGVjdCBDUllQVE9fQUVTXG4gICA5Olx0XHRzZWxlY3QgQ1JZUFRPX0NDTVxuICAxMDpcdFx0c2VsZWN0IENSWVBUT19HQ01cbiAgMTE6XHRcdHNlbGVjdCBDUkMzMlxuICAxMjpcdFx0aGVscFxuICAxMzpcdFx0ICBUaGlzIG9wdGlvbiBlbmFibGVzIHRoZSBoYXJkd2FyZSBpbmRlcGVuZGVudCBJRUVFIDgwMi4xMVxuICAxNDpcdFx0ICBuZXR3b3JraW5nIHN0YWNrLlxuICAxNTpcdFxuICAxNjpcdGNvbW1lbnQgXCYjMzQ7Q0ZHODAyMTEgbmVlZHMgdG8gYmUgZW5hYmxlZCBmb3IgTUFDODAyMTFcJiMzNDtcbiAgMTc6XHRcdGRlcGVuZHMgb24gQ0ZHODAyMTE9blxuICAxODpcdFxuICAxOTpcdGlmIE1BQzgwMjExICE9IG5cbiAgMjA6XHRcbiAgMjE6XHRjb25maWcgTUFDODAyMTFfSEFTX1JDXG4gIDIyOlx0XHRib29sXG4gIDIzOlx0XG4gIDI0Olx0Y29uZmlnIE1BQzgwMjExX1JDX01JTlNUUkVMXG4gIDI1Olx0XHRib29sIFwmIzM0O01pbnN0cmVsXCYjMzQ7IGlmIEVYUEVSVFxuICAyNjpcdFx0c2VsZWN0IE1BQzgwMjExX0hBU19SQ1xuICAyNzpcdFx0ZGVmYXVsdCB5XG4gIDI4Olx0XHRoZWxwXG4gIDI5Olx0XHQgIFRoaXMgb3B0aW9uIGVuYWJsZXMgdGhlICYjMzk7bWluc3RyZWwmIzM5OyBUWCByYXRlIGNvbnRyb2wgYWxnb3JpdGhtXG4gIDMwOlx0XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTEvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzI5IDEwOjIzPC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy43LWZsYXNoPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDE3OTI2CgkJCQkJCQlvdXRwdXQ6IDI1CgkJCQkJCQl0aG91Z2h0czogMjAKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPkhlcmUmIzM5O3MgbXkgc3VtbWFyeSwgYXMgdGhvdWdoIEkmIzM5O20gdGhpbmtpbmcgaXQ6CgoqKkRpZ2dpbmcgaW50byB0aGUgS2NvbmZpZyAtIFNwZWNpZmljYWxseSwgYE1BQzgwMjExX0hXU0lNYCoqCgpBbHJpZ2h0LCB0aW1lIHRvIGRpdmUgZGVlcGVyLiBJJiMzOTt2ZSBnb3QgYSBzcGVjaWZpYyBxdWVzdGlvbiBhYm91dCB0aGUgYE1BQzgwMjExX0hXU0lNYCBLY29uZmlnIGVudHJ5LiBJIG5lZWQgdG8gcmVmcmVzaCBteSB1bmRlcnN0YW5kaW5nIG9mIHdoZXJlIHRoaXMgZml0cyBpbnRvIHRoZSBicm9hZGVyIHBpY3R1cmUgb2YgdGhlIHdpcmVsZXNzIHN1YnN5c3RlbS4gV2hhdCBkZXBlbmRlbmNpZXMgZG9lcyBpdCBoYXZlPyBXaGF0IGRvZXMgZW5hYmxpbmcgaXQgYWN0dWFsbHkgKmRvKiBpbiB0aGUgY29kZT8gSSBzaG91bGQgcHJvYmFibHkgY3Jvc3MtcmVmZXJlbmNlIHRoaXMgd2l0aCB0aGUgcmVsZXZhbnQgc291cmNlIGZpbGVzIGFuZCBkb2N1bWVudGF0aW9uIHJlbGF0ZWQgdG8gdGhlIG1hYzgwMjExIGZyYW1ld29yay4gSSBoYXZlIGEgaHVuY2ggaXQgaXMgcmVsYXRlZCB0byBhIHNpbXVsYXRlZCBoYXJkd2FyZSBlbnZpcm9ubWVudCBhbmQgd2FudCB0byBjb25maXJtIG15IHVuZGVyc3RhbmRpbmcuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTIvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzI5IDEwOjIzPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O2NvbmZpZyBNQUM4MDIxMV9IV1NJTSYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy92aXJ0dWFsL0tjb25maWc6MTpjb25maWcgTUFDODAyMTFfSFdTSU1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3ZpcnR1YWwvS2NvbmZpZy0yLVx0dHJpc3RhdGUgXCYjMzQ7U2ltdWxhdGVkIHJhZGlvIHRlc3RpbmcgdG9vbCBmb3IgbWFjODAyMTFcJiMzNDtcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMy8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMjkgMTA6MjM8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjctZmxhc2g8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMTgxOTMKCQkJCQkJCW91dHB1dDogMzYKCQkJCQkJCXRob3VnaHRzOiAxNgoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+SGVyZSYjMzk7cyBteSB0YWtlIG9uIHRob3NlIHRob3VnaHRzLCB0YWlsb3JlZCBmb3IgYW4gZXhwZXJ0IGF1ZGllbmNlOgoKKipEaXZpbmcgaW50byB0aGUgVmlydHVhbCBXaXJlbGVzcyBEcml2ZXIgQ29uZmlndXJhdGlvbioqCgpPa2F5LCBzbyB3ZSYjMzk7cmUgbG9va2luZyBhdCBgZHJpdmVycy9uZXQvd2lyZWxlc3MvdmlydHVhbC9LY29uZmlnYC4gUmlnaHQsIHNvIHRoaXMgaXMgd2hlcmUgdGhlIGNvcmUgY29uZmlndXJhdGlvbiBvcHRpb25zIGZvciB0aGUgdmlydHVhbCB3aXJlbGVzcyBkcml2ZXIgYXJlIGRlZmluZWQuIEkmIzM5O20gaW1tZWRpYXRlbHkgc2Nhbm5pbmcgZm9yIHRoZSB1c3VhbCBzdXNwZWN0czogdGhlIG1vZHVsZSBlbmFibGUvZGlzYWJsZSwgYW55IHNwZWNpZmljIGZlYXR1cmVzIG9yIHByb3RvY29sIHN1cHBvcnQgd2UgbWlnaHQgd2FudCB0byB0b2dnbGUgb24gb3Igb2ZmIGF0IGJ1aWxkIHRpbWUsIGFuZCwgb2YgY291cnNlLCB0aGUgZGVwZW5kZW5jaWVzIG9uIG90aGVyIGtlcm5lbCBjb21wb25lbnRzLgoKSSBuZWVkIHRvIHVuZGVyc3RhbmQgd2hhdCBhc3BlY3RzIGFyZSBjb25maWd1cmFibGUsIGFzIHRoaXMgZHJpdmVyIGlzLCBieSBkZWZpbml0aW9uLCBhbiBhYnN0cmFjdGlvbiBsYXllci4gSXMgaXQganVzdCBhIGJhc2ljIGZyYW1lIGZvciB0ZXN0aW5nIG90aGVyIHdpcmVsZXNzIHN0YWNrcywgb3IgZG9lcyBpdCBhbHNvIGV4cG9zZSBzb21lIGNvbmZpZ3VyYWJsZSB2aXJ0dWFsIGhhcmR3YXJlIGNoYXJhY3RlcmlzdGljcz8gQXJlIHRoZXJlIHNldHRpbmdzIGZvciBlbXVsYXRpbmcgZGlmZmVyZW50IHdpcmVsZXNzIHN0YW5kYXJkcywgb3IgZGlmZmVyZW50IHJlZ3VsYXRvcnkgZG9tYWlucz8gSSYjMzk7bSBob3BpbmcgdG8gcXVpY2tseSBpZGVudGlmeSB0aGUgdmFyaWFibGVzIGFuZCBkZXBlbmRlbmNpZXMgdGhhdCBJJiMzOTtsbCBuZWVkIHRvIHR3ZWFrIGZvciBteSBzcGVjaWZpYyB1c2UgY2FzZSwgd2hhdGV2ZXIgdGhhdCBtaWdodCBiZSAtIGxpa2VseSBlaXRoZXIgdGVzdGluZyBhIHdpcmVsZXNzIHN0YWNrLCBvciBwb3RlbnRpYWxseSBleHRlbmRpbmcgdGhlIHZpcnR1YWwgZHJpdmVyIHdpdGggc29tZSBjdXN0b20gZmVhdHVyZS4KCkkmIzM5O2xsIGJlIGxvb2tpbmcgY2FyZWZ1bGx5IGF0IHRoZSBkZWZhdWx0IHZhbHVlcywgYW55IGhlbHAgdGV4dCBwcm92aWRlZCwgYW5kLCBjcnVjaWFsbHksIGFueSByZWxhdGlvbnNoaXBzIGJldHdlZW4gdGhlIGNvbmZpZyBvcHRpb25zLiBBcmUgdGhlcmUgbXV0dWFsbHkgZXhjbHVzaXZlIG9wdGlvbnM/IEFyZSBzb21lIGZlYXR1cmVzIGRlcGVuZGVudCBvbiBvdGhlcnM/IEFuZCBhcmUgdGhlcmUgYW55IG9ic2N1cmUgc2V0dGluZ3MgYnVyaWVkIGluIHRoZXJlIHRoYXQgYXJlIGxpa2VseSB0byB0cmlwIG1lIHVwPyBJJiMzOTttIGxvb2tpbmcgZm9yIGNsdWVzIGFzIHRvIGhvdyByb2J1c3QgdGhlIGNvbmZpZ3VyYXRpb24gaXMgYW5kIHdoZXRoZXIgdGhlIGRlc2lnbiBpcyBmb3J3YXJkIGNvbXBhdGlibGUuCgpJbiBlc3NlbmNlLCBJJiMzOTttIHRyeWluZyB0byBnZXQgYSBtYXAgb2YgdGhlIGNvbmZpZ3VyYXRpb24gc3BhY2UgZm9yIHRoaXMgZHJpdmVyIHNvIEkgY2FuIGVmZmVjdGl2ZWx5IHVzZSBpdCBhcyBhIHRvb2wgb3IgZm91bmRhdGlvbi4gSSBhbHNvIGhvcGUgdGhlIG5hbWluZyBpcyBpbnR1aXRpdmUsIGFuZCB0aGF0IHRoZSBLY29uZmlnIGNvbnZlbnRpb25zIGhhdmUgYmVlbiBhZGhlcmVkIHRvLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjE0LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8yOSAxMDoyMzwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPnJlYWQtZmlsZTwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RmlsZSYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3dpcmVsZXNzL3ZpcnR1YWwvS2NvbmZpZyYjMzQ7LAogICYjMzQ7Rmlyc3RMaW5lJiMzNDs6IDEsCiAgJiMzNDtMaW5lQ291bnQmIzM0OzogMzAKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0NvbnRlbnRzJiMzNDs6ICYjMzQ7ICAgMTpcdGNvbmZpZyBNQUM4MDIxMV9IV1NJTVxuICAgMjpcdFx0dHJpc3RhdGUgXCYjMzQ7U2ltdWxhdGVkIHJhZGlvIHRlc3RpbmcgdG9vbCBmb3IgbWFjODAyMTFcJiMzNDtcbiAgIDM6XHRcdGRlcGVuZHMgb24gTUFDODAyMTFcbiAgIDQ6XHRcdGhlbHBcbiAgIDU6XHRcdCAgVGhpcyBkcml2ZXIgaXMgYSBkZXZlbG9wZXIgdGVzdGluZyB0b29sIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdFxuICAgNjpcdFx0ICBJRUVFIDgwMi4xMSBuZXR3b3JraW5nIHN0YWNrIChtYWM4MDIxMSkgZnVuY3Rpb25hbGl0eS4gVGhpcyBpcyBub3RcbiAgIDc6XHRcdCAgbmVlZGVkIGZvciBub3JtYWwgd2lyZWxlc3MgTEFOIHVzYWdlIGFuZCBpcyBvbmx5IGZvciB0ZXN0aW5nLiBTZWVcbiAgIDg6XHRcdCAgRG9jdW1lbnRhdGlvbi9uZXR3b3JraW5nL21hYzgwMjExX2h3c2ltIGZvciBtb3JlIGluZm9ybWF0aW9uIG9uIGhvd1xuICAgOTpcdFx0ICB0byB1c2UgdGhpcyB0b29sLlxuICAxMDpcdFxuICAxMTpcdFx0ICBUbyBjb21waWxlIHRoaXMgZHJpdmVyIGFzIGEgbW9kdWxlLCBjaG9vc2UgTSBoZXJlOiB0aGUgbW9kdWxlIHdpbGwgYmVcbiAgMTI6XHRcdCAgY2FsbGVkIG1hYzgwMjExX2h3c2ltLiAgSWYgdW5zdXJlLCBzYXkgTi5cbiAgMTM6XHRcbiAgMTQ6XHRjb25maWcgVklSVF9XSUZJXG4gIDE1Olx0XHR0cmlzdGF0ZSBcJiMzNDtXaWZpIHdyYXBwZXIgZm9yIGV0aGVybmV0IGRyaXZlcnNcJiMzNDtcbiAgMTY6XHRcdGRlcGVuZHMgb24gQ0ZHODAyMTFcbiAgMTc6XHRcdGhlbHBcbiAgMTg6XHRcdCAgVGhpcyBvcHRpb24gYWRkcyBzdXBwb3J0IGZvciBldGhlcm5ldCBjb25uZWN0aW9ucyB0byBhcHBlYXIgYXMgaWYgdGhleVxuICAxOTpcdFx0ICBhcmUgd2lmaSBjb25uZWN0aW9ucyB0aHJvdWdoIGEgc3BlY2lhbCBydG5ldGxpbmsgZGV2aWNlLlxuICAyMDpcdFxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjE1LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8yOSAxMDoyMzwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuNy1mbGFzaDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAxODkxOAoJCQkJCQkJb3V0cHV0OiA0MAoJCQkJCQkJdGhvdWdodHM6IDczCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKkludmVzdGlnYXRpbmcgQ2hhbm5lbCBDb250ZXh0IFJlbW92YWwqKgoKQWxyaWdodCwgbGV0JiMzOTtzIGRpdmUgaW50byB0aGlzLiBJIG5lZWQgdG8gdW5kZXJzdGFuZCB0aGUgaW50ZXJhY3Rpb24gYmV0d2VlbiBjaGFubmVsIGNvbmZpZ3VyYXRpb24gYW5kIGNvbnRleHQgcmVtb3ZhbCB3aXRoaW4gdGhlIDgwMi4xMSBzdGFjay4gTXkgZmlyc3QgdGhvdWdodCBpcyB0byB0cmFjZSB0aGUgZXhlY3V0aW9uIHBhdGguIEkmIzM5O20gZ29pbmcgdG8gc3RhcnQgYnkgZXhhbWluaW5nIHRoZSBmdW5jdGlvbnMgYF9pZWVlODAyMTFfaHdfY29uZl9jaGFuYCBhbmQgYGllZWU4MDIxMV9lbXVsYXRlX3JlbW92ZV9jaGFuY3R4YC4gSSBuZWVkIHRvIGZpZ3VyZSBvdXQgd2hhdCBlYWNoIG9mIHRoZXNlIGZ1bmN0aW9ucyBkb2VzIGluZGl2aWR1YWxseSwgYW5kIHdoZXJlIHRoZSBvdmVybGFwIGlzIGluIHRoZWlyIHVzZS4gVGhpcyBzZWVtcyB0byBiZSB0aGUgY3JpdGljYWwgYXJlYSBvZiBpbnRlcmVzdC4gVGhlbiwgSSB3aWxsIGFsc28gd2FudCB0byBpbnZlc3RpZ2F0ZSB0aGUgY29kZSBhcm91bmQgYG5ldC9tYWM4MDIxMS9tYWluLmNgIGxpbmVzIDI0MC0yODAuIEkgc3VzcGVjdCB0aGlzIHdpbGwgYmUgd2hlcmUgdGhlIGNvcmUgbG9naWMgcmVsYXRlZCB0byB0aGVzZSBjaGFubmVsIG1hbmFnZW1lbnQgb3BlcmF0aW9ucyB3aWxsIGJlLiBCeSBleGFtaW5pbmcgdGhlc2UgZnVuY3Rpb25zIGFuZCB0aGUgc3Vycm91bmRpbmcgY29udGV4dCwgSSBzaG91bGQgYmUgYWJsZSB0byBmb3JtIGEgY2xlYXIgcGljdHVyZSBvZiBob3cgY2hhbm5lbCBjb250ZXh0cyBhcmUgbWFuYWdlZCBhbmQsIG1vcmUgc3BlY2lmaWNhbGx5LCByZW1vdmVkLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjE2LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8yOSAxMDoyMzwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPnJlYWQtZmlsZTwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RmlsZSYjMzQ7OiAmIzM0O25ldC9tYWM4MDIxMS9tYWluLmMmIzM0OywKICAmIzM0O0ZpcnN0TGluZSYjMzQ7OiAyNDAsCiAgJiMzNDtMaW5lQ291bnQmIzM0OzogNTAKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0NvbnRlbnRzJiMzNDs6ICYjMzQ7IDI0MDpcdH1cbiAyNDE6XHRcbiAyNDI6XHRpbnQgaWVlZTgwMjExX2h3X2NvbmZfY2hhbihzdHJ1Y3QgaWVlZTgwMjExX2xvY2FsICpsb2NhbClcbiAyNDM6XHR7XG4gMjQ0Olx0XHRzdHJ1Y3QgaWVlZTgwMjExX2NoYW5jdHggKmN0eDtcbiAyNDU6XHRcbiAyNDY6XHRcdGN0eCA9IGxpc3RfZmlyc3RfZW50cnlfb3JfbnVsbChcdTAwMjZsb2NhbC1cdTAwM2VjaGFuY3R4X2xpc3QsXG4gMjQ3Olx0XHRcdFx0XHQgICAgICAgc3RydWN0IGllZWU4MDIxMV9jaGFuY3R4LFxuIDI0ODpcdFx0XHRcdFx0ICAgICAgIGxpc3QpO1xuIDI0OTpcdFxuIDI1MDpcdFx0cmV0dXJuIF9pZWVlODAyMTFfaHdfY29uZl9jaGFuKGxvY2FsLCBjdHggPyBcdTAwMjZjdHgtXHUwMDNlY29uZiA6IE5VTEwpO1xuIDI1MTpcdH1cbiAyNTI6XHRcbiAyNTM6XHR2b2lkIGllZWU4MDIxMV9od19jb25mX2luaXQoc3RydWN0IGllZWU4MDIxMV9sb2NhbCAqbG9jYWwpXG4gMjU0Olx0e1xuIDI1NTpcdFx0dTMyIGNoYW5nZWQgPSB+KElFRUU4MDIxMV9DT05GX0NIQU5HRV9DSEFOTkVMIHxcbiAyNTY6XHRcdFx0XHRJRUVFODAyMTFfQ09ORl9DSEFOR0VfUE9XRVIgfFxuIDI1NzpcdFx0XHRcdElFRUU4MDIxMV9DT05GX0NIQU5HRV9TTVBTKTtcbiAyNTg6XHRcbiAyNTk6XHRcdGlmIChXQVJOX09OKCFsb2NhbC1cdTAwM2VvcGVuX2NvdW50KSlcbiAyNjA6XHRcdFx0cmV0dXJuO1xuIDI2MTpcdFxuIDI2MjpcdFx0aWYgKGxvY2FsLVx1MDAzZWVtdWxhdGVfY2hhbmN0eCkge1xuIDI2MzpcdFx0XHRzdHJ1Y3QgaWVlZTgwMjExX2NoYW5jdHggKmN0eDtcbiAyNjQ6XHRcbiAyNjU6XHRcdFx0Y3R4ID0gbGlzdF9maXJzdF9lbnRyeV9vcl9udWxsKFx1MDAyNmxvY2FsLVx1MDAzZWNoYW5jdHhfbGlzdCxcbiAyNjY6XHRcdFx0XHRcdFx0ICAgICAgIHN0cnVjdCBpZWVlODAyMTFfY2hhbmN0eCxcbiAyNjc6XHRcdFx0XHRcdFx0ICAgICAgIGxpc3QpO1xuIDI2ODpcdFxuIDI2OTpcdFx0XHRjaGFuZ2VkIHw9IGllZWU4MDIxMV9jYWxjX2h3X2NvbmZfY2hhbihsb2NhbCxcbiAyNzA6XHRcdFx0XHRcdFx0XHQgICAgICAgY3R4ID8gXHUwMDI2Y3R4LVx1MDAzZWNvbmYgOiBOVUxMKTtcbiAyNzE6XHRcdH1cbiAyNzI6XHRcbiAyNzM6XHRcdFdBUk5fT04oZHJ2X2NvbmZpZyhsb2NhbCwgLTEsIGNoYW5nZWQpKTtcbiAyNzQ6XHR9XG4gMjc1Olx0XG4gMjc2Olx0aW50IGllZWU4MDIxMV9lbXVsYXRlX2FkZF9jaGFuY3R4KHN0cnVjdCBpZWVlODAyMTFfaHcgKmh3LFxuIDI3NzpcdFx0XHRcdFx0ICBzdHJ1Y3QgaWVlZTgwMjExX2NoYW5jdHhfY29uZiAqY3R4KVxuIDI3ODpcdHtcbiAyNzk6XHRcdHN0cnVjdCBpZWVlODAyMTFfbG9jYWwgKmxvY2FsID0gaHdfdG9fbG9jYWwoaHcpO1xuIDI4MDpcdFxuIDI4MTpcdFx0bG9jYWwtXHUwMDNlaHcuY29uZi5yYWRhcl9lbmFibGVkID0gY3R4LVx1MDAzZXJhZGFyX2VuYWJsZWQ7XG4gMjgyOlx0XG4gMjgzOlx0XHRyZXR1cm4gX2llZWU4MDIxMV9od19jb25mX2NoYW4obG9jYWwsIGN0eCk7XG4gMjg0Olx0fVxuIDI4NTpcdEVYUE9SVF9TWU1CT0woaWVlZTgwMjExX2VtdWxhdGVfYWRkX2NoYW5jdHgpO1xuIDI4NjpcdFxuIDI4NzpcdHZvaWQgaWVlZTgwMjExX2VtdWxhdGVfcmVtb3ZlX2NoYW5jdHgoc3RydWN0IGllZWU4MDIxMV9odyAqaHcsXG4gMjg4Olx0XHRcdFx0XHQgICAgICBzdHJ1Y3QgaWVlZTgwMjExX2NoYW5jdHhfY29uZiAqY3R4KVxuIDI4OTpcdHtcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xNy8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMjkgMTA6MjM8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjctZmxhc2g8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMjAwODIKCQkJCQkJCW91dHB1dDogMzIKCQkJCQkJCXRob3VnaHRzOiAzOQoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+T2theSwgaGVyZSYjMzk7cyBteSBpbnRlcnByZXRhdGlvbiBvZiB0aG9zZSB0aG91Z2h0cywgc3VtbWFyaXplZCBmcm9tIGFuIGV4cGVydCYjMzk7cyBwZXJzcGVjdGl2ZToKCioqSW52ZXN0aWdhdGluZyBDaGFubmVsIENvbnRleHQgUmVtb3ZhbCBpbiBtYWM4MDIxMSoqCgpBbHJpZ2h0LCBzbyBJJiMzOTttIGxvb2tpbmcgaW50byB0aGUgY2hhbm5lbCBjb250ZXh0IHJlbW92YWwgcm91dGluZXMgd2l0aGluIG1hYzgwMjExLiBTcGVjaWZpY2FsbHksIEkgbmVlZCB0byB1bmRlcnN0YW5kIHRoZSBjYWxsIHBhdGhzIHRoYXQgbGVhZCB0byB0aGUgYHJlbW92ZV9jaGFuY3R4YCBjYWxsYmFjayBvciB0aGUgYGllZWU4MDIxMV9lbXVsYXRlX3JlbW92ZV9jaGFuY3R4YCBmdW5jdGlvbi4gSSBuZWVkIHRvIHRyYWNlIGhvdyB0aGVzZSBmdW5jdGlvbnMgYXJlIGJlaW5nIGludm9rZWQuIEkgbmVlZCB0byB1bmRlcnN0YW5kIHRoZSBzY2VuYXJpb3MgYW5kIGNvbmRpdGlvbnMgdGhhdCB0cmlnZ2VyIHRoZW0sIGFuZCwgYnkgZXh0ZW5zaW9uLCBlbnN1cmUgdGhhdCBjb250ZXh0IHJlbW92YWwgaXMgaGFwcGVuaW5nIGNvcnJlY3RseSBhbmQgZWZmaWNpZW50bHkuIEkmIzM5O20gZm9jdXNpbmcgb24gdGhlIGludGVyYWN0aW9uIGJldHdlZW4gbWFjODAyMTEgYW5kIHRoZSBkcml2ZXIuIFdoYXQgYXJlIHRoZSB0cmlnZ2Vycz8gV2hhdCBhcmUgdGhlIGltcGxpY2F0aW9ucz8gTGV0JiMzOTtzIGZpZ3VyZSB0aGlzIG91dC4gSSYjMzk7bGwgbmVlZCB0byBjYXJlZnVsbHkgZXhhbWluZSB0aGUgY29kZSBmbG93IGFuZCB0aGUgZGF0YSBzdHJ1Y3R1cmVzIGludm9sdmVkIHRvIGdldCBhIGNvbXBsZXRlIHBpY3R1cmUuIFRoaXMgaXMga2V5IHRvIGVuc3VyaW5nIHRoYXQgdGhlIHdpcmVsZXNzIHN0YWNrIGJlaGF2ZXMgYXMgZXhwZWN0ZWQuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTgvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzI5IDEwOjIzPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O3JlbW92ZV9jaGFuY3R4JiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7bmV0L21hYzgwMjExJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O25ldC9tYWM4MDIxMS9jaGFuLmM9MTA4MD1zdGF0aWMgdm9pZCBpZWVlODAyMTFfZGVsX2NoYW5jdHgoc3RydWN0IGllZWU4MDIxMV9sb2NhbCAqbG9jYWwsXG4tLVxubmV0L21hYzgwMjExL2NoYW4uYy0xMDg1LVxubmV0L21hYzgwMjExL2NoYW4uYzoxMDg2Olx0ZHJ2X3JlbW92ZV9jaGFuY3R4KGxvY2FsLCBjdHgpO1xubmV0L21hYzgwMjExL2NoYW4uYy0xMDg3LVxuLS1cbm5ldC9tYWM4MDIxMS9kcml2ZXItb3BzLmg9MTAxND1zdGF0aWMgaW5saW5lIGludCBkcnZfYWRkX2NoYW5jdHgoc3RydWN0IGllZWU4MDIxMV9sb2NhbCAqbG9jYWwsXG4tLVxubmV0L21hYzgwMjExL2RyaXZlci1vcHMuaC0xMDMxLVxubmV0L21hYzgwMjExL2RyaXZlci1vcHMuaDoxMDMyOnN0YXRpYyBpbmxpbmUgdm9pZCBkcnZfcmVtb3ZlX2NoYW5jdHgoc3RydWN0IGllZWU4MDIxMV9sb2NhbCAqbG9jYWwsXG5uZXQvbWFjODAyMTEvZHJpdmVyLW9wcy5oLTEwMzMtXHRcdFx0XHQgICAgICBzdHJ1Y3QgaWVlZTgwMjExX2NoYW5jdHggKmN0eClcbi0tXG5uZXQvbWFjODAyMTEvZHJpdmVyLW9wcy5oLTEwNDAtXG5uZXQvbWFjODAyMTEvZHJpdmVyLW9wcy5oOjEwNDE6XHR0cmFjZV9kcnZfcmVtb3ZlX2NoYW5jdHgobG9jYWwsIGN0eCk7XG5uZXQvbWFjODAyMTEvZHJpdmVyLW9wcy5oOjEwNDI6XHRpZiAobG9jYWwtXHUwMDNlb3BzLVx1MDAzZXJlbW92ZV9jaGFuY3R4KVxubmV0L21hYzgwMjExL2RyaXZlci1vcHMuaDoxMDQzOlx0XHRsb2NhbC1cdTAwM2VvcHMtXHUwMDNlcmVtb3ZlX2NoYW5jdHgoXHUwMDI2bG9jYWwtXHUwMDNlaHcsIFx1MDAyNmN0eC1cdTAwM2Vjb25mKTtcbm5ldC9tYWM4MDIxMS9kcml2ZXItb3BzLmgtMTA0NC1cdHRyYWNlX2Rydl9yZXR1cm5fdm9pZChsb2NhbCk7XG4tLVxubmV0L21hYzgwMjExL21haW4uYz0yODU9RVhQT1JUX1NZTUJPTChpZWVlODAyMTFfZW11bGF0ZV9hZGRfY2hhbmN0eCk7XG5uZXQvbWFjODAyMTEvbWFpbi5jLTI4Ni1cbm5ldC9tYWM4MDIxMS9tYWluLmM6Mjg3OnZvaWQgaWVlZTgwMjExX2VtdWxhdGVfcmVtb3ZlX2NoYW5jdHgoc3RydWN0IGllZWU4MDIxMV9odyAqaHcsXG5uZXQvbWFjODAyMTEvbWFpbi5jLTI4OC1cdFx0XHRcdCAgICAgIHN0cnVjdCBpZWVlODAyMTFfY2hhbmN0eF9jb25mICpjdHgpXG4tLVxubmV0L21hYzgwMjExL21haW4uYy0zMDAtfVxubmV0L21hYzgwMjExL21haW4uYzozMDE6RVhQT1JUX1NZTUJPTChpZWVlODAyMTFfZW11bGF0ZV9yZW1vdmVfY2hhbmN0eCk7XG5uZXQvbWFjODAyMTEvbWFpbi5jLTMwMi1cbi0tXG5uZXQvbWFjODAyMTEvbWFpbi5jPTc5OD1zdHJ1Y3QgaWVlZTgwMjExX2h3ICppZWVlODAyMTFfYWxsb2NfaHdfbm0oc2l6ZV90IHByaXZfZGF0YV9sZW4sXG4tLVxubmV0L21hYzgwMjExL21haW4uYy04MjAtXHRpZiAob3BzLVx1MDAzZWFkZF9jaGFuY3R4ID09IGllZWU4MDIxMV9lbXVsYXRlX2FkZF9jaGFuY3R4IFx1MDAyNlx1MDAyNlxubmV0L21hYzgwMjExL21haW4uYzo4MjE6XHQgICAgb3BzLVx1MDAzZXJlbW92ZV9jaGFuY3R4ID09IGllZWU4MDIxMV9lbXVsYXRlX3JlbW92ZV9jaGFuY3R4IFx1MDAyNlx1MDAyNlxubmV0L21hYzgwMjExL21haW4uYy04MjItXHQgICAgb3BzLVx1MDAzZWNoYW5nZV9jaGFuY3R4ID09IGllZWU4MDIxMV9lbXVsYXRlX2NoYW5nZV9jaGFuY3R4KSB7XG4tLVxubmV0L21hYzgwMjExL21haW4uYy04MjgtXHRcdGlmIChXQVJOX09OKG9wcy1cdTAwM2VhZGRfY2hhbmN0eCA9PSBpZWVlODAyMTFfZW11bGF0ZV9hZGRfY2hhbmN0eCB8fFxubmV0L21hYzgwMjExL21haW4uYzo4Mjk6XHRcdFx0ICAgIG9wcy1cdTAwM2VyZW1vdmVfY2hhbmN0eCA9PSBpZWVlODAyMTFfZW11bGF0ZV9yZW1vdmVfY2hhbmN0eCB8fFxubmV0L21hYzgwMjExL21haW4uYy04MzAtXHRcdFx0ICAgIG9wcy1cdTAwM2VjaGFuZ2VfY2hhbmN0eCA9PSBpZWVlODAyMTFfZW11bGF0ZV9jaGFuZ2VfY2hhbmN0eCkpXG4tLVxubmV0L21hYzgwMjExL21haW4uYy04MzItXHRcdGlmIChXQVJOX09OKCFvcHMtXHUwMDNlYWRkX2NoYW5jdHggfHxcbm5ldC9tYWM4MDIxMS9tYWluLmM6ODMzOlx0XHRcdCAgICAhb3BzLVx1MDAzZXJlbW92ZV9jaGFuY3R4IHx8XG5uZXQvbWFjODAyMTEvbWFpbi5jLTgzNC1cdFx0XHQgICAgIW9wcy1cdTAwM2VjaGFuZ2VfY2hhbmN0eCB8fFxuLS1cbm5ldC9tYWM4MDIxMS90cmFjZS5oPTE2OTA9REVGSU5FX0VWRU5UKGxvY2FsX2NoYW5jdHgsIGRydl9hZGRfY2hhbmN0eCxcbi0tXG5uZXQvbWFjODAyMTEvdHJhY2UuaC0xNjk1LVxubmV0L21hYzgwMjExL3RyYWNlLmg6MTY5NjpERUZJTkVfRVZFTlQobG9jYWxfY2hhbmN0eCwgZHJ2X3JlbW92ZV9jaGFuY3R4LFxubmV0L21hYzgwMjExL3RyYWNlLmgtMTY5Ny1cdFRQX1BST1RPKHN0cnVjdCBpZWVlODAyMTFfbG9jYWwgKmxvY2FsLFxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjE5LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8yOSAxMDoyMzwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuNy1mbGFzaDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAyMTU2NgoJCQkJCQkJb3V0cHV0OiA0MQoJCQkJCQkJdGhvdWdodHM6IDM1CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5IZXJlJiMzOTtzIG15IGF0dGVtcHQgYXQgc3VtbWFyaXppbmcgdGhlIHRob3VnaHQgcHJvY2VzcywgdGFpbG9yZWQgZm9yIGFuIGV4cGVydCBhdWRpZW5jZToKCioqRGl2aW5nIGludG8gYGllZWU4MDIxMV9kZWxfY2hhbmN0eGAqKgoKQWxyaWdodCwgbGV0JiMzOTtzIGRpc3NlY3QgYGllZWU4MDIxMV9kZWxfY2hhbmN0eGAgd2l0aGluIGBuZXQvbWFjODAyMTEvY2hhbi5jYC4gSSBuZWVkIHRvIHVuZGVyc3RhbmQgdGhlIGltcGxpY2F0aW9ucyBvZiB0aGlzIGZ1bmN0aW9uLiBNeSBpbW1lZGlhdGUgYXNzdW1wdGlvbiBpcyBpdCYjMzk7cyByZXNwb25zaWJsZSBmb3IgdGhlIGNsZWFudXAgcHJvY2VzcyBhc3NvY2lhdGVkIHdpdGggYSBjaGFubmVsIGNvbnRleHQuIEkmIzM5O20gZ3Vlc3NpbmcgdGhpcyBmdW5jdGlvbiBpcyBjZW50cmFsIHRvIG1hbmFnaW5nIGNoYW5uZWwtcmVsYXRlZCByZXNvdXJjZXMsIHByb2JhYmx5IHdoZW4gYSBjaGFubmVsIGlzIGJlaW5nIGRpc2FibGVkIG9yIGRlcmVnaXN0ZXJlZC4gSSBuZWVkIHRvIGZpZ3VyZSBvdXQgd2hhdCBraW5kIG9mIHJlc291cmNlcyBpdCYjMzk7cyBjbGVhbmluZyB1cCwgYW5kIHdoZXRoZXIgdGhlcmUgYXJlIGFueSBzdWJ0bGV0aWVzIHRvIGJlIGF3YXJlIG9mLCBsaWtlIHBvdGVudGlhbCByYWNlIGNvbmRpdGlvbnMgb3IgbG9ja2luZyBpc3N1ZXMsIHBhcnRpY3VsYXJseSB3aXRoaW4gdGhlIGNvbmN1cnJlbmN5IG1vZGVsIG9mIG1hYzgwMjExLiBBcmUgd2UgdGFsa2luZyBhYm91dCBmcmVlaW5nIG1lbW9yeSwgZGVyZWZlcmVuY2luZyBwb2ludGVycywgYW5kIHBvdGVudGlhbGx5IGRlYWN0aXZhdGluZyBoYXJkd2FyZSBjb21wb25lbnRzIHRpZWQgdG8gdGhhdCBzcGVjaWZpYyBjaGFubmVsPyBEb2VzIGl0IHJlbW92ZSB0aGUgY29udGV4dCBmcm9tIGEgY2VudHJhbCBkYXRhIHN0cnVjdHVyZSwgc3VjaCBhcyBhIGhhc2ggdGFibGUsIHdoZXJlIGFsbCB0aGUgY2hhbm5lbCBjb250ZXh0cyBhcmUgaGVsZD8gVGhlIG1haW4gb2JqZWN0aXZlIGlzIHRvIGNvbXBsZXRlbHkgZGUtYWxsb2NhdGUgdGhlIHJlc291cmNlcyBhc3NvY2lhdGVkIHdpdGggY2hhbm5lbCBjb250ZXh0LiBLbm93aW5nIHRoZSBpbnRlcm5hbHMgb2YgaG93IHRoZSBjaGFubmVsIGNvbnRleHRzIGFyZSBoYW5kbGVkIGlzIGNyaXRpY2FsIGZvciBpZGVudGlmeWluZyBwb3RlbnRpYWwgbWVtb3J5IGxlYWtzIGFuZCBlbnN1cmluZyB0aGUgc3lzdGVtIGlzIHJvYnVzdC4gU3BlY2lmaWNhbGx5LCBJJiMzOTttIGxvb2tpbmcgZm9yIGhvdyBpdCBoYW5kbGVzIHJlZmVyZW5jZSBjb3VudHMsIGFzc29jaWF0ZWQgdGltZXJzLCBhbmQgYW55IHBvdGVudGlhbCBzaWRlIGVmZmVjdHMgb24gb3RoZXIgcmVsYXRlZCBzdHJ1Y3R1cmVzLCBsaWtlIHRoZSBvcGVyYXRpbmcgQlNTIGxpc3Qgb3Igc2NhbiBjb250ZXh0cy4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4yMC8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMjkgMTA6MjM8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5yZWFkLWZpbGU8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0ZpbGUmIzM0OzogJiMzNDtuZXQvbWFjODAyMTEvY2hhbi5jJiMzNDssCiAgJiMzNDtGaXJzdExpbmUmIzM0OzogMTA3MCwKICAmIzM0O0xpbmVDb3VudCYjMzQ7OiA0MAp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7Q29udGVudHMmIzM0OzogJiMzNDsxMDcwOlx0XHQvKlxuMTA3MTpcdFx0ICogV2UgaWdub3JlZCBhIGRyaXZlciBlcnJvciwgc2VlIF9pZWVlODAyMTFfc2V0X2FjdGl2ZV9saW5rcyBhbmQvb3JcbjEwNzI6XHRcdCAqIGllZWU4MDIxMV9uYW5fc2V0X2xvY2FsX3NjaGVkXG4xMDczOlx0XHQgKi9cbjEwNzQ6XHRcdFdBUk5fT05fT05DRShlcnIgXHUwMDI2XHUwMDI2ICFsb2NhbC1cdTAwM2Vpbl9yZWNvbmZpZyk7XG4xMDc1Olx0XG4xMDc2Olx0XHRsaXN0X2FkZF9yY3UoXHUwMDI2Y3R4LVx1MDAzZWxpc3QsIFx1MDAyNmxvY2FsLVx1MDAzZWNoYW5jdHhfbGlzdCk7XG4xMDc3Olx0XHRyZXR1cm4gY3R4O1xuMTA3ODpcdH1cbjEwNzk6XHRcbjEwODA6XHRzdGF0aWMgdm9pZCBpZWVlODAyMTFfZGVsX2NoYW5jdHgoc3RydWN0IGllZWU4MDIxMV9sb2NhbCAqbG9jYWwsXG4xMDgxOlx0XHRcdFx0XHQgIHN0cnVjdCBpZWVlODAyMTFfY2hhbmN0eCAqY3R4LFxuMTA4MjpcdFx0XHRcdFx0ICBib29sIHNraXBfaWRsZV9yZWNhbGMpXG4xMDgzOlx0e1xuMTA4NDpcdFx0bG9ja2RlcF9hc3NlcnRfd2lwaHkobG9jYWwtXHUwMDNlaHcud2lwaHkpO1xuMTA4NTpcdFxuMTA4NjpcdFx0ZHJ2X3JlbW92ZV9jaGFuY3R4KGxvY2FsLCBjdHgpO1xuMTA4NzpcdFxuMTA4ODpcdFx0aWYgKCFza2lwX2lkbGVfcmVjYWxjKVxuMTA4OTpcdFx0XHRpZWVlODAyMTFfcmVjYWxjX2lkbGUobG9jYWwpO1xuMTA5MDpcdFxuMTA5MTpcdFx0aWVlZTgwMjExX3JlbW92ZV93YnJmKGxvY2FsLCBcdTAwMjZjdHgtXHUwMDNlY29uZi5kZWYpO1xuMTA5MjpcdH1cbjEwOTM6XHRcbjEwOTQ6XHR2b2lkIGllZWU4MDIxMV9mcmVlX2NoYW5jdHgoc3RydWN0IGllZWU4MDIxMV9sb2NhbCAqbG9jYWwsXG4xMDk1Olx0XHRcdFx0ICAgIHN0cnVjdCBpZWVlODAyMTFfY2hhbmN0eCAqY3R4LFxuMTA5NjpcdFx0XHRcdCAgICBib29sIHNraXBfaWRsZV9yZWNhbGMpXG4xMDk3Olx0e1xuMTA5ODpcdFx0bG9ja2RlcF9hc3NlcnRfd2lwaHkobG9jYWwtXHUwMDNlaHcud2lwaHkpO1xuMTA5OTpcdFxuMTEwMDpcdFx0V0FSTl9PTl9PTkNFKGllZWU4MDIxMV9jaGFuY3R4X3JlZmNvdW50KGxvY2FsLCBjdHgpICE9IDApO1xuMTEwMTpcdFxuMTEwMjpcdFx0bGlzdF9kZWxfcmN1KFx1MDAyNmN0eC1cdTAwM2VsaXN0KTtcbjExMDM6XHRcdGllZWU4MDIxMV9kZWxfY2hhbmN0eChsb2NhbCwgY3R4LCBza2lwX2lkbGVfcmVjYWxjKTtcbjExMDQ6XHRcdGtmcmVlX3JjdShjdHgsIHJjdV9oZWFkKTtcbjExMDU6XHR9XG4xMTA2Olx0XG4xMTA3Olx0dm9pZCBpZWVlODAyMTFfcmVjYWxjX2NoYW5jdHhfY2hhbnR5cGUoc3RydWN0IGllZWU4MDIxMV9sb2NhbCAqbG9jYWwsXG4xMTA4Olx0XHRcdFx0XHQgICAgICAgc3RydWN0IGllZWU4MDIxMV9jaGFuY3R4ICpjdHgpXG4xMTA5Olx0e1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjIxLzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8yOSAxMDoyMzwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuNy1mbGFzaDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAyMjYzNgoJCQkJCQkJb3V0cHV0OiA0MgoJCQkJCQkJdGhvdWdodHM6IDIwNwoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipBbmFseXppbmcgdGhlIFJlbW92YWwgb2YgYF9pZWVlODAyMTFfaHdfY29uZl9jaGFuYCBpbiBgaWVlZTgwMjExX2VtdWxhdGVfcmVtb3ZlX2NoYW5jdHhgKioKCk9rYXksIHNvIEkmIzM5O20gbG9va2luZyBhdCB0aGlzIGNvZGUgYW5kIGltbWVkaWF0ZWx5IEkgc2VlIGBfaWVlZTgwMjExX2h3X2NvbmZfY2hhbmAgd2FzIGJlaW5nIGNhbGxlZCB3aXRoaW4gYGllZWU4MDIxMV9lbXVsYXRlX3JlbW92ZV9jaGFuY3R4YC4gU3BlY2lmaWNhbGx5LCB0aGlzIHdhcyBoYXBwZW5pbmcgcmlnaHQgYWZ0ZXIgYGxvY2FsLSZndDtody5jb25mLnJhZGFyX2VuYWJsZWRgIHdhcyBzZXQgdG8gYGZhbHNlYC4gVGhlIHJlbGV2YW50IGNvZGUgaXM6CgpgYGBjCnZvaWQgaWVlZTgwMjExX2VtdWxhdGVfcmVtb3ZlX2NoYW5jdHgoc3RydWN0IGllZWU4MDIxMV9odyAqaHcsCgkJCQkgICAgICBzdHJ1Y3QgaWVlZTgwMjExX2NoYW5jdHhfY29uZiAqY3R4KQp7CglzdHJ1Y3QgaWVlZTgwMjExX2xvY2FsICpsb2NhbCA9IGh3X3RvX2xvY2FsKGh3KTsKCglsb2NhbC0mZ3Q7aHcuY29uZi5yYWRhcl9lbmFibGVkID0gZmFsc2U7CgoJX2llZWU4MDIxMV9od19jb25mX2NoYW4obG9jYWwsIE5VTEwpOwp9CmBgYAoKTm93LCB0aGUgY3J1Y2lhbCBwYXJ0OiBpdCBhcHBlYXJzIGBfaWVlZTgwMjExX2h3X2NvbmZfY2hhbihsb2NhbCwgTlVMTCk7YCBoYXMgYmVlbiByZW1vdmVkLiBUaGF0JiMzOTtzIGEgc2lnbmlmaWNhbnQgY2hhbmdlIGFuZCBJIG5lZWQgdG8gdW5kZXJzdGFuZCB0aGUgaW1wbGljYXRpb25zIG9mIHRoYXQgcmVtb3ZhbC4gVGhlIGNvbnRleHQgaW5kaWNhdGVzIHRoaXMgY2hhbmdlIGlzIHRpZWQgdG8gdGhlIHJlbW92YWwgb2YgYSBjaGFubmVsIGNvbnRleHQsIHNvIGNsZWFybHkgdGhpcyBjYWxsIHdhcyBpbXBvcnRhbnQgYXQgdGhpcyBwb2ludCBpbiB0aGUgcHJvY2Vzcy4gTXkgbmV4dCBzdGVwIHdpbGwgYmUgdG8gZGl2ZSBkZWVwZXIgaW50byB3aGF0IGBfaWVlZTgwMjExX2h3X2NvbmZfY2hhbmAgZG9lcy4gSXRzIGZ1bmN0aW9uLCBpbiB0aGlzIGNvbnRleHQsIG11c3QgYmUgdW5kZXJzdG9vZCB0byBkZXRlcm1pbmUgdGhlIGFjdHVhbCBpbXBhY3Qgb2YgaXRzIGRlbGV0aW9uLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjIyLzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8yOSAxMDoyNDwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtfaWVlZTgwMjExX2h3X2NvbmZfY2hhbiYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O25ldC9tYWM4MDIxMSYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtuZXQvbWFjODAyMTEvbWFpbi5jPTE5Mz1pbnQgaWVlZTgwMjExX2h3X2NvbmZpZyhzdHJ1Y3QgaWVlZTgwMjExX2xvY2FsICpsb2NhbCwgaW50IHJhZGlvX2lkeCxcbi0tXG5uZXQvbWFjODAyMTEvbWFpbi5jLTIyNi0vKiBmb3Igc2Nhbm5pbmcsIG9mZmNoYW5uZWwgYW5kIGNoYW5jdHggZW11bGF0aW9uIG9ubHkgKi9cbm5ldC9tYWM4MDIxMS9tYWluLmM6MjI3OnN0YXRpYyBpbnQgX2llZWU4MDIxMV9od19jb25mX2NoYW4oc3RydWN0IGllZWU4MDIxMV9sb2NhbCAqbG9jYWwsXG5uZXQvbWFjODAyMTEvbWFpbi5jLTIyOC1cdFx0XHRcdCAgIHN0cnVjdCBpZWVlODAyMTFfY2hhbmN0eF9jb25mICpjdHgpXG4tLVxubmV0L21hYzgwMjExL21haW4uYz0yNDI9aW50IGllZWU4MDIxMV9od19jb25mX2NoYW4oc3RydWN0IGllZWU4MDIxMV9sb2NhbCAqbG9jYWwpXG4tLVxubmV0L21hYzgwMjExL21haW4uYy0yNDktXG5uZXQvbWFjODAyMTEvbWFpbi5jOjI1MDpcdHJldHVybiBfaWVlZTgwMjExX2h3X2NvbmZfY2hhbihsb2NhbCwgY3R4ID8gXHUwMDI2Y3R4LVx1MDAzZWNvbmYgOiBOVUxMKTtcbm5ldC9tYWM4MDIxMS9tYWluLmMtMjUxLX1cbi0tXG5uZXQvbWFjODAyMTEvbWFpbi5jPTI3Nj1pbnQgaWVlZTgwMjExX2VtdWxhdGVfYWRkX2NoYW5jdHgoc3RydWN0IGllZWU4MDIxMV9odyAqaHcsXG4tLVxubmV0L21hYzgwMjExL21haW4uYy0yODItXG5uZXQvbWFjODAyMTEvbWFpbi5jOjI4MzpcdHJldHVybiBfaWVlZTgwMjExX2h3X2NvbmZfY2hhbihsb2NhbCwgY3R4KTtcbm5ldC9tYWM4MDIxMS9tYWluLmMtMjg0LX1cbi0tXG5uZXQvbWFjODAyMTEvbWFpbi5jPTMwMz12b2lkIGllZWU4MDIxMV9lbXVsYXRlX2NoYW5nZV9jaGFuY3R4KHN0cnVjdCBpZWVlODAyMTFfaHcgKmh3LFxuLS1cbm5ldC9tYWM4MDIxMS9tYWluLmMtMzEwLVxubmV0L21hYzgwMjExL21haW4uYzozMTE6XHRfaWVlZTgwMjExX2h3X2NvbmZfY2hhbihsb2NhbCwgY3R4KTtcbm5ldC9tYWM4MDIxMS9tYWluLmMtMzEyLX1cbi0tXG5uZXQvbWFjODAyMTEvbWFpbi5jPTMxNT1pbnQgaWVlZTgwMjExX2VtdWxhdGVfc3dpdGNoX3ZpZl9jaGFuY3R4KHN0cnVjdCBpZWVlODAyMTFfaHcgKmh3LFxuLS1cbm5ldC9tYWM4MDIxMS9tYWluLmMtMzI1LVx0bG9jYWwtXHUwMDNlaHcuY29uZi5yYWRhcl9lbmFibGVkID0gdmlmc1swXS5uZXdfY3R4LVx1MDAzZXJhZGFyX2VuYWJsZWQ7XG5uZXQvbWFjODAyMTEvbWFpbi5jOjMyNjpcdF9pZWVlODAyMTFfaHdfY29uZl9jaGFuKGxvY2FsLCB2aWZzWzBdLm5ld19jdHgpO1xubmV0L21hYzgwMjExL21haW4uYy0zMjctXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MjMvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzI5IDEwOjI0PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy43LWZsYXNoPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDIzOTcyCgkJCQkJCQlvdXRwdXQ6IDMyCgkJCQkJCQl0aG91Z2h0czogNzAxCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKkZ1enppbmcgRXZhbHVhdGlvbjogV2lyZWxlc3MgQ2hhbm5lbCBDb250ZXh0IFJlbW92YWwqKgoKQWxyaWdodCwgbGV0JiMzOTtzIGJyZWFrIHRoaXMgZG93bi4gRmlyc3QsIEkgbmVlZCB0byBkZXRlcm1pbmUgaWYgdGhpcyBjaGFuZ2Ugd2FycmFudHMgZnV6emluZy4gSSYjMzk7bSBsb29raW5nIGZvciBhICYjMzQ7V29ydGhGdXp6aW5nID0gdHJ1ZSYjMzQ7IGFuc3dlci4gTXkgaW5pdGlhbCBhc3Nlc3NtZW50IGlzOiBpdCBpcyBXb3J0aEZ1enppbmcuIFRoZSBjaGFuZ2UgaXMgd2l0aGluIGNvcmUgd2lyZWxlc3MgbG9naWMgaW4gbWFjODAyMTEsIHNwZWNpZmljYWxseSBgaWVlZTgwMjExX2VtdWxhdGVfcmVtb3ZlX2NoYW5jdHhgLiBUaGlzIGlzbiYjMzk7dCBkb2N1bWVudGF0aW9uLCBkZWNvcmF0aW9uLCBjb25zdGFudCB0d2Vha2luZywgb3IgaW5hY2Nlc3NpYmxlIGNvZGUuIFRoZSB1c2Ugb2YgYG1hYzgwMjExX2h3c2ltYCBtYWtlcyBpdCByZWFjaGFibGUgaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzLCB3aGljaCBpcyBrZXkgZm9yIGZ1enppbmcgZmVhc2liaWxpdHkgYW5kIHRoZSBubDgwMjExL2NmZzgwMjExIGludGVyZmFjZSBtZWFucyB3ZSBjYW4gdHJpZ2dlciB0aGUgY29kZSBwYXRocy4KCk5vdywgbGV0JiMzOTtzIGlkZW50aWZ5IHRoZSBzaWduaWZpY2FudCBzeW1ib2xzLiBJJiMzOTt2ZSBnb3Q6IGBpZWVlODAyMTFfZW11bGF0ZV9yZW1vdmVfY2hhbmN0eGAsIGBpZWVlODAyMTFfZnJlZV9jaGFuY3R4YCwgYGllZWU4MDIxMV9lbXVsYXRlX2FkZF9jaGFuY3R4YCwgYGllZWU4MDIxMV9lbXVsYXRlX2NoYW5nZV9jaGFuY3R4YCwgYW5kIGBpZWVlODAyMTFfaHdfY29uZl9jaGFuYC4gVGhlc2UgYXJlIHRoZSBmdW5jdGlvbnMgSSYjMzk7bGwgbmVlZCB0byBmb2N1cyBvbiBkdXJpbmcgZnV6emluZy4KCk5leHQsIEkgbmVlZCB0byBlbnN1cmUgdGhlc2Ugc3ltYm9scyBhcmUgYWNjZXNzaWJsZS4gT2theSwgYGllZWU4MDIxMV9lbXVsYXRlX3JlbW92ZV9jaGFuY3R4YCwgYGllZWU4MDIxMV9lbXVsYXRlX2FkZF9jaGFuY3R4YCwgYW5kIGBpZWVlODAyMTFfZW11bGF0ZV9jaGFuZ2VfY2hhbmN0eGAgYXJlIGFsbCBleHBvcnRlZC4gRXhjZWxsZW50LiBgaWVlZTgwMjExX2ZyZWVfY2hhbmN0eGAgbG9va3Mgbm9uLXN0YXRpYyB3aXRoaW4gYGNoYW4uY2AsIGFsc28gZ29vZC4KCkZpbmFsbHksIEkgbmVlZCB0byBjaGVjayB0aGUgS2NvbmZpZyBkZXBlbmRlbmNpZXMuIGBNQUM4MDIxMWAgZGVwZW5kcyBvbiBgQ0ZHODAyMTFgLCBhbmQgYE1BQzgwMjExX0hXU0lNYCBkZXBlbmRzIG9uIGBNQUM4MDIxMWAuIEkmIzM5O2xsIG5lZWQgdG8gbWFrZSBzdXJlIHRob3NlIGFyZSBlbmFibGVkLCBhbG9uZyB3aXRoIHdoYXRldmVyIGBDRkc4MDIxMWAgaXRzZWxmIGRlcGVuZHMgb24sIGZyb20gYG5ldC93aXJlbGVzcy9LY29uZmlnYC4gVGhlc2UgYXJlIG5lY2Vzc2FyeSB0byBzZXQgdXAgYSB2YWxpZCBmdXp6aW5nIGVudmlyb25tZW50LgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjI0LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8yOSAxMDoyNDwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPnJlYWQtZmlsZTwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RmlsZSYjMzQ7OiAmIzM0O25ldC93aXJlbGVzcy9LY29uZmlnJiMzNDssCiAgJiMzNDtGaXJzdExpbmUmIzM0OzogMSwKICAmIzM0O0xpbmVDb3VudCYjMzQ7OiA0MAp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7Q29udGVudHMmIzM0OzogJiMzNDsgICAxOlx0IyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMC1vbmx5XG4gICAyOlx0Y29uZmlnIFdJUkVMRVNTX0VYVFxuICAgMzpcdFx0Ym9vbFxuICAgNDpcdFxuICAgNTpcdGNvbmZpZyBXRVhUX0NPUkVcbiAgIDY6XHRcdGRlZl9ib29sIHlcbiAgIDc6XHRcdGRlcGVuZHMgb24gQ0ZHODAyMTFfV0VYVCB8fCBXSVJFTEVTU19FWFRcbiAgIDg6XHRcbiAgIDk6XHRjb25maWcgV0VYVF9QUk9DXG4gIDEwOlx0XHRkZWZfYm9vbCB5XG4gIDExOlx0XHRkZXBlbmRzIG9uIFBST0NfRlNcbiAgMTI6XHRcdGRlcGVuZHMgb24gV0VYVF9DT1JFXG4gIDEzOlx0XG4gIDE0Olx0Y29uZmlnIFdFWFRfUFJJVlxuICAxNTpcdFx0Ym9vbFxuICAxNjpcdFxuICAxNzpcdGNvbmZpZyBDRkc4MDIxMVxuICAxODpcdFx0dHJpc3RhdGUgXCYjMzQ7Y2ZnODAyMTEgLSB3aXJlbGVzcyBjb25maWd1cmF0aW9uIEFQSVwmIzM0O1xuICAxOTpcdFx0ZGVwZW5kcyBvbiBSRktJTEwgfHwgIVJGS0lMTFxuICAyMDpcdFx0c2VsZWN0IEZXX0xPQURFUlxuICAyMTpcdFx0c2VsZWN0IENSQzMyXG4gIDIyOlx0XHQjIG1heSBuZWVkIHRvIHVwZGF0ZSB0aGlzIHdoZW4gY2VydGlmaWNhdGVzIGFyZSBjaGFuZ2VkIGFuZCBhcmVcbiAgMjM6XHRcdCMgdXNpbmcgYSBkaWZmZXJlbnQgYWxnb3JpdGhtLCB0aG91Z2ggcmlnaHQgbm93IHRoZXkgc2hvdWxkbiYjMzk7dFxuICAyNDpcdFx0IyAodGhpcyBpcyBoZXJlIHJhdGhlciB0aGFuIGJlbG93IHRvIGFsbG93IGl0IHRvIGJlIGEgbW9kdWxlKVxuICAyNTpcdFx0c2VsZWN0IENSWVBUT19TSEEyNTYgaWYgQ0ZHODAyMTFfVVNFX0tFUk5FTF9SRUdEQl9LRVlTXG4gIDI2Olx0XHRoZWxwXG4gIDI3Olx0XHQgIGNmZzgwMjExIGlzIHRoZSBMaW51eCB3aXJlbGVzcyBMQU4gKDgwMi4xMSkgY29uZmlndXJhdGlvbiBBUEkuXG4gIDI4Olx0XHQgIEVuYWJsZSB0aGlzIGlmIHlvdSBoYXZlIGEgd2lyZWxlc3MgZGV2aWNlLlxuICAyOTpcdFxuICAzMDpcdFx0ICBGb3IgbW9yZSBpbmZvcm1hdGlvbiByZWZlciB0byBkb2N1bWVudGF0aW9uIG9uIHRoZSB3aXJlbGVzcyB3aWtpOlxuICAzMTpcdFxuICAzMjpcdFx0ICBodHRwczovL3dpcmVsZXNzLndpa2kua2VybmVsLm9yZy9lbi9kZXZlbG9wZXJzL0RvY3VtZW50YXRpb24vY2ZnODAyMTFcbiAgMzM6XHRcbiAgMzQ6XHRcdCAgV2hlbiBidWlsdCBhcyBhIG1vZHVsZSBpdCB3aWxsIGJlIGNhbGxlZCBjZmc4MDIxMS5cbiAgMzU6XHRcbiAgMzY6XHRpZiBDRkc4MDIxMVxuICAzNzpcdFxuICAzODpcdGNvbmZpZyBOTDgwMjExX1RFU1RNT0RFXG4gIDM5Olx0XHRib29sIFwmIzM0O25sODAyMTEgdGVzdG1vZGUgY29tbWFuZFwmIzM0O1xuICA0MDpcdFx0aGVscFxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjI1LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8yOSAxMDoyNDwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuNy1mbGFzaDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAyNTcyMQoJCQkJCQkJb3V0cHV0OiAzNgoJCQkJCQkJdGhvdWdodHM6IDI3CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Pa2F5LCBsZXQmIzM5O3Mgc2VlLiBNeSBmaXJzdCB0aG91Z2h0IGlzIHRvIGRpZyBpbnRvIHRoZSBjb21waWxhdGlvbiBwcm9jZXNzIGZvciBgbWFpbi5jYCwgYW5kIGEgbGlrZWx5IHN0YXJ0aW5nIHBvaW50IGlzIHRoZSBgbmV0L21hYzgwMjExL01ha2VmaWxlYC4gVGhhdCYjMzk7cyB3aGVyZSBJIHdvdWxkIGV4cGVjdCB0byBmaW5kIHRoZSBydWxlcyB0aGF0IGRpY3RhdGUgaG93IHRoYXQgcGFydGljdWxhciBmaWxlIGlzIHRyYW5zZm9ybWVkIGludG8gb2JqZWN0IGNvZGUgYW5kIHVsdGltYXRlbHkgbGlua2VkIGludG8gdGhlIGZpbmFsIGV4ZWN1dGFibGUgb3IgbW9kdWxlLiBJdCYjMzk7cyB0aGUgbW9zdCBsb2dpY2FsIHBsYWNlIHRvIGJlZ2luIHVucmF2ZWxpbmcgaG93IHRoZSBrZXJuZWwgYnVpbGQgc3lzdGVtIGhhbmRsZXMgdGhpcyBzcGVjaWZpYyBzb3VyY2UgZmlsZS4gTGV0JiMzOTtzIHNlZSB3aGF0IHNlY3JldHMgdGhpcyBNYWtlZmlsZSBob2xkcy4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4yNi8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMjkgMTA6MjQ8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5yZWFkLWZpbGU8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0ZpbGUmIzM0OzogJiMzNDtuZXQvbWFjODAyMTEvTWFrZWZpbGUmIzM0OywKICAmIzM0O0ZpcnN0TGluZSYjMzQ7OiAxLAogICYjMzQ7TGluZUNvdW50JiMzNDs6IDQwCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtDb250ZW50cyYjMzQ7OiAmIzM0OyAgIDE6XHQjIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wXG4gICAyOlx0b2JqLSQoQ09ORklHX01BQzgwMjExKSAmIzQzOz0gbWFjODAyMTEub1xuICAgMzpcdFxuICAgNDpcdCMgbWFjODAyMTEgb2JqZWN0c1xuICAgNTpcdG1hYzgwMjExLXkgOj0gXFxcbiAgIDY6XHRcdG1haW4ubyBzdGF0dXMubyBcXFxuICAgNzpcdFx0ZHJpdmVyLW9wcy5vIFxcXG4gICA4Olx0XHRzdGFfaW5mby5vIFxcXG4gICA5Olx0XHR3ZXAubyBcXFxuICAxMDpcdFx0YWVhZF9hcGkubyBcXFxuICAxMTpcdFx0d3BhLm8gXFxcbiAgMTI6XHRcdHNjYW4ubyBvZmZjaGFubmVsLm8gXFxcbiAgMTM6XHRcdGh0Lm8gYWdnLXR4Lm8gYWdnLXJ4Lm8gXFxcbiAgMTQ6XHRcdHZodC5vIFxcXG4gIDE1Olx0XHRoZS5vIFxcXG4gIDE2Olx0XHRzMWcubyBcXFxuICAxNzpcdFx0aWJzcy5vIFxcXG4gIDE4Olx0XHRpZmFjZS5vIFxcXG4gIDE5Olx0XHRsaW5rLm8gXFxcbiAgMjA6XHRcdHJhdGUubyBcXFxuICAyMTpcdFx0dGtpcC5vIFxcXG4gIDIyOlx0XHRhZXNfY21hYy5vIFxcXG4gIDIzOlx0XHRhZXNfZ21hYy5vIFxcXG4gIDI0Olx0XHRmaWxzX2FlYWQubyBcXFxuICAyNTpcdFx0Y2ZnLm8gXFxcbiAgMjY6XHRcdGV0aHRvb2wubyBcXFxuICAyNzpcdFx0cngubyBcXFxuICAyODpcdFx0c3BlY3RtZ210Lm8gXFxcbiAgMjk6XHRcdHR4Lm8gXFxcbiAgMzA6XHRcdGtleS5vIFxcXG4gIDMxOlx0XHR1dGlsLm8gcGFyc2UubyBcXFxuICAzMjpcdFx0d21lLm8gXFxcbiAgMzM6XHRcdGNoYW4ubyBhcC5vIFxcXG4gIDM0Olx0XHR0cmFjZS5vIG1sbWUubyBcXFxuICAzNTpcdFx0dGRscy5vIFxcXG4gIDM2Olx0XHRvY2IubyBcXFxuICAzNzpcdFx0YWlydGltZS5vIFxcXG4gIDM4Olx0XHRlaHQubyB1aHIubyBuYW4ub1xuICAzOTpcdFxuICA0MDpcdG1hYzgwMjExLSQoQ09ORklHX01BQzgwMjExX0xFRFMpICYjNDM7PSBsZWQub1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjI3LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8yOSAxMDoyNDwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuNy1mbGFzaDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAyNjQwNwoJCQkJCQkJb3V0cHV0OiAxODcKCQkJCQkJCXRob3VnaHRzOiAxNDEKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqQW5hbHl6aW5nIFdpcmVsZXNzIENvbmZpZ3VyYXRpb24gT3B0aW9ucyoqCgpPa2F5LCBzbyBJJiMzOTttIGxvb2tpbmcgYXQgdGhlc2UgY29uZmlndXJhdGlvbiBvcHRpb25zLCBzcGVjaWZpY2FsbHkgYENPTkZJR19NQUM4MDIxMWAsIGBDT05GSUdfQ0ZHODAyMTFgLCBhbmQgYENPTkZJR19NQUM4MDIxMV9IV1NJTWAuIEkgbmVlZCB0byBlbnN1cmUgSSBoYXZlIGEgZ29vZCBncmFzcCBvZiBob3cgdGhlc2UgYXJlIHNldC4gSSYjMzk7bGwgbWVudGFsbHkgc3RyaXAgdGhlIGBDT05GSUdfYCBwcmVmaXggdG8gZ2V0IHRoZSBjb3JlIGNvbmZpZyBzeW1ib2xzOiBgTUFDODAyMTFgLCBgQ0ZHODAyMTFgLCBhbmQgYE1BQzgwMjExX0hXU0lNYC4gTWFrZXMgaXQgZWFzaWVyIHRvIHF1aWNrbHkgc2NhbiB0aGUgYXJyYXkgd2l0aG91dCB0aGUgZXh0cmEgY2x1dHRlci4KClJpZ2h0LCB0aW1lIHRvIHplcm8gaW4gb24gdGhlIHJlbGV2YW50IGZ1bmN0aW9ucy4gTGV0JiMzOTtzIHNlZS4uLiBgaWVlZTgwMjExX2VtdWxhdGVfcmVtb3ZlX2NoYW5jdHhgIGFuZCBgaWVlZTgwMjExX2ZyZWVfY2hhbmN0eGAgLSB0aG9zZSBzdGFuZCBvdXQuIFRoZXkmIzM5O3JlIGRlZmluaXRlbHkgaW4gdGhlIHJpZ2h0IGFyZWEgZm9yIHdoYXQgSSYjMzk7bSBkb2luZy4KCk5vdyB0aGF0IEkmIzM5O3ZlIGdvdCBhIGhhbmRsZSBvbiB0aGUga2V5IGNvbmZpZyBvcHRpb25zIGFuZCB0aGUgdGFyZ2V0IGZ1bmN0aW9ucywgSSBzaG91bGQgZ2V0IHRoaXMgYW5hbHlzaXMgZG9uZS4gVGltZSB0byBjYWxsIGBzZXQtcmVzdWx0c2AuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MjgvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzI5IDEwOjI0PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+c2V0LXJlc3VsdHM8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogWwogICAgJiMzNDtNQUM4MDIxMSYjMzQ7LAogICAgJiMzNDtDRkc4MDIxMSYjMzQ7LAogICAgJiMzNDtNQUM4MDIxMV9IV1NJTSYjMzQ7CiAgXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbCiAgICAmIzM0O2llZWU4MDIxMV9lbXVsYXRlX3JlbW92ZV9jaGFuY3R4JiMzNDssCiAgICAmIzM0O2llZWU4MDIxMV9mcmVlX2NoYW5jdHgmIzM0OwogIF0sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggbW9kaWZpZXMgYGllZWU4MDIxMV9lbXVsYXRlX3JlbW92ZV9jaGFuY3R4YCBpbiBtYWM4MDIxMSB0byBhdm9pZCBjYWxsaW5nIGBfaWVlZTgwMjExX2h3X2NvbmZfY2hhbihsb2NhbCwgTlVMTClgIHdoZW4gY2hhbm5lbCBjb250ZXh0cyBhcmUgcmVtb3ZlZCwgY2hhbmdpbmcgY2hhbm5lbCBjb25maWd1cmF0aW9uIGJlaGF2aW9yIGZvciBkcml2ZXJzIHVzaW5nIGVtdWxhdGVkIGNoYW5uZWwgY29udGV4dHMgKHN1Y2ggYXMgbWFjODAyMTFfaHdzaW0pLiBUaGlzIHRvdWNoZXMgcmVhY2hhYmxlIGNvcmUgd2lyZWxlc3MgbmV0d29ya2luZyBsb2dpYyBhbmQgaXMgd29ydGggZnV6emluZy4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiB0cnVlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IFsKICAgICYjMzQ7TUFDODAyMTEmIzM0OywKICAgICYjMzQ7Q0ZHODAyMTEmIzM0OywKICAgICYjMzQ7TUFDODAyMTFfSFdTSU0mIzM0OwogIF0sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogWwogICAgJiMzNDtpZWVlODAyMTFfZW11bGF0ZV9yZW1vdmVfY2hhbmN0eCYjMzQ7LAogICAgJiMzNDtpZWVlODAyMTFfZnJlZV9jaGFuY3R4JiMzNDsKICBdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIG1vZGlmaWVzIGBpZWVlODAyMTFfZW11bGF0ZV9yZW1vdmVfY2hhbmN0eGAgaW4gbWFjODAyMTEgdG8gYXZvaWQgY2FsbGluZyBgX2llZWU4MDIxMV9od19jb25mX2NoYW4obG9jYWwsIE5VTEwpYCB3aGVuIGNoYW5uZWwgY29udGV4dHMgYXJlIHJlbW92ZWQsIGNoYW5naW5nIGNoYW5uZWwgY29uZmlndXJhdGlvbiBiZWhhdmlvciBmb3IgZHJpdmVycyB1c2luZyBlbXVsYXRlZCBjaGFubmVsIGNvbnRleHRzIChzdWNoIGFzIG1hYzgwMjExX2h3c2ltKS4gVGhpcyB0b3VjaGVzIHJlYWNoYWJsZSBjb3JlIHdpcmVsZXNzIG5ldHdvcmtpbmcgbG9naWMgYW5kIGlzIHdvcnRoIGZ1enppbmcuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogdHJ1ZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MjkvMTwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzI5IDEwOjI0PC90ZD4KCQkJPHRkPmFjdGlvbjwvdGQ+CgkJCTx0ZD5JZjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IHRydWUKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4zMC8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMjkgMTA6MjQ8L3RkPgoJCQk8dGQ+YWdlbnQ8L3RkPgoJCQk8dGQ+a21zYW4tZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Y29yZTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtLTVNBTlJlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCByZW1vdmVzIGEgY2FsbCB0byBgX2llZWU4MDIxMV9od19jb25mX2NoYW4obG9jYWwsIE5VTEwpYCBpbnNpZGUgYGllZWU4MDIxMV9lbXVsYXRlX3JlbW92ZV9jaGFuY3R4KClgIHRvIGF2b2lkIHVubmVjZXNzYXJ5IGNoYW5uZWwgcmVjb25maWd1cmF0aW9uIHdoZW4gcmVtb3ZpbmcgYSBjaGFubmVsIGNvbnRleHQgaW4gZW11bGF0aW9uIG1vZGUuXG5cblRoaXMgbW9kaWZpY2F0aW9uIGRvZXMgbm90OlxuMS4gQWxsb2NhdGUsIGFjY2Vzcywgb3IgZXhwb3NlIGFueSB1bmluaXRpYWxpemVkIG1lbW9yeSAoc3RhY2ssIGhlYXAsIG9yIHBhZ2UgYWxsb2NhdGlvbnMpLlxuMi4gQ29weSBhbnkga2VybmVsIGRhdGEgc3RydWN0dXJlcyB0byB1c2Vyc3BhY2UgKG5vIGluZm8tbGVhayByaXNrKS5cbjMuIEludHJvZHVjZSBvciBhbHRlciBicmFuY2ggY29uZGl0aW9ucyBiYXNlZCBvbiB1bmluaXRpYWxpemVkIGRhdGEgb3IgbWFuaXB1bGF0ZSBidWZmZXIgYm91bmRzLlxuXG5BbnkgcG90ZW50aWFsIGJlaGF2aW9yYWwgcmVncmVzc2lvbnMgb3IgZHJpdmVyIHN0YXRlIGluY29uc2lzdGVuY2llcyB3b3VsZCBiZSBmdW5jdGlvbmFsIGJ1Z3Mgb3IgY292ZXJlZCB1bmRlciBzdGFuZGFyZCBrZXJuZWwgdGVzdGluZy9LQVNBTi4gVGhlcmVmb3JlLCBhIGRlZGljYXRlZCBLTVNBTiBmdXp6aW5nIHNlc3Npb24gaXMgbm90IHdhcnJhbnRlZC4mIzM0OywKICAmIzM0O05lZWRzS01TQU4mIzM0OzogZmFsc2UKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+SW5zdHJ1Y3Rpb246PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Zb3UgYXJlIGFuIGV4cGVydCBMaW51eCBrZXJuZWwgc2VjdXJpdHkgZW5naW5lZXIgc3BlY2lhbGl6aW5nIGluIGtlcm5lbCBtZW1vcnkKZXJyb3IgZGV0ZWN0b3JzIChLQVNBTiBhbmQgS01TQU4pLiBZb3VyIGpvYiBpcyB0byByZXZpZXcgdGhlIHByb3ZpZGVkIHBhdGNoIHNlcmllcyBhbmQKZGV0ZXJtaW5lIGlmIHRoZSBjb2RlIGNoYW5nZXMganVzdGlmeSBzcGF3bmluZyBhIGRlZGljYXRlZCBLTVNBTiAoS2VybmVsTWVtb3J5U2FuaXRpemVyKQpmdXp6aW5nIHNlc3Npb24gaW4gYWRkaXRpb24gdG8gc3RhbmRhcmQgS0FTQU4gZnV6emluZy4KCkNSSVRJQ0FMIERJU1RJTkNUSU9OIEJFVFdFRU4gS0FTQU4gQU5EIEtNU0FOOgotIFN0YW5kYXJkIEtBU0FOIGtlcm5lbCBidWlsZHMgKHVwc3RyZWFtLWFwcGFybW9yLWthc2FuLmNvbmZpZykgYWxyZWFkeSBlbmFibGUKICBhIGNvbXByZWhlbnNpdmUgc3VpdGUgb2YgZGVidWdnaW5nIHRvb2xzIGFuZCBzYW5pdGl6ZXJzLCBpbmNsdWRpbmcgS0FTQU4KICAob3V0LW9mLWJvdW5kcyBhY2Nlc3NlcywgdXNlLWFmdGVyLWZyZWUsIGRvdWJsZSBmcmVlLCBpbnZhbGlkIGZyZWUpLCBMT0NLREVQCiAgKGxvY2tpbmcgYnVncyBhbmQgZGVhZGxvY2tzKSwgVUItc2FuaXRpemVycywgYW5kIG1lbW9yeSBjb3JydXB0aW9uIGNoZWNrcy4KLSBLTVNBTiAoS2VybmVsTWVtb3J5U2FuaXRpemVyKSBkZXRlY3RzIHJlYWRzIG9mIFVOSU5JVElBTElaRUQgbWVtb3J5IChzdGFjaywgaGVhcCwKICBvciBwYWdlIGFsbG9jYXRpb25zKSBhbmQga2VybmVsLXRvLXVzZXIgbWVtb3J5IGluZm8tbGVha3MuCgpSdWxlOiBUSEVSRSBJUyBOTyBTRU5TRSBJTiBSVU5OSU5HIEEgS01TQU4gU0VTU0lPTiBJRiBBIEJVRyBDQU4gQkUgQ0FVR0hUIEJZIEtBU0FOLApMT0NLREVQLCBPUiBPVEhFUiBTVEFOREFSRCBCVUcgREVURUNUT1JTLgpBIGRlZGljYXRlZCBLTVNBTiBmdXp6aW5nIHNlc3Npb24gaW5jdXJzIHNpZ25pZmljYW50IHJlc291cmNlIGNvc3RzLiBZb3UgbXVzdCBPTkxZCnNldCBOZWVkc0tNU0FOPXRydWUgaWYgdGhlIGNvZGUgY2hhbmdlcyBpbnRyb2R1Y2Ugb3IgZXhwb3NlIFVOSU5JVElBTElaRUQgTUVNT1JZIHJpc2tzCnRoYXQgYXJlIGRldGVjdGVkIE9OTFkgYnkgS01TQU4uCgpMb29rIGhvbGlzdGljYWxseSBhdCB0aGUgcGF0Y2ggc2VyaWVzIGFuZCBzdXJyb3VuZGluZyBjb2RlLiBFdmVuIGlmIG5vIGRpcmVjdAp1bmluaXRpYWxpemVkIGZpZWxkIGFjY2Vzc2VzIG9yIG5ldyBidWZmZXIgYWxsb2NhdGlvbnMgYXJlIGFkZGVkIGluIHRoZSBkaWZmIGl0c2VsZiwKYSBwYXRjaCBtYXkgYWx0ZXIgY29udHJvbCBmbG93LCBib3VuZHMgY2hlY2tpbmcsIG9yIGRhdGEgbGVuZ3RoIGNhbGN1bGF0aW9ucyBpbiB3YXlzCnRoYXQgY2hhbmdlIGhvdyB0aGUgcmVzdCBvZiB0aGUgY29kZSBvcGVyYXRlcyBvbiBleGlzdGluZyBidWZmZXJzIChlLmcuIGFsbG93aW5nCnVuaW5pdGlhbGl6ZWQgc3RhY2svaGVhcCBtZW1vcnkgdG8gYmUgcmVhZCwgY29waWVkIHRvIHVzZXIgc3BhY2UsIG9yIHVzZWQgaW4gY29udHJvbApmbG93KS4gRG8gbm90IGhlc2l0YXRlIHRvIHVzZSB5b3VyIGNvZGUgYWNjZXNzIHRvb2xzIHRvIGluc3BlY3QgdGhlIHN1cnJvdW5kaW5nIGNvZGUsCmNhbGxlZCBmdW5jdGlvbnMsIGFuZCBjYWxsZXJzLgoKU2V0IE5lZWRzS01TQU49dHJ1ZSBPTkxZIElGIHRoZSBwYXRjaCBpbnRyb2R1Y2VzIG9yIG1vZGlmaWVzOgoxLiBLZXJuZWwgc3RydWN0dXJlcyBzZW50IHRvIHVzZXIgc3BhY2UgKHZpYSBjb3B5X3RvX3VzZXIsIHB1dF91c2VyLCBuZXRsaW5rIHNrYgogICBhdHRyaWJ1dGVzLCBpb2N0bCBvdXRwdXQgYXJndW1lbnRzLCBzb2NrZXQgb3B0aW9ucywgb3IgQlBGIGJ1ZmZlcnMpIHdoZXJlIGZpZWxkcwogICBvciBzdHJ1Y3R1cmUgcGFkZGluZyBtaWdodCBub3QgYmUgZnVsbHkgaW5pdGlhbGl6ZWQvemVyb2VkLgoyLiBDb25kaXRpb25hbCBsb2dpYyBvciBicmFuY2hpbmcgdGhhdCBkZXBlbmRzIG9uIHBvdGVudGlhbGx5IHVuaW5pdGlhbGl6ZWQgdmFyaWFibGVzCiAgIG9yIHN0cnVjdCBmaWVsZHMuCjMuIEFsbG9jYXRpb24gb3IgaW5pdGlhbGl6YXRpb24gb2YgY29tcGxleCBkYXRhIHN0cnVjdHVyZXMgd2hlcmUgdW5pbml0aWFsaXplZCBmaWVsZHMKICAgY291bGQgYmUgcmVhZCBsYXRlciBpbiByZWFjaGFibGUgY29kZSBwYXRocy4KNC4gQm91bmRzIGNoZWNrcywgbGVuZ3Rocywgb3IgbG9naWMgaW4gYSB3YXkgdGhhdCBhbGxvd3Mgc3Vycm91bmRpbmcgY29kZSB0byBhY2Nlc3MKICAgdW5pbml0aWFsaXplZCBieXRlcyBvZiBleGlzdGluZyBidWZmZXJzLgoKU2V0IE5lZWRzS01TQU49ZmFsc2UgSUY6Ci0gVGhlIGNvZGUgY2hhbmdlcyBwcmltYXJpbHkgcmlzayBvdXQtb2YtYm91bmRzIGFjY2VzcywgYXJyYXkgb3ZlcmZsb3dzLCBOVUxMIHBvaW50ZXIKICBkZXJlZmVyZW5jZXMsIGxvY2tpbmcgZGVhZGxvY2tzLCBvciB1c2UtYWZ0ZXItZnJlZSBidWdzICh0aGVzZSBhcmUgYWxyZWFkeSBjYXVnaHQKICBieSBLQVNBTiwgTE9DS0RFUCwgb3Igc3RhbmRhcmQgYnVnIGRldGVjdG9ycykuCi0gQWxsIHN0YWNrL2hlYXAgc3RydWN0dXJlcyB0b3VjaGVkIG9yIGludHJvZHVjZWQgYnkgdGhlIHBhdGNoIGFyZSBmdWxseSB6ZXJvZWQKICBvciBpbml0aWFsaXplZCAoZS5nLiB1c2luZyA9IHswfSwgbWVtc2V0LCBremFsbG9jKSBiZWZvcmUgYmVpbmcgcmVhZCBvciBjb3BpZWQuCi0gVGhlIHBhdGNoIGRvZXMgbm90IGludHJvZHVjZSBhbnkgcmlzayBvZiB1bmluaXRpYWxpemVkIG1lbW9yeSB1c2FnZSBvciBpbmZvLWxlYWtzLgoKVXNlIHlvdXIgY29kZSBhY2Nlc3MgdG9vbHMgdG8gaW5zcGVjdCB0aGUgc3Vycm91bmRpbmcgY29kZSBpZiBuZWNlc3NhcnksIHRoZW4gcHJvdmlkZQpkZXRhaWxlZCBLTVNBTlJlYXNvbmluZyBjb250cmFzdGluZyBLQVNBTiB2cyBLTVNBTiBhcHBsaWNhYmlsaXR5IGZvciB0aGlzIHBhdGNoLgpQcmVmZXIgY2FsbGluZyBzZXZlcmFsIHRvb2xzIGF0IHRoZSBzYW1lIHRpbWUgdG8gc2F2ZSByb3VuZC10cmlwcy4KCgpVc2Ugc2V0LXJlc3VsdHMgdG9vbCB0byBwcm92aWRlIHJlc3VsdHMgb2YgdGhlIGFuYWx5c2lzLgpJdCBtdXN0IGJlIGNhbGxlZCBleGFjdGx5IG9uY2UgYmVmb3JlIHRoZSBmaW5hbCByZXBseS4KSWdub3JlIHJlc3VsdHMgb2YgdGhpcyB0b29sLgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlByb21wdDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPkZvciB5b3VyIGNvbnZlbmllbmNlLCBoZXJlIGlzIHRoZSBkaWZmIG9mIHRoZSBjaGFuZ2VzOgpjb21taXQgYTlkYTVjZmMzNGZhMTUyMjdlZDFiNmFkZTVlM2YxYzA4MDI0ZWI4MQpBdXRob3I6IHN5ei1jbHVzdGVyICZsdDt0cmlhZ2VAc3l6a2FsbGVyLmNvbSZndDsKRGF0ZTogICBTYXQgQXVnIDI5IDEwOjIyOjIwIDIwMjYgJiM0MzswMDAwCgogICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3CgpkaWZmIC0tZ2l0IGEvbmV0L21hYzgwMjExL21haW4uYyBiL25ldC9tYWM4MDIxMS9tYWluLmMKaW5kZXggYTU5ODM3YjlmNDgwZi4uYjNmOWIzYmMzY2FjNyAxMDA2NDQKLS0tIGEvbmV0L21hYzgwMjExL21haW4uYwomIzQzOyYjNDM7JiM0MzsgYi9uZXQvbWFjODAyMTEvbWFpbi5jCkBAIC0yODksOSAmIzQzOzI4OSwxNCBAQCB2b2lkIGllZWU4MDIxMV9lbXVsYXRlX3JlbW92ZV9jaGFuY3R4KHN0cnVjdCBpZWVlODAyMTFfaHcgKmh3LAogewogCXN0cnVjdCBpZWVlODAyMTFfbG9jYWwgKmxvY2FsID0gaHdfdG9fbG9jYWwoaHcpOwogCiYjNDM7CS8qCiYjNDM7CSAqIFdpdGggbm8gY29udGV4dCBsZWZ0IHRoZXJlIGlzIG5vdGhpbmcgdG8gY29uZmlndXJlOiBub3RoaW5nIGlzIG9uCiYjNDM7CSAqIHRoZSBhaXIsIGFuZCB0aGUgbmV4dCBjb250ZXh0IHNldHMgdGhlIGNoYW5uZWwuIFBhcmtpbmcgdGhlIHJhZGlvCiYjNDM7CSAqIG9uIHRoZSBkZWZhdWx0IGNoYW5uZWwgaGVyZSBvbmx5IHRvIG1vdmUgaXQgYWdhaW4gd2hlbiB0aGUgbmV4dAomIzQzOwkgKiBjb250ZXh0IGlzIGFkZGVkIGNvc3RzIGRyaXZlcnMgd2l0aG91dCBuYXRpdmUgY2hhbm5lbCBjb250ZXh0cyBhCiYjNDM7CSAqIGZ1bGwgY2hhbm5lbCBjaGFuZ2UgcGVyIHJldHVuZS4KJiM0MzsJICovCiAJbG9jYWwtJmd0O2h3LmNvbmYucmFkYXJfZW5hYmxlZCA9IGZhbHNlOwotCi0JX2llZWU4MDIxMV9od19jb25mX2NoYW4obG9jYWwsIE5VTEwpOwogfQogRVhQT1JUX1NZTUJPTChpZWVlODAyMTFfZW11bGF0ZV9yZW1vdmVfY2hhbmN0eCk7CiAKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MzEvMzwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzI5IDEwOjI0PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5rbXNhbi1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy43LWZsYXNoPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDIxODQKCQkJCQkJCW91dHB1dDogNDMKCQkJCQkJCXRob3VnaHRzOiAzOTkKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqQW5hbHl6aW5nIHRoZSBNYWM4MDIxMSBDaGFubmVsIENvbnRleHQgUmVtb3ZhbCBQYXRjaCoqCgpPa2F5LCBsZXQmIzM5O3MgZGl2ZSBpbnRvIHRoaXMgcGF0Y2guIEZyb20gYSBxdWljayBnbGFuY2UgYXQgdGhlIGRpZmYsIGl0IGxvb2tzIGxpa2UgdGhleSYjMzk7cmUgcmVtb3ZpbmcgYSBjYWxsIHRvIGBfaWVlZTgwMjExX2h3X2NvbmZfY2hhbmAgd2l0aGluIGBpZWVlODAyMTFfZW11bGF0ZV9yZW1vdmVfY2hhbmN0eGAuIEludGVyZXN0aW5nLiBUaGUgZnVuY3Rpb24mIzM5O3MgcHVycG9zZSBpcyB0byBlbXVsYXRlIGNoYW5uZWwgY29udGV4dCByZW1vdmFsIGZvciBkcml2ZXJzIHdpdGhvdXQgbmF0aXZlIGNoYW5uZWwgY29udGV4dHMuIEJlZm9yZSB0aGlzIGNoYW5nZSwgaXQgd2FzIHNldHRpbmcgYHJhZGFyX2VuYWJsZWRgIHRvIGZhbHNlIGFuZCBpbW1lZGlhdGVseSByZWNvbmZpZ3VyaW5nIHRoZSBoYXJkd2FyZSB3aXRoIGBfaWVlZTgwMjExX2h3X2NvbmZfY2hhbmAuCgpOb3csIHRoZSBhZGRlZCBjb21tZW50IGNsYXJpZmllcyB0aGUgcmVhc29uaW5nLiBJdCBzZWVtcyB0aGUgdGVhbSByZWFsaXplZCB0aGF0IGFmdGVyIHJlbW92aW5nIGEgY29udGV4dCAoYW5kIHRodXMsIGRpc2FibGluZyB0aGUgY2hhbm5lbCksIHRoZXJlJiMzOTtzIG5vIG5lZWQgdG8gaW1tZWRpYXRlbHkgcmUtY29uZmlndXJlIG9uIGEgZGVmYXVsdCBjaGFubmVsLiBTaW5jZSBubyBjb250ZXh0IHJlbWFpbnMsIHRoZSBoYXJkd2FyZSBpc24mIzM5O3QgYWN0dWFsbHkgb24gdGhlIGFpci4gVGhlIG5leHQgY2hhbm5lbCBjb250ZXh0IGFkZGl0aW9uIHdpbGwgaGFuZGxlIHRoZSBhY3R1YWwgY2hhbm5lbCBjb25maWd1cmF0aW9uIGFueXdheS4KCkVzc2VudGlhbGx5LCBieSByZW1vdmluZyB0aGlzIGNhbGwsIHRoZXkmIzM5O3JlIG9wdGltaXppbmcuIFRoZSBleGlzdGluZyBiZWhhdmlvciB3YXMgbGlrZWx5IGNhdXNpbmcgYW4gdW5uZWNlc3NhcnkgY2hhbm5lbCBjaGFuZ2UgcGVyICYjMzQ7cmV0dW5lJiMzNDsgZm9yIGRyaXZlcnMgdGhhdCAqZG9uJiMzOTt0KiBoYXZlIG5hdGl2ZSBjaGFubmVsIGNvbnRleHRzLiBJdCYjMzk7cyBhIHBlcmZvcm1hbmNlIGltcHJvdmVtZW50LCBlc3BlY2lhbGx5IGZvciBkcml2ZXJzIHdoZXJlIHRoaXMgZnVuY3Rpb24gaXMgY2FsbGVkIGZyZXF1ZW50bHkuIE15IG5leHQgc3RlcCB3aWxsIGJlIHRvIGV4cGxvcmUgYGllZWU4MDIxMV9lbXVsYXRlX3JlbW92ZV9jaGFuY3R4YCBhbmQgYF9pZWVlODAyMTFfaHdfY29uZl9jaGFuYCBpbiBtb3JlIGRldGFpbC4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4zMi8zPC90ZD4KCQkJPHRkPjIwMjYvMDgvMjkgMTA6MjU8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7aWVlZTgwMjExX2VtdWxhdGVfcmVtb3ZlX2NoYW5jdHgmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtuZXQvbWFjODAyMTEmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7bmV0L21hYzgwMjExL21haW4uYz0yODU9RVhQT1JUX1NZTUJPTChpZWVlODAyMTFfZW11bGF0ZV9hZGRfY2hhbmN0eCk7XG5uZXQvbWFjODAyMTEvbWFpbi5jLTI4Ni1cbm5ldC9tYWM4MDIxMS9tYWluLmM6Mjg3OnZvaWQgaWVlZTgwMjExX2VtdWxhdGVfcmVtb3ZlX2NoYW5jdHgoc3RydWN0IGllZWU4MDIxMV9odyAqaHcsXG5uZXQvbWFjODAyMTEvbWFpbi5jLTI4OC1cdFx0XHRcdCAgICAgIHN0cnVjdCBpZWVlODAyMTFfY2hhbmN0eF9jb25mICpjdHgpXG4tLVxubmV0L21hYzgwMjExL21haW4uYy0zMDAtfVxubmV0L21hYzgwMjExL21haW4uYzozMDE6RVhQT1JUX1NZTUJPTChpZWVlODAyMTFfZW11bGF0ZV9yZW1vdmVfY2hhbmN0eCk7XG5uZXQvbWFjODAyMTEvbWFpbi5jLTMwMi1cbi0tXG5uZXQvbWFjODAyMTEvbWFpbi5jPTc5OD1zdHJ1Y3QgaWVlZTgwMjExX2h3ICppZWVlODAyMTFfYWxsb2NfaHdfbm0oc2l6ZV90IHByaXZfZGF0YV9sZW4sXG4tLVxubmV0L21hYzgwMjExL21haW4uYy04MjAtXHRpZiAob3BzLVx1MDAzZWFkZF9jaGFuY3R4ID09IGllZWU4MDIxMV9lbXVsYXRlX2FkZF9jaGFuY3R4IFx1MDAyNlx1MDAyNlxubmV0L21hYzgwMjExL21haW4uYzo4MjE6XHQgICAgb3BzLVx1MDAzZXJlbW92ZV9jaGFuY3R4ID09IGllZWU4MDIxMV9lbXVsYXRlX3JlbW92ZV9jaGFuY3R4IFx1MDAyNlx1MDAyNlxubmV0L21hYzgwMjExL21haW4uYy04MjItXHQgICAgb3BzLVx1MDAzZWNoYW5nZV9jaGFuY3R4ID09IGllZWU4MDIxMV9lbXVsYXRlX2NoYW5nZV9jaGFuY3R4KSB7XG4tLVxubmV0L21hYzgwMjExL21haW4uYy04MjgtXHRcdGlmIChXQVJOX09OKG9wcy1cdTAwM2VhZGRfY2hhbmN0eCA9PSBpZWVlODAyMTFfZW11bGF0ZV9hZGRfY2hhbmN0eCB8fFxubmV0L21hYzgwMjExL21haW4uYzo4Mjk6XHRcdFx0ICAgIG9wcy1cdTAwM2VyZW1vdmVfY2hhbmN0eCA9PSBpZWVlODAyMTFfZW11bGF0ZV9yZW1vdmVfY2hhbmN0eCB8fFxubmV0L21hYzgwMjExL21haW4uYy04MzAtXHRcdFx0ICAgIG9wcy1cdTAwM2VjaGFuZ2VfY2hhbmN0eCA9PSBpZWVlODAyMTFfZW11bGF0ZV9jaGFuZ2VfY2hhbmN0eCkpXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MzMvMzwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzI5IDEwOjI1PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5rbXNhbi1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy43LWZsYXNoPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDM0ODYKCQkJCQkJCW91dHB1dDogNDAKCQkJCQkJCXRob3VnaHRzOiAyOQoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+SGVyZSYjMzk7cyBhIHN1bW1hcnkgb2YgbXkgbWVudGFsIHByb2Nlc3MsIGFzIGlmIEkgd2VyZSB0aGUgb25lIHRoaW5raW5nIGl0OgoKKipEaXZpbmcgaW50byB0aGUgTUFDODAyMTEgQ29kZSoqCgpBbHJpZ2h0LCB0aW1lIHRvIGRpZyBpbnRvIHRoZSBoZWFydCBvZiB0aGUgbWF0dGVyLiBMZXQmIzM5O3MgZ2V0IG91ciBiZWFyaW5ncyBhbmQgbmF2aWdhdGUgdG8gdGhlIGBuZXQvbWFjODAyMTEvbWFpbi5jYCBmaWxlLiBHaXZlbiB3aGF0IEkmIzM5O20gbG9va2luZyBhdCwgbGV0JiMzOTtzIHRhcmdldCB0aGUgY29kZSBhcm91bmQgbGluZXMgMjUwIHRocm91Z2ggMzIwLiBUaGF0IHNob3VsZCBjb250YWluIHRoZSByZWxldmFudCBsb2dpYyBJIG5lZWQgdG8gYW5hbHl6ZSByaWdodCBub3cuIEhvcGVmdWxseSwgdGhpcyBhcmVhIGNvdmVycyB0aGUgc3BlY2lmaWMgbW9kdWxlIG9yIGZ1bmN0aW9uIHRoYXQgSSYjMzk7bSBpbnRlcmVzdGVkIGluIQoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjM0LzM8L3RkPgoJCQk8dGQ+MjAyNi8wOC8yOSAxMDoyNTwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPnJlYWQtZmlsZTwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RmlsZSYjMzQ7OiAmIzM0O25ldC9tYWM4MDIxMS9tYWluLmMmIzM0OywKICAmIzM0O0ZpcnN0TGluZSYjMzQ7OiAyNjAsCiAgJiMzNDtMaW5lQ291bnQmIzM0OzogNjAKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0NvbnRlbnRzJiMzNDs6ICYjMzQ7IDI2MDpcdFx0XHRyZXR1cm47XG4gMjYxOlx0XG4gMjYyOlx0XHRpZiAobG9jYWwtXHUwMDNlZW11bGF0ZV9jaGFuY3R4KSB7XG4gMjYzOlx0XHRcdHN0cnVjdCBpZWVlODAyMTFfY2hhbmN0eCAqY3R4O1xuIDI2NDpcdFxuIDI2NTpcdFx0XHRjdHggPSBsaXN0X2ZpcnN0X2VudHJ5X29yX251bGwoXHUwMDI2bG9jYWwtXHUwMDNlY2hhbmN0eF9saXN0LFxuIDI2NjpcdFx0XHRcdFx0XHQgICAgICAgc3RydWN0IGllZWU4MDIxMV9jaGFuY3R4LFxuIDI2NzpcdFx0XHRcdFx0XHQgICAgICAgbGlzdCk7XG4gMjY4Olx0XG4gMjY5Olx0XHRcdGNoYW5nZWQgfD0gaWVlZTgwMjExX2NhbGNfaHdfY29uZl9jaGFuKGxvY2FsLFxuIDI3MDpcdFx0XHRcdFx0XHRcdCAgICAgICBjdHggPyBcdTAwMjZjdHgtXHUwMDNlY29uZiA6IE5VTEwpO1xuIDI3MTpcdFx0fVxuIDI3MjpcdFxuIDI3MzpcdFx0V0FSTl9PTihkcnZfY29uZmlnKGxvY2FsLCAtMSwgY2hhbmdlZCkpO1xuIDI3NDpcdH1cbiAyNzU6XHRcbiAyNzY6XHRpbnQgaWVlZTgwMjExX2VtdWxhdGVfYWRkX2NoYW5jdHgoc3RydWN0IGllZWU4MDIxMV9odyAqaHcsXG4gMjc3Olx0XHRcdFx0XHQgIHN0cnVjdCBpZWVlODAyMTFfY2hhbmN0eF9jb25mICpjdHgpXG4gMjc4Olx0e1xuIDI3OTpcdFx0c3RydWN0IGllZWU4MDIxMV9sb2NhbCAqbG9jYWwgPSBod190b19sb2NhbChodyk7XG4gMjgwOlx0XG4gMjgxOlx0XHRsb2NhbC1cdTAwM2Vody5jb25mLnJhZGFyX2VuYWJsZWQgPSBjdHgtXHUwMDNlcmFkYXJfZW5hYmxlZDtcbiAyODI6XHRcbiAyODM6XHRcdHJldHVybiBfaWVlZTgwMjExX2h3X2NvbmZfY2hhbihsb2NhbCwgY3R4KTtcbiAyODQ6XHR9XG4gMjg1Olx0RVhQT1JUX1NZTUJPTChpZWVlODAyMTFfZW11bGF0ZV9hZGRfY2hhbmN0eCk7XG4gMjg2Olx0XG4gMjg3Olx0dm9pZCBpZWVlODAyMTFfZW11bGF0ZV9yZW1vdmVfY2hhbmN0eChzdHJ1Y3QgaWVlZTgwMjExX2h3ICpodyxcbiAyODg6XHRcdFx0XHRcdCAgICAgIHN0cnVjdCBpZWVlODAyMTFfY2hhbmN0eF9jb25mICpjdHgpXG4gMjg5Olx0e1xuIDI5MDpcdFx0c3RydWN0IGllZWU4MDIxMV9sb2NhbCAqbG9jYWwgPSBod190b19sb2NhbChodyk7XG4gMjkxOlx0XG4gMjkyOlx0XHQvKlxuIDI5MzpcdFx0ICogV2l0aCBubyBjb250ZXh0IGxlZnQgdGhlcmUgaXMgbm90aGluZyB0byBjb25maWd1cmU6IG5vdGhpbmcgaXMgb25cbiAyOTQ6XHRcdCAqIHRoZSBhaXIsIGFuZCB0aGUgbmV4dCBjb250ZXh0IHNldHMgdGhlIGNoYW5uZWwuIFBhcmtpbmcgdGhlIHJhZGlvXG4gMjk1Olx0XHQgKiBvbiB0aGUgZGVmYXVsdCBjaGFubmVsIGhlcmUgb25seSB0byBtb3ZlIGl0IGFnYWluIHdoZW4gdGhlIG5leHRcbiAyOTY6XHRcdCAqIGNvbnRleHQgaXMgYWRkZWQgY29zdHMgZHJpdmVycyB3aXRob3V0IG5hdGl2ZSBjaGFubmVsIGNvbnRleHRzIGFcbiAyOTc6XHRcdCAqIGZ1bGwgY2hhbm5lbCBjaGFuZ2UgcGVyIHJldHVuZS5cbiAyOTg6XHRcdCAqL1xuIDI5OTpcdFx0bG9jYWwtXHUwMDNlaHcuY29uZi5yYWRhcl9lbmFibGVkID0gZmFsc2U7XG4gMzAwOlx0fVxuIDMwMTpcdEVYUE9SVF9TWU1CT0woaWVlZTgwMjExX2VtdWxhdGVfcmVtb3ZlX2NoYW5jdHgpO1xuIDMwMjpcdFxuIDMwMzpcdHZvaWQgaWVlZTgwMjExX2VtdWxhdGVfY2hhbmdlX2NoYW5jdHgoc3RydWN0IGllZWU4MDIxMV9odyAqaHcsXG4gMzA0Olx0XHRcdFx0XHQgICAgICBzdHJ1Y3QgaWVlZTgwMjExX2NoYW5jdHhfY29uZiAqY3R4LFxuIDMwNTpcdFx0XHRcdFx0ICAgICAgdTMyIGNoYW5nZWQpXG4gMzA2Olx0e1xuIDMwNzpcdFx0c3RydWN0IGllZWU4MDIxMV9sb2NhbCAqbG9jYWwgPSBod190b19sb2NhbChodyk7XG4gMzA4Olx0XG4gMzA5Olx0XHRsb2NhbC1cdTAwM2Vody5jb25mLnJhZGFyX2VuYWJsZWQgPSBjdHgtXHUwMDNlcmFkYXJfZW5hYmxlZDtcbiAzMTA6XHRcbiAzMTE6XHRcdF9pZWVlODAyMTFfaHdfY29uZl9jaGFuKGxvY2FsLCBjdHgpO1xuIDMxMjpcdH1cbiAzMTM6XHRFWFBPUlRfU1lNQk9MKGllZWU4MDIxMV9lbXVsYXRlX2NoYW5nZV9jaGFuY3R4KTtcbiAzMTQ6XHRcbiAzMTU6XHRpbnQgaWVlZTgwMjExX2VtdWxhdGVfc3dpdGNoX3ZpZl9jaGFuY3R4KHN0cnVjdCBpZWVlODAyMTFfaHcgKmh3LFxuIDMxNjpcdFx0XHRcdFx0XHQgc3RydWN0IGllZWU4MDIxMV92aWZfY2hhbmN0eF9zd2l0Y2ggKnZpZnMsXG4gMzE3Olx0XHRcdFx0XHRcdCBpbnQgbl92aWZzLFxuIDMxODpcdFx0XHRcdFx0XHQgZW51bSBpZWVlODAyMTFfY2hhbmN0eF9zd2l0Y2hfbW9kZSBtb2RlKVxuIDMxOTpcdHtcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4zNS8zPC90ZD4KCQkJPHRkPjIwMjYvMDgvMjkgMTA6MjU8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPmttc2FuLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjctZmxhc2g8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogNDcyNgoJCQkJCQkJb3V0cHV0OiA0MAoJCQkJCQkJdGhvdWdodHM6IDI1CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5IZXJlJiMzOTtzIG15IGF0dGVtcHQgYXQgc3VtbWFyaXppbmcgdGhlIHRob3VnaHQgcHJvY2VzcywgdGFpbG9yZWQgZm9yIGFuIGV4cGVydCBhdWRpZW5jZToKCioqRGl2aW5nIGludG8gdGhlIGBfaWVlZTgwMjExX2h3X2NvbmZfY2hhbmAgRnVuY3Rpb24qKgoKT2theSwgc28gSSYjMzk7bSBkaWdnaW5nIGludG8gdGhpcyBjb2RlLCBhbmQgbXkgbWVudGFsIGNoZWNrbGlzdCBoYXMgbGFuZGVkIG9uIGBfaWVlZTgwMjExX2h3X2NvbmZfY2hhbmAuIFRoYXQgbmFtZSBkZWZpbml0ZWx5IHN1Z2dlc3RzIHNvbWV0aGluZyBmdW5kYW1lbnRhbCBhYm91dCBjaGFubmVsIGNvbmZpZ3VyYXRpb24gYXQgdGhlIGhhcmR3YXJlIGxldmVsIGluIHRoaXMgODAyLjExIGltcGxlbWVudGF0aW9uLiBJJiMzOTttIGd1ZXNzaW5nIGl0JiMzOTtzIHRoZSBjcml0aWNhbCBwaWVjZSB0aGF0IGJyaWRnZXMgdGhlIGhpZ2hlci1sZXZlbCBjaGFubmVsIHNlbGVjdGlvbiBhbmQgdGhlIHNwZWNpZmljIHJlZ2lzdGVyIHdyaXRlcyBuZWVkZWQgdG8gZ2V0IHRoZSByYWRpbyB0dW5lZCBhbmQgcmVhZHkuIEkgd2FudCB0byB1bmRlcnN0YW5kOiB3aGF0IGFyZ3VtZW50cyBkb2VzIGl0IHRha2U/IFdoYXQgZGF0YSBzdHJ1Y3R1cmVzIGRvZXMgaXQgbW9kaWZ5PyBEb2VzIGl0IGludGVyYWN0IGRpcmVjdGx5IHdpdGggdGhlIGhhcmR3YXJlIGFic3RyYWN0aW9uIGxheWVyIChIQUwpIG9yIGlzIHRoZXJlIGFub3RoZXIgbGF5ZXIgb2YgaW5kaXJlY3Rpb24/IFNwZWNpZmljYWxseSBJJiMzOTttIGhvcGluZyB0byBmaWd1cmUgb3V0IGhvdyBpdCBoYW5kbGVzIHBvd2VyIGxldmVscywgZGlmZmVyZW50IHJlZ3VsYXRvcnkgZG9tYWlucywgYW5kIGFueSBwZXItY2hhbm5lbCBjYWxpYnJhdGlvbiBkYXRhLiBJIGV4cGVjdCB0byBmaW5kIHNvbWUgYml0IGZpZGRsaW5nIGluIGhlcmUg4oCTIHByb2JhYmx5IGEgZmFpciBiaXQgb2YgbWFzay1hbmQtc2hpZnQgb3BlcmF0aW9ucyB0byBzZXQgdmFyaW91cyBjb250cm9sIGJpdHMuIExldCYjMzk7cyBzZWUgaWYgdGhlcmUmIzM5O3MgYW55IGNsZXZlcm5lc3MgYXJvdW5kIGR5bmFtaWMgZnJlcXVlbmN5IGhvcHBpbmcgb3IgYWRhcHRpdmUgcG93ZXIgY29udHJvbC4gVGltZSB0byBzdGFydCB0cmFjaW5nIHRocm91Z2ggaXQuLi4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4zNi8zPC90ZD4KCQkJPHRkPjIwMjYvMDgvMjkgMTA6MjU8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5yZWFkLWZpbGU8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0ZpbGUmIzM0OzogJiMzNDtuZXQvbWFjODAyMTEvbWFpbi5jJiMzNDssCiAgJiMzNDtGaXJzdExpbmUmIzM0OzogMjI1LAogICYjMzQ7TGluZUNvdW50JiMzNDs6IDQwCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtDb250ZW50cyYjMzQ7OiAmIzM0OyAyMjU6XHRcbiAyMjY6XHQvKiBmb3Igc2Nhbm5pbmcsIG9mZmNoYW5uZWwgYW5kIGNoYW5jdHggZW11bGF0aW9uIG9ubHkgKi9cbiAyMjc6XHRzdGF0aWMgaW50IF9pZWVlODAyMTFfaHdfY29uZl9jaGFuKHN0cnVjdCBpZWVlODAyMTFfbG9jYWwgKmxvY2FsLFxuIDIyODpcdFx0XHRcdFx0ICAgc3RydWN0IGllZWU4MDIxMV9jaGFuY3R4X2NvbmYgKmN0eClcbiAyMjk6XHR7XG4gMjMwOlx0XHR1MzIgY2hhbmdlZDtcbiAyMzE6XHRcbiAyMzI6XHRcdGlmICghbG9jYWwtXHUwMDNlb3Blbl9jb3VudClcbiAyMzM6XHRcdFx0cmV0dXJuIDA7XG4gMjM0Olx0XG4gMjM1Olx0XHRjaGFuZ2VkID0gaWVlZTgwMjExX2NhbGNfaHdfY29uZl9jaGFuKGxvY2FsLCBjdHgpO1xuIDIzNjpcdFx0aWYgKCFjaGFuZ2VkKVxuIDIzNzpcdFx0XHRyZXR1cm4gMDtcbiAyMzg6XHRcbiAyMzk6XHRcdHJldHVybiBkcnZfY29uZmlnKGxvY2FsLCAtMSwgY2hhbmdlZCk7XG4gMjQwOlx0fVxuIDI0MTpcdFxuIDI0MjpcdGludCBpZWVlODAyMTFfaHdfY29uZl9jaGFuKHN0cnVjdCBpZWVlODAyMTFfbG9jYWwgKmxvY2FsKVxuIDI0MzpcdHtcbiAyNDQ6XHRcdHN0cnVjdCBpZWVlODAyMTFfY2hhbmN0eCAqY3R4O1xuIDI0NTpcdFxuIDI0NjpcdFx0Y3R4ID0gbGlzdF9maXJzdF9lbnRyeV9vcl9udWxsKFx1MDAyNmxvY2FsLVx1MDAzZWNoYW5jdHhfbGlzdCxcbiAyNDc6XHRcdFx0XHRcdCAgICAgICBzdHJ1Y3QgaWVlZTgwMjExX2NoYW5jdHgsXG4gMjQ4Olx0XHRcdFx0XHQgICAgICAgbGlzdCk7XG4gMjQ5Olx0XG4gMjUwOlx0XHRyZXR1cm4gX2llZWU4MDIxMV9od19jb25mX2NoYW4obG9jYWwsIGN0eCA/IFx1MDAyNmN0eC1cdTAwM2Vjb25mIDogTlVMTCk7XG4gMjUxOlx0fVxuIDI1MjpcdFxuIDI1MzpcdHZvaWQgaWVlZTgwMjExX2h3X2NvbmZfaW5pdChzdHJ1Y3QgaWVlZTgwMjExX2xvY2FsICpsb2NhbClcbiAyNTQ6XHR7XG4gMjU1Olx0XHR1MzIgY2hhbmdlZCA9IH4oSUVFRTgwMjExX0NPTkZfQ0hBTkdFX0NIQU5ORUwgfFxuIDI1NjpcdFx0XHRcdElFRUU4MDIxMV9DT05GX0NIQU5HRV9QT1dFUiB8XG4gMjU3Olx0XHRcdFx0SUVFRTgwMjExX0NPTkZfQ0hBTkdFX1NNUFMpO1xuIDI1ODpcdFxuIDI1OTpcdFx0aWYgKFdBUk5fT04oIWxvY2FsLVx1MDAzZW9wZW5fY291bnQpKVxuIDI2MDpcdFx0XHRyZXR1cm47XG4gMjYxOlx0XG4gMjYyOlx0XHRpZiAobG9jYWwtXHUwMDNlZW11bGF0ZV9jaGFuY3R4KSB7XG4gMjYzOlx0XHRcdHN0cnVjdCBpZWVlODAyMTFfY2hhbmN0eCAqY3R4O1xuIDI2NDpcdFxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjM3LzM8L3RkPgoJCQk8dGQ+MjAyNi8wOC8yOSAxMDoyNTwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+a21zYW4tZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuNy1mbGFzaDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA1Njc4CgkJCQkJCQlvdXRwdXQ6IDE4NQoJCQkJCQkJdGhvdWdodHM6IDIyNgoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipBbmFseXppbmcgYSBTdWJ0bGUgV2lyZWxlc3MgRHJpdmVyIENoYW5nZSoqCgpPa2F5LCBzbyB0aGlzIHBhdGNoIGlzIHByZXR0eSBzdHJhaWdodGZvcndhcmQ7IGl0JiMzOTtzIGp1c3QgeWFua2luZyBvdXQgdGhhdCBgX2llZWU4MDIxMV9od19jb25mX2NoYW4obG9jYWwsIE5VTEwpYCBjYWxsIGZyb20gYGllZWU4MDIxMV9lbXVsYXRlX3JlbW92ZV9jaGFuY3R4YC4gTXkgaW5pdGlhbCBjb25jZXJuLCBhcyBhbHdheXMsIGlzIHdoZXRoZXIgdGhpcyBpbnRyb2R1Y2VzIGFueSBzb3J0IG9mIG5hc3R5IG1lbW9yeSBpc3N1ZSDigJMgYW4gdW5pbml0aWFsaXplZCBtZW1vcnkgcmVhZCwgYSBwb3RlbnRpYWwgaW5mb3JtYXRpb24gbGVhaywgb3IgYW55dGhpbmcgbGlrZSB0aGF0LgoKRmlyc3QsIGxldCYjMzk7cyBicmVhayBpdCBkb3duOiBkb2VzIHRoaXMgcGF0Y2ggKmFsbG9jYXRlKiBhbnkgbWVtb3J5PyBObywgdGhhdCYjMzk7cyBhIGNsZWFyIG5vLiBEb2VzIGl0IGludm9sdmUgY29weWluZyBkYXRhIHRvIHVzZXIgc3BhY2U/IE5vcGUsIGRvZXNuJiMzOTt0IHRvdWNoIGFueXRoaW5nIGdvaW5nIG91dHNpZGUgdGhlIGtlcm5lbC4gQXJlIHRoZXJlIGFueSBuZXcgdW5pbml0aWFsaXplZCB2YXJpYWJsZXMgaW50cm9kdWNlZCwgb3IgZXhpc3Rpbmcgb25lcyB1c2VkIGluIGEgbmV3IHdheT8gQWdhaW4sIHRoZSBhbnN3ZXIgaXMgbm8uIERvZXMgaXQgbWVzcyB3aXRoIGJ1ZmZlciBsZW5ndGhzLCBib3VuZHMgY2hlY2tzLCBwYWRkaW5nLCBvciBhbnkgb2YgdGhvc2UgYXJlYXMgd2hlcmUgdW5pbml0aWFsaXplZCBtZW1vcnkgY29uY2VybnMgb2Z0ZW4gcG9wIHVwPyBOb3QgYXQgYWxsLiBJdCBqdXN0IHJlbW92ZXMgYSBjYWxsLiBFc3NlbnRpYWxseSwgaXQmIzM5O3MgcHJldmVudGluZyB0aGUgaGFyZHdhcmUgY2hhbm5lbCBmcm9tIGJlaW5nIHJlY29uZmlndXJlZCB0byBpdHMgZGVmYXVsdCBzdGF0ZSB3aGVuIGEgY29udGV4dCBpcyByZW1vdmVkIGluIGVtdWxhdGlvbi4KCkdpdmVuIGFsbCB0aGF0LCB0aGUgY29uY2x1c2lvbiBpcyBjbGVhcjogdGhpcyBpcyBhIGxvdy1yaXNrIGNoYW5nZS4gYE5lZWRzS01TQU5gIGlzIGRlZmluaXRlbHkgZmFsc2UuIFdlIGFyZW4mIzM5O3QgaW50cm9kdWNpbmcgYW55IG9mIHRob3NlIHBvdGVudGlhbCBpc3N1ZXMgdGhhdCB3b3VsZCBuZWNlc3NpdGF0ZSB0aGUgb3ZlcmhlYWQgb2YgS01TQU4uIE15IG5leHQgc3RlcCB3aWxsIGJlIHRvIGZvcm11bGF0ZSBhIGNsZWFyLCBjb25jaXNlLCBhbmQgdGVjaG5pY2FsbHkgc291bmQgZXhwbGFuYXRpb24gb2YgKndoeSogS01TQU4gaXNuJiMzOTt0IG5lZWRlZCBoZXJlLiBXZSBuZWVkIHRvIGFydGljdWxhdGUgaG93IHN0YW5kYXJkIEtBU0FOIGFuZCBzdGFuZGFyZCB0ZXN0aW5nIHByb2NlZHVyZXMgd2lsbCBiZSBtb3JlIHRoYW4gc3VmZmljaWVudCB0byBjYXRjaCBhbnkgcHJvYmxlbXMgdGhpcyBjaGFuZ2UgbWlnaHQgaW50cm9kdWNlLiBUaGlzIGV4cGxhbmF0aW9uIG5lZWRzIHRvIGJlIGFpcnRpZ2h0LCBzbyB0aGF0IGFsbCBwb3RlbnRpYWwgY29uY2VybnMgYXJlIGFkZHJlc3NlZC4KCkFscmlnaHQsIHRpbWUgdG8gY2FsbCBgc2V0LXJlc3VsdHNgLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjM4LzM8L3RkPgoJCQk8dGQ+MjAyNi8wOC8yOSAxMDoyNTwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPnNldC1yZXN1bHRzPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtLTVNBTlJlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCByZW1vdmVzIGEgY2FsbCB0byBgX2llZWU4MDIxMV9od19jb25mX2NoYW4obG9jYWwsIE5VTEwpYCBpbnNpZGUgYGllZWU4MDIxMV9lbXVsYXRlX3JlbW92ZV9jaGFuY3R4KClgIHRvIGF2b2lkIHVubmVjZXNzYXJ5IGNoYW5uZWwgcmVjb25maWd1cmF0aW9uIHdoZW4gcmVtb3ZpbmcgYSBjaGFubmVsIGNvbnRleHQgaW4gZW11bGF0aW9uIG1vZGUuXG5cblRoaXMgbW9kaWZpY2F0aW9uIGRvZXMgbm90OlxuMS4gQWxsb2NhdGUsIGFjY2Vzcywgb3IgZXhwb3NlIGFueSB1bmluaXRpYWxpemVkIG1lbW9yeSAoc3RhY2ssIGhlYXAsIG9yIHBhZ2UgYWxsb2NhdGlvbnMpLlxuMi4gQ29weSBhbnkga2VybmVsIGRhdGEgc3RydWN0dXJlcyB0byB1c2Vyc3BhY2UgKG5vIGluZm8tbGVhayByaXNrKS5cbjMuIEludHJvZHVjZSBvciBhbHRlciBicmFuY2ggY29uZGl0aW9ucyBiYXNlZCBvbiB1bmluaXRpYWxpemVkIGRhdGEgb3IgbWFuaXB1bGF0ZSBidWZmZXIgYm91bmRzLlxuXG5BbnkgcG90ZW50aWFsIGJlaGF2aW9yYWwgcmVncmVzc2lvbnMgb3IgZHJpdmVyIHN0YXRlIGluY29uc2lzdGVuY2llcyB3b3VsZCBiZSBmdW5jdGlvbmFsIGJ1Z3Mgb3IgY292ZXJlZCB1bmRlciBzdGFuZGFyZCBrZXJuZWwgdGVzdGluZy9LQVNBTi4gVGhlcmVmb3JlLCBhIGRlZGljYXRlZCBLTVNBTiBmdXp6aW5nIHNlc3Npb24gaXMgbm90IHdhcnJhbnRlZC4mIzM0OywKICAmIzM0O05lZWRzS01TQU4mIzM0OzogZmFsc2UKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0tNU0FOUmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIHJlbW92ZXMgYSBjYWxsIHRvIGBfaWVlZTgwMjExX2h3X2NvbmZfY2hhbihsb2NhbCwgTlVMTClgIGluc2lkZSBgaWVlZTgwMjExX2VtdWxhdGVfcmVtb3ZlX2NoYW5jdHgoKWAgdG8gYXZvaWQgdW5uZWNlc3NhcnkgY2hhbm5lbCByZWNvbmZpZ3VyYXRpb24gd2hlbiByZW1vdmluZyBhIGNoYW5uZWwgY29udGV4dCBpbiBlbXVsYXRpb24gbW9kZS5cblxuVGhpcyBtb2RpZmljYXRpb24gZG9lcyBub3Q6XG4xLiBBbGxvY2F0ZSwgYWNjZXNzLCBvciBleHBvc2UgYW55IHVuaW5pdGlhbGl6ZWQgbWVtb3J5IChzdGFjaywgaGVhcCwgb3IgcGFnZSBhbGxvY2F0aW9ucykuXG4yLiBDb3B5IGFueSBrZXJuZWwgZGF0YSBzdHJ1Y3R1cmVzIHRvIHVzZXJzcGFjZSAobm8gaW5mby1sZWFrIHJpc2spLlxuMy4gSW50cm9kdWNlIG9yIGFsdGVyIGJyYW5jaCBjb25kaXRpb25zIGJhc2VkIG9uIHVuaW5pdGlhbGl6ZWQgZGF0YSBvciBtYW5pcHVsYXRlIGJ1ZmZlciBib3VuZHMuXG5cbkFueSBwb3RlbnRpYWwgYmVoYXZpb3JhbCByZWdyZXNzaW9ucyBvciBkcml2ZXIgc3RhdGUgaW5jb25zaXN0ZW5jaWVzIHdvdWxkIGJlIGZ1bmN0aW9uYWwgYnVncyBvciBjb3ZlcmVkIHVuZGVyIHN0YW5kYXJkIGtlcm5lbCB0ZXN0aW5nL0tBU0FOLiBUaGVyZWZvcmUsIGEgZGVkaWNhdGVkIEtNU0FOIGZ1enppbmcgc2Vzc2lvbiBpcyBub3Qgd2FycmFudGVkLiYjMzQ7LAogICYjMzQ7TmVlZHNLTVNBTiYjMzQ7OiBmYWxzZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPC90Ym9keT4KCTwvdGFibGU+CgoJPGRpdiBpZD0ibGxtX3N1bW1hcnlfdGFibGVfZGl2IiBzdHlsZT0ibWFyZ2luOiAyMHB4IDA7Ij4KCQk8dGFibGUgY2xhc3M9Imxpc3RfdGFibGUiPgoJCQk8Y2FwdGlvbj5MTE0gQ2FsbHMgU3VtbWFyeTo8L2NhcHRpb24+CgkJCTx0aGVhZD4KCQkJCTx0cj4KCQkJCQk8dGg+VG90YWwgQ2FsbHM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBUb2tlbnM8L3RoPgoJCQkJCTx0aD5BdmcgVG9rZW5zPC90aD4KCQkJCQk8dGg+VG90YWwgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCQk8dGg+QXZnIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQk8L3RyPgoJCQk8L3RoZWFkPgoJCQk8dGJvZHkgaWQ9ImxsbV9zdW1tYXJ5X3N0YXRzX2JvZHkiPjwvdGJvZHk+CgkJPC90YWJsZT4KCTwvZGl2PgoKCTxkaXYgaWQ9InRvb2xfc3VtbWFyeV90YWJsZV9kaXYiIHN0eWxlPSJtYXJnaW46IDIwcHggMDsiPgoJCTx0YWJsZSBjbGFzcz0ibGlzdF90YWJsZSI+CgkJCTxjYXB0aW9uPlRvb2wgQ2FsbHMgU3VtbWFyeTo8L2NhcHRpb24+CgkJCTx0aGVhZD4KCQkJCTx0cj4KCQkJCQk8dGg+VG90YWwgQ2FsbHM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJCTx0aD5BdmcgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCTwvdHI+CgkJCTwvdGhlYWQ+CgkJCTx0Ym9keSBpZD0idG9vbF9zdW1tYXJ5X3N0YXRzX2JvZHkiPjwvdGJvZHk+CgkJPC90YWJsZT4KCTwvZGl2PgoKCTxkaXYgaWQ9ImR1cmF0aW9uX2NoYXJ0X2RpdiIgc3R5bGU9IndpZHRoOiAxMDAlOyBtYXJnaW46IDIwcHggMDsgYm9yZGVyOiAxcHg7Ij48L2Rpdj4KCTxkaXYgaWQ9InRva2VuX2NoYXJ0X2RpdiIgc3R5bGU9IndpZHRoOiAxMDAlOyBtYXJnaW46IDIwcHggMDsgYm9yZGVyOiAxcHg7Ij48L2Rpdj4KCgk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJodHRwczovL3d3dy5nb29nbGUuY29tL2pzYXBpIj48L3NjcmlwdD4KCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KCQlnb29nbGUubG9hZCgidmlzdWFsaXphdGlvbiIsICIxIiwge3BhY2thZ2VzOlsiY29yZWNoYXJ0Il19KTsKCQlnb29nbGUuc2V0T25Mb2FkQ2FsbGJhY2soZHJhd0NoYXJ0cyk7CgoJCWZ1bmN0aW9uIGRyYXdDaGFydHMoKSB7CgkJCWNvbnN0IHJhd0RhdGEgPSBbeyJTdGFydGVkIjoiMjAyNi0wOC0yOVQxMDoyMjoyMS4zNjg4NDIxMzNaIiwiU2VxIjowLCJOZXN0aW5nIjowLCJUeXBlIjoiZmxvdyIsIk5hbWUiOiJwYXRjaC10cmlhZ2UiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoxOTAzMTk2OTUwNDQsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogW1xuICAgIFwiTUFDODAyMTFcIixcbiAgICBcIkNGRzgwMjExXCIsXG4gICAgXCJNQUM4MDIxMV9IV1NJTVwiXG4gIF0sXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtcbiAgICBcImllZWU4MDIxMV9lbXVsYXRlX3JlbW92ZV9jaGFuY3R4XCIsXG4gICAgXCJpZWVlODAyMTFfZnJlZV9jaGFuY3R4XCJcbiAgXSxcbiAgXCJLTVNBTlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCByZW1vdmVzIGEgY2FsbCB0byBgX2llZWU4MDIxMV9od19jb25mX2NoYW4obG9jYWwsIE5VTEwpYCBpbnNpZGUgYGllZWU4MDIxMV9lbXVsYXRlX3JlbW92ZV9jaGFuY3R4KClgIHRvIGF2b2lkIHVubmVjZXNzYXJ5IGNoYW5uZWwgcmVjb25maWd1cmF0aW9uIHdoZW4gcmVtb3ZpbmcgYSBjaGFubmVsIGNvbnRleHQgaW4gZW11bGF0aW9uIG1vZGUuXFxuXFxuVGhpcyBtb2RpZmljYXRpb24gZG9lcyBub3Q6XFxuMS4gQWxsb2NhdGUsIGFjY2Vzcywgb3IgZXhwb3NlIGFueSB1bmluaXRpYWxpemVkIG1lbW9yeSAoc3RhY2ssIGhlYXAsIG9yIHBhZ2UgYWxsb2NhdGlvbnMpLlxcbjIuIENvcHkgYW55IGtlcm5lbCBkYXRhIHN0cnVjdHVyZXMgdG8gdXNlcnNwYWNlIChubyBpbmZvLWxlYWsgcmlzaykuXFxuMy4gSW50cm9kdWNlIG9yIGFsdGVyIGJyYW5jaCBjb25kaXRpb25zIGJhc2VkIG9uIHVuaW5pdGlhbGl6ZWQgZGF0YSBvciBtYW5pcHVsYXRlIGJ1ZmZlciBib3VuZHMuXFxuXFxuQW55IHBvdGVudGlhbCBiZWhhdmlvcmFsIHJlZ3Jlc3Npb25zIG9yIGRyaXZlciBzdGF0ZSBpbmNvbnNpc3RlbmNpZXMgd291bGQgYmUgZnVuY3Rpb25hbCBidWdzIG9yIGNvdmVyZWQgdW5kZXIgc3RhbmRhcmQga2VybmVsIHRlc3RpbmcvS0FTQU4uIFRoZXJlZm9yZSwgYSBkZWRpY2F0ZWQgS01TQU4gZnV6emluZyBzZXNzaW9uIGlzIG5vdCB3YXJyYW50ZWQuXCIsXG4gIFwiTmVlZHNLTVNBTlwiOiBmYWxzZSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggbW9kaWZpZXMgYGllZWU4MDIxMV9lbXVsYXRlX3JlbW92ZV9jaGFuY3R4YCBpbiBtYWM4MDIxMSB0byBhdm9pZCBjYWxsaW5nIGBfaWVlZTgwMjExX2h3X2NvbmZfY2hhbihsb2NhbCwgTlVMTClgIHdoZW4gY2hhbm5lbCBjb250ZXh0cyBhcmUgcmVtb3ZlZCwgY2hhbmdpbmcgY2hhbm5lbCBjb25maWd1cmF0aW9uIGJlaGF2aW9yIGZvciBkcml2ZXJzIHVzaW5nIGVtdWxhdGVkIGNoYW5uZWwgY29udGV4dHMgKHN1Y2ggYXMgbWFjODAyMTFfaHdzaW0pLiBUaGlzIHRvdWNoZXMgcmVhY2hhYmxlIGNvcmUgd2lyZWxlc3MgbmV0d29ya2luZyBsb2dpYyBhbmQgaXMgd29ydGggZnV6emluZy5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogdHJ1ZVxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMjlUMTA6MjI6MjEuMzY4ODQ2NzA0WiIsIlNlcSI6MSwiTmVzdGluZyI6MSwiVHlwZSI6ImFjdGlvbiIsIk5hbWUiOiJyZWFkLXBhdGNoLWRpZmYiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo0MjU0NjA4ODgsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIlBhdGNoRGlmZlwiOiBcImNvbW1pdCBhOWRhNWNmYzM0ZmExNTIyN2VkMWI2YWRlNWUzZjFjMDgwMjRlYjgxXFxuQXV0aG9yOiBzeXotY2x1c3RlciBcXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cXHUwMDNlXFxuRGF0ZTogICBTYXQgQXVnIDI5IDEwOjIyOjIwIDIwMjYgKzAwMDBcXG5cXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XFxuXFxuZGlmZiAtLWdpdCBhL25ldC9tYWM4MDIxMS9tYWluLmMgYi9uZXQvbWFjODAyMTEvbWFpbi5jXFxuaW5kZXggYTU5ODM3YjlmNDgwZi4uYjNmOWIzYmMzY2FjNyAxMDA2NDRcXG4tLS0gYS9uZXQvbWFjODAyMTEvbWFpbi5jXFxuKysrIGIvbmV0L21hYzgwMjExL21haW4uY1xcbkBAIC0yODksOSArMjg5LDE0IEBAIHZvaWQgaWVlZTgwMjExX2VtdWxhdGVfcmVtb3ZlX2NoYW5jdHgoc3RydWN0IGllZWU4MDIxMV9odyAqaHcsXFxuIHtcXG4gXFx0c3RydWN0IGllZWU4MDIxMV9sb2NhbCAqbG9jYWwgPSBod190b19sb2NhbChodyk7XFxuIFxcbitcXHQvKlxcbitcXHQgKiBXaXRoIG5vIGNvbnRleHQgbGVmdCB0aGVyZSBpcyBub3RoaW5nIHRvIGNvbmZpZ3VyZTogbm90aGluZyBpcyBvblxcbitcXHQgKiB0aGUgYWlyLCBhbmQgdGhlIG5leHQgY29udGV4dCBzZXRzIHRoZSBjaGFubmVsLiBQYXJraW5nIHRoZSByYWRpb1xcbitcXHQgKiBvbiB0aGUgZGVmYXVsdCBjaGFubmVsIGhlcmUgb25seSB0byBtb3ZlIGl0IGFnYWluIHdoZW4gdGhlIG5leHRcXG4rXFx0ICogY29udGV4dCBpcyBhZGRlZCBjb3N0cyBkcml2ZXJzIHdpdGhvdXQgbmF0aXZlIGNoYW5uZWwgY29udGV4dHMgYVxcbitcXHQgKiBmdWxsIGNoYW5uZWwgY2hhbmdlIHBlciByZXR1bmUuXFxuK1xcdCAqL1xcbiBcXHRsb2NhbC1cXHUwMDNlaHcuY29uZi5yYWRhcl9lbmFibGVkID0gZmFsc2U7XFxuLVxcbi1cXHRfaWVlZTgwMjExX2h3X2NvbmZfY2hhbihsb2NhbCwgTlVMTCk7XFxuIH1cXG4gRVhQT1JUX1NZTUJPTChpZWVlODAyMTFfZW11bGF0ZV9yZW1vdmVfY2hhbmN0eCk7XFxuIFxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0yOVQxMDoyMjoyMS43OTUyMTY5NTJaIiwiU2VxIjoyLCJOZXN0aW5nIjoxLCJUeXBlIjoiYWdlbnQiLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJjb3JlIiwiRHVyYXRpb24iOjE1MjI4NzA3NDg5MywiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXG4gICAgXCJNQUM4MDIxMVwiLFxuICAgIFwiQ0ZHODAyMTFcIixcbiAgICBcIk1BQzgwMjExX0hXU0lNXCJcbiAgXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW1xuICAgIFwiaWVlZTgwMjExX2VtdWxhdGVfcmVtb3ZlX2NoYW5jdHhcIixcbiAgICBcImllZWU4MDIxMV9mcmVlX2NoYW5jdHhcIlxuICBdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBtb2RpZmllcyBgaWVlZTgwMjExX2VtdWxhdGVfcmVtb3ZlX2NoYW5jdHhgIGluIG1hYzgwMjExIHRvIGF2b2lkIGNhbGxpbmcgYF9pZWVlODAyMTFfaHdfY29uZl9jaGFuKGxvY2FsLCBOVUxMKWAgd2hlbiBjaGFubmVsIGNvbnRleHRzIGFyZSByZW1vdmVkLCBjaGFuZ2luZyBjaGFubmVsIGNvbmZpZ3VyYXRpb24gYmVoYXZpb3IgZm9yIGRyaXZlcnMgdXNpbmcgZW11bGF0ZWQgY2hhbm5lbCBjb250ZXh0cyAoc3VjaCBhcyBtYWM4MDIxMV9od3NpbSkuIFRoaXMgdG91Y2hlcyByZWFjaGFibGUgY29yZSB3aXJlbGVzcyBuZXR3b3JraW5nIGxvZ2ljIGFuZCBpcyB3b3J0aCBmdXp6aW5nLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiB0cnVlXG59IiwiSW5zdHJ1Y3Rpb24iOiJZb3UgYXJlIGFuIGV4cGVydCBMaW51eCBrZXJuZWwgbWFpbnRhaW5lci5cbllvdXIgam9iIGlzIHRvIHJldmlldyBhIHByb3ZpZGVkIHBhdGNoIHNlcmllcyBhbmQgZGV0ZXJtaW5lXG5pZiBpdCBtYWtlcyBmdW5jdGlvbmFsIGNoYW5nZXMgdG8gdGhlIGtlcm5lbCB0aGF0IHNob3VsZCBiZSBmdXp6ZWQuXG5cbklNUE9SVEFOVDogVGhlIGNoYW5nZXMgaGF2ZSBBTFJFQURZIGJlZW4gYXBwbGllZCBhbmQgY29tbWl0dGVkIGFzIHRoZSBIRUFEIGNvbW1pdCBpblxueW91ciB3b3Jrc3BhY2UuIERvIE5PVCByZWx5IG9uIHlvdXIgaW50ZXJuYWwga25vd2xlZGdlIG9mIHRoZSBrZXJuZWwuIFlvdSBtdXN0IGFjdGl2ZWx5XG51c2UgeW91ciBjb2RlIGFjY2VzcyB0b29scyB0byBleGFtaW5lIHRoZSBhY3R1YWwgc291cmNlIGNvZGUgYW5kIGNvbmZpcm0gYW55IGFzc3VtcHRpb25zLlxuXG5SZXR1cm4gV29ydGhGdXp6aW5nPWZhbHNlIGlmIHRoZSBwYXRjaCBvbmx5IGNvbnRhaW5zOlxuLSBNb2RpZmljYXRpb25zIHRvIERvY3VtZW50YXRpb24vLCBLY29uZmlnIGZpbGVzLCBvciBjb2RlIGNvbW1lbnRzLlxuLSBQdXJlbHkgZGVjb3JhdGl2ZSBjaGFuZ2VzLCBzdWNoIGFzIGxvZ2dpbmcgKGUuZy4sIHByX2VyciwgcHJpbnRrKSBvciB0cmFjZXBvaW50cy5cbi0gQ2hhbmdlcyB0byBudW1lcmljIGNvbnN0YW50cyBvciBtYWNyb3MgdGhhdCBkbyBub3QgZnVuY3Rpb25hbGx5IGFsdGVyIGV4ZWN1dGlvbiBmbG93LlxuLSBDb2RlIHBhdGhzIHRoYXQgYXJlIGltcG9zc2libGUgdG8gcmVhY2ggaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgR0NFIG9yIFFFTVUsXG4gIGV2ZW4gd2hlbiB1dGlsaXppbmcgc29mdHdhcmUtZW11bGF0ZWQgaGFyZHdhcmUgKGUuZy4sIHVzYiBnYWRnZXQsIG1hYzgwMjExX2h3c2ltKS5cbi0gQ29kZSBpbiB2ZW5kb3Itc3BlY2lmaWMgUENJZSBzd2l0Y2gsIFNtYXJ0TklDLCBvciBHUFUgZHJpdmVycyAoZS5nLiwgbWx4c3csIHBkc19jb3JlLCBxZWQsXG4gIGlvbmljLCBhbWRncHUpIHRoYXQgcmVxdWlyZSBwaHlzaWNhbCBQQ0llIGhhcmR3YXJlIGNhcmRzIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCBRRU1VLlxuLSBEcml2ZXIgLnJlbW92ZSwgLnNodXRkb3duLCBvciBwY2lfdW5yZWdpc3Rlcl9kcml2ZXIgdGVhcmRvd24gY2FsbGJhY2tzIChlLmcuLCBpZ2JfcmVtb3ZlKVxuICB0aGF0IGFyZSBleGVjdXRlZCBvbmx5IGR1cmluZyBQQ0kgaG90LXVucGx1ZyBvciBzeXNmcyBkcml2ZXIgdW5iaW5kIG9wZXJhdGlvbnMuXG5cbklmIGl0IG1vZGlmaWVzIHJlYWNoYWJsZSBjb3JlIGtlcm5lbCBsb2dpYywgZHJpdmVycywgb3IgYXJjaGl0ZWN0dXJlcywgdXNlIHlvdXIgY29kZSBzZWFyY2hcbnRvb2xzIHRvIHZlcmlmeSB0aGUgY29kZSBjYW4gYmUgZXhlY3V0ZWQsIHRoZW4gcmV0dXJuIFdvcnRoRnV6emluZz10cnVlLlxuXG5XaGVuIHJldHVybmluZyBXb3J0aEZ1enppbmc9dHJ1ZSwgeW91IE1VU1QgQUxTTzpcbjEuIEV4dHJhY3QgYW55IHNwZWNpZmljIGtlcm5lbCBmdW5jdGlvbnMgdGhhdCBzaG91bGQgYmUgaGVhdmlseSBmdXp6ZWQgaW50byBGb2N1c1N5bWJvbHMuXG4gICBBdm9pZCBsaXN0aW5nIGdlbmVyaWMgaG90LXBhdGggZnVuY3Rpb25zIHRvIHByZXZlbnQgc2tld2VkIHRlc3QgZGlzdHJpYnV0aW9ucy5cbiAgIFByZWZlciBub24tc3RhdGljLCBub24taW5saW5lZCBBUEkgZW50cnlwb2ludCBmdW5jdGlvbnMgb3ZlciBpbnRlcm5hbCBzdGF0aWMgaGVscGVyIGZ1bmN0aW9uc1xuICAgKHdoaWNoIGFyZSBpbmxpbmVkIGJ5IHRoZSBjb21waWxlciBhbmQgZG8gbm90IGhhdmUgZGlzdGluY3Qgc3ltYm9sIGFkZHJlc3NlcykuXG4yLiBJZGVudGlmeSBhbnkgc3BlY2lmaWMgQ09ORklHXyBvcHRpb25zIHJlcXVpcmVkIHRvIHByb3Blcmx5IHRlc3QgdGhpcyBuZXcvbW9kaWZpZWQgZmVhdHVyZS5cbiAgIEdvIGFuZCBsb29rIGludG8gdGhlIEtjb25maWcgZmlsZXMgYW5kIGNoZWNrIGZvciBpZmRlZnMgYXJvdW5kIHRoZSBjb2RlLCBkbyBub3QgbWFrZSBhc3N1bXB0aW9ucy5cbiAgIEFsc28gY2hlY2sgXCJkZXBlbmRzIG9uXCIgbGluZXMgaW4gS2NvbmZpZyB0byBpbmNsdWRlIGFueSBub24tc3RhbmRhcmQgcGFyZW50IHN1YnN5c3RlbSBjb25maWdzXG4gICBuZWVkZWQgZm9yIEtidWlsZCB0byBjb21waWxlIHRoZSBjb2RlIHN0YXRpY2FsbHkgaW50byB2bWxpbnV4LiBMaXN0IHRoZW0gaW4gdGhlIEVuYWJsZUNvbmZpZ3NcbiAgIG91dHB1dCBhcnJheSwgYW5kIERPIE5PVCBhZGQgYSAnQ09ORklHXycgcHJlZml4IChlLmcuLCByZXR1cm4gXCJORVRfSVBWNFwiIGluc3RlYWQgb2YgXCJDT05GSUdfTkVUX0lQVjRcIikuXG5QcmVmZXIgY2FsbGluZyBzZXZlcmFsIHRvb2xzIGF0IHRoZSBzYW1lIHRpbWUgdG8gc2F2ZSByb3VuZC10cmlwcy5cblxuXG5Vc2Ugc2V0LXJlc3VsdHMgdG9vbCB0byBwcm92aWRlIHJlc3VsdHMgb2YgdGhlIGFuYWx5c2lzLlxuSXQgbXVzdCBiZSBjYWxsZWQgZXhhY3RseSBvbmNlIGJlZm9yZSB0aGUgZmluYWwgcmVwbHkuXG5JZ25vcmUgcmVzdWx0cyBvZiB0aGlzIHRvb2wuXG4iLCJQcm9tcHQiOiJGb3IgeW91ciBjb252ZW5pZW5jZSwgaGVyZSBpcyB0aGUgZGlmZiBvZiB0aGUgY2hhbmdlczpcbmNvbW1pdCBhOWRhNWNmYzM0ZmExNTIyN2VkMWI2YWRlNWUzZjFjMDgwMjRlYjgxXG5BdXRob3I6IHN5ei1jbHVzdGVyIFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXHUwMDNlXG5EYXRlOiAgIFNhdCBBdWcgMjkgMTA6MjI6MjAgMjAyNiArMDAwMFxuXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XG5cbmRpZmYgLS1naXQgYS9uZXQvbWFjODAyMTEvbWFpbi5jIGIvbmV0L21hYzgwMjExL21haW4uY1xuaW5kZXggYTU5ODM3YjlmNDgwZi4uYjNmOWIzYmMzY2FjNyAxMDA2NDRcbi0tLSBhL25ldC9tYWM4MDIxMS9tYWluLmNcbisrKyBiL25ldC9tYWM4MDIxMS9tYWluLmNcbkBAIC0yODksOSArMjg5LDE0IEBAIHZvaWQgaWVlZTgwMjExX2VtdWxhdGVfcmVtb3ZlX2NoYW5jdHgoc3RydWN0IGllZWU4MDIxMV9odyAqaHcsXG4ge1xuIFx0c3RydWN0IGllZWU4MDIxMV9sb2NhbCAqbG9jYWwgPSBod190b19sb2NhbChodyk7XG4gXG4rXHQvKlxuK1x0ICogV2l0aCBubyBjb250ZXh0IGxlZnQgdGhlcmUgaXMgbm90aGluZyB0byBjb25maWd1cmU6IG5vdGhpbmcgaXMgb25cbitcdCAqIHRoZSBhaXIsIGFuZCB0aGUgbmV4dCBjb250ZXh0IHNldHMgdGhlIGNoYW5uZWwuIFBhcmtpbmcgdGhlIHJhZGlvXG4rXHQgKiBvbiB0aGUgZGVmYXVsdCBjaGFubmVsIGhlcmUgb25seSB0byBtb3ZlIGl0IGFnYWluIHdoZW4gdGhlIG5leHRcbitcdCAqIGNvbnRleHQgaXMgYWRkZWQgY29zdHMgZHJpdmVycyB3aXRob3V0IG5hdGl2ZSBjaGFubmVsIGNvbnRleHRzIGFcbitcdCAqIGZ1bGwgY2hhbm5lbCBjaGFuZ2UgcGVyIHJldHVuZS5cbitcdCAqL1xuIFx0bG9jYWwtXHUwMDNlaHcuY29uZi5yYWRhcl9lbmFibGVkID0gZmFsc2U7XG4tXG4tXHRfaWVlZTgwMjExX2h3X2NvbmZfY2hhbihsb2NhbCwgTlVMTCk7XG4gfVxuIEVYUE9SVF9TWU1CT0woaWVlZTgwMjExX2VtdWxhdGVfcmVtb3ZlX2NoYW5jdHgpO1xuIFxuIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMjlUMTA6MjI6MjEuNzk1MjE4NTEyWiIsIlNlcSI6MywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjctZmxhc2giLCJEdXJhdGlvbiI6ODY2MDA0MTk0NSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipBbmFseXppbmcgYSBtYWM4MDIxMSBDaGFubmVsIENvbnRleHQgUmVtb3ZhbCBPcHRpbWl6YXRpb24qKlxuXG5Pa2F5LCBzbyBJJ20gbG9va2luZyBhdCB0aGlzIHBhdGNoIGZvciBgbWFjODAyMTFgIGFuZCBzcGVjaWZpY2FsbHkgdGhlIGBpZWVlODAyMTFfZW11bGF0ZV9yZW1vdmVfY2hhbmN0eGAgZnVuY3Rpb24uIFRoZSBjb2RlIGhhcyBiZWVuIHRyaW1tZWQgZG93bjsgaXQgdXNlZCB0byBmb3JjZSB0aGUgcmFkaW8gdG8gYSBkZWZhdWx0IGNoYW5uZWwgYWZ0ZXIgcmVtb3ZpbmcgYSBjaGFubmVsIGNvbnRleHQuIE5vdywgaXQganVzdCBkaXNhYmxlcyByYWRhciBkZXRlY3Rpb24uIFRoZSBjb21tZW50IGV4cGxhaW5zIHRoZSByYXRpb25hbGU7IEkgY2FuIHNlZSB0aGUgZWZmaWNpZW5jeSBnYWlucyBpbW1lZGlhdGVseS5cblxuRXNzZW50aWFsbHksIGJ5ICpub3QqIHNldHRpbmcgYSBkZWZhdWx0IGNoYW5uZWwgd2hlbiByZW1vdmluZyBhIGNvbnRleHQsIHdlJ3JlIGF2b2lkaW5nIGFuIHVubmVjZXNzYXJ5IGNoYW5uZWwgY2hhbmdlIG9wZXJhdGlvbi4gSWYgdGhlIG5leHQgY29udGV4dCBhZGRlZCB3aWxsIGRpY3RhdGUgdGhlIGFjdHVhbCBjaGFubmVsLCB3aHkgd2FzdGUgdGltZSBzZXR0aW5nIGEgdGVtcG9yYXJ5IG9uZT8gVGhpcyBpcyBlc3BlY2lhbGx5IGJlbmVmaWNpYWwgZm9yIGRyaXZlcnMgdGhhdCBhcmUgZW11bGF0aW5nIGNoYW5uZWwgY29udGV4dHMgYmVjYXVzZSB0aGV5J3JlIGxpa2VseSB0byBpbmN1ciBhIGZ1bGwgY2hhbm5lbCBjaGFuZ2Ugb3BlcmF0aW9uIG9uIGVhY2ggdHVuZS5cblxuVGhlIHByZXZpb3VzIGJlaGF2aW9yIG9mIGNhbGxpbmcgYF9pZWVlODAyMTFfaHdfY29uZl9jaGFuKGxvY2FsLCBOVUxMKWAgd2FzIHByb2JhYmx5IGEgbGVnYWN5IHRoaW5nLCBhZGRlZCBmb3Igc29tZSBvdGhlciByZWFzb24sIGFuZCB0aGUgZGV2ZWxvcGVyIHJlYWxpemVkIGl0IHdhcyBpbmVmZmljaWVudCBpbiBjZXJ0YWluIHNjZW5hcmlvcy4gSXQgbG9va3MgbGlrZSB0aGV5J3ZlIGNvcnJlY3RseSBpZGVudGlmaWVkIHRoZSBwZXJmb3JtYW5jZSBib3R0bGVuZWNrIGFuZCBhZGRyZXNzZWQgaXQgZGlyZWN0bHkuIEkgbmVlZCB0byBtYWtlIHN1cmUgdGhpcyBkb2Vzbid0IGludHJvZHVjZSBhbnkgcmVncmVzc2lvbnMsIGJ1dCBJJ20gcHJldHR5IGNvbmZpZGVudCBpbiB0aGUgbG9naWMgb2YgdGhpcyBjaGFuZ2UuIEl0IHNob3VsZCBiZSBhIGNsZWFuLCBwZXJmb3JtYW5jZS1pbXByb3Zpbmcgb3B0aW1pemF0aW9uLiBJIG1pZ2h0IHdhbnQgdG8gY2hlY2sgdGhlIGNvbW1pdCBsb2cgdG8gc2VlIGlmIHRoZXJlIHdlcmUgYW55IGRpc2N1c3Npb25zIGFyb3VuZCB0aGlzLlxuXG5cbiIsIklucHV0VG9rZW5zIjoyMTg3LCJPdXRwdXRUb2tlbnMiOjI5LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6Mzc4LCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMjlUMTA6MjI6MzAuNDU1MjYzNjI2WiIsIlNlcSI6NCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjE5OTQzMzQyOTAsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiaWVlZTgwMjExX2VtdWxhdGVfcmVtb3ZlX2NoYW5jdHhcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiZHJpdmVycy9uZXQvd2lyZWxlc3MvYWRtdGVrL2FkbTgyMTEuYz0xNzYxPXN0YXRpYyBjb25zdCBzdHJ1Y3QgaWVlZTgwMjExX29wcyBhZG04MjExX29wcyA9IHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hZG10ZWsvYWRtODIxMS5jLTE3NjItXFx0LmFkZF9jaGFuY3R4ID0gaWVlZTgwMjExX2VtdWxhdGVfYWRkX2NoYW5jdHgsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYWRtdGVrL2FkbTgyMTEuYzoxNzYzOlxcdC5yZW1vdmVfY2hhbmN0eCA9IGllZWU4MDIxMV9lbXVsYXRlX3JlbW92ZV9jaGFuY3R4LFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2FkbXRlay9hZG04MjExLmMtMTc2NC1cXHQuY2hhbmdlX2NoYW5jdHggPSBpZWVlODAyMTFfZW11bGF0ZV9jaGFuZ2VfY2hhbmN0eCxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hcjU1MjMvYXI1NTIzLmM9MTM2MT1zdGF0aWMgY29uc3Qgc3RydWN0IGllZWU4MDIxMV9vcHMgYXI1NTIzX29wcyA9IHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXI1NTIzL2FyNTUyMy5jLTEzNjItXFx0LmFkZF9jaGFuY3R4ID0gaWVlZTgwMjExX2VtdWxhdGVfYWRkX2NoYW5jdHgsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2FyNTUyMy9hcjU1MjMuYzoxMzYzOlxcdC5yZW1vdmVfY2hhbmN0eCA9IGllZWU4MDIxMV9lbXVsYXRlX3JlbW92ZV9jaGFuY3R4LFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hcjU1MjMvYXI1NTIzLmMtMTM2NC1cXHQuY2hhbmdlX2NoYW5jdHggPSBpZWVlODAyMTFfZW11bGF0ZV9jaGFuZ2VfY2hhbmN0eCxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg1ay9tYWM4MDIxMS1vcHMuYz03ODU9Y29uc3Qgc3RydWN0IGllZWU4MDIxMV9vcHMgYXRoNWtfaHdfb3BzID0ge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg1ay9tYWM4MDIxMS1vcHMuYy03ODYtXFx0LmFkZF9jaGFuY3R4ID0gaWVlZTgwMjExX2VtdWxhdGVfYWRkX2NoYW5jdHgsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDVrL21hYzgwMjExLW9wcy5jOjc4NzpcXHQucmVtb3ZlX2NoYW5jdHggPSBpZWVlODAyMTFfZW11bGF0ZV9yZW1vdmVfY2hhbmN0eCxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNWsvbWFjODAyMTEtb3BzLmMtNzg4LVxcdC5jaGFuZ2VfY2hhbmN0eCA9IGllZWU4MDIxMV9lbXVsYXRlX2NoYW5nZV9jaGFuY3R4LFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2h0Y19kcnZfbWFpbi5jPTE4NzQ9c3RydWN0IGllZWU4MDIxMV9vcHMgYXRoOWtfaHRjX29wcyA9IHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvaHRjX2Rydl9tYWluLmMtMTg3NS1cXHQuYWRkX2NoYW5jdHggPSBpZWVlODAyMTFfZW11bGF0ZV9hZGRfY2hhbmN0eCxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvaHRjX2Rydl9tYWluLmM6MTg3NjpcXHQucmVtb3ZlX2NoYW5jdHggPSBpZWVlODAyMTFfZW11bGF0ZV9yZW1vdmVfY2hhbmN0eCxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvaHRjX2Rydl9tYWluLmMtMTg3Ny1cXHQuY2hhbmdlX2NoYW5jdHggPSBpZWVlODAyMTFfZW11bGF0ZV9jaGFuZ2VfY2hhbmN0eCxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9tYWluLmM9Mjc5MD1zdHJ1Y3QgaWVlZTgwMjExX29wcyBhdGg5a19vcHMgPSB7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL21haW4uYy0yNzkxLVxcdC5hZGRfY2hhbmN0eCA9IGllZWU4MDIxMV9lbXVsYXRlX2FkZF9jaGFuY3R4LFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9tYWluLmM6Mjc5MjpcXHQucmVtb3ZlX2NoYW5jdHggPSBpZWVlODAyMTFfZW11bGF0ZV9yZW1vdmVfY2hhbmN0eCxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvbWFpbi5jLTI3OTMtXFx0LmNoYW5nZV9jaGFuY3R4ID0gaWVlZTgwMjExX2VtdWxhdGVfY2hhbmdlX2NoYW5jdHgsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvY2FybDkxNzAvbWFpbi5jPTE3MTk9c3RhdGljIGNvbnN0IHN0cnVjdCBpZWVlODAyMTFfb3BzIGNhcmw5MTcwX29wcyA9IHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvY2FybDkxNzAvbWFpbi5jLTE3MjAtXFx0LmFkZF9jaGFuY3R4ID0gaWVlZTgwMjExX2VtdWxhdGVfYWRkX2NoYW5jdHgsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2Nhcmw5MTcwL21haW4uYzoxNzIxOlxcdC5yZW1vdmVfY2hhbmN0eCA9IGllZWU4MDIxMV9lbXVsYXRlX3JlbW92ZV9jaGFuY3R4LFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9jYXJsOTE3MC9tYWluLmMtMTcyMi1cXHQuY2hhbmdlX2NoYW5jdHggPSBpZWVlODAyMTFfZW11bGF0ZV9jaGFuZ2VfY2hhbmN0eCxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC93Y24zNnh4L21haW4uYz0xMzUwPXN0YXRpYyBjb25zdCBzdHJ1Y3QgaWVlZTgwMjExX29wcyB3Y24zNnh4X29wcyA9IHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvd2NuMzZ4eC9tYWluLmMtMTM1MS1cXHQuYWRkX2NoYW5jdHggPSBpZWVlODAyMTFfZW11bGF0ZV9hZGRfY2hhbmN0eCxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvd2NuMzZ4eC9tYWluLmM6MTM1MjpcXHQucmVtb3ZlX2NoYW5jdHggPSBpZWVlODAyMTFfZW11bGF0ZV9yZW1vdmVfY2hhbmN0eCxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvd2NuMzZ4eC9tYWluLmMtMTM1My1cXHQuY2hhbmdlX2NoYW5jdHggPSBpZWVlODAyMTFfZW11bGF0ZV9jaGFuZ2VfY2hhbmN0eCxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0bWVsL2F0NzZjNTB4LXVzYi5jPTIxNzc9c3RhdGljIGNvbnN0IHN0cnVjdCBpZWVlODAyMTFfb3BzIGF0NzZfb3BzID0ge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0bWVsL2F0NzZjNTB4LXVzYi5jLTIxNzgtXFx0LmFkZF9jaGFuY3R4ID0gaWVlZTgwMjExX2VtdWxhdGVfYWRkX2NoYW5jdHgsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRtZWwvYXQ3NmM1MHgtdXNiLmM6MjE3OTpcXHQucmVtb3ZlX2NoYW5jdHggPSBpZWVlODAyMTFfZW11bGF0ZV9yZW1vdmVfY2hhbmN0eCxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdG1lbC9hdDc2YzUweC11c2IuYy0yMTgwLVxcdC5jaGFuZ2VfY2hhbmN0eCA9IGllZWU4MDIxMV9lbXVsYXRlX2NoYW5nZV9jaGFuY3R4LFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYjQzL21haW4uYz01MTg4PXN0YXRpYyBjb25zdCBzdHJ1Y3QgaWVlZTgwMjExX29wcyBiNDNfaHdfb3BzID0ge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2I0My9tYWluLmMtNTE4OS1cXHQuYWRkX2NoYW5jdHggPSBpZWVlODAyMTFfZW11bGF0ZV9hZGRfY2hhbmN0eCxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9iNDMvbWFpbi5jOjUxOTA6XFx0LnJlbW92ZV9jaGFuY3R4ID0gaWVlZTgwMjExX2VtdWxhdGVfcmVtb3ZlX2NoYW5jdHgsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYjQzL21haW4uYy01MTkxLVxcdC5jaGFuZ2VfY2hhbmN0eCA9IGllZWU4MDIxMV9lbXVsYXRlX2NoYW5nZV9jaGFuY3R4LFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYjQzbGVnYWN5L21haW4uYz0zNTMyPXN0YXRpYyBjb25zdCBzdHJ1Y3QgaWVlZTgwMjExX29wcyBiNDNsZWdhY3lfaHdfb3BzID0ge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2I0M2xlZ2FjeS9tYWluLmMtMzUzMy1cXHQuYWRkX2NoYW5jdHggPSBpZWVlODAyMTFfZW11bGF0ZV9hZGRfY2hhbmN0eCxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9iNDNsZWdhY3kvbWFpbi5jOjM1MzQ6XFx0LnJlbW92ZV9jaGFuY3R4ID0gaWVlZTgwMjExX2VtdWxhdGVfcmVtb3ZlX2NoYW5jdHgsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYjQzbGVnYWN5L21haW4uYy0zNTM1LVxcdC5jaGFuZ2VfY2hhbmN0eCA9IGllZWU4MDIxMV9lbXVsYXRlX2NoYW5nZV9jaGFuY3R4LFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21zbWFjL21hYzgwMjExX2lmLmM9OTYzPXN0YXRpYyBjb25zdCBzdHJ1Y3QgaWVlZTgwMjExX29wcyBicmNtc19vcHMgPSB7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21zbWFjL21hYzgwMjExX2lmLmMtOTY0LVxcdC5hZGRfY2hhbmN0eCA9IGllZWU4MDIxMV9lbXVsYXRlX2FkZF9jaGFuY3R4LFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtc21hYy9tYWM4MDIxMV9pZi5jOjk2NTpcXHQucmVtb3ZlX2NoYW5jdHggPSBpZWVlODAyMTFfZW11bGF0ZV9yZW1vdmVfY2hhbmN0eCxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbXNtYWMvbWFjODAyMTFfaWYuYy05NjYtXFx0LmNoYW5nZV9jaGFuY3R4ID0gaWVlZTgwMjExX2VtdWxhdGVfY2hhbmdlX2NoYW5jdHgsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2xlZ2FjeS8zOTQ1LW1hYy5jPTMzOTk9c3RhdGljIHN0cnVjdCBpZWVlODAyMTFfb3BzIGlsMzk0NV9tYWNfb3BzIF9fcm9fYWZ0ZXJfaW5pdCA9IHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2xlZ2FjeS8zOTQ1LW1hYy5jLTM0MDAtXFx0LmFkZF9jaGFuY3R4ID0gaWVlZTgwMjExX2VtdWxhdGVfYWRkX2NoYW5jdHgsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsZWdhY3kvMzk0NS1tYWMuYzozNDAxOlxcdC5yZW1vdmVfY2hhbmN0eCA9IGllZWU4MDIxMV9lbXVsYXRlX3JlbW92ZV9jaGFuY3R4LFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bGVnYWN5LzM5NDUtbWFjLmMtMzQwMi1cXHQuY2hhbmdlX2NoYW5jdHggPSBpZWVlODAyMTFfZW11bGF0ZV9jaGFuZ2VfY2hhbmN0eCxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bGVnYWN5LzQ5NjUtbWFjLmM9NjMwOD1zdGF0aWMgY29uc3Qgc3RydWN0IGllZWU4MDIxMV9vcHMgaWw0OTY1X21hY19vcHMgPSB7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsZWdhY3kvNDk2NS1tYWMuYy02MzA5LVxcdC5hZGRfY2hhbmN0eCA9IGllZWU4MDIxMV9lbXVsYXRlX2FkZF9jaGFuY3R4LFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bGVnYWN5LzQ5NjUtbWFjLmM6NjMxMDpcXHQucmVtb3ZlX2NoYW5jdHggPSBpZWVlODAyMTFfZW11bGF0ZV9yZW1vdmVfY2hhbmN0eCxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2xlZ2FjeS80OTY1LW1hYy5jLTYzMTEtXFx0LmNoYW5nZV9jaGFuY3R4ID0gaWVlZTgwMjExX2VtdWxhdGVfY2hhbmdlX2NoYW5jdHgsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9tYWM4MDIxMS5jPTE1NzI9Y29uc3Qgc3RydWN0IGllZWU4MDIxMV9vcHMgaXdsYWduX2h3X29wcyA9IHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9tYWM4MDIxMS5jLTE1NzMtXFx0LmFkZF9jaGFuY3R4ID0gaWVlZTgwMjExX2VtdWxhdGVfYWRkX2NoYW5jdHgsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vbWFjODAyMTEuYzoxNTc0OlxcdC5yZW1vdmVfY2hhbmN0eCA9IGllZWU4MDIxMV9lbXVsYXRlX3JlbW92ZV9jaGFuY3R4LFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL21hYzgwMjExLmMtMTU3NS1cXHQuY2hhbmdlX2NoYW5jdHggPSBpZWVlODAyMTFfZW11bGF0ZV9jaGFuZ2VfY2hhbmN0eCxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVyc2lsL3A1NC9tYWluLmM9NzA5PXN0YXRpYyBjb25zdCBzdHJ1Y3QgaWVlZTgwMjExX29wcyBwNTRfb3BzID0ge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVyc2lsL3A1NC9tYWluLmMtNzEwLVxcdC5hZGRfY2hhbmN0eCA9IGllZWU4MDIxMV9lbXVsYXRlX2FkZF9jaGFuY3R4LFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVyc2lsL3A1NC9tYWluLmM6NzExOlxcdC5yZW1vdmVfY2hhbmN0eCA9IGllZWU4MDIxMV9lbXVsYXRlX3JlbW92ZV9jaGFuY3R4LFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVyc2lsL3A1NC9tYWluLmMtNzEyLVxcdC5jaGFuZ2VfY2hhbmN0eCA9IGllZWU4MDIxMV9lbXVsYXRlX2NoYW5nZV9jaGFuY3R4LFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWFydmVsbC9saWJlcnRhc190Zi9tYWluLmM9NDc1PXN0YXRpYyBjb25zdCBzdHJ1Y3QgaWVlZTgwMjExX29wcyBsYnRmX29wcyA9IHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tYXJ2ZWxsL2xpYmVydGFzX3RmL21haW4uYy00NzYtXFx0LmFkZF9jaGFuY3R4ID0gaWVlZTgwMjExX2VtdWxhdGVfYWRkX2NoYW5jdHgsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWFydmVsbC9saWJlcnRhc190Zi9tYWluLmM6NDc3OlxcdC5yZW1vdmVfY2hhbmN0eCA9IGllZWU4MDIxMV9lbXVsYXRlX3JlbW92ZV9jaGFuY3R4LFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21hcnZlbGwvbGliZXJ0YXNfdGYvbWFpbi5jLTQ3OC1cXHQuY2hhbmdlX2NoYW5jdHggPSBpZWVlODAyMTFfZW11bGF0ZV9jaGFuZ2VfY2hhbmN0eCxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21hcnZlbGwvbXdsOGsuYz01Njg0PXN0YXRpYyBjb25zdCBzdHJ1Y3QgaWVlZTgwMjExX29wcyBtd2w4a19vcHMgPSB7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWFydmVsbC9td2w4ay5jLTU2ODUtXFx0LmFkZF9jaGFuY3R4ID0gaWVlZTgwMjExX2VtdWxhdGVfYWRkX2NoYW5jdHgsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWFydmVsbC9td2w4ay5jOjU2ODY6XFx0LnJlbW92ZV9jaGFuY3R4ID0gaWVlZTgwMjExX2VtdWxhdGVfcmVtb3ZlX2NoYW5jdHgsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWFydmVsbC9td2w4ay5jLTU2ODctXFx0LmNoYW5nZV9jaGFuY3R4ID0gaWVlZTgwMjExX2VtdWxhdGVfY2hhbmdlX2NoYW5jdHgsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9tYWluLmM9NzU4PWNvbnN0IHN0cnVjdCBpZWVlODAyMTFfb3BzIG10NzYwM19vcHMgPSB7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvbWFpbi5jLTc1OS1cXHQuYWRkX2NoYW5jdHggPSBpZWVlODAyMTFfZW11bGF0ZV9hZGRfY2hhbmN0eCxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9tYWluLmM6NzYwOlxcdC5yZW1vdmVfY2hhbmN0eCA9IGllZWU4MDIxMV9lbXVsYXRlX3JlbW92ZV9jaGFuY3R4LFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL21haW4uYy03NjEtXFx0LmNoYW5nZV9jaGFuY3R4ID0gaWVlZTgwMjExX2VtdWxhdGVfY2hhbmdlX2NoYW5jdHgsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYxNS9tYWluLmM9MTMxOT1jb25zdCBzdHJ1Y3QgaWVlZTgwMjExX29wcyBtdDc2MTVfb3BzID0ge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjE1L21haW4uYy0xMzIwLVxcdC5hZGRfY2hhbmN0eCA9IGllZWU4MDIxMV9lbXVsYXRlX2FkZF9jaGFuY3R4LFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjE1L21haW4uYzoxMzIxOlxcdC5yZW1vdmVfY2hhbmN0eCA9IGllZWU4MDIxMV9lbXVsYXRlX3JlbW92ZV9jaGFuY3R4LFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjE1L21haW4uYy0xMzIyLVxcdC5jaGFuZ2VfY2hhbmN0eCA9IGllZWU4MDIxMV9lbXVsYXRlX2NoYW5nZV9jaGFuY3R4LFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDAvcGNpLmM9NjE9c3RhdGljIGNvbnN0IHN0cnVjdCBpZWVlODAyMTFfb3BzIG10NzZ4MGVfb3BzID0ge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngwL3BjaS5jLTYyLVxcdC5hZGRfY2hhbmN0eCA9IGllZWU4MDIxMV9lbXVsYXRlX2FkZF9jaGFuY3R4LFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngwL3BjaS5jOjYzOlxcdC5yZW1vdmVfY2hhbmN0eCA9IGllZWU4MDIxMV9lbXVsYXRlX3JlbW92ZV9jaGFuY3R4LFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngwL3BjaS5jLTY0LVxcdC5jaGFuZ2VfY2hhbmN0eCA9IGllZWU4MDIxMV9lbXVsYXRlX2NoYW5nZV9jaGFuY3R4LFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDAvdXNiLmM9MTIwPXN0YXRpYyBjb25zdCBzdHJ1Y3QgaWVlZTgwMjExX29wcyBtdDc2eDB1X29wcyA9IHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4MC91c2IuYy0xMjEtXFx0LmFkZF9jaGFuY3R4ID0gaWVlZTgwMjExX2VtdWxhdGVfYWRkX2NoYW5jdHgsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDAvdXNiLmM6MTIyOlxcdC5yZW1vdmVfY2hhbmN0eCA9IGllZWU4MDIxMV9lbXVsYXRlX3JlbW92ZV9jaGFuY3R4LFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngwL3VzYi5jLTEyMy1cXHQuY2hhbmdlX2NoYW5jdHggPSBpZWVlODAyMTFfZW11bGF0ZV9jaGFuZ2VfY2hhbmN0eCxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL3BjaV9tYWluLmM9MTIzPWNvbnN0IHN0cnVjdCBpZWVlODAyMTFfb3BzIG10NzZ4Ml9vcHMgPSB7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvcGNpX21haW4uYy0xMjQtXFx0LmFkZF9jaGFuY3R4ID0gaWVlZTgwMjExX2VtdWxhdGVfYWRkX2NoYW5jdHgsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvcGNpX21haW4uYzoxMjU6XFx0LnJlbW92ZV9jaGFuY3R4ID0gaWVlZTgwMjExX2VtdWxhdGVfcmVtb3ZlX2NoYW5jdHgsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvcGNpX21haW4uYy0xMjYtXFx0LmNoYW5nZV9jaGFuY3R4ID0gaWVlZTgwMjExX2VtdWxhdGVfY2hhbmdlX2NoYW5jdHgsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi91c2JfbWFpbi5jPTkwPWNvbnN0IHN0cnVjdCBpZWVlODAyMTFfb3BzIG10NzZ4MnVfb3BzID0ge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL3VzYl9tYWluLmMtOTEtXFx0LmFkZF9jaGFuY3R4ID0gaWVlZTgwMjExX2VtdWxhdGVfYWRkX2NoYW5jdHgsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvdXNiX21haW4uYzo5MjpcXHQucmVtb3ZlX2NoYW5jdHggPSBpZWVlODAyMTFfZW11bGF0ZV9yZW1vdmVfY2hhbmN0eCxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi91c2JfbWFpbi5jLTkzLVxcdC5jaGFuZ2VfY2hhbmN0eCA9IGllZWU4MDIxMV9lbXVsYXRlX2NoYW5nZV9jaGFuY3R4LFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvbWFpbi5jPTE3NzY9Y29uc3Qgc3RydWN0IGllZWU4MDIxMV9vcHMgbXQ3OTE1X29wcyA9IHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9tYWluLmMtMTc3Ny1cXHQuYWRkX2NoYW5jdHggPSBpZWVlODAyMTFfZW11bGF0ZV9hZGRfY2hhbmN0eCxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9tYWluLmM6MTc3ODpcXHQucmVtb3ZlX2NoYW5jdHggPSBpZWVlODAyMTFfZW11bGF0ZV9yZW1vdmVfY2hhbmN0eCxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9tYWluLmMtMTc3OS1cXHQuY2hhbmdlX2NoYW5jdHggPSBpZWVlODAyMTFfZW11bGF0ZV9jaGFuZ2VfY2hhbmN0eCxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTJ4X2NvcmUuYz05MjQ9bXQ3OTJ4X2dldF9tYWM4MDIxMV9vcHMoc3RydWN0IGRldmljZSAqZGV2LFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MnhfY29yZS5jLTk0My1cXHRcXHRvcHMtXFx1MDAzZWFkZF9jaGFuY3R4ID0gaWVlZTgwMjExX2VtdWxhdGVfYWRkX2NoYW5jdHg7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MnhfY29yZS5jOjk0NDpcXHRcXHRvcHMtXFx1MDAzZXJlbW92ZV9jaGFuY3R4ID0gaWVlZTgwMjExX2VtdWxhdGVfcmVtb3ZlX2NoYW5jdHg7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MnhfY29yZS5jLTk0NS1cXHRcXHRvcHMtXFx1MDAzZWNoYW5nZV9jaGFuY3R4ID0gaWVlZTgwMjExX2VtdWxhdGVfY2hhbmdlX2NoYW5jdHg7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2MDF1L21haW4uYz00MDg9Y29uc3Qgc3RydWN0IGllZWU4MDIxMV9vcHMgbXQ3NjAxdV9vcHMgPSB7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3NjAxdS9tYWluLmMtNDA5LVxcdC5hZGRfY2hhbmN0eCA9IGllZWU4MDIxMV9lbXVsYXRlX2FkZF9jaGFuY3R4LFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYwMXUvbWFpbi5jOjQxMDpcXHQucmVtb3ZlX2NoYW5jdHggPSBpZWVlODAyMTFfZW11bGF0ZV9yZW1vdmVfY2hhbmN0eCxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2MDF1L21haW4uYy00MTEtXFx0LmNoYW5nZV9jaGFuY3R4ID0gaWVlZTgwMjExX2VtdWxhdGVfY2hhbmdlX2NoYW5jdHgsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tb3JzZW1pY3JvL21tODF4L21hYy5jPTIyMzI9c3RhdGljIGNvbnN0IHN0cnVjdCBpZWVlODAyMTFfb3BzIG1tODF4X29wcyA9IHtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21vcnNlbWljcm8vbW04MXgvbWFjLmMtMjI1NS1cXHQuYWRkX2NoYW5jdHggPSBpZWVlODAyMTFfZW11bGF0ZV9hZGRfY2hhbmN0eCxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tb3JzZW1pY3JvL21tODF4L21hYy5jOjIyNTY6XFx0LnJlbW92ZV9jaGFuY3R4ID0gaWVlZTgwMjExX2VtdWxhdGVfcmVtb3ZlX2NoYW5jdHgsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbW9yc2VtaWNyby9tbTgxeC9tYWMuYy0yMjU3LVxcdC5jaGFuZ2VfY2hhbmN0eCA9IGllZWU4MDIxMV9lbXVsYXRlX2NoYW5nZV9jaGFuY3R4LFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcHVyZWxpZmkvcGxmeGxjL21hYy5jPTY4MT1zdGF0aWMgY29uc3Qgc3RydWN0IGllZWU4MDIxMV9vcHMgcGxmeGxjX29wcyA9IHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9wdXJlbGlmaS9wbGZ4bGMvbWFjLmMtNjgyLVxcdC5hZGRfY2hhbmN0eCA9IGllZWU4MDIxMV9lbXVsYXRlX2FkZF9jaGFuY3R4LFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3B1cmVsaWZpL3BsZnhsYy9tYWMuYzo2ODM6XFx0LnJlbW92ZV9jaGFuY3R4ID0gaWVlZTgwMjExX2VtdWxhdGVfcmVtb3ZlX2NoYW5jdHgsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcHVyZWxpZmkvcGxmeGxjL21hYy5jLTY4NC1cXHQuY2hhbmdlX2NoYW5jdHggPSBpZWVlODAyMTFfZW11bGF0ZV9jaGFuZ2VfY2hhbmN0eCxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JhbGluay9ydDJ4MDAvcnQyNDAwcGNpLmM9MTcwNz1zdGF0aWMgY29uc3Qgc3RydWN0IGllZWU4MDIxMV9vcHMgcnQyNDAwcGNpX21hYzgwMjExX29wcyA9IHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yYWxpbmsvcnQyeDAwL3J0MjQwMHBjaS5jLTE3MDgtXFx0LmFkZF9jaGFuY3R4ID0gaWVlZTgwMjExX2VtdWxhdGVfYWRkX2NoYW5jdHgsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmFsaW5rL3J0MngwMC9ydDI0MDBwY2kuYzoxNzA5OlxcdC5yZW1vdmVfY2hhbmN0eCA9IGllZWU4MDIxMV9lbXVsYXRlX3JlbW92ZV9jaGFuY3R4LFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JhbGluay9ydDJ4MDAvcnQyNDAwcGNpLmMtMTcxMC1cXHQuY2hhbmdlX2NoYW5jdHggPSBpZWVlODAyMTFfZW11bGF0ZV9jaGFuZ2VfY2hhbmN0eCxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JhbGluay9ydDJ4MDAvcnQyNTAwcGNpLmM9MjAwNT1zdGF0aWMgY29uc3Qgc3RydWN0IGllZWU4MDIxMV9vcHMgcnQyNTAwcGNpX21hYzgwMjExX29wcyA9IHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yYWxpbmsvcnQyeDAwL3J0MjUwMHBjaS5jLTIwMDYtXFx0LmFkZF9jaGFuY3R4ID0gaWVlZTgwMjExX2VtdWxhdGVfYWRkX2NoYW5jdHgsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmFsaW5rL3J0MngwMC9ydDI1MDBwY2kuYzoyMDA3OlxcdC5yZW1vdmVfY2hhbmN0eCA9IGllZWU4MDIxMV9lbXVsYXRlX3JlbW92ZV9jaGFuY3R4LFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JhbGluay9ydDJ4MDAvcnQyNTAwcGNpLmMtMjAwOC1cXHQuY2hhbmdlX2NoYW5jdHggPSBpZWVlODAyMTFfZW11bGF0ZV9jaGFuZ2VfY2hhbmN0eCxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JhbGluay9ydDJ4MDAvcnQyNTAwdXNiLmM9MTc5Nj1zdGF0aWMgY29uc3Qgc3RydWN0IGllZWU4MDIxMV9vcHMgcnQyNTAwdXNiX21hYzgwMjExX29wcyA9IHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yYWxpbmsvcnQyeDAwL3J0MjUwMHVzYi5jLTE3OTctXFx0LmFkZF9jaGFuY3R4ID0gaWVlZTgwMjExX2VtdWxhdGVfYWRkX2NoYW5jdHgsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmFsaW5rL3J0MngwMC9ydDI1MDB1c2IuYzoxNzk4OlxcdC5yZW1vdmVfY2hhbmN0eCA9IGllZWU4MDIxMV9lbXVsYXRlX3JlbW92ZV9jaGFuY3R4LFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JhbGluay9ydDJ4MDAvcnQyNTAwdXNiLmMtMTc5OS1cXHQuY2hhbmdlX2NoYW5jdHggPSBpZWVlODAyMTFfZW11bGF0ZV9jaGFuZ2VfY2hhbmN0eCxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JhbGluay9ydDJ4MDAvcnQyODAwcGNpLmM9MjkyPXN0YXRpYyBjb25zdCBzdHJ1Y3QgaWVlZTgwMjExX29wcyBydDI4MDBwY2lfbWFjODAyMTFfb3BzID0ge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JhbGluay9ydDJ4MDAvcnQyODAwcGNpLmMtMjkzLVxcdC5hZGRfY2hhbmN0eCA9IGllZWU4MDIxMV9lbXVsYXRlX2FkZF9jaGFuY3R4LFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JhbGluay9ydDJ4MDAvcnQyODAwcGNpLmM6Mjk0OlxcdC5yZW1vdmVfY2hhbmN0eCA9IGllZWU4MDIxMV9lbXVsYXRlX3JlbW92ZV9jaGFuY3R4LFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JhbGluay9ydDJ4MDAvcnQyODAwcGNpLmMtMjk1LVxcdC5jaGFuZ2VfY2hhbmN0eCA9IGllZWU4MDIxMV9lbXVsYXRlX2NoYW5nZV9jaGFuY3R4LFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmFsaW5rL3J0MngwMC9ydDI4MDBzb2MuYz0xNTY9c3RhdGljIGNvbnN0IHN0cnVjdCBpZWVlODAyMTFfb3BzIHJ0MjgwMHNvY19tYWM4MDIxMV9vcHMgPSB7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmFsaW5rL3J0MngwMC9ydDI4MDBzb2MuYy0xNTctXFx0LmFkZF9jaGFuY3R4ID0gaWVlZTgwMjExX2VtdWxhdGVfYWRkX2NoYW5jdHgsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmFsaW5rL3J0MngwMC9ydDI4MDBzb2MuYzoxNTg6XFx0LnJlbW92ZV9jaGFuY3R4ID0gaWVlZTgwMjExX2VtdWxhdGVfcmVtb3ZlX2NoYW5jdHgsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmFsaW5rL3J0MngwMC9ydDI4MDBzb2MuYy0xNTktXFx0LmNoYW5nZV9jaGFuY3R4ID0gaWVlZTgwMjExX2VtdWxhdGVfY2hhbmdlX2NoYW5jdHgsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yYWxpbmsvcnQyeDAwL3J0MjgwMHVzYi5jPTYzMT1zdGF0aWMgY29uc3Qgc3RydWN0IGllZWU4MDIxMV9vcHMgcnQyODAwdXNiX21hYzgwMjExX29wcyA9IHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yYWxpbmsvcnQyeDAwL3J0MjgwMHVzYi5jLTYzMi1cXHQuYWRkX2NoYW5jdHggPSBpZWVlODAyMTFfZW11bGF0ZV9hZGRfY2hhbmN0eCxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yYWxpbmsvcnQyeDAwL3J0MjgwMHVzYi5jOjYzMzpcXHQucmVtb3ZlX2NoYW5jdHggPSBpZWVlODAyMTFfZW11bGF0ZV9yZW1vdmVfY2hhbmN0eCxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yYWxpbmsvcnQyeDAwL3J0MjgwMHVzYi5jLTYzNC1cXHQuY2hhbmdlX2NoYW5jdHggPSBpZWVlODAyMTFfZW11bGF0ZV9jaGFuZ2VfY2hhbmN0eCxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JhbGluay9ydDJ4MDAvcnQ2MXBjaS5jPTI4NzQ9c3RhdGljIGNvbnN0IHN0cnVjdCBpZWVlODAyMTFfb3BzIHJ0NjFwY2lfbWFjODAyMTFfb3BzID0ge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JhbGluay9ydDJ4MDAvcnQ2MXBjaS5jLTI4NzUtXFx0LmFkZF9jaGFuY3R4ID0gaWVlZTgwMjExX2VtdWxhdGVfYWRkX2NoYW5jdHgsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmFsaW5rL3J0MngwMC9ydDYxcGNpLmM6Mjg3NjpcXHQucmVtb3ZlX2NoYW5jdHggPSBpZWVlODAyMTFfZW11bGF0ZV9yZW1vdmVfY2hhbmN0eCxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yYWxpbmsvcnQyeDAwL3J0NjFwY2kuYy0yODc3LVxcdC5jaGFuZ2VfY2hhbmN0eCA9IGllZWU4MDIxMV9lbXVsYXRlX2NoYW5nZV9jaGFuY3R4LFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmFsaW5rL3J0MngwMC9ydDczdXNiLmM9MjI5Mz1zdGF0aWMgY29uc3Qgc3RydWN0IGllZWU4MDIxMV9vcHMgcnQ3M3VzYl9tYWM4MDIxMV9vcHMgPSB7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmFsaW5rL3J0MngwMC9ydDczdXNiLmMtMjI5NC1cXHQuYWRkX2NoYW5jdHggPSBpZWVlODAyMTFfZW11bGF0ZV9hZGRfY2hhbmN0eCxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yYWxpbmsvcnQyeDAwL3J0NzN1c2IuYzoyMjk1OlxcdC5yZW1vdmVfY2hhbmN0eCA9IGllZWU4MDIxMV9lbXVsYXRlX3JlbW92ZV9jaGFuY3R4LFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JhbGluay9ydDJ4MDAvcnQ3M3VzYi5jLTIyOTYtXFx0LmNoYW5nZV9jaGFuY3R4ID0gaWVlZTgwMjExX2VtdWxhdGVfY2hhbmdlX2NoYW5jdHgsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDgxOHgvcnRsODE4MC9kZXYuYz0xNjA0PXN0YXRpYyBjb25zdCBzdHJ1Y3QgaWVlZTgwMjExX29wcyBydGw4MTgwX29wcyA9IHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDgxOHgvcnRsODE4MC9kZXYuYy0xNjA1LVxcdC5hZGRfY2hhbmN0eCA9IGllZWU4MDIxMV9lbXVsYXRlX2FkZF9jaGFuY3R4LFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsODE4eC9ydGw4MTgwL2Rldi5jOjE2MDY6XFx0LnJlbW92ZV9jaGFuY3R4ID0gaWVlZTgwMjExX2VtdWxhdGVfcmVtb3ZlX2NoYW5jdHgsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4MTh4L3J0bDgxODAvZGV2LmMtMTYwNy1cXHQuY2hhbmdlX2NoYW5jdHggPSBpZWVlODAyMTFfZW11bGF0ZV9jaGFuZ2VfY2hhbmN0eCxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsODE4eC9ydGw4MTg3L2Rldi5jPTEzOTE9c3RhdGljIGNvbnN0IHN0cnVjdCBpZWVlODAyMTFfb3BzIHJ0bDgxODdfb3BzID0ge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsODE4eC9ydGw4MTg3L2Rldi5jLTEzOTItXFx0LmFkZF9jaGFuY3R4ID0gaWVlZTgwMjExX2VtdWxhdGVfYWRkX2NoYW5jdHgsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4MTh4L3J0bDgxODcvZGV2LmM6MTM5MzpcXHQucmVtb3ZlX2NoYW5jdHggPSBpZWVlODAyMTFfZW11bGF0ZV9yZW1vdmVfY2hhbmN0eCxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDgxOHgvcnRsODE4Ny9kZXYuYy0xMzk0LVxcdC5jaGFuZ2VfY2hhbmN0eCA9IGllZWU4MDIxMV9lbXVsYXRlX2NoYW5nZV9jaGFuY3R4LFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS9jb3JlLmM9NzU5Mz1zdGF0aWMgY29uc3Qgc3RydWN0IGllZWU4MDIxMV9vcHMgcnRsOHh4eHVfb3BzID0ge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvY29yZS5jLTc1OTQtXFx0LmFkZF9jaGFuY3R4ID0gaWVlZTgwMjExX2VtdWxhdGVfYWRkX2NoYW5jdHgsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS9jb3JlLmM6NzU5NTpcXHQucmVtb3ZlX2NoYW5jdHggPSBpZWVlODAyMTFfZW11bGF0ZV9yZW1vdmVfY2hhbmN0eCxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1L2NvcmUuYy03NTk2LVxcdC5jaGFuZ2VfY2hhbmN0eCA9IGllZWU4MDIxMV9lbXVsYXRlX2NoYW5nZV9jaGFuY3R4LFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGx3aWZpL2NvcmUuYz0xODc5PWNvbnN0IHN0cnVjdCBpZWVlODAyMTFfb3BzIHJ0bF9vcHMgPSB7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGx3aWZpL2NvcmUuYy0xODgwLVxcdC5hZGRfY2hhbmN0eCA9IGllZWU4MDIxMV9lbXVsYXRlX2FkZF9jaGFuY3R4LFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsd2lmaS9jb3JlLmM6MTg4MTpcXHQucmVtb3ZlX2NoYW5jdHggPSBpZWVlODAyMTFfZW11bGF0ZV9yZW1vdmVfY2hhbmN0eCxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bHdpZmkvY29yZS5jLTE4ODItXFx0LmNoYW5nZV9jaGFuY3R4ID0gaWVlZTgwMjExX2VtdWxhdGVfY2hhbmdlX2NoYW5jdHgsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L21hYzgwMjExLmM9OTUzPWNvbnN0IHN0cnVjdCBpZWVlODAyMTFfb3BzIHJ0d19vcHMgPSB7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9tYWM4MDIxMS5jLTk1NC1cXHQuYWRkX2NoYW5jdHggPSBpZWVlODAyMTFfZW11bGF0ZV9hZGRfY2hhbmN0eCxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L21hYzgwMjExLmM6OTU1OlxcdC5yZW1vdmVfY2hhbmN0eCA9IGllZWU4MDIxMV9lbXVsYXRlX3JlbW92ZV9jaGFuY3R4LFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvbWFjODAyMTEuYy05NTYtXFx0LmNoYW5nZV9jaGFuY3R4ID0gaWVlZTgwMjExX2VtdWxhdGVfY2hhbmdlX2NoYW5jdHgsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2NvcmUuYz03NjM3PXN0cnVjdCBydHc4OV9kZXYgKnJ0dzg5X2FsbG9jX2llZWU4MDIxMV9odyhzdHJ1Y3QgZGV2aWNlICpkZXZpY2UsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2NvcmUuYy03NjY2LVxcdFxcdG9wcy1cXHUwMDNlYWRkX2NoYW5jdHggPSBpZWVlODAyMTFfZW11bGF0ZV9hZGRfY2hhbmN0eDtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2NvcmUuYzo3NjY3OlxcdFxcdG9wcy1cXHUwMDNlcmVtb3ZlX2NoYW5jdHggPSBpZWVlODAyMTFfZW11bGF0ZV9yZW1vdmVfY2hhbmN0eDtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2NvcmUuYy03NjY4LVxcdFxcdG9wcy1cXHUwMDNlY2hhbmdlX2NoYW5jdHggPSBpZWVlODAyMTFfZW11bGF0ZV9jaGFuZ2VfY2hhbmN0eDtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JzaS9yc2lfOTF4X21hYzgwMjExLmM9MTk4Mj1zdGF0aWMgY29uc3Qgc3RydWN0IGllZWU4MDIxMV9vcHMgbWFjODAyMTFfb3BzID0ge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JzaS9yc2lfOTF4X21hYzgwMjExLmMtMTk4My1cXHQuYWRkX2NoYW5jdHggPSBpZWVlODAyMTFfZW11bGF0ZV9hZGRfY2hhbmN0eCxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yc2kvcnNpXzkxeF9tYWM4MDIxMS5jOjE5ODQ6XFx0LnJlbW92ZV9jaGFuY3R4ID0gaWVlZTgwMjExX2VtdWxhdGVfcmVtb3ZlX2NoYW5jdHgsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcnNpL3JzaV85MXhfbWFjODAyMTEuYy0xOTg1LVxcdC5jaGFuZ2VfY2hhbmN0eCA9IGllZWU4MDIxMV9lbXVsYXRlX2NoYW5nZV9jaGFuY3R4LFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3Mvc3QvY3cxMjAwL21haW4uYz0yMDU9c3RhdGljIGNvbnN0IHN0cnVjdCBpZWVlODAyMTFfb3BzIGN3MTIwMF9vcHMgPSB7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3Mvc3QvY3cxMjAwL21haW4uYy0yMDYtXFx0LmFkZF9jaGFuY3R4ID0gaWVlZTgwMjExX2VtdWxhdGVfYWRkX2NoYW5jdHgsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3Mvc3QvY3cxMjAwL21haW4uYzoyMDc6XFx0LnJlbW92ZV9jaGFuY3R4ID0gaWVlZTgwMjExX2VtdWxhdGVfcmVtb3ZlX2NoYW5jdHgsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3Mvc3QvY3cxMjAwL21haW4uYy0yMDgtXFx0LmNoYW5nZV9jaGFuY3R4ID0gaWVlZTgwMjExX2VtdWxhdGVfY2hhbmdlX2NoYW5jdHgsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy90aS93bDEyNTEvbWFpbi5jPTEzNTQ9c3RhdGljIGNvbnN0IHN0cnVjdCBpZWVlODAyMTFfb3BzIHdsMTI1MV9vcHMgPSB7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvdGkvd2wxMjUxL21haW4uYy0xMzU1LVxcdC5hZGRfY2hhbmN0eCA9IGllZWU4MDIxMV9lbXVsYXRlX2FkZF9jaGFuY3R4LFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3RpL3dsMTI1MS9tYWluLmM6MTM1NjpcXHQucmVtb3ZlX2NoYW5jdHggPSBpZWVlODAyMTFfZW11bGF0ZV9yZW1vdmVfY2hhbmN0eCxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy90aS93bDEyNTEvbWFpbi5jLTEzNTctXFx0LmNoYW5nZV9jaGFuY3R4ID0gaWVlZTgwMjExX2VtdWxhdGVfY2hhbmdlX2NoYW5jdHgsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy92aXJ0dWFsL21hYzgwMjExX2h3c2ltX21haW4uYz00MzQwPXN0YXRpYyBjb25zdCBzdHJ1Y3QgaWVlZTgwMjExX29wcyBtYWM4MDIxMV9od3NpbV9vcHMgPSB7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy92aXJ0dWFsL21hYzgwMjExX2h3c2ltX21haW4uYy00MzQ1LVxcdC5hZGRfY2hhbmN0eCA9IGllZWU4MDIxMV9lbXVsYXRlX2FkZF9jaGFuY3R4LFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3ZpcnR1YWwvbWFjODAyMTFfaHdzaW1fbWFpbi5jOjQzNDY6XFx0LnJlbW92ZV9jaGFuY3R4ID0gaWVlZTgwMjExX2VtdWxhdGVfcmVtb3ZlX2NoYW5jdHgsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvdmlydHVhbC9tYWM4MDIxMV9od3NpbV9tYWluLmMtNDM0Ny1cXHQuY2hhbmdlX2NoYW5jdHggPSBpZWVlODAyMTFfZW11bGF0ZV9jaGFuZ2VfY2hhbmN0eCxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3p5ZGFzL3pkMTIxMXJ3L3pkX21hYy5jPTEzNDg9c3RhdGljIGNvbnN0IHN0cnVjdCBpZWVlODAyMTFfb3BzIHpkX29wcyA9IHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy96eWRhcy96ZDEyMTFydy96ZF9tYWMuYy0xMzQ5LVxcdC5hZGRfY2hhbmN0eCA9IGllZWU4MDIxMV9lbXVsYXRlX2FkZF9jaGFuY3R4LFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3p5ZGFzL3pkMTIxMXJ3L3pkX21hYy5jOjEzNTA6XFx0LnJlbW92ZV9jaGFuY3R4ID0gaWVlZTgwMjExX2VtdWxhdGVfcmVtb3ZlX2NoYW5jdHgsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvenlkYXMvemQxMjExcncvemRfbWFjLmMtMTM1MS1cXHQuY2hhbmdlX2NoYW5jdHggPSBpZWVlODAyMTFfZW11bGF0ZV9jaGFuZ2VfY2hhbmN0eCxcXG4tLVxcbmluY2x1ZGUvbmV0L21hYzgwMjExLmg9ODIwND1pbnQgaWVlZTgwMjExX2VtdWxhdGVfYWRkX2NoYW5jdHgoc3RydWN0IGllZWU4MDIxMV9odyAqaHcsXFxuaW5jbHVkZS9uZXQvbWFjODAyMTEuaC04MjA1LVxcdFxcdFxcdFxcdCAgc3RydWN0IGllZWU4MDIxMV9jaGFuY3R4X2NvbmYgKmN0eCk7XFxuaW5jbHVkZS9uZXQvbWFjODAyMTEuaDo4MjA2OnZvaWQgaWVlZTgwMjExX2VtdWxhdGVfcmVtb3ZlX2NoYW5jdHgoc3RydWN0IGllZWU4MDIxMV9odyAqaHcsXFxuaW5jbHVkZS9uZXQvbWFjODAyMTEuaC04MjA3LVxcdFxcdFxcdFxcdCAgICAgIHN0cnVjdCBpZWVlODAyMTFfY2hhbmN0eF9jb25mICpjdHgpO1xcbi0tXFxubmV0L21hYzgwMjExL21haW4uYz0yODU9RVhQT1JUX1NZTUJPTChpZWVlODAyMTFfZW11bGF0ZV9hZGRfY2hhbmN0eCk7XFxubmV0L21hYzgwMjExL21haW4uYy0yODYtXFxubmV0L21hYzgwMjExL21haW4uYzoyODc6dm9pZCBpZWVlODAyMTFfZW11bGF0ZV9yZW1vdmVfY2hhbmN0eChzdHJ1Y3QgaWVlZTgwMjExX2h3ICpodyxcXG5uZXQvbWFjODAyMTEvbWFpbi5jLTI4OC1cXHRcXHRcXHRcXHQgICAgICBzdHJ1Y3QgaWVlZTgwMjExX2NoYW5jdHhfY29uZiAqY3R4KVxcbi0tXFxubmV0L21hYzgwMjExL21haW4uYy0zMDAtfVxcbm5ldC9tYWM4MDIxMS9tYWluLmM6MzAxOkVYUE9SVF9TWU1CT0woaWVlZTgwMjExX2VtdWxhdGVfcmVtb3ZlX2NoYW5jdHgpO1xcbm5ldC9tYWM4MDIxMS9tYWluLmMtMzAyLVxcbi0tXFxubmV0L21hYzgwMjExL21haW4uYz03OTg9c3RydWN0IGllZWU4MDIxMV9odyAqaWVlZTgwMjExX2FsbG9jX2h3X25tKHNpemVfdCBwcml2X2RhdGFfbGVuLFxcbi0tXFxubmV0L21hYzgwMjExL21haW4uYy04MjAtXFx0aWYgKG9wcy1cXHUwMDNlYWRkX2NoYW5jdHggPT0gaWVlZTgwMjExX2VtdWxhdGVfYWRkX2NoYW5jdHggXFx1MDAyNlxcdTAwMjZcXG5uZXQvbWFjODAyMTEvbWFpbi5jOjgyMTpcXHQgICAgb3BzLVxcdTAwM2VyZW1vdmVfY2hhbmN0eCA9PSBpZWVlODAyMTFfZW11bGF0ZV9yZW1vdmVfY2hhbmN0eCBcXHUwMDI2XFx1MDAyNlxcbm5ldC9tYWM4MDIxMS9tYWluLmMtODIyLVxcdCAgICBvcHMtXFx1MDAzZWNoYW5nZV9jaGFuY3R4ID09IGllZWU4MDIxMV9lbXVsYXRlX2NoYW5nZV9jaGFuY3R4KSB7XFxuLS1cXG5uZXQvbWFjODAyMTEvbWFpbi5jLTgyOC1cXHRcXHRpZiAoV0FSTl9PTihvcHMtXFx1MDAzZWFkZF9jaGFuY3R4ID09IGllZWU4MDIxMV9lbXVsYXRlX2FkZF9jaGFuY3R4IHx8XFxubmV0L21hYzgwMjExL21haW4uYzo4Mjk6XFx0XFx0XFx0ICAgIG9wcy1cXHUwMDNlcmVtb3ZlX2NoYW5jdHggPT0gaWVlZTgwMjExX2VtdWxhdGVfcmVtb3ZlX2NoYW5jdHggfHxcXG5uZXQvbWFjODAyMTEvbWFpbi5jLTgzMC1cXHRcXHRcXHQgICAgb3BzLVxcdTAwM2VjaGFuZ2VfY2hhbmN0eCA9PSBpZWVlODAyMTFfZW11bGF0ZV9jaGFuZ2VfY2hhbmN0eCkpXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTI5VDEwOjIyOjMyLjQ0OTYwNDgxNloiLCJTZXEiOjUsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy43LWZsYXNoIiwiRHVyYXRpb24iOjE1ODY0ODk5MzgxLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkFuYWx5emluZyBtYWM4MDIxMV9od3NpbSdzIENoYW5uZWwgQ29udGV4dCBIYW5kbGluZyoqXG5cbk9rYXksIHNvIEknbSBsb29raW5nIGF0IGBtYWM4MDIxMV9od3NpbWAgYW5kIG15IGV5ZSBpcyBkcmF3biB0byBpdHMgY2hhbm5lbCBjb250ZXh0IGhhbmRsaW5nLiBTcGVjaWZpY2FsbHksIEkgc2VlIGl0J3MgdXNpbmcgYGllZWU4MDIxMV9lbXVsYXRlX3JlbW92ZV9jaGFuY3R4YCB2aWEgdGhlIGZ1bmN0aW9uIHBvaW50ZXJzIGluIGBtYWM4MDIxMV9od3NpbV9tYWluLmNgOiBgLmFkZF9jaGFuY3R4YCwgYC5yZW1vdmVfY2hhbmN0eGAsIGFuZCBgLmNoYW5nZV9jaGFuY3R4YC4gIFJpZ2h0LCBzbyBgaHdzaW1gIGlzIGZyZXF1ZW50bHkgbGV2ZXJhZ2VkIGJ5IHN5emthbGxlciBmb3IgdGVzdGluZyB0aGUgd2lmaSwgbmw4MDIxMSwgYW5kIG1hYzgwMjExIHN0YWNrLCBzbyB1bmRlcnN0YW5kaW5nIGhvdyBpdCBoYW5kbGVzIGNoYW5uZWwgY29udGV4dHMgaXMgcHJldHR5IGltcG9ydGFudCBpbiB0aGUgZ3JhbmQgc2NoZW1lIG9mIHRoaW5ncy5cblxuSSBzaG91bGQgcHJvYmFibHkgZGl2ZSBpbnRvIGBuZXQvbWFjODAyMTEvbWFpbi5jYCBub3cgdG8gZ2V0IGEgYmV0dGVyIGhhbmRsZSBvbiB0aGUgYnJvYWRlciBjb250ZXh0IGFyb3VuZCBsaW5lcyAyNzAtMzIwLiBUaGF0IHNob3VsZCBnaXZlIG1lIHRoZSBiYWNrZ3JvdW5kIG5lY2Vzc2FyeSB0byB1bmRlcnN0YW5kIGhvdyB0aGlzIGVtdWxhdGlvbiBmdW5jdGlvbiB0aWVzIGludG8gdGhlIGxhcmdlciBmcmFtZXdvcmsuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjEzMDkxLCJPdXRwdXRUb2tlbnMiOjQwLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MTkyLCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTI5VDEwOjIyOjQ4LjMxNDUwNzA0N1oiLCJTZXEiOjYsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6InJlYWQtZmlsZSIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjEwNTE2MCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkZpbGVcIjogXCJuZXQvbWFjODAyMTEvbWFpbi5jXCIsXG4gIFwiRmlyc3RMaW5lXCI6IDI3MCxcbiAgXCJMaW5lQ291bnRcIjogNTBcbn0iLCJSZXN1bHRzIjoie1xuICBcIkNvbnRlbnRzXCI6IFwiIDI3MDpcXHRcXHRcXHRcXHRcXHRcXHRcXHQgICAgICAgY3R4ID8gXFx1MDAyNmN0eC1cXHUwMDNlY29uZiA6IE5VTEwpO1xcbiAyNzE6XFx0XFx0fVxcbiAyNzI6XFx0XFxuIDI3MzpcXHRcXHRXQVJOX09OKGRydl9jb25maWcobG9jYWwsIC0xLCBjaGFuZ2VkKSk7XFxuIDI3NDpcXHR9XFxuIDI3NTpcXHRcXG4gMjc2OlxcdGludCBpZWVlODAyMTFfZW11bGF0ZV9hZGRfY2hhbmN0eChzdHJ1Y3QgaWVlZTgwMjExX2h3ICpodyxcXG4gMjc3OlxcdFxcdFxcdFxcdFxcdCAgc3RydWN0IGllZWU4MDIxMV9jaGFuY3R4X2NvbmYgKmN0eClcXG4gMjc4OlxcdHtcXG4gMjc5OlxcdFxcdHN0cnVjdCBpZWVlODAyMTFfbG9jYWwgKmxvY2FsID0gaHdfdG9fbG9jYWwoaHcpO1xcbiAyODA6XFx0XFxuIDI4MTpcXHRcXHRsb2NhbC1cXHUwMDNlaHcuY29uZi5yYWRhcl9lbmFibGVkID0gY3R4LVxcdTAwM2VyYWRhcl9lbmFibGVkO1xcbiAyODI6XFx0XFxuIDI4MzpcXHRcXHRyZXR1cm4gX2llZWU4MDIxMV9od19jb25mX2NoYW4obG9jYWwsIGN0eCk7XFxuIDI4NDpcXHR9XFxuIDI4NTpcXHRFWFBPUlRfU1lNQk9MKGllZWU4MDIxMV9lbXVsYXRlX2FkZF9jaGFuY3R4KTtcXG4gMjg2OlxcdFxcbiAyODc6XFx0dm9pZCBpZWVlODAyMTFfZW11bGF0ZV9yZW1vdmVfY2hhbmN0eChzdHJ1Y3QgaWVlZTgwMjExX2h3ICpodyxcXG4gMjg4OlxcdFxcdFxcdFxcdFxcdCAgICAgIHN0cnVjdCBpZWVlODAyMTFfY2hhbmN0eF9jb25mICpjdHgpXFxuIDI4OTpcXHR7XFxuIDI5MDpcXHRcXHRzdHJ1Y3QgaWVlZTgwMjExX2xvY2FsICpsb2NhbCA9IGh3X3RvX2xvY2FsKGh3KTtcXG4gMjkxOlxcdFxcbiAyOTI6XFx0XFx0LypcXG4gMjkzOlxcdFxcdCAqIFdpdGggbm8gY29udGV4dCBsZWZ0IHRoZXJlIGlzIG5vdGhpbmcgdG8gY29uZmlndXJlOiBub3RoaW5nIGlzIG9uXFxuIDI5NDpcXHRcXHQgKiB0aGUgYWlyLCBhbmQgdGhlIG5leHQgY29udGV4dCBzZXRzIHRoZSBjaGFubmVsLiBQYXJraW5nIHRoZSByYWRpb1xcbiAyOTU6XFx0XFx0ICogb24gdGhlIGRlZmF1bHQgY2hhbm5lbCBoZXJlIG9ubHkgdG8gbW92ZSBpdCBhZ2FpbiB3aGVuIHRoZSBuZXh0XFxuIDI5NjpcXHRcXHQgKiBjb250ZXh0IGlzIGFkZGVkIGNvc3RzIGRyaXZlcnMgd2l0aG91dCBuYXRpdmUgY2hhbm5lbCBjb250ZXh0cyBhXFxuIDI5NzpcXHRcXHQgKiBmdWxsIGNoYW5uZWwgY2hhbmdlIHBlciByZXR1bmUuXFxuIDI5ODpcXHRcXHQgKi9cXG4gMjk5OlxcdFxcdGxvY2FsLVxcdTAwM2Vody5jb25mLnJhZGFyX2VuYWJsZWQgPSBmYWxzZTtcXG4gMzAwOlxcdH1cXG4gMzAxOlxcdEVYUE9SVF9TWU1CT0woaWVlZTgwMjExX2VtdWxhdGVfcmVtb3ZlX2NoYW5jdHgpO1xcbiAzMDI6XFx0XFxuIDMwMzpcXHR2b2lkIGllZWU4MDIxMV9lbXVsYXRlX2NoYW5nZV9jaGFuY3R4KHN0cnVjdCBpZWVlODAyMTFfaHcgKmh3LFxcbiAzMDQ6XFx0XFx0XFx0XFx0XFx0ICAgICAgc3RydWN0IGllZWU4MDIxMV9jaGFuY3R4X2NvbmYgKmN0eCxcXG4gMzA1OlxcdFxcdFxcdFxcdFxcdCAgICAgIHUzMiBjaGFuZ2VkKVxcbiAzMDY6XFx0e1xcbiAzMDc6XFx0XFx0c3RydWN0IGllZWU4MDIxMV9sb2NhbCAqbG9jYWwgPSBod190b19sb2NhbChodyk7XFxuIDMwODpcXHRcXG4gMzA5OlxcdFxcdGxvY2FsLVxcdTAwM2Vody5jb25mLnJhZGFyX2VuYWJsZWQgPSBjdHgtXFx1MDAzZXJhZGFyX2VuYWJsZWQ7XFxuIDMxMDpcXHRcXG4gMzExOlxcdFxcdF9pZWVlODAyMTFfaHdfY29uZl9jaGFuKGxvY2FsLCBjdHgpO1xcbiAzMTI6XFx0fVxcbiAzMTM6XFx0RVhQT1JUX1NZTUJPTChpZWVlODAyMTFfZW11bGF0ZV9jaGFuZ2VfY2hhbmN0eCk7XFxuIDMxNDpcXHRcXG4gMzE1OlxcdGludCBpZWVlODAyMTFfZW11bGF0ZV9zd2l0Y2hfdmlmX2NoYW5jdHgoc3RydWN0IGllZWU4MDIxMV9odyAqaHcsXFxuIDMxNjpcXHRcXHRcXHRcXHRcXHRcXHQgc3RydWN0IGllZWU4MDIxMV92aWZfY2hhbmN0eF9zd2l0Y2ggKnZpZnMsXFxuIDMxNzpcXHRcXHRcXHRcXHRcXHRcXHQgaW50IG5fdmlmcyxcXG4gMzE4OlxcdFxcdFxcdFxcdFxcdFxcdCBlbnVtIGllZWU4MDIxMV9jaGFuY3R4X3N3aXRjaF9tb2RlIG1vZGUpXFxuIDMxOTpcXHR7XFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTI5VDEwOjIyOjQ4LjMxNDYxNDI4N1oiLCJTZXEiOjcsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy43LWZsYXNoIiwiRHVyYXRpb24iOjU0OTc1Mjc2ODYsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IkhlcmUncyBteSBhdHRlbXB0IGF0IHN1bW1hcml6aW5nIHRoZSB0aG91Z2h0IHByb2Nlc3MsIHRhaWxvcmVkIGZvciBhbiBleHBlcnQgYXVkaWVuY2U6XG5cbioqSW52ZXN0aWdhdGluZyBLY29uZmlnIERlcGVuZGVuY2llcyBmb3IgbWFjODAyMTEgYW5kIG1hYzgwMjExX2h3c2ltKipcblxuT2theSwgc28gSSBuZWVkIHRvIGZpZ3VyZSBvdXQgZXhhY3RseSBob3cgdGhlIEtjb25maWcgc3RydWN0dXJlIGRpY3RhdGVzIHRoZSBpbmNsdXNpb24gKG9yIGV4Y2x1c2lvbikgb2YgYG1hYzgwMjExYCBhbmQgc3BlY2lmaWNhbGx5LCB0aGUgYG1hYzgwMjExX2h3c2ltYCBtb2R1bGUuIEl0J3MgdGltZSB0byBkaWcgaW50byB0aGUgcmVsZXZhbnQgS2NvbmZpZyBmaWxlcy4gSSdtIGFzc3VtaW5nIHRoZXJlJ3MgYSBkZXBlbmRlbmN5IGNoYWluIEkgbmVlZCB0byB0cmFjZS4gSSdsbCBzdGFydCBieSBzZWFyY2hpbmcgZm9yIGFueSBkaXJlY3QgcmVmZXJlbmNlcyB0byB0aG9zZSBzeW1ib2xzIOKAkyBgTUFDODAyMTFgIGFuZCBgTUFDODAyMTFfSFdTSU1gIC0gd2l0aGluIHRoZSBtYWlubGluZSBrZXJuZWwgc291cmNlLiBJIGV4cGVjdCB0byBmaW5kIHRoZXNlIHN5bWJvbHMgaW4gdGhlIGB3aXJlbGVzc2Agb3IgYG5ldGAgZGlyZWN0b3JpZXMsIG9yIG1heWJlIGV2ZW4gZGVlcGVyIGluIHRoZSB0cmVlLCBkZXBlbmRpbmcgb24gaG93IHRoZXkndmUgc3RydWN0dXJlZCB0aGlzIG1vZHVsZS4gSSdtIGxvb2tpbmcgZm9yIGNvbmRpdGlvbnMsIGBkZXBlbmRzIG9uYCwgb3IgYHNlbGVjdGAgc3RhdGVtZW50cyB0aGF0IGNvbnRyb2wgd2hldGhlciB0aGVzZSBvcHRpb25zIGdldCBidWlsdC4gSSdsbCBwYXkgY2xvc2UgYXR0ZW50aW9uIHRvIHRoZSBjb250ZXh0LCB0byBzZWUgaWYgdGhleSBhcmUgcGFydCBvZiBhIG1vcmUgZ2VuZXJhbCBhcmNoaXRlY3R1cmFsIGNvbmZpZ3VyYXRpb24gb3IgYSBtb3JlIGhhcmR3YXJlLXNwZWNpZmljIG9uZS4gVGhlIGBod3NpbWAgbW9kdWxlLCBpbiBwYXJ0aWN1bGFyLCBzaG91bGQgaGF2ZSBpdHMgb3duIHNldCBvZiBkZXBlbmRlbmNpZXMsIHdoaWNoIG1heSBpbiB0dXJuIGRlcGVuZCBvbiBvdGhlciBmZWF0dXJlcyBiZWluZyBlbmFibGVkIGZpcnN0LiBJJ2xsIG5lZWQgdG8gdW5kZXJzdGFuZCB0aGUgbG9naWMgYmVoaW5kIHRob3NlIGRlcGVuZGVuY2llcywgZm9yIGV4YW1wbGUsIGlzIHRoaXMgZGVwZW5kZW50IG9uIGFub3RoZXIgbW9kdWxlIHRoYXQgdXNlcyB0aGUgc2FtZSBmdW5jdGlvbmFsaXR5PyBJcyBpdCB0aWVkIHRvIGEgc3BlY2lmaWMgYnVpbGQgZW52aXJvbm1lbnQ/IEknbGwgcHJvYmFibHkgY3Jvc3MtcmVmZXJlbmNlIHdpdGggYW55IGV4aXN0aW5nIGRvY3VtZW50YXRpb24gb3IgbWFpbGluZyBsaXN0IGRpc2N1c3Npb25zIGFib3V0IHRoZXNlIG1vZHVsZXMgdG8gc2VlIGlmIHRoZXJlIGFyZSBhbnkga25vd24gZ290Y2hhcyBvciBjb21tb24gY29uZmlndXJhdGlvbnMuIFRoaXMgZmVlbHMgbGlrZSBhIHN0cmFpZ2h0Zm9yd2FyZCwgaWYgc2xpZ2h0bHkgdGVkaW91cywgcHJvY2Vzcy4gSXQncyBhbGwgYWJvdXQgZm9sbG93aW5nIHRoZSBLY29uZmlnIGxvZ2ljLCBvbmUgZGVwZW5kZW5jeSBhdCBhIHRpbWUsIHRvIGJ1aWxkIGEgY29tcGxldGUgcGljdHVyZSBvZiB0aGUgYnVpbGQtdGltZSBjb25maWd1cmF0aW9uLlxuXG5cbiIsIklucHV0VG9rZW5zIjoxNDQzOSwiT3V0cHV0VG9rZW5zIjozNSwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjI2LCJUb29sQ2FsbHMiOlsicmVhZC1maWxlIl19LHsiU3RhcnRlZCI6IjIwMjYtMDgtMjlUMTA6MjI6NTMuODEyMTQ0MTgzWiIsIlNlcSI6OCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjY5MTk5NTM1LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcImNvbmZpZyBNQUM4MDIxMVwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJuZXQvbWFjODAyMTFcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwibmV0L21hYzgwMjExL0tjb25maWctMS0jIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wLW9ubHlcXG5uZXQvbWFjODAyMTEvS2NvbmZpZzoyOmNvbmZpZyBNQUM4MDIxMVxcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTMtXFx0dHJpc3RhdGUgXFxcIkdlbmVyaWMgSUVFRSA4MDIuMTEgTmV0d29ya2luZyBTdGFjayAobWFjODAyMTEpXFxcIlxcbi0tXFxubmV0L21hYzgwMjExL0tjb25maWc9MTk9aWYgTUFDODAyMTEgIT0gblxcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTIwLVxcbm5ldC9tYWM4MDIxMS9LY29uZmlnOjIxOmNvbmZpZyBNQUM4MDIxMV9IQVNfUkNcXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0yMi1cXHRib29sXFxubmV0L21hYzgwMjExL0tjb25maWctMjMtXFxubmV0L21hYzgwMjExL0tjb25maWc6MjQ6Y29uZmlnIE1BQzgwMjExX1JDX01JTlNUUkVMXFxubmV0L21hYzgwMjExL0tjb25maWctMjUtXFx0Ym9vbCBcXFwiTWluc3RyZWxcXFwiIGlmIEVYUEVSVFxcbi0tXFxubmV0L21hYzgwMjExL0tjb25maWc9MzE9Y2hvaWNlXFxuLS1cXG5uZXQvbWFjODAyMTEvS2NvbmZpZy00MC1cXG5uZXQvbWFjODAyMTEvS2NvbmZpZzo0MTpjb25maWcgTUFDODAyMTFfUkNfREVGQVVMVF9NSU5TVFJFTFxcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTQyLVxcdGJvb2wgXFxcIk1pbnN0cmVsXFxcIlxcbi0tXFxubmV0L21hYzgwMjExL0tjb25maWc9NDg9ZW5kY2hvaWNlXFxubmV0L21hYzgwMjExL0tjb25maWctNDktXFxubmV0L21hYzgwMjExL0tjb25maWc6NTA6Y29uZmlnIE1BQzgwMjExX1JDX0RFRkFVTFRcXG5uZXQvbWFjODAyMTEvS2NvbmZpZy01MS1cXHRzdHJpbmdcXG4tLVxcbm5ldC9tYWM4MDIxMS9LY29uZmlnPTU3PWNvbW1lbnQgXFxcIlNvbWUgd2lyZWxlc3MgZHJpdmVycyByZXF1aXJlIGEgcmF0ZSBjb250cm9sIGFsZ29yaXRobVxcXCJcXG4tLVxcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTU5LVxcbm5ldC9tYWM4MDIxMS9LY29uZmlnOjYwOmNvbmZpZyBNQUM4MDIxMV9LVU5JVF9URVNUXFxubmV0L21hYzgwMjExL0tjb25maWctNjEtXFx0dHJpc3RhdGUgXFxcIktVbml0IHRlc3RzIGZvciBtYWM4MDIxMVxcXCIgaWYgIUtVTklUX0FMTF9URVNUU1xcbi0tXFxubmV0L21hYzgwMjExL0tjb25maWctNjktXFxubmV0L21hYzgwMjExL0tjb25maWc6NzA6Y29uZmlnIE1BQzgwMjExX01FU0hcXG5uZXQvbWFjODAyMTEvS2NvbmZpZy03MS1cXHRib29sIFxcXCJFbmFibGUgbWFjODAyMTEgbWVzaCBuZXR3b3JraW5nIHN1cHBvcnRcXFwiXFxuLS1cXG5uZXQvbWFjODAyMTEvS2NvbmZpZy03OC1cXG5uZXQvbWFjODAyMTEvS2NvbmZpZzo3OTpjb25maWcgTUFDODAyMTFfTEVEU1xcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTgwLVxcdGJvb2wgXFxcIkVuYWJsZSBMRUQgdHJpZ2dlcnNcXFwiXFxuLS1cXG5uZXQvbWFjODAyMTEvS2NvbmZpZy04Ny1cXG5uZXQvbWFjODAyMTEvS2NvbmZpZzo4ODpjb25maWcgTUFDODAyMTFfREVCVUdGU1xcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTg5LVxcdGJvb2wgXFxcIkV4cG9ydCBtYWM4MDIxMSBpbnRlcm5hbHMgaW4gRGVidWdGU1xcXCJcXG4tLVxcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTk2LVxcbm5ldC9tYWM4MDIxMS9LY29uZmlnOjk3OmNvbmZpZyBNQUM4MDIxMV9NRVNTQUdFX1RSQUNJTkdcXG5uZXQvbWFjODAyMTEvS2NvbmZpZy05OC1cXHRib29sIFxcXCJUcmFjZSBhbGwgbWFjODAyMTEgZGVidWcgbWVzc2FnZXNcXFwiXFxuLS1cXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0xMDktXFxubmV0L21hYzgwMjExL0tjb25maWc6MTEwOm1lbnVjb25maWcgTUFDODAyMTFfREVCVUdfTUVOVVxcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTExMS1cXHRib29sIFxcXCJTZWxlY3QgbWFjODAyMTEgZGVidWdnaW5nIGZlYXR1cmVzXFxcIlxcbi0tXFxubmV0L21hYzgwMjExL0tjb25maWctMTE1LVxcbm5ldC9tYWM4MDIxMS9LY29uZmlnOjExNjpjb25maWcgTUFDODAyMTFfTk9JTkxJTkVcXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0xMTctXFx0Ym9vbCBcXFwiRG8gbm90IGlubGluZSBUWC9SWCBoYW5kbGVyc1xcXCJcXG4tLVxcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTEzMS1cXG5uZXQvbWFjODAyMTEvS2NvbmZpZzoxMzI6Y29uZmlnIE1BQzgwMjExX1ZFUkJPU0VfREVCVUdcXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0xMzMtXFx0Ym9vbCBcXFwiVmVyYm9zZSBkZWJ1Z2dpbmcgb3V0cHV0XFxcIlxcbi0tXFxubmV0L21hYzgwMjExL0tjb25maWctMTQyLVxcbm5ldC9tYWM4MDIxMS9LY29uZmlnOjE0Mzpjb25maWcgTUFDODAyMTFfTUxNRV9ERUJVR1xcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTE0NC1cXHRib29sIFxcXCJWZXJib3NlIG1hbmFnZWQgTUxNRSBvdXRwdXRcXFwiXFxuLS1cXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0xNTMtXFxubmV0L21hYzgwMjExL0tjb25maWc6MTU0OmNvbmZpZyBNQUM4MDIxMV9TVEFfREVCVUdcXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0xNTUtXFx0Ym9vbCBcXFwiVmVyYm9zZSBzdGF0aW9uIGRlYnVnZ2luZ1xcXCJcXG4tLVxcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTE2Mi1cXG5uZXQvbWFjODAyMTEvS2NvbmZpZzoxNjM6Y29uZmlnIE1BQzgwMjExX0hUX0RFQlVHXFxubmV0L21hYzgwMjExL0tjb25maWctMTY0LVxcdGJvb2wgXFxcIlZlcmJvc2UgSFQgZGVidWdnaW5nXFxcIlxcbi0tXFxubmV0L21hYzgwMjExL0tjb25maWctMTc0LVxcbm5ldC9tYWM4MDIxMS9LY29uZmlnOjE3NTpjb25maWcgTUFDODAyMTFfT0NCX0RFQlVHXFxubmV0L21hYzgwMjExL0tjb25maWctMTc2LVxcdGJvb2wgXFxcIlZlcmJvc2UgT0NCIGRlYnVnZ2luZ1xcXCJcXG4tLVxcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTE4NS1cXG5uZXQvbWFjODAyMTEvS2NvbmZpZzoxODY6Y29uZmlnIE1BQzgwMjExX0lCU1NfREVCVUdcXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0xODctXFx0Ym9vbCBcXFwiVmVyYm9zZSBJQlNTIGRlYnVnZ2luZ1xcXCJcXG4tLVxcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTE5Ni1cXG5uZXQvbWFjODAyMTEvS2NvbmZpZzoxOTc6Y29uZmlnIE1BQzgwMjExX1BTX0RFQlVHXFxubmV0L21hYzgwMjExL0tjb25maWctMTk4LVxcdGJvb2wgXFxcIlZlcmJvc2UgcG93ZXJzYXZlIG1vZGUgZGVidWdnaW5nXFxcIlxcbi0tXFxubmV0L21hYzgwMjExL0tjb25maWctMjA4LVxcbm5ldC9tYWM4MDIxMS9LY29uZmlnOjIwOTpjb25maWcgTUFDODAyMTFfTVBMX0RFQlVHXFxubmV0L21hYzgwMjExL0tjb25maWctMjEwLVxcdGJvb2wgXFxcIlZlcmJvc2UgbWVzaCBwZWVyIGxpbmsgZGVidWdnaW5nXFxcIlxcbi0tXFxubmV0L21hYzgwMjExL0tjb25maWctMjIxLVxcbm5ldC9tYWM4MDIxMS9LY29uZmlnOjIyMjpjb25maWcgTUFDODAyMTFfTVBBVEhfREVCVUdcXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0yMjMtXFx0Ym9vbCBcXFwiVmVyYm9zZSBtZXNoIHBhdGggZGVidWdnaW5nXFxcIlxcbi0tXFxubmV0L21hYzgwMjExL0tjb25maWctMjM0LVxcbm5ldC9tYWM4MDIxMS9LY29uZmlnOjIzNTpjb25maWcgTUFDODAyMTFfTUhXTVBfREVCVUdcXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0yMzYtXFx0Ym9vbCBcXFwiVmVyYm9zZSBtZXNoIEhXTVAgcm91dGluZyBkZWJ1Z2dpbmdcXFwiXFxuLS1cXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0yNDctXFxubmV0L21hYzgwMjExL0tjb25maWc6MjQ4OmNvbmZpZyBNQUM4MDIxMV9NRVNIX1NZTkNfREVCVUdcXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0yNDktXFx0Ym9vbCBcXFwiVmVyYm9zZSBtZXNoIHN5bmNocm9uaXphdGlvbiBkZWJ1Z2dpbmdcXFwiXFxuLS1cXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0yNTgtXFxubmV0L21hYzgwMjExL0tjb25maWc6MjU5OmNvbmZpZyBNQUM4MDIxMV9NRVNIX0NTQV9ERUJVR1xcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTI2MC1cXHRib29sIFxcXCJWZXJib3NlIG1lc2ggY2hhbm5lbCBzd2l0Y2ggZGVidWdnaW5nXFxcIlxcbi0tXFxubmV0L21hYzgwMjExL0tjb25maWctMjY5LVxcbm5ldC9tYWM4MDIxMS9LY29uZmlnOjI3MDpjb25maWcgTUFDODAyMTFfTUVTSF9QU19ERUJVR1xcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTI3MS1cXHRib29sIFxcXCJWZXJib3NlIG1lc2ggcG93ZXJzYXZlIGRlYnVnZ2luZ1xcXCJcXG4tLVxcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTI4MC1cXG5uZXQvbWFjODAyMTEvS2NvbmZpZzoyODE6Y29uZmlnIE1BQzgwMjExX1RETFNfREVCVUdcXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0yODItXFx0Ym9vbCBcXFwiVmVyYm9zZSBURExTIGRlYnVnZ2luZ1xcXCJcXG4tLVxcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTI5Mi1cXG5uZXQvbWFjODAyMTEvS2NvbmZpZzoyOTM6Y29uZmlnIE1BQzgwMjExX0RFQlVHX0NPVU5URVJTXFxubmV0L21hYzgwMjExL0tjb25maWctMjk0LVxcdGJvb2wgXFxcIkV4dHJhIHN0YXRpc3RpY3MgZm9yIFRYL1JYIGRlYnVnZ2luZ1xcXCJcXG4tLVxcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTMwNy1cXG5uZXQvbWFjODAyMTEvS2NvbmZpZzozMDg6Y29uZmlnIE1BQzgwMjExX1NUQV9IQVNIX01BWF9TSVpFXFxubmV0L21hYzgwMjExL0tjb25maWctMzA5LVxcdGludCBcXFwiU3RhdGlvbiBoYXNoIHRhYmxlIG1heGltdW0gc2l6ZVxcXCIgaWYgTUFDODAyMTFfREVCVUdfTUVOVVxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0yOVQxMDoyMjo1My44ODEzNDc5OThaIiwiU2VxIjo5LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuNy1mbGFzaCIsIkR1cmF0aW9uIjoxMDI2NjU4NzQ2MywiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiSGVyZSdzIG15IGFuYWx5c2lzIG9mIHdoYXQgSSdtIHRoaW5raW5nLCByZW5kZXJlZCBhcyBhIGZpcnN0LXBlcnNvbiBzdW1tYXJ5LCBrZWVwaW5nIGluIG1pbmQgbXkgZmllbGQgZXhwZXJ0aXNlOlxuXG4qKkRpdmluZyBpbnRvIHRoZSBNQUM4MDIxMSBEZXBlbmRlbmNpZXMqKlxuXG5BbHJpZ2h0LCBsZXQncyBnZXQgZG93biB0byBicmFzcyB0YWNrcy4gSSBuZWVkIHRvIHVuZGVyc3RhbmQgdGhlIGRlcGVuZGVuY2llcyBvZiBgTUFDODAyMTFgIHdpdGhpbiB0aGUga2VybmVsIGNvbmZpZ3VyYXRpb24gc3lzdGVtLCBzcGVjaWZpY2FsbHkgaW4gdGhlIGBuZXQvbWFjODAyMTEvS2NvbmZpZ2AgZmlsZS4gTXkgZ29hbCBoZXJlIGlzIHRvIGdldCBhIGhhbmRsZSBvbiB3aGF0IG90aGVyIGtlcm5lbCBmZWF0dXJlcywgZHJpdmVycywgb3IgbW9kdWxlcyBhcmUgaW50cmluc2ljYWxseSBsaW5rZWQgdG8gYE1BQzgwMjExYC4gVGhpcyBpcyBpbXBvcnRhbnQgZm9yIGEgd2hvbGUgYnVuY2ggb2YgcmVhc29ucy5cblxuRmlyc3RseSwgdW5kZXJzdGFuZGluZyB0aGVzZSBkZXBlbmRlbmNpZXMgaGVscHMgbWUgZ3Jhc3AgdGhlIG92ZXJhbGwgYXJjaGl0ZWN0dXJlIG9mIHRoZSB3aXJlbGVzcyBuZXR3b3JraW5nIHN0YWNrLiBJJ2xsIG5lZWQgdGhpcyB3aGVuIEknbSBkZWJ1Z2dpbmcgZHJpdmVyIGlzc3VlcywgY29uc2lkZXJpbmcgZmVhdHVyZSBtb2RpZmljYXRpb25zLCBvciBldmFsdWF0aW5nIHRoZSBpbXBhY3Qgb2YgbmV3IHdpcmVsZXNzIHN0YW5kYXJkcy5cblxuU2Vjb25kLCBpdCBnaXZlcyBtZSBpbnNpZ2h0IGludG8gdGhlIHJlc291cmNlIG5lZWRzIG9mIGBNQUM4MDIxMWAuIElmIGl0IHJlbGllcyBoZWF2aWx5IG9uIG90aGVyIGNvbXBsZXggc3Vic3lzdGVtcywgdGhhdCB0ZWxscyBtZSBzb21ldGhpbmcgYWJvdXQgaXRzIG1lbW9yeSBmb290cHJpbnQsIHBvdGVudGlhbCBjb250ZW50aW9uIHBvaW50cywgYW5kIGdlbmVyYWwgb3ZlcmhlYWQuIFRoaXMga2luZCBvZiBrbm93bGVkZ2UgaXMgY3J1Y2lhbCBmb3Igb3B0aW1pemluZyBzeXN0ZW0gcGVyZm9ybWFuY2UsIGVzcGVjaWFsbHkgb24gcmVzb3VyY2UtY29uc3RyYWluZWQgZW1iZWRkZWQgc3lzdGVtcy5cblxuSSdtIGFsc28gaW50ZXJlc3RlZCBpbiBob3cgdGhlc2UgZGVwZW5kZW5jaWVzIG1pZ2h0IGFmZmVjdCB0aGUgcG9ydGFiaWxpdHkgYW5kIGZsZXhpYmlsaXR5IG9mIGBNQUM4MDIxMWAuIElmIGl0J3MgdGlnaHRseSBjb3VwbGVkIHdpdGggYSBjZXJ0YWluIGhhcmR3YXJlIGFic3RyYWN0aW9uIGxheWVyIChIQUwpIG9yIHNwZWNpZmljIG5ldHdvcmsgZmVhdHVyZXMsIHRoYXQgaW5mbHVlbmNlcyBob3cgZWFzaWx5IGl0IGNhbiBiZSBhZGFwdGVkIHRvIG5ldyBoYXJkd2FyZSBwbGF0Zm9ybXMgb3IgZGlmZmVyZW50IG5ldHdvcmsgY29uZmlndXJhdGlvbnMuIEkgd2FudCB0byBrZWVwIHRoaXMgaW4gbWluZC5cblxuRmluYWxseSwgSSdtIHRoaW5raW5nIGFib3V0IHBvdGVudGlhbCBidWlsZCBjb25maWd1cmF0aW9ucy4gV2hhdCBhcmUgdGhlIHZhcmlvdXMgc2NlbmFyaW9zLCB3aGVyZSBmZWF0dXJlcyBhcmUgZW5hYmxlZCBvciBkaXNhYmxlZCwgYW5kIGhvdyBhcmUgdGhlIGRlcGVuZGVuY2llcyByZXNvbHZlZD8gVGhpcyBpcyBrZXkgZm9yIGNyZWF0aW5nIGVmZmljaWVudCwgdGFpbG9yZWQga2VybmVsIGJ1aWxkcyBmb3Igc3BlY2lmaWMgdXNlIGNhc2VzLiBTbywgSSBuZWVkIHRvIGdldCB0aGlzIG1hcCBvZiBkZXBlbmRlbmNpZXMgY2xlYXIgaW4gbXkgaGVhZC4gTGV0J3Mgc2VlIHdoYXQgdGhhdCBgS2NvbmZpZ2AgZmlsZSBob2xkcyFcblxuXG4iLCJJbnB1dFRva2VucyI6MTcwNjksIk91dHB1dFRva2VucyI6MzcsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoyOSwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wOC0yOVQxMDoyMzowNC4xNDc5Mzg4MTFaIiwiU2VxIjoxMCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoicmVhZC1maWxlIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NzE4ODAsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJGaWxlXCI6IFwibmV0L21hYzgwMjExL0tjb25maWdcIixcbiAgXCJGaXJzdExpbmVcIjogMSxcbiAgXCJMaW5lQ291bnRcIjogMzBcbn0iLCJSZXN1bHRzIjoie1xuICBcIkNvbnRlbnRzXCI6IFwiICAgMTpcXHQjIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wLW9ubHlcXG4gICAyOlxcdGNvbmZpZyBNQUM4MDIxMVxcbiAgIDM6XFx0XFx0dHJpc3RhdGUgXFxcIkdlbmVyaWMgSUVFRSA4MDIuMTEgTmV0d29ya2luZyBTdGFjayAobWFjODAyMTEpXFxcIlxcbiAgIDQ6XFx0XFx0ZGVwZW5kcyBvbiBDRkc4MDIxMVxcbiAgIDU6XFx0XFx0c2VsZWN0IENSWVBUT1xcbiAgIDY6XFx0XFx0c2VsZWN0IENSWVBUT19MSUJfQUVTX0NCQ19NQUNTXFxuICAgNzpcXHRcXHRzZWxlY3QgQ1JZUFRPX0xJQl9BUkM0XFxuICAgODpcXHRcXHRzZWxlY3QgQ1JZUFRPX0FFU1xcbiAgIDk6XFx0XFx0c2VsZWN0IENSWVBUT19DQ01cXG4gIDEwOlxcdFxcdHNlbGVjdCBDUllQVE9fR0NNXFxuICAxMTpcXHRcXHRzZWxlY3QgQ1JDMzJcXG4gIDEyOlxcdFxcdGhlbHBcXG4gIDEzOlxcdFxcdCAgVGhpcyBvcHRpb24gZW5hYmxlcyB0aGUgaGFyZHdhcmUgaW5kZXBlbmRlbnQgSUVFRSA4MDIuMTFcXG4gIDE0OlxcdFxcdCAgbmV0d29ya2luZyBzdGFjay5cXG4gIDE1OlxcdFxcbiAgMTY6XFx0Y29tbWVudCBcXFwiQ0ZHODAyMTEgbmVlZHMgdG8gYmUgZW5hYmxlZCBmb3IgTUFDODAyMTFcXFwiXFxuICAxNzpcXHRcXHRkZXBlbmRzIG9uIENGRzgwMjExPW5cXG4gIDE4OlxcdFxcbiAgMTk6XFx0aWYgTUFDODAyMTEgIT0gblxcbiAgMjA6XFx0XFxuICAyMTpcXHRjb25maWcgTUFDODAyMTFfSEFTX1JDXFxuICAyMjpcXHRcXHRib29sXFxuICAyMzpcXHRcXG4gIDI0OlxcdGNvbmZpZyBNQUM4MDIxMV9SQ19NSU5TVFJFTFxcbiAgMjU6XFx0XFx0Ym9vbCBcXFwiTWluc3RyZWxcXFwiIGlmIEVYUEVSVFxcbiAgMjY6XFx0XFx0c2VsZWN0IE1BQzgwMjExX0hBU19SQ1xcbiAgMjc6XFx0XFx0ZGVmYXVsdCB5XFxuICAyODpcXHRcXHRoZWxwXFxuICAyOTpcXHRcXHQgIFRoaXMgb3B0aW9uIGVuYWJsZXMgdGhlICdtaW5zdHJlbCcgVFggcmF0ZSBjb250cm9sIGFsZ29yaXRobVxcbiAgMzA6XFx0XFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTI5VDEwOjIzOjA0LjE0ODAxMzY5MVoiLCJTZXEiOjExLCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuNy1mbGFzaCIsIkR1cmF0aW9uIjoyMzkyMjUwNzAzNSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiSGVyZSdzIG15IHN1bW1hcnksIGFzIHRob3VnaCBJJ20gdGhpbmtpbmcgaXQ6XG5cbioqRGlnZ2luZyBpbnRvIHRoZSBLY29uZmlnIC0gU3BlY2lmaWNhbGx5LCBgTUFDODAyMTFfSFdTSU1gKipcblxuQWxyaWdodCwgdGltZSB0byBkaXZlIGRlZXBlci4gSSd2ZSBnb3QgYSBzcGVjaWZpYyBxdWVzdGlvbiBhYm91dCB0aGUgYE1BQzgwMjExX0hXU0lNYCBLY29uZmlnIGVudHJ5LiBJIG5lZWQgdG8gcmVmcmVzaCBteSB1bmRlcnN0YW5kaW5nIG9mIHdoZXJlIHRoaXMgZml0cyBpbnRvIHRoZSBicm9hZGVyIHBpY3R1cmUgb2YgdGhlIHdpcmVsZXNzIHN1YnN5c3RlbS4gV2hhdCBkZXBlbmRlbmNpZXMgZG9lcyBpdCBoYXZlPyBXaGF0IGRvZXMgZW5hYmxpbmcgaXQgYWN0dWFsbHkgKmRvKiBpbiB0aGUgY29kZT8gSSBzaG91bGQgcHJvYmFibHkgY3Jvc3MtcmVmZXJlbmNlIHRoaXMgd2l0aCB0aGUgcmVsZXZhbnQgc291cmNlIGZpbGVzIGFuZCBkb2N1bWVudGF0aW9uIHJlbGF0ZWQgdG8gdGhlIG1hYzgwMjExIGZyYW1ld29yay4gSSBoYXZlIGEgaHVuY2ggaXQgaXMgcmVsYXRlZCB0byBhIHNpbXVsYXRlZCBoYXJkd2FyZSBlbnZpcm9ubWVudCBhbmQgd2FudCB0byBjb25maXJtIG15IHVuZGVyc3RhbmRpbmcuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjE3OTI2LCJPdXRwdXRUb2tlbnMiOjI1LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MjAsIlRvb2xDYWxscyI6WyJyZWFkLWZpbGUiXX0seyJTdGFydGVkIjoiMjAyNi0wOC0yOVQxMDoyMzoyOC4wNzA1MjQyMTZaIiwiU2VxIjoxMiwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjE5NjY5OTA3OTMsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiY29uZmlnIE1BQzgwMjExX0hXU0lNXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL3ZpcnR1YWwvS2NvbmZpZzoxOmNvbmZpZyBNQUM4MDIxMV9IV1NJTVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3ZpcnR1YWwvS2NvbmZpZy0yLVxcdHRyaXN0YXRlIFxcXCJTaW11bGF0ZWQgcmFkaW8gdGVzdGluZyB0b29sIGZvciBtYWM4MDIxMVxcXCJcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMjlUMTA6MjM6MzAuMDM3NTI1MTU4WiIsIlNlcSI6MTMsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy43LWZsYXNoIiwiRHVyYXRpb24iOjY2MDkzNzE5NDksIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IkhlcmUncyBteSB0YWtlIG9uIHRob3NlIHRob3VnaHRzLCB0YWlsb3JlZCBmb3IgYW4gZXhwZXJ0IGF1ZGllbmNlOlxuXG4qKkRpdmluZyBpbnRvIHRoZSBWaXJ0dWFsIFdpcmVsZXNzIERyaXZlciBDb25maWd1cmF0aW9uKipcblxuT2theSwgc28gd2UncmUgbG9va2luZyBhdCBgZHJpdmVycy9uZXQvd2lyZWxlc3MvdmlydHVhbC9LY29uZmlnYC4gUmlnaHQsIHNvIHRoaXMgaXMgd2hlcmUgdGhlIGNvcmUgY29uZmlndXJhdGlvbiBvcHRpb25zIGZvciB0aGUgdmlydHVhbCB3aXJlbGVzcyBkcml2ZXIgYXJlIGRlZmluZWQuIEknbSBpbW1lZGlhdGVseSBzY2FubmluZyBmb3IgdGhlIHVzdWFsIHN1c3BlY3RzOiB0aGUgbW9kdWxlIGVuYWJsZS9kaXNhYmxlLCBhbnkgc3BlY2lmaWMgZmVhdHVyZXMgb3IgcHJvdG9jb2wgc3VwcG9ydCB3ZSBtaWdodCB3YW50IHRvIHRvZ2dsZSBvbiBvciBvZmYgYXQgYnVpbGQgdGltZSwgYW5kLCBvZiBjb3Vyc2UsIHRoZSBkZXBlbmRlbmNpZXMgb24gb3RoZXIga2VybmVsIGNvbXBvbmVudHMuXG5cbkkgbmVlZCB0byB1bmRlcnN0YW5kIHdoYXQgYXNwZWN0cyBhcmUgY29uZmlndXJhYmxlLCBhcyB0aGlzIGRyaXZlciBpcywgYnkgZGVmaW5pdGlvbiwgYW4gYWJzdHJhY3Rpb24gbGF5ZXIuIElzIGl0IGp1c3QgYSBiYXNpYyBmcmFtZSBmb3IgdGVzdGluZyBvdGhlciB3aXJlbGVzcyBzdGFja3MsIG9yIGRvZXMgaXQgYWxzbyBleHBvc2Ugc29tZSBjb25maWd1cmFibGUgdmlydHVhbCBoYXJkd2FyZSBjaGFyYWN0ZXJpc3RpY3M/IEFyZSB0aGVyZSBzZXR0aW5ncyBmb3IgZW11bGF0aW5nIGRpZmZlcmVudCB3aXJlbGVzcyBzdGFuZGFyZHMsIG9yIGRpZmZlcmVudCByZWd1bGF0b3J5IGRvbWFpbnM/IEknbSBob3BpbmcgdG8gcXVpY2tseSBpZGVudGlmeSB0aGUgdmFyaWFibGVzIGFuZCBkZXBlbmRlbmNpZXMgdGhhdCBJJ2xsIG5lZWQgdG8gdHdlYWsgZm9yIG15IHNwZWNpZmljIHVzZSBjYXNlLCB3aGF0ZXZlciB0aGF0IG1pZ2h0IGJlIC0gbGlrZWx5IGVpdGhlciB0ZXN0aW5nIGEgd2lyZWxlc3Mgc3RhY2ssIG9yIHBvdGVudGlhbGx5IGV4dGVuZGluZyB0aGUgdmlydHVhbCBkcml2ZXIgd2l0aCBzb21lIGN1c3RvbSBmZWF0dXJlLlxuXG5JJ2xsIGJlIGxvb2tpbmcgY2FyZWZ1bGx5IGF0IHRoZSBkZWZhdWx0IHZhbHVlcywgYW55IGhlbHAgdGV4dCBwcm92aWRlZCwgYW5kLCBjcnVjaWFsbHksIGFueSByZWxhdGlvbnNoaXBzIGJldHdlZW4gdGhlIGNvbmZpZyBvcHRpb25zLiBBcmUgdGhlcmUgbXV0dWFsbHkgZXhjbHVzaXZlIG9wdGlvbnM/IEFyZSBzb21lIGZlYXR1cmVzIGRlcGVuZGVudCBvbiBvdGhlcnM/IEFuZCBhcmUgdGhlcmUgYW55IG9ic2N1cmUgc2V0dGluZ3MgYnVyaWVkIGluIHRoZXJlIHRoYXQgYXJlIGxpa2VseSB0byB0cmlwIG1lIHVwPyBJJ20gbG9va2luZyBmb3IgY2x1ZXMgYXMgdG8gaG93IHJvYnVzdCB0aGUgY29uZmlndXJhdGlvbiBpcyBhbmQgd2hldGhlciB0aGUgZGVzaWduIGlzIGZvcndhcmQgY29tcGF0aWJsZS5cblxuSW4gZXNzZW5jZSwgSSdtIHRyeWluZyB0byBnZXQgYSBtYXAgb2YgdGhlIGNvbmZpZ3VyYXRpb24gc3BhY2UgZm9yIHRoaXMgZHJpdmVyIHNvIEkgY2FuIGVmZmVjdGl2ZWx5IHVzZSBpdCBhcyBhIHRvb2wgb3IgZm91bmRhdGlvbi4gSSBhbHNvIGhvcGUgdGhlIG5hbWluZyBpcyBpbnR1aXRpdmUsIGFuZCB0aGF0IHRoZSBLY29uZmlnIGNvbnZlbnRpb25zIGhhdmUgYmVlbiBhZGhlcmVkIHRvLlxuXG5cbiIsIklucHV0VG9rZW5zIjoxODE5MywiT3V0cHV0VG9rZW5zIjozNiwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjE2LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTI5VDEwOjIzOjM2LjY0Njg5OTM0N1oiLCJTZXEiOjE0LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJyZWFkLWZpbGUiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo1NTM5MCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkZpbGVcIjogXCJkcml2ZXJzL25ldC93aXJlbGVzcy92aXJ0dWFsL0tjb25maWdcIixcbiAgXCJGaXJzdExpbmVcIjogMSxcbiAgXCJMaW5lQ291bnRcIjogMzBcbn0iLCJSZXN1bHRzIjoie1xuICBcIkNvbnRlbnRzXCI6IFwiICAgMTpcXHRjb25maWcgTUFDODAyMTFfSFdTSU1cXG4gICAyOlxcdFxcdHRyaXN0YXRlIFxcXCJTaW11bGF0ZWQgcmFkaW8gdGVzdGluZyB0b29sIGZvciBtYWM4MDIxMVxcXCJcXG4gICAzOlxcdFxcdGRlcGVuZHMgb24gTUFDODAyMTFcXG4gICA0OlxcdFxcdGhlbHBcXG4gICA1OlxcdFxcdCAgVGhpcyBkcml2ZXIgaXMgYSBkZXZlbG9wZXIgdGVzdGluZyB0b29sIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdFxcbiAgIDY6XFx0XFx0ICBJRUVFIDgwMi4xMSBuZXR3b3JraW5nIHN0YWNrIChtYWM4MDIxMSkgZnVuY3Rpb25hbGl0eS4gVGhpcyBpcyBub3RcXG4gICA3OlxcdFxcdCAgbmVlZGVkIGZvciBub3JtYWwgd2lyZWxlc3MgTEFOIHVzYWdlIGFuZCBpcyBvbmx5IGZvciB0ZXN0aW5nLiBTZWVcXG4gICA4OlxcdFxcdCAgRG9jdW1lbnRhdGlvbi9uZXR3b3JraW5nL21hYzgwMjExX2h3c2ltIGZvciBtb3JlIGluZm9ybWF0aW9uIG9uIGhvd1xcbiAgIDk6XFx0XFx0ICB0byB1c2UgdGhpcyB0b29sLlxcbiAgMTA6XFx0XFxuICAxMTpcXHRcXHQgIFRvIGNvbXBpbGUgdGhpcyBkcml2ZXIgYXMgYSBtb2R1bGUsIGNob29zZSBNIGhlcmU6IHRoZSBtb2R1bGUgd2lsbCBiZVxcbiAgMTI6XFx0XFx0ICBjYWxsZWQgbWFjODAyMTFfaHdzaW0uICBJZiB1bnN1cmUsIHNheSBOLlxcbiAgMTM6XFx0XFxuICAxNDpcXHRjb25maWcgVklSVF9XSUZJXFxuICAxNTpcXHRcXHR0cmlzdGF0ZSBcXFwiV2lmaSB3cmFwcGVyIGZvciBldGhlcm5ldCBkcml2ZXJzXFxcIlxcbiAgMTY6XFx0XFx0ZGVwZW5kcyBvbiBDRkc4MDIxMVxcbiAgMTc6XFx0XFx0aGVscFxcbiAgMTg6XFx0XFx0ICBUaGlzIG9wdGlvbiBhZGRzIHN1cHBvcnQgZm9yIGV0aGVybmV0IGNvbm5lY3Rpb25zIHRvIGFwcGVhciBhcyBpZiB0aGV5XFxuICAxOTpcXHRcXHQgIGFyZSB3aWZpIGNvbm5lY3Rpb25zIHRocm91Z2ggYSBzcGVjaWFsIHJ0bmV0bGluayBkZXZpY2UuXFxuICAyMDpcXHRcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMjlUMTA6MjM6MzYuNjQ2OTU2NTE3WiIsIlNlcSI6MTUsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy43LWZsYXNoIiwiRHVyYXRpb24iOjc0MzM2NDQ0OTQsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqSW52ZXN0aWdhdGluZyBDaGFubmVsIENvbnRleHQgUmVtb3ZhbCoqXG5cbkFscmlnaHQsIGxldCdzIGRpdmUgaW50byB0aGlzLiBJIG5lZWQgdG8gdW5kZXJzdGFuZCB0aGUgaW50ZXJhY3Rpb24gYmV0d2VlbiBjaGFubmVsIGNvbmZpZ3VyYXRpb24gYW5kIGNvbnRleHQgcmVtb3ZhbCB3aXRoaW4gdGhlIDgwMi4xMSBzdGFjay4gTXkgZmlyc3QgdGhvdWdodCBpcyB0byB0cmFjZSB0aGUgZXhlY3V0aW9uIHBhdGguIEknbSBnb2luZyB0byBzdGFydCBieSBleGFtaW5pbmcgdGhlIGZ1bmN0aW9ucyBgX2llZWU4MDIxMV9od19jb25mX2NoYW5gIGFuZCBgaWVlZTgwMjExX2VtdWxhdGVfcmVtb3ZlX2NoYW5jdHhgLiBJIG5lZWQgdG8gZmlndXJlIG91dCB3aGF0IGVhY2ggb2YgdGhlc2UgZnVuY3Rpb25zIGRvZXMgaW5kaXZpZHVhbGx5LCBhbmQgd2hlcmUgdGhlIG92ZXJsYXAgaXMgaW4gdGhlaXIgdXNlLiBUaGlzIHNlZW1zIHRvIGJlIHRoZSBjcml0aWNhbCBhcmVhIG9mIGludGVyZXN0LiBUaGVuLCBJIHdpbGwgYWxzbyB3YW50IHRvIGludmVzdGlnYXRlIHRoZSBjb2RlIGFyb3VuZCBgbmV0L21hYzgwMjExL21haW4uY2AgbGluZXMgMjQwLTI4MC4gSSBzdXNwZWN0IHRoaXMgd2lsbCBiZSB3aGVyZSB0aGUgY29yZSBsb2dpYyByZWxhdGVkIHRvIHRoZXNlIGNoYW5uZWwgbWFuYWdlbWVudCBvcGVyYXRpb25zIHdpbGwgYmUuIEJ5IGV4YW1pbmluZyB0aGVzZSBmdW5jdGlvbnMgYW5kIHRoZSBzdXJyb3VuZGluZyBjb250ZXh0LCBJIHNob3VsZCBiZSBhYmxlIHRvIGZvcm0gYSBjbGVhciBwaWN0dXJlIG9mIGhvdyBjaGFubmVsIGNvbnRleHRzIGFyZSBtYW5hZ2VkIGFuZCwgbW9yZSBzcGVjaWZpY2FsbHksIHJlbW92ZWQuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjE4OTE4LCJPdXRwdXRUb2tlbnMiOjQwLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6NzMsIlRvb2xDYWxscyI6WyJyZWFkLWZpbGUiXX0seyJTdGFydGVkIjoiMjAyNi0wOC0yOVQxMDoyMzo0NC4wODA2MDQzNTFaIiwiU2VxIjoxNiwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoicmVhZC1maWxlIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MTE2NDUwLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRmlsZVwiOiBcIm5ldC9tYWM4MDIxMS9tYWluLmNcIixcbiAgXCJGaXJzdExpbmVcIjogMjQwLFxuICBcIkxpbmVDb3VudFwiOiA1MFxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiQ29udGVudHNcIjogXCIgMjQwOlxcdH1cXG4gMjQxOlxcdFxcbiAyNDI6XFx0aW50IGllZWU4MDIxMV9od19jb25mX2NoYW4oc3RydWN0IGllZWU4MDIxMV9sb2NhbCAqbG9jYWwpXFxuIDI0MzpcXHR7XFxuIDI0NDpcXHRcXHRzdHJ1Y3QgaWVlZTgwMjExX2NoYW5jdHggKmN0eDtcXG4gMjQ1OlxcdFxcbiAyNDY6XFx0XFx0Y3R4ID0gbGlzdF9maXJzdF9lbnRyeV9vcl9udWxsKFxcdTAwMjZsb2NhbC1cXHUwMDNlY2hhbmN0eF9saXN0LFxcbiAyNDc6XFx0XFx0XFx0XFx0XFx0ICAgICAgIHN0cnVjdCBpZWVlODAyMTFfY2hhbmN0eCxcXG4gMjQ4OlxcdFxcdFxcdFxcdFxcdCAgICAgICBsaXN0KTtcXG4gMjQ5OlxcdFxcbiAyNTA6XFx0XFx0cmV0dXJuIF9pZWVlODAyMTFfaHdfY29uZl9jaGFuKGxvY2FsLCBjdHggPyBcXHUwMDI2Y3R4LVxcdTAwM2Vjb25mIDogTlVMTCk7XFxuIDI1MTpcXHR9XFxuIDI1MjpcXHRcXG4gMjUzOlxcdHZvaWQgaWVlZTgwMjExX2h3X2NvbmZfaW5pdChzdHJ1Y3QgaWVlZTgwMjExX2xvY2FsICpsb2NhbClcXG4gMjU0OlxcdHtcXG4gMjU1OlxcdFxcdHUzMiBjaGFuZ2VkID0gfihJRUVFODAyMTFfQ09ORl9DSEFOR0VfQ0hBTk5FTCB8XFxuIDI1NjpcXHRcXHRcXHRcXHRJRUVFODAyMTFfQ09ORl9DSEFOR0VfUE9XRVIgfFxcbiAyNTc6XFx0XFx0XFx0XFx0SUVFRTgwMjExX0NPTkZfQ0hBTkdFX1NNUFMpO1xcbiAyNTg6XFx0XFxuIDI1OTpcXHRcXHRpZiAoV0FSTl9PTighbG9jYWwtXFx1MDAzZW9wZW5fY291bnQpKVxcbiAyNjA6XFx0XFx0XFx0cmV0dXJuO1xcbiAyNjE6XFx0XFxuIDI2MjpcXHRcXHRpZiAobG9jYWwtXFx1MDAzZWVtdWxhdGVfY2hhbmN0eCkge1xcbiAyNjM6XFx0XFx0XFx0c3RydWN0IGllZWU4MDIxMV9jaGFuY3R4ICpjdHg7XFxuIDI2NDpcXHRcXG4gMjY1OlxcdFxcdFxcdGN0eCA9IGxpc3RfZmlyc3RfZW50cnlfb3JfbnVsbChcXHUwMDI2bG9jYWwtXFx1MDAzZWNoYW5jdHhfbGlzdCxcXG4gMjY2OlxcdFxcdFxcdFxcdFxcdFxcdCAgICAgICBzdHJ1Y3QgaWVlZTgwMjExX2NoYW5jdHgsXFxuIDI2NzpcXHRcXHRcXHRcXHRcXHRcXHQgICAgICAgbGlzdCk7XFxuIDI2ODpcXHRcXG4gMjY5OlxcdFxcdFxcdGNoYW5nZWQgfD0gaWVlZTgwMjExX2NhbGNfaHdfY29uZl9jaGFuKGxvY2FsLFxcbiAyNzA6XFx0XFx0XFx0XFx0XFx0XFx0XFx0ICAgICAgIGN0eCA/IFxcdTAwMjZjdHgtXFx1MDAzZWNvbmYgOiBOVUxMKTtcXG4gMjcxOlxcdFxcdH1cXG4gMjcyOlxcdFxcbiAyNzM6XFx0XFx0V0FSTl9PTihkcnZfY29uZmlnKGxvY2FsLCAtMSwgY2hhbmdlZCkpO1xcbiAyNzQ6XFx0fVxcbiAyNzU6XFx0XFxuIDI3NjpcXHRpbnQgaWVlZTgwMjExX2VtdWxhdGVfYWRkX2NoYW5jdHgoc3RydWN0IGllZWU4MDIxMV9odyAqaHcsXFxuIDI3NzpcXHRcXHRcXHRcXHRcXHQgIHN0cnVjdCBpZWVlODAyMTFfY2hhbmN0eF9jb25mICpjdHgpXFxuIDI3ODpcXHR7XFxuIDI3OTpcXHRcXHRzdHJ1Y3QgaWVlZTgwMjExX2xvY2FsICpsb2NhbCA9IGh3X3RvX2xvY2FsKGh3KTtcXG4gMjgwOlxcdFxcbiAyODE6XFx0XFx0bG9jYWwtXFx1MDAzZWh3LmNvbmYucmFkYXJfZW5hYmxlZCA9IGN0eC1cXHUwMDNlcmFkYXJfZW5hYmxlZDtcXG4gMjgyOlxcdFxcbiAyODM6XFx0XFx0cmV0dXJuIF9pZWVlODAyMTFfaHdfY29uZl9jaGFuKGxvY2FsLCBjdHgpO1xcbiAyODQ6XFx0fVxcbiAyODU6XFx0RVhQT1JUX1NZTUJPTChpZWVlODAyMTFfZW11bGF0ZV9hZGRfY2hhbmN0eCk7XFxuIDI4NjpcXHRcXG4gMjg3OlxcdHZvaWQgaWVlZTgwMjExX2VtdWxhdGVfcmVtb3ZlX2NoYW5jdHgoc3RydWN0IGllZWU4MDIxMV9odyAqaHcsXFxuIDI4ODpcXHRcXHRcXHRcXHRcXHQgICAgICBzdHJ1Y3QgaWVlZTgwMjExX2NoYW5jdHhfY29uZiAqY3R4KVxcbiAyODk6XFx0e1xcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0yOVQxMDoyMzo0NC4wODA3MjI2MDFaIiwiU2VxIjoxNywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjctZmxhc2giLCJEdXJhdGlvbiI6NTczODY0NjI2MywiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiT2theSwgaGVyZSdzIG15IGludGVycHJldGF0aW9uIG9mIHRob3NlIHRob3VnaHRzLCBzdW1tYXJpemVkIGZyb20gYW4gZXhwZXJ0J3MgcGVyc3BlY3RpdmU6XG5cbioqSW52ZXN0aWdhdGluZyBDaGFubmVsIENvbnRleHQgUmVtb3ZhbCBpbiBtYWM4MDIxMSoqXG5cbkFscmlnaHQsIHNvIEknbSBsb29raW5nIGludG8gdGhlIGNoYW5uZWwgY29udGV4dCByZW1vdmFsIHJvdXRpbmVzIHdpdGhpbiBtYWM4MDIxMS4gU3BlY2lmaWNhbGx5LCBJIG5lZWQgdG8gdW5kZXJzdGFuZCB0aGUgY2FsbCBwYXRocyB0aGF0IGxlYWQgdG8gdGhlIGByZW1vdmVfY2hhbmN0eGAgY2FsbGJhY2sgb3IgdGhlIGBpZWVlODAyMTFfZW11bGF0ZV9yZW1vdmVfY2hhbmN0eGAgZnVuY3Rpb24uIEkgbmVlZCB0byB0cmFjZSBob3cgdGhlc2UgZnVuY3Rpb25zIGFyZSBiZWluZyBpbnZva2VkLiBJIG5lZWQgdG8gdW5kZXJzdGFuZCB0aGUgc2NlbmFyaW9zIGFuZCBjb25kaXRpb25zIHRoYXQgdHJpZ2dlciB0aGVtLCBhbmQsIGJ5IGV4dGVuc2lvbiwgZW5zdXJlIHRoYXQgY29udGV4dCByZW1vdmFsIGlzIGhhcHBlbmluZyBjb3JyZWN0bHkgYW5kIGVmZmljaWVudGx5LiBJJ20gZm9jdXNpbmcgb24gdGhlIGludGVyYWN0aW9uIGJldHdlZW4gbWFjODAyMTEgYW5kIHRoZSBkcml2ZXIuIFdoYXQgYXJlIHRoZSB0cmlnZ2Vycz8gV2hhdCBhcmUgdGhlIGltcGxpY2F0aW9ucz8gTGV0J3MgZmlndXJlIHRoaXMgb3V0LiBJJ2xsIG5lZWQgdG8gY2FyZWZ1bGx5IGV4YW1pbmUgdGhlIGNvZGUgZmxvdyBhbmQgdGhlIGRhdGEgc3RydWN0dXJlcyBpbnZvbHZlZCB0byBnZXQgYSBjb21wbGV0ZSBwaWN0dXJlLiBUaGlzIGlzIGtleSB0byBlbnN1cmluZyB0aGF0IHRoZSB3aXJlbGVzcyBzdGFjayBiZWhhdmVzIGFzIGV4cGVjdGVkLlxuXG5cbiIsIklucHV0VG9rZW5zIjoyMDA4MiwiT3V0cHV0VG9rZW5zIjozMiwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjM5LCJUb29sQ2FsbHMiOlsicmVhZC1maWxlIl19LHsiU3RhcnRlZCI6IjIwMjYtMDgtMjlUMTA6MjM6NDkuODE5MzcxNjU0WiIsIlNlcSI6MTgsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo1MTIzNzYwNiwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJyZW1vdmVfY2hhbmN0eFwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJuZXQvbWFjODAyMTFcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwibmV0L21hYzgwMjExL2NoYW4uYz0xMDgwPXN0YXRpYyB2b2lkIGllZWU4MDIxMV9kZWxfY2hhbmN0eChzdHJ1Y3QgaWVlZTgwMjExX2xvY2FsICpsb2NhbCxcXG4tLVxcbm5ldC9tYWM4MDIxMS9jaGFuLmMtMTA4NS1cXG5uZXQvbWFjODAyMTEvY2hhbi5jOjEwODY6XFx0ZHJ2X3JlbW92ZV9jaGFuY3R4KGxvY2FsLCBjdHgpO1xcbm5ldC9tYWM4MDIxMS9jaGFuLmMtMTA4Ny1cXG4tLVxcbm5ldC9tYWM4MDIxMS9kcml2ZXItb3BzLmg9MTAxND1zdGF0aWMgaW5saW5lIGludCBkcnZfYWRkX2NoYW5jdHgoc3RydWN0IGllZWU4MDIxMV9sb2NhbCAqbG9jYWwsXFxuLS1cXG5uZXQvbWFjODAyMTEvZHJpdmVyLW9wcy5oLTEwMzEtXFxubmV0L21hYzgwMjExL2RyaXZlci1vcHMuaDoxMDMyOnN0YXRpYyBpbmxpbmUgdm9pZCBkcnZfcmVtb3ZlX2NoYW5jdHgoc3RydWN0IGllZWU4MDIxMV9sb2NhbCAqbG9jYWwsXFxubmV0L21hYzgwMjExL2RyaXZlci1vcHMuaC0xMDMzLVxcdFxcdFxcdFxcdCAgICAgIHN0cnVjdCBpZWVlODAyMTFfY2hhbmN0eCAqY3R4KVxcbi0tXFxubmV0L21hYzgwMjExL2RyaXZlci1vcHMuaC0xMDQwLVxcbm5ldC9tYWM4MDIxMS9kcml2ZXItb3BzLmg6MTA0MTpcXHR0cmFjZV9kcnZfcmVtb3ZlX2NoYW5jdHgobG9jYWwsIGN0eCk7XFxubmV0L21hYzgwMjExL2RyaXZlci1vcHMuaDoxMDQyOlxcdGlmIChsb2NhbC1cXHUwMDNlb3BzLVxcdTAwM2VyZW1vdmVfY2hhbmN0eClcXG5uZXQvbWFjODAyMTEvZHJpdmVyLW9wcy5oOjEwNDM6XFx0XFx0bG9jYWwtXFx1MDAzZW9wcy1cXHUwMDNlcmVtb3ZlX2NoYW5jdHgoXFx1MDAyNmxvY2FsLVxcdTAwM2VodywgXFx1MDAyNmN0eC1cXHUwMDNlY29uZik7XFxubmV0L21hYzgwMjExL2RyaXZlci1vcHMuaC0xMDQ0LVxcdHRyYWNlX2Rydl9yZXR1cm5fdm9pZChsb2NhbCk7XFxuLS1cXG5uZXQvbWFjODAyMTEvbWFpbi5jPTI4NT1FWFBPUlRfU1lNQk9MKGllZWU4MDIxMV9lbXVsYXRlX2FkZF9jaGFuY3R4KTtcXG5uZXQvbWFjODAyMTEvbWFpbi5jLTI4Ni1cXG5uZXQvbWFjODAyMTEvbWFpbi5jOjI4Nzp2b2lkIGllZWU4MDIxMV9lbXVsYXRlX3JlbW92ZV9jaGFuY3R4KHN0cnVjdCBpZWVlODAyMTFfaHcgKmh3LFxcbm5ldC9tYWM4MDIxMS9tYWluLmMtMjg4LVxcdFxcdFxcdFxcdCAgICAgIHN0cnVjdCBpZWVlODAyMTFfY2hhbmN0eF9jb25mICpjdHgpXFxuLS1cXG5uZXQvbWFjODAyMTEvbWFpbi5jLTMwMC19XFxubmV0L21hYzgwMjExL21haW4uYzozMDE6RVhQT1JUX1NZTUJPTChpZWVlODAyMTFfZW11bGF0ZV9yZW1vdmVfY2hhbmN0eCk7XFxubmV0L21hYzgwMjExL21haW4uYy0zMDItXFxuLS1cXG5uZXQvbWFjODAyMTEvbWFpbi5jPTc5OD1zdHJ1Y3QgaWVlZTgwMjExX2h3ICppZWVlODAyMTFfYWxsb2NfaHdfbm0oc2l6ZV90IHByaXZfZGF0YV9sZW4sXFxuLS1cXG5uZXQvbWFjODAyMTEvbWFpbi5jLTgyMC1cXHRpZiAob3BzLVxcdTAwM2VhZGRfY2hhbmN0eCA9PSBpZWVlODAyMTFfZW11bGF0ZV9hZGRfY2hhbmN0eCBcXHUwMDI2XFx1MDAyNlxcbm5ldC9tYWM4MDIxMS9tYWluLmM6ODIxOlxcdCAgICBvcHMtXFx1MDAzZXJlbW92ZV9jaGFuY3R4ID09IGllZWU4MDIxMV9lbXVsYXRlX3JlbW92ZV9jaGFuY3R4IFxcdTAwMjZcXHUwMDI2XFxubmV0L21hYzgwMjExL21haW4uYy04MjItXFx0ICAgIG9wcy1cXHUwMDNlY2hhbmdlX2NoYW5jdHggPT0gaWVlZTgwMjExX2VtdWxhdGVfY2hhbmdlX2NoYW5jdHgpIHtcXG4tLVxcbm5ldC9tYWM4MDIxMS9tYWluLmMtODI4LVxcdFxcdGlmIChXQVJOX09OKG9wcy1cXHUwMDNlYWRkX2NoYW5jdHggPT0gaWVlZTgwMjExX2VtdWxhdGVfYWRkX2NoYW5jdHggfHxcXG5uZXQvbWFjODAyMTEvbWFpbi5jOjgyOTpcXHRcXHRcXHQgICAgb3BzLVxcdTAwM2VyZW1vdmVfY2hhbmN0eCA9PSBpZWVlODAyMTFfZW11bGF0ZV9yZW1vdmVfY2hhbmN0eCB8fFxcbm5ldC9tYWM4MDIxMS9tYWluLmMtODMwLVxcdFxcdFxcdCAgICBvcHMtXFx1MDAzZWNoYW5nZV9jaGFuY3R4ID09IGllZWU4MDIxMV9lbXVsYXRlX2NoYW5nZV9jaGFuY3R4KSlcXG4tLVxcbm5ldC9tYWM4MDIxMS9tYWluLmMtODMyLVxcdFxcdGlmIChXQVJOX09OKCFvcHMtXFx1MDAzZWFkZF9jaGFuY3R4IHx8XFxubmV0L21hYzgwMjExL21haW4uYzo4MzM6XFx0XFx0XFx0ICAgICFvcHMtXFx1MDAzZXJlbW92ZV9jaGFuY3R4IHx8XFxubmV0L21hYzgwMjExL21haW4uYy04MzQtXFx0XFx0XFx0ICAgICFvcHMtXFx1MDAzZWNoYW5nZV9jaGFuY3R4IHx8XFxuLS1cXG5uZXQvbWFjODAyMTEvdHJhY2UuaD0xNjkwPURFRklORV9FVkVOVChsb2NhbF9jaGFuY3R4LCBkcnZfYWRkX2NoYW5jdHgsXFxuLS1cXG5uZXQvbWFjODAyMTEvdHJhY2UuaC0xNjk1LVxcbm5ldC9tYWM4MDIxMS90cmFjZS5oOjE2OTY6REVGSU5FX0VWRU5UKGxvY2FsX2NoYW5jdHgsIGRydl9yZW1vdmVfY2hhbmN0eCxcXG5uZXQvbWFjODAyMTEvdHJhY2UuaC0xNjk3LVxcdFRQX1BST1RPKHN0cnVjdCBpZWVlODAyMTFfbG9jYWwgKmxvY2FsLFxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0yOVQxMDoyMzo0OS44NzA2MTU5OVoiLCJTZXEiOjE5LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuNy1mbGFzaCIsIkR1cmF0aW9uIjozODI4MTg4NzgwLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJIZXJlJ3MgbXkgYXR0ZW1wdCBhdCBzdW1tYXJpemluZyB0aGUgdGhvdWdodCBwcm9jZXNzLCB0YWlsb3JlZCBmb3IgYW4gZXhwZXJ0IGF1ZGllbmNlOlxuXG4qKkRpdmluZyBpbnRvIGBpZWVlODAyMTFfZGVsX2NoYW5jdHhgKipcblxuQWxyaWdodCwgbGV0J3MgZGlzc2VjdCBgaWVlZTgwMjExX2RlbF9jaGFuY3R4YCB3aXRoaW4gYG5ldC9tYWM4MDIxMS9jaGFuLmNgLiBJIG5lZWQgdG8gdW5kZXJzdGFuZCB0aGUgaW1wbGljYXRpb25zIG9mIHRoaXMgZnVuY3Rpb24uIE15IGltbWVkaWF0ZSBhc3N1bXB0aW9uIGlzIGl0J3MgcmVzcG9uc2libGUgZm9yIHRoZSBjbGVhbnVwIHByb2Nlc3MgYXNzb2NpYXRlZCB3aXRoIGEgY2hhbm5lbCBjb250ZXh0LiBJJ20gZ3Vlc3NpbmcgdGhpcyBmdW5jdGlvbiBpcyBjZW50cmFsIHRvIG1hbmFnaW5nIGNoYW5uZWwtcmVsYXRlZCByZXNvdXJjZXMsIHByb2JhYmx5IHdoZW4gYSBjaGFubmVsIGlzIGJlaW5nIGRpc2FibGVkIG9yIGRlcmVnaXN0ZXJlZC4gSSBuZWVkIHRvIGZpZ3VyZSBvdXQgd2hhdCBraW5kIG9mIHJlc291cmNlcyBpdCdzIGNsZWFuaW5nIHVwLCBhbmQgd2hldGhlciB0aGVyZSBhcmUgYW55IHN1YnRsZXRpZXMgdG8gYmUgYXdhcmUgb2YsIGxpa2UgcG90ZW50aWFsIHJhY2UgY29uZGl0aW9ucyBvciBsb2NraW5nIGlzc3VlcywgcGFydGljdWxhcmx5IHdpdGhpbiB0aGUgY29uY3VycmVuY3kgbW9kZWwgb2YgbWFjODAyMTEuIEFyZSB3ZSB0YWxraW5nIGFib3V0IGZyZWVpbmcgbWVtb3J5LCBkZXJlZmVyZW5jaW5nIHBvaW50ZXJzLCBhbmQgcG90ZW50aWFsbHkgZGVhY3RpdmF0aW5nIGhhcmR3YXJlIGNvbXBvbmVudHMgdGllZCB0byB0aGF0IHNwZWNpZmljIGNoYW5uZWw/IERvZXMgaXQgcmVtb3ZlIHRoZSBjb250ZXh0IGZyb20gYSBjZW50cmFsIGRhdGEgc3RydWN0dXJlLCBzdWNoIGFzIGEgaGFzaCB0YWJsZSwgd2hlcmUgYWxsIHRoZSBjaGFubmVsIGNvbnRleHRzIGFyZSBoZWxkPyBUaGUgbWFpbiBvYmplY3RpdmUgaXMgdG8gY29tcGxldGVseSBkZS1hbGxvY2F0ZSB0aGUgcmVzb3VyY2VzIGFzc29jaWF0ZWQgd2l0aCBjaGFubmVsIGNvbnRleHQuIEtub3dpbmcgdGhlIGludGVybmFscyBvZiBob3cgdGhlIGNoYW5uZWwgY29udGV4dHMgYXJlIGhhbmRsZWQgaXMgY3JpdGljYWwgZm9yIGlkZW50aWZ5aW5nIHBvdGVudGlhbCBtZW1vcnkgbGVha3MgYW5kIGVuc3VyaW5nIHRoZSBzeXN0ZW0gaXMgcm9idXN0LiBTcGVjaWZpY2FsbHksIEknbSBsb29raW5nIGZvciBob3cgaXQgaGFuZGxlcyByZWZlcmVuY2UgY291bnRzLCBhc3NvY2lhdGVkIHRpbWVycywgYW5kIGFueSBwb3RlbnRpYWwgc2lkZSBlZmZlY3RzIG9uIG90aGVyIHJlbGF0ZWQgc3RydWN0dXJlcywgbGlrZSB0aGUgb3BlcmF0aW5nIEJTUyBsaXN0IG9yIHNjYW4gY29udGV4dHMuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjIxNTY2LCJPdXRwdXRUb2tlbnMiOjQxLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MzUsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDgtMjlUMTA6MjM6NTMuNjk4ODA3MDVaIiwiU2VxIjoyMCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoicmVhZC1maWxlIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MTcyODcwLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRmlsZVwiOiBcIm5ldC9tYWM4MDIxMS9jaGFuLmNcIixcbiAgXCJGaXJzdExpbmVcIjogMTA3MCxcbiAgXCJMaW5lQ291bnRcIjogNDBcbn0iLCJSZXN1bHRzIjoie1xuICBcIkNvbnRlbnRzXCI6IFwiMTA3MDpcXHRcXHQvKlxcbjEwNzE6XFx0XFx0ICogV2UgaWdub3JlZCBhIGRyaXZlciBlcnJvciwgc2VlIF9pZWVlODAyMTFfc2V0X2FjdGl2ZV9saW5rcyBhbmQvb3JcXG4xMDcyOlxcdFxcdCAqIGllZWU4MDIxMV9uYW5fc2V0X2xvY2FsX3NjaGVkXFxuMTA3MzpcXHRcXHQgKi9cXG4xMDc0OlxcdFxcdFdBUk5fT05fT05DRShlcnIgXFx1MDAyNlxcdTAwMjYgIWxvY2FsLVxcdTAwM2Vpbl9yZWNvbmZpZyk7XFxuMTA3NTpcXHRcXG4xMDc2OlxcdFxcdGxpc3RfYWRkX3JjdShcXHUwMDI2Y3R4LVxcdTAwM2VsaXN0LCBcXHUwMDI2bG9jYWwtXFx1MDAzZWNoYW5jdHhfbGlzdCk7XFxuMTA3NzpcXHRcXHRyZXR1cm4gY3R4O1xcbjEwNzg6XFx0fVxcbjEwNzk6XFx0XFxuMTA4MDpcXHRzdGF0aWMgdm9pZCBpZWVlODAyMTFfZGVsX2NoYW5jdHgoc3RydWN0IGllZWU4MDIxMV9sb2NhbCAqbG9jYWwsXFxuMTA4MTpcXHRcXHRcXHRcXHRcXHQgIHN0cnVjdCBpZWVlODAyMTFfY2hhbmN0eCAqY3R4LFxcbjEwODI6XFx0XFx0XFx0XFx0XFx0ICBib29sIHNraXBfaWRsZV9yZWNhbGMpXFxuMTA4MzpcXHR7XFxuMTA4NDpcXHRcXHRsb2NrZGVwX2Fzc2VydF93aXBoeShsb2NhbC1cXHUwMDNlaHcud2lwaHkpO1xcbjEwODU6XFx0XFxuMTA4NjpcXHRcXHRkcnZfcmVtb3ZlX2NoYW5jdHgobG9jYWwsIGN0eCk7XFxuMTA4NzpcXHRcXG4xMDg4OlxcdFxcdGlmICghc2tpcF9pZGxlX3JlY2FsYylcXG4xMDg5OlxcdFxcdFxcdGllZWU4MDIxMV9yZWNhbGNfaWRsZShsb2NhbCk7XFxuMTA5MDpcXHRcXG4xMDkxOlxcdFxcdGllZWU4MDIxMV9yZW1vdmVfd2JyZihsb2NhbCwgXFx1MDAyNmN0eC1cXHUwMDNlY29uZi5kZWYpO1xcbjEwOTI6XFx0fVxcbjEwOTM6XFx0XFxuMTA5NDpcXHR2b2lkIGllZWU4MDIxMV9mcmVlX2NoYW5jdHgoc3RydWN0IGllZWU4MDIxMV9sb2NhbCAqbG9jYWwsXFxuMTA5NTpcXHRcXHRcXHRcXHQgICAgc3RydWN0IGllZWU4MDIxMV9jaGFuY3R4ICpjdHgsXFxuMTA5NjpcXHRcXHRcXHRcXHQgICAgYm9vbCBza2lwX2lkbGVfcmVjYWxjKVxcbjEwOTc6XFx0e1xcbjEwOTg6XFx0XFx0bG9ja2RlcF9hc3NlcnRfd2lwaHkobG9jYWwtXFx1MDAzZWh3LndpcGh5KTtcXG4xMDk5OlxcdFxcbjExMDA6XFx0XFx0V0FSTl9PTl9PTkNFKGllZWU4MDIxMV9jaGFuY3R4X3JlZmNvdW50KGxvY2FsLCBjdHgpICE9IDApO1xcbjExMDE6XFx0XFxuMTEwMjpcXHRcXHRsaXN0X2RlbF9yY3UoXFx1MDAyNmN0eC1cXHUwMDNlbGlzdCk7XFxuMTEwMzpcXHRcXHRpZWVlODAyMTFfZGVsX2NoYW5jdHgobG9jYWwsIGN0eCwgc2tpcF9pZGxlX3JlY2FsYyk7XFxuMTEwNDpcXHRcXHRrZnJlZV9yY3UoY3R4LCByY3VfaGVhZCk7XFxuMTEwNTpcXHR9XFxuMTEwNjpcXHRcXG4xMTA3OlxcdHZvaWQgaWVlZTgwMjExX3JlY2FsY19jaGFuY3R4X2NoYW50eXBlKHN0cnVjdCBpZWVlODAyMTFfbG9jYWwgKmxvY2FsLFxcbjExMDg6XFx0XFx0XFx0XFx0XFx0ICAgICAgIHN0cnVjdCBpZWVlODAyMTFfY2hhbmN0eCAqY3R4KVxcbjExMDk6XFx0e1xcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0yOVQxMDoyMzo1My42OTg5ODE3NFoiLCJTZXEiOjIxLCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuNy1mbGFzaCIsIkR1cmF0aW9uIjoxMDI0NTU2NDY2MSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipBbmFseXppbmcgdGhlIFJlbW92YWwgb2YgYF9pZWVlODAyMTFfaHdfY29uZl9jaGFuYCBpbiBgaWVlZTgwMjExX2VtdWxhdGVfcmVtb3ZlX2NoYW5jdHhgKipcblxuT2theSwgc28gSSdtIGxvb2tpbmcgYXQgdGhpcyBjb2RlIGFuZCBpbW1lZGlhdGVseSBJIHNlZSBgX2llZWU4MDIxMV9od19jb25mX2NoYW5gIHdhcyBiZWluZyBjYWxsZWQgd2l0aGluIGBpZWVlODAyMTFfZW11bGF0ZV9yZW1vdmVfY2hhbmN0eGAuIFNwZWNpZmljYWxseSwgdGhpcyB3YXMgaGFwcGVuaW5nIHJpZ2h0IGFmdGVyIGBsb2NhbC1cdTAwM2Vody5jb25mLnJhZGFyX2VuYWJsZWRgIHdhcyBzZXQgdG8gYGZhbHNlYC4gVGhlIHJlbGV2YW50IGNvZGUgaXM6XG5cbmBgYGNcbnZvaWQgaWVlZTgwMjExX2VtdWxhdGVfcmVtb3ZlX2NoYW5jdHgoc3RydWN0IGllZWU4MDIxMV9odyAqaHcsXG5cdFx0XHRcdCAgICAgIHN0cnVjdCBpZWVlODAyMTFfY2hhbmN0eF9jb25mICpjdHgpXG57XG5cdHN0cnVjdCBpZWVlODAyMTFfbG9jYWwgKmxvY2FsID0gaHdfdG9fbG9jYWwoaHcpO1xuXG5cdGxvY2FsLVx1MDAzZWh3LmNvbmYucmFkYXJfZW5hYmxlZCA9IGZhbHNlO1xuXG5cdF9pZWVlODAyMTFfaHdfY29uZl9jaGFuKGxvY2FsLCBOVUxMKTtcbn1cbmBgYFxuXG5Ob3csIHRoZSBjcnVjaWFsIHBhcnQ6IGl0IGFwcGVhcnMgYF9pZWVlODAyMTFfaHdfY29uZl9jaGFuKGxvY2FsLCBOVUxMKTtgIGhhcyBiZWVuIHJlbW92ZWQuIFRoYXQncyBhIHNpZ25pZmljYW50IGNoYW5nZSBhbmQgSSBuZWVkIHRvIHVuZGVyc3RhbmQgdGhlIGltcGxpY2F0aW9ucyBvZiB0aGF0IHJlbW92YWwuIFRoZSBjb250ZXh0IGluZGljYXRlcyB0aGlzIGNoYW5nZSBpcyB0aWVkIHRvIHRoZSByZW1vdmFsIG9mIGEgY2hhbm5lbCBjb250ZXh0LCBzbyBjbGVhcmx5IHRoaXMgY2FsbCB3YXMgaW1wb3J0YW50IGF0IHRoaXMgcG9pbnQgaW4gdGhlIHByb2Nlc3MuIE15IG5leHQgc3RlcCB3aWxsIGJlIHRvIGRpdmUgZGVlcGVyIGludG8gd2hhdCBgX2llZWU4MDIxMV9od19jb25mX2NoYW5gIGRvZXMuIEl0cyBmdW5jdGlvbiwgaW4gdGhpcyBjb250ZXh0LCBtdXN0IGJlIHVuZGVyc3Rvb2QgdG8gZGV0ZXJtaW5lIHRoZSBhY3R1YWwgaW1wYWN0IG9mIGl0cyBkZWxldGlvbi5cblxuXG4iLCJJbnB1dFRva2VucyI6MjI2MzYsIk91dHB1dFRva2VucyI6NDIsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoyMDcsIlRvb2xDYWxscyI6WyJyZWFkLWZpbGUiXX0seyJTdGFydGVkIjoiMjAyNi0wOC0yOVQxMDoyNDowMy45NDQ1NDg1MDFaIiwiU2VxIjoyMiwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjc5NzkyNTI0LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcIl9pZWVlODAyMTFfaHdfY29uZl9jaGFuXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcIm5ldC9tYWM4MDIxMVwiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJuZXQvbWFjODAyMTEvbWFpbi5jPTE5Mz1pbnQgaWVlZTgwMjExX2h3X2NvbmZpZyhzdHJ1Y3QgaWVlZTgwMjExX2xvY2FsICpsb2NhbCwgaW50IHJhZGlvX2lkeCxcXG4tLVxcbm5ldC9tYWM4MDIxMS9tYWluLmMtMjI2LS8qIGZvciBzY2FubmluZywgb2ZmY2hhbm5lbCBhbmQgY2hhbmN0eCBlbXVsYXRpb24gb25seSAqL1xcbm5ldC9tYWM4MDIxMS9tYWluLmM6MjI3OnN0YXRpYyBpbnQgX2llZWU4MDIxMV9od19jb25mX2NoYW4oc3RydWN0IGllZWU4MDIxMV9sb2NhbCAqbG9jYWwsXFxubmV0L21hYzgwMjExL21haW4uYy0yMjgtXFx0XFx0XFx0XFx0ICAgc3RydWN0IGllZWU4MDIxMV9jaGFuY3R4X2NvbmYgKmN0eClcXG4tLVxcbm5ldC9tYWM4MDIxMS9tYWluLmM9MjQyPWludCBpZWVlODAyMTFfaHdfY29uZl9jaGFuKHN0cnVjdCBpZWVlODAyMTFfbG9jYWwgKmxvY2FsKVxcbi0tXFxubmV0L21hYzgwMjExL21haW4uYy0yNDktXFxubmV0L21hYzgwMjExL21haW4uYzoyNTA6XFx0cmV0dXJuIF9pZWVlODAyMTFfaHdfY29uZl9jaGFuKGxvY2FsLCBjdHggPyBcXHUwMDI2Y3R4LVxcdTAwM2Vjb25mIDogTlVMTCk7XFxubmV0L21hYzgwMjExL21haW4uYy0yNTEtfVxcbi0tXFxubmV0L21hYzgwMjExL21haW4uYz0yNzY9aW50IGllZWU4MDIxMV9lbXVsYXRlX2FkZF9jaGFuY3R4KHN0cnVjdCBpZWVlODAyMTFfaHcgKmh3LFxcbi0tXFxubmV0L21hYzgwMjExL21haW4uYy0yODItXFxubmV0L21hYzgwMjExL21haW4uYzoyODM6XFx0cmV0dXJuIF9pZWVlODAyMTFfaHdfY29uZl9jaGFuKGxvY2FsLCBjdHgpO1xcbm5ldC9tYWM4MDIxMS9tYWluLmMtMjg0LX1cXG4tLVxcbm5ldC9tYWM4MDIxMS9tYWluLmM9MzAzPXZvaWQgaWVlZTgwMjExX2VtdWxhdGVfY2hhbmdlX2NoYW5jdHgoc3RydWN0IGllZWU4MDIxMV9odyAqaHcsXFxuLS1cXG5uZXQvbWFjODAyMTEvbWFpbi5jLTMxMC1cXG5uZXQvbWFjODAyMTEvbWFpbi5jOjMxMTpcXHRfaWVlZTgwMjExX2h3X2NvbmZfY2hhbihsb2NhbCwgY3R4KTtcXG5uZXQvbWFjODAyMTEvbWFpbi5jLTMxMi19XFxuLS1cXG5uZXQvbWFjODAyMTEvbWFpbi5jPTMxNT1pbnQgaWVlZTgwMjExX2VtdWxhdGVfc3dpdGNoX3ZpZl9jaGFuY3R4KHN0cnVjdCBpZWVlODAyMTFfaHcgKmh3LFxcbi0tXFxubmV0L21hYzgwMjExL21haW4uYy0zMjUtXFx0bG9jYWwtXFx1MDAzZWh3LmNvbmYucmFkYXJfZW5hYmxlZCA9IHZpZnNbMF0ubmV3X2N0eC1cXHUwMDNlcmFkYXJfZW5hYmxlZDtcXG5uZXQvbWFjODAyMTEvbWFpbi5jOjMyNjpcXHRfaWVlZTgwMjExX2h3X2NvbmZfY2hhbihsb2NhbCwgdmlmc1swXS5uZXdfY3R4KTtcXG5uZXQvbWFjODAyMTEvbWFpbi5jLTMyNy1cXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMjlUMTA6MjQ6MDQuMDI0MzQ4Nzg1WiIsIlNlcSI6MjMsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy43LWZsYXNoIiwiRHVyYXRpb24iOjEyNjU4MzYzNTIyLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkZ1enppbmcgRXZhbHVhdGlvbjogV2lyZWxlc3MgQ2hhbm5lbCBDb250ZXh0IFJlbW92YWwqKlxuXG5BbHJpZ2h0LCBsZXQncyBicmVhayB0aGlzIGRvd24uIEZpcnN0LCBJIG5lZWQgdG8gZGV0ZXJtaW5lIGlmIHRoaXMgY2hhbmdlIHdhcnJhbnRzIGZ1enppbmcuIEknbSBsb29raW5nIGZvciBhIFwiV29ydGhGdXp6aW5nID0gdHJ1ZVwiIGFuc3dlci4gTXkgaW5pdGlhbCBhc3Nlc3NtZW50IGlzOiBpdCBpcyBXb3J0aEZ1enppbmcuIFRoZSBjaGFuZ2UgaXMgd2l0aGluIGNvcmUgd2lyZWxlc3MgbG9naWMgaW4gbWFjODAyMTEsIHNwZWNpZmljYWxseSBgaWVlZTgwMjExX2VtdWxhdGVfcmVtb3ZlX2NoYW5jdHhgLiBUaGlzIGlzbid0IGRvY3VtZW50YXRpb24sIGRlY29yYXRpb24sIGNvbnN0YW50IHR3ZWFraW5nLCBvciBpbmFjY2Vzc2libGUgY29kZS4gVGhlIHVzZSBvZiBgbWFjODAyMTFfaHdzaW1gIG1ha2VzIGl0IHJlYWNoYWJsZSBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMsIHdoaWNoIGlzIGtleSBmb3IgZnV6emluZyBmZWFzaWJpbGl0eSBhbmQgdGhlIG5sODAyMTEvY2ZnODAyMTEgaW50ZXJmYWNlIG1lYW5zIHdlIGNhbiB0cmlnZ2VyIHRoZSBjb2RlIHBhdGhzLlxuXG5Ob3csIGxldCdzIGlkZW50aWZ5IHRoZSBzaWduaWZpY2FudCBzeW1ib2xzLiBJJ3ZlIGdvdDogYGllZWU4MDIxMV9lbXVsYXRlX3JlbW92ZV9jaGFuY3R4YCwgYGllZWU4MDIxMV9mcmVlX2NoYW5jdHhgLCBgaWVlZTgwMjExX2VtdWxhdGVfYWRkX2NoYW5jdHhgLCBgaWVlZTgwMjExX2VtdWxhdGVfY2hhbmdlX2NoYW5jdHhgLCBhbmQgYGllZWU4MDIxMV9od19jb25mX2NoYW5gLiBUaGVzZSBhcmUgdGhlIGZ1bmN0aW9ucyBJJ2xsIG5lZWQgdG8gZm9jdXMgb24gZHVyaW5nIGZ1enppbmcuXG5cbk5leHQsIEkgbmVlZCB0byBlbnN1cmUgdGhlc2Ugc3ltYm9scyBhcmUgYWNjZXNzaWJsZS4gT2theSwgYGllZWU4MDIxMV9lbXVsYXRlX3JlbW92ZV9jaGFuY3R4YCwgYGllZWU4MDIxMV9lbXVsYXRlX2FkZF9jaGFuY3R4YCwgYW5kIGBpZWVlODAyMTFfZW11bGF0ZV9jaGFuZ2VfY2hhbmN0eGAgYXJlIGFsbCBleHBvcnRlZC4gRXhjZWxsZW50LiBgaWVlZTgwMjExX2ZyZWVfY2hhbmN0eGAgbG9va3Mgbm9uLXN0YXRpYyB3aXRoaW4gYGNoYW4uY2AsIGFsc28gZ29vZC5cblxuRmluYWxseSwgSSBuZWVkIHRvIGNoZWNrIHRoZSBLY29uZmlnIGRlcGVuZGVuY2llcy4gYE1BQzgwMjExYCBkZXBlbmRzIG9uIGBDRkc4MDIxMWAsIGFuZCBgTUFDODAyMTFfSFdTSU1gIGRlcGVuZHMgb24gYE1BQzgwMjExYC4gSSdsbCBuZWVkIHRvIG1ha2Ugc3VyZSB0aG9zZSBhcmUgZW5hYmxlZCwgYWxvbmcgd2l0aCB3aGF0ZXZlciBgQ0ZHODAyMTFgIGl0c2VsZiBkZXBlbmRzIG9uLCBmcm9tIGBuZXQvd2lyZWxlc3MvS2NvbmZpZ2AuIFRoZXNlIGFyZSBuZWNlc3NhcnkgdG8gc2V0IHVwIGEgdmFsaWQgZnV6emluZyBlbnZpcm9ubWVudC5cblxuXG4iLCJJbnB1dFRva2VucyI6MjM5NzIsIk91dHB1dFRva2VucyI6MzIsIk91dHB1dFRob3VnaHRzVG9rZW5zIjo3MDEsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDgtMjlUMTA6MjQ6MTYuNjgyNzE1NjQ3WiIsIlNlcSI6MjQsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6InJlYWQtZmlsZSIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjY5NzQwLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRmlsZVwiOiBcIm5ldC93aXJlbGVzcy9LY29uZmlnXCIsXG4gIFwiRmlyc3RMaW5lXCI6IDEsXG4gIFwiTGluZUNvdW50XCI6IDQwXG59IiwiUmVzdWx0cyI6IntcbiAgXCJDb250ZW50c1wiOiBcIiAgIDE6XFx0IyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMC1vbmx5XFxuICAgMjpcXHRjb25maWcgV0lSRUxFU1NfRVhUXFxuICAgMzpcXHRcXHRib29sXFxuICAgNDpcXHRcXG4gICA1OlxcdGNvbmZpZyBXRVhUX0NPUkVcXG4gICA2OlxcdFxcdGRlZl9ib29sIHlcXG4gICA3OlxcdFxcdGRlcGVuZHMgb24gQ0ZHODAyMTFfV0VYVCB8fCBXSVJFTEVTU19FWFRcXG4gICA4OlxcdFxcbiAgIDk6XFx0Y29uZmlnIFdFWFRfUFJPQ1xcbiAgMTA6XFx0XFx0ZGVmX2Jvb2wgeVxcbiAgMTE6XFx0XFx0ZGVwZW5kcyBvbiBQUk9DX0ZTXFxuICAxMjpcXHRcXHRkZXBlbmRzIG9uIFdFWFRfQ09SRVxcbiAgMTM6XFx0XFxuICAxNDpcXHRjb25maWcgV0VYVF9QUklWXFxuICAxNTpcXHRcXHRib29sXFxuICAxNjpcXHRcXG4gIDE3OlxcdGNvbmZpZyBDRkc4MDIxMVxcbiAgMTg6XFx0XFx0dHJpc3RhdGUgXFxcImNmZzgwMjExIC0gd2lyZWxlc3MgY29uZmlndXJhdGlvbiBBUElcXFwiXFxuICAxOTpcXHRcXHRkZXBlbmRzIG9uIFJGS0lMTCB8fCAhUkZLSUxMXFxuICAyMDpcXHRcXHRzZWxlY3QgRldfTE9BREVSXFxuICAyMTpcXHRcXHRzZWxlY3QgQ1JDMzJcXG4gIDIyOlxcdFxcdCMgbWF5IG5lZWQgdG8gdXBkYXRlIHRoaXMgd2hlbiBjZXJ0aWZpY2F0ZXMgYXJlIGNoYW5nZWQgYW5kIGFyZVxcbiAgMjM6XFx0XFx0IyB1c2luZyBhIGRpZmZlcmVudCBhbGdvcml0aG0sIHRob3VnaCByaWdodCBub3cgdGhleSBzaG91bGRuJ3RcXG4gIDI0OlxcdFxcdCMgKHRoaXMgaXMgaGVyZSByYXRoZXIgdGhhbiBiZWxvdyB0byBhbGxvdyBpdCB0byBiZSBhIG1vZHVsZSlcXG4gIDI1OlxcdFxcdHNlbGVjdCBDUllQVE9fU0hBMjU2IGlmIENGRzgwMjExX1VTRV9LRVJORUxfUkVHREJfS0VZU1xcbiAgMjY6XFx0XFx0aGVscFxcbiAgMjc6XFx0XFx0ICBjZmc4MDIxMSBpcyB0aGUgTGludXggd2lyZWxlc3MgTEFOICg4MDIuMTEpIGNvbmZpZ3VyYXRpb24gQVBJLlxcbiAgMjg6XFx0XFx0ICBFbmFibGUgdGhpcyBpZiB5b3UgaGF2ZSBhIHdpcmVsZXNzIGRldmljZS5cXG4gIDI5OlxcdFxcbiAgMzA6XFx0XFx0ICBGb3IgbW9yZSBpbmZvcm1hdGlvbiByZWZlciB0byBkb2N1bWVudGF0aW9uIG9uIHRoZSB3aXJlbGVzcyB3aWtpOlxcbiAgMzE6XFx0XFxuICAzMjpcXHRcXHQgIGh0dHBzOi8vd2lyZWxlc3Mud2lraS5rZXJuZWwub3JnL2VuL2RldmVsb3BlcnMvRG9jdW1lbnRhdGlvbi9jZmc4MDIxMVxcbiAgMzM6XFx0XFxuICAzNDpcXHRcXHQgIFdoZW4gYnVpbHQgYXMgYSBtb2R1bGUgaXQgd2lsbCBiZSBjYWxsZWQgY2ZnODAyMTEuXFxuICAzNTpcXHRcXG4gIDM2OlxcdGlmIENGRzgwMjExXFxuICAzNzpcXHRcXG4gIDM4OlxcdGNvbmZpZyBOTDgwMjExX1RFU1RNT0RFXFxuICAzOTpcXHRcXHRib29sIFxcXCJubDgwMjExIHRlc3Rtb2RlIGNvbW1hbmRcXFwiXFxuICA0MDpcXHRcXHRoZWxwXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTI5VDEwOjI0OjE2LjY4Mjc4NzAwN1oiLCJTZXEiOjI1LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuNy1mbGFzaCIsIkR1cmF0aW9uIjo1NTEyNDMzOTcwLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJPa2F5LCBsZXQncyBzZWUuIE15IGZpcnN0IHRob3VnaHQgaXMgdG8gZGlnIGludG8gdGhlIGNvbXBpbGF0aW9uIHByb2Nlc3MgZm9yIGBtYWluLmNgLCBhbmQgYSBsaWtlbHkgc3RhcnRpbmcgcG9pbnQgaXMgdGhlIGBuZXQvbWFjODAyMTEvTWFrZWZpbGVgLiBUaGF0J3Mgd2hlcmUgSSB3b3VsZCBleHBlY3QgdG8gZmluZCB0aGUgcnVsZXMgdGhhdCBkaWN0YXRlIGhvdyB0aGF0IHBhcnRpY3VsYXIgZmlsZSBpcyB0cmFuc2Zvcm1lZCBpbnRvIG9iamVjdCBjb2RlIGFuZCB1bHRpbWF0ZWx5IGxpbmtlZCBpbnRvIHRoZSBmaW5hbCBleGVjdXRhYmxlIG9yIG1vZHVsZS4gSXQncyB0aGUgbW9zdCBsb2dpY2FsIHBsYWNlIHRvIGJlZ2luIHVucmF2ZWxpbmcgaG93IHRoZSBrZXJuZWwgYnVpbGQgc3lzdGVtIGhhbmRsZXMgdGhpcyBzcGVjaWZpYyBzb3VyY2UgZmlsZS4gTGV0J3Mgc2VlIHdoYXQgc2VjcmV0cyB0aGlzIE1ha2VmaWxlIGhvbGRzLlxuXG5cbiIsIklucHV0VG9rZW5zIjoyNTcyMSwiT3V0cHV0VG9rZW5zIjozNiwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjI3LCJUb29sQ2FsbHMiOlsicmVhZC1maWxlIl19LHsiU3RhcnRlZCI6IjIwMjYtMDgtMjlUMTA6MjQ6MjIuMTk1MjI0ODE3WiIsIlNlcSI6MjYsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6InJlYWQtZmlsZSIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjY4MDAwLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRmlsZVwiOiBcIm5ldC9tYWM4MDIxMS9NYWtlZmlsZVwiLFxuICBcIkZpcnN0TGluZVwiOiAxLFxuICBcIkxpbmVDb3VudFwiOiA0MFxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiQ29udGVudHNcIjogXCIgICAxOlxcdCMgU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjBcXG4gICAyOlxcdG9iai0kKENPTkZJR19NQUM4MDIxMSkgKz0gbWFjODAyMTEub1xcbiAgIDM6XFx0XFxuICAgNDpcXHQjIG1hYzgwMjExIG9iamVjdHNcXG4gICA1OlxcdG1hYzgwMjExLXkgOj0gXFxcXFxcbiAgIDY6XFx0XFx0bWFpbi5vIHN0YXR1cy5vIFxcXFxcXG4gICA3OlxcdFxcdGRyaXZlci1vcHMubyBcXFxcXFxuICAgODpcXHRcXHRzdGFfaW5mby5vIFxcXFxcXG4gICA5OlxcdFxcdHdlcC5vIFxcXFxcXG4gIDEwOlxcdFxcdGFlYWRfYXBpLm8gXFxcXFxcbiAgMTE6XFx0XFx0d3BhLm8gXFxcXFxcbiAgMTI6XFx0XFx0c2Nhbi5vIG9mZmNoYW5uZWwubyBcXFxcXFxuICAxMzpcXHRcXHRodC5vIGFnZy10eC5vIGFnZy1yeC5vIFxcXFxcXG4gIDE0OlxcdFxcdHZodC5vIFxcXFxcXG4gIDE1OlxcdFxcdGhlLm8gXFxcXFxcbiAgMTY6XFx0XFx0czFnLm8gXFxcXFxcbiAgMTc6XFx0XFx0aWJzcy5vIFxcXFxcXG4gIDE4OlxcdFxcdGlmYWNlLm8gXFxcXFxcbiAgMTk6XFx0XFx0bGluay5vIFxcXFxcXG4gIDIwOlxcdFxcdHJhdGUubyBcXFxcXFxuICAyMTpcXHRcXHR0a2lwLm8gXFxcXFxcbiAgMjI6XFx0XFx0YWVzX2NtYWMubyBcXFxcXFxuICAyMzpcXHRcXHRhZXNfZ21hYy5vIFxcXFxcXG4gIDI0OlxcdFxcdGZpbHNfYWVhZC5vIFxcXFxcXG4gIDI1OlxcdFxcdGNmZy5vIFxcXFxcXG4gIDI2OlxcdFxcdGV0aHRvb2wubyBcXFxcXFxuICAyNzpcXHRcXHRyeC5vIFxcXFxcXG4gIDI4OlxcdFxcdHNwZWN0bWdtdC5vIFxcXFxcXG4gIDI5OlxcdFxcdHR4Lm8gXFxcXFxcbiAgMzA6XFx0XFx0a2V5Lm8gXFxcXFxcbiAgMzE6XFx0XFx0dXRpbC5vIHBhcnNlLm8gXFxcXFxcbiAgMzI6XFx0XFx0d21lLm8gXFxcXFxcbiAgMzM6XFx0XFx0Y2hhbi5vIGFwLm8gXFxcXFxcbiAgMzQ6XFx0XFx0dHJhY2UubyBtbG1lLm8gXFxcXFxcbiAgMzU6XFx0XFx0dGRscy5vIFxcXFxcXG4gIDM2OlxcdFxcdG9jYi5vIFxcXFxcXG4gIDM3OlxcdFxcdGFpcnRpbWUubyBcXFxcXFxuICAzODpcXHRcXHRlaHQubyB1aHIubyBuYW4ub1xcbiAgMzk6XFx0XFxuICA0MDpcXHRtYWM4MDIxMS0kKENPTkZJR19NQUM4MDIxMV9MRURTKSArPSBsZWQub1xcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0yOVQxMDoyNDoyMi4xOTUyOTQzMjZaIiwiU2VxIjoyNywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjctZmxhc2giLCJEdXJhdGlvbiI6MzE4MTA0NDQ3MzQsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqQW5hbHl6aW5nIFdpcmVsZXNzIENvbmZpZ3VyYXRpb24gT3B0aW9ucyoqXG5cbk9rYXksIHNvIEknbSBsb29raW5nIGF0IHRoZXNlIGNvbmZpZ3VyYXRpb24gb3B0aW9ucywgc3BlY2lmaWNhbGx5IGBDT05GSUdfTUFDODAyMTFgLCBgQ09ORklHX0NGRzgwMjExYCwgYW5kIGBDT05GSUdfTUFDODAyMTFfSFdTSU1gLiBJIG5lZWQgdG8gZW5zdXJlIEkgaGF2ZSBhIGdvb2QgZ3Jhc3Agb2YgaG93IHRoZXNlIGFyZSBzZXQuIEknbGwgbWVudGFsbHkgc3RyaXAgdGhlIGBDT05GSUdfYCBwcmVmaXggdG8gZ2V0IHRoZSBjb3JlIGNvbmZpZyBzeW1ib2xzOiBgTUFDODAyMTFgLCBgQ0ZHODAyMTFgLCBhbmQgYE1BQzgwMjExX0hXU0lNYC4gTWFrZXMgaXQgZWFzaWVyIHRvIHF1aWNrbHkgc2NhbiB0aGUgYXJyYXkgd2l0aG91dCB0aGUgZXh0cmEgY2x1dHRlci5cblxuUmlnaHQsIHRpbWUgdG8gemVybyBpbiBvbiB0aGUgcmVsZXZhbnQgZnVuY3Rpb25zLiBMZXQncyBzZWUuLi4gYGllZWU4MDIxMV9lbXVsYXRlX3JlbW92ZV9jaGFuY3R4YCBhbmQgYGllZWU4MDIxMV9mcmVlX2NoYW5jdHhgIC0gdGhvc2Ugc3RhbmQgb3V0LiBUaGV5J3JlIGRlZmluaXRlbHkgaW4gdGhlIHJpZ2h0IGFyZWEgZm9yIHdoYXQgSSdtIGRvaW5nLlxuXG5Ob3cgdGhhdCBJJ3ZlIGdvdCBhIGhhbmRsZSBvbiB0aGUga2V5IGNvbmZpZyBvcHRpb25zIGFuZCB0aGUgdGFyZ2V0IGZ1bmN0aW9ucywgSSBzaG91bGQgZ2V0IHRoaXMgYW5hbHlzaXMgZG9uZS4gVGltZSB0byBjYWxsIGBzZXQtcmVzdWx0c2AuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjI2NDA3LCJPdXRwdXRUb2tlbnMiOjE4NywiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjE0MSwiVG9vbENhbGxzIjpbInJlYWQtZmlsZSJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTI5VDEwOjI0OjU0LjAwNTc0MTY5MVoiLCJTZXEiOjI4LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJzZXQtcmVzdWx0cyIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjc2NTQ2Mzc0LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXG4gICAgXCJNQUM4MDIxMVwiLFxuICAgIFwiQ0ZHODAyMTFcIixcbiAgICBcIk1BQzgwMjExX0hXU0lNXCJcbiAgXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW1xuICAgIFwiaWVlZTgwMjExX2VtdWxhdGVfcmVtb3ZlX2NoYW5jdHhcIixcbiAgICBcImllZWU4MDIxMV9mcmVlX2NoYW5jdHhcIlxuICBdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBtb2RpZmllcyBgaWVlZTgwMjExX2VtdWxhdGVfcmVtb3ZlX2NoYW5jdHhgIGluIG1hYzgwMjExIHRvIGF2b2lkIGNhbGxpbmcgYF9pZWVlODAyMTFfaHdfY29uZl9jaGFuKGxvY2FsLCBOVUxMKWAgd2hlbiBjaGFubmVsIGNvbnRleHRzIGFyZSByZW1vdmVkLCBjaGFuZ2luZyBjaGFubmVsIGNvbmZpZ3VyYXRpb24gYmVoYXZpb3IgZm9yIGRyaXZlcnMgdXNpbmcgZW11bGF0ZWQgY2hhbm5lbCBjb250ZXh0cyAoc3VjaCBhcyBtYWM4MDIxMV9od3NpbSkuIFRoaXMgdG91Y2hlcyByZWFjaGFibGUgY29yZSB3aXJlbGVzcyBuZXR3b3JraW5nIGxvZ2ljIGFuZCBpcyB3b3J0aCBmdXp6aW5nLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiB0cnVlXG59IiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IFtcbiAgICBcIk1BQzgwMjExXCIsXG4gICAgXCJDRkc4MDIxMVwiLFxuICAgIFwiTUFDODAyMTFfSFdTSU1cIlxuICBdLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXG4gICAgXCJpZWVlODAyMTFfZW11bGF0ZV9yZW1vdmVfY2hhbmN0eFwiLFxuICAgIFwiaWVlZTgwMjExX2ZyZWVfY2hhbmN0eFwiXG4gIF0sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIG1vZGlmaWVzIGBpZWVlODAyMTFfZW11bGF0ZV9yZW1vdmVfY2hhbmN0eGAgaW4gbWFjODAyMTEgdG8gYXZvaWQgY2FsbGluZyBgX2llZWU4MDIxMV9od19jb25mX2NoYW4obG9jYWwsIE5VTEwpYCB3aGVuIGNoYW5uZWwgY29udGV4dHMgYXJlIHJlbW92ZWQsIGNoYW5naW5nIGNoYW5uZWwgY29uZmlndXJhdGlvbiBiZWhhdmlvciBmb3IgZHJpdmVycyB1c2luZyBlbXVsYXRlZCBjaGFubmVsIGNvbnRleHRzIChzdWNoIGFzIG1hYzgwMjExX2h3c2ltKS4gVGhpcyB0b3VjaGVzIHJlYWNoYWJsZSBjb3JlIHdpcmVsZXNzIG5ldHdvcmtpbmcgbG9naWMgYW5kIGlzIHdvcnRoIGZ1enppbmcuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IHRydWVcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTI5VDEwOjI0OjU0LjA4MjI5NTgxNloiLCJTZXEiOjI5LCJOZXN0aW5nIjoxLCJUeXBlIjoiYWN0aW9uIiwiTmFtZSI6IklmIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6Mzc2MDYyMzI3NjMsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJXb3J0aEZ1enppbmdcIjogdHJ1ZVxufSIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0yOVQxMDoyNDo1NC4wODMyNzg4NDVaIiwiU2VxIjozMCwiTmVzdGluZyI6MiwiVHlwZSI6ImFnZW50IiwiTmFtZSI6Imttc2FuLWV2YWx1YXRvciIsIk1vZGVsIjoiY29yZSIsIkR1cmF0aW9uIjozNzYwNTI0NDkzMiwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiS01TQU5SZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggcmVtb3ZlcyBhIGNhbGwgdG8gYF9pZWVlODAyMTFfaHdfY29uZl9jaGFuKGxvY2FsLCBOVUxMKWAgaW5zaWRlIGBpZWVlODAyMTFfZW11bGF0ZV9yZW1vdmVfY2hhbmN0eCgpYCB0byBhdm9pZCB1bm5lY2Vzc2FyeSBjaGFubmVsIHJlY29uZmlndXJhdGlvbiB3aGVuIHJlbW92aW5nIGEgY2hhbm5lbCBjb250ZXh0IGluIGVtdWxhdGlvbiBtb2RlLlxcblxcblRoaXMgbW9kaWZpY2F0aW9uIGRvZXMgbm90OlxcbjEuIEFsbG9jYXRlLCBhY2Nlc3MsIG9yIGV4cG9zZSBhbnkgdW5pbml0aWFsaXplZCBtZW1vcnkgKHN0YWNrLCBoZWFwLCBvciBwYWdlIGFsbG9jYXRpb25zKS5cXG4yLiBDb3B5IGFueSBrZXJuZWwgZGF0YSBzdHJ1Y3R1cmVzIHRvIHVzZXJzcGFjZSAobm8gaW5mby1sZWFrIHJpc2spLlxcbjMuIEludHJvZHVjZSBvciBhbHRlciBicmFuY2ggY29uZGl0aW9ucyBiYXNlZCBvbiB1bmluaXRpYWxpemVkIGRhdGEgb3IgbWFuaXB1bGF0ZSBidWZmZXIgYm91bmRzLlxcblxcbkFueSBwb3RlbnRpYWwgYmVoYXZpb3JhbCByZWdyZXNzaW9ucyBvciBkcml2ZXIgc3RhdGUgaW5jb25zaXN0ZW5jaWVzIHdvdWxkIGJlIGZ1bmN0aW9uYWwgYnVncyBvciBjb3ZlcmVkIHVuZGVyIHN0YW5kYXJkIGtlcm5lbCB0ZXN0aW5nL0tBU0FOLiBUaGVyZWZvcmUsIGEgZGVkaWNhdGVkIEtNU0FOIGZ1enppbmcgc2Vzc2lvbiBpcyBub3Qgd2FycmFudGVkLlwiLFxuICBcIk5lZWRzS01TQU5cIjogZmFsc2Vcbn0iLCJJbnN0cnVjdGlvbiI6IllvdSBhcmUgYW4gZXhwZXJ0IExpbnV4IGtlcm5lbCBzZWN1cml0eSBlbmdpbmVlciBzcGVjaWFsaXppbmcgaW4ga2VybmVsIG1lbW9yeVxuZXJyb3IgZGV0ZWN0b3JzIChLQVNBTiBhbmQgS01TQU4pLiBZb3VyIGpvYiBpcyB0byByZXZpZXcgdGhlIHByb3ZpZGVkIHBhdGNoIHNlcmllcyBhbmRcbmRldGVybWluZSBpZiB0aGUgY29kZSBjaGFuZ2VzIGp1c3RpZnkgc3Bhd25pbmcgYSBkZWRpY2F0ZWQgS01TQU4gKEtlcm5lbE1lbW9yeVNhbml0aXplcilcbmZ1enppbmcgc2Vzc2lvbiBpbiBhZGRpdGlvbiB0byBzdGFuZGFyZCBLQVNBTiBmdXp6aW5nLlxuXG5DUklUSUNBTCBESVNUSU5DVElPTiBCRVRXRUVOIEtBU0FOIEFORCBLTVNBTjpcbi0gU3RhbmRhcmQgS0FTQU4ga2VybmVsIGJ1aWxkcyAodXBzdHJlYW0tYXBwYXJtb3Ita2FzYW4uY29uZmlnKSBhbHJlYWR5IGVuYWJsZVxuICBhIGNvbXByZWhlbnNpdmUgc3VpdGUgb2YgZGVidWdnaW5nIHRvb2xzIGFuZCBzYW5pdGl6ZXJzLCBpbmNsdWRpbmcgS0FTQU5cbiAgKG91dC1vZi1ib3VuZHMgYWNjZXNzZXMsIHVzZS1hZnRlci1mcmVlLCBkb3VibGUgZnJlZSwgaW52YWxpZCBmcmVlKSwgTE9DS0RFUFxuICAobG9ja2luZyBidWdzIGFuZCBkZWFkbG9ja3MpLCBVQi1zYW5pdGl6ZXJzLCBhbmQgbWVtb3J5IGNvcnJ1cHRpb24gY2hlY2tzLlxuLSBLTVNBTiAoS2VybmVsTWVtb3J5U2FuaXRpemVyKSBkZXRlY3RzIHJlYWRzIG9mIFVOSU5JVElBTElaRUQgbWVtb3J5IChzdGFjaywgaGVhcCxcbiAgb3IgcGFnZSBhbGxvY2F0aW9ucykgYW5kIGtlcm5lbC10by11c2VyIG1lbW9yeSBpbmZvLWxlYWtzLlxuXG5SdWxlOiBUSEVSRSBJUyBOTyBTRU5TRSBJTiBSVU5OSU5HIEEgS01TQU4gU0VTU0lPTiBJRiBBIEJVRyBDQU4gQkUgQ0FVR0hUIEJZIEtBU0FOLFxuTE9DS0RFUCwgT1IgT1RIRVIgU1RBTkRBUkQgQlVHIERFVEVDVE9SUy5cbkEgZGVkaWNhdGVkIEtNU0FOIGZ1enppbmcgc2Vzc2lvbiBpbmN1cnMgc2lnbmlmaWNhbnQgcmVzb3VyY2UgY29zdHMuIFlvdSBtdXN0IE9OTFlcbnNldCBOZWVkc0tNU0FOPXRydWUgaWYgdGhlIGNvZGUgY2hhbmdlcyBpbnRyb2R1Y2Ugb3IgZXhwb3NlIFVOSU5JVElBTElaRUQgTUVNT1JZIHJpc2tzXG50aGF0IGFyZSBkZXRlY3RlZCBPTkxZIGJ5IEtNU0FOLlxuXG5Mb29rIGhvbGlzdGljYWxseSBhdCB0aGUgcGF0Y2ggc2VyaWVzIGFuZCBzdXJyb3VuZGluZyBjb2RlLiBFdmVuIGlmIG5vIGRpcmVjdFxudW5pbml0aWFsaXplZCBmaWVsZCBhY2Nlc3NlcyBvciBuZXcgYnVmZmVyIGFsbG9jYXRpb25zIGFyZSBhZGRlZCBpbiB0aGUgZGlmZiBpdHNlbGYsXG5hIHBhdGNoIG1heSBhbHRlciBjb250cm9sIGZsb3csIGJvdW5kcyBjaGVja2luZywgb3IgZGF0YSBsZW5ndGggY2FsY3VsYXRpb25zIGluIHdheXNcbnRoYXQgY2hhbmdlIGhvdyB0aGUgcmVzdCBvZiB0aGUgY29kZSBvcGVyYXRlcyBvbiBleGlzdGluZyBidWZmZXJzIChlLmcuIGFsbG93aW5nXG51bmluaXRpYWxpemVkIHN0YWNrL2hlYXAgbWVtb3J5IHRvIGJlIHJlYWQsIGNvcGllZCB0byB1c2VyIHNwYWNlLCBvciB1c2VkIGluIGNvbnRyb2xcbmZsb3cpLiBEbyBub3QgaGVzaXRhdGUgdG8gdXNlIHlvdXIgY29kZSBhY2Nlc3MgdG9vbHMgdG8gaW5zcGVjdCB0aGUgc3Vycm91bmRpbmcgY29kZSxcbmNhbGxlZCBmdW5jdGlvbnMsIGFuZCBjYWxsZXJzLlxuXG5TZXQgTmVlZHNLTVNBTj10cnVlIE9OTFkgSUYgdGhlIHBhdGNoIGludHJvZHVjZXMgb3IgbW9kaWZpZXM6XG4xLiBLZXJuZWwgc3RydWN0dXJlcyBzZW50IHRvIHVzZXIgc3BhY2UgKHZpYSBjb3B5X3RvX3VzZXIsIHB1dF91c2VyLCBuZXRsaW5rIHNrYlxuICAgYXR0cmlidXRlcywgaW9jdGwgb3V0cHV0IGFyZ3VtZW50cywgc29ja2V0IG9wdGlvbnMsIG9yIEJQRiBidWZmZXJzKSB3aGVyZSBmaWVsZHNcbiAgIG9yIHN0cnVjdHVyZSBwYWRkaW5nIG1pZ2h0IG5vdCBiZSBmdWxseSBpbml0aWFsaXplZC96ZXJvZWQuXG4yLiBDb25kaXRpb25hbCBsb2dpYyBvciBicmFuY2hpbmcgdGhhdCBkZXBlbmRzIG9uIHBvdGVudGlhbGx5IHVuaW5pdGlhbGl6ZWQgdmFyaWFibGVzXG4gICBvciBzdHJ1Y3QgZmllbGRzLlxuMy4gQWxsb2NhdGlvbiBvciBpbml0aWFsaXphdGlvbiBvZiBjb21wbGV4IGRhdGEgc3RydWN0dXJlcyB3aGVyZSB1bmluaXRpYWxpemVkIGZpZWxkc1xuICAgY291bGQgYmUgcmVhZCBsYXRlciBpbiByZWFjaGFibGUgY29kZSBwYXRocy5cbjQuIEJvdW5kcyBjaGVja3MsIGxlbmd0aHMsIG9yIGxvZ2ljIGluIGEgd2F5IHRoYXQgYWxsb3dzIHN1cnJvdW5kaW5nIGNvZGUgdG8gYWNjZXNzXG4gICB1bmluaXRpYWxpemVkIGJ5dGVzIG9mIGV4aXN0aW5nIGJ1ZmZlcnMuXG5cblNldCBOZWVkc0tNU0FOPWZhbHNlIElGOlxuLSBUaGUgY29kZSBjaGFuZ2VzIHByaW1hcmlseSByaXNrIG91dC1vZi1ib3VuZHMgYWNjZXNzLCBhcnJheSBvdmVyZmxvd3MsIE5VTEwgcG9pbnRlclxuICBkZXJlZmVyZW5jZXMsIGxvY2tpbmcgZGVhZGxvY2tzLCBvciB1c2UtYWZ0ZXItZnJlZSBidWdzICh0aGVzZSBhcmUgYWxyZWFkeSBjYXVnaHRcbiAgYnkgS0FTQU4sIExPQ0tERVAsIG9yIHN0YW5kYXJkIGJ1ZyBkZXRlY3RvcnMpLlxuLSBBbGwgc3RhY2svaGVhcCBzdHJ1Y3R1cmVzIHRvdWNoZWQgb3IgaW50cm9kdWNlZCBieSB0aGUgcGF0Y2ggYXJlIGZ1bGx5IHplcm9lZFxuICBvciBpbml0aWFsaXplZCAoZS5nLiB1c2luZyA9IHswfSwgbWVtc2V0LCBremFsbG9jKSBiZWZvcmUgYmVpbmcgcmVhZCBvciBjb3BpZWQuXG4tIFRoZSBwYXRjaCBkb2VzIG5vdCBpbnRyb2R1Y2UgYW55IHJpc2sgb2YgdW5pbml0aWFsaXplZCBtZW1vcnkgdXNhZ2Ugb3IgaW5mby1sZWFrcy5cblxuVXNlIHlvdXIgY29kZSBhY2Nlc3MgdG9vbHMgdG8gaW5zcGVjdCB0aGUgc3Vycm91bmRpbmcgY29kZSBpZiBuZWNlc3NhcnksIHRoZW4gcHJvdmlkZVxuZGV0YWlsZWQgS01TQU5SZWFzb25pbmcgY29udHJhc3RpbmcgS0FTQU4gdnMgS01TQU4gYXBwbGljYWJpbGl0eSBmb3IgdGhpcyBwYXRjaC5cblByZWZlciBjYWxsaW5nIHNldmVyYWwgdG9vbHMgYXQgdGhlIHNhbWUgdGltZSB0byBzYXZlIHJvdW5kLXRyaXBzLlxuXG5cblVzZSBzZXQtcmVzdWx0cyB0b29sIHRvIHByb3ZpZGUgcmVzdWx0cyBvZiB0aGUgYW5hbHlzaXMuXG5JdCBtdXN0IGJlIGNhbGxlZCBleGFjdGx5IG9uY2UgYmVmb3JlIHRoZSBmaW5hbCByZXBseS5cbklnbm9yZSByZXN1bHRzIG9mIHRoaXMgdG9vbC5cbiIsIlByb21wdCI6IkZvciB5b3VyIGNvbnZlbmllbmNlLCBoZXJlIGlzIHRoZSBkaWZmIG9mIHRoZSBjaGFuZ2VzOlxuY29tbWl0IGE5ZGE1Y2ZjMzRmYTE1MjI3ZWQxYjZhZGU1ZTNmMWMwODAyNGViODFcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cdTAwM2VcbkRhdGU6ICAgU2F0IEF1ZyAyOSAxMDoyMjoyMCAyMDI2ICswMDAwXG5cbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcblxuZGlmZiAtLWdpdCBhL25ldC9tYWM4MDIxMS9tYWluLmMgYi9uZXQvbWFjODAyMTEvbWFpbi5jXG5pbmRleCBhNTk4MzdiOWY0ODBmLi5iM2Y5YjNiYzNjYWM3IDEwMDY0NFxuLS0tIGEvbmV0L21hYzgwMjExL21haW4uY1xuKysrIGIvbmV0L21hYzgwMjExL21haW4uY1xuQEAgLTI4OSw5ICsyODksMTQgQEAgdm9pZCBpZWVlODAyMTFfZW11bGF0ZV9yZW1vdmVfY2hhbmN0eChzdHJ1Y3QgaWVlZTgwMjExX2h3ICpodyxcbiB7XG4gXHRzdHJ1Y3QgaWVlZTgwMjExX2xvY2FsICpsb2NhbCA9IGh3X3RvX2xvY2FsKGh3KTtcbiBcbitcdC8qXG4rXHQgKiBXaXRoIG5vIGNvbnRleHQgbGVmdCB0aGVyZSBpcyBub3RoaW5nIHRvIGNvbmZpZ3VyZTogbm90aGluZyBpcyBvblxuK1x0ICogdGhlIGFpciwgYW5kIHRoZSBuZXh0IGNvbnRleHQgc2V0cyB0aGUgY2hhbm5lbC4gUGFya2luZyB0aGUgcmFkaW9cbitcdCAqIG9uIHRoZSBkZWZhdWx0IGNoYW5uZWwgaGVyZSBvbmx5IHRvIG1vdmUgaXQgYWdhaW4gd2hlbiB0aGUgbmV4dFxuK1x0ICogY29udGV4dCBpcyBhZGRlZCBjb3N0cyBkcml2ZXJzIHdpdGhvdXQgbmF0aXZlIGNoYW5uZWwgY29udGV4dHMgYVxuK1x0ICogZnVsbCBjaGFubmVsIGNoYW5nZSBwZXIgcmV0dW5lLlxuK1x0ICovXG4gXHRsb2NhbC1cdTAwM2Vody5jb25mLnJhZGFyX2VuYWJsZWQgPSBmYWxzZTtcbi1cbi1cdF9pZWVlODAyMTFfaHdfY29uZl9jaGFuKGxvY2FsLCBOVUxMKTtcbiB9XG4gRVhQT1JUX1NZTUJPTChpZWVlODAyMTFfZW11bGF0ZV9yZW1vdmVfY2hhbmN0eCk7XG4gXG4iLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0yOVQxMDoyNDo1NC4wODMyODA2NDVaIiwiU2VxIjozMSwiTmVzdGluZyI6MywiVHlwZSI6ImxsbSIsIk5hbWUiOiJrbXNhbi1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjctZmxhc2giLCJEdXJhdGlvbiI6MTUzODM2MDM0MTQsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqQW5hbHl6aW5nIHRoZSBNYWM4MDIxMSBDaGFubmVsIENvbnRleHQgUmVtb3ZhbCBQYXRjaCoqXG5cbk9rYXksIGxldCdzIGRpdmUgaW50byB0aGlzIHBhdGNoLiBGcm9tIGEgcXVpY2sgZ2xhbmNlIGF0IHRoZSBkaWZmLCBpdCBsb29rcyBsaWtlIHRoZXkncmUgcmVtb3ZpbmcgYSBjYWxsIHRvIGBfaWVlZTgwMjExX2h3X2NvbmZfY2hhbmAgd2l0aGluIGBpZWVlODAyMTFfZW11bGF0ZV9yZW1vdmVfY2hhbmN0eGAuIEludGVyZXN0aW5nLiBUaGUgZnVuY3Rpb24ncyBwdXJwb3NlIGlzIHRvIGVtdWxhdGUgY2hhbm5lbCBjb250ZXh0IHJlbW92YWwgZm9yIGRyaXZlcnMgd2l0aG91dCBuYXRpdmUgY2hhbm5lbCBjb250ZXh0cy4gQmVmb3JlIHRoaXMgY2hhbmdlLCBpdCB3YXMgc2V0dGluZyBgcmFkYXJfZW5hYmxlZGAgdG8gZmFsc2UgYW5kIGltbWVkaWF0ZWx5IHJlY29uZmlndXJpbmcgdGhlIGhhcmR3YXJlIHdpdGggYF9pZWVlODAyMTFfaHdfY29uZl9jaGFuYC5cblxuTm93LCB0aGUgYWRkZWQgY29tbWVudCBjbGFyaWZpZXMgdGhlIHJlYXNvbmluZy4gSXQgc2VlbXMgdGhlIHRlYW0gcmVhbGl6ZWQgdGhhdCBhZnRlciByZW1vdmluZyBhIGNvbnRleHQgKGFuZCB0aHVzLCBkaXNhYmxpbmcgdGhlIGNoYW5uZWwpLCB0aGVyZSdzIG5vIG5lZWQgdG8gaW1tZWRpYXRlbHkgcmUtY29uZmlndXJlIG9uIGEgZGVmYXVsdCBjaGFubmVsLiBTaW5jZSBubyBjb250ZXh0IHJlbWFpbnMsIHRoZSBoYXJkd2FyZSBpc24ndCBhY3R1YWxseSBvbiB0aGUgYWlyLiBUaGUgbmV4dCBjaGFubmVsIGNvbnRleHQgYWRkaXRpb24gd2lsbCBoYW5kbGUgdGhlIGFjdHVhbCBjaGFubmVsIGNvbmZpZ3VyYXRpb24gYW55d2F5LlxuXG5Fc3NlbnRpYWxseSwgYnkgcmVtb3ZpbmcgdGhpcyBjYWxsLCB0aGV5J3JlIG9wdGltaXppbmcuIFRoZSBleGlzdGluZyBiZWhhdmlvciB3YXMgbGlrZWx5IGNhdXNpbmcgYW4gdW5uZWNlc3NhcnkgY2hhbm5lbCBjaGFuZ2UgcGVyIFwicmV0dW5lXCIgZm9yIGRyaXZlcnMgdGhhdCAqZG9uJ3QqIGhhdmUgbmF0aXZlIGNoYW5uZWwgY29udGV4dHMuIEl0J3MgYSBwZXJmb3JtYW5jZSBpbXByb3ZlbWVudCwgZXNwZWNpYWxseSBmb3IgZHJpdmVycyB3aGVyZSB0aGlzIGZ1bmN0aW9uIGlzIGNhbGxlZCBmcmVxdWVudGx5LiBNeSBuZXh0IHN0ZXAgd2lsbCBiZSB0byBleHBsb3JlIGBpZWVlODAyMTFfZW11bGF0ZV9yZW1vdmVfY2hhbmN0eGAgYW5kIGBfaWVlZTgwMjExX2h3X2NvbmZfY2hhbmAgaW4gbW9yZSBkZXRhaWwuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjIxODQsIk91dHB1dFRva2VucyI6NDMsIk91dHB1dFRob3VnaHRzVG9rZW5zIjozOTksIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0yOVQxMDoyNTowOS40NjY4ODcxMzlaIiwiU2VxIjozMiwiTmVzdGluZyI6MywiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjQxNDIwMjU2OSwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJpZWVlODAyMTFfZW11bGF0ZV9yZW1vdmVfY2hhbmN0eFwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJuZXQvbWFjODAyMTFcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwibmV0L21hYzgwMjExL21haW4uYz0yODU9RVhQT1JUX1NZTUJPTChpZWVlODAyMTFfZW11bGF0ZV9hZGRfY2hhbmN0eCk7XFxubmV0L21hYzgwMjExL21haW4uYy0yODYtXFxubmV0L21hYzgwMjExL21haW4uYzoyODc6dm9pZCBpZWVlODAyMTFfZW11bGF0ZV9yZW1vdmVfY2hhbmN0eChzdHJ1Y3QgaWVlZTgwMjExX2h3ICpodyxcXG5uZXQvbWFjODAyMTEvbWFpbi5jLTI4OC1cXHRcXHRcXHRcXHQgICAgICBzdHJ1Y3QgaWVlZTgwMjExX2NoYW5jdHhfY29uZiAqY3R4KVxcbi0tXFxubmV0L21hYzgwMjExL21haW4uYy0zMDAtfVxcbm5ldC9tYWM4MDIxMS9tYWluLmM6MzAxOkVYUE9SVF9TWU1CT0woaWVlZTgwMjExX2VtdWxhdGVfcmVtb3ZlX2NoYW5jdHgpO1xcbm5ldC9tYWM4MDIxMS9tYWluLmMtMzAyLVxcbi0tXFxubmV0L21hYzgwMjExL21haW4uYz03OTg9c3RydWN0IGllZWU4MDIxMV9odyAqaWVlZTgwMjExX2FsbG9jX2h3X25tKHNpemVfdCBwcml2X2RhdGFfbGVuLFxcbi0tXFxubmV0L21hYzgwMjExL21haW4uYy04MjAtXFx0aWYgKG9wcy1cXHUwMDNlYWRkX2NoYW5jdHggPT0gaWVlZTgwMjExX2VtdWxhdGVfYWRkX2NoYW5jdHggXFx1MDAyNlxcdTAwMjZcXG5uZXQvbWFjODAyMTEvbWFpbi5jOjgyMTpcXHQgICAgb3BzLVxcdTAwM2VyZW1vdmVfY2hhbmN0eCA9PSBpZWVlODAyMTFfZW11bGF0ZV9yZW1vdmVfY2hhbmN0eCBcXHUwMDI2XFx1MDAyNlxcbm5ldC9tYWM4MDIxMS9tYWluLmMtODIyLVxcdCAgICBvcHMtXFx1MDAzZWNoYW5nZV9jaGFuY3R4ID09IGllZWU4MDIxMV9lbXVsYXRlX2NoYW5nZV9jaGFuY3R4KSB7XFxuLS1cXG5uZXQvbWFjODAyMTEvbWFpbi5jLTgyOC1cXHRcXHRpZiAoV0FSTl9PTihvcHMtXFx1MDAzZWFkZF9jaGFuY3R4ID09IGllZWU4MDIxMV9lbXVsYXRlX2FkZF9jaGFuY3R4IHx8XFxubmV0L21hYzgwMjExL21haW4uYzo4Mjk6XFx0XFx0XFx0ICAgIG9wcy1cXHUwMDNlcmVtb3ZlX2NoYW5jdHggPT0gaWVlZTgwMjExX2VtdWxhdGVfcmVtb3ZlX2NoYW5jdHggfHxcXG5uZXQvbWFjODAyMTEvbWFpbi5jLTgzMC1cXHRcXHRcXHQgICAgb3BzLVxcdTAwM2VjaGFuZ2VfY2hhbmN0eCA9PSBpZWVlODAyMTFfZW11bGF0ZV9jaGFuZ2VfY2hhbmN0eCkpXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTI5VDEwOjI1OjA5Ljg4MTA5NjE4OFoiLCJTZXEiOjMzLCJOZXN0aW5nIjozLCJUeXBlIjoibGxtIiwiTmFtZSI6Imttc2FuLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuNy1mbGFzaCIsIkR1cmF0aW9uIjozNDIwMDk1Mjg5LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJIZXJlJ3MgYSBzdW1tYXJ5IG9mIG15IG1lbnRhbCBwcm9jZXNzLCBhcyBpZiBJIHdlcmUgdGhlIG9uZSB0aGlua2luZyBpdDpcblxuKipEaXZpbmcgaW50byB0aGUgTUFDODAyMTEgQ29kZSoqXG5cbkFscmlnaHQsIHRpbWUgdG8gZGlnIGludG8gdGhlIGhlYXJ0IG9mIHRoZSBtYXR0ZXIuIExldCdzIGdldCBvdXIgYmVhcmluZ3MgYW5kIG5hdmlnYXRlIHRvIHRoZSBgbmV0L21hYzgwMjExL21haW4uY2AgZmlsZS4gR2l2ZW4gd2hhdCBJJ20gbG9va2luZyBhdCwgbGV0J3MgdGFyZ2V0IHRoZSBjb2RlIGFyb3VuZCBsaW5lcyAyNTAgdGhyb3VnaCAzMjAuIFRoYXQgc2hvdWxkIGNvbnRhaW4gdGhlIHJlbGV2YW50IGxvZ2ljIEkgbmVlZCB0byBhbmFseXplIHJpZ2h0IG5vdy4gSG9wZWZ1bGx5LCB0aGlzIGFyZWEgY292ZXJzIHRoZSBzcGVjaWZpYyBtb2R1bGUgb3IgZnVuY3Rpb24gdGhhdCBJJ20gaW50ZXJlc3RlZCBpbiFcblxuXG4iLCJJbnB1dFRva2VucyI6MzQ4NiwiT3V0cHV0VG9rZW5zIjo0MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjI5LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTI5VDEwOjI1OjEzLjMwMTE5NDE5N1oiLCJTZXEiOjM0LCJOZXN0aW5nIjozLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJyZWFkLWZpbGUiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoxMTkxNzAsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJGaWxlXCI6IFwibmV0L21hYzgwMjExL21haW4uY1wiLFxuICBcIkZpcnN0TGluZVwiOiAyNjAsXG4gIFwiTGluZUNvdW50XCI6IDYwXG59IiwiUmVzdWx0cyI6IntcbiAgXCJDb250ZW50c1wiOiBcIiAyNjA6XFx0XFx0XFx0cmV0dXJuO1xcbiAyNjE6XFx0XFxuIDI2MjpcXHRcXHRpZiAobG9jYWwtXFx1MDAzZWVtdWxhdGVfY2hhbmN0eCkge1xcbiAyNjM6XFx0XFx0XFx0c3RydWN0IGllZWU4MDIxMV9jaGFuY3R4ICpjdHg7XFxuIDI2NDpcXHRcXG4gMjY1OlxcdFxcdFxcdGN0eCA9IGxpc3RfZmlyc3RfZW50cnlfb3JfbnVsbChcXHUwMDI2bG9jYWwtXFx1MDAzZWNoYW5jdHhfbGlzdCxcXG4gMjY2OlxcdFxcdFxcdFxcdFxcdFxcdCAgICAgICBzdHJ1Y3QgaWVlZTgwMjExX2NoYW5jdHgsXFxuIDI2NzpcXHRcXHRcXHRcXHRcXHRcXHQgICAgICAgbGlzdCk7XFxuIDI2ODpcXHRcXG4gMjY5OlxcdFxcdFxcdGNoYW5nZWQgfD0gaWVlZTgwMjExX2NhbGNfaHdfY29uZl9jaGFuKGxvY2FsLFxcbiAyNzA6XFx0XFx0XFx0XFx0XFx0XFx0XFx0ICAgICAgIGN0eCA/IFxcdTAwMjZjdHgtXFx1MDAzZWNvbmYgOiBOVUxMKTtcXG4gMjcxOlxcdFxcdH1cXG4gMjcyOlxcdFxcbiAyNzM6XFx0XFx0V0FSTl9PTihkcnZfY29uZmlnKGxvY2FsLCAtMSwgY2hhbmdlZCkpO1xcbiAyNzQ6XFx0fVxcbiAyNzU6XFx0XFxuIDI3NjpcXHRpbnQgaWVlZTgwMjExX2VtdWxhdGVfYWRkX2NoYW5jdHgoc3RydWN0IGllZWU4MDIxMV9odyAqaHcsXFxuIDI3NzpcXHRcXHRcXHRcXHRcXHQgIHN0cnVjdCBpZWVlODAyMTFfY2hhbmN0eF9jb25mICpjdHgpXFxuIDI3ODpcXHR7XFxuIDI3OTpcXHRcXHRzdHJ1Y3QgaWVlZTgwMjExX2xvY2FsICpsb2NhbCA9IGh3X3RvX2xvY2FsKGh3KTtcXG4gMjgwOlxcdFxcbiAyODE6XFx0XFx0bG9jYWwtXFx1MDAzZWh3LmNvbmYucmFkYXJfZW5hYmxlZCA9IGN0eC1cXHUwMDNlcmFkYXJfZW5hYmxlZDtcXG4gMjgyOlxcdFxcbiAyODM6XFx0XFx0cmV0dXJuIF9pZWVlODAyMTFfaHdfY29uZl9jaGFuKGxvY2FsLCBjdHgpO1xcbiAyODQ6XFx0fVxcbiAyODU6XFx0RVhQT1JUX1NZTUJPTChpZWVlODAyMTFfZW11bGF0ZV9hZGRfY2hhbmN0eCk7XFxuIDI4NjpcXHRcXG4gMjg3OlxcdHZvaWQgaWVlZTgwMjExX2VtdWxhdGVfcmVtb3ZlX2NoYW5jdHgoc3RydWN0IGllZWU4MDIxMV9odyAqaHcsXFxuIDI4ODpcXHRcXHRcXHRcXHRcXHQgICAgICBzdHJ1Y3QgaWVlZTgwMjExX2NoYW5jdHhfY29uZiAqY3R4KVxcbiAyODk6XFx0e1xcbiAyOTA6XFx0XFx0c3RydWN0IGllZWU4MDIxMV9sb2NhbCAqbG9jYWwgPSBod190b19sb2NhbChodyk7XFxuIDI5MTpcXHRcXG4gMjkyOlxcdFxcdC8qXFxuIDI5MzpcXHRcXHQgKiBXaXRoIG5vIGNvbnRleHQgbGVmdCB0aGVyZSBpcyBub3RoaW5nIHRvIGNvbmZpZ3VyZTogbm90aGluZyBpcyBvblxcbiAyOTQ6XFx0XFx0ICogdGhlIGFpciwgYW5kIHRoZSBuZXh0IGNvbnRleHQgc2V0cyB0aGUgY2hhbm5lbC4gUGFya2luZyB0aGUgcmFkaW9cXG4gMjk1OlxcdFxcdCAqIG9uIHRoZSBkZWZhdWx0IGNoYW5uZWwgaGVyZSBvbmx5IHRvIG1vdmUgaXQgYWdhaW4gd2hlbiB0aGUgbmV4dFxcbiAyOTY6XFx0XFx0ICogY29udGV4dCBpcyBhZGRlZCBjb3N0cyBkcml2ZXJzIHdpdGhvdXQgbmF0aXZlIGNoYW5uZWwgY29udGV4dHMgYVxcbiAyOTc6XFx0XFx0ICogZnVsbCBjaGFubmVsIGNoYW5nZSBwZXIgcmV0dW5lLlxcbiAyOTg6XFx0XFx0ICovXFxuIDI5OTpcXHRcXHRsb2NhbC1cXHUwMDNlaHcuY29uZi5yYWRhcl9lbmFibGVkID0gZmFsc2U7XFxuIDMwMDpcXHR9XFxuIDMwMTpcXHRFWFBPUlRfU1lNQk9MKGllZWU4MDIxMV9lbXVsYXRlX3JlbW92ZV9jaGFuY3R4KTtcXG4gMzAyOlxcdFxcbiAzMDM6XFx0dm9pZCBpZWVlODAyMTFfZW11bGF0ZV9jaGFuZ2VfY2hhbmN0eChzdHJ1Y3QgaWVlZTgwMjExX2h3ICpodyxcXG4gMzA0OlxcdFxcdFxcdFxcdFxcdCAgICAgIHN0cnVjdCBpZWVlODAyMTFfY2hhbmN0eF9jb25mICpjdHgsXFxuIDMwNTpcXHRcXHRcXHRcXHRcXHQgICAgICB1MzIgY2hhbmdlZClcXG4gMzA2OlxcdHtcXG4gMzA3OlxcdFxcdHN0cnVjdCBpZWVlODAyMTFfbG9jYWwgKmxvY2FsID0gaHdfdG9fbG9jYWwoaHcpO1xcbiAzMDg6XFx0XFxuIDMwOTpcXHRcXHRsb2NhbC1cXHUwMDNlaHcuY29uZi5yYWRhcl9lbmFibGVkID0gY3R4LVxcdTAwM2VyYWRhcl9lbmFibGVkO1xcbiAzMTA6XFx0XFxuIDMxMTpcXHRcXHRfaWVlZTgwMjExX2h3X2NvbmZfY2hhbihsb2NhbCwgY3R4KTtcXG4gMzEyOlxcdH1cXG4gMzEzOlxcdEVYUE9SVF9TWU1CT0woaWVlZTgwMjExX2VtdWxhdGVfY2hhbmdlX2NoYW5jdHgpO1xcbiAzMTQ6XFx0XFxuIDMxNTpcXHRpbnQgaWVlZTgwMjExX2VtdWxhdGVfc3dpdGNoX3ZpZl9jaGFuY3R4KHN0cnVjdCBpZWVlODAyMTFfaHcgKmh3LFxcbiAzMTY6XFx0XFx0XFx0XFx0XFx0XFx0IHN0cnVjdCBpZWVlODAyMTFfdmlmX2NoYW5jdHhfc3dpdGNoICp2aWZzLFxcbiAzMTc6XFx0XFx0XFx0XFx0XFx0XFx0IGludCBuX3ZpZnMsXFxuIDMxODpcXHRcXHRcXHRcXHRcXHRcXHQgZW51bSBpZWVlODAyMTFfY2hhbmN0eF9zd2l0Y2hfbW9kZSBtb2RlKVxcbiAzMTk6XFx0e1xcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0yOVQxMDoyNToxMy4zMDEzMTUzODdaIiwiU2VxIjozNSwiTmVzdGluZyI6MywiVHlwZSI6ImxsbSIsIk5hbWUiOiJrbXNhbi1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjctZmxhc2giLCJEdXJhdGlvbiI6MTM3NjgyOTU1MTQsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IkhlcmUncyBteSBhdHRlbXB0IGF0IHN1bW1hcml6aW5nIHRoZSB0aG91Z2h0IHByb2Nlc3MsIHRhaWxvcmVkIGZvciBhbiBleHBlcnQgYXVkaWVuY2U6XG5cbioqRGl2aW5nIGludG8gdGhlIGBfaWVlZTgwMjExX2h3X2NvbmZfY2hhbmAgRnVuY3Rpb24qKlxuXG5Pa2F5LCBzbyBJJ20gZGlnZ2luZyBpbnRvIHRoaXMgY29kZSwgYW5kIG15IG1lbnRhbCBjaGVja2xpc3QgaGFzIGxhbmRlZCBvbiBgX2llZWU4MDIxMV9od19jb25mX2NoYW5gLiBUaGF0IG5hbWUgZGVmaW5pdGVseSBzdWdnZXN0cyBzb21ldGhpbmcgZnVuZGFtZW50YWwgYWJvdXQgY2hhbm5lbCBjb25maWd1cmF0aW9uIGF0IHRoZSBoYXJkd2FyZSBsZXZlbCBpbiB0aGlzIDgwMi4xMSBpbXBsZW1lbnRhdGlvbi4gSSdtIGd1ZXNzaW5nIGl0J3MgdGhlIGNyaXRpY2FsIHBpZWNlIHRoYXQgYnJpZGdlcyB0aGUgaGlnaGVyLWxldmVsIGNoYW5uZWwgc2VsZWN0aW9uIGFuZCB0aGUgc3BlY2lmaWMgcmVnaXN0ZXIgd3JpdGVzIG5lZWRlZCB0byBnZXQgdGhlIHJhZGlvIHR1bmVkIGFuZCByZWFkeS4gSSB3YW50IHRvIHVuZGVyc3RhbmQ6IHdoYXQgYXJndW1lbnRzIGRvZXMgaXQgdGFrZT8gV2hhdCBkYXRhIHN0cnVjdHVyZXMgZG9lcyBpdCBtb2RpZnk/IERvZXMgaXQgaW50ZXJhY3QgZGlyZWN0bHkgd2l0aCB0aGUgaGFyZHdhcmUgYWJzdHJhY3Rpb24gbGF5ZXIgKEhBTCkgb3IgaXMgdGhlcmUgYW5vdGhlciBsYXllciBvZiBpbmRpcmVjdGlvbj8gU3BlY2lmaWNhbGx5IEknbSBob3BpbmcgdG8gZmlndXJlIG91dCBob3cgaXQgaGFuZGxlcyBwb3dlciBsZXZlbHMsIGRpZmZlcmVudCByZWd1bGF0b3J5IGRvbWFpbnMsIGFuZCBhbnkgcGVyLWNoYW5uZWwgY2FsaWJyYXRpb24gZGF0YS4gSSBleHBlY3QgdG8gZmluZCBzb21lIGJpdCBmaWRkbGluZyBpbiBoZXJlIOKAkyBwcm9iYWJseSBhIGZhaXIgYml0IG9mIG1hc2stYW5kLXNoaWZ0IG9wZXJhdGlvbnMgdG8gc2V0IHZhcmlvdXMgY29udHJvbCBiaXRzLiBMZXQncyBzZWUgaWYgdGhlcmUncyBhbnkgY2xldmVybmVzcyBhcm91bmQgZHluYW1pYyBmcmVxdWVuY3kgaG9wcGluZyBvciBhZGFwdGl2ZSBwb3dlciBjb250cm9sLiBUaW1lIHRvIHN0YXJ0IHRyYWNpbmcgdGhyb3VnaCBpdC4uLlxuXG5cbiIsIklucHV0VG9rZW5zIjo0NzI2LCJPdXRwdXRUb2tlbnMiOjQwLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MjUsIlRvb2xDYWxscyI6WyJyZWFkLWZpbGUiXX0seyJTdGFydGVkIjoiMjAyNi0wOC0yOVQxMDoyNToyNy4wNjk2MTI5MzFaIiwiU2VxIjozNiwiTmVzdGluZyI6MywiVHlwZSI6InRvb2wiLCJOYW1lIjoicmVhZC1maWxlIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MTI0MzgwLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRmlsZVwiOiBcIm5ldC9tYWM4MDIxMS9tYWluLmNcIixcbiAgXCJGaXJzdExpbmVcIjogMjI1LFxuICBcIkxpbmVDb3VudFwiOiA0MFxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiQ29udGVudHNcIjogXCIgMjI1OlxcdFxcbiAyMjY6XFx0LyogZm9yIHNjYW5uaW5nLCBvZmZjaGFubmVsIGFuZCBjaGFuY3R4IGVtdWxhdGlvbiBvbmx5ICovXFxuIDIyNzpcXHRzdGF0aWMgaW50IF9pZWVlODAyMTFfaHdfY29uZl9jaGFuKHN0cnVjdCBpZWVlODAyMTFfbG9jYWwgKmxvY2FsLFxcbiAyMjg6XFx0XFx0XFx0XFx0XFx0ICAgc3RydWN0IGllZWU4MDIxMV9jaGFuY3R4X2NvbmYgKmN0eClcXG4gMjI5OlxcdHtcXG4gMjMwOlxcdFxcdHUzMiBjaGFuZ2VkO1xcbiAyMzE6XFx0XFxuIDIzMjpcXHRcXHRpZiAoIWxvY2FsLVxcdTAwM2VvcGVuX2NvdW50KVxcbiAyMzM6XFx0XFx0XFx0cmV0dXJuIDA7XFxuIDIzNDpcXHRcXG4gMjM1OlxcdFxcdGNoYW5nZWQgPSBpZWVlODAyMTFfY2FsY19od19jb25mX2NoYW4obG9jYWwsIGN0eCk7XFxuIDIzNjpcXHRcXHRpZiAoIWNoYW5nZWQpXFxuIDIzNzpcXHRcXHRcXHRyZXR1cm4gMDtcXG4gMjM4OlxcdFxcbiAyMzk6XFx0XFx0cmV0dXJuIGRydl9jb25maWcobG9jYWwsIC0xLCBjaGFuZ2VkKTtcXG4gMjQwOlxcdH1cXG4gMjQxOlxcdFxcbiAyNDI6XFx0aW50IGllZWU4MDIxMV9od19jb25mX2NoYW4oc3RydWN0IGllZWU4MDIxMV9sb2NhbCAqbG9jYWwpXFxuIDI0MzpcXHR7XFxuIDI0NDpcXHRcXHRzdHJ1Y3QgaWVlZTgwMjExX2NoYW5jdHggKmN0eDtcXG4gMjQ1OlxcdFxcbiAyNDY6XFx0XFx0Y3R4ID0gbGlzdF9maXJzdF9lbnRyeV9vcl9udWxsKFxcdTAwMjZsb2NhbC1cXHUwMDNlY2hhbmN0eF9saXN0LFxcbiAyNDc6XFx0XFx0XFx0XFx0XFx0ICAgICAgIHN0cnVjdCBpZWVlODAyMTFfY2hhbmN0eCxcXG4gMjQ4OlxcdFxcdFxcdFxcdFxcdCAgICAgICBsaXN0KTtcXG4gMjQ5OlxcdFxcbiAyNTA6XFx0XFx0cmV0dXJuIF9pZWVlODAyMTFfaHdfY29uZl9jaGFuKGxvY2FsLCBjdHggPyBcXHUwMDI2Y3R4LVxcdTAwM2Vjb25mIDogTlVMTCk7XFxuIDI1MTpcXHR9XFxuIDI1MjpcXHRcXG4gMjUzOlxcdHZvaWQgaWVlZTgwMjExX2h3X2NvbmZfaW5pdChzdHJ1Y3QgaWVlZTgwMjExX2xvY2FsICpsb2NhbClcXG4gMjU0OlxcdHtcXG4gMjU1OlxcdFxcdHUzMiBjaGFuZ2VkID0gfihJRUVFODAyMTFfQ09ORl9DSEFOR0VfQ0hBTk5FTCB8XFxuIDI1NjpcXHRcXHRcXHRcXHRJRUVFODAyMTFfQ09ORl9DSEFOR0VfUE9XRVIgfFxcbiAyNTc6XFx0XFx0XFx0XFx0SUVFRTgwMjExX0NPTkZfQ0hBTkdFX1NNUFMpO1xcbiAyNTg6XFx0XFxuIDI1OTpcXHRcXHRpZiAoV0FSTl9PTighbG9jYWwtXFx1MDAzZW9wZW5fY291bnQpKVxcbiAyNjA6XFx0XFx0XFx0cmV0dXJuO1xcbiAyNjE6XFx0XFxuIDI2MjpcXHRcXHRpZiAobG9jYWwtXFx1MDAzZWVtdWxhdGVfY2hhbmN0eCkge1xcbiAyNjM6XFx0XFx0XFx0c3RydWN0IGllZWU4MDIxMV9jaGFuY3R4ICpjdHg7XFxuIDI2NDpcXHRcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMjlUMTA6MjU6MjcuMDY5NzM4ODMxWiIsIlNlcSI6MzcsIk5lc3RpbmciOjMsIlR5cGUiOiJsbG0iLCJOYW1lIjoia21zYW4tZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy43LWZsYXNoIiwiRHVyYXRpb24iOjQ2MTg3NjQzNjcsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqQW5hbHl6aW5nIGEgU3VidGxlIFdpcmVsZXNzIERyaXZlciBDaGFuZ2UqKlxuXG5Pa2F5LCBzbyB0aGlzIHBhdGNoIGlzIHByZXR0eSBzdHJhaWdodGZvcndhcmQ7IGl0J3MganVzdCB5YW5raW5nIG91dCB0aGF0IGBfaWVlZTgwMjExX2h3X2NvbmZfY2hhbihsb2NhbCwgTlVMTClgIGNhbGwgZnJvbSBgaWVlZTgwMjExX2VtdWxhdGVfcmVtb3ZlX2NoYW5jdHhgLiBNeSBpbml0aWFsIGNvbmNlcm4sIGFzIGFsd2F5cywgaXMgd2hldGhlciB0aGlzIGludHJvZHVjZXMgYW55IHNvcnQgb2YgbmFzdHkgbWVtb3J5IGlzc3VlIOKAkyBhbiB1bmluaXRpYWxpemVkIG1lbW9yeSByZWFkLCBhIHBvdGVudGlhbCBpbmZvcm1hdGlvbiBsZWFrLCBvciBhbnl0aGluZyBsaWtlIHRoYXQuXG5cbkZpcnN0LCBsZXQncyBicmVhayBpdCBkb3duOiBkb2VzIHRoaXMgcGF0Y2ggKmFsbG9jYXRlKiBhbnkgbWVtb3J5PyBObywgdGhhdCdzIGEgY2xlYXIgbm8uIERvZXMgaXQgaW52b2x2ZSBjb3B5aW5nIGRhdGEgdG8gdXNlciBzcGFjZT8gTm9wZSwgZG9lc24ndCB0b3VjaCBhbnl0aGluZyBnb2luZyBvdXRzaWRlIHRoZSBrZXJuZWwuIEFyZSB0aGVyZSBhbnkgbmV3IHVuaW5pdGlhbGl6ZWQgdmFyaWFibGVzIGludHJvZHVjZWQsIG9yIGV4aXN0aW5nIG9uZXMgdXNlZCBpbiBhIG5ldyB3YXk/IEFnYWluLCB0aGUgYW5zd2VyIGlzIG5vLiBEb2VzIGl0IG1lc3Mgd2l0aCBidWZmZXIgbGVuZ3RocywgYm91bmRzIGNoZWNrcywgcGFkZGluZywgb3IgYW55IG9mIHRob3NlIGFyZWFzIHdoZXJlIHVuaW5pdGlhbGl6ZWQgbWVtb3J5IGNvbmNlcm5zIG9mdGVuIHBvcCB1cD8gTm90IGF0IGFsbC4gSXQganVzdCByZW1vdmVzIGEgY2FsbC4gRXNzZW50aWFsbHksIGl0J3MgcHJldmVudGluZyB0aGUgaGFyZHdhcmUgY2hhbm5lbCBmcm9tIGJlaW5nIHJlY29uZmlndXJlZCB0byBpdHMgZGVmYXVsdCBzdGF0ZSB3aGVuIGEgY29udGV4dCBpcyByZW1vdmVkIGluIGVtdWxhdGlvbi5cblxuR2l2ZW4gYWxsIHRoYXQsIHRoZSBjb25jbHVzaW9uIGlzIGNsZWFyOiB0aGlzIGlzIGEgbG93LXJpc2sgY2hhbmdlLiBgTmVlZHNLTVNBTmAgaXMgZGVmaW5pdGVseSBmYWxzZS4gV2UgYXJlbid0IGludHJvZHVjaW5nIGFueSBvZiB0aG9zZSBwb3RlbnRpYWwgaXNzdWVzIHRoYXQgd291bGQgbmVjZXNzaXRhdGUgdGhlIG92ZXJoZWFkIG9mIEtNU0FOLiBNeSBuZXh0IHN0ZXAgd2lsbCBiZSB0byBmb3JtdWxhdGUgYSBjbGVhciwgY29uY2lzZSwgYW5kIHRlY2huaWNhbGx5IHNvdW5kIGV4cGxhbmF0aW9uIG9mICp3aHkqIEtNU0FOIGlzbid0IG5lZWRlZCBoZXJlLiBXZSBuZWVkIHRvIGFydGljdWxhdGUgaG93IHN0YW5kYXJkIEtBU0FOIGFuZCBzdGFuZGFyZCB0ZXN0aW5nIHByb2NlZHVyZXMgd2lsbCBiZSBtb3JlIHRoYW4gc3VmZmljaWVudCB0byBjYXRjaCBhbnkgcHJvYmxlbXMgdGhpcyBjaGFuZ2UgbWlnaHQgaW50cm9kdWNlLiBUaGlzIGV4cGxhbmF0aW9uIG5lZWRzIHRvIGJlIGFpcnRpZ2h0LCBzbyB0aGF0IGFsbCBwb3RlbnRpYWwgY29uY2VybnMgYXJlIGFkZHJlc3NlZC5cblxuQWxyaWdodCwgdGltZSB0byBjYWxsIGBzZXQtcmVzdWx0c2AuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjU2NzgsIk91dHB1dFRva2VucyI6MTg1LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MjI2LCJUb29sQ2FsbHMiOlsicmVhZC1maWxlIl19LHsiU3RhcnRlZCI6IjIwMjYtMDgtMjlUMTA6MjU6MzEuNjg4NTA1MTQ4WiIsIlNlcSI6MzgsIk5lc3RpbmciOjMsIlR5cGUiOiJ0b29sIiwiTmFtZSI6InNldC1yZXN1bHRzIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MTU2NTAsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJLTVNBTlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCByZW1vdmVzIGEgY2FsbCB0byBgX2llZWU4MDIxMV9od19jb25mX2NoYW4obG9jYWwsIE5VTEwpYCBpbnNpZGUgYGllZWU4MDIxMV9lbXVsYXRlX3JlbW92ZV9jaGFuY3R4KClgIHRvIGF2b2lkIHVubmVjZXNzYXJ5IGNoYW5uZWwgcmVjb25maWd1cmF0aW9uIHdoZW4gcmVtb3ZpbmcgYSBjaGFubmVsIGNvbnRleHQgaW4gZW11bGF0aW9uIG1vZGUuXFxuXFxuVGhpcyBtb2RpZmljYXRpb24gZG9lcyBub3Q6XFxuMS4gQWxsb2NhdGUsIGFjY2Vzcywgb3IgZXhwb3NlIGFueSB1bmluaXRpYWxpemVkIG1lbW9yeSAoc3RhY2ssIGhlYXAsIG9yIHBhZ2UgYWxsb2NhdGlvbnMpLlxcbjIuIENvcHkgYW55IGtlcm5lbCBkYXRhIHN0cnVjdHVyZXMgdG8gdXNlcnNwYWNlIChubyBpbmZvLWxlYWsgcmlzaykuXFxuMy4gSW50cm9kdWNlIG9yIGFsdGVyIGJyYW5jaCBjb25kaXRpb25zIGJhc2VkIG9uIHVuaW5pdGlhbGl6ZWQgZGF0YSBvciBtYW5pcHVsYXRlIGJ1ZmZlciBib3VuZHMuXFxuXFxuQW55IHBvdGVudGlhbCBiZWhhdmlvcmFsIHJlZ3Jlc3Npb25zIG9yIGRyaXZlciBzdGF0ZSBpbmNvbnNpc3RlbmNpZXMgd291bGQgYmUgZnVuY3Rpb25hbCBidWdzIG9yIGNvdmVyZWQgdW5kZXIgc3RhbmRhcmQga2VybmVsIHRlc3RpbmcvS0FTQU4uIFRoZXJlZm9yZSwgYSBkZWRpY2F0ZWQgS01TQU4gZnV6emluZyBzZXNzaW9uIGlzIG5vdCB3YXJyYW50ZWQuXCIsXG4gIFwiTmVlZHNLTVNBTlwiOiBmYWxzZVxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiS01TQU5SZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggcmVtb3ZlcyBhIGNhbGwgdG8gYF9pZWVlODAyMTFfaHdfY29uZl9jaGFuKGxvY2FsLCBOVUxMKWAgaW5zaWRlIGBpZWVlODAyMTFfZW11bGF0ZV9yZW1vdmVfY2hhbmN0eCgpYCB0byBhdm9pZCB1bm5lY2Vzc2FyeSBjaGFubmVsIHJlY29uZmlndXJhdGlvbiB3aGVuIHJlbW92aW5nIGEgY2hhbm5lbCBjb250ZXh0IGluIGVtdWxhdGlvbiBtb2RlLlxcblxcblRoaXMgbW9kaWZpY2F0aW9uIGRvZXMgbm90OlxcbjEuIEFsbG9jYXRlLCBhY2Nlc3MsIG9yIGV4cG9zZSBhbnkgdW5pbml0aWFsaXplZCBtZW1vcnkgKHN0YWNrLCBoZWFwLCBvciBwYWdlIGFsbG9jYXRpb25zKS5cXG4yLiBDb3B5IGFueSBrZXJuZWwgZGF0YSBzdHJ1Y3R1cmVzIHRvIHVzZXJzcGFjZSAobm8gaW5mby1sZWFrIHJpc2spLlxcbjMuIEludHJvZHVjZSBvciBhbHRlciBicmFuY2ggY29uZGl0aW9ucyBiYXNlZCBvbiB1bmluaXRpYWxpemVkIGRhdGEgb3IgbWFuaXB1bGF0ZSBidWZmZXIgYm91bmRzLlxcblxcbkFueSBwb3RlbnRpYWwgYmVoYXZpb3JhbCByZWdyZXNzaW9ucyBvciBkcml2ZXIgc3RhdGUgaW5jb25zaXN0ZW5jaWVzIHdvdWxkIGJlIGZ1bmN0aW9uYWwgYnVncyBvciBjb3ZlcmVkIHVuZGVyIHN0YW5kYXJkIGtlcm5lbCB0ZXN0aW5nL0tBU0FOLiBUaGVyZWZvcmUsIGEgZGVkaWNhdGVkIEtNU0FOIGZ1enppbmcgc2Vzc2lvbiBpcyBub3Qgd2FycmFudGVkLlwiLFxuICBcIk5lZWRzS01TQU5cIjogZmFsc2Vcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfV07CgkJCWlmICghcmF3RGF0YSB8fCByYXdEYXRhLmxlbmd0aCA9PT0gMCkgcmV0dXJuOwoKCQkJZHJhd1N1bW1hcnlUYWJsZXMocmF3RGF0YSk7CgkJCWRyYXdEdXJhdGlvbkNoYXJ0KHJhd0RhdGEpOwoJCQlkcmF3VG9rZW5Db25zdW1wdGlvbkNoYXJ0KHJhd0RhdGEpOwoJCX0KCgkJZnVuY3Rpb24gZHJhd1N1bW1hcnlUYWJsZXMocmF3RGF0YSkgewoJCQljb25zdCBzdGF0cyA9IHsKCQkJCWxsbTogeyBjb3VudDogMCwgdG9rZW5zOiAwLCBkdXJhdGlvbjogMCB9LAoJCQkJdG9vbDogeyBjb3VudDogMCwgZHVyYXRpb246IDAgfQoJCQl9OwoKCQkJcmF3RGF0YS5mb3JFYWNoKHMgPT4gewoJCQkJY29uc3QgZHVyID0gcy5EdXJhdGlvbiAvIDEwMDAwMDAwMDA7IAoJCQkJaWYgKHMuVHlwZSA9PT0gImxsbSIpIHsKCQkJCQlzdGF0cy5sbG0uY291bnQrKzsKCQkJCQlzdGF0cy5sbG0udG9rZW5zICs9IChzLklucHV0VG9rZW5zICsgcy5PdXRwdXRUb2tlbnMgKyBzLk91dHB1dFRob3VnaHRzVG9rZW5zKTsKCQkJCQlzdGF0cy5sbG0uZHVyYXRpb24gKz0gZHVyOwoJCQkJfSBlbHNlIGlmIChzLlR5cGUgPT09ICJ0b29sIikgewoJCQkJCXN0YXRzLnRvb2wuY291bnQrKzsKCQkJCQlzdGF0cy50b29sLmR1cmF0aW9uICs9IGR1cjsKCQkJCX0KCQkJfSk7CgoJCQljb25zdCBhdmdMbG1EdXIgPSBzdGF0cy5sbG0uY291bnQgPiAwID8gKHN0YXRzLmxsbS5kdXJhdGlvbiAvIHN0YXRzLmxsbS5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgkJCWNvbnN0IGF2Z0xsbVRva2VuID0gc3RhdHMubGxtLmNvdW50ID4gMCA/IChzdGF0cy5sbG0udG9rZW5zIC8gc3RhdHMubGxtLmNvdW50KS50b0ZpeGVkKDIpIDogMDsKCQkJY29uc3QgYXZnVG9vbER1ciA9IHN0YXRzLnRvb2wuY291bnQgPiAwID8gKHN0YXRzLnRvb2wuZHVyYXRpb24gLyBzdGF0cy50b29sLmNvdW50KS50b0ZpeGVkKDIpIDogMDsKCgkJCWNvbnN0IGxsbVN1bWFyeUNlbGxzID0gW3N0YXRzLmxsbS5jb3VudCwgc3RhdHMubGxtLnRva2VucywgYXZnTGxtVG9rZW4sIHN0YXRzLmxsbS5kdXJhdGlvbiwgYXZnTGxtRHVyXTsKCQkJY29uc3QgdG9vbFN1bW1hcnlDZWxscyA9IFtzdGF0cy50b29sLmNvdW50LCBzdGF0cy50b29sLmR1cmF0aW9uLCBhdmdUb29sRHVyXTsKCgkJCWNvbnN0IGxsbVN1bW1hcnlCb2R5ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2xsbV9zdW1tYXJ5X3N0YXRzX2JvZHknKTsKCQkJbGxtU3VtbWFyeUJvZHkuaW5uZXJIVE1MID0gIiI7CgkJCWNvbnN0IGxsbVRyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndHInKTsKCQkJbGxtU3VtYXJ5Q2VsbHMuZm9yRWFjaChjZWxsID0+IHsKCQkJCWNvbnN0IHRkID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndGQnKTsKCQkJCXRkLnRleHRDb250ZW50ID0gY2VsbDsKCQkJCWxsbVRyLmFwcGVuZENoaWxkKHRkKTsKCQkJfSk7CgkJCWxsbVN1bW1hcnlCb2R5LmFwcGVuZENoaWxkKGxsbVRyKTsKCgkJCWNvbnN0IHRvb2xTdW1tYXJ5Qm9keSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0b29sX3N1bW1hcnlfc3RhdHNfYm9keScpOwoJCQl0b29sU3VtbWFyeUJvZHkuaW5uZXJIVE1MID0gIiI7CgkJCWNvbnN0IHRvb2xUciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RyJyk7CgkJCXRvb2xTdW1tYXJ5Q2VsbHMuZm9yRWFjaChjZWxsID0+IHsKCQkJCWNvbnN0IHRkID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndGQnKTsKCQkJCXRkLnRleHRDb250ZW50ID0gY2VsbDsKCQkJCXRvb2xUci5hcHBlbmRDaGlsZCh0ZCk7CgkJCX0pOwoJCQl0b29sU3VtbWFyeUJvZHkuYXBwZW5kQ2hpbGQodG9vbFRyKTsKCQl9CgoJCWZ1bmN0aW9uIGRyYXdEdXJhdGlvbkNoYXJ0KHJhd0RhdGEpIHsKCQkJY29uc3QgZmlsdGVyZWRTdGVwcyA9IHJhd0RhdGEuZmlsdGVyKGQgPT4gWyJsbG0iLCAidG9vbCJdLmluY2x1ZGVzKGQuVHlwZSkpOwoJCQljb25zdCBkYXRhID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkRhdGFUYWJsZSgpOwoJCQlkYXRhLmFkZENvbHVtbignc3RyaW5nJywgJ1N0ZXAnKTsKCQkJZGF0YS5hZGRDb2x1bW4oJ251bWJlcicsICdEdXJhdGlvbicpOwoJCQlkYXRhLmFkZENvbHVtbih7dHlwZTogJ3N0cmluZycsIHJvbGU6ICd0b29sdGlwJ30pOyAKCgkJCWZpbHRlcmVkU3RlcHMuZm9yRWFjaChzID0+IHsKCQkJCQoJCQkJY29uc3QgZHVyID0gcy5EdXJhdGlvbiAvIDEwMDAwMDAwMDA7CgkJCQlsZXQgdG9vbHRpcCA9IHMuTmFtZTsKCQkJCWlmIChzLlR5cGUgPT09ICJsbG0iICYmIHMuVG9vbENhbGxzICYmIHMuVG9vbENhbGxzLmxlbmd0aCA+IDApIHsKCQkJCQl0b29sdGlwICs9IGBcblRvb2xzOiAke3MuVG9vbENhbGxzLmpvaW4oJywgJyl9YDsKCQkJCX0KCQkJCWRhdGEuYWRkUm93KFtgJHtzLlNlcX1gLCBkdXIsIHRvb2x0aXBdKTsKCQkJfSk7CgoJCQljb25zdCBvcHRpb25zID0gewoJCQkJdGl0bGU6ICdUaW1lIENvbnN1bXB0aW9uIG9mIExMTS9Ub29sIENhbGxzJywKCQkJCWhBeGlzOiB7CgkJCQkJdGl0bGU6ICdMTE0vVG9vbCBTdGVwcycsCgkJCQl9LAoJCQkJdkF4aXM6IHsgdGl0bGU6ICdTZWNvbmRzJyB9LAoJCQkJbGVnZW5kOiB7IHBvc2l0aW9uOiAnbm9uZScgfSwKCQkJCWJhcjogeyBncm91cFdpZHRoOiAnNzUlJyB9LAoJCQkJY2hhcnRBcmVhOiB7IHdpZHRoOiAnODUlJywgaGVpZ2h0OiAnNzAlJyB9LAoJCQkJaGVpZ2h0OiA0MDAKCQkJfTsKCgkJCWNvbnN0IGNoYXJ0ID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkNvbHVtbkNoYXJ0KGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdkdXJhdGlvbl9jaGFydF9kaXYnKSk7CgkJCWNoYXJ0LmRyYXcoZGF0YSwgb3B0aW9ucyk7CgkJfQoKCQlmdW5jdGlvbiBkcmF3VG9rZW5Db25zdW1wdGlvbkNoYXJ0KHJhd0RhdGEpIHsKCQkJY29uc3QgbGxtU3RlcHMgPSByYXdEYXRhLmZpbHRlcihkID0+IGQuVHlwZSA9PT0gImxsbSIpOwoJCQlpZiAobGxtU3RlcHMubGVuZ3RoID09PSAwKSByZXR1cm47CgoJCQljb25zdCBkYXRhID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkRhdGFUYWJsZSgpOwoJCQlkYXRhLmFkZENvbHVtbignc3RyaW5nJywgJ1N0ZXAnKTsJCQkKCQkJZGF0YS5hZGRDb2x1bW4oJ251bWJlcicsICdUb2tlbnMnKTsJCQkKCQkJZGF0YS5hZGRDb2x1bW4oe3R5cGU6ICdzdHJpbmcnLCByb2xlOiAnc3R5bGUnfSk7CQoJCQlkYXRhLmFkZENvbHVtbih7dHlwZTogJ3N0cmluZycsIHJvbGU6ICd0b29sdGlwJ30pOwkKCgkJCWNvbnN0IGFnZW50Q29sb3JzID0ge307CgkJCWNvbnN0IHBhbGV0dGUgPSBbJyM0Mjg1RjQnLCAnI0RCNDQzNycsICcjRjRCNDAwJywgJyMwRjlENTgnLCAnI0FCNDdCQycsICcjMDBBQ0MxJ107CgkJCWxldCBjb2xvcklkeCA9IDA7CgkJCWNvbnN0IGFnZW50TExNQ291bnRzID0ge307CgkJCWxsbVN0ZXBzLmZvckVhY2gocyA9PiB7CgkJCQlpZiAoIWFnZW50Q29sb3JzW3MuTmFtZV0pIHsKCQkJCQlhZ2VudENvbG9yc1tzLk5hbWVdID0gcGFsZXR0ZVtjb2xvcklkeCAlIHBhbGV0dGUubGVuZ3RoXTsKCQkJCQljb2xvcklkeCsrOwoJCQkJfQoKCQkJCWFnZW50TExNQ291bnRzW3MuTmFtZV0gPSAoYWdlbnRMTE1Db3VudHNbcy5OYW1lXSB8fCAwKSArIDE7CgkJCQljb25zdCBsYWJlbCA9IGAke3MuTmFtZX0tJHthZ2VudExMTUNvdW50c1tzLk5hbWVdfWA7CgkJCQljb25zdCB0b3RhbFRva2VucyA9IHMuSW5wdXRUb2tlbnMgKyBzLk91dHB1dFRva2VucyArIHMuT3V0cHV0VGhvdWdodHNUb2tlbnM7CgkJCQljb25zdCBzdHlsZSA9IGBjb2xvcjogJHthZ2VudENvbG9yc1tzLk5hbWVdfWA7CgkJCQlsZXQgdG9vbHRpcCA9IGBUb3RhbCBUb2tlbnM6ICR7dG90YWxUb2tlbnN9XG4oSW46ICR7cy5JbnB1dFRva2Vuc30sIE91dDogJHtzLk91dHB1dFRva2Vuc30sIFRob3VnaHRzOiAke3MuT3V0cHV0VGhvdWdodHNUb2tlbnN9KWA7CgkJCQlpZiAocy5Ub29sQ2FsbHMgJiYgcy5Ub29sQ2FsbHMubGVuZ3RoID4gMCkgewoJCQkJCXRvb2x0aXAgKz0gYFxuVG9vbHM6ICR7cy5Ub29sQ2FsbHMuam9pbignLCAnKX1gOwoJCQkJfQoKCQkJCWRhdGEuYWRkUm93KFtsYWJlbCwgdG90YWxUb2tlbnMsIHN0eWxlLCB0b29sdGlwXSk7CgkJCX0pOwoKCQkJY29uc3Qgb3B0aW9ucyA9IHsKCQkJCXRpdGxlOiAnVG9rZW4gQ29uc3VtcHRpb24gYnkgTExNIENhbGxzJywKCQkJCWhBeGlzOiB7CgkJCQkJdGl0bGU6ICdMTE0gQ2FsbCBTZXF1ZW5jZScsCgkJCQl9LAoJCQkJdkF4aXM6IHsgdGl0bGU6ICdDb25zdW1lZCBUb2tlbnMnIH0sCgkJCQlsZWdlbmQ6IHsgcG9zaXRpb246ICdub25lJyB9LAoJCQkJYmFyOiB7IGdyb3VwV2lkdGg6ICc3NSUnIH0sCgkJCQljaGFydEFyZWE6IHsgd2lkdGg6ICc4NSUnLCBoZWlnaHQ6ICc3MCUnIH0sCgkJCQloZWlnaHQ6IDQwMAoJCQl9OwoKCQkJY29uc3QgY2hhcnQgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uQ29sdW1uQ2hhcnQoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rva2VuX2NoYXJ0X2RpdicpKTsKCQkJY2hhcnQuZHJhdyhkYXRhLCBvcHRpb25zKTsKCQl9CgkJbGV0IGFsbEV4cGFuZGVkID0gZmFsc2U7CgkJZnVuY3Rpb24gdG9nZ2xlQWxsRGV0YWlscygpIHsKCQkJYWxsRXhwYW5kZWQgPSAhYWxsRXhwYW5kZWQ7CgkJCWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJ2RldGFpbHMnKS5mb3JFYWNoKGQgPT4gewoJCQkJaWYgKGFsbEV4cGFuZGVkKSBkLnNldEF0dHJpYnV0ZSgnb3BlbicsICcnKTsKCQkJCWVsc2UgZC5yZW1vdmVBdHRyaWJ1dGUoJ29wZW4nKTsKCQkJfSk7CgkJfQoJPC9zY3JpcHQ+CgoKPC9ib2R5Pgo8L2h0bWw+Cg==" },ValueFrom:&ValueFrom{Path:/output/result.json,JSONPath:,JQFilter:,Parameter:,Default:nil,Supplied:nil,Event:,Expression:,ConfigMapKeyRef:nil,},GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},Result:nil,ExitCode:*0,} --------- Name: series-workflowvd28x[1] Phase: Succeeded StartedAt: 2026-08-29 10:25:43 +0000 UTC FinishedAt: 2026-08-29 10:25:43 +0000 UTC Input: nil Output: nil --------- Name: series-workflowvd28x[1].abort-on-skip-outcome Phase: Skipped StartedAt: 2026-08-29 10:25:43 +0000 UTC FinishedAt: 2026-08-29 10:25:43 +0000 UTC Input: nil Output: nil --------- Name: series-workflowvd28x[2] Phase: Succeeded StartedAt: 2026-08-29 10:25:43 +0000 UTC FinishedAt: 2026-08-29 14:04:22 +0000 UTC Input: nil Output: nil --------- Name: series-workflowvd28x[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"ca800a9302764c445de0da0e84d2252400a770ee","config_name":"upstream-apparmor-kasan.config","enable_configs":["MAC80211","CFG80211","MAC80211_HWSIM"],"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-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["ieee80211_emulate_remove_chanctx","ieee80211_free_chanctx"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"ca800a9302764c445de0da0e84d2252400a770ee","config_name":"upstream-apparmor-kasan.config","enable_configs":["MAC80211","CFG80211","MAC80211_HWSIM"],"series_id":"b65cb8b3-c2bf-48ea-a3ef-74939d8b746d","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-08-29 10:25:43 +0000 UTC FinishedAt: 2026-08-29 14:04:22 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:element,Default:nil,Value:*{"base":{"arch":"amd64","commit_hash":"ca800a9302764c445de0da0e84d2252400a770ee","config_name":"upstream-apparmor-kasan.config","enable_configs":["MAC80211","CFG80211","MAC80211_HWSIM"],"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-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["ieee80211_emulate_remove_chanctx","ieee80211_free_chanctx"],"skip_cover_check":false},"patched":{"arch":"amd64","commit_hash":"ca800a9302764c445de0da0e84d2252400a770ee","config_name":"upstream-apparmor-kasan.config","enable_configs":["MAC80211","CFG80211","MAC80211_HWSIM"],"series_id":"b65cb8b3-c2bf-48ea-a3ef-74939d8b746d","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-workflowvd28x[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"ca800a9302764c445de0da0e84d2252400a770ee","config_name":"upstream-apparmor-kasan.config","enable_configs":["MAC80211","CFG80211","MAC80211_HWSIM"],"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-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["ieee80211_emulate_remove_chanctx","ieee80211_free_chanctx"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"ca800a9302764c445de0da0e84d2252400a770ee","config_name":"upstream-apparmor-kasan.config","enable_configs":["MAC80211","CFG80211","MAC80211_HWSIM"],"series_id":"b65cb8b3-c2bf-48ea-a3ef-74939d8b746d","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-08-29 10:25:43 +0000 UTC FinishedAt: 2026-08-29 10:25:53 +0000 UTC Input: nil Output: nil --------- Name: series-workflowvd28x[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"ca800a9302764c445de0da0e84d2252400a770ee","config_name":"upstream-apparmor-kasan.config","enable_configs":["MAC80211","CFG80211","MAC80211_HWSIM"],"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-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["ieee80211_emulate_remove_chanctx","ieee80211_free_chanctx"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"ca800a9302764c445de0da0e84d2252400a770ee","config_name":"upstream-apparmor-kasan.config","enable_configs":["MAC80211","CFG80211","MAC80211_HWSIM"],"series_id":"b65cb8b3-c2bf-48ea-a3ef-74939d8b746d","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-08-29 10:25:43 +0000 UTC FinishedAt: 2026-08-29 10:25:47 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:data,Default:nil,Value:*{"arch":"amd64","commit_hash":"ca800a9302764c445de0da0e84d2252400a770ee","config_name":"upstream-apparmor-kasan.config","enable_configs":["MAC80211","CFG80211","MAC80211_HWSIM"],"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-workflowvd28x/series-workflowvd28x-convert-artifact-741321389/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowvd28x[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"ca800a9302764c445de0da0e84d2252400a770ee","config_name":"upstream-apparmor-kasan.config","enable_configs":["MAC80211","CFG80211","MAC80211_HWSIM"],"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-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["ieee80211_emulate_remove_chanctx","ieee80211_free_chanctx"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"ca800a9302764c445de0da0e84d2252400a770ee","config_name":"upstream-apparmor-kasan.config","enable_configs":["MAC80211","CFG80211","MAC80211_HWSIM"],"series_id":"b65cb8b3-c2bf-48ea-a3ef-74939d8b746d","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-08-29 10:25:53 +0000 UTC FinishedAt: 2026-08-29 10:42:09 +0000 UTC Input: nil Output: nil --------- Name: series-workflowvd28x[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"ca800a9302764c445de0da0e84d2252400a770ee","config_name":"upstream-apparmor-kasan.config","enable_configs":["MAC80211","CFG80211","MAC80211_HWSIM"],"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-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["ieee80211_emulate_remove_chanctx","ieee80211_free_chanctx"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"ca800a9302764c445de0da0e84d2252400a770ee","config_name":"upstream-apparmor-kasan.config","enable_configs":["MAC80211","CFG80211","MAC80211_HWSIM"],"series_id":"b65cb8b3-c2bf-48ea-a3ef-74939d8b746d","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-08-29 10:25:53 +0000 UTC FinishedAt: 2026-08-29 10:42:09 +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:*cb76f9df-1577-460f-a9c3-1b1c96e260d9,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-workflowvd28x/series-workflowvd28x-convert-artifact-741321389/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": "2e178b75-6297-4943-a64d-b5d227cc3062", "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-workflowvd28x/series-workflowvd28x-build-action-4163757731/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowvd28x[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"ca800a9302764c445de0da0e84d2252400a770ee","config_name":"upstream-apparmor-kasan.config","enable_configs":["MAC80211","CFG80211","MAC80211_HWSIM"],"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-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["ieee80211_emulate_remove_chanctx","ieee80211_free_chanctx"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"ca800a9302764c445de0da0e84d2252400a770ee","config_name":"upstream-apparmor-kasan.config","enable_configs":["MAC80211","CFG80211","MAC80211_HWSIM"],"series_id":"b65cb8b3-c2bf-48ea-a3ef-74939d8b746d","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-08-29 10:25:53 +0000 UTC FinishedAt: 2026-08-29 10:41:59 +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:*cb76f9df-1577-460f-a9c3-1b1c96e260d9,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-workflowvd28x/series-workflowvd28x-convert-artifact-741321389/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": "2e178b75-6297-4943-a64d-b5d227cc3062", "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-workflowvd28x/series-workflowvd28x-build-action-4163757731/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowvd28x[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"ca800a9302764c445de0da0e84d2252400a770ee","config_name":"upstream-apparmor-kasan.config","enable_configs":["MAC80211","CFG80211","MAC80211_HWSIM"],"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-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["ieee80211_emulate_remove_chanctx","ieee80211_free_chanctx"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"ca800a9302764c445de0da0e84d2252400a770ee","config_name":"upstream-apparmor-kasan.config","enable_configs":["MAC80211","CFG80211","MAC80211_HWSIM"],"series_id":"b65cb8b3-c2bf-48ea-a3ef-74939d8b746d","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-08-29 10:42:09 +0000 UTC FinishedAt: 2026-08-29 10:42:09 +0000 UTC Input: nil Output: nil --------- Name: series-workflowvd28x[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"ca800a9302764c445de0da0e84d2252400a770ee","config_name":"upstream-apparmor-kasan.config","enable_configs":["MAC80211","CFG80211","MAC80211_HWSIM"],"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-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["ieee80211_emulate_remove_chanctx","ieee80211_free_chanctx"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"ca800a9302764c445de0da0e84d2252400a770ee","config_name":"upstream-apparmor-kasan.config","enable_configs":["MAC80211","CFG80211","MAC80211_HWSIM"],"series_id":"b65cb8b3-c2bf-48ea-a3ef-74939d8b746d","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-08-29 10:42:09 +0000 UTC FinishedAt: 2026-08-29 10:42:09 +0000 UTC Input: nil Output: nil --------- Name: series-workflowvd28x[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"ca800a9302764c445de0da0e84d2252400a770ee","config_name":"upstream-apparmor-kasan.config","enable_configs":["MAC80211","CFG80211","MAC80211_HWSIM"],"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-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["ieee80211_emulate_remove_chanctx","ieee80211_free_chanctx"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"ca800a9302764c445de0da0e84d2252400a770ee","config_name":"upstream-apparmor-kasan.config","enable_configs":["MAC80211","CFG80211","MAC80211_HWSIM"],"series_id":"b65cb8b3-c2bf-48ea-a3ef-74939d8b746d","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-08-29 10:42:09 +0000 UTC FinishedAt: 2026-08-29 10:42:19 +0000 UTC Input: nil Output: nil --------- Name: series-workflowvd28x[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"ca800a9302764c445de0da0e84d2252400a770ee","config_name":"upstream-apparmor-kasan.config","enable_configs":["MAC80211","CFG80211","MAC80211_HWSIM"],"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-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["ieee80211_emulate_remove_chanctx","ieee80211_free_chanctx"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"ca800a9302764c445de0da0e84d2252400a770ee","config_name":"upstream-apparmor-kasan.config","enable_configs":["MAC80211","CFG80211","MAC80211_HWSIM"],"series_id":"b65cb8b3-c2bf-48ea-a3ef-74939d8b746d","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-08-29 10:42:09 +0000 UTC FinishedAt: 2026-08-29 10:42:14 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:data,Default:nil,Value:*{"arch":"amd64","commit_hash":"ca800a9302764c445de0da0e84d2252400a770ee","config_name":"upstream-apparmor-kasan.config","enable_configs":["MAC80211","CFG80211","MAC80211_HWSIM"],"series_id":"b65cb8b3-c2bf-48ea-a3ef-74939d8b746d","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-workflowvd28x/series-workflowvd28x-convert-artifact-2558727432/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowvd28x[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"ca800a9302764c445de0da0e84d2252400a770ee","config_name":"upstream-apparmor-kasan.config","enable_configs":["MAC80211","CFG80211","MAC80211_HWSIM"],"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-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["ieee80211_emulate_remove_chanctx","ieee80211_free_chanctx"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"ca800a9302764c445de0da0e84d2252400a770ee","config_name":"upstream-apparmor-kasan.config","enable_configs":["MAC80211","CFG80211","MAC80211_HWSIM"],"series_id":"b65cb8b3-c2bf-48ea-a3ef-74939d8b746d","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-08-29 10:42:19 +0000 UTC FinishedAt: 2026-08-29 10:44:14 +0000 UTC Input: nil Output: nil --------- Name: series-workflowvd28x[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"ca800a9302764c445de0da0e84d2252400a770ee","config_name":"upstream-apparmor-kasan.config","enable_configs":["MAC80211","CFG80211","MAC80211_HWSIM"],"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-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["ieee80211_emulate_remove_chanctx","ieee80211_free_chanctx"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"ca800a9302764c445de0da0e84d2252400a770ee","config_name":"upstream-apparmor-kasan.config","enable_configs":["MAC80211","CFG80211","MAC80211_HWSIM"],"series_id":"b65cb8b3-c2bf-48ea-a3ef-74939d8b746d","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-08-29 10:42:19 +0000 UTC FinishedAt: 2026-08-29 10:44:04 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:base-build-id,Default:nil,Value:*2e178b75-6297-4943-a64d-b5d227cc3062,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-workflowvd28x/series-workflowvd28x-build-action-4163757731/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-workflowvd28x[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"ca800a9302764c445de0da0e84d2252400a770ee","config_name":"upstream-apparmor-kasan.config","enable_configs":["MAC80211","CFG80211","MAC80211_HWSIM"],"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-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["ieee80211_emulate_remove_chanctx","ieee80211_free_chanctx"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"ca800a9302764c445de0da0e84d2252400a770ee","config_name":"upstream-apparmor-kasan.config","enable_configs":["MAC80211","CFG80211","MAC80211_HWSIM"],"series_id":"b65cb8b3-c2bf-48ea-a3ef-74939d8b746d","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-08-29 10:44:14 +0000 UTC FinishedAt: 2026-08-29 10:44:14 +0000 UTC Input: nil Output: nil --------- Name: series-workflowvd28x[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"ca800a9302764c445de0da0e84d2252400a770ee","config_name":"upstream-apparmor-kasan.config","enable_configs":["MAC80211","CFG80211","MAC80211_HWSIM"],"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-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["ieee80211_emulate_remove_chanctx","ieee80211_free_chanctx"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"ca800a9302764c445de0da0e84d2252400a770ee","config_name":"upstream-apparmor-kasan.config","enable_configs":["MAC80211","CFG80211","MAC80211_HWSIM"],"series_id":"b65cb8b3-c2bf-48ea-a3ef-74939d8b746d","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-08-29 10:44:14 +0000 UTC FinishedAt: 2026-08-29 10:44:14 +0000 UTC Input: nil Output: nil --------- Name: series-workflowvd28x[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"ca800a9302764c445de0da0e84d2252400a770ee","config_name":"upstream-apparmor-kasan.config","enable_configs":["MAC80211","CFG80211","MAC80211_HWSIM"],"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-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["ieee80211_emulate_remove_chanctx","ieee80211_free_chanctx"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"ca800a9302764c445de0da0e84d2252400a770ee","config_name":"upstream-apparmor-kasan.config","enable_configs":["MAC80211","CFG80211","MAC80211_HWSIM"],"series_id":"b65cb8b3-c2bf-48ea-a3ef-74939d8b746d","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-08-29 10:44:14 +0000 UTC FinishedAt: 2026-08-29 11:00:56 +0000 UTC Input: nil Output: nil --------- Name: series-workflowvd28x[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"ca800a9302764c445de0da0e84d2252400a770ee","config_name":"upstream-apparmor-kasan.config","enable_configs":["MAC80211","CFG80211","MAC80211_HWSIM"],"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-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["ieee80211_emulate_remove_chanctx","ieee80211_free_chanctx"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"ca800a9302764c445de0da0e84d2252400a770ee","config_name":"upstream-apparmor-kasan.config","enable_configs":["MAC80211","CFG80211","MAC80211_HWSIM"],"series_id":"b65cb8b3-c2bf-48ea-a3ef-74939d8b746d","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-08-29 10:44:14 +0000 UTC FinishedAt: 2026-08-29 11:00:56 +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:*cb76f9df-1577-460f-a9c3-1b1c96e260d9,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-workflowvd28x/series-workflowvd28x-convert-artifact-2558727432/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": "c071fd6a-f59c-47eb-9d1a-0095f212c3ba", "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-workflowvd28x/series-workflowvd28x-build-action-2270935220/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowvd28x[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"ca800a9302764c445de0da0e84d2252400a770ee","config_name":"upstream-apparmor-kasan.config","enable_configs":["MAC80211","CFG80211","MAC80211_HWSIM"],"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-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["ieee80211_emulate_remove_chanctx","ieee80211_free_chanctx"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"ca800a9302764c445de0da0e84d2252400a770ee","config_name":"upstream-apparmor-kasan.config","enable_configs":["MAC80211","CFG80211","MAC80211_HWSIM"],"series_id":"b65cb8b3-c2bf-48ea-a3ef-74939d8b746d","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-08-29 10:44:14 +0000 UTC FinishedAt: 2026-08-29 11:00:46 +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:*cb76f9df-1577-460f-a9c3-1b1c96e260d9,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-workflowvd28x/series-workflowvd28x-convert-artifact-2558727432/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": "c071fd6a-f59c-47eb-9d1a-0095f212c3ba", "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-workflowvd28x/series-workflowvd28x-build-action-2270935220/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowvd28x[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"ca800a9302764c445de0da0e84d2252400a770ee","config_name":"upstream-apparmor-kasan.config","enable_configs":["MAC80211","CFG80211","MAC80211_HWSIM"],"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-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["ieee80211_emulate_remove_chanctx","ieee80211_free_chanctx"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"ca800a9302764c445de0da0e84d2252400a770ee","config_name":"upstream-apparmor-kasan.config","enable_configs":["MAC80211","CFG80211","MAC80211_HWSIM"],"series_id":"b65cb8b3-c2bf-48ea-a3ef-74939d8b746d","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-08-29 11:00:56 +0000 UTC FinishedAt: 2026-08-29 11:00:56 +0000 UTC Input: nil Output: nil --------- Name: series-workflowvd28x[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"ca800a9302764c445de0da0e84d2252400a770ee","config_name":"upstream-apparmor-kasan.config","enable_configs":["MAC80211","CFG80211","MAC80211_HWSIM"],"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-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["ieee80211_emulate_remove_chanctx","ieee80211_free_chanctx"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"ca800a9302764c445de0da0e84d2252400a770ee","config_name":"upstream-apparmor-kasan.config","enable_configs":["MAC80211","CFG80211","MAC80211_HWSIM"],"series_id":"b65cb8b3-c2bf-48ea-a3ef-74939d8b746d","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-08-29 11:00:56 +0000 UTC FinishedAt: 2026-08-29 11:00:56 +0000 UTC Input: nil Output: nil --------- Name: series-workflowvd28x[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"ca800a9302764c445de0da0e84d2252400a770ee","config_name":"upstream-apparmor-kasan.config","enable_configs":["MAC80211","CFG80211","MAC80211_HWSIM"],"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-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["ieee80211_emulate_remove_chanctx","ieee80211_free_chanctx"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"ca800a9302764c445de0da0e84d2252400a770ee","config_name":"upstream-apparmor-kasan.config","enable_configs":["MAC80211","CFG80211","MAC80211_HWSIM"],"series_id":"b65cb8b3-c2bf-48ea-a3ef-74939d8b746d","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-08-29 11:00:56 +0000 UTC FinishedAt: 2026-08-29 11:02:54 +0000 UTC Input: nil Output: nil --------- Name: series-workflowvd28x[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"ca800a9302764c445de0da0e84d2252400a770ee","config_name":"upstream-apparmor-kasan.config","enable_configs":["MAC80211","CFG80211","MAC80211_HWSIM"],"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-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["ieee80211_emulate_remove_chanctx","ieee80211_free_chanctx"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"ca800a9302764c445de0da0e84d2252400a770ee","config_name":"upstream-apparmor-kasan.config","enable_configs":["MAC80211","CFG80211","MAC80211_HWSIM"],"series_id":"b65cb8b3-c2bf-48ea-a3ef-74939d8b746d","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-08-29 11:00:56 +0000 UTC FinishedAt: 2026-08-29 11:02:44 +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:*c071fd6a-f59c-47eb-9d1a-0095f212c3ba,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-workflowvd28x/series-workflowvd28x-build-action-2270935220/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-workflowvd28x[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"ca800a9302764c445de0da0e84d2252400a770ee","config_name":"upstream-apparmor-kasan.config","enable_configs":["MAC80211","CFG80211","MAC80211_HWSIM"],"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-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["ieee80211_emulate_remove_chanctx","ieee80211_free_chanctx"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"ca800a9302764c445de0da0e84d2252400a770ee","config_name":"upstream-apparmor-kasan.config","enable_configs":["MAC80211","CFG80211","MAC80211_HWSIM"],"series_id":"b65cb8b3-c2bf-48ea-a3ef-74939d8b746d","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-08-29 11:02:54 +0000 UTC FinishedAt: 2026-08-29 14:04:22 +0000 UTC Input: nil Output: nil --------- Name: series-workflowvd28x[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"ca800a9302764c445de0da0e84d2252400a770ee","config_name":"upstream-apparmor-kasan.config","enable_configs":["MAC80211","CFG80211","MAC80211_HWSIM"],"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-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["ieee80211_emulate_remove_chanctx","ieee80211_free_chanctx"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"ca800a9302764c445de0da0e84d2252400a770ee","config_name":"upstream-apparmor-kasan.config","enable_configs":["MAC80211","CFG80211","MAC80211_HWSIM"],"series_id":"b65cb8b3-c2bf-48ea-a3ef-74939d8b746d","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-08-29 11:02:54 +0000 UTC FinishedAt: 2026-08-29 14:04:22 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:config,Default:nil,Value:*{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["ieee80211_emulate_remove_chanctx","ieee80211_free_chanctx"],"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:*2e178b75-6297-4943-a64d-b5d227cc3062,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:patched-build-id,Default:nil,Value:*c071fd6a-f59c-47eb-9d1a-0095f212c3ba,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-workflowvd28x/series-workflowvd28x-build-action-4163757731/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-workflowvd28x/series-workflowvd28x-build-action-2270935220/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},} Output: nil --------- Name: series-workflowvd28x[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"ca800a9302764c445de0da0e84d2252400a770ee","config_name":"upstream-apparmor-kasan.config","enable_configs":["MAC80211","CFG80211","MAC80211_HWSIM"],"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-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["ieee80211_emulate_remove_chanctx","ieee80211_free_chanctx"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"ca800a9302764c445de0da0e84d2252400a770ee","config_name":"upstream-apparmor-kasan.config","enable_configs":["MAC80211","CFG80211","MAC80211_HWSIM"],"series_id":"b65cb8b3-c2bf-48ea-a3ef-74939d8b746d","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-08-29 11:02:54 +0000 UTC FinishedAt: 2026-08-29 11:03:05 +0000 UTC Input: nil Output: nil --------- Name: series-workflowvd28x[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"ca800a9302764c445de0da0e84d2252400a770ee","config_name":"upstream-apparmor-kasan.config","enable_configs":["MAC80211","CFG80211","MAC80211_HWSIM"],"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-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["ieee80211_emulate_remove_chanctx","ieee80211_free_chanctx"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"ca800a9302764c445de0da0e84d2252400a770ee","config_name":"upstream-apparmor-kasan.config","enable_configs":["MAC80211","CFG80211","MAC80211_HWSIM"],"series_id":"b65cb8b3-c2bf-48ea-a3ef-74939d8b746d","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-08-29 11:02:54 +0000 UTC FinishedAt: 2026-08-29 11:02:59 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:data,Default:nil,Value:*{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["ieee80211_emulate_remove_chanctx","ieee80211_free_chanctx"],"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-workflowvd28x/series-workflowvd28x-convert-artifact-1209917633/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowvd28x[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"ca800a9302764c445de0da0e84d2252400a770ee","config_name":"upstream-apparmor-kasan.config","enable_configs":["MAC80211","CFG80211","MAC80211_HWSIM"],"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-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["ieee80211_emulate_remove_chanctx","ieee80211_free_chanctx"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"ca800a9302764c445de0da0e84d2252400a770ee","config_name":"upstream-apparmor-kasan.config","enable_configs":["MAC80211","CFG80211","MAC80211_HWSIM"],"series_id":"b65cb8b3-c2bf-48ea-a3ef-74939d8b746d","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-08-29 11:02:54 +0000 UTC FinishedAt: 2026-08-29 11:02:54 +0000 UTC Input: nil Output: nil --------- Name: series-workflowvd28x[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"ca800a9302764c445de0da0e84d2252400a770ee","config_name":"upstream-apparmor-kasan.config","enable_configs":["MAC80211","CFG80211","MAC80211_HWSIM"],"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-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["ieee80211_emulate_remove_chanctx","ieee80211_free_chanctx"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"ca800a9302764c445de0da0e84d2252400a770ee","config_name":"upstream-apparmor-kasan.config","enable_configs":["MAC80211","CFG80211","MAC80211_HWSIM"],"series_id":"b65cb8b3-c2bf-48ea-a3ef-74939d8b746d","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-08-29 11:02:54 +0000 UTC FinishedAt: 2026-08-29 11:02:54 +0000 UTC Input: nil Output: nil --------- Name: series-workflowvd28x[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"ca800a9302764c445de0da0e84d2252400a770ee","config_name":"upstream-apparmor-kasan.config","enable_configs":["MAC80211","CFG80211","MAC80211_HWSIM"],"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-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["ieee80211_emulate_remove_chanctx","ieee80211_free_chanctx"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"ca800a9302764c445de0da0e84d2252400a770ee","config_name":"upstream-apparmor-kasan.config","enable_configs":["MAC80211","CFG80211","MAC80211_HWSIM"],"series_id":"b65cb8b3-c2bf-48ea-a3ef-74939d8b746d","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-08-29 11:02:55 +0000 UTC FinishedAt: 2026-08-29 11:02:55 +0000 UTC Input: nil Output: nil --------- Name: series-workflowvd28x[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"ca800a9302764c445de0da0e84d2252400a770ee","config_name":"upstream-apparmor-kasan.config","enable_configs":["MAC80211","CFG80211","MAC80211_HWSIM"],"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-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["ieee80211_emulate_remove_chanctx","ieee80211_free_chanctx"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"ca800a9302764c445de0da0e84d2252400a770ee","config_name":"upstream-apparmor-kasan.config","enable_configs":["MAC80211","CFG80211","MAC80211_HWSIM"],"series_id":"b65cb8b3-c2bf-48ea-a3ef-74939d8b746d","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-08-29 11:03:05 +0000 UTC FinishedAt: 2026-08-29 14:04:22 +0000 UTC Input: nil Output: nil --------- Name: series-workflowvd28x[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"ca800a9302764c445de0da0e84d2252400a770ee","config_name":"upstream-apparmor-kasan.config","enable_configs":["MAC80211","CFG80211","MAC80211_HWSIM"],"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-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["ieee80211_emulate_remove_chanctx","ieee80211_free_chanctx"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"ca800a9302764c445de0da0e84d2252400a770ee","config_name":"upstream-apparmor-kasan.config","enable_configs":["MAC80211","CFG80211","MAC80211_HWSIM"],"series_id":"b65cb8b3-c2bf-48ea-a3ef-74939d8b746d","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-08-29 11:03:05 +0000 UTC FinishedAt: 2026-08-29 14:04:13 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:base-build-id,Default:nil,Value:*2e178b75-6297-4943-a64d-b5d227cc3062,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:patched-build-id,Default:nil,Value:*c071fd6a-f59c-47eb-9d1a-0095f212c3ba,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-workflowvd28x/series-workflowvd28x-build-action-4163757731/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-workflowvd28x/series-workflowvd28x-build-action-2270935220/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-workflowvd28x/series-workflowvd28x-convert-artifact-1209917633/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,}