From mboxrd@z Thu Jan 1 00:00:00 1970 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: base64 From: Jakub Jelinek To: git-commits@fedoraproject.org Subject: [rpms/gcc] rhel-f41-base: 4.4.0-0.34 Date: Mon, 29 Jun 2026 12:24:18 GMT Message-ID: <178273585888.1.8928619695864140883.rpms-gcc-0ebfd21c578a@fedoraproject.org> List-ID: X-Git-Repo: rpms/gcc X-Git-Branch: rhel-f41-base X-Git-Rev: 0ebfd21c578a4f369667444b9f365d50866d6b7a QSBuZXcgY29tbWl0IGhhcyBiZWVuIHB1c2hlZC4KClJlcG8gICA6IHJwbXMvZ2NjCkJyYW5jaCA6 IHJoZWwtZjQxLWJhc2UKQ29tbWl0IDogMGViZmQyMWM1NzhhNGYzNjk2Njc0NDRiOWYzNjVkNTA4 NjZkNmI3YQpBdXRob3IgOiBKYWt1YiBKZWxpbmVrIDxqYWt1YkBmZWRvcmFwcm9qZWN0Lm9yZz4K RGF0ZSAgIDogMjAwOS0wNC0xNFQxNTo0NjoxNiswMDowMApTdGF0cyAgOiArMzEwNS8tMzExNSBp biA2IGZpbGUocykKVVJMICAgIDogaHR0cHM6Ly9zcmMuZmVkb3JhcHJvamVjdC5vcmcvcnBtcy9n Y2MvYy8wZWJmZDIxYzU3OGE0ZjM2OTY2NzQ0NGI5ZjM2NWQ1MDg2NmQ2YjdhP2JyYW5jaD1yaGVs LWY0MS1iYXNlCgpMb2c6CjQuNC4wLTAuMzQKCi0tLQpkaWZmIC0tZ2l0IGEvLmN2c2lnbm9yZSBi Ly5jdnNpZ25vcmUKaW5kZXggYTgxYjNjMC4uOTczZDViOSAxMDA2NDQKLS0tIGEvLmN2c2lnbm9y ZQorKysgYi8uY3ZzaWdub3JlCkBAIC0xLDIgKzEsMiBAQAogZmFzdGphci0wLjk3LnRhci5negot Z2NjLTQuNC4wLTIwMDkwNDA5LnRhci5iejIKK2djYy00LjQuMC0yMDA5MDQxNC50YXIuYnoyCgpk aWZmIC0tZ2l0IGEvZ2NjLnNwZWMgYi9nY2Muc3BlYwppbmRleCBlODZhMTRiLi4xYmEyMjU0IDEw MDY0NAotLS0gYS9nY2Muc3BlYworKysgYi9nY2Muc3BlYwpAQCAtMSw5ICsxLDkgQEAKLSVkZWZp bmUgREFURSAyMDA5MDQwOQotJWRlZmluZSBTVk5SRVYgMTQ1ODE2CislZGVmaW5lIERBVEUgMjAw OTA0MTQKKyVkZWZpbmUgU1ZOUkVWIDE0NjAzNwogJWRlZmluZSBnY2NfdmVyc2lvbiA0LjQuMAog IyBOb3RlLCBnY2NfcmVsZWFzZSBtdXN0IGJlIGludGVnZXIsIGlmIHlvdSB3YW50IHRvIGFkZCBz dWZmaXhlcyB0bwogIyAle3JlbGVhc2V9LCBhcHBlbmQgdGhlbSBhZnRlciAle2djY19yZWxlYXNl fSBvbiBSZWxlYXNlOiBsaW5lLgotJWRlZmluZSBnY2NfcmVsZWFzZSAwLjMzCislZGVmaW5lIGdj Y19yZWxlYXNlIDAuMzQKICVkZWZpbmUgX3VucGFja2FnZWRfZmlsZXNfdGVybWluYXRlX2J1aWxk IDAKICVkZWZpbmUgbXVsdGlsaWJfNjRfYXJjaHMgc3BhcmM2NCBwcGM2NCBzMzkweCB4ODZfNjQK ICVkZWZpbmUgaW5jbHVkZV9nYXBwbGV0dmlld2VyIDEKQEAgLTM2LDQxICszNiwxMyBAQAogJWlm YXJjaCB4ODZfNjQKICVkZWZpbmUgbXVsdGlsaWJfMzJfYXJjaCBpNTg2CiAlZW5kaWYKLQotIyBq YXZhLTEuNS4wLWdjai1jb21wYXQgcmVsYXRlZCBkZWZpbml0aW9ucwotCi0jIGNvbnZlcnQgYW4g YWJzb2x1dGUgcGF0aCB0byBhIHJlbGF0aXZlIHBhdGguICBlYWNoIHN5bWJvbGljIGxpbmsgaXMK LSMgc3BlY2lmaWVkIHJlbGF0aXZlIHRvIHRoZSBkaXJlY3RvcnkgaW4gd2hpY2ggaXQgaXMgaW5z dGFsbGVkIHNvIHRoYXQKLSMgaXQgd2lsbCByZXNvbHZlIHByb3Blcmx5IHdpdGhpbiBjaHJvb3Rl ZCBpbnN0YWxsYXRpb25zLgotJWRlZmluZSBhYnMycmVsICV7X19wZXJsfSAtZSAndXNlIEZpbGU6 OlNwZWM7IHByaW50IEZpbGU6OlNwZWMtPmFiczJyZWwoJEFSR1ZbMF0sICRBUkdWWzFdKScKLQot IyBweXRob24gaW5zdGFsbCBsb2NhdGlvbgotJXshP3B5dGhvbl9zaXRlbGliOiAlZGVmaW5lIHB5 dGhvbl9zaXRlbGliICUoJXtfX3B5dGhvbn0gLWMgImZyb20gZGlzdHV0aWxzLnN5c2NvbmZpZyBp bXBvcnQgZ2V0X3B5dGhvbl9saWI7IHByaW50IGdldF9weXRob25fbGliKCkucmVwbGFjZSgnJXtf cHJlZml4fScsJycsMSkiKX0KLQotIyBKYXZhIHZlcnNpb24gaW5mb3JtYXRpb24gYW5kIGFsdGVy bmF0aXZlcyBwcmlvcml0eQotJWRlZmluZSBqYXZhdmVyICAgICAgICAgMS41LjAKLSVkZWZpbmUg amF2YWJ1aWxkdmVyICAgIDAKLSVkZWZpbmUgamF2YWRpcm5hbWUgICAgIGphdmEtJXtqYXZhdmVy fS1nY2otJXtqYXZhdmVyfS4le2phdmFidWlsZHZlcn0KLSVkZWZpbmUgb3JpZ2luICAgICAgICAg IGdjagotJWRlZmluZSBwcmlvcml0eSAgICAgICAgMTUwMAotCi0jIGluc3RhbGxhdGlvbiBkaXJl Y3RvcnkgbmFtZXMgY29ycmVzcG9uZGluZyB0byBKUGFja2FnZSBzcGVjaWZpY2F0aW9ucwotJWRl ZmluZSBzZGtsbmsgICAgICAgICAgamF2YS0le2phdmF2ZXJ9LSV7b3JpZ2lufQotJWRlZmluZSBq cmVsbmsgICAgICAgICAganJlLSV7amF2YXZlcn0tJXtvcmlnaW59Ci0lZGVmaW5lIHNka2RpciAg ICAgICAgICBqYXZhLSV7amF2YXZlcn0tZ2NqLSV7amF2YXZlcn0uJXtqYXZhYnVpbGR2ZXJ9Ci0l ZGVmaW5lIGpyZWRpciAgICAgICAgICAle3Nka2Rpcn0vanJlCi0lZGVmaW5lIHNka2JpbmRpciAg ICAgICAle19qdm1kaXJ9LyV7c2RrbG5rfS9iaW4KLSVkZWZpbmUganJlYmluZGlyICAgICAgICV7 X2p2bWRpcn0vJXtqcmVsbmt9L2JpbgotJWRlZmluZSBqdm1qYXJkaXIgICAgICAgJXtfanZtamFy ZGlyfS9qYXZhLSV7amF2YXZlcn0tZ2NqLSV7amF2YXZlcn0uJXtqYXZhYnVpbGR2ZXJ9Ci0KIFN1 bW1hcnk6IFZhcmlvdXMgY29tcGlsZXJzIChDLCBDKyssIE9iamVjdGl2ZS1DLCBKYXZhLCAuLi4p CiBOYW1lOiBnY2MKIFZlcnNpb246ICV7Z2NjX3ZlcnNpb259CiBSZWxlYXNlOiAle2djY19yZWxl YXNlfQotIyBsaWJnY2MsIGxpYmdmb3J0cmFuLCBsaWJtdWRmbGFwIGFuZCBjcnRzdHVmZiBoYXZl IGFuIGV4Y2VwdGlvbiB3aGljaCBhbGxvd3MKLSMgbGlua2luZyBpdCBpbnRvIGFueSBraW5kIG9m IHByb2dyYW1zIG9yIHNoYXJlZCBsaWJyYXJpZXMgd2l0aG91dAotIyByZXN0cmljdGlvbnMuCi1M aWNlbnNlOiBHUEx2MysgYW5kIEdQTHYyKyB3aXRoIGV4Y2VwdGlvbnMKKyMgbGliZ2NjLCBsaWJn Zm9ydHJhbiwgbGlibXVkZmxhcCwgbGliZ29tcCwgbGlic3RkYysrIGFuZCBjcnRzdHVmZiBoYXZl CisjIEdDQyBSdW50aW1lIEV4Y2VwdGlvbi4KK0xpY2Vuc2U6IEdQTHYzKywgR1BMdjMrIHdpdGgg ZXhjZXB0aW9ucyBhbmQgR1BMdjIrIHdpdGggZXhjZXB0aW9ucwogR3JvdXA6IERldmVsb3BtZW50 L0xhbmd1YWdlcwogIyBUaGUgc291cmNlIGZvciB0aGlzIHBhY2thZ2Ugd2FzIHB1bGxlZCBmcm9t IHVwc3RyZWFtJ3MgdmNzLiAgVXNlIHRoZQogIyBmb2xsb3dpbmcgY29tbWFuZHMgdG8gZ2VuZXJh dGUgdGhlIHRhcmJhbGw6CkBAIC04Miw3ICs1NCw2IEBAIFNvdXJjZTI6IFJFQURNRS5saWJnY2p3 ZWJwbHVnaW4uc28KIFNvdXJjZTM6IHByb3RvaXplLjEKICVkZWZpbmUgZmFzdGphcl92ZXIgMC45 NwogU291cmNlNDogaHR0cDovL2Rvd25sb2FkLnNhdmFubmFoLm5vbmdudS5vcmcvcmVsZWFzZXMv ZmFzdGphci9mYXN0amFyLSV7ZmFzdGphcl92ZXJ9LnRhci5negotU291cmNlNTogZ2VuZXJhdGUt Y2FjZXJ0cy5wbAogVVJMOiBodHRwOi8vZ2NjLmdudS5vcmcKIEJ1aWxkUm9vdDogJXtfdG1wcGF0 aH0vJXtuYW1lfS0le3ZlcnNpb259LSV7cmVsZWFzZX0tcm9vdC0lKCV7X19pZF91fSAtbikKICMg TmVlZCBiaW51dGlscyB3aXRoIC1waWUgc3VwcG9ydCA+PSAyLjE0LjkwLjAuNC00CkBAIC0xNzcs MTAgKzE0OCw4IEBAIFBhdGNoMjE6IGdjYzQ0LWNsb29nLWRsLnBhdGNoCiBQYXRjaDIyOiBnY2M0 NC1yYXctc3RyaW5nLnBhdGNoCiBQYXRjaDI0OiBnY2M0NC1hdG9tLnBhdGNoCiBQYXRjaDI2OiBn Y2M0NC1wb3dlcjcucGF0Y2gKLVBhdGNoMjc6IGdjYzQ0LXBvd2VyNy0yLnBhdGNoCiBQYXRjaDI4 OiBnY2M0NC1wcjM4NzU3LnBhdGNoCiBQYXRjaDMwOiBnY2M0NC1wcjM5NTQzLnBhdGNoCi1QYXRj aDMxOiBnY2M0NC1saWJqYXZhLWkzODYucGF0Y2gKIAogUGF0Y2gxMDAwOiBmYXN0amFyLTAuOTct c2VnZmF1bHQucGF0Y2gKIApAQCAtMzg3LDE2NSArMzU2LDYgQEAgQXV0b3JlcTogdHJ1ZQogJWRl c2NyaXB0aW9uIC1uIGxpYmdjai1zcmMKIFRoZSBKYXZhKHRtKSBydW50aW1lIGxpYnJhcnkgc291 cmNlcyBmb3IgdXNlIGluIEVjbGlwc2UuCiAKLSVwYWNrYWdlIC1uIGphdmEtJXtqYXZhdmVyfS1n Y2oKLVN1bW1hcnk6IEpQYWNrYWdlIHJ1bnRpbWUgY29tcGF0aWJpbGl0eSBsYXllciBmb3IgR0NK Ci1Hcm91cDogICBEZXZlbG9wbWVudC9MYW5ndWFnZXMKLQotQnVpbGRSZXF1aXJlczogZ2NjLWph dmEgPj0gJXt2ZXJzaW9ufQotQnVpbGRSZXF1aXJlczogbGliZ2NqLXNyYyA+PSAle3ZlcnNpb259 Ci0jIHJlcXVpcmVkIGZvciBjYWNlcnRzIGdlbmVyYXRpb24KLUJ1aWxkUmVxdWlyZXM6IG9wZW5z c2wKLUJ1aWxkUmVxdWlyZXM6IHB5dGhvbi1kZXZlbAotJWlmICEgJXtib290c3RyYXBfamF2YX0K LSMgcmVxdWlyZWQgZm9yIGphdmFkb2MKLUJ1aWxkUmVxdWlyZXM6IGphdmEtMS42LjAtb3Blbmpk ay1kZXZlbAotJWVuZGlmCi1CdWlsZFJlcXVpcmVzOiB1bnppcAotCi0jIHJlcXVpcmVkIGZvciB0 b29scyBhbmQgbGliZ2NqLmphcgotUmVxdWlyZXM6ICAgICAgICAgbGliZ2NqID0gJXt2ZXJzaW9u fQotIyByZXF1aXJlZCBmb3IgZGlyZWN0b3J5IHN0cnVjdHVyZXMKLVJlcXVpcmVzOiAgICAgICAg IGpwYWNrYWdlLXV0aWxzID49IDEuNy4zCi0jIHJlcXVpcmVkIGZvciBqYXZhLnNlY3VyaXR5IHN5 bWxpbmsKLVJlcXVpcmVzOiAgICAgICAgICV7X3ByZWZpeH0vJXtfbGlifS9zZWN1cml0eS9jbGFz c3BhdGguc2VjdXJpdHkKLSVpZiAhICV7Ym9vdHN0cmFwX2phdmF9Ci0jIHJlcXVpcmVkIGZvciBq YXZhZG9jIHN5bWxpbmsKLVJlcXVpcmVzOiAgICAgICAgIHNpbmpkb2MKLSVlbmRpZgotIyBwb3N0 IHJlcXVpcmVzIGFsdGVybmF0aXZlcyB0byBpbnN0YWxsIHRvb2wgYWx0ZXJuYXRpdmVzCi1SZXF1 aXJlcyhwb3N0KTogICAle19zYmluZGlyfS9hbHRlcm5hdGl2ZXMKLSMgcG9zdCByZXF1aXJlcyBn aWogdG8gcmV0cmlldmUgZ2NjIHZlcnNpb24KLVJlcXVpcmVzKHBvc3QpOiAgICV7X2JpbmRpcn0v Z2lqCi0jIHBvc3QgcmVidWlsZHMgdGhlIGdjaiBkYXRhYmFzZQotUmVxdWlyZXMocG9zdCk6ICAg JXtfYmluZGlyfS9yZWJ1aWxkLWdjai1kYgotIyByZWJ1aWxkLWdjai1kYiByZXF1aXJlcyBnY2ot ZGJ0b29sCi1SZXF1aXJlcyhwb3N0KTogICAle19iaW5kaXJ9L2djai1kYnRvb2wKLSMgcmVidWls ZC1nY2otZGIgcmVxdWlyZXMgZmluZHV0aWxzCi1SZXF1aXJlcyhwb3N0KTogICBmaW5kdXRpbHMK LSMgcG9zdHVuIHJlcXVpcmVzIGFsdGVybmF0aXZlcyB0byB1bmluc3RhbGwgdG9vbCBhbHRlcm5h dGl2ZXMKLVJlcXVpcmVzKHBvc3R1bik6ICV7X3NiaW5kaXJ9L2FsdGVybmF0aXZlcwotIyBwb3N0 dW4gcmVxdWlyZXMgZ2lqIHRvIHJldHJpZXZlIGdjYyB2ZXJzaW9uCi1SZXF1aXJlcyhwb3N0dW4p OiAle19iaW5kaXJ9L2dpagotIyBwb3N0dW4gcmVidWlsZHMgdGhlIGdjaiBkYXRhYmFzZQotUmVx dWlyZXMocG9zdHVuKTogJXtfYmluZGlyfS9yZWJ1aWxkLWdjai1kYgotIyByZWJ1aWxkLWdjai1k YiByZXF1aXJlcyBnY2otZGJ0b29sCi1SZXF1aXJlcyhwb3N0dW4pOiAle19iaW5kaXJ9L2djai1k YnRvb2wKLSMgcmVidWlsZC1nY2otZGIgcmVxdWlyZXMgZmluZHV0aWxzCi1SZXF1aXJlcyhwb3N0 dW4pOiBmaW5kdXRpbHMKLQotIyBzdGFuZGFyZCBKUGFja2FnZSBiYXNlIHByb3ZpZGVzCi1Qcm92 aWRlczoganJlLSV7amF2YXZlcn0tJXtvcmlnaW59ID0gJXt2ZXJzaW9ufS0le3JlbGVhc2V9Ci1Q cm92aWRlczoganJlLSV7b3JpZ2lufSA9ICV7dmVyc2lvbn0tJXtyZWxlYXNlfQotUHJvdmlkZXM6 IGpyZS0le2phdmF2ZXJ9ID0gJXt2ZXJzaW9ufS0le3JlbGVhc2V9Ci1Qcm92aWRlczogamF2YS0l e2phdmF2ZXJ9ID0gJXt2ZXJzaW9ufS0le3JlbGVhc2V9Ci1Qcm92aWRlczoganJlID0gJXtqYXZh dmVyfQotUHJvdmlkZXM6IGphdmEtJXtvcmlnaW59ID0gJXt2ZXJzaW9ufS0le3JlbGVhc2V9Ci1Q cm92aWRlczogamF2YSA9ICV7amF2YXZlcn0KLSMgbGliZ2NqIHByb3ZpZGVzLCB0cmFuc2xhdGVk IHRvIEpQYWNrYWdlIHByb3ZpZGVzCi1Qcm92aWRlczogamFhcyA9ICV7dmVyc2lvbn0tJXtyZWxl YXNlfQotUHJvdmlkZXM6IGpjZSA9ICV7dmVyc2lvbn0tJXtyZWxlYXNlfQotUHJvdmlkZXM6IGpk YmMtc3RkZXh0ID0gJXt2ZXJzaW9ufS0le3JlbGVhc2V9Ci1Qcm92aWRlczogamRiYy1zdGRleHQg PSAzLjAKLVByb3ZpZGVzOiBqbmRpID0gJXt2ZXJzaW9ufS0le3JlbGVhc2V9Ci1Qcm92aWRlczog am5kaS1jb3MgPSAle3ZlcnNpb259LSV7cmVsZWFzZX0KLVByb3ZpZGVzOiBqbmRpLWRucyA9ICV7 dmVyc2lvbn0tJXtyZWxlYXNlfQotUHJvdmlkZXM6IGpuZGktbGRhcCA9ICV7dmVyc2lvbn0tJXty ZWxlYXNlfQotUHJvdmlkZXM6IGpuZGktcm1pID0gJXt2ZXJzaW9ufS0le3JlbGVhc2V9Ci1Qcm92 aWRlczoganNzZSA9ICV7dmVyc2lvbn0tJXtyZWxlYXNlfQotUHJvdmlkZXM6IGphdmEtc2FzbCA9 ICV7dmVyc2lvbn0tJXtyZWxlYXNlfQotUHJvdmlkZXM6IGpheHBfcGFyc2VyX2ltcGwgPSAle3Zl cnNpb259LSV7cmVsZWFzZX0KLSMgamF2YS1nY2otY29tcGF0IGJhc2UgcHJvdmlkZXMKLVByb3Zp ZGVzOiBqYXZhLWdjai1jb21wYXQgPSAxLjAuNzkKLVByb3ZpZGVzOiBqYXZhLTEuNC4yLWdjai1j b21wYXQgPiAxLjQuMi4wLTQwanBwLjExMQotCi1PYnNvbGV0ZXM6IGphdmEtMS40LjItZ2NqLWNv bXBhdCA8PSAxLjQuMi4wLTQwanBwLjExMQotT2Jzb2xldGVzOiBnbnUtY3J5cHRvIDw9IDIuMS4w LTJqcHAuMQotT2Jzb2xldGVzOiBnbnUtY3J5cHRvLXNhc2wtamRrMS40IDw9IDIuMS4wLTJqcHAu MQotT2Jzb2xldGVzOiBqZXNzaWUgPD0gMS4wLjEtNwotCi0lZGVzY3JpcHRpb24gLW4gamF2YS0l e2phdmF2ZXJ9LWdjagotVGhpcyBwYWNrYWdlIGluc3RhbGxzIGRpcmVjdG9yeSBzdHJ1Y3R1cmVz LCBzaGVsbCBzY3JpcHRzIGFuZCBzeW1ib2xpYwotbGlua3MgdG8gc2ltdWxhdGUgYSBKUGFja2Fn ZS1jb21wYXRpYmxlIHJ1bnRpbWUgZW52aXJvbm1lbnQgd2l0aCBHQ0ouCi0KLSVwYWNrYWdlIC1u IGphdmEtJXtqYXZhdmVyfS1nY2otZGV2ZWwKLVN1bW1hcnk6IEpQYWNrYWdlIGRldmVsb3BtZW50 IGNvbXBhdGliaWxpdHkgbGF5ZXIgZm9yIEdDSgotR3JvdXA6ICAgRGV2ZWxvcG1lbnQvVG9vbHMK LQotIyByZXF1aXJlIGxpYmdjai1zcmMgZm9yIHRvb2xzLmphciBzeW1saW5rCi1SZXF1aXJlczog ICAgICAgICBsaWJnY2otc3JjID0gJXt2ZXJzaW9ufQotIyByZXF1aXJlIGJhc2UgcGFja2FnZQot UmVxdWlyZXM6ICAgICAgICAgamF2YS0le2phdmF2ZXJ9LWdjaiA9ICV7dmVyc2lvbn0tJXtyZWxl YXNlfQotIyByZXF1aXJlIGVjaiBmb3IgZWNqIGJpbmFyeQotUmVxdWlyZXM6ICAgICAgICAgZWNq ID49IDMuMi4xCi0jIHJlcXVpcmUgcHl0aG9uIGZvciBhb3QtY29tcGlsZQotUmVxdWlyZXM6ICAg ICAgICAgcHl0aG9uCi0jIHJlcXVpcmUgZ2NjLWphdmEgZm9yIGdqYXZhaCBiaW5hcnkKLVJlcXVp cmVzOiAgICAgICAgIGdjYy1qYXZhID0gJXt2ZXJzaW9ufQotIyBwb3N0IHJlcXVpcmVzIGFsdGVy bmF0aXZlcyB0byBpbnN0YWxsIHRvb2wgYWx0ZXJuYXRpdmVzCi1SZXF1aXJlcyhwb3N0KTogICAl e19zYmluZGlyfS9hbHRlcm5hdGl2ZXMKLSMgcG9zdCByZXF1aXJlcyBnY2ogdG8gcmV0cmlldmUg Z2NqIGhlYWRlciBmaWxlIGxvY2F0aW9ucwotUmVxdWlyZXMocG9zdCk6ICAgJXtfYmluZGlyfS9n Y2oKLSMgcG9zdHVuIHJlcXVpcmVzIGFsdGVybmF0aXZlcyB0byB1bmluc3RhbGwgdG9vbCBhbHRl cm5hdGl2ZXMKLVJlcXVpcmVzKHBvc3R1bik6ICV7X3NiaW5kaXJ9L2FsdGVybmF0aXZlcwotCi0j IHN0YW5kYXJkIEpQYWNrYWdlIGRldmVsIHByb3ZpZGVzCi1Qcm92aWRlczogamF2YS1zZGstJXtq YXZhdmVyfS0le29yaWdpbn0gPSAle3ZlcnNpb259Ci1Qcm92aWRlczogamF2YS1zZGstJXtqYXZh dmVyfSA9ICV7dmVyc2lvbn0KLVByb3ZpZGVzOiBqYXZhLXNkay0le29yaWdpbn0gPSAle3ZlcnNp b259Ci1Qcm92aWRlczogamF2YS1zZGsgPSAle2phdmF2ZXJ9Ci1Qcm92aWRlczogamF2YS0le2ph dmF2ZXJ9LWRldmVsID0gJXt2ZXJzaW9ufQotUHJvdmlkZXM6IGphdmEtZGV2ZWwtJXtvcmlnaW59 ID0gJXt2ZXJzaW9ufQotUHJvdmlkZXM6IGphdmEtZGV2ZWwgPSAle2phdmF2ZXJ9Ci0jIGphdmEt Z2NqLWNvbXBhdCBkZXZlbCBwcm92aWRlcwotUHJvdmlkZXM6IGphdmEtZ2NqLWNvbXBhdC1kZXZl bCA9IDEuMC43OQotUHJvdmlkZXM6IGphdmEtMS40LjItZ2NqLWNvbXBhdC1kZXZlbCA+IDEuNC4y LjAtNDBqcHAuMTExCi0KLU9ic29sZXRlczogamF2YS0xLjQuMi1nY2otY29tcGF0LWRldmVsIDw9 IDEuNC4yLjAtNDBqcHAuMTExCi0KLSVkZXNjcmlwdGlvbiAtbiBqYXZhLSV7amF2YXZlcn0tZ2Nq LWRldmVsCi1UaGlzIHBhY2thZ2UgaW5zdGFsbHMgZGlyZWN0b3J5IHN0cnVjdHVyZXMsIHNoZWxs IHNjcmlwdHMgYW5kIHN5bWJvbGljCi1saW5rcyB0byBzaW11bGF0ZSBhIEpQYWNrYWdlLWNvbXBh dGlibGUgZGV2ZWxvcG1lbnQgZW52aXJvbm1lbnQgd2l0aAotR0NKLgotCi0lcGFja2FnZSAtbiBq YXZhLSV7amF2YXZlcn0tZ2NqLXNyYwotU3VtbWFyeTogU291cmNlIGZpbGVzIGZvciBsaWJnY2oK LUdyb3VwOiAgIERldmVsb3BtZW50L0xpYnJhcmllcwotCi1SZXF1aXJlczogICAgICAgamF2YS0l e2phdmF2ZXJ9LWdjaiA9ICV7dmVyc2lvbn0tJXtyZWxlYXNlfQotUmVxdWlyZXM6ICAgICAgIGxp Ymdjai1zcmMgPSAle3ZlcnNpb259Ci0jIHBvc3QgcmVxdWlyZXMgZ2lqIHRvIHJldHJpZXZlIGdj YyB2ZXJzaW9uCi1SZXF1aXJlcyhwb3N0KTogJXtfYmluZGlyfS9naWoKLQotIyBqYXZhLWdjai1j b21wYXQgc3JjIHByb3ZpZGVzCi1Qcm92aWRlczogamF2YS0xLjQuMi1nY2otY29tcGF0LXNyYyA+ IDEuNC4yLjAtNDBqcHAuMTExCi0KLU9ic29sZXRlczogamF2YS0xLjQuMi1nY2otY29tcGF0LXNy YyA8PSAxLjQuMi4wLTQwanBwLjExMQotCi0lZGVzY3JpcHRpb24gLW4gamF2YS0le2phdmF2ZXJ9 LWdjai1zcmMKLVRoaXMgcGFja2FnZSBpbnN0YWxscyBhIHNyYy56aXAgc3ltYm9saWMgbGluayB0 aGF0IHBvaW50cyB0byBhCi1zcGVjaWZpYyB2ZXJzaW9uIG9mIHRoZSBsaWJnY2ogc291cmNlcy4K LQotJWlmICEgJXtib290c3RyYXBfamF2YX0KLSVwYWNrYWdlIC1uIGphdmEtJXtqYXZhdmVyfS1n Y2otamF2YWRvYwotU3VtbWFyeTogQVBJIGRvY3VtZW50YXRpb24gZm9yIGxpYmdjagotR3JvdXA6 ICAgRG9jdW1lbnRhdGlvbgotCi0jIHJlcXVpcmUgYmFzZSBwYWNrYWdlCi1SZXF1aXJlczogamF2 YS0le2phdmF2ZXJ9LWdjaiA9ICV7dmVyc2lvbn0tJXtyZWxlYXNlfQotCi0jIHN0YW5kYXJkIEpQ YWNrYWdlIGphdmFkb2MgcHJvdmlkZXMKLVByb3ZpZGVzOiBqYXZhLWphdmFkb2MgPSAle3ZlcnNp b259LSV7cmVsZWFzZX0KLVByb3ZpZGVzOiBqYXZhLSV7amF2YXZlcn0tamF2YWRvYyA9ICV7dmVy c2lvbn0tJXtyZWxlYXNlfQotIyBqYXZhLWdjai1jb21wYXQgamF2YWRvYyBwcm92aWRlcwotUHJv dmlkZXM6IGphdmEtMS40LjItZ2NqLWNvbXBhdC1qYXZhZG9jID4gMS40LjIuMC00MGpwcC4xMTEK LQotT2Jzb2xldGVzOiBqYXZhLTEuNC4yLWdjai1jb21wYXQtamF2YWRvYyA8PSAxLjQuMi4wLTQw anBwLjExMQotT2Jzb2xldGVzOiBnbnUtY3J5cHRvLWphdmFkb2MgPD0gMi4xLjAtMmpwcC4xCi0K LSVkZXNjcmlwdGlvbiAtbiBqYXZhLSV7amF2YXZlcn0tZ2NqLWphdmFkb2MKLVRoaXMgcGFja2Fn ZSBpbnN0YWxscyBKYXZhZG9jIEFQSSBkb2N1bWVudGF0aW9uIGZvciBsaWJnY2ouCi0lZW5kaWYK LQogJXBhY2thZ2UgLW4gY3BwCiBTdW1tYXJ5OiBUaGUgQyBQcmVwcm9jZXNzb3IKIEdyb3VwOiBE ZXZlbG9wbWVudC9MYW5ndWFnZXMKQEAgLTYyNiwxMCArNDM2LDggQEAgd2hpY2ggYXJlIHJlcXVp cmVkIHRvIGNvbXBpbGUgd2l0aCB0aGUgR05BVC4KICVwYXRjaDIyIC1wMCAtYiAucmF3LXN0cmlu Z34KICVwYXRjaDI0IC1wMCAtYiAuYXRvbX4KICVwYXRjaDI2IC1wMCAtYiAucG93ZXI3fgotJXBh dGNoMjcgLXAwIC1iIC5wb3dlcjctMn4KICVwYXRjaDI4IC1wMCAtYiAucHIzODc1N34KICMlcGF0 Y2gzMCAtcDAgLWIgLnByMzk1NDN+Ci0lcGF0Y2gzMSAtcDAgLWIgLmxpYmphdmEtaTM4Nn4KIAog IyBUaGlzIHRlc3RjYXNlIGRvZXNuJ3QgY29tcGlsZS4KIHJtIGxpYmphdmEvdGVzdHN1aXRlL2xp YmphdmEubGFuZy9QUjM1MDIwKgpAQCAtNzU2LDcgKzU2NCw2IEBAIGNhc2UgIiRPUFRfRkxBR1Mi IGluCiAgICAgICAuLi9nY2MvTWFrZWZpbGUuaW4KICAgICA7OwogZXNhYwotCiBDQz0iJENDIiBD RkxBR1M9IiRPUFRfRkxBR1MiIENYWEZMQUdTPSJgZWNobyAkT1BUX0ZMQUdTIHwgc2VkICdzLyAt V2FsbCAvIC9nJ2AiIFhDRkxBR1M9IiRPUFRfRkxBR1MiIFRDRkxBR1M9IiRPUFRfRkxBR1MiIFwK IAlHQ0pGTEFHUz0iJE9QVF9GTEFHUyIgXAogCS4uL2NvbmZpZ3VyZSAtLXByZWZpeD0le19wcmVm aXh9IC0tbWFuZGlyPSV7X21hbmRpcn0gLS1pbmZvZGlyPSV7X2luZm9kaXJ9IFwKQEAgLTc3Miwx MSArNTc5LDggQEAgQ0M9IiRDQyIgQ0ZMQUdTPSIkT1BUX0ZMQUdTIiBDWFhGTEFHUz0iYGVjaG8g JE9QVF9GTEFHUyB8IHNlZCAncy8gLVdhbGwgLyAvZydgIiAKIAktLWRpc2FibGUtbGliZ2NqIFwK ICVlbHNlCiAJLS1lbmFibGUtamF2YS1hd3Q9Z3RrIC0tZGlzYWJsZS1kc3NpIC0tZW5hYmxlLXBs dWdpbiBcCi0JLS13aXRoLWphdmEtaG9tZT0le19wcmVmaXh9L2xpYi9qdm0vJXtqYXZhZGlybmFt ZX0vanJlIFwKLQktLWVuYWJsZS1saWJnY2otbXVsdGlmaWxlIC0tZW5hYmxlLWphdmEtaG9tZSAt LWVuYWJsZS1hb3QtY29tcGlsZS1ycG0gXAotCS0td2l0aC1qdm0tcm9vdC1kaXI9XCR7cHJlZml4 fS9saWIvanZtLyV7amF2YWRpcm5hbWV9IFwKLQktLXdpdGgtanZtLWphci1kaXI9XCR7cHJlZml4 fS9saWIvanZtLWV4cG9ydHMvJXtqYXZhZGlybmFtZX0gXAotCS0td2l0aC1weXRob24tZGlyPSV7 cHl0aG9uX3NpdGVsaWJ9IFwKKwktLXdpdGgtamF2YS1ob21lPSV7X3ByZWZpeH0vbGliL2p2bS9q YXZhLTEuNS4wLWdjai0xLjUuMC4wL2pyZSBcCisJLS1lbmFibGUtbGliZ2NqLW11bHRpZmlsZSBc CiAlaWYgISV7Ym9vdHN0cmFwX2phdmF9CiAJLS1lbmFibGUtamF2YS1tYWludGFpbmVyLW1vZGUg XAogJWVuZGlmCkBAIC0xMzA1LDEyNiArMTEwOSw2IEBAIGNobW9kIDc1NSAkUlBNX0JVSUxEX1JP T1Qle19wcmVmaXh9L3NoYXJlL2phdmEvZ2NqLWVuZG9yc2VkIFwKIAkgICRSUE1fQlVJTERfUk9P VCV7X3ByZWZpeH0vJXtfbGlifS9nY2otJXt2ZXJzaW9ufSBcCiAJICAkUlBNX0JVSUxEX1JPT1Ql e19wcmVmaXh9LyV7X2xpYn0vZ2NqLSV7dmVyc2lvbn0vY2xhc3NtYXAuZGIuZAogdG91Y2ggJFJQ TV9CVUlMRF9ST09UJXtfcHJlZml4fS8le19saWJ9L2djai0le3ZlcnNpb259L2NsYXNzbWFwLmRi Ci0KLSMgdmVyc2lvbmxlc3Mgc3ltYm9saWMgbGlua3MKLXB1c2hkICRSUE1fQlVJTERfUk9PVCV7 X2p2bWRpcn0KLSAgIGxuIC1zICV7anJlZGlyfSAle2pyZWxua30KLSAgIGxuIC1zICV7c2RrZGly fSAle3Nka2xua30KLXBvcGQKLXB1c2hkICRSUE1fQlVJTERfUk9PVCV7X2p2bWphcmRpcn0KLSAg IGxuIC1zICV7c2RrZGlyfSAle2pyZWxua30KLSAgIGxuIC1zICV7c2RrZGlyfSAle3Nka2xua30K LXBvcGQKLQotIyBjcmVhdGUgcmVsZXZhbnQgbGlua3MgaW4ganJlIGxpYiBkaXIgZm9yIGJhY2t3 YXJkcyBjb21wYXRpYmlsaXR5Ci1wdXNoZCAkUlBNX0JVSUxEX1JPT1Qle19qdm1kaXJ9LyV7anJl ZGlyfS9saWIKLWZvciBqYXJuYW1lIGluIGphYXMgamNlIGpkYmMtc3RkZXh0IGpuZGkgam5kaS1j b3Mgam5kaS1kbnMgXAotICAgIGpuZGktbGRhcCBqbmRpLXJtaSBqc3NlIHNhc2w7IGRvCi0gICAg bG4gLXNmIHJ0LmphciAkamFybmFtZS5qYXI7Ci1kb25lCi1wb3BkCi0KLSMgc2VjdXJpdHkgZGly ZWN0b3J5IGFuZCBwcm92aWRlciBsaXN0Ci1pbnN0YWxsIC1kbSA3NTUgJFJQTV9CVUlMRF9ST09U JXtfanZtZGlyfS8le2pyZWRpcn0vbGliL3NlY3VyaXR5Ci1wdXNoZCAkUlBNX0JVSUxEX1JPT1Ql e19qdm1kaXJ9LyV7anJlZGlyfS9saWIvc2VjdXJpdHkKLSAgUkVMQVRJVkU9JCgle2FiczJyZWx9 ICV7X3ByZWZpeH0vJXtfbGlifS9zZWN1cml0eSBcCi0gICAgJXtfanZtZGlyfS8le2pyZWRpcn0v bGliL3NlY3VyaXR5KQotICBsbiAtc2YgJFJFTEFUSVZFL2NsYXNzcGF0aC5zZWN1cml0eSBqYXZh LnNlY3VyaXR5Ci1wb3BkCi0jIGRlZmF1bHQgc2VjdXJpdHkgcHJvdmlkZXJzLCBwcm92aWRlZCBi eSBsaWJnY2oKLWluc3RhbGwgLWRtIDc1NSAkUlBNX0JVSUxEX1JPT1Qle19zeXNjb25mZGlyfS9q YXZhL3NlY3VyaXR5L3NlY3VyaXR5LmQKLWZvciBwcm92aWRlciBpbiBcCi0gIDEwMDAtZ251Lmph dmEuc2VjdXJpdHkucHJvdmlkZXIuR251IFwKLSAgMTAwMS1nbnUuamF2YXguY3J5cHRvLmpjZS5H bnVDcnlwdG8gXAotICAxMDAyLWdudS5qYXZheC5jcnlwdG8uamNlLkdudVNhc2wgXAotICAxMDAz LWdudS5qYXZheC5uZXQuc3NsLnByb3ZpZGVyLkplc3NpZSBcCi0gIDEwMDQtZ251LmphdmF4LnNl Y3VyaXR5LmF1dGguY2FsbGJhY2suR251Q2FsbGJhY2tzCi1kbwotICBjYXQgPiAkUlBNX0JVSUxE X1JPT1Qle19zeXNjb25mZGlyfS9qYXZhL3NlY3VyaXR5L3NlY3VyaXR5LmQvJHByb3ZpZGVyIDw8 IEVPRgotIyBUaGlzIGZpbGUncyBjb250ZW50cyBhcmUgaWdub3JlZC4gIEl0cyBuYW1lLCBvZiB0 aGUgZm9ybQotIyA8cHJpb3JpdHk+LTxwcm92aWRlciBuYW1lPiwgaXMgdXNlZCBieSBwb3N0IGFu ZCBwb3N0dW4gc2NyaXB0cyB0bwotIyByZWJ1aWxkIHRoZSBsaXN0IG9mIHNlY3VyaXR5IHByb3Zp ZGVycyBpbiBsaWJnY2oncwotIyBjbGFzc3BhdGguc2VjdXJpdHkgZmlsZS4KLUVPRgotCi1kb25l Ci0jIGNhY2VydHMKLSV7X19wZXJsfSAle1NPVVJDRTV9Ci1pbnN0YWxsIC1tIDY0NCBjYWNlcnRz ICRSUE1fQlVJTERfUk9PVCV7X2p2bWRpcn0vJXtqcmVkaXJ9L2xpYi9zZWN1cml0eQotCi0jIGNs YXNzbWFwIGRhdGFiYXNlIGRpcmVjdG9yeQotaW5zdGFsbCAtZG0gNzU1ICRSUE1fQlVJTERfUk9P VCV7X3ByZWZpeH0vJXtfbGlifS9nY2oKLQotIyBzZXQgdXAgZWNqIGxpbmsKLVJFTEFUSVZFPSQo JXthYnMycmVsfSAle19wcmVmaXh9L2JpbiAle19qdm1kaXJ9LyV7c2RrZGlyfS9iaW4pCi1sbiAt c2YgXAotICAkUkVMQVRJVkUvZWNqIFwKLSAgJFJQTV9CVUlMRF9ST09UJXtfanZtZGlyfS8le3Nk a2Rpcn0vYmluL2phdmFjCi0KLSMgc291cmNlIHppcAotUkVMQVRJVkU9JCgle2FiczJyZWx9ICV7 X2phdmFkaXJ9ICV7X2p2bWRpcn0vJXtzZGtkaXJ9KQotbG4gLXMgXAotICAkUkVMQVRJVkUvc3Jj LSV7dmVyc2lvbn0uemlwIFwKLSAgJFJQTV9CVUlMRF9ST09UJXtfanZtZGlyfS8le3Nka2Rpcn0v c3JjLnppcAotCi0jdXNlIGZhc3RqYXIgaW5zdGVhZCBvZiBnamFyCi1SRUxBVElWRT0kKCV7YWJz MnJlbH0gJXtfcHJlZml4fS9iaW4gJXtfanZtZGlyfS8le3Nka2Rpcn0vYmluKQotbG4gLXNmIFwK LSAgJFJFTEFUSVZFL2Zhc3RqYXIgXAotICAkUlBNX0JVSUxEX1JPT1Qle19qdm1kaXJ9LyV7c2Rr ZGlyfS9iaW4vamFyCi0KLSMgdXNlIHNpbmpkb2MgaWYgbm90IGJvb3RzdHJhcHBpbmcKLSVpZiAh ICV7Ym9vdHN0cmFwX2phdmF9Ci1sbiAtc2YgXAotICAkUkVMQVRJVkUvc2luamRvYyBcCi0gICRS UE1fQlVJTERfUk9PVCV7X2p2bWRpcn0vJXtzZGtkaXJ9L2Jpbi9qYXZhZG9jCi0lZW5kaWYKLQot IyBhcmNoIGRpciBmb3IgeDg2XzY0IHNob3VsZCBiZSB4ODZfNjQsIHdpdGggYW1kNjQgYmVpbmcg YSBsaW5rICh0byBrZWVwIHRoZSAKLSMgcGFja2FnZSBiYWNrd2FyZHMgY29tcGF0aWJsZSkKLSVp ZmFyY2ggeDg2XzY0Ci1pZiBbIC1kICRSUE1fQlVJTERfUk9PVCV7X2p2bWRpcn0vJXtqcmVkaXJ9 L2xpYi9hbWQ2NCBdOyB0aGVuCi0KLSAgbXYgJFJQTV9CVUlMRF9ST09UJXtfanZtZGlyfS8le2py ZWRpcn0vbGliL2FtZDY0IFwKLSAgICAgJFJQTV9CVUlMRF9ST09UJXtfanZtZGlyfS8le2pyZWRp cn0vbGliL3g4Nl82NAotCi0gIGxuIC1zIHg4Nl82NCAkUlBNX0JVSUxEX1JPT1Qle19qdm1kaXJ9 LyV7anJlZGlyfS9saWIvYW1kNjQKLWZpCi0lZW5kaWYKLQotJWlmICEgJXtib290c3RyYXBfamF2 YX0KLSMgYnVpbGQgYW5kIGluc3RhbGwgQVBJIGRvY3VtZW50YXRpb24KLWluc3RhbGwgLWRtIDc1 NSAkUlBNX0JVSUxEX1JPT1Qle19qYXZhZG9jZGlyfS9qYXZhLSV7amF2YXZlcn0tZ2NqCi1wdXNo ZCAkUlBNX0JVSUxEX1JPT1Qle19qYXZhZG9jZGlyfQotICBsbiAtcyBqYXZhLSV7amF2YXZlcn0t Z2NqIGphdmEKLXBvcGQKLXJtIC1yZiBkb2NzYnVpbGQKLW1rZGlyIGRvY3NidWlsZAotcHVzaGQg ZG9jc2J1aWxkCi0gIGVjaG8gPT09PSBDSEVDSyBaSVAgPT09PQotICB1bnppcCAtdHEgJFJQTV9C VUlMRF9ST09UL3Vzci9zaGFyZS9qYXZhL3NyYy0le3ZlcnNpb259LnppcCB8fCA6Ci0gIGVjaG8g PT09PSBFTkQgQ0hFQ0sgWklQID09PT0KLSAgaWYgdW56aXAgLXRxIC91c3Ivc2hhcmUvamF2YS9z cmMtJXt2ZXJzaW9ufS56aXAKLSAgdGhlbgotICAgIGZhc3RqYXIgeHZmIC91c3Ivc2hhcmUvamF2 YS9zcmMtJXt2ZXJzaW9ufS56aXAKLSAgICBybSAtcmYgZ251Ci0gICAgZmluZCAuLyAtbmFtZSBc Ki5qYXZhIHwgeGFyZ3MgLW4gMSBkaXJuYW1lIHwgc29ydCB8IHVuaXEgXAotICAgICAgfCBzZWQg LWUgInMvXC5cLy8vIiB8IHNlZCAtZSAicy9cLy9cLi8iIFwKLSAgICAgIHwgc2VkIC1lICJzL1wv L1wuLyIgfCBzZWQgLWUgInMvXC8vXC4vIiBcCi0gICAgICB8IHNlZCAtZSAicy9cLy9cLi8iIHwg c2VkIC1lICJzL1wvL1wuLyIgXAotICAgICAgfCB4YXJncyAle19qdm1kaXJ9L2phdmEtb3Blbmpk ay9iaW4vamF2YWRvYyAtcXVpZXQgXAotICAgICAgLWQgJFJQTV9CVUlMRF9ST09UJXtfamF2YWRv Y2Rpcn0vJXtuYW1lfSBcCi0gICAgICAtZW5jb2RpbmcgVVRGLTggLWJyZWFraXRlcmF0b3IgXAot ICAgICAgLWxpbmtzb3VyY2UgLXNwbGl0aW5kZXggLWRvY3RpdGxlICJHTlUgbGliZ2NqICV7dmVy c2lvbn0iIFwKLSAgICAgIC13aW5kb3d0aXRsZSAiR05VIGxpYmdjaiAle3ZlcnNpb259IERvY3Vt ZW50YXRpb24iCi0gIGVsc2UKLSAgICAjIFdvcmsgYXJvdW5kIGh0dHBzOi8vYnVnemlsbGEucmVk aGF0LmNvbS9zaG93X2J1Zy5jZ2k/aWQ9NDA0OTgxCi0gICAgdG91Y2ggJFJQTV9CVUlMRF9ST09U JXtfamF2YWRvY2Rpcn0vJXtuYW1lfS9wYWNrYWdlLWxpc3QKLSAgZmkKLXBvcGQKLSVlbmRpZgot Ci0KICVlbmRpZgogCiBpbnN0YWxsIC1tNjQ0ICV7U09VUkNFM30gJFJQTV9CVUlMRF9ST09UJXtf bWFuZGlyfS9tYW4xL3Byb3RvaXplLjEKQEAgLTE1MjIsMTI4ICsxMjA2LDYgQEAgZmkKIAogJXBv c3R1biAtbiBsaWJnY2ogLXAgL3NiaW4vbGRjb25maWcKIAotJXBvc3QgLW4gamF2YS0le2phdmF2 ZXJ9LWdjagotYWx0ZXJuYXRpdmVzIFwKLSAgLS1pbnN0YWxsICV7X2JpbmRpcn0vamF2YSBqYXZh ICV7anJlYmluZGlyfS9qYXZhICV7cHJpb3JpdHl9IFwKLSAgLS1zbGF2ZSAle19qdm1kaXJ9L2py ZSAgICAgICAgICBqcmUgICAgICAgICAgJXtfanZtZGlyfS8le2pyZWxua30gXAotICAtLXNsYXZl ICV7X2p2bWphcmRpcn0vanJlICAgICAgIGpyZV9leHBvcnRzICAle19qdm1qYXJkaXJ9LyV7anJl bG5rfSBcCi0gIC0tc2xhdmUgJXtfYmluZGlyfS9rZXl0b29sICAgICAga2V5dG9vbCAgICAgICV7 anJlYmluZGlyfS9rZXl0b29sIFwKLSAgLS1zbGF2ZSAle19iaW5kaXJ9L3JtaXJlZ2lzdHJ5ICBy bWlyZWdpc3RyeSAgJXtqcmViaW5kaXJ9L3JtaXJlZ2lzdHJ5Ci0KLWFsdGVybmF0aXZlcyBcCi0g IC0taW5zdGFsbCAle19qdm1kaXJ9L2pyZS0le29yaWdpbn0gXAotICBqcmVfJXtvcmlnaW59ICV7 X2p2bWRpcn0vJXtqcmVsbmt9ICV7cHJpb3JpdHl9IFwKLSAgLS1zbGF2ZSAle19qdm1qYXJkaXJ9 L2pyZS0le29yaWdpbn0gXAotICBqcmVfJXtvcmlnaW59X2V4cG9ydHMgJXtfanZtamFyZGlyfS8l e2pyZWxua30KLQotYWx0ZXJuYXRpdmVzIFwKLSAgLS1pbnN0YWxsICV7X2p2bWRpcn0vanJlLSV7 amF2YXZlcn0gXAotICBqcmVfJXtqYXZhdmVyfSAle19qdm1kaXJ9LyV7anJlbG5rfSAle3ByaW9y aXR5fSBcCi0gIC0tc2xhdmUgJXtfanZtamFyZGlyfS9qcmUtJXtqYXZhdmVyfSBcCi0gIGpyZV8l e2phdmF2ZXJ9X2V4cG9ydHMgJXtfanZtamFyZGlyfS8le2pyZWxua30KLQotYWx0ZXJuYXRpdmVz IC0taW5zdGFsbCAle19qYXZhZGlyfS9qYXhwX3BhcnNlcl9pbXBsLmphciBcCi0gIGpheHBfcGFy c2VyX2ltcGwgJXtfamF2YWRpcn0vbGliZ2NqLSV7dmVyc2lvbn0uamFyIDIwCi0KLXsKLSAgIyBS ZWJ1aWxkIHRoZSBsaXN0IG9mIHNlY3VyaXR5IHByb3ZpZGVycyBpbiBjbGFzc3BhdGguc2VjdXJp dHkuCi0gICMgVGhpcyB1c2VkIHRvIGJlIGEgc3RhbmRhbG9uZSBzY3JpcHQsIHJlYnVpbGQtc2Vj dXJpdHktcHJvdmlkZXJzLAotICAjIHByb3ZpZGVkIGJ5IHRoZSBGZWRvcmEgdmVyc2lvbiBvZiBq cGFja2FnZS11dGlscy4gIE5vdyBpdCBpcwotICAjIGlubGluZWQgaGVyZSBhbmQgcmVtb3ZlZCBm cm9tIEZlZG9yYSdzIGpwYWNrYWdlLXV0aWxzIGZvcgotICAjIGNvbXBhdGliaWxpdHkgd2l0aCBq cGFja2FnZS5vcmcncyBqcGFja2FnZS11dGlscy4gIFNlZToKLSAgIyBodHRwczovL2J1Z3ppbGxh LnJlZGhhdC5jb20vc2hvd19idWcuY2dpP2lkPTI2MDE2MQotICBzdWZmaXg9c2VjdXJpdHkvY2xh c3NwYXRoLnNlY3VyaXR5Ci0gIHNlY2ZpbGVzPSIvdXNyL2xpYi8kc3VmZml4IC91c3IvbGliNjQv JHN1ZmZpeCIKLQotICBmb3Igc2VjZmlsZSBpbiAkc2VjZmlsZXMKLSAgZG8KLSAgICAjIGNoZWNr IGlmIHRoaXMgY2xhc3NwYXRoLnNlY3VyaXR5IGZpbGUgZXhpc3RzCi0gICAgWyAtZiAiJHNlY2Zp bGUiIF0gfHwgY29udGludWUKLQotICAgIHNlZCAtaSAnL15zZWN1cml0eVwucHJvdmlkZXJcLi9k JyAiJHNlY2ZpbGUiCi0KLSAgICBjb3VudD0wCi0gICAgZm9yIHByb3ZpZGVyIGluICQobHMgL2V0 Yy9qYXZhL3NlY3VyaXR5L3NlY3VyaXR5LmQpCi0gICAgZG8KLSAgICAgIGNvdW50PSQoKGNvdW50 ICsgMSkpCi0gICAgICBlY2hvICJzZWN1cml0eS5wcm92aWRlci4ke2NvdW50fT0ke3Byb3ZpZGVy IyotfSIgPj4gIiRzZWNmaWxlIgotICAgIGRvbmUKLSAgZG9uZQotfSB8fCA6Ci0KLWlmIFsgLXgg JXtfYmluZGlyfS9yZWJ1aWxkLWdjai1kYiBdCi10aGVuCi0gICV7X2JpbmRpcn0vcmVidWlsZC1n Y2otZGIKLWZpCi0KLSVwb3N0dW4gLW4gamF2YS0le2phdmF2ZXJ9LWdjagotaWYgWyAkMSAtZXEg MCBdCi10aGVuCi0gIGFsdGVybmF0aXZlcyAtLXJlbW92ZSBqYXZhICV7anJlYmluZGlyfS9qYXZh Ci0gIGFsdGVybmF0aXZlcyAtLXJlbW92ZSBqcmVfJXtvcmlnaW59ICV7X2p2bWRpcn0vJXtqcmVs bmt9Ci0gIGFsdGVybmF0aXZlcyAtLXJlbW92ZSBqcmVfJXtqYXZhdmVyfSAle19qdm1kaXJ9LyV7 anJlbG5rfQotICBhbHRlcm5hdGl2ZXMgLS1yZW1vdmUgamF4cF9wYXJzZXJfaW1wbCBcCi0gICAg JXtfamF2YWRpcn0vbGliZ2NqLSV7dmVyc2lvbn0uamFyCi1maQotCi17Ci0gICMgUmVidWlsZCB0 aGUgbGlzdCBvZiBzZWN1cml0eSBwcm92aWRlcnMgaW4gY2xhc3NwYXRoLnNlY3VyaXR5Ci0gIHN1 ZmZpeD1zZWN1cml0eS9jbGFzc3BhdGguc2VjdXJpdHkKLSAgc2VjZmlsZXM9Ii91c3IvbGliLyRz dWZmaXggL3Vzci9saWI2NC8kc3VmZml4IgotCi0gIGZvciBzZWNmaWxlIGluICRzZWNmaWxlcwot ICBkbwotICAgICMgY2hlY2sgaWYgdGhpcyBjbGFzc3BhdGguc2VjdXJpdHkgZmlsZSBleGlzdHMK LSAgICBbIC1mICIkc2VjZmlsZSIgXSB8fCBjb250aW51ZQotCi0gICAgc2VkIC1pICcvXnNlY3Vy aXR5XC5wcm92aWRlclwuL2QnICIkc2VjZmlsZSIKLQotICAgIGNvdW50PTAKLSAgICBmb3IgcHJv dmlkZXIgaW4gJChscyAvZXRjL2phdmEvc2VjdXJpdHkvc2VjdXJpdHkuZCkKLSAgICBkbwotICAg ICAgY291bnQ9JCgoY291bnQgKyAxKSkKLSAgICAgIGVjaG8gInNlY3VyaXR5LnByb3ZpZGVyLiR7 Y291bnR9PSR7cHJvdmlkZXIjKi19IiA+PiAiJHNlY2ZpbGUiCi0gICAgZG9uZQotICBkb25lCi19 IHx8IDoKLQotaWYgWyAteCAle19iaW5kaXJ9L3JlYnVpbGQtZ2NqLWRiIF0KLXRoZW4KLSAgJXtf YmluZGlyfS9yZWJ1aWxkLWdjai1kYgotZmkKLQotJXBvc3QgLW4gamF2YS0le2phdmF2ZXJ9LWdj ai1kZXZlbAotYWx0ZXJuYXRpdmVzIFwKLSAgLS1pbnN0YWxsICV7X2JpbmRpcn0vamF2YWMgamF2 YWMgJXtzZGtiaW5kaXJ9L2phdmFjICV7cHJpb3JpdHl9IFwKLSAgLS1zbGF2ZSAle19qdm1kaXJ9 L2phdmEgICAgICAgICBqYXZhX3NkayAgICAgICAgICAle19qdm1kaXJ9LyV7c2RrbG5rfSBcCi0g IC0tc2xhdmUgJXtfanZtamFyZGlyfS9qYXZhICAgICAgamF2YV9zZGtfZXhwb3J0cyAgJXtfanZt amFyZGlyfS8le3Nka2xua30gXAotICAtLXNsYXZlICV7X2JpbmRpcn0vamF2YWRvYyAgICAgIGph dmFkb2MgICAgICAgICAgICV7c2RrYmluZGlyfS9qYXZhZG9jIFwKLSAgLS1zbGF2ZSAle19iaW5k aXJ9L2phdmFoICAgICAgICBqYXZhaCAgICAgICAgICAgICAle3Nka2JpbmRpcn0vamF2YWggXAot ICAtLXNsYXZlICV7X2JpbmRpcn0vamFyICAgICAgICAgIGphciAgICAgICAgICAgICAgICV7c2Rr YmluZGlyfS9qYXIgXAotICAtLXNsYXZlICV7X2JpbmRpcn0vamFyc2lnbmVyICAgIGphcnNpZ25l ciAgICAgICAgICV7c2RrYmluZGlyfS9qYXJzaWduZXIgXAotICAtLXNsYXZlICV7X2JpbmRpcn0v YXBwbGV0dmlld2VyIGFwcGxldHZpZXdlciAgICAgICV7c2RrYmluZGlyfS9hcHBsZXR2aWV3ZXIg XAotICAtLXNsYXZlICV7X2JpbmRpcn0vcm1pYyAgICAgICAgIHJtaWMgICAgICAgICAgICAgICV7 c2RrYmluZGlyfS9ybWljCi0KLWFsdGVybmF0aXZlcyBcCi0gIC0taW5zdGFsbCAle19qdm1kaXJ9 L2phdmEtJXtvcmlnaW59IFwKLSAgamF2YV9zZGtfJXtvcmlnaW59ICV7X2p2bWRpcn0vJXtzZGts bmt9ICV7cHJpb3JpdHl9IFwKLSAgLS1zbGF2ZSAle19qdm1qYXJkaXJ9L2phdmEtJXtvcmlnaW59 IFwKLSAgamF2YV9zZGtfJXtvcmlnaW59X2V4cG9ydHMgJXtfanZtamFyZGlyfS8le3Nka2xua30K LQotYWx0ZXJuYXRpdmVzIFwKLSAgLS1pbnN0YWxsICV7X2p2bWRpcn0vamF2YS0le2phdmF2ZXJ9 IFwKLSAgamF2YV9zZGtfJXtqYXZhdmVyfSAle19qdm1kaXJ9LyV7c2RrbG5rfSAle3ByaW9yaXR5 fSBcCi0gIC0tc2xhdmUgJXtfanZtamFyZGlyfS9qYXZhLSV7amF2YXZlcn0gXAotICBqYXZhX3Nk a18le2phdmF2ZXJ9X2V4cG9ydHMgJXtfanZtamFyZGlyfS8le3Nka2xua30KLQotJXBvc3R1biAt biBqYXZhLSV7amF2YXZlcn0tZ2NqLWRldmVsCi1pZiBbICQxIC1lcSAwIF0KLXRoZW4KLSAgYWx0 ZXJuYXRpdmVzIC0tcmVtb3ZlIGphdmFjICV7c2RrYmluZGlyfS9qYXZhYwotICBhbHRlcm5hdGl2 ZXMgLS1yZW1vdmUgamF2YV9zZGtfJXtvcmlnaW59ICV7X2p2bWRpcn0vJXtzZGtsbmt9Ci0gIGFs dGVybmF0aXZlcyAtLXJlbW92ZSBqYXZhX3Nka18le2phdmF2ZXJ9ICV7X2p2bWRpcn0vJXtzZGts bmt9Ci1maQotCiAlcG9zdCAtbiBsaWJnZm9ydHJhbiAtcCAvc2Jpbi9sZGNvbmZpZwogCiAlcG9z dHVuIC1uIGxpYmdmb3J0cmFuIC1wIC9zYmluL2xkY29uZmlnCkBAIC0yMDkzLDEzNyArMTY1NSw2 IEBAIGZpCiAlZGlyICV7X3ByZWZpeH0vc2hhcmUvamF2YQogJXtfcHJlZml4fS9zaGFyZS9qYXZh L3NyYyouemlwCiAle19wcmVmaXh9L3NoYXJlL2phdmEvbGliZ2NqLXRvb2xzLSV7dmVyc2lvbn0u amFyCi0KLSVmaWxlcyAtbiBqYXZhLSV7amF2YXZlcn0tZ2NqCi0lZGVmYXR0cigtLHJvb3Qscm9v dCwtKQotJWRpciAle19qdm1kaXJ9LyV7c2RrZGlyfQotJWRpciAle19qdm1kaXJ9LyV7anJlZGly fQotJWRpciAle19qdm1kaXJ9LyV7anJlZGlyfS9iaW4KLSVkaXIgJXtfanZtZGlyfS8le2pyZWRp cn0vbGliCi0lZGlyICV7X2p2bWRpcn0vJXtqcmVkaXJ9L2xpYi8le19hcmNofQotJWRpciAle19q dm1kaXJ9LyV7anJlZGlyfS9saWIvJXtfYXJjaH0vY2xpZW50Ci0lZGlyICV7X2p2bWRpcn0vJXtq cmVkaXJ9L2xpYi8le19hcmNofS9zZXJ2ZXIKLSVkaXIgJXtfanZtZGlyfS8le2pyZWRpcn0vbGli L3NlY3VyaXR5Ci0lZGlyICV7anZtamFyZGlyfQotJWRpciAle19wcmVmaXh9LyV7X2xpYn0vZ2Nq Ci0le19iaW5kaXJ9L3JlYnVpbGQtZ2NqLWRiCi0le19qdm1kaXJ9LyV7anJlZGlyfS9iaW4vamF2 YQotJXtfanZtZGlyfS8le2pyZWRpcn0vYmluL2tleXRvb2wKLSV7X2p2bWRpcn0vJXtqcmVkaXJ9 L2Jpbi9ybWlyZWdpc3RyeQotJXtfanZtZGlyfS8le2pyZWRpcn0vYmluL29yYmQKLSV7X2p2bWRp cn0vJXtqcmVkaXJ9L2Jpbi9ybWlkCi0le19qdm1kaXJ9LyV7anJlZGlyfS9iaW4vdG5hbWVzZXJ2 Ci0le19qdm1kaXJ9LyV7anJlZGlyfS9saWIvc2VjdXJpdHkvY2FjZXJ0cwotJXtfanZtZGlyfS8l e2pyZWRpcn0vbGliL3NlY3VyaXR5L2phdmEuc2VjdXJpdHkKLSV7X2p2bWRpcn0vJXtqcmVkaXJ9 L2xpYi9qYWFzLmphcgotJXtfanZtZGlyfS8le2pyZWRpcn0vbGliL2pjZS5qYXIKLSV7X2p2bWRp cn0vJXtqcmVkaXJ9L2xpYi9qZGJjLXN0ZGV4dC5qYXIKLSV7X2p2bWRpcn0vJXtqcmVkaXJ9L2xp Yi9qbmRpLWNvcy5qYXIKLSV7X2p2bWRpcn0vJXtqcmVkaXJ9L2xpYi9qbmRpLWRucy5qYXIKLSV7 X2p2bWRpcn0vJXtqcmVkaXJ9L2xpYi9qbmRpLWxkYXAuamFyCi0le19qdm1kaXJ9LyV7anJlZGly fS9saWIvam5kaS1ybWkuamFyCi0le19qdm1kaXJ9LyV7anJlZGlyfS9saWIvam5kaS5qYXIKLSV7 X2p2bWRpcn0vJXtqcmVkaXJ9L2xpYi9qc3NlLmphcgotJXtfanZtZGlyfS8le2pyZWRpcn0vbGli L3Nhc2wuamFyCi0laWZhcmNoIHg4Nl82NAotJXtfanZtZGlyfS8le2pyZWRpcn0vbGliL2FtZDY0 Ci0lZW5kaWYKLSV7X2p2bWRpcn0vJXtqcmVsbmt9Ci0le2p2bWphcmRpcn0vamFhcy5qYXIKLSV7 anZtamFyZGlyfS9qYWFzLSV7amF2YXZlcn0uamFyCi0le2p2bWphcmRpcn0vamFhcy0le2phdmF2 ZXJ9LiV7amF2YWJ1aWxkdmVyfS5qYXIKLSV7anZtamFyZGlyfS9qY2UuamFyCi0le2p2bWphcmRp cn0vamNlLSV7amF2YXZlcn0uamFyCi0le2p2bWphcmRpcn0vamNlLSV7amF2YXZlcn0uJXtqYXZh YnVpbGR2ZXJ9LmphcgotJXtqdm1qYXJkaXJ9L2pkYmMtc3RkZXh0LmphcgotJXtqdm1qYXJkaXJ9 L2pkYmMtc3RkZXh0LSV7amF2YXZlcn0uamFyCi0le2p2bWphcmRpcn0vamRiYy1zdGRleHQtJXtq YXZhdmVyfS4le2phdmFidWlsZHZlcn0uamFyCi0le2p2bWphcmRpcn0vam5kaS5qYXIKLSV7anZt amFyZGlyfS9qbmRpLSV7amF2YXZlcn0uamFyCi0le2p2bWphcmRpcn0vam5kaS0le2phdmF2ZXJ9 LiV7amF2YWJ1aWxkdmVyfS5qYXIKLSV7anZtamFyZGlyfS9qbmRpLWNvcy5qYXIKLSV7anZtamFy ZGlyfS9qbmRpLWNvcy0le2phdmF2ZXJ9LmphcgotJXtqdm1qYXJkaXJ9L2puZGktY29zLSV7amF2 YXZlcn0uJXtqYXZhYnVpbGR2ZXJ9LmphcgotJXtqdm1qYXJkaXJ9L2puZGktZG5zLmphcgotJXtq dm1qYXJkaXJ9L2puZGktZG5zLSV7amF2YXZlcn0uamFyCi0le2p2bWphcmRpcn0vam5kaS1kbnMt JXtqYXZhdmVyfS4le2phdmFidWlsZHZlcn0uamFyCi0le2p2bWphcmRpcn0vam5kaS1sZGFwLmph cgotJXtqdm1qYXJkaXJ9L2puZGktbGRhcC0le2phdmF2ZXJ9LmphcgotJXtqdm1qYXJkaXJ9L2pu ZGktbGRhcC0le2phdmF2ZXJ9LiV7amF2YWJ1aWxkdmVyfS5qYXIKLSV7anZtamFyZGlyfS9qbmRp LXJtaS5qYXIKLSV7anZtamFyZGlyfS9qbmRpLXJtaS0le2phdmF2ZXJ9LmphcgotJXtqdm1qYXJk aXJ9L2puZGktcm1pLSV7amF2YXZlcn0uJXtqYXZhYnVpbGR2ZXJ9LmphcgotJXtqdm1qYXJkaXJ9 L2pzc2UuamFyCi0le2p2bWphcmRpcn0vanNzZS0le2phdmF2ZXJ9LmphcgotJXtqdm1qYXJkaXJ9 L2pzc2UtJXtqYXZhdmVyfS4le2phdmFidWlsZHZlcn0uamFyCi0le2p2bWphcmRpcn0vc2FzbC5q YXIKLSV7anZtamFyZGlyfS9zYXNsLSV7amF2YXZlcn0uamFyCi0le2p2bWphcmRpcn0vc2FzbC0l e2phdmF2ZXJ9LiV7amF2YWJ1aWxkdmVyfS5qYXIKLSV7X2p2bWphcmRpcn0vJXtqcmVsbmt9Ci0l e19qdm1kaXJ9LyV7c2RrZGlyfS9qcmUvbGliL3J0LmphcgotJXtfanZtZGlyfS8le2pyZWRpcn0v bGliLyV7X2FyY2h9L2xpYmphd3Quc28KLSV7X2p2bWRpcn0vJXtqcmVkaXJ9L2xpYi8le19hcmNo fS9jbGllbnQvbGlianZtLnNvCi0le19qdm1kaXJ9LyV7anJlZGlyfS9saWIvJXtfYXJjaH0vc2Vy dmVyL2xpYmp2bS5zbwotIyBUaGVzZSBtdXN0IG5vdCBiZSBtYXJrZWQgJWNvbmZpZyhub3JlcGxh Y2UpLiAgVGhlaXIgZmlsZSBuYW1lcyBhcmUKLSMgdXNlZCBpbiBwb3N0IGFuZCBwb3N0dW4uICBU aGVpciBjb250ZW50cyBhcmUgaWdub3JlZCwgc28gcmVwbGFjaW5nCi0jIHRoZW0gZG9lc24ndCBt YXR0ZXIuICAucnBtbmV3IGZpbGVzIGFyZSBoYXJtZnVsIHNpbmNlIHRoZXkncmUKLSMgaW50ZXJw cmV0ZWQgYnkgcG9zdCBhbmQgcG9zdHVuIGFzIGNsYXNzbmFtZXMgZW5kaW5nIGluIHJwbW5ldy4K LSV7X3N5c2NvbmZkaXJ9L2phdmEvc2VjdXJpdHkvc2VjdXJpdHkuZC8xMDAwLWdudS5qYXZhLnNl Y3VyaXR5LnByb3ZpZGVyLkdudQotJXtfc3lzY29uZmRpcn0vamF2YS9zZWN1cml0eS9zZWN1cml0 eS5kLzEwMDEtZ251LmphdmF4LmNyeXB0by5qY2UuR251Q3J5cHRvCi0le19zeXNjb25mZGlyfS9q YXZhL3NlY3VyaXR5L3NlY3VyaXR5LmQvMTAwMi1nbnUuamF2YXguY3J5cHRvLmpjZS5HbnVTYXNs Ci0le19zeXNjb25mZGlyfS9qYXZhL3NlY3VyaXR5L3NlY3VyaXR5LmQvMTAwMy1nbnUuamF2YXgu bmV0LnNzbC5wcm92aWRlci5KZXNzaWUKLSV7X3N5c2NvbmZkaXJ9L2phdmEvc2VjdXJpdHkvc2Vj dXJpdHkuZC8xMDA0LWdudS5qYXZheC5zZWN1cml0eS5hdXRoLmNhbGxiYWNrLkdudUNhbGxiYWNr cwotCi0lZmlsZXMgLW4gamF2YS0le2phdmF2ZXJ9LWdjai1kZXZlbAotJWRlZmF0dHIoLSxyb290 LHJvb3QsLSkKLSVkaXIgJXtfanZtZGlyfS8le3Nka2Rpcn0vYmluCi0lZGlyICV7X2p2bWRpcn0v JXtzZGtkaXJ9L2luY2x1ZGUKLSVkaXIgJXtfanZtZGlyfS8le3Nka2Rpcn0vaW5jbHVkZS9saW51 eAotJWRpciAle19qdm1kaXJ9LyV7c2RrZGlyfS9saWIKLSV7X2JpbmRpcn0vYW90LWNvbXBpbGUK LSV7X2JpbmRpcn0vYW90LWNvbXBpbGUtcnBtCi0le19wcmVmaXh9LyV7cHl0aG9uX3NpdGVsaWJ9 L2FvdGNvbXBpbGUucHkqCi0le19wcmVmaXh9LyV7cHl0aG9uX3NpdGVsaWJ9L2NsYXNzZmlsZS5w eSoKLSV7X2p2bWRpcn0vJXtzZGtkaXJ9L2Jpbi9hcHBsZXR2aWV3ZXIKLSV7X2p2bWRpcn0vJXtz ZGtkaXJ9L2Jpbi9qYXIKLSV7X2p2bWRpcn0vJXtzZGtkaXJ9L2Jpbi9qYXJzaWduZXIKLSV7X2p2 bWRpcn0vJXtzZGtkaXJ9L2Jpbi9qYXZhCi0le19qdm1kaXJ9LyV7c2RrZGlyfS9iaW4vamF2YWMK LSV7X2p2bWRpcn0vJXtzZGtkaXJ9L2Jpbi9qYXZhZG9jCi0le19qdm1kaXJ9LyV7c2RrZGlyfS9i aW4vamF2YWgKLSV7X2p2bWRpcn0vJXtzZGtkaXJ9L2Jpbi9rZXl0b29sCi0le19qdm1kaXJ9LyV7 c2RrZGlyfS9iaW4vbmF0aXZlMmFzY2lpCi0le19qdm1kaXJ9LyV7c2RrZGlyfS9iaW4vb3JiZAot JXtfanZtZGlyfS8le3Nka2Rpcn0vYmluL3JtaWMKLSV7X2p2bWRpcn0vJXtzZGtkaXJ9L2Jpbi9y bWlkCi0le19qdm1kaXJ9LyV7c2RrZGlyfS9iaW4vcm1pcmVnaXN0cnkKLSV7X2p2bWRpcn0vJXtz ZGtkaXJ9L2Jpbi9zZXJpYWx2ZXIKLSV7X2p2bWRpcn0vJXtzZGtkaXJ9L2Jpbi90bmFtZXNlcnYK LSV7X2p2bWRpcn0vJXtzZGtsbmt9Ci0le19qdm1qYXJkaXJ9LyV7c2RrbG5rfQotJXtfanZtZGly fS8le3Nka2Rpcn0vaW5jbHVkZS9qYXd0LmgKLSV7X2p2bWRpcn0vJXtzZGtkaXJ9L2luY2x1ZGUv am5pLmgKLSV7X2p2bWRpcn0vJXtzZGtkaXJ9L2luY2x1ZGUvbGludXgvamF3dF9tZC5oCi0le19q dm1kaXJ9LyV7c2RrZGlyfS9pbmNsdWRlL2xpbnV4L2puaV9tZC5oCi0le19qdm1kaXJ9LyV7c2Rr ZGlyfS9saWIvdG9vbHMuamFyCi0KLSVmaWxlcyAtbiBqYXZhLSV7amF2YXZlcn0tZ2NqLXNyYwot JWRlZmF0dHIoLSxyb290LHJvb3QsLSkKLSV7X2p2bWRpcn0vJXtzZGtkaXJ9L3NyYy56aXAKLQot JWlmICEgJXtib290c3RyYXBfamF2YX0KLSVmaWxlcyAtbiBqYXZhLSV7amF2YXZlcn0tZ2NqLWph dmFkb2MKLSVkZWZhdHRyKC0scm9vdCxyb290LC0pCi0lZG9jICV7X2phdmFkb2NkaXJ9L2phdmEt JXtqYXZhdmVyfS1nY2oKLSMgQSBKUGFja2FnZSB0aGF0ICJwcm92aWRlcyIgdGhpcyBkaXJlY3Rv cnkgd2lsbCwgaW4gaXRzICVwb3N0IHNjcmlwdCwKLSMgcmVtb3ZlIHRoZSBleGlzdGluZyBkaXJl Y3RvcnkgYW5kIGluc3RhbGwgYSBuZXcgc3ltYm9saWMgbGluayB0byBpdHMKLSMgdmVyc2lvbmVk IGRpcmVjdG9yeS4gIEZvciBGZWRvcmEgd2Ugd2FudCBjbGVhciBmaWxlIG93bmVyc2hpcCBzbyB3 ZQotIyBtYWtlIGphdmEtMS41LjAtZ2NqLWphdmFkb2Mgb3duIHRoaXMgZmlsZS4gIEluc3RhbGxp bmcgdGhlCi0jIGNvcnJlc3BvbmRpbmcgSlBhY2thZ2Ugb3ZlciBqYXZhLTEuNS4wLWdjai1qYXZh ZG9jIHdpbGwgd29yayBidXQKLSMgd2lsbCBpbnZhbGlkYXRlIHRoaXMgZmlsZS4KLSVkb2MgJXtf amF2YWRvY2Rpcn0vamF2YQotJWVuZGlmCi0KICVlbmRpZgogCiAlaWYgJXtidWlsZF9hZGF9CkBA IC0yMzE3LDggKzE3NDgsMTMgQEAgZmkKICVkb2MgcnBtLmRvYy9jaGFuZ2Vsb2dzL2xpYm11ZGZs YXAvQ2hhbmdlTG9nKgogCiAlY2hhbmdlbG9nCi0qIEZyaSBBcHIgMTAgMjAwOSBEZWVwYWsgQmhv bGUgPGRiaG9sZUByZWRoYXQuY29tPiA0LjQuMC0wLjMzCi0tIGNyZWF0ZSBuZXcgamF2YS0xLjUu MC1nY2oqIHBhY2thZ2VzIHRvIGluc3RhbGwgSlBhY2thZ2UgY29tcGxpYW50IGxpbmtzCisqIFR1 ZSBBcHIgMTQgMjAwOSBKYWt1YiBKZWxpbmVrIDxqYWt1YkByZWRoYXQuY29tPiA0LjQuMC0wLjM0 CistIHVwZGF0ZSBmcm9tIGdjYy00XzQtYnJhbmNoCisgIC0gR0NDIDQuNC4wLXJjMQorICAtIGxp Y2Vuc2UgY2hhbmdlcyB0byBHUEx2Mysgd2l0aCBHQ0MgUnVudGltZSBFeGNlcHRpb24gZm9yIG1v c3Qgb2YgdGhlCisgICAgbGliKiBmaWxlcworICAtIFBScyBjKysvMjgzMDEsIGMrKy8zOTQ4MCwg YysrLzM5NzQyLCBjKysvMzk3NTAsIGMvMzk2MTMsIGMvMzk2MTQsIGMvMzk2NzMsCisJbGlib2Jq Yy8zNjYxMCwgdGFyZ2V0LzM5NzQwLCB0ZXN0c3VpdGUvMzU2MjEsIHRyZWUtb3B0aW1pemF0aW9u LzM5NzEzCiAKICogVGh1IEFwciAgOSAyMDA5IEpha3ViIEplbGluZWsgPGpha3ViQHJlZGhhdC5j b20+IDQuNC4wLTAuMzIKIC0gdXBkYXRlIGZyb20gZ2NjLTRfNC1icmFuY2gKCmRpZmYgLS1naXQg YS9nY2M0NC1wb3dlcjctMi5wYXRjaCBiL2djYzQ0LXBvd2VyNy0yLnBhdGNoCmRlbGV0ZWQgZmls ZSBtb2RlIDEwMDY0NAppbmRleCA1MTlmOGI5Li4wMDAwMDAwCi0tLSBhL2djYzQ0LXBvd2VyNy0y LnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsMTM2OSArMCwwIEBACi0yMDA5LTAzLTEzICBNaWNo YWVsIE1laXNzbmVyICA8bWVpc3NuZXJAbGludXgudm5ldC5pYm0uY29tPgotCi0JUFIgdGFyZ2V0 LzM5NDU3Ci0JKiBjb25maWcvcnM2MDAwL3JzNjAwMC5vcHQgKC1tZGlzYWxsb3ctZmxvYXQtaW4t bHItY3RyKTogQWRkCi0JdGVtcG9yYXJ5IGRlYnVnIHN3aXRjaC4KLQotCSogY29uZmlnL3JzNjAw MC9yczYwMDAuYyAocnM2MDAwX2hhcmRfcmVnbm9fbW9kZV9vayk6IFJldmVydAotCWJlaGF2aW9y IG9mIGRpc2FsbG93aW5nIAotCi0yMDA5LTAzLTEzICBNaWNoYWVsIE1laXNzbmVyICA8bWVpc3Nu ZXJAbGludXgudm5ldC5pYm0uY29tPgotCi0JKiBjb25maWcvcnM2MDAwL3ZlY3Rvci5tZCAodmVj X2V4dHJhY3RfZXZlbnYyZGYpOiBEZWxldGUsIGluc24KLQljYXVzZXMgcHJvYmxlbXMgaW4gYnVp bGRpbmcgc3BlYyAyMDA2LgotCSh2ZWNfZXh0cmFjdF9vZGR2MmRmKTogRGl0dG8uCi0JKHZlY19w YWNrX3RydW5jX3YyZGYpOiBOZXcgZXhwYW5kZXJzIGZvciBWU1ggdmVjdG9yaXplZAotCWNvbnZl cnNpb25zLgotCSh2ZWNfcGFja19zZml4X3RydW5jX3YyZGYpOiBEaXR0by4KLQkodmVjX3BhY2tf dWZpeF90cnVuY192MmRmKTogRGl0dG8uCi0JKHZlY191bnBhY2tzX2hpX3Y0c2YpOiBEaXR0by4K LQkodmVjX3VucGFja3NfbG9fdjRzZik6IERpdHRvLgotCSh2ZWNfdW5wYWNrc19mbG9hdF9oaV92 NHNpKTogRGl0dG8uCi0JKHZlY191bnBhY2tzX2Zsb2F0X2xvX3Y0c2kpOiBEaXR0by4KLQkodmVj X3VucGFja3VfZmxvYXRfaGlfdjRzaSk6IERpdHRvLgotCSh2ZWNfdW5wYWNrdV9mbG9hdF9sb192 NHNpKTogRGl0dG8uCi0KLQkqIGNvbmZpZy9yczYwMDAvcnM2MDAwLXByb3Rvcy5oIChyczYwMDBf dmVjdG9yX3NlY29uZGFyeV9yZWxvYWQpOgotCURlY2xhcmF0aW9uIGZvciBuZXcgdGFyZ2V0IGhv b2suCi0KLQkqIGNvbmZpZy9yczYwMDAvcnM2MDAwLmMgKFRBUkdFVF9TRUNPTkRBUllfUkVMT0FE KTogQWRkIG5ldyB0YXJnZXQKLQlob29rIGZvciBldmVudHVhbGx5IGZpeGluZyB1cCB0aGUgbWVt b3J5IHJlZmVyZW5jZXMgZm9yIEFsdGl2ZWMKLQlhbmQgVlNYIHJlbG9hZHMgdG8gYmUgcmVnK3Jl ZyBpbnN0ZWFkIG9mIHJlZytvZmZzZXQuICBSaWdodCBub3csCi0JdGhpcyBpcyBhIHN0dWIgZnVu Y3Rpb24gdGhhdCBwcmludHMgZGVidWcgaW5mb3JtYXRpb24gaWYKLQktbWRlYnVnPWFkZHIgYW5k IHRoZW4gY2FsbHMgZGVmYXVsdF9zZWNvbmRhcnlfcmVsb2FkLgotCShyczYwMDBfc2Vjb25kYXJ5 X3JlbG9hZCk6IERpdHRvLgotCShyczYwMDBfdmVjdG9yX3NlY29uZGFyeV9yZWxvYWQpOiBEaXR0 by4KLQkocnM2MDAwX2J1aWx0aW5fY29udmVyc2lvbik6IEFkZCBzdXBwb3J0IGZvciBWMkRJL1Yy REYKLQljb252ZXJzaW9ucy4KLQkocnM2MDAwX2xlZ2l0aW1hdGVfb2Zmc2V0X2FkZHJlc3NfcCk6 IFRlc3QgZm9yIHRoZSB2ZWN0b3IgdW5pdAotCWRvaW5nIHRoZSBtZW1vcnkgcmVmZXJlbmNlcy4K LQkocnM2MDAwX2xlZ2ltaXplX3JlbG9hZF9hZGRyZXNzKTogRGl0dG8uCi0JKHJzNjAwMF9sZWdp dGltaXplX2FkZHJlc3MpOiBQcmludCBleHRyYSBcbiBpZiAtbWRlYnVnPWFkZHIuCi0JKHJzNjAw MF9sZWdpdGltaXplX3JlbG9hZF9hZGRyZXNzKTogRGl0dG8uCi0JKHJzNjAwMF9sZWdpdGltYXRl X2FkZHJlc3MpOiBEaXR0by4KLQkocnM2MDAwX21vZGVfZGVwZW5kZW50X2FkZHJlc3MpOiBEaXR0 by4KLQkoYmRlc2NfMmFyZyk6IEFkZCBWU1ggYnVpbHRpbnMuCi0JKGJkZXNjX2Ficyk6IERpdHRv LgotCShiZGVzY18xYXJnKTogRGl0dG8uCi0JKGFsdGl2ZWNfaW5pdF9idWlsdGlucyk6IERpdHRv LgotCShyczYwMDBfc2Vjb25kYXJ5X21lbW9yeV9uZWVkZWRfcnR4KTogQWRkIGRlYnVnIHN1cHBv cnQgaWYKLQktbWRlYnVnPWFkZHIuCi0JKHJzNjAwMF9wcmVmZXJyZWRfcmVsb2FkX2NsYXNzKTog RGl0dG8uCi0JKHJzNjAwMF9zZWNvbmRhcnlfbWVtb3J5X25lZWRlZCk6IERpdHRvLgotCShyczYw MDBfc2Vjb25kYXJ5X3JlbG9hZF9jbGFzcyk6IERpdHRvLgotCShyczYwMDBfY2Fubm90X2NoYW5n ZV9tb2RlX2NsYXNzKTogRGl0dG8uCi0KLQkqIGNvbmZpZy9yczYwMDAvdnN4Lm1kIChVTlNQRUNf VlNYXyopOiBBZGQgdW5zcGVjcyBmb3IgVlNYCi0JY29udmVyc2lvbnMuCi0JKHZzeF9uYWJzPG1v ZGU+KTogQWRkIGdlbmVyYXRvciBmdW5jdGlvbi4KLQkodnN4X2Zsb2F0PFZTaT48bW9kZT4yKTog RGl0dG8uCi0JKHZzeF9mbG9hdHVuczxWU2k+PG1vZGU+Mik6IERpdHRvLgotCSh2c3hfeHhtcmdo dyk6IERpdHRvLgotCSh2c3hfeHhtcmdsdyk6IERpdHRvLgotCSh2c3hfeHZjdmRwc3ApOiBOZXcg VlNYIHZlY3RvciBjb252ZXJzaW9uIGluc24uCi0JKHZzeF94dmN2ZHBzeHdzKTogRGl0dG8uCi0J KHZzeF94dmN2ZHB1eHdzKTogRGl0dG8uCi0JKHZzeF94dmN2c3BkcCk6IERpdHRvLgotCSh2c3hf eHZjdnN4d2RwKTogRGl0dG8uCi0JKHZzeF94dmN2dXh3ZHApOiBEaXR0by4KLQkodnN4X3JlbG9h ZF8qKTogTmV3IGluc25zIGZvciByZWxvYWQgc3VwcG9ydC4KLQotCSogY29uZmlnL3JzNjAwMC9y czYwMDAuaDogRml4IGEgY29tbWVudC4KLQotCSogY29uZmlnL3JzNjAwMC9hbHRpdmVjLm1kIChh bHRpdmVjX3JlbG9hZF8qKTogTmV3IGluc25zIGZvcgotCXJlbG9hZCBzdXBwb3J0LgotCi0JKiBj b25maWcvcnM2MDAwL3JzNjAwMC5tZCAocHRyc2l6ZSk6IE5ldyBtb2RlIGF0dHJpYnV0ZSBmb3Ig dGhlCi0JcG9pbnRlciBzaXplLgotCi0yMDA5LTAzLTEwICBNaWNoYWVsIE1laXNzbmVyICA8bWVp c3NuZXJAbGludXgudm5ldC5pYm0uY29tPgotCi0JKiBjb25maWcvcnM2MDAwL3ZzeC5tZCAodnN4 X2NvbmNhdF92MmRmKTogQWRkIGV4cGxpY2l0ICdmJwotCXJlZ2lzdGVyIGNsYXNzIGZvciBzY2Fs YXIgZGF0YSwgY29ycmVjdCB1c2VzIG9mIHRoZSB4eHBlcm1kaQotCWluc3RydWN0aW9uLgotCSh2 c3hfc2V0X3YyZGYpOiBEaXR0by4KLQkodnN4X2V4dHJhY3RfdjJkZik6IERpdHRvLgotCSh2c3hf eHhwZXJtZGkpOiBEaXR0by4KLQkodnN4X3NwbGF0djJkZik6IERpdHRvLgotCSh2c3hfeHhtcmdo dyk6IFVzZSB3ZiBpbnN0ZWFkIG9mIHYgY29uc3RyYWludHMuCi0JKHZzeF94eG1yZ2x3KTogRGl0 dG8uCi10ZXN0c3VpdGUvCi0yMDA5LTAzLTEzICBNaWNoYWVsIE1laXNzbmVyICA8bWVpc3NuZXJA bGludXgudm5ldC5pYm0uY29tPgotCi0JUFIgdGFyZ2V0LzM5NDU3Ci0JKiBnY2MudGFyZ2V0L3Bv d2VycGMvcHIzOTQ1Ny5jOiBOZXcgdGVzdCBmb3IgUFIzOTQ1Ny4KLQotMjAwOS0wMy0xMyAgTWlj aGFlbCBNZWlzc25lciAgPG1laXNzbmVyQGxpbnV4LnZuZXQuaWJtLmNvbT4KLQotCSogZ2NjLnRh cmdldC9wb3dlcnBjL3ZzeC1idWlsdGluLTEuYzogTmV3IHRlc3QgZm9yIGJ1aWx0aW5zLgotCSog Z2NjLnRhcmdldC9wb3dlcnBjL3ZzeC1idWlsdGluLTIuYzogRGl0dG8uCi0KLS0tLSBnY2MvY29u ZmlnL3JzNjAwMC92ZWN0b3IubWQJKHJldmlzaW9uIDE0NDc1OCkKLSsrKyBnY2MvY29uZmlnL3Jz NjAwMC92ZWN0b3IubWQJKHJldmlzaW9uIDE0NDg0MykKLUBAIC00OTYsMjMgKzQ5NiwxMjIgQEAg KGRlZmluZV9leHBhbmQgInZlY19pbnRlcmxlYXZlX2xvd3YyZGYiCi0gICAiVkVDVE9SX1VOSVRf VlNYX1AgKFYyREZtb2RlKSIKLSAgICIiKQotIAotLTs7IEZvciAyIGVsZW1lbnQgdmVjdG9ycywg ZXZlbi9vZGQgaXMgdGhlIHNhbWUgYXMgaGlnaC9sb3cKLS0oZGVmaW5lX2V4cGFuZCAidmVjX2V4 dHJhY3RfZXZlbnYyZGYiCi0tICBbKHNldCAobWF0Y2hfb3BlcmFuZDpWMkRGIDAgInZmbG9hdF9v cGVyYW5kIiAiIikKLS0JKHZlY19jb25jYXQ6VjJERgotLQkgKHZlY19zZWxlY3Q6REYgKG1hdGNo X29wZXJhbmQ6VjJERiAxICJ2ZmxvYXRfb3BlcmFuZCIgIiIpCi0tCQkJKHBhcmFsbGVsIFsoY29u c3RfaW50IDApXSkpCi0tCSAodmVjX3NlbGVjdDpERiAobWF0Y2hfb3BlcmFuZDpWMkRGIDIgInZm bG9hdF9vcGVyYW5kIiAiIikKLS0JCQkocGFyYWxsZWwgWyhjb25zdF9pbnQgMCldKSkpKV0KLS0g ICJWRUNUT1JfVU5JVF9WU1hfUCAoVjJERm1vZGUpIgotLSAgIiIpCi0rDAotKzs7IENvbnZlcnQg ZG91YmxlIHdvcmQgdHlwZXMgdG8gc2luZ2xlIHdvcmQgdHlwZXMKLSsoZGVmaW5lX2V4cGFuZCAi dmVjX3BhY2tfdHJ1bmNfdjJkZiIKLSsgIFsobWF0Y2hfb3BlcmFuZDpWNFNGIDAgInZzeF9yZWdp c3Rlcl9vcGVyYW5kIiAiIikKLSsgICAobWF0Y2hfb3BlcmFuZDpWMkRGIDEgInZzeF9yZWdpc3Rl cl9vcGVyYW5kIiAiIikKLSsgICAobWF0Y2hfb3BlcmFuZDpWMkRGIDIgInZzeF9yZWdpc3Rlcl9v cGVyYW5kIiAiIildCi0rICAiVkVDVE9SX1VOSVRfVlNYX1AgKFYyREZtb2RlKSAmJiBUQVJHRVRf QUxUSVZFQyIKLSt7Ci0rICBydHggcjEgPSBnZW5fcmVnX3J0eCAoVjRTRm1vZGUpOwotKyAgcnR4 IHIyID0gZ2VuX3JlZ19ydHggKFY0U0Ztb2RlKTsKLSAKLS0oZGVmaW5lX2V4cGFuZCAidmVjX2V4 dHJhY3Rfb2RkdjJkZiIKLS0gIFsoc2V0IChtYXRjaF9vcGVyYW5kOlYyREYgMCAidmZsb2F0X29w ZXJhbmQiICIiKQotLQkodmVjX2NvbmNhdDpWMkRGCi0tCSAodmVjX3NlbGVjdDpERiAobWF0Y2hf b3BlcmFuZDpWMkRGIDEgInZmbG9hdF9vcGVyYW5kIiAiIikKLS0JCQkocGFyYWxsZWwgWyhjb25z dF9pbnQgMSldKSkKLS0JICh2ZWNfc2VsZWN0OkRGIChtYXRjaF9vcGVyYW5kOlYyREYgMiAidmZs b2F0X29wZXJhbmQiICIiKQotLQkJCShwYXJhbGxlbCBbKGNvbnN0X2ludCAxKV0pKSkpXQotLSAg IlZFQ1RPUl9VTklUX1ZTWF9QIChWMkRGbW9kZSkiCi0tICAiIikKLSsgIGVtaXRfaW5zbiAoZ2Vu X3ZzeF94dmN2ZHBzcCAocjEsIG9wZXJhbmRzWzFdKSk7Ci0rICBlbWl0X2luc24gKGdlbl92c3hf eHZjdmRwc3AgKHIyLCBvcGVyYW5kc1syXSkpOwotKyAgZW1pdF9pbnNuIChnZW5fdmVjX2V4dHJh Y3RfZXZlbnY0c2YgKG9wZXJhbmRzWzBdLCByMSwgcjIpKTsKLSsgIERPTkU7Ci0rfSkKLSsKLSso ZGVmaW5lX2V4cGFuZCAidmVjX3BhY2tfc2ZpeF90cnVuY192MmRmIgotKyAgWyhtYXRjaF9vcGVy YW5kOlY0U0kgMCAidnN4X3JlZ2lzdGVyX29wZXJhbmQiICIiKQotKyAgIChtYXRjaF9vcGVyYW5k OlYyREYgMSAidnN4X3JlZ2lzdGVyX29wZXJhbmQiICIiKQotKyAgIChtYXRjaF9vcGVyYW5kOlYy REYgMiAidnN4X3JlZ2lzdGVyX29wZXJhbmQiICIiKV0KLSsgICJWRUNUT1JfVU5JVF9WU1hfUCAo VjJERm1vZGUpICYmIFRBUkdFVF9BTFRJVkVDIgotK3sKLSsgIHJ0eCByMSA9IGdlbl9yZWdfcnR4 IChWNFNJbW9kZSk7Ci0rICBydHggcjIgPSBnZW5fcmVnX3J0eCAoVjRTSW1vZGUpOwotKwotKyAg ZW1pdF9pbnNuIChnZW5fdnN4X3h2Y3ZkcHN4d3MgKHIxLCBvcGVyYW5kc1sxXSkpOwotKyAgZW1p dF9pbnNuIChnZW5fdnN4X3h2Y3ZkcHN4d3MgKHIyLCBvcGVyYW5kc1syXSkpOwotKyAgZW1pdF9p bnNuIChnZW5fdmVjX2V4dHJhY3RfZXZlbnY0c2kgKG9wZXJhbmRzWzBdLCByMSwgcjIpKTsKLSsg IERPTkU7Ci0rfSkKLSsKLSsoZGVmaW5lX2V4cGFuZCAidmVjX3BhY2tfdWZpeF90cnVuY192MmRm IgotKyAgWyhtYXRjaF9vcGVyYW5kOlY0U0kgMCAidnN4X3JlZ2lzdGVyX29wZXJhbmQiICIiKQot KyAgIChtYXRjaF9vcGVyYW5kOlYyREYgMSAidnN4X3JlZ2lzdGVyX29wZXJhbmQiICIiKQotKyAg IChtYXRjaF9vcGVyYW5kOlYyREYgMiAidnN4X3JlZ2lzdGVyX29wZXJhbmQiICIiKV0KLSsgICJW RUNUT1JfVU5JVF9WU1hfUCAoVjJERm1vZGUpICYmIFRBUkdFVF9BTFRJVkVDIgotK3sKLSsgIHJ0 eCByMSA9IGdlbl9yZWdfcnR4IChWNFNJbW9kZSk7Ci0rICBydHggcjIgPSBnZW5fcmVnX3J0eCAo VjRTSW1vZGUpOwotKwotKyAgZW1pdF9pbnNuIChnZW5fdnN4X3h2Y3ZkcHV4d3MgKHIxLCBvcGVy YW5kc1sxXSkpOwotKyAgZW1pdF9pbnNuIChnZW5fdnN4X3h2Y3ZkcHV4d3MgKHIyLCBvcGVyYW5k c1syXSkpOwotKyAgZW1pdF9pbnNuIChnZW5fdmVjX2V4dHJhY3RfZXZlbnY0c2kgKG9wZXJhbmRz WzBdLCByMSwgcjIpKTsKLSsgIERPTkU7Ci0rfSkKLSsKLSs7OyBDb252ZXJ0IHNpbmdsZSB3b3Jk IHR5cGVzIHRvIGRvdWJsZSB3b3JkCi0rKGRlZmluZV9leHBhbmQgInZlY191bnBhY2tzX2hpX3Y0 c2YiCi0rICBbKG1hdGNoX29wZXJhbmQ6VjJERiAwICJ2c3hfcmVnaXN0ZXJfb3BlcmFuZCIgIiIp Ci0rICAgKG1hdGNoX29wZXJhbmQ6VjRTRiAxICJ2c3hfcmVnaXN0ZXJfb3BlcmFuZCIgIiIpXQot KyAgIlZFQ1RPUl9VTklUX1ZTWF9QIChWMkRGbW9kZSkgJiYgVkVDVE9SX1VOSVRfQUxUSVZFQ19P Ul9WU1hfUCAoVjRTRm1vZGUpIgotK3sKLSsgIHJ0eCByZWcgPSBnZW5fcmVnX3J0eCAoVjRTRm1v ZGUpOwotKwotKyAgZW1pdF9pbnNuIChnZW5fdmVjX2ludGVybGVhdmVfaGlnaHY0c2YgKHJlZywg b3BlcmFuZHNbMV0sIG9wZXJhbmRzWzFdKSk7Ci0rICBlbWl0X2luc24gKGdlbl92c3hfeHZjdnNw ZHAgKG9wZXJhbmRzWzBdLCByZWcpKTsKLSsgIERPTkU7Ci0rfSkKLSsKLSsoZGVmaW5lX2V4cGFu ZCAidmVjX3VucGFja3NfbG9fdjRzZiIKLSsgIFsobWF0Y2hfb3BlcmFuZDpWMkRGIDAgInZzeF9y ZWdpc3Rlcl9vcGVyYW5kIiAiIikKLSsgICAobWF0Y2hfb3BlcmFuZDpWNFNGIDEgInZzeF9yZWdp c3Rlcl9vcGVyYW5kIiAiIildCi0rICAiVkVDVE9SX1VOSVRfVlNYX1AgKFYyREZtb2RlKSAmJiBW RUNUT1JfVU5JVF9BTFRJVkVDX09SX1ZTWF9QIChWNFNGbW9kZSkiCi0rewotKyAgcnR4IHJlZyA9 IGdlbl9yZWdfcnR4IChWNFNGbW9kZSk7Ci0rCi0rICBlbWl0X2luc24gKGdlbl92ZWNfaW50ZXJs ZWF2ZV9sb3d2NHNmIChyZWcsIG9wZXJhbmRzWzFdLCBvcGVyYW5kc1sxXSkpOwotKyAgZW1pdF9p bnNuIChnZW5fdnN4X3h2Y3ZzcGRwIChvcGVyYW5kc1swXSwgcmVnKSk7Ci0rICBET05FOwotK30p Ci0rCi0rKGRlZmluZV9leHBhbmQgInZlY191bnBhY2tzX2Zsb2F0X2hpX3Y0c2kiCi0rICBbKG1h dGNoX29wZXJhbmQ6VjJERiAwICJ2c3hfcmVnaXN0ZXJfb3BlcmFuZCIgIiIpCi0rICAgKG1hdGNo X29wZXJhbmQ6VjRTSSAxICJ2c3hfcmVnaXN0ZXJfb3BlcmFuZCIgIiIpXQotKyAgIlZFQ1RPUl9V TklUX1ZTWF9QIChWMkRGbW9kZSkgJiYgVkVDVE9SX1VOSVRfQUxUSVZFQ19PUl9WU1hfUCAoVjRT SW1vZGUpIgotK3sKLSsgIHJ0eCByZWcgPSBnZW5fcmVnX3J0eCAoVjRTSW1vZGUpOwotKwotKyAg ZW1pdF9pbnNuIChnZW5fdmVjX2ludGVybGVhdmVfaGlnaHY0c2kgKHJlZywgb3BlcmFuZHNbMV0s IG9wZXJhbmRzWzFdKSk7Ci0rICBlbWl0X2luc24gKGdlbl92c3hfeHZjdnN4d2RwIChvcGVyYW5k c1swXSwgcmVnKSk7Ci0rICBET05FOwotK30pCi0rCi0rKGRlZmluZV9leHBhbmQgInZlY191bnBh Y2tzX2Zsb2F0X2xvX3Y0c2kiCi0rICBbKG1hdGNoX29wZXJhbmQ6VjJERiAwICJ2c3hfcmVnaXN0 ZXJfb3BlcmFuZCIgIiIpCi0rICAgKG1hdGNoX29wZXJhbmQ6VjRTSSAxICJ2c3hfcmVnaXN0ZXJf b3BlcmFuZCIgIiIpXQotKyAgIlZFQ1RPUl9VTklUX1ZTWF9QIChWMkRGbW9kZSkgJiYgVkVDVE9S X1VOSVRfQUxUSVZFQ19PUl9WU1hfUCAoVjRTSW1vZGUpIgotK3sKLSsgIHJ0eCByZWcgPSBnZW5f cmVnX3J0eCAoVjRTSW1vZGUpOwotKwotKyAgZW1pdF9pbnNuIChnZW5fdmVjX2ludGVybGVhdmVf bG93djRzaSAocmVnLCBvcGVyYW5kc1sxXSwgb3BlcmFuZHNbMV0pKTsKLSsgIGVtaXRfaW5zbiAo Z2VuX3ZzeF94dmN2c3h3ZHAgKG9wZXJhbmRzWzBdLCByZWcpKTsKLSsgIERPTkU7Ci0rfSkKLSsK LSsoZGVmaW5lX2V4cGFuZCAidmVjX3VucGFja3VfZmxvYXRfaGlfdjRzaSIKLSsgIFsobWF0Y2hf b3BlcmFuZDpWMkRGIDAgInZzeF9yZWdpc3Rlcl9vcGVyYW5kIiAiIikKLSsgICAobWF0Y2hfb3Bl cmFuZDpWNFNJIDEgInZzeF9yZWdpc3Rlcl9vcGVyYW5kIiAiIildCi0rICAiVkVDVE9SX1VOSVRf VlNYX1AgKFYyREZtb2RlKSAmJiBWRUNUT1JfVU5JVF9BTFRJVkVDX09SX1ZTWF9QIChWNFNJbW9k ZSkiCi0rewotKyAgcnR4IHJlZyA9IGdlbl9yZWdfcnR4IChWNFNJbW9kZSk7Ci0rCi0rICBlbWl0 X2luc24gKGdlbl92ZWNfaW50ZXJsZWF2ZV9oaWdodjRzaSAocmVnLCBvcGVyYW5kc1sxXSwgb3Bl cmFuZHNbMV0pKTsKLSsgIGVtaXRfaW5zbiAoZ2VuX3ZzeF94dmN2dXh3ZHAgKG9wZXJhbmRzWzBd LCByZWcpKTsKLSsgIERPTkU7Ci0rfSkKLSsKLSsoZGVmaW5lX2V4cGFuZCAidmVjX3VucGFja3Vf ZmxvYXRfbG9fdjRzaSIKLSsgIFsobWF0Y2hfb3BlcmFuZDpWMkRGIDAgInZzeF9yZWdpc3Rlcl9v cGVyYW5kIiAiIikKLSsgICAobWF0Y2hfb3BlcmFuZDpWNFNJIDEgInZzeF9yZWdpc3Rlcl9vcGVy YW5kIiAiIildCi0rICAiVkVDVE9SX1VOSVRfVlNYX1AgKFYyREZtb2RlKSAmJiBWRUNUT1JfVU5J VF9BTFRJVkVDX09SX1ZTWF9QIChWNFNJbW9kZSkiCi0rewotKyAgcnR4IHJlZyA9IGdlbl9yZWdf cnR4IChWNFNJbW9kZSk7Ci0rCi0rICBlbWl0X2luc24gKGdlbl92ZWNfaW50ZXJsZWF2ZV9sb3d2 NHNpIChyZWcsIG9wZXJhbmRzWzFdLCBvcGVyYW5kc1sxXSkpOwotKyAgZW1pdF9pbnNuIChnZW5f dnN4X3h2Y3Z1eHdkcCAob3BlcmFuZHNbMF0sIHJlZykpOwotKyAgRE9ORTsKLSt9KQotLS0tIGdj Yy9jb25maWcvcnM2MDAwL3JzNjAwMC1wcm90b3MuaAkocmV2aXNpb24gMTQ0NzU4KQotKysrIGdj Yy9jb25maWcvcnM2MDAwL3JzNjAwMC1wcm90b3MuaAkocmV2aXNpb24gMTQ0ODQzKQotQEAgLTcy LDYgKzcyLDcgQEAgZXh0ZXJuIGJvb2wgcnM2MDAwX3NlY29uZGFyeV9tZW1vcnlfbmVlZAotIGV4 dGVybiBib29sIHJzNjAwMF9jYW5ub3RfY2hhbmdlX21vZGVfY2xhc3MgKGVudW0gbWFjaGluZV9t b2RlLAotIAkJCQkJICAgICBlbnVtIG1hY2hpbmVfbW9kZSwKLSAJCQkJCSAgICAgZW51bSByZWdf Y2xhc3MpOwotK2V4dGVybiB2b2lkIHJzNjAwMF92ZWN0b3Jfc2Vjb25kYXJ5X3JlbG9hZCAocnR4 LCBydHgsIHJ0eCwgYm9vbCk7Ci0gZXh0ZXJuIGludCBwYWlyZWRfZW1pdF92ZWN0b3JfY29uZF9l eHByIChydHgsIHJ0eCwgcnR4LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgcnR4LCBydHgsIHJ0eCk7Ci0gZXh0ZXJuIHZvaWQgcGFpcmVkX2V4cGFuZF92ZWN0b3Jf bW92ZSAocnR4IG9wZXJhbmRzW10pOwotLS0tIGdjYy9jb25maWcvcnM2MDAwL3JzNjAwMC5vcHQJ KHJldmlzaW9uIDE0NDg0NSkKLSsrKyBnY2MvY29uZmlnL3JzNjAwMC9yczYwMDAub3B0CShyZXZp c2lvbiAxNDQ4NTcpCi1AQCAtMTM5LDYgKzEzOSw5IEBAIG12c3gtc2NhbGFyLW1lbW9yeQotIFRh cmdldCBSZXBvcnQgVmFyKFRBUkdFVF9WU1hfU0NBTEFSX01FTU9SWSkKLSBJZiAtbXZzeCwgdXNl IFZTWCBzY2FsYXIgbWVtb3J5IHJlZmVyZW5jZSBpbnN0cnVjdGlvbnMgZm9yIHNjYWxhciBkb3Vi bGUgKG9mZiBieSBkZWZhdWx0KQotIAotK21kaXNhbGxvdy1mbG9hdC1pbi1sci1jdHIKLStUYXJn ZXQgVW5kb2N1bWVudGVkIFZhcihUQVJHRVRfRElTQUxMT1dfRkxPQVRfSU5fTFJfQ1RSKSBJbml0 KC0xKQotKwotIG11cGRhdGUKLSBUYXJnZXQgUmVwb3J0IFZhcihUQVJHRVRfVVBEQVRFKSBJbml0 KDEpCi0gR2VuZXJhdGUgbG9hZC9zdG9yZSB3aXRoIHVwZGF0ZSBpbnN0cnVjdGlvbnMKLS0tLSBn Y2MvY29uZmlnL3JzNjAwMC9yczYwMDAuYwkocmV2aXNpb24gMTQ0NzU4KQotKysrIGdjYy9jb25m aWcvcnM2MDAwL3JzNjAwMC5jCShyZXZpc2lvbiAxNDQ4NDMpCi1AQCAtMTAwNCw2ICsxMDA0LDEw IEBAIHN0YXRpYyBydHggcnM2MDAwX2VtaXRfdmVjdG9yX2NvbXBhcmUgKGUKLSAJCQkJICAgICAg IGVudW0gbWFjaGluZV9tb2RlKTsKLSBzdGF0aWMgdHJlZSByczYwMDBfc3RhY2tfcHJvdGVjdF9m YWlsICh2b2lkKTsKLSAKLStzdGF0aWMgZW51bSByZWdfY2xhc3MgcnM2MDAwX3NlY29uZGFyeV9y ZWxvYWQgKGJvb2wsIHJ0eCwgZW51bSByZWdfY2xhc3MsCi0rCQkJCQkgICAgICAgZW51bSBtYWNo aW5lX21vZGUsCi0rCQkJCQkgICAgICAgc3RydWN0IHNlY29uZGFyeV9yZWxvYWRfaW5mbyAqKTsK LSsKLSBjb25zdCBpbnQgSU5TTl9OT1RfQVZBSUxBQkxFID0gLTE7Ci0gc3RhdGljIGVudW0gbWFj aGluZV9tb2RlIHJzNjAwMF9laF9yZXR1cm5fZmlsdGVyX21vZGUgKHZvaWQpOwotIAotQEAgLTEz MzMsNiArMTMzNyw5IEBAIHN0YXRpYyBjb25zdCBjaGFyIGFsdF9yZWdfbmFtZXNbXVs4XSA9Ci0g I3VuZGVmIFRBUkdFVF9JTlNUQU5USUFURV9ERUNMUwotICNkZWZpbmUgVEFSR0VUX0lOU1RBTlRJ QVRFX0RFQ0xTIHJzNjAwMF9pbnN0YW50aWF0ZV9kZWNscwotIAotKyN1bmRlZiBUQVJHRVRfU0VD T05EQVJZX1JFTE9BRAotKyNkZWZpbmUgVEFSR0VUX1NFQ09OREFSWV9SRUxPQUQgcnM2MDAwX3Nl Y29uZGFyeV9yZWxvYWQKLSsKLSBzdHJ1Y3QgZ2NjX3RhcmdldCB0YXJnZXRtID0gVEFSR0VUX0lO SVRJQUxJWkVSOwotIAwKLSAvKiBSZXR1cm4gbnVtYmVyIG9mIGNvbnNlY3V0aXZlIGhhcmQgcmVn cyBuZWVkZWQgc3RhcnRpbmcgYXQgcmVnIFJFR05PCi1AQCAtMTQ0OCwxMCArMTQ0OCwxNiBAQCBy czYwMDBfaGFyZF9yZWdub19tb2RlX29rIChpbnQgcmVnbm8sIGVuCi0gICBpZiAoU1BFX1NJTURf UkVHTk9fUCAocmVnbm8pICYmIFRBUkdFVF9TUEUgJiYgU1BFX1ZFQ1RPUl9NT0RFIChtb2RlKSkK LSAgICAgcmV0dXJuIDE7Ci0gCi0tICAvKiBEb24ndCBhbGxvdyBhbnl0aGluZyBidXQgd29yZCBz aXplZCBpbnRlZ2VycyAoYWthIHBvaW50ZXJzKSBpbiBDVFIvTFIuICBZb3UKLS0gICAgIHJlYWxs eSBkb24ndCB3YW50IHRvIHNwaWxsIHlvdXIgZmxvYXRpbmcgcG9pbnQgdmFsdWVzIHRvIHRob3Nl Ci0tICAgICByZWdpc3RlcnMuICBBbHNvIGRvIGl0IGZvciB0aGUgb2xkIE1RIHJlZ2lzdGVyIGlu IHRoZSBwb3dlci4gICovCi0tICBpZiAocmVnbm8gPT0gQ1RSX1JFR05PIHx8IHJlZ25vID09IExS X1JFR05PIHx8IHJlZ25vID09IE1RX1JFR05PKQotKyAgLyogRG9uJ3QgYWxsb3cgYW55dGhpbmcg YnV0IHdvcmQgc2l6ZWQgaW50ZWdlcnMgKGFrYSBwb2ludGVycykgaW4gQ1RSL0xSLgotKyAgICAg WW91IHJlYWxseSBkb24ndCB3YW50IHRvIHNwaWxsIHlvdXIgZmxvYXRpbmcgcG9pbnQgdmFsdWVz IHRvIHRob3NlCi0rICAgICByZWdpc3RlcnMuICBBbHNvIGRvIGl0IGZvciB0aGUgb2xkIE1RIHJl Z2lzdGVyIGluIHRoZSBwb3dlci4KLSsKLSsgICAgIFdoaWxlIHRoaXMgaXMgZGVzaXJhYmxlIGlu IHRoZW9yeSwgZGlzYWJsaW5nIGZsb2F0IHRvIGdvIGluIExSL0NUUiBkb2VzCi0rICAgICBjYXVz ZSBzb21lIHJlZ3Jlc3Npb25zLCBzbyB1bnRpbCB0aGV5IGFyZSB0YWtlbiBjYXJlIG9mLCByZXZl cnQgdG8gdGhlIG9sZAotKyAgICAgYmVoYXZpb3IgYnkgZGVmYXVsdCBmb3IgbW9zdCBwb3dlciBz eXN0ZW1zLCBidXQgZW5hYmxlIGl0IGZvciBwb3dlcjcuICAqLwotKyAgaWYgKChUQVJHRVRfRElT QUxMT1dfRkxPQVRfSU5fTFJfQ1RSID4gMAotKyAgICAgICB8fCAoVEFSR0VUX0RJU0FMTE9XX0ZM T0FUX0lOX0xSX0NUUiA8IDAgJiYgVEFSR0VUX1ZTWCkpCi0rICAgICAgJiYgKHJlZ25vID09IENU Ul9SRUdOTyB8fCByZWdubyA9PSBMUl9SRUdOTyB8fCByZWdubyA9PSBNUV9SRUdOTykpCi0gICAg IHJldHVybiAoR0VUX01PREVfQ0xBU1MgKG1vZGUpID09IE1PREVfSU5UCi0gCSAgICAmJiBHRVRf TU9ERV9TSVpFIChtb2RlKSA8PSBVTklUU19QRVJfV09SRCk7Ci0gCi1AQCAtMjQ0Nyw2ICsyNDU0 LDE0IEBAIHJzNjAwMF9idWlsdGluX2NvbnZlcnNpb24gKGVudW0gdHJlZV9jb2QKLSAgICAgY2Fz ZSBGSVhfVFJVTkNfRVhQUjoKLSAgICAgICBzd2l0Y2ggKFRZUEVfTU9ERSAodHlwZSkpCi0gCXsK LSsJY2FzZSBWMkRJbW9kZToKLSsJICBpZiAoIVZFQ1RPUl9VTklUX1ZTWF9QIChWMkRGbW9kZSkp Ci0rCSAgICByZXR1cm4gTlVMTF9UUkVFOwotKwotKwkgIHJldHVybiBUWVBFX1VOU0lHTkVEICh0 eXBlKQotKwkgICAgPyByczYwMDBfYnVpbHRpbl9kZWNsc1tWU1hfQlVJTFRJTl9YVkNWRFBVWERT XQotKwkgICAgOiByczYwMDBfYnVpbHRpbl9kZWNsc1tWU1hfQlVJTFRJTl9YVkNWRFBTWERTXTsK LSsKLSAJY2FzZSBWNFNJbW9kZToKLSAJICBpZiAoVkVDVE9SX1VOSVRfTk9ORV9QIChWNFNJbW9k ZSkgfHwgVkVDVE9SX1VOSVRfTk9ORV9QIChWNFNGbW9kZSkpCi0gCSAgICByZXR1cm4gTlVMTF9U UkVFOwotQEAgLTI0NjIsNiArMjQ3NywxNCBAQCByczYwMDBfYnVpbHRpbl9jb252ZXJzaW9uIChl bnVtIHRyZWVfY29kCi0gICAgIGNhc2UgRkxPQVRfRVhQUjoKLSAgICAgICBzd2l0Y2ggKFRZUEVf TU9ERSAodHlwZSkpCi0gCXsKLSsJY2FzZSBWMkRJbW9kZToKLSsJICBpZiAoIVZFQ1RPUl9VTklU X1ZTWF9QIChWMkRGbW9kZSkpCi0rCSAgICByZXR1cm4gTlVMTF9UUkVFOwotKwotKwkgIHJldHVy biBUWVBFX1VOU0lHTkVEICh0eXBlKQotKwkgICAgPyByczYwMDBfYnVpbHRpbl9kZWNsc1tWU1hf QlVJTFRJTl9YVkNWVVhEU1BdCi0rCSAgICA6IHJzNjAwMF9idWlsdGluX2RlY2xzW1ZTWF9CVUlM VElOX1hWQ1ZTWERTUF07Ci0rCi0gCWNhc2UgVjRTSW1vZGU6Ci0gCSAgaWYgKFZFQ1RPUl9VTklU X05PTkVfUCAoVjRTSW1vZGUpIHx8IFZFQ1RPUl9VTklUX05PTkVfUCAoVjRTRm1vZGUpKQotIAkg ICAgcmV0dXJuIE5VTExfVFJFRTsKLUBAIC0yNDY5LDYgKzI0OTIsNyBAQCByczYwMDBfYnVpbHRp bl9jb252ZXJzaW9uIChlbnVtIHRyZWVfY29kCi0gCSAgcmV0dXJuIFRZUEVfVU5TSUdORUQgKHR5 cGUpCi0gCSAgICA/IHJzNjAwMF9idWlsdGluX2RlY2xzW1ZFQ1RPUl9CVUlMVElOX1VOU0ZMT0FU X1Y0U0lfVjRTRl0KLSAJICAgIDogcnM2MDAwX2J1aWx0aW5fZGVjbHNbVkVDVE9SX0JVSUxUSU5f RkxPQVRfVjRTSV9WNFNGXTsKLSsKLSAJZGVmYXVsdDoKLSAJICByZXR1cm4gTlVMTF9UUkVFOwot IAl9Ci1AQCAtNDEwMSw3ICs0MTI1LDcgQEAgcnM2MDAwX2xlZ2l0aW1hdGVfb2Zmc2V0X2FkZHJl c3NfcCAoZW51bQotICAgICBjYXNlIFYyREltb2RlOgotICAgICAgIC8qIEFsdGlWZWMvVlNYIHZl Y3RvciBtb2Rlcy4gIE9ubHkgcmVnK3JlZyBhZGRyZXNzaW5nIGlzIHZhbGlkIGFuZAotIAkgY29u c3RhbnQgb2Zmc2V0IHplcm8gc2hvdWxkIG5vdCBvY2N1ciBkdWUgdG8gY2Fub25pY2FsaXphdGlv bi4gICovCi0tICAgICAgaWYgKFZFQ1RPUl9VTklUX0FMVElWRUNfT1JfVlNYX1AgKG1vZGUpKQot KyAgICAgIGlmIChWRUNUT1JfTUVNX0FMVElWRUNfT1JfVlNYX1AgKG1vZGUpKQotIAlyZXR1cm4g ZmFsc2U7Ci0gICAgICAgYnJlYWs7Ci0gCi1AQCAtNDQ0MSw2ICs0NDY1LDcgQEAgcnM2MDAwX2xl Z2l0aW1pemVfYWRkcmVzcyAocnR4IHgsIHJ0eCBvbAotIAl9Ci0gICAgICAgZWxzZQotIAlmcHJp bnRmIChzdGRlcnIsICJOVUxMIHJldHVybmVkXG4iKTsKLSsgICAgICBmcHJpbnRmIChzdGRlcnIs ICJcbiIpOwotICAgICB9Ci0gCi0gICByZXR1cm4gcmV0OwotQEAgLTQ3NzYsOCArNDgwMSw3IEBA IHJzNjAwMF9sZWdpdGltaXplX3JlbG9hZF9hZGRyZXNzIChydHggeCwKLSAJICAgJiYgUkVHX01P REVfT0tfRk9SX0JBU0VfUCAoWEVYUCAoeCwgMCksIG1vZGUpCi0gCSAgICYmIEdFVF9DT0RFIChY RVhQICh4LCAxKSkgPT0gQ09OU1RfSU5UCi0gCSAgICYmIChJTlRWQUwgKFhFWFAgKHgsIDEpKSAm IDMpICE9IDAKLS0JICAgJiYgIUFMVElWRUNfVkVDVE9SX01PREUgKG1vZGUpCi0tCSAgICYmICFW U1hfVkVDVE9SX01PREUgKG1vZGUpCi0rCSAgICYmIFZFQ1RPUl9NRU1fTk9ORV9QIChtb2RlKQot IAkgICAmJiBHRVRfTU9ERV9TSVpFIChtb2RlKSA+PSBVTklUU19QRVJfV09SRAotIAkgICAmJiBU QVJHRVRfUE9XRVJQQzY0KQotICAgICB7Ci1AQCAtNDc5OCw4ICs0ODIyLDcgQEAgcnM2MDAwX2xl Z2l0aW1pemVfcmVsb2FkX2FkZHJlc3MgKHJ0eCB4LAotIAkgICAmJiAhKFRBUkdFVF9FNTAwX0RP VUJMRSAmJiAobW9kZSA9PSBERm1vZGUgfHwgbW9kZSA9PSBURm1vZGUKLSAJCQkJICAgICAgIHx8 IG1vZGUgPT0gRERtb2RlIHx8IG1vZGUgPT0gVERtb2RlCi0gCQkJCSAgICAgICB8fCBtb2RlID09 IERJbW9kZSkpCi0tCSAgICYmICFBTFRJVkVDX1ZFQ1RPUl9NT0RFIChtb2RlKQotLQkgICAmJiAh VlNYX1ZFQ1RPUl9NT0RFIChtb2RlKSkKLSsJICAgJiYgVkVDVE9SX01FTV9OT05FX1AgKG1vZGUp KQotICAgICB7Ci0gICAgICAgSE9TVF9XSURFX0lOVCB2YWwgPSBJTlRWQUwgKFhFWFAgKHgsIDEp KTsKLSAgICAgICBIT1NUX1dJREVfSU5UIGxvdyA9ICgodmFsICYgMHhmZmZmKSBeIDB4ODAwMCkg LSAweDgwMDA7Ci1AQCAtNDg0Myw2ICs0ODY2LDcgQEAgcnM2MDAwX2xlZ2l0aW1pemVfcmVsb2Fk X2FkZHJlc3MgKHJ0eCB4LAotIAkgICAvKiBEb24ndCBkbyB0aGlzIGZvciBURm1vZGUgb3IgVERt b2RlLCBzaW5jZSB0aGUgcmVzdWx0IGlzbid0Ci0gCSAgICAgIG9mZnNldHRhYmxlLiAgVGhlIHNh bWUgZ29lcyBmb3IgREltb2RlIHdpdGhvdXQgNjQtYml0IGdwcnMgYW5kCi0gCSAgICAgIERGbW9k ZSBhbmQgRERtb2RlIHdpdGhvdXQgZnBycy4gICovCi0rCSAgICYmIFZFQ1RPUl9NRU1fTk9ORV9Q IChtb2RlKQotIAkgICAmJiBtb2RlICE9IFRGbW9kZQotIAkgICAmJiBtb2RlICE9IFREbW9kZQot IAkgICAmJiAobW9kZSAhPSBESW1vZGUgfHwgVEFSR0VUX1BPV0VSUEM2NCkKLUBAIC00OTE4LDYg KzQ5NDIsOCBAQCByczYwMDBfbGVnaXRpbWl6ZV9yZWxvYWRfYWRkcmVzcyAocnR4IHgsCi0gCSAg ZnByaW50ZiAoc3RkZXJyLCAiTmV3IGFkZHJlc3M6XG4iKTsKLSAJICBkZWJ1Z19ydHggKHJldCk7 Ci0gCX0KLSsKLSsgICAgICBmcHJpbnRmIChzdGRlcnIsICJcbiIpOwotICAgICB9Ci0gCi0gICBy ZXR1cm4gcmV0OwotQEAgLTUwMzUsNiArNTA2MSw3IEBAIHJzNjAwMF9sZWdpdGltYXRlX2FkZHJl c3MgKGVudW0gbWFjaGluZV8KLSAJICAgICAgIEdFVF9NT0RFX05BTUUgKG1vZGUpLAotIAkgICAg ICAgcmVnX29rX3N0cmljdCk7Ci0gICAgICAgZGVidWdfcnR4IChvcmlnX3gpOwotKyAgICAgIGZw cmludGYgKHN0ZGVyciwgIlxuIik7Ci0gICAgIH0KLSAKLSAgIHJldHVybiByZXQ7Ci1AQCAtNTA4 Miw5ICs1MTA5LDEwIEBAIHJzNjAwMF9tb2RlX2RlcGVuZGVudF9hZGRyZXNzIChydHggYWRkcikK LSAgIGlmIChUQVJHRVRfREVCVUdfQUREUikKLSAgICAgewotICAgICAgIGZwcmludGYgKHN0ZGVy ciwKLS0JICAgICAgICJcbnJzNjAwMF9tb2RlX2RlcGVuZGVudF9hZGRyZXNzOiByZXQgPSAlZFxu IiwKLS0JICAgICAgIChpbnQpcmV0KTsKLSsJICAgICAgICJcbnJzNjAwMF9tb2RlX2RlcGVuZGVu dF9hZGRyZXNzOiByZXQgPSAlc1xuIiwKLSsJICAgICAgIHJldCA/ICJ0cnVlIiA6ICJmYWxzZSIp OwotICAgICAgIGRlYnVnX3J0eCAoYWRkcik7Ci0rICAgICAgZnByaW50ZiAoc3RkZXJyLCAiXG4i KTsKLSAgICAgfQotIAotICAgcmV0dXJuIHJldDsKLUBAIC03OTE3LDYgKzc5NDUsMjAgQEAgc3Rh dGljIHN0cnVjdCBidWlsdGluX2Rlc2NyaXB0aW9uIGJkZXNjXwotICAgeyBNQVNLX0FMVElWRUMs IENPREVfRk9SX2FsdGl2ZWNfdnN1bXN3cywgIl9fYnVpbHRpbl9hbHRpdmVjX3ZzdW1zd3MiLCBB TFRJVkVDX0JVSUxUSU5fVlNVTVNXUyB9LAotICAgeyBNQVNLX0FMVElWRUMsIENPREVfRk9SX3hv cnY0c2kzLCAiX19idWlsdGluX2FsdGl2ZWNfdnhvciIsIEFMVElWRUNfQlVJTFRJTl9WWE9SIH0s Ci0gCi0rICB7IE1BU0tfVlNYLCBDT0RFX0ZPUl9hZGR2MmRmMywgIl9fYnVpbHRpbl92c3hfeHZh ZGRkcCIsIFZTWF9CVUlMVElOX1hWQURERFAgfSwKLSsgIHsgTUFTS19WU1gsIENPREVfRk9SX3N1 YnYyZGYzLCAiX19idWlsdGluX3ZzeF94dnN1YmRwIiwgVlNYX0JVSUxUSU5fWFZTVUJEUCB9LAot KyAgeyBNQVNLX1ZTWCwgQ09ERV9GT1JfbXVsdjJkZjMsICJfX2J1aWx0aW5fdnN4X3h2bXVsZHAi LCBWU1hfQlVJTFRJTl9YVk1VTERQIH0sCi0rICB7IE1BU0tfVlNYLCBDT0RFX0ZPUl9kaXZ2MmRm MywgIl9fYnVpbHRpbl92c3hfeHZkaXZkcCIsIFZTWF9CVUlMVElOX1hWRElWRFAgfSwKLSsgIHsg TUFTS19WU1gsIENPREVfRk9SX3NtaW52MmRmMywgIl9fYnVpbHRpbl92c3hfeHZtaW5kcCIsIFZT WF9CVUlMVElOX1hWTUlORFAgfSwKLSsgIHsgTUFTS19WU1gsIENPREVfRk9SX3NtYXh2MmRmMywg Il9fYnVpbHRpbl92c3hfeHZtYXhkcCIsIFZTWF9CVUlMVElOX1hWTUFYRFAgfSwKLSsKLSsgIHsg TUFTS19WU1gsIENPREVfRk9SX2FkZHY0c2YzLCAiX19idWlsdGluX3ZzeF94dmFkZHNwIiwgVlNY X0JVSUxUSU5fWFZBRERTUCB9LAotKyAgeyBNQVNLX1ZTWCwgQ09ERV9GT1Jfc3VidjRzZjMsICJf X2J1aWx0aW5fdnN4X3h2c3Vic3AiLCBWU1hfQlVJTFRJTl9YVlNVQlNQIH0sCi0rICB7IE1BU0tf VlNYLCBDT0RFX0ZPUl9tdWx2NHNmMywgIl9fYnVpbHRpbl92c3hfeHZtdWxzcCIsIFZTWF9CVUlM VElOX1hWTVVMU1AgfSwKLSsgIHsgTUFTS19WU1gsIENPREVfRk9SX2RpdnY0c2YzLCAiX19idWls dGluX3ZzeF94dmRpdnNwIiwgVlNYX0JVSUxUSU5fWFZESVZTUCB9LAotKyAgeyBNQVNLX1ZTWCwg Q09ERV9GT1Jfc21pbnY0c2YzLCAiX19idWlsdGluX3ZzeF94dm1pbnNwIiwgVlNYX0JVSUxUSU5f WFZNSU5TUCB9LAotKyAgeyBNQVNLX1ZTWCwgQ09ERV9GT1Jfc21heHY0c2YzLCAiX19idWlsdGlu X3ZzeF94dm1heHNwIiwgVlNYX0JVSUxUSU5fWFZNQVhTUCB9LAotKwotICAgeyBNQVNLX0FMVElW RUMsIENPREVfRk9SX25vdGhpbmcsICJfX2J1aWx0aW5fdmVjX2FkZCIsIEFMVElWRUNfQlVJTFRJ Tl9WRUNfQUREIH0sCi0gICB7IE1BU0tfQUxUSVZFQywgQ09ERV9GT1Jfbm90aGluZywgIl9fYnVp bHRpbl92ZWNfdmFkZGZwIiwgQUxUSVZFQ19CVUlMVElOX1ZFQ19WQURERlAgfSwKLSAgIHsgTUFT S19BTFRJVkVDLCBDT0RFX0ZPUl9ub3RoaW5nLCAiX19idWlsdGluX3ZlY192YWRkdXdtIiwgQUxU SVZFQ19CVUlMVElOX1ZFQ19WQUREVVdNIH0sCi1AQCAtODI4OCw3ICs4MzMwLDExIEBAIHN0YXRp YyBjb25zdCBzdHJ1Y3QgYnVpbHRpbl9kZXNjcmlwdGlvbiAKLSAgIHsgTUFTS19BTFRJVkVDLCBD T0RFX0ZPUl9hYnN2MTZxaTIsICJfX2J1aWx0aW5fYWx0aXZlY19hYnNfdjE2cWkiLCBBTFRJVkVD X0JVSUxUSU5fQUJTX1YxNlFJIH0sCi0gICB7IE1BU0tfQUxUSVZFQywgQ09ERV9GT1JfYWx0aXZl Y19hYnNzX3Y0c2ksICJfX2J1aWx0aW5fYWx0aXZlY19hYnNzX3Y0c2kiLCBBTFRJVkVDX0JVSUxU SU5fQUJTU19WNFNJIH0sCi0gICB7IE1BU0tfQUxUSVZFQywgQ09ERV9GT1JfYWx0aXZlY19hYnNz X3Y4aGksICJfX2J1aWx0aW5fYWx0aXZlY19hYnNzX3Y4aGkiLCBBTFRJVkVDX0JVSUxUSU5fQUJT U19WOEhJIH0sCi0tICB7IE1BU0tfQUxUSVZFQywgQ09ERV9GT1JfYWx0aXZlY19hYnNzX3YxNnFp LCAiX19idWlsdGluX2FsdGl2ZWNfYWJzc192MTZxaSIsIEFMVElWRUNfQlVJTFRJTl9BQlNTX1Yx NlFJIH0KLSsgIHsgTUFTS19BTFRJVkVDLCBDT0RFX0ZPUl9hbHRpdmVjX2Fic3NfdjE2cWksICJf X2J1aWx0aW5fYWx0aXZlY19hYnNzX3YxNnFpIiwgQUxUSVZFQ19CVUlMVElOX0FCU1NfVjE2UUkg fSwKLSsgIHsgTUFTS19WU1gsIENPREVfRk9SX2Fic3YyZGYyLCAiX19idWlsdGluX3ZzeF94dmFi c2RwIiwgVlNYX0JVSUxUSU5fWFZBQlNEUCB9LAotKyAgeyBNQVNLX1ZTWCwgQ09ERV9GT1JfdnN4 X25hYnN2MmRmMiwgIl9fYnVpbHRpbl92c3hfeHZuYWJzZHAiLCBWU1hfQlVJTFRJTl9YVk5BQlNE UCB9LAotKyAgeyBNQVNLX1ZTWCwgQ09ERV9GT1JfYWJzdjRzZjIsICJfX2J1aWx0aW5fdnN4X3h2 YWJzc3AiLCBWU1hfQlVJTFRJTl9YVkFCU1NQIH0sCi0rICB7IE1BU0tfVlNYLCBDT0RFX0ZPUl92 c3hfbmFic3Y0c2YyLCAiX19idWlsdGluX3ZzeF94dm5hYnNzcCIsIFZTWF9CVUlMVElOX1hWTkFC U1NQIH0sCi0gfTsKLSAKLSAvKiBTaW1wbGUgdW5hcnkgb3BlcmF0aW9uczogVkVDYiA9IGZvbyAo dW5zaWduZWQgbGl0ZXJhbCkgb3IgVkVDYiA9Ci1AQCAtODMxNCw2ICs4MzYwLDExIEBAIHN0YXRp YyBzdHJ1Y3QgYnVpbHRpbl9kZXNjcmlwdGlvbiBiZGVzY18KLSAgIHsgTUFTS19BTFRJVkVDLCBD T0RFX0ZPUl9hbHRpdmVjX3Z1cGtscHgsICJfX2J1aWx0aW5fYWx0aXZlY192dXBrbHB4IiwgQUxU SVZFQ19CVUlMVElOX1ZVUEtMUFggfSwKLSAgIHsgTUFTS19BTFRJVkVDLCBDT0RFX0ZPUl9hbHRp dmVjX3Z1cGtsc2gsICJfX2J1aWx0aW5fYWx0aXZlY192dXBrbHNoIiwgQUxUSVZFQ19CVUlMVElO X1ZVUEtMU0ggfSwKLSAKLSsgIHsgTUFTS19WU1gsIENPREVfRk9SX25lZ3YyZGYyLCAiX19idWls dGluX3ZzeF94dm5lZ2RwIiwgVlNYX0JVSUxUSU5fWFZORUdEUCB9LAotKyAgeyBNQVNLX1ZTWCwg Q09ERV9GT1Jfc3FydHYyZGYyLCAiX19idWlsdGluX3ZzeF94dnNxcnRkcCIsIFZTWF9CVUlMVElO X1hWU1FSVERQIH0sCi0rICB7IE1BU0tfVlNYLCBDT0RFX0ZPUl9uZWd2NHNmMiwgIl9fYnVpbHRp bl92c3hfeHZuZWdzcCIsIFZTWF9CVUlMVElOX1hWTkVHU1AgfSwKLSsgIHsgTUFTS19WU1gsIENP REVfRk9SX3NxcnR2NHNmMiwgIl9fYnVpbHRpbl92c3hfeHZzcXJ0c3AiLCBWU1hfQlVJTFRJTl9Y VlNRUlRTUCB9LAotKwotICAgeyBNQVNLX0FMVElWRUMsIENPREVfRk9SX25vdGhpbmcsICJfX2J1 aWx0aW5fdmVjX2FicyIsIEFMVElWRUNfQlVJTFRJTl9WRUNfQUJTIH0sCi0gICB7IE1BU0tfQUxU SVZFQywgQ09ERV9GT1Jfbm90aGluZywgIl9fYnVpbHRpbl92ZWNfYWJzcyIsIEFMVElWRUNfQlVJ TFRJTl9WRUNfQUJTUyB9LAotICAgeyBNQVNLX0FMVElWRUMsIENPREVfRk9SX25vdGhpbmcsICJf X2J1aWx0aW5fdmVjX2NlaWwiLCBBTFRJVkVDX0JVSUxUSU5fVkVDX0NFSUwgfSwKLUBAIC04MzM5 LDYgKzgzOTAsMTUgQEAgc3RhdGljIHN0cnVjdCBidWlsdGluX2Rlc2NyaXB0aW9uIGJkZXNjXwot ICAgeyBNQVNLX0FMVElWRUN8TUFTS19WU1gsIENPREVfRk9SX2ZpeF90cnVuY3Y0c2Z2NHNpMiwg Il9fYnVpbHRpbl92ZWNfZml4X3Nmc2kiLCBWRUNUT1JfQlVJTFRJTl9GSVhfVjRTRl9WNFNJIH0s Ci0gICB7IE1BU0tfQUxUSVZFQ3xNQVNLX1ZTWCwgQ09ERV9GT1JfZml4dW5zX3RydW5jdjRzZnY0 c2kyLCAiX19idWlsdGluX3ZlY19maXh1bnNfc2ZzaSIsIFZFQ1RPUl9CVUlMVElOX0ZJWFVOU19W NFNGX1Y0U0kgfSwKLSAKLSsgIHsgTUFTS19WU1gsIENPREVfRk9SX2Zsb2F0djJkaXYyZGYyLCAi X19idWlsdGluX3ZzeF94dmN2c3hkZHAiLCBWU1hfQlVJTFRJTl9YVkNWU1hERFAgfSwKLSsgIHsg TUFTS19WU1gsIENPREVfRk9SX3Vuc2lnbmVkX2Zsb2F0djJkaXYyZGYyLCAiX19idWlsdGluX3Zz eF94dmN2dXhkZHAiLCBWU1hfQlVJTFRJTl9YVkNWVVhERFAgfSwKLSsgIHsgTUFTS19WU1gsIENP REVfRk9SX2ZpeF90cnVuY3YyZGZ2MmRpMiwgIl9fYnVpbHRpbl92c3hfeHZkcHN4ZHMiLCBWU1hf QlVJTFRJTl9YVkNWRFBTWERTIH0sCi0rICB7IE1BU0tfVlNYLCBDT0RFX0ZPUl9maXh1bnNfdHJ1 bmN2MmRmdjJkaTIsICJfX2J1aWx0aW5fdnN4X3h2ZHB1eGRzIiwgVlNYX0JVSUxUSU5fWFZDVkRQ VVhEUyB9LAotKyAgeyBNQVNLX1ZTWCwgQ09ERV9GT1JfZmxvYXR2NHNpdjRzZjIsICJfX2J1aWx0 aW5fdnN4X3h2Y3ZzeHdzcCIsIFZTWF9CVUlMVElOX1hWQ1ZTWERTUCB9LAotKyAgeyBNQVNLX1ZT WCwgQ09ERV9GT1JfdW5zaWduZWRfZmxvYXR2NHNpdjRzZjIsICJfX2J1aWx0aW5fdnN4X3h2Y3Z1 eHdzcCIsIFZTWF9CVUlMVElOX1hWQ1ZVWFdTUCB9LAotKyAgeyBNQVNLX1ZTWCwgQ09ERV9GT1Jf Zml4X3RydW5jdjRzZnY0c2kyLCAiX19idWlsdGluX3ZzeF94dnNwc3h3cyIsIFZTWF9CVUlMVElO X1hWQ1ZTUFNYV1MgfSwKLSsgIHsgTUFTS19WU1gsIENPREVfRk9SX2ZpeHVuc190cnVuY3Y0c2Z2 NHNpMiwgIl9fYnVpbHRpbl92c3hfeHZzcHV4d3MiLCBWU1hfQlVJTFRJTl9YVkNWU1BVWFdTIH0s Ci0rCi0gICAvKiBUaGUgU1BFIHVuYXJ5IGJ1aWx0aW5zIG11c3Qgc3RhcnQgd2l0aCBTUEVfQlVJ TFRJTl9FVkFCUyBhbmQKLSAgICAgIGVuZCB3aXRoIFNQRV9CVUlMVElOX0VWU1VCRlVTSUFBVy4g ICovCi0gICB7IDAsIENPREVfRk9SX3NwZV9ldmFicywgIl9fYnVpbHRpbl9zcGVfZXZhYnMiLCBT UEVfQlVJTFRJTl9FVkFCUyB9LAotQEAgLTEwNDg0LDYgKzEwNTQ0LDggQEAgYWx0aXZlY19pbml0 X2J1aWx0aW5zICh2b2lkKQotICAgICA9IGJ1aWxkX2Z1bmN0aW9uX3R5cGVfbGlzdCAoVjE2UUlf dHlwZV9ub2RlLCBWMTZRSV90eXBlX25vZGUsIE5VTExfVFJFRSk7Ci0gICB0cmVlIHY0c2ZfZnR5 cGVfdjRzZgotICAgICA9IGJ1aWxkX2Z1bmN0aW9uX3R5cGVfbGlzdCAoVjRTRl90eXBlX25vZGUs IFY0U0ZfdHlwZV9ub2RlLCBOVUxMX1RSRUUpOwotKyAgdHJlZSB2MmRmX2Z0eXBlX3YyZGYKLSsg ICAgPSBidWlsZF9mdW5jdGlvbl90eXBlX2xpc3QgKFYyREZfdHlwZV9ub2RlLCBWMkRGX3R5cGVf bm9kZSwgTlVMTF9UUkVFKTsKLSAgIHRyZWUgdm9pZF9mdHlwZV9wY3ZvaWRfaW50X2ludAotICAg ICA9IGJ1aWxkX2Z1bmN0aW9uX3R5cGVfbGlzdCAodm9pZF90eXBlX25vZGUsCi0gCQkJCXBjdm9p ZF90eXBlX25vZGUsIGludGVnZXJfdHlwZV9ub2RlLAotQEAgLTEwNjQxLDYgKzEwNzAzLDkgQEAg YWx0aXZlY19pbml0X2J1aWx0aW5zICh2b2lkKQotIAljYXNlIFY0U0Ztb2RlOgotIAkgIHR5cGUg PSB2NHNmX2Z0eXBlX3Y0c2Y7Ci0gCSAgYnJlYWs7Ci0rCWNhc2UgVjJERm1vZGU6Ci0rCSAgdHlw ZSA9IHYyZGZfZnR5cGVfdjJkZjsKLSsJICBicmVhazsKLSAJZGVmYXVsdDoKLSAJICBnY2NfdW5y ZWFjaGFibGUgKCk7Ci0gCX0KLUBAIC0xMDk2MCw2ICsxMTAyNSwxOCBAQCByczYwMDBfY29tbW9u X2luaXRfYnVpbHRpbnMgKHZvaWQpCi0gICB0cmVlIGludF9mdHlwZV92OGhpX3Y4aGkKLSAgICAg PSBidWlsZF9mdW5jdGlvbl90eXBlX2xpc3QgKGludGVnZXJfdHlwZV9ub2RlLAotIAkJCQlWOEhJ X3R5cGVfbm9kZSwgVjhISV90eXBlX25vZGUsIE5VTExfVFJFRSk7Ci0rICB0cmVlIHYyZGlfZnR5 cGVfdjJkZgotKyAgICA9IGJ1aWxkX2Z1bmN0aW9uX3R5cGVfbGlzdCAoVjJESV90eXBlX25vZGUs Ci0rCQkJCVYyREZfdHlwZV9ub2RlLCBOVUxMX1RSRUUpOwotKyAgdHJlZSB2MmRmX2Z0eXBlX3Yy ZGYKLSsgICAgPSBidWlsZF9mdW5jdGlvbl90eXBlX2xpc3QgKFYyREZfdHlwZV9ub2RlLAotKwkJ CQlWMkRGX3R5cGVfbm9kZSwgTlVMTF9UUkVFKTsKLSsgIHRyZWUgdjJkZl9mdHlwZV92MmRpCi0r ICAgID0gYnVpbGRfZnVuY3Rpb25fdHlwZV9saXN0IChWMkRGX3R5cGVfbm9kZSwKLSsJCQkJVjJE SV90eXBlX25vZGUsIE5VTExfVFJFRSk7Ci0rICB0cmVlIHYyZGZfZnR5cGVfdjJkZl92MmRmCi0r ICAgID0gYnVpbGRfZnVuY3Rpb25fdHlwZV9saXN0IChWMkRGX3R5cGVfbm9kZSwKLSsJCQkJVjJE Rl90eXBlX25vZGUsIFYyREZfdHlwZV9ub2RlLCBOVUxMX1RSRUUpOwotICAgdHJlZSB2MmRmX2Z0 eXBlX3YyZGZfdjJkZl92MmRmCi0gICAgID0gYnVpbGRfZnVuY3Rpb25fdHlwZV9saXN0IChWMkRG X3R5cGVfbm9kZSwKLSAJCQkJVjJERl90eXBlX25vZGUsIFYyREZfdHlwZV9ub2RlLAotQEAgLTEx MTM2LDYgKzExMjEzLDkgQEAgcnM2MDAwX2NvbW1vbl9pbml0X2J1aWx0aW5zICh2b2lkKQotIAkg ICAgY2FzZSBWT0lEbW9kZToKLSAJICAgICAgdHlwZSA9IG9wYXF1ZV9mdHlwZV9vcGFxdWVfb3Bh cXVlOwotIAkgICAgICBicmVhazsKLSsJICAgIGNhc2UgVjJERm1vZGU6Ci0rCSAgICAgIHR5cGUg PSB2MmRmX2Z0eXBlX3YyZGZfdjJkZjsKLSsJICAgICAgYnJlYWs7Ci0gCSAgICBjYXNlIFY0U0Zt b2RlOgotIAkgICAgICB0eXBlID0gdjRzZl9mdHlwZV92NHNmX3Y0c2Y7Ci0gCSAgICAgIGJyZWFr OwotQEAgLTExMjg1LDYgKzExMzY1LDggQEAgcnM2MDAwX2NvbW1vbl9pbml0X2J1aWx0aW5zICh2 b2lkKQotIAl0eXBlID0gdjE2cWlfZnR5cGVfaW50OwotICAgICAgIGVsc2UgaWYgKG1vZGUwID09 IFZPSURtb2RlICYmIG1vZGUxID09IFZPSURtb2RlKQotIAl0eXBlID0gb3BhcXVlX2Z0eXBlX29w YXF1ZTsKLSsgICAgICBlbHNlIGlmIChtb2RlMCA9PSBWMkRGbW9kZSAmJiBtb2RlMSA9PSBWMkRG bW9kZSkKLSsJdHlwZSA9IHYyZGZfZnR5cGVfdjJkZjsKLSAgICAgICBlbHNlIGlmIChtb2RlMCA9 PSBWNFNGbW9kZSAmJiBtb2RlMSA9PSBWNFNGbW9kZSkKLSAJdHlwZSA9IHY0c2ZfZnR5cGVfdjRz ZjsKLSAgICAgICBlbHNlIGlmIChtb2RlMCA9PSBWOEhJbW9kZSAmJiBtb2RlMSA9PSBWMTZRSW1v ZGUpCi1AQCAtMTEzMTAsNiArMTEzOTIsMTAgQEAgcnM2MDAwX2NvbW1vbl9pbml0X2J1aWx0aW5z ICh2b2lkKQotIAl0eXBlID0gdjRzaV9mdHlwZV92NHNmOwotICAgICAgIGVsc2UgaWYgKG1vZGUw ID09IFY0U0Ztb2RlICYmIG1vZGUxID09IFY0U0ltb2RlKQotIAl0eXBlID0gdjRzZl9mdHlwZV92 NHNpOwotKyAgICAgIGVsc2UgaWYgKG1vZGUwID09IFYyREltb2RlICYmIG1vZGUxID09IFYyREZt b2RlKQotKwl0eXBlID0gdjJkaV9mdHlwZV92MmRmOwotKyAgICAgIGVsc2UgaWYgKG1vZGUwID09 IFYyREZtb2RlICYmIG1vZGUxID09IFYyREltb2RlKQotKwl0eXBlID0gdjJkZl9mdHlwZV92MmRp OwotICAgICAgIGVsc2UKLSAJZ2NjX3VucmVhY2hhYmxlICgpOwotIAotQEAgLTEyMDkyLDggKzEy MTc4LDEwIEBAIHJ0eAotIHJzNjAwMF9zZWNvbmRhcnlfbWVtb3J5X25lZWRlZF9ydHggKGVudW0g bWFjaGluZV9tb2RlIG1vZGUpCi0gewotICAgc3RhdGljIGJvb2wgZWxpbWluYXRlZCA9IGZhbHNl OwotKyAgcnR4IHJldDsKLSsKLSAgIGlmIChtb2RlICE9IFNEbW9kZSkKLS0gICAgcmV0dXJuIGFz c2lnbl9zdGFja19sb2NhbCAobW9kZSwgR0VUX01PREVfU0laRSAobW9kZSksIDApOwotKyAgICBy ZXQgPSBhc3NpZ25fc3RhY2tfbG9jYWwgKG1vZGUsIEdFVF9NT0RFX1NJWkUgKG1vZGUpLCAwKTsK LSAgIGVsc2UKLSAgICAgewotICAgICAgIHJ0eCBtZW0gPSBjZnVuLT5tYWNoaW5lLT5zZG1vZGVf c3RhY2tfc2xvdDsKLUBAIC0xMjEwNSw4ICsxMjE5MywyMSBAQCByczYwMDBfc2Vjb25kYXJ5X21l bW9yeV9uZWVkZWRfcnR4IChlbnVtCi0gCSAgY2Z1bi0+bWFjaGluZS0+c2Rtb2RlX3N0YWNrX3Ns b3QgPSBtZW07Ci0gCSAgZWxpbWluYXRlZCA9IHRydWU7Ci0gCX0KLS0gICAgICByZXR1cm4gbWVt OwotKyAgICAgIHJldCA9IG1lbTsKLSsgICAgfQotKwotKyAgaWYgKFRBUkdFVF9ERUJVR19BRERS KQotKyAgICB7Ci0rICAgICAgZnByaW50ZiAoc3RkZXJyLCAicnM2MDAwX3NlY29uZGFyeV9tZW1v cnlfbmVlZGVkX3J0eCwgbW9kZSAlcywgcnR4OlxuIiwKLSsJICAgICAgIEdFVF9NT0RFX05BTUUg KG1vZGUpKTsKLSsgICAgICBpZiAoIXJldCkKLSsJZnByaW50ZiAoc3RkZXJyLCAiXHROVUxMX1JU WFxuIik7Ci0rICAgICAgZWxzZQotKwlkZWJ1Z19ydHggKHJldCk7Ci0rICAgICAgZnByaW50ZiAo c3RkZXJyLCAiXG4iKTsKLSAgICAgfQotKwotKyAgcmV0dXJuIHJldDsKLSB9Ci0gCi0gc3RhdGlj IHRyZWUKLUBAIC0xMjE0MCw2ICsxMjI0MSw1NCBAQCByczYwMDBfY2hlY2tfc2Rtb2RlICh0cmVl ICp0cCwgaW50ICp3YWxrCi0gICByZXR1cm4gTlVMTF9UUkVFOwotIH0KLSAKLSsvKiBJbmZvcm0g cmVsb2FkIGFib3V0IGNhc2VzIHdoZXJlIG1vdmluZyBYIHdpdGggYSBtb2RlIE1PREUgdG8gYSBy ZWdpc3RlciBpbgotKyAgIFJDTEFTUyByZXF1aXJlcyBhbiBleHRyYSBzY3JhdGNoIG9yIGltbWVk aWF0ZSByZWdpc3Rlci4gIFJldHVybiB0aGUgY2xhc3MKLSsgICBuZWVkZWQgZm9yIHRoZSBpbW1l ZGlhdGUgcmVnaXN0ZXIuICAqLwotKwotK3N0YXRpYyBlbnVtIHJlZ19jbGFzcwotK3JzNjAwMF9z ZWNvbmRhcnlfcmVsb2FkIChib29sIGluX3AsCi0rCQkJIHJ0eCB4LAotKwkJCSBlbnVtIHJlZ19j bGFzcyByY2xhc3MsCi0rCQkJIGVudW0gbWFjaGluZV9tb2RlIG1vZGUsCi0rCQkJIHNlY29uZGFy eV9yZWxvYWRfaW5mbyAqc3JpKQotK3sKLSsgIGlmIChUQVJHRVRfREVCVUdfQUREUikKLSsgICAg ewotKyAgICAgIGZwcmludGYgKHN0ZGVyciwKLSsJICAgICAgICJyczYwMDBfc2Vjb25kYXJ5X3Jl bG9hZCwgaW5fcCA9ICVzLCByY2xhc3MgPSAlcywgbW9kZSA9ICVzXG4iLAotKwkgICAgICAgaW5f cCA/ICJ0cnVlIiA6ICJmYWxzZSIsIHJlZ19jbGFzc19uYW1lc1tyY2xhc3NdLAotKwkgICAgICAg R0VUX01PREVfTkFNRSAobW9kZSkpOwotKyAgICAgIGRlYnVnX3J0eCAoeCk7Ci0rICAgICAgZnBy aW50ZiAoc3RkZXJyLCAiXG4iKTsKLSsgICAgfQotKwotKyAgcmV0dXJuIGRlZmF1bHRfc2Vjb25k YXJ5X3JlbG9hZCAoaW5fcCwgeCwgcmNsYXNzLCBtb2RlLCBzcmkpOwotK30KLSsKLSsvKiBGaXh1 cCByZWxvYWQgYWRkcmVzc2VzIGZvciBBbHRpdmVjIG9yIFZTWCBsb2Fkcy9zdG9yZXMgdG8gY2hh bmdlIFNQK29mZnNldAotKyAgIHRvIFNQK3JlZyBhZGRyZXNzaW5nLiAgKi8KLSsKLSt2b2lkCi0r cnM2MDAwX3ZlY3Rvcl9zZWNvbmRhcnlfcmVsb2FkIChydHggb3AwLCBydHggb3AxLCBydHggb3Ay LCBib29sIHRvX21lbV9wKQotK3sKLSsgIHJ0eCBtZW1yZWYgPSB0b19tZW1fcCA/IG9wMCA6IG9w MTsKLSsgIGdjY19hc3NlcnQgKE1FTV9QIChtZW1yZWYpKTsKLSsKLSsgIGlmIChUQVJHRVRfREVC VUdfQUREUikKLSsgICAgewotKyAgICAgIGZwcmludGYgKHN0ZGVyciwgInJzNjAwMF92ZWN0b3Jf c2Vjb25kYXJ5X3JlbG9hZCwgdG9fbWVtX3AgPSAlc1xuIiwKLSsJICAgICAgIHRvX21lbV9wID8g InRydWUiIDogImZhbHNlIik7Ci0rICAgICAgZnByaW50ZiAoc3RkZXJyLCAib3AwOlxuIik7Ci0r ICAgICAgZGVidWdfcnR4IChvcDApOwotKyAgICAgIGZwcmludGYgKHN0ZGVyciwgIm9wMTpcbiIp OwotKyAgICAgIGRlYnVnX3J0eCAob3AxKTsKLSsgICAgICBmcHJpbnRmIChzdGRlcnIsICJvcDI6 XG4iKTsKLSsgICAgICBkZWJ1Z19ydHggKG9wMik7Ci0rICAgICAgZnByaW50ZiAoc3RkZXJyLCAi XG4iKTsKLSsgICAgfQotKwotKyAgZ2NjX3VucmVhY2hhYmxlICgpOwotK30KLSAKLSAvKiBBbGxv Y2F0ZSBhIDY0LWJpdCBzdGFjayBzbG90IHRvIGJlIHVzZWQgZm9yIGNvcHlpbmcgU0Rtb2RlCi0g ICAgdmFsdWVzIHRocm91Z2ggaWYgdGhpcyBmdW5jdGlvbiBoYXMgYW55IFNEbW9kZSByZWZlcmVu Y2VzLiAgKi8KLUBAIC0xMjIxMiwzMiArMTIzNjEsNDQgQEAgZW51bSByZWdfY2xhc3MKLSByczYw MDBfcHJlZmVycmVkX3JlbG9hZF9jbGFzcyAocnR4IHgsIGVudW0gcmVnX2NsYXNzIHJjbGFzcykK LSB7Ci0gICBlbnVtIG1hY2hpbmVfbW9kZSBtb2RlID0gR0VUX01PREUgKHgpOwotKyAgZW51bSBy ZWdfY2xhc3MgcmV0OwotIAotICAgaWYgKFRBUkdFVF9WU1ggJiYgVlNYX1ZFQ1RPUl9NT0RFICht b2RlKSAmJiB4ID09IENPTlNUMF9SVFggKG1vZGUpCi0gICAgICAgJiYgVlNYX1JFR19DTEFTU19Q IChyY2xhc3MpKQotLSAgICByZXR1cm4gcmNsYXNzOwotKyAgICByZXQgPSByY2xhc3M7Ci0gCi0t ICBpZiAoVEFSR0VUX0FMVElWRUMgJiYgQUxUSVZFQ19WRUNUT1JfTU9ERSAobW9kZSkgJiYgcmNs YXNzID09IEFMVElWRUNfUkVHUwotLSAgICAgICYmIGVhc3lfdmVjdG9yX2NvbnN0YW50ICh4LCBt b2RlKSkKLS0gICAgcmV0dXJuIHJjbGFzczsKLSsgIGVsc2UgaWYgKFRBUkdFVF9BTFRJVkVDICYm IEFMVElWRUNfVkVDVE9SX01PREUgKG1vZGUpCi0rCSAgICYmIHJjbGFzcyA9PSBBTFRJVkVDX1JF R1MgJiYgZWFzeV92ZWN0b3JfY29uc3RhbnQgKHgsIG1vZGUpKQotKyAgICByZXQgPSByY2xhc3M7 Ci0gCi0tICBpZiAoQ09OU1RBTlRfUCAoeCkgJiYgcmVnX2NsYXNzZXNfaW50ZXJzZWN0X3AgKHJj bGFzcywgRkxPQVRfUkVHUykpCi0tICAgIHJldHVybiBOT19SRUdTOwotKyAgZWxzZSBpZiAoQ09O U1RBTlRfUCAoeCkgJiYgcmVnX2NsYXNzZXNfaW50ZXJzZWN0X3AgKHJjbGFzcywgRkxPQVRfUkVH UykpCi0rICAgIHJldCA9IE5PX1JFR1M7Ci0gCi0tICBpZiAoR0VUX01PREVfQ0xBU1MgKG1vZGUp ID09IE1PREVfSU5UICYmIHJjbGFzcyA9PSBOT05fU1BFQ0lBTF9SRUdTKQotLSAgICByZXR1cm4g R0VORVJBTF9SRUdTOwotKyAgZWxzZSBpZiAoR0VUX01PREVfQ0xBU1MgKG1vZGUpID09IE1PREVf SU5UICYmIHJjbGFzcyA9PSBOT05fU1BFQ0lBTF9SRUdTKQotKyAgICByZXQgPSBHRU5FUkFMX1JF R1M7Ci0gCi0gICAvKiBGb3IgVlNYLCBwcmVmZXIgdGhlIHRyYWRpdGlvbmFsIHJlZ2lzdGVycy4g ICovCi0tICBpZiAocmNsYXNzID09IFZTWF9SRUdTKQotKyAgZWxzZSBpZiAocmNsYXNzID09IFZT WF9SRUdTKQotICAgICB7Ci0gICAgICAgaWYgKG1vZGUgPT0gREZtb2RlKQotLQlyZXR1cm4gRkxP QVRfUkVHUzsKLSsJcmV0ID0gRkxPQVRfUkVHUzsKLSAKLSAgICAgICBpZiAoQUxUSVZFQ19WRUNU T1JfTU9ERSAobW9kZSkpCi0tCXJldHVybiBBTFRJVkVDX1JFR1M7Ci0rCXJldCA9IEFMVElWRUNf UkVHUzsKLSsgICAgfQotKyAgZWxzZQotKyAgICByZXQgPSByY2xhc3M7Ci0rCi0rICBpZiAoVEFS R0VUX0RFQlVHX0FERFIpCi0rICAgIHsKLSsgICAgICBmcHJpbnRmIChzdGRlcnIsCi0rCSAgICAg ICAicnM2MDAwX3ByZWZlcnJlZF9yZWxvYWRfY2xhc3MsIHJldHVybiAlcywgcmNsYXNzID0gJXMs IHg6XG4iLAotKwkgICAgICAgcmVnX2NsYXNzX25hbWVzW3JldF0sIHJlZ19jbGFzc19uYW1lc1ty Y2xhc3NdKTsKLSsgICAgICBkZWJ1Z19ydHggKHgpOwotKyAgICAgIGZwcmludGYgKHN0ZGVyciwg IlxuIik7Ci0gICAgIH0KLSAKLS0gIHJldHVybiByY2xhc3M7Ci0rICByZXR1cm4gcmV0OwotIH0K LSAKLSAvKiBJZiB3ZSBhcmUgY29weWluZyBiZXR3ZWVuIEZQIG9yIEFsdGlWZWMgcmVnaXN0ZXJz IGFuZCBhbnl0aGluZyBlbHNlLCB3ZSBuZWVkCi1AQCAtMTIyNTEsMzEgKzEyNDEyLDQ2IEBAIHJz NjAwMF9zZWNvbmRhcnlfbWVtb3J5X25lZWRlZCAoZW51bSByZWcKLSAJCQkJZW51bSByZWdfY2xh c3MgY2xhc3MyLAotIAkJCQllbnVtIG1hY2hpbmVfbW9kZSBtb2RlKQotIHsKLSsgIGJvb2wgcmV0 OwotKyAgYm9vbCB2c3gxOwotKyAgYm9vbCB2c3gyOwotKwotICAgaWYgKGNsYXNzMSA9PSBjbGFz czIpCi0tICAgIHJldHVybiBmYWxzZTsKLSsgICAgcmV0ID0gZmFsc2U7Ci0gCi0tICBpZiAoVEFS R0VUX1ZTWCAmJiBWU1hfTU9WRV9NT0RFIChtb2RlKSAmJiBWU1hfUkVHX0NMQVNTX1AgKGNsYXNz MSkKLS0gICAgICAmJiBWU1hfUkVHX0NMQVNTX1AgKGNsYXNzMikpCi0tICAgIHJldHVybiBmYWxz ZTsKLSsgIGVsc2UgaWYgKFRBUkdFVF9WU1ggJiYgVkVDVE9SX01FTV9WU1hfUCAobW9kZSkKLSsJ ICAgJiYgKCh2c3gxID0gVlNYX1JFR19DTEFTU19QIChjbGFzczEpKQotKwkgICAgICAgfHwgKHZz eDIgPSBWU1hfUkVHX0NMQVNTX1AgKGNsYXNzMikpKSkKLSsgICAgcmV0ID0gKHZzeDEgIT0gdnN4 Mik7Ci0rCi0rICBlbHNlIGlmIChjbGFzczEgPT0gRkxPQVRfUkVHUwotKwkgICAmJiAoIVRBUkdF VF9NRlBHUFIgfHwgIVRBUkdFVF9QT1dFUlBDNjQKLSsJICAgICAgIHx8ICgobW9kZSAhPSBERm1v ZGUpCi0rCQkgICAmJiAobW9kZSAhPSBERG1vZGUpCi0rCQkgICAmJiAobW9kZSAhPSBESW1vZGUp KSkpCi0rICAgIHJldCA9IHRydWU7Ci0rCi0rICBlbHNlIGlmIChjbGFzczIgPT0gRkxPQVRfUkVH UwotKwkgICAmJiAoIVRBUkdFVF9NRlBHUFIgfHwgIVRBUkdFVF9QT1dFUlBDNjQKLSsJICAgICAg IHx8ICgobW9kZSAhPSBERm1vZGUpCi0rCQkgICAmJiAobW9kZSAhPSBERG1vZGUpCi0rCQkgICAm JiAobW9kZSAhPSBESW1vZGUpKSkpCi0rICAgIHJldCA9IHRydWU7Ci0gCi0tICBpZiAoY2xhc3Mx ID09IEZMT0FUX1JFR1MKLS0gICAgICAgJiYgKCFUQVJHRVRfTUZQR1BSIHx8ICFUQVJHRVRfUE9X RVJQQzY0Ci0tCSAgIHx8ICgobW9kZSAhPSBERm1vZGUpCi0tCSAgICAgICAmJiAobW9kZSAhPSBE RG1vZGUpCi0tCSAgICAgICAmJiAobW9kZSAhPSBESW1vZGUpKSkpCi0tICAgIHJldHVybiB0cnVl OwotKyAgZWxzZSBpZiAoY2xhc3MxID09IEFMVElWRUNfUkVHUyB8fCBjbGFzczIgPT0gQUxUSVZF Q19SRUdTKQotKyAgICByZXQgPSB0cnVlOwotIAotLSAgaWYgKGNsYXNzMiA9PSBGTE9BVF9SRUdT Ci0tICAgICAgJiYgKCFUQVJHRVRfTUZQR1BSIHx8ICFUQVJHRVRfUE9XRVJQQzY0Ci0tCSAgfHwg KChtb2RlICE9IERGbW9kZSkKLS0JICAgICAgJiYgKG1vZGUgIT0gRERtb2RlKQotLQkgICAgICAm JiAobW9kZSAhPSBESW1vZGUpKSkpCi0tICAgIHJldHVybiB0cnVlOwotKyAgZWxzZQotKyAgICBy ZXQgPSBmYWxzZTsKLSAKLS0gIGlmIChjbGFzczEgPT0gQUxUSVZFQ19SRUdTIHx8IGNsYXNzMiA9 PSBBTFRJVkVDX1JFR1MpCi0tICAgIHJldHVybiB0cnVlOwotKyAgaWYgKFRBUkdFVF9ERUJVR19B RERSKQotKyAgICBmcHJpbnRmIChzdGRlcnIsCi0rCSAgICAgInJzNjAwMF9zZWNvbmRhcnlfbWVt b3J5X25lZWRlZCwgcmV0dXJuOiAlcywgY2xhc3MxID0gJXMsICIKLSsJICAgICAiY2xhc3MyID0g JXMsIG1vZGUgPSAlc1xuIiwKLSsJICAgICByZXQgPyAidHJ1ZSIgOiAiZmFsc2UiLCByZWdfY2xh c3NfbmFtZXNbY2xhc3MxXSwKLSsJICAgICByZWdfY2xhc3NfbmFtZXNbY2xhc3MyXSwgR0VUX01P REVfTkFNRSAobW9kZSkpOwotIAotLSAgcmV0dXJuIGZhbHNlOwotKyAgcmV0dXJuIHJldDsKLSB9 Ci0gCi0gLyogUmV0dXJuIHRoZSByZWdpc3RlciBjbGFzcyBvZiBhIHNjcmF0Y2ggcmVnaXN0ZXIg bmVlZGVkIHRvIGNvcHkgSU4gaW50bwotQEAgLTEyMjg3LDYgKzEyNDYzLDcgQEAgcnM2MDAwX3Nl Y29uZGFyeV9yZWxvYWRfY2xhc3MgKGVudW0gcmVnXwotIAkJCSAgICAgICBlbnVtIG1hY2hpbmVf bW9kZSBtb2RlLAotIAkJCSAgICAgICBydHggaW4pCi0gewotKyAgZW51bSByZWdfY2xhc3MgcmV0 ID0gTk9fUkVHUzsKLSAgIGludCByZWdubzsKLSAKLSAgIGlmIChUQVJHRVRfRUxGIHx8IChERUZB VUxUX0FCSSA9PSBBQklfREFSV0lOCi1AQCAtMTIzMDcsNTggKzEyNDg0LDc1IEBAIHJzNjAwMF9z ZWNvbmRhcnlfcmVsb2FkX2NsYXNzIChlbnVtIHJlZ18KLSAJICAgICAgfHwgR0VUX0NPREUgKGlu KSA9PSBISUdICi0gCSAgICAgIHx8IEdFVF9DT0RFIChpbikgPT0gTEFCRUxfUkVGCi0gCSAgICAg IHx8IEdFVF9DT0RFIChpbikgPT0gQ09OU1QpKQotLQlyZXR1cm4gQkFTRV9SRUdTOwotKwlyZXQg PSBCQVNFX1JFR1M7Ci0gICAgIH0KLSAKLS0gIGlmIChHRVRfQ09ERSAoaW4pID09IFJFRykKLSsg IGlmIChyZXQgPT0gTk9fUkVHUykKLSAgICAgewotLSAgICAgIHJlZ25vID0gUkVHTk8gKGluKTsK LS0gICAgICBpZiAocmVnbm8gPj0gRklSU1RfUFNFVURPX1JFR0lTVEVSKQotKyAgICAgIGlmIChH RVRfQ09ERSAoaW4pID09IFJFRykKLSsJewotKwkgIHJlZ25vID0gUkVHTk8gKGluKTsKLSsJICBp ZiAocmVnbm8gPj0gRklSU1RfUFNFVURPX1JFR0lTVEVSKQotKwkgICAgewotKwkgICAgICByZWdu byA9IHRydWVfcmVnbnVtIChpbik7Ci0rCSAgICAgIGlmIChyZWdubyA+PSBGSVJTVF9QU0VVRE9f UkVHSVNURVIpCi0rCQlyZWdubyA9IC0xOwotKwkgICAgfQotKwl9Ci0rICAgICAgZWxzZSBpZiAo R0VUX0NPREUgKGluKSA9PSBTVUJSRUcpCi0gCXsKLSAJICByZWdubyA9IHRydWVfcmVnbnVtIChp bik7Ci0gCSAgaWYgKHJlZ25vID49IEZJUlNUX1BTRVVET19SRUdJU1RFUikKLSAJICAgIHJlZ25v ID0gLTE7Ci0gCX0KLS0gICAgfQotLSAgZWxzZSBpZiAoR0VUX0NPREUgKGluKSA9PSBTVUJSRUcp Ci0tICAgIHsKLS0gICAgICByZWdubyA9IHRydWVfcmVnbnVtIChpbik7Ci0tICAgICAgaWYgKHJl Z25vID49IEZJUlNUX1BTRVVET19SRUdJU1RFUikKLSsgICAgICBlbHNlCi0gCXJlZ25vID0gLTE7 Ci0tICAgIH0KLS0gIGVsc2UKLS0gICAgcmVnbm8gPSAtMTsKLSAKLS0gIC8qIFdlIGNhbiBwbGFj ZSBhbnl0aGluZyBpbnRvIEdFTkVSQUxfUkVHUyBhbmQgY2FuIHB1dCBHRU5FUkFMX1JFR1MKLS0g ICAgIGludG8gYW55dGhpbmcuICAqLwotLSAgaWYgKHJjbGFzcyA9PSBHRU5FUkFMX1JFR1MgfHwg cmNsYXNzID09IEJBU0VfUkVHUwotLSAgICAgIHx8IChyZWdubyA+PSAwICYmIElOVF9SRUdOT19Q IChyZWdubykpKQotLSAgICByZXR1cm4gTk9fUkVHUzsKLS0KLS0gIC8qIENvbnN0YW50cywgbWVt b3J5LCBhbmQgRlAgcmVnaXN0ZXJzIGNhbiBnbyBpbnRvIEZQIHJlZ2lzdGVycy4gICovCi0tICBp ZiAoKHJlZ25vID09IC0xIHx8IEZQX1JFR05PX1AgKHJlZ25vKSkKLS0gICAgICAmJiAocmNsYXNz ID09IEZMT0FUX1JFR1MgfHwgcmNsYXNzID09IE5PTl9TUEVDSUFMX1JFR1MpKQotLSAgICByZXR1 cm4gKG1vZGUgIT0gU0Rtb2RlKSA/IE5PX1JFR1MgOiBHRU5FUkFMX1JFR1M7Ci0tCi0tICAvKiBN ZW1vcnksIGFuZCBGUC9hbHRpdmVjIHJlZ2lzdGVycyBjYW4gZ28gaW50byBmcC9hbHRpdmVjIHJl Z2lzdGVycyB1bmRlcgotLSAgICAgVlNYLiAgKi8KLS0gIGlmIChUQVJHRVRfVlNYCi0tICAgICAg JiYgKHJlZ25vID09IC0xIHx8IFZTWF9SRUdOT19QIChyZWdubykpCi0tICAgICAgJiYgVlNYX1JF R19DTEFTU19QIChyY2xhc3MpKQotLSAgICByZXR1cm4gTk9fUkVHUzsKLSsgICAgICAvKiBXZSBj YW4gcGxhY2UgYW55dGhpbmcgaW50byBHRU5FUkFMX1JFR1MgYW5kIGNhbiBwdXQgR0VORVJBTF9S RUdTCi0rCSBpbnRvIGFueXRoaW5nLiAgKi8KLSsgICAgICBpZiAocmNsYXNzID09IEdFTkVSQUxf UkVHUyB8fCByY2xhc3MgPT0gQkFTRV9SRUdTCi0rCSAgfHwgKHJlZ25vID49IDAgJiYgSU5UX1JF R05PX1AgKHJlZ25vKSkpCi0rCXJldCA9IE5PX1JFR1M7Ci0rCi0rICAgICAgLyogQ29uc3RhbnRz LCBtZW1vcnksIGFuZCBGUCByZWdpc3RlcnMgY2FuIGdvIGludG8gRlAgcmVnaXN0ZXJzLiAgKi8K LSsgICAgICBlbHNlIGlmICgocmVnbm8gPT0gLTEgfHwgRlBfUkVHTk9fUCAocmVnbm8pKQotKwkg ICAgICAgJiYgKHJjbGFzcyA9PSBGTE9BVF9SRUdTIHx8IHJjbGFzcyA9PSBOT05fU1BFQ0lBTF9S RUdTKSkKLSsJcmV0ID0gKG1vZGUgIT0gU0Rtb2RlKSA/IE5PX1JFR1MgOiBHRU5FUkFMX1JFR1M7 Ci0rCi0rICAgICAgLyogTWVtb3J5LCBhbmQgRlAvYWx0aXZlYyByZWdpc3RlcnMgY2FuIGdvIGlu dG8gZnAvYWx0aXZlYyByZWdpc3RlcnMgdW5kZXIKLSsJIFZTWC4gICovCi0rICAgICAgZWxzZSBp ZiAoVEFSR0VUX1ZTWAotKwkgICAgICAgJiYgKHJlZ25vID09IC0xIHx8IFZTWF9SRUdOT19QIChy ZWdubykpCi0rCSAgICAgICAmJiBWU1hfUkVHX0NMQVNTX1AgKHJjbGFzcykpCi0rCXJldCA9IE5P X1JFR1M7Ci0rCi0rICAgICAgLyogTWVtb3J5LCBhbmQgQWx0aVZlYyByZWdpc3RlcnMgY2FuIGdv IGludG8gQWx0aVZlYyByZWdpc3RlcnMuICAqLwotKyAgICAgIGVsc2UgaWYgKChyZWdubyA9PSAt MSB8fCBBTFRJVkVDX1JFR05PX1AgKHJlZ25vKSkKLSsJICAgICAgICYmIHJjbGFzcyA9PSBBTFRJ VkVDX1JFR1MpCi0rCXJldCA9IE5PX1JFR1M7Ci0rCi0rICAgICAgLyogV2UgY2FuIGNvcHkgYW1v bmcgdGhlIENSIHJlZ2lzdGVycy4gICovCi0rICAgICAgZWxzZSBpZiAoKHJjbGFzcyA9PSBDUl9S RUdTIHx8IHJjbGFzcyA9PSBDUjBfUkVHUykKLSsJICAgICAgICYmIHJlZ25vID49IDAgJiYgQ1Jf UkVHTk9fUCAocmVnbm8pKQotKwlyZXQgPSBOT19SRUdTOwotKwotKyAgICAgIC8qIE90aGVyd2lz ZSwgd2UgbmVlZCBHRU5FUkFMX1JFR1MuICAqLwotKyAgICAgIGVsc2UKLSsJcmV0ID0gR0VORVJB TF9SRUdTOwotKyAgICB9Ci0gCi0tICAvKiBNZW1vcnksIGFuZCBBbHRpVmVjIHJlZ2lzdGVycyBj YW4gZ28gaW50byBBbHRpVmVjIHJlZ2lzdGVycy4gICovCi0tICBpZiAoKHJlZ25vID09IC0xIHx8 IEFMVElWRUNfUkVHTk9fUCAocmVnbm8pKQotLSAgICAgICYmIHJjbGFzcyA9PSBBTFRJVkVDX1JF R1MpCi0tICAgIHJldHVybiBOT19SRUdTOwotLQotLSAgLyogV2UgY2FuIGNvcHkgYW1vbmcgdGhl IENSIHJlZ2lzdGVycy4gICovCi0tICBpZiAoKHJjbGFzcyA9PSBDUl9SRUdTIHx8IHJjbGFzcyA9 PSBDUjBfUkVHUykKLS0gICAgICAmJiByZWdubyA+PSAwICYmIENSX1JFR05PX1AgKHJlZ25vKSkK LS0gICAgcmV0dXJuIE5PX1JFR1M7Ci0rICBpZiAoVEFSR0VUX0RFQlVHX0FERFIpCi0rICAgIHsK LSsgICAgICBmcHJpbnRmIChzdGRlcnIsCi0rCSAgICAgICAicnM2MDAwX3NlY29uZGFyeV9yZWxv YWRfY2xhc3MsIHJldHVybiAlcywgcmNsYXNzID0gJXMsICIKLSsJICAgICAgICJtb2RlID0gJXMs IGlucHV0IHJ0eDpcbiIsCi0rCSAgICAgICByZWdfY2xhc3NfbmFtZXNbcmV0XSwgcmVnX2NsYXNz X25hbWVzW3JjbGFzc10sCi0rCSAgICAgICBHRVRfTU9ERV9OQU1FIChtb2RlKSk7Ci0rICAgICAg ZGVidWdfcnR4IChpbik7Ci0rICAgICAgZnByaW50ZiAoc3RkZXJyLCAiXG4iKTsKLSsgICAgfQot IAotLSAgLyogT3RoZXJ3aXNlLCB3ZSBuZWVkIEdFTkVSQUxfUkVHUy4gICovCi0tICByZXR1cm4g R0VORVJBTF9SRUdTOwotKyAgcmV0dXJuIHJldDsKLSB9Ci0gCi0gLyogUmV0dXJuIG5vbnplcm8g aWYgZm9yIENMQVNTIGEgbW9kZSBjaGFuZ2UgZnJvbSBGUk9NIHRvIFRPIGlzIGludmFsaWQuICAq LwotQEAgLTEyMzY4LDE5ICsxMjU2MiwyOSBAQCByczYwMDBfY2Fubm90X2NoYW5nZV9tb2RlX2Ns YXNzIChlbnVtIG1hCi0gCQkJCSBlbnVtIG1hY2hpbmVfbW9kZSB0bywKLSAJCQkJIGVudW0gcmVn X2NsYXNzIHJjbGFzcykKLSB7Ci0tICByZXR1cm4gKEdFVF9NT0RFX1NJWkUgKGZyb20pICE9IEdF VF9NT0RFX1NJWkUgKHRvKQotLQkgID8gKChHRVRfTU9ERV9TSVpFIChmcm9tKSA8IDggfHwgR0VU X01PREVfU0laRSAodG8pIDwgOAotLQkgICAgICB8fCBUQVJHRVRfSUVFRVFVQUQpCi0tCSAgICAg JiYgcmVnX2NsYXNzZXNfaW50ZXJzZWN0X3AgKEZMT0FUX1JFR1MsIHJjbGFzcykpCi0tCSAgOiAo KChUQVJHRVRfRTUwMF9ET1VCTEUKLS0JICAgICAgICYmICgoKCh0bykgPT0gREZtb2RlKSArICgo ZnJvbSkgPT0gREZtb2RlKSkgPT0gMQotLQkJICAgfHwgKCgodG8pID09IFRGbW9kZSkgKyAoKGZy b20pID09IFRGbW9kZSkpID09IDEKLS0JCSAgIHx8ICgoKHRvKSA9PSBERG1vZGUpICsgKChmcm9t KSA9PSBERG1vZGUpKSA9PSAxCi0tCQkgICB8fCAoKCh0bykgPT0gVERtb2RlKSArICgoZnJvbSkg PT0gVERtb2RlKSkgPT0gMQotLQkJICAgfHwgKCgodG8pID09IERJbW9kZSkgKyAoKGZyb20pID09 IERJbW9kZSkpID09IDEpKQotLQkgICAgICB8fCAoVEFSR0VUX1NQRQotLQkJICAmJiAoU1BFX1ZF Q1RPUl9NT0RFIChmcm9tKSArIFNQRV9WRUNUT1JfTU9ERSAodG8pKSA9PSAxKSkKLS0JICAgICAm JiByZWdfY2xhc3Nlc19pbnRlcnNlY3RfcCAoR0VORVJBTF9SRUdTLCByY2xhc3MpKSk7Ci0rICBi b29sIHJldCA9IChHRVRfTU9ERV9TSVpFIChmcm9tKSAhPSBHRVRfTU9ERV9TSVpFICh0bykKLSsJ ICAgICAgPyAoKEdFVF9NT0RFX1NJWkUgKGZyb20pIDwgOCB8fCBHRVRfTU9ERV9TSVpFICh0bykg PCA4Ci0rCQkgIHx8IFRBUkdFVF9JRUVFUVVBRCkKLSsJCSAmJiByZWdfY2xhc3Nlc19pbnRlcnNl Y3RfcCAoRkxPQVRfUkVHUywgcmNsYXNzKSkKLSsJICAgICAgOiAoKChUQVJHRVRfRTUwMF9ET1VC TEUKLSsJCSAgICYmICgoKCh0bykgPT0gREZtb2RlKSArICgoZnJvbSkgPT0gREZtb2RlKSkgPT0g MQotKwkJICAgICAgIHx8ICgoKHRvKSA9PSBURm1vZGUpICsgKChmcm9tKSA9PSBURm1vZGUpKSA9 PSAxCi0rCQkgICAgICAgfHwgKCgodG8pID09IEREbW9kZSkgKyAoKGZyb20pID09IEREbW9kZSkp ID09IDEKLSsJCSAgICAgICB8fCAoKCh0bykgPT0gVERtb2RlKSArICgoZnJvbSkgPT0gVERtb2Rl KSkgPT0gMQotKwkJICAgICAgIHx8ICgoKHRvKSA9PSBESW1vZGUpICsgKChmcm9tKSA9PSBESW1v ZGUpKSA9PSAxKSkKLSsJCSAgfHwgKFRBUkdFVF9TUEUKLSsJCSAgICAgICYmIChTUEVfVkVDVE9S X01PREUgKGZyb20pICsgU1BFX1ZFQ1RPUl9NT0RFICh0bykpID09IDEpKQotKwkJICYmIHJlZ19j bGFzc2VzX2ludGVyc2VjdF9wIChHRU5FUkFMX1JFR1MsIHJjbGFzcykpKTsKLSsKLSsgIGlmIChU QVJHRVRfREVCVUdfQUREUikKLSsgICAgZnByaW50ZiAoc3RkZXJyLAotKwkgICAgICJyczYwMDBf Y2Fubm90X2NoYW5nZV9tb2RlX2NsYXNzLCByZXR1cm4gJXMsIGZyb20gPSAlcywgIgotKwkgICAg ICJ0byA9ICVzLCByY2xhc3MgPSAlc1xuIiwKLSsJICAgICByZXQgPyAidHJ1ZSIgOiAiZmFsc2Ui LAotKwkgICAgIEdFVF9NT0RFX05BTUUgKGZyb20pLCBHRVRfTU9ERV9OQU1FICh0byksCi0rCSAg ICAgcmVnX2NsYXNzX25hbWVzW3JjbGFzc10pOwotKwotKyAgcmV0dXJuIHJldDsKLSB9Ci0gDAot IC8qIEdpdmVuIGEgY29tcGFyaXNvbiBvcGVyYXRpb24sIHJldHVybiB0aGUgYml0IG51bWJlciBp biBDQ1IgdG8gdGVzdC4gIFdlCi0tLS0gZ2NjL2NvbmZpZy9yczYwMDAvdnN4Lm1kCShyZXZpc2lv biAxNDQ3NTgpCi0rKysgZ2NjL2NvbmZpZy9yczYwMDAvdnN4Lm1kCShyZXZpc2lvbiAxNDQ4NDMp Ci1AQCAtNjgsNyArNjgsMTMgQEAgKGRlZmluZV9tb2RlX2F0dHIgVlNiaXQgWyhTSSAiMzIiKQot IAkJCSAoREkgIjY0IildKQotIAotIChkZWZpbmVfY29uc3RhbnRzCi0tICBbKFVOU1BFQ19WU1hf Q09OQ0FUX1YyREYJNTAwKV0pCi0rICBbKFVOU1BFQ19WU1hfQ09OQ0FUX1YyREYJNTAwKQotKyAg IChVTlNQRUNfVlNYX1hWQ1ZEUFNQCQk1MDEpCi0rICAgKFVOU1BFQ19WU1hfWFZDVkRQU1hXUwk1 MDIpCi0rICAgKFVOU1BFQ19WU1hfWFZDVkRQVVhXUwk1MDMpCi0rICAgKFVOU1BFQ19WU1hfWFZD VlNQRFAJCTUwNCkKLSsgICAoVU5TUEVDX1ZTWF9YVkNWU1hXRFAJNTA1KQotKyAgIChVTlNQRUNf VlNYX1hWQ1ZVWFdEUAk1MDYpXSkKLSAKLSA7OyBWU1ggbW92ZXMKLSAoZGVmaW5lX2luc24gIip2 c3hfbW92PG1vZGU+IgotQEAgLTI0NSw3ICsyNTEsNyBAQCAoZGVmaW5lX2luc24gIip2c3hfYWJz PG1vZGU+MiIKLSAgICJ4dmFiczxWU3M+ICV4MCwleDEiCi0gICBbKHNldF9hdHRyICJ0eXBlIiAi dmVjZmxvYXQiKV0pCi0gCi0tKGRlZmluZV9pbnNuICIqdnN4X25hYnM8bW9kZT4yIgotKyhkZWZp bmVfaW5zbiAidnN4X25hYnM8bW9kZT4yIgotICAgWyhzZXQgKG1hdGNoX29wZXJhbmQ6VlNYX0Yg MCAidnN4X3JlZ2lzdGVyX29wZXJhbmQiICI9PFZTcj4iKQotICAgICAgICAgKG5lZzpWU1hfRgot IAkgKGFiczpWU1hfRgotQEAgLTQxNywxNCArNDIzLDE0IEBAIChkZWZpbmVfaW5zbiAiKnZzeF9m dHJ1bmM8bW9kZT4yIgotICAgInh2cjxWU3M+cGl6ICV4MCwleDEiCi0gICBbKHNldF9hdHRyICJ0 eXBlIiAidmVjcGVybSIpXSkKLSAKLS0oZGVmaW5lX2luc24gIip2c3hfZmxvYXQ8VlNpPjxtb2Rl PjIiCi0rKGRlZmluZV9pbnNuICJ2c3hfZmxvYXQ8VlNpPjxtb2RlPjIiCi0gICBbKHNldCAobWF0 Y2hfb3BlcmFuZDpWU1hfRiAwICJ2c3hfcmVnaXN0ZXJfb3BlcmFuZCIgIj08VlNyPiIpCi0gCShm bG9hdDpWU1hfRiAobWF0Y2hfb3BlcmFuZDo8VlNJPiAxICJ2c3hfcmVnaXN0ZXJfb3BlcmFuZCIg IjxWU3I+IikpKV0KLSAgICJWRUNUT1JfVU5JVF9WU1hfUCAoPE1PREU+bW9kZSkiCi0gICAieHZj dnN4PFZTYz48VlNzPiAleDAsJXgxIgotICAgWyhzZXRfYXR0ciAidHlwZSIgInZlY2Zsb2F0Iild KQotIAotLShkZWZpbmVfaW5zbiAiKnZzeF9mbG9hdHVuczxWU2k+PG1vZGU+MiIKLSsoZGVmaW5l X2luc24gInZzeF9mbG9hdHVuczxWU2k+PG1vZGU+MiIKLSAgIFsoc2V0IChtYXRjaF9vcGVyYW5k OlZTWF9GIDAgInZzeF9yZWdpc3Rlcl9vcGVyYW5kIiAiPTxWU3I+IikKLSAJKHVuc2lnbmVkX2Zs b2F0OlZTWF9GIChtYXRjaF9vcGVyYW5kOjxWU0k+IDEgInZzeF9yZWdpc3Rlcl9vcGVyYW5kIiAi PFZTcj4iKSkpXQotICAgIlZFQ1RPUl9VTklUX1ZTWF9QICg8TU9ERT5tb2RlKSIKLUBAIC00NDYs NiArNDUyLDYyIEBAIChkZWZpbmVfaW5zbiAiKnZzeF9maXh1bnNfdHJ1bmM8bW9kZT48VlMKLSAg IFsoc2V0X2F0dHIgInR5cGUiICJ2ZWNmbG9hdCIpXSkKLSAKLSAMCi0rOzsgVlNYIGNvbnZlcnQg dG8vZnJvbSBkb3VibGUgdmVjdG9yCi0rCi0rOzsgQ29udmVydCBmcm9tIDY0LWJpdCB0byAzMi1i aXQgdHlwZXMKLSs7OyBOb3RlLCBmYXZvciB0aGUgQWx0aXZlYyByZWdpc3RlcnMgc2luY2UgdGhl IHVzdWFsIHVzZSBvZiB0aGVzZSBpbnN0cnVjdGlvbnMKLSs7OyBpcyBpbiB2ZWN0b3IgY29udmVy dHMgYW5kIHdlIG5lZWQgdG8gdXNlIHRoZSBBbHRpdmVjIHZwZXJtIGluc3RydWN0aW9uLgotKwot KyhkZWZpbmVfaW5zbiAidnN4X3h2Y3ZkcHNwIgotKyAgWyhzZXQgKG1hdGNoX29wZXJhbmQ6VjRT RiAwICJ2c3hfcmVnaXN0ZXJfb3BlcmFuZCIgIj12LD93YSIpCi0rCSh1bnNwZWM6VjRTRiBbKG1h dGNoX29wZXJhbmQ6VjJERiAxICJ2c3hfcmVnaXN0ZXJfb3BlcmFuZCIgIndkLHdhIildCi0rCQkg ICAgIFVOU1BFQ19WU1hfWFZDVkRQU1ApKV0KLSsgICJWRUNUT1JfVU5JVF9WU1hfUCAoVjJERm1v ZGUpIgotKyAgInh2Y3ZkcHNwICV4MCwleDEiCi0rICBbKHNldF9hdHRyICJ0eXBlIiAidmVjZmxv YXQiKV0pCi0rCi0rKGRlZmluZV9pbnNuICJ2c3hfeHZjdmRwc3h3cyIKLSsgIFsoc2V0IChtYXRj aF9vcGVyYW5kOlY0U0kgMCAidnN4X3JlZ2lzdGVyX29wZXJhbmQiICI9diw/d2EiKQotKwkodW5z cGVjOlY0U0kgWyhtYXRjaF9vcGVyYW5kOlYyREYgMSAidnN4X3JlZ2lzdGVyX29wZXJhbmQiICJ3 ZCx3YSIpXQotKwkJICAgICBVTlNQRUNfVlNYX1hWQ1ZEUFNYV1MpKV0KLSsgICJWRUNUT1JfVU5J VF9WU1hfUCAoVjJERm1vZGUpIgotKyAgInh2Y3ZkcHN4d3MgJXgwLCV4MSIKLSsgIFsoc2V0X2F0 dHIgInR5cGUiICJ2ZWNmbG9hdCIpXSkKLSsKLSsoZGVmaW5lX2luc24gInZzeF94dmN2ZHB1eHdz IgotKyAgWyhzZXQgKG1hdGNoX29wZXJhbmQ6VjRTSSAwICJ2c3hfcmVnaXN0ZXJfb3BlcmFuZCIg Ij12LD93YSIpCi0rCSh1bnNwZWM6VjRTSSBbKG1hdGNoX29wZXJhbmQ6VjJERiAxICJ2c3hfcmVn aXN0ZXJfb3BlcmFuZCIgIndkLHdhIildCi0rCQkgICAgIFVOU1BFQ19WU1hfWFZDVkRQVVhXUykp XQotKyAgIlZFQ1RPUl9VTklUX1ZTWF9QIChWMkRGbW9kZSkiCi0rICAieHZjdmRwdXh3cyAleDAs JXgxIgotKyAgWyhzZXRfYXR0ciAidHlwZSIgInZlY2Zsb2F0IildKQotKwotKzs7IENvbnZlcnQg ZnJvbSAzMi1iaXQgdG8gNjQtYml0IHR5cGVzCi0rKGRlZmluZV9pbnNuICJ2c3hfeHZjdnNwZHAi Ci0rICBbKHNldCAobWF0Y2hfb3BlcmFuZDpWMkRGIDAgInZzeF9yZWdpc3Rlcl9vcGVyYW5kIiAi PXdkLD93YSIpCi0rCSh1bnNwZWM6VjJERiBbKG1hdGNoX29wZXJhbmQ6VjRTRiAxICJ2c3hfcmVn aXN0ZXJfb3BlcmFuZCIgIndmLHdhIildCi0rCQkgICAgIFVOU1BFQ19WU1hfWFZDVlNQRFApKV0K LSsgICJWRUNUT1JfVU5JVF9WU1hfUCAoVjJERm1vZGUpIgotKyAgInh2Y3ZzcGRwICV4MCwleDEi Ci0rICBbKHNldF9hdHRyICJ0eXBlIiAidmVjZmxvYXQiKV0pCi0rCi0rKGRlZmluZV9pbnNuICJ2 c3hfeHZjdnN4d2RwIgotKyAgWyhzZXQgKG1hdGNoX29wZXJhbmQ6VjJERiAwICJ2c3hfcmVnaXN0 ZXJfb3BlcmFuZCIgIj13ZCw/d2EiKQotKwkodW5zcGVjOlYyREYgWyhtYXRjaF9vcGVyYW5kOlY0 U0kgMSAidnN4X3JlZ2lzdGVyX29wZXJhbmQiICJ3Zix3YSIpXQotKwkJICAgICBVTlNQRUNfVlNY X1hWQ1ZTWFdEUCkpXQotKyAgIlZFQ1RPUl9VTklUX1ZTWF9QIChWMkRGbW9kZSkiCi0rICAieHZj dnN4d2RwICV4MCwleDEiCi0rICBbKHNldF9hdHRyICJ0eXBlIiAidmVjZmxvYXQiKV0pCi0rCi0r KGRlZmluZV9pbnNuICJ2c3hfeHZjdnV4d2RwIgotKyAgWyhzZXQgKG1hdGNoX29wZXJhbmQ6VjJE RiAwICJ2c3hfcmVnaXN0ZXJfb3BlcmFuZCIgIj13ZCw/d2EiKQotKwkodW5zcGVjOlYyREYgWyht YXRjaF9vcGVyYW5kOlY0U0kgMSAidnN4X3JlZ2lzdGVyX29wZXJhbmQiICJ3Zix3YSIpXQotKwkJ ICAgICBVTlNQRUNfVlNYX1hWQ1ZVWFdEUCkpXQotKyAgIlZFQ1RPUl9VTklUX1ZTWF9QIChWMkRG bW9kZSkiCi0rICAieHZjdnV4d2RwICV4MCwleDEiCi0rICBbKHNldF9hdHRyICJ0eXBlIiAidmVj ZmxvYXQiKV0pCi0rCi0rDAotIDs7IFZTWCBzY2FsYXIgZG91YmxlIHByZWNpc2lvbiBmbG9hdGlu ZyBwb2ludCBvcGVyYXRpb25zCi0gKGRlZmluZV9pbnNuIip2c3hfYWRkZGYzIgotICAgWyhzZXQg KG1hdGNoX29wZXJhbmQ6REYgMCAidnN4X3JlZ2lzdGVyX29wZXJhbmQiICI9d3MiKQotQEAgLTc1 Myw4ICs4MTUsOCBAQCAoZGVmaW5lX2luc24gIip2c3hfYW5kYzxtb2RlPjMiCi0gKGRlZmluZV9p bnNuICJ2c3hfY29uY2F0X3YyZGYiCi0gICBbKHNldCAobWF0Y2hfb3BlcmFuZDpWMkRGIDAgInZz eF9yZWdpc3Rlcl9vcGVyYW5kIiAiPXdkLD93YSIpCi0gCSh1bnNwZWM6VjJERgotLQkgWyhtYXRj aF9vcGVyYW5kOkRGIDEgInZzeF9yZWdpc3Rlcl9vcGVyYW5kIiAiZix3YSIpCi0tCSAgKG1hdGNo X29wZXJhbmQ6REYgMiAidnN4X3JlZ2lzdGVyX29wZXJhbmQiICJmLHdhIildCi0rCSBbKG1hdGNo X29wZXJhbmQ6REYgMSAidnN4X3JlZ2lzdGVyX29wZXJhbmQiICJ3cyx3YSIpCi0rCSAgKG1hdGNo X29wZXJhbmQ6REYgMiAidnN4X3JlZ2lzdGVyX29wZXJhbmQiICJ3cyx3YSIpXQotIAkgVU5TUEVD X1ZTWF9DT05DQVRfVjJERikpXQotICAgIlZFQ1RPUl9VTklUX1ZTWF9QIChWMkRGbW9kZSkiCi0g ICAieHhwZXJtZGkgJXgwLCV4MSwleDIsMCIKLUBAIC03NjIsMzIgKzgyNCwzNyBAQCAoZGVmaW5l X2luc24gInZzeF9jb25jYXRfdjJkZiIKLSAKLSA7OyBTZXQgYSBkb3VibGUgaW50byBvbmUgZWxl bWVudAotIChkZWZpbmVfaW5zbiAidnN4X3NldF92MmRmIgotLSAgWyhzZXQgKG1hdGNoX29wZXJh bmQ6VjJERiAwICJ2c3hfcmVnaXN0ZXJfb3BlcmFuZCIgIj13ZCIpCi0rICBbKHNldCAobWF0Y2hf b3BlcmFuZDpWMkRGIDAgInZzeF9yZWdpc3Rlcl9vcGVyYW5kIiAiPXdkLD93YSIpCi0gCSh2ZWNf bWVyZ2U6VjJERgotLQkgKG1hdGNoX29wZXJhbmQ6VjJERiAxICJ2c3hfcmVnaXN0ZXJfb3BlcmFu ZCIgIndkIikKLS0JICh2ZWNfZHVwbGljYXRlOlYyREYgKG1hdGNoX29wZXJhbmQ6REYgMiAidnN4 X3JlZ2lzdGVyX29wZXJhbmQiICJ3cyIpKQotLQkgKG1hdGNoX29wZXJhbmQ6UUkgMyAidTViaXRf Y2ludF9vcGVyYW5kIiAiaSIpKSldCi0rCSAobWF0Y2hfb3BlcmFuZDpWMkRGIDEgInZzeF9yZWdp c3Rlcl9vcGVyYW5kIiAid2Qsd2EiKQotKwkgKHZlY19kdXBsaWNhdGU6VjJERiAobWF0Y2hfb3Bl cmFuZDpERiAyICJ2c3hfcmVnaXN0ZXJfb3BlcmFuZCIgIndzLGYiKSkKLSsJIChtYXRjaF9vcGVy YW5kOlFJIDMgInU1Yml0X2NpbnRfb3BlcmFuZCIgImksaSIpKSldCi0gICAiVkVDVE9SX1VOSVRf VlNYX1AgKFYyREZtb2RlKSIKLSB7Ci0tICBvcGVyYW5kc1szXSA9IEdFTl9JTlQgKElOVFZBTCAo b3BlcmFuZHNbM10pICYgMSk7Ci0tICByZXR1cm4gXCJ4eHBlcm1kaSAleDAsJXgxLCV4MiwlM1wi OwotKyAgaWYgKElOVFZBTCAob3BlcmFuZHNbM10pID09IDApCi0rICAgIHJldHVybiBcInh4cGVy bWRpICV4MCwleDEsJXgyLDFcIjsKLSsgIGVsc2UgaWYgKElOVFZBTCAob3BlcmFuZHNbM10pID09 IDEpCi0rICAgIHJldHVybiBcInh4cGVybWRpICV4MCwleDIsJXgxLDBcIjsKLSsgIGVsc2UKLSsg ICAgZ2NjX3VucmVhY2hhYmxlICgpOwotIH0KLSAgIFsoc2V0X2F0dHIgInR5cGUiICJ2ZWNwZXJt IildKQotIAotIDs7IEV4dHJhY3QgYSBERiBlbGVtZW50IGZyb20gVjJERgotIChkZWZpbmVfaW5z biAidnN4X2V4dHJhY3RfdjJkZiIKLS0gIFsoc2V0IChtYXRjaF9vcGVyYW5kOkRGIDAgInZzeF9y ZWdpc3Rlcl9vcGVyYW5kIiAiPXdzIikKLS0JKHZlY19zZWxlY3Q6REYgKG1hdGNoX29wZXJhbmQ6 VjJERiAxICJ2c3hfcmVnaXN0ZXJfb3BlcmFuZCIgIndkIikKLSsgIFsoc2V0IChtYXRjaF9vcGVy YW5kOkRGIDAgInZzeF9yZWdpc3Rlcl9vcGVyYW5kIiAiPXdzLGYsP3dhIikKLSsJKHZlY19zZWxl Y3Q6REYgKG1hdGNoX29wZXJhbmQ6VjJERiAxICJ2c3hfcmVnaXN0ZXJfb3BlcmFuZCIgIndkLHdk LHdhIikKLSAJCSAgICAgICAocGFyYWxsZWwKLS0JCQlbKG1hdGNoX29wZXJhbmQ6UUkgMiAidTVi aXRfY2ludF9vcGVyYW5kIiAiaSIpXSkpKV0KLSsJCQlbKG1hdGNoX29wZXJhbmQ6UUkgMiAidTVi aXRfY2ludF9vcGVyYW5kIiAiaSxpLGkiKV0pKSldCi0gICAiVkVDVE9SX1VOSVRfVlNYX1AgKFYy REZtb2RlKSIKLSB7Ci0tICBvcGVyYW5kc1szXSA9IEdFTl9JTlQgKElOVFZBTCAob3BlcmFuZHNb Ml0pICYgMSk7Ci0rICBnY2NfYXNzZXJ0IChVSU5UVkFMIChvcGVyYW5kc1syXSkgPD0gMSk7Ci0r ICBvcGVyYW5kc1szXSA9IEdFTl9JTlQgKElOVFZBTCAob3BlcmFuZHNbMl0pIDw8IDEpOwotICAg cmV0dXJuIFwieHhwZXJtZGkgJXgwLCV4MSwleDEsJTNcIjsKLSB9Ci0gICBbKHNldF9hdHRyICJ0 eXBlIiAidmVjcGVybSIpXSkKLSAKLS07OyBHZW5lcmFsIFYyREYgcGVybXV0ZQotKzs7IEdlbmVy YWwgVjJERiBwZXJtdXRlLCBleHRyYWN0X3toaWdoLGxvdyxldmVuLG9kZH0KLSAoZGVmaW5lX2lu c24gInZzeF94eHBlcm1kaSIKLSAgIFsoc2V0IChtYXRjaF9vcGVyYW5kOlYyREYgMCAidnN4X3Jl Z2lzdGVyX29wZXJhbmQiICI9d2QiKQotIAkodmVjX2NvbmNhdDpWMkRGCi1AQCAtNzk5LDYgKzg2 Niw3IEBAIChkZWZpbmVfaW5zbiAidnN4X3h4cGVybWRpIgotIAkJCSBbKG1hdGNoX29wZXJhbmQ6 UUkgNCAidTViaXRfY2ludF9vcGVyYW5kIiAiaSIpXSkpKSldCi0gICAiVkVDVE9SX1VOSVRfVlNY X1AgKFYyREZtb2RlKSIKLSB7Ci0rICBnY2NfYXNzZXJ0ICgoVUlOVFZBTCAob3BlcmFuZHNbMl0p IDw9IDEpICYmIChVSU5UVkFMIChvcGVyYW5kc1s0XSkgPD0gMSkpOwotICAgb3BlcmFuZHNbNV0g PSBHRU5fSU5UICgoKElOVFZBTCAob3BlcmFuZHNbMl0pICYgMSkgPDwgMSkKLSAJCQkgfCAoSU5U VkFMIChvcGVyYW5kc1s0XSkgJiAxKSk7Ci0gICByZXR1cm4gXCJ4eHBlcm1kaSAleDAsJXgxLCV4 MywlNVwiOwotQEAgLTgwNywxNCArODc1LDE1IEBAIChkZWZpbmVfaW5zbiAidnN4X3h4cGVybWRp IgotIAotIDs7IFYyREYgc3BsYXQKLSAoZGVmaW5lX2luc24gInZzeF9zcGxhdHYyZGYiCi0tICBb KHNldCAobWF0Y2hfb3BlcmFuZDpWMkRGIDAgInZzeF9yZWdpc3Rlcl9vcGVyYW5kIiAiPXdkLHdk IikKLSsgIFsoc2V0IChtYXRjaF9vcGVyYW5kOlYyREYgMCAidnN4X3JlZ2lzdGVyX29wZXJhbmQi ICI9d2Qsd2Qsd2QiKQotIAkodmVjX2R1cGxpY2F0ZTpWMkRGCi0tCSAobWF0Y2hfb3BlcmFuZDpE RiAxICJpbnB1dF9vcGVyYW5kIiAid3MsWiIpKSldCi0rCSAobWF0Y2hfb3BlcmFuZDpERiAxICJp bnB1dF9vcGVyYW5kIiAid3MsZixaIikpKV0KLSAgICJWRUNUT1JfVU5JVF9WU1hfUCAoVjJERm1v ZGUpIgotICAgIkAKLSAgICB4eHBlcm1kaSAleDAsJXgxLCV4MSwwCi0rICAgeHhwZXJtZGkgJXgw LCV4MSwleDEsMAotICAgIGx4dmRzeCAleDAsJXkxIgotLSAgWyhzZXRfYXR0ciAidHlwZSIgInZl Y3Blcm0sdmVjbG9hZCIpXSkKLSsgIFsoc2V0X2F0dHIgInR5cGUiICJ2ZWNwZXJtLHZlY3Blcm0s dmVjbG9hZCIpXSkKLSAKLSA7OyBWNFNGIHNwbGF0Ci0gKGRlZmluZV9pbnNuICIqdnN4X3h4c3Bs dHciCi1AQCAtODI4LDE0ICs4OTcsMTQgQEAgKGRlZmluZV9pbnNuICIqdnN4X3h4c3BsdHciCi0g ICBbKHNldF9hdHRyICJ0eXBlIiAidmVjcGVybSIpXSkKLSAKLSA7OyBWNFNGIGludGVybGVhdmUK LS0oZGVmaW5lX2luc24gIip2c3hfeHhtcmdodyIKLS0gIFsoc2V0IChtYXRjaF9vcGVyYW5kOlY0 U0YgMCAicmVnaXN0ZXJfb3BlcmFuZCIgIj12IikKLS0gICAgICAgICh2ZWNfbWVyZ2U6VjRTRiAo dmVjX3NlbGVjdDpWNFNGIChtYXRjaF9vcGVyYW5kOlY0U0YgMSAicmVnaXN0ZXJfb3BlcmFuZCIg InYiKQotKyhkZWZpbmVfaW5zbiAidnN4X3h4bXJnaHciCi0rICBbKHNldCAobWF0Y2hfb3BlcmFu ZDpWNFNGIDAgInJlZ2lzdGVyX29wZXJhbmQiICI9d2YiKQotKyAgICAgICAgKHZlY19tZXJnZTpW NFNGICh2ZWNfc2VsZWN0OlY0U0YgKG1hdGNoX29wZXJhbmQ6VjRTRiAxICJyZWdpc3Rlcl9vcGVy YW5kIiAid2YiKQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHBh cmFsbGVsIFsoY29uc3RfaW50IDApCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIChjb25zdF9pbnQgMikKLSAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNvbnN0X2ludCAxKQotICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY29uc3RfaW50IDMpXSkp Ci0tICAgICAgICAgICAgICAgICAgICAgICAgKHZlY19zZWxlY3Q6VjRTRiAobWF0Y2hfb3BlcmFu ZDpWNFNGIDIgInJlZ2lzdGVyX29wZXJhbmQiICJ2IikKLSsgICAgICAgICAgICAgICAgICAgICAg ICAodmVjX3NlbGVjdDpWNFNGIChtYXRjaF9vcGVyYW5kOlY0U0YgMiAicmVnaXN0ZXJfb3BlcmFu ZCIgIndmIikKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChwYXJh bGxlbCBbKGNvbnN0X2ludCAyKQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAoY29uc3RfaW50IDApCi0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjb25zdF9pbnQgMykKLUBAIC04NDUsMTUgKzkx NCwxNSBAQCAoZGVmaW5lX2luc24gIip2c3hfeHhtcmdodyIKLSAgICJ4eG1yZ2h3ICV4MCwleDEs JXgyIgotICAgWyhzZXRfYXR0ciAidHlwZSIgInZlY3Blcm0iKV0pCi0gCi0tKGRlZmluZV9pbnNu ICIqdnN4X3h4bXJnbHciCi0tICBbKHNldCAobWF0Y2hfb3BlcmFuZDpWNFNGIDAgInJlZ2lzdGVy X29wZXJhbmQiICI9diIpCi0rKGRlZmluZV9pbnNuICJ2c3hfeHhtcmdsdyIKLSsgIFsoc2V0ICht YXRjaF9vcGVyYW5kOlY0U0YgMCAicmVnaXN0ZXJfb3BlcmFuZCIgIj13ZiIpCi0gICAgICAgICAo dmVjX21lcmdlOlY0U0YKLS0JICh2ZWNfc2VsZWN0OlY0U0YgKG1hdGNoX29wZXJhbmQ6VjRTRiAx ICJyZWdpc3Rlcl9vcGVyYW5kIiAidiIpCi0rCSAodmVjX3NlbGVjdDpWNFNGIChtYXRjaF9vcGVy YW5kOlY0U0YgMSAicmVnaXN0ZXJfb3BlcmFuZCIgIndmIikKLSAJCQkgIChwYXJhbGxlbCBbKGNv bnN0X2ludCAyKQotIAkJCQkgICAgIChjb25zdF9pbnQgMCkKLSAJCQkJICAgICAoY29uc3RfaW50 IDMpCi0gCQkJCSAgICAgKGNvbnN0X2ludCAxKV0pKQotLQkgKHZlY19zZWxlY3Q6VjRTRiAobWF0 Y2hfb3BlcmFuZDpWNFNGIDIgInJlZ2lzdGVyX29wZXJhbmQiICJ2IikKLSsJICh2ZWNfc2VsZWN0 OlY0U0YgKG1hdGNoX29wZXJhbmQ6VjRTRiAyICJyZWdpc3Rlcl9vcGVyYW5kIiAid2YiKQotIAkJ CSAgKHBhcmFsbGVsIFsoY29uc3RfaW50IDApCi0gCQkJCSAgICAgKGNvbnN0X2ludCAyKQotIAkJ CQkgICAgIChjb25zdF9pbnQgMSkKLUBAIC04NjIsMyArOTMxLDI2IEBAIChkZWZpbmVfaW5zbiAi KnZzeF94eG1yZ2x3IgotICAgIlZFQ1RPUl9VTklUX1ZTWF9QIChWNFNGbW9kZSkiCi0gICAieHht cmdsdyAleDAsJXgxLCV4MiIKLSAgIFsoc2V0X2F0dHIgInR5cGUiICJ2ZWNwZXJtIildKQotKwot KwwKLSs7OyBSZWxvYWQgcGF0dGVybnMgZm9yIFZTWCBsb2Fkcy9zdG9yZXMuICBXZSBuZWVkIGEg c2NyYXRjaCByZWdpc3RlciB0byBjb252ZXJ0Ci0rOzsgdGhlIHN0YWNrIHRlbXBvcmFyeSBhZGRy ZXNzIGZyb20gcmVnK29mZnNldCB0byByZWcrcmVnIGFkZHJlc3NpbmcuCi0rKGRlZmluZV9leHBh bmQgInZzeF9yZWxvYWRfPFZTWF9MOm1vZGU+XzxQOnB0cnNpemU+X3RvX21lbSIKLSsgIFsocGFy YWxsZWwgWyhtYXRjaF9vcGVyYW5kOlZTWF9MIDAgIm1lbW9yeV9vcGVyYW5kIiAiIikKLSsgICAg ICAgICAgICAgIChtYXRjaF9vcGVyYW5kOlZTWF9MIDEgInJlZ2lzdGVyX29wZXJhbmQiICI9d2Ei KQotKyAgICAgICAgICAgICAgKG1hdGNoX29wZXJhbmQ6UCAyICJyZWdpc3Rlcl9vcGVyYW5kIiAi PSZiIildKV0KLSsgICJWRUNUT1JfTUVNX1ZTWF9QICg8TU9ERT5tb2RlKSIKLSt7Ci0rICByczYw MDBfdmVjdG9yX3NlY29uZGFyeV9yZWxvYWQgKG9wZXJhbmRzWzBdLCBvcGVyYW5kc1sxXSwgb3Bl cmFuZHNbMl0sIHRydWUpOwotKyAgRE9ORTsKLSt9KQotKwotKyhkZWZpbmVfZXhwYW5kICJ2c3hf cmVsb2FkXzxWU1hfTDptb2RlPl88UDpwdHJzaXplPl90b19yZWciCi0rICBbKHBhcmFsbGVsIFso bWF0Y2hfb3BlcmFuZDpWU1hfTCAwICJyZWdpc3Rlcl9vcGVyYW5kIiAiPXdhIikKLSsgICAgICAg ICAgICAgIChtYXRjaF9vcGVyYW5kOlZTWF9MIDEgIm1lbW9yeV9vcGVyYW5kIiAiIikKLSsgICAg ICAgICAgICAgIChtYXRjaF9vcGVyYW5kOlAgMiAicmVnaXN0ZXJfb3BlcmFuZCIgIj0mYiIpXSld Ci0rICAiVkVDVE9SX01FTV9WU1hfUCAoPE1PREU+bW9kZSkiCi0rewotKyAgcnM2MDAwX3ZlY3Rv cl9zZWNvbmRhcnlfcmVsb2FkIChvcGVyYW5kc1swXSwgb3BlcmFuZHNbMV0sIG9wZXJhbmRzWzJd LCBmYWxzZSk7Ci0rICBET05FOwotK30pCi0tLS0gZ2NjL2NvbmZpZy9yczYwMDAvcnM2MDAwLmgJ KHJldmlzaW9uIDE0NDc1OCkKLSsrKyBnY2MvY29uZmlnL3JzNjAwMC9yczYwMDAuaAkocmV2aXNp b24gMTQ0ODQzKQotQEAgLTMzODgsNyArMzM4OCw3IEBAIGVudW0gcnM2MDAwX2J1aWx0aW5zCi0g ICBWU1hfQlVJTFRJTl9YWFNQTFRXLAotICAgVlNYX0JVSUxUSU5fWFhTV0FQRCwKLSAKLS0gIC8q IENvbWJpbmUgVlNYL0FsdGl2ZWMgYnVpbHRpbnMuICAqLwotKyAgLyogQ29tYmluZWQgVlNYL0Fs dGl2ZWMgYnVpbHRpbnMuICAqLwotICAgVkVDVE9SX0JVSUxUSU5fRkxPQVRfVjRTSV9WNFNGLAot ICAgVkVDVE9SX0JVSUxUSU5fVU5TRkxPQVRfVjRTSV9WNFNGLAotICAgVkVDVE9SX0JVSUxUSU5f RklYX1Y0U0ZfVjRTSSwKLS0tLSBnY2MvY29uZmlnL3JzNjAwMC9hbHRpdmVjLm1kCShyZXZpc2lv biAxNDQ3NTgpCi0rKysgZ2NjL2NvbmZpZy9yczYwMDAvYWx0aXZlYy5tZAkocmV2aXNpb24gMTQ0 ODQzKQotQEAgLTI2ODUsMyArMjY4NSwyNyBAQCAoZGVmaW5lX2V4cGFuZCAidmVjX3VucGFja3Vf ZmxvYXRfbG9fdjhoCi0gICBlbWl0X2luc24gKGdlbl9hbHRpdmVjX3ZjZnV4IChvcGVyYW5kc1sw XSwgdG1wLCBjb25zdDBfcnR4KSk7Ci0gICBET05FOwotIH0iKQotKwotKwwKLSs7OyBSZWxvYWQg cGF0dGVybnMgZm9yIEFsdGl2ZWMgbG9hZHMvc3RvcmVzLiAgV2UgbmVlZCBhIHNjcmF0Y2ggcmVn aXN0ZXIgdG8KLSs7OyBjb252ZXJ0IHRoZSBzdGFjayB0ZW1wb3JhcnkgYWRkcmVzcyBmcm9tIHJl ZytvZmZzZXQgdG8gcmVnK3JlZyBhZGRyZXNzaW5nLgotKwotKyhkZWZpbmVfZXhwYW5kICJhbHRp dmVjX3JlbG9hZF88Vjptb2RlPl88UDpwdHJzaXplPl90b19tZW0iCi0rICBbKHBhcmFsbGVsIFso bWF0Y2hfb3BlcmFuZDpWIDAgIm1lbW9yeV9vcGVyYW5kIiAiIikKLSsgICAgICAgICAgICAgICht YXRjaF9vcGVyYW5kOlYgMSAicmVnaXN0ZXJfb3BlcmFuZCIgIj12IikKLSsgICAgICAgICAgICAg IChtYXRjaF9vcGVyYW5kOlAgMiAicmVnaXN0ZXJfb3BlcmFuZCIgIj0mYiIpXSldCi0rICAiVkVD VE9SX01FTV9BTFRJVkVDX1AgKDxNT0RFPm1vZGUpIgotK3sKLSsgIHJzNjAwMF92ZWN0b3Jfc2Vj b25kYXJ5X3JlbG9hZCAob3BlcmFuZHNbMF0sIG9wZXJhbmRzWzFdLCBvcGVyYW5kc1syXSwgdHJ1 ZSk7Ci0rICBET05FOwotK30pCi0rCi0rKGRlZmluZV9leHBhbmQgImFsdGl2ZWNfcmVsb2FkXzxW Om1vZGU+XzxQOnB0cnNpemU+X3RvX3JlZyIKLSsgIFsocGFyYWxsZWwgWyhtYXRjaF9vcGVyYW5k OlYgMCAicmVnaXN0ZXJfb3BlcmFuZCIgIj12IikKLSsgICAgICAgICAgICAgIChtYXRjaF9vcGVy YW5kOlYgMSAibWVtb3J5X29wZXJhbmQiICIiKQotKyAgICAgICAgICAgICAgKG1hdGNoX29wZXJh bmQ6UCAyICJyZWdpc3Rlcl9vcGVyYW5kIiAiPSZiIildKV0KLSsgICJWRUNUT1JfTUVNX0FMVElW RUNfUCAoPE1PREU+bW9kZSkiCi0rewotKyAgcnM2MDAwX3ZlY3Rvcl9zZWNvbmRhcnlfcmVsb2Fk IChvcGVyYW5kc1swXSwgb3BlcmFuZHNbMV0sIG9wZXJhbmRzWzJdLCBmYWxzZSk7Ci0rICBET05F OwotK30pCi0tLS0gZ2NjL2NvbmZpZy9yczYwMDAvcnM2MDAwLm1kCShyZXZpc2lvbiAxNDQ3NTgp Ci0rKysgZ2NjL2NvbmZpZy9yczYwMDAvcnM2MDAwLm1kCShyZXZpc2lvbiAxNDQ4NDMpCi1AQCAt MjIyLDYgKzIyMiwxMCBAQCAoZGVmaW5lX21vZGVfYXR0ciBkYml0cyBbKFFJICI1NiIpIChISSAi Ci0gOzsgSVNFTC9JU0VMNjQgdGFyZ2V0IHNlbGVjdGlvbgotIChkZWZpbmVfbW9kZV9hdHRyIHNl bCBbKFNJICIiKSAoREkgIjY0IildKQotIAotKzs7IFN1ZmZpeCBmb3IgcmVsb2FkIHBhdHRlcm5z Ci0rKGRlZmluZV9tb2RlX2F0dHIgcHRyc2l6ZSBbKFNJICIzMmJpdCIpCi0rCQkJICAgKERJICI2 NGJpdCIpXSkKLSsKLSAMCi0gOzsgU3RhcnQgd2l0aCBmaXhlZC1wb2ludCBsb2FkIGFuZCBzdG9y ZSBpbnNucy4gIEhlcmUgd2UgcHV0IG9ubHkgdGhlIG1vcmUKLSA7OyBjb21wbGV4IGZvcm1zLiAg QmFzaWMgZGF0YSB0cmFuc2ZlciBpcyBkb25lIGxhdGVyLgotLS0tIGdjYy90ZXN0c3VpdGUvZ2Nj LnRhcmdldC9wb3dlcnBjL3ZzeC1idWlsdGluLTIuYwkocmV2aXNpb24gMCkKLSsrKyBnY2MvdGVz dHN1aXRlL2djYy50YXJnZXQvcG93ZXJwYy92c3gtYnVpbHRpbi0yLmMJKHJldmlzaW9uIDE0NDg0 MykKLUBAIC0wLDAgKzEsMjkgQEAKLSsvKiB7IGRnLWRvIGNvbXBpbGUgeyB0YXJnZXQgeyBwb3dl cnBjKi0qLSogfSB9IH0gKi8KLSsvKiB7IGRnLXNraXAtaWYgIiIgeyBwb3dlcnBjKi0qLWRhcndp biogfSB7ICIqIiB9IHsgIiIgfSB9ICovCi0rLyogeyBkZy1yZXF1aXJlLWVmZmVjdGl2ZS10YXJn ZXQgcG93ZXJwY192c3hfb2sgfSAqLwotKy8qIHsgZGctb3B0aW9ucyAiLU8yIC1tY3B1PXBvd2Vy NyIgfSAqLwotKy8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlciAieHZhZGRzcCIgfSB9ICov Ci0rLyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyICJ4dnN1YnNwIiB9IH0gKi8KLSsvKiB7 IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXIgInh2bXVsc3AiIH0gfSAqLwotKy8qIHsgZGctZmlu YWwgeyBzY2FuLWFzc2VtYmxlciAieHZkaXZzcCIgfSB9ICovCi0rLyogeyBkZy1maW5hbCB7IHNj YW4tYXNzZW1ibGVyICJ4dm1heHNwIiB9IH0gKi8KLSsvKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3Nl bWJsZXIgInh2bWluc3AiIH0gfSAqLwotKy8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlciAi eHZzcXJ0c3AiIH0gfSAqLwotKy8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlciAieHZhYnNz cCIgfSB9ICovCi0rLyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyICJ4dm5hYnNzcCIgfSB9 ICovCi0rCi0rdm9pZCB1c2VfYnVpbHRpbnMgKF9fdmVjdG9yIGZsb2F0ICpwLCBfX3ZlY3RvciBm bG9hdCAqcSwgX192ZWN0b3IgZmxvYXQgKnIpCi0rewotKyAgX192ZWN0b3IgZmxvYXQgdG1wMSA9 ICpxOwotKyAgX192ZWN0b3IgZmxvYXQgdG1wMiA9ICpyOwotKwotKyAgKnArKyA9IF9fYnVpbHRp bl92c3hfeHZhZGRzcCAodG1wMSwgdG1wMik7Ci0rICAqcCsrID0gX19idWlsdGluX3ZzeF94dnN1 YnNwICh0bXAxLCB0bXAyKTsKLSsgICpwKysgPSBfX2J1aWx0aW5fdnN4X3h2bXVsc3AgKHRtcDEs IHRtcDIpOwotKyAgKnArKyA9IF9fYnVpbHRpbl92c3hfeHZkaXZzcCAodG1wMSwgdG1wMik7Ci0r ICAqcCsrID0gX19idWlsdGluX3ZzeF94dm1heHNwICh0bXAxLCB0bXAyKTsKLSsgICpwKysgPSBf X2J1aWx0aW5fdnN4X3h2bWluc3AgKHRtcDEsIHRtcDIpOwotKyAgKnArKyA9IF9fYnVpbHRpbl92 c3hfeHZhYnNzcCAodG1wMSk7Ci0rICAqcCsrID0gX19idWlsdGluX3ZzeF94dm5hYnNzcCAodG1w MSk7Ci0rICAqcCAgID0gX19idWlsdGluX3ZzeF94dnNxcnRzcCAodG1wMSk7Ci0rfQotLS0tIGdj Yy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9wb3dlcnBjL3ZzeC1idWlsdGluLTEuYwkocmV2aXNpb24g MCkKLSsrKyBnY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvcG93ZXJwYy92c3gtYnVpbHRpbi0xLmMJ KHJldmlzaW9uIDE0NDg0MykKLUBAIC0wLDAgKzEsMjkgQEAKLSsvKiB7IGRnLWRvIGNvbXBpbGUg eyB0YXJnZXQgeyBwb3dlcnBjKi0qLSogfSB9IH0gKi8KLSsvKiB7IGRnLXNraXAtaWYgIiIgeyBw b3dlcnBjKi0qLWRhcndpbiogfSB7ICIqIiB9IHsgIiIgfSB9ICovCi0rLyogeyBkZy1yZXF1aXJl LWVmZmVjdGl2ZS10YXJnZXQgcG93ZXJwY192c3hfb2sgfSAqLwotKy8qIHsgZGctb3B0aW9ucyAi LU8yIC1tY3B1PXBvd2VyNyIgfSAqLwotKy8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlciAi eHZhZGRkcCIgfSB9ICovCi0rLyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyICJ4dnN1YmRw IiB9IH0gKi8KLSsvKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXIgInh2bXVsZHAiIH0gfSAq LwotKy8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlciAieHZkaXZkcCIgfSB9ICovCi0rLyog eyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyICJ4dm1heGRwIiB9IH0gKi8KLSsvKiB7IGRnLWZp bmFsIHsgc2Nhbi1hc3NlbWJsZXIgInh2bWluZHAiIH0gfSAqLwotKy8qIHsgZGctZmluYWwgeyBz Y2FuLWFzc2VtYmxlciAieHZzcXJ0ZHAiIH0gfSAqLwotKy8qIHsgZGctZmluYWwgeyBzY2FuLWFz c2VtYmxlciAieHZhYnNkcCIgfSB9ICovCi0rLyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVy ICJ4dm5hYnNkcCIgfSB9ICovCi0rCi0rdm9pZCB1c2VfYnVpbHRpbnMgKF9fdmVjdG9yIGRvdWJs ZSAqcCwgX192ZWN0b3IgZG91YmxlICpxLCBfX3ZlY3RvciBkb3VibGUgKnIpCi0rewotKyAgX192 ZWN0b3IgZG91YmxlIHRtcDEgPSAqcTsKLSsgIF9fdmVjdG9yIGRvdWJsZSB0bXAyID0gKnI7Ci0r Ci0rICAqcCsrID0gX19idWlsdGluX3ZzeF94dmFkZGRwICh0bXAxLCB0bXAyKTsKLSsgICpwKysg PSBfX2J1aWx0aW5fdnN4X3h2c3ViZHAgKHRtcDEsIHRtcDIpOwotKyAgKnArKyA9IF9fYnVpbHRp bl92c3hfeHZtdWxkcCAodG1wMSwgdG1wMik7Ci0rICAqcCsrID0gX19idWlsdGluX3ZzeF94dmRp dmRwICh0bXAxLCB0bXAyKTsKLSsgICpwKysgPSBfX2J1aWx0aW5fdnN4X3h2bWF4ZHAgKHRtcDEs IHRtcDIpOwotKyAgKnArKyA9IF9fYnVpbHRpbl92c3hfeHZtaW5kcCAodG1wMSwgdG1wMik7Ci0r ICAqcCsrID0gX19idWlsdGluX3ZzeF94dmFic2RwICh0bXAxKTsKLSsgICpwKysgPSBfX2J1aWx0 aW5fdnN4X3h2bmFic2RwICh0bXAxKTsKLSsgICpwICAgPSBfX2J1aWx0aW5fdnN4X3h2c3FydGRw ICh0bXAxKTsKLSt9Ci0tLS0gZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L3Bvd2VycGMvcHIzOTQ1 Ny5jCShyZXZpc2lvbiAwKQotKysrIGdjYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9wb3dlcnBjL3By Mzk0NTcuYwkocmV2aXNpb24gMTQ0ODU3KQotQEAgLTAsMCArMSw1NiBAQAotKy8qIHsgZGctZG8g Y29tcGlsZSB7IHRhcmdldCB7IHBvd2VycGMqLSotKiAmJiBscDY0IH0gfSB9ICovCi0rLyogeyBk Zy1vcHRpb25zICItbTY0IC1PMiAtbW1pbmltYWwtdG9jIiB9ICovCi0rCi0rLyogUFIgMzk0NTcg LS0gZml4IGJyZWFrYWdlIGJlY2F1c2UgdGhlIGNvbXBpbGVyIHJhbiBvdXQgb2YgcmVnaXN0ZXJz IGFuZAotKyAgIHdhbnRlZCB0byBzdGFzaCBhIGZsb2F0aW5nIHBvaW50IHZhbHVlIHRvIHRoZSBM Ui9DVFIgcmVnaXN0ZXIuICAqLwotKwotKy8qIC1PMiAtbTY0IC1tbWluaW1hbC10b2MgKi8KLSt0 eXBlZGVmIHN0cnVjdCB7IHZvaWQgKnM7IH0gUzsKLSt0eXBlZGVmIHZvaWQgKCpUMSkgKHZvaWQp OwotK3R5cGVkZWYgdm9pZCAoKlQyKSAodm9pZCAqLCB2b2lkICosIGludCwgdm9pZCAqKTsKLStj aGFyICpmbjEgKGNvbnN0IGNoYXIgKiwgLi4uKTsKLSt2b2lkICpmbjIgKHZvaWQpOwotK2ludCBm bjMgKGNoYXIgKiwgaW50KTsKLStpbnQgZm40IChjb25zdCB2b2lkICopOwotK2ludCBmbjUgKGNv bnN0IHZvaWQgKik7Ci0rbG9uZyBmbjYgKHZvaWQpIF9fYXR0cmlidXRlX18gKChfX2NvbnN0X18p KTsKLStpbnQgZm43ICh2b2lkICosIHZvaWQgKiwgdm9pZCAqKTsKLSt2b2lkICpmbjggKHZvaWQg KiwgbG9uZyk7Ci0rdm9pZCAqZm45ICh2b2lkICosIGxvbmcsIGNvbnN0IGNoYXIgKiwgLi4uKTsK LSt2b2lkICpmbjEwICh2b2lkICopOwotK2xvbmcgZm4xMSAodm9pZCkgX19hdHRyaWJ1dGVfXyAo KF9fY29uc3RfXykpOwotK2xvbmcgZm4xMiAodm9pZCAqLCBjb25zdCBjaGFyICosIFQxLCBUMiwg dm9pZCAqKTsKLSt2b2lkICpmbjEzICh2b2lkICopOwotK2xvbmcgZm4xNCAodm9pZCkgX19hdHRy aWJ1dGVfXyAoKF9fY29uc3RfXykpOwotK2V4dGVybiB2b2lkICp2MTsKLStleHRlcm4gY2hhciAq djI7Ci0rZXh0ZXJuIGludCB2MzsKLSsKLSt2b2lkCi0rZm9vICh2b2lkICp4LCBjaGFyICp6KQot K3sKLSsgIHZvaWQgKmkxLCAqaTI7Ci0rICBpbnQgeTsKLSsgIGlmICh2MSkKLSsgICAgcmV0dXJu OwotKyAgdjEgPSBmbjkgKGZuMTAgKGZuMiAoKSksIGZuNiAoKSwgIngiLCAwLiwgInkiLCAwLiwg MCk7Ci0rICB5ID0gNTIwIC0gKDUyMCAtIGZuNCAoeCkpIC8gMjsKLSsgIGZuOSAoZm44ICh2MSwg Zm42ICgpKSwgZm42ICgpLCAid2lnIiwgZm44ICh2MSwgZm4xNCAoKSksICJ4IiwgMTguMCwKLSsg ICAgICAgInkiLCAxNi4wLCAid2lkIiwgODAuMCwgImhpIiwgNTAwLjAsIDApOwotKyAgZm45IChm bjEwICh2MSksIGZuNiAoKSwgIngxIiwgMC4sICJ5MSIsIDAuLCAieDIiLCA4MC4wLCAieTIiLAot KyAgICAgICA1MDAuMCwgImYiLCBmbjMgKCJmZmYiLCAweDBEMERGQTAwKSwgMCk7Ci0rICBmbjEz ICgoKFMgKikgZm44ICh2MSwgZm42ICgpKSktPnMpOwotKyAgZm4xMiAoZm44ICh2MSwgZm4xMSAo KSksICJldiIsIChUMSkgZm43LCAwLCBmbjggKHYxLCBmbjYgKCkpKTsKLSsgIGZuOSAoZm44ICh2 MSwgZm42ICgpKSwgZm42ICgpLCAid2lnIiwKLSsgICAgICAgZm44ICh2MSwgZm4xNCAoKSksICJ4 IiwgMTExLjAsICJ5IiwgMTQuMCwgIndpZCIsIDc3NC4wLCAiaGkiLAotKyAgICAgICA1MDAuMCwg MCk7Ci0rICB2MSA9IGZuOSAoZm4xMCAodjEpLCBmbjYgKCksICJ4MSIsIDAuLCAieTEiLCAwLiwg IngyIiwgNzc0LjAsICJ5MiIsCi0rICAgICAgICAgICAgNTAwLjAsICJmIiwgZm4zICgiZ2MiLCAw eDBEMERGQTAwKSwgMCk7Ci0rICBmbjEgKHosIDApOwotKyAgaTEgPSBmbjkgKGZuOCAodjEsIGZu NiAoKSksIGZuNiAoKSwgInBpeGJ1ZiIsIHgsICJ4IiwKLSsgICAgICAgICAgICA4MDAgLSBmbjUg KHgpIC8gMiwgInkiLCB5IC0gZm40ICh4KSwgMCk7Ci0rICBmbjEyIChmbjggKGkxLCBmbjExICgp KSwgImV2IiwgKFQxKSBmbjcsIDAsICIvb2svIik7Ci0rICBmbjEyIChmbjggKGkxLCBmbjExICgp KSwgImV2IiwgKFQxKSBmbjcsIDAsIDApOwotKyAgaTIgPSBmbjkgKGZuOCAodjEsIGZuNiAoKSks IGZuNiAoKSwgInR4dCIsICJPSyIsICJmbnQiLCB2MiwgIngiLAotKyAgICAgICAgICAgIDgwMCwg InkiLCB5IC0gZm40ICh4KSArIDE1LCAiYXIiLCAwLCAiZiIsIHYzLCAwKTsKLSt9CgpkaWZmIC0t Z2l0IGEvZ2NjNDQtcG93ZXI3LnBhdGNoIGIvZ2NjNDQtcG93ZXI3LnBhdGNoCmluZGV4IDQyZjgw ODguLjMzNDVlZDMgMTAwNjQ0Ci0tLSBhL2djYzQ0LXBvd2VyNy5wYXRjaAorKysgYi9nY2M0NC1w b3dlcjcucGF0Y2gKQEAgLTEsMyArMSwyNDcgQEAKKzIwMDktMDQtMDggIE1pY2hhZWwgTWVpc3Nu ZXIgIDxtZWlzc25lckBsaW51eC52bmV0LmlibS5jb20+CisKKwkqIGRvYy9pbnZva2UudGV4aSAo LW12c3gtdmVjdG9yLW1lbW9yeSk6IE1ha2UgZGVidWcgc3dpdGNoZXMKKwl1bmRvdWNtZW50ZWQu CisJKC1tdnN4LXZlY3Rvci1mbG9hdCk6IERpdHRvLgorCSgtbXZzeC12ZWN0b3ItZG91YmxlKTog RGl0dG8uCisJKC1tdnN4LXNjYWxhci1kb3VibGUpOiBEaXR0by4KKwkoLW12c3gtc2NhbGFyLW1l bW9yeSk6IERpdHRvLgorCisJKiBjb25maWcvcnM2MDAwL3ZlY3Rvci5tZCAoVkVDX1IpOiBOZXcg aXRlcmF0b3IgZm9yIHJlbG9hZAorCXBhdHRlcm5zLgorCShtb3Y8bW9kZT4pOiBEb24ndCBjYWxs IHJzNjAwMF9lbWl0X21vdmUuCisJKHJlbG9hZF88VkVDX1I6bW9kZT5fPFA6bXB0cnNpemU+Xyop OiBOZXcgaW5zbnMgZm9yCisJc2Vjb25kYXJ5X3JlbG9hZCBzdXBwb3J0LgorCSh2ZWNfcmVsb2Fk X2FuZF9wbHVzXzxtcHRyc2l6ZT4pOiBOZXcgaW5zbnMgaW4gY2FzZSByZWxvYWQgbmVlZHMKKwl0 byBtb3ZlIGEgVlNYL0FsdGl2ZWMgKGFuZCAocGx1cyByZWcgcmVnKSAtMTYpIHR5cGUgYWRkcmVz cyB0byBhCisJYmFzZSByZWdpc3Rlci4KKworCSogY29uZmlnL3JzNjAwMC9yczYwMDAtcHJvdG9z LmggKHJzNjAwMF9zZWNvbmRhcnlfcmVsb2FkX2lubmVyKToKKwlSZW5hbWUgZnJvbSByczYwMDBf dmVjdG9yX3NlY29uZGFyeV9yZWxvYWQuCisKKwkqIGNvbmZpZy9yczYwMDAvcnM2MDAwLm9wdCAo LW12c3gtdmVjdG9yLW1lbW9yeSk6IE1ha2UgZGVidWcKKwlzd2l0Y2hlcyB1bmRvdWNtZW50ZWQu CisJKC1tdnN4LXZlY3Rvci1mbG9hdCk6IERpdHRvLgorCSgtbXZzeC12ZWN0b3ItZG91YmxlKTog RGl0dG8uCisJKC1tdnN4LXNjYWxhci1kb3VibGUpOiBEaXR0by4KKwkoLW12c3gtc2NhbGFyLW1l bW9yeSk6IERpdHRvLgorCSgtbXZzeC12NHNmLWFsdGl2ZWMtcmVncyk6IE5ldyB1bmRvY3VtZW50 ZWQgZGVidWcgc3dpdGNoIHRvCisJY29udHJvbCB3aGV0aGVyIFY0U0YgdHlwZXMgcHJlZmVyIHRo ZSBBbHRpdmVjIHJlZ2lzdGVycyBvciBhbGwgb2YKKwl0aGUgVlNYIHJlZ2lzdGVycy4KKwkoLW1y ZWxvYWQtZnVuY3Rpb25zKTogTmV3IHVuZG9jdW1lbnRlZCBkZWJ1ZyBzd2l0Y2ggdG8KKwllbmFi bGUvZGlzYWJsZSB0aGUgc2Vjb25kYXJ5IHJlbG9hZCBzdXBwb3J0LgorCisJKiBjb25maWcvcnM2 MDAwL3JzNjAwMC5jIChyczYwMDBfcmVnbm9fcmVnY2xhc3MpOiBOZXcgZ2xvYmFsIHRvCisJbWFw IHJlZ2lzdGVyIG51bWJlciB0byByZWdjbGFzcy4KKwkocnM2MDAwX3ZlY3Rvcl9yZWxvYWQpOiBO ZXcgYXJyYXkgdG8gaG9sZCB0aGUgc2Vjb25kYXJ5IHJlbG9hZAorCWluc24gY29kZXMgZm9yIHRo ZSB2ZWN0b3IgdHlwZXMuCisJKHJzNjAwMF9pbml0X2hhcmRfcmVnbm9fbW9kZV9vayk6IEZpbGwg aW4gcnM2MDAwX3JlZ25vX3JlZ2NsYXNzCisJYW5kIHJzNjAwMF92ZWN0b3JfcmVsb2FkLgorCShy czYwMDBfbW9kZV9kZXBlbmRlbnRfYWRkcmVzcyk6IFVzaW5nIEFORCBpbiBhZGRyZXNzZXMgaXMg bW9kZQorCWRlcGVuZGVudC4KKwkocnM2MDAwX2VtaXRfbW92ZSk6IEFkZCBkZWJ1ZyBpbmZvcm1h dGlvbiBpZiAtbWRlYnVnPWFkZHIuCisJKHJzNjAwMF9yZWxvYWRfcmVnaXN0ZXJfdHlwZSk6IENs YXNzaWZ5IHJlZ2lzdGVyIGNsYXNzZXMgZm9yCisJc2Vjb25kYXJ5IHJlbG9hZC4KKwkocnM2MDAw X3NlY29uZGFyeV9yZWxvYWQpOiBGb3IgdGhlIHZlY3RvciB0eXBlcywgYWRkIHJlbG9hZAorCXN1 cHBvcnQgdG8gc3VwcG9ydCByZWcrcmVnIGFkZHJlc3NpbmcgZm9yIGdwcnMsIGFuZCByZWcrb2Zm c2V0CisJYWRkcmVzc2luZyBmb3IgdmVjdG9yIHJlZ2lzdGVycy4KKwkocnM2MDAwX3NlY29uZGFy eV9yZWxvYWRfaW5uZXIpOiBSZW5hbWUgZnJvbQorCXJzNjAwMF92ZWN0b3Jfc2Vjb25kYXJ5X3Jl bG9hZC4gIEZpeHVwIGdwciBhZGRyZXNzaW5nIHRvIGp1c3QgcmVnCisJb3IgcmVnK29mZnNldCwg YW5kIHZlY3RvciBhZGRyZXNzaW5nIHRvIGp1c3QgcmVnIG9yIHJlZytyZWcuCisJKHJzNjAwMF9w cmVmZXJyZWRfcmVsb2FkX2NsYXNzKTogTWFrZSBzdXJlIGFsbCBjYXNlcyBzZXQgdGhlCisJcmV0 dXJuIHZhbHVlLiAgSWYgVlNYL0FsdGl2ZWMgYWRkcmVzcyB3aXRoIEFORCAtMTYsIHByZWZlciB1 c2luZworCWFuIEFsdGl2ZWMgcmVnaXN0ZXIuCisJKHJzNjAwMF9zZWNvbmRhcnlfbWVtb3J5X25l ZWRlZCk6IEhhbmRsZSB0aGluZ3MgbGlrZSBTRm1vZGUgdGhhdAorCWNhbiBnbyBpbiBmbG9hdGlu ZyByZWdpc3RlcnMsIGJ1dCBub3QgYWx0aXZlYyByZWdpc3RlcnMgdW5kZXIKKwktbXZzeC4KKwor CSogY29uZmlnL3JzNjAwMC92c3gubWQgKFZTWF9VKTogTmV3IGl0ZXJhdG9yIGZvciBsb2FkL3N0 b3JlIHdpdGgKKwl1cGRhdGUuCisJKFZTaSwgVlNJKTogUmVvcmRlciBmaWVsZHMuCisJKFZTZCk6 IEFkZCBzdXBwb3J0IGZvciBsb2FkL3N0b3JlIHdpdGggdXBkYXRlIHJld3JpdGUuCisJKFZTdik6 IERpdHRvLgorCShWU3R5cGVfbG9hZF91cGRhdGUpOiBOZXcgbW9kZSBhdHRyaWJ1dGUgZm9yIGxv YWQvc3RvcmUgd2l0aAorCXVwZGF0ZS4KKwkoVlN0eXBlX3N0b3JlX3VwZGF0ZSk6IERpdHRvLgor CSh2c3hfbW92PHR5cGU+KTogVXNlICogaW5zdGVhZCBvZiBzdG9yZS9sb2FkIGF0dHJpYnV0ZXMg Zm9yCisJbXVsdGktaW5zdHJ1Y3Rpb24gZ3ByIGxvYWRzL3N0b3Jlcy4KKwkodnN4X3JlbG9hZCoq KTogRGVsZXRlIHVudXNlZCByZWxvYWQgcGF0dGVybnMuCisKKwkqIGNvbmZpZy9yczYwMDAvcnM2 MDAwLmggKFJFR05PX1JFR19DTEFTUyk6IENoYW5nZSBmcm9tIGEgYnVuY2ggb2YKKwlpZiBzdGF0 ZW1lbnRzIHRvIHVzaW5nIGEgbG9va3VwIHRhYmxlLgorCShyczYwMDBfcmVnbm9fcmVnY2xhc3Mp OiBMb29rdXAgdGFibGUgZm9yIFJFR05PX1JFR19DTEFTUy4KKworCSogY29uZmlnL3JzNjAwMC9h bHRpdmVjLm1kIChhbHRpdmVjX3JlbG9hZCopOiBEZWxldGUgdW51c2VkIHJlbG9hZAorCXBhdHRl cm5zLgorCisJKiBjb25maWcvcnM2MDAwL3JzNjAwMC5tZCAodHB0cnNpemUsIG1wdHJzaXplKTog TmV3IG1vZGUKKwlhdHRyaWJ1dGVzIGZvciAtbTMyLy1tNjQgc3VwcG9ydC4KKworMjAwOS0wMy0y NyAgSmFrdWIgSmVsaW5layAgPGpha3ViQHJlZGhhdC5jb20+CisKKwlQUiB0YXJnZXQvMzk1NTgK KwkqIG1hY3JvLmMgKGNwcF9nZXRfdG9rZW4pOiBJZiBtYWNyb190b19leHBhbmQgcmV0dXJucyBO VUxMCisJYW5kIHVzZWQgc29tZSB0b2tlbnMsIGFkZCBDUFBfUEFERElORyBiZWZvcmUgbmV4dCB0 b2tlbi4KKworCSogZ2NjLnRhcmdldC9wb3dlcnBjL2FsdGl2ZWMtMjkuYzogTmV3IHRlc3QuCisK KzIwMDktMDMtMjcgIE1pY2hhZWwgTWVpc3NuZXIgIDxtZWlzc25lckBsaW51eC52bmV0LmlibS5j b20+CisKKwkqIGNvbmZpZy9yczYwMDAvY29uc3RyYWludHMubWQgKCJ3WiIgY29uc3RyYWludCk6 IE5ldyBjb25zdHJhaW50CisJZm9yIHVzaW5nIEFsdGl2ZWMgbG9hZHMvc3RvcmVzIHVuZGVyIFZT WCBmb3IgdmVjdG9yIHJlYWxpZ25tZW50LgorCisJKiBjb25maWcvcnM2MDAwL3ByZWRpY2F0ZXMu bWQKKwkoYWx0aXZlY19pbmRleGVkX29yX2luZGlyZWN0X29wZXJhbmQpOiBOZXcgcHJlZGljYXRl IHRvIHJlY29nbml6ZQorCUFsdGl2ZWMgbG9hZC9zdG9yZXMgd2l0aCBhbiBleHBsaWNpdCBBTkQg LTE2LgorCisJKiBjb25maWcvcnM2MDAwL3Bvd2VyNy5tZDogV2hpdGVzcGFjZSBjaGFuZ2UuCisK KwkqIGNvbmZpZy9yczYwMDAvcnM2MDAwLm9wdCAoLW1wb3dlcjctYWRqdXN0LWNvc3QpOiBOZXcg ZGVidWcKKwlzd2l0Y2guCisKKwkqIGNvbmZpZy9yczYwMDAvcnM2MDAwLWMuYyAoYWx0aXZlY19j YXRlZ29yaXplX2tleXdvcmQpOiBJZiAtbXZzeAorCWFuZCAtbW5vLWFsdGl2ZWMsIHJlY29nbml6 ZSB0aGUgJ3ZlY3Rvcicga2V5d29yZCwgYnV0IGRvIG5vdAorCXJlY29nbml6ZSAnYm9vbCcgb3Ig J3BpeGVsJy4gIFJlY29nbml6ZSB2ZWN0b3IgZG91YmxlIHVuZGVyIFZTWC4KKwkoaW5pdF92ZWN0 b3Jfa2V5d29yZHMpOiBEaXR0by4KKwkocnM2MDAwX21hY3JvX3RvX2V4cGFuZCk6IERpdHRvLgor CShhbHRpdmVjX292ZXJsb2FkZWRfYnVpbHRpbnMpOiBBZGQgVlNYIG92ZXJsb2FkZWQgYnVpbHRp bnMuCisJKGFsdGl2ZWNfcmVzb2x2ZV9vdmVybG9hZGVkX2J1aWx0aW4pOiBEaXR0by4KKworCSog Y29uZmlnL3JzNjAwMC9yczYwMDAuYyAocnM2MDAwX2RlYnVnX2Nvc3QpOiBOZXcgZ2xvYmFsIGZv cgorCS1tZGVidWc9Y29zdC4KKwkocnM2MDAwX2RlYnVnX2FkZHJlc3NfY29zdCk6IE5ldyBmdW5j dGlvbiBmb3IgcHJpbnRpbmcgY29zdHMgaWYKKwktbWRlYnVnPWNvc3QuCisJKHJzNjAwMF9kZWJ1 Z19ydHhfY29zdHMpOiBEaXR0by4KKwkocnM2MDAwX2RlYnVnX2FkanVzdF9jb3N0KTogRGl0dG8u CisJKHJzNjAwMF9vdmVycmlkZV9vcHRpb25zKTogQWRkIC1tZGVidWc9Y29zdCBzdXBwb3J0Lgor CShyczYwMDBfbGVnaXRpbWl6ZV9yZWxvYWRfYWRkcmVzcyk6IEFsbG93IEFsdGl2ZWMgbG9hZHMg YW5kIHN0b3JlcworCXdpdGggYW4gZXhwbGljaXQgQU5EIC0xNiwgaW4gVlNYIGZvciB2ZWN0b3Ig cmVhbGlnbm1lbnQuCisJKHJzNjAwMF9sZWdpdGltaXplX3JlbG9hZF9hZGRyZXNzKTogRGl0dG8u CisJKHJzNjAwMF9sZWdpdGltYXRlX2FkZHJlc3MpOiBEaXR0by4KKwkocHJpbnRfb3BlcmFuZCk6 IERpdHRvLgorCShiZGVzY18zYXJnKTogQWRkIFZTWCBidWlsdGlucy4KKwkoYmRlc2NfMmFyZyk6 IERpdHRvLgorCShiZGVzY18xYXJnKTogRGl0dG8uCisJKGJkZXNjX2Ficyk6IERpdHRvLgorCSh2 c3hfZXhwYW5kX2J1aWx0aW4pOiBTdHViIGZ1bmN0aW9uIGZvciBleHBhbmRpbmcgVlNYIGJ1aWx0 aW5zLgorCShyczYwMDBfZXhwYW5kX2J1aWx0aW4pOiBDYWxsIHZzeF9leHBhbmRfYnVpbHRpbi4K KworCSogY29uZmlnL3JzNjAwMC92c3gubWQgKG1vc3QgREYgaW5zbnMpOiBNZXJnZSBERiBpbnNu cyBpbiB3aXRoCisJVjJERiBhbmQgVjRTRiBpbnNucywgcmF0aGVyIHRoYW4gZHVwbGljYXRpbmcg bXVjaCBvZiB0aGUgY29kZS4KKwkoYWxsIGluc25zKTogR28gdGhyb3VnaCBhbGwgaW5zbnMsIGFu ZCBhbHRlcm5hdGl2ZXMgdG8gYWRkcmVzcyB0aGUKKwlmdWxsIFZTWCByZWdpc3RlciBzZXQsIGFz IGEgbm9uLXByZWZlcnJlZCBvcHRpb24uCisJKHZzeF9tb2Q8bW9kZT4pOiBBZGQgc3VwcG9ydCBm b3IgdXNpbmcgQWx0aXZlYyBsb2FkL3N0b3JlIHdpdGgKKwlleHBsaWNpdCBBTkQgLTE2LiAgVXNl IHh4bG9yIHRvIGNvcHkgcmVnaXN0ZXJzLCBub3QgY29weSBzaWduLgorCShtdWx0aXBseS9hZGQg aW5zbnMpOiBBZGQgYW4gZXhwYW5kZXIgYW5kIHVuc3BlYyBzbyB0aGUgaW5zbiBjYW4KKwliZSB1 c2VkIGRpcmVjdGx5IGV2ZW4gaWYgLW1uby1mdXNlZC1tYWRkLgorCSh2c3hfdGRpdjxtb2RlPjMp OiBOZXcgaW5zbiBmb3IgdXNlIGFzIGEgYnVpbHRpbiBmdW5jdGlvbi4KKwkodnN4X3RzcXJ0PG1v ZGU+Mik6IERpdHRvLgorCSh2c3hfcnNxcnRlPG1vZGU+Mik6IERpdHRvLgorCisJKiBjb25maWcv cnM2MDAwL3JzNjAwMC5oIChyczYwMDBfZGVidWdfY29zdCk6IE5ldyBmb3IKKwktbWRlYnVnPWNv c3QuCisJKFRBUkdFVF9ERUJVR19DT1NUKTogRGl0dG8uCisJKFZTWF9CVUlMVElOXyopOiBNZXJn ZSB0aGUgdHdvIGZvcm1zIG9mIG11bHRpcGx5L2FkZCBpbnN0cnVjdGlvbnMKKwlpbnRvIGEgc2lu Z2xlIGluc24uICBTdGFydCB0byBhZGQgb3ZlcmxvYWRlZCBWU1ggYnVpbHRpbnMuCisKKwkqIGNv bmZpZy9yczYwMDAvYWx0aXZlYy5tZCAoYnVpbGRfdmVjdG9yX21hc2tfZm9yX2xvYWQpOiBEZWxl dGUKKwlWU1ggY29kZS4KKworCSogY29uZmlnL3JzNjAwMC9yczYwMDAubWQgKGJ0cnVuY3NmMik6 IERlbGV0ZSBleHRyYSBzcGFjZS4KKwkobW92ZGZfaGFyZGZsb2F0MzIpOiBVc2UgeHhsb3IgaW5z dGVhZCBvZiB4c2Nwc2duZHAgdG8gY29weSBkYXRhLgorCShtb3ZkZl9oYXJkZmxvYXQ2NF9tZnBn cHIpOiBEaXR0by4KKwkobW92ZGZfaGFyZGZsb2F0NjQpOiBEaXR0by4KKworMjAwOS0wMy0xMyAg TWljaGFlbCBNZWlzc25lciAgPG1laXNzbmVyQGxpbnV4LnZuZXQuaWJtLmNvbT4KKworCVBSIHRh cmdldC8zOTQ1NworCSogY29uZmlnL3JzNjAwMC9yczYwMDAub3B0ICgtbWRpc2FsbG93LWZsb2F0 LWluLWxyLWN0cik6IEFkZAorCXRlbXBvcmFyeSBkZWJ1ZyBzd2l0Y2guCisKKwkqIGNvbmZpZy9y czYwMDAvcnM2MDAwLmMgKHJzNjAwMF9oYXJkX3JlZ25vX21vZGVfb2spOiBSZXZlcnQKKwliZWhh dmlvciBvZiBkaXNhbGxvd2luZyAKKworMjAwOS0wMy0xMyAgTWljaGFlbCBNZWlzc25lciAgPG1l aXNzbmVyQGxpbnV4LnZuZXQuaWJtLmNvbT4KKworCSogY29uZmlnL3JzNjAwMC92ZWN0b3IubWQg KHZlY19leHRyYWN0X2V2ZW52MmRmKTogRGVsZXRlLCBpbnNuCisJY2F1c2VzIHByb2JsZW1zIGlu IGJ1aWxkaW5nIHNwZWMgMjAwNi4KKwkodmVjX2V4dHJhY3Rfb2RkdjJkZik6IERpdHRvLgorCSh2 ZWNfcGFja190cnVuY192MmRmKTogTmV3IGV4cGFuZGVycyBmb3IgVlNYIHZlY3Rvcml6ZWQKKwlj b252ZXJzaW9ucy4KKwkodmVjX3BhY2tfc2ZpeF90cnVuY192MmRmKTogRGl0dG8uCisJKHZlY19w YWNrX3VmaXhfdHJ1bmNfdjJkZik6IERpdHRvLgorCSh2ZWNfdW5wYWNrc19oaV92NHNmKTogRGl0 dG8uCisJKHZlY191bnBhY2tzX2xvX3Y0c2YpOiBEaXR0by4KKwkodmVjX3VucGFja3NfZmxvYXRf aGlfdjRzaSk6IERpdHRvLgorCSh2ZWNfdW5wYWNrc19mbG9hdF9sb192NHNpKTogRGl0dG8uCisJ KHZlY191bnBhY2t1X2Zsb2F0X2hpX3Y0c2kpOiBEaXR0by4KKwkodmVjX3VucGFja3VfZmxvYXRf bG9fdjRzaSk6IERpdHRvLgorCisJKiBjb25maWcvcnM2MDAwL3JzNjAwMC1wcm90b3MuaCAocnM2 MDAwX3ZlY3Rvcl9zZWNvbmRhcnlfcmVsb2FkKToKKwlEZWNsYXJhdGlvbiBmb3IgbmV3IHRhcmdl dCBob29rLgorCisJKiBjb25maWcvcnM2MDAwL3JzNjAwMC5jIChUQVJHRVRfU0VDT05EQVJZX1JF TE9BRCk6IEFkZCBuZXcgdGFyZ2V0CisJaG9vayBmb3IgZXZlbnR1YWxseSBmaXhpbmcgdXAgdGhl IG1lbW9yeSByZWZlcmVuY2VzIGZvciBBbHRpdmVjCisJYW5kIFZTWCByZWxvYWRzIHRvIGJlIHJl ZytyZWcgaW5zdGVhZCBvZiByZWcrb2Zmc2V0LiAgUmlnaHQgbm93LAorCXRoaXMgaXMgYSBzdHVi IGZ1bmN0aW9uIHRoYXQgcHJpbnRzIGRlYnVnIGluZm9ybWF0aW9uIGlmCisJLW1kZWJ1Zz1hZGRy IGFuZCB0aGVuIGNhbGxzIGRlZmF1bHRfc2Vjb25kYXJ5X3JlbG9hZC4KKwkocnM2MDAwX3NlY29u ZGFyeV9yZWxvYWQpOiBEaXR0by4KKwkocnM2MDAwX3ZlY3Rvcl9zZWNvbmRhcnlfcmVsb2FkKTog RGl0dG8uCisJKHJzNjAwMF9idWlsdGluX2NvbnZlcnNpb24pOiBBZGQgc3VwcG9ydCBmb3IgVjJE SS9WMkRGCisJY29udmVyc2lvbnMuCisJKHJzNjAwMF9sZWdpdGltYXRlX29mZnNldF9hZGRyZXNz X3ApOiBUZXN0IGZvciB0aGUgdmVjdG9yIHVuaXQKKwlkb2luZyB0aGUgbWVtb3J5IHJlZmVyZW5j ZXMuCisJKHJzNjAwMF9sZWdpbWl6ZV9yZWxvYWRfYWRkcmVzcyk6IERpdHRvLgorCShyczYwMDBf bGVnaXRpbWl6ZV9hZGRyZXNzKTogUHJpbnQgZXh0cmEgXG4gaWYgLW1kZWJ1Zz1hZGRyLgorCShy czYwMDBfbGVnaXRpbWl6ZV9yZWxvYWRfYWRkcmVzcyk6IERpdHRvLgorCShyczYwMDBfbGVnaXRp bWF0ZV9hZGRyZXNzKTogRGl0dG8uCisJKHJzNjAwMF9tb2RlX2RlcGVuZGVudF9hZGRyZXNzKTog RGl0dG8uCisJKGJkZXNjXzJhcmcpOiBBZGQgVlNYIGJ1aWx0aW5zLgorCShiZGVzY19hYnMpOiBE aXR0by4KKwkoYmRlc2NfMWFyZyk6IERpdHRvLgorCShhbHRpdmVjX2luaXRfYnVpbHRpbnMpOiBE aXR0by4KKwkocnM2MDAwX3NlY29uZGFyeV9tZW1vcnlfbmVlZGVkX3J0eCk6IEFkZCBkZWJ1ZyBz dXBwb3J0IGlmCisJLW1kZWJ1Zz1hZGRyLgorCShyczYwMDBfcHJlZmVycmVkX3JlbG9hZF9jbGFz cyk6IERpdHRvLgorCShyczYwMDBfc2Vjb25kYXJ5X21lbW9yeV9uZWVkZWQpOiBEaXR0by4KKwko cnM2MDAwX3NlY29uZGFyeV9yZWxvYWRfY2xhc3MpOiBEaXR0by4KKwkocnM2MDAwX2Nhbm5vdF9j aGFuZ2VfbW9kZV9jbGFzcyk6IERpdHRvLgorCisJKiBjb25maWcvcnM2MDAwL3ZzeC5tZCAoVU5T UEVDX1ZTWF8qKTogQWRkIHVuc3BlY3MgZm9yIFZTWAorCWNvbnZlcnNpb25zLgorCSh2c3hfbmFi czxtb2RlPik6IEFkZCBnZW5lcmF0b3IgZnVuY3Rpb24uCisJKHZzeF9mbG9hdDxWU2k+PG1vZGU+ Mik6IERpdHRvLgorCSh2c3hfZmxvYXR1bnM8VlNpPjxtb2RlPjIpOiBEaXR0by4KKwkodnN4X3h4 bXJnaHcpOiBEaXR0by4KKwkodnN4X3h4bXJnbHcpOiBEaXR0by4KKwkodnN4X3h2Y3ZkcHNwKTog TmV3IFZTWCB2ZWN0b3IgY29udmVyc2lvbiBpbnNuLgorCSh2c3hfeHZjdmRwc3h3cyk6IERpdHRv LgorCSh2c3hfeHZjdmRwdXh3cyk6IERpdHRvLgorCSh2c3hfeHZjdnNwZHApOiBEaXR0by4KKwko dnN4X3h2Y3ZzeHdkcCk6IERpdHRvLgorCSh2c3hfeHZjdnV4d2RwKTogRGl0dG8uCisJKHZzeF9y ZWxvYWRfKik6IE5ldyBpbnNucyBmb3IgcmVsb2FkIHN1cHBvcnQuCisKKwkqIGNvbmZpZy9yczYw MDAvcnM2MDAwLmg6IEZpeCBhIGNvbW1lbnQuCisKKwkqIGNvbmZpZy9yczYwMDAvYWx0aXZlYy5t ZCAoYWx0aXZlY19yZWxvYWRfKik6IE5ldyBpbnNucyBmb3IKKwlyZWxvYWQgc3VwcG9ydC4KKwor CSogY29uZmlnL3JzNjAwMC9yczYwMDAubWQgKHB0cnNpemUpOiBOZXcgbW9kZSBhdHRyaWJ1dGUg Zm9yIHRoZQorCXBvaW50ZXIgc2l6ZS4KKworMjAwOS0wMy0xMCAgTWljaGFlbCBNZWlzc25lciAg PG1laXNzbmVyQGxpbnV4LnZuZXQuaWJtLmNvbT4KKworCSogY29uZmlnL3JzNjAwMC92c3gubWQg KHZzeF9jb25jYXRfdjJkZik6IEFkZCBleHBsaWNpdCAnZicKKwlyZWdpc3RlciBjbGFzcyBmb3Ig c2NhbGFyIGRhdGEsIGNvcnJlY3QgdXNlcyBvZiB0aGUgeHhwZXJtZGkKKwlpbnN0cnVjdGlvbi4K KwkodnN4X3NldF92MmRmKTogRGl0dG8uCisJKHZzeF9leHRyYWN0X3YyZGYpOiBEaXR0by4KKwko dnN4X3h4cGVybWRpKTogRGl0dG8uCisJKHZzeF9zcGxhdHYyZGYpOiBEaXR0by4KKwkodnN4X3h4 bXJnaHcpOiBVc2Ugd2YgaW5zdGVhZCBvZiB2IGNvbnN0cmFpbnRzLgorCSh2c3hfeHhtcmdsdyk6 IERpdHRvLgorCiAyMDA5LTAzLTA5ICBNaWNoYWVsIE1laXNzbmVyICA8bWVpc3NuZXJAbGludXgu dm5ldC5pYm0uY29tPgogCiAJKiBjb25maWcvcnM2MDAwL3ZzeC5tZCAodnN4X3N0b3JlPG1vZGU+ X3VwZGF0ZTY0KTogVXNlIGNvcnJlY3QKQEAgLTg2OCw3ICsxMTEyLDI3IEBACiAJKHBvcGNudHdz aTIpOiBBZGQgcG9wY250dyBzdXBwb3J0LgogCShwb3BjbnRkZGkyKTogQWRkIHBvcGNudGQgc3Vw cG9ydC4KIAotdGVzdHN1aXRlLworMjAwOS0wMy0yNyAgSmFrdWIgSmVsaW5layAgPGpha3ViQHJl ZGhhdC5jb20+CisKKwlQUiB0YXJnZXQvMzk1NTgKKwkqIGdjYy50YXJnZXQvcG93ZXJwYy9hbHRp dmVjLTI5LmM6IE5ldyB0ZXN0LgorCisyMDA5LTAzLTI3ICBNaWNoYWVsIE1laXNzbmVyICA8bWVp c3NuZXJAbGludXgudm5ldC5pYm0uY29tPgorCisJKiBnY2MudGFyZ2V0L3Bvd2VycGMvdnN4LWJ1 aWx0aW4tMS5jOiBBZGQgbW9yZSBWU1ggYnVpbHRpbnMuCisJUHJldmVudCB0aGUgb3B0aW1pemVy IGZyb20gY29tYmluaW5nIHRoZSB2YXJpb3VzIG11bHRpcGxpZXMuCisJKiBnY2MudGFyZ2V0L3Bv d2VycGMvdnN4LWJ1aWx0aW4tMi5jOiBEaXR0by4KKworMjAwOS0wMy0xMyAgTWljaGFlbCBNZWlz c25lciAgPG1laXNzbmVyQGxpbnV4LnZuZXQuaWJtLmNvbT4KKworCVBSIHRhcmdldC8zOTQ1Nwor CSogZ2NjLnRhcmdldC9wb3dlcnBjL3ByMzk0NTcuYzogTmV3IHRlc3QgZm9yIFBSMzk0NTcuCisK KzIwMDktMDMtMTMgIE1pY2hhZWwgTWVpc3NuZXIgIDxtZWlzc25lckBsaW51eC52bmV0LmlibS5j b20+CisKKwkqIGdjYy50YXJnZXQvcG93ZXJwYy92c3gtYnVpbHRpbi0xLmM6IE5ldyB0ZXN0IGZv ciBidWlsdGlucy4KKwkqIGdjYy50YXJnZXQvcG93ZXJwYy92c3gtYnVpbHRpbi0yLmM6IERpdHRv LgorCiAyMDA5LTAzLTAxICBNaWNoYWVsIE1laXNzbmVyICA8bWVpc3NuZXJAbGludXgudm5ldC5p Ym0uY29tPgogCiAJKiBnY2MudGFyZ2V0L3Bvd2VycGMvdnN4LXZlY3Rvci0xLmM6IEZpeCB0eXBv cy4KQEAgLTg5OSw5ICsxMTYzLDkgQEAgdGVzdHN1aXRlLwogCSogZ2NjLnRhcmdldC9wb3dlcnBj L3BvcGNvdW50LTIuYzogTmV3IGZpbGUgZm9yIHBvd2VyNyBzdXBwb3J0LgogCSogZ2NjLnRhcmdl dC9wb3dlcnBjL3BvcGNvdW50LTMuYzogRGl0dG8uCiAKLS0tLSBnY2MvZG9jL2ludm9rZS50ZXhp CSguLi4vdHJ1bmspCShyZXZpc2lvbiAxNDQ1NTcpCi0rKysgZ2NjL2RvYy9pbnZva2UudGV4aQko Li4uL2JyYW5jaGVzL2libS9wb3dlcjctbWVpc3NuZXIpCShyZXZpc2lvbiAxNDQ3MzApCi1AQCAt NzEyLDcgKzcxMiw4IEBAIFNlZSBSUy82MDAwIGFuZCBQb3dlclBDIE9wdGlvbnMuCistLS0gZ2Nj L2RvYy9pbnZva2UudGV4aQkoLi4uL3RydW5rKQkocmV2aXNpb24gMTQ1Nzc3KQorKysrIGdjYy9k b2MvaW52b2tlLnRleGkJKC4uLi9icmFuY2hlcy9pYm0vcG93ZXI3LW1laXNzbmVyKQkocmV2aXNp b24gMTQ2MDI3KQorQEAgLTcxNSw3ICs3MTUsOCBAQCBTZWUgUlMvNjAwMCBhbmQgUG93ZXJQQyBP cHRpb25zLgogIC1tYWx0aXZlYyAgLW1uby1hbHRpdmVjIEBnb2wKICAtbXBvd2VycGMtZ3BvcHQg IC1tbm8tcG93ZXJwYy1ncG9wdCBAZ29sCiAgLW1wb3dlcnBjLWdmeG9wdCAgLW1uby1wb3dlcnBj LWdmeG9wdCBAZ29sCkBAIC05MTEsMTggKzExNzUsMTYgQEAgdGVzdHN1aXRlLwogIC1tY21wYiAt bW5vLWNtcGIgLW1tZnBncHIgLW1uby1tZnBncHIgLW1oYXJkLWRmcCAtbW5vLWhhcmQtZGZwIEBn b2wKICAtbW5ldy1tbmVtb25pY3MgIC1tb2xkLW1uZW1vbmljcyBAZ29sCiAgLW1mdWxsLXRvYyAg IC1tbWluaW1hbC10b2MgIC1tbm8tZnAtaW4tdG9jICAtbW5vLXN1bS1pbi10b2MgQGdvbAotQEAg LTcyNiw3ICs3MjcsOSBAQCBTZWUgUlMvNjAwMCBhbmQgUG93ZXJQQyBPcHRpb25zLgorQEAgLTcy OSw3ICs3MzAsNyBAQCBTZWUgUlMvNjAwMCBhbmQgUG93ZXJQQyBPcHRpb25zLgogIC1tc3RyaWN0 LWFsaWduICAtbW5vLXN0cmljdC1hbGlnbiAgLW1yZWxvY2F0YWJsZSBAZ29sCiAgLW1uby1yZWxv Y2F0YWJsZSAgLW1yZWxvY2F0YWJsZS1saWIgIC1tbm8tcmVsb2NhdGFibGUtbGliIEBnb2wKICAt bXRvYyAgLW1uby10b2MgIC1tbGl0dGxlICAtbWxpdHRsZS1lbmRpYW4gIC1tYmlnICAtbWJpZy1l bmRpYW4gQGdvbAogLS1tZHluYW1pYy1uby1waWMgIC1tYWx0aXZlYyAgLW1zd2RpdiBAZ29sCi0r LW1keW5hbWljLW5vLXBpYyAgLW1hbHRpdmVjIC1tc3dkaXYgLW12c3ggLW12c3gtdmVjdG9yLW1l bW9yeSBAZ29sCi0rLW12c3gtdmVjdG9yLWZsb2F0IC1tdnN4LXZlY3Rvci1kb3VibGUgQGdvbAot Ky1tdnN4LXNjYWxhci1kb3VibGUgLW12c3gtc2NhbGFyLW1lbW9yeSBAZ29sCisrLW1keW5hbWlj LW5vLXBpYyAgLW1hbHRpdmVjIC1tc3dkaXYgQGdvbAogIC1tcHJpb3JpdGl6ZS1yZXN0cmljdGVk LWluc25zPUB2YXJ7cHJpb3JpdHl9IEBnb2wKICAtbXNjaGVkLWNvc3RseS1kZXA9QHZhcntkZXBl bmRlbmNlX3R5cGV9IEBnb2wKICAtbWluc2VydC1zY2hlZC1ub3BzPUB2YXJ7c2NoZW1lfSBAZ29s Ci1AQCAtMTM1MTIsNiArMTM1MTUsOCBAQCBUaGVzZSBAc2FtcHstbX0gb3B0aW9ucyBhcmUgZGVm aW5lZCBmb3IgCitAQCAtMTM2MTQsNiArMTM2MTUsOCBAQCBUaGVzZSBAc2FtcHstbX0gb3B0aW9u cyBhcmUgZGVmaW5lZCBmb3IgCiAgQGl0ZW14IC1tbm8tbWZjcmYKICBAaXRlbXggLW1wb3BjbnRi CiAgQGl0ZW14IC1tbm8tcG9wY250YgpAQCAtOTMxLDcgKzExOTMsNyBAQCB0ZXN0c3VpdGUvCiAg QGl0ZW14IC1tZnBybmQKICBAaXRlbXggLW1uby1mcHJuZAogIEBpdGVteCAtbWNtcGIKLUBAIC0x MzUzNiw2ICsxMzU0MSw4IEBAIFRoZXNlIEBzYW1wey1tfSBvcHRpb25zIGFyZSBkZWZpbmVkIGZv ciAKK0BAIC0xMzYzOCw2ICsxMzY0MSw4IEBAIFRoZXNlIEBzYW1wey1tfSBvcHRpb25zIGFyZSBk ZWZpbmVkIGZvciAKICBAb3BpbmRleCBtbm8tbWZjcmYKICBAb3BpbmRleCBtcG9wY250YgogIEBv cGluZGV4IG1uby1wb3BjbnRiCkBAIC05NDAsNyArMTIwMiw3IEBAIHRlc3RzdWl0ZS8KICBAb3Bp bmRleCBtZnBybmQKICBAb3BpbmRleCBtbm8tZnBybmQKICBAb3BpbmRleCBtY21wYgotQEAgLTEz NTg1LDYgKzEzNTkyLDkgQEAgVGhlIEBvcHRpb257LW1wb3BjbnRifSBvcHRpb24gYWxsb3dzIEdD QworQEAgLTEzNjg3LDYgKzEzNjkyLDkgQEAgVGhlIEBvcHRpb257LW1wb3BjbnRifSBvcHRpb24g YWxsb3dzIEdDQwogIGRvdWJsZSBwcmVjaXNpb24gRlAgcmVjaXByb2NhbCBlc3RpbWF0ZSBpbnN0 cnVjdGlvbiBpbXBsZW1lbnRlZCBvbiB0aGUKICBQT1dFUjUgcHJvY2Vzc29yIGFuZCBvdGhlciBw cm9jZXNzb3JzIHRoYXQgc3VwcG9ydCB0aGUgUG93ZXJQQyBWMi4wMgogIGFyY2hpdGVjdHVyZS4K QEAgLTk1MCw3ICsxMjEyLDcgQEAgdGVzdHN1aXRlLwogIFRoZSBAb3B0aW9uey1tZnBybmR9IG9w dGlvbiBhbGxvd3MgR0NDIHRvIGdlbmVyYXRlIHRoZSBGUCByb3VuZCB0bwogIGludGVnZXIgaW5z dHJ1Y3Rpb25zIGltcGxlbWVudGVkIG9uIHRoZSBQT1dFUjUrIHByb2Nlc3NvciBhbmQgb3RoZXIK ICBwcm9jZXNzb3JzIHRoYXQgc3VwcG9ydCB0aGUgUG93ZXJQQyBWMi4wMyBhcmNoaXRlY3R1cmUu Ci1AQCAtMTM2NjMsOSArMTM2NzMsOSBAQCBUaGUgQG9wdGlvbnstbWNwdX0gb3B0aW9ucyBhdXRv bWF0aWNhbGx5CitAQCAtMTM3NjUsOSArMTM3NzMsOSBAQCBUaGUgQG9wdGlvbnstbWNwdX0gb3B0 aW9ucyBhdXRvbWF0aWNhbGx5CiAgZm9sbG93aW5nIG9wdGlvbnM6CiAgCiAgQGdjY29wdGxpc3R7 LW1hbHRpdmVjICAtbWZwcm5kICAtbWhhcmQtZmxvYXQgIC1tbWZjcmYgIC1tbXVsdGlwbGUgQGdv bApAQCAtOTYyLDcgKzEyMjQsNyBAQCB0ZXN0c3VpdGUvCiAgCiAgVGhlIHBhcnRpY3VsYXIgb3B0 aW9ucyBzZXQgZm9yIGFueSBwYXJ0aWN1bGFyIENQVSB3aWxsIHZhcnkgYmV0d2VlbgogIGNvbXBp bGVyIHZlcnNpb25zLCBkZXBlbmRpbmcgb24gd2hhdCBzZXR0aW5nIHNlZW1zIHRvIHByb2R1Y2Ug b3B0aW1hbAotQEAgLTEzNzY2LDYgKzEzNzc2LDQ0IEBAIGluc3RydWN0aW9ucy4KK0BAIC0xMzg2 OCw2ICsxMzg3NiwxNCBAQCBpbnN0cnVjdGlvbnMuCiAgVGhpcyBvcHRpb24gaGFzIGJlZW4gZGVw cmVjYXRlZC4gIFVzZSBAb3B0aW9uey1tc3BlfSBhbmQKICBAb3B0aW9uey1tbm8tc3BlfSBpbnN0 ZWFkLgogIApAQCAtOTc0LDQyICsxMjM2LDEyIEBAIHRlc3RzdWl0ZS8KICtpbnN0cnVjdGlvbnMs IGFuZCBhbHNvIGVuYWJsZSB0aGUgdXNlIG9mIGJ1aWx0LWluIGZ1bmN0aW9ucyB0aGF0IGFsbG93 CiArbW9yZSBkaXJlY3QgYWNjZXNzIHRvIHRoZSBWU1ggaW5zdHJ1Y3Rpb24gc2V0LgogKwotK0Bp dGVtIC1tdnN4LXZlY3Rvci1tZW1vcnkKLStAaXRlbXggLW1uby12c3gtdmVjdG9yLW1lbW9yeQot K0lmIEBvcHRpb257LW12c3h9LCB1c2UgVlNYIG1lbW9yeSByZWZlcmVuY2UgaW5zdHJ1Y3Rpb25z IGZvciB2ZWN0b3JzCi0raW5zdGVhZCBvZiB0aGUgQWx0aXZlYyBpbnN0cnVjdGlvbnMgVGhpcyBv cHRpb24gaXMgYSB0ZW1wb3Jhcnkgc3dpdGNoCi0rdG8gdHVuZSB0aGUgY29tcGlsZXIsIGFuZCBt YXkgbm90IGJlIHN1cHBvcnRlZCBpbiBmdXR1cmUgdmVyc2lvbnMuCi0rCi0rQGl0ZW0gLW12c3gt dmVjdG9yLWZsb2F0Ci0rQGl0ZW14IC1tbm8tdnN4LXZlY3Rvci1mbG9hdAotK0lmIEBvcHRpb257 LW12c3h9LCB1c2UgVlNYIGFyaXRobWV0aWMgaW5zdHJ1Y3Rpb25zIGZvciBmbG9hdCB2ZWN0b3Jz LgotK1RoaXMgb3B0aW9uIGlzIGEgdGVtcG9yYXJ5IHN3aXRjaCB0byB0dW5lIHRoZSBjb21waWxl ciwgYW5kIG1heSBub3QgYmUKLStzdXBwb3J0ZWQgaW4gZnV0dXJlIHZlcnNpb25zLgotKwotK0Bp dGVtIC1tdnN4LXZlY3Rvci1kb3VibGUKLStAaXRlbXggLW1uby12c3gtdmVjdG9yLWRvdWJsZQot K0lmIEBvcHRpb257LW12c3h9LCB1c2UgVlNYIGFyaXRobWV0aWMgaW5zdHJ1Y3Rpb25zIGZvciBk b3VibGUKLSt2ZWN0b3JzLiAgVGhpcyBvcHRpb24gaXMgYSB0ZW1wb3Jhcnkgc3dpdGNoIHRvIHR1 bmUgdGhlCi0rY29tcGlsZXIsIGFuZCBtYXkgbm90IGJlIHN1cHBvcnRlZCBpbiBmdXR1cmUgdmVy c2lvbnMuCi0rCi0rQGl0ZW0gLW12c3gtc2NhbGFyLWRvdWJsZQotK0BpdGVteCAtbW5vLXZzeC1z Y2FsYXItZG91YmxlCi0rSWYgQG9wdGlvbnstbXZzeH0sIHVzZSBWU1ggYXJpdGhtZXRpYyBpbnN0 cnVjdGlvbnMgZm9yIHNjYWxhciBkb3VibGUuCi0rVGhpcyBvcHRpb24gaXMgYSB0ZW1wb3Jhcnkg c3dpdGNoIHRvIHR1bmUgdGhlIGNvbXBpbGVyLCBhbmQgbWF5IG5vdCBiZQotK3N1cHBvcnRlZCBp biBmdXR1cmUgdmVyc2lvbnMuCi0rCi0rQGl0ZW0gLW12c3gtc2NhbGFyLW1lbW9yeQotK0BpdGVt eCAtbW5vLXZzeC1zY2FsYXItbWVtb3J5Ci0rSWYgQG9wdGlvbnstbXZzeH0sIHVzZSBWU1ggbWVt b3J5IHJlZmVyZW5jZSBpbnN0cnVjdGlvbnMgZm9yIHNjYWxhcgotK2RvdWJsZS4gIFRoaXMgb3B0 aW9uIGlzIGEgdGVtcG9yYXJ5IHN3aXRjaCB0byB0dW5lIHRoZSBjb21waWxlciwgYW5kCi0rbWF5 IG5vdCBiZSBzdXBwb3J0ZWQgaW4gZnV0dXJlIHZlcnNpb25zLgotKwogIEBpdGVtIC1tZmxvYXQt Z3Bycz1AdmFye3llcy9zaW5nbGUvZG91YmxlL25vfQogIEBpdGVteCAtbWZsb2F0LWdwcnMKICBA b3BpbmRleCBtZmxvYXQtZ3BycwotLS0tIGdjYy9kb2MvbWQudGV4aQkoLi4uL3RydW5rKQkocmV2 aXNpb24gMTQ0NTU3KQotKysrIGdjYy9kb2MvbWQudGV4aQkoLi4uL2JyYW5jaGVzL2libS9wb3dl cjctbWVpc3NuZXIpCShyZXZpc2lvbiAxNDQ3MzApCi1AQCAtMTkwNSw3ICsxOTA1LDE5IEBAIEFk ZHJlc3MgYmFzZSByZWdpc3RlcgorLS0tIGdjYy9kb2MvbWQudGV4aQkoLi4uL3RydW5rKQkocmV2 aXNpb24gMTQ1Nzc3KQorKysrIGdjYy9kb2MvbWQudGV4aQkoLi4uL2JyYW5jaGVzL2libS9wb3dl cjctbWVpc3NuZXIpCShyZXZpc2lvbiAxNDYwMjcpCitAQCAtMTkxMyw3ICsxOTEzLDE5IEBAIEFk ZHJlc3MgYmFzZSByZWdpc3RlcgogIEZsb2F0aW5nIHBvaW50IHJlZ2lzdGVyCiAgCiAgQGl0ZW0g dgpAQCAtMTAzMCw3ICsxMjYyLDcgQEAgdGVzdHN1aXRlLwogIAogIEBpdGVtIGgKICBAc2FtcHtN UX0sIEBzYW1we0NUUn0sIG9yIEBzYW1we0xJTkt9IHJlZ2lzdGVyCi1AQCAtMTk5MSw2ICsyMDAz LDkgQEAgQU5EIG1hc2tzIHRoYXQgY2FuIGJlIHBlcmZvcm1lZCBieSB0d28gcgorQEAgLTE5OTks NiArMjAxMSw5IEBAIEFORCBtYXNrcyB0aGF0IGNhbiBiZSBwZXJmb3JtZWQgYnkgdHdvIHIKICBA aXRlbSBXCiAgVmVjdG9yIGNvbnN0YW50IHRoYXQgZG9lcyBub3QgcmVxdWlyZSBtZW1vcnkKICAK QEAgLTEwNDAsOCArMTI3Miw4IEBAIHRlc3RzdWl0ZS8KICBAZW5kIHRhYmxlCiAgCiAgQGl0ZW0g SW50ZWwgMzg2LS0tQGZpbGV7Y29uZmlnL2kzODYvY29uc3RyYWludHMubWR9Ci0tLS0gZ2NjL3Jl bG9hZC5jCSguLi4vdHJ1bmspCShyZXZpc2lvbiAxNDQ1NTcpCi0rKysgZ2NjL3JlbG9hZC5jCSgu Li4vYnJhbmNoZXMvaWJtL3Bvd2VyNy1tZWlzc25lcikJKHJldmlzaW9uIDE0NDczMCkKKy0tLSBn Y2MvcmVsb2FkLmMJKC4uLi90cnVuaykJKHJldmlzaW9uIDE0NTc3NykKKysrKyBnY2MvcmVsb2Fk LmMJKC4uLi9icmFuY2hlcy9pYm0vcG93ZXI3LW1laXNzbmVyKQkocmV2aXNpb24gMTQ2MDI3KQog QEAgLTYyNTUsOCArNjI1NSwxNCBAQCBzdWJzdF9yZWxvYWRzIChydHggaW5zbikKICAJICAgICpy LT53aGVyZSA9IHJlbG9hZHJlZzsKICAJfQpAQCAtMTA1OSw4ICsxMjkxLDE0NCBAQCB0ZXN0c3Vp dGUvCiAgICAgIH0KICB9CiAgDAorLS0tIGdjYy9jb25maWd1cmUJKC4uLi90cnVuaykJKHJldmlz aW9uIDE0NTc3NykKKysrKyBnY2MvY29uZmlndXJlCSguLi4vYnJhbmNoZXMvaWJtL3Bvd2VyNy1t ZWlzc25lcikJKHJldmlzaW9uIDE0NjAyNykKK0BAIC0yMzA3NSw3ICsyMzA3NSw3IEBAIGlmIHRl c3QgIiR7Z2NjX2N2X2FzX3Bvd2VycGNfbWZwZ3ByK3NldH0KKyBlbHNlCisgICBnY2NfY3ZfYXNf cG93ZXJwY19tZnBncHI9bm8KKyAgICAgaWYgdGVzdCAkaW5fdHJlZV9nYXMgPSB5ZXM7IHRoZW4K Ky0gICAgaWYgdGVzdCAkZ2NjX2N2X2dhc192ZXJzIC1nZSBgZXhwciBcKCBcKCA5IFwqIDEwMDAg XCkgKyA5OSBcKSBcKiAxMDAwICsgMGAKKysgICAgaWYgdGVzdCAkZ2NjX2N2X2dhc192ZXJzIC1n ZSBgZXhwciBcKCBcKCAyIFwqIDEwMDAgXCkgKyAxOSBcKSBcKiAxMDAwICsgMmAKKyAgIHRoZW4g Z2NjX2N2X2FzX3Bvd2VycGNfbWZwZ3ByPXllcworIGZpCisgICBlbGlmIHRlc3QgeCRnY2NfY3Zf YXMgIT0geDsgdGhlbgorQEAgLTIzMTcxLDcgKzIzMTcxLDcgQEAgaWYgdGVzdCAiJHtnY2NfY3Zf YXNfcG93ZXJwY19jbXBiK3NldH0iIAorIGVsc2UKKyAgIGdjY19jdl9hc19wb3dlcnBjX2NtcGI9 bm8KKyAgICAgaWYgdGVzdCAkaW5fdHJlZV9nYXMgPSB5ZXM7IHRoZW4KKy0gICAgaWYgdGVzdCAk Z2NjX2N2X2dhc192ZXJzIC1nZSBgZXhwciBcKCBcKCA5IFwqIDEwMDAgXCkgKyA5OSBcKSBcKiAx MDAwICsgMGAKKysgICAgaWYgdGVzdCAkZ2NjX2N2X2dhc192ZXJzIC1nZSBgZXhwciBcKCBcKCAy IFwqIDEwMDAgXCkgKyAxOSBcKSBcKiAxMDAwICsgMmAKKyAgIHRoZW4gZ2NjX2N2X2FzX3Bvd2Vy cGNfY21wYj15ZXMKKyBmaQorICAgZWxpZiB0ZXN0IHgkZ2NjX2N2X2FzICE9IHg7IHRoZW4KK0BA IC0yMzIxNyw3ICsyMzIxNyw3IEBAIGlmIHRlc3QgIiR7Z2NjX2N2X2FzX3Bvd2VycGNfZGZwK3Nl dH0iID0KKyBlbHNlCisgICBnY2NfY3ZfYXNfcG93ZXJwY19kZnA9bm8KKyAgICAgaWYgdGVzdCAk aW5fdHJlZV9nYXMgPSB5ZXM7IHRoZW4KKy0gICAgaWYgdGVzdCAkZ2NjX2N2X2dhc192ZXJzIC1n ZSBgZXhwciBcKCBcKCA5IFwqIDEwMDAgXCkgKyA5OSBcKSBcKiAxMDAwICsgMGAKKysgICAgaWYg dGVzdCAkZ2NjX2N2X2dhc192ZXJzIC1nZSBgZXhwciBcKCBcKCAyIFwqIDEwMDAgXCkgKyAxOSBc KSBcKiAxMDAwICsgMmAKKyAgIHRoZW4gZ2NjX2N2X2FzX3Bvd2VycGNfZGZwPXllcworIGZpCisg ICBlbGlmIHRlc3QgeCRnY2NfY3ZfYXMgIT0geDsgdGhlbgorQEAgLTIzMjYzLDcgKzIzMjYzLDcg QEAgaWYgdGVzdCAiJHtnY2NfY3ZfYXNfcG93ZXJwY192c3grc2V0fSIgPQorIGVsc2UKKyAgIGdj Y19jdl9hc19wb3dlcnBjX3ZzeD1ubworICAgICBpZiB0ZXN0ICRpbl90cmVlX2dhcyA9IHllczsg dGhlbgorLSAgICBpZiB0ZXN0ICRnY2NfY3ZfZ2FzX3ZlcnMgLWdlIGBleHByIFwoIFwoIDkgXCog MTAwMCBcKSArIDk5IFwpIFwqIDEwMDAgKyAwYAorKyAgICBpZiB0ZXN0ICRnY2NfY3ZfZ2FzX3Zl cnMgLWdlIGBleHByIFwoIFwoIDIgXCogMTAwMCBcKSArIDE5IFwpIFwqIDEwMDAgKyAyYAorICAg dGhlbiBnY2NfY3ZfYXNfcG93ZXJwY192c3g9eWVzCisgZmkKKyAgIGVsaWYgdGVzdCB4JGdjY19j dl9hcyAhPSB4OyB0aGVuCitAQCAtMjMyOTMsNiArMjMyOTMsNTIgQEAgX0FDRU9GCisgCisgZmkK KyAKKysgICAgY2FzZSAkdGFyZ2V0IGluCisrICAgICAgKi0qLWFpeCopIGNvbmZ0ZXN0X3M9Jwku bWFjaGluZSAicHdyNyIKKysJLmNzZWN0IC50ZXh0W1BSXQorKwlwb3BjbnRkIDMsMyc7OworKyAg ICAgICopIGNvbmZ0ZXN0X3M9JwkubWFjaGluZSBwb3dlcjcKKysJLnRleHQKKysJcG9wY250ZCAz LDMnOzsKKysgICAgZXNhYworKworKyAgICBlY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcg YXNzZW1ibGVyIGZvciBwb3BjbnRkIHN1cHBvcnQiID4mNQorK2VjaG8gJEVDSE9fTiAiY2hlY2tp bmcgYXNzZW1ibGVyIGZvciBwb3BjbnRkIHN1cHBvcnQuLi4gJEVDSE9fQyIgPiY2CisraWYgdGVz dCAiJHtnY2NfY3ZfYXNfcG93ZXJwY19wb3BjbnRkK3NldH0iID0gc2V0OyB0aGVuCisrICBlY2hv ICRFQ0hPX04gIihjYWNoZWQpICRFQ0hPX0MiID4mNgorK2Vsc2UKKysgIGdjY19jdl9hc19wb3dl cnBjX3BvcGNudGQ9bm8KKysgICAgaWYgdGVzdCAkaW5fdHJlZV9nYXMgPSB5ZXM7IHRoZW4KKysg ICAgaWYgdGVzdCAkZ2NjX2N2X2dhc192ZXJzIC1nZSBgZXhwciBcKCBcKCAyIFwqIDEwMDAgXCkg KyAxOSBcKSBcKiAxMDAwICsgMmAKKysgIHRoZW4gZ2NjX2N2X2FzX3Bvd2VycGNfcG9wY250ZD15 ZXMKKytmaQorKyAgZWxpZiB0ZXN0IHgkZ2NjX2N2X2FzICE9IHg7IHRoZW4KKysgICAgZWNobyAi JGNvbmZ0ZXN0X3MiID4gY29uZnRlc3QucworKyAgICBpZiB7IGFjX3RyeT0nJGdjY19jdl9hcyAt YTMyIC1vIGNvbmZ0ZXN0Lm8gY29uZnRlc3QucyA+JjUnCisrICB7IChldmFsIGVjaG8gIiRhc19t ZTokTElORU5POiBcIiRhY190cnlcIiIpID4mNQorKyAgKGV2YWwgJGFjX3RyeSkgMj4mNQorKyAg YWNfc3RhdHVzPSQ/CisrICBlY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIg PiY1CisrICAoZXhpdCAkYWNfc3RhdHVzKTsgfTsgfQorKyAgICB0aGVuCisrCWdjY19jdl9hc19w b3dlcnBjX3BvcGNudGQ9eWVzCisrICAgIGVsc2UKKysgICAgICBlY2hvICJjb25maWd1cmU6IGZh aWxlZCBwcm9ncmFtIHdhcyIgPiY1CisrICAgICAgY2F0IGNvbmZ0ZXN0LnMgPiY1CisrICAgIGZp CisrICAgIHJtIC1mIGNvbmZ0ZXN0Lm8gY29uZnRlc3QucworKyAgZmkKKytmaQorK2VjaG8gIiRh c19tZTokTElORU5POiByZXN1bHQ6ICRnY2NfY3ZfYXNfcG93ZXJwY19wb3BjbnRkIiA+JjUKKytl Y2hvICIke0VDSE9fVH0kZ2NjX2N2X2FzX3Bvd2VycGNfcG9wY250ZCIgPiY2CisraWYgdGVzdCAk Z2NjX2N2X2FzX3Bvd2VycGNfcG9wY250ZCA9IHllczsgdGhlbgorKworK2NhdCA+PmNvbmZkZWZz LmggPDxcX0FDRU9GCisrI2RlZmluZSBIQVZFX0FTX1BPUENOVEQgMQorK19BQ0VPRgorKworK2Zp CisrCisgICAgIGVjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyBhc3NlbWJsZXIgZm9yIC5n bnVfYXR0cmlidXRlIHN1cHBvcnQiID4mNQorIGVjaG8gJEVDSE9fTiAiY2hlY2tpbmcgYXNzZW1i bGVyIGZvciAuZ251X2F0dHJpYnV0ZSBzdXBwb3J0Li4uICRFQ0hPX0MiID4mNgorIGlmIHRlc3Qg IiR7Z2NjX2N2X2FzX3Bvd2VycGNfZ251X2F0dHJpYnV0ZStzZXR9IiA9IHNldDsgdGhlbgorLS0t IGdjYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9wb3dlcnBjL3ZzeC1idWlsdGluLTIuYwkoLi4uL3Ry dW5rKQkocmV2aXNpb24gMCkKKysrKyBnY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvcG93ZXJwYy92 c3gtYnVpbHRpbi0yLmMJKC4uLi9icmFuY2hlcy9pYm0vcG93ZXI3LW1laXNzbmVyKQkocmV2aXNp b24gMTQ2MDI3KQorQEAgLTAsMCArMSw0MiBAQAorKy8qIHsgZGctZG8gY29tcGlsZSB7IHRhcmdl dCB7IHBvd2VycGMqLSotKiB9IH0gfSAqLworKy8qIHsgZGctc2tpcC1pZiAiIiB7IHBvd2VycGMq LSotZGFyd2luKiB9IHsgIioiIH0geyAiIiB9IH0gKi8KKysvKiB7IGRnLXJlcXVpcmUtZWZmZWN0 aXZlLXRhcmdldCBwb3dlcnBjX3ZzeF9vayB9ICovCisrLyogeyBkZy1vcHRpb25zICItTzIgLW1j cHU9cG93ZXI3IiB9ICovCisrLyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyICJ4dmFkZHNw IiB9IH0gKi8KKysvKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXIgInh2c3Vic3AiIH0gfSAq LworKy8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlciAieHZtdWxzcCIgfSB9ICovCisrLyog eyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyICJ4dm1hZGQiIH0gfSAqLworKy8qIHsgZGctZmlu YWwgeyBzY2FuLWFzc2VtYmxlciAieHZtc3ViIiB9IH0gKi8KKysvKiB7IGRnLWZpbmFsIHsgc2Nh bi1hc3NlbWJsZXIgInh2bm1hZGQiIH0gfSAqLworKy8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2Vt YmxlciAieHZubXN1YiIgfSB9ICovCisrLyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyICJ4 dmRpdnNwIiB9IH0gKi8KKysvKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXIgInh2bWF4c3Ai IH0gfSAqLworKy8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlciAieHZtaW5zcCIgfSB9ICov CisrLyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyICJ4dnNxcnRzcCIgfSB9ICovCisrLyog eyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyICJ4dmFic3NwIiB9IH0gKi8KKysvKiB7IGRnLWZp bmFsIHsgc2Nhbi1hc3NlbWJsZXIgInh2bmFic3NwIiB9IH0gKi8KKysvKiB7IGRnLWZpbmFsIHsg c2Nhbi1hc3NlbWJsZXIgInh2cmVzcCIgfSB9ICovCisrLyogeyBkZy1maW5hbCB7IHNjYW4tYXNz ZW1ibGVyICJ4dnJzcXJ0ZXNwIiB9IH0gKi8KKysvKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJs ZXIgInh2dHNxcnRzcCIgfSB9ICovCisrLyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyICJ4 dnRkaXZzcCIgfSB9ICovCisrCisrdm9pZCB1c2VfYnVpbHRpbnMgKF9fdmVjdG9yIGZsb2F0ICpw LCBfX3ZlY3RvciBmbG9hdCAqcSwgX192ZWN0b3IgZmxvYXQgKnIsIF9fdmVjdG9yIGZsb2F0ICpz KQorK3sKKysgIHBbMF0gPSBfX2J1aWx0aW5fdnN4X3h2YWRkc3AgKHFbMF0sIHJbMF0pOworKyAg cFsxXSA9IF9fYnVpbHRpbl92c3hfeHZzdWJzcCAocVsxXSwgclsxXSk7CisrICBwWzJdID0gX19i dWlsdGluX3ZzeF94dm11bHNwIChxWzJdLCByWzJdKTsKKysgIHBbM10gPSBfX2J1aWx0aW5fdnN4 X3h2ZGl2c3AgKHFbM10sIHJbM10pOworKyAgcFs0XSA9IF9fYnVpbHRpbl92c3hfeHZtYXhzcCAo cVs0XSwgcls0XSk7CisrICBwWzVdID0gX19idWlsdGluX3ZzeF94dm1pbnNwIChxWzVdLCByWzVd KTsKKysgIHBbNl0gPSBfX2J1aWx0aW5fdnN4X3h2YWJzc3AgKHFbNl0pOworKyAgcFs3XSA9IF9f YnVpbHRpbl92c3hfeHZuYWJzc3AgKHFbN10pOworKyAgcFs4XSA9IF9fYnVpbHRpbl92c3hfeHZz cXJ0c3AgKHFbOF0pOworKyAgcFs5XSA9IF9fYnVpbHRpbl92c3hfeHZtYWRkc3AgKHFbOV0sIHJb OV0sIHNbOV0pOworKyAgcFsxMF0gPSBfX2J1aWx0aW5fdnN4X3h2bXN1YnNwIChxWzEwXSwgclsx MF0sIHNbMTBdKTsKKysgIHBbMTFdID0gX19idWlsdGluX3ZzeF94dm5tYWRkc3AgKHFbMTFdLCBy WzExXSwgc1sxMV0pOworKyAgcFsxMl0gPSBfX2J1aWx0aW5fdnN4X3h2bm1zdWJzcCAocVsxMl0s IHJbMTJdLCBzWzEyXSk7CisrICBwWzEzXSA9IF9fYnVpbHRpbl92c3hfeHZyZXNwIChxWzEzXSk7 CisrICBwWzE0XSA9IF9fYnVpbHRpbl92c3hfeHZyc3FydGVzcCAocVsxNF0pOworKyAgcFsxNV0g PSBfX2J1aWx0aW5fdnN4X3h2dHNxcnRzcCAocVsxNV0pOworKyAgcFsxNl0gPSBfX2J1aWx0aW5f dnN4X3h2dGRpdnNwIChxWzE2XSwgclsxNl0pOworK30KIC0tLSBnY2MvdGVzdHN1aXRlL2djYy50 YXJnZXQvcG93ZXJwYy9wb3Bjb3VudC0zLmMJKC4uLi90cnVuaykJKHJldmlzaW9uIDApCi0rKysg Z2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L3Bvd2VycGMvcG9wY291bnQtMy5jCSguLi4vYnJhbmNo ZXMvaWJtL3Bvd2VyNy1tZWlzc25lcikJKHJldmlzaW9uIDE0NDczMCkKKysrKyBnY2MvdGVzdHN1 aXRlL2djYy50YXJnZXQvcG93ZXJwYy9wb3Bjb3VudC0zLmMJKC4uLi9icmFuY2hlcy9pYm0vcG93 ZXI3LW1laXNzbmVyKQkocmV2aXNpb24gMTQ2MDI3KQogQEAgLTAsMCArMSw5IEBACiArLyogeyBk Zy1kbyBjb21waWxlIHsgdGFyZ2V0IHsgcG93ZXJwYyotKi0qICYmIGxwNjQgfSB9IH0gKi8KICsv KiB7IGRnLXNraXAtaWYgIiIgeyBwb3dlcnBjKi0qLWRhcndpbiogfSB7ICIqIiB9IHsgIiIgfSB9 ICovCkBAIC0xMDcyLDcgKzE0NDAsNyBAQCB0ZXN0c3VpdGUvCiArICByZXR1cm4gX19idWlsdGlu X3BvcGNvdW50bCh4KTsKICt9CiAtLS0gZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L3Bvd2VycGMv dnN4LXZlY3Rvci0xLmMJKC4uLi90cnVuaykJKHJldmlzaW9uIDApCi0rKysgZ2NjL3Rlc3RzdWl0 ZS9nY2MudGFyZ2V0L3Bvd2VycGMvdnN4LXZlY3Rvci0xLmMJKC4uLi9icmFuY2hlcy9pYm0vcG93 ZXI3LW1laXNzbmVyKQkocmV2aXNpb24gMTQ0NzMwKQorKysrIGdjYy90ZXN0c3VpdGUvZ2NjLnRh cmdldC9wb3dlcnBjL3ZzeC12ZWN0b3ItMS5jCSguLi4vYnJhbmNoZXMvaWJtL3Bvd2VyNy1tZWlz c25lcikJKHJldmlzaW9uIDE0NjAyNykKIEBAIC0wLDAgKzEsNzQgQEAKICsvKiB7IGRnLWRvIGNv bXBpbGUgeyB0YXJnZXQgeyBwb3dlcnBjKi0qLSogJiYgbHA2NCB9IH0gfSAqLwogKy8qIHsgZGct c2tpcC1pZiAiIiB7IHBvd2VycGMqLSotZGFyd2luKiB9IHsgIioiIH0geyAiIiB9IH0gKi8KQEAg LTExNDksNyArMTUxNyw3IEBAIHRlc3RzdWl0ZS8KICsgICAgYVtpXSA9IGJbaV0gLyBjW2ldOwog K30KIC0tLSBnY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvcG93ZXJwYy92c3gtdmVjdG9yLTIuYwko Li4uL3RydW5rKQkocmV2aXNpb24gMCkKLSsrKyBnY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvcG93 ZXJwYy92c3gtdmVjdG9yLTIuYwkoLi4uL2JyYW5jaGVzL2libS9wb3dlcjctbWVpc3NuZXIpCShy ZXZpc2lvbiAxNDQ3MzApCisrKysgZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L3Bvd2VycGMvdnN4 LXZlY3Rvci0yLmMJKC4uLi9icmFuY2hlcy9pYm0vcG93ZXI3LW1laXNzbmVyKQkocmV2aXNpb24g MTQ2MDI3KQogQEAgLTAsMCArMSw3NCBAQAogKy8qIHsgZGctZG8gY29tcGlsZSB7IHRhcmdldCB7 IHBvd2VycGMqLSotKiAmJiBscDY0IH0gfSB9ICovCiArLyogeyBkZy1za2lwLWlmICIiIHsgcG93 ZXJwYyotKi1kYXJ3aW4qIH0geyAiKiIgfSB7ICIiIH0gfSAqLwpAQCAtMTIyNSw4ICsxNTkzLDY3 IEBAIHRlc3RzdWl0ZS8KICsgIGZvciAoaSA9IDA7IGkgPCBTSVpFOyBpKyspCiArICAgIGFbaV0g PSBiW2ldIC8gY1tpXTsKICt9CistLS0gZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L3Bvd2VycGMv cHIzOTQ1Ny5jCSguLi4vdHJ1bmspCShyZXZpc2lvbiAwKQorKysrIGdjYy90ZXN0c3VpdGUvZ2Nj LnRhcmdldC9wb3dlcnBjL3ByMzk0NTcuYwkoLi4uL2JyYW5jaGVzL2libS9wb3dlcjctbWVpc3Nu ZXIpCShyZXZpc2lvbiAxNDYwMjcpCitAQCAtMCwwICsxLDU2IEBACisrLyogeyBkZy1kbyBjb21w aWxlIHsgdGFyZ2V0IHsgcG93ZXJwYyotKi0qICYmIGxwNjQgfSB9IH0gKi8KKysvKiB7IGRnLW9w dGlvbnMgIi1tNjQgLU8yIC1tbWluaW1hbC10b2MiIH0gKi8KKysKKysvKiBQUiAzOTQ1NyAtLSBm aXggYnJlYWthZ2UgYmVjYXVzZSB0aGUgY29tcGlsZXIgcmFuIG91dCBvZiByZWdpc3RlcnMgYW5k CisrICAgd2FudGVkIHRvIHN0YXNoIGEgZmxvYXRpbmcgcG9pbnQgdmFsdWUgdG8gdGhlIExSL0NU UiByZWdpc3Rlci4gICovCisrCisrLyogLU8yIC1tNjQgLW1taW5pbWFsLXRvYyAqLworK3R5cGVk ZWYgc3RydWN0IHsgdm9pZCAqczsgfSBTOworK3R5cGVkZWYgdm9pZCAoKlQxKSAodm9pZCk7Cisr dHlwZWRlZiB2b2lkICgqVDIpICh2b2lkICosIHZvaWQgKiwgaW50LCB2b2lkICopOworK2NoYXIg KmZuMSAoY29uc3QgY2hhciAqLCAuLi4pOworK3ZvaWQgKmZuMiAodm9pZCk7CisraW50IGZuMyAo Y2hhciAqLCBpbnQpOworK2ludCBmbjQgKGNvbnN0IHZvaWQgKik7CisraW50IGZuNSAoY29uc3Qg dm9pZCAqKTsKKytsb25nIGZuNiAodm9pZCkgX19hdHRyaWJ1dGVfXyAoKF9fY29uc3RfXykpOwor K2ludCBmbjcgKHZvaWQgKiwgdm9pZCAqLCB2b2lkICopOworK3ZvaWQgKmZuOCAodm9pZCAqLCBs b25nKTsKKyt2b2lkICpmbjkgKHZvaWQgKiwgbG9uZywgY29uc3QgY2hhciAqLCAuLi4pOworK3Zv aWQgKmZuMTAgKHZvaWQgKik7CisrbG9uZyBmbjExICh2b2lkKSBfX2F0dHJpYnV0ZV9fICgoX19j b25zdF9fKSk7CisrbG9uZyBmbjEyICh2b2lkICosIGNvbnN0IGNoYXIgKiwgVDEsIFQyLCB2b2lk ICopOworK3ZvaWQgKmZuMTMgKHZvaWQgKik7CisrbG9uZyBmbjE0ICh2b2lkKSBfX2F0dHJpYnV0 ZV9fICgoX19jb25zdF9fKSk7CisrZXh0ZXJuIHZvaWQgKnYxOworK2V4dGVybiBjaGFyICp2MjsK KytleHRlcm4gaW50IHYzOworKworK3ZvaWQKKytmb28gKHZvaWQgKngsIGNoYXIgKnopCisrewor KyAgdm9pZCAqaTEsICppMjsKKysgIGludCB5OworKyAgaWYgKHYxKQorKyAgICByZXR1cm47Cisr ICB2MSA9IGZuOSAoZm4xMCAoZm4yICgpKSwgZm42ICgpLCAieCIsIDAuLCAieSIsIDAuLCAwKTsK KysgIHkgPSA1MjAgLSAoNTIwIC0gZm40ICh4KSkgLyAyOworKyAgZm45IChmbjggKHYxLCBmbjYg KCkpLCBmbjYgKCksICJ3aWciLCBmbjggKHYxLCBmbjE0ICgpKSwgIngiLCAxOC4wLAorKyAgICAg ICAieSIsIDE2LjAsICJ3aWQiLCA4MC4wLCAiaGkiLCA1MDAuMCwgMCk7CisrICBmbjkgKGZuMTAg KHYxKSwgZm42ICgpLCAieDEiLCAwLiwgInkxIiwgMC4sICJ4MiIsIDgwLjAsICJ5MiIsCisrICAg ICAgIDUwMC4wLCAiZiIsIGZuMyAoImZmZiIsIDB4MEQwREZBMDApLCAwKTsKKysgIGZuMTMgKCgo UyAqKSBmbjggKHYxLCBmbjYgKCkpKS0+cyk7CisrICBmbjEyIChmbjggKHYxLCBmbjExICgpKSwg ImV2IiwgKFQxKSBmbjcsIDAsIGZuOCAodjEsIGZuNiAoKSkpOworKyAgZm45IChmbjggKHYxLCBm bjYgKCkpLCBmbjYgKCksICJ3aWciLAorKyAgICAgICBmbjggKHYxLCBmbjE0ICgpKSwgIngiLCAx MTEuMCwgInkiLCAxNC4wLCAid2lkIiwgNzc0LjAsICJoaSIsCisrICAgICAgIDUwMC4wLCAwKTsK KysgIHYxID0gZm45IChmbjEwICh2MSksIGZuNiAoKSwgIngxIiwgMC4sICJ5MSIsIDAuLCAieDIi LCA3NzQuMCwgInkyIiwKKysgICAgICAgICAgICA1MDAuMCwgImYiLCBmbjMgKCJnYyIsIDB4MEQw REZBMDApLCAwKTsKKysgIGZuMSAoeiwgMCk7CisrICBpMSA9IGZuOSAoZm44ICh2MSwgZm42ICgp KSwgZm42ICgpLCAicGl4YnVmIiwgeCwgIngiLAorKyAgICAgICAgICAgIDgwMCAtIGZuNSAoeCkg LyAyLCAieSIsIHkgLSBmbjQgKHgpLCAwKTsKKysgIGZuMTIgKGZuOCAoaTEsIGZuMTEgKCkpLCAi ZXYiLCAoVDEpIGZuNywgMCwgIi9vay8iKTsKKysgIGZuMTIgKGZuOCAoaTEsIGZuMTEgKCkpLCAi ZXYiLCAoVDEpIGZuNywgMCwgMCk7CisrICBpMiA9IGZuOSAoZm44ICh2MSwgZm42ICgpKSwgZm42 ICgpLCAidHh0IiwgIk9LIiwgImZudCIsIHYyLCAieCIsCisrICAgICAgICAgICAgODAwLCAieSIs IHkgLSBmbjQgKHgpICsgMTUsICJhciIsIDAsICJmIiwgdjMsIDApOworK30KIC0tLSBnY2MvdGVz dHN1aXRlL2djYy50YXJnZXQvcG93ZXJwYy92c3gtdmVjdG9yLTMuYwkoLi4uL3RydW5rKQkocmV2 aXNpb24gMCkKLSsrKyBnY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvcG93ZXJwYy92c3gtdmVjdG9y LTMuYwkoLi4uL2JyYW5jaGVzL2libS9wb3dlcjctbWVpc3NuZXIpCShyZXZpc2lvbiAxNDQ3MzAp CisrKysgZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L3Bvd2VycGMvdnN4LXZlY3Rvci0zLmMJKC4u Li9icmFuY2hlcy9pYm0vcG93ZXI3LW1laXNzbmVyKQkocmV2aXNpb24gMTQ2MDI3KQogQEAgLTAs MCArMSw0OCBAQAogKy8qIHsgZGctZG8gY29tcGlsZSB7IHRhcmdldCB7IHBvd2VycGMqLSotKiAm JiBscDY0IH0gfSB9ICovCiArLyogeyBkZy1za2lwLWlmICIiIHsgcG93ZXJwYyotKi1kYXJ3aW4q IH0geyAiKiIgfSB7ICIiIH0gfSAqLwpAQCAtMTI3Niw4ICsxNzAzLDUzIEBAIHRlc3RzdWl0ZS8K ICt7CiArICBhID0gYiAvIGM7CiArfQorLS0tIGdjYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9wb3dl cnBjL3ZzeC1idWlsdGluLTEuYwkoLi4uL3RydW5rKQkocmV2aXNpb24gMCkKKysrKyBnY2MvdGVz dHN1aXRlL2djYy50YXJnZXQvcG93ZXJwYy92c3gtYnVpbHRpbi0xLmMJKC4uLi9icmFuY2hlcy9p Ym0vcG93ZXI3LW1laXNzbmVyKQkocmV2aXNpb24gMTQ2MDI3KQorQEAgLTAsMCArMSw0MiBAQAor Ky8qIHsgZGctZG8gY29tcGlsZSB7IHRhcmdldCB7IHBvd2VycGMqLSotKiB9IH0gfSAqLworKy8q IHsgZGctc2tpcC1pZiAiIiB7IHBvd2VycGMqLSotZGFyd2luKiB9IHsgIioiIH0geyAiIiB9IH0g Ki8KKysvKiB7IGRnLXJlcXVpcmUtZWZmZWN0aXZlLXRhcmdldCBwb3dlcnBjX3ZzeF9vayB9ICov CisrLyogeyBkZy1vcHRpb25zICItTzIgLW1jcHU9cG93ZXI3IiB9ICovCisrLyogeyBkZy1maW5h bCB7IHNjYW4tYXNzZW1ibGVyICJ4dmFkZGRwIiB9IH0gKi8KKysvKiB7IGRnLWZpbmFsIHsgc2Nh bi1hc3NlbWJsZXIgInh2c3ViZHAiIH0gfSAqLworKy8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2Vt YmxlciAieHZtdWxkcCIgfSB9ICovCisrLyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyICJ4 dm1hZGQiIH0gfSAqLworKy8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlciAieHZtc3ViIiB9 IH0gKi8KKysvKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXIgInh2bm1hZGQiIH0gfSAqLwor Ky8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlciAieHZubXN1YiIgfSB9ICovCisrLyogeyBk Zy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyICJ4dmRpdmRwIiB9IH0gKi8KKysvKiB7IGRnLWZpbmFs IHsgc2Nhbi1hc3NlbWJsZXIgInh2bWF4ZHAiIH0gfSAqLworKy8qIHsgZGctZmluYWwgeyBzY2Fu LWFzc2VtYmxlciAieHZtaW5kcCIgfSB9ICovCisrLyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1i bGVyICJ4dnNxcnRkcCIgfSB9ICovCisrLyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyICJ4 dnJzcXJ0ZWRwIiB9IH0gKi8KKysvKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXIgInh2dHNx cnRkcCIgfSB9ICovCisrLyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyICJ4dmFic2RwIiB9 IH0gKi8KKysvKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXIgInh2bmFic2RwIiB9IH0gKi8K KysvKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXIgInh2cmVkcCIgfSB9ICovCisrLyogeyBk Zy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyICJ4dnRkaXZkcCIgfSB9ICovCisrCisrdm9pZCB1c2Vf YnVpbHRpbnMgKF9fdmVjdG9yIGRvdWJsZSAqcCwgX192ZWN0b3IgZG91YmxlICpxLCBfX3ZlY3Rv ciBkb3VibGUgKnIsIF9fdmVjdG9yIGRvdWJsZSAqcykKKyt7CisrICBwWzBdID0gX19idWlsdGlu X3ZzeF94dmFkZGRwIChxWzBdLCByWzBdKTsKKysgIHBbMV0gPSBfX2J1aWx0aW5fdnN4X3h2c3Vi ZHAgKHFbMV0sIHJbMV0pOworKyAgcFsyXSA9IF9fYnVpbHRpbl92c3hfeHZtdWxkcCAocVsyXSwg clsyXSk7CisrICBwWzNdID0gX19idWlsdGluX3ZzeF94dmRpdmRwIChxWzNdLCByWzNdKTsKKysg IHBbNF0gPSBfX2J1aWx0aW5fdnN4X3h2bWF4ZHAgKHFbNF0sIHJbNF0pOworKyAgcFs1XSA9IF9f YnVpbHRpbl92c3hfeHZtaW5kcCAocVs1XSwgcls1XSk7CisrICBwWzZdID0gX19idWlsdGluX3Zz eF94dmFic2RwIChxWzZdKTsKKysgIHBbN10gPSBfX2J1aWx0aW5fdnN4X3h2bmFic2RwIChxWzdd KTsKKysgIHBbOF0gPSBfX2J1aWx0aW5fdnN4X3h2c3FydGRwIChxWzhdKTsKKysgIHBbOV0gPSBf X2J1aWx0aW5fdnN4X3h2bWFkZGRwIChxWzldLCByWzldLCBzWzldKTsKKysgIHBbMTBdID0gX19i dWlsdGluX3ZzeF94dm1zdWJkcCAocVsxMF0sIHJbMTBdLCBzWzEwXSk7CisrICBwWzExXSA9IF9f YnVpbHRpbl92c3hfeHZubWFkZGRwIChxWzExXSwgclsxMV0sIHNbMTFdKTsKKysgIHBbMTJdID0g X19idWlsdGluX3ZzeF94dm5tc3ViZHAgKHFbMTJdLCByWzEyXSwgc1sxMl0pOworKyAgcFsxM10g PSBfX2J1aWx0aW5fdnN4X3h2cmVkcCAocVsxM10pOworKyAgcFsxNF0gPSBfX2J1aWx0aW5fdnN4 X3h2cnNxcnRlZHAgKHFbMTRdKTsKKysgIHBbMTVdID0gX19idWlsdGluX3ZzeF94dnRzcXJ0ZHAg KHFbMTVdKTsKKysgIHBbMTZdID0gX19idWlsdGluX3ZzeF94dnRkaXZkcCAocVsxNl0sIHJbMTZd KTsKKyt9CiAtLS0gZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L3Bvd2VycGMvcG9wY291bnQtMi5j CSguLi4vdHJ1bmspCShyZXZpc2lvbiAwKQotKysrIGdjYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9w b3dlcnBjL3BvcGNvdW50LTIuYwkoLi4uL2JyYW5jaGVzL2libS9wb3dlcjctbWVpc3NuZXIpCShy ZXZpc2lvbiAxNDQ3MzApCisrKysgZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L3Bvd2VycGMvcG9w Y291bnQtMi5jCSguLi4vYnJhbmNoZXMvaWJtL3Bvd2VyNy1tZWlzc25lcikJKHJldmlzaW9uIDE0 NjAyNykKIEBAIC0wLDAgKzEsOSBAQAogKy8qIHsgZGctZG8gY29tcGlsZSB7IHRhcmdldCB7IGls cDMyIH0gfSB9ICovCiArLyogeyBkZy1za2lwLWlmICIiIHsgcG93ZXJwYyotKi1kYXJ3aW4qIH0g eyAiKiIgfSB7ICIiIH0gfSAqLwpAQCAtMTI4OSw3ICsxNzYxLDcgQEAgdGVzdHN1aXRlLwogKyAg cmV0dXJuIF9fYnVpbHRpbl9wb3Bjb3VudCh4KTsKICt9CiAtLS0gZ2NjL3Rlc3RzdWl0ZS9nY2Mu dGFyZ2V0L3Bvd2VycGMvdnN4LXZlY3Rvci00LmMJKC4uLi90cnVuaykJKHJldmlzaW9uIDApCi0r KysgZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L3Bvd2VycGMvdnN4LXZlY3Rvci00LmMJKC4uLi9i cmFuY2hlcy9pYm0vcG93ZXI3LW1laXNzbmVyKQkocmV2aXNpb24gMTQ0NzMwKQorKysrIGdjYy90 ZXN0c3VpdGUvZ2NjLnRhcmdldC9wb3dlcnBjL3ZzeC12ZWN0b3ItNC5jCSguLi4vYnJhbmNoZXMv aWJtL3Bvd2VyNy1tZWlzc25lcikJKHJldmlzaW9uIDE0NjAyNykKIEBAIC0wLDAgKzEsNDggQEAK ICsvKiB7IGRnLWRvIGNvbXBpbGUgeyB0YXJnZXQgeyBwb3dlcnBjKi0qLSogJiYgbHA2NCB9IH0g fSAqLwogKy8qIHsgZGctc2tpcC1pZiAiIiB7IHBvd2VycGMqLSotZGFyd2luKiB9IHsgIioiIH0g eyAiIiB9IH0gKi8KQEAgLTEzMzksOCArMTgxMSw4IEBAIHRlc3RzdWl0ZS8KICt7CiArICBhID0g YiAvIGM7CiArfQotLS0tIGdjYy90ZXN0c3VpdGUvZ2NjLmRnL3ZteC92bXguZXhwCSguLi4vdHJ1 bmspCShyZXZpc2lvbiAxNDQ1NTcpCi0rKysgZ2NjL3Rlc3RzdWl0ZS9nY2MuZGcvdm14L3ZteC5l eHAJKC4uLi9icmFuY2hlcy9pYm0vcG93ZXI3LW1laXNzbmVyKQkocmV2aXNpb24gMTQ0NzMwKQor LS0tIGdjYy90ZXN0c3VpdGUvZ2NjLmRnL3ZteC92bXguZXhwCSguLi4vdHJ1bmspCShyZXZpc2lv biAxNDU3NzcpCisrKysgZ2NjL3Rlc3RzdWl0ZS9nY2MuZGcvdm14L3ZteC5leHAJKC4uLi9icmFu Y2hlcy9pYm0vcG93ZXI3LW1laXNzbmVyKQkocmV2aXNpb24gMTQ2MDI3KQogQEAgLTMxLDcgKzMx LDcgQEAgaWYgeyFbaXN0YXJnZXQgcG93ZXJwYyotKi0qXQogICMgbm90aGluZyBidXQgZXh0ZW5z aW9ucy4KICBnbG9iYWwgREVGQVVMVF9WTVhDRkxBR1MKQEAgLTEzNTAsOCArMTgyMiw4IEBAIHRl c3RzdWl0ZS8KICB9CiAgCiAgIyBJZiB0aGUgdGFyZ2V0IHN5c3RlbSBzdXBwb3J0cyBBbHRpVmVj IGluc3RydWN0aW9ucywgdGhlIGRlZmF1bHQgYWN0aW9uCi0tLS0gZ2NjL3Rlc3RzdWl0ZS9saWIv dGFyZ2V0LXN1cHBvcnRzLmV4cAkoLi4uL3RydW5rKQkocmV2aXNpb24gMTQ0NTU3KQotKysrIGdj Yy90ZXN0c3VpdGUvbGliL3RhcmdldC1zdXBwb3J0cy5leHAJKC4uLi9icmFuY2hlcy9pYm0vcG93 ZXI3LW1laXNzbmVyKQkocmV2aXNpb24gMTQ0NzMwKQorLS0tIGdjYy90ZXN0c3VpdGUvbGliL3Rh cmdldC1zdXBwb3J0cy5leHAJKC4uLi90cnVuaykJKHJldmlzaW9uIDE0NTc3NykKKysrKyBnY2Mv dGVzdHN1aXRlL2xpYi90YXJnZXQtc3VwcG9ydHMuZXhwCSguLi4vYnJhbmNoZXMvaWJtL3Bvd2Vy Ny1tZWlzc25lcikJKHJldmlzaW9uIDE0NjAyNykKIEBAIC04NzMsNiArODczLDMyIEBAIHByb2Mg Y2hlY2tfc3NlMl9od19hdmFpbGFibGUgeyB9IHsKICAgICAgfV0KICB9CkBAIC0xNDM2LDkgKzE5 MDgsOSBAQCB0ZXN0c3VpdGUvCiAgIyBSZXR1cm4gMSBpZiB0aGlzIGlzIGEgUG93ZXJQQyB0YXJn ZXQgc3VwcG9ydGluZyAtbWNwdT1jZWxsLgogIAogIHByb2MgY2hlY2tfZWZmZWN0aXZlX3Rhcmdl dF9wb3dlcnBjX3BwdV9vayB7IH0gewotLS0tIGdjYy9jb25maWcuaW4JKC4uLi90cnVuaykJKHJl dmlzaW9uIDE0NDU1NykKLSsrKyBnY2MvY29uZmlnLmluCSguLi4vYnJhbmNoZXMvaWJtL3Bvd2Vy Ny1tZWlzc25lcikJKHJldmlzaW9uIDE0NDczMCkKLUBAIC0zMzQsMTIgKzMzNCwxOCBAQAorLS0t IGdjYy9jb25maWcuaW4JKC4uLi90cnVuaykJKHJldmlzaW9uIDE0NTc3NykKKysrKyBnY2MvY29u ZmlnLmluCSguLi4vYnJhbmNoZXMvaWJtL3Bvd2VyNy1tZWlzc25lcikJKHJldmlzaW9uIDE0NjAy NykKK0BAIC0zMjcsMTIgKzMyNywxOCBAQAogICNlbmRpZgogIAogIApAQCAtMTQ1OCwxOCArMTkz MCw5IEBAIHRlc3RzdWl0ZS8KICAvKiBEZWZpbmUgaWYgeW91ciBhc3NlbWJsZXIgc3VwcG9ydHMg LnJlZ2lzdGVyLiAqLwogICNpZm5kZWYgVVNFRF9GT1JfVEFSR0VUCiAgI3VuZGVmIEhBVkVfQVNf UkVHSVNURVJfUFNFVURPX09QCi0tLS0gZ2NjL2NvbmZpZ3VyZS5hYwkoLi4uL3RydW5rKQkocmV2 aXNpb24gMTQ0NTU3KQotKysrIGdjYy9jb25maWd1cmUuYWMJKC4uLi9icmFuY2hlcy9pYm0vcG93 ZXI3LW1laXNzbmVyKQkocmV2aXNpb24gMTQ0NzMwKQotQEAgLTIsNyArMiw3IEBACi0gIyBQcm9j ZXNzIHRoaXMgZmlsZSB3aXRoIGF1dG9jb25mIHRvIGdlbmVyYXRlIGEgY29uZmlndXJhdGlvbiBz Y3JpcHQuCi0gCi0gIyBDb3B5cmlnaHQgMTk5NywgMTk5OCwgMTk5OSwgMjAwMCwgMjAwMSwgMjAw MiwgMjAwMywgMjAwNCwgMjAwNSwgMjAwNiwKLS0jIDIwMDcsIDIwMDggRnJlZSBTb2Z0d2FyZSBG b3VuZGF0aW9uLCBJbmMuCi0rIyAyMDA3LCAyMDA4LCAyMDA5IEZyZWUgU29mdHdhcmUgRm91bmRh dGlvbiwgSW5jLgotIAotICNUaGlzIGZpbGUgaXMgcGFydCBvZiBHQ0MuCi0gCi1AQCAtMzA4MCw3 ICszMDgwLDcgQEAgZm9vOglub3AKKy0tLSBnY2MvY29uZmlndXJlLmFjCSguLi4vdHJ1bmspCShy ZXZpc2lvbiAxNDU3NzcpCisrKysgZ2NjL2NvbmZpZ3VyZS5hYwkoLi4uL2JyYW5jaGVzL2libS9w b3dlcjctbWVpc3NuZXIpCShyZXZpc2lvbiAxNDYwMjcpCitAQCAtMzA1NCw3ICszMDU0LDcgQEAg Zm9vOglub3AKICAgICAgZXNhYwogIAogICAgICBnY2NfR0FTX0NIRUNLX0ZFQVRVUkUoW21vdmUg ZnAgZ3ByIHN1cHBvcnRdLApAQCAtMTQ3OCw3ICsxOTQxLDcgQEAgdGVzdHN1aXRlLwogICAgICAg IFskY29uZnRlc3Rfc10sLAogICAgICAgIFtBQ19ERUZJTkUoSEFWRV9BU19NRlBHUFIsIDEsCiAg CSAgW0RlZmluZSBpZiB5b3VyIGFzc2VtYmxlciBzdXBwb3J0cyBtZmZncHIgYW5kIG1mdGdwci5d KV0pCi1AQCAtMzExNCw3ICszMTE0LDcgQEAgTENGMDoKK0BAIC0zMDg4LDcgKzMwODgsNyBAQCBM Q0YwOgogICAgICBlc2FjCiAgCiAgICAgIGdjY19HQVNfQ0hFQ0tfRkVBVFVSRShbY29tcGFyZSBi eXRlcyBzdXBwb3J0XSwKQEAgLTE0ODcsNyArMTk1MCw3IEBAIHRlc3RzdWl0ZS8KICAgICAgICBb JGNvbmZ0ZXN0X3NdLCwKICAgICAgICBbQUNfREVGSU5FKEhBVkVfQVNfQ01QQiwgMSwKICAJICBb RGVmaW5lIGlmIHlvdXIgYXNzZW1ibGVyIHN1cHBvcnRzIGNtcGIuXSldKQotQEAgLTMxMjksNyAr MzEyOSw3IEBAIExDRjA6CitAQCAtMzEwMyw3ICszMTAzLDcgQEAgTENGMDoKICAgICAgZXNhYwog IAogICAgICBnY2NfR0FTX0NIRUNLX0ZFQVRVUkUoW2RlY2ltYWwgZmxvYXQgc3VwcG9ydF0sCkBA IC0xNDk2LDcgKzE5NTksNyBAQCB0ZXN0c3VpdGUvCiAgICAgICAgWyRjb25mdGVzdF9zXSwsCiAg ICAgICAgW0FDX0RFRklORShIQVZFX0FTX0RGUCwgMSwKICAJICBbRGVmaW5lIGlmIHlvdXIgYXNz ZW1ibGVyIHN1cHBvcnRzIERGUCBpbnN0cnVjdGlvbnMuXSldKQotQEAgLTMxNDQsMTEgKzMxNDQs MjYgQEAgTENGMDoKK0BAIC0zMTE4LDExICszMTE4LDI2IEBAIExDRjA6CiAgICAgIGVzYWMKICAK ICAgICAgZ2NjX0dBU19DSEVDS19GRUFUVVJFKFt2ZWN0b3Itc2NhbGFyIHN1cHBvcnRdLApAQCAt MTUyNCw5OSArMTk4Nyw4IEBAIHRlc3RzdWl0ZS8KICAgICAgZ2NjX0dBU19DSEVDS19GRUFUVVJF KFsuZ251X2F0dHJpYnV0ZSBzdXBwb3J0XSwKICAgICAgICBnY2NfY3ZfYXNfcG93ZXJwY19nbnVf YXR0cmlidXRlLCBbMiwxOCwwXSwsCiAgICAgICAgWy5nbnVfYXR0cmlidXRlIDQsMV0sLAotLS0t IGdjYy9jb25maWd1cmUJKC4uLi90cnVuaykJKHJldmlzaW9uIDE0NDU1NykKLSsrKyBnY2MvY29u ZmlndXJlCSguLi4vYnJhbmNoZXMvaWJtL3Bvd2VyNy1tZWlzc25lcikJKHJldmlzaW9uIDE0NDcz MCkKLUBAIC0yMzIyNSw3ICsyMzIyNSw3IEBAIGlmIHRlc3QgIiR7Z2NjX2N2X2FzX3Bvd2VycGNf bWZwZ3ByK3NldH0KLSBlbHNlCi0gICBnY2NfY3ZfYXNfcG93ZXJwY19tZnBncHI9bm8KLSAgICAg aWYgdGVzdCAkaW5fdHJlZV9nYXMgPSB5ZXM7IHRoZW4KLS0gICAgaWYgdGVzdCAkZ2NjX2N2X2dh c192ZXJzIC1nZSBgZXhwciBcKCBcKCA5IFwqIDEwMDAgXCkgKyA5OSBcKSBcKiAxMDAwICsgMGAK LSsgICAgaWYgdGVzdCAkZ2NjX2N2X2dhc192ZXJzIC1nZSBgZXhwciBcKCBcKCAyIFwqIDEwMDAg XCkgKyAxOSBcKSBcKiAxMDAwICsgMmAKLSAgIHRoZW4gZ2NjX2N2X2FzX3Bvd2VycGNfbWZwZ3By PXllcwotIGZpCi0gICBlbGlmIHRlc3QgeCRnY2NfY3ZfYXMgIT0geDsgdGhlbgotQEAgLTIzMzIx LDcgKzIzMzIxLDcgQEAgaWYgdGVzdCAiJHtnY2NfY3ZfYXNfcG93ZXJwY19jbXBiK3NldH0iIAot IGVsc2UKLSAgIGdjY19jdl9hc19wb3dlcnBjX2NtcGI9bm8KLSAgICAgaWYgdGVzdCAkaW5fdHJl ZV9nYXMgPSB5ZXM7IHRoZW4KLS0gICAgaWYgdGVzdCAkZ2NjX2N2X2dhc192ZXJzIC1nZSBgZXhw ciBcKCBcKCA5IFwqIDEwMDAgXCkgKyA5OSBcKSBcKiAxMDAwICsgMGAKLSsgICAgaWYgdGVzdCAk Z2NjX2N2X2dhc192ZXJzIC1nZSBgZXhwciBcKCBcKCAyIFwqIDEwMDAgXCkgKyAxOSBcKSBcKiAx MDAwICsgMmAKLSAgIHRoZW4gZ2NjX2N2X2FzX3Bvd2VycGNfY21wYj15ZXMKLSBmaQotICAgZWxp ZiB0ZXN0IHgkZ2NjX2N2X2FzICE9IHg7IHRoZW4KLUBAIC0yMzM2Nyw3ICsyMzM2Nyw3IEBAIGlm IHRlc3QgIiR7Z2NjX2N2X2FzX3Bvd2VycGNfZGZwK3NldH0iID0KLSBlbHNlCi0gICBnY2NfY3Zf YXNfcG93ZXJwY19kZnA9bm8KLSAgICAgaWYgdGVzdCAkaW5fdHJlZV9nYXMgPSB5ZXM7IHRoZW4K LS0gICAgaWYgdGVzdCAkZ2NjX2N2X2dhc192ZXJzIC1nZSBgZXhwciBcKCBcKCA5IFwqIDEwMDAg XCkgKyA5OSBcKSBcKiAxMDAwICsgMGAKLSsgICAgaWYgdGVzdCAkZ2NjX2N2X2dhc192ZXJzIC1n ZSBgZXhwciBcKCBcKCAyIFwqIDEwMDAgXCkgKyAxOSBcKSBcKiAxMDAwICsgMmAKLSAgIHRoZW4g Z2NjX2N2X2FzX3Bvd2VycGNfZGZwPXllcwotIGZpCi0gICBlbGlmIHRlc3QgeCRnY2NfY3ZfYXMg IT0geDsgdGhlbgotQEAgLTIzNDEzLDcgKzIzNDEzLDcgQEAgaWYgdGVzdCAiJHtnY2NfY3ZfYXNf cG93ZXJwY192c3grc2V0fSIgPQotIGVsc2UKLSAgIGdjY19jdl9hc19wb3dlcnBjX3ZzeD1ubwot ICAgICBpZiB0ZXN0ICRpbl90cmVlX2dhcyA9IHllczsgdGhlbgotLSAgICBpZiB0ZXN0ICRnY2Nf Y3ZfZ2FzX3ZlcnMgLWdlIGBleHByIFwoIFwoIDkgXCogMTAwMCBcKSArIDk5IFwpIFwqIDEwMDAg KyAwYAotKyAgICBpZiB0ZXN0ICRnY2NfY3ZfZ2FzX3ZlcnMgLWdlIGBleHByIFwoIFwoIDIgXCog MTAwMCBcKSArIDE5IFwpIFwqIDEwMDAgKyAyYAotICAgdGhlbiBnY2NfY3ZfYXNfcG93ZXJwY192 c3g9eWVzCi0gZmkKLSAgIGVsaWYgdGVzdCB4JGdjY19jdl9hcyAhPSB4OyB0aGVuCi1AQCAtMjM0 NDMsNiArMjM0NDMsNTIgQEAgX0FDRU9GCi0gCi0gZmkKLSAKLSsgICAgY2FzZSAkdGFyZ2V0IGlu Ci0rICAgICAgKi0qLWFpeCopIGNvbmZ0ZXN0X3M9JwkubWFjaGluZSAicHdyNyIKLSsJLmNzZWN0 IC50ZXh0W1BSXQotKwlwb3BjbnRkIDMsMyc7OwotKyAgICAgICopIGNvbmZ0ZXN0X3M9JwkubWFj aGluZSBwb3dlcjcKLSsJLnRleHQKLSsJcG9wY250ZCAzLDMnOzsKLSsgICAgZXNhYwotKwotKyAg ICBlY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgYXNzZW1ibGVyIGZvciBwb3BjbnRkIHN1 cHBvcnQiID4mNQotK2VjaG8gJEVDSE9fTiAiY2hlY2tpbmcgYXNzZW1ibGVyIGZvciBwb3BjbnRk IHN1cHBvcnQuLi4gJEVDSE9fQyIgPiY2Ci0raWYgdGVzdCAiJHtnY2NfY3ZfYXNfcG93ZXJwY19w b3BjbnRkK3NldH0iID0gc2V0OyB0aGVuCi0rICBlY2hvICRFQ0hPX04gIihjYWNoZWQpICRFQ0hP X0MiID4mNgotK2Vsc2UKLSsgIGdjY19jdl9hc19wb3dlcnBjX3BvcGNudGQ9bm8KLSsgICAgaWYg dGVzdCAkaW5fdHJlZV9nYXMgPSB5ZXM7IHRoZW4KLSsgICAgaWYgdGVzdCAkZ2NjX2N2X2dhc192 ZXJzIC1nZSBgZXhwciBcKCBcKCAyIFwqIDEwMDAgXCkgKyAxOSBcKSBcKiAxMDAwICsgMmAKLSsg IHRoZW4gZ2NjX2N2X2FzX3Bvd2VycGNfcG9wY250ZD15ZXMKLStmaQotKyAgZWxpZiB0ZXN0IHgk Z2NjX2N2X2FzICE9IHg7IHRoZW4KLSsgICAgZWNobyAiJGNvbmZ0ZXN0X3MiID4gY29uZnRlc3Qu cwotKyAgICBpZiB7IGFjX3RyeT0nJGdjY19jdl9hcyAtYTMyIC1vIGNvbmZ0ZXN0Lm8gY29uZnRl c3QucyA+JjUnCi0rICB7IChldmFsIGVjaG8gIiRhc19tZTokTElORU5POiBcIiRhY190cnlcIiIp ID4mNQotKyAgKGV2YWwgJGFjX3RyeSkgMj4mNQotKyAgYWNfc3RhdHVzPSQ/Ci0rICBlY2hvICIk YXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1Ci0rICAoZXhpdCAkYWNfc3RhdHVz KTsgfTsgfQotKyAgICB0aGVuCi0rCWdjY19jdl9hc19wb3dlcnBjX3BvcGNudGQ9eWVzCi0rICAg IGVsc2UKLSsgICAgICBlY2hvICJjb25maWd1cmU6IGZhaWxlZCBwcm9ncmFtIHdhcyIgPiY1Ci0r ICAgICAgY2F0IGNvbmZ0ZXN0LnMgPiY1Ci0rICAgIGZpCi0rICAgIHJtIC1mIGNvbmZ0ZXN0Lm8g Y29uZnRlc3QucwotKyAgZmkKLStmaQotK2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6ICRn Y2NfY3ZfYXNfcG93ZXJwY19wb3BjbnRkIiA+JjUKLStlY2hvICIke0VDSE9fVH0kZ2NjX2N2X2Fz X3Bvd2VycGNfcG9wY250ZCIgPiY2Ci0raWYgdGVzdCAkZ2NjX2N2X2FzX3Bvd2VycGNfcG9wY250 ZCA9IHllczsgdGhlbgotKwotK2NhdCA+PmNvbmZkZWZzLmggPDxcX0FDRU9GCi0rI2RlZmluZSBI QVZFX0FTX1BPUENOVEQgMQotK19BQ0VPRgotKwotK2ZpCi0rCi0gICAgIGVjaG8gIiRhc19tZTok TElORU5POiBjaGVja2luZyBhc3NlbWJsZXIgZm9yIC5nbnVfYXR0cmlidXRlIHN1cHBvcnQiID4m NQotIGVjaG8gJEVDSE9fTiAiY2hlY2tpbmcgYXNzZW1ibGVyIGZvciAuZ251X2F0dHJpYnV0ZSBz dXBwb3J0Li4uICRFQ0hPX0MiID4mNgotIGlmIHRlc3QgIiR7Z2NjX2N2X2FzX3Bvd2VycGNfZ251 X2F0dHJpYnV0ZStzZXR9IiA9IHNldDsgdGhlbgotLS0tIGdjYy9jb25maWcvcnM2MDAwL2FpeDUz LmgJKC4uLi90cnVuaykJKHJldmlzaW9uIDE0NDU1NykKLSsrKyBnY2MvY29uZmlnL3JzNjAwMC9h aXg1My5oCSguLi4vYnJhbmNoZXMvaWJtL3Bvd2VyNy1tZWlzc25lcikJKHJldmlzaW9uIDE0NDcz MCkKKy0tLSBnY2MvY29uZmlnL3JzNjAwMC9haXg1My5oCSguLi4vdHJ1bmspCShyZXZpc2lvbiAx NDU3NzcpCisrKysgZ2NjL2NvbmZpZy9yczYwMDAvYWl4NTMuaAkoLi4uL2JyYW5jaGVzL2libS9w b3dlcjctbWVpc3NuZXIpCShyZXZpc2lvbiAxNDYwMjcpCiBAQCAtNTcsMjAgKzU3LDI0IEBAIGRv IHsJCQkJCQkJCQlcCiAgI3VuZGVmIEFTTV9TUEVDCiAgI2RlZmluZSBBU01fU1BFQyAiLXUgJXtt YWl4NjQ6LWE2NCAleyFtY3B1KjotbXBwYzY0fX0gJShhc21fY3B1KSIKQEAgLTE2NDUsOCArMjAx Nyw4IEBAIHRlc3RzdWl0ZS8KICAle21jcHU9cnM2NGE6IC1tcHBjfSBcCiAgJXttY3B1PTYwMzog LW02MDN9IFwKIC0tLSBnY2MvY29uZmlnL3JzNjAwMC92ZWN0b3IubWQJKC4uLi90cnVuaykJKHJl dmlzaW9uIDApCi0rKysgZ2NjL2NvbmZpZy9yczYwMDAvdmVjdG9yLm1kCSguLi4vYnJhbmNoZXMv aWJtL3Bvd2VyNy1tZWlzc25lcikJKHJldmlzaW9uIDE0NDczMCkKLUBAIC0wLDAgKzEsNTE4IEBA CisrKysgZ2NjL2NvbmZpZy9yczYwMDAvdmVjdG9yLm1kCSguLi4vYnJhbmNoZXMvaWJtL3Bvd2Vy Ny1tZWlzc25lcikJKHJldmlzaW9uIDE0NjAyNykKK0BAIC0wLDAgKzEsNjY0IEBACiArOzsgRXhw YW5kZXIgZGVmaW5pdGlvbnMgZm9yIHZlY3RvciBzdXBwb3J0IGJldHdlZW4gYWx0aXZlYyAmIHZz eC4gIE5vCiArOzsgaW5zdHJ1Y3Rpb25zIGFyZSBpbiB0aGlzIGZpbGUsIHRoaXMgZmlsZSBwcm92 aWRlcyB0aGUgZ2VuZXJpYyB2ZWN0b3IKICs7OyBleHBhbmRlciwgYW5kIHRoZSBhY3R1YWwgdmVj dG9yIGluc3RydWN0aW9ucyB3aWxsIGJlIGluIGFsdGl2ZWMubWQgYW5kCkBAIC0xNjg4LDYgKzIw NjAsOSBAQCB0ZXN0c3VpdGUvCiArOzsgVmVjdG9yIGNvbXBhcmlzb24gbW9kZXMKICsoZGVmaW5l X21vZGVfaXRlcmF0b3IgVkVDX0MgW1YxNlFJIFY4SEkgVjRTSSBWNFNGIFYyREZdKQogKworKzs7 IFZlY3RvciByZWxvYWQgaXRlcmF0b3IKKysoZGVmaW5lX21vZGVfaXRlcmF0b3IgVkVDX1IgW1Yx NlFJIFY4SEkgVjRTSSBWMkRJIFY0U0YgVjJERiBERiBUSV0pCisrCiArOzsgQmFzZSB0eXBlIGZy b20gdmVjdG9yIG1vZGUKICsoZGVmaW5lX21vZGVfYXR0ciBWRUNfYmFzZSBbKFYxNlFJICJRSSIp CiArCQkJICAgIChWOEhJICAiSEkiKQpAQCAtMTcxMCwxNSArMjA4NSwxNiBAQCB0ZXN0c3VpdGUv CiArCShtYXRjaF9vcGVyYW5kOlZFQ19NIDEgImFueV9vcGVyYW5kIiAiIikpXQogKyAgIlZFQ1RP Ul9NRU1fQUxUSVZFQ19PUl9WU1hfUCAoPE1PREU+bW9kZSkiCiArewotKyAgLyogbW9kZXMgd2l0 aG91dCBzcGVjaWFsIGhhbmRsaW5nIGp1c3QgZ2VuZXJhdGUgdGhlIG5vcm1hbCBTRVQgb3BlcmF0 aW9uLiAgKi8KLSsgIGlmICg8TU9ERT5tb2RlICE9IFRJbW9kZSAmJiA8TU9ERT5tb2RlICE9IFYy REltb2RlICYmIDxNT0RFPm1vZGUgIT0gVjJERm1vZGUpCisrICBpZiAoY2FuX2NyZWF0ZV9wc2V1 ZG9fcCAoKSkKICsgICAgewotKyAgICAgIHJzNjAwMF9lbWl0X21vdmUgKG9wZXJhbmRzWzBdLCBv cGVyYW5kc1sxXSwgPE1PREU+bW9kZSk7Ci0rICAgICAgRE9ORTsKKysgICAgICBpZiAoQ09OU1RB TlRfUCAob3BlcmFuZHNbMV0pCisrCSAgJiYgIWVhc3lfdmVjdG9yX2NvbnN0YW50IChvcGVyYW5k c1sxXSwgPE1PREU+bW9kZSkpCisrCW9wZXJhbmRzWzFdID0gZm9yY2VfY29uc3RfbWVtICg8TU9E RT5tb2RlLCBvcGVyYW5kc1sxXSk7CisrCisrICAgICAgZWxzZSBpZiAoIXZsb2dpY2FsX29wZXJh bmQgKG9wZXJhbmRzWzBdLCA8TU9ERT5tb2RlKQorKwkgICAgICAgJiYgIXZsb2dpY2FsX29wZXJh bmQgKG9wZXJhbmRzWzFdLCA8TU9ERT5tb2RlKSkKKysJb3BlcmFuZHNbMV0gPSBmb3JjZV9yZWcg KDxNT0RFPm1vZGUsIG9wZXJhbmRzWzFdKTsKICsgICAgfQotKyAgZWxzZSBpZiAoIXZsb2dpY2Fs X29wZXJhbmQgKG9wZXJhbmRzWzBdLCA8TU9ERT5tb2RlKQotKwkgICAmJiAhdmxvZ2ljYWxfb3Bl cmFuZCAob3BlcmFuZHNbMV0sIDxNT0RFPm1vZGUpKQotKyAgICBvcGVyYW5kc1sxXSA9IGZvcmNl X3JlZyAoPE1PREU+bW9kZSwgb3BlcmFuZHNbMV0pOwogK30pCiArCiArOzsgR2VuZXJpYyB2ZWN0 b3IgZmxvYXRpbmcgcG9pbnQgbG9hZC9zdG9yZSBpbnN0cnVjdGlvbnMuICBUaGVzZSB3aWxsIG1h dGNoCkBAIC0xNzQ5LDYgKzIxMjUsNDkgQEAgdGVzdHN1aXRlLwogK30pCiArCiArDAorKzs7IFJl bG9hZCBwYXR0ZXJucyBmb3IgdmVjdG9yIG9wZXJhdGlvbnMuICBXZSBtYXkgbmVlZCBhbiBhZGR0 aW9uYWwgYmFzZQorKzs7IHJlZ2lzdGVyIHRvIGNvbnZlcnQgdGhlIHJlZytvZmZzZXQgYWRkcmVz c2luZyB0byByZWcrcmVnIGZvciB2ZWN0b3IKKys7OyByZWdpc3RlcnMgYW5kIHJlZytyZWcgb3Ig KHJlZytyZWcpJigtMTYpIGFkZHJlc3NpbmcgdG8ganVzdCBhbiBpbmRleAorKzs7IHJlZ2lzdGVy IGZvciBncHIgcmVnaXN0ZXJzLgorKyhkZWZpbmVfZXhwYW5kICJyZWxvYWRfPFZFQ19SOm1vZGU+ XzxQOm1wdHJzaXplPl9zdG9yZSIKKysgIFsocGFyYWxsZWwgWyhtYXRjaF9vcGVyYW5kOlZFQ19S IDAgIm1lbW9yeV9vcGVyYW5kIiAibSIpCisrICAgICAgICAgICAgICAobWF0Y2hfb3BlcmFuZDpW RUNfUiAxICJncGNfcmVnX29wZXJhbmQiICJyIikKKysgICAgICAgICAgICAgIChtYXRjaF9vcGVy YW5kOlAgMiAicmVnaXN0ZXJfb3BlcmFuZCIgIj0mYiIpXSldCisrICAiPFA6dHB0cnNpemU+Igor K3sKKysgIHJzNjAwMF9zZWNvbmRhcnlfcmVsb2FkX2lubmVyIChvcGVyYW5kc1sxXSwgb3BlcmFu ZHNbMF0sIG9wZXJhbmRzWzJdLCB0cnVlKTsKKysgIERPTkU7CisrfSkKKysKKysoZGVmaW5lX2V4 cGFuZCAicmVsb2FkXzxWRUNfUjptb2RlPl88UDptcHRyc2l6ZT5fbG9hZCIKKysgIFsocGFyYWxs ZWwgWyhtYXRjaF9vcGVyYW5kOlZFQ19SIDAgImdwY19yZWdfb3BlcmFuZCIgIj0mciIpCisrICAg ICAgICAgICAgICAobWF0Y2hfb3BlcmFuZDpWRUNfUiAxICJtZW1vcnlfb3BlcmFuZCIgIm0iKQor KyAgICAgICAgICAgICAgKG1hdGNoX29wZXJhbmQ6UCAyICJyZWdpc3Rlcl9vcGVyYW5kIiAiPSZi IildKV0KKysgICI8UDp0cHRyc2l6ZT4iCisreworKyAgcnM2MDAwX3NlY29uZGFyeV9yZWxvYWRf aW5uZXIgKG9wZXJhbmRzWzBdLCBvcGVyYW5kc1sxXSwgb3BlcmFuZHNbMl0sIGZhbHNlKTsKKysg IERPTkU7CisrfSkKKysKKys7OyBSZWxvYWQgc29tZXRpbWVzIHRyaWVzIHRvIG1vdmUgdGhlIGFk ZHJlc3MgdG8gYSBHUFIsIGFuZCBjYW4gZ2VuZXJhdGUKKys7OyBpbnZhbGlkIFJUTCBmb3IgYWRk cmVzc2VzIGludm9sdmluZyBBTkQgLTE2LgorKworKyhkZWZpbmVfaW5zbl9hbmRfc3BsaXQgIip2 ZWNfcmVsb2FkX2FuZF9wbHVzXzxtcHRyc2l6ZT4iCisrICBbKHNldCAobWF0Y2hfb3BlcmFuZDpQ IDAgImdwY19yZWdfb3BlcmFuZCIgIj1iIikKKysJKGFuZDpQIChwbHVzOlAgKG1hdGNoX29wZXJh bmQ6UCAxICJncGNfcmVnX29wZXJhbmQiICJyIikKKysJCSAgICAgICAobWF0Y2hfb3BlcmFuZDpQ IDIgImdwY19yZWdfb3BlcmFuZCIgInIiKSkKKysJICAgICAgIChjb25zdF9pbnQgLTE2KSkpXQor KyAgIlRBUkdFVF9BTFRJVkVDIHx8IFRBUkdFVF9WU1giCisrICAiIyIKKysgICImJiByZWxvYWRf Y29tcGxldGVkIgorKyAgWyhzZXQgKG1hdGNoX2R1cCAwKQorKwkocGx1czpQIChtYXRjaF9kdXAg MSkKKysJCShtYXRjaF9kdXAgMikpKQorKyAgIChwYXJhbGxlbCBbKHNldCAobWF0Y2hfZHVwIDAp CisrCQkgICAoYW5kOlAgKG1hdGNoX2R1cCAwKQorKwkJCSAgKGNvbnN0X2ludCAtMTYpKSkKKysJ ICAgICAgKGNsb2JiZXI6Q0MgKHNjcmF0Y2g6Q0MpKV0pXSkKKysMCiArOzsgR2VuZXJpYyBmbG9h dGluZyBwb2ludCB2ZWN0b3IgYXJpdGhtZXRpYyBzdXBwb3J0CiArKGRlZmluZV9leHBhbmQgImFk ZDxtb2RlPjMiCiArICBbKHNldCAobWF0Y2hfb3BlcmFuZDpWRUNfRiAwICJ2ZmxvYXRfb3BlcmFu ZCIgIiIpCkBAIC0yMTQ1LDI4ICsyNTY0LDEyNyBAQCB0ZXN0c3VpdGUvCiArICAiVkVDVE9SX1VO SVRfVlNYX1AgKFYyREZtb2RlKSIKICsgICIiKQogKwotKzs7IEZvciAyIGVsZW1lbnQgdmVjdG9y cywgZXZlbi9vZGQgaXMgdGhlIHNhbWUgYXMgaGlnaC9sb3cKLSsoZGVmaW5lX2V4cGFuZCAidmVj X2V4dHJhY3RfZXZlbnYyZGYiCi0rICBbKHNldCAobWF0Y2hfb3BlcmFuZDpWMkRGIDAgInZmbG9h dF9vcGVyYW5kIiAiIikKLSsJKHZlY19jb25jYXQ6VjJERgotKwkgKHZlY19zZWxlY3Q6REYgKG1h dGNoX29wZXJhbmQ6VjJERiAxICJ2ZmxvYXRfb3BlcmFuZCIgIiIpCi0rCQkJKHBhcmFsbGVsIFso Y29uc3RfaW50IDApXSkpCi0rCSAodmVjX3NlbGVjdDpERiAobWF0Y2hfb3BlcmFuZDpWMkRGIDIg InZmbG9hdF9vcGVyYW5kIiAiIikKLSsJCQkocGFyYWxsZWwgWyhjb25zdF9pbnQgMCldKSkpKV0K LSsgICJWRUNUT1JfVU5JVF9WU1hfUCAoVjJERm1vZGUpIgotKyAgIiIpCisrDAorKzs7IENvbnZl cnQgZG91YmxlIHdvcmQgdHlwZXMgdG8gc2luZ2xlIHdvcmQgdHlwZXMKKysoZGVmaW5lX2V4cGFu ZCAidmVjX3BhY2tfdHJ1bmNfdjJkZiIKKysgIFsobWF0Y2hfb3BlcmFuZDpWNFNGIDAgInZzeF9y ZWdpc3Rlcl9vcGVyYW5kIiAiIikKKysgICAobWF0Y2hfb3BlcmFuZDpWMkRGIDEgInZzeF9yZWdp c3Rlcl9vcGVyYW5kIiAiIikKKysgICAobWF0Y2hfb3BlcmFuZDpWMkRGIDIgInZzeF9yZWdpc3Rl cl9vcGVyYW5kIiAiIildCisrICAiVkVDVE9SX1VOSVRfVlNYX1AgKFYyREZtb2RlKSAmJiBUQVJH RVRfQUxUSVZFQyIKKyt7CisrICBydHggcjEgPSBnZW5fcmVnX3J0eCAoVjRTRm1vZGUpOworKyAg cnR4IHIyID0gZ2VuX3JlZ19ydHggKFY0U0Ztb2RlKTsKICsKLSsoZGVmaW5lX2V4cGFuZCAidmVj X2V4dHJhY3Rfb2RkdjJkZiIKLSsgIFsoc2V0IChtYXRjaF9vcGVyYW5kOlYyREYgMCAidmZsb2F0 X29wZXJhbmQiICIiKQotKwkodmVjX2NvbmNhdDpWMkRGCi0rCSAodmVjX3NlbGVjdDpERiAobWF0 Y2hfb3BlcmFuZDpWMkRGIDEgInZmbG9hdF9vcGVyYW5kIiAiIikKLSsJCQkocGFyYWxsZWwgWyhj b25zdF9pbnQgMSldKSkKLSsJICh2ZWNfc2VsZWN0OkRGIChtYXRjaF9vcGVyYW5kOlYyREYgMiAi dmZsb2F0X29wZXJhbmQiICIiKQotKwkJCShwYXJhbGxlbCBbKGNvbnN0X2ludCAxKV0pKSkpXQot KyAgIlZFQ1RPUl9VTklUX1ZTWF9QIChWMkRGbW9kZSkiCi0rICAiIikKLS0tLSBnY2MvY29uZmln L3JzNjAwMC9zcGUubWQJKC4uLi90cnVuaykJKHJldmlzaW9uIDE0NDU1NykKLSsrKyBnY2MvY29u ZmlnL3JzNjAwMC9zcGUubWQJKC4uLi9icmFuY2hlcy9pYm0vcG93ZXI3LW1laXNzbmVyKQkocmV2 aXNpb24gMTQ0NzMwKQorKyAgZW1pdF9pbnNuIChnZW5fdnN4X3h2Y3ZkcHNwIChyMSwgb3BlcmFu ZHNbMV0pKTsKKysgIGVtaXRfaW5zbiAoZ2VuX3ZzeF94dmN2ZHBzcCAocjIsIG9wZXJhbmRzWzJd KSk7CisrICBlbWl0X2luc24gKGdlbl92ZWNfZXh0cmFjdF9ldmVudjRzZiAob3BlcmFuZHNbMF0s IHIxLCByMikpOworKyAgRE9ORTsKKyt9KQorKworKyhkZWZpbmVfZXhwYW5kICJ2ZWNfcGFja19z Zml4X3RydW5jX3YyZGYiCisrICBbKG1hdGNoX29wZXJhbmQ6VjRTSSAwICJ2c3hfcmVnaXN0ZXJf b3BlcmFuZCIgIiIpCisrICAgKG1hdGNoX29wZXJhbmQ6VjJERiAxICJ2c3hfcmVnaXN0ZXJfb3Bl cmFuZCIgIiIpCisrICAgKG1hdGNoX29wZXJhbmQ6VjJERiAyICJ2c3hfcmVnaXN0ZXJfb3BlcmFu ZCIgIiIpXQorKyAgIlZFQ1RPUl9VTklUX1ZTWF9QIChWMkRGbW9kZSkgJiYgVEFSR0VUX0FMVElW RUMiCisreworKyAgcnR4IHIxID0gZ2VuX3JlZ19ydHggKFY0U0ltb2RlKTsKKysgIHJ0eCByMiA9 IGdlbl9yZWdfcnR4IChWNFNJbW9kZSk7CisrCisrICBlbWl0X2luc24gKGdlbl92c3hfeHZjdmRw c3h3cyAocjEsIG9wZXJhbmRzWzFdKSk7CisrICBlbWl0X2luc24gKGdlbl92c3hfeHZjdmRwc3h3 cyAocjIsIG9wZXJhbmRzWzJdKSk7CisrICBlbWl0X2luc24gKGdlbl92ZWNfZXh0cmFjdF9ldmVu djRzaSAob3BlcmFuZHNbMF0sIHIxLCByMikpOworKyAgRE9ORTsKKyt9KQorKworKyhkZWZpbmVf ZXhwYW5kICJ2ZWNfcGFja191Zml4X3RydW5jX3YyZGYiCisrICBbKG1hdGNoX29wZXJhbmQ6VjRT SSAwICJ2c3hfcmVnaXN0ZXJfb3BlcmFuZCIgIiIpCisrICAgKG1hdGNoX29wZXJhbmQ6VjJERiAx ICJ2c3hfcmVnaXN0ZXJfb3BlcmFuZCIgIiIpCisrICAgKG1hdGNoX29wZXJhbmQ6VjJERiAyICJ2 c3hfcmVnaXN0ZXJfb3BlcmFuZCIgIiIpXQorKyAgIlZFQ1RPUl9VTklUX1ZTWF9QIChWMkRGbW9k ZSkgJiYgVEFSR0VUX0FMVElWRUMiCisreworKyAgcnR4IHIxID0gZ2VuX3JlZ19ydHggKFY0U0lt b2RlKTsKKysgIHJ0eCByMiA9IGdlbl9yZWdfcnR4IChWNFNJbW9kZSk7CisrCisrICBlbWl0X2lu c24gKGdlbl92c3hfeHZjdmRwdXh3cyAocjEsIG9wZXJhbmRzWzFdKSk7CisrICBlbWl0X2luc24g KGdlbl92c3hfeHZjdmRwdXh3cyAocjIsIG9wZXJhbmRzWzJdKSk7CisrICBlbWl0X2luc24gKGdl bl92ZWNfZXh0cmFjdF9ldmVudjRzaSAob3BlcmFuZHNbMF0sIHIxLCByMikpOworKyAgRE9ORTsK Kyt9KQorKworKzs7IENvbnZlcnQgc2luZ2xlIHdvcmQgdHlwZXMgdG8gZG91YmxlIHdvcmQKKyso ZGVmaW5lX2V4cGFuZCAidmVjX3VucGFja3NfaGlfdjRzZiIKKysgIFsobWF0Y2hfb3BlcmFuZDpW MkRGIDAgInZzeF9yZWdpc3Rlcl9vcGVyYW5kIiAiIikKKysgICAobWF0Y2hfb3BlcmFuZDpWNFNG IDEgInZzeF9yZWdpc3Rlcl9vcGVyYW5kIiAiIildCisrICAiVkVDVE9SX1VOSVRfVlNYX1AgKFYy REZtb2RlKSAmJiBWRUNUT1JfVU5JVF9BTFRJVkVDX09SX1ZTWF9QIChWNFNGbW9kZSkiCisrewor KyAgcnR4IHJlZyA9IGdlbl9yZWdfcnR4IChWNFNGbW9kZSk7CisrCisrICBlbWl0X2luc24gKGdl bl92ZWNfaW50ZXJsZWF2ZV9oaWdodjRzZiAocmVnLCBvcGVyYW5kc1sxXSwgb3BlcmFuZHNbMV0p KTsKKysgIGVtaXRfaW5zbiAoZ2VuX3ZzeF94dmN2c3BkcCAob3BlcmFuZHNbMF0sIHJlZykpOwor KyAgRE9ORTsKKyt9KQorKworKyhkZWZpbmVfZXhwYW5kICJ2ZWNfdW5wYWNrc19sb192NHNmIgor KyAgWyhtYXRjaF9vcGVyYW5kOlYyREYgMCAidnN4X3JlZ2lzdGVyX29wZXJhbmQiICIiKQorKyAg IChtYXRjaF9vcGVyYW5kOlY0U0YgMSAidnN4X3JlZ2lzdGVyX29wZXJhbmQiICIiKV0KKysgICJW RUNUT1JfVU5JVF9WU1hfUCAoVjJERm1vZGUpICYmIFZFQ1RPUl9VTklUX0FMVElWRUNfT1JfVlNY X1AgKFY0U0Ztb2RlKSIKKyt7CisrICBydHggcmVnID0gZ2VuX3JlZ19ydHggKFY0U0Ztb2RlKTsK KysKKysgIGVtaXRfaW5zbiAoZ2VuX3ZlY19pbnRlcmxlYXZlX2xvd3Y0c2YgKHJlZywgb3BlcmFu ZHNbMV0sIG9wZXJhbmRzWzFdKSk7CisrICBlbWl0X2luc24gKGdlbl92c3hfeHZjdnNwZHAgKG9w ZXJhbmRzWzBdLCByZWcpKTsKKysgIERPTkU7CisrfSkKKysKKysoZGVmaW5lX2V4cGFuZCAidmVj X3VucGFja3NfZmxvYXRfaGlfdjRzaSIKKysgIFsobWF0Y2hfb3BlcmFuZDpWMkRGIDAgInZzeF9y ZWdpc3Rlcl9vcGVyYW5kIiAiIikKKysgICAobWF0Y2hfb3BlcmFuZDpWNFNJIDEgInZzeF9yZWdp c3Rlcl9vcGVyYW5kIiAiIildCisrICAiVkVDVE9SX1VOSVRfVlNYX1AgKFYyREZtb2RlKSAmJiBW RUNUT1JfVU5JVF9BTFRJVkVDX09SX1ZTWF9QIChWNFNJbW9kZSkiCisreworKyAgcnR4IHJlZyA9 IGdlbl9yZWdfcnR4IChWNFNJbW9kZSk7CisrCisrICBlbWl0X2luc24gKGdlbl92ZWNfaW50ZXJs ZWF2ZV9oaWdodjRzaSAocmVnLCBvcGVyYW5kc1sxXSwgb3BlcmFuZHNbMV0pKTsKKysgIGVtaXRf aW5zbiAoZ2VuX3ZzeF94dmN2c3h3ZHAgKG9wZXJhbmRzWzBdLCByZWcpKTsKKysgIERPTkU7Cisr fSkKKysKKysoZGVmaW5lX2V4cGFuZCAidmVjX3VucGFja3NfZmxvYXRfbG9fdjRzaSIKKysgIFso bWF0Y2hfb3BlcmFuZDpWMkRGIDAgInZzeF9yZWdpc3Rlcl9vcGVyYW5kIiAiIikKKysgICAobWF0 Y2hfb3BlcmFuZDpWNFNJIDEgInZzeF9yZWdpc3Rlcl9vcGVyYW5kIiAiIildCisrICAiVkVDVE9S X1VOSVRfVlNYX1AgKFYyREZtb2RlKSAmJiBWRUNUT1JfVU5JVF9BTFRJVkVDX09SX1ZTWF9QIChW NFNJbW9kZSkiCisreworKyAgcnR4IHJlZyA9IGdlbl9yZWdfcnR4IChWNFNJbW9kZSk7CisrCisr ICBlbWl0X2luc24gKGdlbl92ZWNfaW50ZXJsZWF2ZV9sb3d2NHNpIChyZWcsIG9wZXJhbmRzWzFd LCBvcGVyYW5kc1sxXSkpOworKyAgZW1pdF9pbnNuIChnZW5fdnN4X3h2Y3ZzeHdkcCAob3BlcmFu ZHNbMF0sIHJlZykpOworKyAgRE9ORTsKKyt9KQorKworKyhkZWZpbmVfZXhwYW5kICJ2ZWNfdW5w YWNrdV9mbG9hdF9oaV92NHNpIgorKyAgWyhtYXRjaF9vcGVyYW5kOlYyREYgMCAidnN4X3JlZ2lz dGVyX29wZXJhbmQiICIiKQorKyAgIChtYXRjaF9vcGVyYW5kOlY0U0kgMSAidnN4X3JlZ2lzdGVy X29wZXJhbmQiICIiKV0KKysgICJWRUNUT1JfVU5JVF9WU1hfUCAoVjJERm1vZGUpICYmIFZFQ1RP Ul9VTklUX0FMVElWRUNfT1JfVlNYX1AgKFY0U0ltb2RlKSIKKyt7CisrICBydHggcmVnID0gZ2Vu X3JlZ19ydHggKFY0U0ltb2RlKTsKKysKKysgIGVtaXRfaW5zbiAoZ2VuX3ZlY19pbnRlcmxlYXZl X2hpZ2h2NHNpIChyZWcsIG9wZXJhbmRzWzFdLCBvcGVyYW5kc1sxXSkpOworKyAgZW1pdF9pbnNu IChnZW5fdnN4X3h2Y3Z1eHdkcCAob3BlcmFuZHNbMF0sIHJlZykpOworKyAgRE9ORTsKKyt9KQor KworKyhkZWZpbmVfZXhwYW5kICJ2ZWNfdW5wYWNrdV9mbG9hdF9sb192NHNpIgorKyAgWyhtYXRj aF9vcGVyYW5kOlYyREYgMCAidnN4X3JlZ2lzdGVyX29wZXJhbmQiICIiKQorKyAgIChtYXRjaF9v cGVyYW5kOlY0U0kgMSAidnN4X3JlZ2lzdGVyX29wZXJhbmQiICIiKV0KKysgICJWRUNUT1JfVU5J VF9WU1hfUCAoVjJERm1vZGUpICYmIFZFQ1RPUl9VTklUX0FMVElWRUNfT1JfVlNYX1AgKFY0U0lt b2RlKSIKKyt7CisrICBydHggcmVnID0gZ2VuX3JlZ19ydHggKFY0U0ltb2RlKTsKKysKKysgIGVt aXRfaW5zbiAoZ2VuX3ZlY19pbnRlcmxlYXZlX2xvd3Y0c2kgKHJlZywgb3BlcmFuZHNbMV0sIG9w ZXJhbmRzWzFdKSk7CisrICBlbWl0X2luc24gKGdlbl92c3hfeHZjdnV4d2RwIChvcGVyYW5kc1sw XSwgcmVnKSk7CisrICBET05FOworK30pCistLS0gZ2NjL2NvbmZpZy9yczYwMDAvc3BlLm1kCSgu Li4vdHJ1bmspCShyZXZpc2lvbiAxNDU3NzcpCisrKysgZ2NjL2NvbmZpZy9yczYwMDAvc3BlLm1k CSguLi4vYnJhbmNoZXMvaWJtL3Bvd2VyNy1tZWlzc25lcikJKHJldmlzaW9uIDE0NjAyNykKIEBA IC05OSw3ICs5OSw3IEBAIChkZWZpbmVfaW5zbiAiKmRpdnNmM19ncHIiCiAgCiAgOzsgRmxvYXRp bmcgcG9pbnQgY29udmVyc2lvbiBpbnN0cnVjdGlvbnMuCkBAIC0yMTc2LDggKzI2OTQsOCBAQCB0 ZXN0c3VpdGUvCiAgICBbKHNldCAobWF0Y2hfb3BlcmFuZDpTSSAwICJncGNfcmVnX29wZXJhbmQi ICI9ciIpCiAgCSh1bnNpZ25lZF9maXg6U0kgKG1hdGNoX29wZXJhbmQ6REYgMSAiZ3BjX3JlZ19v cGVyYW5kIiAiciIpKSldCiAgICAiVEFSR0VUX0hBUkRfRkxPQVQgJiYgVEFSR0VUX0U1MDBfRE9V QkxFIgotLS0tIGdjYy9jb25maWcvcnM2MDAwL2NvbnN0cmFpbnRzLm1kCSguLi4vdHJ1bmspCShy ZXZpc2lvbiAxNDQ1NTcpCi0rKysgZ2NjL2NvbmZpZy9yczYwMDAvY29uc3RyYWludHMubWQJKC4u Li9icmFuY2hlcy9pYm0vcG93ZXI3LW1laXNzbmVyKQkocmV2aXNpb24gMTQ0NzMwKQorLS0tIGdj Yy9jb25maWcvcnM2MDAwL2NvbnN0cmFpbnRzLm1kCSguLi4vdHJ1bmspCShyZXZpc2lvbiAxNDU3 NzcpCisrKysgZ2NjL2NvbmZpZy9yczYwMDAvY29uc3RyYWludHMubWQJKC4uLi9icmFuY2hlcy9p Ym0vcG93ZXI3LW1laXNzbmVyKQkocmV2aXNpb24gMTQ2MDI3KQogQEAgLTE3LDYgKzE3LDggQEAK ICA7OyBhbG9uZyB3aXRoIEdDQzsgc2VlIHRoZSBmaWxlIENPUFlJTkczLiAgSWYgbm90IHNlZQog IDs7IDxodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvPi4KQEAgLTIxODcsNyArMjcwNSw3IEBA IHRlc3RzdWl0ZS8KICA7OyBSZWdpc3RlciBjb25zdHJhaW50cwogIAogIChkZWZpbmVfcmVnaXN0 ZXJfY29uc3RyYWludCAiZiIgIlRBUkdFVF9IQVJEX0ZMT0FUICYmIFRBUkdFVF9GUFJTCi1AQCAt NTAsNiArNTIsMjMgQEAgKGRlZmluZV9yZWdpc3Rlcl9jb25zdHJhaW50ICJ5IiAiQ1JfUkVHUwor QEAgLTUwLDYgKzUyLDI4IEBAIChkZWZpbmVfcmVnaXN0ZXJfY29uc3RyYWludCAieSIgIkNSX1JF R1MKICAoZGVmaW5lX3JlZ2lzdGVyX2NvbnN0cmFpbnQgInoiICJYRVJfUkVHUyIKICAgICJAaW50 ZXJuYWwiKQogIApAQCAtMjIwOCwxMCArMjcyNiwxNSBAQCB0ZXN0c3VpdGUvCiArKGRlZmluZV9y ZWdpc3Rlcl9jb25zdHJhaW50ICJ3YSIgInJzNjAwMF92c3hfcmVnX2NsYXNzIgogKyAgIkBpbnRl cm5hbCIpCiArCisrOzsgQWx0aXZlYyBzdHlsZSBsb2FkL3N0b3JlIHRoYXQgaWdub3JlcyB0aGUg Ym90dG9tIGJpdHMgb2YgdGhlIGFkZHJlc3MKKysoZGVmaW5lX21lbW9yeV9jb25zdHJhaW50ICJ3 WiIKKysgICJJbmRleGVkIG9yIGluZGlyZWN0IG1lbW9yeSBvcGVyYW5kLCBpZ25vcmluZyB0aGUg Ym90dG9tIDQgYml0cyIKKysgIChtYXRjaF9vcGVyYW5kIDAgImFsdGl2ZWNfaW5kZXhlZF9vcl9p bmRpcmVjdF9vcGVyYW5kIikpCisrCiAgOzsgSW50ZWdlciBjb25zdHJhaW50cwogIAogIChkZWZp bmVfY29uc3RyYWludCAiSSIKLUBAIC0xNTksMyArMTc4LDcgQEAgKGRlZmluZV9jb25zdHJhaW50 ICJ0IgorQEAgLTE1OSwzICsxODMsNyBAQCAoZGVmaW5lX2NvbnN0cmFpbnQgInQiCiAgKGRlZmlu ZV9jb25zdHJhaW50ICJXIgogICAgInZlY3RvciBjb25zdGFudCB0aGF0IGRvZXMgbm90IHJlcXVp cmUgbWVtb3J5IgogICAgKG1hdGNoX29wZXJhbmQgMCAiZWFzeV92ZWN0b3JfY29uc3RhbnQiKSkK QEAgLTIyMTksOCArMjc0Miw4IEBAIHRlc3RzdWl0ZS8KICsoZGVmaW5lX2NvbnN0cmFpbnQgImoi CiArICAiWmVybyB2ZWN0b3IgY29uc3RhbnQiCiArICAobWF0Y2hfdGVzdCAiKG9wID09IGNvbnN0 MF9ydHggfHwgb3AgPT0gQ09OU1QwX1JUWCAoR0VUX01PREUgKG9wKSkpIikpCi0tLS0gZ2NjL2Nv bmZpZy9yczYwMDAvcHJlZGljYXRlcy5tZAkoLi4uL3RydW5rKQkocmV2aXNpb24gMTQ0NTU3KQot KysrIGdjYy9jb25maWcvcnM2MDAwL3ByZWRpY2F0ZXMubWQJKC4uLi9icmFuY2hlcy9pYm0vcG93 ZXI3LW1laXNzbmVyKQkocmV2aXNpb24gMTQ0NzMwKQorLS0tIGdjYy9jb25maWcvcnM2MDAwL3By ZWRpY2F0ZXMubWQJKC4uLi90cnVuaykJKHJldmlzaW9uIDE0NTc3NykKKysrKyBnY2MvY29uZmln L3JzNjAwMC9wcmVkaWNhdGVzLm1kCSguLi4vYnJhbmNoZXMvaWJtL3Bvd2VyNy1tZWlzc25lcikJ KHJldmlzaW9uIDE0NjAyNykKIEBAIC0zOCw2ICszOCwzNyBAQCAoZGVmaW5lX3ByZWRpY2F0ZSAi YWx0aXZlY19yZWdpc3Rlcl9vcGVyCiAgCQkgICAgIHx8IEFMVElWRUNfUkVHTk9fUCAoUkVHTk8g KG9wKSkKICAJCSAgICAgfHwgUkVHTk8gKG9wKSA+IExBU1RfVklSVFVBTF9SRUdJU1RFUiIpKSkK QEAgLTIyNzAsNyArMjc5Myw3IEBAIHRlc3RzdWl0ZS8KICAgICAgICAvKiBGb3JjZSBjb25zdGFu dHMgdG8gbWVtb3J5IGJlZm9yZSByZWxvYWQgdG8gdXRpbGl6ZQogIAkgY29tcHJlc3NfZmxvYXRf Y29uc3RhbnQuCiAgCSBBdm9pZCB0aGlzIHdoZW4gZmxhZ191bnNhZmVfbWF0aF9vcHRpbWl6YXRp b25zIGlzIGVuYWJsZWQKLUBAIC0zOTYsMTMgKzQzMSwxNiBAQCAoZGVmaW5lX3ByZWRpY2F0ZSAi aW5kZXhlZF9vcl9pbmRpcmVjdF9vCitAQCAtMzk2LDE2ICs0MzEsMzYgQEAgKGRlZmluZV9wcmVk aWNhdGUgImluZGV4ZWRfb3JfaW5kaXJlY3RfbwogICAgKG1hdGNoX2NvZGUgIm1lbSIpCiAgewog ICAgb3AgPSBYRVhQIChvcCwgMCk7CkBAIC0yMjg5LDcgKzI4MTIsMjcgQEAgdGVzdHN1aXRlLwog ICAgcmV0dXJuIGluZGV4ZWRfb3JfaW5kaXJlY3RfYWRkcmVzcyAob3AsIG1vZGUpOwogIH0pCiAg Ci1AQCAtMTMzNiwzICsxMzc0LDE5IEBAIChkZWZpbmVfcHJlZGljYXRlICJzdG13X29wZXJhdGlv biIKKys7OyBSZXR1cm4gMSBpZiB0aGUgb3BlcmFuZCBpcyBhbiBpbmRleGVkIG9yIGluZGlyZWN0 IG1lbW9yeSBvcGVyYW5kIHdpdGggYW4KKys7OyBBTkQgLTE2IGluIGl0LCB1c2VkIHRvIHJlY29n bml6ZSB3aGVuIHdlIG5lZWQgdG8gc3dpdGNoIHRvIEFsdGl2ZWMgbG9hZHMKKys7OyB0byByZWFs aWduIGxvb3BzIGluc3RlYWQgb2YgVlNYIChhbHRpdmVjIHNpbGVudGx5IGlnbm9yZXMgdGhlIGJv dHRvbSBiaXRzLAorKzs7IHdoaWxlIFZTWCB1c2VzIHRoZSBmdWxsIGFkZHJlc3MgYW5kIHRyYXBz KQorKyhkZWZpbmVfcHJlZGljYXRlICJhbHRpdmVjX2luZGV4ZWRfb3JfaW5kaXJlY3Rfb3BlcmFu ZCIKKysgIChtYXRjaF9jb2RlICJtZW0iKQorK3sKKysgIG9wID0gWEVYUCAob3AsIDApOworKyAg aWYgKFZFQ1RPUl9NRU1fQUxUSVZFQ19PUl9WU1hfUCAobW9kZSkKKysgICAgICAmJiBHRVRfQ09E RSAob3ApID09IEFORAorKyAgICAgICYmIEdFVF9DT0RFIChYRVhQIChvcCwgMSkpID09IENPTlNU X0lOVAorKyAgICAgICYmIElOVFZBTCAoWEVYUCAob3AsIDEpKSA9PSAtMTYpCisrICAgIHJldHVy biBpbmRleGVkX29yX2luZGlyZWN0X2FkZHJlc3MgKFhFWFAgKG9wLCAwKSwgbW9kZSk7CisrCisr ICByZXR1cm4gMDsKKyt9KQorKworIDs7IFJldHVybiAxIGlmIHRoZSBvcGVyYW5kIGlzIGFuIGlu ZGV4ZWQgb3IgaW5kaXJlY3QgYWRkcmVzcy4KKyAoZGVmaW5lX3NwZWNpYWxfcHJlZGljYXRlICJp bmRleGVkX29yX2luZGlyZWN0X2FkZHJlc3MiCisgICAoYW5kIChtYXRjaF90ZXN0ICJSRUdfUCAo b3ApCitAQCAtMTMzNiwzICsxMzkxLDE5IEBAIChkZWZpbmVfcHJlZGljYXRlICJzdG13X29wZXJh dGlvbiIKICAKICAgIHJldHVybiAxOwogIH0pCkBAIC0yMzA5LDggKzI4NTIsOCBAQCB0ZXN0c3Vp dGUvCiArCiArICByZXR1cm4gMTsKICt9KQotLS0tIGdjYy9jb25maWcvcnM2MDAwL3BwYy1hc20u aAkoLi4uL3RydW5rKQkocmV2aXNpb24gMTQ0NTU3KQotKysrIGdjYy9jb25maWcvcnM2MDAwL3Bw Yy1hc20uaAkoLi4uL2JyYW5jaGVzL2libS9wb3dlcjctbWVpc3NuZXIpCShyZXZpc2lvbiAxNDQ3 MzApCistLS0gZ2NjL2NvbmZpZy9yczYwMDAvcHBjLWFzbS5oCSguLi4vdHJ1bmspCShyZXZpc2lv biAxNDU3NzcpCisrKysgZ2NjL2NvbmZpZy9yczYwMDAvcHBjLWFzbS5oCSguLi4vYnJhbmNoZXMv aWJtL3Bvd2VyNy1tZWlzc25lcikJKHJldmlzaW9uIDE0NjAyNykKIEBAIC02Myw3ICs2Myw3IEBA CiAgI2RlZmluZSBmMTYJMTYKICAjZGVmaW5lIGYxNwkxNwpAQCAtMjQ2NCw4ICszMDA3LDggQEAg dGVzdHN1aXRlLwogIC8qCiAgICogTWFjcm9zIHRvIGdsdWUgdG9nZXRoZXIgdHdvIHRva2Vucy4K ICAgKi8KLS0tLSBnY2MvY29uZmlnL3JzNjAwMC9saW51eDY0Lm9wdAkoLi4uL3RydW5rKQkocmV2 aXNpb24gMTQ0NTU3KQotKysrIGdjYy9jb25maWcvcnM2MDAwL2xpbnV4NjQub3B0CSguLi4vYnJh bmNoZXMvaWJtL3Bvd2VyNy1tZWlzc25lcikJKHJldmlzaW9uIDE0NDczMCkKKy0tLSBnY2MvY29u ZmlnL3JzNjAwMC9saW51eDY0Lm9wdAkoLi4uL3RydW5rKQkocmV2aXNpb24gMTQ1Nzc3KQorKysr IGdjYy9jb25maWcvcnM2MDAwL2xpbnV4NjQub3B0CSguLi4vYnJhbmNoZXMvaWJtL3Bvd2VyNy1t ZWlzc25lcikJKHJldmlzaW9uIDE0NjAyNykKIEBAIC0yMCw1ICsyMCw1IEBACiAgOyA8aHR0cDov L3d3dy5nbnUub3JnL2xpY2Vuc2VzLz4uCiAgCkBAIC0yNDczLDggKzMwMTYsOCBAQCB0ZXN0c3Vp dGUvCiAtVGFyZ2V0IFJlcG9ydCBNYXNrKFBST0ZJTEVfS0VSTkVMKQogK1RhcmdldCBSZXBvcnQg VmFyKFRBUkdFVF9QUk9GSUxFX0tFUk5FTCkKICBDYWxsIG1jb3VudCBmb3IgcHJvZmlsaW5nIGJl Zm9yZSBhIGZ1bmN0aW9uIHByb2xvZ3VlCi0tLS0gZ2NjL2NvbmZpZy9yczYwMDAvc3lzdjQub3B0 CSguLi4vdHJ1bmspCShyZXZpc2lvbiAxNDQ1NTcpCi0rKysgZ2NjL2NvbmZpZy9yczYwMDAvc3lz djQub3B0CSguLi4vYnJhbmNoZXMvaWJtL3Bvd2VyNy1tZWlzc25lcikJKHJldmlzaW9uIDE0NDcz MCkKKy0tLSBnY2MvY29uZmlnL3JzNjAwMC9zeXN2NC5vcHQJKC4uLi90cnVuaykJKHJldmlzaW9u IDE0NTc3NykKKysrKyBnY2MvY29uZmlnL3JzNjAwMC9zeXN2NC5vcHQJKC4uLi9icmFuY2hlcy9p Ym0vcG93ZXI3LW1laXNzbmVyKQkocmV2aXNpb24gMTQ2MDI3KQogQEAgLTMyLDcgKzMyLDcgQEAg VGFyZ2V0IFJlamVjdE5lZ2F0aXZlIEpvaW5lZAogIFNwZWNpZnkgYml0IHNpemUgb2YgaW1tZWRp YXRlIFRMUyBvZmZzZXRzCiAgCkBAIC0yNDk4LDkgKzMwNDEsOSBAQCB0ZXN0c3VpdGUvCiAgVXNl IGFsdGVybmF0ZSByZWdpc3RlciBuYW1lcwogIAogIDs7IEZJWE1FOiBEb2VzIG5vdGhpbmcuCi0t LS0gZ2NjL2NvbmZpZy9yczYwMDAvcnM2MDAwLXByb3Rvcy5oCSguLi4vdHJ1bmspCShyZXZpc2lv biAxNDQ1NTcpCi0rKysgZ2NjL2NvbmZpZy9yczYwMDAvcnM2MDAwLXByb3Rvcy5oCSguLi4vYnJh bmNoZXMvaWJtL3Bvd2VyNy1tZWlzc25lcikJKHJldmlzaW9uIDE0NDczMCkKLUBAIC02NCw5ICs2 NCwxNCBAQCBleHRlcm4gaW50IGluc3ZkaV9yc2hpZnRfcmx3aW1pX3AgKHJ0eCwgCistLS0gZ2Nj L2NvbmZpZy9yczYwMDAvcnM2MDAwLXByb3Rvcy5oCSguLi4vdHJ1bmspCShyZXZpc2lvbiAxNDU3 NzcpCisrKysgZ2NjL2NvbmZpZy9yczYwMDAvcnM2MDAwLXByb3Rvcy5oCSguLi4vYnJhbmNoZXMv aWJtL3Bvd2VyNy1tZWlzc25lcikJKHJldmlzaW9uIDE0NjAyNykKK0BAIC02NCw5ICs2NCwxNSBA QCBleHRlcm4gaW50IGluc3ZkaV9yc2hpZnRfcmx3aW1pX3AgKHJ0eCwgCiAgZXh0ZXJuIGludCBy ZWdpc3RlcnNfb2tfZm9yX3F1YWRfcGVlcCAocnR4LCBydHgpOwogIGV4dGVybiBpbnQgbWVtc19v a19mb3JfcXVhZF9wZWVwIChydHgsIHJ0eCk7CiAgZXh0ZXJuIGJvb2wgZ3ByX29yX2dwcl9wIChy dHgsIHJ0eCk7CkBAIC0yNTEzLDEwICszMDU2LDExIEBAIHRlc3RzdWl0ZS8KICtleHRlcm4gYm9v bCByczYwMDBfY2Fubm90X2NoYW5nZV9tb2RlX2NsYXNzIChlbnVtIG1hY2hpbmVfbW9kZSwKICsJ CQkJCSAgICAgZW51bSBtYWNoaW5lX21vZGUsCiArCQkJCQkgICAgIGVudW0gcmVnX2NsYXNzKTsK KytleHRlcm4gdm9pZCByczYwMDBfc2Vjb25kYXJ5X3JlbG9hZF9pbm5lciAocnR4LCBydHgsIHJ0 eCwgYm9vbCk7CiAgZXh0ZXJuIGludCBwYWlyZWRfZW1pdF92ZWN0b3JfY29uZF9leHByIChydHgs IHJ0eCwgcnR4LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcnR4 LCBydHgsIHJ0eCk7CiAgZXh0ZXJuIHZvaWQgcGFpcmVkX2V4cGFuZF92ZWN0b3JfbW92ZSAocnR4 IG9wZXJhbmRzW10pOwotQEAgLTE3MCw3ICsxNzUsNiBAQCBleHRlcm4gaW50IHJzNjAwMF9yZWdp c3Rlcl9tb3ZlX2Nvc3QgKGVuCitAQCAtMTcwLDcgKzE3Niw2IEBAIGV4dGVybiBpbnQgcnM2MDAw X3JlZ2lzdGVyX21vdmVfY29zdCAoZW4KICAJCQkJICAgICAgZW51bSByZWdfY2xhc3MsIGVudW0g cmVnX2NsYXNzKTsKICBleHRlcm4gaW50IHJzNjAwMF9tZW1vcnlfbW92ZV9jb3N0IChlbnVtIG1h Y2hpbmVfbW9kZSwgZW51bSByZWdfY2xhc3MsIGludCk7CiAgZXh0ZXJuIGJvb2wgcnM2MDAwX3Rs c19yZWZlcmVuY2VkX3AgKHJ0eCk7CkBAIC0yNTI0LDE1ICszMDY4LDE1IEBAIHRlc3RzdWl0ZS8K ICBleHRlcm4gdm9pZCByczYwMDBfY29uZGl0aW9uYWxfcmVnaXN0ZXJfdXNhZ2UgKHZvaWQpOwog IAogIC8qIERlY2xhcmUgZnVuY3Rpb25zIGluIHJzNjAwMC1jLmMgKi8KLUBAIC0xODksNCArMTkz LDYgQEAgY29uc3QgY2hhciAqIHJzNjAwMF94Y29mZl9zdHJpcF9kb2xsYXIgKAorQEAgLTE4OSw0 ICsxOTQsNiBAQCBjb25zdCBjaGFyICogcnM2MDAwX3hjb2ZmX3N0cmlwX2RvbGxhciAoCiAgdm9p ZCByczYwMDBfZmluYWxfcHJlc2Nhbl9pbnNuIChydHgsIHJ0eCAqb3BlcmFuZCwgaW50IG51bV9v cGVyYW5kcyk7CiAgCiAgZXh0ZXJuIGJvb2wgcnM2MDAwX2hhcmRfcmVnbm9fbW9kZV9va19wW11b RklSU1RfUFNFVURPX1JFR0lTVEVSXTsKICtleHRlcm4gdW5zaWduZWQgY2hhciByczYwMDBfY2xh c3NfbWF4X25yZWdzW11bTElNX1JFR19DTEFTU0VTXTsKICtleHRlcm4gdW5zaWduZWQgY2hhciBy czYwMDBfaGFyZF9yZWdub19ucmVnc1tdW0ZJUlNUX1BTRVVET19SRUdJU1RFUl07CiAgI2VuZGlm ICAvKiByczYwMDAtcHJvdG9zLmggKi8KLS0tLSBnY2MvY29uZmlnL3JzNjAwMC90LXJzNjAwMAko Li4uL3RydW5rKQkocmV2aXNpb24gMTQ0NTU3KQotKysrIGdjYy9jb25maWcvcnM2MDAwL3QtcnM2 MDAwCSguLi4vYnJhbmNoZXMvaWJtL3Bvd2VyNy1tZWlzc25lcikJKHJldmlzaW9uIDE0NDczMCkK Ky0tLSBnY2MvY29uZmlnL3JzNjAwMC90LXJzNjAwMAkoLi4uL3RydW5rKQkocmV2aXNpb24gMTQ1 Nzc3KQorKysrIGdjYy9jb25maWcvcnM2MDAwL3QtcnM2MDAwCSguLi4vYnJhbmNoZXMvaWJtL3Bv d2VyNy1tZWlzc25lcikJKHJldmlzaW9uIDE0NjAyNykKIEBAIC0xNiwzICsxNiwzMyBAQCByczYw MDAtYy5vOiAkKHNyY2RpcikvY29uZmlnL3JzNjAwMC9yczYwCiAgCiAgIyBUaGUgcnM2MDAwIGJh Y2tlbmQgZG9lc24ndCBjYXVzZSB3YXJuaW5ncyBpbiB0aGVzZSBmaWxlcy4KQEAgLTI1NjgsOCAr MzExMiw4IEBAIHRlc3RzdWl0ZS8KICsJJChzcmNkaXIpL2NvbmZpZy9yczYwMDAvZGZwLm1kIFwK ICsJJChzcmNkaXIpL2NvbmZpZy9yczYwMDAvcGFpcmVkLm1kCiAtLS0gZ2NjL2NvbmZpZy9yczYw MDAvcG93ZXI3Lm1kCSguLi4vdHJ1bmspCShyZXZpc2lvbiAwKQotKysrIGdjYy9jb25maWcvcnM2 MDAwL3Bvd2VyNy5tZAkoLi4uL2JyYW5jaGVzL2libS9wb3dlcjctbWVpc3NuZXIpCShyZXZpc2lv biAxNDQ3MzApCi1AQCAtMCwwICsxLDMyMCBAQAorKysrIGdjYy9jb25maWcvcnM2MDAwL3Bvd2Vy Ny5tZAkoLi4uL2JyYW5jaGVzL2libS9wb3dlcjctbWVpc3NuZXIpCShyZXZpc2lvbiAxNDYwMjcp CitAQCAtMCwwICsxLDMxOCBAQAogKzs7IFNjaGVkdWxpbmcgZGVzY3JpcHRpb24gZm9yIElCTSBQ T1dFUjcgcHJvY2Vzc29yLgogKzs7IENvcHlyaWdodCAoQykgMjAwOSBGcmVlIFNvZnR3YXJlIEZv dW5kYXRpb24sIEluYy4KICs7OwpAQCAtMjg4OCwxMSArMzQzMiw3MiBAQCB0ZXN0c3VpdGUvCiAr ICAoYW5kIChlcV9hdHRyICJ0eXBlIiAidmVjcGVybSIpCiArICAgICAgIChlcV9hdHRyICJjcHUi ICJwb3dlcjciKSkKICsgICJkdTJfcG93ZXI3LFZTVV9wb3dlcjciKQorLS0tIGdjYy9jb25maWcv cnM2MDAwL3JzNjAwMC1jLmMJKC4uLi90cnVuaykJKHJldmlzaW9uIDE0NTc3NykKKysrKyBnY2Mv Y29uZmlnL3JzNjAwMC9yczYwMDAtYy5jCSguLi4vYnJhbmNoZXMvaWJtL3Bvd2VyNy1tZWlzc25l cikJKHJldmlzaW9uIDE0NjAyNykKK0BAIC0xMDUsMTEgKzEwNSwxNCBAQCBhbHRpdmVjX2NhdGVn b3JpemVfa2V5d29yZCAoY29uc3QgY3BwX3RvCisgICAgICAgaWYgKGlkZW50ID09IENfQ1BQX0hB U0hOT0RFICh2ZWN0b3Jfa2V5d29yZCkpCisgCXJldHVybiBDX0NQUF9IQVNITk9ERSAoX192ZWN0 b3Jfa2V5d29yZCk7CisgCistICAgICAgaWYgKGlkZW50ID09IENfQ1BQX0hBU0hOT0RFIChwaXhl bF9rZXl3b3JkKSkKKy0JcmV0dXJuIENfQ1BQX0hBU0hOT0RFIChfX3BpeGVsX2tleXdvcmQpOwor KyAgICAgIGlmIChUQVJHRVRfQUxUSVZFQykKKysJeworKwkgIGlmIChpZGVudCA9PSBDX0NQUF9I QVNITk9ERSAocGl4ZWxfa2V5d29yZCkpCisrCSAgICByZXR1cm4gQ19DUFBfSEFTSE5PREUgKF9f cGl4ZWxfa2V5d29yZCk7CisgCistICAgICAgaWYgKGlkZW50ID09IENfQ1BQX0hBU0hOT0RFIChi b29sX2tleXdvcmQpKQorLQlyZXR1cm4gQ19DUFBfSEFTSE5PREUgKF9fYm9vbF9rZXl3b3JkKTsK KysJICBpZiAoaWRlbnQgPT0gQ19DUFBfSEFTSE5PREUgKGJvb2xfa2V5d29yZCkpCisrCSAgICBy ZXR1cm4gQ19DUFBfSEFTSE5PREUgKF9fYm9vbF9rZXl3b3JkKTsKKysJfQorIAorICAgICAgIHJl dHVybiBpZGVudDsKKyAgICAgfQorQEAgLTEyNywyMCArMTMwLDIzIEBAIGluaXRfdmVjdG9yX2tl eXdvcmRzICh2b2lkKQorICAgX192ZWN0b3Jfa2V5d29yZCA9IGdldF9pZGVudGlmaWVyICgiX192 ZWN0b3IiKTsKKyAgIENfQ1BQX0hBU0hOT0RFIChfX3ZlY3Rvcl9rZXl3b3JkKS0+ZmxhZ3MgfD0g Tk9ERV9DT05ESVRJT05BTDsKKyAKKy0gIF9fcGl4ZWxfa2V5d29yZCA9IGdldF9pZGVudGlmaWVy ICgiX19waXhlbCIpOworLSAgQ19DUFBfSEFTSE5PREUgKF9fcGl4ZWxfa2V5d29yZCktPmZsYWdz IHw9IE5PREVfQ09ORElUSU9OQUw7CistCistICBfX2Jvb2xfa2V5d29yZCA9IGdldF9pZGVudGlm aWVyICgiX19ib29sIik7CistICBDX0NQUF9IQVNITk9ERSAoX19ib29sX2tleXdvcmQpLT5mbGFn cyB8PSBOT0RFX0NPTkRJVElPTkFMOworLQorICAgdmVjdG9yX2tleXdvcmQgPSBnZXRfaWRlbnRp ZmllciAoInZlY3RvciIpOworICAgQ19DUFBfSEFTSE5PREUgKHZlY3Rvcl9rZXl3b3JkKS0+Zmxh Z3MgfD0gTk9ERV9DT05ESVRJT05BTDsKKyAKKy0gIHBpeGVsX2tleXdvcmQgPSBnZXRfaWRlbnRp ZmllciAoInBpeGVsIik7CistICBDX0NQUF9IQVNITk9ERSAocGl4ZWxfa2V5d29yZCktPmZsYWdz IHw9IE5PREVfQ09ORElUSU9OQUw7CisrICBpZiAoVEFSR0VUX0FMVElWRUMpCisrICAgIHsKKysg ICAgICBfX3BpeGVsX2tleXdvcmQgPSBnZXRfaWRlbnRpZmllciAoIl9fcGl4ZWwiKTsKKysgICAg ICBDX0NQUF9IQVNITk9ERSAoX19waXhlbF9rZXl3b3JkKS0+ZmxhZ3MgfD0gTk9ERV9DT05ESVRJ T05BTDsKICsKKysgICAgICBfX2Jvb2xfa2V5d29yZCA9IGdldF9pZGVudGlmaWVyICgiX19ib29s Iik7CisrICAgICAgQ19DUFBfSEFTSE5PREUgKF9fYm9vbF9rZXl3b3JkKS0+ZmxhZ3MgfD0gTk9E RV9DT05ESVRJT05BTDsKICsKLS0tLSBnY2MvY29uZmlnL3JzNjAwMC9yczYwMDAtYy5jCSguLi4v dHJ1bmspCShyZXZpc2lvbiAxNDQ1NTcpCi0rKysgZ2NjL2NvbmZpZy9yczYwMDAvcnM2MDAwLWMu YwkoLi4uL2JyYW5jaGVzL2libS9wb3dlcjctbWVpc3NuZXIpCShyZXZpc2lvbiAxNDQ3MzApCi1A QCAtMjY1LDYgKzI2NSw4IEBAIHJzNjAwMF9jcHVfY3BwX2J1aWx0aW5zIChjcHBfcmVhZGVyICpw ZmkKKysgICAgICBwaXhlbF9rZXl3b3JkID0gZ2V0X2lkZW50aWZpZXIgKCJwaXhlbCIpOworKyAg ICAgIENfQ1BQX0hBU0hOT0RFIChwaXhlbF9rZXl3b3JkKS0+ZmxhZ3MgfD0gTk9ERV9DT05ESVRJ T05BTDsKKyAKKy0gIGJvb2xfa2V5d29yZCA9IGdldF9pZGVudGlmaWVyICgiYm9vbCIpOworLSAg Q19DUFBfSEFTSE5PREUgKGJvb2xfa2V5d29yZCktPmZsYWdzIHw9IE5PREVfQ09ORElUSU9OQUw7 CisrICAgICAgYm9vbF9rZXl3b3JkID0gZ2V0X2lkZW50aWZpZXIgKCJib29sIik7CisrICAgICAg Q19DUFBfSEFTSE5PREUgKGJvb2xfa2V5d29yZCktPmZsYWdzIHw9IE5PREVfQ09ORElUSU9OQUw7 CisrICAgIH0KKyB9CisgCisgLyogQ2FsbGVkIHRvIGRlY2lkZSB3aGV0aGVyIGEgY29uZGl0aW9u YWwgbWFjcm8gc2hvdWxkIGJlIGV4cGFuZGVkLgorQEAgLTIwNyw3ICsyMTMsOCBAQCByczYwMDBf bWFjcm9fdG9fZXhwYW5kIChjcHBfcmVhZGVyICpwZmlsCisgCSAgaWYgKHJpZF9jb2RlID09IFJJ RF9VTlNJR05FRCB8fCByaWRfY29kZSA9PSBSSURfTE9ORworIAkgICAgICB8fCByaWRfY29kZSA9 PSBSSURfU0hPUlQgfHwgcmlkX2NvZGUgPT0gUklEX1NJR05FRAorIAkgICAgICB8fCByaWRfY29k ZSA9PSBSSURfSU5UIHx8IHJpZF9jb2RlID09IFJJRF9DSEFSCistCSAgICAgIHx8IHJpZF9jb2Rl ID09IFJJRF9GTE9BVCkKKysJICAgICAgfHwgcmlkX2NvZGUgPT0gUklEX0ZMT0FUCisrCSAgICAg IHx8IChyaWRfY29kZSA9PSBSSURfRE9VQkxFICYmIFRBUkdFVF9WU1gpKQorIAkgICAgeworIAkg ICAgICBleHBhbmRfdGhpcyA9IENfQ1BQX0hBU0hOT0RFIChfX3ZlY3Rvcl9rZXl3b3JkKTsKKyAJ ICAgICAgLyogSWYgdGhlIG5leHQga2V5d29yZCBpcyBib29sIG9yIHBpeGVsLCBpdAorQEAgLTI3 NywxMyArMjg0LDE0IEBAIHJzNjAwMF9jcHVfY3BwX2J1aWx0aW5zIChjcHBfcmVhZGVyICpwZmkK ICAgICAgYnVpbHRpbl9kZWZpbmUgKCJfQVJDSF9QV1I2WCIpOwogICAgaWYgKCEgVEFSR0VUX1BP V0VSICYmICEgVEFSR0VUX1BPV0VSMiAmJiAhIFRBUkdFVF9QT1dFUlBDKQogICAgICBidWlsdGlu X2RlZmluZSAoIl9BUkNIX0NPTSIpOwpAQCAtMjkwMSw3ICszNTA2LDM0IEBAIHRlc3RzdWl0ZS8K ICAgIGlmIChUQVJHRVRfQUxUSVZFQykKICAgICAgewogICAgICAgIGJ1aWx0aW5fZGVmaW5lICgi X19BTFRJVkVDX18iKTsKLUBAIC0zMDYsNiArMzA4LDggQEAgcnM2MDAwX2NwdV9jcHBfYnVpbHRp bnMgKGNwcF9yZWFkZXIgKnBmaQorICAgICAgIGJ1aWx0aW5fZGVmaW5lICgiX19WRUNfXz0xMDIw NiIpOworIAorICAgICAgIC8qIERlZmluZSB0aGUgQWx0aVZlYyBzeW50YWN0aWMgZWxlbWVudHMu ICAqLworLSAgICAgIGJ1aWx0aW5fZGVmaW5lICgiX192ZWN0b3I9X19hdHRyaWJ1dGVfXygoYWx0 aXZlYyh2ZWN0b3JfXykpKSIpOworICAgICAgIGJ1aWx0aW5fZGVmaW5lICgiX19waXhlbD1fX2F0 dHJpYnV0ZV9fKChhbHRpdmVjKHBpeGVsX18pKSkgdW5zaWduZWQgc2hvcnQiKTsKKyAgICAgICBi dWlsdGluX2RlZmluZSAoIl9fYm9vbD1fX2F0dHJpYnV0ZV9fKChhbHRpdmVjKGJvb2xfXykpKSB1 bnNpZ25lZCIpOworIAorQEAgLTI5Miw5ICszMDAsMTggQEAgcnM2MDAwX2NwdV9jcHBfYnVpbHRp bnMgKGNwcF9yZWFkZXIgKnBmaQorIAkgIC8qIERlZmluZSB0aGlzIHdoZW4gc3VwcG9ydGluZyBj b250ZXh0LXNlbnNpdGl2ZSBrZXl3b3Jkcy4gICovCisgCSAgYnVpbHRpbl9kZWZpbmUgKCJfX0FQ UExFX0FMVElWRUNfXyIpOworIAkgIAorLQkgIGJ1aWx0aW5fZGVmaW5lICgidmVjdG9yPXZlY3Rv ciIpOworIAkgIGJ1aWx0aW5fZGVmaW5lICgicGl4ZWw9cGl4ZWwiKTsKKyAJICBidWlsdGluX2Rl ZmluZSAoImJvb2w9Ym9vbCIpOworKwl9CisrICAgIH0KKysgIGlmIChUQVJHRVRfQUxUSVZFQyB8 fCBUQVJHRVRfVlNYKQorKyAgICB7CisrICAgICAgLyogRGVmaW5lIHRoZSBBbHRpVmVjL1ZTWCBz eW50YWN0aWMgZWxlbWVudHMuICAqLworKyAgICAgIGJ1aWx0aW5fZGVmaW5lICgiX192ZWN0b3I9 X19hdHRyaWJ1dGVfXygoYWx0aXZlYyh2ZWN0b3JfXykpKSIpOworKworKyAgICAgIGlmICghZmxh Z19pc28pCisrCXsKKysJICBidWlsdGluX2RlZmluZSAoInZlY3Rvcj12ZWN0b3IiKTsKKyAJICBp bml0X3ZlY3Rvcl9rZXl3b3JkcyAoKTsKKyAKKyAJICAvKiBFbmFibGUgY29udGV4dC1zZW5zaXRp dmUgbWFjcm9zLiAgKi8KK0BAIC0zMTgsNiArMzM1LDggQEAgcnM2MDAwX2NwdV9jcHBfYnVpbHRp bnMgKGNwcF9yZWFkZXIgKnBmaQogICAgLyogVXNlZCBieSBsaWJzdGRjKysuICAqLwogICAgaWYg KFRBUkdFVF9OT19MV1NZTkMpCiAgICAgIGJ1aWx0aW5fZGVmaW5lICgiX19OT19MV1NZTkNfXyIp OwpAQCAtMjkxMCw5ICszNTQyLDExOSBAQCB0ZXN0c3VpdGUvCiAgCiAgICAvKiBNYXkgYmUgb3Zl cnJpZGRlbiBieSB0YXJnZXQgY29uZmlndXJhdGlvbi4gICovCiAgICBSUzYwMDBfQ1BVX0NQUF9F TkRJQU5fQlVJTFRJTlMoKTsKLS0tLSBnY2MvY29uZmlnL3JzNjAwMC9yczYwMDAub3B0CSguLi4v dHJ1bmspCShyZXZpc2lvbiAxNDQ1NTcpCi0rKysgZ2NjL2NvbmZpZy9yczYwMDAvcnM2MDAwLm9w dAkoLi4uL2JyYW5jaGVzL2libS9wb3dlcjctbWVpc3NuZXIpCShyZXZpc2lvbiAxNDQ3MzApCi1A QCAtMTExLDI0ICsxMTEsNDQgQEAgbWhhcmQtZmxvYXQKK0BAIC00OTYsNiArNTE1LDggQEAgY29u c3Qgc3RydWN0IGFsdGl2ZWNfYnVpbHRpbl90eXBlcyBhbHRpdgorICAgICBSUzYwMDBfQlRJX3Vu c2lnbmVkX1Y0U0ksIFJTNjAwMF9CVElfdW5zaWduZWRfVjRTSSwgUlM2MDAwX0JUSV91bnNpZ25l ZF9WNFNJLCAwIH0sCisgICB7IEFMVElWRUNfQlVJTFRJTl9WRUNfQURELCBBTFRJVkVDX0JVSUxU SU5fVkFEREZQLAorICAgICBSUzYwMDBfQlRJX1Y0U0YsIFJTNjAwMF9CVElfVjRTRiwgUlM2MDAw X0JUSV9WNFNGLCAwIH0sCisrICB7IEFMVElWRUNfQlVJTFRJTl9WRUNfQURELCBWU1hfQlVJTFRJ Tl9YVkFERERQLAorKyAgICBSUzYwMDBfQlRJX1YyREYsIFJTNjAwMF9CVElfVjJERiwgUlM2MDAw X0JUSV9WMkRGLCAwIH0sCisgICB7IEFMVElWRUNfQlVJTFRJTl9WRUNfVkFEREZQLCBBTFRJVkVD X0JVSUxUSU5fVkFEREZQLAorICAgICBSUzYwMDBfQlRJX1Y0U0YsIFJTNjAwMF9CVElfVjRTRiwg UlM2MDAwX0JUSV9WNFNGLCAwIH0sCisgICB7IEFMVElWRUNfQlVJTFRJTl9WRUNfVkFERFVXTSwg QUxUSVZFQ19CVUlMVElOX1ZBRERVV00sCitAQCAtNjM5LDYgKzY2MCwxMiBAQCBjb25zdCBzdHJ1 Y3QgYWx0aXZlY19idWlsdGluX3R5cGVzIGFsdGl2CisgICB7IEFMVElWRUNfQlVJTFRJTl9WRUNf QU5ELCBBTFRJVkVDX0JVSUxUSU5fVkFORCwKKyAgICAgUlM2MDAwX0JUSV9WNFNGLCBSUzYwMDBf QlRJX2Jvb2xfVjRTSSwgUlM2MDAwX0JUSV9WNFNGLCAwIH0sCisgICB7IEFMVElWRUNfQlVJTFRJ Tl9WRUNfQU5ELCBBTFRJVkVDX0JVSUxUSU5fVkFORCwKKysgICAgUlM2MDAwX0JUSV9WMkRGLCBS UzYwMDBfQlRJX1YyREYsIFJTNjAwMF9CVElfVjJERiwgMCB9LAorKyAgeyBBTFRJVkVDX0JVSUxU SU5fVkVDX0FORCwgQUxUSVZFQ19CVUlMVElOX1ZBTkQsCisrICAgIFJTNjAwMF9CVElfVjJERiwg UlM2MDAwX0JUSV9WMkRGLCBSUzYwMDBfQlRJX2Jvb2xfVjRTSSwgMCB9LAorKyAgeyBBTFRJVkVD X0JVSUxUSU5fVkVDX0FORCwgQUxUSVZFQ19CVUlMVElOX1ZBTkQsCisrICAgIFJTNjAwMF9CVElf VjJERiwgUlM2MDAwX0JUSV9ib29sX1Y0U0ksIFJTNjAwMF9CVElfVjJERiwgMCB9LAorKyAgeyBB TFRJVkVDX0JVSUxUSU5fVkVDX0FORCwgQUxUSVZFQ19CVUlMVElOX1ZBTkQsCisgICAgIFJTNjAw MF9CVElfYm9vbF9WNFNJLCBSUzYwMDBfQlRJX2Jvb2xfVjRTSSwgUlM2MDAwX0JUSV9ib29sX1Y0 U0ksIDAgfSwKKyAgIHsgQUxUSVZFQ19CVUlMVElOX1ZFQ19BTkQsIEFMVElWRUNfQlVJTFRJTl9W QU5ELAorICAgICBSUzYwMDBfQlRJX1Y0U0ksIFJTNjAwMF9CVElfYm9vbF9WNFNJLCBSUzYwMDBf QlRJX1Y0U0ksIDAgfSwKK0BAIC02ODcsNiArNzE0LDEyIEBAIGNvbnN0IHN0cnVjdCBhbHRpdmVj X2J1aWx0aW5fdHlwZXMgYWx0aXYKKyAgIHsgQUxUSVZFQ19CVUlMVElOX1ZFQ19BTkRDLCBBTFRJ VkVDX0JVSUxUSU5fVkFOREMsCisgICAgIFJTNjAwMF9CVElfVjRTRiwgUlM2MDAwX0JUSV9ib29s X1Y0U0ksIFJTNjAwMF9CVElfVjRTRiwgMCB9LAorICAgeyBBTFRJVkVDX0JVSUxUSU5fVkVDX0FO REMsIEFMVElWRUNfQlVJTFRJTl9WQU5EQywKKysgICAgUlM2MDAwX0JUSV9WMkRGLCBSUzYwMDBf QlRJX1YyREYsIFJTNjAwMF9CVElfVjJERiwgMCB9LAorKyAgeyBBTFRJVkVDX0JVSUxUSU5fVkVD X0FOREMsIEFMVElWRUNfQlVJTFRJTl9WQU5EQywKKysgICAgUlM2MDAwX0JUSV9WMkRGLCBSUzYw MDBfQlRJX1YyREYsIFJTNjAwMF9CVElfYm9vbF9WNFNJLCAwIH0sCisrICB7IEFMVElWRUNfQlVJ TFRJTl9WRUNfQU5EQywgQUxUSVZFQ19CVUlMVElOX1ZBTkRDLAorKyAgICBSUzYwMDBfQlRJX1Yy REYsIFJTNjAwMF9CVElfYm9vbF9WNFNJLCBSUzYwMDBfQlRJX1YyREYsIDAgfSwKKysgIHsgQUxU SVZFQ19CVUlMVElOX1ZFQ19BTkRDLCBBTFRJVkVDX0JVSUxUSU5fVkFOREMsCisgICAgIFJTNjAw MF9CVElfYm9vbF9WNFNJLCBSUzYwMDBfQlRJX2Jvb2xfVjRTSSwgUlM2MDAwX0JUSV9ib29sX1Y0 U0ksIDAgfSwKKyAgIHsgQUxUSVZFQ19CVUlMVElOX1ZFQ19BTkRDLCBBTFRJVkVDX0JVSUxUSU5f VkFOREMsCisgICAgIFJTNjAwMF9CVElfVjRTSSwgUlM2MDAwX0JUSV9ib29sX1Y0U0ksIFJTNjAw MF9CVElfVjRTSSwgMCB9LAorQEAgLTExOTAsNiArMTIyMyw4IEBAIGNvbnN0IHN0cnVjdCBhbHRp dmVjX2J1aWx0aW5fdHlwZXMgYWx0aXYKKyAgICAgUlM2MDAwX0JUSV9WNFNJLCBSUzYwMDBfQlRJ X1Y0U0ksIFJTNjAwMF9CVElfVjRTSSwgMCB9LAorICAgeyBBTFRJVkVDX0JVSUxUSU5fVkVDX01B WCwgQUxUSVZFQ19CVUlMVElOX1ZNQVhGUCwKKyAgICAgUlM2MDAwX0JUSV9WNFNGLCBSUzYwMDBf QlRJX1Y0U0YsIFJTNjAwMF9CVElfVjRTRiwgMCB9LAorKyAgeyBBTFRJVkVDX0JVSUxUSU5fVkVD X01BWCwgVlNYX0JVSUxUSU5fWFZNQVhEUCwKKysgICAgUlM2MDAwX0JUSV9WMkRGLCBSUzYwMDBf QlRJX1YyREYsIFJTNjAwMF9CVElfVjJERiwgMCB9LAorICAgeyBBTFRJVkVDX0JVSUxUSU5fVkVD X1ZNQVhGUCwgQUxUSVZFQ19CVUlMVElOX1ZNQVhGUCwKKyAgICAgUlM2MDAwX0JUSV9WNFNGLCBS UzYwMDBfQlRJX1Y0U0YsIFJTNjAwMF9CVElfVjRTRiwgMCB9LAorICAgeyBBTFRJVkVDX0JVSUxU SU5fVkVDX1ZNQVhTVywgQUxUSVZFQ19CVUlMVElOX1ZNQVhTVywKK0BAIC0xMzY2LDYgKzE0MDEs OCBAQCBjb25zdCBzdHJ1Y3QgYWx0aXZlY19idWlsdGluX3R5cGVzIGFsdGl2CisgICAgIFJTNjAw MF9CVElfVjRTSSwgUlM2MDAwX0JUSV9WNFNJLCBSUzYwMDBfQlRJX1Y0U0ksIDAgfSwKKyAgIHsg QUxUSVZFQ19CVUlMVElOX1ZFQ19NSU4sIEFMVElWRUNfQlVJTFRJTl9WTUlORlAsCisgICAgIFJT NjAwMF9CVElfVjRTRiwgUlM2MDAwX0JUSV9WNFNGLCBSUzYwMDBfQlRJX1Y0U0YsIDAgfSwKKysg IHsgQUxUSVZFQ19CVUlMVElOX1ZFQ19NSU4sIFZTWF9CVUlMVElOX1hWTUlORFAsCisrICAgIFJT NjAwMF9CVElfVjJERiwgUlM2MDAwX0JUSV9WMkRGLCBSUzYwMDBfQlRJX1YyREYsIDAgfSwKKyAg IHsgQUxUSVZFQ19CVUlMVElOX1ZFQ19WTUlORlAsIEFMVElWRUNfQlVJTFRJTl9WTUlORlAsCisg ICAgIFJTNjAwMF9CVElfVjRTRiwgUlM2MDAwX0JUSV9WNFNGLCBSUzYwMDBfQlRJX1Y0U0YsIDAg fSwKKyAgIHsgQUxUSVZFQ19CVUlMVElOX1ZFQ19WTUlOU1csIEFMVElWRUNfQlVJTFRJTl9WTUlO U1csCitAQCAtMTQ1MSw2ICsxNDg4LDggQEAgY29uc3Qgc3RydWN0IGFsdGl2ZWNfYnVpbHRpbl90 eXBlcyBhbHRpdgorICAgeyBBTFRJVkVDX0JVSUxUSU5fVkVDX05PUiwgQUxUSVZFQ19CVUlMVElO X1ZOT1IsCisgICAgIFJTNjAwMF9CVElfVjRTRiwgUlM2MDAwX0JUSV9WNFNGLCBSUzYwMDBfQlRJ X1Y0U0YsIDAgfSwKKyAgIHsgQUxUSVZFQ19CVUlMVElOX1ZFQ19OT1IsIEFMVElWRUNfQlVJTFRJ Tl9WTk9SLAorKyAgICBSUzYwMDBfQlRJX1YyREYsIFJTNjAwMF9CVElfVjJERiwgUlM2MDAwX0JU SV9WMkRGLCAwIH0sCisrICB7IEFMVElWRUNfQlVJTFRJTl9WRUNfTk9SLCBBTFRJVkVDX0JVSUxU SU5fVk5PUiwKKyAgICAgUlM2MDAwX0JUSV9WNFNJLCBSUzYwMDBfQlRJX1Y0U0ksIFJTNjAwMF9C VElfVjRTSSwgMCB9LAorICAgeyBBTFRJVkVDX0JVSUxUSU5fVkVDX05PUiwgQUxUSVZFQ19CVUlM VElOX1ZOT1IsCisgICAgIFJTNjAwMF9CVElfdW5zaWduZWRfVjRTSSwgUlM2MDAwX0JUSV91bnNp Z25lZF9WNFNJLCBSUzYwMDBfQlRJX3Vuc2lnbmVkX1Y0U0ksIDAgfSwKK0BAIC0xNDc1LDYgKzE1 MTQsMTIgQEAgY29uc3Qgc3RydWN0IGFsdGl2ZWNfYnVpbHRpbl90eXBlcyBhbHRpdgorICAgeyBB TFRJVkVDX0JVSUxUSU5fVkVDX09SLCBBTFRJVkVDX0JVSUxUSU5fVk9SLAorICAgICBSUzYwMDBf QlRJX1Y0U0YsIFJTNjAwMF9CVElfYm9vbF9WNFNJLCBSUzYwMDBfQlRJX1Y0U0YsIDAgfSwKKyAg IHsgQUxUSVZFQ19CVUlMVElOX1ZFQ19PUiwgQUxUSVZFQ19CVUlMVElOX1ZPUiwKKysgICAgUlM2 MDAwX0JUSV9WMkRGLCBSUzYwMDBfQlRJX1YyREYsIFJTNjAwMF9CVElfVjJERiwgMCB9LAorKyAg eyBBTFRJVkVDX0JVSUxUSU5fVkVDX09SLCBBTFRJVkVDX0JVSUxUSU5fVk9SLAorKyAgICBSUzYw MDBfQlRJX1YyREYsIFJTNjAwMF9CVElfVjJERiwgUlM2MDAwX0JUSV9ib29sX1Y0U0ksIDAgfSwK KysgIHsgQUxUSVZFQ19CVUlMVElOX1ZFQ19PUiwgQUxUSVZFQ19CVUlMVElOX1ZPUiwKKysgICAg UlM2MDAwX0JUSV9WMkRGLCBSUzYwMDBfQlRJX2Jvb2xfVjRTSSwgUlM2MDAwX0JUSV9WMkRGLCAw IH0sCisrICB7IEFMVElWRUNfQlVJTFRJTl9WRUNfT1IsIEFMVElWRUNfQlVJTFRJTl9WT1IsCisg ICAgIFJTNjAwMF9CVElfYm9vbF9WNFNJLCBSUzYwMDBfQlRJX2Jvb2xfVjRTSSwgUlM2MDAwX0JU SV9ib29sX1Y0U0ksIDAgfSwKKyAgIHsgQUxUSVZFQ19CVUlMVElOX1ZFQ19PUiwgQUxUSVZFQ19C VUlMVElOX1ZPUiwKKyAgICAgUlM2MDAwX0JUSV9WNFNJLCBSUzYwMDBfQlRJX2Jvb2xfVjRTSSwg UlM2MDAwX0JUSV9WNFNJLCAwIH0sCitAQCAtMTkzMiw2ICsxOTc3LDggQEAgY29uc3Qgc3RydWN0 IGFsdGl2ZWNfYnVpbHRpbl90eXBlcyBhbHRpdgorICAgICBSUzYwMDBfQlRJX3Vuc2lnbmVkX1Y0 U0ksIFJTNjAwMF9CVElfdW5zaWduZWRfVjRTSSwgUlM2MDAwX0JUSV91bnNpZ25lZF9WNFNJLCAw IH0sCisgICB7IEFMVElWRUNfQlVJTFRJTl9WRUNfU1VCLCBBTFRJVkVDX0JVSUxUSU5fVlNVQkZQ LAorICAgICBSUzYwMDBfQlRJX1Y0U0YsIFJTNjAwMF9CVElfVjRTRiwgUlM2MDAwX0JUSV9WNFNG LCAwIH0sCisrICB7IEFMVElWRUNfQlVJTFRJTl9WRUNfU1VCLCBWU1hfQlVJTFRJTl9YVlNVQkRQ LAorKyAgICBSUzYwMDBfQlRJX1YyREYsIFJTNjAwMF9CVElfVjJERiwgUlM2MDAwX0JUSV9WMkRG LCAwIH0sCisgICB7IEFMVElWRUNfQlVJTFRJTl9WRUNfVlNVQkZQLCBBTFRJVkVDX0JVSUxUSU5f VlNVQkZQLAorICAgICBSUzYwMDBfQlRJX1Y0U0YsIFJTNjAwMF9CVElfVjRTRiwgUlM2MDAwX0JU SV9WNFNGLCAwIH0sCisgICB7IEFMVElWRUNfQlVJTFRJTl9WRUNfVlNVQlVXTSwgQUxUSVZFQ19C VUlMVElOX1ZTVUJVV00sCitAQCAtMjA5MSw2ICsyMTM4LDEyIEBAIGNvbnN0IHN0cnVjdCBhbHRp dmVjX2J1aWx0aW5fdHlwZXMgYWx0aXYKKyAgIHsgQUxUSVZFQ19CVUlMVElOX1ZFQ19YT1IsIEFM VElWRUNfQlVJTFRJTl9WWE9SLAorICAgICBSUzYwMDBfQlRJX1Y0U0YsIFJTNjAwMF9CVElfYm9v bF9WNFNJLCBSUzYwMDBfQlRJX1Y0U0YsIDAgfSwKKyAgIHsgQUxUSVZFQ19CVUlMVElOX1ZFQ19Y T1IsIEFMVElWRUNfQlVJTFRJTl9WWE9SLAorKyAgICBSUzYwMDBfQlRJX1YyREYsIFJTNjAwMF9C VElfVjJERiwgUlM2MDAwX0JUSV9WMkRGLCAwIH0sCisrICB7IEFMVElWRUNfQlVJTFRJTl9WRUNf WE9SLCBBTFRJVkVDX0JVSUxUSU5fVlhPUiwKKysgICAgUlM2MDAwX0JUSV9WMkRGLCBSUzYwMDBf QlRJX1YyREYsIFJTNjAwMF9CVElfYm9vbF9WNFNJLCAwIH0sCisrICB7IEFMVElWRUNfQlVJTFRJ Tl9WRUNfWE9SLCBBTFRJVkVDX0JVSUxUSU5fVlhPUiwKKysgICAgUlM2MDAwX0JUSV9WMkRGLCBS UzYwMDBfQlRJX2Jvb2xfVjRTSSwgUlM2MDAwX0JUSV9WMkRGLCAwIH0sCisrICB7IEFMVElWRUNf QlVJTFRJTl9WRUNfWE9SLCBBTFRJVkVDX0JVSUxUSU5fVlhPUiwKKyAgICAgUlM2MDAwX0JUSV9i b29sX1Y0U0ksIFJTNjAwMF9CVElfYm9vbF9WNFNJLCBSUzYwMDBfQlRJX2Jvb2xfVjRTSSwgMCB9 LAorICAgeyBBTFRJVkVDX0JVSUxUSU5fVkVDX1hPUiwgQUxUSVZFQ19CVUlMVElOX1ZYT1IsCisg ICAgIFJTNjAwMF9CVElfVjRTSSwgUlM2MDAwX0JUSV9ib29sX1Y0U0ksIFJTNjAwMF9CVElfVjRT SSwgMCB9LAorQEAgLTI5ODEsOCArMzAzNCwxMCBAQCBhbHRpdmVjX3Jlc29sdmVfb3ZlcmxvYWRl ZF9idWlsdGluICh0cmVlCisgICBjb25zdCBzdHJ1Y3QgYWx0aXZlY19idWlsdGluX3R5cGVzICpk ZXNjOworICAgaW50IG47CisgCistICBpZiAoZmNvZGUgPCBBTFRJVkVDX0JVSUxUSU5fT1ZFUkxP QURFRF9GSVJTVAorLSAgICAgIHx8IGZjb2RlID4gQUxUSVZFQ19CVUlMVElOX09WRVJMT0FERURf TEFTVCkKKysgIGlmICgoZmNvZGUgPCBBTFRJVkVDX0JVSUxUSU5fT1ZFUkxPQURFRF9GSVJTVAor KyAgICAgICB8fCBmY29kZSA+IEFMVElWRUNfQlVJTFRJTl9PVkVSTE9BREVEX0xBU1QpCisrICAg ICAgJiYgKGZjb2RlIDwgVlNYX0JVSUxUSU5fT1ZFUkxPQURFRF9GSVJTVAorKwkgIHx8IGZjb2Rl ID4gVlNYX0JVSUxUSU5fT1ZFUkxPQURFRF9MQVNUKSkKKyAgICAgcmV0dXJuIE5VTExfVFJFRTsK KyAKKyAgIC8qIEZvciBub3cgdHJlYXQgdmVjX3NwbGF0cyBhbmQgdmVjX3Byb21vdGUgYXMgdGhl IHNhbWUuICAqLworLS0tIGdjYy9jb25maWcvcnM2MDAwL3JzNjAwMC5vcHQJKC4uLi90cnVuaykJ KHJldmlzaW9uIDE0NTc3NykKKysrKyBnY2MvY29uZmlnL3JzNjAwMC9yczYwMDAub3B0CSguLi4v YnJhbmNoZXMvaWJtL3Bvd2VyNy1tZWlzc25lcikJKHJldmlzaW9uIDE0NjAyNykKK0BAIC0xMTEs MjQgKzExMSw2MCBAQCBtaGFyZC1mbG9hdAogIFRhcmdldCBSZXBvcnQgUmVqZWN0TmVnYXRpdmUg SW52ZXJzZU1hc2soU09GVF9GTE9BVCwgSEFSRF9GTE9BVCkKICBVc2UgaGFyZHdhcmUgZmxvYXRp bmcgcG9pbnQKICAKQEAgLTI5MjgsMjQgKzM2NzAsNDAgQEAgdGVzdHN1aXRlLwogK1VzZSB2ZWN0 b3Ivc2NhbGFyIChWU1gpIGluc3RydWN0aW9ucwogKwogK212c3gtdmVjdG9yLW1lbW9yeQotK1Rh cmdldCBSZXBvcnQgVmFyKFRBUkdFVF9WU1hfVkVDVE9SX01FTU9SWSkgSW5pdCgtMSkKLStJZiAt bXZzeCwgdXNlIFZTWCB2ZWN0b3IgbG9hZC9zdG9yZSBpbnN0cnVjdGlvbnMgaW5zdGVhZCBvZiBB bHRpdmVjIGluc3RydWN0aW9ucworK1RhcmdldCBVbmRvY3VtZW50ZWQgUmVwb3J0IFZhcihUQVJH RVRfVlNYX1ZFQ1RPUl9NRU1PUlkpIEluaXQoLTEpCisrOyBJZiAtbXZzeCwgdXNlIFZTWCB2ZWN0 b3IgbG9hZC9zdG9yZSBpbnN0cnVjdGlvbnMgaW5zdGVhZCBvZiBBbHRpdmVjIGluc3RydWN0aW9u cwogKwogK212c3gtdmVjdG9yLWZsb2F0Ci0rVGFyZ2V0IFJlcG9ydCBWYXIoVEFSR0VUX1ZTWF9W RUNUT1JfRkxPQVQpIEluaXQoLTEpCi0rSWYgLW12c3gsIHVzZSBWU1ggYXJpdGhtZXRpYyBpbnN0 cnVjdGlvbnMgZm9yIGZsb2F0IHZlY3RvcnMgKG9uIGJ5IGRlZmF1bHQpCisrVGFyZ2V0IFVuZG9j dW1lbnRlZCBSZXBvcnQgVmFyKFRBUkdFVF9WU1hfVkVDVE9SX0ZMT0FUKSBJbml0KC0xKQorKzsg SWYgLW12c3gsIHVzZSBWU1ggYXJpdGhtZXRpYyBpbnN0cnVjdGlvbnMgZm9yIGZsb2F0IHZlY3Rv cnMgKG9uIGJ5IGRlZmF1bHQpCiArCiArbXZzeC12ZWN0b3ItZG91YmxlCi0rVGFyZ2V0IFJlcG9y dCBWYXIoVEFSR0VUX1ZTWF9WRUNUT1JfRE9VQkxFKSBJbml0KC0xKQotK0lmIC1tdnN4LCB1c2Ug VlNYIGFyaXRobWV0aWMgaW5zdHJ1Y3Rpb25zIGZvciBkb3VibGUgdmVjdG9ycyAob24gYnkgZGVm YXVsdCkKKytUYXJnZXQgVW5kb2N1bWVudGVkIFJlcG9ydCBWYXIoVEFSR0VUX1ZTWF9WRUNUT1Jf RE9VQkxFKSBJbml0KC0xKQorKzsgSWYgLW12c3gsIHVzZSBWU1ggYXJpdGhtZXRpYyBpbnN0cnVj dGlvbnMgZm9yIGRvdWJsZSB2ZWN0b3JzIChvbiBieSBkZWZhdWx0KQogKwogK212c3gtc2NhbGFy LWRvdWJsZQotK1RhcmdldCBSZXBvcnQgVmFyKFRBUkdFVF9WU1hfU0NBTEFSX0RPVUJMRSkgSW5p dCgtMSkKLStJZiAtbXZzeCwgdXNlIFZTWCBhcml0aG1ldGljIGluc3RydWN0aW9ucyBmb3Igc2Nh bGFyIGRvdWJsZSAob24gYnkgZGVmYXVsdCkKKytUYXJnZXQgVW5kb2N1bWVudGVkIFJlcG9ydCBW YXIoVEFSR0VUX1ZTWF9TQ0FMQVJfRE9VQkxFKSBJbml0KC0xKQorKzsgSWYgLW12c3gsIHVzZSBW U1ggYXJpdGhtZXRpYyBpbnN0cnVjdGlvbnMgZm9yIHNjYWxhciBkb3VibGUgKG9uIGJ5IGRlZmF1 bHQpCiArCiArbXZzeC1zY2FsYXItbWVtb3J5Ci0rVGFyZ2V0IFJlcG9ydCBWYXIoVEFSR0VUX1ZT WF9TQ0FMQVJfTUVNT1JZKQotK0lmIC1tdnN4LCB1c2UgVlNYIHNjYWxhciBtZW1vcnkgcmVmZXJl bmNlIGluc3RydWN0aW9ucyBmb3Igc2NhbGFyIGRvdWJsZSAob2ZmIGJ5IGRlZmF1bHQpCisrVGFy Z2V0IFVuZG9jdW1lbnRlZCBSZXBvcnQgVmFyKFRBUkdFVF9WU1hfU0NBTEFSX01FTU9SWSkKKys7 IElmIC1tdnN4LCB1c2UgVlNYIHNjYWxhciBtZW1vcnkgcmVmZXJlbmNlIGluc3RydWN0aW9ucyBm b3Igc2NhbGFyIGRvdWJsZSAob2ZmIGJ5IGRlZmF1bHQpCisrCisrbXZzeC12NHNmLWFsdGl2ZWMt cmVncworK1RhcmdldCBVbmRvY3VtZW50ZWQgUmVwb3J0IFZhcihUQVJHRVRfVjRTRl9BTFRJVkVD X1JFR1MpIEluaXQoLTEpCisrOyBJZiAtbXZzeCwgcHJlZmVyIFY0U0YgdHlwZXMgdG8gdXNlIEFs dGl2ZWMgcmVncyBhbmQgbm90IHRoZSBmbG9hdGluZyByZWdpc3RlcnMKKysKKyttcmVsb2FkLWZ1 bmN0aW9ucworK1RhcmdldCBVbmRvY3VtZW50ZWQgUmVwb3J0IFZhcihUQVJHRVRfUkVMT0FEX0ZV TkNUSU9OUykgSW5pdCgtMSkKKys7IElmIC1tdnN4IG9yIC1tYWx0aXZlYywgZW5hYmxlIHJlbG9h ZCBmdW5jdGlvbnMKKysKKyttcG93ZXI3LWFkanVzdC1jb3N0CisrVGFyZ2V0IFVuZG9jdW1lbnRl ZCBWYXIoVEFSR0VUX1BPV0VSN19BREpVU1RfQ09TVCkKKys7IEFkZCBleHRyYSBjb3N0IGZvciBz ZXR0aW5nIENSIHJlZ2lzdGVycyBiZWZvcmUgYSBicmFuY2ggbGlrZSBpcyBkb25lIGZvciBQb3dl cjUKKysKKyttZGlzYWxsb3ctZmxvYXQtaW4tbHItY3RyCisrVGFyZ2V0IFVuZG9jdW1lbnRlZCBW YXIoVEFSR0VUX0RJU0FMTE9XX0ZMT0FUX0lOX0xSX0NUUikgSW5pdCgtMSkKKys7IERpc2FsbG93 IGZsb2F0aW5nIHBvaW50IGluIExSIG9yIENUUiwgY2F1c2VzIHNvbWUgcmVsb2FkIGJ1Z3MKICAK ICBtdXBkYXRlCiAtVGFyZ2V0IFJlcG9ydCBSZWplY3ROZWdhdGl2ZSBJbnZlcnNlTWFzayhOT19V UERBVEUsIFVQREFURSkKQEAgLTI5NjYsNyArMzcyNCw3IEBAIHRlc3RzdWl0ZS8KICBHZW5lcmF0 ZSBmdXNlZCBtdWx0aXBseS9hZGQgaW5zdHJ1Y3Rpb25zCiAgCiAgbXNjaGVkLXByb2xvZwotQEAg LTE5NCw3ICsyMTQsNyBAQCBUYXJnZXQgUmVqZWN0TmVnYXRpdmUgSm9pbmVkCitAQCAtMTk0LDcg KzIzMCw3IEBAIFRhcmdldCBSZWplY3ROZWdhdGl2ZSBKb2luZWQKICAtbXZyc2F2ZT15ZXMvbm8J RGVwcmVjYXRlZCBvcHRpb24uICBVc2UgLW12cnNhdmUvLW1uby12cnNhdmUgaW5zdGVhZAogIAog IG1pc2VsCkBAIC0yOTc1LDggKzM3MzMsOCBAQCB0ZXN0c3VpdGUvCiAgR2VuZXJhdGUgaXNlbCBp bnN0cnVjdGlvbnMKICAKICBtaXNlbD0KLS0tLSBnY2MvY29uZmlnL3JzNjAwMC9saW51eDY0LmgJ KC4uLi90cnVuaykJKHJldmlzaW9uIDE0NDU1NykKLSsrKyBnY2MvY29uZmlnL3JzNjAwMC9saW51 eDY0LmgJKC4uLi9icmFuY2hlcy9pYm0vcG93ZXI3LW1laXNzbmVyKQkocmV2aXNpb24gMTQ0NzMw KQorLS0tIGdjYy9jb25maWcvcnM2MDAwL2xpbnV4NjQuaAkoLi4uL3RydW5rKQkocmV2aXNpb24g MTQ1Nzc3KQorKysrIGdjYy9jb25maWcvcnM2MDAwL2xpbnV4NjQuaAkoLi4uL2JyYW5jaGVzL2li bS9wb3dlcjctbWVpc3NuZXIpCShyZXZpc2lvbiAxNDYwMjcpCiBAQCAtMTE0LDcgKzExNCw3IEBA IGV4dGVybiBpbnQgZG90X3N5bWJvbHM7CiAgCSAgICBlcnJvciAoSU5WQUxJRF8zMkJJVCwgIjMy Iik7CQkJXAogIAkgIGlmIChUQVJHRVRfUFJPRklMRV9LRVJORUwpCQkJCVwKQEAgLTI5ODYsOCAr Mzc0NCw4IEBAIHRlc3RzdWl0ZS8KICAJICAgICAgZXJyb3IgKElOVkFMSURfMzJCSVQsICJwcm9m aWxlLWtlcm5lbCIpOwkJXAogIAkgICAgfQkJCQkJCQlcCiAgCX0JCQkJCQkJXAotLS0tIGdjYy9j b25maWcvcnM2MDAwL3JzNjAwMC5jCSguLi4vdHJ1bmspCShyZXZpc2lvbiAxNDQ1NTcpCi0rKysg Z2NjL2NvbmZpZy9yczYwMDAvcnM2MDAwLmMJKC4uLi9icmFuY2hlcy9pYm0vcG93ZXI3LW1laXNz bmVyKQkocmV2aXNpb24gMTQ0NzMwKQorLS0tIGdjYy9jb25maWcvcnM2MDAwL3JzNjAwMC5jCSgu Li4vdHJ1bmspCShyZXZpc2lvbiAxNDU3NzcpCisrKysgZ2NjL2NvbmZpZy9yczYwMDAvcnM2MDAw LmMJKC4uLi9icmFuY2hlcy9pYm0vcG93ZXI3LW1laXNzbmVyKQkocmV2aXNpb24gMTQ2MDI3KQog QEAgLTE3OCw5ICsxNzgsNiBAQCBpbnQgcnM2MDAwX3NwZTsKICAvKiBOb256ZXJvIGlmIHdlIHdh bnQgU1BFIEFCSSBleHRlbnNpb25zLiAgKi8KICBpbnQgcnM2MDAwX3NwZV9hYmk7CkBAIC0yOTk4 LDI2ICszNzU2LDM1IEBAIHRlc3RzdWl0ZS8KICAvKiBOb256ZXJvIGlmIGZsb2F0aW5nIHBvaW50 IG9wZXJhdGlvbnMgYXJlIGRvbmUgaW4gdGhlIEdQUnMuICAqLwogIGludCByczYwMDBfZmxvYXRf Z3BycyA9IDA7CiAgCi1AQCAtMjI3LDEwICsyMjQsMTggQEAgaW50IGRvdF9zeW1ib2xzOworQEAg LTIyNywxMiArMjI0LDI2IEBAIGludCBkb3Rfc3ltYm9sczsKICBjb25zdCBjaGFyICpyczYwMDBf ZGVidWdfbmFtZTsKICBpbnQgcnM2MDAwX2RlYnVnX3N0YWNrOwkJLyogZGVidWcgc3RhY2sgYXBw bGljYXRpb25zICovCiAgaW50IHJzNjAwMF9kZWJ1Z19hcmc7CQkvKiBkZWJ1ZyBhcmd1bWVudCBo YW5kbGluZyAqLwogK2ludCByczYwMDBfZGVidWdfcmVnOwkJLyogZGVidWcgcmVnaXN0ZXIgY2xh c3NlcyAqLwogK2ludCByczYwMDBfZGVidWdfYWRkcjsJCS8qIGRlYnVnIG1lbW9yeSBhZGRyZXNz aW5nICovCisraW50IHJzNjAwMF9kZWJ1Z19jb3N0OwkJLyogZGVidWcgcnR4X2Nvc3RzICovCiAg CiAgLyogVmFsdWUgaXMgVFJVRSBpZiByZWdpc3Rlci9tb2RlIHBhaXIgaXMgYWNjZXB0YWJsZS4g ICovCiAgYm9vbCByczYwMDBfaGFyZF9yZWdub19tb2RlX29rX3BbTlVNX01BQ0hJTkVfTU9ERVNd W0ZJUlNUX1BTRVVET19SRUdJU1RFUl07CiAgCistLyogQnVpbHQgaW4gdHlwZXMuICAqLwogKy8q IE1heGltdW0gbnVtYmVyIG9mIHJlZ2lzdGVycyBuZWVkZWQgZm9yIGEgZ2l2ZW4gcmVnaXN0ZXIg Y2xhc3MgYW5kIG1vZGUuICAqLwogK3Vuc2lnbmVkIGNoYXIgcnM2MDAwX2NsYXNzX21heF9ucmVn c1tOVU1fTUFDSElORV9NT0RFU11bTElNX1JFR19DTEFTU0VTXTsKICsKICsvKiBIb3cgbWFueSBy ZWdpc3RlcnMgYXJlIG5lZWRlZCBmb3IgYSBnaXZlbiByZWdpc3RlciBhbmQgbW9kZS4gICovCiAr dW5zaWduZWQgY2hhciByczYwMDBfaGFyZF9yZWdub19ucmVnc1tOVU1fTUFDSElORV9NT0RFU11b RklSU1RfUFNFVURPX1JFR0lTVEVSXTsKICsKLSAvKiBCdWlsdCBpbiB0eXBlcy4gICovCisrLyog TWFwIHJlZ2lzdGVyIG51bWJlciB0byByZWdpc3RlciBjbGFzcy4gICovCisrZW51bSByZWdfY2xh c3MgcnM2MDAwX3JlZ25vX3JlZ2NsYXNzW0ZJUlNUX1BTRVVET19SRUdJU1RFUl07CiAgCisrLyog UmVsb2FkIGZ1bmN0aW9ucyBiYXNlZCBvbiB0aGUgdHlwZSBhbmQgdGhlIHZlY3RvciB1bml0LiAg Ki8KKytzdGF0aWMgZW51bSBpbnNuX2NvZGUgcnM2MDAwX3ZlY3Rvcl9yZWxvYWRbTlVNX01BQ0hJ TkVfTU9ERVNdWzJdOworKworKy8qIEJ1aWx0IGluIHR5cGVzLiAgKi8KICB0cmVlIHJzNjAwMF9i dWlsdGluX3R5cGVzW1JTNjAwMF9CVElfTUFYXTsKLUBAIC0yNzAsNyArMjc1LDYgQEAgc3RydWN0 IHsKKyB0cmVlIHJzNjAwMF9idWlsdGluX2RlY2xzW1JTNjAwMF9CVUlMVElOX0NPVU5UXTsKKyAK K0BAIC0yNzAsNyArMjgxLDYgQEAgc3RydWN0IHsKICAgIGJvb2wgYWx0aXZlY19hYmk7CQkvKiBU cnVlIGlmIC1tYWJpPWFsdGl2ZWMvbm8tYWx0aXZlYyB1c2VkLiAgKi8KICAgIGJvb2wgc3BlOwkJ CS8qIFRydWUgaWYgLW1zcGU9IHdhcyB1c2VkLiAgKi8KICAgIGJvb2wgZmxvYXRfZ3ByczsJCS8q IFRydWUgaWYgLW1mbG9hdC1ncHJzPSB3YXMgdXNlZC4gICovCkBAIC0zMDI1LDcgKzM3OTIsNyBA QCB0ZXN0c3VpdGUvCiAgICBib29sIGxvbmdfZG91YmxlOwkgICAgICAgIC8qIFRydWUgaWYgLW1s b25nLWRvdWJsZS0gd2FzIHVzZWQuICAqLwogICAgYm9vbCBpZWVlOwkJCS8qIFRydWUgaWYgLW1h Ymk9aWVlZS9pYm1sb25nZG91YmxlIHVzZWQuICAqLwogICAgYm9vbCB2cnNhdmU7CQkJLyogVHJ1 ZSBpZiAtbXZyc2F2ZSB3YXMgdXNlZC4gICovCi1AQCAtMjg2LDYgKzI5MCwxOCBAQCBzdHJ1Y3Qg YnVpbHRpbl9kZXNjcmlwdGlvbgorQEAgLTI4Niw2ICsyOTYsMTggQEAgc3RydWN0IGJ1aWx0aW5f ZGVzY3JpcHRpb24KICAgIGNvbnN0IGNoYXIgKmNvbnN0IG5hbWU7CiAgICBjb25zdCBlbnVtIHJz NjAwMF9idWlsdGlucyBjb2RlOwogIH07CkBAIC0zMDQ0LDcgKzM4MTEsNyBAQCB0ZXN0c3VpdGUv CiAgDAogIC8qIFRhcmdldCBjcHUgY29zdHMuICAqLwogIAotQEAgLTc0OSw2ICs3NjUsMjUgQEAg c3RydWN0IHByb2Nlc3Nvcl9jb3N0cyBwb3dlcjZfY29zdCA9IHsKK0BAIC03NDksNiArNzcxLDI1 IEBAIHN0cnVjdCBwcm9jZXNzb3JfY29zdHMgcG93ZXI2X2Nvc3QgPSB7CiAgICAxNiwJCQkvKiBw cmVmZXRjaCBzdHJlYW1zICovCiAgfTsKICAKQEAgLTMwNzAsNyArMzgzNywyNiBAQCB0ZXN0c3Vp dGUvCiAgDAogIHN0YXRpYyBib29sIHJzNjAwMF9mdW5jdGlvbl9va19mb3Jfc2liY2FsbCAodHJl ZSwgdHJlZSk7CiAgc3RhdGljIGNvbnN0IGNoYXIgKnJzNjAwMF9pbnZhbGlkX3dpdGhpbl9kb2xv b3AgKGNvbnN0X3J0eCk7Ci1AQCAtOTYzLDEyICs5OTgsMTAgQEAgc3RhdGljIHRyZWUgcnM2MDAw X2dpbXBsaWZ5X3ZhX2FyZyAodHJlZQorQEAgLTgyNyw3ICs4NjgsMTAgQEAgc3RhdGljIHZvaWQg cnM2MDAwX3hjb2ZmX2ZpbGVfZW5kICh2b2lkKQorICNlbmRpZgorIHN0YXRpYyBpbnQgcnM2MDAw X3ZhcmlhYmxlX2lzc3VlIChGSUxFICosIGludCwgcnR4LCBpbnQpOworIHN0YXRpYyBib29sIHJz NjAwMF9ydHhfY29zdHMgKHJ0eCwgaW50LCBpbnQsIGludCAqLCBib29sKTsKKytzdGF0aWMgYm9v bCByczYwMDBfZGVidWdfcnR4X2Nvc3RzIChydHgsIGludCwgaW50LCBpbnQgKiwgYm9vbCk7Cisr c3RhdGljIGludCByczYwMDBfZGVidWdfYWRkcmVzc19jb3N0IChydHgsIGJvb2wpOworIHN0YXRp YyBpbnQgcnM2MDAwX2FkanVzdF9jb3N0IChydHgsIHJ0eCwgcnR4LCBpbnQpOworK3N0YXRpYyBp bnQgcnM2MDAwX2RlYnVnX2FkanVzdF9jb3N0IChydHgsIHJ0eCwgcnR4LCBpbnQpOworIHN0YXRp YyB2b2lkIHJzNjAwMF9zY2hlZF9pbml0IChGSUxFICosIGludCwgaW50KTsKKyBzdGF0aWMgYm9v bCBpc19taWNyb2NvZGVkX2luc24gKHJ0eCk7Cisgc3RhdGljIGJvb2wgaXNfbm9ucGlwZWxpbmVf aW5zbiAocnR4KTsKK0BAIC05MDYsNiArOTUwLDcgQEAgc3RhdGljIHJ0eCBhbHRpdmVjX2V4cGFu ZF9zdHZfYnVpbHRpbiAoZQorIHN0YXRpYyBydHggYWx0aXZlY19leHBhbmRfdmVjX2luaXRfYnVp bHRpbiAodHJlZSwgdHJlZSwgcnR4KTsKKyBzdGF0aWMgcnR4IGFsdGl2ZWNfZXhwYW5kX3ZlY19z ZXRfYnVpbHRpbiAodHJlZSk7Cisgc3RhdGljIHJ0eCBhbHRpdmVjX2V4cGFuZF92ZWNfZXh0X2J1 aWx0aW4gKHRyZWUsIHJ0eCk7Cisrc3RhdGljIHJ0eCB2c3hfZXhwYW5kX2J1aWx0aW4gKHRyZWUs IHJ0eCwgYm9vbCAqKTsKKyBzdGF0aWMgaW50IGdldF9lbGVtZW50X251bWJlciAodHJlZSwgdHJl ZSk7Cisgc3RhdGljIGJvb2wgcnM2MDAwX2hhbmRsZV9vcHRpb24gKHNpemVfdCwgY29uc3QgY2hh ciAqLCBpbnQpOworIHN0YXRpYyB2b2lkIHJzNjAwMF9wYXJzZV90bHNfc2l6ZV9vcHRpb24gKHZv aWQpOworQEAgLTk2MywxNCArMTAwOCwxNiBAQCBzdGF0aWMgdHJlZSByczYwMDBfZ2ltcGxpZnlf dmFfYXJnICh0cmVlCiAgc3RhdGljIGJvb2wgcnM2MDAwX211c3RfcGFzc19pbl9zdGFjayAoZW51 bSBtYWNoaW5lX21vZGUsIGNvbnN0X3RyZWUpOwogIHN0YXRpYyBib29sIHJzNjAwMF9zY2FsYXJf bW9kZV9zdXBwb3J0ZWRfcCAoZW51bSBtYWNoaW5lX21vZGUpOwogIHN0YXRpYyBib29sIHJzNjAw MF92ZWN0b3JfbW9kZV9zdXBwb3J0ZWRfcCAoZW51bSBtYWNoaW5lX21vZGUpOwpAQCAtMzA4NCw4 ICszODcwLDE0IEBAIHRlc3RzdWl0ZS8KIC1zdGF0aWMgdm9pZCByczYwMDBfZW1pdF92ZWN0b3Jf c2VsZWN0IChydHgsIHJ0eCwgcnR4LCBydHgpOwogIHN0YXRpYyB0cmVlIHJzNjAwMF9zdGFja19w cm90ZWN0X2ZhaWwgKHZvaWQpOwogIAorK3N0YXRpYyBlbnVtIHJlZ19jbGFzcyByczYwMDBfc2Vj b25kYXJ5X3JlbG9hZCAoYm9vbCwgcnR4LCBlbnVtIHJlZ19jbGFzcywKKysJCQkJCSAgICAgICBl bnVtIG1hY2hpbmVfbW9kZSwKKysJCQkJCSAgICAgICBzdHJ1Y3Qgc2Vjb25kYXJ5X3JlbG9hZF9p bmZvICopOworKwogIGNvbnN0IGludCBJTlNOX05PVF9BVkFJTEFCTEUgPSAtMTsKLUBAIC0xMDQ1 LDYgKzEwNzgsOSBAQCBzdGF0aWMgY29uc3QgY2hhciBhbHRfcmVnX25hbWVzW11bOF0gPQorIHN0 YXRpYyBlbnVtIG1hY2hpbmVfbW9kZSByczYwMDBfZWhfcmV0dXJuX2ZpbHRlcl9tb2RlICh2b2lk KTsKKyAKK0BAIC0xMDQ1LDYgKzEwOTIsOSBAQCBzdGF0aWMgY29uc3QgY2hhciBhbHRfcmVnX25h bWVzW11bOF0gPQogICNlbmRpZgogICNpZm5kZWYgVEFSR0VUX1BST0ZJTEVfS0VSTkVMCiAgI2Rl ZmluZSBUQVJHRVRfUFJPRklMRV9LRVJORUwgMApAQCAtMzA5NSw4ICszODg3LDEzIEBAIHRlc3Rz dWl0ZS8KICAjZW5kaWYKICAKICAvKiBUaGUgVlJTQVZFIGJpdG1hc2sgcHV0cyBiaXQgJXYwIGFz IHRoZSBtb3N0IHNpZ25pZmljYW50IGJpdC4gICovCi1AQCAtMTI5OSwyOCArMTMzNSw5NiBAQCBz dGF0aWMgY29uc3QgY2hhciBhbHRfcmVnX25hbWVzW11bOF0gPQorQEAgLTEyOTcsMzAgKzEzNDcs MTAxIEBAIHN0YXRpYyBjb25zdCBjaGFyIGFsdF9yZWdfbmFtZXNbXVs4XSA9CisgI3VuZGVmIFRB UkdFVF9JTlNUQU5USUFURV9ERUNMUworICNkZWZpbmUgVEFSR0VUX0lOU1RBTlRJQVRFX0RFQ0xT IHJzNjAwMF9pbnN0YW50aWF0ZV9kZWNscwogIAorKyN1bmRlZiBUQVJHRVRfU0VDT05EQVJZX1JF TE9BRAorKyNkZWZpbmUgVEFSR0VUX1NFQ09OREFSWV9SRUxPQUQgcnM2MDAwX3NlY29uZGFyeV9y ZWxvYWQKKysKICBzdHJ1Y3QgZ2NjX3RhcmdldCB0YXJnZXRtID0gVEFSR0VUX0lOSVRJQUxJWkVS OwogIAwKICsvKiBSZXR1cm4gbnVtYmVyIG9mIGNvbnNlY3V0aXZlIGhhcmQgcmVncyBuZWVkZWQg c3RhcnRpbmcgYXQgcmVnIFJFR05PCkBAIC0zMjAyLDcgKzM5OTksNyBAQCB0ZXN0c3VpdGUvCiAg CiAgICAvKiBUaGUgQ1IgcmVnaXN0ZXIgY2FuIG9ubHkgaG9sZCBDQyBtb2Rlcy4gICovCiAgICBp ZiAoQ1JfUkVHTk9fUCAocmVnbm8pKQotQEAgLTEzMzEsMjggKzE0MzUsMzEyIEBAIHJzNjAwMF9o YXJkX3JlZ25vX21vZGVfb2sgKGludCByZWdubywgZW4KK0BAIC0xMzMxLDI4ICsxNDUyLDM4OSBA QCByczYwMDBfaGFyZF9yZWdub19tb2RlX29rIChpbnQgcmVnbm8sIGVuCiAgCiAgICAvKiBBbHRp VmVjIG9ubHkgaW4gQWxkeVZlYyByZWdpc3RlcnMuICAqLwogICAgaWYgKEFMVElWRUNfUkVHTk9f UCAocmVnbm8pKQpAQCAtMzIxNSwxMCArNDAxMiwxNiBAQCB0ZXN0c3VpdGUvCiAgCiAtICAvKiBX ZSBjYW5ub3QgcHV0IFRJbW9kZSBhbnl3aGVyZSBleGNlcHQgZ2VuZXJhbCByZWdpc3RlciBhbmQg aXQgbXVzdCBiZQogLSAgICAgYWJsZSB0byBmaXQgd2l0aGluIHRoZSByZWdpc3RlciBzZXQuICAq LwotKyAgLyogRG9uJ3QgYWxsb3cgYW55dGhpbmcgYnV0IHdvcmQgc2l6ZWQgaW50ZWdlcnMgKGFr YSBwb2ludGVycykgaW4gQ1RSL0xSLiAgWW91Ci0rICAgICByZWFsbHkgZG9uJ3Qgd2FudCB0byBz cGlsbCB5b3VyIGZsb2F0aW5nIHBvaW50IHZhbHVlcyB0byB0aG9zZQotKyAgICAgcmVnaXN0ZXJz LiAgQWxzbyBkbyBpdCBmb3IgdGhlIG9sZCBNUSByZWdpc3RlciBpbiB0aGUgcG93ZXIuICAqLwot KyAgaWYgKHJlZ25vID09IENUUl9SRUdOTyB8fCByZWdubyA9PSBMUl9SRUdOTyB8fCByZWdubyA9 PSBNUV9SRUdOTykKKysgIC8qIERvbid0IGFsbG93IGFueXRoaW5nIGJ1dCB3b3JkIHNpemVkIGlu dGVnZXJzIChha2EgcG9pbnRlcnMpIGluIENUUi9MUi4KKysgICAgIFlvdSByZWFsbHkgZG9uJ3Qg d2FudCB0byBzcGlsbCB5b3VyIGZsb2F0aW5nIHBvaW50IHZhbHVlcyB0byB0aG9zZQorKyAgICAg cmVnaXN0ZXJzLiAgQWxzbyBkbyBpdCBmb3IgdGhlIG9sZCBNUSByZWdpc3RlciBpbiB0aGUgcG93 ZXIuCisrCisrICAgICBXaGlsZSB0aGlzIGlzIGRlc2lyYWJsZSBpbiB0aGVvcnksIGRpc2FibGlu ZyBmbG9hdCB0byBnbyBpbiBMUi9DVFIgZG9lcworKyAgICAgY2F1c2Ugc29tZSByZWdyZXNzaW9u cywgc28gdW50aWwgdGhleSBhcmUgdGFrZW4gY2FyZSBvZiwgcmV2ZXJ0IHRvIHRoZSBvbGQKKysg ICAgIGJlaGF2aW9yIGJ5IGRlZmF1bHQgZm9yIG1vc3QgcG93ZXIgc3lzdGVtcywgYnV0IGVuYWJs ZSBpdCBmb3IgcG93ZXI3LiAgKi8KKysgIGlmICgoVEFSR0VUX0RJU0FMTE9XX0ZMT0FUX0lOX0xS X0NUUiA+IDAKKysgICAgICAgfHwgKFRBUkdFVF9ESVNBTExPV19GTE9BVF9JTl9MUl9DVFIgPCAw ICYmIFRBUkdFVF9WU1gpKQorKyAgICAgICYmIChyZWdubyA9PSBDVFJfUkVHTk8gfHwgcmVnbm8g PT0gTFJfUkVHTk8gfHwgcmVnbm8gPT0gTVFfUkVHTk8pKQogKyAgICByZXR1cm4gKEdFVF9NT0RF X0NMQVNTIChtb2RlKSA9PSBNT0RFX0lOVAogKwkgICAgJiYgR0VUX01PREVfU0laRSAobW9kZSkg PD0gVU5JVFNfUEVSX1dPUkQpOwogKwpAQCAtMzMyNywxMiArNDEzMCw0MyBAQCB0ZXN0c3VpdGUv CiArICBlbnVtIHJlZ19jbGFzcyB2c3hfcmMgPSAoVEFSR0VUX0FMVElWRUMgPyBWU1hfUkVHUyA6 IEZMT0FUX1JFR1MpOwogKyAgYm9vbCBmbG9hdF9wID0gKFRBUkdFVF9IQVJEX0ZMT0FUICYmIFRB UkdFVF9GUFJTKTsKICsKKysgIC8qIFByZWNhbGN1bGF0ZSBSRUdOT19SRUdfQ0xBU1MuICAqLwor KyAgcnM2MDAwX3JlZ25vX3JlZ2NsYXNzWzBdID0gR0VORVJBTF9SRUdTOworKyAgZm9yIChyID0g MTsgciA8IDMyOyArK3IpCisrICAgIHJzNjAwMF9yZWdub19yZWdjbGFzc1tyXSA9IEJBU0VfUkVH UzsKKysKKysgIGZvciAociA9IDMyOyByIDwgNjQ7ICsrcikKKysgICAgcnM2MDAwX3JlZ25vX3Jl Z2NsYXNzW3JdID0gRkxPQVRfUkVHUzsKKysKKysgIGZvciAociA9IDY0OyByIDwgRklSU1RfUFNF VURPX1JFR0lTVEVSOyArK3IpCisrICAgIHJzNjAwMF9yZWdub19yZWdjbGFzc1tyXSA9IE5PX1JF R1M7CisrCisrICBmb3IgKHIgPSBGSVJTVF9BTFRJVkVDX1JFR05POyByIDw9IExBU1RfQUxUSVZF Q19SRUdOTzsgKytyKQorKyAgICByczYwMDBfcmVnbm9fcmVnY2xhc3Nbcl0gPSBBTFRJVkVDX1JF R1M7CisrCisrICByczYwMDBfcmVnbm9fcmVnY2xhc3NbQ1IwX1JFR05PXSA9IENSMF9SRUdTOwor KyAgZm9yIChyID0gQ1IxX1JFR05POyByIDw9IENSN19SRUdOTzsgKytyKQorKyAgICByczYwMDBf cmVnbm9fcmVnY2xhc3Nbcl0gPSBDUl9SRUdTOworKworKyAgcnM2MDAwX3JlZ25vX3JlZ2NsYXNz W01RX1JFR05PXSA9IE1RX1JFR1M7CisrICByczYwMDBfcmVnbm9fcmVnY2xhc3NbTFJfUkVHTk9d ID0gTElOS19SRUdTOworKyAgcnM2MDAwX3JlZ25vX3JlZ2NsYXNzW0NUUl9SRUdOT10gPSBDVFJf UkVHUzsKKysgIHJzNjAwMF9yZWdub19yZWdjbGFzc1tYRVJfUkVHTk9dID0gWEVSX1JFR1M7Cisr ICByczYwMDBfcmVnbm9fcmVnY2xhc3NbVlJTQVZFX1JFR05PXSA9IFZSU0FWRV9SRUdTOworKyAg cnM2MDAwX3JlZ25vX3JlZ2NsYXNzW1ZTQ1JfUkVHTk9dID0gVlJTQVZFX1JFR1M7CisrICByczYw MDBfcmVnbm9fcmVnY2xhc3NbU1BFX0FDQ19SRUdOT10gPSBTUEVfQUNDX1JFR1M7CisrICByczYw MDBfcmVnbm9fcmVnY2xhc3NbU1BFRlNDUl9SRUdOT10gPSBTUEVGU0NSX1JFR1M7CisrICByczYw MDBfcmVnbm9fcmVnY2xhc3NbQVJHX1BPSU5URVJfUkVHTlVNXSA9IEJBU0VfUkVHUzsKKysgIHJz NjAwMF9yZWdub19yZWdjbGFzc1tGUkFNRV9QT0lOVEVSX1JFR05VTV0gPSBCQVNFX1JFR1M7Cisr CiArICAvKiBQcmVjYWxjdWxhdGUgdmVjdG9yIGluZm9ybWF0aW9uLCB0aGlzIG11c3QgYmUgc2V0 IHVwIGJlZm9yZSB0aGUKICsgICAgIHJzNjAwMF9oYXJkX3JlZ25vX25yZWdzX2ludGVybmFsIGJl bG93LiAgKi8KICsgIGZvciAobSA9IDA7IG0gPCBOVU1fTUFDSElORV9NT0RFUzsgKyttKQogKyAg ICB7CiArICAgICAgcnM2MDAwX3ZlY3Rvcl91bml0W21dID0gcnM2MDAwX3ZlY3Rvcl9tZW1bbV0g PSBWRUNUT1JfTk9ORTsKICsgICAgICByczYwMDBfdmVjdG9yX3JlZ19jbGFzc1ttXSA9IE5PX1JF R1M7CisrICAgICAgcnM2MDAwX3ZlY3Rvcl9yZWxvYWRbbV1bMF0gPSBDT0RFX0ZPUl9ub3RoaW5n OworKyAgICAgIHJzNjAwMF92ZWN0b3JfcmVsb2FkW21dWzFdID0gQ09ERV9GT1Jfbm90aGluZzsK ICsgICAgfQogKwogKyAgLyogVE9ETywgYWRkIFRJL1YyREkgbW9kZSBmb3IgbW92aW5nIGRhdGEg aWYgQWx0aXZlYyBvciBWU1guICAqLwpAQCAtMzQwOSw4ICs0MjQzLDEzIEBAIHRlc3RzdWl0ZS8K ICsgIC8qIFRPRE8sIGFkZCBTUEUgYW5kIHBhaXJlZCBmbG9hdGluZyBwb2ludCB2ZWN0b3Igc3Vw cG9ydC4gICovCiArCiArICAvKiBTZXQgdGhlIFZTWCByZWdpc3RlciBjbGFzc2VzLiAgKi8KKysK KysgIC8qIEZvciBWNFNGLCBwcmVmZXIgdGhlIEFsdGl2ZWMgcmVnaXN0ZXJzLCBiZWNhdXNlIHRo ZXJlIGFyZSBhIGZldyBvcGVyYXRpb25zCisrICAgICB0aGF0IHdhbnQgdG8gdXNlIEFsdGl2ZWMg b3BlcmF0aW9ucyBpbnN0ZWFkIG9mIFZTWC4gICovCiArICByczYwMDBfdmVjdG9yX3JlZ19jbGFz c1tWNFNGbW9kZV0KLSsgICAgPSAoKFZFQ1RPUl9VTklUX1ZTWF9QIChWNFNGbW9kZSkgJiYgVkVD VE9SX01FTV9WU1hfUCAoVjRTRm1vZGUpKQorKyAgICA9ICgoVkVDVE9SX1VOSVRfVlNYX1AgKFY0 U0Ztb2RlKQorKwkmJiBWRUNUT1JfTUVNX1ZTWF9QIChWNFNGbW9kZSkKKysJJiYgIVRBUkdFVF9W NFNGX0FMVElWRUNfUkVHUykKICsgICAgICAgPyB2c3hfcmMKICsgICAgICAgOiAoVkVDVE9SX1VO SVRfQUxUSVZFQ19PUl9WU1hfUCAoVjRTRm1vZGUpCiArCSAgPyBBTFRJVkVDX1JFR1MKQEAgLTM0 MjgsNiArNDI2Nyw0MSBAQCB0ZXN0c3VpdGUvCiArCiArICByczYwMDBfdnN4X3JlZ19jbGFzcyA9 IChmbG9hdF9wICYmIFRBUkdFVF9WU1gpID8gdnN4X3JjIDogTk9fUkVHUzsKICsKKysgIC8qIFNl dCB1cCB0aGUgcmVsb2FkIGhlbHBlciBmdW5jdGlvbnMuICAqLworKyAgaWYgKFRBUkdFVF9SRUxP QURfRlVOQ1RJT05TICYmIChUQVJHRVRfVlNYIHx8IFRBUkdFVF9BTFRJVkVDKSkKKysgICAgewor KyAgICAgIGlmIChUQVJHRVRfNjRCSVQpCisrCXsKKysJICByczYwMDBfdmVjdG9yX3JlbG9hZFtW MTZRSW1vZGVdWzBdID0gQ09ERV9GT1JfcmVsb2FkX3YxNnFpX2RpX3N0b3JlOworKwkgIHJzNjAw MF92ZWN0b3JfcmVsb2FkW1YxNlFJbW9kZV1bMV0gPSBDT0RFX0ZPUl9yZWxvYWRfdjE2cWlfZGlf bG9hZDsKKysJICByczYwMDBfdmVjdG9yX3JlbG9hZFtWOEhJbW9kZV1bMF0gID0gQ09ERV9GT1Jf cmVsb2FkX3Y4aGlfZGlfc3RvcmU7CisrCSAgcnM2MDAwX3ZlY3Rvcl9yZWxvYWRbVjhISW1vZGVd WzFdICA9IENPREVfRk9SX3JlbG9hZF92OGhpX2RpX2xvYWQ7CisrCSAgcnM2MDAwX3ZlY3Rvcl9y ZWxvYWRbVjRTSW1vZGVdWzBdICA9IENPREVfRk9SX3JlbG9hZF92NHNpX2RpX3N0b3JlOworKwkg IHJzNjAwMF92ZWN0b3JfcmVsb2FkW1Y0U0ltb2RlXVsxXSAgPSBDT0RFX0ZPUl9yZWxvYWRfdjRz aV9kaV9sb2FkOworKwkgIHJzNjAwMF92ZWN0b3JfcmVsb2FkW1YyREltb2RlXVswXSAgPSBDT0RF X0ZPUl9yZWxvYWRfdjJkaV9kaV9zdG9yZTsKKysJICByczYwMDBfdmVjdG9yX3JlbG9hZFtWMkRJ bW9kZV1bMV0gID0gQ09ERV9GT1JfcmVsb2FkX3YyZGlfZGlfbG9hZDsKKysJICByczYwMDBfdmVj dG9yX3JlbG9hZFtWNFNGbW9kZV1bMF0gID0gQ09ERV9GT1JfcmVsb2FkX3Y0c2ZfZGlfc3RvcmU7 CisrCSAgcnM2MDAwX3ZlY3Rvcl9yZWxvYWRbVjRTRm1vZGVdWzFdICA9IENPREVfRk9SX3JlbG9h ZF92NHNmX2RpX2xvYWQ7CisrCSAgcnM2MDAwX3ZlY3Rvcl9yZWxvYWRbVjJERm1vZGVdWzBdICA9 IENPREVfRk9SX3JlbG9hZF92MmRmX2RpX3N0b3JlOworKwkgIHJzNjAwMF92ZWN0b3JfcmVsb2Fk W1YyREZtb2RlXVsxXSAgPSBDT0RFX0ZPUl9yZWxvYWRfdjJkZl9kaV9sb2FkOworKwl9CisrICAg ICAgZWxzZQorKwl7CisrCSAgcnM2MDAwX3ZlY3Rvcl9yZWxvYWRbVjE2UUltb2RlXVswXSA9IENP REVfRk9SX3JlbG9hZF92MTZxaV9zaV9zdG9yZTsKKysJICByczYwMDBfdmVjdG9yX3JlbG9hZFtW MTZRSW1vZGVdWzFdID0gQ09ERV9GT1JfcmVsb2FkX3YxNnFpX3NpX2xvYWQ7CisrCSAgcnM2MDAw X3ZlY3Rvcl9yZWxvYWRbVjhISW1vZGVdWzBdICA9IENPREVfRk9SX3JlbG9hZF92OGhpX3NpX3N0 b3JlOworKwkgIHJzNjAwMF92ZWN0b3JfcmVsb2FkW1Y4SEltb2RlXVsxXSAgPSBDT0RFX0ZPUl9y ZWxvYWRfdjhoaV9zaV9sb2FkOworKwkgIHJzNjAwMF92ZWN0b3JfcmVsb2FkW1Y0U0ltb2RlXVsw XSAgPSBDT0RFX0ZPUl9yZWxvYWRfdjRzaV9zaV9zdG9yZTsKKysJICByczYwMDBfdmVjdG9yX3Jl bG9hZFtWNFNJbW9kZV1bMV0gID0gQ09ERV9GT1JfcmVsb2FkX3Y0c2lfc2lfbG9hZDsKKysJICBy czYwMDBfdmVjdG9yX3JlbG9hZFtWMkRJbW9kZV1bMF0gID0gQ09ERV9GT1JfcmVsb2FkX3YyZGlf c2lfc3RvcmU7CisrCSAgcnM2MDAwX3ZlY3Rvcl9yZWxvYWRbVjJESW1vZGVdWzFdICA9IENPREVf Rk9SX3JlbG9hZF92MmRpX3NpX2xvYWQ7CisrCSAgcnM2MDAwX3ZlY3Rvcl9yZWxvYWRbVjRTRm1v ZGVdWzBdICA9IENPREVfRk9SX3JlbG9hZF92NHNmX3NpX3N0b3JlOworKwkgIHJzNjAwMF92ZWN0 b3JfcmVsb2FkW1Y0U0Ztb2RlXVsxXSAgPSBDT0RFX0ZPUl9yZWxvYWRfdjRzZl9zaV9sb2FkOwor KwkgIHJzNjAwMF92ZWN0b3JfcmVsb2FkW1YyREZtb2RlXVswXSAgPSBDT0RFX0ZPUl9yZWxvYWRf djJkZl9zaV9zdG9yZTsKKysJICByczYwMDBfdmVjdG9yX3JlbG9hZFtWMkRGbW9kZV1bMV0gID0g Q09ERV9GT1JfcmVsb2FkX3YyZGZfc2lfbG9hZDsKKysJfQorKyAgICB9CisrCiArICAvKiBQcmVj YWxjdWxhdGUgSEFSRF9SRUdOT19OUkVHUy4gICovCiArICBmb3IgKHIgPSAwOyByIDwgRklSU1Rf UFNFVURPX1JFR0lTVEVSOyArK3IpCiArICAgIGZvciAobSA9IDA7IG0gPCBOVU1fTUFDSElORV9N T0RFUzsgKyttKQpAQCAtMzUyMCw3ICs0Mzk0LDcgQEAgdGVzdHN1aXRlLwogIH0KICAKICAjaWYg VEFSR0VUX01BQ0hPCi1AQCAtMTQ4MiwxMiArMTg3MCwxNSBAQCByczYwMDBfb3ZlcnJpZGVfb3B0 aW9ucyAoY29uc3QgY2hhciAqZGVmCitAQCAtMTQ4MiwxMiArMTk2NCwxNSBAQCByczYwMDBfb3Zl cnJpZGVfb3B0aW9ucyAoY29uc3QgY2hhciAqZGVmCiAgCSB7IjgwMSIsIFBST0NFU1NPUl9NUEND T1JFLCBQT1dFUlBDX0JBU0VfTUFTSyB8IE1BU0tfU09GVF9GTE9BVH0sCiAgCSB7IjgyMSIsIFBS T0NFU1NPUl9NUENDT1JFLCBQT1dFUlBDX0JBU0VfTUFTSyB8IE1BU0tfU09GVF9GTE9BVH0sCiAg CSB7IjgyMyIsIFBST0NFU1NPUl9NUENDT1JFLCBQT1dFUlBDX0JBU0VfTUFTSyB8IE1BU0tfU09G VF9GTE9BVH0sCkBAIC0zNTM5LDcgKzQ0MTMsNyBAQCB0ZXN0c3VpdGUvCiAgCSB7Ijg2MCIsIFBS T0NFU1NPUl9NUENDT1JFLCBQT1dFUlBDX0JBU0VfTUFTSyB8IE1BU0tfU09GVF9GTE9BVH0sCiAg CSB7Ijk3MCIsIFBST0NFU1NPUl9QT1dFUjQsCiAgCSAgUE9XRVJQQ183NDAwX01BU0sgfCBNQVNL X1BQQ19HUE9QVCB8IE1BU0tfTUZDUkYgfCBNQVNLX1BPV0VSUEM2NH0sCi1AQCAtMTUyMCw5ICsx OTExLDEwIEBAIHJzNjAwMF9vdmVycmlkZV9vcHRpb25zIChjb25zdCBjaGFyICpkZWYKK0BAIC0x NTIwLDkgKzIwMDUsMTAgQEAgcnM2MDAwX292ZXJyaWRlX29wdGlvbnMgKGNvbnN0IGNoYXIgKmRl ZgogIAkgIFBPV0VSUENfQkFTRV9NQVNLIHwgTUFTS19QT1dFUlBDNjQgfCBNQVNLX1BQQ19HUE9Q VCB8IE1BU0tfUFBDX0dGWE9QVAogIAkgIHwgTUFTS19NRkNSRiB8IE1BU0tfUE9QQ05UQiB8IE1B U0tfRlBSTkQgfCBNQVNLX0NNUEIgfCBNQVNLX0RGUAogIAkgIHwgTUFTS19NRlBHUFJ9LApAQCAt MzU1Miw3ICs0NDI2LDcgQEAgdGVzdHN1aXRlLwogIAkgeyJwb3dlcnBjIiwgUFJPQ0VTU09SX1BP V0VSUEMsIFBPV0VSUENfQkFTRV9NQVNLfSwKICAJIHsicG93ZXJwYzY0IiwgUFJPQ0VTU09SX1BP V0VSUEM2NCwKICAJICBQT1dFUlBDX0JBU0VfTUFTSyB8IE1BU0tfUFBDX0dGWE9QVCB8IE1BU0tf UE9XRVJQQzY0fSwKLUBAIC0xNTQ5LDcgKzE5NDEsOCBAQCByczYwMDBfb3ZlcnJpZGVfb3B0aW9u cyAoY29uc3QgY2hhciAqZGVmCitAQCAtMTU0OSw3ICsyMDM1LDggQEAgcnM2MDAwX292ZXJyaWRl X29wdGlvbnMgKGNvbnN0IGNoYXIgKmRlZgogICAgICBQT1dFUlBDX01BU0tTID0gKFBPV0VSUENf QkFTRV9NQVNLIHwgTUFTS19QUENfR1BPUFQgfCBNQVNLX1NUUklDVF9BTElHTgogIAkJICAgICB8 IE1BU0tfUFBDX0dGWE9QVCB8IE1BU0tfUE9XRVJQQzY0IHwgTUFTS19BTFRJVkVDCiAgCQkgICAg IHwgTUFTS19NRkNSRiB8IE1BU0tfUE9QQ05UQiB8IE1BU0tfRlBSTkQgfCBNQVNLX01VTEhXCkBA IC0zNTYyLDcgKzQ0MzYsNyBAQCB0ZXN0c3VpdGUvCiAgICB9OwogIAogICAgc2V0X21hc2tzID0g UE9XRVJfTUFTS1MgfCBQT1dFUlBDX01BU0tTIHwgTUFTS19TT0ZUX0ZMT0FUOwotQEAgLTE1OTQs MTAgKzE5ODcsNiBAQCByczYwMDBfb3ZlcnJpZGVfb3B0aW9ucyAoY29uc3QgY2hhciAqZGVmCitA QCAtMTU5NCwxMCArMjA4MSw2IEBAIHJzNjAwMF9vdmVycmlkZV9vcHRpb25zIChjb25zdCBjaGFy ICpkZWYKICAJfQogICAgICB9CiAgCkBAIC0zNTczLDcgKzQ0NDcsNyBAQCB0ZXN0c3VpdGUvCiAg ICBpZiAocnM2MDAwX2NwdSA9PSBQUk9DRVNTT1JfUFBDRTMwMEMyIHx8IHJzNjAwMF9jcHUgPT0g UFJPQ0VTU09SX1BQQ0UzMDBDMwogICAgICAgIHx8IHJzNjAwMF9jcHUgPT0gUFJPQ0VTU09SX1BQ Q0U1MDBNQykKICAgICAgewotQEAgLTE2NDIsMTUgKzIwMzEsNDcgQEAgcnM2MDAwX292ZXJyaWRl X29wdGlvbnMgKGNvbnN0IGNoYXIgKmRlZgorQEAgLTE2NDIsMTcgKzIxMjUsNjEgQEAgcnM2MDAw X292ZXJyaWRlX29wdGlvbnMgKGNvbnN0IGNoYXIgKmRlZgogIAl9CiAgICAgIH0KICAKQEAgLTM2 MTAsNyArNDQ4NCw3IEBAIHRlc3RzdWl0ZS8KICAgICAgICBpZiAoISBzdHJjbXAgKHJzNjAwMF9k ZWJ1Z19uYW1lLCAiYWxsIikpCiAtCXJzNjAwMF9kZWJ1Z19zdGFjayA9IHJzNjAwMF9kZWJ1Z19h cmcgPSAxOwogKwlyczYwMDBfZGVidWdfc3RhY2sgPSByczYwMDBfZGVidWdfYXJnID0gcnM2MDAw X2RlYnVnX3JlZwotKwkgID0gcnM2MDAwX2RlYnVnX2FkZHIgPSAxOworKwkgID0gcnM2MDAwX2Rl YnVnX2FkZHIgPSByczYwMDBfZGVidWdfY29zdCA9IDE7CiAgICAgICAgZWxzZSBpZiAoISBzdHJj bXAgKHJzNjAwMF9kZWJ1Z19uYW1lLCAic3RhY2siKSkKICAJcnM2MDAwX2RlYnVnX3N0YWNrID0g MTsKICAgICAgICBlbHNlIGlmICghIHN0cmNtcCAocnM2MDAwX2RlYnVnX25hbWUsICJhcmciKSkK QEAgLTM2MTksMTAgKzQ0OTMsMjQgQEAgdGVzdHN1aXRlLwogKwlyczYwMDBfZGVidWdfcmVnID0g MTsKICsgICAgICBlbHNlIGlmICghIHN0cmNtcCAocnM2MDAwX2RlYnVnX25hbWUsICJhZGRyIikp CiArCXJzNjAwMF9kZWJ1Z19hZGRyID0gMTsKKysgICAgICBlbHNlIGlmICghIHN0cmNtcCAocnM2 MDAwX2RlYnVnX25hbWUsICJjb3N0IikpCisrCXJzNjAwMF9kZWJ1Z19jb3N0ID0gMTsKICAgICAg ICBlbHNlCiAgCWVycm9yICgidW5rbm93biAtbWRlYnVnLSVzIHN3aXRjaCIsIHJzNjAwMF9kZWJ1 Z19uYW1lKTsKKysKKysgICAgICAvKiBJZiAtbWRlYnVnPWNvc3Qgb3IgLW1kZWJ1Zz1hbGwsIHJl cGxhY2UgdGhlIGNvc3QgdGFyZ2V0IGhvb2tzIHdpdGgKKysJIGRlYnVnIHZlcnNpb25zIHRoYXQg Y2FsbCB0aGUgcmVhbCB2ZXJzaW9uIGFuZCB0aGVuIHByaW50cyBkZWJ1Z2dpbmcKKysJIGluZm9y bWF0aW9uLiAgKi8KKysgICAgICBpZiAoVEFSR0VUX0RFQlVHX0NPU1QpCisrCXsKKysJICB0YXJn ZXRtLnJ0eF9jb3N0cyA9IHJzNjAwMF9kZWJ1Z19ydHhfY29zdHM7CisrCSAgdGFyZ2V0bS5hZGRy ZXNzX2Nvc3QgPSByczYwMDBfZGVidWdfYWRkcmVzc19jb3N0OworKwkgIHRhcmdldG0uc2NoZWQu YWRqdXN0X2Nvc3QgPSByczYwMDBfZGVidWdfYWRqdXN0X2Nvc3Q7CisrCX0KICAgICAgfQotQEAg LTE3NDEsOCArMjE2Miw4IEBAIHJzNjAwMF9vdmVycmlkZV9vcHRpb25zIChjb25zdCBjaGFyICpk ZWYKKyAKKyAgIGlmIChyczYwMDBfdHJhY2ViYWNrX25hbWUpCitAQCAtMTc0MSw4ICsyMjY4LDgg QEAgcnM2MDAwX292ZXJyaWRlX29wdGlvbnMgKGNvbnN0IGNoYXIgKmRlZgogIAlyczYwMDBfc3Bl ID0gMDsKICAgICAgICBpZiAoIXJzNjAwMF9leHBsaWNpdF9vcHRpb25zLmZsb2F0X2dwcnMpCiAg CXJzNjAwMF9mbG9hdF9ncHJzID0gMDsKQEAgLTM2MzMsNyArNDUyMSw3IEBAIHRlc3RzdWl0ZS8K ICAgICAgfQogIAogICAgLyogRGV0ZWN0IGludmFsaWQgb3B0aW9uIGNvbWJpbmF0aW9ucyB3aXRo IEU1MDAuICAqLwotQEAgLTE3NTEsMTIgKzIxNzIsMTQgQEAgcnM2MDAwX292ZXJyaWRlX29wdGlv bnMgKGNvbnN0IGNoYXIgKmRlZgorQEAgLTE3NTEsMTIgKzIyNzgsMTQgQEAgcnM2MDAwX292ZXJy aWRlX29wdGlvbnMgKGNvbnN0IGNoYXIgKmRlZgogICAgcnM2MDAwX2Fsd2F5c19oaW50ID0gKHJz NjAwMF9jcHUgIT0gUFJPQ0VTU09SX1BPV0VSNAogIAkJCSYmIHJzNjAwMF9jcHUgIT0gUFJPQ0VT U09SX1BPV0VSNQogICAgICAgICAgICAgICAgICAgICAgICAgICYmIHJzNjAwMF9jcHUgIT0gUFJP Q0VTU09SX1BPV0VSNgpAQCAtMzY0OSw3ICs0NTM3LDcgQEAgdGVzdHN1aXRlLwogIAogICAgcnM2 MDAwX3NjaGVkX3Jlc3RyaWN0ZWRfaW5zbnNfcHJpb3JpdHkKICAgICAgPSAocnM2MDAwX3NjaGVk X2dyb3VwcyA/IDEgOiAwKTsKLUBAIC0xOTUxLDYgKzIzNzQsMTAgQEAgcnM2MDAwX292ZXJyaWRl X29wdGlvbnMgKGNvbnN0IGNoYXIgKmRlZgorQEAgLTE5NTEsNiArMjQ4MCwxMCBAQCByczYwMDBf b3ZlcnJpZGVfb3B0aW9ucyAoY29uc3QgY2hhciAqZGVmCiAgCXJzNjAwMF9jb3N0ID0gJnBvd2Vy Nl9jb3N0OwogIAlicmVhazsKICAKQEAgLTM2NjAsNyArNDU0OCw3IEBAIHRlc3RzdWl0ZS8KICAg ICAgICBkZWZhdWx0OgogIAlnY2NfdW5yZWFjaGFibGUgKCk7CiAgICAgICAgfQotQEAgLTIwMDEs NyArMjQyOCw3IEBAIHJzNjAwMF9vdmVycmlkZV9vcHRpb25zIChjb25zdCBjaGFyICpkZWYKK0BA IC0yMDAxLDcgKzI1MzQsNyBAQCByczYwMDBfb3ZlcnJpZGVfb3B0aW9ucyAoY29uc3QgY2hhciAq ZGVmCiAgc3RhdGljIHRyZWUKICByczYwMDBfYnVpbHRpbl9tYXNrX2Zvcl9sb2FkICh2b2lkKQog IHsKQEAgLTM2NjksNyArNDU1Nyw3IEBAIHRlc3RzdWl0ZS8KICAgICAgcmV0dXJuIGFsdGl2ZWNf YnVpbHRpbl9tYXNrX2Zvcl9sb2FkOwogICAgZWxzZQogICAgICByZXR1cm4gMDsKLUBAIC0yMDE1 LDE4ICsyNDQyLDE5IEBAIHJzNjAwMF9idWlsdGluX21hc2tfZm9yX2xvYWQgKHZvaWQpCitAQCAt MjAxNSwxOCArMjU0OCwyNyBAQCByczYwMDBfYnVpbHRpbl9tYXNrX2Zvcl9sb2FkICh2b2lkKQog IHN0YXRpYyB0cmVlCiAgcnM2MDAwX2J1aWx0aW5fY29udmVyc2lvbiAoZW51bSB0cmVlX2NvZGUg Y29kZSwgdHJlZSB0eXBlKQogIHsKQEAgLTM2ODEsNiArNDU2OSwxNCBAQCB0ZXN0c3VpdGUvCiAg ICAgIGNhc2UgRklYX1RSVU5DX0VYUFI6CiAgICAgICAgc3dpdGNoIChUWVBFX01PREUgKHR5cGUp KQogIAl7CisrCWNhc2UgVjJESW1vZGU6CisrCSAgaWYgKCFWRUNUT1JfVU5JVF9WU1hfUCAoVjJE Rm1vZGUpKQorKwkgICAgcmV0dXJuIE5VTExfVFJFRTsKKysKKysJICByZXR1cm4gVFlQRV9VTlNJ R05FRCAodHlwZSkKKysJICAgID8gcnM2MDAwX2J1aWx0aW5fZGVjbHNbVlNYX0JVSUxUSU5fWFZD VkRQVVhEU10KKysJICAgIDogcnM2MDAwX2J1aWx0aW5fZGVjbHNbVlNYX0JVSUxUSU5fWFZDVkRQ U1hEU107CisrCiAgCWNhc2UgVjRTSW1vZGU6CiArCSAgaWYgKFZFQ1RPUl9VTklUX05PTkVfUCAo VjRTSW1vZGUpIHx8IFZFQ1RPUl9VTklUX05PTkVfUCAoVjRTRm1vZGUpKQogKwkgICAgcmV0dXJu IE5VTExfVFJFRTsKQEAgLTM2OTQsOSArNDU5MCwxOCBAQCB0ZXN0c3VpdGUvCiAgCWRlZmF1bHQ6 CiAgCSAgcmV0dXJuIE5VTExfVFJFRTsKICAJfQotQEAgLTIwMzUsOSArMjQ2MywxMiBAQCByczYw MDBfYnVpbHRpbl9jb252ZXJzaW9uIChlbnVtIHRyZWVfY29kCitAQCAtMjAzNCwxMCArMjU3Niwy MiBAQCByczYwMDBfYnVpbHRpbl9jb252ZXJzaW9uIChlbnVtIHRyZWVfY29kCisgICAgIGNhc2Ug RkxPQVRfRVhQUjoKICAgICAgICBzd2l0Y2ggKFRZUEVfTU9ERSAodHlwZSkpCiAgCXsKKysJY2Fz ZSBWMkRJbW9kZToKKysJICBpZiAoIVZFQ1RPUl9VTklUX1ZTWF9QIChWMkRGbW9kZSkpCisrCSAg ICByZXR1cm4gTlVMTF9UUkVFOworKworKwkgIHJldHVybiBUWVBFX1VOU0lHTkVEICh0eXBlKQor KwkgICAgPyByczYwMDBfYnVpbHRpbl9kZWNsc1tWU1hfQlVJTFRJTl9YVkNWVVhEU1BdCisrCSAg ICA6IHJzNjAwMF9idWlsdGluX2RlY2xzW1ZTWF9CVUlMVElOX1hWQ1ZTWERTUF07CisrCiAgCWNh c2UgVjRTSW1vZGU6CiArCSAgaWYgKFZFQ1RPUl9VTklUX05PTkVfUCAoVjRTSW1vZGUpIHx8IFZF Q1RPUl9VTklUX05PTkVfUCAoVjRTRm1vZGUpKQogKwkgICAgcmV0dXJuIE5VTExfVFJFRTsKQEAg LTM3MDYsMTAgKzQ2MTEsMTEgQEAgdGVzdHN1aXRlLwogLQkgICAgOiByczYwMDBfYnVpbHRpbl9k ZWNsc1tBTFRJVkVDX0JVSUxUSU5fVkNGU1hdOwogKwkgICAgPyByczYwMDBfYnVpbHRpbl9kZWNs c1tWRUNUT1JfQlVJTFRJTl9VTlNGTE9BVF9WNFNJX1Y0U0ZdCiArCSAgICA6IHJzNjAwMF9idWls dGluX2RlY2xzW1ZFQ1RPUl9CVUlMVElOX0ZMT0FUX1Y0U0lfVjRTRl07CisrCiAgCWRlZmF1bHQ6 CiAgCSAgcmV0dXJuIE5VTExfVFJFRTsKICAJfQotQEAgLTIxNTAsNiArMjU4MSwxNCBAQCByczYw MDBfYnVpbHRpbl92ZWNfcGVybSAodHJlZSB0eXBlLCB0cmVlCitAQCAtMjE1MCw2ICsyNzA0LDE0 IEBAIHJzNjAwMF9idWlsdGluX3ZlY19wZXJtICh0cmVlIHR5cGUsIHRyZWUKICAgICAgICBkID0g cnM2MDAwX2J1aWx0aW5fZGVjbHNbQUxUSVZFQ19CVUlMVElOX1ZQRVJNXzRTRl07CiAgICAgICAg YnJlYWs7CiAgCkBAIC0zNzI0LDcgKzQ2MzAsNyBAQCB0ZXN0c3VpdGUvCiAgICAgIGRlZmF1bHQ6 CiAgICAgICAgcmV0dXJuIE5VTExfVFJFRTsKICAgICAgfQotQEAgLTIyMjksNiArMjY2OCw3IEBA IHN0YXRpYyBib29sCitAQCAtMjIyOSw2ICsyNzkxLDcgQEAgc3RhdGljIGJvb2wKICByczYwMDBf aGFuZGxlX29wdGlvbiAoc2l6ZV90IGNvZGUsIGNvbnN0IGNoYXIgKmFyZywgaW50IHZhbHVlKQog IHsKICAgIGVudW0gZnB1X3R5cGVfdCBmcHVfdHlwZSA9IEZQVV9OT05FOwpAQCAtMzczMiw3ICs0 NjM4LDcgQEAgdGVzdHN1aXRlLwogIAogICAgc3dpdGNoIChjb2RlKQogICAgICB7Ci1AQCAtMjMz MSwxNCArMjc3MSwxNCBAQCByczYwMDBfaGFuZGxlX29wdGlvbiAoc2l6ZV90IGNvZGUsIGNvbnN0 CitAQCAtMjMzNiwxNCArMjg5OSwxNCBAQCByczYwMDBfaGFuZGxlX29wdGlvbiAoc2l6ZV90IGNv ZGUsIGNvbnN0CiAgICAgICAgcnM2MDAwX3BhcnNlX3llc19ub19vcHRpb24gKCJ2cnNhdmUiLCBh cmcsICYoVEFSR0VUX0FMVElWRUNfVlJTQVZFKSk7CiAgICAgICAgYnJlYWs7CiAgCkBAIC0zNzU0 LDcgKzQ2NjAsNyBAQCB0ZXN0c3VpdGUvCiAgICAgICAgYnJlYWs7CiAgCiAgICAgIGNhc2UgT1BU X21zcGU6Ci1AQCAtMjk2Nyw2ICszNDA3LDkgQEAgb3V0cHV0X3ZlY19jb25zdF9tb3ZlIChydHgg Km9wZXJhbmRzKQorQEAgLTI5NzIsNiArMzUzNSw5IEBAIG91dHB1dF92ZWNfY29uc3RfbW92ZSAo cnR4ICpvcGVyYW5kcykKICAgIHZlYyA9IG9wZXJhbmRzWzFdOwogICAgbW9kZSA9IEdFVF9NT0RF IChkZXN0KTsKICAKQEAgLTM3NjQsNyArNDY3MCw3IEBAIHRlc3RzdWl0ZS8KICAgIGlmIChUQVJH RVRfQUxUSVZFQykKICAgICAgewogICAgICAgIHJ0eCBzcGxhdF92ZWM7Ci1AQCAtMzE5MCwyMCAr MzYzMywyMSBAQCByczYwMDBfZXhwYW5kX3ZlY3Rvcl9pbml0IChydHggdGFyZ2V0LCByCitAQCAt MzE5NSwyMCArMzc2MSwyMSBAQCByczYwMDBfZXhwYW5kX3ZlY3Rvcl9pbml0IChydHggdGFyZ2V0 LCByCiAgICBpZiAobl92YXIgPT0gMCkKICAgICAgewogICAgICAgIHJ0eCBjb25zdF92ZWMgPSBn ZW5fcnR4X0NPTlNUX1ZFQ1RPUiAobW9kZSwgWFZFQyAodmFscywgMCkpOwpAQCAtMzc4OSw3ICs0 Njk1LDcgQEAgdGVzdHN1aXRlLwogIAk7CS8qIFNwbGF0IHZlY3RvciBlbGVtZW50LiAgKi8KICAg ICAgICBlbHNlCiAgCXsKLUBAIC0zMjEzLDYgKzM2NTcsMTggQEAgcnM2MDAwX2V4cGFuZF92ZWN0 b3JfaW5pdCAocnR4IHRhcmdldCwgcgorQEAgLTMyMTgsNiArMzc4NSwxOCBAQCByczYwMDBfZXhw YW5kX3ZlY3Rvcl9pbml0IChydHggdGFyZ2V0LCByCiAgCX0KICAgICAgfQogIApAQCAtMzgwOCw3 ICs0NzE0LDcgQEAgdGVzdHN1aXRlLwogICAgLyogU3RvcmUgdmFsdWUgdG8gc3RhY2sgdGVtcC4g IExvYWQgdmVjdG9yIGVsZW1lbnQuICBTcGxhdC4gICovCiAgICBpZiAoYWxsX3NhbWUpCiAgICAg IHsKLUBAIC0zMjcyLDYgKzM3MjgsMTMgQEAgcnM2MDAwX2V4cGFuZF92ZWN0b3Jfc2V0IChydHgg dGFyZ2V0LCBydAorQEAgLTMyNzcsNiArMzg1NiwxMyBAQCByczYwMDBfZXhwYW5kX3ZlY3Rvcl9z ZXQgKHJ0eCB0YXJnZXQsIHJ0CiAgICBpbnQgd2lkdGggPSBHRVRfTU9ERV9TSVpFIChpbm5lcl9t b2RlKTsKICAgIGludCBpOwogIApAQCAtMzgyMiw3ICs0NzI4LDcgQEAgdGVzdHN1aXRlLwogICAg LyogTG9hZCBzaW5nbGUgdmFyaWFibGUgdmFsdWUuICAqLwogICAgbWVtID0gYXNzaWduX3N0YWNr X3RlbXAgKG1vZGUsIEdFVF9NT0RFX1NJWkUgKGlubmVyX21vZGUpLCAwKTsKICAgIGVtaXRfbW92 ZV9pbnNuIChhZGp1c3RfYWRkcmVzc19udiAobWVtLCBpbm5lcl9tb2RlLCAwKSwgdmFsKTsKLUBA IC0zMzA5LDYgKzM3NzIsMTMgQEAgcnM2MDAwX2V4cGFuZF92ZWN0b3JfZXh0cmFjdCAocnR4IHRh cmdldAorQEAgLTMzMTQsNiArMzkwMCwxMyBAQCByczYwMDBfZXhwYW5kX3ZlY3Rvcl9leHRyYWN0 IChydHggdGFyZ2V0CiAgICBlbnVtIG1hY2hpbmVfbW9kZSBpbm5lcl9tb2RlID0gR0VUX01PREVf SU5ORVIgKG1vZGUpOwogICAgcnR4IG1lbSwgeDsKICAKQEAgLTM4MzYsNyArNDc0Miw3IEBAIHRl c3RzdWl0ZS8KICAgIC8qIEFsbG9jYXRlIG1vZGUtc2l6ZWQgYnVmZmVyLiAgKi8KICAgIG1lbSA9 IGFzc2lnbl9zdGFja190ZW1wIChtb2RlLCBHRVRfTU9ERV9TSVpFIChtb2RlKSwgMCk7CiAgCi1A QCAtMzYyNyw5ICs0MDk3LDEzIEBAIHJzNjAwMF9sZWdpdGltYXRlX29mZnNldF9hZGRyZXNzX3Ag KGVudW0KK0BAIC0zNjMyLDkgKzQyMjUsMTMgQEAgcnM2MDAwX2xlZ2l0aW1hdGVfb2Zmc2V0X2Fk ZHJlc3NfcCAoZW51bQogICAgICBjYXNlIFY4SEltb2RlOgogICAgICBjYXNlIFY0U0Ztb2RlOgog ICAgICBjYXNlIFY0U0ltb2RlOgpAQCAtMzg0NiwxMyArNDc1MiwxMyBAQCB0ZXN0c3VpdGUvCiAr ICAgICAgLyogQWx0aVZlYy9WU1ggdmVjdG9yIG1vZGVzLiAgT25seSByZWcrcmVnIGFkZHJlc3Np bmcgaXMgdmFsaWQgYW5kCiAgCSBjb25zdGFudCBvZmZzZXQgemVybyBzaG91bGQgbm90IG9jY3Vy IGR1ZSB0byBjYW5vbmljYWxpemF0aW9uLiAgKi8KIC0gICAgICByZXR1cm4gZmFsc2U7Ci0rICAg ICAgaWYgKFZFQ1RPUl9VTklUX0FMVElWRUNfT1JfVlNYX1AgKG1vZGUpKQorKyAgICAgIGlmIChW RUNUT1JfTUVNX0FMVElWRUNfT1JfVlNYX1AgKG1vZGUpKQogKwlyZXR1cm4gZmFsc2U7CiArICAg ICAgYnJlYWs7CiAgCiAgICAgIGNhc2UgVjRISW1vZGU6CiAgICAgIGNhc2UgVjJTSW1vZGU6Ci1A QCAtMzY0Niw2ICs0MTIwLDExIEBAIHJzNjAwMF9sZWdpdGltYXRlX29mZnNldF9hZGRyZXNzX3Ag KGVudW0KK0BAIC0zNjUxLDYgKzQyNDgsMTEgQEAgcnM2MDAwX2xlZ2l0aW1hdGVfb2Zmc2V0X2Fk ZHJlc3NfcCAoZW51bQogICAgICAgIGlmIChUQVJHRVRfRTUwMF9ET1VCTEUpCiAgCXJldHVybiBT UEVfQ09OU1RfT0ZGU0VUX09LIChvZmZzZXQpOwogIApAQCAtMzg2NCw3ICs0NzcwLDcgQEAgdGVz dHN1aXRlLwogICAgICBjYXNlIEREbW9kZToKICAgICAgY2FzZSBESW1vZGU6CiAgICAgICAgLyog T24gZTUwMHYyLCB3ZSBtYXkgaGF2ZToKLUBAIC0zNzE2LDcgKzQxOTUsOSBAQCBhdm9pZGluZ19p bmRleGVkX2FkZHJlc3NfcCAoZW51bSBtYWNoaW5lCitAQCAtMzcyMSw3ICs0MzIzLDkgQEAgYXZv aWRpbmdfaW5kZXhlZF9hZGRyZXNzX3AgKGVudW0gbWFjaGluZQogIHsKICAgIC8qIEF2b2lkIGlu ZGV4ZWQgYWRkcmVzc2luZyBmb3IgbW9kZXMgdGhhdCBoYXZlIG5vbi1pbmRleGVkCiAgICAgICBs b2FkL3N0b3JlIGluc3RydWN0aW9uIGZvcm1zLiAgKi8KQEAgLTM4NzUsNyArNDc4MSw3IEBAIHRl c3RzdWl0ZS8KICB9CiAgCiAgaW5saW5lIGJvb2wKLUBAIC0zODA4LDI1ICs0Mjg5LDMwIEBAIHJ0 eAorQEAgLTM4MTMsMjUgKzQ0MTcsMzAgQEAgcnR4CiAgcnM2MDAwX2xlZ2l0aW1pemVfYWRkcmVz cyAocnR4IHgsIHJ0eCBvbGR4IEFUVFJJQlVURV9VTlVTRUQsCiAgCQkJICAgZW51bSBtYWNoaW5l X21vZGUgbW9kZSkKICB7CkBAIC0zOTE5LDcgKzQ4MjUsNyBAQCB0ZXN0c3VpdGUvCiAgICAgIHsK ICAgICAgICBIT1NUX1dJREVfSU5UIGhpZ2hfaW50LCBsb3dfaW50OwogICAgICAgIHJ0eCBzdW07 Ci1AQCAtMzgzNCw3ICs0MzIwLDcgQEAgcnM2MDAwX2xlZ2l0aW1pemVfYWRkcmVzcyAocnR4IHgs IHJ0eCBvbAorQEAgLTM4MzksNyArNDQ0OCw3IEBAIHJzNjAwMF9sZWdpdGltaXplX2FkZHJlc3Mg KHJ0eCB4LCBydHggb2wKICAgICAgICBoaWdoX2ludCA9IElOVFZBTCAoWEVYUCAoeCwgMSkpIC0g bG93X2ludDsKICAgICAgICBzdW0gPSBmb3JjZV9vcGVyYW5kIChnZW5fcnR4X1BMVVMgKFBtb2Rl LCBYRVhQICh4LCAwKSwKICAJCQkJCSBHRU5fSU5UIChoaWdoX2ludCkpLCAwKTsKQEAgLTM5Mjgs NyArNDgzNCw3IEBAIHRlc3RzdWl0ZS8KICAgICAgfQogICAgZWxzZSBpZiAoR0VUX0NPREUgKHgp ID09IFBMVVMKICAJICAgJiYgR0VUX0NPREUgKFhFWFAgKHgsIDApKSA9PSBSRUcKLUBAIC0zODUw LDMyICs0MzM2LDI5IEBAIHJzNjAwMF9sZWdpdGltaXplX2FkZHJlc3MgKHJ0eCB4LCBydHggb2wK K0BAIC0zODU1LDMyICs0NDY0LDI5IEBAIHJzNjAwMF9sZWdpdGltaXplX2FkZHJlc3MgKHJ0eCB4 LCBydHggb2wKICAJICAgJiYgbW9kZSAhPSBURm1vZGUKICAJICAgJiYgbW9kZSAhPSBURG1vZGUp CiAgICAgIHsKQEAgLTM5NzMsNyArNDg3OSw3IEBAIHRlc3RzdWl0ZS8KICAgICAgICAgICBydHgg b3AxID0gWEVYUCAoeCwgMCk7CiAgICAgICAgICAgcnR4IG9wMiA9IFhFWFAgKHgsIDEpOwogICAg ICAgICAgIHJ0eCB5OwotQEAgLTM4OTQsMTIgKzQzNzcsMTIgQEAgcnM2MDAwX2xlZ2l0aW1pemVf YWRkcmVzcyAocnR4IHgsIHJ0eCBvbAorQEAgLTM4OTksMTIgKzQ1MDUsMTIgQEAgcnM2MDAwX2xl Z2l0aW1pemVfYWRkcmVzcyAocnR4IHgsIHJ0eCBvbAogICAgICAgICAgIHkgPSBnZW5fcnR4X1BM VVMgKFBtb2RlLCBvcDEsIG9wMik7CiAgCiAgICAgICAgICAgaWYgKChHRVRfTU9ERV9TSVpFICht b2RlKSA+IDggfHwgbW9kZSA9PSBERG1vZGUpICYmIFJFR19QIChvcDIpKQpAQCAtMzk5MCw3ICs0 ODk2LDcgQEAgdGVzdHN1aXRlLwogICAgICB9CiAgICBlbHNlIGlmIChUQVJHRVRfRUxGCiAgCSAg ICYmIFRBUkdFVF8zMkJJVAotQEAgLTM5MTUsNyArNDM5OCw3IEBAIHJzNjAwMF9sZWdpdGltaXpl X2FkZHJlc3MgKHJ0eCB4LCBydHggb2wKK0BAIC0zOTIwLDcgKzQ1MjYsNyBAQCByczYwMDBfbGVn aXRpbWl6ZV9hZGRyZXNzIChydHggeCwgcnR4IG9sCiAgICAgIHsKICAgICAgICBydHggcmVnID0g Z2VuX3JlZ19ydHggKFBtb2RlKTsKICAgICAgICBlbWl0X2luc24gKGdlbl9lbGZfaGlnaCAocmVn LCB4KSk7CkBAIC0zOTk5LDcgKzQ5MDUsNyBAQCB0ZXN0c3VpdGUvCiAgICAgIH0KICAgIGVsc2Ug aWYgKFRBUkdFVF9NQUNITyAmJiBUQVJHRVRfMzJCSVQgJiYgVEFSR0VUX05PX1RPQwogIAkgICAm JiAhIGZsYWdfcGljCi1AQCAtMzkzMywxNyArNDQxNiwzNCBAQCByczYwMDBfbGVnaXRpbWl6ZV9h ZGRyZXNzIChydHggeCwgcnR4IG9sCitAQCAtMzkzOCwxNyArNDU0NCwzNSBAQCByczYwMDBfbGVn aXRpbWl6ZV9hZGRyZXNzIChydHggeCwgcnR4IG9sCiAgICAgIHsKICAgICAgICBydHggcmVnID0g Z2VuX3JlZ19ydHggKFBtb2RlKTsKICAgICAgICBlbWl0X2luc24gKGdlbl9tYWNob19oaWdoIChy ZWcsIHgpKTsKQEAgLTQwMzEsMTMgKzQ5MzcsMTQgQEAgdGVzdHN1aXRlLwogKwl9CiArICAgICAg ZWxzZQogKwlmcHJpbnRmIChzdGRlcnIsICJOVUxMIHJldHVybmVkXG4iKTsKKysgICAgICBmcHJp bnRmIChzdGRlcnIsICJcbiIpOwogKyAgICB9CiArCiArICByZXR1cm4gcmV0OwogIH0KICAKICAv KiBUaGlzIGlzIGNhbGxlZCBmcm9tIGR3YXJmMm91dC5jIHZpYSBUQVJHRVRfQVNNX09VVFBVVF9E V0FSRl9EVFBSRUwuCi1AQCAtNDIzMiw2ICs0NzMyLDkgQEAgcnM2MDAwX2xlZ2l0aW1pemVfcmVs b2FkX2FkZHJlc3MgKHJ0eCB4LAorQEAgLTQyMzcsNiArNDg2MSw5IEBAIHJzNjAwMF9sZWdpdGlt aXplX3JlbG9hZF9hZGRyZXNzIChydHggeCwKICAJCQkJICBpbnQgb3BudW0sIGludCB0eXBlLAog IAkJCQkgIGludCBpbmRfbGV2ZWxzIEFUVFJJQlVURV9VTlVTRUQsIGludCAqd2luKQogIHsKQEAg LTQwNDcsNyArNDk1NCw3IEBAIHRlc3RzdWl0ZS8KICAgIC8qIFdlIG11c3QgcmVjb2duaXplIG91 dHB1dCB0aGF0IHdlIGhhdmUgYWxyZWFkeSBnZW5lcmF0ZWQgb3Vyc2VsdmVzLiAgKi8KICAgIGlm IChHRVRfQ09ERSAoeCkgPT0gUExVUwogICAgICAgICYmIEdFVF9DT0RFIChYRVhQICh4LCAwKSkg PT0gUExVUwotQEAgLTQyNDMsMTcgKzQ3NDYsMTcgQEAgcnM2MDAwX2xlZ2l0aW1pemVfcmVsb2Fk X2FkZHJlc3MgKHJ0eCB4LAorQEAgLTQyNDgsMTcgKzQ4NzUsMTcgQEAgcnM2MDAwX2xlZ2l0aW1p emVfcmVsb2FkX2FkZHJlc3MgKHJ0eCB4LAogIAkJICAgQkFTRV9SRUdfQ0xBU1MsIEdFVF9NT0RF ICh4KSwgVk9JRG1vZGUsIDAsIDAsCiAgCQkgICBvcG51bSwgKGVudW0gcmVsb2FkX3R5cGUpdHlw ZSk7CiAgICAgICAgKndpbiA9IDE7CkBAIC00MDczLDcgKzQ5ODAsNyBAQCB0ZXN0c3VpdGUvCiAg ICAgIHsKICAgICAgICAvKiBSZXN1bHQgb2YgcHJldmlvdXMgaW52b2NhdGlvbiBvZiB0aGlzIGZ1 bmN0aW9uIG9uIERhcndpbgogIAkgZmxvYXRpbmcgcG9pbnQgY29uc3RhbnQuICAqLwotQEAgLTQy NjEsNDAgKzQ3NjQsNDIgQEAgcnM2MDAwX2xlZ2l0aW1pemVfcmVsb2FkX2FkZHJlc3MgKHJ0eCB4 LAorQEAgLTQyNjYsNDAgKzQ4OTMsNDAgQEAgcnM2MDAwX2xlZ2l0aW1pemVfcmVsb2FkX2FkZHJl c3MgKHJ0eCB4LAogIAkJICAgQkFTRV9SRUdfQ0xBU1MsIFBtb2RlLCBWT0lEbW9kZSwgMCwgMCwK ICAJCSAgIG9wbnVtLCAoZW51bSByZWxvYWRfdHlwZSl0eXBlKTsKICAgICAgICAqd2luID0gMTsK QEAgLTQwOTksOCArNTAwNiw3IEBAIHRlc3RzdWl0ZS8KICsJICAgJiYgUkVHX01PREVfT0tfRk9S X0JBU0VfUCAoWEVYUCAoeCwgMCksIG1vZGUpCiArCSAgICYmIEdFVF9DT0RFIChYRVhQICh4LCAx KSkgPT0gQ09OU1RfSU5UCiArCSAgICYmIChJTlRWQUwgKFhFWFAgKHgsIDEpKSAmIDMpICE9IDAK LSsJICAgJiYgIUFMVElWRUNfVkVDVE9SX01PREUgKG1vZGUpCi0rCSAgICYmICFWU1hfVkVDVE9S X01PREUgKG1vZGUpCisrCSAgICYmIFZFQ1RPUl9NRU1fTk9ORV9QIChtb2RlKQogKwkgICAmJiBH RVRfTU9ERV9TSVpFIChtb2RlKSA+PSBVTklUU19QRVJfV09SRAogKwkgICAmJiBUQVJHRVRfUE9X RVJQQzY0KQogICAgICB7CkBAIC00MTMyLDEyICs1MDM4LDExIEBAIHRlc3RzdWl0ZS8KICsJICAg JiYgIShUQVJHRVRfRTUwMF9ET1VCTEUgJiYgKG1vZGUgPT0gREZtb2RlIHx8IG1vZGUgPT0gVEZt b2RlCiArCQkJCSAgICAgICB8fCBtb2RlID09IEREbW9kZSB8fCBtb2RlID09IFREbW9kZQogKwkJ CQkgICAgICAgfHwgbW9kZSA9PSBESW1vZGUpKQotKwkgICAmJiAhQUxUSVZFQ19WRUNUT1JfTU9E RSAobW9kZSkKLSsJICAgJiYgIVZTWF9WRUNUT1JfTU9ERSAobW9kZSkpCisrCSAgICYmIFZFQ1RP Ul9NRU1fTk9ORV9QIChtb2RlKSkKICAgICAgewogICAgICAgIEhPU1RfV0lERV9JTlQgdmFsID0g SU5UVkFMIChYRVhQICh4LCAxKSk7CiAgICAgICAgSE9TVF9XSURFX0lOVCBsb3cgPSAoKHZhbCAm IDB4ZmZmZikgXiAweDgwMDApIC0gMHg4MDAwOwotQEAgLTQzMDUsNDIgKzQ4MTAsNDQgQEAgcnM2 MDAwX2xlZ2l0aW1pemVfcmVsb2FkX2FkZHJlc3MgKHJ0eCB4LAorQEAgLTQzMTAsNDIgKzQ5Mzcs NDUgQEAgcnM2MDAwX2xlZ2l0aW1pemVfcmVsb2FkX2FkZHJlc3MgKHJ0eCB4LAogICAgICAgIGlm IChoaWdoICsgbG93ICE9IHZhbCkKICAJewogIAkgICp3aW4gPSAwOwpAQCAtNDIwMiw2ICs1MTA3 LDcgQEAgdGVzdHN1aXRlLwogKwkgICAvKiBEb24ndCBkbyB0aGlzIGZvciBURm1vZGUgb3IgVERt b2RlLCBzaW5jZSB0aGUgcmVzdWx0IGlzbid0CiArCSAgICAgIG9mZnNldHRhYmxlLiAgVGhlIHNh bWUgZ29lcyBmb3IgREltb2RlIHdpdGhvdXQgNjQtYml0IGdwcnMgYW5kCiArCSAgICAgIERGbW9k ZSBhbmQgRERtb2RlIHdpdGhvdXQgZnBycy4gICovCisrCSAgICYmIFZFQ1RPUl9NRU1fTk9ORV9Q IChtb2RlKQogKwkgICAmJiBtb2RlICE9IFRGbW9kZQogKwkgICAmJiBtb2RlICE9IFREbW9kZQog KwkgICAmJiAobW9kZSAhPSBESW1vZGUgfHwgVEFSR0VUX1BPV0VSUEM2NCkKQEAgLTQyMTAsNyAr NTExNiw3IEBAIHRlc3RzdWl0ZS8KICAgICAgewogICNpZiBUQVJHRVRfTUFDSE8KICAgICAgICBp ZiAoZmxhZ19waWMpCi1AQCAtNDM1OSwzNyArNDg2Niw2MSBAQCByczYwMDBfbGVnaXRpbWl6ZV9y ZWxvYWRfYWRkcmVzcyAocnR4IHgsCitAQCAtNDM2NCwzNyArNDk5NCw2MyBAQCByczYwMDBfbGVn aXRpbWl6ZV9yZWxvYWRfYWRkcmVzcyAocnR4IHgsCiAgCQkgICBCQVNFX1JFR19DTEFTUywgUG1v ZGUsIFZPSURtb2RlLCAwLCAwLAogIAkJICAgb3BudW0sIChlbnVtIHJlbG9hZF90eXBlKXR5cGUp OwogICAgICAgICp3aW4gPSAxOwpAQCAtNDIyOSw3ICs1MTM1LDcgQEAgdGVzdHN1aXRlLwogLSAg ICAgICYmIEdFVF9DT0RFIChYRVhQIChYRVhQICh4LCAwKSwgMSkpID09IENPTlNUX0lOVAogLSAg ICAgICYmIEdFVF9DT0RFIChYRVhQICh4LCAxKSkgPT0gQ09OU1RfSU5UCiAtICAgICAgJiYgSU5U VkFMIChYRVhQICh4LCAxKSkgPT0gLTE2KQotKyAgZWxzZSBpZiAoVkVDVE9SX01FTV9BTFRJVkVD X1AgKG1vZGUpCisrICBlbHNlIGlmIChWRUNUT1JfTUVNX0FMVElWRUNfT1JfVlNYX1AgKG1vZGUp CiArCSAgICYmIEdFVF9DT0RFICh4KSA9PSBBTkQKICsJICAgJiYgR0VUX0NPREUgKFhFWFAgKHgs IDApKSA9PSBQTFVTCiArCSAgICYmIEdFVF9DT0RFIChYRVhQIChYRVhQICh4LCAwKSwgMCkpID09 IFJFRwpAQCAtNDI2Miw5ICs1MTY4LDcgQEAgdGVzdHN1aXRlLwogKyAgICB7CiArICAgICAgKndp biA9IDA7CiArICAgICAgcmV0ID0geDsKLSAgICAgfQotLSAgKndpbiA9IDA7Ci0tICByZXR1cm4g eDsKKysgICAgfQogKwogKyAgaWYgKFRBUkdFVF9ERUJVR19BRERSKQogKyAgICB7CkBAIC00Mjgz LDEzICs1MTg3LDE3IEBAIHRlc3RzdWl0ZS8KICsJICBmcHJpbnRmIChzdGRlcnIsICJOZXcgYWRk cmVzczpcbiIpOwogKwkgIGRlYnVnX3J0eCAocmV0KTsKICsJfQotKyAgICB9CisrCisrICAgICAg ZnByaW50ZiAoc3RkZXJyLCAiXG4iKTsKKyAgICAgfQorLSAgKndpbiA9IDA7CistICByZXR1cm4g eDsKICsKICsgIHJldHVybiByZXQ7CiAgfQogIAogIC8qIEdPX0lGX0xFR0lUSU1BVEVfQUREUkVT UyByZWNvZ25pemVzIGFuIFJUTCBleHByZXNzaW9uCi1AQCAtNDQxMiw3NyArNDk0MywxMDEgQEAg cnM2MDAwX2xlZ2l0aW1pemVfcmVsb2FkX2FkZHJlc3MgKHJ0eCB4LAorQEAgLTQ0MTcsNzcgKzUw NzMsMTAxIEBAIHJzNjAwMF9sZWdpdGltaXplX3JlbG9hZF9hZGRyZXNzIChydHggeCwKICBpbnQK ICByczYwMDBfbGVnaXRpbWF0ZV9hZGRyZXNzIChlbnVtIG1hY2hpbmVfbW9kZSBtb2RlLCBydHgg eCwgaW50IHJlZ19va19zdHJpY3QpCiAgewpAQCAtNDI5Nyw5ICs1MjA1LDEwIEBAIHRlc3RzdWl0 ZS8KICsgIHJ0eCBvcmlnX3ggPSB4OwogKwogICAgLyogSWYgdGhpcyBpcyBhbiB1bmFsaWduZWQg c3R2eC9sZHZ4IHR5cGUgYWRkcmVzcywgZGlzY2FyZCB0aGUgb3V0ZXIgQU5ELiAgKi8KLSAgIGlm IChUQVJHRVRfQUxUSVZFQworLSAgaWYgKFRBUkdFVF9BTFRJVkVDCiAtICAgICAgJiYgQUxUSVZF Q19WRUNUT1JfTU9ERSAobW9kZSkKLSsgICAgICAmJiAoQUxUSVZFQ19WRUNUT1JfTU9ERSAobW9k ZSkgfHwgVlNYX1ZFQ1RPUl9NT0RFIChtb2RlKSkKKysgIGlmICgoVEFSR0VUX0FMVElWRUMgfHwg VEFSR0VUX1ZTWCkKKysgICAgICAmJiBWRUNUT1JfTUVNX0FMVElWRUNfT1JfVlNYX1AgKG1vZGUp CiAgICAgICAgJiYgR0VUX0NPREUgKHgpID09IEFORAogICAgICAgICYmIEdFVF9DT0RFIChYRVhQ ICh4LCAxKSkgPT0gQ09OU1RfSU5UCiAgICAgICAgJiYgSU5UVkFMIChYRVhQICh4LCAxKSkgPT0g LTE2KQpAQCAtNDMyOCw4ICs1MjM3LDcgQEAgdGVzdHN1aXRlLwogKyAgZWxzZSBpZiAobGVnaXRp bWF0ZV9pbmRpcmVjdF9hZGRyZXNzX3AgKHgsIHJlZ19va19zdHJpY3QpKQogKyAgICByZXQgPSAx OwogKyAgZWxzZSBpZiAoKEdFVF9DT0RFICh4KSA9PSBQUkVfSU5DIHx8IEdFVF9DT0RFICh4KSA9 PSBQUkVfREVDKQotKwkgICAmJiAhVkVDVE9SX01FTV9BTFRJVkVDX1AgKG1vZGUpCi0rCSAgIC8q ICYmICFWRUNUT1JfTUVNX1ZTWF9QIChtb2RlKSAqLworKwkgICAmJiAhVkVDVE9SX01FTV9BTFRJ VkVDX09SX1ZTWF9QIChtb2RlKQogKwkgICAmJiAoVEFSR0VUX1NQRSAmJiAhU1BFX1ZFQ1RPUl9N T0RFIChtb2RlKSkKICsJICAgJiYgbW9kZSAhPSBURm1vZGUKICsJICAgJiYgbW9kZSAhPSBURG1v ZGUKQEAgLTQ0NDcsMTMgKzUzNTUsMTQgQEAgdGVzdHN1aXRlLwogKwkgICAgICAgR0VUX01PREVf TkFNRSAobW9kZSksCiArCSAgICAgICByZWdfb2tfc3RyaWN0KTsKICsgICAgICBkZWJ1Z19ydHgg KG9yaWdfeCk7CisrICAgICAgZnByaW50ZiAoc3RkZXJyLCAiXG4iKTsKICsgICAgfQogKwogKyAg cmV0dXJuIHJldDsKICB9CiAgCiAgLyogR28gdG8gTEFCRUwgaWYgQUREUiAoYSBsZWdpdGltYXRl IGFkZHJlc3MgZXhwcmVzc2lvbikKLUBAIC00NDk5LDI4ICs1MDU0LDQwIEBAIHJzNjAwMF9sZWdp dGltYXRlX2FkZHJlc3MgKGVudW0gbWFjaGluZV8KK0BAIC00NTA0LDI4ICs1MTg0LDQ2IEBAIHJz NjAwMF9sZWdpdGltYXRlX2FkZHJlc3MgKGVudW0gbWFjaGluZV8KICBib29sCiAgcnM2MDAwX21v ZGVfZGVwZW5kZW50X2FkZHJlc3MgKHJ0eCBhZGRyKQogIHsKQEAgLTQ0ODAsNiArNTM4OSwxMSBA QCB0ZXN0c3VpdGUvCiAtICAgICAgcmV0dXJuIFRBUkdFVF9VUERBVEU7CiArICAgICAgcmV0ID0g KFRBUkdFVF9VUERBVEUgIT0gMCk7CiArICAgICAgYnJlYWs7CisrCisrICAgICAgLyogQU5EIGlz IG9ubHkgYWxsb3dlZCBpbiBBbHRpdmVjIGxvYWRzLiAgKi8KKysgICAgY2FzZSBBTkQ6CisrICAg ICAgcmV0ID0gdHJ1ZTsKKysgICAgICBicmVhazsKICAKICAgICAgZGVmYXVsdDoKICAgICAgICBi cmVhazsKQEAgLTQ0ODksMTYgKzU0MDMsMTcgQEAgdGVzdHN1aXRlLwogKyAgaWYgKFRBUkdFVF9E RUJVR19BRERSKQogKyAgICB7CiArICAgICAgZnByaW50ZiAoc3RkZXJyLAotKwkgICAgICAgIlxu cnM2MDAwX21vZGVfZGVwZW5kZW50X2FkZHJlc3M6IHJldCA9ICVkXG4iLAotKwkgICAgICAgKGlu dClyZXQpOworKwkgICAgICAgIlxucnM2MDAwX21vZGVfZGVwZW5kZW50X2FkZHJlc3M6IHJldCA9 ICVzXG4iLAorKwkgICAgICAgcmV0ID8gInRydWUiIDogImZhbHNlIik7CiArICAgICAgZGVidWdf cnR4IChhZGRyKTsKKysgICAgICBmcHJpbnRmIChzdGRlcnIsICJcbiIpOwogKyAgICB9CiArCiAr ICByZXR1cm4gcmV0OwogIH0KICAKICAvKiBJbXBsZW1lbnQgRklORF9CQVNFX1RFUk0uICAqLwot QEAgLTQ1NzEsNDMgKzUxMzgsNiBAQCByczYwMDBfb2Zmc2V0dGFibGVfbWVtcmVmX3AgKHJ0eCBv cCkKK0BAIC00NTc2LDQzICs1Mjc0LDYgQEAgcnM2MDAwX29mZnNldHRhYmxlX21lbXJlZl9wIChy dHggb3ApCiAgICByZXR1cm4gcnM2MDAwX2xlZ2l0aW1hdGVfb2Zmc2V0X2FkZHJlc3NfcCAoR0VU X01PREUgKG9wKSwgWEVYUCAob3AsIDApLCAxKTsKICB9CiAgCkBAIC00NTQyLDcgKzU0NTcsNyBA QCB0ZXN0c3VpdGUvCiAgLyogQ2hhbmdlIHJlZ2lzdGVyIHVzYWdlIGNvbmRpdGlvbmFsIG9uIHRh cmdldCBmbGFncy4gICovCiAgdm9pZAogIHJzNjAwMF9jb25kaXRpb25hbF9yZWdpc3Rlcl91c2Fn ZSAodm9pZCkKLUBAIC00NjcyLDE0ICs1MjAyLDE0IEBAIHJzNjAwMF9jb25kaXRpb25hbF9yZWdp c3Rlcl91c2FnZSAodm9pZCkKK0BAIC00Njc3LDE0ICs1MzM4LDE0IEBAIHJzNjAwMF9jb25kaXRp b25hbF9yZWdpc3Rlcl91c2FnZSAodm9pZCkKICAJPSBjYWxsX3JlYWxseV91c2VkX3JlZ3NbMTRd ID0gMTsKICAgICAgfQogIApAQCAtNDU1OSw3ICs1NDc0LDI4IEBAIHRlc3RzdWl0ZS8KICAgICAg Z2xvYmFsX3JlZ3NbVlNDUl9SRUdOT10gPSAxOwogIAogICAgaWYgKFRBUkdFVF9BTFRJVkVDX0FC SSkKLUBAIC01MTAxLDYgKzU2MzEsOCBAQCByczYwMDBfZW1pdF9tb3ZlIChydHggZGVzdCwgcnR4 IHNvdXJjZSwgCitAQCAtNDkwMiw2ICs1NTYzLDIwIEBAIHJzNjAwMF9lbWl0X21vdmUgKHJ0eCBk ZXN0LCBydHggc291cmNlLCAKKyAgIG9wZXJhbmRzWzBdID0gZGVzdDsKKyAgIG9wZXJhbmRzWzFd ID0gc291cmNlOworIAorKyAgaWYgKFRBUkdFVF9ERUJVR19BRERSKQorKyAgICB7CisrICAgICAg ZnByaW50ZiAoc3RkZXJyLAorKwkgICAgICAgIlxucnM2MDAwX2VtaXRfbW92ZTogbW9kZSA9ICVz LCByZWxvYWRfaW5fcHJvZ3Jlc3MgPSAlZCwgIgorKwkgICAgICAgInJlbG9hZF9jb21wbGV0ZWQg PSAlZCwgY2FuX2NyZWF0ZV9wc2V1ZG9zID0gJWQuXG5kZXN0OlxuIiwKKysJICAgICAgIEdFVF9N T0RFX05BTUUgKG1vZGUpLAorKwkgICAgICAgcmVsb2FkX2luX3Byb2dyZXNzLAorKwkgICAgICAg cmVsb2FkX2NvbXBsZXRlZCwKKysJICAgICAgIGNhbl9jcmVhdGVfcHNldWRvX3AgKCkpOworKyAg ICAgIGRlYnVnX3J0eCAoZGVzdCk7CisrICAgICAgZnByaW50ZiAoc3RkZXJyLCAic291cmNlOlxu Iik7CisrICAgICAgZGVidWdfcnR4IChzb3VyY2UpOworKyAgICB9CisrCisgICAvKiBTYW5pdHkg Y2hlY2tzLiAgQ2hlY2sgdGhhdCB3ZSBnZXQgQ09OU1RfRE9VQkxFIG9ubHkgd2hlbiB3ZSBzaG91 bGQuICAqLworICAgaWYgKEdFVF9DT0RFIChvcGVyYW5kc1sxXSkgPT0gQ09OU1RfRE9VQkxFCisg ICAgICAgJiYgISBGTE9BVF9NT0RFX1AgKG1vZGUpCitAQCAtNTEwNiw2ICs1NzgxLDggQEAgcnM2 MDAwX2VtaXRfbW92ZSAocnR4IGRlc3QsIHJ0eCBzb3VyY2UsIAogICAgICBjYXNlIFYyU0Ztb2Rl OgogICAgICBjYXNlIFYyU0ltb2RlOgogICAgICBjYXNlIFYxREltb2RlOgpAQCAtNDU2OCw3ICs1 NTA0LDcgQEAgdGVzdHN1aXRlLwogICAgICAgIGlmIChDT05TVEFOVF9QIChvcGVyYW5kc1sxXSkK ICAJICAmJiAhZWFzeV92ZWN0b3JfY29uc3RhbnQgKG9wZXJhbmRzWzFdLCBtb2RlKSkKICAJb3Bl cmFuZHNbMV0gPSBmb3JjZV9jb25zdF9tZW0gKG1vZGUsIG9wZXJhbmRzWzFdKTsKLUBAIC01Mjcw LDYgKzU4MDIsOSBAQCByczYwMDBfZW1pdF9tb3ZlIChydHggZGVzdCwgcnR4IHNvdXJjZSwgCitA QCAtNTI3NSw2ICs1OTUyLDkgQEAgcnM2MDAwX2VtaXRfbW92ZSAocnR4IGRlc3QsIHJ0eCBzb3Vy Y2UsIAogICAgICAgIGJyZWFrOwogIAogICAgICBjYXNlIFRJbW9kZToKQEAgLTQ1NzgsNyArNTUx NCw3IEBAIHRlc3RzdWl0ZS8KICAgICAgICByczYwMDBfZWxpbWluYXRlX2luZGV4ZWRfbWVtcmVm cyAob3BlcmFuZHMpOwogIAogICAgICAgIGlmIChUQVJHRVRfUE9XRVIpCi1AQCAtNTI4NSw3ICs1 ODIwLDcgQEAgcnM2MDAwX2VtaXRfbW92ZSAocnR4IGRlc3QsIHJ0eCBzb3VyY2UsIAorQEAgLTUy OTAsNyArNTk3MCw3IEBAIHJzNjAwMF9lbWl0X21vdmUgKHJ0eCBkZXN0LCBydHggc291cmNlLCAK ICAgICAgICBicmVhazsKICAKICAgICAgZGVmYXVsdDoKQEAgLTQ1ODcsNyArNTUyMyw3IEBAIHRl c3RzdWl0ZS8KICAgICAgfQogIAogICAgLyogQWJvdmUsIHdlIG1heSBoYXZlIGNhbGxlZCBmb3Jj ZV9jb25zdF9tZW0gd2hpY2ggbWF5IGhhdmUgcmV0dXJuZWQKLUBAIC01MzA1LDEwICs1ODQwLDEw IEBAIHJzNjAwMF9lbWl0X21vdmUgKHJ0eCBkZXN0LCBydHggc291cmNlLCAKK0BAIC01MzEwLDEw ICs1OTkwLDEwIEBAIHJzNjAwMF9lbWl0X21vdmUgKHJ0eCBkZXN0LCBydHggc291cmNlLCAKICAg ICAmJiBUQVJHRVRfSEFSRF9GTE9BVCAmJiBUQVJHRVRfRlBSUykKICAKICAvKiBOb256ZXJvIGlm IHdlIGNhbiB1c2UgYW4gQWx0aVZlYyByZWdpc3RlciB0byBwYXNzIHRoaXMgYXJnLiAgKi8KQEAg LTQ2MDIsNyArNTUzOCw3IEBAIHRlc3RzdWl0ZS8KICAgICAmJiAoTkFNRUQpKQogIAogIC8qIFJl dHVybiBhIG5vbnplcm8gdmFsdWUgdG8gc2F5IHRvIHJldHVybiB0aGUgZnVuY3Rpb24gdmFsdWUg aW4KLUBAIC01NTQ5LDcgKzYwODQsNyBAQCBmdW5jdGlvbl9hcmdfYm91bmRhcnkgKGVudW0gbWFj aGluZV9tb2RlCitAQCAtNTU1NCw3ICs2MjM0LDcgQEAgZnVuY3Rpb25fYXJnX2JvdW5kYXJ5IChl bnVtIG1hY2hpbmVfbW9kZQogIAkgICAgICAgJiYgaW50X3NpemVfaW5fYnl0ZXMgKHR5cGUpID49 IDgKICAJICAgICAgICYmIGludF9zaXplX2luX2J5dGVzICh0eXBlKSA8IDE2KSkKICAgICAgcmV0 dXJuIDY0OwpAQCAtNDYxMSw3ICs1NTQ3LDcgQEAgdGVzdHN1aXRlLwogIAkgICB8fCAodHlwZSAm JiBUUkVFX0NPREUgKHR5cGUpID09IFZFQ1RPUl9UWVBFCiAgCSAgICAgICAmJiBpbnRfc2l6ZV9p bl9ieXRlcyAodHlwZSkgPj0gMTYpKQogICAgICByZXR1cm4gMTI4OwotQEAgLTU2OTQsNyArNjIy OSw3IEBAIGZ1bmN0aW9uX2FyZ19hZHZhbmNlIChDVU1VTEFUSVZFX0FSR1MgKmMKK0BAIC01Njk5 LDcgKzYzNzksNyBAQCBmdW5jdGlvbl9hcmdfYWR2YW5jZSAoQ1VNVUxBVElWRV9BUkdTICpjCiAg ICAgIGN1bS0+bmFyZ3NfcHJvdG90eXBlLS07CiAgCiAgICBpZiAoVEFSR0VUX0FMVElWRUNfQUJJ CkBAIC00NjIwLDcgKzU1NTYsNyBAQCB0ZXN0c3VpdGUvCiAgCSAgfHwgKHR5cGUgJiYgVFJFRV9D T0RFICh0eXBlKSA9PSBWRUNUT1JfVFlQRQogIAkgICAgICAmJiBpbnRfc2l6ZV9pbl9ieXRlcyAo dHlwZSkgPT0gMTYpKSkKICAgICAgewotQEAgLTYyODgsNyArNjgyMyw3IEBAIGZ1bmN0aW9uX2Fy ZyAoQ1VNVUxBVElWRV9BUkdTICpjdW0sIGVudW0KK0BAIC02MjkzLDcgKzY5NzMsNyBAQCBmdW5j dGlvbl9hcmcgKENVTVVMQVRJVkVfQVJHUyAqY3VtLCBlbnVtCiAgICAgIGVsc2UKICAgICAgICBy ZXR1cm4gZ2VuX3J0eF9SRUcgKG1vZGUsIGN1bS0+dnJlZ25vKTsKICAgIGVsc2UgaWYgKFRBUkdF VF9BTFRJVkVDX0FCSQpAQCAtNDYyOSw3ICs1NTY1LDcgQEAgdGVzdHN1aXRlLwogIAkgICAgICAg fHwgKHR5cGUgJiYgVFJFRV9DT0RFICh0eXBlKSA9PSBWRUNUT1JfVFlQRQogIAkJICAgJiYgaW50 X3NpemVfaW5fYnl0ZXMgKHR5cGUpID09IDE2KSkpCiAgICAgIHsKLUBAIC03MjEyLDEwICs3NzQ3 LDEzIEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgYnVpbHRpbl9kZXNjcmlwdGlvbiAKK0BAIC03MjE3 LDEwICs3ODk3LDEzIEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgYnVpbHRpbl9kZXNjcmlwdGlvbiAK ICAgIHsgTUFTS19BTFRJVkVDLCBDT0RFX0ZPUl9hbHRpdmVjX3ZwZXJtX3Y0c2ksICJfX2J1aWx0 aW5fYWx0aXZlY192cGVybV80c2kiLCBBTFRJVkVDX0JVSUxUSU5fVlBFUk1fNFNJIH0sCiAgICB7 IE1BU0tfQUxUSVZFQywgQ09ERV9GT1JfYWx0aXZlY192cGVybV92OGhpLCAiX19idWlsdGluX2Fs dGl2ZWNfdnBlcm1fOGhpIiwgQUxUSVZFQ19CVUlMVElOX1ZQRVJNXzhISSB9LAogICAgeyBNQVNL X0FMVElWRUMsIENPREVfRk9SX2FsdGl2ZWNfdnBlcm1fdjE2cWksICJfX2J1aWx0aW5fYWx0aXZl Y192cGVybV8xNnFpIiwgQUxUSVZFQ19CVUlMVElOX1ZQRVJNXzE2UUkgfSwKQEAgLTQ2NDcsNyAr NTU4MywyNCBAQCB0ZXN0c3VpdGUvCiAgICB7IE1BU0tfQUxUSVZFQywgQ09ERV9GT1JfYWx0aXZl Y192c2xkb2lfdjE2cWksICJfX2J1aWx0aW5fYWx0aXZlY192c2xkb2lfMTZxaSIsIEFMVElWRUNf QlVJTFRJTl9WU0xET0lfMTZRSSB9LAogICAgeyBNQVNLX0FMVElWRUMsIENPREVfRk9SX2FsdGl2 ZWNfdnNsZG9pX3Y4aGksICJfX2J1aWx0aW5fYWx0aXZlY192c2xkb2lfOGhpIiwgQUxUSVZFQ19C VUlMVElOX1ZTTERPSV84SEkgfSwKICAgIHsgTUFTS19BTFRJVkVDLCBDT0RFX0ZPUl9hbHRpdmVj X3ZzbGRvaV92NHNpLCAiX19idWlsdGluX2FsdGl2ZWNfdnNsZG9pXzRzaSIsIEFMVElWRUNfQlVJ TFRJTl9WU0xET0lfNFNJIH0sCi1AQCAtNzI4OSwxOCArNzgyNywxOCBAQCBzdGF0aWMgc3RydWN0 IGJ1aWx0aW5fZGVzY3JpcHRpb24gYmRlc2NfCitAQCAtNzI0Miw2ICs3OTI1LDE2IEBAIHN0YXRp YyBjb25zdCBzdHJ1Y3QgYnVpbHRpbl9kZXNjcmlwdGlvbiAKKyAgIHsgTUFTS19BTFRJVkVDLCBD T0RFX0ZPUl9ub3RoaW5nLCAiX19idWlsdGluX3ZlY19wZXJtIiwgQUxUSVZFQ19CVUlMVElOX1ZF Q19QRVJNIH0sCisgICB7IE1BU0tfQUxUSVZFQywgQ09ERV9GT1Jfbm90aGluZywgIl9fYnVpbHRp bl92ZWNfc2VsIiwgQUxUSVZFQ19CVUlMVElOX1ZFQ19TRUwgfSwKKyAKKysgIHsgTUFTS19WU1gs IENPREVfRk9SX3ZzeF9mbWFkZHYyZGY0LCAiX19idWlsdGluX3ZzeF94dm1hZGRkcCIsIFZTWF9C VUlMVElOX1hWTUFERERQIH0sCisrICB7IE1BU0tfVlNYLCBDT0RFX0ZPUl92c3hfZm1zdWJ2MmRm NCwgIl9fYnVpbHRpbl92c3hfeHZtc3ViZHAiLCBWU1hfQlVJTFRJTl9YVk1TVUJEUCB9LAorKyAg eyBNQVNLX1ZTWCwgQ09ERV9GT1JfdnN4X2ZubWFkZHYyZGY0LCAiX19idWlsdGluX3ZzeF94dm5t YWRkZHAiLCBWU1hfQlVJTFRJTl9YVk5NQURERFAgfSwKKysgIHsgTUFTS19WU1gsIENPREVfRk9S X3ZzeF9mbm1zdWJ2MmRmNCwgIl9fYnVpbHRpbl92c3hfeHZubXN1YmRwIiwgVlNYX0JVSUxUSU5f WFZOTVNVQkRQIH0sCisrCisrICB7IE1BU0tfVlNYLCBDT0RFX0ZPUl92c3hfZm1hZGR2NHNmNCwg Il9fYnVpbHRpbl92c3hfeHZtYWRkc3AiLCBWU1hfQlVJTFRJTl9YVk1BRERTUCB9LAorKyAgeyBN QVNLX1ZTWCwgQ09ERV9GT1JfdnN4X2Ztc3VidjRzZjQsICJfX2J1aWx0aW5fdnN4X3h2bXN1YnNw IiwgVlNYX0JVSUxUSU5fWFZNU1VCU1AgfSwKKysgIHsgTUFTS19WU1gsIENPREVfRk9SX3ZzeF9m bm1hZGR2NHNmNCwgIl9fYnVpbHRpbl92c3hfeHZubWFkZHNwIiwgVlNYX0JVSUxUSU5fWFZOTUFE RFNQIH0sCisrICB7IE1BU0tfVlNYLCBDT0RFX0ZPUl92c3hfZm5tc3VidjRzZjQsICJfX2J1aWx0 aW5fdnN4X3h2bm1zdWJzcCIsIFZTWF9CVUlMVElOX1hWTk1TVUJTUCB9LAorKworICAgeyAwLCBD T0RFX0ZPUl9wYWlyZWRfbXN1YiwgIl9fYnVpbHRpbl9wYWlyZWRfbXN1YiIsIFBBSVJFRF9CVUlM VElOX01TVUIgfSwKKyAgIHsgMCwgQ09ERV9GT1JfcGFpcmVkX21hZGQsICJfX2J1aWx0aW5fcGFp cmVkX21hZGQiLCBQQUlSRURfQlVJTFRJTl9NQUREIH0sCisgICB7IDAsIENPREVfRk9SX3BhaXJl ZF9tYWRkczAsICJfX2J1aWx0aW5fcGFpcmVkX21hZGRzMCIsIFBBSVJFRF9CVUlMVElOX01BRERT MCB9LAorQEAgLTcyOTQsMTggKzc5ODcsMTggQEAgc3RhdGljIHN0cnVjdCBidWlsdGluX2Rlc2Ny aXB0aW9uIGJkZXNjXwogICAgeyBNQVNLX0FMVElWRUMsIENPREVfRk9SX2FsdGl2ZWNfdmNmdXgs ICJfX2J1aWx0aW5fYWx0aXZlY192Y2Z1eCIsIEFMVElWRUNfQlVJTFRJTl9WQ0ZVWCB9LAogICAg eyBNQVNLX0FMVElWRUMsIENPREVfRk9SX2FsdGl2ZWNfdmNmc3gsICJfX2J1aWx0aW5fYWx0aXZl Y192Y2ZzeCIsIEFMVElWRUNfQlVJTFRJTl9WQ0ZTWCB9LAogICAgeyBNQVNLX0FMVElWRUMsIENP REVfRk9SX2FsdGl2ZWNfdmNtcGJmcCwgIl9fYnVpbHRpbl9hbHRpdmVjX3ZjbXBiZnAiLCBBTFRJ VkVDX0JVSUxUSU5fVkNNUEJGUCB9LApAQCAtNDY3OCw3ICs1NjMxLDcgQEAgdGVzdHN1aXRlLwog ICAgeyBNQVNLX0FMVElWRUMsIENPREVfRk9SX2FsdGl2ZWNfdmN0c3hzLCAiX19idWlsdGluX2Fs dGl2ZWNfdmN0c3hzIiwgQUxUSVZFQ19CVUlMVElOX1ZDVFNYUyB9LAogICAgeyBNQVNLX0FMVElW RUMsIENPREVfRk9SX2FsdGl2ZWNfdmN0dXhzLCAiX19idWlsdGluX2FsdGl2ZWNfdmN0dXhzIiwg QUxUSVZFQ19CVUlMVElOX1ZDVFVYUyB9LAogICAgeyBNQVNLX0FMVElWRUMsIENPREVfRk9SX3Vt YXh2MTZxaTMsICJfX2J1aWx0aW5fYWx0aXZlY192bWF4dWIiLCBBTFRJVkVDX0JVSUxUSU5fVk1B WFVCIH0sCi1AQCAtNzMzMSw3ICs3ODY5LDcgQEAgc3RhdGljIHN0cnVjdCBidWlsdGluX2Rlc2Ny aXB0aW9uIGJkZXNjXworQEAgLTczMzYsNyArODAyOSw3IEBAIHN0YXRpYyBzdHJ1Y3QgYnVpbHRp bl9kZXNjcmlwdGlvbiBiZGVzY18KICAgIHsgTUFTS19BTFRJVkVDLCBDT0RFX0ZPUl9hbHRpdmVj X3ZtdWxvc2IsICJfX2J1aWx0aW5fYWx0aXZlY192bXVsb3NiIiwgQUxUSVZFQ19CVUlMVElOX1ZN VUxPU0IgfSwKICAgIHsgTUFTS19BTFRJVkVDLCBDT0RFX0ZPUl9hbHRpdmVjX3ZtdWxvdWgsICJf X2J1aWx0aW5fYWx0aXZlY192bXVsb3VoIiwgQUxUSVZFQ19CVUlMVElOX1ZNVUxPVUggfSwKICAg IHsgTUFTS19BTFRJVkVDLCBDT0RFX0ZPUl9hbHRpdmVjX3ZtdWxvc2gsICJfX2J1aWx0aW5fYWx0 aXZlY192bXVsb3NoIiwgQUxUSVZFQ19CVUlMVElOX1ZNVUxPU0ggfSwKQEAgLTQ2ODcsNyArNTY0 MCwxMzMgQEAgdGVzdHN1aXRlLwogICAgeyBNQVNLX0FMVElWRUMsIENPREVfRk9SX2lvcnY0c2kz LCAiX19idWlsdGluX2FsdGl2ZWNfdm9yIiwgQUxUSVZFQ19CVUlMVElOX1ZPUiB9LAogICAgeyBN QVNLX0FMVElWRUMsIENPREVfRk9SX2FsdGl2ZWNfdnBrdWh1bSwgIl9fYnVpbHRpbl9hbHRpdmVj X3Zwa3VodW0iLCBBTFRJVkVDX0JVSUxUSU5fVlBLVUhVTSB9LAogICAgeyBNQVNLX0FMVElWRUMs IENPREVfRk9SX2FsdGl2ZWNfdnBrdXd1bSwgIl9fYnVpbHRpbl9hbHRpdmVjX3Zwa3V3dW0iLCBB TFRJVkVDX0JVSUxUSU5fVlBLVVdVTSB9LAotQEAgLTc3OTYsNiArODMzNCwxMSBAQCBzdGF0aWMg c3RydWN0IGJ1aWx0aW5fZGVzY3JpcHRpb24gYmRlc2NfCitAQCAtNzM4NCw4ICs4MDc3LDI0IEBA IHN0YXRpYyBzdHJ1Y3QgYnVpbHRpbl9kZXNjcmlwdGlvbiBiZGVzY18KKyAgIHsgTUFTS19BTFRJ VkVDLCBDT0RFX0ZPUl9hbHRpdmVjX3ZzdW1zd3MsICJfX2J1aWx0aW5fYWx0aXZlY192c3Vtc3dz IiwgQUxUSVZFQ19CVUlMVElOX1ZTVU1TV1MgfSwKKyAgIHsgTUFTS19BTFRJVkVDLCBDT0RFX0ZP Ul94b3J2NHNpMywgIl9fYnVpbHRpbl9hbHRpdmVjX3Z4b3IiLCBBTFRJVkVDX0JVSUxUSU5fVlhP UiB9LAorIAorLSAgeyBNQVNLX0FMVElWRUMsIENPREVfRk9SX25vdGhpbmcsICJfX2J1aWx0aW5f dmVjX2FkZCIsIEFMVElWRUNfQlVJTFRJTl9WRUNfQUREIH0sCistICB7IE1BU0tfQUxUSVZFQywg Q09ERV9GT1Jfbm90aGluZywgIl9fYnVpbHRpbl92ZWNfdmFkZGZwIiwgQUxUSVZFQ19CVUlMVElO X1ZFQ19WQURERlAgfSwKKysgIHsgTUFTS19WU1gsIENPREVfRk9SX2FkZHYyZGYzLCAiX19idWls dGluX3ZzeF94dmFkZGRwIiwgVlNYX0JVSUxUSU5fWFZBREREUCB9LAorKyAgeyBNQVNLX1ZTWCwg Q09ERV9GT1Jfc3VidjJkZjMsICJfX2J1aWx0aW5fdnN4X3h2c3ViZHAiLCBWU1hfQlVJTFRJTl9Y VlNVQkRQIH0sCisrICB7IE1BU0tfVlNYLCBDT0RFX0ZPUl9tdWx2MmRmMywgIl9fYnVpbHRpbl92 c3hfeHZtdWxkcCIsIFZTWF9CVUlMVElOX1hWTVVMRFAgfSwKKysgIHsgTUFTS19WU1gsIENPREVf Rk9SX2RpdnYyZGYzLCAiX19idWlsdGluX3ZzeF94dmRpdmRwIiwgVlNYX0JVSUxUSU5fWFZESVZE UCB9LAorKyAgeyBNQVNLX1ZTWCwgQ09ERV9GT1Jfc21pbnYyZGYzLCAiX19idWlsdGluX3ZzeF94 dm1pbmRwIiwgVlNYX0JVSUxUSU5fWFZNSU5EUCB9LAorKyAgeyBNQVNLX1ZTWCwgQ09ERV9GT1Jf c21heHYyZGYzLCAiX19idWlsdGluX3ZzeF94dm1heGRwIiwgVlNYX0JVSUxUSU5fWFZNQVhEUCB9 LAorKyAgeyBNQVNLX1ZTWCwgQ09ERV9GT1JfdnN4X3RkaXZ2MmRmMywgIl9fYnVpbHRpbl92c3hf eHZ0ZGl2ZHAiLCBWU1hfQlVJTFRJTl9YVlRESVZEUCB9LAorKworKyAgeyBNQVNLX1ZTWCwgQ09E RV9GT1JfYWRkdjRzZjMsICJfX2J1aWx0aW5fdnN4X3h2YWRkc3AiLCBWU1hfQlVJTFRJTl9YVkFE RFNQIH0sCisrICB7IE1BU0tfVlNYLCBDT0RFX0ZPUl9zdWJ2NHNmMywgIl9fYnVpbHRpbl92c3hf eHZzdWJzcCIsIFZTWF9CVUlMVElOX1hWU1VCU1AgfSwKKysgIHsgTUFTS19WU1gsIENPREVfRk9S X211bHY0c2YzLCAiX19idWlsdGluX3ZzeF94dm11bHNwIiwgVlNYX0JVSUxUSU5fWFZNVUxTUCB9 LAorKyAgeyBNQVNLX1ZTWCwgQ09ERV9GT1JfZGl2djRzZjMsICJfX2J1aWx0aW5fdnN4X3h2ZGl2 c3AiLCBWU1hfQlVJTFRJTl9YVkRJVlNQIH0sCisrICB7IE1BU0tfVlNYLCBDT0RFX0ZPUl9zbWlu djRzZjMsICJfX2J1aWx0aW5fdnN4X3h2bWluc3AiLCBWU1hfQlVJTFRJTl9YVk1JTlNQIH0sCisr ICB7IE1BU0tfVlNYLCBDT0RFX0ZPUl9zbWF4djRzZjMsICJfX2J1aWx0aW5fdnN4X3h2bWF4c3Ai LCBWU1hfQlVJTFRJTl9YVk1BWFNQIH0sCisrICB7IE1BU0tfVlNYLCBDT0RFX0ZPUl92c3hfdGRp dnY0c2YzLCAiX19idWlsdGluX3ZzeF94dnRkaXZzcCIsIFZTWF9CVUlMVElOX1hWVERJVlNQIH0s CisrCisrICB7IE1BU0tfQUxUSVZFQ3xNQVNLX1ZTWCwgQ09ERV9GT1Jfbm90aGluZywgIl9fYnVp bHRpbl92ZWNfYWRkIiwgQUxUSVZFQ19CVUlMVElOX1ZFQ19BREQgfSwKKysgIHsgTUFTS19BTFRJ VkVDfE1BU0tfVlNYLCBDT0RFX0ZPUl9ub3RoaW5nLCAiX19idWlsdGluX3ZlY192YWRkZnAiLCBB TFRJVkVDX0JVSUxUSU5fVkVDX1ZBRERGUCB9LAorICAgeyBNQVNLX0FMVElWRUMsIENPREVfRk9S X25vdGhpbmcsICJfX2J1aWx0aW5fdmVjX3ZhZGR1d20iLCBBTFRJVkVDX0JVSUxUSU5fVkVDX1ZB RERVV00gfSwKKyAgIHsgTUFTS19BTFRJVkVDLCBDT0RFX0ZPUl9ub3RoaW5nLCAiX19idWlsdGlu X3ZlY192YWRkdWhtIiwgQUxUSVZFQ19CVUlMVElOX1ZFQ19WQUREVUhNIH0sCisgICB7IE1BU0tf QUxUSVZFQywgQ09ERV9GT1Jfbm90aGluZywgIl9fYnVpbHRpbl92ZWNfdmFkZHVibSIsIEFMVElW RUNfQlVJTFRJTl9WRUNfVkFERFVCTSB9LAorQEAgLTczOTcsOCArODEwNiw4IEBAIHN0YXRpYyBz dHJ1Y3QgYnVpbHRpbl9kZXNjcmlwdGlvbiBiZGVzY18KKyAgIHsgTUFTS19BTFRJVkVDLCBDT0RF X0ZPUl9ub3RoaW5nLCAiX19idWlsdGluX3ZlY192YWRkdWhzIiwgQUxUSVZFQ19CVUlMVElOX1ZF Q19WQUREVUhTIH0sCisgICB7IE1BU0tfQUxUSVZFQywgQ09ERV9GT1Jfbm90aGluZywgIl9fYnVp bHRpbl92ZWNfdmFkZHNicyIsIEFMVElWRUNfQlVJTFRJTl9WRUNfVkFERFNCUyB9LAorICAgeyBN QVNLX0FMVElWRUMsIENPREVfRk9SX25vdGhpbmcsICJfX2J1aWx0aW5fdmVjX3ZhZGR1YnMiLCBB TFRJVkVDX0JVSUxUSU5fVkVDX1ZBRERVQlMgfSwKKy0gIHsgTUFTS19BTFRJVkVDLCBDT0RFX0ZP Ul9ub3RoaW5nLCAiX19idWlsdGluX3ZlY19hbmQiLCBBTFRJVkVDX0JVSUxUSU5fVkVDX0FORCB9 LAorLSAgeyBNQVNLX0FMVElWRUMsIENPREVfRk9SX25vdGhpbmcsICJfX2J1aWx0aW5fdmVjX2Fu ZGMiLCBBTFRJVkVDX0JVSUxUSU5fVkVDX0FOREMgfSwKKysgIHsgTUFTS19BTFRJVkVDfE1BU0tf VlNYLCBDT0RFX0ZPUl9ub3RoaW5nLCAiX19idWlsdGluX3ZlY19hbmQiLCBBTFRJVkVDX0JVSUxU SU5fVkVDX0FORCB9LAorKyAgeyBNQVNLX0FMVElWRUN8TUFTS19WU1gsIENPREVfRk9SX25vdGhp bmcsICJfX2J1aWx0aW5fdmVjX2FuZGMiLCBBTFRJVkVDX0JVSUxUSU5fVkVDX0FOREMgfSwKKyAg IHsgTUFTS19BTFRJVkVDLCBDT0RFX0ZPUl9ub3RoaW5nLCAiX19idWlsdGluX3ZlY19hdmciLCBB TFRJVkVDX0JVSUxUSU5fVkVDX0FWRyB9LAorICAgeyBNQVNLX0FMVElWRUMsIENPREVfRk9SX25v dGhpbmcsICJfX2J1aWx0aW5fdmVjX3ZhdmdzdyIsIEFMVElWRUNfQlVJTFRJTl9WRUNfVkFWR1NX IH0sCisgICB7IE1BU0tfQUxUSVZFQywgQ09ERV9GT1Jfbm90aGluZywgIl9fYnVpbHRpbl92ZWNf dmF2Z3V3IiwgQUxUSVZFQ19CVUlMVElOX1ZFQ19WQVZHVVcgfSwKK0BAIC03NDIzLDggKzgxMzIs OCBAQCBzdGF0aWMgc3RydWN0IGJ1aWx0aW5fZGVzY3JpcHRpb24gYmRlc2NfCisgICB7IE1BU0tf QUxUSVZFQywgQ09ERV9GT1Jfbm90aGluZywgIl9fYnVpbHRpbl92ZWNfdmNtcGd0dWIiLCBBTFRJ VkVDX0JVSUxUSU5fVkVDX1ZDTVBHVFVCIH0sCisgICB7IE1BU0tfQUxUSVZFQywgQ09ERV9GT1Jf bm90aGluZywgIl9fYnVpbHRpbl92ZWNfY21wbGUiLCBBTFRJVkVDX0JVSUxUSU5fVkVDX0NNUExF IH0sCisgICB7IE1BU0tfQUxUSVZFQywgQ09ERV9GT1Jfbm90aGluZywgIl9fYnVpbHRpbl92ZWNf Y21wbHQiLCBBTFRJVkVDX0JVSUxUSU5fVkVDX0NNUExUIH0sCistICB7IE1BU0tfQUxUSVZFQywg Q09ERV9GT1Jfbm90aGluZywgIl9fYnVpbHRpbl92ZWNfbWF4IiwgQUxUSVZFQ19CVUlMVElOX1ZF Q19NQVggfSwKKy0gIHsgTUFTS19BTFRJVkVDLCBDT0RFX0ZPUl9ub3RoaW5nLCAiX19idWlsdGlu X3ZlY192bWF4ZnAiLCBBTFRJVkVDX0JVSUxUSU5fVkVDX1ZNQVhGUCB9LAorKyAgeyBNQVNLX0FM VElWRUN8TUFTS19WU1gsIENPREVfRk9SX25vdGhpbmcsICJfX2J1aWx0aW5fdmVjX21heCIsIEFM VElWRUNfQlVJTFRJTl9WRUNfTUFYIH0sCisrICB7IE1BU0tfQUxUSVZFQ3xNQVNLX1ZTWCwgQ09E RV9GT1Jfbm90aGluZywgIl9fYnVpbHRpbl92ZWNfdm1heGZwIiwgQUxUSVZFQ19CVUlMVElOX1ZF Q19WTUFYRlAgfSwKKyAgIHsgTUFTS19BTFRJVkVDLCBDT0RFX0ZPUl9ub3RoaW5nLCAiX19idWls dGluX3ZlY192bWF4c3ciLCBBTFRJVkVDX0JVSUxUSU5fVkVDX1ZNQVhTVyB9LAorICAgeyBNQVNL X0FMVElWRUMsIENPREVfRk9SX25vdGhpbmcsICJfX2J1aWx0aW5fdmVjX3ZtYXh1dyIsIEFMVElW RUNfQlVJTFRJTl9WRUNfVk1BWFVXIH0sCisgICB7IE1BU0tfQUxUSVZFQywgQ09ERV9GT1Jfbm90 aGluZywgIl9fYnVpbHRpbl92ZWNfdm1heHNoIiwgQUxUSVZFQ19CVUlMVElOX1ZFQ19WTUFYU0gg fSwKK0BAIC03NDM5LDggKzgxNDgsOCBAQCBzdGF0aWMgc3RydWN0IGJ1aWx0aW5fZGVzY3JpcHRp b24gYmRlc2NfCisgICB7IE1BU0tfQUxUSVZFQywgQ09ERV9GT1Jfbm90aGluZywgIl9fYnVpbHRp bl92ZWNfdm1yZ2x3IiwgQUxUSVZFQ19CVUlMVElOX1ZFQ19WTVJHTFcgfSwKKyAgIHsgTUFTS19B TFRJVkVDLCBDT0RFX0ZPUl9ub3RoaW5nLCAiX19idWlsdGluX3ZlY192bXJnbGgiLCBBTFRJVkVD X0JVSUxUSU5fVkVDX1ZNUkdMSCB9LAorICAgeyBNQVNLX0FMVElWRUMsIENPREVfRk9SX25vdGhp bmcsICJfX2J1aWx0aW5fdmVjX3ZtcmdsYiIsIEFMVElWRUNfQlVJTFRJTl9WRUNfVk1SR0xCIH0s CistICB7IE1BU0tfQUxUSVZFQywgQ09ERV9GT1Jfbm90aGluZywgIl9fYnVpbHRpbl92ZWNfbWlu IiwgQUxUSVZFQ19CVUlMVElOX1ZFQ19NSU4gfSwKKy0gIHsgTUFTS19BTFRJVkVDLCBDT0RFX0ZP Ul9ub3RoaW5nLCAiX19idWlsdGluX3ZlY192bWluZnAiLCBBTFRJVkVDX0JVSUxUSU5fVkVDX1ZN SU5GUCB9LAorKyAgeyBNQVNLX0FMVElWRUN8TUFTS19WU1gsIENPREVfRk9SX25vdGhpbmcsICJf X2J1aWx0aW5fdmVjX21pbiIsIEFMVElWRUNfQlVJTFRJTl9WRUNfTUlOIH0sCisrICB7IE1BU0tf QUxUSVZFQ3xNQVNLX1ZTWCwgQ09ERV9GT1Jfbm90aGluZywgIl9fYnVpbHRpbl92ZWNfdm1pbmZw IiwgQUxUSVZFQ19CVUlMVElOX1ZFQ19WTUlORlAgfSwKKyAgIHsgTUFTS19BTFRJVkVDLCBDT0RF X0ZPUl9ub3RoaW5nLCAiX19idWlsdGluX3ZlY192bWluc3ciLCBBTFRJVkVDX0JVSUxUSU5fVkVD X1ZNSU5TVyB9LAorICAgeyBNQVNLX0FMVElWRUMsIENPREVfRk9SX25vdGhpbmcsICJfX2J1aWx0 aW5fdmVjX3ZtaW51dyIsIEFMVElWRUNfQlVJTFRJTl9WRUNfVk1JTlVXIH0sCisgICB7IE1BU0tf QUxUSVZFQywgQ09ERV9GT1Jfbm90aGluZywgIl9fYnVpbHRpbl92ZWNfdm1pbnNoIiwgQUxUSVZF Q19CVUlMVElOX1ZFQ19WTUlOU0ggfSwKK0BAIC03NDU3LDggKzgxNjYsOCBAQCBzdGF0aWMgc3Ry dWN0IGJ1aWx0aW5fZGVzY3JpcHRpb24gYmRlc2NfCisgICB7IE1BU0tfQUxUSVZFQywgQ09ERV9G T1Jfbm90aGluZywgIl9fYnVpbHRpbl92ZWNfdm11bG91aCIsIEFMVElWRUNfQlVJTFRJTl9WRUNf Vk1VTE9VSCB9LAorICAgeyBNQVNLX0FMVElWRUMsIENPREVfRk9SX25vdGhpbmcsICJfX2J1aWx0 aW5fdmVjX3ZtdWxvc2IiLCBBTFRJVkVDX0JVSUxUSU5fVkVDX1ZNVUxPU0IgfSwKKyAgIHsgTUFT S19BTFRJVkVDLCBDT0RFX0ZPUl9ub3RoaW5nLCAiX19idWlsdGluX3ZlY192bXVsb3ViIiwgQUxU SVZFQ19CVUlMVElOX1ZFQ19WTVVMT1VCIH0sCistICB7IE1BU0tfQUxUSVZFQywgQ09ERV9GT1Jf bm90aGluZywgIl9fYnVpbHRpbl92ZWNfbm9yIiwgQUxUSVZFQ19CVUlMVElOX1ZFQ19OT1IgfSwK Ky0gIHsgTUFTS19BTFRJVkVDLCBDT0RFX0ZPUl9ub3RoaW5nLCAiX19idWlsdGluX3ZlY19vciIs IEFMVElWRUNfQlVJTFRJTl9WRUNfT1IgfSwKKysgIHsgTUFTS19BTFRJVkVDfE1BU0tfVlNYLCBD T0RFX0ZPUl9ub3RoaW5nLCAiX19idWlsdGluX3ZlY19ub3IiLCBBTFRJVkVDX0JVSUxUSU5fVkVD X05PUiB9LAorKyAgeyBNQVNLX0FMVElWRUN8TUFTS19WU1gsIENPREVfRk9SX25vdGhpbmcsICJf X2J1aWx0aW5fdmVjX29yIiwgQUxUSVZFQ19CVUlMVElOX1ZFQ19PUiB9LAorICAgeyBNQVNLX0FM VElWRUMsIENPREVfRk9SX25vdGhpbmcsICJfX2J1aWx0aW5fdmVjX3BhY2siLCBBTFRJVkVDX0JV SUxUSU5fVkVDX1BBQ0sgfSwKKyAgIHsgTUFTS19BTFRJVkVDLCBDT0RFX0ZPUl9ub3RoaW5nLCAi X19idWlsdGluX3ZlY192cGt1d3VtIiwgQUxUSVZFQ19CVUlMVElOX1ZFQ19WUEtVV1VNIH0sCisg ICB7IE1BU0tfQUxUSVZFQywgQ09ERV9GT1Jfbm90aGluZywgIl9fYnVpbHRpbl92ZWNfdnBrdWh1 bSIsIEFMVElWRUNfQlVJTFRJTl9WRUNfVlBLVUhVTSB9LAorQEAgLTc0OTEsOCArODIwMCw4IEBA IHN0YXRpYyBzdHJ1Y3QgYnVpbHRpbl9kZXNjcmlwdGlvbiBiZGVzY18KKyAgIHsgTUFTS19BTFRJ VkVDLCBDT0RFX0ZPUl9ub3RoaW5nLCAiX19idWlsdGluX3ZlY192c3JhYiIsIEFMVElWRUNfQlVJ TFRJTl9WRUNfVlNSQUIgfSwKKyAgIHsgTUFTS19BTFRJVkVDLCBDT0RFX0ZPUl9ub3RoaW5nLCAi X19idWlsdGluX3ZlY19zcmwiLCBBTFRJVkVDX0JVSUxUSU5fVkVDX1NSTCB9LAorICAgeyBNQVNL X0FMVElWRUMsIENPREVfRk9SX25vdGhpbmcsICJfX2J1aWx0aW5fdmVjX3NybyIsIEFMVElWRUNf QlVJTFRJTl9WRUNfU1JPIH0sCistICB7IE1BU0tfQUxUSVZFQywgQ09ERV9GT1Jfbm90aGluZywg Il9fYnVpbHRpbl92ZWNfc3ViIiwgQUxUSVZFQ19CVUlMVElOX1ZFQ19TVUIgfSwKKy0gIHsgTUFT S19BTFRJVkVDLCBDT0RFX0ZPUl9ub3RoaW5nLCAiX19idWlsdGluX3ZlY192c3ViZnAiLCBBTFRJ VkVDX0JVSUxUSU5fVkVDX1ZTVUJGUCB9LAorKyAgeyBNQVNLX0FMVElWRUN8TUFTS19WU1gsIENP REVfRk9SX25vdGhpbmcsICJfX2J1aWx0aW5fdmVjX3N1YiIsIEFMVElWRUNfQlVJTFRJTl9WRUNf U1VCIH0sCisrICB7IE1BU0tfQUxUSVZFQ3xNQVNLX1ZTWCwgQ09ERV9GT1Jfbm90aGluZywgIl9f YnVpbHRpbl92ZWNfdnN1YmZwIiwgQUxUSVZFQ19CVUlMVElOX1ZFQ19WU1VCRlAgfSwKKyAgIHsg TUFTS19BTFRJVkVDLCBDT0RFX0ZPUl9ub3RoaW5nLCAiX19idWlsdGluX3ZlY192c3VidXdtIiwg QUxUSVZFQ19CVUlMVElOX1ZFQ19WU1VCVVdNIH0sCisgICB7IE1BU0tfQUxUSVZFQywgQ09ERV9G T1Jfbm90aGluZywgIl9fYnVpbHRpbl92ZWNfdnN1YnVobSIsIEFMVElWRUNfQlVJTFRJTl9WRUNf VlNVQlVITSB9LAorICAgeyBNQVNLX0FMVElWRUMsIENPREVfRk9SX25vdGhpbmcsICJfX2J1aWx0 aW5fdmVjX3ZzdWJ1Ym0iLCBBTFRJVkVDX0JVSUxUSU5fVkVDX1ZTVUJVQk0gfSwKK0BAIC03NTEw LDcgKzgyMTksMTAgQEAgc3RhdGljIHN0cnVjdCBidWlsdGluX2Rlc2NyaXB0aW9uIGJkZXNjXwor ICAgeyBNQVNLX0FMVElWRUMsIENPREVfRk9SX25vdGhpbmcsICJfX2J1aWx0aW5fdmVjX3ZzdW00 dWJzIiwgQUxUSVZFQ19CVUlMVElOX1ZFQ19WU1VNNFVCUyB9LAorICAgeyBNQVNLX0FMVElWRUMs IENPREVfRk9SX25vdGhpbmcsICJfX2J1aWx0aW5fdmVjX3N1bTJzIiwgQUxUSVZFQ19CVUlMVElO X1ZFQ19TVU0yUyB9LAorICAgeyBNQVNLX0FMVElWRUMsIENPREVfRk9SX25vdGhpbmcsICJfX2J1 aWx0aW5fdmVjX3N1bXMiLCBBTFRJVkVDX0JVSUxUSU5fVkVDX1NVTVMgfSwKKy0gIHsgTUFTS19B TFRJVkVDLCBDT0RFX0ZPUl9ub3RoaW5nLCAiX19idWlsdGluX3ZlY194b3IiLCBBTFRJVkVDX0JV SUxUSU5fVkVDX1hPUiB9LAorKyAgeyBNQVNLX0FMVElWRUN8TUFTS19WU1gsIENPREVfRk9SX25v dGhpbmcsICJfX2J1aWx0aW5fdmVjX3hvciIsIEFMVElWRUNfQlVJTFRJTl9WRUNfWE9SIH0sCisr CisrICB7IE1BU0tfVlNYLCBDT0RFX0ZPUl9ub3RoaW5nLCAiX19idWlsdGluX3ZlY19tdWwiLCBW U1hfQlVJTFRJTl9WRUNfTVVMIH0sCisrICB7IE1BU0tfVlNYLCBDT0RFX0ZPUl9ub3RoaW5nLCAi X19idWlsdGluX3ZlY19kaXYiLCBWU1hfQlVJTFRJTl9WRUNfRElWIH0sCisgCisgICB7IDAsIENP REVfRk9SX2RpdnYyc2YzLCAiX19idWlsdGluX3BhaXJlZF9kaXZ2MnNmMyIsIFBBSVJFRF9CVUlM VElOX0RJVlYyU0YzIH0sCisgICB7IDAsIENPREVfRk9SX2FkZHYyc2YzLCAiX19idWlsdGluX3Bh aXJlZF9hZGR2MnNmMyIsIFBBSVJFRF9CVUlMVElOX0FERFYyU0YzIH0sCitAQCAtNzc1NSw3ICs4 NDY3LDExIEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgYnVpbHRpbl9kZXNjcmlwdGlvbiAKKyAgIHsg TUFTS19BTFRJVkVDLCBDT0RFX0ZPUl9hYnN2MTZxaTIsICJfX2J1aWx0aW5fYWx0aXZlY19hYnNf djE2cWkiLCBBTFRJVkVDX0JVSUxUSU5fQUJTX1YxNlFJIH0sCisgICB7IE1BU0tfQUxUSVZFQywg Q09ERV9GT1JfYWx0aXZlY19hYnNzX3Y0c2ksICJfX2J1aWx0aW5fYWx0aXZlY19hYnNzX3Y0c2ki LCBBTFRJVkVDX0JVSUxUSU5fQUJTU19WNFNJIH0sCisgICB7IE1BU0tfQUxUSVZFQywgQ09ERV9G T1JfYWx0aXZlY19hYnNzX3Y4aGksICJfX2J1aWx0aW5fYWx0aXZlY19hYnNzX3Y4aGkiLCBBTFRJ VkVDX0JVSUxUSU5fQUJTU19WOEhJIH0sCistICB7IE1BU0tfQUxUSVZFQywgQ09ERV9GT1JfYWx0 aXZlY19hYnNzX3YxNnFpLCAiX19idWlsdGluX2FsdGl2ZWNfYWJzc192MTZxaSIsIEFMVElWRUNf QlVJTFRJTl9BQlNTX1YxNlFJIH0KKysgIHsgTUFTS19BTFRJVkVDLCBDT0RFX0ZPUl9hbHRpdmVj X2Fic3NfdjE2cWksICJfX2J1aWx0aW5fYWx0aXZlY19hYnNzX3YxNnFpIiwgQUxUSVZFQ19CVUlM VElOX0FCU1NfVjE2UUkgfSwKKysgIHsgTUFTS19WU1gsIENPREVfRk9SX2Fic3YyZGYyLCAiX19i dWlsdGluX3ZzeF94dmFic2RwIiwgVlNYX0JVSUxUSU5fWFZBQlNEUCB9LAorKyAgeyBNQVNLX1ZT WCwgQ09ERV9GT1JfdnN4X25hYnN2MmRmMiwgIl9fYnVpbHRpbl92c3hfeHZuYWJzZHAiLCBWU1hf QlVJTFRJTl9YVk5BQlNEUCB9LAorKyAgeyBNQVNLX1ZTWCwgQ09ERV9GT1JfYWJzdjRzZjIsICJf X2J1aWx0aW5fdnN4X3h2YWJzc3AiLCBWU1hfQlVJTFRJTl9YVkFCU1NQIH0sCisrICB7IE1BU0tf VlNYLCBDT0RFX0ZPUl92c3hfbmFic3Y0c2YyLCAiX19idWlsdGluX3ZzeF94dm5hYnNzcCIsIFZT WF9CVUlMVElOX1hWTkFCU1NQIH0sCisgfTsKKyAKKyAvKiBTaW1wbGUgdW5hcnkgb3BlcmF0aW9u czogVkVDYiA9IGZvbyAodW5zaWduZWQgbGl0ZXJhbCkgb3IgVkVDYiA9CitAQCAtNzc4MSw2ICs4 NDk3LDE4IEBAIHN0YXRpYyBzdHJ1Y3QgYnVpbHRpbl9kZXNjcmlwdGlvbiBiZGVzY18KKyAgIHsg TUFTS19BTFRJVkVDLCBDT0RFX0ZPUl9hbHRpdmVjX3Z1cGtscHgsICJfX2J1aWx0aW5fYWx0aXZl Y192dXBrbHB4IiwgQUxUSVZFQ19CVUlMVElOX1ZVUEtMUFggfSwKKyAgIHsgTUFTS19BTFRJVkVD LCBDT0RFX0ZPUl9hbHRpdmVjX3Z1cGtsc2gsICJfX2J1aWx0aW5fYWx0aXZlY192dXBrbHNoIiwg QUxUSVZFQ19CVUlMVElOX1ZVUEtMU0ggfSwKKyAKKysgIHsgTUFTS19WU1gsIENPREVfRk9SX25l Z3YyZGYyLCAiX19idWlsdGluX3ZzeF94dm5lZ2RwIiwgVlNYX0JVSUxUSU5fWFZORUdEUCB9LAor KyAgeyBNQVNLX1ZTWCwgQ09ERV9GT1Jfc3FydHYyZGYyLCAiX19idWlsdGluX3ZzeF94dnNxcnRk cCIsIFZTWF9CVUlMVElOX1hWU1FSVERQIH0sCisrICB7IE1BU0tfVlNYLCBDT0RFX0ZPUl92c3hf cnNxcnRldjJkZjIsICJfX2J1aWx0aW5fdnN4X3h2cnNxcnRlZHAiLCBWU1hfQlVJTFRJTl9YVlJT UVJURURQIH0sCisrICB7IE1BU0tfVlNYLCBDT0RFX0ZPUl92c3hfdHNxcnR2MmRmMiwgIl9fYnVp bHRpbl92c3hfeHZ0c3FydGRwIiwgVlNYX0JVSUxUSU5fWFZUU1FSVERQIH0sCisrICB7IE1BU0tf VlNYLCBDT0RFX0ZPUl92c3hfZnJldjJkZjIsICJfX2J1aWx0aW5fdnN4X3h2cmVkcCIsIFZTWF9C VUlMVElOX1hWUkVEUCB9LAorKworKyAgeyBNQVNLX1ZTWCwgQ09ERV9GT1JfbmVndjRzZjIsICJf X2J1aWx0aW5fdnN4X3h2bmVnc3AiLCBWU1hfQlVJTFRJTl9YVk5FR1NQIH0sCisrICB7IE1BU0tf VlNYLCBDT0RFX0ZPUl9zcXJ0djRzZjIsICJfX2J1aWx0aW5fdnN4X3h2c3FydHNwIiwgVlNYX0JV SUxUSU5fWFZTUVJUU1AgfSwKKysgIHsgTUFTS19WU1gsIENPREVfRk9SX3ZzeF9yc3FydGV2NHNm MiwgIl9fYnVpbHRpbl92c3hfeHZyc3FydGVzcCIsIFZTWF9CVUlMVElOX1hWUlNRUlRFU1AgfSwK KysgIHsgTUFTS19WU1gsIENPREVfRk9SX3ZzeF90c3FydHY0c2YyLCAiX19idWlsdGluX3ZzeF94 dnRzcXJ0c3AiLCBWU1hfQlVJTFRJTl9YVlRTUVJUU1AgfSwKKysgIHsgTUFTS19WU1gsIENPREVf Rk9SX3ZzeF9mcmV2NHNmMiwgIl9fYnVpbHRpbl92c3hfeHZyZXNwIiwgVlNYX0JVSUxUSU5fWFZS RVNQIH0sCisrCisgICB7IE1BU0tfQUxUSVZFQywgQ09ERV9GT1Jfbm90aGluZywgIl9fYnVpbHRp bl92ZWNfYWJzIiwgQUxUSVZFQ19CVUlMVElOX1ZFQ19BQlMgfSwKKyAgIHsgTUFTS19BTFRJVkVD LCBDT0RFX0ZPUl9ub3RoaW5nLCAiX19idWlsdGluX3ZlY19hYnNzIiwgQUxUSVZFQ19CVUlMVElO X1ZFQ19BQlNTIH0sCisgICB7IE1BU0tfQUxUSVZFQywgQ09ERV9GT1Jfbm90aGluZywgIl9fYnVp bHRpbl92ZWNfY2VpbCIsIEFMVElWRUNfQlVJTFRJTl9WRUNfQ0VJTCB9LAorQEAgLTc4MDEsNiAr ODUyOSwyMCBAQCBzdGF0aWMgc3RydWN0IGJ1aWx0aW5fZGVzY3JpcHRpb24gYmRlc2NfCiAgICB7 IE1BU0tfQUxUSVZFQywgQ09ERV9GT1Jfbm90aGluZywgIl9fYnVpbHRpbl92ZWNfdnVwa2xzaCIs IEFMVElWRUNfQlVJTFRJTl9WRUNfVlVQS0xTSCB9LAogICAgeyBNQVNLX0FMVElWRUMsIENPREVf Rk9SX25vdGhpbmcsICJfX2J1aWx0aW5fdmVjX3Z1cGtsc2IiLCBBTFRJVkVDX0JVSUxUSU5fVkVD X1ZVUEtMU0IgfSwKICAKQEAgLTQ2OTYsMTAgKzU3NzUsMTkgQEAgdGVzdHN1aXRlLwogKyAgeyBN QVNLX0FMVElWRUN8TUFTS19WU1gsIENPREVfRk9SX2ZpeF90cnVuY3Y0c2Z2NHNpMiwgIl9fYnVp bHRpbl92ZWNfZml4X3Nmc2kiLCBWRUNUT1JfQlVJTFRJTl9GSVhfVjRTRl9WNFNJIH0sCiArICB7 IE1BU0tfQUxUSVZFQ3xNQVNLX1ZTWCwgQ09ERV9GT1JfZml4dW5zX3RydW5jdjRzZnY0c2kyLCAi X19idWlsdGluX3ZlY19maXh1bnNfc2ZzaSIsIFZFQ1RPUl9CVUlMVElOX0ZJWFVOU19WNFNGX1Y0 U0kgfSwKICsKKysgIHsgTUFTS19WU1gsIENPREVfRk9SX2Zsb2F0djJkaXYyZGYyLCAiX19idWls dGluX3ZzeF94dmN2c3hkZHAiLCBWU1hfQlVJTFRJTl9YVkNWU1hERFAgfSwKKysgIHsgTUFTS19W U1gsIENPREVfRk9SX3Vuc2lnbmVkX2Zsb2F0djJkaXYyZGYyLCAiX19idWlsdGluX3ZzeF94dmN2 dXhkZHAiLCBWU1hfQlVJTFRJTl9YVkNWVVhERFAgfSwKKysgIHsgTUFTS19WU1gsIENPREVfRk9S X2ZpeF90cnVuY3YyZGZ2MmRpMiwgIl9fYnVpbHRpbl92c3hfeHZkcHN4ZHMiLCBWU1hfQlVJTFRJ Tl9YVkNWRFBTWERTIH0sCisrICB7IE1BU0tfVlNYLCBDT0RFX0ZPUl9maXh1bnNfdHJ1bmN2MmRm djJkaTIsICJfX2J1aWx0aW5fdnN4X3h2ZHB1eGRzIiwgVlNYX0JVSUxUSU5fWFZDVkRQVVhEUyB9 LAorKyAgeyBNQVNLX1ZTWCwgQ09ERV9GT1JfZmxvYXR2NHNpdjRzZjIsICJfX2J1aWx0aW5fdnN4 X3h2Y3ZzeHdzcCIsIFZTWF9CVUlMVElOX1hWQ1ZTWERTUCB9LAorKyAgeyBNQVNLX1ZTWCwgQ09E RV9GT1JfdW5zaWduZWRfZmxvYXR2NHNpdjRzZjIsICJfX2J1aWx0aW5fdnN4X3h2Y3Z1eHdzcCIs IFZTWF9CVUlMVElOX1hWQ1ZVWFdTUCB9LAorKyAgeyBNQVNLX1ZTWCwgQ09ERV9GT1JfZml4X3Ry dW5jdjRzZnY0c2kyLCAiX19idWlsdGluX3ZzeF94dnNwc3h3cyIsIFZTWF9CVUlMVElOX1hWQ1ZT UFNYV1MgfSwKKysgIHsgTUFTS19WU1gsIENPREVfRk9SX2ZpeHVuc190cnVuY3Y0c2Z2NHNpMiwg Il9fYnVpbHRpbl92c3hfeHZzcHV4d3MiLCBWU1hfQlVJTFRJTl9YVkNWU1BVWFdTIH0sCisrCiAg ICAvKiBUaGUgU1BFIHVuYXJ5IGJ1aWx0aW5zIG11c3Qgc3RhcnQgd2l0aCBTUEVfQlVJTFRJTl9F VkFCUyBhbmQKICAgICAgIGVuZCB3aXRoIFNQRV9CVUlMVElOX0VWU1VCRlVTSUFBVy4gICovCiAg ICB7IDAsIENPREVfRk9SX3NwZV9ldmFicywgIl9fYnVpbHRpbl9zcGVfZXZhYnMiLCBTUEVfQlVJ TFRJTl9FVkFCUyB9LAotQEAgLTgzNTIsMTYgKzg4OTUsMTYgQEAgYWx0aXZlY19leHBhbmRfbGRf YnVpbHRpbiAodHJlZSBleHAsIHJ0eAorQEAgLTgzNTcsMTYgKzkwOTksMTYgQEAgYWx0aXZlY19l eHBhbmRfbGRfYnVpbHRpbiAodHJlZSBleHAsIHJ0eAogICAgc3dpdGNoIChmY29kZSkKICAgICAg ewogICAgICBjYXNlIEFMVElWRUNfQlVJTFRJTl9MRF9JTlRFUk5BTF8xNnFpOgpAQCAtNDcyMCw3 ICs1ODA4LDcgQEAgdGVzdHN1aXRlLwogICAgICAgIGJyZWFrOwogICAgICBkZWZhdWx0OgogICAg ICAgICpleHBhbmRlZHAgPSBmYWxzZTsKLUBAIC04NDA1LDE2ICs4OTQ4LDE2IEBAIGFsdGl2ZWNf ZXhwYW5kX3N0X2J1aWx0aW4gKHRyZWUgZXhwLCBydHgKK0BAIC04NDEwLDE2ICs5MTUyLDE2IEBA IGFsdGl2ZWNfZXhwYW5kX3N0X2J1aWx0aW4gKHRyZWUgZXhwLCBydHgKICAgIHN3aXRjaCAoZmNv ZGUpCiAgICAgIHsKICAgICAgY2FzZSBBTFRJVkVDX0JVSUxUSU5fU1RfSU5URVJOQUxfMTZxaToK QEAgLTQ3NDEsNyArNTgyOSw1NyBAQCB0ZXN0c3VpdGUvCiAgICAgICAgYnJlYWs7CiAgICAgIGRl ZmF1bHQ6CiAgICAgICAgKmV4cGFuZGVkcCA9IGZhbHNlOwotQEAgLTkzNzIsNiArOTkxNSw4IEBA IHJzNjAwMF9pbml0X2J1aWx0aW5zICh2b2lkKQorQEAgLTg4MTQsNiArOTU1NiwyNiBAQCBhbHRp dmVjX2V4cGFuZF9idWlsdGluICh0cmVlIGV4cCwgcnR4IHRhCisgLyogRXhwYW5kIHRoZSBidWls dGluIGluIEVYUCBhbmQgc3RvcmUgdGhlIHJlc3VsdCBpbiBUQVJHRVQuICBTdG9yZQorICAgIHRy dWUgaW4gKkVYUEFOREVEUCBpZiB3ZSBmb3VuZCBhIGJ1aWx0aW4gdG8gZXhwYW5kLiAgKi8KKyBz dGF0aWMgcnR4CisrdnN4X2V4cGFuZF9idWlsdGluICh0cmVlIGV4cCwgcnR4IHRhcmdldCBBVFRS SUJVVEVfVU5VU0VELCBib29sICpleHBhbmRlZHApCisreworKyAgdHJlZSBmbmRlY2wgPSBUUkVF X09QRVJBTkQgKENBTExfRVhQUl9GTiAoZXhwKSwgMCk7CisrICB1bnNpZ25lZCBpbnQgZmNvZGUg PSBERUNMX0ZVTkNUSU9OX0NPREUgKGZuZGVjbCk7CisrCisrICBpZiAoZmNvZGUgPj0gVlNYX0JV SUxUSU5fT1ZFUkxPQURFRF9GSVJTVAorKyAgICAgICYmIGZjb2RlIDw9IFZTWF9CVUlMVElOX09W RVJMT0FERURfTEFTVCkKKysgICAgeworKyAgICAgICpleHBhbmRlZHAgPSB0cnVlOworKyAgICAg IGVycm9yICgidW5yZXNvbHZlZCBvdmVybG9hZCBmb3IgdnN4IGJ1aWx0aW4gJXFGIiwgZm5kZWNs KTsKKysgICAgICByZXR1cm4gY29uc3QwX3J0eDsKKysgICAgfQorKworKyAgKmV4cGFuZGVkcCA9 IGZhbHNlOworKyAgcmV0dXJuIE5VTExfUlRYOworK30KKysKKysvKiBFeHBhbmQgdGhlIGJ1aWx0 aW4gaW4gRVhQIGFuZCBzdG9yZSB0aGUgcmVzdWx0IGluIFRBUkdFVC4gIFN0b3JlCisrICAgdHJ1 ZSBpbiAqRVhQQU5ERURQIGlmIHdlIGZvdW5kIGEgYnVpbHRpbiB0byBleHBhbmQuICAqLworK3N0 YXRpYyBydHgKKyBwYWlyZWRfZXhwYW5kX2J1aWx0aW4gKHRyZWUgZXhwLCBydHggdGFyZ2V0LCBi b29sICogZXhwYW5kZWRwKQorIHsKKyAgIHRyZWUgZm5kZWNsID0gVFJFRV9PUEVSQU5EIChDQUxM X0VYUFJfRk4gKGV4cCksIDApOworQEAgLTkzMjUsNiArMTAwODcsMTMgQEAgcnM2MDAwX2V4cGFu ZF9idWlsdGluICh0cmVlIGV4cCwgcnR4IHRhcgorICAgICAgIGlmIChzdWNjZXNzKQorIAlyZXR1 cm4gcmV0OworICAgICB9CisrICBpZiAoVEFSR0VUX1ZTWCkKKysgICAgeworKyAgICAgIHJldCA9 IHZzeF9leHBhbmRfYnVpbHRpbiAoZXhwLCB0YXJnZXQsICZzdWNjZXNzKTsKKysKKysgICAgICBp ZiAoc3VjY2VzcykKKysJcmV0dXJuIHJldDsKKysgICAgfQorICAgaWYgKFRBUkdFVF9TUEUpCisg ICAgIHsKKyAgICAgICByZXQgPSBzcGVfZXhwYW5kX2J1aWx0aW4gKGV4cCwgdGFyZ2V0LCAmc3Vj Y2Vzcyk7CitAQCAtOTM0MCw3ICsxMDEwOSw3IEBAIHJzNjAwMF9leHBhbmRfYnVpbHRpbiAodHJl ZSBleHAsIHJ0eCB0YXIKKyAJcmV0dXJuIHJldDsKKyAgICAgfSAgCisgCistICBnY2NfYXNzZXJ0 IChUQVJHRVRfQUxUSVZFQyB8fCBUQVJHRVRfU1BFIHx8IFRBUkdFVF9QQUlSRURfRkxPQVQpOwor KyAgZ2NjX2Fzc2VydCAoVEFSR0VUX0FMVElWRUMgfHwgVEFSR0VUX1ZTWCB8fCBUQVJHRVRfU1BF IHx8IFRBUkdFVF9QQUlSRURfRkxPQVQpOworIAorICAgLyogSGFuZGxlIHNpbXBsZSB1bmFyeSBv cGVyYXRpb25zLiAgKi8KKyAgIGQgPSAoc3RydWN0IGJ1aWx0aW5fZGVzY3JpcHRpb24gKikgYmRl c2NfMWFyZzsKK0BAIC05Mzc3LDYgKzEwMTQ2LDggQEAgcnM2MDAwX2luaXRfYnVpbHRpbnMgKHZv aWQpCiAgewogICAgVjJTSV90eXBlX25vZGUgPSBidWlsZF92ZWN0b3JfdHlwZSAoaW50U0lfdHlw ZV9ub2RlLCAyKTsKICAgIFYyU0ZfdHlwZV9ub2RlID0gYnVpbGRfdmVjdG9yX3R5cGUgKGZsb2F0 X3R5cGVfbm9kZSwgMik7CkBAIC00NzUwLDcgKzU4ODgsNyBAQCB0ZXN0c3VpdGUvCiAgICBWNEhJ X3R5cGVfbm9kZSA9IGJ1aWxkX3ZlY3Rvcl90eXBlIChpbnRISV90eXBlX25vZGUsIDQpOwogICAg VjRTSV90eXBlX25vZGUgPSBidWlsZF92ZWN0b3JfdHlwZSAoaW50U0lfdHlwZV9ub2RlLCA0KTsK ICAgIFY0U0ZfdHlwZV9ub2RlID0gYnVpbGRfdmVjdG9yX3R5cGUgKGZsb2F0X3R5cGVfbm9kZSwg NCk7Ci1AQCAtOTQwNCw3ICs5OTQ5LDEwIEBAIHJzNjAwMF9pbml0X2J1aWx0aW5zICh2b2lkKQor QEAgLTk0MDksNyArMTAxODAsMTAgQEAgcnM2MDAwX2luaXRfYnVpbHRpbnMgKHZvaWQpCiAgICB1 aW50SElfdHlwZV9pbnRlcm5hbF9ub2RlID0gdW5zaWduZWRfaW50SElfdHlwZV9ub2RlOwogICAg aW50U0lfdHlwZV9pbnRlcm5hbF9ub2RlID0gaW50U0lfdHlwZV9ub2RlOwogICAgdWludFNJX3R5 cGVfaW50ZXJuYWxfbm9kZSA9IHVuc2lnbmVkX2ludFNJX3R5cGVfbm9kZTsKQEAgLTQ3NjEsNyAr NTg5OSw3IEBAIHRlc3RzdWl0ZS8KICAgIHZvaWRfdHlwZV9pbnRlcm5hbF9ub2RlID0gdm9pZF90 eXBlX25vZGU7CiAgCiAgICAoKmxhbmdfaG9va3MuZGVjbHMucHVzaGRlY2wpIChidWlsZF9kZWNs IChUWVBFX0RFQ0wsCi1AQCAtOTQ2MiwxMyArMTAwMTAsMTggQEAgcnM2MDAwX2luaXRfYnVpbHRp bnMgKHZvaWQpCitAQCAtOTQ2NywxMyArMTAyNDEsMTggQEAgcnM2MDAwX2luaXRfYnVpbHRpbnMg KHZvaWQpCiAgCQkJCQkgICAgZ2V0X2lkZW50aWZpZXIgKCJfX3ZlY3RvciBfX3BpeGVsIiksCiAg CQkJCQkgICAgcGl4ZWxfVjhISV90eXBlX25vZGUpKTsKICAKQEAgLTQ3ODEsMTAgKzU5MTksNDEg QEAgdGVzdHN1aXRlLwogICAgICByczYwMDBfY29tbW9uX2luaXRfYnVpbHRpbnMgKCk7CiAgICBp ZiAoVEFSR0VUX1BQQ19HRlhPUFQpCiAgICAgIHsKLUBAIC0xMDQwNyw2ICsxMDk2MCwyNiBAQCBy czYwMDBfY29tbW9uX2luaXRfYnVpbHRpbnMgKHZvaWQpCitAQCAtOTkzNiw2ICsxMDcxNSw4IEBA IGFsdGl2ZWNfaW5pdF9idWlsdGlucyAodm9pZCkKKyAgICAgPSBidWlsZF9mdW5jdGlvbl90eXBl X2xpc3QgKFYxNlFJX3R5cGVfbm9kZSwgVjE2UUlfdHlwZV9ub2RlLCBOVUxMX1RSRUUpOworICAg dHJlZSB2NHNmX2Z0eXBlX3Y0c2YKKyAgICAgPSBidWlsZF9mdW5jdGlvbl90eXBlX2xpc3QgKFY0 U0ZfdHlwZV9ub2RlLCBWNFNGX3R5cGVfbm9kZSwgTlVMTF9UUkVFKTsKKysgIHRyZWUgdjJkZl9m dHlwZV92MmRmCisrICAgID0gYnVpbGRfZnVuY3Rpb25fdHlwZV9saXN0IChWMkRGX3R5cGVfbm9k ZSwgVjJERl90eXBlX25vZGUsIE5VTExfVFJFRSk7CisgICB0cmVlIHZvaWRfZnR5cGVfcGN2b2lk X2ludF9pbnQKKyAgICAgPSBidWlsZF9mdW5jdGlvbl90eXBlX2xpc3QgKHZvaWRfdHlwZV9ub2Rl LAorIAkJCQlwY3ZvaWRfdHlwZV9ub2RlLCBpbnRlZ2VyX3R5cGVfbm9kZSwKK0BAIC0xMDA5Myw2 ICsxMDg3NCw5IEBAIGFsdGl2ZWNfaW5pdF9idWlsdGlucyAodm9pZCkKKyAJY2FzZSBWNFNGbW9k ZToKKyAJICB0eXBlID0gdjRzZl9mdHlwZV92NHNmOworIAkgIGJyZWFrOworKwljYXNlIFYyREZt b2RlOgorKwkgIHR5cGUgPSB2MmRmX2Z0eXBlX3YyZGY7CisrCSAgYnJlYWs7CisgCWRlZmF1bHQ6 CisgCSAgZ2NjX3VucmVhY2hhYmxlICgpOworIAl9CitAQCAtMTA0MTIsNiArMTExOTYsMzggQEAg cnM2MDAwX2NvbW1vbl9pbml0X2J1aWx0aW5zICh2b2lkKQogICAgdHJlZSBpbnRfZnR5cGVfdjho aV92OGhpCiAgICAgID0gYnVpbGRfZnVuY3Rpb25fdHlwZV9saXN0IChpbnRlZ2VyX3R5cGVfbm9k ZSwKICAJCQkJVjhISV90eXBlX25vZGUsIFY4SElfdHlwZV9ub2RlLCBOVUxMX1RSRUUpOworKyAg dHJlZSB2MmRpX2Z0eXBlX3YyZGYKKysgICAgPSBidWlsZF9mdW5jdGlvbl90eXBlX2xpc3QgKFYy RElfdHlwZV9ub2RlLAorKwkJCQlWMkRGX3R5cGVfbm9kZSwgTlVMTF9UUkVFKTsKKysgIHRyZWUg djJkZl9mdHlwZV92MmRmCisrICAgID0gYnVpbGRfZnVuY3Rpb25fdHlwZV9saXN0IChWMkRGX3R5 cGVfbm9kZSwKKysJCQkJVjJERl90eXBlX25vZGUsIE5VTExfVFJFRSk7CisrICB0cmVlIHYyZGZf ZnR5cGVfdjJkaQorKyAgICA9IGJ1aWxkX2Z1bmN0aW9uX3R5cGVfbGlzdCAoVjJERl90eXBlX25v ZGUsCisrCQkJCVYyRElfdHlwZV9ub2RlLCBOVUxMX1RSRUUpOworKyAgdHJlZSB2MmRmX2Z0eXBl X3YyZGZfdjJkZgorKyAgICA9IGJ1aWxkX2Z1bmN0aW9uX3R5cGVfbGlzdCAoVjJERl90eXBlX25v ZGUsCisrCQkJCVYyREZfdHlwZV9ub2RlLCBWMkRGX3R5cGVfbm9kZSwgTlVMTF9UUkVFKTsKICsg IHRyZWUgdjJkZl9mdHlwZV92MmRmX3YyZGZfdjJkZgogKyAgICA9IGJ1aWxkX2Z1bmN0aW9uX3R5 cGVfbGlzdCAoVjJERl90eXBlX25vZGUsCiArCQkJCVYyREZfdHlwZV9ub2RlLCBWMkRGX3R5cGVf bm9kZSwKQEAgLTQ4MDgsNyArNTk3Nyw3IEBAIHRlc3RzdWl0ZS8KICAKICAgIC8qIEFkZCB0aGUg c2ltcGxlIHRlcm5hcnkgb3BlcmF0b3JzLiAgKi8KICAgIGQgPSBiZGVzY18zYXJnOwotQEAgLTEw NDQzLDYgKzExMDE2LDEyIEBAIHJzNjAwMF9jb21tb25faW5pdF9idWlsdGlucyAodm9pZCkKK0BA IC0xMDQ0OCw2ICsxMTI2NCwxMiBAQCByczYwMDBfY29tbW9uX2luaXRfYnVpbHRpbnMgKHZvaWQp CiAgCSAgICBjYXNlIFZPSURtb2RlOgogIAkgICAgICB0eXBlID0gb3BhcXVlX2Z0eXBlX29wYXF1 ZV9vcGFxdWVfb3BhcXVlOwogIAkgICAgICBicmVhazsKQEAgLTQ4MjEsNyArNTk5MCw3IEBAIHRl c3RzdWl0ZS8KICAJICAgIGNhc2UgVjRTSW1vZGU6CiAgCSAgICAgIHR5cGUgPSB2NHNpX2Z0eXBl X3Y0c2lfdjRzaV92NHNpOwogIAkgICAgICBicmVhazsKLUBAIC0xMDQ2Niw2ICsxMTA0NSwxMiBA QCByczYwMDBfY29tbW9uX2luaXRfYnVpbHRpbnMgKHZvaWQpCitAQCAtMTA0NzEsNiArMTEyOTMs MTIgQEAgcnM2MDAwX2NvbW1vbl9pbml0X2J1aWx0aW5zICh2b2lkKQogIAl7CiAgCSAgc3dpdGNo IChtb2RlMCkKICAJICAgIHsKQEAgLTQ4MzQsNyArNjAwMywyNiBAQCB0ZXN0c3VpdGUvCiAgCSAg ICBjYXNlIFY0U0ltb2RlOgogIAkgICAgICB0eXBlID0gdjRzaV9mdHlwZV92NHNpX3Y0c2lfdjE2 cWk7CiAgCSAgICAgIGJyZWFrOwotQEAgLTEwNzIxLDYgKzExMzA2LDEwIEBAIHJzNjAwMF9jb21t b25faW5pdF9idWlsdGlucyAodm9pZCkKK0BAIC0xMDU1Niw2ICsxMTM4NCw5IEBAIHJzNjAwMF9j b21tb25faW5pdF9idWlsdGlucyAodm9pZCkKKyAJICAgIGNhc2UgVk9JRG1vZGU6CisgCSAgICAg IHR5cGUgPSBvcGFxdWVfZnR5cGVfb3BhcXVlX29wYXF1ZTsKKyAJICAgICAgYnJlYWs7CisrCSAg ICBjYXNlIFYyREZtb2RlOgorKwkgICAgICB0eXBlID0gdjJkZl9mdHlwZV92MmRmX3YyZGY7Cisr CSAgICAgIGJyZWFrOworIAkgICAgY2FzZSBWNFNGbW9kZToKKyAJICAgICAgdHlwZSA9IHY0c2Zf ZnR5cGVfdjRzZl92NHNmOworIAkgICAgICBicmVhazsKK0BAIC0xMDcwNSw2ICsxMTUzNiw4IEBA IHJzNjAwMF9jb21tb25faW5pdF9idWlsdGlucyAodm9pZCkKKyAJdHlwZSA9IHYxNnFpX2Z0eXBl X2ludDsKKyAgICAgICBlbHNlIGlmIChtb2RlMCA9PSBWT0lEbW9kZSAmJiBtb2RlMSA9PSBWT0lE bW9kZSkKKyAJdHlwZSA9IG9wYXF1ZV9mdHlwZV9vcGFxdWU7CisrICAgICAgZWxzZSBpZiAobW9k ZTAgPT0gVjJERm1vZGUgJiYgbW9kZTEgPT0gVjJERm1vZGUpCisrCXR5cGUgPSB2MmRmX2Z0eXBl X3YyZGY7CisgICAgICAgZWxzZSBpZiAobW9kZTAgPT0gVjRTRm1vZGUgJiYgbW9kZTEgPT0gVjRT Rm1vZGUpCisgCXR5cGUgPSB2NHNmX2Z0eXBlX3Y0c2Y7CisgICAgICAgZWxzZSBpZiAobW9kZTAg PT0gVjhISW1vZGUgJiYgbW9kZTEgPT0gVjE2UUltb2RlKQorQEAgLTEwNzI2LDYgKzExNTU5LDE0 IEBAIHJzNjAwMF9jb21tb25faW5pdF9idWlsdGlucyAodm9pZCkKICAJdHlwZSA9IHYyc2lfZnR5 cGVfdjJzZjsKICAgICAgICBlbHNlIGlmIChtb2RlMCA9PSBWMlNJbW9kZSAmJiBtb2RlMSA9PSBR SW1vZGUpCiAgCXR5cGUgPSB2MnNpX2Z0eXBlX2NoYXI7CkBAIC00ODQyLDEwICs2MDMwLDMzMiBA QCB0ZXN0c3VpdGUvCiArCXR5cGUgPSB2NHNpX2Z0eXBlX3Y0c2Y7CiArICAgICAgZWxzZSBpZiAo bW9kZTAgPT0gVjRTRm1vZGUgJiYgbW9kZTEgPT0gVjRTSW1vZGUpCiArCXR5cGUgPSB2NHNmX2Z0 eXBlX3Y0c2k7CisrICAgICAgZWxzZSBpZiAobW9kZTAgPT0gVjJESW1vZGUgJiYgbW9kZTEgPT0g VjJERm1vZGUpCisrCXR5cGUgPSB2MmRpX2Z0eXBlX3YyZGY7CisrICAgICAgZWxzZSBpZiAobW9k ZTAgPT0gVjJERm1vZGUgJiYgbW9kZTEgPT0gVjJESW1vZGUpCisrCXR5cGUgPSB2MmRmX2Z0eXBl X3YyZGk7CiAgICAgICAgZWxzZQogIAlnY2NfdW5yZWFjaGFibGUgKCk7CiAgCi1AQCAtMTE2MDEs MTMgKzEyMTkwLDEwMSBAQCByczYwMDBfaW5zdGFudGlhdGVfZGVjbHMgKHZvaWQpCitAQCAtMTE1 MDgsOCArMTIzNDksMTAgQEAgcnR4CisgcnM2MDAwX3NlY29uZGFyeV9tZW1vcnlfbmVlZGVkX3J0 eCAoZW51bSBtYWNoaW5lX21vZGUgbW9kZSkKKyB7CisgICBzdGF0aWMgYm9vbCBlbGltaW5hdGVk ID0gZmFsc2U7CisrICBydHggcmV0OworKworICAgaWYgKG1vZGUgIT0gU0Rtb2RlKQorLSAgICBy ZXR1cm4gYXNzaWduX3N0YWNrX2xvY2FsIChtb2RlLCBHRVRfTU9ERV9TSVpFIChtb2RlKSwgMCk7 CisrICAgIHJldCA9IGFzc2lnbl9zdGFja19sb2NhbCAobW9kZSwgR0VUX01PREVfU0laRSAobW9k ZSksIDApOworICAgZWxzZQorICAgICB7CisgICAgICAgcnR4IG1lbSA9IGNmdW4tPm1hY2hpbmUt PnNkbW9kZV9zdGFja19zbG90OworQEAgLTExNTIxLDggKzEyMzY0LDIxIEBAIHJzNjAwMF9zZWNv bmRhcnlfbWVtb3J5X25lZWRlZF9ydHggKGVudW0KKyAJICBjZnVuLT5tYWNoaW5lLT5zZG1vZGVf c3RhY2tfc2xvdCA9IG1lbTsKKyAJICBlbGltaW5hdGVkID0gdHJ1ZTsKKyAJfQorLSAgICAgIHJl dHVybiBtZW07CisrICAgICAgcmV0ID0gbWVtOworICAgICB9CisrCisrICBpZiAoVEFSR0VUX0RF QlVHX0FERFIpCisrICAgIHsKKysgICAgICBmcHJpbnRmIChzdGRlcnIsICJyczYwMDBfc2Vjb25k YXJ5X21lbW9yeV9uZWVkZWRfcnR4LCBtb2RlICVzLCBydHg6XG4iLAorKwkgICAgICAgR0VUX01P REVfTkFNRSAobW9kZSkpOworKyAgICAgIGlmICghcmV0KQorKwlmcHJpbnRmIChzdGRlcnIsICJc dE5VTExfUlRYXG4iKTsKKysgICAgICBlbHNlCisrCWRlYnVnX3J0eCAocmV0KTsKKysgICAgICBm cHJpbnRmIChzdGRlcnIsICJcbiIpOworKyAgICB9CisrCisrICByZXR1cm4gcmV0OworIH0KKyAK KyBzdGF0aWMgdHJlZQorQEAgLTExNTU2LDYgKzEyNDEyLDI4MiBAQCByczYwMDBfY2hlY2tfc2Rt b2RlICh0cmVlICp0cCwgaW50ICp3YWxrCisgICByZXR1cm4gTlVMTF9UUkVFOworIH0KKyAKKytl bnVtIHJlbG9hZF9yZWdfdHlwZSB7CisrICBHUFJfUkVHSVNURVJfVFlQRSwKKysgIFZFQ1RPUl9S RUdJU1RFUl9UWVBFLAorKyAgT1RIRVJfUkVHSVNURVJfVFlQRQorK307CisrCisrc3RhdGljIGVu dW0gcmVsb2FkX3JlZ190eXBlCisrcnM2MDAwX3JlbG9hZF9yZWdpc3Rlcl90eXBlIChlbnVtIHJl Z19jbGFzcyByY2xhc3MpCisreworKyAgc3dpdGNoIChyY2xhc3MpCisrICAgIHsKKysgICAgY2Fz ZSBHRU5FUkFMX1JFR1M6CisrICAgIGNhc2UgQkFTRV9SRUdTOgorKyAgICAgIHJldHVybiBHUFJf UkVHSVNURVJfVFlQRTsKKysKKysgICAgY2FzZSBGTE9BVF9SRUdTOgorKyAgICBjYXNlIEFMVElW RUNfUkVHUzoKKysgICAgY2FzZSBWU1hfUkVHUzoKKysgICAgICByZXR1cm4gVkVDVE9SX1JFR0lT VEVSX1RZUEU7CisrCisrICAgIGRlZmF1bHQ6CisrICAgICAgcmV0dXJuIE9USEVSX1JFR0lTVEVS X1RZUEU7CisrICAgIH0KKyt9CisrCisrLyogSW5mb3JtIHJlbG9hZCBhYm91dCBjYXNlcyB3aGVy ZSBtb3ZpbmcgWCB3aXRoIGEgbW9kZSBNT0RFIHRvIGEgcmVnaXN0ZXIgaW4KKysgICBSQ0xBU1Mg cmVxdWlyZXMgYW4gZXh0cmEgc2NyYXRjaCBvciBpbW1lZGlhdGUgcmVnaXN0ZXIuICBSZXR1cm4g dGhlIGNsYXNzCisrICAgbmVlZGVkIGZvciB0aGUgaW1tZWRpYXRlIHJlZ2lzdGVyLgorKworKyAg IEZvciBWU1ggYW5kIEFsdGl2ZWMsIHdlIG1heSBuZWVkIGEgcmVnaXN0ZXIgdG8gY29udmVydCBz cCtvZmZzZXQgaW50bworKyAgIHJlZytzcC4gICovCisrCisrc3RhdGljIGVudW0gcmVnX2NsYXNz CisrcnM2MDAwX3NlY29uZGFyeV9yZWxvYWQgKGJvb2wgaW5fcCwKKysJCQkgcnR4IHgsCisrCQkJ IGVudW0gcmVnX2NsYXNzIHJjbGFzcywKKysJCQkgZW51bSBtYWNoaW5lX21vZGUgbW9kZSwKKysJ CQkgc2Vjb25kYXJ5X3JlbG9hZF9pbmZvICpzcmkpCisreworKyAgZW51bSByZWdfY2xhc3MgcmV0 OworKyAgZW51bSBpbnNuX2NvZGUgaWNvZGU7CisrCisrICAvKiBDb252ZXJ0IHZlY3RvciBsb2Fk cyBhbmQgc3RvcmVzIGludG8gZ3BycyB0byB1c2UgYW4gYWRkaXRpb25hbCBiYXNlCisrICAgICBy ZWdpc3Rlci4gICovCisrICBpY29kZSA9IHJzNjAwMF92ZWN0b3JfcmVsb2FkW21vZGVdW2luX3Ag IT0gZmFsc2VdOworKyAgaWYgKGljb2RlICE9IENPREVfRk9SX25vdGhpbmcpCisrICAgIHsKKysg ICAgICByZXQgPSBOT19SRUdTOworKyAgICAgIHNyaS0+aWNvZGUgPSBDT0RFX0ZPUl9ub3RoaW5n OworKyAgICAgIHNyaS0+ZXh0cmFfY29zdCA9IDA7CisrCisrICAgICAgaWYgKEdFVF9DT0RFICh4 KSA9PSBNRU0pCisrCXsKKysJICBydHggYWRkciA9IFhFWFAgKHgsIDApOworKworKwkgIC8qIExv YWRzIHRvIGFuZCBzdG9yZXMgZnJvbSBncHJzIGNhbiBkbyByZWcrb2Zmc2V0LCBhbmQgd291bGRu J3QgbmVlZAorKwkgICAgIGFuIGV4dHJhIHJlZ2lzdGVyIGluIHRoYXQgY2FzZSwgYnV0IGl0IHdv dWxkIG5lZWQgYW4gZXh0cmEKKysJICAgICByZWdpc3RlciBpZiB0aGUgYWRkcmVzc2luZyBpcyBy ZWcrcmVnIG9yIChyZWcrcmVnKSYoLTE2KS4gICovCisrCSAgaWYgKHJjbGFzcyA9PSBHRU5FUkFM X1JFR1MgfHwgcmNsYXNzID09IEJBU0VfUkVHUykKKysJICAgIHsKKysJICAgICAgaWYgKCEgcnM2 MDAwX2xlZ2l0aW1hdGVfb2Zmc2V0X2FkZHJlc3NfcCAoVEltb2RlLCBhZGRyLCB0cnVlKSkKKysJ CXsKKysJCSAgc3JpLT5pY29kZSA9IGljb2RlOworKwkJICAvKiBhY2NvdW50IGZvciBzcGxpdHRp bmcgdGhlIGxvYWRzLCBhbmQgY29udmVydGluZyB0aGUKKysJCSAgICAgYWRkcmVzcyBmcm9tIHJl ZytyZWcgdG8gcmVnLiAgKi8KKysJCSAgc3JpLT5leHRyYV9jb3N0ID0gKCgoVEFSR0VUXzY0QklU KSA/IDMgOiA1KQorKwkJCQkgICAgICsgKChHRVRfQ09ERSAoYWRkcikgPT0gQU5EKSA/IDEgOiAw KSk7CisrCQl9CisrCSAgICB9CisrCSAgLyogTG9hZHMgdG8gYW5kIHN0b3JlcyBmcm9tIHZlY3Rv ciByZWdpc3RlcnMgY2FuIG9ubHkgZG8gcmVnK3JlZworKwkgICAgIGFkZHJlc3NpbmcuICBBbHRp dmVjIHJlZ2lzdGVycyBjYW4gYWxzbyBkbyAocmVnK3JlZykmKC0xNikuICAqLworKwkgIGVsc2Ug aWYgKHJjbGFzcyA9PSBWU1hfUkVHUyB8fCByY2xhc3MgPT0gQUxUSVZFQ19SRUdTCisrCQkgICB8 fCByY2xhc3MgPT0gRkxPQVRfUkVHUykKKysJICAgIHsKKysJICAgICAgaWYgKHJjbGFzcyAhPSBB TFRJVkVDX1JFR1MKKysJCSAgJiYgR0VUX0NPREUgKGFkZHIpID09IEFORAorKwkJICAmJiBHRVRf Q09ERSAoWEVYUCAoYWRkciwgMSkpID09IENPTlNUX0lOVAorKwkJICAmJiBJTlRWQUwgKFhFWFAg KGFkZHIsIDEpKSA9PSAtMTYKKysJCSAgJiYgKGxlZ2l0aW1hdGVfaW5kaXJlY3RfYWRkcmVzc19w IChYRVhQIChhZGRyLCAwKSwgdHJ1ZSkKKysJCSAgICAgIHx8IGxlZ2l0aW1hdGVfaW5kZXhlZF9h ZGRyZXNzX3AgKFhFWFAgKGFkZHIsIDApLCB0cnVlKSkpCisrCQl7CisrCQkgIHNyaS0+aWNvZGUg PSBpY29kZTsKKysJCSAgc3JpLT5leHRyYV9jb3N0ID0gKChHRVRfQ09ERSAoWEVYUCAoYWRkciwg MCkpID09IFBMVVMpCisrCQkJCSAgICAgPyAyIDogMSk7CisrCQl9CisrCSAgICAgIGVsc2UgaWYg KCFsZWdpdGltYXRlX2luZGV4ZWRfYWRkcmVzc19wIChhZGRyLCB0cnVlKQorKwkJICAgICAgICYm ICFsZWdpdGltYXRlX2luZGlyZWN0X2FkZHJlc3NfcCAoYWRkciwgdHJ1ZSkpCisrCQl7CisrCQkg IHNyaS0+aWNvZGUgPSBpY29kZTsKKysJCSAgc3JpLT5leHRyYV9jb3N0ID0gMTsKKysJCX0KKysJ ICAgICAgZWxzZQorKwkJaWNvZGUgPSBDT0RFX0ZPUl9ub3RoaW5nOworKwkgICAgfQorKwkgIC8q IEFueSBvdGhlciBsb2FkcywgaW5jbHVkaW5nIHRvIHBzZXVkbyByZWdpc3RlcnMgd2hpY2ggaGF2 ZW4ndCBiZWVuCisrCSAgICAgYXNzaWduZWQgdG8gYSByZWdpc3RlciB5ZXQsIGRlZmF1bHQgdG8g cmVxdWlyZSBhIHNjcmF0Y2gKKysJICAgICByZWdpc3Rlci4gICovCisrCSAgZWxzZQorKwkgICAg eworKwkgICAgICBzcmktPmljb2RlID0gaWNvZGU7CisrCSAgICAgIHNyaS0+ZXh0cmFfY29zdCA9 IDI7CisrCSAgICB9CisrCX0KKysgICAgICBlbHNlCisrCXsKKysJICBpbnQgcmVnbm8gPSB0cnVl X3JlZ251bSAoeCk7CisrCisrCSAgaWNvZGUgPSBDT0RFX0ZPUl9ub3RoaW5nOworKwkgIGlmIChy ZWdubyA8IDAgfHwgcmVnbm8gPj0gRklSU1RfUFNFVURPX1JFR0lTVEVSKQorKwkgICAgcmV0ID0g ZGVmYXVsdF9zZWNvbmRhcnlfcmVsb2FkIChpbl9wLCB4LCByY2xhc3MsIG1vZGUsIHNyaSk7Cisr CSAgZWxzZQorKwkgICAgeworKwkgICAgICBlbnVtIHJlZ19jbGFzcyB4Y2xhc3MgPSBSRUdOT19S RUdfQ0xBU1MgKHJlZ25vKTsKKysJICAgICAgZW51bSByZWxvYWRfcmVnX3R5cGUgcnR5cGUxID0g cnM2MDAwX3JlbG9hZF9yZWdpc3Rlcl90eXBlIChyY2xhc3MpOworKwkgICAgICBlbnVtIHJlbG9h ZF9yZWdfdHlwZSBydHlwZTIgPSByczYwMDBfcmVsb2FkX3JlZ2lzdGVyX3R5cGUgKHhjbGFzcyk7 CisrCisrCSAgICAgIC8qIElmIG1lbW9yeSBpcyBuZWVkZWQsIHVzZSBkZWZhdWx0X3NlY29uZGFy eV9yZWxvYWQgdG8gY3JlYXRlIHRoZQorKwkJIHN0YWNrIHNsb3QuICAqLworKwkgICAgICBpZiAo cnR5cGUxICE9IHJ0eXBlMiB8fCBydHlwZTEgPT0gT1RIRVJfUkVHSVNURVJfVFlQRSkKKysJCXJl dCA9IGRlZmF1bHRfc2Vjb25kYXJ5X3JlbG9hZCAoaW5fcCwgeCwgcmNsYXNzLCBtb2RlLCBzcmkp OworKwkgICAgICBlbHNlCisrCQlyZXQgPSBOT19SRUdTOworKwkgICAgfQorKwl9CisrICAgIH0K KysgIGVsc2UKKysgICAgcmV0ID0gZGVmYXVsdF9zZWNvbmRhcnlfcmVsb2FkIChpbl9wLCB4LCBy Y2xhc3MsIG1vZGUsIHNyaSk7CisrCisrICBpZiAoVEFSR0VUX0RFQlVHX0FERFIpCisrICAgIHsK KysgICAgICBmcHJpbnRmIChzdGRlcnIsCisrCSAgICAgICAicnM2MDAwX3NlY29uZGFyeV9yZWxv YWQsIHJldHVybiAlcywgaW5fcCA9ICVzLCByY2xhc3MgPSAlcywgIgorKwkgICAgICAgIm1vZGUg PSAlcyIsCisrCSAgICAgICByZWdfY2xhc3NfbmFtZXNbcmV0XSwKKysJICAgICAgIGluX3AgPyAi dHJ1ZSIgOiAiZmFsc2UiLAorKwkgICAgICAgcmVnX2NsYXNzX25hbWVzW3JjbGFzc10sCisrCSAg ICAgICBHRVRfTU9ERV9OQU1FIChtb2RlKSk7CisrCisrICAgICAgaWYgKGljb2RlICE9IENPREVf Rk9SX25vdGhpbmcpCisrCWZwcmludGYgKHN0ZGVyciwgIiwgcmVsb2FkIGZ1bmMgPSAlcywgZXh0 cmEgY29zdCA9ICVkXG4iLAorKwkJIGluc25fZGF0YVtpY29kZV0ubmFtZSwgc3JpLT5leHRyYV9j b3N0KTsKKysgICAgICBlbHNlCisrCWZwcmludGYgKHN0ZGVyciwgIlxuIik7CisrCisrICAgICAg ZGVidWdfcnR4ICh4KTsKKysgICAgICBmcHJpbnRmIChzdGRlcnIsICJcbiIpOworKyAgICB9Cisr CisrICByZXR1cm4gcmV0OworK30KKysKKysvKiBGaXh1cCByZWxvYWQgYWRkcmVzc2VzIGZvciBB bHRpdmVjIG9yIFZTWCBsb2Fkcy9zdG9yZXMgdG8gY2hhbmdlIFNQK29mZnNldAorKyAgIHRvIFNQ K3JlZyBhZGRyZXNzaW5nLiAgKi8KKysKKyt2b2lkCisrcnM2MDAwX3NlY29uZGFyeV9yZWxvYWRf aW5uZXIgKHJ0eCByZWcsIHJ0eCBtZW0sIHJ0eCBzY3JhdGNoLCBib29sIHN0b3JlX3ApCisrewor KyAgaW50IHJlZ25vID0gdHJ1ZV9yZWdudW0gKHJlZyk7CisrICBlbnVtIG1hY2hpbmVfbW9kZSBt b2RlID0gR0VUX01PREUgKHJlZyk7CisrICBlbnVtIHJlZ19jbGFzcyByY2xhc3M7CisrICBydHgg YWRkcjsKKysgIHJ0eCBhbmRfb3AyID0gTlVMTF9SVFg7CisrCisrICBpZiAoVEFSR0VUX0RFQlVH X0FERFIpCisrICAgIHsKKysgICAgICBmcHJpbnRmIChzdGRlcnIsICJyczYwMDBfc2Vjb25kYXJ5 X3JlbG9hZF9pbm5lciwgdHlwZSA9ICVzXG4iLAorKwkgICAgICAgc3RvcmVfcCA/ICJzdG9yZSIg OiAibG9hZCIpOworKyAgICAgIGZwcmludGYgKHN0ZGVyciwgInJlZzpcbiIpOworKyAgICAgIGRl YnVnX3J0eCAocmVnKTsKKysgICAgICBmcHJpbnRmIChzdGRlcnIsICJtZW06XG4iKTsKKysgICAg ICBkZWJ1Z19ydHggKG1lbSk7CisrICAgICAgZnByaW50ZiAoc3RkZXJyLCAic2NyYXRjaDpcbiIp OworKyAgICAgIGRlYnVnX3J0eCAoc2NyYXRjaCk7CisrICAgICAgZnByaW50ZiAoc3RkZXJyLCAi XG4iKTsKKysgICAgfQorKworKyAgZ2NjX2Fzc2VydCAocmVnbm8gPj0gMCAmJiByZWdubyA8IEZJ UlNUX1BTRVVET19SRUdJU1RFUik7CisrICBnY2NfYXNzZXJ0IChHRVRfQ09ERSAobWVtKSA9PSBN RU0pOworKyAgcmNsYXNzID0gUkVHTk9fUkVHX0NMQVNTIChyZWdubyk7CisrICBhZGRyID0gWEVY UCAobWVtLCAwKTsKKysKKysgIHN3aXRjaCAocmNsYXNzKQorKyAgICB7CisrICAgICAgLyogTW92 ZSByZWcrcmVnIGFkZHJlc3NlcyBpbnRvIGEgc2NyYXRjaCByZWdpc3RlciBmb3IgR1BScy4gICov CisrICAgIGNhc2UgR0VORVJBTF9SRUdTOgorKyAgICBjYXNlIEJBU0VfUkVHUzoKKysgICAgICBp ZiAoR0VUX0NPREUgKGFkZHIpID09IEFORCkKKysJeworKwkgIGFuZF9vcDIgPSBYRVhQIChhZGRy LCAxKTsKKysJICBhZGRyID0gWEVYUCAoYWRkciwgMCk7CisrCX0KKysgICAgICBpZiAoR0VUX0NP REUgKGFkZHIpID09IFBMVVMKKysJICAmJiAoIXJzNjAwMF9sZWdpdGltYXRlX29mZnNldF9hZGRy ZXNzX3AgKFRJbW9kZSwgYWRkciwgdHJ1ZSkKKysJICAgICAgfHwgYW5kX29wMiAhPSBOVUxMX1JU WCkpCisrCXsKKysJICBpZiAoR0VUX0NPREUgKGFkZHIpID09IFNZTUJPTF9SRUYgfHwgR0VUX0NP REUgKGFkZHIpID09IENPTlNUCisrCSAgICAgIHx8IEdFVF9DT0RFIChhZGRyKSA9PSBDT05TVF9J TlQpCisrCSAgICByczYwMDBfZW1pdF9tb3ZlIChzY3JhdGNoLCBhZGRyLCBHRVRfTU9ERSAoYWRk cikpOworKwkgIGVsc2UKKysJICAgIGVtaXRfaW5zbiAoZ2VuX3J0eF9TRVQgKFZPSURtb2RlLCBz Y3JhdGNoLCBhZGRyKSk7CisrCSAgYWRkciA9IHNjcmF0Y2g7CisrCX0KKysgICAgICBlbHNlIGlm IChHRVRfQ09ERSAoYWRkcikgPT0gUFJFX01PRElGWQorKwkgICAgICAgJiYgUkVHX1AgKFhFWFAg KGFkZHIsIDApKQorKwkgICAgICAgJiYgR0VUX0NPREUgKFhFWFAgKGFkZHIsIDEpKSA9PSBQTFVT KQorKwl7CisrCSAgZW1pdF9pbnNuIChnZW5fcnR4X1NFVCAoVk9JRG1vZGUsIFhFWFAgKGFkZHIs IDApLCBYRVhQIChhZGRyLCAxKSkpOworKwkgIGFkZHIgPSBYRVhQIChhZGRyLCAwKTsKKysJfQor KyAgICAgIGJyZWFrOworKworKyAgICAgIC8qIFdpdGggZmxvYXQgcmVncywgd2UgbmVlZCB0byBo YW5kbGUgdGhlIEFORCBvdXJzZWx2ZXMsIHNpbmNlIHdlIGNhbid0CisrCSB1c2UgdGhlIEFsdGl2 ZWMgaW5zdHJ1Y3Rpb24gd2l0aCBhbiBpbXBsaWNpdCBBTkQgLTE2LiAgQWxsb3cgc2NhbGFyCisr CSBsb2FkcyB0byBmbG9hdCByZWdpc3RlcnMgdG8gdXNlIHJlZytvZmZzZXQgZXZlbiBpZiBWU1gu ICAqLworKyAgICBjYXNlIEZMT0FUX1JFR1M6CisrICAgIGNhc2UgVlNYX1JFR1M6CisrICAgICAg aWYgKEdFVF9DT0RFIChhZGRyKSA9PSBBTkQpCisrCXsKKysJICBhbmRfb3AyID0gWEVYUCAoYWRk ciwgMSk7CisrCSAgYWRkciA9IFhFWFAgKGFkZHIsIDApOworKwl9CisrICAgICAgLyogZmFsbCB0 aHJvdWdoICovCisrCisrICAgICAgLyogTW92ZSByZWcrb2Zmc2V0IGFkZHJlc3NlcyBpbnRvIGEg c2NyYXRjaCByZWdpc3Rlci4gICovCisrICAgIGNhc2UgQUxUSVZFQ19SRUdTOgorKyAgICAgIGlm ICghbGVnaXRpbWF0ZV9pbmRpcmVjdF9hZGRyZXNzX3AgKGFkZHIsIHRydWUpCisrCSAgJiYgIWxl Z2l0aW1hdGVfaW5kZXhlZF9hZGRyZXNzX3AgKGFkZHIsIHRydWUpCisrCSAgJiYgKEdFVF9DT0RF IChhZGRyKSAhPSBQUkVfTU9ESUZZCisrCSAgICAgIHx8ICFsZWdpdGltYXRlX2luZGV4ZWRfYWRk cmVzc19wIChYRVhQIChhZGRyLCAxKSwgdHJ1ZSkpCisrCSAgJiYgKHJjbGFzcyAhPSBGTE9BVF9S RUdTCisrCSAgICAgIHx8IEdFVF9NT0RFX1NJWkUgKG1vZGUpICE9IDgKKysJICAgICAgfHwgYW5k X29wMiAhPSBOVUxMX1JUWAorKwkgICAgICB8fCAhcnM2MDAwX2xlZ2l0aW1hdGVfb2Zmc2V0X2Fk ZHJlc3NfcCAobW9kZSwgYWRkciwgdHJ1ZSkpKQorKwl7CisrCSAgaWYgKEdFVF9DT0RFIChhZGRy KSA9PSBTWU1CT0xfUkVGIHx8IEdFVF9DT0RFIChhZGRyKSA9PSBDT05TVAorKwkgICAgICB8fCBH RVRfQ09ERSAoYWRkcikgPT0gQ09OU1RfSU5UKQorKwkgICAgcnM2MDAwX2VtaXRfbW92ZSAoc2Ny YXRjaCwgYWRkciwgR0VUX01PREUgKGFkZHIpKTsKKysJICBlbHNlCisrCSAgICBlbWl0X2luc24g KGdlbl9ydHhfU0VUIChWT0lEbW9kZSwgc2NyYXRjaCwgYWRkcikpOworKwkgIGFkZHIgPSBzY3Jh dGNoOworKwl9CisrICAgICAgYnJlYWs7CisrCisrICAgIGRlZmF1bHQ6CisrICAgICAgZ2NjX3Vu cmVhY2hhYmxlICgpOworKyAgICB9CisrCisrICAvKiBJZiB0aGUgb3JpZ2luYWwgYWRkcmVzcyBp bnZvbHZlZCBhbiBBTkQgLTE2IHRoYXQgaXMgcGFydCBvZiB0aGUgQWx0aXZlYworKyAgICAgYWRk cmVzc2VzLCByZWNyZWF0ZSB0aGUgYW5kIG5vdy4gICovCisrICBpZiAoYW5kX29wMiAhPSBOVUxM X1JUWCkKKysgICAgeworKyAgICAgIHJ0eCBhbmRfcnR4ID0gZ2VuX3J0eF9TRVQgKFZPSURtb2Rl LAorKwkJCQkgc2NyYXRjaCwKKysJCQkJIGdlbl9ydHhfQU5EIChQbW9kZSwgYWRkciwgYW5kX29w MikpOworKyAgICAgIHJ0eCBjY19jbG9iYmVyID0gZ2VuX3J0eF9DTE9CQkVSIChDQ21vZGUsIGdl bl9ydHhfU0NSQVRDSCAoQ0Ntb2RlKSk7CisrICAgICAgZW1pdF9pbnNuIChnZW5fcnR4X1BBUkFM TEVMIChWT0lEbW9kZSwKKysJCQkJICAgZ2VuX3J0dmVjICgyLCBhbmRfcnR4LCBjY19jbG9iYmVy KSkpOworKyAgICAgIGFkZHIgPSBzY3JhdGNoOworKyAgICB9CisrCisrICAvKiBBZGp1c3QgdGhl IGFkZHJlc3MgaWYgaXQgY2hhbmdlZC4gICovCisrICBpZiAoYWRkciAhPSBYRVhQIChtZW0sIDAp KQorKyAgICB7CisrICAgICAgbWVtID0gY2hhbmdlX2FkZHJlc3MgKG1lbSwgbW9kZSwgYWRkcik7 CisrICAgICAgaWYgKFRBUkdFVF9ERUJVR19BRERSKQorKwlmcHJpbnRmIChzdGRlcnIsICJyczYw MDBfc2Vjb25kYXJ5X3JlbG9hZF9pbm5lciwgbWVtIGFkanVzdGVkLlxuIik7CisrICAgIH0KKysK KysgIC8qIE5vdyBjcmVhdGUgdGhlIG1vdmUuICAqLworKyAgaWYgKHN0b3JlX3ApCisrICAgIGVt aXRfaW5zbiAoZ2VuX3J0eF9TRVQgKFZPSURtb2RlLCBtZW0sIHJlZykpOworKyAgZWxzZQorKyAg ICBlbWl0X2luc24gKGdlbl9ydHhfU0VUIChWT0lEbW9kZSwgcmVnLCBtZW0pKTsKKysKKysgIHJl dHVybjsKKyt9CisgCisgLyogQWxsb2NhdGUgYSA2NC1iaXQgc3RhY2sgc2xvdCB0byBiZSB1c2Vk IGZvciBjb3B5aW5nIFNEbW9kZQorICAgIHZhbHVlcyB0aHJvdWdoIGlmIHRoaXMgZnVuY3Rpb24g aGFzIGFueSBTRG1vZGUgcmVmZXJlbmNlcy4gICovCitAQCAtMTE2MDYsMTUgKzEyNzM4LDE0NiBA QCByczYwMDBfaW5zdGFudGlhdGVfZGVjbHMgKHZvaWQpCiAgICAgIGluc3RhbnRpYXRlX2RlY2xf cnRsIChjZnVuLT5tYWNoaW5lLT5zZG1vZGVfc3RhY2tfc2xvdCk7CiAgfQogIApAQCAtNDg3MSwz MiArNjM4MSw1MiBAQCB0ZXN0c3VpdGUvCiArcnM2MDAwX3ByZWZlcnJlZF9yZWxvYWRfY2xhc3Mg KHJ0eCB4LCBlbnVtIHJlZ19jbGFzcyByY2xhc3MpCiArewogKyAgZW51bSBtYWNoaW5lX21vZGUg bW9kZSA9IEdFVF9NT0RFICh4KTsKKysgIGVudW0gcmVnX2NsYXNzIHJldDsKICsKICsgIGlmIChU QVJHRVRfVlNYICYmIFZTWF9WRUNUT1JfTU9ERSAobW9kZSkgJiYgeCA9PSBDT05TVDBfUlRYICht b2RlKQogKyAgICAgICYmIFZTWF9SRUdfQ0xBU1NfUCAocmNsYXNzKSkKLSsgICAgcmV0dXJuIHJj bGFzczsKKysgICAgcmV0ID0gcmNsYXNzOwogKwotKyAgaWYgKFRBUkdFVF9BTFRJVkVDICYmIEFM VElWRUNfVkVDVE9SX01PREUgKG1vZGUpICYmIHJjbGFzcyA9PSBBTFRJVkVDX1JFR1MKLSsgICAg ICAmJiBlYXN5X3ZlY3Rvcl9jb25zdGFudCAoeCwgbW9kZSkpCi0rICAgIHJldHVybiByY2xhc3M7 CisrICBlbHNlIGlmIChUQVJHRVRfQUxUSVZFQyAmJiBBTFRJVkVDX1ZFQ1RPUl9NT0RFIChtb2Rl KQorKwkgICAmJiByY2xhc3MgPT0gQUxUSVZFQ19SRUdTICYmIGVhc3lfdmVjdG9yX2NvbnN0YW50 ICh4LCBtb2RlKSkKKysgICAgcmV0ID0gcmNsYXNzOwogKwotKyAgaWYgKENPTlNUQU5UX1AgKHgp ICYmIHJlZ19jbGFzc2VzX2ludGVyc2VjdF9wIChyY2xhc3MsIEZMT0FUX1JFR1MpKQotKyAgICBy ZXR1cm4gTk9fUkVHUzsKKysgIGVsc2UgaWYgKENPTlNUQU5UX1AgKHgpICYmIHJlZ19jbGFzc2Vz X2ludGVyc2VjdF9wIChyY2xhc3MsIEZMT0FUX1JFR1MpKQorKyAgICByZXQgPSBOT19SRUdTOwog KwotKyAgaWYgKEdFVF9NT0RFX0NMQVNTIChtb2RlKSA9PSBNT0RFX0lOVCAmJiByY2xhc3MgPT0g Tk9OX1NQRUNJQUxfUkVHUykKLSsgICAgcmV0dXJuIEdFTkVSQUxfUkVHUzsKKysgIGVsc2UgaWYg KEdFVF9NT0RFX0NMQVNTIChtb2RlKSA9PSBNT0RFX0lOVCAmJiByY2xhc3MgPT0gTk9OX1NQRUNJ QUxfUkVHUykKKysgICAgcmV0ID0gR0VORVJBTF9SRUdTOwogKwotKyAgLyogRm9yIFZTWCwgcHJl ZmVyIHRoZSB0cmFkaXRpb25hbCByZWdpc3RlcnMuICAqLwotKyAgaWYgKHJjbGFzcyA9PSBWU1hf UkVHUykKKysgIC8qIEZvciBWU1gsIHByZWZlciB0aGUgdHJhZGl0aW9uYWwgcmVnaXN0ZXJzIHVu bGVzcyB0aGUgYWRkcmVzcyBpbnZvbHZlcyBBTkQKKysgICAgIC0xNiwgd2hlcmUgd2UgcHJlZmVy IHRvIHVzZSB0aGUgQWx0aXZlYyByZWdpc3RlciBzbyB3ZSBkb24ndCBoYXZlIHRvIGJyZWFrCisr ICAgICBkb3duIHRoZSBBTkQuICAqLworKyAgZWxzZSBpZiAocmNsYXNzID09IFZTWF9SRUdTKQog KyAgICB7CiArICAgICAgaWYgKG1vZGUgPT0gREZtb2RlKQotKwlyZXR1cm4gRkxPQVRfUkVHUzsK KysJcmV0ID0gRkxPQVRfUkVHUzsKKysKKysgICAgICBlbHNlIGlmIChhbHRpdmVjX2luZGV4ZWRf b3JfaW5kaXJlY3Rfb3BlcmFuZCAoeCwgbW9kZSkpCisrCXJldCA9IEFMVElWRUNfUkVHUzsKKysK KysgICAgICBlbHNlIGlmIChBTFRJVkVDX1ZFQ1RPUl9NT0RFIChtb2RlKSkKKysJcmV0ID0gQUxU SVZFQ19SRUdTOworKworKyAgICAgIGVsc2UKKysJcmV0ID0gcmNsYXNzOworKyAgICB9CisrICBl bHNlCisrICAgIHJldCA9IHJjbGFzczsKICsKLSsgICAgICBpZiAoQUxUSVZFQ19WRUNUT1JfTU9E RSAobW9kZSkpCi0rCXJldHVybiBBTFRJVkVDX1JFR1M7CisrICBpZiAoVEFSR0VUX0RFQlVHX0FE RFIpCisrICAgIHsKKysgICAgICBmcHJpbnRmIChzdGRlcnIsCisrCSAgICAgICAicnM2MDAwX3By ZWZlcnJlZF9yZWxvYWRfY2xhc3MsIHJldHVybiAlcywgcmNsYXNzID0gJXMsIHg6XG4iLAorKwkg ICAgICAgcmVnX2NsYXNzX25hbWVzW3JldF0sIHJlZ19jbGFzc19uYW1lc1tyY2xhc3NdKTsKKysg ICAgICBkZWJ1Z19ydHggKHgpOworKyAgICAgIGZwcmludGYgKHN0ZGVyciwgIlxuIik7CiArICAg IH0KICsKLSsgIHJldHVybiByY2xhc3M7CisrICByZXR1cm4gcmV0OwogK30KICsKICsvKiBJZiB3 ZSBhcmUgY29weWluZyBiZXR3ZWVuIEZQIG9yIEFsdGlWZWMgcmVnaXN0ZXJzIGFuZCBhbnl0aGlu ZyBlbHNlLCB3ZSBuZWVkCkBAIC00OTEwLDMxICs2NDQwLDUzIEBAIHRlc3RzdWl0ZS8KICsJCQkJ ZW51bSByZWdfY2xhc3MgY2xhc3MyLAogKwkJCQllbnVtIG1hY2hpbmVfbW9kZSBtb2RlKQogK3sK KysgIGJvb2wgcmV0OworKwogKyAgaWYgKGNsYXNzMSA9PSBjbGFzczIpCi0rICAgIHJldHVybiBm YWxzZTsKLSsKLSsgIGlmIChUQVJHRVRfVlNYICYmIFZTWF9NT1ZFX01PREUgKG1vZGUpICYmIFZT WF9SRUdfQ0xBU1NfUCAoY2xhc3MxKQotKyAgICAgICYmIFZTWF9SRUdfQ0xBU1NfUCAoY2xhc3My KSkKLSsgICAgcmV0dXJuIGZhbHNlOwotKwotKyAgaWYgKGNsYXNzMSA9PSBGTE9BVF9SRUdTCi0r ICAgICAgICYmICghVEFSR0VUX01GUEdQUiB8fCAhVEFSR0VUX1BPV0VSUEM2NAotKwkgICB8fCAo KG1vZGUgIT0gREZtb2RlKQotKwkgICAgICAgJiYgKG1vZGUgIT0gRERtb2RlKQotKwkgICAgICAg JiYgKG1vZGUgIT0gREltb2RlKSkpKQotKyAgICByZXR1cm4gdHJ1ZTsKLSsKLSsgIGlmIChjbGFz czIgPT0gRkxPQVRfUkVHUwotKyAgICAgICYmICghVEFSR0VUX01GUEdQUiB8fCAhVEFSR0VUX1BP V0VSUEM2NAotKwkgIHx8ICgobW9kZSAhPSBERm1vZGUpCi0rCSAgICAgICYmIChtb2RlICE9IERE bW9kZSkKLSsJICAgICAgJiYgKG1vZGUgIT0gREltb2RlKSkpKQotKyAgICByZXR1cm4gdHJ1ZTsK LSsKLSsgIGlmIChjbGFzczEgPT0gQUxUSVZFQ19SRUdTIHx8IGNsYXNzMiA9PSBBTFRJVkVDX1JF R1MpCi0rICAgIHJldHVybiB0cnVlOwotKwotKyAgcmV0dXJuIGZhbHNlOworKyAgICByZXQgPSBm YWxzZTsKKysKKysgIC8qIFVuZGVyIFZTWCwgdGhlcmUgYXJlIDMgcmVnaXN0ZXIgY2xhc3NlcyB0 aGF0IHZhbHVlcyBjb3VsZCBiZSBpbiAoVlNYX1JFR1MsCisrICAgICBBTFRJVkVDX1JFR1MsIGFu ZCBGTE9BVF9SRUdTKS4gIFdlIGRvbid0IG5lZWQgdG8gdXNlIG1lbW9yeSB0byBjb3B5CisrICAg ICBiZXR3ZWVuIHRoZXNlIGNsYXNzZXMuICBCdXQgd2UgbmVlZCBtZW1vcnkgZm9yIG90aGVyIHRo aW5ncyB0aGF0IGNhbiBnbyBpbgorKyAgICAgRkxPQVRfUkVHUyBsaWtlIFNGbW9kZS4gICovCisr ICBlbHNlIGlmIChUQVJHRVRfVlNYCisrCSAgICYmIChWRUNUT1JfTUVNX1ZTWF9QIChtb2RlKSB8 fCBWRUNUT1JfVU5JVF9WU1hfUCAobW9kZSkpCisrCSAgICYmIChjbGFzczEgPT0gVlNYX1JFR1Mg fHwgY2xhc3MxID09IEFMVElWRUNfUkVHUworKwkgICAgICAgfHwgY2xhc3MxID09IEZMT0FUX1JF R1MpKQorKyAgICByZXQgPSAoY2xhc3MyICE9IFZTWF9SRUdTICYmIGNsYXNzMiAhPSBBTFRJVkVD X1JFR1MKKysJICAgJiYgY2xhc3MyICE9IEZMT0FUX1JFR1MpOworKworKyAgZWxzZSBpZiAoY2xh c3MxID09IFZTWF9SRUdTIHx8IGNsYXNzMiA9PSBWU1hfUkVHUykKKysgICAgcmV0ID0gdHJ1ZTsK KysKKysgIGVsc2UgaWYgKGNsYXNzMSA9PSBGTE9BVF9SRUdTCisrCSAgICYmICghVEFSR0VUX01G UEdQUiB8fCAhVEFSR0VUX1BPV0VSUEM2NAorKwkgICAgICAgfHwgKChtb2RlICE9IERGbW9kZSkK KysJCSAgICYmIChtb2RlICE9IEREbW9kZSkKKysJCSAgICYmIChtb2RlICE9IERJbW9kZSkpKSkK KysgICAgcmV0ID0gdHJ1ZTsKKysKKysgIGVsc2UgaWYgKGNsYXNzMiA9PSBGTE9BVF9SRUdTCisr CSAgICYmICghVEFSR0VUX01GUEdQUiB8fCAhVEFSR0VUX1BPV0VSUEM2NAorKwkgICAgICAgfHwg KChtb2RlICE9IERGbW9kZSkKKysJCSAgICYmIChtb2RlICE9IEREbW9kZSkKKysJCSAgICYmICht b2RlICE9IERJbW9kZSkpKSkKKysgICAgcmV0ID0gdHJ1ZTsKKysKKysgIGVsc2UgaWYgKGNsYXNz MSA9PSBBTFRJVkVDX1JFR1MgfHwgY2xhc3MyID09IEFMVElWRUNfUkVHUykKKysgICAgcmV0ID0g dHJ1ZTsKKysKKysgIGVsc2UKKysgICAgcmV0ID0gZmFsc2U7CisrCisrICBpZiAoVEFSR0VUX0RF QlVHX0FERFIpCisrICAgIGZwcmludGYgKHN0ZGVyciwKKysJICAgICAicnM2MDAwX3NlY29uZGFy eV9tZW1vcnlfbmVlZGVkLCByZXR1cm46ICVzLCBjbGFzczEgPSAlcywgIgorKwkgICAgICJjbGFz czIgPSAlcywgbW9kZSA9ICVzXG4iLAorKwkgICAgIHJldCA/ICJ0cnVlIiA6ICJmYWxzZSIsIHJl Z19jbGFzc19uYW1lc1tjbGFzczFdLAorKwkgICAgIHJlZ19jbGFzc19uYW1lc1tjbGFzczJdLCBH RVRfTU9ERV9OQU1FIChtb2RlKSk7CisrCisrICByZXR1cm4gcmV0OwogK30KICsKICAvKiBSZXR1 cm4gdGhlIHJlZ2lzdGVyIGNsYXNzIG9mIGEgc2NyYXRjaCByZWdpc3RlciBuZWVkZWQgdG8gY29w eSBJTiBpbnRvCkBAIC00OTQ3LDUxICs2NDk5LDE1NyBAQCB0ZXN0c3VpdGUvCiArCQkJICAgICAg IGVudW0gbWFjaGluZV9tb2RlIG1vZGUsCiAgCQkJICAgICAgIHJ0eCBpbikKICB7CisrICBlbnVt IHJlZ19jbGFzcyByZXQgPSBOT19SRUdTOwogICAgaW50IHJlZ25vOwotQEAgLTExNjYzLDYgKzEy MzQwLDEzIEBAIHJzNjAwMF9zZWNvbmRhcnlfcmVsb2FkX2NsYXNzIChlbnVtIHJlZ18KLSAgICAg ICAmJiAocmNsYXNzID09IEZMT0FUX1JFR1MgfHwgcmNsYXNzID09IE5PTl9TUEVDSUFMX1JFR1Mp KQotICAgICByZXR1cm4gKG1vZGUgIT0gU0Rtb2RlKSA/IE5PX1JFR1MgOiBHRU5FUkFMX1JFR1M7 Ci0gCi0rICAvKiBNZW1vcnksIGFuZCBGUC9hbHRpdmVjIHJlZ2lzdGVycyBjYW4gZ28gaW50byBm cC9hbHRpdmVjIHJlZ2lzdGVycyB1bmRlcgotKyAgICAgVlNYLiAgKi8KLSsgIGlmIChUQVJHRVRf VlNYCi0rICAgICAgJiYgKHJlZ25vID09IC0xIHx8IFZTWF9SRUdOT19QIChyZWdubykpCi0rICAg ICAgJiYgVlNYX1JFR19DTEFTU19QIChyY2xhc3MpKQotKyAgICByZXR1cm4gTk9fUkVHUzsKLSsK LSAgIC8qIE1lbW9yeSwgYW5kIEFsdGlWZWMgcmVnaXN0ZXJzIGNhbiBnbyBpbnRvIEFsdGlWZWMg cmVnaXN0ZXJzLiAgKi8KLSAgIGlmICgocmVnbm8gPT0gLTEgfHwgQUxUSVZFQ19SRUdOT19QIChy ZWdubykpCi0gICAgICAgJiYgcmNsYXNzID09IEFMVElWRUNfUkVHUykKLUBAIC0xMTY3Niw2ICsx MjM2MCwyOCBAQCByczYwMDBfc2Vjb25kYXJ5X3JlbG9hZF9jbGFzcyAoZW51bSByZWdfCi0gICAv KiBPdGhlcndpc2UsIHdlIG5lZWQgR0VORVJBTF9SRUdTLiAgKi8KLSAgIHJldHVybiBHRU5FUkFM X1JFR1M7Ci0gfQorIAorICAgaWYgKFRBUkdFVF9FTEYgfHwgKERFRkFVTFRfQUJJID09IEFCSV9E QVJXSU4KK0BAIC0xMTYzNSw1MSArMTI4OTgsMTEyIEBAIHJzNjAwMF9zZWNvbmRhcnlfcmVsb2Fk X2NsYXNzIChlbnVtIHJlZ18KKyAJICAgICAgfHwgR0VUX0NPREUgKGluKSA9PSBISUdICisgCSAg ICAgIHx8IEdFVF9DT0RFIChpbikgPT0gTEFCRUxfUkVGCisgCSAgICAgIHx8IEdFVF9DT0RFIChp bikgPT0gQ09OU1QpKQorLQlyZXR1cm4gQkFTRV9SRUdTOworKwlyZXQgPSBCQVNFX1JFR1M7Cisg ICAgIH0KKyAKKy0gIGlmIChHRVRfQ09ERSAoaW4pID09IFJFRykKKysgIGlmIChyZXQgPT0gTk9f UkVHUykKKyAgICAgeworLSAgICAgIHJlZ25vID0gUkVHTk8gKGluKTsKKy0gICAgICBpZiAocmVn bm8gPj0gRklSU1RfUFNFVURPX1JFR0lTVEVSKQorKyAgICAgIGlmIChHRVRfQ09ERSAoaW4pID09 IFJFRykKKysJeworKwkgIHJlZ25vID0gUkVHTk8gKGluKTsKKysJICBpZiAocmVnbm8gPj0gRklS U1RfUFNFVURPX1JFR0lTVEVSKQorKwkgICAgeworKwkgICAgICByZWdubyA9IHRydWVfcmVnbnVt IChpbik7CisrCSAgICAgIGlmIChyZWdubyA+PSBGSVJTVF9QU0VVRE9fUkVHSVNURVIpCisrCQly ZWdubyA9IC0xOworKwkgICAgfQorKwl9CisrICAgICAgZWxzZSBpZiAoR0VUX0NPREUgKGluKSA9 PSBTVUJSRUcpCisgCXsKKyAJICByZWdubyA9IHRydWVfcmVnbnVtIChpbik7CisgCSAgaWYgKHJl Z25vID49IEZJUlNUX1BTRVVET19SRUdJU1RFUikKKyAJICAgIHJlZ25vID0gLTE7CisgCX0KKy0g ICAgfQorLSAgZWxzZSBpZiAoR0VUX0NPREUgKGluKSA9PSBTVUJSRUcpCistICAgIHsKKy0gICAg ICByZWdubyA9IHRydWVfcmVnbnVtIChpbik7CistICAgICAgaWYgKHJlZ25vID49IEZJUlNUX1BT RVVET19SRUdJU1RFUikKKysgICAgICBlbHNlCisgCXJlZ25vID0gLTE7CisrCisrICAgICAgLyog V2UgY2FuIHBsYWNlIGFueXRoaW5nIGludG8gR0VORVJBTF9SRUdTIGFuZCBjYW4gcHV0IEdFTkVS QUxfUkVHUworKwkgaW50byBhbnl0aGluZy4gICovCisrICAgICAgaWYgKHJjbGFzcyA9PSBHRU5F UkFMX1JFR1MgfHwgcmNsYXNzID09IEJBU0VfUkVHUworKwkgIHx8IChyZWdubyA+PSAwICYmIElO VF9SRUdOT19QIChyZWdubykpKQorKwlyZXQgPSBOT19SRUdTOworKworKyAgICAgIC8qIENvbnN0 YW50cywgbWVtb3J5LCBhbmQgRlAgcmVnaXN0ZXJzIGNhbiBnbyBpbnRvIEZQIHJlZ2lzdGVycy4g ICovCisrICAgICAgZWxzZSBpZiAoKHJlZ25vID09IC0xIHx8IEZQX1JFR05PX1AgKHJlZ25vKSkK KysJICAgICAgICYmIChyY2xhc3MgPT0gRkxPQVRfUkVHUyB8fCByY2xhc3MgPT0gTk9OX1NQRUNJ QUxfUkVHUykpCisrCXJldCA9IChtb2RlICE9IFNEbW9kZSkgPyBOT19SRUdTIDogR0VORVJBTF9S RUdTOworKworKyAgICAgIC8qIE1lbW9yeSwgYW5kIEZQL2FsdGl2ZWMgcmVnaXN0ZXJzIGNhbiBn byBpbnRvIGZwL2FsdGl2ZWMgcmVnaXN0ZXJzIHVuZGVyCisrCSBWU1guICAqLworKyAgICAgIGVs c2UgaWYgKFRBUkdFVF9WU1gKKysJICAgICAgICYmIChyZWdubyA9PSAtMSB8fCBWU1hfUkVHTk9f UCAocmVnbm8pKQorKwkgICAgICAgJiYgVlNYX1JFR19DTEFTU19QIChyY2xhc3MpKQorKwlyZXQg PSBOT19SRUdTOworKworKyAgICAgIC8qIE1lbW9yeSwgYW5kIEFsdGlWZWMgcmVnaXN0ZXJzIGNh biBnbyBpbnRvIEFsdGlWZWMgcmVnaXN0ZXJzLiAgKi8KKysgICAgICBlbHNlIGlmICgocmVnbm8g PT0gLTEgfHwgQUxUSVZFQ19SRUdOT19QIChyZWdubykpCisrCSAgICAgICAmJiByY2xhc3MgPT0g QUxUSVZFQ19SRUdTKQorKwlyZXQgPSBOT19SRUdTOworKworKyAgICAgIC8qIFdlIGNhbiBjb3B5 IGFtb25nIHRoZSBDUiByZWdpc3RlcnMuICAqLworKyAgICAgIGVsc2UgaWYgKChyY2xhc3MgPT0g Q1JfUkVHUyB8fCByY2xhc3MgPT0gQ1IwX1JFR1MpCisrCSAgICAgICAmJiByZWdubyA+PSAwICYm IENSX1JFR05PX1AgKHJlZ25vKSkKKysJcmV0ID0gTk9fUkVHUzsKKysKKysgICAgICAvKiBPdGhl cndpc2UsIHdlIG5lZWQgR0VORVJBTF9SRUdTLiAgKi8KKysgICAgICBlbHNlCisrCXJldCA9IEdF TkVSQUxfUkVHUzsKKysgICAgfQogKwotKy8qIFJldHVybiBub256ZXJvIGlmIGZvciBDTEFTUyBh IG1vZGUgY2hhbmdlIGZyb20gRlJPTSB0byBUTyBpcyBpbnZhbGlkLiAgKi8KKysgIGlmIChUQVJH RVRfREVCVUdfQUREUikKKysgICAgeworKyAgICAgIGZwcmludGYgKHN0ZGVyciwKKysJICAgICAg ICJyczYwMDBfc2Vjb25kYXJ5X3JlbG9hZF9jbGFzcywgcmV0dXJuICVzLCByY2xhc3MgPSAlcywg IgorKwkgICAgICAgIm1vZGUgPSAlcywgaW5wdXQgcnR4OlxuIiwKKysJICAgICAgIHJlZ19jbGFz c19uYW1lc1tyZXRdLCByZWdfY2xhc3NfbmFtZXNbcmNsYXNzXSwKKysJICAgICAgIEdFVF9NT0RF X05BTUUgKG1vZGUpKTsKKysgICAgICBkZWJ1Z19ydHggKGluKTsKKysgICAgICBmcHJpbnRmIChz dGRlcnIsICJcbiIpOworICAgICB9CistICBlbHNlCistICAgIHJlZ25vID0gLTE7CisgCistICAv KiBXZSBjYW4gcGxhY2UgYW55dGhpbmcgaW50byBHRU5FUkFMX1JFR1MgYW5kIGNhbiBwdXQgR0VO RVJBTF9SRUdTCistICAgICBpbnRvIGFueXRoaW5nLiAgKi8KKy0gIGlmIChyY2xhc3MgPT0gR0VO RVJBTF9SRUdTIHx8IHJjbGFzcyA9PSBCQVNFX1JFR1MKKy0gICAgICB8fCAocmVnbm8gPj0gMCAm JiBJTlRfUkVHTk9fUCAocmVnbm8pKSkKKy0gICAgcmV0dXJuIE5PX1JFR1M7CistCistICAvKiBD b25zdGFudHMsIG1lbW9yeSwgYW5kIEZQIHJlZ2lzdGVycyBjYW4gZ28gaW50byBGUCByZWdpc3Rl cnMuICAqLworLSAgaWYgKChyZWdubyA9PSAtMSB8fCBGUF9SRUdOT19QIChyZWdubykpCistICAg ICAgJiYgKHJjbGFzcyA9PSBGTE9BVF9SRUdTIHx8IHJjbGFzcyA9PSBOT05fU1BFQ0lBTF9SRUdT KSkKKy0gICAgcmV0dXJuIChtb2RlICE9IFNEbW9kZSkgPyBOT19SRUdTIDogR0VORVJBTF9SRUdT OworLQorLSAgLyogTWVtb3J5LCBhbmQgQWx0aVZlYyByZWdpc3RlcnMgY2FuIGdvIGludG8gQWx0 aVZlYyByZWdpc3RlcnMuICAqLworLSAgaWYgKChyZWdubyA9PSAtMSB8fCBBTFRJVkVDX1JFR05P X1AgKHJlZ25vKSkKKy0gICAgICAmJiByY2xhc3MgPT0gQUxUSVZFQ19SRUdTKQorLSAgICByZXR1 cm4gTk9fUkVHUzsKKy0KKy0gIC8qIFdlIGNhbiBjb3B5IGFtb25nIHRoZSBDUiByZWdpc3RlcnMu ICAqLworLSAgaWYgKChyY2xhc3MgPT0gQ1JfUkVHUyB8fCByY2xhc3MgPT0gQ1IwX1JFR1MpCist ICAgICAgJiYgcmVnbm8gPj0gMCAmJiBDUl9SRUdOT19QIChyZWdubykpCistICAgIHJldHVybiBO T19SRUdTOworKyAgcmV0dXJuIHJldDsKKyt9CiArCisrLyogUmV0dXJuIG5vbnplcm8gaWYgZm9y IENMQVNTIGEgbW9kZSBjaGFuZ2UgZnJvbSBGUk9NIHRvIFRPIGlzIGludmFsaWQuICAqLworIAor LSAgLyogT3RoZXJ3aXNlLCB3ZSBuZWVkIEdFTkVSQUxfUkVHUy4gICovCistICByZXR1cm4gR0VO RVJBTF9SRUdTOwogK2Jvb2wKICtyczYwMDBfY2Fubm90X2NoYW5nZV9tb2RlX2NsYXNzIChlbnVt IG1hY2hpbmVfbW9kZSBmcm9tLAogKwkJCQkgZW51bSBtYWNoaW5lX21vZGUgdG8sCiArCQkJCSBl bnVtIHJlZ19jbGFzcyByY2xhc3MpCiArewotKyAgcmV0dXJuIChHRVRfTU9ERV9TSVpFIChmcm9t KSAhPSBHRVRfTU9ERV9TSVpFICh0bykKLSsJICA/ICgoR0VUX01PREVfU0laRSAoZnJvbSkgPCA4 IHx8IEdFVF9NT0RFX1NJWkUgKHRvKSA8IDgKLSsJICAgICAgfHwgVEFSR0VUX0lFRUVRVUFEKQot KwkgICAgICYmIHJlZ19jbGFzc2VzX2ludGVyc2VjdF9wIChGTE9BVF9SRUdTLCByY2xhc3MpKQot KwkgIDogKCgoVEFSR0VUX0U1MDBfRE9VQkxFCi0rCSAgICAgICAmJiAoKCgodG8pID09IERGbW9k ZSkgKyAoKGZyb20pID09IERGbW9kZSkpID09IDEKLSsJCSAgIHx8ICgoKHRvKSA9PSBURm1vZGUp ICsgKChmcm9tKSA9PSBURm1vZGUpKSA9PSAxCi0rCQkgICB8fCAoKCh0bykgPT0gRERtb2RlKSAr ICgoZnJvbSkgPT0gRERtb2RlKSkgPT0gMQotKwkJICAgfHwgKCgodG8pID09IFREbW9kZSkgKyAo KGZyb20pID09IFREbW9kZSkpID09IDEKLSsJCSAgIHx8ICgoKHRvKSA9PSBESW1vZGUpICsgKChm cm9tKSA9PSBESW1vZGUpKSA9PSAxKSkKLSsJICAgICAgfHwgKFRBUkdFVF9TUEUKLSsJCSAgJiYg KFNQRV9WRUNUT1JfTU9ERSAoZnJvbSkgKyBTUEVfVkVDVE9SX01PREUgKHRvKSkgPT0gMSkpCi0r CSAgICAgJiYgcmVnX2NsYXNzZXNfaW50ZXJzZWN0X3AgKEdFTkVSQUxfUkVHUywgcmNsYXNzKSkp OwotK30KKysgIGJvb2wgcmV0ID0gKEdFVF9NT0RFX1NJWkUgKGZyb20pICE9IEdFVF9NT0RFX1NJ WkUgKHRvKQorKwkgICAgICA/ICgoR0VUX01PREVfU0laRSAoZnJvbSkgPCA4IHx8IEdFVF9NT0RF X1NJWkUgKHRvKSA8IDgKKysJCSAgfHwgVEFSR0VUX0lFRUVRVUFEKQorKwkJICYmIHJlZ19jbGFz c2VzX2ludGVyc2VjdF9wIChGTE9BVF9SRUdTLCByY2xhc3MpKQorKwkgICAgICA6ICgoKFRBUkdF VF9FNTAwX0RPVUJMRQorKwkJICAgJiYgKCgoKHRvKSA9PSBERm1vZGUpICsgKChmcm9tKSA9PSBE Rm1vZGUpKSA9PSAxCisrCQkgICAgICAgfHwgKCgodG8pID09IFRGbW9kZSkgKyAoKGZyb20pID09 IFRGbW9kZSkpID09IDEKKysJCSAgICAgICB8fCAoKCh0bykgPT0gRERtb2RlKSArICgoZnJvbSkg PT0gRERtb2RlKSkgPT0gMQorKwkJICAgICAgIHx8ICgoKHRvKSA9PSBURG1vZGUpICsgKChmcm9t KSA9PSBURG1vZGUpKSA9PSAxCisrCQkgICAgICAgfHwgKCgodG8pID09IERJbW9kZSkgKyAoKGZy b20pID09IERJbW9kZSkpID09IDEpKQorKwkJICB8fCAoVEFSR0VUX1ZTWAorKwkJICAgICAgJiYg KFZTWF9WRUNUT1JfTU9ERSAoZnJvbSkgKyBWU1hfVkVDVE9SX01PREUgKHRvKSkgPT0gMSkKKysJ CSAgfHwgKFRBUkdFVF9BTFRJVkVDCisrCQkgICAgICAmJiAoQUxUSVZFQ19WRUNUT1JfTU9ERSAo ZnJvbSkKKysJCQkgICsgQUxUSVZFQ19WRUNUT1JfTU9ERSAodG8pKSA9PSAxKQorKwkJICB8fCAo VEFSR0VUX1NQRQorKwkJICAgICAgJiYgKFNQRV9WRUNUT1JfTU9ERSAoZnJvbSkgKyBTUEVfVkVD VE9SX01PREUgKHRvKSkgPT0gMSkpCisrCQkgJiYgcmVnX2NsYXNzZXNfaW50ZXJzZWN0X3AgKEdF TkVSQUxfUkVHUywgcmNsYXNzKSkpOworKworKyAgaWYgKFRBUkdFVF9ERUJVR19BRERSKQorKyAg ICBmcHJpbnRmIChzdGRlcnIsCisrCSAgICAgInJzNjAwMF9jYW5ub3RfY2hhbmdlX21vZGVfY2xh c3MsIHJldHVybiAlcywgZnJvbSA9ICVzLCAiCisrCSAgICAgInRvID0gJXMsIHJjbGFzcyA9ICVz XG4iLAorKwkgICAgIHJldCA/ICJ0cnVlIiA6ICJmYWxzZSIsCisrCSAgICAgR0VUX01PREVfTkFN RSAoZnJvbSksIEdFVF9NT0RFX05BTUUgKHRvKSwKKysJICAgICByZWdfY2xhc3NfbmFtZXNbcmNs YXNzXSk7CisrCisrICByZXR1cm4gcmV0OworIH0KICAMCiAgLyogR2l2ZW4gYSBjb21wYXJpc29u IG9wZXJhdGlvbiwgcmV0dXJuIHRoZSBiaXQgbnVtYmVyIGluIENDUiB0byB0ZXN0LiAgV2UKLSAg ICBrbm93IHRoaXMgaXMgYSB2YWxpZCBjb21wYXJpc29uLgotQEAgLTEyNDA2LDYgKzEzMTEyLDI2 IEBAIHByaW50X29wZXJhbmQgKEZJTEUgKmZpbGUsIHJ0eCB4LCBpbnQgY28KK0BAIC0xMjQxMSw2 ICsxMzczNSwyNiBAQCBwcmludF9vcGVyYW5kIChGSUxFICpmaWxlLCBydHggeCwgaW50IGNvCiAg ICAgICAgZnByaW50ZiAoZmlsZSwgIiVkIiwgaSArIDEpOwogICAgICAgIHJldHVybjsKICAKQEAg LTUwMTgsMTIgKzY2NzYsMTIgQEAgdGVzdHN1aXRlLwogICAgICBjYXNlICdYJzoKICAgICAgICBp ZiAoR0VUX0NPREUgKHgpID09IE1FTQogIAkgICYmIChsZWdpdGltYXRlX2luZGV4ZWRfYWRkcmVz c19wIChYRVhQICh4LCAwKSwgMCkKLUBAIC0xMjUxOCwxMyArMTMyNDQsMTYgQEAgcHJpbnRfb3Bl cmFuZCAoRklMRSAqZmlsZSwgcnR4IHgsIGludCBjbworQEAgLTEyNTIzLDEzICsxMzg2NywxNiBA QCBwcmludF9vcGVyYW5kIChGSUxFICpmaWxlLCBydHggeCwgaW50IGNvCiAgCiAgCSAgICAvKiBG YWxsIHRocm91Z2guICBNdXN0IGJlIFtyZWcrcmVnXS4gICovCiAgCSAgfQogLQlpZiAoVEFSR0VU X0FMVElWRUMKLSsJaWYgKFZFQ1RPUl9NRU1fQUxUSVZFQ19QIChHRVRfTU9ERSAoeCkpCisrCWlm IChWRUNUT1JfTUVNX0FMVElWRUNfT1JfVlNYX1AgKEdFVF9NT0RFICh4KSkKICAJICAgICYmIEdF VF9DT0RFICh0bXApID09IEFORAogIAkgICAgJiYgR0VUX0NPREUgKFhFWFAgKHRtcCwgMSkpID09 IENPTlNUX0lOVAogIAkgICAgJiYgSU5UVkFMIChYRVhQICh0bXAsIDEpKSA9PSAtMTYpCkBAIC01 MDM3LDcgKzY2OTUsNyBAQCB0ZXN0c3VpdGUvCiAgCWVsc2UKICAJICB7CiAgCSAgICBpZiAoIUdF VF9DT0RFICh0bXApID09IFBMVVMKLUBAIC0xMzI5Niw1NSArMTQwMjUsNjIgQEAgb3V0cHV0X2U1 MDBfZmxpcF9ndF9iaXQgKHJ0eCBkc3QsIHJ0eCBzcgorQEAgLTEzMzAxLDU1ICsxNDY0OCw2MiBA QCBvdXRwdXRfZTUwMF9mbGlwX2d0X2JpdCAocnR4IGRzdCwgcnR4IHNyCiAgICByZXR1cm4gc3Ry aW5nOwogIH0KICAKQEAgLTUxMzksNyArNjc5Nyw3IEBAIHRlc3RzdWl0ZS8KICB9CiAgCiAgLyog RW1pdCB2ZWN0b3IgY29tcGFyZSBmb3Igb3BlcmFuZHMgT1AwIGFuZCBPUDEgdXNpbmcgY29kZSBS Q09ERS4KLUBAIC0xMzM1NSwxMjkgKzE0MDkxLDExMSBAQCByczYwMDBfZW1pdF92ZWN0b3JfY29t cGFyZSAoZW51bSBydHhfY29kCitAQCAtMTMzNjAsMTI5ICsxNDcxNCwxMTEgQEAgcnM2MDAwX2Vt aXRfdmVjdG9yX2NvbXBhcmUgKGVudW0gcnR4X2NvZAogIAkJCSAgICBydHggb3AwLCBydHggb3Ax LAogIAkJCSAgICBlbnVtIG1hY2hpbmVfbW9kZSBkbW9kZSkKICB7CkBAIC01MzU4LDcgKzcwMTYs NyBAQCB0ZXN0c3VpdGUvCiAgICAgICAgaWYgKHN3YXBfb3BlcmFuZHMpCiAgCXsKICAJICBydHgg dG1wOwotQEAgLTEzNDg1LDY5ICsxNDIwMywyMyBAQCByczYwMDBfZW1pdF92ZWN0b3JfY29tcGFy ZSAoZW51bSBydHhfY29kCitAQCAtMTM0OTAsNjkgKzE0ODI2LDIzIEBAIHJzNjAwMF9lbWl0X3Zl Y3Rvcl9jb21wYXJlIChlbnVtIHJ0eF9jb2QKICAJICBvcDAgPSBvcDE7CiAgCSAgb3AxID0gdG1w OwogIAl9CkBAIC01Mzc2LDEwICs3MDM0LDEwIEBAIHRlc3RzdWl0ZS8KIC0gICAgfQogLSAgcmV0 dXJuIG1hc2s7CiAtfQotLQorIAogLS8qIFJldHVybiB2ZWN0b3Igc2VsZWN0IGluc3RydWN0aW9u IGZvciBNT0RFLiBSZXR1cm4gSU5TTl9OT1RfQVZBSUxBQkxFLCBpZgogLSAgIHZhbGlkIGluc24g ZG9lc24gZXhpc3QgZm9yIGdpdmVuIG1vZGUuICAqLwotIAorLQogLXN0YXRpYyBpbnQKIC1nZXRf dnNlbF9pbnNuIChlbnVtIG1hY2hpbmVfbW9kZSBtb2RlKQogLXsKQEAgLTU0MjUsOSArNzA4Myw5 IEBAIHRlc3RzdWl0ZS8KIC0gIHJ0eCB0LCB0ZW1wOwogLSAgZW51bSBtYWNoaW5lX21vZGUgZGVz dF9tb2RlID0gR0VUX01PREUgKGRlc3QpOwogLSAgaW50IHZzZWxfaW5zbl9pbmRleCAgPSBnZXRf dnNlbF9pbnNuIChHRVRfTU9ERSAoZGVzdCkpOwotIAotLSAgdGVtcCA9IGdlbl9yZWdfcnR4IChk ZXN0X21vZGUpOwogLQorLSAgdGVtcCA9IGdlbl9yZWdfcnR4IChkZXN0X21vZGUpOworIAogLSAg LyogRm9yIGVhY2ggdmVjdG9yIGVsZW1lbnQsIHNlbGVjdCBvcDEgd2hlbiBtYXNrIGlzIDEgb3Ro ZXJ3aXNlCiAtICAgICBzZWxlY3Qgb3AyLiAgKi8KIC0gIHQgPSBnZW5fcnR4X1NFVCAoVk9JRG1v ZGUsIHRlbXAsCkBAIC01NDQyLDcgKzcxMDAsNyBAQCB0ZXN0c3VpdGUvCiAgfQogIAogIC8qIEVt aXQgdmVjdG9yIGNvbmRpdGlvbmFsIGV4cHJlc3Npb24uCi1AQCAtMTM1NjIsMTUgKzE0MjM0LDI5 IEBAIHJzNjAwMF9lbWl0X3ZlY3Rvcl9jb25kX2V4cHIgKHJ0eCBkZXN0LCAKK0BAIC0xMzU2Nywx NSArMTQ4NTcsMjkgQEAgcnM2MDAwX2VtaXRfdmVjdG9yX2NvbmRfZXhwciAocnR4IGRlc3QsIAog ICAgZW51bSBydHhfY29kZSByY29kZSA9IEdFVF9DT0RFIChjb25kKTsKICAgIHJ0eCBtYXNrOwog IApAQCAtNTQ3NSw3ICs3MTMzLDcgQEAgdGVzdHN1aXRlLwogIH0KICAKICAvKiBFbWl0IGEgY29u ZGl0aW9uYWwgbW92ZTogbW92ZSBUUlVFX0NPTkQgdG8gREVTVCBpZiBPUCBvZiB0aGUKLUBAIC0x Mzc2Niw4ICsxNDQ1Miw4IEBAIHJzNjAwMF9lbWl0X2ludF9jbW92ZSAocnR4IGRlc3QsIHJ0eCBv cCwKK0BAIC0xMzc3MSw4ICsxNTA3NSw4IEBAIHJzNjAwMF9lbWl0X2ludF9jbW92ZSAocnR4IGRl c3QsIHJ0eCBvcCwKICB7CiAgICBydHggY29uZGl0aW9uX3J0eCwgY3I7CiAgCkBAIC01NDg2LDcg KzcxNDQsNyBAQCB0ZXN0c3VpdGUvCiAgICAgIHJldHVybiAwOwogIAogICAgLyogV2Ugc3RpbGwg aGF2ZSB0byBkbyB0aGUgY29tcGFyZSwgYmVjYXVzZSBpc2VsIGRvZXNuJ3QgZG8gYQotQEAgLTEz Nzc2LDEyICsxNDQ2MiwyNCBAQCByczYwMDBfZW1pdF9pbnRfY21vdmUgKHJ0eCBkZXN0LCBydHgg b3AsCitAQCAtMTM3ODEsMTIgKzE1MDg1LDI0IEBAIHJzNjAwMF9lbWl0X2ludF9jbW92ZSAocnR4 IGRlc3QsIHJ0eCBvcCwKICAgIGNvbmRpdGlvbl9ydHggPSByczYwMDBfZ2VuZXJhdGVfY29tcGFy ZSAoR0VUX0NPREUgKG9wKSk7CiAgICBjciA9IFhFWFAgKGNvbmRpdGlvbl9ydHgsIDApOwogIApA QCAtNTUxNiw3ICs3MTc0LDcgQEAgdGVzdHN1aXRlLwogIAogICAgcmV0dXJuIDE7CiAgfQotQEAg LTEzODA4LDYgKzE0NTA2LDE1IEBAIHJzNjAwMF9lbWl0X21pbm1heCAocnR4IGRlc3QsIGVudW0g cnR4X2MKK0BAIC0xMzgxMyw2ICsxNTEyOSwxNSBAQCByczYwMDBfZW1pdF9taW5tYXggKHJ0eCBk ZXN0LCBlbnVtIHJ0eF9jCiAgICBlbnVtIHJ0eF9jb2RlIGM7CiAgICBydHggdGFyZ2V0OwogIApA QCAtNTUzMiw3ICs3MTkwLDcgQEAgdGVzdHN1aXRlLwogICAgaWYgKGNvZGUgPT0gU01BWCB8fCBj b2RlID09IFNNSU4pCiAgICAgIGMgPSBHRTsKICAgIGVsc2UKLUBAIC0xNTc4NSw2ICsxNjQ5Miw3 IEBAIGVtaXRfZnJhbWVfc2F2ZSAocnR4IGZyYW1lX3JlZywgcnR4IGZyYW0KK0BAIC0xNTc5MCw2 ICsxNzExNSw3IEBAIGVtaXRfZnJhbWVfc2F2ZSAocnR4IGZyYW1lX3JlZywgcnR4IGZyYW0KICAK ICAgIC8qIFNvbWUgY2FzZXMgdGhhdCBuZWVkIHJlZ2lzdGVyIGluZGV4ZWQgYWRkcmVzc2luZy4g ICovCiAgICBpZiAoKFRBUkdFVF9BTFRJVkVDX0FCSSAmJiBBTFRJVkVDX1ZFQ1RPUl9NT0RFICht b2RlKSkKQEAgLTU1NDAsNyArNzE5OCw1MSBAQCB0ZXN0c3VpdGUvCiAgICAgICAgfHwgKFRBUkdF VF9FNTAwX0RPVUJMRSAmJiBtb2RlID09IERGbW9kZSkKICAgICAgICB8fCAoVEFSR0VUX1NQRV9B QkkKICAJICAmJiBTUEVfVkVDVE9SX01PREUgKG1vZGUpCi1AQCAtMTkzMjAsNiArMjAwMjgsNyBA QCByczYwMDBfaXNzdWVfcmF0ZSAodm9pZCkKK0BAIC0xODgwNCw2ICsyMDEzMCw3IEBAIHJzNjAw MF9hZGp1c3RfY29zdCAocnR4IGluc24sIHJ0eCBsaW5rLCAKKyAgICAgICAgICAgICAgICAgIHx8 IHJzNjAwMF9jcHVfYXR0ciA9PSBDUFVfUFBDNzQ1MAorICAgICAgICAgICAgICAgICAgfHwgcnM2 MDAwX2NwdV9hdHRyID09IENQVV9QT1dFUjQKKyAgICAgICAgICAgICAgICAgIHx8IHJzNjAwMF9j cHVfYXR0ciA9PSBDUFVfUE9XRVI1CisrCQkgfHwgKHJzNjAwMF9jcHVfYXR0ciA9PSBDUFVfUE9X RVI3ICYmIFRBUkdFVF9QT1dFUjdfQURKVVNUX0NPU1QpCisgICAgICAgICAgICAgICAgICB8fCBy czYwMDBfY3B1X2F0dHIgPT0gQ1BVX0NFTEwpCisgICAgICAgICAgICAgICAgICYmIHJlY29nX21l bW9pemVkIChkZXBfaW5zbikKKyAgICAgICAgICAgICAgICAgJiYgKElOU05fQ09ERSAoZGVwX2lu c24pID49IDApKQorQEAgLTE5MDQzLDYgKzIwMzcwLDM1IEBAIHJzNjAwMF9hZGp1c3RfY29zdCAo cnR4IGluc24sIHJ0eCBsaW5rLCAKKyAgIHJldHVybiBjb3N0OworIH0KKyAKKysvKiBEZWJ1ZyB2 ZXJzaW9uIG9mIHJzNjAwMF9hZGp1c3RfY29zdC4gICovCisrCisrc3RhdGljIGludAorK3JzNjAw MF9kZWJ1Z19hZGp1c3RfY29zdCAocnR4IGluc24sIHJ0eCBsaW5rLCBydHggZGVwX2luc24sIGlu dCBjb3N0KQorK3sKKysgIGludCByZXQgPSByczYwMDBfYWRqdXN0X2Nvc3QgKGluc24sIGxpbmss IGRlcF9pbnNuLCBjb3N0KTsKKysKKysgIGlmIChyZXQgIT0gY29zdCkKKysgICAgeworKyAgICAg IGNvbnN0IGNoYXIgKmRlcDsKKysKKysgICAgICBzd2l0Y2ggKFJFR19OT1RFX0tJTkQgKGxpbmsp KQorKwl7CisrCWRlZmF1bHQ6CSAgICAgZGVwID0gInVua25vd24gZGVwZW5jZW5jeSI7IGJyZWFr OworKwljYXNlIFJFR19ERVBfVFJVRTogICBkZXAgPSAiZGF0YSBkZXBlbmRlbmN5IjsJIGJyZWFr OworKwljYXNlIFJFR19ERVBfT1VUUFVUOiBkZXAgPSAib3V0cHV0IGRlcGVuZGVuY3kiOyAgYnJl YWs7CisrCWNhc2UgUkVHX0RFUF9BTlRJOiAgIGRlcCA9ICJhbnRpIGRlcGVuY2VuY3kiOwkgYnJl YWs7CisrCX0KKysKKysgICAgICBmcHJpbnRmIChzdGRlcnIsCisrCSAgICAgICAiXG5yczYwMDBf YWRqdXN0X2Nvc3QsIGZpbmFsIGNvc3QgPSAlZCwgb3JpZyBjb3N0ID0gJWQsICIKKysJICAgICAg ICIlcywgaW5zbjpcbiIsIHJldCwgY29zdCwgZGVwKTsKKysKKysgICAgICBkZWJ1Z19ydHggKGlu c24pOworKyAgICB9CisrCisrICByZXR1cm4gcmV0OworK30KKysKKyAvKiBUaGUgZnVuY3Rpb24g cmV0dXJucyBhIHRydWUgaWYgSU5TTiBpcyBtaWNyb2NvZGVkLgorICAgIFJldHVybiBmYWxzZSBv dGhlcndpc2UuICAqLworIAorQEAgLTE5MzI0LDYgKzIwNjgwLDcgQEAgcnM2MDAwX2lzc3VlX3Jh dGUgKHZvaWQpCiAgICBjYXNlIENQVV9QT1dFUjQ6CiAgICBjYXNlIENQVV9QT1dFUjU6CiAgICBj YXNlIENQVV9QT1dFUjY6CkBAIC01NTQ4LDcgKzcyNTAsNyBAQCB0ZXN0c3VpdGUvCiAgICAgIHJl dHVybiA1OwogICAgZGVmYXVsdDoKICAgICAgcmV0dXJuIDE7Ci1AQCAtMTk5MjEsNiArMjA2MzAs NDEgQEAgaW5zbl9tdXN0X2JlX2ZpcnN0X2luX2dyb3VwIChydHggaW5zbikKK0BAIC0xOTkyNSw2 ICsyMTI4Miw0MSBAQCBpbnNuX211c3RfYmVfZmlyc3RfaW5fZ3JvdXAgKHJ0eCBpbnNuKQogICAg ICAgICAgICBicmVhazsKICAgICAgICAgIH0KICAgICAgICBicmVhazsKQEAgLTU1OTAsNyArNzI5 Miw3IEBAIHRlc3RzdWl0ZS8KICAgICAgZGVmYXVsdDoKICAgICAgICBicmVhazsKICAgICAgfQot QEAgLTE5OTgyLDYgKzIwNzI2LDIzIEBAIGluc25fbXVzdF9iZV9sYXN0X2luX2dyb3VwIChydHgg aW5zbikKK0BAIC0xOTk4Niw2ICsyMTM3OCwyMyBAQCBpbnNuX211c3RfYmVfbGFzdF9pbl9ncm91 cCAocnR4IGluc24pCiAgICAgICAgICBicmVhazsKICAgICAgfQogICAgICBicmVhazsKQEAgLTU2 MTQsNyArNzMxNiw3IEBAIHRlc3RzdWl0ZS8KICAgIGRlZmF1bHQ6CiAgICAgIGJyZWFrOwogICAg fQotQEAgLTIwNTU0LDggKzIxMzE1LDggQEAgcnM2MDAwX2hhbmRsZV9hbHRpdmVjX2F0dHJpYnV0 ZSAodHJlZSAqbgorQEAgLTIwNTU4LDggKzIxOTY3LDggQEAgcnM2MDAwX2hhbmRsZV9hbHRpdmVj X2F0dHJpYnV0ZSAodHJlZSAqbgogICAgZWxzZSBpZiAodHlwZSA9PSBsb25nX2xvbmdfdW5zaWdu ZWRfdHlwZV9ub2RlCiAgICAgICAgICAgICB8fCB0eXBlID09IGxvbmdfbG9uZ19pbnRlZ2VyX3R5 cGVfbm9kZSkKICAgICAgZXJyb3IgKCJ1c2Ugb2YgJTxsb25nIGxvbmclPiBpbiBBbHRpVmVjIHR5 cGVzIGlzIGludmFsaWQiKTsKQEAgLTU2MjUsNyArNzMyNyw3IEBAIHRlc3RzdWl0ZS8KICAgIGVs c2UgaWYgKHR5cGUgPT0gbG9uZ19kb3VibGVfdHlwZV9ub2RlKQogICAgICBlcnJvciAoInVzZSBv ZiAlPGxvbmcgZG91YmxlJT4gaW4gQWx0aVZlYyB0eXBlcyBpcyBpbnZhbGlkIik7CiAgICBlbHNl IGlmICh0eXBlID09IGJvb2xlYW5fdHlwZV9ub2RlKQotQEAgLTIwNTgxLDYgKzIxMzQyLDcgQEAg cnM2MDAwX2hhbmRsZV9hbHRpdmVjX2F0dHJpYnV0ZSAodHJlZSAqbgorQEAgLTIwNTg1LDYgKzIx OTk0LDcgQEAgcnM2MDAwX2hhbmRsZV9hbHRpdmVjX2F0dHJpYnV0ZSAodHJlZSAqbgogIAkgIHJl c3VsdCA9ICh1bnNpZ25lZF9wID8gdW5zaWduZWRfVjE2UUlfdHlwZV9ub2RlIDogVjE2UUlfdHlw ZV9ub2RlKTsKICAJICBicmVhazsKICAJY2FzZSBTRm1vZGU6IHJlc3VsdCA9IFY0U0ZfdHlwZV9u b2RlOyBicmVhazsKQEAgLTU2MzMsNyArNzMzNSw1MSBAQCB0ZXN0c3VpdGUvCiAgCSAgLyogSWYg dGhlIHVzZXIgc2F5cyAndmVjdG9yIGludCBib29sJywgd2UgbWF5IGJlIGhhbmRlZCB0aGUgJ2Jv b2wnCiAgCSAgICAgYXR0cmlidXRlIF9iZWZvcmVfIHRoZSAndmVjdG9yJyBhdHRyaWJ1dGUsIGFu ZCBzbyBzZWxlY3QgdGhlCiAgCSAgICAgcHJvcGVyIHR5cGUgaW4gdGhlICdiJyBjYXNlIGJlbG93 LiAgKi8KLUBAIC0yMjExNiw3ICsyMjg3OCw3IEBAIHJzNjAwMF9yZWdpc3Rlcl9tb3ZlX2Nvc3Qg KGVudW0gbWFjaGluZV8KK0BAIC0yMjEwNiw2ICsyMzUxNiw0MyBAQCByczYwMDBfcnR4X2Nvc3Rz IChydHggeCwgaW50IGNvZGUsIGludCBvCisgICByZXR1cm4gZmFsc2U7CisgfQorIAorKy8qIERl YnVnIGZvcm0gb2YgcjYwMDBfcnR4X2Nvc3RzIHRoYXQgaXMgc2VsZWN0ZWQgaWYgLW1kZWJ1Zz1j b3N0LiAgKi8KKysKKytzdGF0aWMgYm9vbAorK3JzNjAwMF9kZWJ1Z19ydHhfY29zdHMgKHJ0eCB4 LCBpbnQgY29kZSwgaW50IG91dGVyX2NvZGUsIGludCAqdG90YWwsCisrCQkJYm9vbCBzcGVlZCkK Kyt7CisrICBib29sIHJldCA9IHJzNjAwMF9ydHhfY29zdHMgKHgsIGNvZGUsIG91dGVyX2NvZGUs IHRvdGFsLCBzcGVlZCk7CisrCisrICBmcHJpbnRmIChzdGRlcnIsCisrCSAgICJcbnJzNjAwMF9y dHhfY29zdHMsIHJldHVybiA9ICVzLCBjb2RlID0gJXMsIG91dGVyX2NvZGUgPSAlcywgIgorKwkg ICAidG90YWwgPSAlZCwgc3BlZWQgPSAlcywgeDpcbiIsCisrCSAgIHJldCA/ICJjb21wbGV0ZSIg OiAic2NhbiBpbm5lciIsCisrCSAgIEdFVF9SVFhfTkFNRSAoY29kZSksCisrCSAgIEdFVF9SVFhf TkFNRSAob3V0ZXJfY29kZSksCisrCSAgICp0b3RhbCwKKysJICAgc3BlZWQgPyAidHJ1ZSIgOiAi ZmFsc2UiKTsKKysKKysgIGRlYnVnX3J0eCAoeCk7CisrCisrICByZXR1cm4gcmV0OworK30KKysK KysvKiBEZWJ1ZyBmb3JtIG9mIEFERFJFU1NfQ09TVCB0aGF0IGlzIHNlbGVjdGVkIGlmIC1tZGVi dWc9Y29zdC4gICovCisrCisrc3RhdGljIGludAorK3JzNjAwMF9kZWJ1Z19hZGRyZXNzX2Nvc3Qg KHJ0eCB4LCBib29sIHNwZWVkKQorK3sKKysgIGludCByZXQgPSBUQVJHRVRfQUREUkVTU19DT1NU ICh4LCBzcGVlZCk7CisrCisrICBmcHJpbnRmIChzdGRlcnIsICJcbnJzNjAwMF9hZGRyZXNzX2Nv c3QsIHJldHVybiA9ICVkLCBzcGVlZCA9ICVzLCB4OlxuIiwKKysJICAgcmV0LCBzcGVlZCA/ICJ0 cnVlIiA6ICJmYWxzZSIpOworKyAgZGVidWdfcnR4ICh4KTsKKysKKysgIHJldHVybiByZXQ7Cisr fQorKworKworIC8qIEEgQyBleHByZXNzaW9uIHJldHVybmluZyB0aGUgY29zdCBvZiBtb3Zpbmcg ZGF0YSBmcm9tIGEgcmVnaXN0ZXIgb2YgY2xhc3MKKyAgICBDTEFTUzEgdG8gb25lIG9mIENMQVNT Mi4gICovCisgCitAQCAtMjIxMjAsNyArMjM1NjcsNyBAQCByczYwMDBfcmVnaXN0ZXJfbW92ZV9j b3N0IChlbnVtIG1hY2hpbmVfCiAgICAgICAgaWYgKCEgcmVnX2NsYXNzZXNfaW50ZXJzZWN0X3Ag KHRvLCBHRU5FUkFMX1JFR1MpKQogIAlmcm9tID0gdG87CiAgCkBAIC01NjQyLDcgKzczODgsNyBA QCB0ZXN0c3VpdGUvCiAgCXJldHVybiAocnM2MDAwX21lbW9yeV9tb3ZlX2Nvc3QgKG1vZGUsIGZy b20sIDApCiAgCQkrIHJzNjAwMF9tZW1vcnlfbW92ZV9jb3N0IChtb2RlLCBHRU5FUkFMX1JFR1Ms IDApKTsKICAKLUBAIC0yMjEzNiw2ICsyMjg5OCwxMiBAQCByczYwMDBfcmVnaXN0ZXJfbW92ZV9j b3N0IChlbnVtIG1hY2hpbmVfCitAQCAtMjIxNDAsNiArMjM1ODcsMTIgQEAgcnM2MDAwX3JlZ2lz dGVyX21vdmVfY29zdCAoZW51bSBtYWNoaW5lXwogIAlyZXR1cm4gMiAqIGhhcmRfcmVnbm9fbnJl Z3NbMF1bbW9kZV07CiAgICAgIH0KICAKQEAgLTU2NTUsNyArNzQwMSw3IEBAIHRlc3RzdWl0ZS8K ICAgIC8qIE1vdmluZyBiZXR3ZWVuIHR3byBzaW1pbGFyIHJlZ2lzdGVycyBpcyBqdXN0IG9uZSBp bnN0cnVjdGlvbi4gICovCiAgICBlbHNlIGlmIChyZWdfY2xhc3Nlc19pbnRlcnNlY3RfcCAodG8s IGZyb20pKQogICAgICByZXR1cm4gKG1vZGUgPT0gVEZtb2RlIHx8IG1vZGUgPT0gVERtb2RlKSA/ IDQgOiAyOwotQEAgLTIyMzc2LDggKzIzMTQ0LDggQEAgcnM2MDAwX2VtaXRfc3dyc3FydHNmIChy dHggZHN0LCBydHggc3JjKQorQEAgLTIyMzgwLDggKzIzODMzLDggQEAgcnM2MDAwX2VtaXRfc3dy c3FydHNmIChydHggZHN0LCBydHggc3JjKQogICAgZW1pdF9sYWJlbCAoWEVYUCAobGFiZWwsIDAp KTsKICB9CiAgCkBAIC01NjY2LDcgKzc0MTIsNyBAQCB0ZXN0c3VpdGUvCiAgCiAgdm9pZAogIHJz NjAwMF9lbWl0X3BvcGNvdW50IChydHggZHN0LCBydHggc3JjKQotQEAgLTIyMzg1LDYgKzIzMTUz LDE2IEBAIHJzNjAwMF9lbWl0X3BvcGNvdW50IChydHggZHN0LCBydHggc3JjKQorQEAgLTIyMzg5 LDYgKzIzODQyLDE2IEBAIHJzNjAwMF9lbWl0X3BvcGNvdW50IChydHggZHN0LCBydHggc3JjKQog ICAgZW51bSBtYWNoaW5lX21vZGUgbW9kZSA9IEdFVF9NT0RFIChkc3QpOwogICAgcnR4IHRtcDEs IHRtcDI7CiAgCkBAIC01NjgzLDcgKzc0MjksNyBAQCB0ZXN0c3VpdGUvCiAgICB0bXAxID0gZ2Vu X3JlZ19ydHggKG1vZGUpOwogIAogICAgaWYgKG1vZGUgPT0gU0ltb2RlKQotQEAgLTIyNzk3LDcg KzIzNTc1LDcgQEAgcnM2MDAwX3ZlY3Rvcl9tb2RlX3N1cHBvcnRlZF9wIChlbnVtIG1hYworQEAg LTIyODAxLDcgKzI0MjY0LDcgQEAgcnM2MDAwX3ZlY3Rvcl9tb2RlX3N1cHBvcnRlZF9wIChlbnVt IG1hYwogICAgaWYgKFRBUkdFVF9TUEUgJiYgU1BFX1ZFQ1RPUl9NT0RFIChtb2RlKSkKICAgICAg cmV0dXJuIHRydWU7CiAgCkBAIC01NjkzLDggKzc0MzksOCBAQCB0ZXN0c3VpdGUvCiAgCiAgICBl bHNlCiAtLS0gZ2NjL2NvbmZpZy9yczYwMDAvdnN4Lm1kCSguLi4vdHJ1bmspCShyZXZpc2lvbiAw KQotKysrIGdjYy9jb25maWcvcnM2MDAwL3ZzeC5tZAkoLi4uL2JyYW5jaGVzL2libS9wb3dlcjct bWVpc3NuZXIpCShyZXZpc2lvbiAxNDQ3MzApCi1AQCAtMCwwICsxLDg2NCBAQAorKysrIGdjYy9j b25maWcvcnM2MDAwL3ZzeC5tZAkoLi4uL2JyYW5jaGVzL2libS9wb3dlcjctbWVpc3NuZXIpCShy ZXZpc2lvbiAxNDYwMjcpCitAQCAtMCwwICsxLDEwMDQgQEAKICs7OyBWU1ggcGF0dGVybnMuCiAr OzsgQ29weXJpZ2h0IChDKSAyMDA5CiArOzsgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMu CkBAIC01NzE2LDEyICs3NDYyLDE4IEBAIHRlc3RzdWl0ZS8KICs7OyBhbG9uZyB3aXRoIEdDQzsg c2VlIHRoZSBmaWxlIENPUFlJTkczLiAgSWYgbm90IHNlZQogKzs7IDxodHRwOi8vd3d3LmdudS5v cmcvbGljZW5zZXMvPi4KICsKKys7OyBJdGVyYXRvciBmb3IgYm90aCBzY2FsYXIgYW5kIHZlY3Rv ciBmbG9hdGluZyBwb2ludCB0eXBlcyBzdXBwb3J0ZWQgYnkgVlNYCisrKGRlZmluZV9tb2RlX2l0 ZXJhdG9yIFZTWF9CIFtERiBWNFNGIFYyREZdKQorKwogKzs7IEl0ZXJhdG9yIGZvciB2ZWN0b3Ig ZmxvYXRpbmcgcG9pbnQgdHlwZXMgc3VwcG9ydGVkIGJ5IFZTWAogKyhkZWZpbmVfbW9kZV9pdGVy YXRvciBWU1hfRiBbVjRTRiBWMkRGXSkKICsKICs7OyBJdGVyYXRvciBmb3IgbG9naWNhbCB0eXBl cyBzdXBwb3J0ZWQgYnkgVlNYCiArKGRlZmluZV9tb2RlX2l0ZXJhdG9yIFZTWF9MIFtWMTZRSSBW OEhJIFY0U0kgVjJESSBWNFNGIFYyREYgVEldKQogKworKzs7IEl0ZXJhdG9yIGZvciB0eXBlcyBm b3IgbG9hZC9zdG9yZSB3aXRoIHVwZGF0ZQorKyhkZWZpbmVfbW9kZV9pdGVyYXRvciBWU1hfVSBb VjE2UUkgVjhISSBWNFNJIFYyREkgVjRTRiBWMkRGIFRJIERGXSkKKysKICs7OyBNYXAgaW50byB0 aGUgYXBwcm9wcmlhdGUgbG9hZC9zdG9yZSBuYW1lIGJhc2VkIG9uIHRoZSB0eXBlCiArKGRlZmlu ZV9tb2RlX2F0dHIgVlNtICBbKFYxNlFJICJ2dzQiKQogKwkJCShWOEhJICAidnc0IikKQEAgLTU3 MjksNiArNzQ4MSw3IEBAIHRlc3RzdWl0ZS8KICsJCQkoVjRTRiAgInZ3NCIpCiArCQkJKFYyREYg ICJ2ZDIiKQogKwkJCShWMkRJICAidmQyIikKKysJCQkoREYgICAgImQiKQogKwkJCShUSSAgICAi dnc0IildKQogKwogKzs7IE1hcCBpbnRvIHRoZSBhcHByb3ByaWF0ZSBzdWZmaXggYmFzZWQgb24g dGhlIHR5cGUKQEAgLTU3MzgsNiArNzQ5MSw3IEBAIHRlc3RzdWl0ZS8KICsJCQkgKFY0U0YgICJz cCIpCiArCQkJIChWMkRGICAiZHAiKQogKwkJCSAoVjJESSAgImRwIikKKysJCQkgKERGICAgICJk cCIpCiArCQkJIChUSSAgICAic3AiKV0pCiArCiArOzsgTWFwIGludG8gdGhlIHJlZ2lzdGVyIGNs YXNzIHVzZWQKQEAgLTU3NDcsMzAgKzc1MDEsMTI2IEBAIHRlc3RzdWl0ZS8KICsJCQkgKFY0U0Yg ICJ3ZiIpCiArCQkJIChWMkRJICAid2QiKQogKwkJCSAoVjJERiAgIndkIikKKysJCQkgKERGICAg ICJ3cyIpCiArCQkJIChUSSAgICAid2QiKV0pCiArCisrOzsgTWFwIGludG8gdGhlIHJlZ2lzdGVy IGNsYXNzIHVzZWQgZm9yIGZsb2F0PC0+aW50IGNvbnZlcnNpb25zCisrKGRlZmluZV9tb2RlX2F0 dHIgVlNyMglbKFYyREYgICJ3ZCIpCisrCQkJIChWNFNGICAid2YiKQorKwkJCSAoREYgICAgIiFm I3IiKV0pCisrCisrKGRlZmluZV9tb2RlX2F0dHIgVlNyMwlbKFYyREYgICJ3YSIpCisrCQkJIChW NFNGICAid2EiKQorKwkJCSAoREYgICAgIiFmI3IiKV0pCisrCiArOzsgU2FtZSBzaXplIGludGVn ZXIgdHlwZSBmb3IgZmxvYXRpbmcgcG9pbnQgZGF0YQogKyhkZWZpbmVfbW9kZV9hdHRyIFZTaSBb KFY0U0YgICJ2NHNpIikKLSsJCSAgICAgICAoVjJERiAgInYyZGkiKV0pCisrCQkgICAgICAgKFYy REYgICJ2MmRpIikKKysJCSAgICAgICAoREYgICAgImRpIildKQogKwogKyhkZWZpbmVfbW9kZV9h dHRyIFZTSSBbKFY0U0YgICJWNFNJIikKLSsJCSAgICAgICAoVjJERiAgIlYyREkiKV0pCisrCQkg ICAgICAgKFYyREYgICJWMkRJIikKKysJCSAgICAgICAoREYgICAgIkRJIildKQogKwogKzs7IFdv cmQgc2l6ZSBmb3Igc2FtZSBzaXplIGNvbnZlcnNpb24KICsoZGVmaW5lX21vZGVfYXR0ciBWU2Mg WyhWNFNGICJ3IikKLSsJCSAgICAgICAoVjJERiAiZCIpXSkKKysJCSAgICAgICAoVjJERiAiZCIp CisrCQkgICAgICAgKERGICAgImQiKV0pCiArCiArOzsgQml0c2l6ZSBmb3IgREYgbG9hZCB3aXRo IHVwZGF0ZQogKyhkZWZpbmVfbW9kZV9hdHRyIFZTYml0IFsoU0kgIjMyIikKICsJCQkgKERJICI2 NCIpXSkKICsKKys7OyBNYXAgaW50byBlaXRoZXIgcyBvciB2LCBkZXBlbmRpbmcgb24gd2hldGhl ciB0aGlzIGlzIGEgc2NhbGFyIG9yIHZlY3RvcgorKzs7IG9wZXJhdGlvbgorKyhkZWZpbmVfbW9k ZV9hdHRyIFZTdglbKFYxNlFJICJ2IikKKysJCQkgKFY4SEkgICJ2IikKKysJCQkgKFY0U0kgICJ2 IikKKysJCQkgKFY0U0YgICJ2IikKKysJCQkgKFYyREkgICJ2IikKKysJCQkgKFYyREYgICJ2IikK KysJCQkgKFRJICAgICJ2IikKKysJCQkgKERGICAgICJzIildKQorKworKzs7IEFwcHJvcHJpYXRl IHR5cGUgZm9yIGFkZCBvcHMgKGFuZCBvdGhlciBzaW1wbGUgRlAgb3BzKQorKyhkZWZpbmVfbW9k ZV9hdHRyIFZTdHlwZV9zaW1wbGUJWyhWMkRGICJ2ZWNmbG9hdCIpCisrCQkJCSAoVjRTRiAidmVj ZmxvYXQiKQorKwkJCQkgKERGICAgImZwIildKQorKworKyhkZWZpbmVfbW9kZV9hdHRyIFZTZnB0 eXBlX3NpbXBsZSBbKFYyREYgImZwX2FkZHN1Yl9kIikKKysJCQkJICAgKFY0U0YgImZwX2FkZHN1 Yl9zIikKKysJCQkJICAgKERGICAgImZwX2FkZHN1Yl9kIildKQorKworKzs7IEFwcHJvcHJpYXRl IHR5cGUgZm9yIG11bHRpcGx5IG9wcworKyhkZWZpbmVfbW9kZV9hdHRyIFZTdHlwZV9tdWwJWyhW MkRGICJ2ZWNmbG9hdCIpCisrCQkJCSAoVjRTRiAidmVjZmxvYXQiKQorKwkJCQkgKERGICAgImRt dWwiKV0pCisrCisrKGRlZmluZV9tb2RlX2F0dHIgVlNmcHR5cGVfbXVsCVsoVjJERiAiZnBfbXVs X2QiKQorKwkJCQkgKFY0U0YgImZwX211bF9zIikKKysJCQkJIChERiAgICJmcF9tdWxfZCIpXSkK KysKKys7OyBBcHByb3ByaWF0ZSB0eXBlIGZvciBkaXZpZGUgb3BzLiAgRm9yIG5vdywganVzdCBs dW1wIHRoZSB2ZWN0b3IgZGl2aWRlIHdpdGgKKys7OyB0aGUgc2NhbGFyIGRpdmlkZXMKKysoZGVm aW5lX21vZGVfYXR0ciBWU3R5cGVfZGl2CVsoVjJERiAiZGRpdiIpCisrCQkJCSAoVjRTRiAic2Rp diIpCisrCQkJCSAoREYgICAiZGRpdiIpXSkKKysKKysoZGVmaW5lX21vZGVfYXR0ciBWU2ZwdHlw ZV9kaXYJWyhWMkRGICJmcF9kaXZfZCIpCisrCQkJCSAoVjRTRiAiZnBfZGl2X3MiKQorKwkJCQkg KERGICAgImZwX2Rpdl9kIildKQorKworKzs7IEFwcHJvcHJpYXRlIHR5cGUgZm9yIHNxcnQgb3Bz LiAgRm9yIG5vdywganVzdCBsdW1wIHRoZSB2ZWN0b3Igc3FydCB3aXRoCisrOzsgdGhlIHNjYWxh ciBzcXJ0CisrKGRlZmluZV9tb2RlX2F0dHIgVlN0eXBlX3NxcnQJWyhWMkRGICJkc3FydCIpCisr CQkJCSAoVjRTRiAic2RpdiIpCisrCQkJCSAoREYgICAiZGRpdiIpXSkKKysKKysoZGVmaW5lX21v ZGVfYXR0ciBWU2ZwdHlwZV9zcXJ0CVsoVjJERiAiZnBfc3FydF9kIikKKysJCQkJIChWNFNGICJm cF9zcXJ0X3MiKQorKwkJCQkgKERGICAgImZwX3NxcnRfZCIpXSkKKysKKys7OyBBcHByb3ByaWF0 ZSB0eXBlIGZvciBsb2FkICsgdXBkYXRlCisrKGRlZmluZV9tb2RlX2F0dHIgVlN0eXBlX2xvYWRf dXBkYXRlIFsoVjE2UUkgInZlY2xvYWQiKQorKwkJCQkgICAgICAoVjhISSAgInZlY2xvYWQiKQor KwkJCQkgICAgICAoVjRTSSAgInZlY2xvYWQiKQorKwkJCQkgICAgICAoVjRTRiAgInZlY2xvYWQi KQorKwkJCQkgICAgICAoVjJESSAgInZlY2xvYWQiKQorKwkJCQkgICAgICAoVjJERiAgInZlY2xv YWQiKQorKwkJCQkgICAgICAoVEkgICAgInZlY2xvYWQiKQorKwkJCQkgICAgICAoREYgICAgImZw bG9hZCIpXSkKKysKKys7OyBBcHByb3ByaWF0ZSB0eXBlIGZvciBzdG9yZSArIHVwZGF0ZQorKyhk ZWZpbmVfbW9kZV9hdHRyIFZTdHlwZV9zdG9yZV91cGRhdGUgWyhWMTZRSSAidmVjc3RvcmUiKQor KwkJCQkgICAgICAgKFY4SEkgICJ2ZWNzdG9yZSIpCisrCQkJCSAgICAgICAoVjRTSSAgInZlY3N0 b3JlIikKKysJCQkJICAgICAgIChWNFNGICAidmVjc3RvcmUiKQorKwkJCQkgICAgICAgKFYyREkg ICJ2ZWNzdG9yZSIpCisrCQkJCSAgICAgICAoVjJERiAgInZlY3N0b3JlIikKKysJCQkJICAgICAg IChUSSAgICAidmVjc3RvcmUiKQorKwkJCQkgICAgICAgKERGICAgICJmcHN0b3JlIildKQorKwor Kzs7IENvbnN0YW50cyBmb3IgY3JlYXRpbmcgdW5zcGVjcwogKyhkZWZpbmVfY29uc3RhbnRzCi0r ICBbKFVOU1BFQ19WU1hfQ09OQ0FUX1YyREYJNTAwKV0pCisrICBbKFVOU1BFQ19WU1hfQ09OQ0FU X1YyREYJNTAwKQorKyAgIChVTlNQRUNfVlNYX1hWQ1ZEUFNQCQk1MDEpCisrICAgKFVOU1BFQ19W U1hfWFZDVkRQU1hXUwk1MDIpCisrICAgKFVOU1BFQ19WU1hfWFZDVkRQVVhXUwk1MDMpCisrICAg KFVOU1BFQ19WU1hfWFZDVlNQRFAJCTUwNCkKKysgICAoVU5TUEVDX1ZTWF9YVkNWU1hXRFAJNTA1 KQorKyAgIChVTlNQRUNfVlNYX1hWQ1ZVWFdEUAk1MDYpCisrICAgKFVOU1BFQ19WU1hfWFZNQURE CQk1MDcpCisrICAgKFVOU1BFQ19WU1hfWFZNU1VCCQk1MDgpCisrICAgKFVOU1BFQ19WU1hfWFZO TUFERAkJNTA5KQorKyAgIChVTlNQRUNfVlNYX1hWTk1TVUIJCTUxMCkKKysgICAoVU5TUEVDX1ZT WF9YVlJTUVJURQkJNTExKQorKyAgIChVTlNQRUNfVlNYX1hWVERJVgkJNTEyKQorKyAgIChVTlNQ RUNfVlNYX1hWVFNRUlQJCTUxMyldKQogKwogKzs7IFZTWCBtb3ZlcwogKyhkZWZpbmVfaW5zbiAi KnZzeF9tb3Y8bW9kZT4iCi0rICBbKHNldCAobWF0Y2hfb3BlcmFuZDpWU1hfTCAwICJub25pbW1l ZGlhdGVfb3BlcmFuZCIgIj1aLDxWU3I+LDxWU3I+LD9aLD93YSw/d2EsKm8sKnIsKnIsPFZTcj4s P3dhLHYiKQotKwkobWF0Y2hfb3BlcmFuZDpWU1hfTCAxICJpbnB1dF9vcGVyYW5kIiAiPFZTcj4s Wiw8VlNyPix3YSxaLHdhLHIsbyxyLGosaixXIikpXQorKyAgWyhzZXQgKG1hdGNoX29wZXJhbmQ6 VlNYX0wgMCAibm9uaW1tZWRpYXRlX29wZXJhbmQiICI9Wiw8VlNyPiw8VlNyPiw/Wiw/d2EsP3dh LCpvLCpyLCpyLDxWU3I+LD93YSx2LHdaLHYiKQorKwkobWF0Y2hfb3BlcmFuZDpWU1hfTCAxICJp bnB1dF9vcGVyYW5kIiAiPFZTcj4sWiw8VlNyPix3YSxaLHdhLHIsbyxyLGosaixXLHYsd1oiKSld CiArICAiVkVDVE9SX01FTV9WU1hfUCAoPE1PREU+bW9kZSkKICsgICAmJiAocmVnaXN0ZXJfb3Bl cmFuZCAob3BlcmFuZHNbMF0sIDxNT0RFPm1vZGUpIAogKyAgICAgICB8fCByZWdpc3Rlcl9vcGVy YW5kIChvcGVyYW5kc1sxXSwgPE1PREU+bW9kZSkpIgpAQCAtNTc4Nyw3ICs3NjM3LDcgQEAgdGVz dHN1aXRlLwogKwogKyAgICBjYXNlIDI6CiArICAgIGNhc2UgNToKLSsgICAgICByZXR1cm4gInh2 bW92PFZTcz4gJXgwLCV4MSI7CisrICAgICAgcmV0dXJuICJ4eGxvciAleDAsJXgxLCV4MSI7CiAr CiArICAgIGNhc2UgNjoKICsgICAgY2FzZSA3OgpAQCAtNTgwMSwxMSArNzY1MSwxNyBAQCB0ZXN0 c3VpdGUvCiArICAgIGNhc2UgMTE6CiArICAgICAgcmV0dXJuIG91dHB1dF92ZWNfY29uc3RfbW92 ZSAob3BlcmFuZHMpOwogKworKyAgICBjYXNlIDEyOgorKyAgICAgIHJldHVybiAic3R2eCAlMSwl eTAiOworKworKyAgICBjYXNlIDEzOgorKyAgICAgIHJldHVybiAibHZ4ICUwLCV5MSI7CisrCiAr ICAgIGRlZmF1bHQ6CiArICAgICAgZ2NjX3VucmVhY2hhYmxlICgpOwogKyAgICB9CiArfQotKyAg WyhzZXRfYXR0ciAidHlwZSIgInZlY3N0b3JlLHZlY2xvYWQsdmVjc2ltcGxlLHZlY3N0b3JlLHZl Y2xvYWQsdmVjc2ltcGxlLHN0b3JlLGxvYWQsKix2ZWNzaW1wbGUsdmVjc2ltcGxlLCoiKV0pCisr ICBbKHNldF9hdHRyICJ0eXBlIiAidmVjc3RvcmUsdmVjbG9hZCx2ZWNzaW1wbGUsdmVjc3RvcmUs dmVjbG9hZCx2ZWNzaW1wbGUsKiwqLCosdmVjc2ltcGxlLHZlY3NpbXBsZSwqLHZlY3N0b3JlLHZl Y2xvYWQiKV0pCiArCiArOzsgTG9hZC9zdG9yZSB3aXRoIHVwZGF0ZQogKzs7IERlZmluZSBpbnNu cyB0aGF0IGRvIGxvYWQgb3Igc3RvcmUgd2l0aCB1cGRhdGUuICBCZWNhdXNlIFZTWCBvbmx5IGhh cwpAQCAtNTgxNyw1NzUgKzc2NzMsNTkyIEBAIHRlc3RzdWl0ZS8KICs7OyB0aWUgYW5kIHRoZXNl IGFyZSB0aGUgcGFpciBtb3N0IGxpa2VseSB0byBiZSB0aWVhYmxlIChhbmQgdGhlIG9uZXMKICs7 OyB0aGF0IHdpbGwgYmVuZWZpdCB0aGUgbW9zdCkuCiArCi0rKGRlZmluZV9pbnNuICIqdnN4X2xv YWQ8bW9kZT5fdXBkYXRlNjQiCi0rICBbKHNldCAobWF0Y2hfb3BlcmFuZDpWU1hfTCAzICJ2c3hf cmVnaXN0ZXJfb3BlcmFuZCIgIj08VlNyPiw/d2EiKQotKwkobWVtOlZTWF9MIChwbHVzOkRJICht YXRjaF9vcGVyYW5kOkRJIDEgImdwY19yZWdfb3BlcmFuZCIgIjAsMCIpCi0rCQkJICAgIChtYXRj aF9vcGVyYW5kOkRJIDIgImdwY19yZWdfb3BlcmFuZCIgInIsciIpKSkpCi0rICAgKHNldCAobWF0 Y2hfb3BlcmFuZDpESSAwICJncGNfcmVnX29wZXJhbmQiICI9YixiIikKLSsJKHBsdXM6REkgKG1h dGNoX2R1cCAxKQotKwkJIChtYXRjaF9kdXAgMikpKV0KLSsgICJUQVJHRVRfNjRCSVQgJiYgVEFS R0VUX1VQREFURSAmJiBWRUNUT1JfTUVNX1ZTWF9QICg8TU9ERT5tb2RlKSIKLSsgICJseDxWU20+ dXggJXgzLCUwLCUyIgotKyAgWyhzZXRfYXR0ciAidHlwZSIgInZlY2xvYWQiKV0pCi0rCi0rKGRl ZmluZV9pbnNuICIqdnN4X2xvYWQ8bW9kZT5fdXBkYXRlMzIiCi0rICBbKHNldCAobWF0Y2hfb3Bl cmFuZDpWU1hfTCAzICJ2c3hfcmVnaXN0ZXJfb3BlcmFuZCIgIj08VlNyPiw/d2EiKQotKwkobWVt OlZTWF9MIChwbHVzOlNJIChtYXRjaF9vcGVyYW5kOlNJIDEgImdwY19yZWdfb3BlcmFuZCIgIjAs MCIpCi0rCQkJICAgIChtYXRjaF9vcGVyYW5kOlNJIDIgImdwY19yZWdfb3BlcmFuZCIgInIsciIp KSkpCi0rICAgKHNldCAobWF0Y2hfb3BlcmFuZDpTSSAwICJncGNfcmVnX29wZXJhbmQiICI9Yixi IikKLSsJKHBsdXM6U0kgKG1hdGNoX2R1cCAxKQotKwkJIChtYXRjaF9kdXAgMikpKV0KLSsgICJU QVJHRVRfMzJCSVQgJiYgVEFSR0VUX1VQREFURSAmJiBWRUNUT1JfTUVNX1ZTWF9QICg8TU9ERT5t b2RlKSIKLSsgICJseDxWU20+dXggJXgzLCUwLCUyIgotKyAgWyhzZXRfYXR0ciAidHlwZSIgInZl Y2xvYWQiKV0pCi0rCi0rKGRlZmluZV9pbnNuICIqdnN4X3N0b3JlPG1vZGU+X3VwZGF0ZTY0Igot KyAgWyhzZXQgKG1lbTpWU1hfTCAocGx1czpESSAobWF0Y2hfb3BlcmFuZDpESSAxICJncGNfcmVn X29wZXJhbmQiICIwLDAiKQotKwkJCSAgICAobWF0Y2hfb3BlcmFuZDpESSAyICJncGNfcmVnX29w ZXJhbmQiICJyLHIiKSkpCi0rCShtYXRjaF9vcGVyYW5kOlZTWF9MIDMgImdwY19yZWdfb3BlcmFu ZCIgIjxWU3I+LD93YSIpKQotKyAgIChzZXQgKG1hdGNoX29wZXJhbmQ6REkgMCAiZ3BjX3JlZ19v cGVyYW5kIiAiPWIsYiIpCi0rCShwbHVzOkRJIChtYXRjaF9kdXAgMSkKLSsJCSAobWF0Y2hfZHVw IDIpKSldCi0rICAiVEFSR0VUXzY0QklUICYmIFRBUkdFVF9VUERBVEUgJiYgVkVDVE9SX01FTV9W U1hfUCAoPE1PREU+bW9kZSkiCi0rICAic3R4PFZTbT51eCAleDMsJTAsJTIiCi0rICBbKHNldF9h dHRyICJ0eXBlIiAidmVjc3RvcmUiKV0pCi0rCi0rKGRlZmluZV9pbnNuICIqdnN4X3N0b3JlPG1v ZGU+X3VwZGF0ZTMyIgotKyAgWyhzZXQgKG1lbTpWU1hfTCAocGx1czpTSSAobWF0Y2hfb3BlcmFu ZDpTSSAxICJncGNfcmVnX29wZXJhbmQiICIwLDAiKQotKwkJCSAgICAobWF0Y2hfb3BlcmFuZDpT SSAyICJncGNfcmVnX29wZXJhbmQiICJyLHIiKSkpCi0rCShtYXRjaF9vcGVyYW5kOlZTWF9MIDMg ImdwY19yZWdfb3BlcmFuZCIgIjxWU3I+LD93YSIpKQotKyAgIChzZXQgKG1hdGNoX29wZXJhbmQ6 U0kgMCAiZ3BjX3JlZ19vcGVyYW5kIiAiPWIsYiIpCi0rCShwbHVzOlNJIChtYXRjaF9kdXAgMSkK LSsJCSAobWF0Y2hfZHVwIDIpKSldCi0rICAiVEFSR0VUXzMyQklUICYmIFRBUkdFVF9VUERBVEUg JiYgVkVDVE9SX01FTV9WU1hfUCAoPE1PREU+bW9kZSkiCi0rICAic3R4PFZTbT51eCAleDMsJTAs JTIiCi0rICBbKHNldF9hdHRyICJ0eXBlIiAidmVjc3RvcmUiKV0pCi0rCi0rKGRlZmluZV9pbnNu ICIqdnN4X2xvYWRkZl91cGRhdGU8VlNiaXQ+IgotKyAgWyhzZXQgKG1hdGNoX29wZXJhbmQ6REYg MyAidnN4X3JlZ2lzdGVyX29wZXJhbmQiICI9d3MsP3dhIikKLSsJKG1lbTpERiAocGx1czpQICht YXRjaF9vcGVyYW5kOlAgMSAiZ3BjX3JlZ19vcGVyYW5kIiAiMCwwIikKLSsJCQkobWF0Y2hfb3Bl cmFuZDpQIDIgImdwY19yZWdfb3BlcmFuZCIgInIsciIpKSkpCisrKGRlZmluZV9pbnNuICIqdnN4 X2xvYWQ8VlNYX1U6bW9kZT5fdXBkYXRlXzxQOm1wdHJzaXplPiIKKysgIFsoc2V0IChtYXRjaF9v cGVyYW5kOlZTWF9VIDMgInZzeF9yZWdpc3Rlcl9vcGVyYW5kIiAiPTxWU3I+LD93YSIpCisrCSht ZW06VlNYX1UgKHBsdXM6UCAobWF0Y2hfb3BlcmFuZDpQIDEgImdwY19yZWdfb3BlcmFuZCIgIjAs MCIpCisrCQkJICAgKG1hdGNoX29wZXJhbmQ6UCAyICJncGNfcmVnX29wZXJhbmQiICJyLHIiKSkp KQogKyAgIChzZXQgKG1hdGNoX29wZXJhbmQ6UCAwICJncGNfcmVnX29wZXJhbmQiICI9YixiIikK ICsJKHBsdXM6UCAobWF0Y2hfZHVwIDEpCiArCQkobWF0Y2hfZHVwIDIpKSldCi0rICAiVEFSR0VU XzxWU2JpdD5CSVQgJiYgVEFSR0VUX1VQREFURSAmJiBWRUNUT1JfTUVNX1ZTWF9QIChERm1vZGUp IgotKyAgImx4c2R1eCAleDMsJTAsJTIiCi0rICBbKHNldF9hdHRyICJ0eXBlIiAidmVjbG9hZCIp XSkKLSsKLSsoZGVmaW5lX2luc24gIip2c3hfc3RvcmVkZl91cGRhdGU8VlNiaXQ+IgotKyAgWyhz ZXQgKG1lbTpERiAocGx1czpQIChtYXRjaF9vcGVyYW5kOlAgMSAiZ3BjX3JlZ19vcGVyYW5kIiAi MCwwIikKLSsJCQkobWF0Y2hfb3BlcmFuZDpQIDIgImdwY19yZWdfb3BlcmFuZCIgInIsciIpKSkK LSsJKG1hdGNoX29wZXJhbmQ6REYgMyAiZ3BjX3JlZ19vcGVyYW5kIiAid3MsP3dhIikpCisrICAi PFA6dHB0cnNpemU+ICYmIFRBUkdFVF9VUERBVEUgJiYgVkVDVE9SX01FTV9WU1hfUCAoPE1PREU+ bW9kZSkiCisrICAibHg8VlNtPnV4ICV4MywlMCwlMiIKKysgIFsoc2V0X2F0dHIgInR5cGUiICI8 VlNYX1U6VlN0eXBlX2xvYWRfdXBkYXRlPiIpXSkKKysKKysoZGVmaW5lX2luc24gIip2c3hfc3Rv cmU8bW9kZT5fdXBkYXRlXzxQOm1wdHJzaXplPiIKKysgIFsoc2V0IChtZW06VlNYX1UgKHBsdXM6 UCAobWF0Y2hfb3BlcmFuZDpQIDEgImdwY19yZWdfb3BlcmFuZCIgIjAsMCIpCisrCQkJICAgKG1h dGNoX29wZXJhbmQ6UCAyICJncGNfcmVnX29wZXJhbmQiICJyLHIiKSkpCisrCShtYXRjaF9vcGVy YW5kOlZTWF9VIDMgImdwY19yZWdfb3BlcmFuZCIgIjxWU3I+LD93YSIpKQogKyAgIChzZXQgKG1h dGNoX29wZXJhbmQ6UCAwICJncGNfcmVnX29wZXJhbmQiICI9YixiIikKICsJKHBsdXM6UCAobWF0 Y2hfZHVwIDEpCiArCQkobWF0Y2hfZHVwIDIpKSldCi0rICAiVEFSR0VUXzxWU2JpdD5CSVQgJiYg VEFSR0VUX1VQREFURSAmJiBWRUNUT1JfTUVNX1ZTWF9QIChERm1vZGUpIgotKyAgInN0eHNkdXgg JXgzLCUwLCUyIgotKyAgWyhzZXRfYXR0ciAidHlwZSIgInZlY3N0b3JlIildKQorKyAgIjxQOnRw dHJzaXplPiAmJiBUQVJHRVRfVVBEQVRFICYmIFZFQ1RPUl9NRU1fVlNYX1AgKDxNT0RFPm1vZGUp IgorKyAgInN0eDxWU20+dXggJXgzLCUwLCUyIgorKyAgWyhzZXRfYXR0ciAidHlwZSIgIjxWU1hf VTpWU3R5cGVfc3RvcmVfdXBkYXRlPiIpXSkKICsKICs7OyBXZSBtYXkgbmVlZCB0byBoYXZlIGEg dmFyaWVudCBvbiB0aGUgcGF0dGVybiBmb3IgdXNlIGluIHRoZSBwcm9sb2d1ZQogKzs7IHRoYXQg ZG9lc24ndCBkZXBlbmQgb24gVEFSR0VUX1VQREFURS4KICsKICsMCi0rOzsgVlNYIHZlY3RvciBm bG9hdGluZyBwb2ludCBhcml0aG1ldGljIGluc3RydWN0aW9ucworKzs7IFZTWCBzY2FsYXIgYW5k IHZlY3RvciBmbG9hdGluZyBwb2ludCBhcml0aG1ldGljIGluc3RydWN0aW9ucwogKyhkZWZpbmVf aW5zbiAiKnZzeF9hZGQ8bW9kZT4zIgotKyAgWyhzZXQgKG1hdGNoX29wZXJhbmQ6VlNYX0YgMCAi dnN4X3JlZ2lzdGVyX29wZXJhbmQiICI9PFZTcj4iKQotKyAgICAgICAgKHBsdXM6VlNYX0YgKG1h dGNoX29wZXJhbmQ6VlNYX0YgMSAidnN4X3JlZ2lzdGVyX29wZXJhbmQiICI8VlNyPiIpCi0rCQkg ICAgKG1hdGNoX29wZXJhbmQ6VlNYX0YgMiAidnN4X3JlZ2lzdGVyX29wZXJhbmQiICI8VlNyPiIp KSldCisrICBbKHNldCAobWF0Y2hfb3BlcmFuZDpWU1hfQiAwICJ2c3hfcmVnaXN0ZXJfb3BlcmFu ZCIgIj08VlNyPiw/d2EiKQorKyAgICAgICAgKHBsdXM6VlNYX0IgKG1hdGNoX29wZXJhbmQ6VlNY X0IgMSAidnN4X3JlZ2lzdGVyX29wZXJhbmQiICI8VlNyPix3YSIpCisrCQkgICAgKG1hdGNoX29w ZXJhbmQ6VlNYX0IgMiAidnN4X3JlZ2lzdGVyX29wZXJhbmQiICI8VlNyPix3YSIpKSldCiArICAi VkVDVE9SX1VOSVRfVlNYX1AgKDxNT0RFPm1vZGUpIgotKyAgInh2YWRkPFZTcz4gJXgwLCV4MSwl eDIiCi0rICBbKHNldF9hdHRyICJ0eXBlIiAidmVjZmxvYXQiKV0pCisrICAieDxWU3Y+YWRkPFZT cz4gJXgwLCV4MSwleDIiCisrICBbKHNldF9hdHRyICJ0eXBlIiAiPFZTdHlwZV9zaW1wbGU+IikK KysgICAoc2V0X2F0dHIgImZwX3R5cGUiICI8VlNmcHR5cGVfc2ltcGxlPiIpXSkKICsKICsoZGVm aW5lX2luc24gIip2c3hfc3ViPG1vZGU+MyIKLSsgIFsoc2V0IChtYXRjaF9vcGVyYW5kOlZTWF9G IDAgInZzeF9yZWdpc3Rlcl9vcGVyYW5kIiAiPTxWU3I+IikKLSsgICAgICAgIChtaW51czpWU1hf RiAobWF0Y2hfb3BlcmFuZDpWU1hfRiAxICJ2c3hfcmVnaXN0ZXJfb3BlcmFuZCIgIjxWU3I+IikK LSsJCSAgICAgKG1hdGNoX29wZXJhbmQ6VlNYX0YgMiAidnN4X3JlZ2lzdGVyX29wZXJhbmQiICI8 VlNyPiIpKSldCisrICBbKHNldCAobWF0Y2hfb3BlcmFuZDpWU1hfQiAwICJ2c3hfcmVnaXN0ZXJf b3BlcmFuZCIgIj08VlNyPiw/d2EiKQorKyAgICAgICAgKG1pbnVzOlZTWF9CIChtYXRjaF9vcGVy YW5kOlZTWF9CIDEgInZzeF9yZWdpc3Rlcl9vcGVyYW5kIiAiPFZTcj4sd2EiKQorKwkJICAgICAo bWF0Y2hfb3BlcmFuZDpWU1hfQiAyICJ2c3hfcmVnaXN0ZXJfb3BlcmFuZCIgIjxWU3I+LHdhIikp KV0KICsgICJWRUNUT1JfVU5JVF9WU1hfUCAoPE1PREU+bW9kZSkiCi0rICAieHZzdWI8VlNzPiAl eDAsJXgxLCV4MiIKLSsgIFsoc2V0X2F0dHIgInR5cGUiICJ2ZWNmbG9hdCIpXSkKKysgICJ4PFZT dj5zdWI8VlNzPiAleDAsJXgxLCV4MiIKKysgIFsoc2V0X2F0dHIgInR5cGUiICI8VlN0eXBlX3Np bXBsZT4iKQorKyAgIChzZXRfYXR0ciAiZnBfdHlwZSIgIjxWU2ZwdHlwZV9zaW1wbGU+IildKQog KwogKyhkZWZpbmVfaW5zbiAiKnZzeF9tdWw8bW9kZT4zIgotKyAgWyhzZXQgKG1hdGNoX29wZXJh bmQ6VlNYX0YgMCAidnN4X3JlZ2lzdGVyX29wZXJhbmQiICI9PFZTcj4iKQotKyAgICAgICAgKG11 bHQ6VlNYX0YgKG1hdGNoX29wZXJhbmQ6VlNYX0YgMSAidnN4X3JlZ2lzdGVyX29wZXJhbmQiICI8 VlNyPiIpCi0rCQkgICAgKG1hdGNoX29wZXJhbmQ6VlNYX0YgMiAidnN4X3JlZ2lzdGVyX29wZXJh bmQiICI8VlNyPiIpKSldCisrICBbKHNldCAobWF0Y2hfb3BlcmFuZDpWU1hfQiAwICJ2c3hfcmVn aXN0ZXJfb3BlcmFuZCIgIj08VlNyPiw/d2EiKQorKyAgICAgICAgKG11bHQ6VlNYX0IgKG1hdGNo X29wZXJhbmQ6VlNYX0IgMSAidnN4X3JlZ2lzdGVyX29wZXJhbmQiICI8VlNyPix3YSIpCisrCQkg ICAgKG1hdGNoX29wZXJhbmQ6VlNYX0IgMiAidnN4X3JlZ2lzdGVyX29wZXJhbmQiICI8VlNyPix3 YSIpKSldCiArICAiVkVDVE9SX1VOSVRfVlNYX1AgKDxNT0RFPm1vZGUpIgotKyAgInh2bXVsPFZT cz4gJXgwLCV4MSwleDIiCi0rICBbKHNldF9hdHRyICJ0eXBlIiAidmVjZmxvYXQiKV0pCisrICAi eDxWU3Y+bXVsPFZTcz4gJXgwLCV4MSwleDIiCisrICBbKHNldF9hdHRyICJ0eXBlIiAiPFZTdHlw ZV9tdWw+IikKKysgICAoc2V0X2F0dHIgImZwX3R5cGUiICI8VlNmcHR5cGVfbXVsPiIpXSkKICsK ICsoZGVmaW5lX2luc24gIip2c3hfZGl2PG1vZGU+MyIKLSsgIFsoc2V0IChtYXRjaF9vcGVyYW5k OlZTWF9GIDAgInZzeF9yZWdpc3Rlcl9vcGVyYW5kIiAiPTxWU3I+IikKLSsgICAgICAgIChkaXY6 VlNYX0YgKG1hdGNoX29wZXJhbmQ6VlNYX0YgMSAidnN4X3JlZ2lzdGVyX29wZXJhbmQiICI8VlNy PiIpCi0rCSAJICAgKG1hdGNoX29wZXJhbmQ6VlNYX0YgMiAidnN4X3JlZ2lzdGVyX29wZXJhbmQi ICI8VlNyPiIpKSldCisrICBbKHNldCAobWF0Y2hfb3BlcmFuZDpWU1hfQiAwICJ2c3hfcmVnaXN0 ZXJfb3BlcmFuZCIgIj08VlNyPiw/d2EiKQorKyAgICAgICAgKGRpdjpWU1hfQiAobWF0Y2hfb3Bl cmFuZDpWU1hfQiAxICJ2c3hfcmVnaXN0ZXJfb3BlcmFuZCIgIjxWU3I+LHdhIikKKysJIAkgICAo bWF0Y2hfb3BlcmFuZDpWU1hfQiAyICJ2c3hfcmVnaXN0ZXJfb3BlcmFuZCIgIjxWU3I+LHdhIikp KV0KKysgICJWRUNUT1JfVU5JVF9WU1hfUCAoPE1PREU+bW9kZSkiCisrICAieDxWU3Y+ZGl2PFZT cz4gJXgwLCV4MSwleDIiCisrICBbKHNldF9hdHRyICJ0eXBlIiAiPFZTdHlwZV9kaXY+IikKKysg ICAoc2V0X2F0dHIgImZwX3R5cGUiICI8VlNmcHR5cGVfZGl2PiIpXSkKKysKKysoZGVmaW5lX2lu c24gInZzeF90ZGl2PG1vZGU+MyIKKysgIFsoc2V0IChtYXRjaF9vcGVyYW5kOlZTWF9CIDAgInZz eF9yZWdpc3Rlcl9vcGVyYW5kIiAiPTxWU3I+LD93YSIpCisrCSh1bnNwZWM6VlNYX0IgWyhtYXRj aF9vcGVyYW5kOlZTWF9CIDEgInZzeF9yZWdpc3Rlcl9vcGVyYW5kIiAiPFZTcj4sd2EiKQorKwkJ ICAgICAgIChtYXRjaF9vcGVyYW5kOlZTWF9CIDIgInZzeF9yZWdpc3Rlcl9vcGVyYW5kIiAiPFZT cj4sd2EiKV0KKysJCSAgICAgIFVOU1BFQ19WU1hfWFZURElWKSldCiArICAiVkVDVE9SX1VOSVRf VlNYX1AgKDxNT0RFPm1vZGUpIgotKyAgInh2ZGl2PFZTcz4gJXgwLCV4MSwleDIiCi0rICBbKHNl dF9hdHRyICJ0eXBlIiAidmVjZmRpdiIpXSkKKysgICJ4PFZTdj50ZGl2PFZTcz4gJXgwLCV4MSwl eDIiCisrICBbKHNldF9hdHRyICJ0eXBlIiAiPFZTdHlwZV9zaW1wbGU+IikKKysgICAoc2V0X2F0 dHIgImZwX3R5cGUiICI8VlNmcHR5cGVfc2ltcGxlPiIpXSkKICsKLSsoZGVmaW5lX2luc24gIip2 c3hfZnJlPG1vZGU+MiIKLSsgIFsoc2V0IChtYXRjaF9vcGVyYW5kOlZTWF9GIDAgInZzeF9yZWdp c3Rlcl9vcGVyYW5kIiAiPTxWU3I+IikKLSsJKHVuc3BlYzpWU1hfRiBbKG1hdGNoX29wZXJhbmQ6 VlNYX0YgMSAidnN4X3JlZ2lzdGVyX29wZXJhbmQiICI8VlNyPiIpXQorKyhkZWZpbmVfaW5zbiAi dnN4X2ZyZTxtb2RlPjIiCisrICBbKHNldCAobWF0Y2hfb3BlcmFuZDpWU1hfQiAwICJ2c3hfcmVn aXN0ZXJfb3BlcmFuZCIgIj08VlNyPiw/d2EiKQorKwkodW5zcGVjOlZTWF9CIFsobWF0Y2hfb3Bl cmFuZDpWU1hfQiAxICJ2c3hfcmVnaXN0ZXJfb3BlcmFuZCIgIjxWU3I+LHdhIildCiArCQkgICAg ICBVTlNQRUNfRlJFUykpXQotKyAgImZsYWdfZmluaXRlX21hdGhfb25seSAmJiBWRUNUT1JfVU5J VF9WU1hfUCAoPE1PREU+bW9kZSkiCi0rICAieHZyZTxWU3M+ICV4MCwleDEiCi0rICBbKHNldF9h dHRyICJ0eXBlIiAiZnAiKV0pCisrICAiVkVDVE9SX1VOSVRfVlNYX1AgKDxNT0RFPm1vZGUpIgor KyAgIng8VlN2PnJlPFZTcz4gJXgwLCV4MSIKKysgIFsoc2V0X2F0dHIgInR5cGUiICI8VlN0eXBl X3NpbXBsZT4iKQorKyAgIChzZXRfYXR0ciAiZnBfdHlwZSIgIjxWU2ZwdHlwZV9zaW1wbGU+Iild KQogKwogKyhkZWZpbmVfaW5zbiAiKnZzeF9uZWc8bW9kZT4yIgotKyAgWyhzZXQgKG1hdGNoX29w ZXJhbmQ6VlNYX0YgMCAidnN4X3JlZ2lzdGVyX29wZXJhbmQiICI9PFZTcj4iKQotKyAgICAgICAg KG5lZzpWU1hfRiAobWF0Y2hfb3BlcmFuZDpWU1hfRiAxICJ2c3hfcmVnaXN0ZXJfb3BlcmFuZCIg IjxWU3I+IikpKV0KKysgIFsoc2V0IChtYXRjaF9vcGVyYW5kOlZTWF9CIDAgInZzeF9yZWdpc3Rl cl9vcGVyYW5kIiAiPTxWU3I+LD93YSIpCisrICAgICAgICAobmVnOlZTWF9CIChtYXRjaF9vcGVy YW5kOlZTWF9CIDEgInZzeF9yZWdpc3Rlcl9vcGVyYW5kIiAiPFZTcj4sd2EiKSkpXQogKyAgIlZF Q1RPUl9VTklUX1ZTWF9QICg8TU9ERT5tb2RlKSIKLSsgICJ4dm5lZzxWU3M+ICV4MCwleDEiCi0r ICBbKHNldF9hdHRyICJ0eXBlIiAidmVjZmxvYXQiKV0pCisrICAieDxWU3Y+bmVnPFZTcz4gJXgw LCV4MSIKKysgIFsoc2V0X2F0dHIgInR5cGUiICI8VlN0eXBlX3NpbXBsZT4iKQorKyAgIChzZXRf YXR0ciAiZnBfdHlwZSIgIjxWU2ZwdHlwZV9zaW1wbGU+IildKQogKwogKyhkZWZpbmVfaW5zbiAi KnZzeF9hYnM8bW9kZT4yIgotKyAgWyhzZXQgKG1hdGNoX29wZXJhbmQ6VlNYX0YgMCAidnN4X3Jl Z2lzdGVyX29wZXJhbmQiICI9PFZTcj4iKQotKyAgICAgICAgKGFiczpWU1hfRiAobWF0Y2hfb3Bl cmFuZDpWU1hfRiAxICJ2c3hfcmVnaXN0ZXJfb3BlcmFuZCIgIjxWU3I+IikpKV0KKysgIFsoc2V0 IChtYXRjaF9vcGVyYW5kOlZTWF9CIDAgInZzeF9yZWdpc3Rlcl9vcGVyYW5kIiAiPTxWU3I+LD93 YSIpCisrICAgICAgICAoYWJzOlZTWF9CIChtYXRjaF9vcGVyYW5kOlZTWF9CIDEgInZzeF9yZWdp c3Rlcl9vcGVyYW5kIiAiPFZTcj4sd2EiKSkpXQogKyAgIlZFQ1RPUl9VTklUX1ZTWF9QICg8TU9E RT5tb2RlKSIKLSsgICJ4dmFiczxWU3M+ICV4MCwleDEiCi0rICBbKHNldF9hdHRyICJ0eXBlIiAi dmVjZmxvYXQiKV0pCi0rCi0rKGRlZmluZV9pbnNuICIqdnN4X25hYnM8bW9kZT4yIgotKyAgWyhz ZXQgKG1hdGNoX29wZXJhbmQ6VlNYX0YgMCAidnN4X3JlZ2lzdGVyX29wZXJhbmQiICI9PFZTcj4i KQotKyAgICAgICAgKG5lZzpWU1hfRgotKwkgKGFiczpWU1hfRgotKwkgIChtYXRjaF9vcGVyYW5k OlZTWF9GIDEgInZzeF9yZWdpc3Rlcl9vcGVyYW5kIiAiPFZTcj4iKSkpKV0KKysgICJ4PFZTdj5h YnM8VlNzPiAleDAsJXgxIgorKyAgWyhzZXRfYXR0ciAidHlwZSIgIjxWU3R5cGVfc2ltcGxlPiIp CisrICAgKHNldF9hdHRyICJmcF90eXBlIiAiPFZTZnB0eXBlX3NpbXBsZT4iKV0pCisrCisrKGRl ZmluZV9pbnNuICJ2c3hfbmFiczxtb2RlPjIiCisrICBbKHNldCAobWF0Y2hfb3BlcmFuZDpWU1hf QiAwICJ2c3hfcmVnaXN0ZXJfb3BlcmFuZCIgIj08VlNyPiw/d2EiKQorKyAgICAgICAgKG5lZzpW U1hfQgorKwkgKGFiczpWU1hfQgorKwkgIChtYXRjaF9vcGVyYW5kOlZTWF9CIDEgInZzeF9yZWdp c3Rlcl9vcGVyYW5kIiAiPFZTcj4sd2EiKSkpKV0KICsgICJWRUNUT1JfVU5JVF9WU1hfUCAoPE1P REU+bW9kZSkiCi0rICAieHZuYWJzPFZTcz4gJXgwLCV4MSIKLSsgIFsoc2V0X2F0dHIgInR5cGUi ICJ2ZWNmbG9hdCIpXSkKLSsKLSsoZGVmaW5lX2luc24gIip2c3hfc21heDxtb2RlPjMiCi0rICBb KHNldCAobWF0Y2hfb3BlcmFuZDpWU1hfRiAwICJ2c3hfcmVnaXN0ZXJfb3BlcmFuZCIgIj08VlNy PiIpCi0rICAgICAgICAoc21heDpWU1hfRiAobWF0Y2hfb3BlcmFuZDpWU1hfRiAxICJ2c3hfcmVn aXN0ZXJfb3BlcmFuZCIgIjxWU3I+IikKLSsJCSAgICAobWF0Y2hfb3BlcmFuZDpWU1hfRiAyICJ2 c3hfcmVnaXN0ZXJfb3BlcmFuZCIgIjxWU3I+IikpKV0KKysgICJ4PFZTdj5uYWJzPFZTcz4gJXgw LCV4MSIKKysgIFsoc2V0X2F0dHIgInR5cGUiICI8VlN0eXBlX3NpbXBsZT4iKQorKyAgIChzZXRf YXR0ciAiZnBfdHlwZSIgIjxWU2ZwdHlwZV9zaW1wbGU+IildKQorKworKyhkZWZpbmVfaW5zbiAi dnN4X3NtYXg8bW9kZT4zIgorKyAgWyhzZXQgKG1hdGNoX29wZXJhbmQ6VlNYX0IgMCAidnN4X3Jl Z2lzdGVyX29wZXJhbmQiICI9PFZTcj4sP3dhIikKKysgICAgICAgIChzbWF4OlZTWF9CIChtYXRj aF9vcGVyYW5kOlZTWF9CIDEgInZzeF9yZWdpc3Rlcl9vcGVyYW5kIiAiPFZTcj4sd2EiKQorKwkJ ICAgIChtYXRjaF9vcGVyYW5kOlZTWF9CIDIgInZzeF9yZWdpc3Rlcl9vcGVyYW5kIiAiPFZTcj4s d2EiKSkpXQogKyAgIlZFQ1RPUl9VTklUX1ZTWF9QICg8TU9ERT5tb2RlKSIKLSsgICJ4dm1heDxW U3M+ICV4MCwleDEsJXgyIgotKyAgWyhzZXRfYXR0ciAidHlwZSIgInZlY2NtcCIpXSkKKysgICJ4 PFZTdj5tYXg8VlNzPiAleDAsJXgxLCV4MiIKKysgIFsoc2V0X2F0dHIgInR5cGUiICI8VlN0eXBl X3NpbXBsZT4iKQorKyAgIChzZXRfYXR0ciAiZnBfdHlwZSIgIjxWU2ZwdHlwZV9zaW1wbGU+Iild KQogKwogKyhkZWZpbmVfaW5zbiAiKnZzeF9zbWluPG1vZGU+MyIKLSsgIFsoc2V0IChtYXRjaF9v cGVyYW5kOlZTWF9GIDAgInZzeF9yZWdpc3Rlcl9vcGVyYW5kIiAiPTxWU3I+IikKLSsgICAgICAg IChzbWluOlZTWF9GIChtYXRjaF9vcGVyYW5kOlZTWF9GIDEgInZzeF9yZWdpc3Rlcl9vcGVyYW5k IiAiPFZTcj4iKQotKwkJICAgIChtYXRjaF9vcGVyYW5kOlZTWF9GIDIgInZzeF9yZWdpc3Rlcl9v cGVyYW5kIiAiPFZTcj4iKSkpXQorKyAgWyhzZXQgKG1hdGNoX29wZXJhbmQ6VlNYX0IgMCAidnN4 X3JlZ2lzdGVyX29wZXJhbmQiICI9PFZTcj4sP3dhIikKKysgICAgICAgIChzbWluOlZTWF9CICht YXRjaF9vcGVyYW5kOlZTWF9CIDEgInZzeF9yZWdpc3Rlcl9vcGVyYW5kIiAiPFZTcj4sd2EiKQor KwkJICAgIChtYXRjaF9vcGVyYW5kOlZTWF9CIDIgInZzeF9yZWdpc3Rlcl9vcGVyYW5kIiAiPFZT cj4sd2EiKSkpXQogKyAgIlZFQ1RPUl9VTklUX1ZTWF9QICg8TU9ERT5tb2RlKSIKLSsgICJ4dm1p bjxWU3M+ICV4MCwleDEsJXgyIgotKyAgWyhzZXRfYXR0ciAidHlwZSIgInZlY2NtcCIpXSkKKysg ICJ4PFZTdj5taW48VlNzPiAleDAsJXgxLCV4MiIKKysgIFsoc2V0X2F0dHIgInR5cGUiICI8VlN0 eXBlX3NpbXBsZT4iKQorKyAgIChzZXRfYXR0ciAiZnBfdHlwZSIgIjxWU2ZwdHlwZV9zaW1wbGU+ IildKQogKwogKyhkZWZpbmVfaW5zbiAiKnZzeF9zcXJ0PG1vZGU+MiIKLSsgIFsoc2V0IChtYXRj aF9vcGVyYW5kOlZTWF9GIDAgInZzeF9yZWdpc3Rlcl9vcGVyYW5kIiAiPTxWU3I+IikKLSsgICAg ICAgIChzcXJ0OlZTWF9GIChtYXRjaF9vcGVyYW5kOlZTWF9GIDEgInZzeF9yZWdpc3Rlcl9vcGVy YW5kIiAiPFZTcj4iKSkpXQorKyAgWyhzZXQgKG1hdGNoX29wZXJhbmQ6VlNYX0IgMCAidnN4X3Jl Z2lzdGVyX29wZXJhbmQiICI9PFZTcj4sP3dhIikKKysgICAgICAgIChzcXJ0OlZTWF9CIChtYXRj aF9vcGVyYW5kOlZTWF9CIDEgInZzeF9yZWdpc3Rlcl9vcGVyYW5kIiAiPFZTcj4sd2EiKSkpXQor KyAgIlZFQ1RPUl9VTklUX1ZTWF9QICg8TU9ERT5tb2RlKSIKKysgICJ4PFZTdj5zcXJ0PFZTcz4g JXgwLCV4MSIKKysgIFsoc2V0X2F0dHIgInR5cGUiICI8VlN0eXBlX3NxcnQ+IikKKysgICAoc2V0 X2F0dHIgImZwX3R5cGUiICI8VlNmcHR5cGVfc3FydD4iKV0pCisrCisrKGRlZmluZV9pbnNuICJ2 c3hfcnNxcnRlPG1vZGU+MiIKKysgIFsoc2V0IChtYXRjaF9vcGVyYW5kOlZTWF9CIDAgInZzeF9y ZWdpc3Rlcl9vcGVyYW5kIiAiPTxWU3I+LD93YSIpCisrCSh1bnNwZWM6VlNYX0IgWyhtYXRjaF9v cGVyYW5kOlZTWF9CIDEgInZzeF9yZWdpc3Rlcl9vcGVyYW5kIiAiPFZTcj4sd2EiKV0KKysJCSAg ICAgIFVOU1BFQ19WU1hfWFZSU1FSVEUpKV0KKysgICJWRUNUT1JfVU5JVF9WU1hfUCAoPE1PREU+ bW9kZSkiCisrICAieDxWU3Y+cnNxcnRlPFZTcz4gJXgwLCV4MSIKKysgIFsoc2V0X2F0dHIgInR5 cGUiICI8VlN0eXBlX3NpbXBsZT4iKQorKyAgIChzZXRfYXR0ciAiZnBfdHlwZSIgIjxWU2ZwdHlw ZV9zaW1wbGU+IildKQorKworKyhkZWZpbmVfaW5zbiAidnN4X3RzcXJ0PG1vZGU+MiIKKysgIFso c2V0IChtYXRjaF9vcGVyYW5kOlZTWF9CIDAgInZzeF9yZWdpc3Rlcl9vcGVyYW5kIiAiPTxWU3I+ LD93YSIpCisrCSh1bnNwZWM6VlNYX0IgWyhtYXRjaF9vcGVyYW5kOlZTWF9CIDEgInZzeF9yZWdp c3Rlcl9vcGVyYW5kIiAiPFZTcj4sd2EiKV0KKysJCSAgICAgIFVOU1BFQ19WU1hfWFZUU1FSVCkp XQogKyAgIlZFQ1RPUl9VTklUX1ZTWF9QICg8TU9ERT5tb2RlKSIKLSsgICJ4dnNxcnQ8VlNzPiAl eDAsJXgxIgotKyAgWyhzZXRfYXR0ciAidHlwZSIgInZlY2ZkaXYiKV0pCisrICAieDxWU3Y+dHNx cnQ8VlNzPiAleDAsJXgxIgorKyAgWyhzZXRfYXR0ciAidHlwZSIgIjxWU3R5cGVfc2ltcGxlPiIp CisrICAgKHNldF9hdHRyICJmcF90eXBlIiAiPFZTZnB0eXBlX3NpbXBsZT4iKV0pCiArCiArOzsg RnVzZWQgdmVjdG9yIG11bHRpcGx5L2FkZCBpbnN0cnVjdGlvbnMKLSsoZGVmaW5lX2luc24gIip2 c3hfZm1hZGQ8bW9kZT40IgotKyAgWyhzZXQgKG1hdGNoX29wZXJhbmQ6VlNYX0YgMCAidnN4X3Jl Z2lzdGVyX29wZXJhbmQiICI9PFZTcj4sPFZTcj4iKQotKwkocGx1czpWU1hfRgotKwkgKG11bHQ6 VlNYX0YKLSsJICAobWF0Y2hfb3BlcmFuZDpWU1hfRiAxICJ2c3hfcmVnaXN0ZXJfb3BlcmFuZCIg IiU8VlNyPiw8VlNyPiIpCi0rCSAgKG1hdGNoX29wZXJhbmQ6VlNYX0YgMiAidnN4X3JlZ2lzdGVy X29wZXJhbmQiICI8VlNyPiwwIikpCi0rCSAobWF0Y2hfb3BlcmFuZDpWU1hfRiAzICJncGNfcmVn X29wZXJhbmQiICIwLDxWU3I+IikpKV0KLSsgICJWRUNUT1JfVU5JVF9WU1hfUCAoREZtb2RlKSAm JiBUQVJHRVRfRlVTRURfTUFERCIKKysKKys7OyBOb3RlIHdlIGhhdmUgYSBwYXR0ZXJuIGZvciB0 aGUgbXVsdGlwbHkvYWRkIG9wZXJhdGlvbnMgdGhhdCB1c2VzIHVuc3BlYyBhbmQKKys7OyBkb2Vz IG5vdCBjaGVjayAtbWZ1c2VkLW1hZGQgdG8gYWxsb3cgdXNlcnMgdG8gdXNlIHRoZXNlIG9wcyB3 aGVuIHRoZXkga25vdworKzs7IHRoZXkgd2FudCB0aGUgZnVzZWQgbXVsdGlwbHkvYWRkLgorKwor KyhkZWZpbmVfZXhwYW5kICJ2c3hfZm1hZGQ8bW9kZT40IgorKyAgWyhzZXQgKG1hdGNoX29wZXJh bmQ6VlNYX0IgMCAidnN4X3JlZ2lzdGVyX29wZXJhbmQiICIiKQorKwkocGx1czpWU1hfQgorKwkg KG11bHQ6VlNYX0IKKysJICAobWF0Y2hfb3BlcmFuZDpWU1hfQiAxICJ2c3hfcmVnaXN0ZXJfb3Bl cmFuZCIgIiIpCisrCSAgKG1hdGNoX29wZXJhbmQ6VlNYX0IgMiAidnN4X3JlZ2lzdGVyX29wZXJh bmQiICIiKSkKKysJIChtYXRjaF9vcGVyYW5kOlZTWF9CIDMgInZzeF9yZWdpc3Rlcl9vcGVyYW5k IiAiIikpKV0KKysgICJWRUNUT1JfVU5JVF9WU1hfUCAoPE1PREU+bW9kZSkiCisreworKyAgaWYg KCFUQVJHRVRfRlVTRURfTUFERCkKKysgICAgeworKyAgICAgIGVtaXRfaW5zbiAoZ2VuX3ZzeF9m bWFkZDxtb2RlPjRfMiAob3BlcmFuZHNbMF0sIG9wZXJhbmRzWzFdLCBvcGVyYW5kc1syXSwKKysJ CQkJCSBvcGVyYW5kc1szXSkpOworKyAgICAgIERPTkU7CisrICAgIH0KKyt9KQorKworKyhkZWZp bmVfaW5zbiAiKnZzeF9mbWFkZDxtb2RlPjRfMSIKKysgIFsoc2V0IChtYXRjaF9vcGVyYW5kOlZT WF9CIDAgInZzeF9yZWdpc3Rlcl9vcGVyYW5kIiAiPTxWU3I+LDxWU3I+LD93YSw/d2EiKQorKwko cGx1czpWU1hfQgorKwkgKG11bHQ6VlNYX0IKKysJICAobWF0Y2hfb3BlcmFuZDpWU1hfQiAxICJ2 c3hfcmVnaXN0ZXJfb3BlcmFuZCIgIiU8VlNyPiw8VlNyPix3YSx3YSIpCisrCSAgKG1hdGNoX29w ZXJhbmQ6VlNYX0IgMiAidnN4X3JlZ2lzdGVyX29wZXJhbmQiICI8VlNyPiwwLHdhLDAiKSkKKysJ IChtYXRjaF9vcGVyYW5kOlZTWF9CIDMgInZzeF9yZWdpc3Rlcl9vcGVyYW5kIiAiMCw8VlNyPiww LHdhIikpKV0KKysgICJWRUNUT1JfVU5JVF9WU1hfUCAoPE1PREU+bW9kZSkgJiYgVEFSR0VUX0ZV U0VEX01BREQiCiArICAiQAotKyAgIHh2bWFkZGE8VlNzPiAleDAsJXgxLCV4MgotKyAgIHh2bWFk ZG08VlNzPiAleDAsJXgxLCV4MyIKLSsgIFsoc2V0X2F0dHIgInR5cGUiICJ2ZWNmbG9hdCIpXSkK KysgICB4PFZTdj5tYWRkYTxWU3M+ICV4MCwleDEsJXgyCisrICAgeDxWU3Y+bWFkZG08VlNzPiAl eDAsJXgxLCV4MworKyAgIHg8VlN2Pm1hZGRhPFZTcz4gJXgwLCV4MSwleDIKKysgICB4PFZTdj5t YWRkbTxWU3M+ICV4MCwleDEsJXgzIgorKyAgWyhzZXRfYXR0ciAidHlwZSIgIjxWU3R5cGVfbXVs PiIpCisrICAgKHNldF9hdHRyICJmcF90eXBlIiAiPFZTZnB0eXBlX211bD4iKV0pCisrCisrKGRl ZmluZV9pbnNuICJ2c3hfZm1hZGQ8bW9kZT40XzIiCisrICBbKHNldCAobWF0Y2hfb3BlcmFuZDpW U1hfQiAwICJ2c3hfcmVnaXN0ZXJfb3BlcmFuZCIgIj08VlNyPiw8VlNyPiw/d2EsP3dhIikKKysJ KHVuc3BlYzpWU1hfQiBbKG1hdGNoX29wZXJhbmQ6VlNYX0IgMSAidnN4X3JlZ2lzdGVyX29wZXJh bmQiICIlPFZTcj4sPFZTcj4sd2Esd2EiKQorKwkJICAgICAgIChtYXRjaF9vcGVyYW5kOlZTWF9C IDIgInZzeF9yZWdpc3Rlcl9vcGVyYW5kIiAiPFZTcj4sMCx3YSwwIikKKysJCSAgICAgICAobWF0 Y2hfb3BlcmFuZDpWU1hfQiAzICJ2c3hfcmVnaXN0ZXJfb3BlcmFuZCIgIjAsPFZTcj4sMCx3YSIp XQorKwkJICAgICAgVU5TUEVDX1ZTWF9YVk1BREQpKV0KKysgICJWRUNUT1JfVU5JVF9WU1hfUCAo PE1PREU+bW9kZSkiCisrICAiQAorKyAgIHg8VlN2Pm1hZGRhPFZTcz4gJXgwLCV4MSwleDIKKysg ICB4PFZTdj5tYWRkbTxWU3M+ICV4MCwleDEsJXgzCisrICAgeDxWU3Y+bWFkZGE8VlNzPiAleDAs JXgxLCV4MgorKyAgIHg8VlN2Pm1hZGRtPFZTcz4gJXgwLCV4MSwleDMiCisrICBbKHNldF9hdHRy ICJ0eXBlIiAiPFZTdHlwZV9tdWw+IikKKysgICAoc2V0X2F0dHIgImZwX3R5cGUiICI8VlNmcHR5 cGVfbXVsPiIpXSkKKysKKysoZGVmaW5lX2V4cGFuZCAidnN4X2Ztc3ViPG1vZGU+NCIKKysgIFso c2V0IChtYXRjaF9vcGVyYW5kOlZTWF9CIDAgInZzeF9yZWdpc3Rlcl9vcGVyYW5kIiAiIikKKysJ KG1pbnVzOlZTWF9CCisrCSAobXVsdDpWU1hfQgorKwkgIChtYXRjaF9vcGVyYW5kOlZTWF9CIDEg InZzeF9yZWdpc3Rlcl9vcGVyYW5kIiAiIikKKysJICAobWF0Y2hfb3BlcmFuZDpWU1hfQiAyICJ2 c3hfcmVnaXN0ZXJfb3BlcmFuZCIgIiIpKQorKwkgKG1hdGNoX29wZXJhbmQ6VlNYX0IgMyAidnN4 X3JlZ2lzdGVyX29wZXJhbmQiICIiKSkpXQorKyAgIlZFQ1RPUl9VTklUX1ZTWF9QICg8TU9ERT5t b2RlKSIKKyt7CisrICBpZiAoIVRBUkdFVF9GVVNFRF9NQUREKQorKyAgICB7CisrICAgICAgZW1p dF9pbnNuIChnZW5fdnN4X2Ztc3ViPG1vZGU+NF8yIChvcGVyYW5kc1swXSwgb3BlcmFuZHNbMV0s IG9wZXJhbmRzWzJdLAorKwkJCQkJIG9wZXJhbmRzWzNdKSk7CisrICAgICAgRE9ORTsKKysgICAg fQorK30pCiArCi0rKGRlZmluZV9pbnNuICIqdnN4X2Ztc3ViPG1vZGU+NCIKLSsgIFsoc2V0ICht YXRjaF9vcGVyYW5kOlZTWF9GIDAgInZzeF9yZWdpc3Rlcl9vcGVyYW5kIiAiPTxWU3I+LDxWU3I+ IikKLSsJKG1pbnVzOlZTWF9GCi0rCSAobXVsdDpWU1hfRgotKwkgIChtYXRjaF9vcGVyYW5kOlZT WF9GIDEgInZzeF9yZWdpc3Rlcl9vcGVyYW5kIiAiJTxWU3I+LDxWU3I+IikKLSsJICAobWF0Y2hf b3BlcmFuZDpWU1hfRiAyICJ2c3hfcmVnaXN0ZXJfb3BlcmFuZCIgIjxWU3I+LDAiKSkKLSsJICht YXRjaF9vcGVyYW5kOlZTWF9GIDMgInZzeF9yZWdpc3Rlcl9vcGVyYW5kIiAiMCw8VlNyPiIpKSld Ci0rICAiVkVDVE9SX1VOSVRfVlNYX1AgKERGbW9kZSkgJiYgVEFSR0VUX0ZVU0VEX01BREQiCisr KGRlZmluZV9pbnNuICIqdnN4X2Ztc3ViPG1vZGU+NF8xIgorKyAgWyhzZXQgKG1hdGNoX29wZXJh bmQ6VlNYX0IgMCAidnN4X3JlZ2lzdGVyX29wZXJhbmQiICI9PFZTcj4sPFZTcj4sP3dhLD93YSIp CisrCShtaW51czpWU1hfQgorKwkgKG11bHQ6VlNYX0IKKysJICAobWF0Y2hfb3BlcmFuZDpWU1hf QiAxICJ2c3hfcmVnaXN0ZXJfb3BlcmFuZCIgIiU8VlNyPiw8VlNyPix3YSx3YSIpCisrCSAgKG1h dGNoX29wZXJhbmQ6VlNYX0IgMiAidnN4X3JlZ2lzdGVyX29wZXJhbmQiICI8VlNyPiwwLHdhLDAi KSkKKysJIChtYXRjaF9vcGVyYW5kOlZTWF9CIDMgInZzeF9yZWdpc3Rlcl9vcGVyYW5kIiAiMCw8 VlNyPiwwLHdhIikpKV0KKysgICJWRUNUT1JfVU5JVF9WU1hfUCAoPE1PREU+bW9kZSkgJiYgVEFS R0VUX0ZVU0VEX01BREQiCiArICAiQAotKyAgIHh2bXN1YmE8VlNzPiAleDAsJXgxLCV4MgotKyAg IHh2bXN1Ym08VlNzPiAleDAsJXgxLCV4MyIKLSsgIFsoc2V0X2F0dHIgInR5cGUiICJ2ZWNmbG9h dCIpXSkKKysgICB4PFZTdj5tc3ViYTxWU3M+ICV4MCwleDEsJXgyCisrICAgeDxWU3Y+bXN1Ym08 VlNzPiAleDAsJXgxLCV4MworKyAgIHg8VlN2Pm1zdWJhPFZTcz4gJXgwLCV4MSwleDIKKysgICB4 PFZTdj5tc3VibTxWU3M+ICV4MCwleDEsJXgzIgorKyAgWyhzZXRfYXR0ciAidHlwZSIgIjxWU3R5 cGVfbXVsPiIpCisrICAgKHNldF9hdHRyICJmcF90eXBlIiAiPFZTZnB0eXBlX211bD4iKV0pCisr CisrKGRlZmluZV9pbnNuICJ2c3hfZm1zdWI8bW9kZT40XzIiCisrICBbKHNldCAobWF0Y2hfb3Bl cmFuZDpWU1hfQiAwICJ2c3hfcmVnaXN0ZXJfb3BlcmFuZCIgIj08VlNyPiw8VlNyPiw/d2EsP3dh IikKKysJKHVuc3BlYzpWU1hfQiBbKG1hdGNoX29wZXJhbmQ6VlNYX0IgMSAidnN4X3JlZ2lzdGVy X29wZXJhbmQiICIlPFZTcj4sPFZTcj4sd2Esd2EiKQorKwkJICAgICAgIChtYXRjaF9vcGVyYW5k OlZTWF9CIDIgInZzeF9yZWdpc3Rlcl9vcGVyYW5kIiAiPFZTcj4sMCx3YSwwIikKKysJCSAgICAg ICAobWF0Y2hfb3BlcmFuZDpWU1hfQiAzICJ2c3hfcmVnaXN0ZXJfb3BlcmFuZCIgIjAsPFZTcj4s MCx3YSIpXQorKwkJICAgICAgVU5TUEVDX1ZTWF9YVk1TVUIpKV0KKysgICJWRUNUT1JfVU5JVF9W U1hfUCAoPE1PREU+bW9kZSkiCisrICAiQAorKyAgIHg8VlN2Pm1zdWJhPFZTcz4gJXgwLCV4MSwl eDIKKysgICB4PFZTdj5tc3VibTxWU3M+ICV4MCwleDEsJXgzCisrICAgeDxWU3Y+bXN1YmE8VlNz PiAleDAsJXgxLCV4MgorKyAgIHg8VlN2Pm1zdWJtPFZTcz4gJXgwLCV4MSwleDMiCisrICBbKHNl dF9hdHRyICJ0eXBlIiAiPFZTdHlwZV9tdWw+IikKKysgICAoc2V0X2F0dHIgImZwX3R5cGUiICI8 VlNmcHR5cGVfbXVsPiIpXSkKKysKKysoZGVmaW5lX2V4cGFuZCAidnN4X2ZubWFkZDxtb2RlPjQi CisrICBbKG1hdGNoX29wZXJhbmQ6VlNYX0IgMCAidnN4X3JlZ2lzdGVyX29wZXJhbmQiICIiKQor KyAgIChtYXRjaF9vcGVyYW5kOlZTWF9CIDEgInZzeF9yZWdpc3Rlcl9vcGVyYW5kIiAiIikKKysg ICAobWF0Y2hfb3BlcmFuZDpWU1hfQiAyICJ2c3hfcmVnaXN0ZXJfb3BlcmFuZCIgIiIpCisrICAg KG1hdGNoX29wZXJhbmQ6VlNYX0IgMyAidnN4X3JlZ2lzdGVyX29wZXJhbmQiICIiKV0KKysgICJW RUNUT1JfVU5JVF9WU1hfUCAoPE1PREU+bW9kZSkiCisreworKyAgaWYgKFRBUkdFVF9GVVNFRF9N QUREICYmIEhPTk9SX1NJR05FRF9aRVJPUyAoREZtb2RlKSkKKysgICAgeworKyAgICAgICBlbWl0 X2luc24gKGdlbl92c3hfZm5tYWRkPG1vZGU+NF8xIChvcGVyYW5kc1swXSwgb3BlcmFuZHNbMV0s CisrCQkJCQkgICBvcGVyYW5kc1syXSwgb3BlcmFuZHNbM10pKTsKKysgICAgICAgRE9ORTsKKysg ICAgfQorKyAgZWxzZSBpZiAoVEFSR0VUX0ZVU0VEX01BREQgJiYgIUhPTk9SX1NJR05FRF9aRVJP UyAoREZtb2RlKSkKKysgICAgeworKyAgICAgICBlbWl0X2luc24gKGdlbl92c3hfZm5tYWRkPG1v ZGU+NF8yIChvcGVyYW5kc1swXSwgb3BlcmFuZHNbMV0sCisrCQkJCQkgICBvcGVyYW5kc1syXSwg b3BlcmFuZHNbM10pKTsKKysgICAgICAgRE9ORTsKKysgICAgfQorKyAgZWxzZQorKyAgICB7Cisr ICAgICAgIGVtaXRfaW5zbiAoZ2VuX3ZzeF9mbm1hZGQ8bW9kZT40XzMgKG9wZXJhbmRzWzBdLCBv cGVyYW5kc1sxXSwKKysJCQkJCSAgIG9wZXJhbmRzWzJdLCBvcGVyYW5kc1szXSkpOworKyAgICAg ICBET05FOworKyAgICB9CisrfSkKICsKLSsoZGVmaW5lX2luc24gIip2c3hfZm5tYWRkPG1vZGU+ NF8xIgotKyAgWyhzZXQgKG1hdGNoX29wZXJhbmQ6VlNYX0YgMCAidnN4X3JlZ2lzdGVyX29wZXJh bmQiICI9PFZTcj4sPFZTcj4iKQotKwkobmVnOlZTWF9GCi0rCSAocGx1czpWU1hfRgotKwkgICht dWx0OlZTWF9GCi0rCSAgIChtYXRjaF9vcGVyYW5kOlZTWF9GIDEgInZzeF9yZWdpc3Rlcl9vcGVy YW5kIiAiJTxWU3I+LDxWU3I+IikKLSsJICAgKG1hdGNoX29wZXJhbmQ6VlNYX0YgMiAidnN4X3Jl Z2lzdGVyX29wZXJhbmQiICI8VlNyPiwwIikpCi0rCSAgKG1hdGNoX29wZXJhbmQ6VlNYX0YgMyAi dnN4X3JlZ2lzdGVyX29wZXJhbmQiICIwLDxWU3I+IikpKSldCi0rICAiVkVDVE9SX1VOSVRfVlNY X1AgKERGbW9kZSkgJiYgVEFSR0VUX0ZVU0VEX01BREQKKysoZGVmaW5lX2luc24gInZzeF9mbm1h ZGQ8bW9kZT40XzEiCisrICBbKHNldCAobWF0Y2hfb3BlcmFuZDpWU1hfQiAwICJ2c3hfcmVnaXN0 ZXJfb3BlcmFuZCIgIj08VlNyPiw8VlNyPiw/d2EsP3dhIikKKysJKG5lZzpWU1hfQgorKwkgKHBs dXM6VlNYX0IKKysJICAobXVsdDpWU1hfQgorKwkgICAobWF0Y2hfb3BlcmFuZDpWU1hfQiAxICJ2 c3hfcmVnaXN0ZXJfb3BlcmFuZCIgIjxWU3I+LDxWU3I+LHdhLHdhIikKKysJICAgKG1hdGNoX29w ZXJhbmQ6VlNYX0IgMiAidnN4X3JlZ2lzdGVyX29wZXJhbmQiICI8VlNyPiwwLHdhLDAiKSkKKysJ ICAobWF0Y2hfb3BlcmFuZDpWU1hfQiAzICJ2c3hfcmVnaXN0ZXJfb3BlcmFuZCIgIjAsPFZTcj4s MCx3YSIpKSkpXQorKyAgIlZFQ1RPUl9VTklUX1ZTWF9QICg8TU9ERT5tb2RlKSAmJiBUQVJHRVRf RlVTRURfTUFERAogKyAgICYmIEhPTk9SX1NJR05FRF9aRVJPUyAoREZtb2RlKSIKICsgICJACi0r ICAgeHZubWFkZGE8VlNzPiAleDAsJXgxLCV4MgotKyAgIHh2bm1hZGRtPFZTcz4gJXgwLCV4MSwl eDMiCi0rICBbKHNldF9hdHRyICJ0eXBlIiAidmVjZmxvYXQiKV0pCi0rCi0rKGRlZmluZV9pbnNu ICIqdnN4X2ZubWFkZDxtb2RlPjRfMiIKLSsgIFsoc2V0IChtYXRjaF9vcGVyYW5kOlZTWF9GIDAg InZzeF9yZWdpc3Rlcl9vcGVyYW5kIiAiPTxWU3I+LDxWU3I+IikKLSsJKG1pbnVzOlZTWF9GCi0r CSAobXVsdDpWU1hfRgotKwkgIChuZWc6VlNYX0YKLSsJICAgKG1hdGNoX29wZXJhbmQ6VlNYX0Yg MSAiZ3BjX3JlZ19vcGVyYW5kIiAiJTxWU3I+LDxWU3I+IikpCi0rCSAgKG1hdGNoX29wZXJhbmQ6 VlNYX0YgMiAiZ3BjX3JlZ19vcGVyYW5kIiAiPFZTcj4sMCIpKQotKwkgKG1hdGNoX29wZXJhbmQ6 VlNYX0YgMyAidnN4X3JlZ2lzdGVyX29wZXJhbmQiICIwLDxWU3I+IikpKV0KLSsgICJWRUNUT1Jf VU5JVF9WU1hfUCAoREZtb2RlKSAmJiBUQVJHRVRfRlVTRURfTUFERAorKyAgIHg8VlN2Pm5tYWRk YTxWU3M+ICV4MCwleDEsJXgyCisrICAgeDxWU3Y+bm1hZGRtPFZTcz4gJXgwLCV4MSwleDMKKysg ICB4PFZTdj5ubWFkZGE8VlNzPiAleDAsJXgxLCV4MgorKyAgIHg8VlN2Pm5tYWRkbTxWU3M+ICV4 MCwleDEsJXgzIgorKyAgWyhzZXRfYXR0ciAidHlwZSIgIjxWU3R5cGVfbXVsPiIpCisrICAgKHNl dF9hdHRyICJmcF90eXBlIiAiPFZTZnB0eXBlX211bD4iKV0pCisrCisrKGRlZmluZV9pbnNuICJ2 c3hfZm5tYWRkPG1vZGU+NF8yIgorKyAgWyhzZXQgKG1hdGNoX29wZXJhbmQ6VlNYX0IgMCAidnN4 X3JlZ2lzdGVyX29wZXJhbmQiICI9PFZTcj4sPFZTcj4sP3dhLD93YSIpCisrCShtaW51czpWU1hf QgorKwkgKG11bHQ6VlNYX0IKKysJICAobmVnOlZTWF9CCisrCSAgIChtYXRjaF9vcGVyYW5kOlZT WF9CIDEgImdwY19yZWdfb3BlcmFuZCIgIjxWU3I+LDxWU3I+LHdhLHdhIikpCisrCSAgKG1hdGNo X29wZXJhbmQ6VlNYX0IgMiAiZ3BjX3JlZ19vcGVyYW5kIiAiPFZTcj4sMCx3YSwwIikpCisrCSAo bWF0Y2hfb3BlcmFuZDpWU1hfQiAzICJ2c3hfcmVnaXN0ZXJfb3BlcmFuZCIgIjAsPFZTcj4sMCx3 YSIpKSldCisrICAiVkVDVE9SX1VOSVRfVlNYX1AgKDxNT0RFPm1vZGUpICYmIFRBUkdFVF9GVVNF RF9NQURECiArICAgJiYgIUhPTk9SX1NJR05FRF9aRVJPUyAoREZtb2RlKSIKICsgICJACi0rICAg eHZubWFkZGE8VlNzPiAleDAsJXgxLCV4MgotKyAgIHh2bm1hZGRtPFZTcz4gJXgwLCV4MSwleDMi Ci0rICBbKHNldF9hdHRyICJ0eXBlIiAidmVjZmxvYXQiKV0pCisrICAgeDxWU3Y+bm1hZGRhPFZT cz4gJXgwLCV4MSwleDIKKysgICB4PFZTdj5ubWFkZG08VlNzPiAleDAsJXgxLCV4MworKyAgIHg8 VlN2Pm5tYWRkYTxWU3M+ICV4MCwleDEsJXgyCisrICAgeDxWU3Y+bm1hZGRtPFZTcz4gJXgwLCV4 MSwleDMiCisrICBbKHNldF9hdHRyICJ0eXBlIiAiPFZTdHlwZV9tdWw+IikKKysgICAoc2V0X2F0 dHIgImZwX3R5cGUiICI8VlNmcHR5cGVfbXVsPiIpXSkKKysKKysoZGVmaW5lX2luc24gInZzeF9m bm1hZGQ8bW9kZT40XzMiCisrICBbKHNldCAobWF0Y2hfb3BlcmFuZDpWU1hfQiAwICJ2c3hfcmVn aXN0ZXJfb3BlcmFuZCIgIj08VlNyPiw8VlNyPiw/d2EsP3dhIikKKysJKHVuc3BlYzpWU1hfQiBb KG1hdGNoX29wZXJhbmQ6VlNYX0IgMSAidnN4X3JlZ2lzdGVyX29wZXJhbmQiICI8VlNyPiw8VlNy Pix3YSx3YSIpCisrCQkgICAgICAgKG1hdGNoX29wZXJhbmQ6VlNYX0IgMiAidnN4X3JlZ2lzdGVy X29wZXJhbmQiICI8VlNyPiwwLHdhLDAiKQorKwkJICAgICAgIChtYXRjaF9vcGVyYW5kOlZTWF9C IDMgInZzeF9yZWdpc3Rlcl9vcGVyYW5kIiAiMCw8VlNyPiwwLHdhIildCisrCQkgICAgICBVTlNQ RUNfVlNYX1hWTk1BREQpKV0KKysgICJWRUNUT1JfVU5JVF9WU1hfUCAoPE1PREU+bW9kZSkiCisr ICAiQAorKyAgIHg8VlN2Pm5tYWRkYTxWU3M+ICV4MCwleDEsJXgyCisrICAgeDxWU3Y+bm1hZGRt PFZTcz4gJXgwLCV4MSwleDMKKysgICB4PFZTdj5ubWFkZGE8VlNzPiAleDAsJXgxLCV4MgorKyAg IHg8VlN2Pm5tYWRkbTxWU3M+ICV4MCwleDEsJXgzIgorKyAgWyhzZXRfYXR0ciAidHlwZSIgIjxW U3R5cGVfbXVsPiIpCisrICAgKHNldF9hdHRyICJmcF90eXBlIiAiPFZTZnB0eXBlX211bD4iKV0p CisrCisrKGRlZmluZV9leHBhbmQgInZzeF9mbm1zdWI8bW9kZT40IgorKyAgWyhtYXRjaF9vcGVy YW5kOlZTWF9CIDAgInZzeF9yZWdpc3Rlcl9vcGVyYW5kIiAiIikKKysgICAobWF0Y2hfb3BlcmFu ZDpWU1hfQiAxICJ2c3hfcmVnaXN0ZXJfb3BlcmFuZCIgIiIpCisrICAgKG1hdGNoX29wZXJhbmQ6 VlNYX0IgMiAidnN4X3JlZ2lzdGVyX29wZXJhbmQiICIiKQorKyAgIChtYXRjaF9vcGVyYW5kOlZT WF9CIDMgInZzeF9yZWdpc3Rlcl9vcGVyYW5kIiAiIildCisrICAiVkVDVE9SX1VOSVRfVlNYX1Ag KDxNT0RFPm1vZGUpIgorK3sKKysgIGlmIChUQVJHRVRfRlVTRURfTUFERCAmJiBIT05PUl9TSUdO RURfWkVST1MgKERGbW9kZSkpCisrICAgIHsKKysgICAgICAgZW1pdF9pbnNuIChnZW5fdnN4X2Zu bXN1Yjxtb2RlPjRfMSAob3BlcmFuZHNbMF0sIG9wZXJhbmRzWzFdLAorKwkJCQkJICAgb3BlcmFu ZHNbMl0sIG9wZXJhbmRzWzNdKSk7CisrICAgICAgIERPTkU7CisrICAgIH0KKysgIGVsc2UgaWYg KFRBUkdFVF9GVVNFRF9NQUREICYmICFIT05PUl9TSUdORURfWkVST1MgKERGbW9kZSkpCisrICAg IHsKKysgICAgICAgZW1pdF9pbnNuIChnZW5fdnN4X2ZubXN1Yjxtb2RlPjRfMiAob3BlcmFuZHNb MF0sIG9wZXJhbmRzWzFdLAorKwkJCQkJICAgb3BlcmFuZHNbMl0sIG9wZXJhbmRzWzNdKSk7Cisr ICAgICAgIERPTkU7CisrICAgIH0KKysgIGVsc2UKKysgICAgeworKyAgICAgICBlbWl0X2luc24g KGdlbl92c3hfZm5tc3ViPG1vZGU+NF8zIChvcGVyYW5kc1swXSwgb3BlcmFuZHNbMV0sCisrCQkJ CQkgICBvcGVyYW5kc1syXSwgb3BlcmFuZHNbM10pKTsKKysgICAgICAgRE9ORTsKKysgICAgfQor K30pCiArCi0rKGRlZmluZV9pbnNuICIqdnN4X2ZubXN1Yjxtb2RlPjRfMSIKLSsgIFsoc2V0ICht YXRjaF9vcGVyYW5kOlZTWF9GIDAgInZzeF9yZWdpc3Rlcl9vcGVyYW5kIiAiPTxWU3I+LDxWU3I+ IikKLSsJKG5lZzpWU1hfRgotKwkgKG1pbnVzOlZTWF9GCi0rCSAgKG11bHQ6VlNYX0YKLSsJICAg KG1hdGNoX29wZXJhbmQ6VlNYX0YgMSAidnN4X3JlZ2lzdGVyX29wZXJhbmQiICIlPFZTcj4sPFZT cj4iKQotKwkgICAobWF0Y2hfb3BlcmFuZDpWU1hfRiAyICJ2c3hfcmVnaXN0ZXJfb3BlcmFuZCIg IjxWU3I+LDAiKSkKLSsJICAobWF0Y2hfb3BlcmFuZDpWU1hfRiAzICJ2c3hfcmVnaXN0ZXJfb3Bl cmFuZCIgIjAsPFZTcj4iKSkpKV0KLSsgICJWRUNUT1JfVU5JVF9WU1hfUCAoREZtb2RlKSAmJiBU QVJHRVRfRlVTRURfTUFERAorKyhkZWZpbmVfaW5zbiAidnN4X2ZubXN1Yjxtb2RlPjRfMSIKKysg IFsoc2V0IChtYXRjaF9vcGVyYW5kOlZTWF9CIDAgInZzeF9yZWdpc3Rlcl9vcGVyYW5kIiAiPTxW U3I+LDxWU3I+LD93YSw/d2EiKQorKwkobmVnOlZTWF9CCisrCSAobWludXM6VlNYX0IKKysJICAo bXVsdDpWU1hfQgorKwkgICAobWF0Y2hfb3BlcmFuZDpWU1hfQiAxICJ2c3hfcmVnaXN0ZXJfb3Bl cmFuZCIgIiU8VlNyPiw8VlNyPix3YSx3YSIpCisrCSAgIChtYXRjaF9vcGVyYW5kOlZTWF9CIDIg InZzeF9yZWdpc3Rlcl9vcGVyYW5kIiAiPFZTcj4sMCx3YSwwIikpCisrCSAgKG1hdGNoX29wZXJh bmQ6VlNYX0IgMyAidnN4X3JlZ2lzdGVyX29wZXJhbmQiICIwLDxWU3I+LDAsd2EiKSkpKV0KKysg ICJWRUNUT1JfVU5JVF9WU1hfUCAoPE1PREU+bW9kZSkgJiYgVEFSR0VUX0ZVU0VEX01BREQKICsg ICAmJiBIT05PUl9TSUdORURfWkVST1MgKERGbW9kZSkiCiArICAiQAotKyAgIHh2bm1zdWJhPFZT cz4gJXgwLCV4MSwleDIKLSsgICB4dm5tc3VibTxWU3M+ICV4MCwleDEsJXgzIgotKyAgWyhzZXRf YXR0ciAidHlwZSIgInZlY2Zsb2F0IildKQotKwotKyhkZWZpbmVfaW5zbiAiKnZzeF9mbm1zdWI8 bW9kZT40XzIiCi0rICBbKHNldCAobWF0Y2hfb3BlcmFuZDpWU1hfRiAwICJ2c3hfcmVnaXN0ZXJf b3BlcmFuZCIgIj08VlNyPiw8VlNyPiIpCi0rCShtaW51czpWU1hfRgotKwkgKG1hdGNoX29wZXJh bmQ6VlNYX0YgMyAidnN4X3JlZ2lzdGVyX29wZXJhbmQiICIwLDxWU3I+IikKLSsJIChtdWx0OlZT WF9GCi0rCSAgKG1hdGNoX29wZXJhbmQ6VlNYX0YgMSAidnN4X3JlZ2lzdGVyX29wZXJhbmQiICIl PFZTcj4sPFZTcj4iKQotKwkgIChtYXRjaF9vcGVyYW5kOlZTWF9GIDIgInZzeF9yZWdpc3Rlcl9v cGVyYW5kIiAiPFZTcj4sMCIpKSkpXQotKyAgIlZFQ1RPUl9VTklUX1ZTWF9QIChERm1vZGUpICYm IFRBUkdFVF9GVVNFRF9NQURECisrICAgeDxWU3Y+bm1zdWJhPFZTcz4gJXgwLCV4MSwleDIKKysg ICB4PFZTdj5ubXN1Ym08VlNzPiAleDAsJXgxLCV4MworKyAgIHg8VlN2Pm5tc3ViYTxWU3M+ICV4 MCwleDEsJXgyCisrICAgeDxWU3Y+bm1zdWJtPFZTcz4gJXgwLCV4MSwleDMiCisrICBbKHNldF9h dHRyICJ0eXBlIiAiPFZTdHlwZV9tdWw+IikKKysgICAoc2V0X2F0dHIgImZwX3R5cGUiICI8VlNm cHR5cGVfbXVsPiIpXSkKKysKKysoZGVmaW5lX2luc24gInZzeF9mbm1zdWI8bW9kZT40XzIiCisr ICBbKHNldCAobWF0Y2hfb3BlcmFuZDpWU1hfQiAwICJ2c3hfcmVnaXN0ZXJfb3BlcmFuZCIgIj08 VlNyPiw8VlNyPiw/d2EsP3dhIikKKysJKG1pbnVzOlZTWF9CCisrCSAobWF0Y2hfb3BlcmFuZDpW U1hfQiAzICJ2c3hfcmVnaXN0ZXJfb3BlcmFuZCIgIjAsPFZTcj4sMCx3YSIpCisrCSAobXVsdDpW U1hfQgorKwkgIChtYXRjaF9vcGVyYW5kOlZTWF9CIDEgInZzeF9yZWdpc3Rlcl9vcGVyYW5kIiAi JTxWU3I+LDxWU3I+LHdhLHdhIikKKysJICAobWF0Y2hfb3BlcmFuZDpWU1hfQiAyICJ2c3hfcmVn aXN0ZXJfb3BlcmFuZCIgIjxWU3I+LDAsd2EsMCIpKSkpXQorKyAgIlZFQ1RPUl9VTklUX1ZTWF9Q ICg8TU9ERT5tb2RlKSAmJiBUQVJHRVRfRlVTRURfTUFERAogKyAgICYmICFIT05PUl9TSUdORURf WkVST1MgKERGbW9kZSkiCiArICAiQAotKyAgIHh2bm1zdWJhPFZTcz4gJXgwLCV4MSwleDIKLSsg ICB4dm5tc3VibTxWU3M+ICV4MCwleDEsJXgzIgotKyAgWyhzZXRfYXR0ciAidHlwZSIgInZlY2Zs b2F0IildKQotKwotKzs7IFZlY3RvciBjb25kaXRpb25hbCBleHByZXNzaW9ucwotKyhkZWZpbmVf aW5zbiAiKnZzeF9lcTxtb2RlPiIKLSsgIFsoc2V0IChtYXRjaF9vcGVyYW5kOlZTWF9GIDAgInZz eF9yZWdpc3Rlcl9vcGVyYW5kIiAiPTxWU3I+IikKLSsJKGVxOlZTWF9GIChtYXRjaF9vcGVyYW5k OlZTWF9GIDEgInZzeF9yZWdpc3Rlcl9vcGVyYW5kIiAiPFZTcj4iKQotKwkJICAobWF0Y2hfb3Bl cmFuZDpWU1hfRiAyICJ2c3hfcmVnaXN0ZXJfb3BlcmFuZCIgIjxWU3I+IikpKV0KKysgICB4PFZT dj5ubXN1YmE8VlNzPiAleDAsJXgxLCV4MgorKyAgIHg8VlN2Pm5tc3VibTxWU3M+ICV4MCwleDEs JXgzCisrICAgeDxWU3Y+bm1zdWJhPFZTcz4gJXgwLCV4MSwleDIKKysgICB4PFZTdj5ubXN1Ym08 VlNzPiAleDAsJXgxLCV4MyIKKysgIFsoc2V0X2F0dHIgInR5cGUiICI8VlN0eXBlX211bD4iKQor KyAgIChzZXRfYXR0ciAiZnBfdHlwZSIgIjxWU2ZwdHlwZV9tdWw+IildKQorKworKyhkZWZpbmVf aW5zbiAidnN4X2ZubXN1Yjxtb2RlPjRfMyIKKysgIFsoc2V0IChtYXRjaF9vcGVyYW5kOlZTWF9C IDAgInZzeF9yZWdpc3Rlcl9vcGVyYW5kIiAiPTxWU3I+LDxWU3I+LD93YSw/d2EiKQorKwkodW5z cGVjOlZTWF9CIFsobWF0Y2hfb3BlcmFuZDpWU1hfQiAxICJ2c3hfcmVnaXN0ZXJfb3BlcmFuZCIg IiU8VlNyPiw8VlNyPix3YSx3YSIpCisrCQkgICAgICAgKG1hdGNoX29wZXJhbmQ6VlNYX0IgMiAi dnN4X3JlZ2lzdGVyX29wZXJhbmQiICI8VlNyPiwwLHdhLDAiKQorKwkJICAgICAgIChtYXRjaF9v cGVyYW5kOlZTWF9CIDMgInZzeF9yZWdpc3Rlcl9vcGVyYW5kIiAiMCw8VlNyPiwwLHdhIildCisr CQkgICAgICBVTlNQRUNfVlNYX1hWTk1TVUIpKV0KKysgICJWRUNUT1JfVU5JVF9WU1hfUCAoPE1P REU+bW9kZSkiCisrICAiQAorKyAgIHg8VlN2Pm5tc3ViYTxWU3M+ICV4MCwleDEsJXgyCisrICAg eDxWU3Y+bm1zdWJtPFZTcz4gJXgwLCV4MSwleDMKKysgICB4PFZTdj5ubXN1YmE8VlNzPiAleDAs JXgxLCV4MgorKyAgIHg8VlN2Pm5tc3VibTxWU3M+ICV4MCwleDEsJXgzIgorKyAgWyhzZXRfYXR0 ciAidHlwZSIgIjxWU3R5cGVfbXVsPiIpCisrICAgKHNldF9hdHRyICJmcF90eXBlIiAiPFZTZnB0 eXBlX211bD4iKV0pCisrCisrOzsgVmVjdG9yIGNvbmRpdGlvbmFsIGV4cHJlc3Npb25zIChubyBz Y2FsYXIgdmVyc2lvbiBmb3IgdGhlc2UgaW5zdHJ1Y3Rpb25zKQorKyhkZWZpbmVfaW5zbiAidnN4 X2VxPG1vZGU+IgorKyAgWyhzZXQgKG1hdGNoX29wZXJhbmQ6VlNYX0YgMCAidnN4X3JlZ2lzdGVy X29wZXJhbmQiICI9PFZTcj4sP3dhIikKKysJKGVxOlZTWF9GIChtYXRjaF9vcGVyYW5kOlZTWF9G IDEgInZzeF9yZWdpc3Rlcl9vcGVyYW5kIiAiPFZTcj4sd2EiKQorKwkJICAobWF0Y2hfb3BlcmFu ZDpWU1hfRiAyICJ2c3hfcmVnaXN0ZXJfb3BlcmFuZCIgIjxWU3I+LHdhIikpKV0KICsgICJWRUNU T1JfVU5JVF9WU1hfUCAoPE1PREU+bW9kZSkiCiArICAieHZjbXBlcTxWU3M+ICV4MCwleDEsJXgy IgotKyAgWyhzZXRfYXR0ciAidHlwZSIgInZlY2NtcCIpXSkKKysgIFsoc2V0X2F0dHIgInR5cGUi ICI8VlN0eXBlX3NpbXBsZT4iKQorKyAgIChzZXRfYXR0ciAiZnBfdHlwZSIgIjxWU2ZwdHlwZV9z aW1wbGU+IildKQogKwotKyhkZWZpbmVfaW5zbiAiKnZzeF9ndDxtb2RlPiIKLSsgIFsoc2V0ICht YXRjaF9vcGVyYW5kOlZTWF9GIDAgInZzeF9yZWdpc3Rlcl9vcGVyYW5kIiAiPTxWU3I+IikKLSsJ KGd0OlZTWF9GIChtYXRjaF9vcGVyYW5kOlZTWF9GIDEgInZzeF9yZWdpc3Rlcl9vcGVyYW5kIiAi PFZTcj4iKQotKwkJICAobWF0Y2hfb3BlcmFuZDpWU1hfRiAyICJ2c3hfcmVnaXN0ZXJfb3BlcmFu ZCIgIjxWU3I+IikpKV0KKysoZGVmaW5lX2luc24gInZzeF9ndDxtb2RlPiIKKysgIFsoc2V0ICht YXRjaF9vcGVyYW5kOlZTWF9GIDAgInZzeF9yZWdpc3Rlcl9vcGVyYW5kIiAiPTxWU3I+LD93YSIp CisrCShndDpWU1hfRiAobWF0Y2hfb3BlcmFuZDpWU1hfRiAxICJ2c3hfcmVnaXN0ZXJfb3BlcmFu ZCIgIjxWU3I+LHdhIikKKysJCSAgKG1hdGNoX29wZXJhbmQ6VlNYX0YgMiAidnN4X3JlZ2lzdGVy X29wZXJhbmQiICI8VlNyPix3YSIpKSldCiArICAiVkVDVE9SX1VOSVRfVlNYX1AgKDxNT0RFPm1v ZGUpIgogKyAgInh2Y21wZ3Q8VlNzPiAleDAsJXgxLCV4MiIKLSsgIFsoc2V0X2F0dHIgInR5cGUi ICJ2ZWNjbXAiKV0pCisrICBbKHNldF9hdHRyICJ0eXBlIiAiPFZTdHlwZV9zaW1wbGU+IikKKysg ICAoc2V0X2F0dHIgImZwX3R5cGUiICI8VlNmcHR5cGVfc2ltcGxlPiIpXSkKICsKICsoZGVmaW5l X2luc24gIip2c3hfZ2U8bW9kZT4iCi0rICBbKHNldCAobWF0Y2hfb3BlcmFuZDpWU1hfRiAwICJ2 c3hfcmVnaXN0ZXJfb3BlcmFuZCIgIj08VlNyPiIpCi0rCShnZTpWU1hfRiAobWF0Y2hfb3BlcmFu ZDpWU1hfRiAxICJ2c3hfcmVnaXN0ZXJfb3BlcmFuZCIgIjxWU3I+IikKLSsJCSAgKG1hdGNoX29w ZXJhbmQ6VlNYX0YgMiAidnN4X3JlZ2lzdGVyX29wZXJhbmQiICI8VlNyPiIpKSldCisrICBbKHNl dCAobWF0Y2hfb3BlcmFuZDpWU1hfRiAwICJ2c3hfcmVnaXN0ZXJfb3BlcmFuZCIgIj08VlNyPiw/ d2EiKQorKwkoZ2U6VlNYX0YgKG1hdGNoX29wZXJhbmQ6VlNYX0YgMSAidnN4X3JlZ2lzdGVyX29w ZXJhbmQiICI8VlNyPix3YSIpCisrCQkgIChtYXRjaF9vcGVyYW5kOlZTWF9GIDIgInZzeF9yZWdp c3Rlcl9vcGVyYW5kIiAiPFZTcj4sd2EiKSkpXQogKyAgIlZFQ1RPUl9VTklUX1ZTWF9QICg8TU9E RT5tb2RlKSIKICsgICJ4dmNtcGdlPFZTcz4gJXgwLCV4MSwleDIiCi0rICBbKHNldF9hdHRyICJ0 eXBlIiAidmVjY21wIildKQorKyAgWyhzZXRfYXR0ciAidHlwZSIgIjxWU3R5cGVfc2ltcGxlPiIp CisrICAgKHNldF9hdHRyICJmcF90eXBlIiAiPFZTZnB0eXBlX3NpbXBsZT4iKV0pCiArCiArKGRl ZmluZV9pbnNuICJ2c3hfdnNlbDxtb2RlPiIKLSsgIFsoc2V0IChtYXRjaF9vcGVyYW5kOlZTWF9G IDAgInZzeF9yZWdpc3Rlcl9vcGVyYW5kIiAiPTxWU3I+IikKLSsJKGlmX3RoZW5fZWxzZTpWU1hf RiAobmUgKG1hdGNoX29wZXJhbmQ6VlNYX0YgMSAidnN4X3JlZ2lzdGVyX29wZXJhbmQiICI8VlNy PiIpCisrICBbKHNldCAobWF0Y2hfb3BlcmFuZDpWU1hfRiAwICJ2c3hfcmVnaXN0ZXJfb3BlcmFu ZCIgIj08VlNyPiw/d2EiKQorKwkoaWZfdGhlbl9lbHNlOlZTWF9GIChuZSAobWF0Y2hfb3BlcmFu ZDpWU1hfRiAxICJ2c3hfcmVnaXN0ZXJfb3BlcmFuZCIgIjxWU3I+LHdhIikKICsJCQkJKGNvbnN0 X2ludCAwKSkKLSsJCQkgICAgKG1hdGNoX29wZXJhbmQ6VlNYX0YgMiAidnN4X3JlZ2lzdGVyX29w ZXJhbmQiICI8VlNyPiIpCi0rCQkJICAgIChtYXRjaF9vcGVyYW5kOlZTWF9GIDMgInZzeF9yZWdp c3Rlcl9vcGVyYW5kIiAiPFZTcj4iKSkpXQorKwkJCSAgICAobWF0Y2hfb3BlcmFuZDpWU1hfRiAy ICJ2c3hfcmVnaXN0ZXJfb3BlcmFuZCIgIjxWU3I+LHdhIikKKysJCQkgICAgKG1hdGNoX29wZXJh bmQ6VlNYX0YgMyAidnN4X3JlZ2lzdGVyX29wZXJhbmQiICI8VlNyPix3YSIpKSldCiArICAiVkVD VE9SX1VOSVRfVlNYX1AgKDxNT0RFPm1vZGUpIgogKyAgInh4c2VsICV4MCwleDMsJXgyLCV4MSIK ICsgIFsoc2V0X2F0dHIgInR5cGUiICJ2ZWNwZXJtIildKQogKwogKzs7IENvcHkgc2lnbgotKyhk ZWZpbmVfaW5zbiAiKnZzeF9jb3B5c2lnbjxtb2RlPjMiCi0rICBbKHNldCAobWF0Y2hfb3BlcmFu ZDpWU1hfRiAwICJ2c3hfcmVnaXN0ZXJfb3BlcmFuZCIgIj08VlNyPiIpCi0rCShpZl90aGVuX2Vs c2U6VlNYX0YKLSsJIChnZTpWU1hfRiAobWF0Y2hfb3BlcmFuZDpWU1hfRiAyICJ2c3hfcmVnaXN0 ZXJfb3BlcmFuZCIgIjxWU3I+IikKKysoZGVmaW5lX2luc24gInZzeF9jb3B5c2lnbjxtb2RlPjMi CisrICBbKHNldCAobWF0Y2hfb3BlcmFuZDpWU1hfQiAwICJ2c3hfcmVnaXN0ZXJfb3BlcmFuZCIg Ij08VlNyPiw/d2EiKQorKwkoaWZfdGhlbl9lbHNlOlZTWF9CCisrCSAoZ2U6VlNYX0IgKG1hdGNo X29wZXJhbmQ6VlNYX0IgMiAidnN4X3JlZ2lzdGVyX29wZXJhbmQiICI8VlNyPix3YSIpCiArCQkg ICAoY29uc3RfaW50IDApKQotKwkgKGFiczpWU1hfRiAobWF0Y2hfb3BlcmFuZDpWU1hfRiAxICJ2 c3hfcmVnaXN0ZXJfb3BlcmFuZCIgIjxWU3I+IikpCi0rCSAobmVnOlZTWF9GIChhYnM6VlNYX0Yg KG1hdGNoX2R1cCAxKSkpKSldCisrCSAoYWJzOlZTWF9CIChtYXRjaF9vcGVyYW5kOlZTWF9CIDEg InZzeF9yZWdpc3Rlcl9vcGVyYW5kIiAiPFZTcj4sd2EiKSkKKysJIChuZWc6VlNYX0IgKGFiczpW U1hfQiAobWF0Y2hfZHVwIDEpKSkpKV0KICsgICJWRUNUT1JfVU5JVF9WU1hfUCAoPE1PREU+bW9k ZSkiCi0rICAieHZjcHNnbjxWU3M+ICV4MCwleDIsJXgxIgotKyAgWyhzZXRfYXR0ciAidHlwZSIg InZlY3NpbXBsZSIpXSkKKysgICJ4PFZTdj5jcHNnbjxWU3M+ICV4MCwleDIsJXgxIgorKyAgWyhz ZXRfYXR0ciAidHlwZSIgIjxWU3R5cGVfc2ltcGxlPiIpCisrICAgKHNldF9hdHRyICJmcF90eXBl IiAiPFZTZnB0eXBlX3NpbXBsZT4iKV0pCiArCi0rKGRlZmluZV9pbnNuICIqdnN4X2Z0cnVuYzxt b2RlPjIiCi0rICBbKHNldCAobWF0Y2hfb3BlcmFuZDpWU1hfRiAwICJ2c3hfcmVnaXN0ZXJfb3Bl cmFuZCIgIj08VlNyPiIpCi0rICAJKGZpeDpWU1hfRiAobWF0Y2hfb3BlcmFuZDpWU1hfRiAxICJ2 c3hfcmVnaXN0ZXJfb3BlcmFuZCIgIjxWU3I+IikpKV0KKys7OyBGb3IgdGhlIGNvbnZlcnNpb25z LCBsaW1pdCB0aGUgcmVnaXN0ZXIgY2xhc3MgZm9yIHRoZSBpbnRlZ2VyIHZhbHVlIHRvIGJlCisr OzsgdGhlIGZwcnMgYmVjYXVzZSB3ZSBkb24ndCB3YW50IHRvIGFkZCB0aGUgYWx0aXZlYyByZWdp c3RlcnMgdG8gbW92ZGkvbW92c2kuCisrOzsgRm9yIHRoZSB1bnNpZ25lZCB0ZXN0cywgdGhlcmUg aXNuJ3QgYSBnZW5lcmljIGRvdWJsZSAtPiB1bnNpZ25lZCBjb252ZXJzaW9uCisrOzsgaW4gcnM2 MDAwLm1kIHNvIGRvbid0IHRlc3QgVkVDVE9SX1VOSVRfVlNYX1AsIGp1c3QgdGVzdCBhZ2FpbnN0 IFZTWC4KKysoZGVmaW5lX2luc24gInZzeF9mdHJ1bmM8bW9kZT4yIgorKyAgWyhzZXQgKG1hdGNo X29wZXJhbmQ6VlNYX0IgMCAidnN4X3JlZ2lzdGVyX29wZXJhbmQiICI9PFZTcj4sP3dhIikKKysg IAkoZml4OlZTWF9CIChtYXRjaF9vcGVyYW5kOlZTWF9CIDEgInZzeF9yZWdpc3Rlcl9vcGVyYW5k IiAiPFZTcj4sd2EiKSkpXQogKyAgIlZFQ1RPUl9VTklUX1ZTWF9QICg8TU9ERT5tb2RlKSIKLSsg ICJ4dnI8VlNzPnBpeiAleDAsJXgxIgotKyAgWyhzZXRfYXR0ciAidHlwZSIgInZlY3Blcm0iKV0p CisrICAieDxWU3Y+cjxWU3M+cGl6ICV4MCwleDEiCisrICBbKHNldF9hdHRyICJ0eXBlIiAiPFZT dHlwZV9zaW1wbGU+IikKKysgICAoc2V0X2F0dHIgImZwX3R5cGUiICI8VlNmcHR5cGVfc2ltcGxl PiIpXSkKICsKLSsoZGVmaW5lX2luc24gIip2c3hfZmxvYXQ8VlNpPjxtb2RlPjIiCi0rICBbKHNl dCAobWF0Y2hfb3BlcmFuZDpWU1hfRiAwICJ2c3hfcmVnaXN0ZXJfb3BlcmFuZCIgIj08VlNyPiIp Ci0rCShmbG9hdDpWU1hfRiAobWF0Y2hfb3BlcmFuZDo8VlNJPiAxICJ2c3hfcmVnaXN0ZXJfb3Bl cmFuZCIgIjxWU3I+IikpKV0KKysoZGVmaW5lX2luc24gInZzeF9mbG9hdDxWU2k+PG1vZGU+MiIK KysgIFsoc2V0IChtYXRjaF9vcGVyYW5kOlZTWF9CIDAgInZzeF9yZWdpc3Rlcl9vcGVyYW5kIiAi PTxWU3I+LD93YSIpCisrCShmbG9hdDpWU1hfQiAobWF0Y2hfb3BlcmFuZDo8VlNJPiAxICJ2c3hf cmVnaXN0ZXJfb3BlcmFuZCIgIjxWU3IyPiw8VlNyMz4iKSkpXQogKyAgIlZFQ1RPUl9VTklUX1ZT WF9QICg8TU9ERT5tb2RlKSIKLSsgICJ4dmN2c3g8VlNjPjxWU3M+ICV4MCwleDEiCi0rICBbKHNl dF9hdHRyICJ0eXBlIiAidmVjZmxvYXQiKV0pCisrICAieDxWU3Y+Y3ZzeDxWU2M+PFZTcz4gJXgw LCV4MSIKKysgIFsoc2V0X2F0dHIgInR5cGUiICI8VlN0eXBlX3NpbXBsZT4iKQorKyAgIChzZXRf YXR0ciAiZnBfdHlwZSIgIjxWU2ZwdHlwZV9zaW1wbGU+IildKQogKwotKyhkZWZpbmVfaW5zbiAi KnZzeF9mbG9hdHVuczxWU2k+PG1vZGU+MiIKLSsgIFsoc2V0IChtYXRjaF9vcGVyYW5kOlZTWF9G IDAgInZzeF9yZWdpc3Rlcl9vcGVyYW5kIiAiPTxWU3I+IikKLSsJKHVuc2lnbmVkX2Zsb2F0OlZT WF9GIChtYXRjaF9vcGVyYW5kOjxWU0k+IDEgInZzeF9yZWdpc3Rlcl9vcGVyYW5kIiAiPFZTcj4i KSkpXQorKyhkZWZpbmVfaW5zbiAidnN4X2Zsb2F0dW5zPFZTaT48bW9kZT4yIgorKyAgWyhzZXQg KG1hdGNoX29wZXJhbmQ6VlNYX0IgMCAidnN4X3JlZ2lzdGVyX29wZXJhbmQiICI9PFZTcj4sP3dh IikKKysJKHVuc2lnbmVkX2Zsb2F0OlZTWF9CIChtYXRjaF9vcGVyYW5kOjxWU0k+IDEgInZzeF9y ZWdpc3Rlcl9vcGVyYW5kIiAiPFZTcjI+LDxWU3IzPiIpKSldCiArICAiVkVDVE9SX1VOSVRfVlNY X1AgKDxNT0RFPm1vZGUpIgotKyAgInh2Y3Z1eDxWU2M+PFZTcz4gJXgwLCV4MSIKLSsgIFsoc2V0 X2F0dHIgInR5cGUiICJ2ZWNmbG9hdCIpXSkKKysgICJ4PFZTdj5jdnV4PFZTYz48VlNzPiAleDAs JXgxIgorKyAgWyhzZXRfYXR0ciAidHlwZSIgIjxWU3R5cGVfc2ltcGxlPiIpCisrICAgKHNldF9h dHRyICJmcF90eXBlIiAiPFZTZnB0eXBlX3NpbXBsZT4iKV0pCiArCi0rKGRlZmluZV9pbnNuICIq dnN4X2ZpeF90cnVuYzxtb2RlPjxWU2k+MiIKLSsgIFsoc2V0IChtYXRjaF9vcGVyYW5kOjxWU0k+ IDAgInZzeF9yZWdpc3Rlcl9vcGVyYW5kIiAiPTxWU3I+IikKLSsJKGZpeDo8VlNJPiAobWF0Y2hf b3BlcmFuZDpWU1hfRiAxICJ2c3hfcmVnaXN0ZXJfb3BlcmFuZCIgIjxWU3I+IikpKV0KKysoZGVm aW5lX2luc24gInZzeF9maXhfdHJ1bmM8bW9kZT48VlNpPjIiCisrICBbKHNldCAobWF0Y2hfb3Bl cmFuZDo8VlNJPiAwICJ2c3hfcmVnaXN0ZXJfb3BlcmFuZCIgIj08VlNyMj4sPzxWU3IzPiIpCisr CShmaXg6PFZTST4gKG1hdGNoX29wZXJhbmQ6VlNYX0IgMSAidnN4X3JlZ2lzdGVyX29wZXJhbmQi ICI8VlNyPix3YSIpKSldCiArICAiVkVDVE9SX1VOSVRfVlNYX1AgKDxNT0RFPm1vZGUpIgotKyAg Inh2Y3Y8VlNzPnN4PFZTYz5zICV4MCwleDEiCi0rICBbKHNldF9hdHRyICJ0eXBlIiAidmVjZmxv YXQiKV0pCisrICAieDxWU3Y+Y3Y8VlNzPnN4PFZTYz5zICV4MCwleDEiCisrICBbKHNldF9hdHRy ICJ0eXBlIiAiPFZTdHlwZV9zaW1wbGU+IikKKysgICAoc2V0X2F0dHIgImZwX3R5cGUiICI8VlNm cHR5cGVfc2ltcGxlPiIpXSkKICsKLSsoZGVmaW5lX2luc24gIip2c3hfZml4dW5zX3RydW5jPG1v ZGU+PFZTaT4yIgotKyAgWyhzZXQgKG1hdGNoX29wZXJhbmQ6PFZTST4gMCAidnN4X3JlZ2lzdGVy X29wZXJhbmQiICI9PFZTcj4iKQotKwkodW5zaWduZWRfZml4OjxWU0k+IChtYXRjaF9vcGVyYW5k OlZTWF9GIDEgInZzeF9yZWdpc3Rlcl9vcGVyYW5kIiAiPFZTcj4iKSkpXQorKyhkZWZpbmVfaW5z biAidnN4X2ZpeHVuc190cnVuYzxtb2RlPjxWU2k+MiIKKysgIFsoc2V0IChtYXRjaF9vcGVyYW5k OjxWU0k+IDAgInZzeF9yZWdpc3Rlcl9vcGVyYW5kIiAiPTxWU3IyPiw/PFZTcjM+IikKKysJKHVu c2lnbmVkX2ZpeDo8VlNJPiAobWF0Y2hfb3BlcmFuZDpWU1hfQiAxICJ2c3hfcmVnaXN0ZXJfb3Bl cmFuZCIgIjxWU3I+LHdhIikpKV0KICsgICJWRUNUT1JfVU5JVF9WU1hfUCAoPE1PREU+bW9kZSki Ci0rICAieHZjdjxWU3M+dXg8VlNjPnMgJXgwLCV4MSIKLSsgIFsoc2V0X2F0dHIgInR5cGUiICJ2 ZWNmbG9hdCIpXSkKKysgICJ4PFZTdj5jdjxWU3M+dXg8VlNjPnMgJXgwLCV4MSIKKysgIFsoc2V0 X2F0dHIgInR5cGUiICI8VlN0eXBlX3NpbXBsZT4iKQorKyAgIChzZXRfYXR0ciAiZnBfdHlwZSIg IjxWU2ZwdHlwZV9zaW1wbGU+IildKQorKworKzs7IE1hdGggcm91bmRpbmcgZnVuY3Rpb25zCisr KGRlZmluZV9pbnNuICJ2c3hfYnRydW5jPG1vZGU+MiIKKysgIFsoc2V0IChtYXRjaF9vcGVyYW5k OlZTWF9CIDAgInZzeF9yZWdpc3Rlcl9vcGVyYW5kIiAiPTxWU3I+LD93YSIpCisrCSh1bnNwZWM6 VlNYX0IgWyhtYXRjaF9vcGVyYW5kOlZTWF9CIDEgInZzeF9yZWdpc3Rlcl9vcGVyYW5kIiAiPFZT cj4sd2EiKV0KKysJCSAgICAgIFVOU1BFQ19GUklaKSldCisrICAiVkVDVE9SX1VOSVRfVlNYX1Ag KDxNT0RFPm1vZGUpIgorKyAgIng8VlN2PnI8VlNzPml6ICV4MCwleDEiCisrICBbKHNldF9hdHRy ICJ0eXBlIiAiPFZTdHlwZV9zaW1wbGU+IikKKysgICAoc2V0X2F0dHIgImZwX3R5cGUiICI8VlNm cHR5cGVfc2ltcGxlPiIpXSkKKysKKysoZGVmaW5lX2luc24gInZzeF9mbG9vcjxtb2RlPjIiCisr ICBbKHNldCAobWF0Y2hfb3BlcmFuZDpWU1hfQiAwICJ2c3hfcmVnaXN0ZXJfb3BlcmFuZCIgIj08 VlNyPiw/d2EiKQorKwkodW5zcGVjOlZTWF9CIFsobWF0Y2hfb3BlcmFuZDpWU1hfQiAxICJ2c3hf cmVnaXN0ZXJfb3BlcmFuZCIgIjxWU3I+LHdhIildCisrCQkgICAgICBVTlNQRUNfRlJJTSkpXQor KyAgIlZFQ1RPUl9VTklUX1ZTWF9QICg8TU9ERT5tb2RlKSIKKysgICJ4PFZTdj5yPFZTcz5pbSAl eDAsJXgxIgorKyAgWyhzZXRfYXR0ciAidHlwZSIgIjxWU3R5cGVfc2ltcGxlPiIpCisrICAgKHNl dF9hdHRyICJmcF90eXBlIiAiPFZTZnB0eXBlX3NpbXBsZT4iKV0pCisrCisrKGRlZmluZV9pbnNu ICJ2c3hfY2VpbDxtb2RlPjIiCisrICBbKHNldCAobWF0Y2hfb3BlcmFuZDpWU1hfQiAwICJ2c3hf cmVnaXN0ZXJfb3BlcmFuZCIgIj08VlNyPiw/d2EiKQorKwkodW5zcGVjOlZTWF9CIFsobWF0Y2hf b3BlcmFuZDpWU1hfQiAxICJ2c3hfcmVnaXN0ZXJfb3BlcmFuZCIgIjxWU3I+LHdhIildCisrCQkg ICAgICBVTlNQRUNfRlJJUCkpXQorKyAgIlZFQ1RPUl9VTklUX1ZTWF9QICg8TU9ERT5tb2RlKSIK KysgICJ4PFZTdj5yPFZTcz5pcCAleDAsJXgxIgorKyAgWyhzZXRfYXR0ciAidHlwZSIgIjxWU3R5 cGVfc2ltcGxlPiIpCisrICAgKHNldF9hdHRyICJmcF90eXBlIiAiPFZTZnB0eXBlX3NpbXBsZT4i KV0pCiArCiArDAotKzs7IFZTWCBzY2FsYXIgZG91YmxlIHByZWNpc2lvbiBmbG9hdGluZyBwb2lu dCBvcGVyYXRpb25zCi0rKGRlZmluZV9pbnNuIip2c3hfYWRkZGYzIgotKyAgWyhzZXQgKG1hdGNo X29wZXJhbmQ6REYgMCAidnN4X3JlZ2lzdGVyX29wZXJhbmQiICI9d3MiKQotKwkocGx1czpERiAo bWF0Y2hfb3BlcmFuZDpERiAxICJ2c3hfcmVnaXN0ZXJfb3BlcmFuZCIgIndzIikKLSsJCSAgICAg KG1hdGNoX29wZXJhbmQ6REYgMiAidnN4X3JlZ2lzdGVyX29wZXJhbmQiICJ3cyIpKSldCi0rICAi VkVDVE9SX1VOSVRfVlNYX1AgKERGbW9kZSkiCi0rICAieHNhZGRkcCAleDAsJXgxLCV4MiIKLSsg IFsoc2V0X2F0dHIgInR5cGUiICJmcCIpCi0rICAgKHNldF9hdHRyICJmcF90eXBlIiAiZnBfYWRk c3ViX2QiKV0pCi0rCi0rKGRlZmluZV9pbnNuIip2c3hfc3ViZGYzIgotKyAgWyhzZXQgKG1hdGNo X29wZXJhbmQ6REYgMCAidnN4X3JlZ2lzdGVyX29wZXJhbmQiICI9d3MiKQotKwkobWludXM6REYg KG1hdGNoX29wZXJhbmQ6REYgMSAidnN4X3JlZ2lzdGVyX29wZXJhbmQiICJ3cyIpCi0rCQkgICAg ICAobWF0Y2hfb3BlcmFuZDpERiAyICJ2c3hfcmVnaXN0ZXJfb3BlcmFuZCIgIndzIikpKV0KLSsg ICJWRUNUT1JfVU5JVF9WU1hfUCAoREZtb2RlKSIKLSsgICJ4c3N1YmRwICV4MCwleDEsJXgyIgot KyAgWyhzZXRfYXR0ciAidHlwZSIgImZwIikKLSsgICAoc2V0X2F0dHIgImZwX3R5cGUiICJmcF9h ZGRzdWJfZCIpXSkKLSsKLSsoZGVmaW5lX2luc24iKnZzeF9tdWxkZjMiCi0rICBbKHNldCAobWF0 Y2hfb3BlcmFuZDpERiAwICJ2c3hfcmVnaXN0ZXJfb3BlcmFuZCIgIj13cyIpCi0rCShtdWx0OkRG IChtYXRjaF9vcGVyYW5kOkRGIDEgInZzeF9yZWdpc3Rlcl9vcGVyYW5kIiAid3MiKQotKwkJICAg ICAobWF0Y2hfb3BlcmFuZDpERiAyICJ2c3hfcmVnaXN0ZXJfb3BlcmFuZCIgIndzIikpKV0KLSsg ICJWRUNUT1JfVU5JVF9WU1hfUCAoREZtb2RlKSIKLSsgICJ4c211bGRwICV4MCwleDEsJXgyIgot KyAgWyhzZXRfYXR0ciAidHlwZSIgImRtdWwiKQotKyAgIChzZXRfYXR0ciAiZnBfdHlwZSIgImZw X211bF9kIildKQotKwotKyhkZWZpbmVfaW5zbiIqdnN4X2RpdmRmMyIKLSsgIFsoc2V0IChtYXRj aF9vcGVyYW5kOkRGIDAgInZzeF9yZWdpc3Rlcl9vcGVyYW5kIiAiPXdzIikKLSsJKGRpdjpERiAo bWF0Y2hfb3BlcmFuZDpERiAxICJ2c3hfcmVnaXN0ZXJfb3BlcmFuZCIgIndzIikKLSsJCSAgICAo bWF0Y2hfb3BlcmFuZDpERiAyICJ2c3hfcmVnaXN0ZXJfb3BlcmFuZCIgIndzIikpKV0KLSsgICJW RUNUT1JfVU5JVF9WU1hfUCAoREZtb2RlKSIKLSsgICJ4c2RpdmRwICV4MCwleDEsJXgyIgotKyAg WyhzZXRfYXR0ciAidHlwZSIgImRkaXYiKV0pCi0rCi0rKGRlZmluZV9pbnNuICIqdnN4X2ZyZWRm MiIKLSsgIFsoc2V0IChtYXRjaF9vcGVyYW5kOkRGIDAgInZzeF9yZWdpc3Rlcl9vcGVyYW5kIiAi PXdzIikKLSsJKHVuc3BlYzpERiBbKG1hdGNoX29wZXJhbmQ6REYgMSAidnN4X3JlZ2lzdGVyX29w ZXJhbmQiICJ3cyIpXQotKwkJICAgVU5TUEVDX0ZSRVMpKV0KLSsgICJmbGFnX2Zpbml0ZV9tYXRo X29ubHkgJiYgVkVDVE9SX1VOSVRfVlNYX1AgKERGbW9kZSkiCi0rICAieHNyZWRwICV4MCwleDEi Ci0rICBbKHNldF9hdHRyICJ0eXBlIiAiZnAiKV0pCi0rCi0rKGRlZmluZV9pbnNuICIqdnN4X3Nx cnRkZjIiCi0rICBbKHNldCAobWF0Y2hfb3BlcmFuZDpERiAwICJ2c3hfcmVnaXN0ZXJfb3BlcmFu ZCIgIj13cyIpCi0rICAgICAgICAoc3FydDpERiAobWF0Y2hfb3BlcmFuZDpERiAxICJ2c3hfcmVn aXN0ZXJfb3BlcmFuZCIgIndzIikpKV0KLSsgICJWRUNUT1JfVU5JVF9WU1hfUCAoREZtb2RlKSIK LSsgICJ4c3NxcnRkcCAleDAsJXgxIgotKyAgWyhzZXRfYXR0ciAidHlwZSIgImRzcXJ0IildKQot KwotKyhkZWZpbmVfaW5zbiIqdnN4X25lZ2RmMiIKLSsgIFsoc2V0IChtYXRjaF9vcGVyYW5kOkRG IDAgInZzeF9yZWdpc3Rlcl9vcGVyYW5kIiAiPXdzIikKLSsJKG5lZzpERiAobWF0Y2hfb3BlcmFu ZDpERiAxICJ2c3hfcmVnaXN0ZXJfb3BlcmFuZCIgIndzIikpKV0KLSsgICJWRUNUT1JfVU5JVF9W U1hfUCAoREZtb2RlKSIKLSsgICJ4c25lZ2RwICV4MCwleDEiCi0rICBbKHNldF9hdHRyICJ0eXBl IiAiZnAiKV0pCi0rCi0rKGRlZmluZV9pbnNuInZzeF9hYnNkZjIiCi0rICBbKHNldCAobWF0Y2hf b3BlcmFuZDpERiAwICJ2c3hfcmVnaXN0ZXJfb3BlcmFuZCIgIj13cyIpCi0rCShhYnM6REYgKG1h dGNoX29wZXJhbmQ6REYgMSAidnN4X3JlZ2lzdGVyX29wZXJhbmQiICJ3cyIpKSldCi0rICAiVkVD VE9SX1VOSVRfVlNYX1AgKERGbW9kZSkiCi0rICAieHNhYnNkcCAleDAsJXgxIgotKyAgWyhzZXRf YXR0ciAidHlwZSIgImZwIildKQotKwotKyhkZWZpbmVfaW5zbiIqdnN4X25hYnNkZjIiCi0rICBb KHNldCAobWF0Y2hfb3BlcmFuZDpERiAwICJ2c3hfcmVnaXN0ZXJfb3BlcmFuZCIgIj13cyIpCi0r CShuZWc6REYgKGFiczpERiAobWF0Y2hfb3BlcmFuZDpERiAxICJ2c3hfcmVnaXN0ZXJfb3BlcmFu ZCIgIndzIikpKSldCi0rICAiVkVDVE9SX1VOSVRfVlNYX1AgKERGbW9kZSkiCi0rICAieHNuYWJz ZHAgJXgwLCV4MSIKLSsgIFsoc2V0X2F0dHIgInR5cGUiICJmcCIpXSkKLSsKLSsoZGVmaW5lX2lu c24gIip2c3hfc21heGRmMyIKLSsgIFsoc2V0IChtYXRjaF9vcGVyYW5kOkRGIDAgInZzeF9yZWdp c3Rlcl9vcGVyYW5kIiAiPXdzIikKLSsgICAgICAgIChzbWF4OkRGIChtYXRjaF9vcGVyYW5kOkRG IDEgInZzeF9yZWdpc3Rlcl9vcGVyYW5kIiAid3MiKQotKwkJIChtYXRjaF9vcGVyYW5kOkRGIDIg InZzeF9yZWdpc3Rlcl9vcGVyYW5kIiAid3MiKSkpXQotKyAgIlZFQ1RPUl9VTklUX1ZTWF9QIChE Rm1vZGUpIgotKyAgInhzbWF4ZHAgJXgwLCV4MSwleDIiCi0rICBbKHNldF9hdHRyICJ0eXBlIiAi ZnAiKV0pCi0rCi0rCi0rKGRlZmluZV9pbnNuICIqdnN4X3NtaW5kZjMiCi0rICBbKHNldCAobWF0 Y2hfb3BlcmFuZDpERiAwICJ2c3hfcmVnaXN0ZXJfb3BlcmFuZCIgIj13cyIpCi0rICAgICAgICAo c21pbjpERiAobWF0Y2hfb3BlcmFuZDpERiAxICJ2c3hfcmVnaXN0ZXJfb3BlcmFuZCIgIndzIikK LSsJCSAobWF0Y2hfb3BlcmFuZDpERiAyICJ2c3hfcmVnaXN0ZXJfb3BlcmFuZCIgIndzIikpKV0K LSsgICJWRUNUT1JfVU5JVF9WU1hfUCAoREZtb2RlKSIKLSsgICJ4c21pbmRwICV4MCwleDEsJXgy IgotKyAgWyhzZXRfYXR0ciAidHlwZSIgImZwIildKQotKwotKzs7IEZ1c2VkIHZlY3RvciBtdWx0 aXBseS9hZGQgaW5zdHJ1Y3Rpb25zCi0rKGRlZmluZV9pbnNuICIqdnN4X2ZtYWRkZGY0IgotKyAg WyhzZXQgKG1hdGNoX29wZXJhbmQ6REYgMCAidnN4X3JlZ2lzdGVyX29wZXJhbmQiICI9d3Msd3Mi KQotKwkocGx1czpERiAobXVsdDpERiAobWF0Y2hfb3BlcmFuZDpERiAxICJ2c3hfcmVnaXN0ZXJf b3BlcmFuZCIgIiV3cyx3cyIpCi0rCQkJICAobWF0Y2hfb3BlcmFuZDpERiAyICJ2c3hfcmVnaXN0 ZXJfb3BlcmFuZCIgIndzLDAiKSkKLSsJCSAobWF0Y2hfb3BlcmFuZDpERiAzICJncGNfcmVnX29w ZXJhbmQiICIwLHdzIikpKV0KLSsgICJWRUNUT1JfVU5JVF9WU1hfUCAoREZtb2RlKSAmJiBUQVJH RVRfRlVTRURfTUFERCIKLSsgICJACi0rICAgeHNtYWRkYWRwICV4MCwleDEsJXgyCi0rICAgeHNt YWRkbWRwICV4MCwleDEsJXgzIgotKyAgWyhzZXRfYXR0ciAidHlwZSIgImRtdWwiKQotKyAgIChz ZXRfYXR0ciAiZnBfdHlwZSIgImZwX21hZGRzdWJfZCIpXSkKLSsKLSsoZGVmaW5lX2luc24gIip2 c3hfZm1zdWJkZjQiCi0rICBbKHNldCAobWF0Y2hfb3BlcmFuZDpERiAwICJ2c3hfcmVnaXN0ZXJf b3BlcmFuZCIgIj13cyx3cyIpCi0rCShtaW51czpERiAobXVsdDpERiAobWF0Y2hfb3BlcmFuZDpE RiAxICJ2c3hfcmVnaXN0ZXJfb3BlcmFuZCIgIiV3cyx3cyIpCi0rCQkJICAgKG1hdGNoX29wZXJh bmQ6REYgMiAidnN4X3JlZ2lzdGVyX29wZXJhbmQiICJ3cywwIikpCi0rCQkgIChtYXRjaF9vcGVy YW5kOkRGIDMgInZzeF9yZWdpc3Rlcl9vcGVyYW5kIiAiMCx3cyIpKSldCi0rICAiVkVDVE9SX1VO SVRfVlNYX1AgKERGbW9kZSkgJiYgVEFSR0VUX0ZVU0VEX01BREQiCi0rICAiQAotKyAgIHhzbXN1 YmFkcCAleDAsJXgxLCV4MgotKyAgIHhzbXN1Ym1kcCAleDAsJXgxLCV4MyIKLSsgIFsoc2V0X2F0 dHIgInR5cGUiICJkbXVsIikKLSsgICAoc2V0X2F0dHIgImZwX3R5cGUiICJmcF9tYWRkc3ViX2Qi KV0pCi0rCi0rKGRlZmluZV9pbnNuICIqdnN4X2ZubWFkZGRmNF8xIgotKyAgWyhzZXQgKG1hdGNo X29wZXJhbmQ6REYgMCAidnN4X3JlZ2lzdGVyX29wZXJhbmQiICI9d3Msd3MiKQotKwkobmVnOkRG Ci0rCSAocGx1czpERiAobXVsdDpERiAobWF0Y2hfb3BlcmFuZDpERiAxICJ2c3hfcmVnaXN0ZXJf b3BlcmFuZCIgIiV3cyx3cyIpCi0rCQkJICAgKG1hdGNoX29wZXJhbmQ6REYgMiAidnN4X3JlZ2lz dGVyX29wZXJhbmQiICJ3cywwIikpCi0rCQkgIChtYXRjaF9vcGVyYW5kOkRGIDMgInZzeF9yZWdp c3Rlcl9vcGVyYW5kIiAiMCx3cyIpKSkpXQotKyAgIlZFQ1RPUl9VTklUX1ZTWF9QIChERm1vZGUp ICYmIFRBUkdFVF9GVVNFRF9NQURECi0rICAgJiYgSE9OT1JfU0lHTkVEX1pFUk9TIChERm1vZGUp IgotKyAgIkAKLSsgICB4c25tYWRkYWRwICV4MCwleDEsJXgyCi0rICAgeHNubWFkZG1kcCAleDAs JXgxLCV4MyIKLSsgIFsoc2V0X2F0dHIgInR5cGUiICJkbXVsIikKLSsgICAoc2V0X2F0dHIgImZw X3R5cGUiICJmcF9tYWRkc3ViX2QiKV0pCi0rCi0rKGRlZmluZV9pbnNuICIqdnN4X2ZubWFkZGRm NF8yIgotKyAgWyhzZXQgKG1hdGNoX29wZXJhbmQ6REYgMCAidnN4X3JlZ2lzdGVyX29wZXJhbmQi ICI9d3Msd3MiKQotKwkobWludXM6REYgKG11bHQ6REYgKG5lZzpERgotKwkJCSAgICAobWF0Y2hf b3BlcmFuZDpERiAxICJncGNfcmVnX29wZXJhbmQiICIld3Msd3MiKSkKLSsJCQkgICAobWF0Y2hf b3BlcmFuZDpERiAyICJncGNfcmVnX29wZXJhbmQiICJ3cywwIikpCi0rCQkgIChtYXRjaF9vcGVy YW5kOkRGIDMgInZzeF9yZWdpc3Rlcl9vcGVyYW5kIiAiMCx3cyIpKSldCi0rICAiVkVDVE9SX1VO SVRfVlNYX1AgKERGbW9kZSkgJiYgVEFSR0VUX0ZVU0VEX01BREQKLSsgICAmJiAhSE9OT1JfU0lH TkVEX1pFUk9TIChERm1vZGUpIgotKyAgIkAKLSsgICB4c25tYWRkYWRwICV4MCwleDEsJXgyCi0r ICAgeHNubWFkZG1kcCAleDAsJXgxLCV4MyIKLSsgIFsoc2V0X2F0dHIgInR5cGUiICJkbXVsIikK LSsgICAoc2V0X2F0dHIgImZwX3R5cGUiICJmcF9tYWRkc3ViX2QiKV0pCi0rCi0rKGRlZmluZV9p bnNuICIqdnN4X2ZubXN1YmRmNF8xIgotKyAgWyhzZXQgKG1hdGNoX29wZXJhbmQ6REYgMCAidnN4 X3JlZ2lzdGVyX29wZXJhbmQiICI9d3Msd3MiKQotKwkobmVnOkRGCi0rCSAobWludXM6REYKLSsJ ICAobXVsdDpERiAobWF0Y2hfb3BlcmFuZDpERiAxICJ2c3hfcmVnaXN0ZXJfb3BlcmFuZCIgIiV3 cyx3cyIpCi0rCQkgICAobWF0Y2hfb3BlcmFuZDpERiAyICJ2c3hfcmVnaXN0ZXJfb3BlcmFuZCIg IndzLDAiKSkKLSsJICAobWF0Y2hfb3BlcmFuZDpERiAzICJ2c3hfcmVnaXN0ZXJfb3BlcmFuZCIg IjAsd3MiKSkpKV0KLSsgICJWRUNUT1JfVU5JVF9WU1hfUCAoREZtb2RlKSAmJiBUQVJHRVRfRlVT RURfTUFERAotKyAgICYmIEhPTk9SX1NJR05FRF9aRVJPUyAoREZtb2RlKSIKLSsgICJACi0rICAg eHNubXN1YmFkcCAleDAsJXgxLCV4MgotKyAgIHhzbm1zdWJtZHAgJXgwLCV4MSwleDMiCi0rICBb KHNldF9hdHRyICJ0eXBlIiAiZG11bCIpCi0rICAgKHNldF9hdHRyICJmcF90eXBlIiAiZnBfbWFk ZHN1Yl9kIildKQotKwotKyhkZWZpbmVfaW5zbiAiKnZzeF9mbm1zdWJkZjRfMiIKLSsgIFsoc2V0 IChtYXRjaF9vcGVyYW5kOkRGIDAgInZzeF9yZWdpc3Rlcl9vcGVyYW5kIiAiPXdzLHdzIikKLSsJ KG1pbnVzOkRGCi0rCSAobWF0Y2hfb3BlcmFuZDpERiAzICJ2c3hfcmVnaXN0ZXJfb3BlcmFuZCIg IjAsd3MiKQotKwkgKG11bHQ6REYgKG1hdGNoX29wZXJhbmQ6REYgMSAidnN4X3JlZ2lzdGVyX29w ZXJhbmQiICIld3Msd3MiKQotKwkJICAobWF0Y2hfb3BlcmFuZDpERiAyICJ2c3hfcmVnaXN0ZXJf b3BlcmFuZCIgIndzLDAiKSkpKV0KLSsgICJWRUNUT1JfVU5JVF9WU1hfUCAoREZtb2RlKSAmJiBU QVJHRVRfRlVTRURfTUFERAotKyAgICYmICFIT05PUl9TSUdORURfWkVST1MgKERGbW9kZSkiCi0r ICAiQAotKyAgIHhzbm1zdWJhZHAgJXgwLCV4MSwleDIKLSsgICB4c25tc3VibWRwICV4MCwleDEs JXgzIgotKyAgWyhzZXRfYXR0ciAidHlwZSIgImRtdWwiKQotKyAgIChzZXRfYXR0ciAiZnBfdHlw ZSIgImZwX21hZGRzdWJfZCIpXSkKKys7OyBWU1ggY29udmVydCB0by9mcm9tIGRvdWJsZSB2ZWN0 b3IKICsKLSs7OyBGb3IgdGhlIGNvbnZlcnNpb25zLCBsaW1pdCB0aGUgcmVnaXN0ZXIgY2xhc3Mg Zm9yIHRoZSBpbnRlZ2VyIHZhbHVlIHRvIGJlCi0rOzsgdGhlIGZwcnMuICBGb3IgdGhlIHVuc2ln bmVkIHRlc3RzLCB0aGVyZSBpc24ndCBhIGdlbmVyaWMgZG91YmxlIC0+IHVuc2lnbmVkCi0rOzsg Y29udmVyc2lvbiBpbiByczYwMDAubWQgc28gZG9uJ3QgdGVzdCBWRUNUT1JfVU5JVF9WU1hfUCwg anVzdCB0ZXN0IGFnYWluc3QKLSs7OyBWU1guCi0rCi0rKGRlZmluZV9pbnNuICIqdnN4X2Zsb2F0 ZGlkZjIiCi0rICBbKHNldCAobWF0Y2hfb3BlcmFuZDpERiAwICJ2c3hfcmVnaXN0ZXJfb3BlcmFu ZCIgIj13cyIpCi0rCShmbG9hdDpERiAobWF0Y2hfb3BlcmFuZDpESSAxICJ2c3hfcmVnaXN0ZXJf b3BlcmFuZCIgIiFmI3IiKSkpXQotKyAgIlZFQ1RPUl9VTklUX1ZTWF9QIChERm1vZGUpIgotKyAg InhzY3ZzeGRkcCAleDAsJXgxIgotKyAgWyhzZXRfYXR0ciAidHlwZSIgImZwIildKQotKwotKyhk ZWZpbmVfaW5zbiAiKnZzeF9mbG9hdHVuc2RpZGYyIgotKyAgWyhzZXQgKG1hdGNoX29wZXJhbmQ6 REYgMCAidnN4X3JlZ2lzdGVyX29wZXJhbmQiICI9d3MiKQotKwkodW5zaWduZWRfZmxvYXQ6REYg KG1hdGNoX29wZXJhbmQ6REkgMSAidnN4X3JlZ2lzdGVyX29wZXJhbmQiICIhZiNyIikpKV0KLSsg ICJUQVJHRVRfSEFSRF9GTE9BVCAmJiBUQVJHRVRfVlNYIgotKyAgInhzY3Z1eGRkcCAleDAsJXgx IgotKyAgWyhzZXRfYXR0ciAidHlwZSIgImZwIildKQotKwotKyhkZWZpbmVfaW5zbiAiKnZzeF9m aXhfdHJ1bmNkZmRpMiIKLSsgIFsoc2V0IChtYXRjaF9vcGVyYW5kOkRJIDAgInZzeF9yZWdpc3Rl cl9vcGVyYW5kIiAiPSFmI3IiKQotKwkoZml4OkRJIChtYXRjaF9vcGVyYW5kOkRGIDEgInZzeF9y ZWdpc3Rlcl9vcGVyYW5kIiAid3MiKSkpXQotKyAgIlZFQ1RPUl9VTklUX1ZTWF9QIChERm1vZGUp IgotKyAgInhzY3ZkcHN4ZHMgJXgwLCV4MSIKLSsgIFsoc2V0X2F0dHIgInR5cGUiICJmcCIpXSkK Kys7OyBDb252ZXJ0IGZyb20gNjQtYml0IHRvIDMyLWJpdCB0eXBlcworKzs7IE5vdGUsIGZhdm9y IHRoZSBBbHRpdmVjIHJlZ2lzdGVycyBzaW5jZSB0aGUgdXN1YWwgdXNlIG9mIHRoZXNlIGluc3Ry dWN0aW9ucworKzs7IGlzIGluIHZlY3RvciBjb252ZXJ0cyBhbmQgd2UgbmVlZCB0byB1c2UgdGhl IEFsdGl2ZWMgdnBlcm0gaW5zdHJ1Y3Rpb24uCiArCi0rKGRlZmluZV9pbnNuICIqdnN4X2ZpeHVu c190cnVuY2RmZGkyIgotKyAgWyhzZXQgKG1hdGNoX29wZXJhbmQ6REkgMCAidnN4X3JlZ2lzdGVy X29wZXJhbmQiICI9IWYjciIpCi0rCSh1bnNpZ25lZF9maXg6REkgKG1hdGNoX29wZXJhbmQ6REYg MSAidnN4X3JlZ2lzdGVyX29wZXJhbmQiICJ3cyIpKSldCi0rICAiVEFSR0VUX0hBUkRfRkxPQVQg JiYgVEFSR0VUX1ZTWCIKLSsgICJ4c2N2ZHB1eGRzICV4MCwleDEiCi0rICBbKHNldF9hdHRyICJ0 eXBlIiAiZnAiKV0pCisrKGRlZmluZV9pbnNuICJ2c3hfeHZjdmRwc3AiCisrICBbKHNldCAobWF0 Y2hfb3BlcmFuZDpWNFNGIDAgInZzeF9yZWdpc3Rlcl9vcGVyYW5kIiAiPXYsP3dhIikKKysJKHVu c3BlYzpWNFNGIFsobWF0Y2hfb3BlcmFuZDpWMkRGIDEgInZzeF9yZWdpc3Rlcl9vcGVyYW5kIiAi d2Qsd2EiKV0KKysJCSAgICAgVU5TUEVDX1ZTWF9YVkNWRFBTUCkpXQorKyAgIlZFQ1RPUl9VTklU X1ZTWF9QIChWMkRGbW9kZSkiCisrICAieHZjdmRwc3AgJXgwLCV4MSIKKysgIFsoc2V0X2F0dHIg InR5cGUiICJ2ZWNmbG9hdCIpXSkKICsKLSsoZGVmaW5lX2luc24gIip2c3hfYnRydW5jZGYyIgot KyAgWyhzZXQgKG1hdGNoX29wZXJhbmQ6REYgMCAidnN4X3JlZ2lzdGVyX29wZXJhbmQiICI9d3Mi KQotKwkodW5zcGVjOkRGIFsobWF0Y2hfb3BlcmFuZDpERiAxICJ2c3hfcmVnaXN0ZXJfb3BlcmFu ZCIgIndzIildCi0rCQkgICBVTlNQRUNfRlJJWikpXQotKyAgIlZFQ1RPUl9VTklUX1ZTWF9QIChE Rm1vZGUpIgotKyAgInhzcmRwaXogJXgwLCV4MSIKLSsgIFsoc2V0X2F0dHIgInR5cGUiICJmcCIp XSkKKysoZGVmaW5lX2luc24gInZzeF94dmN2ZHBzeHdzIgorKyAgWyhzZXQgKG1hdGNoX29wZXJh bmQ6VjRTSSAwICJ2c3hfcmVnaXN0ZXJfb3BlcmFuZCIgIj12LD93YSIpCisrCSh1bnNwZWM6VjRT SSBbKG1hdGNoX29wZXJhbmQ6VjJERiAxICJ2c3hfcmVnaXN0ZXJfb3BlcmFuZCIgIndkLHdhIild CisrCQkgICAgIFVOU1BFQ19WU1hfWFZDVkRQU1hXUykpXQorKyAgIlZFQ1RPUl9VTklUX1ZTWF9Q IChWMkRGbW9kZSkiCisrICAieHZjdmRwc3h3cyAleDAsJXgxIgorKyAgWyhzZXRfYXR0ciAidHlw ZSIgInZlY2Zsb2F0IildKQogKwotKyhkZWZpbmVfaW5zbiAiKnZzeF9mbG9vcmRmMiIKLSsgIFso c2V0IChtYXRjaF9vcGVyYW5kOkRGIDAgInZzeF9yZWdpc3Rlcl9vcGVyYW5kIiAiPXdzIikKLSsJ KHVuc3BlYzpERiBbKG1hdGNoX29wZXJhbmQ6REYgMSAidnN4X3JlZ2lzdGVyX29wZXJhbmQiICJ3 cyIpXQotKwkJICAgVU5TUEVDX0ZSSU0pKV0KLSsgICJWRUNUT1JfVU5JVF9WU1hfUCAoREZtb2Rl KSIKLSsgICJ4c3JkcGltICV4MCwleDEiCi0rICBbKHNldF9hdHRyICJ0eXBlIiAiZnAiKV0pCisr KGRlZmluZV9pbnNuICJ2c3hfeHZjdmRwdXh3cyIKKysgIFsoc2V0IChtYXRjaF9vcGVyYW5kOlY0 U0kgMCAidnN4X3JlZ2lzdGVyX29wZXJhbmQiICI9diw/d2EiKQorKwkodW5zcGVjOlY0U0kgWyht YXRjaF9vcGVyYW5kOlYyREYgMSAidnN4X3JlZ2lzdGVyX29wZXJhbmQiICJ3ZCx3YSIpXQorKwkJ ICAgICBVTlNQRUNfVlNYX1hWQ1ZEUFVYV1MpKV0KKysgICJWRUNUT1JfVU5JVF9WU1hfUCAoVjJE Rm1vZGUpIgorKyAgInh2Y3ZkcHV4d3MgJXgwLCV4MSIKKysgIFsoc2V0X2F0dHIgInR5cGUiICJ2 ZWNmbG9hdCIpXSkKICsKLSsoZGVmaW5lX2luc24gIip2c3hfY2VpbGRmMiIKLSsgIFsoc2V0ICht YXRjaF9vcGVyYW5kOkRGIDAgInZzeF9yZWdpc3Rlcl9vcGVyYW5kIiAiPXdzIikKLSsJKHVuc3Bl YzpERiBbKG1hdGNoX29wZXJhbmQ6REYgMSAidnN4X3JlZ2lzdGVyX29wZXJhbmQiICJ3cyIpXQot KwkJICAgVU5TUEVDX0ZSSVApKV0KLSsgICJWRUNUT1JfVU5JVF9WU1hfUCAoREZtb2RlKSIKLSsg ICJ4c3JkcGlwICV4MCwleDEiCi0rICBbKHNldF9hdHRyICJ0eXBlIiAiZnAiKV0pCisrOzsgQ29u dmVydCBmcm9tIDMyLWJpdCB0byA2NC1iaXQgdHlwZXMKKysoZGVmaW5lX2luc24gInZzeF94dmN2 c3BkcCIKKysgIFsoc2V0IChtYXRjaF9vcGVyYW5kOlYyREYgMCAidnN4X3JlZ2lzdGVyX29wZXJh bmQiICI9d2QsP3dhIikKKysJKHVuc3BlYzpWMkRGIFsobWF0Y2hfb3BlcmFuZDpWNFNGIDEgInZz eF9yZWdpc3Rlcl9vcGVyYW5kIiAid2Ysd2EiKV0KKysJCSAgICAgVU5TUEVDX1ZTWF9YVkNWU1BE UCkpXQorKyAgIlZFQ1RPUl9VTklUX1ZTWF9QIChWMkRGbW9kZSkiCisrICAieHZjdnNwZHAgJXgw LCV4MSIKKysgIFsoc2V0X2F0dHIgInR5cGUiICJ2ZWNmbG9hdCIpXSkKICsKLSsoZGVmaW5lX2lu c24gInZzeF9jb3B5c2lnbmRmMyIKLSsgIFsoc2V0IChtYXRjaF9vcGVyYW5kOkRGIDAgInZzeF9y ZWdpc3Rlcl9vcGVyYW5kIiAiPXdzIikKLSsJKGlmX3RoZW5fZWxzZTpERiAoZ2U6REYgKG1hdGNo X29wZXJhbmQ6REYgMiAidnN4X3JlZ2lzdGVyX29wZXJhbmQiICJ3cyIpCi0rCQkJCShjb25zdF9p bnQgMCkpCi0rCQkJIChhYnM6REYgKG1hdGNoX29wZXJhbmQ6REYgMSAidnN4X3JlZ2lzdGVyX29w ZXJhbmQiICJ3cyIpKQotKwkJCSAobmVnOkRGIChhYnM6REYgKG1hdGNoX2R1cCAxKSkpKSldCi0r ICAiVkVDVE9SX1VOSVRfVlNYX1AgKERGbW9kZSkiCi0rICAieHNjcHNnbmRwICV4MCwleDIsJXgx IgotKyAgWyhzZXRfYXR0ciAidHlwZSIgImZwIildKQorKyhkZWZpbmVfaW5zbiAidnN4X3h2Y3Zz eHdkcCIKKysgIFsoc2V0IChtYXRjaF9vcGVyYW5kOlYyREYgMCAidnN4X3JlZ2lzdGVyX29wZXJh bmQiICI9d2QsP3dhIikKKysJKHVuc3BlYzpWMkRGIFsobWF0Y2hfb3BlcmFuZDpWNFNJIDEgInZz eF9yZWdpc3Rlcl9vcGVyYW5kIiAid2Ysd2EiKV0KKysJCSAgICAgVU5TUEVDX1ZTWF9YVkNWU1hX RFApKV0KKysgICJWRUNUT1JfVU5JVF9WU1hfUCAoVjJERm1vZGUpIgorKyAgInh2Y3ZzeHdkcCAl eDAsJXgxIgorKyAgWyhzZXRfYXR0ciAidHlwZSIgInZlY2Zsb2F0IildKQogKwotKyhkZWZpbmVf aW5zbiAiKnZzeF9mdHJ1bmNkZjIiCi0rICBbKHNldCAobWF0Y2hfb3BlcmFuZDpERiAwICJ2c3hf cmVnaXN0ZXJfb3BlcmFuZCIgIj13cyIpCi0rICAJKGZpeDpERiAobWF0Y2hfb3BlcmFuZDpERiAx ICJyZWdpc3Rlcl9vcGVyYW5kIiAid3MiKSkpXQotKyAgIlZFQ1RPUl9VTklUX1ZTWF9QIChERm1v ZGUpIgotKyAgInhzcmRwcGl6ICV4MCwleDEiCisrKGRlZmluZV9pbnNuICJ2c3hfeHZjdnV4d2Rw IgorKyAgWyhzZXQgKG1hdGNoX29wZXJhbmQ6VjJERiAwICJ2c3hfcmVnaXN0ZXJfb3BlcmFuZCIg Ij13ZCw/d2EiKQorKwkodW5zcGVjOlYyREYgWyhtYXRjaF9vcGVyYW5kOlY0U0kgMSAidnN4X3Jl Z2lzdGVyX29wZXJhbmQiICJ3Zix3YSIpXQorKwkJICAgICBVTlNQRUNfVlNYX1hWQ1ZVWFdEUCkp XQorKyAgIlZFQ1RPUl9VTklUX1ZTWF9QIChWMkRGbW9kZSkiCisrICAieHZjdnV4d2RwICV4MCwl eDEiCiArICBbKHNldF9hdHRyICJ0eXBlIiAidmVjZmxvYXQiKV0pCiArCiArDApAQCAtNjQ1MCw4 ICs4MzIzLDggQEAgdGVzdHN1aXRlLwogKyhkZWZpbmVfaW5zbiAidnN4X2NvbmNhdF92MmRmIgog KyAgWyhzZXQgKG1hdGNoX29wZXJhbmQ6VjJERiAwICJ2c3hfcmVnaXN0ZXJfb3BlcmFuZCIgIj13 ZCw/d2EiKQogKwkodW5zcGVjOlYyREYKLSsJIFsobWF0Y2hfb3BlcmFuZDpERiAxICJ2c3hfcmVn aXN0ZXJfb3BlcmFuZCIgImYsd2EiKQotKwkgIChtYXRjaF9vcGVyYW5kOkRGIDIgInZzeF9yZWdp c3Rlcl9vcGVyYW5kIiAiZix3YSIpXQorKwkgWyhtYXRjaF9vcGVyYW5kOkRGIDEgInZzeF9yZWdp c3Rlcl9vcGVyYW5kIiAid3Msd2EiKQorKwkgIChtYXRjaF9vcGVyYW5kOkRGIDIgInZzeF9yZWdp c3Rlcl9vcGVyYW5kIiAid3Msd2EiKV0KICsJIFVOU1BFQ19WU1hfQ09OQ0FUX1YyREYpKV0KICsg ICJWRUNUT1JfVU5JVF9WU1hfUCAoVjJERm1vZGUpIgogKyAgInh4cGVybWRpICV4MCwleDEsJXgy LDAiCkBAIC02NDU5LDMyICs4MzMyLDM3IEBAIHRlc3RzdWl0ZS8KICsKICs7OyBTZXQgYSBkb3Vi bGUgaW50byBvbmUgZWxlbWVudAogKyhkZWZpbmVfaW5zbiAidnN4X3NldF92MmRmIgotKyAgWyhz ZXQgKG1hdGNoX29wZXJhbmQ6VjJERiAwICJ2c3hfcmVnaXN0ZXJfb3BlcmFuZCIgIj13ZCIpCisr ICBbKHNldCAobWF0Y2hfb3BlcmFuZDpWMkRGIDAgInZzeF9yZWdpc3Rlcl9vcGVyYW5kIiAiPXdk LD93YSIpCiArCSh2ZWNfbWVyZ2U6VjJERgotKwkgKG1hdGNoX29wZXJhbmQ6VjJERiAxICJ2c3hf cmVnaXN0ZXJfb3BlcmFuZCIgIndkIikKLSsJICh2ZWNfZHVwbGljYXRlOlYyREYgKG1hdGNoX29w ZXJhbmQ6REYgMiAidnN4X3JlZ2lzdGVyX29wZXJhbmQiICJ3cyIpKQotKwkgKG1hdGNoX29wZXJh bmQ6UUkgMyAidTViaXRfY2ludF9vcGVyYW5kIiAiaSIpKSldCisrCSAobWF0Y2hfb3BlcmFuZDpW MkRGIDEgInZzeF9yZWdpc3Rlcl9vcGVyYW5kIiAid2Qsd2EiKQorKwkgKHZlY19kdXBsaWNhdGU6 VjJERiAobWF0Y2hfb3BlcmFuZDpERiAyICJ2c3hfcmVnaXN0ZXJfb3BlcmFuZCIgIndzLGYiKSkK KysJIChtYXRjaF9vcGVyYW5kOlFJIDMgInU1Yml0X2NpbnRfb3BlcmFuZCIgImksaSIpKSldCiAr ICAiVkVDVE9SX1VOSVRfVlNYX1AgKFYyREZtb2RlKSIKICt7Ci0rICBvcGVyYW5kc1szXSA9IEdF Tl9JTlQgKElOVFZBTCAob3BlcmFuZHNbM10pICYgMSk7Ci0rICByZXR1cm4gXCJ4eHBlcm1kaSAl eDAsJXgxLCV4MiwlM1wiOworKyAgaWYgKElOVFZBTCAob3BlcmFuZHNbM10pID09IDApCisrICAg IHJldHVybiBcInh4cGVybWRpICV4MCwleDEsJXgyLDFcIjsKKysgIGVsc2UgaWYgKElOVFZBTCAo b3BlcmFuZHNbM10pID09IDEpCisrICAgIHJldHVybiBcInh4cGVybWRpICV4MCwleDIsJXgxLDBc IjsKKysgIGVsc2UKKysgICAgZ2NjX3VucmVhY2hhYmxlICgpOwogK30KICsgIFsoc2V0X2F0dHIg InR5cGUiICJ2ZWNwZXJtIildKQogKwogKzs7IEV4dHJhY3QgYSBERiBlbGVtZW50IGZyb20gVjJE RgogKyhkZWZpbmVfaW5zbiAidnN4X2V4dHJhY3RfdjJkZiIKLSsgIFsoc2V0IChtYXRjaF9vcGVy YW5kOkRGIDAgInZzeF9yZWdpc3Rlcl9vcGVyYW5kIiAiPXdzIikKLSsJKHZlY19zZWxlY3Q6REYg KG1hdGNoX29wZXJhbmQ6VjJERiAxICJ2c3hfcmVnaXN0ZXJfb3BlcmFuZCIgIndkIikKKysgIFso c2V0IChtYXRjaF9vcGVyYW5kOkRGIDAgInZzeF9yZWdpc3Rlcl9vcGVyYW5kIiAiPXdzLGYsP3dh IikKKysJKHZlY19zZWxlY3Q6REYgKG1hdGNoX29wZXJhbmQ6VjJERiAxICJ2c3hfcmVnaXN0ZXJf b3BlcmFuZCIgIndkLHdkLHdhIikKICsJCSAgICAgICAocGFyYWxsZWwKLSsJCQlbKG1hdGNoX29w ZXJhbmQ6UUkgMiAidTViaXRfY2ludF9vcGVyYW5kIiAiaSIpXSkpKV0KKysJCQlbKG1hdGNoX29w ZXJhbmQ6UUkgMiAidTViaXRfY2ludF9vcGVyYW5kIiAiaSxpLGkiKV0pKSldCiArICAiVkVDVE9S X1VOSVRfVlNYX1AgKFYyREZtb2RlKSIKICt7Ci0rICBvcGVyYW5kc1szXSA9IEdFTl9JTlQgKElO VFZBTCAob3BlcmFuZHNbMl0pICYgMSk7CisrICBnY2NfYXNzZXJ0IChVSU5UVkFMIChvcGVyYW5k c1syXSkgPD0gMSk7CisrICBvcGVyYW5kc1szXSA9IEdFTl9JTlQgKElOVFZBTCAob3BlcmFuZHNb Ml0pIDw8IDEpOwogKyAgcmV0dXJuIFwieHhwZXJtZGkgJXgwLCV4MSwleDEsJTNcIjsKICt9CiAr ICBbKHNldF9hdHRyICJ0eXBlIiAidmVjcGVybSIpXSkKICsKLSs7OyBHZW5lcmFsIFYyREYgcGVy bXV0ZQorKzs7IEdlbmVyYWwgVjJERiBwZXJtdXRlLCBleHRyYWN0X3toaWdoLGxvdyxldmVuLG9k ZH0KICsoZGVmaW5lX2luc24gInZzeF94eHBlcm1kaSIKICsgIFsoc2V0IChtYXRjaF9vcGVyYW5k OlYyREYgMCAidnN4X3JlZ2lzdGVyX29wZXJhbmQiICI9d2QiKQogKwkodmVjX2NvbmNhdDpWMkRG CkBAIC02NDk2LDYgKzgzNzQsNyBAQCB0ZXN0c3VpdGUvCiArCQkJIFsobWF0Y2hfb3BlcmFuZDpR SSA0ICJ1NWJpdF9jaW50X29wZXJhbmQiICJpIildKSkpKV0KICsgICJWRUNUT1JfVU5JVF9WU1hf UCAoVjJERm1vZGUpIgogK3sKKysgIGdjY19hc3NlcnQgKChVSU5UVkFMIChvcGVyYW5kc1syXSkg PD0gMSkgJiYgKFVJTlRWQUwgKG9wZXJhbmRzWzRdKSA8PSAxKSk7CiArICBvcGVyYW5kc1s1XSA9 IEdFTl9JTlQgKCgoSU5UVkFMIChvcGVyYW5kc1syXSkgJiAxKSA8PCAxKQogKwkJCSB8IChJTlRW QUwgKG9wZXJhbmRzWzRdKSAmIDEpKTsKICsgIHJldHVybiBcInh4cGVybWRpICV4MCwleDEsJXgz LCU1XCI7CkBAIC02NTA0LDYzICs4MzgzLDcwIEBAIHRlc3RzdWl0ZS8KICsKICs7OyBWMkRGIHNw bGF0CiArKGRlZmluZV9pbnNuICJ2c3hfc3BsYXR2MmRmIgotKyAgWyhzZXQgKG1hdGNoX29wZXJh bmQ6VjJERiAwICJ2c3hfcmVnaXN0ZXJfb3BlcmFuZCIgIj13ZCx3ZCIpCisrICBbKHNldCAobWF0 Y2hfb3BlcmFuZDpWMkRGIDAgInZzeF9yZWdpc3Rlcl9vcGVyYW5kIiAiPXdkLHdkLHdkLD93YSw/ d2EsP3dhIikKICsJKHZlY19kdXBsaWNhdGU6VjJERgotKwkgKG1hdGNoX29wZXJhbmQ6REYgMSAi aW5wdXRfb3BlcmFuZCIgIndzLFoiKSkpXQorKwkgKG1hdGNoX29wZXJhbmQ6REYgMSAiaW5wdXRf b3BlcmFuZCIgIndzLGYsWix3YSx3YSxaIikpKV0KICsgICJWRUNUT1JfVU5JVF9WU1hfUCAoVjJE Rm1vZGUpIgogKyAgIkAKICsgICB4eHBlcm1kaSAleDAsJXgxLCV4MSwwCisrICAgeHhwZXJtZGkg JXgwLCV4MSwleDEsMAorKyAgIGx4dmRzeCAleDAsJXkxCisrICAgeHhwZXJtZGkgJXgwLCV4MSwl eDEsMAorKyAgIHh4cGVybWRpICV4MCwleDEsJXgxLDAKICsgICBseHZkc3ggJXgwLCV5MSIKLSsg IFsoc2V0X2F0dHIgInR5cGUiICJ2ZWNwZXJtLHZlY2xvYWQiKV0pCisrICBbKHNldF9hdHRyICJ0 eXBlIiAidmVjcGVybSx2ZWNwZXJtLHZlY2xvYWQsdmVjcGVybSx2ZWNwZXJtLHZlY2xvYWQiKV0p CiArCiArOzsgVjRTRiBzcGxhdAogKyhkZWZpbmVfaW5zbiAiKnZzeF94eHNwbHR3IgotKyAgWyhz ZXQgKG1hdGNoX29wZXJhbmQ6VjRTRiAwICJ2c3hfcmVnaXN0ZXJfb3BlcmFuZCIgIj13ZiIpCisr ICBbKHNldCAobWF0Y2hfb3BlcmFuZDpWNFNGIDAgInZzeF9yZWdpc3Rlcl9vcGVyYW5kIiAiPXdm LD93YSIpCiArCSh2ZWNfZHVwbGljYXRlOlY0U0YKLSsJICh2ZWNfc2VsZWN0OlNGIChtYXRjaF9v cGVyYW5kOlY0U0YgMSAidnN4X3JlZ2lzdGVyX29wZXJhbmQiICJ3ZiIpCisrCSAodmVjX3NlbGVj dDpTRiAobWF0Y2hfb3BlcmFuZDpWNFNGIDEgInZzeF9yZWdpc3Rlcl9vcGVyYW5kIiAid2Ysd2Ei KQogKwkJCShwYXJhbGxlbAotKwkJCSBbKG1hdGNoX29wZXJhbmQ6UUkgMiAidTViaXRfY2ludF9v cGVyYW5kIiAiaSIpXSkpKSldCisrCQkJIFsobWF0Y2hfb3BlcmFuZDpRSSAyICJ1NWJpdF9jaW50 X29wZXJhbmQiICJpLGkiKV0pKSkpXQogKyAgIlZFQ1RPUl9VTklUX1ZTWF9QIChWNFNGbW9kZSki CiArICAieHhzcGx0dyAleDAsJXgxLCUyIgogKyAgWyhzZXRfYXR0ciAidHlwZSIgInZlY3Blcm0i KV0pCiArCiArOzsgVjRTRiBpbnRlcmxlYXZlCi0rKGRlZmluZV9pbnNuICIqdnN4X3h4bXJnaHci Ci0rICBbKHNldCAobWF0Y2hfb3BlcmFuZDpWNFNGIDAgInJlZ2lzdGVyX29wZXJhbmQiICI9diIp Ci0rICAgICAgICAodmVjX21lcmdlOlY0U0YgKHZlY19zZWxlY3Q6VjRTRiAobWF0Y2hfb3BlcmFu ZDpWNFNGIDEgInJlZ2lzdGVyX29wZXJhbmQiICJ2IikKLSsgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIChwYXJhbGxlbCBbKGNvbnN0X2ludCAwKQotKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY29uc3RfaW50IDIpCi0r ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjb25z dF9pbnQgMSkKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgKGNvbnN0X2ludCAzKV0pKQotKyAgICAgICAgICAgICAgICAgICAgICAgICh2ZWNfc2Vs ZWN0OlY0U0YgKG1hdGNoX29wZXJhbmQ6VjRTRiAyICJyZWdpc3Rlcl9vcGVyYW5kIiAidiIpCi0r ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAocGFyYWxsZWwgWyhjb25z dF9pbnQgMikKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgKGNvbnN0X2ludCAwKQotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAoY29uc3RfaW50IDMpCi0rICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjb25zdF9pbnQgMSldKSkKLSsgICAgICAgICAg ICAgICAgICAgICAgKGNvbnN0X2ludCA1KSkpXQotKyAgIlZFQ1RPUl9VTklUX1ZTWF9QIChWNFNG bW9kZSkiCi0rICAieHhtcmdodyAleDAsJXgxLCV4MiIKLSsgIFsoc2V0X2F0dHIgInR5cGUiICJ2 ZWNwZXJtIildKQotKwotKyhkZWZpbmVfaW5zbiAiKnZzeF94eG1yZ2x3IgotKyAgWyhzZXQgKG1h dGNoX29wZXJhbmQ6VjRTRiAwICJyZWdpc3Rlcl9vcGVyYW5kIiAiPXYiKQorKyhkZWZpbmVfaW5z biAidnN4X3h4bXJnaHciCisrICBbKHNldCAobWF0Y2hfb3BlcmFuZDpWNFNGIDAgInJlZ2lzdGVy X29wZXJhbmQiICI9d2YsP3dhIikKICsgICAgICAgICh2ZWNfbWVyZ2U6VjRTRgotKwkgKHZlY19z ZWxlY3Q6VjRTRiAobWF0Y2hfb3BlcmFuZDpWNFNGIDEgInJlZ2lzdGVyX29wZXJhbmQiICJ2IikK LSsJCQkgIChwYXJhbGxlbCBbKGNvbnN0X2ludCAyKQotKwkJCQkgICAgIChjb25zdF9pbnQgMCkK LSsJCQkJICAgICAoY29uc3RfaW50IDMpCi0rCQkJCSAgICAgKGNvbnN0X2ludCAxKV0pKQotKwkg KHZlY19zZWxlY3Q6VjRTRiAobWF0Y2hfb3BlcmFuZDpWNFNGIDIgInJlZ2lzdGVyX29wZXJhbmQi ICJ2IikKKysJICh2ZWNfc2VsZWN0OlY0U0YgKG1hdGNoX29wZXJhbmQ6VjRTRiAxICJ2c3hfcmVn aXN0ZXJfb3BlcmFuZCIgIndmLHdhIikKICsJCQkgIChwYXJhbGxlbCBbKGNvbnN0X2ludCAwKQog KwkJCQkgICAgIChjb25zdF9pbnQgMikKICsJCQkJICAgICAoY29uc3RfaW50IDEpCiArCQkJCSAg ICAgKGNvbnN0X2ludCAzKV0pKQorKwkgKHZlY19zZWxlY3Q6VjRTRiAobWF0Y2hfb3BlcmFuZDpW NFNGIDIgInZzeF9yZWdpc3Rlcl9vcGVyYW5kIiAid2Ysd2EiKQorKwkJCSAgKHBhcmFsbGVsIFso Y29uc3RfaW50IDIpCisrCQkJCSAgICAgKGNvbnN0X2ludCAwKQorKwkJCQkgICAgIChjb25zdF9p bnQgMykKKysJCQkJICAgICAoY29uc3RfaW50IDEpXSkpCisrCSAoY29uc3RfaW50IDUpKSldCisr ICAiVkVDVE9SX1VOSVRfVlNYX1AgKFY0U0Ztb2RlKSIKKysgICJ4eG1yZ2h3ICV4MCwleDEsJXgy IgorKyAgWyhzZXRfYXR0ciAidHlwZSIgInZlY3Blcm0iKV0pCisrCisrKGRlZmluZV9pbnNuICJ2 c3hfeHhtcmdsdyIKKysgIFsoc2V0IChtYXRjaF9vcGVyYW5kOlY0U0YgMCAicmVnaXN0ZXJfb3Bl cmFuZCIgIj13Ziw/d2EiKQorKyAgICAgICAgKHZlY19tZXJnZTpWNFNGCisrCSAodmVjX3NlbGVj dDpWNFNGCisrCSAgKG1hdGNoX29wZXJhbmQ6VjRTRiAxICJyZWdpc3Rlcl9vcGVyYW5kIiAid2Ys d2EiKQorKwkgIChwYXJhbGxlbCBbKGNvbnN0X2ludCAyKQorKwkJICAgICAoY29uc3RfaW50IDAp CisrCQkgICAgIChjb25zdF9pbnQgMykKKysJCSAgICAgKGNvbnN0X2ludCAxKV0pKQorKwkgKHZl Y19zZWxlY3Q6VjRTRgorKwkgIChtYXRjaF9vcGVyYW5kOlY0U0YgMiAicmVnaXN0ZXJfb3BlcmFu ZCIgIndmLD93YSIpCisrCSAgKHBhcmFsbGVsIFsoY29uc3RfaW50IDApCisrCQkgICAgIChjb25z dF9pbnQgMikKKysJCSAgICAgKGNvbnN0X2ludCAxKQorKwkJICAgICAoY29uc3RfaW50IDMpXSkp CiArCSAoY29uc3RfaW50IDUpKSldCiArICAiVkVDVE9SX1VOSVRfVlNYX1AgKFY0U0Ztb2RlKSIK ICsgICJ4eG1yZ2x3ICV4MCwleDEsJXgyIgogKyAgWyhzZXRfYXR0ciAidHlwZSIgInZlY3Blcm0i KV0pCi0tLS0gZ2NjL2NvbmZpZy9yczYwMDAvcnM2MDAwLmgJKC4uLi90cnVuaykJKHJldmlzaW9u IDE0NDU1NykKLSsrKyBnY2MvY29uZmlnL3JzNjAwMC9yczYwMDAuaAkoLi4uL2JyYW5jaGVzL2li bS9wb3dlcjctbWVpc3NuZXIpCShyZXZpc2lvbiAxNDQ3MzApCistLS0gZ2NjL2NvbmZpZy9yczYw MDAvcnM2MDAwLmgJKC4uLi90cnVuaykJKHJldmlzaW9uIDE0NTc3NykKKysrKyBnY2MvY29uZmln L3JzNjAwMC9yczYwMDAuaAkoLi4uL2JyYW5jaGVzL2libS9wb3dlcjctbWVpc3NuZXIpCShyZXZp c2lvbiAxNDYwMjcpCiBAQCAtMSw2ICsxLDYgQEAKICAvKiBEZWZpbml0aW9ucyBvZiB0YXJnZXQg bWFjaGluZSBmb3IgR05VIGNvbXBpbGVyLCBmb3IgSUJNIFJTLzYwMDAuCiAgICAgQ29weXJpZ2h0 IChDKSAxOTkyLCAxOTkzLCAxOTk0LCAxOTk1LCAxOTk2LCAxOTk3LCAxOTk4LCAxOTk5LApAQCAt NjYxNiwyMiArODUwMiwyNSBAQCB0ZXN0c3VpdGUvCiAgI2VuZGlmCiAgCiAgI2lmbmRlZiBDQzFf Q1BVX1NQRUMKLUBAIC0yNDAsNiArMjQ4LDE0IEBAIGV4dGVybiBjb25zdCBjaGFyICpob3N0X2Rl dGVjdF9sb2NhbF9jcHUKLSAjZGVmaW5lIFRBUkdFVF9ERlAgMAorQEAgLTIzMywxMSArMjQxLDEy IEBAIGV4dGVybiBjb25zdCBjaGFyICpob3N0X2RldGVjdF9sb2NhbF9jcHUKKyAjZGVmaW5lIFRB UkdFVF9NRlBHUFIgMAogICNlbmRpZgogIAorLS8qIERlZmluZSBUQVJHRVRfREZQIGlmIHRoZSB0 YXJnZXQgYXNzZW1ibGVyIGRvZXMgbm90IHN1cHBvcnQgZGVjaW1hbAorLSAgIGZsb2F0aW5nIHBv aW50IGluc3RydWN0aW9ucy4gICovCistI2lmbmRlZiBIQVZFX0FTX0RGUAorLSN1bmRlZiAgVEFS R0VUX0RGUAorLSNkZWZpbmUgVEFSR0VUX0RGUCAwCiArLyogRGVmaW5lIFRBUkdFVF9QT1BDTlRE IGlmIHRoZSB0YXJnZXQgYXNzZW1ibGVyIGRvZXMgbm90IHN1cHBvcnQgdGhlCiArICAgcG9wY291 bnQgd29yZCBhbmQgZG91YmxlIHdvcmQgaW5zdHJ1Y3Rpb25zLiAgKi8KICsKICsjaWZuZGVmIEhB VkVfQVNfUE9QQ05URAogKyN1bmRlZiAgVEFSR0VUX1BPUENOVEQKICsjZGVmaW5lIFRBUkdFVF9Q T1BDTlREIDAKLSsjZW5kaWYKLSsKLSAjaWZuZGVmIFRBUkdFVF9TRUNVUkVfUExUCi0gI2RlZmlu ZSBUQVJHRVRfU0VDVVJFX1BMVCAwCiAgI2VuZGlmCi1AQCAtMjk1LDYgKzMxMSw3IEBAIGVudW0g cHJvY2Vzc29yX3R5cGUKKyAKKyAjaWZuZGVmIFRBUkdFVF9TRUNVUkVfUExUCitAQCAtMjk1LDYg KzMwNCw3IEBAIGVudW0gcHJvY2Vzc29yX3R5cGUKICAgICBQUk9DRVNTT1JfUE9XRVI0LAogICAg IFBST0NFU1NPUl9QT1dFUjUsCiAgICAgUFJPQ0VTU09SX1BPV0VSNiwKQEAgLTY2MzksMjEgKzg1 MjgsMjMgQEAgdGVzdHN1aXRlLwogICAgIFBST0NFU1NPUl9DRUxMCiAgfTsKICAKLUBAIC0zODgs OSArNDA1LDEzIEBAIGV4dGVybiBzdHJ1Y3QgcnM2MDAwX2NwdV9zZWxlY3QgcnM2MDAwX3MKK0BA IC0zODgsOSArMzk4LDE1IEBAIGV4dGVybiBzdHJ1Y3QgcnM2MDAwX2NwdV9zZWxlY3QgcnM2MDAw X3MKICBleHRlcm4gY29uc3QgY2hhciAqcnM2MDAwX2RlYnVnX25hbWU7CS8qIE5hbWUgZm9yIC1t ZGVidWcteHh4eCBvcHRpb24gKi8KICBleHRlcm4gaW50IHJzNjAwMF9kZWJ1Z19zdGFjazsJCS8q IGRlYnVnIHN0YWNrIGFwcGxpY2F0aW9ucyAqLwogIGV4dGVybiBpbnQgcnM2MDAwX2RlYnVnX2Fy ZzsJCS8qIGRlYnVnIGFyZ3VtZW50IGhhbmRsaW5nICovCiArZXh0ZXJuIGludCByczYwMDBfZGVi dWdfcmVnOwkJLyogZGVidWcgcmVnaXN0ZXIgaGFuZGxpbmcgKi8KICtleHRlcm4gaW50IHJzNjAw MF9kZWJ1Z19hZGRyOwkJLyogZGVidWcgbWVtb3J5IGFkZHJlc3NpbmcgKi8KKytleHRlcm4gaW50 IHJzNjAwMF9kZWJ1Z19jb3N0OwkJLyogZGVidWcgcnR4X2Nvc3RzICovCiAgCiAgI2RlZmluZQlU QVJHRVRfREVCVUdfU1RBQ0sJcnM2MDAwX2RlYnVnX3N0YWNrCiAgI2RlZmluZQlUQVJHRVRfREVC VUdfQVJHCXJzNjAwMF9kZWJ1Z19hcmcKICsjZGVmaW5lIFRBUkdFVF9ERUJVR19SRUcJcnM2MDAw X2RlYnVnX3JlZwogKyNkZWZpbmUgVEFSR0VUX0RFQlVHX0FERFIJcnM2MDAwX2RlYnVnX2FkZHIK KysjZGVmaW5lIFRBUkdFVF9ERUJVR19DT1NUCXJzNjAwMF9kZWJ1Z19jb3N0CiAgCiAgZXh0ZXJu IGNvbnN0IGNoYXIgKnJzNjAwMF90cmFjZWJhY2tfbmFtZTsgLyogVHlwZSBvZiB0cmFjZWJhY2sg dGFibGUuICAqLwogIAotQEAgLTQwMSwxMyArNDIyLDY1IEBAIGV4dGVybiBpbnQgcnM2MDAwX2ll ZWVxdWFkOworQEAgLTQwMSwxMyArNDE3LDY1IEBAIGV4dGVybiBpbnQgcnM2MDAwX2llZWVxdWFk OwogIGV4dGVybiBpbnQgcnM2MDAwX2FsdGl2ZWNfYWJpOwogIGV4dGVybiBpbnQgcnM2MDAwX3Nw ZV9hYmk7CiAgZXh0ZXJuIGludCByczYwMDBfc3BlOwpAQCAtNjcyMCw3ICs4NjExLDcgQEAgdGVz dHN1aXRlLwogIC8qIEFsaWdubWVudCBvcHRpb25zIGZvciBmaWVsZHMgaW4gc3RydWN0dXJlcyBm b3Igc3ViLXRhcmdldHMgZm9sbG93aW5nCiAgICAgQUlYLWxpa2UgQUJJLgogICAgIEFMSUdOX1BP V0VSIHdvcmQtYWxpZ25zIEZQIGRvdWJsZXMgKGRlZmF1bHQgQUlYIEFCSSkuCi1AQCAtNDMyLDcg KzUwNSw3IEBAIGV4dGVybiBpbnQgcnM2MDAwX3hpbGlueF9mcHU7CitAQCAtNDMyLDcgKzUwMCw3 IEBAIGV4dGVybiBpbnQgcnM2MDAwX3hpbGlueF9mcHU7CiAgI2RlZmluZSBUQVJHRVRfU1BFX0FC SSAwCiAgI2RlZmluZSBUQVJHRVRfU1BFIDAKICAjZGVmaW5lIFRBUkdFVF9FNTAwIDAKQEAgLTY3 MjksNyArODYyMCw3IEBAIHRlc3RzdWl0ZS8KICAjZGVmaW5lIFRBUkdFVF9GUFJTIDEKICAjZGVm aW5lIFRBUkdFVF9FNTAwX1NJTkdMRSAwCiAgI2RlZmluZSBUQVJHRVRfRTUwMF9ET1VCTEUgMAot QEAgLTUzMCw2ICs2MDMsNyBAQCBleHRlcm4gaW50IHJzNjAwMF94aWxpbnhfZnB1OworQEAgLTUz MCw2ICs1OTgsNyBAQCBleHRlcm4gaW50IHJzNjAwMF94aWxpbnhfZnB1OwogICNlbmRpZgogICNk ZWZpbmUgVU5JVFNfUEVSX0ZQX1dPUkQgOAogICNkZWZpbmUgVU5JVFNfUEVSX0FMVElWRUNfV09S RCAxNgpAQCAtNjczNyw3ICs4NjI4LDcgQEAgdGVzdHN1aXRlLwogICNkZWZpbmUgVU5JVFNfUEVS X1NQRV9XT1JEIDgKICAjZGVmaW5lIFVOSVRTX1BFUl9QQUlSRURfV09SRCA4CiAgCi1AQCAtNjAw LDggKzY3NCw5IEBAIGV4dGVybiBpbnQgcnM2MDAwX3hpbGlueF9mcHU7CitAQCAtNjAwLDggKzY2 OSw5IEBAIGV4dGVybiBpbnQgcnM2MDAwX3hpbGlueF9mcHU7CiAgI2RlZmluZSBQQVJNX0JPVU5E QVJZIChUQVJHRVRfMzJCSVQgPyAzMiA6IDY0KQogIAogIC8qIEJvdW5kYXJ5IChpbiAqYml0cyop IG9uIHdoaWNoIHN0YWNrIHBvaW50ZXIgc2hvdWxkIGJlIGFsaWduZWQuICAqLwpAQCAtNjc0OSw3 ICs4NjQwLDcgQEAgdGVzdHN1aXRlLwogIAogIC8qIEFsbG9jYXRpb24gYm91bmRhcnkgKGluICpi aXRzKikgZm9yIHRoZSBjb2RlIG9mIGEgZnVuY3Rpb24uICAqLwogICNkZWZpbmUgRlVOQ1RJT05f Qk9VTkRBUlkgMzIKLUBAIC02MTMsMTAgKzY4OCwxMSBAQCBleHRlcm4gaW50IHJzNjAwMF94aWxp bnhfZnB1OworQEAgLTYxMywxMCArNjgzLDExIEBAIGV4dGVybiBpbnQgcnM2MDAwX3hpbGlueF9m cHU7CiAgICAgbG9jYWwgc3RvcmUuICBUWVBFIGlzIHRoZSBkYXRhIHR5cGUsIGFuZCBBTElHTiBp cyB0aGUgYWxpZ25tZW50CiAgICAgdGhhdCB0aGUgb2JqZWN0IHdvdWxkIG9yZGluYXJpbHkgaGF2 ZS4gICovCiAgI2RlZmluZSBMT0NBTF9BTElHTk1FTlQoVFlQRSwgQUxJR04pCQkJCVwKQEAgLTY3 NjQsNyArODY1NSw3IEBAIHRlc3RzdWl0ZS8KICAgICAgICYmIFNQRV9WRUNUT1JfTU9ERSAoVFlQ RV9NT0RFIChUWVBFKSkpIHx8IChUQVJHRVRfUEFJUkVEX0ZMT0FUIFwKICAgICAgICAgICYmIFRS RUVfQ09ERSAoVFlQRSkgPT0gVkVDVE9SX1RZUEUgXAogICAgICAgICAgJiYgUEFJUkVEX1ZFQ1RP Ul9NT0RFIChUWVBFX01PREUgKFRZUEUpKSkpID8gNjQgOiBBTElHTikKLUBAIC02NzQsMTUgKzc1 MCwxNyBAQCBleHRlcm4gaW50IHJzNjAwMF94aWxpbnhfZnB1OworQEAgLTY3NCwxNSArNzQ1LDE3 IEBAIGV4dGVybiBpbnQgcnM2MDAwX3hpbGlueF9mcHU7CiAgLyogRGVmaW5lIHRoaXMgbWFjcm8g dG8gYmUgdGhlIHZhbHVlIDEgaWYgdW5hbGlnbmVkIGFjY2Vzc2VzIGhhdmUgYSBjb3N0CiAgICAg bWFueSB0aW1lcyBncmVhdGVyIHRoYW4gYWxpZ25lZCBhY2Nlc3NlcywgZm9yIGV4YW1wbGUgaWYg dGhleSBhcmUKICAgICBlbXVsYXRlZCBpbiBhIHRyYXAgaGFuZGxlci4gICovCkBAIC02Nzg1LDcg Kzg2NzYsNyBAQCB0ZXN0c3VpdGUvCiAgDAogIC8qIFN0YW5kYXJkIHJlZ2lzdGVyIHVzYWdlLiAg Ki8KICAKLUBAIC05MDksMTYgKzk4Nyw2MCBAQCBleHRlcm4gaW50IHJzNjAwMF94aWxpbnhfZnB1 OworQEAgLTkwOSwxNiArOTgyLDYwIEBAIGV4dGVybiBpbnQgcnM2MDAwX3hpbGlueF9mcHU7CiAg LyogVHJ1ZSBpZiByZWdpc3RlciBpcyBhbiBBbHRpVmVjIHJlZ2lzdGVyLiAgKi8KICAjZGVmaW5l IEFMVElWRUNfUkVHTk9fUChOKSAoKE4pID49IEZJUlNUX0FMVElWRUNfUkVHTk8gJiYgKE4pIDw9 IExBU1RfQUxUSVZFQ19SRUdOTykKICAKQEAgLTY4NDcsNyArODczOCw3IEBAIHRlc3RzdWl0ZS8K ICAjZGVmaW5lIEFMVElWRUNfVkVDVE9SX01PREUoTU9ERSkJXAogIAkgKChNT0RFKSA9PSBWMTZR SW1vZGUJCVwKICAJICB8fCAoTU9ERSkgPT0gVjhISW1vZGUJCVwKLUBAIC05MzQsMTAgKzEwNTYs MTIgQEAgZXh0ZXJuIGludCByczYwMDBfeGlsaW54X2ZwdTsKK0BAIC05MzQsMTAgKzEwNTEsMTIg QEAgZXh0ZXJuIGludCByczYwMDBfeGlsaW54X2ZwdTsKICAjZGVmaW5lIFBBSVJFRF9WRUNUT1Jf TU9ERShNT0RFKSAgICAgICAgXAogICAgICAgICAgICgoTU9ERSkgPT0gVjJTRm1vZGUpICAgICAg ICAgICAgCiAgCkBAIC02ODY0LDcgKzg3NTUsNyBAQCB0ZXN0c3VpdGUvCiAgCiAgLyogVmFsdWUg aXMgVFJVRSBpZiBoYXJkIHJlZ2lzdGVyIFJFR05PIGNhbiBob2xkIGEgdmFsdWUgb2YKICAgICBt YWNoaW5lLW1vZGUgTU9ERS4gICovCi1AQCAtOTY1LDYgKzEwODksMTAgQEAgZXh0ZXJuIGludCBy czYwMDBfeGlsaW54X2ZwdTsKK0BAIC05NjUsNiArMTA4NCwxMCBAQCBleHRlcm4gaW50IHJzNjAw MF94aWxpbnhfZnB1OwogICAgID8gQUxUSVZFQ19WRUNUT1JfTU9ERSAoTU9ERTIpCQlcCiAgICAg OiBBTFRJVkVDX1ZFQ1RPUl9NT0RFIChNT0RFMikJCVwKICAgICA/IEFMVElWRUNfVkVDVE9SX01P REUgKE1PREUxKQkJXApAQCAtNjg3NSw3ICs4NzY2LDcgQEAgdGVzdHN1aXRlLwogICAgIDogMSkK ICAKICAvKiBQb3N0LXJlbG9hZCwgd2UgY2FuJ3QgdXNlIGFueSBuZXcgQWx0aVZlYyByZWdpc3Rl cnMsIGFzIHdlIGFscmVhZHkKLUBAIC0xMDU2LDkgKzExODQsMTAgQEAgZXh0ZXJuIGludCByczYw MDBfeGlsaW54X2ZwdTsKK0BAIC0xMDU2LDkgKzExNzksMTAgQEAgZXh0ZXJuIGludCByczYwMDBf eGlsaW54X2ZwdTsKICAgICBGb3IgYW55IHR3byBjbGFzc2VzLCBpdCBpcyB2ZXJ5IGRlc2lyYWJs ZSB0aGF0IHRoZXJlIGJlIGFub3RoZXIKICAgICBjbGFzcyB0aGF0IHJlcHJlc2VudHMgdGhlaXIg dW5pb24uICAqLwogIApAQCAtNjg4OSw3ICs4NzgwLDcgQEAgdGVzdHN1aXRlLwogIAogICAgIEhv d2V2ZXIsIHIwIGlzIHNwZWNpYWwgaW4gdGhhdCBpdCBjYW5ub3QgYmUgdXNlZCBhcyBhIGJhc2Ug cmVnaXN0ZXIuCiAgICAgU28gbWFrZSBhIGNsYXNzIGZvciByZWdpc3RlcnMgdmFsaWQgYXMgYmFz ZSByZWdpc3RlcnMuCi1AQCAtMTA3Myw2ICsxMjAyLDcgQEAgZW51bSByZWdfY2xhc3MKK0BAIC0x MDczLDYgKzExOTcsNyBAQCBlbnVtIHJlZ19jbGFzcwogICAgR0VORVJBTF9SRUdTLAogICAgRkxP QVRfUkVHUywKICAgIEFMVElWRUNfUkVHUywKQEAgLTY4OTcsNyArODc4OCw3IEBAIHRlc3RzdWl0 ZS8KICAgIFZSU0FWRV9SRUdTLAogICAgVlNDUl9SRUdTLAogICAgU1BFX0FDQ19SRUdTLAotQEAg LTExMDMsNiArMTIzMyw3IEBAIGVudW0gcmVnX2NsYXNzCitAQCAtMTEwMyw2ICsxMjI4LDcgQEAg ZW51bSByZWdfY2xhc3MKICAgICJHRU5FUkFMX1JFR1MiLAkJCQkJCQlcCiAgICAiRkxPQVRfUkVH UyIsCQkJCQkJCQlcCiAgICAiQUxUSVZFQ19SRUdTIiwJCQkJCQkJXApAQCAtNjkwNSw3ICs4Nzk2 LDcgQEAgdGVzdHN1aXRlLwogICAgIlZSU0FWRV9SRUdTIiwJCQkJCQkJXAogICAgIlZTQ1JfUkVH UyIsCQkJCQkJCQlcCiAgICAiU1BFX0FDQ19SRUdTIiwgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotQEAgLTExMzIsNiArMTI2Myw3IEBAIGVu dW0gcmVnX2NsYXNzCitAQCAtMTEzMiw2ICsxMjU4LDcgQEAgZW51bSByZWdfY2xhc3MKICAgIHsg MHhmZmZmZmZmZiwgMHgwMDAwMDAwMCwgMHgwMDAwMDAwOCwgMHgwMDAyMDAwMCB9LCAvKiBHRU5F UkFMX1JFR1MgKi8gICAgIFwKICAgIHsgMHgwMDAwMDAwMCwgMHhmZmZmZmZmZiwgMHgwMDAwMDAw MCwgMHgwMDAwMDAwMCB9LCAvKiBGTE9BVF9SRUdTICovICAgICAgIFwKICAgIHsgMHgwMDAwMDAw MCwgMHgwMDAwMDAwMCwgMHhmZmZmZTAwMCwgMHgwMDAwMWZmZiB9LCAvKiBBTFRJVkVDX1JFR1Mg Ki8gICAgIFwKQEAgLTY5MTMsMjUgKzg4MDQsNDMgQEAgdGVzdHN1aXRlLwogICAgeyAweDAwMDAw MDAwLCAweDAwMDAwMDAwLCAweDAwMDAwMDAwLCAweDAwMDAyMDAwIH0sIC8qIFZSU0FWRV9SRUdT ICovCSAgICAgXAogICAgeyAweDAwMDAwMDAwLCAweDAwMDAwMDAwLCAweDAwMDAwMDAwLCAweDAw MDA0MDAwIH0sIC8qIFZTQ1JfUkVHUyAqLwkgICAgIFwKICAgIHsgMHgwMDAwMDAwMCwgMHgwMDAw MDAwMCwgMHgwMDAwMDAwMCwgMHgwMDAwODAwMCB9LCAvKiBTUEVfQUNDX1JFR1MgKi8gICAgIFwK LUBAIC0xMTc5LDggKzEzMTEsOCBAQCBlbnVtIHJlZ19jbGFzcwotICAgOiAoUkVHTk8pID09IENS MF9SRUdOTyA/IENSMF9SRUdTCQlcCi0gICA6IENSX1JFR05PX1AgKFJFR05PKSA/IENSX1JFR1MJ CVwKLSAgIDogKFJFR05PKSA9PSBNUV9SRUdOTyA/IE1RX1JFR1MJCVwKK0BAIC0xMTcxLDI5ICsx Mjk4LDI5IEBAIGVudW0gcmVnX2NsYXNzCisgICAgcmVnIG51bWJlciBSRUdOTy4gIFRoaXMgY291 bGQgYmUgYSBjb25kaXRpb25hbCBleHByZXNzaW9uCisgICAgb3IgY291bGQgaW5kZXggYW4gYXJy YXkuICAqLworIAorLSNkZWZpbmUgUkVHTk9fUkVHX0NMQVNTKFJFR05PKQkJCVwKKy0gKChSRUdO TykgPT0gMCA/IEdFTkVSQUxfUkVHUwkJCVwKKy0gIDogKFJFR05PKSA8IDMyID8gQkFTRV9SRUdT CQkJXAorLSAgOiBGUF9SRUdOT19QIChSRUdOTykgPyBGTE9BVF9SRUdTCQlcCistICA6IEFMVElW RUNfUkVHTk9fUCAoUkVHTk8pID8gQUxUSVZFQ19SRUdTCVwKKy0gIDogKFJFR05PKSA9PSBDUjBf UkVHTk8gPyBDUjBfUkVHUwkJXAorLSAgOiBDUl9SRUdOT19QIChSRUdOTykgPyBDUl9SRUdTCQlc CistICA6IChSRUdOTykgPT0gTVFfUkVHTk8gPyBNUV9SRUdTCQlcCiAtICA6IChSRUdOTykgPT0g TFJfUkVHTk8gPyBMSU5LX1JFR1MJXAogLSAgOiAoUkVHTk8pID09IENUUl9SRUdOTyA/IENUUl9S RUdTCVwKLSsgIDogKFJFR05PKSA9PSBMUl9SRUdOTyA/IExJTktfUkVHUwkJXAotKyAgOiAoUkVH Tk8pID09IENUUl9SRUdOTyA/IENUUl9SRUdTCQlcCi0gICA6IChSRUdOTykgPT0gQVJHX1BPSU5U RVJfUkVHTlVNID8gQkFTRV9SRUdTCVwKLSAgIDogKFJFR05PKSA9PSBYRVJfUkVHTk8gPyBYRVJf UkVHUwkJXAotICAgOiAoUkVHTk8pID09IFZSU0FWRV9SRUdOTyA/IFZSU0FWRV9SRUdTCVwKLUBA IC0xMTkwLDEwICsxMzIyLDE4IEBAIGVudW0gcmVnX2NsYXNzCi0gICA6IChSRUdOTykgPT0gRlJB TUVfUE9JTlRFUl9SRUdOVU0gPyBCQVNFX1JFR1MJXAotICAgOiBOT19SRUdTKQotIAorLSAgOiAo UkVHTk8pID09IEFSR19QT0lOVEVSX1JFR05VTSA/IEJBU0VfUkVHUwlcCistICA6IChSRUdOTykg PT0gWEVSX1JFR05PID8gWEVSX1JFR1MJCVwKKy0gIDogKFJFR05PKSA9PSBWUlNBVkVfUkVHTk8g PyBWUlNBVkVfUkVHUwlcCistICA6IChSRUdOTykgPT0gVlNDUl9SRUdOTyA/IFZSU0FWRV9SRUdT CQlcCistICA6IChSRUdOTykgPT0gU1BFX0FDQ19SRUdOTyA/IFNQRV9BQ0NfUkVHUwlcCistICA6 IChSRUdOTykgPT0gU1BFRlNDUl9SRUdOTyA/IFNQRUZTQ1JfUkVHUwlcCistICA6IChSRUdOTykg PT0gRlJBTUVfUE9JTlRFUl9SRUdOVU0gPyBCQVNFX1JFR1MJXAorLSAgOiBOT19SRUdTKQorK2V4 dGVybiBlbnVtIHJlZ19jbGFzcyByczYwMDBfcmVnbm9fcmVnY2xhc3NbRklSU1RfUFNFVURPX1JF R0lTVEVSXTsKKysKKysjaWYgRU5BQkxFX0NIRUNLSU5HCisrI2RlZmluZSBSRUdOT19SRUdfQ0xB U1MoUkVHTk8pIAkJCQkJCVwKKysgIChnY2NfYXNzZXJ0IChJTl9SQU5HRSAoKFJFR05PKSwgMCwg RklSU1RfUFNFVURPX1JFR0lTVEVSLTEpKSwJCVwKKysgICByczYwMDBfcmVnbm9fcmVnY2xhc3Nb KFJFR05PKV0pCisrCisrI2Vsc2UKKysjZGVmaW5lIFJFR05PX1JFR19DTEFTUyhSRUdOTykgcnM2 MDAwX3JlZ25vX3JlZ2NsYXNzWyhSRUdOTyldCisrI2VuZGlmCisrCiArLyogVlNYIHJlZ2lzdGVy IGNsYXNzZXMuICAqLwogK2V4dGVybiBlbnVtIHJlZ19jbGFzcyByczYwMDBfdmVjdG9yX3JlZ19j bGFzc1tdOwogK2V4dGVybiBlbnVtIHJlZ19jbGFzcyByczYwMDBfdnN4X3JlZ19jbGFzczsKLSsK KyAKICAvKiBUaGUgY2xhc3MgdmFsdWUgZm9yIGluZGV4IHJlZ2lzdGVycywgYW5kIHRoZSBvbmUg Zm9yIGJhc2UgcmVncy4gICovCiAgI2RlZmluZSBJTkRFWF9SRUdfQ0xBU1MgR0VORVJBTF9SRUdT CiAgI2RlZmluZSBCQVNFX1JFR19DTEFTUyBCQVNFX1JFR1MKQEAgLTY5NDMsNyArODg1Miw3IEBA IHRlc3RzdWl0ZS8KICAvKiBHaXZlbiBhbiBydHggWCBiZWluZyByZWxvYWRlZCBpbnRvIGEgcmVn IHJlcXVpcmVkIHRvIGJlCiAgICAgaW4gY2xhc3MgQ0xBU1MsIHJldHVybiB0aGUgY2xhc3Mgb2Yg cmVnIHRvIGFjdHVhbGx5IHVzZS4KICAgICBJbiBnZW5lcmFsIHRoaXMgaXMganVzdCBDTEFTUzsg YnV0IG9uIHNvbWUgbWFjaGluZXMKLUBAIC0xMjEzLDEzICsxMzUzLDcgQEAgZW51bSByZWdfY2xh c3MKK0BAIC0xMjEzLDEzICsxMzQwLDcgQEAgZW51bSByZWdfY2xhc3MKICAgKi8KICAKICAjZGVm aW5lIFBSRUZFUlJFRF9SRUxPQURfQ0xBU1MoWCxDTEFTUykJCQlcCkBAIC02OTU4LDcgKzg4Njcs NyBAQCB0ZXN0c3VpdGUvCiAgCiAgLyogUmV0dXJuIHRoZSByZWdpc3RlciBjbGFzcyBvZiBhIHNj cmF0Y2ggcmVnaXN0ZXIgbmVlZGVkIHRvIGNvcHkgSU4gaW50bwogICAgIG9yIG91dCBvZiBhIHJl Z2lzdGVyIGluIENMQVNTIGluIE1PREUuICBJZiBpdCBjYW4gYmUgZG9uZSBkaXJlY3RseSwKLUBA IC0xMjM0LDE4ICsxMzY4LDcgQEAgZW51bSByZWdfY2xhc3MKK0BAIC0xMjM0LDE4ICsxMzU1LDcg QEAgZW51bSByZWdfY2xhc3MKICAgICBhcmUgYXZhaWxhYmxlLiovCiAgCiAgI2RlZmluZSBTRUNP TkRBUllfTUVNT1JZX05FRURFRChDTEFTUzEsQ0xBU1MyLE1PREUpCQkJXApAQCAtNjk3OCw3ICs4 ODg3LDcgQEAgdGVzdHN1aXRlLwogIAogIC8qIEZvciBjcHVzIHRoYXQgY2Fubm90IGxvYWQvc3Rv cmUgU0Rtb2RlIHZhbHVlcyBmcm9tIHRoZSA2NC1iaXQKICAgICBGUCByZWdpc3RlcnMgd2l0aG91 dCB1c2luZyBhIGZ1bGwgNjQtYml0IGxvYWQvc3RvcmUsIHdlIG5lZWQKLUBAIC0xMjU3LDMyICsx MzgwLDE1IEBAIGVudW0gcmVnX2NsYXNzCitAQCAtMTI1NywzMiArMTM2NywxNSBAQCBlbnVtIHJl Z19jbGFzcwogIC8qIFJldHVybiB0aGUgbWF4aW11bSBudW1iZXIgb2YgY29uc2VjdXRpdmUgcmVn aXN0ZXJzCiAgICAgbmVlZGVkIHRvIHJlcHJlc2VudCBtb2RlIE1PREUgaW4gYSByZWdpc3RlciBv ZiBjbGFzcyBDTEFTUy4KICAKQEAgLTcwMTYsNyArODkyNSw3IEBAIHRlc3RzdWl0ZS8KICAKICAv KiBTdGFjayBsYXlvdXQ7IGZ1bmN0aW9uIGVudHJ5LCBleGl0IGFuZCBjYWxsaW5nLiAgKi8KICAK LUBAIC0xMzQzLDggKzE0NDksOCBAQCBleHRlcm4gZW51bSByczYwMDBfYWJpIHJzNjAwMF9jdXJy ZW50X2FiCitAQCAtMTM0Myw4ICsxNDM2LDggQEAgZXh0ZXJuIGVudW0gcnM2MDAwX2FiaSByczYw MDBfY3VycmVudF9hYgogICNkZWZpbmUgU1RBUlRJTkdfRlJBTUVfT0ZGU0VUCQkJCQkJXAogICAg KEZSQU1FX0dST1dTX0RPV05XQVJECQkJCQkJCVwKICAgICA/IDAJCQkJCQkJCQlcCkBAIC03MDI3 LDcgKzg5MzYsNyBAQCB0ZXN0c3VpdGUvCiAgICAgICAgKyBSUzYwMDBfU0FWRV9BUkVBKSkKICAK ICAvKiBPZmZzZXQgZnJvbSB0aGUgc3RhY2sgcG9pbnRlciByZWdpc3RlciB0byBhbiBpdGVtIGR5 bmFtaWNhbGx5Ci1AQCAtMTM1NCw4ICsxNDYwLDggQEAgZXh0ZXJuIGVudW0gcnM2MDAwX2FiaSBy czYwMDBfY3VycmVudF9hYgorQEAgLTEzNTQsOCArMTQ0Nyw4IEBAIGV4dGVybiBlbnVtIHJzNjAw MF9hYmkgcnM2MDAwX2N1cnJlbnRfYWIKICAgICBsZW5ndGggb2YgdGhlIG91dGdvaW5nIGFyZ3Vt ZW50cy4gIFRoZSBkZWZhdWx0IGlzIGNvcnJlY3QgZm9yIG1vc3QKICAgICBtYWNoaW5lcy4gIFNl ZSBgZnVuY3Rpb24uYycgZm9yIGRldGFpbHMuICAqLwogICNkZWZpbmUgU1RBQ0tfRFlOQU1JQ19P RkZTRVQoRlVOREVDTCkJCQkJCVwKQEAgLTcwMzgsNyArODk0Nyw3IEBAIHRlc3RzdWl0ZS8KICAg ICArIChTVEFDS19QT0lOVEVSX09GRlNFVCkpCiAgCiAgLyogSWYgd2UgZ2VuZXJhdGUgYW4gaW5z biB0byBwdXNoIEJZVEVTIGJ5dGVzLAotQEAgLTE2MDUsNyArMTcxMSw3IEBAIHR5cGVkZWYgc3Ry dWN0IHJzNjAwMF9hcmdzCitAQCAtMTYwNSw3ICsxNjk4LDcgQEAgdHlwZWRlZiBzdHJ1Y3QgcnM2 MDAwX2FyZ3MKICAjZGVmaW5lCUVQSUxPR1VFX1VTRVMoUkVHTk8pCQkJCQlcCiAgICAoKHJlbG9h ZF9jb21wbGV0ZWQgJiYgKFJFR05PKSA9PSBMUl9SRUdOTykJCQlcCiAgICAgfHwgKFRBUkdFVF9B TFRJVkVDICYmIChSRUdOTykgPT0gVlJTQVZFX1JFR05PKQkJXApAQCAtNzA0Nyw3ICs4OTU2LDcg QEAgdGVzdHN1aXRlLwogICAgICAgICAmJiBUQVJHRVRfQUlYCQkJCQkJXAogICAgICAgICAmJiAo UkVHTk8pID09IDIpKQogIAotQEAgLTIzMTYsNyArMjQyMiwyNCBAQCBleHRlcm4gY2hhciByczYw MDBfcmVnX25hbWVzW11bOF07CS8qIHJlCitAQCAtMjMxNiw3ICsyNDA5LDI0IEBAIGV4dGVybiBj aGFyIHJzNjAwMF9yZWdfbmFtZXNbXVs4XTsJLyogcmUKICAgIC8qIG5vIGFkZGl0aW9uYWwgbmFt ZXMgZm9yOiBtcSwgbHIsIGN0ciwgYXAgKi8JCVwKICAgIHsiY3IwIiwgIDY4fSwgeyJjcjEiLCAg Njl9LCB7ImNyMiIsICA3MH0sIHsiY3IzIiwgIDcxfSwJXAogICAgeyJjcjQiLCAgNzJ9LCB7ImNy NSIsICA3M30sIHsiY3I2IiwgIDc0fSwgeyJjcjciLCAgNzV9LAlcCkBAIC03MDczLDcgKzg5ODIs NyBAQCB0ZXN0c3VpdGUvCiAgCiAgLyogVGV4dCB0byB3cml0ZSBvdXQgYWZ0ZXIgYSBDQUxMIHRo YXQgbWF5IGJlIHJlcGxhY2VkIGJ5IGdsdWUgY29kZSBieQogICAgIHRoZSBsb2FkZXIuICBUaGlz IGRlcGVuZHMgb24gdGhlIEFJWCB2ZXJzaW9uLiAgKi8KLUBAIC0yNDgwLDEwICsyNjAzLDE0IEBA IGVudW0gcnM2MDAwX2J1aWx0aW5zCitAQCAtMjQ4MCwxMCArMjU5MCwxNCBAQCBlbnVtIHJzNjAw MF9idWlsdGlucwogICAgQUxUSVZFQ19CVUlMVElOX1ZTRUxfNFNGLAogICAgQUxUSVZFQ19CVUlM VElOX1ZTRUxfOEhJLAogICAgQUxUSVZFQ19CVUlMVElOX1ZTRUxfMTZRSSwKQEAgLTcwODgsNyAr ODk5NywxNSBAQCB0ZXN0c3VpdGUvCiAgICBBTFRJVkVDX0JVSUxUSU5fVlBLVUhVTSwKICAgIEFM VElWRUNfQlVJTFRJTl9WUEtVV1VNLAogICAgQUxUSVZFQ19CVUlMVElOX1ZQS1BYLAotQEAgLTMx MTAsNiArMzIzNywxNjMgQEAgZW51bSByczYwMDBfYnVpbHRpbnMKK0BAIC0yODM5LDYgKzI5NTMs NyBAQCBlbnVtIHJzNjAwMF9idWlsdGlucworICAgQUxUSVZFQ19CVUlMVElOX1ZFQ19QUk9NT1RF LAorICAgQUxUSVZFQ19CVUlMVElOX1ZFQ19JTlNFUlQsCisgICBBTFRJVkVDX0JVSUxUSU5fVkVD X1NQTEFUUywKKysKKyAgIEFMVElWRUNfQlVJTFRJTl9PVkVSTE9BREVEX0xBU1QgPSBBTFRJVkVD X0JVSUxUSU5fVkVDX1NQTEFUUywKKyAKKyAgIC8qIFNQRSBidWlsdGlucy4gICovCitAQCAtMzEx MCw2ICszMjI1LDE2MyBAQCBlbnVtIHJzNjAwMF9idWlsdGlucwogICAgUlM2MDAwX0JVSUxUSU5f UkVDSVBGLAogICAgUlM2MDAwX0JVSUxUSU5fUlNRUlRGLAogIApAQCAtNzE3NywzNCArOTA5NCwy NCBAQCB0ZXN0c3VpdGUvCiArICBWU1hfQlVJTFRJTl9YVkNWVVhXU1AsCiArICBWU1hfQlVJTFRJ Tl9YVkRJVkRQLAogKyAgVlNYX0JVSUxUSU5fWFZESVZTUCwKLSsgIFZTWF9CVUlMVElOX1hWTUFE REFEUCwKLSsgIFZTWF9CVUlMVElOX1hWTUFEREFTUCwKLSsgIFZTWF9CVUlMVElOX1hWTUFERE1E UCwKLSsgIFZTWF9CVUlMVElOX1hWTUFERE1TUCwKKysgIFZTWF9CVUlMVElOX1hWTUFERERQLAor KyAgVlNYX0JVSUxUSU5fWFZNQUREU1AsCiArICBWU1hfQlVJTFRJTl9YVk1BWERQLAogKyAgVlNY X0JVSUxUSU5fWFZNQVhTUCwKICsgIFZTWF9CVUlMVElOX1hWTUlORFAsCiArICBWU1hfQlVJTFRJ Tl9YVk1JTlNQLAotKyAgVlNYX0JVSUxUSU5fWFZNT1ZEUCwKLSsgIFZTWF9CVUlMVElOX1hWTU9W U1AsCi0rICBWU1hfQlVJTFRJTl9YVk1TVUJBRFAsCi0rICBWU1hfQlVJTFRJTl9YVk1TVUJBU1As Ci0rICBWU1hfQlVJTFRJTl9YVk1TVUJNRFAsCi0rICBWU1hfQlVJTFRJTl9YVk1TVUJNU1AsCisr ICBWU1hfQlVJTFRJTl9YVk1TVUJEUCwKKysgIFZTWF9CVUlMVElOX1hWTVNVQlNQLAogKyAgVlNY X0JVSUxUSU5fWFZNVUxEUCwKICsgIFZTWF9CVUlMVElOX1hWTVVMU1AsCiArICBWU1hfQlVJTFRJ Tl9YVk5BQlNEUCwKICsgIFZTWF9CVUlMVElOX1hWTkFCU1NQLAogKyAgVlNYX0JVSUxUSU5fWFZO RUdEUCwKICsgIFZTWF9CVUlMVElOX1hWTkVHU1AsCi0rICBWU1hfQlVJTFRJTl9YVk5NQUREQURQ LAotKyAgVlNYX0JVSUxUSU5fWFZOTUFEREFTUCwKLSsgIFZTWF9CVUlMVElOX1hWTk1BRERNRFAs Ci0rICBWU1hfQlVJTFRJTl9YVk5NQURETVNQLAotKyAgVlNYX0JVSUxUSU5fWFZOTVNVQkFEUCwK LSsgIFZTWF9CVUlMVElOX1hWTk1TVUJBU1AsCi0rICBWU1hfQlVJTFRJTl9YVk5NU1VCTURQLAot KyAgVlNYX0JVSUxUSU5fWFZOTVNVQk1TUCwKKysgIFZTWF9CVUlMVElOX1hWTk1BREREUCwKKysg IFZTWF9CVUlMVElOX1hWTk1BRERTUCwKKysgIFZTWF9CVUlMVElOX1hWTk1TVUJEUCwKKysgIFZT WF9CVUlMVElOX1hWTk1TVUJTUCwKICsgIFZTWF9CVUlMVElOX1hWUkRQSSwKICsgIFZTWF9CVUlM VElOX1hWUkRQSUMsCiArICBWU1hfQlVJTFRJTl9YVlJEUElNLApAQCAtNzI0Myw3ICs5MTUwLDE3 IEBAIHRlc3RzdWl0ZS8KICsgIFZTWF9CVUlMVElOX1hYU1BMVFcsCiArICBWU1hfQlVJTFRJTl9Y WFNXQVBELAogKwotKyAgLyogQ29tYmluZSBWU1gvQWx0aXZlYyBidWlsdGlucy4gICovCisrICAv KiBWU1ggb3ZlcmxvYWRlZCBidWlsdGlucywgYWRkIHRoZSBvdmVybG9hZGVkIGZ1bmN0aW9ucyBu b3QgcHJlc2VudCBpbgorKyAgICAgQWx0aXZlYy4gICovCisrICBWU1hfQlVJTFRJTl9WRUNfTVVM LAorKyAgVlNYX0JVSUxUSU5fT1ZFUkxPQURFRF9GSVJTVCA9IFZTWF9CVUlMVElOX1ZFQ19NVUws CisrICBWU1hfQlVJTFRJTl9WRUNfTVNVQiwKKysgIFZTWF9CVUlMVElOX1ZFQ19OTUFERCwKKysg IFZTWF9CVUlUTElOX1ZFQ19OTVNVQiwKKysgIFZTWF9CVUlMVElOX1ZFQ19ESVYsCisrICBWU1hf QlVJTFRJTl9PVkVSTE9BREVEX0xBU1QgPSBWU1hfQlVJTFRJTl9WRUNfRElWLAorKworKyAgLyog Q29tYmluZWQgVlNYL0FsdGl2ZWMgYnVpbHRpbnMuICAqLwogKyAgVkVDVE9SX0JVSUxUSU5fRkxP QVRfVjRTSV9WNFNGLAogKyAgVkVDVE9SX0JVSUxUSU5fVU5TRkxPQVRfVjRTSV9WNFNGLAogKyAg VkVDVE9SX0JVSUxUSU5fRklYX1Y0U0ZfVjRTSSwKQEAgLTcyNTIsNyArOTE2OSw3IEBAIHRlc3Rz dWl0ZS8KICAgIFJTNjAwMF9CVUlMVElOX0NPVU5UCiAgfTsKICAKLUBAIC0zMTIzLDYgKzM0MDcs OCBAQCBlbnVtIHJzNjAwMF9idWlsdGluX3R5cGVfaW5kZXgKK0BAIC0zMTIzLDYgKzMzOTUsOCBA QCBlbnVtIHJzNjAwMF9idWlsdGluX3R5cGVfaW5kZXgKICAgIFJTNjAwMF9CVElfVjE2UUksCiAg ICBSUzYwMDBfQlRJX1YyU0ksCiAgICBSUzYwMDBfQlRJX1YyU0YsCkBAIC03MjYxLDcgKzkxNzgs NyBAQCB0ZXN0c3VpdGUvCiAgICBSUzYwMDBfQlRJX1Y0SEksCiAgICBSUzYwMDBfQlRJX1Y0U0ks CiAgICBSUzYwMDBfQlRJX1Y0U0YsCi1AQCAtMzE0Niw3ICszNDMyLDEwIEBAIGVudW0gcnM2MDAw X2J1aWx0aW5fdHlwZV9pbmRleAorQEAgLTMxNDYsNyArMzQyMCwxMCBAQCBlbnVtIHJzNjAwMF9i dWlsdGluX3R5cGVfaW5kZXgKICAgIFJTNjAwMF9CVElfVUlOVEhJLAkJIC8qIHVuc2lnbmVkX2lu dEhJX3R5cGVfbm9kZSAqLwogICAgUlM2MDAwX0JUSV9JTlRTSSwJCSAvKiBpbnRTSV90eXBlX25v ZGUgKi8KICAgIFJTNjAwMF9CVElfVUlOVFNJLAkJIC8qIHVuc2lnbmVkX2ludFNJX3R5cGVfbm9k ZSAqLwpAQCAtNzI3Miw3ICs5MTg5LDcgQEAgdGVzdHN1aXRlLwogICAgUlM2MDAwX0JUSV92b2lk LAkgICAgICAgICAvKiB2b2lkX3R5cGVfbm9kZSAqLwogICAgUlM2MDAwX0JUSV9NQVgKICB9Owot QEAgLTMxNTcsNiArMzQ0Niw4IEBAIGVudW0gcnM2MDAwX2J1aWx0aW5fdHlwZV9pbmRleAorQEAg LTMxNTcsNiArMzQzNCw4IEBAIGVudW0gcnM2MDAwX2J1aWx0aW5fdHlwZV9pbmRleAogICNkZWZp bmUgb3BhcXVlX3BfVjJTSV90eXBlX25vZGUgICAgICAgKHJzNjAwMF9idWlsdGluX3R5cGVzW1JT NjAwMF9CVElfb3BhcXVlX3BfVjJTSV0pCiAgI2RlZmluZSBvcGFxdWVfVjRTSV90eXBlX25vZGUg ICAgICAgICAocnM2MDAwX2J1aWx0aW5fdHlwZXNbUlM2MDAwX0JUSV9vcGFxdWVfVjRTSV0pCiAg I2RlZmluZSBWMTZRSV90eXBlX25vZGUgICAgICAgICAgICAgICAocnM2MDAwX2J1aWx0aW5fdHlw ZXNbUlM2MDAwX0JUSV9WMTZRSV0pCkBAIC03MjgxLDcgKzkxOTgsNyBAQCB0ZXN0c3VpdGUvCiAg I2RlZmluZSBWMlNJX3R5cGVfbm9kZSAgICAgICAgICAgICAgICAocnM2MDAwX2J1aWx0aW5fdHlw ZXNbUlM2MDAwX0JUSV9WMlNJXSkKICAjZGVmaW5lIFYyU0ZfdHlwZV9ub2RlICAgICAgICAgICAg ICAgIChyczYwMDBfYnVpbHRpbl90eXBlc1tSUzYwMDBfQlRJX1YyU0ZdKQogICNkZWZpbmUgVjRI SV90eXBlX25vZGUgICAgICAgICAgICAgICAgKHJzNjAwMF9idWlsdGluX3R5cGVzW1JTNjAwMF9C VElfVjRISV0pCi1AQCAtMzE4Myw3ICszNDc0LDEwIEBAIGVudW0gcnM2MDAwX2J1aWx0aW5fdHlw ZV9pbmRleAorQEAgLTMxODMsNyArMzQ2MiwxMCBAQCBlbnVtIHJzNjAwMF9idWlsdGluX3R5cGVf aW5kZXgKICAjZGVmaW5lIHVpbnRISV90eXBlX2ludGVybmFsX25vZGUJIChyczYwMDBfYnVpbHRp bl90eXBlc1tSUzYwMDBfQlRJX1VJTlRISV0pCiAgI2RlZmluZSBpbnRTSV90eXBlX2ludGVybmFs X25vZGUJIChyczYwMDBfYnVpbHRpbl90eXBlc1tSUzYwMDBfQlRJX0lOVFNJXSkKICAjZGVmaW5l IHVpbnRTSV90eXBlX2ludGVybmFsX25vZGUJIChyczYwMDBfYnVpbHRpbl90eXBlc1tSUzYwMDBf QlRJX1VJTlRTSV0pCkBAIC03MjkyLDggKzkyMDksOCBAQCB0ZXN0c3VpdGUvCiAgI2RlZmluZSB2 b2lkX3R5cGVfaW50ZXJuYWxfbm9kZQkJIChyczYwMDBfYnVpbHRpbl90eXBlc1tSUzYwMDBfQlRJ X3ZvaWRdKQogIAogIGV4dGVybiBHVFkoKCkpIHRyZWUgcnM2MDAwX2J1aWx0aW5fdHlwZXNbUlM2 MDAwX0JUSV9NQVhdOwotLS0tIGdjYy9jb25maWcvcnM2MDAwL2FsdGl2ZWMubWQJKC4uLi90cnVu aykJKHJldmlzaW9uIDE0NDU1NykKLSsrKyBnY2MvY29uZmlnL3JzNjAwMC9hbHRpdmVjLm1kCSgu Li4vYnJhbmNoZXMvaWJtL3Bvd2VyNy1tZWlzc25lcikJKHJldmlzaW9uIDE0NDczMCkKKy0tLSBn Y2MvY29uZmlnL3JzNjAwMC9hbHRpdmVjLm1kCSguLi4vdHJ1bmspCShyZXZpc2lvbiAxNDU3Nzcp CisrKysgZ2NjL2NvbmZpZy9yczYwMDAvYWx0aXZlYy5tZAkoLi4uL2JyYW5jaGVzL2libS9wb3dl cjctbWVpc3NuZXIpCShyZXZpc2lvbiAxNDYwMjcpCiBAQCAtMjEsMTggKzIxLDcgQEAKICAKICAo ZGVmaW5lX2NvbnN0YW50cwpAQCAtNzM5OCw4ICs5MzE1LDkgQEAgdGVzdHN1aXRlLwogICAgICB9 CiAgfQogLSAgWyhzZXRfYXR0ciAidHlwZSIgInZlY3N0b3JlLHZlY2xvYWQsdmVjc2ltcGxlLHN0 b3JlLGxvYWQsKiwqIildKQotLQotLShkZWZpbmVfc3BsaXQKKysgIFsoc2V0X2F0dHIgInR5cGUi ICJ2ZWNzdG9yZSx2ZWNsb2FkLHZlY3NpbXBsZSxzdG9yZSxsb2FkLCosdmVjc2ltcGxlLCoiKV0p CisgCisgKGRlZmluZV9zcGxpdAogLSAgWyhzZXQgKG1hdGNoX29wZXJhbmQ6VjRTSSAwICJub25p bW1lZGlhdGVfb3BlcmFuZCIgIiIpCiAtICAgICAgICAobWF0Y2hfb3BlcmFuZDpWNFNJIDEgImlu cHV0X29wZXJhbmQiICIiKSldCiAtICAiVEFSR0VUX0FMVElWRUMgJiYgcmVsb2FkX2NvbXBsZXRl ZApAQCAtNzQxNiw5ICs5MzM0LDggQEAgdGVzdHN1aXRlLwogLSAgICYmIGdwcl9vcl9ncHJfcCAo b3BlcmFuZHNbMF0sIG9wZXJhbmRzWzFdKSIKIC0gIFsocGMpXQogLXsgcnM2MDAwX3NwbGl0X211 bHRpcmVnX21vdmUgKG9wZXJhbmRzWzBdLCBvcGVyYW5kc1sxXSk7IERPTkU7IH0pCi0rICBbKHNl dF9hdHRyICJ0eXBlIiAidmVjc3RvcmUsdmVjbG9hZCx2ZWNzaW1wbGUsc3RvcmUsbG9hZCwqLHZl Y3NpbXBsZSwqIildKQotIAotIChkZWZpbmVfc3BsaXQKKy0KKy0oZGVmaW5lX3NwbGl0CiAtICBb KHNldCAobWF0Y2hfb3BlcmFuZDpWMTZRSSAwICJub25pbW1lZGlhdGVfb3BlcmFuZCIgIiIpCiAt ICAgICAgICAobWF0Y2hfb3BlcmFuZDpWMTZRSSAxICJpbnB1dF9vcGVyYW5kIiAiIikpXQogLSAg IlRBUkdFVF9BTFRJVkVDICYmIHJlbG9hZF9jb21wbGV0ZWQKQEAgLTgwODgsMjIgKzEwMDA1LDcg QEAgdGVzdHN1aXRlLwogIChkZWZpbmVfaW5zbiAiYWx0aXZlY192c2xkb2lfPG1vZGU+IgogICAg WyhzZXQgKG1hdGNoX29wZXJhbmQ6ViAwICJyZWdpc3Rlcl9vcGVyYW5kIiAiPXYiKQogICAgICAg ICAgKHVuc3BlYzpWIFsobWF0Y2hfb3BlcmFuZDpWIDEgInJlZ2lzdGVyX29wZXJhbmQiICJ2IikK LUBAIC0xODc4LDYgKzE1NzAsMTQgQEAgKGRlZmluZV9leHBhbmQgImJ1aWxkX3ZlY3Rvcl9tYXNr X2Zvcl9sbwotICAgZ2NjX2Fzc2VydCAoR0VUX0NPREUgKG9wZXJhbmRzWzFdKSA9PSBNRU0pOwot IAotICAgYWRkciA9IFhFWFAgKG9wZXJhbmRzWzFdLCAwKTsKLSsgIGlmIChWRUNUT1JfTUVNX1ZT WF9QIChHRVRfTU9ERSAob3BlcmFuZHNbMV0pKSkKLSsgICAgewotKyAgICAgIC8qIFZTWCBkb2Vz bid0IGFuZCBvZmYgdGhlIGJvdHRvbSBhZGRyZXNzIGJpdHMsIGFuZCBtZW1vcnkKLSsJIG9wZXJh dGlvbnMgYXJlIGFsaWduZWQgdG8gdGhlIG5hdHVyYWwgZGF0YSB0eXBlLiAgKi8KLSsgICAgICBl bWl0X2luc24gKGdlbl9ydHhfU0VUIChWT0lEbW9kZSwgb3BlcmFuZHNbMF0sIG9wZXJhbmRzWzFd KSk7Ci0rICAgICAgRE9ORTsKLSsgICAgfQotKwotICAgdGVtcCA9IGdlbl9yZWdfcnR4IChHRVRf TU9ERSAoYWRkcikpOwotICAgZW1pdF9pbnNuIChnZW5fcnR4X1NFVCAoVk9JRG1vZGUsIHRlbXAs IAotIAkJCSAgZ2VuX3J0eF9ORUcgKEdFVF9NT0RFIChhZGRyKSwgYWRkcikpKTsKLUBAIC0xOTU5 LDk1ICsxNjU5LDYgQEAgKGRlZmluZV9pbnNuICIqYWx0aXZlY19zdHZlc2Z4IgorQEAgLTE5NTks OTUgKzE2NTEsNiBAQCAoZGVmaW5lX2luc24gIiphbHRpdmVjX3N0dmVzZngiCiAgICAic3R2ZXd4 ICUxLCV5MCIKICAgIFsoc2V0X2F0dHIgInR5cGUiICJ2ZWNzdG9yZSIpXSkKICAKQEAgLTgxOTks NyArMTAxMDEsNyBAQCB0ZXN0c3VpdGUvCiAgOzsgR2VuZXJhdGUKICA7OyAgICB2c3BsdGlzPyBT Q1JBVENIMCwwCiAgOzsgICAgdnN1YnU/bSBTQ1JBVENIMixTQ1JBVENIMSwlMQotQEAgLTIwNjks NyArMTY4MCw3IEBAIChkZWZpbmVfZXhwYW5kICJhYnM8bW9kZT4yIgorQEAgLTIwNjksNyArMTY3 Miw3IEBAIChkZWZpbmVfZXhwYW5kICJhYnM8bW9kZT4yIgogIDs7ICAgIHZzcGx0aXN3IFNDUkFU Q0gxLC0xCiAgOzsgICAgdnNsdyBTQ1JBVENIMixTQ1JBVENIMSxTQ1JBVENIMQogIDs7ICAgIHZh bmRjICUwLCUxLFNDUkFUQ0gyCkBAIC04MjA4LDcgKzEwMTEwLDcgQEAgdGVzdHN1aXRlLwogICAg WyhzZXQgKG1hdGNoX2R1cCAyKQogIAkodmVjX2R1cGxpY2F0ZTpWNFNJIChjb25zdF9pbnQgLTEp KSkKICAgICAoc2V0IChtYXRjaF9kdXAgMykKLUBAIC0yMTMyLDcgKzE3NDMsNyBAQCAoZGVmaW5l X2V4cGFuZCAidmVjX3NobF88bW9kZT4iCitAQCAtMjEzMiw3ICsxNzM1LDcgQEAgKGRlZmluZV9l eHBhbmQgInZlY19zaGxfPG1vZGU+IgogICAgRE9ORTsKICB9IikKICAKQEAgLTgyMTcsNyArMTAx MTksNyBAQCB0ZXN0c3VpdGUvCiAgOzsgYW1vdW50cyB0aGF0IGNhbiBiZSBleHByZXNzZWQgYXMg Ynl0ZSBzaGlmdHMgKGRpdmlzaWJsZSBieSA4KS4KICA7OyBHZW5lcmFsIHNoaWZ0IGFtb3VudHMg Y2FuIGJlIHN1cHBvcnRlZCB1c2luZyB2c3JvICsgdnNyLiBXZSdyZQogIDs7IG5vdCBleHBlY3Rp bmcgdG8gc2VlIHRoZXNlIHlldCAodGhlIHZlY3Rvcml6ZXIgY3VycmVudGx5Ci1AQCAtMjY2NSw3 ICsyMjc2LDcgQEAgKGRlZmluZV9leHBhbmQgInZlY19wYWNrX3RydW5jX3Y0c2kiCitAQCAtMjY2 NSw3ICsyMjY4LDcgQEAgKGRlZmluZV9leHBhbmQgInZlY19wYWNrX3RydW5jX3Y0c2kiCiAgICBE T05FOwogIH0iKQogIApAQCAtODIyNiw3ICsxMDEyOCw3IEBAIHRlc3RzdWl0ZS8KICAgIFsodXNl IChtYXRjaF9vcGVyYW5kOlY0U0YgMCAicmVnaXN0ZXJfb3BlcmFuZCIgIiIpKQogICAgICh1c2Ug KG1hdGNoX29wZXJhbmQ6VjRTRiAxICJyZWdpc3Rlcl9vcGVyYW5kIiAiIikpXQogICAgIlRBUkdF VF9BTFRJVkVDIgotQEAgLTI5OTQsMjkgKzI2MDUsNiBAQCAoZGVmaW5lX2V4cGFuZCAidmVjX2V4 dHJhY3Rfb2RkdjE2cWkiCitAQCAtMjk5NCwyOSArMjU5Nyw2IEBAIChkZWZpbmVfZXhwYW5kICJ2 ZWNfZXh0cmFjdF9vZGR2MTZxaSIKICAgIGVtaXRfaW5zbiAoZ2VuX3Zwa3VodW1fbm9tb2RlIChv cGVyYW5kc1swXSwgb3BlcmFuZHNbMV0sIG9wZXJhbmRzWzJdKSk7CiAgICBET05FOwogIH0iKQpA QCAtODI1Niw4ICsxMDE1OCw4IEBAIHRlc3RzdWl0ZS8KICAKICAoZGVmaW5lX2V4cGFuZCAidmVj X2ludGVybGVhdmVfaGlnaDxtb2RlPiIKICAgWyhzZXQgKG1hdGNoX29wZXJhbmQ6VkkgMCAicmVn aXN0ZXJfb3BlcmFuZCIgIiIpCi0tLS0gZ2NjL2NvbmZpZy9yczYwMDAvYWl4NjEuaAkoLi4uL3Ry dW5rKQkocmV2aXNpb24gMTQ0NTU3KQotKysrIGdjYy9jb25maWcvcnM2MDAwL2FpeDYxLmgJKC4u Li9icmFuY2hlcy9pYm0vcG93ZXI3LW1laXNzbmVyKQkocmV2aXNpb24gMTQ0NzMwKQorLS0tIGdj Yy9jb25maWcvcnM2MDAwL2FpeDYxLmgJKC4uLi90cnVuaykJKHJldmlzaW9uIDE0NTc3NykKKysr KyBnY2MvY29uZmlnL3JzNjAwMC9haXg2MS5oCSguLi4vYnJhbmNoZXMvaWJtL3Bvd2VyNy1tZWlz c25lcikJKHJldmlzaW9uIDE0NjAyNykKIEBAIC01NywyMCArNTcsMjQgQEAgZG8gewkJCQkJCQkJ CVwKICAjdW5kZWYgQVNNX1NQRUMKICAjZGVmaW5lIEFTTV9TUEVDICItdSAle21haXg2NDotYTY0 ICV7IW1jcHUqOi1tcHBjNjR9fSAlKGFzbV9jcHUpIgpAQCAtODI4NSw5ICsxMDE4Nyw5IEBAIHRl c3RzdWl0ZS8KICAle21jcHU9cG93ZXJwYzogLW1wcGN9IFwKICAle21jcHU9cnM2NGE6IC1tcHBj fSBcCiAgJXttY3B1PTYwMzogLW02MDN9IFwKLS0tLSBnY2MvY29uZmlnL3JzNjAwMC9yczYwMDAu bWQJKC4uLi90cnVuaykJKHJldmlzaW9uIDE0NDU1NykKLSsrKyBnY2MvY29uZmlnL3JzNjAwMC9y czYwMDAubWQJKC4uLi9icmFuY2hlcy9pYm0vcG93ZXI3LW1laXNzbmVyKQkocmV2aXNpb24gMTQ0 NzMwKQotQEAgLTEzOCw3ICsxMzgsNyBAQCAoZGVmaW5lX2F0dHIgImxlbmd0aCIgIiIKKy0tLSBn Y2MvY29uZmlnL3JzNjAwMC9yczYwMDAubWQJKC4uLi90cnVuaykJKHJldmlzaW9uIDE0NTc3NykK KysrKyBnY2MvY29uZmlnL3JzNjAwMC9yczYwMDAubWQJKC4uLi9icmFuY2hlcy9pYm0vcG93ZXI3 LW1laXNzbmVyKQkocmV2aXNpb24gMTQ2MDI3KQorQEAgLTEzOCw3ICsxMzgsNyBAQAogIDs7IFBy b2Nlc3NvciB0eXBlIC0tIHRoaXMgYXR0cmlidXRlIG11c3QgZXhhY3RseSBtYXRjaCB0aGUgcHJv Y2Vzc29yX3R5cGUKICA7OyBlbnVtZXJhdGlvbiBpbiByczYwMDAuaC4KICAKQEAgLTgyOTYsNyAr MTAxOTgsNyBAQCB0ZXN0c3VpdGUvCiAgICAoY29uc3QgKHN5bWJvbF9yZWYgInJzNjAwMF9jcHVf YXR0ciIpKSkKICAKICAKLUBAIC0xNjcsNiArMTY3LDcgQEAgKGRlZmluZV9hdHRyICJjZWxsX21p Y3JvIiAibm90LGNvbmRpdGlvbgorQEAgLTE2Nyw2ICsxNjcsNyBAQAogIChpbmNsdWRlICJwb3dl cjQubWQiKQogIChpbmNsdWRlICJwb3dlcjUubWQiKQogIChpbmNsdWRlICJwb3dlcjYubWQiKQpA QCAtODMwNCwxNyArMTAyMDYsMjcgQEAgdGVzdHN1aXRlLwogIChpbmNsdWRlICJjZWxsLm1kIikK ICAoaW5jbHVkZSAieGZwdS5tZCIpCiAgCi1AQCAtMjE4LDYgKzIxOSw5IEBAIChkZWZpbmVfbW9k ZV9hdHRyIHdkIFsoUUkgImIiKSAoSEkgImgiKSAKK0BAIC0yMTgsNiArMjE5LDE5IEBACiAgOyBE SW1vZGUgYml0cwogIChkZWZpbmVfbW9kZV9hdHRyIGRiaXRzIFsoUUkgIjU2IikgKEhJICI0OCIp IChTSSAiMzIiKV0pCiAgCiArOzsgSVNFTC9JU0VMNjQgdGFyZ2V0IHNlbGVjdGlvbgogKyhkZWZp bmVfbW9kZV9hdHRyIHNlbCBbKFNJICIiKSAoREkgIjY0IildKQogKworKzs7IFN1ZmZpeCBmb3Ig cmVsb2FkIHBhdHRlcm5zCisrKGRlZmluZV9tb2RlX2F0dHIgcHRyc2l6ZSBbKFNJICIzMmJpdCIp CisrCQkJICAgKERJICI2NGJpdCIpXSkKKysKKysoZGVmaW5lX21vZGVfYXR0ciB0cHRyc2l6ZSBb KFNJICJUQVJHRVRfMzJCSVQiKQorKwkJCSAgICAoREkgIlRBUkdFVF82NEJJVCIpXSkKKysKKyso ZGVmaW5lX21vZGVfYXR0ciBtcHRyc2l6ZSBbKFNJICJzaSIpCisrCQkJICAgIChESSAiZGkiKV0p CisrCiAgDAogIDs7IFN0YXJ0IHdpdGggZml4ZWQtcG9pbnQgbG9hZCBhbmQgc3RvcmUgaW5zbnMu ICBIZXJlIHdlIHB1dCBvbmx5IHRoZSBtb3JlCiAgOzsgY29tcGxleCBmb3Jtcy4gIEJhc2ljIGRh dGEgdHJhbnNmZXIgaXMgZG9uZSBsYXRlci4KLUBAIC01MjAsNyArNTI0LDcgQEAgKGRlZmluZV9p bnNuICIiCitAQCAtNTIwLDcgKzUzNCw3IEBACiAgICAiQAogICAgIHthbmRpbC58YW5kaS59ICUy LCUxLDB4ZmYKICAgICAjIgpAQCAtODMyMyw3ICsxMDIzNSw3IEBAIHRlc3RzdWl0ZS8KICAgICAo c2V0X2F0dHIgImxlbmd0aCIgIjQsOCIpXSkKICAKICAoZGVmaW5lX3NwbGl0Ci1AQCAtNTQ2LDcg KzU1MCw3IEBAIChkZWZpbmVfaW5zbiAiIgorQEAgLTU0Niw3ICs1NjAsNyBAQAogICAgIkAKICAg ICB7YW5kaWwufGFuZGkufSAlMCwlMSwweGZmCiAgICAgIyIKQEAgLTgzMzIsNyArMTAyNDQsNyBA QCB0ZXN0c3VpdGUvCiAgICAgKHNldF9hdHRyICJsZW5ndGgiICI0LDgiKV0pCiAgCiAgKGRlZmlu ZV9zcGxpdAotQEAgLTY4Nyw3ICs2OTEsNyBAQCAoZGVmaW5lX2luc24gIiIKK0BAIC02ODcsNyAr NzAxLDcgQEAKICAgICJACiAgICAge2FuZGlsLnxhbmRpLn0gJTIsJTEsMHhmZgogICAgICMiCkBA IC04MzQxLDcgKzEwMjUzLDcgQEAgdGVzdHN1aXRlLwogICAgIChzZXRfYXR0ciAibGVuZ3RoIiAi NCw4IildKQogIAogIChkZWZpbmVfc3BsaXQKLUBAIC03MTMsNyArNzE3LDcgQEAgKGRlZmluZV9p bnNuICIiCitAQCAtNzEzLDcgKzcyNyw3IEBACiAgICAiQAogICAgIHthbmRpbC58YW5kaS59ICUw LCUxLDB4ZmYKICAgICAjIgpAQCAtODM1MCw3ICsxMDI2Miw3IEBAIHRlc3RzdWl0ZS8KICAgICAo c2V0X2F0dHIgImxlbmd0aCIgIjQsOCIpXSkKICAKICAoZGVmaW5lX3NwbGl0Ci1AQCAtODU2LDcg Kzg2MCw3IEBAIChkZWZpbmVfaW5zbiAiIgorQEAgLTg1Niw3ICs4NzAsNyBAQAogICAgIkAKICAg ICB7YW5kaWwufGFuZGkufSAlMiwlMSwweGZmZmYKICAgICAjIgpAQCAtODM1OSw3ICsxMDI3MSw3 IEBAIHRlc3RzdWl0ZS8KICAgICAoc2V0X2F0dHIgImxlbmd0aCIgIjQsOCIpXSkKICAKICAoZGVm aW5lX3NwbGl0Ci1AQCAtODgyLDcgKzg4Niw3IEBAIChkZWZpbmVfaW5zbiAiIgorQEAgLTg4Miw3 ICs4OTYsNyBAQAogICAgIkAKICAgICB7YW5kaWwufGFuZGkufSAlMCwlMSwweGZmZmYKICAgICAj IgpAQCAtODM2OCw3ICsxMDI4MCw3IEBAIHRlc3RzdWl0ZS8KICAgICAoc2V0X2F0dHIgImxlbmd0 aCIgIjQsOCIpXSkKICAKICAoZGVmaW5lX3NwbGl0Ci1AQCAtMTY3MCw3ICsxNjc0LDcgQEAgKGRl ZmluZV9pbnNuICIiCitAQCAtMTY3MCw3ICsxNjg0LDcgQEAKICAgICJACiAgICAgbm9yLiAlMiwl MSwlMQogICAgICMiCkBAIC04Mzc3LDcgKzEwMjg5LDcgQEAgdGVzdHN1aXRlLwogICAgIChzZXRf YXR0ciAibGVuZ3RoIiAiNCw4IildKQogIAogIChkZWZpbmVfc3BsaXQKLUBAIC0xNjk2LDcgKzE3 MDAsNyBAQCAoZGVmaW5lX2luc24gIiIKK0BAIC0xNjk2LDcgKzE3MTAsNyBAQAogICAgIkAKICAg ICBub3IuICUwLCUxLCUxCiAgICAgIyIKQEAgLTgzODYsNyArMTAyOTgsNyBAQCB0ZXN0c3VpdGUv CiAgICAgKHNldF9hdHRyICJsZW5ndGgiICI0LDgiKV0pCiAgCiAgKGRlZmluZV9zcGxpdAotQEAg LTIyMjEsMTAgKzIyMjUsMjIgQEAgKGRlZmluZV9pbnNuICJwb3BjbnRiPG1vZGU+MiIKK0BAIC0y MjIxLDEwICsyMjM1LDIyIEBACiAgICAiVEFSR0VUX1BPUENOVEIiCiAgICAicG9wY250YiAlMCwl MSIpCiAgCkBAIC04NDEwLDcgKzEwMzIyLDcgQEAgdGVzdHN1aXRlLwogICAgewogICAgICByczYw MDBfZW1pdF9wb3Bjb3VudCAob3BlcmFuZHNbMF0sIG9wZXJhbmRzWzFdKTsKICAgICAgRE9ORTsK LUBAIC0yODUyLDcgKzI4NjgsNyBAQCAoZGVmaW5lX2luc24gImFuZHNpM19tYyIKK0BAIC0yODUy LDcgKzI4NzgsNyBAQAogICAgIHtybGlubXxybHdpbm19ICUwLCUxLDAsJW0yLCVNMgogICAgIHth bmRpbC58YW5kaS59ICUwLCUxLCViMgogICAgIHthbmRpdS58YW5kaXMufSAlMCwlMSwldTIiCkBA IC04NDE5LDcgKzEwMzMxLDcgQEAgdGVzdHN1aXRlLwogIAogIChkZWZpbmVfaW5zbiAiYW5kc2kz X25vbWMiCiAgICBbKHNldCAobWF0Y2hfb3BlcmFuZDpTSSAwICJncGNfcmVnX29wZXJhbmQiICI9 cixyIikKLUBAIC0yODk1LDcgKzI5MTEsOCBAQCAoZGVmaW5lX2luc24gIiphbmRzaTNfaW50ZXJu YWwyX21jIgorQEAgLTI4OTUsNyArMjkyMSw4IEBACiAgICAgIwogICAgICMKICAgICAjIgpAQCAt ODQyOSw3ICsxMDM0MSw3IEBAIHRlc3RzdWl0ZS8KICAgICAoc2V0X2F0dHIgImxlbmd0aCIgIjQs NCw0LDQsOCw4LDgsOCIpXSkKICAKICAoZGVmaW5lX2luc24gIiphbmRzaTNfaW50ZXJuYWwzX21j IgotQEAgLTI5MTUsNyArMjkzMiw4IEBAIChkZWZpbmVfaW5zbiAiKmFuZHNpM19pbnRlcm5hbDNf bWMiCitAQCAtMjkxNSw3ICsyOTQyLDggQEAKICAgICAjCiAgICAgIwogICAgICMiCkBAIC04NDM5 LDcgKzEwMzUxLDcgQEAgdGVzdHN1aXRlLwogICAgIChzZXRfYXR0ciAibGVuZ3RoIiAiOCw0LDQs NCw4LDgsOCw4IildKQogIAogIChkZWZpbmVfc3BsaXQKLUBAIC0yOTc0LDcgKzI5OTIsOCBAQCAo ZGVmaW5lX2luc24gIiphbmRzaTNfaW50ZXJuYWw0IgorQEAgLTI5NzQsNyArMzAwMiw4IEBACiAg ICAgIwogICAgICMKICAgICAjIgpAQCAtODQ0OSwxNyArMTAzNjEsMTcgQEAgdGVzdHN1aXRlLwog ICAgIChzZXRfYXR0ciAibGVuZ3RoIiAiNCw0LDQsNCw4LDgsOCw4IildKQogIAogIChkZWZpbmVf aW5zbiAiKmFuZHNpM19pbnRlcm5hbDVfbWMiCi1AQCAtMjk5Niw3ICszMDE1LDggQEAgKGRlZmlu ZV9pbnNuICIqYW5kc2kzX2ludGVybmFsNV9tYyIKK0BAIC0yOTk2LDcgKzMwMjUsOCBAQAogICAg ICMKICAgICAjCiAgICAgIyIKIC0gIFsoc2V0X2F0dHIgInR5cGUiICJjb21wYXJlLGNvbXBhcmUs Y29tcGFyZSxkZWxheWVkX2NvbXBhcmUsY29tcGFyZSxjb21wYXJlLGNvbXBhcmUsY29tcGFyZSIp CiArICBbKHNldF9hdHRyICJ0eXBlIiAiY29tcGFyZSxmYXN0X2NvbXBhcmUsZmFzdF9jb21wYXJl LGRlbGF5ZWRfY29tcGFyZSxjb21wYXJlLFwKLSsJCSAgICBjb21wYXJlLGNvbXBhcmUsY29tcGFy ZSIpCisrCQkgICAgIGNvbXBhcmUsY29tcGFyZSxjb21wYXJlIikKICAgICAoc2V0X2F0dHIgImxl bmd0aCIgIjgsNCw0LDQsOCw4LDgsOCIpXSkKICAKICAoZGVmaW5lX3NwbGl0Ci1AQCAtMzEyNyw3 ICszMTQ3LDcgQEAgKGRlZmluZV9pbnNuICIqYm9vbHNpM19pbnRlcm5hbDIiCitAQCAtMzEyNyw3 ICszMTU3LDcgQEAKICAgICJACiAgICAgJXE0LiAlMywlMSwlMgogICAgICMiCkBAIC04NDY4LDcg KzEwMzgwLDcgQEAgdGVzdHN1aXRlLwogICAgIChzZXRfYXR0ciAibGVuZ3RoIiAiNCw4IildKQog IAogIChkZWZpbmVfc3BsaXQKLUBAIC0zMTU2LDcgKzMxNzYsNyBAQCAoZGVmaW5lX2luc24gIipi b29sc2kzX2ludGVybmFsMyIKK0BAIC0zMTU2LDcgKzMxODYsNyBAQAogICAgIkAKICAgICAlcTQu ICUwLCUxLCUyCiAgICAgIyIKQEAgLTg0NzcsNyArMTAzODksNyBAQCB0ZXN0c3VpdGUvCiAgICAg KHNldF9hdHRyICJsZW5ndGgiICI0LDgiKV0pCiAgCiAgKGRlZmluZV9zcGxpdAotQEAgLTMyODEs NyArMzMwMSw3IEBAIChkZWZpbmVfaW5zbiAiKmJvb2xjY3NpM19pbnRlcm5hbDIiCitAQCAtMzI4 MSw3ICszMzExLDcgQEAKICAgICJACiAgICAgJXE0LiAlMywlMSwlMgogICAgICMiCkBAIC04NDg2 LDcgKzEwMzk4LDcgQEAgdGVzdHN1aXRlLwogICAgIChzZXRfYXR0ciAibGVuZ3RoIiAiNCw4Iild KQogIAogIChkZWZpbmVfc3BsaXQKLUBAIC0zMzEwLDcgKzMzMzAsNyBAQCAoZGVmaW5lX2luc24g Iipib29sY2NzaTNfaW50ZXJuYWwzIgorQEAgLTMzMTAsNyArMzM0MCw3IEBACiAgICAiQAogICAg ICVxNC4gJTAsJTEsJTIKICAgICAjIgpAQCAtODQ5NSw3ICsxMDQwNyw3IEBAIHRlc3RzdWl0ZS8K ICAgICAoc2V0X2F0dHIgImxlbmd0aCIgIjQsOCIpXSkKICAKICAoZGVmaW5lX3NwbGl0Ci1AQCAt NTMwMyw3ICs1MzIzLDcgQEAgKGRlZmluZV9pbnNuICJmcmVzIgorQEAgLTUzMDMsNyArNTMzMyw3 IEBACiAgICAiZnJlcyAlMCwlMSIKICAgIFsoc2V0X2F0dHIgInR5cGUiICJmcCIpXSkKICAKQEAg LTg1MDQsNyArMTA0MTYsNyBAQCB0ZXN0c3VpdGUvCiAgICBbKHNldCAobWF0Y2hfb3BlcmFuZDpT RiAwICJncGNfcmVnX29wZXJhbmQiICI9ZiIpCiAgCShwbHVzOlNGIChtdWx0OlNGIChtYXRjaF9v cGVyYW5kOlNGIDEgImdwY19yZWdfb3BlcmFuZCIgIiVmIikKICAJCQkgIChtYXRjaF9vcGVyYW5k OlNGIDIgImdwY19yZWdfb3BlcmFuZCIgImYiKSkKLUBAIC01MzE0LDcgKzUzMzQsNyBAQCAoZGVm aW5lX2luc24gIiIKK0BAIC01MzE0LDcgKzUzNDQsNyBAQAogICAgWyhzZXRfYXR0ciAidHlwZSIg ImZwIikKICAgICAoc2V0X2F0dHIgImZwX3R5cGUiICJmcF9tYWRkc3ViX3MiKV0pCiAgCkBAIC04 NTEzLDcgKzEwNDI1LDcgQEAgdGVzdHN1aXRlLwogICAgWyhzZXQgKG1hdGNoX29wZXJhbmQ6U0Yg MCAiZ3BjX3JlZ19vcGVyYW5kIiAiPWYiKQogIAkocGx1czpTRiAobXVsdDpTRiAobWF0Y2hfb3Bl cmFuZDpTRiAxICJncGNfcmVnX29wZXJhbmQiICIlZiIpCiAgCQkJICAobWF0Y2hfb3BlcmFuZDpT RiAyICJncGNfcmVnX29wZXJhbmQiICJmIikpCi1AQCAtNTMyMyw3ICs1MzQzLDcgQEAgKGRlZmlu ZV9pbnNuICIiCitAQCAtNTMyMyw3ICs1MzUzLDcgQEAKICAgICJ7Zm1hfGZtYWRkfSAlMCwlMSwl MiwlMyIKICAgIFsoc2V0X2F0dHIgInR5cGUiICJkbXVsIildKQogIApAQCAtODUyMiw3ICsxMDQz NCw3IEBAIHRlc3RzdWl0ZS8KICAgIFsoc2V0IChtYXRjaF9vcGVyYW5kOlNGIDAgImdwY19yZWdf b3BlcmFuZCIgIj1mIikKICAJKG1pbnVzOlNGIChtdWx0OlNGIChtYXRjaF9vcGVyYW5kOlNGIDEg ImdwY19yZWdfb3BlcmFuZCIgIiVmIikKICAJCQkgICAobWF0Y2hfb3BlcmFuZDpTRiAyICJncGNf cmVnX29wZXJhbmQiICJmIikpCi1AQCAtNTMzNCw3ICs1MzU0LDcgQEAgKGRlZmluZV9pbnNuICIi CitAQCAtNTMzNCw3ICs1MzY0LDcgQEAKICAgIFsoc2V0X2F0dHIgInR5cGUiICJmcCIpCiAgICAg KHNldF9hdHRyICJmcF90eXBlIiAiZnBfbWFkZHN1Yl9zIildKQogIApAQCAtODUzMSw3ICsxMDQ0 Myw3IEBAIHRlc3RzdWl0ZS8KICAgIFsoc2V0IChtYXRjaF9vcGVyYW5kOlNGIDAgImdwY19yZWdf b3BlcmFuZCIgIj1mIikKICAJKG1pbnVzOlNGIChtdWx0OlNGIChtYXRjaF9vcGVyYW5kOlNGIDEg ImdwY19yZWdfb3BlcmFuZCIgIiVmIikKICAJCQkgICAobWF0Y2hfb3BlcmFuZDpTRiAyICJncGNf cmVnX29wZXJhbmQiICJmIikpCi1AQCAtNTM0Myw3ICs1MzYzLDcgQEAgKGRlZmluZV9pbnNuICIi CitAQCAtNTM0Myw3ICs1MzczLDcgQEAKICAgICJ7Zm1zfGZtc3VifSAlMCwlMSwlMiwlMyIKICAg IFsoc2V0X2F0dHIgInR5cGUiICJkbXVsIildKQogIApAQCAtODU0MCw3ICsxMDQ1Miw3IEBAIHRl c3RzdWl0ZS8KICAgIFsoc2V0IChtYXRjaF9vcGVyYW5kOlNGIDAgImdwY19yZWdfb3BlcmFuZCIg Ij1mIikKICAJKG5lZzpTRiAocGx1czpTRiAobXVsdDpTRiAobWF0Y2hfb3BlcmFuZDpTRiAxICJn cGNfcmVnX29wZXJhbmQiICIlZiIpCiAgCQkJCSAgKG1hdGNoX29wZXJhbmQ6U0YgMiAiZ3BjX3Jl Z19vcGVyYW5kIiAiZiIpKQotQEAgLTUzNTQsNyArNTM3NCw3IEBAIChkZWZpbmVfaW5zbiAiIgor QEAgLTUzNTQsNyArNTM4NCw3IEBACiAgICBbKHNldF9hdHRyICJ0eXBlIiAiZnAiKQogICAgIChz ZXRfYXR0ciAiZnBfdHlwZSIgImZwX21hZGRzdWJfcyIpXSkKICAKQEAgLTg1NDksNyArMTA0NjEs NyBAQCB0ZXN0c3VpdGUvCiAgICBbKHNldCAobWF0Y2hfb3BlcmFuZDpTRiAwICJncGNfcmVnX29w ZXJhbmQiICI9ZiIpCiAgCShtaW51czpTRiAobXVsdDpTRiAobmVnOlNGIChtYXRjaF9vcGVyYW5k OlNGIDEgImdwY19yZWdfb3BlcmFuZCIgImYiKSkKICAJCQkgICAobWF0Y2hfb3BlcmFuZDpTRiAy ICJncGNfcmVnX29wZXJhbmQiICJmIikpCi1AQCAtNTM2NSw3ICs1Mzg1LDcgQEAgKGRlZmluZV9p bnNuICIiCitAQCAtNTM2NSw3ICs1Mzk1LDcgQEAKICAgIFsoc2V0X2F0dHIgInR5cGUiICJmcCIp CiAgICAgKHNldF9hdHRyICJmcF90eXBlIiAiZnBfbWFkZHN1Yl9zIildKQogIApAQCAtODU1OCw3 ICsxMDQ3MCw3IEBAIHRlc3RzdWl0ZS8KICAgIFsoc2V0IChtYXRjaF9vcGVyYW5kOlNGIDAgImdw Y19yZWdfb3BlcmFuZCIgIj1mIikKICAJKG5lZzpTRiAocGx1czpTRiAobXVsdDpTRiAobWF0Y2hf b3BlcmFuZDpTRiAxICJncGNfcmVnX29wZXJhbmQiICIlZiIpCiAgCQkJCSAgKG1hdGNoX29wZXJh bmQ6U0YgMiAiZ3BjX3JlZ19vcGVyYW5kIiAiZiIpKQotQEAgLTUzNzQsNyArNTM5NCw3IEBAIChk ZWZpbmVfaW5zbiAiIgorQEAgLTUzNzQsNyArNTQwNCw3IEBACiAgICAie2ZubWF8Zm5tYWRkfSAl MCwlMSwlMiwlMyIKICAgIFsoc2V0X2F0dHIgInR5cGUiICJkbXVsIildKQogIApAQCAtODU2Nyw3 ICsxMDQ3OSw3IEBAIHRlc3RzdWl0ZS8KICAgIFsoc2V0IChtYXRjaF9vcGVyYW5kOlNGIDAgImdw Y19yZWdfb3BlcmFuZCIgIj1mIikKICAJKG1pbnVzOlNGIChtdWx0OlNGIChuZWc6U0YgKG1hdGNo X29wZXJhbmQ6U0YgMSAiZ3BjX3JlZ19vcGVyYW5kIiAiZiIpKQogIAkJCSAgIChtYXRjaF9vcGVy YW5kOlNGIDIgImdwY19yZWdfb3BlcmFuZCIgImYiKSkKLUBAIC01Mzg0LDcgKzU0MDQsNyBAQCAo ZGVmaW5lX2luc24gIiIKK0BAIC01Mzg0LDcgKzU0MTQsNyBAQAogICAgIntmbm1hfGZubWFkZH0g JTAsJTEsJTIsJTMiCiAgICBbKHNldF9hdHRyICJ0eXBlIiAiZG11bCIpXSkKICAKQEAgLTg1NzYs NyArMTA0ODgsNyBAQCB0ZXN0c3VpdGUvCiAgICBbKHNldCAobWF0Y2hfb3BlcmFuZDpTRiAwICJn cGNfcmVnX29wZXJhbmQiICI9ZiIpCiAgCShuZWc6U0YgKG1pbnVzOlNGIChtdWx0OlNGIChtYXRj aF9vcGVyYW5kOlNGIDEgImdwY19yZWdfb3BlcmFuZCIgIiVmIikKICAJCQkJICAgKG1hdGNoX29w ZXJhbmQ6U0YgMiAiZ3BjX3JlZ19vcGVyYW5kIiAiZiIpKQotQEAgLTUzOTUsNyArNTQxNSw3IEBA IChkZWZpbmVfaW5zbiAiIgorQEAgLTUzOTUsNyArNTQyNSw3IEBACiAgICBbKHNldF9hdHRyICJ0 eXBlIiAiZnAiKQogICAgIChzZXRfYXR0ciAiZnBfdHlwZSIgImZwX21hZGRzdWJfcyIpXSkKICAK QEAgLTg1ODUsNyArMTA0OTcsNyBAQCB0ZXN0c3VpdGUvCiAgICBbKHNldCAobWF0Y2hfb3BlcmFu ZDpTRiAwICJncGNfcmVnX29wZXJhbmQiICI9ZiIpCiAgCShtaW51czpTRiAobWF0Y2hfb3BlcmFu ZDpTRiAzICJncGNfcmVnX29wZXJhbmQiICJmIikKICAJCSAgKG11bHQ6U0YgKG1hdGNoX29wZXJh bmQ6U0YgMSAiZ3BjX3JlZ19vcGVyYW5kIiAiJWYiKQotQEAgLTU0MDYsNyArNTQyNiw3IEBAIChk ZWZpbmVfaW5zbiAiIgorQEAgLTU0MDYsNyArNTQzNiw3IEBACiAgICBbKHNldF9hdHRyICJ0eXBl IiAiZnAiKQogICAgIChzZXRfYXR0ciAiZnBfdHlwZSIgImZwX21hZGRzdWJfcyIpXSkKICAKQEAg LTg1OTQsNyArMTA1MDYsNyBAQCB0ZXN0c3VpdGUvCiAgICBbKHNldCAobWF0Y2hfb3BlcmFuZDpT RiAwICJncGNfcmVnX29wZXJhbmQiICI9ZiIpCiAgCShuZWc6U0YgKG1pbnVzOlNGIChtdWx0OlNG IChtYXRjaF9vcGVyYW5kOlNGIDEgImdwY19yZWdfb3BlcmFuZCIgIiVmIikKICAJCQkJICAgKG1h dGNoX29wZXJhbmQ6U0YgMiAiZ3BjX3JlZ19vcGVyYW5kIiAiZiIpKQotQEAgLTU0MTUsNyArNTQz NSw3IEBAIChkZWZpbmVfaW5zbiAiIgorQEAgLTU0MTUsNyArNTQ0NSw3IEBACiAgICAie2ZubXN8 Zm5tc3VifSAlMCwlMSwlMiwlMyIKICAgIFsoc2V0X2F0dHIgInR5cGUiICJkbXVsIildKQogIApA QCAtODYwMyw3ICsxMDUxNSw3IEBAIHRlc3RzdWl0ZS8KICAgIFsoc2V0IChtYXRjaF9vcGVyYW5k OlNGIDAgImdwY19yZWdfb3BlcmFuZCIgIj1mIikKICAJKG1pbnVzOlNGIChtYXRjaF9vcGVyYW5k OlNGIDMgImdwY19yZWdfb3BlcmFuZCIgImYiKQogIAkJICAobXVsdDpTRiAobWF0Y2hfb3BlcmFu ZDpTRiAxICJncGNfcmVnX29wZXJhbmQiICIlZiIpCi1AQCAtNTQ5Niw5ICs1NTE2LDE4IEBAIChk ZWZpbmVfZXhwYW5kICJjb3B5c2lnbmRmMyIKK0BAIC01NDk2LDkgKzU1MjYsMTggQEAKICAJICAg ICAgICAgICAgICAgICAgICAgKG1hdGNoX2R1cCA1KSkKICAJCQkgKG1hdGNoX2R1cCAzKQogIAkJ CSAobWF0Y2hfZHVwIDQpKSldCkBAIC04NjI0LDcgKzEwNTM2LDcgQEAgdGVzdHN1aXRlLwogICAg ICAgb3BlcmFuZHNbM10gPSBnZW5fcmVnX3J0eCAoREZtb2RlKTsKICAgICAgIG9wZXJhbmRzWzRd ID0gZ2VuX3JlZ19ydHggKERGbW9kZSk7CiAgICAgICBvcGVyYW5kc1s1XSA9IENPTlNUMF9SVFgg KERGbW9kZSk7Ci1AQCAtNTU0MiwxMiArNTU3MSwxMiBAQCAoZGVmaW5lX3NwbGl0CitAQCAtNTU0 MiwxMiArNTU4MSwxMiBAQAogICAgRE9ORTsKICB9IikKICAKQEAgLTg2NDMsNyArMTA1NTUsNyBA QCB0ZXN0c3VpdGUvCiAgICAiCiAgewogICAgaWYgKHJzNjAwMF9lbWl0X2Ntb3ZlIChvcGVyYW5k c1swXSwgb3BlcmFuZHNbMV0sIG9wZXJhbmRzWzJdLCBvcGVyYW5kc1szXSkpCi1AQCAtNTU2NCwy OCArNTU5MywyOCBAQCAoZGVmaW5lX2V4cGFuZCAibW92c2ljYyIKK0BAIC01NTY0LDI4ICs1NjAz LDI4IEBACiAgOzsgbGVhdmUgb3V0IHRoZSBtb2RlIGluIG9wZXJhbmQgNCBhbmQgdXNlIG9uZSBw YXR0ZXJuLCBidXQgcmVsb2FkIGNhbgogIDs7IGNoYW5nZSB0aGUgbW9kZSB1bmRlcm5lYXRoIG91 ciBmZWV0IGFuZCB0aGVuIGdldHMgY29uZnVzZWQgdHJ5aW5nCiAgOzsgdG8gcmVsb2FkIHRoZSB2 YWx1ZS4KQEAgLTg2ODQsNyArMTA1OTYsNyBAQCB0ZXN0c3VpdGUvCiAgICAiKgogIHsgcmV0dXJu IG91dHB1dF9pc2VsIChvcGVyYW5kcyk7IH0iCiAgICBbKHNldF9hdHRyICJsZW5ndGgiICI0Iild KQotQEAgLTU2MzMsNyArNTY2Miw4IEBAIChkZWZpbmVfZXhwYW5kICJuZWdkZjIiCitAQCAtNTYz Myw3ICs1NjcyLDggQEAKICAoZGVmaW5lX2luc24gIipuZWdkZjJfZnByIgogICAgWyhzZXQgKG1h dGNoX29wZXJhbmQ6REYgMCAiZ3BjX3JlZ19vcGVyYW5kIiAiPWYiKQogIAkobmVnOkRGIChtYXRj aF9vcGVyYW5kOkRGIDEgImdwY19yZWdfb3BlcmFuZCIgImYiKSkpXQpAQCAtODY5NCw3ICsxMDYw Niw3IEBAIHRlc3RzdWl0ZS8KICAgICJmbmVnICUwLCUxIgogICAgWyhzZXRfYXR0ciAidHlwZSIg ImZwIildKQogIAotQEAgLTU2NDYsMTQgKzU2NzYsMTYgQEAgKGRlZmluZV9leHBhbmQgImFic2Rm MiIKK0BAIC01NjQ2LDE0ICs1Njg2LDE2IEBACiAgKGRlZmluZV9pbnNuICIqYWJzZGYyX2ZwciIK ICAgIFsoc2V0IChtYXRjaF9vcGVyYW5kOkRGIDAgImdwY19yZWdfb3BlcmFuZCIgIj1mIikKICAJ KGFiczpERiAobWF0Y2hfb3BlcmFuZDpERiAxICJncGNfcmVnX29wZXJhbmQiICJmIikpKV0KQEAg LTg3MTMsNyArMTA2MjUsNyBAQCB0ZXN0c3VpdGUvCiAgICAiZm5hYnMgJTAsJTEiCiAgICBbKHNl dF9hdHRyICJ0eXBlIiAiZnAiKV0pCiAgCi1AQCAtNTY2OCw3ICs1NzAwLDggQEAgKGRlZmluZV9p bnNuICIqYWRkZGYzX2ZwciIKK0BAIC01NjY4LDcgKzU3MTAsOCBAQAogICAgWyhzZXQgKG1hdGNo X29wZXJhbmQ6REYgMCAiZ3BjX3JlZ19vcGVyYW5kIiAiPWYiKQogIAkocGx1czpERiAobWF0Y2hf b3BlcmFuZDpERiAxICJncGNfcmVnX29wZXJhbmQiICIlZiIpCiAgCQkgKG1hdGNoX29wZXJhbmQ6 REYgMiAiZ3BjX3JlZ19vcGVyYW5kIiAiZiIpKSldCkBAIC04NzIzLDcgKzEwNjM1LDcgQEAgdGVz dHN1aXRlLwogICAgIntmYXxmYWRkfSAlMCwlMSwlMiIKICAgIFsoc2V0X2F0dHIgInR5cGUiICJm cCIpCiAgICAgKHNldF9hdHRyICJmcF90eXBlIiAiZnBfYWRkc3ViX2QiKV0pCi1AQCAtNTY4NCw3 ICs1NzE3LDggQEAgKGRlZmluZV9pbnNuICIqc3ViZGYzX2ZwciIKK0BAIC01Njg0LDcgKzU3Mjcs OCBAQAogICAgWyhzZXQgKG1hdGNoX29wZXJhbmQ6REYgMCAiZ3BjX3JlZ19vcGVyYW5kIiAiPWYi KQogIAkobWludXM6REYgKG1hdGNoX29wZXJhbmQ6REYgMSAiZ3BjX3JlZ19vcGVyYW5kIiAiZiIp CiAgCQkgIChtYXRjaF9vcGVyYW5kOkRGIDIgImdwY19yZWdfb3BlcmFuZCIgImYiKSkpXQpAQCAt ODczMyw3ICsxMDY0NSw3IEBAIHRlc3RzdWl0ZS8KICAgICJ7ZnN8ZnN1Yn0gJTAsJTEsJTIiCiAg ICBbKHNldF9hdHRyICJ0eXBlIiAiZnAiKQogICAgIChzZXRfYXR0ciAiZnBfdHlwZSIgImZwX2Fk ZHN1Yl9kIildKQotQEAgLTU3MDAsNyArNTczNCw4IEBAIChkZWZpbmVfaW5zbiAiKm11bGRmM19m cHIiCitAQCAtNTcwMCw3ICs1NzQ0LDggQEAKICAgIFsoc2V0IChtYXRjaF9vcGVyYW5kOkRGIDAg ImdwY19yZWdfb3BlcmFuZCIgIj1mIikKICAJKG11bHQ6REYgKG1hdGNoX29wZXJhbmQ6REYgMSAi Z3BjX3JlZ19vcGVyYW5kIiAiJWYiKQogIAkJIChtYXRjaF9vcGVyYW5kOkRGIDIgImdwY19yZWdf b3BlcmFuZCIgImYiKSkpXQpAQCAtODc0Myw3ICsxMDY1NSw3IEBAIHRlc3RzdWl0ZS8KICAgICJ7 Zm18Zm11bH0gJTAsJTEsJTIiCiAgICBbKHNldF9hdHRyICJ0eXBlIiAiZG11bCIpCiAgICAgKHNl dF9hdHRyICJmcF90eXBlIiAiZnBfbXVsX2QiKV0pCi1AQCAtNTcxOCw3ICs1NzUzLDggQEAgKGRl ZmluZV9pbnNuICIqZGl2ZGYzX2ZwciIKK0BAIC01NzE4LDcgKzU3NjMsOCBAQAogICAgWyhzZXQg KG1hdGNoX29wZXJhbmQ6REYgMCAiZ3BjX3JlZ19vcGVyYW5kIiAiPWYiKQogIAkoZGl2OkRGICht YXRjaF9vcGVyYW5kOkRGIDEgImdwY19yZWdfb3BlcmFuZCIgImYiKQogIAkJKG1hdGNoX29wZXJh bmQ6REYgMiAiZ3BjX3JlZ19vcGVyYW5kIiAiZiIpKSldCkBAIC04NzUzLDcgKzEwNjY1LDcgQEAg dGVzdHN1aXRlLwogICAgIntmZHxmZGl2fSAlMCwlMSwlMiIKICAgIFsoc2V0X2F0dHIgInR5cGUi ICJkZGl2IildKQogIAotQEAgLTU3MzQsNzMgKzU3NzAsODEgQEAgKGRlZmluZV9leHBhbmQgInJl Y2lwZGYzIgorQEAgLTU3MzQsNzMgKzU3ODAsODEgQEAKICAgICBET05FOwogIH0pCiAgCkBAIC04 ODQ5LDcgKzEwNzYxLDcgQEAgdGVzdHN1aXRlLwogICAgIntmbm1zfGZubXN1Yn0gJTAsJTEsJTIs JTMiCiAgICBbKHNldF9hdHRyICJ0eXBlIiAiZG11bCIpCiAgICAgKHNldF9hdHRyICJmcF90eXBl IiAiZnBfbWFkZHN1Yl9kIildKQotQEAgLTU4MDksNyArNTg1Myw4IEBAIChkZWZpbmVfaW5zbiAi c3FydGRmMiIKK0BAIC01ODA5LDcgKzU4NjMsOCBAQAogICAgWyhzZXQgKG1hdGNoX29wZXJhbmQ6 REYgMCAiZ3BjX3JlZ19vcGVyYW5kIiAiPWYiKQogIAkoc3FydDpERiAobWF0Y2hfb3BlcmFuZDpE RiAxICJncGNfcmVnX29wZXJhbmQiICJmIikpKV0KICAgICIoVEFSR0VUX1BQQ19HUE9QVCB8fCBU QVJHRVRfUE9XRVIyKSAmJiBUQVJHRVRfSEFSRF9GTE9BVCAmJiBUQVJHRVRfRlBSUyAKQEAgLTg4 NTksNyArMTA3NzEsNyBAQCB0ZXN0c3VpdGUvCiAgICAiZnNxcnQgJTAsJTEiCiAgICBbKHNldF9h dHRyICJ0eXBlIiAiZHNxcnQiKV0pCiAgCi1AQCAtNTg5OCw2ICs1OTQzLDE4IEBAIChkZWZpbmVf ZXhwYW5kICJmaXhfdHJ1bmNzZnNpMiIKK0BAIC01ODk4LDYgKzU5NTMsMTggQEAKICAgIlRBUkdF VF9IQVJEX0ZMT0FUICYmICFUQVJHRVRfRlBSUyAmJiBUQVJHRVRfU0lOR0xFX0ZMT0FUIgogICAi IikKICAKQEAgLTg4NzgsNyArMTA3OTAsNyBAQCB0ZXN0c3VpdGUvCiAgOyBGb3IgZWFjaCBvZiB0 aGVzZSBjb252ZXJzaW9ucywgdGhlcmUgaXMgYSBkZWZpbmVfZXhwYW5kLCBhIGRlZmluZV9pbnNu CiAgOyB3aXRoIGEgJyMnIHRlbXBsYXRlLCBhbmQgYSBkZWZpbmVfc3BsaXQgKHdpdGggQyBjb2Rl KS4gIFRoZSBpZGVhIGlzCiAgOyB0byBhbGxvdyBjb25zdGFudCBmb2xkaW5nIHdpdGggdGhlIHRl bXBsYXRlIG9mIHRoZSBkZWZpbmVfaW5zbiwKLUBAIC02MTM5LDEwICs2MTk2LDE3IEBAIChkZWZp bmVfaW5zbiAiZmN0aXd6IgorQEAgLTYxMzksMjQgKzYyMDYsMzggQEAKICAgICJ7ZmNpcnp8ZmN0 aXd6fSAlMCwlMSIKICAgIFsoc2V0X2F0dHIgInR5cGUiICJmcCIpXSkKICAKQEAgLTg4OTcsNyAr MTA4MDksMTEgQEAgdGVzdHN1aXRlLwogICAgImZyaXogJTAsJTEiCiAgICBbKHNldF9hdHRyICJ0 eXBlIiAiZnAiKV0pCiAgCi1AQCAtNjE1MywxMCArNjIxNywxNyBAQCAoZGVmaW5lX2luc24gImJ0 cnVuY3NmMiIKKyAoZGVmaW5lX2luc24gImJ0cnVuY3NmMiIKKyAgIFsoc2V0IChtYXRjaF9vcGVy YW5kOlNGIDAgImdwY19yZWdfb3BlcmFuZCIgIj1mIikKKyAJKHVuc3BlYzpTRiBbKG1hdGNoX29w ZXJhbmQ6U0YgMSAiZ3BjX3JlZ19vcGVyYW5kIiAiZiIpXSBVTlNQRUNfRlJJWikpXQorLSAgIlRB UkdFVF9GUFJORCAmJiBUQVJHRVRfSEFSRF9GTE9BVCAmJiBUQVJHRVRfRlBSUyAmJiBUQVJHRVRf U0lOR0xFX0ZMT0FUICIKKysgICJUQVJHRVRfRlBSTkQgJiYgVEFSR0VUX0hBUkRfRkxPQVQgJiYg VEFSR0VUX0ZQUlMgJiYgVEFSR0VUX1NJTkdMRV9GTE9BVCIKICAgICJmcml6ICUwLCUxIgogICAg WyhzZXRfYXR0ciAidHlwZSIgImZwIildKQogIApAQCAtODkxNyw3ICsxMDgzMyw3IEBAIHRlc3Rz dWl0ZS8KICAgICJmcmlwICUwLCUxIgogICAgWyhzZXRfYXR0ciAidHlwZSIgImZwIildKQogIAot QEAgLTYxNjcsMTAgKzYyMzgsMTcgQEAgKGRlZmluZV9pbnNuICJjZWlsc2YyIgorQEAgLTYxNjcs MTAgKzYyNDgsMTcgQEAKICAgICJmcmlwICUwLCUxIgogICAgWyhzZXRfYXR0ciAidHlwZSIgImZw IildKQogIApAQCAtODkzNyw3ICsxMDg1Myw3IEBAIHRlc3RzdWl0ZS8KICAgICJmcmltICUwLCUx IgogICAgWyhzZXRfYXR0ciAidHlwZSIgImZwIildKQogIAotQEAgLTYxODEsNiArNjI1OSw3IEBA IChkZWZpbmVfaW5zbiAiZmxvb3JzZjIiCitAQCAtNjE4MSw2ICs2MjY5LDcgQEAKICAgICJmcmlt ICUwLCUxIgogICAgWyhzZXRfYXR0ciAidHlwZSIgImZwIildKQogIApAQCAtODk0NSw3ICsxMDg2 MSw3IEBAIHRlc3RzdWl0ZS8KICAoZGVmaW5lX2luc24gInJvdW5kZGYyIgogICAgWyhzZXQgKG1h dGNoX29wZXJhbmQ6REYgMCAiZ3BjX3JlZ19vcGVyYW5kIiAiPWYiKQogIAkodW5zcGVjOkRGIFso bWF0Y2hfb3BlcmFuZDpERiAxICJncGNfcmVnX29wZXJhbmQiICJmIildIFVOU1BFQ19GUklOKSld Ci1AQCAtNjE5NSw2ICs2Mjc0LDEyIEBAIChkZWZpbmVfaW5zbiAicm91bmRzZjIiCitAQCAtNjE5 NSw2ICs2Mjg0LDEyIEBACiAgICAiZnJpbiAlMCwlMSIKICAgIFsoc2V0X2F0dHIgInR5cGUiICJm cCIpXSkKICAKQEAgLTg5NTgsNyArMTA4NzQsNyBAQCB0ZXN0c3VpdGUvCiAgOyBBbiBVTlNQRUMg aXMgdXNlZCBzbyB3ZSBkb24ndCBoYXZlIHRvIHN1cHBvcnQgU0ltb2RlIGluIEZQIHJlZ2lzdGVy cy4KICAoZGVmaW5lX2luc24gInN0Zml3eCIKICAgIFsoc2V0IChtYXRjaF9vcGVyYW5kOlNJIDAg Im1lbW9yeV9vcGVyYW5kIiAiPVoiKQotQEAgLTYyMTAsMTcgKzYyOTUsNDAgQEAgKGRlZmluZV9l eHBhbmQgImZsb2F0c2lzZjIiCitAQCAtNjIxMCwxNyArNjMwNSw0MCBAQAogICAgIlRBUkdFVF9I QVJEX0ZMT0FUICYmICFUQVJHRVRfRlBSUyIKICAgICIiKQogIApAQCAtOTAwMyw3ICsxMDkxOSw3 IEBAIHRlc3RzdWl0ZS8KICAgICJmY3RpZHogJTAsJTEiCiAgICBbKHNldF9hdHRyICJ0eXBlIiAi ZnAiKV0pCiAgCi1AQCAtNzYwOSw3ICs3NzE3LDcgQEAgKGRlZmluZV9pbnNuICJhbmRkaTNfbWMi CitAQCAtNzYwOSw3ICs3NzI3LDcgQEAKICAgICBhbmRpLiAlMCwlMSwlYjIKICAgICBhbmRpcy4g JTAsJTEsJXUyCiAgICAgIyIKQEAgLTkwMTIsNyArMTA5MjgsNyBAQCB0ZXN0c3VpdGUvCiAgICAg KHNldF9hdHRyICJsZW5ndGgiICI0LDQsNCw0LDQsOCIpXSkKICAKICAoZGVmaW5lX2luc24gImFu ZGRpM19ub21jIgotQEAgLTc2NjcsNyArNzc3NSw5IEBAIChkZWZpbmVfaW5zbiAiKmFuZGRpM19p bnRlcm5hbDJfbWMiCitAQCAtNzY2Nyw3ICs3Nzg1LDkgQEAKICAgICAjCiAgICAgIwogICAgICMi CkBAIC05MDIzLDcgKzEwOTM5LDcgQEAgdGVzdHN1aXRlLwogICAgIChzZXRfYXR0ciAibGVuZ3Ro IiAiNCw0LDQsNCw0LDgsOCw4LDgsOCw4LDEyIildKQogIAogIChkZWZpbmVfc3BsaXQKLUBAIC03 NzE4LDcgKzc4MjgsOSBAQCAoZGVmaW5lX2luc24gIiphbmRkaTNfaW50ZXJuYWwzX21jIgorQEAg LTc3MTgsNyArNzgzOCw5IEBACiAgICAgIwogICAgICMKICAgICAjIgpAQCAtOTAzNCw3ICsxMDk1 MCw3IEBAIHRlc3RzdWl0ZS8KICAgICAoc2V0X2F0dHIgImxlbmd0aCIgIjQsNCw0LDQsNCw4LDgs OCw4LDgsOCwxMiIpXSkKICAKICAoZGVmaW5lX3NwbGl0Ci1AQCAtNzg1OCw3ICs3OTcwLDcgQEAg KGRlZmluZV9pbnNuICIqYm9vbGRpM19pbnRlcm5hbDIiCitAQCAtNzg1OCw3ICs3OTgwLDcgQEAK ICAgICJACiAgICAgJXE0LiAlMywlMSwlMgogICAgICMiCkBAIC05MDQzLDcgKzEwOTU5LDcgQEAg dGVzdHN1aXRlLwogICAgIChzZXRfYXR0ciAibGVuZ3RoIiAiNCw4IildKQogIAogIChkZWZpbmVf c3BsaXQKLUBAIC03ODg3LDcgKzc5OTksNyBAQCAoZGVmaW5lX2luc24gIipib29sZGkzX2ludGVy bmFsMyIKK0BAIC03ODg3LDcgKzgwMDksNyBAQAogICAgIkAKICAgICAlcTQuICUwLCUxLCUyCiAg ICAgIyIKQEAgLTkwNTIsNyArMTA5NjgsNyBAQCB0ZXN0c3VpdGUvCiAgICAgKHNldF9hdHRyICJs ZW5ndGgiICI0LDgiKV0pCiAgCiAgKGRlZmluZV9zcGxpdAotQEAgLTc5NTgsNyArODA3MCw3IEBA IChkZWZpbmVfaW5zbiAiKmJvb2xjZGkzX2ludGVybmFsMiIKK0BAIC03OTU4LDcgKzgwODAsNyBA QAogICAgIkAKICAgICAlcTQuICUzLCUyLCUxCiAgICAgIyIKQEAgLTkwNjEsNyArMTA5NzcsNyBA QCB0ZXN0c3VpdGUvCiAgICAgKHNldF9hdHRyICJsZW5ndGgiICI0LDgiKV0pCiAgCiAgKGRlZmlu ZV9zcGxpdAotQEAgLTc5ODcsNyArODA5OSw3IEBAIChkZWZpbmVfaW5zbiAiKmJvb2xjZGkzX2lu dGVybmFsMyIKK0BAIC03OTg3LDcgKzgxMDksNyBAQAogICAgIkAKICAgICAlcTQuICUwLCUyLCUx CiAgICAgIyIKQEAgLTkwNzAsNyArMTA5ODYsNyBAQCB0ZXN0c3VpdGUvCiAgICAgKHNldF9hdHRy ICJsZW5ndGgiICI0LDgiKV0pCiAgCiAgKGRlZmluZV9zcGxpdAotQEAgLTgwMjQsNyArODEzNiw3 IEBAIChkZWZpbmVfaW5zbiAiKmJvb2xjY2RpM19pbnRlcm5hbDIiCitAQCAtODAyNCw3ICs4MTQ2 LDcgQEAKICAgICJACiAgICAgJXE0LiAlMywlMSwlMgogICAgICMiCkBAIC05MDc5LDcgKzEwOTk1 LDcgQEAgdGVzdHN1aXRlLwogICAgIChzZXRfYXR0ciAibGVuZ3RoIiAiNCw4IildKQogIAogIChk ZWZpbmVfc3BsaXQKLUBAIC04MDUzLDcgKzgxNjUsNyBAQCAoZGVmaW5lX2luc24gIipib29sY2Nk aTNfaW50ZXJuYWwzIgorQEAgLTgwNTMsNyArODE3NSw3IEBACiAgICAiQAogICAgICVxNC4gJTAs JTEsJTIKICAgICAjIgpAQCAtOTA4OCw3ICsxMTAwNCw3IEBAIHRlc3RzdWl0ZS8KICAgICAoc2V0 X2F0dHIgImxlbmd0aCIgIjQsOCIpXSkKICAKICAoZGVmaW5lX3NwbGl0Ci1AQCAtODA3MCw2ICs4 MTgyLDUxIEBAIChkZWZpbmVfc3BsaXQKK0BAIC04MDcwLDYgKzgxOTIsNTEgQEAKICAJKGNvbXBh cmU6Q0MgKG1hdGNoX2R1cCAwKQogIAkJICAgIChjb25zdF9pbnQgMCkpKV0KICAgICIiKQpAQCAt OTE0MCw3ICsxMTA1Niw3IEBAIHRlc3RzdWl0ZS8KICAMCiAgOzsgTm93IGRlZmluZSB3YXlzIG9m IG1vdmluZyBkYXRhIGFyb3VuZC4KICAKLUBAIC04NDczLDggKzg2MzAsOCBAQCAoZGVmaW5lX3Nw bGl0CitAQCAtODQ3Myw4ICs4NjQwLDggQEAKICA7OyBUaGUgIj8/IiBpcyBhIGtsdWRnZSB1bnRp bCB3ZSBjYW4gZmlndXJlIG91dCBhIG1vcmUgcmVhc29uYWJsZSB3YXkKICA7OyBvZiBoYW5kbGlu ZyB0aGVzZSBub24tb2Zmc2V0dGFibGUgdmFsdWVzLgogIChkZWZpbmVfaW5zbiAiKm1vdmRmX2hh cmRmbG9hdDMyIgpAQCAtOTE1MSwxNCArMTEwNjcsMTQgQEAgdGVzdHN1aXRlLwogICAgIiEgVEFS R0VUX1BPV0VSUEM2NCAmJiBUQVJHRVRfSEFSRF9GTE9BVCAmJiBUQVJHRVRfRlBSUyAmJiBUQVJH RVRfRE9VQkxFX0ZMT0FUIAogICAgICYmIChncGNfcmVnX29wZXJhbmQgKG9wZXJhbmRzWzBdLCBE Rm1vZGUpCiAgICAgICAgIHx8IGdwY19yZWdfb3BlcmFuZCAob3BlcmFuZHNbMV0sIERGbW9kZSkp IgotQEAgLTg1NTMsMTkgKzg3MTAsMzAgQEAgKGRlZmluZV9pbnNuICIqbW92ZGZfaGFyZGZsb2F0 MzIiCitAQCAtODU1MywxOSArODcyMCwzMCBAQAogIAkgIHJldHVybiBcIlwiOwogIAl9CiAgICAg IGNhc2UgMzoKIC0gICAgICByZXR1cm4gXCJmbXIgJTAsJTFcIjsKICAgICAgY2FzZSA0OgogLSAg ICAgIHJldHVybiBcImxmZCVVMSVYMSAlMCwlMVwiOwotKyAgICAgIHJldHVybiBcInhzY3BzZ25k cCAleDAsJXgxLCV4MVwiOworKyAgICAgIHJldHVybiBcInh4bG9yICV4MCwleDEsJXgxXCI7CiAg ICAgIGNhc2UgNToKIC0gICAgICByZXR1cm4gXCJzdGZkJVUwJVgwICUxLCUwXCI7CiAgICAgIGNh c2UgNjoKQEAgLTkxODcsNyArMTExMDMsNyBAQCB0ZXN0c3VpdGUvCiAgCiAgKGRlZmluZV9pbnNu ICIqbW92ZGZfc29mdGZsb2F0MzIiCiAgICBbKHNldCAobWF0Y2hfb3BlcmFuZDpERiAwICJub25p bW1lZGlhdGVfb3BlcmFuZCIgIj1yLHIsbSxyLHIsciIpCi1AQCAtODYxMywxOSArODc4MSwyNiBA QCAoZGVmaW5lX2luc24gIiptb3ZkZl9zb2Z0ZmxvYXQzMiIKK0BAIC04NjEzLDE5ICs4NzkxLDI2 IEBACiAgOyBsZC9zdGQgcmVxdWlyZSB3b3JkLWFsaWduZWQgZGlzcGxhY2VtZW50cyAtPiAnWScg Y29uc3RyYWludC4KICA7IExpc3QgWS0+ciBhbmQgci0+WSBiZWZvcmUgci0+ciBmb3IgcmVsb2Fk LgogIChkZWZpbmVfaW5zbiAiKm1vdmRmX2hhcmRmbG9hdDY0X21mcGdwciIKQEAgLTkyMDQsOCAr MTExMjAsOCBAQCB0ZXN0c3VpdGUvCiAgICAgc3RkJVUwJVgwICUxLCUwCiAgICAgbGQlVTElWDEg JTAsJTEKICAgICBtciAlMCwlMQotKyAgIHhzY3BzZ25kcCAleDAsJXgxLCV4MQotKyAgIHhzY3Bz Z25kcCAleDAsJXgxLCV4MQorKyAgIHh4bG9yICV4MCwleDEsJXgxCisrICAgeHhsb3IgJXgwLCV4 MSwleDEKICsgICBseHNkJVUxeCAleDAsJXkxCiArICAgbHhzZCVVMXggJXgwLCV5MQogKyAgIHN0 eHNkJVUweCAleDEsJXkwCkBAIC05MjE3LDcgKzExMTMzLDcgQEAgdGVzdHN1aXRlLwogICAgIG10 JTAgJTEKICAgICBtZiUxICUwCiAgICAge2Nyb3IgMCwwLDB8bm9wfQotQEAgLTg2MzQsMzMgKzg4 MDksNDAgQEAgKGRlZmluZV9pbnNuICIqbW92ZGZfaGFyZGZsb2F0NjRfbWZwZ3ByIgorQEAgLTg2 MzQsMzMgKzg4MTksNDAgQEAKICAgICAjCiAgICAgbWZ0Z3ByICUwLCUxCiAgICAgbWZmZ3ByICUw LCUxIgpAQCAtOTI0Miw4ICsxMTE1OCw4IEBAIHRlc3RzdWl0ZS8KICAgICBzdGQlVTAlWDAgJTEs JTAKICAgICBsZCVVMSVYMSAlMCwlMQogICAgIG1yICUwLCUxCi0rICAgeHNjcHNnbmRwICV4MCwl eDEsJXgxCi0rICAgeHNjcHNnbmRwICV4MCwleDEsJXgxCisrICAgeHhsb3IgJXgwLCV4MSwleDEK KysgICB4eGxvciAleDAsJXgxLCV4MQogKyAgIGx4c2QlVTF4ICV4MCwleTEKICsgICBseHNkJVUx eCAleDAsJXkxCiArICAgc3R4c2QlVTB4ICV4MSwleTAKQEAgLTkyNjUsNyArMTExODEsNyBAQCB0 ZXN0c3VpdGUvCiAgCiAgKGRlZmluZV9pbnNuICIqbW92ZGZfc29mdGZsb2F0NjQiCiAgICBbKHNl dCAobWF0Y2hfb3BlcmFuZDpERiAwICJub25pbW1lZGlhdGVfb3BlcmFuZCIgIj1yLFkscixjbCxy LHIscixyLCpoIikKLUBAIC05MjM3LDE1ICs5NDE5LDE2IEBAIChkZWZpbmVfaW5zbiAiKm1vdnRp X3N0cmluZyIKK0BAIC05MjM3LDE1ICs5NDI5LDE2IEBACiAgKGRlZmluZV9pbnNuICIqbW92dGlf cHBjNjQiCiAgICBbKHNldCAobWF0Y2hfb3BlcmFuZDpUSSAwICJub25pbW1lZGlhdGVfb3BlcmFu ZCIgIj1yLG88PixyIikKICAJKG1hdGNoX29wZXJhbmQ6VEkgMSAiaW5wdXRfb3BlcmFuZCIgInIs cixtIikpXQpAQCAtOTI4NSw3ICsxMTIwMSw3IEBAIHRlc3RzdWl0ZS8KICAgIFsoc2V0IChtYXRj aF9kdXAgMikgKG1hdGNoX2R1cCA0KSkKICAgICAoc2V0IChtYXRjaF9kdXAgMykgKG1hdGNoX2R1 cCA1KSldCiAgICAiCi1AQCAtOTI3MSw3ICs5NDU0LDcgQEAgKGRlZmluZV9zcGxpdAorQEAgLTky NzEsNyArOTQ2NCw3IEBACiAgKGRlZmluZV9zcGxpdAogICAgWyhzZXQgKG1hdGNoX29wZXJhbmQ6 VEkgMCAibm9uaW1tZWRpYXRlX29wZXJhbmQiICIiKQogICAgICAgICAgKG1hdGNoX29wZXJhbmQ6 VEkgMSAiaW5wdXRfb3BlcmFuZCIgIiIpKV0KQEAgLTkyOTQsNyArMTEyMTAsNyBAQCB0ZXN0c3Vp dGUvCiAgICAgJiYgZ3ByX29yX2dwcl9wIChvcGVyYW5kc1swXSwgb3BlcmFuZHNbMV0pIgogICAg WyhwYyldCiAgeyByczYwMDBfc3BsaXRfbXVsdGlyZWdfbW92ZSAob3BlcmFuZHNbMF0sIG9wZXJh bmRzWzFdKTsgRE9ORTsgfSkKLUBAIC0xNDg5MSw2ICsxNTA3NCw4IEBAIChkZWZpbmVfaW5zbiAi cHJlZmV0Y2giCitAQCAtMTQ4OTEsNiArMTUwODQsOCBAQAogIAwKICAKICAoaW5jbHVkZSAic3lu Yy5tZCIpCkBAIC05MzAzLDggKzExMjE5LDggQEAgdGVzdHN1aXRlLwogIChpbmNsdWRlICJhbHRp dmVjLm1kIikKICAoaW5jbHVkZSAic3BlLm1kIikKICAoaW5jbHVkZSAiZGZwLm1kIikKLS0tLSBn Y2MvY29uZmlnL3JzNjAwMC9lNTAwLmgJKC4uLi90cnVuaykJKHJldmlzaW9uIDE0NDU1NykKLSsr KyBnY2MvY29uZmlnL3JzNjAwMC9lNTAwLmgJKC4uLi9icmFuY2hlcy9pYm0vcG93ZXI3LW1laXNz bmVyKQkocmV2aXNpb24gMTQ0NzMwKQorLS0tIGdjYy9jb25maWcvcnM2MDAwL2U1MDAuaAkoLi4u L3RydW5rKQkocmV2aXNpb24gMTQ1Nzc3KQorKysrIGdjYy9jb25maWcvcnM2MDAwL2U1MDAuaAko Li4uL2JyYW5jaGVzL2libS9wb3dlcjctbWVpc3NuZXIpCShyZXZpc2lvbiAxNDYwMjcpCiBAQCAt MzcsNiArMzcsOCBAQAogICAgICAgIHsJCQkJCQkJCQlcCiAgCWlmIChUQVJHRVRfQUxUSVZFQykJ CQkJCQlcCkBAIC05MzE0LDggKzExMjMwLDggQEAgdGVzdHN1aXRlLwogIAlpZiAoVEFSR0VUXzY0 QklUKQkJCQkJCVwKICAJICBlcnJvciAoIjY0LWJpdCBFNTAwIG5vdCBzdXBwb3J0ZWQiKTsJCQkJ XAogIAlpZiAoVEFSR0VUX0hBUkRfRkxPQVQgJiYgVEFSR0VUX0ZQUlMpCQkJCVwKLS0tLSBnY2Mv Y29uZmlnL3JzNjAwMC9kcml2ZXItcnM2MDAwLmMJKC4uLi90cnVuaykJKHJldmlzaW9uIDE0NDU1 NykKLSsrKyBnY2MvY29uZmlnL3JzNjAwMC9kcml2ZXItcnM2MDAwLmMJKC4uLi9icmFuY2hlcy9p Ym0vcG93ZXI3LW1laXNzbmVyKQkocmV2aXNpb24gMTQ0NzMwKQorLS0tIGdjYy9jb25maWcvcnM2 MDAwL2RyaXZlci1yczYwMDAuYwkoLi4uL3RydW5rKQkocmV2aXNpb24gMTQ1Nzc3KQorKysrIGdj Yy9jb25maWcvcnM2MDAwL2RyaXZlci1yczYwMDAuYwkoLi4uL2JyYW5jaGVzL2libS9wb3dlcjct bWVpc3NuZXIpCShyZXZpc2lvbiAxNDYwMjcpCiBAQCAtMzQzLDExICszNDMsMTE1IEBAIGRldGVj dF9wcm9jZXNzb3JfYWl4ICh2b2lkKQogICNlbmRpZiAvKiBfQUlYICovCiAgCkBAIC05NDk2LDkg KzExNDEyLDkgQEAgdGVzdHN1aXRlLwogICAgcmV0dXJuIGNvbmNhdCAoY2FjaGUsICItbSIsIGFy Z3ZbMF0sICI9IiwgY3B1LCAiICIsIG9wdGlvbnMsIE5VTEwpOwogIH0KICAKLS0tLSBnY2MvY29u ZmlnL3JzNjAwMC9zeXN2NC5oCSguLi4vdHJ1bmspCShyZXZpc2lvbiAxNDQ1NTcpCi0rKysgZ2Nj L2NvbmZpZy9yczYwMDAvc3lzdjQuaAkoLi4uL2JyYW5jaGVzL2libS9wb3dlcjctbWVpc3NuZXIp CShyZXZpc2lvbiAxNDQ3MzApCi1AQCAtMTE5LDkgKzExOSw5IEBAIGRvIHsJCQkJCQkJCQlcCist LS0gZ2NjL2NvbmZpZy9yczYwMDAvc3lzdjQuaAkoLi4uL3RydW5rKQkocmV2aXNpb24gMTQ1Nzc3 KQorKysrIGdjYy9jb25maWcvcnM2MDAwL3N5c3Y0LmgJKC4uLi9icmFuY2hlcy9pYm0vcG93ZXI3 LW1laXNzbmVyKQkocmV2aXNpb24gMTQ2MDI3KQorQEAgLTEyMCw5ICsxMjAsOSBAQCBkbyB7CQkJ CQkJCQkJXAogICAgZWxzZSBpZiAoIXN0cmNtcCAocnM2MDAwX2FiaV9uYW1lLCAiaTk2MC1vbGQi KSkJCQlcCiAgICAgIHsJCQkJCQkJCQlcCiAgICAgICAgcnM2MDAwX2N1cnJlbnRfYWJpID0gQUJJ X1Y0OwkJCQkJXAoKZGlmZiAtLWdpdCBhL2djYzQ0LXByMzk1NDMucGF0Y2ggYi9nY2M0NC1wcjM5 NTQzLnBhdGNoCmluZGV4IDUxOGYyY2MuLmU4NGM2YjUgMTAwNjQ0Ci0tLSBhL2djYzQ0LXByMzk1 NDMucGF0Y2gKKysrIGIvZ2NjNDQtcHIzOTU0My5wYXRjaApAQCAtMSw0ICsxLDQgQEAKLTIwMDkt MDMtMjcgIEpha3ViIEplbGluZWsgIDxqYWt1YkByZWRoYXQuY29tPgorMjAwOS0wNC0xMCAgSmFr dWIgSmVsaW5layAgPGpha3ViQHJlZGhhdC5jb20+CiAKIAlQUiBydGwtb3B0aW1pemF0aW9uLzM5 NTQzCiAJKiBmd3Byb3AuYyAoZm9yd2FyZF9wcm9wYWdhdGVfYXNtKTogTmV3IGZ1bmN0aW9uLgpA QCAtOSw4ICs5LDggQEAKIAkqIGdjYy50YXJnZXQvaTM4Ni9wcjM5NTQzLTIuYzogTmV3IHRlc3Qu CiAJKiBnY2MudGFyZ2V0L2kzODYvcHIzOTU0My0zLmM6IE5ldyB0ZXN0LgogCi0tLS0gZ2NjL2Z3 cHJvcC5jLmpqCTIwMDktMDMtMjcgMDc6NTU6MzMuMDAwMDAwMDAwICswMTAwCi0rKysgZ2NjL2Z3 cHJvcC5jCTIwMDktMDMtMjcgMTA6MDA6NDguMDAwMDAwMDAwICswMTAwCistLS0gZ2NjL2Z3cHJv cC5jLmpqCTIwMDktMDMtMzAgMTI6NDU6NDUuMDAwMDAwMDAwICswMjAwCisrKysgZ2NjL2Z3cHJv cC5jCTIwMDktMDQtMTAgMTY6MTk6MzYuMDAwMDAwMDAwICswMjAwCiBAQCAtMSw1ICsxLDUgQEAK ICAvKiBSVEwtYmFzZWQgZm9yd2FyZCBwcm9wYWdhdGlvbiBwYXNzIGZvciBHTlUgY29tcGlsZXIu CiAtICAgQ29weXJpZ2h0IChDKSAyMDA1LCAyMDA2LCAyMDA3LCAyMDA4IEZyZWUgU29mdHdhcmUg Rm91bmRhdGlvbiwgSW5jLgpAQCAtMTgsNyArMTgsNyBAQAogICAgIENvbnRyaWJ1dGVkIGJ5IFBh b2xvIEJvbnppbmkgYW5kIFN0ZXZlbiBCb3NzY2hlci4KICAKICBUaGlzIGZpbGUgaXMgcGFydCBv ZiBHQ0MuCi1AQCAtODUyLDYgKzg1Miw3MyBAQCBmb3J3YXJkX3Byb3BhZ2F0ZV9zdWJyZWcgKGRm X3JlZiB1c2UsIHJ0CitAQCAtODUyLDYgKzg1Miw4MCBAQCBmb3J3YXJkX3Byb3BhZ2F0ZV9zdWJy ZWcgKGRmX3JlZiB1c2UsIHJ0CiAgICAgIHJldHVybiBmYWxzZTsKICB9CiAgCkBAIC01MCwyMCAr NTAsMjcgQEAKICsgICAgICBhc21fb3BlcmFuZHMgPSB1c2VfcGF0OwogKyAgICAgIGJyZWFrOwog KyAgICBjYXNlIFNFVDoKLSsgICAgICBsb2MgPSAmU0VUX0RFU1QgKHVzZV9wYXQpOwotKyAgICAg IG5ld19ydHggPSBwcm9wYWdhdGVfcnR4ICgqbG9jLCBHRVRfTU9ERSAoKmxvYyksIHJlZywgc3Jj LCBzcGVlZF9wKTsKLSsgICAgICBpZiAobmV3X3J0eCkKLSsJdmFsaWRhdGVfdW5zaGFyZV9jaGFu Z2UgKHVzZV9pbnNuLCBsb2MsIG5ld19ydHgsIHRydWUpOworKyAgICAgIGlmIChNRU1fUCAoU0VU X0RFU1QgKHVzZV9wYXQpKSkKKysJeworKwkgIGxvYyA9ICZTRVRfREVTVCAodXNlX3BhdCk7Cisr CSAgbmV3X3J0eCA9IHByb3BhZ2F0ZV9ydHggKCpsb2MsIEdFVF9NT0RFICgqbG9jKSwgcmVnLCBz cmMsIHNwZWVkX3ApOworKwkgIGlmIChuZXdfcnR4KQorKwkgICAgdmFsaWRhdGVfdW5zaGFyZV9j aGFuZ2UgKHVzZV9pbnNuLCBsb2MsIG5ld19ydHgsIHRydWUpOworKwl9CiArICAgICAgYXNtX29w ZXJhbmRzID0gU0VUX1NSQyAodXNlX3BhdCk7CiArICAgICAgYnJlYWs7CiArICAgIGNhc2UgUEFS QUxMRUw6CiArICAgICAgZm9yIChpID0gMDsgaSA8IFhWRUNMRU4gKHVzZV9wYXQsIDApOyBpKysp CiArCWlmIChHRVRfQ09ERSAoWFZFQ0VYUCAodXNlX3BhdCwgMCwgaSkpID09IFNFVCkKICsJICB7 Ci0rCSAgICBsb2MgPSAmU0VUX0RFU1QgKFhWRUNFWFAgKHVzZV9wYXQsIDAsIGkpKTsKLSsJICAg IG5ld19ydHggPSBwcm9wYWdhdGVfcnR4ICgqbG9jLCBHRVRfTU9ERSAoKmxvYyksIHJlZywgc3Jj LCBzcGVlZF9wKTsKLSsJICAgIGlmIChuZXdfcnR4KQotKwkgICAgICB2YWxpZGF0ZV91bnNoYXJl X2NoYW5nZSAodXNlX2luc24sIGxvYywgbmV3X3J0eCwgdHJ1ZSk7CisrCSAgICBpZiAoTUVNX1Ag KFNFVF9ERVNUIChYVkVDRVhQICh1c2VfcGF0LCAwLCBpKSkpKQorKwkgICAgICB7CisrCQlsb2Mg PSAmU0VUX0RFU1QgKFhWRUNFWFAgKHVzZV9wYXQsIDAsIGkpKTsKKysJCW5ld19ydHggPSBwcm9w YWdhdGVfcnR4ICgqbG9jLCBHRVRfTU9ERSAoKmxvYyksIHJlZywKKysJCQkJCSBzcmMsIHNwZWVk X3ApOworKwkJaWYgKG5ld19ydHgpCisrCQkgIHZhbGlkYXRlX3Vuc2hhcmVfY2hhbmdlICh1c2Vf aW5zbiwgbG9jLCBuZXdfcnR4LCB0cnVlKTsKKysJICAgICAgfQogKwkgICAgYXNtX29wZXJhbmRz ID0gU0VUX1NSQyAoWFZFQ0VYUCAodXNlX3BhdCwgMCwgaSkpOwogKwkgIH0KICsJZWxzZSBpZiAo R0VUX0NPREUgKFhWRUNFWFAgKHVzZV9wYXQsIDAsIGkpKSA9PSBBU01fT1BFUkFORFMpCkBAIC05 Miw3ICs5OSw3IEBACiAgLyogVHJ5IHRvIHJlcGxhY2UgVVNFIHdpdGggU1JDIChkZWZpbmVkIGlu IERFRl9JTlNOKSBhbmQgc2ltcGxpZnkgdGhlCiAgICAgcmVzdWx0LiAgKi8KICAKLUBAIC04NjMs MTIgKzkzMCwxNiBAQCBmb3J3YXJkX3Byb3BhZ2F0ZV9hbmRfc2ltcGxpZnkgKGRmX3JlZiB1CitA QCAtODYzLDEyICs5MzcsMTYgQEAgZm9yd2FyZF9wcm9wYWdhdGVfYW5kX3NpbXBsaWZ5IChkZl9y ZWYgdQogICAgcnR4IHNyYywgcmVnLCBuZXdfcnR4LCAqbG9jOwogICAgYm9vbCBzZXRfcmVnX2Vx dWFsOwogICAgZW51bSBtYWNoaW5lX21vZGUgbW9kZTsKQEAgLTExMSw3ICsxMTgsNyBAQAogICAg ICByZXR1cm4gZmFsc2U7CiAgCiAgICAvKiBJZiBkZWYgYW5kIHVzZSBhcmUgc3VicmVnLCBjaGVj ayBpZiB0aGV5IG1hdGNoLiAgKi8KLUBAIC05MDAsNyArOTcxLDcgQEAgZm9yd2FyZF9wcm9wYWdh dGVfYW5kX3NpbXBsaWZ5IChkZl9yZWYgdQorQEAgLTkwMCw3ICs5NzgsNyBAQCBmb3J3YXJkX3By b3BhZ2F0ZV9hbmRfc2ltcGxpZnkgKGRmX3JlZiB1CiAgICBpZiAoTUVNX1AgKHNyYykgJiYgTUVN X1JFQURPTkxZX1AgKHNyYykpCiAgICAgIHsKICAgICAgICBydHggeCA9IGF2b2lkX2NvbnN0YW50 X3Bvb2xfcmVmZXJlbmNlIChzcmMpOwpAQCAtMTIwLDcgKzEyNyw3IEBACiAgCXsKICAgICAgICAg ICAgcnR4IG5vdGUgPSBmaW5kX3JlZ19ub3RlICh1c2VfaW5zbiwgUkVHX0VRVUFMLCBOVUxMX1JU WCk7CiAgCSAgcnR4IG9sZF9ydHggPSBub3RlID8gWEVYUCAobm90ZSwgMCkgOiBTRVRfU1JDICh1 c2Vfc2V0KTsKLUBAIC05MTEsNiArOTgyLDkgQEAgZm9yd2FyZF9wcm9wYWdhdGVfYW5kX3NpbXBs aWZ5IChkZl9yZWYgdQorQEAgLTkxMSw2ICs5ODksOSBAQCBmb3J3YXJkX3Byb3BhZ2F0ZV9hbmRf c2ltcGxpZnkgKGRmX3JlZiB1CiAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICB9CiAgCkBAIC0x MzAsOCArMTM3LDggQEAKICAgIC8qIEVsc2UgdHJ5IHNpbXBsaWZ5aW5nLiAgKi8KICAKICAgIGlm IChERl9SRUZfVFlQRSAodXNlKSA9PSBERl9SRUZfUkVHX01FTV9TVE9SRSkKLS0tLSBnY2MvdGVz dHN1aXRlL2djYy50YXJnZXQvaTM4Ni9wcjM5NTQzLTEuYy5qagkyMDA5LTAzLTI1IDE2OjQwOjE4 LjAwMDAwMDAwMCArMDEwMAotKysrIGdjYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9pMzg2L3ByMzk1 NDMtMS5jCTIwMDktMDMtMjUgMTY6NDA6NTAuMDAwMDAwMDAwICswMTAwCistLS0gZ2NjL3Rlc3Rz dWl0ZS9nY2MudGFyZ2V0L2kzODYvcHIzOTU0My0xLmMuamoJMjAwOS0wNC0wOSAwOTo0NzoxNi4w MDAwMDAwMDAgKzAyMDAKKysrKyBnY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvaTM4Ni9wcjM5NTQz LTEuYwkyMDA5LTA0LTA5IDA5OjQ3OjE2LjAwMDAwMDAwMCArMDIwMAogQEAgLTAsMCArMSw1MiBA QAogKy8qIFBSIHJ0bC1vcHRpbWl6YXRpb24vMzk1NDMgKi8KICsvKiB7IGRnLWRvIGNvbXBpbGUg fSAqLwpAQCAtMTg1LDggKzE5Miw4IEBACiArewogKyAgYmFyIChzMCk7CiArfQotLS0tIGdjYy90 ZXN0c3VpdGUvZ2NjLnRhcmdldC9pMzg2L3ByMzk1NDMtMi5jLmpqCTIwMDktMDMtMjUgMTY6NDA6 MTguMDAwMDAwMDAwICswMTAwCi0rKysgZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L2kzODYvcHIz OTU0My0yLmMJMjAwOS0wMy0yNSAxNjo0MDozOC4wMDAwMDAwMDAgKzAxMDAKKy0tLSBnY2MvdGVz dHN1aXRlL2djYy50YXJnZXQvaTM4Ni9wcjM5NTQzLTIuYy5qagkyMDA5LTA0LTA5IDA5OjQ3OjE2 LjAwMDAwMDAwMCArMDIwMAorKysrIGdjYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9pMzg2L3ByMzk1 NDMtMi5jCTIwMDktMDQtMDkgMDk6NDc6MTYuMDAwMDAwMDAwICswMjAwCiBAQCAtMCwwICsxLDUx IEBACiArLyogUFIgcnRsLW9wdGltaXphdGlvbi8zOTU0MyAqLwogKy8qIHsgZGctZG8gY29tcGls ZSB9ICovCkBAIC0yMzksOCArMjQ2LDggQEAKICt7CiArICBiYXIgKHMwKTsKICt9Ci0tLS0gZ2Nj L3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L2kzODYvcHIzOTU0My0zLmMuamoJMjAwOS0wMy0yNSAxNjo0 MToyOS4wMDAwMDAwMDAgKzAxMDAKLSsrKyBnY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvaTM4Ni9w cjM5NTQzLTMuYwkyMDA5LTAzLTI1IDE2OjQxOjE5LjAwMDAwMDAwMCArMDEwMAorLS0tIGdjYy90 ZXN0c3VpdGUvZ2NjLnRhcmdldC9pMzg2L3ByMzk1NDMtMy5jLmpqCTIwMDktMDQtMDkgMDk6NDc6 MTYuMDAwMDAwMDAwICswMjAwCisrKysgZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L2kzODYvcHIz OTU0My0zLmMJMjAwOS0wNC0wOSAwOTo0NzoxNi4wMDAwMDAwMDAgKzAyMDAKIEBAIC0wLDAgKzEs NDIgQEAKICsvKiBQUiBydGwtb3B0aW1pemF0aW9uLzM5NTQzICovCiArLyogeyBkZy1kbyBjb21w aWxlIH0gKi8KCmRpZmYgLS1naXQgYS9zb3VyY2VzIGIvc291cmNlcwppbmRleCA1NTZkNTRiLi5i MTQ3NTZiIDEwMDY0NAotLS0gYS9zb3VyY2VzCisrKyBiL3NvdXJjZXMKQEAgLTEsMiArMSwyIEBA CiAyNjU5ZjA5YzJlNDNlZjhiN2Q0NDA2MzIxNzUzZjFiMiAgZmFzdGphci0wLjk3LnRhci5negot ZTQ1ZjFiNDlhZDZiYzdlNzhlZjg4ODdjYWI3MjY5NDMgIGdjYy00LjQuMC0yMDA5MDQwOS50YXIu YnoyCiswMDRjZmQwYTQ5YjIyNTAzMjk1MzUxN2E4MjdkYTk2OCAgZ2NjLTQuNC4wLTIwMDkwNDE0 LnRhci5iejIK