Name: series-workflown85hb Phase: Failed StartedAt: 2026-06-23 01:53:22 +0000 UTC FinishedAt: 2026-06-23 02:01:19 +0000 UTC Input: nil Output: nil --------- Name: series-workflown85hb[0] Phase: Succeeded StartedAt: 2026-06-23 01:53:22 +0000 UTC FinishedAt: 2026-06-23 02:01:09 +0000 UTC Input: nil Output: nil --------- Name: series-workflown85hb[0].run-triage Phase: Succeeded StartedAt: 2026-06-23 01:53:22 +0000 UTC FinishedAt: 2026-06-23 02:01:09 +0000 UTC Input: nil Output: &Outputs{Parameters:[]Parameter{Parameter{Name:result,Default:nil,Value:*{ "skip_reason": "AI determined the patch has no functional impact", "targets": null, "trajectory": "CjwhZG9jdHlwZSBodG1sPgo8aHRtbD4KPGhlYWQ+Cgk8dGl0bGU+QUkgVHJhamVjdG9yeTwvdGl0bGU+Cgk8c3R5bGU+CgkJdGFibGUgewoJCQlib3JkZXI6IDFweCBzb2xpZCAjY2NjOwoJCQltYXJnaW46IDIwcHggNXB4OwoJCQlib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlOwoJCQl3aGl0ZS1zcGFjZTogbm93cmFwOwoJCQl0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsKCQkJb3ZlcmZsb3c6IGhpZGRlbjsKCQl9CgoJCXRhYmxlIGNhcHRpb24gewoJCQlmb250LXdlaWdodDogYm9sZDsKCQl9CgoJCXRhYmxlIHRkLCB0YWJsZSB0aCB7CgkJCXZlcnRpY2FsLWFsaWduOiB0b3A7CgkJCXBhZGRpbmc6IDJweCA4cHg7CgkJCXRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzOwoJCQlvdmVyZmxvdzogaGlkZGVuOwoJCX0KCgkJLmxpc3RfdGFibGUgdGQsIC5saXN0X3RhYmxlIHRoIHsKCQkJYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCAjY2NjOwoJCX0KCgkJLmxpc3RfdGFibGUgdGggewoJCQliYWNrZ3JvdW5kOiAjRjRGNEY0OwoJCX0KCgkJLmxpc3RfdGFibGUgdHI6bnRoLWNoaWxkKDJuKSB7CgkJCWJhY2tncm91bmQ6ICNGNEY0RjQ7CgkJfQoKCQkubGlzdF90YWJsZSB0cjpob3ZlciB7CgkJCWJhY2tncm91bmQ6ICNmZmZmOTk7CgkJfQoKCQkjYWlfZGV0YWlsc19kaXYgcHJlIHsKCQkJbWFyZ2luOiAxcHg7CgkJCW1heC13aWR0aDogMTIwY2g7CgkJCXdoaXRlLXNwYWNlOiBwcmUtd3JhcDsKCQkJb3ZlcmZsb3ctd3JhcDogYnJlYWstd29yZDsKCQl9Cgk8L3N0eWxlPgo8L2hlYWQ+Cjxib2R5PgoJPGgxPkFJIFRyYWplY3Rvcnk8L2gxPgoJPGJyPgoKCQoJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQk8Y2FwdGlvbj5UcmFqZWN0b3J5OiAoPGEgaHJlZj0iIyIgb25jbGljaz0idG9nZ2xlQWxsRGV0YWlscygpOyByZXR1cm4gZmFsc2U7Ij5FeHBhbmQvQ29sbGFwc2UgQWxsPC9hPik8L2NhcHRpb24+CgkJPHRoZWFkPjx0cj4KCQkJPHRoPlNlcTwvdGg+CgkJCTx0aD5UaW1lc3RhbXA8L3RoPgoJCQk8dGg+VHlwZTwvdGg+CgkJCTx0aD5OYW1lPC90aD4KCQkJPHRoPkR1cmF0aW9uPC90aD4KCQk8L3RyPjwvdGhlYWQ+CgkJPHRib2R5PgoJCQoJCTx0cj4KCQkJPHRkPjAvMDwvdGQ+CgkJCTx0ZD4yMDI2LzA2LzIzIDAyOjAwPC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBudWxsLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFtdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIGFkZHMgc3VwcG9ydCBmb3IgYSBuZXcgaGFyZHdhcmUgdmVyc2lvbiAodjUuMSkgb2YgdGhlIFF1YWxjb21tIElQIEFjY2VsZXJhdG9yIChJUEEpIGZvciB0aGUgU004NDUwIFNvQy4gSXQgb25seSBpbnRyb2R1Y2VzIG5ldyBkYXRhIHN0cnVjdHVyZXMsIGRldmljZSB0cmVlIGJpbmRpbmdzLCBhbmQgcmVnaXN0ZXJzIHRoZSBuZXcgY29tcGF0aWJsZSBzdHJpbmcuIFRoZSBJUEEgaXMgYSBoYXJkd2FyZSBibG9jayBzcGVjaWZpYyB0byBRdWFsY29tbSBTb0NzIGFuZCBpcyBub3QgZW11bGF0ZWQgaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgUUVNVSBvciBHQ0UsIG1ha2luZyB0aGlzIGNvZGUgdW5yZWFjaGFibGUgYW5kIHVudGVzdGFibGUgZHVyaW5nIGZ1enppbmcuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogZmFsc2UKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEvMTwvdGQ+CgkJCTx0ZD4yMDI2LzA2LzIzIDAyOjAwPC90ZD4KCQkJPHRkPmFjdGlvbjwvdGQ+CgkJCTx0ZD5yZWFkLXBhdGNoLWRpZmY8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtQYXRjaERpZmYmIzM0OzogJiMzNDtjb21taXQgZGQyZGRmMTA3NTBiMGVmNDNhZmE2MGFhZTZmMTFhN2ZjNDUyMzhjY1xuQXV0aG9yOiBzeXotY2x1c3RlciBcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVx1MDAzZVxuRGF0ZTogICBUdWUgSnVuIDIzIDAyOjAwOjI2IDIwMjYgJiM0MzswMDAwXG5cbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcblxuZGlmZiAtLWdpdCBhL0RvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvcWNvbSxpcGEueWFtbCBiL0RvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvcWNvbSxpcGEueWFtbFxuaW5kZXggNjhlYzc2ZmU0NDczNTYuLmRiOTFiZmFhZjgzMzJlIDEwMDY0NFxuLS0tIGEvRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9xY29tLGlwYS55YW1sXG4mIzQzOyYjNDM7JiM0MzsgYi9Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L3Fjb20saXBhLnlhbWxcbkBAIC01Myw2ICYjNDM7NTMsNyBAQCBwcm9wZXJ0aWVzOlxuICAgICAgICAgICAtIHFjb20sc2R4NjUtaXBhXG4gICAgICAgICAgIC0gcWNvbSxzbTYzNTAtaXBhXG4gICAgICAgICAgIC0gcWNvbSxzbTgzNTAtaXBhXG4mIzQzOyAgICAgICAgICAtIHFjb20sc204NDUwLWlwYVxuICAgICAgICAgICAtIHFjb20sc204NTUwLWlwYVxuICAgICAgIC0gaXRlbXM6XG4gICAgICAgICAgIC0gZW51bTpcbmRpZmYgLS1naXQgYS9hcmNoL2FybTY0L2Jvb3QvZHRzL3Fjb20vc204NDUwLmR0c2kgYi9hcmNoL2FybTY0L2Jvb3QvZHRzL3Fjb20vc204NDUwLmR0c2lcbmluZGV4IDU2Y2I2ZTk1OWU0ZWUyLi5jOTA0NzIwMDA4ZmFjNyAxMDA2NDRcbi0tLSBhL2FyY2gvYXJtNjQvYm9vdC9kdHMvcWNvbS9zbTg0NTAuZHRzaVxuJiM0MzsmIzQzOyYjNDM7IGIvYXJjaC9hcm02NC9ib290L2R0cy9xY29tL3NtODQ1MC5kdHNpXG5AQCAtMjYzOSw2ICYjNDM7MjYzOSw0NyBAQCBhZHJlbm9fc21tdTogaW9tbXVAM2RhMDAwMCB7XG4gXHRcdFx0ZG1hLWNvaGVyZW50O1xuIFx0XHR9O1xuIFxuJiM0MztcdFx0aXBhOiBpcGFAM2Y0MDAwMCB7XG4mIzQzO1x0XHRcdGNvbXBhdGlibGUgPSBcJiMzNDtxY29tLHNtODQ1MC1pcGFcJiMzNDs7XG4mIzQzO1xuJiM0MztcdFx0XHRpb21tdXMgPSBcdTAwM2NcdTAwMjZhcHBzX3NtbXUgMHg1YzAgMHgwXHUwMDNlLFxuJiM0MztcdFx0XHRcdCBcdTAwM2NcdTAwMjZhcHBzX3NtbXUgMHg1YzIgMHgwXHUwMDNlO1xuJiM0MztcdFx0XHRyZWcgPSBcdTAwM2MwIDB4M2Y0MDAwMCAwIDB4MTAwMDBcdTAwM2UsXG4mIzQzO1x0XHRcdCAgICAgIFx1MDAzYzAgMHgzZjUwMDAwIDAgMHg1MDAwXHUwMDNlLFxuJiM0MztcdFx0XHQgICAgICBcdTAwM2MwIDB4M2UwNDAwMCAwIDB4ZmMwMDBcdTAwM2U7XG4mIzQzO1x0XHRcdHJlZy1uYW1lcyA9IFwmIzM0O2lwYS1yZWdcJiMzNDssXG4mIzQzO1x0XHRcdFx0ICAgIFwmIzM0O2lwYS1zaGFyZWRcJiMzNDssXG4mIzQzO1x0XHRcdFx0ICAgIFwmIzM0O2dzaVwmIzM0OztcbiYjNDM7XG4mIzQzO1x0XHRcdGludGVycnVwdHMtZXh0ZW5kZWQgPSBcdTAwM2NcdTAwMjZpbnRjIEdJQ19TUEkgNjU0IElSUV9UWVBFX0VER0VfUklTSU5HXHUwMDNlLFxuJiM0MztcdFx0XHRcdFx0ICAgICAgXHUwMDNjXHUwMDI2aW50YyBHSUNfU1BJIDQzMiBJUlFfVFlQRV9MRVZFTF9ISUdIXHUwMDNlLFxuJiM0MztcdFx0XHRcdFx0ICAgICAgXHUwMDNjXHUwMDI2aXBhX3NtcDJwX2luIDAgSVJRX1RZUEVfRURHRV9SSVNJTkdcdTAwM2UsXG4mIzQzO1x0XHRcdFx0XHQgICAgICBcdTAwM2NcdTAwMjZpcGFfc21wMnBfaW4gMSBJUlFfVFlQRV9FREdFX1JJU0lOR1x1MDAzZTtcbiYjNDM7XHRcdFx0aW50ZXJydXB0LW5hbWVzID0gXCYjMzQ7aXBhXCYjMzQ7LFxuJiM0MztcdFx0XHRcdFx0ICBcJiMzNDtnc2lcJiMzNDssXG4mIzQzO1x0XHRcdFx0XHQgIFwmIzM0O2lwYS1jbG9jay1xdWVyeVwmIzM0OyxcbiYjNDM7XHRcdFx0XHRcdCAgXCYjMzQ7aXBhLXNldHVwLXJlYWR5XCYjMzQ7O1xuJiM0MztcbiYjNDM7XHRcdFx0Y2xvY2tzID0gXHUwMDNjXHUwMDI2cnBtaGNjIFJQTUhfSVBBX0NMS1x1MDAzZTtcbiYjNDM7XHRcdFx0Y2xvY2stbmFtZXMgPSBcJiMzNDtjb3JlXCYjMzQ7O1xuJiM0MztcbiYjNDM7XHRcdFx0aW50ZXJjb25uZWN0cyA9IFx1MDAzY1x1MDAyNmFnZ3JlMl9ub2MgTUFTVEVSX0lQQSAwIFx1MDAyNm1jX3ZpcnQgU0xBVkVfRUJJMSAwXHUwMDNlLFxuJiM0MztcdFx0XHRcdFx0XHUwMDNjXHUwMDI2Z2VtX25vYyBNQVNURVJfQVBQU1NfUFJPQyAwIFx1MDAyNmNvbmZpZ19ub2MgU0xBVkVfSVBBX0NGRyAwXHUwMDNlO1xuJiM0MztcdFx0XHRpbnRlcmNvbm5lY3QtbmFtZXMgPSBcJiMzNDttZW1vcnlcJiMzNDssXG4mIzQzO1x0XHRcdFx0XHQgICAgIFwmIzM0O2NvbmZpZ1wmIzM0OztcbiYjNDM7XG4mIzQzO1x0XHRcdHFjb20scW1wID0gXHUwMDNjXHUwMDI2YW9zc19xbXBcdTAwM2U7XG4mIzQzO1xuJiM0MztcdFx0XHRxY29tLHNtZW0tc3RhdGVzID0gXHUwMDNjXHUwMDI2aXBhX3NtcDJwX291dCAwXHUwMDNlLFxuJiM0MztcdFx0XHRcdFx0ICAgXHUwMDNjXHUwMDI2aXBhX3NtcDJwX291dCAxXHUwMDNlO1xuJiM0MztcdFx0XHRxY29tLHNtZW0tc3RhdGUtbmFtZXMgPSBcJiMzNDtpcGEtY2xvY2stZW5hYmxlZC12YWxpZFwmIzM0OyxcbiYjNDM7XHRcdFx0XHRcdFx0XCYjMzQ7aXBhLWNsb2NrLWVuYWJsZWRcJiMzNDs7XG4mIzQzO1xuJiM0MztcdFx0XHRzcmFtID0gXHUwMDNjXHUwMDI2aXBhX21vZGVtX3RhYmxlc1x1MDAzZTtcbiYjNDM7XG4mIzQzO1x0XHRcdHN0YXR1cyA9IFwmIzM0O2Rpc2FibGVkXCYjMzQ7O1xuJiM0MztcdFx0fTtcbiYjNDM7XG4gXHRcdHVzYl8xX2hzcGh5OiBwaHlAODhlMzAwMCB7XG4gXHRcdFx0Y29tcGF0aWJsZSA9IFwmIzM0O3Fjb20sc204NDUwLXVzYi1ocy1waHlcJiMzNDssXG4gXHRcdFx0XHQgICAgIFwmIzM0O3Fjb20sdXNiLXNucHMtaHMtN25tLXBoeVwmIzM0OztcbkBAIC00OTcwLDE3ICYjNDM7NTAxMSwyMSBAQCBjdGlAMTM5MDAwMDAge1xuIFx0XHRcdGNsb2NrLW5hbWVzID0gXCYjMzQ7YXBiX3BjbGtcJiMzNDs7XG4gXHRcdH07XG4gXG4tXHRcdHNyYW1AMTQ2YWEwMDAge1xuJiM0MztcdFx0c3JhbUAxNDZhODAwMCB7XG4gXHRcdFx0Y29tcGF0aWJsZSA9IFwmIzM0O3Fjb20sc204NDUwLWltZW1cJiMzNDssIFwmIzM0O3N5c2NvblwmIzM0OywgXCYjMzQ7c2ltcGxlLW1mZFwmIzM0Oztcbi1cdFx0XHRyZWcgPSBcdTAwM2MwIDB4MTQ2YWEwMDAgMCAweDEwMDBcdTAwM2U7XG4tXHRcdFx0cmFuZ2VzID0gXHUwMDNjMCAwIDB4MTQ2YWEwMDAgMHgxMDAwXHUwMDNlO1xuJiM0MztcdFx0XHRyZWcgPSBcdTAwM2MwIDB4MTQ2YTgwMDAgMCAweDMwMDBcdTAwM2U7XG4mIzQzO1x0XHRcdHJhbmdlcyA9IFx1MDAzYzAgMCAweDE0NmE4MDAwIDB4MzAwMFx1MDAzZTtcbiBcbiBcdFx0XHQjYWRkcmVzcy1jZWxscyA9IFx1MDAzYzFcdTAwM2U7XG4gXHRcdFx0I3NpemUtY2VsbHMgPSBcdTAwM2MxXHUwMDNlO1xuIFxuLVx0XHRcdHBpbC1yZWxvY0A5NGMge1xuJiM0MztcdFx0XHRpcGFfbW9kZW1fdGFibGVzOiBtb2RlbS10YWJsZXNAMCB7XG4mIzQzO1x0XHRcdFx0cmVnID0gXHUwMDNjMCAweDIwMDBcdTAwM2U7XG4mIzQzO1x0XHRcdH07XG4mIzQzO1xuJiM0MztcdFx0XHRwaWwtcmVsb2NAMjk0YyB7XG4gXHRcdFx0XHRjb21wYXRpYmxlID0gXCYjMzQ7cWNvbSxwaWwtcmVsb2MtaW5mb1wmIzM0Oztcbi1cdFx0XHRcdHJlZyA9IFx1MDAzYzB4OTRjIDB4YzhcdTAwM2U7XG4mIzQzO1x0XHRcdFx0cmVnID0gXHUwMDNjMHgyOTRjIDB4YzhcdTAwM2U7XG4gXHRcdFx0fTtcbiBcdFx0fTtcbiBcbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9pcGEvTWFrZWZpbGUgYi9kcml2ZXJzL25ldC9pcGEvTWFrZWZpbGVcbmluZGV4IGUxNDhlYzNjMWExMDEwLi5kNDk5NWMyZThjYTAyMyAxMDA2NDRcbi0tLSBhL2RyaXZlcnMvbmV0L2lwYS9NYWtlZmlsZVxuJiM0MzsmIzQzOyYjNDM7IGIvZHJpdmVycy9uZXQvaXBhL01ha2VmaWxlXG5AQCAtNyw3ICYjNDM7Nyw3IEBAIElQQV9SRUdfVkVSU0lPTlNcdDo9XHQzLjEgMy41LjEgNC4yIDQuNSA0LjcgNC45IDQuMTEgNS4wIDUuNVxuICMgU29tZSBJUEEgdmVyc2lvbnMgY2FuIHJldXNlIGFub3RoZXIgc2V0IG9mIEdTSSByZWdpc3RlciBkZWZpbml0aW9ucy5cbiBHU0lfUkVHX1ZFUlNJT05TXHQ6PVx0My4xIDMuNS4xIDQuMCA0LjUgNC45IDQuMTEgNS4wXG4gXG4tSVBBX0RBVEFfVkVSU0lPTlNcdDo9XHQzLjEgMy41LjEgNC4yIDQuNSA0LjcgNC45IDQuMTEgNS4wIDUuMiA1LjVcbiYjNDM7SVBBX0RBVEFfVkVSU0lPTlNcdDo9XHQzLjEgMy41LjEgNC4yIDQuNSA0LjcgNC45IDQuMTEgNS4wIDUuMSA1LjIgNS41XG4gXG4gb2JqLSQoQ09ORklHX1FDT01fSVBBKVx0JiM0Mzs9XHRpcGEub1xuIFxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2lwYS9kYXRhL2lwYV9kYXRhLXY1LjEuYyBiL2RyaXZlcnMvbmV0L2lwYS9kYXRhL2lwYV9kYXRhLXY1LjEuY1xubmV3IGZpbGUgbW9kZSAxMDA2NDRcbmluZGV4IDAwMDAwMDAwMDAwMDAwLi44NWIyMWVmYTEyMjRkYlxuLS0tIC9kZXYvbnVsbFxuJiM0MzsmIzQzOyYjNDM7IGIvZHJpdmVycy9uZXQvaXBhL2RhdGEvaXBhX2RhdGEtdjUuMS5jXG5AQCAtMCwwICYjNDM7MSw0NzcgQEBcbiYjNDM7Ly8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjBcbiYjNDM7XG4mIzQzOy8qIENvcHlyaWdodCAoQykgMjAyMy0yMDI0IExpbmFybyBMdGQuICovXG4mIzQzOy8qIENvcHlyaWdodCAoQykgMjAyNiBFc3RlYmFuIFVycnV0aWEgXHUwMDNjZXN0ZXV3dUBwcm90b24ubWVcdTAwM2UgKi9cbiYjNDM7XG4mIzQzOyNpbmNsdWRlIFx1MDAzY2xpbnV4L2FycmF5X3NpemUuaFx1MDAzZVxuJiM0MzsjaW5jbHVkZSBcdTAwM2NsaW51eC9sb2cyLmhcdTAwM2VcbiYjNDM7XG4mIzQzOyNpbmNsdWRlIFwmIzM0Oy4uL2lwYV9kYXRhLmhcJiMzNDtcbiYjNDM7I2luY2x1ZGUgXCYjMzQ7Li4vaXBhX2VuZHBvaW50LmhcJiMzNDtcbiYjNDM7I2luY2x1ZGUgXCYjMzQ7Li4vaXBhX21lbS5oXCYjMzQ7XG4mIzQzOyNpbmNsdWRlIFwmIzM0Oy4uL2lwYV92ZXJzaW9uLmhcJiMzNDtcbiYjNDM7XG4mIzQzOy8qKiBlbnVtIGlwYV9yZXNvdXJjZV90eXBlIC0gSVBBIHJlc291cmNlIHR5cGVzIGZvciBhbiBTb0MgaGF2aW5nIElQQSB2NS4xICovXG4mIzQzO2VudW0gaXBhX3Jlc291cmNlX3R5cGUge1xuJiM0MztcdC8qIFNvdXJjZSByZXNvdXJjZSB0eXBlczsgZmlyc3QgbXVzdCBoYXZlIHZhbHVlIDAgKi9cbiYjNDM7XHRJUEFfUkVTT1VSQ0VfVFlQRV9TUkNfUEtUX0NPTlRFWFRTXHRcdD0gMCxcbiYjNDM7XHRJUEFfUkVTT1VSQ0VfVFlQRV9TUkNfREVTQ1JJUFRPUl9MSVNUUyxcbiYjNDM7XHRJUEFfUkVTT1VSQ0VfVFlQRV9TUkNfREVTQ1JJUFRPUl9CVUZGLFxuJiM0MztcdElQQV9SRVNPVVJDRV9UWVBFX1NSQ19IUFNfRE1BUlMsXG4mIzQzO1x0SVBBX1JFU09VUkNFX1RZUEVfU1JDX0FDS19FTlRSSUVTLFxuJiM0MztcbiYjNDM7XHQvKiBEZXN0aW5hdGlvbiByZXNvdXJjZSB0eXBlczsgZmlyc3QgbXVzdCBoYXZlIHZhbHVlIDAgKi9cbiYjNDM7XHRJUEFfUkVTT1VSQ0VfVFlQRV9EU1RfREFUQV9TRUNUT1JTXHRcdD0gMCxcbiYjNDM7XHRJUEFfUkVTT1VSQ0VfVFlQRV9EU1RfRFBTX0RNQVJTLFxuJiM0MztcdElQQV9SRVNPVVJDRV9UWVBFX0RTVF9VTFNPX1NFR01FTlRTLFxuJiM0Mzt9O1xuJiM0MztcbiYjNDM7LyogUmVzb3VyY2UgZ3JvdXBzIHVzZWQgZm9yIGFuIFNvQyBoYXZpbmcgSVBBIHY1LjEgKi9cbiYjNDM7ZW51bSBpcGFfcnNyY19ncm91cF9pZCB7XG4mIzQzO1x0LyogU291cmNlIHJlc291cmNlIGdyb3VwIGlkZW50aWZpZXJzICovXG4mIzQzO1x0SVBBX1JTUkNfR1JPVVBfU1JDX1VMXHRcdFx0XHQ9IDAsXG4mIzQzO1x0SVBBX1JTUkNfR1JPVVBfU1JDX0RMLFxuJiM0MztcdElQQV9SU1JDX0dST1VQX1NSQ19VTlVTRURfMixcbiYjNDM7XHRJUEFfUlNSQ19HUk9VUF9TUkNfVU5VU0VEXzMsXG4mIzQzO1x0SVBBX1JTUkNfR1JPVVBfU1JDX1VSTExDLFxuJiM0MztcdElQQV9SU1JDX0dST1VQX1NSQ19VX1JYX1FDLFxuJiM0MztcdElQQV9SU1JDX0dST1VQX1NSQ19DT1VOVCxcdC8qIExhc3QgaW4gc2V0OyBub3QgYSBzb3VyY2UgZ3JvdXAgKi9cbiYjNDM7XG4mIzQzO1x0LyogRGVzdGluYXRpb24gcmVzb3VyY2UgZ3JvdXAgaWRlbnRpZmllcnMgKi9cbiYjNDM7XHRJUEFfUlNSQ19HUk9VUF9EU1RfVUxcdFx0XHRcdD0gMCxcbiYjNDM7XHRJUEFfUlNSQ19HUk9VUF9EU1RfREwsXG4mIzQzO1x0SVBBX1JTUkNfR1JPVVBfRFNUX1VOVVNFRF8yLFxuJiM0MztcdElQQV9SU1JDX0dST1VQX0RTVF9VTlVTRURfMyxcbiYjNDM7XHRJUEFfUlNSQ19HUk9VUF9EU1RfVU5VU0VEXzQsXG4mIzQzO1x0SVBBX1JTUkNfR1JPVVBfRFNUX1VDLFxuJiM0MztcdElQQV9SU1JDX0dST1VQX0RTVF9EUkJfSVAsXG4mIzQzO1x0SVBBX1JTUkNfR1JPVVBfRFNUX0NPVU5ULFx0LyogTGFzdDsgbm90IGEgZGVzdGluYXRpb24gZ3JvdXAgKi9cbiYjNDM7fTtcbiYjNDM7XG4mIzQzOy8qIFFTQiBjb25maWd1cmF0aW9uIGRhdGEgZm9yIGFuIFNvQyBoYXZpbmcgSVBBIHY1LjEgKi9cbiYjNDM7c3RhdGljIGNvbnN0IHN0cnVjdCBpcGFfcXNiX2RhdGEgaXBhX3FzYl9kYXRhW10gPSB7XG4mIzQzO1x0W0lQQV9RU0JfTUFTVEVSX0REUl0gPSB7XG4mIzQzO1x0XHQubWF4X3dyaXRlc1x0XHQ9IDAsXG4mIzQzO1x0XHQubWF4X3JlYWRzXHRcdD0gMCxcdC8qIG5vIGxpbWl0IChoYXJkd2FyZSBtYXgpICovXG4mIzQzO1x0XHQubWF4X3JlYWRzX2JlYXRzXHQ9IDAsXG4mIzQzO1x0fSxcbiYjNDM7XHRbSVBBX1FTQl9NQVNURVJfUENJRV0gPSB7XG4mIzQzO1x0XHQubWF4X3dyaXRlc1x0XHQ9IDAsXG4mIzQzO1x0XHQubWF4X3JlYWRzXHRcdD0gMCxcdC8qIG5vIGxpbWl0IChoYXJkd2FyZSBtYXgpICovXG4mIzQzO1x0XHQubWF4X3JlYWRzX2JlYXRzXHQ9IDAsXG4mIzQzO1x0fSxcbiYjNDM7fTtcbiYjNDM7XG4mIzQzOy8qIEVuZHBvaW50IGNvbmZpZ3VyYXRpb24gZGF0YSBmb3IgYW4gU29DIGhhdmluZyBJUEEgdjUuMSAqL1xuJiM0MztzdGF0aWMgY29uc3Qgc3RydWN0IGlwYV9nc2lfZW5kcG9pbnRfZGF0YSBpcGFfZ3NpX2VuZHBvaW50X2RhdGFbXSA9IHtcbiYjNDM7XHRbSVBBX0VORFBPSU5UX0FQX0NPTU1BTkRfVFhdID0ge1xuJiM0MztcdFx0LmVlX2lkXHRcdD0gR1NJX0VFX0FQLFxuJiM0MztcdFx0LmNoYW5uZWxfaWRcdD0gMTIsXG4mIzQzO1x0XHQuZW5kcG9pbnRfaWRcdD0gMTQsXG4mIzQzO1x0XHQudG93YXJkX2lwYVx0PSB0cnVlLFxuJiM0MztcdFx0LmNoYW5uZWwgPSB7XG4mIzQzO1x0XHRcdC50cmVfY291bnRcdD0gMjU2LFxuJiM0MztcdFx0XHQuZXZlbnRfY291bnRcdD0gMjU2LFxuJiM0MztcdFx0XHQudGx2X2NvdW50XHQ9IDIwLFxuJiM0MztcdFx0fSxcbiYjNDM7XHRcdC5lbmRwb2ludCA9IHtcbiYjNDM7XHRcdFx0LmNvbmZpZyA9IHtcbiYjNDM7XHRcdFx0XHQucmVzb3VyY2VfZ3JvdXBcdD0gSVBBX1JTUkNfR1JPVVBfU1JDX1VMLFxuJiM0MztcdFx0XHRcdC5kbWFfbW9kZVx0PSB0cnVlLFxuJiM0MztcdFx0XHRcdC5kbWFfZW5kcG9pbnRcdD0gSVBBX0VORFBPSU5UX0FQX0xBTl9SWCxcbiYjNDM7XHRcdFx0XHQudHggPSB7XG4mIzQzO1x0XHRcdFx0XHQuc2VxX3R5cGUgPSBJUEFfU0VRX0RNQSxcbiYjNDM7XHRcdFx0XHR9LFxuJiM0MztcdFx0XHR9LFxuJiM0MztcdFx0fSxcbiYjNDM7XHR9LFxuJiM0MztcdFtJUEFfRU5EUE9JTlRfQVBfTEFOX1JYXSA9IHtcbiYjNDM7XHRcdC5lZV9pZFx0XHQ9IEdTSV9FRV9BUCxcbiYjNDM7XHRcdC5jaGFubmVsX2lkXHQ9IDEzLFxuJiM0MztcdFx0LmVuZHBvaW50X2lkXHQ9IDE2LFxuJiM0MztcdFx0LnRvd2FyZF9pcGFcdD0gZmFsc2UsXG4mIzQzO1x0XHQuY2hhbm5lbCA9IHtcbiYjNDM7XHRcdFx0LnRyZV9jb3VudFx0PSAyNTYsXG4mIzQzO1x0XHRcdC5ldmVudF9jb3VudFx0PSAyNTYsXG4mIzQzO1x0XHRcdC50bHZfY291bnRcdD0gOSxcbiYjNDM7XHRcdH0sXG4mIzQzO1x0XHQuZW5kcG9pbnQgPSB7XG4mIzQzO1x0XHRcdC5jb25maWcgPSB7XG4mIzQzO1x0XHRcdFx0LnJlc291cmNlX2dyb3VwXHQ9IElQQV9SU1JDX0dST1VQX0RTVF9VTCxcbiYjNDM7XHRcdFx0XHQuYWdncmVnYXRpb25cdD0gdHJ1ZSxcbiYjNDM7XHRcdFx0XHQuc3RhdHVzX2VuYWJsZVx0PSB0cnVlLFxuJiM0MztcdFx0XHRcdC5yeCA9IHtcbiYjNDM7XHRcdFx0XHRcdC5idWZmZXJfc2l6ZVx0PSA4MTkyLFxuJiM0MztcdFx0XHRcdFx0LnBhZF9hbGlnblx0PSBpbG9nMihzaXplb2YodTMyKSksXG4mIzQzO1x0XHRcdFx0XHQuYWdncl90aW1lX2xpbWl0ID0gNTAwLFxuJiM0MztcdFx0XHRcdH0sXG4mIzQzO1x0XHRcdH0sXG4mIzQzO1x0XHR9LFxuJiM0MztcdH0sXG4mIzQzO1x0W0lQQV9FTkRQT0lOVF9BUF9NT0RFTV9UWF0gPSB7XG4mIzQzO1x0XHQuZWVfaWRcdFx0PSBHU0lfRUVfQVAsXG4mIzQzO1x0XHQuY2hhbm5lbF9pZFx0PSAxMSxcbiYjNDM7XHRcdC5lbmRwb2ludF9pZFx0PSAyLFxuJiM0MztcdFx0LnRvd2FyZF9pcGFcdD0gdHJ1ZSxcbiYjNDM7XHRcdC5jaGFubmVsID0ge1xuJiM0MztcdFx0XHQudHJlX2NvdW50XHQ9IDUxMixcbiYjNDM7XHRcdFx0LmV2ZW50X2NvdW50XHQ9IDUxMixcbiYjNDM7XHRcdFx0LnRsdl9jb3VudFx0PSAyNSxcbiYjNDM7XHRcdH0sXG4mIzQzO1x0XHQuZW5kcG9pbnQgPSB7XG4mIzQzO1x0XHRcdC5maWx0ZXJfc3VwcG9ydFx0PSB0cnVlLFxuJiM0MztcdFx0XHQuY29uZmlnID0ge1xuJiM0MztcdFx0XHRcdC5yZXNvdXJjZV9ncm91cFx0PSBJUEFfUlNSQ19HUk9VUF9TUkNfVUwsXG4mIzQzO1x0XHRcdFx0LmNoZWNrc3VtICAgICAgID0gdHJ1ZSxcbiYjNDM7XHRcdFx0XHQucW1hcFx0XHQ9IHRydWUsXG4mIzQzO1x0XHRcdFx0LnN0YXR1c19lbmFibGVcdD0gdHJ1ZSxcbiYjNDM7XHRcdFx0XHQudHggPSB7XG4mIzQzO1x0XHRcdFx0XHQuc2VxX3R5cGUgPSBJUEFfU0VRXzJfUEFTU19TS0lQX0xBU1RfVUMsXG4mIzQzO1x0XHRcdFx0XHQuc3RhdHVzX2VuZHBvaW50ID1cbiYjNDM7XHRcdFx0XHRcdFx0SVBBX0VORFBPSU5UX01PREVNX0FQX1JYLFxuJiM0MztcdFx0XHRcdH0sXG4mIzQzO1x0XHRcdH0sXG4mIzQzO1x0XHR9LFxuJiM0MztcdH0sXG4mIzQzO1x0W0lQQV9FTkRQT0lOVF9BUF9NT0RFTV9SWF0gPSB7XG4mIzQzO1x0XHQuZWVfaWRcdFx0PSBHU0lfRUVfQVAsXG4mIzQzO1x0XHQuY2hhbm5lbF9pZFx0PSAxLFxuJiM0MztcdFx0LmVuZHBvaW50X2lkXHQ9IDIzLFxuJiM0MztcdFx0LnRvd2FyZF9pcGFcdD0gZmFsc2UsXG4mIzQzO1x0XHQuY2hhbm5lbCA9IHtcbiYjNDM7XHRcdFx0LnRyZV9jb3VudFx0PSAyNTYsXG4mIzQzO1x0XHRcdC5ldmVudF9jb3VudFx0PSAyNTYsXG4mIzQzO1x0XHRcdC50bHZfY291bnRcdD0gOSxcbiYjNDM7XHRcdH0sXG4mIzQzO1x0XHQuZW5kcG9pbnQgPSB7XG4mIzQzO1x0XHRcdC5jb25maWcgPSB7XG4mIzQzO1x0XHRcdFx0LnJlc291cmNlX2dyb3VwXHQ9IElQQV9SU1JDX0dST1VQX0RTVF9VTCxcbiYjNDM7XHRcdFx0XHQuY2hlY2tzdW0gICAgICAgPSB0cnVlLFxuJiM0MztcdFx0XHRcdC5xbWFwXHRcdD0gdHJ1ZSxcbiYjNDM7XHRcdFx0XHQuYWdncmVnYXRpb25cdD0gdHJ1ZSxcbiYjNDM7XHRcdFx0XHQucnggPSB7XG4mIzQzO1x0XHRcdFx0XHQuYnVmZmVyX3NpemVcdD0gODE5MixcbiYjNDM7XHRcdFx0XHRcdC5hZ2dyX3RpbWVfbGltaXQgPSA1MDAsXG4mIzQzO1x0XHRcdFx0XHQuYWdncl9jbG9zZV9lb2ZcdD0gdHJ1ZSxcbiYjNDM7XHRcdFx0XHR9LFxuJiM0MztcdFx0XHR9LFxuJiM0MztcdFx0fSxcbiYjNDM7XHR9LFxuJiM0MztcdFtJUEFfRU5EUE9JTlRfTU9ERU1fQVBfVFhdID0ge1xuJiM0MztcdFx0LmVlX2lkXHRcdD0gR1NJX0VFX01PREVNLFxuJiM0MztcdFx0LmNoYW5uZWxfaWRcdD0gMCxcbiYjNDM7XHRcdC5lbmRwb2ludF9pZFx0PSAxMixcbiYjNDM7XHRcdC50b3dhcmRfaXBhXHQ9IHRydWUsXG4mIzQzO1x0XHQuZW5kcG9pbnQgPSB7XG4mIzQzO1x0XHRcdC5maWx0ZXJfc3VwcG9ydFx0PSB0cnVlLFxuJiM0MztcdFx0fSxcbiYjNDM7XHR9LFxuJiM0MztcdFtJUEFfRU5EUE9JTlRfTU9ERU1fQVBfUlhdID0ge1xuJiM0MztcdFx0LmVlX2lkXHRcdD0gR1NJX0VFX01PREVNLFxuJiM0MztcdFx0LmNoYW5uZWxfaWRcdD0gNyxcbiYjNDM7XHRcdC5lbmRwb2ludF9pZFx0PSAyMSxcbiYjNDM7XHRcdC50b3dhcmRfaXBhXHQ9IGZhbHNlLFxuJiM0MztcdH0sXG4mIzQzO1x0W0lQQV9FTkRQT0lOVF9NT0RFTV9ETF9OTE9fVFhdID0ge1xuJiM0MztcdFx0LmVlX2lkXHRcdD0gR1NJX0VFX01PREVNLFxuJiM0MztcdFx0LmNoYW5uZWxfaWRcdD0gMixcbiYjNDM7XHRcdC5lbmRwb2ludF9pZFx0PSAxNSxcbiYjNDM7XHRcdC50b3dhcmRfaXBhXHQ9IHRydWUsXG4mIzQzO1x0XHQuZW5kcG9pbnQgPSB7XG4mIzQzO1x0XHRcdC5maWx0ZXJfc3VwcG9ydFx0PSB0cnVlLFxuJiM0MztcdFx0fSxcbiYjNDM7XHR9LFxuJiM0Mzt9O1xuJiM0MztcbiYjNDM7LyogU291cmNlIHJlc291cmNlIGNvbmZpZ3VyYXRpb24gZGF0YSBmb3IgYW4gU29DIGhhdmluZyBJUEEgdjUuMSAqL1xuJiM0MztzdGF0aWMgY29uc3Qgc3RydWN0IGlwYV9yZXNvdXJjZSBpcGFfcmVzb3VyY2Vfc3JjW10gPSB7XG4mIzQzO1x0W0lQQV9SRVNPVVJDRV9UWVBFX1NSQ19QS1RfQ09OVEVYVFNdID0ge1xuJiM0MztcdFx0LmxpbWl0c1tJUEFfUlNSQ19HUk9VUF9TUkNfVUxdID0ge1xuJiM0MztcdFx0XHQubWluID0gNyxcdC5tYXggPSAxMixcbiYjNDM7XHRcdH0sXG4mIzQzO1x0XHQubGltaXRzW0lQQV9SU1JDX0dST1VQX1NSQ19VUkxMQ10gPSB7XG4mIzQzO1x0XHRcdC5taW4gPSAxLFx0Lm1heCA9IDYzLFxuJiM0MztcdFx0fSxcbiYjNDM7XHRcdC5saW1pdHNbSVBBX1JTUkNfR1JPVVBfU1JDX1VfUlhfUUNdID0ge1xuJiM0MztcdFx0XHQubWluID0gMCxcdC5tYXggPSA2MyxcbiYjNDM7XHRcdH0sXG4mIzQzO1x0fSxcbiYjNDM7XHRbSVBBX1JFU09VUkNFX1RZUEVfU1JDX0RFU0NSSVBUT1JfTElTVFNdID0ge1xuJiM0MztcdFx0LmxpbWl0c1tJUEFfUlNSQ19HUk9VUF9TUkNfVUxdID0ge1xuJiM0MztcdFx0XHQubWluID0gMjEsXHQubWF4ID0gMjEsXG4mIzQzO1x0XHR9LFxuJiM0MztcdFx0LmxpbWl0c1tJUEFfUlNSQ19HUk9VUF9TUkNfVVJMTENdID0ge1xuJiM0MztcdFx0XHQubWluID0gMTAsXHQubWF4ID0gMTAsXG4mIzQzO1x0XHR9LFxuJiM0MztcdH0sXG4mIzQzO1x0W0lQQV9SRVNPVVJDRV9UWVBFX1NSQ19ERVNDUklQVE9SX0JVRkZdID0ge1xuJiM0MztcdFx0LmxpbWl0c1tJUEFfUlNSQ19HUk9VUF9TUkNfVUxdID0ge1xuJiM0MztcdFx0XHQubWluID0gMzMsXHQubWF4ID0gMzMsXG4mIzQzO1x0XHR9LFxuJiM0MztcdFx0LmxpbWl0c1tJUEFfUlNSQ19HUk9VUF9TUkNfVVJMTENdID0ge1xuJiM0MztcdFx0XHQubWluID0gMjAsXHQubWF4ID0gMjAsXG4mIzQzO1x0XHR9LFxuJiM0MztcdH0sXG4mIzQzO1x0W0lQQV9SRVNPVVJDRV9UWVBFX1NSQ19IUFNfRE1BUlNdID0ge1xuJiM0MztcdFx0LmxpbWl0c1tJUEFfUlNSQ19HUk9VUF9TUkNfVUxdID0ge1xuJiM0MztcdFx0XHQubWluID0gMCxcdC5tYXggPSA2MyxcbiYjNDM7XHRcdH0sXG4mIzQzO1x0XHQubGltaXRzW0lQQV9SU1JDX0dST1VQX1NSQ19VUkxMQ10gPSB7XG4mIzQzO1x0XHRcdC5taW4gPSAxLFx0Lm1heCA9IDYzLFxuJiM0MztcdFx0fSxcbiYjNDM7XHRcdC5saW1pdHNbSVBBX1JTUkNfR1JPVVBfU1JDX1VfUlhfUUNdID0ge1xuJiM0MztcdFx0XHQubWluID0gMCxcdC5tYXggPSA2MyxcbiYjNDM7XHRcdH0sXG4mIzQzO1x0fSxcbiYjNDM7XHRbSVBBX1JFU09VUkNFX1RZUEVfU1JDX0FDS19FTlRSSUVTXSA9IHtcbiYjNDM7XHRcdC5saW1pdHNbSVBBX1JTUkNfR1JPVVBfU1JDX1VMXSA9IHtcbiYjNDM7XHRcdFx0Lm1pbiA9IDM4LFx0Lm1heCA9IDM4LFxuJiM0MztcdFx0fSxcbiYjNDM7XHRcdC5saW1pdHNbSVBBX1JTUkNfR1JPVVBfU1JDX1VSTExDXSA9IHtcbiYjNDM7XHRcdFx0Lm1pbiA9IDE2LFx0Lm1heCA9IDE2LFxuJiM0MztcdFx0fSxcbiYjNDM7XHR9LFxuJiM0Mzt9O1xuJiM0MztcbiYjNDM7LyogRGVzdGluYXRpb24gcmVzb3VyY2UgY29uZmlndXJhdGlvbiBkYXRhIGZvciBhbiBTb0MgaGF2aW5nIElQQSB2NS4xICovXG4mIzQzO3N0YXRpYyBjb25zdCBzdHJ1Y3QgaXBhX3Jlc291cmNlIGlwYV9yZXNvdXJjZV9kc3RbXSA9IHtcbiYjNDM7XHRbSVBBX1JFU09VUkNFX1RZUEVfRFNUX0RBVEFfU0VDVE9SU10gPSB7XG4mIzQzO1x0XHQubGltaXRzW0lQQV9SU1JDX0dST1VQX0RTVF9VTF0gPSB7XG4mIzQzO1x0XHRcdC5taW4gPSA2LFx0Lm1heCA9IDYsXG4mIzQzO1x0XHR9LFxuJiM0MztcdFx0LmxpbWl0c1tJUEFfUlNSQ19HUk9VUF9EU1RfRExdID0ge1xuJiM0MztcdFx0XHQubWluID0gNSxcdC5tYXggPSA1LFxuJiM0MztcdFx0fSxcbiYjNDM7XHRcdC5saW1pdHNbSVBBX1JTUkNfR1JPVVBfRFNUX0RSQl9JUF0gPSB7XG4mIzQzO1x0XHRcdC5taW4gPSAzOSxcdC5tYXggPSAzOSxcbiYjNDM7XHRcdH0sXG4mIzQzO1x0fSxcbiYjNDM7XHRbSVBBX1JFU09VUkNFX1RZUEVfRFNUX0RQU19ETUFSU10gPSB7XG4mIzQzO1x0XHQubGltaXRzW0lQQV9SU1JDX0dST1VQX0RTVF9VTF0gPSB7XG4mIzQzO1x0XHRcdC5taW4gPSAwLFx0Lm1heCA9IDMsXG4mIzQzO1x0XHR9LFxuJiM0MztcdFx0LmxpbWl0c1tJUEFfUlNSQ19HUk9VUF9EU1RfRExdID0ge1xuJiM0MztcdFx0XHQubWluID0gMCxcdC5tYXggPSAzLFxuJiM0MztcdFx0fSxcbiYjNDM7XHR9LFxuJiM0MztcdFtJUEFfUkVTT1VSQ0VfVFlQRV9EU1RfVUxTT19TRUdNRU5UU10gPSB7XG4mIzQzO1x0XHQubGltaXRzW0lQQV9SU1JDX0dST1VQX0RTVF9VTF0gPSB7XG4mIzQzO1x0XHRcdC5taW4gPSAwLFx0Lm1heCA9IDYzLFxuJiM0MztcdFx0fSxcbiYjNDM7XHRcdC5saW1pdHNbSVBBX1JTUkNfR1JPVVBfRFNUX0RMXSA9IHtcbiYjNDM7XHRcdFx0Lm1pbiA9IDAsXHQubWF4ID0gNjMsXG4mIzQzO1x0XHR9LFxuJiM0MztcdH0sXG4mIzQzO307XG4mIzQzO1xuJiM0MzsvKiBSZXNvdXJjZSBjb25maWd1cmF0aW9uIGRhdGEgZm9yIGFuIFNvQyBoYXZpbmcgSVBBIHY1LjEgKi9cbiYjNDM7c3RhdGljIGNvbnN0IHN0cnVjdCBpcGFfcmVzb3VyY2VfZGF0YSBpcGFfcmVzb3VyY2VfZGF0YSA9IHtcbiYjNDM7XHQucnNyY19ncm91cF9kc3RfY291bnRcdD0gSVBBX1JTUkNfR1JPVVBfRFNUX0NPVU5ULFxuJiM0MztcdC5yc3JjX2dyb3VwX3NyY19jb3VudFx0PSBJUEFfUlNSQ19HUk9VUF9TUkNfQ09VTlQsXG4mIzQzO1x0LnJlc291cmNlX3NyY19jb3VudFx0PSBBUlJBWV9TSVpFKGlwYV9yZXNvdXJjZV9zcmMpLFxuJiM0MztcdC5yZXNvdXJjZV9zcmNcdFx0PSBpcGFfcmVzb3VyY2Vfc3JjLFxuJiM0MztcdC5yZXNvdXJjZV9kc3RfY291bnRcdD0gQVJSQVlfU0laRShpcGFfcmVzb3VyY2VfZHN0KSxcbiYjNDM7XHQucmVzb3VyY2VfZHN0XHRcdD0gaXBhX3Jlc291cmNlX2RzdCxcbiYjNDM7fTtcbiYjNDM7XG4mIzQzOy8qIElQQS1yZXNpZGVudCBtZW1vcnkgcmVnaW9uIGRhdGEgZm9yIGFuIFNvQyBoYXZpbmcgSVBBIHY1LjEgKi9cbiYjNDM7c3RhdGljIGNvbnN0IHN0cnVjdCBpcGFfbWVtIGlwYV9tZW1fbG9jYWxfZGF0YVtdID0ge1xuJiM0MztcdHtcbiYjNDM7XHRcdC5pZFx0XHQ9IElQQV9NRU1fVUNfRVZFTlRfUklORyxcbiYjNDM7XHRcdC5vZmZzZXRcdFx0PSAweDAwMDAsXG4mIzQzO1x0XHQuc2l6ZVx0XHQ9IDB4MTAwMCxcbiYjNDM7XHRcdC5jYW5hcnlfY291bnRcdD0gMCxcbiYjNDM7XHR9LFxuJiM0MztcdHtcbiYjNDM7XHRcdC5pZFx0XHQ9IElQQV9NRU1fVUNfU0hBUkVELFxuJiM0MztcdFx0Lm9mZnNldFx0XHQ9IDB4MTAwMCxcbiYjNDM7XHRcdC5zaXplXHRcdD0gMHgwMDgwLFxuJiM0MztcdFx0LmNhbmFyeV9jb3VudFx0PSAwLFxuJiM0MztcdH0sXG4mIzQzO1x0e1xuJiM0MztcdFx0LmlkXHRcdD0gSVBBX01FTV9VQ19JTkZPLFxuJiM0MztcdFx0Lm9mZnNldFx0XHQ9IDB4MTA4MCxcbiYjNDM7XHRcdC5zaXplXHRcdD0gMHgwMjAwLFxuJiM0MztcdFx0LmNhbmFyeV9jb3VudFx0PSAwLFxuJiM0MztcdH0sXG4mIzQzO1x0e1xuJiM0MztcdFx0LmlkXHRcdD0gSVBBX01FTV9WNF9GSUxURVJfSEFTSEVELFxuJiM0MztcdFx0Lm9mZnNldFx0XHQ9IDB4MTI4OCxcbiYjNDM7XHRcdC5zaXplXHRcdD0gMHgwMDc4LFxuJiM0MztcdFx0LmNhbmFyeV9jb3VudFx0PSAyLFxuJiM0MztcdH0sXG4mIzQzO1x0e1xuJiM0MztcdFx0LmlkXHRcdD0gSVBBX01FTV9WNF9GSUxURVIsXG4mIzQzO1x0XHQub2Zmc2V0XHRcdD0gMHgxMzA4LFxuJiM0MztcdFx0LnNpemVcdFx0PSAweDAwNzgsXG4mIzQzO1x0XHQuY2FuYXJ5X2NvdW50XHQ9IDIsXG4mIzQzO1x0fSxcbiYjNDM7XHR7XG4mIzQzO1x0XHQuaWRcdFx0PSBJUEFfTUVNX1Y2X0ZJTFRFUl9IQVNIRUQsXG4mIzQzO1x0XHQub2Zmc2V0XHRcdD0gMHgxMzg4LFxuJiM0MztcdFx0LnNpemVcdFx0PSAweDAwNzgsXG4mIzQzO1x0XHQuY2FuYXJ5X2NvdW50XHQ9IDIsXG4mIzQzO1x0fSxcbiYjNDM7XHR7XG4mIzQzO1x0XHQuaWRcdFx0PSBJUEFfTUVNX1Y2X0ZJTFRFUixcbiYjNDM7XHRcdC5vZmZzZXRcdFx0PSAweDE0MDgsXG4mIzQzO1x0XHQuc2l6ZVx0XHQ9IDB4MDA3OCxcbiYjNDM7XHRcdC5jYW5hcnlfY291bnRcdD0gMixcbiYjNDM7XHR9LFxuJiM0MztcdHtcbiYjNDM7XHRcdC5pZFx0XHQ9IElQQV9NRU1fVjRfUk9VVEVfSEFTSEVELFxuJiM0MztcdFx0Lm9mZnNldFx0XHQ9IDB4MTQ4OCxcbiYjNDM7XHRcdC5zaXplXHRcdD0gMHgwMDk4LFxuJiM0MztcdFx0LmNhbmFyeV9jb3VudFx0PSAyLFxuJiM0MztcdH0sXG4mIzQzO1x0e1xuJiM0MztcdFx0LmlkXHRcdD0gSVBBX01FTV9WNF9ST1VURSxcbiYjNDM7XHRcdC5vZmZzZXRcdFx0PSAweDE1MjgsXG4mIzQzO1x0XHQuc2l6ZVx0XHQ9IDB4MDA5OCxcbiYjNDM7XHRcdC5jYW5hcnlfY291bnRcdD0gMixcbiYjNDM7XHR9LFxuJiM0MztcdHtcbiYjNDM7XHRcdC5pZFx0XHQ9IElQQV9NRU1fVjZfUk9VVEVfSEFTSEVELFxuJiM0MztcdFx0Lm9mZnNldFx0XHQ9IDB4MTVjOCxcbiYjNDM7XHRcdC5zaXplXHRcdD0gMHgwMDk4LFxuJiM0MztcdFx0LmNhbmFyeV9jb3VudFx0PSAyLFxuJiM0MztcdH0sXG4mIzQzO1x0e1xuJiM0MztcdFx0LmlkXHRcdD0gSVBBX01FTV9WNl9ST1VURSxcbiYjNDM7XHRcdC5vZmZzZXRcdFx0PSAweDE2NjgsXG4mIzQzO1x0XHQuc2l6ZVx0XHQ9IDB4MDA5OCxcbiYjNDM7XHRcdC5jYW5hcnlfY291bnRcdD0gMixcbiYjNDM7XHR9LFxuJiM0MztcdHtcbiYjNDM7XHRcdC5pZFx0XHQ9IElQQV9NRU1fTU9ERU1fSEVBREVSLFxuJiM0MztcdFx0Lm9mZnNldFx0XHQ9IDB4MTcwOCxcbiYjNDM7XHRcdC5zaXplXHRcdD0gMHgwMjQwLFxuJiM0MztcdFx0LmNhbmFyeV9jb3VudFx0PSAyLFxuJiM0MztcdH0sXG4mIzQzO1x0e1xuJiM0MztcdFx0LmlkXHRcdD0gSVBBX01FTV9BUF9IRUFERVIsXG4mIzQzO1x0XHQub2Zmc2V0XHRcdD0gMHgxOTQ4LFxuJiM0MztcdFx0LnNpemVcdFx0PSAweDAxZTAsXG4mIzQzO1x0XHQuY2FuYXJ5X2NvdW50XHQ9IDAsXG4mIzQzO1x0fSxcbiYjNDM7XHR7XG4mIzQzO1x0XHQuaWRcdFx0PSBJUEFfTUVNX01PREVNX1BST0NfQ1RYLFxuJiM0MztcdFx0Lm9mZnNldFx0XHQ9IDB4MWI0MCxcbiYjNDM7XHRcdC5zaXplXHRcdD0gMHgwYjIwLFxuJiM0MztcdFx0LmNhbmFyeV9jb3VudFx0PSAyLFxuJiM0MztcdH0sXG4mIzQzO1x0e1xuJiM0MztcdFx0LmlkXHRcdD0gSVBBX01FTV9BUF9QUk9DX0NUWCxcbiYjNDM7XHRcdC5vZmZzZXRcdFx0PSAweDI2NjAsXG4mIzQzO1x0XHQuc2l6ZVx0XHQ9IDB4MDIwMCxcbiYjNDM7XHRcdC5jYW5hcnlfY291bnRcdD0gMCxcbiYjNDM7XHR9LFxuJiM0MztcdHtcbiYjNDM7XHRcdC5pZFx0XHQ9IElQQV9NRU1fU1RBVFNfUVVPVEFfTU9ERU0sXG4mIzQzO1x0XHQub2Zmc2V0XHRcdD0gMHgyODY4LFxuJiM0MztcdFx0LnNpemVcdFx0PSAweDAwNjAsXG4mIzQzO1x0XHQuY2FuYXJ5X2NvdW50XHQ9IDIsXG4mIzQzO1x0fSxcbiYjNDM7XHR7XG4mIzQzO1x0XHQuaWRcdFx0PSBJUEFfTUVNX1NUQVRTX1FVT1RBX0FQLFxuJiM0MztcdFx0Lm9mZnNldFx0XHQ9IDB4MjhjOCxcbiYjNDM7XHRcdC5zaXplXHRcdD0gMHgwMDQ4LFxuJiM0MztcdFx0LmNhbmFyeV9jb3VudFx0PSAwLFxuJiM0MztcdH0sXG4mIzQzO1x0e1xuJiM0MztcdFx0LmlkXHRcdD0gSVBBX01FTV9TVEFUU19URVRIRVJJTkcsXG4mIzQzO1x0XHQub2Zmc2V0XHRcdD0gMHgyOTEwLFxuJiM0MztcdFx0LnNpemVcdFx0PSAweDAzYzAsXG4mIzQzO1x0XHQuY2FuYXJ5X2NvdW50XHQ9IDAsXG4mIzQzO1x0fSxcbiYjNDM7XHR7XG4mIzQzO1x0XHQuaWRcdFx0PSBJUEFfTUVNX0FQX1Y0X0ZJTFRFUixcbiYjNDM7XHRcdC5vZmZzZXRcdFx0PSAweDI5YjgsXG4mIzQzO1x0XHQuc2l6ZVx0XHQ9IDB4MDE4OCxcbiYjNDM7XHRcdC5jYW5hcnlfY291bnRcdD0gMixcbiYjNDM7XHR9LFxuJiM0MztcdHtcbiYjNDM7XHRcdC5pZFx0XHQ9IElQQV9NRU1fQVBfVjZfRklMVEVSLFxuJiM0MztcdFx0Lm9mZnNldFx0XHQ9IDB4MmI0MCxcbiYjNDM7XHRcdC5zaXplXHRcdD0gMHgwMjI4LFxuJiM0MztcdFx0LmNhbmFyeV9jb3VudFx0PSAwLFxuJiM0MztcdH0sXG4mIzQzO1x0e1xuJiM0MztcdFx0LmlkXHRcdD0gSVBBX01FTV9TVEFUU19GSUxURVJfUk9VVEUsXG4mIzQzO1x0XHQub2Zmc2V0XHRcdD0gMHgyY2QwLFxuJiM0MztcdFx0LnNpemVcdFx0PSAweDBiYTAsXG4mIzQzO1x0XHQuY2FuYXJ5X2NvdW50XHQ9IDIsXG4mIzQzO1x0fSxcbiYjNDM7XHR7XG4mIzQzO1x0XHQuaWRcdFx0PSBJUEFfTUVNX1NUQVRTX0RST1AsXG4mIzQzO1x0XHQub2Zmc2V0XHRcdD0gMHgzODcwLFxuJiM0MztcdFx0LnNpemVcdFx0PSAweDAwMjAsXG4mIzQzO1x0XHQuY2FuYXJ5X2NvdW50XHQ9IDAsXG4mIzQzO1x0fSxcbiYjNDM7XHR7XG4mIzQzO1x0XHQuaWRcdFx0PSBJUEFfTUVNX01PREVNLFxuJiM0MztcdFx0Lm9mZnNldFx0XHQ9IDB4Mzg5OCxcbiYjNDM7XHRcdC5zaXplXHRcdD0gMHgwZDQ4LFxuJiM0MztcdFx0LmNhbmFyeV9jb3VudFx0PSAyLFxuJiM0MztcdH0sXG4mIzQzO1x0e1xuJiM0MztcdFx0LmlkXHRcdD0gSVBBX01FTV9OQVRfVEFCTEUsXG4mIzQzO1x0XHQub2Zmc2V0XHRcdD0gMHg0NWUwLFxuJiM0MztcdFx0LnNpemVcdFx0PSAweDA5MDAsXG4mIzQzO1x0XHQuY2FuYXJ5X2NvdW50XHQ9IDAsXG4mIzQzO1x0fSxcbiYjNDM7XHR7XG4mIzQzO1x0XHQuaWRcdFx0PSBJUEFfTUVNX1BETl9DT05GSUcsXG4mIzQzO1x0XHQub2Zmc2V0XHRcdD0gMHg0ZWU4LFxuJiM0MztcdFx0LnNpemVcdFx0PSAweDAxMDAsXG4mIzQzO1x0XHQuY2FuYXJ5X2NvdW50XHQ9IDIsXG4mIzQzO1x0fSxcbiYjNDM7fTtcbiYjNDM7XG4mIzQzOy8qIE1lbW9yeSBjb25maWd1cmF0aW9uIGRhdGEgZm9yIGFuIFNvQyBoYXZpbmcgSVBBIHY1LjEgKi9cbiYjNDM7c3RhdGljIGNvbnN0IHN0cnVjdCBpcGFfbWVtX2RhdGEgaXBhX21lbV9kYXRhID0ge1xuJiM0MztcdC5sb2NhbF9jb3VudFx0PSBBUlJBWV9TSVpFKGlwYV9tZW1fbG9jYWxfZGF0YSksXG4mIzQzO1x0LmxvY2FsXHRcdD0gaXBhX21lbV9sb2NhbF9kYXRhLFxuJiM0MztcdC5pbWVtX2FkZHJcdD0gMHgxNDZhODAwMCxcbiYjNDM7XHQuaW1lbV9zaXplXHQ9IDB4MDAwMDIwMDAsXG4mIzQzO1x0LypcbiYjNDM7XHQgKiBXaGlsZSB0aGlzIHZhbHVlIGlzIDB4YjAwMCBvbiBTTTg0NTAgYW5kIDB4OTAwMCBvbiBTTTg0NzUsXG4mIzQzO1x0ICogaXQgaGFzIGJlZW4gbGVmdCBzZXQgdG8gMHg5MDAwIGZvciBjb21wYXRpYmlsaXR5IHdpdGggU004NDc1XG4mIzQzO1x0ICovXG4mIzQzO1x0LnNtZW1fc2l6ZVx0PSAweDAwMDA5MDAwLFxuJiM0Mzt9O1xuJiM0MztcbiYjNDM7LyogSW50ZXJjb25uZWN0IHJhdGVzIGFyZSBpbiAxMDAwIGJ5dGUvc2Vjb25kIHVuaXRzICovXG4mIzQzO3N0YXRpYyBjb25zdCBzdHJ1Y3QgaXBhX2ludGVyY29ubmVjdF9kYXRhIGlwYV9pbnRlcmNvbm5lY3RfZGF0YVtdID0ge1xuJiM0MztcdHtcbiYjNDM7XHRcdC5uYW1lXHRcdFx0PSBcJiMzNDttZW1vcnlcJiMzNDssXG4mIzQzO1x0XHQucGVha19iYW5kd2lkdGhcdFx0PSAxOTAwMDAwLFx0LyogMS45IEdCcHMgKi9cbiYjNDM7XHRcdC5hdmVyYWdlX2JhbmR3aWR0aFx0PSA1OTAwMDAsXHQvKiA1OTAgTUJwcyAqL1xuJiM0MztcdH0sXG4mIzQzO1x0LyogQXZlcmFnZSByYXRlIGlzIHVudXNlZCBmb3IgdGhlIG5leHQgaW50ZXJjb25uZWN0ICovXG4mIzQzO1x0e1xuJiM0MztcdFx0Lm5hbWVcdFx0XHQ9IFwmIzM0O2NvbmZpZ1wmIzM0OyxcbiYjNDM7XHRcdC5wZWFrX2JhbmR3aWR0aFx0XHQ9IDc2ODAwLFx0LyogNzYuOCBNQnBzICovXG4mIzQzO1x0XHQuYXZlcmFnZV9iYW5kd2lkdGhcdD0gMCxcdFx0LyogdW51c2VkICovXG4mIzQzO1x0fSxcbiYjNDM7fTtcbiYjNDM7XG4mIzQzOy8qIENsb2NrIGFuZCBpbnRlcmNvbm5lY3QgY29uZmlndXJhdGlvbiBkYXRhIGZvciBhbiBTb0MgaGF2aW5nIElQQSB2NS4xICovXG4mIzQzO3N0YXRpYyBjb25zdCBzdHJ1Y3QgaXBhX3Bvd2VyX2RhdGEgaXBhX3Bvd2VyX2RhdGEgPSB7XG4mIzQzO1x0LmNvcmVfY2xvY2tfcmF0ZVx0PSAxMjAgKiAxMDAwICogMTAwMCxcdC8qIEh6ICovXG4mIzQzO1x0LmludGVyY29ubmVjdF9jb3VudFx0PSBBUlJBWV9TSVpFKGlwYV9pbnRlcmNvbm5lY3RfZGF0YSksXG4mIzQzO1x0LmludGVyY29ubmVjdF9kYXRhXHQ9IGlwYV9pbnRlcmNvbm5lY3RfZGF0YSxcbiYjNDM7fTtcbiYjNDM7XG4mIzQzOy8qIENvbmZpZ3VyYXRpb24gZGF0YSBmb3IgYW4gU29DIGhhdmluZyBJUEEgdjUuMS4gKi9cbiYjNDM7Y29uc3Qgc3RydWN0IGlwYV9kYXRhIGlwYV9kYXRhX3Y1XzEgPSB7XG4mIzQzO1x0LnZlcnNpb25cdFx0PSBJUEFfVkVSU0lPTl81XzEsXG4mIzQzO1x0LnFzYl9jb3VudFx0XHQ9IEFSUkFZX1NJWkUoaXBhX3FzYl9kYXRhKSxcbiYjNDM7XHQucXNiX2RhdGFcdFx0PSBpcGFfcXNiX2RhdGEsXG4mIzQzO1x0Lm1vZGVtX3JvdXRlX2NvdW50XHQ9IDExLFxuJiM0MztcdC5lbmRwb2ludF9jb3VudFx0XHQ9IEFSUkFZX1NJWkUoaXBhX2dzaV9lbmRwb2ludF9kYXRhKSxcbiYjNDM7XHQuZW5kcG9pbnRfZGF0YVx0XHQ9IGlwYV9nc2lfZW5kcG9pbnRfZGF0YSxcbiYjNDM7XHQucmVzb3VyY2VfZGF0YVx0XHQ9IFx1MDAyNmlwYV9yZXNvdXJjZV9kYXRhLFxuJiM0MztcdC5tZW1fZGF0YVx0XHQ9IFx1MDAyNmlwYV9tZW1fZGF0YSxcbiYjNDM7XHQucG93ZXJfZGF0YVx0XHQ9IFx1MDAyNmlwYV9wb3dlcl9kYXRhLFxuJiM0Mzt9O1xuZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2lwYS9nc2lfcmVnLmMgYi9kcml2ZXJzL25ldC9pcGEvZ3NpX3JlZy5jXG5pbmRleCBlMTNjZjgzNWEwMTNjOS4uYTU3MDcyYmE0YmVmNmYgMTAwNjQ0XG4tLS0gYS9kcml2ZXJzL25ldC9pcGEvZ3NpX3JlZy5jXG4mIzQzOyYjNDM7JiM0MzsgYi9kcml2ZXJzL25ldC9pcGEvZ3NpX3JlZy5jXG5AQCAtMTEwLDYgJiM0MzsxMTAsNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IHJlZ3MgKmdzaV9yZWdzKHN0cnVjdCBnc2kgKmdzaSlcbiBcdFx0cmV0dXJuIFx1MDAyNmdzaV9yZWdzX3Y0XzExO1xuIFxuIFx0Y2FzZSBJUEFfVkVSU0lPTl81XzA6XG4mIzQzO1x0Y2FzZSBJUEFfVkVSU0lPTl81XzE6XG4gXHRjYXNlIElQQV9WRVJTSU9OXzVfMjpcbiBcdGNhc2UgSVBBX1ZFUlNJT05fNV81OlxuIFx0XHRyZXR1cm4gXHUwMDI2Z3NpX3JlZ3NfdjVfMDtcbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9pcGEvaXBhX2RhdGEuaCBiL2RyaXZlcnMvbmV0L2lwYS9pcGFfZGF0YS5oXG5pbmRleCAzZWI5ZGMyY2UzMzk4ZC4uZmU2ZjdkNWJmZTg4YzkgMTAwNjQ0XG4tLS0gYS9kcml2ZXJzL25ldC9pcGEvaXBhX2RhdGEuaFxuJiM0MzsmIzQzOyYjNDM7IGIvZHJpdmVycy9uZXQvaXBhL2lwYV9kYXRhLmhcbkBAIC0yNTMsNiAmIzQzOzI1Myw3IEBAIGV4dGVybiBjb25zdCBzdHJ1Y3QgaXBhX2RhdGEgaXBhX2RhdGFfdjRfNztcbiBleHRlcm4gY29uc3Qgc3RydWN0IGlwYV9kYXRhIGlwYV9kYXRhX3Y0Xzk7XG4gZXh0ZXJuIGNvbnN0IHN0cnVjdCBpcGFfZGF0YSBpcGFfZGF0YV92NF8xMTtcbiBleHRlcm4gY29uc3Qgc3RydWN0IGlwYV9kYXRhIGlwYV9kYXRhX3Y1XzA7XG4mIzQzO2V4dGVybiBjb25zdCBzdHJ1Y3QgaXBhX2RhdGEgaXBhX2RhdGFfdjVfMTtcbiBleHRlcm4gY29uc3Qgc3RydWN0IGlwYV9kYXRhIGlwYV9kYXRhX3Y1XzI7XG4gZXh0ZXJuIGNvbnN0IHN0cnVjdCBpcGFfZGF0YSBpcGFfZGF0YV92NV81O1xuIFxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2lwYS9pcGFfbWFpbi5jIGIvZHJpdmVycy9uZXQvaXBhL2lwYV9tYWluLmNcbmluZGV4IDc4OGRkOTlhZjJhNGRjLi42YzQ0OTAzMmFlNDU5MiAxMDA2NDRcbi0tLSBhL2RyaXZlcnMvbmV0L2lwYS9pcGFfbWFpbi5jXG4mIzQzOyYjNDM7JiM0MzsgYi9kcml2ZXJzL25ldC9pcGEvaXBhX21haW4uY1xuQEAgLTY2OSw2ICYjNDM7NjY5LDEwIEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3Qgb2ZfZGV2aWNlX2lkIGlwYV9tYXRjaFtdID0ge1xuIFx0XHQuY29tcGF0aWJsZVx0PSBcJiMzNDtxY29tLHNkeDY1LWlwYVwmIzM0OyxcbiBcdFx0LmRhdGFcdFx0PSBcdTAwMjZpcGFfZGF0YV92NV8wLFxuIFx0fSxcbiYjNDM7XHR7XG4mIzQzO1x0XHQuY29tcGF0aWJsZVx0PSBcJiMzNDtxY29tLHNtODQ1MC1pcGFcJiMzNDssXG4mIzQzO1x0XHQuZGF0YVx0XHQ9IFx1MDAyNmlwYV9kYXRhX3Y1XzEsXG4mIzQzO1x0fSxcbiBcdHtcbiBcdFx0LmNvbXBhdGlibGVcdD0gXCYjMzQ7cWNvbSxtaWxvcy1pcGFcJiMzNDssXG4gXHRcdC5kYXRhXHRcdD0gXHUwMDI2aXBhX2RhdGFfdjVfMixcbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9pcGEvaXBhX3JlZy5jIGIvZHJpdmVycy9uZXQvaXBhL2lwYV9yZWcuY1xuaW5kZXggMzBiZDY5ZjRjMTQ3Y2QuLjVmMjJjYTYyOTViMTY1IDEwMDY0NFxuLS0tIGEvZHJpdmVycy9uZXQvaXBhL2lwYV9yZWcuY1xuJiM0MzsmIzQzOyYjNDM7IGIvZHJpdmVycy9uZXQvaXBhL2lwYV9yZWcuY1xuQEAgLTEyNSw2ICYjNDM7MTI1LDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCByZWdzICppcGFfcmVncyhlbnVtIGlwYV92ZXJzaW9uIHZlcnNpb24pXG4gXHRjYXNlIElQQV9WRVJTSU9OXzRfMTE6XG4gXHRcdHJldHVybiBcdTAwMjZpcGFfcmVnc192NF8xMTtcbiBcdGNhc2UgSVBBX1ZFUlNJT05fNV8wOlxuJiM0MztcdGNhc2UgSVBBX1ZFUlNJT05fNV8xOlxuIFx0Y2FzZSBJUEFfVkVSU0lPTl81XzI6XG4gXHRcdHJldHVybiBcdTAwMjZpcGFfcmVnc192NV8wO1xuIFx0Y2FzZSBJUEFfVkVSU0lPTl81XzU6XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Mi8xPC90ZD4KCQkJPHRkPjIwMjYvMDYvMjMgMDI6MDA8L3RkPgoJCQk8dGQ+YWdlbnQ8L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IG51bGwsCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogW10sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggYWRkcyBzdXBwb3J0IGZvciBhIG5ldyBoYXJkd2FyZSB2ZXJzaW9uICh2NS4xKSBvZiB0aGUgUXVhbGNvbW0gSVAgQWNjZWxlcmF0b3IgKElQQSkgZm9yIHRoZSBTTTg0NTAgU29DLiBJdCBvbmx5IGludHJvZHVjZXMgbmV3IGRhdGEgc3RydWN0dXJlcywgZGV2aWNlIHRyZWUgYmluZGluZ3MsIGFuZCByZWdpc3RlcnMgdGhlIG5ldyBjb21wYXRpYmxlIHN0cmluZy4gVGhlIElQQSBpcyBhIGhhcmR3YXJlIGJsb2NrIHNwZWNpZmljIHRvIFF1YWxjb21tIFNvQ3MgYW5kIGlzIG5vdCBlbXVsYXRlZCBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBRRU1VIG9yIEdDRSwgbWFraW5nIHRoaXMgY29kZSB1bnJlYWNoYWJsZSBhbmQgdW50ZXN0YWJsZSBkdXJpbmcgZnV6emluZy4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiBmYWxzZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5JbnN0cnVjdGlvbjo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPllvdSBhcmUgYW4gZXhwZXJ0IExpbnV4IGtlcm5lbCBtYWludGFpbmVyLgpZb3VyIGpvYiBpcyB0byByZXZpZXcgYSBwcm92aWRlZCBwYXRjaCBzZXJpZXMgYW5kIGRldGVybWluZQppZiBpdCBtYWtlcyBmdW5jdGlvbmFsIGNoYW5nZXMgdG8gdGhlIGtlcm5lbCB0aGF0IHNob3VsZCBiZSBmdXp6ZWQuCgpJTVBPUlRBTlQ6IFRoZSBjaGFuZ2VzIGhhdmUgQUxSRUFEWSBiZWVuIGFwcGxpZWQgYW5kIGNvbW1pdHRlZCBhcyB0aGUgSEVBRCBjb21taXQgaW4KeW91ciB3b3Jrc3BhY2UuIERvIE5PVCByZWx5IG9uIHlvdXIgaW50ZXJuYWwga25vd2xlZGdlIG9mIHRoZSBrZXJuZWwuIFlvdSBtdXN0IGFjdGl2ZWx5CnVzZSB5b3VyIGNvZGUgYWNjZXNzIHRvb2xzIHRvIGV4YW1pbmUgdGhlIGFjdHVhbCBzb3VyY2UgY29kZSBhbmQgY29uZmlybSBhbnkgYXNzdW1wdGlvbnMuCgpSZXR1cm4gV29ydGhGdXp6aW5nPWZhbHNlIGlmIHRoZSBwYXRjaCBvbmx5IGNvbnRhaW5zOgotIE1vZGlmaWNhdGlvbnMgdG8gRG9jdW1lbnRhdGlvbi8sIEtjb25maWcgZmlsZXMsIG9yIGNvZGUgY29tbWVudHMuCi0gUHVyZWx5IGRlY29yYXRpdmUgY2hhbmdlcywgc3VjaCBhcyBsb2dnaW5nIChlLmcuLCBwcl9lcnIsIHByaW50aykgb3IgdHJhY2Vwb2ludHMuCi0gQ2hhbmdlcyB0byBudW1lcmljIGNvbnN0YW50cyBvciBtYWNyb3MgdGhhdCBkbyBub3QgZnVuY3Rpb25hbGx5IGFsdGVyIGV4ZWN1dGlvbiBmbG93LgotIENvZGUgcGF0aHMgdGhhdCBhcmUgaW1wb3NzaWJsZSB0byByZWFjaCBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBHQ0Ugb3IgUUVNVSwKZXZlbiB3aGVuIHV0aWxpemluZyBzb2Z0d2FyZS1lbXVsYXRlZCBoYXJkd2FyZSAoZS5nLiwgdXNiIGdhZGdldCwgbWFjODAyMTFfaHdzaW0pLgoKSWYgaXQgbW9kaWZpZXMgcmVhY2hhYmxlIGNvcmUga2VybmVsIGxvZ2ljLCBkcml2ZXJzLCBvciBhcmNoaXRlY3R1cmVzLCB1c2UgeW91ciBjb2RlIHNlYXJjaAp0b29scyB0byB2ZXJpZnkgdGhlIGNvZGUgY2FuIGJlIGV4ZWN1dGVkLCB0aGVuIHJldHVybiBXb3J0aEZ1enppbmc9dHJ1ZS4KCldoZW4gcmV0dXJuaW5nIFdvcnRoRnV6emluZz10cnVlLCB5b3UgTVVTVCBBTFNPOgoxLiBFeHRyYWN0IGFueSBzcGVjaWZpYyBrZXJuZWwgZnVuY3Rpb25zIHRoYXQgc2hvdWxkIGJlIGhlYXZpbHkgZnV6emVkIGludG8gRm9jdXNTeW1ib2xzLgogICBBdm9pZCBsaXN0aW5nIGdlbmVyaWMgaG90LXBhdGggZnVuY3Rpb25zIHRvIHByZXZlbnQgc2tld2VkIHRlc3QgZGlzdHJpYnV0aW9ucy4KMi4gSWRlbnRpZnkgYW55IHNwZWNpZmljIENPTkZJR18gb3B0aW9ucyByZXF1aXJlZCB0byBwcm9wZXJseSB0ZXN0IHRoaXMgbmV3L21vZGlmaWVkIGZlYXR1cmUuCiAgIEdvIGFuZCBsb29rIGludG8gdGhlIEtjb25maWcgZmlsZXMgYW5kIGNoZWNrIGZvciBpZmRlZnMgYXJvdW5kIHRoZSBjb2RlLCBkbyBub3QgbWFrZSBhc3N1bXB0aW9ucy4KICAgRG8gbm90IGxpc3QgdG9vIGdlbmVyaWMgY29uZmlncyAod2UgYWxyZWFkeSBoYXZlIHRoZW0gZW5hYmxlZCkuIE9ubHkgbGlzdCB0aG9zZSB0aGF0CiAgIHNwZWNpZmljYWxseSBjb3ZlciB0aGUgbW9kaWZpZWQgY29kZS4gTGlzdCB0aGVtIGluIHRoZSBFbmFibGVDb25maWdzIG91dHB1dCBhcnJheSwKICAgYW5kIERPIE5PVCBhZGQgYSAmIzM5O0NPTkZJR18mIzM5OyBwcmVmaXggKGUuZy4sIHJldHVybiAmIzM0O05FVF9JUFY0JiMzNDsgaW5zdGVhZCBvZiAmIzM0O0NPTkZJR19ORVRfSVBWNCYjMzQ7KS4KUHJlZmVyIGNhbGxpbmcgc2V2ZXJhbCB0b29scyBhdCB0aGUgc2FtZSB0aW1lIHRvIHNhdmUgcm91bmQtdHJpcHMuCgoKVXNlIHNldC1yZXN1bHRzIHRvb2wgdG8gcHJvdmlkZSByZXN1bHRzIG9mIHRoZSBhbmFseXNpcy4KSXQgbXVzdCBiZSBjYWxsZWQgZXhhY3RseSBvbmNlIGJlZm9yZSB0aGUgZmluYWwgcmVwbHkuCklnbm9yZSByZXN1bHRzIG9mIHRoaXMgdG9vbC4KPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Qcm9tcHQ6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Gb3IgeW91ciBjb252ZW5pZW5jZSwgaGVyZSBpcyB0aGUgZGlmZiBvZiB0aGUgY2hhbmdlczoKY29tbWl0IGRkMmRkZjEwNzUwYjBlZjQzYWZhNjBhYWU2ZjExYTdmYzQ1MjM4Y2MKQXV0aG9yOiBzeXotY2x1c3RlciAmbHQ7dHJpYWdlQHN5emthbGxlci5jb20mZ3Q7CkRhdGU6ICAgVHVlIEp1biAyMyAwMjowMDoyNiAyMDI2ICYjNDM7MDAwMAoKICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlldwoKZGlmZiAtLWdpdCBhL0RvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvcWNvbSxpcGEueWFtbCBiL0RvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvcWNvbSxpcGEueWFtbAppbmRleCA2OGVjNzZmZTQ0NzM1Ni4uZGI5MWJmYWFmODMzMmUgMTAwNjQ0Ci0tLSBhL0RvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvcWNvbSxpcGEueWFtbAomIzQzOyYjNDM7JiM0MzsgYi9Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L3Fjb20saXBhLnlhbWwKQEAgLTUzLDYgJiM0Mzs1Myw3IEBAIHByb3BlcnRpZXM6CiAgICAgICAgICAgLSBxY29tLHNkeDY1LWlwYQogICAgICAgICAgIC0gcWNvbSxzbTYzNTAtaXBhCiAgICAgICAgICAgLSBxY29tLHNtODM1MC1pcGEKJiM0MzsgICAgICAgICAgLSBxY29tLHNtODQ1MC1pcGEKICAgICAgICAgICAtIHFjb20sc204NTUwLWlwYQogICAgICAgLSBpdGVtczoKICAgICAgICAgICAtIGVudW06CmRpZmYgLS1naXQgYS9hcmNoL2FybTY0L2Jvb3QvZHRzL3Fjb20vc204NDUwLmR0c2kgYi9hcmNoL2FybTY0L2Jvb3QvZHRzL3Fjb20vc204NDUwLmR0c2kKaW5kZXggNTZjYjZlOTU5ZTRlZTIuLmM5MDQ3MjAwMDhmYWM3IDEwMDY0NAotLS0gYS9hcmNoL2FybTY0L2Jvb3QvZHRzL3Fjb20vc204NDUwLmR0c2kKJiM0MzsmIzQzOyYjNDM7IGIvYXJjaC9hcm02NC9ib290L2R0cy9xY29tL3NtODQ1MC5kdHNpCkBAIC0yNjM5LDYgJiM0MzsyNjM5LDQ3IEBAIGFkcmVub19zbW11OiBpb21tdUAzZGEwMDAwIHsKIAkJCWRtYS1jb2hlcmVudDsKIAkJfTsKIAomIzQzOwkJaXBhOiBpcGFAM2Y0MDAwMCB7CiYjNDM7CQkJY29tcGF0aWJsZSA9ICYjMzQ7cWNvbSxzbTg0NTAtaXBhJiMzNDs7CiYjNDM7CiYjNDM7CQkJaW9tbXVzID0gJmx0OyZhbXA7YXBwc19zbW11IDB4NWMwIDB4MCZndDssCiYjNDM7CQkJCSAmbHQ7JmFtcDthcHBzX3NtbXUgMHg1YzIgMHgwJmd0OzsKJiM0MzsJCQlyZWcgPSAmbHQ7MCAweDNmNDAwMDAgMCAweDEwMDAwJmd0OywKJiM0MzsJCQkgICAgICAmbHQ7MCAweDNmNTAwMDAgMCAweDUwMDAmZ3Q7LAomIzQzOwkJCSAgICAgICZsdDswIDB4M2UwNDAwMCAwIDB4ZmMwMDAmZ3Q7OwomIzQzOwkJCXJlZy1uYW1lcyA9ICYjMzQ7aXBhLXJlZyYjMzQ7LAomIzQzOwkJCQkgICAgJiMzNDtpcGEtc2hhcmVkJiMzNDssCiYjNDM7CQkJCSAgICAmIzM0O2dzaSYjMzQ7OwomIzQzOwomIzQzOwkJCWludGVycnVwdHMtZXh0ZW5kZWQgPSAmbHQ7JmFtcDtpbnRjIEdJQ19TUEkgNjU0IElSUV9UWVBFX0VER0VfUklTSU5HJmd0OywKJiM0MzsJCQkJCSAgICAgICZsdDsmYW1wO2ludGMgR0lDX1NQSSA0MzIgSVJRX1RZUEVfTEVWRUxfSElHSCZndDssCiYjNDM7CQkJCQkgICAgICAmbHQ7JmFtcDtpcGFfc21wMnBfaW4gMCBJUlFfVFlQRV9FREdFX1JJU0lORyZndDssCiYjNDM7CQkJCQkgICAgICAmbHQ7JmFtcDtpcGFfc21wMnBfaW4gMSBJUlFfVFlQRV9FREdFX1JJU0lORyZndDs7CiYjNDM7CQkJaW50ZXJydXB0LW5hbWVzID0gJiMzNDtpcGEmIzM0OywKJiM0MzsJCQkJCSAgJiMzNDtnc2kmIzM0OywKJiM0MzsJCQkJCSAgJiMzNDtpcGEtY2xvY2stcXVlcnkmIzM0OywKJiM0MzsJCQkJCSAgJiMzNDtpcGEtc2V0dXAtcmVhZHkmIzM0OzsKJiM0MzsKJiM0MzsJCQljbG9ja3MgPSAmbHQ7JmFtcDtycG1oY2MgUlBNSF9JUEFfQ0xLJmd0OzsKJiM0MzsJCQljbG9jay1uYW1lcyA9ICYjMzQ7Y29yZSYjMzQ7OwomIzQzOwomIzQzOwkJCWludGVyY29ubmVjdHMgPSAmbHQ7JmFtcDthZ2dyZTJfbm9jIE1BU1RFUl9JUEEgMCAmYW1wO21jX3ZpcnQgU0xBVkVfRUJJMSAwJmd0OywKJiM0MzsJCQkJCSZsdDsmYW1wO2dlbV9ub2MgTUFTVEVSX0FQUFNTX1BST0MgMCAmYW1wO2NvbmZpZ19ub2MgU0xBVkVfSVBBX0NGRyAwJmd0OzsKJiM0MzsJCQlpbnRlcmNvbm5lY3QtbmFtZXMgPSAmIzM0O21lbW9yeSYjMzQ7LAomIzQzOwkJCQkJICAgICAmIzM0O2NvbmZpZyYjMzQ7OwomIzQzOwomIzQzOwkJCXFjb20scW1wID0gJmx0OyZhbXA7YW9zc19xbXAmZ3Q7OwomIzQzOwomIzQzOwkJCXFjb20sc21lbS1zdGF0ZXMgPSAmbHQ7JmFtcDtpcGFfc21wMnBfb3V0IDAmZ3Q7LAomIzQzOwkJCQkJICAgJmx0OyZhbXA7aXBhX3NtcDJwX291dCAxJmd0OzsKJiM0MzsJCQlxY29tLHNtZW0tc3RhdGUtbmFtZXMgPSAmIzM0O2lwYS1jbG9jay1lbmFibGVkLXZhbGlkJiMzNDssCiYjNDM7CQkJCQkJJiMzNDtpcGEtY2xvY2stZW5hYmxlZCYjMzQ7OwomIzQzOwomIzQzOwkJCXNyYW0gPSAmbHQ7JmFtcDtpcGFfbW9kZW1fdGFibGVzJmd0OzsKJiM0MzsKJiM0MzsJCQlzdGF0dXMgPSAmIzM0O2Rpc2FibGVkJiMzNDs7CiYjNDM7CQl9OwomIzQzOwogCQl1c2JfMV9oc3BoeTogcGh5QDg4ZTMwMDAgewogCQkJY29tcGF0aWJsZSA9ICYjMzQ7cWNvbSxzbTg0NTAtdXNiLWhzLXBoeSYjMzQ7LAogCQkJCSAgICAgJiMzNDtxY29tLHVzYi1zbnBzLWhzLTdubS1waHkmIzM0OzsKQEAgLTQ5NzAsMTcgJiM0Mzs1MDExLDIxIEBAIGN0aUAxMzkwMDAwMCB7CiAJCQljbG9jay1uYW1lcyA9ICYjMzQ7YXBiX3BjbGsmIzM0OzsKIAkJfTsKIAotCQlzcmFtQDE0NmFhMDAwIHsKJiM0MzsJCXNyYW1AMTQ2YTgwMDAgewogCQkJY29tcGF0aWJsZSA9ICYjMzQ7cWNvbSxzbTg0NTAtaW1lbSYjMzQ7LCAmIzM0O3N5c2NvbiYjMzQ7LCAmIzM0O3NpbXBsZS1tZmQmIzM0OzsKLQkJCXJlZyA9ICZsdDswIDB4MTQ2YWEwMDAgMCAweDEwMDAmZ3Q7OwotCQkJcmFuZ2VzID0gJmx0OzAgMCAweDE0NmFhMDAwIDB4MTAwMCZndDs7CiYjNDM7CQkJcmVnID0gJmx0OzAgMHgxNDZhODAwMCAwIDB4MzAwMCZndDs7CiYjNDM7CQkJcmFuZ2VzID0gJmx0OzAgMCAweDE0NmE4MDAwIDB4MzAwMCZndDs7CiAKIAkJCSNhZGRyZXNzLWNlbGxzID0gJmx0OzEmZ3Q7OwogCQkJI3NpemUtY2VsbHMgPSAmbHQ7MSZndDs7CiAKLQkJCXBpbC1yZWxvY0A5NGMgewomIzQzOwkJCWlwYV9tb2RlbV90YWJsZXM6IG1vZGVtLXRhYmxlc0AwIHsKJiM0MzsJCQkJcmVnID0gJmx0OzAgMHgyMDAwJmd0OzsKJiM0MzsJCQl9OwomIzQzOwomIzQzOwkJCXBpbC1yZWxvY0AyOTRjIHsKIAkJCQljb21wYXRpYmxlID0gJiMzNDtxY29tLHBpbC1yZWxvYy1pbmZvJiMzNDs7Ci0JCQkJcmVnID0gJmx0OzB4OTRjIDB4YzgmZ3Q7OwomIzQzOwkJCQlyZWcgPSAmbHQ7MHgyOTRjIDB4YzgmZ3Q7OwogCQkJfTsKIAkJfTsKIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvaXBhL01ha2VmaWxlIGIvZHJpdmVycy9uZXQvaXBhL01ha2VmaWxlCmluZGV4IGUxNDhlYzNjMWExMDEwLi5kNDk5NWMyZThjYTAyMyAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvaXBhL01ha2VmaWxlCiYjNDM7JiM0MzsmIzQzOyBiL2RyaXZlcnMvbmV0L2lwYS9NYWtlZmlsZQpAQCAtNyw3ICYjNDM7Nyw3IEBAIElQQV9SRUdfVkVSU0lPTlMJOj0JMy4xIDMuNS4xIDQuMiA0LjUgNC43IDQuOSA0LjExIDUuMCA1LjUKICMgU29tZSBJUEEgdmVyc2lvbnMgY2FuIHJldXNlIGFub3RoZXIgc2V0IG9mIEdTSSByZWdpc3RlciBkZWZpbml0aW9ucy4KIEdTSV9SRUdfVkVSU0lPTlMJOj0JMy4xIDMuNS4xIDQuMCA0LjUgNC45IDQuMTEgNS4wCiAKLUlQQV9EQVRBX1ZFUlNJT05TCTo9CTMuMSAzLjUuMSA0LjIgNC41IDQuNyA0LjkgNC4xMSA1LjAgNS4yIDUuNQomIzQzO0lQQV9EQVRBX1ZFUlNJT05TCTo9CTMuMSAzLjUuMSA0LjIgNC41IDQuNyA0LjkgNC4xMSA1LjAgNS4xIDUuMiA1LjUKIAogb2JqLSQoQ09ORklHX1FDT01fSVBBKQkmIzQzOz0JaXBhLm8KIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvaXBhL2RhdGEvaXBhX2RhdGEtdjUuMS5jIGIvZHJpdmVycy9uZXQvaXBhL2RhdGEvaXBhX2RhdGEtdjUuMS5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwLi44NWIyMWVmYTEyMjRkYgotLS0gL2Rldi9udWxsCiYjNDM7JiM0MzsmIzQzOyBiL2RyaXZlcnMvbmV0L2lwYS9kYXRhL2lwYV9kYXRhLXY1LjEuYwpAQCAtMCwwICYjNDM7MSw0NzcgQEAKJiM0MzsvLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMAomIzQzOwomIzQzOy8qIENvcHlyaWdodCAoQykgMjAyMy0yMDI0IExpbmFybyBMdGQuICovCiYjNDM7LyogQ29weXJpZ2h0IChDKSAyMDI2IEVzdGViYW4gVXJydXRpYSAmbHQ7ZXN0ZXV3dUBwcm90b24ubWUmZ3Q7ICovCiYjNDM7CiYjNDM7I2luY2x1ZGUgJmx0O2xpbnV4L2FycmF5X3NpemUuaCZndDsKJiM0MzsjaW5jbHVkZSAmbHQ7bGludXgvbG9nMi5oJmd0OwomIzQzOwomIzQzOyNpbmNsdWRlICYjMzQ7Li4vaXBhX2RhdGEuaCYjMzQ7CiYjNDM7I2luY2x1ZGUgJiMzNDsuLi9pcGFfZW5kcG9pbnQuaCYjMzQ7CiYjNDM7I2luY2x1ZGUgJiMzNDsuLi9pcGFfbWVtLmgmIzM0OwomIzQzOyNpbmNsdWRlICYjMzQ7Li4vaXBhX3ZlcnNpb24uaCYjMzQ7CiYjNDM7CiYjNDM7LyoqIGVudW0gaXBhX3Jlc291cmNlX3R5cGUgLSBJUEEgcmVzb3VyY2UgdHlwZXMgZm9yIGFuIFNvQyBoYXZpbmcgSVBBIHY1LjEgKi8KJiM0MztlbnVtIGlwYV9yZXNvdXJjZV90eXBlIHsKJiM0MzsJLyogU291cmNlIHJlc291cmNlIHR5cGVzOyBmaXJzdCBtdXN0IGhhdmUgdmFsdWUgMCAqLwomIzQzOwlJUEFfUkVTT1VSQ0VfVFlQRV9TUkNfUEtUX0NPTlRFWFRTCQk9IDAsCiYjNDM7CUlQQV9SRVNPVVJDRV9UWVBFX1NSQ19ERVNDUklQVE9SX0xJU1RTLAomIzQzOwlJUEFfUkVTT1VSQ0VfVFlQRV9TUkNfREVTQ1JJUFRPUl9CVUZGLAomIzQzOwlJUEFfUkVTT1VSQ0VfVFlQRV9TUkNfSFBTX0RNQVJTLAomIzQzOwlJUEFfUkVTT1VSQ0VfVFlQRV9TUkNfQUNLX0VOVFJJRVMsCiYjNDM7CiYjNDM7CS8qIERlc3RpbmF0aW9uIHJlc291cmNlIHR5cGVzOyBmaXJzdCBtdXN0IGhhdmUgdmFsdWUgMCAqLwomIzQzOwlJUEFfUkVTT1VSQ0VfVFlQRV9EU1RfREFUQV9TRUNUT1JTCQk9IDAsCiYjNDM7CUlQQV9SRVNPVVJDRV9UWVBFX0RTVF9EUFNfRE1BUlMsCiYjNDM7CUlQQV9SRVNPVVJDRV9UWVBFX0RTVF9VTFNPX1NFR01FTlRTLAomIzQzO307CiYjNDM7CiYjNDM7LyogUmVzb3VyY2UgZ3JvdXBzIHVzZWQgZm9yIGFuIFNvQyBoYXZpbmcgSVBBIHY1LjEgKi8KJiM0MztlbnVtIGlwYV9yc3JjX2dyb3VwX2lkIHsKJiM0MzsJLyogU291cmNlIHJlc291cmNlIGdyb3VwIGlkZW50aWZpZXJzICovCiYjNDM7CUlQQV9SU1JDX0dST1VQX1NSQ19VTAkJCQk9IDAsCiYjNDM7CUlQQV9SU1JDX0dST1VQX1NSQ19ETCwKJiM0MzsJSVBBX1JTUkNfR1JPVVBfU1JDX1VOVVNFRF8yLAomIzQzOwlJUEFfUlNSQ19HUk9VUF9TUkNfVU5VU0VEXzMsCiYjNDM7CUlQQV9SU1JDX0dST1VQX1NSQ19VUkxMQywKJiM0MzsJSVBBX1JTUkNfR1JPVVBfU1JDX1VfUlhfUUMsCiYjNDM7CUlQQV9SU1JDX0dST1VQX1NSQ19DT1VOVCwJLyogTGFzdCBpbiBzZXQ7IG5vdCBhIHNvdXJjZSBncm91cCAqLwomIzQzOwomIzQzOwkvKiBEZXN0aW5hdGlvbiByZXNvdXJjZSBncm91cCBpZGVudGlmaWVycyAqLwomIzQzOwlJUEFfUlNSQ19HUk9VUF9EU1RfVUwJCQkJPSAwLAomIzQzOwlJUEFfUlNSQ19HUk9VUF9EU1RfREwsCiYjNDM7CUlQQV9SU1JDX0dST1VQX0RTVF9VTlVTRURfMiwKJiM0MzsJSVBBX1JTUkNfR1JPVVBfRFNUX1VOVVNFRF8zLAomIzQzOwlJUEFfUlNSQ19HUk9VUF9EU1RfVU5VU0VEXzQsCiYjNDM7CUlQQV9SU1JDX0dST1VQX0RTVF9VQywKJiM0MzsJSVBBX1JTUkNfR1JPVVBfRFNUX0RSQl9JUCwKJiM0MzsJSVBBX1JTUkNfR1JPVVBfRFNUX0NPVU5ULAkvKiBMYXN0OyBub3QgYSBkZXN0aW5hdGlvbiBncm91cCAqLwomIzQzO307CiYjNDM7CiYjNDM7LyogUVNCIGNvbmZpZ3VyYXRpb24gZGF0YSBmb3IgYW4gU29DIGhhdmluZyBJUEEgdjUuMSAqLwomIzQzO3N0YXRpYyBjb25zdCBzdHJ1Y3QgaXBhX3FzYl9kYXRhIGlwYV9xc2JfZGF0YVtdID0gewomIzQzOwlbSVBBX1FTQl9NQVNURVJfRERSXSA9IHsKJiM0MzsJCS5tYXhfd3JpdGVzCQk9IDAsCiYjNDM7CQkubWF4X3JlYWRzCQk9IDAsCS8qIG5vIGxpbWl0IChoYXJkd2FyZSBtYXgpICovCiYjNDM7CQkubWF4X3JlYWRzX2JlYXRzCT0gMCwKJiM0MzsJfSwKJiM0MzsJW0lQQV9RU0JfTUFTVEVSX1BDSUVdID0gewomIzQzOwkJLm1heF93cml0ZXMJCT0gMCwKJiM0MzsJCS5tYXhfcmVhZHMJCT0gMCwJLyogbm8gbGltaXQgKGhhcmR3YXJlIG1heCkgKi8KJiM0MzsJCS5tYXhfcmVhZHNfYmVhdHMJPSAwLAomIzQzOwl9LAomIzQzO307CiYjNDM7CiYjNDM7LyogRW5kcG9pbnQgY29uZmlndXJhdGlvbiBkYXRhIGZvciBhbiBTb0MgaGF2aW5nIElQQSB2NS4xICovCiYjNDM7c3RhdGljIGNvbnN0IHN0cnVjdCBpcGFfZ3NpX2VuZHBvaW50X2RhdGEgaXBhX2dzaV9lbmRwb2ludF9kYXRhW10gPSB7CiYjNDM7CVtJUEFfRU5EUE9JTlRfQVBfQ09NTUFORF9UWF0gPSB7CiYjNDM7CQkuZWVfaWQJCT0gR1NJX0VFX0FQLAomIzQzOwkJLmNoYW5uZWxfaWQJPSAxMiwKJiM0MzsJCS5lbmRwb2ludF9pZAk9IDE0LAomIzQzOwkJLnRvd2FyZF9pcGEJPSB0cnVlLAomIzQzOwkJLmNoYW5uZWwgPSB7CiYjNDM7CQkJLnRyZV9jb3VudAk9IDI1NiwKJiM0MzsJCQkuZXZlbnRfY291bnQJPSAyNTYsCiYjNDM7CQkJLnRsdl9jb3VudAk9IDIwLAomIzQzOwkJfSwKJiM0MzsJCS5lbmRwb2ludCA9IHsKJiM0MzsJCQkuY29uZmlnID0gewomIzQzOwkJCQkucmVzb3VyY2VfZ3JvdXAJPSBJUEFfUlNSQ19HUk9VUF9TUkNfVUwsCiYjNDM7CQkJCS5kbWFfbW9kZQk9IHRydWUsCiYjNDM7CQkJCS5kbWFfZW5kcG9pbnQJPSBJUEFfRU5EUE9JTlRfQVBfTEFOX1JYLAomIzQzOwkJCQkudHggPSB7CiYjNDM7CQkJCQkuc2VxX3R5cGUgPSBJUEFfU0VRX0RNQSwKJiM0MzsJCQkJfSwKJiM0MzsJCQl9LAomIzQzOwkJfSwKJiM0MzsJfSwKJiM0MzsJW0lQQV9FTkRQT0lOVF9BUF9MQU5fUlhdID0gewomIzQzOwkJLmVlX2lkCQk9IEdTSV9FRV9BUCwKJiM0MzsJCS5jaGFubmVsX2lkCT0gMTMsCiYjNDM7CQkuZW5kcG9pbnRfaWQJPSAxNiwKJiM0MzsJCS50b3dhcmRfaXBhCT0gZmFsc2UsCiYjNDM7CQkuY2hhbm5lbCA9IHsKJiM0MzsJCQkudHJlX2NvdW50CT0gMjU2LAomIzQzOwkJCS5ldmVudF9jb3VudAk9IDI1NiwKJiM0MzsJCQkudGx2X2NvdW50CT0gOSwKJiM0MzsJCX0sCiYjNDM7CQkuZW5kcG9pbnQgPSB7CiYjNDM7CQkJLmNvbmZpZyA9IHsKJiM0MzsJCQkJLnJlc291cmNlX2dyb3VwCT0gSVBBX1JTUkNfR1JPVVBfRFNUX1VMLAomIzQzOwkJCQkuYWdncmVnYXRpb24JPSB0cnVlLAomIzQzOwkJCQkuc3RhdHVzX2VuYWJsZQk9IHRydWUsCiYjNDM7CQkJCS5yeCA9IHsKJiM0MzsJCQkJCS5idWZmZXJfc2l6ZQk9IDgxOTIsCiYjNDM7CQkJCQkucGFkX2FsaWduCT0gaWxvZzIoc2l6ZW9mKHUzMikpLAomIzQzOwkJCQkJLmFnZ3JfdGltZV9saW1pdCA9IDUwMCwKJiM0MzsJCQkJfSwKJiM0MzsJCQl9LAomIzQzOwkJfSwKJiM0MzsJfSwKJiM0MzsJW0lQQV9FTkRQT0lOVF9BUF9NT0RFTV9UWF0gPSB7CiYjNDM7CQkuZWVfaWQJCT0gR1NJX0VFX0FQLAomIzQzOwkJLmNoYW5uZWxfaWQJPSAxMSwKJiM0MzsJCS5lbmRwb2ludF9pZAk9IDIsCiYjNDM7CQkudG93YXJkX2lwYQk9IHRydWUsCiYjNDM7CQkuY2hhbm5lbCA9IHsKJiM0MzsJCQkudHJlX2NvdW50CT0gNTEyLAomIzQzOwkJCS5ldmVudF9jb3VudAk9IDUxMiwKJiM0MzsJCQkudGx2X2NvdW50CT0gMjUsCiYjNDM7CQl9LAomIzQzOwkJLmVuZHBvaW50ID0gewomIzQzOwkJCS5maWx0ZXJfc3VwcG9ydAk9IHRydWUsCiYjNDM7CQkJLmNvbmZpZyA9IHsKJiM0MzsJCQkJLnJlc291cmNlX2dyb3VwCT0gSVBBX1JTUkNfR1JPVVBfU1JDX1VMLAomIzQzOwkJCQkuY2hlY2tzdW0gICAgICAgPSB0cnVlLAomIzQzOwkJCQkucW1hcAkJPSB0cnVlLAomIzQzOwkJCQkuc3RhdHVzX2VuYWJsZQk9IHRydWUsCiYjNDM7CQkJCS50eCA9IHsKJiM0MzsJCQkJCS5zZXFfdHlwZSA9IElQQV9TRVFfMl9QQVNTX1NLSVBfTEFTVF9VQywKJiM0MzsJCQkJCS5zdGF0dXNfZW5kcG9pbnQgPQomIzQzOwkJCQkJCUlQQV9FTkRQT0lOVF9NT0RFTV9BUF9SWCwKJiM0MzsJCQkJfSwKJiM0MzsJCQl9LAomIzQzOwkJfSwKJiM0MzsJfSwKJiM0MzsJW0lQQV9FTkRQT0lOVF9BUF9NT0RFTV9SWF0gPSB7CiYjNDM7CQkuZWVfaWQJCT0gR1NJX0VFX0FQLAomIzQzOwkJLmNoYW5uZWxfaWQJPSAxLAomIzQzOwkJLmVuZHBvaW50X2lkCT0gMjMsCiYjNDM7CQkudG93YXJkX2lwYQk9IGZhbHNlLAomIzQzOwkJLmNoYW5uZWwgPSB7CiYjNDM7CQkJLnRyZV9jb3VudAk9IDI1NiwKJiM0MzsJCQkuZXZlbnRfY291bnQJPSAyNTYsCiYjNDM7CQkJLnRsdl9jb3VudAk9IDksCiYjNDM7CQl9LAomIzQzOwkJLmVuZHBvaW50ID0gewomIzQzOwkJCS5jb25maWcgPSB7CiYjNDM7CQkJCS5yZXNvdXJjZV9ncm91cAk9IElQQV9SU1JDX0dST1VQX0RTVF9VTCwKJiM0MzsJCQkJLmNoZWNrc3VtICAgICAgID0gdHJ1ZSwKJiM0MzsJCQkJLnFtYXAJCT0gdHJ1ZSwKJiM0MzsJCQkJLmFnZ3JlZ2F0aW9uCT0gdHJ1ZSwKJiM0MzsJCQkJLnJ4ID0gewomIzQzOwkJCQkJLmJ1ZmZlcl9zaXplCT0gODE5MiwKJiM0MzsJCQkJCS5hZ2dyX3RpbWVfbGltaXQgPSA1MDAsCiYjNDM7CQkJCQkuYWdncl9jbG9zZV9lb2YJPSB0cnVlLAomIzQzOwkJCQl9LAomIzQzOwkJCX0sCiYjNDM7CQl9LAomIzQzOwl9LAomIzQzOwlbSVBBX0VORFBPSU5UX01PREVNX0FQX1RYXSA9IHsKJiM0MzsJCS5lZV9pZAkJPSBHU0lfRUVfTU9ERU0sCiYjNDM7CQkuY2hhbm5lbF9pZAk9IDAsCiYjNDM7CQkuZW5kcG9pbnRfaWQJPSAxMiwKJiM0MzsJCS50b3dhcmRfaXBhCT0gdHJ1ZSwKJiM0MzsJCS5lbmRwb2ludCA9IHsKJiM0MzsJCQkuZmlsdGVyX3N1cHBvcnQJPSB0cnVlLAomIzQzOwkJfSwKJiM0MzsJfSwKJiM0MzsJW0lQQV9FTkRQT0lOVF9NT0RFTV9BUF9SWF0gPSB7CiYjNDM7CQkuZWVfaWQJCT0gR1NJX0VFX01PREVNLAomIzQzOwkJLmNoYW5uZWxfaWQJPSA3LAomIzQzOwkJLmVuZHBvaW50X2lkCT0gMjEsCiYjNDM7CQkudG93YXJkX2lwYQk9IGZhbHNlLAomIzQzOwl9LAomIzQzOwlbSVBBX0VORFBPSU5UX01PREVNX0RMX05MT19UWF0gPSB7CiYjNDM7CQkuZWVfaWQJCT0gR1NJX0VFX01PREVNLAomIzQzOwkJLmNoYW5uZWxfaWQJPSAyLAomIzQzOwkJLmVuZHBvaW50X2lkCT0gMTUsCiYjNDM7CQkudG93YXJkX2lwYQk9IHRydWUsCiYjNDM7CQkuZW5kcG9pbnQgPSB7CiYjNDM7CQkJLmZpbHRlcl9zdXBwb3J0CT0gdHJ1ZSwKJiM0MzsJCX0sCiYjNDM7CX0sCiYjNDM7fTsKJiM0MzsKJiM0MzsvKiBTb3VyY2UgcmVzb3VyY2UgY29uZmlndXJhdGlvbiBkYXRhIGZvciBhbiBTb0MgaGF2aW5nIElQQSB2NS4xICovCiYjNDM7c3RhdGljIGNvbnN0IHN0cnVjdCBpcGFfcmVzb3VyY2UgaXBhX3Jlc291cmNlX3NyY1tdID0gewomIzQzOwlbSVBBX1JFU09VUkNFX1RZUEVfU1JDX1BLVF9DT05URVhUU10gPSB7CiYjNDM7CQkubGltaXRzW0lQQV9SU1JDX0dST1VQX1NSQ19VTF0gPSB7CiYjNDM7CQkJLm1pbiA9IDcsCS5tYXggPSAxMiwKJiM0MzsJCX0sCiYjNDM7CQkubGltaXRzW0lQQV9SU1JDX0dST1VQX1NSQ19VUkxMQ10gPSB7CiYjNDM7CQkJLm1pbiA9IDEsCS5tYXggPSA2MywKJiM0MzsJCX0sCiYjNDM7CQkubGltaXRzW0lQQV9SU1JDX0dST1VQX1NSQ19VX1JYX1FDXSA9IHsKJiM0MzsJCQkubWluID0gMCwJLm1heCA9IDYzLAomIzQzOwkJfSwKJiM0MzsJfSwKJiM0MzsJW0lQQV9SRVNPVVJDRV9UWVBFX1NSQ19ERVNDUklQVE9SX0xJU1RTXSA9IHsKJiM0MzsJCS5saW1pdHNbSVBBX1JTUkNfR1JPVVBfU1JDX1VMXSA9IHsKJiM0MzsJCQkubWluID0gMjEsCS5tYXggPSAyMSwKJiM0MzsJCX0sCiYjNDM7CQkubGltaXRzW0lQQV9SU1JDX0dST1VQX1NSQ19VUkxMQ10gPSB7CiYjNDM7CQkJLm1pbiA9IDEwLAkubWF4ID0gMTAsCiYjNDM7CQl9LAomIzQzOwl9LAomIzQzOwlbSVBBX1JFU09VUkNFX1RZUEVfU1JDX0RFU0NSSVBUT1JfQlVGRl0gPSB7CiYjNDM7CQkubGltaXRzW0lQQV9SU1JDX0dST1VQX1NSQ19VTF0gPSB7CiYjNDM7CQkJLm1pbiA9IDMzLAkubWF4ID0gMzMsCiYjNDM7CQl9LAomIzQzOwkJLmxpbWl0c1tJUEFfUlNSQ19HUk9VUF9TUkNfVVJMTENdID0gewomIzQzOwkJCS5taW4gPSAyMCwJLm1heCA9IDIwLAomIzQzOwkJfSwKJiM0MzsJfSwKJiM0MzsJW0lQQV9SRVNPVVJDRV9UWVBFX1NSQ19IUFNfRE1BUlNdID0gewomIzQzOwkJLmxpbWl0c1tJUEFfUlNSQ19HUk9VUF9TUkNfVUxdID0gewomIzQzOwkJCS5taW4gPSAwLAkubWF4ID0gNjMsCiYjNDM7CQl9LAomIzQzOwkJLmxpbWl0c1tJUEFfUlNSQ19HUk9VUF9TUkNfVVJMTENdID0gewomIzQzOwkJCS5taW4gPSAxLAkubWF4ID0gNjMsCiYjNDM7CQl9LAomIzQzOwkJLmxpbWl0c1tJUEFfUlNSQ19HUk9VUF9TUkNfVV9SWF9RQ10gPSB7CiYjNDM7CQkJLm1pbiA9IDAsCS5tYXggPSA2MywKJiM0MzsJCX0sCiYjNDM7CX0sCiYjNDM7CVtJUEFfUkVTT1VSQ0VfVFlQRV9TUkNfQUNLX0VOVFJJRVNdID0gewomIzQzOwkJLmxpbWl0c1tJUEFfUlNSQ19HUk9VUF9TUkNfVUxdID0gewomIzQzOwkJCS5taW4gPSAzOCwJLm1heCA9IDM4LAomIzQzOwkJfSwKJiM0MzsJCS5saW1pdHNbSVBBX1JTUkNfR1JPVVBfU1JDX1VSTExDXSA9IHsKJiM0MzsJCQkubWluID0gMTYsCS5tYXggPSAxNiwKJiM0MzsJCX0sCiYjNDM7CX0sCiYjNDM7fTsKJiM0MzsKJiM0MzsvKiBEZXN0aW5hdGlvbiByZXNvdXJjZSBjb25maWd1cmF0aW9uIGRhdGEgZm9yIGFuIFNvQyBoYXZpbmcgSVBBIHY1LjEgKi8KJiM0MztzdGF0aWMgY29uc3Qgc3RydWN0IGlwYV9yZXNvdXJjZSBpcGFfcmVzb3VyY2VfZHN0W10gPSB7CiYjNDM7CVtJUEFfUkVTT1VSQ0VfVFlQRV9EU1RfREFUQV9TRUNUT1JTXSA9IHsKJiM0MzsJCS5saW1pdHNbSVBBX1JTUkNfR1JPVVBfRFNUX1VMXSA9IHsKJiM0MzsJCQkubWluID0gNiwJLm1heCA9IDYsCiYjNDM7CQl9LAomIzQzOwkJLmxpbWl0c1tJUEFfUlNSQ19HUk9VUF9EU1RfRExdID0gewomIzQzOwkJCS5taW4gPSA1LAkubWF4ID0gNSwKJiM0MzsJCX0sCiYjNDM7CQkubGltaXRzW0lQQV9SU1JDX0dST1VQX0RTVF9EUkJfSVBdID0gewomIzQzOwkJCS5taW4gPSAzOSwJLm1heCA9IDM5LAomIzQzOwkJfSwKJiM0MzsJfSwKJiM0MzsJW0lQQV9SRVNPVVJDRV9UWVBFX0RTVF9EUFNfRE1BUlNdID0gewomIzQzOwkJLmxpbWl0c1tJUEFfUlNSQ19HUk9VUF9EU1RfVUxdID0gewomIzQzOwkJCS5taW4gPSAwLAkubWF4ID0gMywKJiM0MzsJCX0sCiYjNDM7CQkubGltaXRzW0lQQV9SU1JDX0dST1VQX0RTVF9ETF0gPSB7CiYjNDM7CQkJLm1pbiA9IDAsCS5tYXggPSAzLAomIzQzOwkJfSwKJiM0MzsJfSwKJiM0MzsJW0lQQV9SRVNPVVJDRV9UWVBFX0RTVF9VTFNPX1NFR01FTlRTXSA9IHsKJiM0MzsJCS5saW1pdHNbSVBBX1JTUkNfR1JPVVBfRFNUX1VMXSA9IHsKJiM0MzsJCQkubWluID0gMCwJLm1heCA9IDYzLAomIzQzOwkJfSwKJiM0MzsJCS5saW1pdHNbSVBBX1JTUkNfR1JPVVBfRFNUX0RMXSA9IHsKJiM0MzsJCQkubWluID0gMCwJLm1heCA9IDYzLAomIzQzOwkJfSwKJiM0MzsJfSwKJiM0Mzt9OwomIzQzOwomIzQzOy8qIFJlc291cmNlIGNvbmZpZ3VyYXRpb24gZGF0YSBmb3IgYW4gU29DIGhhdmluZyBJUEEgdjUuMSAqLwomIzQzO3N0YXRpYyBjb25zdCBzdHJ1Y3QgaXBhX3Jlc291cmNlX2RhdGEgaXBhX3Jlc291cmNlX2RhdGEgPSB7CiYjNDM7CS5yc3JjX2dyb3VwX2RzdF9jb3VudAk9IElQQV9SU1JDX0dST1VQX0RTVF9DT1VOVCwKJiM0MzsJLnJzcmNfZ3JvdXBfc3JjX2NvdW50CT0gSVBBX1JTUkNfR1JPVVBfU1JDX0NPVU5ULAomIzQzOwkucmVzb3VyY2Vfc3JjX2NvdW50CT0gQVJSQVlfU0laRShpcGFfcmVzb3VyY2Vfc3JjKSwKJiM0MzsJLnJlc291cmNlX3NyYwkJPSBpcGFfcmVzb3VyY2Vfc3JjLAomIzQzOwkucmVzb3VyY2VfZHN0X2NvdW50CT0gQVJSQVlfU0laRShpcGFfcmVzb3VyY2VfZHN0KSwKJiM0MzsJLnJlc291cmNlX2RzdAkJPSBpcGFfcmVzb3VyY2VfZHN0LAomIzQzO307CiYjNDM7CiYjNDM7LyogSVBBLXJlc2lkZW50IG1lbW9yeSByZWdpb24gZGF0YSBmb3IgYW4gU29DIGhhdmluZyBJUEEgdjUuMSAqLwomIzQzO3N0YXRpYyBjb25zdCBzdHJ1Y3QgaXBhX21lbSBpcGFfbWVtX2xvY2FsX2RhdGFbXSA9IHsKJiM0MzsJewomIzQzOwkJLmlkCQk9IElQQV9NRU1fVUNfRVZFTlRfUklORywKJiM0MzsJCS5vZmZzZXQJCT0gMHgwMDAwLAomIzQzOwkJLnNpemUJCT0gMHgxMDAwLAomIzQzOwkJLmNhbmFyeV9jb3VudAk9IDAsCiYjNDM7CX0sCiYjNDM7CXsKJiM0MzsJCS5pZAkJPSBJUEFfTUVNX1VDX1NIQVJFRCwKJiM0MzsJCS5vZmZzZXQJCT0gMHgxMDAwLAomIzQzOwkJLnNpemUJCT0gMHgwMDgwLAomIzQzOwkJLmNhbmFyeV9jb3VudAk9IDAsCiYjNDM7CX0sCiYjNDM7CXsKJiM0MzsJCS5pZAkJPSBJUEFfTUVNX1VDX0lORk8sCiYjNDM7CQkub2Zmc2V0CQk9IDB4MTA4MCwKJiM0MzsJCS5zaXplCQk9IDB4MDIwMCwKJiM0MzsJCS5jYW5hcnlfY291bnQJPSAwLAomIzQzOwl9LAomIzQzOwl7CiYjNDM7CQkuaWQJCT0gSVBBX01FTV9WNF9GSUxURVJfSEFTSEVELAomIzQzOwkJLm9mZnNldAkJPSAweDEyODgsCiYjNDM7CQkuc2l6ZQkJPSAweDAwNzgsCiYjNDM7CQkuY2FuYXJ5X2NvdW50CT0gMiwKJiM0MzsJfSwKJiM0MzsJewomIzQzOwkJLmlkCQk9IElQQV9NRU1fVjRfRklMVEVSLAomIzQzOwkJLm9mZnNldAkJPSAweDEzMDgsCiYjNDM7CQkuc2l6ZQkJPSAweDAwNzgsCiYjNDM7CQkuY2FuYXJ5X2NvdW50CT0gMiwKJiM0MzsJfSwKJiM0MzsJewomIzQzOwkJLmlkCQk9IElQQV9NRU1fVjZfRklMVEVSX0hBU0hFRCwKJiM0MzsJCS5vZmZzZXQJCT0gMHgxMzg4LAomIzQzOwkJLnNpemUJCT0gMHgwMDc4LAomIzQzOwkJLmNhbmFyeV9jb3VudAk9IDIsCiYjNDM7CX0sCiYjNDM7CXsKJiM0MzsJCS5pZAkJPSBJUEFfTUVNX1Y2X0ZJTFRFUiwKJiM0MzsJCS5vZmZzZXQJCT0gMHgxNDA4LAomIzQzOwkJLnNpemUJCT0gMHgwMDc4LAomIzQzOwkJLmNhbmFyeV9jb3VudAk9IDIsCiYjNDM7CX0sCiYjNDM7CXsKJiM0MzsJCS5pZAkJPSBJUEFfTUVNX1Y0X1JPVVRFX0hBU0hFRCwKJiM0MzsJCS5vZmZzZXQJCT0gMHgxNDg4LAomIzQzOwkJLnNpemUJCT0gMHgwMDk4LAomIzQzOwkJLmNhbmFyeV9jb3VudAk9IDIsCiYjNDM7CX0sCiYjNDM7CXsKJiM0MzsJCS5pZAkJPSBJUEFfTUVNX1Y0X1JPVVRFLAomIzQzOwkJLm9mZnNldAkJPSAweDE1MjgsCiYjNDM7CQkuc2l6ZQkJPSAweDAwOTgsCiYjNDM7CQkuY2FuYXJ5X2NvdW50CT0gMiwKJiM0MzsJfSwKJiM0MzsJewomIzQzOwkJLmlkCQk9IElQQV9NRU1fVjZfUk9VVEVfSEFTSEVELAomIzQzOwkJLm9mZnNldAkJPSAweDE1YzgsCiYjNDM7CQkuc2l6ZQkJPSAweDAwOTgsCiYjNDM7CQkuY2FuYXJ5X2NvdW50CT0gMiwKJiM0MzsJfSwKJiM0MzsJewomIzQzOwkJLmlkCQk9IElQQV9NRU1fVjZfUk9VVEUsCiYjNDM7CQkub2Zmc2V0CQk9IDB4MTY2OCwKJiM0MzsJCS5zaXplCQk9IDB4MDA5OCwKJiM0MzsJCS5jYW5hcnlfY291bnQJPSAyLAomIzQzOwl9LAomIzQzOwl7CiYjNDM7CQkuaWQJCT0gSVBBX01FTV9NT0RFTV9IRUFERVIsCiYjNDM7CQkub2Zmc2V0CQk9IDB4MTcwOCwKJiM0MzsJCS5zaXplCQk9IDB4MDI0MCwKJiM0MzsJCS5jYW5hcnlfY291bnQJPSAyLAomIzQzOwl9LAomIzQzOwl7CiYjNDM7CQkuaWQJCT0gSVBBX01FTV9BUF9IRUFERVIsCiYjNDM7CQkub2Zmc2V0CQk9IDB4MTk0OCwKJiM0MzsJCS5zaXplCQk9IDB4MDFlMCwKJiM0MzsJCS5jYW5hcnlfY291bnQJPSAwLAomIzQzOwl9LAomIzQzOwl7CiYjNDM7CQkuaWQJCT0gSVBBX01FTV9NT0RFTV9QUk9DX0NUWCwKJiM0MzsJCS5vZmZzZXQJCT0gMHgxYjQwLAomIzQzOwkJLnNpemUJCT0gMHgwYjIwLAomIzQzOwkJLmNhbmFyeV9jb3VudAk9IDIsCiYjNDM7CX0sCiYjNDM7CXsKJiM0MzsJCS5pZAkJPSBJUEFfTUVNX0FQX1BST0NfQ1RYLAomIzQzOwkJLm9mZnNldAkJPSAweDI2NjAsCiYjNDM7CQkuc2l6ZQkJPSAweDAyMDAsCiYjNDM7CQkuY2FuYXJ5X2NvdW50CT0gMCwKJiM0MzsJfSwKJiM0MzsJewomIzQzOwkJLmlkCQk9IElQQV9NRU1fU1RBVFNfUVVPVEFfTU9ERU0sCiYjNDM7CQkub2Zmc2V0CQk9IDB4Mjg2OCwKJiM0MzsJCS5zaXplCQk9IDB4MDA2MCwKJiM0MzsJCS5jYW5hcnlfY291bnQJPSAyLAomIzQzOwl9LAomIzQzOwl7CiYjNDM7CQkuaWQJCT0gSVBBX01FTV9TVEFUU19RVU9UQV9BUCwKJiM0MzsJCS5vZmZzZXQJCT0gMHgyOGM4LAomIzQzOwkJLnNpemUJCT0gMHgwMDQ4LAomIzQzOwkJLmNhbmFyeV9jb3VudAk9IDAsCiYjNDM7CX0sCiYjNDM7CXsKJiM0MzsJCS5pZAkJPSBJUEFfTUVNX1NUQVRTX1RFVEhFUklORywKJiM0MzsJCS5vZmZzZXQJCT0gMHgyOTEwLAomIzQzOwkJLnNpemUJCT0gMHgwM2MwLAomIzQzOwkJLmNhbmFyeV9jb3VudAk9IDAsCiYjNDM7CX0sCiYjNDM7CXsKJiM0MzsJCS5pZAkJPSBJUEFfTUVNX0FQX1Y0X0ZJTFRFUiwKJiM0MzsJCS5vZmZzZXQJCT0gMHgyOWI4LAomIzQzOwkJLnNpemUJCT0gMHgwMTg4LAomIzQzOwkJLmNhbmFyeV9jb3VudAk9IDIsCiYjNDM7CX0sCiYjNDM7CXsKJiM0MzsJCS5pZAkJPSBJUEFfTUVNX0FQX1Y2X0ZJTFRFUiwKJiM0MzsJCS5vZmZzZXQJCT0gMHgyYjQwLAomIzQzOwkJLnNpemUJCT0gMHgwMjI4LAomIzQzOwkJLmNhbmFyeV9jb3VudAk9IDAsCiYjNDM7CX0sCiYjNDM7CXsKJiM0MzsJCS5pZAkJPSBJUEFfTUVNX1NUQVRTX0ZJTFRFUl9ST1VURSwKJiM0MzsJCS5vZmZzZXQJCT0gMHgyY2QwLAomIzQzOwkJLnNpemUJCT0gMHgwYmEwLAomIzQzOwkJLmNhbmFyeV9jb3VudAk9IDIsCiYjNDM7CX0sCiYjNDM7CXsKJiM0MzsJCS5pZAkJPSBJUEFfTUVNX1NUQVRTX0RST1AsCiYjNDM7CQkub2Zmc2V0CQk9IDB4Mzg3MCwKJiM0MzsJCS5zaXplCQk9IDB4MDAyMCwKJiM0MzsJCS5jYW5hcnlfY291bnQJPSAwLAomIzQzOwl9LAomIzQzOwl7CiYjNDM7CQkuaWQJCT0gSVBBX01FTV9NT0RFTSwKJiM0MzsJCS5vZmZzZXQJCT0gMHgzODk4LAomIzQzOwkJLnNpemUJCT0gMHgwZDQ4LAomIzQzOwkJLmNhbmFyeV9jb3VudAk9IDIsCiYjNDM7CX0sCiYjNDM7CXsKJiM0MzsJCS5pZAkJPSBJUEFfTUVNX05BVF9UQUJMRSwKJiM0MzsJCS5vZmZzZXQJCT0gMHg0NWUwLAomIzQzOwkJLnNpemUJCT0gMHgwOTAwLAomIzQzOwkJLmNhbmFyeV9jb3VudAk9IDAsCiYjNDM7CX0sCiYjNDM7CXsKJiM0MzsJCS5pZAkJPSBJUEFfTUVNX1BETl9DT05GSUcsCiYjNDM7CQkub2Zmc2V0CQk9IDB4NGVlOCwKJiM0MzsJCS5zaXplCQk9IDB4MDEwMCwKJiM0MzsJCS5jYW5hcnlfY291bnQJPSAyLAomIzQzOwl9LAomIzQzO307CiYjNDM7CiYjNDM7LyogTWVtb3J5IGNvbmZpZ3VyYXRpb24gZGF0YSBmb3IgYW4gU29DIGhhdmluZyBJUEEgdjUuMSAqLwomIzQzO3N0YXRpYyBjb25zdCBzdHJ1Y3QgaXBhX21lbV9kYXRhIGlwYV9tZW1fZGF0YSA9IHsKJiM0MzsJLmxvY2FsX2NvdW50CT0gQVJSQVlfU0laRShpcGFfbWVtX2xvY2FsX2RhdGEpLAomIzQzOwkubG9jYWwJCT0gaXBhX21lbV9sb2NhbF9kYXRhLAomIzQzOwkuaW1lbV9hZGRyCT0gMHgxNDZhODAwMCwKJiM0MzsJLmltZW1fc2l6ZQk9IDB4MDAwMDIwMDAsCiYjNDM7CS8qCiYjNDM7CSAqIFdoaWxlIHRoaXMgdmFsdWUgaXMgMHhiMDAwIG9uIFNNODQ1MCBhbmQgMHg5MDAwIG9uIFNNODQ3NSwKJiM0MzsJICogaXQgaGFzIGJlZW4gbGVmdCBzZXQgdG8gMHg5MDAwIGZvciBjb21wYXRpYmlsaXR5IHdpdGggU004NDc1CiYjNDM7CSAqLwomIzQzOwkuc21lbV9zaXplCT0gMHgwMDAwOTAwMCwKJiM0Mzt9OwomIzQzOwomIzQzOy8qIEludGVyY29ubmVjdCByYXRlcyBhcmUgaW4gMTAwMCBieXRlL3NlY29uZCB1bml0cyAqLwomIzQzO3N0YXRpYyBjb25zdCBzdHJ1Y3QgaXBhX2ludGVyY29ubmVjdF9kYXRhIGlwYV9pbnRlcmNvbm5lY3RfZGF0YVtdID0gewomIzQzOwl7CiYjNDM7CQkubmFtZQkJCT0gJiMzNDttZW1vcnkmIzM0OywKJiM0MzsJCS5wZWFrX2JhbmR3aWR0aAkJPSAxOTAwMDAwLAkvKiAxLjkgR0JwcyAqLwomIzQzOwkJLmF2ZXJhZ2VfYmFuZHdpZHRoCT0gNTkwMDAwLAkvKiA1OTAgTUJwcyAqLwomIzQzOwl9LAomIzQzOwkvKiBBdmVyYWdlIHJhdGUgaXMgdW51c2VkIGZvciB0aGUgbmV4dCBpbnRlcmNvbm5lY3QgKi8KJiM0MzsJewomIzQzOwkJLm5hbWUJCQk9ICYjMzQ7Y29uZmlnJiMzNDssCiYjNDM7CQkucGVha19iYW5kd2lkdGgJCT0gNzY4MDAsCS8qIDc2LjggTUJwcyAqLwomIzQzOwkJLmF2ZXJhZ2VfYmFuZHdpZHRoCT0gMCwJCS8qIHVudXNlZCAqLwomIzQzOwl9LAomIzQzO307CiYjNDM7CiYjNDM7LyogQ2xvY2sgYW5kIGludGVyY29ubmVjdCBjb25maWd1cmF0aW9uIGRhdGEgZm9yIGFuIFNvQyBoYXZpbmcgSVBBIHY1LjEgKi8KJiM0MztzdGF0aWMgY29uc3Qgc3RydWN0IGlwYV9wb3dlcl9kYXRhIGlwYV9wb3dlcl9kYXRhID0gewomIzQzOwkuY29yZV9jbG9ja19yYXRlCT0gMTIwICogMTAwMCAqIDEwMDAsCS8qIEh6ICovCiYjNDM7CS5pbnRlcmNvbm5lY3RfY291bnQJPSBBUlJBWV9TSVpFKGlwYV9pbnRlcmNvbm5lY3RfZGF0YSksCiYjNDM7CS5pbnRlcmNvbm5lY3RfZGF0YQk9IGlwYV9pbnRlcmNvbm5lY3RfZGF0YSwKJiM0Mzt9OwomIzQzOwomIzQzOy8qIENvbmZpZ3VyYXRpb24gZGF0YSBmb3IgYW4gU29DIGhhdmluZyBJUEEgdjUuMS4gKi8KJiM0Mztjb25zdCBzdHJ1Y3QgaXBhX2RhdGEgaXBhX2RhdGFfdjVfMSA9IHsKJiM0MzsJLnZlcnNpb24JCT0gSVBBX1ZFUlNJT05fNV8xLAomIzQzOwkucXNiX2NvdW50CQk9IEFSUkFZX1NJWkUoaXBhX3FzYl9kYXRhKSwKJiM0MzsJLnFzYl9kYXRhCQk9IGlwYV9xc2JfZGF0YSwKJiM0MzsJLm1vZGVtX3JvdXRlX2NvdW50CT0gMTEsCiYjNDM7CS5lbmRwb2ludF9jb3VudAkJPSBBUlJBWV9TSVpFKGlwYV9nc2lfZW5kcG9pbnRfZGF0YSksCiYjNDM7CS5lbmRwb2ludF9kYXRhCQk9IGlwYV9nc2lfZW5kcG9pbnRfZGF0YSwKJiM0MzsJLnJlc291cmNlX2RhdGEJCT0gJmFtcDtpcGFfcmVzb3VyY2VfZGF0YSwKJiM0MzsJLm1lbV9kYXRhCQk9ICZhbXA7aXBhX21lbV9kYXRhLAomIzQzOwkucG93ZXJfZGF0YQkJPSAmYW1wO2lwYV9wb3dlcl9kYXRhLAomIzQzO307CmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9pcGEvZ3NpX3JlZy5jIGIvZHJpdmVycy9uZXQvaXBhL2dzaV9yZWcuYwppbmRleCBlMTNjZjgzNWEwMTNjOS4uYTU3MDcyYmE0YmVmNmYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L2lwYS9nc2lfcmVnLmMKJiM0MzsmIzQzOyYjNDM7IGIvZHJpdmVycy9uZXQvaXBhL2dzaV9yZWcuYwpAQCAtMTEwLDYgJiM0MzsxMTAsNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IHJlZ3MgKmdzaV9yZWdzKHN0cnVjdCBnc2kgKmdzaSkKIAkJcmV0dXJuICZhbXA7Z3NpX3JlZ3NfdjRfMTE7CiAKIAljYXNlIElQQV9WRVJTSU9OXzVfMDoKJiM0MzsJY2FzZSBJUEFfVkVSU0lPTl81XzE6CiAJY2FzZSBJUEFfVkVSU0lPTl81XzI6CiAJY2FzZSBJUEFfVkVSU0lPTl81XzU6CiAJCXJldHVybiAmYW1wO2dzaV9yZWdzX3Y1XzA7CmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9pcGEvaXBhX2RhdGEuaCBiL2RyaXZlcnMvbmV0L2lwYS9pcGFfZGF0YS5oCmluZGV4IDNlYjlkYzJjZTMzOThkLi5mZTZmN2Q1YmZlODhjOSAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvaXBhL2lwYV9kYXRhLmgKJiM0MzsmIzQzOyYjNDM7IGIvZHJpdmVycy9uZXQvaXBhL2lwYV9kYXRhLmgKQEAgLTI1Myw2ICYjNDM7MjUzLDcgQEAgZXh0ZXJuIGNvbnN0IHN0cnVjdCBpcGFfZGF0YSBpcGFfZGF0YV92NF83OwogZXh0ZXJuIGNvbnN0IHN0cnVjdCBpcGFfZGF0YSBpcGFfZGF0YV92NF85OwogZXh0ZXJuIGNvbnN0IHN0cnVjdCBpcGFfZGF0YSBpcGFfZGF0YV92NF8xMTsKIGV4dGVybiBjb25zdCBzdHJ1Y3QgaXBhX2RhdGEgaXBhX2RhdGFfdjVfMDsKJiM0MztleHRlcm4gY29uc3Qgc3RydWN0IGlwYV9kYXRhIGlwYV9kYXRhX3Y1XzE7CiBleHRlcm4gY29uc3Qgc3RydWN0IGlwYV9kYXRhIGlwYV9kYXRhX3Y1XzI7CiBleHRlcm4gY29uc3Qgc3RydWN0IGlwYV9kYXRhIGlwYV9kYXRhX3Y1XzU7CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2lwYS9pcGFfbWFpbi5jIGIvZHJpdmVycy9uZXQvaXBhL2lwYV9tYWluLmMKaW5kZXggNzg4ZGQ5OWFmMmE0ZGMuLjZjNDQ5MDMyYWU0NTkyIDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC9pcGEvaXBhX21haW4uYwomIzQzOyYjNDM7JiM0MzsgYi9kcml2ZXJzL25ldC9pcGEvaXBhX21haW4uYwpAQCAtNjY5LDYgJiM0Mzs2NjksMTAgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBvZl9kZXZpY2VfaWQgaXBhX21hdGNoW10gPSB7CiAJCS5jb21wYXRpYmxlCT0gJiMzNDtxY29tLHNkeDY1LWlwYSYjMzQ7LAogCQkuZGF0YQkJPSAmYW1wO2lwYV9kYXRhX3Y1XzAsCiAJfSwKJiM0MzsJewomIzQzOwkJLmNvbXBhdGlibGUJPSAmIzM0O3Fjb20sc204NDUwLWlwYSYjMzQ7LAomIzQzOwkJLmRhdGEJCT0gJmFtcDtpcGFfZGF0YV92NV8xLAomIzQzOwl9LAogCXsKIAkJLmNvbXBhdGlibGUJPSAmIzM0O3Fjb20sbWlsb3MtaXBhJiMzNDssCiAJCS5kYXRhCQk9ICZhbXA7aXBhX2RhdGFfdjVfMiwKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2lwYS9pcGFfcmVnLmMgYi9kcml2ZXJzL25ldC9pcGEvaXBhX3JlZy5jCmluZGV4IDMwYmQ2OWY0YzE0N2NkLi41ZjIyY2E2Mjk1YjE2NSAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvaXBhL2lwYV9yZWcuYwomIzQzOyYjNDM7JiM0MzsgYi9kcml2ZXJzL25ldC9pcGEvaXBhX3JlZy5jCkBAIC0xMjUsNiAmIzQzOzEyNSw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgcmVncyAqaXBhX3JlZ3MoZW51bSBpcGFfdmVyc2lvbiB2ZXJzaW9uKQogCWNhc2UgSVBBX1ZFUlNJT05fNF8xMToKIAkJcmV0dXJuICZhbXA7aXBhX3JlZ3NfdjRfMTE7CiAJY2FzZSBJUEFfVkVSU0lPTl81XzA6CiYjNDM7CWNhc2UgSVBBX1ZFUlNJT05fNV8xOgogCWNhc2UgSVBBX1ZFUlNJT05fNV8yOgogCQlyZXR1cm4gJmFtcDtpcGFfcmVnc192NV8wOwogCWNhc2UgSVBBX1ZFUlNJT05fNV81Ogo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4zLzI8L3RkPgoJCQk8dGQ+MjAyNi8wNi8yMyAwMjowMDwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAxMDE4MAoJCQkJCQkJb3V0cHV0OiAyMAoJCQkJCQkJdGhvdWdodHM6IDMzNwoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipBc3Nlc3NpbmcgdGhlIElQQSB2NS4xIFBhdGNoIGZvciBGdXp6aW5nIFJlbGV2YW5jZSoqCgpPa2F5LCBzbyBJJiMzOTt2ZSBnb3QgdGhpcyBwYXRjaCBzZXJpZXMgaW4gZnJvbnQgb2YgbWUsIGFuZCBteSBpbW1lZGlhdGUgY29uY2VybiBpcyB3aGV0aGVyIGl0IGludHJvZHVjZXMgYW55IGZ1bmN0aW9uYWwgY2hhbmdlcyB0byB0aGUga2VybmVsIHRoYXQgd2FycmFudCBmdXJ0aGVyIGZ1enppbmcgZWZmb3J0cy4gVGhlIHBhdGNoIHNlZW1zIGZvY3VzZWQgb24gYWRkaW5nIHN1cHBvcnQgZm9yIGEgbmV3IHZlcnNpb24gb2YgdGhlIFF1YWxjb21tIElQQSwgc3BlY2lmaWNhbGx5IGBxY29tLHNtODQ1MC1pcGFgIG9yIElQQSB2NS4xLiBUaGF0JiMzOTtzIGEgZGVmaW5pdGUgaW5kaWNhdG9yIHRoYXQgd2UgbmVlZCB0byBwYXkgYXR0ZW50aW9uLgoKTG9va2luZyBhdCB0aGUgZmlsZSBsaXN0LCB3ZSYjMzk7cmUgc2VlaW5nIG1vZGlmaWNhdGlvbnMgdG8gZGV2aWNlIHRyZWUgYmluZGluZ3MsIHRoZSBEVFMgaXRzZWxmIGZvciB0aGUgYHNtODQ1MGAgcGxhdGZvcm0sIE1ha2VmaWxlcywgYW5kLCBjcnVjaWFsbHksIGEgbmV3IGBpcGFfZGF0YS12NS4xLmNgIGZpbGUgYWxvbmcgd2l0aCBjaGFuZ2VzIHRvIGV4aXN0aW5nIGRyaXZlciBzb3VyY2UgZmlsZXMuIFRoZSBjaGFuZ2VzIGFwcGVhciB0byBiZSBoZWF2aWx5IGNlbnRlcmVkIGFyb3VuZCBkYXRhIHN0cnVjdHVyZXMsIGludGVncmF0aW5nIHRoaXMgbmV3IElQQSB2ZXJzaW9uIGludG8gdGhlIGRyaXZlciYjMzk7cyBtYXRjaCB0YWJsZXMsIGFuZCwgYXMgZXhwZWN0ZWQsIHVwZGF0aW5nIGJvdGggdGhlIERUIGJpbmRpbmdzIGFuZCBEVFMgdG8gcmVjb2duaXplIHRoZSBuZXcgaGFyZHdhcmUuIFRoZSBJUEEgZHJpdmVyLCBvZiBjb3Vyc2UsIGlzIHNwZWNpZmljIHRvIFF1YWxjb21tIFNvQ3MuCgpOb3csIHRoZSBiaWcgcXVlc3Rpb24gaXMsIGFyZSB0aGVzZSBjaGFuZ2VzIHJlYWNoYWJsZSBpbiBlbnZpcm9ubWVudHMgbGlrZSBHQ0Ugb3IgUUVNVT8gVHlwaWNhbGx5LCB0aGUgUXVhbGNvbW0gSVBBIGlzIGEgaGFyZHdhcmUgYWNjZWxlcmF0b3IsIGEgcGh5c2ljYWwgcGllY2Ugb2Ygc2lsaWNvbiBvbiB0aGUgU29DLiBUaGUgdGhpbmcgaXMsIGl0JiMzOTtzIG5vdCBlbXVsYXRlZCBpbiBlaXRoZXIgUUVNVSBvciBHQ0UuIFRoaXMgbWVhbnMgcmVhY2hpbmcgdGhpcyBjb2RlIGluIGEgc3RhbmRhcmQgdmlydHVhbGl6ZWQgZW52aXJvbm1lbnQgaXMgZ29pbmcgdG8gYmUgZGlmZmljdWx0LCBpZiBub3QgaW1wb3NzaWJsZS4gQnV0LCBiZWZvcmUgSSBkaXNtaXNzIGl0IGNvbXBsZXRlbHksIEkgbmVlZCB0byBiZSAqYWJzb2x1dGVseSBzdXJlKi4gSSYjMzk7bGwgdXNlIGBncmVwcGVyYCB0byBzZWUgaWYgdGhlcmUmIzM5O3MgYW55IG1lbnRpb24gb2Ygc29mdHdhcmUgZW11bGF0aW9uLCBhbnkgaG9va3MgdGhhdCBtaWdodCBiZSB1c2VkIHRvIHNpbXVsYXRlIGl0cyBmdW5jdGlvbmFsaXR5IGluIGFuIGFsdGVybmF0ZSBjb250ZXh0LiBXZSYjMzk7bGwgdmVyaWZ5IHRoZXJlIGFyZSBubyBmYWxsYmFja3MgaGVyZS4gVGhlbiwgd2UgY2FuIG1ha2UgdGhlIGNhbGwuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+NC8yPC90ZD4KCQkJPHRkPjIwMjYvMDYvMjMgMDI6MDA8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7Q09ORklHX1FDT01fSVBBJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2FyY2gvYXJtNjQvY29uZmlncy9kZWZjb25maWc9NDU5PUNPTkZJR19YSUxJTlhfQVhJX0VNQUM9bVxuYXJjaC9hcm02NC9jb25maWdzL2RlZmNvbmZpZzo0NjA6Q09ORklHX1FDT01fSVBBPW1cbmFyY2gvYXJtNjQvY29uZmlncy9kZWZjb25maWctNDYxLUNPTkZJR19NRVNPTl9HWExfUEhZPW1cbi0tXG5kcml2ZXJzL25ldC9NYWtlZmlsZT01NT1vYmotJChDT05GSUdfRkRESSkgJiM0Mzs9IGZkZGkvXG5kcml2ZXJzL25ldC9NYWtlZmlsZTo1NjpvYmotJChDT05GSUdfUUNPTV9JUEEpICYjNDM7PSBpcGEvXG5kcml2ZXJzL25ldC9NYWtlZmlsZS01Ny1vYmotJChDT05GSUdfUExJUCkgJiM0Mzs9IHBsaXAvXG4tLVxuZHJpdmVycy9uZXQvaXBhL01ha2VmaWxlPTEwPUlQQV9EQVRBX1ZFUlNJT05TXHQ6PVx0My4xIDMuNS4xIDQuMiA0LjUgNC43IDQuOSA0LjExIDUuMCA1LjEgNS4yIDUuNVxuZHJpdmVycy9uZXQvaXBhL01ha2VmaWxlLTExLVxuZHJpdmVycy9uZXQvaXBhL01ha2VmaWxlOjEyOm9iai0kKENPTkZJR19RQ09NX0lQQSlcdCYjNDM7PVx0aXBhLm9cbmRyaXZlcnMvbmV0L2lwYS9NYWtlZmlsZS0xMy1cbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD41LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNi8yMyAwMjowMDwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAxMTE5NAoJCQkJCQkJb3V0cHV0OiAxOQoJCQkJCQkJdGhvdWdodHM6IDE0CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5IZXJlJiMzOTtzIG15IHRob3VnaHQgcHJvY2Vzcywgc3VtbWFyaXplZCBhcyB5b3UgcmVxdWVzdGVkOgoKKipLY29uZmlnIERpdmUgZm9yIFFDT01fSVBBKioKCkFscmlnaHQsIGxldCYjMzk7cyBnZXQgZG93biB0byBicmFzcyB0YWNrcy4gTXkgaW5pdGlhbCB0aG91Z2h0IGlzIHRvIGRpdmUgc3RyYWlnaHQgaW50byB0aGUgYEtjb25maWdgIGZpbGVzLiBJIG5lZWQgdG8gdW5kZXJzdGFuZCB0aGUgY29uZmlndXJhdGlvbiBvcHRpb25zIHJlbGF0ZWQgdG8gYFFDT01fSVBBYC4gVGhpcyBpcyB0aGUgYmVkcm9jazsgaXQmIzM5O3Mgd2hlcmUgdGhlIGNvbnRyb2wgZmxhZ3MgYW5kIGRlcGVuZGVuY2llcyBmb3IgdGhpcyBmZWF0dXJlIGFyZSBsYWlkIG91dC4gSSB3YW50IHRvIHNlZToKCiogICAqKkl0cyBkZXBlbmRlbmNpZXM6KiogV2hhdCBvdGhlciBjb21wb25lbnRzIG9yIGZlYXR1cmVzIG11c3QgYmUgZW5hYmxlZCBmb3IgYFFDT01fSVBBYCB0byBldmVuIGJlIGNvbnNpZGVyZWQ/IEFyZSB0aGVyZSBzcGVjaWZpYyBRdWFsY29tbS1yZWxhdGVkIGZsYWdzLCBvdGhlciBJUEEgKElQIEFjY2VsZXJhdG9yKSBjb25maWd1cmF0aW9ucywgb3IgYnJvYWRlciBwbGF0Zm9ybSByZXF1aXJlbWVudHM/CiogICAqKkl0cyBjb25kaXRpb25hbHM6KiogVW5kZXIgd2hhdCBjaXJjdW1zdGFuY2VzIGlzIGBRQ09NX0lQQWAgbWFkZSBhdmFpbGFibGU/IElzIGl0IHRpZWQgdG8gYSBzcGVjaWZpYyBib2FyZCwgQ1BVIGFyY2hpdGVjdHVyZSwgb3Iga2VybmVsIHZlcnNpb24/IEFyZSB0aGVyZSBhbnkgYCNpZmRlZmAgc3RhdGVtZW50cyBvciBzaW1pbGFyIGxvZ2ljIEkgbmVlZCB0byBwYXJzZT8KKiAgICoqSXRzIGRlZmF1bHQgc3RhdGU6KiogSXMgYFFDT01fSVBBYCBlbmFibGVkIGJ5IGRlZmF1bHQsIGRpc2FibGVkLCBvciBzZXQgdG8gc29tZSAmIzM0O2F1dG8mIzM0OyBjb25maWd1cmF0aW9uPyBUaGlzIHdpbGwgZ2l2ZSBtZSBhIGNsdWUgYXMgdG8gaXRzIGludGVuZGVkIHVzZSBhbmQgZ2VuZXJhbCBkZXNpZ24gcGhpbG9zb3BoeS4KKiAgICoqSXRzIGRlc2NyaXB0aW9uczoqKiBDcnVjaWFsbHksIHdoYXQgYXJlIHRoZSBoZWxwIHRleHRzIGFzc29jaWF0ZWQgd2l0aCB0aGlzIGNvbmZpZyBvcHRpb24/IFRoZXkgd2lsbCBsaWtlbHkgcHJvdmlkZSBtb3JlIGNvbnRleHQuIFdoYXQgZG9lcyBpdCAqZG8qIGFuZCB3aHkgc2hvdWxkIHNvbWVvbmUgZW5hYmxlIGl0PyBBbnkgY2F2ZWF0cyBvciB3YXJuaW5ncz8KKiAgICoqSXRzIGxvY2F0aW9uOioqIFdoZXJlIGlzIHRoaXMgY29uZmlnIGRlZmluZWQ/IElzIGl0IGluIHRoZSBrZXJuZWwgdHJlZSwgYSB2ZW5kb3Itc3BlY2lmaWMgcGFydCwgb3IgYSB0aGlyZC1wYXJ0eSBtb2R1bGU/IEtub3dpbmcgaXRzIGxvY2F0aW9uIHdpbGwgZ2l2ZSBtZSBhIGxvdCBvZiBjb250ZXh0LgoKQmFzaWNhbGx5LCBJIGFtIG1hcHBpbmcgb3V0IHRoZSAqY29uZmlndXJhdGlvbiBsYW5kc2NhcGUqIGZvciBgUUNPTV9JUEFgLiBUaGlzIEtjb25maWcgaXMgYSBrZXkgdG8gdW5sb2NrIHRoZSBmZWF0dXJlLiBJdCYjMzk7cyB0aGUgc3RhcnRpbmcgcG9pbnQgYmVmb3JlIEkgbW92ZSBhbnkgZnVydGhlciwgd2hldGhlciBJIGxvb2sgYXQgc291cmNlIGNvZGUsIGJ1aWxkIHNjcmlwdHMsIG9yIGRldmljZSB0cmVlcy4gSSB3YW50IHRvIGJ1aWxkIGEgY29tcHJlaGVuc2l2ZSBwaWN0dXJlIG9mIGhvdyB0aGlzIG9wdGlvbiBpcyBjb250cm9sbGVkLCBhbmQgd2hhdCBpbXBhY3QgaXQgaGFzLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjYvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA2LzIzIDAyOjAwPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O2NvbmZpZyBRQ09NX0lQQSYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtkcml2ZXJzL25ldC9pcGEvS2NvbmZpZzoxOmNvbmZpZyBRQ09NX0lQQVxuZHJpdmVycy9uZXQvaXBhL0tjb25maWctMi1cdHRyaXN0YXRlIFwmIzM0O1F1YWxjb21tIElQQSBzdXBwb3J0XCYjMzQ7XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Ny8yPC90ZD4KCQkJPHRkPjIwMjYvMDYvMjMgMDI6MDA8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMTE2ODEKCQkJCQkJCW91dHB1dDogMzQKCQkJCQkJCXRob3VnaHRzOiAxNAoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+SGVyZSYjMzk7cyBteSBhdHRlbXB0IGF0IHN1bW1hcml6aW5nIHRoZSB0aG91Z2h0IHByb2Nlc3MsIHRhaWxvcmVkIGZvciBhbiBleHBlcnQgYXVkaWVuY2U6CgoqKkRpdmluZyBpbnRvIHRoZSBJUEEgS2NvbmZpZyoqCgpBbHJpZ2h0LCBsZXQmIzM5O3MgcHVsbCB1cCBgZHJpdmVycy9uZXQvaXBhL0tjb25maWdgLiBUaW1lIHRvIGdldCBhIGhhbmRsZSBvbiB0aGUgY29uZmlndXJhdGlvbiBvcHRpb25zIGZvciB0aGUgSVBBIChJbnRlZ3JhdGVkIFBhY2tldCBBY2NlbGVyYXRvcikgZHJpdmVyLiBJIG5lZWQgdG8gdW5kZXJzdGFuZCBob3cgdGhpcyB0aGluZyBpcyBidWlsdCwgd2hhdCBmZWF0dXJlcyBhcmUgZXhwb3NlZCwgYW5kIGhvdyB0aGV54oCZcmUgY29udHJvbGxlZCB0aHJvdWdoIHRoZSBrZXJuZWwmIzM5O3MgY29uZmlndXJhdGlvbiBzeXN0ZW0uIE15IGludHVpdGlvbiBzYXlzIHRoaXMgd2lsbCBwcm9iYWJseSBiZSBhIGNvbXBsZXggYW5kIG11bHRpZmFjZXRlZCBzZXQgb2Ygb3B0aW9ucywgZ2l2ZW4gdGhlIHJvbGUgb2YgaGFyZHdhcmUgYWNjZWxlcmF0aW9uIGluIG5ldHdvcmtpbmcuIEkmIzM5O20gZXhwZWN0aW5nIHRvIHNlZSBkZXBlbmRlbmNpZXMgb24gdGhlIGhhcmR3YXJlIHBsYXRmb3JtLCBsaWtlbHkgQVJNLXNwZWNpZmljIGZlYXR1cmVzLCBhbmQgcGVyaGFwcyBkaWZmZXJlbnQgYnVpbGQgY2hvaWNlcyBmb3IgZGlmZmVyZW50IElQQSBjYXBhYmlsaXRpZXM6IG9mZmxvYWQsIGZpbHRlcmluZywgUW9TLCBhbmQgYW55IG90aGVyIHVuaXF1ZSBjYXBhYmlsaXRpZXMgdGhpcyBzcGVjaWZpYyBJUCBibG9jayBoYXMuIFdlIHNob3VsZCBhbHNvIGxvb2sgZm9yIG9wdGlvbnMgdGhhdCBjYW4gaW5mbHVlbmNlIHBlcmZvcm1hbmNlLCBtZW1vcnkgdXNhZ2UsIGFuZCBkZWJ1Z2dpbmcsIHdoaWNoIGFyZSBjcml0aWNhbCB0dW5pbmcgcGFyYW1ldGVycy4gSSB3YW50IHRvIHNlZSBob3cgbW9kdWxhciB0aGUgZHJpdmVyIGlzOyB3aGV0aGVyIHdlIGNhbiBzZWxlY3RpdmVseSBlbmFibGUgcG9ydGlvbnMgb2YgdGhlIGhhcmR3YXJlIGZ1bmN0aW9uYWxpdHkgb3IgaWYgaXTigJlzIG1vcmUgbW9ub2xpdGhpYy4gVGhlIEtjb25maWcgZmlsZSBpcyB0aGUga2V5IHRvIHVuZGVyc3RhbmRpbmcgYWxsIG9mIHRoaXMuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+OC8yPC90ZD4KCQkJPHRkPjIwMjYvMDYvMjMgMDI6MDA8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5yZWFkLWZpbGU8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0ZpbGUmIzM0OzogJiMzNDtkcml2ZXJzL25ldC9pcGEvS2NvbmZpZyYjMzQ7LAogICYjMzQ7Rmlyc3RMaW5lJiMzNDs6IDEsCiAgJiMzNDtMaW5lQ291bnQmIzM0OzogMjAKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0NvbnRlbnRzJiMzNDs6ICYjMzQ7ICAgMTpcdGNvbmZpZyBRQ09NX0lQQVxuICAgMjpcdFx0dHJpc3RhdGUgXCYjMzQ7UXVhbGNvbW0gSVBBIHN1cHBvcnRcJiMzNDtcbiAgIDM6XHRcdGRlcGVuZHMgb24gTkVUIFx1MDAyNlx1MDAyNiBRQ09NX1NNRU1cbiAgIDQ6XHRcdGRlcGVuZHMgb24gQVJDSF9RQ09NIHx8IENPTVBJTEVfVEVTVFxuICAgNTpcdFx0ZGVwZW5kcyBvbiBJTlRFUkNPTk5FQ1RcbiAgIDY6XHRcdGRlcGVuZHMgb24gUUNPTV9SUFJPQ19DT01NT04gfHwgKFFDT01fUlBST0NfQ09NTU9OPW4gXHUwMDI2XHUwMDI2IENPTVBJTEVfVEVTVClcbiAgIDc6XHRcdGRlcGVuZHMgb24gUUNPTV9BT1NTX1FNUCB8fCBRQ09NX0FPU1NfUU1QPW5cbiAgIDg6XHRcdHNlbGVjdCBRQ09NX01EVF9MT0FERVJcbiAgIDk6XHRcdHNlbGVjdCBRQ09NX1NDTVxuICAxMDpcdFx0c2VsZWN0IFFDT01fUU1JX0hFTFBFUlNcbiAgMTE6XHRcdGhlbHBcbiAgMTI6XHRcdCAgQ2hvb3NlIFkgb3IgTSBoZXJlIHRvIGluY2x1ZGUgc3VwcG9ydCBmb3IgdGhlIFF1YWxjb21tXG4gIDEzOlx0XHQgIElQIEFjY2VsZXJhdG9yIChJUEEpLCBhIGhhcmR3YXJlIGJsb2NrIHByZXNlbnQgaW4gc29tZVxuICAxNDpcdFx0ICBRdWFsY29tbSBTb0NzLiAgVGhlIElQQSBpcyBhIHByb2dyYW1tYWJsZSBwcm90b2NvbCBwcm9jZXNzb3JcbiAgMTU6XHRcdCAgdGhhdCBpcyBjYXBhYmxlIG9mIGdlbmVyaWMgaGFyZHdhcmUgaGFuZGxpbmcgb2YgSVAgcGFja2V0cyxcbiAgMTY6XHRcdCAgaW5jbHVkaW5nIHJvdXRpbmcsIGZpbHRlcmluZywgYW5kIE5BVC4gIEN1cnJlbnRseSB0aGUgSVBBXG4gIDE3Olx0XHQgIGRyaXZlciBzdXBwb3J0cyBvbmx5IGJhc2ljIHRyYW5zcG9ydCBvZiBuZXR3b3JrIHRyYWZmaWNcbiAgMTg6XHRcdCAgYmV0d2VlbiB0aGUgQVAgYW5kIG1vZGVtLlxuICAxOTpcdFxuICAyMDpcdFx0ICBOb3RlIHRoYXQgaWYgc2VsZWN0ZWQsIHRoZSBzZWxlY3Rpb24gdHlwZSBtdXN0IG1hdGNoIHRoYXRcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD45LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNi8yMyAwMjowMDwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAxMjI4MgoJCQkJCQkJb3V0cHV0OiAxMjAKCQkJCQkJCXRob3VnaHRzOiA0MzYKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqV29ydGhGdXp6aW5nIEFzc2Vzc21lbnQ6IE5vLCBUaGlzIFBhdGNoIElzbiYjMzk7dCBGdXp6YWJsZSoqCgpPa2F5LCBsZXQmIzM5O3MgYnJlYWsgdGhpcyBkb3duLiBUaGlzIHBhdGNoIGlzIGFsbCBhYm91dCBhZGRpbmcgc3VwcG9ydCBmb3IgYSBuZXcgdmVyc2lvbiwgdjUuMSwgb2YgdGhlIFF1YWxjb21tIElQQSAoSVAgQWNjZWxlcmF0b3IpIGhhcmR3YXJlIGJsb2NrLCBzcGVjaWZpY2FsbHkgZm9yIHRoZSBTTTg0NTAgU29DLiBNeSB1bmRlcnN0YW5kaW5nIGlzIHRoYXQgdGhlIElQQSBpcyBhIHZlcnkgc3BlY2lmaWMgcGllY2Ugb2YgaGFyZHdhcmUgaW4gUXVhbGNvbW0gU29DcyDigJMgaXQmIzM5O3Mgbm90IHNvbWV0aGluZyB0aGF0IGNhbiBiZSBlbXVsYXRlZCBpbiBlbnZpcm9ubWVudHMgbGlrZSBRRU1VIG9yIEdvb2dsZSBDb21wdXRlIEVuZ2luZS4gVGhhdCYjMzk7cyB0aGUga2V5LgoKVGhpcyBwYXRjaCBpdHNlbGYgc2VlbXMgYmVuaWduLiBJJiMzOTttIHNlZWluZyBuZXcgZGF0YSBzdHJ1Y3R1cmVzLCBkZXZpY2UgdHJlZSBiaW5kaW5ncywgYW5kIHRoZSByZWdpc3RyYXRpb24gb2YgYSBuZXcgJiMzNDtjb21wYXRpYmxlJiMzNDsgc3RyaW5nLiBTbywgaXQgYXBwZWFycyB3ZSYjMzk7cmUganVzdCBzZXR0aW5nIHVwIHRoZSBzeXN0ZW0gdG8gcmVjb2duaXplIGFuZCBjb25maWd1cmUgdGhpcyBuZXcgaGFyZHdhcmUgdmVyc2lvbi4gVGhlcmUmIzM5O3Mgbm8gZnVuY3Rpb25hbCBsb2dpYyBiZWluZyBpbnRyb2R1Y2VkIGhlcmUgdGhhdCBJIGNvdWxkIHNlZSBiZWluZyByZWxldmFudCB0byBmdXp6aW5nLCBlc3BlY2lhbGx5IG5vdCBpbiBhIHZpcnR1YWxpemVkIGVudmlyb25tZW50LgoKTm93LCBsZXQmIzM5O3MgcXVpY2tseSByZXZpZXcgdGhlIHNwZWNpZmljIGZpbGVzIG1vZGlmaWVkIHRvIGRvdWJsZS1jaGVjayBteSBpbml0aWFsIGFzc2Vzc21lbnQuCgoqICAgYGRyaXZlcnMvbmV0L2lwYS9kYXRhL2lwYV9kYXRhLXY1LjEuY2A6IEp1c3QgZGF0YS4KKiAgIGBkcml2ZXJzL25ldC9pcGEvZ3NpX3JlZy5jYDogQWRkaW5nIGEgYGNhc2UgSVBBX1ZFUlNJT05fNV8xOmAgdG8gcmV0dXJuIGAmYW1wO2dzaV9yZWdzX3Y1XzBgLiBUaGlzIGlzIGp1c3QgYWRkaW5nIGEgYnJhbmNoIGJhc2VkIG9uIHZlcnNpb24gbnVtYmVyLCBub3QgbmV3IGxvZ2ljLgoqICAgYGRyaXZlcnMvbmV0L2lwYS9pcGFfcmVnLmNgOiBTaW1pbGFybHksIGFkZGluZyBhIGBjYXNlIElQQV9WRVJTSU9OXzVfMTpgIHRvIHJldHVybiBgJmFtcDtpcGFfcmVnc192NV8wYC4gQW5vdGhlciBicmFuY2gsIGp1c3QgY29uZmlndXJhdGlvbiBkYXRhLgoqICAgYGRyaXZlcnMvbmV0L2lwYS9pcGFfbWFpbi5jYDogQWRkaW5nIHRoZSBjb21wYXRpYmxlIHN0cmluZyB0byBhIHRhYmxlLgoqICAgYGRyaXZlcnMvbmV0L2lwYS9NYWtlZmlsZWA6IEFkZGluZyBgNS4xYCB0byB0aGUgYElQQV9EQVRBX1ZFUlNJT05TYCB2YXJpYWJsZS4KKiAgIGBhcmNoL2FybTY0L2Jvb3QvZHRzL3Fjb20vc204NDUwLmR0c2lgOiBBZGRpbmcgdGhlIERldmljZSBUcmVlIG5vZGUsIHdoaWNoIGlzIGVzc2VudGlhbCBmb3IgaGFyZHdhcmUgY29uZmlndXJhdGlvbi4KKiAgIGBEb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L3Fjb20saXBhLnlhbWxgOiBBZGRpbmcgdGhlIGNvbXBhdGlibGUgc3RyaW5nIHRvIHRoZSBkb2N1bWVudGF0aW9uLgoKTG9va2luZyBhdCBlYWNoIGZpbGUgY29uZmlybXMgbXkgaW5pdGlhbCBhc3Nlc3NtZW50LiBBbGwgdGhlc2UgY2hhbmdlcyBhcmUgYWJvdXQgZGF0YSBzdHJ1Y3R1cmVzLCBoYXJkd2FyZSB2ZXJzaW9uIGVudW1lcmF0aW9uLCBhbmQgZGV2aWNlIHRyZWUgaW5mb3JtYXRpb24uIFRoZXJlJiMzOTtzIG5vIGNvZGUgY2hhbmdlIGhlcmUgdGhhdCByZXByZXNlbnRzIG5ldyBmdW5jdGlvbmFsaXR5LCBhbmQgY3JpdGljYWxseSwgdGhlcmUmIzM5O3Mgbm8gd2F5IHRvIHJlYWNoIHRoaXMgY29kZSBpbiBhIGZ1enppbmcgc2V0dXAuIEkmIzM5O20gY29tcGxldGVseSBjb25maWRlbnQgbm93IHRoYXQgdGhpcyBpc24mIzM5O3QgZnV6emFibGUuIEkgd2lsbCBzZXQgYFdvcnRoRnV6emluZz1mYWxzZWAuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTAvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA2LzIzIDAyOjAwPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+c2V0LXJlc3VsdHM8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogW10sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogW10sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggYWRkcyBzdXBwb3J0IGZvciBhIG5ldyBoYXJkd2FyZSB2ZXJzaW9uICh2NS4xKSBvZiB0aGUgUXVhbGNvbW0gSVAgQWNjZWxlcmF0b3IgKElQQSkgZm9yIHRoZSBTTTg0NTAgU29DLiBJdCBvbmx5IGludHJvZHVjZXMgbmV3IGRhdGEgc3RydWN0dXJlcywgZGV2aWNlIHRyZWUgYmluZGluZ3MsIGFuZCByZWdpc3RlcnMgdGhlIG5ldyBjb21wYXRpYmxlIHN0cmluZy4gVGhlIElQQSBpcyBhIGhhcmR3YXJlIGJsb2NrIHNwZWNpZmljIHRvIFF1YWxjb21tIFNvQ3MgYW5kIGlzIG5vdCBlbXVsYXRlZCBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBRRU1VIG9yIEdDRSwgbWFraW5nIHRoaXMgY29kZSB1bnJlYWNoYWJsZSBhbmQgdW50ZXN0YWJsZSBkdXJpbmcgZnV6emluZy4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiBmYWxzZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBudWxsLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFtdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIGFkZHMgc3VwcG9ydCBmb3IgYSBuZXcgaGFyZHdhcmUgdmVyc2lvbiAodjUuMSkgb2YgdGhlIFF1YWxjb21tIElQIEFjY2VsZXJhdG9yIChJUEEpIGZvciB0aGUgU004NDUwIFNvQy4gSXQgb25seSBpbnRyb2R1Y2VzIG5ldyBkYXRhIHN0cnVjdHVyZXMsIGRldmljZSB0cmVlIGJpbmRpbmdzLCBhbmQgcmVnaXN0ZXJzIHRoZSBuZXcgY29tcGF0aWJsZSBzdHJpbmcuIFRoZSBJUEEgaXMgYSBoYXJkd2FyZSBibG9jayBzcGVjaWZpYyB0byBRdWFsY29tbSBTb0NzIGFuZCBpcyBub3QgZW11bGF0ZWQgaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgUUVNVSBvciBHQ0UsIG1ha2luZyB0aGlzIGNvZGUgdW5yZWFjaGFibGUgYW5kIHVudGVzdGFibGUgZHVyaW5nIGZ1enppbmcuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogZmFsc2UKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTwvdGJvZHk+Cgk8L3RhYmxlPgoKCTxkaXYgaWQ9ImxsbV9zdW1tYXJ5X3RhYmxlX2RpdiIgc3R5bGU9Im1hcmdpbjogMjBweCAwOyI+CgkJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQkJPGNhcHRpb24+TExNIENhbGxzIFN1bW1hcnk6PC9jYXB0aW9uPgoJCQk8dGhlYWQ+CgkJCQk8dHI+CgkJCQkJPHRoPlRvdGFsIENhbGxzPC90aD4KCQkJCQk8dGg+VG90YWwgVG9rZW5zPC90aD4KCQkJCQk8dGg+QXZnIFRva2VuczwvdGg+CgkJCQkJPHRoPlRvdGFsIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQkJPHRoPkF2ZyBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJPC90cj4KCQkJPC90aGVhZD4KCQkJPHRib2R5IGlkPSJsbG1fc3VtbWFyeV9zdGF0c19ib2R5Ij48L3Rib2R5PgoJCTwvdGFibGU+Cgk8L2Rpdj4KCgk8ZGl2IGlkPSJ0b29sX3N1bW1hcnlfdGFibGVfZGl2IiBzdHlsZT0ibWFyZ2luOiAyMHB4IDA7Ij4KCQk8dGFibGUgY2xhc3M9Imxpc3RfdGFibGUiPgoJCQk8Y2FwdGlvbj5Ub29sIENhbGxzIFN1bW1hcnk6PC9jYXB0aW9uPgoJCQk8dGhlYWQ+CgkJCQk8dHI+CgkJCQkJPHRoPlRvdGFsIENhbGxzPC90aD4KCQkJCQk8dGg+VG90YWwgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCQk8dGg+QXZnIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQk8L3RyPgoJCQk8L3RoZWFkPgoJCQk8dGJvZHkgaWQ9InRvb2xfc3VtbWFyeV9zdGF0c19ib2R5Ij48L3Rib2R5PgoJCTwvdGFibGU+Cgk8L2Rpdj4KCgk8ZGl2IGlkPSJkdXJhdGlvbl9jaGFydF9kaXYiIHN0eWxlPSJ3aWR0aDogMTAwJTsgbWFyZ2luOiAyMHB4IDA7IGJvcmRlcjogMXB4OyI+PC9kaXY+Cgk8ZGl2IGlkPSJ0b2tlbl9jaGFydF9kaXYiIHN0eWxlPSJ3aWR0aDogMTAwJTsgbWFyZ2luOiAyMHB4IDA7IGJvcmRlcjogMXB4OyI+PC9kaXY+CgoJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iaHR0cHM6Ly93d3cuZ29vZ2xlLmNvbS9qc2FwaSI+PC9zY3JpcHQ+Cgk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+CgkJZ29vZ2xlLmxvYWQoInZpc3VhbGl6YXRpb24iLCAiMSIsIHtwYWNrYWdlczpbImNvcmVjaGFydCJdfSk7CgkJZ29vZ2xlLnNldE9uTG9hZENhbGxiYWNrKGRyYXdDaGFydHMpOwoKCQlmdW5jdGlvbiBkcmF3Q2hhcnRzKCkgewoJCQljb25zdCByYXdEYXRhID0gW3siU3RhcnRlZCI6IjIwMjYtMDYtMjNUMDI6MDA6MjcuNzA0NjQ2NTQyWiIsIlNlcSI6MCwiTmVzdGluZyI6MCwiVHlwZSI6ImZsb3ciLCJOYW1lIjoicGF0Y2gtdHJpYWdlIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MzA4MTE5MTkzNzgsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogbnVsbCxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW10sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIGFkZHMgc3VwcG9ydCBmb3IgYSBuZXcgaGFyZHdhcmUgdmVyc2lvbiAodjUuMSkgb2YgdGhlIFF1YWxjb21tIElQIEFjY2VsZXJhdG9yIChJUEEpIGZvciB0aGUgU004NDUwIFNvQy4gSXQgb25seSBpbnRyb2R1Y2VzIG5ldyBkYXRhIHN0cnVjdHVyZXMsIGRldmljZSB0cmVlIGJpbmRpbmdzLCBhbmQgcmVnaXN0ZXJzIHRoZSBuZXcgY29tcGF0aWJsZSBzdHJpbmcuIFRoZSBJUEEgaXMgYSBoYXJkd2FyZSBibG9jayBzcGVjaWZpYyB0byBRdWFsY29tbSBTb0NzIGFuZCBpcyBub3QgZW11bGF0ZWQgaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgUUVNVSBvciBHQ0UsIG1ha2luZyB0aGlzIGNvZGUgdW5yZWFjaGFibGUgYW5kIHVudGVzdGFibGUgZHVyaW5nIGZ1enppbmcuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IGZhbHNlXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNi0yM1QwMjowMDoyNy43MDQ2NjA5NTJaIiwiU2VxIjoxLCJOZXN0aW5nIjoxLCJUeXBlIjoiYWN0aW9uIiwiTmFtZSI6InJlYWQtcGF0Y2gtZGlmZiIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjY3MTY0MjUwNiwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiUGF0Y2hEaWZmXCI6IFwiY29tbWl0IGRkMmRkZjEwNzUwYjBlZjQzYWZhNjBhYWU2ZjExYTdmYzQ1MjM4Y2NcXG5BdXRob3I6IHN5ei1jbHVzdGVyIFxcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVxcdTAwM2VcXG5EYXRlOiAgIFR1ZSBKdW4gMjMgMDI6MDA6MjYgMjAyNiArMDAwMFxcblxcbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcXG5cXG5kaWZmIC0tZ2l0IGEvRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9xY29tLGlwYS55YW1sIGIvRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9xY29tLGlwYS55YW1sXFxuaW5kZXggNjhlYzc2ZmU0NDczNTYuLmRiOTFiZmFhZjgzMzJlIDEwMDY0NFxcbi0tLSBhL0RvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvcWNvbSxpcGEueWFtbFxcbisrKyBiL0RvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvcWNvbSxpcGEueWFtbFxcbkBAIC01Myw2ICs1Myw3IEBAIHByb3BlcnRpZXM6XFxuICAgICAgICAgICAtIHFjb20sc2R4NjUtaXBhXFxuICAgICAgICAgICAtIHFjb20sc202MzUwLWlwYVxcbiAgICAgICAgICAgLSBxY29tLHNtODM1MC1pcGFcXG4rICAgICAgICAgIC0gcWNvbSxzbTg0NTAtaXBhXFxuICAgICAgICAgICAtIHFjb20sc204NTUwLWlwYVxcbiAgICAgICAtIGl0ZW1zOlxcbiAgICAgICAgICAgLSBlbnVtOlxcbmRpZmYgLS1naXQgYS9hcmNoL2FybTY0L2Jvb3QvZHRzL3Fjb20vc204NDUwLmR0c2kgYi9hcmNoL2FybTY0L2Jvb3QvZHRzL3Fjb20vc204NDUwLmR0c2lcXG5pbmRleCA1NmNiNmU5NTllNGVlMi4uYzkwNDcyMDAwOGZhYzcgMTAwNjQ0XFxuLS0tIGEvYXJjaC9hcm02NC9ib290L2R0cy9xY29tL3NtODQ1MC5kdHNpXFxuKysrIGIvYXJjaC9hcm02NC9ib290L2R0cy9xY29tL3NtODQ1MC5kdHNpXFxuQEAgLTI2MzksNiArMjYzOSw0NyBAQCBhZHJlbm9fc21tdTogaW9tbXVAM2RhMDAwMCB7XFxuIFxcdFxcdFxcdGRtYS1jb2hlcmVudDtcXG4gXFx0XFx0fTtcXG4gXFxuK1xcdFxcdGlwYTogaXBhQDNmNDAwMDAge1xcbitcXHRcXHRcXHRjb21wYXRpYmxlID0gXFxcInFjb20sc204NDUwLWlwYVxcXCI7XFxuK1xcbitcXHRcXHRcXHRpb21tdXMgPSBcXHUwMDNjXFx1MDAyNmFwcHNfc21tdSAweDVjMCAweDBcXHUwMDNlLFxcbitcXHRcXHRcXHRcXHQgXFx1MDAzY1xcdTAwMjZhcHBzX3NtbXUgMHg1YzIgMHgwXFx1MDAzZTtcXG4rXFx0XFx0XFx0cmVnID0gXFx1MDAzYzAgMHgzZjQwMDAwIDAgMHgxMDAwMFxcdTAwM2UsXFxuK1xcdFxcdFxcdCAgICAgIFxcdTAwM2MwIDB4M2Y1MDAwMCAwIDB4NTAwMFxcdTAwM2UsXFxuK1xcdFxcdFxcdCAgICAgIFxcdTAwM2MwIDB4M2UwNDAwMCAwIDB4ZmMwMDBcXHUwMDNlO1xcbitcXHRcXHRcXHRyZWctbmFtZXMgPSBcXFwiaXBhLXJlZ1xcXCIsXFxuK1xcdFxcdFxcdFxcdCAgICBcXFwiaXBhLXNoYXJlZFxcXCIsXFxuK1xcdFxcdFxcdFxcdCAgICBcXFwiZ3NpXFxcIjtcXG4rXFxuK1xcdFxcdFxcdGludGVycnVwdHMtZXh0ZW5kZWQgPSBcXHUwMDNjXFx1MDAyNmludGMgR0lDX1NQSSA2NTQgSVJRX1RZUEVfRURHRV9SSVNJTkdcXHUwMDNlLFxcbitcXHRcXHRcXHRcXHRcXHQgICAgICBcXHUwMDNjXFx1MDAyNmludGMgR0lDX1NQSSA0MzIgSVJRX1RZUEVfTEVWRUxfSElHSFxcdTAwM2UsXFxuK1xcdFxcdFxcdFxcdFxcdCAgICAgIFxcdTAwM2NcXHUwMDI2aXBhX3NtcDJwX2luIDAgSVJRX1RZUEVfRURHRV9SSVNJTkdcXHUwMDNlLFxcbitcXHRcXHRcXHRcXHRcXHQgICAgICBcXHUwMDNjXFx1MDAyNmlwYV9zbXAycF9pbiAxIElSUV9UWVBFX0VER0VfUklTSU5HXFx1MDAzZTtcXG4rXFx0XFx0XFx0aW50ZXJydXB0LW5hbWVzID0gXFxcImlwYVxcXCIsXFxuK1xcdFxcdFxcdFxcdFxcdCAgXFxcImdzaVxcXCIsXFxuK1xcdFxcdFxcdFxcdFxcdCAgXFxcImlwYS1jbG9jay1xdWVyeVxcXCIsXFxuK1xcdFxcdFxcdFxcdFxcdCAgXFxcImlwYS1zZXR1cC1yZWFkeVxcXCI7XFxuK1xcbitcXHRcXHRcXHRjbG9ja3MgPSBcXHUwMDNjXFx1MDAyNnJwbWhjYyBSUE1IX0lQQV9DTEtcXHUwMDNlO1xcbitcXHRcXHRcXHRjbG9jay1uYW1lcyA9IFxcXCJjb3JlXFxcIjtcXG4rXFxuK1xcdFxcdFxcdGludGVyY29ubmVjdHMgPSBcXHUwMDNjXFx1MDAyNmFnZ3JlMl9ub2MgTUFTVEVSX0lQQSAwIFxcdTAwMjZtY192aXJ0IFNMQVZFX0VCSTEgMFxcdTAwM2UsXFxuK1xcdFxcdFxcdFxcdFxcdFxcdTAwM2NcXHUwMDI2Z2VtX25vYyBNQVNURVJfQVBQU1NfUFJPQyAwIFxcdTAwMjZjb25maWdfbm9jIFNMQVZFX0lQQV9DRkcgMFxcdTAwM2U7XFxuK1xcdFxcdFxcdGludGVyY29ubmVjdC1uYW1lcyA9IFxcXCJtZW1vcnlcXFwiLFxcbitcXHRcXHRcXHRcXHRcXHQgICAgIFxcXCJjb25maWdcXFwiO1xcbitcXG4rXFx0XFx0XFx0cWNvbSxxbXAgPSBcXHUwMDNjXFx1MDAyNmFvc3NfcW1wXFx1MDAzZTtcXG4rXFxuK1xcdFxcdFxcdHFjb20sc21lbS1zdGF0ZXMgPSBcXHUwMDNjXFx1MDAyNmlwYV9zbXAycF9vdXQgMFxcdTAwM2UsXFxuK1xcdFxcdFxcdFxcdFxcdCAgIFxcdTAwM2NcXHUwMDI2aXBhX3NtcDJwX291dCAxXFx1MDAzZTtcXG4rXFx0XFx0XFx0cWNvbSxzbWVtLXN0YXRlLW5hbWVzID0gXFxcImlwYS1jbG9jay1lbmFibGVkLXZhbGlkXFxcIixcXG4rXFx0XFx0XFx0XFx0XFx0XFx0XFxcImlwYS1jbG9jay1lbmFibGVkXFxcIjtcXG4rXFxuK1xcdFxcdFxcdHNyYW0gPSBcXHUwMDNjXFx1MDAyNmlwYV9tb2RlbV90YWJsZXNcXHUwMDNlO1xcbitcXG4rXFx0XFx0XFx0c3RhdHVzID0gXFxcImRpc2FibGVkXFxcIjtcXG4rXFx0XFx0fTtcXG4rXFxuIFxcdFxcdHVzYl8xX2hzcGh5OiBwaHlAODhlMzAwMCB7XFxuIFxcdFxcdFxcdGNvbXBhdGlibGUgPSBcXFwicWNvbSxzbTg0NTAtdXNiLWhzLXBoeVxcXCIsXFxuIFxcdFxcdFxcdFxcdCAgICAgXFxcInFjb20sdXNiLXNucHMtaHMtN25tLXBoeVxcXCI7XFxuQEAgLTQ5NzAsMTcgKzUwMTEsMjEgQEAgY3RpQDEzOTAwMDAwIHtcXG4gXFx0XFx0XFx0Y2xvY2stbmFtZXMgPSBcXFwiYXBiX3BjbGtcXFwiO1xcbiBcXHRcXHR9O1xcbiBcXG4tXFx0XFx0c3JhbUAxNDZhYTAwMCB7XFxuK1xcdFxcdHNyYW1AMTQ2YTgwMDAge1xcbiBcXHRcXHRcXHRjb21wYXRpYmxlID0gXFxcInFjb20sc204NDUwLWltZW1cXFwiLCBcXFwic3lzY29uXFxcIiwgXFxcInNpbXBsZS1tZmRcXFwiO1xcbi1cXHRcXHRcXHRyZWcgPSBcXHUwMDNjMCAweDE0NmFhMDAwIDAgMHgxMDAwXFx1MDAzZTtcXG4tXFx0XFx0XFx0cmFuZ2VzID0gXFx1MDAzYzAgMCAweDE0NmFhMDAwIDB4MTAwMFxcdTAwM2U7XFxuK1xcdFxcdFxcdHJlZyA9IFxcdTAwM2MwIDB4MTQ2YTgwMDAgMCAweDMwMDBcXHUwMDNlO1xcbitcXHRcXHRcXHRyYW5nZXMgPSBcXHUwMDNjMCAwIDB4MTQ2YTgwMDAgMHgzMDAwXFx1MDAzZTtcXG4gXFxuIFxcdFxcdFxcdCNhZGRyZXNzLWNlbGxzID0gXFx1MDAzYzFcXHUwMDNlO1xcbiBcXHRcXHRcXHQjc2l6ZS1jZWxscyA9IFxcdTAwM2MxXFx1MDAzZTtcXG4gXFxuLVxcdFxcdFxcdHBpbC1yZWxvY0A5NGMge1xcbitcXHRcXHRcXHRpcGFfbW9kZW1fdGFibGVzOiBtb2RlbS10YWJsZXNAMCB7XFxuK1xcdFxcdFxcdFxcdHJlZyA9IFxcdTAwM2MwIDB4MjAwMFxcdTAwM2U7XFxuK1xcdFxcdFxcdH07XFxuK1xcbitcXHRcXHRcXHRwaWwtcmVsb2NAMjk0YyB7XFxuIFxcdFxcdFxcdFxcdGNvbXBhdGlibGUgPSBcXFwicWNvbSxwaWwtcmVsb2MtaW5mb1xcXCI7XFxuLVxcdFxcdFxcdFxcdHJlZyA9IFxcdTAwM2MweDk0YyAweGM4XFx1MDAzZTtcXG4rXFx0XFx0XFx0XFx0cmVnID0gXFx1MDAzYzB4Mjk0YyAweGM4XFx1MDAzZTtcXG4gXFx0XFx0XFx0fTtcXG4gXFx0XFx0fTtcXG4gXFxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2lwYS9NYWtlZmlsZSBiL2RyaXZlcnMvbmV0L2lwYS9NYWtlZmlsZVxcbmluZGV4IGUxNDhlYzNjMWExMDEwLi5kNDk5NWMyZThjYTAyMyAxMDA2NDRcXG4tLS0gYS9kcml2ZXJzL25ldC9pcGEvTWFrZWZpbGVcXG4rKysgYi9kcml2ZXJzL25ldC9pcGEvTWFrZWZpbGVcXG5AQCAtNyw3ICs3LDcgQEAgSVBBX1JFR19WRVJTSU9OU1xcdDo9XFx0My4xIDMuNS4xIDQuMiA0LjUgNC43IDQuOSA0LjExIDUuMCA1LjVcXG4gIyBTb21lIElQQSB2ZXJzaW9ucyBjYW4gcmV1c2UgYW5vdGhlciBzZXQgb2YgR1NJIHJlZ2lzdGVyIGRlZmluaXRpb25zLlxcbiBHU0lfUkVHX1ZFUlNJT05TXFx0Oj1cXHQzLjEgMy41LjEgNC4wIDQuNSA0LjkgNC4xMSA1LjBcXG4gXFxuLUlQQV9EQVRBX1ZFUlNJT05TXFx0Oj1cXHQzLjEgMy41LjEgNC4yIDQuNSA0LjcgNC45IDQuMTEgNS4wIDUuMiA1LjVcXG4rSVBBX0RBVEFfVkVSU0lPTlNcXHQ6PVxcdDMuMSAzLjUuMSA0LjIgNC41IDQuNyA0LjkgNC4xMSA1LjAgNS4xIDUuMiA1LjVcXG4gXFxuIG9iai0kKENPTkZJR19RQ09NX0lQQSlcXHQrPVxcdGlwYS5vXFxuIFxcbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9pcGEvZGF0YS9pcGFfZGF0YS12NS4xLmMgYi9kcml2ZXJzL25ldC9pcGEvZGF0YS9pcGFfZGF0YS12NS4xLmNcXG5uZXcgZmlsZSBtb2RlIDEwMDY0NFxcbmluZGV4IDAwMDAwMDAwMDAwMDAwLi44NWIyMWVmYTEyMjRkYlxcbi0tLSAvZGV2L251bGxcXG4rKysgYi9kcml2ZXJzL25ldC9pcGEvZGF0YS9pcGFfZGF0YS12NS4xLmNcXG5AQCAtMCwwICsxLDQ3NyBAQFxcbisvLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMFxcbitcXG4rLyogQ29weXJpZ2h0IChDKSAyMDIzLTIwMjQgTGluYXJvIEx0ZC4gKi9cXG4rLyogQ29weXJpZ2h0IChDKSAyMDI2IEVzdGViYW4gVXJydXRpYSBcXHUwMDNjZXN0ZXV3dUBwcm90b24ubWVcXHUwMDNlICovXFxuK1xcbisjaW5jbHVkZSBcXHUwMDNjbGludXgvYXJyYXlfc2l6ZS5oXFx1MDAzZVxcbisjaW5jbHVkZSBcXHUwMDNjbGludXgvbG9nMi5oXFx1MDAzZVxcbitcXG4rI2luY2x1ZGUgXFxcIi4uL2lwYV9kYXRhLmhcXFwiXFxuKyNpbmNsdWRlIFxcXCIuLi9pcGFfZW5kcG9pbnQuaFxcXCJcXG4rI2luY2x1ZGUgXFxcIi4uL2lwYV9tZW0uaFxcXCJcXG4rI2luY2x1ZGUgXFxcIi4uL2lwYV92ZXJzaW9uLmhcXFwiXFxuK1xcbisvKiogZW51bSBpcGFfcmVzb3VyY2VfdHlwZSAtIElQQSByZXNvdXJjZSB0eXBlcyBmb3IgYW4gU29DIGhhdmluZyBJUEEgdjUuMSAqL1xcbitlbnVtIGlwYV9yZXNvdXJjZV90eXBlIHtcXG4rXFx0LyogU291cmNlIHJlc291cmNlIHR5cGVzOyBmaXJzdCBtdXN0IGhhdmUgdmFsdWUgMCAqL1xcbitcXHRJUEFfUkVTT1VSQ0VfVFlQRV9TUkNfUEtUX0NPTlRFWFRTXFx0XFx0PSAwLFxcbitcXHRJUEFfUkVTT1VSQ0VfVFlQRV9TUkNfREVTQ1JJUFRPUl9MSVNUUyxcXG4rXFx0SVBBX1JFU09VUkNFX1RZUEVfU1JDX0RFU0NSSVBUT1JfQlVGRixcXG4rXFx0SVBBX1JFU09VUkNFX1RZUEVfU1JDX0hQU19ETUFSUyxcXG4rXFx0SVBBX1JFU09VUkNFX1RZUEVfU1JDX0FDS19FTlRSSUVTLFxcbitcXG4rXFx0LyogRGVzdGluYXRpb24gcmVzb3VyY2UgdHlwZXM7IGZpcnN0IG11c3QgaGF2ZSB2YWx1ZSAwICovXFxuK1xcdElQQV9SRVNPVVJDRV9UWVBFX0RTVF9EQVRBX1NFQ1RPUlNcXHRcXHQ9IDAsXFxuK1xcdElQQV9SRVNPVVJDRV9UWVBFX0RTVF9EUFNfRE1BUlMsXFxuK1xcdElQQV9SRVNPVVJDRV9UWVBFX0RTVF9VTFNPX1NFR01FTlRTLFxcbit9O1xcbitcXG4rLyogUmVzb3VyY2UgZ3JvdXBzIHVzZWQgZm9yIGFuIFNvQyBoYXZpbmcgSVBBIHY1LjEgKi9cXG4rZW51bSBpcGFfcnNyY19ncm91cF9pZCB7XFxuK1xcdC8qIFNvdXJjZSByZXNvdXJjZSBncm91cCBpZGVudGlmaWVycyAqL1xcbitcXHRJUEFfUlNSQ19HUk9VUF9TUkNfVUxcXHRcXHRcXHRcXHQ9IDAsXFxuK1xcdElQQV9SU1JDX0dST1VQX1NSQ19ETCxcXG4rXFx0SVBBX1JTUkNfR1JPVVBfU1JDX1VOVVNFRF8yLFxcbitcXHRJUEFfUlNSQ19HUk9VUF9TUkNfVU5VU0VEXzMsXFxuK1xcdElQQV9SU1JDX0dST1VQX1NSQ19VUkxMQyxcXG4rXFx0SVBBX1JTUkNfR1JPVVBfU1JDX1VfUlhfUUMsXFxuK1xcdElQQV9SU1JDX0dST1VQX1NSQ19DT1VOVCxcXHQvKiBMYXN0IGluIHNldDsgbm90IGEgc291cmNlIGdyb3VwICovXFxuK1xcbitcXHQvKiBEZXN0aW5hdGlvbiByZXNvdXJjZSBncm91cCBpZGVudGlmaWVycyAqL1xcbitcXHRJUEFfUlNSQ19HUk9VUF9EU1RfVUxcXHRcXHRcXHRcXHQ9IDAsXFxuK1xcdElQQV9SU1JDX0dST1VQX0RTVF9ETCxcXG4rXFx0SVBBX1JTUkNfR1JPVVBfRFNUX1VOVVNFRF8yLFxcbitcXHRJUEFfUlNSQ19HUk9VUF9EU1RfVU5VU0VEXzMsXFxuK1xcdElQQV9SU1JDX0dST1VQX0RTVF9VTlVTRURfNCxcXG4rXFx0SVBBX1JTUkNfR1JPVVBfRFNUX1VDLFxcbitcXHRJUEFfUlNSQ19HUk9VUF9EU1RfRFJCX0lQLFxcbitcXHRJUEFfUlNSQ19HUk9VUF9EU1RfQ09VTlQsXFx0LyogTGFzdDsgbm90IGEgZGVzdGluYXRpb24gZ3JvdXAgKi9cXG4rfTtcXG4rXFxuKy8qIFFTQiBjb25maWd1cmF0aW9uIGRhdGEgZm9yIGFuIFNvQyBoYXZpbmcgSVBBIHY1LjEgKi9cXG4rc3RhdGljIGNvbnN0IHN0cnVjdCBpcGFfcXNiX2RhdGEgaXBhX3FzYl9kYXRhW10gPSB7XFxuK1xcdFtJUEFfUVNCX01BU1RFUl9ERFJdID0ge1xcbitcXHRcXHQubWF4X3dyaXRlc1xcdFxcdD0gMCxcXG4rXFx0XFx0Lm1heF9yZWFkc1xcdFxcdD0gMCxcXHQvKiBubyBsaW1pdCAoaGFyZHdhcmUgbWF4KSAqL1xcbitcXHRcXHQubWF4X3JlYWRzX2JlYXRzXFx0PSAwLFxcbitcXHR9LFxcbitcXHRbSVBBX1FTQl9NQVNURVJfUENJRV0gPSB7XFxuK1xcdFxcdC5tYXhfd3JpdGVzXFx0XFx0PSAwLFxcbitcXHRcXHQubWF4X3JlYWRzXFx0XFx0PSAwLFxcdC8qIG5vIGxpbWl0IChoYXJkd2FyZSBtYXgpICovXFxuK1xcdFxcdC5tYXhfcmVhZHNfYmVhdHNcXHQ9IDAsXFxuK1xcdH0sXFxuK307XFxuK1xcbisvKiBFbmRwb2ludCBjb25maWd1cmF0aW9uIGRhdGEgZm9yIGFuIFNvQyBoYXZpbmcgSVBBIHY1LjEgKi9cXG4rc3RhdGljIGNvbnN0IHN0cnVjdCBpcGFfZ3NpX2VuZHBvaW50X2RhdGEgaXBhX2dzaV9lbmRwb2ludF9kYXRhW10gPSB7XFxuK1xcdFtJUEFfRU5EUE9JTlRfQVBfQ09NTUFORF9UWF0gPSB7XFxuK1xcdFxcdC5lZV9pZFxcdFxcdD0gR1NJX0VFX0FQLFxcbitcXHRcXHQuY2hhbm5lbF9pZFxcdD0gMTIsXFxuK1xcdFxcdC5lbmRwb2ludF9pZFxcdD0gMTQsXFxuK1xcdFxcdC50b3dhcmRfaXBhXFx0PSB0cnVlLFxcbitcXHRcXHQuY2hhbm5lbCA9IHtcXG4rXFx0XFx0XFx0LnRyZV9jb3VudFxcdD0gMjU2LFxcbitcXHRcXHRcXHQuZXZlbnRfY291bnRcXHQ9IDI1NixcXG4rXFx0XFx0XFx0LnRsdl9jb3VudFxcdD0gMjAsXFxuK1xcdFxcdH0sXFxuK1xcdFxcdC5lbmRwb2ludCA9IHtcXG4rXFx0XFx0XFx0LmNvbmZpZyA9IHtcXG4rXFx0XFx0XFx0XFx0LnJlc291cmNlX2dyb3VwXFx0PSBJUEFfUlNSQ19HUk9VUF9TUkNfVUwsXFxuK1xcdFxcdFxcdFxcdC5kbWFfbW9kZVxcdD0gdHJ1ZSxcXG4rXFx0XFx0XFx0XFx0LmRtYV9lbmRwb2ludFxcdD0gSVBBX0VORFBPSU5UX0FQX0xBTl9SWCxcXG4rXFx0XFx0XFx0XFx0LnR4ID0ge1xcbitcXHRcXHRcXHRcXHRcXHQuc2VxX3R5cGUgPSBJUEFfU0VRX0RNQSxcXG4rXFx0XFx0XFx0XFx0fSxcXG4rXFx0XFx0XFx0fSxcXG4rXFx0XFx0fSxcXG4rXFx0fSxcXG4rXFx0W0lQQV9FTkRQT0lOVF9BUF9MQU5fUlhdID0ge1xcbitcXHRcXHQuZWVfaWRcXHRcXHQ9IEdTSV9FRV9BUCxcXG4rXFx0XFx0LmNoYW5uZWxfaWRcXHQ9IDEzLFxcbitcXHRcXHQuZW5kcG9pbnRfaWRcXHQ9IDE2LFxcbitcXHRcXHQudG93YXJkX2lwYVxcdD0gZmFsc2UsXFxuK1xcdFxcdC5jaGFubmVsID0ge1xcbitcXHRcXHRcXHQudHJlX2NvdW50XFx0PSAyNTYsXFxuK1xcdFxcdFxcdC5ldmVudF9jb3VudFxcdD0gMjU2LFxcbitcXHRcXHRcXHQudGx2X2NvdW50XFx0PSA5LFxcbitcXHRcXHR9LFxcbitcXHRcXHQuZW5kcG9pbnQgPSB7XFxuK1xcdFxcdFxcdC5jb25maWcgPSB7XFxuK1xcdFxcdFxcdFxcdC5yZXNvdXJjZV9ncm91cFxcdD0gSVBBX1JTUkNfR1JPVVBfRFNUX1VMLFxcbitcXHRcXHRcXHRcXHQuYWdncmVnYXRpb25cXHQ9IHRydWUsXFxuK1xcdFxcdFxcdFxcdC5zdGF0dXNfZW5hYmxlXFx0PSB0cnVlLFxcbitcXHRcXHRcXHRcXHQucnggPSB7XFxuK1xcdFxcdFxcdFxcdFxcdC5idWZmZXJfc2l6ZVxcdD0gODE5MixcXG4rXFx0XFx0XFx0XFx0XFx0LnBhZF9hbGlnblxcdD0gaWxvZzIoc2l6ZW9mKHUzMikpLFxcbitcXHRcXHRcXHRcXHRcXHQuYWdncl90aW1lX2xpbWl0ID0gNTAwLFxcbitcXHRcXHRcXHRcXHR9LFxcbitcXHRcXHRcXHR9LFxcbitcXHRcXHR9LFxcbitcXHR9LFxcbitcXHRbSVBBX0VORFBPSU5UX0FQX01PREVNX1RYXSA9IHtcXG4rXFx0XFx0LmVlX2lkXFx0XFx0PSBHU0lfRUVfQVAsXFxuK1xcdFxcdC5jaGFubmVsX2lkXFx0PSAxMSxcXG4rXFx0XFx0LmVuZHBvaW50X2lkXFx0PSAyLFxcbitcXHRcXHQudG93YXJkX2lwYVxcdD0gdHJ1ZSxcXG4rXFx0XFx0LmNoYW5uZWwgPSB7XFxuK1xcdFxcdFxcdC50cmVfY291bnRcXHQ9IDUxMixcXG4rXFx0XFx0XFx0LmV2ZW50X2NvdW50XFx0PSA1MTIsXFxuK1xcdFxcdFxcdC50bHZfY291bnRcXHQ9IDI1LFxcbitcXHRcXHR9LFxcbitcXHRcXHQuZW5kcG9pbnQgPSB7XFxuK1xcdFxcdFxcdC5maWx0ZXJfc3VwcG9ydFxcdD0gdHJ1ZSxcXG4rXFx0XFx0XFx0LmNvbmZpZyA9IHtcXG4rXFx0XFx0XFx0XFx0LnJlc291cmNlX2dyb3VwXFx0PSBJUEFfUlNSQ19HUk9VUF9TUkNfVUwsXFxuK1xcdFxcdFxcdFxcdC5jaGVja3N1bSAgICAgICA9IHRydWUsXFxuK1xcdFxcdFxcdFxcdC5xbWFwXFx0XFx0PSB0cnVlLFxcbitcXHRcXHRcXHRcXHQuc3RhdHVzX2VuYWJsZVxcdD0gdHJ1ZSxcXG4rXFx0XFx0XFx0XFx0LnR4ID0ge1xcbitcXHRcXHRcXHRcXHRcXHQuc2VxX3R5cGUgPSBJUEFfU0VRXzJfUEFTU19TS0lQX0xBU1RfVUMsXFxuK1xcdFxcdFxcdFxcdFxcdC5zdGF0dXNfZW5kcG9pbnQgPVxcbitcXHRcXHRcXHRcXHRcXHRcXHRJUEFfRU5EUE9JTlRfTU9ERU1fQVBfUlgsXFxuK1xcdFxcdFxcdFxcdH0sXFxuK1xcdFxcdFxcdH0sXFxuK1xcdFxcdH0sXFxuK1xcdH0sXFxuK1xcdFtJUEFfRU5EUE9JTlRfQVBfTU9ERU1fUlhdID0ge1xcbitcXHRcXHQuZWVfaWRcXHRcXHQ9IEdTSV9FRV9BUCxcXG4rXFx0XFx0LmNoYW5uZWxfaWRcXHQ9IDEsXFxuK1xcdFxcdC5lbmRwb2ludF9pZFxcdD0gMjMsXFxuK1xcdFxcdC50b3dhcmRfaXBhXFx0PSBmYWxzZSxcXG4rXFx0XFx0LmNoYW5uZWwgPSB7XFxuK1xcdFxcdFxcdC50cmVfY291bnRcXHQ9IDI1NixcXG4rXFx0XFx0XFx0LmV2ZW50X2NvdW50XFx0PSAyNTYsXFxuK1xcdFxcdFxcdC50bHZfY291bnRcXHQ9IDksXFxuK1xcdFxcdH0sXFxuK1xcdFxcdC5lbmRwb2ludCA9IHtcXG4rXFx0XFx0XFx0LmNvbmZpZyA9IHtcXG4rXFx0XFx0XFx0XFx0LnJlc291cmNlX2dyb3VwXFx0PSBJUEFfUlNSQ19HUk9VUF9EU1RfVUwsXFxuK1xcdFxcdFxcdFxcdC5jaGVja3N1bSAgICAgICA9IHRydWUsXFxuK1xcdFxcdFxcdFxcdC5xbWFwXFx0XFx0PSB0cnVlLFxcbitcXHRcXHRcXHRcXHQuYWdncmVnYXRpb25cXHQ9IHRydWUsXFxuK1xcdFxcdFxcdFxcdC5yeCA9IHtcXG4rXFx0XFx0XFx0XFx0XFx0LmJ1ZmZlcl9zaXplXFx0PSA4MTkyLFxcbitcXHRcXHRcXHRcXHRcXHQuYWdncl90aW1lX2xpbWl0ID0gNTAwLFxcbitcXHRcXHRcXHRcXHRcXHQuYWdncl9jbG9zZV9lb2ZcXHQ9IHRydWUsXFxuK1xcdFxcdFxcdFxcdH0sXFxuK1xcdFxcdFxcdH0sXFxuK1xcdFxcdH0sXFxuK1xcdH0sXFxuK1xcdFtJUEFfRU5EUE9JTlRfTU9ERU1fQVBfVFhdID0ge1xcbitcXHRcXHQuZWVfaWRcXHRcXHQ9IEdTSV9FRV9NT0RFTSxcXG4rXFx0XFx0LmNoYW5uZWxfaWRcXHQ9IDAsXFxuK1xcdFxcdC5lbmRwb2ludF9pZFxcdD0gMTIsXFxuK1xcdFxcdC50b3dhcmRfaXBhXFx0PSB0cnVlLFxcbitcXHRcXHQuZW5kcG9pbnQgPSB7XFxuK1xcdFxcdFxcdC5maWx0ZXJfc3VwcG9ydFxcdD0gdHJ1ZSxcXG4rXFx0XFx0fSxcXG4rXFx0fSxcXG4rXFx0W0lQQV9FTkRQT0lOVF9NT0RFTV9BUF9SWF0gPSB7XFxuK1xcdFxcdC5lZV9pZFxcdFxcdD0gR1NJX0VFX01PREVNLFxcbitcXHRcXHQuY2hhbm5lbF9pZFxcdD0gNyxcXG4rXFx0XFx0LmVuZHBvaW50X2lkXFx0PSAyMSxcXG4rXFx0XFx0LnRvd2FyZF9pcGFcXHQ9IGZhbHNlLFxcbitcXHR9LFxcbitcXHRbSVBBX0VORFBPSU5UX01PREVNX0RMX05MT19UWF0gPSB7XFxuK1xcdFxcdC5lZV9pZFxcdFxcdD0gR1NJX0VFX01PREVNLFxcbitcXHRcXHQuY2hhbm5lbF9pZFxcdD0gMixcXG4rXFx0XFx0LmVuZHBvaW50X2lkXFx0PSAxNSxcXG4rXFx0XFx0LnRvd2FyZF9pcGFcXHQ9IHRydWUsXFxuK1xcdFxcdC5lbmRwb2ludCA9IHtcXG4rXFx0XFx0XFx0LmZpbHRlcl9zdXBwb3J0XFx0PSB0cnVlLFxcbitcXHRcXHR9LFxcbitcXHR9LFxcbit9O1xcbitcXG4rLyogU291cmNlIHJlc291cmNlIGNvbmZpZ3VyYXRpb24gZGF0YSBmb3IgYW4gU29DIGhhdmluZyBJUEEgdjUuMSAqL1xcbitzdGF0aWMgY29uc3Qgc3RydWN0IGlwYV9yZXNvdXJjZSBpcGFfcmVzb3VyY2Vfc3JjW10gPSB7XFxuK1xcdFtJUEFfUkVTT1VSQ0VfVFlQRV9TUkNfUEtUX0NPTlRFWFRTXSA9IHtcXG4rXFx0XFx0LmxpbWl0c1tJUEFfUlNSQ19HUk9VUF9TUkNfVUxdID0ge1xcbitcXHRcXHRcXHQubWluID0gNyxcXHQubWF4ID0gMTIsXFxuK1xcdFxcdH0sXFxuK1xcdFxcdC5saW1pdHNbSVBBX1JTUkNfR1JPVVBfU1JDX1VSTExDXSA9IHtcXG4rXFx0XFx0XFx0Lm1pbiA9IDEsXFx0Lm1heCA9IDYzLFxcbitcXHRcXHR9LFxcbitcXHRcXHQubGltaXRzW0lQQV9SU1JDX0dST1VQX1NSQ19VX1JYX1FDXSA9IHtcXG4rXFx0XFx0XFx0Lm1pbiA9IDAsXFx0Lm1heCA9IDYzLFxcbitcXHRcXHR9LFxcbitcXHR9LFxcbitcXHRbSVBBX1JFU09VUkNFX1RZUEVfU1JDX0RFU0NSSVBUT1JfTElTVFNdID0ge1xcbitcXHRcXHQubGltaXRzW0lQQV9SU1JDX0dST1VQX1NSQ19VTF0gPSB7XFxuK1xcdFxcdFxcdC5taW4gPSAyMSxcXHQubWF4ID0gMjEsXFxuK1xcdFxcdH0sXFxuK1xcdFxcdC5saW1pdHNbSVBBX1JTUkNfR1JPVVBfU1JDX1VSTExDXSA9IHtcXG4rXFx0XFx0XFx0Lm1pbiA9IDEwLFxcdC5tYXggPSAxMCxcXG4rXFx0XFx0fSxcXG4rXFx0fSxcXG4rXFx0W0lQQV9SRVNPVVJDRV9UWVBFX1NSQ19ERVNDUklQVE9SX0JVRkZdID0ge1xcbitcXHRcXHQubGltaXRzW0lQQV9SU1JDX0dST1VQX1NSQ19VTF0gPSB7XFxuK1xcdFxcdFxcdC5taW4gPSAzMyxcXHQubWF4ID0gMzMsXFxuK1xcdFxcdH0sXFxuK1xcdFxcdC5saW1pdHNbSVBBX1JTUkNfR1JPVVBfU1JDX1VSTExDXSA9IHtcXG4rXFx0XFx0XFx0Lm1pbiA9IDIwLFxcdC5tYXggPSAyMCxcXG4rXFx0XFx0fSxcXG4rXFx0fSxcXG4rXFx0W0lQQV9SRVNPVVJDRV9UWVBFX1NSQ19IUFNfRE1BUlNdID0ge1xcbitcXHRcXHQubGltaXRzW0lQQV9SU1JDX0dST1VQX1NSQ19VTF0gPSB7XFxuK1xcdFxcdFxcdC5taW4gPSAwLFxcdC5tYXggPSA2MyxcXG4rXFx0XFx0fSxcXG4rXFx0XFx0LmxpbWl0c1tJUEFfUlNSQ19HUk9VUF9TUkNfVVJMTENdID0ge1xcbitcXHRcXHRcXHQubWluID0gMSxcXHQubWF4ID0gNjMsXFxuK1xcdFxcdH0sXFxuK1xcdFxcdC5saW1pdHNbSVBBX1JTUkNfR1JPVVBfU1JDX1VfUlhfUUNdID0ge1xcbitcXHRcXHRcXHQubWluID0gMCxcXHQubWF4ID0gNjMsXFxuK1xcdFxcdH0sXFxuK1xcdH0sXFxuK1xcdFtJUEFfUkVTT1VSQ0VfVFlQRV9TUkNfQUNLX0VOVFJJRVNdID0ge1xcbitcXHRcXHQubGltaXRzW0lQQV9SU1JDX0dST1VQX1NSQ19VTF0gPSB7XFxuK1xcdFxcdFxcdC5taW4gPSAzOCxcXHQubWF4ID0gMzgsXFxuK1xcdFxcdH0sXFxuK1xcdFxcdC5saW1pdHNbSVBBX1JTUkNfR1JPVVBfU1JDX1VSTExDXSA9IHtcXG4rXFx0XFx0XFx0Lm1pbiA9IDE2LFxcdC5tYXggPSAxNixcXG4rXFx0XFx0fSxcXG4rXFx0fSxcXG4rfTtcXG4rXFxuKy8qIERlc3RpbmF0aW9uIHJlc291cmNlIGNvbmZpZ3VyYXRpb24gZGF0YSBmb3IgYW4gU29DIGhhdmluZyBJUEEgdjUuMSAqL1xcbitzdGF0aWMgY29uc3Qgc3RydWN0IGlwYV9yZXNvdXJjZSBpcGFfcmVzb3VyY2VfZHN0W10gPSB7XFxuK1xcdFtJUEFfUkVTT1VSQ0VfVFlQRV9EU1RfREFUQV9TRUNUT1JTXSA9IHtcXG4rXFx0XFx0LmxpbWl0c1tJUEFfUlNSQ19HUk9VUF9EU1RfVUxdID0ge1xcbitcXHRcXHRcXHQubWluID0gNixcXHQubWF4ID0gNixcXG4rXFx0XFx0fSxcXG4rXFx0XFx0LmxpbWl0c1tJUEFfUlNSQ19HUk9VUF9EU1RfRExdID0ge1xcbitcXHRcXHRcXHQubWluID0gNSxcXHQubWF4ID0gNSxcXG4rXFx0XFx0fSxcXG4rXFx0XFx0LmxpbWl0c1tJUEFfUlNSQ19HUk9VUF9EU1RfRFJCX0lQXSA9IHtcXG4rXFx0XFx0XFx0Lm1pbiA9IDM5LFxcdC5tYXggPSAzOSxcXG4rXFx0XFx0fSxcXG4rXFx0fSxcXG4rXFx0W0lQQV9SRVNPVVJDRV9UWVBFX0RTVF9EUFNfRE1BUlNdID0ge1xcbitcXHRcXHQubGltaXRzW0lQQV9SU1JDX0dST1VQX0RTVF9VTF0gPSB7XFxuK1xcdFxcdFxcdC5taW4gPSAwLFxcdC5tYXggPSAzLFxcbitcXHRcXHR9LFxcbitcXHRcXHQubGltaXRzW0lQQV9SU1JDX0dST1VQX0RTVF9ETF0gPSB7XFxuK1xcdFxcdFxcdC5taW4gPSAwLFxcdC5tYXggPSAzLFxcbitcXHRcXHR9LFxcbitcXHR9LFxcbitcXHRbSVBBX1JFU09VUkNFX1RZUEVfRFNUX1VMU09fU0VHTUVOVFNdID0ge1xcbitcXHRcXHQubGltaXRzW0lQQV9SU1JDX0dST1VQX0RTVF9VTF0gPSB7XFxuK1xcdFxcdFxcdC5taW4gPSAwLFxcdC5tYXggPSA2MyxcXG4rXFx0XFx0fSxcXG4rXFx0XFx0LmxpbWl0c1tJUEFfUlNSQ19HUk9VUF9EU1RfRExdID0ge1xcbitcXHRcXHRcXHQubWluID0gMCxcXHQubWF4ID0gNjMsXFxuK1xcdFxcdH0sXFxuK1xcdH0sXFxuK307XFxuK1xcbisvKiBSZXNvdXJjZSBjb25maWd1cmF0aW9uIGRhdGEgZm9yIGFuIFNvQyBoYXZpbmcgSVBBIHY1LjEgKi9cXG4rc3RhdGljIGNvbnN0IHN0cnVjdCBpcGFfcmVzb3VyY2VfZGF0YSBpcGFfcmVzb3VyY2VfZGF0YSA9IHtcXG4rXFx0LnJzcmNfZ3JvdXBfZHN0X2NvdW50XFx0PSBJUEFfUlNSQ19HUk9VUF9EU1RfQ09VTlQsXFxuK1xcdC5yc3JjX2dyb3VwX3NyY19jb3VudFxcdD0gSVBBX1JTUkNfR1JPVVBfU1JDX0NPVU5ULFxcbitcXHQucmVzb3VyY2Vfc3JjX2NvdW50XFx0PSBBUlJBWV9TSVpFKGlwYV9yZXNvdXJjZV9zcmMpLFxcbitcXHQucmVzb3VyY2Vfc3JjXFx0XFx0PSBpcGFfcmVzb3VyY2Vfc3JjLFxcbitcXHQucmVzb3VyY2VfZHN0X2NvdW50XFx0PSBBUlJBWV9TSVpFKGlwYV9yZXNvdXJjZV9kc3QpLFxcbitcXHQucmVzb3VyY2VfZHN0XFx0XFx0PSBpcGFfcmVzb3VyY2VfZHN0LFxcbit9O1xcbitcXG4rLyogSVBBLXJlc2lkZW50IG1lbW9yeSByZWdpb24gZGF0YSBmb3IgYW4gU29DIGhhdmluZyBJUEEgdjUuMSAqL1xcbitzdGF0aWMgY29uc3Qgc3RydWN0IGlwYV9tZW0gaXBhX21lbV9sb2NhbF9kYXRhW10gPSB7XFxuK1xcdHtcXG4rXFx0XFx0LmlkXFx0XFx0PSBJUEFfTUVNX1VDX0VWRU5UX1JJTkcsXFxuK1xcdFxcdC5vZmZzZXRcXHRcXHQ9IDB4MDAwMCxcXG4rXFx0XFx0LnNpemVcXHRcXHQ9IDB4MTAwMCxcXG4rXFx0XFx0LmNhbmFyeV9jb3VudFxcdD0gMCxcXG4rXFx0fSxcXG4rXFx0e1xcbitcXHRcXHQuaWRcXHRcXHQ9IElQQV9NRU1fVUNfU0hBUkVELFxcbitcXHRcXHQub2Zmc2V0XFx0XFx0PSAweDEwMDAsXFxuK1xcdFxcdC5zaXplXFx0XFx0PSAweDAwODAsXFxuK1xcdFxcdC5jYW5hcnlfY291bnRcXHQ9IDAsXFxuK1xcdH0sXFxuK1xcdHtcXG4rXFx0XFx0LmlkXFx0XFx0PSBJUEFfTUVNX1VDX0lORk8sXFxuK1xcdFxcdC5vZmZzZXRcXHRcXHQ9IDB4MTA4MCxcXG4rXFx0XFx0LnNpemVcXHRcXHQ9IDB4MDIwMCxcXG4rXFx0XFx0LmNhbmFyeV9jb3VudFxcdD0gMCxcXG4rXFx0fSxcXG4rXFx0e1xcbitcXHRcXHQuaWRcXHRcXHQ9IElQQV9NRU1fVjRfRklMVEVSX0hBU0hFRCxcXG4rXFx0XFx0Lm9mZnNldFxcdFxcdD0gMHgxMjg4LFxcbitcXHRcXHQuc2l6ZVxcdFxcdD0gMHgwMDc4LFxcbitcXHRcXHQuY2FuYXJ5X2NvdW50XFx0PSAyLFxcbitcXHR9LFxcbitcXHR7XFxuK1xcdFxcdC5pZFxcdFxcdD0gSVBBX01FTV9WNF9GSUxURVIsXFxuK1xcdFxcdC5vZmZzZXRcXHRcXHQ9IDB4MTMwOCxcXG4rXFx0XFx0LnNpemVcXHRcXHQ9IDB4MDA3OCxcXG4rXFx0XFx0LmNhbmFyeV9jb3VudFxcdD0gMixcXG4rXFx0fSxcXG4rXFx0e1xcbitcXHRcXHQuaWRcXHRcXHQ9IElQQV9NRU1fVjZfRklMVEVSX0hBU0hFRCxcXG4rXFx0XFx0Lm9mZnNldFxcdFxcdD0gMHgxMzg4LFxcbitcXHRcXHQuc2l6ZVxcdFxcdD0gMHgwMDc4LFxcbitcXHRcXHQuY2FuYXJ5X2NvdW50XFx0PSAyLFxcbitcXHR9LFxcbitcXHR7XFxuK1xcdFxcdC5pZFxcdFxcdD0gSVBBX01FTV9WNl9GSUxURVIsXFxuK1xcdFxcdC5vZmZzZXRcXHRcXHQ9IDB4MTQwOCxcXG4rXFx0XFx0LnNpemVcXHRcXHQ9IDB4MDA3OCxcXG4rXFx0XFx0LmNhbmFyeV9jb3VudFxcdD0gMixcXG4rXFx0fSxcXG4rXFx0e1xcbitcXHRcXHQuaWRcXHRcXHQ9IElQQV9NRU1fVjRfUk9VVEVfSEFTSEVELFxcbitcXHRcXHQub2Zmc2V0XFx0XFx0PSAweDE0ODgsXFxuK1xcdFxcdC5zaXplXFx0XFx0PSAweDAwOTgsXFxuK1xcdFxcdC5jYW5hcnlfY291bnRcXHQ9IDIsXFxuK1xcdH0sXFxuK1xcdHtcXG4rXFx0XFx0LmlkXFx0XFx0PSBJUEFfTUVNX1Y0X1JPVVRFLFxcbitcXHRcXHQub2Zmc2V0XFx0XFx0PSAweDE1MjgsXFxuK1xcdFxcdC5zaXplXFx0XFx0PSAweDAwOTgsXFxuK1xcdFxcdC5jYW5hcnlfY291bnRcXHQ9IDIsXFxuK1xcdH0sXFxuK1xcdHtcXG4rXFx0XFx0LmlkXFx0XFx0PSBJUEFfTUVNX1Y2X1JPVVRFX0hBU0hFRCxcXG4rXFx0XFx0Lm9mZnNldFxcdFxcdD0gMHgxNWM4LFxcbitcXHRcXHQuc2l6ZVxcdFxcdD0gMHgwMDk4LFxcbitcXHRcXHQuY2FuYXJ5X2NvdW50XFx0PSAyLFxcbitcXHR9LFxcbitcXHR7XFxuK1xcdFxcdC5pZFxcdFxcdD0gSVBBX01FTV9WNl9ST1VURSxcXG4rXFx0XFx0Lm9mZnNldFxcdFxcdD0gMHgxNjY4LFxcbitcXHRcXHQuc2l6ZVxcdFxcdD0gMHgwMDk4LFxcbitcXHRcXHQuY2FuYXJ5X2NvdW50XFx0PSAyLFxcbitcXHR9LFxcbitcXHR7XFxuK1xcdFxcdC5pZFxcdFxcdD0gSVBBX01FTV9NT0RFTV9IRUFERVIsXFxuK1xcdFxcdC5vZmZzZXRcXHRcXHQ9IDB4MTcwOCxcXG4rXFx0XFx0LnNpemVcXHRcXHQ9IDB4MDI0MCxcXG4rXFx0XFx0LmNhbmFyeV9jb3VudFxcdD0gMixcXG4rXFx0fSxcXG4rXFx0e1xcbitcXHRcXHQuaWRcXHRcXHQ9IElQQV9NRU1fQVBfSEVBREVSLFxcbitcXHRcXHQub2Zmc2V0XFx0XFx0PSAweDE5NDgsXFxuK1xcdFxcdC5zaXplXFx0XFx0PSAweDAxZTAsXFxuK1xcdFxcdC5jYW5hcnlfY291bnRcXHQ9IDAsXFxuK1xcdH0sXFxuK1xcdHtcXG4rXFx0XFx0LmlkXFx0XFx0PSBJUEFfTUVNX01PREVNX1BST0NfQ1RYLFxcbitcXHRcXHQub2Zmc2V0XFx0XFx0PSAweDFiNDAsXFxuK1xcdFxcdC5zaXplXFx0XFx0PSAweDBiMjAsXFxuK1xcdFxcdC5jYW5hcnlfY291bnRcXHQ9IDIsXFxuK1xcdH0sXFxuK1xcdHtcXG4rXFx0XFx0LmlkXFx0XFx0PSBJUEFfTUVNX0FQX1BST0NfQ1RYLFxcbitcXHRcXHQub2Zmc2V0XFx0XFx0PSAweDI2NjAsXFxuK1xcdFxcdC5zaXplXFx0XFx0PSAweDAyMDAsXFxuK1xcdFxcdC5jYW5hcnlfY291bnRcXHQ9IDAsXFxuK1xcdH0sXFxuK1xcdHtcXG4rXFx0XFx0LmlkXFx0XFx0PSBJUEFfTUVNX1NUQVRTX1FVT1RBX01PREVNLFxcbitcXHRcXHQub2Zmc2V0XFx0XFx0PSAweDI4NjgsXFxuK1xcdFxcdC5zaXplXFx0XFx0PSAweDAwNjAsXFxuK1xcdFxcdC5jYW5hcnlfY291bnRcXHQ9IDIsXFxuK1xcdH0sXFxuK1xcdHtcXG4rXFx0XFx0LmlkXFx0XFx0PSBJUEFfTUVNX1NUQVRTX1FVT1RBX0FQLFxcbitcXHRcXHQub2Zmc2V0XFx0XFx0PSAweDI4YzgsXFxuK1xcdFxcdC5zaXplXFx0XFx0PSAweDAwNDgsXFxuK1xcdFxcdC5jYW5hcnlfY291bnRcXHQ9IDAsXFxuK1xcdH0sXFxuK1xcdHtcXG4rXFx0XFx0LmlkXFx0XFx0PSBJUEFfTUVNX1NUQVRTX1RFVEhFUklORyxcXG4rXFx0XFx0Lm9mZnNldFxcdFxcdD0gMHgyOTEwLFxcbitcXHRcXHQuc2l6ZVxcdFxcdD0gMHgwM2MwLFxcbitcXHRcXHQuY2FuYXJ5X2NvdW50XFx0PSAwLFxcbitcXHR9LFxcbitcXHR7XFxuK1xcdFxcdC5pZFxcdFxcdD0gSVBBX01FTV9BUF9WNF9GSUxURVIsXFxuK1xcdFxcdC5vZmZzZXRcXHRcXHQ9IDB4MjliOCxcXG4rXFx0XFx0LnNpemVcXHRcXHQ9IDB4MDE4OCxcXG4rXFx0XFx0LmNhbmFyeV9jb3VudFxcdD0gMixcXG4rXFx0fSxcXG4rXFx0e1xcbitcXHRcXHQuaWRcXHRcXHQ9IElQQV9NRU1fQVBfVjZfRklMVEVSLFxcbitcXHRcXHQub2Zmc2V0XFx0XFx0PSAweDJiNDAsXFxuK1xcdFxcdC5zaXplXFx0XFx0PSAweDAyMjgsXFxuK1xcdFxcdC5jYW5hcnlfY291bnRcXHQ9IDAsXFxuK1xcdH0sXFxuK1xcdHtcXG4rXFx0XFx0LmlkXFx0XFx0PSBJUEFfTUVNX1NUQVRTX0ZJTFRFUl9ST1VURSxcXG4rXFx0XFx0Lm9mZnNldFxcdFxcdD0gMHgyY2QwLFxcbitcXHRcXHQuc2l6ZVxcdFxcdD0gMHgwYmEwLFxcbitcXHRcXHQuY2FuYXJ5X2NvdW50XFx0PSAyLFxcbitcXHR9LFxcbitcXHR7XFxuK1xcdFxcdC5pZFxcdFxcdD0gSVBBX01FTV9TVEFUU19EUk9QLFxcbitcXHRcXHQub2Zmc2V0XFx0XFx0PSAweDM4NzAsXFxuK1xcdFxcdC5zaXplXFx0XFx0PSAweDAwMjAsXFxuK1xcdFxcdC5jYW5hcnlfY291bnRcXHQ9IDAsXFxuK1xcdH0sXFxuK1xcdHtcXG4rXFx0XFx0LmlkXFx0XFx0PSBJUEFfTUVNX01PREVNLFxcbitcXHRcXHQub2Zmc2V0XFx0XFx0PSAweDM4OTgsXFxuK1xcdFxcdC5zaXplXFx0XFx0PSAweDBkNDgsXFxuK1xcdFxcdC5jYW5hcnlfY291bnRcXHQ9IDIsXFxuK1xcdH0sXFxuK1xcdHtcXG4rXFx0XFx0LmlkXFx0XFx0PSBJUEFfTUVNX05BVF9UQUJMRSxcXG4rXFx0XFx0Lm9mZnNldFxcdFxcdD0gMHg0NWUwLFxcbitcXHRcXHQuc2l6ZVxcdFxcdD0gMHgwOTAwLFxcbitcXHRcXHQuY2FuYXJ5X2NvdW50XFx0PSAwLFxcbitcXHR9LFxcbitcXHR7XFxuK1xcdFxcdC5pZFxcdFxcdD0gSVBBX01FTV9QRE5fQ09ORklHLFxcbitcXHRcXHQub2Zmc2V0XFx0XFx0PSAweDRlZTgsXFxuK1xcdFxcdC5zaXplXFx0XFx0PSAweDAxMDAsXFxuK1xcdFxcdC5jYW5hcnlfY291bnRcXHQ9IDIsXFxuK1xcdH0sXFxuK307XFxuK1xcbisvKiBNZW1vcnkgY29uZmlndXJhdGlvbiBkYXRhIGZvciBhbiBTb0MgaGF2aW5nIElQQSB2NS4xICovXFxuK3N0YXRpYyBjb25zdCBzdHJ1Y3QgaXBhX21lbV9kYXRhIGlwYV9tZW1fZGF0YSA9IHtcXG4rXFx0LmxvY2FsX2NvdW50XFx0PSBBUlJBWV9TSVpFKGlwYV9tZW1fbG9jYWxfZGF0YSksXFxuK1xcdC5sb2NhbFxcdFxcdD0gaXBhX21lbV9sb2NhbF9kYXRhLFxcbitcXHQuaW1lbV9hZGRyXFx0PSAweDE0NmE4MDAwLFxcbitcXHQuaW1lbV9zaXplXFx0PSAweDAwMDAyMDAwLFxcbitcXHQvKlxcbitcXHQgKiBXaGlsZSB0aGlzIHZhbHVlIGlzIDB4YjAwMCBvbiBTTTg0NTAgYW5kIDB4OTAwMCBvbiBTTTg0NzUsXFxuK1xcdCAqIGl0IGhhcyBiZWVuIGxlZnQgc2V0IHRvIDB4OTAwMCBmb3IgY29tcGF0aWJpbGl0eSB3aXRoIFNNODQ3NVxcbitcXHQgKi9cXG4rXFx0LnNtZW1fc2l6ZVxcdD0gMHgwMDAwOTAwMCxcXG4rfTtcXG4rXFxuKy8qIEludGVyY29ubmVjdCByYXRlcyBhcmUgaW4gMTAwMCBieXRlL3NlY29uZCB1bml0cyAqL1xcbitzdGF0aWMgY29uc3Qgc3RydWN0IGlwYV9pbnRlcmNvbm5lY3RfZGF0YSBpcGFfaW50ZXJjb25uZWN0X2RhdGFbXSA9IHtcXG4rXFx0e1xcbitcXHRcXHQubmFtZVxcdFxcdFxcdD0gXFxcIm1lbW9yeVxcXCIsXFxuK1xcdFxcdC5wZWFrX2JhbmR3aWR0aFxcdFxcdD0gMTkwMDAwMCxcXHQvKiAxLjkgR0JwcyAqL1xcbitcXHRcXHQuYXZlcmFnZV9iYW5kd2lkdGhcXHQ9IDU5MDAwMCxcXHQvKiA1OTAgTUJwcyAqL1xcbitcXHR9LFxcbitcXHQvKiBBdmVyYWdlIHJhdGUgaXMgdW51c2VkIGZvciB0aGUgbmV4dCBpbnRlcmNvbm5lY3QgKi9cXG4rXFx0e1xcbitcXHRcXHQubmFtZVxcdFxcdFxcdD0gXFxcImNvbmZpZ1xcXCIsXFxuK1xcdFxcdC5wZWFrX2JhbmR3aWR0aFxcdFxcdD0gNzY4MDAsXFx0LyogNzYuOCBNQnBzICovXFxuK1xcdFxcdC5hdmVyYWdlX2JhbmR3aWR0aFxcdD0gMCxcXHRcXHQvKiB1bnVzZWQgKi9cXG4rXFx0fSxcXG4rfTtcXG4rXFxuKy8qIENsb2NrIGFuZCBpbnRlcmNvbm5lY3QgY29uZmlndXJhdGlvbiBkYXRhIGZvciBhbiBTb0MgaGF2aW5nIElQQSB2NS4xICovXFxuK3N0YXRpYyBjb25zdCBzdHJ1Y3QgaXBhX3Bvd2VyX2RhdGEgaXBhX3Bvd2VyX2RhdGEgPSB7XFxuK1xcdC5jb3JlX2Nsb2NrX3JhdGVcXHQ9IDEyMCAqIDEwMDAgKiAxMDAwLFxcdC8qIEh6ICovXFxuK1xcdC5pbnRlcmNvbm5lY3RfY291bnRcXHQ9IEFSUkFZX1NJWkUoaXBhX2ludGVyY29ubmVjdF9kYXRhKSxcXG4rXFx0LmludGVyY29ubmVjdF9kYXRhXFx0PSBpcGFfaW50ZXJjb25uZWN0X2RhdGEsXFxuK307XFxuK1xcbisvKiBDb25maWd1cmF0aW9uIGRhdGEgZm9yIGFuIFNvQyBoYXZpbmcgSVBBIHY1LjEuICovXFxuK2NvbnN0IHN0cnVjdCBpcGFfZGF0YSBpcGFfZGF0YV92NV8xID0ge1xcbitcXHQudmVyc2lvblxcdFxcdD0gSVBBX1ZFUlNJT05fNV8xLFxcbitcXHQucXNiX2NvdW50XFx0XFx0PSBBUlJBWV9TSVpFKGlwYV9xc2JfZGF0YSksXFxuK1xcdC5xc2JfZGF0YVxcdFxcdD0gaXBhX3FzYl9kYXRhLFxcbitcXHQubW9kZW1fcm91dGVfY291bnRcXHQ9IDExLFxcbitcXHQuZW5kcG9pbnRfY291bnRcXHRcXHQ9IEFSUkFZX1NJWkUoaXBhX2dzaV9lbmRwb2ludF9kYXRhKSxcXG4rXFx0LmVuZHBvaW50X2RhdGFcXHRcXHQ9IGlwYV9nc2lfZW5kcG9pbnRfZGF0YSxcXG4rXFx0LnJlc291cmNlX2RhdGFcXHRcXHQ9IFxcdTAwMjZpcGFfcmVzb3VyY2VfZGF0YSxcXG4rXFx0Lm1lbV9kYXRhXFx0XFx0PSBcXHUwMDI2aXBhX21lbV9kYXRhLFxcbitcXHQucG93ZXJfZGF0YVxcdFxcdD0gXFx1MDAyNmlwYV9wb3dlcl9kYXRhLFxcbit9O1xcbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9pcGEvZ3NpX3JlZy5jIGIvZHJpdmVycy9uZXQvaXBhL2dzaV9yZWcuY1xcbmluZGV4IGUxM2NmODM1YTAxM2M5Li5hNTcwNzJiYTRiZWY2ZiAxMDA2NDRcXG4tLS0gYS9kcml2ZXJzL25ldC9pcGEvZ3NpX3JlZy5jXFxuKysrIGIvZHJpdmVycy9uZXQvaXBhL2dzaV9yZWcuY1xcbkBAIC0xMTAsNiArMTEwLDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCByZWdzICpnc2lfcmVncyhzdHJ1Y3QgZ3NpICpnc2kpXFxuIFxcdFxcdHJldHVybiBcXHUwMDI2Z3NpX3JlZ3NfdjRfMTE7XFxuIFxcbiBcXHRjYXNlIElQQV9WRVJTSU9OXzVfMDpcXG4rXFx0Y2FzZSBJUEFfVkVSU0lPTl81XzE6XFxuIFxcdGNhc2UgSVBBX1ZFUlNJT05fNV8yOlxcbiBcXHRjYXNlIElQQV9WRVJTSU9OXzVfNTpcXG4gXFx0XFx0cmV0dXJuIFxcdTAwMjZnc2lfcmVnc192NV8wO1xcbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9pcGEvaXBhX2RhdGEuaCBiL2RyaXZlcnMvbmV0L2lwYS9pcGFfZGF0YS5oXFxuaW5kZXggM2ViOWRjMmNlMzM5OGQuLmZlNmY3ZDViZmU4OGM5IDEwMDY0NFxcbi0tLSBhL2RyaXZlcnMvbmV0L2lwYS9pcGFfZGF0YS5oXFxuKysrIGIvZHJpdmVycy9uZXQvaXBhL2lwYV9kYXRhLmhcXG5AQCAtMjUzLDYgKzI1Myw3IEBAIGV4dGVybiBjb25zdCBzdHJ1Y3QgaXBhX2RhdGEgaXBhX2RhdGFfdjRfNztcXG4gZXh0ZXJuIGNvbnN0IHN0cnVjdCBpcGFfZGF0YSBpcGFfZGF0YV92NF85O1xcbiBleHRlcm4gY29uc3Qgc3RydWN0IGlwYV9kYXRhIGlwYV9kYXRhX3Y0XzExO1xcbiBleHRlcm4gY29uc3Qgc3RydWN0IGlwYV9kYXRhIGlwYV9kYXRhX3Y1XzA7XFxuK2V4dGVybiBjb25zdCBzdHJ1Y3QgaXBhX2RhdGEgaXBhX2RhdGFfdjVfMTtcXG4gZXh0ZXJuIGNvbnN0IHN0cnVjdCBpcGFfZGF0YSBpcGFfZGF0YV92NV8yO1xcbiBleHRlcm4gY29uc3Qgc3RydWN0IGlwYV9kYXRhIGlwYV9kYXRhX3Y1XzU7XFxuIFxcbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9pcGEvaXBhX21haW4uYyBiL2RyaXZlcnMvbmV0L2lwYS9pcGFfbWFpbi5jXFxuaW5kZXggNzg4ZGQ5OWFmMmE0ZGMuLjZjNDQ5MDMyYWU0NTkyIDEwMDY0NFxcbi0tLSBhL2RyaXZlcnMvbmV0L2lwYS9pcGFfbWFpbi5jXFxuKysrIGIvZHJpdmVycy9uZXQvaXBhL2lwYV9tYWluLmNcXG5AQCAtNjY5LDYgKzY2OSwxMCBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IG9mX2RldmljZV9pZCBpcGFfbWF0Y2hbXSA9IHtcXG4gXFx0XFx0LmNvbXBhdGlibGVcXHQ9IFxcXCJxY29tLHNkeDY1LWlwYVxcXCIsXFxuIFxcdFxcdC5kYXRhXFx0XFx0PSBcXHUwMDI2aXBhX2RhdGFfdjVfMCxcXG4gXFx0fSxcXG4rXFx0e1xcbitcXHRcXHQuY29tcGF0aWJsZVxcdD0gXFxcInFjb20sc204NDUwLWlwYVxcXCIsXFxuK1xcdFxcdC5kYXRhXFx0XFx0PSBcXHUwMDI2aXBhX2RhdGFfdjVfMSxcXG4rXFx0fSxcXG4gXFx0e1xcbiBcXHRcXHQuY29tcGF0aWJsZVxcdD0gXFxcInFjb20sbWlsb3MtaXBhXFxcIixcXG4gXFx0XFx0LmRhdGFcXHRcXHQ9IFxcdTAwMjZpcGFfZGF0YV92NV8yLFxcbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9pcGEvaXBhX3JlZy5jIGIvZHJpdmVycy9uZXQvaXBhL2lwYV9yZWcuY1xcbmluZGV4IDMwYmQ2OWY0YzE0N2NkLi41ZjIyY2E2Mjk1YjE2NSAxMDA2NDRcXG4tLS0gYS9kcml2ZXJzL25ldC9pcGEvaXBhX3JlZy5jXFxuKysrIGIvZHJpdmVycy9uZXQvaXBhL2lwYV9yZWcuY1xcbkBAIC0xMjUsNiArMTI1LDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCByZWdzICppcGFfcmVncyhlbnVtIGlwYV92ZXJzaW9uIHZlcnNpb24pXFxuIFxcdGNhc2UgSVBBX1ZFUlNJT05fNF8xMTpcXG4gXFx0XFx0cmV0dXJuIFxcdTAwMjZpcGFfcmVnc192NF8xMTtcXG4gXFx0Y2FzZSBJUEFfVkVSU0lPTl81XzA6XFxuK1xcdGNhc2UgSVBBX1ZFUlNJT05fNV8xOlxcbiBcXHRjYXNlIElQQV9WRVJTSU9OXzVfMjpcXG4gXFx0XFx0cmV0dXJuIFxcdTAwMjZpcGFfcmVnc192NV8wO1xcbiBcXHRjYXNlIElQQV9WRVJTSU9OXzVfNTpcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDYtMjNUMDI6MDA6MjguMzc3Mjg3ODE4WiIsIlNlcSI6MiwiTmVzdGluZyI6MSwiVHlwZSI6ImFnZW50IiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjozMDEzOTI2OTcxMiwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBudWxsLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggYWRkcyBzdXBwb3J0IGZvciBhIG5ldyBoYXJkd2FyZSB2ZXJzaW9uICh2NS4xKSBvZiB0aGUgUXVhbGNvbW0gSVAgQWNjZWxlcmF0b3IgKElQQSkgZm9yIHRoZSBTTTg0NTAgU29DLiBJdCBvbmx5IGludHJvZHVjZXMgbmV3IGRhdGEgc3RydWN0dXJlcywgZGV2aWNlIHRyZWUgYmluZGluZ3MsIGFuZCByZWdpc3RlcnMgdGhlIG5ldyBjb21wYXRpYmxlIHN0cmluZy4gVGhlIElQQSBpcyBhIGhhcmR3YXJlIGJsb2NrIHNwZWNpZmljIHRvIFF1YWxjb21tIFNvQ3MgYW5kIGlzIG5vdCBlbXVsYXRlZCBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBRRU1VIG9yIEdDRSwgbWFraW5nIHRoaXMgY29kZSB1bnJlYWNoYWJsZSBhbmQgdW50ZXN0YWJsZSBkdXJpbmcgZnV6emluZy5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogZmFsc2Vcbn0iLCJJbnN0cnVjdGlvbiI6IllvdSBhcmUgYW4gZXhwZXJ0IExpbnV4IGtlcm5lbCBtYWludGFpbmVyLlxuWW91ciBqb2IgaXMgdG8gcmV2aWV3IGEgcHJvdmlkZWQgcGF0Y2ggc2VyaWVzIGFuZCBkZXRlcm1pbmVcbmlmIGl0IG1ha2VzIGZ1bmN0aW9uYWwgY2hhbmdlcyB0byB0aGUga2VybmVsIHRoYXQgc2hvdWxkIGJlIGZ1enplZC5cblxuSU1QT1JUQU5UOiBUaGUgY2hhbmdlcyBoYXZlIEFMUkVBRFkgYmVlbiBhcHBsaWVkIGFuZCBjb21taXR0ZWQgYXMgdGhlIEhFQUQgY29tbWl0IGluXG55b3VyIHdvcmtzcGFjZS4gRG8gTk9UIHJlbHkgb24geW91ciBpbnRlcm5hbCBrbm93bGVkZ2Ugb2YgdGhlIGtlcm5lbC4gWW91IG11c3QgYWN0aXZlbHlcbnVzZSB5b3VyIGNvZGUgYWNjZXNzIHRvb2xzIHRvIGV4YW1pbmUgdGhlIGFjdHVhbCBzb3VyY2UgY29kZSBhbmQgY29uZmlybSBhbnkgYXNzdW1wdGlvbnMuXG5cblJldHVybiBXb3J0aEZ1enppbmc9ZmFsc2UgaWYgdGhlIHBhdGNoIG9ubHkgY29udGFpbnM6XG4tIE1vZGlmaWNhdGlvbnMgdG8gRG9jdW1lbnRhdGlvbi8sIEtjb25maWcgZmlsZXMsIG9yIGNvZGUgY29tbWVudHMuXG4tIFB1cmVseSBkZWNvcmF0aXZlIGNoYW5nZXMsIHN1Y2ggYXMgbG9nZ2luZyAoZS5nLiwgcHJfZXJyLCBwcmludGspIG9yIHRyYWNlcG9pbnRzLlxuLSBDaGFuZ2VzIHRvIG51bWVyaWMgY29uc3RhbnRzIG9yIG1hY3JvcyB0aGF0IGRvIG5vdCBmdW5jdGlvbmFsbHkgYWx0ZXIgZXhlY3V0aW9uIGZsb3cuXG4tIENvZGUgcGF0aHMgdGhhdCBhcmUgaW1wb3NzaWJsZSB0byByZWFjaCBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBHQ0Ugb3IgUUVNVSxcbmV2ZW4gd2hlbiB1dGlsaXppbmcgc29mdHdhcmUtZW11bGF0ZWQgaGFyZHdhcmUgKGUuZy4sIHVzYiBnYWRnZXQsIG1hYzgwMjExX2h3c2ltKS5cblxuSWYgaXQgbW9kaWZpZXMgcmVhY2hhYmxlIGNvcmUga2VybmVsIGxvZ2ljLCBkcml2ZXJzLCBvciBhcmNoaXRlY3R1cmVzLCB1c2UgeW91ciBjb2RlIHNlYXJjaFxudG9vbHMgdG8gdmVyaWZ5IHRoZSBjb2RlIGNhbiBiZSBleGVjdXRlZCwgdGhlbiByZXR1cm4gV29ydGhGdXp6aW5nPXRydWUuXG5cbldoZW4gcmV0dXJuaW5nIFdvcnRoRnV6emluZz10cnVlLCB5b3UgTVVTVCBBTFNPOlxuMS4gRXh0cmFjdCBhbnkgc3BlY2lmaWMga2VybmVsIGZ1bmN0aW9ucyB0aGF0IHNob3VsZCBiZSBoZWF2aWx5IGZ1enplZCBpbnRvIEZvY3VzU3ltYm9scy5cbiAgIEF2b2lkIGxpc3RpbmcgZ2VuZXJpYyBob3QtcGF0aCBmdW5jdGlvbnMgdG8gcHJldmVudCBza2V3ZWQgdGVzdCBkaXN0cmlidXRpb25zLlxuMi4gSWRlbnRpZnkgYW55IHNwZWNpZmljIENPTkZJR18gb3B0aW9ucyByZXF1aXJlZCB0byBwcm9wZXJseSB0ZXN0IHRoaXMgbmV3L21vZGlmaWVkIGZlYXR1cmUuXG4gICBHbyBhbmQgbG9vayBpbnRvIHRoZSBLY29uZmlnIGZpbGVzIGFuZCBjaGVjayBmb3IgaWZkZWZzIGFyb3VuZCB0aGUgY29kZSwgZG8gbm90IG1ha2UgYXNzdW1wdGlvbnMuXG4gICBEbyBub3QgbGlzdCB0b28gZ2VuZXJpYyBjb25maWdzICh3ZSBhbHJlYWR5IGhhdmUgdGhlbSBlbmFibGVkKS4gT25seSBsaXN0IHRob3NlIHRoYXRcbiAgIHNwZWNpZmljYWxseSBjb3ZlciB0aGUgbW9kaWZpZWQgY29kZS4gTGlzdCB0aGVtIGluIHRoZSBFbmFibGVDb25maWdzIG91dHB1dCBhcnJheSxcbiAgIGFuZCBETyBOT1QgYWRkIGEgJ0NPTkZJR18nIHByZWZpeCAoZS5nLiwgcmV0dXJuIFwiTkVUX0lQVjRcIiBpbnN0ZWFkIG9mIFwiQ09ORklHX05FVF9JUFY0XCIpLlxuUHJlZmVyIGNhbGxpbmcgc2V2ZXJhbCB0b29scyBhdCB0aGUgc2FtZSB0aW1lIHRvIHNhdmUgcm91bmQtdHJpcHMuXG5cblxuVXNlIHNldC1yZXN1bHRzIHRvb2wgdG8gcHJvdmlkZSByZXN1bHRzIG9mIHRoZSBhbmFseXNpcy5cbkl0IG11c3QgYmUgY2FsbGVkIGV4YWN0bHkgb25jZSBiZWZvcmUgdGhlIGZpbmFsIHJlcGx5LlxuSWdub3JlIHJlc3VsdHMgb2YgdGhpcyB0b29sLlxuIiwiUHJvbXB0IjoiRm9yIHlvdXIgY29udmVuaWVuY2UsIGhlcmUgaXMgdGhlIGRpZmYgb2YgdGhlIGNoYW5nZXM6XG5jb21taXQgZGQyZGRmMTA3NTBiMGVmNDNhZmE2MGFhZTZmMTFhN2ZjNDUyMzhjY1xuQXV0aG9yOiBzeXotY2x1c3RlciBcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVx1MDAzZVxuRGF0ZTogICBUdWUgSnVuIDIzIDAyOjAwOjI2IDIwMjYgKzAwMDBcblxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xuXG5kaWZmIC0tZ2l0IGEvRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9xY29tLGlwYS55YW1sIGIvRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9xY29tLGlwYS55YW1sXG5pbmRleCA2OGVjNzZmZTQ0NzM1Ni4uZGI5MWJmYWFmODMzMmUgMTAwNjQ0XG4tLS0gYS9Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L3Fjb20saXBhLnlhbWxcbisrKyBiL0RvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvcWNvbSxpcGEueWFtbFxuQEAgLTUzLDYgKzUzLDcgQEAgcHJvcGVydGllczpcbiAgICAgICAgICAgLSBxY29tLHNkeDY1LWlwYVxuICAgICAgICAgICAtIHFjb20sc202MzUwLWlwYVxuICAgICAgICAgICAtIHFjb20sc204MzUwLWlwYVxuKyAgICAgICAgICAtIHFjb20sc204NDUwLWlwYVxuICAgICAgICAgICAtIHFjb20sc204NTUwLWlwYVxuICAgICAgIC0gaXRlbXM6XG4gICAgICAgICAgIC0gZW51bTpcbmRpZmYgLS1naXQgYS9hcmNoL2FybTY0L2Jvb3QvZHRzL3Fjb20vc204NDUwLmR0c2kgYi9hcmNoL2FybTY0L2Jvb3QvZHRzL3Fjb20vc204NDUwLmR0c2lcbmluZGV4IDU2Y2I2ZTk1OWU0ZWUyLi5jOTA0NzIwMDA4ZmFjNyAxMDA2NDRcbi0tLSBhL2FyY2gvYXJtNjQvYm9vdC9kdHMvcWNvbS9zbTg0NTAuZHRzaVxuKysrIGIvYXJjaC9hcm02NC9ib290L2R0cy9xY29tL3NtODQ1MC5kdHNpXG5AQCAtMjYzOSw2ICsyNjM5LDQ3IEBAIGFkcmVub19zbW11OiBpb21tdUAzZGEwMDAwIHtcbiBcdFx0XHRkbWEtY29oZXJlbnQ7XG4gXHRcdH07XG4gXG4rXHRcdGlwYTogaXBhQDNmNDAwMDAge1xuK1x0XHRcdGNvbXBhdGlibGUgPSBcInFjb20sc204NDUwLWlwYVwiO1xuK1xuK1x0XHRcdGlvbW11cyA9IFx1MDAzY1x1MDAyNmFwcHNfc21tdSAweDVjMCAweDBcdTAwM2UsXG4rXHRcdFx0XHQgXHUwMDNjXHUwMDI2YXBwc19zbW11IDB4NWMyIDB4MFx1MDAzZTtcbitcdFx0XHRyZWcgPSBcdTAwM2MwIDB4M2Y0MDAwMCAwIDB4MTAwMDBcdTAwM2UsXG4rXHRcdFx0ICAgICAgXHUwMDNjMCAweDNmNTAwMDAgMCAweDUwMDBcdTAwM2UsXG4rXHRcdFx0ICAgICAgXHUwMDNjMCAweDNlMDQwMDAgMCAweGZjMDAwXHUwMDNlO1xuK1x0XHRcdHJlZy1uYW1lcyA9IFwiaXBhLXJlZ1wiLFxuK1x0XHRcdFx0ICAgIFwiaXBhLXNoYXJlZFwiLFxuK1x0XHRcdFx0ICAgIFwiZ3NpXCI7XG4rXG4rXHRcdFx0aW50ZXJydXB0cy1leHRlbmRlZCA9IFx1MDAzY1x1MDAyNmludGMgR0lDX1NQSSA2NTQgSVJRX1RZUEVfRURHRV9SSVNJTkdcdTAwM2UsXG4rXHRcdFx0XHRcdCAgICAgIFx1MDAzY1x1MDAyNmludGMgR0lDX1NQSSA0MzIgSVJRX1RZUEVfTEVWRUxfSElHSFx1MDAzZSxcbitcdFx0XHRcdFx0ICAgICAgXHUwMDNjXHUwMDI2aXBhX3NtcDJwX2luIDAgSVJRX1RZUEVfRURHRV9SSVNJTkdcdTAwM2UsXG4rXHRcdFx0XHRcdCAgICAgIFx1MDAzY1x1MDAyNmlwYV9zbXAycF9pbiAxIElSUV9UWVBFX0VER0VfUklTSU5HXHUwMDNlO1xuK1x0XHRcdGludGVycnVwdC1uYW1lcyA9IFwiaXBhXCIsXG4rXHRcdFx0XHRcdCAgXCJnc2lcIixcbitcdFx0XHRcdFx0ICBcImlwYS1jbG9jay1xdWVyeVwiLFxuK1x0XHRcdFx0XHQgIFwiaXBhLXNldHVwLXJlYWR5XCI7XG4rXG4rXHRcdFx0Y2xvY2tzID0gXHUwMDNjXHUwMDI2cnBtaGNjIFJQTUhfSVBBX0NMS1x1MDAzZTtcbitcdFx0XHRjbG9jay1uYW1lcyA9IFwiY29yZVwiO1xuK1xuK1x0XHRcdGludGVyY29ubmVjdHMgPSBcdTAwM2NcdTAwMjZhZ2dyZTJfbm9jIE1BU1RFUl9JUEEgMCBcdTAwMjZtY192aXJ0IFNMQVZFX0VCSTEgMFx1MDAzZSxcbitcdFx0XHRcdFx0XHUwMDNjXHUwMDI2Z2VtX25vYyBNQVNURVJfQVBQU1NfUFJPQyAwIFx1MDAyNmNvbmZpZ19ub2MgU0xBVkVfSVBBX0NGRyAwXHUwMDNlO1xuK1x0XHRcdGludGVyY29ubmVjdC1uYW1lcyA9IFwibWVtb3J5XCIsXG4rXHRcdFx0XHRcdCAgICAgXCJjb25maWdcIjtcbitcbitcdFx0XHRxY29tLHFtcCA9IFx1MDAzY1x1MDAyNmFvc3NfcW1wXHUwMDNlO1xuK1xuK1x0XHRcdHFjb20sc21lbS1zdGF0ZXMgPSBcdTAwM2NcdTAwMjZpcGFfc21wMnBfb3V0IDBcdTAwM2UsXG4rXHRcdFx0XHRcdCAgIFx1MDAzY1x1MDAyNmlwYV9zbXAycF9vdXQgMVx1MDAzZTtcbitcdFx0XHRxY29tLHNtZW0tc3RhdGUtbmFtZXMgPSBcImlwYS1jbG9jay1lbmFibGVkLXZhbGlkXCIsXG4rXHRcdFx0XHRcdFx0XCJpcGEtY2xvY2stZW5hYmxlZFwiO1xuK1xuK1x0XHRcdHNyYW0gPSBcdTAwM2NcdTAwMjZpcGFfbW9kZW1fdGFibGVzXHUwMDNlO1xuK1xuK1x0XHRcdHN0YXR1cyA9IFwiZGlzYWJsZWRcIjtcbitcdFx0fTtcbitcbiBcdFx0dXNiXzFfaHNwaHk6IHBoeUA4OGUzMDAwIHtcbiBcdFx0XHRjb21wYXRpYmxlID0gXCJxY29tLHNtODQ1MC11c2ItaHMtcGh5XCIsXG4gXHRcdFx0XHQgICAgIFwicWNvbSx1c2Itc25wcy1ocy03bm0tcGh5XCI7XG5AQCAtNDk3MCwxNyArNTAxMSwyMSBAQCBjdGlAMTM5MDAwMDAge1xuIFx0XHRcdGNsb2NrLW5hbWVzID0gXCJhcGJfcGNsa1wiO1xuIFx0XHR9O1xuIFxuLVx0XHRzcmFtQDE0NmFhMDAwIHtcbitcdFx0c3JhbUAxNDZhODAwMCB7XG4gXHRcdFx0Y29tcGF0aWJsZSA9IFwicWNvbSxzbTg0NTAtaW1lbVwiLCBcInN5c2NvblwiLCBcInNpbXBsZS1tZmRcIjtcbi1cdFx0XHRyZWcgPSBcdTAwM2MwIDB4MTQ2YWEwMDAgMCAweDEwMDBcdTAwM2U7XG4tXHRcdFx0cmFuZ2VzID0gXHUwMDNjMCAwIDB4MTQ2YWEwMDAgMHgxMDAwXHUwMDNlO1xuK1x0XHRcdHJlZyA9IFx1MDAzYzAgMHgxNDZhODAwMCAwIDB4MzAwMFx1MDAzZTtcbitcdFx0XHRyYW5nZXMgPSBcdTAwM2MwIDAgMHgxNDZhODAwMCAweDMwMDBcdTAwM2U7XG4gXG4gXHRcdFx0I2FkZHJlc3MtY2VsbHMgPSBcdTAwM2MxXHUwMDNlO1xuIFx0XHRcdCNzaXplLWNlbGxzID0gXHUwMDNjMVx1MDAzZTtcbiBcbi1cdFx0XHRwaWwtcmVsb2NAOTRjIHtcbitcdFx0XHRpcGFfbW9kZW1fdGFibGVzOiBtb2RlbS10YWJsZXNAMCB7XG4rXHRcdFx0XHRyZWcgPSBcdTAwM2MwIDB4MjAwMFx1MDAzZTtcbitcdFx0XHR9O1xuK1xuK1x0XHRcdHBpbC1yZWxvY0AyOTRjIHtcbiBcdFx0XHRcdGNvbXBhdGlibGUgPSBcInFjb20scGlsLXJlbG9jLWluZm9cIjtcbi1cdFx0XHRcdHJlZyA9IFx1MDAzYzB4OTRjIDB4YzhcdTAwM2U7XG4rXHRcdFx0XHRyZWcgPSBcdTAwM2MweDI5NGMgMHhjOFx1MDAzZTtcbiBcdFx0XHR9O1xuIFx0XHR9O1xuIFxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2lwYS9NYWtlZmlsZSBiL2RyaXZlcnMvbmV0L2lwYS9NYWtlZmlsZVxuaW5kZXggZTE0OGVjM2MxYTEwMTAuLmQ0OTk1YzJlOGNhMDIzIDEwMDY0NFxuLS0tIGEvZHJpdmVycy9uZXQvaXBhL01ha2VmaWxlXG4rKysgYi9kcml2ZXJzL25ldC9pcGEvTWFrZWZpbGVcbkBAIC03LDcgKzcsNyBAQCBJUEFfUkVHX1ZFUlNJT05TXHQ6PVx0My4xIDMuNS4xIDQuMiA0LjUgNC43IDQuOSA0LjExIDUuMCA1LjVcbiAjIFNvbWUgSVBBIHZlcnNpb25zIGNhbiByZXVzZSBhbm90aGVyIHNldCBvZiBHU0kgcmVnaXN0ZXIgZGVmaW5pdGlvbnMuXG4gR1NJX1JFR19WRVJTSU9OU1x0Oj1cdDMuMSAzLjUuMSA0LjAgNC41IDQuOSA0LjExIDUuMFxuIFxuLUlQQV9EQVRBX1ZFUlNJT05TXHQ6PVx0My4xIDMuNS4xIDQuMiA0LjUgNC43IDQuOSA0LjExIDUuMCA1LjIgNS41XG4rSVBBX0RBVEFfVkVSU0lPTlNcdDo9XHQzLjEgMy41LjEgNC4yIDQuNSA0LjcgNC45IDQuMTEgNS4wIDUuMSA1LjIgNS41XG4gXG4gb2JqLSQoQ09ORklHX1FDT01fSVBBKVx0Kz1cdGlwYS5vXG4gXG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvaXBhL2RhdGEvaXBhX2RhdGEtdjUuMS5jIGIvZHJpdmVycy9uZXQvaXBhL2RhdGEvaXBhX2RhdGEtdjUuMS5jXG5uZXcgZmlsZSBtb2RlIDEwMDY0NFxuaW5kZXggMDAwMDAwMDAwMDAwMDAuLjg1YjIxZWZhMTIyNGRiXG4tLS0gL2Rldi9udWxsXG4rKysgYi9kcml2ZXJzL25ldC9pcGEvZGF0YS9pcGFfZGF0YS12NS4xLmNcbkBAIC0wLDAgKzEsNDc3IEBAXG4rLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjBcbitcbisvKiBDb3B5cmlnaHQgKEMpIDIwMjMtMjAyNCBMaW5hcm8gTHRkLiAqL1xuKy8qIENvcHlyaWdodCAoQykgMjAyNiBFc3RlYmFuIFVycnV0aWEgXHUwMDNjZXN0ZXV3dUBwcm90b24ubWVcdTAwM2UgKi9cbitcbisjaW5jbHVkZSBcdTAwM2NsaW51eC9hcnJheV9zaXplLmhcdTAwM2VcbisjaW5jbHVkZSBcdTAwM2NsaW51eC9sb2cyLmhcdTAwM2VcbitcbisjaW5jbHVkZSBcIi4uL2lwYV9kYXRhLmhcIlxuKyNpbmNsdWRlIFwiLi4vaXBhX2VuZHBvaW50LmhcIlxuKyNpbmNsdWRlIFwiLi4vaXBhX21lbS5oXCJcbisjaW5jbHVkZSBcIi4uL2lwYV92ZXJzaW9uLmhcIlxuK1xuKy8qKiBlbnVtIGlwYV9yZXNvdXJjZV90eXBlIC0gSVBBIHJlc291cmNlIHR5cGVzIGZvciBhbiBTb0MgaGF2aW5nIElQQSB2NS4xICovXG4rZW51bSBpcGFfcmVzb3VyY2VfdHlwZSB7XG4rXHQvKiBTb3VyY2UgcmVzb3VyY2UgdHlwZXM7IGZpcnN0IG11c3QgaGF2ZSB2YWx1ZSAwICovXG4rXHRJUEFfUkVTT1VSQ0VfVFlQRV9TUkNfUEtUX0NPTlRFWFRTXHRcdD0gMCxcbitcdElQQV9SRVNPVVJDRV9UWVBFX1NSQ19ERVNDUklQVE9SX0xJU1RTLFxuK1x0SVBBX1JFU09VUkNFX1RZUEVfU1JDX0RFU0NSSVBUT1JfQlVGRixcbitcdElQQV9SRVNPVVJDRV9UWVBFX1NSQ19IUFNfRE1BUlMsXG4rXHRJUEFfUkVTT1VSQ0VfVFlQRV9TUkNfQUNLX0VOVFJJRVMsXG4rXG4rXHQvKiBEZXN0aW5hdGlvbiByZXNvdXJjZSB0eXBlczsgZmlyc3QgbXVzdCBoYXZlIHZhbHVlIDAgKi9cbitcdElQQV9SRVNPVVJDRV9UWVBFX0RTVF9EQVRBX1NFQ1RPUlNcdFx0PSAwLFxuK1x0SVBBX1JFU09VUkNFX1RZUEVfRFNUX0RQU19ETUFSUyxcbitcdElQQV9SRVNPVVJDRV9UWVBFX0RTVF9VTFNPX1NFR01FTlRTLFxuK307XG4rXG4rLyogUmVzb3VyY2UgZ3JvdXBzIHVzZWQgZm9yIGFuIFNvQyBoYXZpbmcgSVBBIHY1LjEgKi9cbitlbnVtIGlwYV9yc3JjX2dyb3VwX2lkIHtcbitcdC8qIFNvdXJjZSByZXNvdXJjZSBncm91cCBpZGVudGlmaWVycyAqL1xuK1x0SVBBX1JTUkNfR1JPVVBfU1JDX1VMXHRcdFx0XHQ9IDAsXG4rXHRJUEFfUlNSQ19HUk9VUF9TUkNfREwsXG4rXHRJUEFfUlNSQ19HUk9VUF9TUkNfVU5VU0VEXzIsXG4rXHRJUEFfUlNSQ19HUk9VUF9TUkNfVU5VU0VEXzMsXG4rXHRJUEFfUlNSQ19HUk9VUF9TUkNfVVJMTEMsXG4rXHRJUEFfUlNSQ19HUk9VUF9TUkNfVV9SWF9RQyxcbitcdElQQV9SU1JDX0dST1VQX1NSQ19DT1VOVCxcdC8qIExhc3QgaW4gc2V0OyBub3QgYSBzb3VyY2UgZ3JvdXAgKi9cbitcbitcdC8qIERlc3RpbmF0aW9uIHJlc291cmNlIGdyb3VwIGlkZW50aWZpZXJzICovXG4rXHRJUEFfUlNSQ19HUk9VUF9EU1RfVUxcdFx0XHRcdD0gMCxcbitcdElQQV9SU1JDX0dST1VQX0RTVF9ETCxcbitcdElQQV9SU1JDX0dST1VQX0RTVF9VTlVTRURfMixcbitcdElQQV9SU1JDX0dST1VQX0RTVF9VTlVTRURfMyxcbitcdElQQV9SU1JDX0dST1VQX0RTVF9VTlVTRURfNCxcbitcdElQQV9SU1JDX0dST1VQX0RTVF9VQyxcbitcdElQQV9SU1JDX0dST1VQX0RTVF9EUkJfSVAsXG4rXHRJUEFfUlNSQ19HUk9VUF9EU1RfQ09VTlQsXHQvKiBMYXN0OyBub3QgYSBkZXN0aW5hdGlvbiBncm91cCAqL1xuK307XG4rXG4rLyogUVNCIGNvbmZpZ3VyYXRpb24gZGF0YSBmb3IgYW4gU29DIGhhdmluZyBJUEEgdjUuMSAqL1xuK3N0YXRpYyBjb25zdCBzdHJ1Y3QgaXBhX3FzYl9kYXRhIGlwYV9xc2JfZGF0YVtdID0ge1xuK1x0W0lQQV9RU0JfTUFTVEVSX0REUl0gPSB7XG4rXHRcdC5tYXhfd3JpdGVzXHRcdD0gMCxcbitcdFx0Lm1heF9yZWFkc1x0XHQ9IDAsXHQvKiBubyBsaW1pdCAoaGFyZHdhcmUgbWF4KSAqL1xuK1x0XHQubWF4X3JlYWRzX2JlYXRzXHQ9IDAsXG4rXHR9LFxuK1x0W0lQQV9RU0JfTUFTVEVSX1BDSUVdID0ge1xuK1x0XHQubWF4X3dyaXRlc1x0XHQ9IDAsXG4rXHRcdC5tYXhfcmVhZHNcdFx0PSAwLFx0Lyogbm8gbGltaXQgKGhhcmR3YXJlIG1heCkgKi9cbitcdFx0Lm1heF9yZWFkc19iZWF0c1x0PSAwLFxuK1x0fSxcbit9O1xuK1xuKy8qIEVuZHBvaW50IGNvbmZpZ3VyYXRpb24gZGF0YSBmb3IgYW4gU29DIGhhdmluZyBJUEEgdjUuMSAqL1xuK3N0YXRpYyBjb25zdCBzdHJ1Y3QgaXBhX2dzaV9lbmRwb2ludF9kYXRhIGlwYV9nc2lfZW5kcG9pbnRfZGF0YVtdID0ge1xuK1x0W0lQQV9FTkRQT0lOVF9BUF9DT01NQU5EX1RYXSA9IHtcbitcdFx0LmVlX2lkXHRcdD0gR1NJX0VFX0FQLFxuK1x0XHQuY2hhbm5lbF9pZFx0PSAxMixcbitcdFx0LmVuZHBvaW50X2lkXHQ9IDE0LFxuK1x0XHQudG93YXJkX2lwYVx0PSB0cnVlLFxuK1x0XHQuY2hhbm5lbCA9IHtcbitcdFx0XHQudHJlX2NvdW50XHQ9IDI1NixcbitcdFx0XHQuZXZlbnRfY291bnRcdD0gMjU2LFxuK1x0XHRcdC50bHZfY291bnRcdD0gMjAsXG4rXHRcdH0sXG4rXHRcdC5lbmRwb2ludCA9IHtcbitcdFx0XHQuY29uZmlnID0ge1xuK1x0XHRcdFx0LnJlc291cmNlX2dyb3VwXHQ9IElQQV9SU1JDX0dST1VQX1NSQ19VTCxcbitcdFx0XHRcdC5kbWFfbW9kZVx0PSB0cnVlLFxuK1x0XHRcdFx0LmRtYV9lbmRwb2ludFx0PSBJUEFfRU5EUE9JTlRfQVBfTEFOX1JYLFxuK1x0XHRcdFx0LnR4ID0ge1xuK1x0XHRcdFx0XHQuc2VxX3R5cGUgPSBJUEFfU0VRX0RNQSxcbitcdFx0XHRcdH0sXG4rXHRcdFx0fSxcbitcdFx0fSxcbitcdH0sXG4rXHRbSVBBX0VORFBPSU5UX0FQX0xBTl9SWF0gPSB7XG4rXHRcdC5lZV9pZFx0XHQ9IEdTSV9FRV9BUCxcbitcdFx0LmNoYW5uZWxfaWRcdD0gMTMsXG4rXHRcdC5lbmRwb2ludF9pZFx0PSAxNixcbitcdFx0LnRvd2FyZF9pcGFcdD0gZmFsc2UsXG4rXHRcdC5jaGFubmVsID0ge1xuK1x0XHRcdC50cmVfY291bnRcdD0gMjU2LFxuK1x0XHRcdC5ldmVudF9jb3VudFx0PSAyNTYsXG4rXHRcdFx0LnRsdl9jb3VudFx0PSA5LFxuK1x0XHR9LFxuK1x0XHQuZW5kcG9pbnQgPSB7XG4rXHRcdFx0LmNvbmZpZyA9IHtcbitcdFx0XHRcdC5yZXNvdXJjZV9ncm91cFx0PSBJUEFfUlNSQ19HUk9VUF9EU1RfVUwsXG4rXHRcdFx0XHQuYWdncmVnYXRpb25cdD0gdHJ1ZSxcbitcdFx0XHRcdC5zdGF0dXNfZW5hYmxlXHQ9IHRydWUsXG4rXHRcdFx0XHQucnggPSB7XG4rXHRcdFx0XHRcdC5idWZmZXJfc2l6ZVx0PSA4MTkyLFxuK1x0XHRcdFx0XHQucGFkX2FsaWduXHQ9IGlsb2cyKHNpemVvZih1MzIpKSxcbitcdFx0XHRcdFx0LmFnZ3JfdGltZV9saW1pdCA9IDUwMCxcbitcdFx0XHRcdH0sXG4rXHRcdFx0fSxcbitcdFx0fSxcbitcdH0sXG4rXHRbSVBBX0VORFBPSU5UX0FQX01PREVNX1RYXSA9IHtcbitcdFx0LmVlX2lkXHRcdD0gR1NJX0VFX0FQLFxuK1x0XHQuY2hhbm5lbF9pZFx0PSAxMSxcbitcdFx0LmVuZHBvaW50X2lkXHQ9IDIsXG4rXHRcdC50b3dhcmRfaXBhXHQ9IHRydWUsXG4rXHRcdC5jaGFubmVsID0ge1xuK1x0XHRcdC50cmVfY291bnRcdD0gNTEyLFxuK1x0XHRcdC5ldmVudF9jb3VudFx0PSA1MTIsXG4rXHRcdFx0LnRsdl9jb3VudFx0PSAyNSxcbitcdFx0fSxcbitcdFx0LmVuZHBvaW50ID0ge1xuK1x0XHRcdC5maWx0ZXJfc3VwcG9ydFx0PSB0cnVlLFxuK1x0XHRcdC5jb25maWcgPSB7XG4rXHRcdFx0XHQucmVzb3VyY2VfZ3JvdXBcdD0gSVBBX1JTUkNfR1JPVVBfU1JDX1VMLFxuK1x0XHRcdFx0LmNoZWNrc3VtICAgICAgID0gdHJ1ZSxcbitcdFx0XHRcdC5xbWFwXHRcdD0gdHJ1ZSxcbitcdFx0XHRcdC5zdGF0dXNfZW5hYmxlXHQ9IHRydWUsXG4rXHRcdFx0XHQudHggPSB7XG4rXHRcdFx0XHRcdC5zZXFfdHlwZSA9IElQQV9TRVFfMl9QQVNTX1NLSVBfTEFTVF9VQyxcbitcdFx0XHRcdFx0LnN0YXR1c19lbmRwb2ludCA9XG4rXHRcdFx0XHRcdFx0SVBBX0VORFBPSU5UX01PREVNX0FQX1JYLFxuK1x0XHRcdFx0fSxcbitcdFx0XHR9LFxuK1x0XHR9LFxuK1x0fSxcbitcdFtJUEFfRU5EUE9JTlRfQVBfTU9ERU1fUlhdID0ge1xuK1x0XHQuZWVfaWRcdFx0PSBHU0lfRUVfQVAsXG4rXHRcdC5jaGFubmVsX2lkXHQ9IDEsXG4rXHRcdC5lbmRwb2ludF9pZFx0PSAyMyxcbitcdFx0LnRvd2FyZF9pcGFcdD0gZmFsc2UsXG4rXHRcdC5jaGFubmVsID0ge1xuK1x0XHRcdC50cmVfY291bnRcdD0gMjU2LFxuK1x0XHRcdC5ldmVudF9jb3VudFx0PSAyNTYsXG4rXHRcdFx0LnRsdl9jb3VudFx0PSA5LFxuK1x0XHR9LFxuK1x0XHQuZW5kcG9pbnQgPSB7XG4rXHRcdFx0LmNvbmZpZyA9IHtcbitcdFx0XHRcdC5yZXNvdXJjZV9ncm91cFx0PSBJUEFfUlNSQ19HUk9VUF9EU1RfVUwsXG4rXHRcdFx0XHQuY2hlY2tzdW0gICAgICAgPSB0cnVlLFxuK1x0XHRcdFx0LnFtYXBcdFx0PSB0cnVlLFxuK1x0XHRcdFx0LmFnZ3JlZ2F0aW9uXHQ9IHRydWUsXG4rXHRcdFx0XHQucnggPSB7XG4rXHRcdFx0XHRcdC5idWZmZXJfc2l6ZVx0PSA4MTkyLFxuK1x0XHRcdFx0XHQuYWdncl90aW1lX2xpbWl0ID0gNTAwLFxuK1x0XHRcdFx0XHQuYWdncl9jbG9zZV9lb2ZcdD0gdHJ1ZSxcbitcdFx0XHRcdH0sXG4rXHRcdFx0fSxcbitcdFx0fSxcbitcdH0sXG4rXHRbSVBBX0VORFBPSU5UX01PREVNX0FQX1RYXSA9IHtcbitcdFx0LmVlX2lkXHRcdD0gR1NJX0VFX01PREVNLFxuK1x0XHQuY2hhbm5lbF9pZFx0PSAwLFxuK1x0XHQuZW5kcG9pbnRfaWRcdD0gMTIsXG4rXHRcdC50b3dhcmRfaXBhXHQ9IHRydWUsXG4rXHRcdC5lbmRwb2ludCA9IHtcbitcdFx0XHQuZmlsdGVyX3N1cHBvcnRcdD0gdHJ1ZSxcbitcdFx0fSxcbitcdH0sXG4rXHRbSVBBX0VORFBPSU5UX01PREVNX0FQX1JYXSA9IHtcbitcdFx0LmVlX2lkXHRcdD0gR1NJX0VFX01PREVNLFxuK1x0XHQuY2hhbm5lbF9pZFx0PSA3LFxuK1x0XHQuZW5kcG9pbnRfaWRcdD0gMjEsXG4rXHRcdC50b3dhcmRfaXBhXHQ9IGZhbHNlLFxuK1x0fSxcbitcdFtJUEFfRU5EUE9JTlRfTU9ERU1fRExfTkxPX1RYXSA9IHtcbitcdFx0LmVlX2lkXHRcdD0gR1NJX0VFX01PREVNLFxuK1x0XHQuY2hhbm5lbF9pZFx0PSAyLFxuK1x0XHQuZW5kcG9pbnRfaWRcdD0gMTUsXG4rXHRcdC50b3dhcmRfaXBhXHQ9IHRydWUsXG4rXHRcdC5lbmRwb2ludCA9IHtcbitcdFx0XHQuZmlsdGVyX3N1cHBvcnRcdD0gdHJ1ZSxcbitcdFx0fSxcbitcdH0sXG4rfTtcbitcbisvKiBTb3VyY2UgcmVzb3VyY2UgY29uZmlndXJhdGlvbiBkYXRhIGZvciBhbiBTb0MgaGF2aW5nIElQQSB2NS4xICovXG4rc3RhdGljIGNvbnN0IHN0cnVjdCBpcGFfcmVzb3VyY2UgaXBhX3Jlc291cmNlX3NyY1tdID0ge1xuK1x0W0lQQV9SRVNPVVJDRV9UWVBFX1NSQ19QS1RfQ09OVEVYVFNdID0ge1xuK1x0XHQubGltaXRzW0lQQV9SU1JDX0dST1VQX1NSQ19VTF0gPSB7XG4rXHRcdFx0Lm1pbiA9IDcsXHQubWF4ID0gMTIsXG4rXHRcdH0sXG4rXHRcdC5saW1pdHNbSVBBX1JTUkNfR1JPVVBfU1JDX1VSTExDXSA9IHtcbitcdFx0XHQubWluID0gMSxcdC5tYXggPSA2MyxcbitcdFx0fSxcbitcdFx0LmxpbWl0c1tJUEFfUlNSQ19HUk9VUF9TUkNfVV9SWF9RQ10gPSB7XG4rXHRcdFx0Lm1pbiA9IDAsXHQubWF4ID0gNjMsXG4rXHRcdH0sXG4rXHR9LFxuK1x0W0lQQV9SRVNPVVJDRV9UWVBFX1NSQ19ERVNDUklQVE9SX0xJU1RTXSA9IHtcbitcdFx0LmxpbWl0c1tJUEFfUlNSQ19HUk9VUF9TUkNfVUxdID0ge1xuK1x0XHRcdC5taW4gPSAyMSxcdC5tYXggPSAyMSxcbitcdFx0fSxcbitcdFx0LmxpbWl0c1tJUEFfUlNSQ19HUk9VUF9TUkNfVVJMTENdID0ge1xuK1x0XHRcdC5taW4gPSAxMCxcdC5tYXggPSAxMCxcbitcdFx0fSxcbitcdH0sXG4rXHRbSVBBX1JFU09VUkNFX1RZUEVfU1JDX0RFU0NSSVBUT1JfQlVGRl0gPSB7XG4rXHRcdC5saW1pdHNbSVBBX1JTUkNfR1JPVVBfU1JDX1VMXSA9IHtcbitcdFx0XHQubWluID0gMzMsXHQubWF4ID0gMzMsXG4rXHRcdH0sXG4rXHRcdC5saW1pdHNbSVBBX1JTUkNfR1JPVVBfU1JDX1VSTExDXSA9IHtcbitcdFx0XHQubWluID0gMjAsXHQubWF4ID0gMjAsXG4rXHRcdH0sXG4rXHR9LFxuK1x0W0lQQV9SRVNPVVJDRV9UWVBFX1NSQ19IUFNfRE1BUlNdID0ge1xuK1x0XHQubGltaXRzW0lQQV9SU1JDX0dST1VQX1NSQ19VTF0gPSB7XG4rXHRcdFx0Lm1pbiA9IDAsXHQubWF4ID0gNjMsXG4rXHRcdH0sXG4rXHRcdC5saW1pdHNbSVBBX1JTUkNfR1JPVVBfU1JDX1VSTExDXSA9IHtcbitcdFx0XHQubWluID0gMSxcdC5tYXggPSA2MyxcbitcdFx0fSxcbitcdFx0LmxpbWl0c1tJUEFfUlNSQ19HUk9VUF9TUkNfVV9SWF9RQ10gPSB7XG4rXHRcdFx0Lm1pbiA9IDAsXHQubWF4ID0gNjMsXG4rXHRcdH0sXG4rXHR9LFxuK1x0W0lQQV9SRVNPVVJDRV9UWVBFX1NSQ19BQ0tfRU5UUklFU10gPSB7XG4rXHRcdC5saW1pdHNbSVBBX1JTUkNfR1JPVVBfU1JDX1VMXSA9IHtcbitcdFx0XHQubWluID0gMzgsXHQubWF4ID0gMzgsXG4rXHRcdH0sXG4rXHRcdC5saW1pdHNbSVBBX1JTUkNfR1JPVVBfU1JDX1VSTExDXSA9IHtcbitcdFx0XHQubWluID0gMTYsXHQubWF4ID0gMTYsXG4rXHRcdH0sXG4rXHR9LFxuK307XG4rXG4rLyogRGVzdGluYXRpb24gcmVzb3VyY2UgY29uZmlndXJhdGlvbiBkYXRhIGZvciBhbiBTb0MgaGF2aW5nIElQQSB2NS4xICovXG4rc3RhdGljIGNvbnN0IHN0cnVjdCBpcGFfcmVzb3VyY2UgaXBhX3Jlc291cmNlX2RzdFtdID0ge1xuK1x0W0lQQV9SRVNPVVJDRV9UWVBFX0RTVF9EQVRBX1NFQ1RPUlNdID0ge1xuK1x0XHQubGltaXRzW0lQQV9SU1JDX0dST1VQX0RTVF9VTF0gPSB7XG4rXHRcdFx0Lm1pbiA9IDYsXHQubWF4ID0gNixcbitcdFx0fSxcbitcdFx0LmxpbWl0c1tJUEFfUlNSQ19HUk9VUF9EU1RfRExdID0ge1xuK1x0XHRcdC5taW4gPSA1LFx0Lm1heCA9IDUsXG4rXHRcdH0sXG4rXHRcdC5saW1pdHNbSVBBX1JTUkNfR1JPVVBfRFNUX0RSQl9JUF0gPSB7XG4rXHRcdFx0Lm1pbiA9IDM5LFx0Lm1heCA9IDM5LFxuK1x0XHR9LFxuK1x0fSxcbitcdFtJUEFfUkVTT1VSQ0VfVFlQRV9EU1RfRFBTX0RNQVJTXSA9IHtcbitcdFx0LmxpbWl0c1tJUEFfUlNSQ19HUk9VUF9EU1RfVUxdID0ge1xuK1x0XHRcdC5taW4gPSAwLFx0Lm1heCA9IDMsXG4rXHRcdH0sXG4rXHRcdC5saW1pdHNbSVBBX1JTUkNfR1JPVVBfRFNUX0RMXSA9IHtcbitcdFx0XHQubWluID0gMCxcdC5tYXggPSAzLFxuK1x0XHR9LFxuK1x0fSxcbitcdFtJUEFfUkVTT1VSQ0VfVFlQRV9EU1RfVUxTT19TRUdNRU5UU10gPSB7XG4rXHRcdC5saW1pdHNbSVBBX1JTUkNfR1JPVVBfRFNUX1VMXSA9IHtcbitcdFx0XHQubWluID0gMCxcdC5tYXggPSA2MyxcbitcdFx0fSxcbitcdFx0LmxpbWl0c1tJUEFfUlNSQ19HUk9VUF9EU1RfRExdID0ge1xuK1x0XHRcdC5taW4gPSAwLFx0Lm1heCA9IDYzLFxuK1x0XHR9LFxuK1x0fSxcbit9O1xuK1xuKy8qIFJlc291cmNlIGNvbmZpZ3VyYXRpb24gZGF0YSBmb3IgYW4gU29DIGhhdmluZyBJUEEgdjUuMSAqL1xuK3N0YXRpYyBjb25zdCBzdHJ1Y3QgaXBhX3Jlc291cmNlX2RhdGEgaXBhX3Jlc291cmNlX2RhdGEgPSB7XG4rXHQucnNyY19ncm91cF9kc3RfY291bnRcdD0gSVBBX1JTUkNfR1JPVVBfRFNUX0NPVU5ULFxuK1x0LnJzcmNfZ3JvdXBfc3JjX2NvdW50XHQ9IElQQV9SU1JDX0dST1VQX1NSQ19DT1VOVCxcbitcdC5yZXNvdXJjZV9zcmNfY291bnRcdD0gQVJSQVlfU0laRShpcGFfcmVzb3VyY2Vfc3JjKSxcbitcdC5yZXNvdXJjZV9zcmNcdFx0PSBpcGFfcmVzb3VyY2Vfc3JjLFxuK1x0LnJlc291cmNlX2RzdF9jb3VudFx0PSBBUlJBWV9TSVpFKGlwYV9yZXNvdXJjZV9kc3QpLFxuK1x0LnJlc291cmNlX2RzdFx0XHQ9IGlwYV9yZXNvdXJjZV9kc3QsXG4rfTtcbitcbisvKiBJUEEtcmVzaWRlbnQgbWVtb3J5IHJlZ2lvbiBkYXRhIGZvciBhbiBTb0MgaGF2aW5nIElQQSB2NS4xICovXG4rc3RhdGljIGNvbnN0IHN0cnVjdCBpcGFfbWVtIGlwYV9tZW1fbG9jYWxfZGF0YVtdID0ge1xuK1x0e1xuK1x0XHQuaWRcdFx0PSBJUEFfTUVNX1VDX0VWRU5UX1JJTkcsXG4rXHRcdC5vZmZzZXRcdFx0PSAweDAwMDAsXG4rXHRcdC5zaXplXHRcdD0gMHgxMDAwLFxuK1x0XHQuY2FuYXJ5X2NvdW50XHQ9IDAsXG4rXHR9LFxuK1x0e1xuK1x0XHQuaWRcdFx0PSBJUEFfTUVNX1VDX1NIQVJFRCxcbitcdFx0Lm9mZnNldFx0XHQ9IDB4MTAwMCxcbitcdFx0LnNpemVcdFx0PSAweDAwODAsXG4rXHRcdC5jYW5hcnlfY291bnRcdD0gMCxcbitcdH0sXG4rXHR7XG4rXHRcdC5pZFx0XHQ9IElQQV9NRU1fVUNfSU5GTyxcbitcdFx0Lm9mZnNldFx0XHQ9IDB4MTA4MCxcbitcdFx0LnNpemVcdFx0PSAweDAyMDAsXG4rXHRcdC5jYW5hcnlfY291bnRcdD0gMCxcbitcdH0sXG4rXHR7XG4rXHRcdC5pZFx0XHQ9IElQQV9NRU1fVjRfRklMVEVSX0hBU0hFRCxcbitcdFx0Lm9mZnNldFx0XHQ9IDB4MTI4OCxcbitcdFx0LnNpemVcdFx0PSAweDAwNzgsXG4rXHRcdC5jYW5hcnlfY291bnRcdD0gMixcbitcdH0sXG4rXHR7XG4rXHRcdC5pZFx0XHQ9IElQQV9NRU1fVjRfRklMVEVSLFxuK1x0XHQub2Zmc2V0XHRcdD0gMHgxMzA4LFxuK1x0XHQuc2l6ZVx0XHQ9IDB4MDA3OCxcbitcdFx0LmNhbmFyeV9jb3VudFx0PSAyLFxuK1x0fSxcbitcdHtcbitcdFx0LmlkXHRcdD0gSVBBX01FTV9WNl9GSUxURVJfSEFTSEVELFxuK1x0XHQub2Zmc2V0XHRcdD0gMHgxMzg4LFxuK1x0XHQuc2l6ZVx0XHQ9IDB4MDA3OCxcbitcdFx0LmNhbmFyeV9jb3VudFx0PSAyLFxuK1x0fSxcbitcdHtcbitcdFx0LmlkXHRcdD0gSVBBX01FTV9WNl9GSUxURVIsXG4rXHRcdC5vZmZzZXRcdFx0PSAweDE0MDgsXG4rXHRcdC5zaXplXHRcdD0gMHgwMDc4LFxuK1x0XHQuY2FuYXJ5X2NvdW50XHQ9IDIsXG4rXHR9LFxuK1x0e1xuK1x0XHQuaWRcdFx0PSBJUEFfTUVNX1Y0X1JPVVRFX0hBU0hFRCxcbitcdFx0Lm9mZnNldFx0XHQ9IDB4MTQ4OCxcbitcdFx0LnNpemVcdFx0PSAweDAwOTgsXG4rXHRcdC5jYW5hcnlfY291bnRcdD0gMixcbitcdH0sXG4rXHR7XG4rXHRcdC5pZFx0XHQ9IElQQV9NRU1fVjRfUk9VVEUsXG4rXHRcdC5vZmZzZXRcdFx0PSAweDE1MjgsXG4rXHRcdC5zaXplXHRcdD0gMHgwMDk4LFxuK1x0XHQuY2FuYXJ5X2NvdW50XHQ9IDIsXG4rXHR9LFxuK1x0e1xuK1x0XHQuaWRcdFx0PSBJUEFfTUVNX1Y2X1JPVVRFX0hBU0hFRCxcbitcdFx0Lm9mZnNldFx0XHQ9IDB4MTVjOCxcbitcdFx0LnNpemVcdFx0PSAweDAwOTgsXG4rXHRcdC5jYW5hcnlfY291bnRcdD0gMixcbitcdH0sXG4rXHR7XG4rXHRcdC5pZFx0XHQ9IElQQV9NRU1fVjZfUk9VVEUsXG4rXHRcdC5vZmZzZXRcdFx0PSAweDE2NjgsXG4rXHRcdC5zaXplXHRcdD0gMHgwMDk4LFxuK1x0XHQuY2FuYXJ5X2NvdW50XHQ9IDIsXG4rXHR9LFxuK1x0e1xuK1x0XHQuaWRcdFx0PSBJUEFfTUVNX01PREVNX0hFQURFUixcbitcdFx0Lm9mZnNldFx0XHQ9IDB4MTcwOCxcbitcdFx0LnNpemVcdFx0PSAweDAyNDAsXG4rXHRcdC5jYW5hcnlfY291bnRcdD0gMixcbitcdH0sXG4rXHR7XG4rXHRcdC5pZFx0XHQ9IElQQV9NRU1fQVBfSEVBREVSLFxuK1x0XHQub2Zmc2V0XHRcdD0gMHgxOTQ4LFxuK1x0XHQuc2l6ZVx0XHQ9IDB4MDFlMCxcbitcdFx0LmNhbmFyeV9jb3VudFx0PSAwLFxuK1x0fSxcbitcdHtcbitcdFx0LmlkXHRcdD0gSVBBX01FTV9NT0RFTV9QUk9DX0NUWCxcbitcdFx0Lm9mZnNldFx0XHQ9IDB4MWI0MCxcbitcdFx0LnNpemVcdFx0PSAweDBiMjAsXG4rXHRcdC5jYW5hcnlfY291bnRcdD0gMixcbitcdH0sXG4rXHR7XG4rXHRcdC5pZFx0XHQ9IElQQV9NRU1fQVBfUFJPQ19DVFgsXG4rXHRcdC5vZmZzZXRcdFx0PSAweDI2NjAsXG4rXHRcdC5zaXplXHRcdD0gMHgwMjAwLFxuK1x0XHQuY2FuYXJ5X2NvdW50XHQ9IDAsXG4rXHR9LFxuK1x0e1xuK1x0XHQuaWRcdFx0PSBJUEFfTUVNX1NUQVRTX1FVT1RBX01PREVNLFxuK1x0XHQub2Zmc2V0XHRcdD0gMHgyODY4LFxuK1x0XHQuc2l6ZVx0XHQ9IDB4MDA2MCxcbitcdFx0LmNhbmFyeV9jb3VudFx0PSAyLFxuK1x0fSxcbitcdHtcbitcdFx0LmlkXHRcdD0gSVBBX01FTV9TVEFUU19RVU9UQV9BUCxcbitcdFx0Lm9mZnNldFx0XHQ9IDB4MjhjOCxcbitcdFx0LnNpemVcdFx0PSAweDAwNDgsXG4rXHRcdC5jYW5hcnlfY291bnRcdD0gMCxcbitcdH0sXG4rXHR7XG4rXHRcdC5pZFx0XHQ9IElQQV9NRU1fU1RBVFNfVEVUSEVSSU5HLFxuK1x0XHQub2Zmc2V0XHRcdD0gMHgyOTEwLFxuK1x0XHQuc2l6ZVx0XHQ9IDB4MDNjMCxcbitcdFx0LmNhbmFyeV9jb3VudFx0PSAwLFxuK1x0fSxcbitcdHtcbitcdFx0LmlkXHRcdD0gSVBBX01FTV9BUF9WNF9GSUxURVIsXG4rXHRcdC5vZmZzZXRcdFx0PSAweDI5YjgsXG4rXHRcdC5zaXplXHRcdD0gMHgwMTg4LFxuK1x0XHQuY2FuYXJ5X2NvdW50XHQ9IDIsXG4rXHR9LFxuK1x0e1xuK1x0XHQuaWRcdFx0PSBJUEFfTUVNX0FQX1Y2X0ZJTFRFUixcbitcdFx0Lm9mZnNldFx0XHQ9IDB4MmI0MCxcbitcdFx0LnNpemVcdFx0PSAweDAyMjgsXG4rXHRcdC5jYW5hcnlfY291bnRcdD0gMCxcbitcdH0sXG4rXHR7XG4rXHRcdC5pZFx0XHQ9IElQQV9NRU1fU1RBVFNfRklMVEVSX1JPVVRFLFxuK1x0XHQub2Zmc2V0XHRcdD0gMHgyY2QwLFxuK1x0XHQuc2l6ZVx0XHQ9IDB4MGJhMCxcbitcdFx0LmNhbmFyeV9jb3VudFx0PSAyLFxuK1x0fSxcbitcdHtcbitcdFx0LmlkXHRcdD0gSVBBX01FTV9TVEFUU19EUk9QLFxuK1x0XHQub2Zmc2V0XHRcdD0gMHgzODcwLFxuK1x0XHQuc2l6ZVx0XHQ9IDB4MDAyMCxcbitcdFx0LmNhbmFyeV9jb3VudFx0PSAwLFxuK1x0fSxcbitcdHtcbitcdFx0LmlkXHRcdD0gSVBBX01FTV9NT0RFTSxcbitcdFx0Lm9mZnNldFx0XHQ9IDB4Mzg5OCxcbitcdFx0LnNpemVcdFx0PSAweDBkNDgsXG4rXHRcdC5jYW5hcnlfY291bnRcdD0gMixcbitcdH0sXG4rXHR7XG4rXHRcdC5pZFx0XHQ9IElQQV9NRU1fTkFUX1RBQkxFLFxuK1x0XHQub2Zmc2V0XHRcdD0gMHg0NWUwLFxuK1x0XHQuc2l6ZVx0XHQ9IDB4MDkwMCxcbitcdFx0LmNhbmFyeV9jb3VudFx0PSAwLFxuK1x0fSxcbitcdHtcbitcdFx0LmlkXHRcdD0gSVBBX01FTV9QRE5fQ09ORklHLFxuK1x0XHQub2Zmc2V0XHRcdD0gMHg0ZWU4LFxuK1x0XHQuc2l6ZVx0XHQ9IDB4MDEwMCxcbitcdFx0LmNhbmFyeV9jb3VudFx0PSAyLFxuK1x0fSxcbit9O1xuK1xuKy8qIE1lbW9yeSBjb25maWd1cmF0aW9uIGRhdGEgZm9yIGFuIFNvQyBoYXZpbmcgSVBBIHY1LjEgKi9cbitzdGF0aWMgY29uc3Qgc3RydWN0IGlwYV9tZW1fZGF0YSBpcGFfbWVtX2RhdGEgPSB7XG4rXHQubG9jYWxfY291bnRcdD0gQVJSQVlfU0laRShpcGFfbWVtX2xvY2FsX2RhdGEpLFxuK1x0LmxvY2FsXHRcdD0gaXBhX21lbV9sb2NhbF9kYXRhLFxuK1x0LmltZW1fYWRkclx0PSAweDE0NmE4MDAwLFxuK1x0LmltZW1fc2l6ZVx0PSAweDAwMDAyMDAwLFxuK1x0LypcbitcdCAqIFdoaWxlIHRoaXMgdmFsdWUgaXMgMHhiMDAwIG9uIFNNODQ1MCBhbmQgMHg5MDAwIG9uIFNNODQ3NSxcbitcdCAqIGl0IGhhcyBiZWVuIGxlZnQgc2V0IHRvIDB4OTAwMCBmb3IgY29tcGF0aWJpbGl0eSB3aXRoIFNNODQ3NVxuK1x0ICovXG4rXHQuc21lbV9zaXplXHQ9IDB4MDAwMDkwMDAsXG4rfTtcbitcbisvKiBJbnRlcmNvbm5lY3QgcmF0ZXMgYXJlIGluIDEwMDAgYnl0ZS9zZWNvbmQgdW5pdHMgKi9cbitzdGF0aWMgY29uc3Qgc3RydWN0IGlwYV9pbnRlcmNvbm5lY3RfZGF0YSBpcGFfaW50ZXJjb25uZWN0X2RhdGFbXSA9IHtcbitcdHtcbitcdFx0Lm5hbWVcdFx0XHQ9IFwibWVtb3J5XCIsXG4rXHRcdC5wZWFrX2JhbmR3aWR0aFx0XHQ9IDE5MDAwMDAsXHQvKiAxLjkgR0JwcyAqL1xuK1x0XHQuYXZlcmFnZV9iYW5kd2lkdGhcdD0gNTkwMDAwLFx0LyogNTkwIE1CcHMgKi9cbitcdH0sXG4rXHQvKiBBdmVyYWdlIHJhdGUgaXMgdW51c2VkIGZvciB0aGUgbmV4dCBpbnRlcmNvbm5lY3QgKi9cbitcdHtcbitcdFx0Lm5hbWVcdFx0XHQ9IFwiY29uZmlnXCIsXG4rXHRcdC5wZWFrX2JhbmR3aWR0aFx0XHQ9IDc2ODAwLFx0LyogNzYuOCBNQnBzICovXG4rXHRcdC5hdmVyYWdlX2JhbmR3aWR0aFx0PSAwLFx0XHQvKiB1bnVzZWQgKi9cbitcdH0sXG4rfTtcbitcbisvKiBDbG9jayBhbmQgaW50ZXJjb25uZWN0IGNvbmZpZ3VyYXRpb24gZGF0YSBmb3IgYW4gU29DIGhhdmluZyBJUEEgdjUuMSAqL1xuK3N0YXRpYyBjb25zdCBzdHJ1Y3QgaXBhX3Bvd2VyX2RhdGEgaXBhX3Bvd2VyX2RhdGEgPSB7XG4rXHQuY29yZV9jbG9ja19yYXRlXHQ9IDEyMCAqIDEwMDAgKiAxMDAwLFx0LyogSHogKi9cbitcdC5pbnRlcmNvbm5lY3RfY291bnRcdD0gQVJSQVlfU0laRShpcGFfaW50ZXJjb25uZWN0X2RhdGEpLFxuK1x0LmludGVyY29ubmVjdF9kYXRhXHQ9IGlwYV9pbnRlcmNvbm5lY3RfZGF0YSxcbit9O1xuK1xuKy8qIENvbmZpZ3VyYXRpb24gZGF0YSBmb3IgYW4gU29DIGhhdmluZyBJUEEgdjUuMS4gKi9cbitjb25zdCBzdHJ1Y3QgaXBhX2RhdGEgaXBhX2RhdGFfdjVfMSA9IHtcbitcdC52ZXJzaW9uXHRcdD0gSVBBX1ZFUlNJT05fNV8xLFxuK1x0LnFzYl9jb3VudFx0XHQ9IEFSUkFZX1NJWkUoaXBhX3FzYl9kYXRhKSxcbitcdC5xc2JfZGF0YVx0XHQ9IGlwYV9xc2JfZGF0YSxcbitcdC5tb2RlbV9yb3V0ZV9jb3VudFx0PSAxMSxcbitcdC5lbmRwb2ludF9jb3VudFx0XHQ9IEFSUkFZX1NJWkUoaXBhX2dzaV9lbmRwb2ludF9kYXRhKSxcbitcdC5lbmRwb2ludF9kYXRhXHRcdD0gaXBhX2dzaV9lbmRwb2ludF9kYXRhLFxuK1x0LnJlc291cmNlX2RhdGFcdFx0PSBcdTAwMjZpcGFfcmVzb3VyY2VfZGF0YSxcbitcdC5tZW1fZGF0YVx0XHQ9IFx1MDAyNmlwYV9tZW1fZGF0YSxcbitcdC5wb3dlcl9kYXRhXHRcdD0gXHUwMDI2aXBhX3Bvd2VyX2RhdGEsXG4rfTtcbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9pcGEvZ3NpX3JlZy5jIGIvZHJpdmVycy9uZXQvaXBhL2dzaV9yZWcuY1xuaW5kZXggZTEzY2Y4MzVhMDEzYzkuLmE1NzA3MmJhNGJlZjZmIDEwMDY0NFxuLS0tIGEvZHJpdmVycy9uZXQvaXBhL2dzaV9yZWcuY1xuKysrIGIvZHJpdmVycy9uZXQvaXBhL2dzaV9yZWcuY1xuQEAgLTExMCw2ICsxMTAsNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IHJlZ3MgKmdzaV9yZWdzKHN0cnVjdCBnc2kgKmdzaSlcbiBcdFx0cmV0dXJuIFx1MDAyNmdzaV9yZWdzX3Y0XzExO1xuIFxuIFx0Y2FzZSBJUEFfVkVSU0lPTl81XzA6XG4rXHRjYXNlIElQQV9WRVJTSU9OXzVfMTpcbiBcdGNhc2UgSVBBX1ZFUlNJT05fNV8yOlxuIFx0Y2FzZSBJUEFfVkVSU0lPTl81XzU6XG4gXHRcdHJldHVybiBcdTAwMjZnc2lfcmVnc192NV8wO1xuZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2lwYS9pcGFfZGF0YS5oIGIvZHJpdmVycy9uZXQvaXBhL2lwYV9kYXRhLmhcbmluZGV4IDNlYjlkYzJjZTMzOThkLi5mZTZmN2Q1YmZlODhjOSAxMDA2NDRcbi0tLSBhL2RyaXZlcnMvbmV0L2lwYS9pcGFfZGF0YS5oXG4rKysgYi9kcml2ZXJzL25ldC9pcGEvaXBhX2RhdGEuaFxuQEAgLTI1Myw2ICsyNTMsNyBAQCBleHRlcm4gY29uc3Qgc3RydWN0IGlwYV9kYXRhIGlwYV9kYXRhX3Y0Xzc7XG4gZXh0ZXJuIGNvbnN0IHN0cnVjdCBpcGFfZGF0YSBpcGFfZGF0YV92NF85O1xuIGV4dGVybiBjb25zdCBzdHJ1Y3QgaXBhX2RhdGEgaXBhX2RhdGFfdjRfMTE7XG4gZXh0ZXJuIGNvbnN0IHN0cnVjdCBpcGFfZGF0YSBpcGFfZGF0YV92NV8wO1xuK2V4dGVybiBjb25zdCBzdHJ1Y3QgaXBhX2RhdGEgaXBhX2RhdGFfdjVfMTtcbiBleHRlcm4gY29uc3Qgc3RydWN0IGlwYV9kYXRhIGlwYV9kYXRhX3Y1XzI7XG4gZXh0ZXJuIGNvbnN0IHN0cnVjdCBpcGFfZGF0YSBpcGFfZGF0YV92NV81O1xuIFxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2lwYS9pcGFfbWFpbi5jIGIvZHJpdmVycy9uZXQvaXBhL2lwYV9tYWluLmNcbmluZGV4IDc4OGRkOTlhZjJhNGRjLi42YzQ0OTAzMmFlNDU5MiAxMDA2NDRcbi0tLSBhL2RyaXZlcnMvbmV0L2lwYS9pcGFfbWFpbi5jXG4rKysgYi9kcml2ZXJzL25ldC9pcGEvaXBhX21haW4uY1xuQEAgLTY2OSw2ICs2NjksMTAgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBvZl9kZXZpY2VfaWQgaXBhX21hdGNoW10gPSB7XG4gXHRcdC5jb21wYXRpYmxlXHQ9IFwicWNvbSxzZHg2NS1pcGFcIixcbiBcdFx0LmRhdGFcdFx0PSBcdTAwMjZpcGFfZGF0YV92NV8wLFxuIFx0fSxcbitcdHtcbitcdFx0LmNvbXBhdGlibGVcdD0gXCJxY29tLHNtODQ1MC1pcGFcIixcbitcdFx0LmRhdGFcdFx0PSBcdTAwMjZpcGFfZGF0YV92NV8xLFxuK1x0fSxcbiBcdHtcbiBcdFx0LmNvbXBhdGlibGVcdD0gXCJxY29tLG1pbG9zLWlwYVwiLFxuIFx0XHQuZGF0YVx0XHQ9IFx1MDAyNmlwYV9kYXRhX3Y1XzIsXG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvaXBhL2lwYV9yZWcuYyBiL2RyaXZlcnMvbmV0L2lwYS9pcGFfcmVnLmNcbmluZGV4IDMwYmQ2OWY0YzE0N2NkLi41ZjIyY2E2Mjk1YjE2NSAxMDA2NDRcbi0tLSBhL2RyaXZlcnMvbmV0L2lwYS9pcGFfcmVnLmNcbisrKyBiL2RyaXZlcnMvbmV0L2lwYS9pcGFfcmVnLmNcbkBAIC0xMjUsNiArMTI1LDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCByZWdzICppcGFfcmVncyhlbnVtIGlwYV92ZXJzaW9uIHZlcnNpb24pXG4gXHRjYXNlIElQQV9WRVJTSU9OXzRfMTE6XG4gXHRcdHJldHVybiBcdTAwMjZpcGFfcmVnc192NF8xMTtcbiBcdGNhc2UgSVBBX1ZFUlNJT05fNV8wOlxuK1x0Y2FzZSBJUEFfVkVSU0lPTl81XzE6XG4gXHRjYXNlIElQQV9WRVJTSU9OXzVfMjpcbiBcdFx0cmV0dXJuIFx1MDAyNmlwYV9yZWdzX3Y1XzA7XG4gXHRjYXNlIElQQV9WRVJTSU9OXzVfNTpcbiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA2LTIzVDAyOjAwOjI4LjM3NzI4OTk3OFoiLCJTZXEiOjMsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjYzNjk3MjU3MjMsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqQXNzZXNzaW5nIHRoZSBJUEEgdjUuMSBQYXRjaCBmb3IgRnV6emluZyBSZWxldmFuY2UqKlxuXG5Pa2F5LCBzbyBJJ3ZlIGdvdCB0aGlzIHBhdGNoIHNlcmllcyBpbiBmcm9udCBvZiBtZSwgYW5kIG15IGltbWVkaWF0ZSBjb25jZXJuIGlzIHdoZXRoZXIgaXQgaW50cm9kdWNlcyBhbnkgZnVuY3Rpb25hbCBjaGFuZ2VzIHRvIHRoZSBrZXJuZWwgdGhhdCB3YXJyYW50IGZ1cnRoZXIgZnV6emluZyBlZmZvcnRzLiBUaGUgcGF0Y2ggc2VlbXMgZm9jdXNlZCBvbiBhZGRpbmcgc3VwcG9ydCBmb3IgYSBuZXcgdmVyc2lvbiBvZiB0aGUgUXVhbGNvbW0gSVBBLCBzcGVjaWZpY2FsbHkgYHFjb20sc204NDUwLWlwYWAgb3IgSVBBIHY1LjEuIFRoYXQncyBhIGRlZmluaXRlIGluZGljYXRvciB0aGF0IHdlIG5lZWQgdG8gcGF5IGF0dGVudGlvbi5cblxuTG9va2luZyBhdCB0aGUgZmlsZSBsaXN0LCB3ZSdyZSBzZWVpbmcgbW9kaWZpY2F0aW9ucyB0byBkZXZpY2UgdHJlZSBiaW5kaW5ncywgdGhlIERUUyBpdHNlbGYgZm9yIHRoZSBgc204NDUwYCBwbGF0Zm9ybSwgTWFrZWZpbGVzLCBhbmQsIGNydWNpYWxseSwgYSBuZXcgYGlwYV9kYXRhLXY1LjEuY2AgZmlsZSBhbG9uZyB3aXRoIGNoYW5nZXMgdG8gZXhpc3RpbmcgZHJpdmVyIHNvdXJjZSBmaWxlcy4gVGhlIGNoYW5nZXMgYXBwZWFyIHRvIGJlIGhlYXZpbHkgY2VudGVyZWQgYXJvdW5kIGRhdGEgc3RydWN0dXJlcywgaW50ZWdyYXRpbmcgdGhpcyBuZXcgSVBBIHZlcnNpb24gaW50byB0aGUgZHJpdmVyJ3MgbWF0Y2ggdGFibGVzLCBhbmQsIGFzIGV4cGVjdGVkLCB1cGRhdGluZyBib3RoIHRoZSBEVCBiaW5kaW5ncyBhbmQgRFRTIHRvIHJlY29nbml6ZSB0aGUgbmV3IGhhcmR3YXJlLiBUaGUgSVBBIGRyaXZlciwgb2YgY291cnNlLCBpcyBzcGVjaWZpYyB0byBRdWFsY29tbSBTb0NzLlxuXG5Ob3csIHRoZSBiaWcgcXVlc3Rpb24gaXMsIGFyZSB0aGVzZSBjaGFuZ2VzIHJlYWNoYWJsZSBpbiBlbnZpcm9ubWVudHMgbGlrZSBHQ0Ugb3IgUUVNVT8gVHlwaWNhbGx5LCB0aGUgUXVhbGNvbW0gSVBBIGlzIGEgaGFyZHdhcmUgYWNjZWxlcmF0b3IsIGEgcGh5c2ljYWwgcGllY2Ugb2Ygc2lsaWNvbiBvbiB0aGUgU29DLiBUaGUgdGhpbmcgaXMsIGl0J3Mgbm90IGVtdWxhdGVkIGluIGVpdGhlciBRRU1VIG9yIEdDRS4gVGhpcyBtZWFucyByZWFjaGluZyB0aGlzIGNvZGUgaW4gYSBzdGFuZGFyZCB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudCBpcyBnb2luZyB0byBiZSBkaWZmaWN1bHQsIGlmIG5vdCBpbXBvc3NpYmxlLiBCdXQsIGJlZm9yZSBJIGRpc21pc3MgaXQgY29tcGxldGVseSwgSSBuZWVkIHRvIGJlICphYnNvbHV0ZWx5IHN1cmUqLiBJJ2xsIHVzZSBgZ3JlcHBlcmAgdG8gc2VlIGlmIHRoZXJlJ3MgYW55IG1lbnRpb24gb2Ygc29mdHdhcmUgZW11bGF0aW9uLCBhbnkgaG9va3MgdGhhdCBtaWdodCBiZSB1c2VkIHRvIHNpbXVsYXRlIGl0cyBmdW5jdGlvbmFsaXR5IGluIGFuIGFsdGVybmF0ZSBjb250ZXh0LiBXZSdsbCB2ZXJpZnkgdGhlcmUgYXJlIG5vIGZhbGxiYWNrcyBoZXJlLiBUaGVuLCB3ZSBjYW4gbWFrZSB0aGUgY2FsbC5cblxuXG4iLCJJbnB1dFRva2VucyI6MTAxODAsIk91dHB1dFRva2VucyI6MjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjozMzcsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNi0yM1QwMjowMDozNC43NDcwMTc1MDFaIiwiU2VxIjo0LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6Mjg0MjI5MjAzOSwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJDT05GSUdfUUNPTV9JUEFcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiYXJjaC9hcm02NC9jb25maWdzL2RlZmNvbmZpZz00NTk9Q09ORklHX1hJTElOWF9BWElfRU1BQz1tXFxuYXJjaC9hcm02NC9jb25maWdzL2RlZmNvbmZpZzo0NjA6Q09ORklHX1FDT01fSVBBPW1cXG5hcmNoL2FybTY0L2NvbmZpZ3MvZGVmY29uZmlnLTQ2MS1DT05GSUdfTUVTT05fR1hMX1BIWT1tXFxuLS1cXG5kcml2ZXJzL25ldC9NYWtlZmlsZT01NT1vYmotJChDT05GSUdfRkRESSkgKz0gZmRkaS9cXG5kcml2ZXJzL25ldC9NYWtlZmlsZTo1NjpvYmotJChDT05GSUdfUUNPTV9JUEEpICs9IGlwYS9cXG5kcml2ZXJzL25ldC9NYWtlZmlsZS01Ny1vYmotJChDT05GSUdfUExJUCkgKz0gcGxpcC9cXG4tLVxcbmRyaXZlcnMvbmV0L2lwYS9NYWtlZmlsZT0xMD1JUEFfREFUQV9WRVJTSU9OU1xcdDo9XFx0My4xIDMuNS4xIDQuMiA0LjUgNC43IDQuOSA0LjExIDUuMCA1LjEgNS4yIDUuNVxcbmRyaXZlcnMvbmV0L2lwYS9NYWtlZmlsZS0xMS1cXG5kcml2ZXJzL25ldC9pcGEvTWFrZWZpbGU6MTI6b2JqLSQoQ09ORklHX1FDT01fSVBBKVxcdCs9XFx0aXBhLm9cXG5kcml2ZXJzL25ldC9pcGEvTWFrZWZpbGUtMTMtXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA2LTIzVDAyOjAwOjM3LjU4OTMxNjNaIiwiU2VxIjo1LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo0OTE3NDA5NTk0LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJIZXJlJ3MgbXkgdGhvdWdodCBwcm9jZXNzLCBzdW1tYXJpemVkIGFzIHlvdSByZXF1ZXN0ZWQ6XG5cbioqS2NvbmZpZyBEaXZlIGZvciBRQ09NX0lQQSoqXG5cbkFscmlnaHQsIGxldCdzIGdldCBkb3duIHRvIGJyYXNzIHRhY2tzLiBNeSBpbml0aWFsIHRob3VnaHQgaXMgdG8gZGl2ZSBzdHJhaWdodCBpbnRvIHRoZSBgS2NvbmZpZ2AgZmlsZXMuIEkgbmVlZCB0byB1bmRlcnN0YW5kIHRoZSBjb25maWd1cmF0aW9uIG9wdGlvbnMgcmVsYXRlZCB0byBgUUNPTV9JUEFgLiBUaGlzIGlzIHRoZSBiZWRyb2NrOyBpdCdzIHdoZXJlIHRoZSBjb250cm9sIGZsYWdzIGFuZCBkZXBlbmRlbmNpZXMgZm9yIHRoaXMgZmVhdHVyZSBhcmUgbGFpZCBvdXQuIEkgd2FudCB0byBzZWU6XG5cbiogICAqKkl0cyBkZXBlbmRlbmNpZXM6KiogV2hhdCBvdGhlciBjb21wb25lbnRzIG9yIGZlYXR1cmVzIG11c3QgYmUgZW5hYmxlZCBmb3IgYFFDT01fSVBBYCB0byBldmVuIGJlIGNvbnNpZGVyZWQ/IEFyZSB0aGVyZSBzcGVjaWZpYyBRdWFsY29tbS1yZWxhdGVkIGZsYWdzLCBvdGhlciBJUEEgKElQIEFjY2VsZXJhdG9yKSBjb25maWd1cmF0aW9ucywgb3IgYnJvYWRlciBwbGF0Zm9ybSByZXF1aXJlbWVudHM/XG4qICAgKipJdHMgY29uZGl0aW9uYWxzOioqIFVuZGVyIHdoYXQgY2lyY3Vtc3RhbmNlcyBpcyBgUUNPTV9JUEFgIG1hZGUgYXZhaWxhYmxlPyBJcyBpdCB0aWVkIHRvIGEgc3BlY2lmaWMgYm9hcmQsIENQVSBhcmNoaXRlY3R1cmUsIG9yIGtlcm5lbCB2ZXJzaW9uPyBBcmUgdGhlcmUgYW55IGAjaWZkZWZgIHN0YXRlbWVudHMgb3Igc2ltaWxhciBsb2dpYyBJIG5lZWQgdG8gcGFyc2U/XG4qICAgKipJdHMgZGVmYXVsdCBzdGF0ZToqKiBJcyBgUUNPTV9JUEFgIGVuYWJsZWQgYnkgZGVmYXVsdCwgZGlzYWJsZWQsIG9yIHNldCB0byBzb21lIFwiYXV0b1wiIGNvbmZpZ3VyYXRpb24/IFRoaXMgd2lsbCBnaXZlIG1lIGEgY2x1ZSBhcyB0byBpdHMgaW50ZW5kZWQgdXNlIGFuZCBnZW5lcmFsIGRlc2lnbiBwaGlsb3NvcGh5LlxuKiAgICoqSXRzIGRlc2NyaXB0aW9uczoqKiBDcnVjaWFsbHksIHdoYXQgYXJlIHRoZSBoZWxwIHRleHRzIGFzc29jaWF0ZWQgd2l0aCB0aGlzIGNvbmZpZyBvcHRpb24/IFRoZXkgd2lsbCBsaWtlbHkgcHJvdmlkZSBtb3JlIGNvbnRleHQuIFdoYXQgZG9lcyBpdCAqZG8qIGFuZCB3aHkgc2hvdWxkIHNvbWVvbmUgZW5hYmxlIGl0PyBBbnkgY2F2ZWF0cyBvciB3YXJuaW5ncz9cbiogICAqKkl0cyBsb2NhdGlvbjoqKiBXaGVyZSBpcyB0aGlzIGNvbmZpZyBkZWZpbmVkPyBJcyBpdCBpbiB0aGUga2VybmVsIHRyZWUsIGEgdmVuZG9yLXNwZWNpZmljIHBhcnQsIG9yIGEgdGhpcmQtcGFydHkgbW9kdWxlPyBLbm93aW5nIGl0cyBsb2NhdGlvbiB3aWxsIGdpdmUgbWUgYSBsb3Qgb2YgY29udGV4dC5cblxuQmFzaWNhbGx5LCBJIGFtIG1hcHBpbmcgb3V0IHRoZSAqY29uZmlndXJhdGlvbiBsYW5kc2NhcGUqIGZvciBgUUNPTV9JUEFgLiBUaGlzIEtjb25maWcgaXMgYSBrZXkgdG8gdW5sb2NrIHRoZSBmZWF0dXJlLiBJdCdzIHRoZSBzdGFydGluZyBwb2ludCBiZWZvcmUgSSBtb3ZlIGFueSBmdXJ0aGVyLCB3aGV0aGVyIEkgbG9vayBhdCBzb3VyY2UgY29kZSwgYnVpbGQgc2NyaXB0cywgb3IgZGV2aWNlIHRyZWVzLiBJIHdhbnQgdG8gYnVpbGQgYSBjb21wcmVoZW5zaXZlIHBpY3R1cmUgb2YgaG93IHRoaXMgb3B0aW9uIGlzIGNvbnRyb2xsZWQsIGFuZCB3aGF0IGltcGFjdCBpdCBoYXMuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjExMTk0LCJPdXRwdXRUb2tlbnMiOjE5LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MTQsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDYtMjNUMDI6MDA6NDIuNTA2NzI5NTk0WiIsIlNlcSI6NiwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjI2MDI1NTY0NTQsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiY29uZmlnIFFDT01fSVBBXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImRyaXZlcnMvbmV0L2lwYS9LY29uZmlnOjE6Y29uZmlnIFFDT01fSVBBXFxuZHJpdmVycy9uZXQvaXBhL0tjb25maWctMi1cXHR0cmlzdGF0ZSBcXFwiUXVhbGNvbW0gSVBBIHN1cHBvcnRcXFwiXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA2LTIzVDAyOjAwOjQ1LjEwOTI5Njk0OFoiLCJTZXEiOjcsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjQ2OTYxNjMyNDksIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IkhlcmUncyBteSBhdHRlbXB0IGF0IHN1bW1hcml6aW5nIHRoZSB0aG91Z2h0IHByb2Nlc3MsIHRhaWxvcmVkIGZvciBhbiBleHBlcnQgYXVkaWVuY2U6XG5cbioqRGl2aW5nIGludG8gdGhlIElQQSBLY29uZmlnKipcblxuQWxyaWdodCwgbGV0J3MgcHVsbCB1cCBgZHJpdmVycy9uZXQvaXBhL0tjb25maWdgLiBUaW1lIHRvIGdldCBhIGhhbmRsZSBvbiB0aGUgY29uZmlndXJhdGlvbiBvcHRpb25zIGZvciB0aGUgSVBBIChJbnRlZ3JhdGVkIFBhY2tldCBBY2NlbGVyYXRvcikgZHJpdmVyLiBJIG5lZWQgdG8gdW5kZXJzdGFuZCBob3cgdGhpcyB0aGluZyBpcyBidWlsdCwgd2hhdCBmZWF0dXJlcyBhcmUgZXhwb3NlZCwgYW5kIGhvdyB0aGV54oCZcmUgY29udHJvbGxlZCB0aHJvdWdoIHRoZSBrZXJuZWwncyBjb25maWd1cmF0aW9uIHN5c3RlbS4gTXkgaW50dWl0aW9uIHNheXMgdGhpcyB3aWxsIHByb2JhYmx5IGJlIGEgY29tcGxleCBhbmQgbXVsdGlmYWNldGVkIHNldCBvZiBvcHRpb25zLCBnaXZlbiB0aGUgcm9sZSBvZiBoYXJkd2FyZSBhY2NlbGVyYXRpb24gaW4gbmV0d29ya2luZy4gSSdtIGV4cGVjdGluZyB0byBzZWUgZGVwZW5kZW5jaWVzIG9uIHRoZSBoYXJkd2FyZSBwbGF0Zm9ybSwgbGlrZWx5IEFSTS1zcGVjaWZpYyBmZWF0dXJlcywgYW5kIHBlcmhhcHMgZGlmZmVyZW50IGJ1aWxkIGNob2ljZXMgZm9yIGRpZmZlcmVudCBJUEEgY2FwYWJpbGl0aWVzOiBvZmZsb2FkLCBmaWx0ZXJpbmcsIFFvUywgYW5kIGFueSBvdGhlciB1bmlxdWUgY2FwYWJpbGl0aWVzIHRoaXMgc3BlY2lmaWMgSVAgYmxvY2sgaGFzLiBXZSBzaG91bGQgYWxzbyBsb29rIGZvciBvcHRpb25zIHRoYXQgY2FuIGluZmx1ZW5jZSBwZXJmb3JtYW5jZSwgbWVtb3J5IHVzYWdlLCBhbmQgZGVidWdnaW5nLCB3aGljaCBhcmUgY3JpdGljYWwgdHVuaW5nIHBhcmFtZXRlcnMuIEkgd2FudCB0byBzZWUgaG93IG1vZHVsYXIgdGhlIGRyaXZlciBpczsgd2hldGhlciB3ZSBjYW4gc2VsZWN0aXZlbHkgZW5hYmxlIHBvcnRpb25zIG9mIHRoZSBoYXJkd2FyZSBmdW5jdGlvbmFsaXR5IG9yIGlmIGl04oCZcyBtb3JlIG1vbm9saXRoaWMuIFRoZSBLY29uZmlnIGZpbGUgaXMgdGhlIGtleSB0byB1bmRlcnN0YW5kaW5nIGFsbCBvZiB0aGlzLlxuXG5cbiIsIklucHV0VG9rZW5zIjoxMTY4MSwiT3V0cHV0VG9rZW5zIjozNCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjE0LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA2LTIzVDAyOjAwOjQ5LjgwNTQ2NDQ1N1oiLCJTZXEiOjgsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6InJlYWQtZmlsZSIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjg0OTYwLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRmlsZVwiOiBcImRyaXZlcnMvbmV0L2lwYS9LY29uZmlnXCIsXG4gIFwiRmlyc3RMaW5lXCI6IDEsXG4gIFwiTGluZUNvdW50XCI6IDIwXG59IiwiUmVzdWx0cyI6IntcbiAgXCJDb250ZW50c1wiOiBcIiAgIDE6XFx0Y29uZmlnIFFDT01fSVBBXFxuICAgMjpcXHRcXHR0cmlzdGF0ZSBcXFwiUXVhbGNvbW0gSVBBIHN1cHBvcnRcXFwiXFxuICAgMzpcXHRcXHRkZXBlbmRzIG9uIE5FVCBcXHUwMDI2XFx1MDAyNiBRQ09NX1NNRU1cXG4gICA0OlxcdFxcdGRlcGVuZHMgb24gQVJDSF9RQ09NIHx8IENPTVBJTEVfVEVTVFxcbiAgIDU6XFx0XFx0ZGVwZW5kcyBvbiBJTlRFUkNPTk5FQ1RcXG4gICA2OlxcdFxcdGRlcGVuZHMgb24gUUNPTV9SUFJPQ19DT01NT04gfHwgKFFDT01fUlBST0NfQ09NTU9OPW4gXFx1MDAyNlxcdTAwMjYgQ09NUElMRV9URVNUKVxcbiAgIDc6XFx0XFx0ZGVwZW5kcyBvbiBRQ09NX0FPU1NfUU1QIHx8IFFDT01fQU9TU19RTVA9blxcbiAgIDg6XFx0XFx0c2VsZWN0IFFDT01fTURUX0xPQURFUlxcbiAgIDk6XFx0XFx0c2VsZWN0IFFDT01fU0NNXFxuICAxMDpcXHRcXHRzZWxlY3QgUUNPTV9RTUlfSEVMUEVSU1xcbiAgMTE6XFx0XFx0aGVscFxcbiAgMTI6XFx0XFx0ICBDaG9vc2UgWSBvciBNIGhlcmUgdG8gaW5jbHVkZSBzdXBwb3J0IGZvciB0aGUgUXVhbGNvbW1cXG4gIDEzOlxcdFxcdCAgSVAgQWNjZWxlcmF0b3IgKElQQSksIGEgaGFyZHdhcmUgYmxvY2sgcHJlc2VudCBpbiBzb21lXFxuICAxNDpcXHRcXHQgIFF1YWxjb21tIFNvQ3MuICBUaGUgSVBBIGlzIGEgcHJvZ3JhbW1hYmxlIHByb3RvY29sIHByb2Nlc3NvclxcbiAgMTU6XFx0XFx0ICB0aGF0IGlzIGNhcGFibGUgb2YgZ2VuZXJpYyBoYXJkd2FyZSBoYW5kbGluZyBvZiBJUCBwYWNrZXRzLFxcbiAgMTY6XFx0XFx0ICBpbmNsdWRpbmcgcm91dGluZywgZmlsdGVyaW5nLCBhbmQgTkFULiAgQ3VycmVudGx5IHRoZSBJUEFcXG4gIDE3OlxcdFxcdCAgZHJpdmVyIHN1cHBvcnRzIG9ubHkgYmFzaWMgdHJhbnNwb3J0IG9mIG5ldHdvcmsgdHJhZmZpY1xcbiAgMTg6XFx0XFx0ICBiZXR3ZWVuIHRoZSBBUCBhbmQgbW9kZW0uXFxuICAxOTpcXHRcXG4gIDIwOlxcdFxcdCAgTm90ZSB0aGF0IGlmIHNlbGVjdGVkLCB0aGUgc2VsZWN0aW9uIHR5cGUgbXVzdCBtYXRjaCB0aGF0XFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA2LTIzVDAyOjAwOjQ5LjgwNTU1MTA1N1oiLCJTZXEiOjksIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjg3MTA5NjkyOTMsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqV29ydGhGdXp6aW5nIEFzc2Vzc21lbnQ6IE5vLCBUaGlzIFBhdGNoIElzbid0IEZ1enphYmxlKipcblxuT2theSwgbGV0J3MgYnJlYWsgdGhpcyBkb3duLiBUaGlzIHBhdGNoIGlzIGFsbCBhYm91dCBhZGRpbmcgc3VwcG9ydCBmb3IgYSBuZXcgdmVyc2lvbiwgdjUuMSwgb2YgdGhlIFF1YWxjb21tIElQQSAoSVAgQWNjZWxlcmF0b3IpIGhhcmR3YXJlIGJsb2NrLCBzcGVjaWZpY2FsbHkgZm9yIHRoZSBTTTg0NTAgU29DLiBNeSB1bmRlcnN0YW5kaW5nIGlzIHRoYXQgdGhlIElQQSBpcyBhIHZlcnkgc3BlY2lmaWMgcGllY2Ugb2YgaGFyZHdhcmUgaW4gUXVhbGNvbW0gU29DcyDigJMgaXQncyBub3Qgc29tZXRoaW5nIHRoYXQgY2FuIGJlIGVtdWxhdGVkIGluIGVudmlyb25tZW50cyBsaWtlIFFFTVUgb3IgR29vZ2xlIENvbXB1dGUgRW5naW5lLiBUaGF0J3MgdGhlIGtleS5cblxuVGhpcyBwYXRjaCBpdHNlbGYgc2VlbXMgYmVuaWduLiBJJ20gc2VlaW5nIG5ldyBkYXRhIHN0cnVjdHVyZXMsIGRldmljZSB0cmVlIGJpbmRpbmdzLCBhbmQgdGhlIHJlZ2lzdHJhdGlvbiBvZiBhIG5ldyBcImNvbXBhdGlibGVcIiBzdHJpbmcuIFNvLCBpdCBhcHBlYXJzIHdlJ3JlIGp1c3Qgc2V0dGluZyB1cCB0aGUgc3lzdGVtIHRvIHJlY29nbml6ZSBhbmQgY29uZmlndXJlIHRoaXMgbmV3IGhhcmR3YXJlIHZlcnNpb24uIFRoZXJlJ3Mgbm8gZnVuY3Rpb25hbCBsb2dpYyBiZWluZyBpbnRyb2R1Y2VkIGhlcmUgdGhhdCBJIGNvdWxkIHNlZSBiZWluZyByZWxldmFudCB0byBmdXp6aW5nLCBlc3BlY2lhbGx5IG5vdCBpbiBhIHZpcnR1YWxpemVkIGVudmlyb25tZW50LlxuXG5Ob3csIGxldCdzIHF1aWNrbHkgcmV2aWV3IHRoZSBzcGVjaWZpYyBmaWxlcyBtb2RpZmllZCB0byBkb3VibGUtY2hlY2sgbXkgaW5pdGlhbCBhc3Nlc3NtZW50LlxuXG4qICAgYGRyaXZlcnMvbmV0L2lwYS9kYXRhL2lwYV9kYXRhLXY1LjEuY2A6IEp1c3QgZGF0YS5cbiogICBgZHJpdmVycy9uZXQvaXBhL2dzaV9yZWcuY2A6IEFkZGluZyBhIGBjYXNlIElQQV9WRVJTSU9OXzVfMTpgIHRvIHJldHVybiBgXHUwMDI2Z3NpX3JlZ3NfdjVfMGAuIFRoaXMgaXMganVzdCBhZGRpbmcgYSBicmFuY2ggYmFzZWQgb24gdmVyc2lvbiBudW1iZXIsIG5vdCBuZXcgbG9naWMuXG4qICAgYGRyaXZlcnMvbmV0L2lwYS9pcGFfcmVnLmNgOiBTaW1pbGFybHksIGFkZGluZyBhIGBjYXNlIElQQV9WRVJTSU9OXzVfMTpgIHRvIHJldHVybiBgXHUwMDI2aXBhX3JlZ3NfdjVfMGAuIEFub3RoZXIgYnJhbmNoLCBqdXN0IGNvbmZpZ3VyYXRpb24gZGF0YS5cbiogICBgZHJpdmVycy9uZXQvaXBhL2lwYV9tYWluLmNgOiBBZGRpbmcgdGhlIGNvbXBhdGlibGUgc3RyaW5nIHRvIGEgdGFibGUuXG4qICAgYGRyaXZlcnMvbmV0L2lwYS9NYWtlZmlsZWA6IEFkZGluZyBgNS4xYCB0byB0aGUgYElQQV9EQVRBX1ZFUlNJT05TYCB2YXJpYWJsZS5cbiogICBgYXJjaC9hcm02NC9ib290L2R0cy9xY29tL3NtODQ1MC5kdHNpYDogQWRkaW5nIHRoZSBEZXZpY2UgVHJlZSBub2RlLCB3aGljaCBpcyBlc3NlbnRpYWwgZm9yIGhhcmR3YXJlIGNvbmZpZ3VyYXRpb24uXG4qICAgYERvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvcWNvbSxpcGEueWFtbGA6IEFkZGluZyB0aGUgY29tcGF0aWJsZSBzdHJpbmcgdG8gdGhlIGRvY3VtZW50YXRpb24uXG5cbkxvb2tpbmcgYXQgZWFjaCBmaWxlIGNvbmZpcm1zIG15IGluaXRpYWwgYXNzZXNzbWVudC4gQWxsIHRoZXNlIGNoYW5nZXMgYXJlIGFib3V0IGRhdGEgc3RydWN0dXJlcywgaGFyZHdhcmUgdmVyc2lvbiBlbnVtZXJhdGlvbiwgYW5kIGRldmljZSB0cmVlIGluZm9ybWF0aW9uLiBUaGVyZSdzIG5vIGNvZGUgY2hhbmdlIGhlcmUgdGhhdCByZXByZXNlbnRzIG5ldyBmdW5jdGlvbmFsaXR5LCBhbmQgY3JpdGljYWxseSwgdGhlcmUncyBubyB3YXkgdG8gcmVhY2ggdGhpcyBjb2RlIGluIGEgZnV6emluZyBzZXR1cC4gSSdtIGNvbXBsZXRlbHkgY29uZmlkZW50IG5vdyB0aGF0IHRoaXMgaXNuJ3QgZnV6emFibGUuIEkgd2lsbCBzZXQgYFdvcnRoRnV6emluZz1mYWxzZWAuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjEyMjgyLCJPdXRwdXRUb2tlbnMiOjEyMCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjQzNiwiVG9vbENhbGxzIjpbInJlYWQtZmlsZSJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA2LTIzVDAyOjAwOjU4LjUxNjUyMzI4WiIsIlNlcSI6MTAsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6InNldC1yZXN1bHRzIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MzE5NTAsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IFtdLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggYWRkcyBzdXBwb3J0IGZvciBhIG5ldyBoYXJkd2FyZSB2ZXJzaW9uICh2NS4xKSBvZiB0aGUgUXVhbGNvbW0gSVAgQWNjZWxlcmF0b3IgKElQQSkgZm9yIHRoZSBTTTg0NTAgU29DLiBJdCBvbmx5IGludHJvZHVjZXMgbmV3IGRhdGEgc3RydWN0dXJlcywgZGV2aWNlIHRyZWUgYmluZGluZ3MsIGFuZCByZWdpc3RlcnMgdGhlIG5ldyBjb21wYXRpYmxlIHN0cmluZy4gVGhlIElQQSBpcyBhIGhhcmR3YXJlIGJsb2NrIHNwZWNpZmljIHRvIFF1YWxjb21tIFNvQ3MgYW5kIGlzIG5vdCBlbXVsYXRlZCBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBRRU1VIG9yIEdDRSwgbWFraW5nIHRoaXMgY29kZSB1bnJlYWNoYWJsZSBhbmQgdW50ZXN0YWJsZSBkdXJpbmcgZnV6emluZy5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogZmFsc2Vcbn0iLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogbnVsbCxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW10sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIGFkZHMgc3VwcG9ydCBmb3IgYSBuZXcgaGFyZHdhcmUgdmVyc2lvbiAodjUuMSkgb2YgdGhlIFF1YWxjb21tIElQIEFjY2VsZXJhdG9yIChJUEEpIGZvciB0aGUgU004NDUwIFNvQy4gSXQgb25seSBpbnRyb2R1Y2VzIG5ldyBkYXRhIHN0cnVjdHVyZXMsIGRldmljZSB0cmVlIGJpbmRpbmdzLCBhbmQgcmVnaXN0ZXJzIHRoZSBuZXcgY29tcGF0aWJsZSBzdHJpbmcuIFRoZSBJUEEgaXMgYSBoYXJkd2FyZSBibG9jayBzcGVjaWZpYyB0byBRdWFsY29tbSBTb0NzIGFuZCBpcyBub3QgZW11bGF0ZWQgaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgUUVNVSBvciBHQ0UsIG1ha2luZyB0aGlzIGNvZGUgdW5yZWFjaGFibGUgYW5kIHVudGVzdGFibGUgZHVyaW5nIGZ1enppbmcuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IGZhbHNlXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH1dOwoJCQlpZiAoIXJhd0RhdGEgfHwgcmF3RGF0YS5sZW5ndGggPT09IDApIHJldHVybjsKCgkJCWRyYXdTdW1tYXJ5VGFibGVzKHJhd0RhdGEpOwoJCQlkcmF3RHVyYXRpb25DaGFydChyYXdEYXRhKTsKCQkJZHJhd1Rva2VuQ29uc3VtcHRpb25DaGFydChyYXdEYXRhKTsKCQl9CgoJCWZ1bmN0aW9uIGRyYXdTdW1tYXJ5VGFibGVzKHJhd0RhdGEpIHsKCQkJY29uc3Qgc3RhdHMgPSB7CgkJCQlsbG06IHsgY291bnQ6IDAsIHRva2VuczogMCwgZHVyYXRpb246IDAgfSwKCQkJCXRvb2w6IHsgY291bnQ6IDAsIGR1cmF0aW9uOiAwIH0KCQkJfTsKCgkJCXJhd0RhdGEuZm9yRWFjaChzID0+IHsKCQkJCWNvbnN0IGR1ciA9IHMuRHVyYXRpb24gLyAxMDAwMDAwMDAwOyAKCQkJCWlmIChzLlR5cGUgPT09ICJsbG0iKSB7CgkJCQkJc3RhdHMubGxtLmNvdW50Kys7CgkJCQkJc3RhdHMubGxtLnRva2VucyArPSAocy5JbnB1dFRva2VucyArIHMuT3V0cHV0VG9rZW5zICsgcy5PdXRwdXRUaG91Z2h0c1Rva2Vucyk7CgkJCQkJc3RhdHMubGxtLmR1cmF0aW9uICs9IGR1cjsKCQkJCX0gZWxzZSBpZiAocy5UeXBlID09PSAidG9vbCIpIHsKCQkJCQlzdGF0cy50b29sLmNvdW50Kys7CgkJCQkJc3RhdHMudG9vbC5kdXJhdGlvbiArPSBkdXI7CgkJCQl9CgkJCX0pOwoKCQkJY29uc3QgYXZnTGxtRHVyID0gc3RhdHMubGxtLmNvdW50ID4gMCA/IChzdGF0cy5sbG0uZHVyYXRpb24gLyBzdGF0cy5sbG0uY291bnQpLnRvRml4ZWQoMikgOiAwOwoJCQljb25zdCBhdmdMbG1Ub2tlbiA9IHN0YXRzLmxsbS5jb3VudCA+IDAgPyAoc3RhdHMubGxtLnRva2VucyAvIHN0YXRzLmxsbS5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgkJCWNvbnN0IGF2Z1Rvb2xEdXIgPSBzdGF0cy50b29sLmNvdW50ID4gMCA/IChzdGF0cy50b29sLmR1cmF0aW9uIC8gc3RhdHMudG9vbC5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgoJCQljb25zdCBsbG1TdW1hcnlDZWxscyA9IFtzdGF0cy5sbG0uY291bnQsIHN0YXRzLmxsbS50b2tlbnMsIGF2Z0xsbVRva2VuLCBzdGF0cy5sbG0uZHVyYXRpb24sIGF2Z0xsbUR1cl07CgkJCWNvbnN0IHRvb2xTdW1tYXJ5Q2VsbHMgPSBbc3RhdHMudG9vbC5jb3VudCwgc3RhdHMudG9vbC5kdXJhdGlvbiwgYXZnVG9vbER1cl07CgoJCQljb25zdCBsbG1TdW1tYXJ5Qm9keSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdsbG1fc3VtbWFyeV9zdGF0c19ib2R5Jyk7CgkJCWxsbVN1bW1hcnlCb2R5LmlubmVySFRNTCA9ICIiOwoJCQljb25zdCBsbG1UciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RyJyk7CgkJCWxsbVN1bWFyeUNlbGxzLmZvckVhY2goY2VsbCA9PiB7CgkJCQljb25zdCB0ZCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RkJyk7CgkJCQl0ZC50ZXh0Q29udGVudCA9IGNlbGw7CgkJCQlsbG1Uci5hcHBlbmRDaGlsZCh0ZCk7CgkJCX0pOwoJCQlsbG1TdW1tYXJ5Qm9keS5hcHBlbmRDaGlsZChsbG1Ucik7CgoJCQljb25zdCB0b29sU3VtbWFyeUJvZHkgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndG9vbF9zdW1tYXJ5X3N0YXRzX2JvZHknKTsKCQkJdG9vbFN1bW1hcnlCb2R5LmlubmVySFRNTCA9ICIiOwoJCQljb25zdCB0b29sVHIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0cicpOwoJCQl0b29sU3VtbWFyeUNlbGxzLmZvckVhY2goY2VsbCA9PiB7CgkJCQljb25zdCB0ZCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RkJyk7CgkJCQl0ZC50ZXh0Q29udGVudCA9IGNlbGw7CgkJCQl0b29sVHIuYXBwZW5kQ2hpbGQodGQpOwoJCQl9KTsKCQkJdG9vbFN1bW1hcnlCb2R5LmFwcGVuZENoaWxkKHRvb2xUcik7CgkJfQoKCQlmdW5jdGlvbiBkcmF3RHVyYXRpb25DaGFydChyYXdEYXRhKSB7CgkJCWNvbnN0IGZpbHRlcmVkU3RlcHMgPSByYXdEYXRhLmZpbHRlcihkID0+IFsibGxtIiwgInRvb2wiXS5pbmNsdWRlcyhkLlR5cGUpKTsKCQkJY29uc3QgZGF0YSA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5EYXRhVGFibGUoKTsKCQkJZGF0YS5hZGRDb2x1bW4oJ3N0cmluZycsICdTdGVwJyk7CgkJCWRhdGEuYWRkQ29sdW1uKCdudW1iZXInLCAnRHVyYXRpb24nKTsKCQkJZGF0YS5hZGRDb2x1bW4oe3R5cGU6ICdzdHJpbmcnLCByb2xlOiAndG9vbHRpcCd9KTsgCgoJCQlmaWx0ZXJlZFN0ZXBzLmZvckVhY2gocyA9PiB7CgkJCQkKCQkJCWNvbnN0IGR1ciA9IHMuRHVyYXRpb24gLyAxMDAwMDAwMDAwOwoJCQkJbGV0IHRvb2x0aXAgPSBzLk5hbWU7CgkJCQlpZiAocy5UeXBlID09PSAibGxtIiAmJiBzLlRvb2xDYWxscyAmJiBzLlRvb2xDYWxscy5sZW5ndGggPiAwKSB7CgkJCQkJdG9vbHRpcCArPSBgXG5Ub29sczogJHtzLlRvb2xDYWxscy5qb2luKCcsICcpfWA7CgkJCQl9CgkJCQlkYXRhLmFkZFJvdyhbYCR7cy5TZXF9YCwgZHVyLCB0b29sdGlwXSk7CgkJCX0pOwoKCQkJY29uc3Qgb3B0aW9ucyA9IHsKCQkJCXRpdGxlOiAnVGltZSBDb25zdW1wdGlvbiBvZiBMTE0vVG9vbCBDYWxscycsCgkJCQloQXhpczogewoJCQkJCXRpdGxlOiAnTExNL1Rvb2wgU3RlcHMnLAoJCQkJfSwKCQkJCXZBeGlzOiB7IHRpdGxlOiAnU2Vjb25kcycgfSwKCQkJCWxlZ2VuZDogeyBwb3NpdGlvbjogJ25vbmUnIH0sCgkJCQliYXI6IHsgZ3JvdXBXaWR0aDogJzc1JScgfSwKCQkJCWNoYXJ0QXJlYTogeyB3aWR0aDogJzg1JScsIGhlaWdodDogJzcwJScgfSwKCQkJCWhlaWdodDogNDAwCgkJCX07CgoJCQljb25zdCBjaGFydCA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5Db2x1bW5DaGFydChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZHVyYXRpb25fY2hhcnRfZGl2JykpOwoJCQljaGFydC5kcmF3KGRhdGEsIG9wdGlvbnMpOwoJCX0KCgkJZnVuY3Rpb24gZHJhd1Rva2VuQ29uc3VtcHRpb25DaGFydChyYXdEYXRhKSB7CgkJCWNvbnN0IGxsbVN0ZXBzID0gcmF3RGF0YS5maWx0ZXIoZCA9PiBkLlR5cGUgPT09ICJsbG0iKTsKCQkJaWYgKGxsbVN0ZXBzLmxlbmd0aCA9PT0gMCkgcmV0dXJuOwoKCQkJY29uc3QgZGF0YSA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5EYXRhVGFibGUoKTsKCQkJZGF0YS5hZGRDb2x1bW4oJ3N0cmluZycsICdTdGVwJyk7CQkJCgkJCWRhdGEuYWRkQ29sdW1uKCdudW1iZXInLCAnVG9rZW5zJyk7CQkJCgkJCWRhdGEuYWRkQ29sdW1uKHt0eXBlOiAnc3RyaW5nJywgcm9sZTogJ3N0eWxlJ30pOwkKCQkJZGF0YS5hZGRDb2x1bW4oe3R5cGU6ICdzdHJpbmcnLCByb2xlOiAndG9vbHRpcCd9KTsJCgoJCQljb25zdCBhZ2VudENvbG9ycyA9IHt9OwoJCQljb25zdCBwYWxldHRlID0gWycjNDI4NUY0JywgJyNEQjQ0MzcnLCAnI0Y0QjQwMCcsICcjMEY5RDU4JywgJyNBQjQ3QkMnLCAnIzAwQUNDMSddOwoJCQlsZXQgY29sb3JJZHggPSAwOwoJCQljb25zdCBhZ2VudExMTUNvdW50cyA9IHt9OwoJCQlsbG1TdGVwcy5mb3JFYWNoKHMgPT4gewoJCQkJaWYgKCFhZ2VudENvbG9yc1tzLk5hbWVdKSB7CgkJCQkJYWdlbnRDb2xvcnNbcy5OYW1lXSA9IHBhbGV0dGVbY29sb3JJZHggJSBwYWxldHRlLmxlbmd0aF07CgkJCQkJY29sb3JJZHgrKzsKCQkJCX0KCgkJCQlhZ2VudExMTUNvdW50c1tzLk5hbWVdID0gKGFnZW50TExNQ291bnRzW3MuTmFtZV0gfHwgMCkgKyAxOwoJCQkJY29uc3QgbGFiZWwgPSBgJHtzLk5hbWV9LSR7YWdlbnRMTE1Db3VudHNbcy5OYW1lXX1gOwoJCQkJY29uc3QgdG90YWxUb2tlbnMgPSBzLklucHV0VG9rZW5zICsgcy5PdXRwdXRUb2tlbnMgKyBzLk91dHB1dFRob3VnaHRzVG9rZW5zOwoJCQkJY29uc3Qgc3R5bGUgPSBgY29sb3I6ICR7YWdlbnRDb2xvcnNbcy5OYW1lXX1gOwoJCQkJbGV0IHRvb2x0aXAgPSBgVG90YWwgVG9rZW5zOiAke3RvdGFsVG9rZW5zfVxuKEluOiAke3MuSW5wdXRUb2tlbnN9LCBPdXQ6ICR7cy5PdXRwdXRUb2tlbnN9LCBUaG91Z2h0czogJHtzLk91dHB1dFRob3VnaHRzVG9rZW5zfSlgOwoJCQkJaWYgKHMuVG9vbENhbGxzICYmIHMuVG9vbENhbGxzLmxlbmd0aCA+IDApIHsKCQkJCQl0b29sdGlwICs9IGBcblRvb2xzOiAke3MuVG9vbENhbGxzLmpvaW4oJywgJyl9YDsKCQkJCX0KCgkJCQlkYXRhLmFkZFJvdyhbbGFiZWwsIHRvdGFsVG9rZW5zLCBzdHlsZSwgdG9vbHRpcF0pOwoJCQl9KTsKCgkJCWNvbnN0IG9wdGlvbnMgPSB7CgkJCQl0aXRsZTogJ1Rva2VuIENvbnN1bXB0aW9uIGJ5IExMTSBDYWxscycsCgkJCQloQXhpczogewoJCQkJCXRpdGxlOiAnTExNIENhbGwgU2VxdWVuY2UnLAoJCQkJfSwKCQkJCXZBeGlzOiB7IHRpdGxlOiAnQ29uc3VtZWQgVG9rZW5zJyB9LAoJCQkJbGVnZW5kOiB7IHBvc2l0aW9uOiAnbm9uZScgfSwKCQkJCWJhcjogeyBncm91cFdpZHRoOiAnNzUlJyB9LAoJCQkJY2hhcnRBcmVhOiB7IHdpZHRoOiAnODUlJywgaGVpZ2h0OiAnNzAlJyB9LAoJCQkJaGVpZ2h0OiA0MDAKCQkJfTsKCgkJCWNvbnN0IGNoYXJ0ID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkNvbHVtbkNoYXJ0KGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0b2tlbl9jaGFydF9kaXYnKSk7CgkJCWNoYXJ0LmRyYXcoZGF0YSwgb3B0aW9ucyk7CgkJfQoJCWxldCBhbGxFeHBhbmRlZCA9IGZhbHNlOwoJCWZ1bmN0aW9uIHRvZ2dsZUFsbERldGFpbHMoKSB7CgkJCWFsbEV4cGFuZGVkID0gIWFsbEV4cGFuZGVkOwoJCQlkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCdkZXRhaWxzJykuZm9yRWFjaChkID0+IHsKCQkJCWlmIChhbGxFeHBhbmRlZCkgZC5zZXRBdHRyaWJ1dGUoJ29wZW4nLCAnJyk7CgkJCQllbHNlIGQucmVtb3ZlQXR0cmlidXRlKCdvcGVuJyk7CgkJCX0pOwoJCX0KCTwvc2NyaXB0PgoKCjwvYm9keT4KPC9odG1sPgo=" },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-workflown85hb[0].run-triage(0) Phase: Succeeded StartedAt: 2026-06-23 01:53:22 +0000 UTC FinishedAt: 2026-06-23 02:00:59 +0000 UTC Input: nil Output: &Outputs{Parameters:[]Parameter{Parameter{Name:result,Default:nil,Value:*{ "skip_reason": "AI determined the patch has no functional impact", "targets": null, "trajectory": "CjwhZG9jdHlwZSBodG1sPgo8aHRtbD4KPGhlYWQ+Cgk8dGl0bGU+QUkgVHJhamVjdG9yeTwvdGl0bGU+Cgk8c3R5bGU+CgkJdGFibGUgewoJCQlib3JkZXI6IDFweCBzb2xpZCAjY2NjOwoJCQltYXJnaW46IDIwcHggNXB4OwoJCQlib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlOwoJCQl3aGl0ZS1zcGFjZTogbm93cmFwOwoJCQl0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsKCQkJb3ZlcmZsb3c6IGhpZGRlbjsKCQl9CgoJCXRhYmxlIGNhcHRpb24gewoJCQlmb250LXdlaWdodDogYm9sZDsKCQl9CgoJCXRhYmxlIHRkLCB0YWJsZSB0aCB7CgkJCXZlcnRpY2FsLWFsaWduOiB0b3A7CgkJCXBhZGRpbmc6IDJweCA4cHg7CgkJCXRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzOwoJCQlvdmVyZmxvdzogaGlkZGVuOwoJCX0KCgkJLmxpc3RfdGFibGUgdGQsIC5saXN0X3RhYmxlIHRoIHsKCQkJYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCAjY2NjOwoJCX0KCgkJLmxpc3RfdGFibGUgdGggewoJCQliYWNrZ3JvdW5kOiAjRjRGNEY0OwoJCX0KCgkJLmxpc3RfdGFibGUgdHI6bnRoLWNoaWxkKDJuKSB7CgkJCWJhY2tncm91bmQ6ICNGNEY0RjQ7CgkJfQoKCQkubGlzdF90YWJsZSB0cjpob3ZlciB7CgkJCWJhY2tncm91bmQ6ICNmZmZmOTk7CgkJfQoKCQkjYWlfZGV0YWlsc19kaXYgcHJlIHsKCQkJbWFyZ2luOiAxcHg7CgkJCW1heC13aWR0aDogMTIwY2g7CgkJCXdoaXRlLXNwYWNlOiBwcmUtd3JhcDsKCQkJb3ZlcmZsb3ctd3JhcDogYnJlYWstd29yZDsKCQl9Cgk8L3N0eWxlPgo8L2hlYWQ+Cjxib2R5PgoJPGgxPkFJIFRyYWplY3Rvcnk8L2gxPgoJPGJyPgoKCQoJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQk8Y2FwdGlvbj5UcmFqZWN0b3J5OiAoPGEgaHJlZj0iIyIgb25jbGljaz0idG9nZ2xlQWxsRGV0YWlscygpOyByZXR1cm4gZmFsc2U7Ij5FeHBhbmQvQ29sbGFwc2UgQWxsPC9hPik8L2NhcHRpb24+CgkJPHRoZWFkPjx0cj4KCQkJPHRoPlNlcTwvdGg+CgkJCTx0aD5UaW1lc3RhbXA8L3RoPgoJCQk8dGg+VHlwZTwvdGg+CgkJCTx0aD5OYW1lPC90aD4KCQkJPHRoPkR1cmF0aW9uPC90aD4KCQk8L3RyPjwvdGhlYWQ+CgkJPHRib2R5PgoJCQoJCTx0cj4KCQkJPHRkPjAvMDwvdGQ+CgkJCTx0ZD4yMDI2LzA2LzIzIDAyOjAwPC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBudWxsLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFtdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIGFkZHMgc3VwcG9ydCBmb3IgYSBuZXcgaGFyZHdhcmUgdmVyc2lvbiAodjUuMSkgb2YgdGhlIFF1YWxjb21tIElQIEFjY2VsZXJhdG9yIChJUEEpIGZvciB0aGUgU004NDUwIFNvQy4gSXQgb25seSBpbnRyb2R1Y2VzIG5ldyBkYXRhIHN0cnVjdHVyZXMsIGRldmljZSB0cmVlIGJpbmRpbmdzLCBhbmQgcmVnaXN0ZXJzIHRoZSBuZXcgY29tcGF0aWJsZSBzdHJpbmcuIFRoZSBJUEEgaXMgYSBoYXJkd2FyZSBibG9jayBzcGVjaWZpYyB0byBRdWFsY29tbSBTb0NzIGFuZCBpcyBub3QgZW11bGF0ZWQgaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgUUVNVSBvciBHQ0UsIG1ha2luZyB0aGlzIGNvZGUgdW5yZWFjaGFibGUgYW5kIHVudGVzdGFibGUgZHVyaW5nIGZ1enppbmcuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogZmFsc2UKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEvMTwvdGQ+CgkJCTx0ZD4yMDI2LzA2LzIzIDAyOjAwPC90ZD4KCQkJPHRkPmFjdGlvbjwvdGQ+CgkJCTx0ZD5yZWFkLXBhdGNoLWRpZmY8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtQYXRjaERpZmYmIzM0OzogJiMzNDtjb21taXQgZGQyZGRmMTA3NTBiMGVmNDNhZmE2MGFhZTZmMTFhN2ZjNDUyMzhjY1xuQXV0aG9yOiBzeXotY2x1c3RlciBcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVx1MDAzZVxuRGF0ZTogICBUdWUgSnVuIDIzIDAyOjAwOjI2IDIwMjYgJiM0MzswMDAwXG5cbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcblxuZGlmZiAtLWdpdCBhL0RvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvcWNvbSxpcGEueWFtbCBiL0RvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvcWNvbSxpcGEueWFtbFxuaW5kZXggNjhlYzc2ZmU0NDczNTYuLmRiOTFiZmFhZjgzMzJlIDEwMDY0NFxuLS0tIGEvRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9xY29tLGlwYS55YW1sXG4mIzQzOyYjNDM7JiM0MzsgYi9Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L3Fjb20saXBhLnlhbWxcbkBAIC01Myw2ICYjNDM7NTMsNyBAQCBwcm9wZXJ0aWVzOlxuICAgICAgICAgICAtIHFjb20sc2R4NjUtaXBhXG4gICAgICAgICAgIC0gcWNvbSxzbTYzNTAtaXBhXG4gICAgICAgICAgIC0gcWNvbSxzbTgzNTAtaXBhXG4mIzQzOyAgICAgICAgICAtIHFjb20sc204NDUwLWlwYVxuICAgICAgICAgICAtIHFjb20sc204NTUwLWlwYVxuICAgICAgIC0gaXRlbXM6XG4gICAgICAgICAgIC0gZW51bTpcbmRpZmYgLS1naXQgYS9hcmNoL2FybTY0L2Jvb3QvZHRzL3Fjb20vc204NDUwLmR0c2kgYi9hcmNoL2FybTY0L2Jvb3QvZHRzL3Fjb20vc204NDUwLmR0c2lcbmluZGV4IDU2Y2I2ZTk1OWU0ZWUyLi5jOTA0NzIwMDA4ZmFjNyAxMDA2NDRcbi0tLSBhL2FyY2gvYXJtNjQvYm9vdC9kdHMvcWNvbS9zbTg0NTAuZHRzaVxuJiM0MzsmIzQzOyYjNDM7IGIvYXJjaC9hcm02NC9ib290L2R0cy9xY29tL3NtODQ1MC5kdHNpXG5AQCAtMjYzOSw2ICYjNDM7MjYzOSw0NyBAQCBhZHJlbm9fc21tdTogaW9tbXVAM2RhMDAwMCB7XG4gXHRcdFx0ZG1hLWNvaGVyZW50O1xuIFx0XHR9O1xuIFxuJiM0MztcdFx0aXBhOiBpcGFAM2Y0MDAwMCB7XG4mIzQzO1x0XHRcdGNvbXBhdGlibGUgPSBcJiMzNDtxY29tLHNtODQ1MC1pcGFcJiMzNDs7XG4mIzQzO1xuJiM0MztcdFx0XHRpb21tdXMgPSBcdTAwM2NcdTAwMjZhcHBzX3NtbXUgMHg1YzAgMHgwXHUwMDNlLFxuJiM0MztcdFx0XHRcdCBcdTAwM2NcdTAwMjZhcHBzX3NtbXUgMHg1YzIgMHgwXHUwMDNlO1xuJiM0MztcdFx0XHRyZWcgPSBcdTAwM2MwIDB4M2Y0MDAwMCAwIDB4MTAwMDBcdTAwM2UsXG4mIzQzO1x0XHRcdCAgICAgIFx1MDAzYzAgMHgzZjUwMDAwIDAgMHg1MDAwXHUwMDNlLFxuJiM0MztcdFx0XHQgICAgICBcdTAwM2MwIDB4M2UwNDAwMCAwIDB4ZmMwMDBcdTAwM2U7XG4mIzQzO1x0XHRcdHJlZy1uYW1lcyA9IFwmIzM0O2lwYS1yZWdcJiMzNDssXG4mIzQzO1x0XHRcdFx0ICAgIFwmIzM0O2lwYS1zaGFyZWRcJiMzNDssXG4mIzQzO1x0XHRcdFx0ICAgIFwmIzM0O2dzaVwmIzM0OztcbiYjNDM7XG4mIzQzO1x0XHRcdGludGVycnVwdHMtZXh0ZW5kZWQgPSBcdTAwM2NcdTAwMjZpbnRjIEdJQ19TUEkgNjU0IElSUV9UWVBFX0VER0VfUklTSU5HXHUwMDNlLFxuJiM0MztcdFx0XHRcdFx0ICAgICAgXHUwMDNjXHUwMDI2aW50YyBHSUNfU1BJIDQzMiBJUlFfVFlQRV9MRVZFTF9ISUdIXHUwMDNlLFxuJiM0MztcdFx0XHRcdFx0ICAgICAgXHUwMDNjXHUwMDI2aXBhX3NtcDJwX2luIDAgSVJRX1RZUEVfRURHRV9SSVNJTkdcdTAwM2UsXG4mIzQzO1x0XHRcdFx0XHQgICAgICBcdTAwM2NcdTAwMjZpcGFfc21wMnBfaW4gMSBJUlFfVFlQRV9FREdFX1JJU0lOR1x1MDAzZTtcbiYjNDM7XHRcdFx0aW50ZXJydXB0LW5hbWVzID0gXCYjMzQ7aXBhXCYjMzQ7LFxuJiM0MztcdFx0XHRcdFx0ICBcJiMzNDtnc2lcJiMzNDssXG4mIzQzO1x0XHRcdFx0XHQgIFwmIzM0O2lwYS1jbG9jay1xdWVyeVwmIzM0OyxcbiYjNDM7XHRcdFx0XHRcdCAgXCYjMzQ7aXBhLXNldHVwLXJlYWR5XCYjMzQ7O1xuJiM0MztcbiYjNDM7XHRcdFx0Y2xvY2tzID0gXHUwMDNjXHUwMDI2cnBtaGNjIFJQTUhfSVBBX0NMS1x1MDAzZTtcbiYjNDM7XHRcdFx0Y2xvY2stbmFtZXMgPSBcJiMzNDtjb3JlXCYjMzQ7O1xuJiM0MztcbiYjNDM7XHRcdFx0aW50ZXJjb25uZWN0cyA9IFx1MDAzY1x1MDAyNmFnZ3JlMl9ub2MgTUFTVEVSX0lQQSAwIFx1MDAyNm1jX3ZpcnQgU0xBVkVfRUJJMSAwXHUwMDNlLFxuJiM0MztcdFx0XHRcdFx0XHUwMDNjXHUwMDI2Z2VtX25vYyBNQVNURVJfQVBQU1NfUFJPQyAwIFx1MDAyNmNvbmZpZ19ub2MgU0xBVkVfSVBBX0NGRyAwXHUwMDNlO1xuJiM0MztcdFx0XHRpbnRlcmNvbm5lY3QtbmFtZXMgPSBcJiMzNDttZW1vcnlcJiMzNDssXG4mIzQzO1x0XHRcdFx0XHQgICAgIFwmIzM0O2NvbmZpZ1wmIzM0OztcbiYjNDM7XG4mIzQzO1x0XHRcdHFjb20scW1wID0gXHUwMDNjXHUwMDI2YW9zc19xbXBcdTAwM2U7XG4mIzQzO1xuJiM0MztcdFx0XHRxY29tLHNtZW0tc3RhdGVzID0gXHUwMDNjXHUwMDI2aXBhX3NtcDJwX291dCAwXHUwMDNlLFxuJiM0MztcdFx0XHRcdFx0ICAgXHUwMDNjXHUwMDI2aXBhX3NtcDJwX291dCAxXHUwMDNlO1xuJiM0MztcdFx0XHRxY29tLHNtZW0tc3RhdGUtbmFtZXMgPSBcJiMzNDtpcGEtY2xvY2stZW5hYmxlZC12YWxpZFwmIzM0OyxcbiYjNDM7XHRcdFx0XHRcdFx0XCYjMzQ7aXBhLWNsb2NrLWVuYWJsZWRcJiMzNDs7XG4mIzQzO1xuJiM0MztcdFx0XHRzcmFtID0gXHUwMDNjXHUwMDI2aXBhX21vZGVtX3RhYmxlc1x1MDAzZTtcbiYjNDM7XG4mIzQzO1x0XHRcdHN0YXR1cyA9IFwmIzM0O2Rpc2FibGVkXCYjMzQ7O1xuJiM0MztcdFx0fTtcbiYjNDM7XG4gXHRcdHVzYl8xX2hzcGh5OiBwaHlAODhlMzAwMCB7XG4gXHRcdFx0Y29tcGF0aWJsZSA9IFwmIzM0O3Fjb20sc204NDUwLXVzYi1ocy1waHlcJiMzNDssXG4gXHRcdFx0XHQgICAgIFwmIzM0O3Fjb20sdXNiLXNucHMtaHMtN25tLXBoeVwmIzM0OztcbkBAIC00OTcwLDE3ICYjNDM7NTAxMSwyMSBAQCBjdGlAMTM5MDAwMDAge1xuIFx0XHRcdGNsb2NrLW5hbWVzID0gXCYjMzQ7YXBiX3BjbGtcJiMzNDs7XG4gXHRcdH07XG4gXG4tXHRcdHNyYW1AMTQ2YWEwMDAge1xuJiM0MztcdFx0c3JhbUAxNDZhODAwMCB7XG4gXHRcdFx0Y29tcGF0aWJsZSA9IFwmIzM0O3Fjb20sc204NDUwLWltZW1cJiMzNDssIFwmIzM0O3N5c2NvblwmIzM0OywgXCYjMzQ7c2ltcGxlLW1mZFwmIzM0Oztcbi1cdFx0XHRyZWcgPSBcdTAwM2MwIDB4MTQ2YWEwMDAgMCAweDEwMDBcdTAwM2U7XG4tXHRcdFx0cmFuZ2VzID0gXHUwMDNjMCAwIDB4MTQ2YWEwMDAgMHgxMDAwXHUwMDNlO1xuJiM0MztcdFx0XHRyZWcgPSBcdTAwM2MwIDB4MTQ2YTgwMDAgMCAweDMwMDBcdTAwM2U7XG4mIzQzO1x0XHRcdHJhbmdlcyA9IFx1MDAzYzAgMCAweDE0NmE4MDAwIDB4MzAwMFx1MDAzZTtcbiBcbiBcdFx0XHQjYWRkcmVzcy1jZWxscyA9IFx1MDAzYzFcdTAwM2U7XG4gXHRcdFx0I3NpemUtY2VsbHMgPSBcdTAwM2MxXHUwMDNlO1xuIFxuLVx0XHRcdHBpbC1yZWxvY0A5NGMge1xuJiM0MztcdFx0XHRpcGFfbW9kZW1fdGFibGVzOiBtb2RlbS10YWJsZXNAMCB7XG4mIzQzO1x0XHRcdFx0cmVnID0gXHUwMDNjMCAweDIwMDBcdTAwM2U7XG4mIzQzO1x0XHRcdH07XG4mIzQzO1xuJiM0MztcdFx0XHRwaWwtcmVsb2NAMjk0YyB7XG4gXHRcdFx0XHRjb21wYXRpYmxlID0gXCYjMzQ7cWNvbSxwaWwtcmVsb2MtaW5mb1wmIzM0Oztcbi1cdFx0XHRcdHJlZyA9IFx1MDAzYzB4OTRjIDB4YzhcdTAwM2U7XG4mIzQzO1x0XHRcdFx0cmVnID0gXHUwMDNjMHgyOTRjIDB4YzhcdTAwM2U7XG4gXHRcdFx0fTtcbiBcdFx0fTtcbiBcbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9pcGEvTWFrZWZpbGUgYi9kcml2ZXJzL25ldC9pcGEvTWFrZWZpbGVcbmluZGV4IGUxNDhlYzNjMWExMDEwLi5kNDk5NWMyZThjYTAyMyAxMDA2NDRcbi0tLSBhL2RyaXZlcnMvbmV0L2lwYS9NYWtlZmlsZVxuJiM0MzsmIzQzOyYjNDM7IGIvZHJpdmVycy9uZXQvaXBhL01ha2VmaWxlXG5AQCAtNyw3ICYjNDM7Nyw3IEBAIElQQV9SRUdfVkVSU0lPTlNcdDo9XHQzLjEgMy41LjEgNC4yIDQuNSA0LjcgNC45IDQuMTEgNS4wIDUuNVxuICMgU29tZSBJUEEgdmVyc2lvbnMgY2FuIHJldXNlIGFub3RoZXIgc2V0IG9mIEdTSSByZWdpc3RlciBkZWZpbml0aW9ucy5cbiBHU0lfUkVHX1ZFUlNJT05TXHQ6PVx0My4xIDMuNS4xIDQuMCA0LjUgNC45IDQuMTEgNS4wXG4gXG4tSVBBX0RBVEFfVkVSU0lPTlNcdDo9XHQzLjEgMy41LjEgNC4yIDQuNSA0LjcgNC45IDQuMTEgNS4wIDUuMiA1LjVcbiYjNDM7SVBBX0RBVEFfVkVSU0lPTlNcdDo9XHQzLjEgMy41LjEgNC4yIDQuNSA0LjcgNC45IDQuMTEgNS4wIDUuMSA1LjIgNS41XG4gXG4gb2JqLSQoQ09ORklHX1FDT01fSVBBKVx0JiM0Mzs9XHRpcGEub1xuIFxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2lwYS9kYXRhL2lwYV9kYXRhLXY1LjEuYyBiL2RyaXZlcnMvbmV0L2lwYS9kYXRhL2lwYV9kYXRhLXY1LjEuY1xubmV3IGZpbGUgbW9kZSAxMDA2NDRcbmluZGV4IDAwMDAwMDAwMDAwMDAwLi44NWIyMWVmYTEyMjRkYlxuLS0tIC9kZXYvbnVsbFxuJiM0MzsmIzQzOyYjNDM7IGIvZHJpdmVycy9uZXQvaXBhL2RhdGEvaXBhX2RhdGEtdjUuMS5jXG5AQCAtMCwwICYjNDM7MSw0NzcgQEBcbiYjNDM7Ly8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjBcbiYjNDM7XG4mIzQzOy8qIENvcHlyaWdodCAoQykgMjAyMy0yMDI0IExpbmFybyBMdGQuICovXG4mIzQzOy8qIENvcHlyaWdodCAoQykgMjAyNiBFc3RlYmFuIFVycnV0aWEgXHUwMDNjZXN0ZXV3dUBwcm90b24ubWVcdTAwM2UgKi9cbiYjNDM7XG4mIzQzOyNpbmNsdWRlIFx1MDAzY2xpbnV4L2FycmF5X3NpemUuaFx1MDAzZVxuJiM0MzsjaW5jbHVkZSBcdTAwM2NsaW51eC9sb2cyLmhcdTAwM2VcbiYjNDM7XG4mIzQzOyNpbmNsdWRlIFwmIzM0Oy4uL2lwYV9kYXRhLmhcJiMzNDtcbiYjNDM7I2luY2x1ZGUgXCYjMzQ7Li4vaXBhX2VuZHBvaW50LmhcJiMzNDtcbiYjNDM7I2luY2x1ZGUgXCYjMzQ7Li4vaXBhX21lbS5oXCYjMzQ7XG4mIzQzOyNpbmNsdWRlIFwmIzM0Oy4uL2lwYV92ZXJzaW9uLmhcJiMzNDtcbiYjNDM7XG4mIzQzOy8qKiBlbnVtIGlwYV9yZXNvdXJjZV90eXBlIC0gSVBBIHJlc291cmNlIHR5cGVzIGZvciBhbiBTb0MgaGF2aW5nIElQQSB2NS4xICovXG4mIzQzO2VudW0gaXBhX3Jlc291cmNlX3R5cGUge1xuJiM0MztcdC8qIFNvdXJjZSByZXNvdXJjZSB0eXBlczsgZmlyc3QgbXVzdCBoYXZlIHZhbHVlIDAgKi9cbiYjNDM7XHRJUEFfUkVTT1VSQ0VfVFlQRV9TUkNfUEtUX0NPTlRFWFRTXHRcdD0gMCxcbiYjNDM7XHRJUEFfUkVTT1VSQ0VfVFlQRV9TUkNfREVTQ1JJUFRPUl9MSVNUUyxcbiYjNDM7XHRJUEFfUkVTT1VSQ0VfVFlQRV9TUkNfREVTQ1JJUFRPUl9CVUZGLFxuJiM0MztcdElQQV9SRVNPVVJDRV9UWVBFX1NSQ19IUFNfRE1BUlMsXG4mIzQzO1x0SVBBX1JFU09VUkNFX1RZUEVfU1JDX0FDS19FTlRSSUVTLFxuJiM0MztcbiYjNDM7XHQvKiBEZXN0aW5hdGlvbiByZXNvdXJjZSB0eXBlczsgZmlyc3QgbXVzdCBoYXZlIHZhbHVlIDAgKi9cbiYjNDM7XHRJUEFfUkVTT1VSQ0VfVFlQRV9EU1RfREFUQV9TRUNUT1JTXHRcdD0gMCxcbiYjNDM7XHRJUEFfUkVTT1VSQ0VfVFlQRV9EU1RfRFBTX0RNQVJTLFxuJiM0MztcdElQQV9SRVNPVVJDRV9UWVBFX0RTVF9VTFNPX1NFR01FTlRTLFxuJiM0Mzt9O1xuJiM0MztcbiYjNDM7LyogUmVzb3VyY2UgZ3JvdXBzIHVzZWQgZm9yIGFuIFNvQyBoYXZpbmcgSVBBIHY1LjEgKi9cbiYjNDM7ZW51bSBpcGFfcnNyY19ncm91cF9pZCB7XG4mIzQzO1x0LyogU291cmNlIHJlc291cmNlIGdyb3VwIGlkZW50aWZpZXJzICovXG4mIzQzO1x0SVBBX1JTUkNfR1JPVVBfU1JDX1VMXHRcdFx0XHQ9IDAsXG4mIzQzO1x0SVBBX1JTUkNfR1JPVVBfU1JDX0RMLFxuJiM0MztcdElQQV9SU1JDX0dST1VQX1NSQ19VTlVTRURfMixcbiYjNDM7XHRJUEFfUlNSQ19HUk9VUF9TUkNfVU5VU0VEXzMsXG4mIzQzO1x0SVBBX1JTUkNfR1JPVVBfU1JDX1VSTExDLFxuJiM0MztcdElQQV9SU1JDX0dST1VQX1NSQ19VX1JYX1FDLFxuJiM0MztcdElQQV9SU1JDX0dST1VQX1NSQ19DT1VOVCxcdC8qIExhc3QgaW4gc2V0OyBub3QgYSBzb3VyY2UgZ3JvdXAgKi9cbiYjNDM7XG4mIzQzO1x0LyogRGVzdGluYXRpb24gcmVzb3VyY2UgZ3JvdXAgaWRlbnRpZmllcnMgKi9cbiYjNDM7XHRJUEFfUlNSQ19HUk9VUF9EU1RfVUxcdFx0XHRcdD0gMCxcbiYjNDM7XHRJUEFfUlNSQ19HUk9VUF9EU1RfREwsXG4mIzQzO1x0SVBBX1JTUkNfR1JPVVBfRFNUX1VOVVNFRF8yLFxuJiM0MztcdElQQV9SU1JDX0dST1VQX0RTVF9VTlVTRURfMyxcbiYjNDM7XHRJUEFfUlNSQ19HUk9VUF9EU1RfVU5VU0VEXzQsXG4mIzQzO1x0SVBBX1JTUkNfR1JPVVBfRFNUX1VDLFxuJiM0MztcdElQQV9SU1JDX0dST1VQX0RTVF9EUkJfSVAsXG4mIzQzO1x0SVBBX1JTUkNfR1JPVVBfRFNUX0NPVU5ULFx0LyogTGFzdDsgbm90IGEgZGVzdGluYXRpb24gZ3JvdXAgKi9cbiYjNDM7fTtcbiYjNDM7XG4mIzQzOy8qIFFTQiBjb25maWd1cmF0aW9uIGRhdGEgZm9yIGFuIFNvQyBoYXZpbmcgSVBBIHY1LjEgKi9cbiYjNDM7c3RhdGljIGNvbnN0IHN0cnVjdCBpcGFfcXNiX2RhdGEgaXBhX3FzYl9kYXRhW10gPSB7XG4mIzQzO1x0W0lQQV9RU0JfTUFTVEVSX0REUl0gPSB7XG4mIzQzO1x0XHQubWF4X3dyaXRlc1x0XHQ9IDAsXG4mIzQzO1x0XHQubWF4X3JlYWRzXHRcdD0gMCxcdC8qIG5vIGxpbWl0IChoYXJkd2FyZSBtYXgpICovXG4mIzQzO1x0XHQubWF4X3JlYWRzX2JlYXRzXHQ9IDAsXG4mIzQzO1x0fSxcbiYjNDM7XHRbSVBBX1FTQl9NQVNURVJfUENJRV0gPSB7XG4mIzQzO1x0XHQubWF4X3dyaXRlc1x0XHQ9IDAsXG4mIzQzO1x0XHQubWF4X3JlYWRzXHRcdD0gMCxcdC8qIG5vIGxpbWl0IChoYXJkd2FyZSBtYXgpICovXG4mIzQzO1x0XHQubWF4X3JlYWRzX2JlYXRzXHQ9IDAsXG4mIzQzO1x0fSxcbiYjNDM7fTtcbiYjNDM7XG4mIzQzOy8qIEVuZHBvaW50IGNvbmZpZ3VyYXRpb24gZGF0YSBmb3IgYW4gU29DIGhhdmluZyBJUEEgdjUuMSAqL1xuJiM0MztzdGF0aWMgY29uc3Qgc3RydWN0IGlwYV9nc2lfZW5kcG9pbnRfZGF0YSBpcGFfZ3NpX2VuZHBvaW50X2RhdGFbXSA9IHtcbiYjNDM7XHRbSVBBX0VORFBPSU5UX0FQX0NPTU1BTkRfVFhdID0ge1xuJiM0MztcdFx0LmVlX2lkXHRcdD0gR1NJX0VFX0FQLFxuJiM0MztcdFx0LmNoYW5uZWxfaWRcdD0gMTIsXG4mIzQzO1x0XHQuZW5kcG9pbnRfaWRcdD0gMTQsXG4mIzQzO1x0XHQudG93YXJkX2lwYVx0PSB0cnVlLFxuJiM0MztcdFx0LmNoYW5uZWwgPSB7XG4mIzQzO1x0XHRcdC50cmVfY291bnRcdD0gMjU2LFxuJiM0MztcdFx0XHQuZXZlbnRfY291bnRcdD0gMjU2LFxuJiM0MztcdFx0XHQudGx2X2NvdW50XHQ9IDIwLFxuJiM0MztcdFx0fSxcbiYjNDM7XHRcdC5lbmRwb2ludCA9IHtcbiYjNDM7XHRcdFx0LmNvbmZpZyA9IHtcbiYjNDM7XHRcdFx0XHQucmVzb3VyY2VfZ3JvdXBcdD0gSVBBX1JTUkNfR1JPVVBfU1JDX1VMLFxuJiM0MztcdFx0XHRcdC5kbWFfbW9kZVx0PSB0cnVlLFxuJiM0MztcdFx0XHRcdC5kbWFfZW5kcG9pbnRcdD0gSVBBX0VORFBPSU5UX0FQX0xBTl9SWCxcbiYjNDM7XHRcdFx0XHQudHggPSB7XG4mIzQzO1x0XHRcdFx0XHQuc2VxX3R5cGUgPSBJUEFfU0VRX0RNQSxcbiYjNDM7XHRcdFx0XHR9LFxuJiM0MztcdFx0XHR9LFxuJiM0MztcdFx0fSxcbiYjNDM7XHR9LFxuJiM0MztcdFtJUEFfRU5EUE9JTlRfQVBfTEFOX1JYXSA9IHtcbiYjNDM7XHRcdC5lZV9pZFx0XHQ9IEdTSV9FRV9BUCxcbiYjNDM7XHRcdC5jaGFubmVsX2lkXHQ9IDEzLFxuJiM0MztcdFx0LmVuZHBvaW50X2lkXHQ9IDE2LFxuJiM0MztcdFx0LnRvd2FyZF9pcGFcdD0gZmFsc2UsXG4mIzQzO1x0XHQuY2hhbm5lbCA9IHtcbiYjNDM7XHRcdFx0LnRyZV9jb3VudFx0PSAyNTYsXG4mIzQzO1x0XHRcdC5ldmVudF9jb3VudFx0PSAyNTYsXG4mIzQzO1x0XHRcdC50bHZfY291bnRcdD0gOSxcbiYjNDM7XHRcdH0sXG4mIzQzO1x0XHQuZW5kcG9pbnQgPSB7XG4mIzQzO1x0XHRcdC5jb25maWcgPSB7XG4mIzQzO1x0XHRcdFx0LnJlc291cmNlX2dyb3VwXHQ9IElQQV9SU1JDX0dST1VQX0RTVF9VTCxcbiYjNDM7XHRcdFx0XHQuYWdncmVnYXRpb25cdD0gdHJ1ZSxcbiYjNDM7XHRcdFx0XHQuc3RhdHVzX2VuYWJsZVx0PSB0cnVlLFxuJiM0MztcdFx0XHRcdC5yeCA9IHtcbiYjNDM7XHRcdFx0XHRcdC5idWZmZXJfc2l6ZVx0PSA4MTkyLFxuJiM0MztcdFx0XHRcdFx0LnBhZF9hbGlnblx0PSBpbG9nMihzaXplb2YodTMyKSksXG4mIzQzO1x0XHRcdFx0XHQuYWdncl90aW1lX2xpbWl0ID0gNTAwLFxuJiM0MztcdFx0XHRcdH0sXG4mIzQzO1x0XHRcdH0sXG4mIzQzO1x0XHR9LFxuJiM0MztcdH0sXG4mIzQzO1x0W0lQQV9FTkRQT0lOVF9BUF9NT0RFTV9UWF0gPSB7XG4mIzQzO1x0XHQuZWVfaWRcdFx0PSBHU0lfRUVfQVAsXG4mIzQzO1x0XHQuY2hhbm5lbF9pZFx0PSAxMSxcbiYjNDM7XHRcdC5lbmRwb2ludF9pZFx0PSAyLFxuJiM0MztcdFx0LnRvd2FyZF9pcGFcdD0gdHJ1ZSxcbiYjNDM7XHRcdC5jaGFubmVsID0ge1xuJiM0MztcdFx0XHQudHJlX2NvdW50XHQ9IDUxMixcbiYjNDM7XHRcdFx0LmV2ZW50X2NvdW50XHQ9IDUxMixcbiYjNDM7XHRcdFx0LnRsdl9jb3VudFx0PSAyNSxcbiYjNDM7XHRcdH0sXG4mIzQzO1x0XHQuZW5kcG9pbnQgPSB7XG4mIzQzO1x0XHRcdC5maWx0ZXJfc3VwcG9ydFx0PSB0cnVlLFxuJiM0MztcdFx0XHQuY29uZmlnID0ge1xuJiM0MztcdFx0XHRcdC5yZXNvdXJjZV9ncm91cFx0PSBJUEFfUlNSQ19HUk9VUF9TUkNfVUwsXG4mIzQzO1x0XHRcdFx0LmNoZWNrc3VtICAgICAgID0gdHJ1ZSxcbiYjNDM7XHRcdFx0XHQucW1hcFx0XHQ9IHRydWUsXG4mIzQzO1x0XHRcdFx0LnN0YXR1c19lbmFibGVcdD0gdHJ1ZSxcbiYjNDM7XHRcdFx0XHQudHggPSB7XG4mIzQzO1x0XHRcdFx0XHQuc2VxX3R5cGUgPSBJUEFfU0VRXzJfUEFTU19TS0lQX0xBU1RfVUMsXG4mIzQzO1x0XHRcdFx0XHQuc3RhdHVzX2VuZHBvaW50ID1cbiYjNDM7XHRcdFx0XHRcdFx0SVBBX0VORFBPSU5UX01PREVNX0FQX1JYLFxuJiM0MztcdFx0XHRcdH0sXG4mIzQzO1x0XHRcdH0sXG4mIzQzO1x0XHR9LFxuJiM0MztcdH0sXG4mIzQzO1x0W0lQQV9FTkRQT0lOVF9BUF9NT0RFTV9SWF0gPSB7XG4mIzQzO1x0XHQuZWVfaWRcdFx0PSBHU0lfRUVfQVAsXG4mIzQzO1x0XHQuY2hhbm5lbF9pZFx0PSAxLFxuJiM0MztcdFx0LmVuZHBvaW50X2lkXHQ9IDIzLFxuJiM0MztcdFx0LnRvd2FyZF9pcGFcdD0gZmFsc2UsXG4mIzQzO1x0XHQuY2hhbm5lbCA9IHtcbiYjNDM7XHRcdFx0LnRyZV9jb3VudFx0PSAyNTYsXG4mIzQzO1x0XHRcdC5ldmVudF9jb3VudFx0PSAyNTYsXG4mIzQzO1x0XHRcdC50bHZfY291bnRcdD0gOSxcbiYjNDM7XHRcdH0sXG4mIzQzO1x0XHQuZW5kcG9pbnQgPSB7XG4mIzQzO1x0XHRcdC5jb25maWcgPSB7XG4mIzQzO1x0XHRcdFx0LnJlc291cmNlX2dyb3VwXHQ9IElQQV9SU1JDX0dST1VQX0RTVF9VTCxcbiYjNDM7XHRcdFx0XHQuY2hlY2tzdW0gICAgICAgPSB0cnVlLFxuJiM0MztcdFx0XHRcdC5xbWFwXHRcdD0gdHJ1ZSxcbiYjNDM7XHRcdFx0XHQuYWdncmVnYXRpb25cdD0gdHJ1ZSxcbiYjNDM7XHRcdFx0XHQucnggPSB7XG4mIzQzO1x0XHRcdFx0XHQuYnVmZmVyX3NpemVcdD0gODE5MixcbiYjNDM7XHRcdFx0XHRcdC5hZ2dyX3RpbWVfbGltaXQgPSA1MDAsXG4mIzQzO1x0XHRcdFx0XHQuYWdncl9jbG9zZV9lb2ZcdD0gdHJ1ZSxcbiYjNDM7XHRcdFx0XHR9LFxuJiM0MztcdFx0XHR9LFxuJiM0MztcdFx0fSxcbiYjNDM7XHR9LFxuJiM0MztcdFtJUEFfRU5EUE9JTlRfTU9ERU1fQVBfVFhdID0ge1xuJiM0MztcdFx0LmVlX2lkXHRcdD0gR1NJX0VFX01PREVNLFxuJiM0MztcdFx0LmNoYW5uZWxfaWRcdD0gMCxcbiYjNDM7XHRcdC5lbmRwb2ludF9pZFx0PSAxMixcbiYjNDM7XHRcdC50b3dhcmRfaXBhXHQ9IHRydWUsXG4mIzQzO1x0XHQuZW5kcG9pbnQgPSB7XG4mIzQzO1x0XHRcdC5maWx0ZXJfc3VwcG9ydFx0PSB0cnVlLFxuJiM0MztcdFx0fSxcbiYjNDM7XHR9LFxuJiM0MztcdFtJUEFfRU5EUE9JTlRfTU9ERU1fQVBfUlhdID0ge1xuJiM0MztcdFx0LmVlX2lkXHRcdD0gR1NJX0VFX01PREVNLFxuJiM0MztcdFx0LmNoYW5uZWxfaWRcdD0gNyxcbiYjNDM7XHRcdC5lbmRwb2ludF9pZFx0PSAyMSxcbiYjNDM7XHRcdC50b3dhcmRfaXBhXHQ9IGZhbHNlLFxuJiM0MztcdH0sXG4mIzQzO1x0W0lQQV9FTkRQT0lOVF9NT0RFTV9ETF9OTE9fVFhdID0ge1xuJiM0MztcdFx0LmVlX2lkXHRcdD0gR1NJX0VFX01PREVNLFxuJiM0MztcdFx0LmNoYW5uZWxfaWRcdD0gMixcbiYjNDM7XHRcdC5lbmRwb2ludF9pZFx0PSAxNSxcbiYjNDM7XHRcdC50b3dhcmRfaXBhXHQ9IHRydWUsXG4mIzQzO1x0XHQuZW5kcG9pbnQgPSB7XG4mIzQzO1x0XHRcdC5maWx0ZXJfc3VwcG9ydFx0PSB0cnVlLFxuJiM0MztcdFx0fSxcbiYjNDM7XHR9LFxuJiM0Mzt9O1xuJiM0MztcbiYjNDM7LyogU291cmNlIHJlc291cmNlIGNvbmZpZ3VyYXRpb24gZGF0YSBmb3IgYW4gU29DIGhhdmluZyBJUEEgdjUuMSAqL1xuJiM0MztzdGF0aWMgY29uc3Qgc3RydWN0IGlwYV9yZXNvdXJjZSBpcGFfcmVzb3VyY2Vfc3JjW10gPSB7XG4mIzQzO1x0W0lQQV9SRVNPVVJDRV9UWVBFX1NSQ19QS1RfQ09OVEVYVFNdID0ge1xuJiM0MztcdFx0LmxpbWl0c1tJUEFfUlNSQ19HUk9VUF9TUkNfVUxdID0ge1xuJiM0MztcdFx0XHQubWluID0gNyxcdC5tYXggPSAxMixcbiYjNDM7XHRcdH0sXG4mIzQzO1x0XHQubGltaXRzW0lQQV9SU1JDX0dST1VQX1NSQ19VUkxMQ10gPSB7XG4mIzQzO1x0XHRcdC5taW4gPSAxLFx0Lm1heCA9IDYzLFxuJiM0MztcdFx0fSxcbiYjNDM7XHRcdC5saW1pdHNbSVBBX1JTUkNfR1JPVVBfU1JDX1VfUlhfUUNdID0ge1xuJiM0MztcdFx0XHQubWluID0gMCxcdC5tYXggPSA2MyxcbiYjNDM7XHRcdH0sXG4mIzQzO1x0fSxcbiYjNDM7XHRbSVBBX1JFU09VUkNFX1RZUEVfU1JDX0RFU0NSSVBUT1JfTElTVFNdID0ge1xuJiM0MztcdFx0LmxpbWl0c1tJUEFfUlNSQ19HUk9VUF9TUkNfVUxdID0ge1xuJiM0MztcdFx0XHQubWluID0gMjEsXHQubWF4ID0gMjEsXG4mIzQzO1x0XHR9LFxuJiM0MztcdFx0LmxpbWl0c1tJUEFfUlNSQ19HUk9VUF9TUkNfVVJMTENdID0ge1xuJiM0MztcdFx0XHQubWluID0gMTAsXHQubWF4ID0gMTAsXG4mIzQzO1x0XHR9LFxuJiM0MztcdH0sXG4mIzQzO1x0W0lQQV9SRVNPVVJDRV9UWVBFX1NSQ19ERVNDUklQVE9SX0JVRkZdID0ge1xuJiM0MztcdFx0LmxpbWl0c1tJUEFfUlNSQ19HUk9VUF9TUkNfVUxdID0ge1xuJiM0MztcdFx0XHQubWluID0gMzMsXHQubWF4ID0gMzMsXG4mIzQzO1x0XHR9LFxuJiM0MztcdFx0LmxpbWl0c1tJUEFfUlNSQ19HUk9VUF9TUkNfVVJMTENdID0ge1xuJiM0MztcdFx0XHQubWluID0gMjAsXHQubWF4ID0gMjAsXG4mIzQzO1x0XHR9LFxuJiM0MztcdH0sXG4mIzQzO1x0W0lQQV9SRVNPVVJDRV9UWVBFX1NSQ19IUFNfRE1BUlNdID0ge1xuJiM0MztcdFx0LmxpbWl0c1tJUEFfUlNSQ19HUk9VUF9TUkNfVUxdID0ge1xuJiM0MztcdFx0XHQubWluID0gMCxcdC5tYXggPSA2MyxcbiYjNDM7XHRcdH0sXG4mIzQzO1x0XHQubGltaXRzW0lQQV9SU1JDX0dST1VQX1NSQ19VUkxMQ10gPSB7XG4mIzQzO1x0XHRcdC5taW4gPSAxLFx0Lm1heCA9IDYzLFxuJiM0MztcdFx0fSxcbiYjNDM7XHRcdC5saW1pdHNbSVBBX1JTUkNfR1JPVVBfU1JDX1VfUlhfUUNdID0ge1xuJiM0MztcdFx0XHQubWluID0gMCxcdC5tYXggPSA2MyxcbiYjNDM7XHRcdH0sXG4mIzQzO1x0fSxcbiYjNDM7XHRbSVBBX1JFU09VUkNFX1RZUEVfU1JDX0FDS19FTlRSSUVTXSA9IHtcbiYjNDM7XHRcdC5saW1pdHNbSVBBX1JTUkNfR1JPVVBfU1JDX1VMXSA9IHtcbiYjNDM7XHRcdFx0Lm1pbiA9IDM4LFx0Lm1heCA9IDM4LFxuJiM0MztcdFx0fSxcbiYjNDM7XHRcdC5saW1pdHNbSVBBX1JTUkNfR1JPVVBfU1JDX1VSTExDXSA9IHtcbiYjNDM7XHRcdFx0Lm1pbiA9IDE2LFx0Lm1heCA9IDE2LFxuJiM0MztcdFx0fSxcbiYjNDM7XHR9LFxuJiM0Mzt9O1xuJiM0MztcbiYjNDM7LyogRGVzdGluYXRpb24gcmVzb3VyY2UgY29uZmlndXJhdGlvbiBkYXRhIGZvciBhbiBTb0MgaGF2aW5nIElQQSB2NS4xICovXG4mIzQzO3N0YXRpYyBjb25zdCBzdHJ1Y3QgaXBhX3Jlc291cmNlIGlwYV9yZXNvdXJjZV9kc3RbXSA9IHtcbiYjNDM7XHRbSVBBX1JFU09VUkNFX1RZUEVfRFNUX0RBVEFfU0VDVE9SU10gPSB7XG4mIzQzO1x0XHQubGltaXRzW0lQQV9SU1JDX0dST1VQX0RTVF9VTF0gPSB7XG4mIzQzO1x0XHRcdC5taW4gPSA2LFx0Lm1heCA9IDYsXG4mIzQzO1x0XHR9LFxuJiM0MztcdFx0LmxpbWl0c1tJUEFfUlNSQ19HUk9VUF9EU1RfRExdID0ge1xuJiM0MztcdFx0XHQubWluID0gNSxcdC5tYXggPSA1LFxuJiM0MztcdFx0fSxcbiYjNDM7XHRcdC5saW1pdHNbSVBBX1JTUkNfR1JPVVBfRFNUX0RSQl9JUF0gPSB7XG4mIzQzO1x0XHRcdC5taW4gPSAzOSxcdC5tYXggPSAzOSxcbiYjNDM7XHRcdH0sXG4mIzQzO1x0fSxcbiYjNDM7XHRbSVBBX1JFU09VUkNFX1RZUEVfRFNUX0RQU19ETUFSU10gPSB7XG4mIzQzO1x0XHQubGltaXRzW0lQQV9SU1JDX0dST1VQX0RTVF9VTF0gPSB7XG4mIzQzO1x0XHRcdC5taW4gPSAwLFx0Lm1heCA9IDMsXG4mIzQzO1x0XHR9LFxuJiM0MztcdFx0LmxpbWl0c1tJUEFfUlNSQ19HUk9VUF9EU1RfRExdID0ge1xuJiM0MztcdFx0XHQubWluID0gMCxcdC5tYXggPSAzLFxuJiM0MztcdFx0fSxcbiYjNDM7XHR9LFxuJiM0MztcdFtJUEFfUkVTT1VSQ0VfVFlQRV9EU1RfVUxTT19TRUdNRU5UU10gPSB7XG4mIzQzO1x0XHQubGltaXRzW0lQQV9SU1JDX0dST1VQX0RTVF9VTF0gPSB7XG4mIzQzO1x0XHRcdC5taW4gPSAwLFx0Lm1heCA9IDYzLFxuJiM0MztcdFx0fSxcbiYjNDM7XHRcdC5saW1pdHNbSVBBX1JTUkNfR1JPVVBfRFNUX0RMXSA9IHtcbiYjNDM7XHRcdFx0Lm1pbiA9IDAsXHQubWF4ID0gNjMsXG4mIzQzO1x0XHR9LFxuJiM0MztcdH0sXG4mIzQzO307XG4mIzQzO1xuJiM0MzsvKiBSZXNvdXJjZSBjb25maWd1cmF0aW9uIGRhdGEgZm9yIGFuIFNvQyBoYXZpbmcgSVBBIHY1LjEgKi9cbiYjNDM7c3RhdGljIGNvbnN0IHN0cnVjdCBpcGFfcmVzb3VyY2VfZGF0YSBpcGFfcmVzb3VyY2VfZGF0YSA9IHtcbiYjNDM7XHQucnNyY19ncm91cF9kc3RfY291bnRcdD0gSVBBX1JTUkNfR1JPVVBfRFNUX0NPVU5ULFxuJiM0MztcdC5yc3JjX2dyb3VwX3NyY19jb3VudFx0PSBJUEFfUlNSQ19HUk9VUF9TUkNfQ09VTlQsXG4mIzQzO1x0LnJlc291cmNlX3NyY19jb3VudFx0PSBBUlJBWV9TSVpFKGlwYV9yZXNvdXJjZV9zcmMpLFxuJiM0MztcdC5yZXNvdXJjZV9zcmNcdFx0PSBpcGFfcmVzb3VyY2Vfc3JjLFxuJiM0MztcdC5yZXNvdXJjZV9kc3RfY291bnRcdD0gQVJSQVlfU0laRShpcGFfcmVzb3VyY2VfZHN0KSxcbiYjNDM7XHQucmVzb3VyY2VfZHN0XHRcdD0gaXBhX3Jlc291cmNlX2RzdCxcbiYjNDM7fTtcbiYjNDM7XG4mIzQzOy8qIElQQS1yZXNpZGVudCBtZW1vcnkgcmVnaW9uIGRhdGEgZm9yIGFuIFNvQyBoYXZpbmcgSVBBIHY1LjEgKi9cbiYjNDM7c3RhdGljIGNvbnN0IHN0cnVjdCBpcGFfbWVtIGlwYV9tZW1fbG9jYWxfZGF0YVtdID0ge1xuJiM0MztcdHtcbiYjNDM7XHRcdC5pZFx0XHQ9IElQQV9NRU1fVUNfRVZFTlRfUklORyxcbiYjNDM7XHRcdC5vZmZzZXRcdFx0PSAweDAwMDAsXG4mIzQzO1x0XHQuc2l6ZVx0XHQ9IDB4MTAwMCxcbiYjNDM7XHRcdC5jYW5hcnlfY291bnRcdD0gMCxcbiYjNDM7XHR9LFxuJiM0MztcdHtcbiYjNDM7XHRcdC5pZFx0XHQ9IElQQV9NRU1fVUNfU0hBUkVELFxuJiM0MztcdFx0Lm9mZnNldFx0XHQ9IDB4MTAwMCxcbiYjNDM7XHRcdC5zaXplXHRcdD0gMHgwMDgwLFxuJiM0MztcdFx0LmNhbmFyeV9jb3VudFx0PSAwLFxuJiM0MztcdH0sXG4mIzQzO1x0e1xuJiM0MztcdFx0LmlkXHRcdD0gSVBBX01FTV9VQ19JTkZPLFxuJiM0MztcdFx0Lm9mZnNldFx0XHQ9IDB4MTA4MCxcbiYjNDM7XHRcdC5zaXplXHRcdD0gMHgwMjAwLFxuJiM0MztcdFx0LmNhbmFyeV9jb3VudFx0PSAwLFxuJiM0MztcdH0sXG4mIzQzO1x0e1xuJiM0MztcdFx0LmlkXHRcdD0gSVBBX01FTV9WNF9GSUxURVJfSEFTSEVELFxuJiM0MztcdFx0Lm9mZnNldFx0XHQ9IDB4MTI4OCxcbiYjNDM7XHRcdC5zaXplXHRcdD0gMHgwMDc4LFxuJiM0MztcdFx0LmNhbmFyeV9jb3VudFx0PSAyLFxuJiM0MztcdH0sXG4mIzQzO1x0e1xuJiM0MztcdFx0LmlkXHRcdD0gSVBBX01FTV9WNF9GSUxURVIsXG4mIzQzO1x0XHQub2Zmc2V0XHRcdD0gMHgxMzA4LFxuJiM0MztcdFx0LnNpemVcdFx0PSAweDAwNzgsXG4mIzQzO1x0XHQuY2FuYXJ5X2NvdW50XHQ9IDIsXG4mIzQzO1x0fSxcbiYjNDM7XHR7XG4mIzQzO1x0XHQuaWRcdFx0PSBJUEFfTUVNX1Y2X0ZJTFRFUl9IQVNIRUQsXG4mIzQzO1x0XHQub2Zmc2V0XHRcdD0gMHgxMzg4LFxuJiM0MztcdFx0LnNpemVcdFx0PSAweDAwNzgsXG4mIzQzO1x0XHQuY2FuYXJ5X2NvdW50XHQ9IDIsXG4mIzQzO1x0fSxcbiYjNDM7XHR7XG4mIzQzO1x0XHQuaWRcdFx0PSBJUEFfTUVNX1Y2X0ZJTFRFUixcbiYjNDM7XHRcdC5vZmZzZXRcdFx0PSAweDE0MDgsXG4mIzQzO1x0XHQuc2l6ZVx0XHQ9IDB4MDA3OCxcbiYjNDM7XHRcdC5jYW5hcnlfY291bnRcdD0gMixcbiYjNDM7XHR9LFxuJiM0MztcdHtcbiYjNDM7XHRcdC5pZFx0XHQ9IElQQV9NRU1fVjRfUk9VVEVfSEFTSEVELFxuJiM0MztcdFx0Lm9mZnNldFx0XHQ9IDB4MTQ4OCxcbiYjNDM7XHRcdC5zaXplXHRcdD0gMHgwMDk4LFxuJiM0MztcdFx0LmNhbmFyeV9jb3VudFx0PSAyLFxuJiM0MztcdH0sXG4mIzQzO1x0e1xuJiM0MztcdFx0LmlkXHRcdD0gSVBBX01FTV9WNF9ST1VURSxcbiYjNDM7XHRcdC5vZmZzZXRcdFx0PSAweDE1MjgsXG4mIzQzO1x0XHQuc2l6ZVx0XHQ9IDB4MDA5OCxcbiYjNDM7XHRcdC5jYW5hcnlfY291bnRcdD0gMixcbiYjNDM7XHR9LFxuJiM0MztcdHtcbiYjNDM7XHRcdC5pZFx0XHQ9IElQQV9NRU1fVjZfUk9VVEVfSEFTSEVELFxuJiM0MztcdFx0Lm9mZnNldFx0XHQ9IDB4MTVjOCxcbiYjNDM7XHRcdC5zaXplXHRcdD0gMHgwMDk4LFxuJiM0MztcdFx0LmNhbmFyeV9jb3VudFx0PSAyLFxuJiM0MztcdH0sXG4mIzQzO1x0e1xuJiM0MztcdFx0LmlkXHRcdD0gSVBBX01FTV9WNl9ST1VURSxcbiYjNDM7XHRcdC5vZmZzZXRcdFx0PSAweDE2NjgsXG4mIzQzO1x0XHQuc2l6ZVx0XHQ9IDB4MDA5OCxcbiYjNDM7XHRcdC5jYW5hcnlfY291bnRcdD0gMixcbiYjNDM7XHR9LFxuJiM0MztcdHtcbiYjNDM7XHRcdC5pZFx0XHQ9IElQQV9NRU1fTU9ERU1fSEVBREVSLFxuJiM0MztcdFx0Lm9mZnNldFx0XHQ9IDB4MTcwOCxcbiYjNDM7XHRcdC5zaXplXHRcdD0gMHgwMjQwLFxuJiM0MztcdFx0LmNhbmFyeV9jb3VudFx0PSAyLFxuJiM0MztcdH0sXG4mIzQzO1x0e1xuJiM0MztcdFx0LmlkXHRcdD0gSVBBX01FTV9BUF9IRUFERVIsXG4mIzQzO1x0XHQub2Zmc2V0XHRcdD0gMHgxOTQ4LFxuJiM0MztcdFx0LnNpemVcdFx0PSAweDAxZTAsXG4mIzQzO1x0XHQuY2FuYXJ5X2NvdW50XHQ9IDAsXG4mIzQzO1x0fSxcbiYjNDM7XHR7XG4mIzQzO1x0XHQuaWRcdFx0PSBJUEFfTUVNX01PREVNX1BST0NfQ1RYLFxuJiM0MztcdFx0Lm9mZnNldFx0XHQ9IDB4MWI0MCxcbiYjNDM7XHRcdC5zaXplXHRcdD0gMHgwYjIwLFxuJiM0MztcdFx0LmNhbmFyeV9jb3VudFx0PSAyLFxuJiM0MztcdH0sXG4mIzQzO1x0e1xuJiM0MztcdFx0LmlkXHRcdD0gSVBBX01FTV9BUF9QUk9DX0NUWCxcbiYjNDM7XHRcdC5vZmZzZXRcdFx0PSAweDI2NjAsXG4mIzQzO1x0XHQuc2l6ZVx0XHQ9IDB4MDIwMCxcbiYjNDM7XHRcdC5jYW5hcnlfY291bnRcdD0gMCxcbiYjNDM7XHR9LFxuJiM0MztcdHtcbiYjNDM7XHRcdC5pZFx0XHQ9IElQQV9NRU1fU1RBVFNfUVVPVEFfTU9ERU0sXG4mIzQzO1x0XHQub2Zmc2V0XHRcdD0gMHgyODY4LFxuJiM0MztcdFx0LnNpemVcdFx0PSAweDAwNjAsXG4mIzQzO1x0XHQuY2FuYXJ5X2NvdW50XHQ9IDIsXG4mIzQzO1x0fSxcbiYjNDM7XHR7XG4mIzQzO1x0XHQuaWRcdFx0PSBJUEFfTUVNX1NUQVRTX1FVT1RBX0FQLFxuJiM0MztcdFx0Lm9mZnNldFx0XHQ9IDB4MjhjOCxcbiYjNDM7XHRcdC5zaXplXHRcdD0gMHgwMDQ4LFxuJiM0MztcdFx0LmNhbmFyeV9jb3VudFx0PSAwLFxuJiM0MztcdH0sXG4mIzQzO1x0e1xuJiM0MztcdFx0LmlkXHRcdD0gSVBBX01FTV9TVEFUU19URVRIRVJJTkcsXG4mIzQzO1x0XHQub2Zmc2V0XHRcdD0gMHgyOTEwLFxuJiM0MztcdFx0LnNpemVcdFx0PSAweDAzYzAsXG4mIzQzO1x0XHQuY2FuYXJ5X2NvdW50XHQ9IDAsXG4mIzQzO1x0fSxcbiYjNDM7XHR7XG4mIzQzO1x0XHQuaWRcdFx0PSBJUEFfTUVNX0FQX1Y0X0ZJTFRFUixcbiYjNDM7XHRcdC5vZmZzZXRcdFx0PSAweDI5YjgsXG4mIzQzO1x0XHQuc2l6ZVx0XHQ9IDB4MDE4OCxcbiYjNDM7XHRcdC5jYW5hcnlfY291bnRcdD0gMixcbiYjNDM7XHR9LFxuJiM0MztcdHtcbiYjNDM7XHRcdC5pZFx0XHQ9IElQQV9NRU1fQVBfVjZfRklMVEVSLFxuJiM0MztcdFx0Lm9mZnNldFx0XHQ9IDB4MmI0MCxcbiYjNDM7XHRcdC5zaXplXHRcdD0gMHgwMjI4LFxuJiM0MztcdFx0LmNhbmFyeV9jb3VudFx0PSAwLFxuJiM0MztcdH0sXG4mIzQzO1x0e1xuJiM0MztcdFx0LmlkXHRcdD0gSVBBX01FTV9TVEFUU19GSUxURVJfUk9VVEUsXG4mIzQzO1x0XHQub2Zmc2V0XHRcdD0gMHgyY2QwLFxuJiM0MztcdFx0LnNpemVcdFx0PSAweDBiYTAsXG4mIzQzO1x0XHQuY2FuYXJ5X2NvdW50XHQ9IDIsXG4mIzQzO1x0fSxcbiYjNDM7XHR7XG4mIzQzO1x0XHQuaWRcdFx0PSBJUEFfTUVNX1NUQVRTX0RST1AsXG4mIzQzO1x0XHQub2Zmc2V0XHRcdD0gMHgzODcwLFxuJiM0MztcdFx0LnNpemVcdFx0PSAweDAwMjAsXG4mIzQzO1x0XHQuY2FuYXJ5X2NvdW50XHQ9IDAsXG4mIzQzO1x0fSxcbiYjNDM7XHR7XG4mIzQzO1x0XHQuaWRcdFx0PSBJUEFfTUVNX01PREVNLFxuJiM0MztcdFx0Lm9mZnNldFx0XHQ9IDB4Mzg5OCxcbiYjNDM7XHRcdC5zaXplXHRcdD0gMHgwZDQ4LFxuJiM0MztcdFx0LmNhbmFyeV9jb3VudFx0PSAyLFxuJiM0MztcdH0sXG4mIzQzO1x0e1xuJiM0MztcdFx0LmlkXHRcdD0gSVBBX01FTV9OQVRfVEFCTEUsXG4mIzQzO1x0XHQub2Zmc2V0XHRcdD0gMHg0NWUwLFxuJiM0MztcdFx0LnNpemVcdFx0PSAweDA5MDAsXG4mIzQzO1x0XHQuY2FuYXJ5X2NvdW50XHQ9IDAsXG4mIzQzO1x0fSxcbiYjNDM7XHR7XG4mIzQzO1x0XHQuaWRcdFx0PSBJUEFfTUVNX1BETl9DT05GSUcsXG4mIzQzO1x0XHQub2Zmc2V0XHRcdD0gMHg0ZWU4LFxuJiM0MztcdFx0LnNpemVcdFx0PSAweDAxMDAsXG4mIzQzO1x0XHQuY2FuYXJ5X2NvdW50XHQ9IDIsXG4mIzQzO1x0fSxcbiYjNDM7fTtcbiYjNDM7XG4mIzQzOy8qIE1lbW9yeSBjb25maWd1cmF0aW9uIGRhdGEgZm9yIGFuIFNvQyBoYXZpbmcgSVBBIHY1LjEgKi9cbiYjNDM7c3RhdGljIGNvbnN0IHN0cnVjdCBpcGFfbWVtX2RhdGEgaXBhX21lbV9kYXRhID0ge1xuJiM0MztcdC5sb2NhbF9jb3VudFx0PSBBUlJBWV9TSVpFKGlwYV9tZW1fbG9jYWxfZGF0YSksXG4mIzQzO1x0LmxvY2FsXHRcdD0gaXBhX21lbV9sb2NhbF9kYXRhLFxuJiM0MztcdC5pbWVtX2FkZHJcdD0gMHgxNDZhODAwMCxcbiYjNDM7XHQuaW1lbV9zaXplXHQ9IDB4MDAwMDIwMDAsXG4mIzQzO1x0LypcbiYjNDM7XHQgKiBXaGlsZSB0aGlzIHZhbHVlIGlzIDB4YjAwMCBvbiBTTTg0NTAgYW5kIDB4OTAwMCBvbiBTTTg0NzUsXG4mIzQzO1x0ICogaXQgaGFzIGJlZW4gbGVmdCBzZXQgdG8gMHg5MDAwIGZvciBjb21wYXRpYmlsaXR5IHdpdGggU004NDc1XG4mIzQzO1x0ICovXG4mIzQzO1x0LnNtZW1fc2l6ZVx0PSAweDAwMDA5MDAwLFxuJiM0Mzt9O1xuJiM0MztcbiYjNDM7LyogSW50ZXJjb25uZWN0IHJhdGVzIGFyZSBpbiAxMDAwIGJ5dGUvc2Vjb25kIHVuaXRzICovXG4mIzQzO3N0YXRpYyBjb25zdCBzdHJ1Y3QgaXBhX2ludGVyY29ubmVjdF9kYXRhIGlwYV9pbnRlcmNvbm5lY3RfZGF0YVtdID0ge1xuJiM0MztcdHtcbiYjNDM7XHRcdC5uYW1lXHRcdFx0PSBcJiMzNDttZW1vcnlcJiMzNDssXG4mIzQzO1x0XHQucGVha19iYW5kd2lkdGhcdFx0PSAxOTAwMDAwLFx0LyogMS45IEdCcHMgKi9cbiYjNDM7XHRcdC5hdmVyYWdlX2JhbmR3aWR0aFx0PSA1OTAwMDAsXHQvKiA1OTAgTUJwcyAqL1xuJiM0MztcdH0sXG4mIzQzO1x0LyogQXZlcmFnZSByYXRlIGlzIHVudXNlZCBmb3IgdGhlIG5leHQgaW50ZXJjb25uZWN0ICovXG4mIzQzO1x0e1xuJiM0MztcdFx0Lm5hbWVcdFx0XHQ9IFwmIzM0O2NvbmZpZ1wmIzM0OyxcbiYjNDM7XHRcdC5wZWFrX2JhbmR3aWR0aFx0XHQ9IDc2ODAwLFx0LyogNzYuOCBNQnBzICovXG4mIzQzO1x0XHQuYXZlcmFnZV9iYW5kd2lkdGhcdD0gMCxcdFx0LyogdW51c2VkICovXG4mIzQzO1x0fSxcbiYjNDM7fTtcbiYjNDM7XG4mIzQzOy8qIENsb2NrIGFuZCBpbnRlcmNvbm5lY3QgY29uZmlndXJhdGlvbiBkYXRhIGZvciBhbiBTb0MgaGF2aW5nIElQQSB2NS4xICovXG4mIzQzO3N0YXRpYyBjb25zdCBzdHJ1Y3QgaXBhX3Bvd2VyX2RhdGEgaXBhX3Bvd2VyX2RhdGEgPSB7XG4mIzQzO1x0LmNvcmVfY2xvY2tfcmF0ZVx0PSAxMjAgKiAxMDAwICogMTAwMCxcdC8qIEh6ICovXG4mIzQzO1x0LmludGVyY29ubmVjdF9jb3VudFx0PSBBUlJBWV9TSVpFKGlwYV9pbnRlcmNvbm5lY3RfZGF0YSksXG4mIzQzO1x0LmludGVyY29ubmVjdF9kYXRhXHQ9IGlwYV9pbnRlcmNvbm5lY3RfZGF0YSxcbiYjNDM7fTtcbiYjNDM7XG4mIzQzOy8qIENvbmZpZ3VyYXRpb24gZGF0YSBmb3IgYW4gU29DIGhhdmluZyBJUEEgdjUuMS4gKi9cbiYjNDM7Y29uc3Qgc3RydWN0IGlwYV9kYXRhIGlwYV9kYXRhX3Y1XzEgPSB7XG4mIzQzO1x0LnZlcnNpb25cdFx0PSBJUEFfVkVSU0lPTl81XzEsXG4mIzQzO1x0LnFzYl9jb3VudFx0XHQ9IEFSUkFZX1NJWkUoaXBhX3FzYl9kYXRhKSxcbiYjNDM7XHQucXNiX2RhdGFcdFx0PSBpcGFfcXNiX2RhdGEsXG4mIzQzO1x0Lm1vZGVtX3JvdXRlX2NvdW50XHQ9IDExLFxuJiM0MztcdC5lbmRwb2ludF9jb3VudFx0XHQ9IEFSUkFZX1NJWkUoaXBhX2dzaV9lbmRwb2ludF9kYXRhKSxcbiYjNDM7XHQuZW5kcG9pbnRfZGF0YVx0XHQ9IGlwYV9nc2lfZW5kcG9pbnRfZGF0YSxcbiYjNDM7XHQucmVzb3VyY2VfZGF0YVx0XHQ9IFx1MDAyNmlwYV9yZXNvdXJjZV9kYXRhLFxuJiM0MztcdC5tZW1fZGF0YVx0XHQ9IFx1MDAyNmlwYV9tZW1fZGF0YSxcbiYjNDM7XHQucG93ZXJfZGF0YVx0XHQ9IFx1MDAyNmlwYV9wb3dlcl9kYXRhLFxuJiM0Mzt9O1xuZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2lwYS9nc2lfcmVnLmMgYi9kcml2ZXJzL25ldC9pcGEvZ3NpX3JlZy5jXG5pbmRleCBlMTNjZjgzNWEwMTNjOS4uYTU3MDcyYmE0YmVmNmYgMTAwNjQ0XG4tLS0gYS9kcml2ZXJzL25ldC9pcGEvZ3NpX3JlZy5jXG4mIzQzOyYjNDM7JiM0MzsgYi9kcml2ZXJzL25ldC9pcGEvZ3NpX3JlZy5jXG5AQCAtMTEwLDYgJiM0MzsxMTAsNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IHJlZ3MgKmdzaV9yZWdzKHN0cnVjdCBnc2kgKmdzaSlcbiBcdFx0cmV0dXJuIFx1MDAyNmdzaV9yZWdzX3Y0XzExO1xuIFxuIFx0Y2FzZSBJUEFfVkVSU0lPTl81XzA6XG4mIzQzO1x0Y2FzZSBJUEFfVkVSU0lPTl81XzE6XG4gXHRjYXNlIElQQV9WRVJTSU9OXzVfMjpcbiBcdGNhc2UgSVBBX1ZFUlNJT05fNV81OlxuIFx0XHRyZXR1cm4gXHUwMDI2Z3NpX3JlZ3NfdjVfMDtcbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9pcGEvaXBhX2RhdGEuaCBiL2RyaXZlcnMvbmV0L2lwYS9pcGFfZGF0YS5oXG5pbmRleCAzZWI5ZGMyY2UzMzk4ZC4uZmU2ZjdkNWJmZTg4YzkgMTAwNjQ0XG4tLS0gYS9kcml2ZXJzL25ldC9pcGEvaXBhX2RhdGEuaFxuJiM0MzsmIzQzOyYjNDM7IGIvZHJpdmVycy9uZXQvaXBhL2lwYV9kYXRhLmhcbkBAIC0yNTMsNiAmIzQzOzI1Myw3IEBAIGV4dGVybiBjb25zdCBzdHJ1Y3QgaXBhX2RhdGEgaXBhX2RhdGFfdjRfNztcbiBleHRlcm4gY29uc3Qgc3RydWN0IGlwYV9kYXRhIGlwYV9kYXRhX3Y0Xzk7XG4gZXh0ZXJuIGNvbnN0IHN0cnVjdCBpcGFfZGF0YSBpcGFfZGF0YV92NF8xMTtcbiBleHRlcm4gY29uc3Qgc3RydWN0IGlwYV9kYXRhIGlwYV9kYXRhX3Y1XzA7XG4mIzQzO2V4dGVybiBjb25zdCBzdHJ1Y3QgaXBhX2RhdGEgaXBhX2RhdGFfdjVfMTtcbiBleHRlcm4gY29uc3Qgc3RydWN0IGlwYV9kYXRhIGlwYV9kYXRhX3Y1XzI7XG4gZXh0ZXJuIGNvbnN0IHN0cnVjdCBpcGFfZGF0YSBpcGFfZGF0YV92NV81O1xuIFxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2lwYS9pcGFfbWFpbi5jIGIvZHJpdmVycy9uZXQvaXBhL2lwYV9tYWluLmNcbmluZGV4IDc4OGRkOTlhZjJhNGRjLi42YzQ0OTAzMmFlNDU5MiAxMDA2NDRcbi0tLSBhL2RyaXZlcnMvbmV0L2lwYS9pcGFfbWFpbi5jXG4mIzQzOyYjNDM7JiM0MzsgYi9kcml2ZXJzL25ldC9pcGEvaXBhX21haW4uY1xuQEAgLTY2OSw2ICYjNDM7NjY5LDEwIEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3Qgb2ZfZGV2aWNlX2lkIGlwYV9tYXRjaFtdID0ge1xuIFx0XHQuY29tcGF0aWJsZVx0PSBcJiMzNDtxY29tLHNkeDY1LWlwYVwmIzM0OyxcbiBcdFx0LmRhdGFcdFx0PSBcdTAwMjZpcGFfZGF0YV92NV8wLFxuIFx0fSxcbiYjNDM7XHR7XG4mIzQzO1x0XHQuY29tcGF0aWJsZVx0PSBcJiMzNDtxY29tLHNtODQ1MC1pcGFcJiMzNDssXG4mIzQzO1x0XHQuZGF0YVx0XHQ9IFx1MDAyNmlwYV9kYXRhX3Y1XzEsXG4mIzQzO1x0fSxcbiBcdHtcbiBcdFx0LmNvbXBhdGlibGVcdD0gXCYjMzQ7cWNvbSxtaWxvcy1pcGFcJiMzNDssXG4gXHRcdC5kYXRhXHRcdD0gXHUwMDI2aXBhX2RhdGFfdjVfMixcbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9pcGEvaXBhX3JlZy5jIGIvZHJpdmVycy9uZXQvaXBhL2lwYV9yZWcuY1xuaW5kZXggMzBiZDY5ZjRjMTQ3Y2QuLjVmMjJjYTYyOTViMTY1IDEwMDY0NFxuLS0tIGEvZHJpdmVycy9uZXQvaXBhL2lwYV9yZWcuY1xuJiM0MzsmIzQzOyYjNDM7IGIvZHJpdmVycy9uZXQvaXBhL2lwYV9yZWcuY1xuQEAgLTEyNSw2ICYjNDM7MTI1LDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCByZWdzICppcGFfcmVncyhlbnVtIGlwYV92ZXJzaW9uIHZlcnNpb24pXG4gXHRjYXNlIElQQV9WRVJTSU9OXzRfMTE6XG4gXHRcdHJldHVybiBcdTAwMjZpcGFfcmVnc192NF8xMTtcbiBcdGNhc2UgSVBBX1ZFUlNJT05fNV8wOlxuJiM0MztcdGNhc2UgSVBBX1ZFUlNJT05fNV8xOlxuIFx0Y2FzZSBJUEFfVkVSU0lPTl81XzI6XG4gXHRcdHJldHVybiBcdTAwMjZpcGFfcmVnc192NV8wO1xuIFx0Y2FzZSBJUEFfVkVSU0lPTl81XzU6XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Mi8xPC90ZD4KCQkJPHRkPjIwMjYvMDYvMjMgMDI6MDA8L3RkPgoJCQk8dGQ+YWdlbnQ8L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IG51bGwsCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogW10sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggYWRkcyBzdXBwb3J0IGZvciBhIG5ldyBoYXJkd2FyZSB2ZXJzaW9uICh2NS4xKSBvZiB0aGUgUXVhbGNvbW0gSVAgQWNjZWxlcmF0b3IgKElQQSkgZm9yIHRoZSBTTTg0NTAgU29DLiBJdCBvbmx5IGludHJvZHVjZXMgbmV3IGRhdGEgc3RydWN0dXJlcywgZGV2aWNlIHRyZWUgYmluZGluZ3MsIGFuZCByZWdpc3RlcnMgdGhlIG5ldyBjb21wYXRpYmxlIHN0cmluZy4gVGhlIElQQSBpcyBhIGhhcmR3YXJlIGJsb2NrIHNwZWNpZmljIHRvIFF1YWxjb21tIFNvQ3MgYW5kIGlzIG5vdCBlbXVsYXRlZCBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBRRU1VIG9yIEdDRSwgbWFraW5nIHRoaXMgY29kZSB1bnJlYWNoYWJsZSBhbmQgdW50ZXN0YWJsZSBkdXJpbmcgZnV6emluZy4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiBmYWxzZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5JbnN0cnVjdGlvbjo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPllvdSBhcmUgYW4gZXhwZXJ0IExpbnV4IGtlcm5lbCBtYWludGFpbmVyLgpZb3VyIGpvYiBpcyB0byByZXZpZXcgYSBwcm92aWRlZCBwYXRjaCBzZXJpZXMgYW5kIGRldGVybWluZQppZiBpdCBtYWtlcyBmdW5jdGlvbmFsIGNoYW5nZXMgdG8gdGhlIGtlcm5lbCB0aGF0IHNob3VsZCBiZSBmdXp6ZWQuCgpJTVBPUlRBTlQ6IFRoZSBjaGFuZ2VzIGhhdmUgQUxSRUFEWSBiZWVuIGFwcGxpZWQgYW5kIGNvbW1pdHRlZCBhcyB0aGUgSEVBRCBjb21taXQgaW4KeW91ciB3b3Jrc3BhY2UuIERvIE5PVCByZWx5IG9uIHlvdXIgaW50ZXJuYWwga25vd2xlZGdlIG9mIHRoZSBrZXJuZWwuIFlvdSBtdXN0IGFjdGl2ZWx5CnVzZSB5b3VyIGNvZGUgYWNjZXNzIHRvb2xzIHRvIGV4YW1pbmUgdGhlIGFjdHVhbCBzb3VyY2UgY29kZSBhbmQgY29uZmlybSBhbnkgYXNzdW1wdGlvbnMuCgpSZXR1cm4gV29ydGhGdXp6aW5nPWZhbHNlIGlmIHRoZSBwYXRjaCBvbmx5IGNvbnRhaW5zOgotIE1vZGlmaWNhdGlvbnMgdG8gRG9jdW1lbnRhdGlvbi8sIEtjb25maWcgZmlsZXMsIG9yIGNvZGUgY29tbWVudHMuCi0gUHVyZWx5IGRlY29yYXRpdmUgY2hhbmdlcywgc3VjaCBhcyBsb2dnaW5nIChlLmcuLCBwcl9lcnIsIHByaW50aykgb3IgdHJhY2Vwb2ludHMuCi0gQ2hhbmdlcyB0byBudW1lcmljIGNvbnN0YW50cyBvciBtYWNyb3MgdGhhdCBkbyBub3QgZnVuY3Rpb25hbGx5IGFsdGVyIGV4ZWN1dGlvbiBmbG93LgotIENvZGUgcGF0aHMgdGhhdCBhcmUgaW1wb3NzaWJsZSB0byByZWFjaCBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBHQ0Ugb3IgUUVNVSwKZXZlbiB3aGVuIHV0aWxpemluZyBzb2Z0d2FyZS1lbXVsYXRlZCBoYXJkd2FyZSAoZS5nLiwgdXNiIGdhZGdldCwgbWFjODAyMTFfaHdzaW0pLgoKSWYgaXQgbW9kaWZpZXMgcmVhY2hhYmxlIGNvcmUga2VybmVsIGxvZ2ljLCBkcml2ZXJzLCBvciBhcmNoaXRlY3R1cmVzLCB1c2UgeW91ciBjb2RlIHNlYXJjaAp0b29scyB0byB2ZXJpZnkgdGhlIGNvZGUgY2FuIGJlIGV4ZWN1dGVkLCB0aGVuIHJldHVybiBXb3J0aEZ1enppbmc9dHJ1ZS4KCldoZW4gcmV0dXJuaW5nIFdvcnRoRnV6emluZz10cnVlLCB5b3UgTVVTVCBBTFNPOgoxLiBFeHRyYWN0IGFueSBzcGVjaWZpYyBrZXJuZWwgZnVuY3Rpb25zIHRoYXQgc2hvdWxkIGJlIGhlYXZpbHkgZnV6emVkIGludG8gRm9jdXNTeW1ib2xzLgogICBBdm9pZCBsaXN0aW5nIGdlbmVyaWMgaG90LXBhdGggZnVuY3Rpb25zIHRvIHByZXZlbnQgc2tld2VkIHRlc3QgZGlzdHJpYnV0aW9ucy4KMi4gSWRlbnRpZnkgYW55IHNwZWNpZmljIENPTkZJR18gb3B0aW9ucyByZXF1aXJlZCB0byBwcm9wZXJseSB0ZXN0IHRoaXMgbmV3L21vZGlmaWVkIGZlYXR1cmUuCiAgIEdvIGFuZCBsb29rIGludG8gdGhlIEtjb25maWcgZmlsZXMgYW5kIGNoZWNrIGZvciBpZmRlZnMgYXJvdW5kIHRoZSBjb2RlLCBkbyBub3QgbWFrZSBhc3N1bXB0aW9ucy4KICAgRG8gbm90IGxpc3QgdG9vIGdlbmVyaWMgY29uZmlncyAod2UgYWxyZWFkeSBoYXZlIHRoZW0gZW5hYmxlZCkuIE9ubHkgbGlzdCB0aG9zZSB0aGF0CiAgIHNwZWNpZmljYWxseSBjb3ZlciB0aGUgbW9kaWZpZWQgY29kZS4gTGlzdCB0aGVtIGluIHRoZSBFbmFibGVDb25maWdzIG91dHB1dCBhcnJheSwKICAgYW5kIERPIE5PVCBhZGQgYSAmIzM5O0NPTkZJR18mIzM5OyBwcmVmaXggKGUuZy4sIHJldHVybiAmIzM0O05FVF9JUFY0JiMzNDsgaW5zdGVhZCBvZiAmIzM0O0NPTkZJR19ORVRfSVBWNCYjMzQ7KS4KUHJlZmVyIGNhbGxpbmcgc2V2ZXJhbCB0b29scyBhdCB0aGUgc2FtZSB0aW1lIHRvIHNhdmUgcm91bmQtdHJpcHMuCgoKVXNlIHNldC1yZXN1bHRzIHRvb2wgdG8gcHJvdmlkZSByZXN1bHRzIG9mIHRoZSBhbmFseXNpcy4KSXQgbXVzdCBiZSBjYWxsZWQgZXhhY3RseSBvbmNlIGJlZm9yZSB0aGUgZmluYWwgcmVwbHkuCklnbm9yZSByZXN1bHRzIG9mIHRoaXMgdG9vbC4KPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Qcm9tcHQ6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Gb3IgeW91ciBjb252ZW5pZW5jZSwgaGVyZSBpcyB0aGUgZGlmZiBvZiB0aGUgY2hhbmdlczoKY29tbWl0IGRkMmRkZjEwNzUwYjBlZjQzYWZhNjBhYWU2ZjExYTdmYzQ1MjM4Y2MKQXV0aG9yOiBzeXotY2x1c3RlciAmbHQ7dHJpYWdlQHN5emthbGxlci5jb20mZ3Q7CkRhdGU6ICAgVHVlIEp1biAyMyAwMjowMDoyNiAyMDI2ICYjNDM7MDAwMAoKICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlldwoKZGlmZiAtLWdpdCBhL0RvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvcWNvbSxpcGEueWFtbCBiL0RvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvcWNvbSxpcGEueWFtbAppbmRleCA2OGVjNzZmZTQ0NzM1Ni4uZGI5MWJmYWFmODMzMmUgMTAwNjQ0Ci0tLSBhL0RvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvcWNvbSxpcGEueWFtbAomIzQzOyYjNDM7JiM0MzsgYi9Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L3Fjb20saXBhLnlhbWwKQEAgLTUzLDYgJiM0Mzs1Myw3IEBAIHByb3BlcnRpZXM6CiAgICAgICAgICAgLSBxY29tLHNkeDY1LWlwYQogICAgICAgICAgIC0gcWNvbSxzbTYzNTAtaXBhCiAgICAgICAgICAgLSBxY29tLHNtODM1MC1pcGEKJiM0MzsgICAgICAgICAgLSBxY29tLHNtODQ1MC1pcGEKICAgICAgICAgICAtIHFjb20sc204NTUwLWlwYQogICAgICAgLSBpdGVtczoKICAgICAgICAgICAtIGVudW06CmRpZmYgLS1naXQgYS9hcmNoL2FybTY0L2Jvb3QvZHRzL3Fjb20vc204NDUwLmR0c2kgYi9hcmNoL2FybTY0L2Jvb3QvZHRzL3Fjb20vc204NDUwLmR0c2kKaW5kZXggNTZjYjZlOTU5ZTRlZTIuLmM5MDQ3MjAwMDhmYWM3IDEwMDY0NAotLS0gYS9hcmNoL2FybTY0L2Jvb3QvZHRzL3Fjb20vc204NDUwLmR0c2kKJiM0MzsmIzQzOyYjNDM7IGIvYXJjaC9hcm02NC9ib290L2R0cy9xY29tL3NtODQ1MC5kdHNpCkBAIC0yNjM5LDYgJiM0MzsyNjM5LDQ3IEBAIGFkcmVub19zbW11OiBpb21tdUAzZGEwMDAwIHsKIAkJCWRtYS1jb2hlcmVudDsKIAkJfTsKIAomIzQzOwkJaXBhOiBpcGFAM2Y0MDAwMCB7CiYjNDM7CQkJY29tcGF0aWJsZSA9ICYjMzQ7cWNvbSxzbTg0NTAtaXBhJiMzNDs7CiYjNDM7CiYjNDM7CQkJaW9tbXVzID0gJmx0OyZhbXA7YXBwc19zbW11IDB4NWMwIDB4MCZndDssCiYjNDM7CQkJCSAmbHQ7JmFtcDthcHBzX3NtbXUgMHg1YzIgMHgwJmd0OzsKJiM0MzsJCQlyZWcgPSAmbHQ7MCAweDNmNDAwMDAgMCAweDEwMDAwJmd0OywKJiM0MzsJCQkgICAgICAmbHQ7MCAweDNmNTAwMDAgMCAweDUwMDAmZ3Q7LAomIzQzOwkJCSAgICAgICZsdDswIDB4M2UwNDAwMCAwIDB4ZmMwMDAmZ3Q7OwomIzQzOwkJCXJlZy1uYW1lcyA9ICYjMzQ7aXBhLXJlZyYjMzQ7LAomIzQzOwkJCQkgICAgJiMzNDtpcGEtc2hhcmVkJiMzNDssCiYjNDM7CQkJCSAgICAmIzM0O2dzaSYjMzQ7OwomIzQzOwomIzQzOwkJCWludGVycnVwdHMtZXh0ZW5kZWQgPSAmbHQ7JmFtcDtpbnRjIEdJQ19TUEkgNjU0IElSUV9UWVBFX0VER0VfUklTSU5HJmd0OywKJiM0MzsJCQkJCSAgICAgICZsdDsmYW1wO2ludGMgR0lDX1NQSSA0MzIgSVJRX1RZUEVfTEVWRUxfSElHSCZndDssCiYjNDM7CQkJCQkgICAgICAmbHQ7JmFtcDtpcGFfc21wMnBfaW4gMCBJUlFfVFlQRV9FREdFX1JJU0lORyZndDssCiYjNDM7CQkJCQkgICAgICAmbHQ7JmFtcDtpcGFfc21wMnBfaW4gMSBJUlFfVFlQRV9FREdFX1JJU0lORyZndDs7CiYjNDM7CQkJaW50ZXJydXB0LW5hbWVzID0gJiMzNDtpcGEmIzM0OywKJiM0MzsJCQkJCSAgJiMzNDtnc2kmIzM0OywKJiM0MzsJCQkJCSAgJiMzNDtpcGEtY2xvY2stcXVlcnkmIzM0OywKJiM0MzsJCQkJCSAgJiMzNDtpcGEtc2V0dXAtcmVhZHkmIzM0OzsKJiM0MzsKJiM0MzsJCQljbG9ja3MgPSAmbHQ7JmFtcDtycG1oY2MgUlBNSF9JUEFfQ0xLJmd0OzsKJiM0MzsJCQljbG9jay1uYW1lcyA9ICYjMzQ7Y29yZSYjMzQ7OwomIzQzOwomIzQzOwkJCWludGVyY29ubmVjdHMgPSAmbHQ7JmFtcDthZ2dyZTJfbm9jIE1BU1RFUl9JUEEgMCAmYW1wO21jX3ZpcnQgU0xBVkVfRUJJMSAwJmd0OywKJiM0MzsJCQkJCSZsdDsmYW1wO2dlbV9ub2MgTUFTVEVSX0FQUFNTX1BST0MgMCAmYW1wO2NvbmZpZ19ub2MgU0xBVkVfSVBBX0NGRyAwJmd0OzsKJiM0MzsJCQlpbnRlcmNvbm5lY3QtbmFtZXMgPSAmIzM0O21lbW9yeSYjMzQ7LAomIzQzOwkJCQkJICAgICAmIzM0O2NvbmZpZyYjMzQ7OwomIzQzOwomIzQzOwkJCXFjb20scW1wID0gJmx0OyZhbXA7YW9zc19xbXAmZ3Q7OwomIzQzOwomIzQzOwkJCXFjb20sc21lbS1zdGF0ZXMgPSAmbHQ7JmFtcDtpcGFfc21wMnBfb3V0IDAmZ3Q7LAomIzQzOwkJCQkJICAgJmx0OyZhbXA7aXBhX3NtcDJwX291dCAxJmd0OzsKJiM0MzsJCQlxY29tLHNtZW0tc3RhdGUtbmFtZXMgPSAmIzM0O2lwYS1jbG9jay1lbmFibGVkLXZhbGlkJiMzNDssCiYjNDM7CQkJCQkJJiMzNDtpcGEtY2xvY2stZW5hYmxlZCYjMzQ7OwomIzQzOwomIzQzOwkJCXNyYW0gPSAmbHQ7JmFtcDtpcGFfbW9kZW1fdGFibGVzJmd0OzsKJiM0MzsKJiM0MzsJCQlzdGF0dXMgPSAmIzM0O2Rpc2FibGVkJiMzNDs7CiYjNDM7CQl9OwomIzQzOwogCQl1c2JfMV9oc3BoeTogcGh5QDg4ZTMwMDAgewogCQkJY29tcGF0aWJsZSA9ICYjMzQ7cWNvbSxzbTg0NTAtdXNiLWhzLXBoeSYjMzQ7LAogCQkJCSAgICAgJiMzNDtxY29tLHVzYi1zbnBzLWhzLTdubS1waHkmIzM0OzsKQEAgLTQ5NzAsMTcgJiM0Mzs1MDExLDIxIEBAIGN0aUAxMzkwMDAwMCB7CiAJCQljbG9jay1uYW1lcyA9ICYjMzQ7YXBiX3BjbGsmIzM0OzsKIAkJfTsKIAotCQlzcmFtQDE0NmFhMDAwIHsKJiM0MzsJCXNyYW1AMTQ2YTgwMDAgewogCQkJY29tcGF0aWJsZSA9ICYjMzQ7cWNvbSxzbTg0NTAtaW1lbSYjMzQ7LCAmIzM0O3N5c2NvbiYjMzQ7LCAmIzM0O3NpbXBsZS1tZmQmIzM0OzsKLQkJCXJlZyA9ICZsdDswIDB4MTQ2YWEwMDAgMCAweDEwMDAmZ3Q7OwotCQkJcmFuZ2VzID0gJmx0OzAgMCAweDE0NmFhMDAwIDB4MTAwMCZndDs7CiYjNDM7CQkJcmVnID0gJmx0OzAgMHgxNDZhODAwMCAwIDB4MzAwMCZndDs7CiYjNDM7CQkJcmFuZ2VzID0gJmx0OzAgMCAweDE0NmE4MDAwIDB4MzAwMCZndDs7CiAKIAkJCSNhZGRyZXNzLWNlbGxzID0gJmx0OzEmZ3Q7OwogCQkJI3NpemUtY2VsbHMgPSAmbHQ7MSZndDs7CiAKLQkJCXBpbC1yZWxvY0A5NGMgewomIzQzOwkJCWlwYV9tb2RlbV90YWJsZXM6IG1vZGVtLXRhYmxlc0AwIHsKJiM0MzsJCQkJcmVnID0gJmx0OzAgMHgyMDAwJmd0OzsKJiM0MzsJCQl9OwomIzQzOwomIzQzOwkJCXBpbC1yZWxvY0AyOTRjIHsKIAkJCQljb21wYXRpYmxlID0gJiMzNDtxY29tLHBpbC1yZWxvYy1pbmZvJiMzNDs7Ci0JCQkJcmVnID0gJmx0OzB4OTRjIDB4YzgmZ3Q7OwomIzQzOwkJCQlyZWcgPSAmbHQ7MHgyOTRjIDB4YzgmZ3Q7OwogCQkJfTsKIAkJfTsKIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvaXBhL01ha2VmaWxlIGIvZHJpdmVycy9uZXQvaXBhL01ha2VmaWxlCmluZGV4IGUxNDhlYzNjMWExMDEwLi5kNDk5NWMyZThjYTAyMyAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvaXBhL01ha2VmaWxlCiYjNDM7JiM0MzsmIzQzOyBiL2RyaXZlcnMvbmV0L2lwYS9NYWtlZmlsZQpAQCAtNyw3ICYjNDM7Nyw3IEBAIElQQV9SRUdfVkVSU0lPTlMJOj0JMy4xIDMuNS4xIDQuMiA0LjUgNC43IDQuOSA0LjExIDUuMCA1LjUKICMgU29tZSBJUEEgdmVyc2lvbnMgY2FuIHJldXNlIGFub3RoZXIgc2V0IG9mIEdTSSByZWdpc3RlciBkZWZpbml0aW9ucy4KIEdTSV9SRUdfVkVSU0lPTlMJOj0JMy4xIDMuNS4xIDQuMCA0LjUgNC45IDQuMTEgNS4wCiAKLUlQQV9EQVRBX1ZFUlNJT05TCTo9CTMuMSAzLjUuMSA0LjIgNC41IDQuNyA0LjkgNC4xMSA1LjAgNS4yIDUuNQomIzQzO0lQQV9EQVRBX1ZFUlNJT05TCTo9CTMuMSAzLjUuMSA0LjIgNC41IDQuNyA0LjkgNC4xMSA1LjAgNS4xIDUuMiA1LjUKIAogb2JqLSQoQ09ORklHX1FDT01fSVBBKQkmIzQzOz0JaXBhLm8KIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvaXBhL2RhdGEvaXBhX2RhdGEtdjUuMS5jIGIvZHJpdmVycy9uZXQvaXBhL2RhdGEvaXBhX2RhdGEtdjUuMS5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwLi44NWIyMWVmYTEyMjRkYgotLS0gL2Rldi9udWxsCiYjNDM7JiM0MzsmIzQzOyBiL2RyaXZlcnMvbmV0L2lwYS9kYXRhL2lwYV9kYXRhLXY1LjEuYwpAQCAtMCwwICYjNDM7MSw0NzcgQEAKJiM0MzsvLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMAomIzQzOwomIzQzOy8qIENvcHlyaWdodCAoQykgMjAyMy0yMDI0IExpbmFybyBMdGQuICovCiYjNDM7LyogQ29weXJpZ2h0IChDKSAyMDI2IEVzdGViYW4gVXJydXRpYSAmbHQ7ZXN0ZXV3dUBwcm90b24ubWUmZ3Q7ICovCiYjNDM7CiYjNDM7I2luY2x1ZGUgJmx0O2xpbnV4L2FycmF5X3NpemUuaCZndDsKJiM0MzsjaW5jbHVkZSAmbHQ7bGludXgvbG9nMi5oJmd0OwomIzQzOwomIzQzOyNpbmNsdWRlICYjMzQ7Li4vaXBhX2RhdGEuaCYjMzQ7CiYjNDM7I2luY2x1ZGUgJiMzNDsuLi9pcGFfZW5kcG9pbnQuaCYjMzQ7CiYjNDM7I2luY2x1ZGUgJiMzNDsuLi9pcGFfbWVtLmgmIzM0OwomIzQzOyNpbmNsdWRlICYjMzQ7Li4vaXBhX3ZlcnNpb24uaCYjMzQ7CiYjNDM7CiYjNDM7LyoqIGVudW0gaXBhX3Jlc291cmNlX3R5cGUgLSBJUEEgcmVzb3VyY2UgdHlwZXMgZm9yIGFuIFNvQyBoYXZpbmcgSVBBIHY1LjEgKi8KJiM0MztlbnVtIGlwYV9yZXNvdXJjZV90eXBlIHsKJiM0MzsJLyogU291cmNlIHJlc291cmNlIHR5cGVzOyBmaXJzdCBtdXN0IGhhdmUgdmFsdWUgMCAqLwomIzQzOwlJUEFfUkVTT1VSQ0VfVFlQRV9TUkNfUEtUX0NPTlRFWFRTCQk9IDAsCiYjNDM7CUlQQV9SRVNPVVJDRV9UWVBFX1NSQ19ERVNDUklQVE9SX0xJU1RTLAomIzQzOwlJUEFfUkVTT1VSQ0VfVFlQRV9TUkNfREVTQ1JJUFRPUl9CVUZGLAomIzQzOwlJUEFfUkVTT1VSQ0VfVFlQRV9TUkNfSFBTX0RNQVJTLAomIzQzOwlJUEFfUkVTT1VSQ0VfVFlQRV9TUkNfQUNLX0VOVFJJRVMsCiYjNDM7CiYjNDM7CS8qIERlc3RpbmF0aW9uIHJlc291cmNlIHR5cGVzOyBmaXJzdCBtdXN0IGhhdmUgdmFsdWUgMCAqLwomIzQzOwlJUEFfUkVTT1VSQ0VfVFlQRV9EU1RfREFUQV9TRUNUT1JTCQk9IDAsCiYjNDM7CUlQQV9SRVNPVVJDRV9UWVBFX0RTVF9EUFNfRE1BUlMsCiYjNDM7CUlQQV9SRVNPVVJDRV9UWVBFX0RTVF9VTFNPX1NFR01FTlRTLAomIzQzO307CiYjNDM7CiYjNDM7LyogUmVzb3VyY2UgZ3JvdXBzIHVzZWQgZm9yIGFuIFNvQyBoYXZpbmcgSVBBIHY1LjEgKi8KJiM0MztlbnVtIGlwYV9yc3JjX2dyb3VwX2lkIHsKJiM0MzsJLyogU291cmNlIHJlc291cmNlIGdyb3VwIGlkZW50aWZpZXJzICovCiYjNDM7CUlQQV9SU1JDX0dST1VQX1NSQ19VTAkJCQk9IDAsCiYjNDM7CUlQQV9SU1JDX0dST1VQX1NSQ19ETCwKJiM0MzsJSVBBX1JTUkNfR1JPVVBfU1JDX1VOVVNFRF8yLAomIzQzOwlJUEFfUlNSQ19HUk9VUF9TUkNfVU5VU0VEXzMsCiYjNDM7CUlQQV9SU1JDX0dST1VQX1NSQ19VUkxMQywKJiM0MzsJSVBBX1JTUkNfR1JPVVBfU1JDX1VfUlhfUUMsCiYjNDM7CUlQQV9SU1JDX0dST1VQX1NSQ19DT1VOVCwJLyogTGFzdCBpbiBzZXQ7IG5vdCBhIHNvdXJjZSBncm91cCAqLwomIzQzOwomIzQzOwkvKiBEZXN0aW5hdGlvbiByZXNvdXJjZSBncm91cCBpZGVudGlmaWVycyAqLwomIzQzOwlJUEFfUlNSQ19HUk9VUF9EU1RfVUwJCQkJPSAwLAomIzQzOwlJUEFfUlNSQ19HUk9VUF9EU1RfREwsCiYjNDM7CUlQQV9SU1JDX0dST1VQX0RTVF9VTlVTRURfMiwKJiM0MzsJSVBBX1JTUkNfR1JPVVBfRFNUX1VOVVNFRF8zLAomIzQzOwlJUEFfUlNSQ19HUk9VUF9EU1RfVU5VU0VEXzQsCiYjNDM7CUlQQV9SU1JDX0dST1VQX0RTVF9VQywKJiM0MzsJSVBBX1JTUkNfR1JPVVBfRFNUX0RSQl9JUCwKJiM0MzsJSVBBX1JTUkNfR1JPVVBfRFNUX0NPVU5ULAkvKiBMYXN0OyBub3QgYSBkZXN0aW5hdGlvbiBncm91cCAqLwomIzQzO307CiYjNDM7CiYjNDM7LyogUVNCIGNvbmZpZ3VyYXRpb24gZGF0YSBmb3IgYW4gU29DIGhhdmluZyBJUEEgdjUuMSAqLwomIzQzO3N0YXRpYyBjb25zdCBzdHJ1Y3QgaXBhX3FzYl9kYXRhIGlwYV9xc2JfZGF0YVtdID0gewomIzQzOwlbSVBBX1FTQl9NQVNURVJfRERSXSA9IHsKJiM0MzsJCS5tYXhfd3JpdGVzCQk9IDAsCiYjNDM7CQkubWF4X3JlYWRzCQk9IDAsCS8qIG5vIGxpbWl0IChoYXJkd2FyZSBtYXgpICovCiYjNDM7CQkubWF4X3JlYWRzX2JlYXRzCT0gMCwKJiM0MzsJfSwKJiM0MzsJW0lQQV9RU0JfTUFTVEVSX1BDSUVdID0gewomIzQzOwkJLm1heF93cml0ZXMJCT0gMCwKJiM0MzsJCS5tYXhfcmVhZHMJCT0gMCwJLyogbm8gbGltaXQgKGhhcmR3YXJlIG1heCkgKi8KJiM0MzsJCS5tYXhfcmVhZHNfYmVhdHMJPSAwLAomIzQzOwl9LAomIzQzO307CiYjNDM7CiYjNDM7LyogRW5kcG9pbnQgY29uZmlndXJhdGlvbiBkYXRhIGZvciBhbiBTb0MgaGF2aW5nIElQQSB2NS4xICovCiYjNDM7c3RhdGljIGNvbnN0IHN0cnVjdCBpcGFfZ3NpX2VuZHBvaW50X2RhdGEgaXBhX2dzaV9lbmRwb2ludF9kYXRhW10gPSB7CiYjNDM7CVtJUEFfRU5EUE9JTlRfQVBfQ09NTUFORF9UWF0gPSB7CiYjNDM7CQkuZWVfaWQJCT0gR1NJX0VFX0FQLAomIzQzOwkJLmNoYW5uZWxfaWQJPSAxMiwKJiM0MzsJCS5lbmRwb2ludF9pZAk9IDE0LAomIzQzOwkJLnRvd2FyZF9pcGEJPSB0cnVlLAomIzQzOwkJLmNoYW5uZWwgPSB7CiYjNDM7CQkJLnRyZV9jb3VudAk9IDI1NiwKJiM0MzsJCQkuZXZlbnRfY291bnQJPSAyNTYsCiYjNDM7CQkJLnRsdl9jb3VudAk9IDIwLAomIzQzOwkJfSwKJiM0MzsJCS5lbmRwb2ludCA9IHsKJiM0MzsJCQkuY29uZmlnID0gewomIzQzOwkJCQkucmVzb3VyY2VfZ3JvdXAJPSBJUEFfUlNSQ19HUk9VUF9TUkNfVUwsCiYjNDM7CQkJCS5kbWFfbW9kZQk9IHRydWUsCiYjNDM7CQkJCS5kbWFfZW5kcG9pbnQJPSBJUEFfRU5EUE9JTlRfQVBfTEFOX1JYLAomIzQzOwkJCQkudHggPSB7CiYjNDM7CQkJCQkuc2VxX3R5cGUgPSBJUEFfU0VRX0RNQSwKJiM0MzsJCQkJfSwKJiM0MzsJCQl9LAomIzQzOwkJfSwKJiM0MzsJfSwKJiM0MzsJW0lQQV9FTkRQT0lOVF9BUF9MQU5fUlhdID0gewomIzQzOwkJLmVlX2lkCQk9IEdTSV9FRV9BUCwKJiM0MzsJCS5jaGFubmVsX2lkCT0gMTMsCiYjNDM7CQkuZW5kcG9pbnRfaWQJPSAxNiwKJiM0MzsJCS50b3dhcmRfaXBhCT0gZmFsc2UsCiYjNDM7CQkuY2hhbm5lbCA9IHsKJiM0MzsJCQkudHJlX2NvdW50CT0gMjU2LAomIzQzOwkJCS5ldmVudF9jb3VudAk9IDI1NiwKJiM0MzsJCQkudGx2X2NvdW50CT0gOSwKJiM0MzsJCX0sCiYjNDM7CQkuZW5kcG9pbnQgPSB7CiYjNDM7CQkJLmNvbmZpZyA9IHsKJiM0MzsJCQkJLnJlc291cmNlX2dyb3VwCT0gSVBBX1JTUkNfR1JPVVBfRFNUX1VMLAomIzQzOwkJCQkuYWdncmVnYXRpb24JPSB0cnVlLAomIzQzOwkJCQkuc3RhdHVzX2VuYWJsZQk9IHRydWUsCiYjNDM7CQkJCS5yeCA9IHsKJiM0MzsJCQkJCS5idWZmZXJfc2l6ZQk9IDgxOTIsCiYjNDM7CQkJCQkucGFkX2FsaWduCT0gaWxvZzIoc2l6ZW9mKHUzMikpLAomIzQzOwkJCQkJLmFnZ3JfdGltZV9saW1pdCA9IDUwMCwKJiM0MzsJCQkJfSwKJiM0MzsJCQl9LAomIzQzOwkJfSwKJiM0MzsJfSwKJiM0MzsJW0lQQV9FTkRQT0lOVF9BUF9NT0RFTV9UWF0gPSB7CiYjNDM7CQkuZWVfaWQJCT0gR1NJX0VFX0FQLAomIzQzOwkJLmNoYW5uZWxfaWQJPSAxMSwKJiM0MzsJCS5lbmRwb2ludF9pZAk9IDIsCiYjNDM7CQkudG93YXJkX2lwYQk9IHRydWUsCiYjNDM7CQkuY2hhbm5lbCA9IHsKJiM0MzsJCQkudHJlX2NvdW50CT0gNTEyLAomIzQzOwkJCS5ldmVudF9jb3VudAk9IDUxMiwKJiM0MzsJCQkudGx2X2NvdW50CT0gMjUsCiYjNDM7CQl9LAomIzQzOwkJLmVuZHBvaW50ID0gewomIzQzOwkJCS5maWx0ZXJfc3VwcG9ydAk9IHRydWUsCiYjNDM7CQkJLmNvbmZpZyA9IHsKJiM0MzsJCQkJLnJlc291cmNlX2dyb3VwCT0gSVBBX1JTUkNfR1JPVVBfU1JDX1VMLAomIzQzOwkJCQkuY2hlY2tzdW0gICAgICAgPSB0cnVlLAomIzQzOwkJCQkucW1hcAkJPSB0cnVlLAomIzQzOwkJCQkuc3RhdHVzX2VuYWJsZQk9IHRydWUsCiYjNDM7CQkJCS50eCA9IHsKJiM0MzsJCQkJCS5zZXFfdHlwZSA9IElQQV9TRVFfMl9QQVNTX1NLSVBfTEFTVF9VQywKJiM0MzsJCQkJCS5zdGF0dXNfZW5kcG9pbnQgPQomIzQzOwkJCQkJCUlQQV9FTkRQT0lOVF9NT0RFTV9BUF9SWCwKJiM0MzsJCQkJfSwKJiM0MzsJCQl9LAomIzQzOwkJfSwKJiM0MzsJfSwKJiM0MzsJW0lQQV9FTkRQT0lOVF9BUF9NT0RFTV9SWF0gPSB7CiYjNDM7CQkuZWVfaWQJCT0gR1NJX0VFX0FQLAomIzQzOwkJLmNoYW5uZWxfaWQJPSAxLAomIzQzOwkJLmVuZHBvaW50X2lkCT0gMjMsCiYjNDM7CQkudG93YXJkX2lwYQk9IGZhbHNlLAomIzQzOwkJLmNoYW5uZWwgPSB7CiYjNDM7CQkJLnRyZV9jb3VudAk9IDI1NiwKJiM0MzsJCQkuZXZlbnRfY291bnQJPSAyNTYsCiYjNDM7CQkJLnRsdl9jb3VudAk9IDksCiYjNDM7CQl9LAomIzQzOwkJLmVuZHBvaW50ID0gewomIzQzOwkJCS5jb25maWcgPSB7CiYjNDM7CQkJCS5yZXNvdXJjZV9ncm91cAk9IElQQV9SU1JDX0dST1VQX0RTVF9VTCwKJiM0MzsJCQkJLmNoZWNrc3VtICAgICAgID0gdHJ1ZSwKJiM0MzsJCQkJLnFtYXAJCT0gdHJ1ZSwKJiM0MzsJCQkJLmFnZ3JlZ2F0aW9uCT0gdHJ1ZSwKJiM0MzsJCQkJLnJ4ID0gewomIzQzOwkJCQkJLmJ1ZmZlcl9zaXplCT0gODE5MiwKJiM0MzsJCQkJCS5hZ2dyX3RpbWVfbGltaXQgPSA1MDAsCiYjNDM7CQkJCQkuYWdncl9jbG9zZV9lb2YJPSB0cnVlLAomIzQzOwkJCQl9LAomIzQzOwkJCX0sCiYjNDM7CQl9LAomIzQzOwl9LAomIzQzOwlbSVBBX0VORFBPSU5UX01PREVNX0FQX1RYXSA9IHsKJiM0MzsJCS5lZV9pZAkJPSBHU0lfRUVfTU9ERU0sCiYjNDM7CQkuY2hhbm5lbF9pZAk9IDAsCiYjNDM7CQkuZW5kcG9pbnRfaWQJPSAxMiwKJiM0MzsJCS50b3dhcmRfaXBhCT0gdHJ1ZSwKJiM0MzsJCS5lbmRwb2ludCA9IHsKJiM0MzsJCQkuZmlsdGVyX3N1cHBvcnQJPSB0cnVlLAomIzQzOwkJfSwKJiM0MzsJfSwKJiM0MzsJW0lQQV9FTkRQT0lOVF9NT0RFTV9BUF9SWF0gPSB7CiYjNDM7CQkuZWVfaWQJCT0gR1NJX0VFX01PREVNLAomIzQzOwkJLmNoYW5uZWxfaWQJPSA3LAomIzQzOwkJLmVuZHBvaW50X2lkCT0gMjEsCiYjNDM7CQkudG93YXJkX2lwYQk9IGZhbHNlLAomIzQzOwl9LAomIzQzOwlbSVBBX0VORFBPSU5UX01PREVNX0RMX05MT19UWF0gPSB7CiYjNDM7CQkuZWVfaWQJCT0gR1NJX0VFX01PREVNLAomIzQzOwkJLmNoYW5uZWxfaWQJPSAyLAomIzQzOwkJLmVuZHBvaW50X2lkCT0gMTUsCiYjNDM7CQkudG93YXJkX2lwYQk9IHRydWUsCiYjNDM7CQkuZW5kcG9pbnQgPSB7CiYjNDM7CQkJLmZpbHRlcl9zdXBwb3J0CT0gdHJ1ZSwKJiM0MzsJCX0sCiYjNDM7CX0sCiYjNDM7fTsKJiM0MzsKJiM0MzsvKiBTb3VyY2UgcmVzb3VyY2UgY29uZmlndXJhdGlvbiBkYXRhIGZvciBhbiBTb0MgaGF2aW5nIElQQSB2NS4xICovCiYjNDM7c3RhdGljIGNvbnN0IHN0cnVjdCBpcGFfcmVzb3VyY2UgaXBhX3Jlc291cmNlX3NyY1tdID0gewomIzQzOwlbSVBBX1JFU09VUkNFX1RZUEVfU1JDX1BLVF9DT05URVhUU10gPSB7CiYjNDM7CQkubGltaXRzW0lQQV9SU1JDX0dST1VQX1NSQ19VTF0gPSB7CiYjNDM7CQkJLm1pbiA9IDcsCS5tYXggPSAxMiwKJiM0MzsJCX0sCiYjNDM7CQkubGltaXRzW0lQQV9SU1JDX0dST1VQX1NSQ19VUkxMQ10gPSB7CiYjNDM7CQkJLm1pbiA9IDEsCS5tYXggPSA2MywKJiM0MzsJCX0sCiYjNDM7CQkubGltaXRzW0lQQV9SU1JDX0dST1VQX1NSQ19VX1JYX1FDXSA9IHsKJiM0MzsJCQkubWluID0gMCwJLm1heCA9IDYzLAomIzQzOwkJfSwKJiM0MzsJfSwKJiM0MzsJW0lQQV9SRVNPVVJDRV9UWVBFX1NSQ19ERVNDUklQVE9SX0xJU1RTXSA9IHsKJiM0MzsJCS5saW1pdHNbSVBBX1JTUkNfR1JPVVBfU1JDX1VMXSA9IHsKJiM0MzsJCQkubWluID0gMjEsCS5tYXggPSAyMSwKJiM0MzsJCX0sCiYjNDM7CQkubGltaXRzW0lQQV9SU1JDX0dST1VQX1NSQ19VUkxMQ10gPSB7CiYjNDM7CQkJLm1pbiA9IDEwLAkubWF4ID0gMTAsCiYjNDM7CQl9LAomIzQzOwl9LAomIzQzOwlbSVBBX1JFU09VUkNFX1RZUEVfU1JDX0RFU0NSSVBUT1JfQlVGRl0gPSB7CiYjNDM7CQkubGltaXRzW0lQQV9SU1JDX0dST1VQX1NSQ19VTF0gPSB7CiYjNDM7CQkJLm1pbiA9IDMzLAkubWF4ID0gMzMsCiYjNDM7CQl9LAomIzQzOwkJLmxpbWl0c1tJUEFfUlNSQ19HUk9VUF9TUkNfVVJMTENdID0gewomIzQzOwkJCS5taW4gPSAyMCwJLm1heCA9IDIwLAomIzQzOwkJfSwKJiM0MzsJfSwKJiM0MzsJW0lQQV9SRVNPVVJDRV9UWVBFX1NSQ19IUFNfRE1BUlNdID0gewomIzQzOwkJLmxpbWl0c1tJUEFfUlNSQ19HUk9VUF9TUkNfVUxdID0gewomIzQzOwkJCS5taW4gPSAwLAkubWF4ID0gNjMsCiYjNDM7CQl9LAomIzQzOwkJLmxpbWl0c1tJUEFfUlNSQ19HUk9VUF9TUkNfVVJMTENdID0gewomIzQzOwkJCS5taW4gPSAxLAkubWF4ID0gNjMsCiYjNDM7CQl9LAomIzQzOwkJLmxpbWl0c1tJUEFfUlNSQ19HUk9VUF9TUkNfVV9SWF9RQ10gPSB7CiYjNDM7CQkJLm1pbiA9IDAsCS5tYXggPSA2MywKJiM0MzsJCX0sCiYjNDM7CX0sCiYjNDM7CVtJUEFfUkVTT1VSQ0VfVFlQRV9TUkNfQUNLX0VOVFJJRVNdID0gewomIzQzOwkJLmxpbWl0c1tJUEFfUlNSQ19HUk9VUF9TUkNfVUxdID0gewomIzQzOwkJCS5taW4gPSAzOCwJLm1heCA9IDM4LAomIzQzOwkJfSwKJiM0MzsJCS5saW1pdHNbSVBBX1JTUkNfR1JPVVBfU1JDX1VSTExDXSA9IHsKJiM0MzsJCQkubWluID0gMTYsCS5tYXggPSAxNiwKJiM0MzsJCX0sCiYjNDM7CX0sCiYjNDM7fTsKJiM0MzsKJiM0MzsvKiBEZXN0aW5hdGlvbiByZXNvdXJjZSBjb25maWd1cmF0aW9uIGRhdGEgZm9yIGFuIFNvQyBoYXZpbmcgSVBBIHY1LjEgKi8KJiM0MztzdGF0aWMgY29uc3Qgc3RydWN0IGlwYV9yZXNvdXJjZSBpcGFfcmVzb3VyY2VfZHN0W10gPSB7CiYjNDM7CVtJUEFfUkVTT1VSQ0VfVFlQRV9EU1RfREFUQV9TRUNUT1JTXSA9IHsKJiM0MzsJCS5saW1pdHNbSVBBX1JTUkNfR1JPVVBfRFNUX1VMXSA9IHsKJiM0MzsJCQkubWluID0gNiwJLm1heCA9IDYsCiYjNDM7CQl9LAomIzQzOwkJLmxpbWl0c1tJUEFfUlNSQ19HUk9VUF9EU1RfRExdID0gewomIzQzOwkJCS5taW4gPSA1LAkubWF4ID0gNSwKJiM0MzsJCX0sCiYjNDM7CQkubGltaXRzW0lQQV9SU1JDX0dST1VQX0RTVF9EUkJfSVBdID0gewomIzQzOwkJCS5taW4gPSAzOSwJLm1heCA9IDM5LAomIzQzOwkJfSwKJiM0MzsJfSwKJiM0MzsJW0lQQV9SRVNPVVJDRV9UWVBFX0RTVF9EUFNfRE1BUlNdID0gewomIzQzOwkJLmxpbWl0c1tJUEFfUlNSQ19HUk9VUF9EU1RfVUxdID0gewomIzQzOwkJCS5taW4gPSAwLAkubWF4ID0gMywKJiM0MzsJCX0sCiYjNDM7CQkubGltaXRzW0lQQV9SU1JDX0dST1VQX0RTVF9ETF0gPSB7CiYjNDM7CQkJLm1pbiA9IDAsCS5tYXggPSAzLAomIzQzOwkJfSwKJiM0MzsJfSwKJiM0MzsJW0lQQV9SRVNPVVJDRV9UWVBFX0RTVF9VTFNPX1NFR01FTlRTXSA9IHsKJiM0MzsJCS5saW1pdHNbSVBBX1JTUkNfR1JPVVBfRFNUX1VMXSA9IHsKJiM0MzsJCQkubWluID0gMCwJLm1heCA9IDYzLAomIzQzOwkJfSwKJiM0MzsJCS5saW1pdHNbSVBBX1JTUkNfR1JPVVBfRFNUX0RMXSA9IHsKJiM0MzsJCQkubWluID0gMCwJLm1heCA9IDYzLAomIzQzOwkJfSwKJiM0MzsJfSwKJiM0Mzt9OwomIzQzOwomIzQzOy8qIFJlc291cmNlIGNvbmZpZ3VyYXRpb24gZGF0YSBmb3IgYW4gU29DIGhhdmluZyBJUEEgdjUuMSAqLwomIzQzO3N0YXRpYyBjb25zdCBzdHJ1Y3QgaXBhX3Jlc291cmNlX2RhdGEgaXBhX3Jlc291cmNlX2RhdGEgPSB7CiYjNDM7CS5yc3JjX2dyb3VwX2RzdF9jb3VudAk9IElQQV9SU1JDX0dST1VQX0RTVF9DT1VOVCwKJiM0MzsJLnJzcmNfZ3JvdXBfc3JjX2NvdW50CT0gSVBBX1JTUkNfR1JPVVBfU1JDX0NPVU5ULAomIzQzOwkucmVzb3VyY2Vfc3JjX2NvdW50CT0gQVJSQVlfU0laRShpcGFfcmVzb3VyY2Vfc3JjKSwKJiM0MzsJLnJlc291cmNlX3NyYwkJPSBpcGFfcmVzb3VyY2Vfc3JjLAomIzQzOwkucmVzb3VyY2VfZHN0X2NvdW50CT0gQVJSQVlfU0laRShpcGFfcmVzb3VyY2VfZHN0KSwKJiM0MzsJLnJlc291cmNlX2RzdAkJPSBpcGFfcmVzb3VyY2VfZHN0LAomIzQzO307CiYjNDM7CiYjNDM7LyogSVBBLXJlc2lkZW50IG1lbW9yeSByZWdpb24gZGF0YSBmb3IgYW4gU29DIGhhdmluZyBJUEEgdjUuMSAqLwomIzQzO3N0YXRpYyBjb25zdCBzdHJ1Y3QgaXBhX21lbSBpcGFfbWVtX2xvY2FsX2RhdGFbXSA9IHsKJiM0MzsJewomIzQzOwkJLmlkCQk9IElQQV9NRU1fVUNfRVZFTlRfUklORywKJiM0MzsJCS5vZmZzZXQJCT0gMHgwMDAwLAomIzQzOwkJLnNpemUJCT0gMHgxMDAwLAomIzQzOwkJLmNhbmFyeV9jb3VudAk9IDAsCiYjNDM7CX0sCiYjNDM7CXsKJiM0MzsJCS5pZAkJPSBJUEFfTUVNX1VDX1NIQVJFRCwKJiM0MzsJCS5vZmZzZXQJCT0gMHgxMDAwLAomIzQzOwkJLnNpemUJCT0gMHgwMDgwLAomIzQzOwkJLmNhbmFyeV9jb3VudAk9IDAsCiYjNDM7CX0sCiYjNDM7CXsKJiM0MzsJCS5pZAkJPSBJUEFfTUVNX1VDX0lORk8sCiYjNDM7CQkub2Zmc2V0CQk9IDB4MTA4MCwKJiM0MzsJCS5zaXplCQk9IDB4MDIwMCwKJiM0MzsJCS5jYW5hcnlfY291bnQJPSAwLAomIzQzOwl9LAomIzQzOwl7CiYjNDM7CQkuaWQJCT0gSVBBX01FTV9WNF9GSUxURVJfSEFTSEVELAomIzQzOwkJLm9mZnNldAkJPSAweDEyODgsCiYjNDM7CQkuc2l6ZQkJPSAweDAwNzgsCiYjNDM7CQkuY2FuYXJ5X2NvdW50CT0gMiwKJiM0MzsJfSwKJiM0MzsJewomIzQzOwkJLmlkCQk9IElQQV9NRU1fVjRfRklMVEVSLAomIzQzOwkJLm9mZnNldAkJPSAweDEzMDgsCiYjNDM7CQkuc2l6ZQkJPSAweDAwNzgsCiYjNDM7CQkuY2FuYXJ5X2NvdW50CT0gMiwKJiM0MzsJfSwKJiM0MzsJewomIzQzOwkJLmlkCQk9IElQQV9NRU1fVjZfRklMVEVSX0hBU0hFRCwKJiM0MzsJCS5vZmZzZXQJCT0gMHgxMzg4LAomIzQzOwkJLnNpemUJCT0gMHgwMDc4LAomIzQzOwkJLmNhbmFyeV9jb3VudAk9IDIsCiYjNDM7CX0sCiYjNDM7CXsKJiM0MzsJCS5pZAkJPSBJUEFfTUVNX1Y2X0ZJTFRFUiwKJiM0MzsJCS5vZmZzZXQJCT0gMHgxNDA4LAomIzQzOwkJLnNpemUJCT0gMHgwMDc4LAomIzQzOwkJLmNhbmFyeV9jb3VudAk9IDIsCiYjNDM7CX0sCiYjNDM7CXsKJiM0MzsJCS5pZAkJPSBJUEFfTUVNX1Y0X1JPVVRFX0hBU0hFRCwKJiM0MzsJCS5vZmZzZXQJCT0gMHgxNDg4LAomIzQzOwkJLnNpemUJCT0gMHgwMDk4LAomIzQzOwkJLmNhbmFyeV9jb3VudAk9IDIsCiYjNDM7CX0sCiYjNDM7CXsKJiM0MzsJCS5pZAkJPSBJUEFfTUVNX1Y0X1JPVVRFLAomIzQzOwkJLm9mZnNldAkJPSAweDE1MjgsCiYjNDM7CQkuc2l6ZQkJPSAweDAwOTgsCiYjNDM7CQkuY2FuYXJ5X2NvdW50CT0gMiwKJiM0MzsJfSwKJiM0MzsJewomIzQzOwkJLmlkCQk9IElQQV9NRU1fVjZfUk9VVEVfSEFTSEVELAomIzQzOwkJLm9mZnNldAkJPSAweDE1YzgsCiYjNDM7CQkuc2l6ZQkJPSAweDAwOTgsCiYjNDM7CQkuY2FuYXJ5X2NvdW50CT0gMiwKJiM0MzsJfSwKJiM0MzsJewomIzQzOwkJLmlkCQk9IElQQV9NRU1fVjZfUk9VVEUsCiYjNDM7CQkub2Zmc2V0CQk9IDB4MTY2OCwKJiM0MzsJCS5zaXplCQk9IDB4MDA5OCwKJiM0MzsJCS5jYW5hcnlfY291bnQJPSAyLAomIzQzOwl9LAomIzQzOwl7CiYjNDM7CQkuaWQJCT0gSVBBX01FTV9NT0RFTV9IRUFERVIsCiYjNDM7CQkub2Zmc2V0CQk9IDB4MTcwOCwKJiM0MzsJCS5zaXplCQk9IDB4MDI0MCwKJiM0MzsJCS5jYW5hcnlfY291bnQJPSAyLAomIzQzOwl9LAomIzQzOwl7CiYjNDM7CQkuaWQJCT0gSVBBX01FTV9BUF9IRUFERVIsCiYjNDM7CQkub2Zmc2V0CQk9IDB4MTk0OCwKJiM0MzsJCS5zaXplCQk9IDB4MDFlMCwKJiM0MzsJCS5jYW5hcnlfY291bnQJPSAwLAomIzQzOwl9LAomIzQzOwl7CiYjNDM7CQkuaWQJCT0gSVBBX01FTV9NT0RFTV9QUk9DX0NUWCwKJiM0MzsJCS5vZmZzZXQJCT0gMHgxYjQwLAomIzQzOwkJLnNpemUJCT0gMHgwYjIwLAomIzQzOwkJLmNhbmFyeV9jb3VudAk9IDIsCiYjNDM7CX0sCiYjNDM7CXsKJiM0MzsJCS5pZAkJPSBJUEFfTUVNX0FQX1BST0NfQ1RYLAomIzQzOwkJLm9mZnNldAkJPSAweDI2NjAsCiYjNDM7CQkuc2l6ZQkJPSAweDAyMDAsCiYjNDM7CQkuY2FuYXJ5X2NvdW50CT0gMCwKJiM0MzsJfSwKJiM0MzsJewomIzQzOwkJLmlkCQk9IElQQV9NRU1fU1RBVFNfUVVPVEFfTU9ERU0sCiYjNDM7CQkub2Zmc2V0CQk9IDB4Mjg2OCwKJiM0MzsJCS5zaXplCQk9IDB4MDA2MCwKJiM0MzsJCS5jYW5hcnlfY291bnQJPSAyLAomIzQzOwl9LAomIzQzOwl7CiYjNDM7CQkuaWQJCT0gSVBBX01FTV9TVEFUU19RVU9UQV9BUCwKJiM0MzsJCS5vZmZzZXQJCT0gMHgyOGM4LAomIzQzOwkJLnNpemUJCT0gMHgwMDQ4LAomIzQzOwkJLmNhbmFyeV9jb3VudAk9IDAsCiYjNDM7CX0sCiYjNDM7CXsKJiM0MzsJCS5pZAkJPSBJUEFfTUVNX1NUQVRTX1RFVEhFUklORywKJiM0MzsJCS5vZmZzZXQJCT0gMHgyOTEwLAomIzQzOwkJLnNpemUJCT0gMHgwM2MwLAomIzQzOwkJLmNhbmFyeV9jb3VudAk9IDAsCiYjNDM7CX0sCiYjNDM7CXsKJiM0MzsJCS5pZAkJPSBJUEFfTUVNX0FQX1Y0X0ZJTFRFUiwKJiM0MzsJCS5vZmZzZXQJCT0gMHgyOWI4LAomIzQzOwkJLnNpemUJCT0gMHgwMTg4LAomIzQzOwkJLmNhbmFyeV9jb3VudAk9IDIsCiYjNDM7CX0sCiYjNDM7CXsKJiM0MzsJCS5pZAkJPSBJUEFfTUVNX0FQX1Y2X0ZJTFRFUiwKJiM0MzsJCS5vZmZzZXQJCT0gMHgyYjQwLAomIzQzOwkJLnNpemUJCT0gMHgwMjI4LAomIzQzOwkJLmNhbmFyeV9jb3VudAk9IDAsCiYjNDM7CX0sCiYjNDM7CXsKJiM0MzsJCS5pZAkJPSBJUEFfTUVNX1NUQVRTX0ZJTFRFUl9ST1VURSwKJiM0MzsJCS5vZmZzZXQJCT0gMHgyY2QwLAomIzQzOwkJLnNpemUJCT0gMHgwYmEwLAomIzQzOwkJLmNhbmFyeV9jb3VudAk9IDIsCiYjNDM7CX0sCiYjNDM7CXsKJiM0MzsJCS5pZAkJPSBJUEFfTUVNX1NUQVRTX0RST1AsCiYjNDM7CQkub2Zmc2V0CQk9IDB4Mzg3MCwKJiM0MzsJCS5zaXplCQk9IDB4MDAyMCwKJiM0MzsJCS5jYW5hcnlfY291bnQJPSAwLAomIzQzOwl9LAomIzQzOwl7CiYjNDM7CQkuaWQJCT0gSVBBX01FTV9NT0RFTSwKJiM0MzsJCS5vZmZzZXQJCT0gMHgzODk4LAomIzQzOwkJLnNpemUJCT0gMHgwZDQ4LAomIzQzOwkJLmNhbmFyeV9jb3VudAk9IDIsCiYjNDM7CX0sCiYjNDM7CXsKJiM0MzsJCS5pZAkJPSBJUEFfTUVNX05BVF9UQUJMRSwKJiM0MzsJCS5vZmZzZXQJCT0gMHg0NWUwLAomIzQzOwkJLnNpemUJCT0gMHgwOTAwLAomIzQzOwkJLmNhbmFyeV9jb3VudAk9IDAsCiYjNDM7CX0sCiYjNDM7CXsKJiM0MzsJCS5pZAkJPSBJUEFfTUVNX1BETl9DT05GSUcsCiYjNDM7CQkub2Zmc2V0CQk9IDB4NGVlOCwKJiM0MzsJCS5zaXplCQk9IDB4MDEwMCwKJiM0MzsJCS5jYW5hcnlfY291bnQJPSAyLAomIzQzOwl9LAomIzQzO307CiYjNDM7CiYjNDM7LyogTWVtb3J5IGNvbmZpZ3VyYXRpb24gZGF0YSBmb3IgYW4gU29DIGhhdmluZyBJUEEgdjUuMSAqLwomIzQzO3N0YXRpYyBjb25zdCBzdHJ1Y3QgaXBhX21lbV9kYXRhIGlwYV9tZW1fZGF0YSA9IHsKJiM0MzsJLmxvY2FsX2NvdW50CT0gQVJSQVlfU0laRShpcGFfbWVtX2xvY2FsX2RhdGEpLAomIzQzOwkubG9jYWwJCT0gaXBhX21lbV9sb2NhbF9kYXRhLAomIzQzOwkuaW1lbV9hZGRyCT0gMHgxNDZhODAwMCwKJiM0MzsJLmltZW1fc2l6ZQk9IDB4MDAwMDIwMDAsCiYjNDM7CS8qCiYjNDM7CSAqIFdoaWxlIHRoaXMgdmFsdWUgaXMgMHhiMDAwIG9uIFNNODQ1MCBhbmQgMHg5MDAwIG9uIFNNODQ3NSwKJiM0MzsJICogaXQgaGFzIGJlZW4gbGVmdCBzZXQgdG8gMHg5MDAwIGZvciBjb21wYXRpYmlsaXR5IHdpdGggU004NDc1CiYjNDM7CSAqLwomIzQzOwkuc21lbV9zaXplCT0gMHgwMDAwOTAwMCwKJiM0Mzt9OwomIzQzOwomIzQzOy8qIEludGVyY29ubmVjdCByYXRlcyBhcmUgaW4gMTAwMCBieXRlL3NlY29uZCB1bml0cyAqLwomIzQzO3N0YXRpYyBjb25zdCBzdHJ1Y3QgaXBhX2ludGVyY29ubmVjdF9kYXRhIGlwYV9pbnRlcmNvbm5lY3RfZGF0YVtdID0gewomIzQzOwl7CiYjNDM7CQkubmFtZQkJCT0gJiMzNDttZW1vcnkmIzM0OywKJiM0MzsJCS5wZWFrX2JhbmR3aWR0aAkJPSAxOTAwMDAwLAkvKiAxLjkgR0JwcyAqLwomIzQzOwkJLmF2ZXJhZ2VfYmFuZHdpZHRoCT0gNTkwMDAwLAkvKiA1OTAgTUJwcyAqLwomIzQzOwl9LAomIzQzOwkvKiBBdmVyYWdlIHJhdGUgaXMgdW51c2VkIGZvciB0aGUgbmV4dCBpbnRlcmNvbm5lY3QgKi8KJiM0MzsJewomIzQzOwkJLm5hbWUJCQk9ICYjMzQ7Y29uZmlnJiMzNDssCiYjNDM7CQkucGVha19iYW5kd2lkdGgJCT0gNzY4MDAsCS8qIDc2LjggTUJwcyAqLwomIzQzOwkJLmF2ZXJhZ2VfYmFuZHdpZHRoCT0gMCwJCS8qIHVudXNlZCAqLwomIzQzOwl9LAomIzQzO307CiYjNDM7CiYjNDM7LyogQ2xvY2sgYW5kIGludGVyY29ubmVjdCBjb25maWd1cmF0aW9uIGRhdGEgZm9yIGFuIFNvQyBoYXZpbmcgSVBBIHY1LjEgKi8KJiM0MztzdGF0aWMgY29uc3Qgc3RydWN0IGlwYV9wb3dlcl9kYXRhIGlwYV9wb3dlcl9kYXRhID0gewomIzQzOwkuY29yZV9jbG9ja19yYXRlCT0gMTIwICogMTAwMCAqIDEwMDAsCS8qIEh6ICovCiYjNDM7CS5pbnRlcmNvbm5lY3RfY291bnQJPSBBUlJBWV9TSVpFKGlwYV9pbnRlcmNvbm5lY3RfZGF0YSksCiYjNDM7CS5pbnRlcmNvbm5lY3RfZGF0YQk9IGlwYV9pbnRlcmNvbm5lY3RfZGF0YSwKJiM0Mzt9OwomIzQzOwomIzQzOy8qIENvbmZpZ3VyYXRpb24gZGF0YSBmb3IgYW4gU29DIGhhdmluZyBJUEEgdjUuMS4gKi8KJiM0Mztjb25zdCBzdHJ1Y3QgaXBhX2RhdGEgaXBhX2RhdGFfdjVfMSA9IHsKJiM0MzsJLnZlcnNpb24JCT0gSVBBX1ZFUlNJT05fNV8xLAomIzQzOwkucXNiX2NvdW50CQk9IEFSUkFZX1NJWkUoaXBhX3FzYl9kYXRhKSwKJiM0MzsJLnFzYl9kYXRhCQk9IGlwYV9xc2JfZGF0YSwKJiM0MzsJLm1vZGVtX3JvdXRlX2NvdW50CT0gMTEsCiYjNDM7CS5lbmRwb2ludF9jb3VudAkJPSBBUlJBWV9TSVpFKGlwYV9nc2lfZW5kcG9pbnRfZGF0YSksCiYjNDM7CS5lbmRwb2ludF9kYXRhCQk9IGlwYV9nc2lfZW5kcG9pbnRfZGF0YSwKJiM0MzsJLnJlc291cmNlX2RhdGEJCT0gJmFtcDtpcGFfcmVzb3VyY2VfZGF0YSwKJiM0MzsJLm1lbV9kYXRhCQk9ICZhbXA7aXBhX21lbV9kYXRhLAomIzQzOwkucG93ZXJfZGF0YQkJPSAmYW1wO2lwYV9wb3dlcl9kYXRhLAomIzQzO307CmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9pcGEvZ3NpX3JlZy5jIGIvZHJpdmVycy9uZXQvaXBhL2dzaV9yZWcuYwppbmRleCBlMTNjZjgzNWEwMTNjOS4uYTU3MDcyYmE0YmVmNmYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L2lwYS9nc2lfcmVnLmMKJiM0MzsmIzQzOyYjNDM7IGIvZHJpdmVycy9uZXQvaXBhL2dzaV9yZWcuYwpAQCAtMTEwLDYgJiM0MzsxMTAsNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IHJlZ3MgKmdzaV9yZWdzKHN0cnVjdCBnc2kgKmdzaSkKIAkJcmV0dXJuICZhbXA7Z3NpX3JlZ3NfdjRfMTE7CiAKIAljYXNlIElQQV9WRVJTSU9OXzVfMDoKJiM0MzsJY2FzZSBJUEFfVkVSU0lPTl81XzE6CiAJY2FzZSBJUEFfVkVSU0lPTl81XzI6CiAJY2FzZSBJUEFfVkVSU0lPTl81XzU6CiAJCXJldHVybiAmYW1wO2dzaV9yZWdzX3Y1XzA7CmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9pcGEvaXBhX2RhdGEuaCBiL2RyaXZlcnMvbmV0L2lwYS9pcGFfZGF0YS5oCmluZGV4IDNlYjlkYzJjZTMzOThkLi5mZTZmN2Q1YmZlODhjOSAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvaXBhL2lwYV9kYXRhLmgKJiM0MzsmIzQzOyYjNDM7IGIvZHJpdmVycy9uZXQvaXBhL2lwYV9kYXRhLmgKQEAgLTI1Myw2ICYjNDM7MjUzLDcgQEAgZXh0ZXJuIGNvbnN0IHN0cnVjdCBpcGFfZGF0YSBpcGFfZGF0YV92NF83OwogZXh0ZXJuIGNvbnN0IHN0cnVjdCBpcGFfZGF0YSBpcGFfZGF0YV92NF85OwogZXh0ZXJuIGNvbnN0IHN0cnVjdCBpcGFfZGF0YSBpcGFfZGF0YV92NF8xMTsKIGV4dGVybiBjb25zdCBzdHJ1Y3QgaXBhX2RhdGEgaXBhX2RhdGFfdjVfMDsKJiM0MztleHRlcm4gY29uc3Qgc3RydWN0IGlwYV9kYXRhIGlwYV9kYXRhX3Y1XzE7CiBleHRlcm4gY29uc3Qgc3RydWN0IGlwYV9kYXRhIGlwYV9kYXRhX3Y1XzI7CiBleHRlcm4gY29uc3Qgc3RydWN0IGlwYV9kYXRhIGlwYV9kYXRhX3Y1XzU7CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2lwYS9pcGFfbWFpbi5jIGIvZHJpdmVycy9uZXQvaXBhL2lwYV9tYWluLmMKaW5kZXggNzg4ZGQ5OWFmMmE0ZGMuLjZjNDQ5MDMyYWU0NTkyIDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC9pcGEvaXBhX21haW4uYwomIzQzOyYjNDM7JiM0MzsgYi9kcml2ZXJzL25ldC9pcGEvaXBhX21haW4uYwpAQCAtNjY5LDYgJiM0Mzs2NjksMTAgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBvZl9kZXZpY2VfaWQgaXBhX21hdGNoW10gPSB7CiAJCS5jb21wYXRpYmxlCT0gJiMzNDtxY29tLHNkeDY1LWlwYSYjMzQ7LAogCQkuZGF0YQkJPSAmYW1wO2lwYV9kYXRhX3Y1XzAsCiAJfSwKJiM0MzsJewomIzQzOwkJLmNvbXBhdGlibGUJPSAmIzM0O3Fjb20sc204NDUwLWlwYSYjMzQ7LAomIzQzOwkJLmRhdGEJCT0gJmFtcDtpcGFfZGF0YV92NV8xLAomIzQzOwl9LAogCXsKIAkJLmNvbXBhdGlibGUJPSAmIzM0O3Fjb20sbWlsb3MtaXBhJiMzNDssCiAJCS5kYXRhCQk9ICZhbXA7aXBhX2RhdGFfdjVfMiwKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2lwYS9pcGFfcmVnLmMgYi9kcml2ZXJzL25ldC9pcGEvaXBhX3JlZy5jCmluZGV4IDMwYmQ2OWY0YzE0N2NkLi41ZjIyY2E2Mjk1YjE2NSAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvaXBhL2lwYV9yZWcuYwomIzQzOyYjNDM7JiM0MzsgYi9kcml2ZXJzL25ldC9pcGEvaXBhX3JlZy5jCkBAIC0xMjUsNiAmIzQzOzEyNSw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgcmVncyAqaXBhX3JlZ3MoZW51bSBpcGFfdmVyc2lvbiB2ZXJzaW9uKQogCWNhc2UgSVBBX1ZFUlNJT05fNF8xMToKIAkJcmV0dXJuICZhbXA7aXBhX3JlZ3NfdjRfMTE7CiAJY2FzZSBJUEFfVkVSU0lPTl81XzA6CiYjNDM7CWNhc2UgSVBBX1ZFUlNJT05fNV8xOgogCWNhc2UgSVBBX1ZFUlNJT05fNV8yOgogCQlyZXR1cm4gJmFtcDtpcGFfcmVnc192NV8wOwogCWNhc2UgSVBBX1ZFUlNJT05fNV81Ogo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4zLzI8L3RkPgoJCQk8dGQ+MjAyNi8wNi8yMyAwMjowMDwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAxMDE4MAoJCQkJCQkJb3V0cHV0OiAyMAoJCQkJCQkJdGhvdWdodHM6IDMzNwoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipBc3Nlc3NpbmcgdGhlIElQQSB2NS4xIFBhdGNoIGZvciBGdXp6aW5nIFJlbGV2YW5jZSoqCgpPa2F5LCBzbyBJJiMzOTt2ZSBnb3QgdGhpcyBwYXRjaCBzZXJpZXMgaW4gZnJvbnQgb2YgbWUsIGFuZCBteSBpbW1lZGlhdGUgY29uY2VybiBpcyB3aGV0aGVyIGl0IGludHJvZHVjZXMgYW55IGZ1bmN0aW9uYWwgY2hhbmdlcyB0byB0aGUga2VybmVsIHRoYXQgd2FycmFudCBmdXJ0aGVyIGZ1enppbmcgZWZmb3J0cy4gVGhlIHBhdGNoIHNlZW1zIGZvY3VzZWQgb24gYWRkaW5nIHN1cHBvcnQgZm9yIGEgbmV3IHZlcnNpb24gb2YgdGhlIFF1YWxjb21tIElQQSwgc3BlY2lmaWNhbGx5IGBxY29tLHNtODQ1MC1pcGFgIG9yIElQQSB2NS4xLiBUaGF0JiMzOTtzIGEgZGVmaW5pdGUgaW5kaWNhdG9yIHRoYXQgd2UgbmVlZCB0byBwYXkgYXR0ZW50aW9uLgoKTG9va2luZyBhdCB0aGUgZmlsZSBsaXN0LCB3ZSYjMzk7cmUgc2VlaW5nIG1vZGlmaWNhdGlvbnMgdG8gZGV2aWNlIHRyZWUgYmluZGluZ3MsIHRoZSBEVFMgaXRzZWxmIGZvciB0aGUgYHNtODQ1MGAgcGxhdGZvcm0sIE1ha2VmaWxlcywgYW5kLCBjcnVjaWFsbHksIGEgbmV3IGBpcGFfZGF0YS12NS4xLmNgIGZpbGUgYWxvbmcgd2l0aCBjaGFuZ2VzIHRvIGV4aXN0aW5nIGRyaXZlciBzb3VyY2UgZmlsZXMuIFRoZSBjaGFuZ2VzIGFwcGVhciB0byBiZSBoZWF2aWx5IGNlbnRlcmVkIGFyb3VuZCBkYXRhIHN0cnVjdHVyZXMsIGludGVncmF0aW5nIHRoaXMgbmV3IElQQSB2ZXJzaW9uIGludG8gdGhlIGRyaXZlciYjMzk7cyBtYXRjaCB0YWJsZXMsIGFuZCwgYXMgZXhwZWN0ZWQsIHVwZGF0aW5nIGJvdGggdGhlIERUIGJpbmRpbmdzIGFuZCBEVFMgdG8gcmVjb2duaXplIHRoZSBuZXcgaGFyZHdhcmUuIFRoZSBJUEEgZHJpdmVyLCBvZiBjb3Vyc2UsIGlzIHNwZWNpZmljIHRvIFF1YWxjb21tIFNvQ3MuCgpOb3csIHRoZSBiaWcgcXVlc3Rpb24gaXMsIGFyZSB0aGVzZSBjaGFuZ2VzIHJlYWNoYWJsZSBpbiBlbnZpcm9ubWVudHMgbGlrZSBHQ0Ugb3IgUUVNVT8gVHlwaWNhbGx5LCB0aGUgUXVhbGNvbW0gSVBBIGlzIGEgaGFyZHdhcmUgYWNjZWxlcmF0b3IsIGEgcGh5c2ljYWwgcGllY2Ugb2Ygc2lsaWNvbiBvbiB0aGUgU29DLiBUaGUgdGhpbmcgaXMsIGl0JiMzOTtzIG5vdCBlbXVsYXRlZCBpbiBlaXRoZXIgUUVNVSBvciBHQ0UuIFRoaXMgbWVhbnMgcmVhY2hpbmcgdGhpcyBjb2RlIGluIGEgc3RhbmRhcmQgdmlydHVhbGl6ZWQgZW52aXJvbm1lbnQgaXMgZ29pbmcgdG8gYmUgZGlmZmljdWx0LCBpZiBub3QgaW1wb3NzaWJsZS4gQnV0LCBiZWZvcmUgSSBkaXNtaXNzIGl0IGNvbXBsZXRlbHksIEkgbmVlZCB0byBiZSAqYWJzb2x1dGVseSBzdXJlKi4gSSYjMzk7bGwgdXNlIGBncmVwcGVyYCB0byBzZWUgaWYgdGhlcmUmIzM5O3MgYW55IG1lbnRpb24gb2Ygc29mdHdhcmUgZW11bGF0aW9uLCBhbnkgaG9va3MgdGhhdCBtaWdodCBiZSB1c2VkIHRvIHNpbXVsYXRlIGl0cyBmdW5jdGlvbmFsaXR5IGluIGFuIGFsdGVybmF0ZSBjb250ZXh0LiBXZSYjMzk7bGwgdmVyaWZ5IHRoZXJlIGFyZSBubyBmYWxsYmFja3MgaGVyZS4gVGhlbiwgd2UgY2FuIG1ha2UgdGhlIGNhbGwuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+NC8yPC90ZD4KCQkJPHRkPjIwMjYvMDYvMjMgMDI6MDA8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7Q09ORklHX1FDT01fSVBBJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2FyY2gvYXJtNjQvY29uZmlncy9kZWZjb25maWc9NDU5PUNPTkZJR19YSUxJTlhfQVhJX0VNQUM9bVxuYXJjaC9hcm02NC9jb25maWdzL2RlZmNvbmZpZzo0NjA6Q09ORklHX1FDT01fSVBBPW1cbmFyY2gvYXJtNjQvY29uZmlncy9kZWZjb25maWctNDYxLUNPTkZJR19NRVNPTl9HWExfUEhZPW1cbi0tXG5kcml2ZXJzL25ldC9NYWtlZmlsZT01NT1vYmotJChDT05GSUdfRkRESSkgJiM0Mzs9IGZkZGkvXG5kcml2ZXJzL25ldC9NYWtlZmlsZTo1NjpvYmotJChDT05GSUdfUUNPTV9JUEEpICYjNDM7PSBpcGEvXG5kcml2ZXJzL25ldC9NYWtlZmlsZS01Ny1vYmotJChDT05GSUdfUExJUCkgJiM0Mzs9IHBsaXAvXG4tLVxuZHJpdmVycy9uZXQvaXBhL01ha2VmaWxlPTEwPUlQQV9EQVRBX1ZFUlNJT05TXHQ6PVx0My4xIDMuNS4xIDQuMiA0LjUgNC43IDQuOSA0LjExIDUuMCA1LjEgNS4yIDUuNVxuZHJpdmVycy9uZXQvaXBhL01ha2VmaWxlLTExLVxuZHJpdmVycy9uZXQvaXBhL01ha2VmaWxlOjEyOm9iai0kKENPTkZJR19RQ09NX0lQQSlcdCYjNDM7PVx0aXBhLm9cbmRyaXZlcnMvbmV0L2lwYS9NYWtlZmlsZS0xMy1cbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD41LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNi8yMyAwMjowMDwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAxMTE5NAoJCQkJCQkJb3V0cHV0OiAxOQoJCQkJCQkJdGhvdWdodHM6IDE0CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5IZXJlJiMzOTtzIG15IHRob3VnaHQgcHJvY2Vzcywgc3VtbWFyaXplZCBhcyB5b3UgcmVxdWVzdGVkOgoKKipLY29uZmlnIERpdmUgZm9yIFFDT01fSVBBKioKCkFscmlnaHQsIGxldCYjMzk7cyBnZXQgZG93biB0byBicmFzcyB0YWNrcy4gTXkgaW5pdGlhbCB0aG91Z2h0IGlzIHRvIGRpdmUgc3RyYWlnaHQgaW50byB0aGUgYEtjb25maWdgIGZpbGVzLiBJIG5lZWQgdG8gdW5kZXJzdGFuZCB0aGUgY29uZmlndXJhdGlvbiBvcHRpb25zIHJlbGF0ZWQgdG8gYFFDT01fSVBBYC4gVGhpcyBpcyB0aGUgYmVkcm9jazsgaXQmIzM5O3Mgd2hlcmUgdGhlIGNvbnRyb2wgZmxhZ3MgYW5kIGRlcGVuZGVuY2llcyBmb3IgdGhpcyBmZWF0dXJlIGFyZSBsYWlkIG91dC4gSSB3YW50IHRvIHNlZToKCiogICAqKkl0cyBkZXBlbmRlbmNpZXM6KiogV2hhdCBvdGhlciBjb21wb25lbnRzIG9yIGZlYXR1cmVzIG11c3QgYmUgZW5hYmxlZCBmb3IgYFFDT01fSVBBYCB0byBldmVuIGJlIGNvbnNpZGVyZWQ/IEFyZSB0aGVyZSBzcGVjaWZpYyBRdWFsY29tbS1yZWxhdGVkIGZsYWdzLCBvdGhlciBJUEEgKElQIEFjY2VsZXJhdG9yKSBjb25maWd1cmF0aW9ucywgb3IgYnJvYWRlciBwbGF0Zm9ybSByZXF1aXJlbWVudHM/CiogICAqKkl0cyBjb25kaXRpb25hbHM6KiogVW5kZXIgd2hhdCBjaXJjdW1zdGFuY2VzIGlzIGBRQ09NX0lQQWAgbWFkZSBhdmFpbGFibGU/IElzIGl0IHRpZWQgdG8gYSBzcGVjaWZpYyBib2FyZCwgQ1BVIGFyY2hpdGVjdHVyZSwgb3Iga2VybmVsIHZlcnNpb24/IEFyZSB0aGVyZSBhbnkgYCNpZmRlZmAgc3RhdGVtZW50cyBvciBzaW1pbGFyIGxvZ2ljIEkgbmVlZCB0byBwYXJzZT8KKiAgICoqSXRzIGRlZmF1bHQgc3RhdGU6KiogSXMgYFFDT01fSVBBYCBlbmFibGVkIGJ5IGRlZmF1bHQsIGRpc2FibGVkLCBvciBzZXQgdG8gc29tZSAmIzM0O2F1dG8mIzM0OyBjb25maWd1cmF0aW9uPyBUaGlzIHdpbGwgZ2l2ZSBtZSBhIGNsdWUgYXMgdG8gaXRzIGludGVuZGVkIHVzZSBhbmQgZ2VuZXJhbCBkZXNpZ24gcGhpbG9zb3BoeS4KKiAgICoqSXRzIGRlc2NyaXB0aW9uczoqKiBDcnVjaWFsbHksIHdoYXQgYXJlIHRoZSBoZWxwIHRleHRzIGFzc29jaWF0ZWQgd2l0aCB0aGlzIGNvbmZpZyBvcHRpb24/IFRoZXkgd2lsbCBsaWtlbHkgcHJvdmlkZSBtb3JlIGNvbnRleHQuIFdoYXQgZG9lcyBpdCAqZG8qIGFuZCB3aHkgc2hvdWxkIHNvbWVvbmUgZW5hYmxlIGl0PyBBbnkgY2F2ZWF0cyBvciB3YXJuaW5ncz8KKiAgICoqSXRzIGxvY2F0aW9uOioqIFdoZXJlIGlzIHRoaXMgY29uZmlnIGRlZmluZWQ/IElzIGl0IGluIHRoZSBrZXJuZWwgdHJlZSwgYSB2ZW5kb3Itc3BlY2lmaWMgcGFydCwgb3IgYSB0aGlyZC1wYXJ0eSBtb2R1bGU/IEtub3dpbmcgaXRzIGxvY2F0aW9uIHdpbGwgZ2l2ZSBtZSBhIGxvdCBvZiBjb250ZXh0LgoKQmFzaWNhbGx5LCBJIGFtIG1hcHBpbmcgb3V0IHRoZSAqY29uZmlndXJhdGlvbiBsYW5kc2NhcGUqIGZvciBgUUNPTV9JUEFgLiBUaGlzIEtjb25maWcgaXMgYSBrZXkgdG8gdW5sb2NrIHRoZSBmZWF0dXJlLiBJdCYjMzk7cyB0aGUgc3RhcnRpbmcgcG9pbnQgYmVmb3JlIEkgbW92ZSBhbnkgZnVydGhlciwgd2hldGhlciBJIGxvb2sgYXQgc291cmNlIGNvZGUsIGJ1aWxkIHNjcmlwdHMsIG9yIGRldmljZSB0cmVlcy4gSSB3YW50IHRvIGJ1aWxkIGEgY29tcHJlaGVuc2l2ZSBwaWN0dXJlIG9mIGhvdyB0aGlzIG9wdGlvbiBpcyBjb250cm9sbGVkLCBhbmQgd2hhdCBpbXBhY3QgaXQgaGFzLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjYvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA2LzIzIDAyOjAwPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O2NvbmZpZyBRQ09NX0lQQSYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtkcml2ZXJzL25ldC9pcGEvS2NvbmZpZzoxOmNvbmZpZyBRQ09NX0lQQVxuZHJpdmVycy9uZXQvaXBhL0tjb25maWctMi1cdHRyaXN0YXRlIFwmIzM0O1F1YWxjb21tIElQQSBzdXBwb3J0XCYjMzQ7XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Ny8yPC90ZD4KCQkJPHRkPjIwMjYvMDYvMjMgMDI6MDA8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMTE2ODEKCQkJCQkJCW91dHB1dDogMzQKCQkJCQkJCXRob3VnaHRzOiAxNAoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+SGVyZSYjMzk7cyBteSBhdHRlbXB0IGF0IHN1bW1hcml6aW5nIHRoZSB0aG91Z2h0IHByb2Nlc3MsIHRhaWxvcmVkIGZvciBhbiBleHBlcnQgYXVkaWVuY2U6CgoqKkRpdmluZyBpbnRvIHRoZSBJUEEgS2NvbmZpZyoqCgpBbHJpZ2h0LCBsZXQmIzM5O3MgcHVsbCB1cCBgZHJpdmVycy9uZXQvaXBhL0tjb25maWdgLiBUaW1lIHRvIGdldCBhIGhhbmRsZSBvbiB0aGUgY29uZmlndXJhdGlvbiBvcHRpb25zIGZvciB0aGUgSVBBIChJbnRlZ3JhdGVkIFBhY2tldCBBY2NlbGVyYXRvcikgZHJpdmVyLiBJIG5lZWQgdG8gdW5kZXJzdGFuZCBob3cgdGhpcyB0aGluZyBpcyBidWlsdCwgd2hhdCBmZWF0dXJlcyBhcmUgZXhwb3NlZCwgYW5kIGhvdyB0aGV54oCZcmUgY29udHJvbGxlZCB0aHJvdWdoIHRoZSBrZXJuZWwmIzM5O3MgY29uZmlndXJhdGlvbiBzeXN0ZW0uIE15IGludHVpdGlvbiBzYXlzIHRoaXMgd2lsbCBwcm9iYWJseSBiZSBhIGNvbXBsZXggYW5kIG11bHRpZmFjZXRlZCBzZXQgb2Ygb3B0aW9ucywgZ2l2ZW4gdGhlIHJvbGUgb2YgaGFyZHdhcmUgYWNjZWxlcmF0aW9uIGluIG5ldHdvcmtpbmcuIEkmIzM5O20gZXhwZWN0aW5nIHRvIHNlZSBkZXBlbmRlbmNpZXMgb24gdGhlIGhhcmR3YXJlIHBsYXRmb3JtLCBsaWtlbHkgQVJNLXNwZWNpZmljIGZlYXR1cmVzLCBhbmQgcGVyaGFwcyBkaWZmZXJlbnQgYnVpbGQgY2hvaWNlcyBmb3IgZGlmZmVyZW50IElQQSBjYXBhYmlsaXRpZXM6IG9mZmxvYWQsIGZpbHRlcmluZywgUW9TLCBhbmQgYW55IG90aGVyIHVuaXF1ZSBjYXBhYmlsaXRpZXMgdGhpcyBzcGVjaWZpYyBJUCBibG9jayBoYXMuIFdlIHNob3VsZCBhbHNvIGxvb2sgZm9yIG9wdGlvbnMgdGhhdCBjYW4gaW5mbHVlbmNlIHBlcmZvcm1hbmNlLCBtZW1vcnkgdXNhZ2UsIGFuZCBkZWJ1Z2dpbmcsIHdoaWNoIGFyZSBjcml0aWNhbCB0dW5pbmcgcGFyYW1ldGVycy4gSSB3YW50IHRvIHNlZSBob3cgbW9kdWxhciB0aGUgZHJpdmVyIGlzOyB3aGV0aGVyIHdlIGNhbiBzZWxlY3RpdmVseSBlbmFibGUgcG9ydGlvbnMgb2YgdGhlIGhhcmR3YXJlIGZ1bmN0aW9uYWxpdHkgb3IgaWYgaXTigJlzIG1vcmUgbW9ub2xpdGhpYy4gVGhlIEtjb25maWcgZmlsZSBpcyB0aGUga2V5IHRvIHVuZGVyc3RhbmRpbmcgYWxsIG9mIHRoaXMuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+OC8yPC90ZD4KCQkJPHRkPjIwMjYvMDYvMjMgMDI6MDA8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5yZWFkLWZpbGU8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0ZpbGUmIzM0OzogJiMzNDtkcml2ZXJzL25ldC9pcGEvS2NvbmZpZyYjMzQ7LAogICYjMzQ7Rmlyc3RMaW5lJiMzNDs6IDEsCiAgJiMzNDtMaW5lQ291bnQmIzM0OzogMjAKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0NvbnRlbnRzJiMzNDs6ICYjMzQ7ICAgMTpcdGNvbmZpZyBRQ09NX0lQQVxuICAgMjpcdFx0dHJpc3RhdGUgXCYjMzQ7UXVhbGNvbW0gSVBBIHN1cHBvcnRcJiMzNDtcbiAgIDM6XHRcdGRlcGVuZHMgb24gTkVUIFx1MDAyNlx1MDAyNiBRQ09NX1NNRU1cbiAgIDQ6XHRcdGRlcGVuZHMgb24gQVJDSF9RQ09NIHx8IENPTVBJTEVfVEVTVFxuICAgNTpcdFx0ZGVwZW5kcyBvbiBJTlRFUkNPTk5FQ1RcbiAgIDY6XHRcdGRlcGVuZHMgb24gUUNPTV9SUFJPQ19DT01NT04gfHwgKFFDT01fUlBST0NfQ09NTU9OPW4gXHUwMDI2XHUwMDI2IENPTVBJTEVfVEVTVClcbiAgIDc6XHRcdGRlcGVuZHMgb24gUUNPTV9BT1NTX1FNUCB8fCBRQ09NX0FPU1NfUU1QPW5cbiAgIDg6XHRcdHNlbGVjdCBRQ09NX01EVF9MT0FERVJcbiAgIDk6XHRcdHNlbGVjdCBRQ09NX1NDTVxuICAxMDpcdFx0c2VsZWN0IFFDT01fUU1JX0hFTFBFUlNcbiAgMTE6XHRcdGhlbHBcbiAgMTI6XHRcdCAgQ2hvb3NlIFkgb3IgTSBoZXJlIHRvIGluY2x1ZGUgc3VwcG9ydCBmb3IgdGhlIFF1YWxjb21tXG4gIDEzOlx0XHQgIElQIEFjY2VsZXJhdG9yIChJUEEpLCBhIGhhcmR3YXJlIGJsb2NrIHByZXNlbnQgaW4gc29tZVxuICAxNDpcdFx0ICBRdWFsY29tbSBTb0NzLiAgVGhlIElQQSBpcyBhIHByb2dyYW1tYWJsZSBwcm90b2NvbCBwcm9jZXNzb3JcbiAgMTU6XHRcdCAgdGhhdCBpcyBjYXBhYmxlIG9mIGdlbmVyaWMgaGFyZHdhcmUgaGFuZGxpbmcgb2YgSVAgcGFja2V0cyxcbiAgMTY6XHRcdCAgaW5jbHVkaW5nIHJvdXRpbmcsIGZpbHRlcmluZywgYW5kIE5BVC4gIEN1cnJlbnRseSB0aGUgSVBBXG4gIDE3Olx0XHQgIGRyaXZlciBzdXBwb3J0cyBvbmx5IGJhc2ljIHRyYW5zcG9ydCBvZiBuZXR3b3JrIHRyYWZmaWNcbiAgMTg6XHRcdCAgYmV0d2VlbiB0aGUgQVAgYW5kIG1vZGVtLlxuICAxOTpcdFxuICAyMDpcdFx0ICBOb3RlIHRoYXQgaWYgc2VsZWN0ZWQsIHRoZSBzZWxlY3Rpb24gdHlwZSBtdXN0IG1hdGNoIHRoYXRcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD45LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNi8yMyAwMjowMDwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAxMjI4MgoJCQkJCQkJb3V0cHV0OiAxMjAKCQkJCQkJCXRob3VnaHRzOiA0MzYKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqV29ydGhGdXp6aW5nIEFzc2Vzc21lbnQ6IE5vLCBUaGlzIFBhdGNoIElzbiYjMzk7dCBGdXp6YWJsZSoqCgpPa2F5LCBsZXQmIzM5O3MgYnJlYWsgdGhpcyBkb3duLiBUaGlzIHBhdGNoIGlzIGFsbCBhYm91dCBhZGRpbmcgc3VwcG9ydCBmb3IgYSBuZXcgdmVyc2lvbiwgdjUuMSwgb2YgdGhlIFF1YWxjb21tIElQQSAoSVAgQWNjZWxlcmF0b3IpIGhhcmR3YXJlIGJsb2NrLCBzcGVjaWZpY2FsbHkgZm9yIHRoZSBTTTg0NTAgU29DLiBNeSB1bmRlcnN0YW5kaW5nIGlzIHRoYXQgdGhlIElQQSBpcyBhIHZlcnkgc3BlY2lmaWMgcGllY2Ugb2YgaGFyZHdhcmUgaW4gUXVhbGNvbW0gU29DcyDigJMgaXQmIzM5O3Mgbm90IHNvbWV0aGluZyB0aGF0IGNhbiBiZSBlbXVsYXRlZCBpbiBlbnZpcm9ubWVudHMgbGlrZSBRRU1VIG9yIEdvb2dsZSBDb21wdXRlIEVuZ2luZS4gVGhhdCYjMzk7cyB0aGUga2V5LgoKVGhpcyBwYXRjaCBpdHNlbGYgc2VlbXMgYmVuaWduLiBJJiMzOTttIHNlZWluZyBuZXcgZGF0YSBzdHJ1Y3R1cmVzLCBkZXZpY2UgdHJlZSBiaW5kaW5ncywgYW5kIHRoZSByZWdpc3RyYXRpb24gb2YgYSBuZXcgJiMzNDtjb21wYXRpYmxlJiMzNDsgc3RyaW5nLiBTbywgaXQgYXBwZWFycyB3ZSYjMzk7cmUganVzdCBzZXR0aW5nIHVwIHRoZSBzeXN0ZW0gdG8gcmVjb2duaXplIGFuZCBjb25maWd1cmUgdGhpcyBuZXcgaGFyZHdhcmUgdmVyc2lvbi4gVGhlcmUmIzM5O3Mgbm8gZnVuY3Rpb25hbCBsb2dpYyBiZWluZyBpbnRyb2R1Y2VkIGhlcmUgdGhhdCBJIGNvdWxkIHNlZSBiZWluZyByZWxldmFudCB0byBmdXp6aW5nLCBlc3BlY2lhbGx5IG5vdCBpbiBhIHZpcnR1YWxpemVkIGVudmlyb25tZW50LgoKTm93LCBsZXQmIzM5O3MgcXVpY2tseSByZXZpZXcgdGhlIHNwZWNpZmljIGZpbGVzIG1vZGlmaWVkIHRvIGRvdWJsZS1jaGVjayBteSBpbml0aWFsIGFzc2Vzc21lbnQuCgoqICAgYGRyaXZlcnMvbmV0L2lwYS9kYXRhL2lwYV9kYXRhLXY1LjEuY2A6IEp1c3QgZGF0YS4KKiAgIGBkcml2ZXJzL25ldC9pcGEvZ3NpX3JlZy5jYDogQWRkaW5nIGEgYGNhc2UgSVBBX1ZFUlNJT05fNV8xOmAgdG8gcmV0dXJuIGAmYW1wO2dzaV9yZWdzX3Y1XzBgLiBUaGlzIGlzIGp1c3QgYWRkaW5nIGEgYnJhbmNoIGJhc2VkIG9uIHZlcnNpb24gbnVtYmVyLCBub3QgbmV3IGxvZ2ljLgoqICAgYGRyaXZlcnMvbmV0L2lwYS9pcGFfcmVnLmNgOiBTaW1pbGFybHksIGFkZGluZyBhIGBjYXNlIElQQV9WRVJTSU9OXzVfMTpgIHRvIHJldHVybiBgJmFtcDtpcGFfcmVnc192NV8wYC4gQW5vdGhlciBicmFuY2gsIGp1c3QgY29uZmlndXJhdGlvbiBkYXRhLgoqICAgYGRyaXZlcnMvbmV0L2lwYS9pcGFfbWFpbi5jYDogQWRkaW5nIHRoZSBjb21wYXRpYmxlIHN0cmluZyB0byBhIHRhYmxlLgoqICAgYGRyaXZlcnMvbmV0L2lwYS9NYWtlZmlsZWA6IEFkZGluZyBgNS4xYCB0byB0aGUgYElQQV9EQVRBX1ZFUlNJT05TYCB2YXJpYWJsZS4KKiAgIGBhcmNoL2FybTY0L2Jvb3QvZHRzL3Fjb20vc204NDUwLmR0c2lgOiBBZGRpbmcgdGhlIERldmljZSBUcmVlIG5vZGUsIHdoaWNoIGlzIGVzc2VudGlhbCBmb3IgaGFyZHdhcmUgY29uZmlndXJhdGlvbi4KKiAgIGBEb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L3Fjb20saXBhLnlhbWxgOiBBZGRpbmcgdGhlIGNvbXBhdGlibGUgc3RyaW5nIHRvIHRoZSBkb2N1bWVudGF0aW9uLgoKTG9va2luZyBhdCBlYWNoIGZpbGUgY29uZmlybXMgbXkgaW5pdGlhbCBhc3Nlc3NtZW50LiBBbGwgdGhlc2UgY2hhbmdlcyBhcmUgYWJvdXQgZGF0YSBzdHJ1Y3R1cmVzLCBoYXJkd2FyZSB2ZXJzaW9uIGVudW1lcmF0aW9uLCBhbmQgZGV2aWNlIHRyZWUgaW5mb3JtYXRpb24uIFRoZXJlJiMzOTtzIG5vIGNvZGUgY2hhbmdlIGhlcmUgdGhhdCByZXByZXNlbnRzIG5ldyBmdW5jdGlvbmFsaXR5LCBhbmQgY3JpdGljYWxseSwgdGhlcmUmIzM5O3Mgbm8gd2F5IHRvIHJlYWNoIHRoaXMgY29kZSBpbiBhIGZ1enppbmcgc2V0dXAuIEkmIzM5O20gY29tcGxldGVseSBjb25maWRlbnQgbm93IHRoYXQgdGhpcyBpc24mIzM5O3QgZnV6emFibGUuIEkgd2lsbCBzZXQgYFdvcnRoRnV6emluZz1mYWxzZWAuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTAvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA2LzIzIDAyOjAwPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+c2V0LXJlc3VsdHM8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogW10sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogW10sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggYWRkcyBzdXBwb3J0IGZvciBhIG5ldyBoYXJkd2FyZSB2ZXJzaW9uICh2NS4xKSBvZiB0aGUgUXVhbGNvbW0gSVAgQWNjZWxlcmF0b3IgKElQQSkgZm9yIHRoZSBTTTg0NTAgU29DLiBJdCBvbmx5IGludHJvZHVjZXMgbmV3IGRhdGEgc3RydWN0dXJlcywgZGV2aWNlIHRyZWUgYmluZGluZ3MsIGFuZCByZWdpc3RlcnMgdGhlIG5ldyBjb21wYXRpYmxlIHN0cmluZy4gVGhlIElQQSBpcyBhIGhhcmR3YXJlIGJsb2NrIHNwZWNpZmljIHRvIFF1YWxjb21tIFNvQ3MgYW5kIGlzIG5vdCBlbXVsYXRlZCBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBRRU1VIG9yIEdDRSwgbWFraW5nIHRoaXMgY29kZSB1bnJlYWNoYWJsZSBhbmQgdW50ZXN0YWJsZSBkdXJpbmcgZnV6emluZy4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiBmYWxzZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBudWxsLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFtdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIGFkZHMgc3VwcG9ydCBmb3IgYSBuZXcgaGFyZHdhcmUgdmVyc2lvbiAodjUuMSkgb2YgdGhlIFF1YWxjb21tIElQIEFjY2VsZXJhdG9yIChJUEEpIGZvciB0aGUgU004NDUwIFNvQy4gSXQgb25seSBpbnRyb2R1Y2VzIG5ldyBkYXRhIHN0cnVjdHVyZXMsIGRldmljZSB0cmVlIGJpbmRpbmdzLCBhbmQgcmVnaXN0ZXJzIHRoZSBuZXcgY29tcGF0aWJsZSBzdHJpbmcuIFRoZSBJUEEgaXMgYSBoYXJkd2FyZSBibG9jayBzcGVjaWZpYyB0byBRdWFsY29tbSBTb0NzIGFuZCBpcyBub3QgZW11bGF0ZWQgaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgUUVNVSBvciBHQ0UsIG1ha2luZyB0aGlzIGNvZGUgdW5yZWFjaGFibGUgYW5kIHVudGVzdGFibGUgZHVyaW5nIGZ1enppbmcuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogZmFsc2UKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTwvdGJvZHk+Cgk8L3RhYmxlPgoKCTxkaXYgaWQ9ImxsbV9zdW1tYXJ5X3RhYmxlX2RpdiIgc3R5bGU9Im1hcmdpbjogMjBweCAwOyI+CgkJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQkJPGNhcHRpb24+TExNIENhbGxzIFN1bW1hcnk6PC9jYXB0aW9uPgoJCQk8dGhlYWQ+CgkJCQk8dHI+CgkJCQkJPHRoPlRvdGFsIENhbGxzPC90aD4KCQkJCQk8dGg+VG90YWwgVG9rZW5zPC90aD4KCQkJCQk8dGg+QXZnIFRva2VuczwvdGg+CgkJCQkJPHRoPlRvdGFsIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQkJPHRoPkF2ZyBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJPC90cj4KCQkJPC90aGVhZD4KCQkJPHRib2R5IGlkPSJsbG1fc3VtbWFyeV9zdGF0c19ib2R5Ij48L3Rib2R5PgoJCTwvdGFibGU+Cgk8L2Rpdj4KCgk8ZGl2IGlkPSJ0b29sX3N1bW1hcnlfdGFibGVfZGl2IiBzdHlsZT0ibWFyZ2luOiAyMHB4IDA7Ij4KCQk8dGFibGUgY2xhc3M9Imxpc3RfdGFibGUiPgoJCQk8Y2FwdGlvbj5Ub29sIENhbGxzIFN1bW1hcnk6PC9jYXB0aW9uPgoJCQk8dGhlYWQ+CgkJCQk8dHI+CgkJCQkJPHRoPlRvdGFsIENhbGxzPC90aD4KCQkJCQk8dGg+VG90YWwgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCQk8dGg+QXZnIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQk8L3RyPgoJCQk8L3RoZWFkPgoJCQk8dGJvZHkgaWQ9InRvb2xfc3VtbWFyeV9zdGF0c19ib2R5Ij48L3Rib2R5PgoJCTwvdGFibGU+Cgk8L2Rpdj4KCgk8ZGl2IGlkPSJkdXJhdGlvbl9jaGFydF9kaXYiIHN0eWxlPSJ3aWR0aDogMTAwJTsgbWFyZ2luOiAyMHB4IDA7IGJvcmRlcjogMXB4OyI+PC9kaXY+Cgk8ZGl2IGlkPSJ0b2tlbl9jaGFydF9kaXYiIHN0eWxlPSJ3aWR0aDogMTAwJTsgbWFyZ2luOiAyMHB4IDA7IGJvcmRlcjogMXB4OyI+PC9kaXY+CgoJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iaHR0cHM6Ly93d3cuZ29vZ2xlLmNvbS9qc2FwaSI+PC9zY3JpcHQ+Cgk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+CgkJZ29vZ2xlLmxvYWQoInZpc3VhbGl6YXRpb24iLCAiMSIsIHtwYWNrYWdlczpbImNvcmVjaGFydCJdfSk7CgkJZ29vZ2xlLnNldE9uTG9hZENhbGxiYWNrKGRyYXdDaGFydHMpOwoKCQlmdW5jdGlvbiBkcmF3Q2hhcnRzKCkgewoJCQljb25zdCByYXdEYXRhID0gW3siU3RhcnRlZCI6IjIwMjYtMDYtMjNUMDI6MDA6MjcuNzA0NjQ2NTQyWiIsIlNlcSI6MCwiTmVzdGluZyI6MCwiVHlwZSI6ImZsb3ciLCJOYW1lIjoicGF0Y2gtdHJpYWdlIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MzA4MTE5MTkzNzgsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogbnVsbCxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW10sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIGFkZHMgc3VwcG9ydCBmb3IgYSBuZXcgaGFyZHdhcmUgdmVyc2lvbiAodjUuMSkgb2YgdGhlIFF1YWxjb21tIElQIEFjY2VsZXJhdG9yIChJUEEpIGZvciB0aGUgU004NDUwIFNvQy4gSXQgb25seSBpbnRyb2R1Y2VzIG5ldyBkYXRhIHN0cnVjdHVyZXMsIGRldmljZSB0cmVlIGJpbmRpbmdzLCBhbmQgcmVnaXN0ZXJzIHRoZSBuZXcgY29tcGF0aWJsZSBzdHJpbmcuIFRoZSBJUEEgaXMgYSBoYXJkd2FyZSBibG9jayBzcGVjaWZpYyB0byBRdWFsY29tbSBTb0NzIGFuZCBpcyBub3QgZW11bGF0ZWQgaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgUUVNVSBvciBHQ0UsIG1ha2luZyB0aGlzIGNvZGUgdW5yZWFjaGFibGUgYW5kIHVudGVzdGFibGUgZHVyaW5nIGZ1enppbmcuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IGZhbHNlXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNi0yM1QwMjowMDoyNy43MDQ2NjA5NTJaIiwiU2VxIjoxLCJOZXN0aW5nIjoxLCJUeXBlIjoiYWN0aW9uIiwiTmFtZSI6InJlYWQtcGF0Y2gtZGlmZiIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjY3MTY0MjUwNiwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiUGF0Y2hEaWZmXCI6IFwiY29tbWl0IGRkMmRkZjEwNzUwYjBlZjQzYWZhNjBhYWU2ZjExYTdmYzQ1MjM4Y2NcXG5BdXRob3I6IHN5ei1jbHVzdGVyIFxcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVxcdTAwM2VcXG5EYXRlOiAgIFR1ZSBKdW4gMjMgMDI6MDA6MjYgMjAyNiArMDAwMFxcblxcbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcXG5cXG5kaWZmIC0tZ2l0IGEvRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9xY29tLGlwYS55YW1sIGIvRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9xY29tLGlwYS55YW1sXFxuaW5kZXggNjhlYzc2ZmU0NDczNTYuLmRiOTFiZmFhZjgzMzJlIDEwMDY0NFxcbi0tLSBhL0RvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvcWNvbSxpcGEueWFtbFxcbisrKyBiL0RvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvcWNvbSxpcGEueWFtbFxcbkBAIC01Myw2ICs1Myw3IEBAIHByb3BlcnRpZXM6XFxuICAgICAgICAgICAtIHFjb20sc2R4NjUtaXBhXFxuICAgICAgICAgICAtIHFjb20sc202MzUwLWlwYVxcbiAgICAgICAgICAgLSBxY29tLHNtODM1MC1pcGFcXG4rICAgICAgICAgIC0gcWNvbSxzbTg0NTAtaXBhXFxuICAgICAgICAgICAtIHFjb20sc204NTUwLWlwYVxcbiAgICAgICAtIGl0ZW1zOlxcbiAgICAgICAgICAgLSBlbnVtOlxcbmRpZmYgLS1naXQgYS9hcmNoL2FybTY0L2Jvb3QvZHRzL3Fjb20vc204NDUwLmR0c2kgYi9hcmNoL2FybTY0L2Jvb3QvZHRzL3Fjb20vc204NDUwLmR0c2lcXG5pbmRleCA1NmNiNmU5NTllNGVlMi4uYzkwNDcyMDAwOGZhYzcgMTAwNjQ0XFxuLS0tIGEvYXJjaC9hcm02NC9ib290L2R0cy9xY29tL3NtODQ1MC5kdHNpXFxuKysrIGIvYXJjaC9hcm02NC9ib290L2R0cy9xY29tL3NtODQ1MC5kdHNpXFxuQEAgLTI2MzksNiArMjYzOSw0NyBAQCBhZHJlbm9fc21tdTogaW9tbXVAM2RhMDAwMCB7XFxuIFxcdFxcdFxcdGRtYS1jb2hlcmVudDtcXG4gXFx0XFx0fTtcXG4gXFxuK1xcdFxcdGlwYTogaXBhQDNmNDAwMDAge1xcbitcXHRcXHRcXHRjb21wYXRpYmxlID0gXFxcInFjb20sc204NDUwLWlwYVxcXCI7XFxuK1xcbitcXHRcXHRcXHRpb21tdXMgPSBcXHUwMDNjXFx1MDAyNmFwcHNfc21tdSAweDVjMCAweDBcXHUwMDNlLFxcbitcXHRcXHRcXHRcXHQgXFx1MDAzY1xcdTAwMjZhcHBzX3NtbXUgMHg1YzIgMHgwXFx1MDAzZTtcXG4rXFx0XFx0XFx0cmVnID0gXFx1MDAzYzAgMHgzZjQwMDAwIDAgMHgxMDAwMFxcdTAwM2UsXFxuK1xcdFxcdFxcdCAgICAgIFxcdTAwM2MwIDB4M2Y1MDAwMCAwIDB4NTAwMFxcdTAwM2UsXFxuK1xcdFxcdFxcdCAgICAgIFxcdTAwM2MwIDB4M2UwNDAwMCAwIDB4ZmMwMDBcXHUwMDNlO1xcbitcXHRcXHRcXHRyZWctbmFtZXMgPSBcXFwiaXBhLXJlZ1xcXCIsXFxuK1xcdFxcdFxcdFxcdCAgICBcXFwiaXBhLXNoYXJlZFxcXCIsXFxuK1xcdFxcdFxcdFxcdCAgICBcXFwiZ3NpXFxcIjtcXG4rXFxuK1xcdFxcdFxcdGludGVycnVwdHMtZXh0ZW5kZWQgPSBcXHUwMDNjXFx1MDAyNmludGMgR0lDX1NQSSA2NTQgSVJRX1RZUEVfRURHRV9SSVNJTkdcXHUwMDNlLFxcbitcXHRcXHRcXHRcXHRcXHQgICAgICBcXHUwMDNjXFx1MDAyNmludGMgR0lDX1NQSSA0MzIgSVJRX1RZUEVfTEVWRUxfSElHSFxcdTAwM2UsXFxuK1xcdFxcdFxcdFxcdFxcdCAgICAgIFxcdTAwM2NcXHUwMDI2aXBhX3NtcDJwX2luIDAgSVJRX1RZUEVfRURHRV9SSVNJTkdcXHUwMDNlLFxcbitcXHRcXHRcXHRcXHRcXHQgICAgICBcXHUwMDNjXFx1MDAyNmlwYV9zbXAycF9pbiAxIElSUV9UWVBFX0VER0VfUklTSU5HXFx1MDAzZTtcXG4rXFx0XFx0XFx0aW50ZXJydXB0LW5hbWVzID0gXFxcImlwYVxcXCIsXFxuK1xcdFxcdFxcdFxcdFxcdCAgXFxcImdzaVxcXCIsXFxuK1xcdFxcdFxcdFxcdFxcdCAgXFxcImlwYS1jbG9jay1xdWVyeVxcXCIsXFxuK1xcdFxcdFxcdFxcdFxcdCAgXFxcImlwYS1zZXR1cC1yZWFkeVxcXCI7XFxuK1xcbitcXHRcXHRcXHRjbG9ja3MgPSBcXHUwMDNjXFx1MDAyNnJwbWhjYyBSUE1IX0lQQV9DTEtcXHUwMDNlO1xcbitcXHRcXHRcXHRjbG9jay1uYW1lcyA9IFxcXCJjb3JlXFxcIjtcXG4rXFxuK1xcdFxcdFxcdGludGVyY29ubmVjdHMgPSBcXHUwMDNjXFx1MDAyNmFnZ3JlMl9ub2MgTUFTVEVSX0lQQSAwIFxcdTAwMjZtY192aXJ0IFNMQVZFX0VCSTEgMFxcdTAwM2UsXFxuK1xcdFxcdFxcdFxcdFxcdFxcdTAwM2NcXHUwMDI2Z2VtX25vYyBNQVNURVJfQVBQU1NfUFJPQyAwIFxcdTAwMjZjb25maWdfbm9jIFNMQVZFX0lQQV9DRkcgMFxcdTAwM2U7XFxuK1xcdFxcdFxcdGludGVyY29ubmVjdC1uYW1lcyA9IFxcXCJtZW1vcnlcXFwiLFxcbitcXHRcXHRcXHRcXHRcXHQgICAgIFxcXCJjb25maWdcXFwiO1xcbitcXG4rXFx0XFx0XFx0cWNvbSxxbXAgPSBcXHUwMDNjXFx1MDAyNmFvc3NfcW1wXFx1MDAzZTtcXG4rXFxuK1xcdFxcdFxcdHFjb20sc21lbS1zdGF0ZXMgPSBcXHUwMDNjXFx1MDAyNmlwYV9zbXAycF9vdXQgMFxcdTAwM2UsXFxuK1xcdFxcdFxcdFxcdFxcdCAgIFxcdTAwM2NcXHUwMDI2aXBhX3NtcDJwX291dCAxXFx1MDAzZTtcXG4rXFx0XFx0XFx0cWNvbSxzbWVtLXN0YXRlLW5hbWVzID0gXFxcImlwYS1jbG9jay1lbmFibGVkLXZhbGlkXFxcIixcXG4rXFx0XFx0XFx0XFx0XFx0XFx0XFxcImlwYS1jbG9jay1lbmFibGVkXFxcIjtcXG4rXFxuK1xcdFxcdFxcdHNyYW0gPSBcXHUwMDNjXFx1MDAyNmlwYV9tb2RlbV90YWJsZXNcXHUwMDNlO1xcbitcXG4rXFx0XFx0XFx0c3RhdHVzID0gXFxcImRpc2FibGVkXFxcIjtcXG4rXFx0XFx0fTtcXG4rXFxuIFxcdFxcdHVzYl8xX2hzcGh5OiBwaHlAODhlMzAwMCB7XFxuIFxcdFxcdFxcdGNvbXBhdGlibGUgPSBcXFwicWNvbSxzbTg0NTAtdXNiLWhzLXBoeVxcXCIsXFxuIFxcdFxcdFxcdFxcdCAgICAgXFxcInFjb20sdXNiLXNucHMtaHMtN25tLXBoeVxcXCI7XFxuQEAgLTQ5NzAsMTcgKzUwMTEsMjEgQEAgY3RpQDEzOTAwMDAwIHtcXG4gXFx0XFx0XFx0Y2xvY2stbmFtZXMgPSBcXFwiYXBiX3BjbGtcXFwiO1xcbiBcXHRcXHR9O1xcbiBcXG4tXFx0XFx0c3JhbUAxNDZhYTAwMCB7XFxuK1xcdFxcdHNyYW1AMTQ2YTgwMDAge1xcbiBcXHRcXHRcXHRjb21wYXRpYmxlID0gXFxcInFjb20sc204NDUwLWltZW1cXFwiLCBcXFwic3lzY29uXFxcIiwgXFxcInNpbXBsZS1tZmRcXFwiO1xcbi1cXHRcXHRcXHRyZWcgPSBcXHUwMDNjMCAweDE0NmFhMDAwIDAgMHgxMDAwXFx1MDAzZTtcXG4tXFx0XFx0XFx0cmFuZ2VzID0gXFx1MDAzYzAgMCAweDE0NmFhMDAwIDB4MTAwMFxcdTAwM2U7XFxuK1xcdFxcdFxcdHJlZyA9IFxcdTAwM2MwIDB4MTQ2YTgwMDAgMCAweDMwMDBcXHUwMDNlO1xcbitcXHRcXHRcXHRyYW5nZXMgPSBcXHUwMDNjMCAwIDB4MTQ2YTgwMDAgMHgzMDAwXFx1MDAzZTtcXG4gXFxuIFxcdFxcdFxcdCNhZGRyZXNzLWNlbGxzID0gXFx1MDAzYzFcXHUwMDNlO1xcbiBcXHRcXHRcXHQjc2l6ZS1jZWxscyA9IFxcdTAwM2MxXFx1MDAzZTtcXG4gXFxuLVxcdFxcdFxcdHBpbC1yZWxvY0A5NGMge1xcbitcXHRcXHRcXHRpcGFfbW9kZW1fdGFibGVzOiBtb2RlbS10YWJsZXNAMCB7XFxuK1xcdFxcdFxcdFxcdHJlZyA9IFxcdTAwM2MwIDB4MjAwMFxcdTAwM2U7XFxuK1xcdFxcdFxcdH07XFxuK1xcbitcXHRcXHRcXHRwaWwtcmVsb2NAMjk0YyB7XFxuIFxcdFxcdFxcdFxcdGNvbXBhdGlibGUgPSBcXFwicWNvbSxwaWwtcmVsb2MtaW5mb1xcXCI7XFxuLVxcdFxcdFxcdFxcdHJlZyA9IFxcdTAwM2MweDk0YyAweGM4XFx1MDAzZTtcXG4rXFx0XFx0XFx0XFx0cmVnID0gXFx1MDAzYzB4Mjk0YyAweGM4XFx1MDAzZTtcXG4gXFx0XFx0XFx0fTtcXG4gXFx0XFx0fTtcXG4gXFxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2lwYS9NYWtlZmlsZSBiL2RyaXZlcnMvbmV0L2lwYS9NYWtlZmlsZVxcbmluZGV4IGUxNDhlYzNjMWExMDEwLi5kNDk5NWMyZThjYTAyMyAxMDA2NDRcXG4tLS0gYS9kcml2ZXJzL25ldC9pcGEvTWFrZWZpbGVcXG4rKysgYi9kcml2ZXJzL25ldC9pcGEvTWFrZWZpbGVcXG5AQCAtNyw3ICs3LDcgQEAgSVBBX1JFR19WRVJTSU9OU1xcdDo9XFx0My4xIDMuNS4xIDQuMiA0LjUgNC43IDQuOSA0LjExIDUuMCA1LjVcXG4gIyBTb21lIElQQSB2ZXJzaW9ucyBjYW4gcmV1c2UgYW5vdGhlciBzZXQgb2YgR1NJIHJlZ2lzdGVyIGRlZmluaXRpb25zLlxcbiBHU0lfUkVHX1ZFUlNJT05TXFx0Oj1cXHQzLjEgMy41LjEgNC4wIDQuNSA0LjkgNC4xMSA1LjBcXG4gXFxuLUlQQV9EQVRBX1ZFUlNJT05TXFx0Oj1cXHQzLjEgMy41LjEgNC4yIDQuNSA0LjcgNC45IDQuMTEgNS4wIDUuMiA1LjVcXG4rSVBBX0RBVEFfVkVSU0lPTlNcXHQ6PVxcdDMuMSAzLjUuMSA0LjIgNC41IDQuNyA0LjkgNC4xMSA1LjAgNS4xIDUuMiA1LjVcXG4gXFxuIG9iai0kKENPTkZJR19RQ09NX0lQQSlcXHQrPVxcdGlwYS5vXFxuIFxcbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9pcGEvZGF0YS9pcGFfZGF0YS12NS4xLmMgYi9kcml2ZXJzL25ldC9pcGEvZGF0YS9pcGFfZGF0YS12NS4xLmNcXG5uZXcgZmlsZSBtb2RlIDEwMDY0NFxcbmluZGV4IDAwMDAwMDAwMDAwMDAwLi44NWIyMWVmYTEyMjRkYlxcbi0tLSAvZGV2L251bGxcXG4rKysgYi9kcml2ZXJzL25ldC9pcGEvZGF0YS9pcGFfZGF0YS12NS4xLmNcXG5AQCAtMCwwICsxLDQ3NyBAQFxcbisvLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMFxcbitcXG4rLyogQ29weXJpZ2h0IChDKSAyMDIzLTIwMjQgTGluYXJvIEx0ZC4gKi9cXG4rLyogQ29weXJpZ2h0IChDKSAyMDI2IEVzdGViYW4gVXJydXRpYSBcXHUwMDNjZXN0ZXV3dUBwcm90b24ubWVcXHUwMDNlICovXFxuK1xcbisjaW5jbHVkZSBcXHUwMDNjbGludXgvYXJyYXlfc2l6ZS5oXFx1MDAzZVxcbisjaW5jbHVkZSBcXHUwMDNjbGludXgvbG9nMi5oXFx1MDAzZVxcbitcXG4rI2luY2x1ZGUgXFxcIi4uL2lwYV9kYXRhLmhcXFwiXFxuKyNpbmNsdWRlIFxcXCIuLi9pcGFfZW5kcG9pbnQuaFxcXCJcXG4rI2luY2x1ZGUgXFxcIi4uL2lwYV9tZW0uaFxcXCJcXG4rI2luY2x1ZGUgXFxcIi4uL2lwYV92ZXJzaW9uLmhcXFwiXFxuK1xcbisvKiogZW51bSBpcGFfcmVzb3VyY2VfdHlwZSAtIElQQSByZXNvdXJjZSB0eXBlcyBmb3IgYW4gU29DIGhhdmluZyBJUEEgdjUuMSAqL1xcbitlbnVtIGlwYV9yZXNvdXJjZV90eXBlIHtcXG4rXFx0LyogU291cmNlIHJlc291cmNlIHR5cGVzOyBmaXJzdCBtdXN0IGhhdmUgdmFsdWUgMCAqL1xcbitcXHRJUEFfUkVTT1VSQ0VfVFlQRV9TUkNfUEtUX0NPTlRFWFRTXFx0XFx0PSAwLFxcbitcXHRJUEFfUkVTT1VSQ0VfVFlQRV9TUkNfREVTQ1JJUFRPUl9MSVNUUyxcXG4rXFx0SVBBX1JFU09VUkNFX1RZUEVfU1JDX0RFU0NSSVBUT1JfQlVGRixcXG4rXFx0SVBBX1JFU09VUkNFX1RZUEVfU1JDX0hQU19ETUFSUyxcXG4rXFx0SVBBX1JFU09VUkNFX1RZUEVfU1JDX0FDS19FTlRSSUVTLFxcbitcXG4rXFx0LyogRGVzdGluYXRpb24gcmVzb3VyY2UgdHlwZXM7IGZpcnN0IG11c3QgaGF2ZSB2YWx1ZSAwICovXFxuK1xcdElQQV9SRVNPVVJDRV9UWVBFX0RTVF9EQVRBX1NFQ1RPUlNcXHRcXHQ9IDAsXFxuK1xcdElQQV9SRVNPVVJDRV9UWVBFX0RTVF9EUFNfRE1BUlMsXFxuK1xcdElQQV9SRVNPVVJDRV9UWVBFX0RTVF9VTFNPX1NFR01FTlRTLFxcbit9O1xcbitcXG4rLyogUmVzb3VyY2UgZ3JvdXBzIHVzZWQgZm9yIGFuIFNvQyBoYXZpbmcgSVBBIHY1LjEgKi9cXG4rZW51bSBpcGFfcnNyY19ncm91cF9pZCB7XFxuK1xcdC8qIFNvdXJjZSByZXNvdXJjZSBncm91cCBpZGVudGlmaWVycyAqL1xcbitcXHRJUEFfUlNSQ19HUk9VUF9TUkNfVUxcXHRcXHRcXHRcXHQ9IDAsXFxuK1xcdElQQV9SU1JDX0dST1VQX1NSQ19ETCxcXG4rXFx0SVBBX1JTUkNfR1JPVVBfU1JDX1VOVVNFRF8yLFxcbitcXHRJUEFfUlNSQ19HUk9VUF9TUkNfVU5VU0VEXzMsXFxuK1xcdElQQV9SU1JDX0dST1VQX1NSQ19VUkxMQyxcXG4rXFx0SVBBX1JTUkNfR1JPVVBfU1JDX1VfUlhfUUMsXFxuK1xcdElQQV9SU1JDX0dST1VQX1NSQ19DT1VOVCxcXHQvKiBMYXN0IGluIHNldDsgbm90IGEgc291cmNlIGdyb3VwICovXFxuK1xcbitcXHQvKiBEZXN0aW5hdGlvbiByZXNvdXJjZSBncm91cCBpZGVudGlmaWVycyAqL1xcbitcXHRJUEFfUlNSQ19HUk9VUF9EU1RfVUxcXHRcXHRcXHRcXHQ9IDAsXFxuK1xcdElQQV9SU1JDX0dST1VQX0RTVF9ETCxcXG4rXFx0SVBBX1JTUkNfR1JPVVBfRFNUX1VOVVNFRF8yLFxcbitcXHRJUEFfUlNSQ19HUk9VUF9EU1RfVU5VU0VEXzMsXFxuK1xcdElQQV9SU1JDX0dST1VQX0RTVF9VTlVTRURfNCxcXG4rXFx0SVBBX1JTUkNfR1JPVVBfRFNUX1VDLFxcbitcXHRJUEFfUlNSQ19HUk9VUF9EU1RfRFJCX0lQLFxcbitcXHRJUEFfUlNSQ19HUk9VUF9EU1RfQ09VTlQsXFx0LyogTGFzdDsgbm90IGEgZGVzdGluYXRpb24gZ3JvdXAgKi9cXG4rfTtcXG4rXFxuKy8qIFFTQiBjb25maWd1cmF0aW9uIGRhdGEgZm9yIGFuIFNvQyBoYXZpbmcgSVBBIHY1LjEgKi9cXG4rc3RhdGljIGNvbnN0IHN0cnVjdCBpcGFfcXNiX2RhdGEgaXBhX3FzYl9kYXRhW10gPSB7XFxuK1xcdFtJUEFfUVNCX01BU1RFUl9ERFJdID0ge1xcbitcXHRcXHQubWF4X3dyaXRlc1xcdFxcdD0gMCxcXG4rXFx0XFx0Lm1heF9yZWFkc1xcdFxcdD0gMCxcXHQvKiBubyBsaW1pdCAoaGFyZHdhcmUgbWF4KSAqL1xcbitcXHRcXHQubWF4X3JlYWRzX2JlYXRzXFx0PSAwLFxcbitcXHR9LFxcbitcXHRbSVBBX1FTQl9NQVNURVJfUENJRV0gPSB7XFxuK1xcdFxcdC5tYXhfd3JpdGVzXFx0XFx0PSAwLFxcbitcXHRcXHQubWF4X3JlYWRzXFx0XFx0PSAwLFxcdC8qIG5vIGxpbWl0IChoYXJkd2FyZSBtYXgpICovXFxuK1xcdFxcdC5tYXhfcmVhZHNfYmVhdHNcXHQ9IDAsXFxuK1xcdH0sXFxuK307XFxuK1xcbisvKiBFbmRwb2ludCBjb25maWd1cmF0aW9uIGRhdGEgZm9yIGFuIFNvQyBoYXZpbmcgSVBBIHY1LjEgKi9cXG4rc3RhdGljIGNvbnN0IHN0cnVjdCBpcGFfZ3NpX2VuZHBvaW50X2RhdGEgaXBhX2dzaV9lbmRwb2ludF9kYXRhW10gPSB7XFxuK1xcdFtJUEFfRU5EUE9JTlRfQVBfQ09NTUFORF9UWF0gPSB7XFxuK1xcdFxcdC5lZV9pZFxcdFxcdD0gR1NJX0VFX0FQLFxcbitcXHRcXHQuY2hhbm5lbF9pZFxcdD0gMTIsXFxuK1xcdFxcdC5lbmRwb2ludF9pZFxcdD0gMTQsXFxuK1xcdFxcdC50b3dhcmRfaXBhXFx0PSB0cnVlLFxcbitcXHRcXHQuY2hhbm5lbCA9IHtcXG4rXFx0XFx0XFx0LnRyZV9jb3VudFxcdD0gMjU2LFxcbitcXHRcXHRcXHQuZXZlbnRfY291bnRcXHQ9IDI1NixcXG4rXFx0XFx0XFx0LnRsdl9jb3VudFxcdD0gMjAsXFxuK1xcdFxcdH0sXFxuK1xcdFxcdC5lbmRwb2ludCA9IHtcXG4rXFx0XFx0XFx0LmNvbmZpZyA9IHtcXG4rXFx0XFx0XFx0XFx0LnJlc291cmNlX2dyb3VwXFx0PSBJUEFfUlNSQ19HUk9VUF9TUkNfVUwsXFxuK1xcdFxcdFxcdFxcdC5kbWFfbW9kZVxcdD0gdHJ1ZSxcXG4rXFx0XFx0XFx0XFx0LmRtYV9lbmRwb2ludFxcdD0gSVBBX0VORFBPSU5UX0FQX0xBTl9SWCxcXG4rXFx0XFx0XFx0XFx0LnR4ID0ge1xcbitcXHRcXHRcXHRcXHRcXHQuc2VxX3R5cGUgPSBJUEFfU0VRX0RNQSxcXG4rXFx0XFx0XFx0XFx0fSxcXG4rXFx0XFx0XFx0fSxcXG4rXFx0XFx0fSxcXG4rXFx0fSxcXG4rXFx0W0lQQV9FTkRQT0lOVF9BUF9MQU5fUlhdID0ge1xcbitcXHRcXHQuZWVfaWRcXHRcXHQ9IEdTSV9FRV9BUCxcXG4rXFx0XFx0LmNoYW5uZWxfaWRcXHQ9IDEzLFxcbitcXHRcXHQuZW5kcG9pbnRfaWRcXHQ9IDE2LFxcbitcXHRcXHQudG93YXJkX2lwYVxcdD0gZmFsc2UsXFxuK1xcdFxcdC5jaGFubmVsID0ge1xcbitcXHRcXHRcXHQudHJlX2NvdW50XFx0PSAyNTYsXFxuK1xcdFxcdFxcdC5ldmVudF9jb3VudFxcdD0gMjU2LFxcbitcXHRcXHRcXHQudGx2X2NvdW50XFx0PSA5LFxcbitcXHRcXHR9LFxcbitcXHRcXHQuZW5kcG9pbnQgPSB7XFxuK1xcdFxcdFxcdC5jb25maWcgPSB7XFxuK1xcdFxcdFxcdFxcdC5yZXNvdXJjZV9ncm91cFxcdD0gSVBBX1JTUkNfR1JPVVBfRFNUX1VMLFxcbitcXHRcXHRcXHRcXHQuYWdncmVnYXRpb25cXHQ9IHRydWUsXFxuK1xcdFxcdFxcdFxcdC5zdGF0dXNfZW5hYmxlXFx0PSB0cnVlLFxcbitcXHRcXHRcXHRcXHQucnggPSB7XFxuK1xcdFxcdFxcdFxcdFxcdC5idWZmZXJfc2l6ZVxcdD0gODE5MixcXG4rXFx0XFx0XFx0XFx0XFx0LnBhZF9hbGlnblxcdD0gaWxvZzIoc2l6ZW9mKHUzMikpLFxcbitcXHRcXHRcXHRcXHRcXHQuYWdncl90aW1lX2xpbWl0ID0gNTAwLFxcbitcXHRcXHRcXHRcXHR9LFxcbitcXHRcXHRcXHR9LFxcbitcXHRcXHR9LFxcbitcXHR9LFxcbitcXHRbSVBBX0VORFBPSU5UX0FQX01PREVNX1RYXSA9IHtcXG4rXFx0XFx0LmVlX2lkXFx0XFx0PSBHU0lfRUVfQVAsXFxuK1xcdFxcdC5jaGFubmVsX2lkXFx0PSAxMSxcXG4rXFx0XFx0LmVuZHBvaW50X2lkXFx0PSAyLFxcbitcXHRcXHQudG93YXJkX2lwYVxcdD0gdHJ1ZSxcXG4rXFx0XFx0LmNoYW5uZWwgPSB7XFxuK1xcdFxcdFxcdC50cmVfY291bnRcXHQ9IDUxMixcXG4rXFx0XFx0XFx0LmV2ZW50X2NvdW50XFx0PSA1MTIsXFxuK1xcdFxcdFxcdC50bHZfY291bnRcXHQ9IDI1LFxcbitcXHRcXHR9LFxcbitcXHRcXHQuZW5kcG9pbnQgPSB7XFxuK1xcdFxcdFxcdC5maWx0ZXJfc3VwcG9ydFxcdD0gdHJ1ZSxcXG4rXFx0XFx0XFx0LmNvbmZpZyA9IHtcXG4rXFx0XFx0XFx0XFx0LnJlc291cmNlX2dyb3VwXFx0PSBJUEFfUlNSQ19HUk9VUF9TUkNfVUwsXFxuK1xcdFxcdFxcdFxcdC5jaGVja3N1bSAgICAgICA9IHRydWUsXFxuK1xcdFxcdFxcdFxcdC5xbWFwXFx0XFx0PSB0cnVlLFxcbitcXHRcXHRcXHRcXHQuc3RhdHVzX2VuYWJsZVxcdD0gdHJ1ZSxcXG4rXFx0XFx0XFx0XFx0LnR4ID0ge1xcbitcXHRcXHRcXHRcXHRcXHQuc2VxX3R5cGUgPSBJUEFfU0VRXzJfUEFTU19TS0lQX0xBU1RfVUMsXFxuK1xcdFxcdFxcdFxcdFxcdC5zdGF0dXNfZW5kcG9pbnQgPVxcbitcXHRcXHRcXHRcXHRcXHRcXHRJUEFfRU5EUE9JTlRfTU9ERU1fQVBfUlgsXFxuK1xcdFxcdFxcdFxcdH0sXFxuK1xcdFxcdFxcdH0sXFxuK1xcdFxcdH0sXFxuK1xcdH0sXFxuK1xcdFtJUEFfRU5EUE9JTlRfQVBfTU9ERU1fUlhdID0ge1xcbitcXHRcXHQuZWVfaWRcXHRcXHQ9IEdTSV9FRV9BUCxcXG4rXFx0XFx0LmNoYW5uZWxfaWRcXHQ9IDEsXFxuK1xcdFxcdC5lbmRwb2ludF9pZFxcdD0gMjMsXFxuK1xcdFxcdC50b3dhcmRfaXBhXFx0PSBmYWxzZSxcXG4rXFx0XFx0LmNoYW5uZWwgPSB7XFxuK1xcdFxcdFxcdC50cmVfY291bnRcXHQ9IDI1NixcXG4rXFx0XFx0XFx0LmV2ZW50X2NvdW50XFx0PSAyNTYsXFxuK1xcdFxcdFxcdC50bHZfY291bnRcXHQ9IDksXFxuK1xcdFxcdH0sXFxuK1xcdFxcdC5lbmRwb2ludCA9IHtcXG4rXFx0XFx0XFx0LmNvbmZpZyA9IHtcXG4rXFx0XFx0XFx0XFx0LnJlc291cmNlX2dyb3VwXFx0PSBJUEFfUlNSQ19HUk9VUF9EU1RfVUwsXFxuK1xcdFxcdFxcdFxcdC5jaGVja3N1bSAgICAgICA9IHRydWUsXFxuK1xcdFxcdFxcdFxcdC5xbWFwXFx0XFx0PSB0cnVlLFxcbitcXHRcXHRcXHRcXHQuYWdncmVnYXRpb25cXHQ9IHRydWUsXFxuK1xcdFxcdFxcdFxcdC5yeCA9IHtcXG4rXFx0XFx0XFx0XFx0XFx0LmJ1ZmZlcl9zaXplXFx0PSA4MTkyLFxcbitcXHRcXHRcXHRcXHRcXHQuYWdncl90aW1lX2xpbWl0ID0gNTAwLFxcbitcXHRcXHRcXHRcXHRcXHQuYWdncl9jbG9zZV9lb2ZcXHQ9IHRydWUsXFxuK1xcdFxcdFxcdFxcdH0sXFxuK1xcdFxcdFxcdH0sXFxuK1xcdFxcdH0sXFxuK1xcdH0sXFxuK1xcdFtJUEFfRU5EUE9JTlRfTU9ERU1fQVBfVFhdID0ge1xcbitcXHRcXHQuZWVfaWRcXHRcXHQ9IEdTSV9FRV9NT0RFTSxcXG4rXFx0XFx0LmNoYW5uZWxfaWRcXHQ9IDAsXFxuK1xcdFxcdC5lbmRwb2ludF9pZFxcdD0gMTIsXFxuK1xcdFxcdC50b3dhcmRfaXBhXFx0PSB0cnVlLFxcbitcXHRcXHQuZW5kcG9pbnQgPSB7XFxuK1xcdFxcdFxcdC5maWx0ZXJfc3VwcG9ydFxcdD0gdHJ1ZSxcXG4rXFx0XFx0fSxcXG4rXFx0fSxcXG4rXFx0W0lQQV9FTkRQT0lOVF9NT0RFTV9BUF9SWF0gPSB7XFxuK1xcdFxcdC5lZV9pZFxcdFxcdD0gR1NJX0VFX01PREVNLFxcbitcXHRcXHQuY2hhbm5lbF9pZFxcdD0gNyxcXG4rXFx0XFx0LmVuZHBvaW50X2lkXFx0PSAyMSxcXG4rXFx0XFx0LnRvd2FyZF9pcGFcXHQ9IGZhbHNlLFxcbitcXHR9LFxcbitcXHRbSVBBX0VORFBPSU5UX01PREVNX0RMX05MT19UWF0gPSB7XFxuK1xcdFxcdC5lZV9pZFxcdFxcdD0gR1NJX0VFX01PREVNLFxcbitcXHRcXHQuY2hhbm5lbF9pZFxcdD0gMixcXG4rXFx0XFx0LmVuZHBvaW50X2lkXFx0PSAxNSxcXG4rXFx0XFx0LnRvd2FyZF9pcGFcXHQ9IHRydWUsXFxuK1xcdFxcdC5lbmRwb2ludCA9IHtcXG4rXFx0XFx0XFx0LmZpbHRlcl9zdXBwb3J0XFx0PSB0cnVlLFxcbitcXHRcXHR9LFxcbitcXHR9LFxcbit9O1xcbitcXG4rLyogU291cmNlIHJlc291cmNlIGNvbmZpZ3VyYXRpb24gZGF0YSBmb3IgYW4gU29DIGhhdmluZyBJUEEgdjUuMSAqL1xcbitzdGF0aWMgY29uc3Qgc3RydWN0IGlwYV9yZXNvdXJjZSBpcGFfcmVzb3VyY2Vfc3JjW10gPSB7XFxuK1xcdFtJUEFfUkVTT1VSQ0VfVFlQRV9TUkNfUEtUX0NPTlRFWFRTXSA9IHtcXG4rXFx0XFx0LmxpbWl0c1tJUEFfUlNSQ19HUk9VUF9TUkNfVUxdID0ge1xcbitcXHRcXHRcXHQubWluID0gNyxcXHQubWF4ID0gMTIsXFxuK1xcdFxcdH0sXFxuK1xcdFxcdC5saW1pdHNbSVBBX1JTUkNfR1JPVVBfU1JDX1VSTExDXSA9IHtcXG4rXFx0XFx0XFx0Lm1pbiA9IDEsXFx0Lm1heCA9IDYzLFxcbitcXHRcXHR9LFxcbitcXHRcXHQubGltaXRzW0lQQV9SU1JDX0dST1VQX1NSQ19VX1JYX1FDXSA9IHtcXG4rXFx0XFx0XFx0Lm1pbiA9IDAsXFx0Lm1heCA9IDYzLFxcbitcXHRcXHR9LFxcbitcXHR9LFxcbitcXHRbSVBBX1JFU09VUkNFX1RZUEVfU1JDX0RFU0NSSVBUT1JfTElTVFNdID0ge1xcbitcXHRcXHQubGltaXRzW0lQQV9SU1JDX0dST1VQX1NSQ19VTF0gPSB7XFxuK1xcdFxcdFxcdC5taW4gPSAyMSxcXHQubWF4ID0gMjEsXFxuK1xcdFxcdH0sXFxuK1xcdFxcdC5saW1pdHNbSVBBX1JTUkNfR1JPVVBfU1JDX1VSTExDXSA9IHtcXG4rXFx0XFx0XFx0Lm1pbiA9IDEwLFxcdC5tYXggPSAxMCxcXG4rXFx0XFx0fSxcXG4rXFx0fSxcXG4rXFx0W0lQQV9SRVNPVVJDRV9UWVBFX1NSQ19ERVNDUklQVE9SX0JVRkZdID0ge1xcbitcXHRcXHQubGltaXRzW0lQQV9SU1JDX0dST1VQX1NSQ19VTF0gPSB7XFxuK1xcdFxcdFxcdC5taW4gPSAzMyxcXHQubWF4ID0gMzMsXFxuK1xcdFxcdH0sXFxuK1xcdFxcdC5saW1pdHNbSVBBX1JTUkNfR1JPVVBfU1JDX1VSTExDXSA9IHtcXG4rXFx0XFx0XFx0Lm1pbiA9IDIwLFxcdC5tYXggPSAyMCxcXG4rXFx0XFx0fSxcXG4rXFx0fSxcXG4rXFx0W0lQQV9SRVNPVVJDRV9UWVBFX1NSQ19IUFNfRE1BUlNdID0ge1xcbitcXHRcXHQubGltaXRzW0lQQV9SU1JDX0dST1VQX1NSQ19VTF0gPSB7XFxuK1xcdFxcdFxcdC5taW4gPSAwLFxcdC5tYXggPSA2MyxcXG4rXFx0XFx0fSxcXG4rXFx0XFx0LmxpbWl0c1tJUEFfUlNSQ19HUk9VUF9TUkNfVVJMTENdID0ge1xcbitcXHRcXHRcXHQubWluID0gMSxcXHQubWF4ID0gNjMsXFxuK1xcdFxcdH0sXFxuK1xcdFxcdC5saW1pdHNbSVBBX1JTUkNfR1JPVVBfU1JDX1VfUlhfUUNdID0ge1xcbitcXHRcXHRcXHQubWluID0gMCxcXHQubWF4ID0gNjMsXFxuK1xcdFxcdH0sXFxuK1xcdH0sXFxuK1xcdFtJUEFfUkVTT1VSQ0VfVFlQRV9TUkNfQUNLX0VOVFJJRVNdID0ge1xcbitcXHRcXHQubGltaXRzW0lQQV9SU1JDX0dST1VQX1NSQ19VTF0gPSB7XFxuK1xcdFxcdFxcdC5taW4gPSAzOCxcXHQubWF4ID0gMzgsXFxuK1xcdFxcdH0sXFxuK1xcdFxcdC5saW1pdHNbSVBBX1JTUkNfR1JPVVBfU1JDX1VSTExDXSA9IHtcXG4rXFx0XFx0XFx0Lm1pbiA9IDE2LFxcdC5tYXggPSAxNixcXG4rXFx0XFx0fSxcXG4rXFx0fSxcXG4rfTtcXG4rXFxuKy8qIERlc3RpbmF0aW9uIHJlc291cmNlIGNvbmZpZ3VyYXRpb24gZGF0YSBmb3IgYW4gU29DIGhhdmluZyBJUEEgdjUuMSAqL1xcbitzdGF0aWMgY29uc3Qgc3RydWN0IGlwYV9yZXNvdXJjZSBpcGFfcmVzb3VyY2VfZHN0W10gPSB7XFxuK1xcdFtJUEFfUkVTT1VSQ0VfVFlQRV9EU1RfREFUQV9TRUNUT1JTXSA9IHtcXG4rXFx0XFx0LmxpbWl0c1tJUEFfUlNSQ19HUk9VUF9EU1RfVUxdID0ge1xcbitcXHRcXHRcXHQubWluID0gNixcXHQubWF4ID0gNixcXG4rXFx0XFx0fSxcXG4rXFx0XFx0LmxpbWl0c1tJUEFfUlNSQ19HUk9VUF9EU1RfRExdID0ge1xcbitcXHRcXHRcXHQubWluID0gNSxcXHQubWF4ID0gNSxcXG4rXFx0XFx0fSxcXG4rXFx0XFx0LmxpbWl0c1tJUEFfUlNSQ19HUk9VUF9EU1RfRFJCX0lQXSA9IHtcXG4rXFx0XFx0XFx0Lm1pbiA9IDM5LFxcdC5tYXggPSAzOSxcXG4rXFx0XFx0fSxcXG4rXFx0fSxcXG4rXFx0W0lQQV9SRVNPVVJDRV9UWVBFX0RTVF9EUFNfRE1BUlNdID0ge1xcbitcXHRcXHQubGltaXRzW0lQQV9SU1JDX0dST1VQX0RTVF9VTF0gPSB7XFxuK1xcdFxcdFxcdC5taW4gPSAwLFxcdC5tYXggPSAzLFxcbitcXHRcXHR9LFxcbitcXHRcXHQubGltaXRzW0lQQV9SU1JDX0dST1VQX0RTVF9ETF0gPSB7XFxuK1xcdFxcdFxcdC5taW4gPSAwLFxcdC5tYXggPSAzLFxcbitcXHRcXHR9LFxcbitcXHR9LFxcbitcXHRbSVBBX1JFU09VUkNFX1RZUEVfRFNUX1VMU09fU0VHTUVOVFNdID0ge1xcbitcXHRcXHQubGltaXRzW0lQQV9SU1JDX0dST1VQX0RTVF9VTF0gPSB7XFxuK1xcdFxcdFxcdC5taW4gPSAwLFxcdC5tYXggPSA2MyxcXG4rXFx0XFx0fSxcXG4rXFx0XFx0LmxpbWl0c1tJUEFfUlNSQ19HUk9VUF9EU1RfRExdID0ge1xcbitcXHRcXHRcXHQubWluID0gMCxcXHQubWF4ID0gNjMsXFxuK1xcdFxcdH0sXFxuK1xcdH0sXFxuK307XFxuK1xcbisvKiBSZXNvdXJjZSBjb25maWd1cmF0aW9uIGRhdGEgZm9yIGFuIFNvQyBoYXZpbmcgSVBBIHY1LjEgKi9cXG4rc3RhdGljIGNvbnN0IHN0cnVjdCBpcGFfcmVzb3VyY2VfZGF0YSBpcGFfcmVzb3VyY2VfZGF0YSA9IHtcXG4rXFx0LnJzcmNfZ3JvdXBfZHN0X2NvdW50XFx0PSBJUEFfUlNSQ19HUk9VUF9EU1RfQ09VTlQsXFxuK1xcdC5yc3JjX2dyb3VwX3NyY19jb3VudFxcdD0gSVBBX1JTUkNfR1JPVVBfU1JDX0NPVU5ULFxcbitcXHQucmVzb3VyY2Vfc3JjX2NvdW50XFx0PSBBUlJBWV9TSVpFKGlwYV9yZXNvdXJjZV9zcmMpLFxcbitcXHQucmVzb3VyY2Vfc3JjXFx0XFx0PSBpcGFfcmVzb3VyY2Vfc3JjLFxcbitcXHQucmVzb3VyY2VfZHN0X2NvdW50XFx0PSBBUlJBWV9TSVpFKGlwYV9yZXNvdXJjZV9kc3QpLFxcbitcXHQucmVzb3VyY2VfZHN0XFx0XFx0PSBpcGFfcmVzb3VyY2VfZHN0LFxcbit9O1xcbitcXG4rLyogSVBBLXJlc2lkZW50IG1lbW9yeSByZWdpb24gZGF0YSBmb3IgYW4gU29DIGhhdmluZyBJUEEgdjUuMSAqL1xcbitzdGF0aWMgY29uc3Qgc3RydWN0IGlwYV9tZW0gaXBhX21lbV9sb2NhbF9kYXRhW10gPSB7XFxuK1xcdHtcXG4rXFx0XFx0LmlkXFx0XFx0PSBJUEFfTUVNX1VDX0VWRU5UX1JJTkcsXFxuK1xcdFxcdC5vZmZzZXRcXHRcXHQ9IDB4MDAwMCxcXG4rXFx0XFx0LnNpemVcXHRcXHQ9IDB4MTAwMCxcXG4rXFx0XFx0LmNhbmFyeV9jb3VudFxcdD0gMCxcXG4rXFx0fSxcXG4rXFx0e1xcbitcXHRcXHQuaWRcXHRcXHQ9IElQQV9NRU1fVUNfU0hBUkVELFxcbitcXHRcXHQub2Zmc2V0XFx0XFx0PSAweDEwMDAsXFxuK1xcdFxcdC5zaXplXFx0XFx0PSAweDAwODAsXFxuK1xcdFxcdC5jYW5hcnlfY291bnRcXHQ9IDAsXFxuK1xcdH0sXFxuK1xcdHtcXG4rXFx0XFx0LmlkXFx0XFx0PSBJUEFfTUVNX1VDX0lORk8sXFxuK1xcdFxcdC5vZmZzZXRcXHRcXHQ9IDB4MTA4MCxcXG4rXFx0XFx0LnNpemVcXHRcXHQ9IDB4MDIwMCxcXG4rXFx0XFx0LmNhbmFyeV9jb3VudFxcdD0gMCxcXG4rXFx0fSxcXG4rXFx0e1xcbitcXHRcXHQuaWRcXHRcXHQ9IElQQV9NRU1fVjRfRklMVEVSX0hBU0hFRCxcXG4rXFx0XFx0Lm9mZnNldFxcdFxcdD0gMHgxMjg4LFxcbitcXHRcXHQuc2l6ZVxcdFxcdD0gMHgwMDc4LFxcbitcXHRcXHQuY2FuYXJ5X2NvdW50XFx0PSAyLFxcbitcXHR9LFxcbitcXHR7XFxuK1xcdFxcdC5pZFxcdFxcdD0gSVBBX01FTV9WNF9GSUxURVIsXFxuK1xcdFxcdC5vZmZzZXRcXHRcXHQ9IDB4MTMwOCxcXG4rXFx0XFx0LnNpemVcXHRcXHQ9IDB4MDA3OCxcXG4rXFx0XFx0LmNhbmFyeV9jb3VudFxcdD0gMixcXG4rXFx0fSxcXG4rXFx0e1xcbitcXHRcXHQuaWRcXHRcXHQ9IElQQV9NRU1fVjZfRklMVEVSX0hBU0hFRCxcXG4rXFx0XFx0Lm9mZnNldFxcdFxcdD0gMHgxMzg4LFxcbitcXHRcXHQuc2l6ZVxcdFxcdD0gMHgwMDc4LFxcbitcXHRcXHQuY2FuYXJ5X2NvdW50XFx0PSAyLFxcbitcXHR9LFxcbitcXHR7XFxuK1xcdFxcdC5pZFxcdFxcdD0gSVBBX01FTV9WNl9GSUxURVIsXFxuK1xcdFxcdC5vZmZzZXRcXHRcXHQ9IDB4MTQwOCxcXG4rXFx0XFx0LnNpemVcXHRcXHQ9IDB4MDA3OCxcXG4rXFx0XFx0LmNhbmFyeV9jb3VudFxcdD0gMixcXG4rXFx0fSxcXG4rXFx0e1xcbitcXHRcXHQuaWRcXHRcXHQ9IElQQV9NRU1fVjRfUk9VVEVfSEFTSEVELFxcbitcXHRcXHQub2Zmc2V0XFx0XFx0PSAweDE0ODgsXFxuK1xcdFxcdC5zaXplXFx0XFx0PSAweDAwOTgsXFxuK1xcdFxcdC5jYW5hcnlfY291bnRcXHQ9IDIsXFxuK1xcdH0sXFxuK1xcdHtcXG4rXFx0XFx0LmlkXFx0XFx0PSBJUEFfTUVNX1Y0X1JPVVRFLFxcbitcXHRcXHQub2Zmc2V0XFx0XFx0PSAweDE1MjgsXFxuK1xcdFxcdC5zaXplXFx0XFx0PSAweDAwOTgsXFxuK1xcdFxcdC5jYW5hcnlfY291bnRcXHQ9IDIsXFxuK1xcdH0sXFxuK1xcdHtcXG4rXFx0XFx0LmlkXFx0XFx0PSBJUEFfTUVNX1Y2X1JPVVRFX0hBU0hFRCxcXG4rXFx0XFx0Lm9mZnNldFxcdFxcdD0gMHgxNWM4LFxcbitcXHRcXHQuc2l6ZVxcdFxcdD0gMHgwMDk4LFxcbitcXHRcXHQuY2FuYXJ5X2NvdW50XFx0PSAyLFxcbitcXHR9LFxcbitcXHR7XFxuK1xcdFxcdC5pZFxcdFxcdD0gSVBBX01FTV9WNl9ST1VURSxcXG4rXFx0XFx0Lm9mZnNldFxcdFxcdD0gMHgxNjY4LFxcbitcXHRcXHQuc2l6ZVxcdFxcdD0gMHgwMDk4LFxcbitcXHRcXHQuY2FuYXJ5X2NvdW50XFx0PSAyLFxcbitcXHR9LFxcbitcXHR7XFxuK1xcdFxcdC5pZFxcdFxcdD0gSVBBX01FTV9NT0RFTV9IRUFERVIsXFxuK1xcdFxcdC5vZmZzZXRcXHRcXHQ9IDB4MTcwOCxcXG4rXFx0XFx0LnNpemVcXHRcXHQ9IDB4MDI0MCxcXG4rXFx0XFx0LmNhbmFyeV9jb3VudFxcdD0gMixcXG4rXFx0fSxcXG4rXFx0e1xcbitcXHRcXHQuaWRcXHRcXHQ9IElQQV9NRU1fQVBfSEVBREVSLFxcbitcXHRcXHQub2Zmc2V0XFx0XFx0PSAweDE5NDgsXFxuK1xcdFxcdC5zaXplXFx0XFx0PSAweDAxZTAsXFxuK1xcdFxcdC5jYW5hcnlfY291bnRcXHQ9IDAsXFxuK1xcdH0sXFxuK1xcdHtcXG4rXFx0XFx0LmlkXFx0XFx0PSBJUEFfTUVNX01PREVNX1BST0NfQ1RYLFxcbitcXHRcXHQub2Zmc2V0XFx0XFx0PSAweDFiNDAsXFxuK1xcdFxcdC5zaXplXFx0XFx0PSAweDBiMjAsXFxuK1xcdFxcdC5jYW5hcnlfY291bnRcXHQ9IDIsXFxuK1xcdH0sXFxuK1xcdHtcXG4rXFx0XFx0LmlkXFx0XFx0PSBJUEFfTUVNX0FQX1BST0NfQ1RYLFxcbitcXHRcXHQub2Zmc2V0XFx0XFx0PSAweDI2NjAsXFxuK1xcdFxcdC5zaXplXFx0XFx0PSAweDAyMDAsXFxuK1xcdFxcdC5jYW5hcnlfY291bnRcXHQ9IDAsXFxuK1xcdH0sXFxuK1xcdHtcXG4rXFx0XFx0LmlkXFx0XFx0PSBJUEFfTUVNX1NUQVRTX1FVT1RBX01PREVNLFxcbitcXHRcXHQub2Zmc2V0XFx0XFx0PSAweDI4NjgsXFxuK1xcdFxcdC5zaXplXFx0XFx0PSAweDAwNjAsXFxuK1xcdFxcdC5jYW5hcnlfY291bnRcXHQ9IDIsXFxuK1xcdH0sXFxuK1xcdHtcXG4rXFx0XFx0LmlkXFx0XFx0PSBJUEFfTUVNX1NUQVRTX1FVT1RBX0FQLFxcbitcXHRcXHQub2Zmc2V0XFx0XFx0PSAweDI4YzgsXFxuK1xcdFxcdC5zaXplXFx0XFx0PSAweDAwNDgsXFxuK1xcdFxcdC5jYW5hcnlfY291bnRcXHQ9IDAsXFxuK1xcdH0sXFxuK1xcdHtcXG4rXFx0XFx0LmlkXFx0XFx0PSBJUEFfTUVNX1NUQVRTX1RFVEhFUklORyxcXG4rXFx0XFx0Lm9mZnNldFxcdFxcdD0gMHgyOTEwLFxcbitcXHRcXHQuc2l6ZVxcdFxcdD0gMHgwM2MwLFxcbitcXHRcXHQuY2FuYXJ5X2NvdW50XFx0PSAwLFxcbitcXHR9LFxcbitcXHR7XFxuK1xcdFxcdC5pZFxcdFxcdD0gSVBBX01FTV9BUF9WNF9GSUxURVIsXFxuK1xcdFxcdC5vZmZzZXRcXHRcXHQ9IDB4MjliOCxcXG4rXFx0XFx0LnNpemVcXHRcXHQ9IDB4MDE4OCxcXG4rXFx0XFx0LmNhbmFyeV9jb3VudFxcdD0gMixcXG4rXFx0fSxcXG4rXFx0e1xcbitcXHRcXHQuaWRcXHRcXHQ9IElQQV9NRU1fQVBfVjZfRklMVEVSLFxcbitcXHRcXHQub2Zmc2V0XFx0XFx0PSAweDJiNDAsXFxuK1xcdFxcdC5zaXplXFx0XFx0PSAweDAyMjgsXFxuK1xcdFxcdC5jYW5hcnlfY291bnRcXHQ9IDAsXFxuK1xcdH0sXFxuK1xcdHtcXG4rXFx0XFx0LmlkXFx0XFx0PSBJUEFfTUVNX1NUQVRTX0ZJTFRFUl9ST1VURSxcXG4rXFx0XFx0Lm9mZnNldFxcdFxcdD0gMHgyY2QwLFxcbitcXHRcXHQuc2l6ZVxcdFxcdD0gMHgwYmEwLFxcbitcXHRcXHQuY2FuYXJ5X2NvdW50XFx0PSAyLFxcbitcXHR9LFxcbitcXHR7XFxuK1xcdFxcdC5pZFxcdFxcdD0gSVBBX01FTV9TVEFUU19EUk9QLFxcbitcXHRcXHQub2Zmc2V0XFx0XFx0PSAweDM4NzAsXFxuK1xcdFxcdC5zaXplXFx0XFx0PSAweDAwMjAsXFxuK1xcdFxcdC5jYW5hcnlfY291bnRcXHQ9IDAsXFxuK1xcdH0sXFxuK1xcdHtcXG4rXFx0XFx0LmlkXFx0XFx0PSBJUEFfTUVNX01PREVNLFxcbitcXHRcXHQub2Zmc2V0XFx0XFx0PSAweDM4OTgsXFxuK1xcdFxcdC5zaXplXFx0XFx0PSAweDBkNDgsXFxuK1xcdFxcdC5jYW5hcnlfY291bnRcXHQ9IDIsXFxuK1xcdH0sXFxuK1xcdHtcXG4rXFx0XFx0LmlkXFx0XFx0PSBJUEFfTUVNX05BVF9UQUJMRSxcXG4rXFx0XFx0Lm9mZnNldFxcdFxcdD0gMHg0NWUwLFxcbitcXHRcXHQuc2l6ZVxcdFxcdD0gMHgwOTAwLFxcbitcXHRcXHQuY2FuYXJ5X2NvdW50XFx0PSAwLFxcbitcXHR9LFxcbitcXHR7XFxuK1xcdFxcdC5pZFxcdFxcdD0gSVBBX01FTV9QRE5fQ09ORklHLFxcbitcXHRcXHQub2Zmc2V0XFx0XFx0PSAweDRlZTgsXFxuK1xcdFxcdC5zaXplXFx0XFx0PSAweDAxMDAsXFxuK1xcdFxcdC5jYW5hcnlfY291bnRcXHQ9IDIsXFxuK1xcdH0sXFxuK307XFxuK1xcbisvKiBNZW1vcnkgY29uZmlndXJhdGlvbiBkYXRhIGZvciBhbiBTb0MgaGF2aW5nIElQQSB2NS4xICovXFxuK3N0YXRpYyBjb25zdCBzdHJ1Y3QgaXBhX21lbV9kYXRhIGlwYV9tZW1fZGF0YSA9IHtcXG4rXFx0LmxvY2FsX2NvdW50XFx0PSBBUlJBWV9TSVpFKGlwYV9tZW1fbG9jYWxfZGF0YSksXFxuK1xcdC5sb2NhbFxcdFxcdD0gaXBhX21lbV9sb2NhbF9kYXRhLFxcbitcXHQuaW1lbV9hZGRyXFx0PSAweDE0NmE4MDAwLFxcbitcXHQuaW1lbV9zaXplXFx0PSAweDAwMDAyMDAwLFxcbitcXHQvKlxcbitcXHQgKiBXaGlsZSB0aGlzIHZhbHVlIGlzIDB4YjAwMCBvbiBTTTg0NTAgYW5kIDB4OTAwMCBvbiBTTTg0NzUsXFxuK1xcdCAqIGl0IGhhcyBiZWVuIGxlZnQgc2V0IHRvIDB4OTAwMCBmb3IgY29tcGF0aWJpbGl0eSB3aXRoIFNNODQ3NVxcbitcXHQgKi9cXG4rXFx0LnNtZW1fc2l6ZVxcdD0gMHgwMDAwOTAwMCxcXG4rfTtcXG4rXFxuKy8qIEludGVyY29ubmVjdCByYXRlcyBhcmUgaW4gMTAwMCBieXRlL3NlY29uZCB1bml0cyAqL1xcbitzdGF0aWMgY29uc3Qgc3RydWN0IGlwYV9pbnRlcmNvbm5lY3RfZGF0YSBpcGFfaW50ZXJjb25uZWN0X2RhdGFbXSA9IHtcXG4rXFx0e1xcbitcXHRcXHQubmFtZVxcdFxcdFxcdD0gXFxcIm1lbW9yeVxcXCIsXFxuK1xcdFxcdC5wZWFrX2JhbmR3aWR0aFxcdFxcdD0gMTkwMDAwMCxcXHQvKiAxLjkgR0JwcyAqL1xcbitcXHRcXHQuYXZlcmFnZV9iYW5kd2lkdGhcXHQ9IDU5MDAwMCxcXHQvKiA1OTAgTUJwcyAqL1xcbitcXHR9LFxcbitcXHQvKiBBdmVyYWdlIHJhdGUgaXMgdW51c2VkIGZvciB0aGUgbmV4dCBpbnRlcmNvbm5lY3QgKi9cXG4rXFx0e1xcbitcXHRcXHQubmFtZVxcdFxcdFxcdD0gXFxcImNvbmZpZ1xcXCIsXFxuK1xcdFxcdC5wZWFrX2JhbmR3aWR0aFxcdFxcdD0gNzY4MDAsXFx0LyogNzYuOCBNQnBzICovXFxuK1xcdFxcdC5hdmVyYWdlX2JhbmR3aWR0aFxcdD0gMCxcXHRcXHQvKiB1bnVzZWQgKi9cXG4rXFx0fSxcXG4rfTtcXG4rXFxuKy8qIENsb2NrIGFuZCBpbnRlcmNvbm5lY3QgY29uZmlndXJhdGlvbiBkYXRhIGZvciBhbiBTb0MgaGF2aW5nIElQQSB2NS4xICovXFxuK3N0YXRpYyBjb25zdCBzdHJ1Y3QgaXBhX3Bvd2VyX2RhdGEgaXBhX3Bvd2VyX2RhdGEgPSB7XFxuK1xcdC5jb3JlX2Nsb2NrX3JhdGVcXHQ9IDEyMCAqIDEwMDAgKiAxMDAwLFxcdC8qIEh6ICovXFxuK1xcdC5pbnRlcmNvbm5lY3RfY291bnRcXHQ9IEFSUkFZX1NJWkUoaXBhX2ludGVyY29ubmVjdF9kYXRhKSxcXG4rXFx0LmludGVyY29ubmVjdF9kYXRhXFx0PSBpcGFfaW50ZXJjb25uZWN0X2RhdGEsXFxuK307XFxuK1xcbisvKiBDb25maWd1cmF0aW9uIGRhdGEgZm9yIGFuIFNvQyBoYXZpbmcgSVBBIHY1LjEuICovXFxuK2NvbnN0IHN0cnVjdCBpcGFfZGF0YSBpcGFfZGF0YV92NV8xID0ge1xcbitcXHQudmVyc2lvblxcdFxcdD0gSVBBX1ZFUlNJT05fNV8xLFxcbitcXHQucXNiX2NvdW50XFx0XFx0PSBBUlJBWV9TSVpFKGlwYV9xc2JfZGF0YSksXFxuK1xcdC5xc2JfZGF0YVxcdFxcdD0gaXBhX3FzYl9kYXRhLFxcbitcXHQubW9kZW1fcm91dGVfY291bnRcXHQ9IDExLFxcbitcXHQuZW5kcG9pbnRfY291bnRcXHRcXHQ9IEFSUkFZX1NJWkUoaXBhX2dzaV9lbmRwb2ludF9kYXRhKSxcXG4rXFx0LmVuZHBvaW50X2RhdGFcXHRcXHQ9IGlwYV9nc2lfZW5kcG9pbnRfZGF0YSxcXG4rXFx0LnJlc291cmNlX2RhdGFcXHRcXHQ9IFxcdTAwMjZpcGFfcmVzb3VyY2VfZGF0YSxcXG4rXFx0Lm1lbV9kYXRhXFx0XFx0PSBcXHUwMDI2aXBhX21lbV9kYXRhLFxcbitcXHQucG93ZXJfZGF0YVxcdFxcdD0gXFx1MDAyNmlwYV9wb3dlcl9kYXRhLFxcbit9O1xcbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9pcGEvZ3NpX3JlZy5jIGIvZHJpdmVycy9uZXQvaXBhL2dzaV9yZWcuY1xcbmluZGV4IGUxM2NmODM1YTAxM2M5Li5hNTcwNzJiYTRiZWY2ZiAxMDA2NDRcXG4tLS0gYS9kcml2ZXJzL25ldC9pcGEvZ3NpX3JlZy5jXFxuKysrIGIvZHJpdmVycy9uZXQvaXBhL2dzaV9yZWcuY1xcbkBAIC0xMTAsNiArMTEwLDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCByZWdzICpnc2lfcmVncyhzdHJ1Y3QgZ3NpICpnc2kpXFxuIFxcdFxcdHJldHVybiBcXHUwMDI2Z3NpX3JlZ3NfdjRfMTE7XFxuIFxcbiBcXHRjYXNlIElQQV9WRVJTSU9OXzVfMDpcXG4rXFx0Y2FzZSBJUEFfVkVSU0lPTl81XzE6XFxuIFxcdGNhc2UgSVBBX1ZFUlNJT05fNV8yOlxcbiBcXHRjYXNlIElQQV9WRVJTSU9OXzVfNTpcXG4gXFx0XFx0cmV0dXJuIFxcdTAwMjZnc2lfcmVnc192NV8wO1xcbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9pcGEvaXBhX2RhdGEuaCBiL2RyaXZlcnMvbmV0L2lwYS9pcGFfZGF0YS5oXFxuaW5kZXggM2ViOWRjMmNlMzM5OGQuLmZlNmY3ZDViZmU4OGM5IDEwMDY0NFxcbi0tLSBhL2RyaXZlcnMvbmV0L2lwYS9pcGFfZGF0YS5oXFxuKysrIGIvZHJpdmVycy9uZXQvaXBhL2lwYV9kYXRhLmhcXG5AQCAtMjUzLDYgKzI1Myw3IEBAIGV4dGVybiBjb25zdCBzdHJ1Y3QgaXBhX2RhdGEgaXBhX2RhdGFfdjRfNztcXG4gZXh0ZXJuIGNvbnN0IHN0cnVjdCBpcGFfZGF0YSBpcGFfZGF0YV92NF85O1xcbiBleHRlcm4gY29uc3Qgc3RydWN0IGlwYV9kYXRhIGlwYV9kYXRhX3Y0XzExO1xcbiBleHRlcm4gY29uc3Qgc3RydWN0IGlwYV9kYXRhIGlwYV9kYXRhX3Y1XzA7XFxuK2V4dGVybiBjb25zdCBzdHJ1Y3QgaXBhX2RhdGEgaXBhX2RhdGFfdjVfMTtcXG4gZXh0ZXJuIGNvbnN0IHN0cnVjdCBpcGFfZGF0YSBpcGFfZGF0YV92NV8yO1xcbiBleHRlcm4gY29uc3Qgc3RydWN0IGlwYV9kYXRhIGlwYV9kYXRhX3Y1XzU7XFxuIFxcbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9pcGEvaXBhX21haW4uYyBiL2RyaXZlcnMvbmV0L2lwYS9pcGFfbWFpbi5jXFxuaW5kZXggNzg4ZGQ5OWFmMmE0ZGMuLjZjNDQ5MDMyYWU0NTkyIDEwMDY0NFxcbi0tLSBhL2RyaXZlcnMvbmV0L2lwYS9pcGFfbWFpbi5jXFxuKysrIGIvZHJpdmVycy9uZXQvaXBhL2lwYV9tYWluLmNcXG5AQCAtNjY5LDYgKzY2OSwxMCBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IG9mX2RldmljZV9pZCBpcGFfbWF0Y2hbXSA9IHtcXG4gXFx0XFx0LmNvbXBhdGlibGVcXHQ9IFxcXCJxY29tLHNkeDY1LWlwYVxcXCIsXFxuIFxcdFxcdC5kYXRhXFx0XFx0PSBcXHUwMDI2aXBhX2RhdGFfdjVfMCxcXG4gXFx0fSxcXG4rXFx0e1xcbitcXHRcXHQuY29tcGF0aWJsZVxcdD0gXFxcInFjb20sc204NDUwLWlwYVxcXCIsXFxuK1xcdFxcdC5kYXRhXFx0XFx0PSBcXHUwMDI2aXBhX2RhdGFfdjVfMSxcXG4rXFx0fSxcXG4gXFx0e1xcbiBcXHRcXHQuY29tcGF0aWJsZVxcdD0gXFxcInFjb20sbWlsb3MtaXBhXFxcIixcXG4gXFx0XFx0LmRhdGFcXHRcXHQ9IFxcdTAwMjZpcGFfZGF0YV92NV8yLFxcbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9pcGEvaXBhX3JlZy5jIGIvZHJpdmVycy9uZXQvaXBhL2lwYV9yZWcuY1xcbmluZGV4IDMwYmQ2OWY0YzE0N2NkLi41ZjIyY2E2Mjk1YjE2NSAxMDA2NDRcXG4tLS0gYS9kcml2ZXJzL25ldC9pcGEvaXBhX3JlZy5jXFxuKysrIGIvZHJpdmVycy9uZXQvaXBhL2lwYV9yZWcuY1xcbkBAIC0xMjUsNiArMTI1LDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCByZWdzICppcGFfcmVncyhlbnVtIGlwYV92ZXJzaW9uIHZlcnNpb24pXFxuIFxcdGNhc2UgSVBBX1ZFUlNJT05fNF8xMTpcXG4gXFx0XFx0cmV0dXJuIFxcdTAwMjZpcGFfcmVnc192NF8xMTtcXG4gXFx0Y2FzZSBJUEFfVkVSU0lPTl81XzA6XFxuK1xcdGNhc2UgSVBBX1ZFUlNJT05fNV8xOlxcbiBcXHRjYXNlIElQQV9WRVJTSU9OXzVfMjpcXG4gXFx0XFx0cmV0dXJuIFxcdTAwMjZpcGFfcmVnc192NV8wO1xcbiBcXHRjYXNlIElQQV9WRVJTSU9OXzVfNTpcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDYtMjNUMDI6MDA6MjguMzc3Mjg3ODE4WiIsIlNlcSI6MiwiTmVzdGluZyI6MSwiVHlwZSI6ImFnZW50IiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjozMDEzOTI2OTcxMiwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBudWxsLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggYWRkcyBzdXBwb3J0IGZvciBhIG5ldyBoYXJkd2FyZSB2ZXJzaW9uICh2NS4xKSBvZiB0aGUgUXVhbGNvbW0gSVAgQWNjZWxlcmF0b3IgKElQQSkgZm9yIHRoZSBTTTg0NTAgU29DLiBJdCBvbmx5IGludHJvZHVjZXMgbmV3IGRhdGEgc3RydWN0dXJlcywgZGV2aWNlIHRyZWUgYmluZGluZ3MsIGFuZCByZWdpc3RlcnMgdGhlIG5ldyBjb21wYXRpYmxlIHN0cmluZy4gVGhlIElQQSBpcyBhIGhhcmR3YXJlIGJsb2NrIHNwZWNpZmljIHRvIFF1YWxjb21tIFNvQ3MgYW5kIGlzIG5vdCBlbXVsYXRlZCBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBRRU1VIG9yIEdDRSwgbWFraW5nIHRoaXMgY29kZSB1bnJlYWNoYWJsZSBhbmQgdW50ZXN0YWJsZSBkdXJpbmcgZnV6emluZy5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogZmFsc2Vcbn0iLCJJbnN0cnVjdGlvbiI6IllvdSBhcmUgYW4gZXhwZXJ0IExpbnV4IGtlcm5lbCBtYWludGFpbmVyLlxuWW91ciBqb2IgaXMgdG8gcmV2aWV3IGEgcHJvdmlkZWQgcGF0Y2ggc2VyaWVzIGFuZCBkZXRlcm1pbmVcbmlmIGl0IG1ha2VzIGZ1bmN0aW9uYWwgY2hhbmdlcyB0byB0aGUga2VybmVsIHRoYXQgc2hvdWxkIGJlIGZ1enplZC5cblxuSU1QT1JUQU5UOiBUaGUgY2hhbmdlcyBoYXZlIEFMUkVBRFkgYmVlbiBhcHBsaWVkIGFuZCBjb21taXR0ZWQgYXMgdGhlIEhFQUQgY29tbWl0IGluXG55b3VyIHdvcmtzcGFjZS4gRG8gTk9UIHJlbHkgb24geW91ciBpbnRlcm5hbCBrbm93bGVkZ2Ugb2YgdGhlIGtlcm5lbC4gWW91IG11c3QgYWN0aXZlbHlcbnVzZSB5b3VyIGNvZGUgYWNjZXNzIHRvb2xzIHRvIGV4YW1pbmUgdGhlIGFjdHVhbCBzb3VyY2UgY29kZSBhbmQgY29uZmlybSBhbnkgYXNzdW1wdGlvbnMuXG5cblJldHVybiBXb3J0aEZ1enppbmc9ZmFsc2UgaWYgdGhlIHBhdGNoIG9ubHkgY29udGFpbnM6XG4tIE1vZGlmaWNhdGlvbnMgdG8gRG9jdW1lbnRhdGlvbi8sIEtjb25maWcgZmlsZXMsIG9yIGNvZGUgY29tbWVudHMuXG4tIFB1cmVseSBkZWNvcmF0aXZlIGNoYW5nZXMsIHN1Y2ggYXMgbG9nZ2luZyAoZS5nLiwgcHJfZXJyLCBwcmludGspIG9yIHRyYWNlcG9pbnRzLlxuLSBDaGFuZ2VzIHRvIG51bWVyaWMgY29uc3RhbnRzIG9yIG1hY3JvcyB0aGF0IGRvIG5vdCBmdW5jdGlvbmFsbHkgYWx0ZXIgZXhlY3V0aW9uIGZsb3cuXG4tIENvZGUgcGF0aHMgdGhhdCBhcmUgaW1wb3NzaWJsZSB0byByZWFjaCBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBHQ0Ugb3IgUUVNVSxcbmV2ZW4gd2hlbiB1dGlsaXppbmcgc29mdHdhcmUtZW11bGF0ZWQgaGFyZHdhcmUgKGUuZy4sIHVzYiBnYWRnZXQsIG1hYzgwMjExX2h3c2ltKS5cblxuSWYgaXQgbW9kaWZpZXMgcmVhY2hhYmxlIGNvcmUga2VybmVsIGxvZ2ljLCBkcml2ZXJzLCBvciBhcmNoaXRlY3R1cmVzLCB1c2UgeW91ciBjb2RlIHNlYXJjaFxudG9vbHMgdG8gdmVyaWZ5IHRoZSBjb2RlIGNhbiBiZSBleGVjdXRlZCwgdGhlbiByZXR1cm4gV29ydGhGdXp6aW5nPXRydWUuXG5cbldoZW4gcmV0dXJuaW5nIFdvcnRoRnV6emluZz10cnVlLCB5b3UgTVVTVCBBTFNPOlxuMS4gRXh0cmFjdCBhbnkgc3BlY2lmaWMga2VybmVsIGZ1bmN0aW9ucyB0aGF0IHNob3VsZCBiZSBoZWF2aWx5IGZ1enplZCBpbnRvIEZvY3VzU3ltYm9scy5cbiAgIEF2b2lkIGxpc3RpbmcgZ2VuZXJpYyBob3QtcGF0aCBmdW5jdGlvbnMgdG8gcHJldmVudCBza2V3ZWQgdGVzdCBkaXN0cmlidXRpb25zLlxuMi4gSWRlbnRpZnkgYW55IHNwZWNpZmljIENPTkZJR18gb3B0aW9ucyByZXF1aXJlZCB0byBwcm9wZXJseSB0ZXN0IHRoaXMgbmV3L21vZGlmaWVkIGZlYXR1cmUuXG4gICBHbyBhbmQgbG9vayBpbnRvIHRoZSBLY29uZmlnIGZpbGVzIGFuZCBjaGVjayBmb3IgaWZkZWZzIGFyb3VuZCB0aGUgY29kZSwgZG8gbm90IG1ha2UgYXNzdW1wdGlvbnMuXG4gICBEbyBub3QgbGlzdCB0b28gZ2VuZXJpYyBjb25maWdzICh3ZSBhbHJlYWR5IGhhdmUgdGhlbSBlbmFibGVkKS4gT25seSBsaXN0IHRob3NlIHRoYXRcbiAgIHNwZWNpZmljYWxseSBjb3ZlciB0aGUgbW9kaWZpZWQgY29kZS4gTGlzdCB0aGVtIGluIHRoZSBFbmFibGVDb25maWdzIG91dHB1dCBhcnJheSxcbiAgIGFuZCBETyBOT1QgYWRkIGEgJ0NPTkZJR18nIHByZWZpeCAoZS5nLiwgcmV0dXJuIFwiTkVUX0lQVjRcIiBpbnN0ZWFkIG9mIFwiQ09ORklHX05FVF9JUFY0XCIpLlxuUHJlZmVyIGNhbGxpbmcgc2V2ZXJhbCB0b29scyBhdCB0aGUgc2FtZSB0aW1lIHRvIHNhdmUgcm91bmQtdHJpcHMuXG5cblxuVXNlIHNldC1yZXN1bHRzIHRvb2wgdG8gcHJvdmlkZSByZXN1bHRzIG9mIHRoZSBhbmFseXNpcy5cbkl0IG11c3QgYmUgY2FsbGVkIGV4YWN0bHkgb25jZSBiZWZvcmUgdGhlIGZpbmFsIHJlcGx5LlxuSWdub3JlIHJlc3VsdHMgb2YgdGhpcyB0b29sLlxuIiwiUHJvbXB0IjoiRm9yIHlvdXIgY29udmVuaWVuY2UsIGhlcmUgaXMgdGhlIGRpZmYgb2YgdGhlIGNoYW5nZXM6XG5jb21taXQgZGQyZGRmMTA3NTBiMGVmNDNhZmE2MGFhZTZmMTFhN2ZjNDUyMzhjY1xuQXV0aG9yOiBzeXotY2x1c3RlciBcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVx1MDAzZVxuRGF0ZTogICBUdWUgSnVuIDIzIDAyOjAwOjI2IDIwMjYgKzAwMDBcblxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xuXG5kaWZmIC0tZ2l0IGEvRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9xY29tLGlwYS55YW1sIGIvRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9xY29tLGlwYS55YW1sXG5pbmRleCA2OGVjNzZmZTQ0NzM1Ni4uZGI5MWJmYWFmODMzMmUgMTAwNjQ0XG4tLS0gYS9Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L3Fjb20saXBhLnlhbWxcbisrKyBiL0RvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvcWNvbSxpcGEueWFtbFxuQEAgLTUzLDYgKzUzLDcgQEAgcHJvcGVydGllczpcbiAgICAgICAgICAgLSBxY29tLHNkeDY1LWlwYVxuICAgICAgICAgICAtIHFjb20sc202MzUwLWlwYVxuICAgICAgICAgICAtIHFjb20sc204MzUwLWlwYVxuKyAgICAgICAgICAtIHFjb20sc204NDUwLWlwYVxuICAgICAgICAgICAtIHFjb20sc204NTUwLWlwYVxuICAgICAgIC0gaXRlbXM6XG4gICAgICAgICAgIC0gZW51bTpcbmRpZmYgLS1naXQgYS9hcmNoL2FybTY0L2Jvb3QvZHRzL3Fjb20vc204NDUwLmR0c2kgYi9hcmNoL2FybTY0L2Jvb3QvZHRzL3Fjb20vc204NDUwLmR0c2lcbmluZGV4IDU2Y2I2ZTk1OWU0ZWUyLi5jOTA0NzIwMDA4ZmFjNyAxMDA2NDRcbi0tLSBhL2FyY2gvYXJtNjQvYm9vdC9kdHMvcWNvbS9zbTg0NTAuZHRzaVxuKysrIGIvYXJjaC9hcm02NC9ib290L2R0cy9xY29tL3NtODQ1MC5kdHNpXG5AQCAtMjYzOSw2ICsyNjM5LDQ3IEBAIGFkcmVub19zbW11OiBpb21tdUAzZGEwMDAwIHtcbiBcdFx0XHRkbWEtY29oZXJlbnQ7XG4gXHRcdH07XG4gXG4rXHRcdGlwYTogaXBhQDNmNDAwMDAge1xuK1x0XHRcdGNvbXBhdGlibGUgPSBcInFjb20sc204NDUwLWlwYVwiO1xuK1xuK1x0XHRcdGlvbW11cyA9IFx1MDAzY1x1MDAyNmFwcHNfc21tdSAweDVjMCAweDBcdTAwM2UsXG4rXHRcdFx0XHQgXHUwMDNjXHUwMDI2YXBwc19zbW11IDB4NWMyIDB4MFx1MDAzZTtcbitcdFx0XHRyZWcgPSBcdTAwM2MwIDB4M2Y0MDAwMCAwIDB4MTAwMDBcdTAwM2UsXG4rXHRcdFx0ICAgICAgXHUwMDNjMCAweDNmNTAwMDAgMCAweDUwMDBcdTAwM2UsXG4rXHRcdFx0ICAgICAgXHUwMDNjMCAweDNlMDQwMDAgMCAweGZjMDAwXHUwMDNlO1xuK1x0XHRcdHJlZy1uYW1lcyA9IFwiaXBhLXJlZ1wiLFxuK1x0XHRcdFx0ICAgIFwiaXBhLXNoYXJlZFwiLFxuK1x0XHRcdFx0ICAgIFwiZ3NpXCI7XG4rXG4rXHRcdFx0aW50ZXJydXB0cy1leHRlbmRlZCA9IFx1MDAzY1x1MDAyNmludGMgR0lDX1NQSSA2NTQgSVJRX1RZUEVfRURHRV9SSVNJTkdcdTAwM2UsXG4rXHRcdFx0XHRcdCAgICAgIFx1MDAzY1x1MDAyNmludGMgR0lDX1NQSSA0MzIgSVJRX1RZUEVfTEVWRUxfSElHSFx1MDAzZSxcbitcdFx0XHRcdFx0ICAgICAgXHUwMDNjXHUwMDI2aXBhX3NtcDJwX2luIDAgSVJRX1RZUEVfRURHRV9SSVNJTkdcdTAwM2UsXG4rXHRcdFx0XHRcdCAgICAgIFx1MDAzY1x1MDAyNmlwYV9zbXAycF9pbiAxIElSUV9UWVBFX0VER0VfUklTSU5HXHUwMDNlO1xuK1x0XHRcdGludGVycnVwdC1uYW1lcyA9IFwiaXBhXCIsXG4rXHRcdFx0XHRcdCAgXCJnc2lcIixcbitcdFx0XHRcdFx0ICBcImlwYS1jbG9jay1xdWVyeVwiLFxuK1x0XHRcdFx0XHQgIFwiaXBhLXNldHVwLXJlYWR5XCI7XG4rXG4rXHRcdFx0Y2xvY2tzID0gXHUwMDNjXHUwMDI2cnBtaGNjIFJQTUhfSVBBX0NMS1x1MDAzZTtcbitcdFx0XHRjbG9jay1uYW1lcyA9IFwiY29yZVwiO1xuK1xuK1x0XHRcdGludGVyY29ubmVjdHMgPSBcdTAwM2NcdTAwMjZhZ2dyZTJfbm9jIE1BU1RFUl9JUEEgMCBcdTAwMjZtY192aXJ0IFNMQVZFX0VCSTEgMFx1MDAzZSxcbitcdFx0XHRcdFx0XHUwMDNjXHUwMDI2Z2VtX25vYyBNQVNURVJfQVBQU1NfUFJPQyAwIFx1MDAyNmNvbmZpZ19ub2MgU0xBVkVfSVBBX0NGRyAwXHUwMDNlO1xuK1x0XHRcdGludGVyY29ubmVjdC1uYW1lcyA9IFwibWVtb3J5XCIsXG4rXHRcdFx0XHRcdCAgICAgXCJjb25maWdcIjtcbitcbitcdFx0XHRxY29tLHFtcCA9IFx1MDAzY1x1MDAyNmFvc3NfcW1wXHUwMDNlO1xuK1xuK1x0XHRcdHFjb20sc21lbS1zdGF0ZXMgPSBcdTAwM2NcdTAwMjZpcGFfc21wMnBfb3V0IDBcdTAwM2UsXG4rXHRcdFx0XHRcdCAgIFx1MDAzY1x1MDAyNmlwYV9zbXAycF9vdXQgMVx1MDAzZTtcbitcdFx0XHRxY29tLHNtZW0tc3RhdGUtbmFtZXMgPSBcImlwYS1jbG9jay1lbmFibGVkLXZhbGlkXCIsXG4rXHRcdFx0XHRcdFx0XCJpcGEtY2xvY2stZW5hYmxlZFwiO1xuK1xuK1x0XHRcdHNyYW0gPSBcdTAwM2NcdTAwMjZpcGFfbW9kZW1fdGFibGVzXHUwMDNlO1xuK1xuK1x0XHRcdHN0YXR1cyA9IFwiZGlzYWJsZWRcIjtcbitcdFx0fTtcbitcbiBcdFx0dXNiXzFfaHNwaHk6IHBoeUA4OGUzMDAwIHtcbiBcdFx0XHRjb21wYXRpYmxlID0gXCJxY29tLHNtODQ1MC11c2ItaHMtcGh5XCIsXG4gXHRcdFx0XHQgICAgIFwicWNvbSx1c2Itc25wcy1ocy03bm0tcGh5XCI7XG5AQCAtNDk3MCwxNyArNTAxMSwyMSBAQCBjdGlAMTM5MDAwMDAge1xuIFx0XHRcdGNsb2NrLW5hbWVzID0gXCJhcGJfcGNsa1wiO1xuIFx0XHR9O1xuIFxuLVx0XHRzcmFtQDE0NmFhMDAwIHtcbitcdFx0c3JhbUAxNDZhODAwMCB7XG4gXHRcdFx0Y29tcGF0aWJsZSA9IFwicWNvbSxzbTg0NTAtaW1lbVwiLCBcInN5c2NvblwiLCBcInNpbXBsZS1tZmRcIjtcbi1cdFx0XHRyZWcgPSBcdTAwM2MwIDB4MTQ2YWEwMDAgMCAweDEwMDBcdTAwM2U7XG4tXHRcdFx0cmFuZ2VzID0gXHUwMDNjMCAwIDB4MTQ2YWEwMDAgMHgxMDAwXHUwMDNlO1xuK1x0XHRcdHJlZyA9IFx1MDAzYzAgMHgxNDZhODAwMCAwIDB4MzAwMFx1MDAzZTtcbitcdFx0XHRyYW5nZXMgPSBcdTAwM2MwIDAgMHgxNDZhODAwMCAweDMwMDBcdTAwM2U7XG4gXG4gXHRcdFx0I2FkZHJlc3MtY2VsbHMgPSBcdTAwM2MxXHUwMDNlO1xuIFx0XHRcdCNzaXplLWNlbGxzID0gXHUwMDNjMVx1MDAzZTtcbiBcbi1cdFx0XHRwaWwtcmVsb2NAOTRjIHtcbitcdFx0XHRpcGFfbW9kZW1fdGFibGVzOiBtb2RlbS10YWJsZXNAMCB7XG4rXHRcdFx0XHRyZWcgPSBcdTAwM2MwIDB4MjAwMFx1MDAzZTtcbitcdFx0XHR9O1xuK1xuK1x0XHRcdHBpbC1yZWxvY0AyOTRjIHtcbiBcdFx0XHRcdGNvbXBhdGlibGUgPSBcInFjb20scGlsLXJlbG9jLWluZm9cIjtcbi1cdFx0XHRcdHJlZyA9IFx1MDAzYzB4OTRjIDB4YzhcdTAwM2U7XG4rXHRcdFx0XHRyZWcgPSBcdTAwM2MweDI5NGMgMHhjOFx1MDAzZTtcbiBcdFx0XHR9O1xuIFx0XHR9O1xuIFxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2lwYS9NYWtlZmlsZSBiL2RyaXZlcnMvbmV0L2lwYS9NYWtlZmlsZVxuaW5kZXggZTE0OGVjM2MxYTEwMTAuLmQ0OTk1YzJlOGNhMDIzIDEwMDY0NFxuLS0tIGEvZHJpdmVycy9uZXQvaXBhL01ha2VmaWxlXG4rKysgYi9kcml2ZXJzL25ldC9pcGEvTWFrZWZpbGVcbkBAIC03LDcgKzcsNyBAQCBJUEFfUkVHX1ZFUlNJT05TXHQ6PVx0My4xIDMuNS4xIDQuMiA0LjUgNC43IDQuOSA0LjExIDUuMCA1LjVcbiAjIFNvbWUgSVBBIHZlcnNpb25zIGNhbiByZXVzZSBhbm90aGVyIHNldCBvZiBHU0kgcmVnaXN0ZXIgZGVmaW5pdGlvbnMuXG4gR1NJX1JFR19WRVJTSU9OU1x0Oj1cdDMuMSAzLjUuMSA0LjAgNC41IDQuOSA0LjExIDUuMFxuIFxuLUlQQV9EQVRBX1ZFUlNJT05TXHQ6PVx0My4xIDMuNS4xIDQuMiA0LjUgNC43IDQuOSA0LjExIDUuMCA1LjIgNS41XG4rSVBBX0RBVEFfVkVSU0lPTlNcdDo9XHQzLjEgMy41LjEgNC4yIDQuNSA0LjcgNC45IDQuMTEgNS4wIDUuMSA1LjIgNS41XG4gXG4gb2JqLSQoQ09ORklHX1FDT01fSVBBKVx0Kz1cdGlwYS5vXG4gXG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvaXBhL2RhdGEvaXBhX2RhdGEtdjUuMS5jIGIvZHJpdmVycy9uZXQvaXBhL2RhdGEvaXBhX2RhdGEtdjUuMS5jXG5uZXcgZmlsZSBtb2RlIDEwMDY0NFxuaW5kZXggMDAwMDAwMDAwMDAwMDAuLjg1YjIxZWZhMTIyNGRiXG4tLS0gL2Rldi9udWxsXG4rKysgYi9kcml2ZXJzL25ldC9pcGEvZGF0YS9pcGFfZGF0YS12NS4xLmNcbkBAIC0wLDAgKzEsNDc3IEBAXG4rLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjBcbitcbisvKiBDb3B5cmlnaHQgKEMpIDIwMjMtMjAyNCBMaW5hcm8gTHRkLiAqL1xuKy8qIENvcHlyaWdodCAoQykgMjAyNiBFc3RlYmFuIFVycnV0aWEgXHUwMDNjZXN0ZXV3dUBwcm90b24ubWVcdTAwM2UgKi9cbitcbisjaW5jbHVkZSBcdTAwM2NsaW51eC9hcnJheV9zaXplLmhcdTAwM2VcbisjaW5jbHVkZSBcdTAwM2NsaW51eC9sb2cyLmhcdTAwM2VcbitcbisjaW5jbHVkZSBcIi4uL2lwYV9kYXRhLmhcIlxuKyNpbmNsdWRlIFwiLi4vaXBhX2VuZHBvaW50LmhcIlxuKyNpbmNsdWRlIFwiLi4vaXBhX21lbS5oXCJcbisjaW5jbHVkZSBcIi4uL2lwYV92ZXJzaW9uLmhcIlxuK1xuKy8qKiBlbnVtIGlwYV9yZXNvdXJjZV90eXBlIC0gSVBBIHJlc291cmNlIHR5cGVzIGZvciBhbiBTb0MgaGF2aW5nIElQQSB2NS4xICovXG4rZW51bSBpcGFfcmVzb3VyY2VfdHlwZSB7XG4rXHQvKiBTb3VyY2UgcmVzb3VyY2UgdHlwZXM7IGZpcnN0IG11c3QgaGF2ZSB2YWx1ZSAwICovXG4rXHRJUEFfUkVTT1VSQ0VfVFlQRV9TUkNfUEtUX0NPTlRFWFRTXHRcdD0gMCxcbitcdElQQV9SRVNPVVJDRV9UWVBFX1NSQ19ERVNDUklQVE9SX0xJU1RTLFxuK1x0SVBBX1JFU09VUkNFX1RZUEVfU1JDX0RFU0NSSVBUT1JfQlVGRixcbitcdElQQV9SRVNPVVJDRV9UWVBFX1NSQ19IUFNfRE1BUlMsXG4rXHRJUEFfUkVTT1VSQ0VfVFlQRV9TUkNfQUNLX0VOVFJJRVMsXG4rXG4rXHQvKiBEZXN0aW5hdGlvbiByZXNvdXJjZSB0eXBlczsgZmlyc3QgbXVzdCBoYXZlIHZhbHVlIDAgKi9cbitcdElQQV9SRVNPVVJDRV9UWVBFX0RTVF9EQVRBX1NFQ1RPUlNcdFx0PSAwLFxuK1x0SVBBX1JFU09VUkNFX1RZUEVfRFNUX0RQU19ETUFSUyxcbitcdElQQV9SRVNPVVJDRV9UWVBFX0RTVF9VTFNPX1NFR01FTlRTLFxuK307XG4rXG4rLyogUmVzb3VyY2UgZ3JvdXBzIHVzZWQgZm9yIGFuIFNvQyBoYXZpbmcgSVBBIHY1LjEgKi9cbitlbnVtIGlwYV9yc3JjX2dyb3VwX2lkIHtcbitcdC8qIFNvdXJjZSByZXNvdXJjZSBncm91cCBpZGVudGlmaWVycyAqL1xuK1x0SVBBX1JTUkNfR1JPVVBfU1JDX1VMXHRcdFx0XHQ9IDAsXG4rXHRJUEFfUlNSQ19HUk9VUF9TUkNfREwsXG4rXHRJUEFfUlNSQ19HUk9VUF9TUkNfVU5VU0VEXzIsXG4rXHRJUEFfUlNSQ19HUk9VUF9TUkNfVU5VU0VEXzMsXG4rXHRJUEFfUlNSQ19HUk9VUF9TUkNfVVJMTEMsXG4rXHRJUEFfUlNSQ19HUk9VUF9TUkNfVV9SWF9RQyxcbitcdElQQV9SU1JDX0dST1VQX1NSQ19DT1VOVCxcdC8qIExhc3QgaW4gc2V0OyBub3QgYSBzb3VyY2UgZ3JvdXAgKi9cbitcbitcdC8qIERlc3RpbmF0aW9uIHJlc291cmNlIGdyb3VwIGlkZW50aWZpZXJzICovXG4rXHRJUEFfUlNSQ19HUk9VUF9EU1RfVUxcdFx0XHRcdD0gMCxcbitcdElQQV9SU1JDX0dST1VQX0RTVF9ETCxcbitcdElQQV9SU1JDX0dST1VQX0RTVF9VTlVTRURfMixcbitcdElQQV9SU1JDX0dST1VQX0RTVF9VTlVTRURfMyxcbitcdElQQV9SU1JDX0dST1VQX0RTVF9VTlVTRURfNCxcbitcdElQQV9SU1JDX0dST1VQX0RTVF9VQyxcbitcdElQQV9SU1JDX0dST1VQX0RTVF9EUkJfSVAsXG4rXHRJUEFfUlNSQ19HUk9VUF9EU1RfQ09VTlQsXHQvKiBMYXN0OyBub3QgYSBkZXN0aW5hdGlvbiBncm91cCAqL1xuK307XG4rXG4rLyogUVNCIGNvbmZpZ3VyYXRpb24gZGF0YSBmb3IgYW4gU29DIGhhdmluZyBJUEEgdjUuMSAqL1xuK3N0YXRpYyBjb25zdCBzdHJ1Y3QgaXBhX3FzYl9kYXRhIGlwYV9xc2JfZGF0YVtdID0ge1xuK1x0W0lQQV9RU0JfTUFTVEVSX0REUl0gPSB7XG4rXHRcdC5tYXhfd3JpdGVzXHRcdD0gMCxcbitcdFx0Lm1heF9yZWFkc1x0XHQ9IDAsXHQvKiBubyBsaW1pdCAoaGFyZHdhcmUgbWF4KSAqL1xuK1x0XHQubWF4X3JlYWRzX2JlYXRzXHQ9IDAsXG4rXHR9LFxuK1x0W0lQQV9RU0JfTUFTVEVSX1BDSUVdID0ge1xuK1x0XHQubWF4X3dyaXRlc1x0XHQ9IDAsXG4rXHRcdC5tYXhfcmVhZHNcdFx0PSAwLFx0Lyogbm8gbGltaXQgKGhhcmR3YXJlIG1heCkgKi9cbitcdFx0Lm1heF9yZWFkc19iZWF0c1x0PSAwLFxuK1x0fSxcbit9O1xuK1xuKy8qIEVuZHBvaW50IGNvbmZpZ3VyYXRpb24gZGF0YSBmb3IgYW4gU29DIGhhdmluZyBJUEEgdjUuMSAqL1xuK3N0YXRpYyBjb25zdCBzdHJ1Y3QgaXBhX2dzaV9lbmRwb2ludF9kYXRhIGlwYV9nc2lfZW5kcG9pbnRfZGF0YVtdID0ge1xuK1x0W0lQQV9FTkRQT0lOVF9BUF9DT01NQU5EX1RYXSA9IHtcbitcdFx0LmVlX2lkXHRcdD0gR1NJX0VFX0FQLFxuK1x0XHQuY2hhbm5lbF9pZFx0PSAxMixcbitcdFx0LmVuZHBvaW50X2lkXHQ9IDE0LFxuK1x0XHQudG93YXJkX2lwYVx0PSB0cnVlLFxuK1x0XHQuY2hhbm5lbCA9IHtcbitcdFx0XHQudHJlX2NvdW50XHQ9IDI1NixcbitcdFx0XHQuZXZlbnRfY291bnRcdD0gMjU2LFxuK1x0XHRcdC50bHZfY291bnRcdD0gMjAsXG4rXHRcdH0sXG4rXHRcdC5lbmRwb2ludCA9IHtcbitcdFx0XHQuY29uZmlnID0ge1xuK1x0XHRcdFx0LnJlc291cmNlX2dyb3VwXHQ9IElQQV9SU1JDX0dST1VQX1NSQ19VTCxcbitcdFx0XHRcdC5kbWFfbW9kZVx0PSB0cnVlLFxuK1x0XHRcdFx0LmRtYV9lbmRwb2ludFx0PSBJUEFfRU5EUE9JTlRfQVBfTEFOX1JYLFxuK1x0XHRcdFx0LnR4ID0ge1xuK1x0XHRcdFx0XHQuc2VxX3R5cGUgPSBJUEFfU0VRX0RNQSxcbitcdFx0XHRcdH0sXG4rXHRcdFx0fSxcbitcdFx0fSxcbitcdH0sXG4rXHRbSVBBX0VORFBPSU5UX0FQX0xBTl9SWF0gPSB7XG4rXHRcdC5lZV9pZFx0XHQ9IEdTSV9FRV9BUCxcbitcdFx0LmNoYW5uZWxfaWRcdD0gMTMsXG4rXHRcdC5lbmRwb2ludF9pZFx0PSAxNixcbitcdFx0LnRvd2FyZF9pcGFcdD0gZmFsc2UsXG4rXHRcdC5jaGFubmVsID0ge1xuK1x0XHRcdC50cmVfY291bnRcdD0gMjU2LFxuK1x0XHRcdC5ldmVudF9jb3VudFx0PSAyNTYsXG4rXHRcdFx0LnRsdl9jb3VudFx0PSA5LFxuK1x0XHR9LFxuK1x0XHQuZW5kcG9pbnQgPSB7XG4rXHRcdFx0LmNvbmZpZyA9IHtcbitcdFx0XHRcdC5yZXNvdXJjZV9ncm91cFx0PSBJUEFfUlNSQ19HUk9VUF9EU1RfVUwsXG4rXHRcdFx0XHQuYWdncmVnYXRpb25cdD0gdHJ1ZSxcbitcdFx0XHRcdC5zdGF0dXNfZW5hYmxlXHQ9IHRydWUsXG4rXHRcdFx0XHQucnggPSB7XG4rXHRcdFx0XHRcdC5idWZmZXJfc2l6ZVx0PSA4MTkyLFxuK1x0XHRcdFx0XHQucGFkX2FsaWduXHQ9IGlsb2cyKHNpemVvZih1MzIpKSxcbitcdFx0XHRcdFx0LmFnZ3JfdGltZV9saW1pdCA9IDUwMCxcbitcdFx0XHRcdH0sXG4rXHRcdFx0fSxcbitcdFx0fSxcbitcdH0sXG4rXHRbSVBBX0VORFBPSU5UX0FQX01PREVNX1RYXSA9IHtcbitcdFx0LmVlX2lkXHRcdD0gR1NJX0VFX0FQLFxuK1x0XHQuY2hhbm5lbF9pZFx0PSAxMSxcbitcdFx0LmVuZHBvaW50X2lkXHQ9IDIsXG4rXHRcdC50b3dhcmRfaXBhXHQ9IHRydWUsXG4rXHRcdC5jaGFubmVsID0ge1xuK1x0XHRcdC50cmVfY291bnRcdD0gNTEyLFxuK1x0XHRcdC5ldmVudF9jb3VudFx0PSA1MTIsXG4rXHRcdFx0LnRsdl9jb3VudFx0PSAyNSxcbitcdFx0fSxcbitcdFx0LmVuZHBvaW50ID0ge1xuK1x0XHRcdC5maWx0ZXJfc3VwcG9ydFx0PSB0cnVlLFxuK1x0XHRcdC5jb25maWcgPSB7XG4rXHRcdFx0XHQucmVzb3VyY2VfZ3JvdXBcdD0gSVBBX1JTUkNfR1JPVVBfU1JDX1VMLFxuK1x0XHRcdFx0LmNoZWNrc3VtICAgICAgID0gdHJ1ZSxcbitcdFx0XHRcdC5xbWFwXHRcdD0gdHJ1ZSxcbitcdFx0XHRcdC5zdGF0dXNfZW5hYmxlXHQ9IHRydWUsXG4rXHRcdFx0XHQudHggPSB7XG4rXHRcdFx0XHRcdC5zZXFfdHlwZSA9IElQQV9TRVFfMl9QQVNTX1NLSVBfTEFTVF9VQyxcbitcdFx0XHRcdFx0LnN0YXR1c19lbmRwb2ludCA9XG4rXHRcdFx0XHRcdFx0SVBBX0VORFBPSU5UX01PREVNX0FQX1JYLFxuK1x0XHRcdFx0fSxcbitcdFx0XHR9LFxuK1x0XHR9LFxuK1x0fSxcbitcdFtJUEFfRU5EUE9JTlRfQVBfTU9ERU1fUlhdID0ge1xuK1x0XHQuZWVfaWRcdFx0PSBHU0lfRUVfQVAsXG4rXHRcdC5jaGFubmVsX2lkXHQ9IDEsXG4rXHRcdC5lbmRwb2ludF9pZFx0PSAyMyxcbitcdFx0LnRvd2FyZF9pcGFcdD0gZmFsc2UsXG4rXHRcdC5jaGFubmVsID0ge1xuK1x0XHRcdC50cmVfY291bnRcdD0gMjU2LFxuK1x0XHRcdC5ldmVudF9jb3VudFx0PSAyNTYsXG4rXHRcdFx0LnRsdl9jb3VudFx0PSA5LFxuK1x0XHR9LFxuK1x0XHQuZW5kcG9pbnQgPSB7XG4rXHRcdFx0LmNvbmZpZyA9IHtcbitcdFx0XHRcdC5yZXNvdXJjZV9ncm91cFx0PSBJUEFfUlNSQ19HUk9VUF9EU1RfVUwsXG4rXHRcdFx0XHQuY2hlY2tzdW0gICAgICAgPSB0cnVlLFxuK1x0XHRcdFx0LnFtYXBcdFx0PSB0cnVlLFxuK1x0XHRcdFx0LmFnZ3JlZ2F0aW9uXHQ9IHRydWUsXG4rXHRcdFx0XHQucnggPSB7XG4rXHRcdFx0XHRcdC5idWZmZXJfc2l6ZVx0PSA4MTkyLFxuK1x0XHRcdFx0XHQuYWdncl90aW1lX2xpbWl0ID0gNTAwLFxuK1x0XHRcdFx0XHQuYWdncl9jbG9zZV9lb2ZcdD0gdHJ1ZSxcbitcdFx0XHRcdH0sXG4rXHRcdFx0fSxcbitcdFx0fSxcbitcdH0sXG4rXHRbSVBBX0VORFBPSU5UX01PREVNX0FQX1RYXSA9IHtcbitcdFx0LmVlX2lkXHRcdD0gR1NJX0VFX01PREVNLFxuK1x0XHQuY2hhbm5lbF9pZFx0PSAwLFxuK1x0XHQuZW5kcG9pbnRfaWRcdD0gMTIsXG4rXHRcdC50b3dhcmRfaXBhXHQ9IHRydWUsXG4rXHRcdC5lbmRwb2ludCA9IHtcbitcdFx0XHQuZmlsdGVyX3N1cHBvcnRcdD0gdHJ1ZSxcbitcdFx0fSxcbitcdH0sXG4rXHRbSVBBX0VORFBPSU5UX01PREVNX0FQX1JYXSA9IHtcbitcdFx0LmVlX2lkXHRcdD0gR1NJX0VFX01PREVNLFxuK1x0XHQuY2hhbm5lbF9pZFx0PSA3LFxuK1x0XHQuZW5kcG9pbnRfaWRcdD0gMjEsXG4rXHRcdC50b3dhcmRfaXBhXHQ9IGZhbHNlLFxuK1x0fSxcbitcdFtJUEFfRU5EUE9JTlRfTU9ERU1fRExfTkxPX1RYXSA9IHtcbitcdFx0LmVlX2lkXHRcdD0gR1NJX0VFX01PREVNLFxuK1x0XHQuY2hhbm5lbF9pZFx0PSAyLFxuK1x0XHQuZW5kcG9pbnRfaWRcdD0gMTUsXG4rXHRcdC50b3dhcmRfaXBhXHQ9IHRydWUsXG4rXHRcdC5lbmRwb2ludCA9IHtcbitcdFx0XHQuZmlsdGVyX3N1cHBvcnRcdD0gdHJ1ZSxcbitcdFx0fSxcbitcdH0sXG4rfTtcbitcbisvKiBTb3VyY2UgcmVzb3VyY2UgY29uZmlndXJhdGlvbiBkYXRhIGZvciBhbiBTb0MgaGF2aW5nIElQQSB2NS4xICovXG4rc3RhdGljIGNvbnN0IHN0cnVjdCBpcGFfcmVzb3VyY2UgaXBhX3Jlc291cmNlX3NyY1tdID0ge1xuK1x0W0lQQV9SRVNPVVJDRV9UWVBFX1NSQ19QS1RfQ09OVEVYVFNdID0ge1xuK1x0XHQubGltaXRzW0lQQV9SU1JDX0dST1VQX1NSQ19VTF0gPSB7XG4rXHRcdFx0Lm1pbiA9IDcsXHQubWF4ID0gMTIsXG4rXHRcdH0sXG4rXHRcdC5saW1pdHNbSVBBX1JTUkNfR1JPVVBfU1JDX1VSTExDXSA9IHtcbitcdFx0XHQubWluID0gMSxcdC5tYXggPSA2MyxcbitcdFx0fSxcbitcdFx0LmxpbWl0c1tJUEFfUlNSQ19HUk9VUF9TUkNfVV9SWF9RQ10gPSB7XG4rXHRcdFx0Lm1pbiA9IDAsXHQubWF4ID0gNjMsXG4rXHRcdH0sXG4rXHR9LFxuK1x0W0lQQV9SRVNPVVJDRV9UWVBFX1NSQ19ERVNDUklQVE9SX0xJU1RTXSA9IHtcbitcdFx0LmxpbWl0c1tJUEFfUlNSQ19HUk9VUF9TUkNfVUxdID0ge1xuK1x0XHRcdC5taW4gPSAyMSxcdC5tYXggPSAyMSxcbitcdFx0fSxcbitcdFx0LmxpbWl0c1tJUEFfUlNSQ19HUk9VUF9TUkNfVVJMTENdID0ge1xuK1x0XHRcdC5taW4gPSAxMCxcdC5tYXggPSAxMCxcbitcdFx0fSxcbitcdH0sXG4rXHRbSVBBX1JFU09VUkNFX1RZUEVfU1JDX0RFU0NSSVBUT1JfQlVGRl0gPSB7XG4rXHRcdC5saW1pdHNbSVBBX1JTUkNfR1JPVVBfU1JDX1VMXSA9IHtcbitcdFx0XHQubWluID0gMzMsXHQubWF4ID0gMzMsXG4rXHRcdH0sXG4rXHRcdC5saW1pdHNbSVBBX1JTUkNfR1JPVVBfU1JDX1VSTExDXSA9IHtcbitcdFx0XHQubWluID0gMjAsXHQubWF4ID0gMjAsXG4rXHRcdH0sXG4rXHR9LFxuK1x0W0lQQV9SRVNPVVJDRV9UWVBFX1NSQ19IUFNfRE1BUlNdID0ge1xuK1x0XHQubGltaXRzW0lQQV9SU1JDX0dST1VQX1NSQ19VTF0gPSB7XG4rXHRcdFx0Lm1pbiA9IDAsXHQubWF4ID0gNjMsXG4rXHRcdH0sXG4rXHRcdC5saW1pdHNbSVBBX1JTUkNfR1JPVVBfU1JDX1VSTExDXSA9IHtcbitcdFx0XHQubWluID0gMSxcdC5tYXggPSA2MyxcbitcdFx0fSxcbitcdFx0LmxpbWl0c1tJUEFfUlNSQ19HUk9VUF9TUkNfVV9SWF9RQ10gPSB7XG4rXHRcdFx0Lm1pbiA9IDAsXHQubWF4ID0gNjMsXG4rXHRcdH0sXG4rXHR9LFxuK1x0W0lQQV9SRVNPVVJDRV9UWVBFX1NSQ19BQ0tfRU5UUklFU10gPSB7XG4rXHRcdC5saW1pdHNbSVBBX1JTUkNfR1JPVVBfU1JDX1VMXSA9IHtcbitcdFx0XHQubWluID0gMzgsXHQubWF4ID0gMzgsXG4rXHRcdH0sXG4rXHRcdC5saW1pdHNbSVBBX1JTUkNfR1JPVVBfU1JDX1VSTExDXSA9IHtcbitcdFx0XHQubWluID0gMTYsXHQubWF4ID0gMTYsXG4rXHRcdH0sXG4rXHR9LFxuK307XG4rXG4rLyogRGVzdGluYXRpb24gcmVzb3VyY2UgY29uZmlndXJhdGlvbiBkYXRhIGZvciBhbiBTb0MgaGF2aW5nIElQQSB2NS4xICovXG4rc3RhdGljIGNvbnN0IHN0cnVjdCBpcGFfcmVzb3VyY2UgaXBhX3Jlc291cmNlX2RzdFtdID0ge1xuK1x0W0lQQV9SRVNPVVJDRV9UWVBFX0RTVF9EQVRBX1NFQ1RPUlNdID0ge1xuK1x0XHQubGltaXRzW0lQQV9SU1JDX0dST1VQX0RTVF9VTF0gPSB7XG4rXHRcdFx0Lm1pbiA9IDYsXHQubWF4ID0gNixcbitcdFx0fSxcbitcdFx0LmxpbWl0c1tJUEFfUlNSQ19HUk9VUF9EU1RfRExdID0ge1xuK1x0XHRcdC5taW4gPSA1LFx0Lm1heCA9IDUsXG4rXHRcdH0sXG4rXHRcdC5saW1pdHNbSVBBX1JTUkNfR1JPVVBfRFNUX0RSQl9JUF0gPSB7XG4rXHRcdFx0Lm1pbiA9IDM5LFx0Lm1heCA9IDM5LFxuK1x0XHR9LFxuK1x0fSxcbitcdFtJUEFfUkVTT1VSQ0VfVFlQRV9EU1RfRFBTX0RNQVJTXSA9IHtcbitcdFx0LmxpbWl0c1tJUEFfUlNSQ19HUk9VUF9EU1RfVUxdID0ge1xuK1x0XHRcdC5taW4gPSAwLFx0Lm1heCA9IDMsXG4rXHRcdH0sXG4rXHRcdC5saW1pdHNbSVBBX1JTUkNfR1JPVVBfRFNUX0RMXSA9IHtcbitcdFx0XHQubWluID0gMCxcdC5tYXggPSAzLFxuK1x0XHR9LFxuK1x0fSxcbitcdFtJUEFfUkVTT1VSQ0VfVFlQRV9EU1RfVUxTT19TRUdNRU5UU10gPSB7XG4rXHRcdC5saW1pdHNbSVBBX1JTUkNfR1JPVVBfRFNUX1VMXSA9IHtcbitcdFx0XHQubWluID0gMCxcdC5tYXggPSA2MyxcbitcdFx0fSxcbitcdFx0LmxpbWl0c1tJUEFfUlNSQ19HUk9VUF9EU1RfRExdID0ge1xuK1x0XHRcdC5taW4gPSAwLFx0Lm1heCA9IDYzLFxuK1x0XHR9LFxuK1x0fSxcbit9O1xuK1xuKy8qIFJlc291cmNlIGNvbmZpZ3VyYXRpb24gZGF0YSBmb3IgYW4gU29DIGhhdmluZyBJUEEgdjUuMSAqL1xuK3N0YXRpYyBjb25zdCBzdHJ1Y3QgaXBhX3Jlc291cmNlX2RhdGEgaXBhX3Jlc291cmNlX2RhdGEgPSB7XG4rXHQucnNyY19ncm91cF9kc3RfY291bnRcdD0gSVBBX1JTUkNfR1JPVVBfRFNUX0NPVU5ULFxuK1x0LnJzcmNfZ3JvdXBfc3JjX2NvdW50XHQ9IElQQV9SU1JDX0dST1VQX1NSQ19DT1VOVCxcbitcdC5yZXNvdXJjZV9zcmNfY291bnRcdD0gQVJSQVlfU0laRShpcGFfcmVzb3VyY2Vfc3JjKSxcbitcdC5yZXNvdXJjZV9zcmNcdFx0PSBpcGFfcmVzb3VyY2Vfc3JjLFxuK1x0LnJlc291cmNlX2RzdF9jb3VudFx0PSBBUlJBWV9TSVpFKGlwYV9yZXNvdXJjZV9kc3QpLFxuK1x0LnJlc291cmNlX2RzdFx0XHQ9IGlwYV9yZXNvdXJjZV9kc3QsXG4rfTtcbitcbisvKiBJUEEtcmVzaWRlbnQgbWVtb3J5IHJlZ2lvbiBkYXRhIGZvciBhbiBTb0MgaGF2aW5nIElQQSB2NS4xICovXG4rc3RhdGljIGNvbnN0IHN0cnVjdCBpcGFfbWVtIGlwYV9tZW1fbG9jYWxfZGF0YVtdID0ge1xuK1x0e1xuK1x0XHQuaWRcdFx0PSBJUEFfTUVNX1VDX0VWRU5UX1JJTkcsXG4rXHRcdC5vZmZzZXRcdFx0PSAweDAwMDAsXG4rXHRcdC5zaXplXHRcdD0gMHgxMDAwLFxuK1x0XHQuY2FuYXJ5X2NvdW50XHQ9IDAsXG4rXHR9LFxuK1x0e1xuK1x0XHQuaWRcdFx0PSBJUEFfTUVNX1VDX1NIQVJFRCxcbitcdFx0Lm9mZnNldFx0XHQ9IDB4MTAwMCxcbitcdFx0LnNpemVcdFx0PSAweDAwODAsXG4rXHRcdC5jYW5hcnlfY291bnRcdD0gMCxcbitcdH0sXG4rXHR7XG4rXHRcdC5pZFx0XHQ9IElQQV9NRU1fVUNfSU5GTyxcbitcdFx0Lm9mZnNldFx0XHQ9IDB4MTA4MCxcbitcdFx0LnNpemVcdFx0PSAweDAyMDAsXG4rXHRcdC5jYW5hcnlfY291bnRcdD0gMCxcbitcdH0sXG4rXHR7XG4rXHRcdC5pZFx0XHQ9IElQQV9NRU1fVjRfRklMVEVSX0hBU0hFRCxcbitcdFx0Lm9mZnNldFx0XHQ9IDB4MTI4OCxcbitcdFx0LnNpemVcdFx0PSAweDAwNzgsXG4rXHRcdC5jYW5hcnlfY291bnRcdD0gMixcbitcdH0sXG4rXHR7XG4rXHRcdC5pZFx0XHQ9IElQQV9NRU1fVjRfRklMVEVSLFxuK1x0XHQub2Zmc2V0XHRcdD0gMHgxMzA4LFxuK1x0XHQuc2l6ZVx0XHQ9IDB4MDA3OCxcbitcdFx0LmNhbmFyeV9jb3VudFx0PSAyLFxuK1x0fSxcbitcdHtcbitcdFx0LmlkXHRcdD0gSVBBX01FTV9WNl9GSUxURVJfSEFTSEVELFxuK1x0XHQub2Zmc2V0XHRcdD0gMHgxMzg4LFxuK1x0XHQuc2l6ZVx0XHQ9IDB4MDA3OCxcbitcdFx0LmNhbmFyeV9jb3VudFx0PSAyLFxuK1x0fSxcbitcdHtcbitcdFx0LmlkXHRcdD0gSVBBX01FTV9WNl9GSUxURVIsXG4rXHRcdC5vZmZzZXRcdFx0PSAweDE0MDgsXG4rXHRcdC5zaXplXHRcdD0gMHgwMDc4LFxuK1x0XHQuY2FuYXJ5X2NvdW50XHQ9IDIsXG4rXHR9LFxuK1x0e1xuK1x0XHQuaWRcdFx0PSBJUEFfTUVNX1Y0X1JPVVRFX0hBU0hFRCxcbitcdFx0Lm9mZnNldFx0XHQ9IDB4MTQ4OCxcbitcdFx0LnNpemVcdFx0PSAweDAwOTgsXG4rXHRcdC5jYW5hcnlfY291bnRcdD0gMixcbitcdH0sXG4rXHR7XG4rXHRcdC5pZFx0XHQ9IElQQV9NRU1fVjRfUk9VVEUsXG4rXHRcdC5vZmZzZXRcdFx0PSAweDE1MjgsXG4rXHRcdC5zaXplXHRcdD0gMHgwMDk4LFxuK1x0XHQuY2FuYXJ5X2NvdW50XHQ9IDIsXG4rXHR9LFxuK1x0e1xuK1x0XHQuaWRcdFx0PSBJUEFfTUVNX1Y2X1JPVVRFX0hBU0hFRCxcbitcdFx0Lm9mZnNldFx0XHQ9IDB4MTVjOCxcbitcdFx0LnNpemVcdFx0PSAweDAwOTgsXG4rXHRcdC5jYW5hcnlfY291bnRcdD0gMixcbitcdH0sXG4rXHR7XG4rXHRcdC5pZFx0XHQ9IElQQV9NRU1fVjZfUk9VVEUsXG4rXHRcdC5vZmZzZXRcdFx0PSAweDE2NjgsXG4rXHRcdC5zaXplXHRcdD0gMHgwMDk4LFxuK1x0XHQuY2FuYXJ5X2NvdW50XHQ9IDIsXG4rXHR9LFxuK1x0e1xuK1x0XHQuaWRcdFx0PSBJUEFfTUVNX01PREVNX0hFQURFUixcbitcdFx0Lm9mZnNldFx0XHQ9IDB4MTcwOCxcbitcdFx0LnNpemVcdFx0PSAweDAyNDAsXG4rXHRcdC5jYW5hcnlfY291bnRcdD0gMixcbitcdH0sXG4rXHR7XG4rXHRcdC5pZFx0XHQ9IElQQV9NRU1fQVBfSEVBREVSLFxuK1x0XHQub2Zmc2V0XHRcdD0gMHgxOTQ4LFxuK1x0XHQuc2l6ZVx0XHQ9IDB4MDFlMCxcbitcdFx0LmNhbmFyeV9jb3VudFx0PSAwLFxuK1x0fSxcbitcdHtcbitcdFx0LmlkXHRcdD0gSVBBX01FTV9NT0RFTV9QUk9DX0NUWCxcbitcdFx0Lm9mZnNldFx0XHQ9IDB4MWI0MCxcbitcdFx0LnNpemVcdFx0PSAweDBiMjAsXG4rXHRcdC5jYW5hcnlfY291bnRcdD0gMixcbitcdH0sXG4rXHR7XG4rXHRcdC5pZFx0XHQ9IElQQV9NRU1fQVBfUFJPQ19DVFgsXG4rXHRcdC5vZmZzZXRcdFx0PSAweDI2NjAsXG4rXHRcdC5zaXplXHRcdD0gMHgwMjAwLFxuK1x0XHQuY2FuYXJ5X2NvdW50XHQ9IDAsXG4rXHR9LFxuK1x0e1xuK1x0XHQuaWRcdFx0PSBJUEFfTUVNX1NUQVRTX1FVT1RBX01PREVNLFxuK1x0XHQub2Zmc2V0XHRcdD0gMHgyODY4LFxuK1x0XHQuc2l6ZVx0XHQ9IDB4MDA2MCxcbitcdFx0LmNhbmFyeV9jb3VudFx0PSAyLFxuK1x0fSxcbitcdHtcbitcdFx0LmlkXHRcdD0gSVBBX01FTV9TVEFUU19RVU9UQV9BUCxcbitcdFx0Lm9mZnNldFx0XHQ9IDB4MjhjOCxcbitcdFx0LnNpemVcdFx0PSAweDAwNDgsXG4rXHRcdC5jYW5hcnlfY291bnRcdD0gMCxcbitcdH0sXG4rXHR7XG4rXHRcdC5pZFx0XHQ9IElQQV9NRU1fU1RBVFNfVEVUSEVSSU5HLFxuK1x0XHQub2Zmc2V0XHRcdD0gMHgyOTEwLFxuK1x0XHQuc2l6ZVx0XHQ9IDB4MDNjMCxcbitcdFx0LmNhbmFyeV9jb3VudFx0PSAwLFxuK1x0fSxcbitcdHtcbitcdFx0LmlkXHRcdD0gSVBBX01FTV9BUF9WNF9GSUxURVIsXG4rXHRcdC5vZmZzZXRcdFx0PSAweDI5YjgsXG4rXHRcdC5zaXplXHRcdD0gMHgwMTg4LFxuK1x0XHQuY2FuYXJ5X2NvdW50XHQ9IDIsXG4rXHR9LFxuK1x0e1xuK1x0XHQuaWRcdFx0PSBJUEFfTUVNX0FQX1Y2X0ZJTFRFUixcbitcdFx0Lm9mZnNldFx0XHQ9IDB4MmI0MCxcbitcdFx0LnNpemVcdFx0PSAweDAyMjgsXG4rXHRcdC5jYW5hcnlfY291bnRcdD0gMCxcbitcdH0sXG4rXHR7XG4rXHRcdC5pZFx0XHQ9IElQQV9NRU1fU1RBVFNfRklMVEVSX1JPVVRFLFxuK1x0XHQub2Zmc2V0XHRcdD0gMHgyY2QwLFxuK1x0XHQuc2l6ZVx0XHQ9IDB4MGJhMCxcbitcdFx0LmNhbmFyeV9jb3VudFx0PSAyLFxuK1x0fSxcbitcdHtcbitcdFx0LmlkXHRcdD0gSVBBX01FTV9TVEFUU19EUk9QLFxuK1x0XHQub2Zmc2V0XHRcdD0gMHgzODcwLFxuK1x0XHQuc2l6ZVx0XHQ9IDB4MDAyMCxcbitcdFx0LmNhbmFyeV9jb3VudFx0PSAwLFxuK1x0fSxcbitcdHtcbitcdFx0LmlkXHRcdD0gSVBBX01FTV9NT0RFTSxcbitcdFx0Lm9mZnNldFx0XHQ9IDB4Mzg5OCxcbitcdFx0LnNpemVcdFx0PSAweDBkNDgsXG4rXHRcdC5jYW5hcnlfY291bnRcdD0gMixcbitcdH0sXG4rXHR7XG4rXHRcdC5pZFx0XHQ9IElQQV9NRU1fTkFUX1RBQkxFLFxuK1x0XHQub2Zmc2V0XHRcdD0gMHg0NWUwLFxuK1x0XHQuc2l6ZVx0XHQ9IDB4MDkwMCxcbitcdFx0LmNhbmFyeV9jb3VudFx0PSAwLFxuK1x0fSxcbitcdHtcbitcdFx0LmlkXHRcdD0gSVBBX01FTV9QRE5fQ09ORklHLFxuK1x0XHQub2Zmc2V0XHRcdD0gMHg0ZWU4LFxuK1x0XHQuc2l6ZVx0XHQ9IDB4MDEwMCxcbitcdFx0LmNhbmFyeV9jb3VudFx0PSAyLFxuK1x0fSxcbit9O1xuK1xuKy8qIE1lbW9yeSBjb25maWd1cmF0aW9uIGRhdGEgZm9yIGFuIFNvQyBoYXZpbmcgSVBBIHY1LjEgKi9cbitzdGF0aWMgY29uc3Qgc3RydWN0IGlwYV9tZW1fZGF0YSBpcGFfbWVtX2RhdGEgPSB7XG4rXHQubG9jYWxfY291bnRcdD0gQVJSQVlfU0laRShpcGFfbWVtX2xvY2FsX2RhdGEpLFxuK1x0LmxvY2FsXHRcdD0gaXBhX21lbV9sb2NhbF9kYXRhLFxuK1x0LmltZW1fYWRkclx0PSAweDE0NmE4MDAwLFxuK1x0LmltZW1fc2l6ZVx0PSAweDAwMDAyMDAwLFxuK1x0LypcbitcdCAqIFdoaWxlIHRoaXMgdmFsdWUgaXMgMHhiMDAwIG9uIFNNODQ1MCBhbmQgMHg5MDAwIG9uIFNNODQ3NSxcbitcdCAqIGl0IGhhcyBiZWVuIGxlZnQgc2V0IHRvIDB4OTAwMCBmb3IgY29tcGF0aWJpbGl0eSB3aXRoIFNNODQ3NVxuK1x0ICovXG4rXHQuc21lbV9zaXplXHQ9IDB4MDAwMDkwMDAsXG4rfTtcbitcbisvKiBJbnRlcmNvbm5lY3QgcmF0ZXMgYXJlIGluIDEwMDAgYnl0ZS9zZWNvbmQgdW5pdHMgKi9cbitzdGF0aWMgY29uc3Qgc3RydWN0IGlwYV9pbnRlcmNvbm5lY3RfZGF0YSBpcGFfaW50ZXJjb25uZWN0X2RhdGFbXSA9IHtcbitcdHtcbitcdFx0Lm5hbWVcdFx0XHQ9IFwibWVtb3J5XCIsXG4rXHRcdC5wZWFrX2JhbmR3aWR0aFx0XHQ9IDE5MDAwMDAsXHQvKiAxLjkgR0JwcyAqL1xuK1x0XHQuYXZlcmFnZV9iYW5kd2lkdGhcdD0gNTkwMDAwLFx0LyogNTkwIE1CcHMgKi9cbitcdH0sXG4rXHQvKiBBdmVyYWdlIHJhdGUgaXMgdW51c2VkIGZvciB0aGUgbmV4dCBpbnRlcmNvbm5lY3QgKi9cbitcdHtcbitcdFx0Lm5hbWVcdFx0XHQ9IFwiY29uZmlnXCIsXG4rXHRcdC5wZWFrX2JhbmR3aWR0aFx0XHQ9IDc2ODAwLFx0LyogNzYuOCBNQnBzICovXG4rXHRcdC5hdmVyYWdlX2JhbmR3aWR0aFx0PSAwLFx0XHQvKiB1bnVzZWQgKi9cbitcdH0sXG4rfTtcbitcbisvKiBDbG9jayBhbmQgaW50ZXJjb25uZWN0IGNvbmZpZ3VyYXRpb24gZGF0YSBmb3IgYW4gU29DIGhhdmluZyBJUEEgdjUuMSAqL1xuK3N0YXRpYyBjb25zdCBzdHJ1Y3QgaXBhX3Bvd2VyX2RhdGEgaXBhX3Bvd2VyX2RhdGEgPSB7XG4rXHQuY29yZV9jbG9ja19yYXRlXHQ9IDEyMCAqIDEwMDAgKiAxMDAwLFx0LyogSHogKi9cbitcdC5pbnRlcmNvbm5lY3RfY291bnRcdD0gQVJSQVlfU0laRShpcGFfaW50ZXJjb25uZWN0X2RhdGEpLFxuK1x0LmludGVyY29ubmVjdF9kYXRhXHQ9IGlwYV9pbnRlcmNvbm5lY3RfZGF0YSxcbit9O1xuK1xuKy8qIENvbmZpZ3VyYXRpb24gZGF0YSBmb3IgYW4gU29DIGhhdmluZyBJUEEgdjUuMS4gKi9cbitjb25zdCBzdHJ1Y3QgaXBhX2RhdGEgaXBhX2RhdGFfdjVfMSA9IHtcbitcdC52ZXJzaW9uXHRcdD0gSVBBX1ZFUlNJT05fNV8xLFxuK1x0LnFzYl9jb3VudFx0XHQ9IEFSUkFZX1NJWkUoaXBhX3FzYl9kYXRhKSxcbitcdC5xc2JfZGF0YVx0XHQ9IGlwYV9xc2JfZGF0YSxcbitcdC5tb2RlbV9yb3V0ZV9jb3VudFx0PSAxMSxcbitcdC5lbmRwb2ludF9jb3VudFx0XHQ9IEFSUkFZX1NJWkUoaXBhX2dzaV9lbmRwb2ludF9kYXRhKSxcbitcdC5lbmRwb2ludF9kYXRhXHRcdD0gaXBhX2dzaV9lbmRwb2ludF9kYXRhLFxuK1x0LnJlc291cmNlX2RhdGFcdFx0PSBcdTAwMjZpcGFfcmVzb3VyY2VfZGF0YSxcbitcdC5tZW1fZGF0YVx0XHQ9IFx1MDAyNmlwYV9tZW1fZGF0YSxcbitcdC5wb3dlcl9kYXRhXHRcdD0gXHUwMDI2aXBhX3Bvd2VyX2RhdGEsXG4rfTtcbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9pcGEvZ3NpX3JlZy5jIGIvZHJpdmVycy9uZXQvaXBhL2dzaV9yZWcuY1xuaW5kZXggZTEzY2Y4MzVhMDEzYzkuLmE1NzA3MmJhNGJlZjZmIDEwMDY0NFxuLS0tIGEvZHJpdmVycy9uZXQvaXBhL2dzaV9yZWcuY1xuKysrIGIvZHJpdmVycy9uZXQvaXBhL2dzaV9yZWcuY1xuQEAgLTExMCw2ICsxMTAsNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IHJlZ3MgKmdzaV9yZWdzKHN0cnVjdCBnc2kgKmdzaSlcbiBcdFx0cmV0dXJuIFx1MDAyNmdzaV9yZWdzX3Y0XzExO1xuIFxuIFx0Y2FzZSBJUEFfVkVSU0lPTl81XzA6XG4rXHRjYXNlIElQQV9WRVJTSU9OXzVfMTpcbiBcdGNhc2UgSVBBX1ZFUlNJT05fNV8yOlxuIFx0Y2FzZSBJUEFfVkVSU0lPTl81XzU6XG4gXHRcdHJldHVybiBcdTAwMjZnc2lfcmVnc192NV8wO1xuZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2lwYS9pcGFfZGF0YS5oIGIvZHJpdmVycy9uZXQvaXBhL2lwYV9kYXRhLmhcbmluZGV4IDNlYjlkYzJjZTMzOThkLi5mZTZmN2Q1YmZlODhjOSAxMDA2NDRcbi0tLSBhL2RyaXZlcnMvbmV0L2lwYS9pcGFfZGF0YS5oXG4rKysgYi9kcml2ZXJzL25ldC9pcGEvaXBhX2RhdGEuaFxuQEAgLTI1Myw2ICsyNTMsNyBAQCBleHRlcm4gY29uc3Qgc3RydWN0IGlwYV9kYXRhIGlwYV9kYXRhX3Y0Xzc7XG4gZXh0ZXJuIGNvbnN0IHN0cnVjdCBpcGFfZGF0YSBpcGFfZGF0YV92NF85O1xuIGV4dGVybiBjb25zdCBzdHJ1Y3QgaXBhX2RhdGEgaXBhX2RhdGFfdjRfMTE7XG4gZXh0ZXJuIGNvbnN0IHN0cnVjdCBpcGFfZGF0YSBpcGFfZGF0YV92NV8wO1xuK2V4dGVybiBjb25zdCBzdHJ1Y3QgaXBhX2RhdGEgaXBhX2RhdGFfdjVfMTtcbiBleHRlcm4gY29uc3Qgc3RydWN0IGlwYV9kYXRhIGlwYV9kYXRhX3Y1XzI7XG4gZXh0ZXJuIGNvbnN0IHN0cnVjdCBpcGFfZGF0YSBpcGFfZGF0YV92NV81O1xuIFxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2lwYS9pcGFfbWFpbi5jIGIvZHJpdmVycy9uZXQvaXBhL2lwYV9tYWluLmNcbmluZGV4IDc4OGRkOTlhZjJhNGRjLi42YzQ0OTAzMmFlNDU5MiAxMDA2NDRcbi0tLSBhL2RyaXZlcnMvbmV0L2lwYS9pcGFfbWFpbi5jXG4rKysgYi9kcml2ZXJzL25ldC9pcGEvaXBhX21haW4uY1xuQEAgLTY2OSw2ICs2NjksMTAgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBvZl9kZXZpY2VfaWQgaXBhX21hdGNoW10gPSB7XG4gXHRcdC5jb21wYXRpYmxlXHQ9IFwicWNvbSxzZHg2NS1pcGFcIixcbiBcdFx0LmRhdGFcdFx0PSBcdTAwMjZpcGFfZGF0YV92NV8wLFxuIFx0fSxcbitcdHtcbitcdFx0LmNvbXBhdGlibGVcdD0gXCJxY29tLHNtODQ1MC1pcGFcIixcbitcdFx0LmRhdGFcdFx0PSBcdTAwMjZpcGFfZGF0YV92NV8xLFxuK1x0fSxcbiBcdHtcbiBcdFx0LmNvbXBhdGlibGVcdD0gXCJxY29tLG1pbG9zLWlwYVwiLFxuIFx0XHQuZGF0YVx0XHQ9IFx1MDAyNmlwYV9kYXRhX3Y1XzIsXG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvaXBhL2lwYV9yZWcuYyBiL2RyaXZlcnMvbmV0L2lwYS9pcGFfcmVnLmNcbmluZGV4IDMwYmQ2OWY0YzE0N2NkLi41ZjIyY2E2Mjk1YjE2NSAxMDA2NDRcbi0tLSBhL2RyaXZlcnMvbmV0L2lwYS9pcGFfcmVnLmNcbisrKyBiL2RyaXZlcnMvbmV0L2lwYS9pcGFfcmVnLmNcbkBAIC0xMjUsNiArMTI1LDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCByZWdzICppcGFfcmVncyhlbnVtIGlwYV92ZXJzaW9uIHZlcnNpb24pXG4gXHRjYXNlIElQQV9WRVJTSU9OXzRfMTE6XG4gXHRcdHJldHVybiBcdTAwMjZpcGFfcmVnc192NF8xMTtcbiBcdGNhc2UgSVBBX1ZFUlNJT05fNV8wOlxuK1x0Y2FzZSBJUEFfVkVSU0lPTl81XzE6XG4gXHRjYXNlIElQQV9WRVJTSU9OXzVfMjpcbiBcdFx0cmV0dXJuIFx1MDAyNmlwYV9yZWdzX3Y1XzA7XG4gXHRjYXNlIElQQV9WRVJTSU9OXzVfNTpcbiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA2LTIzVDAyOjAwOjI4LjM3NzI4OTk3OFoiLCJTZXEiOjMsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjYzNjk3MjU3MjMsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqQXNzZXNzaW5nIHRoZSBJUEEgdjUuMSBQYXRjaCBmb3IgRnV6emluZyBSZWxldmFuY2UqKlxuXG5Pa2F5LCBzbyBJJ3ZlIGdvdCB0aGlzIHBhdGNoIHNlcmllcyBpbiBmcm9udCBvZiBtZSwgYW5kIG15IGltbWVkaWF0ZSBjb25jZXJuIGlzIHdoZXRoZXIgaXQgaW50cm9kdWNlcyBhbnkgZnVuY3Rpb25hbCBjaGFuZ2VzIHRvIHRoZSBrZXJuZWwgdGhhdCB3YXJyYW50IGZ1cnRoZXIgZnV6emluZyBlZmZvcnRzLiBUaGUgcGF0Y2ggc2VlbXMgZm9jdXNlZCBvbiBhZGRpbmcgc3VwcG9ydCBmb3IgYSBuZXcgdmVyc2lvbiBvZiB0aGUgUXVhbGNvbW0gSVBBLCBzcGVjaWZpY2FsbHkgYHFjb20sc204NDUwLWlwYWAgb3IgSVBBIHY1LjEuIFRoYXQncyBhIGRlZmluaXRlIGluZGljYXRvciB0aGF0IHdlIG5lZWQgdG8gcGF5IGF0dGVudGlvbi5cblxuTG9va2luZyBhdCB0aGUgZmlsZSBsaXN0LCB3ZSdyZSBzZWVpbmcgbW9kaWZpY2F0aW9ucyB0byBkZXZpY2UgdHJlZSBiaW5kaW5ncywgdGhlIERUUyBpdHNlbGYgZm9yIHRoZSBgc204NDUwYCBwbGF0Zm9ybSwgTWFrZWZpbGVzLCBhbmQsIGNydWNpYWxseSwgYSBuZXcgYGlwYV9kYXRhLXY1LjEuY2AgZmlsZSBhbG9uZyB3aXRoIGNoYW5nZXMgdG8gZXhpc3RpbmcgZHJpdmVyIHNvdXJjZSBmaWxlcy4gVGhlIGNoYW5nZXMgYXBwZWFyIHRvIGJlIGhlYXZpbHkgY2VudGVyZWQgYXJvdW5kIGRhdGEgc3RydWN0dXJlcywgaW50ZWdyYXRpbmcgdGhpcyBuZXcgSVBBIHZlcnNpb24gaW50byB0aGUgZHJpdmVyJ3MgbWF0Y2ggdGFibGVzLCBhbmQsIGFzIGV4cGVjdGVkLCB1cGRhdGluZyBib3RoIHRoZSBEVCBiaW5kaW5ncyBhbmQgRFRTIHRvIHJlY29nbml6ZSB0aGUgbmV3IGhhcmR3YXJlLiBUaGUgSVBBIGRyaXZlciwgb2YgY291cnNlLCBpcyBzcGVjaWZpYyB0byBRdWFsY29tbSBTb0NzLlxuXG5Ob3csIHRoZSBiaWcgcXVlc3Rpb24gaXMsIGFyZSB0aGVzZSBjaGFuZ2VzIHJlYWNoYWJsZSBpbiBlbnZpcm9ubWVudHMgbGlrZSBHQ0Ugb3IgUUVNVT8gVHlwaWNhbGx5LCB0aGUgUXVhbGNvbW0gSVBBIGlzIGEgaGFyZHdhcmUgYWNjZWxlcmF0b3IsIGEgcGh5c2ljYWwgcGllY2Ugb2Ygc2lsaWNvbiBvbiB0aGUgU29DLiBUaGUgdGhpbmcgaXMsIGl0J3Mgbm90IGVtdWxhdGVkIGluIGVpdGhlciBRRU1VIG9yIEdDRS4gVGhpcyBtZWFucyByZWFjaGluZyB0aGlzIGNvZGUgaW4gYSBzdGFuZGFyZCB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudCBpcyBnb2luZyB0byBiZSBkaWZmaWN1bHQsIGlmIG5vdCBpbXBvc3NpYmxlLiBCdXQsIGJlZm9yZSBJIGRpc21pc3MgaXQgY29tcGxldGVseSwgSSBuZWVkIHRvIGJlICphYnNvbHV0ZWx5IHN1cmUqLiBJJ2xsIHVzZSBgZ3JlcHBlcmAgdG8gc2VlIGlmIHRoZXJlJ3MgYW55IG1lbnRpb24gb2Ygc29mdHdhcmUgZW11bGF0aW9uLCBhbnkgaG9va3MgdGhhdCBtaWdodCBiZSB1c2VkIHRvIHNpbXVsYXRlIGl0cyBmdW5jdGlvbmFsaXR5IGluIGFuIGFsdGVybmF0ZSBjb250ZXh0LiBXZSdsbCB2ZXJpZnkgdGhlcmUgYXJlIG5vIGZhbGxiYWNrcyBoZXJlLiBUaGVuLCB3ZSBjYW4gbWFrZSB0aGUgY2FsbC5cblxuXG4iLCJJbnB1dFRva2VucyI6MTAxODAsIk91dHB1dFRva2VucyI6MjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjozMzcsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNi0yM1QwMjowMDozNC43NDcwMTc1MDFaIiwiU2VxIjo0LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6Mjg0MjI5MjAzOSwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJDT05GSUdfUUNPTV9JUEFcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiYXJjaC9hcm02NC9jb25maWdzL2RlZmNvbmZpZz00NTk9Q09ORklHX1hJTElOWF9BWElfRU1BQz1tXFxuYXJjaC9hcm02NC9jb25maWdzL2RlZmNvbmZpZzo0NjA6Q09ORklHX1FDT01fSVBBPW1cXG5hcmNoL2FybTY0L2NvbmZpZ3MvZGVmY29uZmlnLTQ2MS1DT05GSUdfTUVTT05fR1hMX1BIWT1tXFxuLS1cXG5kcml2ZXJzL25ldC9NYWtlZmlsZT01NT1vYmotJChDT05GSUdfRkRESSkgKz0gZmRkaS9cXG5kcml2ZXJzL25ldC9NYWtlZmlsZTo1NjpvYmotJChDT05GSUdfUUNPTV9JUEEpICs9IGlwYS9cXG5kcml2ZXJzL25ldC9NYWtlZmlsZS01Ny1vYmotJChDT05GSUdfUExJUCkgKz0gcGxpcC9cXG4tLVxcbmRyaXZlcnMvbmV0L2lwYS9NYWtlZmlsZT0xMD1JUEFfREFUQV9WRVJTSU9OU1xcdDo9XFx0My4xIDMuNS4xIDQuMiA0LjUgNC43IDQuOSA0LjExIDUuMCA1LjEgNS4yIDUuNVxcbmRyaXZlcnMvbmV0L2lwYS9NYWtlZmlsZS0xMS1cXG5kcml2ZXJzL25ldC9pcGEvTWFrZWZpbGU6MTI6b2JqLSQoQ09ORklHX1FDT01fSVBBKVxcdCs9XFx0aXBhLm9cXG5kcml2ZXJzL25ldC9pcGEvTWFrZWZpbGUtMTMtXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA2LTIzVDAyOjAwOjM3LjU4OTMxNjNaIiwiU2VxIjo1LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo0OTE3NDA5NTk0LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJIZXJlJ3MgbXkgdGhvdWdodCBwcm9jZXNzLCBzdW1tYXJpemVkIGFzIHlvdSByZXF1ZXN0ZWQ6XG5cbioqS2NvbmZpZyBEaXZlIGZvciBRQ09NX0lQQSoqXG5cbkFscmlnaHQsIGxldCdzIGdldCBkb3duIHRvIGJyYXNzIHRhY2tzLiBNeSBpbml0aWFsIHRob3VnaHQgaXMgdG8gZGl2ZSBzdHJhaWdodCBpbnRvIHRoZSBgS2NvbmZpZ2AgZmlsZXMuIEkgbmVlZCB0byB1bmRlcnN0YW5kIHRoZSBjb25maWd1cmF0aW9uIG9wdGlvbnMgcmVsYXRlZCB0byBgUUNPTV9JUEFgLiBUaGlzIGlzIHRoZSBiZWRyb2NrOyBpdCdzIHdoZXJlIHRoZSBjb250cm9sIGZsYWdzIGFuZCBkZXBlbmRlbmNpZXMgZm9yIHRoaXMgZmVhdHVyZSBhcmUgbGFpZCBvdXQuIEkgd2FudCB0byBzZWU6XG5cbiogICAqKkl0cyBkZXBlbmRlbmNpZXM6KiogV2hhdCBvdGhlciBjb21wb25lbnRzIG9yIGZlYXR1cmVzIG11c3QgYmUgZW5hYmxlZCBmb3IgYFFDT01fSVBBYCB0byBldmVuIGJlIGNvbnNpZGVyZWQ/IEFyZSB0aGVyZSBzcGVjaWZpYyBRdWFsY29tbS1yZWxhdGVkIGZsYWdzLCBvdGhlciBJUEEgKElQIEFjY2VsZXJhdG9yKSBjb25maWd1cmF0aW9ucywgb3IgYnJvYWRlciBwbGF0Zm9ybSByZXF1aXJlbWVudHM/XG4qICAgKipJdHMgY29uZGl0aW9uYWxzOioqIFVuZGVyIHdoYXQgY2lyY3Vtc3RhbmNlcyBpcyBgUUNPTV9JUEFgIG1hZGUgYXZhaWxhYmxlPyBJcyBpdCB0aWVkIHRvIGEgc3BlY2lmaWMgYm9hcmQsIENQVSBhcmNoaXRlY3R1cmUsIG9yIGtlcm5lbCB2ZXJzaW9uPyBBcmUgdGhlcmUgYW55IGAjaWZkZWZgIHN0YXRlbWVudHMgb3Igc2ltaWxhciBsb2dpYyBJIG5lZWQgdG8gcGFyc2U/XG4qICAgKipJdHMgZGVmYXVsdCBzdGF0ZToqKiBJcyBgUUNPTV9JUEFgIGVuYWJsZWQgYnkgZGVmYXVsdCwgZGlzYWJsZWQsIG9yIHNldCB0byBzb21lIFwiYXV0b1wiIGNvbmZpZ3VyYXRpb24/IFRoaXMgd2lsbCBnaXZlIG1lIGEgY2x1ZSBhcyB0byBpdHMgaW50ZW5kZWQgdXNlIGFuZCBnZW5lcmFsIGRlc2lnbiBwaGlsb3NvcGh5LlxuKiAgICoqSXRzIGRlc2NyaXB0aW9uczoqKiBDcnVjaWFsbHksIHdoYXQgYXJlIHRoZSBoZWxwIHRleHRzIGFzc29jaWF0ZWQgd2l0aCB0aGlzIGNvbmZpZyBvcHRpb24/IFRoZXkgd2lsbCBsaWtlbHkgcHJvdmlkZSBtb3JlIGNvbnRleHQuIFdoYXQgZG9lcyBpdCAqZG8qIGFuZCB3aHkgc2hvdWxkIHNvbWVvbmUgZW5hYmxlIGl0PyBBbnkgY2F2ZWF0cyBvciB3YXJuaW5ncz9cbiogICAqKkl0cyBsb2NhdGlvbjoqKiBXaGVyZSBpcyB0aGlzIGNvbmZpZyBkZWZpbmVkPyBJcyBpdCBpbiB0aGUga2VybmVsIHRyZWUsIGEgdmVuZG9yLXNwZWNpZmljIHBhcnQsIG9yIGEgdGhpcmQtcGFydHkgbW9kdWxlPyBLbm93aW5nIGl0cyBsb2NhdGlvbiB3aWxsIGdpdmUgbWUgYSBsb3Qgb2YgY29udGV4dC5cblxuQmFzaWNhbGx5LCBJIGFtIG1hcHBpbmcgb3V0IHRoZSAqY29uZmlndXJhdGlvbiBsYW5kc2NhcGUqIGZvciBgUUNPTV9JUEFgLiBUaGlzIEtjb25maWcgaXMgYSBrZXkgdG8gdW5sb2NrIHRoZSBmZWF0dXJlLiBJdCdzIHRoZSBzdGFydGluZyBwb2ludCBiZWZvcmUgSSBtb3ZlIGFueSBmdXJ0aGVyLCB3aGV0aGVyIEkgbG9vayBhdCBzb3VyY2UgY29kZSwgYnVpbGQgc2NyaXB0cywgb3IgZGV2aWNlIHRyZWVzLiBJIHdhbnQgdG8gYnVpbGQgYSBjb21wcmVoZW5zaXZlIHBpY3R1cmUgb2YgaG93IHRoaXMgb3B0aW9uIGlzIGNvbnRyb2xsZWQsIGFuZCB3aGF0IGltcGFjdCBpdCBoYXMuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjExMTk0LCJPdXRwdXRUb2tlbnMiOjE5LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MTQsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDYtMjNUMDI6MDA6NDIuNTA2NzI5NTk0WiIsIlNlcSI6NiwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjI2MDI1NTY0NTQsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiY29uZmlnIFFDT01fSVBBXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImRyaXZlcnMvbmV0L2lwYS9LY29uZmlnOjE6Y29uZmlnIFFDT01fSVBBXFxuZHJpdmVycy9uZXQvaXBhL0tjb25maWctMi1cXHR0cmlzdGF0ZSBcXFwiUXVhbGNvbW0gSVBBIHN1cHBvcnRcXFwiXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA2LTIzVDAyOjAwOjQ1LjEwOTI5Njk0OFoiLCJTZXEiOjcsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjQ2OTYxNjMyNDksIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IkhlcmUncyBteSBhdHRlbXB0IGF0IHN1bW1hcml6aW5nIHRoZSB0aG91Z2h0IHByb2Nlc3MsIHRhaWxvcmVkIGZvciBhbiBleHBlcnQgYXVkaWVuY2U6XG5cbioqRGl2aW5nIGludG8gdGhlIElQQSBLY29uZmlnKipcblxuQWxyaWdodCwgbGV0J3MgcHVsbCB1cCBgZHJpdmVycy9uZXQvaXBhL0tjb25maWdgLiBUaW1lIHRvIGdldCBhIGhhbmRsZSBvbiB0aGUgY29uZmlndXJhdGlvbiBvcHRpb25zIGZvciB0aGUgSVBBIChJbnRlZ3JhdGVkIFBhY2tldCBBY2NlbGVyYXRvcikgZHJpdmVyLiBJIG5lZWQgdG8gdW5kZXJzdGFuZCBob3cgdGhpcyB0aGluZyBpcyBidWlsdCwgd2hhdCBmZWF0dXJlcyBhcmUgZXhwb3NlZCwgYW5kIGhvdyB0aGV54oCZcmUgY29udHJvbGxlZCB0aHJvdWdoIHRoZSBrZXJuZWwncyBjb25maWd1cmF0aW9uIHN5c3RlbS4gTXkgaW50dWl0aW9uIHNheXMgdGhpcyB3aWxsIHByb2JhYmx5IGJlIGEgY29tcGxleCBhbmQgbXVsdGlmYWNldGVkIHNldCBvZiBvcHRpb25zLCBnaXZlbiB0aGUgcm9sZSBvZiBoYXJkd2FyZSBhY2NlbGVyYXRpb24gaW4gbmV0d29ya2luZy4gSSdtIGV4cGVjdGluZyB0byBzZWUgZGVwZW5kZW5jaWVzIG9uIHRoZSBoYXJkd2FyZSBwbGF0Zm9ybSwgbGlrZWx5IEFSTS1zcGVjaWZpYyBmZWF0dXJlcywgYW5kIHBlcmhhcHMgZGlmZmVyZW50IGJ1aWxkIGNob2ljZXMgZm9yIGRpZmZlcmVudCBJUEEgY2FwYWJpbGl0aWVzOiBvZmZsb2FkLCBmaWx0ZXJpbmcsIFFvUywgYW5kIGFueSBvdGhlciB1bmlxdWUgY2FwYWJpbGl0aWVzIHRoaXMgc3BlY2lmaWMgSVAgYmxvY2sgaGFzLiBXZSBzaG91bGQgYWxzbyBsb29rIGZvciBvcHRpb25zIHRoYXQgY2FuIGluZmx1ZW5jZSBwZXJmb3JtYW5jZSwgbWVtb3J5IHVzYWdlLCBhbmQgZGVidWdnaW5nLCB3aGljaCBhcmUgY3JpdGljYWwgdHVuaW5nIHBhcmFtZXRlcnMuIEkgd2FudCB0byBzZWUgaG93IG1vZHVsYXIgdGhlIGRyaXZlciBpczsgd2hldGhlciB3ZSBjYW4gc2VsZWN0aXZlbHkgZW5hYmxlIHBvcnRpb25zIG9mIHRoZSBoYXJkd2FyZSBmdW5jdGlvbmFsaXR5IG9yIGlmIGl04oCZcyBtb3JlIG1vbm9saXRoaWMuIFRoZSBLY29uZmlnIGZpbGUgaXMgdGhlIGtleSB0byB1bmRlcnN0YW5kaW5nIGFsbCBvZiB0aGlzLlxuXG5cbiIsIklucHV0VG9rZW5zIjoxMTY4MSwiT3V0cHV0VG9rZW5zIjozNCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjE0LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA2LTIzVDAyOjAwOjQ5LjgwNTQ2NDQ1N1oiLCJTZXEiOjgsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6InJlYWQtZmlsZSIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjg0OTYwLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRmlsZVwiOiBcImRyaXZlcnMvbmV0L2lwYS9LY29uZmlnXCIsXG4gIFwiRmlyc3RMaW5lXCI6IDEsXG4gIFwiTGluZUNvdW50XCI6IDIwXG59IiwiUmVzdWx0cyI6IntcbiAgXCJDb250ZW50c1wiOiBcIiAgIDE6XFx0Y29uZmlnIFFDT01fSVBBXFxuICAgMjpcXHRcXHR0cmlzdGF0ZSBcXFwiUXVhbGNvbW0gSVBBIHN1cHBvcnRcXFwiXFxuICAgMzpcXHRcXHRkZXBlbmRzIG9uIE5FVCBcXHUwMDI2XFx1MDAyNiBRQ09NX1NNRU1cXG4gICA0OlxcdFxcdGRlcGVuZHMgb24gQVJDSF9RQ09NIHx8IENPTVBJTEVfVEVTVFxcbiAgIDU6XFx0XFx0ZGVwZW5kcyBvbiBJTlRFUkNPTk5FQ1RcXG4gICA2OlxcdFxcdGRlcGVuZHMgb24gUUNPTV9SUFJPQ19DT01NT04gfHwgKFFDT01fUlBST0NfQ09NTU9OPW4gXFx1MDAyNlxcdTAwMjYgQ09NUElMRV9URVNUKVxcbiAgIDc6XFx0XFx0ZGVwZW5kcyBvbiBRQ09NX0FPU1NfUU1QIHx8IFFDT01fQU9TU19RTVA9blxcbiAgIDg6XFx0XFx0c2VsZWN0IFFDT01fTURUX0xPQURFUlxcbiAgIDk6XFx0XFx0c2VsZWN0IFFDT01fU0NNXFxuICAxMDpcXHRcXHRzZWxlY3QgUUNPTV9RTUlfSEVMUEVSU1xcbiAgMTE6XFx0XFx0aGVscFxcbiAgMTI6XFx0XFx0ICBDaG9vc2UgWSBvciBNIGhlcmUgdG8gaW5jbHVkZSBzdXBwb3J0IGZvciB0aGUgUXVhbGNvbW1cXG4gIDEzOlxcdFxcdCAgSVAgQWNjZWxlcmF0b3IgKElQQSksIGEgaGFyZHdhcmUgYmxvY2sgcHJlc2VudCBpbiBzb21lXFxuICAxNDpcXHRcXHQgIFF1YWxjb21tIFNvQ3MuICBUaGUgSVBBIGlzIGEgcHJvZ3JhbW1hYmxlIHByb3RvY29sIHByb2Nlc3NvclxcbiAgMTU6XFx0XFx0ICB0aGF0IGlzIGNhcGFibGUgb2YgZ2VuZXJpYyBoYXJkd2FyZSBoYW5kbGluZyBvZiBJUCBwYWNrZXRzLFxcbiAgMTY6XFx0XFx0ICBpbmNsdWRpbmcgcm91dGluZywgZmlsdGVyaW5nLCBhbmQgTkFULiAgQ3VycmVudGx5IHRoZSBJUEFcXG4gIDE3OlxcdFxcdCAgZHJpdmVyIHN1cHBvcnRzIG9ubHkgYmFzaWMgdHJhbnNwb3J0IG9mIG5ldHdvcmsgdHJhZmZpY1xcbiAgMTg6XFx0XFx0ICBiZXR3ZWVuIHRoZSBBUCBhbmQgbW9kZW0uXFxuICAxOTpcXHRcXG4gIDIwOlxcdFxcdCAgTm90ZSB0aGF0IGlmIHNlbGVjdGVkLCB0aGUgc2VsZWN0aW9uIHR5cGUgbXVzdCBtYXRjaCB0aGF0XFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA2LTIzVDAyOjAwOjQ5LjgwNTU1MTA1N1oiLCJTZXEiOjksIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjg3MTA5NjkyOTMsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqV29ydGhGdXp6aW5nIEFzc2Vzc21lbnQ6IE5vLCBUaGlzIFBhdGNoIElzbid0IEZ1enphYmxlKipcblxuT2theSwgbGV0J3MgYnJlYWsgdGhpcyBkb3duLiBUaGlzIHBhdGNoIGlzIGFsbCBhYm91dCBhZGRpbmcgc3VwcG9ydCBmb3IgYSBuZXcgdmVyc2lvbiwgdjUuMSwgb2YgdGhlIFF1YWxjb21tIElQQSAoSVAgQWNjZWxlcmF0b3IpIGhhcmR3YXJlIGJsb2NrLCBzcGVjaWZpY2FsbHkgZm9yIHRoZSBTTTg0NTAgU29DLiBNeSB1bmRlcnN0YW5kaW5nIGlzIHRoYXQgdGhlIElQQSBpcyBhIHZlcnkgc3BlY2lmaWMgcGllY2Ugb2YgaGFyZHdhcmUgaW4gUXVhbGNvbW0gU29DcyDigJMgaXQncyBub3Qgc29tZXRoaW5nIHRoYXQgY2FuIGJlIGVtdWxhdGVkIGluIGVudmlyb25tZW50cyBsaWtlIFFFTVUgb3IgR29vZ2xlIENvbXB1dGUgRW5naW5lLiBUaGF0J3MgdGhlIGtleS5cblxuVGhpcyBwYXRjaCBpdHNlbGYgc2VlbXMgYmVuaWduLiBJJ20gc2VlaW5nIG5ldyBkYXRhIHN0cnVjdHVyZXMsIGRldmljZSB0cmVlIGJpbmRpbmdzLCBhbmQgdGhlIHJlZ2lzdHJhdGlvbiBvZiBhIG5ldyBcImNvbXBhdGlibGVcIiBzdHJpbmcuIFNvLCBpdCBhcHBlYXJzIHdlJ3JlIGp1c3Qgc2V0dGluZyB1cCB0aGUgc3lzdGVtIHRvIHJlY29nbml6ZSBhbmQgY29uZmlndXJlIHRoaXMgbmV3IGhhcmR3YXJlIHZlcnNpb24uIFRoZXJlJ3Mgbm8gZnVuY3Rpb25hbCBsb2dpYyBiZWluZyBpbnRyb2R1Y2VkIGhlcmUgdGhhdCBJIGNvdWxkIHNlZSBiZWluZyByZWxldmFudCB0byBmdXp6aW5nLCBlc3BlY2lhbGx5IG5vdCBpbiBhIHZpcnR1YWxpemVkIGVudmlyb25tZW50LlxuXG5Ob3csIGxldCdzIHF1aWNrbHkgcmV2aWV3IHRoZSBzcGVjaWZpYyBmaWxlcyBtb2RpZmllZCB0byBkb3VibGUtY2hlY2sgbXkgaW5pdGlhbCBhc3Nlc3NtZW50LlxuXG4qICAgYGRyaXZlcnMvbmV0L2lwYS9kYXRhL2lwYV9kYXRhLXY1LjEuY2A6IEp1c3QgZGF0YS5cbiogICBgZHJpdmVycy9uZXQvaXBhL2dzaV9yZWcuY2A6IEFkZGluZyBhIGBjYXNlIElQQV9WRVJTSU9OXzVfMTpgIHRvIHJldHVybiBgXHUwMDI2Z3NpX3JlZ3NfdjVfMGAuIFRoaXMgaXMganVzdCBhZGRpbmcgYSBicmFuY2ggYmFzZWQgb24gdmVyc2lvbiBudW1iZXIsIG5vdCBuZXcgbG9naWMuXG4qICAgYGRyaXZlcnMvbmV0L2lwYS9pcGFfcmVnLmNgOiBTaW1pbGFybHksIGFkZGluZyBhIGBjYXNlIElQQV9WRVJTSU9OXzVfMTpgIHRvIHJldHVybiBgXHUwMDI2aXBhX3JlZ3NfdjVfMGAuIEFub3RoZXIgYnJhbmNoLCBqdXN0IGNvbmZpZ3VyYXRpb24gZGF0YS5cbiogICBgZHJpdmVycy9uZXQvaXBhL2lwYV9tYWluLmNgOiBBZGRpbmcgdGhlIGNvbXBhdGlibGUgc3RyaW5nIHRvIGEgdGFibGUuXG4qICAgYGRyaXZlcnMvbmV0L2lwYS9NYWtlZmlsZWA6IEFkZGluZyBgNS4xYCB0byB0aGUgYElQQV9EQVRBX1ZFUlNJT05TYCB2YXJpYWJsZS5cbiogICBgYXJjaC9hcm02NC9ib290L2R0cy9xY29tL3NtODQ1MC5kdHNpYDogQWRkaW5nIHRoZSBEZXZpY2UgVHJlZSBub2RlLCB3aGljaCBpcyBlc3NlbnRpYWwgZm9yIGhhcmR3YXJlIGNvbmZpZ3VyYXRpb24uXG4qICAgYERvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvcWNvbSxpcGEueWFtbGA6IEFkZGluZyB0aGUgY29tcGF0aWJsZSBzdHJpbmcgdG8gdGhlIGRvY3VtZW50YXRpb24uXG5cbkxvb2tpbmcgYXQgZWFjaCBmaWxlIGNvbmZpcm1zIG15IGluaXRpYWwgYXNzZXNzbWVudC4gQWxsIHRoZXNlIGNoYW5nZXMgYXJlIGFib3V0IGRhdGEgc3RydWN0dXJlcywgaGFyZHdhcmUgdmVyc2lvbiBlbnVtZXJhdGlvbiwgYW5kIGRldmljZSB0cmVlIGluZm9ybWF0aW9uLiBUaGVyZSdzIG5vIGNvZGUgY2hhbmdlIGhlcmUgdGhhdCByZXByZXNlbnRzIG5ldyBmdW5jdGlvbmFsaXR5LCBhbmQgY3JpdGljYWxseSwgdGhlcmUncyBubyB3YXkgdG8gcmVhY2ggdGhpcyBjb2RlIGluIGEgZnV6emluZyBzZXR1cC4gSSdtIGNvbXBsZXRlbHkgY29uZmlkZW50IG5vdyB0aGF0IHRoaXMgaXNuJ3QgZnV6emFibGUuIEkgd2lsbCBzZXQgYFdvcnRoRnV6emluZz1mYWxzZWAuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjEyMjgyLCJPdXRwdXRUb2tlbnMiOjEyMCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjQzNiwiVG9vbENhbGxzIjpbInJlYWQtZmlsZSJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA2LTIzVDAyOjAwOjU4LjUxNjUyMzI4WiIsIlNlcSI6MTAsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6InNldC1yZXN1bHRzIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MzE5NTAsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IFtdLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggYWRkcyBzdXBwb3J0IGZvciBhIG5ldyBoYXJkd2FyZSB2ZXJzaW9uICh2NS4xKSBvZiB0aGUgUXVhbGNvbW0gSVAgQWNjZWxlcmF0b3IgKElQQSkgZm9yIHRoZSBTTTg0NTAgU29DLiBJdCBvbmx5IGludHJvZHVjZXMgbmV3IGRhdGEgc3RydWN0dXJlcywgZGV2aWNlIHRyZWUgYmluZGluZ3MsIGFuZCByZWdpc3RlcnMgdGhlIG5ldyBjb21wYXRpYmxlIHN0cmluZy4gVGhlIElQQSBpcyBhIGhhcmR3YXJlIGJsb2NrIHNwZWNpZmljIHRvIFF1YWxjb21tIFNvQ3MgYW5kIGlzIG5vdCBlbXVsYXRlZCBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBRRU1VIG9yIEdDRSwgbWFraW5nIHRoaXMgY29kZSB1bnJlYWNoYWJsZSBhbmQgdW50ZXN0YWJsZSBkdXJpbmcgZnV6emluZy5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogZmFsc2Vcbn0iLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogbnVsbCxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW10sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIGFkZHMgc3VwcG9ydCBmb3IgYSBuZXcgaGFyZHdhcmUgdmVyc2lvbiAodjUuMSkgb2YgdGhlIFF1YWxjb21tIElQIEFjY2VsZXJhdG9yIChJUEEpIGZvciB0aGUgU004NDUwIFNvQy4gSXQgb25seSBpbnRyb2R1Y2VzIG5ldyBkYXRhIHN0cnVjdHVyZXMsIGRldmljZSB0cmVlIGJpbmRpbmdzLCBhbmQgcmVnaXN0ZXJzIHRoZSBuZXcgY29tcGF0aWJsZSBzdHJpbmcuIFRoZSBJUEEgaXMgYSBoYXJkd2FyZSBibG9jayBzcGVjaWZpYyB0byBRdWFsY29tbSBTb0NzIGFuZCBpcyBub3QgZW11bGF0ZWQgaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgUUVNVSBvciBHQ0UsIG1ha2luZyB0aGlzIGNvZGUgdW5yZWFjaGFibGUgYW5kIHVudGVzdGFibGUgZHVyaW5nIGZ1enppbmcuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IGZhbHNlXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH1dOwoJCQlpZiAoIXJhd0RhdGEgfHwgcmF3RGF0YS5sZW5ndGggPT09IDApIHJldHVybjsKCgkJCWRyYXdTdW1tYXJ5VGFibGVzKHJhd0RhdGEpOwoJCQlkcmF3RHVyYXRpb25DaGFydChyYXdEYXRhKTsKCQkJZHJhd1Rva2VuQ29uc3VtcHRpb25DaGFydChyYXdEYXRhKTsKCQl9CgoJCWZ1bmN0aW9uIGRyYXdTdW1tYXJ5VGFibGVzKHJhd0RhdGEpIHsKCQkJY29uc3Qgc3RhdHMgPSB7CgkJCQlsbG06IHsgY291bnQ6IDAsIHRva2VuczogMCwgZHVyYXRpb246IDAgfSwKCQkJCXRvb2w6IHsgY291bnQ6IDAsIGR1cmF0aW9uOiAwIH0KCQkJfTsKCgkJCXJhd0RhdGEuZm9yRWFjaChzID0+IHsKCQkJCWNvbnN0IGR1ciA9IHMuRHVyYXRpb24gLyAxMDAwMDAwMDAwOyAKCQkJCWlmIChzLlR5cGUgPT09ICJsbG0iKSB7CgkJCQkJc3RhdHMubGxtLmNvdW50Kys7CgkJCQkJc3RhdHMubGxtLnRva2VucyArPSAocy5JbnB1dFRva2VucyArIHMuT3V0cHV0VG9rZW5zICsgcy5PdXRwdXRUaG91Z2h0c1Rva2Vucyk7CgkJCQkJc3RhdHMubGxtLmR1cmF0aW9uICs9IGR1cjsKCQkJCX0gZWxzZSBpZiAocy5UeXBlID09PSAidG9vbCIpIHsKCQkJCQlzdGF0cy50b29sLmNvdW50Kys7CgkJCQkJc3RhdHMudG9vbC5kdXJhdGlvbiArPSBkdXI7CgkJCQl9CgkJCX0pOwoKCQkJY29uc3QgYXZnTGxtRHVyID0gc3RhdHMubGxtLmNvdW50ID4gMCA/IChzdGF0cy5sbG0uZHVyYXRpb24gLyBzdGF0cy5sbG0uY291bnQpLnRvRml4ZWQoMikgOiAwOwoJCQljb25zdCBhdmdMbG1Ub2tlbiA9IHN0YXRzLmxsbS5jb3VudCA+IDAgPyAoc3RhdHMubGxtLnRva2VucyAvIHN0YXRzLmxsbS5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgkJCWNvbnN0IGF2Z1Rvb2xEdXIgPSBzdGF0cy50b29sLmNvdW50ID4gMCA/IChzdGF0cy50b29sLmR1cmF0aW9uIC8gc3RhdHMudG9vbC5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgoJCQljb25zdCBsbG1TdW1hcnlDZWxscyA9IFtzdGF0cy5sbG0uY291bnQsIHN0YXRzLmxsbS50b2tlbnMsIGF2Z0xsbVRva2VuLCBzdGF0cy5sbG0uZHVyYXRpb24sIGF2Z0xsbUR1cl07CgkJCWNvbnN0IHRvb2xTdW1tYXJ5Q2VsbHMgPSBbc3RhdHMudG9vbC5jb3VudCwgc3RhdHMudG9vbC5kdXJhdGlvbiwgYXZnVG9vbER1cl07CgoJCQljb25zdCBsbG1TdW1tYXJ5Qm9keSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdsbG1fc3VtbWFyeV9zdGF0c19ib2R5Jyk7CgkJCWxsbVN1bW1hcnlCb2R5LmlubmVySFRNTCA9ICIiOwoJCQljb25zdCBsbG1UciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RyJyk7CgkJCWxsbVN1bWFyeUNlbGxzLmZvckVhY2goY2VsbCA9PiB7CgkJCQljb25zdCB0ZCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RkJyk7CgkJCQl0ZC50ZXh0Q29udGVudCA9IGNlbGw7CgkJCQlsbG1Uci5hcHBlbmRDaGlsZCh0ZCk7CgkJCX0pOwoJCQlsbG1TdW1tYXJ5Qm9keS5hcHBlbmRDaGlsZChsbG1Ucik7CgoJCQljb25zdCB0b29sU3VtbWFyeUJvZHkgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndG9vbF9zdW1tYXJ5X3N0YXRzX2JvZHknKTsKCQkJdG9vbFN1bW1hcnlCb2R5LmlubmVySFRNTCA9ICIiOwoJCQljb25zdCB0b29sVHIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0cicpOwoJCQl0b29sU3VtbWFyeUNlbGxzLmZvckVhY2goY2VsbCA9PiB7CgkJCQljb25zdCB0ZCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RkJyk7CgkJCQl0ZC50ZXh0Q29udGVudCA9IGNlbGw7CgkJCQl0b29sVHIuYXBwZW5kQ2hpbGQodGQpOwoJCQl9KTsKCQkJdG9vbFN1bW1hcnlCb2R5LmFwcGVuZENoaWxkKHRvb2xUcik7CgkJfQoKCQlmdW5jdGlvbiBkcmF3RHVyYXRpb25DaGFydChyYXdEYXRhKSB7CgkJCWNvbnN0IGZpbHRlcmVkU3RlcHMgPSByYXdEYXRhLmZpbHRlcihkID0+IFsibGxtIiwgInRvb2wiXS5pbmNsdWRlcyhkLlR5cGUpKTsKCQkJY29uc3QgZGF0YSA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5EYXRhVGFibGUoKTsKCQkJZGF0YS5hZGRDb2x1bW4oJ3N0cmluZycsICdTdGVwJyk7CgkJCWRhdGEuYWRkQ29sdW1uKCdudW1iZXInLCAnRHVyYXRpb24nKTsKCQkJZGF0YS5hZGRDb2x1bW4oe3R5cGU6ICdzdHJpbmcnLCByb2xlOiAndG9vbHRpcCd9KTsgCgoJCQlmaWx0ZXJlZFN0ZXBzLmZvckVhY2gocyA9PiB7CgkJCQkKCQkJCWNvbnN0IGR1ciA9IHMuRHVyYXRpb24gLyAxMDAwMDAwMDAwOwoJCQkJbGV0IHRvb2x0aXAgPSBzLk5hbWU7CgkJCQlpZiAocy5UeXBlID09PSAibGxtIiAmJiBzLlRvb2xDYWxscyAmJiBzLlRvb2xDYWxscy5sZW5ndGggPiAwKSB7CgkJCQkJdG9vbHRpcCArPSBgXG5Ub29sczogJHtzLlRvb2xDYWxscy5qb2luKCcsICcpfWA7CgkJCQl9CgkJCQlkYXRhLmFkZFJvdyhbYCR7cy5TZXF9YCwgZHVyLCB0b29sdGlwXSk7CgkJCX0pOwoKCQkJY29uc3Qgb3B0aW9ucyA9IHsKCQkJCXRpdGxlOiAnVGltZSBDb25zdW1wdGlvbiBvZiBMTE0vVG9vbCBDYWxscycsCgkJCQloQXhpczogewoJCQkJCXRpdGxlOiAnTExNL1Rvb2wgU3RlcHMnLAoJCQkJfSwKCQkJCXZBeGlzOiB7IHRpdGxlOiAnU2Vjb25kcycgfSwKCQkJCWxlZ2VuZDogeyBwb3NpdGlvbjogJ25vbmUnIH0sCgkJCQliYXI6IHsgZ3JvdXBXaWR0aDogJzc1JScgfSwKCQkJCWNoYXJ0QXJlYTogeyB3aWR0aDogJzg1JScsIGhlaWdodDogJzcwJScgfSwKCQkJCWhlaWdodDogNDAwCgkJCX07CgoJCQljb25zdCBjaGFydCA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5Db2x1bW5DaGFydChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZHVyYXRpb25fY2hhcnRfZGl2JykpOwoJCQljaGFydC5kcmF3KGRhdGEsIG9wdGlvbnMpOwoJCX0KCgkJZnVuY3Rpb24gZHJhd1Rva2VuQ29uc3VtcHRpb25DaGFydChyYXdEYXRhKSB7CgkJCWNvbnN0IGxsbVN0ZXBzID0gcmF3RGF0YS5maWx0ZXIoZCA9PiBkLlR5cGUgPT09ICJsbG0iKTsKCQkJaWYgKGxsbVN0ZXBzLmxlbmd0aCA9PT0gMCkgcmV0dXJuOwoKCQkJY29uc3QgZGF0YSA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5EYXRhVGFibGUoKTsKCQkJZGF0YS5hZGRDb2x1bW4oJ3N0cmluZycsICdTdGVwJyk7CQkJCgkJCWRhdGEuYWRkQ29sdW1uKCdudW1iZXInLCAnVG9rZW5zJyk7CQkJCgkJCWRhdGEuYWRkQ29sdW1uKHt0eXBlOiAnc3RyaW5nJywgcm9sZTogJ3N0eWxlJ30pOwkKCQkJZGF0YS5hZGRDb2x1bW4oe3R5cGU6ICdzdHJpbmcnLCByb2xlOiAndG9vbHRpcCd9KTsJCgoJCQljb25zdCBhZ2VudENvbG9ycyA9IHt9OwoJCQljb25zdCBwYWxldHRlID0gWycjNDI4NUY0JywgJyNEQjQ0MzcnLCAnI0Y0QjQwMCcsICcjMEY5RDU4JywgJyNBQjQ3QkMnLCAnIzAwQUNDMSddOwoJCQlsZXQgY29sb3JJZHggPSAwOwoJCQljb25zdCBhZ2VudExMTUNvdW50cyA9IHt9OwoJCQlsbG1TdGVwcy5mb3JFYWNoKHMgPT4gewoJCQkJaWYgKCFhZ2VudENvbG9yc1tzLk5hbWVdKSB7CgkJCQkJYWdlbnRDb2xvcnNbcy5OYW1lXSA9IHBhbGV0dGVbY29sb3JJZHggJSBwYWxldHRlLmxlbmd0aF07CgkJCQkJY29sb3JJZHgrKzsKCQkJCX0KCgkJCQlhZ2VudExMTUNvdW50c1tzLk5hbWVdID0gKGFnZW50TExNQ291bnRzW3MuTmFtZV0gfHwgMCkgKyAxOwoJCQkJY29uc3QgbGFiZWwgPSBgJHtzLk5hbWV9LSR7YWdlbnRMTE1Db3VudHNbcy5OYW1lXX1gOwoJCQkJY29uc3QgdG90YWxUb2tlbnMgPSBzLklucHV0VG9rZW5zICsgcy5PdXRwdXRUb2tlbnMgKyBzLk91dHB1dFRob3VnaHRzVG9rZW5zOwoJCQkJY29uc3Qgc3R5bGUgPSBgY29sb3I6ICR7YWdlbnRDb2xvcnNbcy5OYW1lXX1gOwoJCQkJbGV0IHRvb2x0aXAgPSBgVG90YWwgVG9rZW5zOiAke3RvdGFsVG9rZW5zfVxuKEluOiAke3MuSW5wdXRUb2tlbnN9LCBPdXQ6ICR7cy5PdXRwdXRUb2tlbnN9LCBUaG91Z2h0czogJHtzLk91dHB1dFRob3VnaHRzVG9rZW5zfSlgOwoJCQkJaWYgKHMuVG9vbENhbGxzICYmIHMuVG9vbENhbGxzLmxlbmd0aCA+IDApIHsKCQkJCQl0b29sdGlwICs9IGBcblRvb2xzOiAke3MuVG9vbENhbGxzLmpvaW4oJywgJyl9YDsKCQkJCX0KCgkJCQlkYXRhLmFkZFJvdyhbbGFiZWwsIHRvdGFsVG9rZW5zLCBzdHlsZSwgdG9vbHRpcF0pOwoJCQl9KTsKCgkJCWNvbnN0IG9wdGlvbnMgPSB7CgkJCQl0aXRsZTogJ1Rva2VuIENvbnN1bXB0aW9uIGJ5IExMTSBDYWxscycsCgkJCQloQXhpczogewoJCQkJCXRpdGxlOiAnTExNIENhbGwgU2VxdWVuY2UnLAoJCQkJfSwKCQkJCXZBeGlzOiB7IHRpdGxlOiAnQ29uc3VtZWQgVG9rZW5zJyB9LAoJCQkJbGVnZW5kOiB7IHBvc2l0aW9uOiAnbm9uZScgfSwKCQkJCWJhcjogeyBncm91cFdpZHRoOiAnNzUlJyB9LAoJCQkJY2hhcnRBcmVhOiB7IHdpZHRoOiAnODUlJywgaGVpZ2h0OiAnNzAlJyB9LAoJCQkJaGVpZ2h0OiA0MDAKCQkJfTsKCgkJCWNvbnN0IGNoYXJ0ID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkNvbHVtbkNoYXJ0KGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0b2tlbl9jaGFydF9kaXYnKSk7CgkJCWNoYXJ0LmRyYXcoZGF0YSwgb3B0aW9ucyk7CgkJfQoJCWxldCBhbGxFeHBhbmRlZCA9IGZhbHNlOwoJCWZ1bmN0aW9uIHRvZ2dsZUFsbERldGFpbHMoKSB7CgkJCWFsbEV4cGFuZGVkID0gIWFsbEV4cGFuZGVkOwoJCQlkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCdkZXRhaWxzJykuZm9yRWFjaChkID0+IHsKCQkJCWlmIChhbGxFeHBhbmRlZCkgZC5zZXRBdHRyaWJ1dGUoJ29wZW4nLCAnJyk7CgkJCQllbHNlIGQucmVtb3ZlQXR0cmlidXRlKCdvcGVuJyk7CgkJCX0pOwoJCX0KCTwvc2NyaXB0PgoKCjwvYm9keT4KPC9odG1sPgo=" },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-workflown85hb[1] Phase: Running StartedAt: 2026-06-23 02:01:09 +0000 UTC FinishedAt: 0001-01-01 00:00:00 +0000 UTC Input: nil Output: nil --------- Name: series-workflown85hb[1].abort-on-skip-outcome Phase: Failed StartedAt: 2026-06-23 02:01:09 +0000 UTC FinishedAt: 2026-06-23 02:01:14 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:code,Default:nil,Value:*1,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},} Output: &Outputs{Parameters:[]Parameter{},Artifacts:[]Artifact{},Result:nil,ExitCode:*1,}